Introducción a la arquitectura de computadoras
Introducción
Sean ustedes bienvenidas y bienvenidos. En esta clase discutiremos, de manera muy breve, como está constituida una computadora moderna; cuáles son sus componentes y en qué forma se comunican entre ellos. Conceptos como CPU, memoria RAM, dispositivos de entrada/salida serán abordados y frases como computadoras con arquitectura de 32 o 64 bits tendrán un claro significado.
Comprender cómo está constituida una computadora para un programador es tan importante como saber cómo funciona un automóvil para un buen conductor. No es indispensable ser un diseñador de carros para ser un buen chofer, pero tener nociones de cómo funciona el auto, hace que el chofer entienda con mayor profundidad las reglas de conducción y el comportamiento de un automóvil.
Con lo que aprendas en esta clase te quedarán mucho más claras las consecuencias de las decisiones que se toman cuando se eligen características técnicas de una computadora.
Curiosamente y en contraste con la rápida evolución de las capacidades de los microprocesadores y dispositivos periféricos, la estructura básica de una computadora ha cambiado poco desde su primera concepción.
Recuerda que esta clase no tiene como intención que te vuelvas experto en el diseño de arquitecturas de computadoras, sino que es una muy breve introducción a este tema. Si es de tu interés profundizar en conceptos que aquí se plantean ¡te recomendamos que lo hagas! ¡Adentrarnos a las entrañas de una computadora es un viaje fascinante!
Desarrollo del tema
Existen múltiples definiciones de lo que es una computadora, un buen resumen de ellas identifica a la computadora como aquel dispositivo que es capaz de realizar un gran número de operaciones complejas de un conjunto de instrucciones previamente establecido con la intención de procesar y administrar datos (Chávez, 2017).
Por su parte, el concepto de arquitectura de computadora se refiere al estudio de los componentes que forman una computadora y la interacción entre ellos. La primera propuesta documentada de una arquitectura de computadora se las debemos a Charles Babbage quien propuso un concepto de computadora mecánica; a su vez, se ha considerado a la matemática Ada Lovelance como la iniciadora de la ingeniería de software que pudo darse cuenta de que la computadora era más que una simple calculadora sofisticada y predijo las aplicaciones que podía llegar a tener.
La arquitectura moderna de computadoras se las debemos a John Von Newmann y a Alan Turing, quienes a mediados del siglo pasado quienes propusieron el esquema básico de lo que ahora sigue siendo una computadora (Copeland, B. J, 2005).
La computadora se puede esquematizar de la siguiente forma:
Imagen 1. Elaboración propia.
Donde El CPU (central process unit), o unidad de procesamiento central es el componente que se encarga de realizar operaciones aritméticas básicas y operaciones lógicas.
La memoria en este diagrama se refiere al lugar donde se almacenan tanto datos como programas que están siendo ejecutados en el momento, la memoria RAM (Random Access Memory, memoria de acceso aleatorio) es la memoria principal de la computadora, pero no es la única con que cuenta la computadora.
Los dispositivos de entrada son todos aquellos mecanismos por los cuales la computadora adquiere información del mundo exterior. Principalmente estos dispositivos se comunican con la memoria para almacenar la información de llegada para que posteriormente el CPU la analice. Ejemplos típicos de dispositivos de entrada son el teclado, el ratón, micrófonos, cámaras, escáneres, etc. Los dispositivos de salida son aquellos por donde la computadora envía la información procesada al exterior, El dispositivo de salida más usado es la pantalla de la computadora, la impresora o las bocinas.
Existen dispositivos híbridos de entrada y salida, como la tarjeta de red o unidad inalámbrica, donde la computadora envía y recibe información.
Si quieres construir tu propia computadora eligiendo cada dispositivo, este sitio recomienda varios logares en la web a donde acudir para conseguir información:
¿Qué tal? ¿pudiste configurar una computadora a tu medida?, ¿la cotizaste? ¿le pusiste sistema operativo? ¿Que tan más cara o barata es respecto a un modelo parecido que ofrece una computadora de marca conocida?
Analicemos con más detalle cada componente:
CPU Unidad de procesamiento central
El CPU tiene a su vez un diagrama esquemático que indica cómo está compuesto:
El CPU contiene una serie básica de instrucciones definidas por el fabricante, actualmente hay dos compañías que dominan el mercado de los CPU’s para computadoras personales: Intel y AMD, ambas comparten instrucciones que son compatibles, pero también tienen diferencias que hacen que una marca domine sobre otra en algún aspecto, esto genera una discusión de carácter más comercial que técnico.
Las características del CPU que podemos elegir al comprar una computadora es la marca del CPU, la velocidad con la que puede realizar operaciones, medida indirectamente por la frecuencia del reloj maestro de la computadora, actualmente esta característica se mide en GHz (Giga Hertz (miles de millones de ciclos por segundo) y es uno de los factores que determina fuertemente el precio de la computadora. La segunda característica que hay que tomar en cuenta es el número de núcleos (procesadores dentro del CPU) con que se cuenta, en general son 2, 4, 6, 8 y hasta 18 núcleos. Estos núcleos podrían entenderse como múltiples CPU’s para la misma computadora.
Memoria
La memoria primaria de la computadora también se le conoce como RAM (Random Acess Memory), aquí es donde se almacena de forma temporal la información que necesita la computadora para hacer un trabajo rápido, es una memoria que usualmente se pierde cuando la computadora se apaga y tiene un tamaño de 4 hasta 64 GB (Giga Bytes) de tamaño. El precio se incrementa enormemente al superar los 8 GB. Otra característica muy importante de la memoria es que tan rápido puede almacenar o entregar información, al igual que en el CPU, esto se mide en GHz.
Memoria secundaria, es una memoria de largo plazo, esta memoria no se pierde al apagarse la computadora, usualmente este tipo de memoria tiene mucha más capacidad de almacenamiento que la memoria principal, suele ser centenas de veces más grande que la memoria principal, pero, por motivos tecnológicos, también suele ser centenas o miles de veces más lenta que la memoria RAM. Existen múltiples tecnologías como los discos duros o los discos de estado sólido (actualmente muy utilizados por la disminución del precio en el mercado). Esta característica es una de las más revisadas cuando se elige una computadora.
Dispositivos de entrada y salida
Los dispositivos de entrada son aquellos que sirven para introducir información a la computadora, el teclado y el ratón son los más frecuentemente usados, aunque estos dispositivos reciben relativamente poca información.
El dispositivo de salida por excelencia es la pantalla, cada vez más el mercado de los videojuegos necesita de mejores dispositivos de salida que logren generar un efecto más realista en este tipo de juegos. Tanto ha sido la exigencia que se han generado procesadores específicos para manejar esta salida, a estos dispositivos se les llama tarjetas gráficas y en ocasiones pueden tener un valor más alto que el resto de la computadora. Las tarjetas gráficas cuentan ya con su propio CPU, llamado GPU (Graphics Unit Process) y su propia memoria RAM, que puede tener tamaños tan grandes como la memoria principal de la computadora. Ha sido tan impresionante la capacidad que tienen estas tarjetas que ahora se utilizan para realizar procesos muy exigentes como el de aprendizaje de sistemas de inteligencia artificial.
Las tarjetas de red, alámbricas o inalámbricas, son dispositivos híbridos porque sirven tanto de entrada como de salida, las memorias USB, los lectores y escritores de DVD´s también son dispositivos de entrada/salida.
Buses
Los buses o carreteras de comunicación entre dispositivos son, como su nombre lo indica, caminos que se usan para poder comunicar a los distintos dispositivos de la computadora, cada carretera transporta un tipo de información en particular. Como toda carretera, tiene carriles, pero estos carriles tienen un comportamiento peculiar, solo puede transitar un dato (el equivalente a un automóvil) a la vez en cada carril. De esta forma las carreteras de datos y de direcciones tienen, en la actualidad, 64 carriles y se llaman arquitecturas de 64 bits, hace 5 o 10 años estas carreteras eran de 32 carriles (32 bits).
El concepto de dirección y dato es muy importante en programación y será ampliamente abordado cuando se estudie el concepto de apuntadores. Pensemos que un dato que puede almacenarse en la memoria debe ser almacenado en una dirección específica. Así pues, la dirección donde se almacena una variable necesita almacenar 64 bits
El CPU al enviar o solicitar información a memoria debe indicar en qué dirección se encuentra o se quiere grabar algo, los dispositivos de entrada y salida pueden acceder a la memoria sin necesidad de interrumpir al CPU, nótese las flechas con doble dirección.
El bus de control es el responsable que no haya colisiones en los buses de datos y de direcciones, recuerden que estas carreteras solo pueden ser utilizadas por un dispositivo a la vez.
Conclusión
En resumen, una computadora está constituida esencialmente de:
- CPU. Unidad central de procesamiento que consta de la unidad aritmética lógica, la unidad de control y los arreglos de registros. Es el sitio donde se realizan la mayoría de las operaciones.
- Memoria. Es el lugar donde se almacena la información necesaria para que la computadora funcione. Hay de dos tipos, la primaria que responde a muy alta velocidad para leer y escribir; pero no es muy grande (del orden de varios GB), cuando la computadora se apaga se pierde la información almacenada. El otro tipo de memoria es la secundaria o de largo plazo, esta memoria no se pierde y es mucho más grande que la primaria, puede llegar a ser 1000 veces más grande que la primaria. La velocidad de lectura y escritura es mucho más lenta, miles de veces más lenta que la primaria.
- Dispositivos de entrada. Son las vías por donde la información entra a la computadora, los más usados y básicos son el teclado y el ratón, pero los hay más sofisticados como los escáneres y tarjetas digitalizadoras etc.
- Dispositivos de salida. Son las vías por donde la computadora envía información hacia el exterior. La pantalla es la más usada, tanto que se han generado minicomputadoras que se encargan de procesar la información de la pantalla, a estos dispositivos se les conoce como tarjetas gráficas.
- Dispositivos de entrada y salida. Tienen el doble propósito de enviar y recibir información, las tarjetas de red alámbricas e inalámbricas y las memorias USB, son un ejemplo muy utilizado de este tipo de dispositivos.
- Buses. Son las carreteras por donde viaja la información, son 3, el bus de datos, el bus de direcciones y el bus de control. El bus de datos y el de direcciones es de 64 bits en las computadoras modernas y anteriormente eran de 32 bits. El bus de control es el responsable de permitir que solo uno de los dispositivos de la computadora use los demás buses a la vez.
Un concepto importante de entender es que los datos deben ser almacenados en una dirección en específico, para poder leer o escribir un dato en la memoria debemos saber tanto la cantidad que queremos escribir como la dirección donde lo haremos.
Fuentes de información
- Chavez A. (2017). Aprenda a diseñar algoritmos. Sello Editorial UNAD. https://repository.unad.eu.co/bitstream/handle/10596/11970/Chave?sequen.
- Copeland, B. J., ed. (2005), Alan Turing’s Automatic Computing Engine, Oxford: Oxford University Press, ISBN 0-19-856593-3
- El capítulo 1 del siguiente libro: Chávez A. (2017). Aprenda a diseñar algoritmos. Sello Editorial UNAD URL: https://repository.unad.edu.co/bitstream/handle/10596/11970/Chave?sequence=3
- Los distantitos tipos de CPU’s de la marca AMD los puedes encontrar en: https://www.amd.com/es/processors
- Los distantitos tipos de CPU’s de la marca Intel los puedes encontrar en: https://www.intel.la/content/www/xl/es/products/details/processors.html
- Para conocer más sobre tarjetas de video te recomendamos ver: https://www.nvidia.com/es-la/geforce/graphics-cards/
- Para ver los distintos tipos de memoria RAM que se pueden conseguir en el mercado puedes consultar en: https://www.kingston.com/en/memory
- Y si quieres construir tu propia computadora eligiendo cada dispositivo, este sitio recomienda varios logares en la web a donde acudir para conseguir información: https://www.guru99.com/best-custom-pc-builder-website.html