¿Cómo funciona un CPU?

Aun cuando cada procesador tiene su propio diseño todos los procesadores comparten el mismo concepto básico, el cual vamos a estar explicando en este tutorial. Vamos a mirar como es la arquitectura de un CPU genérico y de esta manera vas a entender más como intel y amd funciona y sus diferencias entre ellos.

El CPU (unidad de proceso central) el cual es llamado microprocesador o procesador está a cargo de procesar datos. Como vaya a procesar los datos depende del programa. El programa puede ser una plantilla de excel, word o un juego, para el CPU tiene importancia, porque el mismo no entiende que es lo que el programa hace, solo sigue ordenes. (llamado comandos o instrucciones) que está dentro del programa.

Estas órdenes podrían ser sumar dos números o enviar unos datos a la placa de video por ej.

Cuando haces doble click sobre un icono para ejecutar un programa, esto es lo que va a pasar:

1-el programa que está almacenado dentro del disco rígido es transferido a la memoria RAM. Un programa es una serie de instrucciones que van al CPU.

2- El CPU usando un circuito llamado controlador de memoria, carga los datos del programa desde la memoria RAM.

3- Los datos que están dentro del CPU son procesados.

4- Lo siguiente que ocurre depende del programa. El CPU podría continuar cargando y ejecutando el programa o podría hacer algo con los datos procesados, por ej mostrar algo en la pantalla.

En el pasado el CPU controlaba la transferencia de datos entre el disco rígido y la memoria ram. Pero ya que el disco rigido es mas lento que la RAM, esto hacia mas lento el sistema, entonces el CPU podría estar ocupado hasta que el dato fuese transferido desde el rígido hasta la memoria RAM. Este proceso es llamado PIO procesador I/O o Programado I/O

Hoy en dia la transferencia de datos entre el disco rígido y la RAM es hecha sin el uso del CPU haciendo el sistema mucho más rápido. Este método llamado BUS MASTERING o DMA ( direct memory access o acceso de memoria directa) Para simplificar nuestro dibujo no puse el “puente norte” entre el chip y el disco rígido y la memoria ram en la figura 1

El procesador de AMD basado en los sockets 754 939 y 940 (athlon 64, x2 , fx, opteron y otros modelos de sempron) tienen embebido un controlador de memoria. Esto significa esto significa que el CPU accede a la RAM de manera directa sin usar el “puente norte” en la figura 1

Para entender mejor el role del chipset en una computadora lee esto http://www.hardwaresecrets.com/everything-you-need-to-know-about-chipsets/

El RELOJ o CLOCK

El reloj es una señal que es usada para sincronizar cosas dentro de la computadora. Mira la figura 2, donde mostramos una señal típica de reloj, es una señal cuadrada desde cero a uno y a un ritmo fijo. En esta figura puedes ver 3 ciclos completos (TICKS). El principio de cada ciclo es cuando el reloj va de cero a uno, está marcado con una flecha. La señal del reloj es medida en una unidad es llamada HERTZ (Hz) en el cual son los ciclos por segundo. Un reloj de 100mhz significa que en un segundo hay 100 millones de ciclos.

FIGURA 2 señal del reloj

En la computadora los tiempo son medidos en términos de ciclos de reloj, por ejemplo la RAM memoria de latencia 5 significa que va a demorar 5 ciclos completos de reloj para empezar a enviar datos. Adentro del CPU todas las instrucciones demoran cierto números de ciclo de reloj para ser ejecutados.

Más allá del CPU lo más interesante es que el CPU sabe cuántos ciclos de reloj va a llevar dada instrucción, porque tiene la tabla en la cual está listada esa información, Si hay dos instrucciones que tienen que ser ejecutadas y sabe que la primera va demorar 7 ciclos de reloj  para ser ejecutado sabe que en el octavo ciclo de reloj va a empezar con la siguiente instrucción, por su puesto este es un ejemplo de un procesador con una unidad de proceso.

En la actualidad los procesadores tienen varias unidades de proceso que funcionan en paralelo. Esto es llamado arquitectura superescalar que vamos a estar hablando más adelante.

Que tiene que ver el CLOCK con el rendimiento? Pensar que el CLOCK y el rendimiento es lo mismo es un error muy común acerca de los procesadores.

Si comparas dos procesadores idénticos y uno corriendo a un CLOCK más elevado que el otro va a ser más rápido en este caso.

Pero cuando hablamos de 2 procesadores diferentes, puede ser que no sea así el caso.

Si tienes 2 procesadores con diferentes arquitecturas, por ejemplo AMD e INTEL las cosas adentro van a ser diferentes.

Como mencionamos cada instrucción lleva cierto números de ciclos de reloj para ser ejecutados.

Digamos que procesador A lleva 7 ciclos y procesador B lleva 5 ciclos para ejecutar la misma instrucción. Si ambos están corriendo a la misma cantidad de ciclos podemos decir que el procesador B es mucho más rápido. Ya que puede ejecutar la misma instrucción es mucho menos tiempo.

En los procesadores modernos hay mucho más en juego que el rendimiento del CPU.

Por ejemplo cada CPU tiene diferentes unidades de ejecución, diferentes tamaños de cache, diferentes maneras de transferir datos dentro del CPU, diferentes maneras de procesar instrucciones dentro de las unidades de ejecución, diferentes velocidad de clock interno y externo

Con el paso del tiempo el CLOCK del procesador cada vez empezó a ser más alto, empezó a aparecer un problema.

El motherboard donde el procesador era instalado no podía funcionar usando la misma señal del reloj. Si mirás los motherboad en la parte de atrás vas a ver muchas pistas electrónicas. Esas pistas electrónicas que conectan muchos circuitos electrónicos de la computadora. El problema es que cuando el CLOCK es más alto esas pistas empezaban a funcionar como antenas, en vez de llegar la señal al otro lado de la pista , simplemente desaparecía y era transmitido como radio frecuencia.

FIGURA 3 las pistas funcionan como antenas

Reloj o Clock Externo

Los fabricantes empezaron a usar un nuevo concepto llamado reloj de multiplicación, el cual empezó con el 486dx2. Bajo este esquema empezó a ser usado hasta hoy en día, el procesador tiene un CLOCK externo el cual es usado para transferir datos desde y hacia la memoria RAM usando el “puente norte” y a la vez tiene un CLOCK mucho más alto interno.

Vamos a dar un ejemplo real, en un procesador Pentium 4 de 3.4GHZ se refiere al procesador CLOCK interno, el cual es obtenido multiplicando 17 x 200mhz del CLOCK externo.

FIGURA 4 Interno y externo Pentium 4 de 3.4ghz

La gran diferencia entre el interno y el externo en los CPU moderno es uno de los obstáculos más grandes a vencer en el rendimiento de la computadora. Continuando con el pentium 4 de 3.4ghz, el mismo tiene que reducir la velocidad por 17x cuando tiene que leer la memoria RAM!

Durante este proceso funciona como si fuese de 200 MHZ el CPU.

 Hay varias técnicas usadas para minimizar  el impacto de la diferencia del CLOCK.

Una de ellas es la de usar la memoria caché inside del CPU y otra es transferir más de un fragmento de datos por ciclo del CLOCK. Ambas marcas usan esta característica AMD e INTEL, pero mientras AMD transfiere 2 fragmentos de datos por ciclo, INTEL transfiere 4 fragmentos de datos por ciclo.

FIGURA 5 transfiriendo más de un dato por ciclo de reloj.

Por eso mismo los CPU de AMD son listados como que tienen el doble del reloj externo real.

Por ejemplo un CPU AMD con 200 mhz de reloj externo es listado como 400mhz, lo mismo pasa con los CPU de intel, con 200 mhz  de reloj externo es mostrado como que tiene 800mhz.

La técnica de transferencia de 2 datos por click de reloj es llamado DDR (dual data rate) ( doble transferencia de datos). Mientras la técnica de transferencia 4 datos por ciclo de RELOJ es llamado (Quad Data Rate) (cuádruple velocidad de transferencia).

Bloque del diagrama del CPU

En la figura 6 podemos ver el diagrama básico del bloque de un CPU, Hay muchas maneras diferencias entre las arquitecturas de  AMD e INTEL.

En la línea punteada representa el cuerpo del CPU y la memoria RAM está colocada fuera del CPU. El camino de datos entre la RAM y el CPU es usualmente un camino de 64 bit de ancho ( o 128bit  cuando está configurada en dual channel),la memoria puede correr a la velocidad del clock de la memoria o la del CLOCK del CPU externo el cual es más bajo.

El número de bits usado y la velocidad del clock pueden ser combinados en una unidad llamada TRANSFER RATE o VELOCIDAD DE TRANSFERENCIA., La fórmula es el número de bits x CLOCK dividido por 8. Para un sistema usando memorias DDR 400 en un canal simple la configuración de 64 bits la memoria , la transferencia sería de 3200 MB/s mientras que el mismo sistema usando DUAL CHANNEL, memorias en 128bits  va a tener 6400 MB/s de transferencia.

Todo el circuito interno que está punteado en la caja del CPU funciona al clock interno del CPU. Dependiendo del CPU algunas partes internas pueden correr aún más rápido que el clock del CPU, También el camino de los datos entre el CPU puede ser más ancho, por ej más bits por ciclo del reloj más de 64 o 128 bits. Por ejemplo el camino de los datos entre la memoria caché L2 y el caché L1 el cache de instrucción en un procesador moderno es usualmente 256 bit de ancho.

El número cuanto más alto es en bits transferido por ciclo del RELOJ , la transferencia más rápida va a ser realizada, ( en otras palabras la transferencia va a ser mucho más alta). En la figura 6 usamos una flecha roja entre la RAM y el cache L2 y verde entre el resto de los bloques para expresar diferentes velocidades del reloj y el camino de datos usado.

2017-05-04T22:58:26+00:00