Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn
Segmentación Descompone una determinada operación en n suboperaciones a realizar en etapas distintas, de manera que se puedan realizar n operaciones simultáneas, cada una en una etapa distinta. Divide una operación en suboperaciones Desacopla las suboperaciones F F1 F2 F3 Procesador Segmentado Unidad 2 2
El ejemplo de la lavandería Ana, Brian,Cathy y Don Lavar, secar, doblar, guardar Media hora cada tarea. Procesador Segmentado Unidad 2 3
Segmentación No reduce la latencia de una instrucción, sino que ayuda a incrementar la productividad de toda la tarea. Permite que los recursos se utilizen óptimamente, sin ciclos ociosos. La velocidad, o frecuencia con que una instrucción sale del pipeline (cauce) está limitada por el tiempo de proceso de la etapa más lenta. Idealmente, la mejora en velocidad debida a la segmentación es igual al número de etapas: la segmentación involucra gastos las etapas pueden no estar equilibradas==> tiempo de inactividad El diseñador debe equilibrar la duración de las etapas. Procesador Segmentado Unidad 2 4
Ejecución de lw en la máquina uniciclo Instrucció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 lw Ins R Alu Mem W lw lw 40 nseg Ins R Alu Mem W Ins R Alu Procesador Segmentado Unidad 2 5
Etapas de la Segmentación La instrucción se divide en 5 etapas: Ifetch Reg/Dec Ejec Mem WB Una etapa, un ciclo, debe acomodar la operación más lenta ===>> 10 nseg. El speedup ideal debiera ser 5. Procesador Segmentado Unidad 2 6
Máquina uniciclo vs segmentada lw Ins R Alu Mem W lw lw 40 nseg Ins R Alu Mem W Ins R Alu lw lw lw Ins R Alu Mem W Ins R Alu Mem W 10 nseg 10 nseg Ins R Alu Mem W 10 nseg 10 nseg 10 nseg 10 nseg 10 nseg Procesador Segmentado Unidad 2 7
Mejora de la Segmentación R R seg uni T = uni Tseg 120 = = 70 1,7 Donde están los problemas? Hay que considerar el tiempo de llenado y vaciado del pipeline (20nseg+20nseg) Las etapas tienen la misma duración y no realizan la misma cantidad de trabajo La eficiencia del pipeline es mayor al considerar muchas instrucciones, porque las latencias individuales aumentan pero la productividad disminuye. Procesador Segmentado Unidad 2 8
Uniciclo, Multiciclo vs Segmentada Load Store Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10 Load Store R Fetch Reg ALU Mem WB Fetch Reg ALU Mem Fetch Load Fetch Reg ALU Mem WB Store Fetch Reg ALU Mem WB R Fetch Reg ALU Mem WB Procesador Segmentado Unidad 2 9
Mejora de la Segmentación Suponemos que ejecutamos 100 instrucciones Uniciclo 40nseg * 1 CPI * 100inst= 4000 nseg Multiclo 10nseg * 4,5 CPI * 100 inst= 4500 nseg Segmentada 10nseg * (1 CPI * 100 inst + 4 ciclos) = 1040 nseg R R R R seg uni seg mult = = T T uni seg T T mult seg = = 4000 1040 4500 1040 3,8 4,3 Procesador Segmentado Unidad 2 10 = = Ahora,Mejor!!!
Óptimo uso de recursos ciclos 0 1 2 3 4 5 6 7 Inst 1 M Reg M Reg Inst 2 M Reg M Reg Inst 3 M Reg M Reg Inst 4 M Reg M Reg Inst 5 M Reg M Reg Procesador Segmentado Unidad 2 11
Problemas? No puede utilizarse el mismo recurso en el mismo momento para hacer distintas cosas. Por ejemplo: la memoria no puede utilizarse al mismo tiempo para leer instrucciones y escribir o leer datos. Varias instrucciones utilizan un mismo recurso en distintos momentos y se pierden los valores anteriores Por ejemplo: la ejecución de la segunda instrucción carga la instrucción de memoria sobre el registro IR aún cuando la primera instrucción depende de la información que había guardado en IR. Procesador Segmentado Unidad 2 12
Procesador Segmentado Lineal Todas las instrucciones tardan el mismo tiempo y atraviesan todas las etapas. Cada unidad funcional sólo puede ser usada una vez por instrucción (el flujo de información queremos que vaya siempre hacia la derecha) Cada unidad funcional debe ser utilizada en la misma etapa por todas las instrucciones. Queremos evitar problemas!!!! Por ejemplo: Lw IF Reg Eje Mem Wr R IF Reg Eje Wr Procesador Segmentado Unidad 2 13
Uso de U.F Paso Registros ALU Memoria Fetch Todas PC<--PC+4 Todas Inst<--M[PC] Lectura Todas Eje Tipo R: operación Lw y Sw: dirección Beq: operación y dirección Mem Lw y Sw PostW Lw Tipo R Procesador Segmentado Unidad 2 14
Memoria Se utiliza en la etapas Fetch y Memoria Debe poder soportar al mismo tiempo (distintas instrucciones) : lectura de instrucción lectura/escritura de dato Soluciones: una memoria con dos ports de lectura y uno de escritura memoria separada de instrucciones y datos Procesador Segmentado Unidad 2 15
ALU Se utiliza en la etapas Fetch y Ejecución Debe poder soportar al mismo tiempo : PC + 4 (Fetch) S=AopB o S=A+ inm16 o Z=(A=B) (Ejecución) S=PC+inm16 (Ejecución) Solución: 1 ALU y 2 sumadores
Banco de Registros Se leen en Decode y se escriben en Wb Debe poder soportar dos accesos de lectura y uno de escritura por ciclo. Se leen en la primera mitad del ciclo. Se escriben en la segunda mitad del ciclo.
MIPS Pipelined Datapath Chapter 4 The Processor 18
Registros de Segmentación Pcsrc MUX Entre cada etapa y la siguiente guardaremos la información que debe acompañar a cada instrucción en su marcha por el camino de datos. Z PC 32 4 3 2 + 32 Memoria de Instrucciones PC+4 32 inst IF/ID ID/EX EX/MEM MEM/WB rs rt rd RegDst BusW RegW 5 LRA LRB 5 WR 5 Registros >>2 Alusrc ALUctr @ WE Memoria de Datos W_src CL K Inm16 Ext
Registros de Segmentación Entre cada etapa y la siguiente guardaremos la información que debe acompañar a cada instrucción en su marcha por el camino de datos. Chapter 4 The Processor 20
Instrucción Tipo R Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4; BusA<---R[rs]; BusB<---R[rt] BusS<---BusA+BusB R[rd]<--BusS IR A B IR rd IF/ID ID/EX EX/MEM S IR rd S IR rd MEM/WB Procesador Segmentado Unidad 2 21
Instrucción Load Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4; BusA<---R[rs]; BusS<---BusA+ext(inm16); Dato<--Mem[busS]; R[rt]<--Dato IR A Ext(inm16) IR rt IF/ID ID/EX EX/MEM S IR rt Dato IR rt MEM/WB Procesador Segmentado Unidad 2 22
Instrucción Store Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4; BusA<---R[rs]; BusS<---BusA+ext(inm16); Mem[busS]<--BusB; IR A Ext(inm16) B IF/ID ID/EX S B EX/MEM MEM/WB Procesador Segmentado Unidad 2 23
Instrucción Beq Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4; BusA<--R[rs]; BusB<--R[rt]; dst<--- PC+4+ Signext(inm16)*4; Z<-- (BusA=BusB) ; si (Z) entonces PC<---dst; IR PC + 4 IF/ID A Ext(inm16) B PC + 4 ID/EX Z Dst EX/MEM MEM/WB Procesador Segmentado Unidad 2 24
Registros de Segmentación IR PC+4 IF/ID A B Ir rd Ir rt ext(inm16) PC + 4 ID/EX S Ir rd Ir rt B Z Dst EX/MEM S Ir rd Ir rt Dato MEM/WB Procesador Segmentado Unidad 2 25
Registros de Segmentación(mejor) IR PC+4 IF/ID A B Ir rd Ir rt ext(inm16) PC + 4 ID/EX S Reg B Z Dst EX/MEM S Reg Dato MEM/WB Procesador Segmentado Unidad 2 26
Traditional form Multi-Cycle Pipeline Diagram Chapter 4 The Processor 27
Single-Cycle Pipeline Diagram State of pipeline in a given cycle Chapter 4 The Processor 28
Pipelined Control (Simplified) Chapter 4 The Processor 29
Camino de Datos con Señales de Control Salto Zero MUX PC 32 4 3 2 + 32 Memoria de Instrucciones PC+4 32 inst IF/ID ID/EX EX/MEM MEM/WB rs rt 5 5 5 Inm16 rt rd BusW Ext LRA LRB RegW WR Registros >>2 Alusrc ALUctr Control ALU @ WE Memoria de Datos W_src Aluop RegDst
Lógica de Control El secuenciamiento de control debe viajar con la instrucción a través del Camino de Datos. Cada ciclo de reloj se realizan escrituras en el PC, por lo tanto no hay señal especial de escritura para él. Los 4 registros de segmentación también se actualizan en cada ciclo. Dividimos las señales de control en 3 grupos, de acuerdo a la etapa en la que actúan. Instrucción Ejecución Memoria Wb RegDst ALUop1 ALUop0 ALUsrc Salto WE RegW W_src Formato R 1 1 0 0 0 0 1 0 Lw 0 0 0 1 0 0 1 1 Sw x 0 0 1 0 1 0 x Beq x 0 1 0 1 0 0 x Procesador Segmentado Unidad 2 31
Pipelined Control Control signals derived from instruction As in single-cycle implementation Chapter 4 The Processor 32
Juntando Todo Ext RegW BusW Registros LRA LRB WR RegDst PC inst Memoria de Instrucciones 32 ALUctr Memoria de Datos WE @ W_src >>2 Alusrc Zero 4 32 32 32 + MUX PC+4 IF/ID ID/EX EX/MEM MEM/WB Aluop Control ALU Salto EX M W M W W Control $10 $11
Chapter 4 The Processor 34 Pipelined Control
Identificar las instrucciones Ext 2090 RegW 11 BusW Registros LRA LRB WR RegDst PC inst Memoria de Instrucciones 32 ALUctr Memoria de Datos WE @ W_src >>2 Alusrc Zero 4 32 3 2 32 + MUX PC+4 IF/ID ID/EX EX/MEM MEM/WB 11 1 Aluop Control ALU Salto EX M W M W W Control 10 15 6 0 $10 $11 $5 $6 16 10 00 1100 00 01 0 00 1 00 1 0 31 1 1 15
FIN Segmentado