06b y 04a Microprocesadores 20201

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 58

ARQUITECTURA DE COMPUTADORAS

Unidad nro 6b y 4a
Microprocesadores

Jorge Echevarría
Reseña histórica de los microprocesadores x86

 El Intel 8080 fue un microprocesador diseñado y fabricado por Intel. Se considera el


primer diseño de CPU verdaderamente usable. Trabajaba con 8 bits y fue lanzado en
abril de 1974. Funcionaba a 2 MHz. Fue el antecesor de la familia X86.

 Junio 1978: lanzamiento del primer procesador x86, el 8086 de 16 bits. Un Año más
tarde se lanzó el Intel 8088.

 Agosto 1981: se anuncia la “IBM Personal Computer” basada en el Intel 8088.

 Febrero 1982: se lanza el Intel 286 (80286) a 8 MHz. Utiliza modo protegido.

 Octubre 1985: se lanza el Intel 386 - 32 bits y 16 MHz. Unidad de administración de


memoria (MMU), paginado y algoritmos más eficientes.

Jorge Echevarría
Reseña histórica de los microprocesadores x86

 Abril 1989: Intel anuncia el 486. Pipeline, Caché L1 y unidad de punto flotante
integrados.

 Marzo 1992: el 486 DX2 es el primer procesador x86 con multiplicador de reloj. El
bus funcionaba hasta 33 MHz, pero el procesador a 66 MHz.

 Marzo 1993: se lanza el Intel Pentium a 66 MHz. Diseño superescalar con dos
pipelines, Bus de 64 bits, unidad de punto flotante poderosa y cachés
independientes.

 Noviembre 1995: se introduce la arquitectura P6 del Pentium Pro que más tarde
formaría parte del Pentium II y el Pentium III. Híbrido RISC y Pipelines profundos.

Jorge Echevarría
Reseña histórica de los microprocesadores x86

 Mayo 1997: Intel anuncia el Pentium II 300. Instrucciones MMX y doble Bus
Independiente.

 Febrero 1999: Intel anuncia el Pentium III a 500 MHz. Instrucciones vectoriales SSE.

 Agosto 1999: AMD Lanza la arquitectura K7 en el Athlon a 650 MHz. Es el primer


microprocesador en llegar a 1 GHz.

 Noviembre 2001: Arquitectura Netburst del Intel Pentium 4 a 1500 MHz. Baja latencia
de cache y alta frecuencia gracias a un muy profundo pipeline.

Jorge Echevarría
Reseña histórica de los microprocesadores x86

 Noviembre 2002: el Pentium 4B llega a 3,06 GHz. Tecnología Hyperthreading. Dos


procesadores lógicos.

 Abril 2003: AMD Opteron a 1,8 GHz, Arquitectura K8. Controlador de memoria
incorporado en el microprocesador.

 Septiembre 2003: AMD Athlon 64. El primer X86 de 64 Bits para escritorio.

 Junio 2004: se lanza el Pentium 4E a 3,6 GHz. El pipeline de 31 etapas.

 Noviembre 2004: Intel anuncia el Pentium 4E de 3.8 GHz y cancela el lanzamiento


del Pentium 4 de 4 GHz. Consumo muy elevado.

Jorge Echevarría
Reseña histórica de los microprocesadores x86

 Mayo 2005: Procesador Pentium D de doble núcleo basado en dos Pentium 4 unidos
por un bus. Frecuencia reducida de 3.2 GHz por alto consumo de Watts.

 Julio 2006: Intel lanza el Core 2 Duo 6400 a 2130 MHz. Primer Procesador de doble
núcleo real de Intel con nueva Arquitectura hibrida. Bus de Pentium 4 y núcleo de
Pentium M (El Pentium M fue un procesador móvil basado en el Pentium III). Diseño
de núcleo con mayor cantidad de unidades de ejecución. Pipeline de 14 etapas. Tres
ALU’s, cuatro FPUs y tres unidades SSE de 128 bits. Menor consumo de Watts que
la arquitectura Netburst del Pentium 4.

 Noviembre 2006: Intel lanza el Core 2 Quad. Procesador de cuatro núcleos basado
en dos Core 2 Duo que comparten el bus de datos y la memoria caché.

Jorge Echevarría
Reseña histórica de los microprocesadores x86

 Noviembre 2008: Intel lanza el Core i7 de nueva arquitectura Nehalem.


 Reemplaza el FSB por QuickPort, Hyper-threading, Memorias de 3 canales
(DDR3), Fabricación de 45 nm.

 Diciembre 2009: Intel lanza el Atom. Este procesador está basado en el viejo
Pentium y fue especialmente diseñado para computadoras ultra portátiles como las
netbooks. Incluido en algunos Smartphones en el 2012.

 Enero 2011: Intel lanza la segunda generación de Core i7 llamada Sandy Bridge con
tecnología de transistores de 32 nm. Este procesador alcanza una frecuencia de
3,4GHz y mediante turbo 3.8 GHz y hay modelos de seis núcleos.

 Abril 2012: Intel lanza la tercera generación de Core i7 llamada Ivy Bridge con
tecnología de 22 nm. Alcanza los 3.5 GHz y 3.9 GHz con turbo.

 Hasta 2020 se han producido procesadores de la línea Core de Intel con evoluciones
y mejoras continuas de dicha arquitectura.

Jorge Echevarría
Tabla histórica
Procesadores Intel 1979-2005
Fecha Número de Frecuencia MIPS
Transistores (Mhz)
8088 Junio 1979 29.000 4.77 Mhz 0,33
286 Febrero 1982 134.000 8 Mhz 1,2
386 Octubre 1985 275.000 16 Mhz 6
486 Abril 1989 1.2 millones 25 Mhz 20
Pentium Marzo 1993 3.1 millones 66 Mhz 117
Pentium Pro Noviembre 1995 5.5 millones 200 Mhz 689
Pentium II Mayo 1997 7.5 millones 300 Mhz 1035
Pentium III Febrero 1999 9.5 millones 500 Mhz 1723
Pentium 4 Noviembre 2000 44 millones 1500 Mhz 3935
P4B HT Noviembre 2002 55 millones 3060 Mhz 8769
P4E 570 Noviembre 2004 125 millones 3800 Mhz 11121
Pentium D 840 Abril 2005 230 millones 3200 Mhz 17427

Jorge Echevarría
Tabla histórica
Procesadores Intel 2005-2012

Número de Frecuencia proceso de


Fecha MIPS
Transistores (Mhz) fabricacion (nm)

Pentium D 840 abril 2005 230 millones 3200 Mhz 17409 90

Core 2 Duo julio 2006 167 millones 2130 Mhz 19576 65

Core 2 Quad enero 2007 582 millones 2660 Mhz 46260 65

Core i7
noviembre 2008 731 millones 3200 Mhz 90750 45
Nehalem

Core i7 Sandy
enero 2011 995 millones 3400 Mhz 130550 32
Bridge

Core i7 Ivy
abril 2012 1400 millones 3500 Mhz 144820 22
Bridge

Jorge Echevarría
Unidad de control (UdC o CU)

Jorge Echevarría
Unidad de Control o UdC

 Es uno de los componentes del CPU, junto con los registros y las unidades de
ejecución (ALU, FPU, SIMD, etc).

 Será la responsable de generar todas las señales eléctricas necesarias para el


funcionamiento tanto dentro como fuera de la CPU, como por ejemplo la
decodificación de instrucciones y su ejecución. Coordina y controla las tareas del
CPU.

 Actualmente, en los procesadores de escritorio, las unidades de control (UDC) son


microprogramadas. Estas UDC poseen una Memoria de Control donde se encuentran
almacenados los microprogramas o microinstrucciones correspondientes para cada
una de las instrucciones de la arquitectura (SET de instrucciones) que es capaz de
ejecutar la CPU.

Jorge Echevarría
UdC

 Cada instrucción pasa por su ciclo de instrucción desde que se busca la instrucción
hasta que se ejecuta. El ciclo es Búsqueda, Decodificación, Búsqueda de operandos
y ejecución.

 En la decodificación de la instrucción ( que está escrita en bajo nivel


por el
programador o por el compilador) se leerá el código de operación de la instrucción
que servirá como dirección de entrada a la memoria de control para encontrar las
microinstrucciones del procesador que deben ejecutarse. En la ejecución se
ejecutarán dichas microinstrucciones.

 Las microinstrucciones son instrucciones de muy bajo nivel programadas en un


firmware o cableadas que determinan como se llevan a cabo cada una de las etapas
del ciclo de instrucción.

 Un conjunto de microinstrucciones se llama microprograma

Jorge Echevarría
UdC

 Cada instrucción (de la aplicación o programa en memoria principal programadas por


el programador) en alto nivel (java, C#, Python, etc) se convertirá en instrucciones de
bajo nivel por el interprete o el compilador.

 Para cada instrucción de bajo nivel en binario, existirá un microprograma dentro de la


UDC, más precisamente en la Memoria de Control que está dentro de la unidad de
control.

 Un Microprograma es una secuencia de microinstrucciones, que determinará al


conjunto de señales eléctricas necesarias para la ejecución de cada etapa del ciclo de
instrucción

 La ejecución de dichas microinstrucciones tienen como base la señal de reloj o clock


que marca el paso de los acontecimientos.

Jorge Echevarría
UdC

 Los “1” y “0” almacenados en las microinstrucciones de los microprogramas de la


Memoria de Control se corresponderán con los valores eléctricos que tomarán las
señales de control que emita la UDC. Estas señales ordenaran lecturas y escrituras
en registros, operaciones a la ALU , direccionamiento, etc.

 La ventaja de las unidades de control microprogramadas es que es posible que el


fabricante agregue nuevas instrucciones con solo almacenar nuevos microprogramas
correspondientes en la Memoria de Control, actualizando el firmware.

 La Memoria de Control es inaccesible al usuario y es grabada por el fabricante del


Microprocesador o por un proceso especial que el fabricante pone a disposición.

Jorge Echevarría
UdC – Ejecución de microinstrucciones
 Ejecución de una microinstrucción en una UdC
microprogramada

 Una instrucción que ha llegado al procesador


desde la memoria principal, por el bus de datos,
se almacena temporalmente el el registro de
instrucción del CPU para ser decodificada. La
instrucción incluye un código de operación.

 El código de operación (CO) llegará al


decodificador (DEC). El CO se utiliza como
dirección de entrada a la memoria de control. De
acuerdo a dicho código el decodificador apunta a
una determinada posición de la memoria de
control donde se encuentra la microoperación
correspondiente a ese código y esta se ejecuta.
 “Ejecutar” esa microoperación implica que los “0” y “1” que hay en esa posición
de la Memoria de Control (el contenido) aparecerán como señales eléctricas que
actuarán sobre los circuitos digitales de la CPU

 Estas señales activarán las conexiones y desconexiones necesarias para que,


en el siguiente pulso de CLK, la información fluya de un registro a otro, opere la
ALU, se envíe alguna señal, etc, según lo requerido.
Jorge Echevarría
UdC – Ciclo de Instrucción

 Un programa está compuesto por instrucciones.


 Cada instrucción se compone de diferentes etapas del ciclo de instrucción.
 Cada etapa del ciclo de instrucción se compone de microinstrucciones.
MOV AX,4C00h

Ciclo de Instruction
Instrucción 1 Fetch
0000101010110
CALC.EXE INC AX
Microinstrucción
Ciclo de Instruction 1
Ejecución del Instrucción 2 Decode
programa 1111101011001

Microinstrucción
Operand 2
Fetch

1011010110000
INT 20h Microinstrucción
Execution
Ciclo de n
Instrucción
IF=1
m

Interruption

Jorge Echevarría
Formato de una instrucción

Código Código Operando Código Operando


Operación direccionamiento1 1 direccionamiento2 2

 El secuenciador es el componente de la UdC cableada que determinará que


microinstrucciónes se ejecutarán de acuerdo al código que recibe del decodificador.
 Se analiza la instrucción que se encuentra en el registro de instrucción.
 Si direccionamiento es inmediato está presente en la propia instrucción en el operando.
 Ej: ADD AX,5 .sumar 5h al contenido del registro acumulador AX.
 Si el código de direccionamiento es directo, es una dirección de memoria donde está el
operando. Ej: ADD AX, [100]. Sumar lo que está en la direccion 100h en el registro AX.
 Puede que la operación no tenga operando, en ese caso el código de operación le
indica al secuenciador como continuar. Ej: fin de programa.
 Veremos direccionamiento en detalle en otra unidad.

Jorge Echevarría
 Recordemos el funcionamiento básico, ahora en más profundidad:
 Cuando la computadora arranca se lee el BIOS que carga las primeras
instrucciones que buscan programas del sistema operativo almacenado en el disco
y los cargan en memoria principal. Luego alguna unidad de memoria secundaria,
como ser un disco rígido, provee un programa cuyas instrucciones pasarán a
través de buses hacia la memoria principal.
 El microprocesador o CPU contiene un registro llamado contador de programa que
contiene la dirección de la próxima instrucción que se va a ejecutar. Utilizando
dicha dirección, mediante el bus de direcciones, el CPU direcciona a memoria
principal, encuentra y se conecta con la celda donde se encuentra la instrucción.
 Por otro lado, el CPU enviará órdenes a través del bus de control, si la orden es
una lectura, se copiará la instrucción leída en la celda de memoria direccionada
para que viaje a través del bus de datos hacia el registro de instrucción o IR del
CPU (Aquí termina la búsqueda). Posteriormente la Instrucción será decodificada.
 La unidad de control del CPU decodificará la instrucción (del programa creado por
el programador) que se encuentra en el registro de instrucción del CPU (IR) e
interpretará que operación se ejecutará(microinstrucciones) mediante el código de
operación, esto es de la siguiente forma:
 Al decodificar, para interpretar la instrucción, la CPU lee algunos bits de la
instrucción llamados código de operación, cop o codop y utilizándolo como
dirección de entrada ubica una celda en una memoria interna de la unidad de
control del CPU llamada memoria de control. Esa celda tiene como contenido las
microinstrucciones del set de instrucciones del fabricante del CPU.
Si la instrucción necesita un operando o dato (por ej una suma) se buscará en los
registros internos, en la memoria caché o se direccionará la memoria principal y a
través del bus de datos llegará un dato a un registro del cpu, como ser el AX.
(Búsqueda de operandos). Finalmente se ejecutarán las microinstrucciones.
Jorge Echevarría
Etapas del ciclo de instrucción
 Con la dirección guardada en el registro Contador de
Programa (CP o IP), la Unidad de Control direcciona
(usando el Bus de direcciónes) la próxima instrucción en
Fetch o Búsqueda memoria principal. La instrucción encontrada en memoria
es copiada en el bus de datos y se almacena en el
Registro de Instrucción (IR). De acuerdo con el tamaño en
bytes de la instrucción aumenta el contador de programa.

 La UdC decodifica la instrucción en IR leyendo el código de


Decode o Decodificacion operación y utilizandolo como entrada de la memoria de
control del CPU para encontrar las microinstrucciones que
se corresponden con dicho código. Luego evalúa la
necesidad de búsqueda de operandos.

 Si se requiere, la UDC Busca los operandos necesarios en


Operand Fetch memoria. Ej si la instrucción es una suma necesita los
operandos (números) para sumar. Ciclo indirecto.
Subetapas: decodificación del código de direccionamiento,
obtener dirección del operando, y captación del operando
(acceso a memoria).
 Por último la UDC emite una orden para que la unidad
Execute o Ejecución correspondiente (ALU, FPU, SIMD, etc) ejecute la
instrucción. Si es una bifurcación a tomar (Condicional, ej
un IF), carga la dirección destino en el registro CP..
Jorge Echevarría
Escritura y Robo de ciclo

 En la última etapa del pipeline que vimos además de ejecutar la instrucción se guarda
el resultado. Muchos procesadores tienen una etapa individual llamada Escritura o
Retiro que específicamente guarda los datos en la memoria. Para lo cual se debe
calcular la dirección y almacenar el resultado accediendo a memoria.

 Robo de Ciclo: el DMA (direct memory access) puede hacer transferencias a memoria
sin incomodar al procesador para que éste pueda seguir trabajando.

Jorge Echevarría
UdC – Ciclo de Interrupción

 Ahora que ocurre si el usuario abre un nuevo programa o si ocurre un error? Hay un
mecanismo que permite que el procesador interrumpa lo que está haciendo para pasar
a hacer un nuevo proceso. Esto se denomina Interrupción y hay una etapa al final del
pipeline que evalúa si hay un pedido de interrupción y la prioridad que tiene.

 Como las CPUs están diseñadas para ser interrumpidas durante la ejecución de sus
programas (y por consiguiente en cada una de sus instrucciones), existen mecanismos
para esta situación que generan una interrupción

 Al suceder esto, la CPU inicia un ciclo de interrupción, el que consiste en la ejecución


de un programa (otro diferente al corriente) que atiende la interrupción. Este programa
está compuesto también por instrucciones

 Esto ocurrirá si la bandera de habilitación de interrupciones (Interrupt flag) está en 1


(IF=1)

Jorge Echevarría
Diagrama de Bloque del procesador Intel 80386

Jorge Echevarría
Los comienzos de la búsqueda de mayor
performance

 Los procesadores 286 y 386 utilizaban algoritmos optimizados y mayor


frecuencia para reducir la latencia de las instrucciones.

 La generación 486 incorporaba varias mejoras:


 La unidad integrada de punto flotante
 El cache L1 integrado
 El multiplicador
 El pipeline

 El multiplicador del 486 DX2 duplicaba la frecuencia interna del


microprocesador, mientras el bus de sistema mantenía la frecuencia original.

Jorge Echevarría
El concepto de pipeline

Procesador sin pipeline

Fetch + Decode + Operand Fetch + Execute

1 Segundo = 1 Hz 4 sumas en 4 segundos

 En este ejemplo vemos un procesador hipotético en el que el ciclo de instrucción


no opera con hardware con pipeline o vía de ejecución. Nuestro procesador tiene
un circuito que realiza todas las etapas del ciclo de instrucción en 1 tick de clock,
es decir opera a 1 Hz.

Jorge Echevarría
El concepto de pipeline

Procesador con pipeline


Fetch Decode Op. Fetch Execute

0,25 Segundo = 4 Hz 4 sumas en 1,75 segundos

 En este otro procesador hipotético dividimos


Ciclo el circuito en cuatro etapas, esto nos permite
1 I1 acelerar el reloj con la duración de la etapa
2 I2 I1 mas larga, en este caso 0,25 segundos por
tick.
3 I3 I2 I1
4 I4 I3 I2 I1
5 I4 I3 I2  Esto permite que mientras un circuito capta
una instrucción, otro podrá decodificar la
6 I4 I3
anterior, otro buscará un operando y otro
7 I4 ejecutará. En un determinado momento todos
operarán juntos y podrán realizar una suma
cada 0,25 segundos.

Jorge Echevarría
Segmentación y Paralelismo

 En la segmentación de instrucciones, cada etapa o segmento de la cadena


está especializada en una tarea específica de la “línea de ejecución” y lleva a
cabo siempre la misma actividad.

 La segmentación o implementación de pipelines o vías de ejecución acelera


el cómputo por medio del concepto de paralelismo.

 Paralelismo Temporal y Espacial


 Espacial: Existen varias unidades funcionales (simultaneidad)
 Temporal: Se solapan tiempos.

Jorge Echevarría
Diagrama de Bloque del procesador Intel 80486

Jorge Echevarría
Diagrama de Bloque del procesador Intel Pentium

Jorge Echevarría
Diagrama de Bloque del procesador ARM Cortex A8

 Samsung Galaxy S

 Motorola Milestone I y II

 Motorola Defy

Jorge Echevarría
Problemas de Pipelines Profundos

0,05 Segundo = 20 Hz Se podrá realizar una suma cada


0,05 segundos? Hay problemas

 El pipelining o segmentación permite al CPU procesar múltiples instrucciones al


mismo tiempo.

 Cuanto más etapas tiene un pipeline cada una realiza menos trabajo y el circuito
es más simple por lo que se puede elevar la frecuencia del procesador y así
aumentar la performance. Pero elevar demasiado el número de etapas lleva a
problemas.

Jorge Echevarría
Problemas de Pipelines Profundos

 Problemas de datos: Dependencias de datos


1. A=X*3 En la 2ª instrucción no se podrá leer el dato A desde el registro
hasta que A no se termine de calcular y guardar en memoria.
2. B=A+1
Cuánto mayor es el pipeline más ciclos se pierden esperando el
resultado.

 Problemas de control: Instrucciones de salto o bifurcaciones


1. If (i==0) El CPU deberá esperar a obtener el resultado de la instrucción
2. A=1 1 al final del pipeline para poder continuar. Luego pondrá en el
contador de programa la dirección de la instrucción 2 o la 4
3. else
según el resultado.
4. A=2
La próxima instrucción puede no ser la que sigue en la
secuencia ya que puede haber un salto. Puede perder ciclos o
predecir el salto.
 Problemas de estructura
Cuando dos instrucciones requieren la misma unidad estructural. Ejemplo: mientras tengo una
operación matemática que requiere varios ciclos de clock en la ALU, el pipeline trae una
instrucción de suma. Con una sola ALU dicha instrucción deberá esperar hasta que la anterior
operación termine.

Jorge Echevarría
Técnicas de tratamiento de salto

 Solución: Predictores de salto estáticos y dinámicos


 Tabla de historia de bifurcaciones, BHT.

 Precarga de instrucciones según la predicción realizada en buffers alternos.

 Flujos múltiples, se siguen ambos cauces.

 Presuponer que salta o que no salta.

Jorge Echevarría
Arquitecturas RISC y CISC
 RISC (Reduced Instruction Set Computing)
 Conjunto de instrucciones simples de longitud fija que hacen menos cosas en
poco tiempo. Ej: ARM, PIC, Power, Sparc, PA-RISC.

 CISC (Complex Instruction Set Computing)


 Cada instrucción puede requerir ejecutar una o varias instrucciones de bajo
nivel (load, calculate y store en una misma instrucción). Ej: primeros CPU x86.

Principales características CISC RISC


Cantidad de instrucciones en lenguaje máquina Muchas Pocas
Cantidad de modos de direccionamiento Muchos Pocos

Cantidad de formatos de instrucción Varios Unico

Cantidad de ciclos de reloj necesarios para Muchas, Uno


ejecutar cada instrucción más de uno
Instrucciones para acceder a la memoria Muchas 2, Load y Store

Registros Pocos Muchos

Jorge Echevarría
Performance del Microprocesador

Performance = IPC x Frecuencia

Minimizar ( Fetch
TB + TD
Decode + O.Fetch
T Ej + TE
Execute )

 Los valores deben viajar más rápido a través del CPU.


 Depende del proceso de fabricación.

 La ALU debe calcular más rápido.


 Depende de hardware adicional. Baja el T ejecución.

 Se debe realizar menos trabajo en un ciclo de reloj.


 Depende de la profundidad del Pipeline.

Jorge Echevarría
Resultados del Pipelining

Eficiencia
Etapas del Frecuencia
del
Procesador Pipeline de Máxima MIPS
Predictor
enteros (Ghz)
(%)
Pentium 5 80 0,23 413
Pentium III 10 90 1 3446
Pentium 4 20 95-98 1,5 3935
AMD athlon XP 10 92 2,2 9142
Pentium 4C 20 95-98 3,4 10102
Pentium 4E 31 98-99 3,8 11121

50% 14%
Jorge Echevarría
Resultados del Pipelining

Eficiencia
Etapas del Frecuencia
del
Procesador Pipeline de Máxima MIPS
Predictor
enteros (Ghz)
(%)
Pentium 5 80 0,23 413
Pentium III 10 90 1 3446
Pentium 4 20 95-98 1,5 3935
AMD athlon XP 10 92 2,2 9142
Pentium 4C 20 95-98 3,4 10102
Pentium 4E 31 98-99 3,8 11121

50% 10%
Jorge Echevarría
Prueba de Laboratorio: Frecuencia
 Intel Pentium 4  AMD Athlon 64
Aumento de Performance en Super Pi con Aumento de Performance en Super Pi con
Frecuencia Variable y Bus de 800 Mhz Frecuencia Variable y Bus de 800 Mhz
58
52
56
Tiempo del test (s)

Tiempo del test (s)


Super Pi 50 49
54 52 Super Pi
52 48
49 46
50
46
48
44 43
46
44 8/10 42 6,5/10 7/10
42 40
40
Athlon 64 1800 Athlon 64 2000 Athlon 64 2200
Pentium4 2600 Pentium4 2800
Procesadores (Mhz)
Procesadores (Mhz)

 PCMARK 2004: Incremento entre 7/10 y 10/10.

 Primodia: Incremento proporcional a la frecuencia.

Jorge Echevarría
Elementos de
arquitecturas RISC:
El P6
 Primer núcleo híbrido RISC. Microops
7 ciclos
de tamaño fijo y renombramiento de
registros.

 El Análisis del Flujo de Datos.

 La ejecución fuera de orden y buffers

 La estación de reserva o Ventana de


instrucciones: 20 instrucciones por ciclo de
reloj.

 El ROB guarda la información de las


instrucciones y verifica la escritura.

 La ejecución especulativa y predicción


de saltos.

 Múltiples unidades de ejecución.

Jorge Echevarría
La arquitectura P6

 La arquitectura P6 fue la primera en


introducir un núcleo híbrido RISC. Las 7 ciclos
primeras seis etapas del pipeline traducen
las operaciones X86 en microops de
tamaño fijo.

 El Análisis del Flujo de Datos analiza y


ordena las instrucciones a ejecutar en una
sucesión óptima, independiente del orden
original del programa. Se implementa con
los buffers.

 La ejecución fuera de orden y buffers

 La estación de reserva almacena hasta 20


instrucciones por ciclo de reloj para enviarlas
después a las unidades de ejecución. Se
denomina también ventana de instrucciones.

 El ROB guarda la información de las


instrucciones que se enviarán al núcleo de
ejecución y posteriormente reestablecer el
orden del programa y verifica que las
escrituras se efectúen en la secuencia
correcta.

Jorge Echevarría
La arquitectura P6

 La ejecución especulativa aumenta


la velocidad de ejecución observando
las instrucciones posteriores al
contador de programa y ejecutando
las instrucciones que posiblemente van
a necesitarse.

 Se decodifican hasta tres instrucciones


y se pueden ejecutar hasta cinco
operaciones por ciclo de reloj. El
promedio es de 2,1 IPC.

 Múltiples unidades de ejecución


El P6 posee dos unidades de enteros,
una de punto flotante, una de
almacenamiento de datos y dos para
el manejo de direcciones.

Jorge Echevarría
La arquitectura P6

Rendimiento
30% mayor.

Pentium P6
Jorge Echevarría
Nota:

 Hasta aquí, de la diapositiva 1 a la 39, el contenido entra en los exámenes.

 De la diapositiva siguiente ,41 en adelante hasta terminar con la unidad de


microprocesadores no entra en los exámenes ya que el contenido es
informativo de actualización relacionado con la clase de microprocesadores
pero no está en el programa.

Jorge Echevarría
Problemas en procesadores superescalares X86

 Dependencias
La unidad de despacho no puede Solución: el análisis del flujo de
enviar la instrucción 2 a la unidad datos, la ejecución fuera de orden y
1. A=C*2 de ejecución adecuada hasta el uso de buffers.
2. B=A+2 que la variable A no este escrita
en algún registro.

 8 Registros de propósito general


AX AX[1] Se referencia a un
conjunto mayor de
 4 sumas por ciclo = 8 operandos + 4 AX[2] registros físicos
resultados. llamados registros
 Operaciones de varios ciclos de duración AX[3] de
Solución: El renombramiento de renombramiento.
AX[4]
registros
AX[5]

Esta unidad acelera el


flujo de trabajo enviado al
 Unidades de ejecución ocupadas procesador.
En el P6 se implementa
Solución: El predictor de saltos mediante el Buffer destino
de bifurcaciones y la tabla
múltiples histórica de saltos.

Jorge Echevarría
Las instrucciones vectoriales
 Paralelismo de procesamiento de datos. Se procesan Vectores.

Performance en compresión de video con


utilizando diferentes tipos de instrucciones
45
38
40 sin optimizar

compresión (cps)
MMX
35 31,2

Velocidad de
SSE
30
25
19,6
20
15
10
5
0
sin optimizar MMX SSE
Tipo de optimización

 Utilizando SSE en la aplicación se midió una Performance 93,9% superior.

Jorge Echevarría
Multithreading e Hypertreading
 Sistema Monoprocesador  Sistema de Multiprocesamiento Simétrico

Jorge Echevarría
Performance con Hypertreading
 Sistema con Hypertreading Aumento de Performance en Sisoft Sandra 2004 sp2b
con Hyperthreading en Pentium 4 a 2,8Ghz
9000
8577
8500 Con HT

Performance (MIPS)
8000 Sin HT
7500 7210
7000
6500
6000
5500
5000
Con HT Sin HT
Procesadores (Mhz)

 El rendimiento con HT fue un 19% superior.


 Una segunda aplicación corre 50% más rápido.

Jorge Echevarría
El Nuevo Paradigma:
los Procesadores de dos Núcleos
 Pentium D  Athlon 64 X2

 Comunicación entre los núcleos: nuevo factor de performance.

Jorge Echevarría
Rendimiento en procesadores
de dos núcleos
Windows Sisoft
3dsmax7 Media Primodia Sandra 2004 Xmpeg/DivX
(s) Encoder (s) Multimedia (fps)
(s) Int
Xeon Nocona (prescott 3,2 Ghz) 238 209 315,71 23887 57,6
Pentium D 840 (3,2 Ghz) 130 147 271,86 39183 77,1
Diferencia 83,07% 42,18% 16,13% 64,03% 33,85%

Athlon 4000+ (2,4 Ghz) 193 217 335,24 17932 55,6


Athlon X2 4800+ (2,4 Ghz) 106 121 241,26 36043 81,8
Diferencia 82,07% 79,34% 38,95% 100% 47,12%

 Incremento hasta el 100 %.

 Incremento aún mayor con varias aplicaciones.

 Multitarea real.
Jorge Echevarría
Los Problemas a partir de 2004

Jorge Echevarría
La Pérdida de energía

 Las capas aislantes de 5 átomos de espesor pierden electrones.

Jorge Echevarría
La disipasión térmica
Disipación de
proceso de
Número de Frecuencia energía
Procesador Fecha fabricacion
Transistores (Mhz) máxima
(nm)
(Watts/cm2)
Pentium Marzo 1993 3.1 millones 66 800 15,5

Pentium Pro Noviembre 1995 5.5 millones 200 600 - 350 37,9

Pentium II Mayo 1997 7.5 millones 300 350 43

Pentium III Febrero 1999 9.5 millones 500 250 34,5

Pentium 4 Noviembre 2000 44 millones 1500 180 71,8

P4B HT Noviembre 2002 55 millones 3060 130 81,8

P4E 570 Noviembre 2004 125 millones 3800 90 115

 La miniaturización no alcanza para frenar el aumento del calor generado.

Jorge Echevarría
Consecuencias del problema energético
Aumento de Performance de los procesadores X86
en los últimos 11 años
12000

10000 Frecuencia
MIPS
Performance

8000

6000

4000

2000

0
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
Año

 Hasta el 2004 el aumento de rendimiento se basó principalmente


en el aumento de frecuencia. De 66 MHz (1993) a 3800 MHz.

Jorge Echevarría
Consecuencias del problema energético
Aumento de Performance de los procesadores X86  El rendimiento continuó
aumentando gracias a la
160000
140000 implementación de mayor
120000 MIPS
cantidad de unidades de
Performance

100000
80000 decodificación, cálculo y
60000
40000
número de cores o núcleos.
20000 Aumentó la cantidad de
0
Instrucciones ejecutadas
Año
por ciclo de reloj (IPC).

Aumento de Frecuencia de los procesadores X86  Al cambiar la filosofía de


4000 diseño en el 2004, la
3500
Frecuencia
frecuencia ha disminuido y
3000
Performance

2500 recién ahora en el año 2012


2000
1500
alcanzó los niveles del año
1000 2004. El motor de
500
0
rendimiento hasta el 2004
fue la frecuencia, luego la
Año cantidad de IPC.

Jorge Echevarría
 3 decodif.
por ciclo de
 3 decodif. reloj.
por ciclo de
reloj.
 2 ALU y 2
FPU
 2 ALU (SIU)
y 1 FPU

Intel Pentium 3
Jorge Echevarría
Diagrama de bloque del
Core i7 Sandy Bridge –
1 Core
 Buffers más grandes.

 Decodificación de cuatro
instrucciones por ciclo de reloj.

 12 unidades de ejecución.

 Unidades vectoriales de 256 bits.

 Hasta 6 de estos cores por


procesador en computadoras de
escritorio.

Jorge Echevarría
Diagrama de bloque
del Core i7 Skylake
(6700K) – 1 Core
 Buffers más grandes.

 Decodificación de cinco
instrucciones por ciclo de
reloj.

 Unidades vectoriales de 512


bits (AVX2).

 8 puertos para envío de


instrucciones a las unidades.

Jorge Echevarría
Diagrama de bloques de AMD Ryzen 3700X (Zen2) –
1 Core

Jorge Echevarría
Páginas web complementarias
 https://en.wikichip.org/wiki/
WikiChip

 https://top500.org/

Jorge Echevarría

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy