Pido disculpas porque me ha llevado bastante tiempo responder. Tomé un “descanso Quora”.
En estos días, la arquitectura de la computadora es un tema amplio, por lo que no hay una respuesta única que se ajuste a todos los posibles temas de investigación. Al final, el objetivo de un arquitecto de computadoras es construir una máquina que funcione bien en la tarea en cuestión, con el hardware disponible para realizar esa tarea. (Y en realidad, hay más de un arquitecto involucrado en una computadora moderna).
Me considero un arquitecto de computadoras, en un equipo de arquitectos talentosos. Mi conocimiento de circuito de nivel más bajo se limita a los cursos básicos de VLSI, microelectrónica y circuitos que tomé como BSEE en la universidad, más lo que he leído a lo largo de los años, o que mis compañeros de trabajo me han enseñado. Conozco los conceptos básicos sobre cómo funcionan las puertas, los costos de propagación de señales, etc. Pero, no soy un experto allí. Por otro lado, pasé mucho tiempo aprendiendo cómo se construye el software, cómo funcionan realmente los compiladores y el código que se ejecuta en la máquina.
- ¿Cuál es el equivalente moderno de lo que era Xerox PARC hace décadas?
- Tengo problemas para escribir trabajos de investigación. ¿Qué tengo que hacer?
- ¿Cuáles son las áreas fascinantes de la informática? ¿Cuáles son algunas de las áreas más avanzadas técnicamente de la informática?
- ¿Cuál es el mejor servicio de indexación en línea para la investigación en informática?
- ¿Qué tan bueno es el curso de informática en RIT?
Un arquitecto necesita comprender los puntos sobresalientes de cada nivel de la pila, desde lenguajes de programación de alto nivel hasta transistores y cables. Eso no significa ser un experto en todos esos niveles, sino conocer las dinámicas e interacciones básicas y tener expertos disponibles para ayudarlo a hacer las llamadas difíciles.
Para el tema específico de investigación , especialmente la investigación académica , lo que necesita saber bien probablemente depende del tema de investigación. Por ejemplo, gran parte de la investigación fundamental sobre las máquinas VLIW ILP se produjo en la década de 1980, pero todavía es aplicable a los procesadores submicrónicos en la actualidad. Gran parte de la investigación involucró técnicas de compilación para identificar y extraer estáticamente el paralelismo de los programas, de modo que se pudieran construir máquinas simples de problemas paralelos que aún funcionaran bien.
No necesita muchos conocimientos de VLSI de bajo nivel para investigar esa familia de arquitecturas en ese nivel; más bien, comienza con un marco (VLIW) impulsado por alguna noción de costo de hardware, y observa las implicaciones que se derivan de eso, e investiga los algoritmos y los elementos necesarios para que sea práctico. Ahora, si desea proponer una forma de cambiar el marco para que se adapte mejor al compilador y lo anterior, algunos conocimientos sobre cómo funciona la tubería y lo que es costoso / poco práctico frente a lo que no le permitirá hacer mejores propuestas. A menudo puede hacerlo casi tan bien trabajando con un experto en esos detalles, deconstruyendo el problema que está tratando de resolver y construyendo una solución potencial en colaboración.
Ahora, para identificar los cuellos de botella que conducen a nuevas microarquitecturas, necesita alguna noción de cuáles son los cuellos de botella, o qué cuellos de botella podrían surgir dadas las tendencias actuales. Pero muchas de esas cosas pueden abstraerse. Los cables serán más costosos en comparación con los transistores. La brecha de ancho de banda entre la memoria externa y el cómputo continuará aumentando. Y así. Ninguna técnica de circuito específica negará esas tendencias. Puede desplazarlo a un lado u otro de la línea de tendencia, pero no cambiará la dirección general.
(Aunque, supongo que podría argumentar que algunas técnicas de diseño / espacios de diseño lo hacen más susceptible a algunas tendencias que otras. Si se enfoca en la computación insensible a la potencia de alto rendimiento en comparación con la computación de eficiencia de energía de pico de batería, por ejemplo. Pero incluso esos dominios dispares convergen con el tiempo).
Por lo tanto, la investigación de arquitectura realmente necesita conocer las macro tendencias y sus implicaciones. Dentro de ese marco, usted investiga cómo estructurar una máquina que sea resistente a las tendencias negativas y aproveche las tendencias positivas.
Tener un nivel inferior de conocimiento mejorará su capacidad de comprender y anticipar las tendencias. Para las realizaciones concretas de arquitecturas propuestas, le permitirá hacer mejores compensaciones microarquitectónicas en esas realizaciones concretas. Pero, en general, si comprende las tendencias y tiene acceso a otros expertos en dominios para intercambiar ideas específicas, es mejor tener una visión general de los problemas que está tratando de resolver y las tendencias asociadas con las piezas que podrías usar para resolver los problemas.
Me gusta el ejemplo de Quora User de lo que puede salir mal cuando un microarquitecto carece de conocimiento de circuitos, o al menos la conciencia de la falta de conocimiento. Está bien no ser un experto en todo; sin embargo, no está bien pensar que sabes todo incluso cuando no lo sabes. Personalmente confío en la experiencia de los diseñadores que me rodean y de mis co-arquitectos que tienen un mejor conocimiento de los circuitos. Complemento su conocimiento superior de circuitos con mi experiencia más sólida en software y sistemas. Juntos, formamos un equipo muy fuerte.