Beruflich Dokumente
Kultur Dokumente
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
Arquitectura de Computadores
Prsentat
ion
[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control
Arquitectura de Computadores
Prsentat
ion
[ 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
[ 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
[ 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
[ Organizacin ]
Solucin:
1. Leer en la memoria la
posicin 867
1023
:
867
06h
:
778
:
562
04h
:
2
1
0
Read
Arquitectura de Computadores
Prsentat
ion
[ 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
acumulador
Memoria de 1024 8
Direccin 867
D.Mery
Read
Arquitectura de Computadores
Prsentat
ion
[ 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
acumulador
Memoria de 1024 8
Direccin 562
D.Mery
Read
Arquitectura de Computadores
Prsentat
ion
[ 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
acumulador
Memoria de 1024 8
D.Mery
10
Arquitectura de
Prsentat
ion
[ 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
acumulador
Memoria de 1024 8
Direccin 778
D.Mery
11
Write
Arquitectura de
Prsentat
ion
[ Organizacin ]
Solucin general:
1023
Unidad de
aritmtica
y lgica
:
867
:
778
:
562
Unidad
de control
:
2
1
Programa
12
Arquitectura de
Prsentat
ion
[ 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
Memoria de 1024 8
D.Mery
13
Arquitectura de
Prsentat
ion
[ 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
Memoria de 1024 8
D.Mery
14
Significa
leer y
almacenar
en AC
Arquitectura de
Prsentat
ion
[ 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
Memoria de 1024 8
D.Mery
15
Significa lo que se
debe leer:
110110011 = 867
Arquitectura de
Prsentat
ion
[ 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
Memoria de 1024 8
D.Mery
16
Arquitectura de
Prsentat
ion
[ Organizacin ]
Principios:
D.Mery
17
Arquitectura de
Prsentat
ion
[ Organizacin ]
Estructura
D.Mery
18
Arquitectura de
Prsentat
ion
[ Organizacin ]
Detalles
Palabra nmero
01
39
Signo
Palabra instruccin
0
Codop
D.Mery
19 20
Direccin
Codop
19
28
39
Direccin
Arquitectura de
Prsentat
ion
[ Organizacin ]
Detalles
Palabra instruccin
0
Codop
19
Direccin
D.Mery
20
Arquitectura de
Prsentat
ion
[ 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
[ Organizacin ]
Detalles de la estructura
mquina von Neumann
D.Mery
22
(CC)
Arquitectura de
Prsentat
ion
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ Organizacin ]
D.Mery
Codop
Instruccin
Descripcin
00001010
LOAD MQ
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
[ Organizacin ]
Instruccin
Descripcin
00001101
JUMP M(X,8:19)
00001110
D.Mery
30
Arquitectura de
Prsentat
ion
[ Organizacin ]
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
D.Mery
31
Arquitectura de
Prsentat
ion
[ 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
[ 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
[ Sistemas Digitales ]
D
CK
D.Mery
D
CK
CK
34
CK
Arquitectura de
Prsentat
ion
[ Sistemas Digitales ]
D
CK
D.Mery
D
CK
CK
35
CK
Arquitectura de
Prsentat
ion
[ Organizacin ]
Instruccin
00010011
Descripcin
Reemplazar el campo de
direccin de la izquierda de M(X)
por los 12 bits de la derecha de
AC.
36
Arquitectura de
Prsentat
ion
[ Organizacin ]
Ejercicio:
D.Mery
37
Arquitectura de
Prsentat
ion
[ Organizacin ]
Ejercicio:
LOAD M(867)
ADD M(562)
STOR M(778)
D.Mery
38
Arquitectura de
Prsentat
ion
[ Organizacin ]
D.Mery
00000001 001101100011
00000100 001000110010
00100001 001100001010
39
Arquitectura de
Prsentat
ion
[ Organizacin ]
Ejercicio:
D.Mery
40
Arquitectura de
Prsentat
ion
[ Organizacin ]
Ejercicio:
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
[ Organizacin ]
Ejercicio:
D.Mery
42
Arquitectura de
Prsentat
ion
[ Organizacin ]
Ejercicio:
LOAD M(867)
SUB M(562)
JUMP +M(3,28:39)
LOAD M(500)
STOR M(501)
%
%
%
%
%
43
Arquitectura de
Prsentat
ion
[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control
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:
D.Mery
51
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
Funcin de la unidad de control:
codop
D.Mery
decoder
52
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
Componentes del
computador:
D.Mery
53
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
Tareas de la CPU:
54
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
Registros
ALU
Unidad de
Control
Bus de
control
Bus de
datos
Bus de
direcciones
55
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
pueden ser:
1.
2.
3.
4.
Uso general
Datos
Direcciones
Cdigos de condicin
D.Mery
56
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
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 ]
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 ]
60
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
D.Mery
Arquitectura de
Prsentat
ion
Unidad d
[ Organizacin ]
D.Mery
62
Arquitectura de
Prsentat
ion
[ ndice ]
3.1. Mquina de von Neumann
3.2 Unidad de control
63
Arquitectura de
Prsentat
ion
[ Organizacin ]
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 ]
D.Mery
65
Arquitectura de
Prsentat
ion
[ Organizacin ]
D.Mery
66
Arquitectura de
Prsentat
ion
[ Organizacin ]
D.Mery
67
Arquitectura de
Prsentat
ion
[ Organizacin ]
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 ]
Ejemplo:
D.Mery
69
Arquitectura de
Prsentat
ion
[ Organizacin ]
3. El registro de PC se
incrementa y se capta
la siguiente instruccin.
Ejemplo:
D.Mery
70
Arquitectura de
Prsentat
ion
[ Organizacin ]
Ejemplo:
D.Mery
71
Arquitectura de
Prsentat
ion
[ Organizacin ]
5. El registro PC se
incrementa en 1 y se
capta la siguiente
instruccin.
Ejemplo:
D.Mery
72
Arquitectura de
Prsentat
ion
[ Organizacin ]
Ejemplo:
D.Mery
73
Arquitectura de
Prsentat
ion
[ Organizacin ]
Cuntos ciclos de
instruccin se
necesitan?
D.Mery
74
Arquitectura de
Prsentat
ion
[ Organizacin ]
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
76
Arquitectura de
Prsentat
ion
[ Organizacin ]
Instrucciones bsicas del Assembler Intel:
Registros AL, BL, CL, DL (R)
MOV R,dato
MOV R1,R2
DEC R
INC R
; R = R 1, ej: DEC DL
; R = R + 1, ej: INC CL
ADD R,dato
ADD R1,R2
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
STORE
registro memoria
LOAD
memoria registro
CLEAR
SET
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
SUBSTRACT
MULTIPLY
DIVIDE
ABSOLUTE
NEGATE
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
OR
NOT
XOR
TEST
evala condiciones
COMPARE
SHIFT
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
WAIT
NOP
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
OUTPUT
START I/O
TEST 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
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)
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
94
Arquitectura de
Prsentat
ion
[ Organizacin ]
Modos de direccionamient
%( A = A + (940))
D.Mery
95
Arquitectura de
Prsentat
ion
[ Organizacin ]
Modos de direccionamient
%( A = A + (940))
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
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
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
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
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
114
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
Formato de las instrucciones del 68000:
Label
nemotcnico[.S]
operando1,[operando2]
binario
hexagesimal
Ejemplo:
D.Mery
ADD.W %000000001000111110001,D2
MOVE.L #$18,D6
115
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
LA MEMORIA
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.)
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 ]
Para recordar:
%
$
D.Mery
122
binario
hexagesimal
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
D.Mery
123
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:
a)
D.Mery
124
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:
b)
D.Mery
D0.W (A0)
A0 A0 + 2
125
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:
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.Mery
127
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:
D.Mery
D0.B (4+A0+D1)
128
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
D.Mery
D0.B (24+PC)
129
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
MODOS DE DIRECCIONAMIENTO (cont...)
4.- Direccionamiento relativo a registro:
D.Mery
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 ]
D.Mery
135
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
1.- Instrucciones de transferencias de datos
D.Mery
Instruccin
MOVE
Descripcin
MOVEA
Copia direcciones
MOVEQ
MOVEM
EXG y SWAP
Intercambio de contenidos
LEA y PEA
LINK y UNLINK
136
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
2.- Instrucciones aritmticas
D.Mery
Instruccin
ADD / SUB
Descripcin
ADDA / SUBA
ADDI / SUBI
ADDQ / SUBQ
ADDX / SUBX
CLR
137
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
2.- Instrucciones aritmticas (cont)
D.Mery
Instruccin
MULS y MULU
Descripcin
DIVS y DIVU
CMP
CMPA
CMPI
NEG
Complemento a 2
NEGX
138
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
3.- Instrucciones lgicas
D.Mery
Instruccin
AND
Descripcin
ANDI
EOR / EORI
NOT
Negacin lgica
OR / ORI
TST
Comprueba un operando
Scc
And lgico
139
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
4.- Instrucciones de desplazamiento
D.Mery
Instruccin
ASL / ASR
Descripcin
LSL / LSR
ROL / ROR
ROXL / ROXR
140
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
5.- Instrucciones de manipulacin de bits
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
D.Mery
Instruccin
ABCD
Descripcin
NBCD
Niego el destino
SBCD
142
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
7.- Instrucciones de ramificacin y salto
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
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 ]
D.Mery
Instruccin
DBcc
Descripcin
BRA
JMP
STOP
Se detiene la CPU
NOP
144
Arquitectura de
Prsentat
ion
Instruccione
[ Organizacin ]
8.- Instrucciones de manejo de subrutinas
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
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
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
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
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
A (500)
A A + (501)
A A + (502)
(503) A
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
Lenguaje
mquina
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
000
001
002
003
2500
3501
3502
1503
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
000
001
002
003
LDA (500)
ADD (501)
ADD (502)
STA (503)
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
INICIO
LDA (VX)
ADD (VY)
ADD (VZ)
STA (VT)
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
158
Arquitectura de
Prsentat
ion
[ ndice ]
3.1 Mquina de von Neumann
3.2 Unidad de control
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
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
172
Arquitectura de
Prsentat
ion
[ Organizacin ]
D.Mery
173
Arquitectura de
Prsentat
ion
[ Organizacin ]
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 ]
183
Arquitectura de
Prsentat
ion
[ Organizacin ]
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 ]
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 ]
193
Arquitectura de
Prsentat
ion
[ Organizacin ]
194
Arquitectura de
Prsentat
ion