Creemos que la mejor manera de entender cómo funcionan los computadores es construyendo uno desde cero. El principial objetivo de nuestra simple computadora es introducir todas las ideas cruciales que hay detrás del
funcionamiento de un computador. Además, lo construiremos sobre protoboards usando TTL chips para las puertas lógicas y los registros, evitando un enfoque basado en FPGAs para la construcción de un procesador. Nuestra forma de acercarnos a la construcción de un computador es complementaria y necesaria para una mejor y más profunda
comprensión de los procesadores.
El computador que diseñaremos y construiremos tendrá un bus de direcciones de 4 bits, quatre registros de 8 bits y 16 bytes de RAM. Cada instrucción dura 5 ciclos, 2 de extracción y 3 de ejecución, un registro de instrucciones de 4 bits y una palabra de control de 2 bytes. El computador será bus-oriented, con salidas de los registros a este bus principal de 8 bits del tipo 3-state o open-collector, permitiendo transferències ordenades de les dades.
Al final del seminario el estudiante será capaz de:
- Entender con todo detalle el funciomiento de un ordenador de 8 bits.
- Construir un ordenador de 8-bits a partir de puertas lógicas y flip-flops, en protoboards.
- Diseñar la unidad de control, definir sus diferentes instrucciones y progamar su microcódigo en memoria EEPROM. - Progamar el ordenador construido con el código máquina y ensamblador creados.
Otros: Jorge García Mateos
Responsable: Jorge García Mateos
Unidad que imparte: Curso:
Créditos ECTS:
739 - TSC - Departamento de Teoría de la Señal y Comunicaciones 2018
MÁSTER UNIVERSITARIO EN INGENIERÍA DE TELECOMUNICACIÓN (Plan 2013). (Unidad docente Optativa)
MÁSTER UNIVERSITARIO EN INGENIERÍA ELECTRÓNICA (Plan 2013). (Unidad docente Optativa) 2,5 Idiomas docencia: Inglés
Titulación:
Profesorado
Objetivos de aprendizaje de la asignatura
Sesiones de laboratorio.
Metodologías docentes Capacidades previas
Introducción y Reloj
Registros
Unidad Lógica y Aritmética (ALU)
Dedicación: 6h Dedicación: 12h Dedicación: 5h 30m Grupo pequeño/Laboratorio: 2h Aprendizaje autónomo: 4h Grupo pequeño/Laboratorio: 4h Aprendizaje autónomo: 8h Grupo pequeño/Laboratorio: 1h Aprendizaje autónomo: 4h 30m Diseñaremos nuestro computador enfatizando una arquitectura modular basada en los diferentes registros conectados al bus de 8 bits. No hemos querido poner todos los circuitos de control en un único bloque llamado unidad de control, ni todos los circuitos de entrada-salida en otro bloque llamado unidad I/O, etc.
El primero de los módulos que diseñaremos y construiremos es el reloj.
El reloj del computador se utiliza para sincronizar todas las operaciones. El reloj que construiremos está basado en el popular IC 555. Nuestro reloj es de velocidad ajustable (desde menos de un Hz hasta unos centenars de Hz).
El reloj también puede funcionar en mode manual donde cada pulsación de un botón harà avanzar un cicle de reloj. Esto será un característica muy útil para encontrar errores (debugging).
La mayoría de les CPUs tienen un número de registros que almacenan pequeñas cantidades de datos que la CPU está procesando. En nuestra simple CPU, diseñaremos y construiremos tres registros de 8 bits: A, B yi IR. Los registros A y B son de propósito general. IR (el registro de instrucciones) trabaja de una manera similar, pero lo utilizaremos únicamente para almacenar la instrucción que en cada momento está siendo ejecutada.
La unidad aritmética y lógica (ALU) es una parte de la CPU que se encarga de realizar varios operaciones
aritméticas, de bit y de comparación con números binarios. En nuestra simple CPU construida sobre protoboard, la ALU es sólo capaz de sumar y restar. Está conectada a los registros A y B y su salida es bien la suma A+B o bien la diferencia A-B.
Descripción:
Descripción:
Registro de direcciones de memoria (MAR) y
Memoria de acceso aleatorio (RAM)
Registro de salida (OUT)
Contador de programa (PC)
Lógica de control (CL)
Dedicación: 6h Dedicación: 9h Dedicación: 3h Dedicación: 12h Grupo pequeño/Laboratorio: 2h Aprendizaje autónomo: 4h Grupo pequeño/Laboratorio: 3h Aprendizaje autónomo: 6h Grupo pequeño/Laboratorio: 1h Aprendizaje autónomo: 2h Grupo pequeño/Laboratorio: 4h Aprendizaje autónomo: 8hLa memoria de acceso aleatorio almacena el programa que el computador está ejecutando y también cualquier dato que el programa necesite. El registro de direcciones de memoria es un registro de 4 bits y por tanto nuestro computador de protoboard utiliza direcciones de 4 bits. Tenemos una RAM de 16 palabras, cada palabra de 8 bits, es decir, una RAM total de 16 bytes, que limita el tamaño y la complejidad del programa que puede correr. Esta es con diferencia su mayor limitación.
El registro de salida es similar a cualquier otro registro (como los registros A y B), excepte que en vez de presentar su contenido en binario con 8 LEDs, lo muestra en formato decimal sobre displays de 7 segmentos.
El contador de programa cuenta en binario para hacer un seguimiento de qué instruccion del programa está ejecutando en cada momento el computador.
Descripción:
Descripción:
Descripción:
Desarrollo y entrega de los trabajos de laboratorio.
Sistema de calificación
Bibliografía
Programación y funcionamiento del computador.
Dedicación: 9hGrupo pequeño/Laboratorio: 3h Aprendizaje autónomo: 6h
Básica:
Complementaria:
Malvino, Albert Paul; Brown, Jerald A. Digital Computer Electronics. 3rd edition. McGraw-Hill Higher Education, 1992. Nisan, Noam; Schocken, Shimon. The Elements of computing systems : building a modern computer from first principles. Cambridge, Massachusetts ; London: MIT Press, 2005. ISBN 026214087X.
Fernández, Gregorio. Curso de ordenadores. Conceptos básicos de arquitectura y sistemas operativos. 5a edición. Fundación Rogelio Segovia para el desarrollo de las telecomunicaciones, 2004.
Walker, J.S. Computer time travel : how to build a microprocessor from transistors. United Kingdom: Oldfangled Publishing, 2017. ISBN 9780995707207.
Scott, John C. But how do it know? The basic principles of computers for everyone. Lightning Source Inc, 2009. ISBN 9780615303765.
Finalmente progamaremos nuestro computador con algunos programas simples.