M.C.
Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Arquitectura
• Unidad de control
• Trayectoria de datos (Datapath)
• Datapath: Componentes del procesador que realizan operaciones aritméticas y
transferencia de datos.
• Se encarga del procesamiento de datos
• Unidad de control: Circuito que determina la secuencia de las operaciones a
realizar por el datapath, memorias, dispositivos I/O de acuerdo a las instrucciones
en memoria
• Máquina de estados
• Estructura de un Datapath
• Registros
• Unidades Aritméticas (ALU, FPU, etc)
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Desempeño
• Instruction count
• Tiempo de ciclo de reloj
• Ciclos de reloj por instrucción
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Datapath
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Un ciclo de reloj
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Datapath
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Pipeline
• Es una técnica donde múltiples instrucciones se ejecutan en
“paralelo”, logrando así un incremento del número de
instrucciones que se pueden ejecutar en una unidad de
tiempo (no reduce el tiempo en el que se ejecuta una
instrucción).
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Pipeline de 5 etapas
• IF à Instruction Fetch
• ID à Instruction Decode
• EX à Execute
• MEM à Memory access
• WB à Register write back
Throughput VS Latency
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Throughput VS Latency
Latency: 260ns
Throughput: 1 / 260ns
Latency: 300ns
Throughput: 5 / 300ns = 1 / 60ns
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Ejercicio – Diseñar un pipeline
IF -> 20ns
ID -> 35ns
Instrucción A EX -> 40ns
MEM-> 35ns
WB -> 20ns
IF -> 20ns
ID -> 35ns Latency:
Instrucción B EX -> 50ns (No pipeline)
MEM-> 35ns Throughput:
WB -> 20ns
IF -> 20ns Latency:
ID -> 35ns (Pipeline)
Instrucción C EX -> 35ns Throughput:
MEM-> 35ns
WB -> 20ns
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Ejercicio – Diseñar un pipeline
IF -> 20ns IF -> 40ns
ID -> 35ns ID -> 40ns
Instrucción A EX -> 40ns EX -> 40ns
MEM-> 35ns MEM-> 40ns
WB -> 20ns WB -> 40ns
Latency:
(No pipeline)
IF -> 20ns
Throughput:
ID -> 35ns
Instrucción B EX -> 50ns
MEM-> 35ns
WB -> 20ns Latency:
(Pipeline)
Throughput:
IF -> 20ns
ID -> 35ns
Instrucción C EX -> 35ns
MEM-> 35ns
WB -> 20ns
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Implementación de Pipeline
[Link]
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Pipeline
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Limitaciones
• Latencia: El tiempo de ejecución de una instrucción nunca decrece
• Desbalance de las etapas de pipeline: reduce el desempeño ya que el reloj no
puede ir más rápido que la etapa más lenta del pipeline
• Overhead: retraso por los registros de pipeline y clock skew
Hazards
Previene a la siguiente instrucción de ejecutarse durante su ciclo de reloj designado
Structural hazards: Se debe a conflictos con recursos de HW
Data Hazards: Cuando la instrucción depende del resultado de una instrucción previa
Control Hazards: Instrucciones que modifican el PC (como los saltos)
Solución
Detener la ejecución insertando burbujas (“bubbles”)
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Tipos - Data Hazards
Orden:
Instrucción I
• Read After Write (RAW) Instrucción J
• Instrucción J intenta leer operando antes de que I lo escriba
Ø J con valor incorrecto
• Write After Read (WAR)
• Instrucción J intenta escribir operando antes de que J lo lea
• Una instrucción intenta escribir en un registro antes de que los resultados de una
instrucción anterior que leyó ese registro estén disponibles.
• Write After Write (WAW)
• Cuando dos o más instrucciones intentan escribir en la misma ubicación de
memoria o registro de manera secuencial sin una instrucción de espera entre ellas.
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación
M.C. Antonio Rivera Diseño usando microcontroladores y arquitectura computacional
Clock Skew
Escuela de Ingeniería y Ciencias Campus Ciudad de México Departamento de computación