Pipelining Datapath y control
Pipelined Datapath El datapath de la CPU secuencial se puede reusar. Se separa en 5 partes: IF – instruction fetch. ID – instruction decode and register file read. EX – execution or address calculation. MEM – data memory access. WB – write back. Universidad de Sonora Arquitectura de Computadoras
Pipelined Datapath Fuente: COD 5, p. 287 Universidad de Sonora Arquitectura de Computadoras
Pipelined Datapath Las instrucciones y los datos se mueven de izquierda a derecha. Dos excepciones: Etapa WB – el resultado se escribe en el banco de registros. La selección del siguiente valor del PC. PC + 4 (no hubo brinco). PC + offset (si hubo brinco) Universidad de Sonora Arquitectura de Computadoras
Pipelined Datapath Se colocan registros entre cada etapa. Sirven para pasar valores de una etapa a otra. Hay 4 registros: IF/ID. ID/EX. EX/MEM. MEM/WB. Universidad de Sonora Arquitectura de Computadoras
Pipelined Datapath Fuente: COD 5, p. 296. Universidad de Sonora Arquitectura de Computadoras
Ejemplo Mostrar como avanza una instrucción lw en el datapath. Imágenes del COD 5, p. 291 – 293. Universidad de Sonora Arquitectura de Computadoras
Etapa 1 IF – instruction fetch. Se lee la instrucción de la memoria usando el PC. PC se incrementa en 4 y se pasa el mux del PC. Se guarda la instrucción y el PC incrementado en el registro IF/ID. Universidad de Sonora Arquitectura de Computadoras
Ejemplo Etapa 1 Universidad de Sonora Arquitectura de Computadoras
Etapa 2 ID – instruction decode and register file read. Se lee el registro base en el banco de registros. Se obtiene el offset (dos bytes más bajos de la instrucción). Se extiende el offset a 4 bytes (32 bits) usando el extensor de signo. Se guarda el PC, el registro base y el offset extendido en el registro ID/EX. Universidad de Sonora Arquitectura de Computadoras
Ejemplo Etapa 2 Universidad de Sonora Arquitectura de Computadoras
Etapa 3 EX – execute or address calculation. La ALU suma el registro base más el offset. Se guarda el resultado en el registro EX/MEM. Notar que las demás partes del registro EX/MEM almacenan datos que no se van a usar. Universidad de Sonora Arquitectura de Computadoras
Ejemplo Etapa 3 Universidad de Sonora Arquitectura de Computadoras
Etapa 4 MEM – memory access. Se lee la memoria de datos en la dirección registro base + offset. Se guarda el resultado en el registro MEM/WB. Universidad de Sonora Arquitectura de Computadoras
Ejemplo Etapa 4 Universidad de Sonora Arquitectura de Computadoras
Etapa 5 WB – write back. Lee el dato del registro MEM/WB y lo guarda en el banco de registros. Universidad de Sonora Arquitectura de Computadoras
Ejemplo Etapa 5 Universidad de Sonora Arquitectura de Computadoras
Conclusión Partes del datapath usadas por lw (COD 5, p. 297). Universidad de Sonora Arquitectura de Computadoras
Otro ejemplo Mostrar como avanza una instrucción sw en el datapath. Imágenes del COD 5, p. 294 – 295. La etapa IF es igual que para lw. La etapa ID es casi igual que para lw. La diferencia es que sw tiene que leer dos registros: el registro fuente y el registro base. sw $r1, offset($r2) Los valores de r1 y r2 se leen en el banco de registros. Universidad de Sonora Arquitectura de Computadoras
Etapa 3 EX – execute or address calculation. Parecida a lw: la ALU suma el registro base más el offset. La diferencia es que es que hay que guardar registro fuente en el registro EX/MEM. Universidad de Sonora Arquitectura de Computadoras
Otro ejemplo Etapa 3 Universidad de Sonora Arquitectura de Computadoras
Etapa 4 MEM – memory access. El valor del registro fuente se escribe en la memoria de datos en la dirección registro base + offset. Universidad de Sonora Arquitectura de Computadoras
Otro ejemplo Etapa 4 Universidad de Sonora Arquitectura de Computadoras
Etapa 5 WB – write back. El store no hace nada. Universidad de Sonora Arquitectura de Computadoras
Otro ejemplo Etapa 5 Universidad de Sonora Arquitectura de Computadoras
Representaciones gráficas Hay dos estilos de dibujos de pipelines: Diagramas de pipeline de ciclos de reloj múltiple. Diagramas de pipeline de ciclos de reloj único. Universidad de Sonora Arquitectura de Computadoras
Ejemplo Considerar el siguiente código: lw $10 20($1) sub $11 $2 $3 add $12 $4 $13 24($1) $14 $5 $6 Universidad de Sonora Arquitectura de Computadoras
Ciclo múltiple moderno Fuente COD 5, p. 298 Universidad de Sonora Arquitectura de Computadoras
Ciclo múltiple tradicional Fuente: COD 5, p. 299 Universidad de Sonora Arquitectura de Computadoras
Ciclo único Fuente: COD 5, p. 299 Universidad de Sonora Arquitectura de Computadoras
Pipelined Control Las señales de control son las mismas que las de la CPU secuencial. Ahora se agrupan según la etapa del pipeline. Las primeras dos etapas, IF e ID, no tienen señales de control. Se necesitan pasar las señales entre etapas. Los registros del pipeline se extienden para incluir esa información. Universidad de Sonora Arquitectura de Computadoras
Pipelined Datapath Fuente: COD 5, p. 301 Universidad de Sonora Arquitectura de Computadoras
Tabla de control de la ALU Fuente: COD 5, p. 301 Universidad de Sonora Arquitectura de Computadoras
Efecto de las señales Fuente: COD 5, p. 302 Universidad de Sonora Arquitectura de Computadoras
Señales de control por etapa Fuente: COD 5, p. 302 Universidad de Sonora Arquitectura de Computadoras
Líneas de control Fuente: COD 5, p. 303 Universidad de Sonora Arquitectura de Computadoras
Pipelined datapath con control Fuente: COD 5, p. 304 Universidad de Sonora Arquitectura de Computadoras