Skip to content

Abstraction

Key Concepts

Why Use AbstractionAbstraction helps understand complex systems
Computer Organization Abstraction LayersStarting with the problem a computer can solve, we can define the layers of abstraction that end with circuits and transistors

Introduction

Humans understand the world through classifying and grouping information, associating items based on similarities and differences. This form of organization, called abstraction, helps us communicate concepts and ideas for ourselves and between each other. It could be argued that thinking in abstraction is a capability that sets humans apart from other animals.

Once divided into groups, each group can be sub-divided based on a more specific trait, which further defines the items. This process of sub-dividing can continue with more specific traits until we have reached a level of detail that is useful ...FOR WHAT?

Why Use Abstraction

A key element to learning and communicating elements in the physical world is our ability to create abstraction layers, that is: defining different levels of detail about an element to be used in different contexts.

Abstraction Example

If we wanted to describe email to someone, it would be helpful to know that person's understanding of things like the Internet, computers, web browsers, office memos, etc.

For someone with a hands-on understanding of these concepts, such as a fellow CS student, we would use terms like Ethernet, WiFi, Authentication Credentials, Service Provider, Spam without additional explanation

For someone that uses email, but is not technically trained, we would use words like Internet Connection, Account Login, GMail, Unwanted emails, likely without needing and additional explanation

And, to describe email to someone that does not use a computer regularly, we would use terms like Computer's Connection to other computers, Sign-in information, Company that provides E-Mail service

Abstraction works in layers, each having more details and specific meaning.

Abstraction Layers of Life on Earth

Abstractions layers are commonly used in schools. Take, for example, the Biological Life Taxonomy layers of abstraction in upper-division grade school:

Top level represents all life on Earth.

Domain defines most general types of life, based on unique characteristics. Bacteria, Archaea, and Eukarya are the 3 domains. All life can be only one of these three domains.

Kingdom further breaks down domains into more details: Animals, plants, and fungi.

Class, Order, Family, and Genus are another layer that has more details.

Species is the final, and most detailed layer, ultimately describing the characteristics of a single type of life.

Abstraction is a tool used to communicate and understand an item or concept. Teaching mathematics in public school relies on abstraction to expose students to the complex world of math, slowly, over several years. From kindergarten, where students learn numbers, to junior high school, where students are exposed to geometry and trigonometry, and on to high school where calculus is taught.

Abstraction builds relationships among layers. So, when moving between layers, we can express the transition in one of two ways:

  • Moving to a more specific layer (down), we would say the Higher level has Lower levels in it:

A Kingdom has Phylums

  • Moving to a less specific layer (up), we would say the Lower level is part of the Higher level:

A Phylum is part of the Kingdom

True/False

Computer programs can have ambiguity in the source code

True/False

A programmer translates problems initially described in Natural Language into a programming language that has little or no ambiguity

Computer Organization Abstraction Layers

Within Computer Science, there are several places where abstraction is used to organize concepts such as Data Abstraction, Object-Oriented Inheritance, and Relational Database design.

Within Computer Organization, we use a set of abstraction levels that start with a Problem at the top-most level, down to Devices at the lowest level.

Abstraction LayerDescriptionMove DownMove Up
ProblemDefining a thing to solve using Natural LanguageA Program can be stated as an Algorithm-
AlgorithmSet of steps that that solve a Problem without the ambiguity of Natural LanguageAn Algorithm is implemented as a ProgramAn Algorithm describes a Problem
ProgramData, functions, and syntax of a chosen programming language that executes an AlgorithmA Program is Rendered into an Instruction Set ArchitectureA Program realizes an Algorithm
Instruction Set ArchitectureInstructions and data of an Assembly Language that implements a ProgramAn Instruction Set Architecture (ISA) is orchestrated by a MicroarchitectureAn Instruction Set Architecture executes a Program
MicroarchitectureLogic, storage, and control that executes ISA instructionsA Microarchitecture manages CircuitsA Microarchitecture implements an ISA
CircuitsComponents that are combined to construct Microarchitecture elementsCircuits are made from DevicesCircuits implement a Microarchitecture
DevicesElectrical structures that provide digital representations of Circuit functions and behaviors-Devices implement Circuits

Problem, Algorithm, and Program layers are focused on a solution to a specific problem.

Specific Layers

The top three (3) layers are focused on a specific problem and solution.

Example:

  • Problem: Test a number for prime
  • Algorithm: Mathematical formula to verify number is prime
  • Program: User inputs a number, executes algorithm on number, display result to user

In this example, a specific problem is solved

General Layers

The bottom four (4) layers provide a general platform to execute any program created within the rules of the computer

The connection between the specific and general layers is the programming language compiler/interpreter

  • Instruction Set Architecture: Assembly language instructions that implement the compiled/interpreted Program
  • Microarchitecture: Control instructions that execute each assembly instruction
  • Circuits: Digital elements that control/stores information
  • Devices: Transistors that form circuits

These layers work the same way each time they are used. The only thing that changes is the compiled/interpreted Program

The Instruction Set Architecture down to Devices are all a set of fixed software and hardware elements that can be used to solve many different problems.

In addition, The transition from Problem to Algorithm is interesting. A problem is expressed as a deficiency or need, whereas the Algorithm describes a way to avoid or fix that Problem.

In Computer Organization, we'll focus on the Instruction Set Architecture (ISA) layer. But first, we need to understand how Devices create Circuits, that make the Microarchitecture needed to support the ISA.

Conclusion

We learned that using abstraction explains complex concepts to the current understanding of a specific audience. For example, in a classroom, the instructor might choose to introduce a new topic by discussing a high-level aspect of the topic, then add detail to the discussion to slowly reveal the more subtile aspects.

Abstraction layers in Computer Organization start with a Problem to be solved and presents that problem (given that the problem is solved using a computer) to a Program that is rendered in the computer's ISA that ultimately gets represented in Devices.

The contents of this E-Text were developed under an Open Textbooks Pilot grant from the Fund for the Improvement of Postsecondary Education (FIPSE), U.S. Department of Education. However, those contents do not necessarily represent the policy of the Department of Education, and you should not assume endorsement by the Federal Government.
Released under Creative Commons BY NC 4.0 International License