Está en la página 1de 9

MTODOS DE DIRECCIONAMIENTO DEL PROCESADOR Y CONJUNTO DE INSTRUCCIONES

Direccionamiento de memoria
El direccionamiento de la memoria puede considerarse desde dos puntos de vista: Fsico y lgico. El primero se refiere a los medios electrnicos utilizados en el ordenador para acceder a las diversas posiciones de memoria. El segundo, a la forma en que se expresan y guardan las direcciones. El sistema de numeracin utilizado por los informticos para representar las direcciones de memoria en el texto escrito no suele ser la decimal (como parecera razonable), sino el hexadecimal La razn es que los nmeros hexadecimales guardan cierta concordancia con las potencias de 2. Por ejemplo, un bus de direcciones de 8 bits puede acceder a 256 posiciones (en hexadecimal es el rango 00-FFh). En caso de direcciones de 16 bits, se puede acceder 65.536 posiciones (es el rango 0000-FFFFh). El bus de direcciones del PC XT, que tiene 20 bits, las posibilidades son 1.048.576 (es el rango 00000-FFFFFh). Como veremos a continuacin, puede utilizarse una doble notacin: Direcciones absolutas, indicadas por un hexadecimal de cinco dgitos, en el rango 00000-FFFFFh, o en direcciones segmentadas, que utiliza dos grupos de cuatro dgitos hexadecimales.

DIRECCIONAMIENTO DE MEMORIA EN MODO PROTEGIDO.


El direccionamiento de memoria en modo protegido (a partir del 80286 y posteriores) permite acceder a datos y programas localizados por encima y dentro del primer megabyte de memoria. Para direccionar esta seccin extendida el sistema de memoria se requiere un cambio en el esquema de direccionamiento de segmento ms desplazamiento usado en el modo real. Cuando los datos y programa se direccionan la memoria extendida, se sigue utilizando la direccin de desplazamiento para acceder a la informacin en el segmento de memoria. Una diferencia consiste en la direccin del segmento ya que no existe en modo protegido. En lugar de una direccin de segmento, el registro de segmento contiene un SELECTOR que elige un descriptor de una tabla. El descriptor especifica la ubicacin del segmento en memoria, su longitud y sus derechos de acceso. Dado que el registro de segmento y la direccin de desplazamiento an acceden a la memoria, las instrucciones del modo protegido son idnticas a las de modo real. De hecho, la mayora de los programas escritos para funcionar en modo real funcionarn sin cambios en el modo protegido. La diferencia entre los dos modos es la forma en que el microprocesador interpreta el registro de segmento para acceder al segmento de memoria. Otra diferencia, en los 80386 y posteriores, es que en modo protegido la direccin de desplazamiento puede ser un nmero de 32 bits en vez de utilizar uno de 16 bits como en modo real. Es por esto que puede direccionar hasta 4 Gb de longitud.

El SELECTOR, ubicado en el registro del segmento, elige uno de 8192 descriptores en una de las dos tablas de descriptores. El DESCRIPTOR especifica la ubicacin, la longitud y los derechos de acceso del segmento de memoria, aunque no directamente como en el modo real. Por ejemplo, en el modo real, si CS=0008H, el segmento de cdigo inicia en la localidad 00080H. En modo protegido, este nmero de segmento puede direccionar cualquier localidad de memoria en todo el sistema para el segmento de cdigo. Existen dos tablas de descriptores utilizadas con los registros de segmentos: una contiene descriptores globales y otra, descriptores locales. Los descriptores globales contienen las definiciones de los segmentos que se aplican a todos los programas, mientras que los descriptores locales son generalmente exclusivos de una aplicacin. Podramos llamar descriptor de sistema a un descriptor global, y descriptor de aplicacin a uno local. Cada tabla de descriptores contendr 8192 entradas, por lo tanto una aplicacin podra disponer en cualquier momento de 16.384 descriptores. Puesto que un descriptor describe un segmento de memoria, esto permite que puedan ser descriptos hasta 16.384 segmentos de una aplicacin.

DIRECCIONAMIENTO DE MEMORIA EN TIEMPO REAL.


El modo real (tambin llamado modo de direccin real en los manuales de Intel) es un modo de operacin del 80286 y posteriores CPUs compatibles de la arquitectura x86. El modo real est caracterizado por 20 bits de espacio de direcciones segmentado (significando que solamente se puede direccionar 1 MB de memoria), acceso directo del software a las rutinas del BIOS y el hardware perifrico, y no tiene conceptos de proteccin de memoria o multitarea a nivel de hardware. Todos los CPUs x86 de las series del 80286 y posteriores empiezan en modo real al encenderse el computador; los CPUs 80186 y anteriores tenan solo un modo operacional, que era equivalente al modo real en chips posteriores. La arquitectura 286 introdujo el modo protegido, permitiendo, entre otras cosas, la proteccin de la memoria a nivel de hardware. Sin embargo, usar estas nuevas caractersticas requiri instrucciones de software adicionales no necesarias previamente. Puesto que una especificacin de diseo primaria de los microprocesadores x86 es que sean completamente compatibles hacia atrs con el software escrito para todos los chips x86 antes de ellos, el chip 286 fue hecho para iniciarse en ' modo real ' - es decir, en un modo que tena apagadas las nuevas caractersticas de proteccin de memoria, de modo que pudieran correr sistemas operativos escritos para microprocesadores ms viejos. Al da de hoy, incluso los ms recientes CPUs x86 se inician en modo real al encenderse, y pueden correr el software escrito para cualquier chip anterior. Bajo el modo real no existe ningn mecanismo para tener varias tareas ejecutndose concurrentemente, aunque si se pueden tener varios programas cargados en memoria al mismo tiempo, pero inactivos.

En el modo real se puede lograr un pequeo grado de multitarea si interceptamos algunos de los vectores de interrupcin que se ejecutan peridicamente, como el temporizador, e insertamos una rutina de usuario bajo esa interrupcin. Como puede verse, este tipo de multitarea no tiene ni punto de comparacin con la que ofrece el modo protegido del 80386. En el modo real no se puede controlar que un programa, por ejemplo, no pueda acceder a una zona especfica de memoria. Un programa en modo real puede acceder a cualquier direccin de memoria direccionable por el procesador, con lo que un programa maligno puede modificar estructuras del sistema operativo o redireccionar vectores de interrupcin y tener un control total sobre el sistema. Debido a esta escasa proteccin que se ofrece en el modo real, aparecen los temibles virus informticos y otros programas malignos. Tras conocer el modo protegido y haber trabajado con l, me atrevo a afirmar que es imposible realizar un virus para un sistema operativo que trabaje en modo protegido, siempre y cuando ese sistema operativo no deje ninguna puerta de entrada libre al usuario para controlar el sistema. Todas las interrupciones hardware y software son controladas por el procesador en el modo real leyendo de una tabla de interrupciones que se encuentran en las primeras posiciones de memoria fsica. Cuando se produce una interrupcin, se lee de la tabla anterior la direccin donde encontrar su rutina de tratamiento. Como cualquier programa pude acceder a cualquier direccin de memoria, pude manipular este rea de memoria e interceptar diversos vectores de interrupcin y apuntarlas a rutinas propias, con lo que cualquier programa puede controlar el sistema segn desee.

Instrucciones Del Procesador


Cada procesador tiene un conjunto de instrucciones que puede realizar. Por medio de stas se especifica el programa que queremos que ejecute el procesador. Este conjunto de instrucciones se le conoce como juego de instrucciones. Las mayora de las instrucciones estn formadas por dos partes: la operacin y los operandos. La operacin es la accin que debe realizarse. Los operandos son los elementos sobre los que se realizar sta accin. Por lo tanto, dependiendo de su tipo, las instrucciones pueden tener cero uno o ms operandos. Sin embargo en todas las instrucciones existe la operacin. Cada operacin est codificada mediante una secuencia binaria nica llamada cdigo de la operacin. Como los operandos son tambin secuencias binarias, cada instruccin se codifica mediante una secuencia de bytes: uno o ms para el cdigo de la operacin y cero, uno o ms para los operandos. Un programa donde sus instrucciones estn codificadas como secuencias binarias est en lenguajemquina. Para ilustrar lo anterior, supongamos un microprocesador bsico en el que los cdigos de operacin sean de un byte y los operandos sean tambin de un byte. Supongamos

tambin que el juego de instrucciones que tiene nuestro procesador bsico contiene entre otras, las instrucciones mostradas en la tabla.

TCNICAS DE SINCRONIZACIN DE DATOS


TEMPORIZACIN DEL SISTEMA
Reloj del sistema
El reloj de una computadora se utiliza para dos funciones principales: 1. Para sincronizar las diversas operaciones que realizan los diferentes subcomponentes del sistema informtico. 2. Para saber la hora. El reloj fsicamente es un circuito integrado que emite una cantidad de pulsos por segundo, de manera constante. Al nmero de pulsos que emite el reloj cada segundo se llama Frecuencia del Reloj. La frecuencia del reloj se mide en Ciclos por Segundo, tambin llamados Hertzios, siendo cada ciclo un pulso del reloj. Como la frecuencia del reloj es de varios millones de pulsos por segundo se expresa habitualmente en Megaherzios. El reloj marca la velocidad de proceso de la computadora generando una seal peridica que es utilizada por todos los componentes del sistema informtico para sincronizar y coordinar las actividades operativas, evitando el que un componente maneje unos datos

incorrectamente o que la velocidad de transmisin de datos entre dos componentes sea distinta. Cuanto mayor sea la frecuencia del reloj mayor ser la velocidad de proceso de la computadora y podr realizar mayor cantidad de instrucciones elementales en un segundo. El rango de frecuencia de los microprocesadores oscila entre los 4,77 megaherzios del primer PC diseado por IBM y los 200 megaherzios de las actuales computadoras basadas en los chips Intel Pentium. En mquinas de arquitectura Von Neumann la mayora de las operaciones son serializadas, esto significa que la computadora ejecuta los comandos en un orden preestablecido. Para asegurarnos de que todas las operaciones ocurren justo en el tiempo adecuado, las mquinas 80x86 utilizan una seal alternante llamada el reloj del sistema. En su forma bsica, el reloj del sistema maneja toda la sincronizacin de un sistema de cmputo. El reloj del sistema es una seal elctrica en el bus de control que alterna entre los valores de cero y uno a una tasa dada. La frecuencia en la cual el reloj del sistema alterna entre cero y uno es llamada frecuencia del reloj de sistema. El timepo que toma para cambiar de cero a uno y luego volver a cero se le llama periodo de reloj, tambin llamado ciclo de reloj. La frecuencia del reloj es simplemente el nmero de ciclos de reloj que ocurren en un segundo, en sistemas actuales, ste valor excede los 200 ciclos por segundo, siendo ya comn frecuencias del orden de los 366 Mhz. (MegaHertz, que equivale a un milln de ciclos por segundo). Observe que el periodo de reloj es el valor inverso de la frecuencia, por lo tanto, para un sistema de 200 Mhz el periodo es igual a 5 nanosegundos. Para asegurar la sincronizacin, el CPU inicia una operacin ya sea en el flanco ascendente (cuando la seal cambia de cero a uno) en el descendente (cuando la seal cambia de uno a cero). Como todas las operaciones de un CPU estn sincronizadas en torno a su reloj, un CPU no puede ejecutar operaciones ms rpido que la velocidad del reloj.

Acceso a memoria y el reloj del sistema


El acceso a memoria es probablemente la actividad ms comn de un CPU, se trata en definitiva de una operacin sincronizada al reloj del sistema, esto es, la lectura o escritura no puede ser ms rpida que un ciclo de reloj, de hecho, en muchos sistemas 80x86 el acceso a memoria toma varios ciclos de reloj. El tiempo de acceso a memoria es el nmero de ciclos de reloj que el sistema necesita para acceder a una ubicacin de memoria, este es un valor importante ya que a mayor nmero de ciclos menor desempeo. El tiempo de acceso a memoria es la cantidad de tiempo que transcurre desde que se solicita una operacin (sea de lectura escritura) y el tiempo en que la memoria completa dicha operacin. En procesadores de 5 Mhz (80x88, 80x86) el tiempo de acceso a memoria es de aproximadamente 800 ns. (nanosegundos), en cambio, un procesador de 50 Mhz (80x486) el tiempo es de aproximadamente 20 ns. El tiempo de acceso a memoria en el procesador 80x486 es casi 40 veces ms rpido que

en el caso del procesador 80x86 porque ste ltimo consume ms ciclos de reloj para el acceso a memoria adems del incremento en la velocidad de reloj. Los dispositivos de memoria presentan varias caractersticas pero las principales son su capacidad de almacenamiento y el tiempo de acceso. Una memoria de acceso aleatorio (RAM) tpica tiene una capacidad de 16 ms megabytes y un tiempo de acceso de 70 nanosegundos menos, con estos datos seguramente se estar preguntando cmo es posible que stas memorias relativamente lentas trabajan en procesadores mucho ms rpidos. La respuesta son los estados de espera. Un estado de espera es una seal que se coloca en el bus de control por parte del dispositivo de memoria para detener temporalmente el trabajo realizado por el CPU, como consecuencia utilizar uno o ms estados de espera tiene el mismo efecto que reducir proporcionalmente la velocidad de reloj, obviamente introducir estados de espera no es una opcin deseable por la reduccin en el desempeo del sistema. Los diseadores de hardware han encontrado un mecanismo que tiene un efecto similar a introducir estados de espera pero sin afectar notablemente el rendimiento de la computadora, a este mecanismo se le llama memoria cache ( se pronuncia "cash"). Una memoria cache es un dispositivo sin estados de espera que se encuentra construida como parte integral del CPU, fsicamente se encuentra entre el CPU y los mdulos de memoria RAM, su funcin es evitar la generacin de estados de espera por parte de los mdulos de memoria RAM y as aprovechar al mximo el rendimiento esperado por el CPU, sin embargo la memoria cache no es un dispositivo perfecto pues hay ocasiones en que no es posible colocar en memoria cache los datos que requiere el programa para ejecutarse forzando al sistema a leer dichos datos directamente de los mdulos de memoria RAM y por lo tanto generando estados de espera, cuando ocurre ste fenmeno se le llama prdida cache (cache miss), cuando tienen xito las operaciones en memoria cache se le llama xito cache (cache hit). Por lo general el radio entre xito y prdida en memoria cache est entre 85 y 90%. Este rendimiento disminuye al aumentar la cantidad de memoria cache y por esta razn la memoria cache es relativamente pequea, sus valores de almacenamiento oscilan entre 256 y 512 Kb.

ESTADOS DE ESPERA
Cuando se conectan tarjetas al bus de la PC, un problema comn es igualar la velocidad de los ciclos del bus con la de las tarjetas. Es comn que una tarjeta sea ms lenta que el bus. As, el bus de la PC esta diseado para resolver este problema. La seal 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. Como se mencion anteriormente, 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, automticamente inserta un pulso ocioso extra llamado TW. La seal READY se usa para insertar estados nuevos o adicionales de espera. Debido a

que los diferentes ciclos del bus requieren distintos tiempos, la seal READY se debe controlar de manera diferente.

Generacin 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 seal READY. La figura 22 ilustra las seales de tiempo necesarias para generar un estado de espera para un ciclo de lectura o escritura a memoria. Los circuitos de la tarjeta madre muestran la seal READY en el flanco de subida del tiempo T2. Esta seal 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 seal READY debe ser valida (activo bajo) 60 nanosegundos antes del flanco de subida de T2. Si la seal 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 tambin se usa la seal READY, y los tiempos son los mismos que para acceso a memoria, excepto que la seal READY se muestrea en T3.

INTERRUPCIONES HARDWARE
Durante la ejecucin de un programa, el procesador debe interactuar con una serie de dispositivos de entrada/salida: El teclado, las unidades de disco, los puertos serie y paralelo, la tarjeta de red, etc. Normalmente, la velocidad de procesamiento de estos dispositivos es inferior a la del procesador. As que el procesador tendr que esperar un tiempo para que el dispositivo se desocupe antes de hacerle una nueva solicitud. Cmo sabe el procesador que el dispositivo ya est listo para la nueva peticin?. Tambin, algunos dispositivos requieren la atencin del procesador en forma asncrona, es decir, no en forma peridica. Cmo sabe el procesador que el dispositivo requiere que se le atienda? Hay dos formas en que el procesador puede saber si el dispositivo est listo o si el dispositivo requiere atencin: La primera forma es que el procesador est peridicamente sondeando al dispositivo en cuestin. A fin de asegurarse de poder atender rpidamente a un dispositivo cuando se lo solicita, la frecuencia con el que procesador sondea a los dispositivos debe ser muy alta. Lo anterior produce que el procesador ocupa mucho tiempo interrogando a los dispositivos y en la mayora de las veces stos no estn listos o requieren de la atencin del procesador. La segunda forma, una ms eficiente, es hacer que sea el dispositivo el que le avise al procesador cuando est listo o requiera atencin, interrumpiendo al procesador. El procesador dejar de hacer lo que est haciendo para atender al dispositivo para posteriormente regresar a la tarea que estaba ejecutando antes de ser interrumpido. Los dispositivos utilizan una de las lneas del procesador para interrumpirlo. A este tipo de interrupcin se le conoce

como Interrupcin por Hardware. Para atender a un dispositivo el procesador ejecuta una rutina especial llamada Rutina de Servicio a Interrupciones. Las rutinas de servicio a interrupciones, por lo general, se cargan a la memoria RAM como parte del proceso de iniciacin de la computadora. Las interrupciones de cada dispositivo estn priorizadas de tal manera que si dos dispositivos desean interrumpir al procesador al mismo tiempo, slo la de mayor prioridad interrumpir al procesador.

INTERRUPCIONES SOFTWARE
Un programa escrito en un lenguaje de alto nivel utiliza funciones de la biblioteca estndar, provistas por el compilador empleado, para realizar la mayora de las tareas relacionadas con el manejo de los dispositivos de entrada y salida, y la gestin de los archivos y memoria. La mayora de dichas funciones hacen su trabajo mediante llamadas al sistema. Una llamada al sistema invoca a una rutina provista por el sistema operativo para realizar una tarea. En algunas ocasiones la funcin de biblioteca accesa directamente al hardware para realizar su tarea si es que no existe una rutina del sistema operativo o el desempeo de sta no es adecuado. Si el programa escrito en un lenguaje de alto nivel necesita realizar una tarea para la cual no existe una funcin de biblioteca o si el desempeo de sta no es adecuado, entonces puede ejecutar una llamada al sistema operativo para realizar dicha tarea. De igual manera, si el sistema operativo no provee de una rutina para ejecutar esa tarea o si el desempeo de sta no es adecuado, entonces el programa puede accesar directamente al hardware. Un programa escrito en ensamblador, normalmente no tiene a su disposicin una biblioteca de funciones estndar y por lo tanto para realizar las tareas relacionadas con el manejo de los dispositivos de entrada y salida, y la gestin de los archivos y memoria deber hacerlo mediante llamadas al sistema. Tambin puede accesar directamente al hardware para realizar su tarea si es que no existe una rutina del sistema operativo o el desempeo de sta no es adecuado. En la figura 8-1 se muestra como un programa puede acceder a las funciones de biblioteca, rutinas del sistema operativo y hardware para realizar una tarea que implica el manejo del hardware. Las flechas representan las llamadas a funciones de la biblioteca, llamadas al sistema o acceso directo al hardware.

También podría gustarte