microprogramacion68000

Upload: falco-corvaro

Post on 06-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Microprogramacion68000

    1/10

    Dpto. de Automtica 1

    EL MICROPROCESADOR MC68000:UN EJEMPLO DE ARQUITECTURA MICROPROGRAMADA

    1. INTRODUCCINAlgunos de los beneficios que

    tradicionalmente se exponen acerca de lamicroprogramacin son:

    regularidad, lo que disminuye lacomplejidad de la unidad de control;

    flexibilidad, lo que facilita los cambios enel diseo; y

    costes de diseo reducidos.

    A continuacin se describe la estructurade la unidad de control del microprocesadorMC68000 de Motorola aparecido en 1979. Estaunidad de control es microprogramada en dosniveles y fue diseada poniendo especial atencina las limitaciones tecnolgicas del momento:restricciones sobre el tamao del circuito,velocidad del circuito, complejidad de lasinterconexiones y nmero mximo de patillas delintegrado.

    2. ALGUNAS IDEAS SOBRE LASLIMITACIONES TECNOLGICAS DELMOMENTO

    En 1978, momento en el que seterminaba de desarrollar el microprocesadorMC68000, el arquitecto de computadores tenaque contar con las siguientes barrerastecnolgicas:

    densidad de integracin de puertaslimitada.

    velocidad mxima limitada.

    dificultades de interconexin de elemen-tos en el chip.

    limitaciones en el nmero de patillas.

    2.1. Densidad de integracin de puertaslimitada.

    Exista (y existe) un lmite en la densidadde integracin de puertas en un circuito integrado.Aunque este lmite es cada vez ms alto hay quetenerlo en cuenta siempre a la hora de disear unprocesador.

    2.2. Velocidad mxima limitada.La velocidad de trabajo de los circuitos

    tiene un lmite impuesto por la mxima disipacinde potencia en el interior del integrado. Esteproblema se debe aadir al que genera la lentitudde acceso a la memoria principal del sistema. Lavelocidad de acceso a la memoria puedemejorarse pero siempre a costa de un grandesembolso econmico.

    2.3. Dificultades de interconexin deelementos en el chip.

    La interconexin de elementos dentro delintegrado puede consumir mucha ms superficiede Si que las propias puertas lgicas que locomponen. Por otra parte, las conexiones han dehacerse siempre sobre la superficie, es decir, nose pueden tirar cables ms all de los lmites delintegrado. En algunos casos puede ser mejorduplicar elementos funcionales en distintaslocalizaciones del integrado para dar un mismoservicio a bloques diferentes.

    Respecto a esto, se observa que ocupan

    mucho menos estructuras regulares tales comoarrays de memoria que otros circuitos lgicosmenos ordenados.

    2.4. Limitaciones en el nmero de patillas.

    La tecnologa del empaquetamiento limitael nmero de patillas que puede tener unintegrado. En 1978 los encapsulados normalescontaban entre 24 40 patillas considerando elnmero de 64 como un lmite muy lejano. Estasrestricciones en el nmero de patillas se pueden

    eludir mediante la multiplexacin en el tiempo deluso de las mismas pero la ralentizacin resultanteno suele ser aceptable.

    3. LGICA CABLEADA FRENTE AMICROPROGRAMACIN

    La implementacin de microprogramacinen el MC68000 supuso la utilizacin de estatcnica por primera vez en Motorola. A pesar dela falta de experiencia de los arquitectos de lacompaa y de la brevedad de los plazos para

  • 8/3/2019 Microprogramacion68000

    2/10

    La unidad de control

    2

    finalizar el diseo se opt por ella debido a lasgrandes 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 controldecrece con la regularidad que introduce la ROMde control usada en la microprogramacin. Estoadems reduce el tiempo de diseo.

    Por otra parte, la integracin en Si sehace ms simple y es ms fcil depurar loserrores.

    Finalmente, una vez determinada la

    estructura de control, se puede trabajar enparalelo en el diseo sin tener que tomardecisiones que se dejaran hasta el final cuandose escriba el microcdigo completo.

    Ademas podemos hablar de otrosbeneficios:

    el tamao en Si es menor ya que sereduce la complejidad de interconexin.

    es muy fcil realizar simulaciones.

    se pueden aadir nuevas instruccionesen el futuro con ms que escribir una

    nueva ROM de control sin tener queredisear todo el circuito.

    3.2. Nitidez en las funciones de reloj

    La utilizacin del reloj se hace ms clarade forma que se pueden calcular con masprecisin los retardos introducidos por diferenteselementos y ajustar mejor el periodo de reloj sinintroducir incrementos dados por tolerancias.

    4. ROM DE CONTROL INTEGRADA EN ELCHIP O FUERA DE L

    Sera muy conveniente poder poner laROM de control fuera del integrado delprocesador de forma que se evitaran laslimitaciones de tamao. Sin embargo esto no esposible debido a la limitacin en el nmero depatillas. Esta restriccin reduce el ancho de lapalabra de control. Para poder trabajar conpalabras de control con un pequeo nmero debits hemos de recurrir a dos soluciones:

    realizar microprogramacin vertical; o multiplexar el uso de las patillas.

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

    5. MICROPROGRAMACIN HORIZONTALFRENTE A VERTICAL

    Ambas tcnicas tienen sus ventajas y susinconvenientes. Respecto a la microprogramacinhorizontal podemos enumerar las siguientesventajas:

    la microprogramacin horizontal norequiere decodificacin y por tanto puedeatacar directamente los elementos de launidad de ejecucin sin necesidad delgica combinacional.

    la decodificacin necesaria para laspalabras de control verticales llevaasociado un retardo que ralentiza lasoperaciones.

    Respecto a la microprogramacin verticalpodemos dar las siguientes ventajas:

    el tamao que ocupan en Si laspalabras verticales es mucho menor queel de las horizontales.

    las palabras de control horizontalestienden a estar repetidas en la ROM de

    control mientras que las verticales sesuelen escribir una sola vez.

    Una solucin hbrida entre ambas es elutilizar dos niveles de microcdigo. El primer nivel(nivel de microprogramacin) est absolutamentecodificado. En lugar de decodificarse se tomacomo una direccin que apunta a una palabra decontrol residente en otra memoria de control (nivelde nanoprogramacin).

    6. MICROPROGRAMACIN EN DOS NIVELES

    En la estructura de control de dos nivelescada macroinstruccin es ejecutada como unasecuencia de microinstrucciones. Las mi-croinstrucciones son estrechas y consistenfundamentalmente en punteros a nanoins-trucciones del segundo nivel. Las microins-truciones tambin contienen informacin nece-saria para soportar el secuenciamiento y lasbifurcaciones dentro de la microsecuencia.

    Las nanoinstrucciones son anchas ycontienen todas las seales de control necesariaspara operar sobre la unidad de ejecucin. Lasnanoinstrucciones se pueden situaraleatoriamente en su ROM de control ya que se

  • 8/3/2019 Microprogramacion68000

    3/10

    ARQUITECTURA DE COMPUTADORES

    Dpto. de Automtica 3

    accede a ellas mediante punteros en lugar desecuencialmente. Por otra parte, solo se necesitatener una sola copia de cada palabra de controldiferente sin importar cuantas veces sea utilizadapor la microsecuencia. Esto conlleva un ahorro detamao en superficie de Si tal y como se prueba

    ms adelante en el apndice.

    Figura 1. Modelo de microprogramacin en dosniveles.

    Existe un modelo de microprogramacinen dos niveles algo ms complejo. En l cadamicroinstruccin especifica una secuencia denanoinstrucciones. El procesador MC68000 nofue finalmente diseado con esta tcnica por dosrazones: la primera es que las secuencias denanoinstrucciones tienden a ser muy cortas (dos otres) con lo que no se consiguen grandesventajas; y segundo que sera inevitable el escribirvarias veces una misma palabra de control en laROM de 2 nivel a no ser que se proporcione aeste nivel algn tipo de capacidad de bifurcacin.

    7. IMPLEMENTACIN DE LA UNIDAD DE

    CONTROL DEL MC68000Una vez seleccionado el tipo de

    implementacin para la unidad de controlhubieron de resolverse otros muchos problemas.Algunos de estos problemas son la minimizacindel tamao de la ROM de control, la aceleracindel funcionamiento de la unidad de control y lainterconexin de la unidad de ejecucin con la decontrol.

    La minimizacin del tamao de la ROMde control se consigue haciendo un

    secuenciamiento explcito en el que se procuracompartir al mximo secuencias de cdigo.

    La acelaracin de la velocidad de trabajode la unidad de control se consigue haciendo quela bsqueda de la nanoinstruccin se realice enparalelo con la bsqueda de la siguientemicroinstruccin.

    Finalmente los problemas de inter-conexin se resuelven colocando la ROM decontrol directamente encima de la unidad deejecucin. Los campos del formato de lananoinstruccin tienen tal disposicin que caenmuy cerca de los diferentes bloques de hardwareque controlan.

    Figura 2. Diagrama del interconexionado debloques en Si .

    8. LA UNIDAD EJECUCIN DEL MC68000

    La unidad de ejecucin o data path del

    procesador MC68000 cuenta con 8 registros dedirecciones (A0 - A7) de 32 bits cada uno y otros8 registros de datos (D0 - D7) de 32 bits. El bancode registros de direcciones permite operacionesde 16 y 32 bits mientras que el banco de registrosde datos permite operaciones de 8, 16 y 32 bits.Todos los registros de ambos bancos sonaccesibles al programador. Adems tenemos unregistro contador de programa al que se tiene unacceso restringido y una serie de registros noaccesibles al programador que se utilizan paraguardar datos temporalmente.

    El conjunto de todos los registros sedivide en tres secciones tal y como ilustra lafigura 3. La divisin est hecha de forma que losregistros se dividen en parte alta (A0 - A7 HIGH yD0 - D7 HIGH) y pa rte baj a (A0 - A7 LOW y D0- D7 LOW). Cada una de las secciones cuentacon una unidad aritmtica. Dos busesinterconectan todos los bloques de cada secciny, a su vez, las secciones estn concatenadasentre si utilizando buffers bidireccionales quepermiten enlazar o aislar cada una de ellas. Laseccin en la que est localizada la parte baja delbanco de registros de datos tiene una unidad

    aritmtica y lgica de capacidad completa. Estaseccin se denomina seccin de datos y puede

    NIVEL DE MICROINSTRUCCIN

    MICROCONTROL

    1 niveler

    puntero ananoinstruccin

    siguientemicroinstruccin

    NIVEL DE NANOINSTRUCCIN

    NANOCONTROL

    2 nivel

    palabra de control

    ALU

    SUSTRATO DE SILICIO

    decodificador de seleccin de operacin en ALU

    interconexiones

  • 8/3/2019 Microprogramacion68000

    4/10

    La unidad de control

    4

    realizar operaciones especiales tales comomanipulacin de bits o empaquetamiento ydesempaquetamiento de datos.

    La arquitectura descrita permite realizarclculos en datos y direcciones de formasimultnea gracias a los buffers bidireccionales

    que conectan los buses. Por ejemplo, es posiblerealizar una suma registro-registro

    concurrentemente con un incremento en elcontador de programa.

    La implementacin de esta arquitecturaha sido posible debido al uso de celdas RAM dedos puertos de manera que son capaces de

    volcar su contenido en cualquiera de los dosbuses que tiene cada seccin.

    (parte baja)

    (16 bits)

    BANCO DEREGISTROS

    DE DIRECCIONES

    UNIDADARITMTICA

    (parte baja) (parte baja)

    (16 bits)

    DE DATOS

    BANCO DEREGISTROS

    UNIDADARITMTICA

    YLGICA

    UNIDADDE

    FUNCIONESESPECIALES

    UNIDADARITMTICA

    (parte alta)(parte alta)

    (16 bits)

    BANCO DEREGISTROS

    DE DIRECCIONES

    (parte alta)

    (16 bits)

    DE DATOS

    BANCO DEREGISTROS

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

    9. EL JUEGO DE INSTRUCCIONES DELMC68000

    El juego de instrucciones que soporta elMC68000 consiste fundamentalmente en ope-raciones

    con uno o dos operandos de tamao byte, palabra (16bits) o doble palabra (32 bits). Las operaciones serealizan normalmente entre registros o entre memoria yregistro con la excepcin de las transferencias de datosque pueden darse entre dos posiciones de memoria.

    A la hora de disear la unidad de control sesupuso que el juego de instrucciones estaba cerrado,es decir, no se consideraba ninguna posibleactualizacin. Por ello, la primera versin del procesadorasumi que los cdigos de operacin y los formatos deinstruccin permaneceran siempre tal y como sehaban definido aunque se dejaron huecos entre los

    cdigos de operacin originales para permitir unaexpansin posterior del juego de instrucciones.

    Respecto al formato del juego de instruccionesse impusieron algunas restricciones que tienenimportantes consecuencias. Estas limitaciones son:

    1. Ciertos campos, tales como losidentificadores de registros, ocupan campos localizadosen posiciones fijas de manera que pueden ser extradosdirectamente del formato de la instruccin. Esto tiende a

    reducir el tamao de la memoria ROM de control ysimplifica la decodificacin de la instruccin.

    2. La seleccin de registro y de funcin de ALUtiende a permanecer sin cambios durante la ejecucinde una instruccin. Los identificadores de los registros yde la funcin de ALU se decodifican del formato de lainstruccin y son encaminados directamente a la unidadde ejecucin puenteando la unidad de control.

    3. La unidad de control necesita solamentecontener informacin acerca de la temporizacin conque debe operar un registro o la ALU.

    Aprovechando estas caractersticas podemossimplificar la unidad de control y reducir el tamao de lamemoria ROM de control.

  • 8/3/2019 Microprogramacion68000

    5/10

    ARQUITECTURA DE COMPUTADORES

    Dpto. de Automtica 5

    de entradaacarreo

    de salida

    acarreo

    BANCO DE

    DE DATOS

    (parte alta)

    REGISTROS

    BANCO DE

    DE DIRECCIONES

    (parte alta)

    REGISTROS

    BANCO DE

    DE DATOS

    (parte baja)

    REGISTROS

    BANCO DE

    DE DIRECCIONES

    (parte baja)

    REGISTROS

    SP (parte alta)

    BUS DE DIRECCIONES EXTERNO

    32 bits

    BUS DE DATOS EXTERNO

    16 bits

    SP (parte baja)

    AT (parte alta) AT (parte baja)

    PC (parte alta) PC (parte baja)

    DT (parte alta) DT (parte baja)

    16 bits

    16 bits

    ROM

    CTES.

    MUX

    REGISTRO

    ROM

    CTES.

    MUX

    ROM

    CTES.

    MUX

    sumador

    REGISTRO REGISTRO

    sumador ALU

    buffer bidireccional

    bufferbidireccional

    MUL / DIV

    Figura 4. Diagrama de la unidad de ejecucin o data pathdel MC68000.

    10. LA ESTRUCTURA DE CONTROL DELMC68000

    Basndonos en el diseo de la unidad deejecucin implementada en el MC68000 y en lasrestricciones impuestas a los formatos del juego

    de instrucciones del mismo, se llega a laestructura de control que de forma simplificada seilustra en la figura 4. La idea bsica consiste enextraer de la palabra de la instruccin todaaquella informacin que permanecer sin cambiardurante su ejecucin, es decir, la informacin queno depende del instante de tiempo en el que nosencontremos. Este conjunto de informacingobernar una serie de seales de control que sellevan directamente a la unidad de ejecucin sinpasar por la unidad de control.

    En una implementacin de microcontrol

    tpica la decodificacin de la instruccin generauna microdireccin de comienzo de micro-programa en la ROM de control. La ROM de

    control proporciona entonces un conjunto deseales de control para la unidad de ejecucin yla microdireccin de la siguiente microinstruccin.La secuencia de microinstrucciones puede versealterada por determinadas condiciones generadasen la unidad de ejecucin. Esta informacin se

    toma, por tanto, de la unidad de ejecucin y seprocesa convenientemente como informacin deestado de secuencia.

  • 8/3/2019 Microprogramacion68000

    6/10

    La unidad de control

    6

    Figura 5. Diagrama de bloques simplificado de laestructura de control del MC68000.

    Como ya se ha indicado, se estudi la

    implementacin de microprogramacin de un solonivel pero se encontr que era impracticable

    en aquel momento debido a que resultabademasiado grande para un solo chip. Finalmente,se pudo conseguir una sustancial reduccin delrea de ROM de control gracias a la utilizacin dedos niveles de microprogramacin. En la figura 5se ilustra como qued la estructura de controlpara el MC68000.

    En una estructura de dos niveles, elprimer nivel (microcontrol) contiene secuencias depalabras de control que son punteros (nano-

    direcciones) al segundo nivel. Este segundo nivelcontiene una ordenacin arbitraria de palabras decontrol no duplicadas. La eficiencia de estaestructura doble descansa en dos hechos.

    En primer lugar, el nmero de estados decontrol realmente implementados debe ser unafraccin pequea del nmero total de posiblesestados de control. Por ejemplo, para elprocesador MC68000 una palabra de controlhorizontal tiene del orden de 70 sealesdiferentes. Esto nos da un total de 270 estados decontrol diferentes. La mayor parte de ellos no

    tienen ningn valor. La implementacin delconjunto completo de instrucciones de ensam-blador de este procesador no necesita ms de200 300 estados de control diferentes lo querepresenta menos de 29 estados de control. Esteconjunto es una fraccin realmente pequea deltotal y puede ser direccionado con 9 bits, es decir,solo necesitamos incluir un campo de 9 bits porcada microinstruccin.

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

    En segundo lugar, debe de darse unacierta redundancia en el uso de lasnanoinstrucciones para que sea efectiva lareduccin de rea de Si empleada enimplementar la ROM de control. Si lacorrespondencia fuera uno a uno entre ladireccin incluida en el primer nivel y la palabra de

    control accedida en el segundo, la direccin delprimer nivel sera sustituida por la palabra delcontrol de la nanoinstruccin y se eliminara elsegundo nivel de ROM de control. En realidad lospunteros se repiten del orden de 2 3 veces cada

    uno en el procesador MC68000de forma quelo repetido es de menor tamao que las palabrasde control a las que apuntan.

    Otro parmetro que influye en el rea deSi ocupada por la unidad de control es como deprofunda es la codificacin de la palabra decontrol. En el sistema del MC68000, cada palabra

    de control del primer nivel est representada poruna direccin. Esta nanodireccin puedeconsiderarse como la mxima codificacin de lapalabra de control ya que hay unacorrespondencia unvoca entre direcciones ypalabras de control. La ROM de control desegundo nivel se puede ver como una simpletabla que sirve para traducir estados codificados asu significado horizontal en seales de control.Esta tabla sustituye a la lgica combinacionalnecesaria para desarrollar un cdigo en suscorrespondientes activaciones y desactivacionesde conmutadores en la unidad de ejecucin.

    UNIDAD DE EJECUCIN

    y de funcin de ALUseales de seleccin de registro

    seales de control

    DE INSTRUCCIN

    DECODIFICADOR

    DE CONTROL

    UNIDAD

    INSTRUCCINREGISTRO DE

    UNIDAD DE EJECUCIN

    seales de control

    INSTRUCCIN

    REGISTRO DE

    y de funcin de ALU

    seales de seleccinde registro

    condiciones

    UNIDAD DE CONTROL

    DE INSTRUCCINDECODIFICADOR

    DIRECCIN

    DIRECCIN

    CONTROL

    de saltoseleccin

    ROM DE MICRO CONTROL

    tamao estimado

    640 x 10

    ROM DE NANO CONTROL

    tamao estimado

    280 x 70

    INSTRUCCIONES

    BUFFERde

    instruccin en ejecucin

    instruccin que se est extrayendo

    instruccin que se est decodificando

  • 8/3/2019 Microprogramacion68000

    7/10

    ARQUITECTURA DE COMPUTADORES

    Dpto. de Automtica 7

    Por otra parte, las palabras de controlestn divididas en pequeos campos (hasta untotal de 38) en los que se codifica informacinpara gobernar el funcionamiento de algn bloquede la unidad de ejecucin. Estos campos sehayan fsicamente encima de los elementos que

    gobiernan y son decodificados de forma rpidacon un hardware sencillo ya que no contienenmuchos bits (del orden de 2 3). De esta maneralas palabras de control en ROM tienen 70 bitsmientras que el nmero total de conmutadores enla unidad de ejecucin del MC68000 es de 180.

    11. PROBLEMAS DE LAMICROPROGRAMACIN EN DOS NIVELESDEL MC68000

    El objetivo de la implementacin de

    microprogramacin en dos niveles fue conseguirreducir el rea de Si empleada en la unidad decontrol. Esta superficie fue significativamentereducida pero en contraste aparecieron algunosproblemas.

    El primero de los problemas que nosencontramos es que los accesos a memoria noson instantneos. Adems, en una estructura dedos niveles dichos accesos han de sersecuenciales. 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 atcnicas de prebsqueda, solapamiento deaccesos y acceso simultneo a varias palabras.

    Otro problema es el retardo asociado alos saltos condicionales. Visto en una primeraaproximacin tenemos que la evaluacin de unacondicin en la unidad de ejecucin afecta a lasecuencia de ejecucin de la siguientemicroinstruccin y seguidamente afecta a lasecuencia de ejecucin de nanoinstrucciones.Para minimizar el tiempo invertido en realizar estaserie de reajustes se recurre a lecturas

    simultneas de varias palabras de controlseleccionando finalmente solo aquella queconvenga de acuerdo a la evaluacin de lacondicin. En otros casos se comprueba como delas dos posibles ramas de un salto una estprivilegiada por darse en ms ocasiones. En esecaso es deseable realizar la prebsqueda de larama ms probable. Este es el caso de lainstruccin 'decrementar y saltar si no cero'(bucles) en la que el salto tiene una probabilidadmuy alta y por tanto, la prebsqueda minimizagrandemente los retardos asociados a los bucles.

    Los mecanismos de bifurcacin debenestudiarse con detenimiento ya que los saltos sonmuy comunes. En el procesador MC68000

    encontramos que en el primer nivel demicroprogramacin se da una media de un saltopor cada dos microinstrucciones ledas. Laimplementacin de mecanismos eficientes debifurcacin es crtica a la hora de proporcionartiempos de ejecucin suficientemente cortos con

    unidades de control microprogramadas.

    12. OTROS ASPECTOS A TENER EN CUENTA

    12.1. Minimizacin

    Se ha procurado que los microprogramascontuvieran el mayor nmero posible de palabrasde control comunes. Para conseguir esto serecurre a almacenar los operandos en registrosintermedios de forma que las operaciones arealizar dependan muy poco de los operandos y,

    por tanto, tengan palabras de control iguales.

    Tambin se ha tenido en cuenta eldetectar fracciones de microcdigo que se repitende modo que pueda saltarse a ellas dentro de laROM de control del primer nivel. Estassecuencias suelen corresponder a los finales delas microrutinas.

    12.2. Sencillez de la estructura

    La sencillez de la unidad de ejecucin

    lleva a una microprogramacin ms fcil. Es porello que la unidad de ejecucin del MC68000es muy sencilla tal y como se puede ver en lafigura 4.

    13. APNDICE: Reduccin del tamao de lamemoria de control con dos niveles demicroprogramacin.

    Sean las siguientes variables:

    n: nmero de seales de control

    diferentes en la arquitectura de unprocesador (o dicho de otro modo,nmero de conmutadores presentesen la unidad de ejecucin). Esteparmetro es el ancho de una palabrade control (microinstruccin) horizontal(sin codificar).

    k: nmero total de microinstrucciones(palabras de control) necesarias paraimplementar todas las instrucciones (odicho de otro modo, nmero total deestados de control que ejecutan el

    conjunto de instrucciones del juego).

  • 8/3/2019 Microprogramacion68000

    8/10

    La unidad de control

    8

    : relacin entre el nmero de mi-croinstrucciones no repetidas (nicas) y elnmero total de microinstrucionesnecesario para implementar todo el juego.

    13.1. Tamao de una unidad de controlmicroprogramada en un solo nivel.

    Una unidad de control microprogramadaen un solo nivel cuenta con una nica memoriaROM de control. Suponemos que elsecuenciamiento es explcito y que la micro-programacin es horizontal. Si k es el nmero demicroinstrucciones y cada una de ellas contieneuna palabra de control de n bits y una direccin dela siguiente microinstruccin, tendremos elsiguiente tamao:

    ( )T1 k n log2k= + (1)

    Figura 7. Unidad de control microprogramada enun solo nivel.

    13.2. Tamao de una unidad de controlmicroprogramada en dos niveles.

    En una unidad de control micropro-gramada en dos niveles contamos con dosmemorias ROM de control. En la primera (nivel demicroprogramacin) se sustituye la palabra decontrol por una direccin (nanodireccin) quehace referencia a la segunda memoria (nivel denanoprogramacin) en la que se han escrito laspalabras de control no repetidas.

    El ancho de la nanodireccin vendr dadopor el nmero de palabras de control diferentes,es decir,

    v = k (2)

    El tamao del primer nivel ser por tantoal ancho de la nanodireccin ms el ancho de lamicrodireccin:

    ( )k log2

    v log2

    k + (3)

    El tamao del segundo nivel vendr dado

    por el nmero de palabras de control no repetidas(nanoinstrucciones) y el nmero de seales decontrol que contienen:

    n v (4)

    El tamao total ser la suma de lasecuaciones (3) y (4).

    ( )T2

    k log2

    v log2k n v= + +

    (5)

    Figura 8. Unidad de control microprogramada endos niveles.

    13.3. Comparacin de tamaos.

    El objetivo es que T2 sea menor que T1.

    Para que valores de n, k y es cierto esto? Enprimer lugar debemos tener una idea de losrangos en los que se mueven estos parmetrospara procesadores reales. Tenemos que:

    n (20, 750)

    k (50, 8500)

    Vamos a representar en primer lugar eltamao utilizado para implementar una unidad decontrol microprogramada en un nivel y en dos

    niveles con diferentes en funcin de k para un nfijo.

    log k2

    n

    k

    MEMORIA DE CONTROL

    DE UN SOLO NIVEL microinstrucciones

    BITS DE CONTROL DIRECCIN DE LA SIGUIENTEMICROINSTRUCCIN

    k

    log k2

    microinstrucciones

    nanoinstrucciones

    MICROCONTROL

    1 niveler

    v

    n

    NANOCONTROL2 nivel

    log v2

  • 8/3/2019 Microprogramacion68000

    9/10

    ARQUITECTURA DE COMPUTADORES

    Dpto. de Automtica 9

    Figura 9. Grfica comparativa de tamaos de

    unidad de control microprogramada en un nivel yen dos niveles para diferentes valores de y en

    funcin de k para n fijo.

    Figura 10. Grfica comparativa de tamaos deunidad de control microprogramada en un nivel y

    en dos niveles en funcin de n para k fijo.

    13.4. Microprogramacin en dos nivelesen el MC68000

    Para el procesador MC68000 tenemosque:

    n = 70k = 650

    = 0,4v = 260

    De donde:

    T1 = 650 (70 + log2 650) = 52.400 bits

    T2 = 650 ( log2 260 + log2 650) +70 260 = 30.550 bi ts

    T2 / T1 = 0,58

    T = T1 - T2 = 21.850 bits

    13.5. Microprogramacin en un nivelen el 8088

    Como ejemplo de microprogramacin enun solo nivel tenemos el procesador 8088 deINTEL. Para este los parmetros son los quesiguen:

    n = 21k = 504

    = desconocidov = desconocido

    De donde:

    T1 = 504 (21 + log2 504) = 15.120 bits

    Es significativo notar que el nmero deseales de control que se manejan en esteprocesador es muy pequeo en comparacin conlas 70 del MC68000. Esto es debido a laarquitectura de la unidad de ejecucin y, por otraparte, a una mayor codificacin de la palabra decontrol.

    La ROM de control implementadarealmente en el 8088 tiene un tamao menor delobtenido como consecuencia de realizar losclculos anteriores. La reduccin es de

    aproximadamente un 30% el tamao es de

    10.584 bits y se debe a que las fracciones demicrocdigo que se hayan repetidas en lasmicrorutinas no se escriben varias veces sino quese bifurca a ellas siempre que es posible.

    Tamaos de memorias de control en 1 y 2 niveles

    0

    50000

    100000

    150000

    200000

    250000

    300000

    350000

    400000

    450000

    0 1000 2000 3000 4000

    k

    Tamao n = 100

    1 nivel

    2 niveles

    = 0,4

    = 0,6

    = 0,2

    = 0,8

    Tamaos de memorias de control en 1 y 2 niveles

    0

    50000

    100000

    150000

    200000

    250000

    0 20 40 60 80 100

    n

    Tamao

    1 nivel

    2 niveles

    k = 2000

  • 8/3/2019 Microprogramacion68000

    10/10

    La unidad de control

    10

    14. REFERENCIAS

    Documento AR235de MOTOROLA. SigmicroNewsletter. Volumen 9. Nmero 4. Diciembre1978.

    M68000 Family Programmer's ReferenceManual. MOTOROLA, 1992. Referenciadocumento: M68000PM/AD Rev. 1.

    M68000 Microprocessor User's Manual. NinthEdition. MOTOROLA, 1993. Referenciadocumento: M68000UM/AD Rev. 8.

    Organizacin de Computadores. Un enfoqueestructurado. Andrew S. Tanenbaum. PrenticeHall, 1992.

    Sistemas Digitales. Ingeniera de losMicroprocesadores 68.000. Antonio Garca

    Guerra y Enrique Fenoll Comes. Editorial Centrode Estudios Ramn Areces, S.A., 1993.

    Frequently Asked Questions (FAQ) about 68Kchips. Direccin Internet:http://www.lib.ox.ac.uk/internet/news/faq/archive/motorola.68k-chips-faq.html, febrero 1996.