quiz pipelining - faculty website listing · operation code, a.k.a. opcode specifies which...
TRANSCRIPT
QUIZ Pipelining
A computer pipeline has 4 processors, as shown above. Each processor takes 15 ms to execute, and each instruction must go sequentially through all 4 processors.
A program has 10 instructions. Calculate how long it takes to run it:
• without pipelining
• with pipelining
1
Extra-credit QUIZ Pipelining -due next time-
2
Low-level software
Components
Circuits
Gates
Transistors
Abstractions and more abstractions …
4 You are here
6.1 Computer Operations
Computer = programmable electronic device that can store, retrieve, and process data
Von Neumann architecture:
• Data and instructions to manipulate the data are represented in the same way (binary) and are stored in the same place (memory)
• For processing, both data and
instructions have to be brought
into the CPU (fetch-execute cycle)
5
6.2 Machine Language
Machine language = The language made up of binary coded instructions built into the hardware of a particular computer and used directly by the computer
Why would anyone use machine language?
(Hint: they had no choice. Why?)
6 Image source: http://www.alpcentauri.info/chapter_18.html
Remember: The Fetch-Execute Cycle
7
According to the CPU’s
machine language
Characteristics of machine language:
– Every processor type has its own set of specific machine instructions
– The relationship between the processor and the instructions it can carry out is completely integrated
– Each machine-language instruction does only one very low-level task
8
Pep/8 Virtual Computer
Virtual computer
A hypothetical machine designed to contain the important features of a real machine
Pep/8
A virtual computer designed by Stanley Warford that has 39 machine-language instructions
(We’re going to cover only a few of them!)
9
Pep/8 Virtual Computer
Virtual computer
A hypothetical machine designed to contain the important features of a real machine
Pep/8
A virtual computer designed by Stanley Warford that has 39 machine-language instructions
(We’re going to cover only a few of them!)
10
Extra-credit for next time: Figure out what “Pep” and “8” stand for!
Pep/8 Registers
– The program counter (PC) (contains the address of the next instruction to be executed)
– The instruction register (IR) (contains a copy of the instruction being executed)
– The accumulator (register A)
The memory unit is made up of 65,636 Bytes of storage
11
Can you figure out how long the Pep/8 address is?
QUIZ
The previous version of Pep, Pep/7, could use only 12 bits for memory addresses.
How many Bytes of memory could Pep/7 address?
12
13
Explain the
address format!
16 bits
24
bits
14
Explain the
address format!
Can you show what
instructions look like
in memory?
Instruction Format
15
Instruction Format
Operation code, a.k.a. opcode Specifies which instruction is to be carried out Register specifier Specifies which register is to be used (only use A in
this chapter) Addressing-mode specifier Says how to interpret the operand part of the
instruction: • Direct • Immediate
16
Say that again?!?
Instruction Format
Addressing-mode specifier Says how to interpret the operand part of the
instruction: • Direct • Immediate 2 + 3 Immediate A + B Direct
17
??
18
Immediate and direct addressing modes
Immediate and direct addressing modes
19
Example:
ADD 42 to accumulator A
What exactly am I to add?
Instruction Format
20
Addressing modes:
• immediate
• direct
Is there something we are not telling you
about Pep’s addressing modes?
QUIZ Pipelining
A computer pipeline has 5 stages.
Each stage takes 12 ns (nanosec.) to execute, and each instruction must go sequentially through all 5 stages.
A program has 20 instructions. Calculate how long it takes to run it:
• without pipelining
• with pipelining 21
QUIZ
• Name all the 4 parts of the “fetch-execute” cycle.
• What do IR, A, and PC stand for in the computer’s architecture?
• Name and explain the 2 addressing modes we’ve covered.
22
QUIZ: Immediate and direct addressing modes
23
SUB 31 from accumulator A
What exactly am I to
subtract?
PEP/8 machine instructions
24
25
What does this instruction mean, what is
its hex code, and what exactly does it do?
26
What does this instruction mean, what is
its hex code, and what exactly does it do?
27
What do these instructions mean, what are
their hex codes, and what exactly do they do?
Wait a second ...
28
Conclusions It is useless to write operands into IR.
IR should be written only in the FETCH stage of the Fetch-Execute cycle, when the 3 bytes of the instruction are brought from memory.
Operands can be written only to:
• Accumulator
• Memory
Some instructions cannot have the immediate addressing mode
29
30
What do these instructions mean, what are
their hex codes, and what exactly do they do?
Why is there only one on this page?
What does this instruction mean, what is
its hex code, and what exactly does it do?
32
What do these instructions mean, what are
their hex codes, and what exactly do they do?
QUIZ
• Name all the 4 parts of the “fetch-execute” cycle.
• What do IR, A, and PC stand for in the computer’s architecture?
• Name and explain the 2 addressing modes we’ve covered.
33
Trick QUIZ: Immediate and direct addressing modes
34
We have this Pep
instruction:
LOAD 20 (decimal) into
accum. A
What exactly am I to load?
Problem 16 / 189
35
The PEP/8 memory has the following contents:
0001 A2
0002 11
0003 00
0004 FF
What are the contents of reg. A after this instruction
is executed:
C1 00 01
36
0001 A2
0002 11
0003 00
0004 FF
Instruction
executed:
C1 00 01
Problem 17 / 190
37
The PEP/8 memory has the following contents:
0001 A2
0002 11
0003 00
0004 FF
What are the contents of reg. A after this instruction
is executed:
C1 00 02
The first step is …
Problem 17 / 190
38
The PEP/8 memory has the following contents:
0001 A2
0002 11
0003 00
0004 FF
What are the contents of reg. A after this instruction
is executed:
C1 00 02
1100 0001 0000 0000 0000 0010
6.3 Program to write "Hello"
39
Every program ends with this!
Hand Simulation
40
What is the fetch/execute cycle?
How much is the PC incremented?
0 0 0 0
0000 50
0001 00
0002 48
0003 50
What ASCII character is this?
Hand Simulation
41
What is the fetch/execute cycle here? What ASCII character is this?
0 0 0 0
Your turn!
What does this program do?
1111
0000
1111
1 0000
43
Steps for executing a machine-language
program
Loader
Program
in
memory Execute
Machine
code
program
in a file
on disk
SKIP Pep/8 Simulator
44
Problem 33 / 191
45
The PEP/8 computer has the following program in
memory (in hex):
0001 49
0002 00
0003 08
0004 51
0005 00
0006 08
0007 00
Convert the program to binary and
explain in your own words what it does.
Problem 33 / 191
46
The PEP/8 computer has the following program in
memory (in hex):
0001 49
0002 00
0003 08
0004 51
0005 00
0006 08
0007 00 0008 ??
ASCII code of character
entered by user
Character input, direct mode, to
memory address 0x0008
Character output, direct mode, from
memory address 0x0008
STOP
47
0001 49
0002 00
0003 08
0004 51
0005 00
0006 08
0007 00
0008 ?? ASCII code of character
entered by user
Character input, direct mode, to
memory address 0x0008
Character output, direct mode, from
memory address 0x0008
STOP
Code (
instr
uctions)
data
Remember: In a Von Neumann architecture,
code and data are stored in the same memory!
Fact: Writing programs in machine language sucks!
(i.e. it is time-consuming, boring, error-prone, unintuitive, etc.)
48
… that’s why they invented
assembly language
49
6.4 Assembly Language
Assembly language
A language that uses mnemonic codes to represent machine-language instructions
Assembler A program that reads each of the instructions in mnemonic form and translates it into the machine-language equivalent
50
51
Steps for executing an assembly-language program
Loader
Program
in
memory Execute
Pep/8 Assembly Language
52
Opcode is 31
Opcode is 38
Opcode is 39
Opcode is 04
“Hello” program in assembly
CHARO 0x0048, i ;Outputs character 'H'
CHARO 0x0065, i
CHARO 0x006C, i
CHARO 0x006C, i
CHARO 0x006F, i
STOP
.END
53
mnemonic operand addressing
mode comments
What in the
world is this?!
A New Program
54
Problem: Read and sum three
values and print the sum
How would you do it by hand?
Declaring variables in assembly: We simply reserve space in memory for them!
55
These are labels. They are placeholders for memory
addresses - the assembler will replace them with numeric
addresses when generating the machine code!
Assembler directives, a.k.a. pseudo-ops
56
What is the difference between
operations and pseudo operations?
Completed Program
57
sum: .WORD 0x0000
num1: .BLOCK 2
num2: .BLOCK 2
num3: .BLOCK 2
main: LDA sum,d
DECI num1,d
ADDA num1,d
DECI num2,d
ADDA num2,d
DECI num3,d
ADDA num3,d
STA sum,d
DECO sum,d
STOP
.END
Completed Program
58
sum: .WORD 0x0000
num1: .BLOCK 2
num2: .BLOCK 2
Num3: .BLOCK 2
main: LDA sum,d
DECI num1,d
ADDA num1,d
DECI num2,d
ADDA num2,d
DECI num3,d
ADDA num3,d
STA sum,d
DECO sum,d
STOP
.END
Houston, we have a problem! How does the CPU know that the program starts here?
Solution: “Branch” instruction
59
BR main
sum: .WORD 0x0000
num1: .BLOCK 2
num2: .BLOCK 2
num3: .BLOCK 2
main: LDA sum, d
DECI num1, d
ADDA num1, d
DECI num2, d
ADDA num2, d
DECI num3, d
ADDA num3, d
STA sum, d
DECO sum, d
STOP
.END
QUIZ: Show the memory contents!
60
BR main
sum: .WORD 0x0000
num1: .BLOCK 2
num2: .BLOCK 2
num3: .BLOCK 2
main: LDA sum, d
DECI num1, d
ADDA num1, d
DECI num2, d
ADDA num2, d
DECI num3, d
ADDA num3, d
STA sum, d
DECO sum, d
STOP
.END Memory map on next slide
61
62
BR
LDA
DECI
ADDA
sum num1
num2
num3
DECI
63
BR
LDA
DECI
ADDA
sum num1
num2
num3
DECI
Challenge: Write all the machine code (in hex)
64
BR
LDA
DECI
ADDA
sum num1
num2
num3
DECI
Extra-credit
65
Your turn! Change the program so it adds up four numbers
We have covered sections 6.1, 6.2, 6.3, and part
of 6.4.
• Read the text carefully and make sure you can explain in your own words what each instruction accomplishes.
Individual work (to do in notebook for next time):
16, 17, 19, 21-26
66
EoL2