Download Técnicas Digitales III

Document related concepts
no text concepts found
Transcript
Procesadores de 32 bits
Tecnologías, Organización y
Microarquitectura
Tecnología de Integración
Nanotecnología
Tecnología de Integración
65 nm
nanotechnology
Imágenes obtenidas con TEM (Transmission Electron Microscope) de una
cepa del virus de la influenza, y de un transistor construido con la
tecnología de 65 nm reemplazada en el 2007 por la de 45 nm, con la que
se construyen los procesadores Core2Duo y Xeon Quad Core de Intel.
Los 30 nm representan el ancho del Gate del transistor NMOS
Proceso y componentes de la técnica de
Litografía
Litografía (Lithography):
✔
Proceso por el cual se crean patrones específicos en
un chip.
✔
Los chips actuales consisten en un sustrato de silicio
encima del cual se crean mas de 20 capas de
materiales de diferentes tipos.
✔Éstos forman los transistores y las pistas que los
interconectan en una configuración particular,
formando un microprocesador, chipset, memoria, o
cualquier otro circuito integrado.
Organización de un computador
Conceptos generales:
Arquitectura vs. Micro-Arquitectura
Arquitectura y Micro-Arquitectura

Arquitectura



Recursos accesibles para el programador

Registros

Set de instrucciones

Estructuras de memoria (descriptores de segmento y de página p. ej.)
Estos recursos se mantienen y evolucionan a lo largo de los diferentes modelos
de procesadores de esa arquitectura
Micro Arquitectura

Implementación en el silicio de la arquitectura.

Es lo que hay detrás del set de registros y del modelo de programación

Puede ser muy simple o sumamente robusta y poderosa.

La arquitectura IA-32 se inicia con el procesador 80386 en 1985, y llega
hasta el procesador Intel Core2Duo actualmente.

Esto se traduce en diferentes generaciones de Micro-Arquitectura para mas
de 15 modelos de procesadores.
Enfoques
CISC (Complex Instruction Set Computer)
Instrucciones que realizan tareas complejas
RISC (Reduced Instruction Set Computer)
Instrucciones que realizan operaciones sencillas
MISC (Minimal Instruction Set Computer)
Mínimo de operaciones necesarias
Ejemplo CISC (Intel)
Prefijo
OpCode
0xF3
0xA4
Instrucción:
REP MOVS
Copia CX bytes de DS:SI, a ES:DI.
MOVS: Copia el dato en DS:SI, a ES:DI.
Dependiendo de un flag, SI y DI son incrementados (+1) o
decrementados (-1)
REP: Prefijo. Decrementa CX y hace que se repita la operación
hasta que CX llegue a 0
Ejemplo RISC
La misma instrucción implementada en una MIPS:
Asumamos que en $s3 esta el fuente, $s4 el destino y $s5 es el contador
bucle:
lb $t0,0,($s3) ;
sb $t0,0, $s4 ;
add $s3,$s3,1
add $s4,$s4,1
sub $s5,$s5,1
be $s5,0,fin
j bucle
fin:
t0 = mem[s3]
mem[s4] = t0
Ciclo de instrucciones: Etapas
Búsq.
Búsq.
Instruc.
Instruc.



Decod
Decod
Busq.
Busq.
Operando
Operando
Ejec
Ejec
Result
Result
Requiere una cantidad de hardware considerable.
En los procesadores sencillos solo una parte del hardware se
activa en un determinado momento: la que se necesita para
resolver la micro operación.
Este método es poco eficiente. En nuestro ejemplo el
procesador podrá ejecutar una instrucción cada 5 ciclos de
clock
Pipeline de instrucciones



Técnica que permite
superponer en el tiempo la
ejecución de varias
B usq. B usq.
instrucciones a la vez
I n st. 1 I n st. 2
No requiere hardware
adicional. Solo se necesita
D e c.F I
lograr que todas las partes del
I n st. 1
procesador trabajen a la vez
Trabaja con el concepto de una
línea de montaje:



Cada operación se
descompone en partes
Se ejecutan en un mismo
momento diferentes partes de
diferentes operaciones
Cada parte se denomina etapa
(stage)
B usq. B usq. B usq. B usq. B usq.
I n st. 3 I n st. 4 I n st. 5 I n st. 6 I n st. 7
D ec.
D ec.
D ec.
D ec.
D ec.
I n st. 2 I n st. 3 I n st. 4 I n st. 5 I n st. 6
B usq.
O p. 1
Busq.
O p. 2
B usq.
O p. 3
B usq.
O p. 4
Busq.
O p. 5
E je c . E je c .
E je c .
E je c .
I n st. 1 I n st. 2 I n st. 3 I n st. 4
E s c r ib . E s c r ib . E s c r ib .
R es. 1 R es. 2 R es. 3
Resultado
Resultado
Una
Unavez
vezen
enrégimen
régimenejecuta
ejecutaaarazón
razónde
deuna
una
instrucción
instrucciónpor
porciclo
ciclode
declock
clock
Etapas de un pipeline

Podemos desagregar mas las micro operaciones y
generar pipelines de mas etapas. Ej:
Autor: Alejandro Furfaro - 2008
12
Etapas de un pipeline

Incluir el chequeo de interrupciones
Pipeline de seis etapas
Efecto de un branch en un Pipeline de seis
etapas
Tratamiento de los saltos en un pipeline
 Se
implementan unidades de predicción
de saltos.

Asumir que nunca se salta

Asumir que siempre se salta
 Predecir
 Salta
por OpCOde…..
/ NO salta alternativamente
 Utilizar
una memoria ultrarrápida con una tabla de
historia de saltos.
Predicción de saltos





Se incluye un buffer de saltos
Memoria pequeña muy veloz
Se guardan bloques de código.
Cada vez que se tiene un salto se estudia si el destino está en el
buffer
Si lo esta se lo toma de allí en caso de que la condición de salto
así lo determine
Arquitectura Superescalar



Arquitectura de procesamiento en la que se puede iniciar varias
instrucciones en forma simultánea y ejecutarse en forma
independiente
El pipeline permite que varias instrucciones estén ejecutándose
en un mismo momento, pero siempre que se encuentren cada
una en diferentes etapas del pipeline
Un procesador superescalar extiende este paralelismo
permitiendo que en una etapa del pipeline se puedan ejecutar
varias instrucciones en forma independiente en un mismo ciclo
de clock
Arquitectura superescalar de dos vías.
Dos Pipelines de instrucciones
Al tener dos unidades de
ejecución paralelas, se
duplica la actividad interna
del procesador alcanzando
la velocidad teórica de dos
instrucciones por ciclo de
clock
Limitaciones al modelo superescalar

Dos o mas instrucciones compiten por acceso en el mismo
momento al mismo recurso:





Registro.
Dirección de Memoria
Unidad funcional del procesador
Las instrucciones de transferencia de flujo (denominadas
branch, y que son generalmente saltos, o call), hacen que todas
las que vienen a continuación sean descartadas de las etapas
del pipeline en el que se ejecuta la instrucción de transferencia
de flujo.
Instrucciones con interdependencia de resultados. Una
instrucción en la que uno de los operandos es el resultado de
otra que se está ejecutando al mismo tiempo, debe ser
detenida hasta que se obtenga el resultado mencionado.
Efecto de las Dependencias
Casos de Pipelining en el IA-32
Ejemplo de Super pipeline: Pentium IV
Memoria Cache
Memorias: Evolución
Pioneros:
Maurcice Wilkes con la primer memoria de tanque
de mercurio para la computadora EDSAC. 2 bytes:
1947.
Visionarios….
"640K debe ser suficiente para cualquiera.”
Bill Gates, 1981
Tecnología de memorias: RAM Dinámica
CAS
RAS
Cd
Buffer
Bit de datos de salida al bus
Transistor
Diagrama de un bit elemental de DRAM (Dynamic RAM).
 Almacena la información como una carga en una capacidad espuria de un
transistor.
 Una celda (un bit) se implementa con un solo transistor ⇒ máxima
capacidad de almacenamiento por chip.
 Ese transistor consume mínima energía ⇒ Muy bajo consumo.
 Al leer el bit, se descarga la capacidad ⇒ necesita regenerar la carga ⇒
aumenta entonces el tiempo de acceso de la celda.
Tecnología de memorias: RAM Estática
Línea de Bit
Línea de Bit
Selección
1
3
4
2
5
6
Diagrama del biestable de un bit básico de SRAM (Static RAM).
 Almacena la información en un biestable.
 Una celda (un bit) se compone de seis transistores ⇒ menor capacidad de
almacenamiento por chip.
 3 transistores consumen energía máxima en forma permanente y los otros 3
consumen mínima energía ⇒ Mayor consumo
 La lectura es directa y no destructiva ⇒ tiempo de acceso muy bajo
Estructura de Bus clásica

Procesador
Procesador
ADDRESS
DATOS
CONTROL
Bus
Bus de
de
Control
Control
Buffer
Buffer de
de
Datos
Datos
Bus Local del
Procesador
Memoria
Memoriadel
del
Sistema
Sistema

En este escenario, el
procesador necesita generar
wait states para esperar que
la memoria esté lista (“READY”)
para el acceso.

¿Tiene sentido lograr altos
clocks en los procesadores si no
puede aprovecharlos por tener
que esperar (wait) a la
memoria?
Buffer
Buffer de
de
Address
Address
BUS DEL SISTEMA
E/S
E/S del
del Sistema
Sistema
Desde fines de los años 80, los
procesadores desarrollaban
velocidades muy superiores a
los tiempos de acceso a
memoria.
Crecimiento de la velocidad de clock de
las CPU versus memoria
1100
1000
Pentium III
1GHz
900
800
700
600
Pentium II
400 MHz.
500
400
486 DX4
100 MHz.
300
Memorias
200
386 DX
33 MHz
100
89
90
91
92
93
94
95
96
97
98
99
00
El problema

RAM dinámica (DRAM)






Consumo mínimo.
Capacidad de almacenamiento comparativamente alta.
Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneración de
carga.
Si construimos el banco de memoria utilizando RAM dinámica, no
aprovechamos la velocidad del procesador.
RAM estática (SRAM)





Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja.
Costo por bit alto.
Tiempo de acceso bajo (es mas rápida).
Si construimos el banco de memoria utilizando RAM estática, el costo y el
consumo de la computadora son altos.
La solución: Memoria cache

Se trata de un banco de SRAM de muy alta velocidad, que
contiene una copia de los datos e instrucciones que están en
memoria principal

Se busca que esta copia esté disponible justo cuando el
procesador la necesita permitiéndole acceder a esos ítems sin
recurrir a wait states.

Combinada con una gran cantidad de memoria DRAM, para
almacenar el resto de códigos y datos, resuelve el problema
mediante una solución de compromiso típica.

Requiere de hardware adicional que asegure que este pequeño
banco de memoria cache contenga los datos e instrucciones
mas frecuentemente utilizados por el procesador.
Referencias




El tamaño del banco de memoria cache debe ser:

Suficientemente grande para que el procesador resuelva la mayor
cantidad posible de búsquedas de código y datos en esta memoria
asegurando una alta performance

Suficientemente pequeña para no afectar el consumo ni el costo del
sistema.
Se dice que se logra un hit cuando se accede a un ítem (dato o
código) y éste se encuentra en la memoria cache.
En caso contrario, se dice que el resultado del acceso es un
miss.
Se espera un hit rate lo mas alto posible
hit rate =
Cantidad de accesos con presencia en Memoria Cache
Cantidad total de accesos a memoria
Operación de Lectura de memoria
Inicio
CPU envía señal de
lectura
Hit!!
Busca ítem en
cache
Busca ítem en
cache y envía a la
CPU
Miss
Busca ítem en
memoria del
sistema
Escribe ítem en el
cache
Actualiza directorio
cache
Fin
Envía ítem a la CPU
Estructura de Bus del sistema con cache
Procesador
Procesador
ADDRESS
DATOS
CONTROL
Memoria
Memoria CONTROL
cache
cache
Bus Local del
procesador
Controlador
Controlador de
de
Memoria
caché
Memoria caché
Buffer
Buffer de
de
Datos
Datos
Buffer
Buffer de
de
Address
Address Bus Local del
controlador
cache
Bus
Bus de
de
Control
Control
BUS DEL SISTEMA
Memoria Cache
Procesador
Procesador
Bus del Procesador
(Bus local)
Baja capacidad, pero ¡¡accesible a
la velocidad del procesador!!
Subsistema caché
Controlador
Controlador de
de
Memoria
caché
Memoria caché
Memoria
Memoria
SRAM
SRAM
ultrarrápida
ultrarrápida
(cache)
(cache)
Hardware adicional. Mantiene el cache
con los datos mas frecuentemente
utilizados por el procesador
Bus del Sistema
Control del bus local del
controlador cache
Memoria
DRAM
Interfaz con
el
Arbitración del Bus
Bus Local
Control del bus Local
del Procesador
Interfaz con el
Procesador
Decodificaciones del bus
local del procesador
Configuración
Bus de Address
del procesador
Directorio
de Cache
Control del
Cache
Bus de Snoop
Bus de Control de
la Memoria Cache
Como trabaja el controlador cache

El controlador cache trabaja mediante dos principios que surgen de analizar
el comportamiento de los algoritmos de software que se emplean
habitualmente.

Principio de vecindad temporal:
temporal Si un ítem es referenciado, la probabilidad de
ser referenciado en el futuro inmediato es alta.

Principio de vecindad espacial:
espacial Si un ítem es referenciado, es altamente
probable que sean referenciados sus ítems vecinos.

Ejemplo:
for (i = 0 ; i < 256 ; i++ ){
suma = 0.0f;
for (j = 0 ; (j <= i && j < 256) ; j++)
suma += v0[i-j] * v1[j];
fAux[i] = suma;
}

i, j, suma, se utilizan a menudo. Por lo tanto si se mantienen en el cache, el
tiempo de acceso a estas variables por parte del procesador es óptimo.
Estructura de memoria cache
Tag
Línea
Dirección
0
1
2
3
4
5
6
7
8
9
Línea: Elemento mínimo de palabra de datos
dentro del cache.
Corresponde a un múltiplo del tamaño de la
palabra de datos de memoria.
Set: Conjunto de líneas.
En el cache se actualiza el set completo (Principio
de vecindad espacial)
Línea
Ancho de palabra
Organización del caché: Mapeo Directo
Bit de validez del Tag
1 Línea = 4 bytes
1 Set = 8 líneas
Línea
Tag
17 bits
Set 0
Línea
Bits de validez de
las líneas
32 Kbytes
(igual tamaño
Que el del cache)
Set 1
Pag.217 -1
Set 1023
Directorio de Caché Interno
Memoria Caché
32 KB
Pag.0
4 Gbytes de Memoria Principal
Organización del caché de mapeo directo
Caché Address (1 de 8 KLíneas)
A5 A 4
A 15 A 14
A 31
Tag de 17 bits (1 de las 217 páginas)
Set Address (1 de 1024 sets)
Selector de
Línea
(1 de 8 líneas)
Bit de validez del Tag
0
Nro de Set
Bits de validez de la línea
1
1023
Directorio de
Caché Interno
A2
Organización del caché: Asociativo de dos vías
Bit de validez del Tag
Línea
Tag
Set 0
18 bits
Bits de
validez
de las
líneas
Bits
LRU
Bits
LRU
Línea
Línea
18 bits
16 Kbytes
(igual tamaño Que el de
cada banco del cache)
18 bits
1 Línea = 4 bytes
1 Set = 8 líneas
18 bits
Set 1
18 bits
Bits
LRU
Pag.218 -1
18 bits
Set 511
Directorio de Caché Interno
Memoria Caché 2 x 16 KB
Pag.0
4 Gbytes de Memoria Principal
Organización del caché asociativo de dos vías
Caché Address (1 de 4 KLíneas)
A31
A5 A4
A14 A13
Tag de 18 bits (1 de las 218 páginas)
Set Address (1 de 512 sets)
Selector de
Línea
(1 de 8 líneas)
Bit de validez del Tag
0
Nro de Set
Bits de validez de la línea
1
512
Directorio de
Caché Interno
A2