Arquitectura y Diseño de Seguridad Resumen 3
Arquitectura y Diseño de Seguridad Resumen 3
Matricula: 14-EIST-6-027
Sección: 1113
Trabajo: Resumen 3
Arquitectura de los microprocesadores desde el
8086 hasta el Pentium 4
Intel 8086
Intel 8088
El microprocesador Intel 8088 fue lanzado en 1979, o un año después de la CPU Intel
8086.Ambos procesadores tienen la misma arquitectura, y la única diferencia de la CPU del
8088 al de los 8086 es el ancho del bus de datos externos, ya que se redujo de 16 bits a 8 bits.
La CPU 8088 utiliza dos ciclos consecutivos de bus para leer y escribir 16 bits de datos en lugar
de un ciclo de bus para el 8086, que hace que el procesador 8088 sea más lento. Como los
cambios de hardware eran más caros que la CPU 8088, Intel desarrollo los procesadores
8080/8085 compatible con chips de soporte. Este fue un factor importante en la elección del
procesador 8088 de la línea de ordenadores IBM, porque en ese momento los chips de 8 bits
eran más baratos que los chips de 16 bits, y no había mejor selección que los chips de 8 bits.
Intel 80186.
Microprocesador Intel 80186, a veces llamado i186, es una versión mejorada del procesador
Intel 8086 de 16 bits. El código objeto es totalmente compatible con el 8086, la 80186 integra
muchos componentes del sistema en un chip, agregó 7 nuevas instrucciones, y añadió nuevos
tipos de operando a tres existentes de las instrucciones del Intel 8086. Con la excepción de los
componentes integrados, el microprocesador Intel 80186 no es muy diferente del 8086, y, por
ello, la 80186 puede ser considerada como una versión integrada de 8086. Aunque el Intel
80186 no fue ampliamente utilizado en los ordenadores como los 8086 y 80286 lo que fue un
éxito en el mercado de procesadores, fue tan exitoso, que diferentes versiones del procesador
se introdujeron durante los últimos 20 años 80C186 , 80186EA, 80186EB, etc. En este
momento (septiembre de 2006) algunas de estas versiones están todavía en producción. La
figura 5.3 nos muestra el procesador 80186.
INTEL 80188.
El microprocesador Intel 80188 es una versión mejorada del procesador Intel 8088. Al
igual que el 8088, el 80188 tiene arquitectura de 16 bits internos y 8 bits externos en el bus de
datos. Con la excepción de los componentes integrados, el microprocesador 80188 no es muy
diferente del 8088, y, por ello, puede considerarse como una versión integrada de los 8088. El
procesador Intel 80188 ni siquiera tenía su propia versión de coprocesador; no fue muy
utilizado en las computadoras pero fue tan exitoso, que versiones diferentes del procesador
fueron introducidos por Intel y otras compañías desde1982 el 80C188, 80188EA, 80188EB, etc.
En este momento (noviembre de 2004) algunas de estas versiones están todavía en
producción. En la figura 5.4. nos muestra dicho procesador.
Intel 80286.
La segunda generación de procesadores x86 de 16-bits, Intel 80286, fue lanzado en 1982. La
nueva característica importante del microprocesador 80286 fue el modo protegido. Cuando se
cambia a este modo, la CPU puede direccionar hasta 16 MB de memoria de funcionamiento.
En el modo protegido era posible proteger la memoria y otros recursos del sistema de
programas para usuarios; esta característica es necesaria para la multitarea de programa real.
Hay muchos sistemas operativos que utiliza el 80286 en modo protegido: OS / 2 1.x, Venix,
SCO Xenix 286, y otros. Si bien este modo es útil para sistemas operativos multitarea, es de uso
limitado para los sistemas que requiere la ejecución de los programas existentes x86. El modo
protegido no puede ejecutar varios programas virtualmente, y había otras limitaciones, así:
No había manera rápida y fiable para volver al modo real desde el modo protegido.
Actualmente, el 80286 en modo protegido no sea utilizado por los sistemas operativos x86.
Todos los sistemas operativos modernos de 32 bits son basados en el uso en modo protegido
80386 que fue presentado por la próxima generación de procesadores Intel x86. La figura 5.5
muestra el Intel 80286.
Intel 80376
Intel 80386.
Aunque en este modo la CPU todavía se utiliza la arquitectura del segmento de memoria
similar a la presente en anteriores microprocesadores x86, el tamaño de los segmentos de
memoria se aumentó a 4 GB. Esto simplifica el desarrollo de software de 32-bits, y en la
mayoría de los casos podría ejecutar aplicaciones sin tener que preocuparse acerca de los
segmentos de memoria de conmutación.
Otro nuevo modo en el 80386 de CPU era el modo virtual 8086. En este modo, la CPU puede
ejecutar las aplicaciones que ejecutaba el 8086 mientras que proporciona la protección
necesaria de la memoria y otros recursos. La introducción de este modo y 80386 en modo
protegido se paso muy significativamente. Todos los sistemas operativos de 32 bits basados
en el uso de estos modos de ejecución heredada de 16 bits y para aplicaciones más modernas
de 32 bits.
Intel 80486
El sucesor del procesador del 80386, Intel 80486 (i486) incluyó muchos cambios en la
microarquitectura que resultaron importantes mejoras de rendimiento:
· El tiempo de ejecución de instrucciones se redujo significativamente. Muchos de carga, el
almacenamiento y las instrucciones de la aritmética ejecutado en un solo ciclo (suponiendo
que los datos que ya estaba en la memoria caché).
· Intel 486 destaco en el traslado de información más rápida entre los buses, 1 ciclo de la
CPU en lugar de dos o más ciclos de CPU para el bus 80386.
Los microprocesadores Intel 80486 producía velocidades de hasta 100 MHz. AMD produce aún
más rápido con versiones de 120 y 133 MHz de la 80486, y fabricado en pequeñas cantidades,
de 150 MHz y, posiblemente, versiones de 166 MHz. La figura 5.8. muestra el procesador.
Intel Pentium
Para mejorar la transferencia de datos del tamaño de bus de datos se incrementó a 64 bits.
El tamaño de los datos y los caches L1 de código se duplicó en los procesadores Pentium con
tecnología MMX.
Intel Pentium II
Intel Pentium II como el de la figura 5.10 se basa en la sexta generación de procesadores x86.
La línea de procesadores Intel Pentium II se compone de 6 familias diferentes:
Pentium Pro - versión de alto desempeño. La familia Pentium Pro fue sustituida por la familia
de Pentium II Xeon.
Intel Celeron.
Familia de microprocesadores Pentium III fue una actualización evolutiva de los Pentium II. El
primer núcleo Pentium III, Katmai, presentó el conjunto de instrucciones SSE, que permitió que
las aplicaciones procesaran hasta cuatro números de un solo punto flotante de precisión a la
vez. Otros núcleos de Pentium III añade otras características, como 256 y 512 KB memoria
caché L2 y el menor tamaño del paquete. Durante su vida, el núcleo de los microprocesadores
Pentium III fue reducido en dos ocasiones de 0,25 micras a 0,18 micras, y luego a 0,13
micrones.
Al igual que la generación anterior de procesadores x86, la familia de Pentium III consta una
familia de los cuales están:
Mobile Pentium III y Pentium III Mobile M.- Versiones móviles del procesador Pentium III.
Mobile Celeron - Versión móvil del bajo costo del procesador Pentium IV.
Procesador Descripción
8080 Era una maquina de 8 bits, con datos de memoria de 8
bits
8086 Una maquina de 16 bits, mucho más potente. Además de
un camino de datos más ancho y registros más grandes,
el 8086 tenía un cache de instrucción, o cola, que pre
captaba algunas instrucciones antes de ser ejecutadas.
80286 Esta ampliación del 8086 permitía redireccionar una
memoria de 16MBytes en lugar de un solo Mbyte.
80386 Fue la primera maquina de Intel con 32 bits, y constituyo
una gran revisión del modelo anterior. Con una
arquitectura de 32 bits, el 80386 rivalizaba en complejidad
y potencia con los minicomputadores y grandes
computadores introducidos en el mercado pocos años
antes.
80486 El 80486 introduce el uso de tecnología de cache mucho
mas sofisticada y potente, e instrucciones de
segmentación de cauce sofisticadas.
Pentium En el Pentium, Intel introduce el uso de técnicas súper
escalares, que permiten que varias instrucciones se
ejecuten en paralelo.
Pentium En el Pentium Pro continuo la tendencia iniciada con el
Pro Pentium hacia la organización súper escalar, con el uso
agresivo del renombrado de registros, predicción de
ramificaciones, análisis del flujo de datos y ejecución
especulativa.
Pentium II En el Pentium II se incorporo la tecnología Intel MMX, que
se diseño específicamente para procesar de forma
eficiente datos de video, audio y gráficos.
Pentium III El Pentium III incorpora instrucciones adicionales en punto
flotantes para procesar software de gráficos 3D.
Merced Esta nueva generación de procesadores Intel usa
organización de 64 bits.
Registro de propósito general
Los registros de propósito general AX, BX, CX y DX son los caballos de batalla del sistema. Son
únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un
byte. El último byte de la izquierda es la parte “alta”, y el último byte de la derecha es la parte
“baja”. Por ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y usted
puede referirse a cualquier parte por su nombre.
GPR
Registro AX: El registro AX, el acumulador principal, es utilizado para operaciones que implican
entrada/salida y la mayor parte de la aritmética. Por ejemplo, las instrucciones para
multiplicar, dividir y traducir suponen el uso del AX. También, algunas operaciones generan
código más eficiente si se refieren al AX en lugar de a los otros registros.
Registro BX: El BX es conocido como el registro base ya que es el único registro de propósito
general que puede ser índice para direccionamiento indexado. También es común emplear el
BX para cálculos.
Registro CX: El CX es conocido como el registro contador. Puede contener un valor para
controlar el número de veces que un ciclo se repite o un valor para corrimiento de bits, hacia la
derecha o hacia la izquierda. El CX también es usado para muchos cálculos.
Registros apuntadores.
Los registros apuntadores están asociados con el registro SS y permiten al procesador
accesar datos en el segmento de pila los registros apuntadores son dos:
El registro SP
El registro BP
Registro SP.
El apuntador de pila IP de 16 bits esta asociado con el registro SS y proporciona un valor de
desplazamiento que se refiere a la palabra actual que esta siendo procesada en la pila.
El ejemplo siguiente el registro SS contiene la dirección de segmento 27B3[0]H y el SP el
desplazamiento 312H Para encontrar la palabra actual que esta siendo procesada en la pila
el microprocesador combina las direcciones en el SS y el PP:
Dirección de segmento en el registro SS: 27B30H
Desplazamiento en el registro SP: + 312H
Dirección en la Pila: 27E42H
…….
27B3[0]H 312H
Dirección del segmento SS Desplazamiento del SP
Registro BP.
El registro BP de 16 bits facilita la referencia de parámetros, los cuales son datos y
direcciones transmitidos vía lapida.
Registro índice.
Los registros SI y DI están disponibles para direccionamientos indexados y para sumas y
restas. Que son la operaciones de punta.
Registro SI.
El registro índice de 16 bits es requerido por algunas operaciones con cadenas (de
caracteres). En este contexto, el SI está asociado con el registro DS. Los procesadores
80386 y posteriores permiten el uso de un registro ampliado a 32 bits, el ESI.
Registro DI.
El registro índice destino también es requerido por algunas operaciones con cadenas de
caracteres. En este contexto, el Di está asociado con el registro ES. Los procesadores 80386
y posteriores permiten el uso de un registro ampliado a 32 bits, el EDI.
Registro de Segmento
Registro CS.
El DOS almacena la dirección inicial del segmento de código de un programa en el registro
CS. Esta dirección de segmento, mas un valor de desplazamiento en el registro de apuntado
de instrucción (IP), indica la dirección de una instrucción que es buscada para sí ejecución.
Para propósito de programación normal, no e necesita referenciar el registro CS.
Registro DS.
La dirección inicial de un segmento de datos de programa es almacenada en el registro DS.
En términos sencillos, esta dirección, mas un valor de desplazamiento en una instrucción,
genera una referencia a la localidad de un bytes especifico en el segmento de datos.
Registro SS.
El registro SS permite la colocación en memoria de una pila,
para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de
inicio del segmento de pila de un programa en el registro SS. Esta dirección de segmento,
más un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la
palabra actual en la pila que está siendo direccionada. Para propósitos de programación
normal, no se necesita referenciar el registro SS.
Registro ES
Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta
de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES
esta asociado con el registro DI (índice) . un programa que requiere el uso del registro ES
puede inicializarlo con una dirección apropiada.
Registros FS y GS.
Son registros extra de segmento en los procesadores 80386y posteriores a estos
procesadores.
Registro de Bandera
Registro de bandera.
Los registros de banderas sirven parar indicar el estado actual de la maquina y el resultado
del procesamiento, Cuando algunas instrucciones piden comparaciones o cálculos
aritméticos cambian el estado de las banderas.
Las banderas están en el registro de banderas en las siguientes posiciones:
bits 15 14 13 12 11 10 9 8 7 6 5
4321
O D I T S Z A P C
Bandera
Las banderas mas comunes son las siguientes:
OF (Over flow flag, desbordamiento).
Indica el desbordamiento de un bit de orden alto (mas a la izquierda) después de una
operación aritmética.
DF (Direction flag, Direccion).
Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas
de caracteres.
IF (Interruption flag, Interrupcion).
Indica que una interrupción externa, como la entrada desde el teclado sea procesada o
ignorada.
TF (Trap flag, Trampa).
Examina el efecto de una instrucción sobre los registros y la memoria.
Los programas depuradores como DEBUG, activan esta bandera de manera que pueda
avanzar en la ejecución de una sola interrupción a un tiempo.
SF (Sign flag, Signo).
Contiene el signo resultante de una operación aritmética (0=positivo y 1= negativo).
ZF (Zero flag, Zero).
Indica el resultado de una operación aritmética o de comparación (0= resultado diferente
de cero y 1=resultado igual a cero).
AF (Auxiliary carry flag, Acarreo auxiliar).
Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmética especializada
PF (Parity flag, Paridad).
Indica paridad par o impar de una operación en datos de ocho bits de bajo orden (mas a la
derecha).
CF (Carry flag, Acarreo).
Contiene el acarreo de orden mas alto (mas a la izquierda) después de una operación
aritmética; también lleva el contenido del ultimo bit en una operación de corrimiento o
rotación.
Lenguaje de Ensamblador
Mov: mueve el valor de un registro o un numero hacia otro registro ejemplo mov Bx,5, movAX,
bx.