This is my implementation of cs61c taught by UCB.
This class is very hardcore and impressive. I've learned a lot in this class.
- C, gdb, makefile and the memory management .
- Riscv assembly language, function linkage, calling convention and so on.
- Datapath, pipeline in cpu and build a small cpu using Logisim (a graphic simulator written by Java)
- Caches Operating system, virtual memory
- SIMD instruction, coherence and thread level parallelism.
The four projects will lead you into the computer architecture hand by hand.
- Project 1: RA already built the main body of Dictionary program. You will get familiar with struct, pointer, I/O in C program.
- Project 2: This project is about implementing MLP (multi-layer perceptron) in riscv assembly language. The calling convention is crucial for you to finish it.
- Project 3: This project is about implementing a graphic CPU with Logisim. You will know the pipeline parallelism in CPU. But there are a lot more advanced technique in CPU that is not covered by CS61C, such as super-scalar and branch-prediction.
- Project 4: Speed up matrix multiplication with unrolling, SIMD and parallelism (openMP)
Unfortunately, I have something more important to do and put cs61c aside. But I am happy to talk about the lab with you.
Hope I can get enough time to learn in the future.