sábado, 10 de marzo de 2007



Arquitectura de computadores
El concepto de Arquitectura de los computadores se define como las características visibles para el usuario de una computadora relativas a las funcionalidades o prestaciones que una determinada configuración, organización o estructura de computadoras puede brindada por ejemplo aspectos relacionados con formato de instrucción, modo de direccionamiento, conjunto de instrucciones, entre otros.
Computadora:
El computador, computadora u ordenador es un sistema digital con tecnología microelectrónica capaz de procesar datos a partir de un grupo de instrucciones denominado programa. La estructura básica de una computadora incluye microprocesador (CPU), memoria y dispositivos de entrada/salida (E/S), junto a los buses que permiten la comunicación entre ellos. En resumen la computadora es una dualidad entre hardware (parte física) y software (parte lógica), que interactúan entre sí para una determinada función.
La característica principal que la distingue de otros dispositivos similares, como una calculadora no programable, es que puede realizar tareas muy diversas cargando distintos programas en la memoria para que el procesador los ejecute.





Sin embargo, en los últimos veinte años aproximadamente muchos aparatos domésticos, sobre todo las consolas para videojuegos, las que hay que añadir los teléfonos móviles, los vídeos, los asistentes personales digitales (PDA) y un sinfín de aparatos caseros, industriales, para coches y electrónicos, tienen circuitos homologables a la máquina de Turing (con la limitación de que la programación de estos aparatos está instalada en un chip de memoria ROM que hay que remplazar cada vez que queremos cambiar la programación).
Esta especie de computadoras que se encuentran dentro de otras computadoras de uso general son conocidos como microcontroladores o computadores integrados. Por lo tanto, muchas personas han restringido la definición de computadora a aquellas máquinas cuyo propósito principal sea el procesamiento de información y que puedan adaptarse a una gran variedad de tareas, sin ninguna modificación física, excluyendo a aquellos dispositivos que forman parte de un sistema más grande como los teléfonos, microondas o aviones.
Tipos de computadoras


Una Apple iMac
Tradicionalmente existen tres tipos de computadoras que cumplen con estos requisitos: las computadoras centrales, las minicomputadoras y las computadoras personales. Las minicomputadoras, como tales, ya no existen, habiendo sido reemplazadas por computadoras personales con programas especiales capaces de manejar y distribuir recursos entre múltiples usuarios, como por ejemplo programas para servicio de correo; las mismas computadoras centrales tienen características propias de la computadora personal, como el estar basadas en microprocesadores.es la herramienta necesaria del computador para realizar sus tareas .
Para finalizar, hay que decir que mucha gente que no está familiarizada con otras formas de computadoras, usa el término para referirse exclusivamente a las computadoras personales.
Cómo funcionan las computadoras
Aunque las tecnologías empleadas en las computadoras digitales han cambiado mucho desde que aparecieron los primeros computadores en los años 40, la mayoría todavía utilizan la arquitectura von Neumann, propuesta a principios de los años 1940 por John von Neumann.
La arquitectura von Neumann describe un computador con 4 secciones principales: la unidad lógica y aritmética (ALU), la unidad de control, la memoria, y los dispositivos de entrada y salida (E/S). Estas partes están interconectadas por un conjunto de cables denominados buses.
En este sistema, la memoria es una secuencia de celdas de almacenamiento numeradas, donde cada una es un bit o unidad de información. La instrucción es la información necesaria para realizar lo que se desea con la computadora. Las «celdas» contienen datos que se necesitan para llevar a cabo las instrucciones, con la computadora. En general, la memoria puede ser rescrita varios millones de veces; se parece más a una libreta que a una lápida.


Vista expandida de una computadora1: Monitor2: Placa base3: Procesador4: Puertos ATA5: Memoria principal (RAM)6: Placas de expansión7: Fuente eléctrica8: Unidad de almacenamiento óptico9: Disco duro10: Teclado11: Ratón
Disco duro
Monitor
El tamaño de cada celda y el número de celdas varía mucho de computadora a computadora, y las tecnologías empleadas para la memoria han cambiado bastante; van desde los relés electromecánicos, tubos llenos de mercurio en los que se formaban los pulsos acústicos, matrices de imanes permanentes, transistores individuales a circuitos integrados con millones de celdas en un solo chip.
Con los circuitos electrónicos se simula las operaciones lógicas y aritméticas, se pueden diseñar circuitos para que realicen cualquier forma de operación.
La unidad lógica y aritmética, o ALU, es el dispositivo diseñado y construido para llevar a cabo las operaciones elementales como las operaciones aritméticas (suma, resta), operaciones lógicas (Y, O, NO), y operaciones de comparación. En esta unidad es en donde se hace todo el trabajo computacional.
La unidad de control sigue la dirección de las posiciones en memoria que contienen la instrucción que la computadora va a realizar en ese momento; recupera la información poniéndola en la ALU para la operación que debe desarrollar. Transfiere luego el resultado a ubicaciones apropiadas en la memoria. Una vez que ocurre lo anterior, la unidad de control va a la siguiente instrucción (normalmente situada en la siguiente posición, a menos que la instrucción sea una instrucción de salto, informando a la computadora de que la próxima instrucción estará ubicada en otra posición de la memoria).
Los dispositivos E/S sirven a la computadora para, obtener información del mundo exterior y devolver los resultados de dicha información. Hay una gama muy extensa de dispositivos E/S como los teclados, monitores y unidades de disco flexible o las cámaras web.
Las instrucciones que acabamos de discutir, no son las ricas instrucciones del ser humano. Una computadora sólo se diseña con un número limitado de instrucciones bien definidas. Los tipos de instrucciones típicas realizadas por la mayoría de las computadoras son como estos ejemplos: "...copia los contenidos de la posición de memoria 123, y coloca la copia en la posición 456, añade los contenidos de la posición 666 a la 042, y coloca el resultado en la posición 013, y, si los contenidos de la posición 999 son 0, tu próxima instrucción está en la posición 345...".
Las instrucciones dentro de la computadora se representan mediante números. Por ejemplo, el código para copiar puede ser 001. El conjunto de instrucciones que puede realizar una computadora se conoce como lenguaje de máquina o código máquina. En la práctica, no se escriben las instrucciones para las computadoras directamente en lenguaje de máquina, sino que se usa un lenguaje de programación de alto nivel que se traduce después al lenguaje de la máquina automáticamente, a través de programas especiales de traducción (intérpretes y compiladores). Algunos lenguajes de programación representan de manera muy directa el lenguaje de máquina, como los ensambladores (lenguajes de bajo nivel) y, por otra parte, los lenguajes como Java, se basan en principios abstractos muy alejados de los que hace la máquina en concreto (lenguajes de alto nivel).
Las computadoras actuales colocan la ALU y la unidad de control dentro de un único circuito integrado conocido como Unidad central de procesamiento o CPU. Normalmente, la memoria de la computadora se sitúa en unos pocos circuitos integrados pequeños cerca de la CPU. La gran mayoría de la masa de la computadora está formada por sistemas auxiliares (por ejemplo, para traer electricidad) o dispositivos E/S.
Algunas computadoras más grandes se diferencian del modelo anterior, en un aspecto importante, porque tienen varias CPU y unidades de control que trabajan al mismo tiempo. Además, algunas computadoras, usadas principalmente para la investigación, son muy diferentes del modelo anterior, pero no tienen muchas aplicaciones comerciales.
Por lo tanto, el funcionamiento de una computadora es en principio bastante sencillo. La computadora trae las instrucciones y los datos de la memoria. Se ejecutan las instrucciones, se almacenan los datos y se va a por la siguiente instrucción. Este procedimiento se repite continuamente, hasta que se apaga la computadora. Los Programas de computadora (software) son simplemente largas listas de instrucciones que debe ejecutar la computadora, a veces con tablas de datos. Muchos programas de computadora contienen millones de instrucciones, y muchas de esas instrucciones se ejecutan rápidamente. Una computadora personal moderna (en el año 2003) puede ejecutar de 2000 a 3000 millones de instrucciones por segundo. Las capacidades extraordinarias que tienen las computadoras no se deben a su habilidad para ejecutar instrucciones complejas. Las computadoras ejecutan millones de instrucciones simples diseñadas por personas inteligentes llamados programadores. Los buenos programadores desarrollan grupos de instrucciones para hacer tareas comunes (por ejemplo, dibujar un punto en la pantalla) y luego ponen dichos grupos de instrucciones a disposición de otros programadores.
En la actualidad, podemos tener la impresión de que las computadoras están ejecutando varios programas al mismo tiempo. Esto se conoce como multitarea, siendo más usado el segundo término. En realidad, la CPU ejecuta instrucciones de un programa y después tras un breve periodo de tiempo, cambian a un segundo programa y ejecuta algunas de sus instrucciones. Esto crea la ilusión de que se están ejecutando varios programas simultáneamente, repartiendo el tiempo de la CPU entre los programas. Esto es similar a la película que está formada por una sucesión rápida de fotogramas. El sistema operativo es el programa que controla el reparto del tiempo generalmente.
El sistema operativo es una especie de caja de herramientas lleno de rutinas. Cada vez que alguna rutina de computadora se usa en muchos tipos diferentes de programas durante muchos años, los programadores llevarán dicha rutina al sistema operativo, al final.
El sistema operativo sirve para decidir, por ejemplo, qué programas se ejecutan, y cuándo, y qué fuentes (memoria o dispositivos E/S) se utilizan. El sistema operativo tiene otras funciones que ofrecer a otros programas, como los códigos que sirven a los programadores, escribir programas para una máquina sin necesidad de conocer los detalles internos de todos los dispositivos electrónicos conectados.
En la actualidad se están empezando a incluir dentro del sistema operativo algunos programas muy usados debido a que es una manera económica de distribuirlos. No es extraño que un sistema operativo incluya navegadores de internet, procesadores de texto, programas de correo electrónico, interfaces de red, reproductores de películas y otros programas que antes se tenían que conseguir aparte.
Usos de las computadoras

Apple iMac de 17"










Computador de bolsillo o Pocket PC - Dell Axim
Las primeras computadoras digitales, de gran tamaño y coste, se utilizaban principalmente para hacer cálculos científicos. ENIAC, una de las primeras computadoras, calculaba densidades de neutrón transversales para ver si explotaría la bomba de hidrógeno. El CSIR Mk I, el primer computador australiano, evaluó patrones de precipitaciones para un gran proyecto de generación hidroeléctrica. Los primeros visionarios vaticinaron que la programación permitiría jugar al ajedrez, ver películas y otros usos.
La gente que trabajaba para los gobiernos y las grandes empresas también usaron las computadoras para automatizar muchas de las tareas de recolección y procesamiento de datos, que antes eran hechas por humanos; por ejemplo, mantener y actualizar la contabilidad y los inventarios. En el mundo académico, los científicos de todos los campos empezaron a utilizar las computadoras para hacer sus propios análisis. El descenso continuo de los precios de las computadoras permitió su uso por empresas cada vez más pequeñas. Las empresas, las organizaciones y los gobiernos empiezan a emplear un gran número de pequeñas computadoras para realizar tareas que antes eran hechas por computadores centrales grandes y costosos. La reunión de varias pequeñas computadoras en un solo lugar se llamaba torre de servidores.
Con la invención del microprocesador en 1970, fue posible fabricar computadoras muy baratas. Las computadoras personales se hicieron famosas para llevar a cabo diferentes tareas como guardar libros, escribir e imprimir documentos. Calcular probabilidades y otras tareas matemáticas repetitivas con hojas de cálculo, comunicarse mediante correo electrónico e Internet. Sin embargo, la gran disponibilidad de computadoras y su fácil adaptación a las necesidades de cada persona, han hecho que se utilicen para varios propósitos.
Al mismo tiempo, las pequeñas computadoras, casi siempre con una programación fija, empezaron a hacerse camino entre las aplicaciones del hogar, los coches, los aviones y la maquinaria industrial. Estos procesadores integrados controlaban el comportamiento de los aparatos más fácilmente, permitiendo el desarrollo de funciones de control más complejas como los sistemas de freno antibloqueo en los coches. A principios del siglo 21, la mayoría de los aparatos eléctricos, casi todos los tipos de transporte eléctrico y la mayoría de las líneas de producción de las fábricas funcionan con una computadora. La mayoría de los ingenieros piensa que esta tendencia va a continuar.
Etimología de las palabras ordenador y computadora
La denominación recomendada de forma general en castellano es la de computador, del latin "computare" aunque parezca un anglicismo procedente de computer (no hay que olvidar que el origen de las computadoras actuales está en los Estados Unidos). En España está generalizado el localismo ordenador, galicismo derivado de ordinateur.
En italiano, se emplea el término en inglés, il computer (el computador); el árabe alterna el término inglés (arabizado como kumbiyūter كمبيوتر) con el neologismo hāsūb حاسوب («computador», literalmente). En Suecia el nombre está relacionado con los datos dator. En China, a la computadora se le denomina 计算机 (cerebro eléctrico).
En un principio, la palabra inglesa se utilizaba para designar a una persona que realizaba cálculos aritméticos con o sin ayuda mecánica. Podemos considerar las computadoras programables modernas como la evolución de sistemas antiguos de cálculo o de ordenación, como la máquina diferencial de Babbage o la máquina tabuladora de Hollerith.
Línea de diseño de la arquitectura y otros conceptos - Entran aquí conceptos como los siguientes:
CISC
RISC
VLIW
EPIC
FORTH
BIOS
Endianness
Complex Instruction Set Computer
CISC es un modelo de arquitectura de computadores (del inglés Complex Instruction Set Computer). Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.
Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.
Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de ordenadores personales del planeta.
Hay que hacer notar, sin embargo que la utilización del término CISC comenzó tras la aparición de los procesadores RISC como nomenclatura despectiva por parte de los defensores/creadores de éstos últimos.
El RISC moderno
En arquitectura computacional, RISC del inglés Reduced Instruction Set Computer (Computadora con Conjunto de Instrucciones Reducido). Tipo de microprocesadores con las siguientes características fundamentales:
Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
Sólo las instrucciones de carga y almacenamiento acceden a la memoria por datos.
Además estos procesadores suelen disponer de muchos registros de propósito general.
El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.
Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM... son ejemplos de algunos de ellos.

La investigación de Berkeley no fue comercializada directamente, pero el diseño RISC-II fue utilizado por Sun Microsystems para desarrollar el SPARC, por Pyramid Technology para desarrollar sus máquinas de multiprocesador de rango medio, y por casi todas las compañías unos años más tarde. Fue el uso de RISC por el chip de SUN en las nuevas máquinas el que demostró que los beneficios de RISC eran reales, y sus máquinas rápidamente desplazaron a la competencia y esencialmente se apoderaron de todo el mercado de estaciones de trabajo.
John Hennessy dejó Stanford para comercializar el diseño MIPS, comenzando una compañía conocida como MIPS Computer Systems Inc. Su primer diseño fue el chip de segunda generación MIPS-II conocido como el R2000. Los diseños MIPS se convirtieron en uno de los chips más utilizados cuando fueron incluidos en las consolas de juego Nintendo 64y PlayStation. Hoy son uno de los procesadores integrados más comúnmente utilizados en aplicaciones de alto nivel por Silicon Graphics.
IBM aprendió de la falla del RT-PC y tuvo que continuar con el diseño del RS/6000 basado en su entonces nueva arquitectura IBM POWER. Entonces movieron sus computadoras centrales S/370 a los chips basados en IBM POWER, y se sorprendieron al ver que aún el conjunto de instrucciones muy complejas (que era parte del S/360 desde 1964) corría considerablemente más rápido. El resultado fue la nueva serie System/390 que aún hoy en día es comercializada como zSeries. El diseño IBM POWER también se ha encontrado moviéndose hacia abajo en escala para producir el diseño PowerPC, el cual eliminó muchas de las instrucciones solo IBM y creó una implementación de chip único. Hoy en día el PowerPC es utilizado en todas las computadoras Apple Macintosh, y está comenzando a ser utilizado en aplicaciones automotrices (algunos autos tienen más de 10 dentro de ellos).
Casi todos los demás proveedores se unieron rápidamente. De los esfuerzos similares en el Reino Unido resulto el INMOS Trasputer, el Acorn Archimedes y la línea Advanced RISC Machine, la cual tiene un gran éxito hoy en día. Las compañías existentes con diseños CISC también se unieron a la revolución. Intel lanzó el i860 y el i960 a finales de los ochenta, aunque no fueron muy exitosos. Motorola construyó un nuevo diseño pero no le vio demasiado uso y eventualmente lo abandonó, uniéndose a IBM para producir el PowerPC. AMD lanzó su familia 29000 la cual se convirtió en el diseño RISC más popular a principios de los noventa.
Hoy en día los microcontroladores y CPU RISC representan a la vasta mayoría de todos los CPU utilizados. La técnica de diseño RISC ofrece poder incluso en medidas pequeñas, y esto ha venido a dominar completamente el mercado de CPU integrados de bajo consumo de energía. Los CPU integrados son por mucho los procesadores más comunes en el mercado: considera que una familia completa con una o dos computadoras personales puede poseer varias docenas de dispositivos con procesadores integrados. RISC se ha apoderado completamente del mercado de estaciones de trabajo. Después del lanzamiento de la SUN SPARCstation los otros proveedores se apuraron a competir con sus propias soluciones basadas en RISC. Incluso el mundo de las computadoras centrales está ahora basado completamente en RISC.
Esto es sorprendente en vista del dominio del Intel x86 en el mercado de las computadoras personales de escritorio y el mercado de servidores de la gama baja. Aunque RISC fue capaz de avanzar en velocidad muy rápida y económicamente.
Los diseños RISC han llevado a un gran número de plataformas y arquitecturas al éxito, algunas de las más grandes:
La línea MIPS Technologies Inc., que se encuentra en la mayoría de las computadoras de SGI, en la Nintendo 64 y PlayStation.
La serie IBM POWER, utilizado principalmente en Servidores de IBM.
La versión PowerPC de Motorola e IBM (una versión de la serie IBM POWER) utilizada en los ordenadores Apple Macintosh como el iMac, eMac, Power Mac y posteriores.
El procesador SPARC de SUN Microsystems y el UltraSPARC, que se encuentra en todos sus últimos modelos de equipos.
El PA-RISC y el HP/PA de Hewlett-Packard.
El DEC Alphaservidores HP AlphaServer.
El ARM – Se encuentra en dispositivos PALM, Nintendo DS, Game Boy Advance y en múltiples PDAs.
VLIW
Del inglés Very Long Instruction Word. Esta arquitectura de CPU implementa una forma de paralelismo a nivel de instrucción. Es similar a las arquitecturas superescalares, ambas usan varias unidades funcionales (por ejemplo varias ALUs, varios multiplicadores, etc) para lograr ese paralelismo.
Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de instrucciones muy simples en cuanto a número de instrucciones diferentes, pero muy grandes en cuanto al tamaño de cada instrucción. Esto es así porque en cada instrucción se especifica el estado de todas y cada una de las unidades funcionales del sistema, con el objetivo de simplificar el diseño del hardware al dejar todo el trabajo de planificar el código en manos del programador/compilador, en oposición a un procesador superescalar, en el que es el hardware en tiempo de ejecución el que planifica las instrucciones.
Un microprocesador típico VLIW es el IA-64.
Forth
Forth ó FORTH es un lenguaje de programación atípico para computadores ideado por Charles Moore y Elisabeth Rather entre los años 1965 y 1970 en el National Radio Astronomy Observatory de Kitt Peak, Arizona.
Inicialmente diseñado para una aplicación muy concreta, la astronomía (cálculo de trayectorias de cuerpos en órbita, cromatografías, análisis de espectros de emisión), ha evolucionado hasta ser aplicable a casi todos demás campos relacionados o no con esa rama de la ciencia (cálculos de probabilidad, bases de datos, análisis estadísticos y hasta financieros).
Su nombre es una contracción de la palabra inglesa fourth, dado que sus creadores le consideraban destinado a cuarta generación de computadoras, pero la primera edición del lenguaje fue preparada para un IBM 1130, que solo permitía nombres con una longitud máxima de cinco letras; su nombre se quedó ya para siempre en FORTH. Posteriormente, un programa para la adquisición automática y continua de datos realizado en este lenguaje ha descubierto al menos la mitad de los cúmulos interestelares conocidos en la actualidad.
Una de sus importantes características es la utilización de una pila de datos para pasar los argumentos entre las palabras, que son los constituyentes de un programa en Forth. (Para una iluminadora analogía cf. Fith ). Vea También lenguaje de programación Joy.
BIOS

Memoria ROM que contiene el BIOS de una vieja placa base
El sistema básico de entrada/salida Basic Input-Output System (BIOS) es un código de interfaz que localiza y carga el sistema operativo en la RAM; es un software muy básico instalado en la placa base que permite que ésta cumpla su cometido. Proporciona la comunicación de bajo nivel, y el funcionamiento y configuración del hardware del sistema que, como mínimo, maneja el teclado y proporciona salida básica (emitiendo pitidos normalizados por el altavoz del ordenador si se producen fallos) durante el arranque. El BIOS usualmente está escrito en lenguaje ensamblador. El primer término BIOS apareció en el sistema operativo CP/M, y describe la parte de CP/M que se ejecutaba durante el arranque y que iba unida directamente al hardware (las máquinas de CP/M usualmente tenían un simple cargador arrancable en la ROM, y nada más). La mayoría de las versiones de MS-DOS tienen un archivo llamado "IBMBIO.COM" o "IO.SYS" que es análogo al CP/M BIOS.
En los primeros sistemas operativos para PC (como el DOS), el BIOS todavía permanecía activo tras el arranque y funcionamiento del sistema operativo. El acceso a dispositivos como la disquetera y el disco duro se hacían a través del BIOS. Sin embargo, los sistemas operativos SO más modernos realizan estas tareas por sí mismos, sin necesidad de llamadas a las rutinas del BIOS.
Al encender el ordenador, el BIOS se carga automáticamente en la memoria principal y se ejecuta desde ahí por el procesador (aunque en algunos casos el procesador ejecuta la BIOS leyéndola directamente desde la ROM que la contiene), cuando realiza una rutina de verificación e inicialización de los componentes presentes en la computadora, a través de un proceso denominado POST (Power On Self Test). Al finalizar esta fase busca el código de inicio del sistema operativo (bootstrap) en algunos de los dispositivos de memoria secundaria presentes, lo carga en memoria y transfiere el control de la computadora a éste.
Se puede resumir diciendo que el BIOS es el firmware presente en computadoras IBM PC y compatibles, que contiene las instrucciones más elementales para el funcionamiento de las mismas por incluir rutinas básicas de control de los dispositivos de entrada y salida. Está almacenado en un chip de memoria ROM o Flash, situado en la placa base de la computadora. Este chip suele denominarse en femenino "la BIOS", pues se refiere a una memoria (femenino) concreta; aunque para referirnos al contenido, lo correcto es hacerlo en masculino "el BIOS", ya que nos estamos refiriendo a un sistema (masculino) de entrada/salida.

Sistema operativo
Un sistema operativo (SO) es un conjunto de programas destinados a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la máquina desde los niveles más básicos.
Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que podamos utilizar sin necesidad de estar conectados a un ordenador y que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios... y computadoras)