modos de direccionamientocs.uns.edu.ar/~ags/oc/downloads/handouts/módulo 09...organización de...

43
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 Direccionamiento Modos de Direccionamiento (Pt. 2) (Pt. 2)

Upload: others

Post on 17-Feb-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • 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 09

    Modos de DireccionamientoModos de Direccionamiento(Pt. 2)(Pt. 2)

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

    CopyrightCopyrightCopyright © 2011-2020 A. G. StankeviciusSe 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 traseraUna copia de esta licencia está siempre disponible enla página http://www.gnu.org/copyleft/fdl.htmlLa versión transparente de este documento puedeser obtenida de la siguiente dirección:

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

    http://www.gnu.org/copyleft/fdl.htmlhttp://cs.uns.edu.ar/~ags/teaching

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

    ContenidosContenidosTipos de instruccionesFormato de instrucciónModos de direccionamiento

    Directo vs. IndirectoAbsoluto vs. Relativo

    Código automodificableCódigo independiente de la posiciónLa arquitectura OCUNS

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

    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 cuestionamientosNo obstante, pocas arquitecturas implementan la totalidad de los modos de direccionamientoEn 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. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 55

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

    Nombre Mnemónico Op. AccedidoRegistro Ri RiRegistro Indirecto (Ri) M[Ri]Absoluto addr M[addr]Absoluto Indirecto (addr) M[M[addr]]Inmediato #const constAuto-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. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 66

    InmediatoInmediatoInterpretación: el contenido del campo argumento es el operandoEjemplos: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

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

    InmediatoInmediatoCaracterísticas:

    También se lo conoce como modo literalAltamente 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ónSe lo utiliza para operar con valores constantesEn caso de no estar soportado por el hardware,se lo puede simular a nivel de lenguaje ensamblador

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

    AbsolutoAbsolutoInterpretación: el contenido del campo argumento es la ubicación en memoriadel operandoEjemplos: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

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

    AbsolutoAbsolutoCaracterísticas:

    También se lo conoce como modo memoria directoImplica un acceso adicional a memoria (apartedel acceso inicial para traer la instrucción)La instrucción contiene la dirección efectivadel argumentoEl espacio de direcciones está acotado por la cantidad de bits permitidos por el formato de instrucciónNo es práctico para recorrer estructuras de datos (¿por qué razón?)

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

    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ónEste tipo de código se lo denomina automodificableEl emplear código automodificable complicala interpretación del significado de un programaLa alternativa más adecuada consiste en hacer usode referencias indirectas

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

    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 deseadoEn 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:

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

    Absoluto indirectoAbsoluto indirectoInterpretación: el contenido del campo argumento es la ubicación en memoriade la dirección del operandoEjemplo:push (A000) (stack)

    push A000instrucción

    28

    1E02A005

    B2

    memoria

    0000:⋮

    9FFF:A000:A001:A002:

    ⋮FFFF:

    A0

    F502F1EA

    00⋮

    00

    pila delprograma

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

    Absoluto indirectoAbsoluto indirectoCaracterísticas:

    También se lo conoce como memoria indirectoImplica 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ónDe ser requerida su flexibilidad, se lo puede simular haciendo uso de otros modos de direccionamiento

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

    RegistroRegistroInterpretación: el contenido del campo argumento es la ubicación del operandodentro del banco de registrosEjemplos: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

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

    RegistroRegistroCaracterísticas:

    También se lo conoce como registro directoAnálogo al modo absoluto, usando al banco de registros del procesador como espacio de direccionesAltamente 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

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

    Registro indirectoRegistro indirectoInterpretación: el contenido del campo argumento es la ubicación dentro del bancode registros de la dirección del operandoEjemplo: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

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

    Registro indirectoRegistro indirectoCaracterísticas:

    Análogo al modo absoluto indirecto, pero recuperando la dirección del operando del banco de registrosSe 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 direccionesResulta altamente flexible, permitiendo recorrer estructuras de datos complejasMá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. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1818

    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 operandoEjemplo: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

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

    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 completaEl desplazamiento para poder variar se debe almacenar en un registro del procesadorEstá pensado para recorrer múltiples elementosde una única estructura de datos

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

    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 operandoEjemplo: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

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

    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 procesadorEl desplazamiento usualmente está acotadoa una cierta cantidad de bitsUsualmente se codifica este desplazamientoen dos complementoEstá pensado para acceder a un único elementoen múltiples estructuras de datos

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

    ¿¿Base o indexado?Base o indexado?Un error frecuente (incluso en el final) consiste en confundir los modos base e indexadoLa 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 memoriaEn el modo base codificamos un desplazamiento signado, el cual es práctico incluso en casode contar con pocos bits

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

    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 operandoEjemplo: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

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

    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 procesadorMáxima flexibilidad, permite recorrer múltiples elementos almacenados en múltiples estructurasde datos

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

    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 operandoPost-indexado indirecto: el registro base contienela dirección en memoria de un valor el cual sumadoal registro índice permiten obtener la direccióndel operando

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

    Base-indexado indirectoBase-indexado indirectoCaracterísticas:

    La misma crítica realizada acerca del modo absoluto indirecto se aplica en este nuevo contextoLa modalidad pre-indexado indirecto es útil para acceder a tablas de interrupcionesLa 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)

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

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

    jzinstrucción

    28

    1E02A005

    B2

    memoria

    0000:⋮

    9FFF:A000:A001:A002:

    ⋮FFFF:

    PC

    FE

    A002

    +

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

    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 complementoLos saltos condicionales usualmente hacen usode este modo de direccionamiento para hacer referencia al destino de los mismos

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

    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 memoriaEste 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

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

    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íficosPor caso, las librerías de vinculación dinámica, las que son compartidas por múltiples aplicaciones al mismo tiempoEsta 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. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3131

    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 relocableDiná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. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3232

    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 operandoEjemplo:mov -(R0), R1 (CISC)store R1, -(R0) (RISC)

    28

    1E02A005

    B2memoria

    0000:⋮

    9FFF:A000:A001:A002:

    ⋮FFFF:

    banco deregistros

    R0R1R2R3R4R5⋮RF

    A002

    FFF500020DF1EA00

    0000⋮

    001F

    -

    storeinstrucción R0 R1

    2

    A000

    1F00

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

    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)

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

    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 incrementadoEjemplo: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

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

    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 R0Permite 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. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3636

    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 RISCSus instrucciones son de tamaño fijo de 16 bitsEl espacio de direcciones es de 256 bytesCuenta con 16 registros de propósito general, si bien el registro F se encuentra cableado a ceroNo existe físicamente, es de papel y lápiz

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

    Set de instruccionesSet de instrucciones

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

    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

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

    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)

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

    Lenguaje máquinaLenguaje máquinaConsideremos el siguiente fragmentode programa en lenguaje ensamblador:add R0, R1, R2sub R3, R4, R5hlt

    El lenguaje máquina asociado resulta:add R0, R1, R2 0000000000010010 = 0012hsub R3, R4, R5 0001001101000101 = 1345hhlt 1111000000000000 = F000h

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

    Naturaleza RISCNaturaleza RISCLa naturaleza RISC de la arquitectura OCUNSse evidencia por caso en el hecho de queno cuenta con el modo inmediatoPor caso, ¿de qué manera se puede ponera cero el registro R0?add R0, RF, RFsub R0, R1, R1xor R0, R2, R2...

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

    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 programaVinculación y carga en memoriaRelocación dinámica de códigoEl rol del sistema operativo en la atenciónde las interrupciones y de los trapsLlamada a procedimientos y pasaje de parámetrosProgramación de bajo nivel de la entrada/salida

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

    ¿¿Preguntas?Preguntas?

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43