Archive

Posts Tagged ‘Hardware’

Guía de Tarjetas Gráficas 2011

13 octubre 2011 2 comentarios

Todo sobre tarjetas y chips de video: memoria de video, video en equipos de escritorio, laptops, tablets y smartphones, consumo de energía, fusion, pci-express, directx y mucho más. En esta pequeña guía explicaré el funcionamiento y características básicas de los chips de video, por conveniencia se ha dividido en las siguientes secciones:

1. Introducción

2. Clasificación

3. Desempeño

3.1 Aceleración 2D y 3D

3.2 Aceleración de códecs de video

3.3 Memoria de video

4. Puertos de video

5. Tarjetas Discretas

5.1 Instalación

5.2 Consumo de Energía y Calentamiento

6. Configuración en Equipos PC

6.1 APIs

6.2 Drivers

6.3 Reproducción de video

Introducción

Una tarjeta de video es en si mismo una pequeña computadora, capaz de procesar, almacenar y mover información de tipo gráfico, Es en la mayoría de los casos el componente más importante después del microprocesador, la podemos considerar como el 2o cerebro que existe dentro de nuestra computadora.

Cuando adquirimos un equipo de cómputo nuevo o una tarjeta de video es importante tener en mente el uso que le vamos a dar. Algunas aplicaciones como:

  • Reproducción de Videos y Películas en HD
  • Edición de Videos
  • Diseño y Animación 3D
  • Aplicaciones de Ingenieria o Arquitectura
  • Videojuegos
  • ….

Pueden ser procesados de forma más rápida y eficientemente con ayuda de la tarjeta de video.

Si tenemos en mente usar algún programa de software en particular, es importante revisar los requerimientos mínimos de sistema, algunos programas simplemente no funcionarán si no contamos con una tarjeta de video adecuada. A lo largo de esta guia veremos como elegir la tarjeta más adecuada a nuestras necesidades.

Clasificación

Hay tres tipos de tarjetas de video que encontramos comunmente:

  • Tarjetas de Video Discretas, son tarjetas como la que se muestra en la fotografía de abajo, se ecuentran en equipos de escritorio, pueden ser adquiridas o actualizadas, cuentan con su propia memoria de video conocida como memoria dedicada, y en general son rápidas, pero también más costosas.

  • Tarjetas de Video Integradas en la Tarjeta Madre (IGP) hoy en dia el tipo de tarjeta de video más común, como su nombre lo indica son chips integrados que econtramos en la placa principal del equipo (generalmente en el chipset o puente norte), vienen soldados de fábrica y no se pueden cambiar.  Las encontramos en tablets, netbooks, laptops, y computadoras de escritorio. En estas últimas existe la posibilidad de agregar otra tarjeta de video, sin embargo, solo una de ellas funcionará a la vez. No son tan rápidas como las discretas pero son más baratas. La mayoría de estas no cuentan con memoria propia y utilizan parte de la memoria RAM del sistema para funcionar, este espacio se le conoce como memoria compartida el cual reduce la memoria disponible para el sistema operativo y los programas, aunque en general casi siempre es posible agregar físicamente más memoria RAM al sistema.

  • Tarjetas de Video Integradas en el Procesador, cada dia es más común encontrar computadoras donde la tarjeta de video y el procesador estan integrados en un solo chip. Algunos ejemplos son: la linea de procesadores Fusion de AMD, los procesadores Intel con HD Graphics y en general casi todos los procesadores de tablets como el Nvidia Tegra2. En algunos casos estas pueden ser más rápidas que las integradas en el tarjeta madre (como los AMD Fusion A8-3600 – 3800), pero más lentos que las discretas. Tampoco cuentan con memoria propia y utilizan parte de la memoria del sistema para funcionar. Una de sus principales ventajas es la gran velocidad de comunicación con el procesador y la memoria RAM. Es posible que en algunos años este tipo de tarjetas ofrezcan el mismo desempeño que las discretas.

Sin importar el tipo de tarjeta todas ellas cuentan con un procesador llamado Unidad de Procesamiento Gráfico o GPU (por sus siglas en inglés), el cual define las capacidades de video del equipo. Son identificados por el nombre del fabricante, marca y modelo. Por ejemplo: “Nvidia GeForce GT560”, donde el fabricante es Nvidia, la marca GeForce y el modelo GT560. Convencionalmente la numeración del modelo representa la familia: serie 500 y el desempeño: 60, aunque esta regla muchas veces no se cumple y hay que tener cuidado.

Desempeño

Aceleración 2D y 3D

La aceleración 2D, se refiere a la aceleración de los elementos en 2 dimensiones que usamos todos los días en nuestro escritorio: botones, menús, ventanas, el ratón, … También es útil para manipular fotografías y realizar edición de imagenes en 2D. La mayoría de las tarjetas de video nuevas y no tan nuevas cuentan con la aceleración 2D necesaria y se puede considerar como un factor de poca relevancia al elegir una tarjeta de video.

La aceleración 3D, se refiere a la aceleración de objetos tridimensionales que son utilizados comunmente en programas de edición, animación 3D, videojuegos, programas de ingeniería, arquitectura, etc.

Cada uno de estos programas tiene una  demanda diferente de aceleración 3D y de memoria de video.

En el software de edición y animación 3D esta demanda dependerá del programa que utilicemos y de los elementos que trabajemos, entre más información sea manipulada (texturas, poligonos, efectos especiales), mayor será también la demanda de recursos a la tarjeta de video. Y será necesario una tarjeta con mayores capacidades.

En el caso de los videojuegos los títulos más recientes son los más demandantes. Cuando un videojuego es demasiado pesado para nuestra tarjeta gráfica, este se congelará, se verá muy lento o de forma pausada, en algunos casos haciendo imposible jugarlo. Este efecto se debe a que el número de cuadros (o imágenes) por segundo que puede procesar nuestro GPU es muy bajo. Por esta razón muchos videojuegos incluyen opciones para mejorar la velocidad aunque esto signifique sacrificar elementos visuales. La mayoría de los videojuegos se pueden jugar perfectamente a más de 45 cuadros por segundo o fps (de sus siglas inglés), algunos juegos de estrategia o de movientos en 2D se pueden jugar a 30 fps o menos, mientras que algunos de primera persona requieren 60 fps para obtener movimientos rápidos y fluidos. Solo como referencia, recordemos que la mayoría de las peliculas se proyectan a 24 o 25 fps. Veamos el siguiente ejemplo:

Juego: Lost Planet 2, Calidad Baja, resolución: 1024×768, Procesador: Intel i5 2500

Tarjeta gráfica Cuadros por segundo (fps)
AMD Radeon HD 5570 69.8
AMD Radeon HD 5450 24.9

En esta pequeña comparación podemos ver como el mismo juego con la misma configuración gráfica y equipo de cómputo (procesador y RAM) se comporta de forma diferente dependiendo del GPU. A pesar de que la configuración de video es casi la mínima posible, no es posible hacer que el juego Lost Planet 2 se vea de forma fluida usando un Radeon HD5450, pero si es posible jugarlo perfectamente con el Radeon HD5570 que es más costoso. Este mismo comportamiento lo encontramos en smartphones y tablets dependiendo del chip de video.

Es difícil saber como se comportará un programa o algún videojuego con cierta tarjeta gráfica, la mejor opción es revisar primero las reseñas en Internet antes de adquirir cualquier cosa. Algunos sitios muy recomendables son los siguientes (en inglés):

También puedes encontrar más reseñas por cada modelo de GPU en GPUReview.

Para tablets y smartphones te recomiendo (en inglés):

Aceleración de codecs de video

Los codec’s de video son métodos en hardware o software que permiten comprimir y descomprimir videos digitales; por ejemplo:  mpeg-2, H.264, VC-1, VP8, etc. En la actualidad todos los videos que usamos día con día  se encuentran comprimidos en algún formato y para visualizarlos se requiere que el archivo pase por un proceso de descompresión. En muchos casos este proceso puede ser sumamente demandante y es realizado en varias etapas.

Las tarjetas gráficas nuevas cuentan con aceleración de codecs de video, esto permite que algunas o todas las etapas de la descompresión de ciertos codecs sean procesadas por el GPU. Logrando ver videos más fluidos y con mejor calidad de imagen, además de reducir el consumo de energía e incrementar la duración de la batería en equipos móbiles.

Solamente los GPUs más nuevos cuentan con aceleración completa de codecs de video. Las siguientes tecnologías permiten tener aceleración de codecs de video:

Equipos PC (escritorio, laptops y netbooks):

Tecnologías como PureVideo o Unified Video Decoder han ido evolucionando, cada nueva versión ofrece grandes mejoras con respecto a la anterior.

Algunos chips de video en tablets y smartphones  que soportan reproducción HD en 1080p son:

  • Imagination Technologies PowerVR SGX
  • ARM Mali 400 MP
  • Qualcomm Adreno 220
  • Broadcom CrystalHD (también netbooks)

La aceleración de codecs de video debe ser un factor importante a tomar en cuenta si deseas reproducir películas Blu-Ray  o cualquier otro formato de alta definición.

Memoria de video

La tarjeta con más memoria no siempre es la más rápida. Si el GPU tiene pocas capacidades, será poco relevante que tengamos varios gigabytes en memoria de video. La mayoría de los fabricantes proporcionan la cantidad y tipo de memoria conveniente para cada GPU. En el caso de la memoria compartida pasa algo similar, compartir grandes cantidades de memoria RAM del sistema no hará nuestra tarjeta mucho más rápida, es probable que la diferencia no sea notable. Si realmente requieres de más aceleración, necesitarás otro GPU.

Algunos GPUs soportan varios tipos de memoria dedicada y los podemos encontrar en todo una gama diversa de productos.

Los tipos de memoria que podemos encontrar en una tarjeta de video (y su fecha de aparición en el mercado) son los siguientes:

  • DDR2 (2003)
  • DDR3 (2007)
  • GDDR3 (2003)
  • GDDR4 (2007)
  • GDDR5 (2008)

La letra G, al principio de los últimos tres, se refiere a Graphics, y son tipos de memoria especialmente diseñados para tarjetas de video, los dos primeros son los tipos de memoria comerciales que ya conocemos.

El desempeño de la memoria de video se puede estimar conociendo los siguientes parametros:

cantidad * tipo * velocidad * ancho de bus

La velocidad se indica en Mhz y el ancho de bus en bits, puede ser de 64 a 512 bits dependiendo del GPU. Una memoria muy grande y rápida podría estar limitada por un bus de datos pequeño, creando un cuello de botella.

Puertos de video

Existen varios puertos de video que permiten conectar la tarjeta gráfica al monitor o a la TV. Aquí una lista de los más comunes:

VGA (1987)
DVI (1999)
s-video (1987)
s-video (1987)

HDMI (2003)

HDMI tipo C (mini 2006)

DisplayPort (2008)

Mini Display Port (2008)

Si deseas tener gran conectividad entre tus dispositivos deberás revisar que cuenten con los puertos de video adecuados. Algunas recomendaciones son:

  • Asegurate que tu equipo cuente con en puerto HDMI o mini-HDMI (tablets y smartphones) si deseas conectarlo a la TV. Oh bien revisa que tu TV tenga las entradas VGA o DVI que se encuentra comunmente en equipos PC.
  • No todas las tarjetas de video soportan varios monitores. La mayoría  soporta 2, si necesitas 3 o más deberás tener cuidado al elegir tu compra.

Tarjetas Discretas

Instalación

Todas las tarjetas de video discretas se conectan físicamente al equipo mediante alguna ranura ya sea PCI, AGP, o PCI-Express, es importante revisar el tipo de ranura de video que soporta nuestra tarjeta madre (motherboard) pues no todas son compatibles entre sí, y si no tenemos cuidado podríamos terminar comprando una tarjeta que no funciona con nuestro equipo. Los tipos de ranuras son las siguientes:

Nombre Velocidad Fecha de aparición
PCI 133MB/s 1993
AGP 1x (1.0) 266MB/s 1997
AGP 2x (1.0) 533MB/s 1997
AGP 4x (2.0) 1066MB/s 2000
AGP 8x (3.0) 2133MB/s 2000
PCI-Express 8x (1.0) 2 GB/s 2004
PCI-Express 16x (1.0) 4 GB/s 2004
PCI-Express 8x (2.0) 4 GB/s 2007
PCI-Express 16x (2.0) 8 GB/s 2007
PCI-Express 8x (3.0) 8 GB/s 2010
PCI-Express 16x (3.0) 16 GB/s 2010
PCI-Express 16x

Hoy en día prácticamente todas las tarjetas de video nuevas son PCI-Express. Las tarjetas de tipo PCI, PCI-Expres y AGP no son compatibles entre sí, pero versiones distintas del mismo tipo si son compatibles, por ejemplo el PCI-Express 1.0 es compatible con el PCI-Express 2.0.

Las fuentes de alimentación más comunes para PC son de 350-450 Watts pero para ciertas tarjetas de video podríamos requerir fuentes de 600 o hasta 1000W!!. Si la fuente no soporta el consumo es muy posible que se queme. Las tarjetas de mayor consumo generalmente requieren de conectores especiales en la fuente como los siguientes:

Si deseas conectar cuatro monitores, jugar uno de los juegos con los gráficos más impresionantes en muy alta definición, o simular la colisión de dos galaxias,  posiblemente desees colocar 2 o más tarjetas de video a tu PC.

Para lograr esto hoy en día solo existen dos tecnologías disponibles:

CrossFire de ATI ó

Scalable Link Interface (SLI) de Nvidia

Actualmente solo es posible conectar en paralelo tarjetas de video del mismo fabricante y requieres de una tarjeta madre que soporte alguna de estas configuraciones.

Consumo de Energía y Calentamiento

El consumo de energía de una tarjeta es importante tanto para la elección de la fuente como para el pago del servicio eléctrico. Aquí una lista de valores a tomar en cuenta:

  • Consumo Máximo de Energía. Ocurre cuando la tarjeta funciona a su máxima capacidad, generalmente mientras ejecutamos aplicaciones de visualización en 3D.
  • Consumo Mínimo de Energía. Ocurre cuando realizamos tareas cotidianas como navegar en internet, editar documentos, o simplemente cuando el equipo esta encendido pero no hay ninguna aplicacion en ejecución.
  • TDP. (Thermal Design Power) Es un parametro que nos indica el calentamiento máximo de la tarjeta, nuestro gabinete deberá tener la disipación termica necesaria para que no se caliente demasiado. En general los gabinetes más grandes son mejor ventilados y ofrecen mayor disipación, en todos ellos siempre es recomendable tener los ventiladores y disipadores adecuados.

Cuando pensamos en el gasto de electricidad, para la mayoría de casos el consumo mínimo de energía será el factor más importante, pues la mayor parte del tiempo nuestro equipo trabaja a su capacidad mínima o se encuentra en estado de espera (idle). Estos valores pueden variar mucho dependiendo de la tarjeta. Por ejemplo, de acuerdo al sitio X-bit labs tenemos el consumo de energía de las siguientes tarjetas:

Aunque estas dos tarjetas tienen un desempeño muy similar su consumo de energía es muy diferente. Es posible apreciar como la 9600GT consume más de 20W apesar de no realizar tarea alguna (idle), mientras que la GT240 ofrece un consumo de menos de 20W en el uso diario (idle y 2D), excepto en aplicaciones 3D.

Es recomendable revisar sitios de Internet como X-bit labs donde se realizan reseñas detalladas del consumo energético. Al 28 de Febrero de 2011 esta es la lista de tarjetas y su consumo energético: Lista.

Configuración en Equipos PC

APIs

Las APIs o Interfaces de Programación de Aplicaciones, sirven a los desarrolladores de software para tomar ventaja del poder de procesamiento de las GPUs. En algunos programas de software encontramos dentro de la documentación, el soporte de algún API  (OpenGL o DirectX) como requisito minimo de sistema, esto significa que si nuestro GPU no soporta el API indicado y en una versión igual o mayor simplemente no funcionará. En otros casos el soporte solo es recomendado, lo cual significa que el software funcionara más lento o algunas opciones estarán deshabilitadas. Por ejemplo, si tienes un software o videjuego que requiere DirectX 10, pero tu tarjeta solo soporta DirectX 9, es posible que la aplicación no corra, o no sea acelerada al 100% obteniendo un desempeño pobre.

Los APIs utilizados actualmente son:

Nombre Versión más reciente Descripción
Direct3D 11 Parte del API de Microsoft DirectX, orientada a la aceleración de gráficos en 3D, utilizada principalmente en aplicaciones para Windows
OpenGL 4.2 API del grupo Khronos para aceleración 2D y 3D, utilizada en aplicaciones de diseño, animación, videojuegos, …  para Windows, Linux, Mac, smartphones, tables y otros
OpenCL 1.1 API del grupo Khronos para aceleración de software general
DirectX Video Acceleration 2.0 Parte del API de Microsoft DirectX para la aceleración de codecs de video en Windows
Video Acceleration API (VA-API)
1.0.12 API de sistemas Unix para la aceleración de codecs de video
VDPAU 0.4 API de sistemas Unix para la aceleración de codecs de video, impulsado por Nvidia
Drivers

Los drivers o controladores son pequeños elementos de software que permiten que tu sistema operativo se comunique con algún dispositivo de hardware y pueda utilizarlo. Es necesario un controlador por cada componente de hardware de tu equipo.

En las tarjetas de video, los drivers juegan un papel muy importante pues desempeñan las siguientes funciones:

  • Comunicación entre el Sistema Operativo y el Hardware
  • Soporte de APIs (2D, 3D y codecs de video)
  • Traducción y optimización en tiempo real del uso de APIs
  • Administración de Memoria de Video
  • Administración de energía

En ocasiones los drivers pueden contener errores que pueden manifestarse como: desempeño lento, calentamiento de la tarjeta, visualización corrupta y/o elementos no visibles, entre muchos otros… Algunos drivers defectuosos pueden incluso provocar que tu tarjeta de video se queme. Los fabricantes de hardware frecuentemente lanzan nuevas version de drivers y es bueno estar al pendiendiente de las mejoras y errores detectados en estos. Para equipos PC puedes encontrar drivers actualizados en:

Nvidia

ATI Technologies

Reproducción de video

La reproducción de video utilizando la aceleración de codecs puede reducir dramaticamente el uso del procesador de tu computadora con esto puedes obtener los siguientes beneficios: reducir el consumo de energia, aumentar la duración de la bateria, mejorar la calidad del video y liberar recursos para otras aplicaciones.

Aprovechar la aceleración de codecs de video todavía es una tarea complicada, en algunos casos, requieres una combinación particular de: sistema operativo, driver, reproductor de video y archivo de video. Esperemos que esta situación mejore en el futuro, conforme esta tecnología sea más común.

¿Como conseguir la aceleración de codecs?

1. Asegurate que tu hardware soporte aceleración de codecs:

Nvidia PureVideo

AMD ATI UVD

Intel Clear Video HD

2. Verifica que tu driver de video soporte aceleracion de codecs:

En sistemas Windows: Practicamente todos, excepto algunas versiones con errores, puedes usar el siguiente programa para verficiar el soporte de codecs: DXVA Checker

En sistema Unix: Para Nvidia necesitas el driver propietario nvidia y la libreria vdpau-video. Para ATI necesitas el driver propietario catalyst(todavia tiene problemas). Para Intel el driver xf86-video-intel debe estar correctamente instalado. Puedes verificar el soporte de codecs usando el comando vainfo en la consola.

3. Consigue un programa de reproducción de video que soporte aceleración de codecs:

En sistemas Windows: Conozco dos que son gratuitos:

En sistemas Unix: practicamente todos.

4. Configura correctamente tu programa de reproducción para activar el soporte:

En sistemas Windows, (para los programas anteriores):

En sistemas Unix: dependiendo del programa, deberás seleccionar el módulo de salida va-api (aunque vdpau es preferible para sistemas con Nvidia)

5. Si aún no logras obtener la aceleración, revisa que la combinación codec y resolución de tu archivo de video sean soportados por el driver usando VXVAChecker(windows) o vainfo(Unix).

Espero esta guía te haya sido de utilidad, y como siempre  tus comentarios, mejoras o correcciones son bienvenidas

Open-PC para finales de Febrero

21 enero 2010 Los comentarios están cerrados

Podemos encontrar en el mercado una gran variedad de computadoras personales precargadas con alguna distribución de Linux. Sin embargo pocos modelos satisfacen a la comunidad de software libre. Esto se debe principalmente a que muchos equipos incluyen componentes de hardware que requieren drivers propietarios para funcionar correctamente. Y estos tiene varias desventajas:

  • Instalar y configurar drivers propietarios puede ser un dolor de cabeza, pues en la mayoría de los casos estos no se integran fácilmente al sistema.
  • En general estos drivers no avanzan al mismo ritmo que el ecosistema de software libre, obligando al usuario a usar software de versiones anteriores.
  • No se conoce la situación legal de muchos de estos drivers y se piensa que algunos violan la licencia GPL usada por el kernel de Linux.

Algunas de las ventajas de usar drivers open-source o de software libre son:

  • Cuando instalas el sistema operativo todo el hardware simplemente funciona, no tienes que instalar o configurar nada.
  • Siempre están al día y puedes usar el software más nuevo.
  • Puedes aprender como usar y comunicarte con tu hardware para crear aplicaciones de uso específico.

Todas estas razones motivaron a una pequeña comunidad de KDE a poner en el mercado un equipo que solo funcione con drivers open-source. Y este es el resultado:

  • Procesador: Atom N330 1.6 Ghz doble núcleo
  • 3 GB en RAM y 160 GB en disco duro
  • Chip de Video intel GMA950
  • Mini-ITX con fuente de 250W
  • Sistema operativo precargado basado en Linux y KDE.
  • Costo: 359 EUR
  • 10 EUR son donados al proyecto KDE.

Se espera que el equipo este disponible a finales de Febrero. Y ya existen muchos planes para el futuro. En lo personal me gustaría que el equipo soportara Coreboot y que en el futuro ofrecieran productos con hardware libre.

Puedes encontrar más información sobre el proyecto Open-PC en la página oficial.

Categorías:Tecnologías de Hardware Etiquetas: , ,

Dispositivos con Linux y ARM en el 2010

6 enero 2010 Los comentarios están cerrados

Este año se espera la llegada de numerosos dispositivos con Linux y ARM a precios muy accesibles. La arquitectura ARM, que se encuentra comúnmente en los procesadores de los teléfonos celulares, es más eficiente que la arquitectura de las PCs (x86). Estos chips cada día se hacen más poderosos y en el 2010 los encontraremos en todo tipo de equipos como: smartphones, web tablet’s, netbook’s, o home media server’s, los cuales gozarán de un menor consumo de energía y una mayor duración de batería. He aquí algunos de los dispositivos anunciados para este año:

Freescale Smartbook table

Es un Internet Tablet, diseñado para navegar en Internet, leer de libros y aplicaciones de oficina.

  • Pantalla 7″, 1024×800
  • Procesador ARM Freescale i.MX515 Cortex-A8 1Ghz , OpenGL y Aceleración de video HD.
  • Wi-Fi, bluetooth, GPS y 3G(opcional)
  • camara de 3MP
  • 12 horas de batería
  • 512MB en RAM y 4 – 64GB de memoria flash
  • Sistema Operativo: Ubuntu, Android, ..
  • Acelerometros en los 3 ejes y sensor de luz.
  • Costo aproximado: $200 USD

anuncio y especificaciones

Google Nexus One

El teléfono celular de Google

  • Pantalla 3.7″ de 800×480
  • Procesador ARM Qualcomm QSD 8250 1 GHz
  • 512MB RAM y de 4 – 32GB de memoria flash
  • GSM, Wi-Fi, Bluetooth, A-GPS
  • Sistema Operativo: Android 2.1
  • Acelerometros en los 3 ejes
  • Costo aproximado: $527 USD

más especificaciones

Marvell Plug Computer 3.0

Home media server, para compartir archivos en el hogar y en Internet, para estar siempre conectado. Lo más sorprendente es la velocidad del procesador y el consumo de energía.

  • Procesador ARM Marvell Armada 300 a 2 Ghz
  • 512 MB RAM DDR2 y 512MB en flash
  • Ethernet, Wi-Fi, Bluetooth, USB
  • Consumo de energía menos de 2 watts
  • Sistema Operativo: Fedora, Debian, Ubuntu, Gentoo
  • Costo aproximado: $100 USD

anuncio y especificaciones

Lenovo Skylight

Smartbook (o netbook) de Lenovo

  • Pantalla 10″
  • 10 hrs de batería
  • Procesador ARM Qualcomm Snapdragon 1 Ghz
  • 8 ó 20 GB memoria flash.
  • Wi-Fi, 3G
  • Costo aproximado: $450 USD

página oficial

Pero eso no es todo, en este año se espera la llegada de equipos con procesadores ARM de 2 o 4 núcleos a 2 Ghz de velocidad. El año pasado vimos la llegada de netbooks de $80 USD y este año también veremos nuevos equipos a precios muy económicos.

Videos HD en Linux?

31 diciembre 2009 Los comentarios están cerrados

Ver videos de alta definición en la PC ya es hoy en día una tarea muy común, ya sea en Blue-Ray o en algún sitio en la red. Desafortunadamente la aceleración de video en Linux sigue siendo un reto. La mayoría de los fabricantes de hardware no ofrecen el soporte que nos gustaría ver.

La aceleración de codecs de video como H.264, VC-1 o MPEG2 en resoluciones de alta definición como 720p o 1080p, puede ser una tarea ardua para los microprocesadores actuales. En general sin una tarjeta gráfica que ofrezca este tipo de aceleración, el procesador (o alguno de sus núcleos) puede llegar al 100% de uso, gastando valiosos recursos de cómputo y energía eléctrica. Y si no se cuenta con un procesador lo suficientemente poderoso, seguramente observaremos frecuentes saltos en el audio y video.

La mejor opción es contar con una tarjeta gráfica que soporte este tipo de aceleración, reduciendo el consumo de energía (alargando la batería en equipos móviles) y permitiendo realizar otras tareas de forma simultanea. También cabe mencionar que este tipo de aceleración es “independiente” de la aceleración 2D y 3D que soporte el driver y la tarjeta.

Una vez dicho esto, revisemos el soporte que ofrecen los drivers actuales por fabricante, en el caso de que soporte aceleración, se indicará el API utilizada y el hardware requerido:

Fabricante Driver Aceleración Completa API Hardware Requerido
ATI catalyst (propietario) SI VA-API > UVD 2

ati (open-source) NO


Nvidia nvidia (propietario) SI VDPAU, VA-API > PureVideo 2

noveau (open-source) NO

Intel poulson (propietario) SI VA-API Solo GMA 500

intel (open-source) NO


Broadcom crystalhd (open-source?) SI libcrystalhd Solo BCM970012

Recientemente Broadcom lanzó al mercado su acelerador BCM970012, que ya cuenta con soporte del reproductor multimedia XBMC y cuenta con un driver open-source. Este ultimo aún no ha sido integrado al código del kernel de Linux y cuenta con un firmware de 2.7MB. Una vez integrado podría significar un gran avance en la aceleración de video en Linux, siendo el único driver Open-Source en soportar esta tecnología.

Por otro lado el driver propietario de ATI (catalyst) tiene serios problemas para seguirle el ritmo de desarrollo de la plataforma Linux + Xorg, y frecuentemente no ofrece soporte para las últimas versiones de éstos.

Al mismo tiempo el soporte  que ofrece el driver poulson de Intel, fuera de las distribuciones Moblin o Ubuntu, es muy pobre.

Cuando se refiere a reproductores multimedia XBMC, parece ser una muy buena opción ofreciendo soporte para VDPAU y Broadcom Crystal HD, en cualquier caso es recomendable revisar: VA-API y VDPAU para revisar los reproductores multimedia que soportan estas APIs.

Guía de Tarjetas Gráficas 2010, lo que necesitas saber antes de comprar

18 diciembre 2009 2 comentarios

Actualización 13 de Octubre de 2011:

Ya existen una nueva versión mejorada y extendida de esta guia:

Guia de Tarjetas Gráficas 2011

Todo lo que querías saber sobre tarjetas de video y nunca te animaste a preguntar. Si te confunden todos esos términos como PCI-Express, DirectX, GDDR3,… está guía es para tí. En esta pequeña guía explicaré el funcionamiento y características básicas de una tarjeta de video, para esto la he dividido en las siguientes secciones:

  • Introducción
  • Características de Hardware
    • Interfaz
    • Alimentación y consumo de energía
    • Puertos de video
    • El chip de video o GPU
      • Bus y memoria de video
      • Aceleración 2D y 3D
      • Aceleración de códecs de video
    • Multi-GPUs
  • Características de Software
    • APIs
    • Drivers
    • Reproducción de video

Introducción

Una tarjeta de video es en si mismo una pequeña computadora, cuenta con sus propios medios para procesar, almacenar y transportar información. Casi toda la información que se manipula es de tipo gráfico pero existen excepciones como veremos un poco más adelante.

Cuando compramos una tarjeta de video es importante tener en mente el uso que le vamos a dar. Para la mayoría de los usuarios que no gustan de ver películas en la PC o jugar los títulos más nuevos de videojuegos, es suficiente con una tarjeta gráfica económica y sencilla. Los cinéfilos buscarán una tarjeta que pueda reproducir videos en alta definición, y  los videojugadores tal vez estén interesados en una poderosa y costosa tarjeta gráfica.

Características de Hardware

Interfaz

Todas las tarjetas de video se conectan físicamente al equipo mediante alguna ranura ya sea PCI, AGP, o PCI-Express, es importante revisar el tipo de ranura de video que soporta nuestra tarjeta madre (motherboard) pues no todas son compatibles entre sí, y si no tenemos cuidado podríamos terminar comprando una tarjeta que no funciona con nuestro equipo. Los tipos de ranuras son las siguientes:

Nombre Velocidad Fecha de aparición
PCI 133MB/s 1993
AGP 1x (1.0) 266MB/s 1997
AGP 2x (1.0) 533MB/s 1997
AGP 4x (2.0) 1066MB/s 2000
AGP 8x (3.0) 2133MB/s 2000
PCI-Express 8x (1.0) 2 GB/s 2004
PCI-Express 16x (1.0) 4 GB/s 2004
PCI-Express 8x (2.0) 4 GB/s 2007
PCI-Express 16x (2.0) 8 GB/s 2007
PCI-Express 8x (3.0) 8 GB/s 2010
PCI-Express 16x (3.0) 16 GB/s 2010

PCI-Express 16x

Hoy en día prácticamente todas las tarjetas de video nuevas son PCI-Express. Las tarjetas PCI, PCI-Expres y AGP no son compatibles entre sí, pero si son compatibles entre versiones diferentes, por ejemplo el PCI-Express 2.0 es compatible con el PCI-Express 1.0.

Alimentación y consumo de energía

El consumo de energía puede ser importante al pagar nuestro servició de energía eléctrica. Las fuentes de alimentación más comunes para PC son de 350-450 Watts pero para ciertas tarjetas de video podríamos requerir fuentes de 600 o hasta 1000W!!. Si la fuente no soporta el consumo es muy posible que se queme. Las tarjetas de mayor consumo generalmente requieren de conectores de alimentación especiales como los siguientes:

Como en todos los circuitos electrónicos, al aumentar el consumo de energía, también aumentará la temperatura y la disipación térmica, esto implica que requerirás un gabinete más grande y mejor ventilado. En algunos equipos la disipación térmica y el consumo energético son críticos, como es el caso de un HTPC que cuentan con fuentes de alimentación de muy poca capacidad 100-250W y los gabinetes son pequeños y pobremente ventilados.

Al comprar una tarjeta de video no solo es recomendable revisar el consumo máximo de energía (publicado por el fabricante), sino también el consumo de energía mientras la tarjeta no realiza tarea alguna, pues la mayor parte del tiempo tu tarjeta se encontrara en este estado. Por ejemplo, de acuerdo al sitio X-bit labs tenemos el consumo de energía de las siguientes tarjetas:

Consumo de energía en Watts

Aunque estas dos tarjetas tienen un desempeño muy parecido el consumo de energía varia considerablemente. Es posible apreciar como la 9600GT consume más de 20W incluso cuando no realiza tarea alguna, mientras que la GT240 ofrece un consumo de menos de 20W en el uso diario, excepto en videojuegos.

Es recomendable revisar sitios de Internet como X-bit labs que realizan reseñas detalladas sobre el consumo energético de las tarjetas de video que van apareciendo en el mercado. Al 22 de Marzo de 2010 esta es la lista de tarjetas y su consumo energético: Lista.

Puertos de video

Existen varios puertos de video que permiten conectar la tarjeta gráfica al monitor o a la TV, eh aquí una lista de los más comunes:

VGA (1987)
HDMI (2002)
s-video (1987)
s-video (1987)

DisplayPort (2008)

Cuando se habla de puertos de video, lo más importante es el dispositivo que deseas conectar, por ejemplo si deseas conectar tu HDTV a la PC, deberías asegurarte que la tarjeta tenga el puerto HDMI. El puerto más común en los monitores actualmente es DVI. Si deseas conectar 2 o más monitores deberás asegurarte que tu tarjeta cuente con el soporte necesario para esto.

El chip de video o GPU

Todas las capacidades de nuestra tarjeta de video dependen de un pequeño chip llamado Unidad de Procesamiento Gráfico o GPU (por sus siglas en inglés). Algunos ejemplos son:

  • ATI Radeon HD5750
  • Nvidia Geforce GT250

Podemos ver que los nombres están compuestos por 3 datos: [Fabricante] [Familia] [Modelo]. Lo primero que debemos revisar al comprar una tarjeta de video es el GPU. Puedes encontrar información detallada sobre GPUs de ATI, Nvidia e Intel en las siguientes ligas (en inglés):

Comparison of AMD graphics processing units

Comparison of Nvidia graphics processing units

Intel GMA

Bus y Memoria de video

El tipo y cantidad de memoria es en la mayoría de los casos irrelevante al elegir una tarjeta de video. Por ejemplo, en algunos casos una tarjeta con 1GB de video puede ser mucho más lenta que una que tiene tan solo 256MB. Es necesario elegir primero el GPU y depués fijarnos en la memoria.

Los tipos de memoria que podemos encontrar en una tarjeta de video (y su fecha de aparición en el mercado) son los siguientes:

  • DDR2 (2003)
  • DDR3 (2007)
  • GDDR3 (2003)
  • GDDR4 (2007)
  • GDDR5 (2008)

La letra G, al principio de los últimos tres, se refiere a Graphics, y son tipos de memoria especialmente diseñados para tarjetas de video, los dos primeros son los tipos de memoria comerciales que ya conocemos.

Algunos GPUs soportan varios tipos de memoria de video. Por ejemplo el ATI Radeon HD4650 soporta tres tipos de memoria: GDDR2, GDDR3 y DDR2, con cada tipo de memoria obtendremos un desempeño diferente para este mismo chip.

Saber el desempeño de la memoria de video requiere conocer la combinación:

cantidad * tipo * velocidad * ancho de bus

Donde la velocidad se mide en Mhz y el ancho de bus puede ser de 64 a 512 bits (actualmente) dependiendo del GPU. Una memoria muy rápida podría estar limitada por el cuello de botella del bus de datos.

Aceleración 2D y 3D

La aceleración 2D, se refiere a la aceleración de los elementos en 2 dimensiones que usamos todos los días en nuestro escritorio, como botones, menús, ventanas y el ratón. La mayoría de las tarjetas de video nuevas y no tan nuevas cuentan con la aceleración 2D necesaria y se puede considerar como un factor de poca relevancia.

La aceleración 3D, se refiere a la aceleración de objetos tridimensionales que son utilizados principalmente en videojuegos. Si no eres un videojugador, este no debería ser un factor importante al decidir la compra de una nueva tarjeta. Por el contrario si te gusta jugar los títulos más nuevos de videojuegos, deberás saber que el precio, tamaño y consumo de energía de la tarjeta casi siempre van de la mano con la aceleración 3D.

Cada videojuego tiene una  demanda diferente de aceleración 3D y de memoria de video, los juegos más recientes son los más demandantes. En casi todos los juegos, es posible reducir la calidad gráfica para evitar que se congele o se vea muy lento. La mayoría de los juegos se pueden jugar perfectamente a más de 45 cuadros por segundo o fps (de sus siglas inglés), algunos juegos de estrategia se pueden jugar a 30 fps o menos, mientras que algunos de primera persona requieren 60fps. Veamos el siguiente ejemplo:

Juego: Crysis, Calidad Media, resolución: 1024×768

Tarjeta gráfica Cuadros por segundo (fps)
AMD Radeon HD4670 61
AMD Radeon HD4550 28
AMD Radeon HD4350 24

En esta pequeña comparación podemos ver como el mismo juego con la misma configuración gráfica se comporta de forma diferente en cada uno de los GPUs de la lista. Claramente con la configuración de video que se esta manejando, que es bastante baja, no es posible jugar Crysis en el Radeon HD4350, 24fps es muy lento para un juego de primera persona, pero si es posible jugarlo con el Radeon HD4670 que es un muy poco más costoso.

Es difícil saber como se comportará un juego con cierta tarjeta gráfica, la mejor opción es revisar primero las reseñas en Internet antes de adquirir cualquier cosa. Algunos sitios muy recomendables son los siguientes (en inglés):

Puedes encontrar más reseñas por cada modelo de GPU en GPUReview.

Aceleración de codecs de video

Los codec’s de video son métodos en hardware o software que permiten comprimir y descomprimir videos digitales; por ejemplo mpeg-1, mpeg-2, H.264, VC-1 etc. En la actualidad todos los videos que usamos día con día  se encuentran comprimidos en algún formato y para visualizarlos se requiere que el archivo pase por un proceso de descompresión. En muchos casos este proceso puede ser sumamente demandante y es realizado en varias etapas.

Las tarjetas gráficas nuevas cuentan con aceleración de codecs de video, que permite que algunas o todas las etapas de la descompresión de ciertos codecs sean procesadas por el GPU. Esto permite ver videos más fluidos y con mejor calidad de imagen, además de reducir el consumo de energía del equipo.

Solamente los GPUs más nuevos cuentan con aceleración completa de codecs de video. Las siguientes tecnologías permiten tener aceleración de codecs de video:

Tecnologías como PureVideo o Unified Video Decoder han ido evolucionando, cada nueva versión soporta más y mejor aceleración de codecs.

La aceleración de codecs de video debe ser un factor importante a tomar en cuenta si deseas reproducir películas Blue-Ray en la computadora, o cualquier otro formato de alta definición.

Multi-GPUs

Si deseas conectar cuatro monitores, jugar uno de los juegos con los gráficos más impresionantes en muy alta definición, o simular la colisión de dos galaxias,  posiblemente desees colocar 2 o más tarjetas de video a tu PC.

Para lograr esto hoy en día solo existen dos tecnologías disponibles:

CrossFire de ATI ó

Scalable Link Interface de Nvidia

Actualmente solo es posible conectar en paralelo tarjetas de video del mismo fabricante y requieres de una tarjeta madre que soporte alguna de estas configuraciones.

Características de Software

APIs

Las APIs o Interfaces para Programación de Aplicaciones, sirven a los desarrolladores de software para tomar ventaja de la aceleración que ofrecen las GPUs. Muchos programas y juegos son escritos usando estas APIs, pero para que tu aplicación realmente sea acelerada (o en algunos casos, pueda correr) necesitas que la GPU soporte el API y la versión indicada de ésta. Los APIs utilizados actualmente son:

Nombre Versión más reciente Descripción
Direct3D 11 Parte del API de Microsoft DirectX, orientada a la aceleración de gráficos en 3D, utilizada principalmente en videojuegos para Windows
OpenGL 4.0 API del grupo Khronos para aceleración 2D y 3D, utilizada principalmente en videojuegos para Windows, Linux, Mac, telefonos celulares y otros
OpenCL 1.1 API del grupo Khronos para aceleración de software en general para GPGPUs, utilizada principalmente en simulaciones físicas
DirectX Video Acceleration 2.0 Parte del API de Microsoft DirectX para la aceleración de codecs de video, actualmente tecnologías como PureVideo y UVD utilizan esta API.
Video Acceleration API 0.3
API de sistemas Unix para la aceleración de codecs de video

Si tienes un juego que pide DirectX 10, pero tu tarjeta solo soporta DirectX 9, es posible que el juego no corra, o no sea acelerado al 100%, lo cual significa que el desempeño podría ser lento.

Drivers

Los drivers o controladores son pequeños elementos de software que permiten que tu sistema operativo reconozca algún dispositivo de hardware y pueda utilizarlo. Es necesario un controlador por cada componente de hardware de tu equipo.

En las tarjetas de video, los drivers juegan un papel muy importante no solo para que tu sistema reconozca la tarjeta, sino para que logres obtener la aceleración del API que necesitas (Si estas pensando en comprar una tarjeta de video y deseas utlizar algún sistema operativo como Unix o Linux, es necesario que revises el soporte de los drivers, pues actualmente el soporte de aceleración de codecs de video o 3d puede ser mala o nula en algunos GPUs).

La calidad de los drivers varia considerablemente y en ocasiones contienen errores que no permiten que el GPU acelere correctamente las aplicaciones que deseas. En estas situaciones es recomendable probar con la última versión de drivers ( o en algunos casos, las versiones anteriores) que puedes descargar directamente de la página de los fabricantes:

nvidia.com

ati.com

Estos drivers estan en continuo desarrollo, agregando soporte para nuevos GPUs, corrección de errores y mejoras. Es recomendable actualizar los drivers de vez en cuando. En ocasiones pueden hacer que la tarjeta gráfica funcione de forma más rápida y eficiente.

Reproducción de video

Poder aprovechar la aceleración de codecs de video puede no ser una tarea fácil, en algunos casos, requieres una combinación particular de: sistema operativo, driver, reproductor de video y archivo de video.

Esto se debe a que diferentes sistemas operativos utilizan diferentes APIs de aceleración de codecs de video y es necesario que el driver de video soporte este API, algunos drivers pueden contener errores que no permitan la aceleración, es necesario un reproductor de video que también soporte el API de aceleración de codecs del sistema operativo en uso y finalmente no todos los codecs de video son acelerados (es necesario revisar el soporte de codecs de los drivers o del GPU).

Es posible que esta situación mejore en el futuro, conforme esta tecnología se vaya haciendo más común.

Si deseas aprovechar al máximo la aceleración de codecs, es recomendable revisar el soporte de drivers y reproductores de video para el sistema operativo que usas, antes de adquirir una tarjeta gráfica.

Ojalá esta guía te haya sido de utilidad, espero tus comentarios, mejoras o correcciones

Actualización 13 de Octubre de 2011:

Ya existen una nueva versión mejorada y extendida de esta guia:

Guia de Tarjetas Gráficas 2011

Cómputo Eficiente: Diseñando Mejores Chips – Parte I

29 septiembre 2009 Los comentarios están cerrados

En esta miniserie trataré de resumir a grandes rasgos el transfondo cultural, económico y tecnológico que ha dado como fruto a las nuevas tecnologías y productos que comenzamos a ver en el mercado de cómputo como son: netbooks, las familias de procesadores Sun Microsystems UltraSPARC Tx, Fujitsu SPARC64 Venus, IBM Power7, Cell, Intel Atom, Larrabee y ARM Cortex-A9, GPGPU’s de ATI e Nvidia, y OpenCL.

Durante muchos años la industria de microprocesadores nos quiso vender la idea de que lo único que importaba al comprar una nueva computadora eran los Ghz que ofrecía, y desde hace unos 4 años nos vienen diciendo que lo importante ahora es el número de núcleos. Sin embargo las condiciones del mercado han traído a una nueva generación de usuarios, más preocupados por el costo, el gasto energético, la duración de la batería en equipos móviles y la velocidad con la que sus aplicaciones responden a sus comandos. Provocando una gran innovación, la creación de nuevos mercados y de nuevos productos radicales.

“El número de transistores que puede ser colocado en un chip se duplicará cada 2 años”

Gordon E. Moore

Esto es lo que nos dice la ya famosa ley de Moore, no obstante, aún no sabemos que hacer con todos estos transistores, ¿Cuál es la forma más eficiente de usar estos transistores para procesar X tipo de información? aún nadie lo sabe.

Los Ghz y el procesamiento secuencial
La máquina de Turing nos muestra una forma sencilla de escribir cualquier algoritmo, una operación después de la otra, llevándonos a lo que se conoce como programación secuencial; el paradigma de desarrollo de software más exitoso, adoptado por la industria del software a nivel mundial y donde se han invertido hasta hoy en día billones de dolares en la creación de software bajo este principio elemental.

Esto impulso a los fabricantes de chips a crear procesadores cuyo objetivo principal era ejecutar lo más rápidamente posible este tipo de programas. Todo el diseño de estos chips se basaba en su capacidad para ejecutar una o más instrucciones cada vez que un reloj central hacía un tick-tack, y buscando que cada vez, todo el sistema se moviera al ritmo de relojes más y más rápidos, llevándonos a una vertiginosa carrera por frecuencias de reloj más altas. Más Ghz.

Ejecutar este tipo de programas no resultó fácil, ni tampoco eficiente. Diseñadores de procesadores tuvieron que recurrir a toda una serie de ingeniosos métodos para ejecutar instrucciones más rápidamente: pipelines, out of order execution, caches, branch prediction, speculative execution,… que se enfocaban más en “administrar” el código que en realizar trabajo útil para el programador. Al mismo tiempo, conforme aumentaban las frecuencias de operación, así también aumentaban la temperaturas de los chips, esto provocado por los constantes cambios de estado de los componentes, al ritmo del reloj. Requiriendo continuamente soluciones de enfriamiento más eficientes.

Finalmente las altas temperaturas desaceleraron el ritmo con el que avanzaban los Ghz. Debido no solamente a las altas frecuencias, sino también a las crecientes corrientes de fuga provocadas por las escalas de fabricación tan increíblemente pequeñas de los nuevos chips, a lo que se conoció como la barrera térmica.

Esta nueva limitación provocó grandes fracasos en el mercado de microprocesadores como se vio con el Intel Pentium 4/ Tejas y forzó grandes cambios en la industria. Como podemos apreciar en la última conferencia de Hot Chips 2009, el procesamiento secuencial a muerto, la última linea de procesadores enfocándose en este tipo de arquitecturas, IBM Power, ha preferido dar un cambio de rumbo e ir en la dirección del Throughput-Computing.

Rumbo al Open Hardware

9 septiembre 2009 Los comentarios están cerrados

El Open-Hardware busca llevar las ideas y principios del modelo Open-Source (software) al mundo de los componentes electrónicos y el hardware en general. Sin embargo, el llevar acabo esta idea no ha sido tan fácil. Comencemos por revisar algunos puntos relevantes sobre las diferencias que encontramos en los diversos procesos de generación y consumo de hardware y software:

  • El Open-Source tiene la ventaja de poder crear copias de software a un costo virtualmente nulo, mientras que crear “copias” de un objeto físico puede ser un proceso muy costoso, no solo por los materiales involucrados y la energía requerida, sino también por la necesidad, en muchos casos, de enormes maquinarias. Al final la producción de hardware se ve afectada por la economía de escala.
  • El fabricar nuevos componentes de hardware no es gratis, en el software solo se requiere invertir tiempo de programación y corrección de errores, pero los errores de hardware asociados a: diseño, calibración de equipos,… producen dispositivos defectuosos que en realidad cuestan.
  • Existen limitaciones de apertura (openness), no existe una licencia de copyright que protega completamente al Open-Hardware ¿Qué tan abierto puede ser un componente de hardware? Bueno, hoy en día se habla de 4 niveles, pero uno de los problemas que nos interesa radica en que, aunque se cuente con todos los diseños y esquemas de un dispositivo, tal vez no se pueda fabricar debido a que requiere una máquina muy especial que esta protegida por las patentes de alguna empresa, o simplemente no se cuenta con los diseños para fabricar la máquina requerida. Lo que a final de cuentas llevará a que solo aquellos que disponen de la máquina podrán beneficiarse de éstos diseños, desmotivando las aportaciones de la comunidad.
  • Finalmente las comunidades de Open-Hardware tendrá que afrontar las limitaciones tecnológicas y económicas que implica fabricar un objeto real, pues los procesos de fabricación, costo de materiales, … podría llevar a diseños fallidos.

Estos son algunos de los problemas que se tendrán que resolver para volver al Open-Hardware una verdadera alternativa a los productos comerciales, sin embargo también podemos hacer notar el parecido entre los procesos de fabricación de hardware y software:

  • La mayoría del hardware, sobre todo elementos electrónicos, son programados y diseñados utilizando herramientas de software (CAD, compiladores,…).
  • Grandes compañías de manufactura han ahorrado millones de dolares al simular sus productos antes de fabricarlos. Hoy en día existen muchos servicios de renta de clusters disponibles en la red y no es necesario robar un banco para ensamblar una computadora adecuada.
  • ¿Realmente es tan importante proteger la propiedad intelectual de la comunidad mediante herramientas como licencias de copyright, patentes,…? bueno hay personas que opinan que NO. En realidad no es tan fácil crear un clon (fork) de un proyecto de software open-source exitoso. No solo se requiere un grupo de programadores expertos que conozcan el código a profundidad (herramientas, diseño, implementación, partes problemáticas, etc, etc) sino también de una comunidad al rededor de tu producto, que realiza un gran trabajo de marketing, soporte, documentación,.. En muchas situaciones es más barato cooperar que competir. No quiero ser demasiado optimista pero creo que es posible que proyectos de Open-Hardware sobrevivan y sean exitosos sin la necesidad de una gran protección de propiedad intelectual. No obstante creo que siempre es bueno tener un respaldo que permita a la comunidad tener la confianza de aportar sin el miedo de ser “robados”, como lo han demostrado los proyectos de software libre.

Muchas compañías, organizaciones y comunidades alrededor del mundo están en busca del modelo más adecuado para repetir el éxito del software libre y open-source principalmente en el ámbito de los componentes electrónicos.

Si estas interesado en el tema te recomiendo revisar la sección de Hardware y Electrónica en Recursos Gratuitos y los siguientes links:

The TAPR Open Hardware Licence
David Rowe: Open Hardware business models
Introducing the Open Source Hardware Central Bank
Build It. Share It. Profit. Can Open Source Hardware Work?