Post on 29-Sep-2018
Autor: Alejandro Furfaro - 2005 3
Tecnología de Integración
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 utilizada desde este año en el Procesador Pentium IV.Los 30 nm representan el ancho del Gate del transistor NMOS
65 nm nanotechnology
Autor: Alejandro Furfaro - 2005 4
Tecnología de Integración: EUV MET
Luz Ultravioleta
Máscara
Lentes para reducir la imagen
Oblea de metal grabado a ser expuesta
EUV MET = Extreme Ultra Violet Micro Exposure Tool
Tamaño=K1*λ*NA
K1: Factor de complejidadλ: Longitud de onda de la exposiciónNA: Apertura Numérica (tamaño) del lente
Proc
eso
de L
itogr
afía
Autor: Alejandro Furfaro - 2005 5
Proceso y componentes de la técnica de Litografía
Litografía (Lithography): 2 Proceso por el cual se crean patrones específicos
en un chip. 2 Los chips actuales consisten en un sustrato de
silicio encima del cual se crean mas de 20 capas de materiales de diferentes tipos.
2 Éstos forman los transistores y las pistas que los interconectan en una configuración particular, formando un microprocesador, su chipset, la memoria, o cualquier otro chip.
Autor: Alejandro Furfaro - 2005 7
Arquitectura y Micro-Arquitectura
Arquitectura2 Recursos accesibles para el programador
RegistrosSet de instruccionesEstructuras de memoria (descriptores de segmento y de página p. ej.)
2 Estos recursos se mantienen y evolucionan a lo largo de los diferentes modelos de procesadores de esa arquitectura
Microarquitectura2 Implementación en el silicio de la arquitectura
La arquitectura IA-32 se inicia con el procesador 80386 en 1985, y hasta ahora llega al procesador Pentium IV Extreme Edition. Abarca diferentes generaciones de procesadores desde el punto de vista de la Micro-Arquitectura
Autor: Alejandro Furfaro - 2005 8
Antecedentes: Familia iAPx86 de Intel
Se presenta en 1978 con el Microprocesador 8086.2Arquitectura de 16 bits. 2Intel se compromete a mantener
compatibilidad ascendente en los posteriores procesadores
En 1982 se presenta el 80286.2Capacidad de direccionamiento de
Memoria 16 Mbytes.2Mantiene la arquitectura de 16 bits2Incorpora capacidades para implementar
Multitarea
Autor: Alejandro Furfaro - 2005 10
Procesador 80386DX (1985)
Primer miembro de la Arquitectura IA-32 de IntelCaracterísticas2 Extiende la capacidad de los registros internos a
32 bits, manteniendo compatibilidad con los registros de 16 bits de los procesadores iAPx86.
2 Buses de Datos y Direcciones de 32 bits.Lee palabras de 32 bits en un solo ciclo de busDirecciona hasta 4 Gbytes de memoria física (RAM).
2 Unidad de Gestión de Memoria AvanzadaCapacidad de Direccionamiento de 4 Gbytes de memoria Física y 64 Tbytes de Memoria Virtual.Gestión de memoria por Segmentación y por Paginación.
2 Arquitectura Pipeline avanzada2 3 Modos de trabajo
Real ProtegidoVirtual 86
Autor: Alejandro Furfaro - 2005 11
BUS
DE
DES
PLAZ
AMIE
NTO
SUMADOR DE 3 ENTRADAS
RGISTROSDESCRIPTORES
PLA DE LIMITES Y
ATRIBUTOS
SUMADOR
CACHE DE PAGINAS
PRIORIZACION DE REQUERIMIENTOS
PLA DE CONTROL Y ATRIBUTOS
UNIDAD DE TESTEO Y
PROTECCION
DESPLAZADOR SUMADOR
MULTIPLICAR DIVIDIR
ARCHIVO DE REGISTROS
DECODIFICACION Y SECUENCIAMIENTO
ROM DE CONTROL
PREDECODIFICADOR DE INSTRUCCIONES
COLA DE HASTA 3 INSTRUCCIONES DECODIFICADAS
PREBÚSQUEDA / CHEQUEO DE
LIMITES
DRVER DE DIRECCIONES
CONTROL DE PIPELINE / TAMAÑO
DEL BUS
MULTIPLEXORES / TRANSCEPTORES
COLA DE HASTA 16 BYTES DE CÓDIGO
32
32
32
32BUS DE DIRECCION EFECTIVA
BUS DE DIRECCION EFECTIVA
BUS DE CONTROL INTERNO
STATUS FLAG
STREAM DE CODIGO DE
32 BITSALU
CONTROL
CON
TRO
L
CONTROL
BUS DEDICADO A LA ALU
3232
M.M.U. B.I.U.
C.P.U.
UNIDAD DE SEGMENTACION
UNIDAD DE PAGINACION
UNIDAD DE EJECUCION
UNIDAD DE DECODIFICACIONUNIDAD DE BUSQUEDA
UNIDAD DE CONTROL DEL BUS
HOLD, INTR,NMI,ERROR, BUSYRESET,HLDA
BE0 BE3A2 - A31
D0 - D31
M/IO, D/C, W/R, LOCKADS, NA, BS16READY
BUS DE BUSQUEDA DE CODIGO Y TABLA DE PAGINAS
BUS DE DIRECCIONES FISICAS
BUS
DE
DIR
ECCI
ON
ES L
INEA
LES
Procesador 80386DX: Diagrama Interno
Autor: Alejandro Furfaro - 2005 13
048C
159D
2
E3
BF
80386D -D0 31
D -D24 31
D -D16 23
D -D8 15
D -D0 7
BE BE0 1 BE Be2 3
CS
CS
CS
CS
A -A2 31
A -A2 31
A -A2 31
A -A2 31
A -A2 31
Byte AlineadoWord No AlineadaDoble Word No AlineadaWord No AlineadaByte No AlineadoWord No AlineadoDoble Word Alineada
Dirección0
1 - 23 - 67 - 8
9A - BC - F
80386: Manejo de Memoria organizada en bytes con 32 líneas de address
Autor: Alejandro Furfaro - 2005 18
Ciclo de instrucciones
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
Búsq.Instruc.Búsq.
Instruc. DecodDecod Busq.Operando
Busq.Operando EjecEjec ResultResult
Autor: Alejandro Furfaro - 2005 19
Busq.Inst. 1
Dec.FIInst. 1
Ejec.Inst. 1
Busq.Op. 1
Busq.Inst. 2
Dec.Inst. 2
Ejec.Inst. 2
Busq.Op. 2
Busq.Inst. 3
Dec.Inst. 3
Ejec.Inst. 3
Busq.Op. 3
Busq.Inst. 4
Dec.Inst. 4
Ejec.Inst. 4
Busq.Op. 4
Busq.Inst. 5
Dec.Inst. 5
Busq.Op. 5
Busq.Inst. 6
Dec.Inst. 6
Busq.Inst. 7
Escrib.Res. 1
Escrib.Res. 2
Escrib.Res. 3
Pipeline de instrucciones
Técnica que permite superponer en el tiempo la ejecución de varias instrucciones a la vezNo requiere hardware adicional. Solo se necesita lograr que todas las partes del procesador trabajen a la vezTrabaja con el concepto de una línea de montaje: 2 Cada operación se
descompone en partes 2 Se ejecutan en un
mismo momento diferentes partes de diferentes operaciones
2 Cada parte se denomina etapa (stage)
ResultadoUna vez entrado en régimen ejecuta a razón de una instrucción por ciclo de clock
Autor: Alejandro Furfaro - 2005 20
CASRAS
Cd
Bit de datos de salida al bus
Buffer
Diagrama de un bit elemental de DRAM.
Línea de Bit #Línea de Bit
Selección
Diagrama del biestable de un bitbásico de SRAM.
Línea de Bit #Línea de Bit
Selección
Diagrama del biestable de un bitbásico de SRAM con carga activa para lograr mayor confiabilidad
Memorias – Tiempo de Acceso y consumo
Autor: Alejandro Furfaro - 2005 21
Estructura de Bus clásica
Desde el 80386, los procesadores desarrollaban velocidades de clock muy superiores a los tiempos de acceso a memoria.
En este esquema, si el sistema utiliza memoria DRAM, el procesador necesita generar waitstates para esperar que la memoria esté lista (“READY”) para el acceso.
¿Que sentido tiene lograr altos clocks en los procesadores si no puede aprovecharla por esperar a la memoria?
Buffer de
Address
Buffer de
Address
Buffer de
Datos
Buffer de
DatosBus deControlBus deControl
BUS DEL SISTEMA
CON
TRO
L
DA
TOS
AD
DR
ESS
Bus Loca delBus Loca delProcesadorProcesador
Memoria del Sistema
Memoria del Sistema
ProcesadorProcesador
E/S del SistemaE/S del Sistema
Autor: Alejandro Furfaro - 2005 22
El problema
RAM estática (SRAM)2 Consumo mínimo. (El MOSFET
normalmente está al corte)2 Tiempo de acceso muy lento.
(Circuito de regeneración de carga por lectura destructiva.
2 Costo por bit alto2 Si usamos memoria estática, el
costo de la computadora es alto y su consumo es inviable.
RAM dinámica2 Alto consumo relativo (Tres
MOSFET están al corte, pero los otros tres están saturados, conduciendo un valor de corriente considerable.
2 El tiempo de acceso es muy rápido.
2 Si usamos memoria dinámica
CASRAS
Cd
Bit de datos de salida al bus
Buffer
Línea de Bit #Línea de Bit
Selección
RAM dinámicavs.
RAM Estática
Autor: Alejandro Furfaro - 2005 23
La solución: Memoria cache
SRAM de muy alta velocidad 2 El procesador la accede a 0 wait states2 Asegurar mediante hardware adicional que en esa
memoria están los datos e instrucciones mas frecuentemente utilizados por el procesador
Principio de vecindad espacial Principio de vecindad temporal
2 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
2 Suficientemente pequeña para no afectar el consumo ni el costo del sistema.
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.
Autor: Alejandro Furfaro - 2005 24
Cantidad total de accesos a memoriaCantidad de accesos con presencia en Memoria Cache
hitrate =
Memoria Cache
Directoriode Cache
Interfaz con el
Bus Local
Control del Cache
Interfaz conel
Procesador
Bus deBus de AddressAddressdel procesadordel procesador
Control delControl del bus bus local del local del controlador controlador cachecache
Bus deBus de SnoopSnoopArbitraciArbitracióónn del Busdel Bus
Control del Control del bus Local bus Local del Procesadordel Procesador
Bus de ControlBus de Control de de la Memoriala Memoria CacheCache
DecodificacionesDecodificaciones del del bus bus local dellocal del procesadorprocesador
Configuración
Hardware adicional. Mantiene el cachecon los datos mas frecuentemente utilizados por el procesador
ProcesadorProcesador
SubsistemaSubsistema cachcachéé
Memoria SRAM
ultrarrápida (cache)
Memoria SRAM
ultrarrápida (cache)
Controlador deMemoria cachéControlador deMemoria caché
MemoriaDRAM
Bus del Procesador(Bus local)
Bus del Sistema
Baja capacidad, pero….Accesible al clock del procesador
Autor: Alejandro Furfaro - 2005 25
Estructura de Bus del sistema con cache
Memoria cache
Memoria cache
Controlador deMemoria cachéControlador deMemoria caché
Buffer de
Address
Buffer de
Address
Buffer de
Datos
Buffer de
Datos
BUS DEL SISTEMA
Bus Local del Bus Local del procesadorprocesador
ProcesadorProcesador
Bus deControlBus deControl
CON
TRO
L
DA
TOS
AD
DR
ESS
CONTROL
Bus Local del Bus Local del controlador controlador
cachecache
Autor: Alejandro Furfaro - 2005 26
Coherencia de un cache
Una variable que está en el caché también está alojada en alguna dirección de la DRAM.Ambos valores deben ser igualesCuando el procesador la modifica hay varios modos de actuar2 Write through: el procesador escribe en la DRAM y el controlador
cache refresca el cache con el dato actualizado2 Write through buffered: el procesador actualiza la SRAM cache, y
el controlador cache luego actualiza la copia en memoria DRAM mientras el procesador continúa ejecutando instrucciones y usando datos de la memoria cache
2 Copy back: Se marcan las líneas de la memoria cache cuando el procesador escribe en ellas. Luego en el momento de eliminar esalínea del caché el controlador cache deberá actualizar la copia de DRAM.
Si el procesador realiza un miss mientras el controlador cacheestá accediendo a la DRAM para actualizar el valor, deberáesperar hasta que controlador cache termine la actualización para recibir desde este la habilitación de las líneas de control para acceder a la DRAM.
Autor: Alejandro Furfaro - 2005 27
Estructura de Bus del sistema Multiprocesador con cache
Controlador deMemoria cachéControlador deMemoria caché
Memoria cache
Memoria cache
Controlador deMemoria cachéControlador deMemoria caché
BUS DEL SISTEMA
ProcesadorProcesador
Bus deControlBus deControl
CON
TRO
L
DA
TOS
AD
DR
ESS
CONTROL
Memoria cache
Memoria cache
Buffer de
Address
Buffer de
Address
Buffer de
Datos
Buffer de
Datos
ProcesadorProcesador
CONTROL
Buffer de
Address
Buffer de
Address
Buffer de
Datos
Buffer de
Datos
SNO
OP
BUS
CON
TRO
L
DA
TOS
AD
DR
ESS
SNOOP BUS
Bus del cache
Bus local del controlador cache
Bus local del procesador
Autor: Alejandro Furfaro - 2005 28
A ddressBuffe r
80385
S EN
SST B#
Otro M as ter delSis tema
SRA MData
Buffe r
80386
Contro lA ddress
Data
BA D S#
BW /R#BM /IO#
Syste
m B
us
SA 2-SA 31
Conexión de Snooping en un Sistema Multi-Master, basado en 80386
Autor: Alejandro Furfaro - 2005 29
Directorio deCaché Interno
4 Gbytes de MemoriaPrincipal
Tag de17 bits
Bit de v alidezdel Tag
Bits de v alidezde la línea
Tamaño dePágina = 32
Kbytes(8 KDwords)
Set 0
Set 1
Set 1023
Caché ExternaPag.0
Pag.217-1
Organización del caché de mapeo directo
Autor: Alejandro Furfaro - 2005 30
Selector deLínea
(1 de 8 líneas)
Bit de validez del Tag
Bits de validez de la línea0
1
1023
Directorio deCaché Interno
Nro de Set
A15 A14 A5A4A31 A2
Tag de 17 bits (1 de las 217 páginas) Set Address (1 de 1024 sets)
Caché Address (1 de 8 KLíneas)
Organización del caché de mapeo directo
Autor: Alejandro Furfaro - 2005 31Directorio deCaché Interno
4 Gbytes de MemoriaPrincipal
Tag de 18 bits
Bit de validez del Tag
Directorio A
Bits devalidez dela línea
Tamaño dePágina = 32Kbytes(4 KDwords)
Set 0
Set 1
Set 511
Caché ExternaPag.0
Pag.218-1
Directorio B
LRUbits
Banco A32 bits
Banco B32 bits
Tag de 18 bits
Bits devalidez dela línea
Organización del caché asociativo de dos vías
Autor: Alejandro Furfaro - 2005 32
A13
A14
A 5 A 4A 31 A 2
Tag de 17 bits (1 de las 218 páginas) Set Address (1 de 512 sets) Selector deLínea
(1 de 8 líneas)
Caché Address (1 de 4 KLíneas)
Bit de validez del Tag
Bits de validez de la línea0
1
512
Directorio deCaché Interno
Nro de Set
Organización del caché asociativo de dos vías
Autor: Alejandro Furfaro - 2005 33
Manejo del contenido
Algoritmos de reemplazo del contenido de la memoria cache2LRU: Last Recently Used.
Se corresponde con el principio de vecindad temporal.
2LFU: Last Frecuently Used2Random2FIFO
Autor: Alejandro Furfaro - 2005 34
CABOE#DIRSBACBA
A
4x646
B SAB
32 304
422
12 ó 1332
82385
BM/IO#BD/C#BW/R#
A lamemoriaCACHE CALEN
CT/R#
CS0#-CS3#
COEA#-COEB#CWEA#-CWEB#
CLK2RESET
ADS#NA#
LOCK#
M/IO#,D/C#,W/R#
BE0#-BE3#
A2-A31
READY#READYO#
BRDYEN#
BREADY#
BACP
BAOE#
LDSTB
DOE#BT/R#
BHOLD
BHLDA
WBS
FLUSH
MISS#
BLOCK#
BNA#BADS#
BBE0#-BBE3#
CLK2RESET
ADS#NA#
LOCK#
M/IO#,D/C#,W/R#
BE0#-BE3#
A2-A31
D0-D31D0-D31
READY#
386D X
Desdecircuito deOSC/RESET
343032
READY deotro 386DX
BREADY3BA2-BA31BD0-BD31
BUS LOCAL DEL 386DX
D
Q
CPOE# 4x374
CPOE#
374
D
Q
Ejemplo: Interfaz entre la CPU 386DX y el controlador cache 82385
Autor: Alejandro Furfaro - 2005 35
Implementaciones prácticas de memoria cache (1)
Intel 804862 8 Kbytes de cache L1 on chip2 Tamaño de línea: 16 bytes2Organización asociativa de 4-vías Pentium2 dos caches on-chip, uno para datos y otro para
instrucciones.2 Tamaño de cada cahe: 8 Kbytes2 Tamaño de línea: 32 bytes2Organización asociativa de 4-vías PowerPC 6012 cache on-chip de 32 Kbytes2 Tamaño de línea: 32 bytes2Organización asociativa de 8-vías
Autor: Alejandro Furfaro - 2005 36
PowerPC 6032 Dos caches on-chip, una para datos y otra para
instrucciones2 Tamaño de cada cache: 8 Kbytes2 Tamaño de línea: 32 bytes2 Organización asociativa de 2-vías (organización del cache
más simple que en el 601 pero un procesador mas fuerte)PowerPC 6042 Dos caches on-chip, una para datos y otra para
instrucciones2 Tamaño de cada cache: 16 Kbytes2 Tamaño de línea: 32 bytes2 Organización asociativa de 4-vías
PowerPC 6202 Dos caches on-chip, una para datos y otra para
instrucciones2 Tamaño de cada cache: 32 Kbytes2 Tamaño de línea: 64 bytes2 Organización asociativa de 8-vías
Implementaciones prácticas de memoria cache (2)
Autor: Alejandro Furfaro - 2005 39
Cache Multi Level (L1, y L2 cache)
Arquitectura de cacheen dos niveles
CPUCPU
Memoria Cache L1
Memoria Cache L2Memoria Cache L2
MemoriaDRAM
principal
MemoriaDRAM
principalInterfaz con el sistema
Interfaz con el sistema Ejemplo práctico: Procesador 80486DX.
Fue el primero en introducir esta arquitectura
Autor: Alejandro Furfaro - 2005 41
Arquitectura Superescalar
Arquitectura de procesamiento en la que se puede iniciar varias instrucciones en forma simultánea y ejecutarse en forma independienteEl pipeline permite que varias instrucciones estén ejecutándose en un mismo momento, pero siempre que se encuentren cada una en diferentes etapas del pipelineUn 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 clockExisten dos modelo para lograr este efecto2 Superpipeline2 Superescalar
Autor: Alejandro Furfaro - 2005 42
Cada etapa del pipelinese subdivide en su etapas de modo de procesar cada etapa varias instrucciones por cada ciclo de clock
Arquitectura superpipeline de dos vías.
Autor: Alejandro Furfaro - 2005 43
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
Arquitectura superescalar de dos vías. Dos Pipelines de instrucciones
Autor: Alejandro Furfaro - 2005 44
Limitaciones al modelo superescalar
Dos o mas instrucciones compiten por acceso en el mismo momento al mismo recurso:2 Registro.2 Dirección de Memoria2 Unidad funcional del procesador
Las instrucciones de transferencia de flujo (denominadas branch, y que son generalemnetsaltos, 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.
Autor: Alejandro Furfaro - 2005 45
Procesador Pentium: Características
Arquitectura Superescalar2Dos pipelines de instrucciones
U pipeline: Ejecuta instrucciones enteras o de punto flotante (equivale a la Unidad de ejecución del 486)V pipeline. Ejecuta solo instrucciones enteras en paralelo con el U.
2Dependencia de Información.2Dependencia de Recursos.Bus externo de datos de 64 líneas2 Asegura la lectura de dos instrucciones a la vez
ya que ejecuta dos instrucciones a la vezBranch Prediction2 Branch Target BufferDos Cache L1 internas: una de datos (8 Kbytes) y otra de código (8 Kbytes)
Autor: Alejandro Furfaro - 2005 46
Procesador Pentium: Diagrama Interno
Dos pipelinesde instruccionesU pipeline: Ejecuta instrucciones enteras o de punto flotante (equivale a la Unidad de ejecución del 486)
V pipeline. Ejecuta solo instrucciones enteras en paralelo con el U.
Bus externo de datos de 64 líneas.Asegura la lectura de dos instrucciones a la vez para que pueda ejecutar dos instrucciones a la vez
Dos Cache L1 internas: una de datos (8 Kbytes) y otra de código (8 Kbytes)
Branch Prediction
Autor: Alejandro Furfaro - 2005 47
Branch Prediction
Emplea Predicción estática de salto (es decir, asume que siempre salta).Brach Target Buffer (BTB). 2 El procesador guarda en ese buffer la dirección
destino de una instrucción de branch durante la etapa de decodificación.
2 En el caso de que la predicción almacenada por la Unidad de decodificación del pipeline (U o V) haya sido exacta la instrucción se ejecuta sin atascos ni flushes del pipeline.
2 Si al momento de la evaluación de la dirección de salto esta no coincide con la predicción almacenada en el BTB, debe buscarse el targetcorrecto y se flushea el contenido de los pipelines.
4 ciclos de clock de demora en V pipeline3 ciclos de clock de demora en el U Pipeline
Autor: Alejandro Furfaro - 2005 48
Pentium MMX
Modelo de Ejecución SIMD (Single Instruction Múltiple Data). 2 A partir del procesador Pentium, Intel introdujo
en la arquitectura un set de recursos para el tratamiento de señales.
2 Aplicaciones multimedia (audio, gráficos y video), y de comunicaciones
2 Permite efectuar en una sola instrucción varias operaciones aritméticas de cálculo
2 La mayor parte del trabajo en los algoritmos de procesamiento de gráficos, audio, video, o filtros digitales para telecomunicaciones, consiste en ejecutar la misma operación sobre una extensa lista de datos relativamente pequeños (en general de 8 o 16 bits).
Autor: Alejandro Furfaro - 2005 49
Single Instruction Multiple Data SIMD
R1 X1 Op.Básica Y1 ; R2 X2 Op.Básica Y2 ;R3 X3 Op.Básica Y3 ; R4 X4 Op.Básica Y4 ;
Autor: Alejandro Furfaro - 2005 50
MMX : Tipos de datos
Lowbyte
Highbyte
Low wordHigh word
LowDoublewordHighDoubleword
byte
word
Double word
7 0
7 015
0151631
0313263
N
NN+1
NN+2
NN+4
Lowbyte
Highbyte
Low wordHigh word
LowDoublewordHighDoubleword
byte
word
quadword
7 0
7 015
0151631
0313263
N
NN+1
NN+2
NN+4
Autor: Alejandro Furfaro - 2005 51
MMX : Registros y Tipos de datos empaquetados
MM2 MM3 MM4 MM5
MM0 MM1
MM6 MM7
79 63 0
63 0
Registros MMX
Registros de la FPU
Bytesenteros empaquetados en 64 bits8 bytes empaquetados
Wordsenteras empaquetadas en 64 bits4 words empaquetadas
Doble Wordsenteras empaquetadas en 64 bits2 doble words empaquetadas
Autor: Alejandro Furfaro - 2005 52
Algoritmos DSP
Características 2(1) tipos de datos de poco tamaño, 2(2) patrones de acceso secuencial a
memoria, y 2(3) operaciones simples y recurrentes
sobre los datos de entrada.
Aritmética SaturadaAritmética de desborde
Autor: Alejandro Furfaro - 2005 53
Interrupciones en SMP: El APIC
A partir del Procesador Pentium, Intel agregó al chip del procesador un módulo llamado APIC: AdvancedProgramable Interrupt Controller, es decir Controlador de Interrupciones embebido que soporta multiprocesamientoEl APIC requiere ser específicamente habilitado.Su utilidad se nota cuando se diseñan sistemas con mas de un procesador (Symmetrical Multi Processor = SMP)En un sistema Mono Procesador, se puede trabajar sin habilitarlo, y usar los conocidos 8259Si se lo habilita el procesador transforma los pines de interrupción en:2 PICCLK: Terminal de sincronización con el otro procesador2 PICD0 y PICD1 bus de comunicación de dos alambres
Autor: Alejandro Furfaro - 2005 54
El I/O APIC está incluido en el chipset que acompaña a cada procesador
Si tenemos, por ejemplo, 4 procesadores, los APICs se conectan a través de un juego de tres líneas y por cada requerimiento de interrupción recibido desde los dispositivos de E/S conectados, el I/O APIC reparte las interrupciones entre los diferentes procesadores de acuerdo a las condiciones de disponibilidad obrando como balanceador de carga
Interrupciones en SMP: El APIC
Autor: Alejandro Furfaro - 2005 56
APIC Interrupt Controller
Fuentes de interrupciones del APIC:2 Locales: Ingresan por los pines del procesador (con el APIC
habilitado se llaman LINT0 y LINT1).2 Externas: El I/O APIC externo genera cuando recibe una
interrupción desde algún dispositivo de E/S en particular.2 Inter Processor Interrupts (IPIs): Son enviadas y
recibidas por un procesador para interrumpir a otro o a un grupo de procesadores conectados al mismo bus de sistema.
2 Timer del APIC: Se lo programa para enviar a éste interrupciones periódicas
2 Overflow en el timer de Monitoreo de performance.2 Sensor térmico. Estos procesadores se auto interrumpen
cuando su temperatura supera un valor tope determinado.2 Error interno en el APIC. SI se accede a un registro
inexistente por ejemplo, el APIC se auto genera una interrupción.
Micro-Arquitectura P6
Pentium Pro, Pentium II, Pentium II Xeon, Celeron,
Pentium III, Pentium III Xeon
Autor: Alejandro Furfaro - 2005 58
Micro Arquitectura Three core engines
Emplea Dynamic Instruction SchedulingBasado en una ventana de instrucciones y no en un pipeline superescalar.Las instrucciones se traducen en micro operaciones básicas (µops)Las µops ingresan a un pool (ventana) en donde se mantienen para su ejecuciónLos tres cores tienen plena visibilidad de esa ventana de ejecuciónSe aplica la técnica de ejecución fuera de orden y ejecución especulativa.La unidad de despacho y ejecución mantiene el modelo superescalar y lo combina con un superpipeline de 20 etapas
Bus Interface UnitBus Interface Unit
L1 DCacheL1 DCacheL1 ICacheL1 ICache
L2 CacheL2 Cache
Fetch / Decode
Unit
Fetch / Decode
Unit
Dispatch/Execute
Unit
Dispatch/Execute
Unit
Instruction Pool
Instruction Pool
System Bus
Retire Unit
Retire Unit
Fetch Load
Dispatch /Execute
Unit
Dispatch /Execute
Unit
Store
Autor: Alejandro Furfaro - 2005 59
Funcionamiento del CoreSe tiene un código de este tipo
r1<- mem [r0] /* instrucción 1*/r2 <- r1 + r2 /* instrucción 2*/ r5 <- r5 + r4 /* instrucción 3*/r6 <- r6 - r3 /* instrucción 4*/
Instrucción 1 genera un cache missLa instrucción 2 depende de r1. No es ejecutable hasta no completar r1En este punto un Pentium se detuvo hasta que se recupere el operando apuntado por [r0] desde la memoria del sistemaAl extender la ventana de ejecución el procesador tiene visibilidad de mayor cantidad de instrucciones. El P6 es capaz de ejecutar fuera de orden las instrucciones 3 y 4 que no son dependientes de la 1, mientras la unidad de interfaz con el bus consigue el operando [r0].La unidad de retiro no enviará al exterior los resultados fuera de orden, sino que lo hará de acuerdo a la secuencia establecida en el programa.La Unidad de Retiro puede enviar 3 resultados por ciclo de clock al exteriorDe este modo agrandando tolo lo posible la ventana de ejecución el procesador puede ejecutar fuera de orden y en forma especulativamayor cantidad de instrucciones ante demoras en el acceso a los datos. Las primeras versiones eran capaces de “ver” 20 instrucciones.
Autor: Alejandro Furfaro - 2005 60
SIMD1SIMD1
WIREWIRE
SIMD0SIMD0
Three core engines en detalle
ICache Next_IP
BranchTableBuffer
BranchTableBuffer
Microcode Instruction Sequencer
Microcode Instruction Sequencer
Register Alias Table
Register Alias Table
Bus Interface UnitBus Interface Unit
L2 CacheL2 CacheSystem Bus
Reservation Station
Port 0
Port 1
Port 2
Port 3,4
Reservation Station
Port 0
Port 1
Port 2
Port 3,4
FEUFEU
IEUIEU
JEUJEU
IEUIEU
AGUAGU
AGUAGU
Retirement Register
File
Retirement Register
File
Memory Interface
Unit
Memory Interface
Unit
L1 DCacheL1 DCache
Load
Store
µop1 µop2 µop3 µop4 µop5 µop6 µop7 µop8 µop9 µop10 µop11 µop12 µop13 µop14 µop15 µop16
Re Order Buffer (Instruction Pool)
Simple Instruction
Decoder
Simple Instruction
Decoder
Simple Instruction
Decoder
Simple Instruction
Decoder
Complex Instruction
Decoder
Complex Instruction
Decoder
Memory ReorderBuffer
Memory ReorderBuffer
EU: Execution UnitIEU = Integer EUFEU = Floating Point EUJEU = Jump EUAGU = Address Generation Unit
Autor: Alejandro Furfaro - 2005 61
Three core engines en detalle (cont.)Next_IP: Índice al cache de Instrucciones basado en el contenido que le provee el BTBICache, envía a la Unidad de Decodificación la línea apuntada por Next_IP y la siguiente, (total = 16 bytes alineados)La Unidad de Prebúsqueda rota los 16 bytes para justificarlos a los decodificadores y les marca el comienzo y fin de cada instrucciónLos decodificadores de Instrucción toman las instrucciones IA-32 contenidas en los 16 bytes y las convierten en µops (código de operación decodificado listo para ejecutar, dos operandos fuentes, un operando destino, y algunos bits de estado)2 Instrucciones simples
La mayoría se traduce en 1 µopEl resto entre 2 y 4 µops
2 Instrucciones complejas: Son tomadas por el MicrocodeInstruction Sequencer que generará la secuencia necesaria de µops
Autor: Alejandro Furfaro - 2005 62
Three core engines en detalle (cont.)
Las µops se encolan en el Register Alias Table en donde se convierten las referencias a los registros IA-32 a referencias a registros internos de la Micro Arquitectura P6.Luego las µops se inyectan en el pool (o Re OrderBuffer)La Unidad de Despacho y Ejecución las toma de este buffer mediante el bloque denominado Reservation Station y las deriva a sus diferentes puertos de ejecución.2 El criterio de selección no es el orden que ocupan en el flujo
de programa sino el estado que indican los bits correspondientes de cada µop.
Si estos bits indican que los operandos fuente de la instrucción están listos, se chequea si el recurso necesario para ejecutar esta µop está disponible.Si lo está se ejecutaUn procesador P6 puede despachar 5 µops por los diferentes ports de ejecución. Sin embargo se despachan 3 a lo sumo.
Autor: Alejandro Furfaro - 2005 63
Three core engines en detalle (cont.)
Las µops de discontinuidad de flujo (branch) se marcan en el pipeline con la dirección de caída y la dirección que se le predice.Cuando se ejecuta la instrucción en la JEU2 Si la dirección resultante coincide con la predicción
almacenada en el BTB el resultado del procesamiento especulativo realizado en el Pool de Instrucciones se considera válido.
2 Si el resultado no coincide entonces la JEU cambia el estado de todas las operaciones de la rama que se ejecutóespeculativamente considerándola válida, y se las remueve del Pool Instrucciones.
Unidad de Retiro 2 Chequea el estado de las µops en el pool (o Re Order
Buffer). En busca de ejecutadas y sin ninguna µopprecedente aún sin retirar del Pool de Instrucciones.
2 Una vez retirada del Pool, escribe el destino IA-32 de la instrucción original con el resultado.
Autor: Alejandro Furfaro - 2005 65
Extensiones SSE
Agrega tipos de datos de 128-bit empaquetando dos números de punto flotante doble precisiónAgrega a SIMD tipos de datos enteros de 128-bit para operaciones enteras de 16-byte, 8-word, 4-doubleword, o 2-quadword.Agrega a SIMD soporte para aritmética sobre operandos enteros de 64-bit.Agrega instrucciones de conversión entre tipos de datos nuevos y existentes.Extiende el soporte para cacheabilidad y operaciones de ordenamiento de memoria.
XMM7XMM6XMM5XMM4XMM3XMM2XMM1XMM0
127 0
XMM7XMM6XMM5XMM4XMM3XMM2XMM1XMM0
127 0
Autor: Alejandro Furfaro - 2005 66
Extensiones SSE Modelo completo de programación
Registros originales de la IA-32Modelo de programador de Aplicaciones
Registros introducidos porla Tecnología MMX
Registros introducidos porlas Extensiones SSE
XMM7XMM6XMM5XMM4XMM3XMM2XMM1XMM0
127 0
MM7MM6MM5MM4MM3MM2MM1MM0
63 0
GSFSESDSSSCS
15 0
ESPEBPEDIESIEDXECXEBXEAX
31 0
EFlags
EIP
31 0
31 0
232 -1
0
Espacio deDireccionamiento
De Memoria
MXCSR31 0
Registros originales de la IA-32Modelo de programador de Aplicaciones
Registros introducidos porla Tecnología MMX
Registros introducidos porlas Extensiones SSE
XMM7XMM6XMM5XMM4XMM3XMM2XMM1XMM0
127 0
XMM7XMM6XMM5XMM4XMM3XMM2XMM1XMM0
127 0
MM7MM6MM5MM4MM3MM2MM1MM0
63 0
MM7MM6MM5MM4MM3MM2MM1MM0
63 0
GSFSESDSSSCS
15 0
GSFSESDSSSCS
GSFSESDSSSCS
15 0
ESPEBPEDIESIEDXECXEBXEAX
31 0
EFlags
EIP
31 0
31 0
ESPEBPEDIESIEDXECXEBXEAX
31 0
EFlags
EIP
31 0
31 0
232 -1
0
Espacio deDireccionamiento
De Memoria
MXCSR31 0
Autor: Alejandro Furfaro - 2005 68
Micro Arquitectura NetBurst: Diagrama
Bus UnitBus Unit
Level 2 CacheLevel 2 Cache
SystemSystem BusBus
MemoryMemory SubsystemSubsystem
Level 1 Data CacheLevel 1 Data Cache
Excecution UnitsExcecution Units
IntegerInteger andand FP FP ExcecutionExcecution UnitsUnits
BTB/Branch PredictionBTB/Branch Prediction
Fetch/DecodeFetch/Decode Trace CacheMicrocode ROMTrace Cache
Microcode ROM
FrontFront EndEnd
Out-of-Orderexcecution
logic
Out-of-Orderexcecution
logicRetirementRetirement
OutOut--OfOf--OrderOrder EngineEngine
BranchBranch HistoryHistory UpdateUpdate
Autor: Alejandro Furfaro - 2005 69
Micro Arquitectura NetBurst: Bloques
Front end:2 Fetch/decode unit
2 Execution trace cache. Tamaño 12K µops.2 Funciones básicas:
Prebúsqueda de instrucciones para ser ejecutadasBúsqueda de instrucciones que aún no han sido prebuscadasDecodificación de las instrucciones en micro-operacionesGeneración de micro código para instrucciones complejas Envío al Trace caché de ejecución de las instrucciones decodificadas (µops). Predicción de saltos mediante algoritmos mas avanzados
Autor: Alejandro Furfaro - 2005 71
Pentium IV: Diagrama detallado
Front End BTB(4K entries)
Trace Cache BTB(256 entries)
Instruction/TLB Prefetcher
Trace Cache12K μops
Quad Pumped
3.2 Gbyte/seg
BusInterface
Unit
Instruction Decoder
μops Queue
Microcode ROM
Allocator / Register Renamer
Memory μop Queue Integer / Floating Point μop Queue
Memory SchedulerFast Simple FPSlow /General FP Scheduler
Integer Register File / Bypass Network FP Register / Bypass
AGULoad
Address
AGUStore
Address
2xALUSimpleInstruc
2xALUSimpleInstruc
Slow ALUComplexInstruc
FPMMXSSE
SSE2
FPMove
L1 Data Cache (8Kbyte 4-way) (256 bits)
Cache L2256 Kbytes
8 vías
L2 Cache Control Unit
48 Gbytes/seg
System Bus
(256 bits)
Autor: Alejandro Furfaro - 2005 72
Pentium IV: Extensiones SIMD2
Seis tipos de datos:2 128-bit packed double-precision floating-point (dos IEEE
Standard 754 doble precisión2 Valores de punto flotante empaquetados en una doble
quadword)Bytes enteros empaquetados en 128 bitsWords enteras empaquetadas en 128 bitsdoubleword enteras empaquetadas en 128 bitsquadword enteras empaquetadas en 128-bits
Instrucciones de soporte para estos tipos de datosOperaciones:2 instrucciones sobre punto flotante doble precisión
empaquetados y escalares2 Instrucciones enteras SIMD adicionales de 64 y 128 bits2 Versiones de 128 bits de las instrucciones SIMD enteras
introducidas con la tecnología MMX Extensiones SSE2 Instrucciones adicionales para control de cacheabilidad y
ordenamiento de instruciones
Autor: Alejandro Furfaro - 2005 73
SSE, SSE2, SSE3: Tipos de datos
Lowbyte
Highbyte
Low wordHigh word
Low DoublewordHigh Doubleword
Low QuadwordHigh Quadword
byte
word
Double word
quadword
doublequadword
7 0
7 015
0151631
0313263
06364127
N
NN+1
NN+2
NN+4
NN+8
Lowbyte
Highbyte
Low wordHigh word
Low DoublewordHigh Doubleword
Low QuadwordHigh Quadword
byte
word
Double word
quadword
doublequadword
7 0
7 015
0151631
0313263
06364127
N
NN+1
NN+2
NN+4
NN+8
Autor: Alejandro Furfaro - 2005 74
Hasta el Pentium III inclusive, los APICs de los diferentes procesadores se interconectaban por un juego de tres líneas: PICCLK, PICD0 y PICD1En el caso del P IV se tiene que los APICs se circulan IPIs y mensajes directamente a través del Bus del Sistema
El APIC en la Micro Arquitectura NetBurst
Autor: Alejandro Furfaro - 2005 76
Tecnología Hyperthreading
Front End NetBurst(a) Búsqueda con L1 ICache Hit(b) Búsqueda con L1 ICache Miss
Autor: Alejandro Furfaro - 2005 77
Tecnología Hyperthreading
Motor de ejecución Fuera de Orden con Hyperthreading
Autor: Alejandro Furfaro - 2005 78
Tecnología Hyperthreading
Modelo de procesamiento de dos threads(a) Un procesador Hyperthreading(b) Un procesador Dual Core