This repository contains my solutions to the CS61C-fa20 labs
- lab00 Intro and Set Up
- lab01 Number Rep, C and CGDB
- lab02 Advanced C
- Exercise by implementing the bit manipulation functions
- Implement a function to compute the next iteration of a linear feedback shift register (LFSR).
- Familiarize with C structs and memory management.
- lab03 RISCV Assembly
- Practice running and debugging RISC-V assembly code.
- Write RISC-V functions with the correct function calling procedure.
- Get an idea of how to translate C code to RISC-V.
- Get familiar with using the Venus simulator.
- lab04 RISCV Functions, Pointers
- Practice debugging RISC-V assembly code.
- Write RISC-V functions that use pointers.
- lab05 Logisim
- Practice designing and debugging basic digital logic circuits in Logisim
- Gain experience designing FSMs and implementing them as digital logic
- lab06 Pipelining and CPU
- Add a register to divide the multiplication and addition stages up to Complete the sub-circuit pipelined.
- lab07 Caches
- Analyze how memory access patterns determine cache hit rates
- Analyze and discover which memory access patterns produce GOOD hit rates
- Analyze hit rates for caches and be able to optimize code accesses to produce good hit rates
- lab08 OS (context switch), I/O, DMA, Disks, Networking & Virtual Memory
- Analyze TLB hit rate and Page Table hit rate and figure out what accesses optimize these values.
- lab09 SIMD Instructions
- Learn about and use various SIMD functions to perform data level parallelism
- Write code to SIMD-ize certain functions
- Learn about loop-unrolling and why it works
- lab10 Thread Level Parallelism
- Learn about basic OpenMP directives.
- Learn about basic multi-processing programming.
- lab11 Spark/Dependability (not available)
- proj1 Conway's Game of Life, in RGB!
- At this reposity: CS61C-fa20-proj1
- proj2 RISC-V assembly
- At this reposity: CS61C-fa20-proj2
- proj3 CS61CPU
- At this reposity: CS61C-fa20-proj3
- proj4 numc (not available)
You can see the introduction of this project on the course's home page: course website, or in this website: cs61c.