Download - Control Monociclo
-
7/22/2019 Control Monociclo
1/28
Arquitectura de ordenadores.Control monociclo.1
ARQUITECTURA DE ORDENADORES
Control de un Camino de DatosMonociclo
-
7/22/2019 Control Monociclo
2/28
Arquitectura de ordenadores.Control monociclo.2
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
-
7/22/2019 Control Monociclo
3/28
Arquitectura de ordenadores.Control monociclo.3
Formato de instrucciones MIPS
Todas las instrucciones MIPS tienen 32 bits de longitud. Los tresformatos de instrucciones son:
Tipo-R
Tipo-I
Tipo-J
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.
op Direccin destino
02631
6 bits 26 bits
op rs rt rd shamt funcin
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
op rs rt inmediato016212631
6 bits 16 bits5 bits5 bits
-
7/22/2019 Control Monociclo
4/28
Arquitectura de ordenadores.Control monociclo.4
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
op rs rt rd shamt funct
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
op rs rt immediato
016212631
6 bits 16 bits5 bits5 bits
op rs rt immediato
016212631
6 bits 16 bits5 bits5 bits
op rs rt immediato
016212631
6 bits 16 bits5 bits5 bits
-
7/22/2019 Control Monociclo
5/28
Arquitectura de ordenadores.Control monociclo.5
Operando destino
op rs rt rd shamt funct
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
op rs rt immediato
016212631
6 bits 16 bits5 bits5 bits
INSTRUCCIONES TIPO R
El operando destino se encuentra en las posiciones 15-11(campo rd)
INSTRUCCIN DE CARGA
El registro destino se encuentra en las posiciones 20-16
(campo rt)
Se necesir un multiplexor para seleccionar el campo de la instruccin que
indique el nmero de registro donde se va a escribir
-
7/22/2019 Control Monociclo
6/28
Arquitectura de ordenadores.Control monociclo.6
Un camino de datos monociclo
PCInstruction [2016]
Instruction [2521]
Add
4
16 32Instruction [150] Sign
extend
ALUresult
Zero
Mux
Mux
Mux
MuxInstruction [1511]
Shiftleft 2
ALU
Add ALUresult
Leer
direccin
Instruccin[31-0 ]
Memoria deinstrucciones
Leer
Registro 1
Leer
Registro 2
EscribirRegistro
Escribir
dato
Lectura
Dato 1
LecturaDato 2
REGISTROS
Leer/escribirDireccinLectura
dato
Escribir
Dato
-
7/22/2019 Control Monociclo
7/28
Arquitectura de ordenadores.Control monociclo.7
Los cinco componentes clsicos de un ordenador
Diseo del control de un procesador monociclo
CONTROL
Caminode datos
Memoria
ProcesadorEntrada
Salida
-
7/22/2019 Control Monociclo
8/28
Arquitectura de ordenadores.Control monociclo.8
Un camino de datos monociclo ( Seales de control)
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PCInstruction [2016]
Instruction [2521]
Add
Instruction [50]
RegWrite
4
16 32Instruction [150]
0
Sign
extend
ALUresult
Zero
Mux
1
1
Mux
0
1
Mux
0
1
Mux
0Instruction [1511]
ALU
control
Shiftleft 2
PCSrc
ALU
Add ALUresult
Leer
direccin
Instruccin[31-0 ]
Memoria deinstrucciones
Leer
Registro 1
Leer
Registro 2
EscribirRegistro
Escribir
dato
Lectura
Dato 1
LecturaDato 2
REGISTROS
Leer/escribirDireccinLectura
dato
Escribir
Dato
-
7/22/2019 Control Monociclo
9/28
Arquitectura de ordenadores.Control monociclo.9
nombre de laseal Efecto con seal desasertada Efecto con seal asertada
MemRead NingunoEl contenido de la memoria de datos de ladireccin de lectura se pone en la salida Lect. dato
MemWrite Ninguno
El contenido de la memoria de datos de la
direccin dada por la direccin de escritura essustituido por el valor de en la entrada Escribirdato
ALUSrcEL Segundo operando de la ALUproviene de la segunda salida delarchivo de registros
EL Segundo operando de la ALU est formado porlos 16 bits inferiores de signo extendido de lainstruccin
RegDst El n de registro destino para Escribirregistro proviene del campo rt El registro de la entrada Escribir registro seescribe con el valor en la entrada de Escribir dato.
RegWrite Ninguno.El registro en la entrada escribir registro se escribecon el valor de la entrada de Escribir registro
PCSrc
El PC es sustituido por la salida del
sumador que calcula el valor dePC+4.
El PC es sustituido por la salida del sumador quecalcula el destino del salto
MemtoRegEl valor conectado a la entradaEscribir dato del registro proviene dela ALU
El valor conectado a la entrada Escribir dato delregistro proviene de la memoria de datos
Funcin de las seales de control
-
7/22/2019 Control Monociclo
10/28
Arquitectura de ordenadores.Control monociclo.10
instruccin RegDst ALUSrc MentoReg RegWrite MemRead MemWrite Branch
Tipo R 1 0 0 1 0 0 0
lw 0 1 1 1 1 0 0
sw x 1 x 0 0 1 0
beq x 0 x 0 0 0 1
Valores iniciales de las seales de control
-
7/22/2019 Control Monociclo
11/28
Arquitectura de ordenadores.Control monociclo.11
La instruccin Add
add rd, rs, rt
mem[PC] * Extraer la instruccinde memoria
R[rd]
-
7/22/2019 Control Monociclo
12/28
Arquitectura de ordenadores.Control monociclo.12
Extraccin de la instruccin y comienzo de Add
Extraccin de una instruccin de memoria: Instruccin
-
7/22/2019 Control Monociclo
13/28
Arquitectura de ordenadores.Control monociclo.13
Fase de ejecucin: Lectura de los registros fuente
P C
Instruct ion
memory
R e a d
address
Instruct ion
[31 0]
Ins t ruction [20 16]
Inst ruction [25 21]
A dd
Inst ruct ion [5 0]
MemtoReg
A LUO p
MemWr i t e
RegWri te
M e m R e a d
Branch
RegDs t
A LUS rc
Inst ruction [31 26]
4
1 6 3 2Inst ruction [15 0]
0
0M
u
x
0
1
Cont rol
Ad d A LU
result
M
u
x
0
1
Regis ters
W rite
register
W rite
data
Read
data 1
Read
data 2
R e a d
register 1
R e a d
register 2
S ign
extend
M
u
x
1
A LU
resul t
Zero
P CS rc
Data
mem oryWrite
data
Read
dataM
u
x
1
Inst ruction [15 11]
A LU
cont rol
Shif t
left 2
A L U
Address
-
7/22/2019 Control Monociclo
14/28
-
7/22/2019 Control Monociclo
15/28
Arquitectura de ordenadores.Control monociclo.15
Fase de final: Escritura del resultado
PC
Instructionmemory
Readaddress
Instruction[310]
Instruction [20 16]
Instruction [25 21]
Add
Instruction [5 0]
MemtoReg
ALUOp
MemWrite
RegWrite
MemRead
Branch
RegDst
ALUSrc
Instruction [31 26]
4
16 32Instruction [15 0]
0
0Mux
0
1
ALUcontrol
Control
Shiftleft 2
Add ALUresult
Mux
0
1
RegistersWriteregister
Writedata
Readdata 1
Readdata 2
Read
register 1
Readregister 2
Signextend
Mux
1
ALUresult
Zero
Datamemory
Writedata
Readdata
Mux
1
Instruction [15 11]
ALU
Address
-
7/22/2019 Control Monociclo
16/28
Arquitectura de ordenadores.Control monociclo.16
Control
ALUctrRegDst ALUSrcExtOp MemtoRegMemWr Zero
Instruccion
Imm16RdRsRt
PCsrc
Memoriade instruc.
CAMINO DE DATOS
Control
Op
Fun
RegWr
-
7/22/2019 Control Monociclo
17/28
Arquitectura de ordenadores.Control monociclo.17
Resumen de las seales de control
op Direccin destino
op rs rt rd shamt funct
061116212631
op rs rt inmediatoTipo-RTipo-I
Tipo-J
add, subori, lw, sw, beq
jump
ENTRADA CONTROL ALU FUNCIN000 AND001 OR010 SUMA110 RESTA
111 INICIALIZAR SOBRE MENOR
-
7/22/2019 Control Monociclo
18/28
Arquitectura de ordenadores.Control monociclo.18
La codificacin de ALUop
En nuestro caso, ALUop tiene dos bits que representan:
IInstrucciones tipo-R
Instrucciones Tipo-I que requieren la ALU para realizar:
- Suma y Resta
Control
principal
op
6
ALUControl(Local)
func
2
6
ALUop
ALUctr
3
-
7/22/2019 Control Monociclo
19/28
Arquitectura de ordenadores.Control monociclo.19
Decodificacin del campo Func
Tipo-R lw sw beq
ALUop (Symbolic) Tipo-R Suma Suma Resta
ALUop 10 00 00 01
ControlPrincipal
op
6
ControlALU
(Local)
func
2
6ALUop
ALUctr
3
op rs rt rd shamt funct
061116212631
Tipo-R
ALUctr
ALU
funct Operacin Instruccion
10 0000
10 0010
10 0100
10 0101
10 1010
suma
resta
and
or
Inicializar-sobre-menor
ALUctr Operacin ALU
000
001
010
110
111
or
suma
resta
Inicializar sobre menor
and
-
7/22/2019 Control Monociclo
20/28
Arquitectura de ordenadores.Control monociclo.20
Tabla de verdad para ALUcrt
Tipo-R lw sw beqALUop (Symbo.) Tipo-R Suma Suma Resta
ALUop 10 00 00 01
funct Operacin Instruccion10 0000
10 0010
10 0100
10 0101
10 1010
suma
resta
and
or
Inicializar-sobre-menor
ALUOp Cdigo funcinALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
Entrada controlALU
0 0 X X X X X X 010
X 1 X X X X X X 110
1 X X X 0 0 0 0 010
1 X X X 0 0 1 0 110
1 X X X 0 1 0 0 0001 X X X 0 1 0 1 001
1 X X X 1 0 1 0 111
-
7/22/2019 Control Monociclo
21/28
Arquitectura de ordenadores.Control monociclo.21
Ecuacin lgica para ALUctr
ALUop funcbit bit bit bit bitbit ALUctr
x 1 x x x x 1
1 x 0 0 1 0 1
1 x 1 0 1 0 1
ALUctr = ALUop +
( ALUop * !func * func * !func )
Esto hace que el valor de func no influya
-
7/22/2019 Control Monociclo
22/28
Arquitectura de ordenadores.Control monociclo.22
El bloque de control de la ALU
ALUControl(Local)
func
2
6ALUop
ALUctr
3
ALUctr = ALUop + ( ALUop * func )
ALUctr = !ALUop + !func
ALUctr = ( ALUop * func ) + ( ALUop * func)
-
7/22/2019 Control Monociclo
23/28
Arquitectura de ordenadores.Control monociclo.23
Bloque de control de la ALU
-
7/22/2019 Control Monociclo
24/28
Arquitectura de ordenadores.Control monociclo.24
La tabla de verdad del Control principal
Tipo-R lw sw beqop5 0 1 1 0
op4 0 0 0 0
op3 0 0 1 0
op2 0 0 0 1
op1 0 1 1 0
Entradas
op0 0 1 1 0
RegDst 1 0 x x
ALUSrc 0 1 1 0
MenToReg 0 1 x x
RegWrite 1 1 0 0
MemRead 0 1 0 0
MenWrite 0 0 1 0
Branch 0 0 0 1ALUOp1 1 0 0 0
Salidas
ALUOp2 0 0 0 1
-
7/22/2019 Control Monociclo
25/28
Arquitectura de ordenadores.Control monociclo.25
Implementacin del Control Principal
. . . .op
.op
.op
.op
.
R-tipo lw sw beqRegWrite
ALUSrc
MemtoReg
MemWrite
Branch
RegDst
MemRead
ALUop1
ALUop0
-
7/22/2019 Control Monociclo
26/28
Arquitectura de ordenadores.Control monociclo.26
Limitaciones de la implementacin en un solo ciclo
Todas las instrucciones tardan el mismo tiempo enejecutarse.
El tiempo de ejecucin viene definido por el tiempoque tarda en ejecutarse la instruccin ms lenta.
La situacin se agrava si consideramos operaciones
ms complejasLo habitual es que slo haya un mdulo de memoria ->Ms de un ciclo para completar la instruccin
-
7/22/2019 Control Monociclo
27/28
Arquitectura de ordenadores.Control monociclo.27
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 losrequerimientos
4. Analizar la implementacin de cada instruccin paradeterminar los puntos de control que afectan a la
transferencia entre registros. . 5. Ensamblar la lgica de control.
Resumen
-
7/22/2019 Control Monociclo
28/28
Arquitectura de ordenadores.Control monociclo.28
Resumen
El control es la parte ms complicada
MIPS hace que el control sea ms sencilloLas instrucciones tienen el mismo tamao
Los registros fuente estn siempre en el mismo lugar
Los valores inmediatos tienen el mismo tamao y se encuentran enel mismo lugar
Las operaciones son siempre entre registro o con valores
inmediatos
Control
Camino dedatos
Memoria
ProcesadorEntrada
Salida