Filtrar

Cátedras del martes 28 y jueves 30 de mayo 52

Luis Mateu B. 27 May27 de Mayo a las 21:47 hrs.2024-05-27 21:47:27
Cátedras

Los profesores no estamos en paro.  Ruego respetar la posición de estudiantes que tampoco adhieren al paro.  Por lo tanto voy a seguir publicando los videos de  cátedras correspondientes a esta semana.

Martes 28


Temario: arquitectura lógica y física de una CPU, implementaciones básicas y avanzadas, memoria caché.

Video y pdf de un semestre previo.

Jueves 30


Temario: memorias caché de varios grados de asociatividad, arquitecturas microprogramadas, en pipeline, superescalares, especulativas y con ejecución fuera de orden.

Video y pdf de un semestre previo.

Se suspende el control 2 91

Luis Mateu B. 23 May23 de Mayo a las 21:36 hrs.2024-05-23 21:36:23
Información

No habrá control 2 mañana viernes.  La nueva fecha se definirá más tarde.

Cátedra del jueves 23 de mayo 36

Luis Mateu B. 20 May20 de Mayo a las 11:46 hrs.2024-05-20 11:46:20
Cátedras

Temario: memorias ROM y RAM, lenguaje Verilog, implementación de compuertas básicas, la ley de Moore, litografía, los desafíos de las fábricas de chips.

Videopdf de un semestre previo.

Auxiliar 7: Circuitos 21

Gerard Cathalifaud Salazar 17 May17 de Mayo a las 16:22 hrs.2024-05-17 16:22:17
Auxiliar

Hola a todos, recién se realizó el séptimo auxiliar del curso, sobre circuitos!! En este auxiliar se hizo un resumen de varios componentes principales y se ejercitó creando 2 circuitos con varias de estas componentes en uso.

El enunciado ya está disponible junto con la pauta, el video se está subiendo y en unos 30 mins debería estar listo.

También tienen disponible el video de un semestre anterior.

Preparación para el control 2 del viernes 24 62

Luis Mateu B. 16 May16 de Mayo a las 15:28 hrs.2024-05-16 15:28:16
Información

El control 2 es el viernes 24 de mayo en el horario extendido de la clase auxiliar (14:00 a 16:00).  Entra hasta la cátedra del martes 14 sobre assembler Risc-V.

Es muy importante que hayan resuelto con éxito la tarea 4 sobre archivos.  Usen fread y fwrite para acceder al diccionario.  Hagan la tarea 5 antes de este control, porque les servirá de estudio.

Si recibieron mucha ayuda para resolver las tarea 4 y 5, resuelvan preguntas sobre archivos y assembler de controles de semestres pasados, publicados en esta página.  Sobre archivos consideren resolver la pregunta 4 del control del semestre primavera 2022.  Sobre assembler consideren resolver la pregunta 2 del control 2 del semestre pasado (la pregunta 1 no porque es muy similar a la tarea 4 de este semestre).

Recuerden que el control es con apuntes personales manuscritos por el propio alumno. No se puede llevar nada impreso ni fotocopias, aunque sí se aceptan impresiones de apuntes tomados por el mismo alumno en un tablet.

Cátedras del martes 14 y 16 de mayo 35

Luis Mateu B. 12 May12 de Mayo a las 19:27 hrs.2024-05-12 19:27:12
Cátedras

Martes 14


Temario: registros resguardados de Risc-V, compilación optimizada, registro de activación, frame pointer, secciones del archivo assembler, especificación de Risc-V, codificación de instrucciones, punto flotante

pdf de la clase presencial

Video y pdf de un semestre previo.

Jueves 16


Temario: implementación de algoritmos simples usando circuitos en el simulador Logisim.

Se dice que Java y Python son lenguajes de alto nivel.  Con alto nivel se refiere a un alto nivel de abstracción, lo que significa que estos lenguajes ocultan al máximo los detalles de hardware del computador.  El programador no necesita saber de direcciones o instrucciones de máquina.  Al contrario, C no es de alto nivel porque expone las direcciones de memoria y permite manipularlas sin restricciones.  El lenguaje assembler es definitivamente de bajo nivel porque expone direcciones e incluso el lenguaje de máquina del computador.

Ahora toca estudiar un nivel de abstracción aún más bajo que el del assembler: los circuitos digitales.  Una CPU como x86, arm o Risc-V se construye para partir de circuitos digitales.  Veremos los circuitos digitales más básicos que corresponden a las compuertas lógicas (gates) que permiten calcular el and, or y not, y con ellos construiremos circuitos más complejos como sumadores, multiplexores, decodificadores, registros, memorias, etc.  que permiten implementar cualquier algoritmo con un circuito.

Videopdf
Circuito de la clase: circuitos.circ  (para abrir con Logisim)

Descarguen el simulador de circuitos Logisim de la página del curso.

Auxiliar 6: Assembler 14

Gerard Cathalifaud Salazar 12 May12 de Mayo a las 16:44 hrs.2024-05-12 16:44:12
Auxiliar

¡Hola a todos!

El día viernes vimos en el 6° auxiliar ejercicios relacionados con assembler riscv32. Con un ejercicio para traducir desde este lenguaje a C. Y otro en el que se pide crear un algoritmo directamente en el assembler.

A continuación tienen el enunciado y la pauta, también cuentan con el video por si se lo perdieron.

Adicionalmente, el video de un semestre anterior.

¡Éxito en esta semana!

Cátedras del martes 7 y 9 de mayo 43

Luis Mateu B. 6 May6 de Mayo a las 19:39 hrs.2024-05-06 19:39:06
Cátedras

Martes 7


Temario: assembler Risc-V, registros del procesador, argumentos de una función, instrucciones aritméticas, saltos condicionales, valor de retorno de una función, accesos a la memoria, ciclos.

Presentación: pdf
Video de un semestre previo
Ejemplos del video (requiere instalar el toolchain de la GNU, lea más abajo)

(Como el video se grabó para el curso de arquitectura, el primer slide dice CC4301.  Pero es el video correcto.  La materia de assembler se veía en el programa antiguo en arquitectura de computadores.  Ahora se ve en PSS.)

Jueves 9


Temario de la clase presencial de mañana: compilación de expresiones aritméticas, instrucciones if, while y for, acceso a arreglos de enteros, llamadas a funciones, definición de funciones, tipo char (unsigned) y signed char.

pdf de la clase presencial
Video y pdf de un semestre previo

Observaciones importantes con respecto a los ejemplos de los videos:

Para poder compilar los ejemplos y la tarea de assembler necesitan instalar el toolchain de la GNU con gcc para Risc-V.  Para ello deben descargar riscv.tgz (riscv-arm.tgz para arquitecturas ARM) de esta carpeta de google drive (descomprimidos ocupan 1.4 GB aproximadamente). Necesitan hacerse root para descomprimir:

cd ... directorio en donde descargaron riscv.tgz ...

sudo bash
cat riscv.tgz   |   ( cd / ; tar zxvf - )
exit

Con esto el toolchain de la GNU estará instalado en /opt/riscv.  Para verificar que está bien instalado, ejecuten el comando:

ls /opt/riscv

Si reclama que el directorio no existe, la instalación no fue exitosa.  Quizás quedó instalado pero no en /opt/riscv y los ejemplos no van a funcionar.  Además se instala el emulador qemu-riscv32 en /usr/local/bin. Como se trata de archivos binarios ejecutables, no garantizo que puedan ejecutarse en otras distribuciones de Linux.


En el video dije que pueden llegar e invocar ./test-fun, a pesar de que es un binario para Risc-V, pero no funciona.  Deben ejecutarlo con este comando: qemu-riscv32 test-fun

Cuando usen make, tengan en consideración que make no recompila si un archivo ya está compilado.  Esto es un problema cuando algo ya está compilado con opciones de optimización y ahora lo necesitan con opciones de depuración.  Para rehacer la compilación usen la opción -B.  Por ejemplo: make -B test-fun

A veces ddd reclama que no existe un archivo o directorio.  Es normal porque está tratando de encontrar el código fuente de una función de biblioteca, para la cual no hay código fuente.  Presionen el botón OK e ignoren el problema.

Auxiliar 5: Archivos 31

Gerard Cathalifaud Salazar 26 Abr26 de Abril a las 17:31 hrs.2024-04-26 17:31:26
Auxiliar

Saludos!

Hoy viernes se realizó el quinto auxiliar del curso, donde se vieron las funciones para manejo de archivos en C, viendo nuevas aplicaciones de punteros, y la biblioteca de stdio. Recomendable para la tarea de archivos y como repaso para los punteros genéricos. El enunciado y la pauta se encuentran en material docente, y también tienen disponible el video de la versión online.

El video de un semestre anterior explica el primer problema

¡Que tengan una buena semana de receso!

Cátedras del martes 23 y 25 de abril 52

Luis Mateu B. 22 Abr22 de Abril a las 11:21 hrs.2024-04-22 11:21:22
Cátedras

Martes 23

Temario: buffering, manejo de errores con perror, acceso directo con fseek, búsqueda binaria en un archivo con fseek

Presentación de la clase presencial: pdf
Archivos adjuntos de la clase presencial: fseek.zip

Video y pdf de un semestre previo: Vean solo hasta el minuto 42:08.  El ejemplo de ordenamiento que viene a continuación es muy complicado y usa código que no se ve en el mismo video.  Como ejemplo de programa que usa fseek, estudien el programa buscar.c incluido en fseek.zip de la clase presencial.
Archivos adjuntos para el video: archivos2.zip

Jueves 25

Temario: el preprocesador de C, macros con parámetros, compilación condicional, compilación integrada vs. separada

Presentación: cpp.pdf

Video de la clase presencial.  Vean solo a partir del minuto 45:47.  La primera parte de la clase ya se vio previamente.