Computer Architectures
Course Hub
This is the main entry point for the course.
Use it to jump to lectures, labs, exercises, assignments, concepts, and exam preparation.
🚀 Current Focus
- Review Pipelining
- Review Branches
- Finish Lab 01 - gem5 and ASE Studio
- Complete current exercise set
Tip
Keep only the things you are actively working on here.
Move completed items into their proper lecture, lab, or exercise note.
📚 Lectures
- Lecture 01 - RISC-V Basics
- Lecture 02 - Memory, Stack and Function Calls
- Lecture 03 - Branches and Control Flow
- Lecture 04 - Pipelining
Next lecture
- Create next lecture note from Lecture Template
🧪 Labs
Note
Put lab files inside:
50 Labs/Computer Architectures/
Active
Completed
✏️ Exercises
Note
Exercises should link back to the concepts they test.
Active
- Exercise Set 01 (note not created yet)
Important mistakes to revisit
Completed
📦 Assignments
To do
- [ ]
Submitted
🧠 Concepts
RISC-V fundamentals
Control flow
Processor performance
Pipeline topics to expand later
These can become their own concept notes when they start appearing in several lectures, labs, or exercises:
Important
Do not create a separate concept note just because a term exists.
Split it out when you have enough material, exercises, or links that it deserves its own page.
❓ Questions / Things I Don’t Understand Yet
- [ ]
Examples:
- Why does this instruction need a stall?
- Why can forwarding solve one dependency but not another?
- Why is this branch taken?
- What exactly is stored in this register at this point?
Once answered, move the explanation into the relevant concept note.
🔗 Quick Navigation
Course work
Most-used concepts
📖 Resources
Slides / PDFs
- Pipelining lecture slides
Useful references
🎯 Exam Preparation
Topics checklist
RISC-V
- Registers and ABI names
- Immediate values
-
addi -
lui -
li - Shifts
- Signed vs unsigned comparisons
Memory
- Address vs value
-
la -
lw -
sw -
offset(base)addressing - Arrays and pointer increments
Functions and stack
-
jal -
jalr -
call -
ret -
ra -
sp - Saving return addresses
- LIFO stack behavior
Branches
- Conditional branches
- Taken vs not taken
- Signed vs unsigned branches
- Loops
Pipelining
- IF / ID / EX / MEM / WB
- Throughput vs latency
- CPI
- Pipeline registers
- Structural hazards
- Data hazards
- Forwarding
- Load-use stalls
- Bubbles
- Control hazards
- Flush
- Predict taken
- Predict untaken
- Delayed branch
🔥 Weak Areas
Use this section shortly before the exam.
| Topic | Confidence | What to do |
|---|---|---|
| Pipelining | ⭐⭐⭐ | Solve more timing diagrams |
| Memory addressing | ⭐⭐⭐⭐ | Quick review |
| Stack | ⭐⭐⭐⭐ | Practice nested calls |
| Branch hazards | ⭐⭐⭐ | Review taken/not-taken examples |
Change these ratings yourself as you study.
📝 Practice / Mock Exam
- Do one exercise without notes
- Explain pipeline hazards from memory
- Draw the 5-stage pipeline from memory
- Trace a nested function call and stack
- Trace an array loop using addresses
- Explain a load-use stall
- Explain what happens after a wrong branch prediction
🗂 Course Structure
Current files for this course:
10 Courses/
├── Computer Architectures.md ← YOU ARE HERE
└── Computer Architectures/
└── Lectures/
20 Concepts/
└── Computer Architectures/
├── RISC-V.md
├── Registers and Immediates.md
├── Memory Addressing.md
├── Stack.md
├── Function Calls.md
├── Branches.md
└── Pipelining.md
50 Labs/
└── Computer Architectures/
├── Lab 01 - gem5 and ASE Studio.md
└── lab_01 1.docxLecture notes preserve course context; concept notes hold reusable knowledge; lab notes track practical work and results.
Create exercise, assignment, and resource folders under 10 Courses/Computer Architectures/ when needed.
✅ End-of-week reset
Once a week:
- Clear finished items from Current Focus
- Make sure every lecture has useful concept links
- File loose notes from
00 Inbox - Record mistakes from exercises
- Update Weak Areas
- Pick the next topics to review