1 / 43

8. Diseño del Procesador

8. Diseño del Procesador. Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño multiciclo en adelante). Estructura del tema. Metodología de sincronización Diseño de un procesador MIPS R3000 reducido Rutas de datos individuales Diseño monociclo

Download Presentation

8. Diseño del Procesador

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. 8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño multiciclo en adelante)

  2. Estructura del tema • Metodología de sincronización • Diseño de un procesador MIPS R3000 reducido • Rutas de datos individuales • Diseño monociclo • Diseño de la ruta de datos • Diseño de la unidad de control de la ALU • Diseño de la unidad de control • Ventajas y desventajas • Diseño multiciclo • Diseño de la ruta de datos • Diseño de la unidad de control • Control cableado • Control microprogramado • Excepciones e interrupciones • Resumen y bibliografía Diseño del procesador

  3. Diseño multiciclo • División del ciclo de instrucción en varias etapas o pasos • Cada etapa se ejecuta en un ciclo de reloj • Las etapas presentan cargas de trabajo equilibradas • CPI (ciclos por instrucción) variables: instrucciones lentas y rápidas • Reutilización de las unidades funcionales • Una unidad puede utilizarse más de una vez por instrucción siempre que se haga en ciclos de reloj distintos. • Memoria unificada, pero un único acceso por ciclo • Una única ALU, pero una única operación ALU por ciclo Diseño del procesador

  4. Estructura del tema • Metodología de sincronización • Diseño de un procesador MIPS R3000 reducido • Rutas de datos individuales • Diseño monociclo • Diseño de la ruta de datos • Diseño de la unidad de control de la ALU • Diseño de la unidad de control • Ventajas y desventajas • Diseño multiciclo • Diseño de la ruta de datos • Diseño de la unidad de control • Control cableado • Control microprogramado • Excepciones e interrupciones • Resumen y bibliografía Diseño del procesador

  5. Implementación multiciclo: componentes básicos I n s t r u c t i o n r e g i s t e r D a t a P C A d d r e s s A R e g i s t e r # I n s t r u c t i o n A L U A L U O u t M e m o r y R e g i s t e r s o r d a t a R e g i s t e r # M e m o r y d a t a B D a t a r e g i s t e r R e g i s t e r # • Una sola memoria para datos e instrucciones • Una sola ALU en vez de 1 ALU y 2 sumadores • Uso de registros temporales a la salida de las unidades funcionales principales. Dos tipos de registros: • Tipo A: Actualizan su contenido en cada instrucción (IR) • Tipo B: Actualizan su contenido en cada ciclo de reloj (MDR, A,B,ALUOut) Diseño del procesador

  6. I o r D M e m R e a d M e m W r i t e I R W r i t e R e g D s t R e g W r i t e A L U S r c A P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 A d d r e s s u u x R e a d x A I n s t r u c t i o n R e a d Z e r o d a t a 1 M e m o r y 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e R e a d M B [ 1 5 – 0 ] r e g i s t e r d a t a 2 0 u I n s t r u c t i o n W r i t e x M [ 1 5 – 1 1 ] I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] M e m t o R e g A L U S r c B A L U O p Ruta de datos multiciclo • Compartición de unidades funcionales (reducción del hardware)  uso de multiplexores • Ejecución en múltiples ciclos  cada ciclo requiere un conjunto determinado de señales de control • Señales de control Diseño del procesador

  7. Etapas de ejecución de las instrucciones • ¿Qué operaciones realizamos en cada ciclo de reloj? • Objetivo: equilibrar la carga computacional de cada etapa  Minimización del tiempo de ciclo • En cada etapa se va a realizar alguna de las siguientes operaciones: • Un acceso a registro • Actualización en cada ciclo (Registros temporales: MDR, A, B, ALUOut) • Actualización según una señal de escritura (PC, IR) • Un acceso a memoria • Una operación de ALU • ¿Cómo se determina el tiempo de ciclo mínimo? • Todas las operaciones de un ciclo se ejecutan en paralelo • Etapas o pasos de la instrucción se ejecutan en serie Diseño del procesador

  8. P C W r i t e C o n d P C S o u r c e P C W r i t e A L U O p O u t p u t s I o r D A L U S r c B M e m R e a d A L U S r c A C o n t r o l M e m W r i t e R e g W r i t e M e m t o R e g O p R e g D s t I R W r i t e [ 5 – 0 ] 0 M 1 u J u m p 2 6 2 8 x I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t 2 l e f t 2 I n s t r u c t i o n [ 3 1 - 2 6 ] P C [ 3 1 - 2 8 ] P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 u A d d r e s s u x x R e a d A I n s t r u c t i o n R e a d Z e r o M e m o r y 1 d a t a 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e M R e a d B [ 1 5 – 0 ] r e g i s t e r u 0 I n s t r u c t i o n d a t a 2 W r i t e x [ 1 5 – 1 1 ] M I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Camino de datos multiciclocon las señales de control Diseño del procesador

  9. Etapas de ejecución de las instrucciones (I) • Etapa 1: Búsqueda del código de operación (fetch) IR = Memory[PC] PC = PC + 4 • Etapa 2: Decodificación y acceso a operandos A = Reg[rs] B = Reg[rt] ALUout = PC + extensión-signo(IR[15-0]) << 2 • Etapa 3: Ejecución, cálculo de dirección o terminación del salto • Instrucción tipo R (and, or, add, sub,slt) ALUOut = A op B • Referencia a memoria (lw/sw) ALUOut = A + extensión-signo(IR[15-0]) • Salto (beq) if (A == B) PC = ALUOut • Bifurcación (j) PC = PC[31-28] || IR[25-0] << 2 Diseño del procesador

  10. Etapas de ejecución de las instrucciones (II) • Etapa 4: Acceso a memoria/fin de ejecución instrucción tipo R • Referencia a memoria (lw) MDR = Memory[ALUOut] • Referencia a memoria (sw) Memory[ALUOut] = B • Fin ejecución instrucción tipo R Reg[rd] = ALUOut • Etapa 5: Fin de lectura en memoria Reg[rt] = MDR Diseño del procesador

  11. I n s t r u c t i o n d e c o d e / I n s t r u c t i o n f e t c h R e g i s t e r f e t c h 0 M e m R e a d 1 A L U S r c A = 0 I o r D = 0 A L U S r c A = 0 I R W r i t e S t a r t A L U S r c B = 1 1 A L U S r c B = 0 1 A L U O p = 0 0 A L U O p = 0 0 P C W r i t e T1 P C S o u r c e = 0 0 ) ) e ) ' p ' Q y t P - E R = M B p ' O J ( = ' ) ' W p S = ' = O p ( O p ( r o O ) ' W ( L ' = p O ( M e m o r y r e f e r e n c e F S M R - t y p e F S M B r a n c h F S M J u m p F S M ( F i g u r e 5 . 3 8 ) ( F i g u r e 5 . 3 9 ) ( F i g u r e 5 . 4 0 ) ( F i g u r e 5 . 4 1 ) P C W r i t e C o n d P C S o u r c e P C W r i t e A L U O p O u t p u t s I o r D A L U S r c B M e m R e a d A L U S r c A C o n t r o l M e m W r i t e R e g W r i t e M e m t o R e g O p R e g D s t I R W r i t e [ 5 – 0 ] 0 M 1 u J u m p 2 6 2 8 x I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t 2 l e f t 2 I n s t r u c t i o n [ 3 1 - 2 6 ] P C [ 3 1 - 2 8 ] P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 u A d d r e s s u x x R e a d A I n s t r u c t i o n R e a d Z e r o M e m o r y 1 d a t a 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e M R e a d B [ 1 5 – 0 ] r e g i s t e r u 0 I n s t r u c t i o n d a t a 2 W r i t e x [ 1 5 – 1 1 ] M I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Instrucción de CARGA (LW): Etapa 1 Diseño del procesador

  12. I n s t r u c t i o n d e c o d e / I n s t r u c t i o n f e t c h R e g i s t e r f e t c h 0 M e m R e a d 1 A L U S r c A = 0 I o r D = 0 A L U S r c A = 0 I R W r i t e S t a r t A L U S r c B = 1 1 A L U S r c B = 0 1 A L U O p = 0 0 A L U O p = 0 0 P C W r i t e T2 P C S o u r c e = 0 0 ) ) e ' ) p ' y Q t - P R E = B M p ' O J ( = ) ' ' W p S ' = = O p ( O p ( r o O ) ' W L ( ' = p O ( M e m o r y r e f e r e n c e F S M R - t y p e F S M B r a n c h F S M J u m p F S M ( F i g u r e 5 . 3 8 ) ( F i g u r e 5 . 3 9 ) ( F i g u r e 5 . 4 0 ) ( F i g u r e 5 . 4 1 ) P C W r i t e C o n d P C S o u r c e P C W r i t e A L U O p O u t p u t s I o r D A L U S r c B M e m R e a d A L U S r c A C o n t r o l M e m W r i t e R e g W r i t e M e m t o R e g O p R e g D s t I R W r i t e [ 5 – 0 ] 0 M 1 u J u m p 2 6 2 8 x I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t 2 l e f t 2 I n s t r u c t i o n [ 3 1 - 2 6 ] P C [ 3 1 - 2 8 ] P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 u A d d r e s s u x x R e a d A I n s t r u c t i o n R e a d Z e r o M e m o r y 1 d a t a 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e M R e a d B [ 1 5 – 0 ] r e g i s t e r u 0 I n s t r u c t i o n d a t a 2 W r i t e x [ 1 5 – 1 1 ] M I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Instrucción de CARGA (LW): Etapa 2 Diseño del procesador

  13. F r o m s t a t e 1 ( O p = ' L W ' ) o r ( O p = ' S W ' ) M e m o r y a d d r e s s c o m p u t a t i o n 2 A L U S r c A = 1 A L U S r c B = 1 0 A L U O p = 0 0 ( T3 O ) ' p W = ' L S ' W = ' ) p M e m o r y M e m o r y O ( a c c e s s a c c e s s 3 5 M e m R e a d M e m W r i t e I o r D = 1 I o r D = 1 P C W r i t e C o n d P C S o u r c e W r i t e - b a c k s t e p P C W r i t e A L U O p 4 O u t p u t s I o r D A L U S r c B M e m R e a d T o s t a t e 0 R e g W r i t e ( F i g u r e 5 . 3 7 ) A L U S r c A M e m t o R e g = 1 C o n t r o l M e m W r i t e R e g D s t = 0 R e g W r i t e M e m t o R e g O p R e g D s t I R W r i t e [ 5 – 0 ] 0 M 1 u J u m p 2 6 2 8 x I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t 2 l e f t 2 I n s t r u c t i o n [ 3 1 - 2 6 ] P C [ 3 1 - 2 8 ] P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 u A d d r e s s u x x R e a d A I n s t r u c t i o n R e a d Z e r o M e m o r y 1 d a t a 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e M R e a d B [ 1 5 – 0 ] r e g i s t e r u 0 I n s t r u c t i o n d a t a 2 W r i t e x [ 1 5 – 1 1 ] M I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Instrucción de CARGA (LW): Etapa 3 Diseño del procesador

  14. F r o m s t a t e 1 ( O p = ' L W ' ) o r ( O p = ' S W ' ) M e m o r y a d d r e s s c o m p u t a t i o n 2 A L U S r c A = 1 A L U S r c B = 1 0 A L U O p = 0 0 ( T4 O ) ' p W = ' L S ' W = ' ) p M e m o r y M e m o r y O ( a c c e s s a c c e s s 3 5 M e m R e a d M e m W r i t e I o r D = 1 I o r D = 1 P C W r i t e C o n d P C S o u r c e W r i t e - b a c k s t e p P C W r i t e A L U O p 4 O u t p u t s I o r D A L U S r c B M e m R e a d T o s t a t e 0 R e g W r i t e ( F i g u r e 5 . 3 7 ) A L U S r c A M e m t o R e g = 1 C o n t r o l M e m W r i t e R e g D s t = 0 R e g W r i t e M e m t o R e g O p R e g D s t I R W r i t e [ 5 – 0 ] 0 M 1 u J u m p 2 6 2 8 x I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t 2 l e f t 2 I n s t r u c t i o n [ 3 1 - 2 6 ] P C [ 3 1 - 2 8 ] P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 u A d d r e s s u x x R e a d A I n s t r u c t i o n R e a d Z e r o M e m o r y 1 d a t a 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e M R e a d B [ 1 5 – 0 ] r e g i s t e r u 0 I n s t r u c t i o n d a t a 2 W r i t e x [ 1 5 – 1 1 ] M I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Instrucción de CARGA (LW): Etapa 4 Diseño del procesador

  15. F r o m s t a t e 1 ( O p = ' L W ' ) o r ( O p = ' S W ' ) M e m o r y a d d r e s s c o m p u t a t i o n 2 A L U S r c A = 1 A L U S r c B = 1 0 A L U O p = 0 0 ( T5 O ) ' p W = ' L S ' W = ' ) p M e m o r y M e m o r y O ( a c c e s s a c c e s s 3 5 M e m R e a d M e m W r i t e I o r D = 1 P C W r i t e C o n d P C S o u r c e I o r D = 1 P C W r i t e A L U O p O u t p u t s I o r D A L U S r c B M e m R e a d W r i t e - b a c k s t e p A L U S r c A C o n t r o l M e m W r i t e 4 R e g W r i t e M e m t o R e g T o s t a t e 0 R e g W r i t e O p R e g D s t ( F i g u r e 5 . 3 7 ) I R W r i t e M e m t o R e g = 1 [ 5 – 0 ] R e g D s t = 0 0 M 1 u J u m p 2 6 2 8 x I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t 2 l e f t 2 I n s t r u c t i o n [ 3 1 - 2 6 ] P C [ 3 1 - 2 8 ] P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 u A d d r e s s u x x R e a d A I n s t r u c t i o n R e a d Z e r o M e m o r y 1 d a t a 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e M R e a d B [ 1 5 – 0 ] r e g i s t e r u 0 I n s t r u c t i o n d a t a 2 W r i t e x [ 1 5 – 1 1 ] M I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Instrucción de CARGA (LW): Etapa 5 Diseño del procesador

  16. Estructura del tema • Metodología de sincronización • Diseño de un procesador MIPS R3000 reducido • Rutas de datos individuales • Diseño monociclo • Diseño de la ruta de datos • Diseño de la unidad de control de la ALU • Diseño de la unidad de control • Ventajas y desventajas • Diseño multiciclo • Diseño de la ruta de datos • Diseño de la unidad de control • Control cableado • Control microprogramado • Excepciones e interrupciones • Resumen y bibliografía Diseño del procesador

  17. Diseño multiciclo - Diseño de la unidad control • Control cableado (Máquina de estados finitos - FSM) • Especificación del control mediante un diagrama de estados finitos (representación gráfica o tabular) • Máquina de estados finitos • Conjunto de estados • Función estado siguiente • Si×Ij Sk • Función salida • Máquinas de Moore: Si Ok • Máquinas de Mealy: Si×Ij Ok • Control microprogramado • Especificación del control mediante un programa • Necesaria para simplificar la especificación de una UC compleja Diseño del procesador

  18. P C W r i t e C o n d P C S o u r c e P C W r i t e A L U O p O u t p u t s I o r D A L U S r c B M e m R e a d A L U S r c A C o n t r o l M e m W r i t e R e g W r i t e M e m t o R e g O p R e g D s t I R W r i t e [ 5 – 0 ] 0 M 1 u J u m p 2 6 2 8 x I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t 2 l e f t 2 I n s t r u c t i o n [ 3 1 - 2 6 ] P C [ 3 1 - 2 8 ] P C 0 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 u A d d r e s s u x x R e a d A I n s t r u c t i o n R e a d Z e r o M e m o r y 1 d a t a 1 1 [ 2 0 – 1 6 ] r e g i s t e r 2 A L U A L U A L U O u t 0 M e m D a t a R e g i s t e r s r e s u l t I n s t r u c t i o n W r i t e M R e a d B [ 1 5 – 0 ] r e g i s t e r u 0 I n s t r u c t i o n d a t a 2 W r i t e x [ 1 5 – 1 1 ] M I n s t r u c t i o n 4 1 W r i t e d a t a 1 u r e g i s t e r d a t a 2 x 0 I n s t r u c t i o n 3 [ 1 5 – 0 ] M u x M e m o r y 1 1 6 3 2 d a t a A L U S h i f t S i g n r e g i s t e r c o n t r o l l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Ruta de datos multiciclo completo con las señales de control Diseño del procesador

  19. Estructura del tema • Metodología de sincronización • Diseño de un procesador MIPS R3000 reducido • Rutas de datos individuales • Diseño monociclo • Diseño de la ruta de datos • Diseño de la unidad de control de la ALU • Diseño de la unidad de control • Ventajas y desventajas • Diseño multiciclo • Diseño de la ruta de datos • Diseño de la unidad de control • Control cableado • Control microprogramado • Excepciones e interrupciones • Resumen y bibliografía Diseño del procesador

  20. S t a r t I n s t r u c t i o n f e t c h / d e c o d e a n d r e g i s t e r f e t c h ( F i g u r e 5 . 3 7 ) M e m o r y a c c e s s R - t y p e i n s t r u c t i o n s B r a n c h i n s t r u c t i o n J u m p i n s t r u c t i o n i n s t r u c t i o n s ( F i g u r e 5 . 3 9 ) ( F i g u r e 5 . 4 0 ) ( F i g u r e 5 . 4 1 ) ( F i g u r e 5 . 3 8 ) I n s t r u c t i o n d e c o d e / I n s t r u c t i o n f e t c h R e g i s t e r f e t c h 0 M e m R e a d 1 A L U S r c A = 0 I o r D = 0 A L U S r c A = 0 I R W r i t e S t a r t A L U S r c B = 1 1 A L U S r c B = 0 1 A L U O p = 0 0 A L U O p = 0 0 P C W r i t e P C S o u r c e = 0 0 ) ) e ' ) p ' Q y t - P R E = B M p ' O J ( = ) ' ' W p S ' = = O p ( O p ( r o O ) ' W L ( ' = p O ( M e m o r y r e f e r e n c e F S M R - t y p e F S M B r a n c h F S M J u m p F S M ( F i g u r e 5 . 3 8 ) ( F i g u r e 5 . 3 9 ) ( F i g u r e 5 . 4 0 ) ( F i g u r e 5 . 4 1 ) Control cableado - FSM • Representación abstracta • Etapas 1 y 2 comunes a todas las instrucciones • Diagrama de estados • Etapas 1 y 2 Diseño del procesador

  21. I n s t r u c t i o n d e c o d e / I n s t r u c t i o n f e t c h r e g i s t e r f e t c h 0 M e m R e a d 1 A L U S r c A = 0 I o r D = 0 A L U S r c A = 0 I R W r i t e A L U S r c B = 1 1 S t a r t A L U S r c B = 0 1 A L U O p = 0 0 A L U O p = 0 0 P C W r i t e ) P C S o u r c e = 0 0 ' ) e Q ) p ' y t E J - R ' B = ' = p = O ( ) p p ' W M e m o r y a d d r e s s S O O ' = B r a n c h ( p J u m p ( O ( c o m p u t a t i o n r o E x e c u t i o n c o m p l e t i o n ) ' c o m p l e t i o n W L ' = p O ( 2 6 8 9 A L U S r c A = 1 A L U S r c A = 1 A L U S r c B = 0 0 A L U S r c A = 1 P C W r i t e A L U S r c B = 1 0 A L U O p = 0 1 A L U S r c B = 0 0 P C S o u r c e = 1 0 A L U O p = 0 0 P C W r i t e C o n d A L U O p = 1 0 P C S o u r c e = 0 1 ( ) O ' p W = L ' ' S = W ' ) p O M e m o r y M e m o r y ( a c c e s s a c c e s s R - t y p e c o m p l e t i o n 3 5 7 R e g D s t = 1 M e m R e a d M e m W r i t e R e g W r i t e I o r D = 1 I o r D = 1 M e m t o R e g = 0 W r i t e - b a c k s t e p 4 R e g D s t = 0 R e g W r i t e M e m t o R e g = 1 Control cableado – FSM completa Diseño del procesador

  22. Control cableado – Especificación de la UC con una FSM Diseño del procesador

  23. P C W r i t e P C W r i t e C o n d I o r D M e m R e a d M e m W r i t e I R W r i t e C o n t r o l l o g i c M e m t o R e g P C S o u r c e A L U O p O u t p u t s A L U S r c B A L U S r c A R e g W r i t e R e g D s t Estado Siguiente N S 3 N S 2 N S 1 I n p u t s N S 0 5 4 3 2 1 0 p p p p p p 3 2 1 0 O O O O O O S S S S I n s t r u c t i o n r e g i s t e r S t a t e r e g i s t e r o p c o d e f i e l d Estado Actual Control cableado - Implementación de la FSM • Unidad de control = Lógica de control + Registro de Estado • Reg. Estado: Se escribe en cada flanco de reloj y es estable durante el ciclo Diseño del procesador

  24. Control cableado – Ecuaciones de implement. de la FSM Diseño del procesador

  25. Diseño unificado Tamaño: 210× 20 = 20Kb 6 bits código de operación + 4 bits de los estados = 210 posiciones de memoria 16 salidas de control + 4 salidas de nuevo estado = 20 bits de anchura Diseño no unificado Tamaño: 4.25Kb ROM de señales de salida (Tamaño = 24 × 16 = 256b) 4 bits de los estados = 24 posiciones de memoria 16 salidas de control = 16 bits de anchura ROM de nuevo estado (Tamaño 210× 4 = 4Kb) 6 bits código de operación + 4 bits de los estados = 210 posiciones de memoria 4 salidas de nuevo estado = 4 bits de anchura Control cableado - Implementación de FSM con ROM Diseño del procesador

  26. Tamaño de la PLA #inputs × #minterms + #outputs × #minterms = (10 × 17) + (20 × 17) = 510 celdas Control cableado - Implementación de FSM con PLA Diseño del procesador

  27. Estructura del tema • Metodología de sincronización • Diseño de un procesador MIPS R3000 reducido • Rutas de datos individuales • Diseño monociclo • Diseño de la ruta de datos • Diseño de la unidad de control de la ALU • Diseño de la unidad de control • Ventajas y desventajas • Diseño multiciclo • Diseño de la ruta de datos • Diseño de la unidad de control • Control cableado • Control microprogramado • Excepciones e interrupciones • Resumen y bibliografía Diseño del procesador

  28. El control se especifica como un programa (microprograma) que está compuesto por instrucciones (microinstrucciones) que están almacenadas en una memoria (memoria de microcódigo) Un registro (contador de microprograma) indica cuál es la siguiente microinstrucción a ejecutar. Diseño de la UC – Control microprogramado Diseño del procesador

  29. 7 campos: 6 campos de control + 1 campo de secuenciación Control microprogramado – Formato de la microinstrucción Diseño del procesador

  30. Control microprogramado– Señales asociadas a los campos y valores Diseño del procesador

  31. Control microprogramado – Microprograma de la UC Diseño del procesador

  32. El estado siguiente es frecuentemente el estado actual + 1 Las señales de control están almacenadas en una memoria Diseño de la UC – Control microprogramado Diseño del procesador

  33. Control microprogramado –Secuenciador del microprograma • La lógica de selección de direcciones genera la dirección de la siguiente microinstrucción a ejecutar Diseño del procesador

  34. Estructura del tema • Metodología de sincronización • Diseño de un procesador MIPS R3000 reducido • Rutas de datos individuales • Diseño monociclo • Diseño de la ruta de datos • Diseño de la unidad de control de la ALU • Diseño de la unidad de control • Ventajas y desventajas • Diseño multiciclo • Diseño de la ruta de datos • Diseño de la unidad de control • Control cableado • Control microprogramado • Excepciones e interrupciones • Resumen y bibliografía Diseño del procesador

  35. Excepciones e interrupciones • Definiciones • Eventos inesperados que cambian el flujo normal de ejecución de las instrucciones • Excepción • Evento que tiene su origen en el interior del procesador (desbordamiento aritmético, instrucción ilegal, etc.) • Interrupción • Evento que tiene su origen en el exterior del procesador (dispositivos de entrada/salida, fallo de página, etc.) Diseño del procesador

  36. Programa Interrupción Rutina de servicio de la interrupción Salto a rutina de servicio Retorno de la rutina de servicio Tratamiento de excepciones en MIPS • Las acciones básicas a realizar son: • Guardar la dirección de la instrucción causante en el registro Contador de Programa de Excepciones (EPC) • Registrar la causa de la excepción en el Registro Cause • Transferir el control al Sistema Operativo en alguna dirección especificada (0xC00000000) donde se tratará la excepción (ejecución de una rutina de servicio) Diseño del procesador

  37. Implementación de excepciones en MIPS • Excepciones a implementar • Desbordamiento aritmético • Instrucción ilegal o no definida • Registros adicionales requeridos • EPC: Registro de 32 bits para guardar la dirección de la instrucción causante de la excepción • CAUSE: Registro de 32 bits para registrar la causa de la excepción. Utilizaremos sólo el bit menos significativo • bit 0 = 0 → Instrucción ilegal • bit 0 = 1 → Desbordamiento aritmético • Señales de control adicionales • Intcause (0: instrucción ilegal - 1: desbordamiento) • CauseWrite (1: escritura en el registro CAUSE - 0: no escribe) • EPCWrite (1: escritura en el registro EPC - 0: no escribe) • Constante: C000 0000 0000 0000 (dirección a donde se transfiere el control cada vez que se interrumpe) Diseño del procesador

  38. I n s t r u c t i o n d e c o d e / I n s t r u c t i o n f e t c h R e g i s t e r f e t c h 0 1 M e m R e a d A L U S r c A = 0 I o r D = 0 A L U S r c A = 0 I R W r i t e A L U S r c B = 1 1 S t a r t A L U S r c B = 0 1 A L U O p = 0 0 A L U O p = 0 0 P C W r i t e P C S o u r c e = 0 0 ( ) O ' ) e Q p p ) y ' E t - = J R B ' = ' o p t = = O h ) ( ' W p e p S ' r O = ) M e m o r y a d d r e s s B r a n c h O p ( J u m p O ( ( r o E x e c u t i o n ) c o m p u t a t i o n ' c o m p l e t i o n W c o m p l e t i o n L ' = p O 2 6 8 9 ( A L U S r c A = 1 A L U S r c A = 1 A L U S r c A = 1 A L U S r c B = 0 0 P C W r i t e A L U S r c B = 0 0 A L U S r c B = 0 0 A L U O p = 0 1 P C S o u r c e = 1 0 A L U O p = 0 0 A L U O p = 1 0 P C W r i t e C o n d P C S o u r c e = 0 1 ( ) O ' p W = L ' ' S = W ' ) p M e m o r y M e m o r y O ( a c c e s s a c c e s s R - t y p e c o m p l e t i o n I n t C a u s e = 0 I n t C a u s e = 1 3 5 7 1 1 1 0 C a u s e W r i t e C a u s e W r i t e A L U S r c A = 0 A L U S r c A = 0 R e g D s t = 1 M e m R e a d M e m W r i t e O v e r f l o w A L U S r c B = 0 1 A L U S r c B = 0 1 R e g W r i t e I o r D = 1 I o r D = 1 A L U O p = 0 1 A L U O p = 0 1 M e m t o R e g = 0 E P C W r i t e E P C W r i t e P C W r i t e P C W r i t e P C S o u r c e = 1 1 P C S o u r c e = 1 1 W r i t e - b a c k s t e p 4 O v e r f l o w R e g W r i t e M e m t o R e g = 1 R e g D s t = 0 Especificación de la UC con soporte de excepciones Diseño del procesador

  39. P C W r i t e C o n d C a u s e W r i t e P C W r i t e I n t C a u s e O u t p u t s I o r D E P C W r i t e P C S o u r c e M e m R e a d A L U O p C o n t r o l M e m W r i t e A L U S r c B M e m t o R e g A L U S r c A O p R e g W r i t e I R W r i t e [ 5 – 0 ] R e g D s t 0 M 1 J u m p 2 6 2 8 u I n s t r u c t i o n [ 2 5 – 0 ] a d d r e s s [ 3 1 - 0 ] S h i f t x 2 I n s t r u c t i o n l e f t 2 [ 3 1 - 2 6 ] 3 C O 0 0 0 0 0 0 P C [ 3 1 - 2 8 ] 0 P C 0 I n s t r u c t i o n R e a d M M [ 2 5 – 2 1 ] r e g i s t e r 1 A d d r e s s u u A x Z e r o x R e a d M e m o r y I n s t r u c t i o n R e a d 1 A L U d a t a 1 A L U 1 O u t [ 2 0 – 1 6 ] r e g i s t e r 2 r e s u l t M e m D a t a A L U 0 E P C R e g i s t e r s B ] I n s t r u c t i o n W r i t e M R e a d [ 1 5 – 0 r e g i s t e r u 0 d a t a 2 I n s t r u c t i o n I n s t r u c t i o n x W r i t e [ 1 5 – 1 1 ] M 4 1 r e g i s t e r W r i t e d a t a u 1 d a t a 2 x 0 0 0 I n s t r u c t i o n 3 M [ 1 5 – 0 ] M C a u s e u u x x M e m o r y 1 1 1 d a t a A L U 1 6 3 2 r e g i s t e r c o n t r o l S h i f t S i g n l e f t 2 e x t e n d I n s t r u c t i o n [ 5 – 0 ] Ruta de datos con soporte de excepciones Diseño del procesador

  40. Instrucciones para excepciones en MIPS • mfc0$rt, $rd (move from coprocesador 0) • Transfiere la información desde el registro de propósito general $rd al registro de propósito especial $rt (0 para CAUSE, 1 para EPC) • Tipo R • 010000 0000 ttttt ddddd 00000000000 • mtc0$rd, $rt (move to coprocesador 0) • Transfiere la información desde el registro de propósito especial $rt (0 para CAUSE, 1 para EPC) al registro de propósito general $rd • Tipo R • 010000 0100 ttttt ddddd 00000000000 • rfe (return from exception) • Transfiere el contenido del EPC al registro contador de programa • Tipo J • 010000 10000000000000000000100000 Diseño del procesador

  41. Estructura del tema • Metodología de sincronización • Diseño de un procesador MIPS R3000 reducido • Rutas de datos individuales • Diseño monociclo • Diseño de la ruta de datos • Diseño de la unidad de control de la ALU • Diseño de la unidad de control • Ventajas y desventajas • Diseño multiciclo • Diseño de la ruta de datos • Diseño de la unidad de control • Control cableado • Control microprogramado • Excepciones e interrupciones • Resumen y bibliografía Diseño del procesador

  42. Resumen • Para diseñar un procesador es necesario diseñar en primer lugar el repertorio de instrucciones • A continuación se diseña la ruta de datos que es capaz de ejecutar el repertorio de instrucciones • El siguiente paso es diseñar la unidad de control • El manejo de excepciones es la parte difícil del control. Diseño del procesador

  43. Bibliografía Estructura y diseño de computadores: interficie circuitería/programación Capítulo 5 David A. Patterson, John L. Hennessy Editorial Reverté, 1999 Diseño del procesador

More Related