jueves, 11 de diciembre de 2008

4gb - Mito o Realidad

En mi trabajo legal, un cliente pidio una maquina que le funcionara realmente con 4 Gb, ya que el se habia documentando mucho y sabia que los Windows x86 (o lo que es lo mismo de 32 bits) solo soportan de 3 Gb a 3.25 Gb.

Asi que hagamos un poco de historia antes de entrar en la cuestión. La arquitectura x86 tienen una limitante en lo que a memoria se refiere, ya que la maxima direccion permitida es un número hexadecimal que para nosotros sería incomprensible, pero para el mundano seria 3 Gb, claro esta en las versiones avanzadas de Windows esta liminante puede llegar a 3.25 Gb (3315 Mb) caso del Vista Ultimate.

Este problema se plantea porque los sistemas operativos de 32bits (y no solo Windows, Linux también lo hace) reservan esta parte de la memoria para mapear los dispositivos PCI.

Esta claro que si compramos 2 DIMM de DDR2 de 2 Gb, estaremos desperdiciando 750 Mb aproximadamente.

Para solucionar el problema, los ingeniosos de INTEL desarrollaron la Physical Address Extension (Extensión de Direccionamiento Físico), la PAE (como es su abreviatura) no es otra cosa que una instrucciones del procesador para poder poner un nivel más de indirección a la memoria virtual y por tanto poder alcanzar un total (teórico) de memoria física 64 GB. Recordemos que este limite es el teórico que posteriormente está restringido por el sistema operativo. W2000 / W2003 Server y los sistemas W2000 Profesional, XP Profesional y XP Home, están limitados, funcionando o no en PAE, a un máximo de 4 GB de memoria. W2000/W2003 Advanced Server y posteriores amplían, en función de la versión instalada este limite y son los únicos capaces de superar los 4 GB.

Ventajas e Inconveniente del modo PAE


En Modo PAE, no permite reconocer el total de la RAM instalada, pero (y todo tiene su ''pero'') también hace más lento nuestro sistema, a la vez que puede provocar algunas inestabilidades, así como algunas incompatibilidades con dispositivos, sobre todo si esto se hace en equipos de 32bits (este es uno de los motivos por el que se eliminó de Windows XP SP2).

Hay otro factor que debemos tener en cuenta. Siempre que el total de la memoria física instalada sea igual al máximo de memoria permitida por el chipset de la placa base, la memoria real disponible se reducirá, ya que el sistema va a reservar parte de esta memoria para el mapeo de dispositivos.

Esto a veces no ocurre en ordenadores que admiten un máximo de 2GB de RAM porque el límite máximo de memoria soportada no depende del chipset de la placa, sino de otras limitaciones impuestas por el fabricante (como por ejemplo incorporar sólo dos bancos de memoria, en lugar de cuatro o establecer una cantidad de RAM instalable inferior a la soportada por el chipset).

Esta reducción se sitúa entre los 200MB y 1GB, dependiendo de la configuración.

Este factor no sólo ocurre en los sistemas de 32bits, sino también en los de 64bits.

¿Que pasa si no tocamos el PAE?

Aunque el sistema no nos reconozca los 4GB sí que tenemos una mayor cantidad de la RAM que nos reconoce disponible, ya que esta asignación de memoria de los dispositivos PCI se hace mayoritariamente en la zona de memoria por encima de los 3.2GB, si bien hay una pequeña parte que sigue estando en la zona inferior de la memoria.

Esto es algo similar a lo que ocurre cuando tenemos una gráfica integrada. El sistema reserva la memoria dedicada para la gráfica y Windows ni siquiera la muestra como memoria instalada, pero si que está ahí y sí que la utiliza.

Ahora vamos a ver el mismo ejemplo, pero utilizando una gráfica con la tecnología TurboCaché o HyperMemory. Bien, sabemos que este tipo de tarjetas llevan integradas una parte de la memoria en la propia gráfica, pero para completar el total de la memoria de la tarjeta utilizan la memoria RAM.

Esta memoria se utiliza de forma dinámica y cuando se necesita, pero cuando se está utilizando tenemos que restarle a la RAM disponible la utilizada por la gráfica. Pues bien, si tenemos instalados 4GB de RAM, esta memoria que utiliza la gráfica se va a situar por encima de los 3.2GB, por lo que también vamos a tener disponible más memoria RAM que si sólo tuviéramos instalados 3GB, aunque el sistema sólo nos reconozca esos 3.2GB.

Conclusiones

Aunque resulta impactante tener 4 Gb teoricos en un computador, esta demostrado que realmente le sacaremos provechos con sistemas operativos de 64 bits. De alli mis siguientes recomendaciones:

  • Si desea trabajar con mas 3 Gb, deberia instalar un Sistema Operativo de 64 bits, pero debe atenerse a las consecuencias de dicho cambio
  • Si no desea cambiar su sistema operativo de 32 bits, y aun asi quiere montar 4 Gb de memoria RAM y utilizarlo. Ejecute desde el Editor de comandos (cmd.exe), escribiendo en él BCDEdit /set PAE forceenable. Este comando está disponible en Windows Vista, Windows Server 2003 y Windows XP SP1, pero no en Windows XP SP2.
  • Realmente no se aprecia un rendimiento notable entre 3.2 Gb y 4 Gb, al menos en Sistema Operativos Windows.
Cualquier comentario, estamos a la orden

sábado, 6 de diciembre de 2008

MarioKart en la Vida Real

Como es navidad, y a veces necesitamos reirnos, que mejor que un video.

Para aquellos que ya eran adolecentes en los 90's se deben de acordar del juego MarioKart, y en lo personal aunque a mi no me gustaba mucho las consolas, ese era precisamente uno de los pocos juegos con los que me entretenia (y apostaba) con mis amigos.

Pero creo que este frances se paso de frikkie con su amor al juego

Solo tienen que darle Play


jueves, 4 de diciembre de 2008

Explicacion sobre la Frecuencia en el Sonido y los Bits

Anoche, después de 2 semanas de sufrimiento... Logramos hacer correr el Call of Duty 5 (Call of Duty World at Conflict). El motivo por el cual no logramos que corriera al principio (después de una pizza y una googleada) no fue otro que la tasa de frecuencia con la que teniamos configurada la tarjeta de sonido.

Como técnico, siempre he pensado que tener un equipo de computación al 100% de su capacidad es lo mejor que puede existir para su rendimiento. Pero al parecer todos cometemos errores. Buscando la razón por la cual el juego funciona en una frecuencia de sonido de 48000Hz en vez de 196000Hz. Descubrí algo que realmente es importante conocer si son de esas personas que le gusta tener su PC lo mas óptimo posible.

La definición de Wikipedia de Frecuencia de muestreo es la siguiente:

"La tasa o frecuencia de muestreo es el número de muestras por unidad de tiempo que se toman de una señal continua para producir una señal discreta, durante el proceso necesario para convertirla de analógica en digital. Como todas las frecuencias, generalmente se expresa en hercios (Hz, ciclos por segundo) o múltiplos suyos, como el kilohercio (kHz), aunque pueden utilizarse otras magnitudes."

Esto quiere decir que la frecuencia de muestreo no es otra cosa que el tiempo que toma la conversión de analógica a digital y viceversa. Recuerde que nuestra computadora es la señal digital, mientras que nuestras cornetas convencionales u audífonos convencionales son señal analógicas.

Es un error frecuente y extendido, creer que una misma señal muestreada con una tasa elevada se reconstruye mejor que una muestreada con una tasa inferior. Entonces nos preguntamos como sabremos cual es la mejor frecuencia de muestreo para mí?.

La respuesta viene de, según del teorema de muestreo de Nyquist-Shannon, el cual enuncia que para poder replicar con exactitud la forma de una onda es necesario que la frecuencia de muestreo sea superior al doble de la máxima frecuencia a muestrear.

Un ejemplo: una señal X, tiene una onda de 10 kHz (Recuerden que 1kHz = 1000Hz); en su reconstrucción es suficiente tanto si se obtiene de una tasa de muestreo de 25000 muestras por segundo como de una de 50000 muestras por segundo ya que la superan por el doble. Pero recuerden que a mayor calidad de muestreo (o Frecuencia de Sonido) mayor espacio consumirá el archivo de sonido.

El proceso de muestreo (que no debe ser confundido con el de cuantificación) es, desde el punto de vista matemático, perfectamente reversible, su reconstrucción debe ser exacta, no aproximada. Dicho de otro modo, desde el punto de vista matemático al que se refiere el teorema de muestreo de Nyquist-Shannon.

Ahora por que nos es importante conocer este teorema, en lo que al sonido y nuestro computador se refiere.

Bueno, según estudios científicos, en lo que a audio se refiere, la máxima audiofrecuencia perceptible para el oído humano joven y sano está en torno a los 20 kHz, por lo que teóricamente una frecuencia de muestreo de 40000 sería suficiente para su muestreo; no obstante, el estándar introducido por el CD, se estableció en 44100 muestras por segundo. La frecuencia de muestreo ligeramente superior permite compensar los filtros utilizados durante la conversión analógica-digital.



Hay que tener en cuenta que no todas las fuentes sonoras se aproximan a los 20 kHz que corresponden a esta frecuencia máxima, pero esto no significa que esa sea la frecuencia que utilizan todos los equipos. Los sistemas domésticos de baja calidad pueden utilizar tasas de 22050 muestras por segundo o de 11025 muestras por segundo (limitando así la frecuencia de los componentes que pueden formar la señal). Además, las tarjetas de sonido de los equipos informáticos utilizan frecuencias por encima o por debajo de este estándar, muchas veces seleccionándolas en función de las necesidades concretas (sobre todo, en aplicaciones de audio profesional).

El nivel de muestreo más estandarizado del mercado en cuanto a estudio de grabación suele ser el de 48 Khz que son 48.000 muestras por segundo. Al parecer esa fue la idea inicial de los inventores del CD, pero resultó que una obra clásica de no recuerdo que autor (es intrascendente), no cabía en un CD, y por eso se redujo esa frecuencia de muestreo a 44,1 Khz.

Ahora, ya entrando al entorno digital, el sonido para poder ser almacenado digitalmente, es necesario una cuantificación, y allí es donde entran los bits.

A nivel informático un bit no es otra cosa que una representación de un estado eléctrico de 0 (cero) y 1 (uno), se podría definir como la parte mas primoldial de cualquier elemento digital. Bien, el sonido se almacena en forma de señales, también conocido como niveles de muestreo, lo cuales se calculan elevando el número 2 (por eso de la matemática binaria) por el número de bit que va a componer un sonido en un tiempo determinado.

Ejemplo: si yo quiero cuatro niveles de sonido yo tendría que elevar 2^2 lo cual me da 4, se podría definir entonces que ese sonido sería de 2 bits.

No es lo mismo tomar una muestra de 2 bits que sólo reflejaría 4 niveles de señal (una aberración sin sentido), a tomar una muestra de 16 bits (la resolución de un CD comercial) que es capaz de medir 2^16 es igual a 65.536 niveles de señal diferentes.

Actualmente, en los estudios digitales modernos, ya se graba a 24 Bits, e incluso a 32 Bits. Por ejemplo, lo habitual en estudios caseros es ser 24bits, lo que viene a resultar: 2^24 es igual 16 millones de profundidad de señal.

Se intuye que a mayor cantidad de bits, mayor cantidad de sonido se puede almacenar, aunque eso es proporcional a la Frecuencia de muestreo que estemos utilizando.

En resumen, tendríamos que trabajar en nuestras computadoras para un óptimo rendimiento con los siguientes valores:

Calidad DVD

  • 96000hz/24bits en Windows XP
  • 96000hz/24bits en Windows Vista

Calidad Blue-Ray (o el difunto HD-DVD)

  • 192000hz/24bits en Windows XP
  • 192000hz/24bits en Windows Vista

Por que estos valores, hay que aclarar que los 24 bits no son reales ya que ahí que evaluar el ruido de cualquier sistema (incluídos los de audio digital) es a través de la relación señal/ruido (S/R) en decibeles. Para el audio digital, la máxima S/R que puede obtenerse es, aproximadamente, igual a 6*n, donde n es la resolución en bits.

Por lo que el rango dinámico para 24 bits es 24 x 6 = 144 dB. Lamentablemente, la electrónica analógica actual no puede dar ese rango dinámico. Para lograrlo habría que trabajar con impedancias muy bajas (del orden del ohm o menos), corrientes muy bajas en los amplificadores y temperaturas bajo cero. La mayoría de las placas de sonido que soportan 24/96 especifican una relación señal/ruido de 110 dB o menos lo cual reduce la performance real a unos 18 bits. A pesar de ello, la performance será mejor que la de cualquier placa de 16 bits porque los fabricantes usan mejores amplificadores, filtros, etc., para 24 bits que para 16 (ninguna placa de 16 bits llega a 110 dB de relación señal/ruido).

En cuanto a la frecuencia de muestreo, el asunto es diferente. Por empezar, cualquier sistema debe ser capaz de muestrear correctamente los 20 kHz, lo cual requiere una frecuencia de muestreo de al menos 40 kHz. Sin embargo, antes de muestrear hay que remover las frecuencias superiores a 20 kHz con un filtro antialias. El problema es que ningún filtro real puede dejar pasar hasta 20 kHz sin alteración y luego bloquear por completo lo que está por encima de 20 kHz. Un filtro real necesita cierta banda de transición, por ejemplo de 20 kHz a 22 kHz, donde el filtro pasa de no atenuar casi nada hasta atenuar casi todo.

Un filtro así permitiría usar una frecuencia de 44 kHz (o 44,1 kHz, como es la norma). Pero de todas maneras una banda de transición de 2 kHz es demasiado angosta y requiere un filtro complejo que, como subproducto, produce distorsiones de fase (las distorsiones de fase son importantes pues deterioran la imagen espacial estéreo o tridimensional del sonido). Este problema se puede resolver muestreando a más frecuencia, por ejemplo 96 kHz, que permite que el corte del filtro se produzca a 48 kHz en vez de a 22 kHz. Este filtro tiene una pendiente menos abrupta y es, por consiguiente, más simple y deja menos "cicatrices" en la señal.

En resumen:

Como utilizar las Frecuencias:

  • 8000hz : Teléfonos, adecuado para la voz humana pero no para la reproducción musical. En la práctica permite reproducir señales con componentes de hasta 3,5 kH.
  • 22050 : Radio En la práctica permite reproducir señales con componentes de hasta 10 kHz.
  • 32000hz : Vídeo digital en formato miniDV.
  • 44100hz : CD, En la práctica permite reproducir señales con componentes de hasta 20 kHz. También común en audio en formatos MPEG-1 (VCD,SVCD, MP3).
  • 47750 : Formato PCM de Nippon Columbia (Denon). En la práctica permite reproducir señales con componentes de hasta 22 kHz.
  • 48000hz : Sonido digital utilizado en la televisión digital, DVD, formato de películas, audio profesional, juegos de computadoras y sistemas DAT.
  • 50000hz : Primeros sistemas de grabación de audio digital de finales de los 70de las empresas 3M y Soundstream.
  • 96000hz o 192400hz : HD DVD, audio de alta definición para DVD y BD-ROM (Blu-ray Disc).
  • 2822,4kHz : SACD, Direct Stream Digital, desarrollado por Sony y Philips.

Como utilizar los bit:

  • 16 bits : Formato estandar para CD
  • 24 bits : Formato estandar de las placas de sonido Hi-Fi. Equipos profesionales con AC3
  • 32 bits y superiores : Futuro estándar de los Estudios de Grabacion, en esta etapa se utilizarían sólo complementos digitales (consola, micrófonos, audífonos, etc), ya que 24 bits es el tope teórico para almacenamiento digital desde medio analógico.