91
8 Diseño del Procesador Diseño del Procesador 8. 8. Diseño del Procesador Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática

8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Embed Size (px)

Citation preview

Page 1: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

88 Diseño del ProcesadorDiseño del Procesador8.8. Diseño del ProcesadorDiseño del Procesador

Fundamentos de los ComputadoresGrado en Ingeniería Informática

Page 2: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

ObjetivosObjetivos

Plantear y modificar una ruta de datos para un repertorio de instrucciones simple en un procesador básicop pEspecificar y modificar una unidad de control con una máquina de estados finitos para una ruta de datos y un repertorio de instrucciones simplesImplementar una unidad de control especificada mediante una máquina de estados finitosEspecificar y modificar una unidad de control microprogramada

t d d t t i d i t i i lpara una ruta de datos y un repertorio de instrucciones simpleImplementar una unidad de control microprogramada.E ibi i d i d ióEscribir una rutina de tratamiento de excepción para interrupciones o excepciones básicas

2Diseño del procesador

Page 3: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

3Diseño del procesador

Page 4: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Metodología de SincronizaciónMetodología de Sincronización

La metodología de sincronización define cuándo pueden leerse y escribirse las diferentes señalesCaracterísticas de la metodología de sincronización por nivel

Un elemento de estado puede ser actualizado sólo en el flanco de relojUn elemento de estado puede ser leído y modificado en un mismo cicloSeñales de habilitación de escritura explícitas

Statel t

Statel t

Combinationalelement

1element

2logic

clockclock

one clock cycle

4Diseño del procesador

Page 5: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

5Diseño del procesador

Page 6: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Soporte del subconjunto de instruccionesAcceso a memoria: lw (load word) y sw (store word)( ) y ( )Aritmético-lógicas: add, sub, and, or, sltSalto y bifurcación: beq (branch if equal) y j (jump)

Ciclo de instrucciónLectura de la instrucción M[PC]

difi ió d l i ió l d l iDecodificación de la instrucción y lectura de los registrosEjecución de la instrucción

6Diseño del procesador

Page 7: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Conocimientos previos: Arquitectura Conocimientos previos: Arquitectura MIPSMIPS

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

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

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

7Diseño del procesador

Page 8: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Conocimientos previos: Arquitectura Conocimientos previos: Arquitectura MIPSMIPS

Repertorio de instrucciones longitud fija de 32 bits. g j3 tipos de instrucciones ▫ aritmético-lógicas: add, sub, and, or, slt add $1, $2, $3

d f i i l l $ ($ )▫ 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

f t Jop rs rt rd functshamt

▫ formato Jop rs rt desplazamiento

op dirección

8Diseño del procesador

Page 9: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

9Diseño del procesador

Page 10: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ciclo de instrucciónCiclo de instrucción

Ejecución de instrucciones: PasosComún▫ Leer instrucción de la memoria con el PC▫ Leer registros especificados en la instrucción

Si ilSimilar▫ Utilizar la ALU

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

Diseño del procesador 10

Page 11: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Lectura de la memoria de instruccionesActualización del PC a la siguiente instrucciónActualización del PC a la siguiente instrucción

Add

4

ReadAddress

Instruction

InstructionMemory

PC

Diseño del procesador 11

Page 12: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ruta de datos individuales Ruta de datos individuales –– DecodificaciónDecodificación

Envío de los campos de código de operación y función a la unidad de controlLectura del banco de registro de los registros $rs y $rt

ControlUnit

Read Addr 1R i t Read

Read Addr 1R i t Read

Instruction Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

Write DataData 2

Write DataData 2

Diseño del procesador 12

Page 13: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

add, sub, and, or y slt

add rd, rs, rtEjemplo: add $8, $9, $10 → $8=$9+$10

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

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

Diseño del procesador 13

Page 14: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

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

R d Add 1

ALU controlRegWrite

Instruction

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ALU

overflowzero

Write Data

Write Addr ReadData 2

14Diseño del procesador

Page 15: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucciones de acceso a memoriaInstrucciones de acceso a memoria

lw y swlw rt, despl(rd)ó sw rt, despl(rd), p ( ) , p ( )Ejemplos: lw $1, 24($2) → $1= Mem[$2+24]

sw $1, 24($2) → Mem[$2+24]= $1$ , ($ ) [$ ] $Formato tipo I

op rs rt desplazamiento

15Diseño del procesador

Page 16: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ruta de datos individualesRuta de datos individuales–– Cargas y almacenamientosCargas y almacenamientos

Cálculo de la dirección de memoriaaddress $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

Read Addr 1Read

overflowzero

ALU controlRegWrite

Address

MemWrite

Read Addr 1Read

overflowzero

ALU controlRegWrite

Address

MemWrite

Instruction

Write Data

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALUData

Memory

Address

Write Data

Read DataInstruction

Write Data

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALUData

Memory

Address

Write Data

Read Data

SignExtend

MemReadSignExtend

MemRead16 3216 32

16Diseño del procesador

Page 17: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucción de salto condicionalInstrucción de salto condicional

beq rs, rt, desplEjemplo:Ejemplo:

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

Formato tipo I

op rs rt desplazamiento

17Diseño del procesador

Page 18: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ruta de datos individuales Ruta de datos individuales –– Saltos condicionalesSaltos condicionales

Resta de $rs y $rt y comprobación de la señal zero de la ALUla ALUCálculo de la dirección efectiva de salto

dd PC 4 ió i (IR[15 0] 2)address PC + 4 + extensión-signo(IR[15:0]<<2)

B h

ALU control

Shiftleft 2

Add

4 AddBranchtargetaddress

Instruction

Read Addr 1

Read Addr 2Register

File

ReadData 1

ALU

zero

PC

(to branch control logic)

Write Data

Write Addr ALU

Sign

18

Extend16 32

Diseño del procesador

Page 19: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucción de salto incondicionalInstrucción de salto incondicional

j direcciónEjemplo:j p

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

Formato tipo J

op dirección

19Diseño del procesador

Page 20: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ruta de datos individuales Ruta de datos individuales –– BifurcacionesBifurcaciones

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

Add

44

InstructionMemory

Shiftl ft 2

Jumpaddress

4

ReadAddress

Instruction

Memory

PCleft 2

26

28

20Diseño del procesador

Page 21: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

21Diseño del procesador

Page 22: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño monocicloDiseño monociclo

T = N · CPI · tTcpu = N · CPI · tciclo

Depende del compilador yde la arquitectura del

t i d i t i

Dependen de la organización e implementación del

drepertorio de instrucciones procesador

22Diseño del procesador

Page 23: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño monocicloDiseño monociclo

Integración de las rutas de datos individualesRecursos hardware + multiplexores + señales de control + restricciones de pdiseño

Restricción de diseñoTodas las instrucciones tardan un único ciclo de relojLa instrucción más lenta determina el tiempo de cicloNingún componente de la ruta de datos puede ser reutilizadoNingún componente de la ruta de datos puede ser reutilizado▫ Memorias separadas de instrucciones y datos▫ Sumadores…

23Diseño del procesador

Page 24: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

MemtoReg

Instruction

Add

4

Read Addr 1

ovfzero

ALU controlRegWrite MemWriteALUSrc MemtoRegMemtoRegMemtoReg

Instruction

Add

4

Read Addr 1

ovfzero

ALU controlRegWrite MemWrite

Instruction

Add

4

Read Addr 1

ovfzero

ALU controlRegWrite MemWriteALUSrcALUSrc

ReadAddress

Instruction

InstructionMemory

PC

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadALU

DataMemory

Address

W it D t

Read DataReadAddress

Instruction

InstructionMemory

PC

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadALU

DataMemory

Address

W it D t

Read DataReadAddress

Instruction

InstructionMemory

PC

Read Addr 1

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadALU

DataMemory

Address

W it D t

Read Data

Write DataData 2 Write Data

MemReadSi

Write DataData 2 Write Data

MemReadSi

Write DataData 2 Write Data

MemReadSiSign

Extend16 32Sign

Extend16 32Sign

Extend16 32

24Diseño del procesador

Page 25: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Selección de la operación a realizarOperación ALU: ALUControlEscritura y lectura del banco de registros: RegWriteEscritura y lectura de las memorias: MemRead, MemWrite

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

R-type:31 25 20 15 5 0

op rs rt rd functshamt

10

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

J-type:31 25 0

op target addressJ-type:31 25 0

op target address

25Diseño del procesador

Page 26: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

AddAdd

0

14

MemWrite

MemReadMemtoReg

ALUSrc

Shiftleft 2 PCSrc

ALUOp

ControlUnit

Instr[31-26]

Branch

Instruction Read Addr 1

ovf

RegWrite

ALUSrc

RegDst

Instr[25-21]

ReadAddress

Instr[31-0]

InstructionMemory

PC

Write Data

Read Addr 2

Write Addr

Register

File

ReadData 1

ReadData 2

ALU

zeroData

Memory

Address

Write Data

Read Data 1

1

1

00

0

Instr[20-16]

Instr[15 Write Data

SignExtend16 32

ALUcontrol

1

Instr[15-0]

-11]

Instr[5-0]

26Diseño del procesador

Page 27: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Add

4 ShiftAdd

0

1

MemWrite

MemReadMemtoReg

ALUSrc

left 2 PCSrcALUOp

ControlUnit

Instr[31-26]

Branch

InstructionMemory

Read Addr 1Register Read

ovf

RegWrite

Address

RegDst

Instr[25-21]

ReadAddress

Instr[31-0]

Memory

PC

Write Data

Read Addr 2

Write Addr

Register

FileData 1

ReadData 2

ALU

zeroData

Memory

Write Data

Read Data 1

1

1

00

0

Instr[20-16]

Instr[15 -11]

SignExtend16 32

ALUcontrol

Instr[5-0]

Instr[15-0]

27Diseño del procesador

Page 28: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Add

4 Shiftleft 2

Add

PCSrc

0

1

MemWrite

MemReadMemtoReg

ALUSrc

left 2 PCSrcALUOp

ControlUnit

Instr[31-26]

Branch

InstructionMemory

Read Addr 1

Read Addr 2Register Read

Data 1

ovf

zero

RegWrite

Address

RegDst

Instr[25-21]

Instr[20-16]ReadAddress

Instr[31-0]PC

Write Data

Read Addr 2

Write AddrFile

Data 1

ReadData 2

ALU

zeroData

Memory

Write Data

Read Data 1

1

1

00

0

Instr[20 16]

Instr[15 -11]

SignExtend16 32

ALUcontrol

Instr[5-0]

Instr[15-0]

28Diseño del procesador

Page 29: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Add

4 Shiftleft 2

Add

PCSrc

0

1

MemWrite

MemReadMemtoReg

ALUSrc

left 2 PCSrcALUOp

ControlUnit

Instr[31-26]

Branch

InstructionMemory

Read Addr 1

Read Addr 2Register Read

Data 1

ovf

zero

RegWrite

Address

RegDst

Instr[25-21]

Instr[20-16]ReadAddress

Instr[31-0]PC

Write Data

Read Addr 2

Write AddrFile

Data 1

ReadData 2

ALU

zeroData

Memory

Write Data

Read Data 1

1

1

00

0

Instr[20 16]

Instr[15 -11]

SignExtend16 32

ALUcontrol

Instr[5-0]

Instr[15-0]

29Diseño del procesador

Page 30: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Add

4 ShiftAdd

0

1

Shiftleft 2

0

132

Instr[25-0]

26PC+4[31-28]

28

4

MemWrite

MemReadMemtoReg

ALUSrc

Shiftleft 2 PCSrc

ALUOp

ControlUnit

Instr[31-26]

BranchJump

InstructionMemory

Read Addr 1Register Read

ovf

RegWrite

Address

RegDst

Instr[25-21]

ReadAddress

Instr[31-0]

Memory

PC

Write Data

Read Addr 2

Write Addr

Register

FileData 1

ReadData 2

ALU

zeroData

Memory

Write Data

Read Data 1

1

1

00

0

Instr[20-16]

Instr[15 -11]

SignExtend16 32

ALUcontrol

Instr[5-0]

Instr[15-0]

30Diseño del procesador

Page 31: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Esquema alternativo (sin instrucción j)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)

Add

4 1

Mux

0

PCSrc

Add ALU

MemWritePC ReadI t ti [20 16]

Instruction [25–21]

RegWrite

4

Readdata 1

Readregister 1

1

Shiftleft 2

Add result

MemtoRegALUSrcPC

Instructionmemory

addressInstruction

[31–0]

Instruction [20–16]

0Registers

WriteregisterWritedata

data 1

Readdata 2

Readregister 2

ALUresult

Zero

D t

Address Readdata M

ux

1

1

Mux

0

1

Mux

0

Instruction [15–11]

ALU

MemRead

RegDst

Instruction [5–0]

16 32Instruction [15–0]

0Writedata

Signextend

Datamemory

1

ALUcontrol

ALUOp

Instruction [5–0]

31Diseño del procesador

Page 32: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

32Diseño del procesador

Page 33: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

DiseñoDiseño de la de la UC de la ALU: UC de la ALU: visión visión completacompleta

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

Add ALUresult

Mux

0

1

Add

MemtoRegALUOpMemWrite

MemReadBranchRegDst

Instruction [31 26]

4

Control

PCSrcShiftleft 2

PC Readaddress

Instruction [20 16]

Instruction [25 21]

MemWrite

RegWriteALUSrc

Readdata1

Readregister1

Readregister 2 Zero

Instructionmemory

Instruction[31–0]

0

0Mux

0

1

RegistersWriteregister

Writedata

Readdata2

register 2

Mux1

ALUresult

Zero

DatamemoryWrite

data

Readdata M

ux

1

Instruction [15 11]

ALUAddress

Instruction[5 0]

16 32Instruction [15 0] Signextend ALU

control

33Diseño del procesador

Page 34: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

OperationBinvert OperationBinvert

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

a

A L U o p e r a t io n

a

A L U o p e r a t io n

0

Operation

a

CarryInBinvert

0

Operation

a

CarryInBinvert

A L U R e s u ltZ e r o

O v e r f lo w

b

A L U R e s u ltZ e r o

O v e r f lo w

b

Result

1

0

1

b 2

Result

1

0

1

b 2

Entradas de control FUNCIÓN

C a r ry O u tC a r r y O u t

3

CarryOut

Less

a.

3

CarryOut

Less

a.

(ALUctr) FUNCIÓN000 AND001 OR010 ADD110 SUB111 SLT

34Diseño del procesador

Page 35: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño de la UC de la ALU Diseño de la UC de la ALU –– Especificación del control ALUEspecificació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

35Diseño del procesador

Page 36: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño de la UC Diseño de la UC de la ALU: Tabla de verdadde 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 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 0 1 0 1 0 0 11 x x x 1 0 1 0 1 1 1

061116212631I t ió Ti R op rs rt rd shamt funct

6 bits 6 bits5 bits5 bits5 bits5 bits

Instrucción Tipo R:

MainControl

op6

ALUControl(Local)

func6

ALUop

ALUctr3

funct<3:0> Instruction Op.00000010

addsubtract(Local)N A

LU

010001011010

andorset-on-less-than

36Diseño del procesador

Page 37: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño de la UC de la ALU Diseño de la UC de la ALU -- ImplementaciónImplementació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 11 x x x 1 0 1 0 1 1 1

ALUOp

ALU control block

ALUOp

ALU control block

Operation2

ALUOp1

F3

ALUOp0

Operation2

ALUOp1

F3

ALUOp0

Operation1

Operation0

Operation

F3

F2

F1

F0

F (5– 0)Operation1

Operation0

Operation

F3

F2

F1

F0

F (5– 0)

F0F0

37Diseño del procesador

Page 38: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

38Diseño del procesador

Page 39: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Tipo R: op rs rt rd shamt funct Bits: 31-26 25-21 20-16 15-11 10-6 5-0 Ti I t I di t 16 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

Add

4 1

Mux

0

PCSrc

Add ALUresult

Add

4 1

Mux

0

PCSrc

Add ALUresult

Add

4

Add

4 1

Mux1

Mux

0

PCSrc

Add ALUresult

MemtoRegMemWrite

ALUSrcPC Read

addressInstruction

[31 0]

Instruction [20–16]

Instruction [25–21]

RegWrite

Wit

Readdata1

Read

Readregister1Readregister2

ALUZero

R d00

Shiftleft 2

ALU

result

MemtoRegMemWrite

ALUSrcPC Read

addressInstruction

[31 0]

Instruction [20–16]

Instruction [25–21]

RegWrite

Wit

Readdata1

Read

Readregister1Readregister2

ALUZero

R d00

Shiftleft 2

ALU

result

MemtoRegMemWrite

ALUSrcPC Read

addressInstruction

[31 0]

Instruction [20–16]

Instruction [25–21]

RegWrite

MemtoRegMemWrite

ALUSrcPC Read

addressInstruction

[31 0]

Instruction [20–16]

Instruction [25–21]

RegWrite

Wit

Readdata1

Read

Readregister1Readregister2

ALUZero

R dWit

Readdata1

Read

Readregister1Readregister2

ALUZero

R d00

Shiftleft 2

ALU

result

MemRead

RegDst

Instructionmemory

[31–0]

16 32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

data2

Signextend

ALUresult

Datamemory

Address Readdata Mu

x

1

1

Mux

0

1

Mux

0

Instruction [15–11]

ALUcontrol

ALU

MemRead

RegDst

Instructionmemory

[31–0]

16 32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

data2

Signextend

ALUresult

Datamemory

Address Readdata Mu

x

1

1

Mux

0

1

Mux

0

Instruction [15–11]

ALUcontrol

ALU

MemRead

RegDst

Instructionmemory

[31–0]

16

MemRead

RegDst

Instructionmemory

[31–0]

16 32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

data2

Signextend

ALUresult

Datamemory

Address Readdata Mu

x

1

32Instruction [15–0]

0Registers

WriteregisterWritedata

Writedata

data2

Signextend

ALUresult

Datamemory

Address Readdata Mu

x

1

1

Mux

0

1

Mux

0

Instruction [15–11]

ALUcontrol

ALU

ALUOp

Instruction [5–0]

control

ALUOp

Instruction [5–0]

control

ALUOp

Instruction [5–0]

ALUOp

Instruction [5–0]

control

39Diseño del procesador

Page 40: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño de la UC Diseño de la UC –– Funcionalidad de las señales de controlFuncionalidad 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"g "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"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

PCSrcPCSrcPCSrc

MemWritePC ReadInstruction[25–21]

Add

RegWrite4

ReadReadregister1

1

Mux

0

Shiftleft2

Add ALUresult

MemWritePC ReadInstruction[25–21]

Add

RegWrite4

ReadReadregister1

1

Mux

0

Shiftleft2

Add ALUresult

MemWritePC ReadInstruction[25–21]

Add

RegWrite4

MemWritePC ReadInstruction[25–21]

Add

RegWrite4

ReadReadregister1

1

Mux

ReadReadregister1

1

Mux

0

Shiftleft2

Add ALUresult

MemtoReg

MemRead

MemWriteALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

16 32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

register1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

1

Mux

0

1

Mux

0

Instruction[15–11]

ALU

ALUMemtoReg

MemRead

MemWriteALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

16 32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

register1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

1

Mux

0

1

Mux

0

Instruction[15–11]

ALU

ALUMemtoReg

MemRead

MemWriteALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

16

MemtoReg

MemRead

MemWriteALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31–0]

Instruction[20–16]

16 32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

register1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

32Instruction[15–0]0

Registers

WriteregisterWritedata

Writedata

Readdata1Read

data2

register1Readregister2

Signextend

ALUresultZero

Datamemory

Address Readdata Mux

1

1

Mux

0

1

Mux

0

Instruction[15–11]

ALU

ALU

MemRead

ALUOp

Instruction[5–0]

ALUcontrol MemRead

ALUOp

Instruction[5–0]

ALUcontrol MemRead

ALUOp

Instruction[5–0]

MemRead

ALUOp

Instruction[5–0]

ALUcontrol

40Diseño del procesador

Page 41: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Funcionamiento Funcionamiento instrucción tipo instrucción tipo R (R (addadd, sub, and, , sub, and, oror, , sltslt))

add $t1,$t2,$t30

Add

RegDst

Add ALUresult

Mux

0

1

Shiftleft 2

MemtoRegALUOpMemWrite

MemReadBranchRegDst

ALUSrc

Instruction [31–26]

4

Control

PC Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

RegWrite

0M0 Registers

Write

Readdata1

Readd t 2

Readregister 1

Readregister 2

ALUlt

Zero

Read 1ALU

AddInstruction

memory

[ ]

16 32Instruction [15–0]

0

0Mux1

Writeregister

Writedata

data2

Sign

Mux

1

result

Datamemory

Writedata

Readdata M

ux

1

Instruction [15–11]

Address

Instruction [5–0]

gextend ALU

control

41Diseño del procesador

Page 42: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Funcionamiento Funcionamiento instrucción instrucción lwlw

lw $t1, desplazamiento ($t2)0

Add

RegDst4

Shiftleft 2

Add ALUresult

Mux

1

MemtoRegALUOpMemWrite

MemReadBranch

ALUSrc

Instruction [31–26]

4

Control

PC Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

RegWrite

0M0 Registers

Write

Readdata1

Readd t 2

Readregister 1

Readregister 2

ALUZero

ReadALU

AddInstruction

memory

[ ]

Instruction [15–11]

16 32Instruction [15–0]

0

0Mux1

Writeregister

Writedata

data2

Sign

Mux1

result

Datamemory

Writedata

Readdata

Mux

1Address

Instruction [5–0]

Instruction [15 0]ALU

control

Signextend

42Diseño del procesador

Page 43: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Funcionamiento instrucción Funcionamiento instrucción swsw

sw $t1, desplazamiento($t2)0

Add

RegDst4

Shiftleft 2

Add ALUresult

Mux

1

MemtoRegALUOpMemWrite

MemReadBranch

ALUSrc

Instruction [31–26]

4

Control

P

C Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

RegWrite

0M0 Registers

Write

Readdata 1

Readd t 2

Readregister 1

Readregister 2

ALUZero

ReadALU

AddInstruction

memory

[ ]

Instruction [15–11]

16 32Instruction [15–0]

0

0Mux1

Writeregister

Writedata

data 2

Sign

Mux1

result

Datamemory

Writedata

Readdata

Mux

1Address

Instruction [5–0]

Instruction [15 0]ALU

control

Signextend

43Diseño del procesador

Page 44: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Funcionamiento Funcionamiento instrucción instrucción branchbranch

beq $t1, $t2, desplazamiento0

Add

RegDst4

Shiftleft 2

Add ALUresult

Mux

1

MemtoRegALUOpMemWrite

MemReadBranch

ALUSrc

Instruction [31–26]

4

Control

PC Readaddress

Instruction[31–0]

Instruction [20–16]

Instruction [25–21]

RegWrite

0M0 Registers

Write

Readdata 1

Readregister 1

Readregister 2

ALUZero

ReadReadd t 2

ALUAdd

Instructionmemory

[ ]

Instruction [15–11]

16 32Instruction [15–0]

0Mux1

Writeregister

Writedata

Sign

1

result

Datamemory

Writedata

ReaddataM

ux

data 2Mux

1

0

Address

Instruction [5–0]

Instruction [15 0]ALU

control

Signextend

44Diseño del procesador

Page 45: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

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

Op4Op5

InputsImplementación con PLA

Op4Op5

Inputs

Op4Op5

Inputs

Op4Op5

InputsImplementación con PLA

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 0

Op0Op1Op2Op3Op4

Op0Op1Op2Op3Op4

Op0Op1Op2Op3Op4

Op0Op1Op2Op3Op4

ALUSrc 0 1 1 0MemToReg 0 1 x xRegWrite 1 1 0 0MemRead 0 1 0 0MemWrite 0 0 1 0

R-format Iw sw beq

Outputs

RegDstR-format Iw sw beq

Outputs

RegDstR-format Iw sw beq

Outputs

RegDstR-format Iw sw beq

Outputs

RegDstMemWrite 0 0 0Branch 0 0 0 1ALUOp1 1 0 0 0ALUOp0 0 0 0 1

ALUSrc

MemtoReg

RegWrite

MemRead

ALUSrc

MemtoReg

RegWrite

MemRead

ALUALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUOp1

ALUOpO

MemWrite

Branch

ALUOp1

ALUOpO

MemWrite

Branch

ALUOp1

ALUOpO

45Diseño del procesador

Page 46: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

46Diseño del procesador

Page 47: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Rendimiento de la implementación monociclo Rendimiento de la implementación monociclo -- EjemploEjemplo

Suponiendo que los tiempos de operación (latencia) de las unidades funcionales son:

Unidad de memoria: 2 nsUnidad de memoria: 2 nsALU y sumadores: 2 nsRegistros (lectura o escritura): 1 nsResto de los componentes (multiplexores, acceso al PC, etc. ): 0 ns

¿Cuál de las siguientes implementaciones será más rápida?¿Cuá de as s gu e tes p e e tac o es se á ás áp da?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 . U p e e c ó do de c d s ucc ó se ejecu e u c c o de e ojpero 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).

47Diseño del procesador

Page 48: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

SoluciónSolució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 memoriaStore búsqueda acceso a registro ALU acceso a memoriaBranch búsqueda acceso a registro ALUjump búsqueda

Tiempo de ciclo necesario para cada instrucciónTiempo de ciclo necesario para cada instrucciónInstrucció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%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 nsTiempo de ciclo medio (44%x6 24%x8 12% x7 18%x5 2%x2 ) 6.3 ns

TCPINTCPIN

TT

ientonienton CicloFijoCicloFijoelojVariabl 27.1

368

****

dimRedimRe Re ====

complejamásninstruccióla ejecutar para necesario tiempo ns, 8 de será fijoreloj de ciclo de tiempo El (*)

TCPINTienton bleCicloVariableCicloVarialojFijo 3.6dimRe Re

complejamásninst ucciólaejecutapa a

48Diseño del procesador

Page 49: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ventajas y desventajasVentajas y desventajas

V: Todas las instrucciones tardan un ciclo en ejecutarse

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

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

ClkCycle 1 Cycle 2

ClkCycle 1 Cycle 2

lw sw Wastelw sw Waste

49Diseño del procesador

Page 50: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

50Diseño del procesador

Page 51: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño Diseño multiciclomulticiclo

División del ciclo de instrucción en varias etapas o pasosCada etapa se ejecuta en un ciclo de relojp j jLas etapas presentan cargas de trabajo equilibradasCPI (ciclos por instrucción) variables: instrucciones lentas y rápidas

Reutilización de las unidades funcionalesUna unidad puede utilizarse más de una vez por instrucción siempre que se haga en ciclos de reloj distintos.se haga en ciclos de reloj distintos.▫ Memoria unificada, pero un único acceso por ciclo▫ Una única ALU, pero una única operación ALU por ciclo

51Diseño del procesador

Page 52: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

52Diseño del procesador

Page 53: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Implementación Implementación multiciclomulticiclo: componentes : componentes básicosbásicos

Instruction

PC

Memory

Address

Instructionor data

register

RegistersRegister #

Data

Register #ALU

A

ALUOut

Data

Register #

Register #

Memorydata

registerB

Una sola memoria para datos e instruccionesU l ALU d 1 ALU 2 dUna sola ALU en vez de 1 ALU y 2 sumadoresUso de registros temporales a la salida de las unidades funcionales principales. Dos tipos de registros:p p p g

Tipo A: Actualizan su contenido en cada instrucción (IR)Tipo B: Actualizan su contenido en cada ciclo de reloj (MDR, A B ALUO t)A,B,ALUOut)

53Diseño del procesador

Page 54: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ruta de Ruta de datos datos multiciclomulticicloIorD MemRead MemWrite

PCM0

Read

RegDst RegWrite

Instruction M0

ALUSrcAIRWrite

Memory

MemData

Writedata

Mux1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

register 1

Readregister 2

Instruction[15– 11]

Mux

0

14

[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

1 Mu

0

2

Mux1

ALUresult

ALUZeroA

B

ALUOut

Address

Shiftleft 2

data

Mux

0

1

Instruction[15–0]

Signextend

3216

registerx

32

ALUcontrol

Memorydata

register

Instruction [5– 0]

extend

Compartición de unidades funcionales (reducción del hardware) → uso de multiplexores

MemtoReg ALUOpALUSrcB

de multiplexoresEjecución en múltiples ciclos → cada ciclo requiere un conjunto determinado de señales de controlSeñales de control

54Diseño del procesador

Page 55: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Etapas de ejecución de las instruccionesEtapas de ejecución de las instrucciones

¿Qué operaciones realizamos en cada ciclo de reloj?Objetivo: equilibrar la carga computacional de cada etapa → Minimización d l ti d i ldel tiempo de cicloEn cada etapa se va a realizar alguna de las siguientes operaciones:▫ Un acceso a registro

▪ Actualización en cada ciclo (Registros temporales: MDR, A, B, ALUOut)▪ Actualización según una señal de escritura (PC, IR)

▫ Un acceso a memoria▫ Una operación de ALU▫ ¿Cómo se determina el tiempo de ciclo mínimo?

Todas las operaciones de un ciclo se ejecutan en paralelop j pEtapas o pasos de la instrucción se ejecutan en serie

55Diseño del procesador

Page 56: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Camino de datos Camino de datos multiciclomulticiclo con con las señales de controllas señales de control

IorD

MemRead

PCWriteCond

PCWrite ALUOp

ALUSrcB

PCSource

Outputs

MemRead

MemWrite

MemtoReg

IRWrite

ALUSrcA

RegDst

RegWrite

Control

Op[5– 0]

Mux

0

Jumpaddress [31-0]Instruction [25–0] 26 28

Shift

1

PCMux

0

1Read

data 1

Readregister 1

Readregister 2

Instruction[25– 21]

Instruction[20– 16]

ALUALUZeroA

Instruction[31-26]

2[ ] Shift

left 2

PC [31-28]

Mux

0

1ALUO

Memory

Address

RegistersWriteregister

Writedata

Readdata 2Instruction

[15– 11]

Mux

0

1

Mu

0

4

Instruction[15– 0]

Instruction[15–0]

Instructionregister

ALUresult

ALU

B

1 Mux

0

32

ALUOutMemData

Writedata

Shiftleft 2

ux1

Signextend

3216 ALUcontrol

Memorydata

register

Instruction [5– 0]Instruction [5 0]

56Diseño del procesador

Page 57: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Etapas de ejecución de las instrucciones (I)Etapas de ejecución de las instrucciones (I)

Etapa 1: Búsqueda del código de operación (fetch)IR = Memory[PC]PC PC 4PC = PC + 4

Etapa 2: Decodificación y acceso a operandosA = Reg[rs]B = Reg[rt]ALUout = PC + extensión-signo(IR[15-0]) << 2

Etapa 3: Ejecución, cálculo de dirección o terminación del saltop j ,Instrucción tipo R (and, or, add, sub,slt)ALUOut = A op B

Referencia a memoria (lw/sw)Referencia a memoria (lw/sw)ALUOut = A + extensión-signo(IR[15-0])

Salto (beq)if (A == B) PC = ALUOut

Bifurcación (j)PC = PC[31-28] || IR[25-0] << 2

57Diseño del procesador

Page 58: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Etapas de ejecución de las instrucciones (II)Etapas de ejecución de las instrucciones (II)

Etapa 4: Acceso a memoria/fin de ejecución instrucción tipo RReferencia a memoria (lw)MDR = Memory[ALUOut]

Referencia a memoria (sw)Memory[ALUOut] = BMemory[ALUOut] B

Fin ejecución instrucción tipo RReg[rd] = ALUOut

Etapa 5: Fin de lectura en memoriaReg[rt] = MDRReg[rt] MDR

58Diseño del procesador

Page 59: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucción de CARGA (LW): Etapa 1 ALUSrcA= 0ALUSrcB = 11ALUOp =00

MemReadALUSrcA= 0

IorD= 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource= 00

Instruction fetchInstruction decode/

Register fetch0

1

Start

T1

(Op

=' JM

P')

Memory reference FSM(Figure 5.38)

R-type FSM(Figure 5.39)

BranchFSM(Figure 5.40)

Jump FSM(Figure5.41)

IorDMemRead

PCWriteCondPCWrite ALUOp

ALUSrcB

PCSource

Outputs

MemRead

MemWrite

MemtoReg

IRWrite

ALUSrcA

RegDst

RegWriteControl

Op[5–0]

Mux

0

Jumpaddress [31-0]Instruction[25–0] 26 28

Shift1

PCMux

0

1Read

data1

Readregister 1

Readregister 2

Instruction[25–21]

Instruction[20–16] ALU

ZeroA

Instruction[31-26]

2address [31 0]Instruction[25 0] Shift

left 2

PC [31-28]

Mux

0

1Memory

Address

RegistersWriteregister

Writedata

Readdata2

g

Instruction[15–11]

Mux

0

1

Mu

0

4

Instruction[15–0]

[ ]

Instruction[15–0]

Instructionregister

ALUresult

ALU

B

1 Mux

0

32

ALUOutMemData

Writedata

Shiftleft 2

ux1

Signextend

3216 ALUcontrol

Memorydata

register

Instruction[5–0]Instruction[5–0]

59Diseño del procesador

Page 60: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucción de CARGA (LW): Etapa 2 ALUSrcA= 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA= 0

IorD= 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource= 00

Instruction fetchInstruction decode/

Register fetch0

1

Start

T2

(Op

=' JM

P')

Memory reference FSM(Figure 5.38)

R-type FSM(Figure 5.39)

BranchFSM(Figure 5.40)

Jump FSM(Figure 5.41)

IorDMemRead

PCWriteCondPCWrite ALUOp

ALUSrcB

ALUSrcA

PCSource

Outputs

MemWrite

MemtoReg

IRWrite

ALUSrcA

RegDst

RegWriteControl

Op[5–0]

Mux

0

2

Jumpaddress [31-0]Instruction[25–0] 26 28

Shiftf 2

1

PCMux

0

1Registers

Readdata1

Readregister 1

Readregister 2

0

Instruction[25–21]

Instruction[20–16]

ALUALUZeroA

Instruction[31-26]

2left 2

PC [31-28]

Mux

0

1ALUOut

MemoryMemData

Address

RegistersWriteregister

Writedata

Readdata2Instruction

[15–11]

Mux

0

1

Mux

0

4

Instruction[15–0]

Instruction[15–0]

Instructionregister

ALUresultB

1 Mux

0

32

ALUOutMemData

Writedata

Shiftleft 2

x1

Signextend

3216 ALUcontrol

Memorydata

register

Instruction[5–0]

60Diseño del procesador

Page 61: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucción de CARGA (LW): Etapa 3

T3

IorDMemRead

PCWriteCondPCWrite ALUOp

ALUSrcB

ALUSrcA

PCSource

Outputs

MemWrite

MemtoReg

IRWrite

ALUSrcA

RegDst

RegWriteControl

Op[5–0]

Mux

0

2

Jumpaddress [31-0]Instruction[25–0] 26 28

Shiftl ft 2

1

PCMux

0

1Registers

Readdata1

Readregister 1

Readregister 2

0

Instruction[25–21]

Instruction[20–16]

ALUALUZeroA

Instruction[31-26]

2left 2

PC [31-28]

Mux

0

1ALUOut

MemoryMemData

Address

ALUSrcA= 1

Memory address computation

(Op = 'LW') or (Op = 'SW')

2

Fromstate 1

RegistersWriteregister

Writedata

Readdata2Instruction

[15–11]

Mux

0

1

Mux

0

4

Instruction[15–0]

Instruction[15–0]

Instructionregister

ALUresultB

1 Mux

0

32

ALUOutMemData

Writedata

ALUSrcA= 1ALUSrcB= 10ALUOp= 00

Memoryaccess

(Op

='L

W' )

Memoryaccess

Shiftleft 2

x1

Signextend

3216 ALUcontrol

Memorydata

register

Instruction[5–0]

MemWriteIorD= 1

MemReadIorD =1

Write-backstep

53

RegWriteMemtoReg = 1

RegDst = 0

Write backstep4

To state 0(Figure 5.37)

61Diseño del procesador

Page 62: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucción de CARGA (LW): Etapa 4

T4

IorDMemRead

PCWriteCondPCWrite ALUOp

ALUSrcB

PCSource

Outputs

MemWrite

MemtoReg

IRWrite

ALUSrcA

RegDst

RegWriteControl

Op[5–0]

Mux

0

Jumpaddress [31-0]Instruction[25–0] 26 28

Shift1

PCMux

0

1Read

data1

Readregister 1

Readregister 2

0

Instruction[25–21]

Instruction[20–16]

ALUALUZeroA

Instruction[31-26]

2[ ] Shift

left 2

PC [31-28]

Mux

0

1ALUO t

MemoryM D t

Address

ALUSrcA= 1

Memory address computation

(Op = 'LW') or (Op = 'SW')

2

Fromstate 1

RegistersWriteregister

Writedata

Readdata2Instruction

[15–11]

Mux

0

1

Mu

0

4

Instruction[15–0]

Instruction[15–0]

Instructionregister

ALUresult

ALU

B

1 Mux

0

32

ALUOutMemData

Writedata

ALUSrcA= 1ALUSrcB= 10ALUOp= 00

Memoryaccess

(Op

='L

W' )

Memoryaccess

Shiftleft 2

x1

Signextend

3216 ALUcontrol

Memorydata

register

Instruction [5–0]

MemWriteIorD= 1

MemReadIorD =1

Write-backstep

53

[ ]

RegWriteMemtoReg = 1

RegDst = 0

Write backstep4

To state 0(Figure 5.37)

62Diseño del procesador

Page 63: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucción de CARGA (LW): Etapa 5

T5

IorDMemRead

MemWrite

PCWriteCondPCWrite ALUOp

ALUSrcB

ALUSrcA

PCSource

RegWriteControl

Outputs

MemtoReg

IRWrite RegDst

RegWrite

Op[5–0]

Instruction

Mux

0

2

Jumpaddress [31-0]Instruction[25–0] 26 28

Shiftleft 2

1

PCMux

0

1Registers

Writeregister

Readdata1

Readd t 2

Readregister 1

Readregister 2

I t tiMu

0

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

ALUresult

ALUZeroA

B

[31-26] PC [31-28]

0

Mux

0

1ALUOut

MemoryMemData

Address

ALUSrcA= 1

Memory address computation

(Op = 'LW') or (Op = 'SW')

2

Fromstate 1

register

Writedata

data2Instruction[15–11]

ux1

Mux

0

1

4

Instruction[15–0]

[15–0]Instruction

register

Memory

1 Mux

0

32

Writedata

ALUSrcA= 1ALUSrcB= 10ALUOp= 00

Memoryaccess

(Op

='L

W' )

Memoryaccess

Shiftleft 2

Signextend

3216 ALUcontrol

ydata

register

Instruction[5–0]

MemWriteIorD= 1

MemReadIorD =1

Write-backstep

53

RegWriteMemtoReg = 1

RegDst = 0

Write backstep4

To state 0(Figure 5.37)

63Diseño del procesador

Page 64: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

64Diseño del procesador

Page 65: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño Diseño multiciclomulticiclo -- Diseño de la unidad controlDiseño de la unidad control

Control cableado (Máquina de estados finitos - FSM)Especificación del control mediante un diagrama de estados finitos (representación gráfica o tabular)Máquina de estados finitos▫ Conjunto de estadosj▫ Función estado siguiente

▪ Si ×Ij Sk

▫ Función salida ▪ Máquinas de Moore: Si Ok▪ Máquinas de Mealy: Si ×Ij Ok

Control microprogramadoControl microprogramadoEspecificación del control mediante un programaNecesaria para simplificar la especificación de una UC compleja

65Diseño del procesador

Page 66: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ruta de Ruta de datos datos multiciclomulticiclo completo con las señales de controlcompleto con las señales de control

IorD

MemRead

PCWriteCond

PCWrite ALUOp

ALUSrcB

ALUSrcA

PCSource

Outputs

MemWrite

MemtoReg

IRWrite

ALUSrcA

RegDst

RegWrite

Control

Op[5– 0]

Mux

0

2

Jumpaddress [31-0]Instruction [25–0] 26 28

Shiftl ft 2

1

PCMux

0

1

Registers

Readdata 1

Readregister 1

Readregister 2

0

Instruction[25– 21]

Instruction[20– 16]

ALUALUZeroA

Instruction[31-26]

2left 2

PC [31-28]

Mux

0

1ALUOut

Memory

MemData

Address

RegistersWriteregister

Writedata

Readdata 2Instruction

[15– 11]

Mux1

Mux

0

4

Instruction[15– 0]

Instruction[15–0]

Instructionregister

resultB

1 Mux

0

32

MemData

Writedata

Shiftleft 2

x1

Signextend

3216 ALUcontrol

Memorydata

register

Instruction [5– 0]

66Diseño del procesador

Page 67: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

67Diseño del procesador

Page 68: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control cableado Control cableado -- FSMFSM

Representación abstractaEtapas 1 y 2 comunes a

Start

p ytodas las instrucciones

Memory access R-type instructions Branch instruction Jump instruction

Instruction fetch/decode and register fetch(Figure 5.37)

Diagrama de estados

instructions(Figure 5.38)

R-type instructions(Figure 5.39)

Branch instruction(Figure 5.40)

Jump instruction(Figure 5.41)

gEtapas 1 y 2

ALUSrcA = 0ALUSrcB = 11

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01

Instruction fetchInstruction decode/

Register fetch0

1

StartALUOp = 00

ALUSrcB 01ALUOp = 00

PCWritePCSource = 00

='J

MP '

)( O

p

Memory reference FSM(Figure 5.38)

R-type FSM(Figure 5.39)

Branch FSM(Figure 5.40)

Jump FSM(Figure 5.41)

68Diseño del procesador

Page 69: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control cableado Control cableado –– FSM completaFSM completa

ALUSrcA = 0ALUSrcB = 11ALUO 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB 01

Instruction fetchInstruction decode/

register fetch0

1

StartALUOp = 00ALUSrcB = 01

ALUOp = 00PCWrite

PCSource = 00

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation (O

p=

'J')

PCWritePCSource = 10

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA =1ALUSrcB = 00ALUOp= 10

ALUSrcA = 1ALUSrcB = 10ALUOp = 00

p9862

RegDst = 1

Memoryaccess

Memoryaccess R-type completion(O

p=

'LW

')

753

gRegWrite

MemtoReg = 0MemWriteIorD = 1

MemReadIorD = 1

Write-back step4

RegDst=0RegWrite

MemtoReg=1

4

69Diseño del procesador

Page 70: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control cableado Control cableado –– Especificación de la UC con una FSMEspecificación de la UC con una FSM

Entradas SalidasCódigo Operación Estado Actual Estado

Siguiente Señales de Control para el Camino de Datos

op5 op

4

op3

op2

op1

op0

s3 s2 s1 s0 ns3

ns2

ns1

ns0

pCW

rite

PCW

riteC

ond

IorD

Mem

Rea

d

Mem

Writ

e

IRW

Rite

Mem

ToR

eg

PC

Sou

rce1

PC

Sou

rce0

ALU

Op1

ALU

op0

ALU

SrcB

1

ALU

SrcB

0

ALU

SrcA

Reg

writ

e

Reg

Dst

o

0 x x x x x x 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0

1 lw 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

1 sw 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 01 R 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

1 beq 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

1 j 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

2 lw 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 02 sw 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 03 x x x x x x 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 04 x x x x x x 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 05 x x x x x x 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 06 x x x x x x 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 07 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 17 x x x x x x 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 18 x x x x x x 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 09 x x x x x x 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

70Diseño del procesador

Page 71: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control cableado Control cableado -- Implementación de la FSMImplementación de la FSM

Unidad de control = Lógica de control + Registro de EstadoReg. Estado: Se escribe en cada flanco de reloj y es estable durante el ciclo

PCWrite

PCWriteCondIorDMemRead

MemtoRegPCSourceALUOp

IRWriteMemWrite

Control logic

ALUSrcBALUSrcARegWriteRegDst

NS3

Outputs

Estado Siguiente

NS3NS2NS1NS0

p5 p4 p3 p2 p1 p0 3 2 0

Inputs

Op

Op

Op

Op

Op

Op

S3 S2 S1 S 0State registerInstruction register

opcode field Estado Actual

71Diseño del procesador

Page 72: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control cableado Control cableado –– Ecuaciones de Ecuaciones de implementimplement. de la FSM. de la FSM

Señal Control Ecuación lógicaNS3 -> (S3'S2'S1'S0) (OP5'OP4'OP3'OP2OP1'OP0') + (S3'S2'S1'S0) (OP5'OP4'OP3'OP2'OP1OP0') =

Estado 1 (op[5:0] = 'beq') + Estado 1 (op[5:0] = 'jmp')NS2 -> Estado 1 (op[5:0] = 'R-format') + Estado 2 (op[5:0] = 'sw') + Estado 3 + Estado 6NS2 >NS1 -> Estado 1 (op[5:0] = 'lw') + Estado 1 (op[5:0] = 'sw') + Estado 1 (op[5:0] = 'R-format') +

Estado 2 (op[5:0] = 'lw') + Estado 2 (op[5:0] = 'sw') + Estado 6NS0 -> Estado 0 + Estado 1 (op[5:0] = 'jmp') + Estado 2 (op[5:0] = 'lw') + Estado 2 (op[5:0] = 'sw') + Estado 6

PCWrite -> Estado 0 + Estado 9

PCWriteCond -> Estado 8

IorD -> Estado 3 + Estado 5

MemRead -> Estado 0 + Estado 3

MemWrite > Estado 5MemWrite -> Estado 5

IRWrite -> Estado 0

MemToReg -> Estado 4

PCSource1 -> Estado 9

PCSource0 -> Estado 8

ALUOp1 -> Estado 6

ALUOp0 -> Estado 8

ALUSrcB1 -> Estado 1 + Estado 2ALUSrcB1ALUSrcB0 -> Estado 0 + Estado 1

ALUSrcA -> Estado 2 + Estado 6 + Estado 8

RegWrite -> Estado 4 + Estado 7

R D t > Estado 7RegDst -> Estado 7

72Diseño del procesador

Page 73: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control cableado Control cableado -- Implementación de FSM con ROMImplementación de FSM con ROM

Diseño unificado Tamaño: 210 × 20 = 20Kb6 bits código de operación + 4 bits de

PCWrite

PCWriteCondIorD

MemtoRegIRWrite

MemReadMemWrite

Control logic

Tamaño:20 Kbits vs 4.25 Kbits

PCWrite

PCWriteCondIorD

MemtoRegIRWrite

MemReadMemWrite

PCWrite

PCWriteCondIorD

MemtoRegIRWrite

MemReadMemWrite

Control logic

Tamaño:20 Kbits vs 4.25 Kbits

g plos estados = 210 posiciones de memoria16 salidas de control + 4 salidas de nuevo estado = 20 bits de anchura

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

Outputs

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

Outputs

Diseño no unificadoTamaño: 4.25KbROM de señales de salida (T ñ 24 × 16 256b) RegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3 S2 S1 S0

Inputs

RegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3 S2 S1 S0

RegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3 S2 S1 S0

Inputs

(Tamaño = 24 × 16 = 256b)▫ 4 bits de los estados = 24 posiciones

de memoria▫ 16 salidas de control = 16 bits de

anchura O O O O O O S S S S

State registerInstruction registeropcode field

O O O O O O S S S S

State registerInstruction r

O O O O O O S S S S

State registerInstruction registeropcode field

anchuraROM de nuevo estado(Tamaño 210 × 4 = 4Kb)▫ 6 bits código de operación + 4 bits de

los estados = 210 posiciones delos estados = 2 posiciones de memoria

▫ 4 salidas de nuevo estado = 4 bits de anchura

73Diseño del procesador

Page 74: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control cableado Control cableado -- Implementación de FSM con PLAImplementación de FSM con PLA

Op5

Op4

Op3Tamaño de la PLA Op3

Op2

Op1

Op0

Tamaño de la PLA#inputs × #minterms + #outputs × #minterms =

S3

S2

S1

S0

#outputs × #minterms (10 × 17) + (20 × 17) = 510 celdas

S0

IorDMemReadMemWrite

PCWritePCWriteCond

IRWriteMemtoRegPCSource1

ALUOp1

ALUSrcB0ALUSrcB1ALUOp0

PCSource0

ALUSrcB0ALUSrcARegWriteRegDstNS3NS2NS1NS0NS0

74Diseño del procesador

Page 75: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

75Diseño del procesador

Page 76: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño de la UC Diseño de la UC –– Control Control microprogramadomicroprogramado

PCWritePCWriteCond

Control unit PCWritePCWriteCond

Control unit PCWritePCWriteCond

Control unit PCWritePCWriteCond

Control unit

El control se especifica como un programa (microprograma)

PCWriteCondIorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

Datapath

BWrite

PCWriteCondIorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

Datapath

BWrite

PCWriteCondIorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

PCWriteCondIorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

Datapath

BWrite

que está compuesto por instrucciones ( i i t i ) q e están ALUOp

ALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

1

ALUOpALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

1

ALUOpALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

ALUOpALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

1

(microinstrucciones) que están almacenadas en una memoria (memoria de microcódigo)

Microprogram counter

Address select logic

Adder

1

Microprogram counter

Address select logic

Adder

1

Microprogram counter

Address select

Microprogram counter

Address select logic

Adder

1(memoria de microcódigo)

Un registro (contador de i ) i di ál

Op[

5–0]

Instruction registeropcode field

Op[

5–0]

Instruction registeropcode field

Op[

5–0]

Instruction registeropcode field

microprograma) indica cuál es la siguiente microinstrucción a ejecutar opcode field

Secuenciadorexterno

opcode fieldopcode fieldSecuenciador

externoSecuenciador

externo

ejecutar.

76Diseño del procesador

Page 77: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control Control microprogramadomicroprogramado –– Formato de la microinstrucciónFormato de la microinstrucción

Control SRC1 SRC2 Control Memoria Control Secuenciamiento

7 campos: 6 campos de control + 1 campo de secuenciación

ALU SRC1 SRC2 Registro Memoria PCWrite Secuenciamiento

Nombre del campo Función del campo Valores del campoControl ALU Especifica la operación que va a realizar la ALU addControl ALU Especifica la operación que va a realizar la ALU

durante el ciclo. subtFunc code

SRC1 Especifica la fuente para el primer operando dela ALU

PCA

SRC2 Especifica la fuente para el segundo operando Bde la ALU 4

ExtendExtShft

Control Registro Especifica el número de registro y fuente deldato que se escribe en el mismo

ReadWrite ALU (rd <- ALUout)Write MDR (rt <- MDR)Write MDR (rt MDR)

Memoria Especifica lectura o escritura y la fuente de ladirección

Read PC (IR <- M[PC])Read ALU (MDR <- M[ALUout]Write ALU (M[ALUout] <- B)

Control PCWrite Especifica la escritura del PC ALUALUOut-CondJ AddJump Address

Secuenciamiento Especifica la siguiente microinstrucción que seva a ejecutar

SeqFetchDispatch i

77Diseño del procesador

Page 78: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control Control microprogramadomicroprogramado–– Señales asociadas a los campos y valoresSeñales asociadas a los campos y valores

C o n tro l A L UA L U o p 1 A L U O p 0

O p e ra c ió nS R C 2

A LU S rB 1 A LU S rcB 0O peración

S R C 1A d d rS rc A

O p e ra c ió n

0 0 S u m a0 1 R e s ta1 0 F u n c . c o d e

0 0 B0 1 41 0 E xtend1 1 E xtS hft

0 P C1 A

R e g is te r C o n tro lR e g W rite R e g D s t M e m T o R e g

O p e r.

1 1 0 W rite A L U

M e m o riaIR W rite M e m R e a d M em W rite Io rD

O p er.

1 1 0 0 R d P C

R e g is te r C o n tro lR e g W rite R e g D s t M e m T o R e g

O p e r.

1 1 0 W rite A L U

M e m o riaIR W rite M e m R e a d M em W rite Io rD

O p er.

1 1 0 0 R d P C1 1 0 W rite A L U1 0 1 W rite M D R

1 1 0 0 R e a d P C0 1 0 1 R e a d A LU0 0 1 1 W rite A L U

1 1 0 W rite A L U1 0 1 W rite M D R

1 1 0 0 R e a d P C0 1 0 1 R e a d A LU0 0 1 1 W rite A L U

Control PCWritePCSrc1 PcSrc0 PCwrite PCWrtCond

Oper.

0 0 1 0 ALU0 1 0 1 ALUOut-Cond

S ecA ddrC tl1 A ddrC tl0

O peración

1 1 S eq.0 0 Fetch

Control PCWritePCSrc1 PcSrc0 PCwrite PCWrtCond

Oper.

0 0 1 0 ALU0 1 0 1 ALUOut-Cond

S ecA ddrC tl1 A ddrC tl0

O peración

1 1 S eq.0 0 Fetch

0 1 0 1 ALUOut Cond1 0 1 0 Jump address

0 1 D ispatch11 0 D ispatch2

0 1 0 1 ALUOut Cond1 0 1 0 Jump address

0 1 D ispatch11 0 D ispatch2

78Diseño del procesador

Page 79: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control Control microprogramadomicroprogramado –– Microprograma de la UCMicroprograma de la UC

Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.

1 0 eg d e e1 e0 Con

d

Alu

op1

Alu

op0

Alu

Src

A

ALU

SrcB

1

ALU

SrcB

0

Reg

Writ

e

Reg

Dst

Mem

ToR

e

IRW

rite

Mem

Rea

d

IorD

Mem

Writ

e

PC

Sou

rce

PC

Sou

rce

PC

Writ

e

PC

Writ

eC

Add

rCtl1

Add

rCtl0

18 señales de control ->

Estado Etiqueta ControlALU

SRC1 SRC2 ControlRegistros

Memoria ControlPCWrite

Secuenc.

0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 11 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func

CodA B Seq

7 Write ALU Fetch8 BEQ1 Subt A B ALUOut- Fetch

cond9 JUMP1 Jump

AddressFetch

79Diseño del procesador

Page 80: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Diseño de la UC Diseño de la UC –– Control Control microprogramadomicroprogramado

PCWritePCWriteCond

Control unit PCWritePCWriteCond

Control unit PCWritePCWriteCond

Control unit PCWritePCWriteCond

Control unit

El estado siguiente es frecuentemente el estado PCWriteCond

IorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

Datapath

BWrite

PCWriteCondIorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

Datapath

BWrite

PCWriteCondIorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

PCWriteCondIorD

MemtoRegPCSource

Outputs

Microcode memory

IRWrite

MemReadMemWrite

Datapath

BWrite

frecuentemente el estado actual + 1

ALUOpALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

1

ALUOpALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

1

ALUOpALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

ALUOpALUSrcBALUSrcARegWrite

AddrCtlRegDst

Input

1

Las señales de control están almacenadas en una memoria

Microprogram counter

Address select logic

Adder

1

Microprogram counter

Address select logic

Adder

1

Microprogram counter

Address select

Microprogram counter

Address select logic

Adder

1memoria

Op[

5–0]

Instruction registeropcode field

Op[

5–0]

Instruction registeropcode field

Op[

5–0]

Instruction registeropcode fieldopcode field

Secuenciadorexterno

opcode fieldopcode fieldSecuenciador

externoSecuenciador

externo

80Diseño del procesador

Page 81: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Control Control microprogramadomicroprogramado ––Secuenciador del Secuenciador del microprogramamicroprograma

La lógica de selección de direcciones genera la dirección de la siguiente microinstrucción a ejecutarg j

S ecA ddrC tl1 A ddrC tl0

O perac ión

1 1 S eq

S ecA ddrC tl1 A ddrC tl0

O perac ión

1 1 S eq

State

Adder

1

PLA or ROM

1 1 S eq.0 0 Fe tch0 1 D ispa tch11 0 D ispa tch2

State

Adder

1

PLA or ROM

State

Adder

1

PLA or ROM

1 1 S eq.0 0 Fe tch0 1 D ispa tch11 0 D ispa tch2

Mux3 2 1 0

Dispatch ROM 1Dispatch ROM 2

0

AddrCtlMux3 2 1 0

Dispatch ROM 1Dispatch ROM 2

0

AddrCtlMux3 2 1 0

Dispatch ROM 1Dispatch ROM 2

0

AddrCtl

Op

Address select logic

Instruction registeropcode field

Dispatch ROM1Op [5:0] Nombre Valor

000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)

Dispatch ROM2Op [5:0] Nombre Valor

100011 lw LW2 (3)101011 sw SW2 (5)

Op

Address select logic

Instruction registeropcode field

Op

Address select logic

Instruction registeropcode field

Dispatch ROM1Op [5:0] Nombre Valor

000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)

Dispatch ROM2Op [5:0] Nombre Valor

100011 lw LW2 (3)101011 sw SW2 (5) 000100 beq BEQ1 (8)

100011 lw MEM1 (2)101011 sw MEM1 (2)

( ) 000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)

( )

81Diseño del procesador

Page 82: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

82Diseño del procesador

Page 83: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Excepciones e interrupcionesExcepciones e interrupcionesDefiniciones

Eventos inesperados que cambian el flujo normal de ejecución de las instruccionesinstruccionesExcepción▫ Evento que tiene su origen en el interior del procesador (desbordamiento

aritmético instrucción ilegal etc )aritmético, instrucción ilegal, etc.)Interrupción▫ Evento que tiene su origen en el exterior del procesador (dispositivos de

entrada/salida fallo de página etc )entrada/salida, fallo de página, etc.)

Tipo de evento ¿Desde dónde? Terminología MIPSPetición dipositivo E/S Exterior InterrupciónPetición dipositivo E/S Exterior InterrupciónInvocar Sistema Operativo desdeel programa de usuario

Interior Excepción

Desbordamiento aritmético Interior ExcepciónInstrucción ilegal o no definida Interior ExcepciónFallo hardware Cualquiera Excepción/interrupción

83Diseño del procesador

Page 84: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Tratamiento de excepciones en MIPSTratamiento de excepciones en MIPSLas acciones básicas a realizar son:

Guardar la dirección de la instrucción causante en el registro Contador de Programa de Excepciones (EPC)Registrar la causa de la excepción en el Registro CauseTransferir el control al Sistema Operativo en alguna dirección especificadaTransferir el control al Sistema Operativo en alguna dirección especificada (0xC00000000) donde se tratará la excepción (ejecución de una rutina de servicio)

ProgramaInterrupción

Rutina de serviciode la interrupción

Programa

de la interrupciónSalto a rutina de servicio

Retorno de la rutina de servicio

84Diseño del procesador

Page 85: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Implementación de excepciones en MIPSImplementación de excepciones en MIPS

Excepciones a implementarDesbordamiento aritmético Instrucción ilegal o no definida

Registros adicionales requeridosEPC R i t d 32 bit d l di ió d l i t ióEPC: Registro de 32 bits para guardar la dirección de la instrucción causante de la excepciónCAUSE: Registro de 32 bits para registrar la causa de la excepción. U ili ól l bi i ifi iUtilizaremos sólo el bit menos significativo▫ bit 0 = 0 → Instrucción ilegal▫ bit 0 = 1 → Desbordamiento aritmético

Señales de control adicionalesIntcause (0: instrucción ilegal - 1: desbordamiento)C W it (1 it l i t CAUSE 0 ib )CauseWrite (1: escritura en el registro CAUSE - 0: no escribe)EPCWrite (1: escritura en el registro EPC - 0: no escribe)Constante: C000 0000 0000 0000 (dirección a donde se transfiere el control cada vez que se interrumpe)

85Diseño del procesador

Page 86: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Especificación de la UC con soporte de excepcionesEspecificación de la UC con soporte de excepciones

ALUSrcA = 0

MemReadALUSrcA = 0

IorD = 0IRWrite

Instruction fetchInstruction decode/

Register fetch01

ALUSrcB = 11ALUOp = 00

IRWriteALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

JumpBranchMemory address Op

='J '

)

Start

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA = 1ALUSrcB = 00ALUOp = 10

ALUSrcA = 1ALUSrcB = 00ALUOp = 00

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation (O

9862

PCWritePCSource = 10

Memoryaccess

Memoryaccess R-type completion(O

p=

'LW

')

7 11 1053IntCause = 0CauseWrite

IntCause = 1CauseWrite

RegDst = 1RegWrite

MemtoReg = 0MemWriteIorD = 1

MemReadIorD = 1

Write back step

OverflowALUSrcA = 0

ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

ALUSrcA = 0ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

RegWriteMemtoReg = 1RegDst = 0

Write-back step4 Overflow

86Diseño del procesador

Page 87: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Ruta de Ruta de datos datos con con soporte de excepcionessoporte de excepciones

IorD

MemRead

PCWriteCond

PCWriteOutputs

ALUOpPCSourceEPCWriteIntCauseCauseWrite

MemWrite

MemtoReg

IRWrite

Control

Op[5–0]

Mux

0

2

Jumpaddress [31-0]Instruction [25–0] 26 28

Shiftleft 2

1

ALUSrcBALUSrcA

RegDstRegWrite

Memory

MemData

Mux

0

1

Instruction[25–21]

Instruction[20–16]

Instruction[15 0]

ALUresult

ALUZeroA

B

Instruction[31-26]

left 2

PC [31-28]

Address

EPC

CO0000 00 3

Mux

0

1

M0

PC

RegistersWrite

i t

Readdata 1

Read

Readregister 1

Readregister 2

ALUOut

Writedata

Instruction[15–11]

Mux

0

1

4

Instruction[15–0]

3216

[15–0]Instruction

register

ALUMemory

data

B

Cause

1

0

1 Mux

0

32

ux

1

Mux

0

1

register

Writedata

data 2

11

ALUSrcA = 0�ALUSrcB = 01�ALUOp = 01�

EPCWrite�PCWrite�

IntCause = 1�CauseWrite

Shiftleft 2

Signextend

3216 ALUcontrol

dataregister

Instruction [5–0]

10

To state 0 to begin next instruction�

ALUSrcA = 0�ALUSrcB = 01�ALUOp = 01�

EPCWrite�

IntCause = 0�CauseWrite

PCWrite�PCSource = 11�PCSource = 11

�PC++Source = 11

PCWrite��

87Diseño del procesador

Page 88: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Instrucciones para excepciones en MIPSInstrucciones para excepciones en MIPS

mfc0 $rt, $rd (move from coprocesador 0)Transfiere la información desde el registro de propósito general $rd al registro de

ó it i l $ t (0 CAUSE 1 EPC)propósito especial $rt (0 para CAUSE, 1 para EPC) Tipo R▫ 010000 0000 ttttt ddddd 00000000000

mtc0 $rd $rt (move to coprocesador 0)mtc0 $rd, $rt (move to coprocesador 0)Transfiere la información desde el registro de propósito especial $rt (0 para CAUSE, 1 para EPC) al registro de propósito general $rdTipo Rp▫ 010000 0100 ttttt ddddd 00000000000

rfe (return from exception)Transfiere el contenido del EPC al registro contador de programag p gTipo J▫ 010000 10000000000000000000100000

88Diseño del procesador

Page 89: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

Estructura del temaEstructura del tema

Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido

Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía

89Diseño del procesador

Page 90: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

ResumenResumen

Para diseñar un procesador es necesario diseñar en primer lugar el repertorio de instruccionesp

A continuación se diseña la ruta de datos que es capaz de ejecutar el repertorio de instrucciones

El siguiente paso es diseñar la unidad de controlEl siguiente paso es diseñar la unidad de control

El manejo de excepciones es la parte difícil del control.j p p

90Diseño del procesador

Page 91: 8. Diseño del ProcesadorDiseño del Procesadorserdis.dis.ulpgc.es/.../Tema8/Tema8_Diseno_del_procesador_FC_GII.pdf · zero Write Data Read Data 2 Diseño del procesador 14. ... Instrucción

BibliografíaBibliografía

Estructura y diseño de computadores: interficiecircuitería/programacióncircuitería/programaciónCapítulo 5 David A. Patterson, John L. HennessyEditorial Reverté, 1999

91Diseño del procesador