Sei sulla pagina 1di 28

ARQUITECTURA DE ORDENADORES Control de un Camino de Datos Monociclo

Arquitectura de ordenadores.Control monociclo.1

Visin general del tema


Seales de control Control para instrucciones tipo R y Or Immediato Seales de Control para Carga, almacenamiento y salto Construccin de un controlador local : Control ALU El controlador principal

Arquitectura de ordenadores.Control monociclo.2

Formato de instrucciones MIPS


Todas las instrucciones MIPS tienen 32 bits de longitud. Los tres formatos de instrucciones son: 31 26 21 16 11 6 Tipo-R
op rs 5 bits 26 op rs 5 bits 26 op 6 bits Direccin destino 26 bits 6 bits 31 21 rt 5 bits rt 5 bits 16 inmediato 16 bits 0 rd 5 bits shamt 5 bits 0 funcin 6 bits 0

Tipo-I Tipo-J

6 bits 31

Los campos son: op: Operacin de la instruccin. rs, rt, rd: Registros fuente y destino. shamt: Desplazamiento. funct: Selecciona las variantes de la operacin del campo op. direccin / immediato: Direccin de desplazamiento o valor inmediato. Direccin destino: direccin de destino en las instrucciones de salto.
Arquitectura de ordenadores.Control monociclo.3

EL subconjunto de instrucciones MIPS


ADD y SUB addU rd, rs, rt subU rd, rs, rt OR Immediato: ori rt, rs, imm16 LOAD y STORE Word lw rt, rs, imm16 sw rt, rs, imm16 SALTO: beq rs, rt, imm16
31 op 6 bits 31 op 6 bits 31 26 op 6 bits 31 op 6 bits 26 rs 5 bits 26 rs 5 bits 21 rs 5 bits 21 rt 5 bits 26 rs 5 bits 21 rt 5 bits 16 rt 5 bits 16 immediato 16 bits 21 rt 5 bits 16 immediato 16 bits 0 immediato 16 bits 0 16 rd 5 bits 11 shamt 5 bits 6 funct 6 bits 0 0

Arquitectura de ordenadores.Control monociclo.4

Operando destino
INSTRUCCIONES TIPO R El operando destino se encuentra en las posiciones 15-11 (campo rd)
31 26 21 16 11 op 6 bits rs 5 bits rt 5 bits rd 5 bits shamt 5 bits

6 funct 6 bits

INSTRUCCIN DE CARGA El registro destino se encuentra en las posiciones 20-16 (campo rt)
31 26 21 16 op 6 bits rs 5 bits rt 5 bits immediato 16 bits

Se necesir un multiplexor para seleccionar el campo de la instruccin que indique el nmero de registro donde se va a escribir

Arquitectura de ordenadores.Control monociclo.5

Un camino de datos monociclo

Add 4 Shift left 2 Instruction [25 21] PC Leer direccin Instruccin [31-0 ] Memoria de instrucciones Instruction [20 16]
Leer Registro 1 Leer Registro 2 Escribir Registro Lectura Dato 1

M u x Add ALU result

M u Instruction [15 11] x

Lectura Dato 2

Escribir dato REGISTROS

M u x

Zero ALU ALU result

Leer/escribir Direccin Lectura dato Escribir Dato

M u x

Instruction [15 0]

16

Sign 32 extend

Arquitectura de ordenadores.Control monociclo.6

Los cinco componentes clsicos de un ordenador


Procesador Entrada

CONTROL
Memoria Camino de datos

Salida

Diseo del control de un procesador monociclo

Arquitectura de ordenadores.Control monociclo.7

Un camino de datos monociclo ( Seales de control)


PCSrc

0
Add 4 RegWrite
Leer Registro 1 Leer Registro 2 Lectura Dato 1

Add Shift left 2

ALU result

M u x 1

Instruction [25 21] PC Leer direccin Instruccin [31-0 ] Memoria de instrucciones Instruction [20 16]

MemWrite ALUSrc Zero ALU ALU result MemtoReg


Leer/escribir Direccin Lectura dato Escribir Dato

0
M u Instruction [15 11] x 1 RegDst Instruction [15 0]

Escribir Registro

Lectura Dato 2

Escribir dato REGISTROS

0 M u x 1

1 M u x 0

16

Sign 32 extend

ALU control

MemRead

Instruction [5 0] ALUOp

Arquitectura de ordenadores.Control monociclo.8

Funcin de las seales de control


nombre de la seal Efecto con seal desasertada Efecto con seal asertada
El contenido de la memoria de datos de la direccin de lectura se pone en la salida Lect. dato El contenido de la memoria de datos de la direccin dada por la direccin de escritura es sustituido por el valor de en la entrada Escribir dato EL Segundo operando de la ALU est formado por los 16 bits inferiores de signo extendido de la instruccin El registro de la entrada Escribir registro se escribe con el valor en la entrada de Escribir dato. El registro en la entrada escribir registro se escribe con el valor de la entrada de Escribir registro El PC es sustituido por la salida del sumador que calcula el destino del salto El valor conectado a la entrada Escribir dato del registro proviene de la memoria de datos

MemRead MemWrite ALUSrc RegDst RegWrite PCSrc MemtoReg

Ninguno

Ninguno EL Segundo operando de la ALU proviene de la segunda salida del archivo de registros El n de registro destino para Escribir registro proviene del campo rt

Ninguno. El PC es sustituido por la salida del sumador que calcula el valor de PC+4. El valor conectado a la entrada Escribir dato del registro proviene de la ALU

Arquitectura de ordenadores.Control monociclo.9

Valores iniciales de las seales de control

instruccin

RegDst

ALUSrc

MentoReg

RegWrite

MemRead

MemWrite

Branch

Tipo R lw sw beq

1 0 x x

0 1 1 0

0 1 x x

1 1 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Arquitectura de ordenadores.Control monociclo.10

La instruccin Add
31 op 6 bits 26 rs 5 bits 21 rt 5 bits 16 rd 5 bits 11 shamt 5 bits 6 funct 6 bits 0

add

rd, rs, rt

mem[PC]

* Extraer la instruccin de memoria * Leer rs y rt. * Efectuar la operacin * Escribir rd * Calcula la direccin de la siguiente instruccin

R[rd] <- R[rs] + R[rt]

PC <- PC + 4
Arquitectura de ordenadores.Control monociclo.11

Extraccin de la instruccin y comienzo de Add


Extraccin de una instruccin de memoria: Instruccin <- mem[PC] Es lo mismo para todas las instrucciones
0 M u x A dd A dd R eg D st 4 B ra n c h M e m R e ad I n s tr u c tion [3 1 2 6 ] C o n t ro l M e m to Re g A LU O p M e m W r it e A L U S rc R e g W rite I n s tr u c tion [2 5 2 1 ] PC R ead a d d r es s I n s tr u c tion [2 0 1 6 ] In s t ru c tio n [3 1 0 ] In s t ru c tio n m e m o ry 0 M u x 1 Read r eg is te r 1 S h ift le ft 2 ALU res u lt 1 P C S rc

R e ad d a ta 1 Read r eg is te r 2 R e g is te rs R e a d W rite d a ta 2 r eg is te r W rite d a ta

Z er o A LU 0 M u x 1 W rite d a ta ALU r es u lt A d d re s s R e ad d a ta D a ta m em ory 1 M u x 0

I n s tr u c tion [1 5 1 1 ]

I n s tr u c tion [1 5 0 ]

16 S ig n e xte n d

32 A LU c o n tr ol

In s tru c tio n [5 0 ]

Arquitectura de ordenadores.Control monociclo.12

Fase de ejecucin: Lectura de los registros fuente


0 M u x Add A dd R eg D st 4 B ra nc h M e m R e ad In s tru c tion [31 2 6 ] C o n t ro l M e m to Re g A LU O p M e m W r it e A LU S rc R e g W rite In s tru c tion [25 2 1 ] PC R ead a d d re s s In s tru c tion [20 1 6 ] Ins t ru ctio n [31 0 ] In stru c tion m e m o ry In s tru c tion [15 1 1 ] 0 M u x 1 S h ift le ft 2 ALU res u lt 1

P C S rc

Read re g ister 1

R e ad d a ta 1 Read re g ister 2 R e g is te rs R e ad W rite d a ta 2 re g ister W rite data

Z er o ALU 0 M u x 1 W rite da ta ALU r es u lt A d d re s s R e ad da ta D a ta m e m or y 1 M u x 0

In s tru c tion [15 0 ]

16 S ig n e xte n d

32 A LU co n tr ol

Ins tru ctio n [5 0 ]

Arquitectura de ordenadores.Control monociclo.13

Fase de ejecucin: Operacin de la ALU


0 M u x Add ALU result Add 4 Instruction [31 26] RegDst Branch MemRead MemtoReg Control ALUOp MemWrite ALUSrc RegWrite Read register 1 Shift left 2 1

Instruction [25 21] PC Read address Instruction [310] Instruction memory Instruction [15 11] Instruction [20 16] 0 M u x 1

Read register 2 Registers Read Write data 2 register Write data

Read data 1 0 M u x 1 Zero ALU ALU result Read data Data memory

Address

Write data Instruction [15 0] 16 Sign extend 32 ALU control

1 M u x 0

Instruction [5 0]

Arquitectura de ordenadores.Control monociclo.14

Fase de final: Escritura del resultado


0 M u x ALU Add result Add 4 Instruction [31 26] RegDst Branch MemRead MemtoReg Control ALUOp MemWrite ALUSrc RegWrite Read register 1 Shift left 2 1

Instruction [25 21] PC Read address Instruction [310] Instruction memory Instruction [15 11] Instruction [20 16] 0 M u x 1

Read register 2 Registers Read Write data 2 register Write data

Read data 1 0 M u x 1 Zero ALU ALU result Read data Data memory

Address

Write data Instruction [15 0] 16 Sign extend 32 ALU control

1 M u x 0

Instruction [5 0]

Arquitectura de ordenadores.Control monociclo.15

Control
Instruccion<31:0> <21:25> <21:25> <16:20> <11:15> Memoria de instruc. <0:15>

Op Fun

Rt

Rs

Rd

Imm16

Control

PCsrc RegWr RegDst ExtOp ALUSrc ALUctr MemWr MemtoReg

Zero

CAMINO DE DATOS

Arquitectura de ordenadores.Control monociclo.16

Resumen de las seales de control


ENTRADA CONTROL ALU 000 001 010 110 111 FUNCIN AND OR SUMA RESTA INICIALIZAR SOBRE MENOR

31 Tipo-R Tipo-I Tipo-J op op op

26 rs rs

21 rt rt

16 rd

11 shamt

6 funct

0 add, sub ori, lw, sw, beq jump

inmediato Direccin destino

Arquitectura de ordenadores.Control monociclo.17

La codificacin de ALUop

func op 6 Control principal 6 ALUop 2 ALU Control (Local) ALUctr 3

En nuestro caso, ALUop tiene dos bits que representan: IInstrucciones tipo-R Instrucciones Tipo-I que requieren la ALU para realizar: - Suma y Resta

Arquitectura de ordenadores.Control monociclo.18

Decodificacin del campo Func


func op 6 Control Principal 6 ALUop 2 Control ALU (Local) ALUctr 3

Tipo-R ALUop (Symbolic) ALUop 31 Tipo-R op 26 rs Tipo-R 10 21 rt 16

lw Suma 00

sw Suma 00 11 rd

beq Resta 01 6 shamt funct 0

funct<5:0> 10 0000 10 0010 10 0100 10 0101 10 1010

Operacin Instruccion suma resta

ALUctr

ALUctr<2:0> 000 001

Operacin ALU and or suma resta


Inicializar sobre menor

ALU

and or Inicializar-sobre-menor

010 110 111

Arquitectura de ordenadores.Control monociclo.19

Tabla de verdad para ALUcrt


Tipo-R ALUop (Symbo.) ALUop Tipo-R 10 lw Suma 00 sw Suma 00 beq Resta 01
funct<5:0> Operacin Instruccion

10 0000 10 0010 10 0100 10 0101 10 1010

suma resta and or Inicializar-sobre-menor

ALUOp ALUOp1 ALUOp0

F5

F4

Cdigo funcin F3 F2

F1

F0

Entrada control ALU

0 X 1 1 1 1 1

0 1 X X X X X

X X X X X X X

X X X X X X X

X X 0 0 0 0 1

X X 0 0 1 1 0

X X 0 1 0 0 1

X X 0 0 0 1 0

010 110 010 110 000 001 111

Arquitectura de ordenadores.Control monociclo.20

Ecuacin lgica para ALUctr<2>


ALUop bit<1> bit<0> x 1 1 1 x x x 0 1 x 0 0 func bit<3> bit<2> bit<1> bit<0> x 1 1 x 0 0 ALUctr<2> 1 1 1

Esto hace que el valor de func<3> no influya

ALUctr<2> = ALUop<0> + ( ALUop<1> * !func<2> * func<1> * !func<0> )

Arquitectura de ordenadores.Control monociclo.21

El bloque de control de la ALU


func 6 ALUop 2 ALU Control (Local) ALUctr 3

ALUctr<2> = ALUop<0> + ( ALUop<1> * func<1> ) ALUctr<1> = !ALUop<0> + !func<2> ALUctr<0> = ( ALUop<1> * func<0> ) + ( ALUop<1> * func<3>)

Arquitectura de ordenadores.Control monociclo.22

Bloque de control de la ALU

Arquitectura de ordenadores.Control monociclo.23

La tabla de verdad del Control principal


op5 op4 op3 op2 op1 op0 RegDst ALUSrc M enToReg RegW rite M emRead M rite enW Branch ALUOp1 ALUOp2 Tipo-R 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 lw 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 sw 1 0 1 0 1 1 x 1 x 0 0 1 0 0 0 beq 0 0 0 1 0 0 x 0 x 0 0 0 1 0 1

Entradas

Salidas

Arquitectura de ordenadores.Control monociclo.24

Implementacin del Control Principal


op<5>

..
<0>

op<5>

..

op<5>

..

op<5>

..
<0>

<0>

<0>

R-tipo

lw

sw

beq

RegWrite ALUSrc RegDst MemtoReg MemWrite Branch MemRead

ALUop1 ALUop0
Arquitectura de ordenadores.Control monociclo.25

Limitaciones de la implementacin en un solo ciclo Todas las instrucciones tardan el mismo tiempo en ejecutarse. El tiempo de ejecucin viene definido por el tiempo que tarda en ejecutarse la instruccin ms lenta. La situacin se agrava si consideramos operaciones ms complejas Lo habitual es que slo haya un mdulo de memoria -> Ms de un ciclo para completar la instruccin

Arquitectura de ordenadores.Control monociclo.26

Resumen Camino de datos monociclo => CPI=1, ciclo => largo 5 pasos para el diseo de un procesador 1. Analizar el repertorio de instrucciones => requerimientos del camino de datos 2. Seleccionar el conjunto de elementos del camino de datos y establecer una metodologa de pulsos de reloj 3. Ensamblar el camino de datos teniendo en cuenta los requerimientos 4. Analizar la implementacin de cada instruccin para determinar los puntos de control que afectan a la transferencia entre registros. . 5. Ensamblar la lgica de control.

Arquitectura de ordenadores.Control monociclo.27

Resumen El control es la parte ms complicada MIPS hace que el control sea ms sencillo
Las instrucciones tienen el mismo tamao Los registros fuente estn siempre en el mismo lugar Los valores inmediatos tienen el mismo tamao y se encuentran en el mismo lugar Las operaciones son siempre entre registro o con valores inmediatos
Procesador Entrada Control Memoria Camino de datos Salida

Arquitectura de ordenadores.Control monociclo.28

Potrebbero piacerti anche