Descargar

Trabajo de arquitectura

Enviado por srei.producto


    1. Memoria de computadora
    2. Microcontrolador
    3. Semiconductores
    4. Transistores
    5. Fabricación de microprocesadores
    6. Historia del microprocesador
    7. Tecnologías futuras
    8. El CPU como corazón de la organización del computador
    9. Ejecución de una instrucción completa
    10. Secuenciamiento de señales de control
    11. Registros del procesador
    12. Arquitectura base
    13. Tecnologías Paralelas
    14. Zócalo
    15. Anexos

    Microprocesador, es un circuito electrónico que actúa como unidad central de proceso de un ordenador, proporcionando el control de las operaciones de cálculo. Los microprocesadores también se utilizan en otros sistemas informáticos avanzados, como impresoras, automóviles o aviones. En 1995 se produjeron unos 4.000 millones de microprocesadores en todo el mundo.

    El microprocesador es un tipo de circuito sumamente integrado. Los circuitos integrados, también conocidos como microchips o chips, son circuitos electrónicos complejos formados por componentes extremadamente pequeños formados en una única pieza plana de poco espesor de un material conocido como semiconductor. Los microprocesadores modernos incorporan hasta 10 millones de transistores (que actúan como amplificadores electrónicos, osciladores o, más a menudo, como conmutadores), además de otros componentes como resistencias, diodos, condensadores y conexiones, todo ello en una superficie comparable a la de un sello postal.

    Un microprocesador consta de varias secciones diferentes. La unidad aritmético-lógica (ALU, siglas en inglés) efectúa cálculos con números y toma decisiones lógicas; los registros son zonas de memoria especiales para almacenar información temporalmente; la unidad de control descodifica los programas; los buses transportan información digital a través del chip y de la computadora; la memoria local se emplea para los cómputos realizados en el mismo chip. Los microprocesadores más complejos contienen a menudo otras secciones; por ejemplo, secciones de memoria especializada denominadas memoria cache, que sirven para acelerar el acceso a los dispositivos externos de almacenamiento de datos. Los microprocesadores modernos funcionan con una anchura de bus de 64 bits (un bit es un dígito binario, una unidad de información que puede ser un uno o un cero): esto significa que pueden transmitirse simultáneamente 64 bits de datos.

    Un cristal oscilante situado en el ordenador proporciona una señal de sincronización, o señal de reloj, para coordinar todas las actividades del microprocesador. La velocidad de reloj de los microprocesadores más avanzados es de unos 300 megahercios (MHz) —unos 300 millones de ciclos por segundo—, lo que permite ejecutar unos 1.000 millones de instrucciones cada segundo.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Microprocesador

    Memoria de computadora

    Como el microprocesador no es capaz por sí solo de albergar la gran cantidad de memoria necesaria para almacenar instrucciones y datos de programa (por ejemplo, el texto de un programa de tratamiento de texto), pueden emplearse transistores como elementos de memoria en combinación con el microprocesador. Para proporcionar la memoria necesaria se emplean otros circuitos integrados llamados chips de memoria de acceso aleatorio (RAM, siglas en inglés), que contienen grandes cantidades de transistores. Existen diversos tipos de memoria de acceso aleatorio. La RAM estática (SRAM) conserva la información mientras esté conectada la tensión de alimentación, y suele emplearse como memoria cache porque funciona a gran velocidad. Otro tipo de memoria, la RAM dinámica (DRAM), es más lenta que la SRAM y debe recibir electricidad periódicamente para no borrarse. La DRAM resulta más económica que la SRAM y se emplea como elemento principal de memoria en la mayoría de las computadoras.

    Microcontrolador

    Un microprocesador no es un ordenador completo. No contiene grandes cantidades de memoria ni es capaz de comunicarse con dispositivos de entrada —como un teclado, un joystick o un ratón— o dispositivos de salida como un monitor o una impresora. Un tipo diferente de circuito integrado llamado microcontrolador es de hecho una computadora completa situada en un único chip, que contiene todos los elementos del microprocesador básico además de otras funciones especializadas. Los microcontroladores se emplean en videojuegos, reproductores de vídeo, automóviles y otras máquinas.

    Semiconductores

    Todos los circuitos integrados se fabrican con semiconductores, sustancias cuya capacidad de conducir la electricidad es intermedia entre la de un conductor y la de un no conductor o aislante. El silicio es el material semiconductor más habitual. Como la conductividad eléctrica de un semiconductor puede variar según la tensión aplicada al mismo, los transistores fabricados con semiconductores actúan como minúsculos conmutadores que abren y cierran el paso de corriente en sólo unos pocos nanosegundos (milmillonésimas de segundo). Esto permite que un ordenador pueda realizar millones de instrucciones sencillas cada segundo y ejecutar rápidamente tareas complejas.

    El bloque básico de la mayoría de los dispositivos semiconductores es el diodo, una unión de materiales de tipo negativo (tipo n) y positivo (tipo p). Los términos "tipo n" y "tipo p" se refieren a materiales semiconductores que han sido dopados, es decir, cuyas propiedades eléctricas han sido alteradas mediante la adición controlada de pequeñísimas concentraciones de impurezas como boro o fósforo. En un diodo, la corriente eléctrica sólo fluye en un sentido a través de la unión: desde el material de tipo p hasta el material de tipo n, y sólo cuando el material de tipo p está a una tensión superior que el de tipo n. La tensión que debe aplicarse al diodo para crear esa condición se denomina tensión de polarización directa. La tensión opuesta que hace que no pase corriente se denomina tensión de polarización inversa. Un circuito integrado contiene millones de uniones p-n, cada una de las cuales cumple una finalidad específica dentro de los millones de elementos electrónicos de circuito. La colocación y polarización correctas de las regiones de tipo p y tipo n hacen que la corriente eléctrica fluya por los trayectos adecuados y garantizan el buen funcionamiento de todo el chip.

    Transistores

    El transistor empleado más comúnmente en la industria microelectrónica se denomina transistor de efecto de campo de metal-óxido-semiconductor (MOSFET, siglas en inglés). Contiene dos regiones de tipo n, llamadas fuente y drenaje, con una región de tipo p entre ambas, llamada canal. Encima del canal se encuentra una capa delgada de dióxido de silicio, no conductor, sobre la cual va otra capa llamada puerta. Para que los electrones fluyan desde la fuente hasta el drenaje, es necesario aplicar una tensión a la puerta (tensión de polarización directa). Esto hace que la puerta actúe como un conmutador de control, conectando y desconectando el MOSFET y creando una puerta lógica que transmite unos y ceros a través del microprocesador.

    Fabricación de microprocesadores

    Los microprocesadores se fabrican empleando técnicas similares a las usadas para otros circuitos integrados, como chips de memoria. Generalmente, los microprocesadores tienen una estructura más compleja que otros chips, y su fabricación exige técnicas extremadamente precisas.

    La fabricación económica de microprocesadores exige su producción masiva. Sobre la superficie de una oblea de silicio se crean simultáneamente varios cientos de grupos de circuitos. El proceso de fabricación de microprocesadores consiste en una sucesión de deposición y eliminación de capas finísimas de materiales conductores, aislantes y semiconductores, hasta que después de cientos de pasos se llega a un complejo "bocadillo" que contiene todos los circuitos interconectados del microprocesador. Para el circuito electrónico sólo se emplea la superficie externa de la oblea de silicio, una capa de unas 10 micras de espesor (unos 0,01 mm, la décima parte del espesor de un cabello humano). Entre las etapas del proceso figuran la creación de sustrato, la oxidación, la litografía, el grabado, la implantación iónica y la deposición de capas.

    La primera etapa en la producción de un microprocesador es la creación de un sustrato de silicio de enorme pureza, una rodaja de silicio en forma de una oblea redonda pulida hasta quedar lisa como un espejo. En la actualidad, las obleas más grandes empleadas en la industria tienen 200 mm de diámetro.

    En la etapa de oxidación se coloca una capa eléctricamente no conductora, llamada dieléctrico. El tipo de dieléctrico más importante es el dióxido de silicio, que se "cultiva" exponiendo la oblea de silicio a una atmósfera de oxígeno en un horno a unos 1.000 ºC. El oxígeno se combina con el silicio para formar una delgada capa de óxido de unos 75 angstroms de espesor (un angstrom es una diezmilmillonésima de metro).

    Casi todas las capas que se depositan sobre la oblea deben corresponder con la forma y disposición de los transistores y otros elementos electrónicos. Generalmente esto se logra mediante un proceso llamado fotolitografía, que equivale a convertir la oblea en un trozo de película fotográfica y proyectar sobre la misma una imagen del circuito deseado. Para ello se deposita sobre la superficie de la oblea una capa fotosensible cuyas propiedades cambian al ser expuesta a la luz. Los detalles del circuito pueden llegar a tener un tamaño de sólo 0,25 micras. Como la longitud de onda más corta de la luz visible es de unas 0,5 micras, es necesario emplear luz ultravioleta de baja longitud de onda para resolver los detalles más pequeños. Después de proyectar el circuito sobre la capa fotorresistente y revelar la misma, la oblea se graba: esto es, se elimina la parte de la oblea no protegida por la imagen grabada del circuito mediante productos químicos (un proceso conocido como grabado húmedo) o exponiéndola a un gas corrosivo llamado plasma en una cámara de vacío especial.

    En el siguiente paso del proceso, la implantación iónica, se introducen en el silicio impurezas como boro o fósforo para alterar su conductividad. Esto se logra ionizando los átomos de boro o de fósforo (quitándoles uno o dos electrones) y lanzándolos contra la oblea a grandes energías mediante un implantador iónico. Los iones quedan incrustados en la superficie de la oblea.

    En el último paso del proceso, las capas o películas de material empleadas para fabricar un microprocesador se depositan mediante el bombardeo atómico en un plasma, la evaporación (en la que el material se funde y posteriormente se evapora para cubrir la oblea) o la deposición de vapor químico, en la que el material se condensa a partir de un gas a baja presión o a presión atmosférica. En todos los casos, la película debe ser de gran pureza, y su espesor debe controlarse con una precisión de una fracción de micra.

    Los detalles de un microprocesador son tan pequeños y precisos que una única mota de polvo puede destruir todo un grupo de circuitos. Las salas empleadas para la fabricación de microprocesadores se denominan salas limpias, porque el aire de las mismas se somete a un filtrado exhaustivo y está prácticamente libre de polvo. Las salas limpias más puras de la actualidad se denominan de clase 1. La cifra indica el número máximo de partículas mayores de 0,12 micras que puede haber en un pie cúbico de aire (0,028 metros cúbicos). Como comparación, un hogar normal sería de clase 1 millón.

    Historia del microprocesador

    El primer microprocesador fue el Intel 4004, producido en 1971. Se desarrolló originalmente para una calculadora, y resultaba revolucionario para su época. Contenía 2.300 transistores en un microprocesador de 4 bits que sólo podía realizar 60.000 operaciones por segundo. El primer microprocesador de 8 bits fue el Intel 8008, desarrollado en 1979 para su empleo en terminales informáticos. El Intel 8008 contenía 3.300 transistores. El primer microprocesador realmente diseñado para uso general, desarrollado en 1974, fue el Intel 8080 de 8 bits, que contenía 4.500 transistores y podía ejecutar 200.000 instrucciones por segundo. Los microprocesadores modernos tienen una capacidad y velocidad mucho mayores. Entre ellos figuran el Intel Pentium Pro, con 5,5 millones de transistores; el UltraSparc-II, de Sun Microsystems, que contiene 5,4 millones de transistores; el PowerPC 620, desarrollado conjuntamente por Apple, IBM y Motorola, con 7 millones de transistores, y el Alpha 21164A, de Digital Equipment Corporation, con 9,3 millones de transistores.

    Tecnologías futuras.

    La tecnología de los microprocesadores y de la fabricación de circuitos integrados está cambiando rápidamente. En la actualidad, los microprocesadores más complejos contienen unos 10 millones de transistores. Se prevé que en el 2000 los microprocesadores avanzados contengan más de 50 millones de transistores, y unos 800 millones en el 2010. Las técnicas de litografía también tendrán que ser mejoradas. En el año 2000, el tamaño mínimo de los elementos de circuito será inferior a 0,2 micras. Con esas dimensiones, es probable que incluso la luz ultravioleta de baja longitud de onda no alcance la resolución necesaria. Otras posibilidades alternativas son el uso de haces muy estrechos de electrones e iones o la sustitución de la litografía óptica por litografía que emplee rayos X de longitud de onda extremadamente corta. Mediante estas tecnologías, las velocidades de reloj podrían superar los 1.000 MHz en el 2010. Se cree que el factor limitante en la potencia de los microprocesadores acabará siendo el comportamiento de los propios electrones al circular por los transistores. Cuando las dimensiones se hacen muy bajas, los efectos cuánticos debidos a la naturaleza ondulatoria de los electrones podrían dominar el comportamiento de los transistores y circuitos. Puede que sean necesarios nuevos dispositivos y diseños de circuitos a medida que los microprocesadores se aproximan a dimensiones atómicas. Para producir las generaciones futuras de microchips se necesitarán técnicas como la epitaxia por haz molecular, en la que los semiconductores se depositan átomo a átomo en una cámara de vacío ultraelevado, o la microscopía de barrido de efecto túnel, que permite ver e incluso desplazar átomos individuales con precisión.

    EL CPU COMO CORAZON DE LA ORGANIZACIÓN DEL COMPUTADOR

    ALGUNOS CONCEPTOS FUNDAMENTALES

    Las instrucciones que constituyen un programa que debe ejecutar una computadora se cargan en localizaciones secuenciales de su memoria principal. Para ejecutar este programa la CPU trae una instrucción por vez y realiza las funciones especificadas. Las instrucciones se traen por medio de localizaciones efectivas de la memoria hasta la ejecución de una ramificación o de una instrucción de salto. La CPU lleva un control de la dirección de la localización de la memoria de la siguiente instrucción, por medio del empleo de un registro de la CPU especial al que se denomina contador de programa (PC). Después de traer una instrucción, el contenido del PC se actualiza para apuntar a la siguiente instrucción de la secuencia.

    Considérese, para simplificar, que cada instrucción ocupa una palabra de la memoria. Por lo tanto, la ejecución de una instrucción requiere que la CPU realice los siguientes tres pasos:

    1 . Traer el contenido de la localización de la memoria a la que apunte el PC. Interpretar el contenido de esta localización como una instrucción que debe ejecutarse. Por lo tanto, almacenarla en el registro de instrucción (IR: Instruction Register). En forma simbólica esto puede escribirse como:

    IR  [[PL]]

    2. Incrementar el contenido del PC en l.

    PC  [PC] + I

    3. Realizar las acciones especificadas por la instrucción almacenada en el IR.

    Obsérvese que en aquellos casos en que una instrucción ocupa más de una palabra, los pasos 1 y 2 pueden repetirse tantas veces como sea necesario para traer la instrucción completa. Por lo general a estos dos pasos se les conoce como fase de traída, mientras que el paso 3 constituye la fase de ejecución.

    La estructura de las rutas principales de datos dentro de la CPU: Los bloques de la CPU. Estos bloques pueden organizarse e interconectarse de varias formas. Una de tales organizaciones se muestra en la siguiente figura. En este caso, la unidad aritmética y lógica (ALU) y todos los registros de la CPU están conectados a través de un bus común. Desde luego, este bus es interno y no debe confundirse con el bus externo, o buses, que conectan a la CPU con la memoria y los dispositivos de E/S. El bus externo de memoria se muestra en la siguiente figura conectado con la CPU por medio de los registros de datos y de dirección MDR y MAR. El número y funciones de los registros del RO al R(n – 1) varían mucho de una máquina a otra. Pueden ser para que el programador los emplee en operaciones generales, pero algunos de ellos pueden ser registros de aplicación especial, tales como registros índice o apuntadores de pila.

     Para ver el gráfico seleccione la opción "Descargar" del menú superior

     Figura 1.: Organización de bus único para la ruta de datos dentro de la CPU

    Dos de los registros de la figura, los registros Y Z, no se han mencionado. Estos registros son invisibles para el programador; esto es, no necesita preocuparse de su existencia, ya que nunca son referenciados en forma directa por instrucción alguna. Sólo son utilizados por CPU para almacenamiento temporal durante la ejecución de ciertas instrucciones. Sin embargo, nunca se utilizan para almacenar datos generados por una instrucción para que luego los utilice otra instrucción.

    Con pocas instrucciones, la mayor parte de las operaciones de los pasos 1 al 3 mencionados antes pueden llevarse a cabo con una o más de las siguientes funciones, en alguna secuencia previamente especificada:

    1. Traer el contenido de una localización dada de la memoria y cargarlo en un registro de la CPU.
    2. Almacenar una palabra de datos proveniente de un registro de la CPU en una localización de la memoria dada.
    3. Transferir una palabra de datos de un registro de la CPU a otro o a la ALU.
    4. Efectuar una operación aritmética o lógica, y almacenar el resultado en un registro de la CPU.

    Ahora se examinará con cierto detalle la forma en que cada una de las funciones anteriores se implanta en una computadora común.

     Traída de una palabra a partir de la memoria

    En una memoria de acceso aleatorio, la información está almacenada en localizaciones identificadas por sus direcciones. Para traer una palabra de información de la memoria, la CPU tiene que especificar la dirección de la localización de la memoria en donde esta información está almacenada y solicitar una operación de Leer. Esto se aplica si la información que se va a localizar es una instrucción de un programa o una palabra de datos (operando) especificada por una instrucción. Entonces, para realizar la traída desde la memoria, la CPU transfiere la dirección de la palabra de información requerida al registro de dirección en la memoria (MAR: memory address register). Según se muestra en la figura anterior, el MAR está conectado a las líneas de dirección del bus de memoria. Por lo tanto, la dirección de la palabra requerida se transfiere a la memoria principal. Mientras tanto, la CPU utiliza las líneas de control de bus de memoria para indicar que se requiere una operación de Leer. Lo normal es que después de emitir esta solicitud, la CPU espere hasta que reciba una respuesta de la memoria, que le informe que la función solicitada se ha concluido. Esto se logra por medio del uso de otra señal de control del bus de memoria, a la cual se denominará Función de Memoria Completada (MFC). La memoria pone esta señal en 1 para indicar que el contenido de la localización especificada de la memoria se ha leído y está disponible en las líneas de datos del bus de memoria. Se considerará que en cuanto la señal MFC sea igual a 1, la información que está en las líneas de datos está cargada en el MDR y por lo tanto está disponible para su uso dentro de la CPU. Esto completa la operación de traída desde la memoria. Como ejemplo, considérese que la dirección de la localización de la memoria a la que se vaya a efectuar el acceso está en el registro RI y que los datos de la memoria deben cargarse en el registro R2. Esto se logra por medio de la siguiente secuencia de operaciones:

    1. MAR  [R1]
    2. Leer
    3. Esperar la señal MFC
    4. R2  [MDR]

    La duración del paso tres depende de la velocidad de la memoria utilizada. Por lo general, el tiempo necesario para leer una palabra de la memoria es más prolongado que el tiempo requerido para realizar cualquier operación única dentro de la CPU. Por lo tanto, el tiempo general de la ejecución de una instrucción puede disminuir si la secuencia de operaciones está organizada de manera tal que otra función útil se realice dentro de la CPU mientras espera que la memoria responda. Resulta obvio que sólo las funciones que no requieran del empleo del MDR o del MAR podrán realizarse durante este tiempo. Tal situación se presenta durante la fase de traída desde la memoria. Como pronto se verá, el PC puede incrementarse mientras se espera que se complete la operación de Leer. En el análisis anterior se ha presentado un ejemplo de la forma en que la transferencia de datos entre dos dispositivos puede tener lugar, en este caso la CPU y la memoria principal. El mecanismo de transferencia en que un dispositivo inicia la transferencia (solicitud de Leer) y espera hasta que el otro dispositivo responda (señal MFC) se denomina transferencia asíncrona. Puede verse con facilidad que este mecanismo permite transferir datos entre dos dispositivos independientes que tengan velocidades diferentes de operación. Un esquema opcional que se encuentra en algunas computadoras utiliza transferencias síncronas. En este caso, una de las líneas de control del bus transporta los pulsos de un reloj que funciona continuamente con una frecuencia fija. Estos pulsos proporcionan señales de temporización a la CPU y a la memoria principal. En cada ciclo del reloj se completa una operación de la memoria. Además los instantes en que la dirección se coloca en las líneas de dirección y los datos se cargan en el MDR son fijos en relación con los pulsos del reloj. El esquema de bus síncrono lleva a un implante más simple. Sin embargo, no puede aceptar dispositivos de velocidades muy variadas, si no se reduce la velocidad de todos los dispositivos a la del más lento. En el resto del análisis de la operación de la CPU, se considerará que se emplea un bus de memoria asíncrono.

     Almacenamiento de una palabra en la memoria

    El procedimiento para escribir una palabra en una localización dada de la memoria es semejante al empleado para leer de la memoria. La única excepción es que la palabra de datos que se va a escribir se carga en el MDR antes de que se emita el comando Escribir. Si se considera que la palabra de datos que se va a almacenar en la memoria está en R2, y que la dirección de la memoria está en R1, la operación de Escribir requiere la siguiente secuencia:

    1. MAR  [R1]
    2. MDR  [R2]
    3. Escribir
    4. Esperar la señal MFC

    Es interesante observar que los pasos 1 y 2 son independientes. Por lo tanto, pueden llevarse a cabo en cualquier orden. En realidad, pueden efectuarse de manera simultánea, si la arquitectura de la computadora lo permite, esto es, si las dos transferencias no utilizan la misma ruta de datos. Desde luego, esto no sería posible en la organización de bus único de la figura anterior. Obsérvese también que, como en el caso de la operación de Leer, el periodo de espera del paso 4 puede encimarse con otras operaciones, siempre y cuando tales operaciones no utilicen los registros MDR o MAR.

     Transferencias entre registros

    Para permitir la transferencia de datos entre varios bloques conectados al bus común de la figura anterior, debe haber manejo de entrada y salida por compuerta. Esto está representado de manera simbólica en la figura siguiente (2). Las compuertas de entrada y salida del registro Ri están controladas por las señales Rientrada y Risalida, respectivamente. Entonces, cuando el registro Rientrada es igual a 1, los datos disponibles en el bus común se cargan en Ri. De manera semejante, cuando Risalida es igual a l, el contenido del registro Ri se coloca en el bus. Mientras el Risalida es igual a 0, el bus puede utilizarse para transferir datos de otros registros.

    Ahora se examinará la transferencia de datos entre dos registros. Por ejemplo, para transferir el contenido del registro Rl al registro R4, se necesitan las siguientes acciones:

    • Habilitar la compuerta de salida del registro R1 poniendo R1salida en 1 . Esto coloca el contenido de R1 en el bus de la CPU.
    • Habilitar la compuerta de entrada del registro R4 poniendo R4entrada en 1. Esto carga los datos provenientes del bus de la CPU en el registro R4.

    Esta transferencia de datos puede representarse en forma simbólica

    R1salida, R4entrada

     Realización de una operación aritmética o lógica

    Al realizar una operación aritmética o lógica, debe recordarse que la ALU es en sí misma un circuito combinatorio que no tiene almacenamiento interno. Por lo tanto, para realizar una adición, por ejemplo, los dos números que se van a sumar deben estar listos en las dos entradas de la ALU simultáneamente. Se proporciona con este fin el registro Y de la figura anterior (1) que se utiliza para contener uno de los dos números, mientras que el otro es manejado por compuerta hacia el bus. El resultado se almacena en forma temporal en el registro Z. Por lo tanto, la secuencia de operaciones para sumar el contenido del registro R1 con el del registro R2 y almacenar el resultado en el registro R3 debe ser la siguiente:

    PASO

    ACCIÓN

    1

    R1salida ,Yentrada

    2

    R2salida , Add , Zentrada

    3

    Zsalida , R3entrada

    En el paso 2 de esta secuencia el contenido del registro R2 se maneja por compuerta hacia el bus; de allí, a la entrada B de la ALU que está conectada directamente con el bus. El contenido del registro Y siempre está disponible en la entrada A. La función realizada por la ALU depende de las señales aplicadas a las líneas de control de la ALU. En este caso, la línea Suma se iguala a 1, provocando que la salida de la ALU sea la suma de los dos números en A y B. Esta suma se carga en el registro Z ya que su compuerta de entrada está abierta (Zentrada). En el tercer paso, el contenido del registro Z se transfiere al registro destino R3. Es obvio que esta última transferencia no puede realizarse durante el segundo paso, ya que sólo una salida de registro puede conectarse en forma significativa al bus en cualquier momento dado.

    Manejo de registros por compuerta y temporización de transferencias de datos

    Antes de proceder a analizar la ejecución de instrucciones de máquina, es necesario detenerse brevemente para presentar algunos de los detalles necesarios del implante para el manejo de datos por compuerta hacia y desde el bus común de la figura 1. También se presentará una breve panorámica de la temporización requerida para el control de señales que estén involucradas en la transferencia de datos entre registros.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Supóngase que cada bit de los registros de las figuras 1 y 2 consiste en el seguro simple mostrado en la figura 3. Se considera que el elemento de almacenamiento mostrado es uno de los bits del registro Z. Mientras que el control de entrada Zentrada es igual a 1, el estado del seguro cambia para que corresponda con los datos del bus. Siguiendo el cambio de 1 a 0 en la entrada Zentrada, los datos almacenados en el seguro inmediatamente antes de este cambio se aseguran hasta que Zentrada sea de nuevo igual a 1. Entonces, las dos compuertas de entrada del seguro implantan la función de interruptor de control de entrada de la figura 2.

    Figura 2.: Manejo por compuerta de entrada y salida para los registros de la figura 1

    Si se examinan los interruptores de salida de la figura 2 se muestra que, en el caso ideal, deben ser interruptores mecánicos de ENCENDIDO/APAGADO. Cuando un interruptor dado está ENCENDIDO, transfiere el contenido de su registro correspondiente al bus. Cuando se encuentra APAGADO, está desconectado eléctricamente del bus. Esto es, no pone al bus en estado específico alguno, permitiendo así que otro registro coloque datos en el bus. Por lo tanto, la salida de la combinación del registro con el interruptor puede ser en uno de los tres estados: 1,0 ó circuito abierto.

    En los implantes reales, los interruptores mecánicos resultan incompatibles con la tecnología electrónica empleada en computadoras en términos de velocidad de operación y de otras características. En su lugar la compuerta de salida de un registro que transfiere el contenido de ese registro al bus común se diseña para que se comporte de la misma forma que un interruptor mecánico. Esto es, es capaz de estar eléctricamente desconectada del bus.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 3.: Entrada y salida manejadas por compuerta para un bit de registro

    Es capaz de colocar ya sea un cero o un uno en el bus cuando sea necesario. Debido a estas tres posibilidades, se dice que tal compuerta tiene una salida de tres estados. Se utiliza una entrada separada de control, tanto para habilitar la salida por compuerta, como para ponerla en un estado de alta impedancia (desconectada eléctricamente). Este último estado corresponde al de circuito abierto de un interruptor mecánico.

    Debe observarse que ni los circuitos de compuerta lógica TTL, ni los CMOS son adecuados para la conexión directa con un bus. Conectar las salidas de dos de tales circuitos en paralelo provoca un corto circuito, lo que provocaría operación inadecuada o aun daño a las compuertas involucradas.

    Un diseño optativo para el bus común de la figura 2 que no requiere de los interruptores de salida, utilizaría compuertas de colector abierto (para bipolar) o de drenaje abierto (para MOS). La salida de tal compuerta es equivalente a un interruptor a tierra. El interruptor está abierto cuando la salida de compuerta se encuentra en el estado 1 , y cerrado cuando se encuentra en 0. La estructura de un bus de colector abierto está representada simbólicamente en la figura 4. Cuando no está trabajando, el bus se mantiene en uno debido al resistor de "jalón hacia arriba" mostrado. Entonces, siempre y cuando todos los interruptores de salida de compuerta estén abiertos, esto es, todas las salidas estén en el estado 1, el bus también. Si cualquier salida de compuerta cambia a 0, el interruptor correspondiente de salida se cierra y el bus es "empujado hacia abajo" al estado 0. En otras palabras, el bus realiza una función AND en todas las salidas de compuerta conectadas con él. Algunas veces a esto se le conoce como conexión de "AND – cableado". Si se utiliza este arreglo de manejo por compuerta, la compuerta de salida de tres estados de la figura 3 puede reemplazarse por una compuerta de colector abierto NAND, según se muestra. Cuando Zsalida está alto (1), el bit almacenado en el seguro se alimenta al bus. Cuando Zsalida está bajo (0), el bus se deja en el estado 1 ocioso, permitiendo que los datos provenientes de otros registros se transfieran al bus.

    En general, el diseño de tres estados permite transferencias de datos más veloces en comparación con el enfoque de colector abierto de drenaje abierto. Por esta razón su uso en el diseño de buses es mucho más común. La principal característica distintiva de un bus de colector abierto es su capacidad de AND – cableado, por lo tanto el arreglo de colector abierto se utiliza principalmente para líneas de buses en donde se requiera esta capacidad. Por ejemplo, a menudo se emplea en líneas de solicitud de interrupción.

    Ahora se analizarán algunos aspectos de la temporización de transferencias de datos dentro de la CPU.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 4.: estructura de bus de colector abierto

    Por ejemplo, considérese la operación de adición del paso 2 del almacenamiento de una palabra en la memoria. A partir del momento en que la señal R2salida es igual a 1, hay un retraso temporal para que la compuerta se abra y para que después los datos viajen a través del bus hasta la entrada de la ALU. Los circuitos sumadores de la ALU provocan un retraso más. Para que el resultado se almacene en la forma adecuada en el registro Z, los datos deben mantenerse en el bus durante un periodo adicional igual al tiempo de preparación y de espera de este registro. Esta situación se muestra en el diagrama de temporización de la figura 5. La suma de los cinco tiempos de retraso define la duración mínima de la señal R2salida

    Organización de bus múltiple

    La organización de bus único de la figura 1 representa sólo una de las posibilidades para interconectar distintos bloques de la CPU. Un arreglo alternativo es la estructura de dos buses mostrada en la figura 6. Todas las salidas de los registros están conectadas al bus A y todas las entradas de los registros están conectadas al bus B. Los dos buses están conectados a través del enlace de buses G, el cual, al habilitarse, transfiere los datos contenidos en el bus A al bus B. Cuando se deshabilita G, los dos buses están eléctricamente aislados. Obsérvese que el registro de almacenamiento temporal Z de la figura 1 no es necesario en esta organización debido a que, con el enlace de bus inhabilitado, la salida de la ALU puede transferirse en forma directa al registro destino. Por ejemplo, la operación de adición analizada antes (R3  [R1] + [R2]) ahora puede efectuarse de la siguiente forma:

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 5.: Temporización de las señales de control durante el paso de Suma

    Es importante observar que si los registros son seguros simples como el de la figura 4.3, el registro destino de la secuencia anterior debe ser diferente de R2, debido a que las dos operaciones R2entrada y R2salida no pueden realizarse al mismo tiempo. Esto se debe a que la ALU es una red combinatoria. Por lo tanto, carece de almacenamiento interno. Sin embargo, aún así es posible realizar la operación R2  [R1] + [R2], intercambiando R1salida y R2salida y reemplazando R3entrada por R2entrada en el paso 2. La restricción de que R2salida y R2entrada no puedan realizarse en el mismo paso puede atemperarse con el empleo de flip-flops disparados por flanco. Si hay uso de flip flops disparados por flanco, la temporización de una transferencia de registros que involucre a R2 permanece esencialmente igual que la de la figura 5, con Zentrada reemplazado por R2entrada. En este caso R2entrada representa la entrada de reloj al registro, la cual se considera como disparada por flanco negativa. La salida de R2 permanece sin cambio hasta t2, momento en el que los datos disponibles en el bus de entrada se cargan en R2.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 6.: Estructura de dos buses

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 7.: Estructura de tres buses

     Considérese un ejemplo más de organización de la CPU. En la figura 7 se muestra una arquitectura de tres buses, con cada bus conectado sólo a una salida y a varias entradas. Al eliminar la necesidad de conectar más de una salida al mismo bus se logran transferencias más rápidas de bus en forma simple. Se proporciona un multiplexor en la entrada de cada uno de los dos registros de trabajo A y 13, lo cual permite que se carguen ya sea del bus de datos de entrada o del bus de datos de registro.

    Los registros de aplicación general de la CPU de la figura 7 se muestran como un solo bloque. Se considera que están implantados utilizando una unidad de memoria de acceso aleatorio (RAM: Random-access memory). Debe enfatizarse que en este contexto el término RAM simplemente se refiere al tipo de hardware utilizado para implantar los registros y no debe confundirse con la RAM que constituye la memoria principal de la computadora. Esta última está conectada al bus externo.

     EJECUCIÓN DE UNA INSTRUCCIÓN COMPLETA

    Ahora se intentará conjuntar la secuencia de operaciones elementales necesarias para ejecutar una instrucción. Considérese la instrucción "Sumar el contenido de la localización NUM de la memoria al registro R1". Para simplificar las cosas, la dirección NUM se da en forma explícita en el campo de dirección de la instrucción. Entonces, la localización NUM se especifica en el modo directo de memoria. La ejecución de esta instrucción requiere de las siguientes acciones.

    1. Traer la instrucción
    2. Traer el primer operando (el contenido de la localización de la memoria a la que señala el campo de dirección de la instrucción).
    3. Realizar la adición
    4. Cargar el resultado en RI.

    PASO

    ACCION

    1

    PCsalida, MARentrada, Leer, Borrar Y, Fijar el acarreo de la ALU, Suma, Zentrada

    2

    Zsalida, PCentrada, Espera a MFC

    3

    MDRsalida, IRsalida

    4

    Campo de dirección de IRsalida, MARentrada, Leer

    5

    R1salida, Yentrada, Espera a MFC

    6

    MDRsalida, Suma, Zentrada

    7

    Zsalida, R1entrada

    8

    Fin

    Figura 8.: Secuencia de control para la ejecución de la instrucción "Sumar el contenido de la localización direccionada de la memoria en el modo directo de la memoria al registro R1".

    En la figura 8 se da la secuencia de pasos de control necesarios para implantar las operaciones anteriores en la estructura de bus único de la figura 1. Entonces, la ejecución de instrucción sucede de la siguiente forma. En el paso 1 la operación de traída de la instrucción se inicia cargando el contenido del PC en el MAR y enviando una solicitud de Leer a la memoria. A1 mismo tiempo se incrementa el PC en 1 a través del uso de la ALU. Esto se logra poniendo una de las entradas a la ALU (registro Y) en 0 y la otra entrada (bus de la CPU) en el valor presente que contenga el PC. Al mismo tiempo el acarreo a la ALU se iguala a 1 y se especifica una operación de Sumar.

    El valor actualizado se regresa del registro Z al PC durante el paso dos. Obsérvese que el paso dos se inicia inmediatamente después de emitir la solicitud de Leer de a memoria, sin necesidad de esperar la conclusión de la función de la memoria. Sin embargo, el paso 3 tiene que retardarse hasta que se reciba el MFC. En el paso 3, a palabra traída de la memoria se carga en el IR (registro de instrucción: instruction register). Los pasos del 1 al 3 constituyen la fase de traída de instrucción de la secuencia de control. Desde luego, esta parte es la misma para todas las instrucciones.

    En cuanto el IR está cargado, el circuito de decodificación de instrucción interpreta su contenido. Esto permite a la circuitería de control elegir las señales adecuadas para la parte restante de la secuencia de control, pasos 4 a 8, a los que se considera como la fase de ejecución. En el paso 4, el campo de dirección del IR que contiene la dirección NUM, es manejado por compuerta y se lleva al MAR y se inicia una operación de Leer de la memoria. Después el contenido de la memoria R1 se transfiere al registro Y. Cuando se completa la operación de Leer, el operando de la memoria está disponible en el registro MDR. La operación de adición se realiza en el paso 6 y el resultado se transfiere a R1 en el paso 7. La señal de Fin, paso 8, indica la conclusión de la ejecución de la presente instrucción y provoca que se inicie un nuevo ciclo de traída regresando de nuevo al paso 1.

    Ramificación

    Las ramificaciones se logran reemplazando el contenido actual del PC por la dirección de ramificación, esto es, la dirección de la instrucción a la cual se refiere una ramificación. Por lo común, la dirección de ramificación se obtiene sumando al valor actual del PC, un valor X de compensación, el cual está dado en el campo de dirección de la instrucción de ramificación. En la figura 9 se proporciona una secuencia de control que permite la ramificación de control incondicional utilizando la organización de bus único de la figura 1. Como de costumbre, la ejecución se empieza con la fase de traída y termina cuando la instrucción se carga en el IR en el paso 3. Para ejecutar la instrucción de ramificación, el contenido del PC se transfiere al registro Y en el paso 4. Después el valor de compensación X se envía por compuerta al bus y se realiza la operación de adición. El resultado, que representa la dirección de ramificación, se carga en el PC en el paso 6.

    PASO

    ACCION

    1

    PCsalida, MARentrada, Leer, Borrar Y, Fijar el acarreo de la ALU, Suma, Zentrada

    2

    Zsalida, PCentrada, Espera a MFC

    3

    MDRsalida, IRsalida

    4

    PCsalida, Yentrada

    5

    Campo de dirección de IRsalida, Suma, Zentrada

    6

    Zsalida, PCentrada

    7

    Fin

    Figura 9.: Secuencia de control para la ejecución de una instrucción de ramificación incondicional.

    Es importante observar que en este ejemplo el PC se incrementa durante la fase de traída, sin importar el tipo de instrucción que se esté ejecutando. Así, en el momento en que el valor de compensación X se suma al contenido del PC, pasos 4 y 5 de la figura 9, este contenido ya se ha actualizado para que apunte a la instrucción que sigue en el programa a la instrucción de Ramificación. Por lo tanto, el valor de compensación X debería ser la diferencia entre la dirección de ramificación y la dirección que sigue de inmediato a la instrucción de Ramificación. Por ejemplo, si la instrucción de Ramificación está en la localización 1000 y se requiere ramificar a la localización 1050, el valor de X debería ser de 49.

    Considérese ahora 1 caso de una ramificación condicional, en vez de una ramificación incondicional. La única diferencia entre este caso y el de la figura 9 es el de la necesidad de verificar el estado de los códigos de condición entre los pasos 3 y 4.Por ejemplo, si la circuitería de decodificación de instrucción interpreta el contenido del IR como una instrucción de Ramificación en caso negativo (BRN: Branch on Negative), la unidad de control opera de la siguiente forma: primero, se verifica el registro de código de condición. Si el bit N (negativo) es igual a 1, la unidad de control procede a los pasos del 4 al 7 como en la figura 9. Por otra parte, si N es igual a 0 se emite una señal de Fin. En realidad, esto concluye la ejecución de la instrucción de Ramificación y provoca que la instrucción inmediata del programa se traiga, cuando se realice una nueva operación de traer. Por lo tanto, la secuencia de control para la secuencia de Ramificación condicional BRN puede obtenerse a partir de la figura 4.9 reemplazando el paso 4 por:

    4

    If then End

     

    If N then PCsalida, Yentrada

    SECUENCIAMIENTO DE SEÑALES DE CONTROL

    Para ejecutar instrucciones, la CPU debe disponer de algún medio para generar en la secuencia adecuada las señales de control analizadas antes. Los diseñadores de computadoras han utilizado una amplia variedad de técnicas para resolver este problema. Sin embargo, la mayoría de estas técnicas caen en una de las dos categorías:

    1. Control fijo
    2. Control microprogramado

    En esta sección se analiza el control fijo (cableado permanente), seguido por una breve introducción al control microprogramado. Este último se analizará en detalle en el capítulo cinco.

    Controladores fijos

    Considérese la secuencia de señales de control dada en la figura 8. Resulta obvio que se requieren ocho lapsos que no se encimen para la ejecución adecuada de la instrucción representada por esta secuencia. Cada lapso debe tener una duración suficiente al menos para que sucedan las funciones especificadas en el paso correspondiente. Por el momento, considérese que todos los lapsos son de igual duración. Por lo tanto, es posible implantar el control necesario con el empleo de un contador manejado por un reloj, según se muestra en la figura 10. Cada estado o cuenta de este contador corresponde a uno de los pasos de las figuras 8 y 9. Por lo tanto, las señales de control necesarias están determinadas en forma única por la siguiente información:

    1. Contenido del contador de control
    2. Contenido del registro de instrucción
    3. Contenido del código de condición y de otras banderas de condición

    El término banderas de condición indica aquellas señales que representan el estado de las diferentes secciones de la CPU y de las distintas líneas de control conectadas con ella, tales como la señal de condición del MFC de la figura 8.

    A fin de lograr cierto conocimiento de la estructura interna de la unidad de control se empezará dando una visión simplificada del hardware relacionado con ella.

    El bloque decodificador-codificador de la figura 10 es simplemente un circuito combinatorio que genera las salidas de control necesarias, dependiendo del estado de todas sus entradas. Al separar las funciones de decodificación y codificación se obtiene el diagrama de bloque más detallado de la figura 11. El paso decodificador proporciona una línea separada de señal para cada paso, o lapso, en la secuencia de control. De manera semejante, la salida del decodificador de instrucción consiste en una línea separada para cada instrucción de máquina. Esto es, para cada instrucción cargada en el IR, una de las líneas de salida de la INSl a INSm, se iguala a 1 y todas las otras líneas a 0.

    Todas las señales de entrada al bloque de codificación de la figura 11 deben combinarse para que generen las señales individuales de control Yentrada, PCsalida, Suma, Fin, etc. La estructura del codificador está ejemplificada por el circuito dado en la figura 12. Este circuito es un implante de la función lógica

    Zentrada = T1 + T2  ADD + T5  BR + …

    Esto es, la señal de control Zentrada, que habilita la entrada al registro Z, se enciende, ON, durante el lapso T1 sin importar la instrucción, durante T6 para una instrucción ADD, y así sucesivamente. Esta parte de la función Zentrada ha sido compilada a partir de las secuencias de control de las figuras 8 y 9. El término T, es común a todas las instrucciones ya que ocurre durante la fase de traída. De manera semejante, la señal de control Fin, figura 13, se genera a partir de la función lógica

    Fin = T8  ADD + T7  BR + (T7  N + T4  )  BRN + …

    En la figura 11 se muestra la forma en que es posible utilizar la señal Fin para iniciar un nuevo ciclo de traída de instrucción, poniendo el contador de paso de control en su valor inicial.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 10.: Organización de la unidad de control

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 11.: Separación de las funciones de decodificación y codificación

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 12.: Generación de la señal de control Zentrada

     Las señales MFC y WMFC (Wait for, MFC: espera a MFC) requieren de algunas consideraciones especiales. La señal misma WMFC puede generarse de la misma forma que las otras señales de control, utilizando la ecuación lógica.

    WMFC = T2 + T5  ADD + …

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 13.: Generación de la señal de control Fin

    El efecto que se desea con esta señal es retrasar el inicio del siguiente paso de control hasta que no se reciba la señal MFC de la memoria principal. Esto puede lograrse inhibiendo el avance del contador de paso de control durante el periodo requerido. Considérese que el contador de paso de control está regido por una señal llamada RUN. (Corrida)

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 14.: Control de la temporización de la CPU

     El contador avanza un paso en cada pulso de reloj sólo si la señal RUN es igual a 1 . El circuito de la figura 14a logrará el control deseado. En cuanto la señal WMFC se genera, RUN se vuelve igual a 0. Entonces, el conteo se inhibe y ningún cambio de señal tiene lugar. La CPU permanece en este estado de espera hasta que la señal MFC se activa y el contador de paso de control se habilita de nuevo. E1 siguiente pulso de reloj incrementa el contador, lo cual da como resultado que la señal WMFC se iguale de nuevo a cero.

    El circuito simple de la figura 14a origina un importante problema. La señal MFC es generada por la memoria principal, cuya operación es independiente del reloj de la CPU. Por lo tanto, MFC es una señal asíncrona que puede llegar en cualquier momento a ese reloj. Sin embargo, el funcionamiento adecuado de la circuitería de la CPU, incluyendo el contador de paso de control, requiere que todas las señales de control tengan tiempos de preparación y de espera con relación al reloj, según se ilustró en la figura 5. Por lo tanto, la señal MFC debe estar sincronizada con el reloj de la CPU antes de ser utilizada para producir la señal RUN. Para este fin puede utilizarse un flip-flop, según se muestra en la figura 14b. La salida de este flip-flop que se considera como disparada por flanco negativo, cambia en el extremo descendente de CLK. Esto deja suficiente tiempo para que la señal RUN se ponga antes del siguiente flanco ascendente del CLK el cual avanza al contador. Un diagrama de temporización para una operación de traída de instrucción se da en la figura 15. En esta figura, se ha considerado que la memoria principal tendrá alta la señal MFC hasta que descienda la señal de Leer, indicando que la CPU ha recibido los datos.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 15.: Temporización de las señales de control durante la traída de instrucciones

    El análisis anterior ha presentado una visión simplificada de la forma en la cual puede generarse la secuencia de señales de control necesaria para traer y ejecutar instrucciones. La organización general representada en las figuras 10 y 11, junto con los diagramas de circuito de las figuras de la 12 a la 14, representa un enfoque que permite la implantación de un conjunto arbitrario de instrucciones. Ahora se considerarán algunos aspectos prácticos de la realización de tal circuitería.

    Por necesidad, el enfoque empleado en un sistema digital debe tener en cuenta las capacidades y limitaciones de la tecnología del implante elegido. Los circuitos de las figuras 12 y 13 son fáciles de comprender y de diseñar. Sin embargo, es fácil apreciar que el número de compuertas lógicas necesarias para ello y la complejidad del cableado hacen que este enfoque directo resulte poco práctico. El implante de las computadoras modernas se basa en el empleo de la tecnología VLSI. En VLSI, estructuras que abarcan patrones regulares de interconexión resultan mucho más fáciles de implantar que las conexiones aleatorias empleadas en los circuitos anteriores. Tales estructuras son arreglos lógicos programables (PLA: Programable logic array). Según se describe en el apéndice A, un PLA consiste en un arreglo de compuertas AND seguido por un arreglo de compuertas OR. Puede utilizarse para implantar funciones lógicas combinatorias de varias variables. Todo el bloque de codificador – decodificador de la figura 10 puede implantarse bajo la forma de un solo PLA. Entonces, la sección de control de una CPU, o para este caso, de cualquier sistema digital puede organizarse según se muestra en la figura 16.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 16.: Implante de un controlador de secuencia en un chip VLSI

    Antes de concluir el análisis de los controladores fijos, resulta conveniente hacer unos cuantos comentarios. Hasta ahora se ha supuesto que todos los pasos de control suceden en lapsos iguales. Esto lleva a implantar un contador de condición manejado por un reloj. Resulta fácil apreciar que este enfoque no es muy eficiente en lo referente al uso de la CPU, ya que no todas las operaciones requieren del mismo tiempo. Por ejemplo, por lo general una transferencia simple de registro es mucho más rápida que una operación que incluya adición o sustracción. Es posible, al menos en teoría, construir una unidad de control asíncrona por completo. En este caso, el reloj estaría reemplazado por un circuito que haría avanzar el contador de paso en cuanto se concluya cada paso. En tal enfoque el problema principal es la incorporación de algunos medios confiables de detectar la conclusión de varias operaciones. Según resulta el retraso de propagación en muchos casos es una función, no sólo de las compuertas utilizadas, sino también de los datos específicos que se estén procesando.

    Sin embargo, es posible efectuar algunos arreglos. Por ejemplo, puede establecerse una retraso máximo para cada operación y las señales de temporización pueden generarse con esa base. También es posible utilizar relojes separados para subsecciones individuales de un circuito. La comunicación entre varias subsecciones puede entonces realizarse en forma asíncrona, de una manera muy parecida a la de las transferencias de datos entre la CPU y la memoria principal.

     Control microprogramado

    Todas las señales de control requeridas dentro de la CPU pueden generarse utilizando un contador de estado y un circuito PLA. Se analizará un enfoque alternativo que se utiliza mucho en el diseño de computadoras. Primero se presentarán algunos términos utilizados con frecuencia.

    Se empezará por definir palabra de control (CW: control word) como una palabra cuyos bits individuales representan las diferentes señales de control de la figura 11. Por lo tanto, cada uno de los pasos de control de la secuencia de control de una instrucción define una combinación única de unos y ceros en la CW. Por ejemplo, las CW correspondientes a los pasos 5, 6 y 7 de la figura 8 son como se muestran en la figura 17. Una secuencia de CW correspondientes a la secuencia de control de una instrucción de máquina constituye el microprograma para esa instrucción. Las palabras individuales de control en este microprograma por lo general se denominan microinstrucciones.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 17.: Ejemplo de microinstrucciones para la Figura 8

    Considérese que los microprogramas correspondientes al conjunto de instrucciones de una computadora están almacenados en una memoria especial a la que se denomina la memoria de microprograma. La unidad de control puede generar las señales de control para cualquier instrucción, leyendo en forma secuencial las CW del microprograma correspondiente en la memoria de microprograma. Esto sugiere organizar la unidad de control según se muestra en la figura 18. Para leer en forma secuencial las palabras de control a partir de la memoria de microprograma se emplea un contador de microprograma ( PC). El bloque etiquetado "generación de dirección inicial" es responsable de la carga de la dirección inicial del microprograma en el  PC cada vez que se carga una nueva instrucción en el IR. Después, el  PC es incrementado en forma automática por el reloj, provocando que se lean microinstrucciones sucesivas de la memoria. Por lo tanto, las señales de control serán entregadas a las diferentes partes de la CPU en la secuencia correcta.

    Hasta el momento no se ha analizado una importante función de la unidad de control y, en realidad, no se la puede implantar por medio de la organización simple de la figura 18. Esta es la situación que surge cuando se requiere que la unidad de control verifique el estado de los códigos de condición o banderas de condición, a fin de elegir entre cursos alternativos de acción. Se ha visto que en el caso de control fijo, esta situación se maneja incluyendo una función lógica adecuada, como en la ecuación "Fin = T8  ADD + T7  BR + (T7  N + T4  )  BRN + …", en la circuitería de codificación. Otro enfoque diferente que se utiliza con frecuencia con el control microprogramado se basa en la introducción del concepto de ramificación condicional en el microprograma. Esto puede lograrse ampliando el conjunto de microinstrucciones a fin de incluir algunas de ramificación condicional. Además de la dirección de ramificación, estas microinstrucciones pueden especificar cuál de las banderas de instrucción, códigos de condición o tal vez bits del registro de instrucción deben verificarse como condición para que tenga lugar la ramificación.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 18.: Organización básica de una unidad de control microprogramado

    Ahora es posible implantar la instrucción de Ramificación en Negativo por medio de un microprograma como el que se muestra en la figura 19. Se considera que el microprograma para esta instrucción empieza en la localización 25. Por lo tanto, una microinstrucción de Ramificación, al final de la parte de traída de instrucción del microprograma, transfiere el control a la localización 25. Debe observarse que la dirección de ramificación de esta instrucción de Ramificación es en realidad la salida del bloque de "generación de dirección inicial". En la localización 25, una microinstrucción de ramificación condicional prueba el bit N de los códigos de condición y provoca una ramificación a Fin, si este bit es igual a 0.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 19.: Microprograma para la instrucción Ramificar en Negativo

    Para apoyar la ramificación de microprogramas, la organización de la unidad de control debe modificarse según se muestra en la figura 20.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Figura 20.: Organización de la unidad de control para permitir ramificación condicional en el programa

    Los bits de la palabra de microinstrucción que especifican las condiciones y dirección de ramificación se alimentan al bloque "generador de dirección inicial y ramificación". Este bloque realiza la función de cargar una nueva dirección en el PC cuando así se le indica, por medio de una microinstrucción. Para habilitar el implante de una ramificación condicional, las entradas a este bloque consisten en banderas de condición y códigos, tanto de condición, como del contenido del registro de instrucción. Por lo tanto, el ~ PC siempre se incrementa cada vez que se trae una nueva microinstrucción a partir de la memoria de microprograma, excepto en las siguientes situaciones:

    1. Cuando se encuentra una microinstrucción a Fin, el UPC se carga con la dirección de la primera CW del microprograma para el ciclo de traída de instrucción (dirección = 0 en la figura 19).
    2. Cuando se carga una nueva instrucción en el IR, el  PC se carga con la dirección inicial del microprograma para esa instrucción.
    3. Cuando se encuentra una microinstrucción de Ramificación, y la condición de ramificación se satisface, el  PC se carga con la dirección de ramificación.

    Organizaciones semejantes a la de la figura 20 se han implantado en muchas máquinas. Sin embargo, también se han desarrollado algunos enfoques alternativos que se han implantado en la práctica.

    En conclusión, deben observarse algunos puntos importantes en lo referente a las máquinas microprogramadas, los cuales son:

    1. Los microprogamas definen el conjunto de instrucciones de la computadora. Por lo tanto, es posible modificar el conjunto de instrucciones con cambiar el contenido de la memoria de microprograma. Esto ofrece considerable flexibilidad tanto al diseñador como al usuario de la computadora.
    2. Ya que el contenido de la memoria de microprograma se cambia con muy poca frecuencia, si es que se llega a hacer, por lo general se llega a utilizar en una memoria de tipo sólo de lectura (ROM: Read Only Memory,).
    3. La ejecución de cualquier instrucción de máquina involucra varias traídas de la memoria de microprograma. Por lo tanto, la velocidad de esta memoria desempeña un papel importante para determinar la velocidad general de la computadora.

    Historia del Microprocesador

    Han pasado más de 25 años desde que Intel diseñara el primer microprocesador, siendo la compañía pionera en el campo de la fabricación de estos productos, y que actualmente cuenta con más del 90 por ciento del mercado. Un tiempo en el que todo ha cambiado enormemente, y en el que desde aquel 4004 hasta el actual Pentium II hemos visto pasar varias generaciones de máquinas que nos han entretenido y nos han ayudado en el trabajo diario.

    Dicen que es natural en el ser humano querer mirar constantemente hacia el futuro, buscando información de hacia dónde vamos, en lugar de en dónde hemos estado. Por ello, no podemos menos que asombrarnos de las previsiones que los científicos barajan para dentro de unos quince años. Según el Dr. Albert Yu, vicepresidente de Intel y responsable del desarrollo de los procesadores desde el año 1984, para el año 2011 utilizaremos procesadores cuyo reloj irá a una velocidad de 10 GHz (10.000 MHz), contendrán mil millones de transistores y será capaz de procesar cerca de 100 mil millones de instrucciones por segundo. Un futuro prometedor, que permitirá realizar tareas nunca antes pensadas.

    INTEL 

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Los inicios

    Sin embargo, para que esto llegue, la historia de los procesadores ha pasado por diferentes situaciones, siguiendo la lógica evolución de este mundo. Desde aquel primer procesador 4004 del año 1971 hasta el actual Pentium II del presente año ha llovido mucho en el campo de los procesadores. Tanto, que no estamos seguros si las cifras que se barajan en Intel se pueden, incluso, quedar cortas. Aquel primer procesador 4004, presentado en el mercado el día 15 de noviembre de 1971, poseía unas características únicas para su tiempo. Para empezar, la velocidad de reloj sobrepasaba por poco los 100 KHz (sí, habéis leído bien, kilohertzios), disponía de un ancho de bus de 4 bits y podía manejar un máximo de 640 bytes de memoria. Realmente una auténtica joya que para entonces podía realizar gran cantidad de tareas, pero que por desgracia no tiene punto de comparación con los actuales micros. Entre sus aplicaciones, podemos destacar su presencia en la calculadora Busicom, así como dotar de los primeros tintes de inteligencia a objetos inanimados.

    Poco tiempo después, sin embargo, el 1 de abril de 1972, Intel anunciaba una versión mejorada de su procesador. Se trataba del 8008, que contaba como principal novedad con un bus de 8 bits, y la memoria direccionable se ampliaba a los 16 Kb. Además, llegaba a la cifra de los 3500 transistores, casi el doble que su predecesor, y se le puede considerar como el antecedente del procesador que serviría de corazón al primer ordenador personal. Justo dos años después, Intel anunciaba ese tan esperado primer ordenador personal, de nombre Altair, cuyo nombre proviene de un destino de la nave Enterprise en uno de los capítulos de la popular serie de televisión Star Trek la semana en la que se creó el ordenador. Este ordenador tenía un coste de entorno a los 400 dólares de la época, y el procesador suponía multiplicar por 10 el rendimiento del anterior, gracias a sus 2 MHz de velocidad (por primera vez se utiliza esta medida), con una memoria de 64 Kb. En unos meses, logró vender decenas de miles de unidades, en lo que suponía la aparición del primer ordenador que la gente podía comprar, y no ya simplemente utilizar.

     La introducción de IBM

    Sin embargo, como todos sabemos, el ordenador personal no pasó a ser tal hasta la aparición de IBM, el gigante azul, en el mercado. Algo que sucedió en dos ocasiones en los meses de junio de 1978 y de 1979. Fechas en las que respectivamente, hacían su aparición los microprocesadores 8086 y 8088, que pasaron a formar el denominado IBM PC, que vendió millones de unidades de ordenadores de sobremesa a lo largo y ancho del mundo. El éxito fue tal, que Intel fue nombrada por la revista "Fortune" como uno de los mejores negocios de los años setenta. De los dos procesadores, el más potente era el 8086, con un bus de 16 bits (por fin), velocidades de reloj de 5, 8 y 10 MHz, 29000 transistores usando la tecnología de 3 micras y hasta un máximo de 1 Mega de memoria direccionable. El rendimiento se había vuelto a multiplicar por 10 con respecto a su antecesor, lo que suponía un auténtico avance en lo que al mundo de la informática se refiere. En cuanto al procesador 8088, era exactamente igual a éste, salvo la diferencia de que poseía un bus de 8 bits en lugar de uno de 16, siendo más barato y obteniendo mejor respaldo en el mercado.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    En el año 1982, concretamente el 1 de febrero, Intel daba un nuevo vuelco a la industria con la aparición de los primeros 80286. Como principal novedad, cabe destacar el hecho de que por fin se podía utilizar la denominada memoria virtual, que en el caso del 286 podía llegar hasta 1 Giga. También hay que contar con el hecho de que el tiempo pasado había permitido a los ingenieros de Intel investigar más a fondo en este campo, movidos sin duda por el gran éxito de ventas de los anteriores micros. Ello se tradujo en un bus de 16 bits, 134000 transistores usando una tecnología de 1.5 micras, un máximo de memoria direccionable de 16 Megas y unas velocidades de reloj de 8, 10 y 12 MHz. En términos de rendimiento, podíamos decir que se había multiplicado entre tres y seis veces la capacidad del 8086, y suponía el primer ordenador que no fabricaba IBM en exclusiva, sino que otras muchas compañías, alentadas por los éxitos del pasado, se decidieron a crear sus propias máquinas. Como dato curioso, baste mencionar el hecho de que en torno a los seis años que se le concede de vida útil, hay una estimación que apunta a que se colocaron en torno a los 15 millones de ordenadores en todo el mundo.

     Microsoft también juega

    El año de 1985 es clave en la historia de los procesadores. El 17 de octubre Intel anunciaba la aparición del procesador 80386DX, el primero en poseer una arquitectura de 32 bits, lo que suponía una velocidad a la hora de procesar las instrucciones realmente importante con respecto a su antecesor. Dicho procesador contenía en su interior en torno a los 275000 transistores, más de 100 veces los que tenía el primer 4004 después de tan sólo 14 años. El reloj llegaba ya hasta un máximo de 33 MHz, y era capaz de direccionar 4 Gigas de memoria, tamaño que todavía no se ha superado por otro procesador de Intel dedicado al mercado doméstico. En 1988, Intel desarrollaba un poco tarde un sistema sencillo de actualizar los antiguos 286 gracias a la aparición del 80386SX, que sacrificaba el bus de datos para dejarlo en uno de 16 bits, pero a menor coste. Estos procesadores irrumpieron con la explosión del entorno gráfico Windows, desarrollado por Microsoft unos años antes, pero que no había tenido la suficiente aceptación por parte de los usuarios. También había habido algunos entornos que no habían funcionado mal del todo, como por ejemplo el Gem 3, pero no es hasta este momento cuando este tipo de entornos de trabajo se popularizan, facilitando la tarea de enfrentarse a un ordenador, que por aquel entonces sólo conocíamos unos pocos. Windows vino a ser un soplo de aire fresco para la industria, pues permitió que personas de cualquier condición pudiera manejar un ordenador con unos requerimientos mínimos de informática.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Y si esto parecía la revolución, no tuvimos que esperar mucho para que el 10 de abril de 1989 apareciera el Intel 80486DX, de nuevo con tecnología de 32 bits y como novedades principales, la incorporación del caché de nivel 1 (L1) en el propio chip, lo que aceleraba enormemente la transferencia de datos de este caché al procesador, así como la aparición del co-procesador matemático, también integrado en el procesador, dejando por tanto de ser una opción como lo era en los anteriores 80386. Dos cambios que unido al hecho de que por primera vez se sobrepasaban el millón de transistores usando la tecnología de una micra (aunque en la versión de este procesador que iba a 50 MHz se usó ya la tecnología .8 micras), hacía posible la aparición de programas de calidad sorprendente, entre los que los juegos ocupan un lugar destacado. Se había pasado de unos ordenadores en los que prácticamente cualquier tarea compleja requería del intérprete de comandos de MS-DOS para poder ser realizada, a otros en los que con mover el cursor y pinchar en la opción deseada simplificaba en buena medida las tareas más comunes. Por su parte, Intel volvió a realizar, por última vez hasta el momento, una versión de este procesador dos años después. Se trataba del 80486SX, idéntico a su hermano mayor salvo que no disponía del famoso co-procesador matemático incorporado, lo que suponía una reducción del coste para aquellas personas que desearan introducirse en el segmento sin necesidad de pagar una suma elevada.

     Llega el Pentium

    Sin embargo, Intel no se quedó contemplando la gran obra que había creado, y rápidamente anunció que en breve estaría en la calle una nueva gama de procesadores que multiplicaría de forma general por cinco los rendimientos medios de los 80486. Se trataba de los Pentium, conocidos por P5 en el mundillo de la informática mientras se estaban desarrollando, y de los que la prensa de medio mundo auguraba un gran futuro, tal y como así ha sido. Estos procesadores pasarán a la historia por ser los primeros a los que Intel no los bautizó con un número, y sí con una palabra. Esto era debido a que otras compañías dedicadas a la producción de procesadores estaban utilizando los mismos nombres puesto que no se podía registrar una cadena de ellos como marca, y por lo tanto, eran de dominio público. De modo que a Intel no le quedó más remedio que ponerle una palabra a su familia de procesadores, que además, con el paso del tiempo, se popularizó en los Estados Unidos de tal forma, que era identificada con velocidad y potencia en numerosos cómics y programas de televisión. Estos procesadores que partían de una velocidad inicial de 60 MHz, han llegado hasta los 200 MHz, algo que nadie había sido capaz de augurar unos años antes.

     Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Con una arquitectura real de 32 bits, se usaba de nuevo la tecnología de .8 micras, con lo que se lograba realizar más unidades en menos espacio (ver recuadro explicativo). Los resultados no se hicieron esperar, y las compañías empezaron aunque de forma tímida a lanzar programas y juegos exclusivamente para el Pentium, hasta el punto que en este momento quien no posea un procesador de este tipo, está seriamente atrasado y no puede trabajar con garantías con los programas que actualmente hay en el mercado. Algo que ha venido a demostrar la aparición del nuevo sistema operativo de Microsoft Windows 95, que aunque funciona en equipos dotados de un procesador 486, lo hace sin sacar el máximo partido de sus funciones.

     Pentium Pro y Pentium II

    La aparición, el 27 de marzo de 1995, del procesador Pentium Pro supuso para los servidores de red y las estaciones de trabajo un aire nuevo, tal y como ocurriera con el Pentium en el ámbito doméstico. La potencia de este nuevo procesador no tenía comparación hasta entonces, gracias a la arquitectura de 64 bits y el empleo de una tecnología revolucionaria como es la de .32 micras, lo que permitía la inclusión de cinco millones y medio de transistores en su interior. El procesador contaba con un segundo chip en el mismo encapsulado, que se encargaba de mejorar la velocidad de la memoria caché, lo que resultaba en un incremento del rendimiento sustancioso. Las frecuencias de reloj se mantenían como límite por arriba en 200 MHz, partiendo de un mínimo de 150 MHz.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Un procesador que en principio no tiene muchos visos de saltar al mercado doméstico, puesto que los procesadores Pentium MMX parecen cubrir de momento todas las necesidades en este campo. No podemos asegurar que en un futuro cercano esto no acabe ocurriendo, pues en el mundo de la informática han sucedido las cosas más extrañas, y nunca se sabe por dónde puede tirar un mercado en constante evolución.

    Una evolución que demostró Intel hace muy poco con un nuevo procesador, denominado Pentium II, que viene a ser simplemente un nuevo ingenio que suma las tecnologías del Pentium Pro con el MMX. Como resultado, el Pentium II es el procesador más rápido de cuantos ha comercializado Intel. Por el momento únicamente se dispone de las versiones a 233 y 266 MHz, pero después de este verano podremos disfrutar de la versión de 300 MHz, que supondrá un nuevo récord de velocidad de reloj. El Pentium II, cuyas características fueron tratadas con detalle en el artículo de portada del pasado mes de la revista, es hoy (por poco tiempo) el extremo de la cadena evolutiva de Intel.

     El futuro de los microprocesadores

    La evolución que están sufriendo los procesadores es algo que no parece escapar a la atención de millones de personas, cuyo trabajo depende de hasta dónde sean capaces de llegar los ingenieros de Intel a la hora de desarrollar nuevos chips. El último paso conocido ha sido la implementación de la nueva arquitectura de 0.25 micras, que viene a sustituir de forma rotunda la empleada hasta el momento, de 0.35 micras en los últimos modelos de procesador. Esto va a significar varias cosas en un futuro no muy lejano. Para empezar, la velocidad se incrementará una media del 33 por ciento con respecto a la generación de anterior. Es decir, el mismo procesador usando esta nueva tecnología puede ir un 33 por ciento más rápido que el anterior. Para que os podáis hacer una idea del tamaño de esta tecnología, deciros que el valor de 0.25 micras es unas 400 veces más pequeño que un pelo de cualquier persona. Y este tamaño es el que tienen los transistores que componen el procesador. El transistor, como muchos sabréis, permite el paso de la corriente eléctrica, de modo que en función de en qué transistores haya corriente, el ordenador realiza las cosas (esto es una simplificación de la realidad, pero se ajusta a ella más o menos). Dicha corriente eléctrica circula entre dos puntos, de modo que cuanto menor sea esta distancia, más cantidad de veces podrá pasar pues el tiempo de paso es menor. Aunque estamos hablando de millonésimas de segundo, tened en cuenta que un procesador está trabajando continuamente, de modo que ese tiempo que parece insignificante cuando es sumado a lo largo de las miles de millones de instrucciones que realizar, nos puede dar una cantidad de tiempo bastante importante. De modo que la tecnología que se utilice puede dar resultados totalmente distintos incluso utilizando el mismo procesador.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Por el momento, en un futuro cercano además de contar con la arquitectura de 0.25 micras, podremos disfrutar de duna de 0.07 para el año 2011, lo que supondrá la introducción en el procesador de mil millones de transistores y alcanzando una velocidad de reloj cercana a los 10000 MHz, es decir, 10 GHz.

     La tecnología MMX

    Aunque no podamos considerar la tecnología MMX como un procesador en sí mismo, sería injusto no hablar de ella en un informe como éste. Es uno de los mayores pasos que ha dado Intel en la presente década, y según ellos mismos, todos los procesadores que fabriquen a partir de mediados del próximo año llevarán incorporada esta arquitectura. Para su desarrollo se analizaron un amplio rango de programas para determinar el funcionamiento de diferentes tareas: algoritmos de descompresión de vídeo, audio o gráficos, formas de reconocimiento del habla o proceso de imágenes, etc. El análisis dio como resultado que numerosos algoritmos usaban ciclos repetitivos que ocupaban menos del 10% del código del programa, pero que en la práctica suponían el 90% del tiempo de ejecución. De modo que nació la tecnología MMX, compuesta por 57 instrucciones y 4 tipos de datos nuevos, que se encargan de realizar esos trabajos cíclicos consumiendo mucho menos tiempo de ejecución. Antes, para manipular 8 bytes de datos gráficos requería 8 repeticiones de la misma instrucción; ahora, con la nueva tecnología, se puede utilizar una única instrucción aplicada a los 8 bytes simultáneamente, obteniendo de este modo un incremento del rendimiento de 8x.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    INTEL

    Desde la aparición del 8088 hace los principios de funcionamiento de los micros no se han modificado mucho, a pesar de que ahora se ha llegado a la quinta generación de estos chips y se ha profundizado en todo lo referente a las prestaciones, en tema en los que hace diez años uno ni tan sólo se atrevía a soñar. De todas maneras estas modificaciones se refieren especialmente a la velocidad de trabajo del procesador con el cual se maneja el DOS, no al concepto básico, por lo menos en lo referente al modo real.

    Echemos de todas formas, en primer lugar, un vistazo a la historia del desarrollo de los procesadores Intel.

    La tarea del procesador es la de tratar las series de órdenes en lenguaje máquina, pues el lenguaje máquina es el único que entiende el procesador. Las instrucciones en el lenguaje máquina no son exactamente iguales para todos los ordenadores, sino que solo son validas para el tipo de microprocesador en cuestión. Los diferentes miembros de la familia 80xxx trabajan sin embargo con el mismo lenguaje máquina, lo que permite que estos sean compatibles entre ellos.

    El primer representante de esta familia, el 8086, se desarrollo ya en el año 1978. Sus sucesores fueron modificados de muchas maneras, y en parte fueron modificados de forma radical, pero sin perder la compatibilidad con los anteriores. En el caso del 8088 esto significó un paso hacia atrás, ya que si bien el 8088 disponía del mismo grupo de instrucciones y la misma estructura interna que el 8086, se comunicaba con la memoria mediante un bus de datos de 8 bits, en lugar de 16 bits.

    El resto de miembros de esta familia, son desarrollos posteriores del 8086. De manera que por ejemplo el 80186 dispone de nuevas funciones adicionales, mientras que al 80286 se le crearon mas registros en comparación al 8086, así como también se le amplió el área de direcciones. La novedad mas decisiva del 80286 respecto a sus predecesores la representa el modo protegido, que sin embargo no puede utilizarse con el DOS.

    Al 80286 le siguió el 80386, que marcó un notable salto en la capacidad de rendimiento. Continuó desarrollando el modo protegido y fue el primero de disponer de un procesador Intel de registros de 32 bits, que sin embargo no pudo utilizarse correctamente en la programación del DOS. Este procesador existe también en una versión SX y DX, que se diferencian únicamente en la frecuencia y en el tamaño del bus de dato; el SX trabaja con un bus de datos de 16 bits, mientras que el DX puede transmitir de una sola vez una palabra de 32 bits mediante su bus.

    El micro que sigue al 80386, también llamado "i486" es el 80486. Este se distingue especialmente del 80386 por la integración del coprocesador numérico 80387, por la preparación de un código-caché y el tratamiento más rápido de muchas instrucciones en lenguaje máquina, siendo también compatible con el 8086.

    El hito técnico actual lo marca el procesador Pentium que ha mejorado la velocidad de proceso interna en relación con el 486. En determinadas situaciones el procesador esta en situación de procesar dos ordenes consecutivas al mismo tiempo, siempre y cuando la segunda no dependa del resultado de la primera. 

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    También la denominación en nueva en el Pentium puesto que se esperaba que tras el 80486 el sucesor se denominaría 80586. Intel sin embargo rompió con la tradición puesto que nombres como 8088 o 80486 no

    pueden ser patentados. Esto lo aprovecharon durante largo tiempo otros fabricantes de estos componentes para distribuir procesadores compatibles con Intel, con otros nombres parecidos.

      REGISTROS DEL PROCESADOR

    En el centro de todos los procesadores se encuentran sus registros, "variables de hardware", en los cuales pueden cargarse datos de la memoria, tratarlos allí con l a ayuda de las instrucciones del lenguaje máquina y finalmente volverlos a escribir en la memoria. Esto es mucho más rápido que la manipulación de información dentro de la memoria, ya que los registros se evacuan directamente en el procesador y por lo tanto no es necesario acceder al bus para poner su contenido a disposición de las instrucciones en lenguaje máquina. Por esta razón los registros del procesador juegan un papel muy importante para la programación del sistema, ya que es mediante estos registros que se desarrollan el flujo de información entre un programa y las funciones del DOS y BIOS que este llama.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

    Todos los registros tienen un tamaño de 16 bits (2 bytes). Así pueden registrar un valor entre 0 y 65535 (111111111111111b, o FFFFh).

    El Procesador 386

    El microprocesador 386 (también conocido como 386 DX) supone un paso muy importante frente al 286. Hasta entonces, tanto los micros 8088 y 8086 como el 286 eran microprocesadores de 16 bits; trabajaban con 16 bits a la vez en cada ciclo de reloj. Por el contrario, el 386 es un microprocesador de 32 bits, que procesa 32 bits simultáneamente en cada ciclo de reloj. Los ordenadores 386 tienen una velocidad desde 16 a 50 Mhz.

    El bus de direcciones del 386 tiene 32 bits. Con 32 bits se pueden redireccionar 232 celdas de memoria lo que equivale a 4096 MB. También en este caso los primeros 1024 k se reparten como los micros 80886 y 286: 640k de memoria convencional y los 364k restantes de memoria superior.

    El microprocesador 80386 esta diseñado para soportar aquellos sistemas operativos optimizados para multitarea. El micro 80386 es capaz de direccionar hasta 4 gigabytes de memoria física y 64 tetrabytes de memoria virtual. La gestión de memoria integrada y arquitectura de protección incluye registros de traducción de direcciones y mecanismo de protección para soportar sistemas operativos y hardware avanzado de multitarea.

    El transvase entre instrucciones – pipelining -, una elevada anchura del bus y una traducción de direcciones en la pastilla acortan significativamente el tiempo medio de ejecución de la instrucción, manteniendo un alto rendimiento del sistema. Estas características de diseño de arquitectura habilitan al 80386 a ejecutar instrucciones a una frecuencia de 3 a 4 millones por segundo.

    Características adicionales se incluyen autotest, acceso directo a la memoria interna (cache) donde se realiza la traducción de página y cuatro nuevos registros de "Breakpoint". El 80386 tiene el código objeto compatible con el 8086, 8088 y 80286.

     El procesador 386SX

    Los microprocesadores 386SX aparecieron después que el 386 como una solución intermedia en precio y prestaciones entre el 286 y el 386. Los micros 386 puros (386DX) necesitan a su alrededor una circuiteria de 32 bits, mientras que los SX necesitan una circuiteria de 16 bits, mucho mas barata. De esta forma, los fabricantes podían utilizar todos los componentes y la circuitería de 16 bits que usaban para un 286, pero ahora incorporando un microprocesador de 32 bits.

    La diferencia entre un ordenador 386DX y un ordenador 386SX se percibe en la velocidad del ordenador, pero desde el punto de vista de las aplicaciones que se pueden ejecutar, es totalmente, indiferente tener un microprocesador 386DX que un 386SX.

     El procesador 386SL

    El microprocesador 386SL es equivalente al 386SX con la particularidad de estar diseñado especialmente para los ordenadores portátiles, cuidando sus especiales necesidades de baja potencia y consumo. El 386SL posee un modo sleep que utiliza menso energía durante su funcionamiento. Además, existen nuevos recursos para poder minimizar el funcionamiento del ordenador (el consumo de energía) cuando no se utiliza. El resultado es que la batería puede doblar su tiempo en un portátil con 386SL frente a un 386SX. Los microprocesadores 386SL sólo se utilizan en portátiles y notebooks y, hoy en día, son los únicos microprocesadores 386 en los que continúa desarrollando y trabajando.

     Tipos de datos

    La pastilla microprocesadora 80386 soporta varios tipos de datos además de los soportados por sus predecesores (80×86). Soporta enteros con signo y sin signo de 32 bits y campos de bits de 1 a 32 bits de

    longitud. También soporta los tipos de punteros estándares, así como un puntero de desplazamiento de 32 bits y un puntero completo de 48 bits.

     Otros registros de 32 bits (ESI, EDI, EBP, ESP) no se pueden dividir en registros de 16 bits. Por otra parte, el puntero de instrucciones EIP, también es un registro de 32 bits, cuyo contenido se modifica dependiendo de los cambios que experimente el flujo del programa que el procesador ejecute. Por lo tanto, EIP se modifica implícitamente mediante instrucciones en código máquina.

    ARQUITECTURA BASE

    La pastilla microprocesadora 80386 proporciona al programador 32 registros. Estos 32 registros pueden ser divididos en siete categorías principales.

    – Registros de propósito general

    – Registros de segmentos

    – Puntero de instrucción y señalizaciones

    – Registros de control

    – Registros de direcciones del sistema

    – Registros de test.

    Estos registros son un superconjunto de los registros del 8086 y el 80286; además, todos los registros de 16 bits del 8086 y el 80286 están contenidos en el microprocesador 80386 de 32 bits.

     REGISTROS DE PROPOSITO GENERAL

    Los ocho registros de propósito general se utilizan de forma análoga a los ocho registros de propósito general asociados al 80286, excepto que los registros tienen ahora 32 bits. Estos registros son capaces de soportar operandos de datos de 1, 8, 16 y 32 bits y campos de bits de 1 a 32 bits. Los ocho registros son el EAX (acumulador), EBX (base), ECX (contador), EDX (datos), ESP (puntero de pila), EBP (puntero base), ESI (índice fuente) y EDI (índice destino).

    Para acceder a los 32 bits de un registro, todas las referencias del registro deben comenzar "E". Cada uno de los ocho registros de propósito general puede ser descompuesto en sus equivalentes de 16 bits del 8086/80286 referenciando los registros sin usar el prefijo "E".

     REGISTOS DE SEGMENTOS

    El microprocesador 80386 contiene seis registros segmento de 16 bits. Los seis registros segmento mantiene los valores del selector en las posiciones de memoria actualmente direccionables. En modo de dirección real, un segmento puede variar desde 1 byte hasta un tamaño de segmento máximo de 64 bytes, o 216. El direccionamiento en modo protegido habilita rangos de segmento desde 1 byte hasta un máximo de 4 gigabytes, o 232 bytes.

    Para ver el gráfico seleccione la opción "Descargar" del menú superior

     Tecnologías Paralelas (1)

     COPROCESADOR MATEMÁTICO

    OVERDRIVE

    PROCESADOR Pentium

     CELERON

    Xeon

     Pentium III:

    Pentium IV

    AMD

    Historia de AMD

    RETROSPECTIVA

    Tipos de Microprocesadores:

    K5:

    K6:

    K6-2:

     CYRIX

    6×86:

     6x86MX:

     MII:

     IDT

    WINCHIP C6

    WINCHIP C6+

    WINCHIP 2- 3D

    IBM:

    Zócalo: (1)

    Anexos: (1)

    Noticias: El nuevo AMD es un triunfador

    (1) Para ver el texto completo seleccione la opción "Descargar" del menú superior

     Maria Esther