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.



sábado, 30 de julio de 2011

Cool'n'Quiet

Cool'n'Quiet (fresco y silencioso), abreviado a veces como CnQ, es una tecnología introducida por AMD en sus microprocesadores de 64 bits Athlon 64 y Sempron que permite reducir la frecuencia en los ciclos del reloj del procesador en función de las necesidades reales del sistema, reduciendo así el consumo de energía y calor generado.

Al reducir a "pedido" la frecuencia en los ciclos del reloj Cool'N'Quiet reduce la velocidad del procesador cuando la carga de trabajo es baja, la reducción provoca una bajada de temperatura (Cool) que a su vez reduce las revoluciones del ventilador (cooler) del procesador (Quiet). Todo estp redunda en un mejor aprovechamiento de la energía y una disminución del calor generado y del ruido producido por el cooler del micro. Cuando la carga de trabajo aumenta, la frecuencia de ciclos de trabajo del procesador sube de nuevo hasta los niveles requeridos o máximos en su caso.

La velocidad del procesador se actualiza cada 1/30 segundos, lo que podría producir una pequeña baja de rendimiento de la computadora, al tener que esperar ese tiempo para que aumente la velocidad. En cualquier caso, la frecuencia de refresco de la velocidad es suficientemente elevada como para apenas notar una bajada de rendimiento.

La tecnología Cool'n'Quiet exige compatibilidad del microprocesador y su refrigerador, la placa madre, la BIOS y la instalación de drivers por parte del usuario dependiendo del Sistema Operativo. 

Beneficios de esta tecnología
  • Menor consumo eléctrico: Nuestra pc consumirá un poco menos, unos 10 Vatios aproximadamente. Sumado a ciertas opciones que traen las placas base, puede multiplicarse la bajada de consumo al modificar el voltaje de uso.
  •  Menor desgaste electrónico: La reducción de petición de voltaje del procesador relaja tanto el estrés de la CPU como de los reguladores de tensión de la placa base y los circuitos de la fuente de alimentación. Con ello, aumentamos las posibilidades de que estos componentes no fallen a medio/largo plazo.
  • Mejora de las temperaturas: El procesador estará más fresco mientras esté actuando el Cool'n'Quiet por lo que generará menos calor dentro de la caja, lo que afecta directamente a la temperatura del mismo que baja hasta unos valores bastante menos elevados.
  • Finalmente el beneficio más relevante es la reducción de ruido ya que, al bajar la cantidad de calor generada, se necesita menos refrigeración. Aquí entra en juego la placa base y su capacidad de gestión del Cool'n'Quiet: algunas actúan reduciendo automáticamente la velocidad del ventilador de la CPU, otras en cambio reducen todos los ventiladores que estén conectados a la placa base.

viernes, 29 de julio de 2011

Un buen Anti-Malware gratuito

Malwarebytes’ Anti-Malware es una utilidad libre y gratuita que detecta y elimina todo tipo de Malware. Hoy en día, las computadoras siempre están en riesgo de infectarse con Virus, Gusanos, Troyanos, Rootkits, Dialers, Spywares y Malwares que están en constante evolución y que cada vez son más difíciles de detectar y eliminar.

Malwarebytes ha sido diseñado con las más sofisticadas técnicas AntiMalware que lo hacen capaz de detectar y eliminar programas maliciosos, los más comunes y peligrosos incluyendo aquellos que los más conocidos AntiVirus y AntiSpywares no detectan como por ej: Vundo, Zlob, Navipromo, Bagle, RBot, y toda la familia de Rogue Software (falsos Antivirus y falsos AntiSpywares) entre muchos otros.

Características de Malwarebytes
  • Versión gratuita.
  • Soporte para Windows 2000, XP, Vista, y 7 (32-bit y 64-bit)
  • Disponible en español.
  • Actualización periódica de su base de datos
  • Tecnología de exploración y detección heurística avanzada.
  • Sistema de Cuarentena
  • Compatible con cualquier otro Antivirus y AntiSpyware.
  • Integración en el menú contextual para escanear archivos bajo demanda.
Acerca de la licencia

Malwarebytes’ Anti-Malware es totalmente gratuito para el uso ilimitado, pero no incluye protección en tiempo real. Esta protección está únicamente reservada para la versión paga del producto.

Obtener el programa

Descargar Malwarebites

jueves, 28 de julio de 2011

Error al cargar Igou.rlo

Al iniciar Windows XP empezó a aparecer el mensaje que muestra la imagen, Error al cargar Igou.rlo No se puede encontrar el módulo especificado.

Aceptando el mensaje se continua sin problemas, pero el cartelito aparece y aparece en cada inicio. Lo cierto es que se trata de un malware molesto que probablemente el antivirus haya detectado y eliminado parcialmente, produciendo a posteriori el error que muestra el mensaje.

La solución que hallé para este problema vino de la mano de Malwarebites un Anti-Malware libre muy fácil de instalar y de usar. Una vez instalado realicé un escaneo completo del sistema (no utilicé el escaneo rápido),  acepté las opciones de limpieza ofrecidas por el programa. Una vez terminada la tarea pide de reiniciar el sistema y listo, problemas solucionado.


miércoles, 27 de julio de 2011

El controlador de memoria

También conocido como MMU (Memory Manager Unit, Unidad de Manejo de Memoria), es un componente esencial en cualquier computadora. Simplemente es un chip (actualmente suele venir integrado como parte del chip Puente Norte o del microprocesador) cuya función consiste en controlar el intercambio de datos entre el microprocesador y la memoria RAM. 

El controlador de memoria determina el funcionamiento del control de errores, si es que existe. Es muy importante determinar la necesidad de introducir o no un sistema de memoria con control de integridad. Generalmente esto se implementa en grandes servidores y computadoras de alto rendimiento donde la integridad de datos es un factor importante.

martes, 26 de julio de 2011

Integridad de datos

Uno de los aspectos en el diseño de la memoria implica el asegurar la integridad de los datos en ella almacenados. Actualmente, existen dos métodos principales para asegurar la integridad de los datos:

1. Paridad: ha sido el método más común usado hasta la fecha. Este proceso consiste en añadir un bit adicional por cada 8 bits de datos. Este bit adicional nos indica si el número de unos es par o impar (igual se puede hacer con los ceros. A esto se denomina criterio de paridad par o impar). El método de control de paridad tiene sus limitaciones. Por ejemplo, un sistema de control de paridad, puede detectar errores, pero no corregirlos. Incluso puede darse el caso de que varios bits sean erróneos y el sistema no detecte error alguno.

2. Códigos de Corrección de Errores (ECC): Es un método más avanzado de control de la integridad de los datos que puede detectar y corregir errores en bits simples. Este es un método que se implementa en grandes servidores y equipos de altas prestaciones. Cuando se detectan múltiples errores en varios bits, el sistema acaba por devolver un error de paridad en memoria.

Debido a la competencia de precios, la norma más habitual es la de no introducir métodos de control de la integridad de los datos en la memoria, siendo más caros aquellos módulos que sí incluyen alguno de estos dos métodos de control de errores.

lunes, 25 de julio de 2011

Memoria RIMM

RIMM: módulo de memoria RDRAM (Rambus Son los módulos de memoria, sustituyen a los actuales DIMM, y son una continuación del canal; el canal entra por un extremo del RIMM y sale por el otro. Los RIMM tienen el mismo tamaño que los DIMM y han sido diseñados para soportar SPD, (Serial Presence Detect). También hay RIMM de doble cara o de una cara, y pueden tener cualquier número de chips hasta el máximo de 32 soportados por canal. Hay módulos de 64MB, 128MB y 256MB, la máxima cantidad total de memoria va desde los 64MB hasta 1Gb por canal. Podemos instalar dos repetidores para aumentar el número de conectores, y así aumentar el numero de RIMMs, con un repetidor aumentamos a 6 conectores y con dos repetidores aumentamos a 12 conectores.