Informática


Historia de los Microprocesadores


INTRODUCCION

Los microprocesadores han llegado a formar una parte muy importante en todos los ámbitos de nuestra sociedad moderna, logrando un gran desarrollo en diversos campos (científico, tecnológico, medico, administrativo, entretenimiento, etc.). En este mocho de trabajo estudiaremos de forma resumida y precisa el funcionamiento y arquitectura interna de los microprocesadores Intel.

Así mismo veremos su evolución, sus diferencias y las mejoras e innovaciones para lograr un mejor rendimiento y por consiguiente un continuo desarrollo de nuevas tecnologías, grandes avances, y facilitando el trabajo del hombre.

Antes de entrar en materia, vale la pena destacar que un microprocesador es un circuito integrado capaz de realizar funciones de control y calculo, con alta escala de integración, el cual posee una serie de instrucciones básicas programadas, a partir de las cuales se configuran los programas de código maquina, que es el lenguaje que ejecuta la maquina.

EL MICROPROCESADOR 8080

Historia del 8080

Durante el verano de 1971, Federico Faggin fue a Europa para realizar seminarios sobre el MCS-4 y el 8008. Recibió una gran cantidad de criticas acerca de la arquitectura y el rendimiento de los microprocesadores. Las compañías que estaban mas orientadas hacia la computación eran las que realizaban las peores criticas. Al regreso, se le ocurrió como hacer un microprocesador de 8 bits mejor que el 8008, incorporando muchas de las características exigidas por aquellas compañías, sobre todo, más velocidad y facilidad de implementación en el circuito.

Decidió utilizar el nuevo proceso NMOS (que utiliza transistores MOS de canal N) que se utilizaba en las últimas memorias RAM dinámicas de 4 kilobits, además le agrego una mejor estructura de interrupciones, mayor direccionamiento de memoria (16 KB en el 8008 contra 64 KB en el 8080) e instrucciones adicionales.

Al principio de 1972, decidió realizar el nuevo chip. Sin embargo Intel decidió esperar a que el mercado respondiera primero con el MCS-4 y luego con el MCS-8 antes de dedicar mas dinero al desarrollo de nuevos diseños. En el verano de ese mismo año, la decisión de Intel fue comenzar con el desarrollo del nuevo microprocesador, y en noviembre se comenzó a trabajar sobre el proyecto.

El primer resultado del 8080 se realizó en diciembre de 1973. Los miembros del grupo que hacían el desarrollo encontraron un pequeño error y el primero de abril de 1974 se pudo lazar al mercado la primera producción del nuevo microprocesador.

Este microprocesador se caracteriza principalmente por poseer una unidad de control, un decodificador de instrucciones y un registro de instrucciones. A continuación se detalla un poco el contenido de la ALU y los registros de trabajo.

La sección de la ALU consta de:

  • ALU para el tratamiento de palabras de 8 bits en paralelo.

  • Acumulador principal de 8 bits, denominado A.

  • Acumulador temporal de 8 bits, denominado ACT.

  • Registro temporal de 8 bits, denominado TMP.

  • 5. 5 registros de 1 bit, que configuran el denominado registro de estado y actúan como indicadores de: signo, acarreo, paridad, acarreo intermedio y cero.

    A través del acumulador temporal y el registro temporal se introducen los datos que serán tratados por la ALU; los resultados de dicho tratamiento, normalmente, son depositados en el acumulador o pasan directamente al bus interno de la CPU.

    En la sección de registros se encuentra el contador de programas (PC), el cual sirve para direccionar la posición de la memoria de instrucciones, donde se encuentra el programa; consiste en un registro de 16 bits, capaz de direccionar 2 posiciones de memoria, equivalentes a 65536 palabras de 8 bits (64 K). En esta sección también se encuentra el stack que es un registro de 16 bits, empleado para direccionar cualquier zona de memoria LIFO (último en entrar, primero en salir). Su principal misión es salvar el contenido de los registros principales de la CPU, cuando se rompe la secuencia de un programa y, posteriormente, hay que regresar al estado en que había quedado el microprocesador, cuando se produjo el salto.

    Además del PC y el stack, existen otros 4 registros más, también de 16 bits, divididos en 6 porciones de 8 bits cada uno. La organización de los registros B, C, D, E, H y L, está diseñada para su actuación en parejas, mientras que W y Z actúan como registros temporales. Los registros B, C, D, E, H y L, básicamente se utilizan como elementos de apoyo en el direccionamiento de la memoria. Si trabajan como contenidos individuales, transfieren su contenido de 8 bits al bus interno; mientras que si actúan en parejas, los 16 bits pasan de forma directa hasta el buffer de dirección y luego al bus que controla.

    Todos los registros tienen como característica común la de poder ser incrementados o decrementados fácilmente.

    Modos de direccionamiento del 8080

    El microprocesador 8080 puede ser direccionado de 4 modos diferentes:

  • Inmediato: el byte, que sigue al código de la instrucción, expresa el operando que maneja la instrucción.

  • Directo: los 2 bytes, que siguen al código de la instrucción, proporcionan la dirección de la memoria donde se encuentra almacenado él operando.

  • Por registro: la instrucción determina cual de los registros, tanto individual como en parejas, contiene el dato u operando.

  • Por par de registros indirectos: la instrucción determina la pareja de registros: b-c, d-e, o h-l, que contiene la dirección de la memoria en donde se encuentra el operando, se suele usar los registros h-l (que contienen los 8 bit de mas peso y de menos peso respectivamente) para direccionar la memoria.

  • CONJUNTO DE INSTRUCCIONES DEL 8080

    MOV R1, R2

    Mover registro a registro

    MOV M, R

    Mover registro a memoria

    MOV R, M

    Mover memoria a registro

    HLT

    Alto

    MVI R

    Mover registro inmediato

    MVI m

    Mover memoria inmediata

    INR R

    Incrementar registro

    DCR R

    Decrementar registro

    INR M

    Incrementar memoria

    DCR M

    Decrementar memoria

    ADD R

    Sumar registro A

    ADC R

    Sumar registro a A con arrastre

    SUB R

    Restar registro de A

    SBB R

    Restar registro de A con rebose

    ANA R

    AND registro con A

    XRA R

    EXCLUSIVE-OR registro con A

    ORA R

    OR registro con A

    CMP R

    Comparar registro con A

    ADD M

    Sumar memoria a A

    ADC M

    Sumar memoria a A

    SUB M

    Restar memoria de A

    ANA M

    AND memoria con A

    XRA M

    EXCLUSIVE-OR Memoria con A

    ORA M

    OR memoria con A

    CMP M

    Comparar memoria con A

    ADI

    Suma inmediato a A

    ACI

    Suma inmediato a A con arrastre

    SUI

    Resta inmediato de A

    SBI

    Resta inmediato de A con arrastre

    ANI

    AND inmediato con A

    XRI

    EXCLUSIVE-OR inmediato con A

    ORI

    OR inmediato con A

    CPI

    Comparar inmediato con A

    RLC

    Desplazar cíclicamente A a la izquierda

    RRC

    Desplazar cíclicamente A a la derecha

    RAL

    Desplazar cíclicamente A a la izquierda con arrastre

    RAR

    Desplazar ciclicamente A a la derecha con arrastre

    JMP

    Bifurcación incondicional

    JC

    Bifurcación sobre arrastre

    JNC

    Bifurcación sobre no arrastre

    JZ

    Bifurcación sobre cero

    JNZ

    Bifurcación sobre no cero

    JP

    Bifurcación sobre positivo

    JM

    Bifurcación sobre negativo

    JPE

    Bifurcación sobre paridad par

    JPO

    Bifurcación sobre paridad impar

    CALL

    Llamada incondicional

    CC

    Llamada sobre arrastre

    CNC

    Llamada sobre no arrastre

    CZ

    Llamada sobre cero

    CNZ

    Llamada sobre no cero

    CP

    Llamada sobre positivo

    CM

    Llamada sobre negativo

    CPE

    Llamada sobre paridad par

    CPO

    Llamada sobre paridad impar

    RET

    Vuelta

    RC

    Vuelta sobre arrastre

    RNC

    Vuelta sobre no arrastre

    RZ

    Vuelta sobre cero

    RNZ

    Vuelta sobre no cero

    RP

    Vuelta sobre positivo

    RM

    Vuelta sobre negativo

    RPE

    Vuelta sobre paridad par

    RPO

    Vuelta sobre paridad impar

    RST

    Reiniciar

    IN

    Entrada

    OUT

    Salida

    LXI B

    Cargar inmediato el registro par B y C

    LXI D

    Cargar inmediato el registro par D y E

    LXI H

    Cargar inmediato el registro par H y L

    LXI SP

    Cargar inmediato el puntero de pila

    PUSH B

    Introducir en la pila el registro par B y C

    PUSH D

    Introducir en la pila el registro par D y E

    PUSH H

    Introducir en la pila el registro par H y L

    PUSH PSW

    Introducir en la pila A y los banderines

    POP B

    Sacar de la pila el registro par B y C

    POP D

    Sacar de la pila el registro par D y E

    POP H

    Sacar de la pila el registro par H Y L

    POP PSW

    Sacar de la pila A y los banderines

    STA

    Almacenar directo A

    LDA

    Cargo directo a A

    XCHG

    Cambiar los registros D y E, H y L

    XTHL

    Cambiar el extremo superior de la pila

    SPHL

    H y L al puntero de pila

    PCHL

    H y L al contador del programa

    DAD B

    Sumar B y C a H y L

    DAD D

    Sumar D y E a H y L

    DAD H

    Sumar H y L a H y L

    DAD SP

    Sumar el puntero de pila a H y L

    STAX B

    Almacenar A indirecto

    STAX D

    Almacenar A indirecto

    LDAX B

    Cargar A directo

    LDAX D

    Cargar A directo

    INX B

    Incrementar los registros B y C

    INX D

    Incrementar los registros D y E

    INX H

    Incrementar los registros H y L

    INX SP

    Incrementar el puntero de pilas

    DCX B

    Decrementar B y C

    DCX D

    Decrementar D y E

    DCX H

    Decrementar H y L

    DCX SP

    Decrementar el punto de pila

    CMA

    Complementar A

    STC

    Poner arrastre

    CMC

    Complementar arrastre

    DAA

    Ajustar decimal A

    SHLD

    Almacenar H y L directo

    LHLD

    Cargar H y L directo

    EI

    Habilitar interrupción

    DI

    Inhabilitar interrupción

    NOP

    No operación, instrucción

    Nota: Si bien todas las instrucciones del 8008 están incluidas en el 8080, un programa grabado en ROM para el primer procesador no correrá para el segundo ya que los códigos de operación de las instrucciones son diferentes, por lo que se deberá volver a ensamblar el código fuente para que pueda funcionar en el 8080.

    EL MICROPROCESADOR 8085

    Historia del 8085

    El siguiente microprocesador creado por Intel fue el 8085 en 1977. La alimentación es única: requiere solo +5v. Esto se debe a la nueva tecnología utilizada para la fabricación llamada HMOS (High performanceN-channels MOS) que además permite una mayor integración con mas de diez mil transistores. Tiene incorporado el generador de pulsos de reloj con lo que solo hace falta un cristal de cuarzo y un par de capacitores externos (para el 8080 se necesitaba el circuito integrado auxiliar que lleva el código 8224). Además esta mejorado en cuanto a las interrupciones. Incluye las instrucciones del 8080 y posee dos adicionales (RIM y SIM) referidas a este sistema de interrupciones y a la entrada y salida serie. El bus de datos esta multiplexado con los 8 bits menos significativos del bus de direcciones, con lo que permite tener mas pines libres para el bus de control del microprocesador.

    El 8085 consta de tres bloques fundamentales:

  • Conjunto de registros, formado por el contador de programas (16 bits), el stack pointer (16) y las tres parejas de registros de 8 bits cada uno, junto con la búsqueda que incrementa o decrementa el contenido de todos los registros.

  • La ALU, en combinación con el acumulador y un registro temporal, así como los 5 bits que actúan como flags o señalizadores de estado.

  • El registro de instrucciones, combinado con el decodificador de instrucciones y el circuito de control y de tiempo.

  • Una característica muy peculiar del 8085 la constituye el multiplexado de los 8 bits de menos peso del bus de direcciones con los 8 bits del bus de datos. Esto quiere decir que por los mismos pines que sale la información del bus de datos salen también, en otros momentos, los 8 bits de menos significación de la información del bus de direccionamiento. Esta propiedad proporciona 8 pines más para las funciones de control del sistema. Este detalle es muy importante, dada la limitación del número de pines que tienen los fabricantes. Dicha limitación impide el aumento de control de la CPU, ya que al destinar 16 pines para el bus de direcciones, 8 para el bus de datos, 2 para la alimentación y 2 para el control del generador del reloj interno, sólo quedan 12 pines libres para las funciones de interrupción, control, sincronización, etc. Para aumentar esta potencia, el 8080 multiplexa en el bus de datos la información de su estado interno y el 8085 multiplexa también en el bus de datos los 8 bits de menos peso del bus de direcciones.

    Si se está efectuando una operación de lectura, el microprocesador genera la señal READ y el elemento de memoria o de I/O seleccionado coloca en el bus de datos/direcciones.

    Si se trata de un ciclo de escritura, el microprocesador genera una señal WRITE y en un flanco positivo de memoria direccionada almacena el dato desde el bus.

    CONJUNTO DE INSTRUCCIONES DEL 8085

    Además de contener las 111 instrucciones del 8080, posee 2 nuevas:

    SIM

    Sirve para poner mascara de interrupción de RST 5.5, RST 6.5, RST 7.5 y para enviar un dato por la puerta serie (terminal SOD).

    RIM

    Sirve para leer la mascara de interrupción general, y de RST 5.5, RST 6.5, RST 7.5, las instrucciones pendientes y para leer el dato de la puerta serie (terminal SID).

    MICROPROCESADOR 8086/8088

    Historia del 8086/8088

    En junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits: el 8086. En junio de 1979 apareció el 8088 (internamente igual que el 8086 pero con bus de datos de 8 bits) y en 1980 los coprocesadores 8087 (matemático) y 8089 (de entrada y salida). El primer fabricante que desarrollo software y hardware para estos chips fue la propia Intel. Reconociendo la necesidad de dar soporte a estos circuitos integrados, la empresa invirtió una gran cantidad de dinero en un gran y moderno edificio en Santa Clara, California, dedicado al diseño, fabricación y venta de sus sistemas de desarrollo.

    De esta manera la empresa Intel desarrolló una serie completa de software que se ejecutaba en una microcomputadora basada en el 8085 llamada “Intellec Microcomputer Development System”.

    Arquitectura Interna del 8086/8088

    Estos microprocesadores poseen dos procesadores en el mismo chip, que se denominan: Unidad de Ejecución (EU) y la Unidad de Interfaz del Bus (BIU). Cada uno de ellos dispone de sus propios registros y de su propia sección aritmético - lógica, trabajando asincrónicamente con el otro, para lograr la máxima potencia del cómputo.

    La unidad de interfaz del bus, BIU, es la encargada de buscar las instrucciones, guardarlas en la cola de espera para ser ejecutadas y facilitar el direccionamiento de la memoria, lo que realiza a través del bus de direcciones, que posee 20 líneas.

    El tratamiento de la cola, en la que se guardan los códigos de las instrucciones que esperan a ser ejecutadas por la EU, es responsabilidad de la BIU: aun cuando dos o más bytes de la cola estén vacantes, la unidad de interfaz del bus fuerza automáticamente un ciclo de búsqueda de instrucción, para que la cola se mantenga lo más llena posible. Esta cola consta de 4 registros en el 8088, mientras que en el 8086 son 6 registros. Independientemente del microprocesador, cada registro de la cola es de 8 bits, de tipo RAM y con estructura FIFO. La unidad de ejecución no tiene que esperar a la búsqueda de la instrucción y puede trabajar a su máxima velocidad.

    La unidad de ejecución tiene la responsabilidad de ejecutar las instrucciones, siendo posible considerarla como una CPU clásica. Posee una ALU con un registro de estado con varios flags asociados y un conjunto de registros de trabajo.

    Los primeros 4 registros de la EU, de 16 bits que pueden usarse como 8 de 8 bits, tienen una actuación muy similar a la de los acumuladores. Por ejemplo, el AH se emplea en multiplicaciones, divisiones, entradas/salidas, etc; el BH, como el registro base para el direccionamiento de memoria; el CH, como contador de datos y el DH, como direccionador indirecto de puertas de entrada y salida.

    Los otros registros de la EU, también de 16 bits, conforman el grupo de registros punteros. SI y DI actúan como índices asociados al registro DS. El registro BP actúa como base de la dirección de la pila; mientras que SP es su puntero. Los registros BP y SP funcionan combinadamente con el SS.

    El grupo de registros de segmentos está formado por 4 de 16 bits. Los 16 bits, que implementan las 16 líneas de más peso de la dirección de 20 bits que se genera por el bus correspondiente proceden de un registro de segmento; los cuales son: CS, que hace referencia al segmento del código de instrucciones; DS, que hace referencia al segmento para datos; SS, como base del segmento de la pila y ES, como base de un segmento extra o suplementario.

    El registro puntero de instrucción (IP) contiene un valor de 16 bits que es un desplazamiento sobre la dirección del registro CS.

    CONJUNTO DE INSTRUCCIONES DEL 8086/8088

    ROL

    Rotación a la izquierda

    ROR

    Rotación a la derecha

    SAL

    Desplazamiento aritmético a la izquierda

    SAR

    Desplazamiento aritmético a la derecha

    SHL

    Desplazamiento lógico a la izquierda

    SHR

    Desplazamiento lógico a la derecha

    STC

    Pone a uno el indicador de acarreo

    STD

    Pone a uno el indicador de dirección

    STI

    Pone a uno el indicador de interrupción

    LOCK

    Bloqueo de bus

    WAIT

    Espera hasta la activación de la línea Test

    JA

    Salto si superior

    JAE

    Salto si superior o igual

    JB

    Salto si inferior

    JBE

    Salto si inferior o igual

    JCXZ

    Salto si CX (contador)=0

    JE

    Salto si igual

    JG

    Salto si mayor que

    JGE

    Salto si mayor o igual

    JL

    Salto si menor

    JLE

    Salto si menor o igual

    JNA

    Salto si no superior

    JNAE

    Salto si no superior o igual

    JNB

    Salto si no inferior

    JNBE

    Salto si no inferior o igual

    JNE

    Salto si no igual

    JNGE

    Salto si no mayor o igual

    JNL

    Salto si no menor

    JNLE

    Salto si no menor o igual

    JNO

    Salto si no desbordamiento

    JNS

    Salto si no signo

    JNP

    Salto si no paridad

    JS

    Salto si signo

    LOOP

    Bucle

    LAHF

    Carga a AH con los indicadores

    POPF

    Extrae los indicadores de la pila

    PUSHF

    Introduce los indicadores en la pila

    SAHF

    Almacena AH en el registro de indicaciones

    AAA

    Ajuste ASCII para la suma

    DAS

    Ajuste decimal para la resta

    DEC

    Decremento

    NEG

    Negación

    AAM

    Ajuste ASCII para la multiplicación

    IMUL

    Multiplicación entera

    MUL

    Multiplicación sin signo

    AAD

    Ajuste ASCII para la división

    CBW

    Convierte byte en palabra

    CWD

    Convierte palabra en palabra doble

    DIV

    División sin signo

    IDIV

    División entera

    CMPS

    Compara cadenas

    LODS

    Carga cadena

    MOVS

    Transferencia de cadena

    OUTS

    Salida de cadena

    REP

    Repetición

    REPE

    Repetición mientras igual

    REPNE

    Repetición mientras no igual

    REPNZ

    Repetición mientras no cero

    REPZ

    Repetición mientras cero

    SCAS

    Explora cadena

    STOS

    Almacena cadenas

    AND

    Intersección lógica

    OR

    O lógico

    NOT

    No lógico

    TEST

    Comparación lógica

    XOR

    O exclusivo lógico

    MICROPROCESADORES 80186/80188

    Los Intel 80186/80188 son las versiones mejoradas del microprocesador anterior 8086/8088. Los 80186/80188 son todos los microprocesadores de 16 bits que son compatibles al 8086/8088. Aun la arquitectura de estos microprocesadores es semejante a la de versiones anteriores.

    Las mejoras realizadas a los procesadores 80186/80188 en comparación a las versiones anteriores fueron las siguientes:

    Se le agregó un generador del reloj que esta vez es interno y reemplaza al generador externo utilizado con la versión anterior, lo que reduce el numero de componentes en un sistema.

    Además un controlador programable de interrupciones quien sirve de arbitro a todas las interrupciones internas y externas, controla hasta dos PC externos. Ahora contiene tres temporizadores de 16 bits totalmente programables (0 y 1 controla los procesos internos y el último sirve de reloj para vigilar si se desea interrumpir al microprocesador después de cierta cantidad de tiempo).

    Se suman a los componentes de los antiguos microprocesadores, dos unidades programables de DMA, las cuales pueden transferir datos entre localidades de la memoria, entre la memoria y las E/S, o entre los periféricos de E/S. Y la unidad de señales de habilitación programable.

    En cuanto a la arquitectura son casi idénticos, entre si, y con las versiones anteriores. La única diferencia entre el 80186 y el 80188 es el ancho de sus canales para datos. El 80186 (como el 8086) contiene un canal de datos de 16 bits, mientras que el 80188 (como el 8088) contiene un canal para datos de 8 bits. La estructura de los registros es casi idéntica a la versión anterior. La única diferencia es que contienen vectores de interrupción adicionales reservados y algunas muy poderosas características de entrada y salida integradas. Los 80186/80188 son llamados a menudo controladores dedicados debido a su aplicación, que no es como una computadora basada en un microprocesador, sino como un controlador.

    MICROPROCESADOR 80286

    Historia del 80286

    El microprocesador 80286 fue liberado en febrero de 1982. Para su ensamblaje se utilizaron los componentes del 80186/80188, para así lograr la configuración con multitarea (ejecución simultánea de varios programas). El 80286 opera de dos modos diferentes: modo real y modo protegido. En el modo real, se comporta igual que un 8086, y en modo protegido, necesita un nivel de integración mucho mayor. El microprocesador contiene 134.000 transistores (mucho mas que el 8086), y ejecuta alrededor de 1,2 millones de instrucciones por segundo.

    El microprocesador 80286 añadió un nuevo nivel de satisfacción a la arquitectura básica del 8086, incluyendo una gestión de memoria con la extensión natural de las capacidades de direccionamiento del procesador. El 80286 contiene el juego de instrucciones del 80186, así como la extensión del espacio direccionable a 16 MB, utilizando 24 bits para direccionar (2 = 16.777.216). Este microprocesador está diseñado para usar un sistema operativo con varios niveles de privilegio. Estos sistemas operativos tienen un núcleo que es su parte más interna. El núcleo tiene el máximo privilegio y los programas de aplicaciones el mínimo. La protección de datos en este tipo de sistemas se lleva a cabo teniendo segmentos de código (que incluye las instrucciones), datos (que incluye la pila aparte de las variables de los programas) y del sistema (que indican los derechos de acceso de los otros segmentos).

    Para un usuario normal los registros de segmentación (CS, DS, ES, SS) parecen tener los 16 bits usuales, pero en cambio estos registros no apuntan directamente a la memoria, como lo hacían en el 8086. A los 16 bits, cada registro de segmento del 80286 mantiene otros 57 bits invisibles para el usuario. 8 bits mantienen los derechos de acceso (solo lectura, solo escritura, otros), otros bits mantienen la dirección real (24 bits) del principio del segmento y otros mantienen la longitud permitida del segmento (16 bits, para tener la longitud máxima de 64 KB).

    La arquitectura interna que presenta este microprocesador es la siguiente:

  • Unidad de decodificación de instrucciones.

  • Unidad de ejecución

  • Unidad de direccionamiento

  • Unidad de interfaz con el bus

  • La unidad de interfaz del bus (BIU) dirige operaciones relacionadas con el bus local (dirección de datos y control), esta busca en memoria instrucciones y les mete en la cola de espera en el momento de que no recibe la orden de la unidad de ejecución (EU) la cual puede necesitar operandos o almacenar resultados.

    La unidad de decodificación de instrucciones (IU), recibe los códigos desde la cola de espera, los decodifican y los almacena en la cola de microinstrucciones que alimenta la EU.

    La EU ejecuta instrucciones, cuando necesitan cambiar de celda de memoria, localizar un operador o almacenar un resultado se comunican con la unidad de direccionamiento (AU).

    La forma en que se llevan a cabo los procesos en este microprocesador, es denominada PIPELINE o proceso en tubería. Debido a que cada unidad trabaja de manera individual, es decir, no tiene que esperar a que termine la ejecución completa de una instrucción para comenzar la otra. Mientras que una instrucción se encuentra en la unidad de direccionamiento, simultáneamente se está ejecutando otra en la EU y a la vez la unidad de instrucciones se encuentra preparando la cola de tres instrucciones ya decodificadas, y la unidad del bus mantiene siempre llena su cola de 6 instrucciones. Gracias a este proceso de tubería, aumenta la velocidad de ejecución de un programa, ya que cada una de las unidades se encuentran actuando de forma simultanea, lo que contribuye a que ninguna de las unidades deba perder tiempo esperando por el trabajo de la otra.

    CONJUNTO DE INSTRUCCIONES DEL 80286

    Además de las instrucciones de su antecesor, es decir, las del 8086/8088 más las agregadas 80186 (PUSHA, POPA, INS, OUTS, BOUND, ENTER, LEAVE, la multiplicación inmediata, así como conteo para corrimientos/rotaciones); han sido incorporadas 17 nuevas instrucciones al conjunto del 80286 (todas corresponden al modo protegido).

    CLTS

    Desactiva la bandera de conmutación de tareas

    LDGT

    Carga el registro para la tabla del descriptor global

    SGDT

    Almacena el registro de la tabla de descriptores globales

    LIDT

    Carga el registro de la tabla del descriptor conmutador

    SIDT

    Almacena el registro de la tabla del descriptor conmutador

    LLDT

    Carga el registro de la tabla del descripto local

    SLDT

    Almacena el registro de la tabla del descriptor local

    LMSW

    Carga la palabra del estado de la maquina

    SMSW

    Almacena la palabra del estado de la maquina

    LAR

    Carga los derechos de acceso

    LSL

    Cerca el limite del segmento

    SAR

    Almacena los derechos de acceso

    ARPL

    Ajusta el nivel de privilegio solicitado

    VERR

    Verifica el acceso a ruta

    VERW

    Verifica el acceso a escritura

    LTR

    Carga el registro de tarea actual

    STR

    Almacena el registro de tarea actual

    MICROPROCESADOR 80386

    Historia del 80386

    En octubre de 1985 Intel lanza al mercado su primer procesador con una arquitectura de 32 bits, el 80386, el cual constituyó una gran revisión del modelo anterior.

    Arquitectura del 80386

    El 80386 posee una unidad central de proceso (CPU), una unidad de manejo de memoria (MMU) y una unidad de interfaz con el bus (BIU).

    La CPU está compuesta por la unidad de ejecución y la unidad de instrucciones. La unidad de ejecución contiene los 8 registros de 32 bits de propósito general que se utilizan para el cálculo de direcciones y operaciones con datos y un barrel shifter de 64 bits que se utilizan para acelerar las operaciones de desplazamiento, rotación, multiplicación y división.

    La unidad de instrucción decodifica los códigos de operación (opcodes) de las instrucciones que se encuentran en una cola (cuya longitud es de 16 bytes) y los almacena decodificados (hay espacio para 3 instrucciones).

    El sistema de control de la unidad de ejecución es el encargado de decodificar las instrucciones que les envía la cola y enviarle las ordenes a la unidad aritmética lógica según una tabla que tiene almacenada en ROM llamada CROM (Control Read Only Memory).

    La unidad de manejo de memoria (MMU) consiste en una unidad de segmentación (similar a la del 80286) y una unidad de paginado (nuevo en este microprocesador). La segmentación permite el manejo del espacio de direcciones lógicas agregando un componente de direccionamiento extra, el cual permite que el código y los datos puedan reubicar fácilmente. El mecanismo de paginado opera por debajo y es transparente al proceso de segmentación, para permitir el manejo del espacio de direcciones físicas. Cada segmento se divide en una o más paginas de 4 KB. Para implementar un sistema de memoria virtual (aquel donde el programa tiene un tamaño mayor que la memoria física y debe cargarse por partes o páginas desde el disco rígido), el 80386 permite seguir ejecutando los programas después de haberse detectado fallos de segmento o de páginas.

    Registros del usuario

  • Registro de propósito general (8): conjunto de 8 registros de 32 bits, que se usa como acumuladores en operaciones lógicas y aritméticas, también como registro de almacenamiento de dirección y datos, estos registros pueden manejar información de 32 o 16 bits, se puede dividir en 4 partes con datos de 8 bits.

  • Registros de apuntador de instrucciones y registros de señalizadores (2): es un registro de 32 bits que guarda el desplazamiento sobre la base del segmento de código, para apuntar así la dirección de la siguiente instrucción a ejecutar.

  • Registros de segmentos (6): los 6 registros de segmento son de 16 bits y guarda la dirección de comienzo de segmento de código, los SS apunta al segmento de la pila y los registros DS, ES, FS y GS, almacenan las direcciones iniciales de los distintos segmentos de datos en modo real.

  • Registros del sistema:

  • Registros de control (4): son 4 registros de control cada uno de 32 bits, este grupo contiene el estado operativo de la maquina de forma global, cuando se emplea para todas las tareas que soporta y no refiriéndose en forma concreta.

  • Registros del sistema de direccionamiento (4): 4 registros encargados de referenciar las tablas que manejan las direcciones del sistema.

  • Registros de depuración (6): 6 registros de 32 bits que accesibles al programador y que constituyen una extraordinaria herramienta para la puesta a punto de los sistemas lógicos.

  • Registros de pruebas (2): 2 registros de 32 bits, que se emplean en el control y pruebe de la RAM-CAM (memoria direccionable por contenido).

  • Bus de datos: se compone de 32 líneas llamadas D0-D31, es bidireccional y triestado, puede transferir información de 16 y 32 bits, usando elementos de control.

    Bus de direcciones: lo conforman 32 líneas triestado de salida. Este bus tiene la dirección física de una posición de la memoria principal de una E/S, puede direccionar unos 4000 millones de bytes (4 GB).

    Finalmente, el 80386 al igual que el 80286 también cuenta con una estructura de PIPELINE.

    Diferencia con respecto al 8086 y al 80286

  • El 80386 es un CPU de 32 bits, lo que significa un considerable incremento en la capacidad de procesamiento.

  • A nivel de registros, todos los datos y direcciones (punteros) existentes en el 80286 extiende su longitud a 32 bits en el 80386.

  • Dispone de un bus de direcciones de 32 líneas, lo que permite el direccionamiento de 2 = 4 GB de memoria principal.

  • El numero de segmentos que soporta la memoria virtual es 16.384, o sea el mismo que el 80286. Sin embargo, los segmentos admiten un tamaño de 4 GB, lo que supone una capacidad máxima de 64 TB (TB: tetabyte, es decir, un trillón de bytes).

  • Todas las instrucciones del 80286 que manejaban operando de 16 bits, han sido modificadas para operar con 32 bits.

  • El 80386 admite nuevos tipos de datos y una frecuencia de trabajo de 50MHz.

  • Incorpora nuevos registros de segmento, el FS y el GS, que colaboran con el segmento extra ES en la manipulación de datos.

  • Trabaja en modo real y en modo protegido, en primer caso no contempla mejoras con respecto al 80286, pero en el modo protegido soporta grandes avances, especialmente, derivados del aumento de la capacidad de memoria virtual y física; además tiene la posibilidad de trabajar en modo virtual 8086, que permite ejecutar un programa para el 8086 en modo protegido como si se tratase de una tarea independiente.

  • Optativamente, la memoria virtual soporta la paginación.

  • Versiones del 80386

    80386SX: para facilitar la transición entre las computadoras de 16 bits basada en el 80286, apareció en junio de 1988 el 80386sx con bus de datos de 16 bits y 24 bits de direcciones (al igual que en el caso del 286). Este microprocesador permitió el armado de computadoras en forma económica que pudieran correr programas de 32 bits.

    80386SL: en 1990 Intel introdujo el miembro de alta integración de la familia 80386, el 80386SL, con varias características extras (25 MHz, frecuencia reducida ó 0 MHz, interfaz para caché opcional externo de 16, 32 ó 64 KB, soporte de LIM 4.0 -memoria expandida- por hardware, generación y verificación de paridad, ancho de bus de datos de 8 ó 16 bits) que lo hacen ideal para equipos portátiles.

    CONJUNTO DE INSTRUCCIONES DEL 80386

    Aparte del conjunto de instrucciones del 80286, el 80386 tiene las siguientes nuevas instrucciones:

    BSF

    Búsqueda de un bit hacia adelante

    BSR

    Búsqueda de un bit hacia atrás

    BT

    Prueba de un bit

    BTC

    Prueba de un bit y complemento

    BTR

    Prueba de un bit y puesta a 0

    BTS

    Prueba de un bit y puesta a 1

    CDQ

    Convertir doble palabra a palabra cuádruple

    CWDE

    Convertir palabra a doble palabra extendida

    JECXS

    Salta si el registro ECX=0

    LFS

    Cargar puntero en el registro F

    LGS

    Cargar puntero en el registro G

    LSS

    Cargar puntero en el registro S

    MOVSX

    Mover byte, palabra o doble palabra con extensión de signo

    MOVZX

    Mover byte, palabra o doble palabra con extensión de cero

    POPAD

    Saca todos los registros de la pila

    POPFD

    Saca el registro de señalizadores de la pila

    PUSHAD

    Cargar el contenido de todos los registros en la pila

    PUSHFD

    Cargar el registro EFLAGS en la pila

    SHLD

    Doble desplazamiento a la izquierda

    SHRD

    Doble desplazamiento a la derecha

    MICROPROCESADOR 80486

    Historia de 80486

    Este procesador fue lanzado en Abril de 1989. Posee 32 bits, 1025 millones de transistores, ejecuta 20 millones de instrucciones por segundo, posee multiprocesamiento de datos con velocidades de 25, 33, 50 MHz incluye un cache, un procesador de punto flotante incorporado y una unidad de administración.

    Arquitectura del 80486

    El procesador 80486 es básicamente un 80386 pero contiene una unidad de punto flotante, un cache de memoria de 8 KB adicionales, y una unidad para la administración de la memoria (MMU).

    El procesador 80486 esta compuesto por los siguientes bloques:

  • Unidad de ejecución: incluye los registros de uso general de 32 bits, la unidad lógica - aritmética t un barrel shifter de 64 bits. La unidad de ejecución esta mejorada con lo que se necesita un solo ciclo de reloj para las instrucciones mas frecuentes.

  • Unidad de segmentación: que incluye los registros de segmento, los caches de descriptores y la lógica de protección. Esta unidad no tiene diferencias con respecto al 80386.

  • Unidad de paginación: es la traductora de las direcciones lineales (generadas por la unidad anterior) en direcciones físicas.

  • Unidad de cache: debido a la evolución de las memorias el tiempo de acceso de las mismas decreció lentamente, mientras que la velocidad de los microprocesadores aumento significativamente. Por lo que, el acceso a la memoria representaba el cuello de la botella. La idea del cache es tener una memoria relativamente pequeña con la velocidad del procesador. La mayoría del código que se ejecuta lo hace dentro de ciclos, con lo que, si se tiene el ciclo completo dentro del cache, no seria necesario acceder a la memoria externa. Con los datos pasó algo similar: también ocurre un efecto de localidad. El cache se carga rápidamente mediante un proceso como `ráfaga', con el que se pueden transferir cuatro bytes por ciclo de reloj.

  • Interfaz con el bus: incluye los manejadores del bus de direcciones con salidas de A31-A2 y BE0# a BE3# (mediante esto último cada byte del bus de datos se habilita por separado), bus de datos de 32 bits, y bus de control.

  • Unidad de instrucciones: incluye la unidad de prebusqueda que le pide a los bytes de instrucciones al cache (ambos se comunican mediante un bus interno de 128 bits), una cola de instrucciones de 32 bytes, la unidad de decodificación, la unidad de control, y la ROM de control (que indican lo que deben hacer las instrucciones).

  • Unidad de punto flotante: incluye 8 registros de punto flotante de 80 bits y la lógica necesaria para realizar operaciones básicas, raiz cuadrada y transcendentes de punto flotante.

  • Versiones de 80486

    • 80486DX: en abril de 1989 Intel presentó su nuevo procesador el 80486DX, que poseía 1,2 millones de transistores a bordo, el doble de la velocidad del 80386 y el 100% de compatibilidad con los microprocesadores anteriores.

    • 80486SX: en abril de 1991 se presentó el 80486SX, un producto de menor costo que el anterior sin el coprocesador matemático que posee el 80486DX (bajando la cantidad de transistores a 1.185.000).

    • 80486SL: en 1992 apareció el 80486SL con características especiales en cuanto a ahorro de energía.

    CONJUNTO DE INSTRUCCIONES DEL 80486

    BSWAP

    Cambia el orden de los bytes

    CMPXCHG dest,src

    Compara el acumulador con dest

    INVD

    Vacía el cache interno

    INVLPG

    Invalida una entrada de página en el buffer de conversión por búsqueda

    WBINVD

    Realiza los cambios indicados en el cache en la memoria externa y luego lo invalida

    XADD dest,src

    Suma los operandos fuente y destino, poniendo el resultado en el destino.

    MICROPROCESADOR PENTIUM

    Historia del PENTIUM

    El 19 de octubre de 1992, Intel anunció que la quinte generación de su línea de procesadores compatibles (cuyo código interno era el P5) llevaría el nombre de PENTIUM en vez de 586 u 80586, como todo el mundo estaba esperando. Esta fue una estrategia de Intel para poder registrar la marca y así poder diferir el nombre de sus procesadores del de sus competidores (AMD y Cyrix principalmente).

    Este microprocesador se presentó el 22 de marzo de 1993 con velocidades iniciales de 60 y 66 MHz (112 millones de instrucciones por segundo en el último caso), 3.100.00 transistores (fabricados con el proceso BICMOS -BipolarCMOS-), cache interno de 8 KB para datos y 8 KB para instrucciones, verificación interna de paridad para asegurar la ejecución de las instrucciones, una unidad de punto flotante mejorada, bus de datos de 64 bits para una comunicación más rápida con la memoria externa y, lo mas importante, permite la ejecución de dos instrucciones simultáneamente. El chip se empaqueta en formato PGA (Pin Grid Array) de 273 pines.

    Luego para el 7 de marzo de 1994 Intel presentó la segunda generación de PENTIUM. Se introdujo con las velocidades de 90 y 100 MHz aplicando una nueva tecnología de 0.6 micrones y posteriormente se introdujeron las versiones de 120,133,150,160 y 200 MHz con tecnologia de 0,35 micrones.

    Arquitectura del PENTIUM

    El microprocesador PENTIUM esta conformado por 7 unidades que permiten alta prestaciones, compatibilidad y el mantenimiento de los datos. Estas unidades se dividen en:

    Unidad de enteros superescalar:

    Posee en su interior 2 unidades de enteros de 32 bits que operan en paralelo, las cuales constan de segmentación - instrucciones de 5 etapas: prebusqueda de instrucciones, decodificación, calculo, ejecución yescritura de los resultados, cada una de ellas es capaz de funcionar independiente de las otras, dando la sensación de que se encuentran dos procesadores trabajando al mismo tiempo con posibilidades de proporcionar dos resultados enteros por ciclo de reloj.

    Cada unidad de proceso interno tiene su propia unidad aritmética - lógica, su circuito de generación de direcciones exclusiva e interfaz con la memoria cache de datos. Los resultados de las operaciones se almacenan en la cache interna y no se transfiere a la memoria principal si no es necesario.

    Estas unidades no son completamente iguales, una de ellas puede solamente procesar solo operaciones simples o de núcleo RISC, y la otra puede realizar instrucciones de compatibilidad y de microprogramas. Existe un bloqueo de la ejecución paralela de instrucciones que se realiza de forma totalmente transparente al software y al usuario, esto se produce cuando hay dependencias entre los operandos de las instrucciones, pero se hacen lo imposible para que siempre haya paralelismo en la ejecución de las instrucciones, siempre y cuando se cumpla todos los requisitos para no perder ningunos datos.

    Unidades de memoria cache

    Esta memoria está dividida en dos subsistemas de memoria cache totalmente independientes, son del mismo tamaño 8 octetos. Uno se dedica a almacenar las instrucciones (códigos) y el otro los datos, esto permite la aceleración de la capacidad de transferencia del procesador, organizada como memorias asociativas de dos vías, mucho más eficiente que si fuera de correspondencia directa, el tamaño de la línea es de 32 octetos, el doble que el 486 debido a que el bus externo es de 64 bits. De esta forma permite un acceso de tipo ráfaga que pueda llenar una línea completa de la cache, los buses independientes que abastecen a las caches internas, desde la unidad de bus externa son de 64 bits cada una.

    Cada cache tiene su propia interfaz con cada una de las unidades de enteros, por lo que se puede proveer de datos o de instrucciones al mismo tiempo a las dos unidades de ejecución para la realización de dos operaciones independientes en un mismo ciclo de reloj, el bus que parte de la cache de datos es de 64 bits y conecta a la cache de instrucciones con los registros de prebusqueda de 256 bits.

    Los ciclos de ejecución del bus tienen valores medios correspondientes a un 36% de búsqueda de instrucción, un 21% de alturas de datos, un 30% de estructuras de datos y un 7 % de escrituras obligadas de datos. El tipo de ciclo de bus de ráfaga permite cargar 256 bits (32 octetos) en la cache de datos de una vez. El bus externo de 64 bits es capaz de transferir datos entre la memoria y el procesador a velocidades que pueden llegar a 528 octetos por segundo.

    Unidad de interconexión con el bus

    Tiene un bus de direcciones de 32 bits pero el bus de datos externos es de 64 bits, el subsitema de memoria esta organizado en ocho grupos de bit cada uno, es decir, 64 bits para adecuarse al bus del procesador, esta organizado en dos bancos de 64 bits cada una de forma que un acceso se haya en un banco y el siguiente en el otro para permitir la recuperación de los chips de memoria y obtener un mejor tiempo de acceso.

    Consta de una pagina de memoria de cuatro MB, la cual permite un mejor trabajo en entornos gráficos, adaptadores de vídeo del tipo `frame buffer' y sistemas operativos multilaterales, evitando los frecuentes cambios de paginas y disminuyendo en gran medida la probabilidad de ausencia en memoria de la pagina perdida. Al use de grandes objetos esta característica eleva el rendimiento en gran medida.

    Unidad de predicción de bifurcaciones

    Esta encargada de hacer una predicción dinámica de donde van a bifurcar las instrucciones del salto condicional, consultando en la BTB (cache especifica de 256 posiciones, buffer de destino de bifurcación) las ultimas 256 instrucciones de este tipo por las que el flujo de ejecución del código haya pasado. Cuando una instrucción produce un salto, la BTB recuerda dicha instrucción y la dirección de salto efectuado, prediciendo en que dirección se va a producir el salto de la próxima vez que se ejecute, si es correcta la divulgación se realiza en 0 ciclos de reloj, si no hay una penalización de tiempo pues hay que anular todas las operaciones efectuadas con las instrucciones que sigan al salto, esto permite un aumento del flujo de ejecución de instrucciones en un 20%.

    Unidad de punto flotante

    Se incorpora un cause segmentado de instrucciones de 8 etapas, que permite obtener resultados partiendo de instrucciones de punto flotante en cada ciclo de reloj. Las cuatro primeras etapas son las mismas que posee las unidades de enteros.

    La quinta y sexta, corresponde a la ejecución de las instrucciones de punto flotante. La séptima etapa se encarga de escribir los resultados en los registros adecuados y la octava realiza el informe de posibles errores que se hayan producido.

    En cuanto al banco de registros de trabajo, dispone de 16 registros ocho de los cuales actúan como registros de propósito general (EAX, EXB, ECX, EDX, ESP, ESI, EBP y EDI), 6 registros de segmentos (CS, DS, ES, FS, GS y SS), un registro puntero de instrucciones (EPI) y un registro de señalizadores (EFLAGS), como señalizadores de estado (CF, PF, AF, ZF, SF y OF) y señalizadores de estado (TF, IF, ID, IOPL, NT, RM, VM, AC, VIF y VIP).

    El Pentium sigue el mismo modelo de vía de acceso del 80486. La secuencia de funcionamiento de la vía de datos es:

    • Prebusqueda: el procesador precapta instrucciones de la cache de instrucciones.

    • Decodificación 1: el procesador decodifica la instrucción para determinar el código de operación y la información de direccionamiento. Esta etapa también realiza la comprobación de emparejamiento (es decir si las dos instrucciones son sencillas como para ser ejecutadas en un paralelo) y la predicción de salto.

    • Decodificación 2: genera las direcciones de referencias a memoria.

    • Ejecución: el procesador accede a la cache de datos o calcula resultados en la ALU o en otras unidades.

    • Retroescritura: esta etapa actualiza los registros e indicadores con los resultados de la instrucción.

    CONJUNTO DE INSTRUCCIONES DEL PENTIUM

    Aparte de las instrucciones del 80486, PENTIUM posee las siguientes nuevas instrucciones

    CMPXCHG8B

    Compara y cambia 8 bits

    CPUID

    Informa al software acerca del modelo del procesador que se esta utilizando

    RDMSR

    Leer del modelo especifico de registro

    RDTSC

    Copia el resultado en EDX:EAX (Pentium tiene un contador de 64 bits, que se incrementa con cada ciclo de reloj)

    RSM

    El estado del procesador se restaura utilizando la copia que se creo al entrar

    WRMSR

    Escribe en el modelo especifico del registro

    MICROPROCESADOR PENTIUM MMX

    Para enero de 1998 Intel saca al mercado un nuevo procesador el Pentium MMX, el cual fue lazado al mercado con velocidades de 166, 200, 233 MHz para ordenadores de escritorio, versiones de 150, 166, 200, 233 y 266 MHz para portátiles y versiones OVERDRIVE para equipos de sobremesa 125, 150, 166, 180 y 200 MHz.

    Con respecto al Pentium Clásico ofrece las siguientes mejoras:

    • 57 nuevas instrucciones internas diseñadas para procesar con más eficacia datos gráficos, de audio y vídeo.

    • SIMD (Single Instruction Multiple Data), que permite realizar la misma operación con diferentes datos simultáneamente, especialmente útil con imágenes gráficas, vídeo, audio y animaciones.

    • Capacidad de realizar dos instrucciones multimedia (MMX)en cada ciclo de reloj.

    • Doble cantidad de cache: 16KB para datos y 16KB para instrucciones.

    • Doble de los buffer de escritura y mejora de ejecución de instrucciones en paralelo.

    • Voltaje menor (2,8 V sólo para el corazón del procesador). Esto da lugar a un menor calentamiento, pero el funcionar con doble voltaje 2,8 V/ 3,3 V indica que algunas placas no l soportan, y por tanto estos procesadores exigen placas modernas. Los procesadores MMX para portátiles funcionan a 1,8 V y 2,0 V internamente.

    La mejora de prestaciones sobre el Pentium Clásico a igual velocidad no solo se nota ejecutando instrucciones multimedia, puesto que el simple doblaje de la cantidad de cache supone un incremento importante de rapidez de proceso.

    MICROPROCESADOR PENTIUM II

    Este procesador fue lanzado al mercado en versiones de 233, 266 y 300 MHz, y mas tarde llega una versión de 333 MHz. Sus características diferenciales con respecto a las anteriores versiones son las siguientes:

    • Arquitectura del bus dual independiente, que permite múltiples transacciones simultaneas

    • Incluye instrucciones MMX al igual que el Pentium MMX, para acelerar las operaciones gráficas y 3D, así como las aplicaciones de sonido, vídeo y juegos.

    • Ejecución dinámica, para acelerar las aplicaciones.

    • Encapsulado en cartucho SEC (Single Edge Contact - contacto por un solo lado), incluyendo dentro del cartucho el procesador y la cache de segundo nivel, llamado SLOT 1.

    • Cache de segundo nivel de 512KB funcionando a la mitad de la velocidad del procesador.

    La versión 333MHz integra dos nuevas instrucciones : FXSAVE y FXSTOR, destinadas ambas a acelerar todos los procesos del sistema operativo. Dichas instrucciones sirven para acelerar el cambio entre operaciones de instrucciones MMX (multimedia) y operaciones del coprocesador matemático integrado en el procesador, pues ambos tipos de operaciones no pueden se ejecutadas simultáneamente.

    MICROPROCESADOR PENTIUM III

    La arquitectura de la Pentium III con velocidad de 450 y500 MHz, con cache L2, de 512 K a media velocidad y el mismo gabinete básico Slots, ofrece una característica en su arquitectura SSE (Straming SIMD Extensions) que proporcionan un conjunto de instrucciones y extensiones de microarquitectura que mejoran el desempeño de ciertas aplicaciones de punto flotante intensivo, beneficia a las gráficas 3D, imágenes 2-D, reconocimiento de voz, codificación MPEG-2, aplicaciones científicas y de ingeniería.

    La SSE tiene 4 avances principales: 8 nuevos registros de punto flotante de 128 bits accesibles en forma directa, 50 nuevas instrucciones diseñadas para operaciones de punto flotante SIMD, 8 nuevas instrucciones enfocadas en el flujo de datos desde y hacia la memoria, 12 integradas de SIMD.

    Esto le permite tener la capacidad de cuatro valores de punto flotante de precisión individual de 32 bits para empacarse en un registro de 128 bits. Una sola instrucción SSE operaria en 2 de estos registros, efectuando cuatro cálculos de punto flotante simultaneas, también ejecuta instrucciones MMX como SSE, instrucciones de punto flotante estándar SSE. Los registros SSE son accesibles de manera directa sin cuellos de botella, a diferencia de las correspondientes a punto flotante X86.

    Las instrucciones de flujo de memoria permiten la búsqueda previa de memoria , permitiendo así que los elementos de datas del tamaño de una línea del cache se busquen de la memoria al CPU, con el control de la aplicación un poco antes de que se necesiten en realidad, controlando la ubicación del cache, ayudando a ocultar las latencias de memoria. El bus externo, esta diseñado para manejar múltiples transacciones importantes de bus canalizado en mejora al desempeño de las funciones de búsqueda previa.

    También existe el flujo de almacenes que permite que el procesador escriba un flujo de datos.

    Combinación de escritura permite que se combinen múltiples escrituras parciales en localizaciones sucesivas de la memoria en una sola operación de escritura de estallido del tamaño de línea del cache, en los buffer de escritura, mejorando el cual de procedimiento cuando se usa en combinación con el canal de escritura del Pentium III. Su ancho de banda de combinación de escritura del Pentium III en 790 MBps, velocidad que se aproxima al máximo teórico de 800 MBps para su bus a 100 MHz.

    También implementaron un nuevo serial en su arquitectural, el cual tendrá una identificación digital que si se activa se puede leer en red, siendo una característica de seguridad.

    CONCLUSION

    En este trabajo se pudo precisar la arquitectura interna, funcionamiento, avances tecnológicos de los microprocesadores, estudiamos desde el 8080 hasta llegar al Pentium, observando la similitud en las arquitecturas, pero notando sus cambios y avances para lograr mayor seguridad, rapidez, manejo de datos más eficiente y mayor capacidad de almacenamiento.

    Tomando en cuenta toda esta información podemos concluir que a pesar de los avances de la tecnología, con respecto a los microprocesadores, los cambios que se han dado en su estructura nunca han sido del todo radical, lo que se observa claramente a través de los diagramas de bloques; donde podemos ver correcciones a los anteriores e incorporación de nuevos elementos (para lograr ejecución a mayor velocidad y direccionar mayor cantidad de memoria, pero se puede ver la continuidad de elementos como: la entrada de información a través de direcciones al microprocesador, la unidad de memorias (los registros), la unidad central del proceso donde se ejecutan las instrucciones, y la de salida que regresa el resultado de la ejecución.

    Así podemos observar que se mantienen los lineamientos básicos a través de la evolución de los microprocesadores.

    BIBLIOGRAFIA

    Angulo, José Ma. Microprocesadores. Editorial Paraninfo. Madrid (1984).

    Brey, BARRY. Los Microprocesadores Intel. Prentice Hall. 3era edicion. (1994)., México.

    Dollhoff , Terry . 16 bits Microprocessor Architecture. RESTON. Virginia.

    Hurray , William H. Manual de microprocesador 80386. Editorial Mc Graw Hill 1998

    Taub, Herbert. Circuitos digitales y microprocesadores. Editorial Mc Graw Hill

    1983

    Urunuela, José Ma. Microprocesadores, Programación e interconexión. 2da

    Edición 1989.

    INDICE

    INTRODUCCION ....................................................................................

    3

    EL MICROPROCESADOR 8080 ............................................................

    4

    Historia del 8080 ...........................................................................

    4

    Conjunto de instrucciones del 8080 ..............................................

    6

    EL MICROPROCESADOR 8085 ............................................................

    9

    Historia del 8085 ...........................................................................

    9

    Conjunto de instrucciones del 8085 ..............................................

    10

    EL MICROPROCESADOR 8086/8088 ...................................................

    10

    Historia del 8086/8088 ..................................................................

    10

    Arquitectura interna .......................................................................

    11

    Conjunto de instrucciones del 8086/8088 .....................................

    12

    EL MICROPROCESADOR 80186/80188 ...............................................

    14

    EL MICROPROCESADOR 80286 ..........................................................

    15

    Historia del 80286 .........................................................................

    15

    Conjunto de instrucciones del 80286 ............................................

    16

    EL MICROPROCESADOR 80386 ..........................................................

    17

    Historia del 80386 .........................................................................

    17

    Arquitectura interna .......................................................................

    17

    Versiones del 80386 .....................................................................

    20

    Conjunto de instrucciones del 80386 ............................................

    21

    EL MICROPROCESADOR 80486 ..........................................................

    21

    Historia del 80486 .........................................................................

    21

    Arquitectura interna .......................................................................

    22

    Versiones del 80486 .....................................................................

    23

    Conjunto de Instrucciones .............................................................

    23

    EL MICROPROCESADOR PENTIUM ....................................................

    24

    Historia del Pentium ......................................................................

    24

    Arquitectura interna .......................................................................

    24

    Conjunto de instrucciones de Pentium ..........................................

    27

    EL MICROPROCESADOR PENTIUM MMX ...........................................

    28

    EL MICROPROCESADOR PENTIUM II .................................................

    29

    EL MICROPROCESADOR PENTIUM III ................................................

    29

    DIAGRAMAS DE BLOQUE DE LOS PROCESADORES .......................

    31

    CONCLUSION ........................................................................................

    38

    BIBLIOGRAFIA .......................................................................................

    39

    36

    24

    16

    64 b

    256 b

    32 b

    32 b

    32 b

    32 b

    32 b

    32 b

    32 b

    64 b

    64 b

    64 b

    Cache de Datos

    Registros

    Unidad de ejecución

    ALU de enteros

    ALU de enteros

    Unidad de

    interfaz del Bus

    (BUI)

    Unidad de Coma

    flotante

    Buffer de Prefetch de instrucciones

    y unidad de decodificación

    SSE

    Cache de código

    Unidad de

    predicción de

    ramificaciones




    Descargar
    Enviado por:Tulio
    Idioma: castellano
    País: Venezuela

    Te va a interesar