Está en la página 1de 25

COMPONENTES DEL MICROPROCESADOR Un microprocesador es un circuito donde se encuentran integrados una serie de bloques que le permiten realizar las

funciones para las que ha sido fabricado. Los bloques fundamentales son: Unidad de control (Control Unit) Unidad aritmtico lgica Registros internos. Buses internos. Interrupciones. El funcionamiento bsico de un microprocesador consiste en leer y ejecutar paso a paso todas y cada una de las rdenes programadas por el diseador del sistema. El proceso de funcionamiento es el siguiente: 1. - El microprocesador, al iniciarse, como todos los sistemas secuenciales, se inicializar en una posicin de memoria definida, desde donde empieza el proceso. 2. - El sistema lee el dato que hay en esa posicin y lo enva a la unidad de control. 3. - La unidad de control decodifica la instruccin y la ejecuta dando las seales adecuadas. 4. - Se incrementa el contador de programa (registro interno que se encarga de indicar a qu posicin de memoria hay que ir). 5. - Y se vuelve a repetir desde el punto 2 y as sucesivamente hasta que una seal exterior interrumpa el proceso. Unidad de control (Control Unit) Se podra decir que es el cerebro del microprocesador, ya que genera todas las seales tanto de control interno como externo. A l le llegan unos cdigos (una combinacin de bits) que son decodificados y ejecutados. Estos cdigos, en general, pueden ser instrucciones de los siguientes tipos: 1. - La realizacin de una operacin aritmtico-lgica. En este caso adems de la instruccin, hay que indicar al sistema dnde se encuentran los datos a operar. 2. - Cargar o leer datos. Esto puede servir para leer datos como temperatura, posicin de una pieza, etc. O bien accionar un motor, visualizar datos a travs de led o visualizadores, etc. 3. - Saltos o interrupciones. Mediante este tipo de instrucciones, el microprocesador hace que el programa siga en otra zona de memoria o que realice lo que se llama una subrutina. La subrutina no es ms que un programa con una funcin especifica y que se ejecuta desde varias posiciones. Cuando termina de ejecutarse la subrutina, el microprocesador regresa a la posicin siguiente a la que estaba cuando se produjo la interrupcin. Registros internos. Dentro del microprocesador hay una serie de memorias que, al estar internas, ste maneja de forma especial. Estas posiciones de memoria interna llamadas registros, pueden tener una utilidad general o una utilidad especfica. Los registros ms generalizados son:

1. - Registros de datos. Son los utilizados para las operaciones aritmtico-lgicas, manipulacin de datos, etc. 2. - Registros de direcciones. Son aquellos que el microprocesador utiliza para acceder a una posicin del mapa de memoria. Hay fundamentalmente tres: A.- Contador de programa, es el registro que normalmente se utiliza para leer o escribir datos del programa. B.- Puntero de pila, es el registro que el microprocesador utiliza para guardar y recuperar datos de uso fundamentalmente interno. El registro define la posicin de memoria donde se encuentra dichos datos. C.- Registros ndices, son utilizados para acceder a posiciones de memoria de forma relativa. 3. - Registro de estado, es un registro en el cual cada bits da una informacin especifica como puede ser que la ltima operacin a dado resultado positivo, negativo, ha sido cero. Etc. Buses internos. Al igual que para direccionar memorias y leer datos, es necesario que se organicen buses, internamente tambin son necesarios para acceder a las diferentes partes del circuito. Vectores. Cuando en un sistema de microprocesador se da una direccin de memoria, es necesario hacerlo en varias posiciones de memoria. Estas son funcin del nmero de lneas que posea el bus de datos y el de direcciones. En el caso del microprocesador R6502, el bus de direcciones lo forman 16 lneas y el de datos 8. Por tanto, para tener una direccin en memoria, es necesario escribirla en dos posiciones consecutivas. Se dice que en estas posiciones tenemos un vector (direccin). El R6502 forma un vector colocando en primer lugar el byte de menor peso y a continuacin el de mayor peso. Si en la posicin 2102 y 2103 hay un vector, la direccin resultante ser 5234. Interrupciones. Todos los microprocesadores disponen de unas entradas especiales para interrumpir la secuencia de programa y realizar un programa especial. Estas lneas se utilizan solo para casos especiales. Microprocesador 6502. Bloques internos Dentro de la amplia gama de microprocesadores que hay en el mercado, se va a analizar el R6502; aunque es un modelo antiguo cumple los objetivos de este libro. 1. - la unidad de control con sus circuitos asociados: bloque de interrupciones, control de tiempos y el registro P. a.- Las interrupciones son tres: - Entrada de inicializacin (/R/E/S), se activa cuando le llega un nivel bajo (0) bloqueando el funcionamiento del microprocesador hasta que esta seal no cambia hacia un nivel alto. En ese instante el microprocesador lee los datos que hay en las direcciones FFFC h y FFFD h (vector de reset), los carga en el contador de programa (PCL y PCH respectivamente) y empieza a funcionar leyendo el cdigo de operacin que hay en esa direccin. - /I/R/Q. Es una interrupcin enmascarable, es decir, se puede programar para que la atienda o para que no lo haga segn le interese al programador. Se activa al

recibir un nivel bajo; en ese momento termina de realizar la instruccin que estuviera realizando y seguidamente interrumpe la secuencia del programa para realizar una subrutina. La direccin de esta subrutina est en las direcciones FFFE h y FFFF h. Una vez realizada la subrutina, el microprocesador contina realizando el programa en el mismo punto en que lo dej. - /N/M/I. Es una interrupcin no enmascarable (la atiende siempre); realiza una funcin similar a la de la /I/R/Q. La direccin de la subrutina est en las direcciones FFFA h y FFFB h. b.- El registro de estado est compuesto por ocho bits, donde cada uno acta indicando si se cumple o no una condicin. 2. - Registros. Como se aprecia tiene los siguientes registros: a.- Registros ndice X e Y. Los utiliza para acceder a unas posiciones de memoria de forma que el contenido de estos registros, normalmente, hay que sumarlos con otro dato y ello nos da la direccin final. b.- Puntero de pila S. Es utilizado para el manejo de una zona de memoria como pila, donde el microprocesador guarda y recoge datos temporales necesarios para su funcionamiento. En el R6502, esta zona es la comprendida entre el 0100 h y el 01FF h (pgina uno). c.- Registro A o acumulador. Es un registro de datos, lo utiliza para transferir o recibir datos y para casi todas las operaciones con la unidad aritmtico-lgica. d.- Los registro del contador de programa PCL y PCH. Son dos porque los registros son de 8 Bits y se necesitan 16 bits para direccionar toda la memoria. 3 - Unidad aritmtico-lgica (ALU). Realiza las siguientes operaciones: suma, resta, incremento, decremento, giro y rotaciones. ARQUITECTURA BSICA. R6502. Buses. Una de las caractersticas de los microprocesadores, es que los datos, direcciones y otras lneas de control pueden ser compartidas por diferentes circuitos, por lo que hay que organizarlos como buses. En un sistema de microprocesadores hay tres buses: 1. - Bus de direcciones. Por el se selecciona la posicin de memoria o el dispositivo al que se va a escribir o leer los datos. La dimensin o nmero de lneas que lo componen, depende del microprocesador que utilicemos. 2. - Bus de datos. Es el conjunto de lneas por donde se transmiten los datos. A los microprocesadores se les suele dividir en funcin del nmero de bits que forman el dato. Inicialmente eran de 4 bits; despus se fueron fabricando circuitos con mayor capacidad como los de 8, 16, 32 y 64 bits. Esta evolucin ha sido forzada por la informtica, que cada vez necesita unas prestaciones mayores. Industrialmente se siguen utilizando los de 8 y 16 bits. 3. - Bus de Control. Adems de datos y direcciones, hay otras lneas que sirve para controlar el sistema. Una de esas lneas es la de reset (inicializacin del microprocesador) Arquitectura bsica del microprocesador.

En un sistema con microprocesador existen fundamentalmente los siguientes componentes: Memoria ROM. Contiene el programa de control del sistema, dependiendo del microprocesador que se use; puede estar en cualquier lugar del mapa de memoria o en una zona determinada. Por ejemplo, en el R6502, una ROM debe de ocupar la parte alta, ya que es all donde se encuentran los vectores de reset e interrupciones (FFFA h, FFFB h, FFFC h, FFFD h, FFFE h Y FFFF h). Memoria RAM. Memoria donde el sistema puede contener datos o el programa. Dependiendo del microprocesador que utilicemos puede utilizar una o varias zonas del mapa de memoria. El R6502, debe de tener memoria RAM al menos en la pgina uno (0100 h a 01FF h), ya que esa zona la utiliza el registro S necesaria y obligatoriamente para guardar datos. Circuitos de entrada-salida (I/O devices). Circuitos que permiten la comunicacin entre el microprocesador y el exterior. Aqu se pueden incluir visualizadores, teclados, convertidores analgico-digital (A/D) o digital-analgico (D/A), etc. Adems de estos elementos fundamentales en cualquier sistema, debe de haber el circuito oscilador, que es el que va sincronizando el funcionamiento del sistema y el circuito de inicializacin, que activar una de las lneas de control (entrada de inicializacin del microprocesador). ARQUITECTURA CISC La tecnologa CISC (Complex Instruction Set Computer) naci de la mano de Intel, creador en 1971 del primer microchip que permitira el nacimiento de la informtica personal. Ms concretamente, sera en 1972 cuando aparecera el 8080, primer chip capaz de procesar 8 bits, suficiente para representar nmeros y letras. Con la posibilidad de colocar todos los circuitos en un solo chip y la capacidad de manejar nmero y letras nacera la cuarta generacin de ordenadores, la de los conocidos como PC u ordenadores personales. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que en la actualidad la mayora de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples, llamadas generalmente microinstrucciones. La microprogramacin es una caracterstica importante y esencial de casi todas las arqutecturas CISC. La microprogramacin significa que cada instruccin de mquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj, al menos uno por microinstruccin. Es as entonces como los chips CISC utilizan comandos que incorporan una gran diversidad de pequeas instrucciones para realizar una nica operacin. Cuando el sistema operativo o una aplicacin requiere de una de estas acciones, enva al procesador el nombre del comando para realizarla junto con el resto de informacin complementaria que se necesite. Pero cada uno de estos comandos

de la ROM del CISC varan de tamao y, por lo tanto, el chip debe en primer lugar verificar cuanto espacio requiere el comando para ejecutarse y poder as reservrselo en la memoria interna. Adems, el procesador debe determinar la forma correcta de cargar y almacenar el comando, procesos ambos que ralentizan el rendimiento del sistema. El procesador enva entonces el comando solicitado a una unidad que lo descodifica en instrucciones ms pequeas que podrn ser ejecutadas por un nanoprocesador, una especie de procesador dentro del procesador. Y al no ser las instrucciones independientes, pues son instrucciones menores procedentes de la descodificacin de una instruccin mayor, slo puede realizarse una instruccin cada vez. A travs de la compleja circuitera del chip, el nanoprocesador ejecuta cada una de las instrucciones del comando. El desplazamiento por esta circuitera tambin ralentiza el proceso. Para realizar una sola instruccin un chip CISC requiere de cuatro a diez ciclos de reloj. Entre las bondades de CISC destacan las siguientes: Reduce la dificultad de crear compiladores. Permite reducir el costo total del sistema. Reduce los costos de creacin de sftware. Mejora la compactacin de cdigo. Facilita la depuracin de errores. Ejemplo de microprocesadores basados en la tecnologa CISC: Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840. ARQUITECTURA RISC Buscando aumentar la velocidad del procesamiento se descubri en base a experimentos que, con una determinada arquitectura de base, la ejecucin de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser mas eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnologa de encapsulado. La idea estuvo inspirada tambin por el hecho de que muchas de las caractersticas que eran incluidas en los diseos tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Adems, la velocidad del procesador en relacin con la memoria de la computadora que acceda era cada vez ms alta. Debido a que se tiene un conjunto de instrucciones simplificado, stas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcdigo y la necesidad de decodificar instrucciones complejas. La arquitectura RISC funciona de modo muy diferente a la CISC, su objetivo no es ahorrar esfuerzos externos por parte del software con sus accesos a la RAM, sino facilitar que las instrucciones sean ejecutadas lo ms rpidamente posible. La forma de conseguirlo es simplificando el tipo de instrucciones que ejecuta el procesador. As, las instrucciones ms breves y sencillas de un procesador RISC son capaces de ejecutarse mucho ms aprisa que las instrucciones ms largas y

complejas de un chip CISC. Sin embargo, este diseo requiere de mucha ms RAM y de una tecnologa de compilador ms avanzada. La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseo ms cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicacin de las ms recientes tecnologas de semiconductores. Por ello, los procesadores RISC no solo tienden a ofrecer una capacidad de procesamiento del sistema de 2 a 4 veces mayor, sino que los saltos de capacidad que se producen de generacin en generacin son mucho mayores que en los CISC. Los comandos que incorpora el chip RISC en su ROM constan de varias instrucciones pequeas que realizan una sola tarea. Las aplicaciones son aqu las encargadas de indicar al procesador qu combinacin de estas instrucciones debe ejecutar para completar una operacin mayor. Adems, los comandos de RISC son todos del mismo tamao y se cargan y almacenan del mismo modo. Al ser estas instrucciones pequeas y sencillas, no necesitan ser descodificadas en instrucciones menores como en el caso de los chips CISC, pues ya constituyen en s unidades descodificadas. Por ello, el procesador RISC no gasta tiempo verificando el tamao del comando, en descodificarlo ni en averiguar cmo cargarlo y guardarlo. El procesador RISC puede adems ejecutar hasta 10 comandos a la vez pues el compilador del software es el que determina qu comandos son independientes y por ello es posible ejecutar varios a la vez. Y al ser los comandos del RISC ms sencillos, la circuitera por la que pasan tambin es ms sencilla. Estos comandos pasan por menos transistores, de forma que se ejecutan con ms rapidez. Para ejecutar una sola instruccin normalmente les basta con un ciclo de reloj. Entre las ventajas de RISC tenemos las siguientes: La CPU trabaja mas rpido al utilizar menos ciclos de reloj para ejecutar instrucciones. Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a diferencia de CISC, RISC conserva despus de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecucin de nuevas operaciones. Cada instruccin puede ser ejecutada en un solo ciclo del CPU Ejemplo de microprocesadores basados en la tecnologa CISC: MIPS, Millions Instruction Per Second. PA-RISC, Hewlett Packard. SPARC, Scalable Processor Architecture, Sun Microsystems. POWER PC, Apple, Motorola e IBM. Procesadores: CISC y RISC Los procesadores se agrupan hoy en dos familias, la ms antigua y comn de las cuales es la "CISC" o "Complex InstructionSet Computer": computador de set complejo de instrucciones. Esto corresponde a procesadores que son capaces de ejecutarun gran nmero de instrucciones pre-definidas en lenguaje de mquina (del orden del centenar). Desde hace unos aos se fabrican y utilizan en algunas mquinas procesadores "RISC" o "Reduced Instruction Set Computer",es decir con un nmero reducido de instrucciones. Esto permite una ejecucin ms rpida de las instrucciones pero requierecompiladores (o sea traductores automticos de

programas) ms complejos ya que las instrucciones que un "CISC" podraadmitir pero no un "RISC", deben ser escritas como combinaciones de varias instruciones admisibles del "RISC". Se obtieneuna ganancia en velocidad por el hecho que el RISC domina instrucciones muy frecuentes mientras son operaciones menosfrecuentes las que deben descomponerse. Dentro de muy poco los usuarios dejaran de hacerse la pregunta RISC O CISC ?, puesto que la tendencia futura, nos lleva a pensar que ya no existiran los CISC puros. Hace ya tiempo que se ha empezado a investigar sobre microprocesadores "hibridos", es decir, han llevado a cabo el que las nuevas CPU's no sean en su cien por cien CISC, sino por el contrario, que estas ya contengan algunos aspectos de tecnologia RISC. Este proposito se ha realizado con el fin de obtener ventajas procedentes de ambas tecnologias (mantener la compatibilidad x86 de los CISC, y a la vez aumentar las prestaciones hasta aproximarse a un RISC), sin embargo, este objetivo todavia no se ha conseguido, de momento se han introducido algunos puntos del RISC, lo cual no significa que hayan alcanzado un nivel optimo. Realmente, las diferencias son cada vez mas borrosas entre las arquitecturas CISC y RISC. Las CPU's combinan elementos de ambas y no son faciles de encasillar. Por ejemplo, el Pentium Pro traduce las largas instrucciones CISC de la arquitectura x86 a microoperaciones sencillas de longitud fija que se ejecutan en un nucleo de estilo RISC. El UltraSparc-II de Sun, acelera la decodificacion MPEG con unas instrucciones especiales para graficos; estas instrucciones obtienen unos resultados que en otros procesadores requeririan 48 instrucciones. Por lo tanto a corto plazo, en el mercado coexistiran las CPU's RISC y los microprocesadores hibridos RISC - CISC, pero cada vez con diferencias mas difusas entre ambas tecnologias. De hecho, los futuros procesadores lucharan en cuatro frentes : -Ejecutar mas instrucciones por ciclo. -Ejecutar las instrucciones en orden distinto del original para que las interdependencias entre operaciones sucesivas no afecten al rendimiento del procesador. -Renombrar los registros para paliar la escasez de los mismos. -Contribuir a acelerar el rendimiento global del sistema, ademas de la velocidad de la CPU. A continuacion pasaremos a comentar brevemente algunas de las CPU's, recien salidas o proximas a salir: 3. Kripton - 5 O K5 De Amd Estado Actual : Muestras comerciales. Velocidad Prevista : 120 Mhz Rendimiento Estimado : Entre 109 y 115 SPECint92. Proceso de Fabricacion : CMOS de tres capas de metal. Tamao de la Tecnologia de Proceso : 0'35 micras Ventajas Tecnologicas : Microarquitectura superescalar de cuatro vias Nucleo de tipo RISC desacoplado

Ejecucion especulativa con reordenacion de instrucciones Desventajas Tecnologicas : Velocidades de reloj inferiores a las inicialmente previstas Las extensas pruebas de compatibilidad han retrasado el lanzamiento Donde Consultar : http : // www.amd.com 4. Pentium pro de intel Estado Actual : Inicios de produccion. Velocidad Prevista : 150 Mhz Rendimiento Estimado : Entre 220 SPECint92; 215 SPECfp92 Proceso de Fabricacion : BiCMOS. Tamao de la Tecnologia de Proceso : 0'6 micras Ventajas Tecnologicas : Paquete multichip que integra una cache secundaria de 256 KB que se comunica con la CPU a la misma velocidad del procesador Microarquitectura superescalar con reordenacion de instrucciones Superpipelines incluidos para permitir altas velocidades de reloj. Desventajas Tecnologicas : Alto precio de fabricacion del paquete multichip Microarquitectura optimizada para software de 32 bits, que tienen rendimiento pobre con codigo de 16 bits Consumo de energia y disipacion de calor totalmente inapropiadas para ordenadores portatiles Donde Consultar : http : // www.intel.com 5. Mips Estado Actual : Primeras pruebas de produccion Velocidad de reloj Prevista : 200 Mhz Rendimiento Estimado : 300 SPECint92 y 600 SPECfp92 Proceso de Fabricacion : CMOS Tamao de la Tecnologia de Proceso : 0'35 micras Ventajas Tecnologicas : Este chip de 64 bits tiene cinco pipelines funcionales, por lo que puede llegar a ejecutar cinco instrucciones por ciclo de reloj. Con dos unidades de coma flotante de precision doble, el R10000 esta optimizado para sostener un alto rendimiento de coma flotante. Desventajas Tecnologicas : Para optimizar el rendimiento, la memoria cache secundaria externa tiene que fabricarse con costosa tecnologia COMO SURGE EL RISC ? Los ordenadores etiquetados como CISC gozan de los privilegios y defectos del microcodigo. La CPU es considerablemente mas rapida que la memoria principal. Esto significa que conviene manejar un amplio abanico de instrucciones complejas cuyo significado equivalga al de varias instrucciones simples, disminuyendo asi los accesos a memoria. A esto se le aade la tandencia de aumentar el grado de complejidad de las instrucciones para acercarlas a los lenguajes de alto nivel.

Sin embargo, como resultado de icertos estudios en los que se examino la frecuencia de utilizacion de las diferentes instrucciones, se observo que el 80 % del tiempo era consumido por solo el 20 % de las instrucciones, con prioridad de los almacenamientos (STORE), cargas (LOAD) y bifurcaciones (BRANCH). Instrucciones mas usadas Esto significa que se poseian soberbias memorias de control cuyo contenido era muy poco utilizado. Se estaba penalizando la velocidad de respuesta en aras de tener informacion poco util. La alternativa RISC se basa en esto y propone procesadores cableados con un repertorio simple de instrucciones sencillas y frecuentes; todo codigo complejo puede descomponerse en varios congeneres mas elementales en los que, para evitar los terribles efectos sobre los retardos de la memoria principal (MP), se recurre a numerosos registros y a memorias cache. Un registro es una unidad de almacenamiento enclavada en la CPU y, por tanto, tan rapida como esta. Las memorias cache son pequeas memorias de alta velocidad, se alimentan de la MP, de la que toman la informacion que esta siendo mas frecuentemente utilizada. Otro de los objetivos del RISC fue lograr que a cada instruccion correspondiera un solo ciclo de reloj, a excepcion, de aquellos casos que hay que mover datos. - Disminuye la probabilidad de fallo. - Reduce el tamao de la CPU, que puede entonces albergar mas recursos (registros). - Facilita el diseo. - Permite maquinas mas compactas y con menor consumo. - A menor complejidad... menor coste. Aun asi con todos los datos obtenidos a favor y en contra del CISC y del RISC, hay que tener en cuenta otro factor importante : la eficacia del software. 10. Compiladores optimizados del risc Es cierto que un procesador RISC es mas veloz que uno CISC, pero tambien lo es que, al ser mas simples las instrucciones, necesita mas de estas para emular funciones complejas, por lo que los programas son mas largos y voluminosos. Es decir, el codigo objeto generado, ocupa mas memoria y, al ser mas extenso, emplea mas tiempo en ser procesado. Los partidarios argumentan que el factor volumen de memoria incide poco en el precio,ademas estiman que el aumento de codigo no toma dimensiones importantes por el uso de coprocesadores y compiladores optimizados. Los segundos destacan dos aspectos : 1.- Al existir menor variedad en el codigo generado, el proceso de compilacion es mas rapido. El motivo es que hay menor numero de reglas y posibilidades entre las que elegir ( no existira la disyuntiva de construir la misma accion por diferentes caminos, solo habra una forma unica ) evitando la exploracion de grandes tablas de instrucciones en busca del sujeto correcto. " En un ordenador convencional, la misma instruccion de lenguaje de alto nivel puede ejecutarse de diversa formas, cada una con sus inconvenientes y ventajas, pero en el RISC solo hay una forma de hacer las cosas " 2.- Al traducir los lenguajes de alto nivel mediante unidades de extrema simplicidad, se incremente la eficiencia. Si se emplean instrucciones potentes se

corre el riesgo de no aprovecharlas en su totalidad y potencia, menor es la adaptacion a los diferentes casos particulares 11. Risc o cisc ? El conflicto surge al evaluar las ventajas netas que es mas apropiado, usar muchas instrucciones de un solo ciclo aprovechadas al maximo, o pocas de multiples pasos de reloj en las que existe infrautilizacion ? La cuestion, es que hasta el momento, el estudio de prestaciones de ambas tecnologias, nos ha llevado a concluir que hoy en dia los RISC obtienen mas prestaciones, es decir, son mas potentes y rapidos que los CISC. Sin embargo, el mercado se ha decantado por la tecnologia CISC en cuanto a volumen de ventas. Por que ? 1.- Por experiencia propia, podemos comprobar que un CISC tiene un coste "razonable", que es alcanzado a nivel de usuario. Esto mismo, no ocurre con los RISC, que por el contrario tienen un coste elevado, por esto mismo esta tecnologia ha sido enfocada a ventas a nivel de empresa y equipos de gama alta. 2.- La utilidad que se le de a la maquina es muy importante, ya que el usuario debe de encontrar un nivel optimo en cuanto a calidad - precio. Y por que pagar mas si realmente no se le va a sacar partido al cien por cien. 3.- El software utilizado es otro de los factores importantes, dado que un RISC no utiliza el mismo software que un CISC. Estos ultimos, por lo general tienen un software mas asequible. 4.- Dada la compatibilidad hacia atras de la familia CISC x86, los usuarios han podido renovar sus equipos sin por ello tener que abandonar software que ya conocian, y reutilizar sus datos. Asi mismo, los fabricantes han tenido en cuenta este factor, puesto que seguir con otra linea de procesadores suponia no solo un cambio muy radical, sino que ademas podia llevar un riesgo en cuanto a ventas. Estos son algunos de los motivos. Sin embargo, tambien hay que tener en cuenta el conflicto de intereses de algunos fabricantes, asi como la opinion de distintas revistas, algunas de ellas asociadas a diferentes marcas. Se estan estudiando las tendencias futuras, como pueden ser los hibridos, mejoras en los microprocesadores CISC, mejoras en los RISC, ...

CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIN LENGUAJE MQUINA: El lenguaje mquina es el nico que entiende directamente la computadora, ya que esta escrito en lenguajes directamente inteligibles por la mquina (computadora), utiliza el alfabeto binario, que consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de dgitos binarios). Sus instrucciones son cadenas binarias (cadenas o series de caracteres de dgitos 0 y 1) que especifican una operacin y, las posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones de mquina o cdigo maquina. Fue el

primer lenguaje utilizado en la programacin de computadoras, pero dejo de utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes ms fciles de aprender y utilizar, que adems reducen la posibilidad de cometer errores. El lenguaje mquina es el conocido cdigo binario. Generalmente, en la codificacin de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de escritura. Todas las instrucciones preparadas en cualquier lenguaje mquina tienen por lo menos dos partes. La primera es el comando u operacin, que dice a las computadoras cual es la funcin que va a realizar. Todas las computadoras tienen un cdigo de operacin para cada una de las funciones. La segunda parte de la instruccin es el operando, que indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a manipular, el nmero de operndoos de una instruccin varia en distintas computadoras. Ventajas del lenguaje mquina: posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin. Desventajas del lenguaje mquina: dificultad y lentitud en la codificacin. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace prcticamente no recomendables a los lenguajes mquina. LENGUAJES DE BAJO NIVEL: Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro ms similar a los utilizados por las personas. Este intenta desflexibilizar la representacin de los diferentes campos. Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al lenguaje. A principios de la dcada de los 50 y con el fin de facilitar la labor de los programadores, se desarrollaron cdigos mnemotcnicos para las operaciones y direcciones simblicas. Los cdigos mnemotcnicas son los smbolos alfabticos del lenguaje maquina. La computadora sigue utilizando el lenguaje maquina para procesar los datos, pero los programas ensambladores traducen antes los smbolos de cdigo de operacin especificados a sus equivalentes en el lenguaje maquina. En la actualidad los programadores no asignan nmeros de direccin reales a los datos simblicos, simplemente especifican donde quieren que se coloque la primera localidad del programa y el programa ensamblador se encarga de lo dems, asigna localidades tanto para las instrucciones como los datos. Estos programas de ensamble o ensambladores tambin permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio cdigo maquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Despus de que el ensamblador convierte el programa fuente en cdigo maquina a este se le denomina programa objeto. Para los programadores es ms fcil escribir instrucciones en un lenguaje ensamblador que en cdigo de lenguaje maquina pero es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas.

El lenguaje de bajo nivel es el lenguaje de programacin que el ordenador puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecucin, pues no necesita un intrprete que traduzca cada lnea de instrucciones. Visto a muy bajo nivel, los microprocesadores procesan exclusivamente seales electrnicas binarias. Dar una instruccin a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de seales se denomina cdigo mquina. El cdigo representa normalmente datos y nmeros e instrucciones para manipularlos. Un modo ms fcil de comprender el cdigo mquina es dando a cada instruccin un mnemnico, como por ejemplo STORE, ADD o JUMP. Esta abstraccin da como resultado el ensamblador, un lenguaje de muy bajo nivel que es especfico de cada microprocesador. Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que son, a menudo, difciles de aprender. Ms importante es el hecho de que los programas escritos en un bajo nivel sean altamente especficos de cada procesador. Si se lleva el programa a otra maquina se debe reescribir el programa desde el principio. Ventajas del lenguaje ensamblador frente al lenguaje mquina: mayor facilidad de codificacin y, en general, su velocidad de calculo, ahorran tiempo y requieren menos atencin a detalles. Se incurren en menos errores y los que se cometen son ms fciles de localizar. Tanto el lenguaje maquina como el ensamblador gozan de la ventaja de mnima ocupacin de memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la compilacin del programa equivalente escrito en otros lenguajes. Los programas en lenguaje ensamblador son ms fciles de modificar que los programas en lenguaje mquina. Desventajas del lenguaje ensamblador: dependencia total de la maquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas). El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh. La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las tcnicas de programacin, sino tambin el conocimiento del interior de la maquina El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y dems elementos fsicos. Todas las instrucciones son elementales, es decir, en el programa se deben describir con el mximo detalle todas las operaciones que se han de efectuar en la maquina para la realizacin de cualquier proceso. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran bsicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos. Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente seales electrnicas binarias. Dar una instruccin a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de seales se denomina cdigo mquina. El cdigo representa normalmente datos y nmeros e instrucciones para manipularlos. Un modo ms fcil de comprender el cdigo mquina es dando a cada instruccin un mnemnico, como por ejemplo STORE, ADD o JUMP. Esta abstraccin da como resultado el ensamblador, un lenguaje de muy bajo nivel que es especfico de cada microprocesador.

Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que son a menudo difciles de aprender. Ms importante es el hecho de que los programas escritos en un bajo nivel sean altamente especficos de cada procesador. Si se lleva el programa a otra mquina se debe reescribir el programa desde el principio. Lenguaje ensamblador (le): Este intenta deflexibilizar la representacin de los diferentes campos, esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al lenguaje LENGUAJES DE ALTO NIVEL: Estos lenguajes son los mas utilizado por los programadores. Estn diseados para que las personas escriban y entiendan los programas de un modo mucho mas fcil que los lenguajes mquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras. Son lenguajes de programacin en los que las instrucciones enviadas para que el ordenador ejecute ciertas rdenes son similares al lenguaje humano. Dado que el ordenador no es capaz de reconocer estas ordenes, es necesario el uso de un intrprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender. Por lo general se piensa que los ordenadores son mquinas que realizan tareas de clculos o procesamiento de texto. La descripcin anterior es slo una forma muy esquemtica de ver una computadora. Hay un alto nivel de abstraccin entre lo que se pide a la computadora y lo que realmente comprende. Existe tambin una relacin compleja entre los lenguajes de alto nivel y el cdigo mquina. Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. En BASIC, el lenguaje de alto nivel ms conocido, los comandos como IF CONTADOR=10 THEN STOP pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a diez. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rgida y sistemtica. Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgen con posterioridad a los anteriores (lenguaje mquina, lenguajes de bajo nivel o ensamblador) con los siguientes objetivos, entre otros: Lograr independencia de la maquina, pudiendo utilizar un mismo programa en diferentes equipos con la nica condicin de disponer de un programa traductor o compilador, que es suministrado por el fabricante, para obtener el programa ejecutable en lenguaje binario de la maquina que se trate. Adems, no se necesita conocer el hardware especifico de dicha maquina. Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma ms sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje maquina, ya que se utilizan palabras (en ingles) en lugar de cadenas de smbolos sin ningn significado aparente.

Incluir rutinas de uso frecuente, como las de entrada / salida, funciones matemticas, manejo de tablas, etc., que figuran en una especie de librera del lenguaje, de manera que se puedan utilizar siempre que se quiera sin necesidad de programarlas cada vez. Ventajas de los lenguajes de alto nivel: el tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos, nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son ms fciles. Reduccin del costo de los programas. Transportabilidad. Permiten tener una mejor documentacin. Son ms fciles de mantener. Por lo general se piensa que los ordenadores son mquinas que realizan tareas de clculos o procesamiento de textos. La descripcin anterior es slo una forma muy esquemtica de ver una computadora. Hay un alto nivel de abstraccin entre lo que se pide a la computadora y lo que realmente comprende. Existe tambin una relacin compleja entre los lenguajes de alto nivel y el cdigo mquina. Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. En BASIC, el lenguaje de alto nivel ms conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rgida y sistemtica. Desventajas de los lenguajes de alto nivel: incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la maquina que se explotan mucho mejor en lenguajes mquina y ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin de los programas es mucho mayor. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso, adems de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. Es difcil establecer una clasificacin general de los mismos, ya que en cualquiera que se realice habr lenguajes que pertenezcan a mas de uno de los grupos establecidos. Una clasificacin muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofa con que fueron concebidos, es la siguiente: Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada). Lenguajes declarativos. Los programas se construyen mediante descripciones de funciones o expresiones lgicas (Lisp, Prolog). Lenguajes orientados a objetos. El diseo de los programas se basa mas en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (variables) y las operaciones que actan sobre ellos (Smalltalk, C++). Lenguajes orientados al problema. Diseados para problemas especficos, principalmente de gestin, suelen ser generadores de aplicaciones. Lenguajes naturales. Estn desarrollndose nuevos lenguajes con el principal objetivo de aproximar el diseo y construccin de programas al lenguaje de las personas.

Otra clasificacin que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparicin de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolucin de las mismas: Primera generacin. Lenguajes maquina y ensambladores. Segunda generacin. Primeros lenguajes de alto nivel imperativo (FROTRAN, COBOL). Tercera generacin. Lenguajes de alto nivel imperativo. Son los mas utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA). Cuarta generacin. Orientados bsicamente a las aplicaciones de gestin y al manejo de bases de datos (NATURAL, SQL). Quinta generacin. Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG). Para la mejor compresin se harn unas definiciones: Programa: es un conjunto de instrucciones escritas en un lenguaje de programacin que indican a la computadora la secuencia de pasos, para resolver un problema. Cdigo fuente: esta creado en algn lenguaje de alto nivel, por lo que es entendido 100% por el ser humano. Este debe estar complementado por su documentacin o manuales donde se indica el desarrollo lgico del mismo. Cdigo objeto: es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable. Arquitectura bsica Una PC embebida posee una arquitectura semejante a la de un PC. Brevemente stos son los elementos bsicos: Microprocesador Es el encargado de realizar las operaciones de clculo principales del sistema. Ejecuta cdigo para realizar una determinada tarea y dirige el funcionamiento de los dems elementos que le rodean, a modo de director de una orquesta. Memoria En ella se encuentra almacenado el cdigo de los programas que el sistema puede ejecutar as como los datos. Su caracterstica principal es que debe tener un acceso de lectura y escritura lo ms rpido posible para que el microprocesador no pierda tiempo en tareas que no son meramente de clculo. Al ser voltil el sistema requiere de un soporte donde se almacenen los datos incluso sin disponer de alimentacin o energa. Cach Memoria ms rpida que la principal en la que se almacenan los datos y el cdigo accedido ltimamente. Dado que el sistema realiza microtareas, muchas veces repetitivas, la cach hace ahorrar tiempo ya que no har falta ir a memoria principal si el dato o la instruccin ya se encuentra en la cach. Dado su alto precio tiene un tamao muy inferior (8512 KB) con respecto a la principal (8256 MB). En el interior del chip del microprocesador se encuentra una pequea cach (L1), pero normalmente se tiene una mayor en otro chip de la placa madre (L2). Disco duro

En l la informacin no es voltil y adems puede conseguir capacidades muy elevadas. A diferencia de la memoria que es de estado slido ste suele ser magntico. Pero su excesivo tamao a veces lo hace inviable para PC embebidas, con lo que se requieren soluciones como unidades de estado slido. Otro problema que presentan los dispositivos magnticos, a la hora de integrarlos en sistemas embebidos, es que llevan partes mecnicas mviles, lo que los hace inviables para entornos donde estos estarn expuestos a ciertas condiciones de vibracin. Existen en el mercado varias soluciones de esta clase (DiskOnChip, CompactFlash, IDE Flash Drive, etc.) con capacidades suficientes para la mayora de sistemas embebidos (desde 2 MB hasta ms de 1 GB). El controlador del disco duro de PC estndar cumple con el estndar IDE y es un chip ms de la placa madre. Disco flexible Su funcin es la de almacenamiento, pero con discos con capacidades mucho ms pequeas y la ventaja de su portabilidad. Normalmente se encontraban en computadora personal estndar pero no as en una PC embebida. Llevan varios aos en total desuso en PC comunes. BIOS-ROM BIOS (Basic Input & Output System, sistema bsico de entrada y salida) es cdigo que es necesario para inicializar la computadora y para poner en comunicacin los distintos elementos de la placa madre. La ROM (Read Only Memory, memoria de slo lectura no voltil) es un chip donde se encuentra el cdigo BIOS. CMOS-RAM Es un chip de memoria de lectura y escritura alimentado con una pila donde se almacena el tipo y ubicacin de los dispositivos conectados a la placa madre (disco duro, puertos de entrada y salida, etc.). Adems contiene un reloj en permanente funcionamiento que ofrece al sistema la fecha y la hora. Chipset Chip que se encarga de controlar las interrupciones dirigidas al microprocesador, el acceso directo a memoria (DMA) y al bus ISA, adems de ofrecer temporizadores, etc. Es frecuente encontrar la CMOS-RAM y el reloj de tiempo real en el interior del Chip Set. Entradas al sistema pueden existir puertos para mouse, teclado, vdeo en formato digital, comunicaciones serie o paralelo, etc. Salidas del sistema puertos de vdeo para monitor o televisin, pantallas de cristal lquido, altavoces, comunicaciones serie o paralelo, etc. Ranuras de expansin para tarjetas de tareas especficas que pueden no venir incorporadas en la placa madre, como pueden ser ms puertos de comunicaciones, acceso a red de computadoras va LAN (Local Area Network, red de rea local) o va red telefnica: bsica, RDSI (Red Digital de Servicios Integrados), ADSL (Asynchronous Digital Subscriber Loop, Lazo Digital Asncrono del Abonado), Cable, etc. Un PC estndar suele tener muchas ms ranuras de expansin que una PC embebida. Las ranuras de expansin estn asociadas a distintos tipos de bus: VESA, ISA, PCI, NLX (ISA + PCI), etc.

Hoy en da existen en el mercado fabricantes que integran un microprocesador y los elementos controladores de los dispositivos fundamentales de entrada y salida en un mismo chip, pensando en las necesidades de los sistemas embebidos (bajo coste, pequeo tamao, entradas y salidas especficas, etc.). Su capacidad de proceso suele ser inferior a los procesadores de propsito general pero cumplen con su cometido ya que los sistemas donde se ubican no requieren tanta potencia. Los principales fabricantes son STMicroelectronics (familia de chips STPC), AMD (familia Geode), Motorola (familia ColdFire) e Intel. En cuanto a los sistemas operativos necesarios para que un sistema basado en microprocesador pueda funcionar y ejecutar programas suelen ser especficos para los sistemas embebidos. As nos encontramos con sistemas operativos de bajos requisitos de memoria, posibilidad de ejecucin de aplicaciones de tiempo real, modulares (inclusin slo de los elementos necesarios del sistema operativo para el sistema embebidos concreto), etc. Los ms conocidos en la actualidad son Windows CE, QNX y VxWorks de WindRiver. DEBUG Nota: "Bug" significa fallo, defecto en un programa; "debug" significa depurar (escrutar y eliminar fallos). La palabra ha quedado como verbo (depurar), de la que han derivado otras. Por ejemplo: "Debugger" (depurador). Por extensin, todos los programas y utilidades que sirven para escudriar los datos y el cdigo a bajo nivel, se identifican genricamente con esta denominacin. 1 Sinopsis DEBUG.EXE es un ejecutable que, hasta 2001, acompa a todas las versiones de MS-DOS, a partir de la 2.0, y de Windows [1]. Es sin duda un programa antiguo pero de enorme potencial didctico para el principiante. En adelante nos referiremos a l como debug simplemente. Se trata de una utilidad interactiva de exploracin de bajo nivel, pero que tambin puede utilizarse para ciertas funciones. Por ejemplo, como un tosco traductor de sentencias ensamblador a lenguaje mquina. Como todos los programas de su tipo, debe utilizarse con cierto cuidado. En especial si utiliza el comando W [4] (se puede borrar todo un disco duro con un simple comando errneo). Para utilizarlo basta invocarlo desde MS-DOS o desde una ventana DOS de Windows. Aunque en este ltimo caso algunas de sus funcionalidades ms interesantes nos estarn vetadas. Nota: Es importante recordar que muchos usos de estas utilidades de bajo nivel, requieren un funcionamiento stand-alone. Es decir, fuera de un Sistema Operativo multi usuario, ya que stos encapsulan y ocultan (virtualizan) muchos aspectos del hardware. Opciones Una vez que el programa est en ejecucin, el indicador ("prompt") es un guin "-", indicando que el "Shell" ( H1.7.1w3) espera recibir rdenes. Para salir basta

pulsar una Q. Como muchos programas de su gnero, sus comandos empiezan por una letra o combinacin de ellas (pueden usarse indistintamente maysculas o minsculas) y ciertos parmetros opcionales (no es imprescindible separar la letra de opcin de los parmetros opcionales que siguen). La opcin ms sencilla es la interrogacin ?, cuyo resultado es una lista resumida de las opciones disponibles: ensamblar A [direccin] comparar C direccin de intervalo volcar D [intervalo] escribir E direccin [lista de valores] llenar F lista de intervalos ir G [=direccin] [direcciones] hex H valor1 valor2 entrada I puerto cargar L [direccin] [unidad] [primer_sector] [nmero] mover M direccin de intervalo nombre N [nombre_ruta] [lista_argumentos] salida O byte de puerto proceder P [=direccin] [nmero] salir Q registrar R [registrar] buscar S lista de intervalos seguimiento T [=direccin] [valor] desensamblar U [intervalo] escribir W [direccin] [unidad] [primer_sector] [nmero] asignar memoria expandida XA [#pginas] desasignar memoria expandida XD [identificador] asignar pginas de memoria expandida XM [Lpgina] [Ppgina] [identificador] mostrar estado de la memoria expandida XS La mayora de los comandos de debug ejecutan una accin y vuelven al indicador del shell, pero si es un comando largo, como puede ser mostrar un trozo grande de cdigo, puede detenerse pulsando CTRL-Pausa o interrumpirse con CTRL-C para volver al shell. Una caracterstica poco conocida, es que debug puede aceptar entradas desde un fichero "Script", que puede ser un simple fichero de texto ASCII en el que cada comando est separado del anterior por un INTRO. Despus del ltimo, que debe ser una "Q" para salir de debug, es conveniente dejar una lnea en blanco pulsando INTRO dos veces. Las lneas pueden contener comentarios. Cualquier cosa a partir del carcter punto y coma (;) hasta el final de la lnea, ser ignorado. ; esto es un comentario D ; aqu se mostrar algo...

Suponiendo que tengamos un fichero "Script" de nombre Ordenes.txt, puede ser utilizado como entrada para debug mediante un comando de redireccin en la siguiente forma: DEBUG < Ordenes.txt Tambin puede conseguirse que el programa redireccione la salida hacia un fichero que puede ser inspeccionado ms tarde. Aunque tiene la dificultad de tener que trabajar "a ciegas", puede ser de utilidad en determinadas circunstancias. Por ejemplo, cuando se desea un volcado de determinadas zonas de la memoria. En el caso anterior podra obtenerse un fichero Result.txt con el siguiente comando: DEBUG < Ordenes.txt > Result.txt REPRESENTACIN DE DATOS NUMRICOS EN EL ORDENADOR. COMA FIJA Y COMA FLOTANTE: Todos los datos el ordenador los representa en sistemas basados en el sistema binario, ya que slo utiliza dos estados estables. Los nmeros reales se clasifican en tres tipos: Enteros.- Positivos y negativos. Racionales.- Se pueden expresar como cociente de dos enteros. Irracionales.- Resto de nmeros que no pueden expresarse como cociente de dos enteros. Cualquier conjunto de nmeros reales es infinito, por lo que, dadas las limitaciones del espacio material de representacin de las computadoras, no es posible representar a todos. Por el mismo motivo, sern irrepresentables los nmeros irracionales, que precisan de un nmero infinito de bits. Generalmente, en una computadora se asigna un nmero fijo de n bits para representar un nmero, siendo n el tamao de la palabra, u otro tamao privilegiado. Esta limitacin define el rango de representacin, o sea, los lmites. Consecuentemente, los nmeros racionales se expresarn con un nmero finito de cifras fraccionarias, lo que dar lugar a una cierta precisin en la representacin. Dada esta limitacin de bits, existen diversos mtodos de representar los datos numricos que optimizan la utilizacin de estos bits para determinadas aplicaciones. Vamos a estudiar los llamados mtodos posicionales, en los cuales los nmeros se representan en dgitos sucesivos, teniendo cada dgito un peso o valor que depende del lugar donde se encuentra. Los pesos son potencias sucesivas de una base. El valor de un nmero X formado por los dgitos: xn...x3x2x1x0.x-1x-2...x-m tomando como pesos las potencias sucesivas de una base r ser: X = xnrn + ... + x3r3 + x2r2 + x1r1 + x0r0 + x-1r-1 + x-2r-2 + ...+ x-mr-m = Por ejemplo, el nmero 913.4 en base 10 (r = 10), se puede descomponer: 913.4 = 9 x 102 + 1 x 101 + 3 x 100 + 4 x 10-1

El nmero binario 1011, se descompondr: 1011 = 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11(10 Los dgitos xi son siempre positivos y menores que la base (0 " xi < r). En el sistema decimal, con r = 10; 0 " xi < 10 y en el sistema binario con r = 2; 0 " xi < 2. Si dos bases r1 y r2 cumplen la condicin r1 = , entonces: (xn... x2 x1x0.x-1x-2...x-m)(r1 = (ak...a2a1a0.a-1a-2...a-v)(r2 siendo: aj = (xpj+p-1 xpj+p-2... xpj+1 xpj). De esta propiedad se deduce que los dgitos de la base r1 se obtienen agrupando los dgitos de la base r2 en grupos de longitud p, empezando a partir del punto decimal. Cada una de estas cadenas de la base menor es un nmero de la base mayor. Esta propiedad se puede aplicar para pasar un nmero binario a octal, agrupando los bits de 3 en 3, o a hexadecimal, agrupando los bits de 4 en 4. Por ejemplo para pasar a hexadecimal el nmero 101101110.1011(2 agrupamos las cifras en los siguientes grupos: 1 0110 1110 1011 con lo que obtendramos 16E.B(16 A veces, un nmero racional tiene una representacin exacta en una base, mientras que en otra es de tipo peridica; por ejemplo: (1/5)(10 = 0.2(10 = 0.0011001100110011...(2 Al tener que encajar los nmeros en un tamao fijo de n bits, se trunca o pierde el periodo y el ordenador produce resultados con un cierto error. A continuacin se estudian los mtodos ms corrientes de representacin de enteros y racionales en el sistema posicional, que pueden dividirse en los siguientes grupos: Coma fija sin signo. Binario puro sin signo. Enteros Positivos. Coma fija con signo. Binario puro con signo. Enteros. Coma fija con complemento restringido a la base. Complemento a uno. Enteros. Coma fija con complemento a la base. Complemento a dos. Enteros. Coma fija BCD. Enteros. Coma flotante. Racionales. En todos los formatos supondremos que estamos trabajando en base 2 y que el nmero de bits que tiene una palabra (es decir el nmero de bits con los que opera el ordenador) es n. Coma fija sin signo. Binario puro sin signo. Es el formato ms simple para representar nmeros enteros positivos y responde a la siguiente forma: Si las cifras del nmero entero X son xn-1xn-2...x2x1x0, El valor de X es: X = 2n-1xn-1 + 2n-2xn-2 + ...+ 22x2 + 21x1 + 20x0 = El rango de valores que admite un nmero X expresado en este formato es: 0 " X < 2n Modificando el bit menos significativo, el nmero variar en una unidad, y, por tanto, la precisin es de una unidad. Este formato tiene el inconveniente de que, al realizar sumas, se puede perder el bit ms significativo del resultado cuando no cabe en el tamao de la palabra

(desbordamiento). El ordenador puede disponer de un mecanismo para avisar cuando se produce esta eventualidad. Coma fija con signo. Binario puro con signo. Es igual al formato anterior, pero reservando un bit para indicar el signo. Este bit, si es un 0, define al nmero como positivo y si es un 1, como negativo. El mayor nmero, en valor absoluto, que se puede formar teniendo en cuenta que uno de los n bits es el de signo, es 2n-1-1. Por tanto el rango es: -(2n-1-1) " X " (2n-1-1). Representacin de nmeros en Coma Flotante: La coma flotante aparece para la representacin de nmeros reales con un rango de representacin mayor que el que nos ofrece la representacin en coma fija, permitiendo el tratamiento de nmeros muy grandes y muy pequeos. Se basa en la representacin en notacin cientfica comnmente utilizada en matemticas, en la que una cantidad se representa de la forma: No=mbc Donde: No = Nmero representado m = Mantisa (fraccin con signo) b = Base de exponenciacin o raz c = Exponente o caracterstica (nmero entero con signo) Un nmero en esta notacin tiene infinitas representaciones, de las que se toma como representacin del mismo la denominada normalizada, que es aquella en la que la mantisa no tiene parte entera y la primera cifra o dgito a la derecha de la coma es distinta de 0, salvo en la representacin del nmero 0. Por ejemplo, representacin de 123,4 con base 10. 123,4 = 123,4 x 100 = 12,34 x 101 = 1,234 x 102 = 0,1234 x 103 representacin normalizada Ejemplo, utilizando base 2: 123, = 123,4 x 20 = 61,7 x 21 = 30,85 x 22 = 15,425 x 23 = 7,7125 x 24 = 3,85625 x 25 = 1,928125 x 26 = 0,9640625 x 27 representacin normalizada Cada fabricante de ordenadores define para la arquitectura de sus mquinas un formato de coma flotante para lo que se denomina simple precisin, donde el

nmero de bits corresponde a una palabra, y otro para la doble precisin, donde se utiliza una doble palabra. En general, se suelen seguir las siguientes reglas: El exponente se representa en las notaciones MS o exceso a 2N-1, siendo un nmero entero con signo. La mantisa es un nmero real normalizado (sin parte entera) con la coma implcita a la izquierda representada en MS, C-1 o C-2. El signo suele estar situado en el bit de ms a la izquierda. La base de exponenciacin tambin denominada raz es una potencia de 2 determinada por el fabricante (2, 8 o 16). Existen muchos formatos de representacin en coma flotante, variando la longitud de la palabra del computador, la base de exponenciacin, el nmero de bits reservados para la mantisa y para el exponente, el sistema de representar la mantisa y el exponente, etc. La coma flotante para cada caso viene determinada por el fabricante, siendo las definiciones ms comunes: - Para simple precisin (en computadores de 32 bits de palabra): SIGNO EXPONENTE MANTISA 31 30 23 22 0 1 bit 8 bits 23 bits signo mantisa - Para doble precisin (doble palabra de 64 bits): SIGNO EXPONENTE MANTISA 63 62 52 51 0 1 bit 11 bits 52 bits

signo mantisa El rango de representacin en la coma flotante tiene la siguiente forma: mNN MNN 0 mNP MNP mNN mnimo nmero negativo que podemos representar y que se corresponde con: mNN = -mxima mantisa x base mximo exponente. MNN mximo nmero negativo que se corresponde con: MNN = -mnima mantisa x base -mximo exponente. mNP mnimo nmero positivo, que se corresponde con: mNP = mnima mantisa x base -mximo exponente. MNP mximo nmero positivo que se corresponde con: MNP = mxima mantisa x base mximo exponente. Es estas representaciones adems de existir huecos (nmeros no representables) entre dos cualesquiera, existen cuatro zonas en las que no se pueden representar los nmeros existentes en ellas. Estas zonas son: Desbordamiento positivo: Nmeros mayores que MNP. Subdesbordamiento positivo: Nmeros entre 0 y mNP. Subdesbordamiento negativo: Nmeros entre MNN y 0. Desbordamiento negativo: Nmeros menores que mNN. Por ejemplo, un computador de 32 bits utiliza el siguiente formato para registrar nmeros en coma flotante con simple precisin: Los bits del 23 al 30 para el exponenete, que se representa en exceso a 128 Los bits del 0 al 22 para la mantisa normalizada, que se representa en C-1 con el punto a las izquierda. El bit 31 para el signo de la mantisa. Base de exponenciacin 2. El 0 se representa con todos los bits a 0. Formatos Estndar: Los formatos de coma flotante normalizados para computadores de 32 bits segn el estndar IEEE P754 son:

Para simple precisin: SIGNO EXPONENTE MANTISA 31 30 23 22 0 1 bit 8 bits 23bits signo mantisa exceso fraccin en binario puro Para doble precisin (doble palabra de 64 bits): SIGNO EXPONENTE MANTISA 63 62 52 51 0 1 bit 11 bits 52 bits signo mantisa exceso fraccin en binario puro SISTEMAS DE CODIFICACIN: Informacin, en su sentido ms amplio, se puede considerar como un conjunto de datos con significado propio constituido por cadenas de caracteres (cifras, letras y caracteres especiales) que para ser tratados de forma automtica por medio de un computador necesitan ser fsicamente transformados a un cdigo manejable por ellos. La informacin que necesita ser tratada por un ordenador se presenta en un determinado sistema de representacin que utiliza un alfabeto(entrada) y por medio de un sistema de codificacin la transformaremos en informacin codificada que utiliza su correspondiente alfabeto de salida y que ser directamente reconocible y tratable por el equipo. Todo sistema de codificacin lleva consigo un cdigo que se define como la ley de correspondencia biunivoca entre los datos que se van a representar y su codificacin.

En los computadores se utilizan sistemas de codificacin binarios numricos de los que ya hemos visto algunos (BCD natural, por ejemplo), y alfanumricos. - Cdigo Alfanumricos: Son cdigos utilizados por los ordenadores para guardar y transmitir informacin, as como para enviar rdenes entre dispositivos. En ellos podemos definir las siguientes caractersticas: Conjunto de caracteres: Las 10 cifras del sistema decimal (0 al 9) Las letras del alfabeto (maysculas y minsculas) Los signos de puntuacin (, . : ; + * /). Los caracteres de control (rdenes entre dispositivos) Longitud de un cdigo binario. Es el nmero de bits que utiliza para codificar un carcter. Nmero mximo del conjunto de caracteres. En estos cdigos, en general, se representa cada carcter por medio de 8 bits, con lo cual, todo tipo de informacin puede ser utilizada internamente formando cadenas de bytes sucesivos que representan cadenas de caracteres. Los primeros cdigos utilizados fueron los de 6 bits que permitan la representacin de 64 caracteres. Estos eran: 26 maysculas 10 numricos 28 especiales Ms tarde se pas a los 7 bits, entro los que podemos citar el cdigo ASCII (American Estndar Code for Information Interchange). En la actualidad se utilizan exclusivamente cdigos de 8 bits, entre los que podemos citar el cdigo EBCDIC (Extended Binary Coded Decimal Interchange Code) y el ASCII extendido