Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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)
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
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
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
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)
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!)
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
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
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
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
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...
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
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
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
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
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”
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
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
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
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]
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
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
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
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?)
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
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:
⋮
⋮
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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)
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
+
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
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
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
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
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
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)
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
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)
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
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5757
Set de instruccionesSet 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
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)
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
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
...
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
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6363
¿¿Preguntas?Preguntas?