Download ejecución de instrucciones

Document related concepts
no text concepts found
Transcript
EJECUCIÓN DE
INSTRUCCIONES(1)
Miguel Ángel Asensio Hernández
Profesor Técnico de Formación Profesional
La función básica que realiza un computador es la
ejecución de un programa. Un programa consiste en
un conjunto de instrucciones y datos almacenados en
la unidad de memoria. La CPU es la encargada de
ejecutar las instrucciones especificadas en el
programa.
EJECUCIÓN DE INSTRUCCIONES(2)
La secuencia de operaciones realizadas en la
ejecución de una instrucción constituye lo que
se denomina ciclo de instrucción. Lo más
cómodo es considerar que el procesamiento del
ciclo de instrucción consta de dos fases:
a)
Fase de Búsqueda
b)
Fase de Ejecución
EJECUCIÓN DE INSTRUCCIONES(3)
La culminación de cada una de estas fases necesita
de uno a seis ciclos de reloj.
Reloj
1
2
3
4
5
6
7
8
9
BÚSQUEDA
Decodificación
Lectura de Operandos
Operación
Representación de las fases de una instrucción en función del reloj del sistema.
10
Fase de Búsqueda: (1)
1.
Transferir el contenido del Contador de Programa
(CP) al registro de Direcciones (RD).
2.
Pasar a registro de Memoria (RM) el dato almacenado en la
dirección de memoria indicada por RD.
3.
Transferir el dato leído desde el RM al registro de
instrucción (RI).
4.
Incrementar el valor del Contador de Programa para apuntar a la
instrucción siguiente.
Esquema básico de un computador didáctico
PARTES DEL COMPUTADOR
BU S D E DAT O S
D IRECCIÓN
1
2
CARGAR ACUM .
45
3
SU MAR
4
21
5
GUARDAR
6
8
7
ST OP
CON TAD OR D E
PRO GRAMA
D ECOD IFICAD OR
D E IN ST RU CCIO N ES
BU S D E D IRECCION ES
C.P.U .
8
9
REGIST RO D E
IN ST RU CCION ES
RELOJ Y SEÑ ALES
D E CON T ROL
66 (RESU LTAD O )
CO N T RO L
M EM ORIA
REGISTRO
ACU M U LAD OR
ALU
ALU
Fase de Búsqueda: (2)
Registro de
Direcciones
1º
Incremento
CP:
4º
MEMORIA
Dirección de memoria
3F8h
Registro Contador de Programa
Registro de Instrucciones
Dato o instrucción
1001101
RI
2º
RD
1001101
Dato o instrucción
3º
5º
Decodificación ...
RM:
1001101
Registro de Memoria
Fase de Ejecución: (3)
comprende el conjunto de operaciones elementales
específicas de la instrucción en curso.
5.
Decodificación de la Instrucción. Por ejemplo la Instrucción
ADD.
(la instrucción es cambiada por su código máquina correspondiente)
Instrucción
CO
ADDn
Código de
operación.
6.
OP 1
MD
CR
Operando 1
CD
OP 2:
MD
Modo de direccionamiento
CR
CD
Campo de registro
Campo de dirección: desplazamiento o dato
Parte de la instrucción (operando 2)
Transferencia del campo “CD” de la instrucción en curso ( este
campo contiene la dirección de memoria en la que se encuentra el
operando, y que se encuentra en el registro RI desde que finalizó
la fase de búsqueda), al registro RD. Se inicia, por tanto, un
proceso similar al de la fase de búsqueda, pero en esta ocasión
para buscar en memoria el operando de la instrucción.
...fase de ejecución:
7.
Lanzar un ciclo de lectura de memoria que ponga en RM el
operando almacenado en la dirección indicada por RD.
8.
Transferencia del dato leído desde el RM al registro intermedio ,Ro2,
del Operador. Paralelamente se puede transferir el otro operando
desde el acumulador, AC, (contenido en él un instante anterior), al
registro intermedio Ro1.
9.
Realizar la operación de SUMA (ADD) y almacenar el resultado
en el AC.
modos de direccionamiento.
Consiste en determinar la forma en la que se va ha leer o escribir un dato.
Modos de direccionamiento
INMEDIATO; el dato está en la propia instrucción ( ejemplo: SUMA 7, 3),
en el ejemplo los dos son datos, el resultado es 10.
DIRECTO; en la instrucción está contenida la
dirección de memoria donde se encuentra el
dato (ejemplo: SUMA 7, 01) , 7 es un dato, 01
es una dirección de memoria donde se
encuentra el dato. En la dirección de memoria
01 está contenido el dato, 3; el resultado es:
[7 + (01=3)] = 10.
dirección
memoria
01
02
03
04
06
05
06
2
07
4
08
09
Nota: no se pueden mezclar dos datos con
direccionamiento directo, es decir: directo-directo.
3
10
11
12
13
modos de direccionamiento.
RELATIVO A REGISTRO; aclarar primero que existen varios tipos de
registros.
Registro de instrucción
Registro de memoria
Registro de direcciones
Contador de programa
RI
RM
RD
CP
(Ejemplo: SUMA 3+CP, 1), en este caso el direccionamiento es relativo a
registro Contador de Programa.
4 CP; 3+4=(dirección de memoria) 07. Si 1 en la instrucción es
dato el resultado es: 4+1= 5.
Como hemos observado, la dirección en la que se encuentra el dato se tiene que
calcular. La dirección del puntero + el desplazamiento indicado en la propia instrucción
Nos lleva al dato.
modos de direccionamiento.
INDEXADO o direccionamiento a Registro Base. Un registro índice
contiene una dirección de referencia que actúa como puntero: se emplea
para recorrer estructuras de datos tipo vector o tabla. Su valor se modifica
con frecuencia.
INDIRECTO; la instrucción contiene una dirección de memoria que lleva
a otra dirección de memoria en la que se encuentra el dato.
(ejemplo: 04, 3), en 04 se encuentra 06 y en 06 está el dato: 2. El resultado
es 2+3= 5.
Elementos principales de la Unidad de Control
El CP es un registro que contiene la dirección de la siguiente
instrucción que hay que ejecutar.
El RI es un registro que contiene la instrucción que se está
ejecutando en cada momento.
El decodificador se encarga de examinar el código de operación
de la instrucción que se encuentra en el registro de instrucción
para determinar que es lo que hay que hacer.
El secuenciador ordena que se realicen las operaciones
necesarias para ejecutar la instrucción cuyo código de operación
ha examinado el decodificador.
formatos de instrucción
tienen varios formatos.
16 bits
I C.O.
Código de Operación
Operando 1
I C.O.
OP. 1
I C.O.
OP. 1
dato
OP.2
Campo de registro
MD.
Ejemplo:
Relativo a R. base
D
CR.
Método de direccionamiento
Tipo de registro
R.I.
(registro de instrucción)
Desplazamiento,
dirección o dato
Operando 2
Un programa suele estar dividido en dos partes o zonas; una zona
para código y otra para datos. Como ya hemos estudiado, una
instrucción puede contener el dato propiamente dicho o una
dirección de memoria que nos lleve al dato.
Instr.  [ etiqueta: ] Cod. Op. [ operandos ] [ ; comentario ]
Ejemplo:
GUARDAR: SUMA 7,3 ; esto es una suma
Para poder trabajar con una CPU determinada, lo primero que
debemos conocer es la longitud de palabra de sus registros.
Una CPU de 32 bits dispone de los siguientes registros:
Datos; D0, ..........................., D7.
Direcciones; A0, ........................., A6.
Los anteriores son registros de acceso a memoria.
Otros registros son:
CP contador de programa,
SR registro de estado,
SP puntero de pila,
.................
Modelo funcional del sistema. Computador basado en el microprocesador M68000 de Motorola.
MEMORIA
0
1
FFEFFF
PROCESADOR
Registros de
Datos
D0
D1
D2
D3
D4
D5
D6
D7
PUERTOS DE ENTRADA/SALIDA
FFF000
FFF002
Registros de
Direcciones
A0
A1
A2
A3
A4
A5
A6
Registros de
control
CP
SR
SP (A7)
FFF004
formatos de palabra.
16 bits
(+)
(-)
Formatos de palabra.
32 bits
8 bits
Si trabajamos con registros de 16 bits y deseamos mover datos con una longitud
de palabra de 32 bits, tendremos que recurrir a posiciones de memoria contiguas:
8 bits
01
palabra larga (L)
02
03
04
05
Byte más significativo
byte (B)
Byte menos significativo
palabra (W)
Código de Operación:
Código de Operación:
CÓD. OP.
| para formato de 32 bits: L | Sintaxis: [Cód. Op.].[L]
| para formato de 16 bits: W |
| para formato de 8 bits: B |
Ejemplo: instrucción que permite realizar una suma: ADD.W D0, D1
modificadores:
algunos modificadores empleados en instrucciones son:
% binario
$ hexadecimal
# direccionamiento inmediato
Ejemplo: MOVE.B #10, D1
Representación de la información
En la representación conceptual de una memoria se tiende a emplear
notación hexadecimal, que es más fácil de leer y simplifica muchísimo
la representación de la información. A pesar de todo, esta forma de
escribir las órdenes de un computador resulta también algo engorroso
para el programador, por lo que se emplean códigos nemotécnicos que
ayudan a comprender el significado de cada combinación
hexadecimal.
El lenguaje máquina está íntimamente ligado a la construcción interna
del computador. Los programas escritos en lenguaje máquina sólo son
transportables a otras máquinas de idénticas características.
representación de la información
ejemplo de representación de la información
Representación en Binario
POSICIÓN
DE MEMORIA
0
1
2
3
4
5
6
7
DIRECCIÓN
DE n-bits
000
001
010
011
100
101
110
111
CONTENIDO
DE MEMORIA
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
Representación en Hexadecimal
DIRECCIÓN EN
HEXADECIMAL
0H
1H
2H
3H
4H
5H
6H
7H
CONTENIDO EN
HEXADECIMAL
6H
2H
CH
1H
EH
EH
0H
6H
La H es un sufijo que indica notación hexadecimal.
representación de la información

La representación en hexadecimal se hace con
agrupaciones de 4-bits. Los números en hexadecimal
se escriben con el sufijo H (mayúscula o minúscula)
para indicar el sistema de numeración.
Ej:
6E8.58H
0110
6
1110
E
1000
8
. 0101
5
1000
8
1001
9
. 1100
C
0100
4
A29.C4H
1010
A
0010
2
Esta representación sólo sería válida para registros de 4-bits.
Hay que tener presente que en un sistema basado en
microprocesador es habitual registros de 8, 16 y 32 bits.
Por ejemplo: si el registro A de 8-bits contiene la siguiente
secuencia, 1011 0011, se escribiría así; B3H.
O una dirección de 16-bits sería como sigue:
0000 0100 0001 1101, en hexadecimal 041DH.
Ejemplos con nemotécnicos:
Instrucción MOVE.L D0, D1
Tipo de instrucción: transferencia entre registros.Carga el contenido del
registro D0 en el registro D1. Ambos son de 32 bits por lo que supone el
intercambio entre ellos de una palabra larga.
Código:
Binario
0010001000000000
Hexadecimal
2200
Nemotécnico
MOVE.L D0, D1
Descripción
(D0) → (D1)
Instrucción NOP
Tipo de instrucción: miscelánea.
Su misión es no realizar ninguna operación. Su único efecto es provocar un
pequeño retardo temporal ya que obliga a mantener funcionando el bucle de
ejecución de instrucciones.
Código:
Binario
0100111001110001
Hexadecimal
4E71
Nemotécnico
NOP
Descripción
No operación
el Contador de Programa
Para buscar la instrucción que se debe ejecutar a continuación, la unidad de
control mantiene actualizado un registro de propósito especial o dedicado,
el Contador de Programa, CP. El contador de programa es un registro de
operación que siempre mantiene la dirección de la próxima instrucción a
ejecutar.
Cuando el procesador es inicializado la unidad de control coloca el
contador de programa a cero.
La dirección contenida en el contador de programa se coloca en el bus de
direcciones. Para ello, la unidad de control transfiere el contenido del CP al
registro de dirección, RD.
Interconexión con los buses y la memoria.
El dato se transfiere al procesador a través del bus de datos y el registro de
instrucción, RI.
B. Direcciones
B. Datos
B. Control
Datos
Dirección
MEMORIA
Lectura / escritura
R/W
Interconexión con los buses: arquitectura
de bus interno.
La primera palabra de una instrucción es el código de operación
para dicha instrucción. El código de operación indica a la unidad
de control las operaciones requeridas para ejecutar la instrucción.
CONTADORDEPROGRAM
A
PUNTERODEPI
LA
BUSI
NTERNO
REGI
STRODE
DI
RECCI
ONES
BUS
DE
DI
RECCI
ONES
DEL
SI
STEM
A
REGI
STROTEM
PORAL
B
C
D
E
H
L
Todos estos son
registros internos,
ubicados en el interior
de la propia CPU.
REGI
STROSDEPROPÓSI
TO
GENERAL.
Ciclo máquina.
Durante una operación normal, el procesador busca
secuencialmente y ejecuta una instrucción tras otra,
hasta que se procesa una instrucción (HALT) de paro. La
búsqueda y ejecución de una instrucción constituye el
ciclo de instrucción, que representa a su vez una o más
operaciones de acceso a memoria o a dispositivos de E/S.
Cada acceso a memoria requiere un ciclo máquina.
Hay, por ejemplo, siete tipos diferentes de ciclo
máquina en el 8085.
•
•
•
•
•
•
•
búsqueda de Cod. Op.
lectura de MEMORIA
escritura a MEMORIA
lectura de E/S
escritura a E/S
respuesta a interrupción
bus inactivo.
INSTRUCCIÓN E N PROCES O
Representación del ciclo máquina.
2
1
BÚSQUEDA
EJECUCIÓN
IÓ N
SI C
PO
RE
IN S
TR
U
CC
I ÓN
HA
LT
EJECUCIÓ N DE UNA
INST RUCC IÓN COM PLETA
PARO
3
REPOSICI ÓN
Ciclos de máquina de un computador
El repertorio de instrucciones



Todo computador posee un repertorio de instrucciones que
es capaz de ejecutar, constituyendo este, lo que se conoce
como “lenguaje máquina del computador”.
Estas instrucciones se encuentran codificadas de acuerdo a un
formato específico del computador, y constituyen una opción
más del diseño del mismo.
En general, el algoritmo de solución de cualquier problema
consiste en varios pasos que deben realizarse en una
secuencia específica. Para implantar tal algoritmo en un
computador, estos pasos se descomponen en pasos más
pequeños, cada uno de los cuales representa una instrucción
del computador. La secuencia de instrucciones resultante es un
programa en lenguaje máquina, que representa al algoritmo en
cuestión.
Cada instrucción máquina del computador se ejecuta
realizando una secuencia de operaciones elementales
más rudimentarias. A su vez, cada operación
elemental requiere la activación de un conjunto de
señales de control por parte del secuenciador de la
Unidad de Control. La activación de dichas señales
se efectúa a “golpe” de reloj.
 Unidad de control
La misión fundamental de esta unidad se centra en
recoger las instrucciones que componen un programa,
interpretarlas y controlar su ejecución.
Dado que las instrucciones se encuentran almacenadas
en la unidad de memoria, deberá encargarse en primer
lugar de recibirlas en el orden establecido. En segundo
lugar, deberá identificar de qué instrucción se trata en
cada caso. Por último, tendrá que generar la secuencia
adecuada de órdenes para el resto de elementos que
constituyen el computador, de manera que cada
instrucción se ejecute correctamente.
Bus de contr ol
BC
Bus de direc cione s
BA
Seña les de control
ICP
CCP BA
CRIB D
SBR E
..... ..
SBR S
OP
CAC
CRM M
....... ..
ICP
Relo j
CP
CCPB A
Con tador de Programa
Secuenciad or
Dec odificador
C IRCU ITO
DE
C ONTR OL
Regis tro de estado
CRI BD
RI
Registro de Instruc ción
Bus de datos
BD
Estru ctura funcional de la Unidad de Control