UNIDAD+6+Funcionamiento+interno+de+la+computadora

ALEJANDRA PEREZ HERNANDEZ 6.1 FUNCION DE LA UNIDAD DE CONTROL DURANTE LA EJECUCION DE UNA INSTRUCCIÓN Introducción a la unidad de control La unidad de control el elemento que se encarga de sincronizar las acciones que realiza cada una de las unidades funcionales de un computador. Las funciones de la unidad de control son básicamente dos. Interpretación de las instrucciones: La unidad de control debe ser capaz de decodificar los códigos de operación y los modos de direccionamiento de las instrucciones y actuar de forma diferente para cada uno de ellos. Secuenciamiento de las operaciones: La unidad de control se encarga de la temporización de las distintas operaciones necesarias para la ejecución de cada instrucción. También debe controlar el secuenciamiento de las instrucciones en función de la evolución del registro contador de programa. Se llaman señales de control a las variables binarias que controlan las entradas y salidas de información de los registros y el funcionamientode las unidades funcionales. La ejecución de una instrucción se divide en varias etapas que deben realizarse según una secuencia muy precisa de señales de control que establece la señal de control. Hay dos formas básicas para implementar la unidad de control: - Unidad de control cableada: Realiza sus funciones mediante elementos hardware. No la analizaremos en profundidad aquí. -Unidad de control microprogramada: Es mas lenta que la anterior, pero permite implementar instrucciones mas potentes y flexibles. Será analizada en profundidad en los siguientes apartados. Ahora se intentará conjuntar la secuencia de operaciones elementales necesarias para ejecutar una instrucción. Considérese la instrucción “Sumar el contenido de la localización NUM de la memoria al registro R1 ″. Para simplificar las cosas, la dirección NUM se da en forma explícita en el campo de dirección de la instrucción. Entonces, la localización NUM se especifica en el modo directo de memoria. La ejecución de esta instrucción requiere de las siguientes acciones. 1.Traer la instrucción 2.Traer el primer operando (el contenido de la localización de la memoria a la que señala el campo de dirección de la instrucción). 3.Realizar la adición 4.Cargar el resultado en RI. PASO 1 .- PC salida, MAR entrada, Leer, Borrar Y, Fijar el acarreo de la ALU, Suma, Zentrada 2.- Z salida, PC entrada, Espera a MFC 3.- MDR salida, IR salida 4.- Campo de dirección de IR salida, MAR entrada, Leer 5.- R1salida, Yentrada, Espera a MFC 6.- MDR salida, Suma, Z entrada 7.- Z salida, R1 entrada 8.- Fin
 * EJECUCIÓN DE UNA INSTRUCCIÓN **

6.2 CICLO DE EJECUCION DE UNA INSTRUCCIÓN

Los pasos a seguir para el procesamiento de las instrucciones son los siguientes: 1. cada instrucción es leída ( una a la vez), desde la memoria, por el procesador y, 2. cada instrucción es ejecutada por el procesador. La repetición de la lectura y ejecución ( pasos 1 y 2 respectivamente), conforman la “ejecución de un programa”. Dicha ejecución puede detenerse si: la máquina se apaga, ocurre un error que no puede ser recuperado, o si, se encuentra una instrucción en el programa que detenga la computadora. Ciclo de instrucción: es el procesamiento requerido para la instrucción. En este Ciclo, se encuentran los dos pasos citados anteriormente, denominados Ciclo de lectura (feth) y Ciclo de ejecución. Lectura y ejecución de instrucciones El procesador lee una instrucción de la memoria, al comienzo de cada Ciclo de instrucción. Se cuenta con un contador de programas ( PC program counter ), que lleva la cuenta de cual es la próxima instrucción a leer. Luego de leer cada instrucción el procesador incrementara el PC, de manera tal que la siguiente instrucción a leer será; la que se encuentra en la dirección inmediatamente superior de la memoria. La instrucción leída es cargada en el registro de instrucción ( IR instuction register ), que es un registro del procesador. El procesador interpreta la instrucción, la cual está en forma de código binario, que especifica la acción que el procesador llevará a cabo, y realizará la acción requerida. Las acciones que se realizan para la lectura y ejecución de instrucciones se pueden clasificar en las siguientes categorías: · Procesador-memoria: los datos se transfieren del procesador a la memoria o viceversa. · Procesador E/S: los datos se transfieren desde o hacia un dispositivo periférico. Se realiza la transferencia entre el procesador y un módulo de entrada-salida. · Tratamiento de datos: el procesador puede realizar alguna operación aritmética o lógica sobre los datos. · Control: la secuencia de ejecución puede ser alterada si la instrucción lo especifica. La ejecución de una instrucción puede incluir una combinación de las acciones antes mencionadas. INTERRUPCIONES La interrupción es básicamente un suceso que altera la secuencia de ejecución de las instrucciones. Existen varios tipos de interrupciones de los cuales los más comunes son los siguientes: 1) De programa o de verificación de programa: son ocasionadas por condiciones que se producen como resultado de la ejecución de una instrucción. Ejemplo: - la división por cero - el intento de ejecutar una instrucción privilegiada. 2) De reloj: son producidas por un reloj interno del procesador. Para que de esa forma se realicen funciones con una cierta regularidad. 3) De Entrada / Salida: son generadas por un controlador de E/S para indicar la finalización de una operación; o e cambio de estado de un dispositivo o canal; o también alguna condición de error. 4) Por fallo del Hardware o de verificación de máquina: son causadas por el mal funcionamiento del equipo, cortes de energía, etc. Con el uso de las interrupciones el procesador se puede utilizar de una manera más eficaz. Las interrupciones y el ciclo de instrucción Utilizando interrupciones el procesador puede ejecutar instrucciones mientras una operación de E/S está en proceso. Siguiendo esta idea se concluye que la operación de E/S y un programa usuario son ejecutados concurrentemente. Desde la postura del programa de usuario, una interrupción no es más que la alteración de la secuencia normal de ejecución. Cuando el tratamiento de la interrupción termina, la ejecución continua. Para tratar a las interrupciones, se agrega un ciclo de interrupción al ciclo de instrucción. En el ciclo de interrupción, el procesador verifica si ha ocurrido alguna interrupción, indicado por la presencia de una señal de interrupción. Si no hay interrupciones pendientes, el procesador continúa con el ciclo de lectura y trae la próxima instrucción del programa en curso. Si hay una interrupción pendiente, el procesador suspende la ejecución del programa en curso y ejecuta una rutina de tratamiento de la interrupción. -CICLO DE INSTRUCCION- Un ciclo de instrucción (tambien llamado ciclo de traer y ejecutar) es el período de tiempo durante el cual un ordenador lee y procesa una instrucción de lenguaje máquina de su memoria o la secuencia de acciones que la unidad central (CPU) funciona para ejecutar cada instrucción de código de máquina en un programa. El nombre el ciclo traer-y-ejecutar comúnmente es usado.La instrucción debe ser traída de la memoria principal, y luego ejecutado por la CPU.Esto es fundamentalmente como un ordenador funciona, con su lectura de CPU y ejecución de una serie de instrucciones escritas en su lenguaje máquina.De esto surgen todas las funciones de un ordenador familiar a partir del final del usuario. -CICLO DE EJECUCION- Los pasos 3 y 4 dle ciclo de intruccion son parte del ciclo de ejecucion. Esos pasos cambiaran con cada instruccion. El primer paso del ciclo de ejecucion es proceso de memoria. La informacion es tranferida entre el CPU y el modulo I/O. Después es el Proceso de datos usa operaciones matemáticas así como operaciones lógicas en la referencia a datos.Alteraciones centrales son el siguiente paso, son una secuencia de operaciones, por ejemplo un salto la operación. El último paso es una operación combinada de todos los otros pasos.

6.3 DECODIFICACION DE UNA INSTRUCCIÓN En la mayoría de los casos se utiliza el microcódigo, que comprende microinstrucciones o códigos de micro instrucciones. Las microinstrucciones, por lo tanto son las instrucciones que en realidad son ejecutadas por el núcleo de ejecución o aritmética y lógica núcleo del procesador. Los códigos de microinstrucciones se obtienen mediante la traducción del original código de programa en una instrucción decodificador comprenden en el transformador, antes de ejecutar las instrucciones básicas en la ejecución. Con el fin de que un microprocesador será la búsqueda de apoyo, en general, esta función está incorporada en el microcódigo, que comprende de este modo el apoyo a las funciones que permite la traza. En un microprocesador que permite la localización suele ser señal de un maestro se utiliza para permitir que todos los tipos de rastros, este maestro señal que se llama una señal permitirá rastrear. RESUMEN Se trata de un objeto de la presente invención para proporcionar un método y un dispositivo para la prestación de un versátil programa de traducción de las instrucciones para ser ejecutadas por un procesador a microinstrucciones utilizados por el núcleo del procesador. UNIDAD DE DECODIFICACION Se encarga de decodificar la instrucción que se va a ejecutar. Es decir, saber qué instrucción es. Cuando el microprocesador lee de memoria una instrucción, el código de esa instrucción le llega a esta unidad. Esta unidad se encarga de interpretar ese código para averiguar el tipo de instrucción a realizar. Por ejemplo, instrucciones de suma, multiplicación, almacenamiento de datos en memoria,etc. UNIDAD DE EJECUCION Una vez que la unidad de decodificación sabe cuál es el significado de la instrucción leída de memoria, se lo comunica a la unidad de ejecución. Esta unidad será la encargada de consumar la ejecución y para ello activará las señales necesarias y en un orden determinado. Es decir, es la encargada de dar las órdenes necesarias a las diversas partes del microprocesador para poder ejecutar cada una de las instrucciones. UNIDAD ARITMETICO LOGICA (ALU) La ALU (Aritmethic Logic Unit) es el bloque funcional del microprocesador encargado de realizar todas aquellas operaciones matemáticas. Las operaciones que realiza son las siguientes: suma, resta, multiplicación, división y aquellas que trabajan con dígitos binarios (10 que se conoce como operaciones lógicas: ANO, NOR, NOT, NANO, OR, X-OR, etc). En suma, saber cómo funciona un microprocesador, implica conocer cómo se van ejecutando cada una de las instrucciones del programa que se almacena en memoria. Los pasos globales que se siguen a la hora de consumar una instrucción son: EJECUCIÓN DE LAS INSTRUCCIONES Para que un programa pueda ser ejecutado por un ordenador, ha de estar almacenado en la memoria central (memoria RAM). El microprocesador tomará una a una las instrucciones que lo componen e irá realizando las tareas correspondientes. Se denomina ciclo de instrucción al conjunto de acciones que se llevan a cabo en la realización de una instrucción. Se compone de dos fases: Se compone de dos fases: .Fase de búsqueda. En esta fase se transfiere la instrucción que se va a ejecutar desde la memoria central a la unidad de control. .Fase de ejecución. Consiste en la realización de todas las acciones que conlleva la propia instrucción. Una forma de clasificar los microprocesadores es en función de las instrucciones que son capaces de ejecutar. Podemos encontrar dos tipos: microprocesadores: con tecnología CISC y RISC. CISC Complex Instructions Set Computer, Ordenador con un conjunto de instrucciones complejo. RISC Reduced Instructions Set Computer, Ordenador con un conjunto de instrucciones reducido. Cuando se desee que un microprocesador RISC ejecute cierta instrucción que no entiende, ésta se descompondrá en varias instrucciones de las sencillas que sí entiende. Aún así, descomponiendo una instrucción compleja en varias sencillas, es capaz de operar mucho más rápido que el microprocesador CISC, el cual no tiene que descomponer esa instrucción porque la entiende directamente. Prácticamente, todos los microprocesadores que se utilizan en la fabricación de ordenadores personales (microprocesadores fabricados por Intel) son de tecnología CISC. Intel, poco a poco, va abandonando la tecnología CISC y la sustituye por tecnología RISC. Así por ejemplo, un Pentium, sin dejar de pertenecer a la categoria CISC incorpora algunas caracteristicas de los micros RISC. Es de esperar que en un futuro, los micros fabricados sean de tecnología RISC; entonces los ordenadores serán muchísimo más rápido de lo que hoy los conocemos.

6.4 COMUNICACIÓN DEL PROCESADOR CON EL RESTO DEL SISTEMA En los microcomputadores, la comunicación entre la CPU y otros dispositivos como memorias y puertos se efectúa a través del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura. Esta no es la única aplicación de los decodificadores en los microcomputadores. Internamante dentro del a CPU también existe un decodificador, llamado el Instruction Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU. El procesador (en realidad una forma abreviada para el microprocesador y también a menudo llamada la CPU o unidad central de procesamiento) es el componente central de la PC. Es el cerebro que se ejecuta el programa en el interior de la PC. Todo el trabajo que usted hace en su computadora se realiza directa o indirectamente por el procesador. Obviamente, es uno de los más importantes componentes de la PC, si no la más importante. También es, científicamente, una de las más maravillosas partes de la PC, es uno de los más asombrosos dispositivos en el mundo de la tecnología. Características: El procesador es probablemente el más importante factor determinante del rendimiento del sistema en el PC. Mientras que otros componentes también juegan un papel clave en la determinación de rendimiento, el procesador tiene capacidad de dictar el máximo rendimiento de un sistema. Los otros dispositivos sólo permiten que el procesador alcanze su pleno potencial. Soporte de Software: Entre más reciente, más rápidos son procesadores y permiten el uso del software más reciente. Además, los nuevos procesadores como el Pentium MMX con la Tecnología, permitirá la utilización de software especializado y no utilizables en las anteriores máquinas. Confiabilidad y estabilidad: El procesador de calidad es un factor que determina la forma fiable confunsiona el sistema. Si bien la mayoría de los procesadores son muy fiables, otros no. Esto también depende en cierta medida de la edad del procesador y la cantidad de energía que consume. Consumo de energía: Originalmente los procesadores consumen relativamente poca energía en comparación con otros dispositivos del sistema. Procesadores mas nuevos pueden consumir una gran cantidad de energia. El consumo de energía tiene un impacto en todo, desde el enfriamiento al método de selección general de la fiabilidad del sistema. Placa madre de Apoyo: El procesador, de decidir el uso de su sistema será un factor importante en la determinación de qué tipo de chipset debe utilizar, y la placa base, por lo tanto, lo que usted compra. La placa madre, a su vez, exige muchos aspectos de sus capacidades del sistema y el rendimiento. Teniendo en cuenta lo importante que es, el valor de un procesador se mide a través de muy pocos parámetros. Dado que la mayoría de los procesadores trabajan de manera similar y tienen similares características externas (es decir, en términos de cómo un usuario ve) la cuestión más importante es: “¿qué tan rápido corre?” .Esta es la pregunta justa a centrarse, lo que realmente cuenta a la computadora de un usuario, es el nivel de rendimiento del procesador en cuestión. Dependiendo del tipo de procesador y su velocidad, se obtendrá un mejor o peor rendimiento. La velocidad de los procesadores se mide en Megahertz (MHZ = millones de ciclos por segundo, este parámetro indica el número de ciclos de instrucciones que el procesador realiza por segundo, pero solo sirve para compararlo con procesadores del mismo tipo, por ejemplo un procesador 586 de 133 MHz no es más rápido que un pentium de 100 MHz. El rendimiento no depende solo del procesador, sino de otros componentes y para que se utiliza.

En el nivel más elemental, una computadora procesa datos. Las empresas desarrollan departamentos de procesamiento de datos ( programación de computadoras ), pues las computadoras procesan datos para producir información significativa. Los datos se construyen de hechos y cifras en bruto (sin procesar). La información está constituida por los datos procesados; la información tiene significado, los datos no. La computadora y sus programas llevan a cabo el procesamiento de la entrada; por lo tanto el programa convierte los datos en información útil. Los datos generalmente se introducen por medio de algún dispositivo de entrada, como un teclado. La información generalmente se envía a un dispositivo de salida, como una pantalla, una impresora o un archivo en disco. La entrada y la salida de la computadora pueden provenir de y dirigirse a muchos tipos de dispositivos distintos. La computadora es un dispositivo electrónico capaz de recibir un conjunto de instrucciones y ejecutarlas realizando cálculos sobre los datos numéricos, o bien compilando y correlacionando otros tipos de información. El mundo de la alta tecnología nunca hubiera existido de no ser por el desarrollo del ordenador o computadora. Toda la sociedad utiliza estas máquinas, en distintos tipos y tamaños, para el almacenamiento y manipulación de datos. Los equipos informáticos han abierto una nueva era en la fabricación gracias a las técnicas de automatización, y han permitido mejorar los sistemas modernos de comunicación. Son herramientas esenciales prácticamente en todos los campos de investigación y en tecnología aplicada. En 1670 el filósofo y matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta máquina e inventó una que también podía multiplicar. El inventor francés Joseph Marie Jacquard, al diseñar un telar automático, utilizó delgadas placas de madera perforadas para controlar el tejido utilizado en los diseños complejos. Durante la década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar tarjetas perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió compilar la información estadística destinada al censo de población de 1890 de Estados Unidos mediante la utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos. También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró los principios de la computadora digital moderna. Inventó una serie de máquinas, como la máquina diferencial, diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores consideran a Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del poeta inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero una de sus invenciones, la máquina analítica, ya tenía muchas de las características de un ordenador moderno. Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas, una memoria para guardar los datos, un procesador para las operaciones matemáticas y una impresora para hacer permanente el registro. Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los primeros modelos realizaban los cálculos mediante ejes y engranajes giratorios. Con estas máquinas se evaluaban las aproximaciones numéricas de ecuaciones demasiado difíciles como para poder ser resueltas mediante otros métodos. Durante las dos guerras mundiales se utilizaron sistemas informáticos analógicos, primero mecánicos y más tarde eléctricos, para predecir la trayectoria de los torpedos en los submarinos y para el manejo a distancia de las bombas en la aviación. Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que trabajaban en Bletchley Park, al norte de Londres, crearon lo que se consideró el primer ordenador digital totalmente electrónico: el Colossus. Hacia diciembre de 1943 el Colossus, que incorporaba 1.500 válvulas o tubos de vacío, era ya operativo. Fue utilizado por el equipo dirigido por Alan Turing para descodificar los mensajes de radio cifrados de los alemanes. En 1939 y con independencia de este proyecto, John Atanasoff y Clifford Berry ya habían construido un prototipo de máquina electrónica en el Iowa State College (EEUU). Este prototipo y las investigaciones posteriores se realizaron en el anonimato, y más tarde quedaron eclipsadas por el desarrollo del Calculador e integrador numérico electrónico (en inglés ENIAC, Electronic Numerical Integrator and Computer) en 1946. El ENIAC, que según se demostró se basaba en gran medida en el ordenador Atanasoff-Berry (en inglés ABC, Atanasoff-Berry Computer), obtuvo una patente que caducó en 1973, varias décadas más tarde. El ENIAC contenía 18.000 válvulas de vacío y tenía una velocidad de varios cientos de multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía ser modificado manualmente. Se construyó un sucesor del ENIAC con un almacenamiento de programa que estaba basado en los conceptos del matemático húngaro-estadounidense John von Neumann. Las instrucciones se almacenaban dentro de una llamada memoria, lo que liberaba al ordenador de las limitaciones de velocidad del lector de cinta de papel durante la ejecución y permitía resolver problemas sin necesidad de volver a conectarse al ordenador. A finales de la década de 1950 el uso del transistor en los ordenadores marc ó el advenimiento de elementos lógicos más pequeños, rápidos y versátiles de lo que permitían las máquinas con válvulas. Como los transistores utilizan mucha menos energía y tienen una vida útil más prolongada, a su desarrollo se debió el nacimiento de máquinas más perfeccionadas, que fueron llamadas ordenadores o computadoras de segunda generación. Los componentes se hicieron más pequeños, así como los espacios entre ellos, por lo que la fabricación del sistema resultaba más barata. A finales de la década de 1960 apareció el circuito integrado (CI), que posibilitó la fabricación de varios transistores en un único sustrato de silicio en el que los cables de interconexión iban soldados. El circuito integrado permitió una posterior reducción del precio, el tamaño y los porcentajes de error. El microprocesador se convirtió en una realidad a mediados de la década de 1970, con la introducción del circuito de integración a gran escala (LSI, acrónimo de Large Scale Integrated) y, más tarde, con el circuito de integración a mayor escala (VLSI, acrónimo de Very Large Scale Integrated), con varios miles de transistores interconectados soldados sobre un único sustrato de silicio.
 * ISRAEL HERNÁNDEZ GARCÍA ** ** HISTORIA DE LOS ORDENADORES **
 * Historia del Computador : **


 * GENERACIONES DE LOS ORDENADORES **

Uno de los primeros dispositivos mecánicos para contar fue el ábaco, cuya historia se remonta a las antiguas civilizaciones griega y romana. Este dispositivo es muy sencillo, consta de cuentas ensartadas en varillas que a su vez están montadas en un marco rectangular. Al desplazar las cuentas sobre varillas, sus posiciones representan valores almacenados, y es mediante dichas posiciones que este representa y almacena datos. A este dispositivo no se le puede llamar computadora por carecer del elemento fundamental llamado programa. Otro de los inventos mecánicos fue la Pascalina inventada por Blaise Pascal (1623 - 1662) de Francia y la de Gottfried Wilhelm von Leibniz (1646 - 1716) de Alemania. Con estas máquinas, los datos se representaban mediante las posiciones de los engranajes, y los datos se introducían manualmente estableciendo dichas posiciones finales de las ruedas, de manera similar a como leemos los números en el cuentakilómetros de un automóvil. La primera computadora fue la //** máquina analítica **// creada por Charles Babbage, profesor matemático de la Universidad de Cambridge en el siglo XIX. La idea que tuvo Charles Babbage sobre un computador nació debido a que la elaboración de las tablas matemáticas era un proceso tedioso y propenso a errores. En 1823 el gobierno Británico lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas. Mientras tanto Charles Jacquard (francés), fabricante de tejidos, había creado un telar que podía reproducir automáticamente patrones de tejidos leyendo la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. Al enterarse de este método Babbage abandonó la máquina de diferencias y se dedico al proyecto de la máquina analítica que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos. La tecnología de la época no bastaba para hacer realidad sus ideas. El mundo no estaba listo, y no lo estaría por cien años más. En 1944 se construyó en la Universidad de Harvard, la Mark I, diseñada por un equipo encabezado por Howard H. Aiken. Esta máquina no está considerada como computadora electrónica debido a que no era de propósito general y su funcionamiento estaba basado en dispositivos electromecánicos llamados relevadores. En 1947 se construyó en la Universidad de Pennsylvania la ENIAC (Electronic Numerical Integrator And Calculator) que fue la primera computadora electrónica, el equipo de diseño lo encabezaron los ingenieros John Mauchly y John Eckert. Esta máquina ocupaba todo un sótano de la Universidad, tenía más de 18 000 tubos de vacío, consumía 200 KW de energía eléctrica y requería todo un sistema de aire acondicionado, pero tenía la capacidad de realizar cinco mil operaciones aritméticas en un segundo. El proyecto, auspiciado por el departamento de Defensa de los Estados Unidos, culminó dos años después, cuando se integró a ese equipo el ingeniero y matemático húngaro John von Neumann (1903 - 1957). Las ideas de von Neumann resultaron tan fundamentales para su desarrollo posterior, que es considerado el padre de las computadoras. La EDVAC (Electronic Discrete Variable Automatic Computer) fue diseñada por este nuevo equipo. Tenía aproximadamente cuatro mil bulbos y usaba un tipo de memoria basado en tubos llenos de mercurio por donde circulaban señales eléctricas sujetas a retardos. La idea fundamental de von Neumann fue: permitir que en la memoria coexistan datos con instrucciones, para que entonces la computadora pueda ser programada en un lenguaje, y no por medio de alambres que eléctricamente interconectaban varias secciones de control , como en la ENIAC. Todo este desarrollo de las computadoras suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos: · La forma en que están construidas. · Forma en que el ser humano se comunica con ellas. Primera Generación ** En esta generación había una gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos. Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características: · Estas máquinas estaban construidas por medio de tubos de vacío. · Eran programadas en lenguaje de máquina. En esta generación las máquinas son grandes y costosas (de un costo aproximado de ciento de miles de dólares). En 1951 aparece la UNIVAC (NIVersAl Computer), fue la primera computadora comercial, que disponía de mil palabras de memoria central y podían leer cintas magnéticas, se utilizó para procesar el censo de 1950 en los Estados Unidos. En las dos primeras generaciones, las unidades de entrada utilizaban tarjetas perforadas, retomadas por Herman Hollerith (1860 - 1929), quien además fundó una compañía que con el paso del tiempo se conocería como IBM (International Bussines Machines). Después se desarrolló por IBM la //** IBM **////** 701 **// de la cual se entregaron 18 unidades entre 1953 y 1957. Posteriormente, la compañía Remington Rand fabricó el modelo 1103, que competía con la 701 en el campo científico, por lo que la IBM desarrollo la 702, la cual presentó problemas en memoria, debido a esto no duró en el mercado. La computadora más exitosa de la primera generación fue la IBM 650, de la cual se produjeron varios cientos. Esta computadora que usaba un esquema de memoria secundaria llamado tambor magnético, que es el antecesor de los discos actuales. Otros modelos de computadora que se pueden situar en los inicios de la segunda generación son: la UNIVAC 80 y 90, las IBM 704 y 709, Burroughs 220 y UNIVAC 1105. Segunda Generación ** Cerca de la década de 1960, las computadoras seguían evolucionando, se reducía su tamaño y crecía su capacidad de procesamiento. También en esta época se empezó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas. Las características de la segunda generación son las siguientes: · Están construidas con circuitos de transistores. · Se programan en nuevos lenguajes llamados lenguajes de alto nivel. En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Algunas de estas computadoras se programaban con cintas perforadas y otras más por medio de cableado en un tablero. Los programas eran hechos a la medida por un equipo de expertos: analistas, diseñadores, programadores y operadores que se manejaban como una orquesta para resolver los problemas y cálculos solicitados por la administración. El usuario final de la información no tenía contacto directo con las computadoras. Esta situación en un principio se produjo en las primeras computadoras personales, pues se requería saberlas "programar" (alimentarle instrucciones) para obtener resultados; por lo tanto su uso estaba limitado a aquellos audaces pioneros que gustaran de pasar un buen número de horas escribiendo instrucciones, "corriendo" el programa resultante y verificando y corrigiendo los errores o bugs que aparecieran. Además, para no perder el "programa" resultante había que "guardarlo" (almacenarlo) en una grabadora de astte, pues en esa época no había discos flexibles y mucho menos discos duros para las PC; este procedimiento podía tomar de 10 a 45 minutos, según el programa. El panorama se modificó totalmente con la aparición de las computadoras personales con mejore circuitos, más memoria, unidades de disco flexible y sobre todo con la aparición de programas de aplicación general en donde el usuario compra el programa y se pone a trabajar. Aparecen los programas procesadores de palabras como el célebre Word Star, la impresionante hoja de cálculo (spreadsheet) Visicalc y otros más que de la noche a la mañana cambian la imagen de la PC. El sortware empieza a tratar de alcanzar el paso del hardware. Pero aquí aparece un nuevo elemento: el usuario. El usuario de las computadoras va cambiando y evolucionando con el tiempo. De estar totalmente desconectado a ellas en las máquinas grandes pasa la PC a ser pieza clave en el diseño tanto del hardware como del software. Aparece el concepto de human interface que es la relación entre el usuario y su computadora. Se habla entonces de hardware ergonómico (adaptado a las dimensiones humanas para reducir el cansancio), diseños de pantallas antirreflejos y teclados que descansen la muñeca. Con respecto al software se inicia una verdadera carrera para encontrar la manera en que el usuario pase menos tiempo capacitándose y entrenándose y más tiempo produciendo. Se ponen al alcance programas con menús (listas de opciones) que orientan en todo momento al usuario (con el consiguiente aburrimiento de los usuarios expertos); otros programas ofrecen toda una artillería de teclas de control y teclas de funciones (atajos) para efectuar toda suerte de efectos en el trabajo (con la consiguiente desorientación de los usuarios novatos). Se ofrecen un sinnúmero de cursos prometiendo que en pocas semanas hacen de cualquier persona un experto en los programas comerciales. Pero el problema "constante" es que ninguna solución para el uso de los programas es "constante". Cada nuevo programa requiere aprender nuevos controles, nuevos trucos, nuevos menús. Se empieza a sentir que la relación usuario-PC no está acorde con los desarrollos del equipo y de la potencia de los programas. Hace falta una relación amistosa entre el usuario y la PC. Las computadoras de esta generación fueron: la Philco 212 (esta compañía se retiró del mercado en 1964) y la UNIVAC M460, la Control Data Corporation modelo 1604, seguida por la serie 3000, la IBM mejoró la 709 y sacó al mercado la 7090, la National Cash Register empezó a producir máquinas para proceso de datos de tipo comercial, introdujo el modelo NCR 315. La Radio Corporation of America introdujo el modelo 501, que manejaba el lenguaje COBOL, para procesos administrativos y comerciales. Después salió al mercado la RCA 601. Tercera generación ** Con los progresos de la electrónica y los avances de comunicación con las computadoras en la década de los 1960, surge la //** tercera generación **// de las computadoras. Se inaugura con la IBM 360 en abril de 1964.3 Las características de esta generación fueron las siguientes: · Su fabricación electrónica esta basada en circuitos integrados. · Su manejo es por medio de los lenguajes de control de los sistemas operativos. La IBM produce la serie 360 con los modelos 20, 22, 30, 40, 50, 65, 67, 75, 85, 90, 195 que utilizaban técnicas especiales del procesador, unidades de cinta de nueve canales, paquetes de discos magnéticos y otras características que ahora son estándares (no todos los modelos usaban estas técnicas, sino que estaba dividido por aplicaciones). El sistema operativo de la serie 360, se llamó OS que contaba con varias configuraciones, incluía un conjunto de técnicas de manejo de memoria y del procesador que pronto se convirtieron en estándares. En 1964 CDC introdujo la serie 6000 con la computadora 6600 que se consideró durante algunos años como la más rápida. En la década de 1970, la IBM produce la serie 370 (modelos 115, 125, 135, 145, 158, 168). UNIVAC compite son los modelos 1108 y 1110, máquinas en gran escala ; mientras que CDC produce su serie 7000 con el modelo 7600. Estas computadoras se caracterizan por ser muy potentes y veloces. A finales de esta década la IBM de su serie 370 produce los modelos 3031, 3033, 4341. Burroughs con su serie 6000 produce los modelos 6500 y 6700 de avanzado diseño, que se reemplazaron por su serie 7000. Honey - Well participa con su computadora DPS con varios modelos. A mediados de la década de 1970, aparecen en el mercado las computadoras de tamaño mediano, o //** minicomputadoras **// que no son tan costosas como las grandes (llamadas también como //** mainframes **// que significa también, gran sistema), pero disponen de gran capacidad de procesamiento. Algunas minicomputadoras fueron las siguientes: la PDP - 8 y la PDP - 11 de Digital Equipment Corporation, la VAX (Virtual Address eXtended) de la misma compañía, los modelos NOVA y ECLIPSE de Data General, la serie 3000 y 9000 de Hewlett - Packard con varios modelos el 36 y el 34, la Wang y Honey - Well -Bull, Siemens de origen alemán, la ICL fabricada en Inglaterra. En la Unión Soviética se utilizó la US (Sistema Unificado, Ryad) que ha pasado por varias generaciones. Cuarta Generación ** Aquí aparecen los //** microprocesadores **// que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Las microcomputadoras con base en estos circuitos son extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada //** " revolución informática " **//**.** En 1976 Steve Wozniak y Steve Jobs inventan la primera microcomputadora de uso masivo y más tarde forman la compañía conocida como la Apple que fue la segunda compañía más grande del mundo, antecedida tan solo por IBM; y esta por su parte es aún de las cinco compañías más grandes del mundo. En 1981 se vendieron 800 00 computadoras personales, al siguiente subió a 1 400 000. Entre 1984 y 1987 se vendieron alrededor de 60 millones de computadoras personales, por lo que no queda duda que su impacto y penetración han sido enormes. Con el surgimiento de las computadoras personales, el software y los sistemas que con ellas de manejan han tenido un considerable avance, porque han hecho más interactiva la comunicación con el usuario. Surgen otras aplicaciones como los procesadores de palabra, las hojas electrónicas de cálculo, paquetes gráficos, etc. También las industrias del Software de las computadoras personales crece con gran rapidez, Gary Kildall y William Gates se dedicaron durante años a la creación de sistemas operativos y métodos para lograr una utilización sencilla de las microcomputadoras (son los creadores de CP/M y de los productos de Microsoft ). No todo son microcomputadoras, por su puesto, las minicomputadoras y los grandes sistemas continúan en desarrollo. De hecho las máquinas pequeñas rebasaban por mucho la capacidad de los grandes sistemas de 10 o 15 años antes, que requerían de instalaciones costosas y especiales, pero sería equivocado suponer que las grandes computadoras han desaparecido; por el contrario, su presencia era ya ineludible en prácticamente todas las esferas de control gubernamental, militar y de la gran industria. Las enormes computadoras de las series CDC, CRAY, Hitachi o IBM por ejemplo, eran capaces de atender a varios cientos de millones de operaciones por segundo. Quinta Generación ** En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras. Surge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a través de códigos o lenguajes de control especializados. Japón lanzó en 1983 el llamado "programa de la quinta generación de computadoras", con los objetivos explícitos de producir máquinas con innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera: · Procesamiento en paralelo mediante arquitecturas y diseños especiales y circuitos de gran velocidad. · Manejo de lenguaje natural y sistemas de inteligencia artificial. El futuro previsible de la computación es muy interesante, y se puede esperar que esta ciencia siga siendo objeto de atención prioritaria de gobiernos y de la sociedad en conjunto. Las computadoras digitales actuales se ajustan al modelo propuesto por el matemático John Von Neumann. De acuerdo con el, una característica importante de este modelo es que tanto los datos como los programas, se almacenan en la memoria antes de ser utilizados. REFRENCIA:http://www.uclm.es/profesorado/ricardo/webnntt/Bloque%201/Historia.htm
 * MODELO DE VON NEUMANN **


 * ISRAEL HERNANDEZ G **

El **Fortran** (previamente **FORTRAN**) (del inglés **//For//**//mula **Tran**slating System//) es un lenguaje de programación alto nivel de propósito general,e imperativo, que está especialmente adaptado al cálculo numérico y a la computación científica. Desarrollado originalmente por IBM en 1957 para el equipo IBM 704, y usado para aplicaciones científicas y de ingeniería, el FORTRAN vino a dominar esta área de la programación desde el principio y ha estado en uso continuo por más de medio siglo en áreas de cómputo intensivo tales como la predicción numérica del tiempo, análisis de elementos finitos, dinámica de fluidos computacional (CFD), física computacional, y química computacional. Es una de los lenguajes más populares en el área de la computación de alto rendimiento y es el lenguaje usado para programas que evalúan el desempeño (benchmark) y el ranking de los supercomputadores más rápidos del mundo. El FORTRAN (una palabra compuesta, derivada de //The IBM Mathematical **For**mula **Tran**slating System//) abarca un linaje de versiones, cada una de las cuales evolucionó para añadir extensiones al lenguaje mientras que usualmente retenía compatibilidad con las versiones previas. Versiones sucesivas han añadido soporte para procesamiento de datos basados en caracteres (FORTRAN 77), programación de arreglos, programación modular y programación orientada a objetos (Fortran 90/95), y programación genérica (Fortran 2003).

A finales de 1956, John W. Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar el computador central IBM 704. El histórico equipo FORTRAN de Backus consistió en los programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre. A mediados de 1954 fue terminada una especificación del borrador para //The IBM Mathematical Formula Translating System//. El primer manual para el FORTRAN apareció en octubre de 1956, porque los clientes eran reacios a usar un lenguaje de programación de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador. Mientras que la comunidad era escéptica en que este nuevo método pudiera posiblemente superar la codificación a mano, éste redujo por un factor de 20 al número de sentencias de programación necesarias para operar una máquina, y rápidamente ganó aceptación. Durante una entrevista en 1979 con Think, la revista de los empleados de IBM, el creador, John Backus, dijo, "Mucho de mi trabajo ha venido de ser perezoso. No me gustaba escribir programas, y por eso, cuando estaba trabajando en el IBM 701 escribiendo programas para computar trayectorias de misiles, comencé el trabajo sobre un sistema de programación para hacer más fácil escribir programas". El lenguaje fue ampliamente adoptado por los científicos para escribir programas numéricamente intensivos, que incentivó a los escritores de compiladores a producir compiladores que pudieran generar un código más rápido y más eficiente. La inclusión en el lenguaje de un tipo de datos y de la aritmética de números complejos amplió la gama de aplicaciones para las cuales el lenguaje se adaptaba especialmente e hizo al FORTRAN especialmente adecuado para aplicaciones técnicas tales como la ingeniería eléctrica. Por 1960, las versiones de FORTRAN estaban disponibles para los computadors IBM 709, 650, 1620, y 7090. Significativamente, la cada vez mayor popularidad del FORTRAN estimuló a fabricantes de computadores de la competencia a proporcionar compiladores FORTRAN para sus máquinas, así que por 1963 existían más de 40 compiladores FORTRAN. Por estas razones, el FORTRAN es considerado ser el primer lenguaje de programación ampliamente usado soportado a través de una variedad de arquitecturas de computador. El desarrollo del FORTRAN fue paralelo a la temprana evolución de la tecnología del compilador. De hecho, muchos avances en la teoría y el diseño de compiladores fueron motivados específicamente por la necesidad de generar código eficiente para los programas en FORTRAN
 * HISTORIA FORTRAN **

Principales características
El lenguaje fue diseñado teniendo en cuenta que los programas serían escritos en tarjetas perforadas de 80 columnas. Así por ejemplo, las líneas debían ser numeradas y la única alteración posible en el orden de ejecución era producida con la instrucción //goto//. Estas características han evolucionado de versión en versión. Las actuales contienen subprogramas, recursión y una variada gama de estructuras de control.

Ventajas e inconvenientes de su sintaxis
Lo que fue la primera tentativa de proyección de un lenguaje de programación de alto nivel, tiene una sintaxis considerada arcaica por muchos programadores que aprenden lenguajes más modernos. Es difícil escribir un bucle "for", y errores en la escritura de sólo un carácter pueden llevar a errores durante el tiempo de ejecución en vez de errores de compilación, en el caso de que no se usen las construcciones más frecuentes. Algunas de las versiones anteriores no poseían facilidades que son consideradas como útiles en las máquinas modernas, como la asignación dinámica de memoria. Se debe tener en cuenta que la sintaxis de Fortran fue afinada para el uso en trabajos numéricos y científicos. Muchas de sus deficiencias han sido abordadas en revisiones recientes del lenguaje. Por ejemplo, Fortran 95 posee comandos mucho más breves para efectuar operaciones matemáticas con matrices y dispone de tipos. Esto no sólo mejora mucho la lectura del programa sino que además aporta información útil al compilador. Por estas razones Fortran no es muy usado fuera de los campos de la informática y el análisis numérico, pero permanece como el lenguaje a escoger para desempeñar tareas de computación numérica de alto rendimiento. EJEMPLO FORTRAN

code c Programa en fortran77 que resuelve un producto de c dos matrices, usando BLAS program mul_mat implicit none c c Declaracion de variables integer K, LDA,LDB,LDC, M, N       parameter   (K = 4) parameter  (M = 3) parameter  (N = 2) parameter  (LDA = M)        parameter   (LDB = K)        parameter   (LDC = M)        real A(LDA,K), ALPHA, B(LDB,N), BETA, C(LDC,N) integer I,J c c Inicializa los arreglos A, B con los sig. valores: c c       1  2 6 -1          2  1 c   A = 2 -1 1  1     B = -1  3 c       3 -2 2 -3          1  1 c                          3 -2 c data A / 1.0, 2.0, 3.0, $          2.0, -1.0, -2.0,     $           6.0, 1.0, 2.0,     $          -1.0, 1.0, -3.0 /        data B / 2.0, -1.0, 1.0, 3.0, 1.0, 3.0, 1.0, -2.0 / c print 1000 print 1010, ((A(I,J), J=1,K), I=1,M) print 1020 print 1030, ((B(I,J), J=1,N), I=1,K) ALPHA = 1.0 BETA = 0.0 c c Invocacion de la rutina SGEMM de BLAS call SGEMM('No transpuesta de A','No transpuesta de B', M, N, K,    $       ALPHA, A, LDA, B, LDB, BETA,C, LDC) print 1040 print 1030, ((C(I,J), J=1,N), I=1,M) 1000  format (1X, 'A:') 1010  format (4(3X, F5.1)) 1020  format (/1X, 'B:') 1030  format (2(3X, F5.1)) 1040  format (/1X, 'AB:') end
 * Ejemplo 1. Subrutina //sgemm// (BLAS-3)**

code

El lenguaje **COBOL** (acrónimo de **//CO//**//mmon **B**usiness -**O**riented **L**anguage//, //Lenguaje Común Orientado a Negocios//) fue creado en el año 1960 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.
 * ISRAEL HERNANDEZ G **
 * COBOL **

Historia COBOL
En la creación de este lenguaje participó la comisión CODASYL, compuesta por fabricantes de ordenadores, usuarios y el Departamento de Defensa de Estados Unidos en mayo de 1959. La definición del lenguaje se completó en poco más de seis meses, siendo aprobada por la comisión en enero de 1960. El lenguaje COBOL fue diseñado inspirándose en el lenguaje Flow-Matic de Grace Hopper y el IBM COMTRAN de Bob Bemer, ya que ambos formaron parte de la comisión. Gracias a la ayuda de los usuarios COBOL evolucionó rápidamente y fue revisado de 1961 a 1965 para añadirle nuevas funcionalidades. En 1968 salió la primera versión ANSI del lenguaje, siendo revisada posteriormente en 1974 (COBOL ANS-74), 1985 (COBOL ANS-85, ampliado en 1989 con funciones matemáticas, finalizando el estándar actual más usado, conocido como COBOL-ANSI), y en 2002 (COBOL ANS-2002). Desde el año 2007 se viene preparando una nueva revisión del lenguaje. Además, existe una versión conocida como COBOL ENTERPRISE, actualizada regularmente y lanzada en 1991, usada generalmente en sistemas Host.]]

Características
Pese a esto, a comienzos de los ochenta se fue quedando anticuado respecto a los nuevos paradigmas de programación y a los lenguajes que los implementaban. En la revisión de 1985 se solucionó, incorporando a COBOL variables locales, recursividad, reserva de memoria dinámica y programación estructurada. En la revisión de 2002 se le añadió orientación a objetos, aunque desde la revisión de 1974 se podía crear un entorno de trabajo similar a la orientación a objetos, y un método de generación de pantallas gráficas estandarizado. Antes de la inclusión de las nuevas características en el estándar oficial, muchos fabricantes de compiladores las añadían de forma no estándar. En la actualidad este proceso se está viendo con la integración de COBOL con Internet. Existen varios compiladores que permiten emplear COBOL como lenguaje de scripting y de servicio web. También existen compiladores que permiten generar código COBOL para la plataforma .NET y EJB. EJEMPLO EN COBOL
 * COBOL fue dotado de unas excelentes capacidades de autodocumentación
 * Una buena gestión de archivos y una excelente gestión de los tipos de datos para la época, a través de la conocida sentencia PICTURE para la definición de campos estructurados. Para evitar errores de redondeo en los cálculos que se producen al convertir los números a binario y que son inaceptables en temas comerciales, COBOL puede emplear y emplea por defecto números en base diez . Para facilitar la creación de programas en COBOL, la sintaxis del mismo fue creada de forma que fuese parecida al idioma inglés, evitando el uso de símbolos que se impusieron en lenguajes de programación posteriores.

Identifaction Division. Program-ID. Burbuja. Data Division. Working-storage section. 01 Tabla-N. 05 N PIC 9(4) occurs 10 Times 01 Variables. 05 i PIC 9(4). 05 j PIC 9(4). 05 aux PIC 9(4). 01 Salida PIC Z(3)9. Procedure Division. Proceso-Principal. Perform varying i from 1 by 1 until i>10 Accept N (i) End-Perform Perform Ordenar Varying i from 9 by -1 until i<1 After j from 1 by 1 until j>i Perform varying i from 1 by 1 until i>10 Move N (i) to Salida Display Salida End-Perform Stop Run. Ordenar. If N (j) > N (j+1) then Move N (j) to Aux Move N (j+1) to N (j) Move aux to N (j+1) End-If. **
 * Ordenación de una secuencia de 10 números

RFERENCIA:http://www.dma.eui.upm.es/historia_informatica/Doc/Lenguajes/Cobol.htm Lenguaje de máquina
 * ISRAEL HERNANDEZ G **


 * Lenguaje de máquina ** es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata (un PLC) . Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa de computadora consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de cada máquina o arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas.

Lenguaje de máquina del Intel 8088. El código de máquina se resalta en rojo, el equivalente en lenguaje assembler en magenta, y las direcciones de memoria donde se encuentra el código, en azul. Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.

Una visión típica de la arquitectura de computadores como una serie de capas de abstracción: hardware, firmware, ensamblador, kernel, sistema operativo y aplicaciones. Claude Elwood Shannon, en su //Analysis of Relay and Switching Circuits//, y con sus experiencias en redes de conmutación, sentó las bases para la aplicación del álgebra de Boole a las redes de conmutación. Una red de conmutación es un circuito de interruptores eléctricos que al cumplir ciertas combinaciones booleanas con las variables de entrada, define el estado de la salida. Este concepto es el núcleo de las puertas lógicas, las cuales son, por su parte, los ladrillos con que se construyen sistemas lógicos cada vez más complejos. Shannon utilizaba el relé como dispositivo físico de conmutación en sus redes. El relé, a igual que una lámpara eléctrica, posee dos estados: 1 ó 0, esto es, está activado, encendida, o está desactivado, apagada.




 * LENGUAJE ENSAMBLADOR **

El **lenguaje ensamblador** es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador. Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido. Muchos dispositivos programables (como los microcontroladores) aun cuentan con el ensamblador como la única manera de ser manipulados.

Características

 * El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido directamente por un ser humano ya que su estructura se acerca más bien al lenguaje máquina, es decir, lenguaje de bajo nivel.
 * El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, suele necesitar ser modificado, muchas veces en su totalidad para poder ser usado en otra máquina distinta, aun con el mismo microprocesador.
 * Los programas hechos en lenguaje ensamblador son generalmente más rápidos y consumen menos recursos del sistema (memoria RAM y ROM). Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
 * Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles de programar en un lenguaje de alto nivel.
 * También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interumpa durante su ejecución.

La **unidad de control** (UC) es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Los otros dos bloques son la Unidad de proceso y el bus de entrada/salida. Su función es buscar las instrucciones en la memoria principal, decodificarlas (interpretación) y ejecutarlas, empleando para ello la unidad de proceso. Existen dos tipos de unidades de control, las cableadas, usadas generalmente en máquinas sencillas, y las microprogramadas, propias de máquinas más complejas. En el primer caso, los componentes principales son el circuito de lógica secuencial, el de control de estado, el de lógica combinacional y el de emisión de reconocimiento de señales de control. En el segundo caso, la microprogramación de la unidad de control se encuentra almacenada en una micromemoria, a la cual se accede de manera secuencial (1, 2, ..., n) para posteriormente ir ejecutando cada una de las microinstrucciones. La unidad de control el elemento que se encarga de sincronizar las acciones que realiza cada una de las unidades funcionales de un computador. Las funciones de la unidad de control son básicamente dos. Interpretación de las instrucciones: La unidad de control debe ser capaz de decodificar los códigos de operación y los modos de direccionamiento de las instrucciones y actuar de forma diferente para cada uno de ellos. Secuenciamiento de las operaciones: La unidad de control se encarga de la temporización de las distintas operaciones necesarias para la ejecución de cada instrucción. También debe controlar el secuenciamiento de las instrucciones en función de la evolución del registro contador de programa. Se llaman señales de control a las variables binarias que controlan las entradas y salidas de información de los registros y el funcionamiento de las unidades funcionales. La ejecución de una instrucción se divide en varias etapas que deben realizarse según una secuencia muy precisa de señales de control que establece la señal de control. Hay dos formas básicas para implementar la unidad de control: - Unidad de control cableada: Realiza sus funciones mediante elementos hardware. No la analizaremos en profundidad aquí. -Unidad de control microprogramada: Es mas lenta que la anterior, pero permite implementar instrucciones mas potentes y flexibles. Será analizada en profundidad en los siguientes apartados.
 * ISRAEL HERNANDEZ G**
 * 6.1FUNCION DE LA UNIDAD DE CONTROL DURANTE LA EJECUCION DE UNA INSTRUCCIÓN**

UNIDAD DE CONTROL ISRAEL HERNANDEZ G ** EJECUCIÓN DE UNA INSTRUCCIÓN Ahora se intentará conjuntar la secuencia de operaciones elementales necesarias para ejecutar una instrucción. Considérese la instrucción “Sumar el contenido de la localización NUM de la memoria al registro R1″. Para simplificar las cosas, la dirección NUM se da en forma explícita en el campo de dirección de la instrucción. Entonces, la localización NUM se especifica en el modo directo de memoria. La ejecución de esta instrucción requiere de las siguientes acciones. 1.Traer la instrucción 2.Traer el primer operando (el contenido de la localización de la memoria a la que señala el campo de dirección de la instrucción). 3.Realizar la adición 4.Cargar el resultado en RI. PASO 1 .- PC salida, MAR entrada, Leer, Borrar Y, Fijar el acarreo de la ALU, Suma, Zentrada 2.- Z salida, PC entrada, Espera a MFC 3.- MDR salida, IR salida 4.- Campo de dirección de IR salida, MAR entrada, Leer 5.- R1salida, Yentrada, Espera a MFC 6.- MDR salida, Suma, Z entrada 7.- Z salida, R1 entrada 8.- Fin


 * ISRAEL HERNANDEZ G**
 * 6.2 CICLO DE EJECUCIÓN DE UNA INSTRUCCIÓN **

Los pasos a seguir para el procesamiento de las instrucciones son los siguientes: 1. cada instrucción es leída ( una a la vez), desde la memoria, por el procesador y, 2. cada instrucción es ejecutada por el procesador. La repetición de la lectura y ejecución ( pasos 1 y 2 respectivamente), conforman la “ejecución de un programa”. Dicha ejecución puede detenerse si: la máquina se apaga, ocurre un error que no puede ser recuperado, o si, se encuentra una instrucción en el programa que detenga la computadora. Ciclo de instrucción: es el procesamiento requerido para la instrucción. En este Ciclo, se encuentran los dos pasos citados anteriormente, denominados Ciclo de lectura (feth) y Ciclo de ejecución. Lectura y ejecución de instrucciones El procesador lee una instrucción de la memoria, al comienzo de cada Ciclo de instrucción. Se cuenta con un contador de programas ( PC program counter ), que lleva la cuenta de cual es la próxima instrucción a leer. Luego de leer cada instrucción el procesador incrementara el PC, de manera tal que la siguiente instrucción a leer será; la que se encuentra en la dirección inmediatamente superior de la memoria. La instrucción leída es cargada en el registro de instrucción ( IR instuction register ), que es un registro del procesador. El procesador interpreta la instrucción, la cual está en forma de código binario, que especifica la acción que el procesador llevará a cabo, y realizará la acción requerida. Las acciones que se realizan para la lectura y ejecución de instrucciones se pueden clasificar en las siguientes categorías: · Procesador-memoria: los datos se transfieren del procesador a la memoria o viceversa. · Procesador E/S: los datos se transfieren desde o hacia un dispositivo periférico. Se realiza la transferencia entre el procesador y un módulo de entrada-salida. · Tratamiento de datos: el procesador puede realizar alguna operación aritmética o lógica sobre los datos. · Control: la secuencia de ejecución puede ser alterada si la instrucción lo especifica. La ejecución de una instrucción puede incluir una combinación de las acciones antes mencionadas. Funciones de E/S Los módulos de E/S, por ejemplo un controlador de disco, peden intercambiar datos directamente con el procesador y el este puede iniciar una escritura o lectura en la memoria, para ello debe indicar la dirección de una ubicación especifica. El procesador puede leer datos de un módulo de E/S o escribir en él, para ello indica a un dispositivo especifico que esta controlado por un determinado módulo de E/S. Para relevar al procesador de la tarea de E/S, es conveniente que los intercambios de E/S se produzcan directamente con la memoria. De esta manera el procesador le da a un módulo de E/S autoridad para leer o escribir en la memoria de modo que la transferencia de E/S se realiza sin obstruir al procesador. Se releva al procesador durante la transferencia de la responsabilidad de intercambio, ya que el modulo de E/S emite ordenes de lectura o escritura en la memoria. La operación realizada se conoce como DMA (direct memory access) o acceso directo a memoria.

En la mayoría de los casos se utiliza el microcódigo, que comprende microinstrucciones o códigos de micro instrucciones. Las microinstrucciones, por lo tanto son las instrucciones que en realidad son ejecutadas por el núcleo de ejecución o aritmética y lógica núcleo del procesador. Los códigos de microinstrucciones se obtienen mediante la traducción del original código de programa en una instrucción decodificador comprenden en el transformador, antes de ejecutar las instrucciones básicas en la ejecución. Con el fin de que un microprocesador será la búsqueda de apoyo, en general, esta función está incorporada en el microcódigo, que comprende de este modo el apoyo a las funciones que permite la traza. En un microprocesador que permite la localización suele ser señal de un maestro se utiliza para permitir que todos los tipos de rastros, este maestro señal que se llama una señal permitirá rastrear. RESUMEN Se trata de un objeto de la presente invención para proporcionar un método y un dispositivo para la prestación de un versátil programa de traducción de las instrucciones para ser ejecutadas por un procesador a microinstrucciones utilizados por el núcleo del procesador. UNIDAD DE DECODIFICACION Se encarga de decodificar la instrucción que se va a ejecutar. Es decir, saber qué instrucción es. Cuando el microprocesador lee de memoria una instrucción, el código de esa instrucción le llega a esta unidad. Esta unidad se encarga de interpretar ese código para averiguar el tipo de instrucción a realizar. Por ejemplo, instrucciones de suma, multiplicación, almacenamiento de datos en memoria,etc. UNIDAD DE EJECUCION Una vez que la unidad de decodificación sabe cuál es el significado de la instrucción leída de memoria, se lo comunica a la unidad de ejecución. Esta unidad será la encargada de consumar la ejecución y para ello activará las señales necesarias y en un orden determinado. Es decir, es la encargada de dar las órdenes necesarias a las diversas partes del microprocesador para poder ejecutar cada una de las instrucciones. UNIDAD ARITMETICO LOGICA (ALU) La ALU (Aritmethic Logic Unit) es el bloque funcional del microprocesador encargado de realizar todas aquellas operaciones matemáticas. Las operaciones que realiza son las siguientes: suma, resta, multiplicación, división y aquellas que trabajan con dígitos binarios (10 que se conoce como operaciones lógicas: ANO, NOR, NOT, NANO, OR, X-OR, etc). En suma, saber cómo funciona un microprocesador, implica conocer cómo se van ejecutando cada una de las instrucciones del programa que se almacena en memoria. Los pasos globales que se siguen a la hora de consumar una instrucción son: UNIDAD DE CONTROL Es el centro nervioso del ordenador, ya que desde ella se controlan y gobiernan todas las operaciones. Cómo funciones básicas tiene:
 * ISRAEL HERNANDEZ G.**
 * 6.3 DECODIFICACION DE UNA INSTRUCCION **

code * tomar las instrucciones de memoria code code * decodificar o interpretar las instrucciones code code * ejecutar las instrucciones ( tratar las situaciones de tipo interno (inherentes a la propia CPU) y de tipo externo (inherentes a los periféricos)  code Para realizar su función, la unidad de control consta de los siguientes elementos: code    * Contador de programa   code code    * Registro de instrucciones   code code    * Decodificador   code code    * Reloj   code code    * Secuenciador   code code    *   code code code code .Contador de programa. Contiene permanentemente la dirección de memoria de la siguiente instrucción a ejecutar. Al iniciar la ejecución de un programa toma la dirección de su primera instrucción. Incrementa su valor en uno, de forma automática, cada vez que se concluye una instrucción, salvo si la instrucción que se está ejecutando es de salto o de ruptura de secuencia, en cuyo caso el contador de programa tomará la dirección de la instrucción que se tenga que ejecutar a continuación; esta dirección está en la propia instrucción en curso. code .Registro de instrucción. Contiene la instrucción que se está ejecutando en cada momento. Esta instrucción llevará consigo el código de operación (un código que indica qué tipo de operación se va a realizar, por ejemplo una suma) y en su caso los operandos (datos sobre los que actúa la instrucción, por ejemplo los números a sumar) o las direcciones de memoria de estos operandos. .Decodificador. Se encarga de extraer el código de operación de la instrucción en curso (que está en el registro de instrucción), lo analiza y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador. .Reloj. Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes (frecuencia constante), que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instrucción. .Secuenciador. En este dispositivo se generan órdenes muy elementales (microórdenes) que, sincronizadas por los impulsos de reloj, hacen que se vaya ejecutando poco a poco la instrucción que está cargada en el registro de instrucción.


 * ISRAEL HERNANDEZ G **
 * 6.4 COMUNICACIÓN DEL PROCESADOR CON EL RESTO DEL SISTEMA **

En los microcomputadores, la comunicación entre la CPU y otros dispositivos como memorias y puertos se efectúa a través del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura. Esta no es la única aplicación de los decodificadores en los microcomputadores. Internamante dentro del a CPU también existe un decodificador, llamado el Instruction Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU. El procesador (en realidad una forma abreviada para el microprocesador y también a menudo llamada la CPU o unidad central de procesamiento) es el componente central de la PC. Es el cerebro que se ejecuta el programa en el interior de la PC. Todo el trabajo que usted hace en su computadora se realiza directa o indirectamente por el procesador. Obviamente, es uno de los más importantes componentes de la PC, si no la más importante. También es, científicamente, una de las más maravillosas partes de la PC, es uno de los más asombrosos dispositivos en el mundo de la tecnología. El procesador juega un papel importante en los siguientes aspectos importantes de su sistema: Características: El procesador es probablemente el más importante factor determinante del rendimiento del sistema en el PC. Mientras que otros componentes también juegan un papel clave en la determinación de rendimiento, el procesador tiene capacidad de dictar el máximo rendimiento de un sistema. Los otros dispositivos sólo permiten que el procesador alcanze su pleno potencial. Soporte de Software: Entre más reciente, más rápidos son procesadores y permiten el uso del software más reciente. Además, los nuevos procesadores como el Pentium MMX con la Tecnología, permitirá la utilización de software especializado y no utilizables en las anteriores máquinas. Confiabilidad y estabilidad: El procesador de calidad es un factor que determina la forma fiable confunsiona el sistema. Si bien la mayoría de los procesadores son muy fiables, otros no. Esto también depende en cierta medida de la edad del procesador y la cantidad de energía que consume. Consumo de energía: Originalmente los procesadores consumen relativamente poca energía en comparación con otros dispositivos del sistema. Procesadores mas nuevos pueden consumir una gran cantidad de energia. El consumo de energía tiene un impacto en todo, desde el enfriamiento al método de selección general de la fiabilidad del sistema. Placa madre de Apoyo: El procesador, de decidir el uso de su sistema será un factor importante en la determinación de qué tipo de chipset debe utilizar, y la placa base, por lo tanto, lo que usted compra. La placa madre, a su vez, exige muchos aspectos de sus capacidades del sistema y el rendimiento.


 * REFERENCIA:http://www.mitecnologico.com/Main/ComunicacionProcesadorConElRestoDelSistema **
 * ISRAEL HERNANDEZ G **

=A**GUILA RAMOS OBED** HISTRIA DE LOS ORDENADORES =

Quizás el año más significativo en la historia de los ordenadores fue el año 1936. Fue el año donde el primer “computador” fue desarrollado. Honrad Zuse fue el creador con su Z1. El Z1 se considera el primer ordenador ya que era el primer sistema totalmente programable. Había otros dispositivos antes que este pero ninguno con la capacidad de computación de este equipo. No fue hasta 1942 que alguna empresa viera posibles beneficios y oportunidades los ordenadores. La primera compañía se llamó “//ABC Computers//” perteneciente a John Atanasoff y Clifford Berry. Dos años después, el ordenador “//Harvard Mark I//” fue desarrollado llevando más allá la tecnología de los ordenadores.
 * El comienzo**



 La primera máquina de calcular mecánica, un precursor del ordenador digital, fue inventada en 1642 por el matemático francés Blaise Pascal. Aquel dispositivo utilizaba una serie de ruedas de diez dientes en las que cada uno de los dientes representaba un dígito del 0 al 9. Las ruedas estaban conectadas de tal manera que podían sumarse números haciéndolas avanzar el número de dientes correcto. En 1670 el filósofo y matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta máquina e inventó una que también podía multiplicar. El inventor francés Joseph Marie Jacquard, al diseñar un telar automático, utilizó delgadas placas de madera perforadas para controlar el tejido utilizado en los diseños complejos. Durante la década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar tarjetas perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió compilar la información estadística destinada al censo de población de 1890 de Estados Unidos mediante la utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos.  También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró los principios de la computadora digital moderna. Inventó una serie de máquinas, como la máquina diferencial, diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores consideran a Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del poeta inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero una de sus invenciones, la máquina analítica, ya tenía muchas de las características de un ordenador moderno. Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas, una memoria para guardar los datos, un procesador para las operaciones matemáticas y una impresora para hacer permanente el registro.  Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los primeros modelos realizaban los cálculos mediante ejes y engranajes giratorios. Con estas máquinas se evaluaban las aproximaciones numéricas de ecuaciones demasiado difíciles como para poder ser resueltas mediante otros métodos. Durante las dos guerras mundiales se utilizaron sistemas informáticos analógicos, primero mecánicos y más tarde eléctricos, para predecir la trayectoria de los torpedos en los submarinos y para el manejo a distancia de las bombas en la aviación.  Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que trabajaban en Bletchley Park, al norte de Londres, crearon lo que se consideró el primer ordenador digital totalmente electrónico: el //Colossus.// Hacia diciembre de 1943 el //Colossus,// que incorporaba 1.500 válvulas o tubos de vacío, era ya operativo. Fue utilizado por el equipo dirigido por Alan Turing para descodificar los mensajes de radio cifrados de los alemanes. En 1939 y con independencia de este proyecto, John Atanasoff y Clifford Berry ya habían construido un prototipo de máquina electrónica en el Iowa State College (EEUU). Este prototipo y las investigaciones posteriores se realizaron en el anonimato, y más tarde quedaron eclipsadas por el desarrollo del Calculador e integrador numérico digital electrónico (ENIAC) en 1945. El ENIAC, que según mostró la evidencia se basaba en gran medida en el ‘ordenador’ Atanasoff-Berry (ABC, acrónimo de Electronic Numerical Integrator and Computer), obtuvo una patente que caducó en 1973, varias décadas más tarde. El ENIAC contenía 18.000 válvulas de vacío y tenía una velocidad de varios cientos de multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía ser modificado manualmente. Se construyó un sucesor del ENIAC con un almacenamiento de programa que estaba basado en los conceptos del matemático húngaro-estadounidense John von Neumann. Las instrucciones se almacenaban dentro de una llamada memoria, lo que liberaba al ordenador de las limitaciones de velocidad del lector de cinta de papel durante la ejecución y permitía resolver problemas sin necesidad de volver a conectarse al ordenador. A finales de la década de 1950 el uso del transistor en los ordenadores marcó el advenimiento de elementos lógicos más pequeños, rápidos y versátiles de lo que permitían las máquinas con válvulas. Como los transistores utilizan mucha menos energía y tienen una vida útil más prolongada, a su desarrollo se debió el nacimiento de máquinas más perfeccionadas, que fueron llamadas ordenadores o computadoras de segunda generación. Los componentes se hicieron más pequeños, así como los espacios entre ellos, por lo que la fabricación del sistema resultaba más barata.  A finales de la década de 1960 apareció el circuito integrado (CI), que posibilitó la fabricación de varios transistores en un único sustrato de silicio en el que los cables de interconexión iban soldados. El circuito integrado permitió una posterior reducción del precio, el tamaño y los porcentajes de error. El microprocesador se convirtió en una realidad a mediados de la década de 1970, con la introducción del circuito de integración a gran escala (LSI, acrónimo de Large Scale Integrated) y, más tarde, con el circuito de integración a mayor escala (VLSI, acrónimo de Very Large Scale Integrated), con varios miles de transistores interconectados soldados sobre un único sustrato de silicio.  Una tendencia constante en el desarrollo de los ordenadores es la microminiaturización, iniciativa que tiende a comprimir más elementos de circuitos en un espacio de chip cada vez más pequeño. Además, los investigadores intentan agilizar el funcionamiento de los circuitos mediante el uso de la superconductividad, un fenómeno de disminución de la resistencia eléctrica que se observa cuando se enfrían los objetos a temperaturas muy bajas. Las redes informáticas se han vuelto cada vez más importantes en el desarrollo de la tecnología de computadoras. Las redes son grupos de computadoras interconectados mediante sistemas de comunicación. La red pública Internet es un ejemplo de red informática planetaria. Las redes permiten que las computadoras conectadas intercambien rápidamente información y, en algunos casos, compartan una carga de trabajo, con lo que muchas computadoras pueden cooperar en la realización de una tarea. Se están desarrollando nuevas tecnologías de equipo físico y soporte lógico que acelerarán los dos procesos mencionados. Otra tendencia en el desarrollo de computadoras es el esfuerzo para crear computadoras de quinta generación, capaces de resolver problemas complejos en formas que pudieran llegar a considerarse creativas. Una vía que se está explorando activamente es el ordenador de proceso paralelo, que emplea muchos chips para realizar varias tareas diferentes al mismo tiempo. El proceso paralelo podría llegar a reproducir hasta cierto punto las complejas funciones de realimentación, aproximación y evaluación que caracterizan al pensamiento humano. Otra forma de proceso paralelo que se está investigando es el uso de computadoras moleculares (mediante la "nanotecnología"). En estas computadoras, los símbolos lógicos se expresan por unidades químicas de ADN en vez de por el flujo de electrones habitual en las computadoras corrientes. Las computadoras moleculares podrían llegar a resolver problemas complicados mucho más rápidamente que las actuales supercomputadoras y consumir mucha menos energía.



MARIO IVAN ROMERO ACEVES

Función de la unidad de control durante la ejecución de una Instrucción

La **unidad de control** (UC) es uno de los tres bloques funcionales principales en los que se divide una [|unidad central de procesamiento] (CPU). Los otros dos bloques son la [|Unidad de proceso] y el [|bus de entrada/salida]. Su función es buscar las instrucciones en la [|memoria principal], decodificarlas (interpretación) y ejecutarlas, empleando para ello la [|unidad de proceso]. Existen dos tipos de unidades de control, las cableadas, usadas generalmente en máquinas sencillas, y las microprogramadas, propias de máquinas más complejas. En el primer caso, los componentes principales son el circuito de [|lógica secuencial], el de control de estado, el de [|lógica combinacional] y el de emisión de reconocimiento de señales de control. En el segundo caso, la microprogramación de la unidad de control se encuentra almacenada en una micromemoria, a la cual se accede de manera secuencial (1, 2, ..., n) para posteriormente ir ejecutando cada una de las microinstrucciones. La función principal de la unidad de control de la UCP es dirigir la secuencia de pasos de modo que la computadora lleve a cabo un ciclo completo de ejecución de una instrucción, y hacer esto con todas las instrucciones de que conste el programa. Los pasos para ejecutar una instrucción cualquiera son los siguientes: I. Ir a la memoria y extraer el código de la siguiente instrucción (que estará en la siguiente celda de memoria por leer). Este paso se llama ciclo de //fetch// en la literatura computacional (//to fetch// significa traer, ir por). II. Decodificar la instrucción recién leída (determinar de que instrucción se trata). III. Ejecutar la instrucción. IV. Prepararse para leer la siguiente casilla de memoria (que contendrá la siguiente instrucción), y volver al paso 1 para continuar. La unidad de control ejecutara varias veces este ciclo de cuatro “instrucciones alambradas” a una enorme velocidad. Se llama así a estas instrucciones porque no residen en memoria, ni fueron escritas por ningún programador, sino que la maquina las ejecuta directamente por medios electrónicos, y lo hará mientras este funcionando (mientras este encendida) en una computadora es a razón de cientos de miles (o incluso millones) de veces por segundo. Se ha definido ya el modelo de von Neumann. Ahora se pondrá a funcionar sobre nuestro pequeño programa de ejemplo (que ya esta cargado en la memoria). PASOS PARA LA EJECUCION DE UN PROGRAMA Se describirán todos los pasos con detalle por única vez, para que el lector pueda estudiarlos con detenimiento hasta estar seguro de haberlos comprendido. (obsérvese que este paso es externo, esto es, no forma parte del programa, sino que se tiene que hacer “desde afuera” para iniciara la operación de la computadora) En este momento hay que tener cuidado para que no haya confusión: el primer 21 (el de la celda 10) es la instrucción CARGA_Ac; el segundo 21 ( El de la celda 11) es la dirección de la celda de memoria cuyo valor se desea cargar en el acumulador. Esta instrucción completa 21, 21, puede leerse de la siguiente manera: cargar el acumulador con el valor que este contenido en la celda cuya dirección aparece a la derecha de donde sé esta leyendo ahora. Conviene tener muy en claro antes de seguir adelante. De estos 16 pasos sobre sale lo siguiente: COMO EJECUTAR UN PROGRAMA Sí el archivo. EXE esta en la unidad por omisión, podría usar el DOS para cargarlo para su ejecución introduciendo: P05ASM1.EXE o PO5ASM1 Si omite la extensión del archivo el DOS supone que es. EXE (o .COM). Sin embargo, ya que este programa no produce resultados visibles, se sugiere que lo ejecute con DEBUG y avance paso por paso en su ejecución en comandos de rastreo. (T. Teclee lo siguiente incluyendo la extensión. EXE: DEBUG D:P05ASM1.EXE DEBUG carga el modelo del programa.EXE. Y MUESTRA SU INDICACION (un guión). Para ver el segmento de la pila teclee: D SS:0. La pila contiene solo ceros ya que fue la forma de visualizarla. Para ver el segmento de datos teclee: D DS:0. La operación muestra tres elementos de datos. FA 00 7D 00 00 00, con los bytes de cada palabra en orden inverso para ver el segmento de código, teclee: D CS:0. Compare el código de maquina mostrando con el segmento de código del listado del ensamblado: D88ED8A10000... En este caso el listado del ensamblador no muestra de manera precisa el código de maquina ya que el ensamblador no conoce la operación del operando de la primera instrucción. Ahora puede determinar esta instrucción examinando el código desplegado. Teclee R para ver los registros y rastree la ejecución del programa con sucesivos comandos T. Amedida que avance el programa, fíjese en el contenido de los registros. Cuando llegue a la ultima instrucción, puede utilizar L para volver a cargar y correr el programa o Q para salir de la sesión con DEBUG.
 * En virtud de que el programa comienza a partir de la celda numero 10, se debe indicar a la unidad de control que esa celda contiene la primera instrucción. Esto se hace por medio de un apuntador (que forma parte de los circuitos electrónicos de la unidad de control) que recibe el nombre de contador de programa (CP). Así pues, el primer paso debe consistir en apuntar a la casilla 10, y esto se representara por CP-10.
 * La unidad de control ejecutara el paso I e ira a la casilla 10 para leer su contenido, que es21.
 * La unidad de control ejecuta el paso II, con lo que decodifica el 21 recién leído y determina que se trata de una operación CARGA_Ac. En este momento sucede algo de primordial importancia: como la instrucción 21 tiene una longitud de dos celdas cuyo valor se cargara en el acumulador (que en este caso de casualidad también es 21), la maquina deberá ajustar el valor del contador de programa para que este apunte a celda siguiente.
 * La unidad de control ejecuta el paso III, con la que efectivamente efectuara la operación de carga. Por esto, la computadora debe ir a la celda 11 y extraer su contenido, pero ahora ya no lo considera como instrucción si no como dirección por la cual ira a la celda 21 para extraer el valor que contenga.
 * La unidad de control ejecuta el paso IV, para luego ejecutar todo el ciclo de nuevo. Obsérvese que es un ciclo ilimitado, que solo terminara cuando se ejecute la instrucción ALTO. En este caso, el contador de programa se hará igual a 12; esto es, apuntara a la celda numero 12.
 * Se ejecuta (por segunda vez) el paso I de la unidad de control. Como CP=12, se leerá esa celda, que contiene un 57.
 * Se decodifica esa instrucción, que es SUMA_Ac, por lo que la CP se prepara para apuntar a la siguiente celda. (Recuérdese que la instrucción SUMA_Ac ocupa 2 celdas: una para el código de operación y otra para la dirección de la celda cuyo contenido se sumara al acumulador.)
 * Se ejecuta la instrucción 57, con lo que se añade el contenido de la celda 22 al acumulador(la dirección 22 reside en la celda 13, es a la que actualmente apunta el contador de un programa como resultado del paso anterior). Ahora el acumulador contendrá un 12.
 * La CP se actualiza para apuntar a la celda 14, en la cual (y no es casualidad) reside el código de la siguiente instrucción.
 * Se lee la celda 14 y se extrae su código: 96.
 * Se decodifica la instrucción, que es GUARDA_Ac, por lo que el CP sea lista para apuntar a la siguiente celda, que contendrá la dirección de la celda en donde se guardara el contenido del acumulador.
 * Al ejecutarse esta instrucción se deposita el valor del acumulador (12) en la celda numero 23, o sea, se deja el resultado de la suma en la celda que de antemano se había separado para tal fin.
 * La unidad de control regresa al paso I no sin antes actualizar el contador de programas para que apunte a la celda 16 es donde reside la siguiente instrucción.
 * Se lee la celda 16 y se extrae su contenido: 70.
 * Se decodifica esta instrucción, que es ALTO. El CP no se prepara para extraer un dato de la siguiente celda porque la instrucción 70 ocupa una sola celda.
 * Se ejecuta esta instrucción, lo que detiene a la unidad de control y a la maquina. De esta manera se rompe el ciclo de los 4 pasos.
 * Dado el contenido de una celda, la computadora no puede distinguir si se trata de un instrucción o de un dato o dirección.
 * Debido a lo anterior, es responsabilidad de quien maneja la maquina indicarle cual es la celda donde comienza el programa (esto se hizo por medio del paso 0, que se describió externo al programa).
 * Una vez que el contador de un programa apunta a la celda que contiene la primera instrucción, el resto del proceso ocurre de manera automática e invisible para el programador. Esto se debe a los ajustes internos que hace al CP (en el paso II) que a su vez, dependen de la longitud de la instrucción que sé esta ejecutando.

[] [] [] Ciclo de ejecución de una Instrucción

Un //**ciclo de instrucción**// (también llamado ciclo de //fetch-and-execute// o ciclo de //fetch-decode-execute// en inglés) es el período que tarda la unidad central de proceso ([|CPU]) en ejecutar una instrucción de [|lenguaje máquina]. Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del [|juego de instrucciones] de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más [|ciclos máquina]. Para que cualquier sistema de proceso de datos basado en microprocesador (por ejemplo un ordenador) o microcontrolador (por ejemplo un reproductor de MP3) realice una tarea (programa) primero debe buscar cada instrucción en la memoria principal y luego ejecutarla.

Secuencia de acciones del ciclo de instruccion Habitualmente son cuatro los eventos o pasos que se llevan a cabo en cada ciclo de instrucción, los cuales son:

(1) Buscar la instruccion en la memoria principal
Se vuelca el valor del [|contador de programa] sobre el [|bus de direcciones]. Entonces la CPU pasa la instrucción de la memoria principal a través del bus de datos al [|Registro de Datos de Memoria] (MDR). A continuación el valor del MDR es colocado en el [|Registro de Instrucción Actual] (CIR), un circuito que guarda la instrucción temporalmente de manera que pueda ser decodificada y ejecutada.

(2) Decodificar la instrucción
El decodificador de instrucción interpreta e implementa la instrucción. El registro de instrucción (IR) mantiene la instrucción en curso mientras el contador de programa (PC, //program counter//) guarda la [|dirección de memoria] de la siguiente instrucción a ser ejecutada. También se lee la dirección efectiva de la memoria principal si la instrucción tiene una dirección indirecta, y se recogen los datos requeridos de la memoria principal para ser procesados y colocados en los registros de datos.
 * Recogida de datos desde la memoria principal

(3) Ejecutar la instrucción
A partir del registro de instrucción, los datos que forman la instrucción son decodificados por la unidad de control. Ésta interpreta la información como una secuencia de señales de control que son enviadas a las unidades funcionales relevantes de la CPU para realizar la operación requerida por la instrucción. El resultado generado por la operación es almacenado en la memoria principal o enviado a un dispositivo de salida dependiendo de la instrucción. Basándose en los resultados de la operación, el contador de programa se incrementa para apuntar a la siguiente instrucción o se actualiza con una dirección diferente donde la próxima instrucción será recogida.
 * (4) Almacenar o guardar resultados**

[] Comunicación del procesador con el resto del sistema.

En los microcomputadores, la comunicación entre la CPU y otros dispositivos como memorias y puertos se efectúa a través del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura. Esta no es la única aplicación de los decodificadores en los microcomputadores. Internamante dentro del a CPU también existe un decodificador, llamado el Instruction Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU. Esta no es la única aplicación de los decodificadores en los microcomputadores. Internamante dentro del a CPU también existe un decodificador, llamado el Instruction Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU. El procesador (en realidad una forma abreviada para el microprocesador y también a menudo llamada la CPU o unidad central de procesamiento) es el componente central de la PC. Es el cerebro que se ejecuta el programa en el interior de la PC. Todo el trabajo que usted hace en su computadora se realiza directa o indirectamente por el procesador. Obviamente, es uno de los más importantes componentes de la PC, si no la más importante. También es, científicamente, una de las más maravillosas partes de la PC, es uno de los más asombrosos dispositivos en el mundo de la tecnología. El procesador juega un papel importante en los siguientes aspectos importantes de su sistema: Características: El procesador es probablemente el más importante factor determinante del rendimiento del sistema en el PC. Mientras que otros componentes también juegan un papel clave en la determinación de rendimiento, el procesador tiene capacidad de dictar el máximo rendimiento de un sistema. Los otros dispositivos sólo permiten que el procesador alcanze su pleno potencial. Soporte de Software: Entre más reciente, más rápidos son procesadores y permiten el uso del software más reciente. Además, los nuevos procesadores como el Pentium MMX con la Tecnología, permitirá la utilización de software especializado y no utilizables en las anteriores máquinas. Confiabilidad y estabilidad: El procesador de calidad es un factor que determina la forma fiable confunsiona el sistema. Si bien la mayoría de los procesadores son muy fiables, otros no. Esto también depende en cierta medida de la edad del procesador y la cantidad de energía que consume. Consumo de energía: Originalmente los procesadores consumen relativamente poca energía en comparación con otros dispositivos del sistema. Procesadores mas nuevos pueden consumir una gran cantidad de energia. El consumo de energía tiene un impacto en todo, desde el enfriamiento al método de selección general de la fiabilidad del sistema. Placa madre de Apoyo: El procesador, de decidir el uso de su sistema será un factor importante en la determinación de qué tipo de chipset debe utilizar, y la placa base, por lo tanto, lo que usted compra. La placa madre, a su vez, exige muchos aspectos de sus capacidades del sistema y el rendimiento.

http://7222septiembreoctubre.wikispaces.com/UNIDAD+6+Funcionamiento+interno+de+la+computadora

Introducción a la unidad de control La unidad de control el elemento que se encarga de sincronizar las acciones que realiza cada una de las unidades funcionales de un computador. Las funciones de la unidad de control son básicamente dos. Interpretación de las instrucciones: La unidad de control debe ser capaz de decodificar los códigos de operación y los modos de direccionamiento de las instrucciones y actuar de forma diferente para cada uno de ellos. Secuenciamiento de las operaciones: La unidad de control se encarga de la temporización de las distintas operaciones necesarias para la ejecución de cada instrucción. También debe controlar el secuenciamiento de las instrucciones en función de la evolución del registro contador de programa. Se llaman señales de control a las variables binarias que controlan las entradas y salidas de información de los registros y el funcionamiento de las unidades funcionales.

La ejecución de una instrucción se divide en varias etapas que deben realizarse según una secuencia muy precisa de señales de control que establece la señal de control. Hay dos formas básicas para implementar la unidad de control: - Unidad de control cableada: Realiza sus funciones mediante elementos hardware. No la analizaremos en profundidad aquí. -Unidad de control microprogramada: Es mas lenta que la anterior, pero permite implementar instrucciones mas potentes y flexibles. Será analizada en profundidad en los siguientes apartados. Ahora se intentará conjuntar la secuencia de operaciones elementales necesarias para ejecutar una instrucción. Considérese la instrucción “Sumar el contenido de la localización NUM de la memoria al registro R1″. Para simplificar las cosas, la dirección NUM se da en forma explícita en el campo de dirección de la instrucción. Entonces, la localización NUM se especifica en el modo directo de memoria. La ejecución de esta instrucción requiere de las siguientes acciones. 1.Traer la instrucción 2.Traer el primer operando (el contenido de la localización de la memoria a la que señala el campo de dirección de la instrucción). 3.Realizar la adición 4.Cargar el resultado en RI. PASO 1 .- PC salida, MAR entrada, Leer, Borrar Y, Fijar el acarreo de la ALU, Suma, Zentrada 2.- Z salida, PC entrada, Espera a MFC 3.- MDR salida, IR salida 4.- Campo de dirección de IR salida, MAR entrada, Leer 5.- R1salida, Yentrada, Espera a MFC 6.- MDR salida, Suma, Z entrada 7.- Z salida, R1 entrada 8.- Fin En la figura 8 se da la secuencia de pasos de control necesarios para implantar las operaciones anteriores en la estructura de bus único. Entonces, la ejecución de instrucción sucede de la siguiente forma. En el paso 1 la operación de traída de la instrucción se inicia cargando el contenido del PC en el MAR y enviando una solicitud de Leer a la memoria. A1 mismo tiempo se incrementa el PC en 1 a través del uso de la ALU. Esto se logra poniendo una de las entradas a la ALU (registro Y) en 0 y la otra entrada (bus de la CPU) en el valor presente que contenga el PC. Al mismo tiempo el acarreo a la ALU se iguala a 1 y se especifica una operación de Sumar. El valor actualizado se regresa del registro Z al PC durante el paso dos. Obsérvese que el paso dos se inicia inmediatamente después de emitir la solicitud de Leer de a memoria, sin necesidad de esperar la conclusión de la función de la memoria. Sin embargo, el paso 3 tiene que retardarse hasta que se reciba el MFC. En el paso 3, a palabra traída de la memoria se carga en el IR (registro de instrucción: instruction register). Los pasos del 1 al 3 constituyen la fase de traída de instrucción de la secuencia de control. Desde luego, esta parte es la misma para todas las instrucciones. En cuanto el IR está cargado, el circuito de decodificación de instrucción interpreta su contenido. Esto permite a la circuitería de control elegir las señales adecuadas para la parte restante de la secuencia de control, pasos 4 a 8, a los que se considera como la fase de ejecución. En el paso 4, el campo de dirección del IR que contiene la dirección NUM, es manejado por compuerta y se lleva al MAR y se inicia una operación de Leer de la memoria. Después el contenido de la memoria R1 se transfiere al registro Y. Cuando se completa la operación de Leer, el operando de la memoria está disponible en el registro MDR. La operación de adición se realiza en el paso 6 y el resultado se transfiere a R1 en el paso 7. La señal de Fin, paso 8, indica la conclusión de la ejecución de la presente instrucción y provoca que se inicie un nuevo ciclo de traída regresando de nuevo al paso 1. Las ramificaciones se logran reemplazando el contenido actual del PC por la dirección de ramificación, esto es, la dirección de la instrucción a la cual se refiere una ramificación. Por lo común, la dirección de ramificación se obtiene sumando al valor actual del PC, un valor X de compensación, el cual está dado en el campo de dirección de la instrucción de ramificación. En la figura 9 se proporciona una secuencia de control que permite la ramificación de control incondicional utilizando la organización de bus único de la figura 1. Como de costumbre, la ejecución se empieza con la fase de traída y termina cuando la instrucción se carga en el IR en el paso 3. Para ejecutar la instrucción de ramificación, el contenido del PC se transfiere al registro Y en el paso 4. Después el valor de compensación X se envía por compuerta al bus y se realiza la operación de adición. El resultado, que representa la dirección de ramificación, se carga en el PC en el paso 6. PASO 1.- PC salida, MAR entrada, Leer, Borrar Y, Fijar el acarreo de la ALU, Suma, Z entrada 2.- Z salida, PC entrada, Espera a MFC 3.- MDR salida, IR salida 4.- PC salida, Yentrada 5.- Campo de dirección de IR salida, Suma, Z entrada 6.- Z salida, PC entrada 7.- Fin Figura 9. Es importante observar que en este ejemplo el PC se incrementa durante la fase de traída, sin importar el tipo de instrucción que se esté ejecutando. Así, en el momento en que el valor de compensación X se suma al contenido del PC, pasos 4 y 5 de la figura 9, este contenido ya se ha actualizado para que apunte a la instrucción que sigue en el programa a la instrucción de Ramificación. Por lo tanto, el valor de compensación X debería ser la diferencia entre la dirección de ramificación y la dirección que sigue de inmediato a la instrucción de Ramificación. Por ejemplo, si la instrucción de Ramificación está en la localización 1000 y se requiere ramificar a la localización 1050, el valor de X debería ser de 49. Considérese ahora 1 caso de una ramificación condicional, en vez de una ramificación incondicional. La única diferencia entre este caso y el de la figura 9 es el de la necesidad de verificar el estado de los códigos de condición entre los pasos 3 y 4.Por ejemplo, si la circuitería de decodificación de instrucción interpreta el contenido del IR como una instrucción de Ramificación en caso negativo (BRN: Branch on Negative), la unidad de control opera de la siguiente forma: primero, se verifica el registro de código de condición. Si el bit N (negativo) es igual a 1, la unidad de control procede a los pasos del 4 al 7 como en la figura 9. Por otra parte, si N es igual a 0 se emite una señal de Fin. En realidad, esto concluye la ejecución de la instrucción de Ramificación y provoca que la instrucción inmediata del programa se traiga, cuando se realice una nueva operación de traer. Por lo tanto, la secuencia de control para la secuencia de Ramificación condicional BRN puede obtenerse a partir de la figura 9 reemplazando el paso 4 por: If then End If N then PC salida, Y entrada.
 * EJECUCIÓN DE UNA INSTRUCCIÓN**
 * Ramificación**

6.2 CICLO DE UNA INSTRUCCION -CICLO DE INSTRUCCION- Un ciclo de instrucción (tambien llamado ciclo de traer y ejecutar) es el período de tiempo durante el cual un ordenador lee y procesa una instrucción de lenguaje máquina de su memoria o la secuencia de acciones que la unidad central (CPU) funciona para ejecutar cada instrucción de código de máquina en un programa. El nombre el ciclo traer-y-ejecutar comúnmente es usado.La instrucción debe ser traída de la memoria principal, y luego ejecutado por la CPU.Esto es fundamentalmente como un ordenador funciona, con su lectura de CPU y ejecución de una serie de instrucciones escritas en su lenguaje máquina.De esto surgen todas las funciones de un ordenador familiar a partir del final del usuario. Ciclo de Instruccion: La CPU de cada ordenador puede tener ciclos diferentes basados en juegos de instrucción diferentes. Traer la instruccion desde la memoria principal: La CPU presenta el valor de la PC sobre el bus de dirección.La CPU entonces trae la instrucción de la memoria principal vía el bus de datos en el Registro de Datos de Memoria (MDR).El valor del MDR entonces es colocado en el Registro de Instrucción Actual un circuito que sostiene la instrucción de modo que pueda ser descifrado y ejecutado. Decodificar la instrucion: El decodificador de instrucción interpreta y pone en práctica la instrucción. Registros que son críticos al ciclo ejecutar traída: El registro de instrucción (IR) - mantiene la instrucción actual. La PC - sostiene la dirección en la memoria de la siguiente instrucción a ser ejecutada. Traer archivos desde la memoria principal: Lea la dirección eficaz de la memoria principal si la instrucción tiene una dirección indirecta. Traer requiere datos de la memoria principal para ser procesada y colocado en registros. EJECUTAR LA INSTRUCCION: Del registro de instrucción, los datos que forman la instrucción son descifrados por la unidad de control.Esto entonces pasa la información descifrada como una secuencia de señales de control a las unidades de función relevantes de la CPU para realizar las acciones requeridas por la instrucción como la lectura de valores de registros,pasandolos a la unidad Aritmética lógica (ALU) para añadirlos juntos y escribiendo el resultado de vuelta al registro.Una señal de condición es enviada de regreso a la unidad de control por ALU si está implicado.

6.3 DECODIFICACION DE UNA INSTRUCCION En la mayoría de los casos se utiliza el microcódigo, que comprende microinstrucciones o códigos de micro instrucciones. Las microinstrucciones, por lo tanto son las instrucciones que en realidad son ejecutadas por el núcleo de ejecución o aritmética y lógica núcleo del procesador. Los códigos de microinstrucciones se obtienen mediante la traducción del original código de programa en una instrucción decodificador comprenden en el transformador, antes de ejecutar las instrucciones básicas en la ejecución. Con el fin de que un microprocesador será la búsqueda de apoyo, en general, esta función está incorporada en el microcódigo, que comprende de este modo el apoyo a las funciones que permite la traza. En un microprocesador que permite la localización suele ser señal de un maestro se utiliza para permitir que todos los tipos de rastros, este maestro señal que se llama una señal permitirá rastrear. RESUMEN Se trata de un objeto de la presente invención para proporcionar un método y un dispositivo para la prestación de un versátil programa de traducción de las instrucciones para ser ejecutadas por un procesador a microinstrucciones utilizados por el núcleo del procesador. UNIDAD DE DECODIFICACION Se encarga de decodificar la instrucción que se va a ejecutar. Es decir, saber qué instrucción es. Cuando el microprocesador lee de memoria una instrucción, el código de esa instrucción le llega a esta unidad. Esta unidad se encarga de interpretar ese código para averiguar el tipo de instrucción a realizar. Por ejemplo, instrucciones de suma, multiplicación, almacenamiento de datos en memoria,etc. 6.4 Comunicación: Procesador con el resto del Sistema En los microcomputadores, la comunicación entre la CPU y otros dispositivos como memorias y puertos se efectúa a través del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura. Esta no es la única aplicación de los decodificadores en los microcomputadores. Internamante dentro del a CPU también existe un decodificador, llamado el Instruction Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU. El procesador (en realidad una forma abreviada para el microprocesador y también a menudo llamada la CPU o unidad central de procesamiento) es el componente central de la PC. Es el cerebro que se ejecuta el programa en el interior de la PC. Todo el trabajo que usted hace en su computadora se realiza directa o indirectamente por el procesador. Obviamente, es uno de los más importantes componentes de la PC, si no la más importante. También es, científicamente, una de las más maravillosas partes de la PC, es uno de los más asombrosos dispositivos en el mundo de la tecnología. El procesador juega un papel importante en los siguientes aspectos importantes de su sistema: Características: El procesador es probablemente el más importante factor determinante del rendimiento del sistema en el PC. Mientras que otros componentes también juegan un papel clave en la determinación de rendimiento, el procesador tiene capacidad de dictar el máximo rendimiento de un sistema. Los otros dispositivos sólo permiten que el procesador alcanze su pleno potencial. Soporte de Software: Entre más reciente, más rápidos son procesadores y permiten el uso del software más reciente. Además, los nuevos procesadores como el Pentium MMX con la Tecnología, permitirá la utilización de software especializado y no utilizables en las anteriores máquinas. Confiabilidad y estabilidad: El procesador de calidad es un factor que determina la forma fiable confunsiona el sistema. Si bien la mayoría de los procesadores son muy fiables, otros no. Esto también depende en cierta medida de la edad del procesador y la cantidad de energía que consume. Consumo de energía: Originalmente los procesadores consumen relativamente poca energía en comparación con otros dispositivos del sistema. Procesadores mas nuevos pueden consumir una gran cantidad de energia. El consumo de energía tiene un impacto en todo, desde el enfriamiento al método de selección general de la fiabilidad del sistema. Placa madre de Apoyo: El procesador, de decidir el uso de su sistema será un factor importante en la determinación de qué tipo de chipset debe utilizar, y la placa base, por lo tanto, lo que usted compra. La placa madre, a su vez, exige muchos aspectos de sus capacidades del sistema y el rendimiento.