jueves, 20 de noviembre de 2014

2.4 Casos de estudio de CPU reales.

I-8086
Los modos de direccionamiento del 8086 (Crawford & Gelsinger, 1987) son muy irregulares. Los registros del procesador, se usan para contener los datos con que se está trabajando puesto que el acceso a los registros es mucho más rápido que los accesos a memoria. Se pueden realizar operaciones aritméticas y lógicas, comparaciones, entre otras.
Hay un campo para un registro (reg), que especifica uno de los operandos, y otros dos campos (mod y r/m) para el otro.
Los modos del 8086 son indirectos por registro, indexados o directos por registro.

Registros Propósito General:
  • Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican entrada/salida, y multiplicación y división (estas dos últimas en conjunto con el registro DX)
  • Registro BX: El registro BX es el registro base, y es el único registro de propósito general que puede ser un índice para direccionamiento indexado
  • Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar el número de veces que un ciclo se repite.
  • Registro DX: El registro DX es el registro de datos.
Registros Índice:
  • Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas de caracteres.
  • Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres.
Registros Apuntadores:
  • Registro SP: Apuntador de pila de 16 bits proporciona un valor de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila.
  • Registro BP: El apuntador base de 16 bits facilita la referencia de parámetros dentro de la pila.

Motorola 68000
En el Motorola 68000 el mismo direccionamiento lleva implícito el tipo de registro sobre el que trabaja (direcciones o datos). Está basado en dos bancos de 8 registros de 32 bits. Un banco es de datos (Dn) y el otro de punteros (An). Además contiene un contador de programa de 32 bits y un registro de estado de 16 bits. Los registros de datos (D0 a D7) se pueden usar como registros de 32 bits (.l), 16 bits (.w) y 8 bits (.b). Cualquiera de ellos puede usarse como acumulador, índice o puntero.
Acepta los siguientes modos de direccionamiento:
  • Implícito (o inherente).
  • Inmediato.
  • Absoluto.
  • Directo a registro.
  • Indirecto.
  • Relativo a PC con desplazamiento.
  • Relativo a PC con índice y desplazamiento.

80386
La CPU está compuesta por la unidad de ejecución y la unidad de instrucciones. La unidad de ejecución contiene los ocho 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 utiliza para acelerar las operaciones de desplazamiento, rotación, multiplicación y división. Para este microprocesador existe un modo nuevo que requiere un byte adicional denominado SIB (escala, índice, base) que se añade al byte de operandos y cuyo formato es el siguiente: Ese byte adicional especifica un factor de escala y dos registros (base e índice).
El 80386 tiene registros de 32 bits en las siguientes categorías:
  • Registros de propósito general.
  • Registros de segmento.
  • Puntero de instrucciones
  • Indicadores.
  • Registros de control (nuevos en el 80386).
  • Registros de direcciones de sistema.
  • Registros de depuración (debug) (nuevos en el 80386).
  • Registros de test (nuevos en el 80386).

Procesador I3
Línea de microprocesadores Intel, gama baja. 3 era generación 2010.
Características:
  • Procesador de 2 núcleos
  • 4 hilos de procesamiento en paralelo
  • Tarjeta gráfica integrada
  • Controlador de memoria
  • Controlador PCI Express 2.0 integrado
Modos de direccionamiento y formatos
Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte.
  • Direccionamiento Implícito: En este modo de direccionamiento no es necesario poner ninguna dirección de forma explícita, ya que en el propio código de operación se conoce la dirección del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operar.
  • Direccionamiento Inmediato: En este modo el operando es especificado en la instrucción misma. En otras palabras, una instrucción de modo inmediato tiene un campo de operando en vez de un campo de dirección. El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operación especificada en la instrucción. Las instrucciones de modo inmediato son útiles para inicializar los registros en un valor constante. Cuando el campo de dirección especifica un registro del procesador, la instrucción se dice que está en el modo de registro.
  • Direccionamiento Directo: El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando. En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual.
  • Direccionamiento Indirecto: El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.
  • Direccionamiento Absoluto: El campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción.
  • Direccionamiento Relativo: El registro referenciado implícitamente es el contador de programa. El campo de direcciones se trata como un número en complemento a 2, y representa un desplazamiento relativo al PC.
  • Direccionamiento con registro base: En este direccionamiento el registro referenciado contiene una dirección de memoria y el campo de dirección contiene un desplazamiento desde dicha dirección.
  • Direccionamiento indexado: El campo de direcciones referencia una dirección de memoria principal, y el registro referenciado contiene  un desplazamiento positivo desde esa dirección. En el indexado se considera que el campo de direcciones es una dirección de memoria.
  • Direccionamiento autoincrementa: En este método, la dirección del  operando se encuentra en un registro y éste es incrementado después de acceder al operando, en el tamaño del mismo
  • Direccionamiento autodecrementa: En este modo para obtener la dirección del operando hay que decremento un registro en el tamaño del operando;  el nuevo contenido del registro después de efectuar esa operación es la dirección del operando.

Casos de estudio Reales de CPU
I-8086: Los registros del procesador, se usan para contener los datos con que se está trabajando puesto que el acceso a los registros es mucho más rápido que los accesos a memoria. Se pueden realizar operaciones aritméticas y lógicas, comparaciones, entre otras. Los modos del 8086 son indirectos por registro, indexados o directos por registro.
Motorola 68000: El mismo direccionamiento lleva implícito el tipo de registro sobre el que trabaja (direcciones o datos). Está basado en dos bancos de 8 registros de 32 bits. Un banco es de datos (Dn) y el otro de punteros (An). Además contiene un contador de programa de 32 bits y un registro de estado de 16 bits.
80386: Para este microprocesador existe un modo nuevo que requiere un byte adicional denominado SIB (escala, índice, base) que se añade al byte de operandos, es útil para direccionar elementos de vectores de longitudes diferentes en bucles. Es una alternativa a los modos autoindexados que esta máquina no soporta.

No hay comentarios.:

Publicar un comentario