Sie sind auf Seite 1von 194

Pontificia Universidad Catlica de Chile

Escuela de Ingeniera
Departamento de Ciencia de la Computacin

[ Arquitectura de Computadores ]
ORGANIZACIN DEL COMPUTADOR
IIC 2342
Semestre 2006-2
Domingo Mery

Prsentat
ion

D.Mery

Arquitectura de Computadores

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

Arquitectura de Computadores
Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

Arquitectura de Computadores
Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejercicio:
En una memoria de 4
palabras de 3 bits se
encuentran almacenados 4
nmeros de 3 bits.
Hacer un circuito digital que
sume estos cuatro nmeros.
Utilice:
la memoria de 4 x 3
un contador de 2 bits
sumadores
una seala de clock.

contador

D.Mery

Arquitectura de Computadores
Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejemplo:
Cmo sumar el contenido de
la posicin 867 con el
contenido de la posicin 562 y
almacenar el resultado en la
posicin 778?

1023
:
867

06h

:
778
:
562

04h

:
2
1
0

Memoria de 1024 8
D.Mery

Arquitectura de Computadores
Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejemplo:
Cmo sumar el contenido de
la posicin 867 con el
contenido de la posicin 562 y
almacenar el resultado en la
posicin 778?

1023
:
867

06h

778
:
562

04h

:
2
1
0

Memoria de 1024 8
D.Mery

Arquitectura de Computadores
Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Solucin:
1. Leer en la memoria la
posicin 867

1023
:
867

06h

:
778
:
562

04h

:
2
1
0

Decoder & Read/Write


Memoria de 1024 8
Direccin 867
D.Mery

Read
Arquitectura de Computadores
Prsentat
ion

Mquina von Neuma

[ Organizacin ]
1023

Solucin:

1. Leer en la memoria la
posicin 867
2. Almacenar lo ledo en un
registro externo

867

06h

:
778
:
562

06h

04h

:
2
1
0

Decoder & Read/Write

acumulador

Memoria de 1024 8
Direccin 867
D.Mery

Read
Arquitectura de Computadores
Prsentat
ion

Mquina von Neuma

[ Organizacin ]
1023

Solucin:

1. Leer en la memoria la
posicin 867
2. Almacenar lo ledo en un
registro externo
3. Leer en la memoria la
posicin 562

867

06h

:
778
:
562

04h

:
2
1

06h

Decoder & Read/Write

acumulador

Memoria de 1024 8
Direccin 562
D.Mery

Read
Arquitectura de Computadores
Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Solucin:
1. Leer en la memoria la
posicin 867
2. Almacenar lo ledo en un
registro externo
3. Leer en la memoria la
posicin 562
4. Sumar lo ledo con el
registro externo

1023
:
867

06h

:
778
:

04h

562

04h

0Ah

06h

Decoder & Read/Write

acumulador

Memoria de 1024 8
D.Mery

10

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
1023

Solucin:

1. Leer en la memoria la
posicin 867
2. Almacenar lo ledo en un
registro externo
3. Leer en la memoria la
posicin 562
4. Sumar lo ledo con el
registro externo
5. Almacenar la suma en la
posicin 778

867

06h

:
778
:
562

04h

:
2
1

0Ah

Decoder & Read/Write

acumulador

Memoria de 1024 8
Direccin 778
D.Mery

11

Write
Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Solucin general:

1023

Unidad de
aritmtica
y lgica

:
867
:
778
:
562

Unidad
de control

:
2
1

Programa

Decoder & Read/Write


Memoria de 1024 8
D.Mery

12

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Solucin general:
El programa le da
instrucciones a la
Unidad Central.
Ejemplo:
00100001 110110011
significa leer en la
memoria 110110011 y
almacenar la lectura
en el registro AC de la
ALU.

1023

Unidad de
aritmtica
y lgica

:
867
:
778
:
562

Unidad
de control

:
2
1

Programa

Decoder & Read/Write

Memoria de 1024 8
D.Mery

13

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Solucin general:
El programa le da
instrucciones a la
Unidad Central.
Ejemplo:
00100001 110110011
significa leer en la
memoria 110110011 y
almacenar la lectura
en el registro AC de la
ALU.

1023

Unidad de
aritmtica
y lgica

:
867
:
778
:
562

Unidad
de control

:
2
1

Programa

Decoder & Read/Write

Memoria de 1024 8
D.Mery

14

Significa
leer y
almacenar
en AC
Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Solucin general:
El programa le da
instrucciones a la
Unidad Central.
Ejemplo:
00100001 110110011
significa leer en la
memoria 110110011 y
almacenar la lectura
en el registro AC de la
ALU.

1023

Unidad de
aritmtica
y lgica

:
867
:
778
:
562

Unidad
de control

:
2
1

Programa

Decoder & Read/Write

Memoria de 1024 8
D.Mery

15

Significa lo que se
debe leer:
110110011 = 867
Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Solucin general:
El programa le da
instrucciones a la
Unidad Central.
Ejemplo:
00100001 110110011
significa leer en la
memoria 110110011 y
almacenar la lectura
en el registro AC de la
ALU.

1023

Unidad de
aritmtica
y lgica

:
867
:
778
:
562

Unidad
de control

:
2

110110011

000100001

Decoder & Read/Write

Memoria de 1024 8
D.Mery

16

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Principios:

1. Los datos y las instrucciones se almacenan en una sola


memoria de lectura-escritura.
2. Los contenidos de esta memoria se direccionan indicando
su posicin, sin considerar el tipo del de dato contenido en
la misma.
3. La ejecucin se produce siguiendo una secuencia de
instruccin tras instruccin (a no ser que dicha secuencia se
modifique explcitamente).

D.Mery

17

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Estructura

D.Mery

18

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles

1000 x 40 bit words


Binary number
2 x 20 bit instructions

Palabra nmero
01

39

Signo

Palabra instruccin
0
Codop
D.Mery

19 20
Direccin

Codop
19

28

39
Direccin
Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles
Palabra instruccin
0
Codop

19
Direccin

La parte codop (los primeros 8 bits) especifican cul


instruccin ser ejecutada.
La parte de la direccin (los 12 bits restantes) especifican cul
de las 1000 posiciones de memoria est implicada en la
instruccin. Esta parte es denominada X.

D.Mery

20

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles

Registros de la CPU
Memory Buffer Register (MBR)
Memory Address Register (MAR)
Instruction Register (IR)
Instruction Buffer Register (IBR)
Program Counter (PC)
Accumulator (AC)
Multiplier Quotient (MQ)

D.Mery

21

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles de la estructura
mquina von Neumann

D.Mery

22

(CC)

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles de la estructura
MBR:
Memory Buffer Register
Contiene una palabra que debe
ser almacenada en la memoria, o
es usado para recibir una palabra
procedente de la memoria.

D.Mery

23

(CC)

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles de la estructura
MAR:
Memory Adress Register
Especifica la direccin en
memoria de la palabra que va a
ser escrita o leda en MBR.

D.Mery

24

(CC)

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles de la estructura
IR:
Instruction Register
Contiene los 8 bits del cdigo de
operacin de la instruccin que se
va a ejecutar.

D.Mery

25

(CC)

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles de la estructura
IBR:
Instruction Buffer Register
Empleado para almacenar
temporalmente la instruccin
contenida en la parte derecha de
una palabra en memoria.

D.Mery

26

(CC)

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles de la estructura
PC:
Program Counter
Contiene la direccin de la prxima
pareja de instrucciones que van a
ser captadas de la memoria.

D.Mery

27

(CC)

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Detalles de la estructura
AC y MQ:
Accumulator y Multiplier
Quotient
Se emplean para almacenar
operandos y resultados de
operaciones de la ALU
temporalmente. Por ejemplo, el
resultado de multiplicar dos
nmeros de 40 bits es un nmero
de 80 bits; los 40 bits ms
significativos se almacenan en AC
y los menos significativos se
almacenan en MQ.

D.Mery

28

(CC)

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]

INSTRUCCIONES DE TRANSFERENCIA DE DATOS:


Se transfieren datos entre la memoria y los registros de la ALU
o entre dos registros de la ALU.

D.Mery

Codop

Instruccin

Descripcin

00001010

LOAD MQ

Transferir el contenido del registro


MQ a AC

00001001

LOAD MQ,M(X)

Transferir el contenido de la
posicin de memoria X a MQ

00100001

STOR M(X)

Transferir el contenido de AC a la
posicin de memoria X

00000001

LOAD M(X)

Transferir M(X) a AC

00000010

LOAD M(X)

Transferir M(X) a AC

00000100

LOAD |M(X)|

Transferir |M(X)| a AC
29

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]

INSTRUCCIONES DE SALTO INCONDICIONAL:


Normalmente, la unidad de control ejecuta instrucciones
secuencialmente en la memoria. Las instrucciones de salto
pueden cambiar este orden (ej. Operaciones repetitivas).
Codop

Instruccin

Descripcin

00001101

JUMP M(X,8:19)

Saltar a la instruccin indicada


por la mitad izquierda de M(X)

00001110

JUMP M(X,28:39) Saltar a la instruccin indicada

por la mitad derecha de M(X)

D.Mery

30

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]

INSTRUCCIONES DE SALTO CONDICIONAL:


El salto depende de una condicin, esto permite puntos de
decisin.

Codop

Instruccin

Descripcin

00001111

JUMP +M(X,8:19)

Si AC 0 saltar a la instruccin
indicada por la mitad izquierda
de M(X)

00001000

JUMP +M(X,28:39) Si AC 0 saltar a la instruccin

indicada por la mitad derecha de


M(X)

D.Mery

31

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]

INSTRUCCIONES DE ARITMTICA:
Son las operaciones realizadas por la ALU.

D.Mery

Codop

Instruccin

Descripcin

00000101

ADD M(X)

AC AC + M(X)

00000111

ADD |M(X)|

AC AC + |M(X)|

00000110

SUB M(X)

AC AC - M(X)

00001000

SUB |M(X)|

AC AC - |M(X)|

00001011

MUL M(X)

[AC][MQ] AC M(X)

00001100

DIV M(X)

[AC][MQ] AC M(X)

00010100

LSH

AC AC 2

00010101

RSH

AC AC 2

32

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]

INSTRUCCIONES DE ARITMTICA:
Son las operaciones realizadas por la ALU.
Codop

Instruccin

Descripcin

00000101

ADD M(X)

AC AC + M(X)

00000111

ADD |M(X)|

AC AC + |M(X)|

SUB
00000110
AC por
AC -hardware?
M(X)
Cmo
se M(X)
implementan

D.Mery

00001000

SUB |M(X)|

AC AC - |M(X)|

00001011

MUL M(X)

[AC][MQ] AC M(X)

00001100

DIV M(X)

[AC][MQ] AC M(X)

00010100

LSH

AC AC 2

00010101

RSH

AC AC 2

33

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Sistemas Digitales ]

shift register a la derecha = divisin entre dos

D
CK

D.Mery

D
CK

CK

34

CK

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Sistemas Digitales ]

shift register a la izquierda = multiplicacin por dos

D
CK

D.Mery

D
CK

CK

35

CK

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]

INSTRUCCIONES DE MODIFICACIN DE DIRECCIONES:


Permite que la ALU haga operaciones con las direcciones y
las inserte en instrucciones almacenadas en memoria. Esto
permite una considerable flexibilidad de direccionamiento en un
programa.
Codop

Instruccin

00010010 STOR M(X,8:19)

00010011

Descripcin
Reemplazar el campo de
direccin de la izquierda de M(X)
por los 12 bits de la derecha de
AC.

STOR M(X,28:39) Reemplazar el campo de

direccin de la derecha de M(X)


por los 12 bits de la derecha de
AC.
D.Mery

36

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejercicio:

Escribir un programa que sume el nmero almacenado en la


posicin 867 ms el nmero almacenado en la posicin 562. El
resultado de la suma (sin considerar acarreo) se debe
almacenar en la posicin 778.

D.Mery

37

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejercicio:

Escribir un programa que sume el nmero almacenado en la


posicin 867 ms el nmero almacenado en la posicin 562. El
resultado de la suma (sin considerar acarreo) se debe
almacenar en la posicin 778.

LOAD M(867)
ADD M(562)
STOR M(778)

D.Mery

% transfiere el contenido de 867 a AC


% AC AC + M(562)
% transfiere AC a la memoria 778

38

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]

Cmo se almacena el programa?


LOAD M(867)
ADD M(562)
STOR M(778)

D.Mery

00000001 001101100011
00000100 001000110010
00100001 001100001010

39

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejercicio:

Escribir un programa que divida el nmero almacenado en la


posicin 867 por 8. El resultado de la divisin (sin considerar el
resto ni la parte fraccionaria) se debe almacenar en la posicin
778.

D.Mery

40

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejercicio:

Escribir un programa que divida el nmero almacenado en la


posicin 867 por 8. El resultado de la divisin (sin considerar el
resto ni la parte fraccionaria) se debe almacenar en la posicin
778.

LOAD M(867)
RSH
RSH
RSH
STOR M(778)

D.Mery

%
%
%
%
%

transfiere el contenido de
divide el acumulador entre
divide el acumulador entre
divide el acumulador entre
transfiere AC a la memoria

41

867 a AC
dos
dos
dos
778

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejercicio:

Escribir un programa que compare el nmero almacenado en la


posicin 867 con el nmero almacenado en la posicin 562. Si
el primero es menor que el segundo copiar el contenido de la
memoria 500 en la memoria 501, de lo contrario se almacena
en 501 el contenido de 867 menos el contenido de 562.

D.Mery

42

Arquitectura de

Prsentat
ion

Mquina von Neuma

[ Organizacin ]
Ejercicio:

Escribir un programa que compare el nmero almacenado en la


posicin 867 con el nmero almacenado en la posicin 562. Si
el primero es menor que el segundo copiar el contenido de la
memoria 500 en la memoria 501, de lo contrario se almacena
en 501 el contenido de 867 menos el contenido de 562.
1.
2.
3.
4.
5.

LOAD M(867)
SUB M(562)
JUMP +M(3,28:39)
LOAD M(500)
STOR M(501)

%
%
%
%
%

transfiere el contenido de 867 a AC


AC AC - M(562)
salta si AC 0 (i.e. M(867) M(562))
transfiere el contenido de 500 a AC
transfiere AC a la memoria 501

En la posicin derecha de 3 debe estar almacenado 5, de


esta manera la tercera instruccin salta a la direccin 5
si AC 0.
D.Mery

43

Arquitectura de

Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

44

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Computador

perifricos

Unidad
Central de
Proceso
CPU

Memoria
Principal

Sistema de
interconexin

Computador

Entrada
Salida
Lneas de
comunicacin

D.Mery

45

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Ejemplo:
Bus de Direcciones
Memoria
Principal

Memoria
Secundaria

D.Mery

Perifricos

CPU

Bus de Control

Bus de Datos

46

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Ejemplo:

D.Mery

47

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

CPU
Computer
Registros

I/O
System
Bus

Unidad
Aritmtica y
Lgica

CPU

Interconexin
Interna de la CPU

Memory

Unidad
de
Control

D.Mery

48

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

Unidad de Control
CPU

Lgica
Secuencial

ALU
Internal Control
Unit
Bus

Unidad de control
de registros y
decodificadores

Registers

Memoria
de control

D.Mery

49

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

Unidad de Control
CPU
ALU
Internal
Bus
Registers

Lgica
Secuencial
controla
el

La unidad de control
Control
Unitfuncionamiento de la CPU:
Unidad de control
controla las transferencias de
de registros y
datos desde hacia la CPU y decodificadores
controla la ALU.
Memoria
de control

D.Mery

50

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Funcin de la unidad de control:

1. Para cada instruccin hay un nico cdigo que ejecutar


esa instruccin.
2. Acepta la instruccin y genera las seales de control
necesarias para que la instruccin se ejecute.

D.Mery

51

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Funcin de la unidad de control:

1. Para cada instruccin hay un nico cdigo que ejecutar


esa instruccin.

codop

D.Mery

decoder

2. Acepta la instruccin y genera las seales de control


necesarias para que la instruccin se ejecute.

52

Se activa slo una salida

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Componentes del
computador:

D.Mery

53

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Tareas de la CPU:

1. Captar instruccin: la CPU lee una instruccin de la


memoria.
2. Interpretar instruccin: la instruccin se decodifica para
determinar qu accin es necesaria.
3. Captar datos: la ejecucin de una instruccin puede exigir
leer datos de la memoria o de un mdulo I/O.
4. Procesar datos: en la ejecucin se puede exigir llevar a
cabo alguna operacin aritmtica o lgica con los datos.
5. Escribir datos: los resultados de la ejecucin pueden exigir
escribir datos en la memoria o en un mdulo I/O.
D.Mery

54

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

Registros

ALU

Unidad de
Control

Bus de
control

Bus de
datos

Bus de
direcciones

Bus del sistema


D.Mery

55

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

Un procesador incluye registros visibles para el usuario y


registros de control/estado.
Registros visibles:

pueden referenciarse en las instrucciones de


mquina.

pueden ser:

1.
2.
3.
4.

Uso general
Datos
Direcciones
Cdigos de condicin

D.Mery

56

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

cuntos registros de propsito general?

D.Mery

ptimo entre 8 y 32
Si hay muy pocos registros entonces se necesitan
demasiados accesos a memoria.
Ms registros no reducen considerablemente las
referencias a memoria y hace la CPU ms compleja.

57

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

De cuntos bits deben ser los registros?

Deben ser de un nmero suficiente tal que se puedan


manejar las direcciones a memoria.

Adems deben ser capaces de manejar una palabra


completa.

A veces se combinan dos registros para conformar


uno solo.

D.Mery

58

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]
Ejemplos de organizacin de registros:

D.Mery

59

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

Un procesador incluye registros visibles para el usuario y


registros de control/estado.
Registros de control y estado:

se usan para controlar el funcionamiento de la CPU:

1. PC = program counter: contiene la direccin de la


instruccin a captar
2. IR = instruction register: contiene la ltima instruccin
captada
3. MAR = memory address register: contiene la direccin
de una posicin de memoria
4. MBR = memory buffer register: contiene la palabra de
datos a escribir en memoria, o la palabra leda ms
recientemente
D.Mery

60

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

Un procesador incluye registros visibles para el usuario y


registros de control/estado.
Registros de control y estado:
Adicionalmente se cuenta con PSW = program status word:

D.Mery

Signo: contiene le bit de signo del resultado de ltima


operacin
Cero: puesto a uno cuando el resultado es 0
Acarreo: puesto a uno si en la suma hay acarreo o en la
resta hay un adeudo del bit ms significativo
Igual: puesto a uno si el el resultado de una comparacin
lgica es la igualdad
Desbordamiento: Usado para indicar desbordamiento
aritmtico
61

Arquitectura de

Prsentat
ion

Unidad d

[ Organizacin ]

Un procesador incluye registros visibles para el usuario y


registros de control/estado.
Registros de control y estado:
Adicionalmente se cuenta con PSW = program status word:
(cont)

D.Mery

Interrupciones: usado para permitir o inhabilitar


interrupciones
Supervisor: indica si la CPU funciona en modo
supervisor o usuario. nicamente en modo supervisor se
pueden ejecutar ciertas instrucciones privilegiadas y se
puede acceder a ciertas reas de memoria

62

Arquitectura de

Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

63

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

1. Recuperar la siguiente
instruccin desde
memoria (apuntada por
el program counter) y
luego incrementar el
program counter.

2. Decodificar el patrn de
bits en el registro de
instruccin IR

3. Ejecutar la instruccin
indicada en el registro de
instruccin IR

Ciclo de instruccin
D.Mery

64

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

Ciclo fetch (captacin):


FUNCION: Lleva la siguiente instruccin de la memoria a la CPU
1. El program counter tiene la direccin de la siguiente
instruccin.
2. El procesador capta la instruccin de la memoria direccionada
por el PC.
3. Se incremente PC en 1.
4. El cdigo de la instruccin se carga en IR.

D.Mery

65

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

Ciclo decode (decodificacin):


FUNCION: Decodifica los bits presentes en IR
1. Interpreta el cdigo de operacin.

D.Mery

66

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

Ciclo execution (ejecucin):


FUNCION: Ejecuta la instruccin.

Procesador-memoria: transferencia CPU memoria

Procesador-I/O: transferencia CPU mdulo I/O

Procesamiento de datos: operaciones aritmticas o lgicas

Control: cambio de secuencias (eje: JUMP), etc.

Combinacin de las anteriores

D.Mery

67

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

1. El PC contiene el
valor 300. Se carga
esta instruccin en IR
(esto implica el uso de
MAR y MBR)

Ejemplo:
D.Mery

68

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

2. Los primeros 4 bits


de IR (1) indican que
el acumulador AC se
va a cargar con un
dato de la memoria.
Los restantes 12 bits
especifican la direccin
(es decir 940).

Ejemplo:
D.Mery

69

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

3. El registro de PC se
incrementa y se capta
la siguiente instruccin.

Ejemplo:
D.Mery

70

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

4. Los primeros 4 bits


(5) indican que la
instruccin es de suma
entre el acumulador y
una memoria. Los
siguientes 12 bits
indican la direccin de
memoria (941). El
contenido de AC y el
de la posicin 941 se
suman y el resultado
se almacena en AC.

Ejemplo:
D.Mery

71

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

5. El registro PC se
incrementa en 1 y se
capta la siguiente
instruccin.

Ejemplo:
D.Mery

72

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

6. Los primeros 4 bits


indican (2) que el
acumulador se debe
almacenar en una
memoria. Los
siguientes 12 bits
indican la direccin de
la memoria (941). El
contenido de AC se
almacena en la
posicin 941.

Ejemplo:
D.Mery

73

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

Cuntos ciclos de
instruccin se
necesitan?

D.Mery

74

Arquitectura de

Prsentat
ion

[ Organizacin ]

Ciclos fetch, decode, ex

Cuntos ciclos de
instruccin se
necesitan?
R/. Tres

D.Mery

75

Arquitectura de

Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

76

Arquitectura de

Prsentat
ion

[ Organizacin ]
Instrucciones bsicas del Assembler Intel:
Registros AL, BL, CL, DL (R)
MOV R,dato

; copia dato en registro R


; ej: MOV AL,00h

MOV R1,R2

; copia registro R1 en R2.


; ej: MOV AL,CL

DEC R
INC R

; R = R 1, ej: DEC DL
; R = R + 1, ej: INC CL

ADD R,dato
ADD R1,R2

; R = R + dato, ej: ADD AL,03h


; R1 = R1 + R2, ej: ADD CL,AL

Lo mismo para SUB, AND, OR, XOR


JNBE direccin
JBE direccin
D.Mery

; salta a direccin si ltima operacin > 0


; salta a direccin si ltima operacin 0
77

Arquitectura de

[ Organizacin ]
Ejercicio:
Hacer un programa que multiplique AL x BL y el resultado lo escriba en CL.

D.Mery

78

Arquitectura de

[ Organizacin ]
Las instrucciones de una CPU a otra difieren bastante,
sin embargo en todas las CPU se puede encontrar el
siguiente conjunto de instrucciones:
1.- Instrucciones de transferencias de datos
2.- Instrucciones aritmticas
3.- Instrucciones lgicas
4.- Control de flujo
5.- Entrada / Salida
D.Mery

79

Arquitectura de

[ Organizacin ]
1.- Instrucciones de transferencias de datos

D.Mery

MOVE

transferir registros en la CPU

STORE

registro memoria

LOAD

memoria registro

CLEAR

pone un registro en ceros

SET

pone un registro en unos

PUSH

introduce en la pila

POP

extrae en la pila

80

Arquitectura de

[ Organizacin ]
1.- Instrucciones de transferencias de datos
Acciones:
Transfiere datos de una posicin a otra.
Si se implica a la memoria:
determina la direccin de la memoria
inicia lectura/escritura en memoria

D.Mery

81

Arquitectura de

[ Organizacin ]
2.- Instrucciones aritmticas

D.Mery

ADD

suma dos operandos

SUBSTRACT

resta dos operandos

MULTIPLY

multiplica dos operandos

DIVIDE

divide dos operandos

ABSOLUTE

calcula valor absoluto del operando

NEGATE

cambia el signo del operando

INCREMENTE

sube en 1 el operando

DECREMENTE

baja en 1 el operando
82

Arquitectura de

[ Organizacin ]
2.- Instrucciones aritmticas
Acciones:
Puede implicar transferencias de datos, antes y/o despus.
Realiza la operacin en la ALU
Actualiza cdigos e indicadores de condicin.

D.Mery

83

Arquitectura de

[ Organizacin ]
3.- Instrucciones lgicas

D.Mery

AND

Y lgico bit a bit

OR

O lgico bit a bit

NOT

no lgico bit a bit

XOR

o exclusivo lgico bit a bit

TEST

evala condiciones

COMPARE

comparacin de dos operandos

SHIFT

desplazamiento izquierda o derecha

ROTATE

desplazamiento cclico
84

Arquitectura de

[ Organizacin ]
3.- Instrucciones lgicas
Acciones:
Puede implicar transferencias de datos, antes y/o despus.
Realiza la operacin en la ALU
Actualiza cdigos e indicadores de condicin.

D.Mery

85

Arquitectura de

[ Organizacin ]
4.- Control de flujo
JUMP

salto incondicional

JUMP CON

salto condicional

JUMP SUB

salto a subrutina

RETURN

retorno de subrutina

SKIP

incrementa PC en 1

SKIP CON

incremento condicional de PC en 1

HALT

detiene la ejecucin del programa

WAIT

detiene la ejecucin hasta una condicin

NOP

no ejecuta operacin alguna

D.Mery

86

Arquitectura de

[ Organizacin ]
4.- Control de flujo
Acciones:
Actualiza el contador de programa.
En el caso de llamadas y retornos de subrutinas, gestiona la
transferencia y enlace de parmetros.

D.Mery

87

Arquitectura de

[ Organizacin ]
5.- Entrada / salida

D.Mery

INPUT

transferir I/O memoria o registro

OUTPUT

transferir memoria o registro I/O

START I/O

inicializa dispositivo I/O

TEST I/O

transfiere informacin de estado de I/O

88

Arquitectura de

[ Organizacin ]
5.- Entrada / salida
Acciones:
Cursa una orden a un mdulo de E/S
En el caso de E/S asignada en memoria, determina la direccin de
memoria correspondiente.

D.Mery

89

Arquitectura de

[ Organizacin ]
Algunas instrucciones del Z-80

LD A, (direccin)
LD A, valor
LD (direccin), A
LD B, A
LD HL, valor

carga el contenido de la memoria 'direccin' en el registro A


carga 'valor' en el registro A
carga el contenido del registro A en la memoria apuntada
por 'direccin'
carga el contenido del registro A en el registro B
carga 'valor' en el registro HL

NOTA: En el Z-80, los registros A y B son de un byte, el registro HL es de


dos bytes y las direcciones son de 16 bits.

D.Mery

90

Arquitectura de

Prsentat
ion

[ Organizacin ]
Algunas instrucciones del Z-80
NOTA: En el Z-80, los registros A y B son de un byte, el registro HL es de
dos bytes y las direcciones son de 16 bits.
ADD A, B
SUB B
ADD (HL)

carga en A los 8 bits menos significativos de la suma A + B


carga en A los 8 bits menos significativos de la resta A - B
carga en A los 8 bits menos significativos de la suma de A
con el contenido de la memoria que apunta el registro HL
INC HL
incrementa en 1 el registro HL
INC A
incrementa en 1 el registro A
INC B
incrementa en 1 el registro B
DEC A
decrementa en 1 el registro A
DEC B
decrementa en 1 el registro B
DEC HL
decrementa en 1 el registro HL
JP NZ, label el programa salta a la direccin 'label' si la ltima operacin
aritmtica no es cero
D.Mery

91

Arquitectura de

Prsentat
ion

[ Organizacin ]
Examen de licenciatura 2004-2:
Escriba un programa en ensamblador Z-80 que calcule el
checksum de un vector de 256 bytes ubicado en las
direcciones de memoria 0800h a 08FFh. El checksum
calculado debe ser una palabra de 8 bits correspondiente al
byte menos significativo de la suma de los 256 bytes del
vector. El programa adems debe comparar el checksum
calculado con el checksum verdadero que se encuentra
almacenado en la direccin 0900h. Si ambos valores son
iguales, se debe escribir el byte 00h en la direccin de
memoria 0A00h. Si ambos valores son distintos, se debe
escribir en la direccin de memoria 0A00h los 8 bits menos
significativos de la diferencia 'checksum verdadero menos
checksum calculado'.
D.Mery

92

Arquitectura de

Prsentat
ion

[ Organizacin ]
Solucin
LD
HL,0800H
LOOP

LD A,00H
LD B,A
ADD (HL)
INC HL
DEC B
JP

NZ,LOOP
LD B,A
LD A,
(0900H)
SUB B
LD
D.Mery

(0A00H),A

93

Arquitectura de

Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

94

Arquitectura de

Prsentat
ion

[ Organizacin ]

Modos de direccionamient

Una instruccin tiene operandos:


Ej: ADD A,(940)

%( A = A + (940))

Los operandos son A y el contenido de 940.

D.Mery

95

Arquitectura de

Prsentat
ion

[ Organizacin ]

Modos de direccionamient

Una instruccin tiene operandos:


Ej: ADD A,(940)

%( A = A + (940))

Los operandos son A y el contenido de 940.


Cmo se pueden referenciar los operandos?
R/. Con los modos de direccionamiento.

D.Mery

96

Arquitectura de

Prsentat
ion

[ Organizacin ]
Instruccin

Modos de direccionamient

Instruccin
Opcode

D.Mery

Nmero (N)

97

Arquitectura de

Prsentat
ion

[ Organizacin ]
1.
2.
3.
4.
5.
6.

D.Mery

Modos de direccionamient

Inmediato
Directo (o absoluto)
Indirecto
Registro
Indirecto con registro
Desplazamiento (Indexado)

98

Arquitectura de

Prsentat
ion

[ Organizacin ]
1. Inmediato

Modos de direccionamient

Instruction
Opcode

D.Mery

Operand

99

Arquitectura de

Prsentat
ion

[ Organizacin ]
1. Inmediato

Modos de direccionamient

Operando es parte de la instruccin


Operando = N
Ej: ADD 5
Suma 5 al acumulador
5 es un operando

No hay referencia adicional a memoria


Rpido
Rango limitado
D.Mery

100

Arquitectura de

Prsentat
ion

[ Organizacin ]
Modos de direccionamient
2. Directo (o absoluto)
Instruction
Opcode

Address A

Memory

Operand

D.Mery

101

Arquitectura de

Prsentat
ion

[ Organizacin ]
Modos de direccionamient
2. Directo (o absoluto)
El operando est en la direccin
referenciada por N
Operando = (N)
Ej: ADD (941) %A = A + (941)
Hay slo un acceso a la memoria

D.Mery

102

Arquitectura de

Prsentat
ion

[ Organizacin ]
3. Indirecto

Modos de direccionamient

Instruction
Opcode

Address A

Memory
Pointer to operand

Operand

D.Mery

103

Arquitectura de

Prsentat
ion

[ Organizacin ]
3. Indirecto

Modos de direccionamient

Operando est en la memoria que


direcciona la memoria direccionada por N
Operando = ((N))
Existe acceso mltiple a la memoria para
encontrar el operando
Este direccionamiento es muy lento

D.Mery

104

Arquitectura de

Prsentat
ion

[ Organizacin ]
4. Registro

Modos de direccionamient

Instruction
Opcode

Register Address R

Registers

Operand

D.Mery

105

Arquitectura de

Prsentat
ion

[ Organizacin ]
4. Registro

D.Mery

Modos de direccionamient

El operando es un registro de la CPU


Operando = Registro indicado por N, RN
Nmero limitado de registros
Instruccin rpida
Instruccin corta
No acceso a memoria
Espacio de direcciones limitado

106

Arquitectura de

Prsentat
ion

[ Organizacin ]
Modos de direccionamient
5. Indirecto con registro
Instruction
Opcode

Register Address R

Memory

Registers

Operand

Pointer to Operand

D.Mery

107

Arquitectura de

Prsentat
ion

[ Organizacin ]
Modos de direccionamient
5. Indirecto con registro
El operando est en la memoria
direccionada por un registro.
Operando = (RN)
Hay un acceso menos a memoria que en
direccionamiento indirecto

D.Mery

108

Arquitectura de

Prsentat
ion

[ Organizacin ]
Modos de direccionamient
6. Desplazamiento
Instruction
Opcode Register R Address A

Memory

Registers

Pointer to Operand

D.Mery

Operand

109

Arquitectura de

Prsentat
ion

[ Organizacin ]
Modos de direccionamient
6. Desplazamiento
El nmero N de la instruccin se parte en
2: una parte N1 indica un registro y otra
indica una direccin N2
Operando = (RN1 + N2)

D.Mery

110

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

D.Mery

111

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
Formato de las instrucciones del 68000:
Label

Direccin

nemotcnico[.S]

operando1,[operando2]

Instruccin

Operandos

Longitud de
los operandos
B = byte
W = word
L = large word
D.Mery

112

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
Formato de las instrucciones del 68000:
Label

nemotcnico[.S]

INICIO

MOVE.B

operando1,[operando2]

D3,D4

Copia el byte menos significativo de D3 en D4

D.Mery

113

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
Formato de las instrucciones del 68000:
Label

nemotcnico[.S]

INICIO

MOVE.B

operando1,[operando2]

D3,D4

Copia el byte menos significativo de D3 en D4


WARNING:
En el 68000 la sintaxis es al revs que otros
Procesadores. Esta instruccin significa que
Datos de D3 se copian en D4 y NO VICEVERSA!!
D.Mery

114

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
Formato de las instrucciones del 68000:
Label

nemotcnico[.S]

operando1,[operando2]

Para usar nmeros:


%
$

binario
hexagesimal

Ejemplo:

D.Mery

ADD.W %000000001000111110001,D2
MOVE.L #$18,D6

115

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
LA MEMORIA

La memoria principal de este computador est formada por celdas de un byte (8


bits), que constituyen la unidad bsica de lectura o escritura, identificndose
mediante una direccin.
Los procesos de lectura y escritura pueden realizarse con varias celdas
consecutivas simultneamente, debiendo indicar el procesador a la memoria
principal dos parmetros, la direccin de la primera celda de memoria y la
longitud de la informacin a la que se desea acceder. Siendo esta longitud de:
[B]
[W]
[L]

D.Mery

un byte
dos bytes (una palabra) o
cuatro bytes (palabra larga).

116

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
LA MEMORIA

8 bits
500

501

W
L

502
503
504

D.Mery

117

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
LA MEMORIA (cont.)

El tamao mximo de la memoria viene determinado por el nmero de bits de los


registros de direcciones que tiene el procesador, siendo en el caso del Motorola
68000 de 32 bits pero, debido a limitaciones en el montaje slo pueden utilizarse
24 como mximo, desde 0 hasta FFFFFF .
El procesador puede leer y escribir informacin de diferentes tamaos, existiendo
una norma para almacenar las palabras (W) y las palabras largas (L), y siendo
esta la de comenzar por el byte ms significativo.
Existen 7 registros de direcciones y son: A0, A1, A2, A3, A4, A5 y A6, siendo stos
de 32 bits aunque slo pudiendose utilizar 24 bits para direccionar como antes se
ha mencionado.

D.Mery

118

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
LA MEMORIA

500

8 bits

8 bits

8 bits

0F

09

08

A4

34

501
502

AF

503

C0

504
Almacenamiento de
$0F en 500
(Byte)

D.Mery

Almacenamiento de
$09A4 en 500
(Word)

119

Almacenamiento de
$0834AFC0 en 500
(Large)

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

REGISTROS DE DATOS
El Motorola 68000 consta de 8 registros de datos, que son D0, D1, D2, D3, D4,
D5, D6 y D7. Cada uno consta de 32 bits. En muchas instrucciones existe la
posibilidad de especificar el tamao del dato, indicndose este mediante el sufijo
S (B, W y L), que va aadido al nemotcnico de la instruccin.
La forma en que se almacenan los datos en los registros, viene dada por su
longitud, ya que como sta es variable, irn ocupndolos de izquierda a derecha
empezando por el bit menos significativo del registro.

D.Mery

120

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

MODOS DE DIRECCIONAMIENTO
Existen cuatro modos de direccionamiento:
1.- Direccionamiento inmediato: almacena el operando precedido del smbolo #
en el registro indicado.
Ejemplo: MOVE.L #$18,D6
Significa: D6.L $18

Para recordar:
%
$

D.Mery

121

binario
hexagesimal
Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

MODOS DE DIRECCIONAMIENTO (cont...)


2.- Direccionamiento directo o absoluto: almacena el operando que est en la
direccin de memoria especificada en el registro de datos indicado.
Ejemplo: ADD.W %000000001000111110001,D2 suma la palabra que est en la
direccin de memoria indicada, a D2.
Significa: D2.W D2.W + (%000000001000111110001)

Para recordar:
%
$

D.Mery

122

binario
hexagesimal
Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

MODOS DE DIRECCIONAMIENTO (cont...)


3.- Direccionamiento mediante registro: apunta a la direccin del registro
donde est el dato.
Ejemplo: MOVE.B D3,D4 copia el contenido del registro D3 (byte) a D4.
Significa: D4.B D3.B

D.Mery

123

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:
a)

Direccionamiento mediante registro normal: se da la direccin del registro


donde est la direccin del dato. El nombre del registro se escribe entre
parntesis.
Ejemplo: ADD.B (A0),D6 suma el contenido de la posicin de memoria (byte)
cuya direccin est en A0 al registro D6, guardando el resultado en este
ltimo.
Significa: D6.B D6.B + (A0)

D.Mery

124

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:
b)

Direccionamiento relativo a registro con posincremento: incrementa en


una cantidad de memoria, segn sea el tamao del operando (1 para B, 2
para W y 4 para L), despus de traer el contenido de la posicin de memoria
indicada por el registro de direcciones.
Ejemplo: MOVE.W (A0)+,D0 copia en D0 el contenido de la posicin de
memoria direccionada por A0 y luego incrementa en 2 el contenido de A0.
Significa:

D.Mery

D0.W (A0)
A0 A0 + 2

125

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:

c) Direccionamiento relativo a registro con predecremento: Decrementa en


una cantidad de memoria, segn sea el tamao del operando, el registro de
direcciones y trae despues el contenido de la posicin de memoria cuya direccin
es el nuevo valor de dicho registro.
Ejemplo: MOVE.B -(A0),D0 decrementa en uno el contenido del registro A0 y
luego copia en D0 el contenido de la nueva posicin de memoria direccionada por
A0.
Significa:

D.Mery

A0 A0 1
D0.B (A0)

126

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:

d) Direccionamiento relativo a registro con desplazamiento: El contenido de


la posicin de memoria cuya direccin viene dada por la suma del valor del
registro de direcciones y una cantidad fija denominada desplazamiento, pudiendo
ser este positivo o negativo y su valor viene condiciondo por el tamao del
operando.
Ejemplo: MOVE.L 6(A0),D1 copia en el registro D1 el contenido de la posicin de
memoria cuya direccin viene dada por la suma de 6 multiplicado por 4(L) al
contenido de A0.
Significa:

D.Mery

D1.L (A0 + 64)

127

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:

e) Direccionamiento relativo a registro con ndice: Este modo de


direccionamiento es la extensin natural del anterior, ya que permite usar
desplazamientos variables, utilizando como desplazamiento el resultado de
sumar un nmero fijo al contenido de un registro de datos denominado registro
ndice.
Ejemplo: MOVE.B 4(A0,D1), D0 copia en el registro D0 el contenido de la
posicin de memoria cuya direccin es el resultado de sumar el nmero 4, el
contenido del registro A0 y el contenido del registro D1. Este modo de
direccionamiento no altera el registro de direcciones ni el registro ndice.
Significa:

D.Mery

D0.B (4+A0+D1)

128

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

MODOS DE DIRECCIONAMIENTO (cont...)


4.- Direccionamiento relativo a registro:
f) Direccionamiento relativo al contador de programa con desplazamiento:
Cuando es necesario hacer referencia a un operando relativo a la posicin de la
proxima instruccin que va a ser ejecutada.
Ejemplo: MOVE.B 24(PC),D0 copia en el registro D0 el contenido de la posicin
de memoria cuya direccin es la suma de 24 y el valor del contador del programa.
Significa:

D.Mery

D0.B (24+PC)

129

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:

g) Direccionamiento relativo al contador de programa con ndice: Utiliza


como desplazamiento el resultado de sumar un nmero fijo al contenido de un
registro de datos.
Ejemplo: MOVE.B 24(PC,D0),D1 copia en el registro D1 el contenido de la
posicin de memoria cuya direccin es el resultado de sumar el nmero 24, el
contador de programa y el contenido del registro D0.
Significa:

D.Mery

D1.B (24 + PC + D0)

130

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

FORMATOS DE INSTRUCCIONES
Los formatos empleados para las instrucciones utilizan una o ms palabras de
16 bits. La primera palabra especifica el cdigo de la operacin y en muchos
casos la direccin de un operando. Las especificaciones para completar los
operandos, cuando no es suficiente con una palabra van a continuacin de la
primera palabra. Cada operando utilizar como mximo dos palabras de
ampliacin, equivalente a una palabra larga, despus de la del cdigo de
operacin, por lo que la instruccin ms larga del Motorola 68000 ocupa 5
palabras (10 bytes), siendo 1 para el cdigo de instruccin, 2 palabras de
ampliacin para el operando origen, y 2 palabras de ampliacin ms para el
operando destino.

D.Mery

131

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

FORMATOS DE INSTRUCCIONES
La informacin que identifica la situacin exacta del operando, denominada
direccin efectiva, se codifica en los formatos de instruccin mediante dos
campos, siendo uno el modo de direccionamiento (MD) y el otro el de registro.
Cada campo tiene un tamao de 3 bits y se incluyen en la primera palabra de
instruccin. El campo MD identifica el modo de direccionamiento empleado y el
campo CR indica el registro empleado para obtener la direccin del operando. A
veces se utilizan las palabras de ampliacin ya que la direccin efectiva requiere
incluir ms informacin sobre la situacin del operando en la palabra de
instruccin.

D.Mery

132

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

INSTRUCCIONES CONDICIONALES
Al realizar operaciones matemticas existe la posibilidad de desbordamiento,
por lo que se realiza un test automticamente, quedando el resultado
almacenado en un registro de control, dedicado especialmente a tal efecto,
denominado registro de cdigo de condicin (CCR), pudiendose leer mediante la
instruccin MOVE. Este registro consta de 5 flags que se almacenan en los 5 bits
menos significativos del registro de estado (SR).

D.Mery

133

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
INSTRUCCIONES CONDICIONALES

Estos 5 bits tienen las siguientes denominaciones, ordenadas desde el bit menos
significativo:
C indicador de acarreo (carry flag): indica el valor del bit de acarreo de la
posicin ms significativa del resultado de una operacin, ponindose a 1 si existe
desbordamiento.
V indicador de desbordamiento (overflow flag): indica si en el resultado de una
operacin en complemento a 2 existe desbordamiento, poniendose a 1.
Z es el indicador de cero (zero flag): se pone a 1 cuando sea 0 el resultado de
una operacin aritmetica o lgica.
N es el indicador de nmero negativo (negative flag): se pone a 0 si es positivo
y a 1 si es negativo el signo del resultado de una operacin en complemento a 2.
X es el indicador extendido (extended flag): funciona de la misma manera que
C, pero nicamente con operaciones aritmticas o de desplazamiento.
D.Mery

134

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

INSTRUCCIONES DEL 68000


1.- Instrucciones de transferencias de datos
2.- Instrucciones aritmticas
3.- Instrucciones lgicas
4.- Instrucciones de desplazamiento y rotacin
5.- Instrucciones de manipulacin de bits
6.- Instrucciones de operacin en cdigo BCD
7.- Instrucciones de ramificacin y salto
8.- Instrucciones de manejo de subrutinas

D.Mery

135

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
1.- Instrucciones de transferencias de datos

El conjunto de estas instrucciones permite el movimiento de datos entre


registros de la CPU, entre registros y memoria y entre posiciones de
memoria. Estas son las siguientes:

D.Mery

Instruccin
MOVE

Descripcin

MOVEA

Copia direcciones

MOVEQ

Copia rpido registros de datos (8 bits)

MOVEM

Copia de memoriaS a registroS

EXG y SWAP

Intercambio de contenidos

LEA y PEA

Determina direccin efectiva de operando

LINK y UNLINK

Facilita el uso de la pila en saltos a subrutinas

Copia de datos de fuente a destino

136

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
2.- Instrucciones aritmticas

El Motorola 68000 dispone de instrucciones para las 4 operaciones


aritmticas, sobre operandos binarios, y suma y resta sobre datos
codificados en BCD. Adems de cambio de signo para ambos tipo de datos,
instrucciones de comparacin, extensin de signo y actualizacin de los
cdigos de condicin (CCR) segn el valor de un dato:

D.Mery

Instruccin
ADD / SUB

Descripcin

ADDA / SUBA

Suma / resta direcciones

ADDI / SUBI

Suma / resta con direccionamiento inmediato

ADDQ / SUBQ

Suma / resta rpida (8 bits)

ADDX / SUBX

Suma / resta incluyendo el flag X

CLR

Carga un cero binario en el operando

Suma resta general

137

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
2.- Instrucciones aritmticas (cont)

El Motorola 68000 dispone de instrucciones para las 4 operaciones


aritmticas, sobre operandos binarios, y suma y resta sobre datos
codificados en BCD. Adems de cambio de signo para ambos tipo de datos,
instrucciones de comparacin, extensin de signo y actualizacin de los
cdigos de condicin (CCR) segn el valor de un dato:

D.Mery

Instruccin
MULS y MULU

Descripcin

DIVS y DIVU

Division signed & Division unsigned

CMP

Compara dos operandos

CMPA

Compara dos direcciones

CMPI

Compara utilizando direccionamiento inmediato

NEG

Complemento a 2

NEGX

Negacin extendida considerando flag X

Multiply signed & Multiply unsigned

138

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
3.- Instrucciones lgicas

El Motorola 68000 dispone de cuatro instrucciones que realizan funciones


lgicas, que actan bit a bit sobre datos de 8, 16, 32 bits y cuatro para
manejar bits individuales sobre datos de 8 32 bits.

D.Mery

Instruccin
AND

Descripcin

ANDI

And con direccionamiento inmediato

EOR / EORI

Or exclusivo / con direccionamiento inmediato

NOT

Negacin lgica

OR / ORI

Or lgico / con direccionamiento inmediato

TST

Comprueba un operando

Scc

Comprueba los cdigos de condicin CCR

And lgico

139

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
4.- Instrucciones de desplazamiento

Se caracterizan por desplazar o rotar el operando bit a bit a la derecha o a la


izquierda. El operando destino, que es el afectado por el desplazamiento o
por la rotacin siempre ser un registro de datos.

D.Mery

Instruccin
ASL / ASR

Descripcin

LSL / LSR

Logical shift left / right

ROL / ROR

Rotate left / right

ROXL / ROXR

Rotate left / right incluyendo flag X

Aritmetic shift left / right

140

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
5.- Instrucciones de manipulacin de bits

El Motorola 68000 permite comprobar, poner a cero , poner a uno e invertir


los bits individuales de un valor entero. El resultado lo pone en el flag Z.

D.Mery

Instruccin
BTST

Descripcin

BCLR

Bit clear

BSET

Bit set

BCHG

Bit change

Bit test

141

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
6.- Instrucciones de operacin en cdigo BCD

El Motorola 68000 permite comprobar, poner a cero , poner a uno e invertir


los bits individuales de un valor entero. El resultado lo pone en el flag Z.

D.Mery

Instruccin
ABCD

Descripcin

NBCD

Niego el destino

SBCD

Resta fuente al destino

Suma fuente al destino

142

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
7.- Instrucciones de ramificacin y salto

Bcc (Branch on condition code) Label: salta a label cuando cc es verdadero:


Bcc

D.Mery

Condicin (cc)

BEQ

LABEL

BNE

LABEL

Z'

BCS

LABEL

BCC

LABEL

C'

BHI

LABEL

C' Z'

BLS

LABEL

C+Z

BMI

LABEL

BPL

LABEL

N'

BVS

LABEL

BVC

LABEL

V'

BGT

LABEL

Z' [[N V] + [N' V']]

BGE

LABEL

[N V] +[N' V']

BLT

LABEL

[N V'] + [N' V]

BLE

LABEL

Z + [N V'] + [N' V]
143

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

7.- Instrucciones de ramificacin y salto (cont)

D.Mery

Instruccin
DBcc

Descripcin

BRA

Branch incondicional (direccionamiento relativo)

JMP

Jump incondicional (direccionamiento absoluto)

STOP

Se detiene la CPU

NOP

No ejecuta operacin (sirve como delay)

Decrement and branch on condition

144

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]
8.- Instrucciones de manejo de subrutinas

BSR y JSR: (Branch to Subrutine y Jump to Subrutine) el operando


asociado con estas instrucciones debe ser la direccin de memoria en la
que se comienza la subrutina, con direccionamiento absoluto para JSR,
y relativo a PC para BSR. Al ejecutarse cualquiera de las dos
instrucciones, se almacena automticamente en la pila el valor del
contador de programa en el momento anterior al salto, cuando su
contenido apunta a la direccin de comienzo de la instruccin siguiente a
JSR o BSR.
La subrutina debe tener como ltima instruccin a ejecutar RTS (Return
from Subrutine) o RTR (Return and Restore). Ambas recuperan de la pila
el valor del contador del programa, lo que permite reanudar la ejecucin
del programa precisamente en el punto que haba sido abandonado. La
instruccin RTR tambin repone el CCR extrayendo una palabra de la
pila inmediatamente antes de recuperar el PC. La subrutina debe llevar a
la pila, justamente encima de las posiciones que contienen la posicin de
retorno, una palbra cuyos 5 bits menos significativos sern llevados al
CCR al ejecutarse RTR, que puede ser una copia del CCR al entrar en la
subrutina, o cualquier otro valor.
D.Mery

145

Arquitectura de

Prsentat
ion

Instruccione

[ Organizacin ]

Reference Manual
68000.pdf

D.Mery

146

Arquitectura de

Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

147

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Esta operacin se podra hacer en un microprocesador
teniendo las variables X, Y, Z almacenadas en la memoria,
por ejemplo: X en la posicin 500, J en la 501 y K en la 502,
y ejecutando las siguientes instrucciones:
1.
2.
3.
4.

D.Mery

Cargar el contenido de 500 en el acumulador.


Sumar al acumulador el contenido de 501.
Sumar al acumulador el contenido de 502.
Almacenar el acumulador en la posicin 503.

148

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Suponiendo un cdigo binario para las instrucciones:
1. Cargar el contenido de 500 en el acumulador:
0010 0101 0000 0000

D.Mery

149

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Suponiendo un cdigo binario para las instrucciones:
1. Cargar el contenido de 500 en el acumulador:
0010 0101 0000 0000

Este cdigo significa cargar en el acumulador


el contenido de esto
(0101 0000 0000 significa 500)
D.Mery

150

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Suponiendo un cdigo binario para las instrucciones:
1. Cargar el contenido de 500 en el acumulador:
0010 0101 0000 0000
2. Sumar al acumulador el contenido de 501.
0011 0101 0000 0001
3. Sumar al acumulador el contenido de 502.
0011 0101 0000 0010
4. Almacenar el acumulador en la posicin 503.
0001 0101 0000 0011
D.Mery

151

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Adems hay que poner en las direcciones 500, 501 y
502 los valores de las variables X, Y y Z:

500
501
502

D.Mery

0000 0000 0010 0001


0000 0000 0011 0010
0000 0001 0001 1010

152

X es 0021
Y es 0032
Z es 011A

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z

D.Mery

Programa en binario:

Explicacin

000
001
002
003
:
500
501
502
503

0010 0101 0000 0000


0011 0101 0000 0001
0011 0101 0000 0010
0001 0101 0000 0011

A (500)
A A + (501)
A A + (502)
(503) A

0000 0000 0010 0001


0000 0000 0011 0010
0000 0001 0001 1010
0000 0000 0000 0000

Dato X
Dato Y
Dato Z
Libre para escribir T

153

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z

000
001
002
003
:
500
501
502
503
D.Mery

0010 0101 0000 0000


0011 0101 0000 0001
0011 0101 0000 0010
0001 0101 0000 0011

Lenguaje
mquina

0000 0000 0010 0001


0000 0000 0011 0010
0000 0001 0001 1010
0000 0000 0000 0000
154

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Programa
en hexa
000
001
002
003
:
500
501
502
503
D.Mery

0010 0101 0000 0000


0011 0101 0000 0001
0011 0101 0000 0010
0001 0101 0000 0011

000
001
002
003

2500
3501
3502
1503

0000 0000 0010 0001


0000 0000 0011 0010
0000 0001 0001 1010
0000 0000 0000 0000

500
501
503
504

0021
0032
011A
0000

155

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Programa
simblico
000
001
002
003
:
500
501
502
503
D.Mery

0010 0101 0000 0000


0011 0101 0000 0001
0011 0101 0000 0010
0001 0101 0000 0011

000
001
002
003

LDA (500)
ADD (501)
ADD (502)
STA (503)

0000 0000 0010 0001


0000 0000 0011 0010
0000 0001 0001 1010
0000 0000 0000 0000

500
501
502
503

DAT 0021
DAT 0032
DAT 011A
DAT 0000

156

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sencillo: implementar T = X + Y + Z
Programa
en assembler
000
001
002
003
:
500
501
502
503
D.Mery

0010 0101 0000 0000


0011 0101 0000 0001
0011 0101 0000 0010
0001 0101 0000 0011

INICIO

LDA (VX)
ADD (VY)
ADD (VZ)
STA (VT)

0000 0000 0010 0001


0000 0000 0011 0010
0000 0001 0001 1010
0000 0000 0000 0000

VX
VY
VZ
VT

DAT 0021
DAT 0032
DAT 011A
DAT 0000

157

Arquitectura de

Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

158

Arquitectura de

Prsentat
ion

[ ndice ]
3.1 Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Programacin en assembler
3.6 Formatos de instruccin
3.7 Modos de direccionamiento
3.8 Mecanismos de subrutinas
3.9 E/S e interrupciones
D.Mery

159

Arquitectura de

Prsentat
ion

[ Organizacin ]
Uso de subrutinas:
Frecuentemente la misma pieza de cdigo debe escribirse
varias veces en muchas partes diferentes de un programa.
En vez de repetir el cdigo cada vez que sea necesario, hay
una ventaja obvia si las instrucciones comunes se escriben
solamente una vez.
Un conjunto de instrucciones comunes que pueden utilizarse
en un programa muchas veces se denomina subrutina.

D.Mery

160

Arquitectura de

Prsentat
ion

[ Organizacin ]

Uso de subrutinas:
Cada vez que la subrutina se utiliza en la parte del programa
principal, una ramificacin se ejecuta al comienzo de la
subrutina.
Despus que la subrutina ha sido ejecutada, una ramificacin
se hace de nuevo al programa principal.

D.Mery

161

Arquitectura de

Prsentat
ion

[ Organizacin ]
Uso de subrutinas:
Programa
principal

Subrutina

Llamado a
Subrutina

D.Mery

162

Arquitectura de

Prsentat
ion

[ Organizacin ]
Uso de subrutinas:
Programa
principal

Subrutina

Llamado a
Subrutina

Llamado a
Subrutina
D.Mery

j
j+1
163

Arquitectura de

Prsentat
ion

[ Organizacin ]
Uso de subrutinas:
Los registros y las memorias son comunes para el programa
principal y para la subrutina, i.e., se consideran variables
globales.
Ventaja: la comunicacin de los parmetros entre el
programa principal y la subrutina es simple y rpido.
Desventaja: el programador puede olvidar que ciertos
registros usados por en el programa principal no deben ser
alterados en la subrutina, esto puede causar serios
problemas y la deteccin de este error es difcil.
D.Mery

164

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo:
Se desea hacer un programa que realice las siguientes
operaciones:
(0100) (0100) + 5
(0200) (0200) + 5
(0204) (0204) + 5

D.Mery

165

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo:
Se desea hacer un programa que realice las siguientes
operaciones:
(0100) (0100) + 5
(0200) (0200) + 5
(0204) (0204) + 5
La mejor solucin sera utilizando una subrutina que tenga
como parmetro una direccin X y que realice la operacin:
(X) (X) + 5
El programa principal debe cargar correctamente el registro X
y llamar a la subrutina tres veces.
D.Mery

166

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo:
Se desea hacer un programa que realice las siguientes
operaciones:
(0100) (0100) + 5
(0200) (0200) + 5
(0204) (0204) + 5
Programa principal
LOAD X,0100
CALL SUM5
LOAD X,0200
CALL SUM5
LOAD X,0204
CALL SUM5
D.Mery

Subrutina
SUM5 LOAD A,(X)
ADD 5
STORE (X),A
RET

167

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo:
Se desea hacer un programa que realice las siguientes
operaciones:
(0100) (0100) + 5
(0200) (0200) + 5
(0204) (0204) + 5

Qu pasa si el programa
principal estaba usando A?

Programa principal
LOAD X,0100
CALL SUM5
LOAD X,0200
CALL SUM5
LOAD X,0204
CALL SUM5
D.Mery

Subrutina
SUM5 LOAD A,(X)
ADD 5
STORE (X),A
RET

168

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo:
Se desea hacer un programa que realice las siguientes
operaciones:
(0100) (0100) + 5
(0200) (0200) + 5
(0204) (0204) + 5

Qu pasa si el programa
principal estaba usando A?

kaput!!

Programa principal
LOAD X,0100
CALL SUM5
LOAD X,0200
CALL SUM5
LOAD X,0204
CALL SUM5
D.Mery

Subrutina
SUM5 LOAD A,(X)
ADD 5
STORE (X),A
RET

169

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo:
Se desea hacer un programa que realice las siguientes
operaciones:
(0100) (0100) + 5
(0200) (0200) + 5
(0204) (0204) + 5

Solucin: se usa la pila

Programa principal
LOAD X,0100
CALL SUM5
LOAD X,0200
CALL SUM5
LOAD X,0204
CALL SUM5
D.Mery

Subrutina
SUM5 PUSH A
LOAD A,(X)
ADD 5
STORE (X),A
POP A
RET
170

Arquitectura de

Prsentat
ion

[ Organizacin ]
La Pila (stack):
Existe una memoria direccionada por el registro SP (stack
pointer). Cmo se usa?
Cada vez que se hace PUSH X:
(SP) X
SP SP + 1
Cada vez que se hace POP X:
SP SP - 1
X (SP)
(es posible hacer PUSH X y luego POP Y)
D.Mery

171

Arquitectura de

Prsentat
ion

[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control

3.3 Fetch, decodificacin, ejecucin


3.4 Conjunto de instrucciones
3.5 Modos de direccionamiento
3.6 Assembler
3.7 Subrutinas
3.8 Interrupciones
D.Mery

172

Arquitectura de

Prsentat
ion

[ Organizacin ]

El ciclo de una instruccin (sin interrupcin)

D.Mery

173

Arquitectura de

Prsentat
ion

[ Organizacin ]

Diagrama de estado (sin interrupcin)


D.Mery

174

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sin interrupciones: un programa quiere leer datos
del disco duro.
1. El programa solicita datos a la unidad de disco.
2. La unidad de disco recibe solicitud y posiciona el cabezal
del disco en la posicin deseada.
3. La unidad lee los datos.
4. La unidad verifica consistencia de los datos (checksum)
5. if OK (Enva los datos a la CPU) else GOTO 3
6. La CPU recibe datos y contina su programa
1
D.Mery

4
175

t
Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sin interrupciones: un programa quiere leer
datos del disco duro.

Unidad de disco
lee y enva datos
CPU
recibe
datos

CPU
solicita
datos

1
D.Mery

4
176

t
Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sin interrupciones: un programa quiere leer
datos del disco duro.
Qu hace
la CPU en
este tiempo?
CPU
recibe
datos

CPU
solicita
datos

1
D.Mery

4
177

t
Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo sin interrupciones: un programa quiere leer
datos del disco duro.
Qu hace
la CPU en
este tiempo?
CPU
solicita
datos

1
D.Mery

CPU
recibe
datos

NADA!!
la CPU espera

4
178

t
Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo con interrupciones: un programa quiere leer datos
del disco duro.
1. El programa solicita datos a la unidad de disco.
2. La CPU no espera datos, hace otra cosa: por ejemplo
ejecuta otro programa o continua ejecutando el mismo
programa siempre que pueda prescindir de los datos
solicitados.
3. La unidad de disco se encarga de leer los datos
correctamente. Cuando los datos estn listos la unidad
de disco interrumpe a la CPU.
4. La CPU deja de hacer lo que est haciendo y atiende la
interrupcin, i.e., recibe los datos de la unidad de disco.
t (CPU)
t (unidad de disco)
D.Mery

179

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo con interrupciones: un programa quiere leer datos
del disco duro.
CPU
solicita
datos

CPU
hace
otra cosa

CPU
recibe
datos

t
interrupcin

Unidad de disco
lee y enva datos
D.Mery

180

Arquitectura de

Prsentat
ion

[ Organizacin ]
Ejemplo con interrupciones: un programa quiere leer datos
del disco duro.
CPU
solicita
datos

CPU
hace
otra cosa

CPU
recibe
datos

Ahorro de
tiempo

t
interrupcin

Unidad de disco
lee y enva datos
D.Mery

181

Arquitectura de

Prsentat
ion

[ Organizacin ]
La interrupcin es el mecanismo mediante el cual otros
mdulos pueden interrumpir una secuencia normal de
procesamiento.
Programa: por ejemplo divisin por cero
Temporizador: cuando se cumple un tiempo especfico
E/S: cuando hay algo que comunicar
Hardware: cuando ocurre una falla

D.Mery

182

Arquitectura de

Prsentat
ion

[ Organizacin ]

El ciclo de una instruccin (con interrupcin)


D.Mery

183

Arquitectura de

Prsentat
ion

[ Organizacin ]

Diagrama de estado (con interrupcin)


D.Mery

184

Arquitectura de

Prsentat
ion

[ Organizacin ]
Bus de direcciones
A0

A12

A12

CPU

RD
WR

D0

D7

D7

MREQ

Bus de datos

D0

D0

D7

ROM

WR

RAM

RD

RD
CE

CE

A11

D.Mery

A12
A11
:
A0

A0

A11

A0

185

Arquitectura de

Prsentat
ion

[ Organizacin ]
Bus de direcciones
A0

A12

CPU

INT

MREQ
RD
WR

IORQ
D0

D7

Bus de datos

D0

D7

I/O

ROM
CE

A11

D.Mery

decoder

RAM
CE

CE

A0

186

Arquitectura de

Prsentat
ion

[ Organizacin ]
Funcionamiento de las interrupciones (posibilidad 1):
1. El dispositivo I/O cuando necesita interrumpir solicita
atencin y enva una seal INT a la CPU.
2. La CPU termina su instruccin y enva un
reconocimiento a quien interrumpe mediante la seal
IORQ (I/O request).
3. El dispositivo enva por el bus de datos un byte y la
CPU forma una direccin a partir de este byte.
4. La CPU salta a esta direccin y ejecuta el programa
de atencin a la interrupcin.
5. La CPU finaliza esta rutina de interrupcin y regresa
a la direccin que estaba en el momento de la
interrupcin.
D.Mery

187

Arquitectura de

Prsentat
ion

[ Organizacin ]
Funcionamiento de las interrupciones (posibilidad 2):
1. Igual
2. Igual
3. La CPU al saber que es el dispositivo X el que
interrumpe lee el elemento X del vector de
interrupciones ubicado en algn lugar de la
memoria, a partir de este elemento calcula la
direccin de memoria de la rutina de atencin de la
interrupcin.
4. Igual
5. Igual

D.Mery

188

Arquitectura de

Prsentat
ion

[ Organizacin ]

D.Mery

189

Arquitectura de

Prsentat
ion

[ Organizacin ]
Interrupciones mltiples:
1. Inhibicin de interrupciones:
La CPU ignora las interrupciones cuando ya est
procesando una interrupcin.
Las interrupciones ocurridas quedan pendientes y se
ejecutan en una determinada secuencia una vez que la
CPU termine la primera interrupcin.

D.Mery

190

Arquitectura de

Prsentat
ion

[ Organizacin ]

Interrupcin mltiple (secuencial)


D.Mery

191

Arquitectura de

Prsentat
ion

[ Organizacin ]
Interrupciones mltiples (cont):
2. Definicin de prioridades
Interrupciones de baja prioridad pueden ser interrumpidas
por interrupciones de mayor prioridad.
Cuando una interrupcin de prioridad alta ha sido
atendida, la CPU regresa a la interrupcin previa.

D.Mery

192

Arquitectura de

Prsentat
ion

[ Organizacin ]

Interrupcin mltiple (anidadas)


D.Mery

193

Arquitectura de

Prsentat
ion

[ Organizacin ]

Secuencia temporal de varias interrupciones


D.Mery

194

Arquitectura de

Prsentat
ion

Das könnte Ihnen auch gefallen