You are on page 1of 10

EL MICROPROCESADOR MC68000: UN EJEMPLO DE ARQUITECTURA MICROPROGRAMADA

1. INTRODUCCIN Algunos de los beneficios que tradicionalmente se exponen acerca de la microprogramacin son: regularidad, lo que disminuye la complejidad de la unidad de control; flexibilidad, lo que facilita los cambios en el diseo; y costes de diseo reducidos. A continuacin se describe la estructura de la unidad de control del microprocesador MC68000 de Motorola aparecido en 1979. Esta unidad de control es microprogramada en dos niveles y fue diseada poniendo especial atencin a las limitaciones tecnolgicas del momento: restricciones sobre el tamao del circuito, velocidad del circuito, complejidad de las interconexiones y nmero mximo de patillas del integrado. 2.2. Velocidad mxima limitada. La velocidad de trabajo de los circuitos tiene un lmite impuesto por la mxima disipacin de potencia en el interior del integrado. Este problema se debe aadir al que genera la lentitud de acceso a la memoria principal del sistema. La velocidad de acceso a la memoria puede mejorarse pero siempre a costa de un gran desembolso econmico. 2.3. Dificultades de interconexin de elementos en el chip. La interconexin de elementos dentro del integrado puede consumir mucha ms superficie de Si que las propias puertas lgicas que lo componen. Por otra parte, las conexiones han de hacerse siempre sobre la superficie, es decir, no se pueden tirar cables ms all de los lmites del integrado. En algunos casos puede ser mejor duplicar elementos funcionales en distintas localizaciones del integrado para dar un mismo servicio a bloques diferentes. Respecto a esto, se observa que ocupan mucho menos estructuras regulares tales como arrays de memoria que otros circuitos lgicos menos ordenados.

2. ALGUNAS IDEAS SOBRE LAS LIMITACIONES TECNOLGICAS DEL MOMENTO En 1978, momento en el que se terminaba de desarrollar el microprocesador MC68000, el arquitecto de computadores tena que contar con las siguientes barreras tecnolgicas: densidad de integracin de puertas limitada. velocidad mxima limitada. dificultades de interconexin de elementos en el chip. limitaciones en el nmero de patillas. 2.1. Densidad de integracin de puertas limitada. Exista (y existe) un lmite en la densidad de integracin de puertas en un circuito integrado. Aunque este lmite es cada vez ms alto hay que tenerlo en cuenta siempre a la hora de disear un procesador.

2.4. Limitaciones en el nmero de patillas. La tecnologa del empaquetamiento limita el nmero de patillas que puede tener un integrado. En 1978 los encapsulados normales contaban entre 24 40 patillas considerando el nmero de 64 como un lmite muy lejano. Estas restricciones en el nmero de patillas se pueden eludir mediante la multiplexacin en el tiempo del uso de las mismas pero la ralentizacin resultante no suele ser aceptable.

3. LGICA CABLEADA FRENTE A MICROPROGRAMACIN La implementacin de microprogramacin en el MC68000 supuso la utilizacin de esta tcnica por primera vez en Motorola. A pesar de la falta de experiencia de los arquitectos de la compaa y de la brevedad de los plazos para

Dpto. de Automtica

La unidad de control

finalizar el diseo se opt por ella debido a las grandes ventajas que ofreca en el momento: regularidad y flexibilidad; y nitidez en las funciones de reloj. 3.1. Regularidad y flexibilidad La complejidad de la unidad de control decrece con la regularidad que introduce la ROM de control usada en la microprogramacin. Esto adems reduce el tiempo de diseo. Por otra parte, la integracin en Si se hace ms simple y es ms fcil depurar los errores. Finalmente, una vez determinada la estructura de control, se puede trabajar en paralelo en el diseo sin tener que tomar decisiones que se dejaran hasta el final cuando se escriba el microcdigo completo. Ademas beneficios: podemos hablar de otros

Ambas soluciones ralentizan el sistema. La primera por que requiere decodificacin y la segunda debido al secuenciamiento en el acceso a la palabra de control.

5. MICROPROGRAMACIN HORIZONTAL FRENTE A VERTICAL Ambas tcnicas tienen sus ventajas y sus inconvenientes. Respecto a la microprogramacin horizontal podemos enumerar las siguientes ventajas: la microprogramacin horizontal no requiere decodificacin y por tanto puede atacar directamente los elementos de la unidad de ejecucin sin necesidad de lgica combinacional. la decodificacin necesaria para las palabras de control verticales lleva asociado un retardo que ralentiza las operaciones. Respecto a la microprogramacin vertical podemos dar las siguientes ventajas: el tamao que ocupan en Si las palabras verticales es mucho menor que el de las horizontales. las palabras de control horizontales tienden a estar repetidas en la ROM de control mientras que las verticales se suelen escribir una sola vez. Una solucin hbrida entre ambas es el utilizar dos niveles de microcdigo. El primer nivel (nivel de microprogramacin) est absolutamente codificado. En lugar de decodificarse se toma como una direccin que apunta a una palabra de control residente en otra memoria de control (nivel de nanoprogramacin).

el tamao en Si es menor ya que se reduce la complejidad de interconexin. es muy fcil realizar simulaciones. se pueden aadir nuevas instrucciones en el futuro con ms que escribir una nueva ROM de control sin tener que redisear todo el circuito.

3.2. Nitidez en las funciones de reloj La utilizacin del reloj se hace ms clara de forma que se pueden calcular con mas precisin los retardos introducidos por diferentes elementos y ajustar mejor el periodo de reloj sin introducir incrementos dados por tolerancias.

4. ROM DE CONTROL INTEGRADA EN EL CHIP O FUERA DE L Sera muy conveniente poder poner la ROM de control fuera del integrado del procesador de forma que se evitaran las limitaciones de tamao. Sin embargo esto no es posible debido a la limitacin en el nmero de patillas. Esta restriccin reduce el ancho de la palabra de control. Para poder trabajar con palabras de control con un pequeo nmero de bits hemos de recurrir a dos soluciones: realizar microprogramacin vertical; o multiplexar el uso de las patillas.

6. MICROPROGRAMACIN EN DOS NIVELES En la estructura de control de dos niveles cada macroinstruccin es ejecutada como una secuencia de microinstrucciones. Las microinstrucciones son estrechas y consisten fundamentalmente en punteros a nanoinstrucciones del segundo nivel. Las microinstruciones tambin contienen informacin necesaria para soportar el secuenciamiento y las bifurcaciones dentro de la microsecuencia. Las nanoinstrucciones son anchas y contienen todas las seales de control necesarias para operar sobre la unidad de ejecucin. Las nanoins tr uc c iones se pueden situar aleatoriamente en su ROM de control ya que se

ARQUITECTURA DE COMPUTADORES

accede a ellas mediante punteros en lugar de secuencialmente. Por otra parte, solo se necesita tener una sola copia de cada palabra de control diferente sin importar cuantas veces sea utilizada por la microsecuencia. Esto conlleva un ahorro de tamao en superficie de Si tal y como se prueba ms adelante en el apndice.
NIVEL DE MICROINSTRUCCIN

La acelaracin de la velocidad de trabajo de la unidad de control se consigue haciendo que la bsqueda de la nanoinstruccin se realice en paralelo con la bsqueda de la siguiente microinstruccin. Finalmente los problemas de interconexin se resuelven colocando la ROM de control directamente encima de la unidad de ejecucin. Los campos del formato de la nanoinstruccin tienen tal disposicin que caen muy cerca de los diferentes bloques de hardware que controlan.
decodificador de seleccin de operacin en ALU

1 er nivel MICROCONTROL

NIVEL DE NANOINSTRUCCIN siguiente microinstruccin puntero a nanoinstruccin 2 nivel


NANOCONTROL

interconexiones

ALU

SUSTRATO DE SILICIO
palabra de control

Figura 1. Modelo de microprogramacin en dos niveles.

Figura 2. Diagrama del interconexionado de bloques en Si .

Existe un modelo de microprogramacin en dos niveles algo ms complejo. En l cada microinstruccin especifica una secuencia de nanoinstrucciones. El procesador MC68000 no fue finalmente diseado con esta tcnica por dos razones: la primera es que las secuencias de nanoinstrucciones tienden a ser muy cortas (dos o tres) con lo que no se consiguen grandes ventajas; y segundo que sera inevitable el escribir varias veces una misma palabra de control en la ROM de 2 nivel a no ser que se proporcione a este nivel algn tipo de capacidad de bifurcacin.

8. LA UNIDAD EJECUCIN DEL MC68000 La unidad de ejecucin o data path del procesador MC68000 cuenta con 8 registros de direcciones (A0 - A7) de 32 bits cada uno y otros 8 registros de datos (D0 - D7) de 32 bits. El banco de registros de direcciones permite operaciones de 16 y 32 bits mientras que el banco de registros de datos permite operaciones de 8, 16 y 32 bits. Todos los registros de ambos bancos son accesibles al programador. Adems tenemos un registro contador de programa al que se tiene un acceso restringido y una serie de registros no accesibles al programador que se utilizan para guardar datos temporalmente. El conjunto de todos los registros se divide en tres secciones tal y como ilustra la figura 3. La divisin est hecha de forma que los registros se dividen en parte alta (A0 - A7 HIGH y D0 - D7 HIGH) y par te baj a (A0 - A7 LOW y D0 - D7 LOW). Cada una de las secciones cuenta con una unidad aritmtica. Dos buses interconectan todos los bloques de cada seccin y, a su vez, las secciones estn concatenadas entre si utilizando buffers bidireccionales que permiten enlazar o aislar cada una de ellas. La seccin en la que est localizada la parte baja del banco de registros de datos tiene una unidad aritmtica y lgica de capacidad completa. Esta seccin se denomina seccin de datos y puede 3

7. IMPLEMENTACIN DE LA UNIDAD DE CONTROL DEL MC68000 Una vez seleccionado el tipo de implementacin para la unidad de control hubieron de resolverse otros muchos problemas. Algunos de estos problemas son la minimizacin del tamao de la ROM de control, la aceleracin del funcionamiento de la unidad de control y la interconexin de la unidad de ejecucin con la de control. La minimizacin del tamao de la ROM de control se consigue haciendo un secuenciamiento explcito en el que se procura compartir al mximo secuencias de cdigo.

Dpto. de Automtica

La unidad de control

realizar operaciones especiales tales como manipulacin de bits o empaquetamiento y desempaquetamiento de datos. La arquitectura descrita permite realizar clculos en datos y direcciones de forma simultnea gracias a los buffers bidireccionales que conectan los buses. Por ejemplo, es posible realizar una suma registro-registro

concurrentemente con un incremento en el contador de programa. La implementacin de esta arquitectura ha sido posible debido al uso de celdas RAM de dos puertos de manera que son capaces de volcar su contenido en cualquiera de los dos buses que tiene cada seccin.

BANCO DE REGISTROS DE DIRECCIONES


(parte alta) (16 bits)

BANCO DE REGISTROS DE DATOS


(parte alta) (16 bits)

UNIDAD ARITMTICA

BANCO DE REGISTROS DE DIRECCIONES


(parte baja) (16 bits)

UNIDAD ARITMTICA
(parte baja)

BANCO DE REGISTROS DE DATOS


(parte baja) (16 bits)

UNIDAD UNIDAD DE ARITMTICA FUNCIONES Y ESPECIALES LGICA

(parte alta)

Figura 3. Diagrama de bloques simplificado de la unidad de ejecucin del MC68000.

9. EL JUEGO DE INSTRUCCIONES DEL MC68000 El juego de instrucciones que soporta el MC68000 consiste fundamentalmente en ope-raciones con uno o dos operandos de tamao byte, palabra (16 bits) o doble palabra (32 bits). Las operaciones se realizan normalmente entre registros o entre memoria y registro con la excepcin de las transferencias de datos que pueden darse entre dos posiciones de memoria. A la hora de disear la unidad de control se supuso que el juego de instrucciones estaba cerrado, es decir, no se consideraba ninguna posible actualizacin. Por ello, la primera versin del procesador asumi que los cdigos de operacin y los formatos de instruccin permaneceran siempre tal y como se haban definido aunque se dejaron huecos entre los cdigos de operacin originales para permitir una expansin posterior del juego de instrucciones. Respecto al formato del juego de instrucciones se impusieron algunas restricciones que tienen importantes consecuencias. Estas limitaciones son:

1. Ciertos campos, tales como los identificadores de registros, ocupan campos localizados en posiciones fijas de manera que pueden ser extrados directamente del formato de la instruccin. Esto tiende a reducir el tamao de la memoria ROM de control y simplifica la decodificacin de la instruccin. 2. La seleccin de registro y de funcin de ALU tiende a permanecer sin cambios durante la ejecucin de una instruccin. Los identificadores de los registros y de la funcin de ALU se decodifican del formato de la instruccin y son encaminados directamente a la unidad de ejecucin puenteando la unidad de control. 3. La unidad de control necesita solamente contener informacin acerca de la temporizacin con que debe operar un registro o la ALU. Aprovechando estas caractersticas podemos simplificar la unidad de control y reducir el tamao de la memoria ROM de control.

ARQUITECTURA DE COMPUTADORES

16 bits buffer bidireccional

BANCO DE REGISTROS DE DATOS


(parte alta)

BANCO DE REGISTROS DE DATOS


(parte baja)

BANCO DE REGISTROS DE DIRECCIONES


(parte alta)

BANCO DE REGISTROS DE DIRECCIONES


(parte baja)

16 bits

SP (parte alta) DT (parte alta) AT (parte alta) PC (parte alta) ROM CTES.
MUX

SP (parte baja) DT (parte baja) AT (parte baja) PC (parte baja) ROM CTES.
MUX MUX

MUL / DIV

ROM CTES.

sumador

acarreo de entrada

acarreo de salida

sumador

ALU

REGISTRO

REGISTRO
buffer bidireccional

REGISTRO

32 bits

BUS DE DIRECCIONES EXTERNO

16 bits

BUS DE DATOS EXTERNO

Figura 4. Diagrama de la unidad de ejecucin o data path del MC68000.

10. LA ESTRUCTURA DE CONTROL DEL MC68000 Basndonos en el diseo de la unidad de ejecucin implementada en el MC68000 y en las restricciones impuestas a los formatos del juego de instrucciones del mismo, se llega a la estructura de control que de forma simplificada se ilustra en la figura 4. La idea bsica consiste en extraer de la palabra de la instruccin toda aquella informacin que permanecer sin cambiar durante su ejecucin, es decir, la informacin que no depende del instante de tiempo en el que nos encontremos. Este conjunto de informacin gobernar una serie de seales de control que se llevan directamente a la unidad de ejecucin sin pasar por la unidad de control. En una implementacin de microcontrol tpica la decodificacin de la instruccin genera una microdireccin de comienzo de microprograma en la ROM de control. La ROM de
Dpto. de Automtica

control proporciona entonces un conjunto de seales de control para la unidad de ejecucin y la microdireccin de la siguiente microinstruccin. La secuencia de microinstrucciones puede verse alterada por determinadas condiciones generadas en la unidad de ejecucin. Esta informacin se toma, por tanto, de la unidad de ejecucin y se procesa convenientemente como informacin de estado de secuencia.

La unidad de control

REGISTRO DE INSTRUCCIN

BUFFER de INSTRUCCIONES

instruccin que se est extrayendo instruccin que se est decodificando instruccin en ejecucin

DECODIFICADOR DE INSTRUCCIN

UNIDAD DE CONTROL

REGISTRO DE INSTRUCCIN

UNIDAD DE CONTROL
ROM DE MICRO CONTROL

seales de seleccin de registro y de funcin de ALU

seales de control

DIRECCIN

DECODIFICADOR DE INSTRUCCIN

tamao estimado 640 x 10

DIRECCIN ROM DE NANO CONTROL

UNIDAD DE EJECUCIN

Figura 5. Diagrama de bloques simplificado de la estructura de control del MC68000.

seleccin de salto seales de seleccin de registro y de funcin de ALU condiciones

tamao estimado 280 x 70

CONTROL
seales de control

Como ya se ha indicado, se estudi la implementacin de microprogramacin de un solo nivel pero se encontr que era impracticable en aquel momento debido a que resultaba demasiado grande para un solo chip. Finalmente, se pudo conseguir una sustancial reduccin del rea de ROM de control gracias a la utilizacin de dos niveles de microprogramacin. En la figura 5 se ilustra como qued la estructura de control para el MC68000. En una estructura de dos niveles, el primer nivel (microcontrol) contiene secuencias de palabras de control que son punteros (nanodirecciones) al segundo nivel. Este segundo nivel contiene una ordenacin arbitraria de palabras de control no duplicadas. La eficiencia de esta estructura doble descansa en dos hechos. En primer lugar, el nmero de estados de control realmente implementados debe ser una fraccin pequea del nmero total de posibles estados de control. Por ejemplo, para el procesador MC68000 una palabra de control horizontal tiene del orden de 70 seales diferentes. Esto nos da un total de 270 estados de control diferentes. La mayor parte de ellos no tienen ningn valor. La implementacin del conjunto completo de instrucciones de ensamblador de este procesador no necesita ms de 200 300 estados de control diferentes lo que representa menos de 29 estados de control. Este conjunto es una fraccin realmente pequea del total y puede ser direccionado con 9 bits, es decir, solo necesitamos incluir un campo de 9 bits por cada microinstruccin.

UNIDAD DE EJECUCIN

Figura 6. Diagrama de bloques simplificado de la estructura de control del MC68000.

En segundo lugar, debe de darse una cierta redundancia en el uso de las nanoinstrucciones para que sea efectiva la reduccin de rea de Si empleada en implementar la ROM de control. Si la correspondencia fuera uno a uno entre la direccin incluida en el primer nivel y la palabra de control accedida en el segundo, la direccin del primer nivel sera sustituida por la palabra del control de la nanoinstruccin y se eliminara el segundo nivel de ROM de control. En realidad los punteros se repiten del orden de 2 3 veces cada uno en el procesador MC68000 de forma que lo repetido es de menor tamao que las palabras de control a las que apuntan. Otro parmetro que influye en el rea de Si ocupada por la unidad de control es como de profunda es la codificacin de la palabra de control. En el sistema del MC68000, cada palabra de control del primer nivel est representada por una direccin. Esta nanodireccin puede considerarse como la mxima codificacin de la palabra de control ya que hay una correspondencia unvoca entre direcciones y palabras de control. La ROM de control de segundo nivel se puede ver como una simple tabla que sirve para traducir estados codificados a su significado horizontal en seales de control. Esta tabla sustituye a la lgica combinacional necesaria para desarrollar un cdigo en sus correspondientes activaciones y desactivaciones de conmutadores en la unidad de ejecucin.

ARQUITECTURA DE COMPUTADORES

Por otra parte, las palabras de control estn divididas en pequeos campos (hasta un total de 38) en los que se codifica informacin para gobernar el funcionamiento de algn bloque de la unidad de ejecucin. Estos campos se hayan fsicamente encima de los elementos que gobiernan y son decodificados de forma rpida con un hardware sencillo ya que no contienen muchos bits (del orden de 2 3). De esta manera las palabras de control en ROM tienen 70 bits mientras que el nmero total de conmutadores en la unidad de ejecucin del MC68000 es de 180.

encontramos que en el primer nivel de microprogramacin se da una media de un salto por cada dos microinstrucciones ledas. La implementacin de mecanismos eficientes de bifurcacin es crtica a la hora de proporcionar tiempos de ejecucin suficientemente cortos con unidades de control microprogramadas.

12. OTROS ASPECTOS A TENER EN CUENTA 12.1. Minimizacin Se ha procurado que los microprogramas contuvieran el mayor nmero posible de palabras de control comunes. Para conseguir esto se recurre a almacenar los operandos en registros intermedios de forma que las operaciones a realizar dependan muy poco de los operandos y, por tanto, tengan palabras de control iguales. Tambin se ha tenido en cuenta el detectar fracciones de microcdigo que se repiten de modo que pueda saltarse a ellas dentro de la ROM de control del primer nivel. Estas secuencias suelen corresponder a los finales de las microrutinas.

11. PROBLEMAS DE LA MICROPROGRAMACIN EN DOS NIVELES DEL MC68000 El objetivo de la implementacin de microprogramacin en dos niveles fue conseguir reducir el rea de Si empleada en la unidad de control. Esta superficie fue significativamente reducida pero en contraste aparecieron algunos problemas. El primero de los problemas que nos encontramos es que los accesos a memoria no son instantneos. Adems, en una estructura de dos niveles dichos accesos han de ser secuenciales. Sin embargo la alternativa, es decir, los circuitos combinacionales de decodificacin, tampoco trabajan en tiempo cero. Para conseguir acelerar la lectura de la memoria se recurre a tcnicas de prebsqueda, solapamiento de accesos y acceso simultneo a varias palabras. Otro problema es el retardo asociado a los saltos condicionales. Visto en una primera aproximacin tenemos que la evaluacin de una condicin en la unidad de ejecucin afecta a la secuencia de ejecucin de la siguiente microinstruccin y seguidamente afecta a la secuencia de ejecucin de nanoinstrucciones. Para minimizar el tiempo invertido en realizar esta serie de reajustes se recurre a lecturas simultneas de varias palabras de control seleccionando finalmente solo aquella que convenga de acuerdo a la evaluacin de la condicin. En otros casos se comprueba como de las dos posibles ramas de un salto una est privilegiada por darse en ms ocasiones. En ese caso es deseable realizar la prebsqueda de la rama ms probable. Este es el caso de la instruccin 'decrementar y saltar si no cero' (bucles) en la que el salto tiene una probabilidad muy alta y por tanto, la prebsqueda minimiza grandemente los retardos asociados a los bucles. Los mecanismos de bifurcacin deben estudiarse con detenimiento ya que los saltos son muy comunes. En el procesador MC68000
Dpto. de Automtica

12.2. Sencillez de la estructura La sencillez de la unidad de ejecucin lleva a una microprogramacin ms fcil. Es por ello que la unidad de ejecucin del MC68000 es muy sencilla tal y como se puede ver en la figura 4.

13. APNDICE: Reduccin del tamao de la memoria de control con dos niveles de microprogramacin. Sean las siguientes variables: n: nmero de seales de control diferentes en la arquitectura de un procesador (o dicho de otro modo, nmero de conmutadores presentes en la unidad de ejecucin). Este parmetro es el ancho de una palabra de control (microinstruccin) horizontal (sin codificar).

k: nmero total de microinstrucciones (palabras de control) necesarias para implementar todas las instrucciones (o dicho de otro modo, nmero total de estados de control que ejecutan el conjunto de instrucciones del juego).

La unidad de control :

relacin entre el nmero de microinstrucciones no repetidas (nicas) y el nmero total de microinstruciones necesario para implementar todo el juego.

El tamao del primer nivel ser por tanto al ancho de la nanodireccin ms el ancho de la microdireccin:

13.1. Tamao de una unidad de control microprogramada en un solo nivel. Una unidad de control microprogramada en un solo nivel cuenta con una nica memoria ROM de control. Suponemos que el secuenciamiento es explcito y que la microprogramacin es horizontal. Si k es el nmero de microinstrucciones y cada una de ellas contiene una palabra de control de n bits y una direccin de la siguiente microinstruccin, tendremos el siguiente tamao:

k log2 v + log 2 k

(3)

El tamao del segundo nivel vendr dado por el nmero de palabras de control no repetidas (nanoinstrucciones) y el nmero de seales de control que contienen:

nv

(4)

El tamao total ser la suma de las ecuaciones (3) y (4). T2 = k log2 v + log2k + n v
log v
2

T = k n + log k 1 2

)
k

(1)

(5)

log2 k

1er nivel MICROCONTROL


k microinstrucciones

MEMORIA DE CONTROL DE UN SOLO NIVEL


microinstrucciones

2 nivel
nanoinstrucciones v

NANOCONTROL

log k 2

BITS DE CONTROL DIRECCIN DE LA SIGUIENTE MICROINSTRUCCIN

Figura 7. Unidad de control microprogramada en un solo nivel. 13.2. Tamao de una unidad de control microprogramada en dos niveles.

Figura 8. Unidad de control microprogramada en dos niveles.

13.3. Comparacin de tamaos.

En una unidad de control microprogramada en dos niveles contamos con dos memorias ROM de control. En la primera (nivel de microprogramacin) se sustituye la palabra de control por una direccin (nanodireccin) que hace referencia a la segunda memoria (nivel de nanoprogramacin) en la que se han escrito las palabras de control no repetidas. El ancho de la nanodireccin vendr dado por el nmero de palabras de control diferentes, es decir,

El objetivo es que T2 sea menor que T1. Para que valores de n, k y es cierto esto? En primer lugar debemos tener una idea de los rangos en los que se mueven estos parmetros para procesadores reales. Tenemos que: n (20, 750) k (50, 8500) Vamos a representar en primer lugar el tamao utilizado para implementar una unidad de control microprogramada en un nivel y en dos niveles con diferentes en funcin de k para un n fijo.

v = k

(2)

ARQUITECTURA DE COMPUTADORES

Tamaos de memorias de control en 1 y 2 niveles


Tamao 450000 400000 350000 300000 250000 200000 150000 100000 50000 0 0 1000 2000 k 3000 4000 = 0,2 = 0,6 2 niveles = 0,4
n = 100

T 2 = 650 (log 2 260 + log 2 650) + 70 260 = 30.550 bits T2 / T1 = 0,58 T = T1 - T2 = 21.850 bits
13.5. Microprogramacin en un nivel en el 8088

1 nivel = 0,8

Como ejemplo de microprogramacin en un solo nivel tenemos el procesador 8088 de INTEL. Para este los parmetros son los que siguen: n = 21 k = 504 = desconocido v = desconocido De donde: T1 = 504 (21 + log2 504) = 15.120 bits

Figura 9. Grfica comparativa de tamaos de unidad de control microprogramada en un nivel y en dos niveles para diferentes valores de y en funcin de k para n fijo.
Tamaos de memorias de control en 1 y 2 niveles
Tamao 250000
k = 2000

200000

1 nivel

150000 2 niveles 100000

Es significativo notar que el nmero de seales de control que se manejan en este procesador es muy pequeo en comparacin con las 70 del MC68000. Esto es debido a la arquitectura de la unidad de ejecucin y, por otra parte, a una mayor codificacin de la palabra de control. La ROM de control implementada realmente en el 8088 tiene un tamao menor del obtenido como consecuencia de realizar los clculos anteriores. La reduccin es de aproximadamente un 30% el tamao es de 10.584 bits y se debe a que las fracciones de microcdigo que se hayan repetidas en las microrutinas no se escriben varias veces sino que se bifurca a ellas siempre que es posible.

50000

0 0 20 40 n 60 80 100

Figura 10. Grfica comparativa de tamaos de unidad de control microprogramada en un nivel y en dos niveles en funcin de n para k fijo.

13.4. Microprogramacin en dos niveles en el MC68000

Para el procesador MC68000 tenemos que: n = 70 k = 650 = 0,4 v = 260 De donde: T1 = 650 (70 + log2 650) = 52.400 bits
Dpto. de Automtica

La unidad de control Organizacin de Computadores. Un enfoque estructurado. Andrew S. Tanenbaum. Prentice Hall, 1992. Sistemas Digitales. Ingeniera de los Microprocesadores 68.000. Antonio Garca Guerra y Enrique Fenoll Comes. Editorial Centro de Estudios Ramn Areces, S.A., 1993. Frequently Asked Questions (FAQ) about 68K chips. Direccin Internet: http://www.lib.ox.ac.uk/internet/news/faq/archive/ motorola.68k-chips-faq.html, febrero 1996.

14. REFERENCIAS

Documento AR235 de MOTOROLA. Sigmicro Newsletter. Volumen 9. Nmero 4. Diciembre 1978. M68000 Family Programmer's Reference Manual. MOTOROLA, 1992. Referencia documento: M68000PM/AD Rev. 1. M68000 Microprocessor User's Manual. Ninth Edition. MOTOROLA, 1993. Referencia documento: M68000UM/AD Rev. 8.

10

You might also like