CAPITULO 1
INTRODUCCION
1.1. TENDENCIAS EN EL DISENO VLSI
Las tecnologias de fabricacion de circuitos integrados de muy alta escala de in-
tegracién (VLSI) permiten implementar funciones muy complejas en un unico
chip. Esta circunstancia ha incrementado considerablemente los campos de apli-
cacién de los circuitos integrados y modificado de forma sensible las técnicas de
disefio de los mismos.
Como ocurre con otros tipos de productos, pero sin duda potenciado por su
vertiginosa evolucién, el mercado microelectrénico se ve condicionado por la de-
manda de sistemas que ofrezcan altas prestaciones a bajos costes y en tiempos ra-
zonables de lanzamiento al mercado.
Cuando se habla de prestaciones en relacién con un sistema digital se atiende,
generalmente, a la velocidad con que el sistema es capaz de realizar su funci6n.
Pero cada dia es més frecuente la asignacién de tareas criticas a estos sistemas,
por lo que una caracteristica igualmente importante es su fiabilidad 0 la probabi-
lidad de que la funcién del sistema se realice adecuadamente. La busqueda de sis-
temas més rapidos y més fiables viene siendo una tendencia habitual en la investi-
gacién en el drea de electronica, incluso previa a la aparicion de los circuitos inte-
grados. No obstante, la reduccién de tamano y el aumento de funcionalidad pro-
porcionados por las tecnologias VLSI abren nuevas vias al permitir explorar solu-
ciones inéditas a estos problemas.
En relacion con el coste de los sistemas digitales, el progresivo avance en el ni-
vel de integracién ha alterado los pesos especificos de los dos factores que contri-
buyen al coste real de un circuito integrado: coste de disefo y coste de fabrica-
cién. Hace algunos afios (en la década de los 70's), el coste de fabricacién era el
factor dominante. Sélo resultaban fentables, bajo esta consideracién, aquelloscircuitos que podian absorber un gran volumen de mercado. Un ejemplo tipico
fueron los primeros microprocesadores.
Al incrementarse la relacién funcionalidad/area y abaratarse los costes de fa-
bricacion, el coste de disefio se convierte en el factor dominante. Esto es particu-
larmente cierto en los circuitos integrados para aplicaciones especificas (ASIC's),
cuya penetracion en el mercado es normalmente limitada. En este momento co-
bran especial interés las técnicas estructuradas de disefio que permiten minimizar
la duracién del ciclo de desarrollo, al tiempo que facilitan el tratamiento de la
complejidad inherente a los sistemas VLSI.
En definitiva, las claves que definen las tendencias actuales en el disefio de sis-
temas digitales VLSI son velocidad, fiabilidad y disefio estructurado. Ninguno de
estos tres conceptos es nuevo, pero todos ellos merecen ser revisados bajo las
perspectivas de las posibilidades que ofrecen las tecnologias VLSI.
1.2. VELOCIDAD: EVOLUCION TECNOLOGICA Y MULTIPROCESADO
El incremento de la velocidad de los sistemas digitales se ha acelerado conside-
rablemente en los tiltimos afios. Una causa importante de este crecimiento es el
continuo avance tecnolégico que proporciona dispositives mas répidos y mayor
densidad de integracion. Junto a este hecho, y para superar los limites fisicos aso-
ciados a la tecnologia, se han adoptado soluciones basadas en explotar el parale-
lismo subyacente en muchos problemas, mediante la utilizacién de procedimien-
tos arquitecturales bien ajustados a las posibilidades y limitaciones de las tecnolo-
gias VLSI. Dichas arquitecturas permiten, en unos casos, la ejecucién eficiente de
algoritmos paralelos, mientras que utilizan, en otros, nuevos modelos de compu-
tacion.
El cuadro de la figura 1.1 resume una taxonomia de arquitecturas paralelas
propuesta muy recientemente por Duncan. La definicién detallada de cada una
de las categorias escapa a los propésitos de esta introduccion y puede consultarse
en [Dunc90] y [Skil88]. Esta taxonomia incluye a la clasica de Flynn, que clasifica
las distintas arquitecturas atendiendo a la presencia de secuencias de instruccio-
nes y datos simples o multiples [Flyn72][— Vectorial
— Array processor
Sincronas SIMD
L_ Memoria asociativa
L— Sistélica
[— Memoria distribuida
mimo
L— Memoria compartida
-— MIMo/siMD
|— Dataflow
Derivados MIMD —J
}— Reduction
‘_ Wavefront
Figura 1.1, Taxonomia de arquitecturas paralelas.
Dentro del amplio espectro reflejado en la figura 1.1, las arquitecturas MIMD
(Multiple Instruction, Multiple Data Stream), especialmente las construidas con
microprocesadores de coste relativamente bajo, ofrecen una solucién rentable a
la demanda constante de potencia de célculo y velocidad. Una prueba de ello es
que existen numerosos sistemas, tanto experimentales como comerciales, basa-
dos en arquitecturas masivamente paralelas compuestas de miles de elementos
de procesado [Seit85] [Bowe85] [Hill85]
El disefio de sistemas multiprocesador puede estar enfocado bien a maximizar
la capacidad de ejecucién de muchos trabajos simulténeos ("throughput-
oriented"), 0 a acelerar la ejecucion de un unico trabajo ("speed-oriented")
[Patt85]. En ambos casos, una de las claves para explotar con éxito el paralelismo
consiste en proveer al sistema de una adecuada red de interconexién que facilite
el intercambio de informacion entre los diferentes elementos (comunicacion de
datos entre procesadores y memoria en un sistema de memoria compartida o en-
tre procesadores en un sistema de memoria distribuida) [Bhuy87].Las caracteristicas que definen una red de interconexidn son: 1) el modo de
‘operacion (sincrono o asincrono), 2) la estrategia de control (centralizado o distri-
buido), 3) la metodologia de conmutacion (conmutacién de circuitos 0 conmuta-
cién de paquetes) y 4) la topologia de la red [Feng81]. En la literatura se han re-
portado numerosas estructuras que direccionan de forma distinta cada uno de los
aspectos anteriores. Uno de los objetivos de nuestro trabajo consiste en aplicar la
metodologia de disefio propuesta en esta Tesis a la implementacién de una red
de interconexién. Dicha red establece un compromiso aceptable entre las solucio-
nes de conexién total y de conexién mediante bus compartido en un sistema mul-
timicroprocesador.
1.3. FIABILIDAD: TECNICAS DE TOLERANCIA A FALLOS
El concepto de “computacién tolerante a fallos” -- obtencién de resultados co-
rrectos incluso en presencia de fallos u otras condiciones andmalas o inesperadas
en el sistema ~ ha estado tradicionalmente asociado a aplicaciones criticas como
el control aeroespacial y nuclear. Sin embargo, puesto que los sistemas digitales
van participando més activamente en muchas actividades cotidianas, el concepto
de disponibilidad del sistema cobra mayor sentido. La disponibilidad de un siste-
ma se define como la probabilidad de que el sistema esté operativo en un instan-
te de tiempo [Siew84]
Por otra parte, el incremento en la complejidad de los sistemas, junto a la ma-
yor susceptibilidad al ruido y las radiaciones (como resultado de las muy bajas
energias de conmutacién en los dispositivos VLSI) hacen que la fiabilidad, o pro-
babilidad de que un sistema se mantenga operativo durante un intervalo de tiem-
po, sea una caracteristica de importancia creciente en muchos sistemas digitales
[syng90]
Un ingrediente comin a todas las técnicas de tolerancia a fallos es la redun-
dancia. Redundancia significa aumentar la cantidad de informacién, tiempo o re-
cursos necesarios para la operacién normal del sistema [John84]. En [Siew82] po-
demos encontrar una completa revision de las diferentes estrategias al aplicar re-
dundancia. Ejemplos tipicos de redundancia de informacién son los cédigos de
deteccién y/o de correcci6n de errores, formados por la adicién de informacion a
la estructura de datos. La redundancia temporal implica repetir varias veces la
misma operacién, u operaciones equivalentes, y comparar los resultados. Se utili-
za principalmente para distinguir entre condiciones de error transitorias y perma-nentes. Por ultimo, la replicacién fisica de los componentes del sistema constituye
la forma més habitual de proporcionar tolerancia a fallos (Figura 1.2).
Cédigos de deteccién y/o
Informacion
correccién de errores
[— Ejecucion repetida
Tiempo
L_ Técnicas de software
-— Pasiva ——— TMR,NMR
Cae | active Duplicacién y comparacion
Sustitucién sin interrupcién
L Hibrida ——— HMR
Figura 1.2. Diferentes técnicas de redundancia.
Los métodos de replicacién de componentes quedan englobados en diferentes
categorias. Las técnicas de replicacién pasiva permiten enmascarar los fallos al vo-
tar los resultados de las distintas réplicas. Los ejemplos més caracteristicos son la
redundancia modular triple (TMR) y su extensién a la redundancia N-modular
(NMR). Las técnicas de replicacion activa localizan y corrigen los fallos. Algunos
ejemplos son el uso de replicacién y comparacién y la sustitucién on-line del mé-
dulo erréneo por un elemento de reserva. Por ultimo, las técnicas de replicacion
hibrida, como la redundancia modular hibrida (HMR), combinan las ventajas de
las dos anteriores al permitir enmascarar, localizar y corregir los elementos que
presentan fallos en su comportamiento.
La presencia de un numero elevado de elementos idénticos y de bajo coste en
un sistema multiprocesador, y el hecho de que estos elementos pueden ser consi-
derados como componentes elementales desde la perspectiva del disefio VLSI,
permiten seguir un enfoque adicional en el diseno de este tipo de arquitecturas.
La idea de utilizar un sistema multiprocesador para cubrir aplicaciones que re-
quieran una alta disponibilidad (“availability-oriented”) constituye la segunda de
las motivaciones que determinaron la eleccién de la arquitectura de red de inter-
conexion utilizada como ejemplo en esta Tesis.1.4, TECNICAS ESTRUCTURADAS DE DISENO: METODOLOGIA
El estado actual de la tecnologia VLSI permite incluir cientos de miles de tran-
sistores en un solo circuito integrado, posibilitando la realizacién de sistemas
electronicos de complejidad creciente. Salvo en el caso de los chips de memoria
(que presentan una gran regularidad) el tratamiento de dicha complejidad consti-
tuye la clave principal del diseno VLSI [Sequ83}
Por otra parte, el mercado de los sistemas electrénicos demanda continua-
mente una mayor funcionalidad, acompafiada de la reduccin en los costos y en
el tiempo de desarrollo de los productos, hasta tal punto que un nuevo producto
puede quedar obsoleto antes de aparecer en el mercado si su disefo no se ha
realizado dentro de unas cotas temporales razonables.
Con objeto de aprovechar al maximo el potencial tecnolégico y hacer frente a
los condicionantes de mercado, es preciso utilizar una serie de procedimientos o
técnicas que faciliten 1a manipulacién de la informacién asociada con el disefio de
sistemas VLSI. Dichas técnicas se basan en distintos estilos de disefio potenciados
por la aparicién de numerosas herramientas de CAD.
Las diferentes estrategias 0 estilos de disefio establecen compromisos acepta-
bles entre el grado de optimizacion del producto final y el esfuerzo invertido en
su desarrollo. El disefio de un sistema VLSI del que se espera introducir en el mer-
cado varios cientos de miles de unidades suele abordarse mediante estrategias
full-custom. De esta forma, el coste derivado del esfuerzo en el disefo va a que-
dar compensado por el beneficio que supone la reduccién de drea y el incremento
de prestaciones en cada uno de los chips fabricados. Por otra parte, cuando el cos-
te de desarrollo no es absorbido por la produccién de un elevado numero de uni-
dades, cobran sentido los estilos de disefio denominados semi-custom. En este ca-
so la falta de optimizacién se ve compensada por la rapidez del ciclo de disehio
lerdes6).
Los principales procedimientos semi-custom para el diseno de sistemas digita-
les se agrupan en las categorias de gate-arrays y standard-cells [DeCa86]. Un gate-
array es un circuito integrado consistente en una matriz de celdas predefinidas
que ha pasado por todos los estados del proceso de fabricacién del chip salvo la
metalizacién final. La interconexion de los diferentes dispositivos de cada celda
define la funcionalidad de las mismas y la interconexién de las diferentes celdas
permite implementar el sistema. Ya que la personalizacién del chip se reduce a la
definicién de dos o tres niveles de mascaras, la utilizacion de gate-arrays reducelos costes y el tiempo de realizacién de un disefio. Como contrapartida, el princi-
pal inconveniente proviene de la ineficiente utilizacion de area, debida al espacio
reservado para interconexiones y a que el circuito integrado esta sujeto a un ta-
mano y numero de terminales fijo, que no siempre se utiliza. Numerosos fabrican-
tes de silicio ofrecen gate-arrays de diferentes caracteristicas en casi todas las tec-
nologias digitales (TTL, NMOS, CMOS, ECL). Existen, asimismo, numerosas herra-
mientas de CAD que facilitan su realizacion.
El disefio mediante standard-cells se basa en {a utilizacién de un conjunto de
elementos funcionales basicos, totalmente caracterizados y agrupados en una li-
breria de celdas. En muchas ocasiones dichas celdas estan sujetas a algunas restric-
ciones de layout (tamaiio, situacién de las E/S, etc.) que facilitan las tareas de colo-
cacién e interconexién mediante programas de CAD. El desarrollo de herramien-
tas de ayuda al disefio es mucho mas dificil cuando la libreria incluye celdas de di-
ferentes tamarios y formas, asi como bloques parametrizados (PLA’s, RAM, ROM).
No obstante, en este ultimo caso puede conseguirse una mayor reduccién del ta-
majio del chip. Tanto en un caso como en el otro, la personalizacién del disefio
afecta a todos los niveles de mascaras que posibilitan la fabricacién del circuito in-
tegrado.
Con independencia del estilo de disefo utilizado, aunque fuertemente influi-
do por éste, cuando la complejidad de un sistema es elevada se hace necesario el
empleo de un procedimiento ordenado o metodologia de disefio. De esta forma
podemos llegar a una solucién en el menor tiempo posible y con garantias sufi
cientes de funcionamiento correcto. Un aspecto comin a muchas de las metodo-
logias actuales es el uso de jerarquias en los distintos dominios de representacion
del proceso de disefo [Lang86].
La organizacién jerarquica de un circuito, desde el punto de vista estructural,
es la base de la metodologia propuesta por Mead y Conway [Mead80]. Este estilo
de disefo enfatiza una aproximacién jerarquica desde el nivel superior a los nive-
les inferiores (top-down). Tiene por objeto particionar el sistema en médulos que,
a su vez, son divididos en submédulos que plantean menos problemas y pueden
ser resueltos independientemente. Una buena estructuraci6n y el correcto parti-
cionado de un sistema minimiza la interaccion entre las diferentes partes y facilita
todas las fases de disefio
A lo largo del proceso de diserio el sistema es descrito por sucesivas represen-
taciones que corresponden a diferentes niveles de abstracci6n: algoritmico, logi-
co, eléctrico, etc. Las diferentes representaciones constituyen una jerarquia que
denominaremos “jerarquia de abstraccién” para distinguirla de la jerarquia es-
tructural o fisica a la que nos referiamos anteriormente. Bajo esta perspectiva, eldisefio es el proceso de transformar un problema de una representacién a otra
(correspondiente a un nivel inferior de la jerarquia de abstraccién) hasta que la
representacién final proporcione una solucién al problema planteado [Pend85].
Es decir, hasta la obtencién de la descripcién simbélica de la geometria final de
todas las capas del proceso tecnolégico.
Otra caracteristica general de la mayoria de las metodologias de disefio es la
tendencia a automatizar los niveles mas bajos del disefio, mientras que el disenio a
alto nivel se reserva al disefiador humano. El sistema de automatizaci6n del dise-
fio desarrollado en el Universidad de Carnegie Mellon (CMU-DA) constituye una
notable excepcion a esta regla [Park79], [Dire81], [Kowa83}.
En el disefio de procesadores VLSI de propésitos generales es habitual la divi-
sion del trabajo global en dos macrotareas que suelen ser llevadas a cabo por gru-
pos de personas distintos que utilizan entornos y metodologias de disefio diferen-
tes. La primera de estas macrotareas incluye el desarrollo de nuevas arquitecturas.
Ello implica actividades de sintesis tales como la definicién de especificaciones y la
determinacién del conjunto de instrucciones y la estructura de registros, asi como
actividades de verificacion del comportamiento y analisis de las prestaciones. Por
otro lado, la segunda de las macrotareas corresponde al diseio de esas arquitec-
turas. Esta situacién se ilustra en el esquema de la figura 1.3.
Fase-1 Fase-2
Especifiaciones + Arquitectura Microarquitectura + Siicio
Figura 1.3. Particién habitual del proceso de diseno.
Como consecuencia de la aproximacién anterior, se estd focalizando la auto-
matizacién de la segunda macrotarea con las técnicas de disefo y test de alto ni-
vel. Sin embargo, queda fuera de la jerarquia el establecimiento de un puente en-
tre ambas macrotareas, de tal manera que sea posible re-entrar en la jerarquia de
disenio desde mucho mas arriba y no tomar decisiones irrevocables cuando toda-
via es prematuro.
La diferencia de enfoque entre el disefio a nivel arquitectural y los restantes
niveles de disenio no es siempre eficiente. En particular puede resultar un
handicap importante en la realizacion de circuitos VLSI de aplicaciones especificas(ASIC's). El volumen de mercado previsto para este tipo de circuitos no permite la
Participacion de grandes grupos de personas especializadas en los diferentes
niveles de disefio. Por otro lado, la eleccién a priori de una determinada
arquitectura puede no ser una estrategia acertada. Esto es cierto en aquellos
casos en que no aparezcan cuellos de botella insalvables en la comparacion entre
varias posibles arquitecturas, 0 en aquellos otros en que se pretende dotar al
sistema resultante de una flexibilidad cuyo coste a nivel de silicio no pueda ser
determinado hasta fases muy avanzadas del proceso de disefio.
La inclusion en una fase Unica de todas las actividades de disefio que trascu-
rren entre la definicién de las especificaciones de un sistema y su realizacion sobre
silicio constituye la idea central del trabajo desarrollado en esta Tesis (Figura 1.4).
Fase-dnica
Especificaciones ~ Silicio
Figura 1.4. Nuestra aproximacién al proceso de diseno.
1.5. OBJETIVOS Y ORGANIZACION DE LA TESIS
Este trabajo se focaliza en establecer una metodologia propia adecuada para
el diseno de sistemas digitales de alta complejidad, vinculando estrechamente la
fase de desarrollo arquitectural con las restantes fases de disefio.
La primera caracteristica que debe poseer una metodologia es que sea practi-
ca. Por este motivo hemos verificado el procedimiento aplicandolo a la realiza-
cion de un disefo concreto. El sistema elegido direcciona los dos primeros aspec-
tos del disefio VLSI que mencionamos en Ia introduccién de este capitulo (veloci
dad y fiabilidad).
Los objetivos que se pretenden conseguir con el presente trabajo quedan reco-
gidos formalmente en los siguientes cuatro puntos:
1. Proponer una metodologia practica, adecuada a nuestras necesidades y
que aproveche de forma realista los recursos a nuestro alcance10
2. Hacer que esta metodologia se extienda a las fases més altas del diseno,
incluyendo a la propia arquitectura
- Construir una metodologia abierta que constituya un marco de trabajo en
el que puedan incluirse progresivamente otro tipo de facilidades. En con-
creto, consideramos como objetivos futuros la inclusion de técnicas de tes-
tabilidad, la incorporacién de herramientas de diseno légico a alto nivel y
la compatibilizacion con herramientas analégicas.
4- Validar la metodologia, abordando como caso practico el diseno de una
de procesadores de comunica ados en la red de interco-
nexién de un sistema multiprocesador que incluye técnicas de redundancia
fami
nes, uti
masiva para soportar tolerancia a fallos.
En el capitulo 2 de la memoria se describe la metodologia propuesta, desglo-
sando las actividades correspondientes a cada uno de los niveles de disenio que
considera. El capitulo 3 presenta los principios de funcionamiento de la red de in-
terconexién implementada para verificar la metodologia. Los capitulos 4 a 7 co-
rresponden a los distintos niveles de disefio de la misma. Los aspectos arquitectu-
rales se abordan en los capitulos 4 y 5, para los modos de operacién normal y re-
dundante del sistema, respectivamente. A partir de las especificaciones iniciales,
se analizan una serie de opciones de diseno con objeto de determinar su viabili-
dad, asi como la relacién coste/rendimiento de cada alternativa. El capitulo 6 re-
coge el nivel de disefio de la microarquitectura. La descripcion algoritmica de las
distintas opciones arquitecturales se convierten, tras sucesivas transformaciones,
en un conjunto de circuitos légicos que implementan las diferentes funciones del
sistema. Por Ultimo, en el capitulo 7 se describe la realizacién del layout de los cir-
cuitos y su interconexién. Para ello se exploran las posibilidades de las distintas
herramientas de disefio y las facilidades de integracin a nuestro alcance. La me-
moria se completa con una serie de apéndices que contienen informacién relacio-
nada con las diferentes herramientas de CAD utilizadas en cada nivel de diserio.