50
8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño multiciclo en adelante)

8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Embed Size (px)

Citation preview

Page 1: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

8. Diseño del Procesador

Fundamentos de los ComputadoresGrado en Ingeniería Informática

(desde diseño multiciclo en adelante)

Page 2: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

2

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 3: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

División del ciclo de instrucción en varias etapas o pasos Cada etapa se ejecuta en un ciclo de reloj Las etapas presentan cargas de trabajo equilibradas CPI (ciclos por instrucción) variables: instrucciones lentas y rápidas

Reutilización de las unidades funcionales Una unidad puede utilizarse más de una vez por instrucción siempre que

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

3

Diseño multiciclo

Diseño del procesador

Page 4: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

4

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 5: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Implementación multiciclo: componentes básicos

Una sola memoria para datos e instrucciones Una sola ALU en vez de 1 ALU y 2 sumadores Uso de registros temporales a la salida de las unidades funcionales

principales. Dos tipos de registros: Tipo A: Actualizan su contenido en cada instrucción (IR) Tipo B: Actualizan su contenido en cada ciclo de reloj (MDR,

A,B,ALUOut)

PC

Memory

Address

Instructionor data

Data

Instructionregister

RegistersRegister #

Data

Register #

Register #

ALUMemory

dataregister

A

B

ALUOut

5Diseño del procesador

Page 6: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Ruta de datos multiciclo

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

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

Señales de control

Shiftleft 2

MemtoReg

IorD MemRead MemWrite

PC

Memory

MemData

Writedata

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction[15– 11]

Mux

0

1

Mux

0

1

4

ALUOpALUSrcB

RegDst RegWrite

Instruction[15–0]

Instruction [5– 0]

Signextend

3216

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

1 Mux

0

32

ALUcontrol

Mux

0

1ALU

resultALU

ALUSrcA

ZeroA

B

ALUOut

IRWrite

Address

Memorydata

register

6Diseño del procesador

Page 7: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Etapas de ejecución de las instrucciones

¿Qué operaciones realizamos en cada ciclo de reloj? Objetivo: equilibrar la carga computacional de cada etapa Minimización

del tiempo de ciclo En 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 paralelo Etapas o pasos de la instrucción se ejecutan en serie

7Diseño del procesador

Page 8: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Camino de datos multiciclo con las señales de control

Shiftleft 2

PCMux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction[15– 11]

Mux

0

1

Mux

0

1

4

Instruction[15– 0]

Signextend

3216

Instruction[25– 21]

Instruction[20– 16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorD

MemRead

MemWrite

MemtoReg

PCWriteCond

PCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWrite

Control

Outputs

Op[5– 0]

Instruction[31-26]

Instruction [5– 0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

Memory

MemData

Writedata

Address

8Diseño del procesador

Page 9: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Etapa 1: Búsqueda del código de operación (fetch)IR = Memory[PC]PC = 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 salto Instrucción tipo R (and, or, add, sub,slt)

ALUOut = A op B

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

Etapas de ejecución de las instrucciones (I)

9Diseño del procesador

Page 10: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Etapa 4: Acceso a memoria/fin de ejecución instrucción tipo R Referencia a memoria (lw)

MDR = Memory[ALUOut]

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

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

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

Etapas de ejecución de las instrucciones (II)

10Diseño del procesador

Page 11: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Instrucción de CARGA (LW): Etapa 1

Shiftleft 2

PCMux

0

1Registers

Writeregister

Writedata

Readdata1

Readdata2

Readregister 1

Readregister 2

Instruction[15–11]

Mux

0

1

Mux

0

1

4

Instruction[15–0]

Signextend

3216

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorDMemRead

MemWrite

MemtoReg

PCWriteCondPCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWriteControl

Outputs

Op[5–0]

Instruction[31-26]

Instruction[5–0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

MemoryMemData

Writedata

Address

T1

ALUSrcA= 0ALUSrcB = 11ALUOp =00

MemReadALUSrcA= 0

IorD= 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource= 00

Instruction fetchInstruction decode/

Register fetch

(Op

=' JM

P')

01

Start

Memory reference FSM(Figure 5.38)

R-type FSM(Figure 5.39)

BranchFSM(Figure 5.40)

Jump FSM(Figure5.41)

11Diseño del procesador

Page 12: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Instrucción de CARGA (LW): Etapa 2

Shiftleft 2

PCMux

0

1Registers

Writeregister

Writedata

Readdata1

Readdata2

Readregister 1

Readregister 2

Instruction[15–11]

Mux

0

1

Mux

0

1

4

Instruction[15–0]

Signextend

3216

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorDMemRead

MemWrite

MemtoReg

PCWriteCondPCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWriteControl

Outputs

Op[5–0]

Instruction[31-26]

Instruction[5–0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

MemoryMemData

Writedata

Address

T2

ALUSrcA= 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA= 0

IorD= 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource= 00

Instruction fetchInstruction decode/

Register fetch

(Op

=' JM

P')

01

Start

Memory reference FSM(Figure 5.38)

R-type FSM(Figure 5.39)

BranchFSM(Figure 5.40)

Jump FSM(Figure 5.41)

12Diseño del procesador

Page 13: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Instrucción de CARGA (LW): Etapa 3

Shiftleft 2

PCMux

0

1Registers

Writeregister

Writedata

Readdata1

Readdata2

Readregister 1

Readregister 2

Instruction[15–11]

Mux

0

1

Mux

0

1

4

Instruction[15–0]

Signextend

3216

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorDMemRead

MemWrite

MemtoReg

PCWriteCondPCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWriteControl

Outputs

Op[5–0]

Instruction[31-26]

Instruction[5–0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

MemoryMemData

Writedata

Address

T3

MemWriteIorD= 1

MemReadIorD =1

ALUSrcA= 1ALUSrcB= 10ALUOp= 00

RegWriteMemtoReg = 1

RegDst = 0

Memory address computation

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

Memoryaccess

Write-backstep

(Op

='L

W' )

4

2

53

Fromstate 1

To state 0(Figure 5.37)

Memoryaccess

13Diseño del procesador

Page 14: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Instrucción de CARGA (LW): Etapa 4

Shiftleft 2

PCMux

0

1Registers

Writeregister

Writedata

Readdata1

Readdata2

Readregister 1

Readregister 2

Instruction[15–11]

Mux

0

1

Mux

0

1

4

Instruction[15–0]

Signextend

3216

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorDMemRead

MemWrite

MemtoReg

PCWriteCondPCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWriteControl

Outputs

Op[5–0]

Instruction[31-26]

Instruction [5–0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

MemoryMemData

Writedata

Address

T4

MemWriteIorD= 1

MemReadIorD =1

ALUSrcA= 1ALUSrcB= 10ALUOp= 00

RegWriteMemtoReg = 1

RegDst = 0

Memory address computation

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

Memoryaccess

Write-backstep

(Op

='L

W' )

4

2

53

Fromstate 1

To state 0(Figure 5.37)

Memoryaccess

14Diseño del procesador

Page 15: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Instrucción de CARGA (LW): Etapa 5

Shiftleft 2

PCMux

0

1Registers

Writeregister

Writedata

Readdata1

Readdata2

Readregister 1

Readregister 2

Instruction[15–11]

Mux

0

1

Mux

0

1

4

Instruction[15–0]

Signextend

3216

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorDMemRead

MemWrite

MemtoReg

PCWriteCondPCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWriteControl

Outputs

Op[5–0]

Instruction[31-26]

Instruction[5–0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

MemoryMemData

Writedata

Address

T5

MemWriteIorD= 1

MemReadIorD =1

ALUSrcA= 1ALUSrcB= 10ALUOp= 00

RegWriteMemtoReg = 1

RegDst = 0

Memory address computation

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

Memoryaccess

Write-backstep

(Op

='L

W' )

4

2

53

Fromstate 1

To state 0(Figure 5.37)

Memoryaccess

15Diseño del procesador

Page 16: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

16

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 17: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

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 estados▫ Función estado siguiente

▪ Si ×Ij Sk

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

Control microprogramado Especificación del control mediante un programa Necesaria para simplificar la especificación de una UC compleja

17

Diseño multiciclo - Diseño de la unidad control

Diseño del procesador

Page 18: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Ruta de datos multiciclo completo con las señales de control

Shiftleft 2

PCMux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction[15– 11]

Mux

0

1

Mux

0

1

4

Instruction[15– 0]

Signextend

3216

Instruction[25– 21]

Instruction[20– 16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorD

MemRead

MemWrite

MemtoReg

PCWriteCond

PCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWrite

Control

Outputs

Op[5– 0]

Instruction[31-26]

Instruction [5– 0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

Memory

MemData

Writedata

Address

18Diseño del procesador

Page 19: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

19

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 20: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Representación abstracta Etapas 1 y 2 comunes a

todas las instrucciones

Diagrama de estados Etapas 1 y 2

Control cableado - FSM

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruction fetchInstruction decode/

Register fetch

(Op

='J

MP '

)

01

Start

Memory reference FSM(Figure 5.38)

R-type FSM(Figure 5.39)

Branch FSM(Figure 5.40)

Jump FSM(Figure 5.41)

Memory accessinstructions(Figure 5.38)

R-type instructions(Figure 5.39)

Branch instruction(Figure 5.40)

Jump instruction(Figure 5.41)

Instruction fetch/decode and register fetch(Figure 5.37)

Start

20Diseño del procesador

Page 21: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Control cableado – FSM completa

PCWritePCSource = 10

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA =1ALUSrcB = 00ALUOp= 10

RegDst = 1RegWrite

MemtoReg = 0MemWriteIorD = 1

MemReadIorD = 1

ALUSrcA = 1ALUSrcB = 10ALUOp = 00

RegDst=0RegWrite

MemtoReg=1

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruction fetchInstruction decode/

register fetch

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation

Memoryaccess

Memoryaccess R-type completion

Write-back step

(Op

='J

')

(Op

='L

W')

4

01

9862

753

Start

21Diseño del procesador

Page 22: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Control cableado – Especificació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

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

1 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 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

22Diseño del procesador

Page 23: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

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

ciclo

Control cableado - Implementación de la FSM

PCWrite

PCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3 S2 S1 S0State register

IRWrite

MemReadMemWrite

Instruction registeropcode field

Outputs

Control logic

Inputs

Estado Siguiente

Estado Actual

23Diseño del procesador

Page 24: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Control cableado – Ecuaciones de implement. 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 6

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 6

NS0 -> 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 5

IRWrite -> Estado 0

MemToReg -> Estado 4

PCSource1 -> Estado 9

PCSource0 -> Estado 8

ALUOp1 -> Estado 6

ALUOp0 -> Estado 8

ALUSrcB1 -> Estado 1 + Estado 2

ALUSrcB0 -> Estado 0 + Estado 1

ALUSrcA -> Estado 2 + Estado 6 + Estado 8

RegWrite -> Estado 4 + Estado 7

RegDst -> Estado 7

24Diseño del procesador

Page 25: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

PCWrite

PCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3 S2 S1 S0

State register

IRWrite

MemReadMemWrite

Instruction registeropcode field

Outputs

Control logic

Inputs

Tamaño:20 Kbits vs 4.25 Kbits

PCWrite

PCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3 S2 S1 S0

State register

IRWrite

MemReadMemWrite

Instruction r

PCWrite

PCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3 S2 S1 S0

State register

IRWrite

MemReadMemWrite

Instruction registeropcode field

Outputs

Control logic

Inputs

Tamaño:20 Kbits vs 4.25 Kbits

25

Control cableado - Implementación de FSM con ROM

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

los estados = 210 posiciones de memoria

16 salidas de control + 4 salidas de nuevo estado = 20 bits de anchura

Diseño no unificado Tamaño: 4.25Kb ROM de señales de salida

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

de memoria▫ 16 salidas de control = 16 bits de

anchura ROM de nuevo estado

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

los estados = 210 posiciones de memoria

▫ 4 salidas de nuevo estado = 4 bits de anchura

Diseño del procesador

Page 26: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Op5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

IorD

IRWrite

MemReadMemWrite

PCWritePCWriteCond

MemtoRegPCSource1

ALUOp1

ALUSrcB0ALUSrcARegWriteRegDstNS3NS2NS1NS0

ALUSrcB1ALUOp0

PCSource0

26

Control cableado - Implementación de FSM con PLA

Tamaño de la PLA#inputs × #minterms + #outputs × #minterms = (10 × 17) + (20 × 17) = 510 celdas

Diseño del procesador

Page 27: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

27

Control cableado

Diseño del procesador

Implementar el control cableado es sencillo en este caso porque el repertorio de instrucciones es reducido (apenas 9 instrucciones)

Cuando el repertorio es completo, la implementación cableada es muy compleja porque: La MEF se compone de cientos de estados y transiciones El circuito se vuelve ininteligible

En programación, cuando ocurre algo así se utilizan técnicas de programación modular (procedimientos y funciones) para abordar el problema y hacer los programas comprensibles…. ¿Se podrán aplicar esas mismas técnicas en nuestro caso?

Page 28: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

28

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 29: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

29

Diseño de la UC – Control microprogramado

Se definen instrucciones de control (microinstrucciones) que indican, de forma simbólica, qué señales de control deben estar activas en un determinado estado cuando se está ejecutando una instrucción.

La ejecución de una microinstrucción tiene como efecto la activación de las señales de control especificadas en la propia microinstrucción.

Las microinstrucciones también indican cuál es la siguiente microinstrucción a ejecutar, después de que termine la actual Información de secuenciamiento

Diseño del procesador

Page 30: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select logic

Op[

5–0]

Adder

1

Datapath

Instruction registeropcode field

BWrite

Secuenciadorexterno

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select logic

Op[

5–0]

Adder

1

Datapath

Instruction registeropcode field

BWrite

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select logic

Op[

5–0]

Adder

1

Datapath

Instruction registeropcode field

BWrite

Secuenciadorexterno

Secuenciadorexterno

30

Diseño de la UC – Control microprogramado

El control se especifica como un programa (microprograma) que está compuesto por instrucciones (microinstrucciones) que están almacenadas en una memoria (memoria de microcódigo)

Un registro (contador de microprograma) indica cuál es la siguiente microinstrucción a ejecutar.

Diseño del procesador

Page 31: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

31

Control microprogramado – Formato de la microinstrucción

Formato de la microinstrucción. Definición de: Número de campos de la microinstrucción Significado de cada campo

En cada campo se controla el valor que toman un cierto número de señales de control Asignación de señales de control disjunta en cada campo para evitar microinstrucciones

incoherentes (Ej, que hacen que una señal tome 2 valores a la vez)

Además de los campos que controlan las señales de control existirá un campo que define el secuenciamiento de las microinstrucciones Secuencial (Ej: del estado 0 siempre se pasa al estado 1 de la MEF) Dispatch dependiendo del código de operación (Ej: en el estado 1 de la MEF se abren 4

posibilidades) Vuelta al estado inicial (Ej: al final de la ejecución de cada instrucción se vuelve siempre

al estado 0, ¡ojo porque no es lo mismo que el caso secuencial!)

Diseño del procesador

Page 32: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

ControlALU SRC1 SRC2 Control

Registro Memoria ControlPCWrite Secuenciamiento

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

durante el ciclo.addsubtFunc code

SRC1 Especifica la fuente para el primer operando dela ALU

PCA

SRC2 Especifica la fuente para el segundo operandode la ALU

B4ExtendExtShft

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)

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-CondJump Address

Secuenciamiento Especifica la siguiente microinstrucción que seva a ejecutar

SeqFetchDispatch i

32

Control microprogramado – Formato de la microinstrucción

7 campos: 6 campos de control + 1 campo de secuenciamiento

Diseño del procesador

Page 33: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

ControlALU SRC1 SRC2 Control

Registro Memoria ControlPCWrite Secuenciamiento

33

Control microprogramado – Formato de la microinstrucción

7 campos: 6 campos de control + 1 campo de secuenciamiento

Diseño del procesador

Nombre del campoControl ALU

SRC1

SRC2

Control Registro

Memoria

Control PCWrite

Secuenciamiento

Valores del campoaddsubtFunc codePCAB4ExtendExtShftReadWrite ALU (rd <- ALUout)Write MDR (rt <- MDR)Read PC (IR <- M[PC])Read ALU (MDR <- M[ALUout]Write ALU (M[ALUout] <- B)ALUALUOut-CondJump AddressSeqFetchDispatch i

PCWritePCSource=10

ALUSrcA=1ALUSrcB=00ALUOp=01PCWriteCond

PCSource=01

ALUSrcA=1ALUSrcB=00ALUOp=10

RegDst =1RegWrite

MemtoReg=0MemWriteIorD=1

MemReadIorD=1

ALUSrcA=1ALUSrcB=10ALUOp=00

RegDst=0RegWrite

MemtoReg=1

ALUSrcA=0ALUSrcB=11ALUOp=00

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOp=00

PCWritePCSource=00

InstructionfetchInstructiondecode/

register fetch

Jumpcompletion

BranchcompletionExecution

Memoryaddresscomputation

Memoryaccess

Memoryaccess R-typecompletion

Write-backstep

(Op

='J'

)

(Op

='L

W')

4

01

9862

753

Start

Page 34: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

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ó n

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

S R C 2A LU S rB 1 A LU S rcB 0

O peración

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

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 U1 0 1 W rite M D R

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 e a d P C0 1 0 1 R e a d A LU0 0 1 1 W rite A L U

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 U1 0 1 W rite M D R

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 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-Cond1 0 1 0 Jump address

S ecA ddrC tl1 A ddrC tl0

O peración

1 1 S eq.0 0 Fetch0 1 D ispatch11 0 D ispatch2

Control PCWritePCSrc1 PcSrc0 PCwrite PCWrtCond

Oper.

0 0 1 0 ALU0 1 0 1 ALUOut-Cond1 0 1 0 Jump address

S ecA ddrC tl1 A ddrC tl0

O peración

1 1 S eq.0 0 Fetch0 1 D ispatch11 0 D ispatch2

S R C 1A d d rS rc A

O p e ra c ió n

0 P C1 A

34

Control microprogramado– Señales asociadas a los campos y valores

Diseño del procesador

Page 35: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Estado Etiqueta ControlALU

SRC1 SRC2 ControlRegistros

Memoria ControlPCWrite

Secuenc.

0 Fetch Add PC 4 Read PC ALU Seq.1 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-

condFetch

9 JUMP1 JumpAddress

Fetch

Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.

Alu

op1

Alu

op0

Alu

Src

A

ALU

SrcB

1

ALU

SrcB

0

Reg

Writ

e

Reg

Dst

Mem

ToR

eg

IRW

rite

Mem

Rea

d

IorD

Mem

Writ

e

PC

Sou

rce1

PC

Sou

rce0

PC

Writ

e

PC

Writ

eCon

d

Add

rCtl1

Add

rCtl0

18 señales de control ->

35

Control microprogramado – Microprograma de la UC

Diseño del procesador

Page 36: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select logic

Op[

5–0]

Adder

1

Datapath

Instruction registeropcode field

BWrite

Secuenciadorexterno

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select logic

Op[

5–0]

Adder

1

Datapath

Instruction registeropcode field

BWrite

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select logic

Op[

5–0]

Adder

1

Datapath

Instruction registeropcode field

BWrite

Secuenciadorexterno

Secuenciadorexterno

36

Diseño de la UC – Control microprogramado

El estado siguiente es frecuentemente el estado actual + 1

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

Diseño del procesador

Page 37: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

37

Control microprogramado –Secuenciador del microprograma

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

State

Op

Adder

1

PLA or ROM

Mux3 2 1 0

Dispatch ROM 1Dispatch ROM 2

0

AddrCtl

Address select logic

Instruction registeropcode field

S ecA ddrC tl1 A ddrC tl0

O perac ión

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

Dispatch ROM1Op [5:0] Nombre Valor

000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)

Dispatch ROM2Op [5:0] Nombre Valor

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

State

Op

Adder

1

PLA or ROM

Mux3 2 1 0

Dispatch ROM 1Dispatch ROM 2

0

AddrCtl

Address select logic

Instruction registeropcode field

State

Op

Adder

1

PLA or ROM

Mux3 2 1 0

Dispatch ROM 1Dispatch ROM 2

0

AddrCtl

Address select logic

Instruction registeropcode field

S ecA ddrC tl1 A ddrC tl0

O perac ión

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

Dispatch ROM1Op [5:0] Nombre Valor

000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)

Dispatch ROM2Op [5:0] Nombre Valor

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

Diseño del procesador

Page 38: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

38

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 39: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Excepciones e interrupciones Definiciones

Eventos inesperados que cambian el flujo normal de ejecución de las instrucciones

Excepción▫ Evento que tiene su origen en el interior del procesador (desbordamiento

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.)

Tipo de evento ¿Desde dónde? Terminología MIPS Petición desde dispositivo E/S Exterior Interrupción Llamada al Sistema Operativo desde el programa de usuario

Interior Excepción

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

39Diseño del procesador

Page 40: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Las 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 Cause Transferir el control al Sistema Operativo en alguna dirección especificada

(0xC00000000) donde se tratará la excepción (ejecución de una rutina de servicio)

Tratamiento de excepciones en MIPS

Interrupción

Rutina de serviciode la interrupción

Programa

Salto a rutina de servicio

Retorno de la rutina de servicio

40Diseño del procesador

Page 41: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

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

Registros adicionales requeridos EPC: Registro de 32 bits para guardar la dirección de la instrucción

causante de la excepción CAUSE: Registro de 32 bits para registrar la causa de la excepción.

Utilizaremos sólo el bit menos significativo▫ bit 0 = 0 → Instrucción ilegal▫ bit 0 = 1 → Desbordamiento aritmético

Señales de control adicionales Intcause (0: instrucción ilegal - 1: desbordamiento) 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)

Implementación de excepciones en MIPS

41Diseño del procesador

Page 42: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Especificación de la UC con soporte de excepciones

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA = 1ALUSrcB = 00ALUOp = 10

RegDst = 1RegWrite

MemtoReg = 0MemWriteIorD = 1

MemReadIorD = 1

ALUSrcA = 1ALUSrcB = 00ALUOp = 00

RegWriteMemtoReg = 1RegDst = 0

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruction fetchInstruction decode/

Register fetch

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation

Memoryaccess

Memoryaccess R-type completion

Write-back step

(Op

='J '

)

( Op

='L

W')

4

01

9862

7 11 1053

Start

Overflow

Overflow

ALUSrcA = 0ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

IntCause = 0CauseWrite

ALUSrcA = 0ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

IntCause = 1CauseWrite

PCWritePCSource = 10

42Diseño del procesador

Page 43: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Ruta de datos con soporte de excepciones

Shiftleft 2

Memory

MemData

Writedata

Mux

0

1

Instruction[15–11]

Mux

0

1

4

Instruction[15–0]

Signextend

3216

Instruction[25–21]

Instruction[20–16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorD

MemRead

MemWrite

MemtoReg

PCWriteCond

PCWrite

IRWrite

Control

Outputs

Op[5–0]

Instruction[31-26]

Instruction [5–0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

Address

EPC

CO0000 00 3

Cause

ALUOpALUSrcBALUSrcA

RegDst

PCSource

RegWrite

EPCWriteIntCauseCauseWrite

1

0

1 Mux

0

32

Mux

0

1

Mux

0

1

PC

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

ALUOut

43Diseño del procesador

11 10

ALUSrcA = 0ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

IntCause = 0CauseWrite

ALUSrcA = 0ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

IntCause = 1CauseWrite

Al estado 0

Page 44: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Ruta de datos con soporte de excepciones

44Diseño del procesador

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA = 1ALUSrcB = 00ALUOp = 10

RegDst = 1RegWrite

MemtoReg = 0MemWriteIorD = 1

MemReadIorD = 1

ALUSrcA = 1ALUSrcB = 00ALUOp = 00

RegWriteMemtoReg = 1RegDst = 0

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruction fetchInstruction decode/

Register fetch

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation

Memoryaccess

Memoryaccess R-type completion

Write-back step

(Op

='J '

)

( Op

='L

W')

4

01

9862

7 11 1053

Start

Overflow

Overflow

ALUSrcA = 0ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

IntCause = 0CauseWrite

ALUSrcA = 0ALUSrcB = 01ALUOp = 01

EPCWritePCWrite

PCSource = 11

IntCause = 1CauseWrite

PCWritePCSource = 10

Page 45: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

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

propósito especial $rt (0 para CAUSE, 1 para EPC) Tipo R

▫ 010000 0000 ttttt ddddd 00000000000 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 $rd

Tipo R▫ 010000 0100 ttttt ddddd 00000000000

rfe (return from exception) Transfiere el contenido del EPC al registro contador de programa Tipo J

▫ 010000 10000000000000000000100000

45

Instrucciones para excepciones en MIPS

Diseño del procesador

Page 46: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

46

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 47: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

47

Resumen

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

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 control

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

Diseño del procesador

Page 48: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

48

Bibliografía

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

Diseño del procesador

Page 49: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

Shiftleft 2

PCMux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction[15– 11]

Mux

0

1

Mux

0

1

4

Instruction[15– 0]

Signextend

3216

Instruction[25– 21]

Instruction[20– 16]

Instruction[15–0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

IorD

MemRead

MemWrite

MemtoReg

PCWriteCond

PCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWrite

Control

Outputs

Op[5– 0]

Instruction[31-26]

Instruction [5– 0]

Mux

0

2

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

Shiftleft 2

PC [31-28]

1

1 Mux

0

32

Mux

0

1ALUOut

Memory

MemData

Writedata

Address

Añadir la instrucción lw $rd, $rt($rs) al diseño del procesador multiciclo con el control especificado como una FSM.

Ejercicio 6

Page 50: 8. Diseño del Procesador - serdis.dis.ulpgc.esserdis.dis.ulpgc.es/~gii-fc/material_clases_teoria/Tema8/Tema8... · 2 Estructura del tema Metodología de sincronización Diseño de

PCWritePCSource = 10

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA =1ALUSrcB = 00ALUOp= 10

RegDst = 1RegWrite

MemtoReg = 0MemWriteIorD = 1

MemReadIorD = 1

ALUSrcA = 1ALUSrcB = 10ALUOp = 00

RegDst =0RegWrite

MemtoReg=1

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruction fetchInstruction decode/

register fetch

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation

Memoryaccess

Memoryaccess R-type completion

Write-back step

(Op

='J'

)

(Op

='L

W')

4

01

9862

753

Start

Ejercicio 6Añadir la instrucción lw $rd, $rt($rs) al diseño del procesador multiciclo con el control especificado como una FSM.