3. Unidades funcionales de una Computadora 3.1 Computadora (UNLP) Una Computadora es una máquina digital y sincrónica, con cierta capacidad de cálculo numérico y lógico, controlada por un programa almacenado, y con posibilidad de comunicación con el mundo exterior. ¿Qué significa esto? Es digital porque dentro de la computadora las señales eléctricas que se manejan y la información que se procesa se representa en forma discreta, por medio de valores binarios (0 y 1). Además se afirma que es sincrónica, es decir que realiza las operaciones coordinada por un reloj central que envía pulsos de sincronismo a todos los elementos que componen la computadora. Esto significa que todas las operaciones internas se realizan en instantes de tiempo predefinidos y coordinados con el reloj. Internamente posee una capacidad de cálculo numérico y lógico, en un subsistema conocido como unidad aritmético-lógica (UAL). Normalmente las operaciones que pueden realizarse en ella son muy simples (suma, disyunción, conjunción, comparaciones). El hecho de que sea controlada por programas es quizás el punto más importante que diferencia a una computadora de una calculadora. Significa que internamente se tienen órdenes o instrucciones almacenadas, que la computadora podrá leer, interpretar y ejecutar ordenadamente. Además, está comunicada con el mundo real, que es analógico. Esto significa que puede realizar operaciones de entrada y salida con el mundo real, a través de dispositivos periféricos (por ejemplo el teclado o mouse para entrada de información, y pantalla como salida) La computadora es una máquina que cambia información de una forma a otra: recibe información (entrada), la transforma, y proporciona información (salida). Esta información puede presentarse de muchas formas, lo que convierte a la computadora en una máquina sumamente versátil, que es capaz desde liquidar impuestos hasta guiar el recorrido de una nave espacial. En cada caso las entradas y salidas son totalmente distintas, y en esto radica lo sorprendente de poder usar una computadora para ambas actividades. Esta versatilidad está dada en que la máquina está controlada por un programa, que establece las instrucciones que le indican a las partes físicas qué deben hacer para transformar los datos de entrada en la salida requerida. El programa controla todo el proceso, del principio al fin: podemos modificar su funcionamiento con solo cambiar el programa. 3.2 Máquina de Von Neumann En el año 1946, John Louis Von Neumann -junto a otros colaboradoresescribió un artículo de investigación titulado "First Draft of a Report of the EDVAC". En el mencionado documento se expresaban algunas ideas acerca de como debía operar una computadora. A tales conceptos, derivados del artículo, se los conoce con el nombre de Máquina o Arquitectura de Von Neumann; y han brindado las bases para la construcción y el desarrollo de computadoras hasta los días actuales. Hasta antes de Von Neumann la programación de una computadora consistía directamente en la reordenación física de sus componentes. La arquitectura Von Neumann se fundamenta en el concepto de programa almacenado; donde de forma revolucionaria, plantea que las instrucciones y los datos tenían que almacenarse juntos en un medio común y uniforme denominado memoria-, en vez de estar separados. Así las instrucciones y los datos podían leerse y escribirse bajo el control del programa. Nótese que un elemento de memoria o celda tiene una calidad ambigua con respecto a su interpretación -es instrucción o dato-; esta ambigüedad se resuelve al momento de la ejecución del programa almacenado, debido a que él mismo determinará qué celdas contienen datos y cuales instrucciones. Un segundo concepto, introducido por Von Neumann, es la ruptura de secuencia. Se dotó a la computadora de una instrucción denominada "salto condicional", donde según el resultado de una operación, se ejecutaría la siguiente instrucción u otra. Junto con la arquitectura se definió el ciclo de trabajo de una computadora (conjunto de pasos a realizar para ejecutar una instrucción de programa), que en su forma simple consta de las siguientes operaciones: Mientras haya instrucciones { Tomar de la memoria la siguiente instrucción. Decodificar la instrucción. Tomar de la memoria él o los operandos asociados. Ejecutar la operación. Almacenar en memoria los resultados. } A la computadora debe considerársela como una máquina procesadora de información capaz de transformar un programa escrito en un lenguaje de alto nivel -generalmente expresado en lenguaje natural- en un programa en lenguaje que el hardware pueda decodificar y ejecutar. La tarea de conversión de lenguaje de alto nivel a lenguaje de máquina la debe realizar un programa denominado compilador. En principio el hardware de un sistema se puede estructurar en tres partes claramente diferenciadas: la Unidad Central de Proceso (CPU o UCP), la memoria principal, y los dispositivos de entrada/salida. Todos estos elementos están conectados entre sí por los buses de comunicaciones. La unidad de entrada es el dispositivo por donde se introducen en la computadora los datos y las instrucciones. La unidad de salida de datos es un dispositivo donde se obtienen los resultados de los programas ejecutados en la computadora. Una forma alternativa de ver la computadora se presenta en el siguiente gráfico. Se han agregado los buses de comunicaciones que permiten solicitar, almacenar datos y controlar los dispositivos. Nótese el sentido del flujo de información sobre los buses. Bus Control Bus de datos Bus de direcciones UCP Memoria de trabajo Unidad Central de Proceso Periférico de E/S Periférico de E/S A mayor detalle, la máquina propuesta por Von Neumann consiste de los siguientes elementos: (a) una memoria principal (b) una Unidad Central de Proceso (UCP o CPU que contiene: (b1) una Unidad Aritmético Lógica (UAL) , cuya finalidad es ejecutar todas las operaciones aritméticas y lógicas, (b2) una Unidad de Control (UC) , cuya función básica es la de gerenciar el ciclo de trabajo descripto anteriormente. (b3) un conjunto de registros (c) líneas de transferencia (buses) de datos, direcciones de memoria y control (d) dispositivos de entrada/salida La UAL y la UC conforman al procesador o microprocesador. 3.2.1 Memoria principal La memoria es el componente responsable por el almacenamiento de los datos e instrucciones que componen un programa. Se trata de un conjunto finito de celdas del mismo tamaño, cada una identificada con una dirección, que pueden almacenar datos o instrucciones de programa La unidad básica de almacenamiento en una memoria es un bit. Una celda de una memoria puede almacenar n bits. De forma estándar una celda de tamaño mínimo está compuesta por 1 byte (8 bits) y se puede almacenar 1 de 2^8 valores diferentes. Si bien se describió la memoria principal (por su importancia dentro del esquema de Von Neumann) no es el único tipo de memoria existente en una computadora moderna. La necesidad de obtener una capacidad de almacenamiento permanente y de optimizar determinados procesos hace que los fabricantes desarrollen diferentes tipos de memorias, con diferentes tecnologías y capacidades específicas. Por ejemplo, existen memorias de almacenamiento permanente (generalmente conocidas como memorias secundarias que permiten “guardar” los datos y los programas aún luego de finalizada una sesión de trabajo y apagada la computadora. Actualmente, esta tarea la cumplen dispositivos denominados discos rígidos y son el complemente necesario de la memoria principal ya que permiten almacenar grandes volúmenes de datos que se utilizan en la computadora en diferentes momentos. Además de la RAM, existe un segundo tipo de memoria, de solo lectura, denominada ROM; sobre la cual los fabricantes graban programas y datos básicos para el funcionamiento de la computadora. 3.2.2 Unidad Central de Proceso La CPU o UCP contiene los siguientes tres módulos: la memoria la unidad aritmética y lógica y la unidad de control La UAL y la UC conforman al procesador o microprocesador. 3.2.2.1 Unidad Aritmético y Lógica La unidad aritmética y lógica es el componente encargado de realizar las operaciones tanto aritméticas (suma, resta, multiplicación, división) como lógicas (and, or, not) derivadas de la ejecución de un programa y es dirigida por la Unidad de Control. Dispone de un conjunto de registros internos que la auxilian en la tarea de cálculo. Tales registros se utilizan a los efectos de traer datos de memoria y almacenar temporalmente resultados para luego copiarlos a memoria. En resumen, la UAL comprende: Varios registros de memoria llamados acumuladores, donde se almacenan los resultados parciales de las operaciones . Circuitos dedicados a la suma, resta, multiplicación, división, comparación y testeo. 3.2.2.2 Unidad de Control Componente que controla el ciclo de procesamiento, coordinando todas las actividades de la computadora. Cada vez que se requiere ejecución de una instrucción, la UC reconoce la misma, carga los operandos, ejecuta la instrucción y almacena los resultados. Posee, de forma embutida o empotrada, el conjunto de instrucciones primitivas (microinstrucciones) que el procesador es capaz de interpretar y ejecutar (que normalmente es bastante reducido). La sincronización entre las etapas que componen el ciclo es realizada por un reloj común a todos los componentes. 3.2.3 Líneas de comunicación - Buses Los periféricos de entrada/salida representan a los dispositivos que permiten la comunicación con el exterior (Ej, módulo controlador de teclado, vídeo, reproducción de sonido, etc). A los efectos de interconectar todos los módulos se implementa un cableado denominado sistema de bus. Un sistema de bus está compuesto por el conjunto de caminos compartidos que permiten la interconexión de los distintos componentes: UCP, memoria y periféricos de entrada/salida. Un bus está formado por un conjunto de líneas eléctricas que permiten la transmisión de datos en paralelo. Hay tres tipos de buses: de datos: por donde, de forma bidireccional, fluyen los datos entre las distintas partes de la computadora. de direcciones, por donde viajan las direcciones de memoria sobre las cuales se quiere leer o escribir. de control, por donde viajan señales que controlan el acceso y el uso a los buses de datos y de direcciones. Señales de control pueden ser: escribir en memoria, leer de memoria, escribir o leer en un dispositivo de entrada/salida, etc. 3.2.4 Dispositivos de entrada/salida Las operaciones de entrada/salida son las encargadas de controlar y realizar el intercambio de información entre la computadora y el mundo exterior. Para realizar este intercambio se deben conocer los siguientes ítems: 1. a qué dispositivo se quiere acceder, 2. el estado de ese dispositivo y 3. qué operación hay que realizar. Existen una gran variedad de dispositivos de entrada/salida, con características muy diferentes a las de la CPU. La velocidad de transmisión de los periféricos es mucho menor que la velocidad de operación de una CPU, los periféricos poseen velocidades muy diferentes entre sí. En un dispositivo de entrada/salida se distinguen tres componentes: 1. Interfase: Se encarga de gestionar el intercambio de información entre el dispositivo periférico y la CPU. 2. Controlador: Gestiona directamente el dispositivo físico. 3. Periféricos: El dispositivo de entrada/salida propiamente dicho. Controlador teclado Memoria Principal Procesador Interfase E/S Teclado Controlador monitor Monitor Controlador disco Disco CPU Los periféricos son los dispositivos que hacen posible el intercambio de información entre la computadora y el mundo exterior. Se clasifican en: Unidades de entrada Unidades de salida Unidades de Entrada/Salida Periféricos de entrada: Son los encargados de introducir los datos y los programas desde el exterior a la memoria principal para que puedan ser utilizados por la computadora. Transforman los datos introducidos en códigos binarios que pueden ser entendidos y procesados por la computadora. Ejemplos: 1. 2. 3. 4. 5. Teclado. Es similar al teclado de una máquina de escribir y cuenta además con algunas teclas de controles y funciones. Mouse. Es un dispositivo que al ser desplazado sobre una superficie permite mover el cursor por la pantalla. Existen los de sistema mecánico y de sistema óptico. Sensores. Este tipo de periféricos incluye a las pantallas táctiles, capaces de seleccionar distintas opciones reconociendo el tacto sobre distintas zonas de la pantalla. También podemos encontrar otro tipo de sensores como el lápiz óptico, que cuando se posa en la pantalla reconoce la posición que ocupa mediante una medición de la luminosidad que recibe, la tableta gráfica, similar a una pizarra provista de un lápiz (los trazos sobre la tableta aparecen en la pantalla del computador), etc. Escáner. Permite digitalizar imágenes planas (fotografías o texto) y archivarlas. Otros: lector de tarjetas magnéticas, lector de marcas ópticas, joystick, reconocedor de voz, cámara de video, pantalla sensible al tacto, etc. Periféricos de salida: Son los encargados proporcionar al exterior los datos de salida o resultados de los procesos que se realizan en la computadora. Ejemplos: 1. 2. 3. Pantalla o monitor. Es el principal instrumento de comunicación entre la computadora y el usuario. Su constitución física es similar a la del tubo de imagen de un televisor. Plotter. Permite realizar gráficos de alta precisión como mapas o diseños técnicos. Impresora. Su misión es proporcionar copias impresas en papel de la información guardada en la computadora. Hay diversos tipos de impresoraa, entre los que destacan las impresoras de matriz de puntos, de chorro de tinta y las impresoras láser. Periféricos de entrada/salida: A través de ellos se intercambia información con la CPU en ambos sentidos. Un subconjunto importante de estos corresponde a los dispositivos de almacenamiento. Ejemplos: 1. 2. Modem. Es un dispositivo que permite la comunicación de una computadora con otra a través de la línea telefónica (red conmutada) o a través de líneas destinadas en forma exclusiva (líneas punto a punto). Para ello convierte los datos binarios en señales moduladas de baja frecuencia. Su nombre procede de su doble función: MOdulador, DEModulador. Su velocidad se mide en baudios, que equivalen aproximadamente a bits por segundo, al incluir las necesarias señales de control. De almacenamiento: Disquetera, discos rígidos, discos ópticos, unidades de cinta. Los perifericos de almacenamiento son también conocidos como memorias secundarias y memorias auxiliares. La mayoría de estos dispositivos almacenan la información de forma magnética. El primero de todos los dispositivos de almacenamiento magnético fue la unidad (lectora y grabadora) de cinta magnética, y posteriormente se desarrollaron las unidades de discos fijos o discos duros y las unidades de discos flexibles. En una cinta magnética el acceso a la información es secuencial (tenemos que hacer correr la cinta hasta que aparezca la información que buscamos); esto hace que sea un medio muy lento. Generalmente las cintas magnéticas, debido a su gran capacidad, se utilizan para hacer periodicamente copias de seguridad (backup) de la información almacenada en los discos duros del computador. Los discos magnéticos reciben este nombre porque su superficie es magnética y son dispositivos de acceso directo, esto es, no tenemos que recorrer toda la información que hay delante de la que necesitamos. Los discos magnéticos necesitan organizarse lógicamente para poder albergar información de un modo ordenado; dar formato a un disco magnético es dotarlo de la organización lógica necesaria. La información se almacena siguiendo círculos concéntricos llamados pistas que a su vez se dividen en sectores. Para indicar una dirección se especifica la pista y el sector donde comienza la información. Entre los distintos tipos de disco destacan los discos duros (hard disk ), que disponen de una gran capacidad de almacenamiento. Suelen ser fijos (no se pueden extraer del computador) y suelen contener el sistema operativo y los programas de uso más común. Los discos flexibles o diskettes, son extraibles y por eso pueden ser usados para transferir información de una computadora a otra. Estos discos tienen una capacidad mucho menor que un disco duro y el tiempo de acceso a la información almacenada es bastante grande. Asimismo podemos distinguir entre periféricos locales y periféricos remotos, según su conexión a la computadora. Un periférico local, como el mouse, se encuentra cerca de la CPU conectado mediante cables que hacen las veces de prolongador de los buses de la computadora. Para un periférico remoto, como una impresora láser, la conexión se realiza a través de una red de comunicaciones.