procesadores de 32 bits tecnologías y arquitecturagjoyuela/presentaciones/procesador ia... ·...

74
Procesadores de 32 bits Tecnologías y Arquitectura

Upload: vankien

Post on 30-Sep-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Procesadores de 32 bits

Tecnologías y Arquitectura

Tecnología de Integración

Como se llega a la nanotecnología

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.

Arquitectura IA-32

Diferentes versiones de Micro-Arquitecturas

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

Micro-Arquitectura 386

80386DX, 80386SX

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)

Micro-Arquitectura 486

80486DX, 80486SX, 80486DX2, 80486DX4

Autor: Alejandro Furfaro - 2005 38

Procesador 80486: Diagrama Interno

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

Micro-Arquitectura P5

Pentium, Pentium MMX

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 55

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 64

Pentium II y III: Ports de Ejecución

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

Micro Arquitectura NetBurst

Pentium IV, Xeon,Pentium IV HT, Pentium M

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 70

Pentium IV: Out of Order Core

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 75

Tecnología Hyperthreading

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

Autor: Alejandro Furfaro - 2005 79

Extensiones SS3

13 instrucciones. 2Diez instrucciones nuevas de soporte SIMD 2Una para acelerar el estilo de

programación de punto flotante x87 en conversiones a enteros

2MONITOR y MWAIT aceleran la sincronización de threads.