Un ordenador por dentro (IV): La Unidad Central de Proceso

Un amplio grupo de personas confunde la Unidad Central de Proceso (también conocida como CPU o procesador a secas) con la torre del ordenador, donde no sólo está situada la CPU sino también otros dispositivos como el disco duro, la fuente de alimentación, el DVD, etc. Llamar CPU a la torre es como llamar “cerebro” a toda la cabeza. Se podría decir que la CPU es el cerebro del ordenador: el componente que dirige y gestiona de manera central la mayoría de las acciones que éste realiza.

Tras haber conocido en capítulos anteriores cómo funciona ese misterioso mundo de los ceros y los unos, cómo representar datos con ellos y cómo utilizarlos para hacer operaciones matemáticas mediante los sistemas digitales, en este capítulo iremos un paso más allá y le explicaremos el que posiblemente sea el sistema digital más complejo de su ordenador: la CPU. Pero no se preocupe si piensa que va a resultar demasiado complicado; una vez que usted ya sabe qué son los transistores, puertas lógicas y números binarios, podemos olvidarnos de ellos y explicar la CPU desde un punto de vista más abstracto y sencillo. Para usted seguramente ni es importante ni es entretenido conocer el procesador central de su computadora transistor a transistor.

Partes de una CPU

A grandes trazos, la CPU es un enorme sistema digital fabricado con cientos de millones de transistores, cuyos partes más importantes se describen en este apartado.

Unidad Aritmético-Lógica

Conocida por su acrónimo en inglés, ALU, es la encargada de realizar las operaciones que se le indican: sumas, restas, divisiones, multiplicaciones, funciones trigonométricas, y cientos de operaciones matemáticas más. Imagínesela como una gran máquina a la cual se le deben introducir unos números y accionar una palanca que le indique qué hacer con ellos (sumarlos, restarlos, etc…) que, l cabo de un corto lapso de tiempo, sacará por su salida el resultado de la operación indicada.

Unidad Aritmético-Lógica

Unidad de Control

Alguien debe decirle a la ALU qué es lo que tiene que hacer y cómo debe hacerlo; esto se hace mediante un programa almacenado en la memoria del ordenador. Los programas no son más que un conjunto de instrucciones sencillas, que se van leyendo una a una y van diciendo a cada paso qué tiene que hacer su ordenador: hacer una operación matemática concreta, leer o guardar datos en la memoria, enviar datos al monitor para que usted pueda verlos, etcétera.

En capítulos anteriores usted vio cómo se podían representar muchísimas cosas con números binarios. Pues bien, las instrucciones no son más que códigos binarios asociados a cada acción. Al igual que con las letras o los números, las personas no pensamos en binario, y por eso asociamos esos códigos a instrucciones concretas, más inteligibles por los seres humanos. Un ejemplo de programa informático muy sencillo puede ser este.

1: E = 4
2: N = 5
3: R = N
4: R = R x N
5: Decrementa E
6: Si E > 1, vuelve a la instrucción 4
7: (Si no, el programa continúa por aquí)

Este programa se interpreta de la siguiente manera: hay un Contador de Programa que es el encargado de indicar qué instrucción se va a ejecutar. En un principio dice que es la instrucción 1 (la que asigna a E el valor 4). Cuando la CPU ha acabado con esta instrucción, el contador de programa se va a la siguiente instrucción y la ejecuta, y así sucesivamente. Observar que en la instrucción 6 hay una condición (E>1); si ésta se cumple, el programa hará una acción concreta, que en este caso es decirle al Contador de Programa que vuelva a empezar a ejecutar por la instrucción 4. Si la condición no se cumple, el contador de programa seguirá por la instrucción 6.

Como ejercicio, pruebe usted a intentar ejecutar manualmente este programa sencillo ¿Intuye qué hace?. Ni más ni menos que una potencia: al acabar el programa, R tendrá el valor de 5 elevado a 4 (625). Al fín y al cabo lo que hace es multiplicar N durante E veces. Pruebe a cambiar los valores iniciales de E y N, y verá como siempre da el resultado equivalente de N elevado a E.

Puede que este programa de ejemplo le parezca muy sencillo (o no, si es la primera vez que ve uno), pero funciona exactamente igual que el programa que está ejecutando ahora mismo su ordenador para que usted pueda leer este texto mediante su navegador, el programa que utiliza para escuchar música, o cualquier videojuego; todo lo que hace que su ordenador “haga algo” no son más que programas. La única diferencia es que mientras el ejemplo tenía 6 instrucciones, un programa corriente puede tener desde varios miles hasta millones de instrucciones. Una CPU cualquiera, como la que posee un ordenador doméstico, puede ejecutar varios millones de instrucciones en cada segundo.

Por una parte tenemos la ALU, que hace las operaciones matemáticas, por otro el contador de programa, que indica qué operación hay que ejecutar. El relacionante entre ambos es la Unidad de Control; si su CPU fuera una fábrica industrial, la Unidad de Control sería una especie de trabajador que, a partir de las órdenes de su jefe (es decir, las instrucciones del programa), las lee, las entiende y acciona esa gran máquina que es la ALU para hacer que cumpla las instrucciones del programa.

La UC manejando la ALU a partir del programa

Entrada y salida de datos

Al igual que usted en su trabajo necesita ojos y oídos para recibir instrucciones, y boca para darlas o colaborar con otros compañeros de trabajo, la CPU necesita también comunicarse con el exterior mediante los puertos de entrada y salida.

Por ejemplo, necesita comunicarse con la memoria del ordenador, que es donde está almacenado el programa a ejecutar, y los datos a utilizar por este programa. Si se fija en el programa anterior, se pueden leer datos de la memoria (los valores iniciales en las instrucciones 1 y 2) pero también escribir en ella (instrucción 4, donde guarda en R el resultado de NxN).

La CPU también tiene que comunicarse con usted, y por eso necesitará puertos de entrada de datos, por ejemplo, para recibir y tratar la información que usted le introduzca por el teclado, o puertos de salida para enviarle a su monitor o impresora aquello que usted deba visionar (textos, películas, música en los altavoces…).

Todo lo expuesto en este apartado está explicado de una manera un tanto simplista. Es por ello que en capítulos posteriores se describirá más en profundidad cómo funciona la entrada y salida de datos de un ordenador, y cómo éstos circulan internamente por la extensa y compleja circuitería de éste.

La frecuencia de reloj

Si usted ha comprado algún ordenador alguna vez, habrá visto anunciado el típico Pentium a Tropecientos GigaHertzios (o MegaHertzios, si lo compró hace mucho tiempo). Se supone que, a más Gigahertzios, más rápido irá el procesador; ¿pero qué son en realidad estos GigaHertzios?

Cuando un procesador hace sus operaciones normales, todos los componentes tienen que estar sincronizados. Es decir, para que la ALU haga una operación, tiene que asegurarse que tiene sus operadores correctamente introducidos, y que la operación a hacer está bien especificada. Cuando la Unidad de Control lee un programa, necesita asegurarse que la instrucción del programa que está leyendo es la que toca, y necesita un tiempo para interpretarla y enviar las órdenes a la ALU.

Para eso se utiliza la señal de reloj, que se va enviando cada tiempo fijo a todos los componentes de la CPU y les indica que pueden empezar a hacer lo que tengan que hacer, y que tienen que estar listos antes de la siguiente señal de reloj, donde tendrán que hacer la siguiente acción (buscar algo en la memoria, enviar datos, ejecutar una instrucción, etcétera…). De esta manera, por ejemplo, se evitan cosas como que por ejemplo le introduzcan los dos operadores a la ALU, y ésta empiece a hacer operaciones con ellos sin esperar a que se le especifique la operación correspondiente a la instrucción que se está ejecutando.

A más GHz, más rápido irá todo. Contando que un Herztio es equivalente a una señal cada segundo, un GigaHertzio equivale a mil millones de señales por segundo (Mega significa un millón y Giga, mil millones). Ya puede usted imaginarse la cantidad de cálculos que es capaz de hacer una CPU en un segundo. ¿Y si quisiera que mi ordenador fuera más rápido, bastaría con subirle los GigaHertzios? Idealmente sí, pero no se puede hacer tan fácilmente por dos motivos: el primero es porque los componentes necesitan un tiempo para hacer las cosas; si se envían ciclos antes de que puedan acabarlas, no las completarán, los componentes se harán un lío y el ordenador se volverá “loco”. La segunda es porque a más señal de reloj, más tendrá que trabajar el procesador y más corriente pasará, con lo que corre el peligro de salir ardiendo. Una muestra del calor que genera un procesador es el enorme ventilador que lleva pegado, para intentar disepar el máximo posible de calor. Si su ordenador tiene un procesador muy potente, quizá esté oyendo ahora el zumbido de su ventilador.

Conclusiones

En capítulos anteriores, usted aprendió a representar datos con números binarios y a manejarlos con sistemas digitales. Hoy ha conocido un inmenso sistema digital: la CPU, que coordina y ejecuta ordenadamente todas las tareas que usted asigna a su ordenador mediante programas.

Para saber un poquito más

Aputes de la asignatura de Organización de Computadores, de la Universidad de Buenos Aires.

4 Responses to “Un ordenador por dentro (IV): La Unidad Central de Proceso”

  1. Bueno… Yo habría puesto algún ejemplo de shifting y de paso explicar lo que es un banco de registros, que no es muy complicado…

    En cuanto a los MHz no estoy del todo de acuerdo, pero el gran público necesita entenderlo así. Entiendo que no puedes ponerte a hablar de RISC, CISC, de instrucciones vectoriales, etc. a la gente. Amén de la segmentación y demás…

    Alguien recuerda aquellos Pentiums a 66 que iban más lentos que un Motorola a 40 ??

  2. Me parece un muy buen artículo. Ha aclarado mis dudas sobre la CPU y demás.
    Gracias

  3. Muy bien explicado el tema, pero podrías haber afinado algo más en relación a lo de la velocidad de reloj. Podrías haber dicho que los periféricos son en general más lentos que el microprocesador, y que muchos de esos “golpes de reloj” se pierden en ciclos muertos en los que el procesador está esperando a que los periféricos terminen de hacer algo (por ejemplo, de ahí esos numeritos que llevan la RAM 5-4-4-4-8, son los ciclos de espera ante cada tipo de acción), y que se puede dar la paradoja, como ya han dicho en los comentarios, que un ordenador con un procesador de 3 GHz vaya sensiblemente más lento que otro a 1 GHz pero cuya memoria es mucho más rápida que el anterior.

  4. es un argumento importante, solo que debe de ser mas completo. pero es bueno

Deja un comentario aquí