unidad 5 arquitectura convencional - frm.utn.edu.ar · utn-frm ingeniería en sistemas de...

28
UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 1 de 28 UNIDAD 5 ARQUITECTURA CONVENCIONAL INTRODUCCIÓN En esta Unidad veremos inicialmente dos conceptos que tienen que ver con los formatos de instrucción y los modos de direccionamiento, luego haremos modificaciones a BLUE para obtener nuestra BLUE Indexada que se parezca más a la arquitectura actual de una computadora, después agregaremos Interrupciones a BLUE Indexada y, finalmente estudiamos el microprocesador INTEL 8088 como ejemplo de máquina (CPU) convencional. Posteriormente , en la Unidad 6, veremos microprogramación y volveremos a mencionar el 8088. FORMATOS DE INSTRUCCIÓN En sentido general cualquier operación diódica (aquellas que tienen dos operandos y un resultado), requieren cuatro piezas de datos además del código de operación, a saber: Ubicación del primer operando Ubicación del segundo operando Ubicación del resultado Ubicación de la próxima instrucción Formato de cuatro direcciones Las primeras máquinas solían tener estas cuatro piezas en la propia instrucción, por ejemplo: Cód. de Oper. Dirección Operando A Dirección Operando B Dirección del Resultado Dirección de la próxima instrucción ADD A,B,C,D sumar A + B, colocar el resultado en C y buscar la próxima instrucción en D Las ventajas de este formato son: No son necesarias instrucciones de salto incondicional. Se realiza un solo ciclo de búsqueda para los tres operandos con referencia a memoria. La desventaja de este formato es la gran longitud de palabra que requiere, siendo esta la razón por la cual estas máquinas no prosperaron. Formato de tres direcciones La primer pieza a eliminar es la dirección de la próxima instrucción. Las instrucciones se colocan en forma sucesiva en la memoria, excepto en el caso de un salto. La próxima instrucción se obtiene entonces con ayuda de un contador de programa. Cód. de Oper. Dirección Operando A Dirección Operando B Dirección del Resultado ADD A,B,C sumar A+ B, colocar el resultado en C y buscar la próxima instrucción de acuerdo al PC Formato de dos direcciones La siguiente pieza a eliminar es la ubicación del resultado, por ejemplo: Cód. de Oper. Dirección del Operando A Dirección del Operando B ADD A,B sumar A+B, colocar el resultado en B y buscar la próxima instrucción de acuerdo al PC. Esto implica que el operando B se pierde Formato de una dirección La siguiente pieza a eliminar es la dirección del primer operando el cual se encuentra en un registro de la CPU, por ejemplo: Cód. de Oper. Dirección del Operando B ADD B sumar el contenido del Acc + B, colocar el resultado en el Acc y la próxima instrucción de acuerdo al PC Este es el caso de la máquina elemental vista en la Unidad anterior.

Upload: others

Post on 31-Oct-2019

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 1 de 28

UNIDAD 5ARQUITECTURA CONVENCIONAL

INTRODUCCIÓNEn esta Unidad veremos inicialmente dos conceptos que tienen que ver con los formatos de instrucción y los

modos de direccionamiento, luego haremos modificaciones a BLUE para obtener nuestra BLUE Indexada que se parezcamás a la arquitectura actual de una computadora, después agregaremos Interrupciones a BLUE Indexada y, finalmenteestudiamos el microprocesador INTEL 8088 como ejemplo de máquina (CPU) convencional. Posteriormente , en laUnidad 6, veremos microprogramación y volveremos a mencionar el 8088.

FORMATOS DE INSTRUCCIÓNEn sentido general cualquier operación diódica (aquellas que tienen dos operandos y un resultado), requieren

cuatro piezas de datos además del código de operación, a saber:

• Ubicación del primer operando• Ubicación del segundo operando• Ubicación del resultado• Ubicación de la próxima instrucción

Formato de cuatro direccionesLas primeras máquinas solían tener estas cuatro piezas en la propia instrucción, por ejemplo:

Cód. de Oper. Dirección Operando A Dirección Operando B Dirección del Resultado Dirección de la próximainstrucción

ADD A,B,C,D sumar A + B, colocar el resultado en C y buscar la próxima instrucción en D

Las ventajas de este formato son:No son necesarias instrucciones de salto incondicional.Se realiza un solo ciclo de búsqueda para los tres operandos con referencia a memoria.La desventaja de este formato es la gran longitud de palabra que requiere, siendo esta la razón por la cual estas máquinasno prosperaron.

Formato de tres direccionesLa primer pieza a eliminar es la dirección de la próxima instrucción. Las instrucciones se colocan en forma sucesiva en lamemoria, excepto en el caso de un salto. La próxima instrucción se obtiene entonces con ayuda de un contador deprograma.

Cód. de Oper. Dirección Operando A Dirección Operando B Dirección del Resultado

ADD A,B,C sumar A+ B, colocar el resultado en C y buscar la próxima instrucción de acuerdo al PC

Formato de dos direccionesLa siguiente pieza a eliminar es la ubicación del resultado, por ejemplo:

Cód. de Oper. Dirección del Operando A Dirección del Operando B

ADD A,B sumar A+B, colocar el resultado en B y buscar la próxima instrucción de acuerdo al PC.

Esto implica que el operando B se pierde

Formato de una direcciónLa siguiente pieza a eliminar es la dirección del primer operando el cual se encuentra en un registro de la CPU, porejemplo:

Cód. de Oper. Dirección del Operando B

ADD B sumar el contenido del Acc + B, colocar el resultado en el Acc y la próxima instrucción deacuerdo al PC

Este es el caso de la máquina elemental vista en la Unidad anterior.

Page 2: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 2 de 28

MODOS DE DIRECCIONAMIENTOLa manera de obtener un operando se refiere como modo de direccionamiento. En la máquina elemental ya vista,

direccionábamos los operandos de dos maneras:

• Si el operando está en memoria, especificábamos en la instrucción la dirección del mismo. Este es elllamado Modo de Direccionamiento Directo.• Si el operando está en un registro de la CPU, especificábamos el registro en cuestión (en el caso de lamáquina elemental que sólo dispone de un registro - el Acumulador - para este fin, no era necesario especificarlo.Este es el llamado Modo de direccionamiento por Registro.

Existen otros modos de direccionamiento de operandos muy útiles para el programador relacionados con dostareas muy comunes en el ámbito de la programación, estas tareas son:• La modificación de direcciones• Los contadores

Por ejemplo, supongamos que en la máquina elemental, deseamos sumar sucesivamente un conjunto de 100números ubicados correlativamente en la memoria. Deberíamos tomar uno a uno los números, sumarlos, colocar la sumaparcial en alguna posición de memoria, hasta llegar al número 100. Sería interesante contar con un hardware que faciliteel incremento de la dirección de memoria y conteo de las operaciones realizadas.Surge aquí la idea de mejorar el hardware a fin de facilitar tareas como las mencionadas.

NUEVO HARDWARE, NUEVAS INSTRUCCIONESVamos a agregar a Blue nuevos registros, nuevos modos de direccionamiento.

Registros ÍndiceVamos a agregar Registros Indice a la máquina elemental. Serán dos registros de 16 bits:

• Registro Indice F (RIF) y• Registro Índice D (RID).

Para poder trabajar con Registros Índice, también modificaremos el formato de instrucción:

Cód. de Oper.(5 bits)

CampoModificador

(2 bits)Campo de Dirección (16 bits)

Con 5 bits de Cód. de Operación podremos tener hasta 32 instruccionesCon 16 bits en el Campo de Dirección podremos direccionar hasta 65535 posiciones de memoria.Con 2 bits en el Campo Modificador podremos seleccionar hasta 4 Modos de Direccionamiento:• Directo:Si el contenido del Campo Modificador es: 0, usa el Campo de Dirección como la dirección de un operando, por ejemplo:LDA 0, 1000 Carga el Acc con el contenido de la posición 1000• Indirecto:Si el contenido del Campo Modificador es: 1, el Campo de Dirección apunta a una posición de memoria cuyo contenidono es el operando sino la dirección de este. Por ejemplo, suponiendo que el contenido de la posición 1000 es 3400:LDA 1, 1000 Carga el Acc con el contenido de la posición 3400.• Indexado:

Si el contenido del Campo Modificador es 2, el contenido del RIF es sumado al Campo de Direcciónobteniendo así la dirección del operando. Si el contenido del Campo Modificador es 3, el contenido del RID es sumado al Campo de Dirección

obteniendo así la dirección del operando. Por ejemplo:Suponiendo que el contenido de RIF es 5000LDA 2, 1000 Carga el Acc con el contenido de la posición 1000 + 5000

Sumador de DireccionesPara realizar la suma indicada para el direccionamiento indexado, implementamos en la CPU un sumador

dedicado sólo a esta tarea, de esta forma no usamos tiempo de la ALU.

Decodificador del Campo ModificadorPara poder decodificar el campo Modificador implementamos en la Unidad de Control un decodificador además

del Decodificador de Instrucciones ya existente.

Page 3: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 3 de 28

Nuevas InstruccionesPara poder trabajar con Registros Índice son necesarias nuevas instrucciones. Se proponen las siguientes:

RXT Reg, Reg Copie el contenido del Reg al RegSIX Reg, Dirección Guarde Registro en la Dirección de MemoriaLIX Reg, Dirección Cargue Registro desde la Dirección de MemoriaENI Reg, Valor16 Cargue Registro con la cantidad entera Valor16INI Reg, Valor11 Incremente Registro con la cantidad entera Valor11IJP Reg. Dirección Si Reg es distinto de cero, decremente Registro y salte a Dirección

Donde:Reg. Cualquiera del los siguientes: Acc, RIF, RIDDirección Dirección de MemoriaValor11/16 Cualquier valor numérico no signado de 11/16 bits

Registro BaseEl Registro Base es como el Registro Índice en el sentido que su contenido es sumado al campo de dirección de lainstrucción a fin de obtener la dirección efectiva. La diferencia consiste en:

• El usuario común no tiene control sobre el contenido del Registro Base• El contenido del Registro Base es siempre sumado a la dirección efectiva cuando se realiza una referencia a

memoria.Existen razones por las cuales es conveniente contar con un Registro Base:Cuando un programador escribe un programa debe definir la dirección de comienzo del mismo y la memoria que

necesita para su programa y datos asociados. Una idea arbitraria, pero usada, es que comience en la dirección CERO. Sinembargo hay razones por las cuales un programa no puede comenzar en la dirección CERO, una de las cuales es quepuede existir más de un programa residente en memoria en un momento dado (Multiprogramación) y no todos puedencomenzar en la dirección CERO, otra es que las primeras posiciones de memoria se reservan para otras tareas como elmanejo de entrada salida que se ve posteriormente. Aquí el alumno puede imaginar la necesidad de un programaadministrador del sistema (que podríamos llamar Monitor), este programa debería, entre otras tareas, encargarse dedecidir la ejecución de los programas de usuario asignándole direcciones de comienzo y área de memoria a utilizar(Proceso llamado ensamblado del programa).

El programador no tiene forma de conocer de antemano cual será la dirección de comienzo de su programadisponible en el momento de ejecución; peor aún, una vez que el programa ha sido cargado, el Monitor puede necesitarreubicarlo a fin de consolidar áreas vacías en la memoria. El Relocating Loader, programa del Monitor encargado dereubicar los programas de usuario en la memoria, debe ser capaz de distinguir entre las constantes del programa deusuario (que no debe modificar) y direcciones reubicables del programa (que debe modificar).

Aclaremos mediante un ejemplo:El usuario escribe un programa que comienza en la dirección CERO:

0000 ENI RID, 1000 coloque el valor 1000 en el Registro Índice RID0001 LDA 3, 1234 cargue el Acc con el contenido de la posición 2234 (1234+1000)..............

Supongamos ahora que el Relocating Loader, por razones ya mencionadas, carga el programa a partir de ladirección 5000, el resultado debería ser:

5000 ENI RID, 1000 coloque el valor 1000 en el Registro Índice RID5001 LDA 3, 6234 cargue el Acc con el contenido de la posición 7234 (6234+1000)..............

Se observa que no ha sido modificada la instrucción en la dirección 5000 porque se trata de una constante y si loha sido la instrucción en la dirección 5001 porque se trata de una dirección.

La tarea del Relocating Loader puede facilitarse y hasta reemplazarse con la implementación del Registro Base.El desplazamiento de dirección (cargado en el Registro Base) es sumado a la dirección efectiva sólo cuando una

referencia a memoria es realizada. Las constantes están entonces inmunes a tal influencia. Cualquier referencia a memoriaes automáticamente modificada en la cantidad de la dirección inicial del programa.

Page 4: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 4 de 28

BLUE INDEXADALa nueva máquina (BLUE Indexada) con los Registros Índice, el Registro Base y el Sumador de Direcciones con

sus registros de entrada W, X, y RB, se muestra en la siguiente figura:

En la figura se indica en cursiva el nuevo hardware de Blue

CICLOS DE INSTRUCCIÓNVeamos cómo será ahora el ciclo de búsqueda y ejecución para alguna de las nuevas instrucciones del Blue:

1) LDA 3, XXXXXX Cargue el Acc con el contenido de la posición de memoria (XXXXXX + RDI)El aspecto de LDA 3, XXXX en la Memoria es:

Código de Operación de 5 bits(LDA)

Campo Modificador de 2 bits(3)

Campo sin uso de 9 bits

Campo de Dirección de 16 bits(XXXXXX)

BúsquedaPulso de Reloj AcciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de LecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 -CP6 Envíe MBR, Cargue IRCP7 -CP8 Pasar a Ejecución

Registro de Llaves SR

Acumulador Acc Cont. de Prog. PC

Reg. Índice Fuente RIF

Reg. Índice Destino

MBRReg. de Instrucciones

MAR

Registro Base RB

Memoria65536

posicionesde

16 bitsALU

Reg. Z Reg. Y

Sumador deDirecciones (Σ)

BUS

W X

Decodificador de Instrucciones

Decodificador del Campo Modificador

Secuenciador

Unidad de Control

Page 5: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 5 de 28

EjecuciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de lecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 Envíe RID, Cargue XCP6 Envíe MBR, Cargue WCP7 -CP8 Seguir en Ejecución

CP1 Envíe Σ, Cargue MAR, Orden de LecturaCP2 -CP3 -CP4 -CP5 -CP6 Envíe MBR, Cargue AccCP7 -CP8 Estado Búsqueda

El ciclo de búsqueda es igual al de BLUE.El ciclo de ejecución consta de dos ciclos de máquina (también llamado ciclo de memoria).En el primero en CP1 direcciona la posición siguiente para obtener el campo de dirección de la instrucción (tener

en cuenta que esta instrucción ocupa dos palabras en Memoria), entre CP2 y CP4 incrementa nuevamente al PC de formatal que en el siguiente ciclo de búsqueda apunte a la próxima instrucción. En CP5 y CP6 carga los registros de entrada alsumador de direcciones para calcular la dirección efectiva del operando.

En el segundo en CP1 direcciona al operando y da orden de lectura, entre CP2 y CP5 espera a la memoria, enCP6 envía el dato leído al Acumulador. Finalmente en CP8 coloca a la máquina en búsqueda.

Se observa que para esta instrucción se utilizan 3 ciclos de máquina.

2) LDA 1, XXXXXX Carga el ACUMULADOR con el contenido de la dirección indicada en el contenido deXXXXXEl aspecto de LDA 1,XXXXXX en la memoria es:

Código de Operación de 5 bits(LDA)

Campo Modificador de 2 bits(1)

Campo sin uso de 9 bits

Campo de Dirección de 16 bits(XXXXXX)

BúsquedaPulso deReloj

Acción

CP1 Envíe PC, Cargue MAR, Cargue Z, Orden de LecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 -CP6 Envíe MBR, Cargue IRCP7 -CP8 Pasar a Ejecución

EjecuciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de lecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 Envíe 0, Cargue XCP6 Envíe MBR, Cargue WCP7 -CP8 Seguir en Ejecución

Page 6: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 6 de 28

EjecuciónCP1 Envíe Σ, Cargue MAR, Orden de LecturaCP2 -CP3 -CP4 -CP5 -CP6 Envíe MBR, Cargue WCP7 -CP8 Seguir en Ejecución

EjecuciónCP1 Envíe Σ, Cargue MAR, Orden de LecturaCP2 -CP3 -CP4 -CP5 -CP6 Envíe MBR, Cargue AccCP7 -CP8 Pasar a Búsqueda

Se observa que el direccionamiento indirecto requiere 4 ciclos de máquina

3) LDA 0, XXXXXX Cargue el Acc con el contenido de la posición XXXXXX

El aspecto de LDA 0,XXXXXX en la memoria es:

Código de Operación de 5 bits(LDA)

Campo Modificador de 2 bits(0)

Campo sin uso de 9 bits

Campo de Dirección de 16 bits(XXXXXX)

BúsquedaPulso de Reloj AcciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de LecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 -CP6 Envíe MBR, Cargue IRCP7 -CP8 Pasar a Ejecución

EjecuciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de lecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 Envíe 0, Cargue XCP6 Envíe MBR, Cargue WCP7 -CP8 Seguir en Ejecución

EjecuciónCP1 Envíe Σ, Cargue MAR, Orden de lecturaCP2 -CP3 -CP4 -CP5 -CP6 Envíe MBR, Cargue AccCP7 -CP8 Pasar a Búsqueda

Page 7: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 7 de 28

4) INI RIF, XXXX Incrementar el Índice RIF en el valor XXXX

El aspecto de INI RIF, XXXX en la memoria es

Código de Operación de 5 bits(INI)

Valor numérico de 11 bits

BúsquedaPulso de Reloj AcciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de LecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 -CP6 Envíe MBR, Cargue IRCP7 -CP8 Pasar a Ejecución

EjecuciónCP1 Envíe PC, Cargue ZCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 Envíe RIF, Cargue ZCP6 Envíe IR 0-10, Cargue YCP7 -CP8 Envíe SUMA, Cargue RIF. Pasar a Búsqueda.

5) ENI RID, XXXXXX Cargar el RID con el valor XXXXXXEl aspecto de ENI RID, XXXXXX en la memoria es:

Código de Operación de 5 bits(ENI)

Campo Modificador de 2 bits(3)

Campo sin uso de 9 bits

Campo de Dirección de 16 bits(XXXXXX)

BúsquedaPulso de Reloj AcciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de LecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 -CP6 Envíe MBR, Cargue IRCP7 -CP8 Pasar a Ejecución

EjecuciónCP1 Envíe PC, Cargue MAR, Cargue Z, Orden de LecturaCP2 Envíe 1, Cargue YCP3 -CP4 Envíe SUMA, Cargue PCCP5 -CP6 Envíe MBR, Cargue RIDCP7 -CP8 Pasar a Búsqueda.

Page 8: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 8 de 28

Comentarios:• La BLUE Indexada no tiene formato fijo de instrucción• No todas las instrucciones que hacen referencia a memoria deben tener todos los modos de direccionamiento, por

ejemplo la instrucción LIX RIF, XXXXXX no posee modo de direccionamiento indexado ya que se estaríaautoindexando.

• Las instrucciones pueden tener de 1 a 4 ciclos de máquina para ejecutarse, dependiendo de la instrucción en si y desu modo de direccionamiento. Se sugiere al alumno realizar los ciclos de máquina para todas las instrucciones deBlue indexada que se indican al final de la Unidad.

INTERRUPCIONESTodas las entradas-salidas en BLUE se llevan a cabo vía el acumulador mediante las instrucciones INP y OUT,

sin embargo existen otras formas de manejar las operaciones de entrada-salida que no inmovilizan la CPU mientras unatransferencia de datos está ocurriendo. Esto tiene que ver con la velocidad de los periféricos que en general es inferior a lade la CPU. Por otro lado, existen eventos que se producen con poca frecuencia y que por su importancia sería convenienteatenderlos en el momento que ocurren.

El modo más conveniente de manejar estos problemas es arreglar el hardware de tal forma que cuando estoseventos ocurren, se produzca una suspención (interrupción) automática del programa corriente y se transfiera el controltemporariamente a una rutina diseñada especialmente para manejar estos eventos.

Manejo de Entrada/Salida bajo control del procesadorEn general las operaciones de entrada/salida son iniciadas por el procesador mediante una instrucción de entrada

o de salida. Una vez iniciada la operación el Procesador espera que la misma se complete y luego continúa con elprograma principal, este es el caso de la máquina elemental BLUE de la Unidad 4. Obsérvese que si la velocidad deldispositivo es inferior a la del Procesador (como es el caso general) este está inmovilizado por mucho tiempo. Peor aún, siel dispositivo sufre algún desperfecto, el Procesador puede esperar eternamente. Se puede mejorar esto último simodificamos el ciclo de ejecución de las instrucciones INP y OUT en BLUE no condicionando su finalización a la señalR (Ready) del dispositivo. Esto último implica que el programa principal debería preguntar periódicamente por esta señaldel dispositivo a fin de finalizar la operación. Como se puede ver, este esquema no es muy eficaz desde el punto de vistadel tiempo y complica bastante la programación.

Manejo de entrada salida con InterrupcionesLa otra opción, como se mencionó al principio, es iniciar la operación de entrada/salida con una instrucción de

entrada o de salida y continuar con el programa principal. Cuando el dispositivo en cuestión termina, solicita un pedido deatención (solicitud de interrupción) que, al ser atendido por el Procesador, finaliza con la operación. Este esquema es máseficaz que el anterior por cuanto no hay perdida de tiempo; pero requiere hardware e instrucciones especiales que losoporten. Además, si existe más de un dispositivo que solicite atención, es necesario identificarlo y asignar prioridades.

Este esquema de interrupciones es útil también para el caso de dispositivos que requieren una operación deentrada/salida por sí mismos (no necesariamente iniciadas por el Procesador anteriormente).

Con lo mencionado podemos ver el siguiente cuadro:

Bajo Control del Procesador

Manejo de Entrada/Salida

Interrupciones

Veremos más adelante que, de acuerdo a cómo se identifica al dispositivo que solicita la Interrupción, tenemos elsiguiente cuadro:

POLLING

Interrupciones

VECTORIZADAS

Por último, antes de describir un Sistema Elemental de Interrupciones para BLUE, podemos mencionar que elconcepto de interrupción se extiende a eventos no necesariamente externos. Este es el caso de las llamadas interrupcionesinternas cuyo origen proviene del interior del Procesador (Desborde de registros, división por cero, código de operaciónno válido, desborde de la Pila , etc.) y las llamadas interrupciones por software, cuyo origen proviene de una instrucción.

Page 9: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 9 de 28

Sistema elemental de Interrupciones para Blue IndexadaVamos a construir un sistema de interrupciones elemental para BLUE.

Definimos un Biestable en la Unidad de Control que llamamos Sistema de Interrupción (SI) cuyo estado puedecontrolarse por medio de dos nuevas instrucciones: ION e IOF.• Si SI está en 1 el sistema de interrupciones está "habilitado"• Si SI está en 0 el sistema de interrupciones está "deshabilitado"

Cada dispositivo con capacidad de interrumpir posee una línea de solicitud de interrupción que pone a 1 cuandonecesita atención, estas Banderas de Dispositivo van a una compuerta OR cuya salida, será una línea única de pedidoIRQ de interrupción a la CPU.Si las interrupciones están habilitadas (SI=1) e IRQ pasa a 1, se produce una interrupción en la ejecución del programacorriente, justo antes del comienzo del próximo ciclo de búsqueda, es decir que la instrucción actual termina deejecutarse. Tres eventos ocurren cuando la CPU acepta una interrupción:• El Biestable SI se coloca en 0, inhabilitando el sistema de interrupciones.• El contenido del PC es guardado en la posición CERO.• Se carga el PC con el valor 1 y se dispara un ciclo de búsqueda.

Estos eventos los lleva a cabo la Unidad de Control según el siguiente esquema.

Se ve en la figura el Biestable Estado que es el mismo de la BLUE, el Biestable SI es el ya mencionado y untercer Biestable auxiliar (I) que es el encargado de generar la señal I. Ahora existen tres estados en la máquina:• Búsqueda (F)• Ejecución (E)• Interrupción (I)

El estado de Interrupción ocurre, según se ve en la figura, cuando la línea IRQ está en 1 (indicando que algúndispositivo requiere atención), el sistema de interrupciones está habilitado (SI = 1) y se produce CP8 estando en estado deEjecución (esto asegura la finalización de la ejecución de la instrucción corriente). La siguiente tabla indica el ciclo deinterrupción:

Pulso de Reloj AcciónCP1 Biestable SI = 0CP2 Envíe PC, Cargue MBRCP3 Envíe 0, Cargue MAR, Orden de EscrituraCP4 Envíe 1, Cargue PCCP5 -CP6 -CP7 -CP8 Biestable I = 0

Comenzando en la posición 1 debe haber una rutina de interrupción cuya tarea consiste en dos acciones:

SALVARCONTEXTO

DETERMINAR QUIENCAUSÓ LA

INTERRUPCIÓN(POLLING)

Instrucción IOF

F

E

IS Q

I

R Q*

IRQ

CP8

S Q

SI

R Q*

D Q

ESTADO

Q*

CP1

I

Instrucción ION

Un UNO cuandoPasa a Ejecución

Page 10: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 10 de 28

• "Salvar" (guardar) en la memoria los contenidos de todos los Registros (Contexto), excepto el PC, a fin derestituirlos una vez terminado el proceso. Esta acción podría implementarse automáticamente en el ciclo deinterrupción, el cual en este caso podría implicar más de un ciclo de máquina.

• Determinar quien causó la interrupción.

Con respecto a la segunda acción recordemos que cada dispositivo con capacidad de interrumpir posee una"Bandera de Dispositivo" que si está en 1 indica que solicita interrupción, 0 en caso contrario. A fin de determinar lacausa de la interrupción vamos a usar una nueva instrucción que chequee estas banderas:

SKF X Omitir la próxima instrucción si X es CERO

X representa la bandera que se corresponde con los dispositivos que solicitan interrupción

Esta parte de la rutina de interrupción (llamada POLLING), tendrá entonces este aspecto:

SKF 1 Si la bandera 1 es 0, omitir la próxima instrucciónJMP Rutina1 Salte a la Rutina de Atención del Dispositivo 1SKF 2 Si la bandera 2 es 0, omitir la próxima instrucciónJMP Rutina2 Salte a la Rutina de Atención del Dispositivo 2SKF 3 Si la bandera 3 es 0, omitir la próxima instrucciónJMP Rutina3 Salte a la Rutina de Atención del Dispositivo 3SKF 4 Si la bandera 4 es 0, omitir la próxima instrucciónJMP Rutina4 Salte a la Rutina de Atención del Dispositivo 4--

Una vez que la interrupción ha sido procesada, la Rutina de atención al Dispositivo en cuestión, aún tiene querealizar dos acciones:• Cargar el PC con el contenido de la posición CERO• Poner un UNO en el Biestable SI, con lo cual habilita las interrupciones.

Estas acciones pueden llevarse a cabo con una nueva instrucción que llamamos retorno de interrupción RTI.

EL orden en que se realiza el chequeo de las banderas de dispositivo en la Rutina de Interrupción determina, encaso de existir más de una solicitud a la vez, la prioridad del dispositivo que solicita atención. Podemos ahora agregarun nuevo registro llamado Registro Máscara (RM) cuyo contenido puede modificarse con la nueva instrucción EMRValor. Este registro permite enmascarar (evitar darle curso) solicitudes de interrupción. El uso de este registro en ciertaforma permite modificar el esquema de prioridades. En la figura se presenta el sistema de interrupciones descripto:

a Dispos. 1a Dispos. 2a Dispos. 3a Dispos. 4a Dispos. 5a Dispos. 6

a Dispos. n-1a Dispos. n

Las Banderas Dispositivo son líneas que provienen de los dispositivos que solicitan atención, estas líneas sonborradas por los dispositivos externos cuando la solicitud de interrupción ha sido atendida o bien por la propia instrucciónSKF que, después de leer la bandera, la borra.

Registro MáscaraRM

Desde el BUSEMR

IRQ

Page 11: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 11 de 28

Registro Puntero de Pila

El Sistema de Interrupciones descripto no permite que la CPU sea interrumpida cuando está atendiendouna interrupción, ya que la dirección de retorno guardada en la posición CERO se perdería. Si el contexto de la máquina(incluido el PC) se guardara en la memoria en una estructura LIFO (pila) cuya dirección inicial se indicara en un nuevoRegistro que llamamos Registro Puntero de Pila (SP), sería posible atender interrupciones dentro de una interrupción(interrupciones anidadas) con sólo incrementar este Registro, en la cantidad adecuada, por cada nueva interrupción. Elcontenido del Registro Puntero de Pila debe decrementarse por cara retorno de interrupción, además el biestable SIdebería ponerse en 1 justo al comienzo de la Rutina de Atención de Dispositivo. El programador debe escribir la Rutinade Interrupción de manera que dispositivos de menor prioridad no puedan interrumpir un proceso de interrupcióncorriente de mayor prioridad, esto lo puede hacer usando adecuadamente el Registro Máscara.

Interrupciones vectorizadas

Otro método para determinar quien interrumpe es el llamado VECTORIZADO. En este esquema a cadadispositivo que puede interrumpir se le asigna una dirección llamada vector de interrupción (Trap Vector Address). Estadirección es suplida por el dispositivo que interrumpe y en la misma, el programador debe almacenar la dirección decomienzo de la Rutina de Atención que corresponda. De esta forma toma lugar un salto indirecto a través del vector a laRutina de Atención.

Como puede inferirse , este método es más rápido que el POLLING ya que no es necesario preguntar bandera abandera. Por otro lado es conveniente considerar una señal de reconocimiento de interrupción ACK generada por laUnidad de Control cuando ha reconocido una solicitud de interrupción y comienza el proceso de su atención.La siguiente figura indica el conexionado externo a la CPU, la señal de reconocimiento ACK se encadena del Dispositivo1 a los siguientes. La prioridad la tiene el Dispositivo de la izquierda.

La señal I es la bandera de solicitud de interrupción, es puesta a 1 si el dispositivo correspondiente necesitaatención Cuando el dispositivo recibe la señal de reconocimiento ACK vuelca al BUS (no dibujado) su dirección y pone a0 su bandera I.

La señal M es el bit de máscara y es puesta a 0 o 1 por programa.

I

M M M

I I

D1

DN

D2

CPU

IRQ

ACKACKNACK2ACK1

Page 12: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 12 de 28

ComentariosNuestra nueva máquina, en lo esencial, se parece bastante a cualquier procesador actual.

Generalicemos e veamos cómo debería estar organizada la memoria en una máquina convencional. Imaginemos queexisten más de un programa en memoria (multiprogramación):• cada programa (posiblemente de distintos usuarios) debe poseer un sector de memoria propio para su código y para

los datos con los que opera (datos locales),• debe existir un sector destinado a los datos compartidos por varios programas (datos globales)• debe existir un sector destinado al Sistema de Interrupciones• debe existir un sector destinado a la PILA• debe existir un sector destinado a un programa Monitor que administre el Sistema

Como se ve, la memoria debe estar organizada en al menos cinco sectores y el Monitor tiene al menos las siguientestareas:• Organizar la Memoria• Administrar la ejecución de los Programas (Reubicar Programas, Prioridades, Memoria disponible, Uso de Datos

Globales)• Administrar las Interrupciones (Habilitación, Prioridades)• Definir el tamaño de la PILA en función del estado actual del Sistema

En resumen, el Monitor debe administrar los recursos del Sistema adecuadamente, de él dependerá en parte eldesenvolvimiento de la máquina ante los distintos requerimientos del usuario.En el siguiente punto vemos el microprocesador Intel 8088 que sirvió de CPU a las primeras PC (Computadora Personal)cuya arquitectura es similar a nuestra máquina convencional.

Dirección provista por elDispositivo cuya solicitud deInterrupción está en curso

Vectores

Dirección D1Dirección D2

Dirección DN

RutinaDispositivo1

RutinaDispositivo2

RutinaDispositivo N

MEMORIA

____

Area de Memoriadestinada a las Rutinas deServicio de Interrupción

Saltos

Page 13: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 13 de 28

MICROPROCESADOR INTEL 8088INTRODUCCIÓNEl término microprocesador se refiere a una CPU contenida en un solo circuito integrado. Existen en el mercado variosmicroprocesadores que pueden ser utilizados como CPU de una máquina convencional. Se ha elegido el Intel 8088 porser el iniciador de las PC (IBM PCXT), tener una estructura similar a otros procesadores Intel ( 8086, 80186, 80286,80386, 80486 y Pentium ) y estar muy difundido. El Intel 8088 tiene las siguientes características generales:• Interfase al bus de datos de 8 bits.• Arquitectura interna de 15 bits.• Capacidad de direccionamiento de 1 Mbyte.• Compatibilidad de Software con el 8086 CPU.• Variedad en modos de direccionamiento.• Operaciones en bloques, palabras y bytes.• Aritmética signada y no-signada de 8 y 16 bits, en binario, decimal, incluyendo multiplicación y división.• 14 registros de 16 bits.

FIGURA 3 - Configuración de pines del 8088

1234567891011121314151617181920

4039383736353433323130292827262524232221

GNDA14A13A12A11A10

A9A8

AD7AD6AD5AD4AD3AD2AD1AD0NMI

INTRCLKGND

VCCA15A16/S3A17/S4A18/S5A19/S6SS0 MN/MXRDHOLDHLDAWRI/O/MDT/RDENALEINTATESTREADYRESET

8088

Page 14: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 14 de 28

Algunas de las líneas (pines) del 8088 se describen en la tabla siguiente. El bus de datos, si bien internamente el8088 es un microprocesador de 16 bits, es de 8 bits. Además está multiplexado en el tiempo, es decir que algunas líneas

son datos algunas veces o direcciones otras.

TABLA 3 - Algunas señales del 8088SÍMBOLO TIPO FUNCIÓN

AD7-AD0 E/S BUS DE DATOS Y DIRECCIONES. Estas líneas están multiplexadas en el tiempo.A15-A8 S BUS DE DIRECCIONESA19-A16S6-S3

S BUS DE DIRECCIONES Y ESTADO. Estas líneas están multiplexadas en el tiempo.

RDWR

S BUS DE CONTROL. Líneas de control de lectura y escritura

INTRNMI

E Líneas de pedido de interrupción.

READYTESTRESETMN/MX

E BUS DE CONTROL. Líneas de control de entrada

IOINTAALEDT/RDENS2, S1, S0

S BUS DE CONTROL. Líneas de control de salida

VCC E AlimentaciónGND E Tierra

Page 15: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 15 de 28

FIGURA 4 - Diagrama en bloque funcional del 8088

ES

CS

IP

DS

SS

4

1

2

3

B (BH o BL)A (AH o AL)

DISIBPSP

D (DH o DL)C (CH o CL)

TEMP TEMP

SUMADOR

TEMP

TEMP

TEMP

TEMP

ALU8 o 16 bits

REGISTRO DE ESTADO

PLA

MICRO

MICROROM

(504X21)

ROM detraslación

SR

M

B

X

NDECO

MICRO MBR

IR

Bus A

Bus B

Bus C

Cola deInstrucciones(4 Bytes)

UNIDAD DE CONTROL

UNIDAD DE EJECUCIÓN (EU)

UNIDAD DE INTERFAZ AL BUS (BIU)

0

15 0

15

Señales de control

Page 16: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 16 de 28

Las funciones internas del 8088 están divididas lógicamente en dos unidades de procesamiento, la BIU y la EU.Estas unidades pueden interactuar directamente, realizando de las operaciones asincrónicamente.

1) La Unidad de Interfaz al bus (BIU) que cumple las siguientes funciones:a) Busca las instrucciones en la memoria.b) Llena la cola de instrucciones que consta de 4 bytes (FIFO).c) Proporciona el control del bus.d) Proporciona a la EU los operandos a procesar.La BIU está formada por un sumador, un conjunto de 5 registros de 16 bits y la cola de instrucciones (4

bytes). Los circuitos relacionados con el control del bus y tareas de pre-búsqueda de instrucciones que realiza la BIU, noestán indicados en la figura 4.

2) La Unidad de ejecución (EU), esta recibe la instrucción buscada previamente por la BIU y se encarga de ejecutarla.La EU consta de la Unidad de Control (CU), la Unidad Lógico-Aritmética (ALU) y un conjunto de 9

registros de 16 bits.

Se observa en la figura que el 8088 posee tres buses internos (A, B, C), la ALU posee tres registros temporariosde entrada (estando limitada una entrada a uno solo de ellos), su salida (sin registro temporario) puede fluir por el bus acualquier registro, incluidos los de su propia entrada. Puede realizar operaciones de 8 o 16 bits y las condicionesresultantes son almacenadas en el registro de condiciones.

La BIU al detectar al bus externo ocioso envía una solicitud a la memoria para leer el siguiente byte en el flujode instrucciones. Los bytes leídos son almacenados temporariamente en la cola de instrucciones, cuando la EU requiereun nuevo byte de instrucción, lo toma de esta cola. La dimensión de cuatro bytes de la cola responde al compromiso deque la EU no tenga que estar esperando por un nuevo byte por un lado; y a que, por el otro, colas demasiado largasocuparían mucho al bus llenándose con bytes que podrían no utilizarse, por ejemplo cuando se ejecuta una instrucción desalto.

La Unidad de Control del 8088 es microprogramada, posee una ROM de 504 palabras de 21 bits (se recomiendaleer la máquina elemental microprogramada) que almacena aproximadamente 90 microprocedimientos. Cada instrucción,para ejecutarse, requerirá de al menos un microprocedimiento.

La instrucción que se encuentra almacenada en la cola de instrucciones, es transferida al registro de instrucciones(IR), el decodificador la extrae y la disemina por la Unidad de Control. La información relacionada con la fuente ydestino de los operandos, es transferida a los registros M y N. El código de operación se transfiere al registro X (paraindicar a la ALU la operación a realizar).y al registro B (para indicar a la ALU si se trata de una operación de 8 o 16 bits).El código de operación también se transfiere a un combinacional (PLA) a fin de obtener la dirección de comienzo delmicroprocedimiento correspondiente. Cada microprocedimiento tiene como máximo 16 microinstrucciones, y no sonexclusivos de una instrucción. Por ejemplo, existen microprocedimientos comunes a todas las instrucciones como losrelacionados con el cálculo de direcciones.

El formato de una microinstrucción del 8088 es:

FUENTE5 BITS

DESTINO5 BITS

TIPO3 BITS

ALU4 BITS

REG.3 BITS

CC1BIT

Campo Fuente: Indica el registro. fuente de una operación.Campo Destino: Indica el registro destino de una operación.Campo Tipo: Indica el tipo de microinstrucción:

Operación de la ALUOperación de la memoriaSalto cortoSalto largoLlamada a microprocedimientoContabilidad

Campo ALU: Indica la operación que debe realizar la ALU.Campo Registro: Proporciona el operandoCampo de Condición. Indica la activación de registro. F

Las microinstrucciones se ejecutan una por ciclo de reloj, la dirección de la primera microinstrucción a ejecutar,la proporciona el código de operación de la instrucción a través de la PLA, cargando el microMAR. Se observa en la fig.4 que el microMAR puede ser cargado también desde la ROM de traslación que mapea direcciones de 5 bits y desde elregistro. SR. La ROM de traslación es usada cuando el microprograma requiere de un salto y el registro SR se utiliza paraguardar la dirección de retorno de una micro-subrrutina.El estudio en detalle del funcionamiento de la Unidad de Control del 8088 escapa al alcance de la materia, no obstante sepuede considerar similar a la máquina elemental microprogramada.

Page 17: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 17 de 28

El microprograma del 8088, como el de otros microprocesadores, no es accesible al usuario. Su estructura enparticular en cada micro es consecuencia de consideraciones tecnológicas y de mercado. Más adelante se haránconsideraciones respecto a las ventajas y desventajas de la microprogramación.

REGISTROS DEL 8088

Catorce registros se agrupan en las siguientes cuatro categorías:Registros generales: Ocho registros generales de 16 bits se dividen en dos grupos:- Cuatro registros direccionables como de 16 bits u 8 bits:

AX (Acumulador),usado para almacenar resultados de operaciones, lectura/escritura desde o hacia la memoria o lospuertos. (AH, AL)BX (Base), usado en direccionamiento. (BH, BL)CX (Contador), usado en interacciones como contador. (CH, CL)DX (Datos), usado para el acceso de datos. (DH, DL)

- Cuatro registros índice y registros base:BP (Puntero de base), usado en direccionamiento.SI (Índice), usado en direccionamiento.DI (Índice), usado en direccionamiento.SP (Puntero de pila), apunta a la última dirección de pila utilizada.

Registros de segmento: Cuatro registros de 16 bits de propósitos especiales, están relacionados con la segmentación de lamemoria.

CS: Selecciona el área de memoria destinada al código del programaDS: Selecciona el área de memoria destinada a los datos.SS: Selecciona el área de memoria destinada a la pila (STACK).ES: Selecciona el área de memoria destinada

Registros de control y estado: Dos registros de 16 bits de propósitos especiales:

F: Registro de condicionesBit 0: C Acarreo, C=1 si hay acarreo.Bit 1: No usadoBit 2: P Paridad, P=1 si el resultado tiene un número par de

unos.Bit 3: No usadoBit 4: AC Acarreo auxiliar, AC = 1 si hay acarreo del bit 3 al bit 4 del resultado.Bit 5: No usadoBit 6: Z Cero, Z=1 si el resultado en cero.Bit 7: S Signo, S=1 si el resultado es negativo.Bit 8: T Trap, T=1 si ocurre alguna interrupción.Bit 9: Y Interrupción, Y=1 indica que las interrupciones están habilitadas.Bit 10: D Dirección, D=1 indica sentido de alto a bajo en el procesamiento de cadenas.Bit 11: O Overflow, O=1 si hay overflow.Bit 12: No usadoBit 13: No usadoBit 14: No usadoBit 15: No usado

IP: Puntero de instrucciones, indica la dirección de la próxima instrucción a ejecutar.

ORGANIZACIÓN DE LA MEMORIA

La memoria está organizada como un conjunto de cuatro segmentos, cada uno en es una secuencia lineal de hasta64 kbytes. La memoria es direccionada usando dos componentes de dirección consistentes en un selector de segmento de16 bits y un offset de 16 bits (ver fig. 5). El primero indica el segmento seleccionado y el segundo indica el byte deseadodentro del segmento. Todas las instrucciones que dirección en operandos en memoria deberán especificar el segmento y

Page 18: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 18 de 28

el offset, sin embargo en la mayoría de los casos no es necesario especificar en forma explícita el segmento en uso. Elregistro de segmento correcto es elegido automáticamente de acuerdo a la Tabla 4. Instrucciones especiales permitenespecificar el segmento para casos especiales.

FIGURA 5

REF. NECESARIA REG. USADO REGLAInstrucción CS Automáticamente con la pre-

búsqueda de la instrucciónStack SS Operaciones de Pus y Pop y ref. a

memoria que usan el registro. BPDato local DS Todas las referencia a datos

excepto los relacionados al stacku operaciones de string.

Dato externo ES Segmento de datos alternativo ydestino de operaciones de string.

TABLA 4

Cabe mencionar que no toda la memoria se encuentra disponible para cualquier finalidad. Las primeras 03FFhposiciones (como se verá posteriormente) se encuentran destinadas para el proceso de interrupciones. Las últimas Fhposiciones (desde la FFF0h a la FFFFh) están reservadas para operaciones que tienen que ver con la carga del programainicial. Cuando el 8088 recibe una señal en el pin RESET inicializa al IP de modo que apunte a la posición FFF0h dondedebería estar una instrucción de salto a una rutina de inicio. De aquí se desprende que no toda la memoria debe ser RAM,necesariamente algunos sectores deben de ser memoria ROM.

MODOS DE DIRECCIONAMIENTO

Ocho modos de direccionamiento para especificar operandos son posibles en el 8088. Dos de ellos son provistospara instrucciones que operan sobre registros o con operandos inmediatos:

Modo de operando en registro: El operando esta en uno de los registros generales (8 o 16 bits). Por ejemplo MOV AX, DX (DX) (AX)Modo de operando inmediato: El operando esta incluido en la instrucción. Por ejemploMOV AH, 14 14 AH

Los seis restantes modos permiten especificar operandos ubicados en un segmento de memoria. Como vimos unadirección de operando en memoria posee dos componentes de 16 bits: el selector de segmento y el offset. El selector desegmento es suplido por alguno de los registros de segmento, mientras que el offset es calculado por la suma de diferentescombinaciones de los siguientes tres elementos de dirección:- el desplazamiento: valor de 8 o 16 bits incluido en la instrucción.- la base: contenido de cualquier registro base BP o BX.- el índice: contenido de cualquier registro índice SI o DI.

La combinación de estos elementos de dirección definen los siguientes seis modos:Modo directo: el offset está contenido en la instrucción como un desplazamiento. Por ejemplo MOV 14, AL (AL) (DS) * 10h + 14h.Modo indirecto por registro: el offset está contenido en uno de los registros BX, BP, SI o DI. Por ejemploMOV [BX], CX. (CX) (DS) * 10h + (BX)Modo basado: el offset resulta de la suma de un desplazamiento y el contenido de BP o BX. Por ejemplo

OFFSET

SEL DE SEG.

SUMADOR

DIRECCIÓN FÍSICA

0

0OOOO

OOOO

19 0

15

15

Page 19: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 19 de 28

MOV [BP + 3], 2A 2A (DS) * 10h + (BP) + 3hModo indexado: el offset resulta de la suma de un desplazamiento y el contenido de SI o DI.MOV [SI + 3], 2A 2A (DS) * 10h + (SI) + 3hModo basado indexado: el offset resulta de la suma del contenido de un registro base y de un registro índice.Por ejemploMOV [BP + SI], 2A 2A (DS) * 10h + (BP) + (SI)Modo basado indexado con desplazamiento. el offset resulta de la suma del contenido de un registro basemas un registro índice y un desplazamiento, por ejemploMOV [BP + S I+ 3], 2A 2A (DS) * 10h + (BP) + (SI) + 3h

Cabe aclarar que cualquier acarreo en las sumas es ignorado y que el desplazamiento en un valor signado, enel caso de ser un valor de 8 bits es extendido a 16 bits con el MSB como bit de signo.También cabe aclarar que el offset puede obtenerse del registro IP en la búsqueda de una instrucción o en lasinstrucciones de salto, en este último caso el contenido de IP puede modificarse de tres formas:• salto relativo: al contenido de IP se le suma un desplazamiento.• salto directo: al contenido de IP se lo cambia por un desplazamiento.• salto indirecto: el contenido de IP es cambiado por el offsetobtenido por cualquiera de los modos indirectos vistos anteriormente.

CONJUNTO DE INSTRUCCIONES

Las instrucciones del 8088 se dividen en siete categorías:• Transferencia de datos• Aritméticas• Lógicas• De desplazamiento y rotación• De manipulación de cadenas.• De control de programa• De control del procesador

Una instrucción puede referirse a cero, uno o dos operandos, donde un operando puede residir en un registro, enla propia instrucción o en la memoria. Las instrucciones con cero operando (NOP, HLT) tienen un byte de longitud. Lasde un operando (INC, DEC) tienen usualmente dos bytes de longitud. Las de dos operandos (MOV, ADD) usualmentetienen una longitud de tres a seis bytes y pueden hacer emergencia a un registro o a una locación de memoria, así estasinstrucciones permiten los siguientes seis tipos de operaciones: registro a registro memoria a registro inmediato a registro registro a memoria inmediato a memoria

Los tipos de datos que soporta el 8088 son:• - Entero: Valor numérico signado de 8 o 16 bits. Todas las operaciones asumen la representación

en complemento a dos.• Ordinal: Valor numérico sin signo de 8 o 16 bits.• - Puntero: Una cantidad de 32 bits compuesto por un selector de segmento y un offset, cada uno de 16

bits.• - Cadena: Secuencia continua de bytes o palabras, puede contener desde 1 a 64 Kbytes.• BCD: Un byte que representa un dígito BCD.• BCD empaquetado: Un byte que representa dos dígitos BCD, uno en cada nible.

DIRECCIONAMIENTO DE ENTRADA/SALIDA

La operaciones de entrada salida pueden direccionar hasta 64K registros de E/S. La dirección de la E/S apareceen el bus de direcciones de la misma forma que una dirección de memoria.Las instrucciones de entrada/salida de puerto variable usan al registro DX para contener la dirección del registro E/S(puerto) y tienen la capacidad total de direccionamiento, en cambio las instrucciones de puerto fijo sólo puedendireccionar los primeros 256 locaciones de E/S en la página cero.

INTERRUPCIONES en el 8088

El 8088 está provisto con un sistema de interrupciones vectorizado.Se pueden clasificar en:

Page 20: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 20 de 28

• Interrupciones iniciadas por hardwareExternas- enmascarables (a través del pin INTR)- no enmascarables (a través del pin NMI)Internas

• Interrupciones iniciadas por software. (a través de la instrucción INT XX)Una interrupción resulta en la transferencia del control a un nuevo programa. En las primeras 1024 (03FF)

posiciones de memoria reside una tabla de 256 elementos que contiene punteros a programas de servicio de interrupción.Cada elemento (puntero) es de 4 bytes y se corresponde con lo que se llama tipo de interrupción. El dispositivo queinterrumpe suministra, durante el proceso de reconocimiento de interrupción, un valor de 8 bits que es usado como unvector hacia el tipo de interrupción que corresponda.

Si la interrupción es iniciada desde el pin NMI (que tiene prioridad sobre el pin INTR), se producirá unainterrupción de tipo 2, que es usada en general para activar rutinas de falla de alimentación. El vector es suplidointernamente. Cuando ocurre una interrupción de este tipo automáticamente el bit Y del registro de estado, a fin deenmascarar posibles interrupciones iniciadas por el pin INTR.

Si la interrupción es requerida desde el pin INTR y se encuentran habilitadas las interrupciones (bit Y=1 delregistro de estado) se inicia el proceso de atención de interrupción. Se termina de ejecutar la instrucción corriente, el bitY es borrado, se salva el contexto actual (contenido del conjunto de registros) en el stack, la señal de reconocimiento deinterrupción (INTA) es emitida, al recibirla el dispositivo que interrumpe vuelca en el bus su vector, este vector se utilizapara determinar el puntero a la rutina de atención de interrupción, se transfiere el control a dicha rutina. Una vezterminada esta rutina se restituye el contexto y se continúa con la ejecución del programa interrumpido. En el caso deexistir mas de un dispositivo externo que pueda interrumpir, es necesario adicionar al hardware un controlador deinterrupciones ( el 8258 por ejemplo es capaz de manejar hasta 8 dispositivos).

Las interrupciones por software reciben igual tratamiento que las iniciadas desde INTR, el vector es en este casosuministrado por el campo XX de la instrucción INT XX.

No todos los vectores están disponibles para ser utilizados, el 8088 se reserva algunos para usos específicos.Las Rutinas de Servicio no forman parte del programa que se ha interrumpido, sino que son aportadas por el sistemaoperativo y son cargadas del disco o bien directamente están en la memoria ROM (BIOS – Basic Input Output System) .Una rutina de servicio de interrupción es una porción de código que se ocupa de llevar a cabo una tarea especifica, propiadel tipo de interrupción que soporta. Durante la ejecución de un programa todos los registros internos del procesador (PC, AX, SR, SP etc.)contienen información vinculada al programa. Como la rutina de servicio utiliza los mismos registros para su ejecución,es necesario que al momento de la interrupción, la información contenida en los registros debe ser resguardada enmemoria y recuperada después que finaliza la ejecución de la rutina de servicio. Esto permite que el programa originalpueda continuar. Se comprende la importancia de preservar el contenido del contador de programa o puntero deinstrucciones que contiene siempre la dirección de la próxima instrucción a ejecutar.Los contenidos de los registros se almacenan en una zona de memoria principal denominada Pila (Stack), que trabaja enmodalidad LIFO (Last In First Out).El retorno desde la rutina de servicio estará determinado por una ultima instrucción (IRET) que rescata los registros dela Pila, salvaguardados durante el ciclo de reconocimiento de interrupción, cargándolos en la CPU.

Rutinade

Pila (Stack)

ProgramaPrincipal

mov a,b

IRET

Rut. Servicio

PC

AX

------

Puntero de pila

Page 21: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 21 de 28

Las interrupciones EXTERNAS provienen de dispositivos de E/S externos al procesador. Normalmente acceden a travésde un controlador de interrupciones (PIC) que activa la línea INTR (Maskarable Interrupts) del procesador. Seproducen cuando un dispositivo requiere recibir/enviar datos o bien cuando completa estas acciones. Estas interrupcionespueden ser atendidas o no (Enmascarar) según lo programe el usuario.Otras interrupciones pueden actuar sobre la línea NMI (Non- Maskarable Interrupts) del Procesador, la que tienenprioridad absoluta y que debe ser atendida de inmediato. No se puede enmascarar en el programa del usuario.La INTR (Enmascarable) pueden habilitarse/deshabilitarse a través de la bandera IF del Registro de Estado (SR). Con lainstrucción SLI (IF=1) / CLI ( IF=0). Esta acción puede encontrarse en otra literatura con los nombres EI (EnableInterruptions) y DI (Disable Interruptions).Todo esto permite establecer una cierta prioridad en que momento de la ejecución del programa principal será atendidauna petición de interrupción.

La NMI (No-Enmascarable) tiene máxima prioridad de atención. Un ejemplo muy conocido es el RESET de una PC.

La Tabla de Vectores de Interrupciones se encuentra ubicada en las posiciones mas bajas de la memoria RAM desde0000.0000 hasta 0000.03FF (primeras 1024 posiciones). Para acceder a dichas direcciones se puede utilizar:C:\>debug-d0:00000:0000 0A 2B 57 1C 65 04 70 00-16 00 1B 10 65 04 70 00 +W.e.p......e.p0000:0010 65 04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0000:0040 0B 00 F4 20 4D F8 00 F0-41 F8 00 F0 47 25 5D FD ...M...A...G%.] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0000:0070 1D 00 6F 20 A4 F0 00 F0-22 05 00 00 C2 D7 FF FF ...o....”............

Este vuelco parcial de memoria (dirección 0000:0000 hasta 0000:0070 en una porción de la tabla.Para obtener la totalidad será necesario repetir 7 veces mas el comando ‘d’.La tabla de vectores contiene 256 direcciones de 4 byte cada uno (256 X 4 = 1 Kbyte), 2 bytepara el segmento y 2 byte para el offset.Para la Int 10h =16 (interrupción de la ROM BIOS para manejo de Vídeo) , el vectorcorrespondiente se encuentra en la posición 16 X 4 = 64 o sea 0000.0040h. Los dos bytes a partirde esta posición son : 0B00 y F420 , los que hay que invertirlos (en memoria están en ordeninverso) para que finalmente representen la dirección real de comienzo segmento:desplazamientoy que será 20F4:000B. Haciendo un vuelco en esta dirección se accede al listados de códigosabsolutos del programa que atiende dicha interrupción

Page 22: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 22 de 28

TecladoPara el caso del teclado, atender una interrupción cuando se pulsa una tecla, el código asignado a la misma se almacenaen una memoria buffer mediante la rutina 9h del DOS y finaliza con la activación de una línea IRQ correspondiente alteclado. Esta interrupción provoca la suspención del programa en curso y comienza a ejecutar la rutina 16h de laROM-BIOS la que transfiere el contenido del buffer a la memoria principal a través del registro AX

Servicios Interrupciones ROM BIOS5h Contenido Pantalla --- Impresora10h Vídeo {tiene más de 16 servicios básicos, se seleccionan cargando el Reg. AH}11h Lista de periféricos12h Tamaño de memoria13h Disco {tiene servicios para duros y flexibles}14h Puerta Serie {tiene servicios para velocidad, lectura, escritura, paridad, etc.}16h Teclado17h ImpresoraServicios Interrupciones DOS/Window9h Carga buffer de teclado

Ahora la CPU debe avisar al periférico que la interrupciónfue aceptada y puede colocar el número identificatorio en elbus. Esta línea de aviso se denomina IACK (InterruptACKnowledge).Una vez aceptada la interrupción:1- Pone en la pila (stack) el contenido de los registros (Punterode programa + reg. de estado + segmento de código, AX, SI,DI, DS, etc.(8086)2- Inhabilita nuevas interrupciones.3- Bifurca a la dirección de la rutina de servicio cargándola enpuntero de programa. (IP) o contador de programa (PC)

RutinaServicio

0

101112

31 10

Dirección de la rut. Serv.(Define el programador)

# 1

memoria

Tabla de vectores

Rut.Serv.

CPU

255

0

N

N

D I R

PROGRAMUSUARIO

Buffer 32 byte

Int 9h (DOS)

INT 16h(ROM BIOS)

Page 23: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 23 de 28

21h Llamada a funciones del DOS26h Escritura en disco duro20h Terminación programa (normal)2Fh Comunicación con Spooler de impresión.

Interrupciones INTERNASSurgen del uso ilegal o erróneo de una instrucción o dato durante la ejecución de un programa:Desborde de registros, división por cero (overflow), código de operación no válido, desborde de laPila , etc. Estas interrupciones son generadas dentro de la propia PC y también se las llamaexcepciones. Para cada caso se dispone de la correspondiente rutina. También se llamaninterrupciones lógicas, pues están integradas en el propio procesador

Interrupciones por SOFTWAREEs disparada en forma sincrónica por el programa de aplicación por medio de una instrucciónespecial colocada en el programa principal, como por ejemplo: INTXX , donde `XX` es unnumero hexadecimal entero entre 0 a 255 que multiplicado por 4 entrega la dirección de entrada ala tabla de vectores. De esta manera si el procesador encuentra la instrucción INT 20h durante laejecución de un programa, este va a la dirección 0000:0080 (20 x 4 =80) De esta manera elprogramador puede acceder a diferentes rutinas de servicio disponibles en el DOS o del ROM-BIOS. No obstante, el usuario también puede crear un servicio particular de interrupciones.

La solicitud INT 20h actúa como fin de programa, cediendo el control al programa que la convoco.La solicitud INT 25h lee sectores de un disco y la INT 26 graba sectores de un disco.

La solicitud INT 21h esta reservada para invocar rutinas de servicio del DOS. Esta interrupciónabarca mas de 80 funciones. Se requiere un parámetro que se debe pasar con la llamada a lainterrupción para definir el numero de subfunción requerida, lo cual se realiza cargando un códigobinario en el registro AH. Por ejemplo para introducir un carácter por vez desde el teclado alprograma del usuario, enviando además el eco del mismo a la pantalla del PC. se puede realizarcon el código 01 en AX.

mov ah , 01h ; AH se carga con el código de la subfunción 01.int 21 ;Se convoca el servicio del DOSmov carácter , al ; Se carga en la variable carácter el valor ASCII de AL

.

.

Otro caso seria cuando se habilita la atención del teclado dentro del programa del usuario, cuandose invoca la INT 16h en el mismo. Si AL = O (subfunción 0) se espera que se presione una tecla.En caso de ser digitada devuelve en AL el valor ASCII, si no se presiona tecla alguna la rutina semantiene en un lazo de espera.La solicitud INT 10h actúa sobre la salida de vídeo. Dispone 16 subfunciones que permiten entreotro: escribir/leer carácter en el cursor , escribir/leer un pixel, desplazar abajo/arriba la imagen depantalla ( Scroll Down o Up). También se puede definir coordenadas para el cursor (código 2) talcomo se indica en la siguiente porción de programa que fija el cursor dentro de la página 0, en lasposiciones x = 10 , y = 20.

mov ah , 2 ;Función 2 posicionar el cursormov bh , 0 ;Página 0mov dl , 10 ;Columna 10mov dh , 20 ;Fila 20int 10h ;Interrupción de la ROM BIOS de gestión del vídeo

.

Todas estas interrupciones son atendidas por rutinas internas de un sistema operativo (DOS,WINDOWS NT, OS, UNIX...) o de la ROM-BIOS. Las rutinas de servicio termina en IRET(Return Interrupts), cuyo efecto es inverso a INT, es decir recuperar los registros de la pila (stack)y devolver el control al punto inmediatamente siguiente a la instrucción INT ejecutada.Otro caso seria cuando se habilita la atención del teclado dentro del programa del usuario, para locual se invoca la INT 16h en el mismo programa. Si AL = O (subfunción 0) se espera que sepresione una tecla. En caso de ser presionada devuelve en AL el valor ASCII, si no se presionatecla alguna la rutina se mantiene en un lazo de espera. Otra operación típica es abrir o cerrar

Page 24: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 24 de 28

archivos, escribir o leer en el archivo. También imprimir , visualizar en pantalla o ingresar datospor teclado.

Secuencia escritura de un bloque de datos en discoCuando el programa quiere escribir un dato en el disco, se debe disparar la interrupción 21h ; que solicita al DOS laubicación del dato. A su vez DOS dispara la interrupción 13h , que es un servicio de la ROM- BIOS, que permitefinalmente transferir los datos al disco

PROGRAMUSUARIO“WRITEDATO”

21h DOSINTERRU.ROUTINES

SERVICIO DOS

DISKUNIT DISK SERVICE

DRIVER

COMANDO

BIOS ROUTINESVIDEO

DISK

Servicio de ROM BIOS

DISK

Servicio de discodel DOS

Servicio de Int. Del DOS

21h

26 h

10h

13h

Page 25: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 25 de 28

VECTORES DE INTERRUPCIÓN Y SERVICIOS DE BIOS INTERRUPCION SERVICIOINT 00 (INTERNA) ERROR DE DIVISION POR CEROINT 01 (INTERNA) EJECUCION PASO A PASOINT 02 (HARDWARE) NMI (Interrupción no enmascarable)INT 03 BREAK POINTINT 04 (INTERNA) OVERFLOWINT 05 PRINT-SCREENINT 05 (INTERNA) ACCESO FUERA DE LIMITES DE SEGM.INT 06 (INTERNA) INSTRUCCION ILEGALINT 07 (INTERNA) COPROCESADOR NO DISPONIBLE (80286)INT 08 (HARDWARE) INTERRUPCION DE TIMERINT 09 (HARDWARE) INTERRUPCION DE TECLADOINT 0A(HARDWARE) IRQ2 - RETRAZO VERTICAL (EGA)INT 0B(HARDWARE) IRQ3 - INTERRUP. DE COMUNICACION

INTERRUP. DE ADAPTADORES DE REDINT 0C(HARDWARE) IRQ4 - INTERRUP. DE COMUNICACION

INTERRUP. DE ADAPTADORES DE REDINT 0D(HARDWARE) IRQ5 - INTERRUP. DE DISCO FIJO (XT)

INTERRUPCION DE LPT2 (AT/PS)INT 0E(HARDWARE) IRQ6 - INTERRUPCION DE DISKETTEINT 0F(HARDWARE) IRQ7 - INTERRUPCION DE LPT1INT 10 SERVICIO DE VIDEOINT 11 DETERMINACION DE EQUIPAMIENTOINT 12 DETERM. DE TAMAÑO DE MEMORIAINT 13 SERVICIO DE DISCOINT 14 SERVICIO DE COMUNICACION SERIEINT 15 SERVICIO DE CASSETTE (PC)

SERVICIOS MISCELANEO SERVICIO DE JOYSTICK SERVICIO DE MEMORIA EXTENDIDA

INT 16 SERVICIO DE TECLADOINT 17 SERVICIO DE IMPRESORAINT 18 ROM BASICINT 19 BOOTINT 1A SERVICIO DE TIMER Y RTCINT 1B CTRL-BREAKINT 1C TICK DE RELOJINT 1D(TABLAS) TABLAS DE PARAMETROS DE VIDEOINT 1E (TABLAS) TABLAS DE PARAMETROS DE DISKETTEINT 1F(TABLAS) MAPA DE CARACTERES GRAFICOSINT 33 SERVICIO DE MOUSEINT 40 SERVICIO DE DISCO (REALOCADO)INT 41 (TABLAS) TABLAS DE PARAMET. DE DISCO FIJO 0INT 42 SERVICIO DE VIDEO (EGA/VGA)INT 43 (TABLAS) TABLA DE DEFINICION DE CARACTERES

(EGA/VGA)INT 44 (TABLAS) TABLA DE DEFINICION DE CARACTERES

(EGA/VGA)INT 46 (TABLAS) TABLAS DE PARAMET. DE DISCO FIJO 1

INTERNA: Interrupción generada por el microprocesador.HARDWARE: Interrupción generada por dispositivos de hardware.TABLAS: No es vector de interrupción, sino un puntero a una tabla de datos.

Page 26: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 26 de 28

CONJUNTO DE INSTRUCCIONES DE BLUE IndexadaCód. deOper.

(Octal)

CampoModif.(Octal)

MnemónicoCampo deDirecciónX=octal

Acción

00(1)

Ignorado HTL Ignorado La computadora se detiene. Si se presiona STARTcomienza desde la instrucción siguiente a HTL

0 ADD 0, XXXXXX La suma aritmética del contenido del Acumulador conel contenido la posición XXXXXX, es cargada en elAcumulador (ACC). Si hay overflow la máquina separa.

1 ADD 1, XXXXXX La suma aritmética del contenido del Acumulador conel contenido la posición indicada en XXXXXX, escargada en el Acumulador (ACC). Si hay overflow lamáquina se para.

2 ADD 2, XXXXXX La suma aritmética del contenido del Acumulador conel contenido la posición XXXXXX + RFI, es cargadaen el Acumulador (ACC). Si hay overflow la máquinase para.

01(2)

3 ADD 3, XXXXXX La suma aritmética del contenido del Acumulador conel contenido la posición XXXXXX + RID, es cargadaen el Acumulador (ACC). Si hay overflow la máquinase para.

0 XOR 0, XXXXXX La XOR bit a bit del contenido del Acumulador conel contenido la posición XXXXXX, es cargada en elAcumulador (ACC). Su contenido anterior se pierde

1 XOR 1, XXXXXX La XOR bit a bit del contenido del Acumulador conel contenido la posición indicada en XXXXXX, escargada en el Acumulador (ACC). Su contenidoanterior se pierde

2 XOR 2, XXXXXX La XOR bit a bit del contenido del Acumulador conel contenido la posición XXXXXX + RFI, es cargadaen el Acumulador (ACC). Su contenido anterior sepierde

02(2)

3 XOR 3, XXXXXX La XOR bit a bit del contenido del Acumulador conel contenido la posición XXXXXX + RID, es cargadaen el Acumulador (ACC). Su contenido anterior sepierde

0 AND 0, XXXXXX La AND bit a bit del contenido del Acumulador conel contenido la posición XXXXXX, es cargada en elAcumulador (ACC). Su contenido anterior se pierde

1 AND 1, XXXXXX La AND bit a bit del contenido del Acumulador conel contenido la posición indicada en XXXXXX, escargada en el Acumulador (ACC). Su contenidoanterior se pierde

2 AND 2, XXXXXX La AND bit a bit del contenido del Acumulador conel contenido la posición XXXXXX + RFI, es cargadaen el Acumulador (ACC). Su contenido anterior sepierde

03(2)

3 AND 3, XXXXXX La AND bit a bit del contenido del Acumulador conel contenido la posición XXXXXX + RID, es cargadaen el Acumulador (ACC). Su contenido anterior sepierde

0 IOR 0, XXXXXX La IOR bit a bit del contenido del Acumulador con elcontenido la posición XXXXXX, es cargada en elAcumulador (ACC). Su contenido anterior se pierde

04(2)

1 IOR 1, XXXXXX La IOR bit a bit del contenido del Acumulador con elcontenido la posición indicada en XXXXXX, escargada en el Acumulador (ACC). Su contenidoanterior se pierde

Page 27: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 27 de 28

2 IOR 2, XXXXXX La IOR bit a bit del contenido del Acumulador con elcontenido la posición XXXXXX + RFI, es cargada enel Acumulador (ACC). Su contenido anterior sepierde

3 IOR 3, XXXXXX La IOR bit a bit del contenido del Acumulador con elcontenido la posición XXXXXX + RID, es cargada enel Acumulador (ACC). Su contenido anterior sepierde

05(1)

Ignorado NOT Ignorado El contenido del Acumulador (ACC) es reemplazadopor su complemento a uno.

0 LDA 0, XXXXXX Carga el Acumulador (ACC) con el contenido de laposición XXXXXX

1 LDA 1, XXXXXX Carga el Acumulador (ACC) con el contenido de laposición indicada en la posición XXXXXX

2 LDA 2, XXXXXX Carga el Acumulador (ACC) con el contenido de laposición XXXXXX + RIF

06(2)

3 LDA 3, XXXXXX Carga el Acumulador (ACC) con el contenido de laposición XXXXXX + RID

0 STA 0, XXXXXX Guarda el contenido del Acumulador (ACC) en laposición de memoria XXXXXX

1 STA 1, XXXXXX Guarda el contenido del Acumulador (ACC) en laposición de memoria indicada en la posiciónXXXXXX

2 STA 2, XXXXXX Guarda el contenido del Acumulador (ACC) en laposición de memoria XXXXXX + RIF

07(2)

3 STA 3, XXXXXX Guarda el contenido del Acumulador (ACC) en laposición de memoria XXXXXX + RID

10(2)

Ignorado SRJ XXXXXX Sirve para hacer un salto del programa a unasubrutina. Para esto realiza una copia el contenido delContador de Programa (PC) en el Acumulador (ACC).Luego se copia el numero XXXXXX en el contadordel programa PC) para que la próxima instrucción seatomada de la dicha dirección.

11(2)

Ignorado JMA XXXXXX Idem anterior sólo si el bit más significativo delAcumulador (ACC) es uno.

12(2)

Ignorado JMP XXXXXX El número XXXXXX es copiado en el Contador dePrograma (PC)

13(1)

Ignorado INP XXXXYY Los 8 bits de mayor peso del acumulador se colocan acero, y el próximo carácter de 8 bits que viene deldispositivo externo YY se coloca en la parte baja delacumulador. La parte XXXX del campo de direcciónse ignora. La próxima instrucción no se ejecuta hastaque la transferencia del dato se haya completado

14(1)

Ignorado OUT XXXXYY Los 8 bits más significativos del acumulador se envíanal dispositivo externo YY. La parte XXXX del campode dirección se ignora. Si el dispositivo no acepta eldato en ese momento, la computadora espera hasta quese haya podido realizar la trasferencia.

15(1)

Ignorado RAL Ignorado Los bits del acumulador se rotan un lugar hacia laizquierda. El bit AC15 se coloca en ACo de modo queel desplazamiento es cíclico.

16(1)

Ignorado CSA Ignorado El número que está en el registro de llaves(introducido por las llaves de la consola) se copia en elacumulador.

17(1)

Ignorado NOP Ignorado Esta instrucción no hace nada.

2 RXT 2, ACC Ignorado Copia el contenido del Acumulador (ACC) al RegistroÍndice Fuente (RIF)

20(1)

3 RXT 3, ACC Ignorado Copia el contenido del Acumulador (ACC) al RegistroÍndice Destino (RID)

Page 28: UNIDAD 5 ARQUITECTURA CONVENCIONAL - frm.utn.edu.ar · UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5 Página 3 de 28 Nuevas Instrucciones

UTN-FRM Ingeniería en Sistemas de Información - Arquitectura de las Computadoras - Unidad 5Página 28 de 28

0 RXT 0, RIF Ignorado Copia el contenido del Registro Índice Fuente (RIF) alAcumulador (ACC)

21(1)

3 RXT 3, RIF Ignorado Copia el contenido del Registro Índice Fuente (RIF) alRegistro Índice Destino (RID)

0 RXT 0, RID Ignorado Copia el contenido del Registro Índice Destino (RID)al Acumulador (ACC)

22(1)

2 RXT 2, RID Ignorado Copia el contenido del Registro Índice Destino (RID)al Registro Índice Fuente (RIF)

2 SIX RIF XXXXXX Guarda el contenido del Registro Índice Fuente(RIF)en la posición de memoria XXXXXX

23(2)

3 SIX RID XXXXXX Guarda el contenido del Registro Índice Destino (RID)en la posición de memoria XXXXXX

2 LIX RIF XXXXXX Carga al Registro Índice Fuente (RIF) con elcontenido de la posición de memoria XXXXXX

24(2)

3 LIX RID XXXXXX Carga al Registro Índice Destino (RID) con elcontenido de la posición de memoria XXXXXX

0 ENI ACC XXXXXX Carga al Acumulador (ACC) con el número enteroXXXXXX

2 ENI RIF XXXXXX Carga al Registro Índice Fuente (RIF) con el númeroentero XXXXXX

25(2)

3 ENI RID XXXXXX Carga al Registro Índice Destino (RID) con el númeroentero XXXXXX

26(2)

Ignorado ENI RB XXXXXX Carga al Registro Base (RB) con el número enteroXXXXXX. Solo debe ser usada por el administrados delSistema.(Instrucción privada).

2 INI RIF XXXX Incrementa en el valor XXXX al Registro ÍndiceFuente (RIF)

27(1)

3 INI RID XXXX Incrementa en el valor XXXX al Registro ÍndiceFuente (RIF)

2 IJP RFI XXXXXX Si el contenido del Registro Índice Fuente (RIF) no escero, salta a posición XXXXXX. Si el contenido escero sigue en la siguiente instrucción

30(2)

3 IJP RID XXXXXX Si el contenido del Registro Índice Destino (RID) noes cero, salta a posición XXXXXX. Si el contenido escero sigue en la siguiente instrucción

31 Codificación disponible32 Codificación disponible33 Codificación disponible34 Codificación disponible35 Codificación disponible36 Codificación disponible37 Codificación disponible

Notas: • Cuando el campo de dirección aparece en cursiva (XXX...), es tratado como un número entero no signado.• El número entre paréntesis debajo del código de operación se refiere a la cantidad de palabras que ocupa la

instrucción en la memoria.