Organización del Computador CPU 3 y 4 – Diseño de una computadora.

Slides:



Advertisements
Presentaciones similares
Simulación en VHDL del Datapath del MIPS
Advertisements

El modelo de Von Neumann
Diseño de la ruta de datos monociclo para la arquitectura MIPS
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
ORGANIZACIÓN COMPUTACIONAL
Camino de Datos y Control
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Datapath para las instrucciones aritméticas y lógicas
PERCY CHUMBE BUENDIA. KIZZY GUTIERREZ VALVERDE. RUTH NOEMY APAZA JARA.
Circuitos Digitales II
Arquitectura de Computadores
El procesador: la ruta de datos y el control (II Parte)
Datapath DLX.
El nivel de la Microprogramación
Composición Interna de un Procesador
Computadora Digital Arquitectura de John Von Neumann
CLASE 11.
ISA (Instruction Set Architecture)
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
MICRO Y MACRO ARQUITECTURA
Unidad 2: Organización del CPU
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
(CC) , José M. Foces-Morán.
Instrucciones: FORMATO DE INSTRUCCIONES
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Overview Sistemas Computacionales
Capítulo 5 El procesador Félix García Carballeira Jesús Carretero Pérez José Daniel Sánchez García David Expósito Singh © Ediciones Paraninfo1.
El procesador Creando un solo datapath. Universidad de SonoraArquitectura de Computadoras2 Introducción 1. Crear un solo datapath a partir de los datapaths.
Capítulo 5. El procesador: Camino de datos y control.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Diseño de la Unidad de Control Multiciclo: Microprogramación
Datapath para las instrucciones de carga y almacenamiento (load/store)
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
Organización del Computador
Departamento de Ingeniería de Sistemas Universidad de Antioquia
“Organización y Arquitectura de Computadores” William Stallings
Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
CLASE 13.
Organización del Computador I Verano Procesador Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
El procesador Diseño del control.
Diseño del procesador uniciclo
CLASE 14.
Capítulo 4 CPU y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.
Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Instruction fetch cycle (IF) IR
Simulación en VHDL del Controlador FSM del MIPS
Principio unidad 1.
ARQUITECTURA DE COMPUTADORES
1 Unidades funcionales de un ordenador Procesadores Memorias Dispositivos de E/S
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
CAPITULO V Arquitectura de Von Neumann
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Fundamentos de los Computadores Grado en Ingeniería Informática
El procesador Diseño del control.
Pipelining Datapath y control.
Organización del Computador
8. Diseño del Procesador Fundamentos de los Computadores
Creando un solo datapath
Organización del Computador
Estructura de Computadores (EUI: 2º ITIS) Tema 4: Diseño del procesador (parte II)1 Diseño de la Unidad de Control Multiciclo: Microprogramación Introducción.
Pipelining Introducción.
Organización del Computador
Organización del Computador
8. Diseño del Procesador Fundamentos de los Computadores
El procesador Datapath y control.
Transcripción de la presentación:

Organización del Computador CPU 3 y 4 – Diseño de una computadora

Consideraciones Una única ALU, una única Memoria, un único Banco de Registros. Una única ALU, una única Memoria, un único Banco de Registros. Dos tipos de problemas: Dos tipos de problemas: Una instrucción utiliza un mismo recurso varias veces y se pierden los valores anteriores. Una instrucción utiliza un mismo recurso varias veces y se pierden los valores anteriores. Una instrucción utiliza un mismo recurso en la misma etapa para dos o más cosas distintas. Una instrucción utiliza un mismo recurso en la misma etapa para dos o más cosas distintas.

Algunos componentes disponibles PC 1632 Sign extend MemRead MemWrite memory Write data Read data Address Program Counter Unidad de memoria Unidad de extensión de signo ALU control ALU result ALU Zero 3 ALU

Diseño: Pasos necesarios : Analizar el conjunto de instrucciones para determinar los requerimientos del Camino de Datos. 1 er Paso: Analizar el conjunto de instrucciones para determinar los requerimientos del Camino de Datos. : Seleccionar los componentes. 2 o Paso: Seleccionar los componentes. : Construir el Camino de Datos según los requerimientos. 3 o Paso: Construir el Camino de Datos según los requerimientos. : Analizar la implementación de cada instrucción para determinar las señales de control necesarias. 4 o Paso: Analizar la implementación de cada instrucción para determinar las señales de control necesarias. : Construir el Control. 5 o Paso: Construir el Control.

1.Fetch de Instrucción (Fetch/IF) 2.Decodificación (y lectura de registros) (Decode/ID) 3.Acceso a datos en memoria (Mem) (previo Cálculo de Dirección de memoria) 4.Ejecución (Execution/EX) 5.Escritura en registros (Write Back/WB) Cinco Etapas (o fases) de Ejecución

Formato MIPS de Instrucción Son todas de 32 bits. Tres formatos: Tipo R (register) Tipo R (register) Aritméticas Aritméticas Tipo I (immediate) Tipo I (immediate) Transferencia, salto Transferencia, salto Operaciones con operando inmediato Operaciones con operando inmediato Tipo J (jump) Tipo J (jump) Saltos Saltos oprsrtrd shsh funct oprsrtAddress/inmediate opTarget Address

Formato R: Register op = 0 op = 0 rs, rt = identificación de los registros fuente rs, rt = identificación de los registros fuente rd = identificación del registro destino rd = identificación del registro destino sh = cantidad de shifts sh = cantidad de shifts func = identifica la operación (ej. add=32, sub=34, sll=0,srl=10) func = identifica la operación (ej. add=32, sub=34, sll=0,srl=10) 0rsrtrd S h (5) fun (6)

Formato R :Ejemplos Add $1, $2, $3 Add $1, $2, $ Sub$1, $2, $3 Sub$1, $2, $ Slt$1, $2, $3 Slt$1, $2, $ Set Less Than si ($2<$3) entonces $1=1sino $1=0 Jr$31 Jr$ Jump Register PC=$31

Formato I : Immediate oprsrtAddress/inmediate Addi$1,$2,100 Addi$1,$2,100 $1=$2+100 $1=$2+100

Formato I : Immediate Lw $1, 100($2) Lw $1, 100($2) Sw $1, 100($2) Sw $1, 100($2) Load Word $1=M[$2+100] Store Word M[$2+100]=$1 oprsrtAddress/inmediate

Formato I : Immediate Beq$1,$2,100 Beq$1,$2, Bne$1,$2,100 Bne$1,$2,100 Branch Equal si ($1=$2) entonces ir a PC Branch Not Equal si ($1!=$2) entonces ir a PC oprsrtAddress/inmediate

Formato J : Jumps J10000 J10000 PC =10000PC 1..0 =00 PC =10000PC 1..0 =00 opTarget Address Jal10000 Jal JUMP AND LINK $31=PC+4 PC =10000PC 1..0 =00

oprsrtrd sham t funct oprsrtAddress/inmediate er Paso: Subconjunto MIPS ADD y SUB ADD y SUB ( (R[rd] = R[rs] op R[rt]) addu rd,rs,rt addu rd,rs,rt subu rd, rs,rt subu rd, rs,rt LOAD and STORE LOAD and STORE lw rt, rs, inm16 lw rt, rs, inm16 R[rt] = Mem[ R[rs]+sign_ext(Inm16) ]; R[rt] = Mem[ R[rs]+sign_ext(Inm16) ]; sw rt, rs, inm16 sw rt, rs, inm16 Mem[ R[rs]+sign_ext(Inm16) ]= R[rt]; Mem[ R[rs]+sign_ext(Inm16) ]= R[rt]; BRANCH BRANCH beq rs, rt, inm16 beq rs, rt, inm16 if (R[rs]==R[rt]) then if (R[rs]==R[rt]) thenPC=PC+(sign_ext(Inm16)*4) JUMP JUMP J target J target PC =PC,(target << 2) oprsrtAddress/inmediate opop Target Address

Uso de U.F PasoRegistrosALUMemoria Fetch Todas PC<--PC+4TodasIR<--M[PC] DecodeTodas Ex Tipo R: operación Lw y Sw: dirección Beq: operación y dirección !! MemLw y Sw PostWLw Tipo R

Uso de U.F InstrucciónRegistrosALUMemoria Tipo R ID/WBFetch/EXFetch Lw ID/WB Fetch/EX Fetch/Memoria SwIDFetch/EX Fetch/Memoria BeqID Fetch/ID/EX. Fetch

RTL (Registrer Tranfer Language) Cada instrucción está formada por un conjunto de microoperaciones. Cada instrucción está formada por un conjunto de microoperaciones. Se utiliza para determinar la secuencia exacta de microoperaciones. Se utiliza para determinar la secuencia exacta de microoperaciones. Ejemplo (Fetch en Marie): Ejemplo (Fetch en Marie): t1:MAR  (PC) t1:MAR  (PC) t2:MBR  Mem[MAR] t2:MBR  Mem[MAR] PC  (PC) + 1 PC  (PC) + 1 t3:IR  (MBR) t3:IR  (MBR)

1 o Paso: Tipo R (add, sub...) R[rd] = R[rs] ‘op’ R[rt]; PC=PC+4 RTL T1: IR  Mem[PC] PC  PC + 4 T2: A  R[rs] B  R[rt] T3: ALUOut  A ‘op‘ B T4: R[rd]  ALUOut 0rsrtrd S h (5) fun (6)

BEQif (R[rs] == R[rt]) then PC  PC+(sign_ext(Imm16)*4) RTL T1: IR  Mem[PC]; PC  PC + 4 T2: A  R[rs] (Se guardan para el ciclo siguiente) B  R[rt] ALUOut  PC + sign_ext (Imm16) << 2 (calcula la dir. del salto) T3: PC  ALUOut [Si el flag Zero esta activo] oprsrtAddress/inmediate o Paso: Tipo I (Branch)

LOADR[rt]  Mem[ R[rs]+sign_ext(Imm16) ] RTL T1: IR  Mem[PC] PC  PC + 4 T2: A  R[rs] B  R[rt] (B no se usa) T3: ALUOut  A + sign_ext (Imm16) (Calcula la dir.) T4: MBR  Mem[ALUOut] T5: R[rt]  MAR oprsrtAddress/inmediate o Paso: Tipo I (Load)

STOREMem[ R[rs]+sign_ext(Imm16) ]  R[rt]; RTL T1: IR  Mem[PC] PC  PC + 4 T2: A  R[rs] B  R[rt] (valor a escribir) T3: ALUOut  A + sign_ext (imm16) T4: Mem[ALUOut]  B oprsrtAddress/inmediate o Paso: Tipo I (Store)

Jump PC  PC,(target << 2) (Calcula la dirección concatenando los 26 bits del operando) RTL T1: IR  Mem[PC] PC  PC + 4 T2: ¡NADA! T3: PC  PC,(IR << 2) 1 o Paso: Tipo J (jump...) opTarget Address

Resumen de las etapas

Número de Ciclos Brach y Jump: 3 ciclos (IF,ID,EX) Brach y Jump: 3 ciclos (IF,ID,EX) Las tipo R: 4 ciclos (IF,ID,EX,WB) Las tipo R: 4 ciclos (IF,ID,EX,WB) STORE: 4 ciclos (IF,ID,EX,MEM) STORE: 4 ciclos (IF,ID,EX,MEM) LOAD: 5 (IF,ID,EX,MEM,WB) LOAD: 5 (IF,ID,EX,MEM,WB)

1- Fetch (IF) RTL RTL IR  Memory[PC] PC  PC + 4

2 - Decode (ID) RTL RTL Opción lectura de registros Opción lectura de registros A  reg[IR[25:21]] B  reg[IR[20:16]] Opción cálculo de salto ALUOut  PC + sign-extend(IR[15:0]) <<2

3 - Execute (Ex) RTL RTL Opción artimética/lógica Opción artimética/lógica ALUOut  A op B, o ALUOut  A op sign-extend(IR[15:0]) Cálculo de dirección (Load o Store) ALUOut  A + sign-extend(IR[15:0]) Salto condicional Si A = B, PC  ALUOut Jump PC[31:28]  PC || IR[25:0] <<2

4 – Memoria (Mem) Sólo para Load o Store Sólo para Load o Store RTL RTL Opción Lectura Opción Lectura MBR  Memory[ALUOut] Opción Grabado Memory[ALUOut]  B

5 - Escritura RTL RTL Opción instrucción tipo R o aritmética inmediata Opción instrucción tipo R o aritmética inmediata reg[ IR[15:11] ]  ALUOut Opción Load (celda de memoria leída en el ciclo anterior) reg[IR[20:16]]  MBR

1 er Paso: Requerimientos del Conjunto de Instrucciones Memoria Memoria Para instrucciones y datos Para instrucciones y datos Registros (32x32) Registros (32x32) Leer rs, leer rt Leer rs, leer rt Escribir rt ó rd Escribir rt ó rd PC, MBR PC, MBR A, B para datos intermedios, ALUOut (retener salida ALU) A, B para datos intermedios, ALUOut (retener salida ALU) Extensor de signo (16 a 32) Extensor de signo (16 a 32) Sumar y Restar registros y/o valores inmediatos Sumar y Restar registros y/o valores inmediatos Operaciones lógicas (and/or) registros y/o valores inmediatos Operaciones lógicas (and/or) registros y/o valores inmediatos Sumar 4 al PC ó 4 + inmediato extendido * 4 Sumar 4 al PC ó 4 + inmediato extendido * 4

2 o Paso: Componentes del Camino de Datos PC b. Program counter b. ALU ALU control ALU result ALU Zero 3

Elementos Combinacionales Elementos Combinacionales ALU y Multiplexor ALU y Multiplexor Suma 32 A B Op Resultado ALU Sel A B 32 MUX

2 o Paso: Componentes del Camino de Datos Elementos de Almacenamiento: Banco de Registros Elementos de Almacenamiento: Banco de Registros WE CLK Data Out Data In 32 RegW CLK LRA LRB ER BusW BusA BusB32 Registros de 32 bits

2 o Paso: Componentes del Camino de Datos Elementos de Almacenamiento: Banco de Registro (dos puertos de lectura) Elementos de Almacenamiento: Banco de Registro (dos puertos de lectura) M u x Register 0 Register 1 Register n – 1 Register n M u x Read data 1 Read data 2 Read register number 1 Read register number 2 RegW CLK LRA LRB ER BusW BusA BusB32 Registros de 32 bits

2 o Paso: Componentes del Camino de Datos Elementos de Almacenamiento: Banco de Registros (un puerto de escritura) Elementos de Almacenamiento: Banco de Registros (un puerto de escritura) RegW CLK LRA LRB ER BusW BusA BusB32 Registros de 32 bits

2 o Paso: Componentes del Camino de Datos Una sola memoria para instrucciones y datos Una sola memoria para instrucciones y datos WE CLK dirección Dato In Dato Out Memoria 32 MUX De la ALU Del PC IR IoD IRW

3 er Paso: Reuso de Unidades Funcionales: ALU única ALU debe realizar ALU debe realizar operaciones sobre registros operaciones sobre registros base + desplazamiento para loads y stores base + desplazamiento para loads y stores dirección destino de salto: registro + sign_ext(Imm16) * 4 dirección destino de salto: registro + sign_ext(Imm16) * 4 PC=PC+4 PC=PC+4 BusB 32 PC 32 MUXMUX ALUctr MUXMUX BusA 32 Inm16SignExt >>2 4 32

3 er Paso: Registro ALUout BusB 32 PC 32 MUXMUX ALUct r MUXMUX BusA 32 Inm16 SignExt >> ALUOut DstW

3 er Paso: Fetch - IF Mem[PC]; PC PC + 4 (código secuencial ) Mem[PC]; PC  PC + 4 (código secuencial )

3 er Paso: Decode - ID

3 er Paso: Ejecución - EX

3 er Paso: Operandos - Mem

3 er Paso: Write back- WB

Señales de control

Grafo de Estados IR  MEM[PC]; PC  PC+4 A  R[rs]; B  R[rt]; ALUOut  PC+(signext(inm16)<<2) ALUOut  AopB ALUOut  A+ signext(inm16) Z  A-B si (Z) PC  ALUOut MBR  MEM[ALUOut] R[rd]  ALUOut R[rt]  -MBR MEM[ALUOut]  B Format R Beq PC  PC[31:28] || (IR[25:0] <<2) Jump Lw Sw

Grafo de Estados S0 S1 S6 S2 S8 S3 S7S4 S5 S9

Control de Señales S0S1S2S3S4S5S6S7S8S9 RegWrite IRWrite MemRead MemWrite PCWrite PCWCond PCSource ALUsrcA ALUsrcB MemToReg RegDst IoD ALUop

Control de Señales S0S1S2S3S4S5S6S7S8S9 RegWrite IRWrite MemRead 11 MemWrite PCWrite PCWCond 1 PCSource ALUsrcA ALUsrcB MemToReg 10 RegDst 01 IoD 0111 ALUop

Control: Especificación e Implementación Representación Inicial Diagrama de Estados Finitos Microprograma Control del Secuenciamiento Función explícita del estado futuro Contador de microprograma + ROM Representación Lógica Ecuaciones Lógicas Tabla de Verdad Técnica de Implementación Array Lógico Programable ROM Control microprogranado Control cableado

Implementación: Máquina de Estados Finitos

ROM = "Read Only Memory" ROM = "Read Only Memory" Se graba la memoria con valores fijos Se graba la memoria con valores fijos Se usa la ROM para implementar la Tabla de Verdad Se usa la ROM para implementar la Tabla de Verdad Con direcciones de m-bits, podemos direccionar 2 m entradas en la ROM. Con direcciones de m-bits, podemos direccionar 2 m entradas en la ROM. Las salidas son los datos (palabras) direccionadas Las salidas son los datos (palabras) direccionadas Implementación con ROM mn

¿ Cuantas entradas tenemos? ¿ Cuantas entradas tenemos? 6 bits para el opcode 6 bits para el opcode 4 bits para el estado 4 bits para el estado = 10 líneas de direcciones (2 10 = 1024 posibles direcciones) = 10 líneas de direcciones (2 10 = 1024 posibles direcciones) ¿Cuantas salidas? ¿Cuantas salidas? 16 señales de control del camino de datos 16 señales de control del camino de datos 4 bits de estado 4 bits de estado = 20 lineas de salida = 20 lineas de salida ROM de 2 10 x 20bits = 20Kbits ROM de 2 10 x 20bits = 20Kbits Problema: mucho desperdicio, ya que para muchisimas entradas, las salidas son idénticas. Problema: mucho desperdicio, ya que para muchisimas entradas, las salidas son idénticas. Por ejemplo, el codígo de operación se ignora muchas veces Por ejemplo, el codígo de operación se ignora muchas veces Implementación con ROM

Implementación con PLA

Se podrían hacer dos ROM: — 4 bits de estado se usan como dirección de las palabras de salida: 2 4 x 16 bits= 256bits de ROM — 10 bits (6 opcode, 4 estado) se usan como dirección para la función de transición (nuevo estado): 2 10 x 4 bits de ROM — Total: 4K bits de ROM Se podrían hacer dos ROM: — 4 bits de estado se usan como dirección de las palabras de salida: 2 4 x 16 bits= 256bits de ROM — 10 bits (6 opcode, 4 estado) se usan como dirección para la función de transición (nuevo estado): 2 10 x 4 bits de ROM — Total: 4K bits de ROM PLA es mas pequeña PLA es mas pequeña — puede compartir términos producto — sólo utiliza las entradas que producen valores — puede considerar los “no importa” Tamaño (#inputs  #product-terms) + (#outputs  #product-terms) Tamaño (#inputs  #product-terms) + (#outputs  #product-terms) En el ejemplo = (10x17)+(20x17) = 460 PLA cells Una celda de PLA es un poco mas grande que una de ROM En el ejemplo = (10x17)+(20x17) = 460 PLA cells Una celda de PLA es un poco mas grande que una de ROM ROM vs PLA

Microprogramación La ROM es la memoria donde se guardan las instrucciones para el camino de datos (microinstrucciones) La dirección de la ROM (microPC) es el estado

Es una metodología de especificación Es una metodología de especificación Apropiada para arquitecturas con cientos de instrucciones, modos, etc. Apropiada para arquitecturas con cientos de instrucciones, modos, etc. Las señales se especifican simbólicamente usando microinstrucciones Las señales se especifican simbólicamente usando microinstrucciones Se define el formato de la microinstrucción, estructurado en campos. Se define el formato de la microinstrucción, estructurado en campos. Luego cada campo se asocia a un conjunto de señales Luego cada campo se asocia a un conjunto de señales Microprogramación

Detalle de implementación O p Adder 1 PLA or ROM Mux 3210 Dispatch ROM 1Dispatch ROM 2 0 AddrCtl Address select logic Instruction register opcode field MicroPC

Diseño del Microcódigo Función básica: Proveer señales para el datapath Función básica: Proveer señales para el datapath Dos enfoques: Dos enfoques: Horizontal: Horizontal: La microinstruccion provee todas las señales de control necesarias para un ciclo La microinstruccion provee todas las señales de control necesarias para un ciclo Paralelismo Paralelismo Vertical Vertical Más compacta Más compacta Las señales están codificadas para que ocupen menos bits Las señales están codificadas para que ocupen menos bits Menos paralelismo Menos paralelismo

Diseño de microinstrucciones Diferentes señales agrupadas por campos Diferentes señales agrupadas por campos CampoFunción Alu Control Que operación debe hacer la ALU en este ciclo SRC1 Especifica el 1º operando de la ALU SRC2 Especifica el 2º operando de la ALU Register Ctrl Especifica Lectura/Grabación de registros, y la fuente para la grabación Memoria Especifica Lectura/Grabación. En lectura el registro de destino PCWriteCtrl Especifica la grabación del PC Secuencia Determina como elegir la proxima microinstrucción

Formato de Microinstrucción

Microprogramación Microprogramando! Microprogramando!

Microcódigo: Ventajas-Desventajas Ventajas en la especificación: Ventajas en la especificación: Fácil de diseñar: se escribe el microprograma Fácil de diseñar: se escribe el microprograma Implementación en ROM (off-chip) Implementación en ROM (off-chip) Fácil de cambiar Fácil de cambiar Puede emular otras arquitecturas Puede emular otras arquitecturas Puede usar registros internos Puede usar registros internos Desventajas de la implementación Desventajas de la implementación Control se implementa (hoy) en el mismo chip que el camino de datos Control se implementa (hoy) en el mismo chip que el camino de datos La ROM no es mas rápida que la RAM (CISC vs RISC) La ROM no es mas rápida que la RAM (CISC vs RISC)

Referencias Capitulo 5 - Patterson Capitulo 5 - Patterson Ver resumen en sección Download Ver resumen en sección Download Capitulo 4 - Tanembaun Capitulo 4 - Tanembaun Capitulo 16 y 17 - Stallings Capitulo 16 y 17 - Stallings Capitulo 4 - Null Capitulo 4 - Null

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Instrucción ADD: Fetch ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Add: Decode ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW oprsrtrd s hamt funct

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Add: Ejecución ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Add: Write Back ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Instrucción load: Fetch ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Load : Decode ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW oprsrtAddress/inmediate

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Load : Ejecución ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW oprsrtAddress/inmediate

RegW CLK rs rt BusW BusA BusB32 Registros de 32 bits LRA LRB WR rd RegDst MUX Inm16EXtension 32 MUXMUX AluselB Ex/Op 32 PC CLK instrucción Memoria 32 >>2 32 ALUctr W_src MUX Pcsrc Load : Memoria ZERO Dst DstW 4 MUXMUX AluselA IRW WE IoD CLK PCW oprsrtAddress/inmediate