Chapter 1
Introduction to Computer
Organizations and
Architecture
MS.CHIT SU MON
The Digital Computer
Machine to carry out instructions
A program
A sequence of instructions describing how to perform a certain task is called a program. The
electric circuits of each computer can recognize and directly execute a limited set of simple
instructions into which all its programs must be converted before they can be executed.
Instructions are simple
Add numbers
Check if a number is zero
Copy data between memory locations
Primitive instructions in machine language
Languages, Levels,
and Virtual Machines (1)
...
Languages, Levels,
and Virtual Machines (2)
...
Figure 1-1. A multilevel machine.
One method of executing a program written in L1 is first to replace
each instruction in it by an equivalent sequence of instructions in
L0. The resulting program consists entirely of L0 instructions. The
computer then executes the new L0 program instead of the old L1
program. This technique is called translation.
The other technique is to write a program in L0 that takes programs
in L1 as input data and carries them out by examining each
instruction in turn and executing the equivalent sequence of L0
instructions directly. This technique does not require first
generating a new program in L0. It is called interpretation and the
program that carries it out is called an interpreter.
Only programs written in language L0 can be directly carried out
by the electronic circuits, without the need for intervening
translation or interpretation. Programs written in L1, L2, ..., Ln
must either be interpreted by an interpreter running on a lower level
or translated to another language corresponding to a lower level.
Contemporary Multilevel
Machines (1)
...
Figure 1-2. A six-level computer. The support method for each level is indicated below
it (along
with the name of the supporting program).
Contemporary Multilevel
Machines (2)
...
Figure 1-2. A six-level computer. The support method for each level is indicated below
it (along
with the name of the supporting program).
How do we solve a problem
using a computer?
A systematic sequence of transformations between
layers of abstraction.
Problem
Problem
Software Design:
choose algorithms and data structures
Algorithm
Algorithm
Programming:
use language to express design
Program
Program
Compiling/Interpreting:
convert language to
machine instructions
Instr
InstrSet
Set
Architecture
Architecture
Deeper and Deeper…
Instr
InstrSet
Set
Architecture
Architecture
Processor Design:
choose structures to implement ISA
Microarch
Microarch
Logic/Circuit Design:
gates and low-level circuits to
implement components
Circuits
Circuits
Process Engineering & Fabrication:
develop and manufacture
lowest-level components
Devices
Devices
Descriptions of Each Level
Problem Statement
stated using "natural language"
may be ambiguous, imprecise
Algorithm
step-by-step procedure, guaranteed to finish
definiteness, effective computability, finiteness
Program
express the algorithm using a computer language
high-level language, low-level language
Instruction Set Architecture (ISA)
specifies the set of instructions the computer can perform
data types, addressing mode
Descriptions of Each Level
(cont.)
Microarchitecture
detailed organization of a processor implementation
different implementations of a single ISA
Logic Circuits
combine basic operations to realize microarchitecture
many different ways to implement a single function
(e.g., addition)
Devices
properties of materials, manufacturability
Problem Transformation
- levels of abstraction
The desired behavior: Natural Language
the application
Algorithm
Program
Machine Architecture
Micro-architecture
Logic Circuits
The building blocks:
Devices
electronic devices
Levels of Abstraction
Natural Language
These levels do not necessarily correspond to discrete
components, but to well defined standard interfaces. Algorithm
Program
Standard interfaces provide
portability Machine Architecture
third party software/hardware
Micro-architecture
wider usage
Logic Circuits
These levels are to some extent arbitrary - there are other
Devices
ways to draw the lines.
The Program Level
Most computers run a management program
called the operating system (OS). Application Program
Operating System
Application programs interface to the machine
architecture via the OS.
Program (Software)
An example:
This lecture Data
PowerPoint Application Program
Windows XP Operating System
The Machine Level - 1
Machine Architecture
This is the formal specification of all the functions a particular machine can carry
out, known as the Instruction Set Architecture (ISA).
Microarchitecture
The implementation of the ISA in a specific CPU - i.e. the way in which the
specifications of the ISA are actually carried out.
The Machine Level - 2
Logic Circuits
Each functional component of the microarchitecture is built up of circuits that make
“decisions” based on simple rules
Devices
Finally, each logic circuit is actually built of electronic devices such as CMOS or
NMOS or GaAs (etc.) transistors.
Evolution of Multilevel Machines
Programs written in a computer’s true machine language
(level 1) can be directly executed by the computer’s
electronic circuits (level 0), without any intervening
interpreters or translators.
These electronic circuits along with the memory and
input/output devices, form the computer’s hardware.
Hardware consists of tangible objects – integrated
circuits, printed circuit boards, cables, power supplies,
memories and printers – rather than abstract ideas,
algorithms or instructions
Evolution of Multilevel Machines
Software, in contrast, consists of algorithms (detailed
instructions telling how to do something) ad their computer
representations- namely, programs.
Programs can be stored on hard disk , CD-ROM, or other
media, but the essence of software is the set of instructions
that makes up the programs, not the physical media on
which they are recorded.
In the very first computers, the boundary between hardware
and software was crystal clear. Over time, however, it has
blurred considerably, primarily due to the addition, removal
and merging of levels as computers have evolved.
Nowadays, it is often hard to tell them apart. In fact,
Hardware and software are logically equivalent.
Evolution of Multilevel Machines
Invention of microprogramming
Invention of operating system
Migration of functionality to microcode
Elimination of microprogramming
Invention of microprogramming
The first digital computers, back in the 1940s, had only two
levels, The ISA level, in which all the programming was
done and the digital logic level, which executed these
programs. The digital logic level’s circuits were
complicated, difficult to understand and build and
unreliable.
Invention of operating system
In these early years, most computers were “open shop”
which meant that the programmer had to operate the
machine personally. Next to each machine was a sign-up
sheet. A Programmer wanting to run a program signed up
for a block of time.
Operating System Tasks
Figure 1-3. A sample job for the FMS operating system.
Migration of functionality to
microcode
Once microprogramming had become common (by 1970),
designers realized that they could add any instructions by
just extending the microprogram.
In the other words, they could add “hardware” (new
machine instructions) by programming.
This revelation led to a virtual explosion in machine
instruction sets, as designer competed with one another to
produce bigger and better instruction sets.
Increased Functionality in Microcode
(1)
Instructions for integer multiplication and division
Floating-point arithmetic instructions
Instructions for calling and returning from procedures
Instructions for speeding up looping
Instructions for handling character strings
Indexing and indirect addressing
Relocation facilities
Interrupt systems
Process switching
Processing audio, image, multimedia files
Milestones (1)
Figure 1-4. Some milestones in the development
of the modern digital computer.
...
Milestones (2)
Figure 1-4. Some milestones in the development
of the modern digital computer.
...
Milestones (3)
Figure 1-4. Some milestones in the development
of the modern digital computer.
Computer Generations
Zeroth Generation Mechanical Computers (1642 – 1945)
First Generation Vacuum Tubes (1945 – 1955)
Second Generation Transistors (1955 – 1965)
Third Generation Integrated Circuits (1965 – 1980)
Fourth Generation Very Large Scale Integration (1980 – ?)
Fifth Generation Low-Power and Invisible Computers
von Neumann Machine
Figure 1-5. The original von Neumann machine.
PDP-8 Innovation – Single Bus
Figure 1-6. The PDP-8 omnibus.
IBM 360
Figure 1-7. The initial offering of the IBM 360 product line.
Technological and Economic
Forces
Figure 1-8. Moore’s law predicts a 60 percent annual increase in the number of
transistors that can be put on a chip. The data points given above and below the line are
memory sizes, in bits.
The Computer Spectrum (1)
Figure 1-9. The current spectrum of computers available.
The prices should be taken with a grain
(or better yet, a metric ton) of salt.
The Computer Spectrum (2)
Figure 1-10. A printed circuit board is at the heart of every personal computer. This one
is the Intel DQ67SW board. © 2011 Intel Corporation. Used by permission.
Microcontrollers
Next up the ladder, we have computers that are embedded inside
devices that are not sold as computers.
The embedded computers, sometimes called microcontrollers,
managed the devices and handle the user interface.
Microcontrollers are found in a large variety of different devices,
including the following
Appliances (clock radio, washer, dryer, microwave, burglar alarm)
Communications gear (cordless phone, cell phone, fax, pager)
Computer peripherals (printer, scanner, modem, CD ROM-drive)
Entertainment devices (VCR, DVD, Stereo, MP3 Player, set-top box)
Imaging devices (TV, Digital camera, camcorder, lens, photocopier)
Microcontrollers
Medical devices (X- ray, MRI, Heart monitor, Digital
thermometer)
Military weapon systems (cruise missile, ICBM, torpedo)
Shopping devices (Vending machine, ATM, cash register)
Toys (Talking doll, game console, radio-controlled car or
boat)
A car can easily contain 50 microcontrollers, run
subsystems including the antilock brakes, fuel injection,
radio, lights and GPS. A jet plan can easily have 200 or
more. A family might easily own several hundred computers
without even knowing it.
Microcontrollers
Within few years, practically everything that runs on
electricity or batteries will contain a microcontroller.
Each microcontroller has a processor, memory and I/O
capability and control the device’s lights, display, sound and
motors.
Arduino is one of the fun application of microcontrollers.
Arduino was designed by Massimo Banzi and David
Cuartielles in Ivrea, Italy. Their goal for the project was to
produce a complete embedded computing platform that
costs less than a large pizza with extra toppings, making it
easily assessible to students and hobbyists.
Microcontrollers
The Arduino system is an open-source hardware design,
which means that all its details are published an free so that
anyone can build and even sell and Arduino system.
It is based on the Atmel AVR 8-bit RISC microcontroller and
most board designs to included basic I/O support.
The board is programmed using an embedded
programming language called Wiring.
More at www.Arduino.cc
Mobile and Game Computers
A set up are the mobile platforms and video game machines.
They are normal computers, often with special graphics and
sound capability but with limited software and little
extensibility.
They started out as low-end CPUs for simple phones and
action games like ping pong on TV sets. Over the year, they
have evolved into far more powerful systems, rivaling or
even outperforming personal computers in certain
dimension.
Personal Computers
Personal computers include desktop and notebook models. They
usually come with a few gigabytes of memory, a hard disk holding up
to terabytes of data , a CD-ROM/DVD/Blu-Ray drive, sound card,
network interface, high resolution monitor, and other peripherals.
They have elaborate operation systems, many expansion options , and
a huge range of available software.
The heart of every personal computer is a printed circuit board a the
bottom or side of the case. It usually contains the CPU, memory,
various I/O devices (such as a sound chip and possibly a modem) as
well as interfaces to the keyboard, mouse, disk , network, etc and
some expansion slots as shown in the following figure.
Notebook computers are basically PCs in a smaller package.
Personal Computers
Personal Computers
Another variant on this theme is the tablet computer, such as
the popular iPad.
These devices are just normal PCs in a smaller package,
with a solid state disk instead of rotating hard disk, a touch
screen and a different CPU than the x86.
But from an architectural perspective, tables are just
notebooks with a different form factor.
Servers
Beefed-up personal computers or workstations are often
used a network servers or both for local area networks
(typically within a single company), and for the Internet.
These come in single- processor and multiple-processor
configurations, and have gigabyte of memory terabytes of
hard disk space and high-speed networking capability.
Some of them can handle thousands of transactions per
second.
Architecturally, however, a single- processor server is not
really very different from a single-processor personal
computer.
It is just faster, bigger and has more disk space and possibly
a faster network connection.
Clusters
Combination of large number of powerful servers – Clusters
Consist of standard server- class systems connected by
gigabit/sec networks and running special software that allow
all the machines to work together on a single problem, often
in business, science or engineering.
Normally they are what are called COTS (Commodity Off
The Shelf) computes than anyone can buy from a PC
vendor.
The main additional is high-speed networking but
sometimes that is also a standard commercial network card
too.
Large clusters are typically housed in special-purpose rooms
or buildings called data centres.
Mainframes
Room sized computers that hark back to the 1960s.
These machines are the direct descendants of IBM 360
mainframes acquired decades ago.
For the most part, they are not much faster than powerful
servers, but they always have more I/O capacity and are
often equipped with vast disk farms often holding thousands
of gigabytes of data.
Introduction to the x86
Architecture (1)
...
Figure 1-11. Key members of the Intel CPU family. Clock
speeds are measured in MHz (megahertz),
where 1 MHz is 1 million cycles/sec.
Introduction to the x86
Architecture (2)
Figure 1-11. Key members of the Intel CPU family. Clock
speeds are measured in MHz (megahertz),
where 1 MHz is 1 million cycles/sec.
Introduction to the x86
Architecture (3)
Figure 1-12. The Intel Core i7-3960X die. The die is 21 by 21 mm and has 2.27 billion
transistors. © 2011 Intel Corporation.
Used by permission.
Introduction to the x86
Architecture (4)
Figure 1-13. Moore’s law for (Intel) CPU chips.
Introduction to the ARM
Architecture
Figure 1-14. The Nvidia Tegra 2 system on a chip.
© 2011 Nvidia Corporation. Used by permission.
Introduction to the AVR Architecture
Figure 1-15. Microcontroller classes in the AVR family.
Peripherals in the Atmel megaAVR-
168
Three timers
Real-time clock with oscillator
Six pulse-width modulation channels
Eight analog-to-digital conversion channels
Universal serial receiver/transmitter
I2C serial interface
Programmable watchdog timer
On-chip analog comparator
Power brown-out detector
Internal programmable clock oscillator
Metric Units
Figure 1-16. The principal metric prefixes.