Está en la página 1de 256

Arquitectura de computadoras

Unidad Temas 1 Modelo de arquitecturas de cmputo. Subtemas 1.1 Modelos de arquitecturas de cmputo. 1.1.1 Clsicas. 1.1.2 Segmentadas. 1.1.3 De multiprocesamiento. 1.2 Anlisis de los componentes. 1.2.1 CPU. 1.2.1.1 Arquitecturas. 1.2.1.2 Tipos. 1.2.1.3 Caractersticas. 1.2.1.4 Funcionamiento. 1.2.2 Memoria. 1.2.2.1 Arquitecturas. 1.2.2.2 Tipos. 1.2.2.3 Caractersticas. 1.2.2.4 Funcionamiento. 1.2.3 Dispositivos de I/O. 1.2.3.1 Arquitecturas. 1.2.3.2 Tipos. 1.2.3.3 Caractersticas. 1.2.3.4 Funcionamiento. 2.1 Buses. 2.1.1 Bus Local. 2.1.2 Bus de datos. 2.1.3 Bus de direcciones. 2.1.4 Bus de control. 2.1.5 Buses normalizados. 2.2 Direccionamiento. 2.2.1 Modo real. 2.2.2 Modo protegido. 2.2.3 Modo real virtual. 2.3 Temporizacin. 2.3.1 Reloj de sistema. 2.3.2 Reset del sistema. 2.3.3 Estados de espera. 2.4 Interrupciones de Hardware. 2.4.1 Enmascarable. 2.4.2 No-enmascarable. 2.5 Acceso Directo a memoria. 2.5.1 Sistema de video. 2.5.2 Sistema de discos. 2.5.3 Otras aplicaciones. 3 Seleccin de componentes para 3.1 Chip Set. 3.1.1 CPU.

Comunicacin interna en la computadora.

ensamble de equipos de cmputo.

3.1.2 Controlador del Bus. 3.1.3 Puertos de E/S. 3.1.4 Controlador de Interrupciones. 3.1.5 Controlador de DMA. 3.1.6 Circuitos de temporizacin y control. 3.1.7 Controladores de video. 3.2 Aplicaciones. 3.2.1 Entrada/ Salida. 3.2.2 Almacenamiento. 3.2.3 Fuente de alimentacin. 3.3 Ambientes de servicios. 3.3.1 Negocios. 3.3.2 Industria. 3.3.3 Comercio electrnico. 4.1 Arquitectura. 4.1.1 Terminales. 4.1.2 CPU. 4.1.3 Espacio de Memoria. 4.1.4 Entrada/ Salida. 4.1.5 Caractersticas especiales. 4.2 Programacin. 4.2.1 Modelo de programacin. 4.2.2 Conjunto de instrucciones. 4.2.3 Modos de direccionamiento. 4.2.4 Lenguaje ensamblador. 4.3 Aplicaciones. 4.3.1 Como sistema independiente. 4.3.2 Como subsistema de una computadora.

Microcontroladores.

Unidad 1. Modelo de arquitecturas de cmputo.


1.1 Modelos de arquitecturas de cmputo.
2 3 Tecnologas RISC y CISC:

RISC: (Reduced Instruction Set Computer) computadora de conjunto de instrucciones reducido Arquitectura de computadoras que ejecuta un nmero limitado de instrucciones. El concepto es que la mayora de los programas usan generalmente unas pocas instrucciones, y si se acelera la ejecucin de esas instrucciones bsicas, se mejora el rendimiento.

La arquitectura RISC elimina una capa de carga operativa llamada "microcdigo", que se emplea normalmente para facilitar la agregacin de nuevas y complejas instrucciones a una computadora. Las computadoras RISC poseen un pequeo nmero de instrucciones montadas en los circuitos de nivel inferior, que trabajan a mxima velocidad. Aunque las mquinas RISC son slo de un 15% a un 50% ms veloces que sus contrapartidas CISC CISC: (Complex Instruction Set Computer) Computadora de conjunto de instrucciones complejo Computadoras que poseen un conjunto de instrucciones muy extenso. Las mquinas CISC tienen de doscientas a trescientas instrucciones, que estn grabadas en microcdigo. http://www.monografias.com/trabajos/refercomp/refercomp.shtml

3.1.1 Clsicas.
El Concepto de von Neumann.
Los primeros computadores se programaban en realidad recablendolos. Esto prcticamente equivala a reconstruir todo el computador cuando se requera de un nuevo programa. La tarea era simplificada gracias a un panel de contactos (muy similar al de los primeros conmutadores telefnicos que eran atendidos por operadoras, y que hoy en da slo llegamos a ver en viajes pelculas en blanco y negro. Ver fig. 1) con el que era posible enlazar circuitos para crear secciones dedicadas a una actividad especficas. La programacin del computador se llevaba a cabo, literalmente, reconstruyndolo.

Fig 1.- ENIAC, primer computador electrnico y su panel de conexiones Mientras que el recablear al computador estableca una clara distincin entre los datos (representados por los estados o seales elctricas que sern mantenidas por los relevadores o a travs de los bulbos que conformaban al computador) y el programa (las conexiones que seran establecidas entre estos componentes del hardware) la labor de "programacin" requera sino del propio creador del computador si a un verdadero experto y conocedor de electrnica, principios de lgica digital y del problema mismo. Esto vino a cambiar con el concepto del programa almacenado, un concepto terico muy importante que fue establecido por el matemtico John von Neumann el 30 de junio de 1945 en un borrador sobre el diseo de la EDVAC. A diferencia de los primeros

computadores, von Neumann propona que tanto el programa como sus datos fueran almacenados en la memoria del computador. Esto no solo simplificaba la labor de programacin al no tener que llevar a cabo el recableado del computador sino que adems libraba y generalizaba el diseo del hardware para hacerlo independientede cualquier problema y enfocado al control y ejecucin del programa. Este concepto fue tan importante y decisivo que dio lugar al concepto de la arquitectura de von Neumann, an presente en nuestros das. La arquitectura de von Neumann se compone de tres elementos:
1. La Unidad Central de Procesamiento (CPU, por sus siglas en ingls), que es considerada como el cerebro y corazn del computador. Internamente consiste de una Unidad Aritmtico-Lgica (ALU), un conjunto de registros y una Unidad de Control (CU). La ALU es donde se realizan todas las operaciones que involucran un procesamiento matemtico (particularmente aritmtico) o lgico (operaciones booleanas). Los registros permiten el almacenammiento de datos para estas operaciones y sus resultados. En la CU es donde se ejecutan todo el resto de las operaciones (decisin, control, movimiento de datos). Una CPU con todos estos elementos implementada en un solo chip recibe el nombre de microprocesador. 2. La memoria, que es donde datos y programa es almacenado. La memoria puede ser visto como un arreglo unidimensional finito en la que cada localidad es identificada por un valor asociado a su posicin y que es comunmente llamado direccin. Existen diversos tipos de memoria, identificados por el tipo de tecnologa usada, aunque para un computador son generalmente clasificadas en dos grandes grupos por tipo de uso al que de destina. La memoria RAM (Random Access Memory, Memoria de Acceso Aleatorio) y que es aquella destinada al almacenamiento de datos y programas (incluyendo al sistema operativo), es considerada temporal o de tipo voltil ya que pierde si contenido cuendo el computador es apagadoo reinicializado. La memoria ROM es aquella de tipo permanente, aun cuando el computador sea desenergizado mantendr su contenido. Es usada principalmente para el almacenamiento de pequeos programas destinados a la adminsitracin bsica de recursos, especialmente de entrada y salida. 3. Las interfaces de entrada y salida (I/O). destinadas a liberar de trabajo a la CPU en la comunidacin con dispositivos de entrada (teclados, ratones), salida (impresoras) y entrada-salidas (discos, cintas).

Estos tres elementos estn interconectados a travs de un conjunto de lneas que llevan instrucciones (control bus), datos (data bus) y que permiten dar los valores de direcciones de memoria y dispositivos (memory bus).

Fig 2.- Esquema de la arquitectura de von Neumann. http://homepage.mac.com/eravila/computerII.html La arquitectura von Neumann se refiere a las arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las intrucciones como para los datos (a diferencia de la arquitectura Harvard). El trmino se acu en el documento First Draft of a Report on the EDVAC (1945), escrito por el conocido matemtico John von Neumann, que propuso el concepto de programa almacenado. Dicho documento fue redactado en vistas a la construccin del sucesor de la computadora ENIAC, y su contenido fue desarrollado por Presper Eckert, John Mauchly, Arthur Burks, y otros durante varios meses antes de que Von Neumann redactara el borrador del informe. Los ordenadores con arquitectura Von Neumann constan de cinco partes: La unidad aritmtico-lgica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.

Un ordenador con arquitectura von Neumann realiza o emula los siguientes pasos secuencialmente: 1. Obtiene la siguiente instruccin desde la memoria en la direccin indicada por el contador de programa y la guarda en el registro de instruccin. 2. Aumenta el contador de programa en la longitud de la instruccin para apuntar a la siguiente. 3. Descodifica la instruccin mediante la unidad de control. sta se encarga de coordinar el resto de componentes del ordenador para realizar una funcin determinada. 4. Se ejecuta la instruccin. sta puede cambiar el valor del contador del programa, permitiendo as operaciones repetitivas. El contador puede cambiar tambin cuando se cumpla una cierta condicin aritmtica, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmtica y lgica anteriores. 5. Vuelve al paso 1. Hoy en da, la mayora de ordenadores estn basados en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratn, teclado, etc). http://www.programacion.com/blogs/44_diario_de_un_profesor_de_informtica/a rchive/409_que_es_la_arquitectura_informtica.html

Arquitectura Harvard
El trmino Arquitectura Harvard originalmente se refera a las arquitecturas de computadoras que utilizaban dispositivos de almacenamiento fsicamente separados para las instrucciones y para los datos (en oposicin a la Arquitectura von Neumann). El trmino proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores.

Todas las computadoras constan principalmente de dos partes, la CPU que procesa los datos, y la memoria que guarda los datos. Cuando hablamos de memoria manejamos dos parmetros, los datos en s, y el lugar donde se encuentran almacenados (o direccin). Los dos son importantes para la CPU, pues muchas instrucciones frecuentes se traducen a algo as como "coge los datos de sta direccin y adelos a los datos de sta otra direccin" , sin saber en realidad qu es lo que contienen los datos. En los ltimos aos la velocidad de las CPUs ha aumentado mucho en comparacin a la de las memorias con las que trabaja, as que se debe poner mucha atencin en reducir el nmero de veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada instruccin ejecutada en la CPU requiere un acceso a la memoria, no se gana nada incrementando la velocidad de la CPU - este problema es conocido como 'limitacin de memoria'. Se puede fabricar memoria mucho ms rpida, pero a costa de un precio muy alto. La solucin, por tanto, es proporcionar una pequea cantidad de memoria muy rpida conocida con el nombre de cach. Mientras los datos que necesita el procesador estn en la cach, el rendimiento ser mucho mayor que si la cach tiene que obtener primero los datos de la memoria principal. La optimizacin de la cach es un tema muy importante de cara al diseo de computadoras. La arquitectura Harvard ofrece una solucin particular a este problema. Las instrucciones y los datos se almacenan en cachs separadas para mejorar el rendimiento. Por otro lado, tiene el inconveniente de tener que dividir la cantidad de cach entre los dos, por lo que funciona mejor slo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs, o procesador de seal digital, usados habitualmente en productos para procesamiento de audio y video. "http://es.wikipedia.org/wiki/Arquitectura_Harvard"
Arquitectura Harvard El procesador de los modernos microcontroladores responde a la arquitectura RISC (Computadores de Juego de Instrucciones Reducido), que se identifica por poseer un repertorio de instrucciones mquina pequeo y simple, de forma que la mayor parte de las instrucciones se ejecutan en un ciclo de instruccin. Otra aportacin frecuente que aumenta el rendimiento del computador es el fomento del paralelismo implcito, que consiste en la segmentacin del procesador (pipe-line), descomponindolo en etapas para poder procesar una instruccin diferente en cada una de ellas y trabajar con varias a la vez.

http://www.unicrom.com/Tut_PICs1.asp La arquitectura Harvard dispone de dos memorias independientes una, que contiene slo instrucciones y otra, slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias. Figura 1.3.

Figura 1.3. La arquitectura Harvard dispone de dos memorias independientes para datos y para instrucciones, permitiendo accesos simultneos. http://www.monografias.com/trabajos12/microco/microco.shtml
ARQUITECTURA HARVARD Arquitectura Harvard, que utiliza antememorias de instrucciones y datos separadas. Esta tcnica, denominada Arquitectura Harvard, en cierto modo contrapuesta a la idea de Von Newmann, ya que utiliza memorias cach separadas para cdigo y datos. Esto tiene algunas ventajas . ARQUITECTURA VECTORIAL El encadenamiento aumenta la velocidad de proceso, pero an se puede mejorar aadiendo tcnicas como el supersescalado. Esta tcnica permite hacer paralelas las mismas etapas sobre instrucciones diferentes. Un procesador superescalar puede ejecutar ms de una instruccin a la vez. Para sto es necesario que existan varias unidades aritmtico-lgicas, de punto flotante y de control. El proceso que sigue el micro es transparente al programa, aunque el compilador puede ayudar analizando el cdigo y generando un flujo de instrucciones optimizado. Veamos cmo se ejecutaran las instrucciones en un procesador superescalar de que tiene duplicadas las subunidades que lo componen:

Aunque esto mejora la velocidad global del sistema, los conflictos de datos crecen. Si antes las instrucciones se encontraban muy prximas, ahora se ejecutan simultaneamente. Esto hace necesario un chequeo dinmico para detectar y resolver los posibles conflictos.

ARQUITECTURA PIPE-LINE Paralelismo Temporal: Pipe-Line Lineal La arquitectura pipe-line se aplica en dos lugares de la maquina, en la CPU y en la UAL. Veamos en que consiste el pipe-line y tratemos de entender porque el pipe-line mejora el rendimiento de todo el sistema.

Veamos una CPU no organizada en pipe-line:

Si se trata de una instruccin a ser ejecutada por la ALU podemos decir que la CPU realiza a lo largo del ciclo de maquina estas 5 tareas. Una vez que termina de ejecutar una instruccin va a buscar otra y tarda en ejecutarla un tiempo T, es decir cada T segundos ejecuta una instruccin. Qu sucede si dividimos en 5 unidades segn las 5 cosas que realiza la CPU?

Supongamos la CPU dividida en 5 unidades, de tal forma que c/u tarde lo mismo en realizar su partecita. Es decir c/u tardar T/5. Para que una instruccin se ejecute se necesita T segundos entonces para que usar pipe-line. Si ocurre esto en una CPU normal a una con pipe-line, la cantidad de instrucciones que se hacen por segundo aumenta, es decir aumenta el flujo de instrucciones que se ejecutan por segundo.

http://html.rincondelvago.com/computadores_arquitectura-harvard-pipelinevectorial.html
Arquitectura PIPE-LINE. Ya hemos mencionado que una de las formas de lograr operaciones concurrentes en un procesador se utilizan dos tcnicas bsicas: paralelismo y pipelining. El paralelismo consegua la concurrencia multiplicando la estructura del hardware tantas veces como sea posible, de modo que las diferentes etapas del proceso se ejecuten simultneamente. Pipelining consiste en desdoblar la funcin a realizarse en varias partes, asignndole al hardware correspondiente a cada una de las partes tambin llamadas etapas. As como el agua fluye a travs de una tubera (pipeline) las instrucciones o datos fluyen a travs de las etapas de un computador digital pipeline a una velocidad que es independiente de la longitud de la tubera (numero de etapas del pipeline) y depende solamente de la velocidad a la cual los datos e instrucciones pueden ingresar al pipeline. Esta velocidad a su vez depende del tiempo que tarde el dato en atravesar una etapa. Este tiempo puede ser significativo ya que el computador no solo desplaza los datos o instrucciones de etapa en etapa sino que en cada una de ellas se realiza alguna operacin sobre los mismos. Como ejemplo en el caso de las instrucciones tendremos operaciones de bsqueda, decodificacin y ejecucin. Pipeline Fsico:

Pipeline digital. Mientras un tem en particular fluye a travs del pipeline, ste ocupa slo una etapa por vez. A medida que transcurre el tiempo la etapa que quedo vacante por un tem, ser ocupada por el siguiente. Este uso concurrente de diferentes etapas por diferentes tems se lo conoce por solapamiento. El resultado neto es que la mxima velocidad a la cual los nuevos tems pueden ingresar al pipeline depende exclusivamente del tiempo mximo requerido para atravesar una etapa y no del nmero de stas. La utilizacin del pipeline se traduce en una mejora del comportamiento o performance del procesador. Si una funcin se lleva a cabo en T segundos en un procesador de diseo convencional, al utilizar un procesador pipeline de N etapas esa misma funcin podr realizarse en T/N segundos. Esto a nivel terico, ya que la mejora de performance depender de la cantidad de operaciones que puedan estructurarse en pipeline y tambin de calidad de la particin o subdivisin de cada una de esas operaciones. La estructuracin en pipeline de un procesador se realiza en diferentes niveles como aritmtica de punto flotante, ciclo de instruccin, procesador de entrada/salida, etc. Esta divisin o particin de una funcin en varias subfunciones se podr realizar si se dan las siguientes condiciones: 1. La evaluacin de la funcin bsica es equivalente a la evaluacin secuencial de las subfunciones que la constituyen. 2. Las entradas a una subfuncin provienen nicamente de las salidas de subfunciones previas en la secuencia de evaluacin.

3. Excepto el intercambio de entradas y salidas no existe otra vinculacin entre las subfunciones. 4. Debe disponerse del hardware necesario para la evaluacin de dichas subfunciones. 5. El tiempo requerido por estas unidades de hardware para evaluar las subfunciones es aproximadamente el mismo. Este hardware mencionado en el punto 4 es el correspondiente o asociado con las distintas etapas del pipeline. A diferencia del pipeline fsico (tubera), el digital no maneja los datos en forma continua. Este maneja los datos en forma interrumpida y los va desplazando de etapa en etapa sincronizando con un reloj. Dado que la lgica que realiza el procesamiento en cada etapa generalmente carece de memoria y dado el carcter discontinuo de la aparicin de los datos en las etapas se impone la utilizacin de un elemento de memoria en la entrada y salida de cada etapa. De esta manera, bajo el control del reloj asociado a cada elemento de memoria, evitamos que los datos ingresen a una etapa antes que haya finalizado el proceso anterior.

Pipeline vs. Solapamiento.


Los conceptos de pipelining y solapamiento tienen significados parecidos pero no son equivalentes, pese a que en algunos casos se los utiliza indistintamente. Ambos se basan en la idea de particin o subdivisin de una funcin, pero se aplican en distintos entornos. Se dice que podr existir pipeline cuando se den las siguientes condiciones: 1. Cada evaluacin de la funcin bsica es independiente de las anteriores. 2. Cada evaluacin requieren aproximadamente la misma secuencia de subfunciones. 3. Cada subfuncin se encadena perfectamente con las anterior. 4. Los tiempos utilizados para evaluar las distintas subfunciones son aproximadamente iguales. Solapamiento se podr utilizar cuando se den las siguientes condiciones: 1. Existe dependencia entre las distintas evaluaciones. 2. Cada evaluacin puede requerir una secuencia diferente de subfunciones. 3. Cada subfuncin tiene un propsito distinto. 4. El tiempo por etapa no es necesariamente constante, sino que depende de la etapa y de los datos que la atraviesan. En muchos casos el pipeline propiamente dicho y que detallamos en primer lugar se lo suele llamar sincrnico o esttico, por otra parte el solapamiento se lo suele llamar pipeline asincronico o dinmico. Un ejemplo de pipeline esttico es el de una unidad destinada a realizar sumas en punto flotante sobre datos provenientes de otra unidad. Aqu la funcin bsica, suma en punto flotante es relativamente simple, el resultado de una sumo depende del anterior, prximo o de cualquier otro. Adems una vez que se realiz la particin, todas las sumas siguen la misma secuencia. El ejemplo ms simple de solapamiento o pipeline dinmico se da en un procesador donde la entrada/salida es manejada por un procesador, los cmputos por otro y la comunicacin se realiza a travs de un modulo de memoria comn. La realizacin de una funcin en este procesador alternara entre el procesador de computo y el de entrada/salida.

En otros casos la evaluacin de una funcin slo requerira de un procesador. En este caso vemos

que las distintas operaciones estn menos sincronizadas que en el caso del sumador en punto flotante. La participacin de la funcin bsica vara dinmicamente y an el tiempo empleado en cada etapa es difcil de predecir. Otro ejemplo de operacin por solapamiento es el de ejecucin de instrucciones de CPU's de alta velocidad. En este caso el hardware podr estar dividido en un nmero fijo de etapas como en el caso del sumador de punto flotante, pero de acuerdo con las diferencias de formato de las instrucciones cada una puede desarrollar un camino diferente a travs del pipeline. Pipeline en maquinas SISD. Dependencia entre instrucciones y riesgos. En una maquina secuencial clsica todas las operaciones que involucran la ejecucin de una instruccin se completan antes que comience la prxima. En el caso de las maquinas SISD podemos intentar realizar pipeline a nivel de ejecucin de instrucciones. Esto consistir en solapar la ejecucin de las mismas de manera que algunas de las operaciones necesarias para las instrucciones i+1, i+2, .... puedan realizarse antes que finalice la ejecucin de la instruccin i. Puede ocurrir que las operaciones realizadas por i+1, i+2, dependan de los resultados de i que an no fue completada. Esta dependencia entre instrucciones crea riesgos que deben evitarse y resolverse. Se reconocen tres clases de riesgos, read-after-write, write-after-read y write-after-write. Veamos las diferencias considerando este segmento de cdigo de programa: Almacenar en x Sumar x Almacenar en x Almacenar en x El riesgo read-after-write entre dos instrucciones i y j (siendo j posterior a i) se presentara cuando j trata de leer un operando que es modificado por i. Si la operacin en i que modifica el operando no se completa antes que j lo acceda, entonces j leer el valor errneo. En el ejemplo el riesgo existir entre el primer almacenar en x y el sumar x, si el sumar x extrae el operando antes que haya sido actualizado por almacenar. El write-after-read ocurre cuando la instruccin j desea modificar un operando que es ledo por i. Si j modifica el operando antes que i lo haya ledo, este dato as ledo ser errneo. Este riesgo puede existir entre el sumar y el segundo almacenar en x. Finalmente el write-after-write existe cuando i y j tratan de actualizar el mismo operando, en el caso que j lo haga en primer lugar. En nuestro ejemplo se el segundo almacenar se realiza despus del tercero, obviamente el valor en x no es el que el programa espera.

3.1.2 Segmentadas. 3.1.3 De multiprocesamiento. 3.2 Anlisis de los componentes. 3.2.1 CPU.
Unidad central de proceso o UCP (conocida por sus siglas en ingls, CPU), circuito microscpico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el proceso de datos en las computadoras. Generalmente, la CPU

es un microprocesador fabricado en un chip, un nico trozo de silicio que contiene millones de componentes electrnicos. El microprocesador de la CPU est formado por una unidad aritmtico-lgica que realiza clculos y comparaciones, y toma decisiones lgicas (determina si una afirmacin es cierta o falsa mediante las reglas del lgebra de Boole); por una serie de registros donde se almacena informacin temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar rdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a travs de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y los dispositivos de salida (por ejemplo, un monitor o una impresora). Los factores relevantes de los chips de UCP son: Compatibilidad: No todo el soft es compatible con todas las UCP. En algunos casos se pueden resolver los problemas de compatibilidad usando software especial. Velocidad: La velocidad de una computadora est determinada por la velocidad de su reloj interno, el dispositivo cronomtrico que produce pulsos elctricos para sincronizar las operaciones de la computadora. Las computadoras se describen en funcin de su velocidad de reloj, que se mide en mega hertz. La velocidad tambin est determinada por la arquitectura del procesador, es decir el diseo que establece de qu manera estn colocados en el chip los componentes individuales de la CPU. Desde la perspectiva del usuario, el punto crucial es que "ms rpido" casi siempre significa "mejor". El Procesador: El chip ms importante de cualquier placa madre es el procesador. Sin el la computadora no podra funcionar. A menudo este componente se determina CPU, que describe a la perfeccin su papel dentro del sistema. El procesador es realmente el elemento central del proceso de procesamiento de datos. Los procesadores se describen en trminos de su tamao de palabra, su velocidad y la capacidad de su RAM asociada. Tamao de la palabra: Es el nmero de bits que se maneja como una unidad en un sistema de computacin en particular. Velocidad del procesador: Se mide en diferentes unidades segn el tipo de computador: MHz (Megahertz): para microcomputadoras. Un oscilador de cristal controla la ejecucin de instrucciones dentro del procesador. La velocidad del procesador de una micro se mide por su frecuencia de oscilacin o por el nmero de ciclos de reloj por segundo. El tiempo transcurrido para un ciclo de reloj es 1/frecuencia. MIPS (Millones de instrucciones por segundo): Para estaciones de trabajo, minis y macrocomputadoras. Por ejemplo una computadora de 100 MIPS puede ejecutar 100 millones de instrucciones por segundo.

FLOPS (floating point operations per second, operaciones de punto flotante por segundo): Para las supercomputadoras. Las operaciones de punto flotante incluyen cifras muy pequeas o muy altas. Hay supercomputadoras para las cuales se puede hablar de GFLOPS (Gigaflops, es decir 1.000 millones de FLOPS). Capacidad de la RAM: Se mide en trminos del nmero de bytes que puede almacenar. Habitualmente se mide en KB y MB, aunque ya hay computadoras en las que se debe hablar de GB.
http://www.monografias.com/trabajos12/comptcn/comptcn.shtml#UCP

3.2.1.1

Arquitecturas.

Arquitectura interna del CPU La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta velocidad llamada registro. Algunos de los registros estn dedicados al control, y solo la unidad de control tiene acceso a ellos. Los registros restantes son los registros de uso general y el programador es el usuario que tiene acceso a ellos. Dentro del conjunto bsico de registros de control se deben incluir a los siguientes: Contador de programa (PC). Registro de direcciones de la memoria (MAR). Registro de datos (RD). Registro de instrucciones (ER). Palabra de estado de programa (PSW). (PC): La funcin del PC consiste en seguir la pista de la instruccin por buscar (capturar) en el siguiente ciclo de maquina, por lo tanto contiene la direccin de la siguiente instruccin por ejecutar. El PC es modificado dentro del ciclo de bsqueda de la instruccin actual mediante la suma de una constante. El numero que se agrega al PC es la longitud de una instruccin en palabras. Por lo tanto, si una instruccin tiene una palabra de longitud se agrega 1 al PC, si una instruccin tiene dos palabras de largo se agrega 2, y as sucesivamente. Registro de direcciones de la memoria (MAR): funciona como registro de enlace entre la CPU y el canal de direcciones. Cuando se logra el acceso a la memoria la direccin es colocada en el MAR por la unidad de control y ah permanece hasta que se completa la transaccin. El numero de bit que hay en el MAR es igual al del canal de direcciones. La diferencia que existe entre el PC y el MAR es que durante el ciclo de ejecucin de una instruccin, el PC y el MAR sirven al mismo fin. Sin embargo, muchas de las instrucciones de la maquina hacen referencia a la memoria y operan con los datos que estn en ella. Como la direccin de los datos suele ser diferente de la instruccin siguiente se necesita el MAR.

Registro de datos: la funcin del RD consiste en proporcionar un rea de almacenamiento temporal (memoria intermedia, acumulada o buffer) de datos que se intercambian entre la PCU y la memoria. Los datos pueden ser instrucciones (obtenidos en el ciclo de ejecucin) o datos del operando (obtenidos en el ciclo de ejecucin). Debido a su conexin directa con el canal de datos el RD contiene el mismo numero de bit que dicho canal. Registro de instrucciones (ER): es un registro que conserva el cdigo de operacin de la instruccin en todo el ciclo de la maquina. El cdigo es empleado por la unidad de control de la CPU para generar las seales apropiadas que controla le ejecucin de la instruccin. La longitud del ER es la longitud en bit del cdigo de operacin. Palabra de estado de programa (PSW): la palabra de estado o condicin de programa almacena informacin pertinente sobre el programa que este ejecutndose. Por ejemplo al completarse una funcin de la unidad aritmtica lgica se modifica un conjunto de bit llamados cdigos (o seales de condicin). Estos bit especifican si el resultado de una operacin aritmtica fue 0 o negativo o si el resultado se desbord. El programa puede verificar estos bit en las instrucciones siguientes cambiar en forma condicional su flujo de control segn su valor. Adems el PSW contiene bit que hacen posible que la computadora responda a solicitudes de servicio asincrnicas generadas por dispositivos de Entrada-Salida, o condiciones de error interno. Estas seales se denominan interrupciones. Los registros restantes que se pueden encontrar en un microprocesador son de uso general. Estos se utilizan para almacenar informacin en forma temporal. Tambin retienen operandos que participan en operaciones de la ULA. Algunas veces el conjunto de instrucciones de la computadora y el esquema de direccionamiento de la arquitectura restringe el uso de alguno de estos registros. Si bien en todas las maquinas la informacin contenida en el registro puede manipularse como datos ordinarios durante la ejecucin de algunas instrucciones los datos se utilizan en forma explcita para decidir una direccin de la memoria. La ventaja de usar registros para retener datos de operaciones es la velocidad. http://html.rincondelvago.com/arquitectura-interna-de-la-cpu.html

Elementos que la componen


1. Unidad de control: controla el funcionamiento de la CPU y por tanto de el computador. 2. Unidad aritmtico-lgica (ALU): encargada de llevar a cabo las funciones de procesamiento de datos del computador. 3. Registros: proporcionan almacenamiento interno a la CPU. 4. Interconexiones CPU: Son mecanismos que proporcionan comunicacin entre la unidad de control, la ALU y los registros. Unidad de Control.

La Unidad de Control (UC) coordina la actividad de todos los elementos que deben intervenir en un proceso concreto. Dirige todas las seales elctricas del ordenador, es decir, es responsable del correcto funcionamiento de todos los componentes de la CPU. De esta forma, debe gobernar el funcionamiento de los perifricos de entrada, salida y almacenamiento, al mismo tiempo que el acceso a la memoria principal y la ALU. Por esta razn la UC es la encargada de interpretar el programa, del que recibe las instrucciones codificadas convenientemente, as como de enviar las rdenes oportunas a las unidades perifricas implicadas. La UC utiliza una seal generada por un reloj interno con objeto de sincronizar el funcionamiento operativo de cada elemento. Esta tarea es fundamental, ya que, en caso contrario, no podra establecerse un ritmo de operacin adecuado que controle la velocidad de trabajo de cada componente. Se comprende fcilmente que la mayor o menor frecuencia del reloj interno, determinar la capacidad de hacer un nmero mayor o menor de instrucciones por segundo. Esta velocidad se suele medir actualmente en gigahertzios (GHz). No todas las instrucciones que tenga que ejecutar la UC consumen el mismo nmero de seales generadas por el reloj, sino que las instrucciones complejas necesitarn ms ciclos que las instrucciones simples. En cualquier caso, la UC se encargar de las siguientes funciones:

Determinar si el ordenador est en fase de introduccin o en fase de ejecucin de programa. En el primer caso, la UC activa la unidad de entrada de datos y controla que las sucesivas instrucciones que componen el programa vayan siendo almacenadas en posiciones contiguas de memoria. En la fase de ejecucin del programa, la UC decodifica la primera instruccin del programa y segn el tipo de instruccin pide su ejecucin al dispositivo adecuado: las entradas y salidas a los perifricos y las operaciones aritmticas y lgicas a la ALU. Decodificar la instruccin en curso y, segn su cdigo de operacin, mandar una seal para que acte la Unidad Aritmtico-Lgica o una Unidad de entrada o de salida. Verificar la transferencia de informacin entre los registros y la memoria principal y viceversa. Controlar qu instruccin se est ejecutando en cada momento y qu instruccin deber seguirle a continuacin.

Unidad Aritmtico-Logica. La Unidad Aritmtico-Lgica (ALU, Arithmetic-Logical Unit) es la encargada de ejecutar las operaciones aritmticas bsicas (suma, resta, multiplicacin y divisin) y lgicas (AND, OR, NOT). Slo con estas operaciones bsicas es procesada toda la informacin y se obtienen los resultados. Los datos sobre los que opera esta unidad provienen de la memoria principal y pueden estar almacenados temporalmente en algunos registros internos de la propia unidad. La UC se encarga de enviarle los datos correspondientes e indicarle qu operacin tiene que realizar.

3.2.1.2
Tipos

Tipos.

Bsicamente nos encontramos con dos tipos de diseo de los microprocesadores: RISC (Reduced-Instruction-Set Computing) y CISC (complex-instruction-set computing). Los microprocesadores RISC se basan en la idea de que la mayora de las instrucciones para realizar procesos en el computador son relativamente simples por lo que se minimiza el nmero de instrucciones y su complejidad a la hora de disear la CPU. Algunos ejemplos de arquitectura RISC son el SPARC de Sun Microsystems, el microprocesador Alpha diseado por la antigua Digital, hoy absorbida por Compaq y los Motorola 88000 y PowerPC. Estos procesadores se suelen emplear en aplicaciones industriales y profesionales por su gran rendimiento y fiabilidad. Los microprocesadores CISC, al contrario, tienen una gran cantidad de instrucciones y por tanto son muy rpidos procesando cdigo complejo. Las CPUs CISC ms extendidas son las de la familia 80x86 de Intel cuyo ltimo micro es el Pentium II. ltimamente han aparecido otras compaas como Cirix y AMD que fabrican procesadores con el juego de instrucciones 80x86 y a un precio sensiblemente inferior al de los microprocesadores de Intel. Adems, tanto Intel con MMX como AMD con su especificacin 3D-Now! estn apostando por extender el conjunto de instrucciones de la CPU para que trabaje ms eficientemente con tratamiento de imgenes y aplicaciones en 3 dimensiones.

3.2.1.3

Caractersticas.

La CPU ha de cumplir dos caractersticas bien definidas: 1. Ser capaz de reconocer y ejecutar una serie de instrucciones elementales (programa) en base a las cuales se puede realizar cualquier proceso de datos deseado, por complejo que sea. 2. Tener separados dos estados diferentes. En una primera fase ha de poder recibir y memorizar las instrucciones que configuran el proceso pedido (introduccin del programa) y en segunda fase debe ejecutar en secuencia las instrucciones recibidas (ejecucin del programa). Al realizar esta ejecucin se leern los datos que se necesiten a travs de un dispositivo de entrada de datos en el momento en que sean requeridos, realizando las operaciones que forman el proceso hasta la obtencin de los resultados, los cuales sern enviados al usuario a travs de un dispositivo de salida.

3.2.1.4
Funciones que realiza

Funcionamiento.

La Unidad central de proceso o CPU, se puede definir como un circuito microscpico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el proceso de datos en los ordenadores. Habitualmente, la CPU es un microprocesador fabricado en un

chip, un nico trozo de silicio que contiene millones de componentes electrnicos. El microprocesador de la CPU est formado por una unidad aritmtico-lgica que realiza clculos y comparaciones, y toma decisiones lgicas (determina si una afirmacin es cierta o falsa mediante las reglas del lgebra de Boole); por una serie de registros donde se almacena informacin temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar rdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a travs de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y los dispositivos de salida (por ejemplo, un monitor o una impresora).

3.2.2 Memoria.
Se denomina memoria a los circuitos que permiten almacenar y recuperar la informacin. En un sentido ms amplio, puede referirse tambin a sistemas externos de almacenamiento, como las unidades de disco o de cinta. Memoria de acceso aleatorio o RAM (Random Access Memory) es la memoria basada en semiconductores que puede ser leda y escrita por el microprocesador u otros dispositivos de hardware. El acceso a las posiciones de almacenamiento se puede realizar en cualquier orden. Los chips de memoria son pequeos rectngulos negros que suelen ir soldados en grupos a unas plaquitas con "pines" o contactos. La diferencia entre la RAM y otros tipos de memoria de almacenamiento, como los disquetes o los discos duros, es que la RAM es muchsimo ms rpida, y que se borra al apagar el ordenador, no como stos.

El interior de cada chip se puede imaginar como una matriz o tabla, en la cual cada celda es capaz de almacenar un bit. Por tanto, un bit se puede localizar directamente proporcionando una fila y una columna de la tabla. En realidad, la CPU identifica cada celda mediante un nmero , denominado direccin de memoria. A partir de una direccin, se calcula cul es la fila y columna correspondiente, con lo que ya se puede acceder a la celda deseada. El acceso se realiza en dos pasos: primero se comunica la fila y luego la columna, empleando los mismos terminales de conexin. Obviamente, esta tcnica (denominada multiplexado) permite emplear menos terminales de conexin para acceder a la RAM, lo que optimiza la relacin entre el tamao del chip y la capacidad de almacenamiento. Realmente, la CPU no suele trabajar con bits independientes, sino ms bien con agrupaciones de los mismos en forma de palabras binarias. Esto hace que la RAM no se presente en un solo chip, sino ms bien en agrupaciones de los mismos.
Hemos de tener muy en cuenta que esta memoria es la que mantiene los programas funcionando y abiertos, por lo que al ser Windows 95/98 un sistema operativo multitarea, estaremos a merced de la cantidad de memoria RAM que tengamos dispuesta en el ordenador. En la actualidad hemos de disponer de la mayor cantidad posible de sta, ya que estamos supeditados al funcionamiento ms rpido o ms lento de nuestras aplicaciones diarias. La memoria RAM hace unos aos era muy cara, pero hoy en da su precio ha bajado considerablemente. Cuando alguien se pregunta cunta memoria RAM necesitar debe sopesar con qu programas va a trabajar normalmente. Si nicamente vamos a trabajar con aplicaciones de texto, hojas de clculo y similares nos bastar con unos 32 Mb de sta (aunque esta cifra se ha quedado bastante corta), pero si trabajamos con multimedia, fotografa, vdeo o CAD, por poner

un ejemplo, hemos de contar con la mxima cantidad de memoria RAM en nuestro equipo (unos 128 Mb o ms) para que su funcionamiento sea ptimo, ya que estos programas son autnticos devoradores de memoria. Hoy en da no es recomendable tener menos de 64 Mb, para el buen funcionamiento tanto de Windows como de las aplicaciones normales, ya que notaremos considerablemente su rapidez y rendimiento, pues generalmente los equipos actuales ya traen 128 Mb de RAM.

3.2.2.1

Arquitecturas.

Elementos que la componen Una memoria vista desde el exterior, tiene la estructura mostrada en la figura 3-1. Para efectuar una lectura se deposita en el bus de direcciones la direccin de la palabra de memoria que se desea leer y entonces se activa la seal de lectura (R); despus de cierto tiempo (tiempo de latencia de la memoria), en el bus de datos aparecer el contenido de la direccin buscada. Por otra parte, para realizar una escritura se deposita en el bus de datos la informacin que se desea escribir y en el bus de direcciones la direccin donde deseamos escribirla, entonces se activa la seal de escritura (W), pasado el tiempo de latencia, la memoria escribir la informacin en la direccin deseada. Internamente la memoria tiene un registro de direccin (MAR, memory address register), un registro buffer de memoria o registro de datos (MB, memory buffer, o MDR, memory data register) y, un decodificador como se ve en la figura 3-2. Esta forma de estructurar la memoria se llama organizacin lineal o de una dimensin. En la figura cada lnea de palabra activa todas las clulas de memoria que corresponden a la misma palabra.

Por otra parte, en una memoria ROM programable por el usuario con organizacin lineal, las uniones de los diodos correspondientes a lugares donde deba haber un "0" deben destruirse. Tambin se pueden sustituir los diodos por transistores y entonces la clula de memoria tiene el esquema de la figura 3-3 en este caso la unin que debe destruirse para grabar un "0" es la del emisor.

En el caso de una memoria RAM esttica con organizacin lineal cada clula de memoria toma la forma mostrada en la figura 3-4. En este esquema las primeras puertas AND slo son necesarias en el una de las clulas de cada palabra. Se debe comentar la necesidad de la puerta de tres estados a la salida del biestable: esta puerta se pone para evitar que se unan las salidas de los circuitos de las clulas de diferentes palabras a travs del hilo de bit. Si esa puerta no se pusiera (o hubiera otro tipo de puerta en su lugar, como una puerta AND) la informacin correspondiente a la palabra activa entrara por los circuitos de salida de las dems clulas, lo que los daara. Organizar 1a memoria de esta forma, tiene el inconveniente de que la complejidad del decodificador crece exponencialmente con el nmero de entradas y, en una memoria de mucha capacidad, la complejidad del decodificador la hace inviable. Esto hace necesaria una alternativa que simplifique los decodificadores. Esta alternativa la constituye la organizacin en dos dimensiones en que los bits del registro de direccin se dividen en dos partes y cada una de ellas va a un decodificador diferente. En este caso, las lneas procedentes de ambos decodificadores (X e Y) se cruzan formando un sistema de coordenadas en que cada punto de cruce corresponde a una palabra de memoria. Dado que en cada decodificador slo se activa una lnea, slo se activar la palabra correspondiente al punto de cruce de las dos lneas activadas. Fcilmente se puede comprender que los decodificadores se simplifican mucho ya que cada uno tiene la mitad de entradas que en el caso anterior. Hay que decir, sin embargo, que la clula de memoria se complica un poco porque hay que aadir una puerta AND en cada palabra para determinar si coinciden las lneas X e Y.

La organizacin de la memoria en dos dimensiones tambin es til para las memorias dinmicas ya que el refresco de estas memorias se realiza por bloques y stos pueden coincidir con una de las dimensiones (la que corresponda a los bits de direccin de mayor peso). En la prctica, las memorias dinmicas son ms lentas que las estticas y adems son de lectura destructiva, pero resultan ms baratas, aunque necesiten circuitos de refresco, si la memoria no es de mucha capacidad.

3.2.2.2

Tipos.

Tipos y Funcionamiento Todas hacen la misma funcin, pero entre ellas las diferenciamos por el tiempo de acceso y la capacidad, o por el modo como trabajan: Registros del microprocesador: Interaccionan continuamente con la CPU, puesto que forman parte de ella, su tiempo de acceso es muy pequeo y una capacidad mnima, normalmente igual a la "palabra" del microprocesador (de 1 a 8 bytes). Registros intermedios: Bsicamente es un paso intermedio entre dos memorias, un buffer. Tiene capacidad muy pequea y un tiempo de acceso tambin muy pequeo. Memoria cach: Es la ms utilizada por la CPU, y la ms importante entre la principal y el microprocesador. Aunque sean de pequea capacidad, normalmente una fraccin de la memoria principal mxima posible, est continuamente intercambiando informacin tanto con el procesador como con la memoria principal, aunque normalmente se utiliza para guardar la direccin de la memoria principal, en vez de almacenar el archivo entero, as tarda menos a pasar la informacin hacia la CPU, que si lo hiciera mediante la cach. Y es por esta razn, que a menudo (excepto modelos especiales como Celeron y Duron), hay dos de memorias cach, dos niveles: Uno en el interior del microprocesador (L1), y el otro entre la principal y la CPU (L2), al exterior del "micro" de ms capacidad que la de dentro. Memoria central o principal: Donde se almacenan programas y datos. La CPU lee y escribe en ella aunque en menos cantidades que en las anteriores. Tiempo de acceso relativamente rpido y gran capacidad. Memorias de masas o auxiliares: Son dispositivos exteriores al ordenador o conectados a la placa base por un controlador de bus (disco duro, disquetes, etc.). Dnde se almacenen todos los programas y archivos para un uso posterior. En caso de que la memoria principal sea insuficiente, se hacen servir como apoyo para sta, denominada "memoria virtual".

Como he mencionado anteriormente, las memorias adems de clasificarse por su tiempo de acceso y capacidad, tambin se pueden clasificar por la forma en que se modifican los datos y la tecnologa empleada. As, encontramos que hay dos grandes grupos:

1. Memorias RAM (Random Acces Memory): Son memorias en las que se puede leer y escribir. Se componen electrnicamente por chips, dnde se pueden subdividir en: SRAM (Static RAM): Su clula est basada en un biestable. DRAM (Dinamic RAM): Su clula est basada en un pequeo condensador, carga del cual representa la informacin almacenada. Estas necesitan circuitos adicionales de refresco, puesto que como los condensadores son de baja capacidad, a travs de la s fugas, la informacin se podra perder; son de lectura destructiva. 2. Memorias ROM (Read Only Memory): Son memorias en las que slo se puede leer. Hay de varios tipos: ROM: programadas por mscara, la informacin es grabada enla fbrica y no tiene posible modificacin. PROM, o ROM: programable una sola vez. EPROM (Erasable PROM) o RPROM (Reprogramable ROM): su contenido puede ser borrado mediante rayos ultravioletas, para acto seguido regrabarlas. EAROM (Electrically Alterable ROM) o EEROM (Electrically Erasable ROM), son la frontera entre las RAM y las ROM, su contenido puede ser regrabado elctricamente, se diferencian de las RAM en que no son voltiles. Memoria FLASH, denominada as por la velocidad en la que se puede reprogramar (en tan solo segundos), usan el borrado elctrico. Bsicamente las ROM se basan en una matriz de diodos unidos, esta unin puede ser destruida por una sobretensin. De esta forma, salen de la fbrica con las uniones juntas y para grabarlas se rompen dnde se quieran poner ceros. Aparte de los mdulos de memoria aqu mencionados tambin existen, aunque ya en desuso, de otros como los SIMM (Single In<-Line Memory Module) y los SIP (Single In-Line Packages), los cuales no son nada ms que chips de memoria soldados entre ellos para formar un nico conjunto. Tambin hay modelos ms nuevos como el DDR (DobleData Rate) que se usa bsicamente en equipos basados en microprocesadores AMD, ahora implementados tambin en equipos Intel, aunque principalmente se usan en las tarjetas grficas, aunque Intel ya posee la del tipo RAMBUS. La DDR es el mismo que la SDR pero en doble sentido, de ida y de vuelta, mientras que la segunda(SDR) solamente puede hacer servir un sentido ida o vuelta.

http://www.hardware12v.com/conocimientospc/5.php Tipos de Memoria RAM


DRAM (Dynamic Random Access Memory): Es la memoria de trabajo, tambin llamada RAM, esta organizada en direcciones que son reemplazadas muchas veces por segundo. Esta memoria lleg a alcanzar velocidades de 80 y 70 nanosegundos (ns), esto es el tiempo que tarda en vaciar una direccin para poder dar entrada a la siguiente, entre menor sea el nmero, mayor la velocidad, y fu utilizada hasta la poca de los equipos 386. FPM (Fast Page Mode): El nombre de esta memoria procede del modo en el que hace la transferencia de datos, que tambin es llamado paginamiento rpido. Hasta hace aproximadamente un ao sta memoria era la ms popular, era el tipo de memoria normal para las computadores 386, 486 y los primeros Pentium, lleg a fabricarse en velocidades de 60ns y la forma que presentaban era en mdulos SIMM de 30 pines, para los equipos 386 y 486 y para los equipos Pentium era en SIMM de 72 pines. EDO (Extended Data Output): Esta memoria fue una innovacin en cuestin de transmisin de

datos pudiendo alcanzar velocidades de hasta 45ns, dejando satisfechos a los usuarios. La transmisin se efectuaba por bloques de memoria y no por instruccin como lo vena haciendo las memorias FPM. Se utiliza en equipos con procesadores Pentium, Pentium Pro y los primeros Pentium II, adems de su alta compatibilidad, tienen un precio bajo y es una opcin viable para estos equipos. Su presentacin puede ser en SIMM DIMM. SDRAM (Synchronous DRAM): Esta memoria funciona como su nombre lo indica, se sincroniza con el reloj del procesador obteniendo informacin en cada ciclo de reloj, sin tener que esperar como en los casos anteriores. La memoria SDRAM puede aceptar velocidades de BUS de hasta 100Mhz, lo que nos refleja una muy buena estabilidad y alcanzar velocidades de 10ns. Se presentan en mdulos DIMM, y debido a su transferencia de 64 bits, no es nesesario instalarlo en pares. RDRAM (Rambus DRAM): Esta memoria tiene una transferencia de datos de 64 bits que se pueden producir en rfagas de 2ns, adems puede alcanzar taza de tranferencia de 533 Mhz con picos de 1.6Gb/s. Muy pronto alcanzar dominio en el mercado, ya que se estar utilizando en equipos con el nuevo procesador Pentium 4. Es ideal ya que evita los cuellos de botella entre la tarjeta grfica AGP y la memoria del sistema, hoy en da se pueden encontrar ste tipo de memorias en las consolas NINTENDO 64. Ser lanzada al mercado por SAMSUNG e HITACHI.

Tipos de Memoria ROM


EPROM (Erasable Programmable Read-Only Memory): Se utiliza para corregir errores de ltima hora en la ROM, el usuario no la puede modificar y puede ser borrada exponiendo la ROM a una luz ultravioleta. EEPROM (Electrically Erasable Programmable Read-Only Memory): Esta memoria puede ser borrada y volver a ser programada por medio de una carga elctrica, pero slo se puede cambiar un byte de informacin a la vez. MEMORIA FLASH: Es un tipo de memoria EEPROM que es reprogramable, su utilizacin por lo regular es en BIOS de ah su nombre. Otros tipos de memoria RAM BEDO (Burst Extended Data Output): Fue diseada para alcanzar mayores velocidades de BUS. Trabaja de igual forma que la SDRAM, sea, la transferencia de datos se hace en cada ciclo de reloj, pero esta memoria lo hace en rfagas (burst), haciendo que los tiempos de entrega desaparezcan casi totalmente. DDR SDRAM (Double Data Rate SDRAM SDRAM-II): Esta memoria tendr el mismo aspecto que un DIMM, pero la diferencia estar en que tendr ms pines, pasando de 168 pines del actual DIMM a 184 pines, adems de tener slo una muesca en la tableta. Viendo un poco de voltaje, la DDR trabajar con tan slo 2.5V, siendo sta una reduccin del 30% respecto a los actuales 3.3V de la SDRAM. Trabajar a velocidades de 200Mhz. VRAM: Es como la memoria RAM normal, pero la diferencia redita en que podr ser accedida al mismo tiempo por el monitor y el procesador de la tarjeta de video, se podr leer y escribir en ella al mismo tiempo. SGRAM (Synchronous Graphic RAM): Ofrece las mismas capacidades de la memoria SDRAM pero para las tarjetas grficas, se utiliza en las nuevas tarjetas grficas aceleradoras 3D.

http://www.monografias.com/trabajos14/dispositivos/dispositivos.shtml# Jerarqua de memoria En un ordenador hay una jerarqua de memorias atendiendo al tiempo de acceso y a la capacidad que. normalmente son factores contrapuestos por razones econmicas y en muchos casos tambin fsicas. Comenzando desde el procesador al exterior, es decir en orden creciente de tiempo de acceso y capacidad, se puede establecer la siguiente jerarqua:

Registros de procesador: Estos registros interaccionan continuamente con la CPU (porque forman parte de ella). Los registros tienen un tiempo de acceso muy pequeo y una capacidad mnima, normalmente igual a la palabra del procesador (1 a 8 bytes). Registros intermedios: Constituyen un paso intermedio entre el procesador y la memoria, tienen un tiempo de acceso muy breve y muy poca capacidad. Memorias cach: Son memorias de pequea capacidad. Normalmente una pequea fraccin de la memoria principal. y pequeo tiempo de acceso. Este nivel de memoria se coloca entre la CPU y la memoria central. Hace algunos aos este nivel era exclusivo de los ordenadores grandes pero actualmente todos los ordenadores lo incorporan. Dentro de la memoria cach puede haber, a su vez, dos niveles denominados cach on chip, memoria cach dentro del circuito integrado, y cach on board, memoria cach en la placa de circuito impreso pero fuera del circuito integrado, evidentemente, por razones fsicas, la primera es mucho ms rpida que la segunda. Existe tambin una tcnica, denominada Arquitectura Harvard, en cierto modo contrapuesta a la idea de Von Newmann, que utiliza memorias cach separadas para cdigo y datos. Esto tiene algunas ventajas como se ver en este captulo. Memoria central o principal: En este nivel residen los programas y los datos. La CPU lee y escribe datos en l aunque con menos frecuencia que en los niveles anteriores. Tiene un tiempo de acceso relativamente rpido y gran capacidad. Extensiones de memoria central: Son memorias de la misma naturaleza que la memoria central que amplan su capacidad de forma modular. El tiempo de similar, a lo sumo un poco mayor, al de la memoria central y su capacidad puede ser algunas veces mayor. Memorias de masas o auxiliares: Son memorias que residen en dispositivos externos al ordenador, en ellas se archivan programas y datos para su uso posterior. Tambin se usan estas memorias para apoyo de la memoria central en caso de que sta sea insuficiente (memoria virtual). Estas memorias suelen tener gran capacidad pero pueden llegar a tener un tiempo de acceso muy lento. Dentro de ellas tambin se pueden establecer varios niveles de jerarqua. Clasificacin de memorias semiconductoras de acceso aleatorio Las memorias se clasifican, por la tecnologa empleada y, adems segn la forma en que se puede modificar su contenido, A este respecto, las memorias se clasifican en dos grandes grupos: 1) Memorias RAM: Son memorias en las que se puede leer y escribir, si bien su nombre (Random access memory) no representa correctamente este hecho. Por su tecnologa pueden ser de ferritas (ya en desuso) o electrnicas, Dentro de stas ltimas hay memorias estticas (SRAM, static RAM), cuya clula de memoria est basada en un biestable, y memorias dinmicas (DRAM, dinamic RAM, en las que la clula de memoria es un pequeo condensador cuya carga representa la informacin almacenada. Las memorias dinmicas necesitan circuitos adicionales de refresco ya que los condensadores tienen muy poca capacidad y, a travs de las fugas, la informacin puede perderse, por otra parte, son de lectura destructiva.

2) Memorias ROM (Read 0nly Memory): Son memorias en las que slo se puede leer. Pueden ser: ROM programadas por mscara, cuya informacin se graba en fbrica y no se puede modificar. aa PROM, o ROM programable una sola vez.
aa aa

EPROM (erasable PROM) o RPROM (reprogramable ROM), cuyo contenido puede borrarse mediante rayos ultravioletas para EAROM (electrically alterable ROM) o EEROM (electrically erasable ROM), que son memorias que est en la frontera entre las RAM y las ROM ya que su contenido puede regrabarse por medios elctricos, estas se diferencian de las RAM en que no son voltiles. En ocasiones a este tipo de memorias tambin se las denomina NYRAM (no voltil RAM). Memoria FLASH, denominada as por la velocidad con la que puede reprogramarse, utilizan tecnologa de borrado elctrico al igual que las EEPROM. Las memorias flash pueden borrarse enteras en unos cuantos segundos, mucho ms rpido que las EPROM.

aa

aa

Bsicamente las memorias ROM se basan en una matriz de diodos cuya unin se puede destruir aplicando sobre ella una sobretensin (usualmente comprendida ente -12.5 y -40 v.). De fbrica la memoria sale con 1's en todas sus posiciones, para grabarla se rompen las uniones en que se quieran poner 0's. Esta forma de realizar la grabacin se denomina tcnica de los fusibles.
Los tipos ms usados de memoria RAM son los siguientes: DRAM (Dinamic-RAM): La primera memoria hasta la aparicin de los 386, era algo lenta (70 80 ns). En formato DIMM o SIMM de 30 contactos. Fast Page (FPM o DRAM): Algo ms rpida que la anterior (70 60 ns). Se presenta en formato SIMM de 30 72 contactos. EDO-RAM (Extended Data Output-RAM): Permite empezar a introducir nuevos datos mientras los anteriores estn saliendo (70, 60 50 ns), lo que la hace algo ms rpida (un 5% ms que la FPM). Vienen en SIMMs de 72 contactos, aunque tambin los hay en DIMM de 168. SDRAM (Sincronic-RAM): Funciona sincronizadamente con la velocidad de la placa (de 50 a 66 MHz), para lo que debe ser rapidsima (de 25 a 10 ns) y se presenta en forma de DIMMs de 168 contactos. PC100 (SDRAM de 100 MHz): Memoria SDRAM que funciona a 100 MHz, que utilizan los micros ms modernos.

Segn los tipos de conectores que lleve la memoria, al conjunto de stos se les denominan mdulos, y stos a su vez se dividen en: SIMM (Single In-line Memory Module): Pequea placa de circuito impreso con varios chips de memoria integrados. Se fabrican con diferentes velocidades de acceso

capacidades (4, 8, 16, 32, 64 Mb) y son de 30 72 contactos. Se montan por pares generalmente. DIMM: Son ms alargados, cuentan con 168 contactos y llevan dos muescas para facilitar su correcta colocacin. Pueden montarse de 1 en 1.

Tipos de memoria RAM. La memoria RAM del ordenador suele ser la ms abundante del sistema, ya que permite la grabacin y posterior recuperacin de la informacin contenida en la misma. Podemos dividir la memoria RAM en funcin del modo en el que trabaja: memoria RAM esttica (SRAM: Static RAM) y memoria RAM dinmica (DRAM: Dynamic RAM). Ambos tipos de memoria almacenan los datos utilizando cargas elctricas. Se diferencian en que utilizan mtodos distintos para almacenarlos. La memoria SRAM suele estar basada en transistores de tecnologa MOS (Semiconductor de Oxido-Metal), que permiten el almacenamiento de una alta densidad de informacin. En este tipo de memoria la informacin se almacena en una red de osciladores biestables, es decir, osciladores que slo permiten dos estados: cero o uno. La principal caracterstica de las memorias RAM estticas radica en que una vez introducida la informacin, sta se mantiene dentro de la memoria hasta que se desconecte la fuente de alimentacin. Las memorias DRAM, por el contrario, almacenan la informacin en forma de una carga elctrica en un condensador, el cual slo puede almacenar una pequea cantidad de carga que, unido a las inevitables fugas, provoca que la informacin se pierda a los pocos milisegundos. Para evitar el citado inconveniente, este tipo de memorias, que por otro lado son las ms extendidas por ser las ms econmicas y por ser las que mayor densidad de informacin permiten, necesitan que se les refresque la informacin cada cierto tiempo. Hay que destacar que mientras la SRAM necesita un mnimo de siete transistores por cada bit de informacin, la memoria DRAM solamente necesita un transistor MOSFET y un condensador para la celda. El pequeo condensador, que se debe recargar o refrescar miles de veces por segundo, necesita de una circuitera adicional bastante compleja para sostener la informacin. Pero esta complejidad se ve compensada por lo reducido del tamao y del coste de cada celda de memoria. En general, se emplea la DRAM como el sistema principal de almacenamiento de cdigo y de datos, ya que es la ms barata de fabricar. La SRAM se utiliza cuando slo se necesitan pequeas cantidades de memoria, tal como en el caso de las memorias cachs. La memoria cach es un tipo de memoria de acceso aleatorio especialmente rpida que suele estar localizada, incluso, dentro del propio microprocesador. Suele ser de pequeo tamao y almacena la informacin manejada con mayor frecuencia por la CPU. Los nuevos procesadores Pentium cuentan con dos memorias cachs independientes, una para datos y otra para cdigos.

A continuacin se describen brevemente las tecnologas de DRAM existentes en la actualidad:


EDO (Extended Data Output). Incorpora varias innovaciones que permiten acelerar hasta un 15% la velocidad de acceso a memoria. SDRAM (DRAM Sncrona). Emplea una seal de reloj, sincronizada con la seal de reloj de la CPU, para coordinar las transferencias. Consigue superar la velocidad de la memoria EDO en un 25%. DDR (Double Data Rate) o SDRAM II. Segunda generacin de las memorias SDRAM. Aprovecha tanto el estado alto como el bajo de la seal de reloj para sincronizar las transferencias. Consigue duplicar la velocidad de transferencia sin modificar la frecuencia del reloj (es decir, con la misma CPU). RDRAM (Rambus DRAM). Esta tecnologa consigue multiplicar por 10 la velocidad de transferencia de una DRAM estndar, gracias a una tecnologa exclusiva denominada RSL (Rambus Signaling Logic). SLDRAM (synclink). Tecnologa desarrollada por un consorcio de doce compaas. Es una extensin de la SDRAM, que permite ampliar el nmero de bancos de 4 a 16.

Por supuesto, para aprovechar una de estas tecnologas, el PC debe estar preparado para ello. Valgan como ejemplo los procesadores Pentium 4, que por medio de un acuerdo entre Rambus e Intel, vienen preparados para emplear RDRAM. http://aib.umh.es/1_InTroduccion_Informatica/tema2/ElPCpordentro.htm

3.2.2.3

Caractersticas.

Caractersticas de la Memoria: El tiempo de almacenamiento: (voltil o no). Velocidad de acceso en operaciones de lectura / escritura. Capacidad de almacenamiento.

Sin embargo: A mas velocidad mayor costeSOLUCINUtilizar distintos tipos de memoria organizada de forma jerrquica. Tipos: Memorias de solo lectura ROM: PROM y EPROM Memorias de lectura / escritura RAM: SDRAM y DRAM Memorias Magnticas / pticas: Discos duros, CDROM, DVD

Jerarqua de memoria, Niveles:

NIVEL 0 Cache +VELOCIDAD NIVEL 1 Ram/Rom ...

NIVEL 2 Magntico / ptico +CAPACIDAD

un sistema de memoria se puede clasificar en funcin de muy diversas caractersticas. Entre ellas se pueden destacar las siguientes: localizacin de la memoria, capacidad, mtodo de acceso y velocidad de acceso. En el caso de la memoria RAM, tambin denominada memoria principal o primaria, los valores de estas caractersticas son:

Localizacin: interna, se encuentra en la placa base. Capacidad: hoy en da no es raro encontrar PC equipados con 128 o 256 MB de memoria RAM. Mtodo de acceso: memoria de acceso aleatorio. Adems, permite el acceso para lectura y escritura de informacin. Velocidad de acceso: actualmente se pueden encontrar sistemas de memoria RAM capaces de realizar transferencias a frecuencias del orden de los Gbps (gigabits por segundo).

Tambin es importante anotar que la RAM es una memoria voltil y por tanto requiere de alimentacin elctrica para mantener la informacin. Caractersticas Tienen matriz: Lugar fsico en el que se almacena informacin. Un punto es el lugar fsico donde se almacena un bit. 8 puntos es una celda Byte. Cada celda tiene asociada una direccin, que indica la ubicacin fsica de la celda. Capacidad: nmero de bytes que puede almacenar. Tiempo de acceso: El tiempo que transcurre desde que el P solicita un dato y la memoria se lo entrega (en ns).
CARACTERISTICAS DE LA MEMORIA CAPACIDAD

Cantidad de informacin que puede almacenar en una memoria en concreto. Hay dos tipos: *Util: LA que puede almacenar el usuario. *Bruta: Nmero total de unidades de informacin (bits bytes) que pueden ser almacenadas en un dispositivo. VELOCIDAD

Indica el tiempo desde que se solicita un dato hasta que se recibe. Dos grupos: * De acceso aleatorio: Si se tarde lo mismo independientemente de la situacin del dato. De acceso no aleatorio: Influye el tiempo de bsqueda y el de latencia.

DURACION DE LA INFORMACION

Capacidad de retener la informacin a lo largo del tiempo. Tiene que ver con la permanencia no del suministro de energa elctrica. *Voltiles: Pierden su contenido sin electricidad. Estn basadas en semiconductores. *No voltiles: Permanentes. COSTES

Se divide en precio/unidad de informacin y depende fuertemente de forma antagnica con la velocidad de acceso. Precio T.acceso Coste Registros 20000 pts/MB 10 ns RAM 5000 pts/MB 70 ns Disco duro 100 pts/MB 10 ms Disquetes 50 pts/MB 2 s Cintas Streamer 10 pts/MB 20 s Papel digital 0,01 pts/MB 2 min. Tiempo MODO DE ACCESO

Se refiere a como se indica la direccin de la posicin de memoria a la que se quiere acceder y como se organiza la informacin en el interior de la memoria. JERARQUIAS DE MEMORIA

Lo que interesa es utilizar memorias rpidas, pero son muy costosas, por lo que se utilizan dispositivos caros(rpidos) para los que operan en la CPU y dispositivos baratos(lentos) pero con mayor capacidad de almacenar informacin que no se procesa en ese momento determinado. ns REGISTRO En la CPU decenas de ns MEMORIA CACHE MEMORIA PRINCIPAL Placa base de ms a seg. MEMORIA SECUNDARIA Fuera del ordenador

3.2.2.4

Funcionamiento.

Funcin Formada por condensadores, que continuamente se estn cargando y descargando, hacen posible almacenar los ceros y unos (ausencia y presencia de corriente respectivamente), el

tiempo que tarden a volverse a cargar una vez se descargan recibe el nombre de tiempo de refresco; tambin hay otro tiempo establecido, es el tiempo de acceso. La memoria de trabajo (normalmente compuesta de chips RAM), hace de cajn o caja al microprocesador dnde guarda los datos que necesita para operar con ellos, as s la CPU necesita algn dato, el disco duro la busca, y este lo enva a la memoria de trabajo, y ste va a la CPU cuando se la pide. As pues vemos que es una memoria temporal, puesto que adems, al apagar el PC se pierde toda la informacin que hay.

http://www.hardware12v.com/conocimientospc/5.php Funciones que realiza


La memoria de un computador se puede definir como los circuitos que permiten almacenar y recuperar la informacin. En un sentido ms amplio, puede referirse tambin a sistemas externos de almacenamiento, como las unidades de disco o de cinta. Hoy en da se requiere cada vez ms memoria para poder utilizar complejos programas y para gestionar complejas redes de computadores.

3.2.3 Dispositivos de I/O.


Las unidades de E/S constan de dos elementos: MECNICO: denominado DISPOSITIVO DE E/S. ELECTRNICO: denominado CONTROLADORES. Los dispositivos de E/S que se conectan al ordenador se clasifican en: BLOQUE: La informacin se almacena en bloques, esos bloques son de tamao fijo. Donde cada bloque tiene una direccin que lo identifica. Se puede leer o escribir en un bloque independiente de los dems. Por ejemplo: disquete, CD, DVD, disco duro. CARCTER: La informacin que se generan o reciben son flujos de caracteres (no bloques). Accede a los datos en secuencia: o sea, para acceder a determinados datos, la lectura y escritura se debe hacer seguido de los datos anteriores. Por ejemplo: teclado, pantalla, cinta, ratones, interfaz de comunicacin. La lnea de separacin no es rgida, hay dispositivos que pueden ser del tipo bloque (cintas Magnticas) aunque son considerados del tipo carcter. Con esta clasificacin, un dispositivo que est fuera de ellas, el RELOJ, no es orientado ni a bloque ni de carcter. Si es un dispositivo especial, ya que lo nico que hace es generar interrupciones. Otros aspectos importantes que hacen la diferencia entre dispositivos son: Comportamiento: entrada, salida, almacenamiento. Tasa de transferencia: tasa de peak de transferencia entre dispositivos y memoria.

El siguiente cuadro hace referencia, a las grandes diferencias entre las clases de dispositivos:
DISPOSITIVO TECLADO MOUSE SCANNER VOS (Salida) IMPRESORA (Lnea) IMPRESORA (Lser) MODEM RED LAN FLOPPY CD CINTA MAGNETICA DISCO MAGNETICO COMPORTAMIENTO Entrada " " Salida " " Entrada / salida " Almacenamiento " " " CLASIFICACION Carcter " " " " " " " Bloque " " " TASA KB/SEG. 0,01 0,02 400 0,6 1,0 200 2,0-8,0 500-6000 100 1000 2000 2000-10000

Existen otros factores que hacen a su distincin: UNIDADES DE CONTROL REPRESENTACIN DE DATOS CONDICIN DE ERROR http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/ GESTES02.htm

Principios del Software de E / S


La idea bsica es organizar el software como una serie de capas donde [23, Tanenbaum]:

Las capas inferiores se encarguen de ocultar las peculiaridades del hardware a las capas superiores. Las capas superiores deben presentar una interfaz agradable, limpia y regular a los usuarios.

Objetivos del Software de E / S Un concepto clave es la independencia del dispositivo:

Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos, sin tener que modificar los programas para cada tipo de dispositivo. El problema debe ser resuelto por el S. O.

El objetivo de lograr nombres uniformes est muy relacionado con el de independencia del dispositivo. Todos los archivos y dispositivos adquieren direcciones de la misma forma, es decir mediante el nombre de su ruta de acceso. Otro aspecto importante del software es el manejo de errores de e / s:

Generalmente los errores deben manejarse lo ms cerca posible del hardware. Solo si los niveles inferiores no pueden resolver el problema, se informa a los niveles superiores. Generalmente la recuperacin se puede hacer en un nivel inferior y de forma transparente.

Otro aspecto clave son las transferencias sncronas (por bloques) o asncronas (controlada por interruptores): La mayora de la e / s es asncrona: la cpu inicia la transferencia y realiza otras tareas hasta una interrupcin. La programacin es ms fcil si la e / s es sncrona (por bloques): el programa se suspende automticamente hasta que los datos estn disponibles en el buffer. El S. O. se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario. Tambin el S. O. debe administrar los dispositivos compartidos (ej.: discos) y los de uso exclusivo (ej.: impresoras). Generalmente el software de e / s se estructura en capas (ver Figura 5.3 [23, Tanenbaum]):

Manejadores de interrupciones. Directivas de dispositivos. Software de S. O. independiente de los dispositivos. Software a nivel usuario.

Software de E / S Independiente del Dispositivo Funciones generalmente realizadas por el software independiente del dispositivo:

Interfaz uniforme para los manejadores de dispositivos. Nombres de los dispositivos. Proteccin del dispositivo. Proporcionar un tamao de bloque independiente del dispositivo. Uso de buffers. Asignacin de espacio en los dispositivos por bloques. Asignacin y liberacin de los dispositivos de uso exclusivo. Informe de errores.

Las funciones bsicas del software independiente del dispositivo son: Efectuar las funciones de e / s comunes a todos los dispositivos. Proporcionar una interfaz uniforme del software a nivel usuario. El software independiente del dispositivo asocia los nombres simblicos de los dispositivos con el nombre adecuado. Un nombre de dispositivo determina de manera nica el nodo-i de un archivo especial:

Este nodo-i contiene el nmero principal del dispositivo, que se utiliza para localizar el manejador apropiado. El nodo-i contiene tambin el nmero secundario de dispositivo, que se transfiere como parmetro al manejador para determinar la unidad por leer o escribir.

El software independiente del dispositivo debe:

Ocultar a los niveles superiores los diferentes tamaos de sector de los distintos discos. Proporcionar un tamao uniforme de los bloques, por ej.: considerar varios sectores fsicos como un solo bloque lgico.

Software de E / S en el Espacio del Usuario La mayora del software de e / s est dentro del S. O. Una pequea parte consta de bibliotecas ligadas entre s con los programas del usuario. La biblioteca estndar de e / s contiene varios procedimientos relacionados con e / s y todos se ejecutan como parte de los programas del usuario. Otra categora importante de software de e / s a nivel usuario es el sistema de spooling. El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramacin:

El ejemplo tpico lo constituye la impresora de lneas. Los procesos de usuario no abren el archivo correspondiente a la impresora. Se crea un proceso especial, llamado demonio en algunos sistemas. Se crea un directorio de spooling.

Para imprimir un archivo: Un proceso genera todo el archivo por imprimir y lo coloca en el directorio de spooling. El proceso especial, nico con permiso para utilizar el archivo especial de la impresora, debe imprimir los archivos en el directorio. Se evita el posible problema de tener un proceso de usuario que mantenga un recurso tomado largo tiempo. Un esquema similar tambin es aplicable para la transferencia de archivos entre equipos conectados: Un usuario coloca un archivo en un directorio de spooling de la red. Posteriormente, el proceso especial lo toma y transmite. Un ej. son los sistemas de correo electrnico. http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO5.htm

3.2.3.1 3.2.3.2

Arquitecturas. Tipos.

Los dispositivos de entrada salida se dividen, en general, en dos tipos: dispositivos orientados a bloques y dispositivos orientados a caracteres. Los dispositivos orientados a bloques tienen la propiedad de que se pueden direccionar, esto es, el programador puede escribir o leer cualquier bloque del dispositivo realizando primero una operacin de posicionamiento sobre el dispositivo. Los dispositivos ms comunes orientados a

bloques son los discos duros, la memoria, discos compactos y, posiblemente, unidades de cinta. Por otro lado, los dispositivos orientados a caracteres son aquellos que trabajan con secuencias de byes sin importar su longitud ni ningna agrupacin en especial. No son dispositivos direccionables. Ejemplos de estos dispositivos son el teclado, la pantalla o display y las impresoras. La clasificacin anterior no es perfecta, porque existen varios dispositivos que generan entrada o salida que no pueden englobarse en esas categoras. Por ejemplo, un reloj que genera pulsos. Sin embargo, aunque existan algunos perifricos que no se puedan categorizar, todos estn administrados por el sistema operativo por medio de una parte electrnica - mecnica y una parte de software. http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/capitulo6.html

Dispositivos de entrada Estos dispositivos permiten al usuario del ordenador introducir datos, comandos y programas en la CPU. El dispositivo de entrada ms comn es un teclado similar al de las mquinas de escribir. La informacin introducida con el mismo, es transformada por el ordenador en modelos reconocibles. Otros dispositivos de entrada son los lpices pticos, que transmiten informacin grfica desde tabletas electrnicas hasta el ordenador; joysticks y el ratn o mouse, que convierte el movimiento fsico en movimiento dentro de una pantalla de ordenador; los escneres luminosos, que leen palabras o smbolos de una pgina impresa y los traducen a configuraciones electrnicas que el ordenador puede manipular y almacenar; y los mdulos de reconocimiento de voz, que convierten la palabra hablada en seales digitales comprensibles para el ordenador. Tambin es posible utilizar los dispositivos de almacenamiento para introducir datos en la unidad de proceso. Otros dispositivos de entrada, usados en la industria, son los sensores. Dispositivos de Entrada/Salida Los dispositivos de almacenamiento externos, que pueden residir fsicamente dentro de la unidad de proceso principal del ordenador, estn fuera de la placa de circuitos principal. Estos dispositivos almacenan los datos en forma de cargas sobre un medio magnticamente sensible, por ejemplo una cinta de sonido o, lo que es ms comn, sobre un disco revestido de una fina capa de partculas metlicas. Los dispositivos de almacenamiento externo ms frecuentes son los disquetes y los discos duros, aunque la mayora de los grandes sistemas informticos utiliza bancos de unidades de almacenamiento en cinta magntica. Los discos flexibles pueden contener, segn sea el sistema, desde varios centenares de miles de bytes hasta bastante ms de un milln de bytes de datos. Los discos duros no pueden extraerse de los receptculos de la unidad de disco, que contienen los dispositivos electrnicos para leer y escribir datos sobre la superficie magntica de los discos y pueden almacenar desde varios millones de bytes hasta algunos centenares de millones. La tecnologa de CD-ROM, que emplea las mismas tcnicas lser utilizadas para crear los discos compactos (CD) de audio, permiten capacidades de almacenamiento del orden de varios cientos de megabytes

(millones de bytes) de datos. Tambin hay que aadir los recientemente aparecidos DVD que permiten almacenar ms de 4 Gb de informacin.

Dispositivos de salida

Estos dispositivos permiten al usuario ver los resultados de los clculos o de las manipulaciones de datos de la computadora. El dispositivo de salida ms comn es la unidad de visualizacin, que consiste en un monitor que presenta los caracteres y grficos en una pantalla similar a la del televisor. Por lo general, los monitores tienen un tubo de rayos catdicos como el de cualquier televisor, aunque los ordenadores pequeos y porttiles utilizan hoy pantallas de cristal lquido (LCD, acrnimo de Liquid Crystal Displays) o electroluminiscentes. Otros dispositivos de salida ms comunes son las impresoras, que permiten obtener una copia impresa de la informacin que reside en los dispositivos de almacenamiento, las tarjetas de sonido y los mdem. Un mdem enlaza dos ordenadores transformando las seales digitales en analgicas para que los datos puedan transmitirse a travs de las lneas telefnicas convencionales. Dispositivos de entrada Son los que envan informacin a la unidad de procesamiento, en cdigo binario. Dispositivos de entrada (entre otros): Teclado: Un teclado se compone de una serie de teclas agrupadas en funciones que podremos describir:
Teclado alfanumrico: es un conjunto de 62 teclas entre las que se encuentran las letras, nmeros, smbolos ortogrficos, Enter, alt...etc. Teclado de Funcin: es un conjunto de 13 teclas entre las que se encuentran el ESC, tan utilizado en sistemas informticos, ms 12 teclas de funcin. Estas teclas suelen ser configurables pero por ejemplo existe un convenio para asignar la ayuda a F1. Teclado Numrico: se suele encontrar a la derecha del teclado alfanumrico y consta de los nmeros as como de un Enter y los operadores numricos de suma, resta,... etc. Teclado Especial: son las flechas de direccin y un conjunto de 9 teclas agrupadas en 2 grupos; uno de 6 (Inicio y fin entre otras) y otro de 3 con la tecla de impresin de pantalla entre ellas.

Recomendaciones: En este apartado es conveniente distinguir entre dos tipos de teclado:


De Membrana: Fueron los primeros que salieron y como su propio nombre indica presentan una membrana entre la tecla y el circuito que hace que la pulsacin sea un poco ms dura.

Mecnico: Estos nuevos teclados presentan otro sistema que hace que la pulsacin sea menos traumtica y ms suave para el usuario. Mouse: A este perifrico se le llam as por su parecido con este roedor. Suelen estar constituidos por una caja con una forma ms o menos anatmica en la que se encuentran dos botones que harn los famosos clicks de ratn siendo transmitidos por el cable al puerto PS/II o al puerto de serie (COM1 normalmente). Dentro de esta caja se encuentra una bola que sobresale de la caja a la que se pegan 4 rodillos ortogonalmente dispuestos que sern los que definan la direccin de movimiento del ratn. El ratn se mueve por una alfombrilla ocasionando el movimiento de la bola que a su vez origina el movimiento de uno o varios de estos rodillos que se transforma en seales elctricas y producen el efecto de desplazamiento del ratn por la pantalla del ordenador.

Existen modelos modernos en los que la transmisin se hace por infrarrojos eliminando por tanto la necesidad de cableado. Otros presentan la bola en la parte superior de la caja no estando por tanto en contacto con la alfombrilla y teniendo que ser movida por los dedos del usuario aunque se origina el mismo efecto.
Micrfono: Perifrico por el cual transmite sonidos que el ordenador capta y los reproduce, los salva, etc. Se conecta a la tarjeta de sonido. Escner: Es un dispositivo utiliza un haz luminoso para detectar los patrones de luz y oscuridad (o los colores) de la superficie del papel, convirtiendo la imagen en seales digitales que se pueden manipular por medio de un software de tratamiento de imgenes o con reconocimiento ptico de caracteres. Un tipo de escner utilizado con frecuencia es el flatbed, que significa que el dispositivo de barrido se desplaza a lo largo de un documento fijo. En este tipo de escneres, como las fotocopiadoras de oficina, los objetos se colocan boca abajo sobre una superficie lisa de cristal y son barridos por un mecanismo que pasa por debajo de ellos. Otro tipo de escner flatbed utiliza un elemento de barrido instalado en una carcasa fija encima del documento.

Un tipo muy popular de escner es el escner de mano, tambin llamado handheld, porque el usuario sujeta el escner con la mano y lo desplaza sobre el documento. Estos escneres tienen la ventaja de ser relativamente baratos, pero resultan algo limitados porque no pueden leer documentos con una anchura mayor a 12 o 15 centmetros.
Lector de cdigo de barras: dispositivo que mediante un haz de lser lee dibujos formados por barras y espacios paralelos, que codifica informacin mediante anchuras relativas de estos elementos. Los cdigos de barras representan datos en una forma legible por el ordenador, y son uno de los medios ms eficientes para la captacin automtica de datos. Cmara digital: Cmara que se conecta al ordenador y le transmite las imgenes que capta, pudiendo ser modificada y retocada, o volverla a tomar en caso de que este mal. Puede haber varios tipos: Cmara de fotos digital: Toma fotos con calidad digital, casi todas incorporan una pantalla LCD (Liquid Cristal Display) donde se puede visualizar la imagen obtenida. Tiene una pequea memoria donde almacena fotos para despus transmitirlas a un ordenador. Cmara de video: Graba videos como si de una cmara normal se tratara, pero las ventajas que ofrece en estar en formato digital, que es mucho mejor la imagen, tiene una pantalla LCD por la que ves simultneamente la imagen mientras grabas. Se conecta al PC y este recoge el video que has grabado, para poder retocarlo posteriormente con el software adecuado. Webcam: Es una cmara de pequeas dimensiones. Slo es la cmara, no tiene LCD. Tiene que estar conectada al PC para poder funcionar, y esta transmite las imgenes al ordenador. Su uso es generalmente para videoconferencias por internet, pero mediante el software adecuado, se pueden grabar videos como una cmara normal y tomar fotos estticas.

Lpiz ptico: dispositivo sealador que permite sostener sobre la pantalla un lpiz que est conectado al ordenador y con el que es posible seleccionar elementos u opciones (el equivalente a un clic de mouse o ratn), bien presionando un botn en un lateral del lpiz ptico o presionando ste contra la superficie de la pantalla.

El lpiz contiene sensores luminosos y enva una seal a la computadora cada vez que registra una luz, por ejemplo al tocar la pantalla cuando los pxeles no negros que se encuentran bajo la punta del lpiz son refrescados por el haz de electrones de la pantalla. La pantalla de la computadora no se ilumina en su totalidad al mismo tiempo, sino que el haz de electrones que ilumina los pxeles los recorre lnea por lnea, todas en un espacio de 1/50 de segundo. Detectando el momento en que el haz de electrones pasa bajo la punta del lpiz ptico, el ordenador puede determinar la posicin del lpiz en la pantalla. El lpiz ptico no requiere una pantalla ni un recubrimiento especiales como puede ser el caso de una pantalla tctil, pero tiene la desventaja de que sostener el lpiz contra la pantalla durante periodos largos de tiempo llega a cansar al usuario.
Joystick: dispositivo sealador muy conocido, utilizado mayoritariamente para juegos de ordenador o computadora, pero que tambin se emplea para otras tareas. Un joystick o palanca de juegos tiene normalmente una base de plstico redonda o rectangular, a la que est acoplada una palanca vertical. Los botones de control se localizan sobre la base y algunas veces en la parte superior de la palanca, que puede moverse en todas direcciones para controlar el movimiento de un objeto en la pantalla. Los botones activan diversos elementos de software, generalmente produciendo un efecto en la pantalla. Un joystick es normalmente un dispositivo sealador relativo, que mueve un objeto en la pantalla cuando la palanca se mueve con respecto al centro y que detiene el movimiento cuando se suelta. En aplicaciones industriales de control, el joystick puede ser tambin un dispositivo sealador absoluto, en el que con cada posicin de la palanca se marca una localizacin especfica en la pantalla. Tarjetas perforadas: ficha de papel manila de 80 columnas, de unos 7,5 cm (3 pulgadas) de ancho por 18 cm (7 pulgadas) de largo, en la que podan introducirse 80 columnas de datos en forma de orificios practicados por una mquina perforadora. Estos orificios correspondan a nmeros, letras y otros caracteres que poda leer un ordenador equipada con lector de tarjetas perforadas. Pantalla Tctil: pantalla diseada o modificada para reconocer la situacin de una presin en su superficie. Al tocar la pantalla, el usuario puede hacer una seleccin o mover el cursor. El tipo de pantalla tctil ms sencillo est compuesto de una red de lneas sensibles, que determinan la situacin de una presin mediante la unin de los contactos verticales y horizontales.

Otros tipos de pantallas ms precisas utilizan una superficie cargada elctricamente y sensores alrededor de los bordes externos de la pantalla, para detectar la cantidad de cambio elctrico y sealar exactamente donde se ha realizado el contacto. Un tercer tipo fija diodos emisores de rayos infrarrojos (LEDs, acrnimo de Light-Emitting Diodes) y sensores alrededor de los bordes externos de la pantalla. Estos LEDs y sensores crean una red invisible de infrarrojos en la parte delantera de la pantalla que interrumpe el usuario con sus dedos. Las pantallas tctiles de infrarrojos se usan a menudo en entornos sucios, donde la suciedad podra interferir en el modo de operacin de otros tipos de pantallas tctiles. La popularidad de las pantallas tctiles entre los usuarios se ha visto limitada porque es necesario mantener las manos en el aire para sealar la pantalla, lo que sera demasiado incmodo en largos periodos de

tiempo. Adems no ofrece gran precisin al tener que sealar ciertos elementos en programas de alta resolucin. Las pantallas tctiles, sin embargo, son enormemente populares en aplicaciones como los puestos de informacin porque ofrecen una forma de sealar que no requiere ningn hardware mvil y porque presionar la pantalla es algo intuitivo. Dispositivos de salida Son los dispositivos que reciben informacin que es procesada por la CPU y la reproducen para que sea perceptible para la persona. Dispositivos de salida (entre otros):
Monitor: es la pantalla en la que se ve la informacin suministrada por el ordenador. En el caso ms habitual se trata de un aparato basado en un tubo de rayos catdicos (CRT) como el de los televisores, mientras que en los porttiles es una pantalla plana de cristal lquido (LCD).

Puntos a tratar en un monitor:


Resolucin (RESOLUTION): Se trata del nmero de puntos que puede representar el monitor por pantalla, en horizontal x vertical. As, un monitor cuya resolucin mxima sea 1024x 768 puntos puede representar hasta 768 lneas horizontales de 1024 puntos cada una, probablemente adems de otras resoluciones inferiores, como 640x480 u 800x600. Refresco de Pantalla: Se puede comparar al nmero de fotogramas por segundo de una pelcula de cine, por lo que deber ser lo mayor posible. Se mide en HZ (hertzios) y debe estar por encima de los 60 Hz, preferiblemente 70 u 80. A partir de esta cifra, la imagen en la pantalla es sumamente estable, sin parpadeos apreciables, con lo que la vista sufre mucho menos. Tamao de punto (DOT PITCH): Es un parmetro que mide la nitidez de la imagen, midiendo la distancia entre dos puntos del mismo color; resulta fundamental a grandes resoluciones. En ocasiones es diferente en vertical que en horizontal, o se trata de un valor medio, dependiendo de la disposicin particular de los puntos de color en la pantalla, as como del tipo de rejilla empleada para dirigir los haces de electrones.

Lo mnimo, exigible en este momento es que sea de 0,25 mm, no debindose admitir nada superior como no sea en monitores de gran formato para presentaciones, donde la resolucin no es tan importante como el tamao de la imagen.
Controles y conexiones: Aunque se va cada vez ms el uso de monitores con controles digitales, en principio no debe ser algo determinante a la hora de elegir un monitor, si bien se tiende a que los monitores con dichos controles sean los ms avanzados de la gama. Multimedia: Algunos monitores llevan acoplados altavoces, e incluso micrfono y/o cmaras de video. Esto resulta interesante cuando se trata de un monitor de 15'' 17'' cuyo uso vaya a ser domstico, para juegos o videoconferencias. Pantalla tctil: vase en dispositivos de entrada. Impresoras: Dispositivo que sirve para captar la informacin que le enva la CPU y imprimirla en papel, plstico, etc. Hay varios tipos: Matriciales: Ofrecen mayor rapidez pero una calidad muy baja. Inyeccin: La tecnologa de inyeccin a tinta es la que ha alcanzado un mayor xito en las impresoras de uso domstico o para pequeas empresas, gracias a su relativa velocidad, calidad y sobre todo precio reducidos, que suele ser la dcima parte de una impresora de las mismas caractersticas. Claro est que hay razones de peso que justifican stas

caractersticas, pero para imprimir algunas cartas, facturas y pequeos trabajos, el rendimiento es similar y el coste muy inferior.

Hablamos de impresoras de color porque la tendencia del mercado es que la informtica en conjunto sea en color. Esta tendencia empez hace una dcada con la implantacin de tarjetas grficas y monitores en color. Todava podemos encontrar algunos modelos en blanco y negro pero ya no son recomendables. Las impresoras de inyeccin cuentan a favor con elementos como el coste, tanto de adquisicin como de mantenimiento, la sencillez de manejo y el tamao. En contra tenemos su escasa velocidad y calidad frente a otras tecnologas.
Lser: Ofrecen rapidez y una mayor calidad que cualquiera, pero tienen un alto coste y solo se suelen utilizar en la mediana y grande empresa. Por medio de un haz de lser imprimen sobre el material que le pongamos las imgenes que le haya enviado la CPU. Altavoces: Dispositivos por los cuales se emiten sonidos procedentes de la tarjeta de sonido. Actualmente existen bastantes ejemplares que cubren la oferta ms comn que existe en el mercado. Se trata de modelos que van desde lo ms sencillo (una pareja de altavoces estreo), hasta el ms complicado sistema de Dolby Digital, con nada menos que seis altavoces, pasando por productos intermedios de 4 o 5 altavoces. Sin duda alguna, se nota perfectamente el esfuerzo que todos los fabricantes han realizado para ponerse al da en esta tecnologa, ya que en poco tiempo han incorporado a su tecnologa desarrollos basados en Dolby Surround o Dolby Digital.

Los ms avanzados constan de 4 altavoces (2 delanteros y 2 traseros) de reducido tamao, otro ms central para los dilogos y un ltimo altavoz mucho ms voluminoso que se encarga de realzar las fuerzas de los graves. Hasta aqu todo parece indicar que se trata de otros juegos de altavoces cuadrafnicos. Pero la diferencia principal de estos sistemas es que incorporan un descodificador Dolby Digital, mediante el cual, podremos ajustar los volmenes de cada juego de altavoces, as como aplicar diferentes filtros de sonido en funcon del tipo de sonido que estemos reproduciendo en cada momento (msica, pelcula...etc). Para sacar partido de estos altavoces es necesario que nuestra tarjeta de sonido cuente con una salida S/PDIF de Dolby Digital ya que a travs de sta es desde donde los conjuntos de altavoces toman el sonido. La desventaja de este tipo de unidades suele ser la calidad de las mismas. Teniendo en cuenta el precio de este tipo de conjuntos, en el que se incluye un aparato decodificador, la calidad de los 6s altavoces no puede ser especialmente buena, aunque para un uso casero resulta ms que vlida. Otra cueston es la potencia. Tratndose de altavoces pequeos y baratos no conseguirn una fildelidad de sonido muy grande a poco que la habitacin tenga un tamao medio. En cualquier caso los equipos basados en Dolby Digital son muy escasos por el momento y debemos recurrir a equipos grandes si deseamos una calidad de sonido suficiente y por tanto ser inevitable gastar una cantidad de dinero bastante importante.

Auriculares: son dispositivos colocados en el odo para poder escuchar los sonidos que la tarjeta de sonido enva. Presentan la ventaja de que no pueden ser escuchados por otra persona, solo la que los utiliza. Fax: Dispositivo mediante el cual se imprime una copia de otro impreso, transmitida o bien, va telfono, o bien desde el propio fax. Se utiliza para ello un rollo de papel que cuando acaba la impresin se corta.

http://www.monografias.com/trabajos14/dispositivos/dispositivos.shtml#

3.2.3.3
Dispositivos de E / S

Caractersticas.

Se pueden clasificar en dos grandes categoras:


Dispositivos de bloque. Dispositivos de caracter.

Las principales caractersticas de los dispositivos de bloque son: La informacin se almacena en bloques de tamao fijo. Cada bloque tiene su propia direccin. Los tamaos ms comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes. Se puede leer o escribir en un bloque de forma independiente de los dems, en cualquier momento. Un ejemplo tpico de dispositivos de bloque son los discos. Las principales caractersticas de los dispositivos de caracter son: La informacin se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques. No se pueden utilizar direcciones. No tienen una operacin de bsqueda. Un ejemplos tpico de dispositivos de caracter son las impresoras de lnea, terminales, interfaces de una red, ratones, etc. Algunos dispositivos no se ajustan a este esquema de clasificacin, por ejemplo los relojes, que no tienen direcciones por medio de bloques y no generan o aceptan flujos de caracteres. El sistema de archivos solo trabaja con dispositivos de bloque abstractos, por lo que encarga la parte dependiente del dispositivo a un software de menor nivel, el software manejador del dispositivo. http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO5.htm Controladores de Dispositivos Las unidades de e / s generalmente constan de:

Un componente mecnico. Un componente electrnico, el controlador del dispositivo o adaptador.

Muchos controladores pueden manejar ms de un dispositivo. El S. O. generalmente trabaja con el controlador y no con el dispositivo. Los modelos ms frecuentes de comunicacin entre la cpu y los controladores son:

Para la mayora de las micro y mini computadoras: o Modelo de bus del sistema. Para la mayora de los mainframes: o Modelo de varios buses y computadoras especializadas en e / s llamadas canales de e / s.

La interfaz entre el controlador y el dispositivo es con frecuencia de muy bajo nivel: La comunicacin es mediante un flujo de bits en serie que: o Comienza con un prembulo. o Sigue con una serie de bits (de un sector de disco, por ej.). o Concluye con una suma para verificacin o un cdigo corrector de errores. El prembulo: o Se escribe al dar formato al disco. o Contiene el nmero de cilindro y sector, el tamao de sector y otros datos similares. El controlador debe: Convertir el flujo de bits en serie en un bloque de bytes. Efectuar cualquier correccin de errores necesaria. Copiar el bloque en la memoria principal. Cada controlador posee registros que utiliza para comunicarse con la cpu: Pueden ser parte del espacio normal de direcciones de la memoria: e / s mapeada a memoria. Pueden utilizar un espacio de direcciones especial para la e / s, asignando a cada controlador una parte de l. El S. O. realiza la e / s al escribir comandos en los registros de los controladores; los parmetros de los comandos tambin se cargan en los registros de los controladores. Al aceptar el comando, la cpu puede dejar al controlador y dedicarse a otro trabajo. Al terminar el comando, el controlador provoca una interrupcin para permitir que el S. O.:

Obtenga el control de la cpu. Verifique los resultados de la operacin.

La cpu obtiene los resultados y el estado del dispositivo al leer uno o ms bytes de informacin de los registros del controlador.

Ejemplos de controladores, sus direcciones de e / s y sus vectores de interrupcin en la PC IBM pueden verse en la Tabla 5.1 [23, Tanenbaum].

Controlador de e / s Reloj Teclado Disco duro Impresora Disco flexible Rs232 primario Rs232 secundario

Direccin de e / s 040 - 043 060 - 063 320 - 32f 378 - 37f 3f0 - 3f7 3f8 - 3ff 2f8 - 2ff

Vector de interrupciones 8 9 13 15 14 12 11

Tabla 5.1: Controladores de e / s, direcciones de e / s y vector de interrupciones. http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO5.htm

3.2.3.4
Funciones que realiza

Funcionamiento.

Vamos a sealar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida: Direccionamiento o seleccin del dispositivo que debe llevar a cabo la operacin de E/S. Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido). las operaciones. Esta ltima funcin es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los perifricos y la CPU (por ejemplo, suelen tener relojes diferentes). Se define una transferencia elemental de informacin como la transmisin de una sola unidad de informacin (normalmente un byte) entre el procesador y el perifrico o viceversa. Para efectuar una transferencia elemental de informacin son precisas las siguientes funciones: Establecimiento de una comunicacin fsica entre el procesador y el perifrico para la transmisin de la unidad de informacin. Sincronizacin y coordinacin de

Control de los perifricos, en que se incluyen operaciones como prueba y modificacin del estado del perifrico. Para realizar estas funciones la CPU gestionar las lneas de control necesarias.

Definiremos una operacin de E/S como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos). Para la realizacin de una operacin de E/S se deben efectuar las siguientes funciones: Recuento de las unidades de informacin transferidas (normalmente bytes) para reconocer el fin de operacin. Sincronizacin de velocidad entre la CPU y el perifrico. Deteccin de errores (e incluso correccin) mediante la utilizacin de los cdigos necesarios (bits de paridad, cdigos de redundancia cclica, etc.) Almacenamiento temporal de la informacin. Es ms eficiente utilizar un buffer temporal especfico para las operaciones de E/S que utilizan el rea de datos del programa. Conversin de cdigos, conversin serie/paralelo, etc. Dispositivos externos Una de las funciones bsicas del ordenador es comunicarse con los dispositivos exteriores, es decir, el ordenador debe ser capaz de enviar y recibir datos desde estos dispositivo. Sin esta funcin, el ordenador no sera operativo porque sus clculos no seran visibles desde el exterior. Existe una gran variedad de dispositivos que pueden comunicarse con un ordenador, desde los dispositivos clsicos (terminales, impresoras, discos, cintas, etc.) hasta convertidores A/D y D/A para aplicaciones de medida y control de procesos, De todos los posibles perifricos, algunos son de lectura, otros de escritura y otros de lectura y escritura (es importante resaltar que este hecho siempre se mira desde el punto de vista del proceso). Por otra parte, existen perifricos de almacenamiento tambin llamados memorias auxiliares o masivas. La mayora de los perifricos estn compuestos por una parte mecnica y otra parte electrnica. Estas partes suelen separarse claramente para dar una mayor modularidad. A la componente electrnica del perifrico se le suele denominar controlador del dispositivo o, tambin, adaptador del dispositivo. Si el dispositivo no tiene parte mecnica (como, por ejemplo, la pantalla de un terminal), el controlador estar formado por la parte digital del circuito. Frecuentemente los controladores de los dispositivos estn alojados en una placa de circuito impreso diferenciada del resto del perifrico. En este caso es bastante habitual que un mismo controlador pueda dar servicio a dispositivos de caractersticas similares.

El principal problema planteado por los perifricos es su gran variedad que tambin afecta a las velocidades de transmisin. Por tanto, el mayor inconveniente que encontramos en los perifricos es la diferencia entre sus velocidades de transmisin y la diferencia entre stas y la velocidad de operacin del ordenador.

http://www.mailxmail.com/curso/informatica/arquitectur aordenadores/capitulo16.htm

Unidad 2. Comunicacin interna en la computadora.


2.6 Buses.
BUSES DEL SISTEMA Funciones que realiza El bus se puede definir como un conjunto de lneas conductoras de hardware utilizadas para la transmisin de datos entre los componentes de un sistema informtico. Un bus es una ruta que conecta diferentes partes del sistema, como el microprocesador, la controladora de unidad de disco, la memoria y los puertos de entrada/salida, para permitir la transmisin de informacin. En el bus se encuentran dos pistas separadas, el bus de datos y el bus de direcciones. La CPU escribe la direccin de la posicin deseada de la memoria en el bus de direcciones accediendo a la memoria, teniendo cada una de las lneas carcter binario. Es decir solo pueden representar 0 o 1 y de esta manera forman conjuntamente el nmero de la posicin dentro de la memoria (es decir: la direccin)

Estructuras de interconexin Existen dos estructuras de operaciones Entrada/Salida que tienen que ver con los buses, son: el bus nico y el bus dedicado. El bus dedicado trata a la memoria de manera distinta que a los perifricos (utiliza un bus especial) al contrario que el bus nico que los considera a ambos como posiciones de memoria. Este bus especial que utiliza el bus dedicado tiene 4 componentes fundamentales:
o

Datos: Intercambio de informacin entre la CPU y los perifricos.

Control: Lleva informacin referente al estado de los perifricos (peticin de interrupciones). Direcciones: Identifica el perifrico referido. Sincronizacin: Temporiza las seales de reloj.

o o

La mayor ventaja del bus nico es su simplicidad de estructura que le hace ser ms econmico, no permite que se realice a la vez transferencia de informacin entre la memoria y el procesador y entre los perifricos y el procesador. El bus dedicado es mucho ms flexible y permite transferencias simultneas. Su estructura es ms compleja y por tanto sus costes son mayores. Bus es una voz inglesa que significa "transporte". Aplicada a la informtica, permite significar la idea de las transferencias internas de datos que se dan en un sistema computacional en funcionamiento. En el bus todos los nodos reciben los datos aunque no se dirijan a todos los nodos, los nodos a los que no van dirigidos simplemente lo ignorn. Este sistema se usan, a veces, incluso en otras topologias como la ethernet que, aunque es en forma de estrella, se comporta como un bus cuando el concentrador es un hub en vez de un switch. En Informtica, bus es el conjunto de conductores elctricos en forma de pistas metlicas impresas sobre la tarjeta madre del computador, por donde circulan las seales que corresponden a los datos binarios del lenguaje mquina con que opera el Microprocesador. Hay tres clases de buses: Bus de Datos, Bus de Direcciones y Bus de Control. El primero mueve los datos entre los dispositivos del hardware: de Entrada como el Teclado, el Escner, el Ratn, etc.; de salida como la Impresora, el Monitor o la tarjeta de Sonido; y de Almacenamiento como el Disco Duro, el Diskette o la Memoria-Flash. Estas transferencias que se dan a travs del Bus de Datos son gobernadas por varios dispositivos y mtodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexin de componentes Perifricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semforos para el trfico en las calles de una ciudad. El Bus de Direcciones, por otra parte, est vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecucin de los procesos de cmputo, El Bus de Control transporta seales de estado de las operaciones efectuadas por el CPU con las dems unidades.

Una tarjeta-madre tipo ATX tiene tantas pistas elctricas destinadas a buses, como anchos sean los Canales de Buses del Microprocesador de la CPU: 64 para el Bus de datos y 32 para el Bus de Direcciones. El "ancho de canal" explica la cantidad de bits que pueden ser transferidos simultneamente. As, el Bus de datos transfiere 8 bytes a la vez. Para el Bus de Direcciones, el "ancho de canal" explica as mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32 potencia. "2" porque son dos las seales binarias, los bits 1 y 0; y "32 potencia" porque las 32 pistas del Bus de Direcciones son, en un instante dado, un conjunto de 32 bits. As, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" ms de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su Bus. http://es.wikipedia.org/wiki/Bus_de_datos
Concepto y Funcin Es el elemento responsable de establecer una correcta interaccin entre los diferentes componentes del ordenador, es por lo tanto, el dispositivo principal de comunicacin. En un sentido fsico, su descripcin es: conjunto de lneas de hardware (metlicas o fsicas), utilizadas para la transmisin de datos entre los componentes de un sistema informtico. En cambio, en sentido figurado es: una ruta compartida, que conecta diferentes partes del sistema. Componentes y estructura Un bus est compuesto por conductos (vas), stas hacen posible la interconexin de los diferentes componentes entre s, y principalmente con la CPU y la memoria. En estos conductos se destacan dos subcategoras, el bus de datos y el bus de direcciones; entre estos existe una fuerte relacin, puesto que para cada instruccin/archivo enviado por uno de los dos buses, por el otro va informacin sobre esta instruccin/archivo. En lo referente a la estructura de interconexin mediante los buses, existen de dos tipo:
Bus nico : considera a la memoria y a los perifricos como posiciones de memoria, y

hace un smil de las operaciones E/S con las de escritura/lectura en memoria. Todas estas equivalencias consideradas por este bus, hacen que no permita controladores DMA (Direct Acces Memory ; de acceso directo a memoria). Bus dedicado : este en cambio, al considerar la memoria y perifricos como dos componentes diferentes, permite controladores DMA (dedicando un bus especial para l). ste bus especial del bus dedicado, contiene cuatro subcategoras ms:
Bus de datos : transmite informacin entre la CPU y los perifricos. Bus de direcciones : identifica el dispositivo a quin va destinada la informacin que se

transmite

por

el

bus

de

datos.

Bus de control o de sistema : organiza y redirige la informacin hacia el bus pertinente

para la informacin que se tiene que transmitir. Es el bus encargado de hacer el direccionamiento, quin realiza toda la funcin de direccionar es el controlador, diferente para cada tipo de dispositivo. La capacidad operativa del bus depende de: la inteligencia del sistema, la velocidad de ste, y la "anchura" del bus (nmero de conductos de datos que operan en paralelo) Aqu tenemos una tabla de los difer entes procesadores que ha habido hasta ahora y su capacidad de bus:
Procesadores Bus de direcciones (bits) Bus de datos (bits)

808680186 808880188 80286 80386 SX 80386 DX 80486 SX 80486 DX PENTIUM PENTIUM II/III/IV AMD K5/K6/K7 AMD ATHLON/THUNDERBIRD AMD ATHLON XP/MP INTEL ITANIUM AMD ATHLON64

20 20 24 32
32

16 8 16 16 32

32

64

32/64

64/128

http://www.hardware12v.com/conocimientospc/41.php

Ahora vamos a ver los distintos tipos de buses que se han ido desarrollando y los que se emplean en la actualidad. EL BUS XT y EL BUS ISA (AT) Cuando en 1980 IBM fabric su primer PC, este contaba con un bus de expansin conocido como XT que funcionaba a la misma velocidad que los procesadores Intel 8086 y 8088 (4.77 Mhz). El ancho de banda de este bus (8 bits) con el procesador 8088 formaba un tandem perfecto, pero la ampliacin del bus de datos en el 8086 a 16 bits dejo en entredicho este tipo de bus (aparecieron los famosos cuellos de botella). Dada la evolucin de los microprocesadores el bus del PC no era ni mucho menos la solucin para una comunicacin fluida con el exterior del micro. En definitiva no poda hablarse de una autopista de datos en un PC cuando esta slo tena un ancho de 8 bits. Por lo tanto con la introduccin del AT apareci un nuevo bus en el mundo del PC, que en relacin con el bus de datos tena finalmente 16 bits (ISA), pero que era compatible con su antecesor. La nica diferencia fue que el bus XT era sncrono y el nuevo AT era asncrono. Las viejas tarjetas de 8 bits de la poca del PC pueden por tanto manejarse

con las nuevas tarjetas de 16 bits en un mismo dispositivo. De todas maneras las tarjetas de 16 bits son considerablemente ms rpidas, ya que transfieren la misma cantidad de datos en comparacin con las tarjetas de 8 bits en la mitad de tiempo (transferencia de 16 bits en lugar de transferencia de 8 bits). No tan solo se ampli el bus de datos sino que tambin se ampli el bus de direcciones, concretamente hasta 24 bits, de manera que este se poda dirigir al AT con memoria de 16 MB. Adems tambin se aument la velocidad de cada una de las seales de frecuencia, de manera que toda la circulacin de bus se desarrollaba ms rpidamente. De 4.77 Mhz en el XT se pas a 8.33 Mhz. Como consecuencia el bus forma un cuello de botella por el cual no pueden transferirse nunca los datos entre la memoria y la CPU lo suficientemente rpido. En los discos duros modernos por ejemplo, la relacin (ratio) de transferencia de datos ya es superior al ratio del bus. A las tarjetas de ampliacin se les ha asignado incluso un freno de seguridad, concretamente en forma de una seal de estado de espera (wait state), que deja todava mas tiempo a las tarjetas lentas para depositar los datos deseados en la CPU. Especialmente por este motivo el bus AT encontr sucesores de ms rendimiento en Micro Channel y en el Bus EISA, que sin embargo, debido a otros motivos, no han tenido xito. BUS MICRO CHANNEL (MCA) Vistas las limitaciones que tena el diseo del bus ISA en IBM se trabaj en un nueva tecnologa de bus que comercializ con su gama de ordenadores PS/2. El diseo MCA (Micro Channel Arquitecture) permita una ruta de datos de 32 bits, ms ancha, y una velocidad de reloj ligeramente ms elevada de 10 Mhz, con una velocidad de transferencia mxima de 20 Mbps frente a los 8 Mbps del bus ISA. Pero lo que es ms importante el novedoso diseo de bus de IBM incluy un circuito de control especial a cargo del bus, que le permita operar independientemente de la velocidad e incluso del tipo del microprocesador del sistema. Bajo MCA, la CPU no es ms que uno de los posibles dispositivos dominantes del bus a los que se puede acceder para gestionar transferencias. La circuitera de control, llamada CAP (punto de decisin central), se enlaza con un proceso denominado control del bus para determinar y responder a las prioridades de cada uno de los dispositivos que dominan el bus. Para permitir la conexin de ms dispositivos, el bus MCA especifica interrupciones sensibles al nivel, que resultan ms fiables que el sistema de interrupciones del bus ISA. De esta forma es posible compartir interrupciones. Pero adems se impusieron estndares de rendimiento superiores en las tarjetas de expansin. Es cierto que el progreso conlleva un precio: La arquitectura de IBM era totalmente incompatible con las tarjetas de expansin que se incluyen en el bus ISA. Esto viene derivado de que los conectores de las tarjetas de expansin MCA eran ms pequeos que las de los buses ISA. De esto se pueden sacar dos conclusiones. Por un lado el coste

de estas tarjetas era menor y por otro ofreca un mayor espacio interior en las pequeas cajas de sobremesa. Las seales del bus estaban reorganizadas de forma que se introduca una seal de tierra cada 4 conectores. De esta forma se ayudaba a reducir las interferencias. EISA (Extended ISA) El principal rival del bus MCA fue el bus EISA, tambin basado en la idea de controlar el bus desde el microprocesador y ensanchar la ruta de datos hasta 32 bits. Sin embargo EISA mantuvo compatibilidad con las tarjetas de expansin ISA ya existentes lo cual le obligo a funcionar a una velocidad de 8 Mhz (exactamente 8.33). Esta limitacin fue a la postre la que adjudico el papel de estndar a esta arquitectura, ya que los usuarios no vean factible cambiar sus antiguas tarjetas ISA por otras nuevas que en realidad no podan aprovechar al 100%. Su mayor ventaja con respecto al bus MCA es que EISA era un sistema abierto, ya que fue desarrollado por la mayora de fabricantes de ordenadores compatibles PC que no aceptaron el monopolio que intent ejercer IBM. Estos fabricantes fueron: AST, Compaq, Epson, Hewlett Packard, NEC, Olivetti, Tandy, Wyse y Zenith. Esta arquitectura de bus permite multiproceso, es decir, integrar en el sistema varios buses dentro del sistema, cada uno con su procesador. Si bien esta caracterstica no es utilizada ms que por sistemas operativos como UNIX o Windows NT. En una mquina EISA, puede haber al mismo tiempo hasta 6 buses principales con diferentes procesadores centrales y con sus correspondientes tarjetas auxiliares. En este bus hay un chip que se encarga de controlar el trfico de datos sealando prioridades para cada posible punto de colisin o bloqueo mediante las reglas de control de la especificacin EISA. Este chip recibe el nombre de Chip del Sistema Perifrico Integrado (ISP). Este chip acta en la CPU como un controlador del trfico de datos. El motivo para que ni MCA ni EISA hayan sustituido por completo a ISA es muy sencillo: Estas alternativas aumentaban el coste del PC (incluso ms del 50%) y no ofrecan ninguna mejora evidente en el rendimiento del sistema. Es ms, en el momento en que se presentaron estos buses (1987-1988) esta superioridad en el rendimiento no resultaba excesivamente necesaria: Muy pocos dispositivos llegaban a los lmites del rendimiento del bus ISA ordinario. Cuantas ms lneas hayan disponibles, mayor es la direccin mxima y mayor es la memoria a la cual puede dirigirse de esta forma. En el bus de direcciones original haban ya 20 direcciones, ya que con 20 bits se puede dirigir a una memoria de 1 Mb y esto era exactamente lo que corresponda a la CPU. Esto que en le teora parece tan fcil es bastante mas complicado en la prctica, ya que aparte de los bus de datos y de direcciones existen tambin casi dos docenas ms de lneas de seal en la comunicacin entre la CPU y la memoria, a las cuales tambin se acude. Todas las tarjetas del bus escuchan, y se tendr que encontrar en primer lugar una tarjeta que mediante el envo de una seal adecuada indique a la CPU que es

responsable de la direccin que se ha introducido. Las dems tarjetas se despreocupan del resto de la comunicacin y quedan a la espera del prximo ciclo de transporte de datos que quizs les incumba a ellas.

Este mismo concepto es tambin la razn por la cual al utilizar tarjetas de ampliacin en un PC surgen problemas una y otra vez, si hay dos tarjetas que reclaman para ellas el mismo campo de direccin o campos de direccin que se solapan entre ellos. Los datos en si no se mandan al bus de direcciones sino al bus de datos. El bus XT tena solo 8 bits con lo cual slo poda transportar 1 byte a la vez. Si la CPU quera depositar el contenido de un registro de 16 bits o por valor de 16 bits, tena que desdoblarlos en dos bytes y efectuar la transferencia de datos uno detrs de otro. De todas maneras para los fabricantes de tarjetas de ampliacin, cuyos productos deben atenderse a este protocolo, es de una importancia bsica la regulacin del tiempo de las seales del bus, para poder trabajar de forma inmejorable con el PC. Pero precisamente este protocolo no ha sido nunca publicado por lBM con lo que se obliga a los fabricantes a medir las seales con la ayuda de tarjetas ya existentes e imitarlas. Por lo tanto no es de extraar que se pusieran en juego tolerancias que dejaron algunas tarjetas totalmente eliminadas.

http://www.mailxmail.com/curso/informatica/arquitectu raordenadores/capitulo7.htm
Estructuras de interconexin Existen dos organizaciones fsicas de operaciones E/S que tienen que ver con los buses que son: - Bus nico - Bus dedicado La primera gran diferencia entre estas dos tipos de estructuras es que el bus nico no permite un controlador DMA (todo se controla desde la CPU), mientras que el bus dedicado si que soporta este controlador.

El bus dedicado trata a la memoria de manera distinta que a los perifricos (utiliza un bus especial) al contrario que el bus nico que los considera a ambos como posiciones de memoria (incluso equipara las operaciones E/S con las de lectura/escritura en memoria). Este bus especial que utiliza el bus dedicado tiene 4 componentes fundamentales: - Datos: Intercambio de informacin entre la CPU y los perifricos. - Control: Lleva informacin referente al estado de los perifricos (peticin de interrupciones). - Direcciones: Identifica el perifrico referido. - Sincronizacin: Temporiza las seales de reloj. La mayor ventaja del bus nico es su simplicidad de estructura que le hace ser ms econmico, pero no permite que se realice a la vez transferencia de informacin entre la memoria y el procesador y entre los perifricos y el procesador. Por otro lado el bus dedicado es mucho ms flexible y permite transferencias simultneas. Por contra su estructura es ms compleja y por tanto sus costes son mayores.

http://www.mailxmail.com/curso/informatica/arquitectu raordenadores/capitulo8.htm
PCI (Peripheral Component Interconnect) Visto lo anterior, se puede ver que el bus del futuro es claramente el PCI de Intel. PCI significa: interconexin de los componentes perifricos (Peripheral Component Interconnect) y presenta un moderno bus que no slo est meditado para no tener la relacin del bus ISA en relacin a la frecuencia de reloj o su capacidad sino que tambin la sincronizacin con las tarjetas de ampliacin en relacin a sus direcciones de puerto, canales DMA e interrupciones se ha automatizado finalmente de tal manera que el usuario no deber preocuparse ms por ello. El bus PCI es independiente de la CPU, ya que entre la CPU y el bus PCI se instalar siempre un controlador de bus PCI, lo que facilita en gran medida el trabajo de los diseadores de placas. Por ello tambin ser posible instalarlo en sistemas que no estn basados en el procesador Intel si no que pueden usar otros, como por ejemplo, un procesador Alpha de DEC. Tambin los procesadores PowerMacintosh de Apple se suministran en la actualidad con bus PCI. Las tarjetas de expansin PCI trabajan eficientemente en todos los sistemas y pueden ser intercambiadas de la manera que se desee. Solamente los controladores de dispositivo deben naturalmente ser ajustados al sistema anfitrin (host) es decir a su correspondiente CPU. Como vemos el bus PCI no depende del reloj de la CPU, porque est separado de ella por el controlador del bus. Si se instalara una CPU ms rpida en su ordenador no debera preocuparse porque las tarjetas de expansin instaladas no pudieran soportar las frecuencias de reloj superiores, pues con la separacin del bus PCI de la CPU stas no

son influidas por esas frecuencias de reloj. As se ha evitado desde el primer momento este problema y defecto del bus VL. El bus PCI emplea un conector estilo Micro Channel de 124 pines (188 en caso de una implementacin de 64 bits) pero nicamente 47 de estas conexiones se emplean en una tarjeta de expansin (49 en caso de que se trate de un adaptador bus-master); la diferencia se debe a la incorporacin de una lnea de alimentacin y otra de tierra. Cada una de las seales activas del bus PCI est bien junto o frente a una seal de alimentacin o de tierra, una tcnica que minimiza la radiacin. El lmite prctico en la cantidad de conectores para buses PCI es de tres; como ocurre con el VL, ms conectores aumentaran la capacitancia del bus y las operaciones a mxima velocidad resultaran menos fiables. A pesar de presentar un rendimiento similar al de un bus local conectado directamente, en realidad PCI no es ms que la eliminacin de un paso en el microprocesador. En lugar de disponer de su propio reloj, un bus PCI se adapta al empleado por el microprocesador y su circuitera, por tanto los componentes del PCI estn sincronizados con el procesador. El actual estndar PCI autoriza frecuencias de reloj que oscilan entre 20 y 33 Mhz. A pesar que de que las tarjetas ISA no pueden ser instaladas en una ranura PCI, no debera renunciarse a la posibilidad de insercin de una tarjeta ISA. As pues, a menudo se puede encontrar en un equipo con bus PCI la interfaz puente llamada PCI-ToISA-Bridge. Se trata de un chip que se conecta entre los distintos slots ISA y el controlador del bus PCI. Su tarea consiste en transponer las seales provenientes del bus PCI al bus ISA. De esta manera pueden seguir siendo utilizadas las tarjetas ISA al amparo del bus PCI. A pesar de que el bus PCI es el presente, sigue habiendo buses y tarjetas de expansin ISA ya que no todas las tarjetas de expansin requieren las ratios de transferencia que permite el bus PCI. Sin embargo las tarjetas grficas, tarjetas SCSI y tarjetas de red se han decantando cada vez ms fuertemente hacia el bus PCI. La ventaja de la velocidad de este sistema de bus es que este hardware puede participar del continuo incremento de velocidad de los procesadores.

http://www.mailxmail.com/curso/informatica/arquitectu raordenadores/capitulo12.htm
SCSI (Small Computer System Interface) Adems de todas las arquitecturas mencionadas anteriormente, tambin hay que mencionar a SCSI. Esta tecnologa tiene su origen a principios de los aos 80 cuando un fabricante de discos desarrollo su propia interface de E/S denominado SASI (Shugart Asociates System Interface) que debido a su gran xito comercial fue presentado y aprobado por ANSI en 1986.

SCSI no se conecta directamente al microprocesador sino que utiliza de puente uno de los buses anteriormente nombrados. Podramos definir SCSI como un subsistema de E/S inteligente, completa y bidireccional. Un solo adaptador host SCSI puede controlar hasta 7 dispositivos inteligentes SCSI conectados a l. Una ventaja del bus SCSI frente a otros interfaces es que los dispositivos del bus se direccionan lgicamente en vez de fsicamente. Esto sirve para 2 propsitos: 1.- Elimina cualquier limitacin que el PC-Bios imponga a las unidades de disco. 2.- El direccionamiento lgico elimina la sobrecarga que el host podra tener en manejar los aspectos fsicos del dispositivo como la tabla de pistas daadas. El controlador SCSI lo maneja. Es un bus que a diferencia de otros buses como el ESDI puede tener hasta 8 dispositivos diferentes conectados al bus (incluido el controlador). Aunque potencialmente varios dispositivos pueden compartir un mismo adaptador SCSI, slo 2 dispositivos SCSI pueden comunicarse sobre el bus al mismo tiempo. El bus SCSI puede configurarse de tres maneras diferenciadas que le dan gran versatilidad a este bus: 1.- nico iniciador/nico objetivo: Es la configuracin ms comn donde el iniciador es un adaptador a una ranura de un PC y el objetivo es el controlador del disco duro. Esta es una configuracin fcil de implementar pero no aprovecha las capacidades del bus SCSI, excepto para controlar varios discos duros. 2.- nico iniciador/Mltiple objetivo: Menos comn y raramente implementado. Esta configuracin es muy parecida a la anterior excepto para diferentes tipos de dispositivos E/S que se puedan gestionar por el mismo adaptador. Por ejemplo un disco duro y un reproductor de CD-ROM. 3.- Mltiple iniciador/Mltiple objetivo: Es mucho menos comn que las anteriores pero as es como se utilizan a fondo las capacidades del bus. Dentro de la tecnologa SCSI hay 2 generaciones y una tercera que est a punto de generalizarse. La primera generacin permita un ancho de banda de 8 bits y unos ratios de transferencia de hasta 5 MBps. El mayor problema de esta especificacin fue que para que un producto se denominara SCSI solo deba cumplir 4 cdigos de operacin de los 64 disponibles por lo que proliferaron en el mercado gran cantidad de dispositivos SCSI no compatibles entre s. Esto cambi con la especificacin 2.0 ya que exiga un mnimo de 12 cdigos, por lo que aumentaba la compatibilidad entre dispositivos. Otro punto a favor de SCSI 2.0 es el aumento del ancho de banda de 8 a 16 y 32 bits. Esto se consigue gracias a las implementaciones wide (ancho) y fast (rpido). Combinando estas dos metodologas se llega a conseguir una transferencia mxima de 40 Mbps con 32 bits de ancho (20 Mbps con un ancho de banda de 16 bits).

El protocolo SCSI 3.0 no establecer nuevas prestaciones de los protocolos, pero si refinar el funcionamiento de SCSI.

http://www.mailxmail.com/curso/informatica/arquitectu raordenadores/capitulo13.htm
AGP (Accelerated Graphics Port) La tecnologa AGP, creada por Intel, tiene como objetivo fundamental el nacimiento de un nuevo tipo de PC, en el que se preste especial atencin a dos facetas: grficos y conectividad. La especificacin AGP se basa en la especificacin PCI 2.1 de 66 Mhz (aunque sta apenas se usa, dado que la mayora de las tarjetas grficas disponibles tan slo son capaces de utilizar la velocidad de bus de 33 Mhz), y aade tres caractersticas fundamentales para incrementar su rendimiento: operaciones de lectura/escritura en memoria con pipeline, demultiplexado de datos y direcciones en el propio bus, e incremento de la velocidad hasta los 100 Mhz (lo que supondra unos ratios de transferencia de unos 800 Mbytes por segundo, superiores en ms de 4 veces a los alcanzados por PCI). Pero el bus AGP es tambin un bus exclusivamente dedicado al apartado grfico, tal y como se deriva de su propio nombre, Accelerated Graphics Port o bus acelerado para grficos. Esto tiene como consecuencia inmediata que no se vea obligado a compartir el ancho de banda con otros componentes, como sucede en el caso del PCI. Otra caracterstica interesante es que la arquitectura AGP posibilita la comparticin de la memoria principal por parte de la aceleradora grfica, mediante un modelo que Intel denomina DIME (Direct Memory Execute, o ejecucin directa a memoria) y que posibilitar mejores texturas en los futuros juegos y aplicaciones 3D, al almacenar stas en la RAM del sistema y transferirlas tan pronto como se necesiten.

http://www.mailxmail.com/curso/informatica/arquitectur aordenadores/capitulo14.htm
Los buses. Son el conjunto de lneas o caminos por los cuales los datos fluyen internamente de una parte a otra de la computadora (CPU, disco duro, memoria). Puede decirse que en las computadoras modernas hay muchos buses, por ejemplo entre los puertos IDE y los drives, entre una placa Aceleradora de video y la memoria Ram, entre el modem y el Chipset, etc. Pero Los buses bsicos son: a) el bus interno (bus de datos), o sea el que comunica los diferentes componentes con la CPU y la memoria RAM, formado por los hilos conductores que vemos en el circuito impreso de la placa, y el bus de direcciones.

b) El bus de expansin constituido por el conjunto de slots o ranuras en donde se insertan placas independientes de sonido, video, modem, etc. Este segn ha aumentado su capacidad de transmisin ha cambiado de nomenclatura: ISA (Industry Standard Architecture), 1981, solo trabaja con un ancho de banda de 16 bits, VESA (Video Electronics Standard Association), 1992, trabaja a 32 bits, pero cayo rpidamente en desuso al aparecer el actual PCI (Peripheral Component Interconnect), 1992, cuyo ancho de banda es de 64 bits. De la velocidad de transmisin del bus interno depende la seleccin de algunos componentes como el Microprocesador y la memoria Ram en una motherboard, entendindose por ejemplo que una PLACA BASE cuya velocidad de transferencia es de 100 MHz, no admite procesadores Pentium IV (que necesitan buses con mayor velocidad de transmisin) ni mdulos de memoria que trabajan exclusivamente en buses con velocidad de 133 MHz. Por otra parte es importante resaltar la diferencia de conceptos que hay entre: numero de lneas de un bus (16, 32, 64 bits) y la frecuencia de trabajo del bus. La multiplicacin de estos dos factores representa al ancho de banda y se mide en Mb/s. Todo bus local esta compuesto de dos reas: datos y direcciones. El bus de datos lo forman las lneas dedicadas a la transmisin de seales u ordenes, el bus de direcciones lo constituyen las lneas que dan a conocer las posiciones de ubicacin de los datos en la memoria (registros). Buses actuales. En conjuncin con la Informtica, la electrnica innova permanentemente para crear nuevas y mas eficientes rutas de comunicacin entre los PC y sus perifricos. Muchas de estas vas pueden realmente llamarse buses entre tanto que otras solo deben clasificarse como puertos. A continuacin una descripcin de las principales tecnologas empezando por las de mayor relevancia.. BUS PCI. Es el bus local estndar en las motherboards actuales. El nombre abreviado proviene de Peripheral Component Interconnect y fue dado a conocer por Intel en 1993. PCI es un bus local compuesto por lneas fsicas que permiten comunicar el Microprocesador con otro componente. Los puntos de conexin de los componentes son los SLOTS o puertos de expansin que se observan en las motherboards, como bloques de plstico blanco. Detalles tcnicos de PCI. 1. Es un bus de 64 bits (64 lneas de transmisin). Se lo utiliza principalmente como un bus de 32 bits. 2. Trabaja con frecuencias variadas: 33 MHz, 66 Mhz, 100 MHz, 400 Mhz, etc., lo que permite alcanzar un ancho de banda de gran capacidad. 3. 32 lineas son utilizadas para transmitir datos y direcciones en forma multiplexada (multiplexado= utilizacin de una misma lnea para transmitir datos y direcciones). Las dems lneas sirven para interpretar y validar las seales correspondientes a datos y direcciones. 4. A diferencia de su antecesor el bus AT (ISA), PCI utiliza circuitos PCI Bridge para comunicar al Microprocesador con otros componentes, lo que permite que los dispositivos acoplados en el bus PCI puedan trabajar con diferentes tipos de Microprocesadores. 5. El nmero de dispositivos que pueden conectarse al bus PCI est limitado a 32. No obstante, la norma PCI admite la jerarquizacin de buses incrementndose el nmero de dispositivos que pueden conectarse. El software de configuracin debe ser capaz de realizar transacciones de configuracin en todos los dispositivos PCI que residen ms all del puente PCI/host (bridge). 6. Control de error en la

transmisin, mediante el uso de bits de control de paridad (uso de seales de verificacin de envio - recepcin entre los dispositivos). BUS AGP. Accelerated Graphics Port. Se trata de un bus independiente del bus general constituido por un slot especfico para tarjetas grficas. Es un bus de 32 bits que trabaja a 66 MHz, pero tiene la posibilidad de doblar o cuadruplicar las caractersticas bsicas, hasta una tasa de transferencia mxima de 1064 Mbits por segundo. Puede decirse que no es un bus en el sentido estricto de la palabra sino ms bien una extensin de la norma PCI, razn por la cual en algunos aspectos es idntico a aquel. Actualmente es un puerto de uso exclusivo para dispositivos grficos de alta velocidad. Ver aqu la foto de su ubicacin fsica en una motherboard. BUS USB. 1996. Universal serial bus. Es un nuevo estndar para comunicaciones serie que resuelve muchos de los inconvenientes de los antiguos puertos COM ( dificultades en la adaptacin a un puerto COM libre, conflicto de los vectores de interrupcin IRQ, etc.). Presenta muchas ventajas frente a sistemas tradicionales: velocidades de trabajo hasta de 480 Mb/s (USB 2.0), incluye alimentacin elctrica para dispositivos con bajo consumo de energa ( alrededor de los 5 voltios), permite conectar hasta 127 dispositivos, todos ellos compartiendo el mismo canal; permite realizar conexin y desconexin en "caliente" (sin apagar el equipo), permite utilizar cables de hasta 5m de longitud para dispositivos de alta velocidad. Actualmente todos los PCs disponen de por lo menos un par de salidas USB y muchos dispositivos, como impresoras, ratones, escneres, webcams, equipos de fotografa digital, etc. que antes se conectaban a travs de puertos COM o LPT lo hacen ahora mediante USB. Mas detalles en el apartado Puertos. BUS E-IDE. Enhanced Integrated Drive Electronics. Debe ser considerado mas como una Interface. Se trata de una tecnologa electrnica que basa el control de la comunicacin en una placa integrada en el propio dispositivo. El bus lo constituye un cable plano de 40 u 80 hilos conductores que comunica el conector del dispositivo (disco duro, CD-ROM o grabador de CD) con el conector o puerto IDE de la motherboard. Las placas base actuales se fabrican con dos puertos: IDE 0 e IDE1. Teoricamente cada puerto IDE representa un canal. Cada canal permite la conexin de hasta 2 drives (discos duros o unidades opticas). Detalles de esta conexion se amplian bajo el tema 'Interfaces del Disco duro'. BUS SCSI. 1980, 1986. Small Computer System Interface. Es la interface de mayor capacidad, velocidad y estabilidad para conectar dispositivos directamente a una motherboard. En las computadoras desktop, SCSI es una interface pues se fabrica sobre una placa que se inserta en un slot de la motherboard (actualmente en slots PCI). Esta independencia fsica del microprocesador tiene la gran ventaja de hacer que los dispositivos se direccionen lgicamente en contraposicin al direccionamiento fsico que utiliza IDE. La consecuencia inmediata es que los dispositivos quedan liberados de las imposiciones que el Bios pudiera imponer pues SCSI se encarga de hacer el trabajo completo de comunicacin y configuracin. Esta capacidad lo ha hecho el preferido en equipos en los que se requiere estabilidad y alta velocidad de transmisin, como los servidores. La ultima versin de SCSI es la Wide Ultra2 SCSI, que usa un bus de 16 bits, un ancho de banda de 80MB/s y trabaja con cables planos de 68 hilos. La interface al trabajar como un dispositivo I/O (de entrada y salida) permite en teora conectar 8 dispositivos simultneamente, en una conexin en la que cada

dispositivo se une al siguiente y en donde cada dispositivo tiene su propio ID ante el host. El mayor uso de SCSI se da en la conexin de discos duros, tape drives, unidades pticas, escneres e impresoras. Los dispositivos externos que trabajan con interface SCSI tienen dos puertos: uno para la entrada del cable y otro para conectarse al siguiente dispositivo. El ultimo elemento debe cerrar la cadena mediante un circuito 'terminador' para que la conexin funcione.

http://www.servicioalpc.com/ensamble5.htm

2.6.1

Bus Local.

Bus local. Bus entre la CPU, la memoria y dispositivos perifricos que corre a la velocidad de la CPU. En un computador personal, el bus VL y el PCI suministran una transferencia de datos ms rpida que el bus ISA tradicional. A partir del 386, cuando las velocidades de la CPU comenzaron a acelerarse enormemente, los computadores personales vienen con dos buses. La CPU tiene acceso a sus chips de memoria a travs de una va de acceso interna de 32 bits (63 bits con el Pentium), conocida como bus local, a la velocidad ms alta del reloj de la CPU (25MHz, 33MHz, etc.). Sin embargo, tradicionalmente ha tenido acceso a sus dispositivos perifricos en forma ms lenta, en un bus ISA de 16 bits slo a 8MHz. Incluso en el bus EISA de 32 bits inherentemente ms rpido corre en forma lenta para acomodar las tarjetas ISA, que se conectan a ste. Los estndares de bus VL de VESA y de bus local PCI de Intel se crearon para aprovechar las velocidades ms altas de la CPU. El PC corre a 33MHz; el bus VL hasta a 40MHz; esperndose ms altas velocidades. Las tarjetas base ISA y EISA se construyen ahora con ranuras adicionales para el bus VL o las tarjetas PCI, o ambos.
http://www.glosarium.com/term/893,14,xhtml LOCAL BUS Teniendo en cuenta las mencionadas limitaciones del bus AT y la infalibilidad de los buses EISA y MCA para asentarse en el mercado, en estos aos se han ideado otros conceptos de bus. Se inici con el llamado Vesa Local Bus (VL-Bus), que fue concebido y propagado independientemente por el comit VESA, que se propuso el definir estndares en el mbito de las tarjetas grficas y as por primera vez y realmente tuviera poco que ver con el diseo del bus del PC. Fueron y son todava las tarjetas grficas quienes sufren la menor velocidad del bus AT. Por eso surgi, en el Comit VESA, la propuesta para un bus ms rpido que fue el VESA Local Bus. Vesa Local Bus Al contrario que con el EISA, MCA y PCI, el bus VL no sustituye al bus ISA sino que lo complementa. Un PC con bus VL dispone para ello de un bus ISA y de las correspondientes ranuras (slots) para tarjetas de ampliacin. Adems, en un PC con bus VL puede haber, sin embargo, una, dos o incluso tres ranuras de expansin, para la colocacin de tarjetas concebidas para el bus VL, casi siempre grficos. Solamente estos slots estn conectados con la CPU a travs de un bus VL, de tal manera que las otras ranuras permanecen sin ser molestadas y las tarjetas ISA pueden hacer su servicio sin inconvenientes.

El VL es una expansin homogeneizada de bus local, que funciona a 32 bits, pero que puede realizar operaciones a 16 bits. VESA present la primera versin del estndar VL-BUS en agosto de 1992. La aceptacin por parte del mercado fue inmediata. Fiel a sus orgenes, el VL-BUS se acerca mucho al diseo del procesador 80486. De hecho presenta las mismas necesidades de seal de dicho chip, exceptuando unas cuantas menos estrictas destinadas a mantener la compatibilidad con los 386. La especificacin VL-Bus como tal, no establece lmites, ni superiores ni inferiores, en la velocidad del reloj, pero una mayor cantidad de conectores supone una mayor capacitancia, lo que hace que la fiabilidad disminuya a la par que aumenta la frecuencia. En la prctica, el VL-BUS no puede superar los 66 Mhz. Por este motivo, la especificacin VL-BUS original recomienda que los diseadores no empleen ms de tres dispositivos de bus local en sistemas que operan a velocidades superiores a los 33 Mhz. A velocidades de bus superiores, el total disminuye: a 40 Mhz solo se pueden incorporar dos dispositivos; y a 50 Mhz un nico dispositivo que ha de integrarse en la placa. En la prctica, la mejor combinacin de rendimiento y funciones aparece a 33 Mhz. Tras la presentacin del procesador Pentium a 64 bits, VESA comenz a trabajar en un nuevo estndar (VL-Bus versin 2.0). La nueva especificacin define un interface de 64 bits pero que mantienen toda compatibilidad con la actual especificacin VL-BUS. La nueva especificacin 2.0 redefine adems la cantidad mxima de ranuras VL-BUYS que se permiten en un sistema sencillo. Ahora consta de hasta tres ranuras a 40 Mhz y dos a 50 Mhz, siempre que el sistema utilice un diseo de baja capacitancia. En el nombre del bus VL queda de manifiesto que se trata de un bus local. De forma distinta al bus ISA ste se acopla directamente en la CPU. Esto le proporciona por un lado una mejora substancial de la frecuencia de reloj (de la CPU) y hace que dependa de las lnea de control de la CPU y del reloj. A estas desventajas hay que aadirle que no en todos los puntos estn bien resueltas las especificaciones del comit VESA, hecho que a la larga le llevar a que el xito del bus VL se vea empaado por ello. En sistemas 486 econmicos se poda encontrar a menudo, pero su mejor momento ya ha pasado.

Bus local. Bus entre la CPU, la memoria y dispositivos perifricos que corre a la velocidad de la CPU. En un computador personal, el bus VL y el PCI suministran una transferencia de datos ms rpida que el bus ISA tradicional. A partir del 386, cuando las velocidades de la CPU comenzaron a acelerarse enormemente, los computadores personales vienen con dos buses. La CPU tiene acceso a sus chips de memoria a travs de una va de acceso interna de 32 bits (63 bits con el Pentium), conocida como bus local, a la velocidad ms alta del reloj de la CPU (25MHz, 33MHz, etc.). Sin embargo, tradicionalmente ha tenido acceso a sus dispositivos perifricos en forma ms lenta, en un bus ISA de 16 bits slo a 8MHz. Incluso en el bus EISA de 32 bits inherentemente ms rpido corre en forma lenta para acomodar las tarjetas ISA, que se conectan a ste. Los estndares de bus VL de VESA y de bus local PCI de Intel se crearon para aprovechar las velocidades ms altas de la CPU. El PC corre a 33MHz; el bus VL hasta a 40MHz; esperndose ms altas

velocidades. Las tarjetas base ISA y EISA se construyen ahora con ranuras adicionales para el bus VL o las tarjetas PCI, o ambos.
http://www.glosarium.com/term/893,14,xhtml

EL BUS LOCAL PCI

Cuando IBM diseo su primer ordenador, el PC, diseo un bus para la conexin de perifricos, que aunque en aquel entonces era mas que suficiente para los dispositivos existentes, quedo rpidamente obsoleto con la aparicin de los nuevos microprocesadores rpidos y de los dispositivos que necesitaban una gran velocidad de transferencia para comunicarse con el procesador del sistema. Este bus fue denominado ISA, se encontraba disponible en dos versiones, una de 8 bits (que la integraban los primeros PC) y otra de 16 bits (que apareci junto con los primeros AT con procesador 80286). Ambas versiones del bus ISA funcionaban a una velocidad de 8 Mhz. si bien existen ordenadores compatibles en los que la velocidad del bus se puede elevar hasta 10 o 12 Mhz. Esta caracterstica hizo que en poco tiempo los usuarios poseedores de ordenadores con procesadores 386 a 40 Mhz o 486 a 33 Mhz. se vieran frenados de forma considerable al hacer accesos al bus ISA. Dejando a parte las soluciones propietarias desarrolladas por algunos fabricantes de ordenadores, el primer bus local que tuvo una plena aceptacin por parte del publico en general fue el bus local VESA. Esta tecnologa aprovechaba el bus local del propio procesador para implementar dos o tres ranuras de expansin, mediante los cuales el usuario conectaba las tarjetas que normalmente contenan los dispositivos que podan representar en cuello de botella durante el funcionamiento del ordenador (Tarjeta grafica, y controladora de disco). Sin embargo, esta tecnologa tenia como todo ventajas e inconvenientes. La ventaja principal era su bajo coste de implementacin. Por otro lado los fabricantes se encontraron con una especificacin del bus que era un poco vaga, por lo que rpidamente aparecieron problemas de incompatibilidad entre algunas placas base y determinadas tarjetas de expansin. Adems el diseo elctrico de este bus hacia que solo se pudieran disear placas con dos o a lo sumo tres ranuras de expansin VESA. Para completar este relativamente desolador panorama, el bus VESA era de 32 bits, y al menos en un primer momento no exista una especificacin de 64 bits. Para crear un bus local que fuese aceptado tanto por la industria informtica como por los usuarios, una serie de compaas, entre ellas Intel, se unieron en un comit, el cual fue el encargado de crear las especificaciones de lo que hoy en da conocemos como bus PCI. El bus local PCI es un bus de alto rendimiento de 32 o 64 bits de anchura (casi todas las implementaciones actuales soportan solo la versin de 32 bits) dotado de lneas de datos y direcciones multiplexadas. Este bus esta diseado como mecanismo de interconexin entre componentes de la placa base, tarjetas de expansin y subsistema de memoria, y el propio procesador. En un sistema PCI tpico, el subsistema formado por el procesador, la memoria cache externa o de segundo nivel y la memoria principal se conectan al bus PCI mediante un bridge o puente PCI. Este puente proporciona un acceso mediante el cual el procesador puede acceder directamente a los dispositivos PCI, ya sea

mediante entrada/salida mapeada en la memoria del sistema o utilizando un espacio de direcciones separado para las operaciones de entrada/salida. La especificacin PCI permite la existencia de dispositivos PCI maestros o masteres, los cuales con capaces de acceder a la memoria principal de ordenador sin que sea necesaria la intervencin del microprocesador. El bridge puede disponer de algunas otras funciones destinadas a optimizar el rendimiento general del sistema, como por ejemplo buffer de escritura y de arbitro del bus. Las configuraciones PCI tpicas permiten la conexin de hasta cuatro tarjetas de expansin. En cuanto al tamao de las tarjetas de expansin, se han definido tres tamaos, tarjetas largas, cortas y cortas de longitud variable. No es necesario que todos los sistemas soporten estos tres tipos de tarjetas. Los dos tipos de voltajes soportados por el bus PCI (5 y 3'3 voltios) han tenido su influencia en el diseo de las tarjetas de expansin, de forma que se han definido tres tipos de tarjetas: una tarjeta de cinco voltios, que solo se puede conectar a las ranuras PCI de este tipo, una tarjeta "universal" que se puede conectar a ranuras de 5 y 3'3 voltios, y por ultimo otro tipo de tarjeta que solo se puede conectar a las ranuras de 3'3 voltios. La velocidad estndar de funcionamiento del PCI es de 33 Mhz, por lo que asumiendo un ancho de banda de 32 bits es posible obtener velocidades superiores a los 120 MB/seg.

http://www.dinastiasoft.com.ar/Tecnologia/PCI.htm

La conexin entre los elementos de un computador se realiza a travs de los BUSES. Un bus es un conjunto de cables (pistas de circuito impreso o hilos conductores) que proporciona un camino para el flujo de informacin entre los distintos elementos que forman el ordenador. Cuando un dato pasa de un componente a otro, viaja a lo largo de este camino comn para alcanzar su destino. Por cada pista o cable se transmite un bit; para transmitir un bloque de varios bytes, pueden transmitirse todos por el mismo hilo (un bit despus de otro), lo que se denomina transmisin en serie, o transmitir por distintos cables a la vez, lo que nos proporciona una transmisin en paralelo. Por el bus se debe transmitir distintos tipos de informacin: la direccin del dato al que se quiere acceder, el dato a transferir, o informacin de control para permitir la operacin de los distintos elementos.
http://64.233.167.104/search? q=cache:QXZW4e1mbg8J:wwwdi.ujaen.es/~mcdiaz/docencia/cur04_05/fi/teoria/04_Or denador.pdf+%22funcionamiento+de+la+memoria%22informatica&hl=es

2.6.2

Bus de datos.

Sirve para transmitir informacin entre el microprocesador, la memoria y los perifricos. Por l circulan los datos y las instrucciones. Tiene tantas lneas como bits se transmiten en paralelo (una para cada bit). El flujo es de doble sentido y a mayor nmero de bits paralelos mayor podr ser la velocidad de transmisin que consigamos. El ancho de este bus (n de bits que puede transmitir simultneamente en paralelo) es una medida de la potencia del microprocesador. Este bus es como

una autopista de datos electrnicos y cuanto ms ancho sea, ms datos podrn moverse al mismo tiempo. El ancho del bus de datos es una de las caractersticas ms importantes del microprocesador. Cuando decimos que un microprocesadores, por ej., de 16 bits, nos estamos refiriendo al ancho de su bus de datos. http://www.lawebdelprogramador.com/diccionario/mostrar.php?letra=B&pagina=4 El Bus de Datos es bidireccional, pues los datos pueden fluir hacia desde la CPU. Los m terminales de la CPU, de D0 - Dm-1 , pueden ser entradas salidas, segn la operacin que se este realizando ( lectura escritura ) . en todos los casos, las palabras de datos transmitidas tiene m bits de longitud debido a que la CPU maneja palabras de datos de m bits; del nmero de bits del bus de datos, depende la clasificacin del microprocesador. En algunos microprocesadores, el bus de datos se usa para transmitir otra informacin adems de los datos ( por ejemplo, bits de direccin informacin de condiciones ). Es decir, el bus de datos es compartido en el tiempo multiplexado. En general se adopt 8 bits como ancho estndar para el bus de datos de los primeros computadores PC y XT. Usualmente el computador transmite un carcter por cada pulsacin de reloj que controla el bus (bus clock), el cual deriva sus pulsaciones del reloj del sistema (system clock). Algunos computadores lentos necesitan hasta dos pulsaciones de reloj para transmitir un carcter. Los computadores con procesador 80286 usan un bus de datos de 16 bits de ancho, lo cual permite la comunicacin de dos caracteres o bytes a la vez por cada pulsacin de reloj en el bus. Los procesadores 80386 y 80486 usan buses de 32 bits. El PENTIUM de Intel utiliza bus externo de datos de 64 bits, y uno de 32 bits interno en el microprocesador. Bus de datos de 16 bits Los procesadores dominantes antes de la introduccin del IBM PC, basado en el 8086, eran todos de 8 bits; con lo que nos refereimos al bus de datos. Esto quiere decir que se poda accesar un byte de memoria en un solo ciclo de reloj, pues existan 8 cables entre la memoria y el procesador, por donde viajaban a la vez 8 bits de informacin. Que el procesador ahora sea de 16 bits, quiere decir que pueden viajar a la vez 16 bits (2 bytes) entre el procesador y la memoria; por tanto, el procesador puede mover bloques de memoria en la mitad del tiempo, y con la mitad de instrucciones. Esto hace ms eficiente el acceso a memoria por parte del procesador. Al tamao del bus de datos tambin suele llamrsele tamao de palabra.

Bus de datos, que transporta los datos que se transfieren entre unidades. El nmero de lneas (y por tanto el nmero de bits) que utilice el bus de datos en un ordenador determina el tamao de su palabra, es decir el tamao del dato que se puede transmitir. Es bidireccional, es decir, los mismos hilos se utilizan para transmitir informacin hacia dentro o hacia fuera de una unidad en instantes diferentes

Bus de datos: Lleva los datos que es necesario enviar de un elemento a otro, puede ser bidireccional (los datos pueden ir en uno u otro sentido). Existe un bus de datos interno: (ejemplo: entre el microprocesador y la memoria) y uno externo, entre la computadora y sus perifricos (ejemplo: Computadora e impresora) http://www.unicrom.com/Cmp_estructura.asp

El bus de datos
Los procesadores 80x86 utilizan el bus de datos para intercambiar informacin entre los diferentes componentes del sistema. El tamao de stos buses es variable dependiendo del tipo de procesador, por esta razn es comn pensar en el tamao del bus como una medida del "tamao" del procesador, puede haber buses de datos de 8 (8088, 80188), 16 (8086, 80186, 80286), 32 (80386, 80486) 64 lneas (Pentium, Pentium Pro). En cada lnea del bus de datos se transmite un bit de informacin pero un sistema no est limitado a manejar informacin de acuerdo al tamao del bus de datos, es decir, un bus de 32 bits no est limitado a trabajar con tipos de datos mximos de 32 bits. El tamao del bus de datos por otro lado si limita el nmero de bits que el sistema puede manejar por cada ciclo de memoria de tal manera que un sistema de 16 bits necesita dos ciclos de memoria para manejar un tipo de dato de 32 bits, naturalmente pero no necesariamente, un sistema de 32 bits es el doble de rpido que un sistema de 16 bits, la limitacin es porque existen otros factores que influyen en el rendimiento de un sistema.

http://www.modelo.edu.mx/univ/virtech/prograc/cbyn03.htm

2.6.3

Bus de direcciones.

Bus de direcciones: Muchos de los elementos de una computadora as como las posiciones de memoria tienen una direccin nica dentro del sistema. De esta direccin se puede leer un dato o en esta direccin podemos escribir un dato. En el bus de direcciones se coloca la direccin del elemento a accesar y con ayuda del bus de datos movemos la informacin de un elemento a otro. Ejemplo: Si la CPU quiere leer unos datos de memoria para despus enviarlo a la impresora o la pantalla, primero pone en el bus de direcciones la direccin del dato en memoria, lo lee (lo obtiene a travs del bus de datos), despus pone en el bus de direcciones la otra direccin (la de pantalla o impresora) y escribe (con ayuda del bus de datos). Quin controla todo este proceso......? http://www.unicrom.com/Cmp_estructura.asp
Bus de direcciones Es utilizado por el microprocesador para sealar la celda de memoria (o el dispositivo de E/S) con el que se quiere operar. El tipo de operacin ser de lectura o de escritura y los datos implicados viajarn por el bus de datos.

Por l circula la expresin binaria de la direccin de memoria a la cual el microprocesador quiere acceder. Tiene sentido de flujo unidireccional desde el microprocesador hacia la memoria. Una vez localizados los datos perdidos, su transmisin hacia el microprocesador (o hacia donde sea) se har a travs del bus de datos. Los dispositivos de E/S intercambian la informacin con el microprocesador mediante los puertos de E/S. Cada puerto est asociado con un determinado dispositivo y tiene una direccin que lo identifica. El ancho de este bus tambin es una medida de la potencia del microprocesador, ya que determina la cantidad de memoria a la que ste puede acceder, es decir, la cantidad de espacio direccionable. El espacio de direcciones es el rango de valores distintos que el microprocesador puede seleccionar. La cantidad mxima de direcciones disponibles ser 2 a la n, siendo n el nmero de lneas del bus de direcciones. http://html.rincondelvago.com/bus-de-direcciones_dispositivo-dma.html

El bus de Direcciones es un medio de comunicacin unidireccional, debido a que los datos fluyen en un nico sentido, de la CPU a la memoria u otros dispositivos. La CPU alimenta niveles lgicos en las lneas de direccin, con lo cual se generan 2n posibles direcciones diferentes. Cada una de estas direcciones corresponde a una localidad de la memoria dispositivo.

Los procesadores 8086 y 8088 usados en los primeros computadores personales contaban con un bus de 20 lneas o bits de direccin, con lo cual eran capaces de direccionar hasta 1 megabyte de memoria (1.048.576 bytes), lo cual fue superado por los equipos AT (80286), que con 24 bits de direccionamiento, podan administrar hasta 16 MB de memoria (16.777.216 bytes). Subsecuentemente, los procesadores 80386DX direccionan directamente 4 gigabytes de memoria principal, mientras que el procesador 80486DX hasta 64 GB. http://www.tecnotopia.com.mx/mecatronica/buses.htm

Bus de direcciones, que transporta la direccin de la posicin de memoria o del perifrico que interviene en el trfico de informacin (de dnde procede el dato o a dnde se dirige). Permite la comunicacin entre el procesador y las celdas de la memoria RAM. Cuando el procesador quiere leer el contenido de una celda de

memoria, enva por el bus de direcciones la direccin de la celda que quiere leer, recibiendo a travs del bus de datos el contenido de la misma. El tamao de este bus define la cantidad de memoria RAM que la CPU puede gestionar. Puesto que hay dos valores posibles que pueden viajar a lo largo de cada una de las lneas de direcciones, tenemos que, por ejemplo: o con 10 bits podemos acceder a 1024 palabras, es decir, 1 Kbyte si la palabra equivale a 1 byte. o con 16bits accedemos a 65536 palabras (65KBytes) o con 32bits podemos acceder a 4294967296 palabras, es decir 4GB
Bus de direcciones de 20 bits Tambin antes del 8086 haba una limitante en la memoria de la que el procesador poda disponer. Los procesadores anteriores contaban con un bus de direcciones de 16 bits, con lo que podan indexar 65536 localidades distintas en memoria; siendo stas bytes. Por tanto, su memoria mxima era de 64 Kb. Intel reconoci que pronto, esta memoria sera insuficiente, por lo que decidi ampliarla. Sin embargo, no pudieron imaginar usos para una memoria mayor a 1 Mb.; pareca infinita para los estndares de entonces. Por lo que aumentaron las lneas del bus de direcciones a 20, con lo cual se pueden indexar memorias con 1'048,576 elementos (1 Mb.)

El bus de direcciones
El bus de direcciones es el encargado de diferenciar las ubicaciones fsicas de cada elemento de un sistema de cmputo, sea memoria elemento de E/S, cuando un programa necesita tener acceso a un elemento determinado del sistema coloca su direccin en el bus de direcciones, los circuitos electrnicos asociados sea con la memoria con un dispositivo de E/S son los encargados de reconocer sta direccin y consecuentemente colocar los datos correspondientes en el bus de datos. Con una sola lnea de direccin es posible tener acceso a dos elementos diferentes, con n lneas de direccin se puede acceder a 2n direcciones diferentes, por lo tanto el nmero de bits de un bus de direcciones determina la cantidad mxima de direcciones de memoria que un sistema puede acceder. Un procesador Pentium tiene un bus de direcciones de 32 bits por lo que su capacidad fsica real de direccionamiento de memoria de de 4 Gigabytes, utilizando la tcnica de segmentacin stos procesadores pueden acceder a un mayor nmero de direcciones de memoria.

http://www.modelo.edu.mx/univ/virtech/prograc/cbyn03.htm Bus de direcciones El bus del PC XT contiene 20 lneas identificadas SA0 a SA19; que en el AT se aumentaron a 27, aadiendo las denominaciones LA17 a LA23. Estas lneas contienen las direcciones que identifican la parte del ordenador que comunica. Las direcciones son de dos tipos; unas se refieren a direcciones de memoria;

otras a direcciones de puertos de E/S, pero en cualquier caso son de 20 bits para el PC XT y de 27 para los ATs. Con los datos anteriores, resulta evidente ( 0.4) que el PC XT poda manejar 1.048.576 direcciones (220), mientras que en el AT esta cantidad asciende a algo ms de 134 millones (227). Sin embargo, recordemos que tanto los procesadores 8088 presentes en el XT, como los 80287 del AT, tenan registros de 16 bits ( H3b) que solo podan albergar 65.536 posiciones (2 16), muy alejado de los valores anteriores. Para resolver el problema, se utilizan las direcciones segmentadas ( H5.1), compuestas por dos palabras de 16 bits que se componen para formar una direccin de 20 bits. Nota: durante las operaciones E/S de puertos, las direcciones SA16SA19 del 8088 permanecen iguales a cero ( H3.2.1), por lo que solo pueden utilizarse 16 bits para direcciones de puertos. http://www.zator.com/Hardware/H2.htm#Controlador DMA

2.6.4

Bus de control.

Bus de control: Son hilos que transportan seales de control, dan la informacin del estado de ciertos componentes, la direccin del flujo de la informacin, controlan el momento (temporizacin) en que suceden ciertos eventos de manera que no haya choques de datos, transmiten seales de interrupcin, etc. http://www.unicrom.com/Cmp_estructura.asp

El bus de control
El bus de control es una coleccin de lneas que transportan un conjunto de seales cuyo propsito es la sincrona de todas las operaciones efectuadas por el CPU con los diferentes subsistemas de un equipo de cmputo, destacan las lneas para escritura (write) y lectura (read) de datos, el reloj del sistema, lneas de interrupcin, lneas de estado, etc. El uso de stas lneas se comprender mejor conforme se avance en ste curso. Los procesadores de la familia 80x86 proveen dos espacios diferentes de direccionamiento, uno para la memoria y otro para la E/S, mientras que el direccionamiento de memoria vara segn el procesador, las lneas de E/S son siempre de 16 bits, lo que permite direccionar 65,536 localidades diferentes. Algunas lneas de control son las encargadas de decidir qu direcciones son para memoria y cules son para E/S.

http://www.modelo.edu.mx/univ/virtech/prograc/cbyn03.htm El Bus de Control es utilizado para sincronizar las actividades y transacciones con los perifricos del sistema. Algunas de estas seales, como R / W , son seales que la CPU enva para indicar que tipo de operacin se espera en ese momento. Los perifricos tambin pueden remitir seales de control a la CPU, como son INT, RESET, BUS RQ. Las seales ms importantes en el bus de control son las seales de cronmetro, que generan los intervalos de tiempo durante los cuales se realizan las operaciones. Este tipo de seales depende directamente del tipo del microprocesador.

Bus de control, que transporta las seales de control y de estado, indicando la direccin de la transferencia de datos, controlando la temporizacin de eventos durante la transferencia, transmitiendo las seales de interrupcin, etc. En definitiva, son las seales para controlar y sincronizar todos los componentes. Las seales de control parten desde la unidad de control hacia el resto de elementos, y las de estado parten del resto de los elementos hacia la unidad de control. Adems, se suele distinguir dos tipos de buses dependiendo de las partes del sistema que conectan: el bus que conecta la CPU con la memoria (bus interno o de CPU) y el que conecta la CPU con el resto de elementos (bus de expansin, que es una prolongacin del bus interno). El bus de CPU es interesante en relacin con los tipos de memoria que exige, puesto que se dedica a transferir datos entre la CPU y la memoria. Destaca por su velocidad, y existen arquitecturas con velocidades de ms de 100 Mhz. Pero la clase realmente interesante de los buses son los buses de expansin.
Bus de control o de sistema : organiza y redirige la informacin hacia el bus pertinente para la informacin que se tiene que transmitir. Es el bus encargado de hacer el direccionamiento, quin realiza toda la funcin de direccionar es el controlador, diferente para cada tipo de dispositivo.
http://www.hardware12v.com/conocimientospc/41.php

El bus del sistema


El bus del sistema conecta a los elementos que forman una computadora Von Neumann, en una mquina Intel 80x86 existen tres buses principales: el bus de datos, el bus de direcciones y el bus de control. Un bus es un conjunto de alambres por los cuales pasan seales elctricas entre los componentes de un sistema, stos buses varan de procesador en procesador, sin embargo cada bus transporta informacin equivalente para todos los procesadores. Un tpico componente de un sistema 80x86 utiliza niveles TTL estndar de seal, esto significa que cada alambre en un bus utiliza un nivel de voltaje estndar para representar los niveles lgicos de 1 y 0. http://www.modelo.edu.mx/univ/virtech/prograc/cbyn03.htm

Papel del bus de control: a traves de este bus, la unidad de control activa el MAR el MDR y los demas registros involucrados en los procesos de lectura-escritura. Sincroniza el momento en que se activan AB y DB, esto corresponde a un conjunto de microoperraciones necesarias para producir una lectura o escritura en memoria. http://html.rincondelvago.com/arquitectura-de-computadoras_2.html Bus de Control El bus de control, al igual que el bus de direcciones es unidireccional y se utiliza para efectuar la lectura y escritura en las memorias y

puertos de E/S. Este bus en general lo emplea la CPU para controlar el flujo de los datos y las direcciones de forma organizada.
Funcionamiento del Bus del Sistema

El bus de datos depende del tamao de los datos que maneja el procesador, este puede tener 8, 16 o 32 bits y el bus de direcciones generalmente tiene como mnimo 16 bits. El bus del sistema se utiliza para transferir informacin entre la CPU y la memoria o para extraer instrucciones almacenadas en memoria y datos presentes en los puertos de E/S. El intercambio de informacin por el bus del sistema se realiza con dos tipos de operaciones:

o o

Ciclo de Lectura: Cuando los datos en Memoria o puertos de E/S se transfieren a la CPU. Ciclo de Escritura: Cuando los datos de la CPU se transfieren a la Memoria o a los puertos de E/S.

Las lneas de control son aquellas con las que se controla el flujo de la informacin por los buses, y las ms importantes son:

o o o

CHIPSELECT (CS) LECTURA (RD) ESCRITURA (WR)

Cada transferencia empieza con la carga de una direccin en el bus de direcciones. Las lneas correspondientes a la los bits menos significativos de la direccin se encuentran conectados directamente a las memorias. Las lneas de direccin de los bits ms significativos se utilizan para seleccionar el dispositivo del cual se desea extraer la informacin, ya sea una EPROM, RAM o un Puerto de E/S. Entonces, el decodificador de direcciones se encarga de seleccionar el dispositivo que se debe activar segn la direccin presente en el bus. Para ello, cada dispositivo en el microcomputador debe tener una nica direccin que lo identifique. En la figura 11.2.3 se muestra un diagrama de los tiempos de las seales presentes durante el flujo de los datos y direcciones en el bus del sistema.

Figura 11.2.3. Diagrama de tiempos de las seales del bus del sistema. La seal CS selecciona el dispositivo que debe transmitir los datos por el bus de datos. Luego una de las seales RD o WR se activa desde la CPU, con lo cual se ordena al dispositivo seleccionado enviar los datos a la CPU (ciclo de lectura) o recibirlos de la CPU (ciclo de escritura).

Todos los ciclos de lectura y escritura comienzan con una direccin vlida de la CPU. Luego el decodificador de direcciones genera una seal CS para seleccionar uno de los dispositivos. Entonces la CPU enva una seal RD o WR para efectuar la lectura o escritura de los datos. Para una operacin de lectura el dispositivo debe conducir a travs del bus de datos, lo cual toma un tiempo corto (el tiempo de acceso de los datos), y los datos deben estar disponibles en el bus durante el flanco de subida de la seal RD. Durante este flanco de subida la CPU toma los datos y los almacena internamente en sus registros. Durante un ciclo de escritura la CPU por si misma maneja de los datos. En este caso, al igual que en el ciclo de lectura los datos deben estar disponibles en el bus antes de que ocurra el flanco de subida de la seal WR, para que el dispositivo seleccionado pueda recibir los datos correctamente. http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/110201.htm

Bus de control Adems de los datos y la energa, el bus transporta una serie de seales de control, por lo que a estas lneas se las denomina bus de control o del sistema. Las principales son las siguientes:

0WS ("Zero Wait State"). Es utilizado por los dispositivos rpidos conectados al bus para prevenir al procesador que no inserte estados adicionales de espera. AEN ("Address Enabled") Se utiliza para indicar si es la UCP o el controlador DMA, el que tiene control sobre las lneas de datos y de direcciones en ese momento. Cuando est alta, el controlador DMA controla el bus de datos y el de direcciones, adems de las lneas MEMR, MEMW, IOR e IOW, ALE ("Address Latch Enabled") Cuando est alta, seala que la UCP ha colocado una direccin vlida en el bus de direcciones. CLK. Seal del reloj que conecta directamente con una patilla del procesador ( H3b1). En el XT es de 4.77 MHz, un tercio de la seal del oscilador (OSC). En el AT esta frecuencia se elev a 7 MHz, la mitad de la seal del oscilador. OSC. Seal del oscilador ; basada en la frecuencia de un cristal instalado en la placa-base. En el XT es de 14.31818 MHz. I/O CH CHK ("Channel Check"). Es una seal de deteccin de errores. Cuando est baja, algn dispositivo del bus ha detectado un error de paridad. I/O CH RDY ("Channel Ready"). Sirve para avisar al procesador o al MDAC que un dispositivo lento necesita tiempo extra para estar preparado. Cuando algn dispositivo necesita tiempo extra, baja esta seal, aunque nunca durante un periodo de ms de 10 ciclos CLK. IRQ ("Interrupt request"). En el PC XT existen 6 lneas identificadas IRQ2 a IRQ7, que juegan un papel fundamental en el funcionamiento del

ordenador, ya que la tecnologa de los ordenadores modernos se basa en un sistema de interrupciones al que nos referiremos ms adelante ( H2.4). Estas 6 lneas fueron aumentadas posteriormente en el PC AT, aadindose 8, aunque no todas fueron destinadas al servicio de perifricos, por lo que en el nuevo BUS solo aparecen IRQ10, IRQ11, IRQ12, IRQ14 e IRQ15. Adelantamos aqu que una interrupcin es una seal que se origina en un dispositivo (un perifrico) para indicar al procesador que algo requiere su atencin inmediata (de ah su nombre, literalmente "Peticin de interrupcin"). Se solicita al procesador que suspenda lo que est haciendo para atender la peticin.

IOR ("I/O Read") Orden de lectura. Esta lnea indica a un dispositivo E/S conectado al bus que debe colocar un dato en el bus de datos. IOW ("I/O Write") Orden de escritura. Esta lnea indica a un dispositivo E/S que debe leer el dato situado en el bus de datos. RESET. Una seal en esta lnea ( H4), que conecta con una patilla especial del procesador, origina el reinicio del sistema. Cuando esta lnea es puesta a masa (desaparece su tensin) y despus vuelve a su valor normal, se origina un reinicio del procesador. SBHE ("System Bus High Enable"). Cuando est activado indica que se est realizando una transferencia de datos. DRQ ("DMA Request"). Similares en concepto a las lneas IRQ, pero utilizadas para solicitar acceso directo a memoria. Existen tres de ellas, sealadas DRQ1 a DRQ3. DACK ("DMA Acknowledge"). Se utilizan para acusar recibo de la peticin DRQ correspondiente. Existen cuatro, sealadas DACK0 a DACK3, aunque el mecanismo DMA solo utiliza las tres ltimas, DACK0 es utilizada en el XT para sealar un ciclo de refresco de memoria. MEMR ("Memory Read") Cuando se activa, esta seal indica a la memoria conectada al bus que escriba los datos en el bus de datos. MEMW ("Memory Write") Cuando se activa, indica a la memoria que almacene los datos situados en el bus de datos. T/C ("Terminal Count"). Sirve para sealar que el controlador DMA ha alcanzado el final de una transferencia ( 2.3).

El sistema de acceso directo a memoria DMA ("Direct Memory Access") es muy importante. Como puede verse, algunas lneas del bus estn destinadas a este servicio, que ser tratado ms adelante con mayor detalle ( 2.3). http://www.zator.com/Hardware/H2.htm#Controlador DMA

2.6.5

Buses normalizados.

Buses normalizados ms comunes El Chipset marca las caractersticas del bus de la CPU Tipos de buses de expansin ISA Usado en los primeros PC. Es de ocho bits por que usa ocho lneas para comunicarse con tarjeta de placas. Tambin hay de 16 bits. Caractersticas: Baja capacidad y amplia difusin. 8 bits 16 bits NCA Es un ISD extendido de 32 bits. Es compatible con el ISA. No se usa para orden de alto nivel avanzado y ms avanzado. EISD Es un ISD extendido de 32 y compatibles con ISD. No se usaba para ordenes de alto nivel. Bases locales Obtienen alto rendimiento entre la placa y las ranuras de expansin. Trabaja a 33 Mhz. TIPOS VL-BUS Instalado en los 468 de gama alta. No haba acceso directo a RDM, y tena que intervenir o la CPU o un canal DMD y esto tardaba mucho. PCI Evita el problema anterior creado por Intel. Caractersticas: - Bus de 32 bit de datos y direcciones. - Velocidad de 33 Mhz. - Capacidad de transferir datos de 132 Mb/seg. - Soporta el bus masterin (Bus master RMD) - Permite realizar casos concurrentes de escritura. - Reparte de forma inteligente la capacidad. Otorga ms capacidad al dispositivo que ms lo necesite. - Permite realizar casos concurrentes de escritura. - Soporta mximo 3 4 slots por cada bus PCI - Puede coexistir con buses de otro tipo. - Preparado para multitud de plataformas. No slo para PC. - Incorpora facilidades ( Plug & Play)

- El coste de este tipo de buses es muy bajo. AG`P Especfico para controladores de vdeo. Bus de alto rendimiento de 32 bits y velocidad de 66 Mhz, su capacidad es muy superior. Buses normalizados de perifricos SCSI Entndart universal para la conversin de todo tipo de perifricos. Utilizado para dispositivos de almacenamiento. Caractersticas - Sencillez - Los dispositivos conectados son especficos para el Scasi, es decir, son de tipo SCASI, esto conlleva a que todos los dispositivos llevan conector de E y de S para el SCASI. - Contienen altas prestaciones. - Alto coste de adquisicin SCSI 1 Ocho bits permite conectar hasta 8 dispositivos. Realmente son slo siente dispositivos, ya que uno lo ocupa la controladora. La transferencia es de 3,3. Mb/seg. Hasta 5 Mb/seg. SCSI 2 Se mejora la velocidad. Hay cuatro tipos de SCSI . Normal 8 bitss 5 Mb/seg Fast 8 bits 10 Mb/seg Wide 16 bits 10 Mb/seg Fast-Wide 16 bits 20 Mb/seg Ultra SCSI: Sali en 1996, aumenta las prestaciones del SCSI. Compatible con Fast-SCSI 2 y con Fast/Wide-SCSI 2. Para buses de 8 bits. Alcanza los 20 Mb/seg, y para buswes de 16 bits llega hasta 40 Mb/seg. SCSI 3: Es otro conjunto de estndares, muy especializado. Por ejemplo, uno de esos conjuntos est orientado a serie en fibra ptica, y alcanza una gran velocidad en este campo. SCSI 3 ya no es compatible con los otros, a favor de la velocidad. USB: (universal serial Bus). La informacin se transmite en serie. Su objetivo es superar los inconvenientes de la conexin entre perifricos y ordenador. IEEE 1394 Tiene los mismos objetvos (wire-fire) http://html.rincondelvago.com/informatica-basica_8.html

2.7 Direccionamiento.

MODOS DE DIRECCIONAMIENTO Y FORMATOS Introduccin El campo de operacin de una instruccin especifica la operacin que se debe realizar. Esta debe ser ejecutada sobre algunos datos almacenados en registros del computador o en palabras de memoria, es decir, sobre los operandos. El modo de direccionamiento especifica la forma de interpretar la informacin contenida en cada campo de operando para localizar, en base a esta informacin, el operando. Los ordenadores utilizan tcnicas de direccionamiento con los siguientes fines: - Dar versatilidad de programacin al usuario proporcionando facilidades tales como ndices, direccionamientos indirectos, etc., esta versatilidad nos servir para manejar estructuras de datos complejas como vectores, matrices, etc. - Reducir el nmero de bits del campo de operando. Al usuario que tiene poca experiencia, la variedad de modos de direccionamiento en un ordenador le puede parecer excesivamente complicada. Sin embargo, la disponibilidad de diferentes esquemas de direccionamiento le da al programador experimentado flexibilidad para escribir programas que son ms eficientes en cuanto a nmero de instrucciones y tiempo de ejecucin. Es tal la importancia de los modos de direccionamiento que la potencia de una mquina se mide tanto por su repertorio de instrucciones como por la variedad de modos de direccionamiento que es capaz de admitir. Definicin: Los modos de direccionamiento de un ordenador son las diferentes formas de transformacin del campo de operando de la instruccin en la direccin del operando. En esta definicin el trmino direccin debe interpretarse en su sentido ms general de localizacin del operando, en cualquier lugar, y no en el sentido ms estricto de direccin de memoria. A la direccin obtenida de las transformaciones anteriores la llamaremos direccin efectiva. Esta direccin, en el caso de tratarse de una direccin de memoria, es la que se cargar en el M.A.R. o registro de direccin de memoria. Llamando x a la informacin del campo de operando y Aef. a la direccin efectiva, la funcin f que a partir de x nos da Aef. constituir el modo de direccionamiento empleado: Aef. = f(x) En la evaluacin de la funcin f pueden intervenir otras informaciones adems de la informacin presente en el campo de operando de la instruccin. Estas informaciones pueden residir en registros del procesador o en memoria. La especificacin del modo de direccionamiento puede ir en el cdigo de operacin o en el campo de cada operando. Normalmente se codifica en el cdigo de operacin si el

nmero de modos es pequeo, en caso contrario se codifica con cada operando, esta ltima forma de codificacin favorece la ortogonalidad. Modos de direccionamiento ms usuales En los prrafos siguientes se irn describiendo los modos de direccionamiento ms frecuentes. La mayora de estos modos son comunes a muchas mquinas, sin embargo, hay otros que slo se usan en determinados procesadores. - Direccionamiento implcito En este modo, llamado tambin inherente, el operando se especifica en la misma definicin de la instruccin. El modo implcito se usa para hacer referencia a operandos de dos tipos: - Registros: En el caso de que el cdigo de operacin se refiera en particular a un registro. - Operandos en la pila: En el caso de que la operacin se realice siempre sobre el dato situado en la cima de pila. El primer caso es tpico de las organizaciones de un solo acumulador. Generalmente en un ordenador de este tipo todas las instrucciones que actan sobre el acumulador utilizan direccionamiento implcito. En el segundo caso estn la mayora de las instrucciones de los ordenadores con organizacin de pila. Estas operaciones llevan implcitos los operandos que son los elementos de la cima de pila. Esto se debe a que en este tipo de mquinas la mayora de las operaciones no tienen campos de direccin. Tambin estn en este caso las instrucciones PUSH y POP de la mayora de los ordenadores cuyo operando implcito tambin es, como en el caso anterior, la cima de pila. - Direccionamiento inmediato (o literal) En este modo es el operando el que figura en la instruccin no su direccin. En otras palabras el campo de operando contiene l mismo, sin transformacin alguna, la informacin sobre la que hay que operar. Este modo es til para inicializar registros o palabras de memoria con un valor constante. - Direccionamiento directo por registro Se mencion anteriormente que el campo de direccin de una instruccin puede especificar una palabra de memoria o un registro M procesador. Cuando se da este ltimo caso se dice que el operando est especificado con direccionamiento directo por registro, en tal caso, el operando reside en uno de los registros del procesador que es seleccionado por un campo de registro de k bits en la instruccin. Un campo de k bits puede especificar uno de 2k registros. Este modo es tpico de los ordenadores con organizacin de registros de uso general. Las ventajas de este modo son:

- El acceso a los registros es muy rpido, por tanto el direccionamiento por registro debe usarse en las variables que se usen con ms frecuencia para evitar accesos a memoria que son ms lentos, un ejemplo muy tpico del uso de este direccionamiento son los ndices de los bucles. - El nmero de bits necesarios para especificar un registro es mucho ms pequeo que el necesario para especificar una direccin de memoria, esto es debido a que el nmero de registros del procesador es muy pequeo comparado con el nmero de direcciones de memoria. Sin embargo, hay que tener en cuenta que en los ordenadores modernos el nmero de registros ha aumentado considerablemente. - Direccionamiento directo (o absoluto) Este es el modo de direccionamiento ms sencillo. El campo de direccin no necesita transformacin alguna para dar la direccin efectiva, es decir la funcin que transforma el campo de operando en la direccin efectiva es la identidad. Esto significa que el campo de operando es ya la direccin efectiva. Este direccionamiento slo se usa en ordenadores pequeos en que el programa siempre se sita en la misma zona de memoria ya que dificulta la relocalizacin de los programas, es decir que el cdigo de los programas no dependa de su situacin en memoria. Ordinariamente este modo slo se usa para acceder a direcciones del sistema que normalmente se refieren a operaciones de entrada y salida ya que estas direcciones no dependen del programa. - Direccionamiento indirecto En este modo el campo de operando de la instruccin indica la localizacin de la direccin efectiva del operando. El modo de direccionamiento indirecto puede adquirir diferentes formas segn cul sea el lugar donde se encuentre la direccin del operando. En general, todos los modos de direccionamiento tienen su versin indirecta que aade un eslabn ms a la cadena del direccionamiento. Por ejemplo existe el direccionamiento indirecto por registro, en el que el registro especificado contiene la direccin del operando, no el operando mismo. Este direccionamiento es til cuando se trabaja con punteros ya que los punteros son variables que contienen las direcciones de los operandos, no los operandos mismos. - Direccionamiento relativo Hay algunos modos de direccionamiento en que se hace uso de una propiedad muy generalizada de los programas denominada localidad de referencia, esta propiedad consiste en que las direcciones referenciadas por los programas no suelen alejarse mucho unas de otras y, por tanto, suelen estar concentradas en una parte de la memoria. Estas consideraciones nos llevan a la conclusin de que no es necesario utilizar todos los bits de la direccin de memoria en el campo de operando, basta utilizar los bits precisos para cubrir la parte de memoria donde estn incluidas las direcciones a las que el programa hace referencia. Esto puede hacerse tomando corno referencia un punto de la memoria y tomando como campo de operando la diferencia entre ese punto y la direccin efectiva del operando. La direccin que se toma como punto de referencia

puede residir en un registro de la CPU y, por tanto, sumando el contenido de ese registro con el campo de operando obtendremos la direccin efectiva. Hay varios direccionamientos basados en esta tcnica que reciben diferentes nombres dependiendo de cul sea el registro en el que radica la direccin tomada como referencia. Todos ellos podran catalogarse como direccionamientos relativos a un registro. El direccionamiento denominado habitualmente relativo toma como valor de referencia el registro contador de programa. Cuando se usa este modo de direccionamiento, el campo de operando consiste en un nmero (normalmente con signo) que expresa la diferencia entre la direccin del dato y la direccin siguiente a la instruccin en curso (contenida en el contador de programa). Si el campo de operando, llamado en este caso desplazamiento u offset, es positivo el operando residir en una direccin posterior a la de la instruccin y si es negativo, en una direccin anterior. Este modo de direccionamiento es usado muy frecuentemente en programas cuyo cdigo deba ser independiente de la posicin de memoria donde estn situados (programas relocalizables) ya que el desplazamiento es independiente de la localizacin del programa. Tambin se usa con mucha frecuencia en instrucciones de bifurcacin. - Direccionamiento por base y desplazamiento Este modo de direccionamiento se fundamenta en la propiedad de localidad de referencia mencionada anteriormente. La direccin que se toma como referencia de la zona de memoria en la que estn localizados los datos se deposita en un registro denominado registro base y el campo de operando indica la diferencia entre el registro base y la direccin M operando. Normalmente se toma como referencia (registro base) la direccin de comienzo de la zona de memoria ocupada por un programa. Por tanto, la direccin efectiva del operando se calcular sumando el contenido del registro base con el campo de operando. Este modo de direccionamiento se usa en ordenadores que pueden mantener en memoria varios programas ya que, de esta forma, los diferentes registros base pueden contener las direcciones de comienzo de cada uno de los programas. Esto es muy til porque facilita la relocalizacin de los programas para situar el programa en una zona de memoria diferente bastar con cambiar el contenido de su registro base, no ser necesario cambiar ninguno de los campos de operando. - Direccionamiento indexado En este modo de direccionamiento, la direccin del operando tambin se calcula sumando un registro de la CPU al campo de operando, este registro es un registro especfico para este uso llamado registro ndice. En los ordenadores con organizacin de registros generales, el registro ndice puede ser cualquiera de los registros de la CPU. En los ordenadores en que el contador de programa es considerado como un registro de uso general (PDP 11 y VAX) el modo relativo es un caso particular del direccionamiento indexado. A la cantidad que hay que sumar al registro ndice para conseguir la direccin del operando tambin se le llama desplazamiento u offset. Este modo de direccionamiento es especialmente til para el direccionamiento de vectores y matrices en bucles ya que, si se quieren direccionar elementos consecutivos del vector o matriz, basta mantener en el desplazamiento la direccin del primer elemento e ir

incrementando el registro ndice. Tambin sirve para acceder de forma relativa a elementos de vectores cercanos a uno dado, para ello, se carga la direccin del elemento de referencia en el registro ndice y despus se accede mediante direccionamiento indexado, con el desplazamiento adecuado, al anterior, al siguiente, etc., esto mismo tambin es aplicable a pilas, en que, en ocasiones, hay que acceder a datos cercanos, por encima o por debajo, al dato sealado por algn apuntador. Una consecuencia de todo esto es una modalidad de direccionamiento indexado de que disponen algunos ordenadores, denominada autoindexacin, que hace que el registro ndice sea incrementado o decrementado en el tamao del operando antes o despus de acceder al mismo. Los ordenadores que poseen autoindexacin incorporan los modos de direccionamiento descritos en los dos apartados siguientes. En algunos ordenadores existen variantes del direccionamiento indexado en que se obtiene la direccin del operando sumando el contenido de varios registros con el desplazamiento, esto puede servir para especificar el comienzo de un vector mediante un desplazamiento respecto a un registro y el elemento del vector mediante un registro ndice. - Direccionamiento autoincremental o postincremental En este modo, la direccin del operando se encuentra en un registro y ste es incrementado, despus de acceder al operando, en el tamao del mismo. Este modo es til para manejar vectores y matrices como se vea en el apartado anterior. Tambin se puede utilizar para extraer datos de pilas (que crezcan hacia direcciones bajas) ya que, si el registro sobre el que se aplica este modo es el apuntador de pila, despus de la operacin el apuntador sealar al siguiente elemento de la pila. - Direccionamiento autodecremental o predecremental En este modo para obtener la direccin del operando hay que decrementar un registro en el tamao del operando; el nuevo contenido del registro despus de efectuar esa operacin, es la direccin del operando. Para finalizar, veamos un resumen de las utilidades de los modos de direccionamiento usados con ms frecuencia.

http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/capitulo19.htm http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/capitulo20.htm http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/capitulo21.htm http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/capitulo22.htm

http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/capitulo23.htm http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/capitulo24.htm

2.7.1

Modo real.

Segmentos y prrafos Esta forma de representacin segmentada de las direcciones es en realidad una imagen de como son manejadas internamente en el procesador. Los procesadores 8088 tienen registros de 16 bits que pueden servir para almacenar los desplazamientos, es decir, cualquier direccin dentro de una zona de 64 KB (que se conoce como segmento). Disponen adems de 4 registros de segmento de 16 bits (CS, SS, DS y ES H3.2), en los que se almacenan las direcciones de inicio del segmento activo en cada momento. Resulta as, que pueden direccionar un total absoluto de 1MByte, y hasta 64 x 4 = 256 KB sin necesidad de cambiar los registros de segmento. Esto es lo que se conoce como funcionamiento en modo real (como puede verse, en realidad es una forma de manejar la memoria). La figura adjunta muestra como se utilizan los registros para sealar las direcciones de inicio de los diversos mdulos de un programa cargado en memoria ( E1.3.2) dentro del espacio de memoria direccionable con 20 bits (00000-FFFFFh).

En la figura 1 se muestra una divisin de este "Mega" en 16 segmentos cuyos desplazamientos son justamente 0h, 1h, 2h ... Fh. http://www.zator.com/Hardware/H5_1.htm El 80386 tiene dos modos de operacin: modo de direccionamiento real (modo real), y modo de direccionamiento virtual protegido (modo protegido). En modo real el 80386 opera como un 8086 muy rpido, con extensiones de 32 bits si se desea. El modo real se requiere primariamente para preparar el procesador para que opere en modo protegido. http://lorca.act.uji.es/e08/ayudas/intel/80386.HTM Ese mismo ao aparece en escena el 80286, mucho ms complejo que el 8086. Aunque el juego de instrucciones es prcticamente el mismo, se dise pensando en la ejecucin de sistemas multitarea. Contaba con dos modos de ejecucin, el real y el protegido. En el modo real el 286 opera como un 8086; sin embargo en modo protegido cuando un programa intenta acceder a una regin de la memoria o ejecutar una determinada instruccin se comprueba antes si tiene ese privilegio. Si no es as se activa un mecanismo de proteccin que generalmente gestionar el sistema operativo, que es el programa que controla los derechos del resto de programas. Adems este modo protegido permita manejar hasta 16Mb de memoria RAM (por contar con un bus de direcciones de 24 bits), aunque como los registros seguan siendo de 16 bits, no posibilitaba el manejo de bloques de memoria - segmentos- de ms de 64kb. En cualquier caso, ms all del mero aumento de la velocidad de reloj (hasta 10MHz en el 8086, 16, 20 e incluso 25MHz en el 286), o el espacio de memoria direccionable, se produjo una fuerte reduccin del nmero de ciclos de reloj por instruccin, lo que llev a un incremento an mayor del rendimiento. En 1985 sale el 80386, lo que vendra a ser un peso pesado comparado a sus antecesores. Prcticamente todos los registros quedaban extendidos a 32 bits, e inclua un mecanismo de gestin de memoria ms avanzado que el 286, facilitando el uso de memoria virtual (disco duro como si fuera ram). Contaba con un bus de direcciones de 32 bits, llegando a direccionar 4Gb de memoria, y memoria cach. Aparte del modo real inclua un nuevo modo protegido mejorado. En este modo protegido se permita la ejecucin de programas en un modo virtual o V86, posibilitando la ejecucin de mquinas virtuales 8086; el sistema puede pasar con cierta facilidad de un modo a otro, permitiendo que funcionen varios "8086" en una especie de modo "real" al tiempo, cada uno con su memoria, estado... funcionando completamente ajeno al resto del software. Cuando se ejecuta un programa de MS-DOS (modo real) bajo Windows (modo protegido) en realidad entra en accin el modo virtual, ejecutando la aplicacin con relativa seguridad aislada del sistema y resto de aplicaciones (y digo relativa porque he colgado muchas *muchas* veces el windows enredando con un programilla DOS; los mecanismos de proteccin del Windows dejan bastante que desear). http://www.rinconsolidario.org/eps/asm8086/CAP1.html

2.7.2

Modo protegido.

El modo protegido provee el acceso al sofisticado manejo de memoria y paginado. Dentro del modo protegido, el software puede realizar un cambio de tarea para entrar en tareas en modo 8086 virtual (V86 mode) (esto es nuevo con este microprocesador). Cada una de estas tareas se comporta como si fuera un 8086 el que lo est ejecutando, lo que permite ejecutar software de 8086 (un programa de aplicacin o un sistema operativo). Las tareas en modo 8086 virtual pueden aislarse entre s y del sistema operativo (que debe utilizar instrucciones del 80386), mediante el uso del paginado y el mapa de bits de permiso de entrada/salida (I/O Permission Bitmap). Finalmente, para facilitar diseos de hardware de alto rendimiento, la interfaz con el bus del 80386 ofrece pipelining de direcciones, tamao dinmico del ancho del bus de datos (puede tener 16 32 bits segn se desee en un determinado ciclo de bus) y seales de habilitacin de bytes por cada byte del bus de datos. Un 286 en modo protegido no poda volver al modo real salvo con un reset, lo que supuso una seria traba al desarrollo de software que explotase este modo de funcionamiento (no olvidemos que por entonces el estndar de facto en sistemas operativos era MSDOS). Adems, seguamos estando limitados a segmentos de 64k, y con el 386 al caer (siempre que se lanza un procesador nuevo, estn los de las siguientes generaciones en diferentes estados de desarrollo) no compensaba el esfuerzo. Debido a la escasa relevancia del modo protegido del 286, nos referiremos genricamente a modo protegido cuando hablemos de 386+. http://lorca.act.uji.es/e08/ayudas/intel/80386.HTM Modo protegido y memoria extendida La especificacin EMS de Lotus/Intel/Microsoft, permita manejar grandes cantidades de datos (ahora no nos parecen tan grandes), pero no resolva el problema de grandes cantidades de cdigo, ya que el segmento de cdigo no poda manejarse de esta forma. Esto presentaba problemas no solo para programas grandes, sino para cualquier intento de multiprogramacin ( 1.7), cuando varios programas deben coexistir en memoria. Como siempre, la solucin vino de la mano de otro avance tecnolgico; en este caso, la aparicin del procesador Intel 80286, que en 1982 inici la era del PC AT. Este micro permite un acceso a memoria que recuerda vagamente la especificacin EMS, pero de forma nativa, ya que los mecanismos estn incluidos en el procesador. Como la poltica de Intel ha sido mantener compatibilidad con los micros anteriores, el 80286 poda trabajar en modo real, imitando el funcionamiento del 8088 , mientras que la nueva forma se denomin modo protegido. El modo protegido utiliza los registros de segmento como punteros a unos nuevos registros de direccin de 24 bits denominados tablas de descripcin ("Descriptor tables"), que permiten acceder a un mximo de 2 24 (16 MBytes) de memoria fsica, de forma que los registros de segmento son selectores que

marcan el inicio de una direccin de 24 bits. La memoria que se haca accesible mediante este sistema se denomin memoria extendida, para distinguirla de la antigua EMS [3]. La posterior introduccin del 80386, con registros de 32 bits, permiti direccionar hasta 2 32 (4 GBytes) de memoria externa. Los nuevos micros incluyeron otras mejoras que permitan al Sistema Operativo un funcionamiento ms cmodo y seguro de las aplicaciones cuando operaba en modo protegido. Los mecanismos pertinentes estaban incluidos en el hardware o al menos este proporcionaba recursos al SO para realizarlos cmodamente, aunque desde luego, para sacar provecho de estas mejoras el Sistema deba estar preparado ex profeso. El DOS no poda utilizarlas, s en cambio los sistemas ms avanzados del momento, como OS/2, Unix o Windows. Bsicamente estas mejoras se referan a dos cuestiones:

Manejo de memoria virtual Soporte nativo para multiprogramacin

7.1 Memoria virtual Esta tcnica consiste en hacer creer al programa que dispone de ms memoria que la fsicamente disponible en RAM. Este artificio tiene sentido porque en ese momento (y actualmente), la memoria extendida era mayor que la fsicamente disponible en muchos sistemas, adems el disco duro era estndar en todos los equipos. Esta RAM ficticia se conoce como memoria virtual; una simulacin conocida de antiguo en el mundo de los mainframes, que fue introducida en la informtica personal a partir del 80286; este procesador ya dispona de un controlador hardware para este menester, de forma que su manejo no significaba una gran sobrecarga para el Sistema. Su funcionamiento se basa en que cuando una aplicacin necesita ms espacio y la memoria fsica est agotada, el controlador de memoria virtual proporciona espacio auxiliar utilizando un fichero de intercambio ("Swap file") situado en memoria externa (disco duro generalmente H2), donde se almacena la informacin que no cabe en la RAM. Adems de facilitar la apariencia de ms RAM que la fsicamente disponible, este mecanismo permite que diversas aplicaciones compartan la misma memoria fsica, aunque para ello se requieran constantes maniobras de carga y descarga ("swapping") de trozos del fichero de intercambio a memoria, por lo que el rendimiento global del sistema se resiente si la desproporcin entre el fichero de intercambio y la RAM es muy notable [4]. Nota: En el caso de los sistemas operativos de Microsoft, la memoria virtual fue introducida de forma ms o menos perfeccionada desde la aparicin del primer Windows 3.1 en 1.987. En Windows 95, el Sistema comienza a funcionar directamente en modo protegido de 32 bits, proporcionando a cualquier aplicacin un espacio de memoria de hasta 4 GB. (siempre que est disponible el adecuado espacio en disco). En este

Sistema, el fichero de intercambio puede crecer a medida de las necesidades hasta ocupar todo el espacio disponible en disco. http://www.zator.com/Hardware/H5_1.htm
El modo protegido utiliza los registros de segmento como punteros a unos nuevos registros de direccin de 24 bits denominados tablas de descripcin ("Descriptor tables"), que permiten acceder a un mximo de 224 (16 MBytes) de memoria fsica, de forma que los registros de segmento son selectores que marcan el inicio de una direccin de 24 bits. La memoria que se haca accesible mediante este sistema se denomin memoria extendida, para distinguirla de la antigua EMS [3]. La posterior introduccin del 80386, con registros de 32 bits, permiti direccionar hasta 232 (4 GBytes) de memoria externa. Los nuevos micros incluyeron otras mejoras que permitan al Sistema Operativo un funcionamiento ms cmodo y seguro de las aplicaciones cuando operaba en modo protegido. Los mecanismos pertinentes estaban incluidos en el hardware o al menos este proporcionaba recursos al SO para realizarlos cmodamente, aunque desde luego, para sacar provecho de estas mejoras el Sistema deba estar preparado ex profeso. El DOS no poda utilizarlas, s en cambio los sistemas ms avanzados del momento, como OS/2, Unix o Windows. Bsicamente estas mejoras se referan a dos cuestiones: Manejo de memoria virtual Soporte nativo para multiprogramacin

http://personales.com/colombia/bucaramanga/koll/Modo%20protegido%20y %20memoria%20virtual.htm

2.7.3
El 80386 (DX)

Modo real virtual.

El procesador 80386 signific un cambio total en el mundo de las Pcs. El 386DX cambi radicalmente varios de los aspectos de los procesadores anteriores y estableci una gran diferencia con los dems: Por primera vez, los programas requeran de un procesador por sus caractersticas para poder correr y no por su velocidad, lo que gener una especie de incompatibilidad hacia atrs: los programas desarrollados para aprovechar sus caractersticas no podan funcionar en cualquier otro procesador anterior. Fue el primer procesador de 32 bits, el 386DX tiene un bus de datos e instrucciones de 32 bits tanto interno como externo; por lo tanto duplica el ancho del bus con respecto al de su predecesor: el 80286. El bus de direcciones tambin fue ampliado a 32 bits, por lo tanto el chip puede direccionar un mximo de 4096 Mb de memoria ( 4 Gb ). Sus velocidades de reloj comenzaron con 16 Mhz y se llegaron a desarrollar chips de hasta 33 y 40 Mhz. Tambin se le agreg una memoria cach externa para aumentar el rendimiento y solucionar el problema de la lentitud de las memorias con respecto a la velocidad del procesador.

Las aplicaciones desarrolladas para correr sobre los procesadores anteriores al 386DX simplemente corrern ms rpido al ser ejecutadas en un sistema con este procesador, pero las aplicaciones que aprovechan las caractersticas avanzadas de este chip corren muchsimo ms rpido que una aplicacin equivalente desarrollada para un chip anterior, ya que el ancho del bus de direccionamiento permite direccionar memoria sin los problemas que generaba el de los procesadores de 16 bits. Al ser un procesador de32 bits, el 386DX tiene un nuevo conjunto de registros extendidos de 32 bits, lo que permite un mayor rendimiento en las aplicaciones que manejen los datos directamente en 32 bits en vez de trabajar con datos de 16 bits. Tambin se introduce una nueva modalidad de trabajo: el modo real virtual. Este modo de operacin permite una multitarea muchsmo ms avanzado que el que provee el 80286. Cada una de las aplicaciones que se ejecute en un entorno de trabajo multitarea, tendrn su propia CPU virtual con su memoria propia. Esto sera parecido a tener varias computadoras personales ejecutando cada una su aplicacin y que cada una esperara para que la otra ejecute una operacin para luego ejecutar la suya: se distribuyen los tiempos, pero cada aplicacin tiene su rea de trabajo propia. Esta modalidad de trabajo fue el principio de funcionamiento de los sistemas operativos de 32 bits que surgieron bastante tiempo despus que el primer 386DX: OS/2 a partir de la versin 2.0, Windows a partir de la versin 95 y Windows NT en todas sus aplicaciones. Tambin con estos procesadores aparece otro nuevo concepto: la memoria virtual. Cualquier dispositivo de entrada y salida (como por ejemplo un disco duro) puede tener asignado un rango de direcciones de memoria y trabajar como sta, de manera que si se posee memoria insuficiente, se puede recurrir al disco y utilizarlo de las misma forma que la memoria, aunque no se tendrn las mismas velocidades. Esta capacidad es propia de los procesadores y no del sistema operativo, como suele pensarse. Que el sistema operativo lo aproveche o no, es otra cosa. Los procesadores que tengan un bus de direcciones de 32 bits pueden direccionar tericamente hasta 64 Tb de memoria virtual. El 386DX puede procesar el doble de datos que el 80286 en la misma cantidad de tiempo, gracias a su juego de comandos mejorados y el ancho del bus de datos. http://personales.com/peru/lima/ensamblaje/procesador.htm Desde que el bus de direcciones se expandi a 32 bits, el chip puede direccionar directamente 4.294.967.296 (2 elevado a la 32) localizaciones de memoria, o 4 gigabytes de RAM . Esto hace posible direccionar incluso 64 terabytes de forma virtual, lo que permite otro modo de operacin, llamado el modo real virtual. Con este modo de operacin, es posible efectuar la multitarea bajo MS- /PC-DOS porque cada aplicacin involucrada en el proceso de multitarea recibe una CPU virtual con 1 MB de memoria.

2.8 Temporizacin.

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.

http://www.modelo.edu.mx/univ/virtech/prograc/cbyn03.htm EL TEMPORIZADOR 8253 U 8254. El 8253/4 es un chip temporizador que puede ser empleado como reloj de tiempo real, contador de sucesos, generador de ritmo programable, generador de onda cuadrada, etc. En este captulo, la informacin vertida estar relacionada con el 8254 que equipa a los AT, algo ms potente que el 8253 de los PC/XT; sin embargo, las pocas diferencias sern comentadas cuando llegue el caso. 12.3.1 - DESCRIPCIN DEL INTEGRADO. Este circuito integrado posee 3 contadores totalmente independientes, que pueden ser programados de 6 formas diferentes.
D7..D0: CLK 0: OUT 0: GATE 0: CLK 1: OUT 1: GATE 1: CLK 2: OUT 2: GATE 2: BUS de datos bidireccional de 3 estados. CLOCK 0, entrada de reloj al contador 0. Salida del contador 0. Puerta de entrada al contador 0. CLOCK 1, entrada de reloj al contador 1. Salida del contador 1. Puerta de entrada al contador 1. CLOCK 2, entrada de reloj al contador 2. Salida del contador 2. Puerta de entrada al contador 2. Lneas de direccin para seleccionar uno de los tres contadores o el registro de la palabra de A0..A1: control. -CS: Habilita la comunicacin con la CPU.

-WR: -RD:

Permite al 8254 aceptar datos de la CPU. Permite al 8254 enviar datos a la CPU.

DESCRIPCIN FUNCIONAL El diagrama funcional del 8254, con la estructura interna de las diversas partes que lo componen, se muestra a la izquierda. A la derecha, diagrama de los bloques internos de un contador:

El buffer del bus de datos, de 8 bits y tres estados, comunica el 8254 con la CPU. La lgica de lectura y escritura acepta entradas del bus y genera seales de control para las partes funcionales del 8254. Las lneas A0..A2 seleccionan uno de los tres contadores o el registro de la palabra de control, para poder leerlos o escribirlos. El registro de la palabra de control es seleccionado cuando A0=A1=1, este registro slo puede ser escrito (se puede obtener informacin de estado, como se ver ms adelante, con el comando read-back del 8254, no disponible en el 8253). Los contadores 1, 2 y 3 son idnticos en su funcionamiento, por lo que slo se describir uno; son totalmente independientes y cada uno de ellos puede ser programado en una modalidad diferente. Si se observa el esquema de un contador, a la derecha, se ver el registro de la palabra de control: aunque no es parte del contador propiamente dicho, afecta a su modo de funcionamiento. El registro de estado, cuando es transferido al correspondiente latch, contiene el valor en curso del registro de la palabra de control y alguna informacin adicional (como se ver despus en el comando read-back). El contador propiamente dicho est representado en la figura por CE (Counting Element) y es un contador descendente sncrono de 16 bits que puede ser inicializado. OLM y OLL son dos latch de 8 bits (OL significa Output Latch; los subndices M y L estn relacionados con el ms y el menos significativo byte, respectivamente); ambos son referenciados normalmente como un conjunto denominado OL a secas. Estos latches siguen normalmente la cuenta descendente de CE, pero la CPU puede enviar un comando para congelarlos y poder leerlos; tras la lectura continuarn siguiendo a CE. La lgica de control del contador se encarga de que un slo latch est activo a un tiempo, ya que el bus interno del 8254 es de 8 bits. CE no puede ser nunca ledo directamente (lo que se lee es OL). De manera anloga, existen un par de registros CRM y CRL (CR significa Count Register) que almacenan la cuenta del contador y se la transmiten convenientemente a CE. Los valores de cuenta se escriben siempre sobre CR (y no directamente sobre CE). La lgica de control gestiona la conexin con el exterior a travs de las lneas CLK, GATE y OUT. DESCRIPCIN OPERACIONAL Tras el encendido del ordenador, el 8254 est en un estado indefinido; con un modo, valor de cuenta y estado de salida aleatorios. Es entonces cuando hay que programar los contadores que se vayan a emplear; el resto, no importa dejarlos de cualquier manera. Programacin del 8254. Para programar un contador del 8254 hay que enviar primero una palabra de control

y, despus, un valor de cuenta inicial. Los contadores se seleccionan con las lneas A0 y A1; el valor A0=A1=1 selecciona la escritura de la palabra de control (en la que se identifica el contador implicado). Por tanto, el 8254 ocupa normalmente 4 direcciones de E/S consecutivas ligadas a los contadores 0, 1, 2 y al registro de la palabra de control. Para enviar la cuenta inicial se utiliza simplemente el puerto E/S ligado al contador que se trate. El formato de la palabra de control es:

Operaciones de escritura. El 8254 es muy flexible a la hora de ser programado. Basta con tener en cuenta dos cosas: por un lado, escribir siempre primero la palabra de control, antes de enviar la cuenta inicial al contador. Por otro, dicha cuenta inicial debe seguir exactamente el formato seleccionado en la palabra de control (enviar slo byte bajo, enviar slo byte alto, o bien enviar ambos consecutivamente). Teniendo en cuenta que cada contador tiene su propio puerto y que la palabra de control indica el contador al que est asociada, no hay que seguir un orden especial a la hora de programar los contadores. Esto significa que, por ejemplo, se puede enviar la palabra de control de cada contador seguida de su cuenta inicial, o bien enviar todas las palabras de control para los 3 contadores y despus las 3 cuentas iniciales; tambin es vlida cualquier combinacin intermedia de estas secuencias (por ejemplo: enviar la palabra de control para el contador 0, despus la palabra de control para el contador 1, despus la parte baja de la cuenta para el contador 0, luego la parte baja de la cuenta para el contador 1, la parte alta de la cuenta para el contador 0, etc...). Un nuevo valor de cuenta inicial puede ser almacenado en un contador en cualquier momento, sin que ello afecte al modo en que ha sido programado (el resultado de esta operacin depender del modo, como se ver ms adelante). Si se programa el contador para leer/escribir la cuenta como dos bytes consecutivos (bajo y alto), el sentido comn indica que entre ambos envos/recepciones no conviene transferir el control a una subrutina que utilice ese mismo contador para evitar un resultado incorrecto. Operaciones de lectura. Existen tres posibles mtodos para leer el valor de un contador en el 8254. El primero es el comando Read-Back, slo disponible en el 8254 (y no en el 8253), como luego veremos. El segundo consiste en leer simplemente el contador accediendo a su puerto correspondiente: este mtodo requiere inhibir la entrada CLK al contador (por ejemplo, a travs de la lnea GATE o utilizando circuitera exterior de apoyo) con objeto de evitar leer la cuenta en medio de un proceso de actualizacin de la misma, lo que dara un resultado incorrecto. El tercer mtodo consiste en el comando de

enclavamiento. Comando de enclavamiento (Counter Latch Command). Este comando se enva cual si de una palabra de control se tratara (A1=A0=1): para diferenciarlo de ellas los bits 5 y 4 estn a cero. En los bits 7 y 6 se indica el contador afectado. Los dems bits deben estar a cero para compatibilizar con futuras versiones del chip. Cuando se enva el comando, el OL del contador seleccionado queda congelado hasta que la CPU lo lee, momento en el que se descongela y pasa de nuevo a seguir a CE. Esto permite leer los contadores al vuelo sin afectar la cuenta en curso. Se pueden enviar varios de estos comandos a los diversos contadores, cuyos OL's quedarn enclavados hasta ser ledos. Si se envan varios comandos de enclavamiento al mismo contador, separados por un cierto intervalo de tiempo, slo se considerar el primero (por tanto, la cuenta leda corresponder al valor del contador cuando fue enclavado por vez primera). Por supuesto, el contador debe ser ledo utilizando el formato que se defini al enviar la palabra de control; aunque en el caso de leer 16 bits, las dos operaciones no han de ser necesariamente consecutivas (se pueden insertar en el medio otras acciones relacionadas con otros contadores). Otra caracterstica interesante (disponible tal vez slo en el 8254?) consiste en la posibilidad de mezclar lecturas y escrituras del mismo contador. Por ejemplo, si ha sido programado para cuentas de 16 bits, es vlido hacer lo siguiente: 1) leer el byte menos significativo, 2) escribir el nuevo byte menos significativo, 3) leer el byte ms significativo, 4) escribir el nuevo byte ms significativo. Comando Read-Back. Slo est disponible en el 8254, no en el 8253. Este comando permite leer el valor actual de la cuenta, as como averiguar tambin el modo programado para un contador y el estado actual de la patilla OUT, adems de verificar el bandern de cuenta nula (Null Count) de los contadores que se indiquen. El formato del comando Read-Back es el siguiente:

El comando Read-Back permite enclavar la cuenta en varios OL's de mltiples contadores de una sola vez, sin requerir mltiples comandos de enclavamiento, poniendo el bit 5 a cero. Todo funciona a partir de aqu como cabra esperar (los contadores permanecen enclavados hasta ser ledos, los que no son ledos permanecen enclavados, si el comando se reitera slo acta la primera vez reteniendo la primera cuenta...). Tambin es posible enviar informacin de estado al latch OL, enclavndola

para que puede ser leda con comodidad por el puerto que corresponda a ese contador. La palabra de estado tiene el siguiente formato:

En D0..D5 se devuelve justo la misma informacin que se envi en la ltima palabra de control; en el bit D7 se entrega el estado actual de la patilla OUT del 8254, lo que permite monitorizar por software las salidas del temporizador economizando hardware en ciertas aplicaciones. El bit NULL COUNT (D6) indica cundo la ltima cuenta escrita en CR ha sido transferida a CE: el momento exacto depende del modo de funcionamiento del contador. Desde que se programa un nuevo valor de cuenta, pasa un cierto tiempo hasta que ste valor pasa de CR a CE: leer el contador antes de que se haya producido dicha transferencia implica leer un valor no relacionado con la nueva cuenta. Por ello, segn las aplicaciones, puede llegar a ser necesario esperar a que NULL COUNT alcance el valor 0 antes de leer. El funcionamiento es el siguiente: Operacin Consecuencias A -Escribir al registro de la palabra de control (1) NULL COUNT = 1 B -Escribir al registro contador (CR) (2) NULL COUNT = 1 C -Nueva cuenta cargada en CE (CR ->CE) NULL COUNT = 0 Notas: (1) Slo el contador especificado por la palabra de control tiene su NULL COUNT a 1; los dems contadores, lgicamente, no ven afectado su correspondiente bit NULL COUNT. (2) Si el contador es programado para cuentas de 16 bits, NULL COUNT pasa a valer 1 inmediatamente despus de enviar el segundo byte. Si se enclava varias veces seguidas la palabra de estado, todas sern ignoradas menos la primera, por lo que el estado ledo ser el correspondiente al contador en el momento en que se enclav por vez primera la palabra de estado. Se pueden enclavar simultneamente la cuenta y la palabra de estado (en un comando Read-Back con D5=D4=0), lo que equivale a enviar dos Read-Back consecutivos. En este caso, y con independencia de quin de los dos hubiera sido enclavado primero, la primera lectura realizada devolver la palabra de estado y la segunda la cuenta enclavada (que automticamente quedar de nuevo desenclavada). MODOS DE OPERACIN DEL 8254 MODO 0: Interrupt On Terminal Count (Interrupcin al final de la cuenta). Es empleado tpicamente para contar sucesos. Tras escribir la palabra de control, OUT est inicialmente en estado bajo, y permanecer as hasta que el contador alcance el cero: entonces se pone a 1 y no volver a bajar hasta que se escriba una nueva cuenta o una nueva palabra de control. La entrada GATE puesta a 0 permite inhibir la cuenta,

sin afectar a OUT. El contador sigue evolucionando tras llegar a cero (0FFFFh, 0FFFEh, ...) por lo que lecturas posteriores del mismo devuelven valores pseudoaleatorios. Tras escribir la cuenta inicial y la palabra de control en el contador, la cuenta inicial ser cargada en el prximo pulso del reloj conectado (CLK), pulso que no decrementa el contador: para una cuenta inicial N, OUT permanecer a 0 durante N+1 pulsos del reloj tras escribir la cuenta inicial. Si se escribe una nueva cuenta en el contador, ser cargada en el prximo pulso del reloj y el contador comenzar a decrementarse; si se enva una cuenta de dos bytes, el primer byte enviado inhibe la cuenta y OUT es puesto a cero inmediatamente (sin esperar a CLK): tras escribir el segundo byte, la cuenta ser cargada en el siguiente pulso del reloj. Esto permite sincronizar la secuencia de conteo por software. Si se escribe una nueva cuenta mientras GATE=0, sta ser cargada en cualquier caso en el siguiente pulso del reloj: cuando GATE suba, OUT se pondr en alto tras N pulsos del reloj (y no N+1 en este caso).

MODO 1: Hardware Retriggerable One-Shot (Monoestable programable). OUT ser inicialmente alta y bajar en el pulso de reloj que sigue al flanco de subida de GATE, permaneciendo en bajo hasta que el contador alcance el cero. Entonces, OUT sube y permanece activo hasta el pulso del reloj que siga al prximo flanco de subida de GATE. Tras escribir la palabra de control y la cuenta inicial, el contador est preparado. Un flanco de subida de GATE provoca la carga del contador (CR -< CE) y que OUT baje en el prximo pulso del reloj, comenzando el pulso One-Shot de N ciclos de reloj de duracin; el contador vuelve a ser recargado si se produce un nuevo flanco de subida de GATE, de ah que OUT permanezca en bajo durante N pulsos de reloj tras la ltima vez que suceda esto. El pulso One-Shot puede repetirse sin necesidad de recargar el contador con el mismo valor. GATE no influye directamente en OUT. Si se escribe una nueva cuenta durante un pulso One-Shot, el One-Shot en curso no resulta afectado, a menos, lgicamente, que se produzca un nuevo flanco de subida de GATE: en ese caso, el contador sera recargado con el nuevo valor.

MODO 2: Rate Generator (Generador de ritmo). En este modo, el contador funciona como un divisor por N. Es empleado tpicamente

para las interrupciones de los relojes de tiempo real. OUT estar inicialmente en alto. Cuando el contador se decremente hasta el valor 1, OUT pasar a estado bajo durante un pulso del reloj; tras ello, volver a subir y el contador se recargar con la cuenta inicial, repitindose el proceso. Este modo es, por tanto, peridico, y la misma secuencia se repite indefinidamente. Para una cuenta inicial N, la secuencia se repite cada N ciclos de reloj (CLK). Si GATE=0 la cuenta descendiente se detiene: si GATE es bajado durante un pulso de salida, OUT sube inmediatamente. Un flanco de subida en GATE provoca una recarga del contador con el valor de cuenta inicial en el siguiente pulso del reloj (despus, como cabra esperar, OUT bajar tras los N pulsos del reloj correspondientes): GATE puede ser utilizado para sincronizar el contador. Tras escribir la palabra de control y la cuenta inicial, el contador ser cargado en el prximo pulso del reloj: OUT bajar N pulsos de reloj despus, lo que permite tambin una sincronizacin por software. Escribir un nuevo valor de cuenta durante el funcionamiento del contador no afecta a la actual secuencia de cuenta; si se recibe un flanco de subida de GATE antes del final del perodo el contador se recargar con ese nuevo valor de cuenta inicial tras el prximo pulso del reloj y volver a comenzar, en caso contrario se recargar con el nuevo valor tras finalizar con normalidad el ciclo en curso.

MODO 3: Square Wave Mode (Generador de onda cuadrada). Este modo es empleado normalmente para la generacin de una seal de onda cuadrada. Este modo es similar al 2, con la diferencia de que la salida OUT conmuta al transcurrir la mitad de la cuenta: inicialmente est en alto, pero al pasar la mitad de la cuenta pasa a estado bajo hasta que la cuenta finaliza. Este modo es tambin peridico: la onda resultante para una cuenta inicial N tiene un perodo de N ciclos. Si GATE=0 la cuenta descendiente se detiene: si GATE es bajado durante un pulso de salida, OUT sube inmediatamente sin esperar ningn CLK. Un flanco de subida en GATE provoca una recarga del contador con el valor de cuenta inicial en el siguiente pulso del reloj: GATE puede ser utilizado para sincronizar el contador. Tras escribir la palabra de control y la cuenta inicial, el contador ser cargado en el prximo pulso del reloj: tambin puede ser sincronizado por software. Escribir un nuevo valor de cuenta durante el funcionamiento del contador no afecta a la actual secuencia de cuenta; si se recibe un flanco de subida de GATE antes del final del medio-perodo el contador se recargar con ese nuevo valor de cuenta inicial tras el prximo pulso del reloj y volver a comenzar, en caso contrario se recargar con el nuevo valor tras finalizar con normalidad el medio-ciclo en curso. Para valores de cuenta impares, la duracin a nivel alto de OUT ser un perodo de reloj mayor que la duracin a nivel bajo.

MODO 4: Software Triggered Mode (Pulso Strobe iniciado por software). OUT est en alto al principio; cuando la cuenta inicial expira, OUT baja durante un pulso de reloj y luego vuelve a subir. El proceso se inicia cuando se escribe la cuenta inicial. GATE=0 inhibe el contador y GATE=1 lo habilita; GATE no influye en OUT. Tras escribir la palabra de control y la cuenta inicial, el contador ser cargado en el prximo pulso del reloj: como ese pulso no decrementa el contador, para una cuanta inicial N, OUT no bajar hasta N+1 pulsos de CLK. Si se escribe una nueva cuenta durante el proceso, se cargar en el prximo pulso CLK y continuar el proceso de cuenta con la nueva cuenta escrita; si la cuenta es de 2 bytes, al escribir el primero no se altera el funcionamiento del contador hasta que se enve el segundo.

MODO 5: Hardware Triggered Strobe (Pulso Strobe iniciado por hardware). OUT estar en alto al principio: con el flanco de subida de la seal GATE, el contador comienza a decrementar la cuenta. Cuando llega a cero, OUT baja durante un pulso CLK y luego vuelve a subir. Despus de escribir la palabra de control y la cuenta inicial, el contador no ser cargado hasta el pulso de reloj posterior al flanco de subida de GATE. Este pulso CLK no decrementa el contador: por ello, ante una cuenta inicial N, OUT no bajar hasta que pasen N+1 pulsos de reloj. GATE no afecta a OUT. Si una nueva cuenta inicial es escrita durante el proceso, la actual secuencia del contador no ser alterada; si se produce un flanco de subida en GATE antes de que la nueva cuenta sea escrita pero despus de que expire la cuenta actual, el contador ser cargado con la nueva cuenta en el prximo pulso del reloj.

12.3.2 - EL 8254 EN EL ORDENADOR. Todos los AT y PS/2 llevan instalado un 8254 o algo equivalente; los PC/XT van equipados con un 8253, algo menos verstil; los PS/2 ms avanzados tienen un temporizador con un cuarto contador ligado a la interrupcin no enmascarable, si bien no lo consideraremos aqu. Todos los contadores van conectados a un reloj que oscila a una frecuencia de 1.193.180 ciclos por segundo (casi 1,2 Mhz). La direccin base en el espacio de E/S del ordenador elegida por IBM cuando dise el PC es la 40h. Por tanto, los tres contadores son accedidos, respectivamente, a travs de los puertos 40h, 41h y 42h; la palabra de control se enva al puerto 43h. La seal GATE de los contadores 0 y 1 est siempre a 1; en el contador 2 es seleccionable el nivel de la lnea GATE a travs de bit 0 del puerto E/S 61h. La BIOS programa por defecto el contador 0 en el modo 3 (generador de onda cuadrada) y el contador 1 en el modo 2 (generador de ritmo); el usuario normalmente programa el contador 2 en el modo 2 3. La salida del contador 0 est conectada a IRQ 0 (ligado a la INT 8, que a su vez invoca a INT 1Ch); este contador est programado por defecto con el valor cero (equivalente a 65536), por lo que la cadencia de los pulsos es de 1.193.180/65.536 = 18,2 veces por segundo, valor que determina la precisin del reloj del sistema, ciertamente demasiado baja. Se puede modificar el valor de recarga de este contador en un programa, llamando a la vieja INT 8 cada 1/18,2 segundos para no alterar el funcionamiento normal del ordenador, si bien no es conveniente instalar programas residentes que cambien permanentemente esta especificacin: los programas del usuario esperan encontrarse el temporizador a la habitual y poco til frecuencia de 18,2 interrupciones/segundo. La salida del contador 1 controla el refresco de memoria en todas las mquinas, su valor normal para el divisor es 18; aumentndolo se puede acelerar el funcionamiento del ordenador, con el riesgo -eso s- de un fallo en la memoria, detectado por los chips de paridad -si los hay-, que provoca generalmente el bloqueo del equipo. De todas maneras, en los PC/XT se puede aumentar entre 19 y 1000 sin demasiados riesgos, acelerndose en ocasiones hasta casi un 10% la velocidad de proceso del equipo. En los AT la ganancia de velocidad es mucho menor y adems este es un punto demasiado sensible que conviene no tocar para no correr riesgos, aunque se podra bajar hasta un valor 2-17 para ralentizar el sistema. Sin embargo, no es conveniente alterar esta especificacin porque, como se ver ms adelante, hay un mtodo para realizar retardos (empleado por la BIOS y algunas aplicaciones) que se vera afectado. El contador 2 puede estar conectado al altavoz del ordenador para producir sonido; alternativamente puede emplearse para temporizar. Es el nico contador que queda realmente libre para el usuario, lo que suele dar quebraderos de cabeza a la hora de producir sonido. 12.3.3 - TEMPORIZACIN.

Los contadores 0 y 1, especialmente este ltimo, ya estn ocupados por el sistema; en la prctica el nico disponible es el 2. Este contador ha sido conectado con el doble propsito de temporizar y de generar sonido. Para emplearlo en las temporizaciones, es preciso habilitar la puerta GATE activando el bit 0 del puerto 61h; tambin hay que asegurarse de que la salida del contador no est conectada al altavoz (a menos que se desee msica mientras se cronometra) poniendo a 0 el bit 1 del mismo puerto (61h):
IN AL,61h AND AL,11111101b contador 2 con el altavoz) OR AL,00000001b contador 2) JMP SHORT $+2 OUT 61h,AL ; borrar bit 1 (conexin

; activar bit 0 (lnea GATE del ; estado de espera para E/S

El siguiente programa de ejemplo, CRONOS.ASM, incluye dos subrutinas para hacer retardos de alta precisin. La primera de ellas, inic_retardo, hay que llamarla al principio para que programe el contador 2 del temporizador; la rutina retardo se encarga de hacer el retardo que se indique en AX (en unidades de 1/1193180 segundos).
; ; ; ; ; ; ; ; ; ******************************************************************** * * * CRONOS.ASM - Subrutinas para hacer retardos de precisin. * * * * INIT_RETARDO: llamarla al principio del todo. * * RETARDO: Entregar en AX el n de 1193180-avos de * * segundo que dura el retardo (mximo 65400). * * * ******************************************************************** SEGMENT ASSUME CS:programa, DS:programa ORG inicio: CALL MOV MOV CALL LOOP INT PROC PUSH IN AND OR JMP OUT MOV JMP OUT POP inic_retardo CX,20 AX,59659 retardo retard 20h ; 20 retardos ; de 50 milisegundos 100h

programa

retard:

inic_retardo

AX AL,61h AL,11111101b AL,1 SHORT $+2 61h,AL AL,10110100b SHORT $+2 43h,AL AX

; contador 2, modo 2, binario

inic_retardo retardo

retardando:

retardo programa

RET ENDP PROC PUSH PUSH CLI OUT MOV JMP OUT JMP IN XOR JMP OUT XOR JMP OUT STI JMP MOV MOV OUT JMP IN MOV JMP IN XCHG CMP MOV JBE POP POP RET ENDP ENDS END

AX BX 42h,AL AL,AH SHORT $+2 42h,AL SHORT $+2 AL,61h AL,1 SHORT $+2 61h,AL AL,1 SHORT $+2 61h,AL SHORT $+2 BX,0FFFFh AL,10000000b 43h,AL SHORT $+2 AL,42h AH,AL SHORT $+2 AL,42h AH,AL AX,BX BX,AX retardando BX AX ; parte baja de la cuenta ; parte alta ; bajar GATE ; subir GATE

; enclavamiento ; leer contador

; AX = valor del contador

inicio

El procedimiento inic_retardo programa el contador 2 en el modo 2, con datos en binario y dejndolo listo para enviar/recibir secuencias de 2 bytes para la cuenta (primero el byte menos significativo y luego el alto). Las instrucciones JMP SHORT $ +2 colocadas oportunamente (para saltar a la siguiente lnea) evitan que las mquinas AT ms antiguas fallen en dos operaciones de E/S consecutivas demasiado rpidas. El procedimiento retardo enva el nuevo valor de cuenta. A continuacin baja y vuelve a subir la seal GATE, con objeto de provocar un flanco de subida en esta lnea, lo cual provoca que el contador se cargue con el valor recin enviado de manera inmediata (de lo contrario, no se recargara hasta acabar la cuenta anterior). Finalmente, entramos en un bucle donde se enclava continuamente la cuenta y se espera hasta que acabe. Lo ms intuitivo sera comprobar si la cuenta es cero, pero esto es realmente difcil ya que cambia nada menos que ms de 1 milln de veces por segundo!. Por tanto, nos limitamos a comprobar si tras dos lecturas consecutivas la segunda es mayor que la primera ...no puede ser!... s, si puede ser, si tras llegar a 0 el contador se ha recargado. De esta manera, el mayor valor admitido en AX al llamar es 65535, aunque no conviene que sea superior a 65400, para permitir que las recargas puedan ser detectadas en la

mquina ms lenta (un XT a 4.77 y en 135/1193180 segundos dispone de unos 540 ciclos, en los que holgadamente cubre este bucle). A la hora de emplear las rutinas anteriores hay que tener en cuenta dos consideraciones. Por un lado, estn diseadas para hacer pequeos retardos: llamndolas repetidamente, el bucle que hay que hacer (y las interrupciones que se producen durante el proceso) provoca que retarden ms de la cuenta. Por ejemplo, en el programa principal, poniendo 1200 en CX en lugar de 20, el retardo debera ser de 60 segundos; sin embargo, comparando este dato con el contador de hora de la BIOS (en una versin ligeramente modificada del programa) resulta ser de casi 60,2 segundos. La segunda consideracin est relacionada con las interrupciones: de la manera que est el listado, se puede producir una interrupcin en la que algn programa residente utilice el contador 2 del temporizador, alterando el funcionamiento de las rutinas de retardo (por ejemplo, una utilidad de click en el teclado) o incluso provocando un fallo en la misma (si a sta no le da tiempo a comprobar que ya es la hora): este es un aspecto a tener en cuenta en un caso serio. Se puede, por ejemplo, inhibir todas las interrupciones (o enmascar slo las ms molestas), aunque anular la interrupcin del temporizador, la ms peligrosa, provocara un retraso de la hora del ordenador. Para hacer retardos o temporizaciones de ms de 50 milisegundos, es ms conveniente emplear el contador de hora de la BIOS (variable de 32 bits en 0040h:006Ch) que la INT 8 se encarga de incrementar 18,2 veces cada segundo y de volver a ponerlo a cero cada 24 horas. No es conveniente mirar el valor del contador de hora de la BIOS, sumarle una cantidad y esperar a que alcance dicha cantidad fija: la experiencia demuestra que eso produce a veces cuelgues del ordenador, no solo debido a que suele fallar cuando son las 23:59:59 sino tambin porque cuando se alcanza el valor esperado, por cualquier motivo (tal como un alargamiento excepcional de la rutina que controla INT 8 INT 1Ch debido a algn programa residente) puede que el programa principal no llegue a tiempo para comprobar que ya es la hora... y haya que esperar otras 24 horas a probar suerte. Lo ideal es contar las veces que cambia el contador de hora de la BIOS. Por ltimo, como ejemplo ameno, el siguiente fragmento de programa hace que la hora del ordenador vaya diez veces ms rpida -poco recomendable, aunque muy divertido- programando el contador 0 con un valor de cuenta 6553 (frente al 0=65536 habitual), de la siguiente manera:
MOV datos binarios OUT MOV MOV JMP OUT MOV JMP OUT AL,00110110b 43h,AL BX,6553 AL,BL SHORT $+2 40h,AL AL,BH SHORT $+2 40h,AL ; contador 0, operacin 11b, ; valor de cuenta ; enviar byte bajo ; enviar byte alto

Un mtodo genial para hacer retardos y controlar timeouts en AT. Aunque ausente en todos los manuales de referencia tcnica y en todos los libros relacionados con la programacin de PC, existe un mtodo muy fcil y eficiente para temporizar disponible en todos los ordenadores AT. Pese a no estar documentado, un

programa muy usual como es el KEYB del MS-DOS (a partir de la versin 5.0 del sistema) lo utiliza en todos los AT, sin importar el modelo. Por ello, cabe suponer que seguramente los futuros equipos mantendrn la compatibilidad en este aspecto. Sucede que la salida del contador 1 del 8254, encargada del refresco de la memoria, controla de alguna manera desconocida (tal vez a travs de un flip-flop) la generacin de una onda cuadrada de unos 33 KHz que puede leerse a travs del bit 4 del puerto 61h (no se trata de la salida OUT del contador 1: ste est programado en modo 2 y no genera precisamente una onda cuadrada). El contador 1 es programado por la BIOS en todos los PC con una cuenta 18, conmutando el nivel de la salida cada segundo 1193180/18 = 66287,77 veces. Para hacer un determinado retardo basta con contar las veces que el bit cambia de nivel: la funcin en ensamblador retardo_asm() del programa de ejemplo lo ilustra. Este mtodo es especialmente interesante en los programas residentes que precisen retardos de precisin, para sonido u otras tareas, tales como limitar la duracin mxima de una comprobacin en un bit de estado a unos milisegundos o microsegundos (control de timeouts); la principal ventaja es que no se modifica en absoluto la configuracin de ningn chip que pueda estar empleando el programa principal, empezando por el 8254. Adems, no requiere preparacin previa alguna. Para los ms curiosos, decir que el bit 5 del puerto 61h es la salida OUT del contador 2 del 8254 (la lnea OUT del contador 2 del 8253 de los PC/XT tambin puede consultarse a travs del bit 5, pero del puerto 62h). El nico inconveniente del mtodo es la alta frecuencia con que cambia el bit: esta misma rutina escrita en C podra no ser suficientemente gil para detectar todas las transiciones en las mquinas AT ms lentas a 6 MHz. A partir de 8 MHz s puede ser factible, como evidencian las pruebas realizadas, aunque hay que extremar las precauciones para que el cdigo compilado sea lo bastante rpido: utilizar las dos variables registro que realmente soportan los compiladores y huir de la aritmtica de 32 bits, como puede observarse en la funcin retardo_c() del programa de ejemplo. Una mala codificacin o compilador podran hacer inservible el mtodo incluso en una mquina a 16 20 MHz. Para no tener problemas, es mejor emplear la versin en ensamblador, escrita en un C no mucho menos estndar. La macro MICRO() ayuda a seleccionar con ms comodidad el retardo, indicndolo en mus, aunque implica una operacin en coma flotante que por s sola aade unos 100 mus de retardo adicionales en un 386-25 sin coprocesador y con las libreras de Borland.
Ancdota: Para los ms curiosos, decir que los programadores de Microsoft emplean este mtodo en el KEYB en dos ocasiones: para limitar a un tiempo razonable la espera hasta que el registro de entrada del 8042 se llene (15 ms) y, en otra ligera variante, para controlar la duracin del pitido de error. Los aficionados al ensamblador pueden comprobarlo personalmente aplicando el comando U del DEBUG sobre el KEYB para desensamblar a partir de los offsets 0E39 y 0D60, respectivamente: en el primer caso, la subrutina slo es ejecutada en AT; en el segundo, veris como el KEYB se asegura de que el equipo es un AT comprobando el valor de BP antes de saltar a 0D70 (ejecuta un bucle vaco en las dems mquinas). Esta nueva tcnica ha permitido eliminar respecto a anteriores versiones del programa algunos test sobre tipos de ordenadores, cuya finalidad ms comn era ajustar las constantes de retardo. Son vlidos tanto el KEYB del MS-DOS 5.0 castellano como el del MS-DOS 6.0 en ingls o castellano indistintamente (las direcciones indicadas coinciden!). Tambin en las BIOS modernas suele haber ejemplos de esta tcnica, aunque las direcciones ya no coinciden...

/********************************************************************/ /* */ /* Programa de demostracin del mtodo de retardo basado en la */

/* monitorizacin de los ciclos de refresco de memoria del AT. */ /* */ /********************************************************************/ #include <dos.h> #define MICRO(microseg) ((long)(microseg/15.08573727)) void retardo_asm(), retardo_c(); void main() { /* cuatro formas de hacer un mismo retardo de precisin */ retardo_asm retardo_asm retardo_c retardo_c } void retardo_asm (long cuenta) /* mtodo ensamblador recomendado */ { asm push ax asm push cx asm push dx asm mov cx,word ptr cuenta /* DX:CX = cuenta */ asm mov dx,word ptr [cuenta+2] asm jcxz fin_l /* posible cuenta baja nula */ esp_ref: asm in al,61h asm and al,10h /* aislar bit 5 */ asm cmp al,ah asm je esp_ref /* esperar cambio de nivel */ asm mov ah,al asm loop esp_ref /* completar cuenta baja */ fin_l: asm and dx,dx asm jz fin_ret /* posible cuenta alta nula */ asm dec dx asm jmp esp_ref /* completar cuenta alta */ fin_ret: asm pop dx asm pop cx asm pop ax } void retardo_c (long cuenta) /* mtodo en C no recomendado */ { register a, b; unsigned cuenta_h, cuenta_l; cuenta_h=cuenta >> 16; do cuenta_l=cuenta & 0xFFFF; (66267L); (MICRO(1000000L)); (66267L); (MICRO(1000000L)); /* /* /* /* un segundo */ otro segundo (ms claro!) */ ahora en C */ la otra alternativa */

do { while (a==(b=inportb(0x61) & 0x10)); a=b; } while (cuenta_l--); while (cuenta_h--); }

12.3.4 - SNTESIS DE SONIDO. La produccin de sonido es uno de los puntos ms dbiles de los ordenadores compatibles, que slo superan por muy escaso margen a alguno de los micros legendarios de los 80, si bien las tarjetas de sonido han solventado el problema. Pero aqu nos conformaremos con describir la programacin del altavoz. En todos los PCs existen dos mtodos diferentes para generar sonido, con la utilizacin del 8254 o sin l, que veremos por separado. Control directo del altavoz. El altavoz del ordenador est ligado en todas las mquinas al bit 1 del puerto E/S 61h. Si se hace cambiar este bit (mantenindolo durante cierto tiempo alto y durante cierto tiempo bajo, repitiendo el proceso a gran velocidad) se puede generar una onda cuadrada de sonido. Cuanto ms deprisa se realice el proceso, mayor ser la frecuencia del sonido. Por fortuna, la baja calidad del altavoz del PC redondea la onda cuadrada y produce un sonido algo ms musical de forma involuntaria. No existe, en cualquier caso, control sobre el volumen, que dada la calidad del altavoz tambin est en funcin de la frecuencia. Este mtodo de produccin de sonido tiene varios inconvenientes. Por un lado, la frecuencia con que se hace vibrar al bit que lo produce, si no se tiene mucho cuidado, est a menudo ms o menos ligada a la capacidad de proceso del ordenador: esto significa que el sonido es ms grave en mquinas lentas y ms agudo en las rpidas. Esto es particularmente grave y evidente cuando las temporizaciones se hacen con bucles de retardo con registros de la CPU: la frecuencia del sonido est totalmente a merced de la velocidad de la mquina en que se produce. Es por ello que el pitido de error que produce el teclado es a menudo distinto de unos ordenadores a otros, aunque tengan el mismo KEYB instalado. Otro gran inconveniente de este mtodo es que las interrupciones, fundamentalmente la del temporizador, producen fuertes interferencias sobre el sonido. Por ello, es normal tenerlas inhibidas, con el consiguiente retraso de la hora. Por ltimo, un tercer gran inconveniente es que la CPU est completamente dedicada a la produccin de sonido, sin poder realizar otras tareas mientras tanto. Antes de comenzar a producir el sonido con este mtodo hay que bajar la lnea GATE del 8254, ya que cuando est en alto y se activa tambin el bit 1 del puerto E/S 61h, el temporizador es el encargado de producir el sonido (este es el segundo mtodo, como veremos). Por tanto, es preciso poner primero a cero el bit 0 del mismo puerto (61h): CLI otras IN AND JMP OUT AL,61h AL,11111110b SHORT $+2 61h,AL ; evitar posible INT 8, entre

del 8254 otro_ciclo:

; estado de espera para E/S ; bajar GATE del contador 2 ; 256 vueltas ; invertir bit 1 ; constante de retardo

MOV CX,100h PUSH CX IN AL,61h XOR AL,2 JMP SHORT $+2 OUT 61h,AL MOV CX,300 retardo: LOOP retardo POP CX LOOP otro_ciclo STI Control del altavoz por el temporizador.

El otro mtodo posible consiste en emplear el contador 2 del temporizador conectado al altavoz; as, enviando el perodo del sonido (1.193.180/frecuencia_en_Hz) a dicho contador (programado en modo 3), ste se encarga de generar el sonido. Esto permite obtener sonidos idnticos en todos los ordenadores. Existe el pequeo problema de que la duracin del sonido ha de ser mltiplo de 1/18,2 segundos si se desea utilizar el reloj del sistema para determinarla (un bucle de retardo sera, una vez ms, dependiente de la mquina) ya que el contador 2 est ahora ocupado en la produccin de sonido y no se puede usar

para temporizar (al menos, no sin hacer malabarismos). Alternativamente, se podra evaluar la velocidad de la CPU para ajustar las constantes de retardo o aumentar la velocidad de la interrupcin peridica. Para emplear este sistema, primero se prepara el contador 2 para temporizar (poniendo a 1 el bit 0 del puerto 61h) y luego se conecta su salida al altavoz (poniendo a 1 el bit 1 del puerto 61h). Al final, conviene borrar ambos bits de nuevo. Ahora no es preciso inhibir las interrupciones para garantizar la calidad del sonido: MOV AL,10110110b operacin 11b, datos binarios OUT 43h,AL MOV AX,2711 LA) = 2711 JMP SHORT $+2 OUT 42h,AL MOV AL,AH JMP SHORT $+2 OUT 42h,AL JMP SHORT $+2 IN AL,61h OR AL,00000011b JMP SHORT $+2 OUT 61h,AL MOV CX,0 demora: LOOP demora por el peor mtodo IN AL,61h AND AL,11111100b JMP SHORT $+2 OUT 61h,AL ; contador 2, modo 3, ; programar contador 2 ; 1.193.180 / 440 Hz (nota

; frecuencia programada

; altavoz sonando ; esperar un cierto tiempo

; altavoz callado

Las frecuencias en Hz de las distintas notas musicales estn oficialmente definidas y los msicos suelen tenerlas en cuenta a la hora de afinar los instrumentos. La escala cromtica temperada, adoptada por la American Standards Asociation en 1936, establece el LA4 como nota de referencia en 440 Hz. En general, una vez conocidas las frecuencias de las notas de una octava, las de la octava siguiente o anterior se obtienen multiplicando y dividiendo por dos, respectivamente. La frmula de abajo permite obtener las frecuencias de las notas asignndolas un nmero (a partir de 6 y hasta 88; el LA de 440 Hz es la nota 49) con una precisin razonable, mxime teniendo en cuenta que van a ir a parar al altavoz del PC. Tal curiosa relacin se verifica debido a que la respuesta del odo humano es logartmica, lo que ha permitido reducir a simples matemticas el viejo saber milenario de los msicos.

http://atc.ugr.es/docencia/udigital/1203.html

2.8.1

Reloj de sistema.

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.

http://www.modelo.edu.mx/univ/virtech/prograc/cbyn03.htm Relojes Los relojes son esenciales para el buen funcionamiento de cualquier sistema porque juegan un papel decisivo en la sincronizacin de procesos, en la calendarizacin de trabajos por lote y para la asignacin de turnos de ejecucin entre otras tareas relevantes. Generalmente se cuenta con dos relojes en el sistema: uno que lleva la hora y fecha del sistema y que oscila entre 50 y 60 veces por segundo y el reloj que oscila entre 5 y 100 millones de veces por segundo y que se encarga de enviar interrupciones al CPU de manera peridica. El reloj de mayor frecuencia sirve para controlar el tiempo de ejecucin de los procesos, para despertar los procesos que estn 'durmiendo' y para lanzar o iniciar procesos que fueron calendarizados.

Para mantener la hora y fecha del sistema generalmente se usa un registro alimentado por una pila de alta duracin que almacena estos datos y que se programan de fbrica por primera vez. As, aunque se suspenda la energa la fecha permanece. Para lanzar procesos (chequeo de tiempo ocioso de un dispositivo, terminacin del time slice de un proceso, etc), se almacena un valor en un registro (valor QUANTUM) el cual se decrementa con cada ciclo del reloj, y cuando llega a cero se dispara un proceso que ejecutar las operaciones necesarias (escoger un nuevo proceso en ejecucin, verificar el funcionamiento del motor del disco flexible, hacer eco de un caracter del teclado, etc). http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/capitulo6.html

2.8.2 Reset del sistema. 2.8.3 Estados de espera. 2.9 Interrupciones de Hardware.
Uso de interrupciones Un computador debe disponer de los elementos suficientes para que el programador tenga un control total sobre todo lo que ocurre durante la ejecucin de su programa. La llegada de una interrupcin provoca que la CPU suspenda la ejecucin de un programa e inicie la de otro (rutina de servicio de interrupcin). Como las interrupciones pueden producirse en cualquier momento, es muy probable que se altere la secuencia de sucesos que el programador haba previsto inicialmente. Es por ello que las interrupciones deber controlarse cuidadosamente. De esta forma, podemos resumir todas las etapas seguidas ante una interrupcin en un sistema dotado de vectorizacin. Estos pasos son los siguientes: 1.- El dispositivo enva la solicitud de interrupcin mediante la lnea INTR. 2.- El procesador termina la ejecucin de la instruccin en curso y analiza la lnea de peticin de interrupcin, INTR. Si esta lnea no est activada continuar normalmente con la ejecucin de la siguiente instruccin, en caso contrario se pasa a la etapa siguiente. 3.- La CPU reconoce la interrupcin, para informar al dispositivo de ello, activa la lnea de reconocimiento de interrupcin, INTA. 4.- El dispositivo que reciba la seal INTA enva el cdigo de interrupcin por el bus de datos. 5.- La CPU calcula la direccin de memoria donde se encuentra la rutina de servicio de interrupcin (vector de interrupcin). 6.- El estado del procesador, y en particular el contador de programa, se salva en la pila de la misma forma que en una llamada a procedimiento.

7.- La direccin de la rutina de servicio de interrupcin se carga en el contador de programa, con lo que se pasa el control a la citada rutina. 8.- La ejecucin contina hasta que el procesador encuentre la instruccin de retorno de interrupcin. 9.- Cuando se encuentre la instruccin de retorno de interrupcin se restaura el estado del procesador, en especial el contador de programa, y se devuelve el control al programa interrumpido. Normalmente la primera instruccin de la rutina de servicio tendr como fin desactivar las interrupciones para impedir el anidamiento, por otra parte, antes de devolver el control al programa interrumpido se volvern a habilitar si es necesario. http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/ca pitulo17.htm Hay cuatro categoras principales de interrupciones: 1) En primer lugar, hay interrupciones generadas por la circuitera del ordenador en respuesta a algn acontecimiento, tal como la pulsacin de una tecla. Estas interrupciones estn manejadas por el chip controlador de interrupciones (el 8259, tambin conocido como PIC), que l as prioriza antes de enviarlas a la CPU para que acte. A estas interrupciones se les suele llamar interrupciones hardware. 2) En segundo lugar, hay interrupciones que son generadas por la CPU como resultado de algn suceso inusual producido por el programa como, por ejemplo, una divisin por cero. A estas interrupciones solemos referirnos como excepciones. 3) En tercer lugar, hay interrupciones generadas deliberadamente por los programas para invocar, por ejemplo, las llamadas al sistema. Estas interrupciones son llamadas interrupciones software. 4) Por ltimo, hay tambin un tipo especial de interrupcin, llamada interrupcin no enmascarable (NMI), que se utiliza para solicitar la atencin inmediata de la CPU. A menudo indica que se ha producido una emergencia, como, por ejemplo, una cada de voltaje, o un error de paridad de memoria. Cuando se enva una NMI la CPU la atiende antes que al resto de las interrupciones, por supuesto. Los programas en ensamblador pueden desactivar, o lo que es lo mismo enmascarar, las interrupciones hardware. Por esta razn, tambin se las llama enmascarables; el resto de las interrupciones que interceptan errores especiales, como la divisin por cero, no se pueden enmascarar. Se pueden aducir dos razones para desactivar las interrupciones hardware: a) Cuando se necesita ejecutar un fragmento de cdigo especialmente crtico antes de que suceda ninguna otra tarea en el ordenador, interesa que todas las interrupciones queden bloqueadas. Por ejemplo, cuando se quiere hacer algn cambio en la tabla de vectores de interrupcin. b) A veces interesa enmascarar ciertas interrupciones hardware cuando stas pueden interferir en alguna actividad cuya dependencia temporal sea crtica. Por ejemplo, si se est ejecutando una rut ina de E/S cuya temporizacin tiene que estar exquisitamente controlada, uno no puede permitirse el lujo de esperar "aparcado" mientras se ejecuta una lenta interrupcin de disco. En el primer caso, se ha de tener en cuenta que en ltimo trmino, la ejecucin de todas las interrupciones descansa sobre el flag de interrupcin (bit 9) del registro de estado

(flags de estado) del procesador. Cuando este bit toma el valor 0, acepta cualquier solicitud de interrupcin que permita el registro de mscaras de int errupcin. Cuando es uno, no se permiten interrupciones hardware. Para hacer que este flag tome el valor cero, desactivando as las interrupciones, se utiliza la instruccin CLI. Para volver a poner el flag a uno, autorizando de nuevo las interrupciones, se utiliza la instruccin STI. Para gestionar las interrupciones hardware, todos los PC's utilizan el llamado chip controlador de interrupciones programable (PIC) Intel 8259. Existe la posibilidad de que aparezca ms de una solicitud de interrupcin simultneamente, por lo que el chip establece una jerarqua de prioridades. Existen ocho niveles de prioridad, excepto en el AT, que tiene diecisis, a los que se refieren con las abreviaturas IRQ0 a IRQ7 ( IRQ0 a IRQ16 en AT), que corresponden a las siglas inglesas de solicitud de interrupcin (interrupt request). La mayor prioridad se consigue en el nivel 0. En el caso del AT, los ocho niveles de prioridad extra se gestionan con un segundo chip 8259 denominado slave, en contraposicin al primer chip 8259 denominado master; esta segunda serie de niveles tiene una prioridad comprendida entre IRQ2 e IRQ3. En la siguiente tabla se muestra como se asignan los niveles de interrupcin a los distintos perifricos: Error! Marcador no definido.

El 8259 posee tres registros de un byte que controlan y gestionan las ocho (o diecisis) lneas de interrupcin hardware, pero a nosotros slo nos interesa el registro de mscara de interrupciones (IMR). El 8259 emplea este registro para averiguar si una interrupcin de un determinado nivel est permitida en cualquier momento. Para desactivar interrupciones hardware concretas, se enva un patrn de bits al puerto 21h (INT_CTLMASK), que es la direccin del registro de mscaras de interrupcin (IMR). El registro de mscara del segundo chip 8259 del AT se sita en el puerto A1h (INT2_CTLMASK). En este patrn de bits, se ponen a uno los bits que corresponden a los nmeros de interrupcin que se desea enmascarar.

2.9.1Enmascarable.
Interrupcin enmascarable: La solicitud de interrupcin enmascarable se realiza a travs de la entrada INTR (Interrupt Request). INTR solicita una interrupcin de tipo variable que se determina en el ciclo de reconocimiento.

INTR, es una entrada activa por nivel alto, que se muestrea durante el ltimo ciclo de reloj de cada instruccin (hay instrucciones especiales en que esto no se cumple, ver nota). En ese momento se determina si el micro debe continuar ejecutando la prxima instruccin o debe ingresar en el ciclo de reconocimiento de interrupcin. Para que el pedido sea reconocido, INTR debe permanecer en alto (al menos) durante el ltimo ciclo de reloj de la ejecucin de la instruccin en curso. Luego INTR puede bajar en cualquier momento despus del flanco descendente del primer pulso de INTA, dentro de la secuencia de reconocimiento. Esta lnea puede enmascararse a travs de un bit interno del micro (IF: interrupt enable flag bit) que se ubica en el Flag Register. Si la mscara se encuentra activada (IF=0) la lnea es ignorada. Si por el contrario IF=1, el pedido es aceptado y se dar inicio al ciclo de INTA. La mscara permite condicionar la atencin de las solicitudes de interrupcin que ingresan a travs de INTR. Esto es fundamental para permitir o no el anidamiento de rutinas de atencin de interrupciones de esta clase. Es importante ver que, cuando comienza la ejecucin de la rutina de atencin de la interrupcin, IF debe pasar a 0 al menos hasta que la lnea INTR pase a bajo. Si esto no fuera as, solo llegara a ejecutarse la primera instruccin de esta rutina y el micro comenzara nuevamente con otro ciclo de reconocimiento. Conceptualmente: las interrupciones activas por nivel deben ser enmascarables. Nota: Una excepcin es la instruccin WAIT que espera un nivel bajo en la entrada TEST para continuar con el programa. Esta instruccin muestrea continuamente la entrada de interrupciones durante su ejecucin, permitiendo la atencin de interrupciones en el interior de la espera. Cuando finaliza la rutina de atencin, el micro retorna a ejecutar la instruccin WAIT.

Interrupcin enmascarable significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la seal de interrupcin. Para ello se enva una seal a la patilla INTR , y el procesador la atiende o la ignora en funcin del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o deshabilitado ( H3.2). En el primer caso, cuando se recibe la seal, el procesador concluye la instruccin que estuviese en proceso y a continuacin responde con una combinacin de seales en algunas de sus patillas componiendo una sucesin de dos seales INTA ("Interrupt Acknowledge" H3.2.1). La primera seal es simplemente un aviso; la segunda es una peticin para que el PIC coloque en el bus de datos un Byte con el nmero de interrupcin, de forma que el procesador pueda localizar el servicio solicitado. El valor recibido (0-255) es multiplicado por 4 para calcular la direccin del vector correspondiente en la tabla de vectores de interrupcin, lo que se realiza mediante un desplazamiento binario de dos posiciones a la izquierda ( 4.9.3). A continuacin, el procesador salva en la pila los valores del registro de estado ( H3.2), del contador de programa (PC) y del segmento de cdigo

(CS); deshabilita el bit IF del registro de estado, para que la interrupcin no pueda ser molestada con una nueva interrupcin enmascarable hasta que sea especficamente permitido, y finalmente ejecuta el servicio. La penltima secuencia de la rutina de servicio es enviar una seal de que la interrupcin ha terminado (EOI) para que el PIC pueda seguir enviando interrupciones. A continuacin debe restaurar los registros a su estado inicial (existente antes de que se produjera la interrupcin). La seal de terminacin del servicio de la interrupcin EOI ("End of interrupt") es la siguiente secuencia: MOV DX, PIC0 MOV AL, EOI OUT DX, AL La primera instruccin mueve el contenido PIC0 al registro DX (PIC0 es el nemnico de la direccin ms baja de puerto A0 = 0). La segunda mueve el valor EOI (nemnico del valor 20h) al registro AL. La tercera es una sentencia de escritura a puerto; escribe el contenido del registro AL (el valor EOI puesto en la sentencia anterior) en el puerto sealado por el contenido del registro DX (establecido en la primera instruccin).

Para facilitar el manejo de interrupciones, el 8088 y sucesores disponen de algunas instrucciones especficas:

IRET Retorno de interrupcin ("Interrupt Return"). Recupera de la pila el contador de programa PC; el segmento de cdigo CS (lo que supone devolver el programa al punto de ejecucin original), y el registro de estado FLAGS (lo que supone devolver las interrupciones enmascarables al estado inicial). CLI Limpiar la interrupcin ("Clear Interrupt"); pone a cero el registro IF, deshabilitando las interrupciones enmascarables. STI Es la instruccin opuesta ("Set Interrupt") pone a 1 el registro IF habilitando las interrupciones enmascarables.

La idea importante a resaltar aqu, es que el PIC asocia un nmero entre 0 y 255 a cada peticin. Este nmero, que se conoce como nmero de interrupcin, no debe ser confundido con el nmero de lnea IRQ's que realiz la solicitud. El nmero de interrupcin sirve para identificar el servicio mediante la tabla IDT . Una vez ejecutado el servicio, deben dejarse las cosas como estaban para que el programa original pueda continuar su ejecucin.

http://www.zator.com/Hardware/H2_4.htm

2.9.2No-enmascarable.
Interrupcin no enmascarable La solicitud de interrupcin no enmascarable se realiza a travs de la entrada NMI (Non maskable Interrupt). NMI solicita una interrupcin de tipo fijo igual a 2, por lo tanto no es necesario que se realice un ciclo de INTA. NMI es una entrada asincrnica activa por flanco ascendente. El flanco ascendente en la entrada de NMI, se lachea en el interior del micro hasta que la instruccin en curso finaliza. No es enmascarable por lo que su atencin es inevitable. Esto hace que, independiente de la estructura que se monte para las interrupciones enmascarables, puede pensarse que, NMI es siempre la interrupcin ms prioritaria ya que puede interrumpir la ejecucin de cualquier servicio generado por INTR. Para que el pedido se haga efectivo, la entrada debe permanecer en alto, al menos dos ciclos de reloj, hasta que el micro la reconozca. La lnea puede bajar antes, durante o despus del servicio de NMI. Para que el micro vuelva a reconocer otro pedido, la lnea debe haber permanecido en bajo al menos dos ciclos de reloj despus de haber bajado. Debe tenerse especial cuidado en que no haya flancos espurios en el circuito de NMI que puedan generar interrupciones indeseables. NMI, se usa para situaciones graves que requieran atencin incondicional del micro. Un uso tpico de NMI, es la ejecucin de la rutina para cadas de alimentacin del sistema o sistemas de watch - dog. Es importante ver que, como NMI es no enmascarable, no podra ser activa por nivel, ya que sera imposible impedir que se repita el comienzo de la atencin cuando se ejecuta la primera instruccin de la rutina de servicio. Conceptualmente: las interrupciones no enmascarables deben ser activas por flanco.

Interrupcin no enmascarable significa que la interrupcin no puede ser deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe una seal en la patilla NMI ("Nonmaskable Interrupt" 5 ) del procesador. Se reservan para casos en que es crtica la respuesta, por ejemplo que se detecte un error de paridad en la memoria. Adems son de prioridad ms alta que las enmascarables. Nota: La nica forma de enmascarar estas interrupciones es a travs de circuitos externos al procesador, por ejemplo a nivel del PIC. Cuando el procesador recibe una de estas instrucciones no se genera ningn ciclo de reconocimiento de la instruccin (INTA), y el procesador le asigna un 2 como nmero de excepcin.
http://www.zator.com/Hardware/H2_4.htm

Ciclo de reconocimiento de interrupcin:

Este ciclo, tambin llamado ciclo de INTA, se utiliza para detectar el tipo de interrupcin que desea ejecutarse como resultado de la solicitud que ingresa por INTR. Esta secuencia de reconocimiento se genera solo como respuesta a una interrupcin proveniente de INTR. En realidad el ciclo de reconocimiento est formado por dos ciclos de INTA, cada uno de ellos es muy similar a un ciclo de lectura. En el segundo ciclo de INTA, se lee un byte del bus de datos que identifica el tipo de la interrupcin. Por tanto, INTA (Interrupt Aknowledge) es la salida de reconocimiento de interrupcin y se usa como pulso de lectura del tipo en el ciclo de INTA. Es activa en bajo y pasa a este valor durante T2, T3 (y Tw) de los ciclos de reconocimiento de interrupcin. Su objetivo es avisar al dispositivo solicitante que su pedido de interrupcin ha sido aceptado y que debe notificar al micro cul es el tipo de interrupcin que pide.

Segundo ciclo de INTA detallado:

Nota: Durante el ambos ciclos de INTA, el bus AD est flotante.

Atencin de Interrupcin:
Previo al comienzo de la ejecucin de la rutina de servicio de interrupcin, y como parte de la respuesta a cualquier interrupcin (o pseudo interrupcin) el micro realiza una serie de tareas que forman parte de la secuencia de ejecucin de una interrupcin. En los casos en donde exista (INTR), la secuencia de ejecucin se realiza luego de la de reconocimiento.

Las acciones que forman esta secuencia son: a PUSH del registro de banderas, el CS y el IP en la pila. a Reset de los bits de trampa y de mscara para que , al menos por default, la rutina de ejecucin de interrupcin no sea ejecutada en modo paso a paso, ni sea interrumpida por interrupciones enmascarables (ver nota). a Carga de los nuevos CS e IP (provenientes de la IVT). Luego de estas acciones, se ejecuta la primera instruccin de la rutina de atencin. Nota: Estos dos bits pueden se re habilitados en el interior de la rutina de servicio de la interrupcin, permitiendo la ejecucin paso a paso de esa rutina (ojo no se puede hacer en la ejecucin de la rutina de atencin de paso a paso) o permitir que otra interrupcin enmascarable sea atendida durante la ejecucin de una interrupcin dada (anidamiento). En resumen: Cada vez que el micro finaliza la ejecucin de una instruccin, comprueba (en este orden): a Si est activa la trampa (TF=1) a Si hubo pedido NMI a Si hay overflow en el segmento del coprocesador a Si hay INTR a Si la prxima es una instruccin INT Si se da alguna de estas condiciones, entonces se produce la siguiente secuencia: a Si hay un INTR, se realiza la secuencia de reconocimiento de interrupcin. a Se salva el contenido del registro de banderas en pila a Se desactivan la mscara de interrupcin IF y el TF a Se salva el contenido del CS en la pila a Se salva el contenido del IP en la pila a Se recupera el contenido del vector de interrupcin y se carga el CS y el IP en con su contenido de manera que el micro contine ejecutando donde ellos indiquen. Tanto en la INTR como en la NMI, los tiempos de demora entre la activacin del pedido y la ejecucin de la primera instruccin de la rutina de servicio, dependen de la instruccin que se est ejecutando en el momento de esa activacin. Los tiempos que si pueden determinarse en forma exacta son los de demora entre el final de la instruccin en curso y el comienzo de la primera instruccin de la rutina de servicio. Por ejemplo, en el caso de una INTR, el retardo desde el final de la instruccin durante la cual ocurri la interrupcin, hasta el comienzo de la ejecucin de la primera instruccin de la rutina de atencin, es de 61 ciclos de reloj. En las interrupciones generadas por soft no hay ciclos de INTA. Esto reduce el

2.10

Acceso Directo a memoria.

Acceso Directo a Memoria (DMA)


El acceso directo a memoria se invent con el propsito de liberar al CPU de la carga de atender a algunos controladores de dispositivos. Para comprender su funcionamiento

vale la pena revisar cmo trabaja un controlador sin DMA. Cuando un proceso requiere algunos bloques de un dispositivo, se envia una seal al controlador con la direccin del bloque deseado. El controlador lo recibe a travs del 'bus' y el proceso puede estar esperando la respuesta (trabajo sncrono) o puede estar haciendo otra cosa (trabajo asncrono). El controlador recibe la seal y lee la direccin del bus. Enva a su vez una o varias seales al dispositivo mecnico (si es que lo hay) y espera los datos. Cuando los recibe los escribe en un buffer local y enva una seal al CPU indicndole que los datos estn listos. El CPU recibe esta interrupcin y comienza a leer byte por byte o palabra por palabra los datos del buffer del controlador (a travs del device driver) hasta terminar la operacin. Como se ve, el CPU gasta varios ciclos en leer los datos deseados. El DMA soluciona ese problema de la manera siguiente. Cuando un proceso requiere uno o varios bloques de datos, el CPU enva al controlador la peticin junto con el nmero de bytes deseados y la direccin de en dnde quiere que se almacenen de regreso. El DMA actuar como un 'cpu secundario' [Stal92] en cuanto a que tiene el poder de tomar el control del 'bus' e indicarle al verdadero CPU que espere. Cuando el controlador tiene listos los datos, el DMA 'escucha' si el 'bus' est libre aprovechando esos ciclos para ir leyendo los datos del buffer del controlador e ir escribindolos en el rea de memoria que el CPU le indic. Cuando todos los datos fueron escritos, se le enva una interrupcin al CPU para que use los datos. El ahorro con el DMA es que el CPU ya no es interrumpido (aunque s puede ser retardado por el DMA) salvando as el 'cambio de contexto' y adems el DMA aprovechar aquellos ciclos en que el 'bus' no fue usado por el CPU. El hecho de que los controladores necesiten buffers internos se debe a que conforme ellos reciban datos de los dispositivos que controlan, los deben poder almacenar temporalmente, ya que el CPU no est listo en todo momento para leerlos. http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/capitulo6.html Acceso Directo a Memoria (DMA) Muchos controladores, especialmente los correspondientes a dispositivos de bloque, permiten el DMA. Si se lee el disco sin DMA:

El controlador lee en serie el bloque (uno o ms sectores) de la unidad: o La lectura es bit por bit. o Los bits del bloque se graban en el buffer interno del controlador. Se calcula la suma de verificacin para corroborar que no existen errores de lectura. El controlador provoca una interrupcin. El S. O. lee el bloque del disco por medio del buffer del controlador: o La lectura es por byte o palabra a la vez. o En cada iteracin de este ciclo se lee un byte o una palabra del registro del controlador y se almacena en memoria. Se desperdicia tiempo de la cpu.

DMA se ide para liberar a la cpu de este trabajo de bajo nivel. La cpu le proporciona al controlador:

La direccin del bloque en el disco. La direccin en memoria adonde debe ir el bloque. El nmero de bytes por transferir.

Luego de que el controlador ley todo el bloque del dispositivo a su buffer y de que corrobor la suma de verificacin: Copia el primer byte o palabra a la memoria principal. Lo hace en la direccin especificada por medio de la direccin de memoria de DMA. Incrementa la direccin DMA y decrementa el contador DMA en el nmero de bytes que acaba de transferir. Se repite este proceso hasta que el contador se anula y por lo tanto el controlador provoca una interrupcin. Al iniciar su ejecucin el S. O. luego de la interrupcin provocada, no debe copiar el bloque en la memoria, porque ya se encuentra ah (ver Figura 5.1 [23, Tanenbaum]).

El controlador necesita un buffer interno porque una vez iniciada una transferencia del disco:

Los bits siguen llegando del disco constantemente. No interesa si el controlador est listo o no para recibirlos. Si el controlador intentara escribir los datos en la memoria directamente: o Tendra que recurrir al bus del sistema para c / u de las palabras (o bytes) transferidas. o El bus podra estar ocupado por otro dispositivo y el controlador debera esperar. o Si la siguiente palabra llegara antes de que la anterior hubiera sido almacenada, el controlador la tendra que almacenar en alguna parte.

Si el bloque se guarda en un buffer interno: El bus no se necesita sino hasta que el DMA comienza.

La transferencia DMA a la memoria ya no es un aspecto crtico del tiempo.

Los controladores simples no pueden atender la e / s simultnea: Mientras transfieren a la memoria, el sector que pasa debajo de la cabeza del disco se pierde; es decir que el bloque siguiente al recin ledo se pierde. La lectura de una pista completa se har en dos rotaciones completas, una para los bloques pares y otra para los impares. Si el tiempo necesario para una transferencia de un bloque del controlador a la memoria por medio del bus es mayor que el tiempo necesario para leer un bloque del disco: o Sera necesario leer un bloque y luego saltar dos o ms bloques. o El salto de bloques: Se ejecuta para darle tiempo al controlador para la transferencia de los datos a la memoria. Se llama separacin. Al formatear el disco, los bloques se numeran tomando en cuenta el factor de separacin (ver Figura 5.2 [23, Tanenbaum]). Esto permite al S. O.: Leer los bloques con numeracin consecutiva. Conservar la mxima velocidad posible del hardware.

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO5.htm

2.10.1 2.10.2 2.10.3

Sistema de video. Sistema de discos. Otras aplicaciones.

Unidad 3. Seleccin de componentes para ensamble de equipos de cmputo.


3.1 Chip Set.

El "chipset" es el conjunto (set) de chips que se encargan de controlar determinadas funciones del ordenador, como la forma en que interacciona el microprocesador con la memoria o la cach, o el control de los puertos y slots ISA, PCI, AGP, USB... Antiguamente estas funciones eran relativamente sencillas de realizar y el chipset apenas influa en el rendimiento del ordenador, por lo que el chipset era el ltimo elemento al que se conceda importancia a la hora de comprar una placa base, si es que alguien se molestaba siquiera en informarse sobre la naturaleza del mismo. Pero los nuevos y muy complejos micros, junto con un muy amplio abanico de tecnologas en materia de memorias, cach y perifricos que aparecen y desaparecen casi de mes en mes, han hecho que la importancia del chipset crezca enormemente. De la calidad y caractersticas del chipset dependern: Obtener o no el mximo rendimiento del microprocesador. Las posibilidades de actualizacin del ordenador. El uso de ciertas tecnologas ms avanzadas de memorias y perifricos.

Debe destacarse el hecho de que el uso de un buen chipset no implica que la placa base en conjunto sea de calidad. Como ejemplo, muchas placas con chipsets que daran soporte a enormes cantidades de memoria, 512 MB o ms, no incluyen zcalos de memoria para ms de 128 256. O bien el caso de los puertos USB, cuyo soporte est previsto en la casi totalidad de los chipsets de los ltimos dos aos pero que hasta fecha reciente no han tenido los conectores necesarios en las placas base. Trataremos slo los chipsets para Pentium y superior, ya que el chipset de un 486 o inferior no es de mayor importancia (dentro de un lmite razonable) por estar en general todos en un nivel similar de prestaciones y rendimiento, adems de totalmente descatalogados. Tampoco trataremos todas las marcas, sino slo las ms conocidas o de ms inters; de cualquier forma, muchas veces se encuentran chipsets aparentemente desconocidos que no son sino chipsets VIA, ALI o SIS bajo otra marca.

Chipsets para Pentium y Pentium MMX


De Intel (Tritones)
Fueron la primera (y muy exitosa) incursin de Intel en el mundo de los chipsets, mundo en el cual ha pasado de no fabricar prcticamente ninguno a tener un monopolio casi total, que es la forma en que a Intel le gusta hacer los negocios. Esto no resulta extrao, ya que nadie mejor que Intel conoce cmo sacar partido a sus microprocesadores; adems, el resto de fabricantes dependen de la informacin tcnica que les suministra Intel, que lo hace cuando y como quiere. 430 FX: el Tritn clsico, de apabullante xito. Un chipset bastante apropiado para los Pentium "normales" (no MMX) con memorias tipo EDO. Hoy en da desfasado y descatalogado. 430 HX: el Tritn II, la opcin profesional del anterior. Mucho ms rpido y con soporte para placas duales (con 2 micros). Algo anticuado pero muy bueno. 430 VX: el Tritn III? Ms bien el 2.5; algo ms lento que el HX, pero con soporte para memoria SDRAM. Se puede decir que es la revisin del FX, o bien que se sac para que la gente no se asustara del precio del HX... 430 TX: el ltimo chipset de Intel para placas Pentium (placas socket 7). Si queremos usar micros Intel y aplicaciones que se contenten con placas con 1 Pentium, la opcin a elegir. Soporte MMX, SDRAM, UltraDMA... Un problema: si se le pone ms de 64 MB de RAM, la cach deja de actuar; aunque ms de 64 MB es mucha RAM.

Chipsets de Intel para Pentium y Pentium MMX

Concepto

430 FX

430 HX

430 VX

430 TX 1

Nmero CPUs mx.

RAM mxima

128 MB

512 MB

128 MB

256 MB

Tipos de RAM

FPM, EDO

FPM, EDO, SDRAM

RAM cacheable mxima

64 MB

512 MB (segn placa, no todas)

64 MB

Cach L2 mxima

512 KB

Velocidad bus mx.

66 MHz

Puertos adicionales

USB

UltraDMA y USB

Comentarios

Desfasado

No adecuados para micros no Intel de nueva generacin (no soportan AGP ni bus 100 MHz)

Lo ms destacable de estos chipsets, su buen rendimiento, especialmente con micros Intel. Lo peor, su escaso soporte para micros no Intel, que en el campo socket 7 tienen desarrollos superiores a los de Intel, como los AMD K6 (normal y K6-2) o los Cyrix-IBM 6x86MX (M2), en general ms avanzados que los Pentium y Pentium MMX.

De VIA (Apollos)
Unos chipsets bastante buenos, se caracterizan por tener soporte para casi todo lo imaginable (memorias SDRAM o BEDO, UltraDMA, USB...); su pelea est en la gama del HX o TX, aunque suelen ser algo ms lentos que stos al equiparlos con micros Intel, no as con micros de AMD o Cyrix-IBM.

Chipsets de VIA para Pentium y Pentium MMX

Concepto

VP2

VPX

VP3

MVP3

Nmero CPUs mx.

RAM mxima

512 MB

1 GB

Tipos de RAM

FPM, EDO, BEDO, SDRAM

FPM, EDO, SDRAM

RAM cacheable mxima

512 MB (segn placa, no todas)

512 MB 1 GB (segn placa, no todas)

Cach L2 mxima

2048 KB

Velocidad bus mx.

66 MHz

75 MHz

66 MHz

100 MHz

Puertos adicionales

UltraDMA y USB

UltraDMA, USB y AGP

Comentarios

No adecuados para micros no Intel de Sin bus a 100 nueva generacin (no soportan AGP MHz ni bus 100 MHz)

Muy moderno, con todos los avances

Lo bueno de las placas con chipsets VIA es que siguen en el mercado socket 7, por lo que tienen soporte para todas las nuevas tecnologas como el AGP o los buses a 100 MHz, adems de que su calidad suele ser intermedia-alta. En las placas con chipsets Intel hay un abanico muy amplio entre placas muy buenas y otras francamente malas, adems de estar ya desfasadas (ningn chipset Intel para socket 7 soporta AGP, por ejemplo). El ltimo chipset de VIA para socket 7, el MPV3, ofrece todas las prestaciones del BX de Intel (excepto soporte para placas duales), configurando lo que se denomina una placa Super 7 (con AGP y bus a 100 MHz), que con un micro como el nuevo AMD K6-2 no tiene nada que envidiar a un equipo con Pentium II.

De ALI
Muy buenos chipsets, tienen soluciones tan avanzadas como el chipset para placas Super 7 "Aladdin V", que como el MPV3 de VIA resulta equiparable a todos los efectos al BX de Intel para placas Pentium II (bus a 100 MHz, AGP...); una fantstica eleccin para micros como el AMD K6-2.

Chipsets de ALI para Pentium y Pentium MMX

Concepto

M1521/M1523 (Aladdin M1531/M15X3 (Aladdin III) IV-IV+)

M1541/M1543 (Aladdin V)

Nmero CPUs mx.

RAM mxima

1 GB

Tipos de RAM

FPM, EDO, SDRAM

FPM, EDO, SDRAM, PC100

RAM cacheable mxima

512 MB (segn placa, no todas)

Cach L2 mxima

1 MB

Velocidad bus mx.

75 MHz

83,3 MHz

100 MHz

Puertos adicionales

USB

UltraDMA y USB

UltraDMA, USB y AGP

Comentarios

Apropiados para micros no Intel pero no de ltima generacin (AMD K6-2) por carecer de bus a 100 MHz

Muy moderna, con todos los avances

De SiS
Como los anteriores, sus capacidades son avanzadas, aunque su velocidad sea a veces algo ms reducida que en los de Intel. Resultan recomendables para su uso junto a chips compatibles Intel como el K6 de AMD o el 6x86MX (M2) de Cyrix-IBM, aunque desgraciadamente no soportan por ahora el bus a 100 MHz del nuevo K6-2.

Chipsets de SIS para Pentium y Pentium MMX

Concepto

5597/5598

5581/5582

5591/5592

Nmero CPUs mx.

RAM mxima

384 MB

768 MB

Tipos de RAM

FPM, EDO, SDRAM

RAM cacheable mxima

128 MB

256 MB

Cach L2 mxima

512 KB

1 MB

Velocidad bus mx.

75 MHz

83 MHz

Puertos adicionales

UltraDMA, USB y SVGA UltraDMA y USB integrada

UltraDMA, USB y AGP

Comentarios

Apropiados para micros no Intel (especialmente Cyrix) pero no los de ltima

generacin (AMD K6-2) por carecer de bus a 100 MHz

Chipsets para Pentium II y Celeron


De Intel
A decir verdad, an sin competencia seria, lo que no es de extraar teniendo el Pentium II slo un aito... y siendo de Intel. Son bastante avanzados, excepto el anticuado 440 FX (que no es propiamente un chipset para Pentium II, sino ms bien para el extinto Pentium Pro) y el barato EX, basado en el LX pero con casi todas las capacidades reducidas.

Chipsets de Intel para Pentium II y Celeron

Concepto

440 FX

440 LX

440 BX

440 EX

Nmero CPUs mx.

RAM mxima

512 MB

1 GB EDO 512 MB SDRAM

1 GB

256 MB

Tipos de RAM

FPM, EDO

FPM, EDO, SDRAM

SDRAM y PC100 SDRAM

FPM, EDO, SDRAM

RAM cacheable mxima

No aplicable (dentro del microprocesador, tamao fijo)

Cach L2 mxima

Velocidad bus mx.

66 MHz

100 MHz

66 MHz

Puertos adicionales

UltraDMA y USB

UltraDMA, USB y AGP

Comentarios

Desfasado

Apropiado slo para Celeron

De otras marcas
No son demasiados, pero los que hay tienen todas las capacidades que hacen falta en una placa Pentium II. El problema con el que se encuentran no es su falta de eficacia, ya que aunque los de Intel estn algo ms rodados, el rendimiento es muy similar; pero el hecho de que durante un ao la gente slo haya odo hablar de FX, LX, BX y EX hace difcil que entren en un mercado donde Intel tiene un monopolio absoluto.

Chipsets de otras marcas para Pentium II y Celeron

Concepto

VIA Apollo Pro

ALI Aladdin Pro II M1621/M15X3

SIS 5601

Nmero CPUs mx.

1 ms dependiendo de la placa

RAM mxima

1 GB

1 GB SDRAM 2 GB FPM o EDO ?

Tipos de RAM

FPM, EDO, SDRAM, PC100 SDRAM

RAM cacheable mxima

No aplicable (dentro del microprocesador, tamao fijo)

Cach L2 mxima

Velocidad bus mx.

100 MHz

Puertos adicionales

UltraDMA, USB y AGP

Comentarios

Muy avanzados, equivalentes al Intel BX

En proyecto

Glosario de trminos relacionados


Resulta muy bonito saber que el chipset soporta esto o aquello, pero si saber qu es esto o aquello no vamos a ningn lado. Los trminos ms importantes a conocer son: AGP: un tipo de puerto o slot especializado para grficos 3D. Bus (del sistema): el canal por el que se comunica el micro con la memoria y habitualmente con la cach L2. Cuanto ms ancho sea, mejor, especialmente para micros muy rpidos. Cach L2: la cach secundaria o de nivel 2 (level 2). Es la memoria cach externa, que acelera el rendimiento del ordenador; cuanta ms memoria RAM tengamos, ms cach necesitaremos (por ejemplo, unos 512 KB para 32 MB de RAM). PC100: el tipo normalizado de memoria SDRAM de 100 MHz. RAM cacheable: la cantidad de RAM mxima que es capaz de manejar la cach. Si superamos esta cifra es como si no tuviramos memoria cach. UltraDMA: una tecnologa para los discos duros IDE modernos que la soportan que eleva la transferencia terica de datos hasta 33,3 MB/s. USB: un tipo de puerto moderno para conectar dispositivos externos de velocidad media-baja, con la ventaja de ser universal (el mismo para todos) y poderse conectar en cadena unos a otros.

La eleccin del chipset


Chipset y placa base forman un conjunto indisoluble y de la mxima importancia, por lo que su compra debe estar acompaada de una cierta reflexin. Lo primero es recordar que un buen chipset slo no hace una buena placa; si encontramos dos placas con el mismo chipset pero una cuesta el doble que la otra, por algo ser (aunque a veces ese algo es simplemente la marca de la placa, por ejemplo las placas Intel, que en general no son tan avanzadas como las Asus, Iwill o Gigabyte pero que cuestan lo mismo o ms que stas...) As mismo, una placa debe ser comprada pensando en el futuro. Por ejemplo, si vamos a comprar una para Pentium II, merece la pena comprar una con un chipset capaz de trabajar a 100 MHz de bus (una Intel BX, Apollo Pro o Aladdin Pro II), con lo que podremos ampliarla en el futuro a micros a 350 MHz o ms, cosa que no podremos hacer si compramos una LX, por ejemplo. No se obsesione con el Intel Inside. No es que le tenga una mana especial a Intel, y si la tuviera, me la aguantara; se trata de que mucha gente prefiere dejarse llevar por el atractivo de una marca sin informarse de las caractersticas de lo que compra. Por ejemplo, si bien el chipset BX de Intel para Pentium II es an el mejor de su categora, en el campo socket 7 los mejores desarrollos no son de Intel, que lo ha abandonado a favor del campo Pentium II. Por ello, comprarse una placa TX ahora sera un error, no porque sea Intel sino porque ese chipset est anticuado (aunque hace unos meses era probablemente el mejor de su categora); y lo mismo pasa con el EX, que es mucho peor que los Apollo Pro o Aladdin Pro II. Y por ltimo, estudie bien la compra. Puede ser que el chipset admita mucha memoria, pero que la placa tenga pocos zcalos para instalarla; o que estemos comprando una placa base o un ordenador de segunda mano, y realmente nos importe ms que la memoria sea suficiente y fcilmente ampliable (EDO mejor que FPM, con zcalos vacos...) que el hecho de que tenga un chipset sin AGP o sin AGP ni UltraDMA, cuando puede que no vayamos a usar uno ni otro. http://www.conozcasuhardware.com/quees/chipset.htm

3.1.1 3.1.2

CPU. Controlador del Bus.

Controlador del bus Es una especie de controlador de trfico. En el PC XT es el chip 8288 y en el AT es el 82288. El procesador necesita del concurso de este chip para generar el juego completo de seales del bus de control.

Control del bus asncrono. Una de las caractersticas principales del P MC68000 es que la transferencias entre el P y los dipspositivos externos ( includa la memoria ) se realizan de forma asncrona. Es decir, la velocidad de transferencia no viene dada por la frecuencia del reloj del sistema. De echo, en un sistema basado en el MC68000 cada dispositivo puede funcionar con una frecuencia de reloj distinta. De esta manera los datos se transfieren a la mxima velocidad admisible por los distintos dispositivos . Por ejemplo, si en un sistema determinado la memoria ROM tiene un tiempo de acceso de 500 ns., y el de la memoria RAM es de 250 ns., el MC68000 podr transferir los datos a la memoria RAM al doble de la velocidad con que los transfiere a la memoria ROM. El control del bus

asncrono requiere unas seales que realizan el protocolo entre el microprocesador y los dispositivos externos: Address Strobe ( AS ). Esta seal indica que hay una direccin vlida en el bus de direcciones. Read/Writee ( R/W ). Esta seal define la direccin de la transferencia por el bus de datos . A nivel alto indica que el P desea realizar una lectura desde el dispositivo externo, y viceversa. Normalmente est a nivel alto. Upper Data Strobe ( UDS ) y Lower Data Strobe ( LDS ). Estas seales indican qu parte del bus de datos va a ser usada durante la transferencia del dato. Si la seal UDS est activa, ello significa que el P desea leer o escribir ( segn el estado de R/W ) un dato de 8 bits por la parte alta del bus de datos ( D8-D15 ). Si la seal LDS est cativa, est indicando que el P desea transferir http://www.ii.uam.es/~fjgomez/68000/tutorial/cap5.html#cap5-1-1

3.1.3

Puertos de E/S.

La comunicacin entre un programa y el hardware, es decir los chips de soporte y las tarjetas de ampliacin, se efectuar mediante los llamados puertos. Como puerto uno tiene que imaginarse una entrada o salida de datos de 8 o 16 bits de ancho, que se identificar por su direccin entre 0 y 65535. ste autoriza el acceso a los diferentes registros de la correspondiente unidad de hardware y por regla general un grupo de puertos queda cubierto por un dispositivo. Para la comunicacin con los puertos, la CPU utiliza el bus de datos y el bus de direcciones y se comporta de forma muy similar que en el acceso a la memoria. - En primer lugar sta manda una seal mediante una conexin especial de bus, para que todas las unidades que estn recibiendo el bus sepan que ahora no se va a dirigir a un punto de memoria sino a un puerto. - Seguidamente coloca la direccin del puerto en los 16 bits inferiores del bus de direcciones y espera que uno de los escuchas del bus declare su competencia. - Una vez esto ha sucedido, la CPU manda los datos que deben transmitirse por medio del bus de datos. En direccin contraria , el puerto actuar de la misma forma al leer los datos, el nico requisito es que el contenido del puerto lo mande la tarjeta de ampliacin a la CPU. Pero slo mandar los datos en caso de que le sea requerido y no cuando la tarjeta crea que tiene algo importante para mandar. Una ltima cosa por comentar es que hoy en da las direcciones de puerto de los elementos ms importantes del PC estn estandarizadas, es decir en todos los ordenadores dichas direcciones son idnticas. Puertos Entrada/Salida Nota: Para tener una visin de conjunto, antes de adentrarse en este apartado, dedicado a los puertos de E/S, es recomendable leer el

epgrafe en que se tratan las Entradas/Salidas de forma genrica ( H2.1) 1 Sinopsis Cualquier dispositivo (distinto de la memoria RAM) que intercambie datos con el sistema lo hace a travs de un "puerto", por esto se denominan tambin puertos de E/S ("I/O ports"). Desde el punto de vista del software, un puerto es una interfaz con ciertas caractersticas; se trata por tanto de una abstraccin (no nos referimos al enchufe con el que se conecta fsicamente un dispositivo al sistema), aunque desde el punto de vista del hardware, esta abstraccin se corresponde con un dispositivo fsico capaz de intercambiar informacin (E/S) con el bus. Como los dispositivos E/S tienen algn tipo de conexin con el bus externo ( H2), deben tener una direccin (o conjunto de ellas) que los identifique; los hemos comparado con un telfono, un dispositivo con el que se puede enviar/recibir informacin mediante una direccin. Hablar de un puerto E/S es casi siempre sinnimo de una direccin, y es costumbre informtica referirse a estas direcciones en hexadecimal ( 2.2.4b), de modo que, por ejemplo, un puerto puede ser 0x21 en un fuente o 21h en un texto informtico. Nota: Al tratar de las E/S ( H2.1) hemos indicado que puerto es sinnimo de perifrico, un dispositivo externo que comunica con el sistema a travs de una direccin. Sin embargo no todos son dispositivos externos a la placa-base, de hecho algunos dispositivos hardware incluidos en ella tienen la caracterstica de "Puertos". Por ejemplo, durante mucho tiempo algunos PC's disponan de un botn frontal sealado "Turbo", con el que se poda cambiar la velocidad de funcionamiento. Este cambio de la velocidad del reloj tambin puede realizarse por software. Basta para ello cambiar un par de bits en un "Puerto" instalado en la propia placa-base (generalmente en el rango 626Fh). 2 Direcciones de puertos El modelo de direccionamiento del PC ha adoptado dos modelos, segn la naturaleza del dispositivo a conectar: Direccionamiento dedicado para dispositivos de media/baja velocidad. Por ejemplo, puertos serie y paralelo (impresora), teclado, Etc. y direccionamiento mapeado en memoria para dispositivos rpidos (tpicamente los adaptadores grficos). En el apartado dedicado a E/S se explican las diferencias entre ambas modalidades ( H2.1) 2.1 Respecto a los dispositivos de direccionamiento dedicado, desde la introduccin del IBM-PC, es costumbre que determinados dispositivos muy comunes se conecten mediante puertos de direcciones determinadas.

Agunas direcciones (hex) de puertos en el PC XT/AT En la tabla adjunta se muestran algunas de estas direcciones tpicas para dispositivos de E/S [3]. Las referencias a los chips se refieren a los utilizados en los primeros PCs; actualmente han sido sustituidos por uno o dos integrados (Chipset) que realizan todas las funciones. Dispositivo Controlador DMAC#1 primario 8237A Controlador de interrupciones PIC#1 8259A Temporizador programable PIT 8253 y 8254 Controlador perifricos PPI 8255 (XT) Controlador 8742 (AT) Altavoz del sistema CMOS RAM & NMI Mask Reg (AT) Registros de pgina DMA Controlador de interrupciones PIC#2 (AT) Direccin 000-00F

020-021

040-043

060-063

060-064 061-061 070-071

081-08F

0A0-0A1

NMI Mask register (XT) 0A2-0AF Controlador DMAC#2 secundario (AT) Clear / Reset del coprocesador matemtico Coprocesador matemtico 80287 Controlador de disco duro (AT) Puerto de juegos Unidad de expansin (XT) Ratn (conectado al 0C0-0DF

0F0-0F1

0F8-0FF

1F0-1FF

200-20F 210-21F

238-23B

Puede observarse que para un mismo perifrico se tienen varias direcciones (un "rango"). La razn es que estos dispositivos tienen varios registros y/o son programables, para lo que disponen de registros especiales (cada registro de un Byte tiene una direccin, y estas son correlativas). Por ejemplo, el controlador de puerto serie de los primeros PCs era un circuito integrado 8250 de National Semiconductor; que dispone de 8 registros, aunque los datos se reciben y transmiten por uno de ellos, el resto sirve para programar y controlar el funcionamiento del chip. Nota: Los usuarios de Windows 98 pueden comprobar la asignacin de puertos del sistema mediante el programa C:\Archivos de programa\Archivos comunes\Microsoft Shared\MSINFO\MSINFO32.EXE. En Linux pueden consultarse en el fichero /proc/ioports ( Ejemplo). 2.1a Respecto a las asignaciones "Estandar" de algunos puertos, es pertinente hacer algunas observaciones: En realidad IBM defini de forma distinta las direcciones de puerto de las interfaces de impresora en los PC monocromo y en los de color. Las asignaciones fueron las siguientes: Puerto Monocromo Color LPT1 3BC-3BFh 378-37Fh LPT2 378-37Fh 278-27Fh LPT3 278-27Fh ---

En lo referente a los puertos serie, durante la secuencia inicial de identificacin del hardware ( 4.2), la BIOS realiza una bsqueda de dispositivos de E/S por direcciones en un orden determinado, y les asigna un nombre lgico segn el orden de aparicin. En el caso de los puertos serie el orden suele ser el siguiente: Puerto COM1 COM2 COM3 COM4 Direccin 3F8-3FFh 2F8-2FFh 3E8-3EFh 2E8-2EFh

2.2 Las direcciones mapeadas en memoria se eligieron para algunos dispositivos como los adaptadores grficos, que requeran mover grandes cantidades de datos muy rpidamente. Con objeto de no causar conflictos con la RAM general, algunas de estas direcciones fueron mapeadas desde el principio por los diseadores de IBM, fuera de la denominada memoria convencional ( H5.1). Es decir, fuera del espacio de los 640 KB que podan utilizarse en los primeros PC's para Sistema

y programas de aplicacin. Por ejemplo, el adaptador de video utiliza un rea de memoria de 128 KB mapeada entre las direcciones A0000-BFFFFh. Sin embargo, los decodificadores de direcciones de perifricos de los primitivos PC's solo podan utilizar direcciones de 10 bits para tales accesos, por lo que las direcciones de puertos estaban constreidas a 2 10 (1 KB 0000-0400h). En realidad el espacio era an ms pequeo, puesto que los primeros 256 Bytes estaban copados por algunos dispositivos de la placa-base, resultando que los dispositivos E/S deban ser mapeados en 768 Bytes. Generalmente se utilizaron fragmentos de 256 Bytes en la forma xxF0-xxFFh, organizados de forma bastante desordenada. La introduccin del AT ampli estas direcciones a 16 [2]. Sin embargo, incluso los 64 KB resultantes eran un espacio pequeo y de organizacin catica, dado que los nuevos dispositivos se construan de forma que fueran compatibles con las antiguas placas ISA que solo reconocan direcciones de 10 bits. Incluso las placas para buses posteriores que fueron desarrollados pensando en 64 KB porque deban ser compatibles hacia atrs con las antiguas placas ISA (que coexistan en las nuevas). El resultado de todo esto es que, incluso los sistemas actuales con muchos MB. de RAM, deben seguir lidiando con los puertos a travs de pequeas ventanas de memoria con localizaciones absurdas. 3 Comunicar con los puertos Nos detendremos brevemente en analizar los aspectos involucrados en las operaciones E/S con los puertos desde una doble vertiente: Lgica y fsica; esta ltima relativa a los mecanismos involucrados en el intercambio. 3.1 Aspectos lgicos El software utilizado depende de la modalidad de direccionamiento ( dedicado o mapeado) que se elija. En el segundo caso, se dispone un amplio repertorio de recursos para mover datos entre los registros y la memoria (la mayora de las instrucciones del procesador operan de esta forma), as como de los mecanismos auxiliares de transferencia, como el acceso directo a memoria DMA. El panorama es distinto cuando se trata de puertos de direccionamiento dedicado. En este caso, para realizar las operaciones E/S en los procesadores 8088 y descendientes, solo se dispone de dos instrucciones especficas: IN y OUT. La primera lee un byte del registro de salida del puerto y lo sita en un registro del procesador; la segunda escribe el contenido de un registro del procesador en un registro del puerto. Ambas instrucciones permiten dos variaciones sintcticas: IN acumulador-destino, direccion-de-puerto-origen IN acumulador-destino, acumulador-origen OUT direccin-de-puerto-destino, acumulador-origen

OUT acumulador-destino, acumulador-origen Las dos primeras sitan el dato contenido en el puerto origen en el acumulador-destino, que puede ser AX o AL. Observe que el puerto puede ser expresado directamente mediante una direccin (hexadecimal) o mediante un acumulador-origen, que debe ser DX; en este caso, su contenido se toma como direccin del puerto que se lee. Las instrucciones OUT sitan el valor contenido en el acumulador-origen, que puede ser AX o AL, en el puerto destino, que puede ser identificado directamente mediante su direccin hexadecimal, o por el valor sealado por el acumulador-destino, que debe ser DX. En el IBM-PC, las direcciones-de-puerto utilizadas en estas instrucciones estan en el rango 00-FFh, aunque en la prctica solo 00-F7h, porque Intel reserva las direcciones F8-FFh para el coprocesador metemtico ( 0.3.2). En cambio, si se utiliza la direccin contenida en el registro DX el rango de direcciones puede moverse en el rango 0000-FFFFh. Por supuesto, cualquier programa que quiera utilizar puertos deber emplear directa o indirectamente estas dos instrucciones ensamblador, aunque en muchos casos no es imprescindible enredarse en demasiados detalles. Los usuarios de DOS pueden utilizar servicios del Sistema; concretamente la interrupcin 21h que realiza operaciones de E/S con puertos (utilizando IN y OUT por supuesto). Por ejemplo, las instrucciones: MOV DL,7 MOV AH,2 INT 21 provocan un pitido en el sistema bajo DOS. La explicacin es la siguiente: La ltima instruccin invoca una interrupcin software ( H2.4) nmero 33 (21h) que, como hemos indicado, corresponde a los servicios del DOS. Cuando esto ocurre, se comprueba el contenido del registro AH ( H3.2), que en este caso es 2 (valor previamente establecido en la segunda instruccin), lo que indica que debe escribirse un carcter en pantalla (un dispositivo de salida); en este caso, el carcter que se enva al puerto es el contenido del registro DL, que previamente se ha establecido en el valor 7 con la primera instruccin. El 7 es el valor BELL ASCII ( 2.2.1a); cuando se intenta mostrar este carcter, se produce un pitido en el altavoz del sistema. Los dems Sistemas disponen de utilidades anlogas. Por ejemplo, los sistemas Windows disponen de una DLL especfica para este tipo de servicios.

3.2 Aspectos fsicos El procedimiento que se sigue el procesador para las E/S hacia puertos, es siempre el mismo: Poner el dato en el bus de datos y la direccin en el de direcciones. Como indicamos a continuacin, el sistema sabe que se trata de una direccin de memoria (real o de puerto mapeado) o de un puerto de direccin dedicada, y cual es la accin esperada (lectura o escritura) porque se dispone de 4 lneas especficas en el bus de control ( H2):

IOR Orden de lectura para dispositivo E/S conectado al bus, que debe colocar un dato en el bus de datos. IOW Orden de escritura para dispositivo E/S, que debe leer el dato situado en el bus. MEMR Esta seal indica a los dispositivos de memoria que deben colocar un dato en el bus de datos. MEMW Seal que indica a los dispositivos de memoria que deben almacenar el dato colocado en el bus de datos.

Una cuestin adicional es que cuando la comunicacin debe establecerse desde el lado del puerto (es el puerto el que desea establecer comunicacin con el sistema), primero debe anunciarlo al procesador, para lo que se utiliza un sistema de interrupciones cuyo mecanismo de funcionamiento se ha detallado en el captulo correspondiente ( H2.4). La consecuencia es que la mayora de los puertos disponen de lneas IRQ asignadas para este menester.
http://www.zator.com/Hardware/H2_5.htm

3.1.4

Controlador de Interrupciones.

Controlador de interrupciones Las interrupciones del PC, a las que nos referimos ms detenidamente en el epgrafe correspondiente ( H2.4), son manejadas por un chip conocido como PIC ("Programmable Interrupt Controller"). Originariamente era un 8259A, que puede manejar 8 peticiones de interrupcin, pero pronto se hizo evidente que eran un nmero excesivamente corto, por lo que en 1984, IBM aadi un segundo controlador en el modelo AT. Este diseo, con dos controladores, ha permanecido invariable hasta nuestros das en lo que se refiere a su funcionalidad. Recientemente ha sido sustituido por el denominado APIC ("Advanced Programmable Interrupt Controller") en las mquinas Pentium y sucesoras, que est basado en un chip 82489DX.

3.1.5
Controlador DMA

Controlador de DMA.

DMA es el acrnimo de "Direct Memory Access"; se trata de un mecanismo incluido en la arquitectura del PC, que permite intercambios de datos entre la memoria y ciertos dispositivos sin intervencin del procesador (por esta razn se denomina precisamente acceso directo a memoria); est controlado por un chip especfico, el DMAC ("DMA Controller"). En los XT estaba integrado en un chip 8237A que proporcionaba 4 canales. Posteriormente en los AT se instalaron dos, amplindose a 8 el nmero de canales. En el epgrafe dedicado al Acceso directo a memoria ( H2.3), se expone con ms detalle su funcionamiento. Controlador programable 8237 DMA El controlador de DMA 8237 suministra a la memoria y al E/S seales de control e informacin y direccionamiento a la memoria durante la transferencia de DMA. El 8237 es, en realidad, un microprocesador de propsito especial cuya labor es la transferencia de datos a alta velocidad entre la memoria y el espacio de E/S. Aunque este controlador quiz no aparezca como componente discreto en sistemas modernos basados en microprocesador, se emplea en los conjuntos de controladores integrados (chip-set) que hay en los sistemas ms nuevos. El 8237 tiene cuatro canales y es compatible con los microprocesadores 8086 y 8088. El 8237 puede expandirse para incluir cualquier nmero de entradas de canal de DMA, aunque parece ser que cuatro canales son adecuados para muchos sistemas pequeos. El 8237 puede efectuar transferencias de DMA a velocidades de hasta 1.6 Mbytes por segundo. Cada una puede direccionar a una seccin completa de 64 Kbytes de la memoria y puede transferir hasta 64 Kbytes con una sola programacin. http://www.monografias.com/trabajos5/tempori/tempori.shtml#con

3.1.6

Circuitos de temporizacin y control.

Elementos de temporizacin Los ordenadores son mquinas sncronas, lo que significa que todas sus partes funcionan de forma acompasada. Es frecuente poner el ejemplo de los remeros en las pelculas de galeras, donde cada remero no va por su cuenta, todos siguen el ritmo del gordo del tambor. En el PC ocurre otro tanto, aqu el ritmo no lo marca un tambor, sino un metrnomo ( reloj) que genera una seal (seal de reloj), que marca el ritmo de la "msica" que es capaz de ejecutar el sistema. Esta seal est presente en el bus de control , la lnea CLK. El corazn del reloj es un oscilador controlado por un cristal de cuarzo que acta de patrn (es un elemento fcilmente identificable con aspecto de almohadilla plateada). En los PC originales la frecuencia del cristal es de 14.31818 MHz. Esta seal est tambin presente en el bus de control, lnea OSC, y la denominaremos frecuencia del oscilador. En los primitivos PCs la

seal del reloj era de 4.77 MHz es decir, un tercio de la frecuencia del oscilador [3]. La seal CLK es importantsima, ya que sin ella sera imposible un funcionamiento armnico de los distintos elementos (incluyendo el procesador, una de cuyas patillas conecta directamente con ella). Todos los sucesos internos tienen lugar al comps de este tic-tac electrnico [6]. Nota: Hemos sealado , que a partir de la introduccin del 80486 algunos elementos del ordenador no pueden funcionar al ritmo endiablado del reloj, que resulta demasiado rpido para el resto de chips instalados en la placa, por lo que en esta se utilizan frecuencias inferiores. Esto se consigue utilizando solo uno de cada tres, cuatro o cinco pulsos de CLK. En este sentido es particularmente significativa la denominada velocidad del bus externo. Que es la que se utiliza en dicho bus. Por ejemplo, un procesador que est trabajando a 200 MHz, puede que est utilizando una frecuencia de 66 MHz en sus comunicaciones con el bus externo. Exactamente la misma que un procesador de "solo" 66 MHz de reloj que utilice tambin 66 MHz para el bus externo. La situacin actual es que las velocidades tpicas de las placas-base son de 60- 66- 100- 133 MHz mientras que los procesadores funcionan a frecuencias mltiplos de aquellas; tpicamente de 1x hasta 10x, es decir, desde 60 a 1330 MHz (lo que se denomina velocidad del ncleo). Chip del reloj En el PC original, el oscilador antes mencionado est montado en un chip 8284A (88284 en el AT), que se conoce como generador de reloj (no confundir con el reloj programable ). La fecha y hora, que haba que introducir en la puesta en marcha del sistema, se perda cada vez que se apagaba el equipo. Durante el funcionamiento, el sistema de fecha y hora era mantenido por una interrupcin de alta prioridad ( H2.4) que ocurra unas 18 veces cada segundo. A partir de la introduccin del PC AT, se instal en la placa base el denominado chip del reloj, abreviadamente RTC ("Real Time Clock"). Es un autntico reloj que suministra la fecha y hora al sistema. Como este reloj deba continuar su funcionamiento incluso estando el equipo desconectado, se le dot de una pequea pila o batera. Aprovechando que este circuito dispona de su propia fuente de energa, se utiliz para aadirle cierta cantidad de memoria CMOS ("Complementary MetalOxide Semiconductor") de bajo consumo, la denominada ROM del sistema, que se utiliza para guardar informacin relativa a la configuracin del equipo. Estos datos son accesibles pulsando una combinacin de teclas en los momentos iniciales de arranque, lo que inicia un programa de configuracin grabado en la BIOS conocido generalmente como Set-up.

Nota: La batera de backup de la placa base, es un elemento fcilmente identificable; tiene forma de pila de botn reemplazable, o de elementos soldados recubiertos de una funda plstica. Este ltimo es el caso mostrado en la fig. 2. La batera es el elemento azul; por encima est el conector del teclado y sobre ste, junto al letrero BATTERY, se distinguen tres de los 4 pines del conector para la batera auxiliar [7]. Fig. 2 Esta batera se agota con el tiempo, especialmente si el equipo permanece mucho tiempo apagado, en cuyo caso se pierde la fecha y (lo que es ms importante) los datos de configuracin establecidos con el programa de Set-up. Aunque la mayora de equipos funcionan bien con la configuracin por defecto, en caso de sustituir la batera es posible que sea necesario reconfigurar el Set-up. Tradicionalmente este circuito CMOS/RTC era un Motorola MC146818. En los modelos iniciales esta memoria era de 128 bytes. Actualmente es de 256 KB, y junto con algunos otros elementos estn incluidos en un chipset de solo dos circuitos integrados. A su vez el programa de configuracin es cada vez ms sofisticado, de forma que simplifica la configuracin del sistema. Por ejemplo, dispone de un sistema de proteccin ("Password") de acceso y de autodeteccin del tipo de disco instalado; algo que en los modelos antiguos deba hacerse manualmente. Temporizador programable Junto con el anterior se encuentra un circuito que recibe varios nombres: PIT ("Programmable Interval Timer") temporizador programable, reloj programable, temporizador ("timer"), Etc. Constituido por un chip 8253 (8254 en el AT y mquinas con bus EISA/MCA) que dispone de tres temporizadores programables independientes numerados del 0 al 2. En realidad son divisores de frecuencia que obtienen la seal del generador de reloj. Tienen cuatro modos de funcionamiento programables que pueden generar diversas seales:

Pulsos de anchura variable. Generar una interrupcin al final de la cuenta de una serie de pulsos de reloj, para lo que dispone de tres contadores independientes de 16 bits. Ondas cuadradas que sean una fraccin de la frecuencia de entrada (reloj). Por ejemplo, podemos conseguir que generen una seal por cada 1000 seales de la frecuencia del reloj RTC, con lo que en un PC XT obtendramos una frecuencia de 4.77 KHz. Medir el intervalo entre sucesos.

Estas capacidades se utilizan para cuestiones tales como producir seales de sincronizacin para refresco de la RAM, o tonos audibles de diversas frecuencias en el altavoz del PC. La distribucin de tareas es como sigue:

Canal 0: Produce una interrupcin cada 54.94 ms en IRQ0, que activa la rutina de actualizacin del reloj de tiempo real RTC . Canal 1: Produce una interrupcin cada 15.12 microsegundos que marca el comienzo del ciclo de refresco de las memorias RAM dinmicas ( 5.3.2). Canal 2: Este canal se destina a generar tonos para el altavoz del sistema.

http://www.zator.com/Hardware/H2.htm#Controlador DMA

3.1.7

Controladores de video.

Qu es la tarjeta de video? La tarjeta de video, (tambin llamada controlador de video, ver figura 2),es un componente electrnico requerido para generar una seal de video que semanda a una pantalla de video por medio de un cable. La tarjeta de video seencuentra normalmente en la placa de sistema de la computadora o en una placa deexpansin. La tarjeta grfica rene toda la informacin que debevisualizarse en pantalla y acta como interfaz entre el procesador y elmonitor; la informacin es enviada a ste por la placa luego de haberlarecibido a travs del sistema de buses. Una tarjeta grfica se compone, bsicamente,de un controlador de video, de la memoria de pantalla o RAM video, y elgenerador de caracteres, y en la actualidad tambin poseen un acelerador de grficos.El controlador de video va leyendo a intervalos la informacin almacenada en laRAM video y la transfiere al monitor en forma de seal de video; el nmero deveces por segundo que el contenido de la RAM video es ledo y transmitido almonitor en forma de seal de video se conoce como frecuencia de refresco de lapantalla. Entonces, como ya dijimos antes, la frecuencia depende en gran medidade la calidad de la placa de video. Tipos de tarjeta de video Tarjeta grfica Hrcules Con sta tarjeta se poda visualizar grficos y textos simultneamente. Enmodo texto, soportaba una resolucin de 80x25 puntos. En tanto que en los grficoslo haca con 720x350 puntos, dicha tarjeta serva slo para grficos de unsolo color. La tarjeta Hrcules tena una capacidad total de 64k de memoriavideo RAM. Posea una frecuencia de refresco de la pantalla de 50HZ. Color Graphics Adapter (CGA) La CGA utiliza el mismo chip que la Hrcules y aporta resoluciones y coloresdistintos. Los tres colores primarios se combinan digitalmente formando un mximode ocho colores distintos. La resolucin vara considerablemente segn elmodo de grficos que se est utilizando, como se ve en la siguiente lista: * 160 X 100 PUNTOS CON 16 COLORES * 320 X 200 PUNTOS CON 4 COLORES * 640 X 200 PUNTOS CON 2 COLORES La tarjeta EGA Enchanced Graphics Adapter (EGA). Se trata de una tarjeta grfica superiora la CGA. En el modo texto ofrece una resolucin de 14x18 puntos y en el modogrfico dos resoluciones diferentes de 640x200 y 640x350 a 4 bits, lo que dacomo resultado una paleta de 16 colores, siempre y cuando la tarjeta estequipada con 256KB de memoria de video RAM.

La tarjeta VGA La Video Graphics Adapter (VGA) signific la aparicin de un nuevo estndardel mercado. Esta tarjeta ofrece una paleta de 256 colores, dando como resultadoimgenes de colores mucho ms vivos. Las primeras VGA contaban con 256KB dememoria y solo podan alcanzar una resolucin de 320x200 puntos con lacantidad de colores mencionados anteriormente. Primero la cantidad de memoriavideo RAM se ampli a 512KB, y ms tarde a 1024KB, gracias a sta ampliacines posible conseguir una resolucin de, por ejemplo, 1024x768 pxeles con 8bits de color. En el modo texto la VGA tiene una resolucin de 720x400 pixeles,adems posee un refresco de pantalla de 60HZ, y con 16 colores soporta hasta640X480 puntos. La tarjeta SVGA La tarjeta SVGA (Super Video Graphics Adapter) contiene conjuntos de chips deuso especial, y ms memoria, lo que aumenta la cantidad de colores y laresolucin.

http://www.ilustrados.com/publicaciones/EpypkAEEypZqhjZKbE.php Controladores de perifricos En la placa-base existen diversos chips destinados especficamente al control de perifricos serie y paralelo. A continuacin researemos brevemente algunos de los ms conocidos. El PPI ("Programmable peripheral interface"), tambin conocido como PIO ("Programmable Input/Output") era originariamente un 8255. Se trata de un chip de 24 patillas que pueden ser programadas individualmente en dos grupos de 12, de las cuales 8 son de datos y 4 bits auxiliares incluyen seales de control (STROBE; ACKNOWLEDGE; BUFFER FULL, Etc.) Este chip tiene gran variedad de aplicaciones, entre ellas almacenar informacin sobre el estado de configuracin de la placa-base y controlar otros chips, como el temporizador programable y la interfaz del teclado, pero su uso caracterstico es como interfase paralelo bidireccional para perifricos que utilizan este tipo de comunicacin (por ejemplo impresoras, escneres, Etc.) El altavoz del sistema est conectado a dos patillas de este integrado. Desde el punto de vista lgico este dispositivo responde a las direcciones 060h-063h, que son sus nmeros de puerto y dispone de tres registros de 1 byte conocidos como A, B y C, cuyas direcciones respectivas son 060h, 061h y 062h. La direccin 063h se utiliza para configurar el dispositivo. Nota: Como hemos sealado anteriormente, a partir del AT, el estado de configuracin de la placa-base se almacena en un integrado alimentado con batera que contiene tambin el reloj de tiempo real. En realidad el AT no tiene un 8255 como tal, pero emula su comportamiento. En este caso el controlador es un 8742 responde a las direcciones 060h-064h, y realiza otras funciones no directamente relacionadas con el teclado, como resetear la UCP, controlar la puerta A20 y manejar el ratn [9]. El 8250 ACE ("Asynchronous communication equipment"), es una interfaz entre el bus paralelo del sistema y los perifricos que utilizan comunicacin serie, como mdems y ratones. Puede generar las seales de control de la popular interfaz RS-232 [8]; dispone de un generador de velocidad de transmisin que permite generar cualquiera de las ms frecuentes. Puede funcionar bajo

control de programa o mediante interrupciones ( H2a) y dispone de una cierta capacidad de comprobacin y correccin de los errores tpicos de las comunicaciones serie. El PD765, que controlaba el disquete en los XT, ms conocido como FDC ("Floppy Disc Controller"). Fue sustituido por el 82072A en el AT y por el 82077A en el PS/2.

3.2

Aplicaciones. 3.2.1 Entrada/ Salida. 3.2.2 Almacenamiento. 3.2.3 Fuente de alimentacin.

Es un transformador rectificador a 220 V. Transformador porque pasa de 220 V a 5 y 12 V, y rectificador porque transforma corriente alterna (AC) en continua (DC). Es una caja grande de la que salen cables. Tiene un refrigerador que refrigera la unidad central. La fuente de alimentacin es el dispositivo que se encarga de distribuir la energa a todos los componentes internos de la computadora. Tiene un ventilador propio que la mantiene fresca a ella misma como a todas dems partes de la computadora. Adems, la fuente puede operar un ventilador auxiliar ubicado en cualquier otra parte de la computadora. Las fuentes estn clasificadas por su potencia en watts, que hablando fcil se trata de la cantidad de energa elctrica que pueden entregar a todo el sistema. Cuanto mas alta sea la potencia, mejor, porque la fuente se encontrara en mejores condiciones de enfrentarse con las necesidades de la computadora, alejando la probabilidad de fallas. Las fuentes generalmente vienen en capacidades que oscilan entre los 95 a 300 watts. Todas son aproximadamente del mismo tamao, ya que estn diseadas siguiendo un estndar para las ATs. http://www.monografias.com/trabajos/acmother/acmother.shtml

3.3

Ambientes de servicios. 3.3.1 Negocios. 3.3.2 Industria. 3.3.3 Comercio electrnico.

DEFINICIONES Pondremos a continuacin tres definiciones que nos parecen apropiadas al trmino Comercio Electrnico:
"Es la aplicacin de la avanzada tecnologa de informacin para incrementar la eficacia de las relaciones empresariales entre socios comerciales". (Automotive Action Group in North America) "La disponibilidad de una visin empresarial apoyada por la avanzada tecnologa de informacin para mejorar la eficiencia y la eficacia dentro del proceso comercial." (EC Innovation Centre) "Es el uso de las tecnologas computacional y de telecomunicaciones que se realiza entre empresas o bien entre vendedores y compradores, para apoyar el comercio de bienes y servicios."

Conjugando estas definiciones podemos decir que el comercio electrnico es una metodologa moderna para hacer negocios que detecta la necesidad de las empresas, comerciantes y consumidores de reducir costos, as como mejorar la calidad de los bienes y servicios, adems de mejorar el tiempo de entrega de los bienes o servicios. Por lo tanto no debe seguirse contemplando el comercio electrnico como una tecnologa, sino que es el uso de la tecnologa para mejorar la forma de llevar a cabo las actividades empresariales. Ahora bien, el comercio electrnico se puede entender como cualquier forma de transaccin comercial en la cual las partes involucradas interactan de manera electrnica en lugar de hacerlo de la manera tradicional con intercambios fsicos o trato fsico directo. Actualmente la manera de comerciar se caracteriza por el mejoramiento constante en los procesos de abastecimiento, y como respuesta a ello los negocios a nivel mundial estn cambiando tanto su organizacin como sus operaciones. El comercio electrnico es el medio de llevar a cabo dichos cambios dentro de una escala global, permitiendo a las compaas ser ms eficientes y flexibles en sus operaciones internas, para as trabajar de una manera ms cercana con sus proveedores y estar ms pendiente de las necesidades y expectativas de sus clientes. Adems permiten seleccionar a los mejores proveedores sin importar su localizacin geogrfica para que de esa forma se pueda vender a un mercado global. 2. ORIGEN Y EVOLUCION HISTORICA El comercio, actividad ancestral del ser humano, ha evolucionado de muchas maneras. Pero su significado y su fin en siempre el mismo. Segn el diccionario consultor de economa, el Comercio es "el proceso y los mecanismos utilizados, necesarios para colocar las mercancas, que son elaboradas en las unidades de produccin, en los centros de consumo en donde se aprovisionan los consumidores, ltimo eslabn de la cadena de comercializacin. Es comunicacin y trato". En lneas generales, y con un sentido amplio, el comercio implica la investigacin de mercado con el fin de interpretar los deseos del consumidor, la publicidad que anuncia la existencia del producto, la posibilidad de adquirirlo, y

en que lugar, a la vez que se utilizan los mtodos de persuasin, la venta al por menor y finalmente, la adquisicin por parte del pblico. Segn lo expuesto, a travs de los aos han aparecido diferentes formas o tipos de comercio. A principio de los aos 1920 en Los Estados Unidos apareci la venta por catlogo, impulsado por las grandes tiendas de mayoreo. Este sistema de venta, revolucionario para la poca, consiste en un catlogo con fotos ilustrativas de los productos a vender. Este permite tener mejor llegada a las personas, ya que no hay necesidad de tener que atraer a los clientes hasta los locales de venta. Esto posibilit a las tiendas poder llegar a tener clientes en zonas rurales, que para la poca que se desarrollo dicha modalidad exista una gran masa de personas afectadas al campo. Adems, otro punto importante de esto es que los potenciales compradores pueden escoger los productos en la tranquilidad de sus hogares, sin la asistencia o presin, segn sea el caso, de un vendedor. La venta por catlogo tom mayor impulso con la aparicin de las tarjetas de crdito; adems de determinar un tipo de relacin de mayor anonimato entre el cliente y el vendedor. A mediados de 1980, con la ayuda de la televisin, surgi una nueva forma de venta por catlogo, tambin llamada venta directa. De esta manera, los productos son mostrados con mayor realismo, y con la dinmica de que pueden ser exhibidos resaltando sus caractersticas. La venta directa es concretada mediante un telfono y usualmente con pagos de tarjetas de crdito. A principio de los aos 1970, aparecieron las primeras relaciones comerciales que utilizaban una computadora para transmitir datos. Este tipo de intercambio de informacin, sin ningn tipo de estndar, trajo aparejado mejoras de los procesos de fabricacin en el mbito privado, entre empresas de un mismo sector. Es por eso que se trataron de fijar estndares para realizar este intercambio, el cual era distinto con relacin a cada industria. Un ejemplo conocido de esto es el caso del Supermercado mayorista Amigazo. A mediados de los aos 1980 esta empresa desarroll un sistema para procesar ordenes de pedido electrnicas, por el cual los clientes de esta empresa emitan ordenes de pedido desde sus empresas y esta era enviada en forma electrnica. Esta implementacin trajo importantes beneficios a Amigazo, ya que se eliminaron gran parte de errores de entregas y se redujeron los tiempos de procesamiento de dichas ordenes. El beneficio fue suficiente como para que la empresa Amigazo, instale un equipo a sus clientes habituales. Por otra parte, en el sector publico el uso de estas tecnologas para el intercambio de datos tuvo su origen en las actividades militares. A fines de los aos 1970 el Ministerio de Defensa de Estados Unidos inicio un programa de investigacin destinado a desarrollar tcnicas y tecnologas que permitiesen intercambiar de manera transparente paquetes de informacin entre diferentes redes de computadoras, el proyecto encargado de disear esos protocolos de comunicacin se llamo "Internetting project" (de este proyecto de investigacin proviene el nombre del popular sistema de redes), del que surgieron el TCP/IP (Transmission Control Protocol)/(Internet Protocol) que fueron desarrollados conjuntamente por Vinton Cerf y Robert Kahn y son los que actualmente se

emplean en Internet. A travs de este proyecto se logr estandarizar las comunicaciones entre computadoras y en 1989 aparece un nuevo servicio, la WWW (World Wide Web, Telaraa Global), cuando un grupo de investigadores en Ginebra, Suiza, ideo un mtodo a travs del cual empleando la tecnologa de Internet enlazaban documentos cientficos provenientes de diferentes computadoras, a los que podan integrarse recursos multimedia (texto, grficos, msica, entre otros). Lo ms importante de la WWW es su alto nivel de accesibilidad, que se traduce en los escasos conocimientos de informtica que exige de sus usuarios. El desarrollo de estas tecnologas y de las telecomunicaciones ha hecho que los intercambios de datos crezcan a niveles extraordinarios, simplificndose cada vez mas y creando nuevas formas de comercio, y en este marco se desarrolla el Comercio Electrnico. 3. VENTAJAS Ventajas para los Clientes Permite el acceso a ms informacin. La naturaleza interactiva del Web y su entorno hipertexto permiten bsquedas profundas no lineales que son iniciadas y controladas por los clientes, por lo tanto las actividades de mercadeo mediante el Web estn ms impulsadas por los clientes que aquellas proporcionadas por los medios tradicionales. Facilita la investigacin y comparacin de mercados. La capacidad del Web para acumular, analizar y controlar grandes cantidades de datos especializados permite la compra por comparacin y acelera el proceso de encontrar los artculos. Abarata los costos y precios. Conforme aumenta la capacidad de los proveedores para competir en un mercado electrnico abierto se produce una baja en los costos y precios, de hecho tal incremento en la competencia mejora la calidad y variedad de los productos y servicios. Ventajas para las empresas Mejoras en la distribucin. El Web ofrece a ciertos tipos de proveedores (industria del libro, servicios de informacin, productos digitales) la posibilidad de participar en un mercado interactivo, en el que los costos de distribucin o ventas tienden a cero. Por poner un ejemplo, los productos digitales (software) pueden entregarse de inmediato, dando fin de manera progresiva al intermediarismo. Tambin compradores y vendedores se contactan entre s de manera directa, eliminando as restricciones que se presentan en tales interacciones. De alguna forma esta situacin puede llegar a reducir los canales de comercializacin, permitiendo que la distribucin sea eficiente al reducir sobrecosto derivado de la uniformidad, automatizacin e integracin a gran escala de sus procesos de administracin. De igual forma se puede disminuir el tiempo que se tardan en realizar las transacciones comerciales, incrementando la eficiencia de las empresas.

Comunicaciones de mercadeo. Actualmente, la mayora de las empresas utiliza el Web para informar a los clientes sobre la compaa, a parte de sus productos o servicios, tanto mediante comunicaciones internas como con otras empresas y clientes. Sin embargo, la naturaleza interactiva del Web ofrece otro tipo de beneficios conducentes a desarrollar las relaciones con los clientes. Este potencial para la interaccin facilita las relaciones de mercadeo as como el soporte al cliente, hasta un punto que nunca hubiera sido posible con los medios tradicionales. Un sitio Web se encuentra disponible las 24 horas del da bajo demanda de los clientes. Las personas que realizan el mercadeo pueden usar el Web para retener a los clientes mediante un dilogo asincrnico que sucede a la conveniencia de ambas partes. Esta capacidad ofrece oportunidades sin precedentes para ajustar con precisin las comunicaciones a los clientes individuales, facilitando que stos soliciten tanta informacin como deseen. Adems, esto permite que los responsables del rea de mercadeo obtengan informacin relevante de los clientes con el propsito de servirles de manera eficaz en las futuras relaciones comerciales. Los sitios Web ms sencillos involucran a los clientes mediante botones para enviar mensajes de correo electrnico a la empresa. En otros centros ms sofisticados, los clientes rellenan formularios, con el objeto de que desarrollen una relacin continua con la compaa, cuyo fin es informar tanto sobre los productos y servicios como obtener informacin sobre las necesidades que los clientes tienen sobre los mismos. De esta manera, se obtiene publicidad, promocin y servicio al cliente a la medida. El Web tambin ofrece la oportunidad de competir sobre la base de la especialidad, en lugar de hacerlo mediante el precio, ya que desde el punto de vista del mercadeo, rara vez es deseable competir tan slo en funcin del precio. El mercadeo intenta satisfacer las necesidades de los clientes en base a los beneficios que buscan, lo que quiere decir que el precio depende de la valorizacin del cliente, y no de los costos; tales oportunidades surgen cuando lo ofrecido se diferencia por elementos de mercadeo distintos al precio, lo cual produce beneficios cargados de valor, como por ejemplo, la comodidad producida por el reparto directo mediante la distribucin electrnica de software. Beneficios operacionales. El uso empresarial del Web reduce errores, tiempo y sobrecostos en el tratamiento de la informacin. Los proveedores disminuyen sus costos al acceder de manera interactiva a las bases de datos de oportunidades de ofertas, enviar stas por el mismo medio, y por ltimo, revisar de igual forma las concesiones; adems, se facilita la creacin de mercados y segmentos nuevos, el incremento en la generacin de ventajas en las ventas, la mayor facilidad para entrar en mercados nuevos, especialmente en los geogrficamente remotos, y alcanzarlos con mayor rapidez. Todo esto se debe a la capacidad de contactar de manera sencilla y a un costo menor a los clientes potenciales, eliminando demoras entre las diferentes etapas de los subprocesos empresariales. 4. CATEGORIAS El comercio electrnico puede subdividirse en cuatro categoras:

La categora compaa - compaa, se refiere a una compaa que hace uso de una red para hacer ordenes de compra a sus proveedores, recibir facturas y realizar los pagos correspondientes. Esta categora ha sido utilizada por muchos aos, particularmente haciendo uso de EDI ("Electronic Data Interchange") sobre redes privadas o redes de valor agregado ("Value added Networks-VAN"). La categora compaa - cliente, se puede comparar con la venta al detalle de manera electrnica. Esta categora ha tenido gran aceptacin y se ha ampliado sobre manera gracias al WWW, ya que existen diversos centros comerciales (del Ingls malls) por todo Internet ofreciendo toda clase de bienes de consumo, que van desde pasteles y vinos hasta computadoras. La categora compaa - administracin, se refiere a todas las transacciones llevadas a cabo entre las compaas y las diferentes organizaciones de gobierno. Por ejemplo en Estados Unidos cuando se dan a conocer los detalles de los requerimientos de la nueva administracin a travs de Internet, las compaas pueden responder de manera electrnica. Se puede decir que por el momento esta categora esta en sus inicios pero que conforme el gobierno empiece a hacer uso de sus propias operaciones, para dar auge al Comercio Electrnico, est alcanzar su mayor potencial. Cabe hacer mencin que tambin se ofrecern servicios de intercambio electrnico para realizar transacciones como el regreso del IVA y el pago de impuestos corporativos. La categora cliente - administracin, an no ha nacido, sin embargo despus del nacimiento de las categoras compaa - cliente y compaa administracin, el gobierno har una extensin para efectuar interacciones electrnicas como seran pagos de asistencia social y regreso de pago de impuestos. 5. RIESGOS Como medio comercial el Web presenta las siguientes deficiencias, derivadas tanto de su tecnologa como de su naturaleza interactiva: Entorno empresarial y tecnolgico cambiante. Empresas y clientes desean tener flexibilidad para cambiar, segn su voluntad, de socios comerciales, plataformas y redes. No es posible evaluar el costo de esto, pues depende del nivel tecnolgico de cada empresa, as como del grado deseado de participacin en el comercio electrnico. Como mnimo una empresa necesitar una computadora personal con sistema operativo Windows o Machintosh, un mdem, una suscripcin a un proveedor de servicios de Internet, una lnea telefnica. Una compaa que desee involucrarse ms, deber prepararse para introducir el comercio electrnico en sus sistemas de compras, financieros y contables, lo cual implicar el uso de un sistema para el intercambio electrnico de datos (EDI) con sus proveedores y/o una intranet con sus diversas sedes. Privacidad y seguridad. La mayora de los usuarios no confa en el Web como canal de pago. En la actualidad, las compras se realizan utilizando el nmero de la tarjeta de crdito, pero an no es seguro introducirlo en Internet sin

conocimiento alguno. Cualquiera que transfiera datos de una tarjeta de crdito mediante el Web, no puede estar seguro de la identidad del vendedor. Anlogamente, ste no lo est sobre la del comprador. Quien paga no puede asegurarse de que su nmero de tarjeta de crdito no sea recogido y sea utilizado para algn propsito malicioso; por otra parte, el vendedor no puede asegurar que el dueo de la tarjeta de crdito rechace la adquisicin. Resulta irnico que ya existan y funcionen correctamente los sistemas de pago electrnico para las grandes operaciones comerciales, mientras que los problemas se centren en las operaciones pequeas, que son mucho ms frecuentes. Cuestiones legales, polticas y sociales. Existen algunos aspectos abiertos en torno al comercio electrnico: validez de la firma electrnica, no repudio, legalidad de un contrato electrnico, violaciones de marcas y derechos de autor, prdida de derechos sobre las marcas, prdida de derechos sobre secretos comerciales y responsabilidades. Por otra parte, deben considerarse las leyes, polticas econmicas y censura gubernamentales. 6. USOS El comercio electrnico puede utilizarse en cualquier entorno en el que se intercambien documentos entre empresas: compras o adquisiciones, finanzas, industria, transporte, salud, legislacin y recoleccin de ingresos o impuestos. Ya existen compaas que utilizan el comercio electrnico para desarrollar los aspectos siguientes:
Creacin de canales nuevos de mercadeo y ventas. Acceso interactivo a catlogos de productos, listas de precios y folletos publicitarios. Venta directa e interactiva de productos a los clientes. Soporte tcnico ininterrumpido, permitiendo que los clientes encuentren por s mismos, y fcilmente, respuestas a sus problemas mediante la obtencin de los archivos y programas necesarios para resolverlos. Mediante el comercio electrnico se intercambian los documentos de las actividades empresariales entre socios comerciales. Los beneficios que se obtienen en ello son: reduccin del trabajo administrativo, transacciones comerciales ms rpidas y precisas, acceso ms fcil y rpido a la informacin, y reduccin de la necesidad de reescribir la informacin en las computadoras. Los tipos de actividad empresarial que podran beneficiarse mayormente de la incorporacin del comercio electrnico, son: Sistemas de reservas. Centenares de agencias dispersas utilizan una base de datos compartida para acordar transacciones. Existencias comerciales. Aceleracin a nivel mundial de los contactos entre mercados de existencias. Elaboracin de pedidos. Posibilidad de referencia a distancia o verificacin por parte de una entidad neutral. Seguros. Facilita la captura de datos. Empresas que suministran a fabricantes. Ahorro de grandes cantidades de tiempo al comunicar y presentar inmediatamente la informacin que intercambian.

7. TECNOLOGIAS QUE EMPLEA El comercio electrnico utiliza un amplio rango de tecnologas como son:

Intercambio Electrnico de Datos (EDI-Electronic Data Interchange) Correo Electrnico (E-mail o Electronic Mail) Transferencia Electrnica de Fondos (EFT- Electronic Funds Transfer) Aplicaciones Internet: Web, News, Gopher, Archie Aplicaciones de Voz: Buzones, Servidores Transferencia de Archivos Diseo y Fabricacin por Computadora (CAD/CAM) Multimedia Tableros Electrnicos de Publicidad Videoconferencia

8. TIPOS DE RELACIONES QUE PUEDEN PRESENTARSE El comercio electrnico es un mtodo contemporneo para la transaccin empresarial que enfoca la necesidad percibida, tanto por las empresas como por sus clientes, de disminuir los costos de los bienes y servicios, manteniendo la cantidad e incrementando la velocidad de entrega. Las actividades de manejo de la informacin que se realizan en el comercio electrnico mediante transacciones empresariales pueden clasificarse en las siguientes categoras:
Transacciones entre una empresa y sus clientes mediante una red pblica de telecomunicaciones (telfono+mdem) con el propsito de realizar compras desde el hogar ("home shopping"), o el banco en su casa ("home banking") utilizando tcnicas de cifrado para manejar los aspectos de seguridad y dinero electrnico. Transacciones con socios comerciales usando EDI. Transacciones para la obtencin de informacin: investigacin de mercados utilizando exploradores de cdigos de barras, tratamiento de informacin para la toma de decisiones directivas o la solucin de problemas organizativos, y la manipulacin de informacin para la organizacin de operaciones, como la administracin de la cadena de proveedores de una empresa. Transacciones para la distribucin de informacin con clientes potenciales, tales como mercadeo, publicidad, y ventas interactivas. La conectividad entre los participantes es una cuestin esencial para la viabilidad del comercio electrnico, e Internet lo consigue a un costo bajo.

9. CAMBIOS EN LAS EMPRESAS El continuo avance en el mejoramiento de la infraestructura de las telecomunicaciones ha proporcionado los medios para el intercambio casi instantneo de los datos. El comercio electrnico hace uso de estos flujos de datos de una forma eficaz. El intercambio eficiente de la informacin determina el xito de una empresa; cuando se logra asegurar que el personal de una compaa consume ms tiempo en la produccin o venta de productos y servicios, en lugar de reprocesar innecesariamente los datos, podemos decir que ha iniciado la optimizacin de su potencial. Internet ha demostrado que estamos viviendo en una comunidad global, esto quiere decir que no importa las diferencias de horario, ni la ubicacin geogrfica, lo que implica que la actividad empresarial puede realizarse con cualquier persona y en cualquier parte del mundo de manera instantnea. Esto significa que las empresas deben replantear sus estrategias empresariales, sean cuales fueran sus objetivos: ampliacin del mercado, obtencin de bienes por parte de proveedores nuevos,

externalizacin de servicios ("outsourcing"), o bsquedas de nuevas alianzas.El comercio electrnico se introduce en las empresas en tres fases:
Sustitucin de las operaciones manuales basadas en papel por alternativas electrnicas. Replanteamiento y simplificacin de los flujos de informacin. Uso novedoso y dinmico de los flujos de informacin.

La sustitucin de los sistemas basados en papel, tanto dentro de una empresa, como entre ellas, produce pocos beneficios reales. Es cierto que reduce los costos administrativos y mejora el nivel de precisin en el intercambio de datos, pero no aborda las cuestiones relacionadas con que las actividades comerciales se hagan eficientemente a la primera. Las aplicaciones del comercio electrnico ayudan a reformar las maneras de realizar las actividades comerciales, y con frecuencia, actan como un catalizador para que las empresas utilicen la reingeniera de procesos empresariales. 10. EFECTOS A continuacin se mencionan algunas consecuencias derivadas del desarrollo del comercio electrnico:
Empresas virtuales. Es la oportunidad para utilizar socios comerciales externos sin una ubicacin fsica, pues se establece una relacin basada en transacciones electrnicas. Los vendedores pequeos acceden al mercado global. Tradicionalmente estos mercados que tan slo han estado abiertos para las multinacionales, se vuelven accesibles a las compaas ms pequeas debido a la escasa cantidad de recursos necesarios para funcionar en el extranjero. Transformacin de tiendas de venta al menudeo. El crecimiento de las compras desde el hogar y de la venta directa por parte de los fabricantes provocar una disminucin en los precios, y en consecuencia, una reduccin de las comisiones. Presin sobre el servicio al cliente, el ciclo de desarrollo y los costos. Aumentar la necesidad de la entrega rpida y directa. La cadena de valor ser cada vez menos tolerante con la necesidad de inventarios y almacenamiento. Ser inevitable el incremento de la competencia, as como de la necesidad de dinero electrnico.

11. LOS INTERMEDIARIOS El advenimiento de infraestructuras ubicuas de informacin ha provocado predicciones respecto a que uno de los efectos de los mercados ser la eliminacin de los intermediarios, basndose en la capacidad de las redes de telecomunicaciones. Sin embargo, la realidad puede ser bien distinta puesto que las tecnologas de la informacin no slo reforzarn la posicin de los intermediarios tradicionales, sino que adems promovern la aparicin de nuevas generaciones de intermediarios. En un mercado tradicional puede considerarse que los intermediarios proporcionan un servicio de coordinacin, sin embargo, es necesario definir con mayor precisin esta actividad para identificar como afectar Internet a esta tarea: Bsqueda y evaluacin. Un cliente que elige una tienda especializada sobre unos grandes almacenes escoge implcitamente entre dos alternativas de bsqueda y criterios de evaluacin. En cualquier caso el cliente delega una

parte del proceso de bsqueda del producto en el intermediario, quien tambin suministra un control de calidad y evaluacin del producto. Valoracin de necesidades y emparejamiento de necesidades. En muchos casos no es razonable asumir que los clientes posean el conocimiento individual necesario para evaluar fidedignamente sus necesidades e identificar los productos que las cumplirn eficazmente. Por lo tanto los intermediarios pueden suministrar un servicio valioso ayudando a sus clientes a determinar sus necesidades. Proporcionando informacin no slo del producto, sino sobre su utilidad, e incluso proporcionando la asistencia explcita de un experto para identificar las necesidades de los clientes, los intermediarios proporcionan a los clientes servicios sobre la evaluacin de los productos. Manejo de los riesgos del cliente. Los clientes no siempre tienen la informacin perfecta y por tanto pueden comprar productos que no satisfagan sus necesidades, en consecuencia en cualquier transaccin al detalle el cliente se enfrenta con ciertos riesgos. Estos pueden ser el resultado de una incertidumbre en las necesidades del cliente, un fallo en la comunicacin con respecto a las caractersticas, o un fallo intencionado o accidental del fabricante al proporcionar un producto adecuado. Otro servicio que proporcionan muchos intermediarios est relacionado con el manejo de este riesgo, suministrando a los clientes la opcin de devolver los productos defectuosos o proporcionando garantas adicionales, los intermediarios reducen la exposicin de los clientes a los riesgos asociados con los errores de los fabricantes. Si el cliente tiene la opcin de devolver los productos por cualquier motivo, el intermediario reduce ms la exposicin del cliente a los riesgos asociados con los fallos de los clientes para valorar las necesidades con precisin y compararlas con las caractersticas del producto. Por lo tanto, eligiendo un intermediario que proporciona estos servicios, los clientes estn comprando implcitamente al intermediario un seguro. Distribucin de productos. Muchos intermediarios juegan un papel importante en la produccin, envasado y distribucin de bienes. La distribucin es un factor crtico en la determinacin del valor de la mayora de los bienes de consumo. Por ejemplo un litro de gasolina a mil Km del hogar de un cliente frente al que est a un Km es significativamente diferente, debido principalmente a los servicios de distribucin proporcionados. Difusin de informacin sobre productos. Se trata de que el intermediario informe a los clientes sobre la existencia y las caractersticas de los productos. Los fabricantes confan en una variedad de intermediarios, incluyendo a las tiendas de venta al menudeo, casas de ventas por correo/catlogo, agencias de publicidad y puntos de venta para informar a los clientes. Influencia sobre las compras. A fin de cuentas, a los fabricantes no slo les interesa proporcionar informacin a los clientes, sino vender productos. Adems de los servicios de informacin, los fabricantes tambin valoran los servicios relacionados con la influencia en las elecciones de compra de los clientes: la colocacin de los productos por parte de los intermediarios puede influir en la eleccin de los mismos, como poder asesorarse explcitamente

mediante un vendedor. Esquemas para la compensacin de comisiones, pagos por el espacio en estanteras y descuentos especiales son formas en las que los fabricantes ofrecen servicios de asesoras de compras a los intermediarios. Suministro de informacin. Esta informacin que es recogida por intermediarios especializados como empresas de investigacin de mercados, es utilizada por los fabricantes para evaluar nuevos productos y planificar la produccin de los existentes. Manejo de los riesgos del fabricante. El fraude y robo realizado por los clientes es un problema que tradicionalmente ha sido tratado por los detallistas e intermediarios crediticios. En el pasado, estos intermediarios han proporcionado sistemas y polticas para limitar este riesgo. Cuando no poda eliminarse, eran los intermediarios quienes afrontaban la exposicin a este riesgo. Integracin de las necesidades de los clientes y de los fabricantes. Los intermediarios deben ocuparse de problemas que surgen cuando las necesidades de los clientes chocan con las de los fabricantes. En un entorno competitivo, un intermediario satisfactoriamente integrado proporciona un haz de servicios que equilibra las necesidades de los clientes y de los fabricantes de una forma aceptable para ambos. 11.1 TIPOS A continuacin se identifican diversos tipos de intermediarios basados en Internet:
1. Directorios. Ayudan a los clientes a encontrar productos clasificando instalaciones Web y proporcionando mens estructurados para facilitar la navegacin. En la actualidad son gratuitos, pero en el futuro podran ser de pago. Existen tres tipos de directorios: o Generales. Como por ejemplo, Yahoo que proporciona un catlogo general de una gran variedad de diferentes sitios Web. Habitualmente existe un esquema para organizar y elegir los sitios que sern incluidos. Estas instalaciones suelen soportar "browsing" as como bsqueda del catlogo mediante palabras clave. Comerciales. Como El Indice que se centra en proporcionar catlogos de sitios comerciales. No proporcionan infraestructura o servicios de desarrollo para los fabricantes, sino que tan slo actan como un directorio de instalaciones existentes. Tambin pueden suministrar informacin sobre una rea comercial especfica, con frecuencia a empresas que no tienen Web. Estos intermediarios son equivalentes a los editores de guas en papel. Especializados. Estn orientados a temas, y son incluso tan sencillos como una pgina creada por una persona interesada en un tema. Estas pginas pueden suministrar al cliente informacin sobre un bien o fabricante en particular. 1. Servicios de bsqueda. Similares a AltaVista, proporcionan a los usuarios capacidades para realizar bsquedas basadas en palabras clave sobre grandes bases de datos de pginas o instalaciones Web. 2. Centros comerciales. Son instalaciones que proporcionan una infraestructura al fabricante o al detallista a cambio de una cuota. Pueden estar compuestos de una gran variedad de tiendas que venden mltiples productos. 3. Editoriales. Son generadores de trfico que ofrecen contenidos de inters para los clientes, que parecen peridicos o revistas interactivas. Las editoriales se convierten en

4.

5.

6.

7.

8.

9. 10.

intermediarios cuando ofrecen vnculos con los fabricantes a travs de publicidad o listas de productos relacionadas con sus contenidos. Revendedores virtuales. Estos intermediarios existen para vender a los clientes centrndose en productos especializados que obtienen directamente de los fabricantes, quienes pueden dudar en dirigirse directamente a los clientes por temor a alejar a los detallistas de los que dependen. Evaluadores de los sitios Web. Los clientes pueden dirigirse a un fabricante a travs de un sitio que ofrece alguna forma de evaluacin, lo que puede ayudar a reducir su riesgo. Algunas veces las evaluaciones se basan en la frecuencia de acceso, mientras que en otros casos son una revisin explcita de las instalaciones. Auditores. Tienen funciones similares a las de los servicios de medicin de audiencia en medios tradicionales. El comercio electrnico requiere de los mismos servicios adicionales que facilitan el comercio tradicional. Los anunciantes requieren informacin sobre las tasas de uso asociadas con la publicidad en el Web, as como informacin fidedigna sobre las caractersticas de los clientes. Foros, clubes de aficionados y grupos de usuarios. Estos tipos de instalaciones no son necesariamente intermediarios directos, pero pueden jugar un gran papel al facilitar la retroalimentacin entre clientes y fabricantes, as como soportar la investigacin de mercados. Los mejores ejemplos de estos grupos son las listas relacionadas con productos que conectan al fabricante con los clientes. Intermediarios financieros. Cualquier forma de comercio electrnico debe permitir alguna manera de realizar o autorizar pagos del comprador hacia el vendedor. Los sistemas de pago podrn ser desde autorizacin de crdito, cheques electrnicos, pago en efectivo y envo de correo electrnico seguro para autorizar un pago. Redes de trueque. Es posible que las personas cambien un bien o un servicio por otro, en vez de pagarlo con dinero. Aparecern intermediarios similares a las casas de subastas y bolsas de mercancas para capitalizar estas oportunidades. Agentes Inteligentes. Son programas que mediante un criterio preliminar de bsqueda proporcionado por el usuario, facilitan la localizacin de recursos a travs de Internet, aprendiendo de los comportamientos pasados para optimizar las bsquedas. Esto puede convertirse en un nuevo servicio de intermediacin que los clientes adquieren cuando necesitan cierto bien o servicio.

12. CONTRATACION INFORMATICA Bajo la definicin de contratacin informtica, se encuentra la contratacin de bienes o servicios informticos. De esta manera entendemos por contratacin informtica, aquella cuyo objeto sea un bien o un servicio informtico -o amboso que una de las prestaciones de las partes tenga por objeto ese bien o servicio informtico. Bienes informticos son todos aquellos elementos que forman el sistema (ordenador) en cuanto al hardware, ya sea la unidad central de proceso o sus perifricos, as como todos los equipos que tienen una relacin directa de uso con respecto a ellos y que, en conjunto, conforman el soporte fsico del elemento informtico. Asimismo, se consideran bienes informticos los bienes inmateriales que proporcionan las ordenes, datos, procedimientos e instrucciones, en el tratamiento automtico de la informacin y que, en su conjunto, conforman el soporte lgico del elemento informtico. Como Servicios informticos se entiende todos aquellos servicios que sirven de apoyo y complemento a la actividad informtica en una relacin de afinidad directa con ella. 12.1 PARTES DE UN CONTRATO INFORMATICO

En la contratacin informtica se ven involucrados varios elementos, a los que podemos denominar complementarios, que se interrelacionan entre s. As, distinguiremos entre: contratantes, parte expositiva, clusulas o pactos y anexos, que se analizan a continuacin. 12.1.1 LOS CONTRATANTES No es lo mismo la contratacin informtica realizada entre profesionales de la informtica, que la contratacin informtica realizada entre un profesional de la informtica y un tercero. Por ello, la identificacin y situacin profesional de los intervinientes reviste gran importancia, debiendo fijar, no solamente quien adquiere cada responsabilidad proveniente de la contratacin y a quien representa, sino tambin que conocimientos o formacin profesional, o empresarial, relacionada con el tema objeto del contrato, tiene cada uno debido a la obligacin existente, desde la ptica de una buena fe contractual, de informar correctamente a la otra parte y de proporcionar claridad a las clusulas y obligaciones del contrato. La formacin de la voluntad y las responsabilidades de cada una de las partes, tienen una relacin con la identificacin personal y profesional de las mismas, que la convierten en dato de gran importancia en este tipo de contratos. 12.1.2 PARTE EXPOSITIVA En esta parte se expone, de forma clara y concreta, el por qu y el para qu del contrato. Es importante sealar que dentro de los contratos informticos es imprescindible fijar de forma sencilla, por que se realiza el contrato y cuales han sido los condicionantes o circunstancias que han movido a las partes a unirse mediante esta relacin contractual. Para ello, se fijaran los intereses de cada cual, especificando las necesidades de uno y la oferta del otro; dejando bien claro que es lo que ofrece una parte y que es lo que acepta la otra y debiendo existir una coincidencia real sobre el objeto, o concepto que de el y de su utilidad respecto al fin perseguido, tienen cada una de las partes. Por otro lado es de especial inters establecer claramente el negocio jurdico en el cual luego, de acuerdo con la teora general para ese negocio en el ordenamiento, se pueda subsumir el caso e interpretar el contrato. 12.1.3 CLAUSULAS O PACTOS Partiremos del principio de buena fe y, estableceremos una "obligacin" de colaboracin en ambos sentidos; el suministrador debe colaborar con el usuario y, lo que es igual de importante, el usuario debe colaborar con el suministrador. Adems, el usuario debe respetar y seguir las directrices que, respecto al bien contratado y su implementacin en el circuito de informacin, le indique el

suministrador y, consecuentemente, utilizar el equipo informtico o los programas, siguiendo las instrucciones que, para su optima utilizacin, le seale. El suministrador, por su parte, se exonera de responsabilidad en el caso en que exista una anomala consecuencia del incumplimiento por parte del usuario de estas instrucciones de funcionamiento o manejo. Estas clusulas o pactos han de cumplir los siguientes requisitos, aunque son orientativos:
Obligaciones de las partes, claras y concisas. El deber de asesoramiento. El cumplimiento del plazo. La formacin del usuario. Prohibicin de subarrendar. Sustitucin del equipo. Definicin de trminos o conceptos oscuros. El mantenimiento preventivo. Clusulas de garanta.

12.1.4 LOS ANEXOS Es fundamental que los contratos informticos vayan acompaados de unos Anexos que incorporados a ellos y con la misma fuerza de obligar, contengan diferentes desarrollos de elementos que forman parte sustancial del contrato. Entre los Anexos tipo, que ayudan a describir el objeto y que siempre deben figurar, en un contrato informtico destacan: Especificaciones del sistema a contratar. Especificaciones de los programas a desarrollar. Pruebas de aceptacin. Resultados a obtener y que, en algn caso, formaran el propio objeto del contrato. Anlisis. 12.2 TIPOS DE CONTRATOS INFORMATICOS Ante la gran diversidad de contratos informticos que existen en la actualidad, dividiremos su estudio en dos grupos diferenciados. El primero, respecto al objeto, debido a las caractersticas especiales de los distintos objetos sobre los que pueden versar estos contratos -ya sea hardware, software, servicios de mantenimiento y formacin, o llave en mano- que llevan a la necesidad de su estudio y tratamiento individualizado. El segundo, respecto al negocio jurdico, debido a que los contratos informticos, ms comnmente realizados, se han llevado a cabo bajo el paraguas protector de una determinada figura jurdica en la que han

encontrado acomodo, pero casi todos los casos, ha sido necesario adecuar el objeto del contrato al negocio jurdico realizado. A - POR EL OBJETO Por el objeto del contrato distinguiremos contratos de hardware, contratos de software, contratos de instalacin llave en mano y contratos de servicios auxiliares. Contratos de Hardware. En los que hay que conceptuar como hardware todo aquello que, fsicamente, forme parte del equipo, considerando como tal, tambin, a los equipos de comunicaciones u otros elementos auxiliares para el funcionamiento del sistema que se va a implementar. Contratos de Software. Hay que diferenciar en el momento de analizar una contratacin de software, si se trata de un software de base o de sistema, o se trata de u software de utilidad, o de aplicacin o usuario, ya que este ultimo, debe responder a unas necesidades particulares, las del propio usuario, el que encarga la aplicacin, y que, por tanto, tendrn que quedar claramente especificadas en el contrato; sin embargo, el software de base o sistema y el software de utilidad responden a unas caractersticas generales que son las del propio sistema o las de la utilidad a la que sirven y es un producto ya conformado de antemano que no se somete a peticiones o particularidades del usuario. Contratos de instalacin llave en mano. En los que irn incluidos tanto el hardware como el software, as como determinados servicios de mantenimiento y de formacin del usuario. Contratos de servicios auxiliares. Como pueden ser, el mantenimiento de equipos y programas o la formacin de las personas que van a utilizar la aplicacin respecto a equipos, sistema o aplicaciones. B - POR EL NEGOCIO JURIDICO De acuerdo con el negocio jurdico del contrato, existirn tantos tipos de contratos como negocios jurdicos se realicen sobre este objeto. As, algunos de los mas utilizados en el campo de la informtica son los llamados de venta, de arrendamiento financiero, de alquiler, de opcin de compra, de mantenimiento, de prestacin de servicios, de arrendamiento de obra, de prstamo, de deposito. De venta. Cuando sea un contrato en el que el suministrador, o vendedor en este caso, se obliga a entregar una cosa determinada, un bien informtico, y la otra parte, comprador, a pagar por l a un precio cierto (art. 1445 CC). La venta tambin puede ser de servicios. De arrendamiento financiero. Mediante el que se requiera que participen tres partes, el suministrador, vendedor, del equipo informtico, una entidad o intermediario financiero que compra el bien, para un tercero que es el usuario,

y el usuario del bien que lo poseer, pero lo tendr en rgimen de arrendamiento financiero hasta que haya cumplido con unas determinadas caractersticas o requisitos. De alquiler. El arrendamiento sobre bienes informticos es un arrendamiento tipo de los regulados en el Cdigo Civil, art. 1543 y ss., caracterizado porque el suministrador se obliga a dar al usuario el goce o uso de un bien informtico durante un tiempo determinado y por un precio cierto. De opcin de compra. Aunque la opcin de compra no esta definida en nuestro ordenamiento y solamente se recoge para bienes inmuebles en la legislacin hipotecaria (art.14), nuestra doctrina y jurisprudencia la tienen bien delimitada exigiendo que para que exista este tipo de contrato, tienen que darse tres requisitos principales: Respecto al optante, que le debe conceder la decisin unilateral de la realizacin de la opcin de compra. Precio de compraventa, que debe quedar perfectamente sealado para el caso de que el optante decida acceder a dicha compraventa. Plazo del ejercicio de la opcin de compra, que debe quedar determinado con claridad en el acuerdo de las partes. De mantenimiento. Puede ser tanto de equipos como de programas, o incluso, mantenimiento integral en el que se puede incluir un servicio de formacin, asesoramiento y consulta. De prestacin de servicios. En los que incluiramos anlisis, especificaciones, horas maquina, tiempo compartido, programas, etc., que los podamos calificar como unos contratos de arrendamientos de servicios. El arrendamiento de servicios se da cuando una parte se obliga con la otra a prestarle unos determinados servicios, con independencia del resultado que se obtenga mediante la prestacin. De ejecucin de obra, consistente en el compromiso de una de las partes, en nuestro caso el suministrador del bien o servicio informtico, a ejecutar una obra, y de la otra parte realizar una contraprestacin en pago por la obra llevada a cabo. De prstamo, caracterizado porque una parte entrega a otra el bien informtico para que use de l durante un tiempo determinado y le devuelva una vez cumplido ese tiempo y de Comodato, consistente en un tipo de contrato de prstamo en el que el suministrador transfiere el uso del bien informtico prestado. El Cdigo Civil (art. 1740), se refiere al comodato como un contrato de prstamo, en el que una de las partes entrega a la otra alguna cosa no fungible para que use de ella por cierto tiempo y se la devuelva, indicando que es esencialmente gratuito. En el caso de que se acuerde entre las partes una retribucin, deja de ser comodato para pasar a ser un arrendamiento de cosas.

De depsito, que se constituye, de acuerdo con lo establecido en el Cdigo Civil (art. 1758), desde que una persona recibe una cosa ajena con la obligacin de guardarla y restituirla, siendo un contrato gratuito, salvo pacto contrario (art.1760), pero que en el caso de cumplirse los requisitos establecidos en el Cdigo de Comercio (art.303), se trata de un deposito mercantil, en el que el depositario tendr derecho a exigir retribucin por el deposito, salvo pacto contrario (art.304), con las obligaciones para el depositario de conservacin de la cosa, en este caso, del bien informtico, de acuerdo con lo establecido en los arts.306 y concordantes del mismo cuerpo legal. La contratacin de bienes y la prestacin de servicios informticos no tiene una calificacin uniforme que la pueda situar, en cada caso, en un modelo o tipo de contrato de los que figuran en nuestro ordenamiento. Los contratos informticos estn formados por elementos dispares que exigen la mezcla o unin de dos o ms tipo de contratos para poder configurar sus caractersticas, siendo su objeto mltiple y diversificado, pudiendo darse multitud de figuras que desequilibraran cualquier relacin tipo que se pueda pensar. Todo ello debido a la pluralidad de las partes que intervienen y la dispersin de intereses entre ellas, as como a la particularidad de determinadas clusulas que forman parte de este tipo de contratos. Asimismo el desconocimiento por el usuario, en trminos generales, de las posibilidades y limites de la informtica, hace que no todo en el contrato pueda estar basado en el ya mencionado principio de la autonoma de la voluntad de los contratantes. En muchas ocasiones, son contratos de adhesin, en los que una de las partes fija las clusulas del contrato y lo otra se adhiere a las mismas, sin tener posibilidad de modificar ninguna de ellas. Estos contratos de adhesin son producto de la contratacin en masa que, frecuentemente, violan los derechos de los consumidores de bienes y servicios informticos por el gran desequilibrio que se produce al faltar la emisin libre de voluntad por una de las partes en la fijacin de las clusulas del contrato. En algunos casos, como el de las conocidas contrataciones llave en mano, seria adecuada la aplicacin de la teora del resultado en le contratacin informtica, en un claro arrendamiento de obra. Ahora bien, ello implica que los resultados se especifiquen en el contrato definiendo cuales son, dentro de unos limites razonables, o dicho de ora forma, cuando la funcin bsica de tratamiento de la informacin sea cumplida aunque se puedan dar algunos comportamientos de la misma que, sin tener gran carga sobre la aplicacin, no sean los adecuados o adolezcan de algunos errores o fallos. En definitiva la contratacin informtica, en general, adolece de determinadas caractersticas que la hacen extremadamente complicada en la redaccin de los contratos y en la fijacin de los derechos y obligaciones de las partes. A ello hay que aadir a inexistencia de una normativa adecuada a los mismo y la dificultad en la fijacin del objeto cuando son contratos complejos. Es por ello,

que se deben redactar teniendo en cuenta un equilibrio de prestaciones y evitar en lo posible la existencia de clusulas oscuras. A continuacin adjuntamos un ejemplo de los contratos informticos ms extendidos y utilizados en la actualidad. CONTRATO "LLAVE EN MANO" DE CESION DE USO DE PRODUCTOS INFORMATICOS Entre: Domicilio: CIF: A continuacin denominado el USUARIO Y EMPRESA a continuacin denominado el FABRICANTE , con CIF X-999999. Y domicilio social en: La calle de la empresa, Zaragoza. Se convienen las CLAUSULAS que a continuacin se mencionan: PRIMERA. OBJETO DEL CONTRATO El FABRICANTE concede al USUARIO una licencia de uso de productos informticos (en adelante denominado el PRODUCTO), descrito en el ANEXO I que forma parte de este contrato; esta licencia de uso no tiene el carcter de exclusiva y ser intransferible. El PRODUCTO ser instalado en una sola unidad central, propiedad del Usuario. El FABRICANTE se compromete a prestar al USUARIO los siguientes servicios, tal y como se definen en las clusulas de este contrato: Instalacin del producto y soporte correspondiente. Documentacin del producto. Soporte del producto. SEGUNDA. USO DEL PRODUCTO El producto que se define en el ANEXO correspondiente, esta diseado para funcionar como se describe en la documentacin entregada con el mismo. El inicio del uso del PRODUCTO sea considerado desde la fecha de su recepcin por el USUARIO. Esta fecha se denominara en adelante FECHA DE INICIO. TERCERA. INSTALACION Y SOPORTE

Se entiende por INSTALACION las acciones realizadas por el FABRICANTE para que el PRODUCTO pueda ser utilizado por el USUARIO en el Hardware designado. En el momento de la INSTALACION se entregara al usuario la documentacin correspondiente del PRODUCTO en igual cantidad al numero de licencias contratadas. Para cada subsistema se recibir formacin tcnica y asesora en las cuestiones relacionadas con el producto, tambin de adaptacin paramtrica. CUARTA. COPIAS ADICIONALES Se entiende por LICENCIA ADICIONAL cualquier nueva instalacin de los PRODUCTOS. El USUARIO que necesite una LICENCIA ADICIONAL deber requerirlo por escrito al FABRICANTE. Las LICENCIAS ADICIONALES se especifican en sucesivos ANEXOS al presente contrato. Para las siguientes licencias de uso se establece un descuento del 25% sobre el precio de la primera. QUINTA. GARANTIA El PRODUCTO goza de una garanta de 60 das, contados a partir de la FECHA DE INICIO. Esta fecha resultante, se denominara FECHA EFECTIVA para el SOPORTE. Caso de la instalacin de varios subsistemas en distintas fechas se establecer una garanta por subsistema a partir de la cual se iniciara el SOPORTE, que deber contratarse aparte. Durante el periodo de GARANTIA, el USUARIO contara con un soporte telefnico que de forma razonable cubrir las incidencias presentadas. El interlocutor del USUARIO debe tener informacin suficiente de operatoria del PRODUCTO. La GARANTIA asegura el cumplimiento de las especificaciones del PRODUCTO. Si as no ocurriese y siempre que los fallos no se deban al mal uso o negligencia del USUARIO se proceder a su correccin o reemplazo. Dentro de la garanta no quedan incluidos los gastos que puedan originarse como consecuencia del envo de material, de desplazamientos al domicilio del usuario y dems gastos suplidos, que sern siempre por cuenta del usuario. Una vez transcurrido el periodo de garanta, el USUARIO se responsabiliza de la verificacin de la idoneidad de los productos con licencias contratados para alcanzar los resultados adecuados. Cualquier modificacin, alteracin o ampliacin de cuantas especificaciones se contemplan en este contrato y sus correspondientes ANEXOS, se entendern excluidas de los mismos, y, consiguientemente, en caso de que por acuerdo

mutuo sean considerados cambios o modificaciones necesarios para la viabilidad de los extremos pactados en este documento, debern ser contemplados en otro aparte que ser ampliacin del presente contrato. SEXTA. CONFIDENCIALIDAD A causa de la naturaleza confidencial del PRODUCTO el USUARIO queda obligado a no vender, alquilar o poner a disposicin de terceros el PRODUCTO o cualquier informacin confidencial relacionada con el PRODUCTO. El USUARIO reconoce y declara que el PRODUCTO suministrado por el FABRICANTE y cualquier copia del mismo son y seguirn siendo propiedad del FABRICANTE o de la firma representada por el FABRICANTE, declarando expresamente esta propiedad en cualquier copia, total o parcial, realizada por el USUARIO en desarrollo y conformidad con lo acordado en este contrato. El FABRICANTE por su parte se obliga a no divulgar o utilizar, sin consentimiento previo, informacin perteneciente al USUARIO considerada como confidencial. SEPTIMA. TRANSMISION DE OBLIGACIONES, NULIDAD DE CLAUSULAS. Las obligaciones del USUARIO y del FABRICANTE, contradas por el presente contrato, se transmitirn a los respectivos sucesores o apoderados y a cualquier otra entidad en la que cualquiera de las partes pueda incorporarse o fusionarse de manera permanente o accidental. Los contratantes declaran que consideran las clusulas del presente contrato independientes, por lo que la nulidad de una de ellas no origina la nulidad ni de la totalidad del presente contrato, ni de las dems acordadas. OCTAVA. RESPONSABILIDADES E INDEMNIZACIONES. El FABRICANTE no ser responsable de los retrasos en la ejecucin de las obligaciones derivadas de este contrato o interrupcin del servicio, cuando estos sucedan por causas ajenas a su voluntad y no le sean imputables. El FABRICANTE no se hace responsable de las perdidas o daos sufridos por el USUARIO, sus empleados o clientes, directamente o indirectamente originados por errores en los programas, su documentacin, la operacin de los programas o el uso de un hardware no autorizado por el FABRICANTE. En el caso de que el FABRICANTE se disolviera por el motivo que fuera, se compromete a depositar las fuentes del PRODUCTO ante un Notario ejerciente de los de su ciudad para que el USUARIO, pueda cubrir sus necesidades relativas a ellos, segn las tarifas vigentes en esas fechas. NOVENA. ARBITRAJE. Para cualquier divergencia del presente contrato, ambas parte se someten expresamente, y con renuncia a su fuero propio, a la decisin del asunto o

litigio planteado, mediante el arbitraje institucional de ARBITEC, Asociacin Espaola de Arbitraje Tecnolgico, a la cual encomiendan la administraron del arbitraje y la designacin de los rbitros. El arbitraje se realizara conforme al procedimiento establecido en el Reglamento Arbitral de ARBITEC y en la Ley de Arbitraje, de 5 de diciembre de 1988. El laudo arbitral deber dictarse durante los noventa das siguientes a la aceptacin del cargo por parte de los rbitros designados, obligndose ambas partes a aceptar y cumplir la decisin contenida en l. Para el caso en que arbitraje no legara a realizarse por mutuo acuerdo o fuese declarado nulo, ambas partes se someten a los Juzgados y Tribunales de Zaragoza con renuncia a u propio fuero si este fuese otro. DECIMA. ACTUALIZACION. En el caso de que alguna o algunas de las clusulas del contrato pasen a ser invalidas, ilegales o inejecutables en virtud de alguna norma jurdica, se consideraran ineficaces en la medida que corresponda, pero en lo dems, este contrato conservara su validez. Las partes contratantes acuerdan sustituir la clusula o clusulas afectadas por otra u otras que tengan los efectos econmicos ms semejantes a los de las sustituidas. Este contrato y sus correspondientes anexos reemplazan a cualquier otro compromiso o anexo establecido anteriormente sea verbalmente o por escrito, que se refiera al mismo producto que en ellos se mencionan. Y para que as conste, y en prueba de conformidad y aceptacin al contenido de este escrito, ambas partes lo firman por duplicado y a un solo efecto en la fecha y lugar indicados en el encabezamiento. EMPRESA EL USUARIO Por: Por: Cargo: Cargo: Firma: Firma: Fecha:Fecha: ANEXO CONTRATO "LLAVE EN MANO" DE CESION DE USO DE PRODUCTOS INFORMATICOS. ANEXO I

DESCRIPCION PRODUCTOS / MODULOS

NUMERO DE LICENCIAS

IMPORTE

HORAS INST. SOP.

TOTAL (IVA no incluido) Este Anexo forma parte del CONTRATO DE CESION DE USO DE PRODUCTOS INFORMATICOS Nm. XXX/xcxxxxxx y esta sujeto a los trminos que en el mismo figuran. CONDICIONES DE PAGO COMERCIAL, PRIMAS Y PRODUCCION 30% a la aceptacin del pedido. 40% a la aceptacin de cada modulo. 30% a la aceptacin de la instalacin de todos los mdulos. GESTION DE PERSONAL Y AREA ECONOMICO-FINANIERA 30% a la aceptacin del pedido. 70% a la puesta en marcha de cada modulo. DOMICILIACION BANCARIA. Las facturas de EMPRESA, sern presentadas al cobro. El USUARIO se compromete a atenderlas a travs de: BANCO: SUCURSAL: DIRECCION: NM. CTA.: EMPRESA EL USUARIO

Por: Por: Cargo: Cargo: Firma: Firma: 13. EL PAGO POR INTERNET No cabe duda que uno de los elementos fundamentales en el comercio en general y en el comercio electrnico en particular, es la realizacin del pago correspondiente a los bienes o servicios adquiridos. En este mbito el comercio electrnico presenta una problemtica semejante a la que plantea en otros sistemas de compra no presencial, es decir, en aquella en la que las partes no se renen fsicamente para realizar la transaccin, como por ejemplo en la compra por catlogo o telefnica:
El comprador debe tener garanta sobre calidad, cantidad y caractersticas de los bienes que adquiere. El vendedor debe tener garanta del pago. La transaccin debe tener un aceptable nivel de confidencialidad.

En ocasiones, se entiende que para garantizar estos hechos, comprador y vendedor deben acreditar su identidad, pero realmente slo necesitan demostrar su capacidad y compromiso respecto a la transaccin. De esta manera cada vez ms sistemas de pago intentan garantizar la compra "annima". En el comercio electrnico se aade otro requerimiento que generalmente no se considera en otros sistemas de venta no presencial, an cuando existe:
El comprador debe tener garanta de que nadie pueda, como consecuencia de la transaccin que efecta, suplantar en un futuro su personalidad efectuando otras compras en su nombre y a su cargo.

Se observa que al tratar los medios de pago en el comercio electrnico, se abordan fundamentalmente los temas de seguridad, garanta y acreditacin. An queda un requerimiento respecto a los medios de pago de cualquier tipo de comercio:
El costo por utilizar un determinado medio de pago debe ser aceptable para el comprador y el vendedor.

Al igual que cuando se utiliza una tarjeta de crdito para pagar en una tienda, el comerciante acepta el pago de un porcentaje sobre el importe de la compra a cambio del mayor nmero de ventas que espera realizar aceptando este medio de pago; los medios de pago asociados al comercio electrnico suelen conllevar un costo que los puede hacer inapropiados o incluso inaceptables para importes pequeos, los denominados micropagos. Para realizar estos micropagos los sistemas suelen ser de uno de estos dos tipos: 1. El comprador adquiere dinero anticipadamente (prepago) para poder gastarlo
en pequeos pagos.

2. El comprador mantiene una cuenta que se liquida peridicamente y no


transaccin a transaccin. Este sistema se utiliza frecuentemente para el acceso a pequeas piezas de informacin de pago, como por ejemplo, artculos de la prensa econmica.

En el comercio electrnico pueden distinguirse dos tipos de medios de pago: Medios de pago tradicionales, utilizados en cualquier tipo de transaccin comercial, electrnica o no. Por ejemplo: Contrarrembolso. Es el nico medio de pago utilizado en el comercio electrnico que implica la utilizacin de dinero en efectivo. Hoy da es uno de los medios de pago preferidos por el consumidor en general, pues garantiza la entrega de los bienes antes del pago. Desde el punto de vista del vendedor este medio de pago conlleva dos inconvenientes fundamentales: el retraso del pago y la necesidad de recolectar fsicamente el dinero por parte de quien realiza la entrega. Cargos en cuenta (domiciliacin). Suele emplearse para cargos peridicos o suscripciones, por ejemplo, el Boletn Oficial del Estado. Tarjeta de dbito y de crdito. Son el medio ms popular y tradicionalmente usado en el comercio electrnico. Para el comprador supone el pago al momento de realizar la transaccin (dbito) o a posteriori, con o sin devengo de intereses (crdito). Para el vendedor, suponen un cobro rpido, a cambio de una comisin que le descuenta el banco. Medios de pago especficos, para el nuevo entorno del comercio electrnico, especialmente Internet. Por ejemplo: Tarjeta de crdito o dbito, slo utilizable para el comercio electrnico. Su uso es escaso. Intermediarios electrnicos para sistemas basados en tarjetas de crdito tradicionales: CyberCash. First Virtual. Moneda electrnica En cualquiera de los casos, los medios de pago utilizados pueden ser de pago anticipado (prepago o "pay before"), inmediato ("pay now") o posterior ("pay after"). Tarjetas de crdito y dbito Ampliamente usadas hoy en da como medio de pago en el comercio electrnico, las tarjetas de crdito y dbito tradicionales han permitido la realizacin de transacciones comerciales en el nuevo medio a travs de la

utilizacin de los procedimientos de liquidacin y pago preestablecidos. Si se realiza una compra en Internet utilizando una tarjeta de crdito como medio de pago, la transaccin comercial se ordena en la red, pero la validacin y la realizacin efectiva del pago se efecta a travs de los circuitos tradicionales de procesamiento de operaciones con tarjeta de crdito.En el esquema ms general, intervienen en este proceso los siguientes actores:
El comprador. El vendedor ("merchant"). El banco emisor ("issuer") de la tarjeta de crdito o dbito que presenta el cliente. El banco que en nombre del vendedor recibe la transaccin ("acquirer") y en el cual reside la cuenta en la que a ste se le va a liquidar el pago. La red de medios de pago ("scheme") como VISA o MasterCard.

El proceso de pago es como sigue: 1. Una vez realizado el pedido, el comprador proporciona su nmero de tarjeta al
vendedor a travs de la red.

2. El centro servidor donde reside el vendedor enva la transaccin al banco "acquirer" o


directamente a la red de medios de pago. Este envo suele producirse fuera de la red pblica y se realiza de forma anloga a como se efectuar desde una terminal punto de venta (TPV) fsico que existiese en una tienda real. El banco receptor pide autorizacin al banco emisor a travs de la red de medios de pago. Si la transaccin se autoriza, la liquidacin del pago (transferencia de dinero desde la cuenta del comprador en el banco emisor hasta la cuenta del vendedor en el banco receptor) se realiza a travs de la red tradicional de medios de pago.

3. 4.

Como puede observarse el punto crtico de este proceso se produce cuando el comprador enva su nmero de tarjeta al vendedor a travs de una red pblica potencialmente insegura como Internet.El estndar que se utiliza en Internet para asegurar esta transferencia da datos es el SSL (del Ingls, Secure Sockets Layer).Para la realizacin de una transaccin utilizando SSL se requiere de dos elementos: 1. Que el vendedor se haya certificado con una organizacin reconocida por las partes, lo que supone un procedimiento administrativo y el pago de unas tarifas de alta, as como la renovacin de tal certificacin. 2. Que el comprador utilice un visor o navegador ("browser") compatible como SSL. 3. Con el uso del SSL: 4. El comprador tiene garanta de que el vendedor es quien dice ser y que, por tanto, no est entregando su nmero de tarjeta a un posible impostor. 5. La informacin que enva el comprador se cifra, impidiendo el acceso a la misma por alguien distinto al vendedor. 6. Se garantiza la no-manipulacin de los datos entre el comprador y el vendedor. 7. La versin 3 de SSL permite la autenticacin del comprador, que debe recibir sus claves previamente de una autoridad de certificacin. Lo que SSL no garantiza es el aspecto econmico de la transaccin, de tal manera que slo con proporcionar un nmero de tarjeta vlido con saldo suficiente cualquier persona podra intentar comprar electrnicamente de forma fraudulenta, sobre todo si no existe una entrega fsica de los bienes en s con una autoridad de certificacin. Ante esta limitacin, en 1995 se constituyeron dos grupos de trabajo liderados respectivamente por VISA y MasterCard, que comenzaron a definir dos estndares incompatibles para asegurar las transacciones dentro de Internet. Afortunadamente, a principios de 1996 debido a la presin del mercado (consumidores, vendedores, y fabricantes de tecnologa) ambos grupos se fusionaron para la definicin del estndar SET (Secure Electronic Transactions) en el que participan adems de

VISA y MasterCard, empresas como Microsoft, Netscape, IBM, Terisa, GTE, SAIC, VeriSign y otras compaas tecnolgicas. SET resuelve las siguientes necesidades: 1. Confidencialidad de los datos, tanto econmicos, como respecto a la naturaleza de los bienes comprados. 2. Integridad de los datos en la transaccin, sin la posibilidad de modificaciones intermedias. 3. Autenticacin del comprador como legtimo usuario de un medio de pago. 4. Autenticacin del comercio como poseedor de una cuenta de liquidacin con un banco vendedor. 5. Compatibilidad entre mltiples plataformas "hardware" y "software".

Antes de poder realizar una transaccin SET, el cliente debe poseer un medio de pago y recibir un certificado de la institucin financiera emisora que incluye la firma digital de esa institucin y una fecha de expiracin. De igual manera, cada comercio debe tambin certificarse con la institucin financiera donde posee la cuenta de liquidacin. As, cada uno de los agentes (comprador, vendedor, banco emisor, banco adquirente) de una transaccin posee una firma digital emitida por una autoridad de certificacin SET. Tarjetas chip En pleno desarrollo, las tarjetas chip o tarjetas inteligentes son aquellas que poseen una capacidad de almacenar informacin en un chip que incorporan. Fundamentalmente esta informacin suele ser: Una identificacin que incluye determinadas claves cifradas. Una cantidad de dinero disponible. Antes de comprar es preciso cargarlas con dinero a travs de un cajero automtico. Tras realizar esta operacin funcionan como si contuvieran dinero en efectivo ("cash"). Este tipo de tarjetas son ideales para realizar micropagos, tanto en el comercio del mundo fsico como en el virtual. No obstante, su utilizacin en el comercio electrnico requiere de un dispositivo conectado a la computadora personal, un mdem o lnea de telfono que permita su lectura y actualizacin al realizar transacciones por la red. En contrapartida, la existencia de "inteligencia" local posibilita su utilizacin para mltiples aplicaciones: cupones de descuento, aplicaciones de fidelizacin y almacenamiento de datos especficos del cliente. Cybercash Procedente de la compaa Verifone, especializada en terminales punto de venta, Cybercash es un sistema de realizacin de transacciones en Internet mediante el uso de tarjetas de crdito. Una vez realizada la compra, el comprador enva sus datos cifrados al vendedor. Este aade sus propios datos que lo identifican y solicita autorizacin a CyberCash. A partir de aqu, CyberCash se comunica con la red tradicional de medios de pago, y una vez obtenida la autorizacin de la transaccin, se la pasa al comercio.

CyberCash tiene una fortaleza basada en la emisin de ms de 400,000 carteras de clientes y la conexin con el 80% de los bancos estadounidenses pero puede verse seriamente afectada por la puesta en marcha de SET, que reducira sensiblemente el valor aadido de esta solucin, por lo que est intentando adaptarse al nuevo estndar. First Virtual First Virtual (FV) es un sistema de pagos operado por First USA y EDS, basado en el mantenimiento de cuentas virtuales de clientes que se liquidan peridicamente contra tarjetas de crdito. Cada posible comprador debe darse previamente de alta, recibiendo un nmero de identificacin personal (NIP) slo utilizable en transacciones por Internet. Al hacer cada transaccin, el comprador enva su NIP por correo electrnico al vendedor, el cual lo comprueba contra FV. Una vez realizada la operacin de compra, FV solicita a travs de correo electrnico la aceptacin del comprador, por lo que no se precisa ningn elemento de cifrado para proteger los mensajes, y procede a realizar el cargo en la cuenta. FV se convierte as en un centro de compensacin independiente de los bancos tradicionales y al liquidar las operaciones peridicamente, posibilita el uso de este medio para micropagos. 14. ASPECTOS TRIBUTARIOS Las autoridades deben prever que el comercio electrnico no socave la capacidad del Gobierno para recaudar los ingresos pblicos va tributacin. Asimismo, los principios de tributacin que rigen a los gobiernos en relacin con el comercio tradicional deberan adecuarse para su aplicacin a esta nueva va de comercializacin. La relacin existente entre la jurisdiccin tributaria y el comercio electrnico no es tan sencilla como se puede imaginar, dado que el trmino "comercio electrnico" rene transacciones muy diversas, tanto en sus contenidos como en los sujetos intervinientes, incluso en la forma de su ejecucin, pues la transaccin puede concluirse y realizarse a travs de la propia Web "on line" o por medio de otros medios "off line" como ser correo electrnico. En Argentina, las operaciones de comercio electrnico se encuentran alcanzadas por los gravmenes que integran el sistema tributario argentino, entre ellos, el Impuesto al Valor Agregado. No obstante ello, se ha estimado conveniente evaluar su impacto para determinar si y en qu medida la legislacin en vigor debera ser adaptada. A mediados de 1998 se cre en el mbito del Ministerio de Economa y Obras y Servicios Pblicos, un Grupo de Trabajo sobre Comercio Electrnico y Comercio Exterior, en el cual participaron distintos sectores del gobierno relacionados con el tema.

El objetivo de este Grupo fue examinar las implicancias de las distintas modalidades del comercio electrnico en la Repblica Argentina y los requerimientos que ellas plantean en materia de polticas pblicas, partiendo de la premisa de que a las transacciones electrnicas deberan aplicarse los mismos principios de imposicin que rigen respecto del comercio tradicional: (neutralidad, eficiencia, seguridad y simplicidad, eficacia e imparcialidad y flexibilidad). El citado Grupo se encontraba dividido en cinco subgrupos de trabajo temticos a saber: comercial, legal, tributario, financiero y tecnolgico. Debe destacarse que al Subgrupo de Asuntos Tributarios le correspondi la tarea de analizar el impacto en la recaudacin fiscal como consecuencia del avance de las operaciones de comercio electrnico. En tal sentido, dicho subgrupo se aboc, en primer trmino, al estudio del fenmeno de la elusin y la evasin tributaria como factor de distorsin del comercio electrnico, as como la situacin impositiva y aduanera de los bienes intangibles y los servicios, todo esto en el marco de la legislacin vigente y de los compromisos internacionales asumidos. El Subgrupo de Aspectos Tributarios efectu un anlisis del comercio electrnico y de las distintas modalidades de imposicin, destacndose que resulta sumamente importante la distincin entre comercio electrnico directo e indirecto. Ello en virtud de que, el primero involucra bienes inmateriales que se trasmiten por la red, mientras que el segundo, no guarda diferencia alguna con las ventas telefnicas. En atencin a ello, se consider necesario definir adecuadamente cada uno de los contratos involucrados a efectos de establecer el tratamiento impositivo a dispensarles. Bajo ese entendimiento, su informe aclara que se debe distinguir en primer lugar si el comprador es un sujeto individual o una empresa, para seguidamente analizar cada tipo de transaccin en particular. As pues, en el caso de que el adquirente sea una persona fsica y el producto digitalizado sea destinado a su consumo personal, se estar ante una prestacin de servicio, pudiendo presentarse en el Impuesto al Valor Agregado las siguientes alternativas: a) Operacin efectuada con un prestador del exterior: en este caso la transaccin no se encuentra alcanzada por el impuesto. b) Operacin efectuada por un prestador local a un no residente: la operacin se encuentra gravada a tasa 0. c) Operacin efectuada con un prestador local: la misma se encuentra sujeta al tributo. En cuanto a las transacciones realizadas con empresas, sean stas personas jurdicas o empresas unipersonales, corresponder analizar cada contrato en

particular para tipificar adecuadamente el mismo. En particular, pueden presentarse los siguientes casos: A) Transmisin de Software. En este caso se debe distinguir el objeto del contrato a fin de determinar si se est en presencia de una licencia de uso o una licencia de explotacin. En el primer caso, la operacin recibir el tratamiento de una prestacin de servicios, mientras que en el segundo caso se le dispensar el tratamiento de explotacin de derechos de autor. Tratndose de una licencia de uso, se pueden presentar diversas alternativas las que merecern el siguiente tratamiento en el Impuesto al Valor Agregado: Operacin efectuada con un prestador del exterior: en este caso la transaccin est alcanzada por el impuesto, siempre que el prestatario no sea un sujeto exento o no alcanzado por el impuesto. Operacin efectuada con un prestador local: la misma se encuentra sujeta al impuesto. Por el contrario, si se tratara de una licencia de explotacin, dicha transaccin se encuentra fuera del objeto del Impuesto al Valor Agregado. En este caso no resultara aplicable la previsin contenida en el ltimo prrafo del artculo 3 de la ley del gravamen, por cuanto los derechos cedidos difcilmente se relacionaran con una prestacin gravada, en el sentido entendido por el dispositivo legal. B) Transmisin de informacin digitalizada (ejemplo msica, libros, acceso a base de datos, etc.). Al igual que en el caso anterior, se deber distinguir el destino dado al producto. As, en caso de uso, se estar ante una prestacin de servicios, mientras que si la transmisin est destinada a permitir la reproduccin del bien, existir transferencia de derechos de autor, pudiendo stos ser acompaados o no de transferencia de marca. C) Transferencia de informacin tcnica (ejemplo planos, frmulas, etc.) En estos casos, independientemente del destino dado al intangible, se estar ante una transferencia de tecnologa, no resultando la operacin alcanzada por el Impuesto al Valor Agregado. D) Locacin de espacios publicitarios en sitios de la red. El informe seal que otro negocio que puede ser explotado a travs de una red es la locacin de espacios publicitarios en los llamados sitios Web. Una vez desarrollado el sitio Web, sus propietarios pueden ceder espacios publicitarios a aquellas empresas interesadas en dar a conocer sus productos o

realizar publicidad institucional en Internet. De esta manera, se genera la aparicin de un negocio similar a la publicidad en los medios habituales de comunicacin. A fin de establecer la imposicin aplicable a los servicios de publicidad prestados por propietarios de sitios Web, corresponde sealar que en el inciso b de su artculo 1 de la Ley de Impuesto al Valor Agregado, se incluye dentro del objeto del impuesto "... las prestaciones de servicios... realizadas en el territorio de la Nacin". En este sentido, la norma dispone que en el caso de las telecomunicaciones internacionales, "... se las entender realizadas en el pas en la medida en que su retribucin sea atribuible a la empresa ubicada en l". Al respecto, el Grupo de Trabajo se expidi en el sentido de que dicha norma podra ampliarse con la finalidad de incluir las prestaciones realizadas a travs de sitios Web, debiendo establecerse en qu casos debera considerarse la existencia de exportacin e importacin de servicios. A tales efectos, y de acuerdo con la ley del tributo, se deber dilucidar si el servicio es utilizado econmicamente en el territorio nacional, por lo que se estim necesario incorporar como presuncin legal que el servicio ser utilizado en el territorio nacional si la empresa prestataria es residente en el pas. Caso contrario, el servicio constituir una exportacin de servicio. El informe comentado finaliza afirmando que la normativa actual del impuesto al valor agregado en lo atinente a las definiciones de objeto y sujeto resulta comprensiva de las transacciones efectuadas electrnicamente, sin perjuicio de destacar la ausencia de algunos elementos constitutivos del hecho imponible. Atento a ello, se estim conveniente sugerir la incorporacin en la Ley del Impuesto al Valor Agregado, de disposiciones legales referidas al momento de nacimiento de la obligacin tributaria y su base de clculo. Asimismo, y en relacin con la locacin de espacios publicitarios en la red, se estim conveniente sugerir el dictado de los supuestos legales, relativos a la utilizacin efectiva de los servicios en el impuesto al valor agregado.

Unidad 4. Microcontroladores.
Qu es un Microcontrolador

Muchos de los sistemas digitales pueden disearse empleando procesadores o microcontroladores, la seleccin del dispositivo depende del tipo de aplicacin y la diferencia bsica que existe entre estos dos dispositivos se explica a continuacin:

Los procesadores son empleados para procesar informacin. A manera de ejemplo, con un procesador se podra hallar todas las personas en Bogot entre edades de 15 y 30 aos, de sexo femenino, y ordenados por el Apellido. Los procesadores usan un conjunto de instrucciones tiles para procesar datos, lo cual los hace muy verstiles para manejar informacin. Los microcontroladores son utilizados como su nombre lo indica para controlar. Son muy utilizados para implementar controles automticos. Como ejemplo, un microcontrolador puede sensar la temperatura de un proceso, compararla con un valor almacenado en memoria y tomar la decisin de encender un equipo de calefaccin si la temperatura baja de cierto valor, y adems de ello mostrar el valor en un display.

Los microcontroladores generalmente tienen instrucciones especiales que permiten controlar procesos como el indicado anteriormente y otros ms complejos; todo depende de la habilidad del programador para generar el cdigo para manejar el proceso. Un microcontrolador es simplemente un procesador con memoria ROM y RAM, puertos de E/S y otros dispositivos de propsito especial como conversores A/D, contadores, temporizadores y puertos de comunicacin, o en otras palabras es un microcomputador con funciones especiales. En la figura 11.7.1 se indica la estructura interna tpica de un microcontrolador.

Figura 11.7.1. Estructura tpica de un microcontrolador Estos dispositivos generalmente incluyen variedad de funciones especiales que se pueden utilizar gracias a los dispositivos internos incluidos dentro de ellos. Entre las caractersticas mas relevantes de un microcontrolador, se pueden enunciar las siguientes: o La memoria de programa generalmente es una Flash EEPROM. o Tiene puertos de Entrada y Salida (Configurables por software). o Poseen contadores de propsito especial. o Tiene incluido un reloj del sistema que permite contabilizar tiempo. o Algunos modelos incluyen conversores A/D. o Tiene Memoria EEPROM para almacenar datos. o Tiene puerto de comunicaciones. o Manejan velocidades de operacin hasta 20 MHz.

o
comunicaciones serial.

Algunos de estos dispositivos tienen puerto de Tienen entradas para interrupcin. La programacin es rpida. Las herramientas de desarrollo son econmicas y se encuentran disponibles en a red, las cuales incluyen el ensamblador y simulador.

o o o

Los microcontroladores se pueden encontrar en varias aplicaciones que se relacionen con medida, almacenamiento, control, clculo entre otras. Tambin se pueden encontrar dentro de los teclados, mdems, impresoras y otros perifricos. Como se puede notar los microcontroladores son dispositivos muy verstiles que pueden ser utilizados en muchas aplicaciones, donde todo el potencial se encuentra en la programacin.
Como seleccionar un microcontrolador

Dentro de cada familia de dispositivos, usted encontrar normalmente una seleccin de varios microcontroladores dependiendo de los dispositivos internos que tenga disponibles, y la capacidad de memoria de programa y datos. Los microcontroladores tambin se especifican por la cantidad de bits que pueden procesar por unidad de tiempo. Un nmero alto de bits indica que se trata de un dispositivo rpido y de altas prestaciones. Los microcontroladores de 8 bits son muy populares y se emplean en proyectos simples, sin embargo se encuentran arquitecturas que manejan hasta 32 bits, para aplicaciones ms complejas. El consumo de potencia es otra especificacin que se debe tener en cuenta, sobre todo para sistemas alimentados por bateras. Los Chips normalmente son fabricados con tecnologa CMOS debido al consumo bajo que ofrece. Algunos de estos dispositivos CMOS tienen disponible un estado de espera o modo "sleep", como el de los compuatdores cuando se suspenden, el cual limita el consumo de corriente en unos cuantos microamperios cuando los circuitos se encuentran inactivos. Usando este modo de funcionamiento, el consumo de potencia puede ser reducido cuando se da espera a la entrada de datos durante la ejecucin de un programa.
Microcontroladores disponibles en el mercado

En esta seccin se describen algunos microcontroladores populares que pueden ser empleados para infinidad de aplicaciones. Lo ms recomendable en la seleccin de un microcontrolador es tener disponible un buen juego de herramientas de desarrollo y que su costo no sea tan elevado, adems de ello tambin es importante tener acceso a la documentacin del dispositivo para conocer su arquitectura y funciones. Para iniciarse en la programacin de estos dispositivos generalmente son recomendables los microcontroladores de INTEL, MOTOROLA y MICROCHIP entre otros, de los cuales se consiguen con facilidad sus herramientas de desarrollo y documentacin. A continuacin de dar una breve descripcin de los dispositivos de cada una de estas Marcas. FAMILIA 805X, 80186 - INTEL Los microcontroladores de la serie 8051, son la segunda generacin despus del 8048. Este dispositivo es muy poderoso y fcil para programar. Tiene arquitectura Harvard, es decir, que los la memoria de datos y programa se encuentran por separado en su estructura. La memoria del programa es de 64K y la memoria de datos es de 128 bytes y 256 bytes para los 8052. Hay disponible gran cantidad de software de desarrollo para los microcontroladores de esta familia que puede ser encontrado en Internet. La tercera generacin de estos microcontroladores son los de la familia 80C196, los cuales manejan palabras de 16 bits. Entre las principales caractersticas de estos

dispositivos se pueden enumerar las siguientes: efectan operaciones de multiplicacin y divisin el hardware multiplica y divide, 6 modos de direccionamiento, Sistema de E/S de alta velocidad, Conversor A/D, mdulo de comunicacin serial, 8 fuentes de interrupcin, generador de PWM, Watchdog Timer. Existe tambin el microcontrolador 80386 EX, el cual tiene toda la potencialidad de un procesador 80386 pero con dispositivos adicionales que lo convierten en un microcontrolador muy potente y verstil. Este dispositivo tiene puerto serial, modos de ahorro de energa, contadores y temporizadores, memoria DRAM y fuentes de interrupcin. FAMILIA 68HC11 - MOTOROLA El 68HC11 es un microcontrolador de 8 bits. Este microcontrolador tiene bus de direcciones interno de 16 bits con un juego de instrucciones similar al de sus predecesores de las familias 6801, 6805 y 6809. La arquitectura de estos microcontroladores es Von-Newman, es decir, que las direcciones y los datos comparten el mismo espacio en memoria. Dependiendo de la variedad, los 68HC11 tienen EEPROM incorporada, RAM, entradas y salidas digitales, temporizadores, conversor A/D, generador de PWM, contadores de pulsos, puerto de comunicaciones seriales sincrnicas y asincrnicas, entre otras funciones. PIC16C - MICROCHIP Los microcontroladores de Microchip fueron los primeros dispositivos RISC. RISC significa que el dispositivo tiene un nmero reducido de instrucciones, lo cual implica simplicidad en su arquitectura y bajo costo. Aunque estos microcontroladores tienen pocas instrucciones (33 para el PIC16CXX) en la actualidad son muy utilizados por su facilidad de programacin y costo reducido. Estos dispositivos son de arquitectura Harvard, por lo cual teien buses de datos y direcciones separados. Los beneficios que tiene este dispositivo frente a los dems es su sencillez, lo cual permite fabricarlo en chips muy pequeos, con la ventaja adicional de consumir muy poca energa. Estos dispositivos son muy populares y generalmente se encuentran en aplicaciones en revistas de electrnica e Internet. Actualmente existen varias familias de este microcontrolador entre las cuales se pueden destacar la PIC16C5X, PIC16CXX, y la PIC17CXX, que tambin se pueden conseguir con memoria Flash en las familias PIC16FXXX

4.1

Arquitectura.

Arquitectura Von Neumann La arquitectura tradicional de computadoras y microprocesadores est basada en la arquitectura Von Neumann, en la cual la unidad central de proceso (CPU), est conectada a una memoria nica donde se guardan las instrucciones del programa y los datos. El tamao de la unidad de datos o instrucciones est fijado por el ancho del bus que comunica la memoria con la CPU. As un microprocesador de 8 bits con un bus de 8 bits, tendr que manejar datos e instrucciones de una o ms unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instruccin o dato de ms de un byte de longitud,

tendr que realizar ms de un acceso a la memoria. Y el tener un nico bus hace que el microprocesador sea ms lento en su respuesta, ya que no puede buscar en memoria una nueva instruccin mientras no _nalicen las transferencias de datos de la instruccin anterior. Resumiendo todo lo anterior, las principales limitaciones que nos encontramos con la arquitectura Von Neumann son: 1. La limitacin de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas. 2. La limitacin de la velocidad de operacin a causa del bus nico para datos e instrucciones que no deja acceder simultneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso.

Arquitectura Harvard La arquitectura Harvard tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes. Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra slo almacena datos (Memoria de Datos). Ambos buses son totalmente independientes y pueden ser de distintos anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set de instrucciones y el bus de memoria de programa pueden disearse de tal manera que todas las instrucciones tengan una sola posicin de memoria de programa de longitud. Adems, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecucin de una instruccin, y al mismo tiempo leer la siguiente instruccin a ejecutar. Ventajas de esta arquitectura: 1. El tamao de las instrucciones no esta relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin de memoria de programa, logrando as mayor velocidad y menor longitud de programa. 2. El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operacin. Una pequea desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran fsicamente en la

memoria de programa (por ejemplo en la EPROM de un microprocesador).

El microcontrolador PIC 16F84 posee arquitectura Harvard, con una memoria de datos de 8 bits, y una memoria de programa de 14 bits. En la Figura 5 vemos la arquitectura interna organizada en bloques interconectados, en donde se incluye la memoria RAM, la memoria EEPROM, los puertos de entrada y salida (I/O), etc. El procesador Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo OP de la instruccin en curso, su decodi_cacin y la ejecucin de la operacin que implica la instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales. CISC Un gran nmero de procesadores usados en los microcontroladores estn basados en la _losofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80 instrucciones mquina en su repertorio, algunas de las cuales son muy so_sticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actan como macros, es decir, RISC Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la _losofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

SISC En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es espec_co, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especfico).

Segn la arquitectura interna de la memoria del microcontrolador se puede distinguir entre:


Microcontroladores con arquitectura Von Neumann. Microcontroladores con arquitectura Harvard.

Inicialmente, todos los microcontroladores adoptaron la arquitectura clsica de Von Neumann. Actualmente, muchos microcontroladores utilizan esta arquitectura, pero poco a poco se impone la arquitectura Harvard. La arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede por un sistema de buses

nico (direcciones, datos y control). Esta arquitectura presenta algunos problemas cuando se demanda rapidez. La arquitectura Harvard dispone de dos memorias independientes; una, que contiene slo instrucciones y otra, slo datos. Ambas, disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias. Esta estructura no modifica nada desde el punto de vista del usuario y la velocidad de ejecucin de los programas es impresionante. http://html.rincondelvago.com/adquisicion-de-magnitudes-fisicasmediante-microcontrolador.html Arquitectura cerrada o abierta. Entre los fabricantes de microcontroladores hay dos tendencias para resolver las demandas de los usuarios. Los microcontroladores con arquitectura cerrada poseen una determinada UCP, cierta cantidad de memoria de datos, cierto tipo y capacidad de memoria de instrucciones, un nmero de E/S y un conjunto de recursos auxiliares muy concreto. El modelo no admite variaciones ni ampliaciones. La aplicacin a la que se destina debe encontrar en su estructura todo lo que precisa, y en caso contrario, hay que desecharlo. Los microcontroladores con arquitectura abierta se caracterizan porque, adems de poseer una estructura interna determinada, emplean sus lneas de E/S para sacar al exterior los buses de datos, direcciones y control, con lo que se posibilita la ampliacin de la memoria y las E/S con circuitos integrados externos. Esta solucin se asemeja a la que emplean los clsicos microprocesadores. La lnea que separa unos de otros es muy delgada, pero el concepto de microcontrolador se acerca posiblemente ms a la arquitectura cerrada.
Los microcontroladores PIC estn basados en la arquitectura Harvard que posee buses y espacios de memoria diferenciados para los datos y las instrucciones. Gracias a ella se puede acceder de forma simultnea e independiente a la memoria de datos y a la memoria de instrucciones, por tanto son ms rpidos que los microcontroladores basados en la arquitectura tradicional de Von Neuman. Por otro lado, esta independencia entre datos e instrucciones permite que cada uno tenga el tamao ms adecuado. As, los datos tienen una longitud de 8 bits, mientras que las instrucciones son de 14 bits (Figura 6-6).

Como se observa en la Figura 6-7 el PIC16F84 consta de un procesador con una ALU y un Decodificador de Instrucciones, una memoria de programa tipo FLASH de 1K palabras de 14 bits, una memoria de datos SRAM con 68 posiciones de 8 bits. Tambin existe una zona de 64 bytes de EEPROM para datos no voltiles. Finalmente dispone de interrupciones, un temporizador, perro guardin y dos puertas A y B de entrada y salida de informacin digital.

http://www.dte.upct.es/docencia/temarios/tecn_electricidad_elect_dig/Tema6.PDF

4.1.1 4.1.2

Terminales. CPU.

Arquitectura del procesador o UCP. Segn la filosofa de la arquitectura del procesador se puede distinguir entre:

Microcontroladores CISC. Microcontroladores RISC. Microcontroladores SISC.

Un microcontrolador basado en la filosofa CISC (Computadores de Juego de Instrucciones Complejo) dispone de ms de 80 instrucciones mquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que acta como macros. Tanto la industria de los computadores comerciales como los de los microcontroladores estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecuta en un solo ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especfico). http://html.rincondelvago.com/adquisicion-de-magnitudes-fisicasmediante-microcontrolador.html

2.1. Procesador.
Es el elemento ms importante del microcontrolador tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo OP (opcode) de la instruccin en curso, su decodificacin y la ejecucin de la operacin aritmtica o lgica que implica la instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado. La necesidad de conseguir rendimientos elevados en el procesamiento de las instrucciones ha desembocado en el empleo generalizado de procesadores de arquitectura Hardvard, frente a los tradicionales que seguan la arquitectura de Von Neuman. Esta ltima se caracteriza porque la CPU se conectaba a una memoria nica donde coexistan datos e instrucciones a travs de un sistema de buses. En la arquitectura Harvard son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso. Esto propicia el paralelismo (Figura 6-5).

El procesador o CPU.
El procesador responde a la arquitectura RISC, que se identifica porque el juego de instrucciones se reduce a 35, donde la mayora se ejecutan en un solo ciclo de reloj, excepto las instrucciones de salto que necesitan dos ciclos. La ALU (Arithmetic Logic Unit) ubicada dentro del procesador realiza las operaciones lgicas y aritmticas con dos operandos, uno que recibe desde el registro W (registro de trabajo) y otro que puede provenir de cualquier registro interno (Figura 6-7).

4.1.3

Espacio de Memoria.

Memoria En los microcontroladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: No existen sistemas de almacenamiento masivo como disco duro o disquetes. Como el microcontrolador slo se destina a una tarea en la memoria ROM, slo hay que almacenar un nico programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guarda r una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estn habituados a manejar Megabytes de memoria, pero, los diseadores con microcontroladores trabajan con capacidades de ROM comprendidas

entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no voltil que se pueden encontrar en los microcontroladores del mercado. ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. Si tenemos idea de cmo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoqumicos, donde se impregnan capas de silicio y oxido de silicio, y segn convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sita entre la luz y la oblea una mascara con agujeros, de manera que donde deba incidir la luz, esta pasar. Con varios procesos similares pero ms complicados se consigue fabricar los transistores y diodos micromtricos que componen un chip. Ahora ya sabes de donde viene la mscara y no te acostars sin saber una cosa ms. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. OTP El microcontrolador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido. EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su super_cie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico. EEPROM, E2PROM o E2PROM Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan

elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito"que confieren una gran flexibilidad y rapidez a la hora de realizar modi_caciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta, como ya veremos ms adelante. FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria incorporado al control del motor de un automvil permite que pueda modi_carse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.

Puertas de Entrada y Salida

4.1.4

Entrada/ Salida.

Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo exterior, a travs de interfaces, o con otros dispositivos. Estas puertas, tambin llamadas puertos, son la principal utilidad de las patas o pines de un microprocesador. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.

Perifricos digitales de entrada.


Pulsadores. Estos dispositivos permiten introducir un nivel lgico en el momento que se les acciona, pasando al nivel contrario cuando se deja de hacerlo (vuelven a la posicin de reposo). En el esquema de la izquierda de la Figura 6-14 la lnea de entrada (IN) recibe un nivel

lgico alto cuando el pulsador est reposo y un nivel lgico bajo cuando se acciona. El pulsador de la derecha funciona al revs.

Hay multitud de detectores, finales de carrera y sensores digitales que funcionan de la misma manera que los pulsadores. Interruptores. Los interruptores tienen dos estados estables y hay que accionarlos para cambiar de uno a otro. El interruptor admite el estado abierto y el estado cerrado. Las formas de conectar un interruptor a una entrada del microcontrolador son iguales a las de la figura 6-14, sustituyendo el pulsador por el interruptor. Todos los circuitos electromecnicos (pulsadores, interruptores,...) originan un fenmeno denominado rebotes: las lminas se abren y se cierran varias veces en el momento de la transicin (Figura 6-15). El efecto que produce es semejante a abrir y cerrar el interruptor o pulsador varias veces, por lo que puede provocar resultados errneos.

El efecto de los rebotes se puede solucionar bien mediante software, o bien por hardware. En la Figura 6-16 se muestran dos circuitos hardware antirrebotes. El circuito de la izquierda emplea un condensador y el de la derecha un flip-flop R-S.

Perifricos digitales de salida


Diodos LED. El diodo led es un elemento que se emplea como indicador luminoso. Cuando la diferencia de potencial entre su nodo y su ctodo supere un determinado valor umbral el diodo led se encender. Las lneas de los PIC pueden suministrar suficiente corriente como para encender a un diodo led, por eso se pueden conectar directamente a travs de una

resistencia como muestra la Figura 6-17. Si empleamos la conexin de la izquierda de la figura, el diodo led se encender al poner a 1 la salida del microcontrolador, mientras que con la conexin de la derecha lo har cuando la salida se ponga a 0.

En ocasiones, los diodos u otro tipo de carga necesitan ms corriente que la que pueden entregar las lneas de los PIC. En ese caso es necesario intercalar una etapa amplificadora. Rels La activacin y desactivacin de un rel brinda la oportunidad de poder controlar cargas mucho mayores (ms corriente) porque pueden ser controladas por los contactos de dicho rel (Figura 6-18). Cuando la lnea de salida, OUT, aplica un nivel alto a la base del transistor Darlington (etapa amplificadora) hace que conduzca y se active el rel. Al cerrarse los contactos del rel se controla una carga mayor. El valor de la resistencia depende del tipo de rel y del transistor.

http://www.dte.upct.es/docencia/temarios/tecn_electricidad_elect_dig/Tema6.PDF

Reloj principal

4.1.5

Caractersticas especiales.

Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Esta seal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa y de calor generado.

RECURSOS ESPECIALES
Cada fabricante oferta numerosas versiones de una arquitectura bsica de microcontrolador. En algunas ampla las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo mnimo que satisfaga todos los requerimientos de su aplicacin. De esta forma,

minimizar el coste, el hardware y el software. Los principales recursos especficos que incorporan los microcontroladores son: Temporizadores o Timers. Perro guardin oWatchdog. Proteccin ante fallo de alimentacin o Brownout. Estado de reposo o de bajo consumo (Sleep mode). Conversor A/D (Analgico ->Digital). Conversor D/A (Digital ->Analgico). Comparador analgico. Modulador de anchura de impulsos o PWM (PulseWide Modulation). Puertas de E/S digitales. Puertas de comunicacin. A continuacin pasamos a ver con un poco ms de detalle cada uno de ellos

Temporizadores o Timers
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuacin dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algn mltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos. Vaya, nos hemos metido en trminos de microcontroladores demasiado pronto. Bueno, con el fin de aclarar que es un registro, anticipamos que es un valor numrico en una posicin fija de memoria. Un ejemplo: esto es igual que el segundero de nuestro reloj digital, este va aumentando hasta que llega a 60 segundos, pero en la pantalla pone 00, esto quiere decir que se desborda. Pero cuando cambia da un aviso y se incrementan los minutos. En este ejemplo, el registro es el segundero; estos son fijos ya que sabemos que son los de la derecha del todo y no se van a cambiar.

Perro guardin oWatchdog


Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botn del reset y se reinicia el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del da. El Perro Guardin consiste en un contador que, cuando llega al mximo, provoca un reset automticamente en el sistema. Se debe disear el programa de trabajo que controla la tarea de forma que resetee al Perro Guardin de vez en cuando antes de que provoque el reset. Si falla el programa o se bloquea (si cae en bucle in_nito), no se refrescar al Perro guardin y, al completar su temporizacin, provocar el reset del sistema.

Proteccin ante fallo de alimentacin o Brownout


Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin (VDD) es inferior a un voltaje mnimo (brownout). Mientras el voltaje de alimentacin sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Esto es muy til para evitar datos errneos por transiciones y ruidos en la lnea de alimentacin

Estado de reposo de bajo consumo


Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algn acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energa, (factor clave en los aparatos porttiles), los microcontroladores disponen de una instruccin especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mnimos. En dicho estado se detiene el reloj principal y se congelan sus circuitos asociados, quedando sumido en un profundo

sueo. Al activarse una interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. Para hacernos una idea, esta funcin es parecida a la opcin de Suspender en el men para apagar el equipo (en aquellos PCs con administracin avanzada de energa)

Conversor A/D (CAD)


Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital) pueden procesar seales analgicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas seales analgicas desde las patillas del circuito integrado.

Conversor D/A (CDA)


Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente seal analgica que saca al exterior por una de las patillas del chip. Existen muchos circuitos que trabajan con seales analgicas.

Comparador analgico
Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que acta como comparador entre una seal fija de referencia y otra variable que se aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o menor que la otra. Tambin hay modelos de microcontroladores con un mdulo de tensin de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

Modulador de anchura de impulsos o PWM


Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de las patitas del encapsulado.

Puertos digitales de E/S


Todos los microcontroladores destinan parte de su patillaje a soportar lneas de E/S digitales. Por lo general, estas lneas se agrupan de ocho en ocho formando Puertos. Las lneas digitales de las Puertos pueden configurarse como Entrada o como Salida cargando un 1 un 0 en el bit correspondiente de un registro destinado a su configuracin. Otra vez ms nos volvemos a meter con unos, ceros y registros paciencia que pronto llega lo mejor.

Puertas de comunicacin
Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: UART, adaptador de comunicacin serie asncrona.(Ej: Puerto Serie) USART, adaptador de comunicacin serie sncrona y asncrona Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. USB (Universal Serial Bus), que es un moderno bus serie para los PC. Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. CAN (Controller Area Network), para permitir la adaptacin con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automviles. En EE.UU. se usa el J185O. Tanto el I2C en televisores, como el Bus CAN en automviles, fueron diseados para simplificar la circuitera que supone un bus paralelo de 8 lneas dentro de un televisor, as como para librar de la carga que supone una cantidad ingente de cables en un vehculo.

4.2

Programacin. 4.2.1 Modelo de programacin.

Modelo de programacin El modelo de programacin es un diagrama de bloques simplificado en el que slo aparecen los elementos que el programador puede manejar mediante el conjunto de instrucciones. En el MC68000 se dispone de 16 registros de 32 bits de propsito general (D0-D7, A0A7), un puntero contador de programa (PC) de 32 bits, y un registro de cdigos de condicin (CCR) de 8 bits. Los primeros 8 registros (D0-D7) se utilizan como registros de datos para bytes (8 bits), words (16 bits) y long words (32 bits). Los registros del segundo bloque de 8 (A0-A7) pueden ser utilizados como punteros de pila o como bases de direcciones. En concreto el registro A7 es adoptado por el microprocesador como puntero de la pila del sistema. Adems, los registros de direcciones pueden ser utilizados en operaciones con words y long words. Todos los registros pueden utilizarse como registros ndice. Registro de datos

Registros de direcciones

(USP) Puntero de pila de usuario Puntero de programa

CCR Registro de cdigos de condicin

Esquema de los registros del MC68000.

En estado supervisor se dispone de otros dos registros: Por una parte, el puntero de la pila del supervisor (SSP Supervisor Stack Pointer) que sustituye al USP y por tanto se establece como A7 en modo supervisor. Adems se dispone del registro de estado (SR Status Register) que es una ampliacin del CCR. Puntero de pila de supervisor

Registro de estado Estos registros son exclusivos del modo supervisor.

EL REGISTRO DE ESTADO (SR) Es un registro de 16 bits. El formato del registro de estado es el siguiente:

T S

I2 I1 I0

XNZV C

Estructura del registro de estado (SR).


Esta dividido lgicamente en sus dos bytes, el byte alto denominaod BYTE del SISTEMA, y el byte bajo, REGISTRO de CODIGOS DE CONDICION.

BYTE del SISTEMA: slo puede ser modificado desde el modo supervisor, posee 5 bits significaativos que controlan el funcionamiento del microprocesador. La funcin especfica de cada bit es: o T : BIT DE TRAZA, Cuando este bit est a 1, la CPU entra en el modo de ejecucin paso a paso. Despus de ejecutarse una instruccin se genera una excepcin, que dar paso a la correspondiente subrutina. Util para prueba y depuracin. o S: BIT de ESTADO, Cuando este bit est a 1 el microprocesador opera en modo supervisor, cuando est a 0, en modo usuario. Este bit permite el paso de modo supervisor a modo usuario. o I2,I1,I0 : MASCARA DE INTERRUPCION, Estos 3 bits constituyen el nivel de la mscara de interrupcin. Esto quiere decir que, para que una interrupcin sea atendida, debe ser de un nivel superior al indicaado por estos 3 bits.

REGISTRO DE CODIGOS DE CONDICION (CCR): Solo son significativos los 5 bits ms bajos. Cada uno de estos bits, llamados "flags", tiene la funcin de sealar la ocurrencia de un hecho concreto: C : BIT DE ACARREO, Sirve para notificar que el resultado de uan operacin aritmtica supera el nmero de bits de los operandos. Depende de la instruccin concreta como se ver afectado el bit C y la interpretacin correcta de su valor. Tambisn se modifica por instrucciones de rotacin y desplazamiento. Otras instrucciones lo ponen a 0. V : BIT de DESBORDAMIENTO. Tiene sentido cuando se trabaja con valores numricos con signo (en complemento a 2 con el bit mas significativo reservado para el signo) y se pone a 1 cuando el resultado de una operacin no se puede almacenar en el numero de bits que permite la representacin del numero Z : BIT de CERO, Se pone a 1 cuando el resultado de una operacin o de una transferencia de datos es cero. N: BIT DE SIGNO, Contiene el valor del bit ms significativo del resultado de una operacin aritmtica lgica. X: BIT DE EXTENSION, Utilizado en operaciones de precisin mltiple , toma el valor del bit C, salvo en operaciones de rotacin extendida.

http://www.ii.uam.es/~fjgomez/68000/tutorial/cap1.html

4.2.2
ADD - Add Binary

Conjunto de instrucciones.

ADD Suma Binaria

Operacin
Fuente + Destino -> Destino

Sintaxis en Ensamblador
1- ADD <ea>,Dn 2- ADD Dn,<ea>

Atributos
Tamaos=(Byte, Word, Long)

Descripcin
Suma el operando fuente con el operando destino, y guarda el resultado en el operando destino. El tamao de los operandos puede elegirse entre Byte, Word y Long. El Modo de la instruccin que diferencia entre las dos sintxis (1 o 2) indica que operando es el fuente y cual es el destino asi como los tamaos de los operandos.

Registro de Cdigos de Condicin


X * N * Z * V * C *

N: Se pone a 1 (Set) si el resultado es negativo. Se pone a 0 (Cleared) en otro caso. Z: Se pone a 1 (Set) si el resultado es cero. Se pone a 0 (Cleared) en otro caso. V: Se pone a 1 (Set) si se genera desbordamiento (overflow). Se pone a 0 (Cleared) en otro caso. C: Se pone a 1 (Set) si se genera acarreo. Se pone a 0 (Cleared) en otro caso. X: Toma el mismo valor que el C.

Codificacin Binaria
1 1 0 1 Reg. Datos Modo Operacin Direccin Efectiva La Suma binaria admite dos Modos : 1. Modo 1 si se utiliza ADD <dir. efectiva>,Dx 2. con el Campo Modo Operacion = 000, 001, 010 Segn sea BYTE, WORD y LONG. 1. Modo 2 si se utiliza ADD Dx, <dir. efectiva> 2. con el Campo Modo Operacion = 100, 101, 110 Segn sea BYTE, WORD y LONG. Los operandos pueden ser tamao Byte, Word, o Long.

ABCD - Add Decimal with Extend ADDA - Add Address ADDI - Add Immediate

ADDI Suma Inmediata

Operacin
Dato Inmediato + Destino -> Destino

Sintaxis en Ensamblador
ADDI #<data>,<ea>

Atributos
Tamao=(Byte, Word, Long)

Descripcin
Suma el dato inmediato al operando destino, y almacena el resultado en el operando destino. El tamao del operando puede ser Byte , Word o Long. El tamao del dato inmediato se hace igual al del operando

Registro de Cdigos de Condicin


X * N * Z * V * C *

N: Se pone a 1 (Set) si el resultado es negativo. Se pone a 0 (Cleared) de otro modo. Z: Se pone a 1 (Set) si el resultado es cero. Se pone a 0 (Cleared) en otro caso. V: Se pone a 1 (Set) si se genera desbordamineto (overflow). Se pone a 0 (Cleared) en otro caso. C: Se pone a 1 (Set) si se genera acarreo. Se pone a 0 (Cleared) en otro caso. X: Toma el mismo valor que el C.

Codificacin Binaria
El campo Tamao distingue entre : 1. BYTE = 00 1. WORD = 01 1. LONG = 10 Los operandos son tamao Byte,Word o Long 0 0 0 0 0 1 1 0 Tamao Modo Registro WORD = Palabra (16 bits) BYTE = Byte ( 8 bits) Palabra larga = LONG (32 bits)

ADDQ - Add Quick

ADDQ Suma Rapida

Operacin
Dato Inmediato + Destino -> Destino

Sintaxis en Ensamblador
ADDQ #<data>,<ea>

Atributos
Tamao=(Byte, Word, Long)

Descripcin
Suma el dato inmediato al operando destino y queda el resultado en destino. El rango de valores del dato inmediato es de 1 a 8. El tamao de la operacin puede especificarse como Byte, Word o Long. En operaciones de tamao Word o Long est tambin permitido usar registros de direcciones, en cuyo caso el registro de cdigos de condicin no se ve afectado. Cuando se suma el registro de direcciones, se emplea el tamao total del registro de direcciones independientemente del tamao de operacin.

Registro de Cdigos de Condicin


X * N * Z * V * C *

N: Se pone a 1 (Set) si el resultado es negativo. Se pone a 0 (Cleared) de otro modo. Z: Se pone a 1 (Set) si el resultado es cero. Se pone a 0 (Cleared) en otro caso. V: Se pone a 1 (Set) si se genera desbordamineto (overflow). Se pone a 0 (Cleared) en otro caso. C: Se pone a 1 (Set) si se genera acarreo. Se pone a 0 (Cleared) en otro caso. X: Toma el mismo valor que el C. Los cdigos de condicin no se alteran si el operando destino es un registro de direcciones

Codificacin Binaria
1 1 0 0 Dato 0 Tamao Dir. Efectiva Modo Registro

El campo Tamao distingue entre : 1. BYTE = 00 1. WORD = 01 1. LONG = 10

La operacin puede ser tamao Byte,Word o Long

ADDX - Add Extended

ADDX Suma Extendida

Operacin
Fuente + Destino + X -> Destino

Sintaxis en Ensamblador
ADDX Dy,Dx ADDX -(Ay),-(Ax)

Atributos
Tamao=(Byte, Word, Long)

Descripcin
Suma el operando fuente con el destino y con el bit X, guarda el resultado en el operando destino Los operandos pueden direccionarse de dos maneras:

Registro de Datos a registro de Datos: Los operandos estan contenidos en los registros de datos especificados en la instruccin. Memoria a Memoria: Se indican los operandos con direccionamiento indirecto con predecremento usando el registro de direcciones especificado en la instruccin.

El tamao de los operandos puede ser byte, word, or long.

Registro de Cdigos de Condicin


X * N * Z * V * C *

N: Se pone a 1 (Set) si el resultado es negativo. Se pone a 0 (Cleared) de otro modo. Z: Se pone a 1 (Set) si el resultado es cero. Se pone a 0 (Cleared) en otro caso. V: Se pone a 1 (Set) si se genera desbordamineto (overflow). Se pone a 0 (Cleared) en otro caso. C: Se pone a 1 (Set) si se genera acarreo. Se pone a 0 (Cleared) en otro caso. X: Toma el mismo valor que el C.

Nota: Normalmente el bit Z se pone a 1 via programa antes de iniciar una operacin. Esto admite comprobar si el resultado es cero despues de realizar una operacin de multiple-precisin

Codificacin Binaria
1 1 0 0 Reg. Destino 1 Tamao 0 0 R/M Reg. Fuente Admite dos Modos : 1. R/M=0 si se utiliza ADDX Dy,Dx 1. R/M=1 si se utiliza ADDX -(Ay),-(Ax) El campo Tamao distingue entre : 1. BYTE = 00 1. WORD = 01 1. LONG = 10 Los operandos son tamao Byte, Word o Long AND - And Logical

AND And Lgico

Operacin
Fuente & Destino -> Destino

Sintaxis en Ensamblador
AND <ea>,Dn AND Dn,<ea>

Atributos
Tamao=(Byte, Word, Long)

Descripcin
Realiza la funcin lgica AND, bit a bit, entre el operando fuente y el destino guardando el resultado en el destino. El tamao de la operacin puede ser Byte, Word o Long.

No se puede usar como operando el contenido de un registro de direcciones.

Registro de Cdigos de Condicin


X N * Z * V 0 C 0

N: Se pone a 1 (Set) si el bit mas significativo del resultado esta a 1. Se pone a 0 (Cleared) de otro modo. Z: Se pone a 1(Set) si el resultado es cero. Se pone a 0 (Cleared) en otro caso. V: Siempre a 0 (cleared). C: Siempre a 0 (cleared). X: No se ve afectado.

Codificacin Binaria
1 1 0 0 Reg. Datos Modo Opera. Dir. Efectiva Modo Registro

El And lgico admite dos Modos : 1. Modo 1 si se utiliza AND <dir. efectiva>,Dx 2. con el Campo Modo Operacion = 000, 001, 010 Segn sea BYTE, WORD y LONG. 1. Modo 2 si se utiliza AND Dx, <dir. efectiva> 2. con el Campo Modo Operacion = 100, 101, 110 Segn sea BYTE, WORD y LONG. Los operandos pueden ser tamao Byte, Word, o Long. ANDI - AND Immediate

ANDI AND Inmediato

Operacin
Dato Inmediato & Destino -> Destino

Sintaxis en Ensamblador
ANDI #<data>,<ea>

Atributos
Tamao=(Byte, Word, Long)

Descripcin
Realiza la operacin AND lgico entre el dato inmediato y el operando destino, almacenado el resultado en el destino. El tamao de la operacin puede especificarse como Byte, Word o Long. El tamao de la operacin se hace igual al tamao del operando.

Registro de Cdigos de Condicin


X N * Z * V 0 C 0

N: Se pone a 1 (Set) si el bit mas significativo del resultado esta a 1. Se pone a 0 (Cleared) de otro modo. Z: Se pone a 1(Set) si el resultado es cero. Se pone a 0 (Cleared) en otro caso. V: Siempre a 0 (cleared). C: Siempre a 0 (cleared). X: No se ve afectado.

Codificacin Binaria
El campo Tamao distingue entre : 1. BYTE = 00 1. WORD = 01 1. LONG = 10 Los operandos son tamao Byte,Word o Long 0 0 0 0 0 1 1 0 Tamao Modo Registro WORD = Palabra (16 bits) BYTE = Byte ( 8 bits) Palabra larga = LONG (32 bits) ANDI to CCR - ANDI Immediate to Condition Codes

ANDI a CCR ANDI Inmediato con el registro de Codigos de Condicin

Operacion
Fuente & CCR -> CCR

Sintaxis en Ensamblador
ANDI #<data>,CCR

Atributos
Tamao=(Byte)

Descripcin
Realiza la operacin AND entre el dato inmediato y el registro de codigos de condicin, almacenando el resultado en el byte bajo del registro de estado.

Registro de Cdigos de Condicin


X * N * Z * V * C *

N: Se pone a 0 (Cleared) si el bit 3 del dato inmediato es cero. No cambia en otro caso. Z: Se pone a 0 (Cleared) si el bit 2 del dato inmediato es cero. No cambia en otro caso. V: Se pone a 0 (Cleared) si el bit 1 del dato inmediato es cero. No cambia en otro caso. C: Se pone a 0 (Cleared) si el bit 0 del dato inmediato es cero. No cambia en otro caso. X: Se pone a 0 (Cleared) si el bit 4 del dato inmediato es cero. No cambia en otro caso.

Codificacin Binaria
ANDI a CCR 00000010 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 BYTE de datos ( 8 bits) ANDI to SR - ANDI Immediate to the Status Register (Priviledged Instruction)

ADDQ - Add Quick ASL,ASR - Arithmetic Shift

ASL Desplazamiento aritmtico a la izquierda

Operacin

Sintaxis en Ensamblador
ASL Dy,Dx ASL #<dato>,Dx ASL <direccionamiento indirecto de memoria>

Atributos
Tamao=(Byte, Word, Long)

Descripcin
Suma el operando fuente con el destino y con el bit X, guarda el resultado en el operando destino Los operandos pueden direccionarse de dos maneras:

Registro de Datos a registro de Datos: Los operandos estan contenidos en los registros de datos especificados en la instruccin. Memoria a Memoria: Se indican los operandos con direccionamiento indirecto con predecremento usando el registro de direcciones especificado en la instruccin.

El tamao de los operandos puede ser byte, word, or long.

Registro de Cdigos de Condicin


X * N * Z * V * C *

N: Se pone a 1 (Set) si el resultado es negativo. Se pone a 0 (Cleared) de otro modo. Z: Se pone a 1 (Set) si el resultado es cero. Se pone a 0 (Cleared) en otro caso. V: Se pone a 1 (Set) si se genera desbordamineto (overflow). Se pone a 0 (Cleared) en otro caso. C: Se pone a 1 (Set) si se genera acarreo. Se pone a 0 (Cleared) en otro caso. X: Toma el mismo valor que el C.

Nota: Normalmente el bit Z se pone a 1 via programa antes de iniciar una operacin. Esto admite comprobar si el resultado es cero despues de realizar una operacin de multiple-precisin

Codificacin Binaria
1 1 0 0 Reg. Destino 1 Tamao 0 0 R/M Reg. Fuente Admite dos Modos : 1. R/M=0 si se utiliza ADDX Dy,Dx 1. R/M=1 si se utiliza ADDX -(Ay),-(Ax) El campo Tamao distingue entre : 1. BYTE = 00 1. WORD = 01 1. LONG = 10 Los operandos son tamao Byte, Word o Long ASL,ASR - Arithmetic Shift Bcc - Branch Conditionally

Bcc Branch Conditionally

Operation
If (condition true) then PC + d -> PC

Assembler Syntax
Bcc <label>

Attributes
Size=(Byte, Word, Long)

Description
If the specified condition is met, program execution continues at location (PC) + displacement. The displacement is a two's complement integer which counts the relative distance in bytes. The value in the PC is the sign-extend instruction location plus two. If

the 8-bit displacement in the instruction word is zero, then the 16-bit displacement (word immediately following the instruction) is used. If the 8-bit displacement in the instruction word is all ones ($FF), then the 32-bit displacement (long word immediately following the instruction) is used. "cc" may specify the following conditions:
CC CS EQ GE GT HI LE LS LT MI NE PL VC VS carry clear carry set equal greater or equal greater than high less or equal low or same less than minus not equal plus overflow clear overflow set (!C) C Z N*V+(!N)*(!V) N*V*(!Z)+(!N)*(!V)*(!Z) (!C)*(!Z) Z+N*(!V)+(!N)*V C+Z N*(!V)+(!N)*V N (!Z) (!N) (!V) V

Condition Codes
Not affected. BCHG - Test a Bit and Change

BCHG Test a Bit and Change

Operation
~(<bit number> of Destination) -> Z; ~(<bit number> of Destination) -> (bit number) of Destination

Assembler Syntax
BCHG Dn,<ea> BCHG #<data>,<ea>

Attributes
Size=(Byte, Long)

Description
A bit in the destination operand is tested and the state of the specified bit is reflected in the Z condition code. After the test, the state of the specified bit is changed in the destination. If a data register is the destination, then the bit numbering is a modulo 32 allowing bit manipulation on all bits in a data register. If a memory location is the destination, a byte is read from that location, the bit operation is performed using the bit

number, modulo 8, and the byte is written back to the location. In all cases, bit zero refers to the least significant bit. The bit number for this operation may be specified in two different ways:

Immediate: the bit number is specified in the second word of the instruction. Register: the bit number is contained in a data register specified in the instruction.

Condition Codes
X N Z * V C -

N Not affected. Z Set if the bit tested is zero. Cleared otherwise. V Not affected. C Not affected. X Not affected. BCLR - Test a Bit and Clear

BCLR Test a Bit and Clear

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. BRA - Branch Always

BRA Branch Always

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. BSET - Test a Bit and Set

BSET Test a Bit and Set

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. BSR - Branch to Subroutine

BSR Branch to Subroutine

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. BTST - Test a Bit CHK - Check Register against Bounds

CHK Check Register against Bounds

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. CLR - Clear an Operand

CLR Clear an Operand

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. CMP - Compare

CMP Compare

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. CMPA - Compare Address

CMPA Compare Address

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. CMPI - Compare Immediate

CMPI Compare Immediate

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. CMPM - Compare Memory

CMPM Compare Memory

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. DBCC - Test Condition, Decrement and Branch

DBCC Test Condition, Decrement and Branch

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. DIVS - Signed Divide

DIVS Signed Divide

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. DIVU - Unsigned Divide

DIVU Unsigned Divide

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. EOR - Exclusive OR Logical

EOR Exclusive OR Logical

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. EORI - Exclusive OR Immediate

EORI Exclusive OR Immediate

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. EXG - Exchange Registers

EXG Exchange Registers

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. EXT - Sign Extend

EXT Sign Extend

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. JMP - Jump

JMP Jump

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. JSR - Jump to Subroutine

JSR Jump to Subroutine

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. LEA - Load Effective Address

LEA Load Effective Address

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. LINK - Link and Allocate

LINK Link and Allocate

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. LSL,LSR - Logical Shift MOVE - Move Data from Source to Destination

MOVE Move Data from Source to Destination

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVE from SR - Move from the Status Register

MOVE from SR Move from the Status Register

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVE to CCR - Move to Condition Codes

MOVE to CCR Move to Condition Codes

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVE to SR - Move to the Status Register

MOVE to SR Move to the Status Register

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVE USP - Move User Stack Pointer

MOVE USP Move User Stack Pointer

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVEA - Move Adress

MOVEA Move Adress

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVEM - Move Multiple Registers

MOVEM Move Multiple Registers

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVEP - Move Peripheral Data

MOVEP Move Peripheral Data

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MOVEQ - Move Quick

MOVEQ Move Quick

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. MULS - Signed Multiply

MULS Signed Multiply

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. NBCD - Negate Decimal with Extend

NBCD Negate Decimal with Extend

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. NEG - Negate

NEG Negate

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. NEGX - Negate with Extend

NEGX Negate with Extend

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. NOP - No Operation

NOP No Operation

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. NOT - Logical Complement

NOT Logical Complement

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. OR - Inclusive OR Logical

OR Inclusive OR Logical

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. ORI - Inclusive OR Immediate

ORI Inclusive OR Immediate

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. PEA - Push Effective Address

PEA Push Effective Address

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. RESET - Reset External Devices ROL,ROR - Rotate (without Extend) ROXL,ROXR - Rotate with Extend RTE - Return from Exception

RTE Return from Exception

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. RTR - Return and Restore Condition Codes

RTR Return and Restore Condition Codes

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. RTS - Return from Subroutine

RTS

Return from Subroutine

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SBCD - Subtract Decimal with Extend

SBCD Subtract Decimal with Extend

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SCC - Set According to Condition

SCC

Set According to Condition

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. STOP - Load Status Register and Stop

STOP Load Status Register and Stop

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SUB - Subtract Binary

SUB

Subtract Binary

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SUBA - Subtract Address

SUBA Subtract Address

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SUBI - Subtract Immediate

SUBI

Subtract Immediate

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SUBQ - Subtract Quick

SUBQ Subtract Quick

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SUBX - Subtract with Extend

SUBX

Subtract with Extend

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. SWAP - Swap Register Halves

SWAP Swap Register Halves

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. TAS - Test and Set an Operand

TAS

Test and Set an Operand

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. TRAP - Trap

TRAP Trap

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. TRAPV - Trap on Overflow

TRAPV

Trap on Overflow

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. TST - Test an Operand

TST Test an Operand

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X. UNLK - Unlink

UNLK

Unlink

Operation Assembler Syntax Attributes


Size=(Byte)

Condition Codes
X N Z V C -

N. Z. V. C. X.

http://www.ii.uam.es/~fjgomez/68000/tutorial/cap4.html

Operaciones de movimiento de datos


Los transvases de datos y direcciones son realizados principalmente por la instruccin MOVE. Esta instruccin con sus diversos modos de direccionamiento y las tres longitudes de operandos permite todo tipo de movimiento entre registros y memoria. Adems de esto se permiten ciertos tipos de movimiento de datos especiales que son ejecutados por las instrucciones: MOVEM ( mueve mltiples registros de una sola vez), MOVEP (mueve valores a direcciones de perifricos de 8 bits), MOVEQ (ejecuta un movimiento rpido de valores inmediatos pequeos), EXG (intercambia el contenido de dos registros entre s), LEA (carga una direccin efectiva), PEA ( introduce en el stack una direccin efectiva), LINK ( establece un encadenamiento), UNLIK ( elimina un encadenamiento). Instruccin EXG LEA LINK MOVE MOVEA MOVEM MOVEP Sintaxis de los operandos Rn, Rm < ea > , An An, # < d > < ea >, < ea > < ea >, list list , < ea > < ea > , list Dn , (d16 , An ) Tamao 32 32 16 - >32 8 , 16 , 32 16 , 32 -> 32 16 , 32 16 , 32 -> 32 16 , 32 Operacin Rn <=> Rm < ea > => An SP-4 => SP ; An => (SP) SP => An ; SP + d => SP Origen => Destino Reg de lista => Destino Origen => Reg de lista Dn [ 31:24 ] => ( An + d ) ;

(d16 , An ), Dn

Dn [ 23:16 ] => ( An + d + 2 ) ; Dn [ 15:8 ] => ( An + d + 4 ) ; Dn [ 7:0 ] => ( An + d + 6 ) ; ( An + d ) => Dn [ 31:24 ] ; ( An + d + 2 ) => Dn [ 23:16 ] ; ( An + d + 4 ) => Dn [ 15:8 ] ; ( An + d + 6 ) => Dn [ 7:0 ] ; 8 -> 32 32 32 Dato inmediato => Destino SP - 4 => SP ; < ea > => ( SP ) An => SP ; ( SP ) => An ; SP + 4 => SP

MOVEQ PEA UNLK

# < data , Dn < ea > An

fig. 4-2 - Instrucciones de movimientos de datos.

Operaciones aritmticas con enteros


Las operaciones aritmticas son bsicamente cuatro: ADD (suma), SUB (resta), MUL (multiplicacin) y DIV (divisin). A estas deben aadirse CMP/CMPM (comparacin), CLR (borrado) y NEG (negacin o cambio de signo). Las operaciones de multiplicacin y divisin tienen dos variantes segn se trate de aritmtica con signo o sin signo (MULS/MULU y DIV/DIVU). Se pueden realizar operaciones multiprecisin mediante las operaciones ADDX, SUBX, NEGX y EXT (extensin de un operando de un determinado tamao hasta otro superior). Instruccin ADD ADDA ADDI ADDQ ADDX CLR CMP CMPA CMPI CMPM Sintaxis de los operandos Dn , < ea > < ea > , Dn < ea > , An # < data > , < ea > # < data > , < ea > Dn , Dn - ( An) , - ( An) < ea > < ea > , Dn < ea > , An # < data > , < ea > ( An ) + , ( An ) + Tamao 8 , 16 , 32 8 , 16 , 32 16 , 32 8 , 16 , 32 8 , 16 , 32 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 16 , 32 8 , 16 , 32 8 , 16 , 32 Operacin Origen + Destino => Destino Dato inmediato + Destino => Destino Origen + Destino + X => Destino 0 => Destino Destino - Origen Destino -> Dato inmediato Destino - Origen

DIVS DIVU EXT MULS MULU NEG NEGX SUB SUBA SUBI SUBQ SUBX

< ea > , Dn

32/ 16 => 16

Destino / Origen => Destino con / sin signo Destino signo ext. => Destino Destino / Origen => Destino con / sin signo 0 - Destino => Destino 0 - Destino - X -> Destino Destino - Origen => Destino Destino - Dato inm. => Destino Destino - Origen - X => Destino

Dn Dn < ea > , Dn

8 => 16 16 => 32 16 * 16 => 32

< ea > < ea > Dn , < ea > < ea > , Dn < ea > , An # < data > , < ea > # < data > , < ea > Dn , Dn - ( An) , - ( An)

8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32

fig. 4-3 - Instrucciones de operaciones aritmticas. 4.1.3.- Operaciones de lgica. Las operaciones lgicas disponibles son AND, OR, EOR y NOR. Estas admiten todo tipo de operando entero con cualquier tamao. Para realizar operaciones lgicas con datos inmediatos existen las siguiente variantes de las anteriores operaciones: ANDI, ORI y EORI. A este conjunto de instrucciones se puede aadir la TST, que realiza una comparacin del operando con cero, afectando en consecuencia a los cdigos de condicin. Instruccin Sintaxis de los operandos AND ANDI EOR EORI NOT OR Dn, < ea > < ea > , Dn # < data > , < ea > Dn, < ea > # < data > , < ea > < ea > Dn, < ea > < ea > , Dn Tamao 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 8 , 16 , 32 Operacin Origen Destino => Destino Dato inm. ^ Destino => Destino Origen Destino => Destino Dato inm. Destino -> Destino ~ Destino => Destino Origen V Destino => Destino

ORI TST

# < data > , < ea > < ea >

8 , 16 , 32 8 , 16 , 32

Dato inm. V Destino => Destino Destino - 0 ==> Condiciones del CCR

fig. 4-4 - Instrucciones de operaciones de lgica. 4.1.4.- Operaciones de rotacin y desplazamiento. Se dispone de instrucciones de desplazamiento de los bits en un operando en los dos sentidos, derecha e izquierda, y en modo aritmtico (con signo) y lgico. Estas son ASL, LSL y LSR Las operaciones de rotacin tambin pueden realizarse en los dos sentidos, y adems pueden afectar o no al bit de extensin en el registro de cdigos de condicin (CCR). se tienen por tanto cuatro instrucciones que son: ROR, ROL, ROXR, ROXL. Las operaciones de rotacin y desplazamiento sobre registros admiten todos los tamaos de operando y un nmero de bits a desplazar entre 1 y 8. Si el operando est en memoria slo se admite el tamao word y movimientos de un bit. La instruccin swap intercambia los contenidos de las dos mitades de 16 bits de un registro. Instruccin Sintaxis de los operandos ASL Dn, Dn # < data >, Dn < ea > Dn, Dn # < data >, Dn < ea > Dn, Dn # < data >, Dn < ea > Dn, Dn # < data >, Dn < ea > Dn, Dn # < data >, Dn < ea > Dn, Dn # < data >, Dn < ea > Dn, Dn Tamao 8 , 16 , 32 8 , 16 , 32 16 8 , 16 , 32 8 , 16 , 32 16 8 , 16 , 32 8 , 16 , 32 16 8 , 16 , 32 8 , 16 , 32 16 8 , 16 , 32 8 , 16 , 32 16 8 , 16 , 32 8 , 16 , 32 16 8 , 16 , 32 Operacin

ASR

LSL

LSR

ROL

ROR

ROXL

# < data >, Dn < ea > ROXR Dn, Dn # < data >, Dn < ea > Dn

8 , 16 , 32 16 8 , 16 , 32 8 , 16 , 32 16 32

SWAP

fig. 4-5 - Instrucciones de rotacin y desplazamiento. 4.1.5.- Operaciones de manipulacin de bits. Se pueden realizar operaciones con bits mediante las instrucciones: BTST ( testeo de un bit ). BSET ( testeo y puesta a uno de un bit ), BCLR ( testeo y puesta a cero de un bit ) y BCHG ( testeo y cambio del estado de un bit ). Cuando el operando es un registro el tamao asumido es de 32 bits, pero si el operando est en memoria el tamao se toma como byte.

Instruccin BCHG BCLR BSET BTST

Sintaxis de los operandos Dn , < ea > # < data > , < ea > Dn , < ea > # < data > , < ea > Dn , < ea > # < data > , < ea > Dn , < ea > # < data > , < ea >

Tamao 8 , 32 8 , 32 8 , 32 8 , 32 8 , 32 8 , 32 8 , 32 8 , 32

Operacin ~ Destino [P] => Z => Destino [P] ~ Destino [P] => Z; 0 => Destino [P] ~ Destino [P] => Z; 1 => Destino [P] ~ Destino [P] => Z ;

fig. 4-6 - Instrucciones de manipulaacin de bits. 4.1.6.- Operaciones con decimal codificado en binario ( BCD ). Pueden realizarse operaciones aaritmticas multiprecisin con formato decimal codificado en binario (BCD) mediante: ABCD ( suma decimal con extensin ),SBCD ( resta decimal con extensin ) y NBCD ( negacin o cambio de signo decimal con extensin ).

Instruccin

Sintaxis de los operandos

Tamao

Operacin

ABCD

Dn, Dn - ( An ), - ( An ) < ea > Dn, Dn - ( An ), - ( An )

8 8 8 8 8

Origen + Destino + X => Destino 10 10 10 0 - Destino + X => Destino 10 10 Destino - Origen - X => Destino 10 10 10

NBCD SBCD

fig. 4-2 - Instrucciones de movimientos de datos. 4.1.7.- Operaciones de control del programa. El flujo del programa se controla mediante tres grupos de instrucciones: saltos condicionales ( Bcc y DBcc ), saltos incondicionales ( BRA, BSR, JMP y JSR ) y retornos ( RTR y RTS ). Las instrucciones de salto condicional admiten las condiciones de test vistas en el apartado 3.2. La instruccin NOP no tiene ningn efecto, por lo que puede considerarse dentro de este grupo como un salto a la siguiente posicin. Instruccin Sintaxis de los operandos < label > Dn , < label > < ea > Tamao Condicionales Bcc DBcc Scc 8 , 16 16 8 Si cc cierta, PC + d => PC Si cc falsa, Dn - 1 => Dn; si Dn distinto - 1, PC + d => PC Si cc cierta 11111111 => Destino si no, 0 => Destino PC + d => PC SP - 4 => SP; PC => ( SP ); PC + d => PC < ea > => PC SP - 4 =>SP; PC => ( SP ); < ea > => PC Operacin

Incondicionales BRA BSR < label > < label > 8, 16 8, 16

JMP JSR

< ea > < ea >

NOP

Retornos

RTR

SP => CCR; SP + 2 => SP; ( SP ) => PC; SP + 4 => SP ( SP ) => PC; SP + 4 => SP

RTS

fig. 4-8 - Instrucciones de control de programa. 4.1.8.- Operaciones de control del sistema. Las operaciones de control del sistema se realizan mediante las instrucciones privilegiadas ( RESET, RTE, STOP, ORI to SR, MOVE USP, ANDI to SR, EORI to SR y MOVE EAA to SR ), las de generacin de traps ( TRAP, TRAPV y CHK ) y aquellas que utilizan o modifican el registro de estado SR ( ANDI CCR, EORI CCR, MOVE CCR to EA, ORI CCR y MOVE SR to EA ). Instruccin Sintaxis de los operandos # < data > , SR # < data > , SR < ea > , SR USP, An An, USP # < data > , SR Tamao Privilegiadas ANDI EORI MOVE MOVE ORI RESET RTE 16 16 16 32 16 Dato inmediato ^ SR =>SR Dato inmediato SR => SR Origen => SR USP => An An => USP Dato inmediato SR => SR Activa la linea RESET ( SP ) => SR; SP + 2 => SP; ( SP ) => PC; SP + 4 => SP; Dato inmediato => SR; Parar Si Dn < 0 Dn > ( < ea > ), entonces excepcin CHK SSP - 4 => SSP; PC => ( SSP ); SSP - 2 => SSP; SR => ( SSP ); Vector trap n < data > => PC Operacin

STOP CHK TRAP

# < data > < ea >, Dn # < data >

16 16 16

Generacin de Traps

TRAPV ANDI EORI MOVE MOVE ORI

# < data > , CCR # < data > , CCR SR, < ea > < ea > , CCR # < data > , CCR

8 8 16 16 8

Si V es 1, proceso de excepcin Dato inmediato ^ CCR => CCR Dato inmediato CCR => CCR SR => Destino Origen => CCR Dato inmediato CCR => CCR

Registro de condiciones

fig. 4-9 - Instrucciones de control del sistema. 4.1.9.- Operaciones multiprocesador. Para trabajar con sistemas multiprocesador se dispone de la instruccin TAS que ejecuta un ciclo de lectura-modificacin-escritura indivisible. Instruccin TAS Sintaxis de los operandos < ea > Tamao 8 Operacin Destino - 0; 1 => Destino

fig. 4-10 - Instrucciones multiprocesador.

4.2.3

Modos de direccionamiento.
MODOS DE DIRECCIONAMIENTO

2.1.-Direccionamiento y Formato de las instrucciones. La codificacin de instrucciones del 68000 contiene dos tipos de datos: la operacin a realizar y la localizacin de los operandos. Esta localizacin de operandos puede hacerse de una de las tres siguientes formas: 'Especificacin de registro'. En la codificacin de la instruccin hay un campo en el que se determina un nmero de registro. 'Direccin efectiva'. Este sistema se ver detalladamente a continuacin. 'Referencia implcita'. Por definicin de la operacin a realizar est implcito el uso de determinados registros. Los 14 modos de direccionamiento se agrupan en seis tipos bsicos: 1.-Direccionamiento directo a registro

* Directo a registro de datos * Directo a registro de direcciones 2.- Direccionamiento absoluto * Absoluto corto * Absoluto largo 3.- Direccionamiento relativo al puntero de programa * Relativo con desplazamiento * Relativo con ndice y desplazamiento 4.-Direccionamiento indirecto * Indirecto * Indirecto con postincremento * Indirecto con predecremento * Indirecto con ndice y desplazamiento 5.- Direccionamiento inmediato * Inmediato * Inmediato rpido 6.- Direccionamiento implcito * Registro implcito

Modos de direccionamiento.

2.2.1- Formato de las instrucciones. La codificacin de instrucciones puede ocupar desde una word hasta cinco. En la primera word se especifica la operacin a realizar y el tamao de los operandos.

Cuando no se utiliza direccionamiento por direccin efectiva, la word de operacin puede llevar tambin la especificacin de registros. En caso de utilizar el mtodo de direccin efectiva se necesitan otras words de extensin que en alguna ocasin pueden ser hasta cuatro. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 word de operacin ( especifica la operacin y el modo ) operando inmediato o extensin de direccin efectiva

de origen ( si es necesario, una o dos words ) direccin efectiva del destino ( si es necesario, una o dos words ) Formato de las instrucciones 2.2.2- Direccin efectiva. La mayora de los direccionamientos en el 68000 se realizan mediante el mtodo de 'direccin efectiva'. Este mtodo consiste en codificar dentro de la word de operacin el tipo de direccionamiento a usar segn la pauta de la siguiente figura.

Codificacin de la direccin efectiva Codificacin: MODO DE DIRECCIONAMIENTO Directo por registro de datos. Directo por registro de direcciones Indirecto por registro de direcciones. idem con postincremento. idem con predecremento. idem con desplazamiento. idem con ndice y desplazamiento. Absoluto corto Absoluto largo PC con desplazamiento PC con indice y desplazamiento Inmediato Notacin Dn An (An) (An)+ -(An) (d16,An) (d8,An,Xm) xxx.W xxx.L (d16,PC) (d8,PC,Xn) 111 #<dato> 111 Direccionamientos por direccin efectiva 100 011 MODO Registro 000 001 010 011 100 101 110 111 111 111 nmero nmero nmero nmero nmero nmero nmero 000 001 010

2.2.3- Modos directos a registro. Estos modos especifican como operando uno de los 16 registros multifuncin del 68000. El tamao a utilizar de los mismos queda especificado en la word de operacin. Considrese como ejemplo la instruccion ADD.W <ea>,D3 que realizar la siguente suma con operandos de tamao word : Dn + <ea> -> Dn.

Que tiene como formato general

La codificacin de esta instruccion a falta de decidir el modo de direccionamiento empleado para el operando fuente ser

donde

bits 15-12 indican el cdigo de operacion para ADD (1101) bits 11-9 indican que el registro de datos D3 es el destino (3 =011) bits 8-6 indican el tamao de operando (001 = WORD) bits 5-3 indicarn el modo de direccionamiento de la fuente bits 2-0 indicaran el registro(caso de ser necesario de la fuente).

2.2.3.1- Directo a registro de datos. sera por ejemplo ADD.W D1,D3 El operando fuente es el registro de datos indicado en el cdigo.

donde modo=000 indica un registro de datos y 001 indica que es D1 2.2.3.2- Directo a registro de direcciones. sera por ejemplo ADD.W A1,D3 El operando fuente es el registro de direcciones indicado en el cdigo.

donde modo=001 indica un registro de direcciones y 001 indica que es A1

2.2.4- Modos de direccionamiento de memoria. Estos modos especifican como operando una posicin de memoria mediante diferentes clculos para obtener la direccin de la misma. 2.2.4.1- Indirecto por registro de direcciones.

sera por ejemplo ADD.W (A0),D3

El operando se encuentra en memoria, en una posicin cuya direccin se corresponde con el contenido del registro An.

donde modo=010 indica indirecto por registro de direcciones y 000 indica que es el registro A0 2.2.4.2- Indirecto con postincremento. sera por ejemplo ADD.W (A0)+,D3 El operando se encuentra en memoria, en una posicin cuya direccin se corresponde con el contenido del registro An. Una vez determinada dicha direccin se incrementa el contenido del registro An en 1, 2 4 en funcin de la longitud de los operandos (byte, word long word respectivamente).

donde modo=011 indica indirecto por registro de direcciones y 000 indica que es el registro A0 NOTA: Si el registro es A7 (stack) y el tamao de la operacin es byte, el postincremento es de dos unidades para mantener el alineamiento en direcciones pares del stack. El byte queda almacenado en la direccin par, dejando sin significado el contenido de la direccin impar inmediatamente siguiente. 2.2.4.3- Indirecto con predecremento. sera por ejemplo ADD.W -(A0),D3 Se comienza por decrementar el contenido del registro An en 1, 2 4 en funcin de la longitud de los operandos (byte, word long word respectivamente). A continuacin se considera que el operando se encuentra en memoria, en una posicin cuya direccin se corresponde con el contenido del registro An.

donde modo=011 indica indirecto por registro de direcciones y 000 indica que es el registro A0 NOTA: Si el registro es A7 (stack) y el tamao de la operacin es byte, el predecremento es de dos unidades para mantener el alineamiento en direcciones paresdel stack. El byte queda almacenado en la direccin impar inmediatamente siguiente. 2.2.4.4- Indirecto con desplazamiento. ADD 4(A0),D3 Al contenido del registro An se le suma un entero de 16 bits previamente extendido a 32, que debe encontrarse en la primera word de extensin (detrs de la word de

operacin). El resultado de dicha operacin es la direccin de memoria que determina el operando. 2.2.4.5- Indirecto con ndice y desplazamiento. El formato de la instruccin sera

donde

Rn es el numero de registro empleado como indice (1) Indica el tipo de registro indice , = registro de datos y 1 registro de direcciones (2) Indica el tamao del registro empleado como indice , 0 = WORD, 1 = LONG, Desplazamietno de 8 bits. ( es un numero en complemento a 2)

Como por ejemplo : ADD 4(A0,D6),D3 Al contenido del registro An se le suma un entero de 8 bits previamente extendido a 32, que debe encontrarse en la primera word de extensin (detrs de la word de operacin). A continuacin, al resultado obtenido se le suma el registro ndice (tambin codificado en la word de extensin). Si el registro ndice est tomado en tamao word, es extendido a 32 bits con anterioridad a la suma. Finalmente el resultado de ambas sumas es la direccin de memoria que determina el operando. La operacin realizada sera la suma siguiente: o tambin puede ser ADD 4(A0,D6.L),D3

2.2.5- Modos especiales de direccionamiento. Estos modos de direccionamiento no se basan en la utilizacin de registros. 2.2.5.1- Direccionamiento absoluto corto. por ejemplo ADD ETIQUETA,D3

donde modo=111 indic modo especial y 000 indica que la direccion especificada en la etiqueta cabe en un WORD. Este modo de direccionamiento se basa en una word de extensin de la que se obtiene la direccin del operando una vez que se le ha extendido el signo hasta 32 bits. Por tanto este direccionamiento se puede utilizar dentro de los 32 kbytes primeros de la memoria (0000-7FFF) y dentro de los 32 kbytes finales (FF8000-FFFFFF). 2.2.5.2- Direccionamiento absoluto largo. por ejemplo ADD ETIQUETA,D3

donde modo=111 indic modo especial y 001 indica que la direccion especificada en la etiqueta cabe en un LONG. Este modo de direccionamiento utiliza dos words de extensin de las que se obtiene la direccin del operando por concatenacin, situando la primera como parte alta de la direccin y la segunda como parte baja. 2.2.5.3- Indirecto por PC con desplazamiento. Al contenido del puntero de programa (program counter) se le suma un entero de 16 bits previamente extendido a 32, que debe encontrarse en la primera word de extensin (detrs de la word de operacin). El resultado de dicha operacin es la direccin de memoria que determina el operando. La direccin que contiene el puntero de programa al tomar su contenido para hacer la suma es la de la word de extensin. 2.2.5.4- Indirecto por PC con ndice. Al contenido del contador de programa (program counter) se le suma un entero de 8 bits previamente extendido a 32, que debe encontrarse en la primera word de extensin (detrs de la word de operacin). A continuacin, al resultado obtenido se le suma el registro ndice (tambin codificado en la word de extensin). Si el registro ndice est tomado en tamao word, es extendido a 32 bits con anterioridad a la suma. Finalmente el resultado de ambas sumas es la direccin de memoria que determina el operando. La direccin que contiene el puntero de programa al tomar su contenido para hacer la suma es la de la word de extensin. El formato de la instruccin tiene la misma estructura que la explicada con anterioridad el el direcionamiento indirecto con ndice y desplazamiento.

2.2.5.5- Dato inmediato. Con este tipo de direccionamiento el operando se encuentra en una o dos words de extensin, dependiendo de la longitud de la operacin. Si la operacin es de byte se utiliza una word de extensin cuyos bits 0-7 son el operando y los 8-15 se ponen a cero. En el caso de una operacin de tamao word se utiliza tambin una sola word y toda ella es el operando. Por ltimo, en el caso de un tamao de operacin long word, el operando se forma por concatenacin de dos words de extensin; la primera es la parte alta (bits 16-31) y la segunda la parte baja (bits 0-15). Por ejemplo ADDI #7,D3 El formato general de esta instruccin es

que en el caso del ejemplo es

Un caso particular es el direecionamiento inmediato rpido ADDQ #7,D3 con el siguiente formato general

que se reduce por tanto a

2.2.6- Direccionamiento implcito. Algunas instrucciones llevan implcito el uso de determinados registros. Estas son las siguientes: Mnemnico BSR CHK DBcc DIVS DIVU Instruccin Salto a subrutina Chequeo de registros entre lmites Test de condicin, decremento y salto Divisin con signo Divisin sin signo Registros afectados PC PC, SP SSP, SR PC SSP, SR SSP, SR

Bcc, BRA Salto condicional e incondicional

JMP JSR LINK

Salto Salto a subrutina Encadena y reserva espacio

PC PC, SP SP SR SR USP SP PC, SP, SR PC, SP, SR PC, SP SSP, SR SSP, SR SP

MOVE CCR Mover los cdigos de condicin MOVE SR Mover el registro de estado MOVE USP Mover el apuntador de pila de usuario PEA RTE RTR RTS TRAP TRAPV UNLK Apilar la direccin efectiva Retorno de una excepcin Retorno restablecido cdigos condicin Retorno de subrutina Trap Trap si hay rebose Desencadenar

http://www.ii.uam.es/~fjgomez/68000/tutorial/cap2.html Modos de direccionamiento sin ningn componente. El modo de direccionamiento sin componente, normalmente llamado direccionamiento inmediato, es una forma particular ya que no tiene componente de direccin. El valor del operando se especifica directamente en la misma instruccin. La importancia del direccionamiento inmediato es obvia debido a la frecuencia con que esta ocurre. La mayora de las constantes en un programa son especificadas usando direccionamiento inmediato lo cual es ventajoso debido a que las constantes suelen ser nmeros pequeos (cero y uno ocurren frecuentemente). Consecuentemente, esto es mas eficiente para especificar las constantes, mejor que la ubicacin de una direccin de memoria. Adems las constantes no necesitan ser cambiadas, porque ellas pueden ser colocadas en la misma instruccin. Hay dos lugares, bsicamente diferentes, en los cuales se almacena el dato inmediato : 1. Dentro de la instruccin bsica: esto es frecuentemente llamado direccionamiento inmediato corto o rpido. Las constantes pueden ser solamente pequeas (debido a que ellas tienen que ajustarse dentro del primer byte o palabra de instruccin), sin embargo ellas usan memoria mas eficientemente. 2. Dentro de extensiones de instrucciones: este mtodo usa constantes con la longitud igual a la longitud de instruccin bsica o un mltiplo de ellas. La longitud del dato inmediato es normalmente especificada dentro de la parte bsica y el dato sigue inmediatamente a esta parte bsica por ello se llama direccionamiento inmediato. Modos de direccionamiento de un componente Estos modos de direccionamiento especifican la direccin efectiva del valor del operando mediante el uso de un nico componente en la operacin especifica. Este componente puede ser un numero de registro o una direccin absoluta de un operando. Ambos componentes pueden ser usados en forma directa o indirecta. Direccionamiento registro-directo. En este modo, se especifica un numero de registro que indica al registro que contiene el valor del operando. Este modo es usado frecuentemente por su eficiencia y velocidad. Ya que son pocos los registros que estn

disponibles (tpicamente 8 o 16), se puede obtener una especificacin compacta del operando, usando 3 o 4 bits. Adems, porque el archivo del registro esta localizado normalmente en un chip, este tiempo de acceso es muy pequeo comparado con el tiempo de acceso a memoria o incluso al cache. Todas las arquitecturas modernas poseen ms de un registro para soportar este modo. En arquitecturas con solo un registro, este es a menudo especificado implcitamente. La arquitectura MC68020 divide su set de registro en dos grupos : uno denominado Registros de datos los cuales estn destinados principalmente para utilizarse como fuente o destino para las operaciones aritmticas y lgicas. Y el otro grupo denominado Registros de direcciones los cuales se utilizan principalmente para especificar direcciones de operandos Direccionamiento absoluto. En este modo de direccionamiento una instruccin esta compuesta por el cdigo de operacin y a continuacin la direccin del operando, directamente especificada en uno o ms byte segn el alcance del campo de direcciones. El direccionamiento absoluto es necesario en muchas arquitecturas para la especificacin de un vector de entrada / salida y direcciones del registro de estado (asumiendo que ellas forman una superposicin lgica con la memoria principal. Direccionamiento indirecto. Este direccionamiento es muy usado cuando las direcciones de las estructuras de datos no son conocidas, hasta que se corra el programa, porque las direcciones deben ser calculadas con instrucciones y almacenadas en un registro, despus de lo cual el operando puede ser recuperado va este registro. Direccionamiento indirecto con modificacin de registro. Son posibles muchas variaciones del modo de direccionamiento registro indirecto bsico. Muchas arquitecturas soportan modos de direccionamiento en los cuales el registro contiene la direccin del operando, la cual es modificada antes o despus de usado. Son entonces posibles 4 modos, dependiendo de la direccin de la modificacin (incremento o decremento) y del tiempo de modificacin (pre o pos modificacin). Modos de direccionamientos de dos componentes. Se pueden combinar dos componentes bsicos para formar un modo de direccionamiento de dos componentes. Generalmente uno de los componentes es denominado Base, mientras que el otro se denomina Desplazamiento, a menudo el desplazamiento es la distancia que hay entre la direccin base y la direccin del operando. La direccin base y el desplazamiento pueden ser fijos (conociendo el tiempo de compilacin) o variables (calculando el tiempo de ejecucin del programa). Direccionamiento indexado. En este modo se especifica la direccin base (fija) en el cdigo de instruccin (comparable al direccionamiento absoluto), as para formar la direccin del operando se suma a la direccin base, el contenido de un registro denominado ndice. Este modo se emplea cuando la direccin base de una estructura de datos, tal como un vector, se conoce en el momento de la compilacin pero la posicin exacta del elemento solo se puede determinar en el momento de la ejecucin. Para acondicionar el tamao del operando de varias longitudes, el indice es a menudo multiplicado por un factor de escala. Si un vector A [0 .. 100] posee datos ocupando 4 byte, el factor de escala es 4, asumiendo una resolucin de direccin de un byte. Dado que la direccin base para el vector A[0..100], cuya direccin de comienzo es 1000, el elemento A[3] puede ser encontrado en la direccin 1000 + 34 = 1012. Tambin existe el modo de indexado indirecto, el cual presenta dos variantes : Preindexado indirecto y Pos-indexado indirecto. En el modo de pre-indexado, el desplazamiento se suma a la direccin base, produciendo una direccin intermedia. Los contenidos de estas direcciones intermedias son luego usados como direcciones de

operandos. En el modo de posindexado, la direccin base es usada como una direccin intermedia. Despus, el desplazamiento se adiciona al contenido de la direccin intermedia para obtener la direccin del operando. Direccionamiento base. , ( ) , , . , . , . Direccionamiento base-indexado. En este modo, tanto la direccin base como el desplazamiento son variables, y estos son calculados en el tiempo de ejecucin. Esto permite el acceso a un elemento arbitrario en una estructura de datos, con la direccin de comienzo que es desconocida al compilar. Direccionamiento relativo al contador de programa. Esta es una clase especial de modo de direccionamiento de dos componentes, la cual usa el contador de programa (PC) como el registro que contiene la direccin base. En este modo se obtiene la direccin efectiva como la suma de un desplazamiento contenido como segundo byte de la instruccin con el contenido del PC. Dado que el valor de la direccin base es variable hay dos modos de direccionamiento posibles : el PC base (llamado generalmente direccionamiento relativo)y el PC base indexado. El uso ms comn del direccionamiento PC relativo es en instrucciones divididas, las cuales son esenciales para la implementacin de estructuras de control en lenguajes de alto nivel. Modos de direccionamiento de multi-componentes. Todos los modos de direccionamiento previamente tratados pueden ser combinados para formar todas los tipos de modos de direccionamiento multi-componentes (algunos muy utilizados)

4.2.4

Lenguaje ensamblador.

Estructura general de un programa en ensamblador.


En una programa escrito en lenguaje ensamblador, adems de las 35 instrucciones que interpreta el procesador tambin se colocan directivas, que son comandos para realizar ciertas operaciones con el programa. A continuacin se comentan las partes que generalmente hay en un programa: 1. Modelo de procesador y sistema de numeracin. Los programas comienzan con la directiva list que referencia el modelo de microcontrolador. Tambin se suele especificar el tipo de numeracin que se emplear con la directiva radix. Lo usual es emplear el sistema hexadecimal, en el que los valores se expresan precedidos de 0x. En los ejemplos que se desarrollarn a lo largo del tema comenzaremos el programa ensamblador con las siguientes directivas (detrs del punto y coma se pueden aadir comentarios): List p=16F84 ;Se utiliza el microcontrolador PIC16F84 Radix hex ; Se usar el sistema hexadecimal

2. Variables. Las posiciones de la memoria de datos se utilizan para guardar operandos y resultados, adems de almacenar registros especiales. Para que al programador le sea ms sencillo confeccionar el programa, en lugar de hacer referencia a las posiciones de la memoria donde se encuentran los datos que va a emplear, a cada una de estas posiciones se le asocia un nombre. La directiva equ relaciona un nombre con la direccin que se asigna, as el programador trabaja con nombres y el compilador traduce automticamente stos a las direcciones correspondientes. Por ejemplo el registro que contiene la informacin de estado se encuentra en la direccin 0x03, el puerto de entrada A en 0x05, etc.. Si queremos emplear nombres de variables para estas direcciones de memoria escribiramos: ESTADO equ 0x03 ;La etiqueta ESTADO est asociada a la direccin 0x03 PUERTAA equ 0x05 ;La etiqueta PUERTAA est asociada a la direccin 0x05 3. Origen del programa. Antes de comenzar a escribir instrucciones mquina debe definirse la direccin de la memoria de programa a partir de la cual se desea comenzar a cargar el programa. Para ello se emplea la directiva org. En los PIC el origen del programa siempre se pone en la direccin 0x00 porque es donde comienza a ejecutarse el programa despus de hacer un reset. Definiremos el origen de la siguiente manera: org 0x00 ;Inicio de programa Cuando el programa maneja interrupciones, no se comienza a cargar el programa desde la direccin 0x00, porque si se genera una interrupcin el programa que la atiende comienza en la direccin 0x04 (vector de interrupcin). En este caso lo que se suele hacer es poner en la direccin 0x00 un salto a una direccin de la memoria de programa posterior al vector de reset, por ejemplo saltaramos a una posicin etiquetada como INICIO que se encuentra en la direccin 0x05. org 0x00 ;La siguiente instruccin estar al inicio de la memoria goto INICIO ;Salta a la direccin etiquetada con INICIO org 0x05 ;La siguiente instruccin estar en la direccin 0x05 INICIO ------------end 4. Cuerpo del programa y final. Tras indicar la direccin donde se comenzar a cargar el programa, sigue el cuerpo del mismo compuesto por las instrucciones mquina y los operandos de stas. El cdigo se estructura en columnas. La primera columna se utiliza para las etiquetas que se emplean para hacer referencia a partes del programa y nos permiten realizar saltos a estas partes (como INICIO en el ejemplo anterior). Las siguientes columnas contienen el campo de instrucciones, el campo de datos y el campo de comentarios. Los comentarios comienzan con ; ). Al final del programa se coloca la directiva end.

3.4.2. Ejemplos de programacin.


Ejemplo 6.1. Sumar el contenido de la posicin de memoria 0Ch (5) con el contenido de la posicin de memoria 0Dh (2) y almacenar el resultado en la posicin de memoria 0Eh. El sumador (ALU) del PIC es capaz de sumar dos datos de 8 bits cada uno, pero debido a su configuracin uno de los sumandos debe proceder del registro de trabajo W (Figura 6-7). El ejemplo maneja tres posiciones de la memoria de datos de propsito general (figura 6-19). En la posicin 0Ch se colocar el primer operando con el valor 5; en la posicin 0Dh el segundo con el valor 2 y el resultado se almacenar en 0Eh. Como se vio en la Figura 6-9 las direcciones 0Ch, 0Dh y 0Eh son las tres primeras posiciones de la memoria de datos RAM (banco 0) que el usuario puede emplear para fines propios. Antes de exponer el cdigo del programa se explican las instrucciones que se van a utilizar:

Instruccin mov Permite transferir el contenido de un registro fuente f a un registro destino d. En los PIC todos los datos residen en posiciones de la memoria de datos a excepcin del registro W. La instruccin mov puede mover tres tipos fundamentales de operandos: 1. El contenido del registro W. 2. El contenido de una posicin de memoria de datos. 3. Un literal o valor. movf f,d : mueve el contenido del operando fuente f (posicin de la memoria de datos) al destino d (puede ser W o la propia fuente).

Programa fuente: El programa fuente esta compuesto por una sucesin de lneas de programa. Cada lnea de programa esta compuesta por 4 campos separados por uno o ms espacios o tabulaciones. Estos campos son: [Etiqueta] Comando [Operando(s)] [;Comentario]

La etiqueta es opcional. El comando puede ser un mnemnico del conjunto de instrucciones. El operando esta asociado al comando, si no hay comando no hay operando, e inclusive algunos comandos no llevan operando. El comentario es opcional para el compilador aunque es buena prctica considerarlo obligatorio para el programador. La etiqueta, es el campo que empieza en la primer posicin de la lnea. No se pueden insertar espacios o tabulaciones antes de la etiqueta sino ser considerado comando. Identifica la lnea de programa haciendo que el compilador le asigne un valor automticamente. Si se trata de una lnea cuyo comando es una instruccin de programa del microcontrolador, se le asigna el valor de la direccin de memoria correspondiente a dicha instruccin (location counter). En otros casos se le asigna un valor de una constante, o la direccin de una variable, o ser el nombre de una macroinstruccin, etc. El comando puede ser un cdigo mnemnico de instruccin del microcontrolador, o una directiva o pseudoinstruccin para el compilador. En el primer caso ser directamente traducido a cdigo de maquina, en el segundo caso ser interpretado por el compilador y realizara alguna accin en tiempo de compilacin como ser asignar un valor a una etiqueta, etc. El campo de parmetros puede contener uno o ms parmetros separados por comas. Los parmetros dependen de la instruccin o directiva. Pueden ser nmeros o literales que representen constantes o direcciones. El campo de comentario debe comenzar con un caracter punto y coma. No necesita tener espacios o tabulaciones separndolo del campo anterior, e incluso puede empezar en la primer posicin de la lnea. El compilador ignora todo el texto que contenga la lnea despus de un caracter punto y coma. De esta manera pueden incluirse lneas que contengan solo comentarios, y es muy buena prctica hacer uso y abuso de esta posibilidad para que los programas resulten autodocumentados. http://www.geocities.com/micros_uan/cap2.html

Conjunto de instrucciones

El conjunto de instrucciones de los microprocesadores PIC 16C5X consiste en un pequeo repertorio de solo 33 instrucciones de 12 bits, que pueden ser agrupadas para su estudio en tres a cinco grupos. En este curso se ha optado por clasificarlas, desde el punto de vista del programador, en cinco categoras bien definidas de acuerdo con la funcin y el tipo de operandos involucrados. En primer lugar se agrupan las instrucciones que operan con bytes y que involucran algn registro de la memoria interna. En segundo lugar se analizaran las instrucciones que operan solo sobre el registro W y que permiten cargarle una constante implcita o incluida literalmente en la instruccin (literales). En tercer lugar se agrupan las instrucciones que operan sobre bits individuales de los registros de la memoria interna. En cuarto lugar se clasifican las instrucciones de control de flujo del programa, es decir las que permiten alterar la secuencia lineal de ejecucin de las instrucciones. Por ltimo se agrupan unas pocas instrucciones que llamaremos especiales, cuyas funciones o tipos de operandos son muy especficos y no encajan en ninguna de las clasificaciones anteriores. Instrucciones de Byte que operan con Registros Estas instrucciones pueden ser de simple o doble operando de origen. El primer operando de origen ser siempre el registro seleccionado en la instruccin, el segundo, en caso de existir, ser el registro W. El destino, es decir donde se guardara el resultado, ser el registro seleccionado o el W, segn se seleccione con un bit de la instruccin. El formato genrico de estas instrucciones es el siguiente : 11 10 9 8 7 6 5 4 0 d f f 3 2 1

Los bits 0 a 4 (5 bits), denominados f permiten seleccionar uno de 32 registros de la memoria interna. El bit 5, denominado d, permite especificar el destino del resultado. Si d = 1 el resultado se guardara en el registro seleccionado. Si d = 0 el resultado se guardara en W. Los bits 6 a 11 identifican la instruccin especifica a realizar. Las instrucciones siguientes son las tres operaciones lgicas de doble operando : ANDWF f,d ;operacin AND lgica, destino = W f IORWF f,d ;operacin OR lgica, destino = W f XORWF f,d ;operacin XOR lgica, destino = W f Los nombres mnemnicos de estas instrucciones provienen de : AND W con F, Inclusive OR W con F y XOR W con F. Las que siguen son las cuatro operaciones aritmticas y lgicas sencillas de simple operando : MOVF f,d ;movimiento de datos, destino = f COMF f,d ;complemento lgico, destino = NOT f INCF f,d ;incremento aritmtico, destino = f + 1 DECF f,d ;decremento aritmtico, destino = f - 1

Los mnemnicos de estas instrucciones provienen de : MOVe File, COMplement File, INCrement File y DECrement File. En las siete instrucciones anteriores el nico bit afectado de la palabra de estado del procesador es el Z, que se pone en 1 si el resultado de la operacin es 00000000, y se pone en 0 si el resultado tiene cualquier otro valor. A continuacin siguen las dos instrucciones de rotacin de bits a travs del CARRY : RLF f,d ;rotacin a la izquierda, destino = f ROT RRF f,d ;rotacin a la derecha, destino = f ROT En estas operaciones (Rotate Left File y Rotate Right File) los bits son desplazados de cada posicin a la siguiente, en sentido derecho o izquierdo. El desplazamiento es cerrado, formando un anillo, con el bit C (CARRY) de la palabra de estado. En estas dos instrucciones, el nico bit afectado de la palabra de estado del procesador es el bit C, que tomar el valor que tenia el bit 7 o el bit 0, segn sea el sentido del desplazamiento. Estas instrucciones son muy tiles para la manipulacin de bits, y adems para realizar operaciones aritmticas, ya que en numeracin binaria, desplazar un nmero a la izquierda es equivalente a multiplicarlo por 2, y hacia la derecha, a dividirlo por 2. La instruccin siguiente realiza el intercambio de posiciones entre los cuatro bits menos significativos y los cuatro ms significativos (nibble bajo y nibble alto). SWAPF f,d ;intercambia nibbles, destino = SWAP f

Esta instruccin (SWAP File) no afecta ninguno de los bits de la palabra de estado del procesador. Esta instruccin es muy til para el manipuleo de nmeros BCD empaquetados, en los que en un solo byte se guardan dos dgitos BCD (uno en cada nibble). Las dos operaciones que siguen son la suma y la resta aritmticas : ADDWF f,d ;suma aritmtica, destino = f + W SUBWF f,d ;resta aritmtica, destino = f - W Estas operaciones (ADD W a F y SUBstract W de F) afectan a los tres bits de estado C, DC y Z. El bit Z se pone en 1 si el resultado de la operacin es 00000000, y se pone en 0 si el resultado tiene cualquier otro valor. La suma se realiza en aritmtica binaria pura sin signo. Si hay un acarreo del bit 7, es decir que el resultado es mayor que 255, el bit C (carry) resulta 1, en caso contrario resulta 0. Si hay un acarreo del bit 3, es decir que la suma de las dos mitades (nibbles) menos significativas (bits 0 a 3) resulta mayor que 15, se pone en 1 el bit DC (digit carry), en caso contrario se pone en 0.

Ejemplos : 1010 0010 1101 0000 + 0100 1111 C DC Z + 0110 1111 C DC Z 1111 0001 0 1 0 0011 1111 1 0 0 La resta se realiza sumando, en binario puro sin signo, el registro f ms el complemento a dos de W (el complemento a 1, o complemento lgico, ms 1) Ejemplos : f W 0100 0100 - 0010 1000 C DC Z 0001 1100 1 0 0 0010 1000 - 0100 0100 C DC Z 1110 0100 0 1 0

equivalente a : f 0100 0100 cmp.2 W + 1101 1000 C DC Z 0001 1100 1 0 0

0010 1000 + 1011 1100 C DC Z 1110 0100 0 1 0

Los bits de estado C y DC toman el valor normal correspondiente a la suma de f con el complemento a 2 de W. De esta manera el significado para la operacin de resta resulta invertido, es decir que C (carry) es 1 si no hubo desborde en la resta, o dicho de otra manera, si el contenido de W es menor que el de f. El bit DC se comporta de manera similar, es decir que DC es 1 si no hubo desborde en la mitad menos significativa, lo que equivale a decir que el nibble bajo del contenido de W es menor que el del registro f. Las instrucciones que siguen son de simple operando, pero son casos especiales ya que el destino es siempre el registro seleccionado : CLRF f ;borrado de contenido, f = 0 MOVWF f ;copia contenido W f, f = W La instruccin CLRF (CLeaR File) afecta solo al bit Z que resulta siempre 0. La instruccin MOVWF (MOVe W a F) no afecta ningn bit de la palabra de estado. Instrucciones de Byte que operan sobre W y Literales Estas instrucciones se refieren todas al registro W, es decir que uno de los operandos de origen y el operando de destino son siempre el registro W. En las instrucciones de este grupo que tienen un segundo operando de origen, este es siempre una constante de programa literalmente incluida en la instruccin, llamada constante literal o simplemente literal. El formato genrico de estas instrucciones es el siguiente :

11 0

10

Los bits 0 a 7 especifican la constante literal de 8 bits que se utilizara en la operacin. Las tres instrucciones que siguen son las operaciones lgicas tradicionales, similares a las que ya vimos anteriormente, pero realizadas entre una constante de programa y el registro W : IORLW k ; operacin OR lgica, W = W k ANDLW k ; operacin AND lgica, W = W k XORLW k ; operacin XOR lgica, W = W k En estas tres instrucciones (Inclusive OR Literal W, AND Literal W y XOR Literal W) el nico bit afectado de la palabra de estado del procesador es el Z, que se pone en 1 si el resultado de la operacin es 00000000, y se pone en 0 si el resultado tiene cualquier otro valor. La instruccin que sigue sirve para cargar una constante de programa en el registro W : MOVLW k ;carga constante en W, W=K

Esta (MOVe Literal W) instruccin no afecta ninguno de los bits de estado del procesador. La instruccin que sigue (CLeaR W) no correspondera incluirla en este grupo, y pertenece en realidad al primero, el de las instrucciones que operan sobre registros, ya que se trata de un caso especial de la instruccin CLRF, con destino W, y f = 0. La incluimos aqu porque como se le ha asignado un mnemnico particular referido especficamente al registro W, creemos que, desde el punto de vista del programador, es ms til verla dentro del grupo de instrucciones referidas a W. CLRW ;borra el contenido de W, W = 0 Al igual que en la instruccin CLRF, el nico bit de estado afectado es el Z que resulta 1. Instrucciones de Bit El formato genrico de estas instrucciones es el siguiente : 11 0 b b b f f f f f 10 9 8 7 6 5 4 3 2 1

Los bits 0 a 4 (5 bits), denominados f, permiten seleccionar uno de 32 registros de la memoria interna. Los bits 5 a 7, denominados b, permiten especificar el numero de bit

(0 a 7) sobre el que se operara. Estas instrucciones operan solamente sobre el bit especificado, el resto de los bits del registro no son alterados. Estas instrucciones no tienen especificacin de destino, ya que el mismo es siempre el registro seleccionado. BCF f,b ;borra el bit b de f ;bit f(b) = 0 BSF f,b ;coloca en uno el bit b de f ;bit f(b) = 1 Estas instrucciones (Bit Clear File y Bit Set File) no afectan ningn bit de la palabra de estado del procesador. Instrucciones de Control GOTO k ;salto a la posicin k (9 bits) del programa Esta es la tpica instruccin de salto incondicional a cualquier posicin de la memoria de programa (que en la mayora de los microprocesadores convencionales se llama JUMP). La constante literal k es la direccin de destino del salto, es decir la nueva direccin de memoria de programa a partir de la cual comenzarn a leerse las instrucciones despus de ejecutar la instruccin GOTO. Esta instruccin simplemente carga la constante k en el registro PC (contador de programa). La nica complicacin de esta instruccin es que la constante k es de solo 9 bits, mientras que el registro PC es de 11 bits, ya que en el 16C57 debe permitir direccionar una memoria de programa de 2 K. Los dos bits faltantes, bit 9 y 10 del PC, son tomados respectivamente de los bits de seleccin de pgina PA0 y PA1 de la palabra de estado. Este comportamiento particular hace que la memoria de programa aparezca como dividida en paginas de 512 posiciones como se vera ms adelante. El programador debe tener en cuenta que antes de ejecutar una instruccin GOTO es posible que haya que programar los bits PA0 y PA1. La que sigue es la instruccin de llamado a subrutina: CALL k ;salto a la subrutina en la posicin k (8 bits) Su comportamiento es muy similar al de la instruccin GOTO, salvo que adems de saltar guarda en el stack la direccin de retorno de la subrutina (para la instruccin RETLW). Esto lo hace simplemente guardando en el stack una copia del PC incrementado, antes de que el mismo sea cargado con la nueva direccin k. La nica diferencia con la instruccin GOTO respecto de la forma en la que se realiza el salto, es que en la instruccin CALL la constante k tiene solo 8 bits en vez de 9. En este caso tambin se utilizan PA0 y PA1 para cargar los bits 9 y 10 del PC, pero adems el bit 8 del PC es cargado siempre con 0. Esto hace que los saltos a subrutina solo puedan realizarse a posiciones que estn en las primeras mitades de las paginas mencionadas. El programador debe tener en cuenta este comportamiento y asegurarse de ubicar las posiciones de inicio de las subrutinas en las primeras mitades de las paginas. La instruccin que aparece a continuacin es la de retorno de subrutina: RETLW k ;retorno de subrutina con constante k, W=k

Esta (RETurn con Literal in W) instruccin produce el retorno de subrutina con una constante literal k en el registro W. La operacin que realiza consiste simplemente en sacar del stack un valor y cargarlo en el PC. Ese valor es el PC incrementado antes de realizar el salto, de la ultima instruccin CALL ejecutada, por lo tanto es la direccin de la instruccin siguiente a dicho CALL.. Dado que el stack es de 11 bits, el valor cargado en el PC es una direccin completa, y por lo tanto se puede retornar a cualquier posicin de la memoria de programa, sin importar como estn los bits de seleccin de pagina. Esta instruccin adems carga siempre una constante literal en el registro W. Ya que esta es la nica instruccin de retorno de subrutina de los PIC16C5X, no hay en estos microprocesadores forma de retornar de una subrutina sin alterar el registro W. Por otro lado, y con una metodologa especial de programacin, un conjunto de sucesivas instrucciones RETLW puede ser usado como una tabla de valores constantes incluida en el programa (Ej. : tablas BCD/7 seg., hexa/ASCII, etc.).

A continuacin se presentan las dos nicas instrucciones de salteo (skip) condicional. Estas instrucciones son los nicos medios para implementar bifurcaciones condicionales en un programa. Son muy generales y muy poderosas ya que permiten al programa tomar decisiones en funcin de cualquier bit de cualquier posicin de la memoria interna de datos, y eso incluye a los registros de perifricos, los puertos de entrada/salida e incluso la palabra de estado del procesador. Estas dos instrucciones reemplazan y superan a todo el conjunto de instrucciones de salto condicional que poseen los microprocesadores sencillos convencionales (salto por cero, por no cero, por carry, etc.). BTFSC f,b BTFSS f,b ;salteo si bit = 0, bit = f(0) saltea ;salteo si bit = 1, bit = f(1) saltea

BTFSC (Bit Test File and Skip if Clear) saltea la prxima instruccin si el bit b del registro f es cero. La instruccin BTFSS (Bit Test File and Skip if Set) saltea si el bit es 1. Estas instrucciones pueden usarse para realizar o no una accin segn sea el estado de un bit, o, en combinacin con GOTO, para realizar una bifurcacin condicional. Ejemplo 1 :

------------------------btfsc flags,run ;s ha arrancado el reloj incf tiempo ;incremento contador de tiempo -------------------------

Ejemplo 2 :

------------------------movf tiempo,w ;testeo por tiempo = 60 xorlw 60 btfss STATUS,Z goto acc_2 ;salto si tiempo <> 60 - - - - - - - - - - - - - ;accin 1 ------------------------goto acc_fin acc_2 - - - - - - - - - - - - - ;accin 2 ------------------------acc_fin ;ac se unen los caminos

Las instrucciones que siguen son casos especiales de las de incremento y decremento vistas anteriormente. Estas instrucciones podran categorizarse dentro del grupo de instrucciones orientadas a byte sobre registros (primer grupo), ya que efectivamente operan sobre los mismos, y el formato del cdigo de la instruccin responde al de ese grupo, pero, a diferencia de las otras, pueden adems alterar el flujo lineal del programa y por eso se les incluy en este grupo. DECFSZ f,d ;decrementa y saltea s 0, destino= f - 1, = 0 saltea INCFSZ f,d ;incrementa y saltea s 0, destino= f + 1, = 0 saltea Estas dos instrucciones (DECrement File and Skip if Zero, e INCrement File and Skip if Zero) se comportan de manera similar a DECF e INCF, salvo que no afectan a ningn bit de la palabra de estado. Una vez realizado el incremento o decremento, si el resultado es 00000000, el microprocesador salteara la prxima instruccin del programa. Estas instrucciones se utilizan generalmente en combinacin con una instruccin de salto (GOTO), para el diseo de ciclos o lazos (loops) de instrucciones que deben repetirse una cantidad determinada de veces. Ejemplo: clrf 10 ;pongo cero en la posicin 10 de la memoria interna loop ;lo que sigue se ejecutar 256 veces ..................................... ..................................... ..................................... ;incremento la posicin 10 hasta que llegue a 0 ;si no llego a cero voy a repetir la secuencia ;cuando llegue a cero salteo el goto ..................................... ;y sigue la continuacin del programa ..................................... ..................................... Instrucciones Especiales incfsz 10,1 goto loop

En este grupo se reunieron las instrucciones que controlan funciones especficas del microprocesador o que actan sobre registros especiales no direccionados como memoria interna normal. La instruccin que sigue es la tpica NO OPERATION, existente en casi todos los microprocesadores. NOP ;no hace nada, consume tiempo

Esta instruccin solo sirve para introducir una demora en el programa, equivalente al tiempo de ejecucin de una instruccin. No afecta ningn bit de la palabra de estado. La siguiente es una instruccin especifica de control de los puertos de entrada/salida. TRIS f ;carga el tristate control, TRISf = W Esta instruccin (TRIState) carga el registro de control de los buffers tristate de un puerto de entrada salida (data direccin register), con el valor contenido en W. El parmetro f debe ser la direccin de memoria interna del puerto, aunque el valor W no ser cargado en el puerto sino en el registro de tristate del mismo. Los valores validos para f son 4 y 5 en los 16C54/56 y 4, 5 y 6 en los 16C55/57. Esta instruccin no afecta ningn bit de la palabra de estado. La siguiente instruccin sirve para programar el registro OPTION que controla el RTCC y prescaler OPTION ;carga el registro OPTION, OPTION = W El registro OPTION no es accesible como memoria interna y solo se lo puede programar con esta instruccin. Esta instruccin no afecta ningn bit de la palabra de estado. La instruccin que sigue borra el contador del watch dog timer. Este registro tampoco esta accesible como memoria, y esta es la nica instruccin que lo modifica. CLRWDT ;borra el watch dog timer, WDT = 0 Esta instruccin, adems, coloca en uno los bits PD (power down) y TO (time-out) de la palabra de estado. La siguiente es una instruccin especial de control del microcontrolador que lo pone en el modo power down. En este modo el microprocesador se detiene, el oscilador se apaga, los registros y puertos conservan su estado, y el consumo se reduce al mnimo. La nica forma de salir de este estado es por medio de un reset o por time-out del watch dog timer. SLEEP ;coloca el C en modo sleep, WDT = 0 Esta instruccin, adems, borra el bit PD (power down) y setea el bit TO (time-out) de la palabra de estado.

Resumen de instrucciones (clasificacin segn el fabricante en tres grupos): Instrucciones orientadas a byte:

Instrucciones orientadas a bit:

Instrucciones orientadas a literal y control:

En esta tabla de resumen del conjunto de instrucciones se pueden observar los mnemnicos, la explicacin, el nmero de ciclos, el cdigo de mquina y los bits afectados del registro STATUS para cada una de las instrucciones. http://www.geocities.com/micros_uan/cap21.html

Modos de direccionamiento

Direccionamiento de la memoria de datos (RAM) La memoria interna se direcciona en forma directa por medio de los 5 bits f contenidos en las instrucciones que operan sobre registros. De esta manera se puede direccionar cualquier posicin desde la 00 a la 1F. Como se vi en el captulo correspondiente a los mapas de memoria, las direcciones 10 a 1F corresponden a los bancos de registros, por lo tanto, en los microcontroladores que tengan ms de un banco, antes de acceder a alguna variable que se encuentre en esta zona, el programador deber asegurarse de haber programado los bits de seleccin de banco en el registro FSR. Los registros especiales y de uso general de la posicin 00 a la 0f estn presentes en todos los PIC16C5X, al igual que el banco 0 de registros. Los bancos 1, 2 y 3 de registros estn presentes solo en el 16C57. El registro FSR, adems de servir para seleccionar el banco activo, sirve como puntero para direccionamiento indirecto. La posicin 00 del mapa de RAM es la llamada direccin indirecta. S en cualquier instruccin se opera con la direccin 00, en realidad se estar operando con la direccin a donde apunte el contenido del FSR. Por ejemplo si el FSR contiene el valor 14, una instruccin que opere sobre la direccin 0, operara en realidad sobre la direccin 14. Se puede decir en este ejemplo que la posicin 14 de memoria fue direccionada en forma indirecta a travs del puntero FSR. Ejemplo : ; Esta porcin de programa borra 5 posiciones de memoria a partir de la direccin 12 FSR equ 04 ..................................... ..................................... movlw movwf movlw movwf loop: clrf 0 ;borra una posicin de memoria incf FSR ;apunta a la siguiente decfsz 08 ;si todava no borra todas goto loop ;sige borrando ..................................... ..................................... El direccionamiento indirecto es muy til para el procesamiento de posiciones consecutivas de memoria, como en el ejemplo, o para el direccionamiento de datos en subrutinas. Direccionamiento de la memoria de programa (EPROM, OTP) La instruccin GOTO dispone solo de 9 bits en el cdigo de operacin para especificar la direccin de destino del salto. Al ejecutar una instruccin GOTO el microprocesador toma los dos bits que restan para completar la direccin de 11 bits, de los bits 5 y 6 de la palabra de estado. Estos ltimos son llamados bits de seleccin de pgina (PA0 y PA1). 5 08 12h FSR ; ;(definicin al comienzo del programa)

;prepara para repetir 5 veces ;(el registro 08 es el contador del loop) ;apunta a la direccin 12h

El programador deber asegurarse de que estos dos bits tengan el valor correcto antes de toda instruccin GOTO. Ver figura 2.2.1

FIG 2.2.1 Direccionamiento directo con instruccin GOTO Deber tenerse en cuenta adems que es posible avanzar de una pgina a otra en forma automtica cuando el PC se incrementa. Esto ocurre si el programa empieza en una pgina y sigue en la siguiente. Sin embargo, al incrementarse el PC desde la ltima posicin de una pgina a la primera de la siguiente, los bits PA0 y PA1 no se modifican, y por lo tanto s se ejecuta una instruccin GOTO, CALL o alguna que acte sobre el PC, esta producir un salto a la pgina anterior, a menos que el programador tenga la precaucin de actualizar el valor de dichos bits. Por este motivo es conveniente dividir el programa en mdulos o rutinas que estn confinados a una pgina. En el caso de la instruccin CALL, el direccionamiento se complica un poco ms, ya que la misma solo dispone de 8 bits para especificar la direccin de destino salto. En este caso tambin se utilizan los mismos bits de seleccin de pgina para completar los bits dcimo y decimoprimero de la direccin, pero falta el noveno bit. En estas instrucciones este bit se carga siempre con 0, lo que implica que solo se pueden realizar saltos a subrutina a las mitades inferiores de cada pgina. En este caso tambin el programador deber asegurarse que el estado de los bits PA0 y PA1 sea el correcto al momento de ejecutarse la instruccin. Ver figura 2.2.2

FIG. 2.2.2 Direccionamiento directo con instruccin CALL Las instrucciones que operan sobre el PC como registro y alteran su contenido provocando un salto, responden a un mecanismo muy similar al de las instrucciones CALL para la formacin de la direccin de destino. En este caso los bits 0 a 7 son el resultado de la instruccin, el bit 8 es 0 y los bits restantes se toman de PA0 y PA1. Este mecanismo se llama paginado, y a pesar de que representa una complicacin bastante molesta para el programador, resulta muy til ya que permite ampliar la capacidad de direccionamiento de memoria de programa para las instrucciones de salto. http://www.geocities.com/micros_uan/cap22.html

Herramientas de desarrollo
UNA MIRADA RAPIDA AL MPLAB

Qu es el MPLAB ? EL MPLAB es un Entorno de Desarrollo Integrado (Integrated Development Environment, IDE) que corre en Windows , mediante el cual Usted puede desarrollar aplicaciones para los microcontroladores de las familias PIC 16/17. EL MPLAB le permite a Usted escribir, depurar y optimizar los programas (firmware) de sus diseos con PIC 16/17. EL MPLAB incluye un editor de texto, un simulador y un organizador de proyectos. Adems, el MPLAB soporta el emulador PICMASTER y a otras herramientas de desarrollo de Microchip como el PICSTART - Plus. De que forma le ayuda el MPLAB ? Con el MPLAB Usted puede:

Depurar sus programas fuente. Detectar errores automticamente en sus programas fuente para editarlos. Depurar los programas utilizando puntos de corte (breakpoints) mediante valores de los registros internos. Observar el flujo del programa con el simulador MPLAB -SIM, seguirlo en tiempo real utilizando el emulador PICMASTER. Realizar medidas de tiempo utilizando un cronmetro. Mirar variables en las ventanas de observacin. Encontrar respuestas rpidas a sus preguntas, utilizando la Ayuda en lnea del MPLAB.

LAS HERRAMIENTAS DEL MPLAB El Organizador de Proyectos (Proyect Manager). El organizador de proyectos (Proyect Manager) es parte fundamental de MPLAB. Sin crear un proyecto Usted no puede realizar depuracin simblica. Con el Organizador de Proyectos (Proyect manager) puede utilizar las siguientes operaciones:

Crear un proyecto. Agregar un archivo de programa fuente de proyecto. Ensamblar o compilar programas fuente. Editar programas fuente. Reconstruir todos los archivos fuente, o compilar un solo archivo. Depurar su programa fuente.

Software ensamblador: El software ensamblador que presenta Microchip viene en dos presentaciones, una, para entorno DOS llamado MPASM.EXE y la otra, para entorno Windows llamado MPASMWIN.EXE Las dos presentaciones soportan a TODOS los microcontroladores de la familia PIC de Microchip.

El conjunto de instrucciones de los microcontroladores PIC es en esencia la base del lenguaje ensamblador soportado por este software. Directivas de uso frecuente: Son instrucciones para el compilador. #DEFINE ej. #define <nombre> [<valor a remplazar>] explicacin: declara una cadena de texto como substituto de otra END ej. end explicacin: indica fin de programa EQU ej. status equ 05 explicacin: define una constante de ensamble INCLUDE ej. include <PIC16F84.h> explicacin: incluye en el programa un archivo con cdigo fuente ORG ej. org 0x100 explicacin: ensambla a partir de la direccin especificada Para informacin ms completa referirse a la gua rpida del MPASM. Una vez instalado adecuadamente el MPLAB, para realizar la simulacin de un programa deben seguirse los siguientes pasos: Edite en un archivo de texto el siguiente programa: ;ejemplo: status equ 0x03 ;hace equivalencia entre el smbolo status indicndolo como 3 en hexadecimal Cont equ 0x20 F equ 1 org 0 ;indica posicin de memoria desde donde se ensambla Inicio movlw 0x0F ;carga de w con el valor constante 15 (literal) movwf Cont ;el contenido de w se pasa al reg. CONT Loop decfsz Cont,F ;decremento de Cont y elude siguiente si=0 goto Loop ;salto incondicional a Loop goto $ ;Salto incondicional aqui mismo end ;Fin del cdigo

Lista de pasos: 1. Haga doble click en el cono correspondiente a MPLAB. 2. Crear el archivo fuente correspondiente (men File...New Source). 3. Salve el archivo (con extensin .ASM) una vez terminada su edicin (men FILE...Save). 4. Debe a continuacin crearse un nuevo proyecto (men Project...New Project). 5. Cuando aparezca la ventana de New Project editar las cajas de texto: Project path and Name y Development Mode, hacer click en <OK>. 6. En la siguiente ventana Edit Project, hacer click en la seccin Non-project files sobre el nombre del archivo fuente realizado en los pasos 2 y 3. 7. Haga click en el botn <=add y luego de que ste aparezca en la seccin Project Files haga click sobre el botn <OK>. 8. Salvar el proyecto (en el men Project...Save project). 9. Realizar la "construccin de todo el proyecto" (men Project...Build All). 10. En esta etapa se realiza en forma automtica el ensamble de nuestro programa fuente y el vaciado de ste en memoria de simulacin. El proceso de ensamble generar un archivo de errores en caso de que estos existan, s es as deben corregirse directamente sobre el archivo fuente, salvar las correcciones y reconstruir el proyecto (men Project...Build All). <<<En esta etapa del proceso ya se tiene el entorno listo para la simulacin>>> Vista tpica del entorno MPLAB

Como en la mayora de las aplicaciones Windows la pantalla se divide en varias secciones: 1. Barra de ttulo: Se observa el nombre del proyecto 2. Barra de menus: Acceso a las diferentes opciones del entorno 3. Barra de herramientas: Cada cono ejecuta las acciones correspondientes 4. Barra de estados: Indica el estado del entorno y sus ventanas

Simulacin: 1. Resetear el procesador (men Debug...Run...Reset) con F6 con el cono correspondiente en la barra de herramientas. 2. Crear una nueva ventana donde se incluyan las variables que queremos tener en cuenta (Window...New Watch Window) 3. Empezar a correr paso a paso el programa haciendo el seguimiento detallado de todos y cada uno de los pasos (men Debug...Run...Step) con la tecla F7 con el cono correspondiente en la barra de herramientas. El proceso de simulacin nos permite detectar y corregir problemas de lgica, problemas de situaciones que no hayamos tenido en cuenta que son errores que no pueden ser detectados en el momento del ensamble del programa. Nota: El programa MPLAB puede obtenerse en forma gratuita de la direccin: http://www.microchip.com/10/Tools/mTools/MPLAB/index.htm http://www.geocities.com/micros_uan/cap23.html

Importancia del lenguaje ensamblador La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sera que los programas en ensamblador ocupan menos espacio en memoria. 2. Ventajas y desventajas del Lenguaje Ensamblador Ventajas 1. Velocidad .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el mas cercano a la mquina la computadora lo procesa mas rpido. 2. Eficiencia de tamao .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan libreras y dems como son los lenguajes de alto nivel 3. Flexibilidad .- Es flexible porque todo lo que puede hacerse con una mquina, puede hacerse en el lenguaje ensamblador de esta mquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al mximo los recursos de la mquina. O sea que en lenguaje ensamblador se pueden hacer tareas especificas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permiten

Desventajas Tiempo de programacin .- Como es un lenguaje de bajo nivel requiere ms instrucciones para realizar el mismo proceso, en comparacin con un lenguaje de alto nivel. Por otro lado, requiere de ms cuidado por parte del programador, pues es propenso a que los errores de lgica se reflejen ms fuertemente en la ejecucin. Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos ms instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores. Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la maquina, programar en este lenguaje lo ms comn que pueda pasar es que la mquina se bloquee o se reinicialize. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones invlidas, que normalmente no aparecen al usar un lenguaje de alto nivel. Falta de portabilidad.- Porque para cada mquina existe un lenguaje ensamblador; por ello, evidentemente no es una seleccin apropiada de lenguaje cuando deseamos codificar en una mquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras. 3. Relacin del lenguaje ensamblador con los componentes internos del procesador En la memoria se almacena la informacin en celdas especiales llamados registros los cuales tienen un nivel alto y un nivel bajo. Unidad aritmtica y lgica es la responsable de realizar como su nombre lo indica operaciones aritmticas y lgicas. Unidad de control Se encarga de coordinar de que los otros componentes ejecuten las operaciones correctamente. Bus interno son los canales por donde pasa la informacin que la mquina va a procesar (bus de entrada) o procesada (bus de salida). Registros de uso general AX = Registro acumulador, dividido en AH y AL (8 bits cada uno).- Interviene en las operaciones aritmticas y lgicas, despus de la operacin arroja un resultado. BX = Registro base, dividido en BH y BL.- Se utiliza en transferencias de datos entre la memoria y el procesador. CX = Registro contador, dividido en CH y CL.- Se utiliza como contador en bucles(LOOP), en operaciones con cadenas(REP), y en desplazamientos(CL). DX = Registro de datos, dividido en DH y DL.- Se utiliza en operaciones de multiplicacin y divisin junto con Ax y en operaciones de entrada y salida de puertos, su mitad inferior DL contiene el nmero de puertos. Registros de Estado Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits ms significativos estn indefinidos, mientras que hay tres bits con valores determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno.

CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) o "prstamo" (en caso de resta). Este indicador es usado por instrucciones que suman o restan nmeros que ocupan varios bytes. Las instrucciones de rotacin pueden aislar un bit de la memoria o de un registro ponindolo en el CF. PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un nmero par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones. AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "prstamo" del nibble (cuatro bits) menos significativo al nibble ms significativo. Este indicador se usa con las instrucciones de ajuste decimal. ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operacin es cero. SF (Sign Flag, bit 7): Refleja el bit ms significativo del resultado. Como los nmeros negativos se representan en la notacin de complemento a dos, este bit representa el signo: 0 si es positivo, 1 si es negativo. TF (Trap Flag, bit 8): Si vale 1, el procesador est en modo paso a paso. En este modo, la CPU automticamente genera una interrupcin interna despus de cada instruccin, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instruccin por instruccin. IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupcin externas. Si vale 0, no se reconocen tales interrupciones DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirn "auto-decremento", esto es, se procesarn las cadenas desde las direcciones ms altas de memoria hacia las ms bajas. Si vale 0, habr "auto-incremento", lo que quiere decir que las cadenas se procesarn de "izquierda a derecha". OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operacin aritmtica con signo, esto es, un dgito significativo se perdi debido a que tamao del resultado es mayor que el tamao del destino. Relacin entre el cdigo binario y el lenguaje ensamblador En el cdigo binario se utilizan ceros y unos, mientras que el lenguaje ensamblador es una coleccin de smbolos mnemnicos que representan: operaciones, nombres simblicos, operadores y smbolos especiales. La relacin entre estos dos lenguajes sera que el binario es el lenguaje que la mquina entiende y el ensamblador se acerca mas lenguaje de esta. 4. Manejo de la memoria: Direccionamiento (interno y externo) El manejo de la memoria depende de que procesador tenga la mquina, entre los cuales a continuacin se mencionan los siguientes: Memoria de Programa Memoria Externa de Datos Memoria Interna de Datos Registros de Funciones Especiales Memoria de Bit. El espacio de la Memoria de Programa contiene todas las instrucciones, datos, tablas y cadenas de caracteres (strings) usadas en los programas. Esta memoria se direcciona principalmente usando el registro de 16 bits llamado

Data Pointer. El tamao mximo de la Memoria de Programa es de 64 Kbytes. La Memoria Externa de Datos contiene todas las variables y estructuras de datos que no caben en la memoria interna del Microprocesador. Esta memoria se direcciona principalmente por el registro de 16 bits Data Pointer , aunque tambin se puede direccionar un banco de Memoria Externa de Datos de 256 bytes usando los dos primeros registros de propsito general . El espacio de Memoria Interna de Datos funcionalmente es la memoria de datos ms importante, ya que ah es donde residen cuatro bancos de registros de propsito general; la pila o stack del programa; 128 bits de los 256 bits de un rea de memoria direccionable por bit y todas las variables y estructuras de datos operadas directamente por el programa. El tamao mximo de la Memoria Interna de Datos es de 256 bytes. Contiene un espacio para los denominados Registros de Funciones Especiales destinado para los puertos de entrada/salida, temporizadores y puerto serie del circuito integrado. Estos registros incluyen al Stack Pointer; al registro de la palabra de estado del programa y al Acumulador. La cantidad mxima de Registros de Funciones Especiales es 128. Todos los Registros de Funciones Especiales tienen direcciones mayores a 127 y se ubican en los 128 bytes superiores de la Memoria Interna de Datos. Estas dos reas de la Memoria Interna de Datos se diferencian por el modo de direccionamiento usado para accesarlas. Los Registros de Funciones Especiales solo se pueden accesar usando el modo de direccionamiento Directo, mientras que los 128 bytes superiores solo se pueden accesar con el modo de direccionamiento Indirecto. Por otra parte, el espacio de Memoria de Bit se usa para almacenar variables y banderas de un bit. El tamao mximo de la Memoria de Bit es de 256 bits, 128 de los bits comparten su espacio con 16 bytes del espacio de la Memoria Interna de Datos y los otros 128 bits lo hacen con los Registros de Funciones Especiales. http://www.monografias.com/trabajos14/lenguensambla/lenguensambla.s html

4.3

Aplicaciones. 4.3.1 Como sistema independiente. 4.3.2 Como subsistema de una computadora.

También podría gustarte