Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Arquitectura de Computadoras: Registros, Ciclo de Instrucción y Modos de Direccionamiento, Apuntes de Arquitectura de ordenadores

Estructura y Funcionamiento de la CPU

Tipo: Apuntes

2019/2020

Subido el 29/10/2020

hugo-lucio
hugo-lucio 🇲🇽

2 documentos

1 / 14

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Historia del 8086
En junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits: el
8086. El primer fabricante que desarrolló software y hardware para estos chips fue
la propia Intel. Reconociendo la necesidad de dar soporte a estos circuitos
integrados, la empresa invirtió 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 que, como se explicó anteriormente, son computadoras
autosuficientes con el hardware y software necesario para desarrollar software de
microprocesadores.
¿Como está organizado el procesador?
El 8086 tiene internamente dos componentes, la Unidad de Interfaz del Bus y la
Unidad de ejecución (Bus Interface Unit (BIU) y Execution Unit (EU)).
La Unidad de Ejecución procesa las instrucciones del CPU. Está conformada por
los registros generales, los registros índice y apuntadores, los flags, la unidad
aritmético lógica, y la lógica de control que maneja todo el proceso para ejecutar
las instrucciones.
La Unidad de Interfaz del Bus maneja la lectura y escritura desde y hacia la
memoria y los puertos de entrada/salida. Está conformada por los registros de
segmento, una cola de 6 bytes en el 8086, y lógica para controlar los buses
externos del microprocesador.
En la figura 1, la Unidad de Ejecución se encuentra en la parte de abajo y la
Unidad de Interfaz del Bus está en la parte superior. Las dos están
interconectadas mediante un bus interno.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Vista previa parcial del texto

¡Descarga Arquitectura de Computadoras: Registros, Ciclo de Instrucción y Modos de Direccionamiento y más Apuntes en PDF de Arquitectura de ordenadores solo en Docsity!

Historia del 8086 En junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits: el

  1. El primer fabricante que desarrolló software y hardware para estos chips fue la propia Intel. Reconociendo la necesidad de dar soporte a estos circuitos integrados, la empresa invirtió 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 que, como se explicó anteriormente, son computadoras autosuficientes con el hardware y software necesario para desarrollar software de microprocesadores. ¿Como está organizado el procesador? El 8086 tiene internamente dos componentes, la Unidad de Interfaz del Bus y la Unidad de ejecución (Bus Interface Unit (BIU) y Execution Unit (EU)). La Unidad de Ejecución procesa las instrucciones del CPU. Está conformada por los registros generales, los registros índice y apuntadores, los flags, la unidad aritmético lógica, y la lógica de control que maneja todo el proceso para ejecutar las instrucciones. La Unidad de Interfaz del Bus maneja la lectura y escritura desde y hacia la memoria y los puertos de entrada/salida. Está conformada por los registros de segmento, una cola de 6 bytes en el 8086, y lógica para controlar los buses externos del microprocesador. En la figura 1, la Unidad de Ejecución se encuentra en la parte de abajo y la Unidad de Interfaz del Bus está en la parte superior. Las dos están interconectadas mediante un bus interno.

Diagrama de bloque de los microprocesadores Intel 8086

  1. Bloque de registros de propósito general.
  2. Bloque de registros de segmento y registro IP.
  3. Sumador de direcciones.
  4. Bus de direcciones interno.
  5. Cola de instrucciones (6 bytes para el 8086).
  6. Unidad de control (muy simplificada).
  7. Interfaz del bus.
  8. Bus de datos interno.
  9. Unidad aritmético lógica (ALU).
  10. , 11, 12 Bus de direcciones, datos y control externos.

Registros de control y de estado Se utilizan para controlar las operaciones del procesador, la mayor parte de estos registros no son visibles al usuario y algunos pueden ser accesibles a las instrucciones de maquina ejecutadas en un modo de control. Los registros utilizados son los siguientes:  Registro de direcciones de memoria (MAR): el cual contiene la dirección en donde se efectuará la próxima lectura o escritura de datos. El número de direcciones depende del tamaño de la MAR.  Registro de datos de memoria (MBR): contiene los datos que van a ser escritos en la memoria o los que fueron leídos en ella.  Registro de direcciones de entrada y salida (I/O AR): especifica al dispositivo ya sea de entrada o salida  Registro de datos de entrada y salida (I/O BR): es un área temporal en donde se lleva a cabo el intercambio de datos entre el procesador y el dispositivo de entrada y salida que esta especificado en IOAR.  Registro de instrucciones (IR): contiene la dirección de la siguiente instrucción que se va a ejecutar.

Palabras de estado del programa (PSW): contiene códigos de condición junto con otras informaciones de estado como el signo, acarro, desbordamiento, entre otras. Atmega328p Es un chip microcontrolador creado por Atmel y pertenece a la serie megaAVR. AVR es una arquitectura basada en RISC (Computadora con conjunto de instrucciones reducidas), recordemos que la arquitectura de un microprocesador o microcontrolador, detalla la estructura interna del mismo y como se conforma la distribución, acceso y control de los diversos bloques que componen al microcontrolador.

pic16f84f Ciclo de instrucción fetch-decode-excute El encargado de ejecutar un programa en una computadora u otro sistema computacional es el CPU, lo realiza siguiendo el llamado ciclo Fetch Decode Execute, con este ciclo se ejecutan todas las tareas que una computadora puede realizar. Este ciclo tiene algunas variantes y conforme ha avanzado el tiempo y la tecnología ha sufrido algunos cambios, pero el ciclo básico se conforma de las siguientes etapas:  Traer la instrucción: Se obtiene la instrucción desde memoria y se almacena en el registro del CPU para instrucciones.  Decodificar la instrucción: Se identifica el modo de direccionamiento de la instrucción y la ubicación de los datos a tratar, ya sea de memoria, registro o instrucción directamente.  Carga de Parámetros: Se ejecuta la lectura, cargando todos los datos identificados en el paso anterior.  Ejecutar: Se ejecuta la instrucción ya configurada, realiza la tarea indicada, ya sea una suma, resta, almacenar información, extraer información etc.  Almacenar: Se almacena el resultado obtenido de ejecutar la instrucción, por ejemplo, el resultado de una suma o un índice (Número) como resultado de éxito de almacenar u obtener información de un archivo, entre otros.  Actualizar PC: Esta etapa es la de actualizar el registro PC (Program Counter) que contiene la siguiente dirección a ejecutar. Evidentemente al ser un ciclo estas etapas se repiten constantemente durante el funcionamiento de la computadora. Se debe considerar que el ciclo expuesto anteriormente es muy básico. Como se mencionaba hoy en día estos ciclos han tenido algunas alteraciones y optimizado de gran manera, como se sabe los sistemas de hoy en día son multitareas, lo cual conlleva a una alteración en este ciclo, además de las diferentes técnicas para

reducir el tiempo de ejecución de instrucciones con temas de concurrencia y paralelismo en los procesadores modernos. El ciclo expuesto nos muestra un poco la forma en la que las computadoras funcionan, todo el proceso que conlleva ejecutar una instrucción que puede parecer muy simple, además este ciclo básico permite darse una idea de cómo ha evolucionado los procesadores y las técnicas para reducir el tiempo de ejecución dado que los sistemas actuales ejecutan de forma simultánea muchas veces este ciclo, siendo este modificado y más eficiente. segmentaciones de instrucciones consiste en dividir el ciclo de ejecución de las instrucciones en un conjunto de etapas. Estas etapas pueden coincidir o no con las fases del ciclo de ejecución de las instrucciones. Los dos pasos se llaman ciclo de lectura (fetch) y ciclo de ejecución (execute). La ejecución del programa se detiene sólo si se apaga la máquina, ocurre algún tipo de error irrecuperable o se encuentra una instrucción en el programa que detiene el computador.

Son necesarias nueve etapas para ejecutar las tres instrucciones. Son necesarias cinco etapas para ejecutar las tres instrucciones. Se ha reducido el tiempo total que se tarda en ejecutar las tres instrucciones, pero no el tiempo que se tarda en ejecutar cada una de las instrucciones. Conjunto de instrucciones Características Los conjuntos de instrucciones de las máquinas deben tender a poseer una serie de propiedades, bastante ideales e imprecisas, que pueden resumirse en las siguientes:  El conjunto de instrucciones de un computador debe ser completo en el sentido de que se pueda construir un programa para evaluar una función computable usando una cantidad de memoria razonable y empleando un tiempo moderado, es decir, el número de instrucciones de ese programa no debe ser demasiado elevado.  Los juegos de instrucciones también tienen que ser eficientes, esto significa que las funciones más necesarias deben poder realizarse usando pocas instrucciones.

 El conjunto de instrucciones de una máquina debe ser regular, es decir debe ser simétrico (por ejemplo, si existe una instrucción de desplazamiento a la izquierda, debe haber otra de desplazamiento a la derecha, etc.) y ortogonal, es decir, deben poder combinarse, en la medida de lo posible, todas las operaciones con todos los tipos de datos y modos de direccionamiento.  En muchas ocasiones, también se le debe exigir a un computador que su juego de instrucciones sea compatible con modelos anteriores. Tipos de Instrucciones Instrucciones de transferencia de datos La operación de copiar datos de un lugar a otro es la operación más simple y a la vez importante. Las palabras mover o cargar que aparecen en los juegos de instrucciones de muchos ordenadores pueden dar lugar a confusión porque no se trata de mover o cargar sino de copiar Existen algunas variantes de instrucciones de transferencia de datos que difieren de la idea anterior de copiar informaciones de un lugar a otro. Por ejemplo, la instrucción POP saca un dato de la cima de pila modificando el valor del apuntador de pila, lo que significa que, si bien no destruye físicamente el dato fuente, anula su validez. Por otro lado, la mayoría de las máquinas también disponen de instrucciones de intercambio (SWAP). En general, el dato a transferir podríamos definirlo como una terna con las siguientes componentes:  Dirección  Tipo  Valor Instrucciones aritméticas y lógicas Todos los ordenadores incorporan instrucciones aritméticas en sus juegos de instrucciones; la utilidad de este tipo de operaciones es evidente y no la

  1. Modos de direccionamiento de la memoria de programa.
  2. Modos de direccionamiento de la memoria de datos. Modos de direccionamiento de la memoria de programa En la búsqueda de una instrucción, su dirección se obtiene sumando el desplazamiento, contenido en el IP, al valor del registro de segmento CS, multiplicado por 16. Normalmente al terminar la ejecución de una instrucción, el IP se incrementa, con lo que se pasa a direccionar la siguiente instrucción. Las instrucciones de salto y salto a subrutinas pueden modificar el contenido de IP de tres formas diferentes:  Por direccionamiento relativo. Al contenido del IP se suma, de forma inmediata, un desplazamiento de 8 a 16 bits, con signo, proporcionado por la misma instrucción.  Por direccionamiento directo. Se carga, en el IP, una nueva dirección presente en la instrucción.  Por direccionamiento indirecto. El dato, obtenido por cualquiera de las formas de direccionado de la memoria de datos, es interpretado por las instrucciones de salto, como la dirección a la que se debe saltar. Modos de direccionamiento de la memoria de datos.  Modo inmediato. El operando se proporciona en el byte o bytes que siguen al código de operación de la instrucción. Ejemplo: ADD CX,385Fh  Modo de direccionado por registro. Un registro, definido por la instrucción, contiene el operando. Ejemplo: ADD CX,AX  Modo directo. El byte o par de bytes que siguen al código OP de la instrucción dan el desplazamiento de 8 ó 16 bits, que, sumado al contenido del registro DS, determina la dirección efectiva en la que se encuentra el dato a transferir. Ejemplo: ADD CL,TABLA

 Modo directo indexado. El byte o par de bytes que siguen al código OP representan un desplazamiento que se suma al contenido de uno de los registros índice (DI o SI). El contenido de DS se añade al resultado de la suma, con lo que se obtiene la dirección del operando. Incrementando o decrementando los registros índices, se puede acceder a posiciones de memoria consecutivas. Ejemplo: ADD CX, [SI+4]  Modo indirecto. La dirección del operando es el contenido de uno de los siguientes registros: BP, BX, DI o SI. Ejemplo: ADD CX, [BX]  Por registro base indexado. El desplazamiento que ha de sumarse a un registro segmento se halla sumando el contenido de un registro índice y un desplazamiento de 8 ó 16 bits, contenido en la instrucción, al contenido de un registro base. Ejemplo: MOV AX,TABLA[BX][SI]  Modo relativo a base: El byte o par de bytes que siguen al código OP representan un desplazamiento que se suma al contenido de uno de los registros base (BX o BP). El contenido de DS se añade al resultado de la suma, con lo que se obtiene la dirección del operando. Ejemplo: MOV AX, [BP]+