Arquitectura de Computadoras

Roberto Yair Tellez


Temario

Unidad 2

2.1 Organización del procesador.

2.2 Estructura de registros.

2.2.1 Registros visibles para el usuario.

2.2.2 Registros de control y de estados.

2.2.3 Ejemplos de registros de CPU reales. 2.3 El ciclo de instrucción.

2.3.1 Ciclo Fetch-Decode-Execute.

2.3.2 Segmentación de instrucciones.

2.3.3 Conjunto de instrucciones. Características y funciones.

2.3.4 Modos de direccionamiento.

2.4 Casos de estudio de CPU reales.


Introducción


Unidad 1


Unidad 3


Unidad 4


Bibliografía


Estructura y funcionamiento de la Unidad Central de Procesamiento

Organización del procesador

La Unidad de Procesamiento (CPU) controla el funcionamiento del computador y lleva a cabo sus funciones de procesamiento de datos. Frecuentemente se le llama procesador.
Un procesador, incluye tanto registros visibles por el usuario como registros de control/estado. Los registros visibles por el usuario pueden ser de uso general o tener una utilidad especial, mientras que los registros de control y estado se usan para controlar el funcionamiento del procesador, un claro ejemplo es el contador de programa.


Estructura de registros

Los registros se emplean para controlar las instrucciones en ejecución, manejar direccionamiento de memoria y propiciar la capacidad aritmética.
Los registros vienen de tres tipos: datos, direcciones e índice, que tiene lugar en casi todos los aspectos de la operación del CPU. El tamaño de un registro depende del CPU; los más simples tienen registros que aceptan 8 o 16 bits de datos y los más complejos tienen registros de 32, 48 o 64 bits.

Registros visibles para el usuario

Son aquellos que pueden ser referenciado por medio del lenguaje maquina que ejecuta la CPU, los registro que normalmente disponibles son:

Registros de control y de estados

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:

Ejemplos de registros de CPU reales

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:


El ciclo de instrucción

Una CPU lo que hace es ejecutar las instrucciones de un programa situado en una memoria. Todos siguen el mismo ciclo de instrucción, el cual se divide en tres etapas diferenciadas llamadas Fetch, Decode y Execute, las cuales se traducen como captación, descodificación y ejecución.

Ciclo Fetch-Decode-Execute

La primera etapa del ciclo de instrucción se encarga de captar las instrucciones que hay en la memoria RAM asignada al procesador a través de una serie de unidades y registros que son las siguientes:

  1. Program Counter o Contador de Programa.
  2. Memory Address Register o registro de direccionamiento de memoria.
  3. Memory Data Register o registro de datos a memoria.
  4. Instruction Register o Registro de Instrucción.

La segunda etapa:
Hay diferentes tipos de instrucciones y no todas hacen lo mismo, por lo que dependiendo del tipo de instrucción necesitamos saber hacía que unidades de ejecución se van a enviar y la manera más clásica de hacerlo es a través de lo que llamamos un descodificador, el cual toma cada instrucción, la divide internamente según el opcode o instrucción y el dato o la dirección de memoria donde se encuentra este.
La última etapa es la de la ejecución de las instrucciones, en esta étapa las instrucciones son resueltas, pero no todos los tipos de instrucción se resuelven de la misma forma, ya que la forma de utilizar el hardware dependerá de la función de cada una de ellas, en general tenemos cuatro tipos de instrucciones:

Fletch
Decode
Execute

Segmentación de instrucciones

La segmentación de cauce (pipelining) es una forma particularmente efectiva de organizar el hardware de la CPU para realizar más de una operación al mismo tiempo. • Consiste en descomponer el proceso de ejecución de las instrucciones en fases o etapas que permitan una ejecución simultánea. • Explota el paralelismo entre las instrucciones de un flujo secuencial.
La segmentación es una técnica de mejora de prestaciones a nivel de diseño hardware y la cual es invisible al programador. El diseño de procesadores segmentados tiene gran dependencia del repertorio de instrucciones.

Conjunto de instrucciones. Características y funciones

El conjunto de instrucciones que maneja una computadora es una pieza fundamental para el funcionamiento de ésta debido a que las instrucciones se comunican directamente con el procesador para hacer un manejo adecuado de los datos que están procesando y dependiendo del tipo de set de instrucciones que un CPU entienda nos dirá el tipo de programas que una computadora puede llegar o no a soportar.
-Ortogonales (Simétricas)
La ortogonalidad es una característica de las instrucciones que es considerada algo amplia en términos de lo que requiere una instrucción o un set de instrucciones para ser considerado ortogonal en primera instancia se dice que las instrucciones en un set deben de poder ser fuente y destino de cualquier elemento de la arquitectura del CPU.
-Risc
Un juego de instrucciones Cisc se caracteriza por un número reducido de instrucciones además del uso de pipelining que permite al procesador dividir la ejecución de una instrucción en distintas fases incrementando de esa manera la velocidad de ejecución.
-Cisc
A diferencia del set de instrucciones Risc, este set tiene una cantidad de instrucciones considerable pero dichas instrucciones no suelen ejecutarse por medio de segmentación o pipelining, sus instrucciones no son ortogonales eso quiere decir que se debe tener cuidado con los registros que se utilizan debido a que no se pueden direccionar de cualquier forma los datos sobre cualquier registro, se debe especificar en la instrucción.
Cada etapa o segmento de la cadena está especializada en un área específica de la línea de producción y lleva a cabo siempre la misma actividad. Esta tecnología es aplicada en el diseño de procesadores eficientes. A estos procesadores se les conoce como pipeline processors. Estos están compuestos por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales.

Modos de direccionamiento

Contar con diferentes formatos de instrucciones, implica contar con diferentes formas de obtener los operandos de las instrucciones. Por lo general a estas múltiples formas se les conoce como modos de direccionamiento.

  1. Direccionamiento por registro, donde los operandos son registros. Los datos a operar están contenidos en 2 registros de 32 bits y el resultado será colocado en otro registro, del mismo tamaño.


  2. Direccionamiento base o desplazamiento, donde uno de los operandos está en una localidad de memoria cuya dirección es la suma de un registro y una constante que forma parte de la misma instrucción.


  3. Direccionamiento inmediato, donde uno de los operandos es una constante que está en la misma instrucción.


  4. Direccionamiento relativo al PC, donde se forma una dirección sumando una constante, que está en la instrucción, con el registro PC (Program Counter). El resultado de la suma corresponde a la dirección destino si un brinco condicional se va a realizar


  5. Direccionamiento pseudo directo, donde la dirección destino de un salto corresponde a la concatenación de 26 bits que están en la misma instrucción con los bits mas significativos del PC.



Casos de estudio de CPU reales.

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.
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.


Exposición Unidad 2


Investigación de Procesadores Intel