Anda di halaman 1dari 41

ICEE1012

El Procesador Single-Cycle

Basado en el Capitulo 4 del texto: Computer Organization and Design, David Patterson y John Hennessy
Introduccin
Factores de performance de la CPU
Cantidad de Instrucciones
Determinado por el ISA y el compilador
CPI y tiempo del ciclo
Determinado por el hardware de la CPU

Examinaremos tres implementaciones de MIPS


Dos versiones simplificadas (Single-cycle y Multi-cycle)
Una versin pipelined ms realista
Subconjunto simple, muestra mayora de los
aspectos
Referencia a memoria: lw, sw
Aritmtica/lgica: add, sub, and, or, slt
Control transferencia: beq, j
Semestre Otoo 2014 ECEE1012 Sistemas Digitales II
Ejecucin de Instrucciones
PC instruccin en memoria, fetch instruccin
Numero registro archivo registro, leer registros
Dependiendo de la clase de instruccin
Utiliza ALU para calcular:
Resultado aritmtico
Direccin de memoria para cargar/almacenar
Salto a direccin objetivo
Acceso a dato de memoria para cargar/almacenar
PC direccin objetivo o (PC + 4)

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Visin Global de la CPU

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Multiplexores
No se pueden
conectar lneas
as
Usar multiplexores

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Control

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Elementos Bsicos del Diseo Lgico

Informacin codificada en binario


Bajo voltaje = 0, Alto voltaje = 1 (lgica positiva)
Una conexin por bit
Datos multi-bit codificados en buses multi-conexiones
Elementos Combinacionales
Opera en los datos
La salida es una funcin de la entrada
Elementos de Estados (secuencial)
Almacena informacin

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Elementos Combinacionales

Compuerta AND Sumador A


+ Y
Y=A&B Y=A+B
B

A
Y
B

Unidad Aritmtica/Lgica
Multiplexor Y = F(A, B)
Y = S ? I1 : I0
A
I0 M
u Y ALU Y
I1 x
B
S F
Semestre Otoo 2014 ECEE1012 Sistemas Digitales II
Elementos Secuenciales
Registro: almacena datos en un circuito
Utiliza una seal de reloj para determinar cundo
actualizar el valor almacenado
Activado por flanco (edge-triggered): se actualiza
cuando Clk cambia de 0 a 1

Clk
D Q
D

Clk
Q

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Elementos Secuenciales
Registro con control de escritura
Slo se actualiza con el flanco del reloj cuando la
entrada control de escritura es 1
Utilizado cuando el valor almacenado es requerido
despus
Clk

D Q Write

Write D
Clk
Q

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Metodologa del Reloj
Lgica combinacional transforma los datos
durante los ciclos del reloj
Entre flancos del reloj
Entrada de los elementos de estado, salida a
elementos de estado
El mayor retardo determina el periodo del reloj

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Construccin de un Datapath

Datapath
Elementos que procesan datos y direcciones en la CPU
Registros, ALUs, muxs, memorias,
Corresponde a lo controlado en un diseo digital
Construiremos un datapath de MIPS
incrementalmente
Afinamiento del diseo global

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Bsqueda (Fetch) de una Instruccin

Incrementar en 4
para la siguiente
Registro instruccin
de 32 bit

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Instrucciones Formato R
Leer dos operandos de registros
Realizar operacin aritmtica/lgica
Escribir resultado en registro

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Instrucciones Load/Store
Leer operandos de registros
Calcular la direccin utilizando un offset de 16 bit
Utilizar ALU, pero con offset con signo extendido
Load: Leer memoria y actualizar registro
Store: Escribir valor de registro en memoria

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Instrucciones de Salto Condicional (Branch)
Leer operandos de registros
Comparar operandos
Utilizar ALU, restar y chequear salida Zero
Calcular direccin objetivo
Desplazamiento por extensin de signo
Desplazar a la izquierda 2 lugares (desplazamiento
de una palabra)
Sumar al PC + 4
Ya calculado por el fetch de la instruccin

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Instrucciones de Salto Condicional

Slo re-enruta
las conexiones

Conexin bit de
signo extendido
Semestre Otoo 2014 ECEE1012 Sistemas Digitales II
Composicin de los Elementos
Como punto de partida el datapath ejecuta una
instruccin en un ciclo de reloj
Cada elemento del datapath puede realizar solamente
una funcin cada vez
Por lo tanto, se necesita separar la instruccin del dato
de memoria
Utilizar multiplexores donde se tengan fuentes de
datos alternativas para diferentes instrucciones

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Datapath Tipo R/Cargar/Almacenar

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Datapath Completo

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Control de la ALU
ALU utilizada para:
Load/Store: F = suma
Salto condicional (branch): F = resta
Tipo R: F depende del campo funct

Control de la ALU Funcin


0000 AND
0001 OR
0010 suma
0110 resta
0111 seteado en menor que
1100 NOR

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Control de la ALU
Asume 2 bit para ALUOp derivado del opcode
Lgica combinacional para el control de la ALU

Control
opcode ALUOp Operacin funct Funcin ALU
ALU
lw 00 carga palabra XXXXXX suma 0010
sw 00 almacena palabra XXXXXX suma 0010
beq 01 salta si igual XXXXXX resta 0110
Tipo R 10 suma 100000 suma 0010
resta 100010 resta 0110
AND 100100 AND 0000
OR 100101 OR 0001
seteado en menor que 101010 seteado en menor que 0111

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


La Unidad de Control Principal (MCU)
Seales de control derivadas de la instruccin

R-type 0 rs rt rd shamt funct


31:26 25:21 20:16 15:11 10:6 5:0

Load/
35 or 43 rs rt direccin
Store
31:26 25:21 20:16 15:0

Branch 4 rs rt direccin
31:26 25:21 20:16 15:0

opcode siempre leer, escribir extensin


lectura excepto para tipo R de signo y
para y cargar suma
cargar
Semestre Otoo 2014 ECEE1012 Sistemas Digitales II
Datapath Con Control

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Instruccin Tipo R

Ejemplo: add $t1, $t2, $t3

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Instruccin de Carga (Load)

Ejemplo: lw $t1, 100($t2)

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Instruccin Salto Condicional Si Igual

Ejemplo: beq $t1, $t2, 100

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


La Funcin de Control

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


La Funcin de Control

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Implementacin de Saltos Incondicionales

Salto (Jump) 2 direccin


31:26 25:0

El Salto utiliza direccin de una palabra


Actualiza PC con concatenacin de:
4 bits superiores del PC +4 (bits 31:28)
26-bit para direccin de salto
00
Se necesita una seal de control extra (Jump)
decodificada del opcode

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Datapath Con Saltos Incorporados

Ejemplo: j direccin

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Problemas de Performance
El mayor retardo determina el periodo del reloj
Camino critico: instruccin de carga (Load)
Instruction memory register file ALU data
memory register file
Esta implementacin es ineficiente a pesar de
funcionar correctamente
No es factible variar el periodo para diferentes
instrucciones
Viola principio de diseo
Hacer ms rpido el caso comn
Mejoraremos la performance con el pipelining
Semestre Otoo 2014 ECEE1012 Sistemas Digitales II
Rendimiento de una Mquina Single-Cycle
Supongamos los siguientes tiempos de
operacin:
Unidades de memoria: 200 ps
ALU y sumadores: 100 ps
Register file (lectura o escritura): 50 ps
Supongamos que los multiplexores, unidad de
control, acceso al PC, extensin de signo y
cables no producen retardo

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Rendimiento de una Mquina Single-Cycle
Cul de las siguientes implementaciones ser
ms rpida y de cuanto?
Una implementacin en la que cada instruccin opera
en un ciclo reloj de largo fijo
Una implementacin en la que cada instruccin opera
en un ciclo reloj de largo variable, donde el largo
depende de la necesidad de cada instruccin
Para la comparacin asumamos la siguiente
distribucin de instrucciones: 25% load, 10%
store, 45% ALU, 15% bifurcaciones y 5% jump

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Rendimiento de una Mquina Single-Cycle
Sabemos que Tiempo ejecucin CPU = Nmero
de instrucciones x CPI x Tiempo ciclo reloj
El CPI es 1 por lo que Tiempo ejecucin CPU =
Nmero de instrucciones x Tiempo ciclo reloj
Necesitamos encontrar el tiempo ciclo reloj para
cada implementacin ya que el nmero de
instrucciones, al igual que el CPI, es conocido y
es el mismo

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Rendimiento de una Mquina Single-Cycle
El camino crtico para las diferentes clases de
instrucciones es
Clase Unidades funcionales
Tipo R Fetch Acceso reg ALU Acceso reg
lw Fetch Acceso reg ALU Acceso mem Acceso reg
sw Fetch Acceso reg ALU Acceso mem
Bifurcacin Fetch Acceso reg ALU
jump Fetch

A partir de esta tabla y de los tiempos en las


unidades funcionales se tiene

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Rendimiento de una Mquina Single-Cycle
El camino crtico para las diferentes clases de
instrucciones es
Clase Mem Lectura reg ALU Mem datos Escritura reg Total
Tipo R 200 50 100 0 50 400
lw 200 50 100 200 50 600
sw 200 50 100 200 550
Bifurcacin 200 50 100 0 350
jump 200 200

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Rendimiento de una Mquina Single-Cycle
El ciclo reloj para una mquina single-cycle
est determinado por la instruccin ms larga
(600 ps)
Una mquina con ciclo variable tendr un ciclo
que vara entre 200 ps y 600 ps
Su ciclo promedio corresponde a
Ciclo Reloj CPU 600 25% 550 10% 400 45%
350 15% 200 5%
447.5 ps

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Rendimiento de una Mquina Single-Cycle
La mquina de ciclo variable tiene un ciclo
promedio ms corto por lo que es ms rpida
Respecto a la relacin de rendimientos

Rendimiento CPU variable Tiempo ejecucin CPU fijo



Rendimiento CPU fijo Tiempo ejecucin CPU variable
Nmero instrucciones Ciclo reloj CPU fijo

Nmero instrucciones Ciclo reloj CPU variable
Ciclo reloj CPU fijo 600
1.34
Ciclo reloj CPU variable 447.5

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Rendimiento de una Mquina Single-Cycle
La implementacin con reloj variable es 1.34
veces ms rpida
La implementacin de una mquina con ciclo
variable es extremadamente complejo
Para un conjunto pequeo de instrucciones se
implementa una mquina single-cycle fijo
Investigue que sucede al implementar punto
flotante con esta mquina

Semestre Otoo 2014 ECEE1012 Sistemas Digitales II


Resumen Implementacin de una
Mquina Single-Cycle
Adicionalmente al problema de rendimiento, cada
unidad funcional puede ser utilizada slo una vez
por ciclo
Debido a esto se deben duplicar algunas unidades
lo que aumenta el costo de implementacin
Para evitar estas dificultades se utilizan
implementaciones con ciclos ms cortos y que
requieren de mltiples ciclos por instruccin
Existen otras implementaciones ms eficientes
como el pipelining que superpone la ejecucin de
mltiples instrucciones
Semestre Otoo 2014 ECEE1012 Sistemas Digitales II

Anda mungkin juga menyukai