Buscar este blog

19 julio 2010

LA COMPUTADORA HACIA ADENTRO




              Una imagen de placa madre y la ubicación de los buses

INTRODUCCIÓN
Para comprender lo que realmente hay detrás de una computadora, es necesario dedicar mucho tiempo al estudio de las ciencias de la computación y la ingeniería computacional. Daremos aquí una visión general de la estructura interna y el funcionamiento para introducir los principales conceptos.

Un sistema de cómputo consta de un procesador, memoria, entrada/salida y las interconexiones entre estos componentes principales.

Las computadoras en realidad sólo hacen cuatro cosas:
recibir entradas (aceptan información desde el mundo exterior)
producir salidas (dan información al mundo exterior)
procesar información (llevan a cabo operaciones aritméticas o lógicas con la información)   • almacenar información (mueven y almacenan información en la memoria).

Veremos el hardware necesario para cumplir esas tareas, como la CPU, el disco rígido y otros dispositivos para almacenar información, los periféricos como el teclado, el Mouse, el monitor.
Luego analizaremos qué se entiende por digital, y qué es la Unidad Central de Procesamiento (CPU) o procesador y qué funciones cumplen los chips que están en él y en la Placa Madre.
Nos metemos dentro de la UCP para analizar la Unidad aritmética y lógica (UAL) y la Unidad de contro (UC), y los Registros.
Pasamos a la Memoria, necesaria porque la UCP debe obedecer las instrucciones programadas, pero debe recordar los datos, y saber donde están ellos, su “dirección”, para lo que son necesarios los Bus, de los que hay de distintos tipos. También veremos los tipos de memoria, la Ram y la Rom.
Por último, se pasa revista al Ciclo de Instrucción.


Dijimos que las computadoras son nuevas tecnologías de la comunicación e información que realizan esquemáticamente 4 cosas con éstas: la reciben, la procesan, la almacenan y la comunican y comparten con el exterior.
Con estas cuatro operaciones básicas las computadoras cumplen todas sus funciones, y tienen componentes de hardware dedicados a ellas.

Los dispositivos de entrada aceptan entradas del mundo exterior, siendo los más comunes el teclado, el mouse y el joystick. Los dispositivos de salida envían información al mundo exterior. Los más usuales son el monitor, la impresora y los parlantes.
Trataremos estos y otros dispositivos en el capítulo dedicado a los periféricos.

El procesador o unidad central de procesamiento (UCP o CPU), procesa información, llevando a cabo todos los cálculos aritméticos y tomando decisiones en base a la información. Es el “cerebro” de la computadora.
Los dispositivos de almacenamiento y la memoria sirven para almacenar información. Los medios de almacenamiento más conocidos son las unidades de disco (como el Disco rígido), diskettes y cintas, y ahora dispositivos con entrada USB, como el Pen Drive y el MP3.

La combinación de estos componentes constituye el hardware de un sistema de cómputo.


Recordemos que en el mundo de las computadoras la información es digital. Una computadora no entiende palabras, números, imágenes, notas musicales. Sólo pueden digerir información que ha sido dividida en bits, que es la unidad de información más pequeña.
Puede parecer extraño pensar que los cajeros automáticos, las consolas de videojuegos, y las supercomputadoras son procesadores de bits. Pero, independientemente de lo que pueda aparentar para el usuario, el núcleo de una computadora digital es una colección de conmutadores de encendido-apagado diseñada para convertir información de una forma a otra, enormemente rápido. En cierto modo es mucho más tonta que el cerebro, no puede procesar la riqueza de información de éste, por lo que le es mucho más fácil manejarse con sólo dos dígitos y valores bien definidos (1 y 0, o encendido – apagado). El usuario proporciona a la computadora patrones de bits (entrada) y ésta sigue las instrucciones para transformar esa entrada en otro patrón de bits (salida) y devolverlo al usuario.

Esto se desarrolla en otro módulo, dedicado a las Comunicaciones.


Virtualmente todos los diseños de computadoras contemporáneas están basados en los conceptos desarrollados por John Von Neumann, que toma las ideas de otros como Charles Babbage y su asistente, Ada Lovelace. Ésta, una genia no reconocida, escribió ¡ en 1823 !:  “La máquina analítica no es capaz de crear nada, sin embargo puede hacer cualquier cosa que sepamos ordenarle”.

Tal diseño es conocido como la arquitectura von Neumann, y se basa en conceptos claves: Los datos e instrucciones están almacenados en una única memoria; la ejecución ocurre de manera secuencial, de una instrucción a la siguiente.

LA UNIDAD CENTRAL DE PROCESAMIENTO
- ¿Cuánto es uno más uno más uno más uno más uno
 más uno más uno más uno más uno?
- No lo sé - dijo Alicia - Perdí la cuenta.
- No sabe sumar - dijo la reina Roja.
Louis Carroll, en Alicia a través del espejo.

Las transformaciones son realizadas por la Unidad Central de Procesamiento o procesador. Toda computadora tiene una UCP o PCU que interpreta y lleva a cabo las instrucciones de los programas, efectúa manipulaciones aritméticas y lógicas con los datos y se comunica con las demás partes del sistema. Una UCP moderna es un conjunto extraordinariamente complejo de circuitos electrónicos.
Cuando se incorporan todos estos circuitos en un chip de silicio, como sucede en la mayoría de las computadoras actuales, a este chip se lo denomina microprocesador (los más conocidos son los de Intel y los de AMD).
La UCP y otros chips y componentes electrónicos se ubican en un tablero de circuitos o “mainboard”, o placa madre.
Aunque hay variantes en cuanto al diseño de estos chips, existen dos factores relevantes para el usuario: la compatibilidad y la velocidad.

Compatibilidad. No todo el software es compatible con todas las UCP, es posible que el software escrito para un procesador no funcione en otro. Por ejemplo, el software escrito para la familia de procesadores Motorola usados en las computadoras Macintosh o Mac, de Apple, no puede ejecutarse en los procesadores Intel o AMD de la mayoría de las computadoras compatibles con IBM. En algunos casos se pueden resolver estos problemas utilizando software especial de conversión.

Velocidad. Hay una enorme diferencia en la rapidez con la cual los procesadores pueden manejar información. La velocidad de una computadora está determinada en gran parte por la velocidad de su reloj interno, el dispositivo cronométrico que produce pulsos eléctricos para sincronizar las operaciones. Por lo general, las computadoras se describen en términos de su velocidad de reloj, medido en unidades llamadas megahertz (millones de pulsos por segundo). Pero la velocidad de reloj no es suficiente para describir cuán rápido puede procesar palabras, números o imágenes una computadora.
La velocidad está determinada también por la arquitectura del procesador, esto es, el diseño que establece de qué manera están colocados en el chip los componentes individuales de la UCP.  De hecho, la arquitectura de todo el sistema de cómputo es parte importante de la ecuación de velocidad.
“Más rápido” casi siempre significa “mejor”. En la mayoría de las aplicaciones como el procesamiento de texto, es mejor emplear una máquina más rápida, mientras que las aplicaciones que usan muchos gráficos y cálculos necesitan máquinas más rápidas.
Como la velocidad es decisiva y los programas son cada vez más “pesados”, tienen más bytes, los ingenieros y científicos de la computación constantemente desarrollan técnicas para acelerar la capacidad de la computadora para manipular y mover bits. Una alternativa muy usada consiste en colocar más de un procesador en la computadora, por ejemplo para realizar determinadas operaciones como cálculos matemáticos o presentaciones gráficas (por eso la mayoría de las computadoras actuales son “Dual Core”, doble núcleo, dos procesadores, y más también).
Por otro lado, la mayoría de las supercomputadoras tienen varios procesadores completos que pueden dividir los trabajos en porciones y trabajar con ellos en paralelo (procesamiento en paralelo).



Visión simplificada de la UCP, indicando la conexión con el resto del sistema vía el bus o canal de comunicación del sistema.



 Podemos observar que, internamente, los principales componentes de la UCP son una unidad aritmética y lógica (UAL) y una unidad de control (UC). La UAL realiza la computación real o procesamiento de datos. La UC controla la operación de la UAL.
Además, existe una mínima memoria interna de la UCP, consistente de un conjunto de lugares de almacenamiento, llamadas registros.

Los registros de la UCP sirven para dos funciones:
- registros visibles al usuario. Permiten al programador en lenguaje de máquina minimizar las referencias a memoria principal optimizando el uso de los registros, que son de acceso más rápido que aquella.
- registros de control y estado. Son utilizados por la UC para controlar la operación de la UCP, y por programas del Sistema Operativo para controlar la ejecución de los programas. Entre estos registros se encuentran el contador de programa (que contiene la ubicación de la próxima instrucción a ser ejecutada) y el registro de instrucción (que contiene la última instrucción buscada).

La UAL es la parte de la computadora que ejecuta realmente las operaciones aritméticas y lógicas sobre datos. Todos los otros elementos del sistema de cómputo (UC, registros, memoria, entrada/salida) están principalmente para traer datos a la UAL para que ésta los procese y luego tomar los resultados y comunicarlos.
Una UAL, y por lo tanto todas las componentes en la computadora están basadas en el uso de simples dispositivos lógicos digitales que pueden almacenar dígitos binarios y realizar operaciones lógicas simples (operaciones booleanas).



LA MEMORIA
Aguardó con impaciencia la respuesta de Riddle:
- Menos mal que registré mis memorias en algo mas duradero que la tinta. Siempre
supe que habría gente que no querría que mi diario fuera leído
      -   “¿Qué quieres decir?”, escribió Harry, echando, por los nervios, un borrón en la página.
- Quiero decir que este diario da fe de cosas horribles. Cosas que fueron ocultadas.
Cosas que sucedieron en el Colegio Hogwarts de Magia y brujería.
Harry Potter y la cámara secreta, Cap 13: El diario secretísimo.

La función principal de la UCP es obedecer las instrucciones codificadas en los programas. Sin embargo, como Alicia en A través del espejo, la UCP sólo puede manejar una instrucción y unos cuantos datos a la vez. La computadora tiene que “recordar” el resto del programa y los datos hasta que el procesador esté listo para usarlos.
Cuando está listo, ¿cómo sabe la UCP dónde están los mismos?.
Porque todos los dispositivos se conectan al mismo medio de comunicación compartido que es el bus, pero son necesarias “direcciones” para reconocer un componente.

La UCP está conectada con el resto de los componentes del sistema a través de 3 buses distintos: direcciones, datos y control. Independientemente de la implementación de cada procesador, la información que viaja por el bus de direcciones tiene como objetivo “identificar” otro componente con el cual la UCP quiere comunicarse, todos los componentes están conectados al bus de direcciones, pero aquél que “reconoce” su dirección queda conectado a la UCP y el resto es como si no estuvieran. Una vez comunicada la UCP con otro componente, puede enviar ó recibir información a través del bus de datos.
Se tiene entonces, un medio para identificar: el bus de direcciones, un medio para transportar el dato propiamente dicho: el bus de datos, y otro para controlar el intercambio de información: el bus de control.

Modelo de memoria
Suponga un modelo de memoria que está formado por “cajitas” que pueden guardar información. Dentro de esa cajita se escribirá el dato a almacenar (DATO) y al costado escribiremos la DIRECCION de esa posición de memoria. Recuerde que una dirección es un número binario (combinación de unos y ceros) que identifican a un dispositivo, en este caso una posición de memoria. Cada dirección deberá ser única, a fin de que cuando la UCP quiera comunicarse con una posición de memoria, lo haga con una a la vez.
DIRECCIÓN                          
                                       DATO
 RAM y ROM
La RAM (random access memory: memoria de acceso aleatorio) es el tipo más común de almacenamiento primario o memoria de la computadora. Los chips RAM contienen circuitos que sirven para almacenar temporalmente instrucciones de programas y datos. Un chip de RAM está dividido en posiciones o celdas de igual tamaño, identificadas por una dirección única, de manera que el procesador puede distinguirlas y ordenar que se guarde o recupere información de ella.
La información almacenada en la RAM no es más que un patrón de corriente eléctrica que fluye por circuitos microscópicos en chips de silicio. Esto significa que si se interrumpe la energía eléctrica, por cualquier razón, la computadora olvida inmediatamente todo lo que estaba recordando en la RAM. Técnicamente, la RAM es una memoria volátil, ya que la información que contiene no se conserva de manera permanente.
Esto representaría un problema muy grave si la computadora no tuviera otro tipo de memoria donde guardar de manera permanente la información importante. Esta memoria no volátil se denomina ROM (read-only memory: memoria sólo de lectura) porque la computadora puede leer información de ella, pero no escribir nueva información. Los dispositivos de ROM  contienen las instrucciones de arranque y otra información crítica. La información en la ROM se graba permanentemente cuando nace la computadora, de modo que siempre está disponible cuando ésta opera, pero no puede cambiarse a menos que se reemplace el chip de ROM.

Adicionalmente, existen otros medios donde almacenar información y que constituyen una forma de memoria externa, como por ejemplo los discos rígidos.
Nos referiremos a ellos en el capítulo de Periféricos.

Entonces las máquinas están equipadas con un sistema de memoria, compuesto por elementos internos (accesibles directamente por el procesador) y externos (accesibles vía un módulo de entrada/salida). Dentro de la memoria interna encontramos la memoria principal y la memoria local de la UCP (registros). La memoria externa consiste en dispositivos de almacenamiento periférico, como discos y cintas.
Aunque aparentemente simple en concepto, la memoria exhibe quizás el mayor rango de tipo, tecnología, organización, performance y costo de todos los componentes.

Algunas características de la memoria son su capacidad, su velocidad y su costo.
Las restricciones de diseño del sistema de memoria de una computadora pueden ser resumidas por tres preguntas: ¿cuánta?, ¿cuán rápida?, ¿a qué costo?
La pregunta sobre cuánta es de respuesta abierta: si la capacidad está, las aplicaciones serán desarrolladas para usarla.
La pregunta de cuán rápida es un poco más fácil de responder. Para obtener mayores prestaciones, la memoria debe estar acorde con el procesador. Es decir, a medida que la UCP ejecuta instrucciones no queremos que se demore esperando instrucciones o datos. O sea, no tiene sentido una computadora muy rápida con poca memoria, y viceversa.
Para un sistema práctico, el costo de memoria debe ser razonable en relación a los otros componentes.
Como es de esperar, hay una relación entre las tres características clave de la memoria (costo, capacidad y tiempo de acceso):
- menor tiempo de acceso, mayor costo por bit
- mayor capacidad, menor costo por bit
- mayor capacidad, mayor tiempo de acceso
Para obtener las mejores prestaciones, el diseñador deberá elegir y combinar diferentes subsistemas de memoria para poder balancear las partes costosas y rápidas con las económicas y lentas.

En general la memoria interna o propia de una computadora es varias veces menor que la memoria externa (por ejemplo 64 MB de RAM contra 10 GB de disco).


BUSES Y ENTRADA/SALIDA
En una computadora de escritorio corriente, la UCP y los chips de memoria se fijan en una placa de circuitos (placa madre o motherboard) junto con otras componentes clave. La información viaja entre las componentes a través de grupos de cables llamados buses. Por lo general, los buses tienen 8, 16 o 32 cables; dado que por cada cable puede fluir un bit a la vez, un bus con 16 cables se denomina bus de 16 bits, ya que puede transmitir 16 bits de información al mismo tiempo (por distintos caminos); transmite el doble de información que un bus de 8 bits. De la misma manera en que una autopista con varios carriles permite que grandes cantidades de vehículos se muevan con mayor rapidez que un camino de un solo carril, los buses más anchos pueden transmitir información con más rapidez que los angostos. Las computadoras más nuevas y potentes cuentan con buses más anchos, para que puedan transferir la información con mayor rapidez.
Si no tuviera la estructura de bus, habría problemas al querer conectar al sistema de cómputo un nuevo dispositivo.

Además de la UCP y un conjunto de módulos de memoria, el tercer elemento clave de un sistema de cómputo es un conjunto de módulos de entrada y/o salida (E/S).
Cada módulo realiza la interfase con el bus del sistema y controla uno o más dispositivos periféricos. Un módulo de E/S no es simplemente un grupo de conectores mecánicos que enlazan un dispositivo con el bus del sistema, sino que contiene alguna “inteligencia”, es decir, contiene lógica para realizar las funciones de comunicación.
Un módulo de E/S es la entidad responsable de controlar uno o más dispositivos externos y de intercambiar datos entre estos dispositivos y la memoria principal y/o los registros de la UCP. Luego, el módulo de E/S debe tener una interfaz interna a la computadora (la UCP y la memoria principal) y una interfaz externa a la computadora (el dispositivo externo).

Algunos canales están conectados a ranuras de expansión en la caja de la computadora, que permiten personalizar las máquinas insertando placas de circuitos de propósito especial en ellas. Otros canales están conectados a puertos externos, esto es, puntos de conexión en la parte exterior del chasis de la computadora.
Ambas formas de expansión simplifican la adición de dispositivos externos o periféricos para que la UCP pueda comunicarse con el mundo exterior y almacenar información que se usará después.


FUNCIONAMIENTO.  EL CICLO DE INSTRUCCIÓN.

La función básica realizada por una computadora es la ejecución de programas. El programa a ser ejecutado consiste de un conjunto de instrucciones almacenadas en la memoria. La UCP realiza el trabajo real ejecutando las instrucciones especificadas en el programa.
Para entender mejor el funcionamiento y la manera en la cual interactúan los principales componentes para ejecutar un programa, necesitamos mirar en más detalle el proceso de ejecución. El punto de vista más simple es considerar el procesamiento de instrucción como consistente de dos pasos: la UCP lee (busca) las instrucciones desde la memoria una a la vez, y las ejecuta. La ejecución del programa consiste en repetir el proceso de búsqueda y ejecución.
Por supuesto, la ejecución de una instrucción puede involucrar en sí misma un número de pasos. En este punto, podemos justificar la simplificación por lo siguiente:
La búsqueda de instrucción es una operación común para cada instrucción, y consiste en leer una instrucción desde una posición de memoria. La ejecución puede involucrar varias operaciones y depende de la naturaleza de la instrucción.
El procesamiento requerido para una sola instrucción es llamado ciclo de instrucción.
Usando la descripción simplificada, los dos pasos son el ciclo de búsqueda y el ciclo de ejecución. La ejecución se detiene sólo si la máquina es apagada, si ocurre algún error irrecuperable, o se encuentra una instrucción de programa que detenga la computadora.


En el comienzo de cada ciclo de instrucción, la UCP busca una instrucción desde la memoria. En una UCP típica, se usa un registro llamado contador de programa para conocer la ubicación desde la cual la próxima instrucción debe ser buscada. A menos que se diga otra cosa, la UCP siempre incrementa el contador de programa después de cada búsqueda de instrucción, de modo de quedar listo para buscar la próxima en secuencia (es decir, la instrucción ubicada en la siguiente posición de memoria). Esta secuencia podrá ser alterada de alguna manera y la indicaremos en modo especial.
La instrucción buscada es cargada en un registro de la UCP conocido como registro de instrucción. La instrucción está en la forma de un código binario que especifica qué acción debe tomar la UCP; ésta interpreta la instrucción y realiza la acción requerida.

Interrupciones
Virtualmente todas las computadoras proveen un mecanismo por el cual otros módulos (E/S, memoria) pueden interrumpir el procesamiento normal de la UCP.
Estas interrupciones tienen implicancias sobre el ciclo de instrucción y la estructura de interconexión.
Las interrupciones se proveen principalmente como una manera de mejorar la eficiencia de procesamiento. Por ejemplo, la mayoría de los dispositivos externos son mucho más lentos que el procesador. Supongamos que el procesador está transfiriendo datos a una impresora usando el esquema de ciclo de instrucción visto.
Después de cada operación de escritura, el procesador tendrá que parar y estar ocioso hasta que la impresora tome el dato. La longitud de esta pausa puede estar en el orden de varios cientos o miles de ciclos de instrucción que no involucren memoria.
Claramente, esto es un gran desperdicio del uso del procesador. Con las interrupciones, el procesador puede ejecutar otras instrucciones mientras la operación de E/S progresa, con la consiguiente ganancia en el uso del procesador.

Además, recordemos cuando recibimos mensajes del tipo “Impresora detenida o Falla en la impresora” cuando se terminó el papel en una impresión o se atascó una hoja. En esos casos  conviene que estas señales de la impresora a la computadora viajen por una línea de control que genera una interrupción.


Este apunte está basado en documentos del Curso de Ingreso 2007 – 
Conceptos de Organización de Computadoras – 
Facultad de Informática – Universidad Nacional de La Plata
Profesor Jorge GIL


No hay comentarios:

Publicar un comentario