1 / 39

Verano 2004

Organización del Computador I Verano Procesador Uniciclo Basado en el capítulo 5 del libro de Patterson y Hennessy. Verano 2004. Profesora Borensztejn. Diseño del procesador uniciclo. Cada instrucción se ejecuta en un único ciclo de reloj CPI=1 para todas las instrucciones

milton
Download Presentation

Verano 2004

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Organización del Computador I VeranoProcesador Uniciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn Diseño del procesador uniciclo

  2. Diseño del procesador uniciclo • Cada instrucción se ejecuta en un único ciclo de reloj • CPI=1 para todas las instrucciones • El período de reloj debe ser el de la instrucción más costosa: camino crítico • Diseño poco flexible, pero fácil de comprender! Y de implementar!! Diseño del procesador uniciclo

  3. Metodología de sincronización Lógica Combinatoria estado estado El ciclo de reloj debe permitir que las salidas del bloque combinacional se estabilicen Actualización del estado Diseño del procesador uniciclo

  4. Metodología de sincronización Lógica Combinatoria estado Lectura y lógica Actualización del estado Un elemento de estado puede leerse y escribirse en el mismo ciclo. Diseño del procesador uniciclo

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

  6. op rs rt Address/inmediate 1er Paso: Formato MIPS de Instrucción Son todas de 32 bits. Tres formatos: • Tipo R • Tipo I • Tipo J 31 26 21 16 11 6 0 shamt funct op rs rt rd 31 26 21 16 0 31 26 0 op Target Address Diseño del procesador uniciclo

  7. 31 26 21 16 11 6 0 shamt funct op rs rt rd op op rs rs rt rt Address/inmediate Address/inmediate 1er Paso: Subconjunto MIPS • ADD y SUB • addu rd ,rs ,rt • subu rd, rs ,rt • OR inmediato • ori rt, rs, inm16 • LOAD and STORE • lw rt, rs, inm16 • sw rt, rs, inm16 • BRANCH • beq rs, rt, inm16 31 26 21 16 0 31 26 21 16 0 op rs rt Address/inmediate 31 26 21 16 0 Diseño del procesador uniciclo

  8. 1er Paso: RTL Todas las instrucciones comienzan haciendo el fetch ADDU R[rd]<--R[rs]+R[rt]; PC<--PC+4 SUBU R[rd]<--R[rs]-R[rt]; PC<--PC+4 ORI R[rt]<--R[rs]|zero_ext(Inm16); PC<--PC+4 LOAD R[rt]<--Mem[R[rs]+sign_ext(Inm16)]; PC<--PC+4 STORE Mem[R[rs]+sign_ext(Inm16)]<-- R[rt]; PC<--PC+4 BEQ if (R[rs]==R[rt]) then PC<--PC+4+(sign_ext(Inm16)*4) else PC<--PC+4 Diseño del procesador uniciclo

  9. 1er Paso: Requerimientos del Conjunto de Instrucciones • Memoria • Instrucciones y Datos • Registros (32x32) • Leer rs • Leer rt • Escribir rt o rd • PC • Extensor de signo • Sumar y Restar registros y/o valores inmediatos • Operaciones lógicas(and/or) registros y/o valores inmediatos • Sumar 4 al PC o 4+inmediato extendido *4 Diseño del procesador uniciclo

  10. A L U c o n t r o l 5 R e a d r e g i s t e r 1 R e a d d a t a 1 5 R e g i s t e r R e a d Z e r o r e g i s t e r 2 n u m b e r s R e g i s t e r s D a t a A L U A L U 5 W r i t e r e s u l t r e g i s t e r R e a d d a t a 2 W r i t e D a t a d a t a R e g W r i t e a . R e g i s t e r s b . A L U 2o Paso:Componentes del Camino de Datos I n s t r u c t i o n a d d r e s s P C I n s t r u c t i o n A d d S u m I n s t r u c t i o n m e m o r y M e m W r i t e a . I n s t r u c t i o n m e m o r y b . P r o g r a m c o u n t e r c . A d d e r R e a d A d d r e s s d a t a 1 6 3 2 S i g n e x t e n d D a t a W r i t e m e m o r y d a t a M e m R e a d 3 a . D a t a m e m o r y u n i t b . S i g n - e x t e n s i o n u n i t Diseño del procesador uniciclo

  11. Op 32 A 32 A 32 32 Suma + Resultado ALU 32 32 B B 2o Paso:Componentes del Camino de Datos • Elementos Combinacionales • Sumador , ALU y Multiplexor Sel 32 A 32 MUX 32 B Diseño del procesador uniciclo

  12. RegW LRA LRB BusA ER 32 Registros de 32 bits BusB BusW 32 32 32 32 32 5 5 5 CLK 2o Paso:Componentes del Camino de Datos • Elementos de Almacenamiento: Banco de Registros WE Data In Data Out CLK Diseño del procesador uniciclo

  13. RegW LRA LRB BusA ER 32 Registros de 32 bits BusB BusW 32 32 5 5 32 5 CLK 2o Paso:Componentes del Camino de Datos • Elementos de Almacenamiento: Banco de Registros: dos puertos de lectura R e a d r e g i s t e r n u m b e r 1 R e g i s t e r 0 R e g i s t e r 1 M u R e a d d a t a 1 x R e g i s t e r n – 1 R e g i s t e r n R e a d r e g i s t e r n u m b e r 2 M u R e a d d a t a 2 x Diseño del procesador uniciclo

  14. RegW LRA LRB BusA ER 32 Registros de 32 bits BusB BusW 32 32 32 5 5 5 CLK 2o Paso:Componentes del Camino de Datos • Elementos de Almacenamiento: Banco de Registros: un puerto de escritura Diseño del procesador uniciclo

  15. WE dirección Dato Out dirección instrucción Memoria de Datos Memoria de Instrucciones Dato In 32 32 32 32 32 CLK 2o Paso:Componentes del Camino de Datos • Elementos de Almacenamiento: • Memorias Diseño del procesador uniciclo

  16. 32 32 + WE 32 4 dirección instrucción PC 32 32 Memoria de Instrucciones CLK 3er Paso:Construcción del Camino de DatosFetch de Instrucciones • Mem[PC]; PC<-- PC+4 (código secuencial) Diseño del procesador uniciclo

  17. 32 5 5 5 32 32 3er Paso:Construcción del Camino de DatosFormato R: Addu y Subu ADDU R[rd]<--R[rs]+R[rt]; PC<--PC+4 SUBU R[rd]<--R[rs]-R[rt]; PC<--PC+4 RegW ALUctr rs LRA rt BusA Instrucción LRB 32 rd WR 32 Registros de 32 bits BusB BusW CLK Diseño del procesador uniciclo

  18. 5 32 32 5 5 32 3er Paso:Construcción del Camino de DatosFormato I: lógicas con Inmediato ORi R[rt]<--R[rs]op ZeroExtR[inm16]; PC<--PC+4 RegDst RegW Alusrc ALUctr rs LRA BusA rt LRB 32 WR MUX 32 Registros de 32 bits BusB Instrucción rd MUX BusW CLK 32 Inm16 ZeroExt Diseño del procesador uniciclo

  19. MUX 32 32 32 32 5 5 5 3er Paso:Construcción del Camino de DatosFormato I: LOAD Lw rt,rs,inmm1 6 R[rt]<--Mem[R[rs]+ SignExt[inm16]]; PC<--PC+4 RegDst RegW Alusrc ALUctr W_src rs LRA BusA rt LRB 32 WR MUX MUX 32 Registros de 32 bits BusB Instrucción rd WE BusW @ Memoria de Datos CLK 32 Inm16 CLK EXtension Diseño del procesador uniciclo

  20. MUX MUX 5 5 32 5 32 32 32 3er Paso:Construcción del Camino de DatosFormato I: STORE Sw rt,rs,inmm1 6 Mem[R[rs]+ SignExt[inm16]]<----R[rt]; PC<--PC+4 RegDst RegW Alusrc ALUctr W_src rs LRA BusA rt LRB 32 WR MUX 32 Registros de 32 bits BusB Instrucción rd WE BusW @ Memoria de Datos CLK 32 Inm16 CLK EXtension Diseño del procesador uniciclo

  21. 32 32 + WE 32 4 instrucción dirección PC 32 Memoria de Instrucciones 32 32 + 32 CLK Extensión <<2 3er Paso:Construcción del Camino de DatosFormato I: Branch Beq rs, rt, inm16 if (R[rs]==R[rt]) then PC<--PC+4+(sign_ext(Inm16)*4 else PC<--PC+4 PC_src MUX Diseño del procesador uniciclo

  22. 3er Paso:Juntando Todo Pcsrc MUX >>2 RegDst RegW ZERO Alusrc 32 ALUctr W_src 32 rs + LRA 5 32 BusA rt 4 LRB 5 32 32 WR MUX MUX 32 Registros de 32 bits BusB 5 rd WE instrucción MUX BusW 32 PC Memoria de Instrucciones 32 @ 32 Memoria de Datos CLK CLK 32 32 Inm16 CLK EXtension Diseño del procesador uniciclo

  23. Señales de Control No Activa Activa RegDstdestino es rtdestino es rd ALUsrcoperando proviene operando son los 16 bits de la del B. De Reg inst. con el signo extendido W_srcEl valor que se escribe en El valor que se escribe en el B. De Reg el B. de Reg proviene de proviene de Memoria la ALU RegWNada Se escribe el valor en el registro especificado WENada Se escribe en la memoria el valor que está en su entrada PC_srcPC=PC+4 PC=destino de salto Diseño del procesador uniciclo

  24. Ejemplo: Load Pcsrc MUX >>2 ZERO RegDst RegW Alusrc 32 ALUctr W_src 32 rs + LRA 5 32 BusA rt 4 LRB 5 32 32 WR MUX MUX 32 Registros de 32 bits BusB 5 rd WE instrucción MUX BusW 32 PC Memoria de Instrucciones 32 @ 32 Memoria de Datos CLK CLK 32 32 Inm16 CLK EXtension Diseño del procesador uniciclo

  25. Ejemplo: ADDU Pcsrc MUX >>2 RegDst ZERO RegW Alusrc 32 ALUctr W_src 32 rs + LRA 5 32 BusA rt 4 LRB 5 32 32 WR MUX MUX 32 Registros de 32 bits BusB 5 rd WE instrucción MUX BusW 32 PC Memoria de Instrucciones 32 @ 32 Memoria de Datos CLK CLK 32 32 Inm16 CLK EXtension Diseño del procesador uniciclo

  26. Ejemplo: BEQ (realizado) Pcsrc MUX >>2 RegDst RegW ZERO Alusrc 32 ALUctr W_src 32 rs + LRA 5 32 BusA rt 4 LRB 5 32 32 WR MUX MUX 32 Registros de 32 bits BusB 5 rd WE instrucción MUX BusW 32 PC Memoria de Instrucciones 32 @ 32 Memoria de Datos CLK CLK 32 32 Inm16 CLK EXtension Diseño del procesador uniciclo

  27. W_src ALUctr Inm16 <0..15> RegW RegDst Op <26..31> ALUsrc Funct <0..6> Branch Rd <11..15> Rt <16..20> Rs <21..25> WE 40 Paso:Control Memoria de Instrucciones Unidad de Control Unidad de Proceso Diseño del procesador uniciclo

  28. 4o Paso:Control Branch MUX WE CONTROL W_src >>2 Pcsrc RegW Alusrc ZERO 32 RegDst ALUctr 32 rs + LRA 5 32 BusA rt 4 LRB 5 32 32 WR MUX MUX 32 Registros de 32 bits BusB 5 rd instrucción MUX BusW 32 PC Memoria de Instrucciones 32 @ 32 Memoria de Datos CLK CLK 32 32 Inm16 CLK EXtension Diseño del procesador uniciclo

  29. 4o Paso: Control Principal Addu Subu Lw Sw Ori Beq RegDst 1 1 0 x 0 x ALUsrc 0 0 1 1 1 0 W_src 0 0 1 x 0 x RegW 1 1 1 0 1 0 WE 0 0 0 1 0 0 Branch 0 0 0 0 0 1 ALUctr suma resta suma suma or resta Diseño del procesador uniciclo

  30. 4o Paso: Control de la ALU Op 32 A 32 Resultado ALU 32 Cero B 000 AND 001 OR 010 add 110 subtract 111 set-on-less-than Diseño del procesador uniciclo

  31. 4o Paso: Control de la ALU ALUop Control Control de la ALU 5..0 32 A Operación 31..26 32 Resultado ALU 32 Instrucción Cero B Diseño del procesador uniciclo

  32. 4o Paso: Control de la ALU • La ALU necesita 3 bits de control • Dado el tipo de instrucción 00 = lw, sw 01 = beq, 10 = arithmetic • y el código de función para las tipo R Diseño del procesador uniciclo

  33. Control Diseño del procesador uniciclo

  34. 5o Paso: Implementación Diseño del procesador uniciclo

  35. Simple Estructura de Control • Toda la lógica es combinacional • Hay que esperar que las señales se estabilicen • La duración del ciclo está determinada por la longitud del camino crítico Diseño del procesador uniciclo

  36. Camino Crítico: Load • PC: propagación (hold)+ • Acceso a Memoria de Instrucciones + • Acceso el Banco de Registros + • ALU, suma de 32 bits + • Acceso a Memoria de Datos + • Tiempo de setup para escribir en registros + • Sesgo (skew) del reloj = longitud del ciclo Diseño del procesador uniciclo

  37. Duración del ciclo de reloj CLK to Q despreciable Memory Access Time 10 nseg Decodificación despreciable Register File Access Time 5 nseg Alu 10nseg Ìnstrucción Memoria Lect. ALU Memoria Escritura Total Registros Datos Registros Formato R 10 5 10 5 30 Load 10 5 10 10 5 40 Store 10 5 10 10 35 Beq 10 5 10 25 Diseño del procesador uniciclo

  38. Temporización: Reg-Reg CLK to Q PC Memory Access Time Instrucción Control Logic Delay ALUctr RegW Register File Access Time BusA, BusB ALU delay Escritura de Registros BusW Diseño del procesador uniciclo

  39. FIN Uniciclo Diseño del procesador uniciclo

More Related