SoC 101

a.k.a., “Everything you wanted to know about computers, but were afraid to ask

BIU Course number: 83-954

Lecturer: Prof. Adam Teman

 

Lecture 1. Introduction

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:

Lecture 2. The Microprocessor

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)

Supplementary Material:

Lecture 3. From C to Assembly

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

Supplementary Material:

Lecture 4. On-Chip Interconnect

Section 4a: On-Chip Interconnect

Section 4c: Simple Bus Operation

Section 4b: Connecting with Peripherals

Section 4d: Higher Performance Buses

Supplementary Material:

Lecture 5. Communicating with Peripherals

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

Supplementary Material:

Lecture 6. The Memory Hierarchy

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)

Supplementary Material:

Lecture 7. Operating Systems

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)

Supplementary Material:

Lecture 8. Ramp Up and Debug (a.k.a. "Lupulus - A Debug Story")

Section 8a: Introduction to Lupulus

Section 8c: Bonding Debug

Section 8e: Circuit Editing FIB

Section 8b: The Boot Sequence

Section 8d: Overcoming Hold Violations

Supplementary Material: