SlideShare a Scribd company logo
1 of 55
Organzación de CPU Cecilia Hernández
Componentes sistema computacional
Diseño de Procesador Sección de Datos y Control JerarquíaMemoria Control ALU Registers PC estado Bus Memoria CPU Sección de datos Combinational Secuencial
Diseño de CPU ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Organización de la CPU  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pasos en diseño de CPU ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Formato instrucciones MIPS op target address 0 26 31 6 bits 26 bits op rs rt rd shamt funct 0 6 11 16 21 26 31 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits R-type I-type J-type
Paso 1a: Subset de MIPS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],op rs rt rd shamt funct 0 6 11 16 21 26 31 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
Ejecución de instrucción de máquina ,[object Object],[object Object],[object Object],[object Object],[object Object]
Descripción a nivel de registros (RTL) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Paso 1: Requerimientos del conjunto de instrucciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Paso 2: Componentes de la sección de datos (datapath) ,[object Object],[object Object],[object Object]
Elementos combinacionales Sumador (adder) Multiplexor (MUX) 32 32 A B 32 Sum Carry 32 32 A B 32 Result OP 32 A B 32 Y 32 Select Adder MUX ALU CarryIn Unidad  aritmético-lógica (ALU) Bit Zero Result
Elementos de almacenamiento ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Clk Data In Write Enable N N Data Out
Elementos de almacenamiento ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Clk busW Write Enable 32 32 busA 32 busB 5 5 5 RW RA RB 32 32-bit Registers
Elementos de almacenamiento ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Clk Data In Write Enable 32 32 DataOut Address
Esquema de reloj ,[object Object],Clk Don’t Care Setup Hold . . . . . . . . . . . . Setup Hold
Paso 3: Diseñar datapath ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Paso 3a: Unidad de búsqueda de instrucción ,[object Object],[object Object],[object Object],[object Object],[object Object],32 Instrucción leída PC Clk Address Memoria con Instrucciones Cálculo Próx. Inst.
Unidad de búsqueda de instrucción ,[object Object],Address Memoria con Instrucciones PC Sumador 32 4 Instrucción 32
Unidad de búsqueda de instrucción ,[object Object],Address Memoria con Instrucciones PC Sumador 4 Instrucción 32 Sumador Ext  Signo Despl 2 izq Imm MUX PCsel
Paso 3b: Suma y Resta ,[object Object],[object Object],[object Object],32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32  32 - bit Registros Rs Rt Rd ALU 32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32  32 - bit Rs Rt Rd ALU 32 Resultado ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32  32 - bit Regist Rs Rt Rd ALU op rs rt rd shamt funct 0 6 11 16 21 26 31 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits
Diagrama de tiempo 32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32  32-bit Registers Rs Rt Rd ALU Clk PC Rs, Rt, Rd, Op, Func Clk-to-Q ALUctr Instruction Memory Access Time Old Value New Value RegWr Old Value New Value Delay through Control Logic busA, B Register File Access Time Old Value New Value busW ALU Delay Old Value New Value Old Value New Value New Value Old Value Register Write Occurs Here
Paso 3c: Operaciones lógicas con constantes R[rt]    R[rs] op ZeroExt[imm16] Ejemplo: ori rt, rs, imm16  32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs ZeroExt Mux Rt Rd RegDst Mux 32 16 imm16 ALUSrc ALU Rt ? 32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs ZeroExt Mux Rt Rd RegDst Mux Rt Rd RegDst Mux 32 16 imm16 ALUSrc ALU Rt ? op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits immediate 16 15 31 16 bits 16 bits 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Paso 3d: Lectura de memoria (load) R[rt]    MEM[ R[rs] + SignExt[imm16] ]  Ejemplo: lw rt, rs, imm16 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory 32 ALU MemWr Mux W_Src ?? Rt ? 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory 32 ALU MemWr Mux W_Src ?? Rt ? op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
Paso 3e: Escritura en memoria (store) MEM[ R[rs] + SignExt[imm16] ]    R[rt] Ejemplo: sw rt, rs, imm16 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory MemWr ALU 32 Mux W_Src 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory MemWr ALU 32 Mux W_Src op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
Paso 3f: Salto condicional (branch) beq rs, rt, imm6 Mem[PC] Buscar instrucción de memoria Equal    R[rs] == R[rt] ? Calcular condición de salto If (Equal) Calcular dirección de siguiente instrucción PC    PC + 4 + SignExt(imm16) Else PC    PC + 4 op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
Paso 3f: Salto condicional (branch) beq rs, rt, imm16 Condición generada por datapath 32 imm16 PC Clk 00 Adder Mux Adder 4 nPC_sel Clk busW RegWr 32 busA 32 busB 5 5 5 Rw Ra Rb 32  32 - bit Registers Rs Rt Equal? Cond PC Ext Inst Address 32 imm16 PC Clk 00 Adder Adder Mux Mux Adder 4 Adder Adder 4 nPC_sel Clk busW RegWr 32 busA 32 busB 5 5 5 Rw Ra Rb 32  32 - bit Registers Rs Rt Equal? Cond PC Ext Inst Address op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
En suma: ,[object Object],[object Object],32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Mux MemtoReg Clk Data In WrEn 32 Adr Data Memory 32 MemWr ALU Instruction Fetch Unit Clk Zero Instruction<31:0> 0 1 0 1 0 1 <21:25> <16:20> <11:15> <0:15> Imm16 Rd Rs Rt nPC_sel 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Mux MemtoReg Clk Data In WrEn 32 Adr Data Memory 32 MemWr ALU Instruction Fetch Unit Clk Zero Instruction<31:0> 0 1 0 1 0 1 <21:25> <16:20> <11:15> <0:15> Imm16 Rd Rs Rt nPC_sel
Señales de control nPC_MUX_sel 0    PC    PC + 4 1    PC    PC + 4 + SignExt(imm16) || 00
Señales de Control ExtOp : “zero”, “sign” MemWr : 1    Escribir en memoria ALUSrc : 0    regB; 1    constante MemToReg : 0    ALU; 1    Mem ALUctr : “add”, “sub”, “or” RegDst : 0    “rt”; 1   “rd” RegWr : 1    Escribir en registro
Paso 4: Valores de señales de control
RTL: Add add rd, rs, rt Mem[PC] Búsqueda de instrucción R[rd]    R[rs] + R[rt] Ejecución de instrucción PC    PC + 4 Actualización de PC op rs rt rd shamt funct 0 6 11 16 21 26 31 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits
Unidad de Fetch ,[object Object]
Datapath uniciclo durante “add” R[rd]    R[rs] + R[rt] op rs rt rd shamt funct 0 6 11 16 21 26 31
Unidad de fetch al final de “add” ,[object Object]
Datapath uniciclo durante “ori” R[rt]    R[rs] or ZeroExt(imm16) op rs rt immediate 0 16 21 26 31
Datapath uniciclo durante “lw” R[rt]    Dmem[R[rs]+SignExt(imm16)] op rs rt immediate 0 16 21 26 31
Datapath uniciclo durante “sw” Dmem[R[rs]+SignExt(imm16)]    R[rt] op rs rt immediate 0 16 21 26 31
Datapath uniciclo durante “ beq” If (R[rs] – R[rt] == 0) then Zero    1 Else Zero    0 op rs rt immediate 0 16 21 26 31
Unidad de fetch al final de “beq” If (Zero == 1) then  PC    PC + 4 + SignExt[imm16]*4 Else PC    PC + 4 op rs rt immediate 0 16 21 26 31
Resumen de señales de control Proceso de decodificación de instrucciones consiste en generar estas señales inst  Register Transfer ADD R[rd] < – R[rs ] +  R[rt ]; PC < – PC + 4 ALUsrc =  RegB ,  ALUctr =  “ add ” ,  RegDst = rd,  RegWr ,  nPC_sel =  “ +4 ” SUB R[rd] < – R[rs ]  – R[rt ]; PC < – PC + 4 ALUsrc =  RegB ,  ALUctr =  “ sub ” ,  RegDst = rd,  RegWr ,  nPC_sel =  “ +4 ” ORi R[rt ] < – R[rs ] + zero_ext(Imm16);  PC < – PC + 4 ALUsrc =  Im ,  Extop =  “ Z ” ,  ALUctr =  “ or ” ,  RegDst =  rt ,  RegWr ,  nPC_sel =  “ +4 ” LOAD R[rt ] < – MEM[  R[rs ] + sign_ext(Imm16)]; PC < – PC + 4 ALUsrc =  Im ,  Extop =  “ Sn ” ,  ALUctr =  “ add ” ,  MemtoReg ,  RegDst =  rt ,  RegWr ,  nPC_sel =  “ +4 ” STORE MEM[  R[rs ] + sign_ext(Imm16)] < – R[rs ]; PC < – PC + 4 ALUsrc =  Im ,  Extop =  “ Sn ” ,  ALUctr =  “ add ” ,  MemWr ,  nPC_sel =  “ +4 ” BEQ if (  R[rs ] ==  R[rt ] ) then PC < – PC + sign_ext(Imm16)] || 00 else PC < – PC + 4 nPC_sel =  “ Br ” ,  ALUctr =  “ sub ” Instrucción  Transferencia de registros ADD R[rd] < – R[rs ] +  R[rt ]; PC < – PC + 4 ALUsrc =  RegB ,  ALUctr =  “ add ” ,  RegDst = rd,  RegWr ,  nPC_sel =  “ +4 ” SUB R[rd] < – R[rs ]  – R[rt ]; PC < – PC + 4 ALUsrc =  RegB ,  ALUctr =  “ sub ” ,  RegDst = rd,  RegWr ,  nPC_sel =  “ +4 ” ORi R[rt ] < – R[rs ] + zero_ext(Imm16);  PC < – PC + 4 ALUsrc =  Im ,  Extop =  “ Z ” ,  ALUctr =  “ or ” ,  RegDst =  rt ,  RegWr ,  nPC_sel =  “ +4 ” LOAD R[rt ] < – MEM[  R[rs ] + sign_ext(Imm16)]; PC < – PC + 4 ALUsrc =  Im ,  Extop =  “ Sn ” ,  ALUctr =  “ add ” ,  MemtoReg ,  RegDst =  rt ,  RegWr ,  nPC_sel =  “ +4 ” STORE MEM[  R[rs ] + sign_ext(Imm16)] < – R[rs ]; PC < – PC + 4 ALUsrc =  Im ,  Extop =  “ Sn ” ,  ALUctr =  “ add ” ,  MemWr ,  nPC_sel =  “ +4 ” BEQ if (  R[rs ] ==  R[rt ] ) then PC < – PC + 4 +  sign_ext(Imm16)] || 00 else PC < – PC + 4 nPC_sel =  “ Br ” ,  ALUctr =  “ sub ”
Paso 5: Diseñar lógica de control ALUctr RegDst ALUSrc ExtOp MemtoReg MemWr Equal Instrucción<31:0> <21:25> <16:20> <11:15> <0:15> Imm16 Rd Rs Rt nPC_sel Adr Memoria Instruccion SECCIÓN DE DATOS Decoder Op <21:25> Fun RegWr
Resumen de señales de control  add sub ori lw sw beq RegDst ALUSrc MemtoReg RegWrite MemWrite nPCsel ExtOp ALUctr<2:0> 1 0 0 1 0 0 x Add 1 0 0 1 0 0 x Subtract 0 1 0 1 0 0 0 Or 0 1 1 1 0 0 1 Add x 1 x 0 1 0 1 Add x 0 x 0 0 1 x Subtract func op 00 0000 00 0000 00 1101 10 0011 10 1011 00 0100 Appendix A 10 0000 Ver 10 0010 No interesa op target address op rs rt rd shamt funct 0 6 11 16 21 26 31 op rs rt immediate R-type I-type J-type add, sub ori, lw, sw, beq jump
Decodificación local Unidad de control decodifica parte de la instrucción y ALU hace su propia decodificación local R-type ori lw sw beq RegDst ALUSrc MemtoReg RegWrite MemWrite Branch ExtOp ALUop<N:0> 1 0 0 1 0 0 x “ R-type” 0 1 0 1 0 0 0 Or 0 1 1 1 0 0 1 Add x 1 x 0 1 0 1 Add x 0 x 0 0 1 x Subtract op 00 0000 00 1101 10 0011 10 1011 00 0100
Codificación para ALUop ALUop: Instrucciones tipo ‘R’; instrucciones tipo ‘I’ (or, add, subtract)     2 bits R-type ori lw sw beq ALUop (Symbolic) “ R-type” Or Add Add Subtract ALUop<2:0> 1 00 0 10 0 00 0 00 0 01
Decodificación de campo ‘func’ op rs rt rd shamt funct 0 6 11 16 21 26 31 R-type R-type ori lw sw beq ALUop (Symbolic) “ R-type” Or Add Add Subtract ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 funct<5:0> Instruction Operation 10 0000 10 0010 10 0100 10 0101 10 1010 add subtract and or set-on-less-than ALUctr<2:0> ALU Operation 000 001 010 110 111 And Or Add Subtract Set-on-less-than ALUctr ALU
Tabla de verdad para ALUctr R-type ori lw sw beq ALUop (Symbolic) “ R-type” Or Add Add Subtract ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 ALUop func bit<2> bit<1> bit<0> bit<2> bit<1> bit<0> bit<3> 0 0 0 x x x x ALUctr ALU Operation Add 0 1 0 bit<2> bit<1> bit<0> 0 x 1 x x x x Subtract 1 1 0 0 1 x x x x x Or 0 0 1 1 x x 0 0 0 0 Add 0 1 0 1 x x 0 0 1 0 Subtract 1 1 0 1 x x 0 1 0 0 And 0 0 0 1 x x 0 1 0 1 Or 0 0 1 1 x x 1 0 1 0 Set on < 1 1 1 funct<3:0> Instruction Op. 0000 0010 0100 0101 1010 add subtract and or set-on-less-than
Desventajas de procesador uniclo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],PC Inst Memory mux ALU Data  Mem mux PC Reg File Inst Memory mux ALU mux PC Inst Memory mux ALU Data  Mem PC Inst Memory cmp mux Reg File Reg File Reg File Arithmetic & Logical Load Store Branch Critical Path setup setup PC Inst Memory mux ALU Data  Mem mux PC Reg File Inst Memory mux ALU mux PC Inst Memory mux ALU Data  Mem PC Inst Memory cmp mux Reg File Reg File Reg File Arithmetic & Logical Load Store Branch Camino Crítico  setup setup
Peor caso: instrucción load Critical Path (Load Operation) =  PC ’ s  Clk - to - Q + Instruction Memory ’ s Access Time + Register File ’ s Access Time + ALU to Perform a 32 - bit Add + Data Memory Access Time + Setup Time for Register File Write + Clock Skew Clk 5 Rw Ra Rb 32 32 - bit Registers Rd ALU Clk Data  In Data Address Ideal Data Memory Instruction Instruction Address Ideal Instruction Memory Clk PC 5 Rs 5 Rt 16 Imm 32 32 32 32 A B Next Address Camino Crítico (Instrucción Load) =  Tiempo acceso PC + Tiempo de acceso a la memoria + Tiempo de acceso a Banco Reg + ’ ALU para realizar suma de 32 bits+ - Tiempo acceso memoria de datos + Tiempo de seteo escritura en BReg + Clock Skew Clk 5 Rw Ra Rb 32 32 - bit Registros Rd ALU ALU Clk Data  In Dir. Data Ideal Memoria Datos Instrucción Dirección Instrucción Ideal Memoria Instrucción Clk PC 5 Rs 5 Rt 16 Imm 32 32 32 32 A B Próx.  Dir.
Ejemplo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Solución Banco registros Fetch Jump Memoria ALU Banco registros Fetch Store ALU Banco registros Fetch Branch Memoria ALU Banco registros Fetch Load Banco registros ALU Banco registros Fetch ALU Uso de unidades funcionales Tipo de instrucción
Solución Período de reloj ciclo fijo: 8ns Período de reloj ciclo variable: 6*0.44 + 8*0.24 + 7*0.12 + 5*0.18 + 2*0.02 = 6.3ns Aceleración = 1.27 2 2 Memoria datos 2 2 2 2 ALU 1 1 1 1 Lectura banco registros 2 2 2 2 2 Memoria de instrucción Jump Branch Store Load ALU Tipo de instrucción 2ns 7ns 8ns 6ns Total 1 1 Escritura banco registros
Ejemplo Suponer una unidad de punto flotante que suma o resta en 8ns y multiplica o divide en 16ns. Todas las otras unidades funcionales tienen los retardos del ejemplo anterior. ¿Qué tanto más rápida es la implementación de reloj de período variable versus la de reloj de período fijo? Asumir que las frecuencias de ejecución son: 31% loads, 21% stores, ALU 27%, saltos condicionales 5%, saltos absolutos 2%, suma/resta de punto flotante 7%, y multiplicación/división de punto flotante 7%. Tiempo de ejecución suma/resta de punto flotante = 2 + 1 + 8 + 1 = 12ns Tiempo de ejecución multiplicación/división de punto flotante = 2 + 1 + 16 + 1 = 20ns Ciclo de reloj período fijo = 20ns Ciclo de reloj promedio período variable = 8*0.31 + 7*0.21 + 6*0.27 + 5*0.05 + 2*0.02+ 12*0.07 + 20*0.07 = 8.1ns Aceleración = 20/8.1 = 2.47
Mejorando el desempeño ,[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Formatos de instrucción
Formatos de instrucciónFormatos de instrucción
Formatos de instrucciónSantiago Rozo
 
Registros del cpu!
Registros del cpu!Registros del cpu!
Registros del cpu!romo91
 
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computadorUnidad 2 arquitectura del computador
Unidad 2 arquitectura del computadorCristhixn Leon
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 
Registros del procesador 01
Registros del procesador 01Registros del procesador 01
Registros del procesador 01Isaias Castro
 
Esquema unidad de control (miguel rivera)
Esquema unidad de control (miguel rivera)Esquema unidad de control (miguel rivera)
Esquema unidad de control (miguel rivera)itzelk
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Videoconferencias UTPL
 
Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de InstruccionesArquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de InstruccionesVideoconferencias UTPL
 
El procesador y sus registros internos
El procesador y sus registros internosEl procesador y sus registros internos
El procesador y sus registros internosromo91
 
Modos de Direccionamiento del Procesador
Modos de Direccionamiento del ProcesadorModos de Direccionamiento del Procesador
Modos de Direccionamiento del ProcesadorCloud Rodriguez
 
Von neuman
Von neumanVon neuman
Von neumantuxman82
 
Arquitectura interna
Arquitectura internaArquitectura interna
Arquitectura internagbermeo
 
Ac iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauara
Ac iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauaraAc iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauara
Ac iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauarazumichibie
 

What's hot (20)

Formatos de instrucción
Formatos de instrucciónFormatos de instrucción
Formatos de instrucción
 
Registros del cpu!
Registros del cpu!Registros del cpu!
Registros del cpu!
 
Lenguaje de Transferencia de Registro
Lenguaje de Transferencia de RegistroLenguaje de Transferencia de Registro
Lenguaje de Transferencia de Registro
 
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computadorUnidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Registros del procesador 01
Registros del procesador 01Registros del procesador 01
Registros del procesador 01
 
Esquema unidad de control (miguel rivera)
Esquema unidad de control (miguel rivera)Esquema unidad de control (miguel rivera)
Esquema unidad de control (miguel rivera)
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)
 
Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de InstruccionesArquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
 
El procesador y sus registros internos
El procesador y sus registros internosEl procesador y sus registros internos
El procesador y sus registros internos
 
2.3.1
2.3.12.3.1
2.3.1
 
Curso de pic
Curso de picCurso de pic
Curso de pic
 
Ut03 1 cpu
Ut03 1 cpuUt03 1 cpu
Ut03 1 cpu
 
Procesamiento segmentado
Procesamiento segmentado   Procesamiento segmentado
Procesamiento segmentado
 
Modos de Direccionamiento del Procesador
Modos de Direccionamiento del ProcesadorModos de Direccionamiento del Procesador
Modos de Direccionamiento del Procesador
 
Von neuman
Von neumanVon neuman
Von neuman
 
Arquitectura interna
Arquitectura internaArquitectura interna
Arquitectura interna
 
Animacion Ucp
Animacion UcpAnimacion Ucp
Animacion Ucp
 
Ac iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauara
Ac iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauaraAc iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauara
Ac iinf u1_arq_basicatiposarq_peñalozadenissezuñigalauara
 
2.2 y 2.3
2.2 y 2.32.2 y 2.3
2.2 y 2.3
 

Viewers also liked

Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...
Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...
Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...Market Engel SAS
 
Document
DocumentDocument
DocumentViewOn
 
Tou.Tv un projet d'innovation
Tou.Tv un projet d'innovationTou.Tv un projet d'innovation
Tou.Tv un projet d'innovationAlain Bidjerano
 
Estandards i educació
Estandards i educacióEstandards i educació
Estandards i educacióatallada
 
Journée de la fidélité : sondage sur les cartes et les programmes de fidélité
Journée de la fidélité : sondage sur les cartes et les programmes de fidélitéJournée de la fidélité : sondage sur les cartes et les programmes de fidélité
Journée de la fidélité : sondage sur les cartes et les programmes de fidélitéThierry Spencer
 
Standard Lease Net Net Edited 2
Standard Lease Net Net Edited 2Standard Lease Net Net Edited 2
Standard Lease Net Net Edited 2guest36fc5f
 
Atelier partage photos-videos
Atelier partage photos-videosAtelier partage photos-videos
Atelier partage photos-videosMorgane Conseil
 
Presentation de prototypes pour la médiation numérique du livre
Presentation de prototypes pour la médiation numérique du livrePresentation de prototypes pour la médiation numérique du livre
Presentation de prototypes pour la médiation numérique du livreLorenzo Soccavo
 
As melhores fotos de 2009
As melhores fotos de 2009As melhores fotos de 2009
As melhores fotos de 2009Teresa Almeida
 
Veille Economie Numérique 090211
Veille Economie Numérique 090211Veille Economie Numérique 090211
Veille Economie Numérique 090211Agence Elan
 
SAINT-WITZ DEMAIN #2 - Janv 2014
SAINT-WITZ DEMAIN #2 - Janv 2014 SAINT-WITZ DEMAIN #2 - Janv 2014
SAINT-WITZ DEMAIN #2 - Janv 2014 SAINT-WITZ DEMAIN
 

Viewers also liked (20)

ISTG AC
ISTG AC ISTG AC
ISTG AC
 
Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...
Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...
Proposition de règlement du Parlement Europeen et du Conseil Europeen sur l'i...
 
Document
DocumentDocument
Document
 
Ruido en los ojos
Ruido en los ojosRuido en los ojos
Ruido en los ojos
 
Tou.Tv un projet d'innovation
Tou.Tv un projet d'innovationTou.Tv un projet d'innovation
Tou.Tv un projet d'innovation
 
Estandards i educació
Estandards i educacióEstandards i educació
Estandards i educació
 
Journée de la fidélité : sondage sur les cartes et les programmes de fidélité
Journée de la fidélité : sondage sur les cartes et les programmes de fidélitéJournée de la fidélité : sondage sur les cartes et les programmes de fidélité
Journée de la fidélité : sondage sur les cartes et les programmes de fidélité
 
Standard Lease Net Net Edited 2
Standard Lease Net Net Edited 2Standard Lease Net Net Edited 2
Standard Lease Net Net Edited 2
 
Plan de travail
Plan de travailPlan de travail
Plan de travail
 
Atelier partage photos-videos
Atelier partage photos-videosAtelier partage photos-videos
Atelier partage photos-videos
 
1752M12_EAF5_Presentacio_G6
1752M12_EAF5_Presentacio_G61752M12_EAF5_Presentacio_G6
1752M12_EAF5_Presentacio_G6
 
Rebeca canvis de fa 60 anys2
Rebeca canvis de fa 60 anys2Rebeca canvis de fa 60 anys2
Rebeca canvis de fa 60 anys2
 
My Mini Monster
My Mini MonsterMy Mini Monster
My Mini Monster
 
Marianne CV Français
Marianne CV FrançaisMarianne CV Français
Marianne CV Français
 
Presentation de prototypes pour la médiation numérique du livre
Presentation de prototypes pour la médiation numérique du livrePresentation de prototypes pour la médiation numérique du livre
Presentation de prototypes pour la médiation numérique du livre
 
As melhores fotos de 2009
As melhores fotos de 2009As melhores fotos de 2009
As melhores fotos de 2009
 
Veille Economie Numérique 090211
Veille Economie Numérique 090211Veille Economie Numérique 090211
Veille Economie Numérique 090211
 
Coalicion Antioquia
Coalicion AntioquiaCoalicion Antioquia
Coalicion Antioquia
 
Planon Site Alpha - Aspaway : Quels commerciaux pour vendre du SaaS
Planon Site Alpha - Aspaway : Quels commerciaux pour vendre du SaaSPlanon Site Alpha - Aspaway : Quels commerciaux pour vendre du SaaS
Planon Site Alpha - Aspaway : Quels commerciaux pour vendre du SaaS
 
SAINT-WITZ DEMAIN #2 - Janv 2014
SAINT-WITZ DEMAIN #2 - Janv 2014 SAINT-WITZ DEMAIN #2 - Janv 2014
SAINT-WITZ DEMAIN #2 - Janv 2014
 

Similar to C P U Uniciclo

Introducción a la programacion Pic16F84
Introducción a la programacion Pic16F84Introducción a la programacion Pic16F84
Introducción a la programacion Pic16F84Daniel Remondegui
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84guestf09168b
 
Solucion examenfeb12
Solucion examenfeb12Solucion examenfeb12
Solucion examenfeb12xavazquez
 
UNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptx
UNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptxUNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptx
UNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptxSamAladoVz1
 
Ec2721 clase - camino de datos - mic1
Ec2721   clase - camino de datos - mic1Ec2721   clase - camino de datos - mic1
Ec2721 clase - camino de datos - mic1Luis Guerrero Garcia
 
Estrucutura de computadoras
Estrucutura de computadorasEstrucutura de computadoras
Estrucutura de computadorasJiphson5
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadoresupc
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadoresupc
 
upc algoritmos 02
upc algoritmos 02upc algoritmos 02
upc algoritmos 02upc
 

Similar to C P U Uniciclo (20)

Diseño de una computadora básica
Diseño de una computadora básicaDiseño de una computadora básica
Diseño de una computadora básica
 
Arquitectura De Los Computadore
Arquitectura De Los ComputadoreArquitectura De Los Computadore
Arquitectura De Los Computadore
 
Codificacion
CodificacionCodificacion
Codificacion
 
Pic16f84(1)
Pic16f84(1)Pic16f84(1)
Pic16f84(1)
 
Introducción a la programacion Pic16F84
Introducción a la programacion Pic16F84Introducción a la programacion Pic16F84
Introducción a la programacion Pic16F84
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Solucion examenfeb12
Solucion examenfeb12Solucion examenfeb12
Solucion examenfeb12
 
UNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptx
UNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptxUNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptx
UNIDAD I - C - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptx
 
Concepto
ConceptoConcepto
Concepto
 
Arquitectura isa 1
Arquitectura isa 1Arquitectura isa 1
Arquitectura isa 1
 
MICROPROCESADOR UNICICLO
MICROPROCESADOR UNICICLOMICROPROCESADOR UNICICLO
MICROPROCESADOR UNICICLO
 
Ec2721 clase - camino de datos - mic1
Ec2721   clase - camino de datos - mic1Ec2721   clase - camino de datos - mic1
Ec2721 clase - camino de datos - mic1
 
Estrucutura de computadoras
Estrucutura de computadorasEstrucutura de computadoras
Estrucutura de computadoras
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
upc algoritmos 02
upc algoritmos 02upc algoritmos 02
upc algoritmos 02
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Microcontrolador
MicrocontroladorMicrocontrolador
Microcontrolador
 

More from Stefano Salvatori (20)

Salida a Volcán Copahue Febrero 2011
Salida a Volcán Copahue Febrero 2011Salida a Volcán Copahue Febrero 2011
Salida a Volcán Copahue Febrero 2011
 
Salida a Aguas Calientes abril 2011
Salida a Aguas Calientes abril 2011Salida a Aguas Calientes abril 2011
Salida a Aguas Calientes abril 2011
 
Sistema de capas
Sistema de capasSistema de capas
Sistema de capas
 
Enumeracion de Goedel
Enumeracion de GoedelEnumeracion de Goedel
Enumeracion de Goedel
 
Maquinas Abstractas
Maquinas AbstractasMaquinas Abstractas
Maquinas Abstractas
 
Memoria I I
Memoria  I IMemoria  I I
Memoria I I
 
I S A
I S AI S A
I S A
 
Mips1
Mips1Mips1
Mips1
 
Exc Int
Exc IntExc Int
Exc Int
 
DesempeñO
DesempeñODesempeñO
DesempeñO
 
Mips
MipsMips
Mips
 
Memoria I
Memoria  IMemoria  I
Memoria I
 
Hebras
HebrasHebras
Hebras
 
Semaforos
SemaforosSemaforos
Semaforos
 
Planificacion Procesos Gral
Planificacion Procesos GralPlanificacion Procesos Gral
Planificacion Procesos Gral
 
Memoria Soporte Hw
Memoria Soporte HwMemoria Soporte Hw
Memoria Soporte Hw
 
Hebras En Accion
Hebras En AccionHebras En Accion
Hebras En Accion
 
Administracion de Memoria
Administracion de MemoriaAdministracion de Memoria
Administracion de Memoria
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Sincronizacion
SincronizacionSincronizacion
Sincronizacion
 

Recently uploaded

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Recently uploaded (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

C P U Uniciclo

  • 1. Organzación de CPU Cecilia Hernández
  • 3. Diseño de Procesador Sección de Datos y Control JerarquíaMemoria Control ALU Registers PC estado Bus Memoria CPU Sección de datos Combinational Secuencial
  • 4.
  • 5.
  • 6.
  • 7. Formato instrucciones MIPS op target address 0 26 31 6 bits 26 bits op rs rt rd shamt funct 0 6 11 16 21 26 31 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits R-type I-type J-type
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Elementos combinacionales Sumador (adder) Multiplexor (MUX) 32 32 A B 32 Sum Carry 32 32 A B 32 Result OP 32 A B 32 Y 32 Select Adder MUX ALU CarryIn Unidad aritmético-lógica (ALU) Bit Zero Result
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Diagrama de tiempo 32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32-bit Registers Rs Rt Rd ALU Clk PC Rs, Rt, Rd, Op, Func Clk-to-Q ALUctr Instruction Memory Access Time Old Value New Value RegWr Old Value New Value Delay through Control Logic busA, B Register File Access Time Old Value New Value busW ALU Delay Old Value New Value Old Value New Value New Value Old Value Register Write Occurs Here
  • 24. Paso 3c: Operaciones lógicas con constantes R[rt]  R[rs] op ZeroExt[imm16] Ejemplo: ori rt, rs, imm16 32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs ZeroExt Mux Rt Rd RegDst Mux 32 16 imm16 ALUSrc ALU Rt ? 32 Result ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs ZeroExt Mux Rt Rd RegDst Mux Rt Rd RegDst Mux 32 16 imm16 ALUSrc ALU Rt ? op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits immediate 16 15 31 16 bits 16 bits 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 25. Paso 3d: Lectura de memoria (load) R[rt]  MEM[ R[rs] + SignExt[imm16] ] Ejemplo: lw rt, rs, imm16 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory 32 ALU MemWr Mux W_Src ?? Rt ? 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory 32 ALU MemWr Mux W_Src ?? Rt ? op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
  • 26. Paso 3e: Escritura en memoria (store) MEM[ R[rs] + SignExt[imm16] ]  R[rt] Ejemplo: sw rt, rs, imm16 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory MemWr ALU 32 Mux W_Src 32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory MemWr ALU 32 Mux W_Src op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
  • 27. Paso 3f: Salto condicional (branch) beq rs, rt, imm6 Mem[PC] Buscar instrucción de memoria Equal  R[rs] == R[rt] ? Calcular condición de salto If (Equal) Calcular dirección de siguiente instrucción PC  PC + 4 + SignExt(imm16) Else PC  PC + 4 op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
  • 28. Paso 3f: Salto condicional (branch) beq rs, rt, imm16 Condición generada por datapath 32 imm16 PC Clk 00 Adder Mux Adder 4 nPC_sel Clk busW RegWr 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Equal? Cond PC Ext Inst Address 32 imm16 PC Clk 00 Adder Adder Mux Mux Adder 4 Adder Adder 4 nPC_sel Clk busW RegWr 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32 - bit Registers Rs Rt Equal? Cond PC Ext Inst Address op rs rt immediate 0 16 21 26 31 6 bits 16 bits 5 bits 5 bits
  • 29.
  • 30. Señales de control nPC_MUX_sel 0  PC  PC + 4 1  PC  PC + 4 + SignExt(imm16) || 00
  • 31. Señales de Control ExtOp : “zero”, “sign” MemWr : 1  Escribir en memoria ALUSrc : 0  regB; 1  constante MemToReg : 0  ALU; 1  Mem ALUctr : “add”, “sub”, “or” RegDst : 0  “rt”; 1  “rd” RegWr : 1  Escribir en registro
  • 32. Paso 4: Valores de señales de control
  • 33. RTL: Add add rd, rs, rt Mem[PC] Búsqueda de instrucción R[rd]  R[rs] + R[rt] Ejecución de instrucción PC  PC + 4 Actualización de PC op rs rt rd shamt funct 0 6 11 16 21 26 31 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits
  • 34.
  • 35. Datapath uniciclo durante “add” R[rd]  R[rs] + R[rt] op rs rt rd shamt funct 0 6 11 16 21 26 31
  • 36.
  • 37. Datapath uniciclo durante “ori” R[rt]  R[rs] or ZeroExt(imm16) op rs rt immediate 0 16 21 26 31
  • 38. Datapath uniciclo durante “lw” R[rt]  Dmem[R[rs]+SignExt(imm16)] op rs rt immediate 0 16 21 26 31
  • 39. Datapath uniciclo durante “sw” Dmem[R[rs]+SignExt(imm16)]  R[rt] op rs rt immediate 0 16 21 26 31
  • 40. Datapath uniciclo durante “ beq” If (R[rs] – R[rt] == 0) then Zero  1 Else Zero  0 op rs rt immediate 0 16 21 26 31
  • 41. Unidad de fetch al final de “beq” If (Zero == 1) then PC  PC + 4 + SignExt[imm16]*4 Else PC  PC + 4 op rs rt immediate 0 16 21 26 31
  • 42. Resumen de señales de control Proceso de decodificación de instrucciones consiste en generar estas señales inst Register Transfer ADD R[rd] < – R[rs ] + R[rt ]; PC < – PC + 4 ALUsrc = RegB , ALUctr = “ add ” , RegDst = rd, RegWr , nPC_sel = “ +4 ” SUB R[rd] < – R[rs ] – R[rt ]; PC < – PC + 4 ALUsrc = RegB , ALUctr = “ sub ” , RegDst = rd, RegWr , nPC_sel = “ +4 ” ORi R[rt ] < – R[rs ] + zero_ext(Imm16); PC < – PC + 4 ALUsrc = Im , Extop = “ Z ” , ALUctr = “ or ” , RegDst = rt , RegWr , nPC_sel = “ +4 ” LOAD R[rt ] < – MEM[ R[rs ] + sign_ext(Imm16)]; PC < – PC + 4 ALUsrc = Im , Extop = “ Sn ” , ALUctr = “ add ” , MemtoReg , RegDst = rt , RegWr , nPC_sel = “ +4 ” STORE MEM[ R[rs ] + sign_ext(Imm16)] < – R[rs ]; PC < – PC + 4 ALUsrc = Im , Extop = “ Sn ” , ALUctr = “ add ” , MemWr , nPC_sel = “ +4 ” BEQ if ( R[rs ] == R[rt ] ) then PC < – PC + sign_ext(Imm16)] || 00 else PC < – PC + 4 nPC_sel = “ Br ” , ALUctr = “ sub ” Instrucción Transferencia de registros ADD R[rd] < – R[rs ] + R[rt ]; PC < – PC + 4 ALUsrc = RegB , ALUctr = “ add ” , RegDst = rd, RegWr , nPC_sel = “ +4 ” SUB R[rd] < – R[rs ] – R[rt ]; PC < – PC + 4 ALUsrc = RegB , ALUctr = “ sub ” , RegDst = rd, RegWr , nPC_sel = “ +4 ” ORi R[rt ] < – R[rs ] + zero_ext(Imm16); PC < – PC + 4 ALUsrc = Im , Extop = “ Z ” , ALUctr = “ or ” , RegDst = rt , RegWr , nPC_sel = “ +4 ” LOAD R[rt ] < – MEM[ R[rs ] + sign_ext(Imm16)]; PC < – PC + 4 ALUsrc = Im , Extop = “ Sn ” , ALUctr = “ add ” , MemtoReg , RegDst = rt , RegWr , nPC_sel = “ +4 ” STORE MEM[ R[rs ] + sign_ext(Imm16)] < – R[rs ]; PC < – PC + 4 ALUsrc = Im , Extop = “ Sn ” , ALUctr = “ add ” , MemWr , nPC_sel = “ +4 ” BEQ if ( R[rs ] == R[rt ] ) then PC < – PC + 4 + sign_ext(Imm16)] || 00 else PC < – PC + 4 nPC_sel = “ Br ” , ALUctr = “ sub ”
  • 43. Paso 5: Diseñar lógica de control ALUctr RegDst ALUSrc ExtOp MemtoReg MemWr Equal Instrucción<31:0> <21:25> <16:20> <11:15> <0:15> Imm16 Rd Rs Rt nPC_sel Adr Memoria Instruccion SECCIÓN DE DATOS Decoder Op <21:25> Fun RegWr
  • 44. Resumen de señales de control add sub ori lw sw beq RegDst ALUSrc MemtoReg RegWrite MemWrite nPCsel ExtOp ALUctr<2:0> 1 0 0 1 0 0 x Add 1 0 0 1 0 0 x Subtract 0 1 0 1 0 0 0 Or 0 1 1 1 0 0 1 Add x 1 x 0 1 0 1 Add x 0 x 0 0 1 x Subtract func op 00 0000 00 0000 00 1101 10 0011 10 1011 00 0100 Appendix A 10 0000 Ver 10 0010 No interesa op target address op rs rt rd shamt funct 0 6 11 16 21 26 31 op rs rt immediate R-type I-type J-type add, sub ori, lw, sw, beq jump
  • 45. Decodificación local Unidad de control decodifica parte de la instrucción y ALU hace su propia decodificación local R-type ori lw sw beq RegDst ALUSrc MemtoReg RegWrite MemWrite Branch ExtOp ALUop<N:0> 1 0 0 1 0 0 x “ R-type” 0 1 0 1 0 0 0 Or 0 1 1 1 0 0 1 Add x 1 x 0 1 0 1 Add x 0 x 0 0 1 x Subtract op 00 0000 00 1101 10 0011 10 1011 00 0100
  • 46. Codificación para ALUop ALUop: Instrucciones tipo ‘R’; instrucciones tipo ‘I’ (or, add, subtract)  2 bits R-type ori lw sw beq ALUop (Symbolic) “ R-type” Or Add Add Subtract ALUop<2:0> 1 00 0 10 0 00 0 00 0 01
  • 47. Decodificación de campo ‘func’ op rs rt rd shamt funct 0 6 11 16 21 26 31 R-type R-type ori lw sw beq ALUop (Symbolic) “ R-type” Or Add Add Subtract ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 funct<5:0> Instruction Operation 10 0000 10 0010 10 0100 10 0101 10 1010 add subtract and or set-on-less-than ALUctr<2:0> ALU Operation 000 001 010 110 111 And Or Add Subtract Set-on-less-than ALUctr ALU
  • 48. Tabla de verdad para ALUctr R-type ori lw sw beq ALUop (Symbolic) “ R-type” Or Add Add Subtract ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 ALUop func bit<2> bit<1> bit<0> bit<2> bit<1> bit<0> bit<3> 0 0 0 x x x x ALUctr ALU Operation Add 0 1 0 bit<2> bit<1> bit<0> 0 x 1 x x x x Subtract 1 1 0 0 1 x x x x x Or 0 0 1 1 x x 0 0 0 0 Add 0 1 0 1 x x 0 0 1 0 Subtract 1 1 0 1 x x 0 1 0 0 And 0 0 0 1 x x 0 1 0 1 Or 0 0 1 1 x x 1 0 1 0 Set on < 1 1 1 funct<3:0> Instruction Op. 0000 0010 0100 0101 1010 add subtract and or set-on-less-than
  • 49.
  • 50. Peor caso: instrucción load Critical Path (Load Operation) = PC ’ s Clk - to - Q + Instruction Memory ’ s Access Time + Register File ’ s Access Time + ALU to Perform a 32 - bit Add + Data Memory Access Time + Setup Time for Register File Write + Clock Skew Clk 5 Rw Ra Rb 32 32 - bit Registers Rd ALU Clk Data In Data Address Ideal Data Memory Instruction Instruction Address Ideal Instruction Memory Clk PC 5 Rs 5 Rt 16 Imm 32 32 32 32 A B Next Address Camino Crítico (Instrucción Load) = Tiempo acceso PC + Tiempo de acceso a la memoria + Tiempo de acceso a Banco Reg + ’ ALU para realizar suma de 32 bits+ - Tiempo acceso memoria de datos + Tiempo de seteo escritura en BReg + Clock Skew Clk 5 Rw Ra Rb 32 32 - bit Registros Rd ALU ALU Clk Data In Dir. Data Ideal Memoria Datos Instrucción Dirección Instrucción Ideal Memoria Instrucción Clk PC 5 Rs 5 Rt 16 Imm 32 32 32 32 A B Próx. Dir.
  • 51.
  • 52. Solución Banco registros Fetch Jump Memoria ALU Banco registros Fetch Store ALU Banco registros Fetch Branch Memoria ALU Banco registros Fetch Load Banco registros ALU Banco registros Fetch ALU Uso de unidades funcionales Tipo de instrucción
  • 53. Solución Período de reloj ciclo fijo: 8ns Período de reloj ciclo variable: 6*0.44 + 8*0.24 + 7*0.12 + 5*0.18 + 2*0.02 = 6.3ns Aceleración = 1.27 2 2 Memoria datos 2 2 2 2 ALU 1 1 1 1 Lectura banco registros 2 2 2 2 2 Memoria de instrucción Jump Branch Store Load ALU Tipo de instrucción 2ns 7ns 8ns 6ns Total 1 1 Escritura banco registros
  • 54. Ejemplo Suponer una unidad de punto flotante que suma o resta en 8ns y multiplica o divide en 16ns. Todas las otras unidades funcionales tienen los retardos del ejemplo anterior. ¿Qué tanto más rápida es la implementación de reloj de período variable versus la de reloj de período fijo? Asumir que las frecuencias de ejecución son: 31% loads, 21% stores, ALU 27%, saltos condicionales 5%, saltos absolutos 2%, suma/resta de punto flotante 7%, y multiplicación/división de punto flotante 7%. Tiempo de ejecución suma/resta de punto flotante = 2 + 1 + 8 + 1 = 12ns Tiempo de ejecución multiplicación/división de punto flotante = 2 + 1 + 16 + 1 = 20ns Ciclo de reloj período fijo = 20ns Ciclo de reloj promedio período variable = 8*0.31 + 7*0.21 + 6*0.27 + 5*0.05 + 2*0.02+ 12*0.07 + 20*0.07 = 8.1ns Aceleración = 20/8.1 = 2.47
  • 55.