instruction sets

18
© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Instruction sets • Computer architecture taxonomy. • Assembly language. 1

Upload: tola

Post on 25-Jan-2016

24 views

Category:

Documents


0 download

DESCRIPTION

Instruction sets. Computer architecture taxonomy. Assembly language. von Neumann architecture. Memory holds data, instructions. Central processing unit (CPU) fetches instructions from memory. Separate CPU and memory distinguishes programmable computer. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

Instruction sets

• Computer architecture taxonomy.• Assembly language.

1

Page 2: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

von Neumann architecture

• Memory holds data, instructions.• Central processing unit (CPU) fetches

instructions from memory.• Separate CPU and memory distinguishes

programmable computer.

• CPU registers help out: program counter (PC), instruction register (IR), general-purpose registers, etc.

2

Page 3: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

CPU + memory

memoryCPU

PC

address

data

IRADD r5,r1,r3200

200

ADD r5,r1,r3

3

Page 4: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed. Slide 4

The von Neumann model

Input Output

So where is the Input/Output?

here

CPU Buses

Page 5: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed. Slide 5

The Harvard Architecture (1)• Harvard architecture is a computer

architecture with physically separate storage and signal pathways for instructions and data.

• The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape (24 bits wide) and data in electro-mechanical counters (23 digits wide). These early machines had limited data storage, entirely contained within the data processing unit, and provided no access to the instruction storage as data, making loading and modifying programs an entirely offline process.

Page 6: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed. Slide 6

The Harvard Architecture (2)• In a computer with a von Neumann architecture

(and no cache), the CPU can be either reading an instruction or reading/writing data from/to the memory. • Both cannot occur at the same time since the

instructions and data use the same bus system. • In a computer using the Harvard architecture,

the CPU can read both an instruction and perform a data memory access at the same time, even without a cache.

• A Harvard architecture computer can thus be faster for a given circuit complexity because instruction fetches and data access do not contend for a single memory pathway.

Page 7: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed. Slide 7

The Harvard Architecture (3)• In a Harvard architecture, there is no

need to make the two memories share characteristics. In particular, the word width, timing, implementation technology, and memory address structure can differ.

• In some systems, instructions can be stored in read-only memory while data memory generally requires read-write memory.

• Instruction memory is often wider than data memory.

Page 8: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

Harvard architecture

CPU

PCdata memory

program memory

address

data

address

data

8

Page 9: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed. Slide 9

Harvard Architecture Example

Block Diagram of the PIC16C8X

Page 10: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed. Slide 10

Modified Harvard Architecture

• The Modified Harvard architecture is very like the Harvard architecture but provides a pathway between the instruction memory and the CPU that allows words from the instruction memory to be treated as read-only data. • This allows constant data, particularly text strings, to be

accessed without first having to be copied into data memory, thus preserving more data memory for read/write variables.

• Special machine language instructions are provided to read data from the instruction memory.

• Standards-based high-level languages, such as the C language, do not support the Modified Harvard Architecture, so that in-line assembly or non-standard extensions are needed to take advantage of it.

• Most modern computers that are documented as Harvard Architecture are, in fact, Modified Harvard Architecture.

Page 11: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

von Neumann vs. Harvard

• Harvard can’t use self-modifying code.

• Harvard allows two simultaneous memory fetches.

• Most DSPs use Harvard architecture for streaming data:• greater memory bandwidth;• more predictable bandwidth.

11

Page 12: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

RISC vs. CISC

• Complex instruction set computer (CISC):• many addressing modes;• many operations.

• Reduced instruction set computer (RISC):• load/store;• pipelinable instructions.

12

Page 13: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

Instruction set characteristics

• Fixed vs. variable length.• Addressing modes.• Number of operands.• Types of operands.

13

Page 14: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

Programming model

• Programming model: registers visible to the programmer.

• Some registers are not visible (IR).

14

Page 15: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

Multiple implementations

• Successful architectures have several implementations:• varying clock speeds;• different bus widths;• different cache sizes;• etc.

15

Page 16: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

Assembly language

• One-to-one with instructions (more or less).

• Basic features:• One instruction per line.• Labels provide names for addresses

(usually in first column).• Instructions often start in later columns.• Columns run to end of line.

16

Page 17: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

ARM assembly language example

label1 ADR r4,c

LDR r0,[r4] ; a comment

ADR r4,d

LDR r1,[r4]

SUB r0,r0,r1 ; comment

17

Page 18: Instruction sets

© 2008 Wayne WolfOverheads for Computers as

Components 2nd ed.

Pseudo-ops

• Some assembler directives don’t correspond directly to instructions:• Define current address.• Reserve storage.• Constants.

18