You are on page 1of 39

Organizacin de Computadoras

Clase 6
Notas de Clase 6 2
Tema de Clase
Ciclo de Instruccin
Notas de Clase 6 3
Funcin de la computadora(1)
Ejecutar programas
El programa est compuesto de
instrucciones almacenadas en memoria
La CPU procesa las instrucciones
Debe traerlas desde memoria una por vez
Debe cumplir cada operacin ordenada
Notas de Clase 6 4
Funcin de la computadora(2)
Podemos descomponer el procesamiento
de instrucciones en dos etapas:
Bsqueda: leer desde memoria.
Comn a todas las instrucciones.
Ejecucin: dependiendo de la instruccin
puede implicar varias operaciones
Notas de Clase 6 5
Funcin de la computadora(3)
El procesamiento requerido para una sola
instruccin se llama ciclo de instruccin.

Dos pasos:
ciclo de bsqueda y ciclo de ejecucin

La ejecucin del programa se interrumpe slo si
la mquina se apaga, hay un error una
instruccin que interrumpa a la computadora.
Notas de Clase 6 6
Ciclos de bsqueda y ejecucin(1)

Inicio
Buscar la
siguiente
instruccin
Ejecutar la
instruccin
Parar
Ciclo de bsqueda
Ciclo de ejecucin
Notas de Clase 6 7
Ciclos de bsqueda y ejecucin(2)
Al principio de cada ciclo, la CPU busca una
instruccin en memoria.
En la CPU hay un registro, llamado contador
de programa (PC), que tiene la direccin de
la prxima instruccin a buscar.
La CPU, despus de buscar cada instruccin,
incrementa el valor contenido en PC; as
podr buscar la siguiente instruccin en
secuencia.
Notas de Clase 6 8
Ciclos de bsqueda y ejecucin(3)
La instruccin buscada se carga dentro de
un registro de la CPU, llamado registro de
instruccin (IR).
La instruccin est en la forma de un
cdigo binario que especifica las acciones
que tomar la CPU.
La CPU interpreta cada instruccin y lleva
a cabo las acciones requeridas.
Notas de Clase 6 9
Ciclos de bsqueda y ejecucin(4)
En general las acciones caen en 4 tipos:
CPU Memoria
datos pueden transferirse entre memoria y CPU.
CPU E/S
datos pueden transferirse entre CPU y entrada/salida.
Procesamiento de datos
CPU efecta operaciones aritmticas lgicas en datos.
Control
alterar la secuencia de ejecucin de instrucciones.
Notas de Clase 6 10
Ejemplo de bsqueda y ejecucin
PC
IR
Secuen
1 2 3 4 5 6 7
PC=PC+1
M
B
R

Notas de Clase 6 11
Ejemplo
El siguiente ejemplo muestra la ejecucin
de un fragmento de programa que tiene
tres instrucciones:
Cargar en el registro D el contenido de la
posicin de memoria 940
16
Sumar el contenido de la posicin de memoria
941
16
al registro D y guardar el resultado en D
Almacenar el valor del registro D en la posicin
de memoria 941
16

Notas de Clase 6 12
Ejemplo (cont)
Consideremos que cada posicin de
memoria almacena 16 bits. Los primeros
4 bits indican la operacin a realizar, los
siguientes 12 bits indican una direccin
de memoria.
0001
2
=1= cargar D desde la memoria
0010
2
=2= almacenar D en memoria
0101
2
=5= sumar D con un dato en memoria
Notas de Clase 6 13
Ejemplo: paso 1
El contador de programa (PC) contiene
300
16
como la direccin de la primera
instruccin. El contenido de esta direccin
se carga en el registro de instruccin (IR).

Este proceso implica usar MAR y MBR. Para
simplificar por ahora los ignoramos.
Notas de Clase 6 14
Ejemplo: paso 1
300
301
302

940
941
1940
5941
2941
0003
0002
PC
D
IR
300
1 940
Registros de la CPU
Memoria
Paso 1
Notas de Clase 6 15
Ejemplo: paso 2
Los primeros 4 bits en IR indican que el
registro D se cargar con un dato
proveniente de la direccin especificada
en los restantes 12 bits de la instruccin.
En este caso tal direccin es 940
16
.
Notas de Clase 6 16
Ejemplo: paso 2
300
301
302

940
941
1940
5941
2941
0003
0002
PC
D
IR
300
0003
1 940
Registros de la CPU
Memoria
Paso 2
Notas de Clase 6 17
Ejemplo: paso 3
Se incrementa el contador de programa
y se busca la siguiente instruccin en la
direccin 301
16
.
Notas de Clase 6 18
Ejemplo: paso 3
300
301
302

940
941
1940
5941
2941
0003
0002
PC
D
IR
301
0003
5 941
Registros de la CPU
Memoria
Paso 3
Notas de Clase 6 19
Ejemplo: paso 4
El 5
16
en IR indica que se debe sumar el
contenido de una direccin de memoria
especificada, en este caso la direccin es
941
16
, con el contenido del registro D y
almacenar el resultado en el registro D.
Notas de Clase 6 20
Ejemplo: paso 4
300
301
302

940
941
1940
5941
2941
0003
0002
PC
D
IR
301
0005
5 941
Registros de la CPU
Memoria
Paso 4
3+2=5
0003
Notas de Clase 6 21
Ejemplo: paso 5
Se incrementa el PC y se busca la
siguiente instruccin en 302
16

Notas de Clase 6 22
Ejemplo: paso 5
300
301
302

940
941
1940
5941
2941
0003
0002
PC
D
IR
302
0005
2 941
Registros de la CPU
Memoria
Paso 5
Notas de Clase 6 23
Ejemplo: paso 6
El 2
16
en IR indica que el contenido del
registro D se almacena en la direccin
941
16
, que est especificada en los bits
restantes de la instruccin.
En este ejemplo, se necesitan 3 ciclos de
instruccin, cada uno con un ciclo de
bsqueda y un ciclo de ejecucin.
Notas de Clase 6 24
Ejemplo: paso 6
300
301
302

940
941
1940
5941
2941
0003
0005
PC
D
IR
302
0005
2 941
Registros de la CPU
Memoria
Paso 6
Notas de Clase 6 25
Ciclo de instruccin
Con este ejemplo podemos ahora tener
una visin ms detallada del ciclo de
instruccin bsico. La figura siguiente
est en forma de diagrama de estados.
Para cualquier ciclo de instruccin dado,
algunos estados pueden no estar y
otros pueden repetirse.
Notas de Clase 6 26
Diagrama de estados (1)
Acceso de CPU a memoria E/S






Operacin interna de la CPU
1
2
3 4
5
6
8
7
Notas de Clase 6 27
Diagrama de estados (2)
1. clculo direccin instruccin: determina la
direccin de la siguiente instruccin a ejecutarse
2. bsqueda instruccin: lee la instruccin de su
posicin de memoria a la cpu.
3. decodificacin de la instruccin: analiza la
instruccin para determinar el tipo de operacin
a realizar y los operandos que se usarn.
Notas de Clase 6 28
Diagrama de estados (3)
4. clculo direccin operando: si la operacin implica
la referencia a un operando en la memoria e/s,
entonces se determina la direccin.
5. bsqueda del operando: busca el operando en la
memoria e/s.
6. operacin sobre los datos: ejecuta la instruccin.
7. clculo direccin resultado.
8. almacenamiento resultado.
Notas de Clase 6 29
Diagrama de estados (4)
Los estados en la parte superior implican
un intercambio entre la cpu y la memoria
e/s.

Los estados en la parte inferior implican
slo operaciones internas en la cpu.
Notas de Clase 6 30
Ejemplo: ADD
Supongamos la siguiente instruccin :

ADD referencia a registro, direccin de memoria

dir 2
do
operando
ref 1
er
operando

Cdigo de operacin
Notas de Clase 6 31
ADD: paso a paso (1)
Buscar la instruccin en memoria.
Incrementar el PC.
Decodificar la instruccin.
Si es necesario, buscar una constante
en una direccin de memoria.
Si es necesario, incrementar PC para
que apunte ms all de la constante.
Notas de Clase 6 32
ADD: paso a paso (2)
Si es necesario calcular la direccin del
operando.
Buscar uno de los operandos, desde
memoria registro.
Buscar el otro operando desde registro.
Realizar la Suma.
Almacenar el resultado.
Notas de Clase 6 33
Paso a paso (1)
En el primer paso, la CPU busca la instru-
ccin en memoria. Para esto copia el valor
del PC al MAR y de ah al bus de direccio-
nes. La UC enva las seales necesarias para
una operacin de lectura. Se pueden leer
uno ms bytes. A travs del bus de datos
al MBR y luego al IR.
Notas de Clase 6 34
Paso a paso (2)
Despus de buscar la instruccin, la CPU
debe incrementar el PC para apuntar a lo
que sigue. Puede ser un dato, direccin
la siguiente instruccin.
Notas de Clase 6 35
Paso a paso (3)
El paso siguiente es decodificar la instruccin
para saber que operacin hacer (suma, resta,
etc.). En este momento la CPU no slo se
entera de la operacin, sino tambin dnde se
encuentran los datos sobre los cuales operar.
La instruccin es auto-contenida, en ella todo
est dicho.
Notas de Clase 6 36
Paso a paso (4)
En el paso anterior la CPU determin si tiene
que ir a buscar un operando a memoria, que
ocupa una celda o ms (byte/s) y lo hace en
este momento.
Si existi el paso anterior la CPU debe incre-
mentar el PC en el valor adecuado de celdas
(1, 2 o mas).
Notas de Clase 6 37
Paso a paso (5)
En este paso si es necesario, calcula la
direccin del operando.
Buscar los operandos.
Sumar, restar
Almacenar el resultado.
Notas de Clase 6 38
Ejemplos adicionales
Simulacin de Instrucciones en MSX88
Ejecutar aplicacin MSX88.exe
Almacenar en memoria:
e 2000 b8002081c000e0
Analizar la ejecucin ciclo de instruccin a
ciclo de instruccin con <F6>
Notas de Clase 6 39
mas informacin
Ciclo de instruccin:
Captulo 3 apartado 3.2.
Captulo 11 apartados 11.1. y 11.3.
Stallings, W., 5 Ed.

Lenguaje Assembly
Apunte 4 de ctedra
Simulador MSX88
En Descargas de pgina web de ctedra
http://weblidi.info.unlp.edu.ar/catedras/organiza/

You might also like