Back to All Lectures

Lecture 1: Computer Abstractions

Lectures on Computer Architecture

Click the thumbnail above to watch the video lecture on YouTube

By Dr. Isuru Nawinne

1.1 Introduction

This lecture introduces the fundamental concepts of computer system abstractions, exploring the relationship between hardware and software while providing an overview of the lecture series structure and topics. We examine how computer systems are built as hierarchies of abstractions, each hiding complexity while providing services to the levels above.

1.2 The Big Picture of Computer Systems

1.2.1 Cross-Section of a Computer System (Top to Bottom)

Computer System Abstraction Layers
The diagram above illustrates the complete hierarchy from problems and algorithms at the human level, through the compilation toolchain (Compiler/Assembler/Linker), down to the ISA, microarchitecture (RTL), functional units, logic gates, transistors, and finally the silicon substrate. Each colored layer represents a different abstraction level.

1.2.2 Human-Related Level (Gray)

1.2.3 System Level (Blue)

1.2.4 RTL (Register Transfer Level) - Red/Orange

1.2.5 Logic Level (Green)

1.2.6 Circuit Level (Light Gray)

1.2.7 Substrate Level (Black)

1.2.8 Purpose of Computer Systems

1.3 Instruction Set Architecture (ISA) - The Key Interface

1.3.1 What is an ISA?

Definition:

1.3.2 Example Instructions in an ISA

1.3.3 Importance of ISA

1.4 From Problem to Execution - The Translation Chain

1.4.1 High-Level Process

Problem → Algorithm → Programming Language (C, Python, etc.)
Compiler (translates to assembly code)
Assembler (translates to machine code)
Linker (combines with libraries)
Machine Code / Binary Image
Runs on Microarchitecture (CPU)

1.4.2 Tool Chain Components

Compiler

Assembler

Linker

1.4.3 Architecture-Specific Compilation

1.5 Writing Programs at Different Levels

1.5.1 Machine Code (Binary)

Characteristics:

1.5.2 Assembly Language

Characteristics:

1.5.3 High-Level Languages (C, Python, etc.)

Characteristics:

1.6 Microarchitecture Details

1.6.1 What is Microarchitecture?

Definition:

1.6.2 Hierarchy of Microarchitecture Components

Microarchitecture Level

Functional Units Level

Logic Gate Level

Transistor Level

Semiconductor Level

1.7 Abstraction Concept

1.7.1 What is an Abstraction?

Key Principles:

1.7.2 Hardware Abstraction Hierarchy (Bottom to Top)

1. Substrate (Silicon, Germanium)

2. Transistors

3. Logic Gates

4. Functional Units

5. Microarchitecture

1.7.3 Software Abstraction Hierarchy (Bottom to Top)

1. Machine Instructions (Binary)

2. Assembly Instructions

3. Programs / Source Code

4. Algorithms and Data Structures

1.7.4 Relationships Between Hardware and Software Abstractions

Voltage Levels ↔ Logic Levels

Logic Levels ↔ Numbers

Numbers ↔ Instructions

Summary of Relationships

1.7.5 Complete System

1.8 Performance Theme

1.8.1 Throughout the Lecture Series

Performance is a recurring theme that will be touched upon in every topic:

Key Takeaways

  1. Computer systems are built as hierarchies of abstractions
  2. Each abstraction level hides complexity and provides services to levels above
  3. Instruction Set Architecture (ISA) is the critical interface between hardware and software
  4. Hardware hierarchy: Substrate → Transistors → Gates → Functional Units → Microarchitecture
  5. Software hierarchy: Machine Code → Assembly → Programs → Algorithms
  6. Tight coupling exists between hardware and software abstractions
  7. Voltages → Logic Levels → Numbers → Instructions (relationships between levels)
  8. Covers ISA, microarchitecture, memory hierarchy, and system organization
  9. Labs involve ARM assembly programming and building processor using Verilog
  10. Understanding the complete system picture is essential for computer engineers
  11. All computer systems, regardless of complexity, are built on these fundamental abstractions
  12. Performance optimization is a central theme throughout the lecture series

Summary

Computer systems represent one of the most sophisticated examples of hierarchical abstraction in engineering. From the physical movement of electrons in semiconductors to high-level programming languages, each layer builds upon and hides the complexity of the layers below. The Instruction Set Architecture serves as the critical bridge between hardware and software, enabling programmers to write code without worrying about transistor-level details while allowing hardware designers to optimize implementations without breaking software compatibility.

Throughout this lecture series, we will explore these abstractions in depth, learning not just what they are, but why they exist and how they enable the remarkable computing capabilities we rely on every day. By understanding both hardware and software perspectives, computer engineers gain the ability to design, optimize, and innovate across the entire computing stack.

← Previous Lecture Next Lecture →