- Grado en:
- Ingeniería Informática
- 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 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) y EP3 (tema 10), así como un examen final, EF (resto de temas). Las pruebas parciales serán liberatorias y no recuperables en la convocatoria ordinaria.
Si la nota obtenida en el examen final es igual o superior a 5, la calificación final de la asignatura se calculará como la mayor de las dos siguientes opciones:
- 0,1*(nota EP1) + 0,1*(nota EP2) + 0,1*(nota EP3) + 0,7*(nota EF)
- 0,1*(nota EP1) + 0,1*(nota EP2) + 0,1*(nota EP3) + 0,6*(nota EF) + 0,1*(nota por participación en actividades de clase)
Si la nota obtenida en el examen final es inferior a 5, la calificación final de la asignatura será la nota obtenida en dicho examen, sin que pueda aplicarse la media ponderada con el resto de conceptos.
Convocatoria extraordinaria.
Se realizará un único examen final, EF (temas 1 a 10).
Si la nota obtenida en el examen final es igual o superior a 5, la calificación final de la asignatura se calculará como la mayor de las dos siguientes opciones:
- (nota EF)
- 0,9*(nota EF) + 0,1*(nota por participación en actividades de clase)
Si la nota obtenida en el examen final es inferior a 5, la calificación final de la asignatura será la nota obtenida en dicho examen, sin que pueda aplicarse la media ponderada con el resto de conceptos.
- 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