Slides for Lecture 5
ENCM 501: Principles of Computer Architecture Winter 2014 Term Steve Norman, PhD, PEng
Electrical & Computer Engineering Schulich School of Engineering University of Calgary
23 January, 2014
ENCM 501 W14 Slides for Lecture 5
slide 2/19
Previous Lecture
◮ a little more about die yield ◮ measuring and reporting computer performance ◮ quantitative principles of computer design
ENCM 501 W14 Slides for Lecture 5
slide 3/19
Today’s Lecture
◮ ISA design ideas ◮ the ISA view of memory ◮ addressing modes
Related reading in Hennessy & Patterson: Sections A.1–A.3
ENCM 501 W14 Slides for Lecture 5
slide 4/19
ISA versus Microarchitecture
As stated before, here are two important parts of computer architecture:
◮ What instructions are available to applications
programmers? (Usually indirectly, via compilers.) This is
- ften called instruction set architecture, or ISA.
◮ Given the ISA, how exactly are instructions handled by
processors—how deep are pipelines; can instructions be executed out-of-order? How is the memory system organized to minimize loss of clock cycles in fetching instructions and reading and writing data? This category of concern is sometimes called microarchitecture or organization.
ENCM 501 W14 Slides for Lecture 5
slide 5/19
In designing a new microarchitechture for an existing ISA, the goals are
◮ correct machine-language programs must continue to run
correctly;
◮ performance—perhaps running times of tasks, perhaps
energy spent per task, perhaps something else—should be improved. In designing a brand-new ISA or extending an existing ISA in a major way, the concerns are
◮ (one level up, software) making performance wins as
straightforward as possible for compiler writers;
◮ (one level down, microarchitecture) making hardware
implementation reasonable in terms of design and fabrication costs per chip, chip area, energy and power concerns, and so on.
ENCM 501 W14 Slides for Lecture 5
slide 6/19
Classification of ISAs
Section A.2 of the textbook identifies four ISA classes:
◮ stack ◮ accumulator ◮ register-memory ◮ register-register/load-store (which is often shortened to