Arquitectura del computador
Los dos modelos de organización interna, las unidades que forman el procesador, los tres buses que lo comunican y los pasos que repite sin parar para ejecutar cada instrucción.
Von Neumann frente a Harvard
Toda la discusión entre estas dos arquitecturas se reduce a una pregunta: ¿las instrucciones y los datos comparten memoria o no? La respuesta condiciona el rendimiento y también la seguridad.
| Arquitectura | Memoria | Consecuencia |
|---|---|---|
| Von Neumann | Instrucciones y datos comparten una sola memoria. | Más sencilla y flexible, pero unas y otros compiten por el mismo camino. |
| Harvard | Memoria separada para instrucciones y para datos. | Mejor rendimiento, porque se puede leer una instrucción y un dato a la vez, y mejor seguridad, porque un dato no puede pasar por instrucción. |
Von Neumann, una memoria; Harvard, dos. Todo lo demás (velocidad y seguridad) se deriva de ahí.
Para el examen
Von Neumann: una sola memoria para instrucciones y datos
Harvard: memorias separadas: más rendimiento y más seguridad
Cuello de botella: el de Von Neumann, por compartir el bus
Las unidades internas de la CPU
El procesador no es una pieza indivisible: dentro conviven varias unidades con trabajos distintos, y las preguntas de examen suelen consistir en atribuir una función a la unidad equivocada.
| Unidad | De qué se ocupa |
|---|---|
| Unidad de control (UC) | Trae las instrucciones desde la memoria, las decodifica y reparte la ejecución entre los elementos de la CPU que correspondan. |
| Unidad aritmético-lógica (ALU) | Realiza las operaciones aritméticas y lógicas y la manipulación de bits. |
| Decodificador | Es por donde pasan las instrucciones antes de llegar al secuenciador: traduce el código de la instrucción en las órdenes concretas que hay que dar. |
| Secuenciador | Es el corazón de la CPU: el que ejecuta materialmente las instrucciones de código máquina. |
La unidad de control dirige y la ALU calcula. El orden interno es decodificador y después secuenciador.
Para el examen
Unidad de Control: trae la instrucción y reparte el trabajo
ALU: hace los cálculos aritméticos y lógicos
Decodificador: traduce la instrucción
Secuenciador: genera las órdenes que la ejecutan
El reloj y el overclocking
El ordenador trabaja de forma síncrona: todo ocurre al ritmo de una señal que marca los instantes en que las cosas pueden cambiar. Sin ese compás común, las distintas piezas no podrían coordinarse entre sí.
No hay un solo reloj, sino varios. El reloj externo gobierna la relación entre la CPU y el resto de componentes de la placa base. Dentro de la CPU hay otro reloj que funciona a partir del externo aplicándole un factor multiplicador, y por eso el procesador puede ir a mucha más frecuencia que la placa.
El overclocking consiste precisamente en elevar ese factor multiplicador, de modo que el procesador trabaje por encima de la frecuencia que tiene asignada. Es una operación fuera de las especificaciones del fabricante y su coste está en el calor y el consumo.
El reloj interno se obtiene multiplicando el externo. El overclocking sube ese multiplicador, no la señal de la placa.
Para el examen
Fórmula del reloj interno: reloj externo × multiplicador
Overclocking: subir el multiplicador
Su precio: más calor y más consumo
Los tres buses
Un bus es un camino compartido por el que circula información entre los componentes. Se distinguen tres según lo que transportan, y las tres respuestas se confunden con facilidad porque las tres hablan de memoria.
| Bus | Qué transporta |
|---|---|
| Bus de control | Las señales que indican qué operación se va a realizar, es decir, si se va a leer o se va a escribir. |
| Bus de direcciones | La dirección de memoria RAM a la que se quiere acceder. |
| Bus de datos | El contenido: por él salen de memoria las instrucciones que se leen, y también los datos que se leen y se escriben. |
El de direcciones dice dónde, el de control dice qué operación, y el de datos lleva el contenido en sí.
Para el examen
Bus de direcciones: dónde
Bus de control: qué hacer: leer o escribir
Bus de datos: el contenido, instrucciones incluidas
Los registros de la CPU
Un registro es una pequeña memoria dentro del propio procesador, la más rápida de todas, donde se guardan los valores con los que se está trabajando en ese instante. Algunos son de uso general y otros tienen un cometido fijo dentro del funcionamiento de la máquina.
| Registro | Qué guarda |
|---|---|
| Flags | El estado actual del procesador: acarreo, paridad, cero y otros indicadores del resultado de la última operación. |
| MAR (Memory Address Register) | La dirección de memoria a la que se va a acceder. |
| MDR (Memory Data Register) | El dato que se ha leído de memoria o que se va a escribir en ella. |
| AC (Acumulador) | El operando o el resultado con el que trabaja la ALU. |
| PC (Program Counter) | La dirección de la siguiente instrucción que se va a ejecutar. En la terminología de Intel se llama Instruction Pointer. |
| CIR o IR (Current Instruction Register) | La instrucción que se está ejecutando en este momento. |
El PC apunta a la siguiente instrucción; el IR contiene la actual. Confundirlos es el fallo más repetido de este apartado.
Para el examen
PC (Instruction Pointer en Intel): dirección de la SIGUIENTE instrucción
IR: la instrucción actual
MAR y MDR: MAR guarda la dirección; MDR, el dato
Acumulador: el operando y el resultado
Registro de estado: los indicadores o flags
El ciclo de instrucción
El procesador no hace más que repetir el mismo ciclo millones de veces por segundo. Se le llama ciclo de ejecución o, por sus nombres en inglés, fetch, decode y execute, con un cuarto paso de almacenamiento que no siempre hace falta.
Fetch: búsqueda
Se le pide a la memoria RAM la instrucción que toca. Al terminar, la instrucción está ya en el registro IR.
Decode: decodificación
La instrucción pasa al decodificador, que averigua qué hay que hacer.
Execute: ejecución
La instrucción pasa al secuenciador para ejecutarse. Según cuál sea, puede necesitar la ALU o no.
(Almacenamiento, si procede)
Solo si la operación produce un resultado que hay que conservar; si no, el ciclo termina en el paso anterior.
El paso de almacenamiento va entre paréntesis porque es condicional: no todas las instrucciones dejan un resultado que guardar.
Para el examen
Las fases: fetch, decode, execute y almacenamiento condicional
Dónde queda la instrucción tras el fetch: en el registro IR
Cómo se mide el rendimiento: MIPS y MFLOPS
Comparar procesadores por su frecuencia de reloj engaña, porque dos máquinas a la misma frecuencia pueden hacer trabajos muy distintos en cada ciclo. Por eso el rendimiento se expresa en trabajo realizado por segundo, y hay dos unidades según qué trabajo se cuente.
| Unidad | Qué mide |
|---|---|
| MIPS | Millones de instrucciones por segundo. Da idea de la potencia del procesador en trabajo general. |
| MFLOPS | Millones de operaciones en coma flotante por segundo. Mide el rendimiento del procesador en cálculo con decimales. |
La F de MFLOPS es de floating point: cuando el enunciado hable de coma flotante, la respuesta no son MIPS.
Para el examen
MIPS: millones de instrucciones por segundo
MFLOPS: millones de operaciones en coma flotante por segundo