Filtrar

Cátedra del jueves 23 de mayo 34

Luis Mateu B. 20 MayAyer, 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 MayViernes 17 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 55

Luis Mateu B. 16 MayJueves 16 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 33

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.

Cátedras del martes 16 y jueves 18 de abril 51

Luis Mateu B. 15 Abr15 de Abril a las 18:34 hrs.2024-04-15 18:34:15
Cátedras

Martes 16


Temario: resumen clase pasada, big endian vs. little endian, alineamiento, una cola genérica, cast entre enteros y punteros, unboxing vs. boxing.

Presentación: pdf
Video de un semestre previo
Ejemplos del video: punteros-v4.zip

Jueves 18


Temario: Funciones de C para manipular archivos, abrir y cerrar archivos (fopen), lectura y escritura de archvos de texto (fgetc, fgets, fputc, fputs, fprintf, fscanf) y otras (feof, ferror, fseek), entrada estándar, salida estándar y salida estándar de errores, archivos binarios (fread, fwrite)

Presentación: pdf 
Video  de un semestre previo (pdf del video)
Ejemplos del video:  ejemplos.zip

Auxiliar 4: Estructuras 22

Gerard Cathalifaud Salazar 14 Abr14 de Abril a las 15:26 hrs.2024-04-14 15:26:14
Auxiliar

Saludos!

El día viernes se realizó el cuarto auxiliar del curso, donde se vieron las estructuras en C, viendo nuevas aplicaciones de punteros, malloc y free. Estos ejercicios les podrá resultar muy util para la siguiente tarea como también para el control del próximo viernes, por lo que les recomiendo revisarlo. El enunciado y la pauta se encuentran en material docente, y también tienen disponible el video de la versión online.

Este auxiliar se encuentra dividido en 2 auxiliares en semestres anteriores, el enunciado nuevo juntó todas las preguntas (por eso son 4), aquí se encuentra los videos de los anteriores por si les sirve, además de contar con el desarrollo de los propuestos. De todas maneras, recomiendo que lo intenten por su cuenta primero.

Video 1: Lista anidada y FIFO
Video 2: Podar y Reemplazar en ABB

¡Que tengan una buena semana!