EJECUCIÓN DE INSTRUCCIONES

34
EJECUCIÓN DE INSTRUCCIONES(1) 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. Miguel Ángel Asensio Hernández Profesor Técnico de Formación Profesional

Transcript of EJECUCIÓN DE INSTRUCCIONES

Page 1: EJECUCIÓN DE INSTRUCCIONES

EJECUCIÓN DE INSTRUCCIONES(1)

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.

Miguel Ángel Asensio HernándezProfesor Técnico de Formación Profesional

Page 2: EJECUCIÓN DE INSTRUCCIONES

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

Page 3: EJECUCIÓN DE INSTRUCCIONES

EJECUCIÓN DE INSTRUCCIONES(3)

La culminación de cada una de estas fases necesita de uno a seis ciclos de reloj.

B Ú S Q U E D A

R e lo j

L e ctu ra d e O p eran d o s O p e ra ció n D e co d if ic a c ión

1 2 3 4 5 6 7 8 9 10

R epresen tac ión de las fases de una instrucción en func ión de l relo j de l sistem a.

Page 4: EJECUCIÓN DE INSTRUCCIONES

Fase de Búsqueda: (1) Transferir el contenido del Contador de

Programa (CP) al registro de Direcciones (RD).1.

2.

3.

4.

Pasar a registro de Memoria (RM) el dato almacenado en la dirección de memoria indicada por RD.

Transferir el dato leído desde el RM al registro de instrucción (RI).

Incrementar el valor del Contador de Programa para apuntar a la instrucción siguiente.

Page 5: EJECUCIÓN DE INSTRUCCIONES

Esquema básico de un computador didáctico

Page 6: EJECUCIÓN DE INSTRUCCIONES

PARTES DEL COMPUTADOR

R E G I ST R O A C U M U L A D O R

A L U

C O N T R O L

A L U

M E M O R IA

C .P .U .R E L O J Y S E Ñ A L E SD E C O N T R O L6 6 (R E SU L T A D O )

ST O P

8

D I R E C C I Ó N

B U S D E D A T O S

B U S D E D I R E C C I O N E SD E C O D I F I C A D O RD E I N ST R U C C I O N E S

C O N T A D O R D E P R O G R A M A

R E G I ST R O D E I N ST R U C C I O N E S

C A R G A R A C U M .

4 5

SU M A R

2 1

G U A R D A R

1

2

3

4

5

6

7

8

9

Page 7: EJECUCIÓN DE INSTRUCCIONES

Fase de Búsqueda: (2)M E M O R IA

C P: 3F8h

R I

R M : 1001101

10011 01

R D

1 º

2 º

3 º

4 º

1 0 0 11 0 1

D ato o in strucc ió n

D a to o in strucc ió n

In c rem e n to

D ire c c ió n d e m e m o r ia

Registro deDirecciones

Registro de Instrucciones

Registro de Memoria

Registro Contador de Programa

5º Decodificación ...

Page 8: EJECUCIÓN DE INSTRUCCIONES

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)

6.

C O A D D n O P 1 M D M DC R C RC D C DO P 2 :

In s tru cc ió n

C ó dig o de o p era c ió n .

O p eran d o 1P arte d e la in s truc c ió n (o p e ran d o 2 )

M o d o d e d ire cc io n a m ie n toC a m p o d e r eg is t ro

C a m p o d e d ir ec c ió n : d e s p laz a m ie n to o d a to

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.

Page 9: EJECUCIÓN DE INSTRUCCIONES

...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.

Realizar la operación de SUMA (ADD) y almacenar el resultado en el AC.

9.

Page 10: EJECUCIÓN DE INSTRUCCIONES

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.

d ire c c ió n m e m o ria

01

02

03

04

05

06

07

08

09

10

11

12

13

3

06

2

4

Nota: no se pueden mezclar dos datos con direccionamiento directo, es decir: directo-directo.

Page 11: EJECUCIÓN DE INSTRUCCIONES

modos de direccionamiento.RELATIVO A REGISTRO; aclarar primero que existen varios tipos de registros.

Registro de instrucción RIRegistro de memoria RMRegistro de direcciones RDContador de programa 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ónNos lleva al dato.

Page 12: EJECUCIÓN DE INSTRUCCIONES

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 modificacon frecuencia.

INDIRECTO; la instrucción contiene una dirección de memoria que llevaa 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 resultadoes 2+3= 5.

Page 13: EJECUCIÓN DE INSTRUCCIONES

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.

Page 14: EJECUCIÓN DE INSTRUCCIONES

formatos de instruccióntienen varios formatos.

I

I

I

C .O .

C .O .

C .O .

O P. 1

O P. 1

O P.2

M D . C R . D

1 6 b itsCódigo de Operación

Operando 1

dato

Método de direccionamiento

Campo de registro

Tipo de registro Desplazamiento, dirección o dato

Ejemplo: Relativo a R. base R.I.

(registro de instrucción)

Operando 2

Page 15: EJECUCIÓN DE INSTRUCCIONES

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.

Page 16: EJECUCIÓN DE INSTRUCCIONES

Otros registros son: 

CP contador de programa,

SR registro de estado,

SP puntero de pila,

.................

M o d elo fu n c io n a l d e l s is tem a. C o m p u tad o r b asad o e n e l m ic ro p ro ce sa d o r M 6 8 0 0 0 d e M o toro la .

R egistros deD atos

R eg istros deD irecciones

R egistros decon tro l

C P

SR

SP (A 7)

PR O C ES A D O R

01

F F E F F F

M E M O R IA

D 0D 1D 2D 3D 4D 5D 6D 7

A 0A 1A 2A 3A 4A 5A 6

P U E R T O S D E E N T R A D A /S A L I D AF F F 0 0 0 F F F 0 0 2 F F F 0 0 4

Page 17: EJECUCIÓN DE INSTRUCCIONES

formatos de palabra.

32 b its

16 b its

8 b its

Form atos de pa lab ra .

(+) (-)

01

02

03

04

05

Byte más significativo

Byte menos significativo

8 bits

byte (B)palabra (W)

palabra larga (L)

Si trabajamos con registros de 16 bits y deseamos mover datos con una longitudde palabra de 32 bits, tendremos que recurrir a posiciones de memoria contiguas:

Page 18: EJECUCIÓN DE INSTRUCCIONES

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

Page 19: EJECUCIÓN DE INSTRUCCIONES

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.

Page 20: EJECUCIÓN DE INSTRUCCIONES

P O S IC IÓ ND E M E M O R IA

01234567

D IR E C C IÓ ND E n - b i ts

C O N T E N ID OD E M E M O R IA

0 0 00 0 10 1 00 111 0 01 0 111 0111

0 1 1 00 0 1 01 1 0 00 0 0 11 1 1 01 1 1 00 0 0 00 1 1 0

D IR E C C IÓ N E NH E X A D E C IM A L

C O N T E N ID O E NH E X A D E C IM A L

0 H1 H2 H3 H4 H5 H6 H7 H

6 H2 HC H1 HE HE H0 H6 H

La H es un su fijo que ind ica no tac ión hexadecim al.

R epresen tac ión en B inario R epresen tac ión en H exadecim al

ejemplo de representación de la información

representación de la información

Page 21: EJECUCIÓN DE INSTRUCCIONES

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 1110 1000 . 0101 1000 6 E 8 5 8

 A29.C4H

 1010 0010 1001 . 1100 0100 A 2 9 C 4

 Esta representación sólo sería válida para registros de 4-bits.

Page 22: EJECUCIÓN DE INSTRUCCIONES

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 Hexadecimal Nemotécnico Descripción0010001000000000 2200 MOVE.L D0, D1 (D0) → (D1)

Page 23: EJECUCIÓN DE INSTRUCCIONES

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 Hexadecimal Nemotécnico Descripción0100111001110001 4E71 NOP No operación

Page 24: EJECUCIÓN DE INSTRUCCIONES

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.

el Contador de Programa

Page 25: EJECUCIÓN DE INSTRUCCIONES

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.

M E M O R IA

B . D irecc iones

B . D atos

B . C on trol

D ire c c ió n L e c tu r a / e sc r itu r aR / W

D a to s

Page 26: EJECUCIÓN DE INSTRUCCIONES

Interconexión con los buses: arquitectura de bus interno.

B U S I N T E R N O

C O N TA D O R D E P R O G R A M A P U N T E R O D E P I L A

R E G IS T R O T E M P O R A L

B C

D E

H L

R E G IS T R O S D E P R O P Ó S IT OG E N E R A L .

R E G IS T R O D ED IR E C C IO N E S

B U SD ED IR EC C IO N ESD E LSIST EM A

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.

Todos estos son registros internos, ubicados en el interior de la propia CPU.

Page 27: EJECUCIÓN DE INSTRUCCIONES

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.

Ciclo máquina.

Page 28: EJECUCIÓN DE INSTRUCCIONES

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.

Page 29: EJECUCIÓN DE INSTRUCCIONES

1 2

3

BÚSQUEDA EJECUCIÓN

PARO

INSTRUCCIÓN E N PROCES O

EJECUCIÓ N DE UNAINST RUCC IÓN COM PLETA

INST

RU

CCIÓ

N H

ALT

REPOSICIÓN

REPO

SICIÓ

NCiclos de máquina de un computador

Representación del ciclo máquina.

Page 30: EJECUCIÓN DE INSTRUCCIONES

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.

Page 31: EJECUCIÓN DE INSTRUCCIONES

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.

Page 32: EJECUCIÓN DE INSTRUCCIONES

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.

Page 33: EJECUCIÓN DE INSTRUCCIONES

BC

BA

BD

CP

RI

Bus de control

Bus de direcciones

Bus de datos

Regis tro de estado

Secuenciad or

Dec odificador

Seña les de cont rol

ICPCCP BACRIB DSBR E... .. ..

SBR SOPCAC

CRM M... .. .. ..

Relo j ICP CCPB A

CRI BD

C IRCU ITODEC ONTR OL

Con tador de Programa

Registro de Instruc ción

Estructura funcional de la Unidad de Control

Page 34: EJECUCIÓN DE INSTRUCCIONES