In this course we will constantly be looking at computer architecture and organization.
Computer Architecture is a "description of the structure of a computer system made from component parts." (Wikipedia, 2024)
Computer Organization is the way in which the various components of a computer system are arranged to accomplish the architecture. (Part Wikipedia, part me)
The Instruction Set Architecture or ISA is "the abstract interface between the hardware and the lowest level software that encompasses all of the information necessary to write a machine language program that will run correctly, including instructions, registers, memory access and so on." (Patterson and Hennessy, Hardware/Software Interface)
They actually define this as the computer architecture.
For most of us, most of the time, computer architecture is all of this.
As you might have guessed, this is tied closely to assembly language.
According to Jorgensen "assembly language is a "low-level" language and provides the basic instructional interface to the computer processor".
He incorrectly states that this is as close to the processor as you can get as a programmer.
You can actually get closer with machine language.
As you might guess from the title of this class, we will be studying
The basics of computer architecture
The basics of assembly language
But aren't all computers the same?
No not really.
If you look at history of architecture/implementation you will find a wide variety of designs and implementations.
We will generalize, but you can almost always find something that breaks the generalization.
Remember, this is engineering, not science.
Engineering "the practice of using natural science, mathematics and the engineering design process to solve technical problems, increase efficiency and productivity and improve systems." (Wikipedia)
We will focus on computers constructed from transistors
For now, transistors are electronic switches.
Later we will examine these in more detail.
We will not consider quantum computers.
Transistors can be combined to form logical gates
These gates can perform logical or boolean operations.
Typical gates include and, or, not
We will examine gates more closely later as well.
Gates are combined to form circuits
Some well know circuits include adders, registers, multiplexers, ...
We will examine some of these circuits more closely later.
These circuits are then combined to build computers.
The main components of a computer are:
The CPU or central processing unit.
Primary storage or RAM (random access memory)
Secondary storage or
Hard drive
USB Drive
...
(From Jorgensen)
I/O (input output) devices.
All of these are connected by one or more busses (or data transfer system)
Back to are they all the same?
Most machines are built according to the von Neumann architecture.
Based on a paper by John von Neumann who worked on a draft report about the EDVAC (Electronic Discrete Variable Automatic Computer) computer system
A predecessor to ENIAC
At the University of Pennsylvania
von Neumann architecture describes a stored program computer
This is mostly what we call a computer today.
von Neumann said that memory holds both program and data.
An alternative, the Harvard Architecture says that you have different memory for program and data.
This difference will not matter to us.
However there are other machines in production today.
Parallel architectures come in several flavors.
Flynn's Taxonomy
Data
Instruction
Single/Single
SISD
Single/Multiple
SIMD
Multiple/Single
MISD
Multiple/Multiple
MIMD
SISD is what you think you use
MIMD is probably what you use
Multiprocessor (multi core) are one type.
Your graphics card is probably SIMD
MISD computers are somewhat rare.
Mostly pipeline computers.
Another difference can be the instruction set
Until the 70's instruction sets were designed with the programmer in mind.
There were many instructions to do very complex operations.
This was called CISC: Complex Instruction Set Computer
The current intel family is an example of a CISC
These machines became increasingly more expensive to
design
make run faster
Studying programs it was found
Most programs didn't use the entire instruction set.
There were many instructions that were never or rarely used.
Only expert assembly programmers could optimize better than a compiler
And compilers have continued to improve
So the RISC or reduced instruction set computer was designed.
The ARM chip is RISC, but so is the intel chip.
Moore's Law
Observation that the number of transistors in an integrated circuit will double every two years.
Gordon Moore, was a major player in the IC industry