la maquina - Clases A Toda Hora

Anuncio
Cuadro
de
texto: > ORT > Arquitectura de C omputadoras
de
texto:
Cuadro
Cuadro
de
texto:
> Exámenes
Cuadro
de
texto:
de
texto:
Cuadro
Cuadro
de
texto:
de
texto:
C lasesATodaHora.com.ar
Arquitectura de C omputadoras
Resumen: La Máquina
1° C uat. de 2007
C lasesATodaHora.com.ar
LA MAQUINA
(Esquema)
Los componentes fundamentales de una máquina son los siguientes:
Siendo los mismos:
U.A .L. Unidad de Aritmética y Lógica (Unidad Aritmético-Lógica):
En ella se realizan todas las operaciones aritméticas, dejando indicadas las características del resultado.
Reg. A CUMULA DOR: A través de este registro se ingresan los datos y se recuperan los resultados.
Reg. ESTA DO: Está compuesto por un conjunto de indicadores (flags) que informan sobre las características del resultado de la
última operación.
FLA GS:
Z
0 El valor en el Reg. AC UMULADOR es distinto de cero
1 El valor en el Reg. AC UMULADOR es cero
N 0 El valor en el Reg. AC UMULADOR es positivo
1 El valor en el Reg. AC UMULADOR es negativo
O 0 El resultado de la última operación fue correcto
1 El resultado de la última operación arrojó OVERFLOW
C 0 En la última operación no se produjo acarreo (carry) hacia la posición de signo
1 En la última operación se produjo acarreo (carry) hacia la posición de signo
U.C. (Unidad de C ontrol):
Es la encargada de controlar y organizar todo el funcionamiento de la máquina.
Sus componentes internos son:
S.I. / D.I. (Secuenciador o Decodificador de Instrucciones)
Realiza todas las tareas necesarias para el funcionamiento coordinado de todo el computador.
Analiza y ejecuta las instrucciones de acuerdo a su C ódigo de Operación.
R. INSTRUCCIONES (Registro de Instucciones)
Almacena la Instrucción Elemental a ejecutar.
Es la puerta de entrada al S.I.
R.P.I. (Registro de P róxima Instrucción)
En este registro se almacena (permanentemente) la dirección de la próxima Instrucción Elemental a ejecutar. Se actualiza
instrucción a instrucción.
Memoria (Memoria P rincipal):
En ella se almacenan los P rogramas (Datos e Instrucciones Elementales que los conforman)
R.S.M. (Registro de Selección de Memoria):
Almacena la dirección de memoria a la que se desea acceder.
R.P. / R.M. (Registro de P alabra o Registro de Memoria):
En las operaciones de lectura de memoria recibe el contenido de la celda leída.
En las operaciones de escritura de memoria su contenido se transferirá a la celda seleccionada.
Canal de E / S (C anal de Entrada / Salida)
Se encarga de la comunicación con los preriféricos (comunicación con el exterior).
Tiene acceso directo a memoria.
BUSES:
Son líneas de comunicación entre dispositivos. Unen Registros.
La cantidad de “hilos” indica la cantidad de bits que se pueden transmitir por medio del Bus.
P or cada “hilo” se transmite un bit de un Registro a otro.
BUS DE DIRECCIONES:
Es la línea de comunicación entre el Registro de Instrucciones, el Registro de Próxima Instrucción y el Registro de
Selección de Memoria.
Los datos que se transmiten a través de él son direcciones.
BUS DE DA TOS:
Es la línea que comunica el Registro de Palabra (o Registro de Memoria) con el Registro de Instrucción y el Registro
A CUMULA DOR.
Los datos que se transmiten a través de él son Instrucciones o V alores.
Estos Valores se transmiten para operar en la A .L.U. o para almacenarlos en Memoria.
FASE DE BUSQUEDA DE UNA INSTRUCCIÓN ELEMENTAL
La Fase de Búsqueda de una Instrucción Elemental comienza cuando termina la ejecución de la instrucción anterior.
Durante esta fase se ejecutan las siguientes tareas:
1 – El contenido del R.P.I. (que contiene la dirección en memoria de la instrucción que queremos ejecutar) se copia al R.S.M. a través del
Bus de Direcciones.
2 – El R.S.M. selecciona la celda a leer
3 – El S.I. o D.I. imparte la orden de lectura, llevándose el contenido de la celda direccionada al R.P.
4 – El contenido del R.P. o R.M. se lleva al R.I. a través del Bus de Datos.
C on estos cuatro pasos se completa la Fase de Búsqueda.
FASE DE INCREMENTO
El contenido del R.P.I. se incrementa para que su valor coincida con la dirección en memoria de la próxima instrucción a ejecutar.
Simultáneamente se lleva a cabo la Fase de Ejecución de la Instrucción Elemental recién leída.
FASE DE EJECUCIÓN DE INSTRUCCIONES ELEMENTALES
C ada Instrucción Elemental realiza los pasos necesarios para lograr su cometido, por eso no se puede concebir como una secuencia igual para
cada una.
A continuación iremos mostrando los pasos necesarios para la ejecución de algunas Instrucciones Elementales diseñadas para realizar
prácticas sobre este tipo de máquina y comprender la circulación de datos, instrucciones y direcciones dentro del procesador.
CA R (d) (Direccionamiento Directo)
Esta instrucción se utiliza para reemplazar el contenido del Registro A cumulador (A .L.U.) por un valor almacenado en la Memoria en la
dirección “d”.
Los pasos a realizar son los siguientes:
1 – El operando (dirección “d”) de la instrucción se lleva al R.S.M. a través del Bus de Direcciones.
2 – El R.S.M. selecciona la celda a leer
3 – El S.I. o D.I. imparte la orden de lectura, llevándose el contenido de la celda direccionada al R.P.
4 – El contenido del R.P. o R.M. se lleva al R. A cumulador a través del Bus de Datos.
C on estos cuatro pasos se completa la Fase de Ejecución de la instrucción CA R (d)
CA R n (Direccionamiento Inmediato)
Esta instrucción se utiliza para reemplazar el contenido del Registro A cumulador (A .L.U.) por un valor contenido en la Instrucción
Elemental como operando.
El paso a realizar es el siguiente:
1 – El operando (valor “n”) de la instrucción se lleva al R. A cumulador a través del Bus de Datos.
C on este único paso se completa la Fase de Ejecución de la instrucción CA R n
A LM (d) (Direccionamiento Directo)
Esta instrucción se utiliza para almacenar en la dirección “d” de Memoria el contenido del R. A cumulador.
Los pasos a realizar son los siguientes:
1 – El operando (dirección “d”) de la instrucción se lleva al R.S.M. a través del Bus de Direcciones.
2 – El R.S.M. selecciona la celda a leer
4 – El contenido del R. A cumulador se lleva al R.P. o R.M. a través del Bus de Datos.
3 – El S.I. o D.I. imparte la orden de escritura, llevándose el contenido del R.P. a la celda direccionada.
C on estos cuatro pasos se completa la Fase de Ejecución de la instrucción CA R (d)
SUM (d) (Direccionamiento Directo)
Esta instrucción se utiliza para sumar el contenido de la dirección de Memoria “d” en el Registro A cumulador.
Los pasos a realizar son los siguientes:
1 – El operando (dirección “d”) de la instrucción se lleva al R.S.M. a través del Bus de Direcciones.
2 – El R.S.M. selecciona la celda a leer
3 – El S.I. o D.I. imparte la orden de lectura, llevándose el contenido de la celda direccionada al R.P.
4 – El contenido del R.P. o R.M. se lleva (sumando) al R. A cumulador a través del Bus de Datos.
C on estos cuatro pasos se completa la Fase de Ejecución de la instrucción SUM (d)
SUM n (Direccionamiento Inmediato)
Esta instrucción se utiliza para sumar en el Registro A cumulador (A .L.U.) un valor contenido en la Instrucción Elemental como operando.
El paso a realizar es el siguiente:
1 – El operando (valor “n”) de la instrucción se lleva (sumando) al R. A cumulador a través del Bus de Datos.
C on este único paso se completa la Fase de Ejecución de la instrucción SUM n
RES (d) (Direccionamiento Directo)
Esta instrucción se utiliza para restar el contenido de la dirección de Memoria “d” en el Registro A cumulador.
Los pasos son los mismos que la instrucción SUM (d), excepto que el valor se resta del Registro Acumulador.
RES n (Direccionamiento Inmediato)
Esta instrucción se utiliza para restar en el Registro A cumulador (A .L.U.) un valor contenido en la Instrucción Elemental como operando.
Los pasos son los mismos que la instrucción SUM n, excepto que el valor se resta del Registro Acumulador.
MUL (d) (Direccionamiento Directo)
Esta instrucción se utiliza para multiplicar el contenido de la dirección de Memoria “d” en el Registro A cumulador.
Los pasos son los mismos que la instrucción SUM (d), excepto que el valor se multiplica por el contenido del Registro Acumulador.
MUL n (Direccionamiento Inmediato)
Esta instrucción se utiliza para multiplicar en el Registro A cumulador (A .L.U.) un valor contenido en la Instrucción Elemental como
operando.
Los pasos son los mismos que la instrucción SUM n, excepto que el valor se multiplica por el contenido del Registro Acumulador.
DIV (d) (Direccionamiento Directo)
Esta instrucción se utiliza para dividir por el contenido de la dirección de Memoria “d” el contenido del Registro A cumulador.
Los pasos son los mismos que la instrucción SUM (d), excepto que el valor divide el contenido del Registro Acumulador.
DIV n (Direccionamiento Inmediato)
Esta instrucción se utiliza para dividir por el valor “n” (incluído en la Instrucción Elemental como operando) el contenido del Registro
A cumulador (A .L.U.).
Los pasos son los mismos que la instrucción SUM n, excepto que el valor divide el contenido del Registro Acumulador.
LEE (d) (Direccionamiento Directo)
Esta instrucción realiza una lectura de un Periférico de Entrada y almacena el valor leído en la dirección de Memoria “d”.
Los pasos a realizar son los siguientes:
1 – El operando (dirección “d”) de la instrucción se lleva al R.S.M. a través del Bus de Direcciones.
2 – El R.S.M. selecciona la celda a leer
3 – El S.I. o D.I. imparte la orden de lectura del P eriférico, llevándose el valor leído al R.P.
4 – El S.I. o D.I. imparte la orden de escritura, llevándose el contenido del R.P. a la celda direccionada (dirección “d”).
C on estos cuatro pasos se completa la Fase de Ejecución de la instrucción LEE (d)
IMP (d) (Direccionamiento Directo)
Esta instrucción realiza una impresión en un Periférico de Salida tomando el valor a mostrar de la dirección de Memoria “d”.
Los pasos a realizar son los siguientes:
1 – El operando (dirección “d”) de la instrucción se lleva al R.S.M. a través del Bus de Direcciones.
2 – El R.S.M. selecciona la celda a leer
3 – El S.I. o D.I. imparte la orden de lectura, llevándose el valor leído al R.P.
4 – El S.I. o D.I. imparte la orden de escritura, llevándose el contenido del R.P. al Periférico de Salida.
C on estos cuatro pasos se completa la Fase de Ejecución de la instrucción LEE (d)
Salto incondicional
C ada vez que se ejecuta esta instrucción se produce el salto.
IR (d) (Direccionamiento Directo)
Esta instrucción permite romper la secuencia de ejecución, de forma tal que la siguiente instrucción se tomará de la dirección “d” informada
como operando
El paso a realizar es el siguiente:
1 – El operando (valor “d”) de la instrucción se lleva al R.P.I. a través del Bus de Direcciones.
C on este único paso se completa la Fase de Ejecución de la instrucción IR (d)
NOTA : A pesar de la simultaneidad de ejecución de las fases de Incremento y A nálisis y Ejecución, la Fase de Incremento termina
antes que se haga el reemplazo de valor en el R.P.I. por lo que el R.P.I. cambia primero de valor en la Fase de Incremento, que luego es
reemplazado por la dirección informada como operando de la instrucción “d”.
Saltos condicionales
Estos saltos se producen solo si se cumple una determinada condición (verificada en el Registro de Estado de la U.A.L.)
SI0 (d) (Direccionamiento Directo)
La U.C . verifica el flan de cero (Z) del Registro de Estado (U.A.L.).
Se produce el salto si el contenido del R. Acumulador es igual a cero (Flag Z = 1)
Si el contenido del R. Acumulador es distinto de cero (Flag Z = 0), se da por terminada la ejecución de la instrucción sin producirse alteración
alguna en el contenido del R.P .I.
Los pasos a realizar son los siguientes:
1 – El S.I. o D.I. verifica el valor del Flag Z del Registro de Estado (A .L.U.)
Si el Flag Z tiene valor 0 (cero) el contenido del R. Acumulador es distinto de cero.
En ese caso el S.I. o D.I. da por finalizada la ejecución de la instrucción.
Si el Flag Z tiene valor 1 (uno) el contenido del R. Acumulador es igual a cero.
En ese caso el S.I. o D.I. procede a la ejecución del paso 2.
2 – El operando (dirección “d”) de la instrucción se lleva al R.P.I. a través del Bus de Direcciones.
C on uno o dos pasos (según corresponda) se completa la Fase de Ejecución de la instrucción SI0 (d)
Saltos con Retorno (Subrutinas)
Estos saltos permiten ejecutar una secuencia de código y volver ejecutando a partir de la instrucción siguiente a la de Salto con Retorno.
P ara poder realizar esta tarea, es necesario guardar la dirección de la siguiente instrucción para conocer el lugar a donde se debe regresar.
Esto se realiza tomando el contenido del R.P.I. luego de la Fase de Incremento (recordar que esta fase termina antes del reemplazo del
contenido del R.P.I. por el operando de la instrucción de salto).
El tomar el valor del R.P.I. luego de la Fase de Incremento nos asegura que el valor tomado será la dirección de la siguiente instrucción en
secuencia.
La dirección de la siguiente instrucción se guarda temporalmente en una zona de memoria llamada PILA que no es mas que un espacio o
conjunto de celdas reservada para este uso específico.
STA CK
La PILA funciona de la siguiente manera:
La dirección inicial de la PILA se guarda en un Registro llamado Stack Pointer. A medida que se incorporan datos, el puntero
cambia de valor apuntando a la dirección del último dato incorporado. Este incremento lo realiza directamente el S.I. o D.I. sobre el
Registro Puntero de la Pila.
Este tipo de almacenamiento temporal se denomina L.I.F.O.(Last Input First Output), ya que cuando queramos recuperar datos,
debemos ir retirando de la pila los últimos ingresados para acceder a los primeros. A medida que quitamos datos de la pila, el S.I. o
D.I. corrige o actualiza el valor del Registro Puntero de la Pila.
SUB (d) (Direccionamiento Directo)
Esta instrucción permite realizar un salto a una dirección donde hay un conjunto de instrucciones o Subrutina que se ejecutarán desde
distintos sitios del programa, debiendo regresar al sitio inmediato al que produjo el salto. Es decir que se ejecutarán las instrucciones como si
las mismas estuvieran insertas entre la dirección de la instrucción SUB (d) y la instrucción que le sigue. Al deber ejecutarse desde distintas
partes del código, se las separa y se las trata como una unidad llamada Subrutina.
Los pasos a realizar son los siguientes:
1 – El contenido del R.P.I. (ya actualizado por haber concluido la Fase de Incremento), es llevado por el S.I. o D.I. al R.P. o R.M.
2 – El contenido del Registro Puntero de la Pila es llevado por el S.I. o D.I. al R.S.M.
3 – El R.S.M. selecciona la primera celda libre de la PILA
4 – El S.I. o D.I. imparte una orden de escritura en Memoria (en este caso en la PILA )
5 – El operando (dirección “d”) de la instrucción se lleva al R.S.M. a través del Bus de Direcciones.
C on estos cinco pasos se completa la Fase de Ejecución de la instrucción SUB (d)
RET
Esta instrucción (que no tiene operando explícito), toma el último valor almacenado en la PILA y lo lleva al R.P.I. Funciona como un salto del
tipo IR (d), solo que la dirección de salto la tomará de la PILA donde la almacenó la instrucción SUB (d).
El objetivo de su ejecución es regresar de una Subrutina a la dirección de la instrucción siguiente a la SUB (d) que la llamó.
Los pasos a realizar son los siguientes:
1 – El contenido del Registro Puntero de la Pila es llevado por el S.I. o D.I. al R.S.M.
2 – El R.S.M. selecciona la ultima celda cargada de la PILA
3 – El S.I. o D.I. imparte una orden de lectura en Memoria (en este caso de la PILA )
4 – El contenido del R.P. o R.M. se lleva al R.P.I.
C on estos cuatro pasos se completa la Fase de Ejecución de la instrucción RET.
FIN
C on esta instrucción se da por terminada normalmente la ejecución del programa.
Descargar