El documento describe el ciclo de instrucción, que consiste en cuatro pasos: 1) buscar la instrucción en la memoria principal, 2) decodificar la instrucción, 3) ejecutar la instrucción, y 4) almacenar o guardar los resultados. También explica los registros involucrados en el ciclo de búsqueda como el contador de programa, registro de direcciones de memoria, registro de instrucciones y registro de buffer de memoria.
Al comienzo de cada ciclo de instrucción de memoria en la CPU, capta una instrucción de memoria, en una CPU típica usa un registro llamado contador de programa (PC) para seguir la pista de las instrucciones que se deben captar a continuación. La CPU siempre incrementa a PC después de captar una instrucción. con lo cual las CPU podrá realizar el ciclo de ejecución de acuerdo a las instrucciones recibidas.
Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o ciclo de fetch-decode-execute en inglés) es el período que tarda la unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje máquina.
Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más ciclos máquina.
Ciclo de búsqueda:
Procesa la instrucción a partir de la palabra de instrucción, que contiene el código de operación y el operando
Durante el ciclo de búsqueda (que es una operación común al conjunto de todas las instrucciones) la instrucción se localiza en la memoria y se lee. El ciclo de ejecución aunque depende, obviamente, de la naturaleza de la instrucción que se va a ejecutar, normalmente requiere la decodificación de la instrucción, la búsqueda de los operandos y la ejecución de la operación especificada por el código de la instrucción. La ejecución de un programa consiste en la repetición cíclica de las fases de búsqueda y ejecución de las instrucciones de que consta y finaliza mediante una de las siguientes acciones.
Aquí se encuentran los dos registros principales relacionados con el acceso a las instrucciones
PC Program counter: registro contador del programa, contiene la dirección de la instrucción siguiente que hay que leer de la memoria
IR Instruction register: Es el registro de donde se almacena la instrucción que se está ejecutando en cada momento.
También hay dos registros principales relacionados y requeridos para cualquier operación de lectura o escritura de memoria
MAR (Memory address register), registro de direcciones de memoria, en el se encuentra la dirección de memoria a la que se quiere acceder.
MBR (Memory buffer register), registro de datos de memoria (también conocido como MDR); registro donde la memoria deposita el dato leído, en una operación de lectura, o el dato que queremos escribir, en el caso de una operación de escritura
Fase de búsqueda
En el PC se almacena la dirección de memoria de comienzo del programa. La UC genera una orden para que el contenido de PC se envíe al MDR. El selector de memoria localiza la dirección y transfiere su contenido al RIM. La UC da la orden de transferir el contenido del RIM al IR, en el que se deposita el código de la instrucción a ejecutar. El decodificador de instrucción (DI) analiza el código contenido en el IR y genera las señales de control para ejecutar la instrucción. El PC se incrementa en 1 y apunta a la instrucción siguiente
Fase de ejecución
Una vez conocido el código de operación, la UC establece las conexiones con el dispositivo de entrada para aceptar el dato A. La UC da la orden de que el dato leído se cargue en el RIM y en el MDR se ponga la dirección de memoria donde se almacenará. El selector de memoria guarda en la dirección de memoria indicada por el MDR el contenido del RIM
La fase de lectura de la de la señal de control básicamente de cuatro pasos:
1) MAR ← PC: se pone el contenido del registro PC en el registro MAR.
2) MBR ← Memoria: se lee la instrucción.
3) PC ← PC + Δ: se incrementa el PC tantas posiciones de memoria como se han leído (Δ posiciones).
4) IR ← MBR: se carga la instrucción en el registro IR.
Nota:
Se debe tener presente que si la instrucción tiene un tamaño superior a una palabra de memoria, este proceso se debe repetir tantas veces como sea necesario.
Las diferencias principales que encontramos entre diferentes máquinas en esta fase son cómo y cuándo se incrementa el PC, ya que en algunas máquinas se utiliza la ALU y en otras se puede utilizar un circuito incrementador específico para el PC.
La información almacenada en el registro IR se decodifica para identificar las diferentes partes de la instrucción y determinar las operaciones necesarias que hay que efectuar en las fases siguientes.
Al comienzo de cada ciclo de instrucción de memoria en la CPU, capta una instrucción de memoria, en una CPU típica usa un registro llamado contador de programa (PC) para seguir la pista de las instrucciones que se deben captar a continuación. La CPU siempre incrementa a PC después de captar una instrucción. con lo cual las CPU podrá realizar el ciclo de ejecución de acuerdo a las instrucciones recibidas.
Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o ciclo de fetch-decode-execute en inglés) es el período que tarda la unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje máquina.
Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más ciclos máquina.
Ciclo de búsqueda:
Procesa la instrucción a partir de la palabra de instrucción, que contiene el código de operación y el operando
Durante el ciclo de búsqueda (que es una operación común al conjunto de todas las instrucciones) la instrucción se localiza en la memoria y se lee. El ciclo de ejecución aunque depende, obviamente, de la naturaleza de la instrucción que se va a ejecutar, normalmente requiere la decodificación de la instrucción, la búsqueda de los operandos y la ejecución de la operación especificada por el código de la instrucción. La ejecución de un programa consiste en la repetición cíclica de las fases de búsqueda y ejecución de las instrucciones de que consta y finaliza mediante una de las siguientes acciones.
Aquí se encuentran los dos registros principales relacionados con el acceso a las instrucciones
PC Program counter: registro contador del programa, contiene la dirección de la instrucción siguiente que hay que leer de la memoria
IR Instruction register: Es el registro de donde se almacena la instrucción que se está ejecutando en cada momento.
También hay dos registros principales relacionados y requeridos para cualquier operación de lectura o escritura de memoria
MAR (Memory address register), registro de direcciones de memoria, en el se encuentra la dirección de memoria a la que se quiere acceder.
MBR (Memory buffer register), registro de datos de memoria (también conocido como MDR); registro donde la memoria deposita el dato leído, en una operación de lectura, o el dato que queremos escribir, en el caso de una operación de escritura
Fase de búsqueda
En el PC se almacena la dirección de memoria de comienzo del programa. La UC genera una orden para que el contenido de PC se envíe al MDR. El selector de memoria localiza la dirección y transfiere su contenido al RIM. La UC da la orden de transferir el contenido del RIM al IR, en el que se deposita el código de la instrucción a ejecutar. El decodificador de instrucción (DI) analiza el código contenido en el IR y genera las señales de control para ejecutar la instrucción. El PC se incrementa en 1 y apunta a la instrucción siguiente
Fase de ejecución
Una vez conocido el código de operación, la UC establece las conexiones con el dispositivo de entrada para aceptar el dato A. La UC da la orden de que el dato leído se cargue en el RIM y en el MDR se ponga la dirección de memoria donde se almacenará. El selector de memoria guarda en la dirección de memoria indicada por el MDR el contenido del RIM
La fase de lectura de la de la señal de control básicamente de cuatro pasos:
1) MAR ← PC: se pone el contenido del registro PC en el registro MAR.
2) MBR ← Memoria: se lee la instrucción.
3) PC ← PC + Δ: se incrementa el PC tantas posiciones de memoria como se han leído (Δ posiciones).
4) IR ← MBR: se carga la instrucción en el registro IR.
Nota:
Se debe tener presente que si la instrucción tiene un tamaño superior a una palabra de memoria, este proceso se debe repetir tantas veces como sea necesario.
Las diferencias principales que encontramos entre diferentes máquinas en esta fase son cómo y cuándo se incrementa el PC, ya que en algunas máquinas se utiliza la ALU y en otras se puede utilizar un circuito incrementador específico para el PC.
La información almacenada en el registro IR se decodifica para identificar las diferentes partes de la instrucción y determinar las operaciones necesarias que hay que efectuar en las fases siguientes.
Presentation prepared for the Founder Institute session on Sales & Traction in Santiago, Chile.
Talking about Traction, Lead Gen, Sales operations, Marketing stunts.
Una breve explicación de como esta formado internamente el procesador.
Bibliográfica:
1. Introducción a un Lenguaje Ensamblador para Arquitectura de Computadoras. Karen Millar. Oxford, 1999.
2. Organización y arquitectura de computadoras -principios y estructura de funcionamiento- Willian Stallings, Megabyte, 1995
3. Lógica y dseño. Digital, Morris Mano. Prentice-Hall, 2000
1. Ciclo de instrucción
Es el período que tarda la unidad central de proceso (CPU) en ejecutar una instrucción
de lenguaje máquina. Lenguaje de máquina o código máquina es el sistema de
códigos directamente interpretable por un circuito microprogramable, como
el microprocesador de una computadora o el microcontrolador de un autómata.
El ciclo de instrucción es también llamado ciclo de fetch-and-execute o ciclo de fetchdecode-execute en inglés.
Para que cualquier sistema de proceso de datos basado en microprocesador (por
ejemplo un ordenador) o microcontrolador (por ejemplo un reproductor de MP3)
realice una tarea (programa) primero debe buscar cada instrucción en la memoria
principal y luego ejecutarla.
Secuencia de acciones del ciclo de instrucción
Son cuatro pasos que se llevan a cabo en cada ciclo de instrucción:
1. Buscar la instrucción en la memoria principal
Se vuelca el valor del contador de programa sobre el bus de direcciones.
Entonces la CPU pasa la instrucción de la memoria principal a través del bus
de datos al Registro de Datos de Memoria (MDR). A continuación el valor del
MDR es colocado en el Registro de Instrucción Actual (CIR), un circuito que
guarda la instrucción temporalmente de manera que pueda ser decodificada y
ejecutada.
Busque- traiga una instrucción desde la Memoria Principal
2. Decodificar la instrucción
El decodificador de instrucción interpreta e implementa la instrucción. El
registro de instrucción (IR) mantiene la instrucción en curso mientras el
contador de programa (PC, program counter) guarda la dirección de memoria
de la siguiente instrucción a ser ejecutada.
* Recogida de datos desde la memoria principal
* Se accede al banco de registros por los operandos (solo si es necesario)
* Se calcula el valor del operando inmediato con extensión de signo (solo si es
necesario)
Decodifique- tradúzcala como comando de la computadora
3. Ejecutar la instrucción
A partir del registro de instrucción, los datos que forman la instrucción son
decodificados por la unidad de control. Ésta interpreta la información como
una secuencia de señales de control que son enviadas a las unidades
funcionales relevantes de la CPU para realizar la operación requerida por la
instrucción.
2. 4. Almacenar o guardar resultados.
El resultado generado por la operación es almacenado en la memoria principal
o enviado a un dispositivo de salida dependiendo de la instrucción. Basándose
en los resultados de la operación, el contador de programa se incrementa para
apuntar a la siguiente instrucción o se actualiza con una dirección diferente
donde la próxima instrucción será recogida.
¿Qué es un ciclo de búsqueda?
La acción de leer una instrucción en la CPU y prepararla para su ejecución se denomina
ciclo de búsqueda. Para completar una instrucción la CPU decodifica el opcode, genera
las señales de control que se necesitan para introducir los operandos requeridos y
controla la ejecución de la instrucción. Durante el ciclo de búsqueda, el opcode de la
siguiente instrucción es cargado en el IR(Registro de Instrucción) y la porción de
dirección es cargada en el MAR(Registro de Dirección de Memoria): esta instrucción
puede ser tomada del IBR(Registro de Buffer de Instrucción), o puede ser obtenido de
la memoria cargando una palabra en el MBR(Registro de Buffer de Meemoria), y
después al IBR, IR, y MAR )
¿Qué registros entran en juego durante el ciclo de búsqueda?
Contador del programa (PC),Registro de direcciones de la memoria (MAR)., Registro
de datos, Registro de instrucciones.(IR) , Registro de buffer de memoria(MBR) y
Palabra de estado de programa
3. Fase de Ejecución
5 - Decodificación de la Instrucción. Por ejemplo la Instrucción ADD.
6 - Transferencia del campo “CD” de la instrucción en curso (este campo contiene la
dirección de memoria en la que se encuentra el operando, y que se encuentra en el
registro RI desde que finalizó la fase de búsqueda), al registro RD. Se inicia, por tanto,
un proceso similar al de la fase de búsqueda, pero en esta ocasión para buscar en
memoria el operando de la instrucción.
7 - Lanzar un ciclo de lectura de memoria que ponga en RM el operando almacenado
en la dirección indicada por RD.
8 - Transferencia del dato leído desde el RM al registro intermedio, Ro2, del Operador.
Paralelamente se puede transferir el otro operando desde el acumulador, AC,
(contenido en él un instante anterior), al registro intermedio Ro1
9 - Realizar la operación de SUMA (ADD) y almacenar el resultado en el AC.