Está en la página 1de 53

INF60500 - Arquite ctura de

computadore s
De pto. de Informática y Computación
Prime r se me stre 20 19

Profe sore s: Le onardo Bravo & Jorge Ve rgara


Introducción
● Factore s de pe rformance de la CPU
○ Cantidad de Instruccione s
■ De te rminado por e l ISA y e l compilador
○ CPI y tie mpo de l ciclo
■ De te rminado por e l hardware de la CPU
● Examinare mos tre s imple me ntacione s de MIPS
○ Dos ve rsione s simplificadas (“Single -cycle ” y “Multi-cycle ”)
○ Una ve rsión “pipe line d” más re alista
● Subconjunto simple , mue stra mayoría de los aspe ctos
○ Re fe re ncia a me moria: lw, sw
○ Aritmé tica/lógica: add, sub, and, or, slt
○ Control transfe re ncia: be q, j
Ejecución de Instrucciones

● PC → instrucción e n me moria, “fe tch” instrucción


● Nume ro re gistro → archivar re gistros, le e r re gistros
● De pe ndie ndo de la clase de instrucción
○ Utiliza ALU para calcular:
■ Re sultado aritmé tico
■ Dire cción de me moria para cargar/almace nar
■ Salto a dire cción obje tivo
○ Acce so a dato de me moria para cargar/almace nar
○ PC ← dire cción obje tivo o (PC + 4 byte s) e n la arquite ctura MIPS std
Visión Global de la CPU
Visión Global de la CPU
Multiplexores
 No se pueden conectar líneas
así
 Usar multiplexores
Control

Cómo se implementan lógicamente las operaciones y como se sincronizan las acciones?


Elementos Básicos del Diseño Lógico

● Información codificada e n binario


○ Bajo voltaje = 0 , Alto voltaje = 1 (lógica positiva)
○ Una cone xión por bit
○ Datos multi-bit codificados e n buse s multi-cone xione s
● Ele me ntos Combinacionale s
○ Ope ra e n los datos
○ La salida e s una función de la e ntrada
● Ele me ntos de Estados (se cue ncial)
○ Almace na información
Elementos Combinacionales

 Compuerta AND  Sumador A


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

 Multiplexor  Unidad Aritmética/Lógica


 Y = S ? I1 : I0  Y = F(A, B)

M A
I0
u Y ALU Y
I1 x
B
S
F
Elementos Secuenciales

● Re gistro: almace na datos e n un circuito


○ Utiliza una se ñal de re loj para de te rminar cuándo actualizar e l
valor almace nado
○ Activado por flanco (“e dge -trigge re d”): se actualiza cuando Clk
cambia de 0 a 1

Clk
D Q
D

Clk Q
Elementos Secuenciales

● Re gistro con control de e scritura


○ Sólo se actualiza con e l flanco de l re loj cuando la e ntrada control de
e scritura e s 1
○ Utilizado cuando e l valor almace nado e s re que rido de spué s

Clk

D Q Write
Write
D
Clk
Q
Metodología del Reloj

● Lógica combinacional transforma los datos durante los ciclos de l re loj

○ Entre flancos (pulsos) de l re loj


○ Entrada de los e le me ntos de e stado, salida a e le me ntos de e stado
○ El mayor re tardo de te rmina e l pe riodo de l re loj

E S

T: Duración del ciclo de reloj y las operaciones


de la combinatoria entre SE1 y SE2
E: valor escrito en el ciclo de reloj anterior
S: valor obtenible en el siguiente ciclo de reloj E S
Construcción de un Camino de datos (Datapath)

● Datapath

○ Ele me ntos que proce san datos y dire ccione s e n la CPU


■ Re gistros, ALUs, mux’s, me morias, …
○ Corre sponde a “lo controlado” e n un dise ño digital
● Construire mos un “datapath” de MIPS incre me ntalme nte

○ Afinamie nto de l dise ño global : e s e nte nde r e l todo a travé s de l


e nte ndimie nto de las parte s.
Búsqueda (“Fetch”) de una Instrucción

Incrementar en 4
para la siguiente
Registro instrucción
de 32 bit
Instrucciones Formato R (op $t1, $t2, $t3)

● Le e r dos ope randos de re gistros


● Re alizar ope ración aritmé tica/lógica
● Escribir re sultado e n re gistro

\ 32 \
32

\ 32

\ 32 \ Overflow ? Interrupciones
32

Banco de Registros:
Es una colección de registros, donde cualquiera de ellos puede leerse o escribirse especificando su número.
El banco de registros contiene el estado de los registros de la máquina.
Instrucciones “Load/Store” lw $t1, desp ($t2)
sw $t1, offset ($t2)
● Le e r ope randos de re gistros

● Calcular la dire cción utilizando un offse t de 16 bit

○ Utilizar ALU, pe ro con offse t con signo e xte ndido


● Load: Le e r me moria y actualizar re gistro
● Store : Escribir valor de re gistro e n me moria
Datapath Tipo R/Cargar/Almacenar
Instrucciones de Salto Condicional
(“Branch” o bifurcación) beq $t1, $t2, offset

● Le e r ope randos de re gistros

● Comparar ope randos

○ Utilizar ALU, re star y che que ar salida Ze ro


● Calcular dire cción obje tivo
○ De splazamie nto por e xte nsión de signo
○ De splazar a la izquie rda 2 lugare s (de splazamie nto de una
palabra)
○ Sumar al PC + 4
■ Ya calculado por e l “fe tch” de la instrucción
Instrucciones de Salto Condicional

Sólo re-enruta
las conexiones

Conexión bit de
signo extendido
Composición de los Elementos

● Como punto de partida e l datapath e je cuta una instrucción e n un ciclo


de re loj (CPI =1)
○ Cada e le me nto de l datapath pue de re alizar solame nte una función
cada ve z
○ Por lo tanto, se ne ce sita se parar la instrucción de l dato de
me moria
● Utilizar multiple xore s donde se te ngan fue nte s de datos alte rnativas
para dife re nte s instruccione s
Datapath Completo
Control de la ALU

● ALU utilizada para:


○ Load/Store : F = suma
○ Salto condicional (“branch”): F = re sta
○ Tipo R: F de pe nde de l campo “funct”

Control de la ALU Función


0000 AND
0001 OR
0010 suma
0110 resta
0111 seteado en menor que
1100 NOR
Control de la ALU

● Asume 2 bit para ALUOp de rivado de l opcode

○ Lógica combinacional para e l control de la ALU

Control
opcode ALUOp Operación funct Función 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
La Unidad de Control Principal (MCU)
● Se ñale s de control de rivadas de la instrucción

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 dirección
Store
31:26 25:21 20:16 15:0

Branch 4 rs rt dirección
31:26 25:21 20:16 15:0

opcode sie mpre le e r, e scribir e xte nsión


le ctura e xce pto para tipo R de signo y
para y cargar suma
cargar
Datapath Con Control
Instrucción Tipo R

Ejemplo: add $t1, $t2, $t3


Instrucción de Carga (“Load”)

Ejemplo: lw $t1, 100($t2)


Instrucción Salto Condicional Si Igual

Ejemplo: beq $t1, $t2, 100


La Función de Control
La Función de Control
Implementación de Saltos Incondicionales

Salto (“Jump”) 2 dirección


31:26 25:0

● El Salto utiliza dire cción de una palabra

● Actualiza PC con concate nación de :

○ 4 bits supe riore s de l PC +4 (bits 31:28)


○ 26-bit para dire cción de salto
○ 00
● Se ne ce sita una se ñal de control e xtra (Jump) de codificada de l opcode
Datapath Con Saltos Incorporados

Ejemplo: j dirección
Rendimiento del Camino de Datos
DataPath Performance
Problemas de Performance

● El mayor re tardo que tie ne e l Datapath de te rmina e l pe riodo de l re loj


de la e structura analizada:
○ Camino critico: instrucción de carga (Load)
○ Instruction me mory → re giste r file → ALU → data me mory → re giste r file
● Esta imple me ntación e s ine ficie nte a pe sar de funcionar corre ctame nte

● No e s factible variar e l pe riodo para dife re nte s instruccione s

● Viola principio de dise ño

○ Hace r más rápido e l caso común


● Solo me jorare mos la pe rformance con e l “pipe lining”
Rendimiento de una Máquina “Single-Cycle” o
Máquina de Ciclo Unico o Monociclo.
● Supongamos los siguie nte s tie mpos de ope ración:

○ Unidade s de me moria: 20 0 ps
○ ALU y sumadore s: 10 0 ps
○ “Re giste r file ” (le ctura o e scritura de re gistros): 50 ps
● Supongamos que los multiple xore s, unidad de control, acce so al PC,
e xte nsión de signo y cable s no produce n re tardo, son unidade s
suficie nte me nte rápidas para no influir sobre e l tie mpo total.

El picosegundo (del español pico, y éste del celtolatino beccus, pequeña cantidad excedente)
​es la unidad de tiempo que equivale a la billonésima parte de un segundo, y se abrevia ps.
1 ps = 1 × 10–12 s.
Rendimiento de una Máquina “Single-Cycle”

● ¿Cuál de las siguie nte s imple me ntacione s se rá más rápida y de


cuanto?
○ Una imple me ntación e n la que cada instrucción ope ra e n un ciclo
re loj de largo fijo
○ Una imple me ntación e n la que cada instrucción ope ra e n un ciclo
re loj de largo variable , donde e l largo de pe nde de la ne ce sidad de
cada instrucción
● Para la comparación asumamos la siguie nte distribución de
instruccione s: 25% load, 10 % store , 45% ALU, 15% bifurcacione s y 5%
jump
Rendimiento de una Máquina “Single-Cycle”

● Sabe mos que Tie mpo e je cución CPU = Núme ro de instruccione s x CPI
x Tie mpo ciclo re loj

● El CPI (Ciclos de re loj por instrucción) e s 1 por lo que e l Tie mpo de


e je cución CPU = Núme ro de instruccione s x Tie mpo ciclo re loj

● Ne ce sitamos e ncontrar e l tie mpo ciclo re loj para cada imple me ntación

ya que e l núme ro de instruccione s, al igual que e l CPI, e s conocido y


e s e l mismo
Rendimiento de una Máquina “Single-Cycle”
● El camino crítico para cada una de las dife re nte s clase s de instruccione s
soportadas por e l Datapath dise ñado e s:

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
Branch Fetch Acceso reg ALU
Jump Fetch
Rendimiento de una Máquina “Single-Cycle”
● El camino crítico para las dife re nte s clase s de instruccione s e s

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
Branch 200 50 100 0 350
Jump 200 200
Rendimiento de una Máquina “Single-Cycle”

● El ciclo re loj para una máquina “single -cycle ” e stá de te rminado por la
instrucción más larga (60 0 ps)
● Una máquina con ciclo variable te ndrá un ciclo que varía e ntre 20 0 ps
y 60 0 ps
● Su ciclo prome dio corre sponde a

Ciclo Reloj CPU = 600 ∗ 25% + 550 ∗ 10% + 400 ∗ 45% +


350 ∗ 15% + 200 ∗ 5%
= 447.5 ps
Rendimiento de una Máquina “Single-Cycle”

● La máquina de ciclo variable tie ne un ciclo prome dio más corto por lo

que e s más rápida


● Re spe cto a la re lación de re ndimie ntos

Rendimiento CPU variable Tiempo ejecución CPU fijo


=
Rendimiento CPU fijo Tiempo ejecución CPU variable
Número instrucciones ∗ Ciclo reloj CPU fijo
=
Número instrucciones ∗ Ciclo reloj CPU variable
Ciclo reloj CPU fijo 600
= = = 1.34
Ciclo reloj CPU variable 447.5
Rendimiento de una Máquina “Single-Cycle”

● La imple me ntación con re loj variable e s 1.34 ve ce s más rápida

● La imple me ntación de una máquina con ciclo variable e s


e xtre madame nte comple jo
● Para un conjunto pe que ño de instruccione s se imple me nta una
máquina “single -cycle ” fijo

Propue sta: Inve stigue n que suce de al imple me ntar punto flotante con
e sta máquina
Resumen Implementación de una Máquina “Single-
Cycle”
● Adicionalme nte al proble ma de re ndimie nto, cada unidad funcional
pue de se r utilizada sólo una ve z por ciclo
● De bido a e sto se de be n duplicar algunas unidade s lo que aume nta e l
costo de imple me ntación
● Para e vitar e stas dificultade s se utilizan imple me ntacione s con ciclos
más cortos y que re quie re n de múltiple s ciclos por instrucción
● Existe n otras imple me ntacione s más e ficie nte s como e l “pipe lining”
que supe rpone la e je cución de múltiple s instruccione s
Diagrama en Bloques Detallado Single Cycle o Ciclo Unico
Un esquema más eficiente (Pipeline o Segmentación)

● Esta té cnica e s muy similar al Datapath de la máquina “single -cycle ”


pe ro e s más e ficie nte logrando un mayor re ndimie nto (throughput).
● El Pipe line e je cuta múltiple s instruccione s simultáne ame nte , hacie ndo
funcionar, si e s conve nie nte , aque llas parte s que no se utilizan, dando
paso a una sgte . instrucción mie ntras la ante rior aun no te rmina.

Para e xplicar e l e sque ma de pipe line e n té rminos simple s pe nse mos e n la


tare a de “lavar ropa sucia” e ide ntificamos las subtare as que e sta actividad
implica. Ve amos e ste e je mplo a continuación.
Pipeline

● Colocar una carga de ropa sucia e n la lavadora

● Cuando e l lavado te rmina, colocar la carga e n la se cadora

● Cuando la se cadora te rmina, colocar la ropa e n la tabla para planchar

● Cuando e l planchado te rmina, re tiras la carga para guardar la ropa.

● Una ve z guardada la ropa, pue de s come nzar una nue va tare a con
ropa sucia.
Pipeline
Pipeline

● Ve mos que pode mos e ficie ntar e l trabajo anticipando la e je cución de


algunos trabajos sin ate ntar con la lógica de la ope ración
● Así pode mos e je cutar varias tare as “concurre nte s” e n forma parale la
ya que no e stán utilizando e l mismo re curso, por lo que e l re curso
pue de se r utilizado e n forma anticipada.
● El pipe line no va a disminuir e l tie mpo total que de mora un “calce tin”
de sde que se lava hasta que se plancha, pe ro cuando te ne mos varias
cargas de ropa por e je cutar e n e l proce so, e l tie mpo total de la
actividad clarame nte disminuye .
Rendimiento Single-Cylce vs Pipeline

Ejemplo entre operaciones comunes en procesamiento de datos:


● Load word (lw),
● store word (sw),
● add (add),
● subtract (sub),
● AND (and), OR (or),
● se t le ss than (slt),
● Branch on e qual (be q).
Rendimiento Single-Cylce vs Pipeline

Podemos analizar el mejoramiento del esquema de Pipeline con la


siguie nte formula:

Tie mpo total instruccione s con pipe line = Tie mpo total instruccione s sin pipe line
Núme ro de e tapas de pipe line

La me jora de l tie mpo de e je cución conside rando condicione s ide ale s y un


gran núme ro de instruccione s, se rá de un orde n e quivale nte a la cantidad
de e tapas de l pipe line (Con 5 e tapas se ría 5 ve ce s más rápido).

En ge ne ral las e tapas no sie mpre e stán pe rfe ctame nte balance adas y e l
proce so de pipe line tambié n e ntre ga una sobre carga (de lays) por lo que
e l me joramie nto e s me nor a la proporción de la cantidad de e tapas de l
pipe line .
Rendimiento Single-Cylce vs Pipeline

En este ejemplo más realista vemos que no todas las etapas toman el
mismo tiempo, por lo tanto se van agregando tiempo muertos (hazard) y
sobre cargas, considerando ciclos de reloj iguales en cada operación

También podría gustarte