Download Tema 4 - Departamento de Ingeniería y Tecnología de Computadores

Document related concepts
no text concepts found
Transcript
Tema 4. Introducción a la Arquitectura
de Computadores
Departamento de Ingeniería y
Tecnología de Computadores
octubre de 2011
Índice
Índice
4.1. Estructura funcional de un ordenador
4.2. El procesador
4.2.1. Organización básica del procesador
4.2.2. Parámetros más importantes del procesador
4.3. Organización del subsistema de memoria
4.3.1.
4.3.2.
4.3.3.
4.3.4.
Concepto de jerarquía de memoria
¿Qué es una memoria cachè?
La memoria principal y sus parámetros fundamentales
Memoria secundaria
4.4. Interconexión y dispositivos de E/S de un ordenador
4.4.1. Jerarquía de buses
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 2
Índice
Índice
4.1. Estructura funcional de un ordenador
4.2. El procesador
4.2.1. Organización básica del procesador
4.2.2. Parámetros más importantes del procesador
4.3. Organización del subsistema de memoria
4.3.1.
4.3.2.
4.3.3.
4.3.4.
Concepto de jerarquía de memoria
¿Qué es una memoria cachè?
La memoria principal y sus parámetros fundamentales
Memoria secundaria
4.4. Interconexión y dispositivos de E/S de un ordenador
4.4.1. Jerarquía de buses
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 3
4.1 Estructura funcional de un ordenador
Introducción
Estructura funcional de un ordenador
• Ordenador ≡ Máquina que procesa información y produce
unos resultados.
– La información a procesar puede:
• Estar almacenada previamente en el computador.
• Ser introducida desde el exterior.
– Los resultados producidos:
• Se almacenan en el propio computador.
• Se saca al exterior.
Datos
Dispositivos
de entrada
Resultados
Procesador
Dispositivos
de salida
• Programa ≡ Conjunto de instrucciones que debe ejecutar el
computador sobre los datos para procesarlos y obtener un
resultado.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 4
4.1 Estructura funcional de un ordenador
Introducción
Estructura funcional de un ordenador
•
Tradicionalmente, los computadores se dividen en 3 bloques:
1. Procesador o CPU (Central Processing Unit): Encargado de la ejecución
de las instrucciones. Se divide a su vez en:
•
•
Unidad de control:
– Busca las instrucciones de la memoria.
– Decodifica las instrucciones que se van a ejecutar.
– Genera los valores de las señales (señales de control) que dicen lo que
hay que hacer para la ejecución de las instrucciones.
Camino de datos: unidades funcionales que realizan las operaciones de las
instrucciones.
U.C
Hacia todos los
componentes
PC
MUX
UNIDAD de
CONTROL
MUX
DIR A
DIR B
A
DIR W
B
A
L
U
+2
MUX
Código
operación
Instrucciones de
memoria
MUX
Datos de lectura de
memoria
Dirección
Memoria de
instrucciones
Tema 4: Introducción a la Arquitectura …
Datos de escritura
en memoria
Dirección
Memoria
de Datos
RUTA de
DATOS
octubre de 2011 - 5
4.1 Estructura funcional de un ordenador
Introducción
4.1 Estructura funcional de un ordenador
2.- Memoria:
•
•
•
•
Almacena los datos e instrucciones de los programas activos.
Conceptualmente, gran estructura dividida en posiciones, cada una con una
dirección única.
En realidad, la memoria se organiza como una jerarquía con varios niveles,
cada uno con características diferenciadas (ver más adelante).
Para leer hay que indicar la dirección de memoria (MAR, Memory Address
Register) y activar IOR., para escribir, además de la dirección, hay que
proporcionar el dato (MDR, Memory Data Register) y activar IOW.
C.P.U.
…
M
M
A
A
R
R
…
DIRECCIONES
De MEMORIA
…
I I
O O
R W
I
J
K
L
E
F
G
H
A
B
C
D
I
J
K
L
DATOS
HILOS de CONTROL
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 6
4.1 Estructura funcional de un ordenador
Introducción
Estructura funcional de un ordenador
3.- Interconexión y dispositivos de Entrada/Salida:
•
•
Dispositivos usados para interaccionar con el usuario del computador
(teclado, monitor, ratón, impresora, tarjeta de red, …). Se gobiernan por
direcciones de puerto ≠ Direcciones de memoria.
Interconexiones entre los distintos componentes del ordenador (bus PCI,
bus de memoria, …).
C.P.U.
DIRECCIONES
De MEMORIA
DIRECCIONES
De PUERTOS
…
M
M
A
A
R
R
…
DATOS
…
I
O
R
I
O
W
I
J
K
L
E
F
G
H
A
B
C
D
I
J
K
L
HILOS de CONTROL
FUND
COM AM ENTO
PUTA
DOR S de
ES
TARJETA de
VÍDEO
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
PUERTOS de
E/S
DISCO
DURO
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 7
Índice
Índice
4.1. Estructura funcional de un ordenador
4.2. El procesador
4.2.1. Organización básica del procesador
4.2.2. Parámetros más importantes del procesador
4.3. Organización del subsistema de memoria
4.3.1.
4.3.2.
4.3.3.
4.3.4.
Concepto de jerarquía de memoria
¿Qué es una memoria cachè?
La memoria principal y sus parámetros fundamentales
Memoria secundaria
4.4. Interconexión y dispositivos de E/S de un ordenador
4.4.1. Jerarquía de buses
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 8
4.2 El procesador
Introducción
El procesador
• Dispositivo digital encargado de llevar a cabo las operaciones
indicadas por los programas software
– Instrucción ≡ Conjunto de símbolos que representa una orden de
operación 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 más empleados en el mundo de los PCs.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 9
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Dividido en unidad de control y camino de datos.
• La unidad de control es la parte “activa” del procesador, puesto que
es la encargada de buscar las instrucciones de la memoria y ordenar
su ejecución al camino de datos.
• La unidad de control se comunica con el camino de datos a través de
las señales de control.
ID
Código
operación
Hacia todos
los
componentes
PC
MUX
MUX
DIR A
DIR B
A
DIR W
B
A
L
U
Data Write
MUX
+2
MUX
IR
Instrucciones de
memoria
Datos de lectura de
memoria
Dirección
Memoria de
instrucciones
Datos de escritura
en memoria
Tema 4: Introducción a la Arquitectura …
Dirección
Memoria
de Datos
octubre de 2011 - 10
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• De forma simplificada, la unidad de control dispone de los siguientes
elementos:
– Registro Contador de Programa o PC (Program Counter): almacena la dirección de
memoria de la siguiente instrucción a ejecutar.
– Registro de Instrucción o IR (Instruction Register): almacena la instrucción a
ejecutar. El código de operación (Op. CODE) indica la instrucción a ejecutar.
– Decodificador de instrucciones o ID (Instruction Decoder): genera los valores de las
señales de control para la ejecución de cada instrucción
– Reloj o generador de pulsos: marca el ritmo al cual se llevan a cabo las operaciones
dentro del procesador.
• Tiempo de ciclo: periodo de esta señal.
• Frecuencia de reloj (en GHz o miles de millones de ciclos por segundo) =
inversa del tiempo de ciclo.
Señal de reloj (CLK)
SEÑALES DE CONTROL
ID
CONTADOR de PROGRAMA
(PC)
a MAR
PC + 1
Op. CODE OPERANDOS REGISTRO de INSTRUCCIÓN (IR)
de MDR
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 11
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Por su parte, dentro del camino de datos estaría:
– Unidad aritmético-lógica o ALU (Arithmetic-Logic Unit): encargada de la
realización de operaciones aritméticas sobre números enteros y las
operaciones lógicas.
– Unidad de coma flotante o FPU (Floating-Point Unit): realiza las operaciones
aritméticas con operando de punto flotante.
– Banco de registros:
• Estructura que aglutina un número pequeño de registros .
• Cada registro contiene un dato que puede ser operado por la ALU o FPU.
• Para leer un registro hay que indicar el número del registro a leer y se obtiene
su contenido (puerto de lectura).
• Para escribir un registro hay que indicar el número de registro a escribir y el
dato (puerto de escritura (DataWrite)).
• 2 Bancos de registros separados para enteros (registros de propósito general) y
punto flotante.
Nº de registro a leer por A
DIR A
Reg A
F
P
U
Nº de registro a leer por B
Nº de registro a escribir
DIR B
DIR W
Reg B
A
L
U
Dato leído por
puerto A
Dato leído por
puerto B
DataWrite
Dato a escribir
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 12
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
•
Pasos para la ejecución de una instrucción:
1. Búsqueda de la instrucción e incremento del PC:
•
•
Se lee la posición de memoria cuya dirección aparece en el registro
contador de programa (PC) y el valor leído se almacena en el
registro de instrucción (IR).
Se incrementa el PC en 2 (en esta arquitectura de ejemplo, las
instrucciones son todas de 2 Bytes) para que contenga la dirección
de la siguiente instrucción a ejecutar:
I.D.
Código de
operación
Hacia todos
los
componentes
PC
MUX
MUX
DIR A
DIR B
A
DIR W
B
A
L
U
Data Write
+2
MUX
MUX
IR
Instrucciones de
memoria
Datos de lectura de
memoria
Dirección
Memoria de
instrucciones
Tema 4: Introducción a la Arquitectura …
Datos de escritura
en memoria
Dirección
Memoria
de Datos
octubre de 2011 - 13
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
2. Decodificación de la instrucción:
•
El decodificador de instrucciones toma los bits del registro IR que
identifican a la instrucción (código de operación).
En función del valor de dichos bits, genera los valores apropiados
para las señales de control.
•
I.D.
Hacia todos los
componentes
Código
operación
PC
MUX
DIR A
DIR B
MUX
A
DIR W
Data Write
A
L
U
B
+2
MUX
MUX
IR
Instrucciones de
memoria
Datos de lectura de
memoria
Dirección
Memoria de
instrucciones
Tema 4: Introducción a la Arquitectura …
Datos de escritura en
memoria
Dirección
Memoria de
Datos
octubre de 2011 - 14
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
3. Ejecución de la instrucción:
• Las unidades del camino de datos realizan las operaciones
indicadas por la unidad de control mediante las señales de
control.
– Por ejemplo, la ALU podría tener que llevar a cabo una operación de
suma, se leerían operandos del banco de registros y escribirían resultados
en el mismo …
U.C.
Código
operación
Hacia todos
los
componentes
PC
MUX
MUX
DIR A
DIR B
A
DIR W
B
A
L
U
Data Write
+2
MUX
MUX
Instrucciones de
memoria
Datos de lectura de
memoria
Dirección
Memoria de
instrucciones
Tema 4: Introducción a la Arquitectura …
Datos de escritura
en memoria
Dirección
Memoria
de Datos
octubre de 2011 - 15
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• La arquitectura del repertorio de instrucciones (o ISA de
Instruction Set Architecture) es la interfaz entre la circuitería
y el nivel más bajo de programación.
• Entre otros aspectos, determina las instrucciones que el
procesador puede ejecutar.
• Podemos agrupar las instrucciones de un ISA en:
– Instrucciones de transferencia de datos entre procesador y memoria:
• Las instrucciones de carga (load) copian el contenido de la posición
de memoria especificada por la instrucción en un registro del
procesador. Las de almacenamiento (store) hacen lo contrario.
– Instrucciones aritmético-lógicas:
• Instrucciones de suma, resta, and, or, comparación, …
– Instrucciones de control:
• Instrucciones de salto condicional,
subrutinas, vuelta de subrutinas, …
incondicional,
llamadas
a
– Instrucciones de punto flotante:
• Instrucciones de suma, resta, multiplicación, división,… en punto
flotante.
– Instrucciones de sistema:
• Llamadas al SO, excepciones, interrupciones…
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 16
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Durante los años 70 se popularizaron ISAs con
muchas instrucciones (mas de 200 en algunos
casos).
– Complex Instrucion Set Computer (CISC).
• Posteriormente se constató que era preferible (para poder obtener
implementaciones de alto rendimiento) ISAs con pocas instrucciones
(menos de 100), sencillas y que se puedan ejecutar rápidamente.
– Reduced Instruction Set Computer (RISC)
• A día de hoy todos los procesadores se construyen basados en la
filosofía RISC.
• 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 más bajo de programación presentan un ISA CISC.
– Se implementan como si tuvieran un ISA RISC.
– Entre los pasos 1 y 2 se añade un nuevo paso en el que las
instrucciones CISC son traducidas a instrucciones RISC.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 17
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Seguiremos, paso a paso, la ejecución de un trozo de
programa de 4 instrucciones:
– 4 Instrucciones, a 3 pasos cada una, 4*3=12 pasos (12 ciclos).
– Supondremos una memoria de 1024 bytes (10 bits de dirección),
registros A, B, C, D, … de 8 bits, e instrucciones de 16 bits (2 bytes).
Dirección
(10 bits)
Instrucción decodificada
Instr. Codificada
(2 bytes)
0001001000
load A, @Mem[1001010000]
(Tipo: carga de memoria)
00000010 01010000
0001001010
load B, 11111101
(Tipo: carga de valor inmediato)
00010100 11111101
0001001100 add B, A
(A=A+B)
(Tipo: aritmético lógica)
01000100 00000000
0001001110 store A, @Mem[1001010001]
(Tipo: almacenam. en memoria)
00100010 01010001
0001010000
…
Tema 4: Introducción a la Arquitectura …
…
octubre de 2011 - 18
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
1. Formato load de memoria: 4 bits código operación (0000) + 2 bits
registro destino (A=00, B=01, C=10, …) + 10 bits dirección memoria.
2. Formato load valor inmediato: 4 bits código operación (0001) + 2 bits
registro destino + 2 bits vacíos + 8 bits valor inmediato.
3. Formato add: 4 bits código operación (0100) + 2 bits registro fuente
+ 2 bits registro destino + 8 bits vacíos.
4. Formato store: 4 bits código operación (0010) + 2 bits registro
fuente + 10 bits dirección memoria.
Instrucción decodificada
Instr. Codificada
1
load A, @Mem[1001010000]
(Tipo: carga de memoria)
0000 00 1001010000
2
load B, 11111101
(Tipo: carga de valor inmediato)
0001 01 00 11111101
3
add B, A
(A=A+B)
(Tipo: aritmético lógica)
0100 01 00 00000000
4
store A, @Mem[1001010001]
(Tipo: almacenam. en memoria)
0010 00 1001010001
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 19
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Estructura general del procesador y
memoria:
ALU
+2
A
Reg. PC
← 8 bits →
B
(10 bits)
A
MEMORIA
PRINCIPAL
(10
D
Banco de
—
.
.
Registros
Bits)
zona
instrucciones
I
OP Data/Dir
———
zona
datos
M
M
R
R
C
I.D.
———
O
R
I
O
W
I.R.
MDR
(16 bits)
BUS de DIRECCIONES
BUS de DATOS
Señal de
Reloj
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 20
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Inicialmente
———
———
00000101
00000000
M
+2
1001010000
0001001000
00000000
A
A
M
…
B
A
R
R
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
C
D
—
.
.
I.D.
00000000
———
0001000100
———
I
OP Data/Dir
O
R
———
I
O
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 21
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 1º Búsqueda de la
instrucción e incremento del PC
———
———
00000101
00000000
M
0
+2
0
0
A
1
0
0
R
1
0
0
0
A
B
0001001000
C
D
—
.
.
I.D.
———
1001010000
00000000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
———
I
OP Data/Dir
O
R
———
I
O
00000010
01010000
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 22
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 2º, Decodificación de la
instrucción.
———
———
00000101
00000000
M
0
+2
0
0
A
1
0
0
R
1
0
0
0
A
B
0001001010
C
D
load A, I.D.
@Mem[1001010000]
—
.
.
———
1001010000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
———
I
0000 00 1001010000
00000000
O
R
———
I
O
00000010
01010000
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 23
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 3º Ejecución de la
instrucción.
———
———
00000101
00000000
M
1
+2
A
0000 0101 (5)
B
0001001010
C
D
load A, I.D.
@Mem[1001010000]
—
.
.
———
0
0
A
1
0
1
R
0
0
0
0
1001010000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
———
I
0000 00 1001010000
00000000
O
R
I.R.
———
I
O
00000101
W
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 24
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 4º Búsqueda de la
instrucción e incremento del PC
———
———
00000101
00000000
M
0
+2
A
0000 0101 (5)
B
0001001010
C
D
—
.
.
I.D.
———
0
0
A
1
0
0
R
1
0
1
0
1001010000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
I
0000 00 1001010000
00000000
O
R
———
———
00010100
11111101
I
O
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 25
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 5º, Decodificación de la
instrucción.
———
———
00000101
00000000
M
0
+2
A
0000 0101 (5)
B
0001001100
C
D
I.D.
load B, 11111101
—
.
.
———
0
0
A
1
0
0
R
1
0
1
0
1001010000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
I
0001 01 00 11111101
00000000
O
R
———
———
00010100
11111101
I
O
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 26
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 6º Ejecución de la
instrucción.
———
———
00000101
00000000
M
0
+2
0001001100
A
0000 0101 (5)
B
1111 1101 (-3)
C
D
I.D.
load B, 11111101
—
.
.
———
0
0
A
1
0
0
R
1
0
1
0
1001010000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
I
0001 01 00 11111101
00000000
O
R
I.R.
———
———
00010100
11111101
I
O
W
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 27
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 7º Búsqueda de la
instrucción e incremento del PC
———
———
00000101
00000000
M
0
+2
0001001100
A
0000 0101 (5)
B
1111 1101 (-3)
C
D
—
.
.
I.D.
———
0
0
A
1
0
0
R
1
1
0
0
1001010000
00000000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
———
I
0001 01 00 11111101
O
R
———
I
O
01000100
00000000
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 28
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 8º, Decodificación de la
instrucción.
———
00000101
00000000
M
0
+2
0001001110
A
0000 0101 (5)
B
1111 1101 (-3)
C
D
add B,A
(A←A+B)
———
—
.
.
I.D.
———
0
0
A
1
0
0
R
1
1
0
0
1001010000
00000000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
———
I
0100 01 00 00000000
O
R
———
I
O
01000100
00000000
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 29
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 9º Ejecución de la
instrucción.
+
+2
0001001110
A
0000 0010 (2)
B
1111 1101 (-3)
C
D
—
.
.
add B,A I.D.
(A←A+B)
———
———
———
00000101
00000000
M
0
0
0
A
1
0
0
R
1
1
0
0
1001010000
00000000
00000000
…
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
0001000100
———
I
0100 01 00 00000000
O
R
———
I
O
01000100
00000000
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 30
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 10º Búsqueda de la
instrucción e incremento del PC
———
———
00000101
00000000
M
0
+2
0001001110
A
0000 0010 (2)
B
1111 1101 (-3)
C
D
—
.
.
I.D.
———
0
0
A
1
0
0
R
1
1
1
0
1001010000
00000000
00100010
01010001
…
0001001100
01000100
00000000
0001001000
00000010
01010000
00010100
11111101
0001000100
I
0100 01 00 00000000
00000000
O
R
———
———
00100010
01010001
I
O
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 31
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 11º, Decodificación de
la instrucción.
———
———
00000101
00000000
M
0
+2
0001010000
A
0000 0101 (5)
B
1111 1101 (-3)
C
D
store A, I.D.
@Mem[1001010001]
—
.
.
———
0
0
A
1
0
0
R
1
1
1
0
1001010000
00000000
00100010
01010001
…
0001001100
01000100
00000000
0001001000
00000010
01010000
00010100
11111101
0001000100
I
0010 00 1001010001
00000000
O
R
———
———
00100010
01010001
I
O
W
I.R.
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 32
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Ejemplo: Ciclo 12º Ejecución de la
instrucción.
———
———
00000101
00000010
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
M
0
+2
0001010000
A
0000 0010 (2)
B
1111 1101 (-3)
C
D
store A, I.D.
@Mem[1001010001]
—
.
.
———
0
0
A
1
0
1
R
0
0
0
1
1001010000
…
0001000100
———
I
0010 00 1001010001
O
R
I.R.
———
I
O
00000010
W
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 33
4.2 El procesador
4.2.1 Organización básica del procesador
Organización básica del procesador
• Recordar:
– Tanto instrucciones como datos se almacenan como
secuencias de 0’s y 1’s en memoria.
– Las instrucciones van de memoria a la unidad de control:
• Las instrucciones se almacenan en memoria en un orden
dado por el programa.
• Las instrucciones se ejecutan en secuencia, sólo rota por las
instrucciones de salto.
• A través del código de operación la unidad de control
determina qué hay que hacer.
– Los datos van de memoria al camino de datos y viceversa.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 34
4.2 El procesador
4.2.2 Parámetros más importantes del procesador
Parámetros más importantes del procesador
• Velocidad o frecuencia de reloj (GHz)
– La ejecución de cada instrucción supone la realización de
diversos pasos elementales.
• Por ejemplo: Búsqueda de la instrucción, Decodificación,
Ejecución.
– Cada uno de dichos pasos se ejecuta en uno o varios ciclos
de reloj (en nuestro ejemplo, sólo en uno).
– Ejemplo 1: Para el procesador anterior en el que las
instrucciones requieren 3 pasos para su ejecución, ¿cuánto
tiempo tardaría en ejecutarse un programa con 10 M
instrucciones si el procesador funciona a 2 GHz?
Sol:
10×106 inst ⇒ 3×10×106 = 30×106 de ciclos.
Dado que Tciclo = 1/(2×109) = 5×10-10 seg.
Tiempo = 30×106 × 5×10-10 = 15 mseg.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 35
4.2 El procesador
4.2.2 Parámetros más importantes del procesador
Parámetros más importantes del procesador
• Velocidad o frecuencia de reloj (GHz)
– Ejemplo 2: Calcular la frecuencia
procesador suponiendo que:
de
reloj
de
un
• El procesador ejecuta 500 MIPS (millón de instrucciones por
segundo).
• Cada instrucción consta de 5 fases.
• Cada fase se ejecuta en 1 ciclo de reloj.
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 instrucción requiere 5
ciclos para su ejecución, ¿cuál es su frecuencia MIPS?
Sol:
2x109 ciclos/seg.
Cada instrucción tarda 5 ciclos ⇒ (2/5)x109 instr./seg. ⇒
400 MIPS.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 36
4.2 El procesador
4.2.2 Parámetros más importantes del procesador
Parámetros más importantes del procesador
• Tecnología de fabricación:
– Lo avanzado de una tecnología de fabricación se indica mediante
una medida relacionada tamaño del elemento más pequeño del
chip: el transistor.
– Actualmente se mide en decenas de nanómetros (nm, la
millonésima parte de un milímetro (10-6 mm)).
• El primer microprocesador de la era PC (Intel 8088) se fabricó con
tecnología de 3 micras (incluía 29.000 transistores).
• Los procesadores de Intel y AMD actuales se fabrican con tecnología
de 45 nm (o 0,045 micras) e incluyen más de 750 M de transistores.
– Mejoras en la tecnología de fabricación:
• Permiten aumentar el número de chips por oblea, y, por tanto,
disminuir el coste del microprocesador.
• Se posibilita alcanzar mayores frecuencias de reloj (GHz).
• Se puede reducir el voltaje necesario para el funcionamiento y por
tanto la cantidad de calor que se genera (aunque es más difícil de
eliminar).
• Se pueden incorporar nuevos elementos (memorias cachè, …).
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 37
Índice
Índice
4.1. Estructura funcional de un ordenador
4.2. El procesador
4.2.1. Organización básica del procesador
4.2.2. Parámetros más importantes del procesador
4.3. Organización del subsistema de memoria
4.3.1.
4.3.2.
4.3.3.
4.3.4.
Concepto de jerarquía de memoria
¿Qué es una memoria cachè?
La memoria principal y sus parámetros fundamentales
Memoria secundaria
4.4. Interconexión y dispositivos de E/S de un ordenador
4.4.1. Jerarquía de buses
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 38
4.3 Organización del subsistema de memoria
Introducción
Organización del subsistema de memoria
• Hasta ahora hemos considerado la memoria del computador
como una gran estructura lógica donde se almacenan tanto
instrucciones como datos.
• Sin embargo, la memoria de un ordenador moderno está
conformada por varios tipos de estructuras de memoria, cada
uno con características diferentes en cuanto a costo, tiempo
de acceso y tamaño.
• El objetivo final es ofrecer al procesador una memoria lógica
con un tiempo de acceso muy bajo y un tamaño muy grande,
todo dentro de un presupuesto razonable.
• Analogía: Mesa en la biblioteca.
– Una buena selección de libros en la mesa (memoria pequeña y
rápida).
– Gran probabilidad de encontrar lo buscado sin ir a la estantería.
– Visión de memoria grande (biblioteca) a la que se accede rápido
(tiempo de coger un libro de la mesa).
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 39
4.3 Organización del subsistema de memoria
4.3.1 Concepto de jerarquía de memoria
Concepto de jerarquía de memoria
• Objetivo: Llevar zonas del programa y datos que tendrán más
probabilidad de ser accedidas a una memoria más rápida.
• Dos propiedades de los programas hacen viable la
organización de la memoria del ordenador en una jerarquía
de varios niveles:
– Localidad Temporal: cuando se consulta un dato, seguramente
será consultado poco después.
• Un libro de la mesa será consultado varias veces.
• Ejemplo en programas: bucles (datos e instrucciones).
– Localidad Espacial: cuando se consulta un dato, seguramente
otros cercanos serán consultados poco después.
• Traemos un libro del estante → los libros que están próximos
versarán sobre el mismo tema.
• Ejemplo en programas: instrucciones (salvo por los saltos, se
ejecutan secuencialmente tal como están en memoria) y estructuras
de datos como las tablas.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 40
4.3 Organización del subsistema de memoria
4.3.1 Concepto de jerarquía de memoria
Concepto de jerarquía de memoria
• Jerarquía de memoria:
Menor capacidad,
Mayor coste,
Menor latencia
Registros
Memorias cachè
Memoria Principal (RAM)
Memoria Secundaria
Mayor capacidad,
Menor coste,
Mayor latencia
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 41
4.3 Organización del subsistema de memoria
4.3.1 Concepto de jerarquía de memoria
Concepto de jerarquía de memoria
• El objetivo de organizar la memoria de un
ordenador como una jerarquía de memorias es
aprovechar la localidad temporal y espacial:
– Para aprovechar la Localidad Temporal de un programa:
• Mantener los datos accedidos más recientemente cerca del
procesador.
– Para aprovechar la Localidad Espacial de un programa:
• Mover bloques de varios datos contiguos a los niveles
próximos al procesador.
• Consideración: Las memorias más rápidas son las
más caras por bit y por tanto suelen ser de menor
capacidad.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 42
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• Definición de cachè: pequeña memoria ultrarápida que se
coloca entre la memoria principal (RAM) y el procesador con
el objetivo de acelerar los accesos a datos e instrucciones.
• En la actualidad se intercalan varias memorias cachè (niveles
de cachè) entre el procesador y la memoria principal, cada
nivel tiene un tiempo de acceso y tamaño distinto.
– En general, los niveles más cercanos al procesador son los más
rápidos y pequeños.
– Las memorias cachè se suelen denominar por el nivel en el que
se encuentran, siendo L1 el más cercano al procesador.
• 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: Introducción a la Arquitectura …
octubre de 2011 - 43
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• Funcionamiento Básico:
Dir. Bloque
Dir. Palabra
Palabra cachè Bloque
CPU
Memoria
Principal
– El procesador manda al controlador de cachè la
dirección de la palabra a buscar (por ejemplo,
para un load).
– Caso de estar, el controlador de cachè
suministra al procesador la palabra solicitada.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 44
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• Funcionamiento Básico:
– Caso de no estar, el controlador de cachè pide a memoria un bloque de
varias palabras que entre otras incluye la solicitada por el procesador
(localidad espacial):
C.P.U.
CACHÈ
IR
DIRECCIONES
De MEMORIA
M
A
R
DATOS
HILOS de CONTROL
FUN
CO MDAMENT
PUTA OS de
DOR
ES
I I
O O
R W
TARJETA de
VÍDEO
MDR
BUS de DIRECCIONES
BUS de DATOS
BUS de CONTROL
– El controlador de cachè almacena el bloque y suministra al procesador la
palabra solicitada.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 45
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• Puesto que una memoria cachè puede contener un
subconjunto muy reducido de los datos e
instrucciones almacenados en memoria principal
– ¿Cómo se sabe si un dato está o no en cachè?
– Y si lo está, ¿cómo se localiza?
• Ejemplo 1: Dados los siguientes parámetros:
– Tamaño de las direcciones de memoria: 10 bits.
– Cada dirección se refiere a un byte.
¿Cuál es el tamaño máximo que podría tener la memoria
principal en Bytes?
Sol:
Puesto que se dispone de 10 bits para codificar las direcciones, el
número máximo de direcciones (lo que limita el máximo de
posiciones direccionables) es 210 = 1024 = 1K.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 46
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• Ejemplo 2: Supongamos un ordenador con la memoria
principal del ejemplo anterior al que añadimos un nivel de
cachè para datos e instrucciones de 64Bytes. Supongamos
también que los bloques que se transfieren entre memoria
cachè y memoria principal son de 4 palabras de 4 bytes (16
bytes). ¿Cuántos bloques caben en la cachè? ¿Cuántos
bloques habrá en memoria principal?
Sol:
Puesto que en memoria principal hemos visto que había 1k bytes, y
cada bloque está formado por 4 palabras de 32bits, el número de
bloques que hay en memoria principal es 1024/(4 * 4) = 64 bloques.
Por su parte, puesto que la cachè tiene un tamaño de 64B, el
número máximo de palabras de 32bits que podrá almacenar es de
64/4 = 16. Y el número máximo de bloques es 64/16 = 4. A cada
uno de estos 4 huecos en los que se va a poder almacenar un
bloque en cachè lo vamos a llamar línea de cachè.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 47
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• Para la configuración de los ejercicios anteriores,
¿cómo podríamos asignar los bloques de memoria
a las líneas de cachè?
Bloque 0
Línea 0
Línea 1
Línea 2
Línea 3
Cachè
Tema 4: Introducción a la Arquitectura …
Bloque 1
Bloque 2
Bloque 3
Bloque 4
Bloque 5
Bloque 6
Bloque 7
…
Bloque 32
…
Bloque 60
Bloque 61
Bloque 62
Bloque 63
Memoria Principal
octubre de 2011 - 48
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• O lo que es lo mismo, los bits menos significativos de la
dirección de bloque nos indican la línea de cachè donde debe
ir cada bloque.
• Puesto que varios bloques pueden ir a la misma línea de
cachè, ¿cómo sabemos si lo que hay en cachè es el bloque
que buscamos?
– Además del bloque de datos, cada línea de cachè almacena una
etiqueta (los bits más significativos de la dirección del bloque) y
un bit de validez (indica si hay datos válidos en la línea).
• Ejemplo 3: Para la configuración del sistema de memoria del
ejercicio anterior, ¿cómo se distribuyen los 10 bits de la
dirección de memoria desde el punto de vista de la cachè?
10 bits
Etiqueta (4 bits)
Índice (2 bits) Desplazam. (4 bits)
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 49
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
• Para el ejemplo del apartado 4.2.1, ¿cuáles de los
accesos a memoria encontrarían la información en
cachè?
Inicialmente:
Cachè
Etiqueta V
Línea 0:
0000
0
Línea 1:
0000
0
Línea 2:
0000
0
Línea 3:
0000
0
Datos
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 50
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 1: búsqueda de instr. en
0001001000 → 0001
Etiqueta
00
Índice
Cachè
Etiqueta V Datos
0000
1000
Despl.
Ciclo 1:
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 línea de cachè 0
(suponemos bus de datos de 32 bits
= 4 bytes por acceso)
0
MEMORIA Principal
!Fallo¡
0000
0
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
0000
0
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 51
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 1: búsqueda de instr. en
0001001000 → 0001
00
Etiqueta
1000
Índice
Despl.
Cachè
Etiqueta V Datos
0001
0000
1
01000100
00000000
00100010
01010001
00000010
01010000
00010100
11111101
-
-
-
-
-
-
-
-
Ciclo 1:
Se activa el bit de
validez y se colocan los 4 bits más
significativos como etiqueta.
La CPU toma los 16 bits de la
instrucción load A, @Mem[...]
(dirs. 0001001000 y 0001001001).
MEMORIA Principal
0
M
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
0000
0
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 52
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 3: Ejecución de instr.
1001010000 → 1001
01
Etiqueta
0000
Índice
Despl.
Cachè
Etiqueta V Datos
0001
0000
1
00000000
00000000
01010001
00000010
01010000
00010100
11111101
-
-
-
-
-
-
-
-
load A, @Mem[1001010000]. El bit
de validez provoca un fallo de
cachè. La cachè deberá traer el
correspondiente
bloque
para
rellenar toda la línea de cachè 1.
MEMORIA Principal
0
M
!Fallo¡
0000
01000100
Ciclo 3: Instrucción
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
0
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 53
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 3: búsqueda de datos en Ciclo 3:
1001010000 → 1001
01
Etiqueta
0000
Índice
Despl.
Cachè
Etiqueta V Datos
0001
10 0 1
1
1
01000100
00000000
00000000
01010001
00000010
01010000
00010100
11111101
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
00000101
00000000
-
00000000
Se activa el bit de
validez y se colocan los 4 bits más
significativos como etiqueta.
La CPU toma los 8 bits del dato en
1001010000 (instrucción load A,
@mem[1001010000]).
MEMORIA Principal
-
00000000
M
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
0000
0
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 54
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 4: búsqueda de instr. en
0001001010 → 0001
00
Etiqueta
1010
Índice
Despl.
Cachè
Etiqueta V Datos
0001
1
Acierto
de Cachè
1001
1
01000100
00000000
00000000
01010001
00000010
01010000
00010100
11111101
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
00000101
00000000
-
00000000
-
00000000
Ciclo 4:
El campo índice busca
en la línea 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 línea de cachè son
los que se corresponden. (Dirs
0001001010
y
0001001011
instrucción load B, 11111101).
MEMORIA Principal
M
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
0000
0
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 55
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 7: búsqueda de instr. en
0001001100 → 0001
00
Etiqueta
1100
Índice
Despl.
Cachè
Etiqueta V Datos
0001
1
Acierto
de Cachè
1001
1
01000100
00000000
00000000
01010001
00000010
01010000
00010100
11111101
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
00000101
00000000
-
00000000
-
00000000
Ciclo 7:
(Instrucción add B,A).
Bit de validez = 1 en la línea de
cachè 0, el campo etiqueta coincide
con
los
cuatro
bits
más
significativos de la dirección → los
datos en la línea 0 de cachè son
válidos. Si el campo etiqueta no
coincidiera, habría que hacer un
reemplazo de la línea de cachè 0.
MEMORIA Principal
M
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
0000
0
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 56
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 10: búsqueda de instr. en Ciclo 10:
0001001110 → 0001
00
Etiqueta
1110
Índice
Despl.
Cachè
Etiqueta V Datos
0001
1
Acierto
de Cachè
1001
1
01000100
00000000
00000000
01010001
00000010
01010000
00010100
11111101
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
00000101
00000000
-
00000000
-
00000000
Bit de validez = 1 en
la línea de cachè 0, el campo
etiqueta coincide con los cuatro bits
más significativos de la dirección de
memoria → los datos en la línea de
cachè 0 son válidos. La CPU lee el
byte con dirs. = 0001001110 y
0001001111
de
la
cachè
(instrucción store AL, @Mem[…]).
MEMORIA Principal
M
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
0000
0
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 57
4.3 Organización del subsistema de memoria
4.3.2 ¿Qué es una memoria caché?
¿Qué es una memoria cachè?
Ciclo 12: ejecución de instr.
1001010001 → 1001
01
Etiqueta
0001
Índice
Despl.
Cachè
Etiqueta V Datos
0001
1001
1
1
Acierto
de Cachè
0000
0
01000100
00000000
00000000
01010001
00000010
01010000
00010100
11111101
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
00000101
00000010
00000000
-
-
00000000
Ciclo 12:
Instrucción store AL,
@Mem[1001010001]
(escribir
en
dirección 1001010001). La CPU escribe
el byte 0000000010 en cachè. Se
marcaría con un bit de “modificado” la
línea 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
(política “postescritura”)
MEMORIA Principal
M
00000101
00000000
00000000
00000000
0001001100
01000100
00000000
00100010
01010001
0001001000
00000010
01010000
00010100
11111101
———
———
1001010000
…
A
R
0000
0
0001000100
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 58
4.3 Organización del subsistema de memoria
4.3.3 La memoria principal y sus parámetros
La memoria principal y sus parámetros fundamentales
• 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 también 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 más ancho sea, más datos pueden enviarse en cada
ciclo de reloj.
• Bus de control: Hilos donde fluye la información de control
para gobernar la lectura/escritura en memoria (IOW, IOR…),
señales de reloj (Clk), señales de sincronización, alimentación
(Vcc), tierra (ground)…
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 59
4.3 Organización del subsistema de memoria
4.3.3 La memoria principal y sus parámetros
La memoria principal y sus parámetros fundamentales
• Ancho de banda (MB/s)
– Máxima cantidad de memoria que teóricamente podría obtenerse
por segundo (se mide en MB/s).
– P.e., la memoria DDR-200 (Double Data Rate) opera con un bus físico a
100 MHz (frecuencia base), pero tiene doble aprovechamiento de cada
ciclo de reloj (de ahí el apellido “200”). Puesto que, además, su ancho
del bus de datos es de 64 bits (8 bytes), es capaz de transmitir con un
ancho de banda máximo de 100*106*2*8 = 1600 MB/s. Es por esto que
a dichos módulos DDR-200 también se les conoce como PC-1600.
– Hay también módulos DDR2, que trabajan al cuádruple de la frecuencia
base, e incluso DDR3, que trabajan a ocho veces la frecuencia base. Así,
algunos otros ejemplos de módulos de memoria serían:
– DDR (doble de frecuencia base):
• P.e., con 150 MHz de frec. base -> DDR-300 -> PC-2400 = 2400 MB/s
– DDR2 (cuádruple de frecuencia base):
• P.e., con 200 MHz de frec. base -> DDR2-800 -> PC2-6400 = 6400 MB/s
– DDR3 (ocho veces la frecuencia base):
• P.e., con 200 MHz de frec. base -> DDR3-1600 -> PC3-12800 = 12800 MB/s
– Más ejemplos en http://es.wikipedia.org/wiki/Double_Data_Rate
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 60
4.3 Organización del subsistema de memoria
4.3.4 Memoria secundaria
Memoria secundaria
• Tanto memorias cachè como memoria principal son
estructuras de memoria volátiles → sus contenidos se pierden
al apagar el ordenador.
• Programas y datos deberían ser guardados en memorias no
volátiles para volver a usarlos con posteridad.
– Las memorias secundarias (discos duros, DVDs, CDs, …)
mantienen la información aún 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.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 61
Índice
Índice
4.1. Estructura funcional de un ordenador
4.2. El procesador
4.2.1. Organización básica del procesador
4.2.2. Parámetros más importantes del procesador
4.3. Organización del subsistema de memoria
4.3.1.
4.3.2.
4.3.3.
4.3.4.
Concepto de jerarquía de memoria
¿Qué es una memoria cachè?
La memoria principal y sus parámetros fundamentales
Memoria secundaria
4.4. Interconexión y dispositivos de E/S de un ordenador
4.4.1. Jerarquía de buses
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 62
4.4 Interconexión y dispositivos de E/S de un ordenador
4.4.1 Jerarquía de buses
Jerarquía de buses
• Concepto de bus:
– Canal de comunicación compartido por varios dispositivos.
– De forma simplificada podría verse como un conjunto de líneas a
las que se conectan los dispositivos y que permiten que la
información escrita por un dispositivo pueda ser leída por el
resto.
– En un instante determinado únicamente un dispositivo podría
poner información sobre el bus. Además, de todos los
dispositivos conectados hay uno que actúa como maestro de bus
(tiene el control del bus y decide quién puede poner datos sobre
el mismo).
• La conexión de todos los componentes de un computador a
través de un único bus plantea varios problemas:
– Cuanto mayor es el número de dispositivos conectados, peor es
el compartimiento temporal de las señales 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 información pasan a través de él.
– El bus debe soportar elementos de velocidades muy dispares, lo
que implica un diseño de bus poco óptimo.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 63
4.4 Interconexión y dispositivos de E/S de un ordenador
4.4.1 Jerarquía de buses
Jerarquía de buses
• Para resolver los problemas anteriores los computadores modernos
implementan una jerarquía de buses
– El bus de mayor velocidad es al que estaría conectado el procesador y el
bus inferior conectaría dispositivos de entrada/salida lentos
– Los distintos buses se interconectan por medio de puentes (bridges)
• Ejemplo:
• En la práctica, la jerarquía de buses forma parte de una jerarquía de
interconexión más general dentro del computador.
Tema 4: Introducción a la Arquitectura …
octubre de 2011 - 64