
Organización del Procesador
Un procesador, incluye tanto registros visibles por el usuario como registros de control/estado.
a) Los registros visibles por el usuario pueden ser de uso general o tener una utilidad especial.
b) Los registros de control y estado se usan para controlar el funcionamiento del procesador, un claro ejemplo es el contador de un programa.
Los procesadores utilizan la segmentación de instrucciones para acelerar la ejecución.
La segmentación de cauce se puede dividir en ciclo de instrucción en varias etapas separadas que operan secuencialmente, tales como;
-
Captación de instrucción
-
Decodificación de instrucción
-
Cálculo de direcciones de operando
-
Ejecución de instrucción
-
Estructura del operando resultado
Captar instrucciones: el procesador lee una instrucción de memoria (registro, cache o memoria principal).
Interpretar instrucción: la instrucción se codifica para determinar qué acción es necesario.
Captar datos: la ejecución de una instrucción puede exigir leer datos de memoria o de un módulo de E/S.
Procesar datos: la ejecución de una instrucción puede exigir llevar a cabo alguna operación aritmética o lógica con los datos.
Escribir datos: los resultados de una ejecución pueden exigir escribir datos en la memoria o en el módulo de E/S.
Para hacer estas cosas, el procesador necesita almacenar instrucciones y datos temporalmente mientras una instrucción está ejecutándose, en otras palabras, el procesador necesita una pequeña memoria interna.
El procesador y el bus del sistema

En la figura anterior se muestra una visión simplificada de un procesador, que indica su conexión con el resto de sistema, a través del bus del sistema.
La ALU, lleva a cabo el verdadero cálculo o procesamiento de datos.
La unidad de control, controla la transferencia de datos e instrucciones así a dentro y así afuera del procesador, y el funcionamiento de la ALU. Además la figura muestra una memoria interna mínima, que consta de un conjunto de posiciones de almacenamiento llamadas registros.
Estructura interna del procesador

En esta figura se indican los caminos de transferencia de datos y de la lógica de control, que incluye un elemento con el rotulo bus interno del procesador. También se muestran los elementos básicos típicos de la ALU.
Hay que observar la similitud entre la estructura interna del computador en su totalidad y la estructura interna del procesador. En ambos casos hay una pequeña colección de elementos principales (computador: procesador, E/S, memoria; procesador: unidad de control, ALU, registros) conectados por caminos de datos.
La Unidad Central de Procesos (CPU)

la CPU encarga de calcular y distribuir las tareas que se deben ejecutar. Entre sus funciones está la de hacer solicitudes a la memoria para obtener todos los datos necesarios para realizar su computación; también está la de hacer gestiones a la interfaz de entrada y salida para permitir la lectura de los caracteres del teclado, los clics del ratón, mostrar las ventanas en el monitor, entre muchas otras.
Estructura de Registros
Un registro es una memoria que esta ubicada en el procesador y se encuentra en el nivel más alto en la jerarquía de memoria, por lo tanto tiene una alta velocidad pero con poca capacidad para almacenar datos que va desde los 4 bits hasta los 64 bits dependiendo del procesador que se utilice. Los datos que almacena son los que se usan frecuentemente.

También hay tipos de registros y se dividen en dos categorías:
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 numero 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 una á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.

Registros visibles al usuario
Son aquellos que pueden ser referenciado por medio del lenguaje maquina que ejecuta la CPU, los registro que normalmente disponibles son:
-
Registros de propósito general, son aquellos que pueden guardar tanto datos como direcciones
-
Registro de datos, que pueden ser asignados por el programador a diversas funciones. En algunos casos son de propósito general y pueden ser empleados por cualquier instrucción de máquina que lleve a cabo operaciones sobre los datos.
-
Registros de direcciones, contienen direcciones en la memoria principal de datos y este tipo de registro puede ser de propósito general o estar a un modo específico de direccionamiento.
-
Códigos de condición, también conocidos como indicadores o flags. Los códigos de condición, son bits activados por el procesador como resultado de determinadas operaciones

El ciclo de instrucción
“El Ciclo Instrucción” cuenta con dos fases, la primera es la obtención y la segunda es la fase de ejecución:

Ciclo Fetch-Decode-Execute
Fase de Obtención donde:
· El registro Contador del Programa (PC) tiene la dirección de la siguiente instrucción que va obtener.
· El procesador obtiene la siguiente instrucción de la localidad de memoria apuntada por el PC.
· El PC se incrementa:
Ø A menos que se le indique otra cosa
Ø El PC queda apuntando a la siguiente instrucción
· La instrucción se carga en el Registro Instrucción (IR).
· El procesador interpreta la instrucción y realiza las acciones indicadas por ella.
Fase de Ejecución donde:
· Procesador-memoria
Ø Transferencia de datos entre CPU y memoria principal
· Procesador – E/S
Ø Transferencia de datos entre CPU y un módulo de E/S
· Procesamiento de datos
Ø Alguna operación aritmética o lógica sobre los datos
· Control
Ø Alteración de la secuencia de operaciones
Ø e.g. Salto (jump)
· Una combinación de las anteriores
Ø Una combinación de las anteriores
Ciclo instrucción más detallado:

Obtener la instrucción de la memoria de programa
Determinar el tamaño de la instrucción y las acciones ejecutar
Localizar y obtener los operandos (datos)
Procesar los datos y calcular el valor del resultado y el estado de la máquina
Escribir los resultados en memoria para un uso posterior
Determinar la instrucción que sigue
Diagrama de estados del ciclo de instrucción

Qué es un programa
· Una secuencia de instrucciones
· Por cada instrucción se realiza una operación (aritmética o lógica) o una transferencia (de datos o control)
· Cada operación es ejecutada siguiendo los pasos dados en el ciclo instrucción
Ciclo indirecto
· Puede requerir acceso a memoria para extraer operandos
· El direccionamiento indirecto requiere más accesos a memoria
Flujo de datos (Obtención de la instrucción)
· Depende del diseño del CPU
· En general:
Ø PC contiene la dirección de la siguiente instrucción
Ø La dirección se mueve a MAR
Ø Se pone la dirección en el bus de direcciones
Ø La unidad de control solicita lectura a memoria
Ø El resultado se pone en el bus de datos, copiado a MDR, y después a IR
Ø Mientras tanto el PC se incrementa a 1
Flujo de datos (Obtención de los datos)
· Si es direccionamiento indirecto, se ejecuta el ciclo indirecto
Ø Los N bits más de la derecha de MDR se transfieren a MAR
Ø La unidad de control solicita lectura de memoria
Ø El resultado (dirección del operando) se mueve a MDR
Flujo de datos a: fase de obtención

Flujo de datos b: ciclo indirecto

Flujo de datos (Ejecución)
· Puede tomar varias formas
· Depende de la instrucción que se está ejecutando
· Puede incluir:
Ø Lectura/Escritura de la memoria
Ø Entrada/Salida
Ø Transferencias de registros
Ø Operaciones en la ALU