arquitectura de computadoras para ingenieríapmd/ac_ing/downloads/slides/aci-clase-10.pdfla...

61
Dana K. Urribarri AC 2016 1 Arquitectura de Computadoras para Ingeniería (Cód. 7526) 1° Cuatrimestre 2016 Dra. Dana K. Urribarri DCIC - UNS

Upload: others

Post on 18-Sep-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 1

Arquitectura de Computadoraspara Ingeniería

(Cód. 7526)1° Cuatrimestre 2016

Dra. Dana K. UrribarriDCIC - UNS

Page 2: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 2

Modelos de arquitecturas

Page 3: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 3

Modelo von Neumann● El modelo von Neumann tiene 4 partes:

1) Unidad central de proceso (CPU)

2) Memoria

3) Entradas

4) Salidas

Page 4: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 4

Modelo von Neumann1) CPU:

– ALU

– Registros de alta velocidad para almacenar los operandos

– Unidad de control: interpreta las instrucciones y hace que se ejecuten

– Program counter (PC)

2) Memoria– Almacena instrucciones,

datos y resultadosintermedios y finales.Se implementa como una jerarquía.

Page 5: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 5

Modelo Harvard● Usa memoria y buses separados para instrucciones y datos.

● Pueden ejecutar instrucciones y acceder a datos simultáneamente.

● Requiere 4 buses, dos de direcciones y dos de contenido.

Page 6: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 6

Microprocesador vs Microcontrolador● Microprocesador:

– Chip que contiene la CPU.

– Modelo von Neumann. La memoria es externa al microprocesador.

● Microcontrolador:– Un único chip que contiene CPU, memoria,

entrada/salida y periféricos.

– Modelo Harvard.

Page 7: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 7

Medidas de desempeño

Page 8: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 8

Medidas de desempeño● Para comparar arquitecturas se necesita

mediciones que reflejen:– la arquitectura del procesador

– la jerarquía de memoria

independientemente:– de los programas

– del subsistema de I/O.

Page 9: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 9

Medidas de desempeño● Ciclos por instrucción (CPI)● Instrucciones por ciclo (IPC)● Rendimiento (Throughput)● Latencia● Speedup● Eficiencia

Page 10: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 10

Tiempo de ejecución● El tiempo de ejecución de un programa (EXCPU)

depende de la cantidad de instrucciones a ejecutar y del tiempo de ejecución de cada instrucción.

● El tiempo de ejecución de una instrucción puede medirse en función de la cantidad de ciclos que demora en ejecutarse y del período de cada pulso.

EXCPU = #Instrucciones × CPI × período del reloj

#Total de ciclos 1/frecuencia

Medidas de desempeño

Page 11: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 11

Instrucciones por ciclo● La recíproca del CPI

CPI = EXCPU / (#Instrucciones x período del reloj)

es la cantidad de instrucciones que se ejecutan en un ciclo

IPC = 1 / CPI

IPC = #Instrucciones × período del reloj / EXCPU

IPC = #Instrucciones / #Total de ciclos

Medidas de desempeño

Page 12: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 12

Medidas de desempeño● Throughput: IPC

– Cantidad de trabajo (instrucciones) por unidad de tiempo

● Latencia: EXCPU

– Las unidades de tiempo que demanda realizar el trabajo.

Page 13: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 13

Medidas de desempeño● El rendimiento (performance) se define como la

recíproca del tiempo de ejecución.● Los tres factores que afecta el rendimiento son:

– La cantidad de instrucciones ejecutadas Responsabilidad del compilador

– CPI (o IPC) Responsabilidad del diseño e implementación de la arquitectura

– Frecuencia del reloj Dependiente de la tecnología

Page 14: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 14

Comparación de desempeño● Comparación en términos relativos (no absolutos)● Un sistema A tiene mejor rendimiento que un

sistema B si el sistema A tiene menor tiempo de ejecución (para un conjunto de programas) que el sistema B.

RendimientoA

RendimientoB

=1 /EXCPU A

1 /EXCPU B

=EXCPU B

EXCPU A

Page 15: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 15

Comparación de desempeño● El speedup es la razón entre el rendimiento de un

sistema mejorado y el rendimiento de su implementación original

Speedup=Rendimiento MejoradoRendimientoOriginal

=EXCPU Original

EXCPU Mejorado

Page 16: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 16

Eficiencia● Mientras el speedup es la ganancia por mejorar

un sistema.● La eficiencia mide la utilización de un recurso.

● Si Speedupn es la ganancia por mejorar el sistema con n recursos, la eficiencia mide la utilización de esos recursos.

Eficiencia=Speedupn

n

Page 17: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 17

Ley de Amdahl● El speedup se definió inicialmente para

procesadores paralelos.

● Si T1 es el tiempo de ejecución en un procesador y Tn es el tiempo de ejecución en n procesadores, lo esperable sería que:

Tn = T1 / n

y por lo tanto

Speedup=T 1

T n

=T 1

T 1 /n=n

Page 18: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 18

Ley de Amdahl● La ejecución de un programa consiste de una

parte secuencial seguido de una parte paralelizable.

● Si– s es el tiempo de ejecución de la parte secuencial

– p es el tiempo de ejecución secuencial de la parte paralelizable

● EntoncesT1 = s + p

Tn = s + p / nSpeedup=

T 1

T n

=s+p

s+p /n

Page 19: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 19

Ley de Amdahl● Si

● En el límite (n → ∞)

● Luego, si asumimos T1 = 1 (o 100%) el máximo speedup 1/s está limitado por la fracción de tiempo que se consume en la ejecución de la parte secuencial.

Speedup=T 1

T n

=s+p

s+p /n

limn→∞ Speedup=s+p

s

Page 20: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 20

Microarquitectura de microprocesador

(Modelo von Neumann)

Page 21: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 21

Arquitectura y Microarquitectura● La arquitectura de una computadora la define:

– El set de instrucciones

– La ubicación de los operandos (registros y memoria)

– x86, MIPS, SPARC, PowerPC.

● La arquitectura no define la implementación del hardware.– Intel y AMD implementan la arquitectura x86.

– Diferencias en rendimiento, precio y consumo.

● La microarquitectura es la combinación específica de registros, memoria, ALUs y otros bloques del microprocesador.

Page 22: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 22

Arquitectura● Vamos a considerar DLX, un subconjunto de MIPS.● MIPS:

– RISC

– 32 y 64 bits

● Implementaciones de MIPS se usan en Sistemas Embebidos:– Dispositivos con Windows CE

– Routers

– Consolas como Nintendo 64, Sony PlayStation, PlayStation 2 y PlayStation Portable.

Page 23: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 23

Arquitectura DLXDLX incluye:● Instrucciones R-type

Instrucciones aritmético-lógico● Instrucciones de escritura y lectura en

memoria

Load y store● Instrucciones de bifurcación

Saltos condicionles (branch) e incondicionales (jump)

Page 24: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 24

Microarquitectura● La microarquitectura se divide en dos partes que interactúan

entre sí:– Datapath

– Unidad de Control

● Datapath– Opera sobre los datos.

– Involucra memorias, registros, ALUs y multiplexores.

● Unidad de Control– A partir de la instrucción actual le indica al datapath cómo ejecutar

la instrucción.

– Produce señales de multiplexado, habilitaciones de registros y señales a la memoria para controlar las operaciones del datapath.

Page 25: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 25

Ciclo de ejecuciónLos pasos básicos para ejecutar una instrucción:

1) Se trae de memoria la próxima instrucción a ejecutar (apuntada por el PC)

2) La unidad de control decodifica la instrucción

3) Se ejecuta la instrucción. Puede ser:– Operación de la ALU

– Cargar un registro con un dato de memoria

– Almacenar un dato de un registro en memoria

– Testear la condición de un salto

4) Se actualiza el PC

5) Volver al paso 1

Page 26: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 26

Diseño de la microarquitectura● Tres posibles microarquitecturas para MIPS:

– Diseño único ciclo:

Ejecuta la instrucción completa en un único ciclo.

– Diseño multi-ciclo:

Ejecuta las instrucciones en una serie de ciclos cortos.

– Diseño en pipeline:

Aplica pipeline a la microarquitectura de un único ciclo.

Page 27: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 27

Microarquitectura único ciclo● Cada instrucción se ejecuta en un único ciclo de

reloj (CPI = 1).– Comienza en un flanco ascendente (o descendente)

– Termina en el próximo flanco ascendente (o descendente)

● El ciclo tiene que ser lo suficientemente largo para permitir la ejecución de la instrucción más lenta.

● No es práctico pero es simple.

Page 28: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 28

Microarquitectura único ciclo

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Page 29: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 29

Microarquitectura único cicloLoad:● R[d] ← Mem[R[s] + #valor]● PC ← PC + 4

1) Traer la instrucción

2) Obtener los operandos: leer el registro del banco de registros y obtener el valor inmediato

3) Calcular la dirección de memoria

4) Leer el dato de memoria y escribirlo en el banco de registros.

5) Actualizar el PC

Page 30: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 30

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Load: Traer la instrucciónMicroarquitectura único ciclo

Page 31: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 31

Load: Obtención de operandos

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 32: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 32

Load: Cálculo de dirección

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 33: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 33

Load: Escribir el dato obtenido en el destino

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 34: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 34

Load: Actualizar PC

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 35: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 35

Microarquitectura único cicloR-type (add, or, etc):● R[d] ← R[s] + R[t]● PC ← PC + 4

1) Traer la instrucción

2) Obtener los operandos: leer el registro del banco de registros los dos operandos

3) Realizar la operación de la ALU

4) Escribir el resultado en el banco de registros.

5) Actualizar el PC

Page 36: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 36

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

R-type: Traer la instrucciónMicroarquitectura único ciclo

Page 37: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 37

R-type: Obtención de operandos

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 38: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 38

R-type: Realizar la operación de la ALU

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 39: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 39

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

R-type: Escribir el resultadoMicroarquitectura único ciclo

Page 40: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 40

R-type: Actualizar PC

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 41: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 41

Microarquitectura único cicloStore:● Mem[d + #valor] ← R[s]● PC ← PC + 4

1) Traer la instrucción

2) Obtener los operandos: leer los registros s y d del banco de registros y el valor inmediato.

3) Calcular la dirección destino

4) Escribir el valor del registro en memoria.

5) Actualizar el PC

Page 42: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 42

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Store: Traer la instrucciónMicroarquitectura único ciclo

Page 43: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 43

Store: Obtención de operandos

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 44: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 44

Store: Calcular la dirección

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 45: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 45

Store: Escribir el resultado

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 46: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 46

Store: Actualizar PC

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 47: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 47

Microarquitectura único cicloBranch (beq):● Si R[s] == R[t]

– Entonces PC ←PC + offset

– Si no PC ← PC + 4

1) Traer la instrucción

2) Obtener los operandos: leer los registros s y t del banco de registros y el valor inmediato.

3) Evaluar la condición

4) Actualizar el PC en función de la condición

Page 48: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 48

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Branch: Traer la instrucciónMicroarquitectura único ciclo

Page 49: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 49

Branch: Obtención de operandos

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 50: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 50

Branch: Evaluar la condición

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 51: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 51

Branch: Actualizar PC

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Microarquitectura único ciclo

Page 52: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 52

Microarquitectura único ciclo● Implica:

✔ Diseño simple

✗ El período del ciclo está limitado por la instrucción más lenta.

✗ Necesita 2 sumadores además de la ALU

✗ Fuerza memorias separadas

✗ La operación del datapath es puramente combinacional.La máquina está en estados estables solamente al principio y al final del ciclo.

Page 53: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 53

Microarquitectura multi-ciclo● Las instrucciones se ejecutan a lo largo de varios

ciclos cortos.● Reduce el hardware ya que permite reusar

bloques de hardware.● Agrega hardware para almacenar resultados

intermedios.● Ejecuta una instrucción por vez y cada instrucción

demanda múltiples ciclos.

Page 54: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 54

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC 0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gDst

Branch

MemWrite

Mem

toReg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWritePCEn

Traer la instrucción

Page 55: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 55

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC 0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gDst

Branch

MemWrite

Mem

toReg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWritePCEn

Obtención de operandos

Page 56: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 56

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC 0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gDst

Branch

MemWrite

Mem

toReg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWritePCEn

Operación ALU / Cálculo dirección

Page 57: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 57

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC 0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gDst

Branch

MemWrite

Mem

toReg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWritePCEn

Escritura en memoria / registros

Page 58: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 58

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC 0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gDst

Branch

MemWrite

Mem

toReg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWritePCEn

Actualización del PC

Page 59: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 59

Microarquitectura multi-ciclo✔ Permite mayor frecuencia de reloj.

✗ No todos los pasos son de igual duración.El reloj debe ser permitir el paso más lento.

✗ Agrega la sobrecarga de los registros entre los pasos.

Page 60: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 60

Microarquitectura en pipeline● Se divide la microarquitectura único ciclo en

etapas.● Cada instrucción se ejecuta en varios ciclos, pero

todas en la misma cantidad de ciclos.● Las etapas se ejecutan en pipeline y diferentes

etapas pueden ejecutarse en paralelo.

● Los procesadores modernos están diseñados en pipeline.

Page 61: Arquitectura de Computadoras para Ingenieríapmd/ac_ing/downloads/Slides/ACI-Clase-10.pdfLa arquitectura de una computadora la define: – El set de instrucciones – La ubicación

Dana K. Urribarri AC 2016 61

Bibliografía● Capítulo 1. Jean-Loup Baer. Multiprocessor

Architecture. From simple pipelines to chip multiprocessor. Cambridge University Press. 2010.

● Capítulo 7. David Money Harris & Sarah L. Harris. Digital Design and Computer Architecture. Elsevier. 2013, 2da Ed.

● Capítulo 4. David A. Patterson & John L. Hennessy. Computer Organization and Design. The Hardware/Software Interface. Elsevier Inc. 2014, 5ta Ed.