Standard Devices
-Flat-Screen Displays:
Los modernos displays de pantalla plana se utilizan en pantallas de teléfonos móviles y en televisores y monitores de gran tamaño. Están fabricados con transistores y condensadores dispuestos como chips mediante máscaras de fotolitografía y procesos gaseosos. Para producir píxeles que emiten luz roja, verde y azul se utilizan muchos elementos raros como itrio, lantano, terbio, praseodimio, europio, disprosio y gadolinio. Algunos de estos elementos son tan raros que solo se pueden extraer en uno o dos lugares. Se han empleado diversas combinaciones específicas de electrónica y elementos como "tecnologías" de pantalla, incluyendo TFT. La más reciente al momento de la redacción es la OLED (Diodo Orgánico de Emisión de Luz).
-Graphics Cards:
En los años 80, los gráficos eran simples: se asignaba una zona de memoria para representar los píxeles en la pantalla, donde los programas de usuario escribían directamente. Un chip gráfico leía esta memoria y generaba comandos de barrido CRT para el monitor. Hoy en día, la demanda requiere que las GPUs (Unidades de Procesamiento Gráfico) no solo iluminen píxeles, sino que rendericen complejas formas 2D y 3D sin usar la CPU.
Para esto, las GPUs evolucionaron desde las unidades de visualización visual (VDU) de los 80, moviéndose hacia renderizar triángulos 3D con texturas tipo sprite y aplicando modelos de iluminación sofisticados. En las últimas décadas, las capacidades visuales de las GPUs han avanzado enormemente, acercándose a representaciones fotorrealistas en tiempo real, impulsadas por la Ley de Moore.
Tradicionalmente, las GPUs se conectan a buses como PCI, AGP o PCIe en la placa base, creciendo físicamente de pequeños chips a tarjetas completas. Recientemente, hay una tendencia a integrarlas nuevamente en el mismo chip que la CPU, especialmente en PCs empresariales donde los gráficos no son críticos.
Las tarjetas gráficas utilizan DMA para acceso directo a memoria, permitiendo operaciones rápidas como cargar imágenes desde RAM principal a la GPU. Originalmente diseñadas para acelerar OpenGL y DirectX, las GPUs ahora implementan extensiones de estos lenguajes gráficos y permiten shaders personalizados (programas que manejan aspectos visuales de objetos 3D), facilitando a diseñadores y estudios crear efectos visuales únicos.
En la actualidad, las GPUs funcionan como potentes procesadores paralelos con sus propios conjuntos de instrucciones, moviendo los shaders específicos de gráficos al software. Interfaces como OpenGL y DirectX se implementan ahora en software, generando código máquina que se ejecuta en la GPU para optimizar rendimiento y flexibilidad gráfica.
-Sound Cards:
Las tarjetas de sonido modernas no generan señales como los chips de sonido retro, como el SID. En su lugar, manejan el flujo de señales de onda de sonido digital cuantizadas. Esto ha llevado a la pérdida de los efectos sonoros característicos y la cultura musical de las computadoras, ya que la música de juegos modernos a menudo utiliza grabaciones ordinarias de orquestas o bandas de rock en lugar de música generada por computadora. Similar a las tarjetas gráficas, las tarjetas de sonido están controladas por el sistema operativo, por lo que los programadores de usuario rara vez ven su arquitectura detallada.
Una tarjeta de sonido moderna se compone principalmente de convertidores digital-analógico (DACs), y es posible construir una usando DACs disponibles en dispositivos como Labjack, radios definidas por software o Arduino Due. Las tarjetas de sonido profesionales se optimizan para baja latencia, alta calidad de sonido y múltiples canales, mientras que las tarjetas de consumo se orientan a ser más económicas. El oído humano puede percibir frecuencias hasta aproximadamente 20 kHz, por lo que se utiliza una tasa de muestreo de al menos 40 kHz para una representación precisa del sonido. Frecuentemente se usa una tasa de muestreo de 48 kHz debido a su cercanía a una potencia de 2 y para proporcionar un margen de maniobra. Los sistemas profesionales pueden usar tasas de muestreo aún más altas para minimizar errores audibles.
El hardware de las tarjetas de sonido incluye habitualmente un búfer circular para cada canal, junto con los DACs que leen o escriben datos en él. Un búfer circular gestiona de manera eficiente la escritura y lectura de datos para evitar interrupciones, ajustando el tamaño del búfer para equilibrar la latencia y evitar interrupciones en la reproducción. Las tarjetas de sonido se conectan al bus del sistema, generalmente utilizando buses como PCI para tarjetas internas, o USB y Firewire para tarjetas externas. Los protocolos de E/S de las tarjetas de sonido varían según el fabricante y a menudo son propietarios, siendo necesario para los desarrolladores de controladores de código abierto realizar ingeniería inversa para proporcionar APIs de software compatibles, como ALSA.
-Keyboards and Mice:
En contraste con los teclados de los años 1980 que eran mapeados en memoria, los teclados modernos contienen pequeñas computadoras embebidas que realizan varias funciones. Similar a una aplicación típica de Arduino, estas computadoras embebidas gestionan la matriz de pulsaciones de teclas, las convierten en códigos de tecla y los transmiten a través de un puerto serie virtual utilizando el protocolo USB. De manera similar, los ratones ópticos modernos realizan procesamiento de visión artificial en tiempo real, conocido como flujo óptico, directamente en sistemas embebidos internos dedicados, una tarea difícil de lograr rápidamente en software y que sigue siendo un área activa de investigación.