[Link].
com
Datorarkitektur
F 1 - 1
Datorarkitektur
F 1 - 2
Course Information
Web page: [Link]
DATORARKITEKTUR
(Advanced Computer Architecture) Examination: written, 19 december 2000 kl. 14 - 18
Paul Pop Institutionen fr Datavetenskap (IDA) Linkpings Universitet email: paupo@[Link] [Link] phone: 28 5628 E++ building
Lecture notes: available from the web page at least 24 hours before the lecture
Text book: William Stallings: Computer Organization and Architecture, 5th edition, Prentice Hall International, Inc., 2000.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 3
Datorarkitektur
F 1 - 4
Preliminary Course Plan
Preliminary Course Plan (contd) Lecture 1. Introduction: Outline, Basic computer architecture and organization, Basic functions of a computer and its main components, The von Neumann architecture. This is to referesh our memory! The Memory System: Memory hierarchy, Cache memories, Virtual memories, Memory management. Lecture 2. The Memory System: continuation
Lectures 7 and 8. Superscalar Architectures: Instruction level parallelism and machine parallelism, Hardware techniques for performance enhancement, Data dependencies, Policies for parallel instruction execution, Limitations of the superscalar approach.
Lectures 9 and 10. VLIW Architectures: The VLIW approach - advantages and limitations. Compiling for VLIW architectures. The Merced (Itanium) architecture.
Lectures 3 and 4. Instruction Pipelining: Organization of pipelined units, Pipeline hazards, Reducing branch penalties, Branch prediction strategies.
Lectures 5 and 6. RISC Architectures: An analysis of instruction execution for code generated from high-level language programs, Compiling for RISC architectures, Main characteristics of RISC architectures, RISC-CISC trade-offs.
Lectures 11 and 12. Architectures for Parallel Computation: Parallel programms, Performance of parallel computers, A classication of computer architectures, Array processors, Multiprocessors, Multicomputers, Vector processors.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 5
Datorarkitektur
F 1 - 6
COMPUTER ARCHITECTURE (BASIC ISSUES)
What is a computer?
1. What is a Computer/Computer System? 2. The von Neumann Architecture 3. Application Specic vs. General-Purpose 4. Representation of Data and Instructions 5. Instruction Execution 6. The Control Unit 7. The Computer System 8. Main and Secondary Memory 9. Input - Output Devices Computer Central Processing Unit (CPU)
A computer is a data processing machine which is operated automatically under the control of a list of instructions (called a program) stored in its main memory.
Main memory
data control
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 7
Datorarkitektur
F 1 - 8
What is a computer system?
The von Neumann Architecture
The principles:
A computer system consists usually of a computer and its peripherals.
Computer peripherals include input devices, output devices, and secondary memories.
Computer system
Input device
Computer
Output device
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); Instructions are executed sequentially (from one instruction to the next, in order of their location in memory) unless the order is explicitly modied. The organization (architecture) of the computer: - a central processing unit (CPU); it contains the control unit (CU), that coordinates the execution of instructions and the arithmetic/logic unit (ALU) which performs arithmetic and logic operations; - (main) memory. Computer
Secondary memory
Central Processing Unit (CPU)
Main memory
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 9
Datorarkitektur
F 1 - 10
General-purpose (von Neumann) Architectures
The von Neumann Architecture (contd) In the von-Neumann architecture, a small set of circuits can be driven to perform very different tasks, depending on the software program which is executed. CPU Control unit ALU
von Neumann computers are general purpose computers.
they can solve very different problems depending on the program they got to execute!
Register data instructions
Key concepts here are program and program execution.
Main memory 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 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 which are temporary storage devices typically used to hold intensively used data and intermediate results.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 11
Datorarkitektur
F 1 - 12
Representation of Data
Machine Instructions
A CPU can only execute machine instructions; Each computer has a set of specic machine instructions which its CPU is able to recognize and execute. A machine instruction is represented as a sequence of bits (binary digits). These bits have to dene: - What has to be done (the operation code) - To whom the operation applies (source operands) - Where does the result go (destination operand) - How to continue after the operation is nished 0 0 0 01 0 1 11 0 0 01 0 1 1
opcode operand operand (memory) (register)
Inside a computer, data and control information (instructions) are all represented in binary format which uses only two basic symbols: "0" and "1". The two basic symbols are represented by electronics signals.
Numeric data are represented using the binary system, in which the positional values are powers of 2: 100101 = 1*20 + 0*21 + 1*22 + 0*23 + 0*24 + 1*25 10110 = 0*20 + 1*21 + 1*22 + 0*23 + 1*24 Binary numbers are added, subtracted, multiplied and divided (by the ALU) directly; it is not needed to convert them to decimal numbers rst. 100101 + 10110 = 111011
The representation of a machine instruction is divided into elds; each eld contains one item of the instruction specication (opcode, operands, etc.); the elds are organized according to the instruction format.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 13
Datorarkitektur
F 1 - 14
Type of Machine Instructions
Instruction Execution
The following four instructions perform Z:=(Y+X)*3:
Machine instructions are of four types: - Data transfer between memory and CPU registers - Arithmetic and logic operations - Program control (test and branch) - I/O transfer
Address 0 0 0 01 0 0 0 0 0 0 01 0 0 1 0 0 0 01 0 1 11 0 0 01 0 1 1
Move addr of Y Reg 3
0 0 0 11 0 1 11 0 0 00 0 1 1
Add addr of X Reg 3
Important aspects concerning instructions: - Number of addresses - Types of operands - Addressing modes Instruction set design - Operation repertoire - Register access - Instruction format
0 0 0 01 0 1 0
0 0 1 01 0 0 00 0 0 11 0 1 1
Mul operand "3" Reg 3
0 0 0 01 0 1 1
0 0 0 10 0 1 11 0 0 10 0 1 1
Move addr of Z Reg 3
.................................... 0 1 1 10 0 0 0 0 1 1 10 0 0 1 0 1 1 10 0 1 0 0 0 0 00 0 0 00 0 0 01 0 1 1 0 0 0 00 0 0 00 0 0 00 0 1 1 0 0 0 00 0 0 00 0 1 01 0 1 0
X Y Z
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 15
Datorarkitektur
F 1 - 16
Instruction Execution (contd) First instruction CPU
Instruction Execution (contd) Second instruction
CPU
Control unit
ALU
Control unit
ALU
0 0 0 01 0 1 11 0 0 01 0 1 1 Instruction Register
0 0 0 00 0 0 00 0 0 00 0 1 1 Register R3
0 0 0 11 0 1 11 0 0 00 0 1 1 Instruction Register
0 0 0 00 0 0 00 0 0 01 1 1 0 Register R3
data Main memory
data
instructions
instructions
Main memory 0 0 0 01 0 1 11 0 0 01 0 1 1 0 0 0 11 0 1 11 0 0 00 0 1 1 0 0 1 01 0 0 00 0 0 11 0 1 1 0 0 0 10 0 1 11 0 0 10 0 1 1 0 0 0 00 0 0 00 0 0 01 0 1 1 0 0 0 00 0 0 00 0 0 00 0 1 1 x x x xx x x xx x x xx x x x
0 0 0 01 0 1 11 0 0 01 0 1 1 0 0 0 11 0 1 11 0 0 00 0 1 1 0 0 1 01 0 0 00 0 0 11 0 1 1 0 0 0 10 0 1 11 0 0 10 0 1 1 0 0 0 00 0 0 00 0 0 01 0 1 1 0 0 0 00 0 0 00 0 0 00 0 1 1 x x x xx x x xx x x xx x x x
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 17
Datorarkitektur
F 1 - 18
Instruction Execution (contd) Third instruction
Instruction Execution (contd) Fourth instruction
CPU
CPU
Control unit
ALU
Control unit
ALU
0 0 1 01 0 0 00 0 0 11 0 1 1 Instruction Register
0 0 0 00 0 0 00 0 1 01 0 1 0 Register R3
0 0 0 10 0 1 11 0 0 10 0 1 1 Instruction Register
0 0 0 00 0 0 00 0 1 01 0 1 0 Register R3
data Main memory
data
instructions
instructions
Main memory 0 0 0 01 0 1 11 0 0 01 0 1 1 0 0 0 11 0 1 11 0 0 00 0 1 1 0 0 1 01 0 0 00 0 0 11 0 1 1 0 0 0 10 0 1 11 0 0 10 0 1 1 0 0 0 00 0 0 00 0 0 01 0 1 1 0 0 0 00 0 0 00 0 0 00 0 1 1 0 0 0 00 0 0 00 0 1 01 0 1 0
0 0 0 01 0 1 11 0 0 01 0 1 1 0 0 0 11 0 1 11 0 0 00 0 1 1 0 0 1 01 0 0 00 0 0 11 0 1 1 0 0 0 10 0 1 11 0 0 10 0 1 1 0 0 0 00 0 0 00 0 0 01 0 1 1 0 0 0 00 0 0 00 0 0 00 0 1 1 x x x xx x x xx x x xx x x x
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 19
Datorarkitektur
F 1 - 20
The Instruction Cycle
The Instruction Cycle (contd)
Each instruction is performed as a sequence of steps; the steps corresponding to one instruction are referred together as an instruction cycle.
A rened view of the instruction cycle:
A simple view of the instruction cycle:
Fetch instruction
Decode Fetch instruction Fetch operand Execute instruction Execute instruction
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 21
Datorarkitektur
F 1 - 22
The Control Unit
I/O 1 I/O 2 I/O n System Bus CPU Main Memory
The Control Unit (contd)
How are the elements inside the CPU and the interface to the external datapath controlled (synchronized) in order to work properly?
To perform this control, thats the task of the Control Unit System Bus CPU Registers
ALU
Control Unit Internal CPU Bus
IR PC
Petru Eles, IDA, LiTH
Address Bus
Control Bus
Data Bus
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 23
Datorarkitektur
F 1 - 24
The Control Unit (contd)
The Computer System
IR I/O 1 I/O 2 I/O n
Status&Cond. Flags
Control signals internal to the CPU Control unit Control signals on system bus Signals from system bus
Bus Main Memory Sec. Memory
CPU
Clock Techniques for implementation of the control unit: 1. Hardwired control 2. Microprogrammed control
CPU + main memory constitute the "core" of the computer system. Secondary memory + I/O devices are the so called peripherals. Communication between different components of the system is usually performed using one or several buses.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 25
Datorarkitektur
F 1 - 26
Memories
The Main Memory
one word
The main memory is used to store the program and data which are currently manipulated by the CPU. The secondary memory provides the long-term storage of large amounts of data and program. Before the data and program in the secondary memory can be manipulated by the CPU, they must rst be loaded into the main memory. The most important characteristics of a memory is its speed, size, and cost, which are mainly constrained by the technology used for its implementation. Typically - the main memory is fast and of limited size; - secondary memory is relatively slow and of very large size.
memory address buffer
address decoder
one bit Address 2 Address 1 Address 0
data buffer
memory control unit
The main memory can be viewed as a set of storage cells, each of which can be used to store a word. Each cell is assigned a unique address and the addresses are numbered sequentially: 0,1,2,... . Besides the storage cells, there are a memory address buffer (storing the address of the word to be read/written) and a data buffer (storing the data read/to be written), the address decoder and a memory control unit.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 27
Datorarkitektur
F 1 - 28
Secondary Memory
The Main Memory (contd) Hard Disk: The most widely used technology to implement main memories is semiconductor memories. Data are recorded on the surface of a hard disk made of metal coated with magnetic material. The disks and the drive are usually built together and encased in an air tight container to protect the disks from pollutants such as smoke particle and dust. Several disks are usually stacked on a common drive shaft with each disk having its own read/write head. Main features: - Direct access - Fast access: seek time 10 ms data transfer rate 5 MB/s - Large storage capacity (8MB - several GB)
The most common semiconductor memory type is random access memory (RAM). The information stored in a RAM semiconductor memory will be lost when electrical power is removed.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 29
Datorarkitektur
F 1 - 30
Secondary Memory (contd)
Secondary Memory (contd)
Diskette: Data are recorded on the surface of a oppy disk made of polyester coated with magnetic material. A special diskette drive must be used to access data stored in the oppy disk. It works much like a record turntable of gramophone. Main features: - Direct access - Cheap - Portable, convenient to use Main standards: - 5 1/4-inch. Capacity 360 KB/disk - 3 1/2-inch. Capacity 1.44 MB/disk (about 700 pages of A4 text)
Magnetic tape: Magnetic tape is made up from a layer of plastic which is coated with iron oxide. The oxide can be magnetized in different directions to represent data. Its operation uses a similar principle as in the case of a tape recorder. Main features: - Sequential access (access time about 1-5 s) - High value of storage (50 MB/tape) - Inexpensive It is often used for backup or archive purpose.
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 31
Datorarkitektur
F 1 - 32
Secondary Memory (contd) Optical Memory: CD-ROM (Compact Disk ROM): The disk surface is imprinted with microscopic holes which record digital information. When a low-powered laser beam shines on the surface, the intensity of the reected light changes as it encounters a hole. The change is detected by a photosensor and converted into a digital signal. - huge capacity: 775 MB/disk(550 diskettes). - inexpensive replication, cheap production. - removable. - read-only. - long access time (could be half a second). WORM (Write-Once Read-Many) CD: A laser beam of modest intensity equipped in the disk drive is used to imprint the hole pattern. - good for archival storage by providing a permanent record of large volumes of data.
Input-Output Devices
Input and output devices provide a means for people to make use of a computer. Some I/O devices function also as an interface between a computer system and other physical systems. Such interface usually consists of A/D and D/A converters.
Typical Input Devices
Device Keyboard Light pen Mouse Main features Like a typewriter Point at screen Move around on desk Advantages Disadvantages
Efcient for inputting Relatively slow, speed text depends on operator Easy to use Efcient for iconbased input, and menu selection Needs much software to make it versatile Needs much software support Needs much software support Slow
Joystick Graphics tablet Scanner Voice input
As above Used for games and Fast control Graphics input Copy pictures User friendly Input picture and freehand sketch
Erasable Optical Disk: combination of laser technology and magnetic surface technique. - can be repeatedly written and overwritten - high reliability and longer life than magnetic disks.
Fast input of graphics Bit-mapped graphics only No hands needed Limited vocabulary, Speech recognition software needed
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
[Link]
Datorarkitektur
F 1 - 33
Datorarkitektur
F 1 - 34
Summary
Input-Output Devices (contd) Typical Output Devices
Device Main features Advantages Disadvantages Speed
Most versatile, Display Screen both text and graphics Line printer Dot matrix printer Inkjet printer Impact printer, Very fast. Versatile text and graphics
No waste No hard copy of paper etc. Can cope with high volume Large versions up to are very noisy 6000 cps up to 200 cps ~20 line/sec 20 000 line/min possible Pen up to 1 meter/s Normal speech
Inexpensive low quality and speed
Mechanically si- small size; lower quality inexpensive then laser milar to above; printers dot produced by ejected ink droplet High quality text and graphics High quality graphics Very fast, high volume (used to be) expensive
Laser printer
Plotter Voice output
large graph- Large ics output machine, possible expensive Limited range of sounds
Computer = CPU + Main Memory Computer System = Computer + Peripherals The CPU executes instructions stored together with data in the main memory. Von Neumann computers are general-purpose, programmable computers. Data and instructions are represented in binary format. Machine instructions are specic to each computer and are organized according to a certain instruction format. An instruction is performed as a sequence of steps; this is the instruction cycle. The currently manipulated program and data are stored in the main memory. This is organized as a set of storage cells each one having a unique address. Secondary memory can be a hard disk, diskette, magnetic tape or an optical device. Input-output devices provide a means for people to exchange information with the computer.
Natural for certain Dont need applications to use eyes
Petru Eles, IDA, LiTH
Petru Eles, IDA, LiTH
Datorarkitektur
F 1 - 35
What is our Topic in this Course?
We are interested in some advanced issues, typical to modern microprocessors and computer systems.
These advances are at the origin of high performance achieved with todays computers.
Memory hierarchy: - cache memory - virtual memory - memory management;
Advanced CPU structures and instruction execution strategies: - pipelining - RISC architectures - superscalar architectures - VLIW architectures
System Architectures for parallel computing
Petru Eles, IDA, LiTH