metodos de direccionamiento

34

Upload: blancadiaz6803

Post on 09-Jun-2015

4.957 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Metodos de Direccionamiento
Page 2: Metodos de Direccionamiento

En este apartado veremos dos temas importantes a tratar los cuales son Métodos de direccionamiento del procesador y conjunto de instrucciones y el tema de Técnicas de sincronización de datos.

Para entender un poco mas de estos temas a continuación se habla de cada uno a detalle.

Page 3: Metodos de Direccionamiento
Page 4: Metodos de Direccionamiento

Las computadoras utilizan técnicas de modo de

direccionamiento con el fin de acomodar una o ambas de las

siguientes provisiones:

1. Dar versatilidad de programación al usuario proporcionando

facilidades tales como indicadores, contadores, índices y

relocalizadores de programa.

2. Reducir el número de bits en el campo de dirección de la

instrucción.

Unidad 2.

Page 5: Metodos de Direccionamiento

Los modos de direccionamiento se pueden dividir en siete grandes grupos que son:

1. Direccionamiento a registro. 2. Direccionamiento inmediato. 3. Direccionamiento directo. 4. Direccionamiento indirecto a registro. 5. Direccionamiento relativo a base. 6. Direccionamiento indexado directo. 7. Direccionamiento indexado a base.

El procesador determina cual de los siete modos de direccionamiento se

usara mediante la examinación del contenido del campo de modo dentro

de la instrucción.

Page 6: Metodos de Direccionamiento

MODO IMPLICITO.

En este modo se especifican los operandos en forma implícita en

la definición de la instrucción.

Por ejemplo, la instrucción "complementar acumulador" es una

instrucción de modo implícito porque el operando en el registro

de acumulador esta implícito en la definición de la instrucción.

De hecho todas las instrucciones de referencia a registro que

utilizan un acumulador son instrucciones de modo implícito.

Las instrucciones de dirección cero en una computadora

organizada con pila son instrucciones de modo implícito porque

esta implícito que los operandos están en la parte superior de la

pila.

Page 7: Metodos de Direccionamiento

MODO INMEDIATO.

En este modo se especifica el operando en la instrucción misma.

En otras palabras, una instrucción de modo inmediato tiene un

campo operando, en lugar de una campo de dirección. Un

campo de operando contiene el operando real que se va a usar

junto con la operación especificada en la instrucción. Las

instrucciones de modo inmediato son útiles para inicializar

registros en un valor constante.

El campo de dirección de una instrucción puede especificar una

palabra de memoria o un registro de procesador. Cuando el

campo de dirección especifica un registro de procesador se dice

que la instrucción esta en modo de registro.

Page 8: Metodos de Direccionamiento

MODO DE REGISTRO.

En este modo, los operandos están en registros que residen

dentro de la CPU. Se selecciona el registro particular de un

campo de registro en la instrucción. Un campo k bits puede

especificar cualquiera de 2 a la k registros.

Page 9: Metodos de Direccionamiento

MODO INDIRECTO POR REGISTRO.

En este modo la instrucción especifica un registro en la CPU cuyo contenido proporciona la dirección del operando en la memoria. En otras palabras, el registro seleccionado contiene la dirección del operando en lugar del operando mismo. Antes de utilizar una instrucción de modo indirecto por registro, el programador debe asegurarse de que la dirección de memoria del operando esta colocada en el registro del procesador con una instrucción previa. Entonces una referencia al registro es equivalente a especificar una dirección de memoria. La ventaja de una instrucción de modo de registro indirecto es que el campo de dirección de la instrucción utiliza menos bits para seleccionar un registro de los que necesitaría para especificar una dirección de memoria en forma directa.

Page 10: Metodos de Direccionamiento

MODO DE DIRECCIONAMIENTO DIRECTO.

En este modo la dirección efectiva es igual a la parte de dirección

de la instrucción. El operando reside en memoria y su dirección

la proporciona en forma directa el campo de dirección de la

instrucción. En una instrucción de tipo brinco el campo de

dirección especifica la dirección de transferencia de control del

programa real.

Page 11: Metodos de Direccionamiento

MODO DE DIRECCIONAMIENTO INDIRECTO.

En este modo, el campo de dirección de la instrucción proporciona la dirección en que se almacena la dirección efectiva en la memoria. El control recupera la instrucción de la memoria y utiliza su parte de dirección para accesar la memoria una vez mas con el fin de leer la dirección efectiva. Unos cuantos modos de direccionamiento requieren que el campo de dirección de la instrucción se sume al contenido de un registro especifico en la CPU. En estos modos la dirección efectiva se obtiene del calculo siguiente: Dirección efectiva = Parte de la instrucción + El contenido de registro CPU.EL registro de CPU utilizado en el calculo puede ser el contador de programa, un registro de índice o un registro base. En cualquier caso tenemos un modo de direccionamiento diferente que se utiliza para una aplicación distinta.

Page 12: Metodos de Direccionamiento

MODO DE DIRECCIONAMIENTO INDEXADO.

En este modo el contenido de un registro índice se suma a la parte

de direcció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 inicial del arreglo de datos en la memoria. Cada

operando del arreglo se almacena en la memoria en relación con la

dirección inicial.

La distancia entre la dirección inicial y la dirección del operando es

el valor del índice almacenado en el registro de índice. Cualquier

operando en el arreglo puede accesarse con la misma instrucción

siempre y cuando el registro índice contenga el valor de índice

correcto.

Page 13: Metodos de Direccionamiento

El registro índice puede incrementarse para facilitar el acceso a

operandos consecutivos. Nótese que si una instrucción de tipo

índice no incluye un campo de dirección en su formato, la

instrucción se convierte al modo de operación de indirecto por

registro.

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 pueden

contener el numero de índice. En tal caso, el registro debe estar

especificado en forma explícita en una campo de registro dentro

del formato de instrucción.

Page 14: Metodos de Direccionamiento

MODO DE 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 esta en la manera

en que se usan mas que en la 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 instrucción proporciona un

desplazamiento en relación con esta dirección base. El modo de

direccionamiento de registro base se utiliza en las computadoras

para facilitar la localización de los programas en memoria.

Page 15: Metodos de Direccionamiento

INSTRUCCIONES DEL PROCESADOR.

Las instrucciones de un procesador se pueden agrupar en tres tipos:

Instrucciones de TransferenciaInstrucciones de OperaciónInstrucciones de Control

Instrucciones de Transferencia:

Como su nombre lo indica, este grupo de instrucciones se utilizapara efectuar transferencia de datos entre los registros de la CPU, la memoria y los puertos de E/S.

Page 16: Metodos de Direccionamiento

Instrucciones de Operación:

Estas instrucciones se emplean para realizar operaciones aritméticas y lógicas entre los registros del procesador y la memoria. Estas operaciones incluyen suma, resta, incremento decremento, complemento, comparación y corrimiento.

Instrucciones de Control

En el lenguaje Ensamblador y en general en cualquier lenguaje deprogramación las instrucciones de control juegan un papel muy importante en el flujo de un programa. Su función consiste en alterar el flujo normal del programa, según el estado de ciertos registros del sistema que indican alguna condición después de ejecutar una instrucción. Con este tipo de instrucciones es posible tomar el control del flujo del programa.

Page 17: Metodos de Direccionamiento
Page 18: Metodos de Direccionamiento

TEMPORIZACIÓN DEL SISTEMA.

El elemento fundamental del temporizador es un contador binario,encargado de contar los pulsos suministrados por algún circuito oscilador, con una base de tiempo estable y conocida. El simple hecho de contar pulsos de una duración fija nos permite medir el tiempo con precisiones asombrosas, determinadas fundamentalmente por la estabilidad del generador de pulsos y por los circuitos electrónicos del contador binario. Sin embargo, un contador útil debe tener más elementos que permitan sacar provecho a ése circuito básico, es por ello que los microcontroladores utilizan un conjunto de circuitos auxiliares para poder manejar, con cierto nivel de libertad, las características básicas del contador binario y convertir el conjunto en un temporizador/contador programable.

Page 19: Metodos de Direccionamiento

Los temporizadores se utilizan en hacer una lista completa es

prácticamente imposible, pero algunos ejemplos de su aplicación,

nos ayudarán a adentrarnos en los entresijos de su diseño y sacarle

provecho a sus potencialidades.

Medición de tiempo

División de frecuencia.

Medición de periodo y frecuencia

Conteo de eventos

Base de tiempo para otros periféricos

USART

PWM

Watch Dog

Page 20: Metodos de Direccionamiento

CARACTERÍSTICAS.

En el mundo del diseño digital, los temporizadores constituyen periféricos muy útiles. Se diseñan con ciertas características que determinan el uso que podemos darle a un temporizador, veamos algunas:

Longitud del contador: Los más comunes son aquellos que tienen 8 ó 16 bits, determina la cantidad máxima de pulsos que se pueden contar. Lectura/escritura: En general, los temporizadores pueden ser escritos o leídos por el procesador del microcontrolador. En algunos casos, donde el temporizador está vinculado a algún periférico muy específico, esta opción puede no existir o estar limitada.

Page 21: Metodos de Direccionamiento

CARACTERÍSTICAS.

Modos de trabajo: Existen, en principio dos: contador y temporizador. Como contador, se cuentan los pulsos desde una fuente externa al microcontrolador. Los pulsos contados pueden tener período variable. Como temporizador, se cuentan los pulsos suministrados por una fuente estable y conocida, que puede ser externa, o alguna fuente generada internamente por el microcontrolador.

Forma de conteo: La forma típica es el conteo ascendente, sin

embargo, existen contadores con la opción de configurar el modo de

conteo, sea éste ascendente, descendente o de otro tipo específico.

Configuración de activación por frente: Permite establecer cuando se

produce el conteo, si en el frente de subida del reloj o en el frente de

caída del mismo.

Page 22: Metodos de Direccionamiento

CARACTERÍSTICAS.

Configuración del reloj: En la mayoría de los casos la fuente de

reloj es configurable. Incluso existen microcontroladores con

abundante variedad de formas de configurar el reloj, de modo que

se puedan obtener distintos tipos de bases de tiempo.

Interrupciones: En la mayoría de casos, los temporizadores tienen

interrupciones asociadas, con el objetivo de notificar al procesador

que ha ocurrido el cruce por cero o algún valor específico en el

registro de conteo.

Características especiales: Muchos microcontroladores tienen

temporizadores especializados para trabajar de conjunto con

algunos de sus periféricos, o para ser utilizados en aplicaciones

específicas.

Page 23: Metodos de Direccionamiento

La estructura básica de un temporizador/contador.

En el esquema simplificado podemos observar que el contador está compuesto por tres bloques fundamentales:

Page 24: Metodos de Direccionamiento

La estructura básica de un temporizador/contador.

Contador binario: es el elemento básico del temporizador/contador y su misión es contar los pulsos del reloj. Hay dos propiedades esencialesa tener en cuenta, respecto a este componente: la cantidad de pulsos que puede contar y la posibilidad de controlar el sentido del conteo, sea ascendente o descendente.

Circuitos de configuración y control: constituyen la interfaz entre el contador binario y los circuitos externos. Es uno de los elementos que da valor añadido al simple contador binario.

Circuitos especializados de salida: Se utilizan para notificar, a otro elemento del sistema, sobre el estado del temporizador o acerca de la ocurrencia de un determinado evento.

Page 25: Metodos de Direccionamiento

Estado de espera

Cuando se conectan tarjetas al bus de la PC, un problema común es igualar la velocidad de los ciclos del bus con la de las tarjetas. Es común que una tarjeta sea más lenta que el bus. Así, el bus de la PC esta diseñado para resolver este problema. La señal READY del bus se puede usar para extender la longitud del ciclo del bus para igualar una tarjeta lenta o parar el bus del sistema hasta que se sincronice con el ciclo de la tarjeta.

Los ciclos del bus del 8088 normalmente son de cuatro pulsos y se describen por T1 hasta T4. En algunos ciclos el hardware de la PC, automáticamente inserta un pulso ocioso extra llamado TW. La señal READY se usa para insertar estados nuevos o adicionales de espera. Debido a que los diferentes ciclos del bus requieren distintos tiempos, la señal READY se debe controlar de manera diferente

Page 26: Metodos de Direccionamiento

Generación de estados de espera en ciclos de bus de memoria

El hardware de la PC no inserta estados de espera en los ciclos de

lectura o escritura a memoria, sino que esto lo hace la tarjeta

usando la señal READY. La figura ilustra las señales de tiempo

necesarias para generar un estado de espera para un ciclo de

lectura o escritura a memoria.

Page 27: Metodos de Direccionamiento

Tiempos de un estado de espera para ciclos de lectura o escritura a memoria.

Page 28: Metodos de Direccionamiento

Los circuitos de la tarjeta madre muestran la señal READY en el flanco de subida del tiempo T2. Esta señal debe ser valida (activo alto) 75 nanosegundos antes del flanco de subida de T2 para que no se genere un estado de espera. Si se requiere un estado de espera, la señal READY debe ser valida (activo bajo) 60 nanosegundos antes del flanco de subida de T2. Si la señal READY se mantiene en bajo hasta el flanco de subida del siguiente pulso, se inserta un estado de espera adicional.

Para las operaciones de lectura y escritura de E/S también se usa la señal READY, y los tiempos son los mismos que para acceso a memoria, excepto que la señal READY se muestrea en T3.

Page 29: Metodos de Direccionamiento

Generación de estados de espera en ciclos de

bus de DMA

La PC automáticamente inserta un estado de espera en todos los

ciclos de DMA en los canales 1, 2 y 3. No se insertan estados de

espera en el canal 0; sólo se usa para soportar el refresco de

memoria y no esta disponible para funciones normales de DMA.

Para asegurar que un estado de espera adicional se inserta en el

ciclo de DMA, la señal READY debe estar en bajo 135

nanosegundos antes del flanco de bajada del estado SW1. Para

asegurar que no se inserta un estado de espera adicional, la señal

READY debe estar en alto 115 nanosegundos antes del flanco de

bajada del siguiente pulso S.

Page 30: Metodos de Direccionamiento

Interrupciones hardware

Ocurren cuando un dispositivo necesita atención del

procesador y genera una señal eléctrica en la línea IRQ que

tiene asignada. Esta señal es recogida y procesada por el

controlador de excepciones PIC antes de ser enviada al

procesador, lo que puede realizarse de dos formas, según el tipo

de interrupción sea enmascarable o no enmascarable.

Interrupción enmascarable significa que, bajo control del

software, el procesador puede aceptar o ignorar (enmascarar)

la señal de interrupción.

Interrupción no enmascarable significa que la interrupción no

puede ser deshabilitada por software. Este tipo de

interrupciones ocurren cuando se recibe una señal en la patilla

NMI del procesador.

Page 31: Metodos de Direccionamiento

Interrupciones por software

También se denomina interrupción a las llamadas al sistema operativo mediante una instrucción, normalmente de Entrada/Salida.

Una interrupción por software, se prevé en qué momento de la ejecución de un programa sucederá. En general actúa de la siguiente manera:

. Un programa que se venía ejecutando luego de su instrucción I5, llama al Sistema Operativo, por ejemplo para leer un archivo de disco.

Page 32: Metodos de Direccionamiento

. A tal efecto, luego de I5 existe en el programa, la instrucción de código máquina CD21, simbolizada INT 21 en Asembler, que realiza el requerimiento del paso 1. Puesto que no puede seguir le ejecución de la instrucción I6 y siguientes del programa hasta que no se haya leído el disco y esté en memoria principal dicho archivo, virtualmente el programa se ha interrumpido, siendo, además, que luego de INT 21, las instrucciones que se ejecutarán no serán del programa, sino del Sistema Operativo.. La ejecución de INT 21 permite hallar la subrutina del SO.. Se ejecuta la subrutina del SO que prepara la lectura del disco.. Luego de ejecutarse la subrutina del SO, y una vez que se hayaleído el disco y verificado que la lectura es correcta, el SO ordenaráreanudar la ejecución del programa auto interrumpido en espera.. La ejecución del programa se reanuda.

Page 33: Metodos de Direccionamiento

Con todo lo visto anterior se llega a la conclusión que los temas que se han tratado son importantes para el estudio de las personas y conozcan un poco mas de los temas.

Con esta investigación se espera que sirva para investigaciones futuras.

Page 34: Metodos de Direccionamiento

http://akimpech.izt.uam.mx/Web_jr/ami211.htm

http://es.wikipedia.org/wiki/Interrupci%C3%B3nhttp://sopa.dis.ulpgc.es/ii-dso/leclinux/interrupciones/int_hard/LEC3_INT_HARD.pdfhttp://sopa.dis.ulpgc.es/ii-dso/leclinux/interrupciones/system_call/LEC2_INT_SOFT.pdf