¿Qué áreas de la informática involucran más trabajo de hardware?

Las respuestas sobre todo sufren de varios problemas que giran principalmente por una desviación de la definición … la gente ha llegado a entender que la informática se refiere a la programación. Esto es defectuoso en muchos niveles: un cerebro humano es una máquina de procesamiento de información, como lo es su PC. Cualquier cosa que incluya EE y CS, teoría de sistemas e incluso neurociencia está íntima e inextricablemente ligada a la informática. El diseño de microprocesadores y microcontroladores o memoria o periféricos o placas, dispositivos digitales y analógicos, trabajando con FPGA, procesadores neuronales, computación masivamente paralela, CUDA, automatización, sistemas de control, transmisión de datos, adquisición y procesamiento de datos (DSP) son todos dominios de la informática e ingeniería donde trabajas con hardware a diario. Incluso modelar el flujo de electrones en diferentes materiales y estudiar un poco de ciencia de los materiales es parte de esto (investigar tecnologías para la miniaturización de las CPU). La lista es casi interminable.

En términos generales, los avances de hardware admiten lo que muchas personas están haciendo en software. Piense en términos de gestión de memoria, manejo de procesos, comunicaciones y gráficos. Todos ellos comenzaron como código de nivel de aplicación y lentamente se desviaron por la pila hasta que estuvieron, al menos en parte, en hardware.

Probablemente, lo más importante que veo que las personas implementan y vuelven a implementar hoy en día es la administración de datos de una manera más sofisticada que solo abordar la memoria.

Firmware
Sistemas embebidos.

Iba a decir controladores de kernel, pero los sistemas operativos modernos resumen el hardware bastante bien.

Escribir en lenguaje ensamblador es probablemente la mejor manera de conocer el hardware, especialmente si el rendimiento es un problema. Irónicamente, los procesadores más nuevos tienen tanta canalización y almacenamiento en caché, que el compilador probablemente puede hacer un mejor trabajo en la optimización que un humano, así que elija un sistema más antiguo, como un 68000. Una vez hice un gran proyecto intensivo en números reales en un 68000 con un 68081 coprocesador matemático, y se trataba de evitar tocar la memoria principal, contar los ciclos de reloj y organizar las instrucciones para optimizar mantener ocupado el coprocesador.