El objetivo básico de la asignatura “Ingeniería de Computadores I” es dar una visión, lo más completa posible, de los fundamentos de la arquitectura, organización y diseño de un computador.
La arquitectura de computadores estudia la estructura y comportamiento de los diferentes módulos funcionales de un computador y como interaccionan entre sí para proporcionar las necesidades de procesamiento de los usuarios. Es decir, su finalidad es considerar los atributos de un computador que son visibles a un programador a nivel de lenguaje máquina. Ejemplos de estos atributos son el repertorio de instrucciones, los mecanismos de E/S y las técnicas de direccionamiento de memoria.
La organización de los computadores se ocupa de la descripción de sus unidades operacionales y de como se conectan para obtener una arquitectura dada. Su interés se centra en cuestiones, que son transparentes al usuario de un computador, tales como: las interfaces entre el computador y los periféricos, la tecnología de memoria y las señales de control utilizadas, etc.
Los resultados de aprendizaje más significativos, relacionados con las competencias cognitivas específicas son los siguientes:
Ayudar a adquirir las competencias genéricas y específicas que debe tener el futuro ingeniero. Comprender la organización de la arquitectura clásica de von Neumann y sus principales unidades funcionales. Entender cómo un computador recupera las instrucciones de memoria y las ejecuta.
Comprender las limitaciones de la aritmética de un computador y los efectos de los errores en los cálculos. Apreciar el impacto de la unidad aritmético-lógica en el rendimiento global de un computador.
Ser capaz de describir los principios del sistema de gestión de memoria. Comprender por qué surgen errores en el sistema de memoria y cómo se resuelven.
Saber comparar diferentes implementaciones del camino de datos de un procesador. Conocer el proceso de generación de señales de control utilizado control cableado o microprogramación.
Explicar cómo las interrupciones se utilizan para implementar el sistema de entrada/salida y la transferencia de datos. Identificar los diferentes buses que existen en un computador. Conocer las formas de acceso a un disco magnético.
Ser capaz de explicar por qué un diseñador crea diferentes formatos de instrucción. Demostrar cómo las estructuras de programación de alto nivel se implementan a nivel de lenguaje máquina.
Entender las razones y estrategias para la existencia de los diferentes tipos de arquitectura de un computador. No tener problemas en identificar los componentes de un computador moderno.