Mostrando entradas con la etiqueta Microprocesadores. Mostrar todas las entradas
Mostrando entradas con la etiqueta Microprocesadores. Mostrar todas las entradas

miércoles, 21 de mayo de 2014

Giga Transferencias


Giga Transferencias o GT es un termino informático utilizado para referenciar a las transferencias efectivas, es decir las transferencias que realmente "llevan" datos. Nótese, por ejemplo, que AMD utiliza el termino de GT en sus productos mientras que INTEL se refiere en terminos de MHZ.

Veamos un ejemplo
 
Si un dispositivo tiene una frecuencia de reloj de 800 Mhz y en cada ciclo de reloj es capaz de enviar 4 señales de datos. ¿Cuál sería la tasa de transferencia expresada en GT/s?

Un hercio representa un ciclo por segundo, mientras que 1 MHz es la medida que representa a 1.000.000 de hercios por segundo. Entonces, que un dispositivo tenga una frecuencia de reloj de 800 Mhz equivale a decir que el dispositivo funciona a 800.000.000 de ciclos por segundos.

Luego dice que en cada ciclo es capaz de enviar 4 señales de datos, observe que no se habla de MB/s porque en realidad no se especifica de cuánto es el dato ni del ancho del canal.. el dato pueden ser 4Bytes, 8bits... no importa.. se habla de las transferencias efectivas, dependerá del ancho del canal la cantidad de Bytes que se envíen en cada transferencia.

Entonces, si el canal funciona a  800 millones de ciclos por segundo (MHz) , pero en cada ciclo se envían 4 datos podemos decir que la transferencia efectiva es de 800 x 4 = 3200 millones de datos por segundo, pero como se pide en Giga serían 3,2GT/s


viernes, 19 de agosto de 2011

¿A qué velocidad se comunica la unidad de proceso con la L2?

Podemos decir que la caché L2 es el "espacio" donde el procesador almacena los datos a procesar. La caché L2 "se carga" desde la memoria principal del sistema (RAM) gracias a la unidad de proceso llamada Pre-Fetch.

El procesador mantiene una comunicación permanente con la L2 a través de la unidad de procesamiento conocida como Fetch Unit. La implementación de las distintas memorias caché dentro del micro fue para evitar la comunicación directa con la memoria RAM, la cual se comunica a  una velocidad mucho menor con el micro, establecida por el FSB.

Pero, como las unidades de procesamiento y la caché L2 se encuentran "dentro del micro" utilizan el bus interno de este, es decir que se comunican a la velocidad nominal del micro. Si la velocidad nominal de un micro es de 2.3 GHZ, la velocidad de comunicación entre las unidades de proceso y las caché dentro de este se realizan a esa velocidad.

jueves, 18 de agosto de 2011

Smart Caché


Smart Caché es una tecnología desarrollada por Intel, la que permite un uso más eficiente de la memoria caché L2 compartida. Con la incorporación de esta tecnología la caché L2 compartida se asigna dinámicamente a cada núcleo del procesador según la carga de trabajo. Esta implementación permite que cada núcleo acceda a los datos de la caché con más rapidez ya que se reduce la latencia de datos usados con frecuencia.

miércoles, 17 de agosto de 2011

Procesador de dos núcleos que comparten la caché L2

Dependiendo del fabricante o del modelo de microprocesador nos podemos encontrar (hablando siempre de procesadores dual core o multi core) con que cada núcleo posee su caché L2 o bien que los núcleos comparten una misma caché L2.

Ventajas de compartir la L2
  • Una de las ventajas es que la L2 no guarda información duplicada, caso que se podría dar si la L2 no es compartida. Es decir que un dato que pueda ser útilizado por ambos núcleos no se repite en la caché compartida, pero si no lo fuera, ese dato debería guardarse en la cache de cada núcleo.
  • Otra ventaja es que presenta la caché L2 compartida es que se  puede implementar la tecnología Smart Caché, donde el espacio asignado a cada núcleo es dinámico según la carga de trabajo que éste necesite. Esta tecnología la presentan por ejemplo los Core i7 de Intel. 

lunes, 15 de agosto de 2011

CPU - Multi Core

Los sistemas multi núcleo son una extensión al sistema doble núcleo (Dual Core), excepto que este podría consistir en más de 2 procesadores. La tendencia actual indica que el número de núcleos dentro de un mismo empaquetado irá en aumento, hoy día hay procesadores con 3 y 4 núcleos para computadoras de escritorio y portátiles.

El número de procesadores óptimo dentro de un empaquetado no se ha determinado aún, pero probablemente irá cambiando a medida que el software se adapte a la utilización efectiva de muchos procesadores, simultáneamente. Sin embargo, un programa que sea capaz de administrar un único procesador (hoy solo un par) será capaz de tomar ventaja de procesadores que contengan muchos núcleos. Por ejemplo, una aplicación corriendo en un sistema de 4 procesadores cada uno en su socket conteniendo procesadores de cuatro núcleos, tiene 16 núcleos disponibles para planificar la ejecución de 16 hilos simultáneamente.



domingo, 14 de agosto de 2011

CPU - Dual Core

Este término se refiere a los chips integrados que contienen dos procesadores físicos idénticos (núcleos – cores) es un mismo empaquetado de circuito integrado. Cada uno de estos núcleos tiene sus propios registros, unidades de ejecución etc., y pueden o no compartir algunos niveles de cache como se ilustra a continuación: 


Los núcleos dentro del mismo empaquetado pueden tener comunicaciones entre ellos sin necesidad de utilizar el “lento” bus del sistema. Ambos procesadores deben tener de todas maneras una comunicación con este bus.

sábado, 13 de agosto de 2011

CPU - Más de un núcleo

Un sistema tradicional de doble procesador contiene dos procesadores físicamente separados en una misma mother, es decir que cada uno reside en su propio socket. Un sistema de procesador dual puede considerarse como un subconjunto de un gran sistema de multiprocesador simétrico (SMP). Un sistema operativo multiprocesador puede administrar dos procesos separados o dos hilos1 dentro de un mismo proceso para que se ejecuten simultáneamente en esos procesadores separados.

Hyper Threading

HyperThreading Technology (HT Technology) es una marca registrada de la empresa Intel para nombrar su implementación de la tecnología Multithreading Simultáneo también conocido como SMT. Permite a los programas preparados para ejecutar múltiples hilos (multi-threaded) procesarlos en paralelo dentro de un único procesador, incrementando el uso de las unidades de ejecución del procesador. Esta tecnología consiste en simular dos procesadores lógicos dentro de un único procesador físico.

El resultado es una mejoría en el rendimiento del procesador, puesto que al simular dos procesadores se pueden aprovechar mejor las unidades de cálculo manteniéndolas ocupadas durante un porcentaje mayor de tiempo. Esto conlleva una mejora en la velocid ad de las aplicaciones que según Intel es aproximadamente de un 30%.

Esta tecnología es invisible para el sistema operativo y los programas. Todo lo que se requiere para aprovechar Hyper-Threading es multiprocesamiento simétrico (SMP) con apoyo del sistema operativo. Al simular procesadores lógicos diferentes aparecen en el sistema como dos procesadores separados. Cada proceso mantiene su estado separado del otro, pero las cache, registros y unidades de ejecución se comparten. El microprocesador Pentium 4 fue el primero en incorporar en su arquitectura esta tecnología.

 Es posible tener un sistema de doble procesador donde cada uno incorpore HT, con lo cual se podrían ejecutar 4 procesos o hilos simultáneamente. Esta capacidad hoy día es moneda corriente en los procesadores Intel.

viernes, 12 de agosto de 2011

CPU - Direct Media Interface

Respecto al bus DMI (Direct Media Interface) podemos decir que se utiliza desde el 2004 como medio de comunicación entre los chipset NB y SB, es una conexión similar al PCIe (punto a puto y de 4 canales). El diagrama de bloques de más abajo ilustra la ubicación de este bus.


AMD ha ido más allá con esta tecnología y la ha utilizado para la comunicación entre procesadores desde la versión de su Opteron 2xx para hacer uso del multiprocesamiento con dos procesadores.


En la siguiente imagen se puede observar un AMD Opteron 8xx, con 8 procesadores. El enfoque del multiprocesamiento de AMD es bastante interesante, aquí cada procesador tiene su propio controlador de memoria. Por ejemplo en un Quad-Opteron con 4GB de memoria principal, cada micro tiene una memoria de ¡GB para él solo. En un sistema Xeon, los 4GB se comparten entre todos los micros.

Pero la cantidad de micros a colocar dependerá del número de sockets que haya en la mother. Las conexiones entre los procesadores pueden ser variadas y su número también, pues pueden existir 8 procesadores si se quiere.


jueves, 11 de agosto de 2011

CPU - Buses del procesador (segunda parte)

Intel por su parte ha desarrollado para su nuevo Core i7 la tecnología QPI (QuickPath Interconnect) que es una conexión punto a punto que viene a competir con el HyperTransport de AMD.

Tal como el HyperTransport, esta arquitectura asume que el procesador tiene un controlador de memoria integrado, obligando así a los multiprocesadores a usar una arquitectura NUMA (Non-Uniform Memory Architecture) – es un diseño de memoria utilizado en multiprocesadores donde la memoria se accede en posiciones relativas de otro procesador o memoria compartida entre procesadores.

Bajo NUMA, un procesador puede acceder a su propia memoria local de forma más rápida que a la memoria no local (memoria local de otro procesador o memoria compartida entre procesadores). Cada QPI comprime 2 conexiones (una envía y la otra recibe) punto a punto de 20-bit, una para cada dirección, para un total de 42 señales. Cada señal es un par diferencial, formando así un número de 84.

El QuickPath reporta velocidades de 4,8 a 6,4 GT/s (Giga Transferencias por segundo) por segundo por dirección. El ancho de banda va de 12,0 a 16,0 GB/s por dirección, o 24,0 a 32,0 GB/s por conexión. En la siguiente imagen puede verse la ubicación de los buses FSB y QPI y la ubicación del controlador de memoria.

La imagen siguiente muestra la arquitectura Intel con FSB


La imagen siguiente muestra la arquitectura intel con QuickPath Interconnect



miércoles, 10 de agosto de 2011

CPU - Buses del procesador (primera parte)

Todos los procesadores poseen un bus principal o de sistema por el cual se envían y reciben todos los datos, instrucciones y direcciones desde los integrados del chipset o desde el resto de los dispositivos. Como puente de conexión entre el procesador y el resto del sistema, este bus define mucho del rendimiento del sistema, su velocidad se mide en bytes por segundo.

Este bus puede implementarse de distintas maneras, con el uso de buses seriales o paralelos y con distintos tipos de señales eléctricas. La forma más antigua es el bus paralelo en el cual se definen líneas especializadas en datos, direcciones y para control. En la arquitectura tradicional de Intel (usada hasta modelos recientes), ese bus se llama el FSB (Front Side Bus) y es de tipo paralelo con 64 líneas de datos, 32 de direcciones además de múltiples líneas de control que permiten la transmisión de datos entre el procesador y el resto del sistema. Este esquema se ha utilizado desde el primer procesador de la historia, con mejoras en la señalización que le permite funcionar con relojes de 333 Mhz haciendo 4 transferencias por ciclo (1333 MHz como frecuencia nominal).

En algunos procesadores de AMD y en el reciente Intel Core i7 (Nehalem) se han usado distintos tipos de buses pero más bien seriales como bus principal. Entre estos se encuentra el bus HyperTransport que maneja los datos en forma de paquetes usando una cantidad menor de líneas de comunicación, permitiendo frecuencias de funcionamiento más altas, para los micros de AMD. Estas tecnologías seriales surgen por la necesidad de resolver el cuello de botella que genera el sistema FSB para los micros modernos, pues éstos deben esperar uno o más ciclos de reloj hasta que los datos se traigan de la memoria, el FSB siempre fue criticado por AMD. HyperTransport en su versión más reciente 3.1 logra frecuencias de 3,2GHz, con un canal máximo de 32 bits logra tasas de transferencias en cada dirección de 25,6 GB/s.

Los microprocesadores de última generación de Intel y muchos de AMD poseen además un controlador de memoria DDR en el interior del encapsulado lo que hace necesario la implementación de buses de memoria del procesador hacia los módulos. Ese bus esta de acuerdo a los estándares DDR de JEDEC y consisten en líneas de bus paralelo, para datos, direcciones y control. Dependiendo de la cantidad de canales pueden existir de 1 a 3 buses de memoria.


La desventaja de estos modelos es que el rendimiento de la placa de video si se trata de una placa on-board dependerá en gran medida del controlador de video de la mother para acceder a la memoria principal, pues en este modelo debe pasar por el micro y competir con sus transferencias.

Además, puede observarse el diseño utilizado ya por AMD desde sus micros AMD64 donde algunos modelos no utilizan el par de chipset NB y SB. AMD implementa desde el AMD64 el HyperTransport como medio de comunicación entre el chipset NB, que simplemente actúa como un puente entre la placa de video y el micro y el puente sur.

martes, 9 de agosto de 2011

CPU - Reloj Externo

Debido a que la mother estaba limitada en las frecuencias de reloj a utilizar, los fabricantes comenzaron a utilizar los denominados “multiplicadores” de reloj, que comenzaron con el procesador 486DX2.

Bajo este esquema, elcual se utiliza hoy día para todos los micros, el micro tiene un reloj externo, que se utiliza cuando se transfieren datos hacia y desde la memoria principal (usando el chip puente norte), y un reloj interno más alto. Para ver un ejemplo real, los 3,4 GHz de un Pentium 4 se refieren al reloj interno del micro, el cual se obtiene por multiplicar por 17 sus 200 MHz de reloj externo. La siguiente imagen ilustra esta relación:


La gran diferencia entre el reloj interno y el externo en los micros modernos es un gran obstáculo de superar a medida que esta diferencia aumenta. Siguiendo con el ejemplo, este Pentium 4 debe reducir su velocidad 17 veces cuando lee dados desde la memoria principal.

Durante este proceso, él trabaja como si fuese un micro de 200 MHz. Se utilizan diferentes técnicas para minimizar el impacto de esta diferencia de reloj. Una de ellas es el uso de memorias cache dentro del micro. Otra es transferir más de un grupo de datos por ciclo de reloj. Ambos tipos de procesadores, AMD e Intel usan estas características, pero mientras los micros de AMD transfieren dos datos por ciclo, los micros de Intel transfieren cuatro datos por ciclo.


Debido a esto, los micros de AMD se listan como si tuvieran el doble de su reloj externo real. Por ejemplo, un micro AMD de 200 MHz de reloj externo se mostrará como de 400 MHz. Lo mismo sucede con los micros de Intel, uno con 200 MHz de reloj real, se dirá que tiene 800 MHz de reloj externo. Los 200 MHz es la frecuencia del reloj real, pero los 800 MHz para Intel y los 400 MHz para AMD se considera como la frecuencia nominal.

La técnica de transferir dos datos por ciclo se denomina DDR (Double Data Rate), mientras que la técnica de transferir cuatro datos por ciclo se llama QDR (Quad Data Rate).

lunes, 8 de agosto de 2011

CPU - Ciclos de Reloj

El microprocesador se conecta a un circuito, normalmente basado en un cristal de cuarzo, capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en un segundo. Este reloj, en la actualidad, genera miles de MHz. El reloj es la señal utilizada para sincronizar las cosas dentro de una computadora. Todos los tiempos se miden en términos de ciclos. Por ejemplo, una memoria con una latencia de 5, significa que ésta tardará cinco ciclos completos para comenzar a entregar los datos.

Dentro de un micro. Todas las instrucciones demoran un cierto número de ciclos para ejecutarse. Por ejemplo, dada una instrucción puede demorarse siete ciclos para ejecutarse. Sin importar el micro, lo interesante es que el procesador sabe cuántos ciclos tomará cada instrucción (ROM con microcódigo). Así, si éste tiene dos instrucciones a ejecutar y sabe que la primera demorará siete ciclos, éste automáticamente comenzará la ejecución de la próxima instrucción en el octavo ciclo.

Obviamente, esta es una explicación genérica, para un micro con solo una unidad de ejecución, pero hoy día los micros son superescalares. ¿Qué tiene que ver el reloj con la performance? Pensar que el reloj y la performance son la misma cosa es el error conceptual más común sobre procesadores. Si se comparan dos procesadores idénticos, pero uno corriendo a una frecuencia de reloj mayor. En este caso, el de la frecuencia más alta, tendrá u tiempo de ciclo más corto, las instrucciones se ejecutarás en menor tiempo (misma cantidad de ciclos, pero esto llevan menos tiempo), por lo tanto la performance será más alta.

Pero qué hay si los procesadores a comparar son diferentes, no necesariamente el de mayor frecuencia tendrá una performance mejor. Si se toman dos procesadores con diferentes arquitecturas – por ejemplo, dos fabricantes distintos, como Intel y AMD – las cosas dentro del micro son completamente diferentes. Como se mencionó, cada instrucción toma un cierto número de ciclos de reloj para ejecutarse. Se puede decir que el procesador “A” se toma siete ciclos reloj para ejecutar una instrucción dada, y que el procesador “B” toma cinco ciclos en ejecutar la misma instrucción.

Si ambos corren a la misma frecuencia de reloj, el procesador “B” será más rápido, debido a que éste puede procesar la instrucción en menos tiempo. Para los micros modernos hay más cosas en juego para mejorar la performance, como procesadores con diferentes unidades de ejecución, diferentes tamaños de cache, diferentes formas de transferir datos dentro del micro, diferentes maneras de procesar las instrucciones dentro de las unidades de ejecución, diferentes frecuencias de reloj para el mundo exterior, etc… A medida que la frecuencia del reloj se tornan más altas, surge un problema.

La mother donde se aloja el micro no podría trabajar utilizando la misma frecuencia de trabajo que el micro. Si se mira una mother, se podrán observar varias pistas o caminos. Esas pistas son cables que conectan varios circuitos de la computadora. El problema es que con frecuencias muy altas, esos cables comienzan a comportarse como “antenas”, así las señales, en lugar de llegar al otro extremo del cable podrían simplemente desvanecerse, ya que se transmitirían como señales de radio.

domingo, 7 de agosto de 2011

CPU - Computación Superescalar Pipeline

En micros modernos pueden encontrase más de una unidad de ejecución trabajando en paralelo. Esto incrementa la performance del micro. Por ejemplo, un procesador con 6 unidades de ejecución podría ejecutar seis instrucciones al mismo tiempo, es decir, en paralelo. Esto, en teoría, daría una performance similar a seis procesadores con una unidad de ejecución. Este tipo de arquitectura se denomina arquitectura superescalar.

Normalmente los procesadores no cuentan con varias unidades de ejecución idénticas; éstos tienen unidades especializadas en un tipo de instrucción. El mejor ejemplo es la unidad de punto flotante FU, la cual se encarga de ejecutar instrucciones matemáticas complejas. Normalmente entre la unidad de decode y de execution hay una unidad denominada Dispatch o Schedule (Planificador) encargada de enviar la instrucción a la unida de ejecución correcta, es decir, si la instrucción es del tipo matemática la enviará a la FPU y sino a una unidad de ejecución “genérica”. Normalmente, con “genérica” se entiende a las unidades denominadas ALU, Arithmetic and Logic Unit.

Otra característica interesante que los procesadores tienen desde hace mucho tiempo es la denominada pipeline, que es la capacidad de tener varias instrucciones diferentes en diferentes etapas del micro al mismo tiempo.

Luego de que la unidad de fetch envía la instrucción al decode, quedará libre, ¿cierto? Entonces, ¿por qué en lugar de no hacer nada, poner la unidad de fetch a cargar la próxima instrucción a ejecutar? Cuando la primer instrucción va a la unidad de ejecución, el fetch puede enviar la segunda al decode y cargar la tercera, y así sucesivamente.

En un micro con un pipeline de 11 etapas (etapa es otro nombre para cada unidad del micro), éste tendrá probablemente 11 instrucciones dentro al mismo tiempo casoi todo el tiempo. De hecho, siendo que todos los micros modernos tienen una arquitectura superescalar, el número de instrucciones simultáneamente dentro del micro será aún más alto. Por ejemplo una instrucción puede ir a la ALU y la próxima a la FPU por lo tanto el decode no debe esperar a que la unidad de ejecución se libere, pues se trata de dos unidades de ejecución diferentes.

A modo de ejemplo se ilustra cómo sería la ejecución de dos instrucciones sin pipeline (arriba) y con pipeline (abajo) de 4 etapas.



Además, para un micro con un pipeline de 11 etapas, una instrucción será ejecutada por completo una vez halla pasado por sus 11 unidades. A mayor número de etapas, mayor tiempo demorará una instrucción a ser ejecutada. Por otro lado, se debe tener presente que debido a este concepto varias instrucciones pueden correr dentro del micro al mismo tiempo. La primera instrucción raída por el fetch puede demorar 1 etapas en salir, per una vez que ésta sale, la segunda instrucción saldrá inmediatamente después (y no 11 etapas más tarde).

sábado, 6 de agosto de 2011

CPU - Procesamiento de Instrucciones

La unidad de Pre-Fetch se encarga de traer las instrucciones de la memoria. Primero, la unidad Fetch observa si la instrucción solicitada por el micro está en la L1, si no, ésta busca la instrucción en la cache L2. Si la instrucción tampoco está allí, entonces la unidad de Pre-Fetch ha fallado en la predicción de la próxima instrucción a ejecutar y esto se penaliza con un lento acceso a la memoria principal.

Cuando se enciende la computadora, las cache están vacías, por supuesto, pero a medida que el sistema comienza a cargar el sistema operativo, el micro inicia el procesamiento de las primeras instrucciones traídas desde el disco rígido, y el controlador de cache empieza a cargar las cache, y comienza el show. Luego de que la unidad de fetch graba las instrucciones requeridas por el micro a ser procesadas, las envía a la unida de decodificación (decode). La unida de decode observa qué tipo de instrucción es. Y esto lo hace consultando una memoria ROM que existe dentro del micro, denominada microcódigo.

El microcódigo le “enseña” al micro qué hacer. Es como una guía paso a paso para cada instrucción. Si la instrucción fuese por ejemplo ADD A+B su microcódigo le dirá a la unida de decode que éste necesita dos parámetros A y B. La unidad de decodificación entonces solicita al fetch las próximas dos posiciones de memoria, las cuales pertenecen a los valores de A y B. Luego el decode “transfiere” la instrucción y los datos a la unidad de ejecución.

Finalmente la unidad de ejecución llevará a cabo la instrucción y una vez terminado el procesamiento, los resultados se enviarán a la cache de datos (L1), y probablemente de allí a la memoria principal u otro lugar, como la tarjeta de video. Pero esto dependerá de la siguiente instrucción ha ser procesada, por ejemplo podría ser “mostrar el resultado en pantalla”.

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.

jueves, 4 de agosto de 2011

CPU - Diagrama de Bloques

En la siguiente ilustración se puede observar un diagrama de bloques básico de un micro para entender los componentes principales. La línea a rayas representa el cuerpo del micro, se puede observar cómo la memoria principal está fuera del micro.

El bus de datos entre la memoria y el micro es usualmente de 64 bits de ancho (o 128 bits cuando se utiliza doble canal), corriendo a la velocidad de reloj de la memoria o el reloj externo del micro, lo cual es más lento que la frecuencia utilizada dentro del mismo procesador.

El número de bits utilizados y la frecuencia del reloj se combinan para obtener la tasa de transferencia medida en MB/s. Para calcular dicha tasa de transferencia, la fórmula es el número de bits x la frecuencia de reloj / 8. Por ejemplo, usando las viejas memorias DDR 400 en un simple canal (64 bits) la memoria transferirá a 3.200 MB/s, mientras que el mismo sistema usando doble canal (128 bits) tendrá una tasa de 6.400 MB/s, esto es totalmente independiente de la capacidad de la memoria.

Todos los circuitos dentro de la línea a rayas corren a la velocidad del reloj interno del micro. Dependiendo del micro, algunas partes internas pueden aún ir más rápido. Además, los buses dentro del micro pueden ser más anchos, esto es, transferir más bits por ciclo de reloj que 64 o 128 bits. Por ejemplo, el ancho del canal entre las memorias L1 y L2 en un Pentium 4 es de 256 bits. A mayor número de bits por ciclo de reloj, se obtendrán transferencias más rápidas. En el gráfico la flecha que sale de la memoria principal es de un color diferente al resto de las flechas para expresar las diferentes tasas de transferencias usadas.

miércoles, 3 de agosto de 2011

Microprocesadores

El microprocesador es el microchip más importante en una computadora y forma parte de los elementos básicos necesarios para que ésta inicie, es considerado el cerebro de la computadora. Está constituido por millones de transistores integrados (circuito integrado). Puede definirse, como un chip (tamaño micro), un tipo de componente electrónico en cuyo interior existen millones de transistores cuyas interacciones permiten realizar las labores o funciones que tenga encomendado el chip.

Un microprocesador es un sistema abierto con el que puede construirse un computador con las características que se desee acoplándole los módulos necesarios. A pesar de que cada microprocesador tenga su propio diseño interno, todos los microprocesadores comparten un mismo concepto básico. En principio se verá por dentro una arquitectura genérica de procesador, de esta manera se podrá entender más sobre los productos de Intel y AMD y las diferencias entre éstos.

La CPU (Central Processing Unit) – conocido como microprocesador o procesador – es el encargado del procesamiento de los datos mediante operaciones básicas de muy bajo nivel (ceros y unos) como sumar, restar, dividir o multiplicar. Cómo éste procesará los datos dependerá del programa. El programa puede ser una planilla de cálculo, un procesador de textos o un juego, para la CPU no hay diferencia alguna, él no entiende qué está haciendo realmente el programa. Éste simplemente sigue las ordenes (denominadas comandos o instrucciones) contenidas dentro del programa. Esas órdenes pueden ser sumar dos números o enviar una porción de datos a la tarjeta de video, por ejemplo.

Cuando se hace un doble click en un icono para ejecutar un programa, esto es lo que sucede:

1. El programa, el cual está almacenado en el disco rígido, se transfiere a la memoria principal. Un programa es una serie de instrucciones para el microprocesador.

2. La CPU, usando un circuito denominado controlador de memoria, obtiene los datos del programa desde la memoria principal.

3. Los datos, ahora dentro del micro, se procesan.

4. Qué sucede luego dependerá del programa. El procesador puede continuar cargando y ejecutando más instrucciones del programa o podría hacer algo con los datos procesados, como mostrar algo en la pantalla.



Antes la CPU controlaba las transferencias de datos entre el disco y la memoria. Pero rápidamente el disco fue mucho más lento que la memoria principal, y esto hacía lento todo el sistema, pues la CPU permanecía ocupada hasta que se completara la transferencia de todos los datos desde el disco a la memoria. Este método se llamaba PIO (Programmed Input/Output). La solución fue hacer que las transferencias de datos desde el disco a memoria se realizasen sin la intervención del micro, lo cual hacía al sistema más rápido.

Este método se denomina Bus Mastering o DMA (Direct Access Memory). Con esto se implementó el controlador de memoria en el puente norte, aunque los procesadores AMD basados en los socket 754, 939, 940 (Athlon 64, Athlon 64 X2, Athlon 64 FX) y actuales Phenom tienen el controlador de memoria dentro por lo cual acceden directamente a memoria sin utilizar el puente norte; este método lo implementó también Intel en su nuevo Core i7.

martes, 2 de agosto de 2011

PowerNow!

PowerNow! es una tecnología de automatización de la frecuencia del procesador y de ahorro de energía desarrollada por AMD y que utiliza en sus micros para computadoras portátiles.

La velocidad de reloj del micro y el voltaje de éste es automáticamente reducido cuando esta en bajo uso o en espera, para ahorrar la energía de la batería, reducir la temperatura y el ruido provocado.

El tiempo de vida del microprocesador se extiende ya que al funcionar a menor frecuencia prolonga su tiempo de uso.

La adaptación del PowerNow! para computadores de mesa es llamada Cool'n'Quiet. También los microprocesadores Opteron usan una adaptación del PowerNow! llamada Optimized Power Management. Esta tecnología tiene un concepto similar al SpeedStep de Intel.

lunes, 1 de agosto de 2011

SpeedStep

SpeedStep es el nombre de una tecnología desarrollada por Intel que permite cambiar la frecuencia del reloj de un microprocesador para minimizar el consumo y el calor disipado mientras éste está en reposo o con poca carga de trabajo.

Para aprovechar esta tecnología debe ser soportada por el sistema operativo, que es quien regula la frecuencia según sus necesidades. Microsoft introdujo soporte para SpeddStep a partir de Windows XP. AMD utiliza en sus procesadores dos tecnologías similares llamadas PowerNow! y Cool'n'Quiet.

Ventajas de SpeedStep
  • Ahorro de energía
  • Aumento en la vida útil del procesador
  • Reducción de temperatura dentro del gabinete
  • Reducción de ruido. Cuando se activa SpeedStep el procesador sufre un descenso de temperatura, esto hace que el ventilador del disipador baja sus revoluciones, generando de esta manera menos ruido. Algunas Mother pueden controlar las revoluciones incluso de los ventilador agregados al gabinete.

domingo, 31 de julio de 2011

Turbo Core

Turbo Core es la versión de AMD de la tecnología Turbo Boost de Intel, implementada a partir de sus procesadores Phenom II de seis núcleos. Esta tecnología busca ofrecer una solución menos sofisticada al overclock automático propuesto por Turbo Boost.

La tecnología se activa automáticamente cuando tres o más núcleos están "sin trabajar"´, los núcleos que no están trabajando disminuyen su frecuencia de reloj a 800MHz, esto permite aumentar el voltaje de los núcleos que "están trabajando" acelerando su frecuencia de reloj hasta en 500MHz más.

Esto permitirá a los procesadores Phenom II X6 utilizar todo el TDP disponible para maximizar el desempeño. TDP o Potencia de diseño térmico (Del inglés Thermal Design Power) representa la máxima cantidad de calor que necesita disipar el sistema de refrigeración. Por ejemplo, un microprocesador diseñado para 20 Watts de TDP significa que puede disipar (por diversas vías: disipador, ventilador...) 20 vatios de calor sin llegar a la máxima temperatura de funcionamiento para la cual fue diseñado.

La tecnología Turbo Core viene activada por defecto y no requiere de software especial, drivers o utilidades para hacerla funcionar.