a.k.a., “Everything you wanted to know about computers, but were afraid to ask“
BIU Course number: 83-954
Lecturer: Prof. Adam Teman
Section 1a: Course Motivation and Introduction
Section 1c: What is an Embedded System?
Section 1b: MPU, MCU, and SoC
Section 1d: Components of Embedded Systems
Supplementary Material:
Section 2a: Introduction and History
Section 2c: Calling a Procedure
Section 2e: Measuring Performance
Section 2b: The Instruction Set Architecture (ISA)
Section 2d: Running a Program (CALL)
Section 3a: Motivation
Section 3c: Variables and Memory Access
Section 3e: Procedure Calls
Section 3g: The Build Process (CALL)
Section 3b: Basic CPU Operations
Section 3d: Control Flow
Section 3f: RISC-V Features and Extensions
Section 4a: On-Chip Interconnect
Section 4c: Simple Bus Operation
Section 4b: Connecting with Peripherals
Section 4d: Higher Performance Buses
Section 5a: Communicating with the Outside World
Section 5c: Dealing with Faster Interfaces
Section 5e: Memory
Section 5b: Offloading the CPU
Section 5d: More Offloading
Section 5f: Finishing our Design
Section 6a: The Memory Hierarchy
Section 6c: Tradeoffs in Cache Design
Section 6e: Practical Paging
Section 6b: Cache Organization
Section 6d: Virtual Memory
Section 6f: The Translation Lookaside Buffer (TLB)
Section 7a: Operating Systems
Section 7c: Interrupt Handling
Section 7e: Synchronization and Protection
Section 7b: The Kernel
Section 7d: Scheduling (Processes and Threads)
Section 7f: Real-Time Operating Systems (RTOS)
Section 8a: Introduction to Lupulus
Section 8c: Bonding Debug
Section 8e: Circuit Editing FIB
Section 8b: The Boot Sequence
Section 8d: Overcoming Hold Violations