Você está na página 1de 13

 

 
 
 
   

COMPUTADORES/PROCESADORES 
 
 
  SUPERSEGMENTADOS
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Arturo Marzo de la Fuente 
  Arquitecturas Basadas en Microprocesadores 
3º I.T.I. Gestión 
 
Curso 2007­08 
   
 
1. Introducción 
En  su  descomposición  funcional  más  sencilla,  un  microprocesador  se  compone  de  una 
Unidad de Control y una Unidad de Proceso. En esta última convivían inicialmente la ALU y 
el  banco  de  registros,  pero  enseguida  se  añadieron  nuevas  unidades  funcionales  en  la 
búsqueda de un aumento del rendimiento. La mayoría de estas adiciones ayudan a obtener 
alguna  forma  de  paralelismo  a  nivel  de  instrucción.  Esto  consiste  en  romper  con  la 
ejecución  secuencial  de  instrucciones  (una  detrás  de  otra  en  el  tiempo)  para  obtener  a 
ejecución de varias simultáneamente. 

La  supersegmentación  de  los  procesadores  es  una  técnica  de  implementación  que 
busca el mencionado paralelismo a nivel de instrucción, pero antes de explicarlo, conviene 
explicar  otras  técnicas  que  también  sirven  para  lograr  el  paralelismo  y  que  suelen 
combinarse  todas  juntas  en  el  diseño  de  los  actuales  microprocesadores  como  son  la 
segmentación, la superescalaridad y la combinación de ambas. 


 
2. Segmentación 
La segmentación (pipelining) es una técnica de implementación de microprocesadores 
por la cual se solapa la ejecución de múltiples instrucciones. Hoy día, la segmentación es la 
técnica de implementación clave utilizada para hacer CPU rápidas. 

La  segmentación  es  como  una  línea  de  ensamblaje:  cada  etapa  de  la  segmentación 
completa una parte de la instrucción. Como en una línea de ensamblaje de automóviles, el 
trabajo que va a realizar una instrucción se descompone en partes más pequeñas, cada una 
de  las  cuales  necesita  una  fracción  del  tiempo  necesario  para  completar  la  instrucción 
completa. Cada uno de estos pasos se define como etapa de la segmentación o segmento. 
Las etapas están conectadas, cada una a la siguiente, para formar una especie de cauce ‐ las 
instrucciones entran por un extremo, son procesadas a través de las etapas y salen por el 
otro extremo. 

2.1. Procesador segmentado 
Un  procesador  segmentado  es  aquel  que  divide  el  proceso  de  ejecución  de  una 
instrucción  en  N  etapas  de  similar  duración  con  el  objetivo  de  procesar  N  instrucciones 
simultáneamente, encontrándose cada una en una etapa diferente de su ejecución. 

Conseguimos  así,  que  un  procesador  compuesto  por  N  unidades  funcionales  que 
trabajan a la vez en circunstancias ideales, incremente su rendimiento en un factor de N. 

Las  instrucciones  fluyen  secuencialmente  por  las  distintas  unidades  funcionales  del 
procesador de igual forma que el agua fluye por el cauce de una tubería, de ahí que en la 
jerga de la calle se les conozca como procesadores pipeline que significa tubería en inglés. 

El  modelo  de  segmentación  más  repetido  en  la  primera  mitad  de  los  años  90  es  el 
compuesto  por  las  siguientes  cinco  etapas:  búsqueda  de  la  instrucción,    decodificación, 
lectura de operandos, ejecución de la operación asociada, escritura de su resultado. 

El  DLX  es  un  microprocesador  diseñado  por  John  L.  Hennessy  y  David  A.  Patterson  
presenta una ejecución en cinco etapas, similares a las del microprocesador MIPS, también 
diseñado por John L. Hennessy en la Universidad de Stanford, buscando la filosofía de  la 
segmentación. Estas cinco etapas son: 

IF: búsqueda 

ID: decodificación 

EX: ejecución de unidad aritmético lógica 

MEM: memoria 

WB: escritura 

De  esta  manera,  mientras  el  procesador  escribe  una  instrucción,  ejecuta 
simultáneamente la siguiente, busca los operandos de una tercera, decodifica una cuarta y 
busca en memoria una quinta instrucción, lográndose en un caso ideal una aceleración de 
cinco para el rendimiento del chip. 


 
Podemos observar en el siguiente grafico la ejecución simultánea de cinco instrucciones 
en distintas etapas en un procesador DLX: 

Figura 1. 

Todos  los  microprocesadores  actuales  se  encuentran  segmentados,  habiendo 


aumentado  el  número  de  etapas  con  el  paso  de  las  generaciones.  Así,  lo  normal  en  la 
séptima  generación  es  encontrarnos  con  cauces  de  ejecución  entera  de  20  etapas  de 
segmentación en el caso del Pentium  IV (2003) de Intel o 31 etapas en los procesadores 
Prescott (2004) también de Intel.  

Junto al cauce (pipeline) de ejecución entero se sitúan otros cauces por donde circulan 
otros tipos de instrucciones, principalmente multimedia y de punto flotante. No obstante, 
hasta que no concluya la fase de decodificación de instrucción (ID) no se puede realizar la 
ramificación,  las  primeras  etapas  de  segmentación  son  siempre  comunes  a  todos  los 
cauces del procesador, lo cual se puede observar con facilidad en la Figura 2 mostrada más 
adelante. 

La  gran  ventaja  de  la  aplicación  de  la  segmentación  en  el  diseño  de  los 
microprocesadores  es  que  el  aumento  del  rendimiento  se  consigue  con  solo  reorganizar 
las unidades funcionales existentes, por lo que no supone un incremento de coste para 
la Unidad de Proceso. El diseño de la Unidad de Control sí se complica un poco a medida 
que  aumenta  el  número  de  etapas  y  el  grado  de  concurrencia  en  la  ejecución  de  las 
instrucciones  pero  es  despreciable  si  lo  comparamos  con  el  espectacular  incremento  del 
rendimiento. 


 
3. Superescalaridad 
La  superescalaridad  consiste  en  la  replicación  de  la  circuitería  de  las  unidades 
funcionales  de  un  microprocesador,  creando  por  lo  tanto  varios  cauces  (pipelines)  de 
manera que se puedan ejecutar varias instrucciones a la vez. 

3.1. Procesador superescalar 

Un procesador superescalar de factor N es aquel que replica N veces la circuitería de 
alguna  de  sus  unidades  funcionales  con  el  fin  de  poder  ejecutar  N  instrucciones  en  sus 
respectivas etapas de computación. 

Con la mejora de la capacidad de integración de circuitos que permiten concentrar más y 
más  componentes dentro de un chip, los diseñadores de microprocesadores también ha 
aumentado  el  factor  de  Superescalaridad,  logrando,  al  igual  que  en  la  segmentación, 
mejoras del rendimiento de un factor de N. 

Sin  embargo,  el  coste  de  incrementar  el  rendimiento  mediante  la  Superescalaridad  es 
superior al de la segmentación. El hecho de que el coste de integración por transistor se 
reduzca  con  la  evolución  de  las  generaciones  de  microprocesadores  indica  que  es  un 
método de incremento del rendimiento altamente rentable para los diseñadores. 

En el siguiente grafico se muestra la ejecución en paralelo de 5 instrucciones cada una en 
su cauce o pipeline, lo que representa una superescalaridad de factor 5. 

Figura 2. 


 
4. Combinación de segmentación y superescalaridad 
Como puede observarse en la Figura 3, las filosofías de segmentación y superescalaridad 
son perfectamente compatibles. 

Figura 3 

Sin embargo, existen ciertos conflictos a la hora de poner en práctica simultáneamente 
ambas ideas, y es que cada técnica exige unos requisitos diferentes: 

‐ La segmentación requiere una elevada frecuencia, de forma que solo un periodo 
de reloj muy corto permitirá descomponer cada instrucción en un  número elevado 
de etapas. 

‐ La  superescalaridad,  por  el  contrario,  necesita  un  ingente  número  de 
transistores para poder ser implementada, y esto solo se consigue con mejoras en la 
tecnología de integración. 


 
Por lo tanto, la superescalaridad estorba a la segmentación porque ésta provoca un 
desdoble de la circuitería existente, que perjudica la frecuencia de reloj, lo que dificulta el 
obtener un número elevado de etapas de segmentación. 

De  igual  forma  la  segmentación  estorba  a  la    superescalaridad  ya  que  cuando  las 
etapas son tan minúsculas, es difícil incrementar la complejidad replicando la circuitería. 

Por  tanto,  los  diseños  fuertemente  segmentados  no  utilizan  un  factor  de 
superescalaridad  alto,  y  los  que  apuestan  por  la  superescalaridad  reducen  el  número  de 
etapas  de  segmentación.  Por  ejemplo,  el  Pentium  IV  de  Intel  llega  a  las  20  etapas  de 
segmentación  pero  solo  tiene  un  factor  tres  de  superescalaridad,  mientras  que  el  K7  de 
AMD  consigue  un  factor  cinco  de  superescalaridad  a  costa  de  reducir  a  14  el  número  de 
etapas del cauce de ejecución entero. Al final, las dos estrategias alcanzan un paralelismo 
de  entorno  a  las  60‐70  instrucciones  simultáneas  compatibilizando  los  dos  conceptos, 
pero en cada caso se da prioridad a una de las dos filosofías. 


 
5. Supersegmentación 
La  palabra  supersegmentación  nos  lleva  a  la  tentación  de  aplicar  la  ecuación 
superescalar + segmentado = supersegmentado, cuando en realidad la ecuación correcta es 
segmentado + segmentado = supersegmentado. 

La  supersegmentación  consiste  en  segmentar  algunas  de  las  etapas  (en  concreto  las 
más lentas) que mencionamos para los procesadores segmentados, en dos o más etapas de 
manera  que  se  permite  que  haya  dos  instrucciones  a  la  vez  dentro  de  la  misma  etapa  y 
unidad funcional sin tener que replicar ésta (superescalaridad). De esta forma, dividiendo 
por ejemplo cada etapa en 2, el ciclo de reloj de periodo T se verá reducido a la mitad, T/2, 
de esta forma al máximo de capacidad el cauce o pipeline produce un resultado cada T/2 
segundos. 

5.1. Procesadores supersegmentados 

Un  procesador  supersegmentado  es  aquel  que  aplica  dos  veces  el  concepto  de 
segmentación,  la  primera  al  nivel  de  diseño  global,  y  la  segunda  al  nivel  interno  de  sus 
unidades funcionales. 

Por ejemplo, una descomposición en cinco etapas de segmentación como la del Pentium, 
compuesta  por  las  etapas  de  búsqueda,  decodificación,  lectura,  ejecución  y  escritura, 
permite aplicar otra segmentación a cada una de las unidades funcionales que intervienen 
en cada ciclo como son: la caché de instrucciones, el decodificador de instrucción, la caché 
de datos, la ALU o el banco de registros. 

En  el  caso  de  la  caché  de  instrucciones,  que  es  referenciada  en  la  primera  etapa,  esta 
puede ser una caché segmentada en dos etapas, que permite simultanear la búsqueda de 
una instrucción y la localización de su celda de caché asociada, con la lectura del código de 
la  anterior  instrucción  y  su  volcado  al  bus  de  datos  del  procesador.  Así  se  obtienen  dos 
niveles de segmentación como se muestra en el aparatado d) de  la Figura 4, en la que se 
comparan las cuatro técnicas de paralelismo expuestas: 


 
Figura 4 

Esta segmentación ha provocado un desdoble de la señal de reloj, que discurre por el eje 
temporal de abscisas al doble de frecuencia que en los otros tres diagramas mostrados. En 
general,  la  supersegmentación  lleva  asociada  la  subdivisión  del  ciclo  de  reloj  base  en 
ciclos supersegmentados (como se aprecia en la Figura 5), tantos ciclos como etapas se 
hayan  establecido  para  el  segundo  nivel  de  segmentación,  lo  que  desemboca  en  diseños 
que trabajan a muy alta frecuencia. 

Figura 5 


 
Una  buena  implementación  supersegmentada  siempre  incluye  la  ejecución  de 
instrucciones  fuera  de  orden.  La  ejecución  de  instrucciones  fuera  de  orden  es  un 
paradigma  utilizado  en  la  mayoría  de  los  microprocesadores  de  alto  rendimiento  por  el 
cual, si una vez capturada una instrucción los operandos no están disponibles, para evitar 
esperas improductivas del procesador hasta que estén disponibles la instrucción se pone 
en  una  cola  a  la  espera,  de  forma  que  otras  instrucciones  puedan  abandonar  la  cola  y 
ejecutarse  si  sus  operandos  están  disponibles.  La  ejecución  fuera  de  orden  minimiza  el 
efecto negativo que producen las esperas por dependencias de datos sobre el rendimiento 
del  procesador  pero  para  desarrollarla  hace  falta  también  implementar  la 
superescalaridad en los procesadores. 

5.2. Ejemplos de procesadores supersegmentados 

5.2.1. R4000 y R4400 

La  empresa  MIPS  Technologies,  fundada  por  investigadores  de  la  Universidad  de 
Stanford,  incluido  John  L.  Hennessy,  lanzó  en  1991  el  primer  microprocesador    de  64 
bit, el R4000. Integraba la FPU dentro para crear un microprocesador de un solo chip y 
operaba  a  unas  frecuencias  radicalmente  altas  para  la  época  (cuando  fue  introducido, 
trabajaba a 100 MHz). 

Sin embargo para lograr aumentar la frecuencia del reloj hubo que reducir las 3 cachés 
a  8Kb  (con  respecto  a  los  64  Kb  que  presentaban  los  anteriores  procesadores  R3500)  y 
requerían 3 ciclos para ser accedidas. 

Estas  grandes  velocidades  de  operación  fueron  posibilitadas  usando  la  técnica  llamada 
deep  pipelining  (segmentación  profunda)  y  denominada  más  tarde  como 
supersegmentación o superpipelining. 

Presentaba  una  supersegmentación  de  8  etapas  (en  vez  de  las  5  del  DLX),  como  los 
accesos a la caché son críticos, las etapas que acceden a memoria se han subdividido: 

   IF, IS     RF, EX         DF, DS, TC     WB 

Acceso a caché de instrucciones     Acceso a caché de datos 

Con  el  desarrollo  del  R4000  se  desarrolló  un  número  de  versiones  mejoradas  como  el 
R4400 de 1993, que incluía cachés de 16 Kb, un operador de 64 bit ampliamente depurado 
y soporte para una caché externa de nivel 2.  

A  continuación  podemos  observar  un  esquema  de  la  supersegmentación  de  8  etapas 
que presentaban estos procesadores MIPS: 

10 
 
 

Figura 6 

5.2.2. Pentium PRO 

El  procesador  Pentium  PRO  desarrollado  en  1995  y  perteneciente  a  la  sexta 
generación  de  procesadores  estaba  compuesto  por  5.500.000  transistores, 
incrementó  su  velocidad  usando  una  supersegmentación  de  14  etapas  y 
trabajaba a una frecuencia de 200 MHz, con un Front Side Bus (FSB) de 66 MHz. 

Potenció el paralelismo mediante la ejecución de instrucciones fuera de orden 
y  la  incorporación  de  más  unidades  de  ejecución  que  trabajan  simultáneamente. 
Incluyó una caché interna de segundo nivel y la caché de nivel 1 presenta 2 cauces 
de instrucciones y 4 de datos. En cuanto a su rendimiento se ha estimado en 220 
SPECInt92. 

5.2.3. ALPHA 21264 

Un clásico ejemplo de diseño supersegmentado es el procesador Alpha 21264 de 
Digital, procesador RISC de principios de la década de los 90 y hermano menor del 
Alpha 21364 de COMPAQ que fue el encargado de decodificar el genoma humano 
en la empresa Celera Genomic. 

El  segundo  nivel  de  segmentación  de  esta  arquitectura  incluye  una 
descomposición  en  nueve  etapas  para  el  caso  de  la  caché,  lo  que  dio  lugar  a 
una  frecuencia  de  reloj  de  600  MHZ  a  finales  de  1997,  cuando  en  esa  época  los 
Pentium  II  y  demás  modelos  para  PC  operaban  a  menos  de  la  mitad  de  esa 
frecuencia. 

11 
 
5.2.4. UltraSPARC 

El  procesador  UltraSPARC  II  lanzado  a  mediados  de  1996  por  Sun 
Microelectronics, pertenece a la segunda generación de la familia UltraSPARC y fue 
pensado para mantener estaciones de trabajo. 

Presenta  una  arquitectura  de  64  bits  supersegmentada  y  un  factor  4  de 
superescalaridad. Está compuesto por 5.400.000 transistores, opera a un rango de 
frecuencias de entre 250 y 480 MHz y dispone de dos cachés de nivel 1 de 16 Kb y 
una  caché  de  nivel  2  de  entre  256  KB  y  16  Mb.  Finalmente,  se  le  estima  un 
desempeño de: 

• 350‐420 SPEC Int92.  

• 550‐660 SPEC Fp92. 

5.2.5. Pentium IV 

Desarrollado en el 2000, está compuesto de 42.000.000 de transistores, funciona 
a  una  frecuencia  de  2’4  GHz,  con  un  FSB  de  400  MHz.  Presenta  una 
supersegmentación  de  20  etapas  y  ofrece  144  nuevas  instrucciones  para 
procesar video y audio, optimizando el rendimiento para las tecnologías modernas 
de Internet y visualización de gráficos en 3 dimensiones.  A  continuación  un  gráfico 
que  muestra  la  ejecución  de  4  instrucciones  en  las  20  etapas  supersegmentadas    de  un 
Pentium IV. 

Figura 7 

Su rendimiento se estima en: 

• 410 SPEC int2000. 

• 14,6 SPEC int95. 

12 
 
6. Bibliografía 
 

‐ Recursos electrónicos: 

¾ http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(inform%C3%A1tica) 

¾ http://es.wikipedia.org/wiki/DLX 

¾ http://es.wikipedia.org/wiki/Arquitectura_MIPS 

¾ http://vagos.es/showthread.php?t=63741 

¾ http://www.angelfire.com/ca6/angie/segmentados.htm 

¾ http://aulavirtual.uji.es/file.php/2648/Teoria/Primer_cuatrimestre/Tema2_sup
erescalares/2_1_introduccion_procesadores_superescalares.pdf 

¾ http://www.atc.us.es/asignaturas/asp‐
itis/descargas/Transparencias_ASP_Tema_5_Introduccion_al_Paralelismo.pdf 

¾ http://osito.disca.upv.es/aic/es/teoria/t9.pdf 

¾ http://dac.escet.urjc.es/docencia/Micros/Microprocesadores2.pdf 

¾ http://www.dacya.ucm.es/hidalgo/arquitectura/pipeline.pdf 

¾ http://www.cag.lcs.mit.edu/raw/documents/R4400_Uman_book_Ed2.pdf 

¾ http://www.macuarium.com/cms/index.php?option=com_content&task=view&
id=218&Itemid=93 

¾ http://www.dcc.uchile.cl/~rbaeza/cursos/proyarq/maraya/node9.html 

¾ http://research.sun.com/features/tenyears/volcd/papers/SPARCv9.pdf 

‐ Publicaciones: 

¾ Arquitectura  del  PC  –  Volumen  1.  Autor:  Manuel  Ujaldón  Martínez.  Editorial: 
Megamultimedia S.L. 

¾ Arquitectura  de  computadores  –  Un  enfoque  cuantitativo.  Autores:  John  L. 


Hennessy, David A. Patterson. Editorial: McGraw Hill. 

¾ Tema 4 de apuntes de Arquitectura de los computadores. 

13