MiC Flashcards
En el MiC-1, qué es el MAR?
Memory Adress Register: Es un registro que indica la dirección de memoria saliente, sobre la que se realizará una lectura o escritura.
En el MiC-1, qué es el MDR?
Memory Data Register: Es el registro que contiene el dato de memoria leído o el dato a escribir.
En el MiC-1, qué es el MBR?
Memory Byte Register: Es un registro de 1 byte, se utiliza para leer los opcodes de 8 bits.
¿Cómo se realiza un READ de memoria en el MiC-1?
- Se escribe en el MAR la dirección de memoria a leer.
- Se ejecuta el READ.
- El dato se encuentra en el MDR.
¿Cómo se realiza un WRITE en memoria en el MiC-1?
- Se escribe en el MDR el dato a escribir.
- Se escribe en el MAR la dirección de memoria en la que se escribirá el dato.
- Se ejecuta el WRITE.
- El dato del MDR se encuentra escrito en la dirección indicada por el MAR.
¿Cómo se realiza un FETCH en el MiC-1?
Se habilita una señal de FETCH que leerá de a 1 byte (8 bits) el valor al que apunta el PC. Este será el opcode de la instrucción, que se guarda en el MBR.
¿Para qué sirve el bus B del MiC-1?
Permite que los registros envíen su información a la ALU. Sólo 1 registro puede colocar información sobre el bus al mismo tiempo, esto se define con un a señal de enable.
¿Para qué sirve el bus C del MiC-1?
Permite escribir la información a la salida de la ALU sobre los registros. Se puede escribir sobre más de un registro al mismo tiempo, esto depende de una señal de enable.
¿Cómo funciona la ALU?
La ALU es un circuito combinacional que realiza operaciones lógicas (NOT, OR, AND) junto con las de suma y resta sobre las entradas A y B. Tiene 6 líneas de control para elegir la operación y 2 bits de salida:
- N: Indica que el resultado es negativo.
- Z: Indica que el resultado es cero.
¿En el Mic-1, cómo se compone la palabra de control a la salida del Control Store?
- Next_address (9 bits): Puntero hacia la próxima microinstrucción dentro del Control Store.
- JAM (3 bits): JAMN y JAMZ indican si se debe prestar atención a los bits N y Z de salida de la ALU para posiblemente realizar un salto condicional. En cambio el JMPC indica que se debe ignorar el Next_address, se realiza en la última microinstrucción antes de un FETCH.
- ALU y Shifter (8 bits): Señales de control de la ALU y el shifter.
- C (9 bits): Señales de enable del bus C.
- Memoria (3 bits): Señales para el acceso a memoria, puede iniciarse un READ, WRITE o FETCH.
- B (4 bits): Señales de enable del bus B. Como solo se puede publicar 1 registro a la vez, utiliza un decodificador para ahorrar bits.
En el MiC-1, qué es el MPC?
Micro Program Counter: Es un registro virtual que apunta a la siguiente microinstrucción.
¿Cuánto tarda en ejecutarse una microinstrucción?
1 ciclo de máquina.
¿Por qué se usa el campo Next_Address?
Para poder ejecutar el microcódigo de forma no secuencial.
¿Cómo funcionan los saltos en el MiC-1?
La memoria del Control Store se divide en dos mitades de 256 microinstrucciones, tal que si se realiza un salto el MPC va a ir a Next_Address + 256 (cambia sólo el MSB) para seguir con la ejecución del programa. Si no se toma el salto, el MPC simplemente va a ir a Next_Address.
En el MiC-1, por qué el MBR tiene 2 enables?
Al utilizar el MBR para leer un dato en modo de direccionamiento inmediato, será necesario pasar el valor leído de 8 bits a 32 bits. Dependiendo de si el dato era signado, se deberá completar con 1s o 0s. Entonces un enable (MBR) es para leer de forma no signada (siempre rellena con 0s) mientras que el otro (MBRU) es para leer de forma signada (rellena con el MSB dependiendo del caso).