Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
octubre de 2011
ndice
ndice
4.1. Estructura funcional de un ordenador 4.2. El procesador
4.2.1. Organizacin bsica del procesador 4.2.2. Parmetros ms importantes del procesador
octubre de 2011 - 2
ndice
ndice
4.1. Estructura funcional de un ordenador 4.2. El procesador
4.2.1. Organizacin bsica del procesador 4.2.2. Parmetros ms importantes del procesador
octubre de 2011 - 3
Introduccin
Programa Conjunto de instrucciones que debe ejecutar el computador sobre los datos para procesarlos y obtener un resultado.
Tema 4: Introduccin a la Arquitectura octubre de 2011 - 4
Introduccin
PC
MUX
DIR A DIR B
UNIDAD de CONTROL
Cdigo operacin
MUX
DIR W
B
+2
MUX
A L U
MUX
Instrucciones de memoria
RUTA de DATOS
octubre de 2011 - 5
Introduccin
C.P.U.
M M A A R R
I E A
I I O O R W
J F B
K G C
MDR
octubre de 2011 - 6
Introduccin
C.P.U.
M M A A R R
DATOS
HILOS de CONTROL
FUND COM AM ENTO PUTA DOR S de ES
TARJETA de VDEO
I O R
I O W
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
PUERTOS de
E/S
DISCO
DURO
octubre de 2011 - 7
ndice
ndice
4.1. Estructura funcional de un ordenador 4.2. El procesador
4.2.1. Organizacin bsica del procesador 4.2.2. Parmetros ms importantes del procesador
octubre de 2011 - 8
4.2 El procesador
Introduccin
El procesador
Dispositivo digital encargado de llevar a cabo las operaciones indicadas por los programas software
Instruccin Conjunto de smbolos que representa una orden de operacin o tratamiento para el computador. Programa Conjunto ordenado de instrucciones que indican al computador una tarea completa. Puesto que todos sus componentes pueden ser incluidos en un circuito integrado (microchip) se habla normalmente de microprocesador. Existen multitud de ejemplos, siendo los productos de AMD e Intel los ms empleados en el mundo de los PCs.
octubre de 2011 - 9
4.2 El procesador
MUX
B +2 MUX
Data Write
A L U
MUX
IR
Instrucciones de memoria Datos de lectura de memoria Direccin Memoria de instrucciones Datos de escritura en memoria Direccin Memoria de Datos
octubre de 2011 - 10
4.2 El procesador
ID
SEALES DE CONTROL
CONTADOR de PROGRAMA
(PC) a MAR PC + 1
de MDR
octubre de 2011 - 11
4.2 El procesador
DIR B
N de registro a escribir A L U
DIR W Reg B
DataWrite
Dato a escribir
octubre de 2011 - 12
4.2 El procesador
PC MUX
DIR A DIR B
MUX
DIR W
B +2 MUX
Data Write
A L U
MUX
IR
Instrucciones de memoria Datos de lectura de memoria Direccin Memoria de instrucciones Datos de escritura en memoria Direccin Memoria de Datos
octubre de 2011 - 13
4.2 El procesador
MUX
Data Write
B +2 MUX
A L U
MUX
IR
Instrucciones de memoria Datos de lectura de memoria Direccin Memoria de instrucciones Datos de escritura en memoria Direccin Memoria de Datos
octubre de 2011 - 14
4.2 El procesador
MUX
DIR W
B +2 MUX
Data Write
A L U
MUX
Instrucciones de memoria
octubre de 2011 - 15
4.2 El procesador
Instrucciones aritmtico-lgicas:
Instrucciones de suma, resta, and, or, comparacin,
Instrucciones de control:
Instrucciones de salto condicional, subrutinas, vuelta de subrutinas, incondicional, llamadas a
Instrucciones de sistema:
Llamadas al SO, excepciones, interrupciones
octubre de 2011 - 16
4.2 El procesador
Los procesadores para PC de AMD e Intel tanto de 32 bits (IA-32) como de 64 bits (AMD64) son un caso curioso:
Al nivel ms bajo de programacin presentan un ISA CISC. Se implementan como si tuvieran un ISA RISC. Entre los pasos 1 y 2 se aade un nuevo paso en el que las instrucciones CISC son traducidas a instrucciones RISC.
octubre de 2011 - 17
4.2 El procesador
0001001100 add B, A (A=A+B) (Tipo: aritmtico lgica) 0001001110 store A, @Mem[1001010001] (Tipo: almacenam. en memoria) 0001010000
4.2 El procesador
Instr. Codificada 0000 00 1001010000 0001 01 00 11111101 0100 01 00 00000000 0010 00 1001010001
octubre de 2011 - 19
4.2 El procesador
ALU
8 bits
M M A R R
(10
zona datos
Banco de Registros
Bits)
I.D.
I O W
OP Data/Dir
I.R.
(16 bits)
O R
MDR
BUS de DIRECCIONES
BUS de DATOS
Seal de Reloj
BUS de CONTROL
octubre de 2011 - 20
4.2 El procesador
+2
A
M
1001010000 00000101
A M A R R
0001001000
B C D
0001001000
00000010
01010000
00010100
11111101
I.D.
. .
0001000100
I I O W
OP Data/Dir
O R
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 21
4.2 El procesador
+2
A
M 0
0 0 A 1 0 0 R 1 0 0 0 1001010000 00000101
0001001000
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I.D.
I I O W
OP Data/Dir
O R
00000010
01010000
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 22
4.2 El procesador
instruccin.
00000000 00000000 00000000
+2
A
M 0
0 0 A 1 0 0 R 1 0 0 0 1001010000 00000101
0001001010
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I I O W
0000 00 1001010000
O R
00000010
01010000
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 23
4.2 El procesador
instruccin.
00000000 00000000 00000000
+2
A
M 1
0000 0101 (5)
0 0 A 1 0 1 R 0 0 0 0 1001010000 00000101
0001001010
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I I O W
0000 00 1001010000
O R
00000101
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 24
4.2 El procesador
+2
A
M 0
0000 0101 (5)
0 0 A 1 0 0 R 1 0 1 0 1001010000 00000101
0001001010
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I.D.
I I O W
0000 00 1001010000
O R
00010100
11111101
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 25
4.2 El procesador
instruccin.
00000000 00000000 00000000
+2
A
M 0
0000 0101 (5)
0 0 A 1 0 0 R 1 0 1 0 1001010000 00000101
0001001100
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I I O W
0001 01 00 11111101
O R
00010100
11111101
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 26
4.2 El procesador
instruccin.
00000000 00000000 00000000
+2
A
M 0
0000 0101 (5) 1111 1101 (-3)
0 0 A 1 0 0 R 1 0 1 0 1001010000 00000101
0001001100
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I I O W
0001 01 00 11111101
O R
00010100
11111101
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 27
4.2 El procesador
+2
A
M 0
0000 0101 (5) 1111 1101 (-3)
0 0 A 1 0 0 R 1 1 0 0 1001010000 00000101
0001001100
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I.D.
I I O W
0001 01 00 11111101
O R
01000100
00000000
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 28
4.2 El procesador
instruccin.
00000000 00000000 00000000
+2
A
M 0
0000 0101 (5) 1111 1101 (-3)
0 0 A 1 0 0 R 1 1 0 0 1001010000 00000101
0001001110
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I.D.
I I O W
0100 01 00 00000000
O R
01000100
00000000
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 29
4.2 El procesador
+2
A
0001001110
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I I O W
0100 01 00 00000000
O R
01000100
00000000
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 30
4.2 El procesador
+2
A
M 0
0000 0010 (2) 1111 1101 (-3)
0 0 A 1 0 0 R 1 1 1 0 1001010000 00000101
0001001110
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I.D.
I I O W
0100 01 00 00000000
O R
00100010
01010001
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 31
4.2 El procesador
la instruccin.
00000000 00000000 00000000
+2
A
M 0
0000 0101 (5) 1111 1101 (-3)
0 0 A 1 0 0 R 1 1 1 0 1001010000 00000101
0001010000
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I I O W
0010 00 1001010001
O R
00100010
01010001
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 32
4.2 El procesador
+2
A
M 0
0000 0010 (2) 1111 1101 (-3)
0 0 A 1 0 1 R 0 0 0 1 1001010000 00000101
0001010000
B C D . .
0001001000
00000010
01010000
00010100
11111101
0001000100
I O W
0010 00 1001010001
O R
00000010
I.R.
BUS de DIRECCIONES
MDR
BUS de DATOS
BUS de CONTROL
octubre de 2011 - 33
4.2 El procesador
octubre de 2011 - 34
4.2 El procesador
Cada uno de dichos pasos se ejecuta en uno o varios ciclos de reloj (en nuestro ejemplo, slo en uno). Ejemplo 1: Para el procesador anterior en el que las instrucciones requieren 3 pasos para su ejecucin, cunto tiempo tardara en ejecutarse un programa con 10 M instrucciones si el procesador funciona a 2 GHz? Sol: 10106 inst 310106 = 30106 de ciclos. Dado que Tciclo = 1/(2109) = 510-10 seg. Tiempo = 30106 510-10 = 15 mseg.
Tema 4: Introduccin a la Arquitectura octubre de 2011 - 35
4.2 El procesador
Sol: 5x108 instr./seg 5 fases/instr. 1 ciclo/fase 2.5 GHz Ejemplo 3: Dado un procesador con una frecuencia de reloj de 2 GHz, sabiendo que cada instruccin requiere 5 ciclos para su ejecucin, cul es su frecuencia MIPS? Sol: 2x109 ciclos/seg. Cada instruccin tarda 5 ciclos (2/5)x109 instr./seg. 400 MIPS.
Tema 4: Introduccin a la Arquitectura octubre de 2011 - 36
4.2 El procesador
ndice
ndice
4.1. Estructura funcional de un ordenador 4.2. El procesador
4.2.1. Organizacin bsica del procesador 4.2.2. Parmetros ms importantes del procesador
octubre de 2011 - 38
Introduccin
Localidad Espacial: cuando se consulta un dato, seguramente otros cercanos sern consultados poco despus.
Traemos un libro del estante los libros que estn prximos versarn sobre el mismo tema. Ejemplo en programas: instrucciones (salvo por los saltos, se ejecutan secuencialmente tal como estn en memoria) y estructuras de datos como las tablas.
octubre de 2011 - 40
Memoria Secundaria
octubre de 2011 - 41
Consideracin: Las memorias ms rpidas son las ms caras por bit y por tanto suelen ser de menor capacidad.
octubre de 2011 - 42
Ejemplo: los procesadores actuales incluyen hasta 3 niveles de cach dentro del chip:
cach L1: 32KB-64KB (suele haber una para datos y otra para instrucciones), 2-4 ciclos de procesador de latencia. cach L2: 256KB-512KB, 10-15 ciclos de reloj de latencia. cach L3: 6MB-8MB, 40-50 ciclos de reloj de latencia.
Tema 4: Introduccin a la Arquitectura octubre de 2011 - 43
El procesador manda al controlador de cach la direccin de la palabra a buscar (por ejemplo, para un load). Caso de estar, el controlador de cach suministra al procesador la palabra solicitada.
octubre de 2011 - 44
CACH
M A R
TARJETA de VDEO
I I O O R W
MDR
octubre de 2011 - 45
Cul es el tamao mximo que podra tener la memoria principal en Bytes? Sol:
Puesto que se dispone de 10 bits para codificar las direcciones, el nmero mximo de direcciones (lo que limita el mximo de posiciones direccionables) es 210 = 1024 = 1K.
octubre de 2011 - 46
octubre de 2011 - 47
Ejemplo 3: Para la configuracin del sistema de memoria del ejercicio anterior, cmo se distribuyen los 10 bits de la direccin de memoria desde el punto de vista de la cach?
10 bits Etiqueta (4 bits) ndice (2 bits) Desplazam. (4 bits)
octubre de 2011 - 49
Datos
0 0 0
Lnea 1:
Lnea 2:
Lnea 3:
0000
octubre de 2011 - 50
00
ndice
1000
Despl.
Tras el fallo de cach, la cach deber traer 16 Bytes en bloque, en 4 accesos consecutivos a memoria principal, para rellenar de datos toda la lnea de cach 0 (suponemos bus de datos de 32 bits = 4 bytes por acceso) MEMORIA Principal
Ciclo 1:
0
1001010000
00000101
00000000
00000000
00000000
0000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 51
00
ndice
1000
Despl.
Se activa el bit de validez y se colocan los 4 bits ms significativos como etiqueta. La CPU toma los 16 bits de la instruccin load A, @Mem[...] (dirs. 0001001000 y 0001001001). MEMORIA Principal
Ciclo 1:
00100010 00010100
-
01010001 11111101
-
0001
00000010
-
0000
0
M
1001010000
00000101
00000000
00000000
00000000
0000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 52
Ciclo 3: Instruccin
load A, @Mem[1001010000]. El bit de validez provoca un fallo de cach. La cach deber traer el correspondiente bloque para rellenar toda la lnea de cach 1. MEMORIA Principal
01
ndice
0000
Despl.
00000000 00010100
-
01010001 11111101
-
0001
00000010
-
0
M
1001010000
00000101
00000000
00000000
00000000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 53
01
ndice
0000
Despl.
00000000 00010100
-
01010001 11111101
-
Se activa el bit de validez y se colocan los 4 bits ms significativos como etiqueta. La CPU toma los 8 bits del dato en 1001010000 (instruccin load A, @mem[1001010000]). MEMORIA Principal
0001
00000010
-
10 0 1
00000101
00000000
00000000
00000000
M
1001010000
00000101
00000000
00000000
00000000
0000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 54
00
ndice
1010
Despl.
00000000 00010100
-
01010001 11111101
-
0001
00000010
-
Acierto de Cach
El campo ndice busca en la lnea de cach 0 si el bit de validez = 1; Como es as compara los valores del campo etiqueta con los suyos propios, y como es as, los datos en la lnea de cach son los que se corresponden. (Dirs 0001001010 y 0001001011 instruccin load B, 11111101). MEMORIA Principal
M
1001010000
Ciclo 4:
1001
00000101
00000000
00000000
00000000
00000101
00000000
00000000
00000000
0000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 55
00
ndice
1100
Despl.
00000000 00010100
-
01010001 11111101
-
0001
00000010
-
Acierto de Cach
(Instruccin add B,A). Bit de validez = 1 en la lnea de cach 0, el campo etiqueta coincide con los cuatro bits ms significativos de la direccin los datos en la lnea 0 de cach son vlidos. Si el campo etiqueta no coincidiera, habra que hacer un reemplazo de la lnea de cach 0. MEMORIA Principal
M
1001010000
Ciclo 7:
1001
00000101
00000000
00000000
00000000
00000101
00000000
00000000
00000000
0000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 56
00
ndice
1110
Despl.
00000000 00010100
-
01010001 11111101
-
0001
00000010
-
Acierto de Cach
Bit de validez = 1 en la lnea de cach 0, el campo etiqueta coincide con los cuatro bits ms significativos de la direccin de memoria los datos en la lnea de cach 0 son vlidos. La CPU lee el byte con dirs. = 0001001110 y 0001001111 de la cach (instruccin store AL, @Mem[]). MEMORIA Principal
1001
00000101
00000000
00000000
00000000
M
1001010000
00000101
00000000
00000000
00000000
0000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 57
01
ndice
0001
Despl.
00000000 00010100
-
01010001 11111101
-
0001
00000010
-
Instruccin store AL, @Mem[1001010001] (escribir en direccin 1001010001). La CPU escribe el byte 0000000010 en cach. Se marcara con un bit de modificado la lnea de cach 1 para que cuando sea reemplazada no se machaque con la nueva entrada sino que previamente sea reescrito el bloque en memoria principal (poltica postescritura)
Ciclo 12:
1001
MEMORIA Principal
M
1001010000
Acierto de Cach
00000101
00000010
00000000
00000000
00000101
00000000
00000000
00000000
0000
A R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0000
0001000100
octubre de 2011 - 58
Bus de memoria
Conecta el controlador de memoria (antes fuera de la CPU, ahora ya habitualmente dentro) y los chips de memoria. Se divide en:
Bus de direcciones: parte encargada de enviar las direcciones de memoria (en algunos casos tambin las direcciones de puertos). Dependiendo de su ancho (en bits) se podr direccionar una determinada cantidad de memoria. Bus de datos: parte encargada de transmitir los datos. Cuanto ms ancho sea, ms datos pueden enviarse en cada ciclo de reloj. Bus de control: Hilos donde fluye la informacin de control para gobernar la lectura/escritura en memoria (IOW, IOR), seales de reloj (Clk), seales de sincronizacin, alimentacin (Vcc), tierra (ground)
octubre de 2011 - 59
Ms ejemplos en http://es.wikipedia.org/wiki/Double_Data_Rate
Tema 4: Introduccin a la Arquitectura octubre de 2011 - 60
Memoria secundaria
Tanto memorias cach como memoria principal son estructuras de memoria voltiles sus contenidos se pierden al apagar el ordenador. Programas y datos deberan ser guardados en memorias no voltiles para volver a usarlos con posteridad.
Las memorias secundarias (discos duros, DVDs, CDs, ) mantienen la informacin an cuando el ordenador est apagado.
Cuando ejecutamos un programa, este suele estar almacenado en el disco duro del ordenador y primero se carga en memoria RAM. De ah, las instrucciones se llevan a la cach conforme el procesador las va solicitando.
octubre de 2011 - 61
ndice
ndice
4.1. Estructura funcional de un ordenador 4.2. El procesador
4.2.1. Organizacin bsica del procesador 4.2.2. Parmetros ms importantes del procesador
octubre de 2011 - 62
Jerarqua de buses
Concepto de bus:
Canal de comunicacin compartido por varios dispositivos. De forma simplificada podra verse como un conjunto de lneas a las que se conectan los dispositivos y que permiten que la informacin escrita por un dispositivo pueda ser leda por el resto. En un instante determinado nicamente un dispositivo podra poner informacin sobre el bus. Adems, de todos los dispositivos conectados hay uno que acta como maestro de bus (tiene el control del bus y decide quin puede poner datos sobre el mismo).
La conexin de todos los componentes de un computador a travs de un nico bus plantea varios problemas:
Cuanto mayor es el nmero de dispositivos conectados, peor es el compartimiento temporal de las seales que viajan por el bus, lo que disminuye las prestaciones del mismo. El bus se convierte en un cuello de botella ya que todas las transferencias de informacin pasan a travs de l. El bus debe soportar elementos de velocidades muy dispares, lo que implica un diseo de bus poco ptimo.
octubre de 2011 - 63
Jerarqua de buses
Para resolver los problemas anteriores los computadores modernos implementan una jerarqua de buses
El bus de mayor velocidad es al que estara conectado el procesador y el bus inferior conectara dispositivos de entrada/salida lentos Los distintos buses se interconectan por medio de puentes (bridges)
Ejemplo:
En la prctica, la jerarqua de buses forma parte de una jerarqua de interconexin ms general dentro del computador.
Tema 4: Introduccin a la Arquitectura octubre de 2011 - 64