Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

EEE440 Computer Architecture

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 11

EEE440

Computer Architecture
Lecture 01

INTRODUCTION
Muhammad Kamran Fiaz (kamran@cuiwah.edu.pk)
What will we Learn
 What is Computer Architecture
 Computer architecture is the study of building entire computer systems.

 There are numerous factors to consider, many of which are conflicting.


 Performance, price and reliability are obviously vital concerns.
 Systems should be expandable to accommodate future developments, but must also be
compatible with existing technology.
 Power consumption is especially important in the growing market of portable devices such as cell
phones, PDAs, and MP3 players.

Processor Memory

Input/Output
Why Should You Care?

 Computer science majors are often expected to know something about hardware and
computer architecture.
 What are caches, Memories, DDR, GPUs?
 Is a 3.2 GHz 8-core processor or a SSD hard disk worth it?
Architecture for Programmers
 Knowing about architecture helps to explain why programming languages are designed the way they
are.
 What happens when we compile our source code?
 Why is computer arithmetic sometimes wrong?
 What is a bus error or segmentation fault?
 You can also learn how to make your code run faster.
 Inlined functions are faster than normal function calls.
 Where and how you store your data makes a big difference.
 Just rearranging the order of statements can sometimes help!
 A lot of software development requires knowledge of architecture.
 Compilers generate optimized code for specific processors.
 Operating systems manage hardware resources for applications.
 Good I/O systems are important for databases and networking.
 We’ll touch upon concurrent and parallel programming issues like data dependencies and memory
consistency.
About the Course
 This Computer Architecture course is roughly split into three parts.
 The first third discusses instruction set architectures—the bridge
between hardware and software.
 Next, we introduce more advanced processor implementations. The
focus is on pipelining, which is one of the most important ways to
improve performance.
 Finally, we talk about large and fast memory systems, I/O, and how
to connect it all together.
 Some of it will be the same topics as DLD, but in more depth.

Processor Memory

Input/Output
Instruction Set Architecture

 An instruction set describes the basic functions that a processor can perform. It serves as
an interface between hardware and software; programs are sequences of instructions that
get executed by hardware.
 We (i.e., you) do more assembly-language programming too.

Processor Memory

Input/Output
Processor Design
 The second part of the semester will address some limitations of the basic computer
design.
 Supporting more complex instructions would increase the cycle time.
 The CPU hardware is not fully utilized, so it runs slower than it could.
 We will focus on pipelining, which is one of the most important ways of speeding up
processors.
 The idea behind pipelining is very simple, but there are many details and special cases that must
be handled.
 Every modern processor uses pipelining.

Processor Memory

Input/Output
Memory and I/O
 Memory and I/O are often bottlenecks in modern machines.
 Processor speeds far outpace memory and I/O speeds.
 A 4GHz core i7 processor won’t help you browse the web any faster if you’re stuck on a low
speed internet connection.
 We’ll study some of the issues associated with memory and I/O.
 How caches can dramatically improve the speed of memory accesses.
 How processors, memory and peripheral devices can be connected, and CPU support for I/O
communications.

Processor Memory

Input/Output
Performance
 We will see how to make processors fast.
 We will talk about how to measure performance accurately.
 Quantifying performance improvements is critical in evaluating the costs and benefits of different
system designs.
 Unfortunately, many companies provide misleading or incomplete information about the
performance of their products.
 Our knowledge of performance will help us figure out just how good pipelining and
caching can be.

The IBM Blue Gene/P supercomputer "Intrepid"


at Argonne National Laboratory runs 164,000
processor cores using normal data center air
conditioning, grouped in 40 racks/cabinets
connected by a high-speed 3-D torus network
Review of Logic Design Concepts

 This course requires some basic knowledge of digital logic concepts


 Understanding of basic binary, hexadecimal, and two’s complement numbers
 Devices like multiplexers, registers and ALUs appear frequently. You should know what they do,
not necessarily how they work.
 Finite State Machine, and sequential circuits
 Next couple of lectures will refresh your knowledge of these concepts.
Tips to Excel in this course

 Remember the big picture.


 What are we trying to accomplish, and why?
 Read the textbook.
 It’s clear, well-organized, and well-written. The diagrams can be complex, but are worth studying.
Work through the examples and try some exercises on your own. Read the “Real Stuff” and
“Historical Perspective” sections.
 Talk to each other. (MS Teams is a good platform for that)
 You can learn a lot from other students, both by asking and answering questions. Find some good
partners for the homeworks (but make sure you all understand what’s going on).
 Help us help you.
 Stay connected. Talkative students are better than silent ones 

You might also like