Lineamientos generales [U1] (fundamentación)
Los ingenieros que entienden cómo funcionan y cómo se diseñan tanto el hardware como el software son capaces de lograr desarrollos informáticos más eficientes y menos propensos a errores. Por consiguiente, un conocimiento de las arquitecturas de computadoras permite entender cómo el software se adapta al hardware y viceversa.
Las primeras referencias históricas de las arquitecturas de computadora fueron documentadas en la correspondencia entre Charles Babbage y Ada Lovelace, describiendo una “analytical engine”. En la misma época1936, Konrad Zuse realizo dos solicitudes de patente describiendo el ordenador Z1, donde las instrucciones de la máquina podían almacenarse en la misma memoria utilizada para los datos, podemos entender este hecho como el nacimiento del concepto de programa almacenado. Otros dos ejemplos tempranos e importantes son: el documento de John von Neumann de 1945, primer borrador de un informe sobre el EDVAC, que describía una organización de elementos lógicos; y Alan Turing, con la propuesta de calculadora electrónica “Automatic Computing Engine”, también de 1945. Estos antecedentes y la obra de Lyle R. Johnson y Frederick P. Brooks, dieron lugar en la literatura informática al término “Arquitectura de Computadoras”, este hecho se remonta a 1959.
El propósito de esta asignatura es que el estudiante sea capaz de diseñar una arquitectura de computadoras y que considere parámetros como el rendimiento, el consumo de energía, los costos en relación con el rendimiento esperado, y la fiabilidad. Para ello, se deben considerar aspectos como: el diseño del conjunto de instrucciones, la organización funcional, el diseño lógico y la implementación. La implementación involucra diseño de componentes, integración de compontes y energía. Asimismo, la optimización del diseño requiere familiaridad con los compiladores, los sistemas operativos y el diseño lógico; conocimientos previos adquiridos en las asignaturas correlativas.
Para el proceso de ingeniería de diseño de hardware se consideran el conjunto de instrucciones (ISA), dado que es la interfaz entre el software y el hardware de la computadora; una vez definido un conjunto de instrucciones y una microarquitectura, se desarrollar una máquina práctica.
Los objetivos del diseño, generalmente intercambian estándares (potencia versus rendimiento, costo, capacidad de memoria, latencia y el desempeño). Algunas veces son necesarias otras consideraciones, como las características, el tamaño, el peso, la confiabilidad y la capacidad de expansión.
El modelo de rendimiento de una CPU se describe a menudo en términos de IPC. Esto mide la eficiencia de la arquitectura en cualquier frecuencia de reloj. El rendimiento se ve afectado por una amplia gama de opciones de diseño, por ejemplo, la canalización de un procesador generalmente empeora la latencia, pero mejora el rendimiento. Mientras que el rendimiento de un multi-thread se describe en términos de TLP, lo que mide la eficiencia de la ejecución de múltiples hilos.
Las consideraciones anteriores sobre el diseño y los avances de la arquitectura de computadoras han dado lugar a mejora de 30 veces en el desempeño de los ordenadores en los últimos 25 años.
La ley de Moore, en lo referente a la frecuencia, está en vías de agotarse; debido a una combinación de limitaciones físicas y factores económicos, las arquitecturas de computadoras son oportunas para contribuir a mejoras en el desarrollo de los procesadores.
Las oportunidades de desarrollo, para las arquitecturas, se presentan en la industria actualmente en:
ü los dominios específicos, pueden proporcionar un rendimiento equivalente con beneficios de desempeño de tres o más generaciones históricas, de acuerdo con la ley de Moore.
ü implementaciones de código abierto, que tienen ahora una presencia y duración mucho mayor. Esto es debido a la desaceleración de la Ley de Moore, por lo que emergen más oportunidades para la optimización y el refinamiento continuo.
ü nuevas tecnologías y sistemas no homogéneos, por lo que es fundamental reexaminar las decisiones de diseño existentes.
Por todo lo expuesto, esta asignatura se centra en el diseño de hardware haciendo énfasis en los métodos de la ingeniería. Donde el objetivo es producir sistemas eficientes y fiables que cumplan con las limitaciones y estándares de rendimiento preestablecidos en situaciones preestablecidas. Se trata fundamentalmente de un proceso orientado a la consecución de objetivos, que busca alcanzar fines específicos conocidos utilizando medios bien entendidos. Cada sistema diseñado es una herramienta hecha para servir a los fines de su usuario. Siendo los temas dominantes la previsibilidad, la fiabilidad, la estabilidad, la controlabilidad y la precisión.