Your SlideShare is downloading. ×
Modos de Direccionamiento del Procesador (IEEE)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Modos de Direccionamiento del Procesador (IEEE)

1,920

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,920
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
60
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 losMétodos de Direccionamiento que realiza el Procesador siguientes fines:(CPU) para el manejo de los datos, además del Conjunto deOperaciones 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 parageneració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 deDatos, 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 eldesarrollo de los procesadores ha sido a pasos agigantados. A. Tipos de Métodos de DireccionamientoAño a año nuevas tecnologías se desarrollan lo que implicaque la fabricación de los procesadores tiene que ser constante 1) Implícitoteniendo como exigencia principal la capacidad deprocesamiento de datos. En este modo de direccionamiento no es necesario poner ninguna dirección de forma explícita, ya que en el propioCada 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) quemanera global como se manejan los datos dentro del se quiere operar.procesador, llegando así a conocer cada uno de los Modos deDireccionamiento del Procesador. Un ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) dondeTambié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 Conjuntode Instrucciones de este, es por eso que se analizará Finalizando y para dejar este modo de direccionamientoprincipalmente el Conjunto de Instrucciones del x86 y generalizado para las arquitecturas más usuales, se remarcaposteriormente lo que se ha añadido a los nuevos que también podemos encontrarlo en la arquitectura conprocesadores 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) InmediatoSon las diferentes maneras de especificar en informática unoperando 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ónsegú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 calcularla dirección de memoria efectiva de un operando mediante el El campo del operando contiene el operando actual que seuso de la información contenida en registros y / o constantes, debe utilizar en conjunto con la operación especificada en lacontenida dentro de una instrucción de la máquina o en otra instrucción. Las instrucciones de modo inmediato son útilesparte. para inicializar los registros en un valor constante.
  • 2. 2Cuando el campo de dirección especifica un registro delprocesador, la instrucción se dice que está en el modo deregistro.Función: Fig. 1. Funcionamiento del Método de Direccionamiento InmediatoEjemplo1:MOV A, #17H 3) DirectoEl campo de operando en la instrucción contiene la direcciónen memoria donde se encuentra el operando.En este modo la dirección efectiva es igual a la parte dedirección de la instrucción. El operando reside en la memoria Fig. 3. Funcionamiento del Método de Direccionamiento Indirectoy su dirección es dada directamente por el campo de direcciónde la instrucción. En una instrucción de tipo ramificación el Ejemplo: MOV A,@17Hcampo de dirección especifica la dirección de la rama actual.Con este tipo de direccionamiento, la dirección efectiva es 5) Absolutocontenida en la misma instrucción, tal como los valores de El campo de operando contiene una dirección en memoria, endatos 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 contenidodel segmento de datos previamente desplazado en 4 bits para 6) De registroproducir 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 DirectoEjemplo: MOV A, 17H Fig. 4. Funcionamiento del Método de Direccionamiento Directo Ejemplo: MOV A, R0 4) Indirecto 7) Indirecto mediante registrosEl campo de operando contiene una dirección de memoria, enla que se encuentra la dirección efectiva del operando.Función:
  • 3. 3El campo de operando de la instrucción contiene un El registro índice es un registro CPU especial que contiene unidentificador de registro en el que se encuentra la dirección valor índice. Un campo de dirección de la instrucción define laefectiva del operando. dirección inicial del arreglo de datos en la memoria. CadaEn este modo el campo de la dirección de la instrucción da la operando del arreglo se almacena en la memoria en relacióndirecció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 delutiliza su parte de dirección para accesar la memoria de nuevo operando es el valor del índice almacenado en el registro depara leer una dirección efectiva. Unos pocos modos de índice. Cualquier operando en el arreglo puede accesarse condireccionamiento requieren que el campo de dirección de la la misma instrucción siempre y cuando el registro índiceinstrucción sea sumado al control de un registro especificado contenga el valor de índice correcto. El registro índice puedeen el procesador. incrementarse para facilitar el acceso a operandosLa dirección efectiva en este modo se obtiene del siguiente consecutivos. Nótese que si una instrucción de tipo índice nocálculo: incluye un campo de dirección en su formato, la instrucción seDir. Efectiva = Dir. De la parte de la instrucción + convierte al modo de operación de indirecto por registro.Contenido del registro del procesadorFunció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 laFig. 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 laEjemplo: 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 lasCombina el modo directo e indirecto mediante registros. computadoras para facilitar la localización de los programas en memoria. 9) De pilaSe utiliza cuando el operando está en memoria y en lacabecera de la pila.Este direccionamiento se basa en las estructuras denominadas III. CONJUNTO DE INSTRUCCIONES DELPila (tipo LIFO), las cuales están marcados por el fondo de la PROCESADOR x86pila 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 dedireccionamiento 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 unahacer referencia. En ocasiones, si no existe C. de especificación que detalla las instrucciones que un procesadordesplazamiento solo se trabajara con la cima de la pila. Este de una computadora puede entender y ejecutar, es decir eltipo de direccionamiento nos aporta flexibilidad pero por el conjunto de todos los comandos implementados por un diseñocontrario, es mucho más complejo que otros tipos tratados particular de un procesador. El término describe los aspectosanteriormente. 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ónefectiva.
  • 4. 4El conjunto de instrucciones se emplea a veces para distinguir necesite cada vez un procesador más eficaz, el cual puedaeste conjunto de características de la micro-arquitectura, que procesar los datos de una manera rápida, directa y sinson los elementos y técnicas que se emplean para implementar retardos.el conjunto de instrucciones. Entre estos elementos seencuentras las microinstrucciones y los sistemas de caché. 2) Numero de OperandosProcesadores con diferentes diseños internos pueden compartir El número de Operandos se refiere a como los datos seun conjunto de instrucciones; por ejemplo el IntelPentium y van procesando durante la ejecución de una instrucción.AMDAthlon implementan versiones casi idénticas delconjunto de instrucciones x86, aunque tienen diseños internos B. Formato de las Instrucciones.completamente opuestos. El formato de la instrucciones es un conjunto deA. 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 suLas 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 Iinstrucciones sea completo solo se necesitan cuatroinstrucciones: EJEMPLOS DE TRANSFERENCIA DE DATOS -> escritura -> mover a la izquierda una posición y leer -> mover a la derecha una posición y leer -> pararCon este conjunto no se puede conseguir la eficiencia delrepertorio de instrucciones por lo que en la práctica el 2) InstruccionesAritméticasconjunto suele ser más amplio en aras de conseguir un mejorrendimiento, tanto en uso de recursos como en consumo de Son efectuadas por la ALU y suelen cambiar los flags otiempo. indicadores de condición.Básicamente el Conjunto de Instrucciones se basa en dos TABLA IIaspectos 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 dosoperandos. 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ónSuelen preceder a una instrucción de bifurcación condicional ymodifican 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 elsalta 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éticarealizada anteriormente a un salto condicional puede provocar TABLA VIque 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 unprograma, puede hacerse por salto condicional relativo oabsoluto. a) E/S "mapeada" en memoria: Los periféricos tienen direcciones asignadas de la MP por lo que no se necesitan instrucciones especiales y lasSe 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 seSe 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 muchasiendo utilizado, de manera que si un procesador comprueba y más potencia y capacidad de procesamiento para losel semáforo está en 1 tendrá que esperar hasta que este cambie computadores. Consecuentemente con esto, tendremos una 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.phpD. 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 deinstrucciones 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.htmal procesador Pentium III, como extensión a la arquitecturax86 como respuesta a la tecnología 3DNow! que AMD tenía http://www.terra.es/personal/fremiro/modos_de_direccionamiimplementada años atrás. ento.htmLa versión 4.2 de las extensiones de vector de Intel SSE trae http://dac.escet.urjc.es/~lrincon/uned/etc1/ModosDireccionamde regreso al futuro el x86 ISA atrás con la adición de nuevas iento.pdfinstrucciones de manipulación de cadenas, pues el soporte anivel de cadena de procesamiento ISA es una característica de http://moisesrbb.tripod.com/m_direct.htmllas arquitecturas CISC que se considera obsoleta actualmenteen los años post-RISC. Pero la cadena de instrucciones del http://es.wikipedia.org/wiki/Modos_de_direccionamientonuevo SSE 4,2 estádestinada a acelerar el procesamiento de

×