Evolución de los Microprocesadores (Caso Intel)

El microprocesador INTEL 8086

 

Indique cada uno de los siguientes elementos:

 

Registros de propósito general:

Registro de segmentos:

 

Modos de Direccionamiento:

 

 

Cual sería la dirección  para la siguiente condición:  DS = 3000HEX, Base = 4000HEX,
DI = 20HEX y offset = 6 HEX

 

Ejemplos de Programación con el 8086:

 Transferencia de un bloque de datos de un segmento de memoria a otro:

 

MOVI DI, 0030

MOVI CX, 0400

Siga      MOVB AH, [SI]

            MOVB [DI], AH

            INC SI

            INC DI

            LOOP siga

 

La instrucción LOOP decrementa automáticamente CX y salta a siga mientras CX sea diferente de cero.

 

Este programa se puede simplificar sustituyendo lo que esta en verde por lo que está en azul así:

MOVI SI, 0F30

MOVI DI, 0030

MOVI CX, 0400

REP

MOVC

 

La instrucción REP indica que se debe repetir la instrucción que le sigue (en este caso MOVC) tantas veces como lo permita el contador CX (el cual se decrementa automáticamente).

La instrucción MOVC mueve un byte entre la dirección dada por SI hasta la dirección dada por DI.

 

El siguiente programa permite multiplicar dos octetos, donde el multiplicando se encuentra en la dirección dada por SI y el multiplicador en la dirección dada por DI:

MOVI AL, [DI]

MOVI DL, [SI]

MULB DL

MOVI [DI], AL

MOVI [DI+1], AH

 

La instrucción MULB permite multiplicar dos octetos donde uno debe estar en el acumulador y el resultado lo guarda automáticamente en el acumulador.

 

Concepto de Multiprogramación

 El 8086 introduce el concepto de multiprogramación

 Reloj: 5 – 10 MHZ

Ancho del Bus:  16 bits

Capacidad de memoria:  1 Mbyte (20 líneas de dirección)

 

Este procesador trabaja con segmentos capaces de direccionar hasta  64Kbytes y posee cuatro registros para direccionar los segmentos llamados ES, CS, DS y SS.  Con estos cuatro registros se tiene un área de trabajo de 4*64 K = 256K ( lo cual incluye pila, programa, datos y un segmento extra para cualquiera de los anteriores). Este es el área de trabajo de un programa. En 1 Mbyte se tienen hasta 4 áreas de trabajo de 256K. Esto permitiría que cuatro programas se estén ejecutando a la vez sin competir por el área de trabajo, ya que para cada programa se tendría un espacio de memoria útil de 256K. Esto se conoce como multiprogramación. 

 Cada segmento esta caracterizado por una dirección base y un desplazamiento. El registro de segmento da la dirección base y el desplazamiento es dado por la suma del contenido de uno o más de los otros registros (BX, BP, SI, DI o un desplazamiento).

 

Concepto de Memoria Virtual

 El 80286 introduce el concepto de memoria virtual dentro de la familia intel.

Reloj: 6 – 12.5 MHZ

Ancho del Bus:  16 bits

Capacidad de memoria:  16 Mbytes (24 líneas de dirección)

De 3 a 6 veces el desempeño del 8086.

Memoria virtual: 1 Gigabyte.

 Incrementa el número de segmentos (4 en el 8086), pero cada segmento no deja de ser de 64Kbytes. Para ello utiliza un selector del segmento de 16 bits.

 La memoria virtual hace parecer que tiene una capacidad de manejo de 1 Gigabyte por usuario o tarea (hasta 4 usuarios). Esta memoria virtual está en el disco duro, la cual debe dividirse en 64 grandes segmentos de 16 Mbytes para almacenarse en la memoria RAM con lo que tenemos una razón de aciertos de 64:1, dividida en segmentos de 64Kbytes.

Esta razón de aciertos se mejora con los siguientes factores: 

  • Existe una tabla de referencia en la memoria que le permite identificar los segmentos y su asignación de la memoria virtual dentro de la memoria real, dentro de la cual se establecen prioridades (de forma que por ejemplo la información del sistema operativo tiene prioridad sobre una aplicación)
  • En el caso del segmento de programa, cuando este se reemplaza no es necesario guardar el que está en memoria ya que este no ha sido modificado.
  • Existe una bandera para saber si un segmento ha sido modificado, en caso contrario se reemplaza sin necesidad de guardar el anterior.
  • Existe una bandera que indica si el segmento buscado esta en la RAM o hay que buscarlo en el disco duro y otro que indica si es un segmento de datos o programa.

wpe17.jpg (14661 bytes)

 

Como se ve el selector permite indexar la tabla de segmentos, para obtener la dirección base del segmento y luego sumarle el desplazamiento (Offset).

Si el segmento no se encuentra en la RAM se busca en el disco duro donde está la memoria virtual.

 

Veamos a continuación el diagrama de bloques del 80286

 

 

La unidad de gestión de memoria (MMU)

 El 80386 introduce el concepto de Unidad de Gestión de Memoria (MMU) dentro de la familia Intel.

 

Reloj: 16 – 33 MHZ

Ancho del Bus:  32 bits

Capacidad de memoria:  4 Gbytes (32 líneas de dirección)

Memoria virtual: 64 Terabyte (1 Terabyte = 1024 Gbytes).

 

 Diagrama de bloques del 80386:

 

El microprocesador 80386 consiste de dos procesadores: el CPU y el MMU

 

La Unidad de Ejecución del CPU consiste de:

  • Register File: 8 registros de propósito general (acumuladores) de 32 bits
  • Multiply /Divide: Algoritmos para la lógica de multiplicación o división.
  • Barrel shifter, adder: La ALU encargada de calcular tanto direcciones como operaciones.

 

La unidad de instrucciones: Encargada de interpretar las instrucciones con una cola de instrucciones de 16 bytes y una cola de tres instrucciones ya decodificadas.

 

 Unidad de Gestión de Memoria (MMU):  La memoria física puede tener uno o más segmentos de longitud variable de hasta 4 Gbytes. El manejo de los segmentos se da a través de una memoria virtual de hasta 64 terabytes, por medio de la Unidad de Segmentación (Dirección Lógica). La razón de aciertos de 16384:1.

Cada segmento se divide en 1 o más páginas de 4 kbytes. La Unidad de Paginación maneja la memoria física bajo un esquema de páginas (bloques fijos de 4 kbytes asignados a regiones fijas dentro de la memoria física).

 

  • En el caso de una página correspondiente a un programa, cuando este se reemplaza no es necesario guardar el que está en memoria ya que este no ha sido modificado.
  • Existe una bandera para saber si una página ha sido modificada, en caso contrario se reemplaza sin necesidad de guardar el anterior.
  • Existe una bandera que indica si la página buscada esta en la RAM o hay que buscarlo en el disco duro y otro que indica si es una página de datos o programa.

 

La memoria virtual hace parecer que tiene una capacidad de manejo de 64 Terabytes o 16,384 segmentos de hasta 4 Gbytes por usuario o tarea. Esta memoria virtual se encuentra en el disco duro.

La unidad de Segmentación posee 6 segmentos de acceso directo (Segment Registers que se encuentran dentro del Descriptor Register), uno para programa, otro para pila y los cuatro restantes para datos donde cada uno puede tener un tamaño máximo de 4 Gbytes. Estos segmentos también sirven como índices para manejar la memoria virtual.

wpe18.jpg (18397 bytes)

 

 

La memoria cache y la unidad en punto flotante dentro del CPU

 El 80486 introduce el concepto de Cache en nivel 1 y la Unidad de Punto Flotante (FPU) dentro de la familia Intel.

 

Reloj: 25 – 50 MHZ

Ancho del Bus:  32 bits

Capacidad de memoria:  4 Gbytes (32 líneas de dirección)

Memoria virtual: 64 Terabyte (1 Terabyte = 1024 Gbytes).

 

Diagrama de bloques del 80486:

 

El concepto de multiprocesamiento en un CPU

 El Pentium introduce el concepto de multiprocesamiento dentro de la familia Intel.

 

Reloj: 60MHZ – 1 GHZ (Pentium III)

Ancho del Bus:  64 bits

Capacidad de memoria:  4 Gbytes (32 líneas de dirección)

Memoria virtual: 64 Terabyte (1 Terabyte = 1024 Gbytes).

Como mínimo 5 veces el desempeño del 80486

 

Algunas características importantes que agrega el Pentiumn son:

 

  • En busca de lograr el multiprocesamiento posee dos unidades de instrucciones (U y V) en paralelo (pipeline). Esto permite ejecutar dos instrucciones a la vez (si estas no son en punto flotante, ya que solo la unidad U puede trabajar con la FPU).
  • La unidad en punto flotante fue rediseñada con lo que se logro que fuera hasta 10 veces más rápida que la del 80486.
  • Se dispone de dos memorias cache de nivel 1, una para datos y otra para instrucciones. Esta memoria va de 8Kbytes para el primer Pentium hasta 16Kbytes para las versiones posteriores.

 

Con el Pentium II

·        Se aumento la capacidad de memoria direccionable de 4 a 64  Gigabytes (46 líneas de dirección)

·        Se cambió el tamaño de las páginas para ser de  4 Kbytes o 4 Mbytes

·        Se permite el procesamiento paralelo simétrico (multiprocesamiento) para dos procesadores juntos (DP Logic)

·        Se agrega el APIC (controlador de interrupciones programable) para manejar interrupciones con multiprocesadores.

·        Se agrego la unidad MMX (Matrix Math extension) basada en la tecnología SIMD (Single Instruction Multiple Data) que permite aumentar el desempeño sobre una gran gama de aplicaciones de multimedia y comunicaciones. Con esta tecnología se incluyen nuevos tipos de instrucciones y datos  que mejoran los algoritmos utilizados para estas aplicaciones. Estas aplicaciones incluyen video MPEG, sintetización de música, compresión de voz, reconocimiento de voz, procesamiento de imágenes, gráficos 3D, video conferencias, aplicaciones de modems y audio.

 

El Pentium III incluye además de su memoria cache de nivel 1, una memoria cache de nivel 2 desde 256 Kbytes hasta 2 Mbytes con un bus dedicado de 256 bits entre el procesador y la memoria cache de nivel 2.

 

 

 


Revisión del tema:

  

1.      Algunas características del Celeron de INTEL son:

1.1.    Cache nivel 2 de 128 Kbytes

1.2.    No permite multiprocesamiento (solo funciona con un CPU)

1.3.   Utiliza un emcapsulamiento económico

1.4.   Trabaja con un bus de 66 Mhz (Pentium III trabaja con un bus de 100 Mhz)

1.5.   Su capacidad de direccionamiento es de 4 Gbytes

1.6.    Posee MMX

Bajo que circunstancias recomendaría utilizar un Celeron: _______________
_________________________________________________(Justifique su respuesta).

2.      ¿Cuál fue la principal(es) contribución(es) a la tecnología de los siguientes procesadores:

2.1.    80286:__________________________________________________

2.2.    80386:__________________________________________________

2.3.    80486:__________________________________________________

2.4.    Pentium: ________________________________________________

3.      Investigue sobre los últimos aportes que se han hecho en la tecnología de los microprocesadores con respectos a los revisados en este documento.

4.      ¿Cuál es la ventaja de utilizar la paginación dentro del concepto de memoria virtual?
__________________________________________________________

5.      Explique los siguientes términos:

5.1.   Multiprogramación:_________________________________________

5.2.   Multiprocesamiento: ________________________________________

5.3.   Arquitectura pipeline; _______________________________________

5.4.   Procesamiento simétrico: ____________________________________

5.5.   Multitarea: _______________________________________________

5.6.   Dirección lógica: __________________________________________

5.7.   Memoria Virtual: __________________________________________

5.8.   MMU: ___________________________________________________

5.9.   MMX: ___________________________________________________

Hosted by www.Geocities.ws

1