CPU
Un par de comentarios del envío anterior, me han recordado uno de esos conceptos que la gente suele utilizar de forma equivocada: la CPU. Hay mucha gente que llama CPU a la caja o torre donde se encuentra la electrónica de un ordenador, en contraposición a elementos periféricos como el monitor, teclado o ratón. Se ha convertido en uso común en el mundo de la informática, y sin embargo, la CPU es algo completamente diferente.
CPU son las siglas de Central Processing Unit, que quiere decir, Unidad Central de Proceso (existe literatura en castellano en la que se utilizan precisamente las siglas UCP). ¿Y eso qué es? Pues básicamente el cerebro
de un ordenador. La CPU es el circuito que se encarga de decodificar las instrucciones que conforman un programa (y que se hayan en la memoria principal), y ejecutarlas.
Comprender su funcionamiento es relativamente simple a nivel conceptual. Un programa no es más que un secuencia de números que están guardados de forma secuencial en la memoria principal del sistema (la famosa RAM). Estos números pueden ser instrucciones o datos. La memoria es algo externo a la CPU, pero ésta tiene unas pequeñísimas y rapidísimas memorias internas llamadas registros (para haceros una idea, lo normal en la actualidad es que sean de 32 ó 64 bits, es decir, 4 u 8 bytes). Uno de estos registros es el llamado contador de programa, y su misión es ir apuntando en todo momento a la posición de memoria que contiene la instrucción a ejecutar.
¿Apuntar? ¿Posición? Veamos, imagináos la memoria principal como un inmenso armario lleno de cajones. Cada cajón está numerado secuencialmente, y puede contener un fragmento de información (que puede ser 1 byte, ó 2, o lo que sea, dependiendo del diseño). La forma de referirme a cada cajón sería a través de su número, es decir, su posición en el armario. Cuando un registro o una posición de memoria tiene almacenado como dato, un número que se interpreta como una posición de memoria, se dice que está apuntando a esa posición, ya que me está indicando esa posición.
Sigamos, la CPU lee el número que se encuentre en la posición de memoria apuntada por el contador de programa, y la interpreta como una instrucción. Cada CPU tiene un juego de instrucciones, que especifican qué significa cada número. Imaginemos una CPU en la que el número 1, significa sumar, el 2 saltar a otra instrucción, etc. La mayoría de las instrucciones necesitan algún dato adicional. Por ejemplo, para que la instrucción sumar
tenga alguna utilidad, hay que decirle qué números debe sumar. Dependiendo de la instrucción concreta, puede que justo después de ésta estén los datos, o puede que lo que haya sea otro número que nos apunte a la posición de memoria donde están, o puede que ya estén en otros registros de la CPU porque alguna instrucción anterior los haya puesto ahí. En cualquier caso, la CPU va leyendo instrucciones y datos, ejecutando dichas instrucciones, y modificando el contador de programa en el proceso.
Una parte importante de la CPU es la llamada ALU (Arithmetic Logic Unit, es decir, unidad aritmético-lógica), que se encarga de realizar las operaciones matemáticas, que básicamente son sumas, desplazamientos de bits y operaciones lógicas del álgebra de Boole, si bien, hay ALUs que además incluyen multiplicaciones, divisiones y aritmética de coma flotante (es decir, que pueden manejar números del tipo 6,6742x10-11).
En la prehistoria de la informática, los distintos componentes de la CPU estaban físicamente separados, en enormes circuitos. En la actualidad, la CPU se haya integrada dentro de un único chip llamado microprocesador. Es importante hacer notar que si bien la CPU está dentro del microprocesador, no todo el microprocesador consiste en la CPU. En un microprocesador se integran circuitos adicionales como puede ser una memoria caché, que consiste en una pequeña memoria muy rápida (no confundir con los registros de una CPU; esta memoria es bastante más grande) en la que se cargan fragmentos de la memoria principal , de forma que la CPU no tenga que acceder a dicha memoria principal (que es más lenta) para obtener cada instrucción o dato. Si os parece una distinción sutil o complicada, pensad en estos términos: un microprocesador es un chip, con sus patitas metálicas, que podemos tocar y sujetar en la mano. Un Pentium 4, por ejemplo, es un microprocesador. La CPU es, sin embargo, parte del interior de un microprocesador.
Sigamos. Un microprocesador, así solito, no sirve de mucho. Debe estar conectado a alguna memoria, para obtener las instrucciones y datos con los que operar. En un ordenador, el microprocesador y los chips de memoria (que normalmente consisten en varios chips iguales y en fila) se encuentran insertados en lo que se llama placa base, que consiste en una tarjeta (de cierto tamaño) de circuitos impresos, que conectan el microprocesador con la memoria, y otros circuitos que actuan como interfaz con otros elementos (como el disco) y el exterior (como teclado, y ratón, ya que no queremos un ordenador autista ¿no?).
En un ordenador de sobremesa actual, todo eso se encuentra dentro de esa caja metálica que muchos llaman CPU, junto con las unidades de disco, otras tarjetas con funcionalidades específicas (WiFi, gráficos 3D, etc) e incluso huecos y ranuras para añadir más unidades de disco o nuevas tarjetas, e ir ampliando nuestro ordenador. Pero fijáos que en realidad, esa caja no es la CPU. Esa caja tiene dentro la placa base, que a su vez incluye el microprocesador, en cuyo interior se encuentra integrada la CPU.
Así que a menos que aleguéis que estais utilizando una metonimia, no es correcto llamar CPU a esa caja.







