DataPath and Controller Design - Es
DataPath and Controller Design - Es
• Implementación Genérica:
1
Machine Translated by Google
2
Machine Translated by Google
Implementación sencilla
Dirección de
instrucción
MemWrite
ordenador personal
Instrucción
Dirección Leer
memoria datos dieciséis 32
firmar
extender
Escribir Datos
datos memoria
una. Memoria de instrucciones b.Contador de programas c.sumador
ALUcontrol
5 Leer 3 MemRead
registro 1 Leer
5 datos 1 una. unidad de memoria de datos b. Unidad de extensión de letreros
Números Leer
de registro Cero
registro 2
Registros Datos ALU
5 Escribir resultado ALU
registro Leer ¿Por qué necesitamos estas cosas?
datos 2
Escribir
Datos
datos
RegWrite
3
Machine Translated by Google
• Vista abstracta/simplificada:
Datos
Registro #
ordenador personal Dirección Instrucción Registros ALU Dirección
Instrucción Registro #
memoria Datos
Registro # memoria
Datos
4
Machine Translated by Google
flanco descendente
flanco ascendente
5
Machine Translated by Google
31 26 25 21 20 16 15 11 10 sesenta y cinco 0
REGISTRO 1 REGISTRO 2
CARGAR DIRECCIÓN COMPENSAR
LW
31 26 25 21 20 16 15 11 10 sesenta y cinco 0
REGISTRO 1 REGISTRO 2
DIRECCIÓN DE LA TIENDA COMPENSAR
SUDOESTE
31 26 25 21 20 16 15 11 10 sesenta y cinco 0
REGISTRO 1 REGISTRO 2
DIRECCIÓN DE SUCURSAL COMPENSAR
EQB/BNE/J
31 26 25 21 20 16 15 11 10 sesenta y cinco 0
31 26 25 21 20 16 15 11 10 sesenta y cinco 0
REGISTRO 1 REGISTRO 2
DATOS INMEDIATOS
YO TECLEO
31 26 25 21 20 16 15 11 10 sesenta y cinco 0
SALTO
SALTO DIRECCIÓN
6
Machine Translated by Google
Agregar
múltiple
4 Añadir
resultado ALU
Desplazar a
la izquierda 2
Registros
Leer 3 operación ALU
MemWrite
Leer ALUSrc
registro 1
ordenador personal
Leer
dirección Leer datos 1 MemtoReg
registro 2 Cero
Instrucción ALU
Escribir Leer Leer
resultado ALU Dirección
registro datos 2 datos M
Memoria de
Escribir múltiple
instrucciones ux
datos
Escribir memoria de datos
RegWrite datos
dieciséis 32
firmar
MemRead
extender
7
Machine Translated by Google
Agregar
múltiple
ALU 0
4 Añadir
resultado
Desplazar a
RegWrite
la izquierda 2
datos 1
dirección Instrucción [20–16] Leer
ALUSrc MemtoReg
registro 2 Cero
Instrucción
1 Leer
1 ALU
[31–0] Escribir datos 2 Leer
resultado ALU Dirección 1
registro datos
Instrucción METRO
Instrucción [5–0]
ALUOP
8
Machine Translated by Google
• Compatibilidad con j y jr
– Para ambos, el valor de la PC debe provenir de otro lugar
9
Machine Translated by Google
LW: SUDOESTE:
Tipo R/I/S: Tipo BR: Tipo JMP:
INST
10
Machine Translated by Google
4
A METRO
D tu METRO
D AGREGAR X tu
Cambio X
Izquierda 2
Y
jmp
25-00
cero br
25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO
RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA
05-00
ALUOP Memreg
31-26
CONTROL
11
Machine Translated by Google
– usamos señales de escritura junto con el reloj para determinar cuándo escribir
Estado Estado
elemento 1 lógica combinacional elemento
2
Ciclo de reloj
12
Machine Translated by Google
Puntos de control
4
A METRO
D tu METRO
D AGREGAR X tu
Cambio X
Izquierda 2
Y
jmp
25-00
cero br
25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO
RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA
05-00
ALUOP Memreg
31-26
CONTROL
13
Machine Translated by Google
Operación de instrucción LW
4
A METRO
D tu METRO
D AGREGAR X tu
Cambio X
Izquierda 2
Y
jmp
25-00
cero br
25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO
RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA
05-00
ALUOP Memreg
31-26
CONTROL
14
Machine Translated by Google
Operación de instrucción SW
4
A METRO
D tu METRO
D AGREGAR X tu
Cambio X
Izquierda 2
Y
jmp
25-00
cero br
25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO
RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA
05-00
ALUOP Memreg
31-26
CONTROL
15
Machine Translated by Google
4
A METRO
D tu METRO
D AGREGAR X tu
Cambio X
Izquierda 2
Y
jmp
25-00
cero br
25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO
RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA
05-00
ALUOP Memreg
31-26
CONTROL
dieciséis
Machine Translated by Google
BR-Instrucción Operación
4
A METRO
D tu METRO
D AGREGAR X tu
Cambio X
Izquierda 2
Y
jmp
25-00
cero br
25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO
RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA
05-00
ALUOP Memreg
31-26
CONTROL
17
Machine Translated by Google
4
A METRO
D tu METRO
D AGREGAR X tu
Cambio X
Izquierda 2
Y
jmp
25-00
cero br
25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO
RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA
05-00
ALUOP Memreg
31-26
CONTROL
18
Machine Translated by Google
Control
• Ejemplo:
agregue $8, $17, $18 Formato de instrucción:
000000 10001 10010 01000 00000 100000
op rs rt rd funcion simulada
19
Machine Translated by Google
METRO
tu
X
Agregar 1
resultado ALU
Agregar
Desplazar a
la izquierda 2
RegDst
4 Rama
MemRead
ALUSrc
RegWrite
M
tu
instrucciones X tu
Instrucción [15– 11] Escribir X
1 X
datos 1
memoria de datos 0
Escribir
datos
dieciséis 32
Instrucción [15– 0] firmar
extender mando
ALU
Instrucción [5– 0]
Instrucción RegDst ALUSrc registro Escribe Leer Rama de escritura ALUOp1 ALUp0
formato R 0 0 0 0 0 0
lw 10 1 1 11 1 0 0 10 0
sudoeste
X 1 X 0 0 1 0 0 0
beq X 0 X 0 0 0 1 0 1
20
Machine Translated by Google
Control de ALU
•
35 2 1 100
op rs rt compensación de 16 bits
000 Y
001 O
010 agregar
110 sustraer
111 fijado en menos de
21
Machine Translated by Google
11 = Saltar
– código de función para aritmética
Implementación de Control
Entradas
Op5
op4
ALUOP Op3
Op2
bloque de control ALU
op1
ALUOp0 op0
ALUOp1
Salidas
formato R yo sudoeste
beq
Operación2 RegDst
F3
ALUSrc
Operación
F2 MemtoReg
Operación1
F(5–0)
RegWrite
F1
MemRead
Operación0
MemWrite
F0
Rama
ALUOp1
ALUOpO
23
Machine Translated by Google
24
Machine Translated by Google
25
Machine Translated by Google
Agregar
múltiple
4 Agregar
0
resultado ALU
Desplazar a
RegWrite
la izquierda 2
Instrucción [5– 0]
ALUOP
26
Machine Translated by Google
• Diseñe una ruta de datos para nuestra máquina especificada en las siguientes 3
diapositivas • Problemas de ciclo único:
– ¿Qué pasaría si tuviéramos una instrucción más complicada como punto
flotante? – desperdicio de área
• Una solución:
Registro de
instrucciones
Datos
ordenador personal Dirección
A
Registro #
Instrucción
Memoria o datos Registros ALU ALUSalida
Registro de Registro #
datos de B
Datos
memoria
Registro #
27
Machine Translated by Google
Especificación de la máquina
28
Machine Translated by Google
Instrucción
29
Machine Translated by Google
30
Machine Translated by Google
Actuación
organizacional subyacente
¿Por qué algunos hardware son mejores que otros para diferentes programas?
¿Qué factores del rendimiento del sistema están relacionados con el hardware?
(por ejemplo, ¿Necesitamos una nueva máquina o un nuevo sistema operativo?)
31
Machine Translated by Google
32
Machine Translated by Google
• Rendimiento
— ¿Cuántos trabajos puede ejecutar la máquina a la vez?
— ¿Cuál es la tasa de ejecución promedio?
- ¿Cuánto trabajo se está haciendo?
33
Machine Translated by Google
Tiempo de ejecución
• Tiempo transcurrido :
cuenta todo (accesos a disco y memoria, E/ S, etc.) : un número útil, pero a
menudo no es bueno para fines de comparación
• tiempo de CPU
– tiempo dedicado a ejecutar las líneas de código que están "en" nuestro programa
34
Machine Translated by Google
Ciclos de reloj
• Los “ticks” del reloj indican cuándo comenzar las actividades (una abstracción):
tiempo
• tiempo de ciclo = tiempo entre tics = segundos por ciclo • tasa de reloj
(frecuencia) = ciclos por segundo (1 Hz. = 1 ciclo/seg)
1
Una de 200Mhz. el reloj tiene un ´109 = 5 nanosegundos
Tiempo del ciclo
200 ´106
35
Machine Translated by Google
36
Machine Translated by Google
...
struc
ció
in
1an
instrucción
da
2 instrucción
ra
3 4to 5º 6º
tiempo
¿Por qué? pista: recuerde que estas son instrucciones de máquina, no líneas de código C
37
Machine Translated by Google
tiempo
• Las operaciones de punto flotante toman más tiempo que las de enteros
38
Machine Translated by Google
39
Machine Translated by Google
Actuación
40
Machine Translated by Google
# de instrucciones Ejemplo
41
Machine Translated by Google
Ejemplo de MIPS
• Se están probando dos compiladores diferentes para 100 MHz. máquina con
tres clases diferentes de instrucciones: Clase A, Clase B y Clase C, que
requieren uno, dos y tres ciclos (respectivamente). Ambos compiladores se
utilizan para producir código para una gran pieza de software.
42