Modos de Direccionamiento del Procesador

12,105 views
12,106 views

Published on

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

No Downloads
Views
Total views
12,105
On SlideShare
0
From Embeds
0
Number of Embeds
594
Actions
Shares
0
Downloads
349
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Modos de Direccionamiento del Procesador

  1. 1. TEMA:Modos de Direccionamiento y Conjunto deInstrucciones del Procesador Intel® Core i7ESTUDIANTES:-Geovanny Campoverde-Emilio RodriguezPROFESOR:-Ing. Otto Parra
  2. 2. El presente documento nos dará a conocer los Métodos deDireccionamiento que realiza el Procesador (CPU) para el manejo de losdatos, además del Conjunto de Operaciones del mismo, analizandoprimeramente aspectos fundamentales de dicho Juego de Instruccionesbasado en el procesador x86, para finalmente contrastarlo con la últimageneración de procesadores como son los Intel, específicamente elProcesador Intel Core i7.Palabras Clave: Campos, Direccionamiento, Procesador, Operaciones,Datos, Registros, Instrucciones de Datos, Operandos.
  3. 3. Como es ya de nuestro conocimiento el avance en el desarrollo de losprocesadores ha sido a pasos agigantados. Año a año nuevas tecnologíasse desarrollan lo que implica que la fabricación de los procesadores tieneque ser constante teniendo como exigencia principal la capacidad deprocesamiento de datos.Cada vez las mejoras en la Computación exigen un mayor manejo dedatos, para ello este artículo nos mostrara de una manera global como semanejan los datos dentro del procesador, llegando así a conocer cada unode los Modos de Direccionamiento del Procesador.
  4. 4. También se sabe que a partir del desarrollo del procesador x86 los nuevosprocesadores fueron fabricados en base al Conjunto de Instrucciones deeste, conocidas como «primarias», es por eso que se analizaráprincipalmente el Conjunto de Instrucciones del x86 y posteriormente loque se ha añadido a los nuevos procesadores Intel Core i7.
  5. 5. Son las diferentes maneras de especificar en informática un operandodentro de una instrucción (lenguaje ensamblador). Cómo se especifican einterpretan las direcciones de memoria según las instrucciones.Un modo de direccionamiento especifica la forma de calcular la direcciónde memoria efectiva de un operando mediante el uso de la informacióncontenida en registros y / o constantes, contenida dentro de unainstrucción de la máquina o en otra parte.
  6. 6. Los ordenadores utilizan técnicas de direccionamiento con los siguientesfines:1 – Dar versatilidad de programación al usuario, proporcionandofacilidades tales como índices, direccionamientos indirectos, etc., estaversatilidad sirve para manejar estructuras de datos complejas comovectores, matrices, etc.2 – Reducir el número de bits del campo de operando.Es tal la importancia de los modos de direccionamiento que la potencia de unamaquina se mide tanto por su repertorio de instrucciones como por la variedad demodos de direccionamiento que es capaz de admitir.
  7. 7. Implícito:En este modo de direccionamiento no es necesario poner ningunadirección de forma explícita, ya que en el propio código de operación seconoce la dirección del (de los) operando(s) al (a los) que se desea accedero con el (los) que se quiere operar.Un ejemplo de este tipo de direccionamiento lo podemos encontrar en laarquitectura de acumulador (AC) donde siempre hay un parámetroimplícito y este es el AC.Finalizando y dejando este modo de direccionamiento generalizado paralas arquitecturas más usuales, se remarca que también se puede encontraren la arquitectura con registros de propósito general, por ejemplo conórdenes como set c, que pone a 1 el registro c (acarreo).
  8. 8. Inmediato:En la instrucción está incluido directamente el operando.En este modo el operando es especificado en la instrucción misma. Enotras palabras, una instrucción de modo inmediato tiene un campo deoperando en vez de un campo de dirección.El campo del operando contiene el operando actual que se debe utilizaren conjunto con la operación especificada en la instrucción. Lasinstrucciones de modo inmediato son útiles para inicializar los registros enun valor constante.Cuando el campo de dirección especifica un registro del procesador, lainstrucción se dice que está en el modo de registro.
  9. 9. Inmediato: Fig. 1. Funcionamiento del Método de Direccionamiento Inmediato Ejemplo 1: MOV A, #17H
  10. 10. Directo:El campo de operando en la instrucción contiene la dirección en memoriadonde se encuentra el operando.En este modo la dirección efectiva es igual a la parte de dirección de lainstrucción. El operando reside en la memoria y su dirección es dadadirectamente por el campo de dirección de la instrucción. En unainstrucción de tipo ramificación el campo de dirección especifica ladirección de la rama actual.Con este tipo de direccionamiento, la dirección efectiva es contenida en lamisma instrucción, tal como los valores de datos inmediatos que soncontenidos en la instrucción. Un procesador de 16 bits suma la direcciónefectiva al contenido del segmento de datos previamente desplazado en 4bits para producir la dirección física del operando.
  11. 11. Directo: Fig. 2. Funcionamiento del Método de Direccionamiento Directo Ejemplo: MOV A, 17H
  12. 12. Indirecto:El campo de operando contiene una dirección de memoria, en la que seencuentra la dirección efectiva del operando.
  13. 13. Indirecto:Fig. 3. Funcionamiento del Método de Direccionamiento IndirectoEjemplo: MOV A,@17H Fig. 3. Funcionamiento del Método de Direccionamiento Indirecto Ejemplo: MOV A,@17H
  14. 14. Absoluto:El campo de operando contiene una dirección en memoria, en la que seencuentra la instrucción.De Registro:Sirve para especificar Operandos que están en registros.
  15. 15. De Registro: Fig. 4. Funcionamiento del Método de Direccionamiento De Registros Ejemplo: MOV A, R0
  16. 16. Indirecto Mediante Registros:El campo de operando de la instrucción contiene un identificador deregistro en el que se encuentra la dirección efectiva del operando.En este modo el campo de la dirección de la instrucción da la dirección endonde la dirección efectiva se almacena en la memoria. El control localizala instrucción de la memoria y utiliza su parte de dirección para accesar lamemoria de nuevo para leer una dirección efectiva. Unos pocos modos dedireccionamiento requieren que el campo de dirección de la instrucciónsea sumado al control de un registro especificado en el procesador.La dirección efectiva en este modo se obtiene del siguiente cálculo:Dir. Efectiva = Dir. De la parte de la instrucción + Contenido delregistro del procesador
  17. 17. Indirecto Mediante Registros: Fig. 5. Funcionamiento del Método de Direccionamiento Indirecto mediante Registros Ejemplo: MOV A,@R0
  18. 18. De Desplazamiento:Combina el modo directo e indirecto mediante registros.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 Pila (tipoLIFO), las cuales están marcados por el fondo de la pila y el puntero depila (*SP), El puntero de pila apunta a la última posición ocupada. Así,como puntero de direccionamiento usaremos el SP. El desplazamientomás el valor del SP nos dará la dirección del objeto al que queramos hacerreferencia. En ocasiones, si no existe C. de desplazamiento solo setrabajara con la cima de la pila. Este tipo de direccionamiento nos aportaflexibilidad pero por el contrario, es mucho más complejo que otros tipostratados anteriormente.
  19. 19. Indexado con Respecto a una Base:En este modo el contenido de un registro índice se suma a la parte dedirección de la instrucción para obtener la dirección efectiva.El registro índice es un registro CPU especial que contiene un valoríndice. Un campo de dirección de la instrucción define la dirección inicialdel arreglo de datos en la memoria.Cada operando del arreglo se almacena en la memoria en relación con ladirección inicial.La distancia entre la dirección inicial y la dirección del operando es elvalor del índice almacenado en el registro de índice. Cualquier operandoen el arreglo puede accesarse con la misma instrucción siempre y cuandoel registro índice contenga el valor de índice correcto. El registro índicepuede incrementarse para facilitar el acceso a Operandos consecutivos.
  20. 20. Direccionamiento de Registro Base:En este modo, el contenido de un registro base se suma a la parte dedirección de la instrucción para obtener la dirección efectiva. Esto essimilar al modo de direccionamiento indexado, excepto en que el registrose denomina ahora registro base, en lugar de registro índice. La diferenciaentre los dos modos está en la manera en que se usan más que en lamanera en que se calculan. Se considera que un registro base contiene unadirección base y que el campo de dirección de la instrucción proporcionaun desplazamiento en relación con esta dirección base.El modo de direccionamiento de registro base se utiliza en lascomputadoras para facilitar la localización de los programas en memoria.
  21. 21. El Conjunto de Instrucciones también llamado Juego de Instruccioneso ISA (del inglés Instruction Set Architecture, Arquitectura delConjunto de Instrucciones) es una especificación que detalla lasinstrucciones que un procesador de una computadora puede entender yejecutar, es decir el conjunto de todos los comandos implementados porun diseño particular de un procesador. El término describe los aspectosdel procesador generalmente visibles a un programador, incluyendo lostipos de datos nativos, las instrucciones, los registros, la arquitectura dememoria y las interrupciones, entre otros aspectos.
  22. 22. El conjunto de instrucciones se emplea a veces para distinguir esteconjunto de características de la micro-arquitectura, que son loselementos y técnicas que se emplean para implementar el conjunto deinstrucciones. Entre estos elementos se encuentras las microinstruccionesy los sistemas de caché.Procesadores con diferentes diseños internos pueden compartir unconjunto de instrucciones; por ejemplo el Intel Pentium y AMD Athlonimplementan versiones casi idénticas del conjunto de instrucciones x86,aunque tienen diseños internos completamente opuestos.
  23. 23. Las Características principales en general de un Conjunto de Instruccionesson:Completo: Que se pueda realizar en un tiempo finito cualquier tareaejecutable con un ordenador (computable o decidible).Eficiente: Que permita alta velocidad de cálculo sin exigir una elevadacomplejidad en su UC y ALU y sin consumir excesivos recursos(memoria), es decir, debe cumplir su tarea en un tiempo razonableminimizando el uso de los recursos.Autos contenidos: Esto es, que contengan en sí mismas toda lainformación necesaria para ejecutarse.Independientes: Que no dependan de la ejecución de alguna otrainstrucción.
  24. 24. Además se puede decir que para que un conjunto de instrucciones seacompleto solo se necesitan cuatro instrucciones:• 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 del repertorio deinstrucciones por lo que en la práctica el conjunto suele ser más amplio enaras de conseguir un mejor rendimiento, tanto en uso de recursos comoen consumo de tiempo.
  25. 25. Básicamente el Conjunto de Instrucciones se basa en dos aspectosfundamentales:Densidad de Código: Es una característica fundamental pues muchos de losprogramas en la actualidad tienen instrucciones muy complejas lo cualhace que el manejo de los procesos necesite cada vez un procesador máseficaz, el cual pueda procesar los datos de una manera rápida, directa y sinretardos.Numero de Operandos: El número de Operandos se refiere a como los datosse van procesando durante la ejecución de una instrucción.
  26. 26. El formato de la instrucciones es un conjunto de especificaciones queindican como debe ser interpretado el patrón de bits de una instrucciónde máquina para logra su ejecución dentro del computador.El formato de la instrucción nos indica cual es el código de operación ycuáles son los Operandos que la instrucción específica, tanto explícitacomo implícitamente.
  27. 27. Transferencia de Datos: Copian datos de un origen a un destino, sinmodificar el origen y normalmente sin afectar a los flags o indicadores decondición. Pueden transferir palabras, fracciones de palabras (bytes, mediapalabra) o bloques completos de n bytes o palabras. TABLA I EJEMPLOS DE TRANSFERENCIA DE DATOS
  28. 28. Instrucciones Aritméticas: Son efectuadas por la ALU y suelen cambiar losflags o indicadores de condición. TABLA II EJEMPLOS DE INSTRUCCIONES ARITMETICAS
  29. 29. Instrucciones Lógicas: Realizan operaciones booleanas "bit a bit" entre dosOperandos. Como las aritméticas también modifican los flags. TABLA III EJEMPLOS DE INSTRUCCIONES LOGICAS
  30. 30. Instrucciones Comparación: Suelen preceder a una instrucción de bifurcacióncondicional y modifican los flags. No hay que pensar que las instruccionesde salto condicional dependen de este repertorio, ya que lo único que haceel salto condicional es consultar los flags y salta si precede, pero nodepende de ninguna instrucción de comparación. (De hecho cualquieroperación aritmética realizada anteriormente a un salto condicional puedeprovocar que este "salte"). TABLA IV EJEMPLOS DE INSTRUCCIONES COMPARACION
  31. 31. Control de Flujo de Programa: Permiten modificar la secuencia normal deejecución de un programa, puede hacerse por salto condicional relativo oabsoluto.Se clasifican en cuatro grupos: GRUPO ACCION Salto Incondicional Salta sin comprobar ninguna condición. Salto Condicional Salta si la condición se cumple. Llamada a Subrutinas Invoca la ejecución de funciones anteriormente definidas. Gestión de las Se usan para llamar a las rutinas de servicio de interrupción y Interrupciones 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ó (iret).
  32. 32. Instrucciones de Desplazamiento: Pueden ser aritmético o lógico y puedenincluir o no rotaciones. Pueden ser de izquierda a derecha. TABLA V EJEMPLOS DE INSTRUCCIONES DE DESPLAZAMIENTO
  33. 33. Instrucciones de Bits: Comprueban un bit del operando y su valor lo reflejanen el indicador de cero. Pueden poner un bit a 0 o complementarlo. TABLA VI EJEMPLOS DE INSTRUCCIONES DE BITS
  34. 34. Entrada/Salida: Son instrucciones de transferencia salvo que elorigen/destino de dicho flujo es un puerto de un dispositivo de E/S.Estas instrucciones pueden darse mediante dos alternativas:E/S "mapeada" en memoria: Los periféricos tienen direcciones asignadas dela MP por lo que no se necesitan instrucciones especiales y lasoperaciones se realizan con las ya vistas, como son: load, store y move.E/S independiente: Necesitan unas instrucciones especiales para indicarle alprocesador que nos estamos refiriendo al mapa de direcciones de E/S, yaque este mapa y el mapa de memoria son disjuntos.
  35. 35. Entrada/Salida: TABLA VII EJEMPLOS DE INSTRUCCIONES DE ENTRADA/SALIDA
  36. 36. Control y Misceláneas: Se usan como semáforos, esto es, se declara unavariable entera que tendrá el valor 0 si el recurso esta libre y 1 si estásiendo utilizado, de manera que si un procesador comprueba y elsemáforo está en 1 tendrá que esperar hasta que este cambie a 0. TABLA VIII EJEMPLOS DE INSTRUCCIONES MISCELANEAS
  37. 37. Streaming SIMD Extensions (SSE) es un conjunto deinstrucciones SIMD (Única Instrucción, Múltiples Datos) añadidas en elaño 1999 al procesador Pentium III, como extensión a la arquitecturax86 como respuesta a la tecnología 3DNow! que AMD teníaimplementada años atrás.La versión 4.2 de las extensiones de vector de Intel SSE trae de regreso alfuturo el x86 ISA atrás con la adición de nuevas instrucciones demanipulación de cadenas. Pero la cadena de instrucciones del nuevo SSE4.2 está destinada a acelerar el procesamiento de XML, lo que lasconvierte en perfectas para la Web y aplicaciones futuras basadas enXML.
  38. 38. SSE 4.2 también incluye una instrucción CRC que acelera elalmacenamiento y las aplicaciones de red, así como una instrucciónPOPCNT útil para una variedad de tareas de patrónespecificado. Además, para ofrecer mejor soporte a las aplicaciones multi-hilo, Intel ha reducido la latencia de los hilos de las primitivas desincronización.En el frente de virtualización, acelera las transiciones y tiene algunasmejoras sustanciales, en su sistema de memoria virtual que reduce en granmedida el número de esas transiciones requeridas por el Hypervisor.
  39. 39. Como se ha podido constatar, los modos de direccionamiento, y elconjunto de operaciones, es lo que define actualmente a un procesador enel mercado, y a medida que más se actualicen y se logre entender suverdadera utilidad, implementando nuevas formas de uso, podremos tenermucha más potencia y capacidad de procesamiento para loscomputadores. Consecuentemente con esto, tendremos un avancetecnológico en todas las esferas de una sociedad que actualmente estáregida casi completamente por el uso de los ordenadores.
  40. 40. http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC2.pdfhttp://es.wikipedia.org/wiki/Conjunto_de_instruccioneshttp://www.alegsa.com.ar/Dic/conjunto%20de%20instrucciones.phphttp://atc.ugr.es/docencia/udigital/04.htmlhttp://infomicros.wordpress.com/2008/08/12/intelcorei7/http://teleformacion.edu.aytolacoruna.es/PASCAL/document/flujo.htmhttp://www.terra.es/personal/fremiro/modos_de_direccionamiento.htmhttp://dac.escet.urjc.es/~lrincon/uned/etc1/ModosDireccionamiento.pdfhttp://moisesrbb.tripod.com/m_direct.htmlhttp://es.wikipedia.org/wiki/Modos_de_direccionamiento

×