La Electricidad Y La Electrónica Trabajo Tecnología.pdf
Modos de Direccionamiento del Procesador (IEEE)
1. 1
Modos de Direccionamiento y Conjunto de
Operaciones del Procesador x86 (Intel Core i7) (01 Abril 2011)
Emilio Rodríguezemicloud91@hotmail.com , Geovanny Campoverde geocampo_14@hotmail.com
Resumen-El presente documento nos dará a conocer los Los ordenadores utilizan técnicas de direccionamiento con los
Métodos de Direccionamiento que realiza el Procesador siguientes fines:
(CPU) para el manejo de los datos, además del Conjunto de
Operaciones del mismo, analizando primeramente aspectos 1 – Dar versatilidad de programación al usuario,
fundamentales de dicho Juego de Instrucciones basado en el proporcionando facilidades tales como índices,
procesador x86, para finalmente contrastarlo con la última direccionamientos indirectos, etc., esta versatilidad sirve para
generación de procesadores como son los Intel, manejar estructuras de datos complejas como vectores,
específicamente el Procesador Intel Core i7. matrices, etc.
Palabras Clave: Campos,Direccionamiento, 2 –Reducir el número de bits del campo de operando.
Procesador,Operaciones,Datos, Registros, Instrucciones de
Datos, Operandos. Es tal la importancia de los modos de direccionamiento que la
potencia de una maquina se mide tanto por su repertorio de
instrucciones como por la variedad de modos de
I. INTRODUCCIÓN direccionamiento que es capaz de admitir.
Como es ya de nuestro conocimiento el avance en el
desarrollo de los procesadores ha sido a pasos agigantados. A. Tipos de Métodos de Direccionamiento
Año a año nuevas tecnologías se desarrollan lo que implica
que la fabricación de los procesadores tiene que ser constante 1) Implícito
teniendo como exigencia principal la capacidad de
procesamiento de datos. En este modo de direccionamiento no es necesario poner
ninguna dirección de forma explícita, ya que en el propio
Cada vez las mejoras en la Computación exigen un mayor código de operación se conoce la dirección del (de los)
manejo de datos, para ello esteartículo nos mostrara de una operando(s) al (a los) que se desea acceder o con el (los) que
manera global como se manejan los datos dentro del se quiere operar.
procesador, llegando así a conocer cada uno de los Modos de
Direccionamiento del Procesador. Un ejemplo de este tipo de direccionamiento lo podemos
encontrar en la arquitectura de acumulador (AC) donde
También se sabe que a partir del desarrollo del procesador x86 siempre hay un parámetro implícito y este es el AC.
los nuevos procesadores fueron fabricados en base al Conjunto
de Instrucciones de este, es por eso que se analizará Finalizando y para dejar este modo de direccionamiento
principalmente el Conjunto de Instrucciones del x86 y generalizado para las arquitecturas más usuales, se remarca
posteriormente lo que se ha añadido a los nuevos que también podemos encontrarlo en la arquitectura con
procesadores Intel Core i7. registros de propósito general, por ejemplo con órdenes como
set c, que pone a 1 el registro c (acarreo).
II. MODOS DE DIRECCIONAMIENTO
2) Inmediato
Son las diferentes maneras de especificar en informática un
operando dentro de una instrucción (lenguaje ensamblador). En la instrucción está incluido directamente el operando.
Cómo se especifican e interpretan las direcciones de memoria En este modo el operando es especificado en la instrucción
según las instrucciones. misma. En otras palabras, una instrucción de modo inmediato
tiene un campo de operando en vez de un campo de dirección.
Un modo de direccionamiento especifica la forma de calcular
la dirección de memoria efectiva de un operando mediante el El campo del operando contiene el operando actual que se
uso de la información contenida en registros y / o constantes, debe utilizar en conjunto con la operación especificada en la
contenida dentro de una instrucción de la máquina o en otra instrucción. Las instrucciones de modo inmediato son útiles
parte. para inicializar los registros en un valor constante.
2. 2
Cuando el campo de dirección especifica un registro del
procesador, la instrucción se dice que está en el modo de
registro.
Función:
Fig. 1. Funcionamiento del Método de Direccionamiento Inmediato
Ejemplo1:MOV A, #17H
3) Directo
El campo de operando en la instrucción contiene la dirección
en memoria donde se encuentra el operando.
En este modo la dirección efectiva es igual a la parte de
dirección de la instrucción. El operando reside en la memoria Fig. 3. Funcionamiento del Método de Direccionamiento Indirecto
y su dirección es dada directamente por el campo de dirección
de la instrucción. En una instrucción de tipo ramificación el Ejemplo: MOV A,@17H
campo de dirección especifica la dirección de la rama actual.
Con este tipo de direccionamiento, la dirección efectiva es 5) Absoluto
contenida en la misma instrucción, tal como los valores de El campo de operando contiene una dirección en memoria, en
datos inmediatos que son contenidos en la instrucción. Un la que se encuentra la instrucción.
procesador de 16 bits suma la dirección efectiva al contenido
del segmento de datos previamente desplazado en 4 bits para 6) De registro
producir la dirección física del operando.
Función: Sirve para especificar operandos que están en registros.
Fig. 2. Funcionamiento del Método de Direccionamiento Directo
Ejemplo: MOV A, 17H
Fig. 4. Funcionamiento del Método de Direccionamiento Directo
Ejemplo: MOV A, R0
4) Indirecto
7) Indirecto mediante registros
El campo de operando contiene una dirección de memoria, en
la que se encuentra la dirección efectiva del operando.
Función:
3. 3
El campo de operando de la instrucción contiene un El registro índice es un registro CPU especial que contiene un
identificador de registro en el que se encuentra la dirección valor índice. Un campo de dirección de la instrucción define la
efectiva del operando. dirección inicial del arreglo de datos en la memoria. Cada
En este modo el campo de la dirección de la instrucción da la operando del arreglo se almacena en la memoria en relación
dirección en donde la dirección efectiva se almacena en la con la dirección inicial.
memoria. El control localiza la instrucción de la memoria y La distancia entre la dirección inicial y la dirección del
utiliza su parte de dirección para accesar la memoria de nuevo operando es el valor del índice almacenado en el registro de
para leer una dirección efectiva. Unos pocos modos de índice. Cualquier operando en el arreglo puede accesarse con
direccionamiento requieren que el campo de dirección de la la misma instrucción siempre y cuando el registro índice
instrucción sea sumado al control de un registro especificado contenga el valor de índice correcto. El registro índice puede
en el procesador. incrementarse para facilitar el acceso a operandos
La dirección efectiva en este modo se obtiene del siguiente consecutivos. Nótese que si una instrucción de tipo índice no
cálculo: incluye un campo de dirección en su formato, la instrucción se
Dir. Efectiva = Dir. De la parte de la instrucción + convierte al modo de operación de indirecto por registro.
Contenido del registro del procesador
Función: Algunas computadoras dedican un registro de CPU para que
funcione exclusivamente como un registro índice. De manera
implícita este registro participa cuando se utiliza una
instrucción de modo índice. En las computadoras con muchos
registros de procesador, cualquiera de los registros de la CPU
puede contener el número de índice. En tal caso, el registro
debe estar especificado en forma explícita en un campo de
registro dentro del formato de instrucción.
11) Direccionamiento de registro base
En este modo, el contenido de un registro base se suma a la
parte de dirección de la instrucción para obtener la dirección
efectiva. Esto es similar al modo de direccionamiento
indexado, excepto en que el registro se denomina ahora
registro base, en lugar de registro índice. La diferencia entre
los dos modos está en la manera en que se usan más que en la
Fig. 5. Funcionamiento del Método de Direccionamiento Indirecto mediante
Registros manera en que se calculan. Se considera que un registro base
contiene una dirección base y que el campo de dirección de la
Ejemplo: MOV A,@R0 instrucción proporciona un desplazamiento en relación con
esta dirección base.
8) De desplazamiento El modo de direccionamiento de registro base se utiliza en las
Combina el modo directo e indirecto mediante registros. computadoras para facilitar la localización de los programas
en memoria.
9) De pila
Se utiliza cuando el operando está en memoria y en la
cabecera de la pila.
Este direccionamiento se basa en las estructuras denominadas III. CONJUNTO DE INSTRUCCIONES DEL
Pila (tipo LIFO), las cuales están marcados por el fondo de la PROCESADOR x86
pila y el puntero de pila (*SP), El puntero de pila apunta a la
última posición ocupada. Así, como puntero de El Conjunto de Instrucciones también llamado Juego de
direccionamiento usaremos el SP. El desplazamiento más el Instrucciones o ISA (del inglés Instruction Set Architecture,
valor del SP nos dará la dirección del objeto al que queramos Arquitectura del Conjunto de Instrucciones) es una
hacer referencia. En ocasiones, si no existe C. de especificación que detalla las instrucciones que un procesador
desplazamiento solo se trabajara con la cima de la pila. Este de una computadora puede entender y ejecutar, es decir el
tipo de direccionamiento nos aporta flexibilidad pero por el conjunto de todos los comandos implementados por un diseño
contrario, es mucho más complejo que otros tipos tratados particular de un procesador. El término describe los aspectos
anteriormente. del procesador generalmente visibles a un programador,
incluyendo los tipos de datos nativos, las instrucciones, los
10) Indexado respecto a una base registros, la arquitectura de memoria y las interrupciones,
En este modo el contenido de un registro índice se suma a la entre otros aspectos.
parte de dirección de la instrucción para obtener la dirección
efectiva.
4. 4
El conjunto de instrucciones se emplea a veces para distinguir necesite cada vez un procesador más eficaz, el cual pueda
este conjunto de características de la micro-arquitectura, que procesar los datos de una manera rápida, directa y sin
son los elementos y técnicas que se emplean para implementar retardos.
el conjunto de instrucciones. Entre estos elementos se
encuentras las microinstrucciones y los sistemas de caché. 2) Numero de Operandos
Procesadores con diferentes diseños internos pueden compartir El número de Operandos se refiere a como los datos se
un conjunto de instrucciones; por ejemplo el IntelPentium y van procesando durante la ejecución de una instrucción.
AMDAthlon implementan versiones casi idénticas del
conjunto de instrucciones x86, aunque tienen diseños internos
B. Formato de las Instrucciones.
completamente opuestos.
El formato de la instrucciones es un conjunto de
A. Características del Conjunto de Instrucciones
especificaciones que indican como debe ser interpretado el
patrón de bits de una instrucción de máquina para logra su
Las Características principales en general de un Conjunto de ejecución dentro del computador.
Instrucciones son:
El formato de la instrucción nos indica cual es el código de
1) Completo: Que se pueda realizar en un tiempo finito operación y cuálesson los Operandos que la instrucción
cualquier tarea ejecutable con un ordenador específica, tanto explícita como implícitamente.
(computable o decidible).
2) Eficiente: Que permita alta velocidad de cálculo sin C. Tipo de las Instrucciones.
exigir una elevada complejidad en su UC y ALU y
sin consumir excesivos recursos (memoria), es decir,
debe cumplir su tarea en un tiempo razonable 1) Transferencia de Datos
minimizando el uso de los recursos.
Copian datos de un origen a un destino, sin modificar el origen
3) Autos contenidos: Esto es, que contengan en sí
y normalmente sin afectar a los flags o indicadores de
mismas toda la información necesaria para ejecutarse.
condición. Pueden transferir palabras, fracciones de palabras
4) Independientes: Que no dependan de la ejecución de
(bytes, media palabra) o bloques completos de n bytes o
alguna otra instrucción.
palabras.
Además se puede decir que para que un conjunto de TABLA I
instrucciones sea completo solo se necesitan cuatro
instrucciones: EJEMPLOS DE TRANSFERENCIA DE DATOS
-> escritura
-> mover a la izquierda una posición y leer
-> mover a la derecha una posición y leer
-> parar
Con este conjunto no se puede conseguir la eficiencia del
repertorio de instrucciones por lo que en la práctica el
2) InstruccionesAritméticas
conjunto suele ser más amplio en aras de conseguir un mejor
rendimiento, tanto en uso de recursos como en consumo de Son efectuadas por la ALU y suelen cambiar los flags o
tiempo. indicadores de condición.
Básicamente el Conjunto de Instrucciones se basa en dos TABLA II
aspectos fundamentales:
EJEMPLOS DE INSTRUCCIONES ARITMETICAS
1) Densidad de Código
Es una característica fundamental pues muchos de los
programas en la actualidad tienen instrucciones muy
complejas lo cual hace que el manejo de los procesos
5. 5
a) salto incondicional: Salta sin comprobar
ninguna condición.
b) salto condicional: Salta si la condición se
cumple.
c) Llamada a subrutinas: Invoca la ejecución de
funciones anteriormente definidas.
d) Gestión de las interrupciones: Se usan para
llamar a las rutinas de servicio de interrupción y
esto se puede hacer por hardware o bien por
software. Necesita una instrucción similar a
return para retornar al contexto anterior pero
restableciendo el estado de la máquina, para no
afectar a la aplicación a la cual se interrumpió
3) InstruccionesLógicas (iret).
Realizan operaciones booleanas "bit a bit" entre dos
operandos. Como las aritméticas también modifican los flags.
TABLA III 6) Instrucciones de Desplazamiento.
EJEMPLOS DE INSTRUCCIONES LOGICAS Pueden ser aritmético o lógico y pueden incluir o no
rotaciones. Pueden ser de izquierda a derecha.
TABLA V
EJEMPLOS DE INSTRUCCIONES DE
DESPLAZAMIENTO
4) Instrucciones Comparación
Suelen preceder a una instrucción de bifurcación condicional y
modifican los flags. No hay que pensar que las instrucciones 7) Instrucciones de Bits.
de salto condicional dependen de este repertorio, ya que lo
único que hace el salto condicional es consultar los flags y Comprueban un bit del operando y su valor lo reflejan en el
salta si precede, pero no depende de ninguna instrucción de indicador de cero. Pueden poner un bit a 0 o complementarlo.
comparación. (De hecho cualquier operación aritmética
realizada anteriormente a un salto condicional puede provocar TABLA VI
que este "salte").
EJEMPLOS DE INSTRUCCIONES DE BITS
TABLA IV
EJEMPLOS DE INSTRUCCIONES DE COMPARACIÓN
8) Entrada/Salida
5) Control de Flujo de Programa Son instrucciones de transferencia salvo que el origen/destino
de dicho flujo es un puerto de un dispositivo de E/S. Estas
instrucciones pueden darse mediante dos alternativas:
Permiten modificar la secuencia normal de ejecución de un
programa, puede hacerse por salto condicional relativo o
absoluto. a) E/S "mapeada" en memoria: Los periféricos
tienen direcciones asignadas de la MP por lo que
no se necesitan instrucciones especiales y las
Se clasifican en cuatro grupos:
6. 6
operaciones se realizan con las ya vistas, como XML, lo que las convierte en perfectas para la Web y
son: load, store y move. aplicaciones futuras basadas en XML.
b) E/S independiente: Necesitan unas
instrucciones especiales para indicarle al SSE 4.2 también incluye una instrucción CRC que acelera el
procesador que nos estamos refiriendo al mapa almacenamiento y las aplicaciones de red, así como una
de direcciones de E/S, ya que este mapa y el
instrucción POPCNT útil para una variedad de tareas de
mapa de memoria son disjuntos.
patrón especificado. Además, para ofrecer mejor soporte a las
aplicaciones multi-hilo, Intel ha reducido la latencia de los
TABLA VII
hilos de las primitivas de sincronización.
EJEMPLOS DE INSTRUCCIONES DE
ENTRADA/SALIDA En el frente de virtualización, acelera las transiciones y tiene
algunas mejoras sustanciales, en su sistema de memoria virtual
que reduce en gran medida el número de esas transiciones
requeridas por el Hypervisor.
CONCLUSIONES
Como se ha podido constatar, los modos de direccionamiento,
9) Control y Misceláneas y el conjunto de operaciones, es lo que define actualmente a
un procesador en el mercado, y a medida que más se
Se usan como semáforos, esto es, se declara una variable
actualicen y se logre entender su verdadera utilidad,
entera que tendrá el valor 0 si el recurso esta libre y 1 si está
implementando nuevas formas de uso, podremos tener mucha
siendo utilizado, de manera que si un procesador comprueba y
más potencia y capacidad de procesamiento para los
el semáforo está en 1 tendrá que esperar hasta que este cambie
computadores. Consecuentemente con esto, tendremos un
a 0.
avance tecnológico en todas las esferas de una sociedad que
TABLA VIII actualmente está regida casi completamente por el uso de los
ordenadores.
EJEMPLOS DE INSTRUCCIONES DE BITS
REFERENCIAS
http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC2.pdf
http://es.wikipedia.org/wiki/Conjunto_de_instrucciones
http://www.alegsa.com.ar/Dic/conjunto%20de%20instruccion
es.php
D. Comparación del Conjunto de Instrucciones x86
analizado con el Conjunto de Instrucciones del http://atc.ugr.es/docencia/udigital/04.html
Procesador Intel Core i7.
http://infomicros.wordpress.com/2008/08/12/intelcorei7/
Streaming SIMD Extensions (SSE) es un conjunto de
instrucciones SIMD (Single Instruction, Múltiple Data – http://teleformacion.edu.aytolacoruna.es/PASCAL/document/f
Única Instrucción, Múltiples Datos) añadidas en el año 1.999 lujo.htm
al procesador Pentium III, como extensión a la arquitectura
x86 como respuesta a la tecnología 3DNow! que AMD tenía http://www.terra.es/personal/fremiro/modos_de_direccionami
implementada años atrás. ento.htm
La versión 4.2 de las extensiones de vector de Intel SSE trae http://dac.escet.urjc.es/~lrincon/uned/etc1/ModosDireccionam
de regreso al futuro el x86 ISA atrás con la adición de nuevas iento.pdf
instrucciones de manipulación de cadenas, pues el soporte a
nivel de cadena de procesamiento ISA es una característica de http://moisesrbb.tripod.com/m_direct.html
las arquitecturas CISC que se considera obsoleta actualmente
en los años post-RISC. Pero la cadena de instrucciones del http://es.wikipedia.org/wiki/Modos_de_direccionamiento
nuevo SSE 4,2 estádestinada a acelerar el procesamiento de