53
Organización del Organización del Computador Computador CPU 3 y 4 – Diseño de una CPU 3 y 4 – Diseño de una computadora computadora

Organización del Computador CPU 3 y 4 – Diseño de una computadora

Embed Size (px)

Citation preview

Page 1: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Organización del Organización del ComputadorComputador

CPU 3 y 4 – Diseño de una CPU 3 y 4 – Diseño de una computadoracomputadora

Page 2: Organización del Computador CPU 3 y 4 – Diseño de una computadora

ConsideracionesConsideraciones

Una única ALU, una única Memoria, un Una única ALU, una única Memoria, un único Banco de Registros.único Banco de Registros.

Dos tipos de problemas:Dos tipos de problemas: Una instrucción utiliza un mismo recurso Una instrucción utiliza un mismo recurso

varias veces y se pierden los valores varias veces y se pierden los valores anteriores.anteriores.

Una instrucción utiliza un mismo recurso en la Una instrucción utiliza un mismo recurso en la misma etapa para dos o más cosas distintas.misma etapa para dos o más cosas distintas.

Page 3: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Algunos componentes disponiblesAlgunos componentes disponibles

P C16 32

S ignex te nd

M e m R ea d

M e m W rite

m e m oryW riteda ta

R e add ata

Ad dre ss

Program Counter

Unidad de memoria

Unidad de extensión de signo

R egW rite

R eg is te rsW ritere gister

R e add ata 1

R e add ata 2

R e adre gister 1

R e adre gister 2

W rited ataD ata

D ata

R eg is te rnu m bers

5

5

5

Registros

A LU co ntrol

A LUresu lt

A LUZero

3

ALU

Page 4: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Diseño: Pasos necesariosDiseño: Pasos necesarios1er Paso: Analizar el conjunto de : Analizar el conjunto de

instrucciones para determinar los instrucciones para determinar los requerimientos del Camino de Datos.requerimientos del Camino de Datos.

2o Paso: Seleccionar los componentes. : Seleccionar los componentes. 3o Paso: Construir el Camino de Datos según : Construir el Camino de Datos según

los requerimientos.los requerimientos.4o Paso: Analizar la implementación de cada : Analizar la implementación de cada

instrucción para determinar las señales de instrucción para determinar las señales de control necesarias.control necesarias.

5o Paso: Construir el Control.: Construir el Control.

Page 5: Organización del Computador CPU 3 y 4 – Diseño de una computadora

1. Fetch de Instrucción (Fetch/IF)

2. Decodificación (y lectura de registros) (Decode/ID)

3. Acceso a datos en memoria (Mem) (previo Cálculo de Dirección de memoria)

4. Ejecución (Execution/EX)

5. Escritura en registros (Write Back/WB)

Cinco Etapas (o fases) de Ejecución

Page 6: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato MIPS de InstrucciónFormato MIPS de Instrucción

Son todas de 32 bits. Son todas de 32 bits. Tres formatos:Tres formatos:

Tipo R (register)Tipo R (register) AritméticasAritméticas

Tipo I (immediate)Tipo I (immediate) Transferencia, saltoTransferencia, salto Operaciones con Operaciones con

operando inmediatooperando inmediato

Tipo J (jump)Tipo J (jump) SaltosSaltos

op rs rt rd sh funct

31 26 21 16 11 6 0

op rs rt Address/inmediate

31 26 21 16 0

op Target Address

31 26 0

Page 7: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato R: RegisterFormato R: Register

op = 0op = 0 rs, rt = identificación de los registros fuenters, rt = identificación de los registros fuente rd = identificación del registro destinord = identificación del registro destino sh = cantidad de shiftssh = cantidad de shifts func = identifica la operación (ej. add=32, sub=34, func = identifica la operación (ej. add=32, sub=34,

sll=0,srl=10)sll=0,srl=10)

0 rs rt rd Sh (5) fun (6)

31 26 21 16 11 6 0

Page 8: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato R :EjemplosFormato R :Ejemplos Add Add $1, $2, $3$1, $2, $3

0 2 3 1 0 32

31 26 21 16 11 6 0

SubSub $1, $2, $1, $2, $3$3

0 2 3 1 0 34

31 26 21 16 11 6 0

SltSlt $1, $2, $1, $2, $3$3

0 2 3 1 0 42

31 26 21 16 11 6 0

Set Less ThanSet Less Than si ($2<$3) entonces $1=1sino $1=0si ($2<$3) entonces $1=1sino $1=0

JrJr $31$310 31 0 0 0 8

31 26 21 16 11 6 0

Jump RegisterJump Register PC=$31PC=$31

Page 9: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato I : ImmediateFormato I : Immediate

op rs rt Address/inmediate

31 26 21 16 0

8 2 1 100

31 26 21 16 0 AddiAddi $1,$2,100$1,$2,100

$1=$2+100$1=$2+100

Page 10: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato I : ImmediateFormato I : Immediate

35 2 1 100

31 26 21 16 0 LwLw $1, 100($2) $1, 100($2)

43 2 1 100

31 26 21 16 0

SwSw $1, 100($2) $1, 100($2)

Load Word Load Word $1=M[$2+100]$1=M[$2+100]

Store Word Store Word M[$2+100]=$1M[$2+100]=$1

op rs rt Address/inmediate

31 26 21 16 0

Page 11: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato I : ImmediateFormato I : Immediate

4 1 2 100

31 26 21 16 0 BeqBeq $1,$2,100$1,$2,100

5 1 2 100

31 26 21 16 0

BneBne $1,$2,100$1,$2,100

Branch Equal Branch Equal si ($1=$2) entonces ir a PC+4+100si ($1=$2) entonces ir a PC+4+100

Branch Not Equal Branch Not Equal si ($1!=$2) entonces ir a PC+4+100si ($1!=$2) entonces ir a PC+4+100

op rs rt Address/inmediate

31 26 21 16 0

Page 12: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato J : JumpsFormato J : Jumps

JJ 1000010000

PC PC 27..227..2=10000=10000 PCPC1..01..0=00=00

op Target Address

31 26 0

2 10000

31 26 0

JalJal 10000100003 10000

31 26 0

JUMP AND LINK JUMP AND LINK $31=PC+4$31=PC+4

PC PC 27..227..2=10000=10000 PCPC1..01..0=00=00

Page 13: Organización del Computador CPU 3 y 4 – Diseño de una computadora

RTL (Registrer Tranfer Language)RTL (Registrer Tranfer Language)

Cada instrucción está formada por un Cada instrucción está formada por un conjunto de microoperaciones.conjunto de microoperaciones.

Se utiliza para determinar la secuencia Se utiliza para determinar la secuencia exacta de microoperaciones.exacta de microoperaciones.

Ejemplo (Fetch en Marie):Ejemplo (Fetch en Marie): t1:t1: MAR MAR (PC) (PC) t2:t2: MBR MBR Mem[MAR] Mem[MAR]

PC PC (PC) + 1 (PC) + 1 t3:t3: IR IR (MBR) (MBR)

Page 14: Organización del Computador CPU 3 y 4 – Diseño de una computadora

11oo Paso: Paso: Tipo R (add, sub...)Tipo R (add, sub...)

R[rd] = R[rs] ‘op’ R[rt]; PC=PC+4

RTLT1: IR Mem[PC]

PC PC + 4

T2: A R[rs]

B R[rt]

T3: ALUOut A ‘op‘ B

T4: R[rd] ALUOut

0 rs rt rd Sh (5) fun (6)

31 26 21 16 11 6 0

Page 15: Organización del Computador CPU 3 y 4 – Diseño de una computadora

BEQ if (R[rs] == R[rt]) then PC PC+(sign_ext(Imm16)*4)

RTLT1: IR Mem[PC];

PC PC + 4T2: A R[rs] (Se guardan para el ciclo siguiente)

B R[rt] ALUOut PC + sign_ext (Imm16) << 2 (calcula la dir. del salto)

T3: PC ALUOut [Si el flag Zero esta activo]

op rs rt Address/inmediate

31 26 21 16 0

11oo Paso: Paso: Tipo I (Branch)Tipo I (Branch)

Page 16: Organización del Computador CPU 3 y 4 – Diseño de una computadora

LOAD R[rt] Mem[ R[rs]+sign_ext(Imm16) ]

RTLT1: IR Mem[PC] PC PC + 4 T2: A R[rs] B R[rt] (B no se usa)T3: ALUOut A + sign_ext (Imm16) (Calcula la dir.)T4: MBR Mem[ALUOut] T5: R[rt] MAR

op rs rt Address/inmediate

31 26 21 16 0

11oo Paso: Paso: Tipo I (Load)Tipo I (Load)

Page 17: Organización del Computador CPU 3 y 4 – Diseño de una computadora

STORESTORE Mem[ R[rs]+sign_ext(Imm16) ]Mem[ R[rs]+sign_ext(Imm16) ] R[rt]; R[rt];

RTLT1: IR Mem[PC] PC PC + 4 T2: A R[rs] B R[rt] (valor a escribir)T3: ALUOut A + sign_ext (imm16) T4: Mem[ALUOut] B

op rs rt Address/inmediate

31 26 21 16 0

11oo Paso: Paso: Tipo I (Store)Tipo I (Store)

Page 18: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Jump PC<31:2> PC<31:28>,(target<25:0> << 2) (Calcula la dirección concatenando los 26 bits del operando)

RTLT1: IR Mem[PC]

PC PC + 4 T2: ¡NADA!T3: PC<31:2> PC<31:28>,(IR<25:0> << 2)

11oo Paso: Paso: Tipo J (jump...)Tipo J (jump...)

op Target Address

31 26 0

Page 19: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Resumen de las etapasResumen de las etapas

Page 20: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Número de CiclosNúmero de Ciclos

Brach y Jump: 3 ciclos (IF,ID,EX)Brach y Jump: 3 ciclos (IF,ID,EX)Las tipo R: 4 ciclos (IF,ID,EX,WB)Las tipo R: 4 ciclos (IF,ID,EX,WB)STORE: 4 ciclos (IF,ID,EX,MEM)STORE: 4 ciclos (IF,ID,EX,MEM)LOAD: 5 (IF,ID,EX,MEM,WB)LOAD: 5 (IF,ID,EX,MEM,WB)

Page 21: Organización del Computador CPU 3 y 4 – Diseño de una computadora

1- Fetch (IF)1- Fetch (IF)

RTLRTL IR Memory[PC]

PC PC + 4

Page 22: Organización del Computador CPU 3 y 4 – Diseño de una computadora

2 - Decode (ID)2 - Decode (ID)

RTLRTLOpción lectura de registrosOpción lectura de registros

A reg[IR[25:21]]

B reg[IR[20:16]]

Opción cálculo de saltoALUOut PC + sign-extend(IR[15:0]) <<2

Page 23: Organización del Computador CPU 3 y 4 – Diseño de una computadora

3 - Execute (Ex)3 - Execute (Ex)

RTLRTLOpción artimética/lógica Opción artimética/lógica

ALUOut A op B, oALUOut A op sign-extend(IR[15:0])

Cálculo de dirección (Load o Store)ALUOut A + sign-extend(IR[15:0])

Salto condicionalSi A = B, PC ALUOut

Jump PC[31:28] PC || IR[25:0] <<2

Page 24: Organización del Computador CPU 3 y 4 – Diseño de una computadora

4 – Memoria (Mem)4 – Memoria (Mem)

Sólo para Load o StoreSólo para Load o StoreRTLRTL

Opción LecturaOpción LecturaMBR Memory[ALUOut]

Opción GrabadoMemory[ALUOut] B

Page 25: Organización del Computador CPU 3 y 4 – Diseño de una computadora

5 - Escritura5 - Escritura

RTLRTLOpción instrucción tipo R o aritmética Opción instrucción tipo R o aritmética

inmediatainmediatareg[ IR[15:11] ] ALUOut

Opción Load (celda de memoria leída en el ciclo anterior)

reg[IR[20:16]] MBR

Page 26: Organización del Computador CPU 3 y 4 – Diseño de una computadora

11erer Paso: Paso: Requerimientos del Conjunto Requerimientos del Conjunto de Instruccionesde Instrucciones

MemoriaMemoria Para instrucciones y datosPara instrucciones y datos

Registros (32x32)Registros (32x32) Leer rs, leer rtLeer rs, leer rt Escribir rt ó rdEscribir rt ó rd

PC, MBRPC, MBR A, B A, B para datos intermedios, para datos intermedios, ALUOutALUOut (retener salida ALU) (retener salida ALU) Extensor de signo Extensor de signo (16 a 32)(16 a 32) Sumar y RestarSumar y Restar registros y/o valores inmediatos registros y/o valores inmediatos Operaciones lógicas Operaciones lógicas (and/or) registros y/o valores (and/or) registros y/o valores

inmediatosinmediatos Sumar Sumar 4 al PC ó 4 + inmediato extendido * 44 al PC ó 4 + inmediato extendido * 4

Page 27: Organización del Computador CPU 3 y 4 – Diseño de una computadora

22oo Paso: Paso: Componentes del Camino de Componentes del Camino de DatosDatos

PC

b. Program counter

b . A LU

R egW rite

R eg is te rsW ritere gister

R e add ata 1

R e add ata 2

R e adre gister 1

R e adre gister 2

W rited ataD ata

D ata

R eg is te rnu m bers

a . R egisters

5

5

5A LU co ntrol

A LUresu lt

A LUZero

3

16 32Sign

extend

b. Sign-extension unit

MemRead

MemWrite

memoryWritedata

Readdata

a. memory unit

Address

Page 28: Organización del Computador CPU 3 y 4 – Diseño de una computadora

22oo Paso: Paso: Componentes del Camino de Componentes del Camino de DatosDatos

Elementos de Almacenamiento: Banco de Elementos de Almacenamiento: Banco de Registro (dos puertos de lectura)Registro (dos puertos de lectura)

Mux

Register 0

Register 1

Register n – 1

Register n

Mux

Read data 1

Read data 2

Read registernumber 1

Read registernumber 2

RegW

CLK

LRA

LRB

ER

BusW

BusA

BusB32 Registros de 32 bits

32

5

5

5

32

32

Page 29: Organización del Computador CPU 3 y 4 – Diseño de una computadora

22oo Paso: Paso: Componentes del Camino de Componentes del Camino de DatosDatos

Elementos de Almacenamiento: Banco de Elementos de Almacenamiento: Banco de Registros (un puerto de escritura)Registros (un puerto de escritura)

n-to-1decoder

Register 0

Register 1

Register n – 1C

C

D

DRegister n

C

C

D

D

Register number

Write

Register data

0

1

n – 1

n

RegW

CLK

LRA

LRB

ER

BusW

BusA

BusB32 Registros de 32 bits

32

5

5

5

32

32

Page 30: Organización del Computador CPU 3 y 4 – Diseño de una computadora

22oo Paso: Paso: Componentes del Camino de Componentes del Camino de DatosDatos

Una sola memoria para instrucciones y datos Una sola memoria para instrucciones y datos

WE

CLK

dirección

Dato In

Dato Out

Memoria

32

32

32

MUX

De la ALU

Del PC

IR

IoD

IRW

Page 31: Organización del Computador CPU 3 y 4 – Diseño de una computadora

33erer Paso: Paso: Reuso de Unidades Reuso de Unidades Funcionales: ALU únicaFuncionales: ALU única

ALU debe realizarALU debe realizar operaciones sobre registrosoperaciones sobre registros base + desplazamiento para loads y storesbase + desplazamiento para loads y stores dirección destino de salto: registro + sign_ext(Imm16) * 4dirección destino de salto: registro + sign_ext(Imm16) * 4 PC=PC+4 PC=PC+4

BusB 32

PC

32

MUX

32

ALUctr

MUXBusA

32

Inm16

SignExt

>>

2

4

32

32

Page 32: Organización del Computador CPU 3 y 4 – Diseño de una computadora

33erer Paso: Paso: Registro ALUout Registro ALUout

BusB 32

PC32

MUX

32

ALUctr

MUXBusA

32

Inm16

SignE

xt

>>

2

4

32

32

ALU

Out

DstW

Page 33: Organización del Computador CPU 3 y 4 – Diseño de una computadora

33erer Paso: Paso: Fetch - IFFetch - IF

Mem[PC]; PC Mem[PC]; PC PC + 4 (código secuencial PC + 4 (código secuencial))

Page 34: Organización del Computador CPU 3 y 4 – Diseño de una computadora

33erer Paso: Paso: Decode - IDDecode - ID

Page 35: Organización del Computador CPU 3 y 4 – Diseño de una computadora

33erer Paso: Paso: Ejecución - EXEjecución - EX

Page 36: Organización del Computador CPU 3 y 4 – Diseño de una computadora

33erer Paso: Paso: Operandos - MemOperandos - Mem

Page 37: Organización del Computador CPU 3 y 4 – Diseño de una computadora

33erer Paso: Paso: Write back- WBWrite back- WB

Page 38: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Señales de controlSeñales de control

Page 39: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Grafo de EstadosGrafo de EstadosIRMEM[PC];

PCPC+4

AR[rs];

BR[rt];

ALUOutPC+(signext(inm16)<<2)

ALUOutAopB

ALUOutA+ signext(inm16)

ZA-B

si (Z) PCALUOut

MBRMEM[ALUOut]

R[rd]ALUOut R[rt] -MBR

MEM[ALUOut]B

Format R BeqPC PC[31:28] || (IR[25:0] <<2)

Jump

LwSw

Page 40: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Grafo de EstadosGrafo de Estados

S0

S1

S6

S2

S8

S3

S7 S4

S5

S9

Page 41: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Control de SeñalesControl de Señales

S0 S1 S2 S3 S4 S5 S6 S7 S8 S9

RegWrite

IRWrite

MemRead

MemWrite

PCWrite

PCWCond

PCSource

ALUsrcA

ALUsrcB

MemToReg

RegDst

IoD

ALUop

Page 42: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Control de SeñalesControl de Señales

S0 S1 S2 S3 S4 S5 S6 S7 S8 S9

RegWrite 0 0 0 0 1 0 0 1 0 0

IRWrite 1 0 0 0 0 0 0 0 0 0

MemRead 1 1

MemWrite 0 0 0 0 0 1 0 0 0 0

PCWrite 1 0 0 0 0 0 0 0 0 1

PCWCond 1

PCSource 00 01 10

ALUsrcA 0 0 1 1 1 1 1 1 1

ALUsrcB 01 11 10 10 10 10 00 00 00 00

MemToReg 1 0

RegDst 0 1

IoD 0 1 1 1

ALUop 00 00 00 10 01

Page 43: Organización del Computador CPU 3 y 4 – Diseño de una computadora

• Implementación:

Máquina de Estados Finitos

PCWrite

PCWriteCond

IorD

MemtoReg

PCSource

ALUOp

ALUSrcB

ALUSrcA

RegWrite

RegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

State register

IRWrite

MemRead

MemWrite

Instruction registeropcode field

Outputs

Control logic

Inputs

Page 44: Organización del Computador CPU 3 y 4 – Diseño de una computadora

ROM = "Read Only Memory"ROM = "Read Only Memory" Se graba la memoria con valores fijosSe graba la memoria con valores fijos

Se usa la ROM para implementar la Tabla de VerdadSe usa la ROM para implementar la Tabla de Verdad Con direcciones de Con direcciones de m-bits, m-bits, podemos direccionar podemos direccionar 22mm entr entradasadas en en

la la ROM.ROM. Las salidas son los datos (palabras) direccionadasLas salidas son los datos (palabras) direccionadas

ImplementaImplementacciióónn con ROM con ROM

m n

0 0 0 0 0 1 10 0 1 1 1 0 00 1 0 1 1 0 00 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 11 1 0 0 1 1 01 1 1 0 1 1 1

Page 45: Organización del Computador CPU 3 y 4 – Diseño de una computadora

¿¿Cuantas entradas tenemosCuantas entradas tenemos?? 6 bits 6 bits para el para el opcodeopcode 4 bit4 bits para el estados para el estado = 10 = 10 líneas de direcciones líneas de direcciones (2(21010 = 1024 posibles direcciones) = 1024 posibles direcciones)

¿Cuantas salidas¿Cuantas salidas?? 16 16 señales de control del camino de datosseñales de control del camino de datos 4 bits de estado4 bits de estado = = 20 lineas de salida20 lineas de salida

ROM de 2ROM de 21010 x 20bits = 20Kbits x 20bits = 20Kbits Problema: mucho desperdicio, ya que para Problema: mucho desperdicio, ya que para

muchisimas entradas, las salidas son idénticas.muchisimas entradas, las salidas son idénticas. Por ejemplo, el codígo de operación se ignora muchas Por ejemplo, el codígo de operación se ignora muchas

vecesveces

ImplementaImplementacciióónn con ROM con ROM

Page 46: Organización del Computador CPU 3 y 4 – Diseño de una computadora

ImplementaImplementación con PLAción con PLAOp5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

IorD

IRWrite

MemReadMemWrite

PCWritePCWriteCond

MemtoRegPCSource1

ALUOp1

ALUSrcB0ALUSrcARegWriteRegDstNS3NS2NS1NS0

ALUSrcB1ALUOp0

PCSource0

Page 47: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Se podrían hacer dos ROM:Se podrían hacer dos ROM:

— — 4 4 bits de estadobits de estado se usan como dirección de las palabras se usan como dirección de las palabras

de salida: de salida: 2 244 x 16 bits= 256bits x 16 bits= 256bits dede ROM ROM

— — 10 bits (6 opcode, 4 estado)10 bits (6 opcode, 4 estado) se usan como dirección para se usan como dirección para

la función de transición (nuevo estado): la función de transición (nuevo estado): 221010 x 4 bits de ROM x 4 bits de ROM

— Total: 4K bits de ROM— Total: 4K bits de ROM

PLA PLA es mas pequeñaes mas pequeña

— — puede compartir términos productopuede compartir términos producto

— — sólo utiliza las entradas que producen valores sólo utiliza las entradas que producen valores

— — puede considerar los “no importa”puede considerar los “no importa”

Tamaño Tamaño (#inputs (#inputs #product-terms) + (#outputs #product-terms) + (#outputs #product-terms) #product-terms) En el ejemploEn el ejemplo = (10x17)+(20x17) = 460 PLA cells = (10x17)+(20x17) = 460 PLA cells

Una celda de PLA es un poco mas grande que una de ROMUna celda de PLA es un poco mas grande que una de ROM

ROM vs PLAROM vs PLA

Page 48: Organización del Computador CPU 3 y 4 – Diseño de una computadora

MicroprograMicroprogramaciónmación

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

• La ROM es la memoria donde se guardan las instrucciones para el camino de datos (microinstrucciones)

• La dirección de la ROM (microPC) es el estado

Page 49: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Es una metodología de especificaciónEs una metodología de especificación Apropiada para arquitecturas con cientos de Apropiada para arquitecturas con cientos de

instrucciones, modos, etc.instrucciones, modos, etc. Las señales se especifican simbólicamente usando Las señales se especifican simbólicamente usando

microinstruccionesmicroinstrucciones Se define el formato de la microinstrucción, Se define el formato de la microinstrucción,

estructurado en campos.estructurado en campos. Luego cada campo se asocia a un conjunto de Luego cada campo se asocia a un conjunto de

señalesseñales

MicroprogramMicroprogramaciónación

Page 50: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Diseño de microinstruccionesDiseño de microinstrucciones

Diferentes señales agrupadas por camposDiferentes señales agrupadas por campos

CampoCampo FunciónFunción

Alu ControlAlu Control Que operación debe hacer la ALU en este cicloQue operación debe hacer la ALU en este ciclo

SRC1SRC1 Especifica el 1º operando de la ALUEspecifica el 1º operando de la ALU

SRC2SRC2 Especifica el 2º operando de la ALUEspecifica el 2º operando de la ALU

Register CtrlRegister Ctrl Especifica Lectura/Grabación de registros, y la fuente Especifica Lectura/Grabación de registros, y la fuente para la grabaciónpara la grabación

MemoriaMemoria Especifica Lectura/Grabación. En lectura el registro de Especifica Lectura/Grabación. En lectura el registro de destino destino

PCWriteCtrlPCWriteCtrl Especifica la grabación del PCEspecifica la grabación del PC

SecuenciaSecuencia Determina como elegir la proxima microinstrucciónDetermina como elegir la proxima microinstrucción

Page 51: Organización del Computador CPU 3 y 4 – Diseño de una computadora

Formato de Formato de MicroinstrucMicroinstruccciióónnField name Value Signals active Comment

Add ALUOp = 00 Cause the ALU to add.ALU control Subt ALUOp = 01 Cause the ALU to subtract; this implements the compare for

branches.Func code ALUOp = 10 Use the instruction's function code to determine ALU control.

SRC1 PC ALUSrcA = 0 Use the PC as the first ALU input.A ALUSrcA = 1 Register A is the first ALU input.B ALUSrcB = 00 Register B is the second ALU input.

SRC2 4 ALUSrcB = 01 Use 4 as the second ALU input.Extend ALUSrcB = 10 Use output of the sign extension unit as the second ALU input.Extshft ALUSrcB = 11 Use the output of the shift-by-two unit as the second ALU input.Read Read two registers using the rs and rt fields of the IR as the register

numbers and putting the data into registers A and B.Write ALU RegWrite, Write a register using the rd field of the IR as the register number and

Register RegDst = 1, the contents of the ALUOut as the data.control MemtoReg = 0

Write MDR RegWrite, Write a register using the rt field of the IR as the register number andRegDst = 0, the contents of the MDR as the data.MemtoReg = 1

Read PC MemRead, Read memory using the PC as address; write result into IR (and lorD = 0 the MDR).

Memory Read ALU MemRead, Read memory using the ALUOut as address; write result into MDR.lorD = 1

Write ALU MemWrite, Write memory using the ALUOut as address, contents of B as thelorD = 1 data.

ALU PCSource = 00 Write the output of the ALU into the PC.PCWrite

PC write control ALUOut-cond PCSource = 01, If the Zero output of the ALU is active, write the PC with the contentsPCWriteCond of the register ALUOut.

jump address PCSource = 10, Write the PC with the jump address from the instruction.PCWrite

Seq AddrCtl = 11 Choose the next microinstruction sequentially.Sequencing Fetch AddrCtl = 00 Go to the first microinstruction to begin a new instruction.

Dispatch 1 AddrCtl = 01 Dispatch using the ROM 1.Dispatch 2 AddrCtl = 10 Dispatch using the ROM 2.

Page 52: Organización del Computador CPU 3 y 4 – Diseño de una computadora

MicroprogramMicroprogramaciónación

Microprogramando!Microprogramando!

LabelALU

control SRC1 SRC2Register control Memory

PCWrite control Sequencing

Fetch Add PC 4 Read PC ALU SeqAdd PC Extshft Read Dispatch 1

Mem1 Add A Extend Dispatch 2LW2 Read ALU Seq

Write MDR FetchSW2 Write ALU FetchRformat1 Func code A B Seq

Write ALU FetchBEQ1 Subt A B ALUOut-cond FetchJUMP1 Jump address Fetch

Page 53: Organización del Computador CPU 3 y 4 – Diseño de una computadora

ReferenciasReferencias

Capitulo 5 - PattersonCapitulo 5 - PattersonVer resumen en sección DownloadVer resumen en sección Download

Capitulo 4 - TanembaunCapitulo 4 - TanembaunCapitulo 16 y 17 - StallingsCapitulo 16 y 17 - StallingsCapitulo 4 - NullCapitulo 4 - Null