Está en la página 1de 7

Requisitos, cuellos de botella y buena fortuna: agentes para la

evolución de los microprocesadores

YALE PATT, FELLOW, IEEE

Papel invitado

El primer microprocesador, el Intel 4004, apareció en 1971. Contenía 2300 transistores y


funcionaba a una frecuencia de reloj de 108 kHz. Hoy, 30 años después, el microprocesador
contiene casi 200 millones de transistores, operando a una frecuencia de más de 1 GHz. En
cinco años, se espera que esos números aumenten a más de mil millones de transistores en
un solo chip, operando a una frecuencia de reloj de 6 a 10 GHz.

La evolución del microprocesador, desde donde comenzó en 1971 hasta donde está hoy y donde es probable que esté en cinco
años, se ha producido gracias a varias fuerzas contribuyentes. Nuestra posición es que esta evolución no sucedió simplemente, que
cada paso hacia adelante fue el resultado de una de tres cosas, y siempre dentro del contexto de un arquitecto de computadoras que
hace concesiones. Las tres cosas son: 1) nuevos requisitos; 2) cuellos de botella; y 3) buena fortuna. los llamé Figura 1. El microprocesador
hoy.

colectivamente agentes para la evolución.


Este artículo intenta hacer tres cosas: describir un marco básico para el campo de los microprocesadores, mostrar algunos de los compensaciones. Esto ha sido especialmente
cierto a lo largo de la evolución.
desarrollos que se han producido en los 30 años transcurridos desde el lución del microprocesador.
rival del primer microprocesador, y finalmente, sugieren algunos de los
cosas nuevas que puede esperar ver en un microprocesador de alto rendimiento en los
B. Niveles de transformación
próximos cinco años.

Palabras clave— Arquitectura informática, microarquitectura, microprocesador, diseño de La cantidad de transistores y sus tiempos de conmutación son recursos
microprocesadores, evolución de microprocesadores. proporcionados por la tecnología de proceso. Para qué usamos esos recursos
depende de las demandas del mercado. Cómo usamos esos recursos es de lo que
se trata el microprocesador. La figura 1 muestra los niveles de transformación que
I. B ASIC F RAMEWORK
un problema, expresado en algún lenguaje natural como el inglés, debe
A. Arquitectura informática: una ciencia de compensaciones

La arquitectura informática es mucho más "arte" que "ciencia". pasar por resolver. En un sentido real, son los electrones los que mejoran Nuestras capacidades y
conocimientos a medida que experimentamos más en realidad hacen el trabajo y resuelven el problema. Sin embargo, dado que cases. Los arquitectos informáticos se basan
en su experiencia con nosotros no hablamos “electrón” y los electrones no hablamos de ningún diseño previo al tomar decisiones sobre proyectos actuales. Si es un lenguaje
natural, lo mejor que podemos hacer es trans-

La arquitectura de la computadora es una ciencia en absoluto, es una ciencia de la forma del problema a través de los niveles que se muestran en la Fig.1 hasta que
alcanzar el nivel de electrones (o dispositivo), es decir, los 200 millones
compensaciones. Los arquitectos informáticos durante el último medio siglo han
transistor, chip de 1 GHz.
continuó desarrollando una base de conocimiento para ayudarlos
En el camino, la solución del problema se formula primero como
practicar su oficio. Casi siempre el trabajo de la computadora es
un algoritmo para eliminar las características inaceptables de
chitect requiere usar ese conocimiento fundamental para hacer
lenguaje natural, como la ambigüedad. Luego se codifica en un
lenguaje mecánico y compilado a la arquitectura del conjunto de instrucciones
(ISA) del microprocesador particular. La ISA es la interfaz acordada que: 1) el
Manuscrito recibido el 29 de mayo de 2001; revisado el 6 de agosto de 2001.
programa compilado usa para decirle al microprocesador lo que (el programa)
El autor pertenece a la Universidad de Texas en Austin, Austin, TX 78712-1084 EE. UU. (Correo
electrónico: patt@ece.utexas.edu ).
necesita hacer y 2) el microprocesador usa para saber qué debe realizar
Identificador de artículo del editor S 0018-9219 (01) 09681-5.

0018–9219 / 01 $ 10.00 © 2001 IEEE

PROCEDIMIENTOS DEL IEEE, VOL. 89, NO. 11 DE NOVIEMBRE DE 2001 1553


en nombre del programa. La ISA se implementa mediante un conjunto Vale la pena señalar que la "conciencia de poder" es diferente de
de estructuras de hardware colectivamente denominadas micro, otro punto de diseño importante, "baja potencia". Hay muchos procesadores de microarquitectura.
Cada estructura de hardware y aplicaciones donde la consideración primordial es que el
Sus interconexiones están hechas de circuitos electrónicos digitales, el microprocesador opera durante un largo período de tiempo utilizando un sistema muy que a su vez está compuesto por
dispositivos electrónicos. pequeña fuente de energía.
Cuando decimos "microprocesador" hoy, generalmente nos referimos a En cada caso, suele ser el problema que estamos abordando.
la región sombreada de la Fig. 1. Es decir, cada controlador de microprocesador (ver nuevamente la Fig. 1) que dicta el punto de diseño para el microprocesador

una serie de circuitos que implementan estructuras de hardware (coprocesador y las compensaciones resultantes que deben realizarse. Lectivamente llamado
microarquitectura) que proporcionan una
terface (llamado ISA) al software. En el caso de la D. Espacio de aplicación
computadora personal, la ISA es la IA-32, y la microarquitectura
tecture es el Pentium IV de Intel, o en días anteriores, el Pentium La palabra "Problema" en la Fig. 1 es un comodín para el Ap-
III, Pentium II, Pentium Pro, 486, etc., o K-8 de AMD, o en espacio de aplicación, es decir, el conjunto de aplicaciones para las que

días anteriores, K-7, K-6, etc. desea utilizar microprocesadores. Este conjunto está aumentando en un

Hay otras NIA; por ejemplo, SPARC (de Sun Minomenal rate, y se espera que continúe haciéndolo. De hecho, crosystems), Alpha (de Compaq) y Power-PC
(desde que la gente sueñe con más usos para las computadoras, el Motorola e IBM). Cada uno tiene sus propias idiosincrasias que necesitan microprocesadores y
las ventajas y desventajas de cada uno lo convierten en una interfaz mejor o peor, ya que lo que un compilador puede hacer seguirá expandiéndose. Es decir, el
espacio de la aplicación se entrega, o cómo la microarquitectura puede realizar el trabajo. (o, más bien, las aplicaciones de importancia central) impulsan el Para
cada ISA, existen múltiples microarquitecturas distintas. punto de diseño. Ya hemos mencionado la alta disponibilidad Hemos mencionado varios para el IA-32. Para
el Alpha, procesadores donde las aplicaciones exigen que el microteléfono sea, por ejemplo, el 21064, 21164,

El procesador nunca falla. Y procesadores de baja potencia donde

En cada paso de la jerarquía, desde la elección del algoritmo hasta las aplicaciones que deben poder ejecutarse durante mucho tiempo en un lenguaje pequeño, desde ISA hasta la
microarquitectura, pasando por los circuitos, hay una cantidad de energía.
Otros ejemplos del espacio de la aplicación que continúan
opciones y, por lo tanto, compensaciones.

A menudo, pero no siempre, la elección es entre mayor rendimiento y la necesidad de puntos de diseño únicos son los siguientes: rendimiento y menor costo.
Una analogía con el automóvil es 1) aplicaciones científicas como aquellas cuya computación
instructivo. Se puede construir un automóvil deportivo de alto rendimiento que controlan las centrales nucleares, determinan dónde
puede pasar de 0 a 100 mph en prácticamente 0 segundos. Pero será perforar en busca de petróleo y predecir el clima;

ser muy caro. O bien, se puede construir una au- 2) aplicaciones basadas en transacciones muy económicas, como las que permiten a un móvil que nunca podría llegar a 100
mph, pero que recorre 100 millas. manejar transferencias de cajeros automáticos y negocios de comercio electrónico;

a un galón de gasolina. Uno no obtiene rendimiento y 3) aplicaciones de procesamiento de datos comerciales, como las
economía. Esa es la compensación. que manejan el control de inventario, las nóminas, la actividad del IRS y el
mantenimiento de varios registros de personal, ya sean empleados,
estudiantes o votantes;
C. Puntos de diseño
4) aplicaciones de red, como enrutamiento de alta velocidad de paquetes de
Internet, que permiten que la conexión de su sistema doméstico
El diseño de un microprocesador se trata de hacer concesiones importantes. Nos
aproveche Internet;
referimos al conjunto de consideraciones, junto con la importancia relevante de cada
5) aplicaciones de entrega garantizada (también conocidas como en tiempo real) que
una, como el "punto de diseño" para el microprocesador, es decir, las características
requieren el resultado de un cálculo en un plazo crítico determinado;
que son más importantes para el uso del microprocesador, de modo que uno está
dispuesto a ser menos preocupado por otras características. El rendimiento, el costo,
6) aplicaciones integradas, donde el procesador es un componente de un sistema
la disipación de calor y el consumo de energía son ejemplos de características que
más grande que se utiliza para resolver la aplicación (generalmente) dedicada;
afectan fuertemente un punto de diseño. Otra es la “alta disponibilidad”: se puede
diseñar un microprocesador donde la consideración más importante es el requisito
7) aplicaciones de medios como las que decodifican archivos de video y audio;
de que el microprocesador nunca falle. Algunos clientes están dispuestos a aceptar
un rendimiento más bajo o un costo más alto.
8) paquetes de software aleatorios que a los usuarios de escritorio les gustaría ejecutar
en sus PC.

si pueden estar seguros de que el microprocesador nunca fallará. Cada una de estas áreas de aplicación tiene un conjunto muy diferente de
caracteristicas. Cada área de aplicación exige un conjunto diferente
A este tipo de procesador lo llamamos "tolerante a fallas" o altamente disponible.
de las compensaciones que se deben realizar al especificar el microprocesador para
Otros clientes están dispuestos a sacrificar un poco el desempeño. mance, si se combina con
ahorros sustanciales en energía
requisitos. Este punto de diseño se ha vuelto cada vez más importante a medida que los requisitos de potencia y energía
del E. Los fundamentos del procesamiento

Los chips de mayor rendimiento se han vuelto inaceptablemente más grandes En pocas palabras, un microprocesador procesa las instrucciones. A y más grande. Una vez más, hay una
compensación: el rendimiento más alto hace esto, tiene que hacer tres cosas: 1) proporcionar instrucciones a la conciencia de energía o.
núcleo del procesador donde cada instrucción puede hacer su trabajo; 2)

1554 PROCEDIMIENTOS DEL IEEE, VOL. 89, NO. 11 DE NOVIEMBRE DE 2001


suministrar los datos necesarios para cada instrucción; y 3) realizar el regreso a casa hace mucho tiempo. La creatividad de los ingenieros para llegar a las operaciones requeridas por cada
instrucción. con respuestas donde hay problemas; sin soluciones, no habría evolución.

F. Suministro de instrucciones Sostengo que estas cosas vienen en segundo lugar, y que las funciones de
forzamiento (que he llamado Agentes para la Evolución) han sido nuevos requisitos,
En los primeros días del suministro de instrucciones, se recogía una instrucción a la vez, se
cuellos de botella y buena suerte.
decodificaba y se enviaba al núcleo para su procesamiento.
cesando. A medida que pasa el tiempo, el número que se puede buscar de una vez ha aumentado de uno a cuatro y
muestra signos de A. Agente I: Nuevos requisitos

pronto crecerá a seis u ocho. Tres cosas pueden estorbar Los primeros microprocesadores limitaban el procesamiento a lo que uno
de proporcionar completamente al núcleo instrucciones para procesar: in podría lograr obteniendo una instrucción en cada ciclo, destrucción de errores de caché,
rupturas de búsqueda y codificación de rama condicional de esa instrucción y reenviarla y sus datos a las predicciones erróneas. falla, unidades funcionales en el
núcleo para su procesamiento. La demanda de suministro de instrucciones cae a cero hasta que la caché pierde un rendimiento más alto que dicta que se atiende la
búsqueda de una instrucción. Se produce una interrupción de búsqueda cuando una instrucción de cada ciclo era insuficiente. El resultado es que el problema
amplio obtenido es una rama tomada, lo que inutiliza todo el subse-microprocesador, donde el mecanismo de búsqueda permite obtener múltiples instrucciones
obtenidas en el mismo ciclo, independientemente de que se obtengan, decodifiquen y envíen múltiples instrucciones al ancho del problema.

que todas las instrucciones obtuvieron desde la rama mal predicha Otro ejemplo, también debido a los requisitos de alto rendimiento
representan un esfuerzo desperdiciado, y deben desecharse antes de la pro-formacion, fue la necesidad de que mas de una instrucción se ceda a lo largo de la ruta de
instrucción correcta. procesado al mismo tiempo. Solo se puede hacer un ADD a la
tiempo si uno tiene solo una ALU. El resultado fue la inclusión de múltiples unidades
G. Suministro de datos funcionales en el núcleo de ejecución.

Para suministrar los datos que necesita una instrucción, uno necesita el Hoy, el nuevo requisito predominante implica la capacidad de tener disponible un suministro
infinito de datos necesarios, sumption, o lo que se conoce como comos conscientes de la potencia para suministrarlos en tiempo cero, y en costo razonable.
Computación de datos real. El requisito es proporcionar el mismo nivel de almacenamiento que no puede adaptarse a estos tres requisitos. Thp

rendimiento externo como un diseño anterior, mientras consume un


Lo mejor que podemos hacer es una jerarquía de almacenamiento, donde una pequeña fracción de la energía requerida para ese diseño anterior. Se puede acceder a la nota de los
datos (en el chip) en uno a tres ciclos, mucho que esto es diferente del requisito de baja potencia de emmore Se puede acceder a los datos (también, en el chip) en diez a 16 ciclosb,
procesadores edded, que ha sido un punto de diseño importante y aún se puede acceder a más datos (fuera del chip) en cientos de veces durante algún tiempo.

ciclos. El resultado es que el almacenamiento de datos reales sufre de latencia Existe una gran sensación de que mañana es nuevo obtener un elemento de datos en
particular y el requisito de ancho de banda involucrará la interfaz humana, que es deseable para mover ese elemento de datos desde su ubicación en el
almacenamiento que exige cada vez más atención como interjerarquía computadora / humano en el núcleo del procesador donde se necesita.
la acción se vuelve cada vez más omnipresente.

A pesar de lo mala que es esta latencia fuera del chip hoy en día, está empeorando todo el tiempo. Continúan las mejoras en el tiempo de
ciclo del procesador B. Agente II: Cuellos de botella

crecer a un ritmo mucho más rápido que el tiempo de ciclo de la memoria. en un Hemos identificado arriba los tres componentes de la instrucción.
Dentro de unos años esperamos ver accesos de datos fuera del chip al procesamiento de la memoria (el suministro de instrucciones, el suministro de datos y el transporte requieren miles de ciclos de

procesador. las operaciones de la instrucción), y lo que cada uno implica.


Con mucho, la mayoría de las mejoras al microprocesador se han producido debido
H. Procesamiento de instrucciones a los intentos de eliminar los cuellos de botella que

Para realizar las operaciones requeridas por estas instrucciones, ventile estos tres componentes para que no hagan su trabajo.
se necesita una cantidad suficiente de unidades funcionales para procesar. Por ejemplo, el suministro de instrucciones requiere buscar algunos datos tan pronto como los datos
estén disponibles, y un número suficiente — hoy en día cuatro — instrucciones en cada ciclo. Si estas interconexiones para suministrar instantáneamente un resultado
producido por estructuras se almacenaran en la memoria, el tiempo para buscar una unidad funcional a la unidad funcional que lo necesita sería demasiado largo. El cuello de
botella es la memoria lenta. Por lo tanto, la fuente. Sin embargo, suficientes interconexiones no son suficientes. Se inventó la caché de instrucciones.

A medida que disminuyen los tiempos de ciclo en el chip, la latencia requerida para obtener cuatro resultados de instrucciones producidos por unidades funcionales
en una parte, pero la segunda instrucción es una rama condicional, solo chip a unidades funcionales en otras partes. del chip donde se buscarían estas dos —no
cuatro— instrucciones. Los resultados de la botella son necesarios a medida que los operandos de origen empeoran.
El cuello, que es causado por la rama condicional, es la disposición de las
instrucciones en el orden producido por el compilador, en lugar del orden
(dinámico) en el que se ejecutan las instrucciones. La nueva función, que se
II. A CABALLEROS PARA mi VOLUCIÓN
agregó recientemente a
Muchas cosas han ayudado al desarrollo del microprocesador: el Pentium IV, es el Trace Cache, que almacena las instrucciones. Cesor: La voluntad del público
comprador de recoger lo que en el orden en el que se han ejecutado recientemente, no los vendedores producen, sin un mercado, tendríamos todo en el orden
(estático) designado por el compilador.

PATT: REQUISITOS, BOTELLAS Y BUENA FORTUNA 1555


Finalmente, si se van a proporcionar instrucciones en cada ciclo, una gran proporción de fallas de caché. El problema con las fallas de caché era que cuando se
encontraba una rama, el retraso en salir del chip para satisfacer la falla era demasiado grande. que determina si la rama debe ser o no. El resultado: dos niveles de
caché en el chip, por lo que aún no se conoce una falla en la toma. Se podría esperar a que ocurra esa condición, la caché de primer nivel rápida y pequeña podría
satisfacerse con una caché más grande, que se resolverá, deteniendo temporalmente la recuperación de instrucciones de caché de segundo nivel más lenta que aún
era mucho más rápida que hasta que se produzca esta resolución. Ese cuello de botella se alivió con el chip. Esta característica no apareció en los
microprocesadores con la introducción de predictores de rama, que adivinan si hasta el Alpha 21164 alrededor de 1994. Hoy,

de acuerdo con esta suposición.


C.Predicción de ramas
C. Agente III: Buena fortuna Los beneficios de la canalización se pierden si las ramas condicionales
La buena suerte ocurre cuando algo causa una ganancia inesperada y produce paradas en la tubería a la espera de que se resuelva la condición en la que se puede usar
para proporcionar características adicionales a la sucursal. Microprocesador de rama de hardware (tiempo de ejecución). Un buen ejemplo de esto es que los predictores de
tecnología no aparecieron en el chip del microprocesador hasta que se redujo, lo que permite una próxima implementación de un microprocesador a principios de la década de
1990. Algunos de los primeros microprocesadores que ocuparon menos espacio en el chip que los predictores de rama de tiempo de ejecución de implementación anteriores
fueron el MC88110 de Motorola. Con menos espacio requerido por el diseño anterior, más Alpha 21064 de Digital y Pentium de Intel. hay espacio disponible para hacer otras
cosas. Dos ejemplos de

otras cosas que se introdujeron en el microprocesador en D. Unidad de punto flotante en chip


de esta manera fueron el acelerador de punto flotante en el chip en el Los primeros microprocesadores tenían un chip separado para manejar
a mediados de la década de 1980 y la extensión de instrucción multimedia, operaciones de coma flotante. A medida que los transistores se hicieron más pequeños y la capacidad se agregó en el chip a fines de la

década de 1990. chips se hicieron más grandes, el recuento de transistores alcanzó el punto
donde la unidad de punto flotante podría colocarse en el mismo chip con la unidad de
III. mi VOLUCIÓN: F ROM 1971 A T ODAY procesamiento principal, utilizando un repuesto "nuevo"

El microprocesador ha evolucionado drásticamente desde la capacidad y ahorrando comunicaciones innecesarias fuera del chip. simples transistores 2300 del
Intel 4004 a lo que es hoy. El Motorola MC88100 y el Intel 486 fueron dos primeros. Como se sugirió anteriormente, esa evolución se debió a varios chips para
incorporar la unidad de punto flotante en las cosas principales. El resultado es que el Pentium IV de hoy tiene un pequeño chip de procesador a fines de la década
de 1980.

parecido al Intel 4004 de 1971.


E. Unidades funcionales especializadas adicionales
Algunos ejemplos de esa evolución son los siguientes.
Los primeros microprocesadores tenían uno o muy pocos
A. Canalización unidades. A medida que crecía el número de transistores en un chip, también

Los primeros microprocesadores procesaban una instrucción desde el reconocimiento de que la ejecución concurrente podía explotarse desde el inicio hasta el retiro antes de
comenzar con la siguiente instrucción. con múltiples unidades funcionales. Primero se agregaron cosas como la canalización separada, que había existido al menos desde la década de
1960, se agregaron las ALU de direcciones. Luego, una solución más sofisticada en computadoras mainframe fue una solución obvia para esa unidad funcional de carga /
almacenamiento que contiene estructuras como el cuello de botella en el rendimiento de escritura. Los microprocesadores comercialmente viables, una cola pendiente faltante y un
mecanismo para procesadores como el Intel 8086 introdujeron la primera desambiguación gradual de la memoria y se convirtieron en parte del proceso general hacia la canalización a
fines de la década de 1970 al precargar el siguiente chip de microprocesador en la década de 1990. El i860 de Intel, en 1986, fue

instrucción mientras se estaba ejecutando la instrucción actual. uno de los primeros en tener múltiples unidades funcionales especializadas,
uno para ayudar al procesamiento gráfico, además del flotante

B. Cachés en chip punto suma y multiplica unidades.

Las cachés en chip no aparecían en los microprocesadores hasta que F. Procesamiento fuera de orden
unos años después. La latencia para obtener instrucciones y datos de
La memoria fuera del chip para los elementos de procesamiento en el chip también fue El contrato entre el programador / compilador y el largo. El resultado: una caché
en chip. La primera microarquitectura comercial requiere que las instrucciones deben llevarse a un microprocesador viable para exhibir una memoria caché en el chip
en el orden especificado por el programa traducido. Este Motorola MC68020, de 1984. En un procesador pipelined, se produce un cuello de botella cada vez que una
instrucción que puede ser útil para poder buscar una instrucción y obtener datos en no ser ejecutada impide una instrucción posterior del mismo ciclo sin el cuello de
botella. de competir por el ser ejecutado si la instrucción subsiguiente tiene todo eso un puerto a la caché. Una vez que fue posible colocar las necesidades de caché
para comenzar la ejecución. El mecanismo para evitar esto en el chip, el siguiente paso fue almacenar en caché las instrucciones por separado; el procesamiento fuera
de orden, el cuello de botella, se conocía desde las ciones y los datos. Entre los primeros microprocesadores en incluir a mediados de la década de 1960 en el IBM
360/91, por ejemplo. Sin embargo, Motorola disponía de cachés de datos e instrucciones en chip separados; el mecanismo se restringió al MC68030 científico de alto
rendimiento, en 1986.

computación, donde se afirmó que ser capaz de manejar


Un caché puede ser rápido o grande, no ambos. Dado que las excepciones precisas no eran un requisito fundamental. La caché actual tenía que ser rápida, también tenía
que ser pequeña, lo que resultaba en una gran aceptación del estándar de coma flotante IEEE por solo

1556 PROCEDIMIENTOS DEL IEEE, VOL. 89, NO. 11 DE NOVIEMBRE DE 2001


sobre todos los fabricantes sugiere lo contrario. sin embargo I,. Múltiples subprocesos simultáneos
aunque la ejecución fuera de orden se ha utilizado en el suministro de instrucción principal sufre cuando la instrucción caché acframes durante 35 años, su uso en

combinación con un cess preciso da como resultado un error de caché. Se desperdicia mucha capacidad mientras
el manejo de excepciones apareció por primera vez en los microprocesadores a la espera de que se satisfaga el error de caché. Burton Smith a mediados de la década de 1990.

1978 [3] sugirió utilizar esa capacidad sobrante para obtener de


Para acomodar la ejecución fuera de orden, el micropro- otro flujo de instrucciones. El concepto se implementó por primera vez cuando el cesor adoptó las
estaciones de reserva y aliasing de registro en su Donelcor HEP. El concepto no apareció en el que se había utilizado en mainframes anteriores. Para hacerlo con el
mundo de los microprocesadores hasta la década de 1990, cuando se expandió a excepciones precisas, el microprocesador tuvo que agregar la distinción entre
ejecución de instrucciones e instrucción en ciclos alternos, pero la ejecución desde todos los flujos de instrucciones se retira. Se permitió que las instrucciones se
ejecutaran siempre que concurrentemente en el mismo ciclo, en función de la disponibilidad de sus recursos (datos y unidades funcionales) estuvieran disponibles,
los datos requeridos.

programa. Es decir, la microarquitectura interna podría ejecutar J. Núcleos rápidos


lindas instrucciones fuera de orden, pero tuvo que informar los resultados (es decir,

cambiar el estado permanente del cálculo) en el orden En tareas de cálculo intensivo, las dependencias de flujo de
las instrucciones ocurrieron en el programa en ejecución. Haciendo operandos de origen esperando los resultados producidos por
las instrucciones pueden ser un cuello de botella importante. Una solución: ejecutar
esto requería una estructura para restaurar el estado en el caso de
el núcleo de ejecución a una frecuencia mucho más rápida que el resto
una excepción. Este mecanismo de restauración de estado es comúnmente
del microprocesador. El chip Pentium IV, introducido en
manifestado como un búfer de reorden en la mayoría de los microprocesadores
2000, tiene una frecuencia de funcionamiento de 1,7 GHz, pero una ALU
hoy, y como una estructura de retiro de punto de control en unos pocos. que opera a 3.4 GHz. Aunque otros
microprocesadores mostraron los inicios de
ejecución fuera de orden antes, el primero en explotar completamente el concepto
fue el Pentium Pro, en 1995. IV. T ÉL O NORDESTE- B ILLION- T RANSISTOR- C CADERA F UTURE

Como hemos dicho, dentro de la década actual, la tecnología de procesos


G. Clústeres promete mil millones de transistores en un solo dado, operando a una frecuencia
de 6 a 10 GHz. Que haremos
El tamaño de un solo dado continúa aumentando, el tamaño de la característica continúa
hacer con toda esa capacidad?
para disminuir, y las frecuencias en el chip continúan aumentando.
Los arquitectos informáticos de hoy no están de acuerdo con la respuesta.
El resultado es que un valor producido por una unidad funcional en un
Algunos abogan por extender la idea de CMP que describimos
La esquina del chip no puede atravesar el chip y estar disponible por encima. El argumento es que con mil millones de transistores, nosotros, como fuente de una unidad funcional en la

esquina opuesta del panel, podríamos poner 100 microprocesadores en un solo chip, que consiste en un chip en el siguiente ciclo. El resultado: dividir la ejecución con 10 millones de

transistores cada uno. El argumento establece además que el núcleo en grupos de modo que la mayoría de las veces, los resultados producidos por un procesador de 10 millones de

transistores siguen siendo muy sustanciales, y por una unidad funcional en un grupo será utilizada por otro edificio, cualquier cosa más grande que eso solo incurriría en una mayor di-

unidad funcional en el mismo clúster. Uno todavía tiene el problema de reducir las devoluciones. de saber a
qué grupo dirigir una instrucción en particular,
Otros sugieren un uso ampliado de múltiples
pero si tiene éxito, el retraso excesivo de múltiples ciclos provocó el enhebrado. Argumentan que muchos de los recursos requeridos por un resultado que tiene que atravesar una

parte importante del chip se destina a un CMP podrían compartirse en un chip SMT de un solo procesador,
lejos. Esta característica apareció por primera vez en el Alpha 21264 al liberar los recursos guardados para otras funciones, como a fines de la década de 1990.

cachés más grandes, mejores predictores de rama, más unidades funcionales,


etc.
H. Chip multiprocesador Algunos, incluido este autor, señalan que, si bien SMT es sin duda una mejora
con respecto a CMP con respecto a
Un uso alternativo de la creciente riqueza de los recursos del dado, ambos se quedan lamentablemente cortos con respecto a (muchos más transistores, combinados con un
funcionamiento más rápido que acelera la mayor parte de la frecuencia de referencia no científica importante) es dividir el chip en regiones, con un marcas idénticas. La razón: la
mayoría de estos puntos de referencia tienen el procesador ocupando cada región. El paradigma se refiere a la característica decepcionante, re: SMT, de consistir en un CMP,
para chipmultiprocessor. Para tareas que son fácilmente un solo flujo de instrucciones. Eso y la noción de que una red muy susceptible de ser utilizada en flujos de instrucciones
autónomos, donde un chip sub costoso debería abordar problemas que no se pueden resolver mediante una comunicación constante entre los flujos de instrucciones, es una red
multicomputadora formada por montones de componentes más pequeños y más baratos. el CMP es un paradigma útil. Proporciona los chips añadidos que defienden el uso de
los mil millones de transistores para producir un gran beneficio de la comunicación entre procesadores que se produce en un monoprocesador de alta potencia y en un chip.

donde dicha comunicación es mucho más rápida que fuera del chip. IBM Otros más se quejan de que, dado que las herramientas CAD ya no
introdujo esta característica en 2000, con dos procesadores en su G4 igual a la tarea de validar con precisión nuestros chips actuales, chip.
es irresponsable diseñar otros aún más complejos. Ellos

PATT: REQUISITOS, BOTELLAS Y BUENA FORTUNA 1557


C. Tolerancia a fallas internas

Otra consecuencia del aumento de las frecuencias en el chip será la susceptibilidad


a errores de software, errores que se crearán de forma intermitente y con poca
frecuencia debido a la naturaleza física de los materiales que operan en las frecuencias
de reloj esperadas. Los microprocesadores del futuro deberán proporcionar funciones
para comprobar y corregir estos errores de software a medida que se produzcan.

D. Unidades asincrónicas y síncronas coexistentes


Figura 2. El microprocesador mañana.
La desviación del reloj ya es un problema grave. A 6 GHz es mucho peor. Es
cierto que las estructuras asincrónicas son
abogan por un procesador central muy simple, combinado con un diseño enormemente más difícil, pero resuelven el problema de las memorias caché en chip.
reloj global en el que todo se sincroniza. Y eso es
Aquellos que están centrados en los costos (un punto de diseño muy diferente) lo suficientemente importantes como para que valga la pena abordar el desafío.
Reconocer que niveles más altos de integración producen más barato Mi expectativa es que veremos estructuras que operan productos, y sugiero usar los mil
millones de transistores que de forma sincrónica durante un período de tiempo fijo (medido en estará disponible para poner todo el sistema no agresivo en ciclos de
reloj), después de lo cual se sincronizan con el chip global.
reloj. Diferentes estructuras requerirán diferentes cantidades de
Estas son las sugerencias alternativas, y sospecho que cada vez que necesiten operar de forma asincrónica para obtenerlas, aparecerán en algún producto
durante los próximos diez en torno a sus problemas de sesgo únicos. años. Mi propia preferencia es usar los mil millones de transistores

para desarrollar el monoprocesador de más alto rendimiento que pueda E. Diferentes tiempos de ciclo para diferentes funciones
Procesar aplicaciones de flujo de instrucciones único. Agentes para
Para aquellas estructuras que operan sincrónicamente, no es
catalizar esta evolución permanecer como antes: nuevos requisitos,
necesario que todos funcionen a la frecuencia nominal del chip.
cuellos de botella y buena fortuna. Algunas ideas que probablemente
Las piezas que no necesitan ir rápido se pueden diseñar para que vayan lento
ver evolucionar son los siguientes.
y ahorrar energía, por ejemplo. El futuro presupuesto de transistores
puede proporcionar una enorme flexibilidad para aprovechar adecuadamente la variabilidad

A. El nuevo microprocesador de las necesidades en el chip.


Una ALU que se ejecuta al doble de frecuencia que el resto de
Hasta ahora, el microprocesador se ha tratado como se muestra: el núcleo es solo la punta del iceberg. El futuro microprocesador de la Fig. 1. ¿Pero por qué? Si tomamos
nuestros niveles de transformación, podríamos usar el reloj de manera inteligente, mayor velocidad donde sea necesario, e incluir el algoritmo y el lenguaje en el microprocesador,
la velocidad sin procesamiento donde no se necesita, y muy lento donde la velocidad es cesora, el microprocesador se convierte en lo que usen
sot en la ruta crítica en absoluto.
tecnología de dispositivos para resolver problemas. Consulte la figura 2.
razonable para alguien que desee diseñar un microprocesador F. Nuevos materiales
que aborda algún punto en el espacio de la aplicación para tener en cuenta
¿Tener en cuenta el algoritmo de propósito especial necesario para resolver que no tengo ni idea de dónde vendrán estos materiales, pero problema, e incrustar ese algoritmo en el
microprocesador? La ley de Moore continúa prevaleciendo a pesar de los agoreros que hacemos eso hoy en aplicaciones integradas de bajo costo . ¿Por qué aparecer cada cinco
años más o menos para deletrear su desaparición? ¿Crítico no en los requisitos de alto rendimiento donde estamos dispuestos a que se necesiten materiales en comparación con la
conductividad en el chip, e incluso para tolerar altos costos?
lo que es más importante, en relación con los requisitos de energía y la disipación de calor

Esta adaptación puede tomar la forma de lógica reconfigurable, sipación. Entonces, en el espíritu de una ilusión puramente adulterada, discutí a continuación, instrucciones
especiales dedicadas en la ISA, o deseo que el ingenio de la ingeniería prevalezca nuevamente. una unidad funcional integrada (como un motor DSP) proporcionada en

el chip. G. Uso ampliado de microcódigo

El ancho de banda fuera del chip es caro, el ancho de banda en el chip es abundante.

B. Una nueva ruta de datos Mi expectativa: aprovecharemos de manera más efectiva el ancho de banda en el chip. El
uso ampliado de microcódigo es un
Se espera que las frecuencias en el chip sean tan altas que sean una forma seria de hacerlo. Por ejemplo, las rutinas microcodificadas deberían tenerse en cuenta a
la longitud del cable de cualquier señal que aproveche la capacidad de reserva de las unidades funcionales infrautilizadas en el chip. Algunas señales requerirán
múltiples ciclos para intercambiar un rol subordinado al flujo de instrucciones principal. ver el chip, y uno debe examinar cuidadosamente qué señales hemos acuñado
el término mi subordinado simultáneo se le permitirá hacer eso. La mayoría de las señales probablemente no serán crothreading (SSMT) para reflejar su papel en una
máquina SMT permitida. Ahí radica el desafío: rediseñar los datos [4]. Estas rutinas microcodificadas podrían realizar una ruta dinámica a la luz de la nueva restricción
de la longitud del cable.
recompilación, calcular alguna instrucción compuesta, afinar

1558 PROCEDIMIENTOS DEL IEEE, VOL. 89, NO. 11 DE NOVIEMBRE DE 2001


la política de reemplazo de caché, o de alguna otra manera, performtium Pro fue todo el microprocesador que cualquiera podría necesitar para un cálculo que permite
que el flujo de instrucciones principal necesite. La industria continúa mejorando y los usuarios ejecutan más rápido.
que la tecnología continúe haciendo uso de eso "mejor".
Esto no quiere decir que las cosas no vayan a cambiar, que ya no se necesite un
H. Lógica reconfigurable nuevo ingenio. Aguas abajo, es posible que necesitemos

De acuerdo con la Fig. 2, espero muchos microprocesos futuros: un cambio radical de paradigma, como la computación cuántica, para ayudar a los rescatadores a abordar los
requisitos de aplicaciones específicas. Oneus fuera, pero apenas estamos limitados en este momento. La aplicación podría hacer un buen uso de alguna función lógica que
Seguro que necesitamos desarrollar mejores herramientas CAD. CAD actual

Sería inútil para otras aplicaciones, mientras que otras aplicaciones tienen problemas para verificar los microprocesadores de hoy, catión podría hacer un buen uso de una función
lógica diferente que no digamos las sugerencias de este artículo. Y, seguro que necesitamos, sería inútil para la primera aplicación. Quizás ambos aplicamos a pensar de manera
más amplia en nuestro concepto de los cationes del microprocesador que podrían ser manejados de manera efectiva por un microprocesador que (Fig. 2, por ejemplo). Pero la
conclusión es que la Ley de Moore tenía la capacidad de realizar ajustes en tiempo de ejecución. Es decir, creo que an está vivo y coleando, y todavía brinda muchas
oportunidades. estructura en chip, quizás una FPGA de baja granularidad, pero más

probablemente una estructura lógica reconfigurable de mayor granularidad, será A AGRADECIMIENTO


será común a los futuros microprocesadores. Esta introducción se ha beneficiado de muchas interacciones durante muchos
años con muchos estudiantes anteriores y actuales y muchos colegas anteriores y
Popurrí actuales. El borrador publicado

Por último, les ofrezco una lista de características que espero ver en lo alto- aquí se ha beneficiado explícitamente de los comentarios y críticas de rendimiento del
microprocesador de 2008 o 2009, o cuando sea de SJ Patel, R. Belgard y R. Ronen. Cabe señalar que la tecnología de procesos finalmente nos proporciona mil
millones que un tratamiento excelente y más detallado de muchos de los transistores en una sola matriz de silicio.
Los temas que se abordan aquí se proporcionan en un documento de Ronen y

1) Uso ampliado de la caché de seguimiento, donde la dinámica de sus colegas de Intel [5], que este autor recomienda para la estructuración de segmentos de
flujo, consistirá en mucho más que el lector.

8 instrucciones por entrada, probablemente preprogramadas con la ayuda del compilador


(similar al R estructurado en bloques EFERENCIAS

ISA o el mecanismo de repetición), pero sintonizado en tiempo de ejecución. [1] H. Mazor, “La historia de la invención y la evolución de las microcomputadoras
" Proc. IEEE, vol. 83, págs. 1601–1608, diciembre de 1995.
2) Microcódigo en chip para utilizar la capacidad de reserva del núcleo de ejecución
[2] Sitio web de Intel [en línea]. Disponible: http://www.intel.com/press-
para ajustar las estructuras de hardware en chip. habitación / kits / quickrefyr.htm # 1971.

3) La recompilación dinámica del programa en ejecución, probablemente [3] B. Smith, "Una computadora MIMD de recursos compartidos y canalizada", PAG en roc.
1978 Int. Conf. Procesamiento en paralelo Agosto de 1978, págs. 6-8.
realizada por la unidad de llenado, o el microcódigo en el chip, será algo
[4] RS Chappell, J. Stark, SP Kim, SK Reinhardt y YN Patt,
común. "Microthreading subordinado simultáneo (SSMT)", PAG I r norte jefe. 26th Annu. En t. Symp.
4) Múltiples (al menos tres) niveles de caché con las correspondientes adiciones ISA Arquitecto informático, u METRO re ay 1999, págs. 186-195.
[5] R. Ronen, A. Mendelson, K. Lai, S.-L. Lu, F. Pollack y JP Shen,
(múltiples instrucciones de captura previa y posterior al almacenamiento) para
“Próximos desafíos en microarquitectura y arquitectura PAG re r, o " C.
mover los datos más cerca del núcleo y más lejos del núcleo en respuesta a la IEEE, vol. 89, págs. 325–340, marzo de 2001.
necesidad del núcleo de esos datos.

5) Hardware de predicción de valor agresivo, probablemente con una granularidad a


Yale Patt ( Fellow, IEEE) recibió la licenciatura de Northeastern
nivel de procedimiento, y las correspondientes optimizaciones del compilador para
University y la maestría y el doctorado. títulos de la Universidad de
ayudar a su eficacia. Stanford, todos en ingeniería eléctrica.
6) Hardware de monitoreo de rendimiento para permitir ajustar el hardware en tiempo de
Es profesor de Ingeniería Eléctrica e Informática y la Cátedra
ejecución para que coincida de manera más eficaz con las necesidades del programa en
Ernest Cockrell, Jr. Centennial en la Universidad de Texas en Austin.
ejecución. Dirige el Ph.D. investigación de nueve estudiantes sobre problemas
7) Una estructura en chip para monitorear y afectar el uso de energía del relacionados con la implementación de microprocesadores de alto
rendimiento. Ha sido un consultor activo de la industria de
chip.
microprocesadores para

V. C ONCLUSIÓN más de 30 años. Su amor particular es la enseñanza, tanto el primer curso de computación obligatorio para
estudiantes de primer año como los cursos avanzados de posgrado en mi-
El microprocesador ha disfrutado de un viaje emocionante desde croarquitectura. Recientemente fue coautor con SJ Patel de un textob En o t o ro k-,
su invención en 1971. Pocas tecnologías pueden presumir de la enorme ducción a sistemas informáticos: FromBits y Gates a C y Be (y norte o mi norte w D
York: McGraw-Hill, 2000), que es una desviación importante del tradicional
grandes pasos que ha hecho. Desafortunadamente, hay quienes curso de primer año. Ya ha sido adoptado por más de 50 universidades y
diría que el final de esta era dorada está a la vuelta de la esquina universidades.
esquina. Pero esos detractores han estado aquí antes. Ellos dijeron Dr. Patt ha sido galardonado con el premio IEEE / ACMEckert Mauchly (1996),
el IEEEEmmanuel R. Pioremedal (1995), el IEEEWallaceW. McDowell
el MIPS R2000 era todo el microprocesador que cualquiera podría medalla (1999) y el premio ACMKarl V. Karlstrom al Educador Sobresaliente
alguna vez necesitado en 1986, y diez años después dijeron que el Intel Pen- ( 2000). Es miembro de la ACM.

PATT: REQUISITOS, BOTELLAS Y BUENA FORTUNA 1559

También podría gustarte