Upload
jonah-carpenter
View
218
Download
0
Embed Size (px)
DESCRIPTION
3 What is the relationship between the Instruction Set Architecture and Assembly / Machine language? An assembly / machine program is made up of the instructions in the ISA and makes use of registries in the ISA. An assembly / machine program is made up of the instructions in the ISA and makes use of registries in the ISA.
Citation preview
11
The Instruction Set The Instruction Set ArchitectureArchitecture
September 27September 27thth, 2007, 2007By: Corbin JohnsonBy: Corbin Johnson
CS 146CS 146
22
What is the Instruction Set What is the Instruction Set Architecture?Architecture?
It contains instructions to use and manipulate It contains instructions to use and manipulate programmer-accessible hardware in a computer.programmer-accessible hardware in a computer.
in terms of in terms of place in a place in a computercomputer
33
What is the relationship between What is the relationship between the Instruction Set Architecture and the Instruction Set Architecture and
Assembly / Machine language?Assembly / Machine language?An assembly / machine program is made An assembly / machine program is made
up of the instructions in the ISA and up of the instructions in the ISA and makes use of registries in the ISA.makes use of registries in the ISA.
44
Here’s how it worksHere’s how it worksHigher level languages (Java, C++, etc…) Higher level languages (Java, C++, etc…)
are translated into assembly / machine are translated into assembly / machine language by compilers.language by compilers.
When a user calls the program, the When a user calls the program, the compiled program is loaded into RAM.compiled program is loaded into RAM.
The program then executes, line by line, The program then executes, line by line, until the Operating System takes back until the Operating System takes back control of the computer.control of the computer.
55
A Sample Computer: ARCA Sample Computer: ARCThe ARC has an ISA that is a subset of The ARC has an ISA that is a subset of
the ISA of the SPARC, or Scalable the ISA of the SPARC, or Scalable Processor Architecture processor Processor Architecture processor developed by Sun in the mid 80’s.developed by Sun in the mid 80’s.
Has most important features of SPARC Has most important features of SPARC but has left out most complex portions.but has left out most complex portions.
ARC is considered a RISC or “Reduced ARC is considered a RISC or “Reduced Instruction Set Computer.”Instruction Set Computer.”
66
Goal: Program the ARCGoal: Program the ARCA program can be written for the ARC A program can be written for the ARC
using the ISA of the ARC.using the ISA of the ARC.
Discuss three main parts of ARC:Discuss three main parts of ARC:RAMRAMProcessor (CPU)Processor (CPU) Instruction SetInstruction Set
77
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
32 bit memory32 bit memoryByte AddressableByte AddressableMemory-mapped I/OMemory-mapped I/O
88
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
The OSThe OS221111 bits of memory bits of memoryOnly OS uses this Only OS uses this areaarea
99
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
The User SpaceThe User SpaceUndefined amountUndefined amountUser’s program fillsUser’s program fillsInto unused space Into unused space Designed to work well Designed to work well If stack small and If stack small and Program large or Program large or Vice versa. Vice versa.
1010
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
The System StackThe System StackUndefined amountUndefined amountProgram’s executionProgram’s executionUses stack for storage Uses stack for storage Grows towards lowerGrows towards lowerMemory as user’s Memory as user’s Space grows towardsSpace grows towardsHigher memory. Higher memory.
1111
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
Memory-Mapped I/OMemory-Mapped I/OStatic slotsStatic slotsData talks with inputData talks with inputAnd output devices And output devices
1212
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
The CPUThe CPUExecutes programsExecutes programsIn main memoryIn main memory Contains RegistriesContains RegistriesHolding dataHolding dataFour-Step cycle toFour-Step cycle toExecute programExecute program
1313
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
The Four Step The Four Step CycleCycle
1)1) Fetch next instructionFetch next instruction2)2) Decode the instructionDecode the instruction3)3) Read operand in main memory Read operand in main memory
if anyif any4)4) Execute instruction and store Execute instruction and store
results, if any.results, if any.
1414
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
The registersThe registers Positions in CPU that Positions in CPU that
hold data during hold data during calculationcalculation
Special Registries: %r0, Special Registries: %r0, %sp, %link, %psr, % pc%sp, %link, %psr, % pc
1515
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
The Arithmetic and The Arithmetic and Logic UnitLogic Unit
Takes care of Takes care of calculations that need to calculations that need to be executedbe executed
Fed instructions by the Fed instructions by the Control UnitControl Unit
1616
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
Some Features of the ISA:Some Features of the ISA: All of the instructions in the Instruction Set are All of the instructions in the Instruction Set are
32 bit32 bit ARC is load-store: all operands must be either ARC is load-store: all operands must be either
loaded to use or stored in memory to be storedloaded to use or stored in memory to be stored ARC is two’s compliment ARC is two’s compliment
1717
Discuss three main parts of ARC:Discuss three main parts of ARC: RAMRAM Processor (CPU)Processor (CPU) Instruction SetInstruction Set
Three different classes of instructions:Three different classes of instructions: Arithmetic and LogicArithmetic and Logic Memory AccessMemory Access Transfer of ControlTransfer of Control
1818
Three different classes of instructions:Three different classes of instructions: Arithmetic and LogicArithmetic and Logic Memory AccessMemory Access Transfer of ControlTransfer of Control
Arithmetic and LogicArithmetic and LogicIncludes Includes instructions like Add instructions like Add and Subtractand SubtractAlso includes Also includes instructions like AND, instructions like AND, OR and NOT.OR and NOT.
1919
Three different classes of instructions:Three different classes of instructions: Arithmetic and LogicArithmetic and Logic Memory AccessMemory Access Transfer of ControlTransfer of Control
Memory AccessMemory AccessIncludes Includes instructions load and instructions load and storestoreLoads into registers Loads into registers and stores into and stores into memory slots in RAMmemory slots in RAM
2020
Three different classes of instructions:Three different classes of instructions: Arithmetic and LogicArithmetic and Logic Memory AccessMemory Access Transfer of ControlTransfer of Control
Transfer of ControlTransfer of ControlInstructions help get Instructions help get to different places in to different places in programprogramPlace in ISA where Place in ISA where conditionals first are conditionals first are seen (if statement, seen (if statement, loops, etc…)loops, etc…)Essentially changes Essentially changes program counter program counter registerregister
2121
The Syntax of the ARC Assembly The Syntax of the ARC Assembly LanguageLanguage
The The MnemonicMnemonic is a way for the programmer is a way for the programmer to remember the instruction’s name.to remember the instruction’s name.
A A CompilerCompiler will take a written assembly will take a written assembly language code and convert it to machine language code and convert it to machine code.code.
2222
What’s that cc after addcc?What’s that cc after addcc?
CC stands for Condition Code and they are set in the CC stands for Condition Code and they are set in the PSR (it is a 32 bit registry)PSR (it is a 32 bit registry)
There are 4: There are 4: Z: if the result of the instruction is zero, this flag is set.Z: if the result of the instruction is zero, this flag is set. N: if the most significant bit is 1, this bit is setN: if the most significant bit is 1, this bit is set C: if there is a carry out of the MSB or a borrow into it, C: if there is a carry out of the MSB or a borrow into it,
this flag is set.this flag is set. V: Overflow. The result cannot be represented in 32 V: Overflow. The result cannot be represented in 32
bits.bits.
2323
THE PSR THE PSR (Processor Status Register)(Processor Status Register)
2424
More on The Syntax of the ARC More on The Syntax of the ARC Assembly LanguageAssembly Language
Brackets Brackets [ ] around an operand means to load [ ] around an operand means to load (or store) from (or in) the memory which is (or store) from (or in) the memory which is addressed by the operand within the brackets.addressed by the operand within the brackets.
2525
A few of the 35 instructionsA few of the 35 instructionsThe ARC ISA has more than 35 The ARC ISA has more than 35
instructions.instructions.Memory: ld [%r5 + 2064] , %r1Memory: ld [%r5 + 2064] , %r1Arithmetic: addcc %r1, 129, %r1Arithmetic: addcc %r1, 129, %r1Control: call sub_rControl: call sub_r
2626
From Assembly Language to From Assembly Language to Machine CodeMachine Code
Each Assembly Each Assembly Language Language instruction is instruction is translated one translated one line for one line line for one line (one to one).(one to one).
rd: destination registryrd: destination registry
Cond: based on the PSR, this Cond: based on the PSR, this executes differentlyexecutes differently
Simm13: a user defined Simm13: a user defined constant in 2’s compliment constant in 2’s compliment in 13 bits.in 13 bits.
Rs1: registry 1 in the CPURs1: registry 1 in the CPU
Disp30/Disp 22: 30/22 bit number is Disp30/Disp 22: 30/22 bit number is shifted to the left to achieve 32 bit shifted to the left to achieve 32 bit destination of it’s function.destination of it’s function.
2727
SummarySummaryAlthough not explicitly shown, this method Although not explicitly shown, this method
will take an upper level program and will take an upper level program and convert it into actual things the computer convert it into actual things the computer can do.can do.
Involves translation from the higher level Involves translation from the higher level into assembly language into machine code into assembly language into machine code using the ARC ISA.using the ARC ISA.