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 datos.. Para entender un poco mas de estos temas a continuación se habla de cada uno a detalle.
Un idad 2. Las
computadoras
utilizan
técnicas
de
modo
de
direccionamiento con el fin de acomodar una o ambas de las siguientes provisiones: 1. Da Darr versati versatili lidad dad de programaci programación ón al usuario proporci proporcionando onando facilidades tales como indicadores, contadores, índices y relocali reloc alizadore zadoress de pr prog ograma. rama. 2. Reducir el número de bits bits en en el campo de direcci dirección ón de la instrucción.
Los modos de direccionamiento se pueden dividi div idirr en siete siete grandes gran des gr gr up upos os qu quee son: son: 1. 2. 3. 4. 5. 6. 7.
Direccionami Direcci onamiento ento a reg r egis istro. tro. Direcci Di reccionami onamiento ento inmedi inmediato ato.. Direcci Di reccionami onamiento ento direc directo to.. Direcci Di reccionami onamiento ento indirecto indirecto a r eg egis istro. tro. Dirr ecci Di eccionamiento onamiento r el elativ ativo o a base. base. Direcci Di reccionami onamiento ento indexado indexado directo directo.. Direcci Di reccionami onamiento ento indexado indexado a base. 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.
En este modo se especifican los operandos en forma implícita en la definición definición de la instrucción. in strucción. Por ejemplo, la instrucción "complementar acumulador" es una instrucción de modo implícito porque el operando en el registro de acumulador acum ulador es esta ta implícito en en la definición definición de la instrucción. instr ucció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.
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 in strucción esta en modo de registro. 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 especif es pecificar icar cualquiera cu alquiera de 2 a la k r egis egistr tros os..
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 La ventaja de una un a instru in strucció cción 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.
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.
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 El control recuper r ecuperaa la instrucción instr ucció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 cuan tos modos de direccionamiento requ ieren que qu e 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 r egistro de CP CPU u tilizado en el calculo calcu lo puede pued e ser ser el contador conta dor 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.
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
direcc dire cció ión n inicial inicial del arr arreg eglo lo de dato datoss en en la memori memoria. a. Cada
operando del arreglo se almacena en la memoria en relación con la dirección inicial in icial.. La distancia entr en tree la direcci dir ección ón inicial in icial y la dirección dirección del operando operan do es el valor del índice almacenado en el registro de índice. Cualquier operando en el arr eg eglo lo puede acces accesarse arse con la misma misma instrucción instrucción siempre y cuando el registro índice contenga el valor de índice correcto.
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 for for mato de instrucció instru cción. n.
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 par a facilitar facilitar la localizaci localización ón de los pr programas ogramas en memoria.
Las instrucciones de un procesador se pueden agrupar en tres tipos: Instru Instruccio cciones nes de Tra ransfe nsferen rencia cia Instruccio cciones nes de Operación Instru Instru Instruccio cciones nes de Contr Contr ol
Como su su nombr nombree lo indica, este este grup gr upo o de instrucciones instr ucciones se se utiliza para efectuar transferencia de datos entre los registros de la CPU, CP U, la memor ia y los pu puer ertos tos de E/ E/ S.
Estas instr instrucciones ucciones se se emplean par p araa realizar r ealizar operaciones oper aciones ar aritméticas itméticas y lógicas entre los registros del procesador y la memoria. Estas operaciones incluyen suma, resta, incremento decremento, complemento, compar comparación ación y corr corr imiento.
En el lenguaje Ensamblador y en general en cualquier lenguaje de programación las instrucciones de control juegan un papel muy importante en el flujo flujo de un programa. p rograma. 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 instru ccio cciones nes es posible posible tomar el contr ol del flujo flujo del programa. progr ama.
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 fundamenta fund amentalmente lmente por la estabilidad estabilidad del gener generador ador de pulsos y por 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/ tempo rizador/ contado contadorr programa programable ble..
Los temporizadores se utilizan utilizan en h acer u na lis lista ta completa es prácticamente pr ácticamente impos imp osible ible,, pero per o algunos algun os ejemplos ejemplos de su su aplicació aplicación, n, nos ayudarán ayudar án a adentr a dentr ar arnos nos en en los entresijos entresijos de su diseño diseño y sacarle sacarle prov pr ovecho echo a sus potencialidades. potencialidades. Medición de tiempo División de frecuencia. Medición Medici ón de periodo y frecuencia Cont onteo eo de eventos Base de tiempo para otros periféricos USART PWM Watch Wat ch Dog
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: Los más comunes son aquellos que tienen 8 ó 16 bits, bits, determina determina la cantidad máxima de pulsos pulsos que se pueden contar. En general, los temporizadores pueden ser escritos o leídos por el procesador del microcontrolador. En algunos cas casos os,, donde donde el temporizad temporizador or está está vi vinculado nculado a algún algún periférico muy específico, esta opción puede no existir o estar limitada.
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. La forma típica es el conteo ascendente, sin embargo, embar go, exist existen en contadores conta dores con la opción de configurar configura r el modo de conteo, sea éste ascendente, descendente o de otro tipo específico. Permite es establec tablecer er cuan do se produce pr oduce el conteo, conteo, si en en el frente de subida del reloj o en en el frente de caída del mismo.
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. En la mayoría de casos, los temporizadores tienen interrr up inter upciones ciones asoc asociadas, iadas, con el objetivo objetivo de notificar al pr oces ocesador ador que ha ocurrido el cruce por cero o algún valor específico en el registro de conteo. Muchos microcontroladores tienen temporizadores especializados para trabajar de conjunto con algunos de sus periféricos, o para ser utilizados en aplicaciones específicas.
En el esquema simplificado podemos observar que el contador está es tá compuesto por tres tr es bloq bloques ues fun fundamen damentales tales::
es el el elemento elemento básico del del temporizador/ contador y su su misión es contar los pulsos del reloj. Hay dos propiedades esenciales a tener en cuenta, respecto a este componente: la cantidad de pulsos que puede p uede contar conta r y la pos p osibil ibilidad idad de contr olar el sentido del conteo, conteo, sea ascendente o descendente. 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. Se utilizan para notificar, a otro elemento del sistema, sobre el estado del temporizador o acerca de la ocurr encia de un dete determinado rminado evento. evento.
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 paraa igualar una par u na tarjeta lenta lenta o par ar el bus del sis sistema tema 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
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.
Tiempos de un es estado tado de espera par p araa ciclos ciclos de lectur lectur a o escritu escritura ra a memoria.
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 sig uiente pu puls lso, o, se se inserta u n estado de esper esperaa adici a dicional. onal. Par araa las operaciones de lectura lectur a y escritu escritura ra de E/ 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.
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.
Ocurren
cuando
un
dispositivo
necesita
atención
del
procesador y genera una señal eléctrica en la línea IRQ que tiene ti ene asig asignada. nada.
Est staa señal señal es es reco recogi gida da y proce processada por por el
controlador de excepciones
antes de ser enviada al
proces pr ocesador ador,, lo que puede r ealizarse de dos formas, formas, según según el tipo de interrupción sea enmascarable o no enmascarable. significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la señal de interrupción. significa que la interrupción no puede pue de
ser
deshab des habiilita tada da
porr po
softw so tware are..
Este
tipo ti po
de
interrupcione interr upcioness ocur ocurren ren cuando se recibe una señal en la patil patilla la del proce pr ocesador. sador.
También se denomina interrupción a las llamadas al sistema operativo mediante una instrucción, normalmente de Entr ntrada/ ada/ Sali alida. da. Una interrupción interrupción por soft software, ware, se prev prevéé en qué mo momento mento de la la ejecución de un programa sucederá. En general actúa de la siguiente manera: . Un Un pr p r ograma que qu e se venía ejecutan ejecutando do luego de su su instru in strucci cción ón I5, llama al Sistema Operativo, por ejemplo para leer un archivo de disco.
. 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 ha haya ya leído el disco disco y esté esté en memoria pr incipal dicho archivo, ar chivo, 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 Se ejecuta ejecuta la subru tina del SO SO que qu e prepara pr epara la lectura lectur a del disco. disco. . Luego de ejecutarse la subrutina del SO, y una vez que se haya leído el disco y verificado que la lectura es correcta, el SO ordenará reanu dar la ejecuci ejecución ón del programa au to interr interr umpido en espera. espera. . La La ejecución ejecución del programa progr ama se reanu r eanuda. da.
Con todo lo visto visto anterior ant erior se llega llega a la conclusión que qu e 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 investigacio inves tigaciones nes futur fu tur as.
http:// / ak http: akim impe pech. ch.iz izt. t.uam. uam.mx/ mx/ We Web_ b_jjr/ ami ami211.htm 211.htm http:/ / es es.wik .wikipedi ipedia. a.org/ org/ wiki wiki// Interr upci% upci%C C3% 3%B B3n http:// / sopa. http: opa.dis dis.ul .ulpgc pgc.e .es/ s/ ii ii-dso/ lecl leclinu inux/ x/ interr up upciones ciones// int_h int_har ard/ d/ LEC3_IN 3_INT T_H _HA ARD. D.pdf pdf http:// / sopa. http: opa.dis dis.ul .ulpgc pgc.e .es/ s/ ii ii-dso/ lecl leclinu inux/ x/ interr up upciones ciones// sy syste stem_call/ m_call/ LEC2_IN 2_INT T_S _SOF OFT T.pdf