Procesadores de 32 bits. Tecnologías, Organización y Micro Arquitectura

Procesadores de 32 bits Tecnologías, Organización y Micro Arquitectura Tecnología de Integración Nanotecnología Tecnología de Integración 65 nm n

14 downloads 177 Views 3MB Size

Story Transcript

Procesadores de 32 bits Tecnologías, Organización y Micro Arquitectura

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 Autor: Alejandro Furfaro - 2008

3

Tecnología de Integración: EUV MET EUV MET = Extreme Ultra Violet Micro Exposure Tool Luz Ultravioleta

Proceso de Litografía

Máscara

Autor: Alejandro Furfaro - 2008

Lentes para reducir la imagen Oblea de metal grabado a ser expuesta

Tamaño=K1*λ*NA K1: Factor de complejidad λ : Longitud de onda de la exposición NA: Apertura Numérica 4 (tamaño) del lente

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, su chipset, la memoria, o cualquier otro chip. 

Autor: Alejandro Furfaro - 2008

5

Ley de Moore

Autor: Alejandro Furfaro - 2008

6

Pipeline Tecnológico: Fuente IDF2009

Autor: Alejandro Furfaro - 2008

7

Relación entre el pipeline tecnológico y las microarquitecturas

Autor: Alejandro Furfaro - 2008

8

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 seis diferentes generaciones de MicroArquitectura para mas de 15 modelos de procesadores. Autor: Alejandro Furfaro - 2008

10

Enfoques

CISC (Complex Instruction Set Computer) Instrucciones que realizan tareas complejas

RISC (Reduced Instruction Set Computer) Instrucciones que realizan operaciones sencillas

Autor: Alejandro Furfaro - 2008

11

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 Autor: Alejandro Furfaro - 2008

12

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

Autor: Alejandro Furfaro - 2008

13

Ciclo de instrucciones: Etapas clock Búsq. Instruc.

 



Decod

Busq. Operando

Ejec

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 Autor: Alejandro Furfaro - 2008

14

Pipeline de instrucciones 





Técnica que permite superponer en el tiempo la ejecución de varias B usq. B usq. instrucciones a la vez In st. 1 In st. 2 No requiere hardware adicional. Solo se necesita D e c .F I lograr que todas las partes In st. 1 del 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. Busq. B usq. In st. 3 In st. 4 In st. 5 In st. 6 In st. 7 D ec. D ec. D ec. D ec. D ec. In st. 2 In st. 3 In st. 4 In st. 5 In st. 6 B usq. O p. 1

B usq. O p. 2

B usq. O p. 3

Busq. O p. 5

E je c . E je c . E je c . E je c . In st. 1 In st. 2 In st. 3 In st. 4 E s c r ib . E s c r ib . E s c r ib . Res. 1 Res. 2 Res. 3

Resultado Una vez en régimen ejecuta a razón de una instrucción por ciclo de clock

Autor: Alejandro Furfaro - 2008

B usq. O p. 4

15

Etapas de un pipeline 

Podemos desagregar mas las micro operaciones y generar pipelines de mas etapas. Ej:

Autor: Alejandro Furfaro - 2008

16

Etapas de un pipeline 

Incluir el chequeo de interrupciones

Autor: Alejandro Furfaro - 2008

17

Profundidad del pipeline. Casos concretos μArchitecture Pipeline stages ARM7TDMI(-S) 3 ARM7EJ-S 5 ARM810 5 ARM9TDMI 5 ARM1020E 6 XScale PXA210/PXA250 7 ARM1136J(F)-S 8 ARM1156T2(F)-S 9 ARM Cortex-A5 8 ARM Cortex-A8 13 AVR32 AP7 7 AVR32 UC3 3 DLX 5 Intel P5 (Pentium) 5 Intel P6 (Pentium Pro) 14 Intel P6 (Pentium III) 10 Autor: Alejandro Furfaro - 2008

μArchitecture Pipeline stages Intel NetBurst (Willamette) 20 Intel NetBurst (Northwood) 20 Intel NetBurst (Prescott) 31 Intel NetBurst (Cedar Mill) 31 Intel Core 14 Intel Atom 16 LatticeMico32 6 R4000 8 StrongARM SA-110 5 SuperH SH2 5 SuperH SH2A 5 UltraSPARC 9 UltraSPARC T1 6 UltraSPARC T2 8 WinChip 4 LC2200 32 bit 5

18

Pipeline de seis etapas

Autor: Alejandro Furfaro - 2008

19

Efecto de un branch en un Pipeline de seis etapas

Autor: Alejandro Furfaro - 2008

20

Branchs versus eficiencia del pipeline  Para

tratar de minimizar este impacto se implementan unidades de predicción de saltos.

 Criterios  Asumir

que nunca se salta

 Asumir

que siempre se salta

 Predecir  Branch

por OpCOde de las instrucciones previas.

Target Buffer

 Utilizar

una memoria ultrarrápida con una tabla de historia de saltos.

Autor: Alejandro Furfaro - 2008

21

Predicción de saltos  Ej: JECXZ continuar

Asumir que nunca se salta

otro: lodsd ; aqui hacemos algo con eax stosb Asumir que loop otro

siempre se salta

continuar:

Autor: Alejandro Furfaro - 2008

22

Branch Target Buffer 

Con un contador de 2 bits se implementa una máquina de estados.



Cada vez que salta incrementa. Cada vez que no salta decrementa. En los extremos de cuenta, satura.



Con los dos valores mas bajos del contador predice “No Saltar”



Con los dos mas altos predice “Saltar”

Autor: Alejandro Furfaro - 2008

23

Branch Target Buffer

Autor: Alejandro Furfaro - 2008



Algoritmo que salta una vez cada dos.



La máquina arranca “Strongly Not Taken”



Pasa de “Strongly Not Taken” a Weakly Not Taken”, y vuelve a “Srongly Not Taken”.



No acierta nunca!!



Con un buffer puede corregir y la máquina de estados avanza entre los estados 2 y 3 y predice correctamente24

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 Existen dos modelos para lograr este efecto  

Super pipeline Superescalar

Autor: Alejandro Furfaro - 2008

25

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

Autor: Alejandro Furfaro - 2008

26

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. Autor: Alejandro Furfaro - 2008

27

Arquitectura super pipeline de dos vías. Cada etapa del pipeline se subdivide en su etapas de modo de procesar cada etapa varias instrucciones por cada ciclo de clock

Autor: Alejandro Furfaro - 2008

28

Comparaciones

Autor: Alejandro Furfaro - 2008

29

Efecto de las Dependencias

Autor: Alejandro Furfaro - 2008

30

Casos de Pipelining en el IA-32

Autor: Alejandro Furfaro - 2008

31

Ejemplo de Super pipeline: Pentium IV

Autor: Alejandro Furfaro - 2008

32

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

Autor: Alejandro Furfaro - 2008

34

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. Autor: Alejandro Furfaro - 2008

35

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 Autor: Alejandro Furfaro - 2008

36

Estructura de Bus clásica 

CONTROL

DATOS

ADDRESS

Procesador

Bus de Control

Buffer de Datos

Buffer de Address

Bus Local del Procesador

BUS DEL SISTEMA

Memoria del Sistema Autor: Alejandro Furfaro - 2008

E/S del Sistema

Desde fines de los años 80, los procesadores desarrollaban velocidades muy superiores a los tiempos de acceso a memoria.



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? 37

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

Autor: Alejandro Furfaro - 2008

91

92

93

94

95

96

97

98

99

00

38

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.

Autor: Alejandro Furfaro - 2008

39

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



El arte consiste en 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. Autor: Alejandro Furfaro - 2008

40

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

Autor: Alejandro Furfaro - 2008

41

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

Envía ítem a la CPU

Fin Autor: Alejandro Furfaro - 2008

42

Estructura de Bus del sistema con cache

Memoria cache

CONTROL

ADDRESS

DATOS

CONTROL

Procesador

Bus Local del procesador

Controlador de Memoria caché

Buffer de Datos

Buffer de Address

Bus Local del controlador cache

Bus de Control

Autor: Alejandro Furfaro - 2008

BUS DEL SISTEMA

43

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: Algoritmo de convolución for (i = 0 ; i < 256 ; i++ ){ suma = 0.0f; for (j = 0 ; (j Tamaño Cache L1 Velocidad Cache L1 > Velocidad Cache L2

Autor: Alejandro Furfaro - 2008

CPU

Cache controller System Memory (DRAM)

56

Coherencia de cache 

Protocolo MESI M - Modified: Línea presente solamente en éste cache que varió respecto de su valor en memoria del sistema (dirty). Requiere write back hacia la memoria del sistema antes que otro procesador lea desde allí el dato (que ya no es válido).  E – Exclusive: Línea presente solo en esta cache, que coincide con la copia en memoria principal (clean).  S – Shared: Línea del cache presente y puede estar almacenada en los caches de otros procesadores.  I – Invalid: Línea de cache no es válida.  Aplica a cache L1 de datos y L2/L3  Para cache L1 de código solo Shared e Invalid 

Autor: Alejandro Furfaro - 2008

57

Implementaciones prácticas de memoria cache (1) 

Intel 80486

8 Kbytes de cache L1 on chip  Tamaño de línea: 16 bytes  Organización asociativa de 4-vías 



Pentium

dos caches on-chip, uno para datos y otro para instrucciones.  Tamaño de cada cahe: 8 Kbytes  Tamaño de línea: 32 bytes  Organización asociativa de 4-vías 



PowerPC 601

cache on-chip de 32 Kbytes  Tamaño de línea: 32 bytes  Organización asociativa de 8-vías 

Autor: Alejandro Furfaro - 2008

58

Implementaciones prácticas de memoria cache (2) 

PowerPC 603    



PowerPC 604    



Dos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 8 Kbytes Tamaño de línea: 32 bytes Organización asociativa de 2-vías (organización del cache más simple que en el 601 pero un procesador mas fuerte) Dos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 16 Kbytes Tamaño de línea: 32 bytes Organización asociativa de 4-vías

PowerPC 620    

Dos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 32 Kbytes Tamaño de línea: 64 bytes Organización asociativa de 8-vías

Autor: Alejandro Furfaro - 2008

59

Micro-Arquitectura 386 80386DX, 80386SX

Antecedentes: Familia iAPx86 de Intel  Se

presenta en 1978 con el Microprocesador 8086.  Arquitectura

de 16 bits.  Intel se compromete a mantener compatibilidad ascendente en los posteriores procesadores  En

1982 se presenta el 80286.

 Capacidad

de direccionamiento de Memoria 16

Mbytes.  Mantiene la arquitectura de 16 bits  Incorpora capacidades para implementar Multitarea Autor: Alejandro Furfaro - 2008

61

Procesador 80386DX (1985)  

Primer miembro de la Arquitectura IA-32 de Intel Características Extiende la capacidad de los registros internos a 32 bits, manteniendo compatibilidad con los registros de 16 bits de los procesadores iAPx86.  Buses de Datos y Direcciones de 32 bits. 

 



Lee palabras de 32 bits en un solo ciclo de bus Direcciona hasta 4 Gbytes de memoria física (RAM).

Unidad de Gestión de Memoria Avanzada  

Capacidad 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.

Arquitectura Pipeline avanzada  3 Modos de trabajo 

  

Real Protegido Virtual 86

Autor: Alejandro Furfaro - 2008

62

Procesador 80386DX: Diagrama Interno B.I.U.

M.M.U.

BUS DE DIRECCION EFECTIVA

UNIDAD DE PAGINACION

32

SUMADOR DE 3 ENTRADAS

SUMADOR

32

RGISTROS DESCRIPTORES

32

PLA DE LIMITES Y ATRIBUTOS

ARCHIVO DE REGISTROS

DE

CONTROL

UNIDAD DE DECODIFICACION

DESPLAZADOR SUMADOR MULTIPLICAR DIVIDIR

BUS DE DES PLA ZAM IEN TO

UNIDAD DE EJECUCION

BUS

STATUS FLAG

ALU CONTROL

PRIORIZACION DE REQUERIMIENTOS

DRVER DE DIRECCIONES

C.P.U.

CONTROL DE PIPELINE / TAMAÑO DEL BUS

INTERNO

MULTIPLEXORES / TRANSCEPTORES UNIDAD DE BUSQUEDA

PREDECODIFICADOR DE INSTRUCCIONES

PREBÚSQUEDA / CHEQUEO DE LIMITES

ROM DE CONTROL

COLA DE HASTA 3 INSTRUCCIONES DECODIFICADAS

COLA DE HASTA 16 BYTES DE CÓDIGO

STREAM DE CODIGO DE 32 BITS

HOLD, INTR,NMI, ERROR, BUSY RESET,HLDA

CACHE DE PAGINAS

DECODIFICACION Y SECUENCIAMIENTO

CONTROL

32

PLA DE CONTROL Y ATRIBUTOS

BU S DE DI RE CCI ON ES LIN EAL ES

UNIDAD DE TESTEO Y PROTECCION

UNIDAD DE CONTROL DEL BUS

CON TRO L

BUS DE DIRECCION EFECTIVA

UNIDAD DE SEGMENTACION

BUS DE DIRECCIONES FISICAS

BE0 BE3 A2 - A31 M/IO, D/C, W/R, LOCK ADS, NA, BS16 READY D0 - D31

32

BUS DE BUSQUEDA DE CODIGO Y TABLA DE PAGINAS

32 BUS DEDICADO A LA ALU

Autor: Alejandro Furfaro - 2008

63

80386 - Pinout P 1 2

5 6 7

N

M

L

K

J

G

F

E

D

C

A8

V ss

V cc

V cc A 31 A 29 A 24

V ss A 18

V cc V ss

A13 A10

A7

A5

V ss

V ss V cc A 28 A 25 V ss A 19

V cc V ss

A12 A9

A6

A4

A3

D 29 V cc V ss

A2

NC

NC

D26 D 27 D 31

V cc V ss

V cc

V ss D 25 D 28

NC

V ss

D 24 V cc V cc

N C IN T R V cc

V cc D 23 V ss 10 11 12 13 14

A

A16 A15 A14 A11

8 9

B

A30 A27 A26 A23 A21 A20 A17

3 4

O

NC

R ESET B U SY# Vss V cc

D 19 D 17 V ss V ss

D 18 D 16 D 15 V cc C LK2 B e0# V cc

V ss

D 13 D 11 V cc D 8

D5

Vss D 1 READY# N C N C N A # B e1# B e2# B e3#

Vss D 9 H LD A D 6

D4

D3

D2

L

K

J

N

M

D0

V ss

D 14 D 12 D 10 V cc D 7

O

2 3 4 5 6 7 8

PREQ NM I ERRO R#

D22 D 21 D 20

P

1

Autor: Alejandro Furfaro - 2008

V c c N C M /IO #

V cc V ss A D S# H O LD B s16# V ss V cc G

F

E

D

C

B

9 10 11 12 13 14

Alimentación.

20 terminales para Vcc y 21 para Vss (o tierra)

Reloj CLK2

Bus de Datos

D0 a D31 Se pueden agrupar en bytes (D0-D7, D8-D15, D16-D23, D24-D31)

Bus de Address A2 a A31 BE0# BE1# BE2# BE3#

A

64

80386: Manejo de Memoria organizada en bytes con 32 líneas de address

0 4 8 C

A 2-A

1 5 9 D

A 2-A

2

A 2-A

E 3 B F

A 2-A

31

D

24

-D

31

D 0-D

16

-D

31

B y te A lin e a d o W o r d N o A l in e a d a D o b le W o r d N o A l in e a d a W o r d N o A l in e a d a B y t e N o A li n e a d o W o r d N o A l in e a d o D o b le W o r d A l in e a d a

31

D 8-D D

31

D i r e c c ió n 0 1 - 2 3 - 6 7 - 8 9 A - B C - F

23

A 2-A

7

15

D 0-D BE

80386

31

0

31

BE

1

BE

2

Be3

CS CS CS CS Autor: Alejandro Furfaro - 2008

65

80386 - Generación de A0 y A1 a partir de BE0-3# BE3# BE2# BE1#

BE0#

A1

A0 = BLE#

BHE#

0 0 0 0

0 0 0 0

0 0 1 1

0 1 0 1

0 0 x 1

0 1 0 0

0 x x 0

0 0 0 0

1 1 1 1

0 0 1 1

0 1 0 1

x x x 1

x x x 1

x x x 0

1 1 1 1 1

0 0 0 0 1

0 0 1 1 0

0 1 0 1 0

0 0 x 1 0

0 1 x 0 0

0 0 x 1 0

1 1

1 1

0 1

1 0

0 0

1 0

0 1

1

1

1

1

x

x

x

Significado

Dword alineada 3 1 eros bytes de dword no alineada * word o 2 1 eros bytes de dword no alineada * * * byte solo o principio de una word o dword no alineada 3 últimos bytes de dword no alineada word no alineada * Byte word alineada o mitad final de una dword no alineada byte byte solo o final de una word o dword no alineada ** BE3

BE1 BE0 00 BE2 00 01 11 10

Autor: Alejandro Furfaro - 2008

0 X 0 0

01

11

10

0 X 0 0

1 1 X X

X X 0 X

A1= BE1.BE0

BE1# BE0#

A1

66

80386 - Generación de A0 y A1 a partir de BE0-3# BE3

BE1 BE0 BE2 00 01 11 10

00

01

11

10

0 X 0 0

1 X 1 1

0 1 X 0

X X 0 X

A0= BE1.BE0+BE2.BE0= BLE# BE1# BE0#

A0

BE2# BE0#

BLE#

BE1 BE3

BE0 00 BE2 00 01 11 10

0 X 0 0

Autor: Alejandro Furfaro - 2008

01

11

10

0 X 0 0

0 0 X 1

X X 1 X

BHE#= BE1.BE30 BE1# BE3#

BHE#

67

80386 - Pinout Señales de estado del ciclo de Bus ciclo de bus = tiempo que transcurre para realizar una transferencia completa por el bus del sistema

W/R# : Write/Read#. M/IO# : Memoria/Input Output#. D/C# : Data/Control#. M/IO# D/C# W/R# 0 0 0 LOCK# 0 0 1 0 1 0 ADS# : Address 0 1 1 1 0 0 Status. 1 0 1

1

Autor: Alejandro Furfaro - 2008

1

0

Tipos de ciclo de Bus Reconocimiento de Interrupción

Bus Inhibido

-

Si -

Lectura de E/S Escritura de E/S

No No

Lectura de código de Memoria HALT SHUTDOWN Dirección = 2 Dirección = 0 BE0# = 1 BE0# = 0 BE1# = 1 BE1# = 1 BE2# = 0 BE2# = 1 BE3# = 1 BE3# = 1 A2-A31 = 0 A2-A31 = 0

No

Lectura de datos de memoria

No

Algunos ciclos

68

80386 - Pinout 



 

Señales de estado del ciclo de Bus 

Marcan la finalización de un ciclo de bus, el ancho del bus de datos para cada ciclo, y la posibilidad de adelantar durante el ciclo de bus en curso información correspondiente al ciclo de bus siguiente



Ready#



BS16# : Bus Size 16.



NA# : Next Address.

8

80386



HOLD : Requerimiento del bus.



HLDA : Reconocimiento de

requerimiento de bus.

D0-D7

MEMORIA CS

30 A2-A31

BE3# BE2# BE1# BE0#

Señales de Interrupción. INTR : INTerrupt Request.

 NMI : Non Maskable Autor: Alejandro Furfaro - 2008

MEMORIA CS

8

Arbitraje del Bus



D8-D15

Interrupt

A1 LOGICA AUXILIAR

BLE# BHE#

69

Ejemplo: Interfaz entre la CPU 386DX y el controlador cache 82385 12

ó 13

Desde circuito de OSC/RESET

32

82385

A la memoria CACHE 4 2 2

CALEN

CLK2

CT/R#

RESET

CS0#-CS3#

CLK2

ADS#

ADS#

NA#

COEA#-COEB# CWEA#-CWEB#

NA#

LOCK#

BE0#-BE3#

BHLDA

READYO#

WBS

BRDYEN#

FLUSH

BREADY#

MISS#

BAOE#

BNA#

LDSTB

BADS#

DOE#

BBE0#-BBE3#

BT/R#

A2-A31 D0-D31 READY#

READY de otro 386DX

CAB OE# DIR SBA CBA

32

Autor: Alejandro Furfaro - 2008

BE0#-BE3#

BACP

BLOCK#

4

M/IO#,D/C#,W/R#

30 32

A2-A31

READY#

LOCK#

3 4

M/IO#,D/C#,W/R#

BHOLD

386D X

RESET

A

D 4x646

CP OE#

BUS LOCAL DEL 386DX

4x374

374

Q

B SAB

BD0-BD31

D

CP OE#

30

Q

BA2-BA31

3

BM/IO# BD/C# BW/R#

BREADY

70

Micro-Arquitectura 486

80486DX, 80486SX, 80486DX2, 80486DX4

Procesador 80486: Diagrama Interno

Autor: Alejandro Furfaro - 2008

72

Cache Multi Level (L1, y L2 cache)

Ejemplo práctico: Procesador 80486DX. Fue el primero en introducir esta arquitectura Autor: Alejandro Furfaro - 2008

73

Micro-Arquitectura P5 Pentium, Pentium MMX

Procesador Pentium: Características 

Arquitectura Superescalar 

Dos 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.

Dependencia de Información.  Dependencia de Recursos. 



Bus externo de datos de 64 líneas 



Branch Prediction 



Asegura la lectura de dos instrucciones a la vez ya que ejecuta dos instrucciones a la vez Branch Target Buffer

Dos Cache L1 internas: una de datos (8 Kbytes) y otra de código (8 Kbytes) Autor: Alejandro Furfaro - 2008

75

Procesador Pentium: Diagrama Interno

Branch Prediction

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

Autor: Alejandro Furfaro - 2008

Dos pipelines de instrucciones U pipeline: Ejecuta instrucciones enteras V pipeline. Ejecuta o solo de punto flotante instrucciones (equivale a laparalelo Unidad enteras en decon ejecución el U. del 486)

Dos Cache L1 internas: una de datos (8 Kbytes) y otra de código 76 (8 Kbytes)

Branch Prediction 

Emplea Predicción estática de salto (es decir, asume que siempre salta).



Brach Target Buffer (BTB). 

El procesador guarda en ese buffer la dirección destino de una instrucción de branch durante la etapa de decodificación.



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.



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 target correcto y se flushea el contenido de los pipelines. 

4 ciclos de clock de demora en V pipeline



3 ciclos de clock de demora en el U Pipeline

Autor: Alejandro Furfaro - 2008

77

Interrupciones en SMP: El APIC 

A partir del Procesador Pentium, Intel agregó al chip del procesador un módulo llamado APIC: Advanced Programable Interrupt Controller,



Controlador de Interrupciones embebido que soporta multiprocesamiento



El 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 PIC’s 8259 presentes en el motherboard (siempre!! Necesario para asegurar Compatibilidad)



Si se lo habilita el procesador transforma los pines de interrupción en: 

PICCLK: Terminal de sincronización con el otro procesador



PICD0 y PICD1 bus de comunicación de dos alambres

Autor: Alejandro Furfaro - 2008

78

Interrupciones en SMP: El APIC 

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

Autor: Alejandro Furfaro - 2008

79

Interrupciones en SMP: El APIC

Autor: Alejandro Furfaro - 2008

80

APIC Interrupt Controller 

Fuentes de interrupciones del APIC: 

Locales: Ingresan por los pines del procesador (con el APIC habilitado se llaman LINT0 y LINT1).



Externas: El I/O APIC externo genera cuando recibe una interrupción desde algún dispositivo de E/S en particular.



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.



Timer del APIC: Se lo programa para enviar a éste interrupciones periódicas



Overflow en el timer de Monitoreo de performance.



Sensor térmico. Estos procesadores se auto interrumpen cuando su temperatura supera un valor tope determinado.



Error interno en el APIC. SI se accede a un registro inexistente por ejemplo, el APIC se auto genera una interrupción.

Autor: Alejandro Furfaro - 2008

81

Micro-Arquitectura P6 Pentium Pro, Pentium II, Pentium II Xeon, Celeron, Pentium III, Pentium III Xeon

Micro Arquitectura Three core engines System Bus

L2 Cache

Bus Interface Unit L1 ICache Fetch

Fetch / Decode Unit

Dispatch /Execute Unit





L1 DCache Load





Store 

Retire Unit





Instruction Pool Autor: Alejandro Furfaro - 2008

Emplea Dynamic Instruction Scheduling Basado 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ón Los tres cores tienen plena visibilidad de esa ventana de ejecución Se 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 super pipeline de 20 etapas 83

Funcionamiento del Core Consideremos el siguiente código genérico r1

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.