Página de inicio | Agregar a Favoritos | Contactate con nosotros | Publicidad

Alipso.com
 

Monografías

Examenes

Enlaces

Publicar material o sitio

Foros

ABC del estudio

Cursos en CD

Diversión

  Buscar material sobre...
Todas las palabras Cualquier palabra Frase Exacta
El sitio en el que encontrás
todo el material que buscás.

Monografías
 
LA MAQUINA RUDIMENTARIA (MR).
Estructura de la maquina rudimentaria, DESCRIPCIÓN DE LA ARQUITECTURA DE LA MR, NIVEL LENGUAJE MÁQUINA, NIVEL DE LÓGICA DIGITAL. UNIDAD DE PROCESO, NIVEL DE LÓGICA DIGITAL. DISEÑO DE LA UNIDAD DE CONTROL.

Agregado: 29 de AGOSTO de 2000 | Palabras: 8063 | Votar! | Sin Votos | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Varios >

  Imprimir Recomendar a un amigo Recordarme el recurso Descargar como pdf


Enlaces recomendados
   

   

Material relacionado
 

Material educativo de Alipso relacionado con MAQUINA RUDIMENTARIA (MR)

  • Java Chips.: La Máquina Virtual de Java en el corazón del chip picoJava, graficos y definiciones.
  • La Historia de la Informática.: Los ábacos, La edad media de la informatica, La máquina de Pascal, Las máquinas de Babbage.
  • Motores de características especiales: Regulación de la velocidad. Motores de 2 velocidades, devanados ndependientes. Motores de 2 velocidades, conexión Dahlander. Maquinas trifasicas síncronas y asíncronas. Forma constructiva y funcionamiento de una maquina síncrona. Maquinas asíncronas. Motor trifasico. Corriente y par de arranque.
  • LA MAQUINA RUDIMENTARIA (MR).: Estructura de la maquina rudimentaria, DESCRIPCIÓN DE LA ARQUITECTURA DE LA MR, NIVEL LENGUAJE MÁQUINA, NIVEL DE LÓGICA DIGITAL. UNIDAD DE PROCESO, NIVEL DE LÓGICA DIGITAL. DISEÑO DE LA UNIDAD DE CONTROL.


  • Enlaces externos relacionados con MAQUINA RUDIMENTARIA (MR)

    Ver enlaces

     


    ALIPSO.COM - Trabajos prácticos, monografías, apuntes, tesis, manuales, material educativo y mucho más.
     

    Página de inicio | Agregar a Favoritos | Contactate con nosotros | Publicidad

    Alipso.com
     

    Monografías

    Examenes

    Enlaces

    Publicar material o sitio

    Foros

    ABC del estudio

    Cursos en CD

    Diversión

      Buscar material sobre...
    Todas las palabras Cualquier palabra Frase Exacta
    El sitio en el que encontrás
    todo el material que buscás.

    Monografías
     
    LA MAQUINA RUDIMENTARIA (MR).
    Estructura de la maquina rudimentaria, DESCRIPCIÓN DE LA ARQUITECTURA DE LA MR, NIVEL LENGUAJE MÁQUINA, NIVEL DE LÓGICA DIGITAL. UNIDAD DE PROCESO, NIVEL DE LÓGICA DIGITAL. DISEÑO DE LA UNIDAD DE CONTROL.

    Agregado: 29 de AGOSTO de 2000 | Palabras: 8063 | Votar! | Sin Votos | Sin comentarios | Agregar Comentario
    Categoría: Apuntes y Monografías > Computación > Varios >

      Imprimir Recomendar a un amigo Recordarme el recurso Descargar como pdf


    Enlaces recomendados
       

       

    Material relacionado
     

    Material educativo de Alipso relacionado con MAQUINA RUDIMENTARIA (MR)

  • La memoria social como construcción colectiva del presente: ...
  • La sociedad de la inforamcion y las nuevas tecnologias.: La historia de la informatica, de los comienzos a la primera calculadora, de las calculadoras mecanicas a los ordenadores, la maquina diferencial de Babbage, las calculadoras electromecanicas, los ordenadores electronicos, la preimra, segunda, tercera y c
  • La Historia de la Informática.: Los ábacos, La edad media de la informatica, La máquina de Pascal, Las máquinas de Babbage.
  • Motores de características especiales: Regulación de la velocidad. Motores de 2 velocidades, devanados ndependientes. Motores de 2 velocidades, conexión Dahlander. Maquinas trifasicas síncronas y asíncronas. Forma constructiva y funcionamiento de una maquina síncrona. Maquinas asíncronas. Motor trifasico. Corriente y par de arranque.


  • Enlaces externos relacionados con MAQUINA RUDIMENTARIA (MR)

    Ver enlaces

     


    x Francisco Mosse 2 352 1601-01-01T00:00:00Z 2000-12-04T16:52:00Z 2000-12-04T16:52:00Z 2 6415 36571 ALIPSO.COM 304 73 44911 9.2812 ALIPSO.COM - Trabajos prácticos, monografías, apuntes, tesis, manuales, material educativo y mucho más.
     

    Página de inicio | Agregar a Favoritos | Contactate con nosotros | Publicidad

    Alipso.com
     

    Monografías

    Examenes

    Enlaces

    Publicar material o sitio

    Foros

    ABC del estudio

    Cursos en CD

    Diversión

      Buscar material sobre...
    Todas las palabras Cualquier palabra Frase Exacta
    El sitio en el que encontrás
    todo el material que buscás.

    Monografías
     
    LA MAQUINA RUDIMENTARIA (MR).
    Estructura de la maquina rudimentaria, DESCRIPCIÓN DE LA ARQUITECTURA DE LA MR, NIVEL LENGUAJE MÁQUINA, NIVEL DE LÓGICA DIGITAL. UNIDAD DE PROCESO, NIVEL DE LÓGICA DIGITAL. DISEÑO DE LA UNIDAD DE CONTROL.

    Agregado: 29 de AGOSTO de 2000 | Palabras: 8063 | Votar! | Sin Votos | Sin comentarios | Agregar Comentario
    Categoría: Apuntes y Monografías > Computación > Varios >

      Imprimir Recomendar a un amigo Recordarme el recurso Descargar como pdf


    Enlaces recomendados
       

       

    Material relacionado
     

    Material educativo de Alipso relacionado con MAQUINA RUDIMENTARIA (MR)

  • La memoria social como construcción colectiva del presente: ...
  • La sociedad de la inforamcion y las nuevas tecnologias.: La historia de la informatica, de los comienzos a la primera calculadora, de las calculadoras mecanicas a los ordenadores, la maquina diferencial de Babbage, las calculadoras electromecanicas, los ordenadores electronicos, la preimra, segunda, tercera y c
  • Motores de características especiales: Regulación de la velocidad. Motores de 2 velocidades, devanados ndependientes. Motores de 2 velocidades, conexión Dahlander. Maquinas trifasicas síncronas y asíncronas. Forma constructiva y funcionamiento de una maquina síncrona. Maquinas asíncronas. Motor trifasico. Corriente y par de arranque.
  • LA MAQUINA RUDIMENTARIA (MR).: Estructura de la maquina rudimentaria, DESCRIPCIÓN DE LA ARQUITECTURA DE LA MR, NIVEL LENGUAJE MÁQUINA, NIVEL DE LÓGICA DIGITAL. UNIDAD DE PROCESO, NIVEL DE LÓGICA DIGITAL. DISEÑO DE LA UNIDAD DE CONTROL.


  • Enlaces externos relacionados con MAQUINA RUDIMENTARIA (MR)

    Ver enlaces

     


    LA  MAQUINA  RUDIMENTARIA

     

                1. ESTRUCTURA BÁSICA DE UN COMPUTADOR

     

          En los ordenadores se puede distinguir el hardware (circuitos integrados, placas, cables, etc.) y el software que consta de algoritmos, y su representación en el ordenador son los programas. La visión actual del ordenador esta jerarquizada:

          -Nivel 1: Lógica digital. Este nivel corresponde a la máquina física. Sus circuitos son sistemas lógicos que realizan funciones lógicas elementales. Este nivel permite comprender el funcionamiento de los distintos bloques en que se ha dividido el computador y las conexiones de estos.

          -Nivel 2: Microprogramación.

          -Nivel 3: Lenguaje máquina. Este nivel constituye el primer nivel de programación. Para facilitar la programación a nivel de Lenguaje máquina, los usuarios disponen de un intérprete simbólico, llamado ensamblador. El Lenguaje Ensamblador es la representación simbólica del lenguaje de programación del Nivel de Lenguaje Máquina.

          -Nivel 4: Sistema operativo. Facilita el uso del computador, escondiendo al usuario la dificultad de su utilización desde el nivel inferior. El sistema operativo esta formado por un conjunto de programas, necesarios para la correcta administración de los recursos del ordenador

          -Nivel 5: Lenguajes de alto nivel.

          -Nivel 6: Usuario o aplicaciones.

     

          ARQUITECTURA TIPO VON NEUMANN

     

          En un ordenador tipo Von Neumann, los datos y las instrucciones están almacenados en la memoria del computador. La arquitectura Von Neumann está formada por tres bloques, interconectados entre sí por conjuntos de cables denominados buses:

          -Memoria principal: encargada de almacenar instrucciones y datos. Hay dos tipos: RAM (se puede leer y escribir y en caso de apagar el ordenador pierden su contenido) y ROM (solo se pueden leer y su contenido no se pierde al apagar el ordenador).

          -Procesador: encargado de la ejecución de instrucciones. Se compone de dos unidades:

          ·Unidad de Proceso (UP) que contiene las unidades de cálculo, los registros internos y los caminos de conexión entre estos elementos. Realiza todos los cálculos requeridos por las instrucciones de la máquina. Posee una Unidad Aritmético/Lógica (UAL o ALU), Registros y buses internos a la UP.

          ·Unidad de Control (UC) que interpreta las instrucciones, generando las señales de control para coordinar el funcionamiento del resto de unidades del computador.

          -Unidad de Entrada/Salida: transfiere información entre la memoria y el exterior. Hace de enlace entre la CPU y los equipos periféricos.

          TIPOS DE BUSES:

          -Bus de Datos: se transportan los datos y instrucciones. El tamaño en bits de los datos e instrucciones, así como el del bus de datos, es una de las características principales del ordenador.

          -Bus de Direcciones: las direcciones son números naturales que indican la posición de los datos dentro de la memoria principal o del espacio de direcciones de la unidad de entrada/salida. Las direcciones son generadas por la CPU, que es quien decide a qué dato se debe acceder en cada momento.

          -Bus de control: a través de este bus se transmiten las señales de control del sistema. Suele incluir el reloj de la máquina, señales de sincronización  entre la CPU y las demás unidades.

     

                2. DESCRIPCIÓN DE LA ARQUITECTURA DE LA MR

     

          La Máquina Rudimentaria (MR) es de arquitectura Von Neumann. La MR ejecuta  programas guardados en la memoria, que también contiene los datos requeridos pro los programas.

     

          LA MEMORIA

     

     

          La memoria esta organizada en 256 posiciones de 16 bits cada una. Al contenido de una posición de memoria se le denomina palabra o word.

          La memoria de la MR recibe los datos a través del bus de entrada Min y los envía a la CPU a través del bus Mout. Ambos buses son de 16 bits. Para acceder a una posición de memoria es preciso poner su dirección en el bus de direcciones @. Este bus es de 8 bits. La señal `L/E, de un bit indica si se escribe o se lee.

          La MR trabaja con datos numéricos enteros, codificados en Ca2 en 16 bits.

          Las instrucciones de la MR se codifican en 16 bits, de modo que cada posición de memoria puede contener indistintamente una instrucción o un dato.

     

          LA CPU

     

          Para ejecutar una instrucción, la MR lee la instrucción de la posición de memoria en la que se encuentra y la escribe en un registro especial de UP, de 16 bits, denominado Registro de instrucciones.

          La ALU suma, resta, desplaza a la derecha y realiza la función AND. También evalúa si la operación realizada ha sido un cero o un negativo. El resultado de esta evaluación se guarda en 2 registros de un bit denominados flags de condición. El flag N guarda un 1 si el resultado es un negativo y 0 en caso contrario. El flag Z guarda un 1 si el resultado ha sido 0 y guarda 0 en caso contrario.

          La UP además contiene 8 registros de 16 bits para almacenar datos, numerados desde el R0 al R7. El RO contiene siempre un 0 y no puede ser escrito.

          Las instrucciones de la MR se ejecutan secuencialmente, en el orden en que están almacenadas en la memoria. A esta forma de ejecución se la denomina secuenciamiento implícito.

          La MR dispone de instrucciones especiales que permiten romper el secuenciamiento implícito, estas instrucciones son denominadas instrucciones de salto. Hay dos tipos de instrucciones de salto: salto incondicional y de salto condicional. El salto condicional depende de los valores de los flags de condición.

          Con el fin de realizar el secuenciamiento implícito la UP debe conocer la dirección de la siguiente instrucción a ejecutar. Para ello dispone de un registro especial denominado Contador de Programa (PC) de 8 bits.

          La Unidad de Control se encarga de controlar el secuenciamiento de las operaciones realizadas en la UP para que las instrucciones del programa se ejecuten correctamente. Recibe 3 entradas de la UP y envía 12 bits de salida hacia la UP para controlar los módulos que la forman.

     

          LOS BUSES

     

          Estos realizan la comunicación entre la CPU y memoria. En la MR los buses tienen las siguientes características:

          -El bus de datos está dividido en dos:

          ·Un bus de 16 bits para transportar los datos de la CPU a la memoria.

          ·Un bus de 16 bits para transportar los datos de la memoria a la CPU.

          -El bus de direcciones es de 8 bits, y va sólo de la CPU a la memoria.

          -El bus de control tiene únicamente la señal que, en cada ciclo, indica a la memoria si la operación que se realiza es de lectura o de escritura.

     

                3. NIVEL LENGUAJE MÁQUINA

     

          Las  instrucciones del Lenguaje Máquina (LM) son conjuntos de unos y ceros que deben ser interpretados digitalmente.

          La arquitectura de la MR es RISC (Reduced Instruction Set Computer). Este tipo de arquitectura se basa en tener un juego de instrucciones reducido y simple, pero que permite resolver cualquier tipo de problema.


          INSTRUCCIONES DEL LM DE LA MR

     

          Instrucciones Aritmético-lógicas

     

          La MR ofrece seis instrucciones aritmético-lógicas, que realizaran cuatro operaciones distintas, suma, resta, desplazamiento aritmético (multiplicación por dos) y and-lógica.

          En las instrucciones aritméticas los datos son interpretados como números enteros codificados en Ca2. Don números positivos y negativos de 16 bits.

          La UP obtiene los datos para ejecutar las instrucciones de su banco d registros o de la propia instrucción. El resultado se guarda en un registro del banco del mismo banco de registros.

          Las seis instrucciones aritmético-lógicas:

          -Suma - ADD: realiza la suma aritmética de dos números de 16 bits. Los dos operandos a sumar se encuentran en registros del BR.

          -Resta - SUB: realiza la resta aritmética de dos números de 16 bits. Los dos operandos se encuentran en registros del BR

          -Desplazamiento a la derecha - SRL: desplaza un bit a la derecha un número de 16 bits que se encuentra en un registro del BR. EL resultado se guarda en otro registro. El bit de más peso del número se ha de replicar en el resultado para realizar para realizar la extensión de signo, necesaria si se trabaja con números enteros representados en Ca2. El resultado de un desplazamiento de un bit a la derecha es equivalente a una división por dos.

          -And-lógica - AND: realiza una and-lógica de dos números de 16 bits. Los operandos se encuentran en registros del BR.

          -Suma con inmediato - ADDI: realiza la suma aritmética de dos números pero un operando se encuentra en un registros y el otro se especifica en la propia instrucción como un número entero de 5 bits.

          -Resta con inmediato - SUBI: resta de dos número pero el minuendo procede de un registro y el sustrayendo se especifica en la propia instrucción como un número entero de 5 bits.

          Información a codificar en el formato de estas instrucciones:

          -CO: identificador único de grupo de instrucción. Se identifica con dos bits. CO es 11 para las instrucciones aritmético-lógicas. 00 o 01 acceso a memoria y 10 para las instrucciones de salto.

          -Rd: codificación del registro del BR en el que se guarda el resultado. Con 3 bits codificamos los 8 registros.

          -Rf1: codificación del registro en el que se encuentra un operando fuente. De 3 bits. La instrucción SRL no utiliza este campo pues solo necesita una dato.

          -Rf2: codificación del registro en el que se halla el otro operando fuente. De 3 bits.

          -Número: operando fuente que se especifica en la propia instrucción, de nominado inmediato. De 5 bits.

          -OP: identificador de instrucción dentro del grupo de las aritmético/ lógicas. Hacen falta 3 bits. Los códigos son:

          -100: Suma

    -101: Resta

    -110: Desplazamiento aritmético a la derecha.

    -111: And lógica

    -000: Suma con inmediato

    -001: Resta con inmediato.

          Las instrucciones que tienen operandos fuente en registros del BR necesitan 14 bits pero como las instrucciones se almacenan en memoria, cuya palabra es de 16 bits, sobran 2 bits que se ponen a cero.

          Las instrucciones que tienen uno de los operandos en la propia instrucción y el otro operando en un registro necesitan los 16 bits de la palabra

     2   3   3     5      3

    CO

    Rd

    Rf1

    número

    OP

    Formato de las instrucciones de suma y resta con inmediato.

     

     2   3   3    3   2   3

    CO

    Rd

    Rf1

    Rf2

    00

    OP

    Formato de las instrucciones de suma, resta, desplazamiento a la derecha y and lógica.

     


          Instrucciones de Acceso a Memoria

     

          El acceso a memoria ha de permitir leer y escribir datos en la memoria procedentes de registros.

          La MR ofrece dos instrucciones de acceso a memoria:

          -Lectura - LOAD: permite traer a la UP un dato de 16 bits almacenado en una determinada posición de la memoria. El dato se copia en un registro del BR, y se actualizan los flags de condición. La posición se calcula durante la ejecución de la instrucción.

          -Escritura - STORE: lleva a memoria desde el BR de la UP un dato de 16 bits. El dato se escribe  en una determinada posición de memoria. Esta instrucción no modifica los flags de condición.

          La dirección de un dato se calcula como suma de dos valores:

                dirección_acceso = dirección_base + desplazamiento

          En las instrucciones de acceso a memoria se han de especificar los elementos necesarios que permitan calcular la dirección de memoria de donde leer el dato o donde escribir el dato:

          -la dirección base se especifica en la instrucción como un número natural de 8 bits.

          -el desplazamiento se halla en un registro cuyo número identificador, de 3 bits, se halla en la instrucción.

          También se ha de especificar el registro del que leer el dato para escribirlo en memoria, o en el copiar el dato que procede de memoria. El identificador es de 3 bits.

          Para identificar  el LOAD y el STORE se han de usar los 2 bits del código de operación (CO). El CO que identifica la instrucción LOAD es 00, mientras que el CO del STORE es 01.

     2   3   3       8

    CO

    Rx

    Ri

    Dirección_Base

    Formato de las instrucciones LOAD(00) y STORE (01)

     


                               contiene desplazamiento

                               registro destino o fuente

     

          Instrucciones de Salto

     

         Para llevar a cabo bucles o tomas de decisión, es necesario disponer de instrucciones que se encarguen de comprobar si se cumple la condición del bucle o de la toma de decisión y que permitan romper el secuenciamiento implícito del programa.

          La condición es evaluada mediante instrucciones aritmético-lógicas o de LOAD, cuya ejecución actualiza los flags de condición. Los flags de condición (Z y N) son los que permiten a las instrucciones de salto comprobar si se cumple la condición.

          Las instrucciones de salto que la MR ofrece son:

          -Saltar si mas pequeño -BL: comprueba si el flag N es uno, si lo es salta.

          -Saltar si más grande -BG: comprueba si el flag N y el flag Z son ceros, si es así salta.

          -Saltar si igual -BEQ: comprueba si el flag Z es uno, si lo es salta.

          -Saltar si no igual -BNE: comprueba si  el flag Z es cero, si es así salta.

          -Saltar si mas pequeño o igual -BLE: comprueba si el flag N o el flag Z son uno, si es así salta.

          -Saltar si mas grande o igual -BGE: comprueba si el flag N es cero o el flag Z es uno, si es así salta.

          -Salto incondicional -BR: se realiza el salto sin comprobar ninguna condición.

          Ninguna de las instrucciones de salto modifica los flags de condición.

          -CO: identificador del grupo de instrucciones, de 2 bits. CO es 10 para las instrucciones de salto.

          -COND: identificador de instrucciones dentro del grupo de las de salto.
    Hacen falta 3 bits para codificar las 7 posibles instrucciones:

    -000: salto incondicional.

    -001: saltar si igual.

    -010: saltar si más pequeño.

    -011: saltar si más pequeño o igual.

    -101: saltar si no igual.

    -110: saltar si más grande o igual.

    -111: saltar si más grande.

          -Dirección: dirección de la que ha de ser la instrucción destino del salto. Es un número natural de 8 bits.

     

     2    3    3        8

    CO

    COND

    000

    Dirección

    Formato de las instrucciones de salto

     

          NOTACIÓN EN LE DE LAS INSTRUCCIONES OFRECIDAS 

     

          La notación en LE ha de permitir identificar la instrucción y los operandos fuente y destino, así como una dirección en las instrucciones que la requieran. Para especificar en LE un registro su usa Rx, donde x en un número de 0 a 7. Para especificar un inmediato, se usará la notación #num, donde num es un entero codificado en Ca2. El resultado se guardará en un registro, especificado como Rx.

          Las instrucciones de salto han de especificar una dirección absoluta que es la de destino del salto. La notación en LE de la dirección absoluta usa un número natural en el rango (0, +28-1).

          Las instrucciones de acceso a memoria necesitan una dirección absoluta, que se calcula durante la ejecución de la instrucción como suma de una dirección base más un desplazamiento. En LE, esta dirección base se especifica mediante un número natural en el rango (0, +28-1) escrito en decimal, y el registro se especifica como RX,

     

                5. NIVEL DE LÓGICA DIGITAL. UNIDAD DE PROCESO.

     

          La UP de un computador actúa de acuerdo con lo que le ordena la Unidad de Control. La UP, por tanto, es un mero ejecutor de las ordenes de la UC. Además la UP utiliza la memoria para guardar datos que utiliza es instrucciones que ejecuta.

     

          BANCO DE REGISTROS

     

          Los registros que se usan en las instrucciones de la MR definidas sirven para: guardar datos que se leen de memoria o se escriben en ella, para guardar los datos con los que se realizarán distintas operaciones aritméticas o lógicas y para guardar los resultados de las operaciones.

          Estos registros son de 16 bits debido a que el tamaño de una posición de memoria es también de 16 bits y están agrupados en un banco de registros.

          El banco de registros contiene un decodificador que permite seleccionar el registro sobre el que se quiere escribir un dato. La selección del registro se realiza mediante las entradas de “Selección de Escritura”. Las salidas del decodificador van a cada una de las entradas de permiso de carga de los registros. El registro R0 no tiene entrada de permiso ya que siempre guarda un 0.

          Además para escribir un dato a un registro concreto hay un único bus que accede a cada una de las entradas de los registros. Esto se debe a que, en cada momento, sólo puede haber un registro seleccionado para escritura debido al funcionamiento del decodificador.

          El banco de registros contiene un multiplexor que permite seleccionar el registro que se quiere leer. Para seleccionar el registro que se quiere leer se debe introducir su codificación en la entrada “Selección de Lectura”.

     

          UNIDAD ARITMÉTICO-LÓGICA Y BITS DE CONDICIÓN

     

          La unidad aritmético-lógica (ALU) se encarga de realizar operaciones aritméticas y lógicas. Así la ALU de la MR debe realizar operaciones de suma, resta, desplazamiento aritmético a la derecha y AND lógica bit a bit.

          Además de las operaciones que realiza la ALU, es necesario que ésta detecte si el resultado de estas operaciones es cero o negativo. La detección se mostrará a través de dos salidas de un bit que llamaremos Z (detección de cero) y N (detección de negativo). Para cualquiera de las operaciones de la ALU, el bit Z valdrá 1 si el resultado de la operación es 0. Es importante recordar que la instrucción LOAD también modifica los bits N y Z, mientras que las de Store y las de salto no modifican ni el bit Z ni el N.

     

          -Suma y resta: la implementación de un sumador o un restador de n bits a partir de bloques básicos sumador completo o restador completo de un bit es sencilla. Necesitaremos 16 bloques sumador completo y 16 restador completo, ya que en la MR los números son de 16 bits. Tanto en el caso de la suma como de la resta, tenemos un bit de acarreo. Este bits no se utiliza en la MR.

     

          -Desplazamiento a la derecha: el desplazamiento a la derecha se puede implementar de forma muy sencilla, haciendo que todos los bits de la palabra a desplazar ocupen una posición de menos peso. En nuestra implementación, el bit de menos peso se pierde y el de más peso se replica para realizar la extensión de signo.

     

          -AND lógica: la AND lógica bit a bit de dos palabras se implementa con un puerta AND para cada pareja de bits del mismo peso.

     

          Implementación de la ALU.

     

          La ALU tiene tres entradas de selección, que permiten escoger entre las cinco operaciones diferentes: suma, resta, desplazamiento a la derecha, AND bit a bit y dejar pasar un operando. Además tiene las entradas de los operandos (2 entradas de 16 bits), la salida del resultado (16 bits) y las salidas correspondientes a los bits Z y N.

          El bit N es directamente el bit de mayor peso del resultado de la operación que se esta realizando. El bit Z viene determinado por la NOR de todos los bits de la salida.

          La ALU tiene dos registros que guardan el valor de N y Z par que se pueda consultar por la Unidad de Control en cualquier momento.

     

          LAS INSTRUCCIONES Y SU SECUENCIAMIENTO

     

          Un computador ejecuta programas que están formados por instrucciones. Con el objetivo de ejecutar cada una de las instrucciones de forma adecuada, son necesarios dos registros en la Unidad de Proceso.

          El primero es el Registro de Instrucción (IR), que sirve para guardar la instrucción durante el tiempo que se está ejecutando. El registro IR se carga desde la memoria del ordenador, puesto que es ahí donde se encuentran las instrucciones.

          El segundo es el registro Contador de Programa (PC), que sirve para conocer la dirección dónde se encuentra la instrucción a ejecutar. Para implementar el secuenciamiento implícito, el PC siempre está apuntando a la instrucción a ejecutar después de ejecutar la que se encuentra en el registro IR en un momento determinado.

          Dado que las instrucciones se guardan en posiciones consecutivas de memoria, es necesario que el PC tenga asociado un incrementador que actúe sobre su valor cada vez que se comience a ejecutar una nueva instrucción.

          El PC es de 8 bits. Este tamaño está condicionado por el tamaño de la memoria de la Máquina Rudimentaria, que es de 256 posiciones. Con 8 bits se pueden direccionar cualquier palabra de memoria.

          Las instrucciones d salto contienen la dirección de la instrucción a ejecutar si se produce el salto. Por tanto, es necesario que se pueda seleccionar entre la dirección apuntada por el PC y la que apuntan las instrucciones de salto. Una posible implementación sería con un multiplexor que seleccione entre el PC y los 8 bits de menor peso del IR.

          Una vez realizado un salto, es necesario que se siga con el secuenciamiento implícito a partir de la dirección a la que se ha saltado. Para ello, es necesario utilizar la dirección de memoria de la salida del multiplexor, incrementarla en uno y guardarla en el PC. Esto se debe realizar tanto para las instrucciones de salto como para las demás instrucciones.


          LECTURA DE DATOS DE MEMORIA

     

          La UP de la MR genera direcciones que le sirven para pedir a la memoria los datos con que operar y las instrucciones del programa. Las direcciones para las instrucciones se escogen de entre el PC y los 8 bits de menor peso del IR.

          Para el LOAD/STORE las direcciones de memoria donde se encuentra el dato se calcula sumando los 8 bits de menor peso de la propia instrucción a los ocho bits de menor peso de uno de los registros del banco. Es necesario por tanto usar un sumador de 8 bits para sumarlos. Además usaremos un registro para guardar la suma realizada.

          Si se genera una dirección de salto también se necesitan los 8 bits de menos peso del IR. Pero en este caso no es necesario sumar los 8 bits de menos peso de un registro del banco. Esto se soluciona sumando el registro R0.

          La instrucción STORE, que requiere la lectura de dos registros (el que ayuda a calcular la dirección y el que contiene el dato a guardar) deberá realizar dos lecturas al banco. En la primera lee el registro que contiene parte de la dirección que se sumará a los 8 bits de menor peso del registro IR y se guardará en el registro R@. En la segunda, lee el registro del dato, mientras se dejara pasar por un multiplexor, el contenido de la dirección de memoria calculada y guardada en R@.

          Una vez accedido a la memoria para leer, es necesario almacenar el valor en su lugar correspondiente. Si la dirección corresponde a una instrucción, el destino será el IR, y si es un dato será un registro del banco. Para la escritura en el banco de registros, es necesario poner la entrada de la ALU, OPERAR a 0.

     

          REGISTRO DE ALIMENTACIÓN DE LA ALU.

     

          El banco de registros no puede leer dos registros a la vez. Por tanto con el objetivo de que la ALU pueda operar correctamente con los datos que procesa la UP, es necesario que tenga un registro de alimentación (registro A). En este registro se guarda uno de los dos operandos para las instrucciones aritméticas y lógicas durante el tiempo en que se utiliza la ALU. El otro operando estará guardado en uno de los registros del banco.

     

          LECTURA DE DATOS DE LAS INSTRUCCIONES

     

          Dado que la ALU opera datos de 16 bits, es necesario realizar una extensión de signo del operando que se encuentra en las instrucciones ADDI y SUBI. Esto se realiza asignando el valor del bit de más peso de cinco bits de IR (que contienen el dato) a los 11 bits de mas peso de la palabra que va a la ALU.

     

          MULTIPLEXOR DE ENTRADA A LA ALU

     

          La ALU tiene el registro A en una entrada. Por la otra entrada puede recibir distintos valores que pueden provenir del banco de registros (operación aritmética o lógica), de la memoria (operación LOAD) o del IR si se realiza una operación aritmética o lógica con un inmediato. Por tanto será necesario utilizar un multiplexor para poder seleccionar de entre los distintos buses aquel que sea necesario para cada instrucción concreta.

     

          IMPLEMENTACIÓN DE LA UNIDAD DE PROCESO

     

          La UP tiene unas entradas que permiten manejar sus componentes. Estas entradas provienen de la UC. Además, la UP genera unas salidas que van a la UC. Estas salidas sirven a la UC para saber que es lo que ocurre en la UP. Sirven para que la UC sepa que instrucción se está ejecutando en un momento dado.

          En torno a la ALU están el registro de alimentación A, los registros para almacenar el valor de los bits Z y N, el multiplexor de acceso al operando B de la ALU.

          El banco d registros también tiene una lógica asociada. En concreto un multiplexor para seleccionar el número de registro que se quiere leer del banco. La decisión sobre el registro a leer debe ser seleccionado en cada momento se toma desde la UC.

          La salida de datos del banco de registros accede a la entrada de datos de la memoria, a la entrada del registro de alimentación A, a la lógica de generación de direcciones y al multiplexor de selección de dato para la entrada B de la ALU.

          Por ultimo existe una lógica de evaluación de la condición. Esto determina si la condición de las instrucciones de salto se cumple en función de los bits de condición Z y N y de la codificación de la condición (COND) para estas instrucciones.

     

                6. NIVEL DE LÓGICA DIGITAL. DISEÑO DE LA UNIDAD DE CONTROL.

     

          La unidad de control (UC) es un sistema secuencial, cuya misión es determinar el secuenciamiento en que los distintos elementos de la unidad de proceso deben operar. La unidad de control recibe información de la instrucción que debe ser ejecutada (código de operación) y de los bits de evaluación de la condición del salto.

     

          FASES DE EJECUCIÓN DE UNA INSTRUCCIÓN

     

          El secuenciamiento de una instrucción está dividido en cuatro fases. Estas fases son:

          -Fase de FETCH: realiza la búsqueda en memoria de la instrucción que se desea ejecutar y se almacena en el Registro de Instrucciones. También se incrementa el Contador de Programa.

          -Fase de DECODIFICACIÓN: La UC analiza el código de operación de la instrucción con el objeto de decidir cuales son las acciones posteriores para su correcta ejecución.

          -Fase de BÚSQUEDA DE OPERANDOS: en esta fase, si es necesario, se realiza la búsqueda de los operandos en registros de la UP. En esta fase se realiza la evaluación de los flags de condiciones en las instrucciones de salto.

          -Fase de EJECUCIÓN DE LA INSTRUCCIÓN: se realiza la operación descrita por la instrucción y el resultado se guarda en los registros de la UP o bien en la memoria.

     

          FASES DE LA EJECUCIÓN DE INSTRUCCIONES EN LA MR

     

          Cada fase puede durar un número distinto de ciclos dependiendo de su complejidad y de las facilidades que la Unidad de Proceso ofrezca para su implementación.

          Dado que la UC es un sistema secuencial esta puede ser diseñada como una máquina de estados (modelo de Moore donde cada estado representará un ciclo de reloj en el procesador.

          Las fases de fetch y decodificación son comunes a todas las instrucciones en los procesadores. Debido a que para poder ejecutar una instrucción primero es necesario leerla de memoria y almacenarla en el IR, y segundo es necesario analizar que tipo de instrucción es para poder determinar las operaciones a realizar.

     

          FASE FETCH

     

          En esta fase se asume que el PC contiene la dirección de memoria de la instrucción que se va ejecutar. El objetivo es almacenar la instrucción en el IR. Para ello se envía la dirección del PC a la entrada de direcciones de memoria (M@). Paralelamente se activa el señal de carga del IR (Ld_IR) para almacenar la instrucción cuando llegue el siguiente flanco de reloj.

          La dirección enviada a la entrada de direcciones de la memoria es incrementada en 1. Para almacenar esta nueva dirección en el PC se activa la señal de carga del PC (Ld_PC) de forma que en el siguiente ciclo la dirección incrementada queda almacenada.

          La duración de la fase de fetch es de un ciclo. En el tiempo correspondiente a ese ciclo el contenido del PC debe pasar a través del multiplexor de memoria, la memoria tiene que tener tiempo de servir el contenido de esa dirección al registro IR y el incrementador debe poder calcular la siguiente dirección.

     

          FASE DE DECODIFICACIÓN

     

          En esta fase la UC evalúa el código de operación de la instrucción con el objeto de decidir cuales serán las siguientes acciones a realizar. Las operaciones en la UP dependerán del tipo de instrucción, que es determinado por los dos bits de su código de operación.

          Si es 00 hace LOAD, 01 un STORE, 10 instrucción de salto y si es 11 instrucciones ARITMÉTICAS.

          La fase de decodificación dura 1 ciclo, durante el cual la UP no realiza ningún tipo de operación. El contenido de todos los registros en la MR es preservado desactivando sus respectivas señales de load a 0.

          Después de esta fase, y en función del código de operación y del valor de la evaluación de la condición, la UC debe decidir cual es el conjunto de pasos a seguir para que la instrucción se ejecute de forma correcta. Las transiciones entre estados se efectuarán en función del código de operación y del bit COND, procedente del bloque de Evaluación de la Condición, que evalúa la condición de salto.

     

          FASE DE EJECUCIÓN DE LAS INSTRUCCIONES ARITMÉTICAS.

     

          Las instrucciones se realiza sobre dos números naturales de 16 bits de codificados en Ca2. Los operandos pueden estar contenidos en:

          -Registros en el Banco de Registros.

          -Los 5 bits de menor peso del registro IR.

          En la fase de búsqueda de operandos, la UC se encarga de enviar a la UP, en correcto orden de secuenciamiento, las señales de control necesarias para traer los operandos de cada instrucción desde el lugar donde se hallan almacenados. En el caso de la instrucción SRL, el único operando se lee del Banco de Registros pero esta se considera como una instrucción de dos operandos, en la que el primer operando no se utiliza.

          Dado que el BR sólo permite la lectura de un operando cada ciclo serán necesarios dos ciclos para leer los dos operandos. En el primer ciclo el  primer operando se cargará en el registro A de la UP. En el segundo ciclo, el segundo operando (proveniente del BR o de los 5 bits más bajos del IR) se dejara pasar a través del multiplexor de la ALU de forma que la ALU realizará la operación correspondiente con ambos operandos. El resultado de la ejecución de la instrucción se escribirá en el registro destino.

     

          BÚSQUEDA DEL PRIMER OPERANDO

     

          La lectura del primer operando requiere 1 ciclo de reloj. El contenido del registro fuente 1 se carga en el registro A. El Rf1 esta codificado en los bits de IR de la instrucción. Para acceder a Rf1, las señales de control CRf se activan a 01, seleccionando del BR el contenido de Rf1 en el multiplexor da salida del BR. Simultáneamente se activa la señal de carga Ld_A del registro A. De esta forma cuando llegue el flanco de reloj que indica el final del ciclo, en el registro A se cargará el contenido del registro Rf1.

          En el caso de la instrucción SRL, la lectura del primer operando se realiza con el fin de no establecer diferencias en la ejecución de las distintas operaciones aritméticas. La lectura de este primer operando ficticio no afectará de ninguna forma al resultado de realizar el desplazamiento aritmético sobre el segundo operando.

     

          BÚSQUEDA DEL SEGUNDO OPERANDO

     

          La lectura del segundo operando se realiza en 1 ciclo de reloj.

          Para operando almacenados en el BR, el registros Rf2 que contiene el operando está codificado en los bits de IR. Para acceder a él, las señales de control CRf se activan 10, seleccionando el registros adecuado en el multiplexor de salida del BR. Los 2 bits de control en el multiplexor de la ALU provienen del registro IR y se ponen a 11 y por lo tanto la entrada 3 del multiplexor de la ALU es seleccionada para alimentar la entrada B de la ALU, así en B esta el Rf2.

          Para operandos inmediatos, la constante num puede obtenerse directamente del registro IR. Como el operando requerido es de 16 bits, es preciso hacer una extensión de signo del operando antes de que este llegue al multiplexor de la ALU. Los 2 bits de control en el multiplexor seleccionan en este caso la entrada 2.


          EJECUCIÓN DE LA INSTRUCCIÓN

     

          En el segundo ciclo ambos operandos ya están presentes en las entradas de la ALU. De esa forma, el cálculo de la operación puede activarse en el mismo ciclo en el que se lee el segundo operando. Para que la ALU realice la operación requerida por la instrucción, las instrucciones han sido codificadas de modo que el campo OP del registro IR coincida con la codificación de la operación que la ALU debe realizar. A demás la  señal OPERAR de la UC debe estar activada a 1 para que la operación aritmética se realice.

          Dado que el mismo ciclo en el que se lee el segundo operando se calcula el resultado de la ejecución, al llegar el flanco que indica el final de ese ciclo el resultado debe ser escrito en el registro destino. Para permitir realizar la escritura en el BR, la UC debe activar el bit ER, mientras que el registro a escribir es directamente seleccionado del BR a partir de los bits que codifican el registro destino en la instrucción.

          Además de escribir el resultado de la operación realizada por la ALU en el registro destino, en la fase de ejecución de las instrucciones aritméticas se deben actualizar los flags de condición RZ y RN.

          Una vez finalizada la ejecución de la instrucción aritmética se debe realizar el fetch de la siguiente instrucción en secuencia (cuya dirección se haya almacenada en el registro PC).

          En el caso de que el operando sea inmediato la extensión de signo no provoca retardo alguno, ya que solo implica la replicación del bit de más peso de la constante de 5 bits.

     

          Como hemos visto son necesarios 2 ciclo de reloj para leer los operandos de una instrucción aritmética y ejecutarla. Como cada ciclo es un estado habrá dos estados diferentes después de la fase de decodificación.

     

          FASES DE EJECUCIÓN DE LA INSTRUCCIÓN LOAD

     

          Una vez codificada la instrucción LOAD, el operando fuente debe ser traído desde la memoria y almacenado en el registro destino. Para leer el operando fuente son necesarios dos ciclos, uno para calcular la dirección de memoria en la que se encuentra y otro para la lectura del dato. Como durante el segundo ciclo el dato ya estará disponible, se puede realizar su escritura en el BR.

     

          CARGA DE LA DIRECCIÓN DEL OPERANDO EN EL REGISTRO R@

     

          Para leer el dato de la memoria es necesario enviar su dirección. Esta dirección se calcula sumando el contenido del registro índice (Ri) con los 8 bits de menor peso del registro IR. Para realizar esta suma se utiliza un sumador conectado a R@. Una de las entradas del sumador está directamente conectada a los bits de IR y la otra proviene del BR, de donde se obtendrá Ri. El registro índice se selecciona activando la señal CRf a 01. Así, a la salida del sumador se obtiene la dirección del operando Ri+IR7-0 . La señal de carga de R@ (Ld_R@) deberá estar también activada a 1 en este ciclo para que la dirección del dato se almacene en R@.

     

          LECTURA DEL OPERANDO EN MEMORIA Y ESCRITURA DEL REGISTRO DESTINO

     

          Una vez la dirección se halla en R@, ésta puede ser enviada al bus de direcciones de la memoria. Para ello, la UC pondrá un 1  en la señal de control `P`C/@.

          Como el operando debe escribirse en el registro destino, el multiplexor de la ALU y la propia ALU deben dejar pasar el dato hacia el BR. Para ello, la entrada de control de mayor peso del multiplexor esta conectada al bits CO del código de operación. Dado que el bits CO vale 0 en las instrucciones de LOAD y que el bus de datos de Mout está conectado a las entradas 0 y 1 del multiplexor el dato llegará a la ALU independientemente del valor de OP.

          Para que la ALU deje pasar el valor presente en la entrada B, la UC debe activar a 0 la señal OPERAR. Al mismo tiempo cuando el dato pase a través de la ALU, la activación de las señales Ld_RZ y Ld_RN permite la actualización de los flags de condición RZ y RN, según sea el valor.

          Una vez transcurrido el tiempo para que el dato pase por el multiplexor y la ALU, el dato puede ser escrito en el registro destino. Para ello, la UC debe activar a 1 la señal ER. La selección del registro a escribir la realiza directamente el decodificador del BR, utilizando los bits 11-13 del IR que codifican el registro destino.

          Todas estas operaciones se realizan en un sólo ciclo de reloj.

     

          Después de la ejecución de una instrucción LOAD, la UC debe hacer fetch de la siguiente instrucción en secuencia.

     

          FASES DE EJECUCIÓN DE LA INSTRUCCIÓN STORE

     

          La instrucción STORE almacena en memoria el contenido de un determinado resurtió del BR. El STORE no altera el valor de los flags de condición. Esta instrucción requiere al igual que LOAD dos ciclos para completarse una vez ya ha sido codificada. La instrucción STORE mezcla la fase de búsqueda de los operando y la de ejecución como las vistas hasta ahora.

     

          CALCULO DE LA DIRECCIÓN DEL DESTINO.

     

          En un primer ciclo, la dirección donde debe guardarse el registro fuente (Rf) debe calcularse y almacenarse previamente en el registro R@. Esta dirección se calcula de la misma forma que la dirección en la instrucción LOAD.

     

          ESCRITURA DEL RESULTADO EN MEMORIA

     

          Una vez la dirección de memoria ha sido almacenada en R@, la UC envía el contenido de Rf al bus de entrada de la memoria (Min) a través del multiplexor de salida del BR. Para ello, la señal CRf en el BR se activa a 00. Mediante la activación de la señal `P`C/@ a 1, la dirección donde debe escribirse el dato es enviada al bus M@. Es necesario activar la señal `L/E durante todo el ciclo en que se realiza la escritura a memoria. De este modo, el dato se escribe en la dirección adecuada una vez transcurrido el tiempo requerido.

     

          El STORE requiere dos estados para ejecutarse una vez ha sido decodificada. El primer estado carga la dirección de la memoria y el segundo estado, corresponde a la escritura del registro fuente en memoria.

     

          FASES DE EJECUCIÓN DE LAS INSTRUCCIONES DE SALTO

     

          Una vez decodificada, una instrucción de salto tiene dos fases bien diferenciadas. Primera fase se comprueba si se debe realizar el salto o no y se calcula la dirección de la siguiente instrucción en caso de que se deba romper el secuenciamiento implícito. En la segunda según haya sido el resultado de evaluar la condición de salto, se efectúa el salto o bien se ejecuta la siguiente instrucción.

     

          FASE DE EVALUACIÓN DE LA CONDICIÓN DE SALTO

     

          El módulo “Evaluación de la condición” se encarga de decidir si un salto debe o no producirse. Recibe el valor de los flags y el código correspondiente a la condición de salto a evaluar. El código de salto está formado por los 3 bits de la instrucción que codifican el tipo de la instrucción de salto. El bloque “Evaluación de la condición” envía un bit COND a la UC, indicándole si el salto debe o no realizarse. Si se debe realizar se ejecuta una fase fetch especial en la que en lugar de utilizar el contenido del registro PC como dirección se utiliza la dirección del salto contenida en la instrucción. En caso contrario, se pasa a ejecutar el fetch con la dirección del PC.

     

          FASE DE EJECUCIÓN DEL SALTO

     

          En caso de que se deba ejecutar el salto se requieren dos ciclos adicionales. En el primero la dirección de salto debe ser almacenada el registro R@. Como para llegar al R@ la dirección debe pasar a través del sumador, es preciso que en la otra entrada del sumador se encuentre la constante cero.

          Para conseguir este cero, todas las instrucciones de salto codifican en los bits IR10-8 tres ceros. Utilizando la codificación de estos tres ceros se realiza una lectura del registro R0. Para ello la UC activa 01 la señal CRf.

          El proceso se completa activando la señal de carga del registro R@(Ld_R@) de modo que al llegar el flanco del siguiente ciclo de reloj, R@ se cargará con el valor de los 8 bits de menor peso del registro IR.

          El segundo ciclo de reloj se procede ha hacer fetch del contenido del registro R@. Para ello se siguen los mismos pasos para realizar el fetch exceptuando la señal PC/@, que ahora debe tomar valor 1. El registro PC se carga con el valor de la dirección que se acaba de leer incrementado en 1. Con ello se consigue que, después de ejecutarse el salto, se siga con el secuenciamiento implícito a partir de la dirección a la que se ha saltado.

     

          Es necesario un primer estado (ECS) para evaluar si se cumple o no la condición de salto. Si el resultado de la evaluación es negativo entonces el siguiente paso a realizar por la UC es el fetch de la siguiente instrucción, cuya dirección se haya almacenada en el registro PC.

          Si el resultado es positivo, son precisos dos estados para completar el salto. EL primer estado sirve para cargar la dirección de salto en el registro R@. El segundo estado (BRANCH) realizará el fetch de la instrucción que se encuentra en la dirección de memoria apuntada por el registro R@. Una vez realizado este fetch, la UC procederá a decodificar la instrucción que se encuentra en esta dirección. Por ello, y a diferencia del resto de las instrucciones, después del estado de BRANCH se ejecuta el estado de decodificación.

          La ejecución de la instrucción de salto dura tres ciclos si el salto no se produce y cuatro si se efectúa el salto.

     

          OPTIMIZACIONES EN EL GRAFO DE ESTADOS

     

          una forma de simplificar el grafo de estados consiste en estudiar las tareas que realizan dos o más estados consecutivos. Si estas tareas pueden ser realizadas simultáneamente, los estados se transforman en uno solo que realiza el trabajo de todos ellos. La función de salida de este nuevo estado será una combinación de las funciones de salida de todos los estados a los que substituye.

          Una segunda forma consiste en estudiar las tareas de dos o más estados A y B que se ejecutan de forma excluyente a partir de un tercer estado C.

          -Si los valores de las señales de salida en A y B son equivalentes (tienen la misma tabla de salidas), ambos estados pueden combinarse en un único estado D que sucederá al estado C, y que tendrá la misma tabla de salidas.

          -Si los valores de la señales de salida en A y B son compatibles (realizan operaciones sobre distintos componentes de la UP) ambos estados pueden combinarse en un único estado D que sucederá el estado C, y que tendrá como salida una combinación de las salidas de A y B.

     

          MODIFICACIÓN 1

     

          Los estados de decodificación (DEC) y evaluación de la condición de salto (ECS) son consecutivos, tienen la misma tabla de salidas y ninguno realiza operaciones sobre la UP. Durante el estado DEC se evalúa el código de operación (bits CO1-0) y durante ECS se evalúa la condición de salto (bit COND). La evaluación de estos tres bits puede realizarse simultáneamente, ya que durante el estado DEC no se altera el valor de la evaluación de la condición. Por tanto, los estados DEC y ECS pueden formar un nuevo estado, al que llamaremos DECS.

     

          MODIFICACIÓN 2

     

          ADR1, ADR2, ADR3 se ejecutan tras el estado de decodificación DECS. Estos tres estados son equivalentes y producen los mismos valores en las salidas de la UC. Por tanto, todos ellos pueden reunirse en un único estado ADR, cuya tabla de salidas será la de cualquiera de ellos.

     

          MODIFICACIÓN 3

     

          Dado que en el estado DECS no se realiza ninguna operación sobre la UP, podemos aprovechar para anticipar parte del trabajo que deba realizarse una vez la instrucción a ejecutar haya sido decodificada.

          La actividad en la UP en los estados ADR y LPO es muy parecida. Ambos leen del banco de registros el registro codificado en los bits IR10-8. En el caso de LPO, su contenido se escribe sobre el registro A, mientras que en el caso de ADR, su contenido se escribe sobre R@. Las únicas diferencias son las señales de carga de estos registros. En este caso, decimos que ambos estados son compatibles. Por tanto, es posible anticipar las operaciones que realizan ambos estados durante el estado de DECS. Llamaremos DECO a este nuevo estado, y su salida será una combinación de la salida de los estados ADR y LPO.

          Esta modificación puede realizarse porque las instrucciones aritméticas no utilizan el valor que pudiese haber almacenado en R@.

          Est simplificación hace que las instrucciones comiencen a ejecutarse antes de haber sido decodificadas, y por tanto reduce el tiempo de ejecución.

     

          MODIFICACIÓN 4

     

          Esta modificación afecta a la ejecución de las instrucciones aritméticas y consiste en adelantar el fetch de la siguiente instrucción. Los estados FETCH y LSOE son compatibles y por tanto pueden unificarse en un solo estado al que llamaremos ARIT. La salida de este nuevo estado será el resultado de combinar la salida de los estados FETCH y LSOE. Dado que el fetch de la siguiente instrucción en secuencia se realiza en el estado ARIT, el estado que se ejecutará inmediatamente después de ARIT será DECO.

          Esta simplificación no puede ser realizada en los estados de STORE, LOAD o BRANCH ya que en ellos se utiliza la memoria para otros fines y por lo tanto no son compatibles con el fetch.



    Intercambio de enlaces
    Más sitios recomendados Si quiere figurar en la sección de enlaces recomendados e intercambiar enlaces con Alipso.com contáctese
     

    © copyright 1999-2009 | alipso.com | todos los derechos reservados Normativas
    Contactate con nosotros Programacion por Efemosse Sistemas Diseño por Silvana Fano Hosting en MOSSE HOSTING.COM

    Newsletter
     
    usuarios
    ya reciben nuestro boletín informativo.
    Suscribite también gratis.

    Suscribir Desuscribir

    Cerrar Ventana