191
[ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsent ation Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC 2342 Semestre 2005-2 Domingo Mery D.Mery 1 Arquitectura de Computadores

[ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Embed Size (px)

Citation preview

Page 1: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Arquitectura de Computadores ]

ORGANIZACIÓN DEL COMPUTADOR

Präsentation

Pontificia Universidad Católica de ChileEscuela de Ingeniería

Departamento de Ciencia de la Computación

IIC 2342Semestre 2005-2

Domingo Mery

D.Mery 1 Arquitectura de Computadores

Page 2: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

PräsentationD.Mery 2 Arquitectura de Computadores

[ Índice ]

3.1. Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 3: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 3 Arquitectura de Computadores

[ Índice ]

3.1. Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 4: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 4 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1

0

Memoria de 1024 8

Ejemplo:

¿Cómo sumar el contenido de la posición 867 con el contenido de la posición 562 y almacenar el resultado en la posición 778?

Page 5: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 5 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1

0

Memoria de 1024 8

Ejemplo:

¿Cómo sumar el contenido de la posición 867 con el contenido de la posición 562 y almacenar el resultado en la posición 778?

+

Page 6: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 6 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1

0

Memoria de 1024 8Decoder & Read/Write

output

Solución:

1. Leer en la memoria la posición 867

Dirección 867 Read

Page 7: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 7 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1

0

Memoria de 1024 8

Solución:

1. Leer en la memoria la posición 867

2. Almacenar lo leído en un registro externo

Decoder & Read/Write

output

AC

Page 8: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 8 Arquitectura de Computadores

Memoria de 1024 8

Solución:

1. Leer en la memoria la posición 867

2. Almacenar lo leído en un registro externo

3. Leer en la memoria la posición 562

AC

1023

:

867

:

778

:

562

:

2

1

0

Decoder & Read/Write

output

Dirección 562 Read

Page 9: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 9 Arquitectura de Computadores

Memoria de 1024 8

Solución:

1. Leer en la memoria la posición 867

2. Almacenar lo leído en un registro externo

3. Leer en la memoria la posición 562

4. Sumar lo leído con el registro externo

AC

1023

:

867

:

778

:

562

:

2

1

0

Decoder & Read/Write

output

sumador

Page 10: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 10 Arquitectura de Computadores

Memoria de 1024 8

Solución:

1. Leer en la memoria la posición 867

2. Almacenar lo leído en un registro externo

3. Leer en la memoria la posición 562

4. Sumar lo leído con el registro externo

5. Almacenar la suma en la posición 778

1023

:

867

:

778

:

562

:

2

1

0

Decoder & Read/Write

sumador

Dirección 778 Write

input

Page 11: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 11 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1 Programa

0

Memoria de 1024 8

Solución general:

Decoder & Read/Write

Unidad de aritmética y lógica

Unidad de control

Page 12: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 12 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1 Programa

0

Memoria de 1024 8

Solución 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.

Decoder & Read/Write

Unidad de aritmética y lógica

Unidad de control

Page 13: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 13 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1 Programa

0

Memoria de 1024 8

Solución 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.

Decoder & Read/Write

Unidad de aritmética y lógica

Unidad de control

Significa leer y

almacenar en AC

Page 14: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 14 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2

1 Programa

0

Memoria de 1024 8

Solución 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.

Decoder & Read/Write

Unidad de aritmética y lógica

Unidad de control

Significa lo que se debe leer:

110110011 = 867

Page 15: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 15 Arquitectura de Computadores

1023

:

867

:

778

:

562

:

2 :

1 110110011

0 000100001

Memoria de 1024 8

Solución 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.

Decoder & Read/Write

Unidad de aritmética y lógica

Unidad de control

Page 16: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 16 Arquitectura de Computadores

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 posición, sin considera el tipo del de dato contenido en la misma.

3. La ejecución se produce siguiendo una secuencia de instrucción tras instrucción (a no se que dicha secuencia se modifique explícitamente).

Page 17: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 17 Arquitectura de Computadores

Estructura

Page 18: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 18 Arquitectura de Computadores

Detalles • 1000 x 40 bit words– Binary number– 2 x 20 bit instructions

0 1 39

0 8 19 20 28 39

Codop Dirección Codop Dirección

Signo

Palabra número

Palabra instrucción

Page 19: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 19 Arquitectura de Computadores

Detalles

0 8 19

Codop Dirección

Palabra instrucción

• La parte codop (los primeros 8 bits) especifican cuál instrucción será ejecutada.

• La parte de la dirección (los 12 bits restantes) especifican cuál de las 1000 posiciones de memoria está implicada en la instrucción. Esta parte es denominada X.

Page 20: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 20 Arquitectura de Computadores

Detalles

• Set of registers (storage in CPU)– Memory Buffer Register (MBR)– Memory Address Register (MAR)– Instruction Register (IR)– Instruction Buffer Register (IBR)– Program Counter (PC)– Accumulator (AC)– Multiplier Quotient (MQ)

Page 21: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 21 Arquitectura de Computadores

Detalles de la estructuramáquina von Neumann

(CC)

Page 22: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 22 Arquitectura de Computadores

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.

(CC)

Page 23: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 23 Arquitectura de Computadores

Detalles de la estructura

MAR:Memory Adress Register

Especifica la dirección en memoria de la palabra que va a ser escrita o leída en MBR.

(CC)

Page 24: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 24 Arquitectura de Computadores

Detalles de la estructura

IR:Instruction Register

Contiene los 8 bits del código de operación de la instrucción que se va a ejecutar.

(CC)

Page 25: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 25 Arquitectura de Computadores

Detalles de la estructura

IBR:Instruction Buffer Register

Empleado para almacenar temporalmente la instrucción contenida en la parte derecha de una palabra en memoria.

(CC)

Page 26: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 26 Arquitectura de Computadores

Detalles de la estructura

PC:Program Counter

Contiene la dirección de la próxima pareja de instrucciones que van a ser captadas de la memoria.

(CC)

Page 27: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 27 Arquitectura de Computadores

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 números de 40 bits es un número de 80 bits; los 40 bits más significativos se almacenan en AC y los menos significativos se almacenan en MQ.

(CC)

Page 28: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 28 Arquitectura de Computadores

INSTRUCCIONES DE TRANSFERENCIA DE DATOS:

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

Codop Instrucción Descripción

00001010 LOAD MQ Transferir el contenido del registro MQ a AC

00001001 LOAD MQ,M(X) Transferir el contenido de la posición de memoria X a MQ

00100001 STOR M(X) Transferir el contenido de AC a la posición 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

Page 29: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 29 Arquitectura de Computadores

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 Instrucción Descripción

00001101 JUMP M(X,8:19) Saltar a la instrucción indicada por la mitad izquierda de M(X)

00001110 JUMP M(X,28:39) Saltar a la instrucción indicada por la mitad derecha de M(X)

Page 30: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 30 Arquitectura de Computadores

INSTRUCCIONES DE SALTO CONDICIONAL:

• El salto depende de una condición, esto permite puntos de decisión.

Codop Instrucción Descripción

00001111 JUMP +M(X,8:19) Si AC ≥ 0 saltar a la instrucción indicada por la mitad izquierda de M(X)

00001000 JUMP +M(X,28:39) Si AC ≥ 0 saltar a la instrucción indicada por la mitad derecha de M(X)

Page 31: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 31 Arquitectura de Computadores

INSTRUCCIONES DE ARITMÉTICA:

• Son las operaciones realizadas por la ALU.

Codop Instrucción Descripción

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

Page 32: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 32 Arquitectura de Computadores

INSTRUCCIONES DE ARITMÉTICA:

• Son las operaciones realizadas por la ALU.

Codop Instrucción Descripción

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

¿Cómo se implementan por hardware?

Page 33: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Sistemas Digitales ]

Präsentation

Circuitos sincrónicos

D.Mery 33 Arquitectura de Computadores

shift register a la derecha = divisioón entre dos

CK

D Q

CK

D Q

CK

D Q

CK

D Q

Page 34: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Sistemas Digitales ]

Präsentation

Circuitos sincrónicos

D.Mery 34 Arquitectura de Computadores

shift register a la izquierda = multiplicación por dos

CK

D Q

CK

D Q

CK

D Q

CK

D Q

Page 35: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 35 Arquitectura de Computadores

INSTRUCCIONES DE MODIFICACIÓN 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 Instrucción Descripción

00010010 STOR M(X,8:19) Reemplazar el campo de dirección de la izquierda de M(X) por los 12 bits de la derecha de AC.

00010011 STOR M(X,28:39) Reemplazar el campo de dirección de la derecha de M(X) por los 12 bits de la derecha de AC.

Page 36: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 36 Arquitectura de Computadores

Ejercicio:

Escribir un programa que sume el número almacenado en la posición 867 más el número almacenado en la posición 562. El resultado de la suma (sin considerar acarreo) se debe almacenar en la posición 778.

Page 37: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 37 Arquitectura de Computadores

Ejercicio:

Escribir un programa que sume el número almacenado en la posición 867 más el número almacenado en la posición 562. El resultado de la suma (sin considerar acarreo) se debe almacenar en la posición 778.

LOAD M(867) % transfiere el contenido de 867 a ACADD M(562) % AC AC + M(562)STOR M(778) % transfiere AC a la memoria 778

Page 38: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 38 Arquitectura de Computadores

Ejercicio:

Escribir un programa que sume el número almacenado en la posición 867 más el número almacenado en la posición 562. El resultado de la suma (sin considerar acarreo) se debe almacenar en la posición 778.

LOAD M(867) % transfiere el contenido de 867 a ACADD M(562) % AC AC + M(562)STOR M(778) % transfiere AC a la memoria 778

Page 39: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 39 Arquitectura de Computadores

LOAD M(867) 00000001 001101100011ADD M(562) 00000100 001000110010STOR M(778) 00100001 001100001010

¿Cómo se almacena el programa?

Page 40: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 40 Arquitectura de Computadores

Ejercicio:

Escribir un programa que divida el número almacenado en la posición 867 por 8. El resultado de la división (sin considerar el resto ni la parte fraccionaria) se debe almacenar en la posición 778.

Page 41: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 41 Arquitectura de Computadores

Ejercicio:

Escribir un programa que divida el número almacenado en la posición 867 por 8. El resultado de la división (sin considerar el resto ni la parte fraccionaria) se debe almacenar en la posición 778.

LOAD M(867) % transfiere el contenido de 867 a ACRSH % divide el acumulador entre dosRSH % divide el acumulador entre dosRSH % divide el acumulador entre dosSTOR M(778) % transfiere AC a la memoria 778

Page 42: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 42 Arquitectura de Computadores

Ejercicio:

Escribir un programa que compare el número almacenado en la posición 867 con el número almacenado en la posición 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.

Page 43: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Máquina von Neumann

D.Mery 43 Arquitectura de Computadores

Ejercicio:

Escribir un programa que compare el número almacenado en la posición 867 con el número almacenado en la posición 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. LOAD M(867) % transfiere el contenido de 867 a AC2. SUB M(562) % AC AC - M(562)3. JUMP +M(3,28:39) % salta si AC ≥ 0 (i.e. M(867)≥ M(562))4. LOAD M(500) % transfiere el contenido de 500 a AC5. STOR M(501) % transfiere AC a la memoria 501

En la posición derecha de 3 debe estar almacenado 5, de esta manera la tercera instrucción salta a la dirección 5 si AC ≥ 0.

Page 44: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 44 Arquitectura de Computadores

[ Índice ]

3.1 Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 45: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 45 Arquitectura de Computadores

Computador

MemoriaPrincipal

EntradaSalida

Sistema deinterconexión

periféricos

Líneas decomunicación

UnidadCentral deProceso

CPU

Computador

Page 46: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 46 Arquitectura de Computadores

Memoria

Secundaria

MemoriaPrincipal

CPU Periféricos

Bus de Datos

Bus de Direcciones

Bus de Control

Ejemplo:

Page 47: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 47 Arquitectura de Computadores

Ejemplo:

Page 48: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 48 Arquitectura de Computadores

Computer UnidadAritmética y

Lógica

Unidadde

Control

InterconexiónInterna de la CPU

Registros

CPU

I/O

Memory

SystemBus

CPU

Page 49: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 49 Arquitectura de Computadores

CPU

Memoriade control

Unidad de controlde registros y

decodificadores

LógicaSecuencial

Registers

InternalBus

Unidad de Control

ALU

ControlUnit

Page 50: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 50 Arquitectura de Computadores

CPU

Memoriade control

Unidad de controlde registros y

decodificadores

LógicaSecuencial

Registers

InternalBus

Unidad de Control

ALU

ControlUnit

La unidad de control controla el funcionamiento de la CPU:• controla las transferencias de datos desde hacia la CPU y• controla la ALU.

Page 51: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 51 Arquitectura de Computadores

Función de la unidad de control:

1. Para cada instrucción hay un único código que ejecutará esa instrucción.

2. Acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute.

Page 52: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 52 Arquitectura de Computadores

Función de la unidad de control:

1. Para cada instrucción hay un único código que ejecutará esa instrucción.

2. Acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute.

deco

der

codopSe activa sólo una salida

Page 53: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 53 Arquitectura de Computadores

Componentes delcomputador:

Page 54: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 54 Arquitectura de Computadores

Tareas de la CPU:

1. Captar instrucción: la CPU lee una instrucción de la memoria.

2. Interpretar instrucción: la instrucción se decodifica para determinar qué acción es necesaria.

3. Captar datos: la ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo I/O.

4. Procesar datos: en la ejecución se puede exigir llevar a cabo alguna operación aritmética o lógica con los datos.

5. Escribir datos: los resultados de la ejecución pueden exigir escribir datos en la memoria o en un módulo I/O.

Page 55: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 55 Arquitectura de Computadores

Registros

ALU

Unidad de Control Bus de

control

Bus de datos

Bus dedirecciones

Bus del sistema

Page 56: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 56 Arquitectura de Computadores

Un procesador incluye registros visibles para el usuario y registros de control/estado.

Registros visibles:

• pueden referenciarse en las instrucciones de máquina.

• pueden ser:

1. Uso general2. Datos3. Direcciones4. Códigos de condición

Page 57: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 57 Arquitectura de Computadores

¿cuántos registros de propósito general?

• Óptimo entre 8 y 32• Si hay muy pocos registros entonces se necesitan

demasiados accesos a memoria.• Más registros no reducen considerablemente las

referencias a memoria y hace la CPU más compleja.

Page 58: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 58 Arquitectura de Computadores

¿De cuántos bits deben ser los registros?

• Deben ser de un número suficiente tal que se puedan manejar las direcciones a memoria.

• Además deben ser capaces de manejar una palabra completa.

• A veces se combinan dos registros para conformar uno solo.

Page 59: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 59 Arquitectura de Computadores

Ejemplos de organización de registros:

Page 60: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 60 Arquitectura de Computadores

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 dirección de la instrucción a captar

2. IR = instruction register: contiene la última instrucción captada

3. MAR = memory address register: contiene la dirección de una posición de memoria

4. MBR = memory buffer register: contiene la palabra de datos a escribir en memoria, o la palabra leída más recientemente

Page 61: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 61 Arquitectura de Computadores

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:

• Signo: contiene le bit de signo del resultado de última operación

• 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 más significativo• Igual: puesto a uno si el el resultado de una comparación

lógica es la igualdad• Desbordamiento: Usado para indicar desbordamiento

aritmético

Page 62: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Unidad de control

D.Mery 62 Arquitectura de Computadores

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…)

• 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

Page 63: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 63 Arquitectura de Computadores

[ Índice ]

3.1 Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 64: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 64 Arquitectura de Computadores

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

2. Decodificar el patrón de bits en el registro de instrucción IR

3. Ejecutar la instrucción indicada en el registro de instrucción IR

Ciclo de instrucción

Page 65: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 65 Arquitectura de Computadores

Ciclo fetch (captación):

FUNCION: Lleva la siguiente instrucción de la memoria a la CPU

1. El program counter tiene la dirección de la siguiente instrucción.

2. El procesador capta la instrucción de la memoria direccionada por el PC.

3. Se incremente PC en 1.

4. El código de la instrucción se carga en IR.

Page 66: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 66 Arquitectura de Computadores

Ciclo decode (decodificación):

FUNCION: Decodifica los bits presentes en IR

1. Interpreta el código de operación.

Page 67: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 67 Arquitectura de Computadores

Ciclo execution (ejecución):

FUNCION: Ejecuta la instrucción.

• Procesador-memoria: transferencia CPU ↔ memoria

• Procesador-I/O: transferencia CPU ↔ módulo I/O

• Procesamiento de datos: operaciones aritméticas o lógicas

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

• Combinación de las anteriores

Page 68: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 68 Arquitectura de Computadores

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

Ejemplo:

Page 69: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 69 Arquitectura de Computadores

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 dirección (es decir “940”).

Ejemplo:

Page 70: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 70 Arquitectura de Computadores

3. El registro de PC se incrementa y se capta la siguiente instrucción.

Ejemplo:

Page 71: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 71 Arquitectura de Computadores

4. Los primeros 4 bits (“5”) indican que la instrucción es de suma entre el acumulador y una memoria. Los siguientes 12 bits indican la dirección de memoria (“941”). El contenido de AC y el de la posición 941 se suman y el resultado se almacena en AC.

Ejemplo:

Page 72: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 72 Arquitectura de Computadores

5. El registro PC se incrementa en 1 y se capta la siguiente instrucción.

Ejemplo:

Page 73: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 73 Arquitectura de Computadores

6. Los primeros 4 bits indican (“2”) que el acumulador se debe almacenar en una memoria. Los siguientes 12 bits indican la dirección de la memoria (“941”). El contenido de AC se almacena en la posición 941.

Ejemplo:

Page 74: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 74 Arquitectura de Computadores

¿Cuántos ciclos de instrucción se

necesitan?

Page 75: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Ciclos fetch, decode, exe

D.Mery 75 Arquitectura de Computadores

¿Cuántos ciclos de instrucción se

necesitan?

R/. Tres

Page 76: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 76 Arquitectura de Computadores

[ Índice ]

3.1 Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 77: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 77 Arquitectura de Computadores

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 aritméticas

3.- Instrucciones lógicas

4.- Control de flujo

5.- Entrada / Salida

Page 78: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 78 Arquitectura de Computadores

1.- Instrucciones de transferencias de datos 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

Page 79: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 79 Arquitectura de Computadores

1.- Instrucciones de transferencias de datos Acciones:

Transfiere datos de una posición a otra.

Si se implica a la memoria:• determina la dirección de la memoria• inicia lectura/escritura en memoria

Page 80: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 80 Arquitectura de Computadores

2.- Instrucciones aritméticas

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

Page 81: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 81 Arquitectura de Computadores

2.- Instrucciones aritméticas

Acciones:

Puede implicar transferencias de datos, antes y/o después.

Realiza la operación en la ALU

Actualiza códigos e indicadores de condición.

Page 82: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 82 Arquitectura de Computadores

3.- Instrucciones lógicas

AND Y lógico bit a bit

OR O lógico bit a bit

NOT no lógico bit a bit

XOR o exclusivo lógico bit a bit

TEST evalúa condiciones

COMPARE comparación de dos operandos

SHIFT desplazamiento izquierda o derecha

ROTATE desplazamiento cíclico

Page 83: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 83 Arquitectura de Computadores

3.- Instrucciones lógicas

Acciones:

Puede implicar transferencias de datos, antes y/o después.

Realiza la operación en la ALU

Actualiza códigos e indicadores de condición.

Page 84: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 84 Arquitectura de Computadores

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 ejecución del programa

WAIT detiene la ejecución hasta una condición

NOP no ejecuta operación alguna

Page 85: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 85 Arquitectura de Computadores

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 parámetros.

Page 86: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 86 Arquitectura de Computadores

5.- Entrada / salida 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 información de estado de I/O

Page 87: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ] Conjunto de instrucciones

D.Mery 87 Arquitectura de Computadores

5.- Entrada / salida Acciones:

Cursa una orden a un módulo de E/S

En el caso de E/S asignada en memoria, determina la dirección de memoria correspondiente.

Page 88: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones

D.Mery 88 Arquitectura de Computadores

LD A, (dirección) carga el contenido de la memoria 'dirección' en el registro A

LD A, valor carga 'valor' en el registro A

LD (dirección), A carga el contenido del registro A en la memoria apuntadapor 'dirección'

LD B, A carga el contenido del registro A en el registro B

LD HL, valor 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.

Algunas instrucciones del Z-80

Page 89: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones

D.Mery 89 Arquitectura de Computadores

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

SUB B carga en A los 8 bits menos significativos de la resta A - B

ADD (HL) carga en A los 8 bits menos significativos de la suma de Acon 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 dirección 'label' si la última operaciónaritmética no es cero

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.

Algunas instrucciones del Z-80

Page 90: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones

D.Mery 90 Arquitectura de Computadores

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 además debe comparar el checksum calculado con el checksum verdadero que se encuentra almacenado en la dirección 0900h. Si ambos valores son iguales, se debe escribir el byte 00h en la dirección de memoria 0A00h. Si ambos valores son distintos, se debe escribir en la dirección de memoria 0A00h los 8 bits menos significativos de la diferencia 'checksum verdadero menos checksum calculado'.

Page 91: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones

D.Mery 91 Arquitectura de Computadores

LD HL,0800H

LD A,00HLD B,A

LOOP ADD (HL)INC HLDEC BJP

NZ,LOOPLD B,ALD A,

(0900H)SUB BLD

(0A00H),A

Solución

Page 92: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 92 Arquitectura de Computadores

[ Índice ]

3.1 Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 93: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 93 Arquitectura de Computadores

Una instrucción tiene “operandos”:

Ej: ADD A,(940) %( A = A + (940))

Los operandos son A y el contenido de 940.

Page 94: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 94 Arquitectura de Computadores

Una instrucción tiene “operandos”:

Ej: ADD A,(940) %( A = A + (940))

Los operandos son A y el contenido de 940.

¿Cómo se pueden referenciar los operandos?

R/. Con los modos de direccionamiento.

Page 95: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 95 Arquitectura de Computadores

Número (N)Opcode

Instrucción

• Instrucción

Page 96: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 96 Arquitectura de Computadores

1. Inmediato

2. Directo (o absoluto)

3. Indirecto

4. Registro

5. Indirecto con registro

6. Desplazamiento (Indexado)

Page 97: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 97 Arquitectura de Computadores

OperandOpcode

Instruction

• 1. Inmediato

Page 98: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 98 Arquitectura de Computadores

• 1. Inmediato

• Operando es parte de la instrucción

• Operando = N

• Ej: ADD 5– Suma 5 al acumulador– 5 es un operando

• No hay referencia adicional a memoria

• Rápido

• Rango limitado

Page 99: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 99 Arquitectura de Computadores

• 2. Directo (o absoluto)

Address AOpcode

Instruction

Memory

Operand

Page 100: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 100 Arquitectura de Computadores

• 2. Directo (o absoluto)

• El operando está en la dirección referenciada por N

• Operando = (N)

• Ej: ADD (941) %A = A + (941)

• Hay sólo un acceso a la memoria

Page 101: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 101 Arquitectura de Computadores

• 3. Indirecto

Address AOpcode

Instruction

Memory

Operand

Pointer to operand

Page 102: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 102 Arquitectura de Computadores

• 3. Indirecto

• Operando está en la memoria que direcciona la memoria direccionada por N

• Operando = ((N))

• Existe acceso múltiple a la memoria para encontrar el operando

• Este direccionamiento es muy lento

Page 103: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 103 Arquitectura de Computadores

• 4. Registro

Register Address ROpcode

Instruction

Registers

Operand

Page 104: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 104 Arquitectura de Computadores

• 4. Registro

• El operando es un registro de la CPU

• Operando = Registro indicado por N, RN

• Número limitado de registros

• Instrucción rápida

• Instrucción corta

• No acceso a memoria

• Espacio de direcciones limitado

Page 105: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 105 Arquitectura de Computadores

• 5. Indirecto con registro

Register Address ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Page 106: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 106 Arquitectura de Computadores

• El operando está en la memoria direccionada por un registro.

• Operando = (RN)

• Hay un acceso menos a memoria que en direccionamiento indirecto

• 5. Indirecto con registro

Page 107: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 107 Arquitectura de Computadores

• 6. Desplazamiento

Register ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Address A

+

Page 108: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Modos de direccionamiento

D.Mery 108 Arquitectura de Computadores

• El número N de la instrucción se parte en 2: una parte N1 indica un registro y otra indica una dirección N2

• Operando = (RN1 + N2)

• 6. Desplazamiento

Page 109: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 109 Arquitectura de Computadores

Page 110: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 110 Arquitectura de Computadores

Formato de las instrucciones del 68000:

Label nemotécnico[.S] operando1,[operando2]

Dirección Instrucción Operandos

Longitud delos operandosB = byteW = word L = large word

Page 111: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 111 Arquitectura de Computadores

Formato de las instrucciones del 68000:

Label nemotécnico[.S] operando1,[operando2]

INICIO MOVE.B D3,D4

Copia el byte menos significativo de D3 en D4

Page 112: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 112 Arquitectura de Computadores

Formato de las instrucciones del 68000:

Label nemotécnico[.S] operando1,[operando2]

INICIO MOVE.B D3,D4

Copia el byte menos significativo de D3 en D4

WARNING:

En el 68000 la sintaxis es al revés que otrosProcesadores. Esta instrucción significa queDatos de D3 se copian en D4 y NO VICEVERSA!!

Page 113: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 113 Arquitectura de Computadores

Formato de las instrucciones del 68000:

Label nemotécnico[.S] operando1,[operando2]

Para usar números:

% binario$ hexagesimal

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

Page 114: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 114 Arquitectura de Computadores

LA MEMORIA

La memoria principal de este computador está formada por celdas de un byte (8 bits), que constituyen la unidad básica de lectura o escritura, identificándose mediante una dirección.

Los procesos de lectura y escritura pueden realizarse con varias celdas consecutivas simultáneamente, debiendo indicar el procesador a la memoria principal dos parámetros, la dirección de la primera celda de memoria y la longitud de la información a la que se desea acceder. Siendo esta longitud de:

[B] un byte[W] dos bytes (una palabra) o [L] cuatro bytes (palabra larga).

Page 115: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 115 Arquitectura de Computadores

LA MEMORIA

8 bits

BW

L

500

501

502

503

504

Page 116: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 116 Arquitectura de Computadores

LA MEMORIA (cont.)

El tamaño máximo de la memoria viene determinado por el número 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 sólo pueden utilizarse 24 como máximo, desde 0 hasta FFFFFF .

El procesador puede leer y escribir información de diferentes tamaños, existiendo una norma para almacenar las palabras (W) y las palabras largas (L), y siendo esta la de comenzar por el byte más significativo.

Existen 7 registros de direcciones y son: A0, A1, A2, A3, A4, A5 y A6, siendo éstos de 32 bits aunque sólo pudiendose utilizar 24 bits para direccionar como antes se ha mencionado.

Page 117: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 117 Arquitectura de Computadores

LA MEMORIA

8 bits

500

501

502

503

504

Almacenamiento de$0F en 500

(Byte)

0F

8 bits

Almacenamiento de$09A4 en 500

(Word)

09

A4

8 bits

Almacenamiento de$0834AFC0 en 500

(Large)

08

34

AF

C0

Page 118: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 118 Arquitectura de Computadores

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 tamaño del dato, indicándose este mediante el sufijo S (B, W y L), que va añadido al nemotécnico de la instrucción.

La forma en que se almacenan los datos en los registros, viene dada por su longitud, ya que como ésta es variable, irán ocupándolos de izquierda a derecha empezando por el bit menos significativo del registro.

Page 119: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 119 Arquitectura de Computadores

MODOS DE DIRECCIONAMIENTO  Existen cuatro modos de direccionamiento:

1.- Direccionamiento inmediato: almacena el operando precedido del símbolo # en el registro indicado.

Ejemplo: MOVE.L #$18,D6 Significa: D6.L $18 Para recordar:

% binario$ hexagesimal

Page 120: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 120 Arquitectura de Computadores

MODOS DE DIRECCIONAMIENTO (cont...) 

2.- Direccionamiento directo o absoluto: almacena el operando que está en la dirección de memoria especificada en el registro de datos indicado.

Ejemplo: ADD.W %000000001000111110001,D2 suma la palabra que está en la dirección de memoria indicada, a D2.

Significa: D2.W D2.W + (%000000001000111110001) Para recordar:

% binario$ hexagesimal

Page 121: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 121 Arquitectura de Computadores

MODOS DE DIRECCIONAMIENTO (cont...) 

3.- Direccionamiento mediante registro: apunta a la dirección 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

Page 122: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 122 Arquitectura de Computadores

MODOS DE DIRECCIONAMIENTO (cont...) 

4.- Direccionamiento relativo a registro:

a) Direccionamiento mediante registro normal: se da la dirección del registro donde está la dirección del dato. El nombre del registro se escribe entre paréntesis.

Ejemplo: ADD.B (A0),D6 suma el contenido de la posición de memoria (byte) cuya dirección está en A0 al registro D6, guardando el resultado en este último.

Significa: D6.B D6.B + (A0)

Page 123: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 123 Arquitectura de Computadores

MODOS DE DIRECCIONAMIENTO (cont...) 

4.- Direccionamiento relativo a registro:

b) Direccionamiento relativo a registro con posincremento: incrementa en una cantidad de memoria, según sea el tamaño del operando (1 para B, 2 para W y 4 para L), después de traer el contenido de la posición de memoria indicada por el registro de direcciones.

Ejemplo: MOVE.W (A0)+,D0 copia en D0 el contenido de la posición de memoria direccionada por A0 y luego incrementa en 2 el contenido de A0.

Significa: D0.W (A0)A0 A0 + 2

Page 124: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 124 Arquitectura de Computadores

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

c) Direccionamiento relativo a registro con predecremento: Decrementa en una cantidad de memoria, según sea el tamaño del operando, el registro de direcciones y trae despues el contenido de la posición de memoria cuya dirección 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 posición de memoria direccionada por A0.

Significa: A0 A0 – 1D0.B (A0)

Page 125: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 125 Arquitectura de Computadores

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

d) Direccionamiento relativo a registro con desplazamiento: El contenido de la posición de memoria cuya dirección 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 tamaño del operando.

Ejemplo: MOVE.L 6(A0),D1 copia en el registro D1 el contenido de la posición de memoria cuya dirección viene dada por la suma de 6 multiplicado por 4(L) al contenido de A0.

Significa: D1.L (A0 + 6×4)

Page 126: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 126 Arquitectura de Computadores

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

e) Direccionamiento relativo a registro con índice: Este modo de direccionamiento es la extensión natural del anterior, ya que permite usar desplazamientos variables, utilizando como desplazamiento el resultado de sumar un número 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 posición de memoria cuya dirección es el resultado de sumar el número 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: D0.B (4+A0+D1)

Page 127: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 127 Arquitectura de Computadores

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 posición de la proxima instrucción que va a ser ejecutada.

Ejemplo: MOVE.B 24(PC),D0 copia en el registro D0 el contenido de la posición de memoria cuya dirección es la suma de 24 y el valor del contador del programa.

Significa: D0.B (24+PC)

Page 128: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 128 Arquitectura de Computadores

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 número fijo al contenido de un registro de datos.

Ejemplo: MOVE.B 24(PC,D0),D1 copia en el registro D1 el contenido de la posición de memoria cuya dirección es el resultado de sumar el número 24, el contador de programa y el contenido del registro D0.

Significa: D1.B (24 + PC + D0)

Page 129: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 129 Arquitectura de Computadores

FORMATOS DE INSTRUCCIONES      Los formatos empleados para las instrucciones utilizan una o más palabras de 16 bits. La primera palabra especifica el código de la operación y en muchos casos la dirección de un operando. Las especificaciones para completar los operandos, cuando no es suficiente con una palabra van a continuación de la primera palabra. Cada operando utilizará como máximo dos palabras de ampliación, equivalente a una palabra larga, después de la del código de operación, por lo que la instrucción más larga del Motorola 68000 ocupa 5 palabras (10 bytes), siendo 1 para el código de instrucción, 2 palabras de ampliación para el operando origen, y 2 palabras de ampliación más para el operando destino.    

Page 130: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 130 Arquitectura de Computadores

FORMATOS DE INSTRUCCIONES        La información que identifica la situación exacta del operando, denominada dirección efectiva, se codifica en los formatos de instrucción mediante dos campos, siendo uno el modo de direccionamiento (MD) y el otro el de registro. Cada campo tiene un tamaño de 3 bits y se incluyen en la primera palabra de instrucción. El campo MD identifica el modo de direccionamiento empleado y el campo CR indica el registro empleado para obtener la dirección del operando. A veces se utilizan las palabras de ampliación ya que la dirección efectiva requiere incluir más información sobre la situación del operando en la palabra de instrucción.

Page 131: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 131 Arquitectura de Computadores

INSTRUCCIONES CONDICIONALES        Al realizar operaciones matemáticas existe la posibilidad de desbordamiento, por lo que se realiza un test automáticamente,  quedando el resultado almacenado en un registro de control, dedicado especialmente a tal efecto, denominado registro de código de condición (CCR), pudiendose leer mediante la instrucción MOVE. Este registro consta de 5 flags que se almacenan en los 5 bits menos significativos del registro de estado (SR).    

Page 132: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 132 Arquitectura de Computadores

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 posición más significativa del  resultado de una operación, poniéndose a 1 si existe desbordamiento.

V indicador de desbordamiento (overflow flag): indica si en el resultado de una operación 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 operación aritmetica o lógica.

N es el indicador de número negativo (negative flag): se pone a 0 si es positivo y a 1 si es negativo el signo del resultado de una operación en complemento a 2.

X es el indicador extendido (extended flag): funciona de la misma manera que C, pero únicamente con operaciones aritméticas o de desplazamiento.

Page 133: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 133 Arquitectura de Computadores

INSTRUCCIONES DEL 68000 

1.- Instrucciones de transferencias de datos 2.- Instrucciones aritméticas 3.- Instrucciones lógicas 4.- Instrucciones de desplazamiento y rotación 5.- Instrucciones de manipulación de bits 6.- Instrucciones de operación en código BCD 7.- Instrucciones de ramificación y salto 8.- Instrucciones de manejo de subrutinas      

Page 134: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 134 Arquitectura de Computadores

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:

Instrucción Descripción

MOVE Copia de datos de fuente a destino

MOVEA Copia direcciones

MOVEQ Copia rápido registros de datos (8 bits)

MOVEM Copia de memoriaS a registroS

EXG y SWAP Intercambio de contenidos

LEA y PEA Determina dirección efectiva de operando

LINK y UNLINK Facilita el uso de la pila en saltos a subrutinas

Page 135: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 135 Arquitectura de Computadores

2.- Instrucciones aritméticas

El Motorola 68000 dispone de instrucciones para las 4 operaciones aritméticas, sobre operandos binarios, y suma y resta sobre datos codificados en BCD. Además de cambio de signo para ambos tipo de datos, instrucciones de comparación, extensión de signo y actualización de los

códigos de condición (CCR) según el valor de un dato:

Instrucción Descripción

ADD / SUB Suma resta general

ADDA / SUBA Suma / resta direcciones

ADDI / SUBI Suma / resta con direccionamiento inmediato

ADDQ / SUBQ Suma / resta rápida (8 bits)

ADDX / SUBX Suma / resta incluyendo el flag X

CLR Carga un cero binario en el operando

Page 136: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 136 Arquitectura de Computadores

2.- Instrucciones aritméticas (cont…)

El Motorola 68000 dispone de instrucciones para las 4 operaciones aritméticas, sobre operandos binarios, y suma y resta sobre datos codificados en BCD. Además de cambio de signo para ambos tipo de datos, instrucciones de comparación, extensión de signo y actualización de los

códigos de condición (CCR) según el valor de un dato:

Instrucción Descripción

MULS y MULU Multiply signed & Multiply unsigned

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 Negación extendida considerando flag X

Page 137: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 137 Arquitectura de Computadores

3.- Instrucciones lógicas

El Motorola 68000 dispone de cuatro instrucciones que realizan funciones lógicas,  que actúan bit a bit sobre datos de 8, 16, ó 32 bits y cuatro para manejar bits individuales sobre datos de 8 ó 32 bits.

Instrucción Descripción

AND And lógico

ANDI And con direccionamiento inmediato

EOR / EORI Or exclusivo / con direccionamiento inmediato

NOT Negación lógica

OR / ORI Or lógico / con direccionamiento inmediato

TST Comprueba un operando

Scc Comprueba los códigos de condición CCR

Page 138: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 138 Arquitectura de Computadores

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 rotación siempre será un registro de datos.

Instrucción Descripción

ASL / ASR Aritmetic shift left / right

LSL / LSR Logical shift left / right

ROL / ROR Rotate left / right

ROXL / ROXR Rotate left / right incluyendo flag X

Page 139: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 139 Arquitectura de Computadores

5.- Instrucciones de manipulación 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.

Instrucción Descripción

BTST Bit test

BCLR Bit clear

BSET Bit set

BCHG Bit change

Page 140: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 140 Arquitectura de Computadores

6.- Instrucciones de operación en código 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.

Instrucción Descripción

ABCD Suma fuente al destino

NBCD Niego el destino

SBCD Resta fuente al destino

Page 141: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 141 Arquitectura de Computadores

7.- Instrucciones de ramificación y salto

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

Bcc Condición (cc)

BEQ LABEL Z

BNE LABEL Z'

BCS LABEL C 

BCC LABEL C' 

BHI LABEL C' · Z' 

BLS LABEL C + Z 

BMI LABEL N 

BPL LABEL N' 

BVS LABEL V 

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]

Page 142: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 142 Arquitectura de Computadores

Instrucción Descripción

DBcc Decrement and branch on condition

BRA Branch incondicional (direccionamiento relativo)

JMP Jump incondicional (direccionamiento absoluto)

STOP Se detiene la CPU

NOP No ejecuta operación (sirve como delay)

7.- Instrucciones de ramificación y salto (cont…)

Page 143: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 143 Arquitectura de Computadores

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 dirección 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 automáticamente en la pila el valor del contador de programa en el momento anterior al salto, cuando su contenido apunta a la dirección de comienzo de la instrucción siguiente a JSR o BSR.

La subrutina debe tener como última instrucción 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 ejecución del programa precisamente en el punto que había sido abandonado. La instrucción RTR también 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 posición de retorno, una palbra cuyos 5 bits menos significativos serán llevados al CCR al ejecutarse RTR, que puede ser una copia del CCR al entrar en la subrutina, o cualquier otro valor.

Page 144: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Instrucciones 68000

D.Mery 144 Arquitectura de Computadores

Reference Manual

68000.pdf

Page 145: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 145 Arquitectura de Computadores

[ Índice ]

3.1 Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 146: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 146 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

Esta operación se podría hacer en un microprocesadorteniendo las variables X, Y, Z almacenadas en la memoria,por ejemplo: X en la posición 500, J en la 501 y K en la 502,y ejecutando las siguientes instrucciones:

1. Cargar el contenido de 500 en el acumulador.2. Sumar al acumulador el contenido de 501.3. Sumar al acumulador el contenido de 502.4. Almacenar el acumulador en la posición 503.

Page 147: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 147 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

Suponiendo un código binario para las instrucciones:

1. Cargar el contenido de 500 en el acumulador:0010 0101 0000 0000

Page 148: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 148 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

Suponiendo un código binario para las instrucciones:

1. Cargar el contenido de 500 en el acumulador:0010 0101 0000 0000

Este código significa cargar en el acumulador el contenido de esto

(0101 0000 0000 significa 500)

Page 149: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 149 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

Suponiendo un código 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 posición 503.0001 0101 0000 0011

Page 150: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 150 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

Además hay que poner en las direcciones 500, 501 y 502 los valores de las variables X, Y y Z:

500 0000 0000 0010 0001 X es 0021501 0000 0000 0011 0010 Y es 0032502 0000 0001 0001 1010 Z es 011A

Page 151: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 151 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

Programa en binario: Explicación

000 0010 0101 0000 0000 A (500)001 0011 0101 0000 0001 A A + (501)002 0011 0101 0000 0010 A A + (502)003 0001 0101 0000 0011 (503) A :500 0000 0000 0010 0001 Dato X501 0000 0000 0011 0010 Dato Y502 0000 0001 0001 1010 Dato Z503 0000 0000 0000 0000 Libre para escribir T

Page 152: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 152 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

000 0010 0101 0000 0000001 0011 0101 0000 0001 002 0011 0101 0000 0010 003 0001 0101 0000 0011 :500 0000 0000 0010 0001 501 0000 0000 0011 0010502 0000 0001 0001 1010503 0000 0000 0000 0000

Lenguaje máquina

Page 153: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 153 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

000 0010 0101 0000 0000 000 2500001 0011 0101 0000 0001 001 3501002 0011 0101 0000 0010 002 3502003 0001 0101 0000 0011 003 1503 :500 0000 0000 0010 0001 500 0021501 0000 0000 0011 0010 501 0032502 0000 0001 0001 1010 503 011A503 0000 0000 0000 0000 504 0000

Programaen hexa

Page 154: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 154 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

000 0010 0101 0000 0000 000 LDA (500)001 0011 0101 0000 0001 001 ADD (501)002 0011 0101 0000 0010 002 ADD (502)003 0001 0101 0000 0011 003 STA (503) :500 0000 0000 0010 0001 500 DAT 0021501 0000 0000 0011 0010 501 DAT 0032502 0000 0001 0001 1010 502 DAT 011A503 0000 0000 0000 0000 503 DAT 0000

Programasimbólico

Page 155: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Assembler

D.Mery 155 Arquitectura de Computadores

Ejemplo sencillo: implementar T = X + Y + Z

000 0010 0101 0000 0000 INICIO LDA (VX)001 0011 0101 0000 0001 ADD (VY)002 0011 0101 0000 0010 ADD (VZ)003 0001 0101 0000 0011 STA (VT) :500 0000 0000 0010 0001 VX DAT 0021501 0000 0000 0011 0010 VY DAT 0032502 0000 0001 0001 1010 VZ DAT 011A503 0000 0000 0000 0000 VT DAT 0000

Programaen assembler

Page 156: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 156 Arquitectura de Computadores

[ Índice ]

3.1 Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 157: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 157 Arquitectura de Computadores

Uso de subrutinas:

Frecuentemente la misma pieza de código debe escribirse varias veces en muchas partes diferentes de un programa.

En vez de repetir el código 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.

Page 158: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 158 Arquitectura de Computadores

Uso de subrutinas:

Cada vez que la subrutina se utiliza en la parte del programa principal, una ramificación se ejecuta al comienzo de la subrutina.

Después que la subrutina ha sido ejecutada, una ramificación se hace de nuevo al programa principal.

Page 159: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 159 Arquitectura de Computadores

Uso de subrutinas:

Programaprincipal

Subrutina

Llamado a Subrutina

Page 160: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 160 Arquitectura de Computadores

Uso de subrutinas:

Programaprincipal

Subrutina

Llamado a Subrutina

Llamado a Subrutina

jj+1

Page 161: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 161 Arquitectura de Computadores

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 comunicación de los parámetros entre el programa principal y la subrutina es simple y rápido.

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 detección de este error es difícil.

Page 162: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 162 Arquitectura de Computadores

Ejemplo:

Se desea hacer un programa que realice las siguientes operaciones:

(0100) (0100) + 5(0200) (0200) + 5(0204) (0204) + 5

Page 163: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 163 Arquitectura de Computadores

Ejemplo:

Se desea hacer un programa que realice las siguientes operaciones:

(0100) (0100) + 5(0200) (0200) + 5(0204) (0204) + 5

La mejor solución sería utilizando una subrutina que tenga como parámetro una dirección X y que realice la operación:

(X) (X) + 5

El programa principal debe cargar correctamente el registro X y llamar a la subrutina tres veces.

Page 164: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 164 Arquitectura de Computadores

Ejemplo:

Se desea hacer un programa que realice las siguientes operaciones:

(0100) (0100) + 5(0200) (0200) + 5(0204) (0204) + 5

Programa principal SubrutinaLOAD X,0100 SUM5 LOAD A,(X)CALL SUM5 ADD 5LOAD X,0200 STORE (X),ACALL SUM5 RETLOAD X,0204CALL SUM5

Page 165: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 165 Arquitectura de Computadores

Ejemplo:

Se desea hacer un programa que realice las siguientes operaciones:

(0100) (0100) + 5(0200) (0200) + 5(0204) (0204) + 5

Programa principal SubrutinaLOAD X,0100 SUM5 LOAD A,(X)CALL SUM5 ADD 5LOAD X,0200 STORE (X),ACALL SUM5 RETLOAD X,0204CALL SUM5

¿Qué pasa si el programa principal estaba usando A?

Page 166: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 166 Arquitectura de Computadores

Ejemplo:

Se desea hacer un programa que realice las siguientes operaciones:

(0100) (0100) + 5(0200) (0200) + 5(0204) (0204) + 5

Programa principal SubrutinaLOAD X,0100 SUM5 LOAD A,(X)CALL SUM5 ADD 5LOAD X,0200 STORE (X),ACALL SUM5 RETLOAD X,0204CALL SUM5

¿Qué pasa si el programa principal estaba usando A?

kaput!!

Page 167: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 167 Arquitectura de Computadores

Ejemplo:

Se desea hacer un programa que realice las siguientes operaciones:

(0100) (0100) + 5(0200) (0200) + 5(0204) (0204) + 5

Programa principal SubrutinaLOAD X,0100 SUM5 PUSH ACALL SUM5 LOAD A,(X)LOAD X,0200 ADD 5CALL SUM5 STORE (X),ALOAD X,0204 POP ACALL SUM5 RET

Solución: se usa la pila

Page 168: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Subrutinas

D.Mery 168 Arquitectura de Computadores

La Pila (stack):

Existe una memoria direccionada por el registro SP (stack pointer). ¿Cómo se usa?

Cada vez que se hace PUSH X:

(SP) XSP SP + 1

Cada vez que se hace POP X:

SP SP - 1 X (SP)

(es posible hacer PUSH X y luego POP Y)

Page 169: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

Präsentat

ionD.Mery 169 Arquitectura de Computadores

[ Índice ]

3.1 Máquina de von Neumann3.2 Unidad de control

3.3 Fetch, decodificación, ejecución

3.4 Conjunto de instrucciones

3.5 Programación en assembler3.6 Formatos de instrucción3.7 Modos de direccionamiento3.8 Mecanismos de subrutinas

3.9 E/S e interrupciones

Page 170: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 170 Arquitectura de Computadores

El ciclo de una instrucción (sin interrupción)

Page 171: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 171 Arquitectura de Computadores

Diagrama de estado (sin interrupción)

Page 172: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 172 Arquitectura de Computadores

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 posición deseada.3. La unidad lee los datos.4. La unidad verifica consistencia de los datos (checksum) 5. if OK (Envía los datos a la CPU) else GOTO 36. La CPU recibe datos y continúa su programa

1 2 3 4 5 6 t

Page 173: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 173 Arquitectura de Computadores

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

1 2 3 4 5 6 t

CPUsolicitadatos

CPUrecibedatos

Unidad de discolee y envía datos

Page 174: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 174 Arquitectura de Computadores

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

1 2 3 4 5 6 t

¿Qué hace la CPU en

este tiempo?

CPUsolicitadatos

CPUrecibedatos

Page 175: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 175 Arquitectura de Computadores

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

1 2 3 4 5 6 t

¿Qué hace la CPU en

este tiempo?

NADA!!la CPU espera…

CPUsolicitadatos

CPUrecibedatos

Page 176: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 176 Arquitectura de Computadores

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 están listos la unidad de disco “interrumpe” a la CPU.

4. La CPU deja de hacer lo que está haciendo y atiende la interrupción, i.e., recibe los datos de la unidad de disco.

t (CPU)

t (unidad de disco)

Page 177: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 177 Arquitectura de Computadores

Ejemplo con interrupciones: un programa quiere leer datos del disco duro.

1 2 4 t

CPUsolicitadatos

CPUrecibedatos

CPUhace

otra cosa

Unidad de discolee y envía datos

3interrupción

Page 178: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 178 Arquitectura de Computadores

Ejemplo con interrupciones: un programa quiere leer datos del disco duro.

1 2 4 t

CPUsolicitadatos

CPUrecibedatos

CPUhace

otra cosa

Unidad de discolee y envía datos

3interrupción

Ahorro detiempo

Page 179: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 179 Arquitectura de Computadores

La interrupción es el mecanismo mediante el cual otros módulos pueden interrumpir una secuencia normal de procesamiento.

• Programa: por ejemplo división por cero

• Temporizador: cuando se cumple un tiempo específico

• E/S: cuando hay algo que comunicar

• Hardware: cuando ocurre una falla

Page 180: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 180 Arquitectura de Computadores

El ciclo de una instrucción (con interrupción)

Page 181: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 181 Arquitectura de Computadores

Diagrama de estado (con interrupción)

Page 182: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 182 Arquitectura de Computadores

CPU

ROM RAM

Bus de direcciones

Bus de datos

A12A11

:A0

A12

CECE

RD RD

WR

A0A0A11 A11

D0D7

D0D7 D0D7

A0A12

WR

RD

MREQ

Page 183: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 183 Arquitectura de Computadores

CPU

I/O RAM

Bus de direcciones

Bus de datos

CECE

A0A11

D0D7

D0D7

A0A12

WR

RD

MREQ

decoder

ROM

CE

INT

IORQ

Page 184: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 184 Arquitectura de Computadores

Funcionamiento de las interrupciones (posibilidad 1):

1. El dispositivo I/O cuando necesita interrumpir solicita atención y envía una señal INT a la CPU.

2. La CPU termina su instrucción y envía un reconocimiento a quien interrumpe mediante la señal IORQ (I/O request).

3. El dispositivo envía por el bus de datos un byte y la CPU forma una dirección a partir de este byte.

4. La CPU salta a esta dirección y ejecuta el programa de atención a la interrupción.

5. La CPU finaliza esta rutina de interrupción y regresa a la dirección que estaba en el momento de la interrupción.

Page 185: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 185 Arquitectura de Computadores

Funcionamiento de las interrupciones (posibilidad 2):

1. Igual2. Igual3. La CPU al saber que es el dispositivo X el que

interrumpe lee el elemento X del “vector de interrupciones” ubicado en algún lugar de la memoria, a partir de este elemento calcula la dirección de memoria de la rutina de atención de la interrupción.

4. Igual5. Igual

Page 186: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 186 Arquitectura de Computadores

Page 187: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 187 Arquitectura de Computadores

Interrupciones múltiples:

1. Inhibición de interrupciones:• La CPU ignora las interrupciones cuando ya está

procesando una interrupción.• Las interrupciones ocurridas quedan pendientes y se

ejecutan en una determinada secuencia una vez que la CPU termine la primera interrupción.

Page 188: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 188 Arquitectura de Computadores

Interrupción múltiple (secuencial)

Page 189: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 189 Arquitectura de Computadores

Interrupciones múltiples (cont):

2. Definición de prioridades• Interrupciones de baja prioridad pueden ser interrumpidas

por interrupciones de mayor prioridad.• Cuando una interrupción de prioridad alta ha sido

atendida, la CPU regresa a la interrupción previa.

Page 190: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 190 Arquitectura de Computadores

Interrupción múltiple (anidadas)

Page 191: [ Arquitectura de Computadores ] ORGANIZACIÓN DEL COMPUTADOR Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento

[ Organización ]

Präsentation

Interrupciones

D.Mery 191 Arquitectura de Computadores

Secuencia temporal de varias interrupciones