Computer Architecture
Introduction
Lynolan Moodley
CSC2002S [email protected]
1
Admin
• Assessment
• Assignment
• Part of Class Test 2
• Exam
• Textbook
• Computer Organization
and Design 5ed, David
Patterson & John
Hennessy
2
Module Content
• Assembly programming
• The processor
• Pipelining
• Memory
3
Computers Are Everywhere
4
Types of Computers
Personal computers – a computer designed for use by an individual, usually
incorporating a graphics display, a keyboard, and a mouse.
Personal mobile devices – small wireless devices to connect to the Internet;
they rely on batteries for power, and software is installed by downloading
apps. Conventional examples are smart phones and tablets.
Server – a computer used for running larger programs for multiple users,
often simultaneously, and typically accessed only via a network.
Cloud computing – refers to large collections of servers that provide
services over the Internet; some providers rent dynamically varying
numbers of servers as a utility.
Supercomputer – a class of computers with the highest performance and
cost; they are configured as servers and typically cost tens to hundreds of
millions of dollars
Embedded computer – a computer inside another device used for running
one predetermined application or collection of software.
5
Chips!
Chip manufacturing process
6
Key Concepts
• Moore’s Law
• Pipelining
• Hierarchy of Memories
• Parallelism – perform operations in parallel
• Abstraction – represent the design at different levels of
representation; lower-level details are hidden to offer a simpler
model at higher levels
• Making the common case fast - Making the common case fast
will tend to enhance performance better than optimising the
rare case.
• Prediction - it can be faster on average to guess and start
working, rather than waiting for confirmation, assuming
recovery is not expensive
• Redundancy - include redundant components that can take
over when a failure occurs AND help detect failures to improve
dependability 7
Abstraction
8
Abstraction
9
Moore’s Law
“… the number of transistors that can be inexpensively placed on an integrated circuit is
increasing exponentially, doubling approximately every years… ”
– Gordon Moore, 1965
• Observation of
exponential growth
in the number of
transistors in a
processor
• Software
performance
increased with the
number of
transistors until the
early 2000s
10
The Power Wall
Dennard scaling – an observation that as transistors get smaller and circuits become faster, a
processor’s power consumption stays constant (power density remains the same). A recent
breakdown of Dennard scaling: more transistors require more power and generate more
heat.
• Energy is required to power processors AND cool them
11
The Power Wall
12
Multiprocessors
• Include more than one
processor on a chip
• Requires parallel
programming
(multithreading)
• Work required from the
programmer
• Load balancing
• Synchronisation
• Consider data
placement in memory
13
Below the Program
• Application software
• Written in high level language
• System software
• Compiler – translates high level
languages to machine code
• Operating system
• Handling IO
• Managing memory
• Scheduling tasks and sharing
resources
• Hardware
• Processor, memory, IO
controllers
14
Below the Program
15
Below the Program
16
Below the Program
17