Introduction to
COMPUTER
ARCHITECTURE
Goals and learning objectives
• Introduction in computers’ architecture and organization;
the course will focus on the computer
– system buses
– memory system
– computer arithmetic and related structures for data-path
– I/O system
– parallel processing basics and specific architecture.
• Classification and exemplification of modern computer
architectures
COMPUTER ARCHITECTURE 3
Link to download slides
Professor Mihai ROMANCA
Course web page:
http://etc.unitbv.ro/~romanca/C-Arc/
(Or IESC -> DEC -> Members -> Romanca Mihai)
Electronics and Computers Department
email: [email protected]
COMPUTER ARCHITECTURE 2
Goals and learning objectives
• At the end of this course the student will be able to:
– define and describe different computer architectures
– describe the operation of different hardware subsystems
– use acquired information (together with data sheets and application
notes) for installation, repairing or design different interfaces to
computers.
– analyze and compare different high performance computer system.
• Some of the topics usually included in Computer
Architecture lectures and describing the Input / Output
system are brief discussed in our lectures because these
topics are the subject of another course in the next study
year: Interfaces and Peripheral
COMPUTER ARCHITECTURE 4
SYLLABUS
• 1. INTRODUCTION TO COMPUTER
ARCHITECTURE
– Organization and architecture
– Historical perspective of Computer architecture: ISA,
organization, implementation, architecture classification
– System buses: bus structure, multiple bus hierarchies, arbitration,
timings.
– Measuring performance: Evaluation of computer performance,
comparison between different machines, Metrics, different
benchmarks, Amdahl’s Law for compute the performance
improvement
COMPUTER ARCHITECTURE 5
SYLLABUS
• 3. INPUT-OUTPUT ORGANIZATION
– Input-Output Interface, isolated versus
memory-mapped IO
– Asynchronous data transfer, strobe control,
handshaking
– Modes of transfer, priority interrupt arbitration:
controlled by CPU, by Programmable Interrupt
Controllers, and by daisy-chaining.
COMPUTER ARCHITECTURE 7
SYLLABUS
• 2. MEMORY ORGANIZATION
– Memory hierarchy, main characteristics.
– Main memory: ROM, static RAM, dynamic RAM
– Auxiliary memory - main components (will be studied at the
Interfaces and Peripherals Course).
– Cache memory , mappings, writing into cache
– Memory management: static and dynamic allocation,
segmentation, paging and page translation, memory protection
– Virtual memory , address space and memory space, address
mapping using pages, associative memory page table, page
replacement
COMPUTER ARCHITECTURE 6
SYLLABUS
• 4. INTRODUCTION IN PARALLEL PROCESSING
ARCHITECTURES
– Advanced pipelining; Branch prediction, out-of-order execution,
predicated execution, speculative execution, data speculation;
– VLIW Architectures, organization, advantages and limitations;
– Vector processor architecture, vector processing and vector
operations;
– Introduction to multiprocessor architecture, characteristics of
multiprocessors, multithreading, classification of architectures
for parallel processing
COMPUTER ARCHITECTURE 8
REFERENCES
• Hayes P. John, Computer Architecture and Organisation, McGrow Hill
Comp., 1988.
• Mano M., Computer System Architecture, Prentice-Hall Inc. 1993.
• Romanca, M., Calculatoare – Arhitectură şi organizare, Ed.
Universităţii Transilvania, Braşov, 2004;
• Patterson, D., Hennessy, J., Computer Architecture - A Quantitative
Approach, second edition, Morgan Kaufmann Publishers, Inc. 1996;
• Stallings, William, Computer Organization and Architecture, 5th
edition, Prentice Hall International, Inc., 2000.
• Tanenbaum, A., Structured Computer Organization, 4th ed., Prentice-
Hall Inc. 1999.
COMPUTER ARCHITECTURE 9
HISTORICAL PERSPECTIVE OF
COMPUTERS
• 1944 – ENIAC (The Electronic Numerical
Integrator and Calculator )
– The first completely electronic, operational general-purpose
machine built using vacuum tubes.
– Designed and built by Eckert and Mauchly at the University of
Pennsylvania during 1943-45.
– 30 tons, 72 square meters, 200KW
– Performance : Read in 120 cards per minute; Addition took 200 µs;
Division 6 ms;
– Application: Ballistic calculations
COMPUTER ARCHITECTURE 11
ASSESSMENT FORMS
Colloquy written 80%
Laboratory Effective work in the 10%
computer network
Attendance 10%
A successful final qualification is conditioned by obtaining at 10
least the grade of 5 both to the final examination and to the
laboratory evaluation. If your mark at the final exam is higher
than 9,50 the percents for the final qualification are: 90 / 10 / 0
(final mark do not consider course attendance)
COMPUTER ARCHITECTURE
HISTORICAL PERSPECTIVE OF
COMPUTERS
• 1947: William Shockley, John Bardeen and Walter Brattain
of Bell Laboratories invent the transistor.
• 1958: Jack Kilby and Robert Noyce invent the integrated
circuit. Kilby was awarded the Nobel Prize in Physics in
2000 for his work
• 1960-1970, Mainframe computers used primarily by
large organizations for critical applications, bulk data
processing such as census,, industry and consumer
• Large: size, power consumption, cooling
COMPUTER ARCHITECTURE 12
HISTORICAL PERSPECTIVE OF
COMPUTERS
• 1970, Minicomputers, is a class of smaller computers that developed
in the mid-1960s and sold for much less than mainframe and mid-size
computers from IBM and its direct competitors.
• Minicomputers: machine initially focused on applications in
scientific laboratories, but rapidly branching out as the technology of
time-sharing - multiple users sharing a computer interactively
through independent terminals - became widespread
• 1971, Intel introduced the first microprocessor, the Intel 4004.
• 1973: Robert Metcalfe, a member of the research staff for Xerox,
develops Ethernet for connecting multiple computers and other
hardware
COMPUTER ARCHITECTURE 13
HISTORICAL PERSPECTIVE OF
COMPUTERS
• 1980s and 1990s - the introduction of many commercial
parallel computers with multiple processors.
• Intel followed suit by introducing the first of the most
popular microprocessor, the 80x86 series.
• PCs from Compaq, Apple, IBM, Dell, and many others,
soon became pervasive, and changed the face of computing
• The number of processors in a single machine ranged from
several in a shared memory computer to hundreds of
thousands in a massively parallel system
COMPUTER ARCHITECTURE 15
HISTORICAL PERSPECTIVE OF
COMPUTERS
• 1977 The birth of the first personal computer (PC) Apple
computer series
• 1981: The first IBM personal computer, code-named
“Acorn,” is introduced
– It uses Microsoft’s MS-DOS operating system. It has an Intel chip,
two floppy disks and an optional color monitor.
• 1990: Tim Berners-Lee, a researcher at CERN, the high-
energy physics laboratory in Geneva, develops HyperText
Markup Language (HTML), giving rise to the World
Wide Web.
COMPUTER ARCHITECTURE 14
COMPUTER PROGRESS (1)
• The rapid rate of improvements in
computers has come both from:
– Developing the semiconductor technology
• See Moore Low
– Innovations in organization and design of
computer machines
COMPUTER ARCHITECTURE 16
Computer technology progress
Integration Technology Typical number Typical functions
of devices
SSI Bipolar Gates, Flip-flops
MSI Bipolar & MOS 10-20 Adders, Counters
LSI Bipolar & MOS 50-100 ROM, RAM
VLSI Mostly CMOS 100-10,000 Processors
WSI CMOS 10,000-5,000,000 DSP, Special
>5,000,000 purposes IC
COMPUTER ARCHITECTURE 17
BROAD CLASSIFICATION OF TODAY
COMPUTER CATEGORIES
• Desktops
– Examples: PCs, workstations
– Metrics: latency (graphics & IO)
• Servers - to provide file and computing services.
– Examples: Web, database servers
– Metrics: throughput, reliability, scalability
• Embedded Systems
– Examples:PDAs, cell phones, ATMs
– Metrics: complexity, power, latency
COMPUTER ARCHITECTURE 19
Computer technology progress (2)
• Generalization of high-level language programming
reduced the need for object-code compatibility.
• Creation of standardized, vendor-independent operating
systems, lowered the cost and risk of bringing out a new
architecture.
• These changes made it possible to successfully develop a
new set of architectures, called RISC (Reduced
Instruction Set Computer) architectures, in the early 1980s.
– The RISC-based machines focused the attention of designers on two
critical performance techniques, the exploitation of instruction-level
parallelism (initially through pipelining and later through multiple
instruction issue) and the use of caches (initially in simple forms and later
using more sophisticated organizations and optimizations).
COMPUTER ARCHITECTURE 18
Computer system
• A computer system consists usually of a computer and its
peripherals.
• Computer organisation:
– CPU (datapath and control path)
– Main memory
– Input output system (link with external devices - peripherals)
• Computer peripherals include
– Input devices (keyboard, mouse, secondary memories)
– Output devices (display, speakers, secondary memories, printer).
COMPUTER ARCHITECTURE 20
General organization of a uni-processor
computer
• Flux of the information controlled by CPU on two paths:
– control path - the brain of the processor. Control tells the datapath,
memory and I/O devices what to do according to the wishes of the
instructions of a program.
– datapath - the brawn of the processor. The datapath performs
transfers and arithmetic/logic operations
CPU Registers Computer
ALU
data
Instructions Main memory
Control Unit
address and command 21
COMPUTER ARCHITECTURE
von Neumann / Harvard Arch.
COMPUTER ARCHITECTURE 23
STRUCTURE
COMPUTER ARCHITECTURE 22
COMPUTER ARCHITECTURE
• Computer architecture
– Instruction Set Architecture
– Implementation
• Organization
• Hardware
COMPUTER ARCHITECTURE 24
Instruction Set Architecture
• Interface between the hardware and the lowest
level software.
• ISA includes anything programmers need to know
to make a binary machine language program work
correctly, including instructions, registers, I/O
devices, memory addressing and so on.
• ISA permits that two different machines (different
implementation, costs, and performance) to run
the same software if they have the same defined
ISA
COMPUTER ARCHITECTURE 25
The von Neumann Architecture
(defined in 1945)
The principles:
• Data and instructions are both stored in the main memory
– stored program concept
• The content of the memory is addressable by location (without regard
to what is stored in that location: data or code);
• Instructions are executed sequentially (from one instruction to the
next, in order of their location in memory) unless the order is explicitly
modified.
• The computer contains the following subsystems: input / output
system, memory, control unit, arithmetic/logic unit (ALU);
• von Neumann computers are general purpose computers.
• Computers based on von Neumann Architecture are sequential
computers.
COMPUTER ARCHITECTURE 27
Implementation
• Organization includes the high-level aspects of a
computer's design, such as the memory system, the bus
structure, the internal CPU design, etc. Two machines can
have the same ISA but different organizations
• Hardware is used to refer to the specifics of a machine.
This would include the detailed logic design,
semiconductor technology, and the packaging technology
of the machine
COMPUTER ARCHITECTURE 26
A structural representation of a GPC
(von Neumann Architecture)
Computer system - "stored program" concept
Input Input Main Output Output
devices system Memory system devices
ID 28
Control ALU &
Unit (CU) Registers
CPU
Computer
COMPUTER ARCHITECTURE
Central Processing Unit
• The primary function of a CPU is to execute the instructions fetched
from the main memory.
• An instruction tells the CPU to perform one of its basic operations (an
arithmetic or logic operation, to transfer a data from/to main memory,
etc.).
• The Control Unit (CU) is the one which interprets (decodes) the
instruction to be executed and which "tells" the different other
components what to do.
• The CPU includes a set of registers that are temporary storage devices
typically used to hold intensively used data and intermediate results.
• Each instruction is performed as a sequence of steps - instruction
cycle
COMPUTER ARCHITECTURE 29
Control unit
• Control unit (CU) is the “brain” of the processor
• CU control - synchronize all the elements inside the CPU
and the interface to the external datapath
Instruction Control Unit Control signals internal
Register to the CPU
Status and Control signals on
condition Flags the system bus
Signals from
the system bus
Clock 31
COMPUTER ARCHITECTURE
Instruction cycle view
A simple view of the A refined view of the
instruction cycle: instruction cycle:
Instruction Instruction
fetch fetch
Instruction Instruction
execute decode
Operand
fetch
To run a program, CPU have a cyclic Instruction
operation in executing every execute
instruction
COMPUTER ARCHITECTURE 30
Processing unit
(ALU & Registers)
• Arithmetic and logic unit (ALU) performs arithmetic or
logic operations with operands addressed by Control Unit
• Before processing, the operands are stored in a set of
general purpose registers used as temporary memory
• CPU registers are a local, high-speed memory
– The set of general purpose registers can be used, however, to store
addressing information to access data memory
• Depending on the result of operations carried out, ALU set
some (condition) flags in a special register, as feedback to
the CU.
COMPUTER ARCHITECTURE 32
MAIN (INTERNAL) 33
MEMORY
d bits
Adress 0
Adress 1
Adress k
Adress 2a-1-1
Adress 2a-1
COMPUTER ARCHITECTURE
Peripherals
• Input (peripheral) devices - receive information from
external world (through different sensors) and transform
the physical nature and representation format of
information ↔ compatible with voltage levels specific to
computer.
• Output device - inverse / opposite function to input
devices. Process data from computer and transform the
information in the format acceptable for the output device.
COMPUTER ARCHITECTURE 35
Input / Output system
• Input / Output system - addressable places (ports)
through the computer exchange information with
external world. The system comprise circuits for:
– change the format of data (serial / parallel)
– temporarily store data (latch)
– verify / check the correctness (validity) of data
transferred
– synchronization between peripheral and CPU because
of the large differences in the operation speed.
– decoding logic
COMPUTER ARCHITECTURE 34