Professional Documents
Culture Documents
Tema 4 (II)
El procesador
Estructura de Computadores
Grado en Ingeniería Informática
Contenidos
} Elementos de un computador
} Organización del procesador
} La unidad de control
} Ejecución de instrucciones
} Modos de ejecución
} Interrupciones
} Diseño de la unidad de control
} Arranque de un computador
} Prestaciones y paralelismo
2 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control
RI
CO
SR
Unidad de Señales de
Señales de Control control
interrupción
Señal de
reloj
3 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control
RI
CO
SR
Unidad de Señales de
Señales de Control control
interrupción Reloj
RA 00001
RC 00010
Señal de
T1
C1
C2
reloj
Td
L
SC
T3
4 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Diseño de la unidad de control
5 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Diseño de la unidad de control
6 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Diseño de la unidad de control
Instrucción mv R0 R1
RI <- [PC]
Secuencia de
PC++
operaciones
elementales decodificación
R0 <- R1
Secuencia de señales de
control por cada operación
elemental
7 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Diseño de la unidad de control
8 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Técnicas de control
9 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo
} Instrucciones a considerar:
} add Rd, Rf: Rd <- Rd + Rf
} lw Rd, dir: Rd <- MP[dir]
} sw Rf, dir: MP[dir] <- Rf
} bz R, dir: if (R==0) PC<- dir
10 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Máquina de estados para el ejemplo
Ejemplo para un computador
con solo 4 instruc. máquina
add rd, rf
lw rd, dir
sw Rf, dir
bz R, dir
11 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Técnicas de control
MAR PC
PC PC + 4
lectura
2
MBR MP
RI
R1 R1 + R2 3
CO = 11 AND z =0 CO
(bz)
RI MBR
CO = 00 Unidad de Señales de
(add) RE
CO = 01
(lw) CO = 10 CO = 11 AND z =1
Control control
4 5 8 11
(sw) (bz)
Señales de
R1 R1 + R2 MAR RI(direccion) MAR RI(direccion) PC RI(direccion) interrupción
6
lectura
9 Señal de
reloj
MBR MP MBR R1
7 escritura
10
R1 MBR MP MBR
12 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control cableada
13 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control almacenada.
Microprogramación
} Idea básica:
Emplear una memoria (memoria de control)
donde almacenar las señales de cada
ciclo de cada instrucción.
} Características:
} Fácil modificación
} Actualización, ampliación, etc..
} Ej.: Ciertas consolas, routers, etc.
} Fácil tener instrucciones complejas
} EJ.: Rutinas de diagnóstico, etc.
} Fácil tener varios juegos de instrucciones
} Se pueden emular otros computadores.
} HW simple Þ difícil microcódigo
14 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Estructura general de una unidad de
control microprogramada
RI
CO
Secuenciador de la
RE
memoria de control
Señales de
interrupción
Señal de
reloj
Memoria de RB4 Rb3 RB2 RB1 RB0 RC4 RC3 RC2 RC1 RC0 SC L E Cop3 Cop2 Cop1 Cop0
Control 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Microinstrucci\on
Señales de
control
15 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control almacenada.
Microinstrucciones
16 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control almacenada.
Microprograma
microcódigo
… …
microprograma
} Microprograma: conjunto ordenado de microinstrucciones, que
representan el cronograma de una instrucción máquina.
} Microcódigo: conjunto de los microprogramas de una máquina.
17 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Contenido de la memoria de control
18 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Estructura de la unidad de control
microprogramada
} Tres condiciones básicas:
1. Memoria de control suficiente para almacenar todos
los microprogramas correspondientes a todas las
instrucciones.
2. Procedimiento para asociar a cada instrucción su
microprograma
} Procedimiento que convierta el código de operación de la instrucción en la
dirección de la memoria de control donde empieza su microprograma.
} Dos alternativas:
1. Secuenciamiento explícito.
2. Secuenciamiento implícito.
19 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Estructura de UC microprogramada con
secuenciamiento explícito
20 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Estructura de UC microprogramada con
secuenciamiento explícito
21 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Estructura de U.C. microprogramada
con secuenciamiento implícito
22 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
23 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
µI0
µI1
CO ROM (co2µAddr) fetch
0 µAddr for 1st µI of µP 0 µIK (jump to µProg)
1 µAddr for 1st µI of µP 1
24 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
µI0
µI1
CO ROM (co2µAddr) fetch
0 µAddr for 1st µI of µP 0 µIK (jump to µProg)
1 µAddr for 1st µI of µP 1
25 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
µI0
µI1
CO ROM (co2µAddr) fetch
0 µAddr for 1st µI of µP 0 µIK (jump to µProg)
1 µAddr for 1st µI of µP 1
En el Registro de Instrucción el CO
26 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
µI0
µI0
CO ROM (co2µAddr) fetch
0 µAddr for 1st µI of µP 0 µIM (jump to µProg)
1 µAddr for 1st µI of µP 1
µI0
µP 1
µI1
µP 1
N µAddr for 1st µI of µP N
µIM (jump to fetch)
27 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
µI0
µI0
CO ROM (co2µAddr) fetch
0 µAddr for 1st µI of µP 0 µIM (jump to µProg)
1 µAddr for 1st µI of µP 1
µI0
µP 1
µI1
28 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
µI0
µI0
CO ROM (co2µAddr) fetch
0 µAddr for 1st µI of µP 0 µIM (jump to µProg)
1 µAddr for 1st µI of µP 1
µI0
µP 1
µI1
29 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de funcionamiento de una UC con
secuenciación impícito
Control Memory
µI0
µI0
CO ROM (co2µAddr) fetch
0 µAddr for 1st µI of µP 0 µIM (jump to µProg)
1 µAddr for 1st µI of µP 1
µI0
µP 1
µI1
30 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Formato de las microinstrucciones
} Formato de la microinstrucción:
especifica el nº de bits y el significado de cada uno de ellos.
31 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Máquina de estados del ejemplo
Ejemplo para un computador
con solo 4 instruc. máquina
add rd, rf
lw rd, dir
sw Rf, dir
bz R, dir
32 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microinstrucciones para el ejemplo
Ejemplo para un computador
con solo 4 instruc. máquina
add rd, rf
µfetch0 lw rd, dir
sw Rf, dir
µfetch1 bz R, dir
µfetch2
µlw1
µsw1 µbz1
µlw2
µsw2
33 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microdódigo para el ejemplo add r1, r2
lw r1, dir
bz dir
sw r1
34 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo de unidad de control
microprogramada para el ejemplo
A B
35 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control de WepSIM
36 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control de WepSIM
Instrucción no
existente
37 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control de WepSIM
µI0
µI1
fetch
µ0
0µI
ADD 1
38 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control de WepSIM
µI0
µI1
fetch
CO µAddr µ0
0µI
0 µDir de la 1ª µI del ADD ADD 1
1 µDir de la 1ª µI del LW
µIM (salto a fetch)
N µDir de la 1ª µI del µP N
39 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control A1 A0 Salida
0 0 Sig µDir
de WepSIM 0 1 Salto a µProg. (ROM)
1 0 µDir de salto
1 1 fetch
40 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Unidad de control de WepSIM
A0 B C3 C2 C1 C0 Acción
0 0 0 0 0 0 Siguiente µDirección
0 1 0 0 0 0 Salto incondicional a MADDR
0 0 0 0 0 1 Salto condicional a MADDR si INT = 1 (*)
µAddr
} B= 0 µDir 01
MUX A
ROM (co2µAddr)
} C = 0110 10
A B C
0
µAddr = 000100011100
11
} ( fetch) A0 A1
42 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo
} En la última µInstrucción del fetch saltar a la primera
µDirección del µPrograma asociado al código de
operación leído de memoria
} A0 = 1
+1 00
µAddr
} B= 0 µDir 01
MUX A
} C = 0000 ROM (co2µAddr) 10
0 11 C B A0
( fetch) A1 A0
43 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Formato de la microinstrucción
C0 .. C7 Carga en registros
SE Extensión de signo
BW Tamaño de operación en
memoria
R, W Operación de memoria
I Habilitar interrupciones
U Usuario/núcleo
44 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo
operaciones elementales con la UC
45 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Selector de registros
Data (IR)
32
Selecciona 5 bits de un
conjunto 5
de 32 bits desde la posición Selector Displ (SelA, SelB, SelC)
indicada
en Displ (bit inferior) 5
Output
46 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Selector de registros
Ejemplo
Data
32
5
Selector Displ Si Displ = 11011 → Output = D31D30D29D28D27
47 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Selector de registros
Data (IR)
Selecciona 5 bits de un 32
• Si MR = 1, RA se obtiene
conjunto directamente de la µInstrucción
de 32 bits desde la
posición indicada 5 • Si MR = 0, RA se obtiene de un
en Displ Selector Displ
campo de la instrucción (en IR)
Output
48 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Selector de registros
▶ Si el formato de una instrucción almacenada en IR es:
31 26 25 21 20 16 15 11 10 0
MR = 0
49 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Selección del código de operación de la ALU
50 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Código de excepción
51 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Ejemplo
* Memoria de un ciclo
52 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microprograma de las instrucciones
} FETCH
53 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microprograma de las instrucciones
54 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microprograma de las instrucciones (otra)
55 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microprograma de las instrucciones
} LI R, valor
Ciclo Op. Elemental Señales activadas C B A0
(resto a 0)
0 R ← IR (valor) LC 0000 1 1
SelC = 10101 (21)
T3,
Size = 10000
Offset= 00000
SE=1
6 bits 5 bits 5 bits 16 bits
56 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microprograma de las instrucciones
} LW R dir
Ciclo Op. Elemental Señales activadas C B A0
(resto a 0)
0 MAR ← IR (dir) T3, C0 0000 0 0
Size = 10000,
Offset= 00000
1 MBR ← MP[MAR] Ta, R, BW =11, C1, M1 0000 0 0
2 R ← MBR T1, LC, 0000 1 1
SelC = 10101
57 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microprograma de las instrucciones
} SW R dir
Ciclo Op. Elemental Señales activadas C B A0
(resto a 0)
0 MBR ← R T9, C1, SelA=10101 0000 0 0
1 MAR ← IR(dir) T3, C0, 0000 0 0
Size = 10000,
offset= 00000
58 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Microprograma de las instrucciones
} BEQ Rf1, Rf2, desp
Ciclo Op. Elemental Señales activadas C B A0
(resto a 0)
0 Rf1- Rf2 SelCop = 1011, MC, C7, M7 0000 0 0
SelP = 11, SelA = 10101
SelB = 10000
I1 If (Z == 0) goto fetch µAddr = 0 0110 1 0
else next
2 RT1 ←PC T2, C4 0000 0 0
3 RT2 ← IR (dir) Size = 10000 0000 0 0
Offset = 00000, T3,C5
4 PC ← RT1 +RT2 SelCop = 1010, MC, 0000 1 1
MA, MB=01, T6,C2,
6 bits 5 bits 5 bits 16 bits
} J dir
Ciclo Op. Elemental Señales activadas C B A0
(resto a 0)
0 PC ← IR (dir) C2, T3, 0000 1 1
size = 10000,
offset= 00000
60 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Especificación de los microprogramas en
WepSIM
Lista de microcódigos
especificación de registros
pseudoinstruciones
61 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Especificación de los microprogramas en
WepSIM
begin
{
fetch: (T2, C0=1),
(Ta, R, BW=11, C1, M1),
(M2, C2, T1, C3),
(A0, B=0, C=0)
}
62 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Especificación de los microprogramas en
WepSIM
ADD R1,R2, R3{
co=000000,
nwords=1,
R1=reg(25,21),
R2=reg(20,16),
R3=reg(15,11),
{
(SelCop=1010, MC, SelP=11, M7,C7, T6, LC,
SelA=01011, SelB=10000, SelC=10101,
A0=1, B=1, C=0)
}
}
63 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Especificación de los microprogramas en
WepSIM
BEQ R1, R2, desp{
etiqueta, representa
co=000100, µdirección de salto
nwords=1,
R1=reg(25,21),
R2=reg(20,16),
desp=address(15,0)rel,
{
(T8, C5),
(SELA=10101, SELB=10000, MC=1, SELCOP=1011, SELP=11, M7, C7),
(A0=0, B=1, C=110, MADDR=bck2ftch),
(T5, M7=0, C7),
(T2, C4),
(SE=1, OFFSET=0, SIZE=10000, T3, C5),
(MA=1, MB=1, MC=1, SELCOP=1010, T6, C2, A0=1, B=1, C=0),
bck2ftch: (T5, M7=0, C7),
(A0=1, B=1, C=0)
}
}
64 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Especificación de registros
registers{
0=$zero, 15=$t7,
1=$at, 16=$s0,
2=$v0, 17=$s1,
3=$v1, 18=$s2,
4=$a0, 19=$s3,
20=$s4,
5=$a1,
21=$s5,
6=$a2,
22=$s6,
7=$a3, 23=$s7,
8=$t0, 24=$t8,
9=$t1, 25=$t9,
10=$t2, 26=$k0,
11=$t3, 27=$k1,
12=$t4, 28=$gp,
29=$sp (stack_pointer),
13=$t5,
30=$fp,
14=$t6
31=$ra
}
65 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
66 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
67 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
C.S.O.
68 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
C.S.O.
69 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
C.S.O.
70 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
C.S.O.
71 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
C.S.O.
72 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Arranque del computador (1) ROM
resumen
C.S.O.
73 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Tiempo de ejecución de un programa
74 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Modelo de procesador basado en
camino de datos (sin bus interno)
PC Banco de
Memoria registros
Instrucciones
Memoria
Datos
+4
75 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Paralelismo a nivel de instrucción
76 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Segmentación de instrucciones
77 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Segmentación de instrucciones
sin pipeline
Tiempo
LI D LO EJ EO LI D LO EJ EO
78 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Segmentación de instrucciones
sin pipeline
Tiempo
LI D LO EJ EO LI D LO EJ EO
79 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Segmentación de instrucciones
con pipeline
Tiempo
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
80 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Superescalar
Tiempo
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
LI D LO EJ EO
81 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Multicore
82 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Multicore
http://wccftech.com/intel-knights-landing-detailed-16-gb-highbandwidth-ondie-memory-384-gb-ddr4-system-memory-support-8-billion-transistors/
83 ARCOS @ UC3M
Félix García-Carballeira, Alejandro Calderón Mateos
Grupo ARCOS
Universidad Carlos III de Madrid
Tema 4 (II)
El procesador
Estructura de Computadores
Grado en Ingeniería Informática