› ~ags › oc › downloads › apuntes de... · modos de direccionamiento2019-10-22 ·...

63
Organización de Computadoras Organización de Computadoras Depto. Cs. e Ing. de la Comp. Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur Universidad Nacional del Sur Módulo 09 Módulo 09 Modos de Modos de direccionamiento direccionamiento

Upload: others

Post on 25-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de ComputadorasOrganización de ComputadorasDepto. Cs. e Ing. de la Comp.Depto. Cs. e Ing. de la Comp.Universidad Nacional del SurUniversidad Nacional del Sur

Módulo 09Módulo 09Modos de Modos de

direccionamientodireccionamiento

Page 2: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 22

CopyrightCopyrightCopyright © 2011-2019 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 enla página http://www.gnu.org/copyleft/fdl.html

La versión transparente de este documento puedeser obtenida de la siguiente dirección:

http://cs.uns.edu.ar/~ags/teaching

Page 3: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 33

ContenidosContenidosTipos 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

Page 4: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 44

Tipos de instruccionesTipos de instruccionesLas instrucciones que componen el setde instrucciones de una cierta arquitecturase 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 flujode control del programa en ejecución

Page 5: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 55

Tipos de instruccionesTipos de instruccionesNó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 argumentode entrada y también de salida

Page 6: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 66

Formato de instrucciónFormato de instrucciónRecordemos que las instrucciones a nivelde lenguaje máquina están compuestaspor una secuencia de unos y ceros

Esta secuencia debe codificar las siguientes cuestiones:

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)

Page 7: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 77

Formato de instrucciónFormato de instrucciónConceptualmente, una instrucción máquinase 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

Page 8: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 88

Diseño del set de instruccionesDiseño del set de instruccionesDefinició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

Page 9: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 99

Características deseablesCaracterísticas deseablesAl diseñar el set de instrucciones máquinase aspira a 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 ortogonalcon respecto a los modos de direccionamiento implementados por la arquitectura

Contar con instrucciones de un tamaño fijo

Page 10: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1010

OrtogonalidadOrtogonalidadDenominaremos a un set de instrucciones como ortogonal cuando todos los modosde direccionamiento implementados estén disponibles a todos los tipos de instrucciones

En otras palabras, set de instrucciones es ortogonalsi el modo de direccionamiento está especificado dentro del campo argumento (por caso, el setde 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)

Page 11: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1111

OrtogonalidadOrtogonalidadLa ortogonalidad brinda sin duda una mayor libertad a los programadores (en particulara quienes implementen compiladores)

No obstante, la ortogonalidad suele extenderla 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 (¡el gap se mantiene!)

Page 12: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1212

Tamaño fijo vs. variableTamaño fijo vs. variableCon respecto al tamaño de instrucción, surgen naturalmente dos alternativas:

Una posibilidad es que todas las instruccionestengan el mismo tamaño, es decir, que el tamañoesté prefijado

Otra posibilidad es que cada instrucción tengael menor tamaño posible, lo que implica queel tamaño de las instrucciones no estará prefijado, sino que será variable

Page 13: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1313

Tamaño fijoTamaño fijoVentajas:

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 secuenciade unos y ceros que codifica la instrucción

Desventajas:

El tamaño debe ser lo suficientemente grandecomo para codificar todas las instrucciones

Un formato fijo de gran tamaño requiere contarun amplio ancho de banda a memoria

Page 14: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1414

Tamaño variableTamaño variableVentajas:

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 ralentizala decodificación de las instrucciones

Esta alternativa no es del todo apropiada paraarquitecturas superescalares, las cuales requieren decodificar múltiples instrucciones en cada ciclo

Page 15: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1515

El camino del medioEl camino del medioUn 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 nfueran variables, según el tipo de instrucción

Page 16: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1616

El camino del medioEl camino del medioOtro ejemplo, supongamos que se disponede un formato fijo de 16 bits, que debe abarcarlo 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...

Page 17: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1717

Expansión del opcodeExpansió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 interpretarade 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 B ó exp op A ó exp opC ó exp op0 3 4 7 8 11 12 15

Page 18: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1818

Expansión del opcodeExpansión del opcodeAsí siguiendo, se puede arribar por ejemploa la siguiente codificación:

1111 1111 0000-111111110 3 4 7 8 11 12 15

1111 0000-1111 operando A1110-11110 3 4 7 8 11 12 15

1111 operando B operando A0000-11010 3 4 7 8 11 12 15

0000-1110 operando B operando Aoperando C0 3 4 7 8 11 12 15

Page 19: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1919

Tamaño variable de operandosTamaño variable de operandosEn general, se requieren menos bits para codificar un registro que una direccióncompleta 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

Page 20: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2020

Modos de direccionamientoModos de direccionamientoMuy pocos bits permiten codificar una gran cantidad de instrucciones que hagan usode pequeñas constantes o de los registrosdel procesador

No obstante, no se puede afirmar lo mismoal considerar el uso de operandos que residan en memoria principal

En particular existe una cierta correlación entreel desempeño de un sistema en concreto yla cantidad de memoria principal disponible

Page 21: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2121

Modos de direccionamientoModos de direccionamientoEn internet se suele atribuir a don Bill Gatesla siguiente frase:

“640KB is enough for anyone”

Más allá de la veracidad o no de la atribución,el hecho que nos siga resultando 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 cantidadde bits de direccionamiento”

Page 22: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2222

Espacio de direccionamientoEspacio de direccionamientoUn 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 16 16 64KB

VAX 32 32 4GB

Intel 8086 16 16/20 1MB

Intel 80286 16 16/24 16MB

Intel 80386 32 32 4GB

AMD64 64 36/40-52/48-64 64GB/4PB/6EB

Page 23: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2323

Espacio de direccionamientoEspacio de direccionamientoAl crecer n, se exploraron alternativas para minimizar la cantidad de bits ocupados porlas 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ónde las locaciones de memoria referenciadas

Hacer uso de registros auxiliares implícitos

Page 24: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2424

Modos implementados en HWModos implementados en HWLos diseñadores de las distintas arquitecturas han ensayado muy diversos modos de direccionamiento a manera de respuestaa 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

Page 25: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2525

Modos implementados en HWModos implementados en HWPor caso, el Motorola 6809 implementa en HW:

Nombre Mnemónico Op. AccedidoRegistro Ri 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]

Page 26: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2626

InmediatoInmediatoInterpretación: el contenido del campo argumento es el operando

Ejemplos:

add #5 (pila)

add R0, #5 (CISC)

add R0, R0, #5 (RISC)

add #5instrucción

28

1E02A005

B2

memoria pila delprograma

0000:⋮

9FFF:A000:A001:A002:

FFFF:

A0

F502F1EA

00⋮

00

Page 27: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2727

InmediatoInmediatoCaracterísticas:

También se lo conoce como modo literal

Altamente eficiente, pues no requiere accedera memoria (el operando es obtenido al accederinicialmente 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

Page 28: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2828

AbsolutoAbsolutoInterpretación: el contenido del campo argumento es la ubicación en memoriadel operando

Ejemplos:

push A002 (stack)

mov R0, [A002] (CISC)

load R0, A002 (RISC)

push A002instrucción

28

1E02A005

B2

memoria pila delprograma

0000:⋮

9FFF:A000:A001:A002:

FFFF:

A0

F502F1EA

00⋮

00

Page 29: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2929

AbsolutoAbsolutoCaracterísticas:

También se lo conoce como modo memoria directo

Implica un acceso adicional a memoria (apartedel acceso inicial para traer la instrucción)

La instrucción contiene la dirección efectivadel 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?)

Page 30: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3030

Código automodificableCódigo automodificableEl modo directo es apropiado para acceder atipos de datos simples (por caso, variables),no así a tipos de datos complejos

Para recorrer tipos complejos (tales como arregloso registros), tenemos que modificar en tiempode ejecución al campo argumento de la instrucción

Este tipo de código se lo denomina automodificable

El emplear código automodificable complicala interpretación del significado de un programa

La alternativa más adecuada consiste en hacer usode referencias indirectas

Page 31: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3131

Directo vs. indirectoDirecto vs. indirectoLa idea detrás del modo indirecto consisteen agregar un paso adicional en la búsqueda del argumento:

En el modo directo accedemosal valor deseado

En el indirecto accedemos a unadirección de memoria en la cualencontraremos el valor deseado

Este paso adicional implicaun segundo acceso a memoria

push A000

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

Page 32: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3232

Absoluto indirectoAbsoluto indirectoInterpretación: el contenido del campo argumento es la ubicación en memoriade la dirección del operando

Ejemplo:

push (A000) (stack)

push A000instrucción

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

A0

F502F1EA

00⋮

00

pila delprograma

Page 33: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3333

Absoluto indirectoAbsoluto indirectoCaracterísticas:

También se lo conoce como memoria indirecto

Implica dos accesos adicionales a memoria (apartedel 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

Page 34: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3434

RegistroRegistroInterpretación: el contenido del campo argumento es la ubicación del operandodentro del banco de registros

Ejemplos:

add R0, #15 (CISC)

add R0, R0, #15 (RISC)

addinstrucción

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

A000

FFF500020DF1EA00

0000⋮

001F

banco deregistros

R0R1R2R3R4R5⋮

RF

R0 R0 #15

Page 35: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3535

RegistroRegistroCaracterí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 accedera memoria (aparte del acceso inicial)

Se puede codificar con muy pocos bits (puestoque direcciona un espacio bastante acotado)

Junto al modo registro indirecto permite simularotros modos de direccionamiento

Page 36: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3636

Registro indirectoRegistro indirectoInterpretación: el contenido del campo argumento es la ubicación dentro del bancode registros de la dirección del operando

Ejemplo:

add [R0], #15 (CISC)

addinstrucción

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

banco deregistros

R0R1R2R3R4R5⋮

RF

R0 #15

A000

FFF500020DF1EA00

0000⋮

001F

Page 37: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3737

Registro indirectoRegistro indirectoCaracterí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 (puestoque direcciona un espacio bastante acotado)

No obstante, al ser indirecto retiene la capacidadde 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)

Page 38: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3838

IndexadoIndexadoInterpretació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

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

banco deregistros

R0R1R2R3R4R5⋮

RF

A000

FFF500020DF1EA00

0000⋮

001F

add A000 R3

+

R0

Page 39: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3939

IndexadoIndexadoCaracterísticas:

Relativamente eficiente, puesto que requiere sóloun 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 elementosde una única estructura de datos

Page 40: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4040

BaseBaseInterpretació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)

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

banco deregistros

R0R1R2R3R4R5⋮

RF

A000

FFF500020DF1EA00

0000⋮

001F

+

addinstrucción R5 R0 02

Page 41: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4141

BaseBaseCaracterísticas:

Relativamente eficiente, puesto que requiere sóloun acceso a memoria (aparte del acceso inicial)

La base para poder variar se debe almacenaren un registro del procesador

El desplazamiento usualmente está acotadoa una cierta cantidad de bits

Usualmente se codifica este desplazamientoen dos complemento

Está pensado para acceder a un único elementoen múltiples estructuras de datos

Page 42: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4242

¿¿Base o indexado?Base o indexado?Un error frecuente (incluso en el final) 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 necesitade tantos bits como bits tengan las direccionesde memoria

En el modo base codificamos un desplazamiento signado, el cual es práctico incluso en casode contar con pocos bits

Page 43: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4343

Base-indexadoBase-indexadoInterpretació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)

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

banco deregistros

R0R1R2R3R4R5⋮

RF

A000

FFF500020DF1EA00

0000⋮

001F

+

addinstrucción R5 R0 R3

Page 44: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4444

Base-indexadoBase-indexadoCaracterísticas:

Relativamente eficiente, puesto que requiere sóloun acceso a memoria (aparte del acceso inicial)

Tanto la base como el desplazamiento para poder variar deben ser almacenados en sendosregistros del procesador

Máxima flexibilidad, permite recorrer múltiples elementos almacenados en múltiples estructurasde datos

Page 45: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4545

Base-indexado indirectoBase-indexado indirectoLa 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ónen memoria de la dirección del operando

Post-indexado indirecto: el registro base contienela dirección en memoria de un valor el cual sumadoal registro índice permiten obtener la direccióndel operando

Page 46: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4646

Base-indexado indirectoBase-indexado indirectoCaracterí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 quepor lo general éstos son gestionados a travésde un puntero (es decir, la dirección en memoriadel comienzo de la estructura)

Page 47: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4747

PC relativoPC relativoInterpretación: el campo argumento contiene un desplazamiento fijo el cual debe ser sumadoal contenido del registro PC para obtenerla dirección referida

Ejemplo:

jz label

jzinstrucción

28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

PC

FE

A002

+

Page 48: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4848

PC relativoPC relativoCaracterísticas:

Requiere un único acceso a memoria (apartedel acceso inicial para traer la instrucción)

El desplazamiento, un entero signado, sueleestar representado en dos complemento

Los saltos condicionales usualmente hacen usode este modo de direccionamiento para hacer referencia al destino de los mismos

Page 49: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4949

Código independiente de la posiciónCódigo independiente de la posiciónLos 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 (porsu 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

Page 50: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5050

Código independiente de la posiciónCódigo independiente de la posiciónEl advenimiento de modelos avanzadode gestión de memoria hizo que este tipode código sea relevante en ciertos dominiosde 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

Page 51: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5151

Código independiente de la posiciónCódigo independiente de la posiciónEl código independiente de la posiciónse clasifica en dos grandes categorías:

Estático: cuando el código inicialmente puede ser cargado en cualquier locación de memoria, perouna 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

Page 52: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5252

Auto-decrementAuto-decrementInterpretación: el campo argumento contiene una referencia a un registro el cual primeroes decrementado y luego es usado comola dirección en memoria del operando

Ejemplo:

mov -(R0), R1 (CISC)

store R1, -(R0) (RISC)28

1E02A005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

banco deregistros

R0R1R2R3R4R5⋮

RF

A002

FFF500020DF1EA00

0000⋮

001F

-

storeinstrucción R0 R1

2

A000

1F00

Page 53: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5353

Auto-decrementAuto-decrementCaracterísticas:

Relativamente eficiente, puesto que requiere sóloun acceso a memoria (aparte del acceso inicial)

Equivale a ejecutar la siguiente secuenciade instrucciones (asumida una arquitecturade 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)

Page 54: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5454

Auto-incrementAuto-incrementInterpretación: el campo argumento contiene una referencia a un registro es usado comola dirección en memoria del operando y luego es incrementado

Ejemplo:

mov R2, (R0)+ (CISC)

load R2, (R0)+ (RISC)28

1E1F0005

B2

memoria

0000:⋮

9FFF:A000:A001:A002:

FFFF:

banco deregistros

R0R1R2R3R4R5⋮

RF

A000

FFF500020DF1EA00

0000⋮

001F

+

loadinstrucción R0 R2

2

001F

A002

Page 55: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5555

Auto-incrementAuto-incrementCaracterísticas:

Relativamente eficiente, puesto que requiere sóloun acceso a memoria (aparte del acceso inicial)

Equivale a ejecutar la siguiente secuenciade instrucciones (nuevamente, asumidauna 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)

Page 56: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5656

La arquitectura OCUNSLa arquitectura OCUNSLa arquitectura OCUNS nos servirá de bancode prueba sobre el cual pondremos en práctica las nociones recién introducidas acercade 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

Page 57: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5757

Set de instruccionesSet de instrucciones

Page 58: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5858

Formato de instrucciónFormato de instrucciónEl formato de instrucción adoptado hace usode 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 adicionales para el opcode

Page 59: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5959

Modos de direccionamientoModos de direccionamientoLa 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)

Page 60: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6060

Lenguaje máquinaLenguaje máquinaConsideremos el siguiente fragmentode programa en lenguaje ensamblador:

add R0, R1, R2

sub R3, R4, R5

hlt

El lenguaje máquina asociado resulta:

add R0, R1, R2 0000000000010010 = 0012h

sub R3, R4, R5 0001001101000101 = 1345h

hlt 1111000000000000 = F000h

Page 61: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6161

Naturaleza RISCNaturaleza RISCLa naturaleza RISC de la arquitectura OCUNSse evidencia por caso en el hecho de queno cuenta con el modo inmediato

Por caso, ¿de qué manera se puede ponera cero el registro R0?

add R0, RF, RF

sub R0, R1, R1

xor R0, R2, R2

...

Page 62: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6262

Otras característicasOtras característicasEsta 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ónde las interrupciones y de los traps

Llamada a procedimientos y pasaje de parámetros

Programación de bajo nivel de la entrada/salida

Page 63: › ~ags › OC › downloads › APUNTES DE... · Modos de direccionamiento2019-10-22 · Organización de Computadoras - Mg. A. G. Stankevicius 3 Contenidos Tipos de instrucciones

Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6363

¿¿Preguntas?Preguntas?