viernes, 5 de agosto de 2011

CPU - Arquitectura y Funcionamiento

Desde el punto de vista lógico, singular y funcional, el micro está compuesto básicamente por: varios registros, una unidad de control, una unidad aritmético-lógica, y una unidad de punto flotante. El micro ejecuta instrucciones almacenadas como números binarios organizados secuencialmente en la memoria principal. La ejecución de las instrucciones se puede realizar en varias fases:
  • Pre-Fetch, pre lectura de las instrucciones desde la memoria principal. Esta tarea no es para nada menor, pues es la unidad encargada de traer desde la memoria principal hacia el micro las próximas instrucciones que podrían ejecutarse.
  • Fetch, envío de la instrucción al decodificador. Se envían las instrucciones desde la cache L1 al decodificador.
  • Decodificación de la instrucción, es decir, determinar qué instrucción es y por tanto qué se debe hacer. Esto se logra ya que cada micro mantiene una tabla con todas las instrucciones que soporta, con qué tipo de operandos trabaja, de dónde obtener y a dónde escribir dichos operandos, qué unidades de ejecución necesita y cuántos ciclos consume esa operación.
  • Lectura de operandos, si los hay.
  • Ejecución, lanzamiento de las máquinas de estado que llevan a cabo el procesamiento.
  • Escritura de los resultados en la memoria principal o en los registros.
Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del procesador, y concretamente de su grado de segmentación. La duración de estos ciclos viene determinada por la frecuencia de reloj, y nunca podrá ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal.

Los registros son básicamente un tipo de memoria pequeña con fines especiales que el micro tiene disponible para algunos usos particulares. Hay varios grupos de registros en cada procesador. Un grupo de registros esta diseñado para control del programa (por ejemplo el Program Counter – mantiene la dirección de memoria de la próxima instrucción ejecutar, en realidad el desplazamiento), otros se utilizan para guardar datos temporalmente y que estén accesibles rápidamente para la próxima instrucción, otro grupo solo se utiliza por ejemplo para operaciones aritmético-lógicas y hay otros que no son diseñados para ser controlados por el procesador pero que el micro los utiliza en algunas operaciones.

El Coprocesador Matemático o correctamente la FPU (Float Point Unit), es la parte del micro especializada en esa clase de cálculos matemáticos, antiguamente estaba en el exterior del micro en otro chip. Esta parte esta considerada como una parte "lógica" junto con los registros, la unidad de control, memoria y bus de datos.

La memoria Cache es una memoria ultrarrápida que emplea el micro para tener a mano ciertos datos que predeciblemente serán utilizados en las siguientes operaciones sin tener que acudir a la memoria principal reduciendo el tiempo de espera. Por ejemplo: en una biblioteca, en lugar de estar buscando cierto libro a través de un banco de ficheros de papel se utiliza la computadora para saber cantidad de ejemplares y su disponibilidad. Todos los micros compatibles con PC poseen la llamada cache interna de primer nivel o L1 (pueden haber dos tipos diferentes una para datos y otra para instrucciones); es decir, la que está más cerca del micro, tanto que está encapsulada junto a él. A partir de los ’90 los micros (Pentium III Coppermine, Athlon Thunderbird, etc.) incluyen también en su interior otro nivel de caché, más grande aunque algo menos rápida, la caché de segundo nivel o L2. Hoy día se juega mucho con las diferentes disposiciones de la chache L2 y se incluye hasta un tercer nivel (L3) menos rápida que la L2 pero de mayor capacidad. Numerosos algoritmos computacionales intentan descifrar qué .datos traer a estas memorias caché de tal manera que el micro nunca deba esperar un dato desde la lenta memoria principal – cuando se habla de datos en realidad se puede tratar de una instrucción a ejecutar o un dato a utilizar como operando.

Las memorias cache tienen una alta performance ya que los chips son del tipo de memoria estática, pero tienen la contra de consumir más energía, son más costosas y son físicamente más grandes que las dinámicas utilizadas como memoria principal. Las memorias cache pueden trabajar a la misma frecuencia que el procesador, cosa que las dinámicas no son capaces de hacer, mayormente por el tiempo de refresco que necesitan para mantener su información.

El encapsulado es lo que rodea a la oblea de silicio en si, para darle consistencia, impedir su deterioro (por ejemplo, por oxidación por el aire) y permitir el enlace con los conectores externos que lo acoplaran al zócalo de la placa base.

Mediante los puertos el procesador se comunica con el mundo externo. Un puerto es parecido a una línea de teléfono. Cualquier parte de la circuitería de la computadora con la cual el procesador necesita comunicarse, tiene asignado un número de puerto que el procesador utiliza como un número de teléfono para llamar al circuito o a partes especiales.

Si bien la memoria principal no es parte de la arquitectura interna del microprocesador, está íntimamente relacionada con él, tanto en su funcionamiento como en su performance. La memoria es el lugar donde el procesador encuentra sus instrucciones de programa y sus datos. Tanto los datos como las instrucciones están almacenados en memoria, y el procesador los toma de ahí. La memoria es una parte interna de la computadora y su función esencial es proporcionar un espacio de trabajo para el procesador.