- Grado en:
- Ingeniería de Computadores
- Asignatura:
- Fundamentos de computadores
- Asignatura en inglés:
- Introduction to Computers
- Curso y cuatrimestre:
- 1º (2º Cuatrimestre)
- ECTS:
- 9
- Tipología:
- Básica
- Idioma de impartición:
- Español
- Módulo:
- Materias básicas
- Materia:
- Informática
- Departamento:
- Arquitectura de Computadores y Automática
- Coordinador:
- José Manuel Mendías Cuadros
- Repertorio de instrucciones.
- Diseño del procesador. Segmentación.
- Programación de bajo nivel en un lenguaje imperativo.
- Programación en ensamblador.
- Interfaz HW/SW.
Tema 1: De sistema digital a computador.
- Circuitos de propósito específico vs. general.
- Modelo de Von-Neumann.
- Arquitectura vs. estructura.
- Concepto de código ensamblador.
Tema 2. Arquitectura del procesador.
- RISC-V ISA.
- Modelo de memoria.
- Registros.
- Modos de direccionamiento.
- Repertorio de instrucciones base RV32I.
- Extensión RVM.
- Extensión RVF.
- Arquitecturas RISC vs. CISC.
Tema 3. Programación en ensamblador.
- Elementos de un programa en ensamblador.
- Pseudo-instrucciones.
- Tipos de datos, variables y constantes.
- Arrays.
- Estructuras.
- Expresiones.
- Programación estructurada: bloque lineal, condicional e iterativo.
- Programación procedural: paso de parámetros, llamada y retorno.
- Gestión de la pila y salvado de registros.
- Anidamiento, recursividad y gestión del marco.
- Flujo de desarrollo y ejecución de aplicaciones.
Tema 4. Diseño del formato de instrucción.
- Tipos de formato.
- Codificación de campos.
- Ensamblaje y desensamblaje.
Tema 5. Diseño monociclo del procesador.
- RISC-V de arquitectura reducida.
- Diseño de la ruta de datos.
- Diseño del controlador.
- Coste y tiempo de ciclo.
Tema 6. Diseño multiciclo del procesador.
- Diseño de la ruta de datos.
- Diseño del controlador.
- Ciclo de instrucción.
- Coste y tiempo de ciclo.
- Métricas de rendimiento: tiempo de ejecución, CPI, MIPS, MFLOPS.
- Speedup.
- Benchmarking.
Tema 7. Diseño segmentado del procesador.
- Conflictos: estructurales, de datos y de control.
- Diseño de la ruta de datos sin gestión de conflictos: registros de segmentación.
- Soluciones SW de conflictos: reordenación de código e inserción de NOP.
- Soluciones HW de conflictos: anticipación, parada y predicción de saltos.
- Diseño de la ruta de datos con gestión de conflictos.
- Coste y tiempo de ciclo.
Tema 8. Excepciones.
- Excepciones vs. interrupciones.
- Modos de servicio.
- RISC-V ISA privilegiado.
- Modos de privilegio.
- Registros de control y estado.
- Instrucciones privilegiadas.
- Rutinas de tratamiento de excepción.
- RISC-V de arquitectura reducida con gestión elemental de excepciones.
- Rediseño de los procesadores monociclo, multiciclo y segmentado.
Tema 9. Uso básico del sistema operativo mediante la línea de comandos.
- Concepto de sistema operativo.
- Carga y ejecución de un programa.
- Interfaz gráfica vs. línea de comandos.
- Windows vs. Linux.
- Interprete de comandos.
- Organización de archivos y directorios.
- Propiedad y permisos.
- Variables de entorno.
- Programas y procesos.
- Redirección de E/S.
- Scripting.
- Compilación y depuración de programas.
Tema 10. Programación en C a bajo nivel.
- Programa, modulo y biblioteca.
- Preprocesado y compilación.
- Tipos de datos y conversión de tipos.
- Regiones de memoria.
- Tamaño, emplazamiento, visibilidad y vida útil de datos.
- Punteros.
- Paso de parámetros por valor y referencia.
- Memoria dinámica.
- Cadenas de caracteres.
- Parámetros de un programa.
- Ficheros de texto y binarios.
- E/S en consola y en ficheros.
- Bibliotecas string, stdlib y stdio.
- Flujo de desarrollo.
Module 1: From Digital Systems to Computers
- Application-specific vs. general-purpose circuits.
- Von Neumann model.
- Architecture vs. structure.
- Concept of assembly code.
Module 2: Processor Architecture
- RISC-V ISA.
- Memory model.
- Registers.
- Addressing modes.
- Base instruction set RV32I.
- RVM extension.
- RVF extension.
- RISC vs. CISC architectures.
Module 3: Assembly Programming
- Elements of an assembly program.
- Pseudo-instructions.
- Data types, variables, and constants.
- Arrays.
- Structs.
- Expressions.
- Structured programming: linear, conditional, and iterative blocks.
- Procedural programming: parameter passing, function calls and returns.
- Stack management and register saving.
- Nesting, recursion, and frame management.
- Application development and execution flow.
Module 4: Instruction Format Design
- Format types.
- Field encoding.
- Assembly and disassembly.
Module 5: Single-Cycle Processor Design
- Simplified RISC-V architecture.
- Datapath design.
- Control unit design.
- Cost and cycle time.
Module 6: Multi-Cycle Processor Design
- Datapath design.
- Control unit design.
- Instruction cycle.
- Cost and cycle time.
- Performance metrics: execution time, CPI, MIPS, MFLOPS.
- Speedup.
- Benchmarking.
Module 7: Pipelined Processor Design
- Hazards: structural, data, and control hazards.
- Datapath design without hazard handling: pipeline registers.
- Software solutions to hazards: code reordering and NOP insertion.
- Hardware solutions to hazards: forwarding, stalling, and branch prediction.
- Datapath design with hazard handling.
- Cost and cycle time.
Module 8: Exceptions
- Exceptions vs. interrupts.
- Service modes.
- RISC-V privileged ISA.
- Privilege levels.
- Control and status registers.
- Privileged instructions.
- Exception handling routines.
- Simplified RISC-V architecture with basic exception handling.
- Redesign of single-cycle, multi-cycle, and pipelined processors.
Module 9: Basic Operating System Usage via the Command Line
- Operating system concept.
- Program loading and execution.
- Graphical interface vs. command line.
- Windows vs. Linux.
- Command interpreter.
- File and directory organization.
- Ownership and permissions.
- Environment variables.
- Programs and processes.
- I/O redirection.
- Scripting.
- Compilation and debugging of programs.
Module 10: Low-Level Programming in C
- Program, module, and library.
- Preprocessing and compilation.
- Data types and type conversion.
- Memory regions.
- Data size, placement, visibility, and lifetime.
- Pointers.
- Parameter passing by value and by reference.
- Dynamic memory allocation.
- Strings.
- Program arguments.
- Text and binary files.
- Console and file I/O. string, stdlib, and stdio libraries.
- Development workflow.
- Al finalizar el aprendizaje, el o la estudiante será capaz de explicar los principios básicos de estructura y arquitectura de computadores, sistemas operativos, sistemas distribuidos, redes de computadores, internet y sistemas de almacenamiento, procesamiento y acceso a datos necesarios para el análisis e implementación de aplicaciones basadas en ellos.
- Al finalizar el aprendizaje, el o la estudiante será capaz de determinar qué teorías, principios, métodos y prácticas son los más adecuados para la construcción, despliegue, configuración, administración y gestión de sistemas digitales, software de sistema y redes de computadores en problemas que requieran de soluciones hardware o bien software consciente del hardware de acuerdo con criterios de garantía, fiabilidad y seguridad.
- Al finalizar el aprendizaje, el o la estudiante será capaz de demostrar conocimiento básico de las diferentes subdisciplinas de la ingeniería informática y de las técnicas básicas y conocimientos de estas para la integración en equipos multidisciplinares como profesional generalista en ingeniería informática.
- Al finalizar el aprendizaje, el o la estudiante será capaz de analizar servicios, aplicaciones y sistemas informáticos, valorando su impacto económico, social y ambiental, cara a su puesta en marcha y su mejora continua, asegurando su fiabilidad, seguridad y calidad en cualquier ámbito de la ingeniería informática, de manera inclusiva y conforme a principios éticos y a la legislación y normativa vigente.
- Al finalizar el aprendizaje, el o la estudiante será capaz de analizar las necesidades en algorítmica, complejidad computacional, programación, sistemas operativos, bases de datos, estructura, arquitectura e interconexión de sistemas informáticos necesarios para la resolución de problemas de ciencias e ingeniería, de acuerdo con los principios de calidad, fiabilidad y seguridad necesarios y dentro del marco institucional y jurídico de la empresa.
No tiene
Convocatoria ordinaria.
Se realizarán tres pruebas parciales: EP1 (Tema 3), EP2 (Tema 9), EP3 (tema 10), y un examen final, EF (resto de temas). Las pruebas serán liberatorias y no recuperables en ordinaria. La calificación de la asignatura se calculará como 0,1*(nota EP1) + 0,1*(nota EP2) + 0,1*(nota EP3) + 0,7*(nota EF).
Convocatoria extraordinaria.
Se realizará un único examen final, EF (Temas 1 a 10). La calificación de la asignatura será la nota obtenida en dicho examen.
- Recomendada
- Digital Design and Computer Architecture, RISC-V Edition. Sarah L. Harris, David Harris. Morgan Kaufmann. 2021
- Complementaria
- Computer Organization and Design RISC-V Edition: The hardware/software Interface. David A. Patterson and John L. Hennessy. Morgan Kaufmann. 2020