La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Módulo 06 Modos de direccionamiento

Presentaciones similares


Presentación del tema: "Módulo 06 Modos de direccionamiento"— Transcripción de la presentación:

1 Módulo 06 Modos de direccionamiento

2 Copyright Copyright © 2011-2017 A. G. Stankevicius
Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera. Una copia de esta licencia está siempre disponible en la página La versión transparente de este documento puede ser obtenida de la siguiente dirección: Organización de Computadoras - Mg. A. G. Stankevicius

3 Contenidos Tipos de instrucciones. Formato de instrucción.
Modos de direccionamiento. Directo vs. Indirecto. Absoluto vs. Relativo. Código automodificable. Código independiente de la posición. La arquitectura OCUNS. Organización de Computadoras - Mg. A. G. Stankevicius

4 Tipos de instrucciones
Las instrucciones que componen el set de instrucciones de una cierta arquitectura se clasifican en las siguientes categorías: De procesamiento: las instrucciones usuales aritméticas y lógicas. De acceso a memoria: para transferir información desde y hacia memoria. De transferencia de datos: para enviar y recibir información de los dispositivos de entrada/salida. De control: las instrucciones que alteran el flujo de control del programa en ejecución. Organización de Computadoras - Mg. A. G. Stankevicius

5 Tipos de instrucciones
Nótese que no todas las instrucciones hacen referencia al mismo número de argumentos: Por caso, la instrucción ADD en una arquitectura registro a registro debe hacer referencia a tres argumentos, dos de entrada y uno de salida. En contraste, la instrucción NEG en una arquitectura de 1-address más registro sólo especifica un argumento, el cual hace las veces de argumento de entrada y también de salida. Organización de Computadoras - Mg. A. G. Stankevicius

6 Formato de instrucción
Recordemos que las instrucciones a nivel de lenguaje máquina están compuestas por una secuencia de unos y ceros. Esta secuencia debe codificar esencialmente los siguientes aspectos: De qué instrucción se trata. El conjunto de argumentos (tanto origen como destino) sobre los cuales se ha de operar . Opcionalmente, una referencia a la próxima instrucción (arquitecturas de 4-addresses). Organización de Computadoras - Mg. A. G. Stankevicius

7 Formato de instrucción
Conceptualmente, una instrucción máquina se compone de los siguientes campos: Un campo de opcode, de tamaño fijo o variable, el cual codifica de qué instrucción se trata. Cero o más campos argumento, dependiendo del tipo de instrucción codificado por el campo de opcode. Los campos argumento describen cómo y dónde encontrar los argumentos. Los modos de direccionamiento indican cómo se deben interpretar los campos argumento. Organización de Computadoras - Mg. A. G. Stankevicius

8 Diseño del set de instrucciones
Definición del conjunto de operaciones: Cuántas y cuáles operaciones considerar. Cuán complejas han de ser. Tipos de datos nativos. Codificación elegida para las instrucciones: Longitud de la instrucción (variable vs. fija). Cantidad de campos argumento en cada instrucción. Tamaño de los campos argumento en cada caso. Organización de Computadoras - Mg. A. G. Stankevicius

9 Características deseables
Al diseñar el set de instrucciones máquina se busca satisfacer los siguientes objetivos: Asegurar la completitud del set de instrucciones. Poder hacer uso de la totalidad de la memoria disponible. Que el set de instrucciones sea ortogonal con respecto a los modos de direccionamiento implementados por la arquitectura. Contar con un tamaño fijo de instrucciones. Organización de Computadoras - Mg. A. G. Stankevicius

10 Ortogonalidad Denominaremos a un set de instrucciones como ortogonal cuando todos los modos de direccionamiento implementados estén disponibles a todos los tipos de instrucciones. En otras palabras, set de instrucciones es ortogonal si el modo de direccionamiento está especificado dentro del campo argumento (por caso, el set de instrucciones de la arquitectura PDP-11). En contraste, la practica usual es determinar el modo de direccionamiento a partir del campo de opcode (por caso, la arquitectura OCUNS). Organización de Computadoras - Mg. A. G. Stankevicius

11 Ortogonalidad La ortogonalidad brinda sin duda una mayor libertad a los programadores (en particular a quienes implementen compiladores). No obstante, la ortogonalidad suele extender la longitud promedio de las instrucciones. A mayor tamaño promedio de instrucciones, hará falta un mayor ancho de banda a memoria. Recordemos que la tecnología de los procesadores avanza con mayor rapidez que la tecnología de la memoria principal. Organización de Computadoras - Mg. A. G. Stankevicius

12 Tamaño fijo vs. variable
Con respecto al tamaño de instrucción, surgen naturalmente dos alternativas: Una posibilidad es que todas las instrucciones tengan el mismo tamaño, es decir, que el tamaño esté prefijado. Otra posibilidad es que cada instrucción tenga el menor tamaño posible, lo que implica que el tamaño de las instrucciones no estará prefijado, sino que será variable. Organización de Computadoras - Mg. A. G. Stankevicius

13 Tamaño fijo Ventajas: Se simplifica notablemente la etapa de decodificación de la instrucción, ya que el opcode ocupa una posición conocida (y fija) dentro de la secuencia de unos y ceros que codifica la instrucción. Desventajas: El tamaño debe ser lo suficientemente grande como para codificar todas las instrucciones. Un formato fijo de gran tamaño requiere contar un amplio ancho de banda a memoria. Organización de Computadoras - Mg. A. G. Stankevicius

14 Tamaño variable Ventajas:
Cada instrucción ocupa el menor tamaño posible. Es posible contar con instrucciones de gran tamaño, por caso, con múltiples referencias a memoria. Desventajas: Se complica y posiblemente ralentiza la decodificación de las instrucciones. Esta alternativa no es apropiada para las arquitecturas superescalares, ya que requieren decodificar múltiples instrucciones en cada ciclo. Organización de Computadoras - Mg. A. G. Stankevicius

15 El camino del medio Un cierto formato de instrucciones fijo de k + n bits, cuenta con k bits para el opcode y n bits para un único operando. Este formato de instrucción permite a lo sumo 2k opcodes y hacer referencia de a lo sumo 2n direcciones de memoria. ¿Cómo elegir adecuadamente k y n? Ciertamente, lo ideal sería que tanto k como n fueran variables, según el tipo de instrucción. Organización de Computadoras - Mg. A. G. Stankevicius

16 El camino del medio Otro ejemplo, supongamos que se dispone de un formato fijo de 16 bits, que debe abarcar lo siguiente: 15 instrucciones de 3 operandos de 4 bits. 14 instrucciones de 2 operandos de 4 bits. 31 instrucciones de 1 operando de 4 bits. 16 instrucciones sin operandos. Aparentemente quedan libres 4 bits para codificar apenas 16 de estas instrucciones... Organización de Computadoras - Mg. A. G. Stankevicius

17 Expansión del opcode ¿Qué tal si los opcodes del 0000 (0) a 1110 (14) codificaran las operaciones de tres operandos, pero el opcode 1111 (15) se interpretara de una manera especial? El opcode “reservado” 1111 podría ser interpretado como que se deben ir a buscar bits de opcode adicionales (ahora disponibles pues las restantes instrucciones tienen menor cantidad de operandos). opcode C ó exp op B ó exp op A ó exp op Organización de Computadoras - Mg. A. G. Stankevicius

18 Expansión del opcode Así siguiendo, se puede arribar por ejemplo a la siguiente codificación: operando B operando A operando C 1111 operando B operando A 1111 operando A 1111 Organización de Computadoras - Mg. A. G. Stankevicius

19 Tamaño variable de operandos
En general, se requieren menos bits para codificar un registro que una dirección completa de memoria. La expansión del opcode también permite la coexistencia de operandos de distinto tamaño. Nótese que este problema está siendo resuelto sin comprometer el proceso de decodificación. La técnica de expansión de opcode sigue calificando como un formato de instrucción de tamaño fijo. Organización de Computadoras - Mg. A. G. Stankevicius

20 Modos de direccionamiento
Muy pocos bits permiten codificar una gran cantidad de instrucciones que hagan uso de pequeñas constantes o de los registros del procesador. No obstante, no se puede afirmar lo mismo al considerar el uso de operandos que residan en memoria principal. En particular existe una cierta correlación entre el desempeño de un sistema en concreto y la cantidad de memoria principal disponible. Organización de Computadoras - Mg. A. G. Stankevicius

21 Modos de direccionamiento
En internet se suele atribuir a don Bill Gates la siguiente frase: “640KB is enough for anyone” Más allá de la veracidad o no de la atribución, el hecho que cada vez nos resulte más simpática encierra una gran verdad. Los diseñadores de la PDP-11 acotaron: “el peor error que se puede cometer al diseñar una arquitectura es no contar con la suficiente cantidad de bits de direccionamiento” Organización de Computadoras - Mg. A. G. Stankevicius

22 Espacio de direccionamiento
Un campo argumento de n bits posibilita hacer uso de un espacio de 2n locaciones. Arquitectura Tam. de Palabra Bits de address Espacio de Dir. C=64 8 16 64KB PDP-11 VAX 32 4GB Intel 8086 16/20 1MB Intel 80286 16/24 16MB Intel 80386 AMD64 64 36/40-52/48-64 64GB/4PB/6EB Organización de Computadoras - Mg. A. G. Stankevicius

23 Espacio de direccionamiento
Al crecer n, se exploraron alternativas para minimizar la cantidad de bits ocupados por las instrucciones: Evitar de ser posible las instrucciones que hagan referencia a locaciones de memoria. Implementar alguna forma de expansión de signo, para almacenar sólo una parte de la dirección de las locaciones de memoria referenciadas. Hacer uso de registros auxiliares implícitos. Organización de Computadoras - Mg. A. G. Stankevicius

24 Modos implementados en HW
Los diseñadores de las distintas arquitecturas han ensayado muy diversos modos de direccionamiento a manera de respuesta a estos cuestionamientos. No obstante, pocas arquitecturas implementan la totalidad de los modos de direccionamiento. En general se adopta un subconjunto que es implementado en hardware, dejando el resto para ser simulado vía software. Organización de Computadoras - Mg. A. G. Stankevicius

25 Modos implementados en HW
Por caso, el Motorola 6809 implementa en HW: Nombre Mnemónico Op. Accedido Registro Ri Registro Indirecto (Ri) M[Ri] Absoluto addr M[addr] Absoluto Indirecto (addr) M[M[addr]] Inmediato #const const Auto-incremento (Ri)+ M[Ri]; Ri++ Auto-decremento -(Ri) --Ri; M[Ri] PC Relativo PC(const) M[PC + const] Base Ri(addr) M[Ri + addr] Indexado addr(Ri) M[addr + Ri] Base indexado Ri(Rj) M[Ri + Rj] Organización de Computadoras - Mg. A. G. Stankevicius

26 Inmediato Interpretación: el contenido del campo argumento es el operando. Ejemplos: add #5 (pila) add R0, #5 (CISC) add R0, R0, #5 (RISC) instrucción add #5 0000: 9FFF: A000: A001: A002: FFFF: 28 A0 00 1E F5 02 02 A0 F1 05 EA B2 00 memoria pila del programa Organización de Computadoras - Mg. A. G. Stankevicius

27 Inmediato Características: También se lo conoce como modo literal.
Altamente eficiente, pues no requiere acceder a memoria (el operando es obtenido al acceder inicialmente a memoria para traer la instrucción). El rango puede estar acotado a la cantidad de bits disponibles en el formato de la instrucción. Se lo utiliza para operar con valores constantes. En caso de no estar soportado por el hardware, se lo puede simular a nivel de lenguaje ensamblador. Organización de Computadoras - Mg. A. G. Stankevicius

28 Absoluto Interpretación: el contenido del campo argumento es la ubicación en memoria del operando. Ejemplos: push A002 (stack) mov R0, [A002] (CISC) load R0, A002 (RISC) instrucción push A002 0000: 9FFF: A000: A001: A002: FFFF: 28 A0 00 1E F5 02 02 A0 F1 05 EA B2 00 memoria pila del programa Organización de Computadoras - Mg. A. G. Stankevicius

29 Absoluto Características:
También se lo conoce como modo memoria directo. Implica un acceso adicional a memoria (aparte del acceso inicial para traer la instrucción). La instrucción contiene la dirección efectiva del argumento. El espacio de direcciones está acotado por la cantidad de bits permitidos por el formato de instrucción. No es práctico para recorrer estructuras de datos (¿por qué razón?). Organización de Computadoras - Mg. A. G. Stankevicius

30 Código automodificable
El modo directo es apropiado para acceder a tipos de datos simples (por caso, variables), no así a tipos de datos complejos. Para recorrer tipos complejos (tales como arreglos o registros), tenemos que modificar en tiempo de ejecución al campo argumento de la instrucción. Este tipo de código se lo denomina automodificable. El emplear código automodificable complica la interpretación del significado de un programa. La alternativa más adecuada consiste en hacer uso de referencias indirectas. Organización de Computadoras - Mg. A. G. Stankevicius

31 Directo vs. indirecto La idea detrás del modo indirecto consiste en agregar un paso adicional en la búsqueda del argumento: En el modo directo accedemos al valor deseado. En el indirecto accedemos a una dirección de memoria en la cual encontraremos el valor deseado. Este paso adicional implica un segundo acceso a memoria. push A000 0000: 9FFF: A000: A001: A002: FFFF: 28 1E 02 A0 05 B2 memoria Organización de Computadoras - Mg. A. G. Stankevicius

32 Absoluto indirecto Interpretación: el contenido del campo argumento es la ubicación en memoria de la dirección del operando. Ejemplo: push (A000) (stack) instrucción push A000 0000: 9FFF: A000: A001: A002: FFFF: 28 A0 00 1E F5 02 02 A0 F1 05 EA B2 00 memoria pila del programa Organización de Computadoras - Mg. A. G. Stankevicius

33 Absoluto indirecto Características:
También se lo conoce como memoria indirecto. Implica dos accesos adicionales a memoria (aparte del acceso inicial para traer la instrucción). Extremadamente flexible, permite recorrer cualquier estructura de datos, si bien está actualmente en desuso por lo oneroso en tiempo de ejecución. De ser requerida su flexibilidad, se lo puede simular haciendo uso de otros modos de direccionamiento. Organización de Computadoras - Mg. A. G. Stankevicius

34 Registro Interpretación: el contenido del campo argumento es la ubicación del operando dentro del banco de registros. Ejemplos: add R0, #15 (CISC) add R0, R0, #15 (RISC) instrucción add R0 R0 #15 0000: 9FFF: A000: A001: A002: FFFF: R0 R1 R2 R3 R4 R5 RF 28 A000 001F 1E FFF5 02 0002 A0 0DF1 05 EA00 B2 0000 memoria banco de registros Organización de Computadoras - Mg. A. G. Stankevicius

35 Registro Características: También se lo conoce como registro directo.
Análogo al modo absoluto, usando al banco de registros del procesador como espacio de direcciones. Altamente eficiente ya que no requiere acceder a memoria (aparte del acceso inicial). Se puede codificar con muy pocos bits (puesto que direcciona un espacio bastante acotado). Junto al modo registro indirecto permite simular otros modos de direccionamiento. Organización de Computadoras - Mg. A. G. Stankevicius

36 Registro indirecto Interpretación: el contenido del campo argumento es la ubicación dentro del banco de registros de la dirección del operando. Ejemplo: add [R0], #15 (CISC) instrucción add R0 #15 0000: 9FFF: A000: A001: A002: FFFF: R0 R1 R2 R3 R4 R5 RF 28 A000 001F 1E FFF5 02 0002 A0 0DF1 05 EA00 B2 0000 memoria banco de registros Organización de Computadoras - Mg. A. G. Stankevicius

37 Registro indirecto Características:
Análogo al modo absoluto indirecto, pero recuperando la dirección del operando del banco de registros. Se puede codificar con muy pocos bits (puesto que direcciona un espacio bastante acotado). No obstante, al ser indirecto retiene la capacidad de direccionar la totalidad del espacio de direcciones. Resulta altamente flexible, permitiendo recorrer estructuras de datos complejas. Más eficiente que el modo absoluto indirecto, ya que sólo requiere un acceso a memoria (aparte del inicial). Organización de Computadoras - Mg. A. G. Stankevicius

38 Indexado Interpretación: el campo argumento contiene una dirección de base fija y un desplazamiento variable que sumados dan la ubicación en memoria del operando. Ejemplo: mov R0, [A000+R3] (CISC) load R0, A000(R3) (RISC) instrucción add R0 A000 R3 0000: 9FFF: A000: A001: A002: FFFF: R0 R1 R2 R3 R4 R5 RF 28 A000 001F 1E FFF5 02 0002 A0 0DF1 + 05 EA00 B2 0000 memoria banco de registros Organización de Computadoras - Mg. A. G. Stankevicius

39 Indexado Características:
Relativamente eficiente, puesto que requiere sólo un acceso a memoria (aparte del acceso inicial). La dirección de base de la estructura tiene que ser una dirección completa. El desplazamiento para poder variar se debe almacenar en un registro del procesador. Está pensado para recorrer múltiples elementos de una única estructura de datos. Organización de Computadoras - Mg. A. G. Stankevicius

40 Base Interpretación: el campo argumento contiene un desplazamiento fijo y una dirección de base variable que sumados dan la ubicación en memoria del operando. Ejemplo: mov R5, [R0 + 02] (CISC) load R5, R0(02) (RISC) instrucción add R5 R0 02 0000: 9FFF: A000: A001: A002: FFFF: R0 R1 R2 R3 R4 R5 RF 28 A000 001F 1E FFF5 02 0002 A0 0DF1 + 05 EA00 B2 0000 memoria banco de registros Organización de Computadoras - Mg. A. G. Stankevicius

41 Base Características:
Relativamente eficiente, puesto que requiere sólo un acceso a memoria (aparte del acceso inicial). La base para poder variar se debe almacenar en un registro del procesador. El desplazamiento usualmente está acotado a una cierta cantidad de bits. Usualmente se codifica este desplazamiento en dos complemento. Está pensado para acceder a un único elemento en múltiples estructuras de datos. Organización de Computadoras - Mg. A. G. Stankevicius

42 ¿Base o indexado? Un error muy frecuente consiste en confundir los modos base e indexado. La clave para distinguirlos radica en observar qué codificamos dentro de la instrucción: En el modo indexado codificamos una dirección completa, esto es, un entero positivo que necesita de tantos bits como bits tengan las direcciones de memoria. En el modo base codificamos un desplazamiento signado, el cual es práctico incluso en caso de contar con pocos bits. Organización de Computadoras - Mg. A. G. Stankevicius

43 Base-indexado Interpretación: el campo argumento contiene una dirección de base y un desplazamiento, ambos variables, que sumados dan la ubicación en memoria del operando. Ejemplo: mov R5, [R0 + R3] (CISC) load R5, R0(R3) (RISC) instrucción add R5 R0 R3 0000: 9FFF: A000: A001: A002: FFFF: R0 R1 R2 R3 R4 R5 RF 28 A000 001F 1E FFF5 02 0002 A0 0DF1 + 05 EA00 B2 0000 memoria banco de registros Organización de Computadoras - Mg. A. G. Stankevicius

44 Base-indexado Características:
Relativamente eficiente, puesto que requiere sólo un acceso a memoria (aparte del acceso inicial). Tanto la base como el desplazamiento para poder variar deben ser almacenados en sendos registros del procesador. Máxima flexibilidad, permite recorrer múltiples elementos almacenados en múltiples estructuras de datos. Organización de Computadoras - Mg. A. G. Stankevicius

45 Base-indexado indirecto
La combinación de los modos base-indexado y absoluto indirecto genera dos posibles modalidades de uso: Pre-indexado indirecto: el registro base y el registro índice son sumados para obtener la dirección en memoria de la dirección del operando. Post-indexado indirecto: el registro base contiene la dirección en memoria de un valor el cual sumado al registro índice permiten obtener la dirección del operando. Organización de Computadoras - Mg. A. G. Stankevicius

46 Base-indexado indirecto
Características: La misma crítica realizada acerca del modo absoluto indirecto se aplica en este nuevo contexto. La modalidad pre-indexado indirecto es útil para acceder a tablas de interrupciones. La modalidad post-indexado indirecto es útil para acceder a los campos de un registros, ya que por lo general éstos son gestionados a través de un puntero (es decir, la dirección en memoria del comienzo de la estructura). Organización de Computadoras - Mg. A. G. Stankevicius

47 PC relativo Interpretación: el campo argumento contiene un desplazamiento fijo el cual debe ser sumado al contenido del registro PC para obtener la dirección referida. Ejemplo: jz label instrucción jz FE 0000: 9FFF: A000: A001: A002: FFFF: PC 28 A002 1E 02 A0 + 05 B2 memoria Organización de Computadoras - Mg. A. G. Stankevicius

48 PC relativo Características:
Requiere un único acceso a memoria (aparte del acceso inicial para traer la instrucción). El desplazamiento, un entero signado, suele estar representado en dos complemento. Los saltos condicionales usualmente hacen uso de este modo de direccionamiento para hacer referencia al destino de los mismos. Organización de Computadoras - Mg. A. G. Stankevicius

49 Código independiente de la posición
Los modos de direccionamiento base y relativo permiten la construcción de código cuyo funcionamiento es independiente de la posición en la cual termine siendo cargado en memoria. Este tipo de código se denomina justamente independiente de la posición, o bien PIC (por su sigla en inglés, Position Independent Code). La clave a fin de obtener este tipo de código radica en evitar toda forma de direccionamiento absoluto. Organización de Computadoras - Mg. A. G. Stankevicius

50 Código independiente de la posición
El advenimiento de modelos avanzado de gestión de memoria hizo que este tipo de código sea relevante en ciertos dominios de aplicación muy específicos. Por caso, las librerías de vinculación dinámica, las que son compartidas por múltiples aplicaciones al mismo tiempo. Esta también es una característica deseable para el código creado con el objeto de ser ejecutado en dispositivos embebidos. Organización de Computadoras - Mg. A. G. Stankevicius

51 Código independiente de la posición
El código independiente de la posición se clasifica en dos grandes categorías: Estático: cuando el código inicialmente puede ser cargado en cualquier locación de memoria, pero una vez cargado en memoria deja de ser relocable. Dinámico: cuando el código puede ser cargado en cualquier locación de memoria y de ser necesario también puede ser relocado en todo momento. En general, para obtener código PIC dinámico se debe hacer uso exclusivo de referencias relativas. Organización de Computadoras - Mg. A. G. Stankevicius

52 Auto-decrement Interpretación: el campo argumento contiene una referencia a un registro el cual primero es decrementado y luego es usado como la dirección en memoria del operando. Ejemplo: mov -(R0), R1 (CISC) store R1, -(R0) (RISC) instrucción store R0 R1 0000: 9FFF: A000: A001: A002: FFFF: R0 R1 R2 R3 R4 R5 RF 28 A000 A002 001F 1E FFF5 1F 00 02 0002 - A0 0DF1 05 EA00 2 B2 0000 memoria banco de registros Organización de Computadoras - Mg. A. G. Stankevicius

53 Auto-decrement Características:
Relativamente eficiente, puesto que requiere sólo un acceso a memoria (aparte del acceso inicial). Equivale a ejecutar la siguiente secuencia de instrucciones (asumida una arquitectura de 16 bits): dec R0; dec R0; store R1, (R0) Permite gestionar con facilidad una estructura de pila, especialmente a la hora de implementar la operación de apilado (push). Organización de Computadoras - Mg. A. G. Stankevicius

54 Auto-increment Interpretación: el campo argumento contiene una referencia a un registro es usado como la dirección en memoria del operando y luego es incrementado. Ejemplo: mov R2, (R0)+ (CISC) load R2, (R0)+ (RISC) instrucción load R0 R2 0000: 9FFF: A000: A001: A002: FFFF: R0 R1 R2 R3 R4 R5 RF 28 A002 A000 001F 1E FFF5 001F 1F 0002 00 0DF1 + 05 EA00 B2 2 0000 memoria banco de registros Organización de Computadoras - Mg. A. G. Stankevicius

55 Auto-increment Características:
Relativamente eficiente, puesto que requiere sólo un acceso a memoria (aparte del acceso inicial). Equivale a ejecutar la siguiente secuencia de instrucciones (nuevamente, asumida una arquitectura de 16 bits): load R2, (R0); inc R0; inc R0 Permite gestionar con facilidad una estructura de pila, especialmente a la hora de implementar la operación de desapilado (pop). Organización de Computadoras - Mg. A. G. Stankevicius

56 La arquitectura OCUNS La arquitectura OCUNS nos servirá de banco de prueba sobre el cual pondremos en práctica las nociones recién introducidas acerca de los modos de direccionamiento. Es una arquitectura estilo RISC. Sus instrucciones son de tamaño fijo de 16 bits. El espacio de direcciones es de 256 bytes. Cuenta con 16 registros de propósito general, si bien el registro F se encuentra cableado a cero. No existe físicamente, es de papel y lápiz. Organización de Computadoras - Mg. A. G. Stankevicius

57 Set de instrucciones Organización de Computadoras - Mg. A. G. Stankevicius

58 Formato de instrucción
El formato de instrucción adoptado hace uso de la técnica de expansión del opcode para determinar el tipo y número de los argumentos. Nótese que en este caso en particular no se está usando esta técnica para ir en busca de bits de opcode adicionales. Organización de Computadoras - Mg. A. G. Stankevicius

59 Modos de direccionamiento
La arquitectura OCUNS cuenta con un reducido número de modos de direccionamiento: El modo registro directo está disponible en las operaciones aritmético lógicas (formatos I, II y III). El modo registro más desplazamiento está disponible en las instrucciones de transferencia de información desde y hacia memoria (formatos I y II). El modo absoluto y PC-relativo está disponible en las instrucciones de transferencia de control (formato II). Organización de Computadoras - Mg. A. G. Stankevicius

60 Lenguaje máquina Consideremos el siguiente fragmento de programa en lenguaje ensamblador: add R0, R1, R2 sub R3, R4, R5 hlt El lenguaje máquina asociado resulta : add R0, R1, R = 0012h sub R3, R4, R = 1345h hlt = F000h Organización de Computadoras - Mg. A. G. Stankevicius

61 Naturaleza RISC La naturaleza RISC de la arquitectura OCUNS se evidencia por caso en el hecho de que no cuenta con el modo inmediato. Por caso, ¿de qué manera se puede poner a cero el registro R0? add R0, RF, RF sub R0, R1, R1 xor R0, R2, R2 ... Organización de Computadoras - Mg. A. G. Stankevicius

62 Otras características
Esta arquitectura seguirá siendo usada como banco de prueba de los restantes conceptos de bajo nivel que veremos en las siguientes clases: Proceso de ensamblado de un programa. Vinculación y carga en memoria. Relocación dinámica de código. El rol del sistema operativo en la atención de las interrupciones y de los traps. Programación de bajo nivel de la entrada/salida. Organización de Computadoras - Mg. A. G. Stankevicius

63 ¿Preguntas? Organización de Computadoras - Mg. A. G. Stankevicius


Descargar ppt "Módulo 06 Modos de direccionamiento"

Presentaciones similares


Anuncios Google