MiC Flashcards

1
Q

En el MiC-1, qué es el MAR?

A

Memory Adress Register: Es un registro que indica la dirección de memoria saliente, sobre la que se realizará una lectura o escritura.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

En el MiC-1, qué es el MDR?

A

Memory Data Register: Es el registro que contiene el dato de memoria leído o el dato a escribir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

En el MiC-1, qué es el MBR?

A

Memory Byte Register: Es un registro de 1 byte, se utiliza para leer los opcodes de 8 bits.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cómo se realiza un READ de memoria en el MiC-1?

A
  1. Se escribe en el MAR la dirección de memoria a leer.
  2. Se ejecuta el READ.
  3. El dato se encuentra en el MDR.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cómo se realiza un WRITE en memoria en el MiC-1?

A
  1. Se escribe en el MDR el dato a escribir.
  2. Se escribe en el MAR la dirección de memoria en la que se escribirá el dato.
  3. Se ejecuta el WRITE.
  4. El dato del MDR se encuentra escrito en la dirección indicada por el MAR.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo se realiza un FETCH en el MiC-1?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Para qué sirve el bus B del MiC-1?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Para qué sirve el bus C del MiC-1?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cómo funciona la ALU?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿En el Mic-1, cómo se compone la palabra de control a la salida del Control Store?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

En el MiC-1, qué es el MPC?

A

Micro Program Counter: Es un registro virtual que apunta a la siguiente microinstrucción.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Cuánto tarda en ejecutarse una microinstrucción?

A

1 ciclo de máquina.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Por qué se usa el campo Next_Address?

A

Para poder ejecutar el microcódigo de forma no secuencial.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cómo funcionan los saltos en el MiC-1?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

En el MiC-1, por qué el MBR tiene 2 enables?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

En el MiC-1, cómo se contruye el valor del MPC?

A

El valor del MPC generalmente será Next_Address, salvo en los siguientes casos:
- Bit JAMN/JAMZ = 1 y N/Z = 1: Al realizar un salto condicional, el MSB del Next_Address cambiará de valor.
- Bit JMPC = 1: Al buscar una nueva instrucción, se utiliza el opcode del MBR.

17
Q

En el MiC-1, qué es el TOS?

A

Top of Stack: Es un registro que guarda una copia del valor al que el Stack Pointer apunta. Debe ser actualizado manualmente y debe ser válido al inicio y final de una instrucción.

18
Q

¿Cuál es la diferencia entre READ y FETCH?

A

READ es para leer el dato de 32 bits al que apunta el MAR para luego cargarlo en el MDR mientras que FETCH es para leer el opcode de 8 bits al que apunta el PC para luego cargarlo en el MBR.

19
Q

¿Con qué instrucción arranca siempre el MiC-1?

A

Con un NOP, para gastar 1 ciclo mientras se ejecuta el FETCH y así introducir un desfasaje entre la instrucción a la que apunta el PC y la que indica el MBR.

20
Q

¿Cómo terminan todas las instrucciones del MiC-1?

A

Todas terminan en la microinstrucción Main1 que incrementa el PC, ejecuta un FETCH (que para el siguiente ciclo habrá cargado un opcode futuro en el MBR) y busca el opcode actual para ejecutar la siguiente instrucción.

Como el FETCH tarda 1 ciclo en ejecutarse, hay un desfasaje. Usamos el MBR para saber qué opcode hay que ejecutar ahora mientras que el FETCH es para la próxima instrucción.

21
Q

¿Qué cambia entre el MiC-1 y el MiC-2?

A
  • Bus A: Ahora la entrada A a la ALU puede recibir los datos de cualquier registro, eliminando la necesidad de siempre pasar por el registro H. Esto significa que la palabra de control deberá contar con 4 bits más para seleccionar el bus A.
  • MBR2: Se agrega un registro de 16 bits para leer operandos de 2 bytes en el modo de direccionamiento inmediato.
  • Instruction Fetch Unit (IFU): Unidad de hardware dedicada que realiza los FETCH automáicamente.
22
Q

En el MiC-2, cómo se compone y funciona la IFU?

A

La Instruction Fetch Unit está compuesta por los siguientes registros:
- MBR1: Guarda el próximo opcode o los operandos de 8 bits.
- MBR2: Guarda los operandos de 16 bits.
- Shift Register: Funciona como cola FIFO y va guardando los valores futuros que trae el Prefetch. Cada lectura sobre MBR1 o MBR2 desplaza el shift register y libera la cola.
- PC: Apunta a la próxima instrucción. Puede incrementarse en 1 o 2 dependiendo de si leyó un opcode de 8 bits o un operando de 16 bits.
- IMAR: Realiza el FETCH a memoria y trae de 4 bytes del programa, que se cargan en la cola cuando se liberan 4 lugares. Se incrementa de a 4 bytes.

23
Q

En el MIC-2, cómo afectan los saltos condicionales a la IFU?

A

En caso de un salto imprevisto, se deberá modificar el PC junto al IMAR y descartar el contenido del Shift Register.

24
Q

¿En qué se diferencia el PRE-FETCH con un Pipeline?

A

En que si bien ambos buscan adelantar trabajo, el pre fetch no realiza cosas en paralelo.

25
Q

¿Qué cambia entre el MiC-2 y el MiC-3?

A

Se introduce un Pipeline de microinstrucciones con 4 etapas que permite paralelizar tareas. Además se agregan latches en los buses para desacoplar las etapas.

26
Q

¿Cómo funciona el pipeline del MiC-3?

A

El pipeline está compuesto de 4 etapas:
- Fetch y decode de la instrucción (IFU)
- Carga de registros al bus A y bus B
- Cálculo de la ALU y el shifter
- Guardado del resultado en un registro

Cada etapa está desacoplada mediante un latch para así independizar las tareas y poder ejecutarlas simultáneamente (paralelizar).

27
Q

¿Qué cambia entre el MiC-3 y el MiC-4?

A

Se implementa un pipeline a nivel de instrucciones. Empieza a ejecutar las microinstrucciones de la siguiente instrucción mientras se ejecutan las de la actual.

28
Q

¿Cómo se compone el pipeline del MiC-4?

A
  1. IFU: Trae opcodes y operandos a través del FETCH.
  2. Decoder: Tablas que permiten obtener las microinstrucciones a partir de la instrucción.
  3. Cola de micro-operaciones: Cola FIFO de microinstrucciones pertenecientes a distintas instrucciones. En caso de un salto inesperado se deberán anular algunas.
  4. Selección de operandos: Carga los datos en los bus A y B.
  5. ALU: Realiza operaciones de ALU y Shifter.
  6. Write: Carga del resultado en un registro.
  7. Operación sobre memoria: No siempre se usa.