8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... ·...

51
8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Transcript of 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... ·...

Page 1: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

8. Diseño del Procesador

Fundamentos de los ComputadoresGrado en Ingeniería Informática

(hasta final del diseño monociclo)

Page 2: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Objetivos

Plantear y modificar una ruta de datos para un repertorio de instrucciones simple en un procesador básico

Especificar y modificar una unidad de control con una máquina de estados finitos para una ruta de datos y un repertorio de instrucciones simples

Implementar una unidad de control especificada mediante una máquina de estados finitos

Especificar y modificar una unidad de control microprogramada para una ruta de datos y un repertorio de instrucciones simple

Implementar una unidad de control microprogramada. Escribir una rutina de tratamiento de excepción para

interrupciones o excepciones básicas

2Diseño del procesador

Page 3: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

3

Estructura del tema

Metodología de sincronización Diseño de un procesador MIPS R3000 reducido

Rutas de datos individuales Diseño monociclo

▫ Diseño de la ruta de datos▫ Diseño de la unidad de control de la ALU▫ Diseño de la unidad de control▫ Ventajas y desventajas

Diseño multiciclo▫ Diseño de la ruta de datos▫ Diseño de la unidad de control

▪ Control cableado▪ Control microprogramado

Excepciones e interrupciones Resumen y bibliografía

Diseño del procesador

Page 4: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Metodología de Sincronización

La metodología de sincronización define cuándo pueden leerse y escribirse las diferentes señales

Características de la metodología de sincronización por nivel Un elemento de estado puede ser actualizado sólo en el flanco de reloj Un elemento de estado puede ser leído y modificado en un mismo ciclo Señales de habilitación de escritura explícitas

Stateelement

1

Stateelement

2

Combinationallogic

clock

one clock cycle

4Diseño del procesador

Page 5: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

5

Estructura del tema

Metodología de sincronización Diseño de un procesador MIPS R3000 reducido

Rutas de datos individuales Diseño monociclo

▫ Diseño de la ruta de datos▫ Diseño de la unidad de control de la ALU▫ Diseño de la unidad de control▫ Ventajas y desventajas

Diseño multiciclo▫ Diseño de la ruta de datos▫ Diseño de la unidad de control

▪ Control cableado▪ Control microprogramado

Excepciones e interrupciones Resumen y bibliografía

Diseño del procesador

Page 6: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Conocimientos previos: Arquitectura MIPS

Registros 32 registros de propósito general, de 32 bits cada uno. ($0, $1, ..., $31)

Memoria Direccionable por bytes en modo “big endian” Direcciones de 32 bits

Modo de direccionamiento registro base + desplazamiento [100($1)]

6Diseño del procesador

Page 7: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Conocimientos previos: Arquitectura MIPS

Repertorio de instrucciones longitud fija de 32 bits. 3 tipos de instrucciones

▫ aritmético-lógicas: add, sub, and, or, slt add $1, $2, $3▫ de referencia a memoria: lw, sw lw $1, 100($2)▫ Saltos (condicionales o no): beq, j beq $1, $2, 48

3 formatos▫ formato R▫ formato I▫ formato J

op rs rt rd funct

op rs rt desplazamiento

op dirección

shamt

7Diseño del procesador

Page 8: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

8

Estructura del tema

Metodología de sincronización Diseño de un procesador MIPS R3000 reducido

Rutas de datos individuales Diseño monociclo

▫ Diseño de la ruta de datos▫ Diseño de la unidad de control de la ALU▫ Diseño de la unidad de control▫ Ventajas y desventajas

Diseño multiciclo▫ Diseño de la ruta de datos▫ Diseño de la unidad de control

▪ Control cableado▪ Control microprogramado

Excepciones e interrupciones Resumen y bibliografía

Diseño del procesador

Page 9: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Ciclo de instrucción Lectura de la instrucción M[PC] Decodificación de la instrucción y lectura de los registros Ejecución de la instrucción

Ejecución de instrucciones: Pasos Común

▫ Leer instrucción de la memoria con el PC▫ Leer registros especificados en la instrucción

Similar▫ Utilizar la ALU

Diferente▫ Terminación de ejecución de instrucción

Ciclo de instrucción

Diseño del procesador 9

Page 10: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Ruta de datos individuales – Búsqueda de la instrucción

Lectura de la memoria de instrucciones Actualización del PC a la siguiente instrucción

ReadAddress

Instruction

InstructionMemory

Add

PC

4

Diseño del procesador 10

Page 11: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ControlUnit

Ruta de datos individuales – Decodificación y lectura de registros

Diseño del procesador 11

Envío de los campos de código de operación y función a la unidad de control

Lectura del banco de registro de los registros $rs y $rt

Page 12: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

add, sub, and, or y slt

add rd, rs, rt Ejemplo: add $8, $9, $10 $8=$9+$10

Formato tipo R: op y funct especifican la operación aritmético-lógica

Ruta de datos individuales – Aritmético-lógicas

Diseño del procesador 12

R-type:31 25 20 15 5 0

op rs rt rd functshamt

10

R-type:31 25 20 15 5 0

op rs rt rd functshamt

10

Page 13: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Ruta de datos individuales – Aritmético-lógicas

Escritura del registro $rd del banco de registros con la salida de la ALU

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

overflowzero

ALU controlRegWrite

13Diseño del procesador

Page 14: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Instrucciones de acceso a memoria

lw y sw lw rt, despl(rs) ó sw rt, despl(rs)

Ejemplos: lw $1, 24($2) $1= Mem[$2+24]sw $1, 24($2) Mem[$2+24]= $1

Formato tipo I

op rs rt desplazamiento

14Diseño del procesador

Page 15: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Ruta de datos individuales– Cargas y almacenamientos

Cálculo de la dirección de memoria address $rs + extensión-signo(IR[15:0])

Carga de un registro (load) $rt M[$rs + extensión-signo(IR[15:0])]

Almacenamiento de un registro (store) M[$rs + extensión-signo(IR[15:0])] $rt

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

overflowzero

ALU controlRegWrite

DataMemory

Address

Write Data

Read Data

SignExtend

MemWrite

MemRead

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

overflowzero

ALU controlRegWrite

DataMemory

Address

Write Data

Read Data

SignExtend

MemWrite

MemRead16 3216 32

15Diseño del procesador

Page 16: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Instrucción de salto condicional

beq rs, rt, desplEjemplo:

beq $1, $2, despl si ($1=$2) PC=PC+despl

Formato tipo I

op rs rt desplazamiento

16Diseño del procesador

Page 17: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

17

Ruta de datos individuales – Saltos condicionales

Resta $rs y $rt y comprobación de la señal zero de la ALU

Cálculo de la dirección efectiva de salto address PC + 4 + (extensión-signoIR[15:0])<<2

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ALU

zero

ALU control

SignExtend16 32

Shiftleft 2

Add

4 Add

PC

Branchtargetaddress

(to branch control logic)

Diseño del procesador

Page 18: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Instrucción de salto incondicional

j direcciónEjemplo:

j 1000 PC = PC[31-28] + 1000[27-2]+00[1-0]

Formato tipo J

op dirección

18Diseño del procesador

Page 19: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Ruta de datos individuales – Bifurcaciones

Reemplazo del PC por la dirección efectiva de salto PC PC[31:28] || (IR[25:0]<<2)

ReadAddress

Instruction

InstructionMemory

Add

PC

4

Shiftleft 2

Jumpaddress

26

4

28

19Diseño del procesador

Page 20: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

20

Estructura del tema

Metodología de sincronización Diseño de un procesador MIPS R3000 reducido

Rutas de datos individuales Diseño monociclo

▫ Diseño de la ruta de datos▫ Diseño de la unidad de control de la ALU▫ Diseño de la unidad de control▫ Ventajas y desventajas

Diseño multiciclo▫ Diseño de la ruta de datos▫ Diseño de la unidad de control

▪ Control cableado▪ Control microprogramado

Excepciones e interrupciones Resumen y bibliografía

Diseño del procesador

Page 21: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Diseño monociclo

Tcpu = N · CPI · tciclo

Depende del compilador yde la arquitectura del

repertorio de instrucciones

Dependen de la organización e implementación del

procesador

21Diseño del procesador

Page 22: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Integración de las rutas de datos individuales Recursos hardware + multiplexores + señales de control + restricciones de

diseño

Restricción de diseño Todas las instrucciones tardan un único ciclo de reloj La instrucción más lenta determina el tiempo de ciclo Ningún componente de la ruta de datos puede ser reutilizado

▫ Memorias separadas de instrucciones y datos▫ Sumadores varios…

22

Diseño monociclo

Diseño del procesador

Page 23: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

23

Diseño de la RD - Integración tipo R y memoria

MemtoReg

ReadAddress

Instruction

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovfzero

ALU controlRegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemReadSign

Extend16 32

ALUSrc MemtoRegMemtoRegMemtoReg

ReadAddress

Instruction

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovfzero

ALU controlRegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemReadSign

Extend16 32

ReadAddress

Instruction

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovfzero

ALU controlRegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemReadSign

Extend16 32

ALUSrcALUSrc

Diseño del procesador

Page 24: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

24

Diseño de la RD - Integración tipo R y memoria

Diseño del procesador

Instrucción

Dirección a leer

Memoria deInstrucciones

PC

4

Add

Extensiónde

signo

resultALU

ALU Zero

16 32

Mux

RegWriteALUSrc

3Operación

ALU

Dirección

Dato a escribir

Memoria de Datos

Registro lectura 1

Registro lectura 2

Registro a EscribirDato a Escribir

Datoleído 1

Banco de Registros

Datoleído 2 Dato

leído Mux

MemWrite

MemtoReg

MemRead

Page 25: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

25

Diseño de la RD - tipo R + lw/sw + beq

Diseño del procesador

Instrucción

Dirección a leer

Memoria deInstrucciones

PC

4 AddDesplaz.

izq. 2

Extensiónde

signo

resultALU

ALUZero

16 32

Mux

RegWriteALUSrc

3Operación

ALU

Dirección

Dato a escribir

Memoria de Datos

Registro lectura 1Registro lectura 2Registro a escribirDato a Escribir

Datoleído 1

Banco de Registros

Datoleído 2

Datoleído M

ux

MemtoReg

MemWrite

MemRead

PCSrc

Mux

Add

Page 26: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

26

Diseño de la RD - tipo R + lw/sw + beq + j

Diseño del procesador

Instrucción

Dirección a leer

Memoria deInstrucciones

PC

4

Add

Add resultALU

Desplaz.izq. 2

Registro lectura 1

Registro lectura 2

Registro a escribir

Dato a escribir

Datoleído 1

Banco de Registros

Extensiónde

signo

resultALU

ALU Zero

16 32

Mux

RegWriteALUSrc

3 OperaciónALU

Dirección

Dato a escribir

Memoria de Datos

Datoleído 2

Datoleído M

ux

MemWrite

MemtoReg

MemRead

PCSrc1

Mux

PCSrc2

Mux

Desplaz.izq. 2

28

26

32Instrucción[25-0]

PC+4 [31-28]

Page 27: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

27

Diseño de la RD – Señales de control

Selección de la operación a realizar Operación ALU: ALUControl Escritura y lectura del banco de registros: RegWrite Escritura y lectura de las memorias: MemRead, MemWrite

Selección de entradas de los multiplexores (flujo de datos) ALUSrc, MemToReg

¿Y el número del registro destino de donde viene?

I-Type: op rs rt address offset31 25 20 15 0

R-type:31 25 20 15 5 0

op rs rt rd functshamt

10

J-type:31 25 0

op target addressJ-type:31 25 0

op target address

Diseño del procesador

Page 28: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

28

Diseño de la RD – Integración de la RD y de la UC

ReadAddress

Instr[31-0]

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovf

zero

RegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemRead

SignExtend16 32

MemtoReg

ALUSrc

Shiftleft 2

Add

PCSrc

RegDst

ALUcontrol

1

1

1

00

0

0

1

ALUOp

Instr[5-0]

Instr[15-0]

Instr[25-21]

Instr[20-16]

Instr[15 -11]

ControlUnit

Instr[31-26]

Branch

Diseño del procesador

Page 29: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

29

Diseño de la RD – Flujo de datos y control para tipo R

ReadAddress

Instr[31-0]

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovf

zero

RegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemRead

SignExtend16 32

MemtoReg

ALUSrc

Shiftleft 2

Add

PCSrc

RegDst

ALUcontrol

1

1

1

00

0

0

1

ALUOp

Instr[5-0]

Instr[15-0]

Instr[25-21]

Instr[20-16]

Instr[15 -11]

ControlUnit

Instr[31-26]

Branch

Diseño del procesador

Page 30: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

30

Diseño de la RD – Flujo de datos y control para lw

ReadAddress

Instr[31-0]

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovf

zero

RegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemRead

SignExtend16 32

MemtoReg

ALUSrc

Shiftleft 2

Add

PCSrc

RegDst

ALUcontrol

1

1

1

00

0

0

1

ALUOp

Instr[5-0]

Instr[15-0]

Instr[25-21]

Instr[20-16]

Instr[15 -11]

ControlUnit

Instr[31-26]

Branch

Diseño del procesador

Page 31: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

31

Diseño de la RD – Flujo de datos y control para beq

ReadAddress

Instr[31-0]

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovf

zero

RegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemRead

SignExtend16 32

MemtoReg

ALUSrc

Shiftleft 2

Add

PCSrc

RegDst

ALUcontrol

1

1

1

00

0

0

1

ALUOp

Instr[5-0]

Instr[15-0]

Instr[25-21]

Instr[20-16]

Instr[15 -11]

ControlUnit

Instr[31-26]

Branch

Diseño del procesador

Page 32: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

32

Integración de la RD – Flujo de datos y control para j

ReadAddress

Instr[31-0]

InstructionMemory

Add

PC

4

Write Data

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

ovf

zero

RegWrite

DataMemory

Address

Write Data

Read Data

MemWrite

MemRead

SignExtend16 32

MemtoReg

ALUSrc

Shiftleft 2

Add

PCSrc

RegDst

ALUcontrol

1

1

1

00

0

0

1

ALUOp

Instr[5-0]

Instr[15-0]

Instr[25-21]

Instr[20-16]

Instr[15 -11]

ControlUnit

Instr[31-26]

Branch

Shiftleft 2

0

1

Jump

32Instr[25-0]

26PC+4[31-28]

28

Diseño del procesador

Page 33: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Esquema alternativo (sin instrucción j)

Camino de datos con todos los multiplexores y líneas de control necesarias (según figura del libro de texto)

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

RegWrite

4

16 32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

Readdata 1

Readdata 2

Readregister 1Readregister 2

Signextend

ALUresult

Zero

Datamemory

Address Readdata M

ux

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction [15–11]

ALUcontrol

Shiftleft 2

PCSrc

ALU

Add ALUresult

33Diseño del procesador

Page 34: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

34

Estructura del tema

Metodología de sincronización Diseño de un procesador MIPS R3000 reducido

Rutas de datos individuales Diseño monociclo

▫ Diseño de la ruta de datos▫ Diseño de la unidad de control de la ALU▫ Diseño de la unidad de control▫ Ventajas y desventajas

Diseño multiciclo▫ Diseño de la ruta de datos▫ Diseño de la unidad de control

▪ Control cableado▪ Control microprogramado

Excepciones e interrupciones Resumen y bibliografía

Diseño del procesador

Page 35: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Camino de datos con la unidad principal de control y la unidad local de control de la ALU

Diseño de la UC de la ALU: visión completa

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction[5 0]

MemtoRegALUOpMemWrite

RegWrite

MemReadBranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata1

Readdata2

Readregister1

Readregister 2

Signextend

Mux1

ALUresult

Zero

PCSrc

DatamemoryWrite

data

Readdata M

ux

1

Instruction [15 11]

ALUcontrol

Shiftleft 2

ALUAddress

35Diseño del procesador

Page 36: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

36

Diseño de la UC de la ALU – Estructura de la ALU

Entradas de control(ALUctr) FUNCIÓN

000 AND001 OR010 ADD110 SUB111 SLT

A L U R e s u ltZ e r o

O v e r f lo w

a

b

A L U o p e r a t io n

C a r r y O u t

A L U R e s u ltZ e r o

O v e r f lo w

a

b

A L U o p e r a t io n

C a r r y O u t

0

3

Result

Operation

a

1

CarryIn

CarryOut

0

1

Binvert

b 2

Less

a.

0

3

Result

Operation

a

1

CarryIn

CarryOut

0

1

Binvert

b 2

Less

a.

Operaciones básicas (solo usaremos 5 de las 8 posibles)

Diseño del procesador

Page 37: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

37

Diseño de la UC de la ALU – Especificación del control ALU

Operaciones a realizar según la instrucción Load (lw) y store (sw): Suma($rs + extensión-signo(IR[15:0])) Salto (beq): Resta($rs-$rt) Aritméticas (tipo R: add, sub, or, and y slt): Definida por el campo funct

Cod. Op. ALUop Instrucción FUNCT Op. deseada Entradas de control de la ALU (ALUctr)

LW 00 Carga XXXXXX suma 010

SW 00 Almacena XXXXXX suma 010

Branch Equal 01 salto XXXXXX resta 110

R-Type 10 suma 100000 suma 010

R-Type 10 resta 100010 resta 110

R-Type 10 AND 100100 and 000

R-Type 10 OR 100101 or 001

R-Type 10 set on less than 101010 set on less than 111

Diseño del procesador

Page 38: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Diseño de la UC de la ALU: Tabla de verdadALUop funct ALUctr

ALUop1 ALUop0 F5 F4 F3 F2 F1 F0 bit2 bit1 bit00 0 x x x x x x 0 1 0x 1 x x x x x x 1 1 01 x x x 0 0 0 0 0 1 01 x x x 0 0 1 0 1 1 01 x x x 0 1 0 0 0 0 01 x x x 0 1 0 1 0 0 11 x x x 1 0 1 0 1 1 1

MainControl

op6

ALUControl(Local)

func

N

6ALUop

ALUctr3

AL

U

op rs rt rd shamt funct061116212631

6 bits 6 bits5 bits5 bits5 bits5 bits

Instrucción Tipo R:

funct<3:0> Instruction Op.00000010010001011010

addsubtractandorset-on-less-than

38Diseño del procesador

Page 39: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

39

Diseño de la UC de la ALU - ImplementaciónALUop funct Operación (ALUctr)

ALUop1 ALUop0 F5 F4 F3 F2 F1 F0 bit2 bit1 bit00 0 x x x x x x 0 1 0x 1 x x x x x x 1 1 01 x x x 0 0 0 0 0 1 01 x x x 0 0 1 0 1 1 01 x x x 0 1 0 0 0 0 01 x x x 0 1 0 1 0 0 11 x x x 1 0 1 0 1 1 1

Operation2

Operation1

Operation0

Operation

ALUOp1

F3

F2

F1

F0

F (5– 0)

ALUOp0

ALUOp

ALU control block

Operation2

Operation1

Operation0

Operation

ALUOp1

F3

F2

F1

F0

F (5– 0)

ALUOp0

ALUOp

ALU control block

Diseño del procesador

Page 40: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

40

Estructura del tema

Metodología de sincronización Diseño de un procesador MIPS R3000 reducido

Rutas de datos individuales Diseño monociclo

▫ Diseño de la ruta de datos▫ Diseño de la unidad de control de la ALU▫ Diseño de la unidad de control▫ Ventajas y desventajas

Diseño multiciclo▫ Diseño de la ruta de datos▫ Diseño de la unidad de control

▪ Control cableado▪ Control microprogramado

Excepciones e interrupciones Resumen y bibliografía

Diseño del procesador

Page 41: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

41

Diseño de la UC – Señales de control

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

RegWrite

4

16 32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

Readdata1

Readdata2

Readregister1Readregister2

Signextend

ALUresult

Zero

Datamemory

Address Readdata Mu

x

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction [15–11]

ALUcontrol

Shiftleft 2

PCSrc

ALU

Add ALUresult

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

RegWrite

4

16 32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

Readdata1

Readdata2

Readregister1Readregister2

Signextend

ALUresult

Zero

Datamemory

Address Readdata Mu

x

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction [15–11]

ALUcontrol

Shiftleft 2

PCSrc

ALU

Add ALUresult

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

RegWrite

4

16

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

RegWrite

4

16 32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

Readdata1

Readdata2

Readregister1Readregister2

Signextend

ALUresult

Zero

Datamemory

Address Readdata Mu

x

1

1

Mux

32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

Readdata1

Readdata2

Readregister1Readregister2

Signextend

ALUresult

Zero

Datamemory

Address Readdata Mu

x

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction [15–11]

ALUcontrol

Shiftleft 2

PCSrc

ALU

Add ALUresult

Tipo R: op rs rt rd shamt funct Bits: 31-26 25-21 20-16 15-11 10-6 5-0 Tipo I: op rs rt Inmediato16 Bits: 31-26 25-21 20-16 15-0 Tipo J: op Dirección Bits: 31-26 26-0

Diseño del procesador

Page 42: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

42

Diseño de la UC – Funcionalidad de las señales de control

Señal Acción cuando es desactivada (0) Acción cuando se activa (1)RegDst El registro destino para las escrituras viene del

campo rt (bits 20-16)El registro destino para las escrituras viene del campord (bits 15-11)

RegWrite Ninguno Escribe el dato en "WriteData" en el registro dado por"WriteRegister".

AluSrc El segundo operando de la ALU viene del banco deregistro (salida 2)

El segundo operando de la ALU son los 16 bits menossignificativos de la instrucción extendidos en signo

PCSrc Selecciona PC+4 como nuevo valor del PC Selecciona la dirección de salto computada como nuevovalor del PC

MemWrite Ninguna Escribe en la dirección de memoria "Address" el dato"WriteData"

MemRead Ninguna Lee un dato de la dirección de memoria "Address" y lodeja en la salida "ReadData"

MemToReg El valor a realimentar al campo "WriteData" vienede la salida de la ALU

El valor a realimentar al campo "WriteData" viene de lamemoria

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

Instruction[25–21]

Add

Instruction[5–0]

RegWrite4

16 32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

Readregister1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction[15–11]

ALUcontrol

Shiftleft2

PCSrc

ALU

Add ALUresult

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

Instruction[25–21]

Add

Instruction[5–0]

RegWrite4

16 32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

Readregister1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction[15–11]

ALUcontrol

Shiftleft2

PCSrc

ALU

Add ALUresult

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

Instruction[25–21]

Add

Instruction[5–0]

RegWrite4

16

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

Instruction[25–21]

Add

Instruction[5–0]

RegWrite4

16 32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

Readregister1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

1

Mux

32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

Readregister1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction[15–11]

ALUcontrol

Shiftleft2

PCSrc

ALU

Add ALUresult

Diseño del procesador

Page 43: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Funcionamiento instrucción tipo R (add, sub, and, or, slt)

add $t1,$t2,$t3

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

MemtoRegALUOpMemWrite

RegWrite

MemReadBranchRegDst

ALUSrc

Instruction [31–26]

4

16 32Instruction [15–0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata1

Readdata2

Readregister 1

Readregister 2

Signextend

Shiftleft 2

Mux

1

ALUresult

Zero

Datamemory

Writedata

Readdata M

ux

1

Instruction [15–11]

ALUcontrol

ALUAddress

43Diseño del procesador

Page 44: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Funcionamiento instrucción lw

lw $t1, desplazamiento ($t2)

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [15–11]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

MemtoRegALUOpMemWrite

RegWrite

MemReadBranchRegDst

ALUSrc

Instruction [31–26]

4

16 32Instruction [15–0]

0

0Mux

0

1

ALUcontrol

Control

Shiftleft 2

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1ALU

Address

44Diseño del procesador

Page 45: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Funcionamiento instrucción sw

sw $t1, desplazamiento($t2)

P

C

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [15–11]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

MemtoRegALUOpMemWrite

RegWrite

MemReadBranchRegDst

ALUSrc

Instruction [31–26]

4

16 32Instruction [15–0]

0

0Mux

0

1

ALUcontrol

Control

Shiftleft 2

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata1

Readdata2

Readregister 1

Readregister 2

Signextend

Mux1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1ALU

Address

45Diseño del procesador

Page 46: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Funcionamiento instrucción branch

beq $t1, $t2, desplazamiento

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction [15–11]

Instruction [20–16]

Instruction [25–21]

Add

Instruction [5–0]

MemtoRegALUOpMemWrite

RegWrite

MemReadBranchRegDst

ALUSrc

Instruction [31–26]

4

16 32Instruction [15–0]

Shiftleft 2

0Mux

0

1

ALUcontrol

Control

RegistersWriteregister

Writedata

Readdata 1

Readregister 1

Readregister 2

Signextend

1

ALUresult

Zero

Datamemory

Writedata

ReaddataM

ux

Readdata 2

Add ALUresult

Mux

0

1

Mux

1

0

ALUAddress

46Diseño del procesador

Page 47: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

47

Diseño de la UC – Implementación de la UC

Op5-0 ->(bits 31-26)

00 00000D

10 001135D

10 101143D

00 01004D

R-Format lw sw beqRegDst 1 0 x xALUSrc 0 1 1 0MemToReg 0 1 x xRegWrite 1 1 0 0MemRead 0 1 0 0MemWrite 0 0 1 0Branch 0 0 0 1ALUOp1 1 0 0 0ALUOp0 0 0 0 1

R-format Iw sw beq

Op0Op1Op2Op3Op4Op5

Inputs

Outputs

RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUOp1

ALUOpO

Implementación con PLA

R-format Iw sw beq

Op0Op1Op2Op3Op4Op5

Inputs

Outputs

RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUOp1

ALUOpO

R-format Iw sw beq

Op0Op1Op2Op3Op4Op5

Inputs

Outputs

RegDst

ALU

R-format Iw sw beq

Op0Op1Op2Op3Op4Op5

Inputs

Outputs

RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUOp1

ALUOpO

Implementación con PLA

Diseño del procesador

Page 48: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

48

Estructura del tema

Metodología de sincronización Diseño de un procesador MIPS R3000 reducido

Rutas de datos individuales Diseño monociclo

▫ Diseño de la ruta de datos▫ Diseño de la unidad de control de la ALU▫ Diseño de la unidad de control▫ Ventajas y desventajas

Diseño multiciclo▫ Diseño de la ruta de datos▫ Diseño de la unidad de control

▪ Control cableado▪ Control microprogramado

Excepciones e interrupciones Resumen y bibliografía

Diseño del procesador

Page 49: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

Suponiendo que los tiempos de operación (latencia) de las unidades funcionales son: Unidad de memoria: 2 ns ALU y sumadores: 2 ns Registros (lectura o escritura): 1 ns Resto de los componentes (multiplexores, acceso al PC, etc. ): 0 ns

¿Cuál de las siguientes implementaciones será más rápida?1.- Una implementación en la que cada instrucción se ejecuta en un ciclo de reloj de duración fija. 2.- Una implementación donde cada instrucción se ejecuta en un ciclo de reloj pero de duración variable (solución no práctica, pero ilustrativa).Suponer un programa compuesto por: 24% carga (lw), 12% almacenamiento (sw), 44% R-format, 18% saltos (beq/bne) y 2% bifurcacines (j).

Rendimiento de la implementación monociclo - Ejemplo

49Diseño del procesador

Page 50: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

SoluciónInstrucción Unidades funcionales utilizadasR-format búsqueda acceso a registro ALU acceso a registroLoad búsqueda acceso a registro ALU acceso a memoria Acceso a registroStore búsqueda acceso a registro ALU acceso a memoriaBranch búsqueda acceso a registro ALUjump búsqueda

Tiempo de ciclo necesario para cada instrucción Instrucción Memoria Registro ALU Memoria Registro Total por

instr. (ns) Porcentaje

de uso R-format 2 1 2 0 1 6 44% Load 2 1 2 2 1 8 24% Store 2 1 2 2 7 12% Branch 2 1 2 5 18% jump 2 2 2%

Tiempo de ciclo medio (44%x6 + 24%x8 + 12% x7 + 18%x5 + 2%x2 ) = 6.3 ns

compleja más ninstruccióla ejecutar para necesario tiempo ns, 8 de será fijoreloj de ciclo de tiempo El (*)

TCPINTCPIN

TT

ientonienton

bleCicloVaria

CicloFijo

bleCicloVaria

CicloFijo

lojFijo

elojVariabl 27.13.6

8**

**dimRe

dimRe

Re

Re

50Diseño del procesador

Page 51: 8. Diseño del Procesadorserdis.dis.ulpgc.es/~gii-fc/.../Tema8_Diseno_del_procesador_FC_GII... · formato R formato I formato J ... zero RegWrite ALU control Diseño del procesador

51

Ventajas y desventajas

V: Todas las instrucciones tardan un ciclo en ejecutarse

D: Aprovechamiento ineficiente del área del chip (componentes repetidos)

D: Ciclo de reloj largo para acomodar la instrucción más lenta Las instrucciones de punto flotante requerirían un tiempo de ciclo extra

largo

Clk

lw sw Waste

Cycle 1 Cycle 2Clk

lw sw Waste

Cycle 1 Cycle 2

Diseño del procesador