Skip to content
Juan Gonzalez-Gomez edited this page Jan 31, 2024 · 57 revisions

Este curso está refenciado en el índice de materiales educativos de la Fundación RISCV

Información

La asignatura de arquitectura de computadores de la ETSIT-URJC se imparte en diferentes grados. El material es común para todas ellas

Cómo hacer este curso

Este es un curso totalmente práctico. Para realizarlo necesitarás un ordenador (con cualquier sistema operativo) y el simulador RARs

El curso lo debes seguir de manera secuencial, empezando por la sesión 1. Los conceptos se introducen de forma práctica, uno tras otro. En cada nueva sesión aparecen conceptos que se apoyan en los anteriores

Antes de pasar a la siguiente sesión, intenta hacer los ejercicios propuestos. En el apartado de soluciones encuentrarás las soluciones, comentadas. Pero recuerda, para dominar algo y comprenderlo perfectamente hay que practicarlo. Y mucho. Haz los ejercicios

Para los estudiantes de la URJC las clases serán en vivo y en directo, y este material lo usaremos de apoyo

Pero el curso está pensado para que cualquier persona de habla hispana lo pueda seguir, desde cualquier parte del mundo, a su propio ritmo

VIDEOS

Además de los contenidos en la wiki, hay una colección de 53 vídeos de apoyo en Youtube

Este es el primero. Haz click en la imagen para verlo

Vídeo 1/53: Simulando el "Hola Mundo" con el RARs

Click to see the youtube video

Vídeo 53/53: Despedida. Motivaciones del curso. Se puede usar como vídeo de introducción 😀️

Click to see the youtube video

Contenidos

  • Práctica 1: El simulador RARS. Ensamblador. Segmento de código. Segmento de dato. Variables
    • Sesión L1: Toma de contacto con el simulador RARs. Programa Hola mundo. Instrucción addi
    • Sesión L2: Comprender cómo funciona el procesador. Toma de contacto con el Mapa de memoria. Programas para evaluar expresiones
      • Vídeo 3. Funcionamiento del procesador. Código máquina. Lenguaje ensamblador
      • Vídeo 4. Mapa de memoria. Segmento de código
      • Vídeo 5. Etiquetas. Instrucción add
      • Vídeo 6. Instrucción sub. Evaluación de expresiones
    • Sesión L3: Manejo de variables. Segmento de datos. pseudoinstrucciones. Acceso a memoria
      • Vídeo 7. Pseudo-instrucciones
      • Vídeo 8. Segmento de datos
      • Vídeo 9. Accediendo a una variable: Instrucciones load y store
      • Vídeo 10. Accediendo a varias variables
  • Práctica 2: Entrada/Salida. Llamadas al sistema.
    • Sesión L4: Definición de constantes. E/S mapeada y display de 7 segmentos
    • Sesión L5: Llamadas al sistema. ABI. Registros temporales (tx) y de argumento (ax). Ejemplos: PrintInt, ReadInt, Princhar
    • Sesión L6. Definir y almacenar cadenas. Servicios PrintString y ReadString. Instrucciones lb, sb, lh, sh. Usando el display de 7 segmentos y el teclado. Directiva .include
      • Vídeo 17. Cadenas definidas en tiempo de compilación
      • Vídeo 18. Cadenas definidas en tiempo de EJECUCIÓN
      • Vídeo 19. Manipulando cadenas. Instrucciones lb y sb
      • Vídeo 20. Accediendo a los displays y al teclado hexadecimal
      • Vídeo 21. Medias palabras. Alineamiento. Directiva Include
  • Práctica 3: Bucles. Saltos condicionales
  • Práctica 4: Llamada a subrutinas. Pila. Recursividad
    • Sesión 9. Programa principal/subrutinas. Mecanismo jal/ret. Separación en ficheros. Paso de parámetros. Convenio uso de registros
    • Sesión 10. Niveles de profundidad. Encadenamiento de llamadas a subrutinas. ABI RISC-V. Registros preservados y NO preservados. Uso de la pila
    • Sesión 11. Recursividad. Funciones recursivas. Mecanismos de implementación de funciones recursivas
      • Vídeo 43. Algoritmos y recursividad
      • Vídeo 44. Factorial, mediante subrutinas anidadas
      • Vídeo 45. Factorial, mediante subrutinas anidadas
      • Vídeo 46. Recursividad en cadenas
      • Vídeo 47. Ejercicio recursivo resuelto: longitud de una cadena
  • Práctica 5: Memoria dinámica. Listas
    • Sesión 12. Reseva de memoria. Estructuras de datos. Listas enlazadas
  • Vídeo 53: DESPEDIDA

Profesores

Bibliografía

  • "Computer organization and design. The hardware/software Interface. RISC-V Edition". David A. Patteron, John L. Hennessy. Ed. Morgan Kaufmann. 2018

  • "The RISC-V Reader: An Open Architecture Atlas", David Patterson and Andrew Waterman. 2017. Disponible para descarga on-line: Descarga libro

Curso libre, hecho con herramientas libres

Todo el contenido de este curso: programas, imágenes, texto... está publicado con una licencia libre. En el repositorio encontrarás los ficheros fuente de todas las figuras (formato SVG), así como todos los ficheros con el código de los ejemplos y los ejercicios

Este material lo puedes usar con cualquier propósito, sin necesidad de pedir permiso

Estas son las herramientas que se han usado para la preparación del curso. Todas ellas son libres:

Autores

Licencia

Enlaces

Página principal


Sesiones de Prácticas

P1: Simulador RARs

L1: Práctica 1-1. RARs
L2: Práctica 1-2. Ensamblador
L3: Práctica 1-3. Variables

P2: E/S mapeada. Llamadas al sistema

L4: Pract 2-1. E/S mapeada
L5: Práctica 2-2: Inst. ecall
L6: Prác 2-3: Cadenas

P3: Bucles y Saltos condicionales

L7: Práct 3-1: Bucles y saltos
L8: Práct 3-2: Cadenas II

P4: Subrutinas

L9: Pract 4-1: Subrut. Nivel-1
L10: Pract 4-2: La pila
L11: Pract 4-3: Recursividad

P5: Memoria Dinámica

L12: Pract 5-1. Heap. Listas

VÍDEO DE DESPEDIDA

Ejercicios de examen

Simulacro examen 1
GISAM. Ordinario. 2019-Dic-11
GISAM. Extra. 2020-Jul-03
GISAM. Ordinario. 2021-Ene-21
GISAM. Ordinario. 2022-Ene-10
GISAM. Extra. 2022-Jun-29
GISAM. Parcial 1. 2022-Oct-26
GISAM. Parcial 2. 2022-Nov-30
GISAM. Parcial 3. 2022-Dic-21
GISAM. Parcial 1. 2023-Oct-09
GISAM. Parcial 2. 2023-Nov-11
GISAM. Parcial 3. 2023-Dic-20
GISAM. Extra. 2024-Jun-17
TELECO. Ordinario. 2019-Dic-13
TELECO. Extra. 2020-Jul-07
TELECO. Ordinario. 2021-Ene-21
TELECO. Extra. 2021-Jul-02
TELECO. Ordinario. 2022-Ene-10
TELECO. Extra. 2022-Jun-29
TELECO. Ordinario. 2023-Ene-10
TELECO. Extra. 2023-Jun-29
TELECO. Parcial 1. 2023-Oct-20
TELECO. Parcial 2. 2023-Nov-17
TELECO. Parcial 3. 2023-Dic-22
TELECO. Extra. 2024-Jun-17 Robótica. Ordinario. 2020-Jun-1
Robótica. Extra. 2020-Jul-13
Robótica. Ordinario. 2021-Mayo-20
Robótica. Extra. 2021-Junio-16
Robótica. Parcial 1. 2022-Feb-25
Robótica. Parcial 2. 2022-Abril-1
Robótica. Parcial 3. 2022-Mayo-6
Robótica. Parcial 1. 2023-Feb-27
Robótica. Parcial 2. 2023-Mar-27
Robótica. Parcial 3. 2023-May-08
Robótica. Parcial 1. 2024-Feb-26
Robótica. Parcial 2. 2024-Mar-20
Robótica. Parcial 3. 2024-May-06
Robótica. Extra. 2024-Junio-24
Datos. Parcial 1. 2023-Oct-09
Datos. Parcial 2. 2023-Nov-15
Datos. Parcial 3. 2023-Dic-20

SOLUCIONES

Práctica 1: Sesiones 1,2 y 3
Práctica 2: Sesiones 4, 5 y 6
Práctica 3: Sesiones 7 y 8
Práctica 4: Sesiones 9, 10 y 11
Práctica 5: Sesión 12

Clone this wiki locally