Computer Architecture and Organization Instruction Sets: Characteristics and Functions.
-
Upload
jeremy-webster -
Category
Documents
-
view
220 -
download
0
Transcript of Computer Architecture and Organization Instruction Sets: Characteristics and Functions.
![Page 1: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/1.jpg)
Computer Architecture and Organization
Instruction Sets:Characteristics and Functions
![Page 2: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/2.jpg)
Instruction set
• The complete collection of instructions that are a CPU can perform
• A program is a “machine code” of consecutive machine instructions
• Represented in binary form• Usually described by assembly codes
![Page 3: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/3.jpg)
Elements of an Instruction
• Operation code (Op code)—Do this
• Source Operand reference—To this
• Result Operand reference—Put the answer here
• Next Instruction Reference—When you have done that, do this...—Implicit in case of sequential execution (PC
stores it)
![Page 4: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/4.jpg)
Operand source and destination
• Main memory • Virtual memory• Cache• CPU register• I/O device
![Page 5: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/5.jpg)
Instruction Representation
• In machine code each instruction has a unique bit pattern
• For human user (programmer) a symbolic representation is used—e.g. ADD, SUB, LOAD
• Operands can also be represented in this way—ADD R, A—Means add the contents of memory location A
to Register R—And store the result back in Register R—Note: operation performed on the contents of
A (not on the address itself)
![Page 6: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/6.jpg)
Simple Instruction FormatCharacteristics: • 2 operand instruction
—Could be 0, 1, 2, 3 or more …
• 4 bit opcode—Instruction set can have at most 16
instructions
• 6 bit operands —limit on memory + number representation)
![Page 7: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/7.jpg)
Instruction Cycle State Diagram
• Note: it is NOT guaranteed that a fetched instruction is executed!
—There are traps/exceptions
![Page 8: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/8.jpg)
Example of Program ExecutionFetch Execute
![Page 9: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/9.jpg)
Instruction Types
• Data processing—Arithmetic and logic instruction
• Data storage—Memory instructions: —Load from memory, Store to memory
• Data movement • I/O operations
—Read from I/O device, write to I/O device
• Program flow control —Test instructions (used e.g. in conditionals)—Branch instructions (used in conditionals,
loops)
![Page 10: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/10.jpg)
Number of Addresses
• 3 addresses—Operand 1, Operand 2, Result—ADD A, B, C —A B + C—May be a forth - next instruction (usually
implicit)—Not common—Needs very long words to hold everything
![Page 11: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/11.jpg)
Number of Addresses
• 2 addresses—One address doubles as operand and result—ADD A, B —A A + B —Reduces length of instruction—Requires some extra work
– Temporary storage to hold some results
![Page 12: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/12.jpg)
Number of Addresses
• 1 address—Implicit second address—Usually a register (accumulator)—ADD A —AC AC + A—Common on early machines
![Page 13: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/13.jpg)
Number of Addresses
• 0 (zero) address—All addresses implicit—Uses a stack—Compute C = A + B
PUSH APUSH BADDPOP C
![Page 14: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/14.jpg)
Number of Addresses Summary
![Page 15: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/15.jpg)
How Many Addresses
• More addresses—More complex (powerful?) instructions—More registers
– Inter-register operations are quicker
—Fewer instructions per program
• Fewer addresses—Less complex (less powerful) instructions—More instructions per program—Faster fetch/execution of instructions
![Page 16: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/16.jpg)
Design Decisions
• Operation repertoire—How many ops?—What can they do?—How complex are they?
• Data types• Instruction formats
—Length of op code field—Number of addresses
![Page 17: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/17.jpg)
Design Decisions
• Registers—Number of CPU registers available—Which operations can be performed on which
registers?
• Addressing modes (later…)
• RISC v CISC
![Page 18: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/18.jpg)
Types of Operand
• Addresses• Numbers
—Fixed point = Integer—Floating point
• Characters—Encoded—IRA (in USA known as ASCII), EDCDIC
• Logical Data—Bits or flags
![Page 19: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/19.jpg)
Pentium Data Types
• 8 bit byte• 16 bit word• 32 bit double word• 64 bit quad word• Addressing is by 8 bit unit• A 32 bit double word is read at addresses
divisible by 4
![Page 20: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/20.jpg)
Specific Data Types
• General - arbitrary binary contents• Integer - single binary value• Ordinal - unsigned integer• Unpacked BCD - One digit per byte• Packed BCD - 2 BCD digits per byte• Near Pointer - 32 bit offset within segment• Bit field• Byte String• Floating Point
![Page 21: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/21.jpg)
Pentium Numeric Data Formats
![Page 22: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/22.jpg)
PowerPC Data Types
• 8 (byte), 16 (halfword), 32 (word) and 64 (doubleword) length data types
• Some instructions need operand aligned on 32 bit boundary
• Can be big- or little-endian• Fixed point processor recognises:
—Unsigned byte, unsigned halfword, signed halfword, unsigned word, signed word, unsigned doubleword, byte string (<128 bytes)
• Floating point—IEEE 754—Single or double precision
![Page 23: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/23.jpg)
Types of Operation
• Data Transfer• Arithmetic• Logical• Conversion• I/O• System Control• Transfer of Control
![Page 24: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/24.jpg)
Data Transfer
• Specify—Source—Destination—Amount of data
• May be different instructions for different movements—e.g. IBM 370
• Or one instruction and different addresses—e.g. VAX
![Page 25: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/25.jpg)
Arithmetic
• Add, Subtract, Multiply, Divide• Signed Integer• Floating point ?• May include
—Increment (a++)—Decrement (a--)—Negate (-a)
![Page 26: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/26.jpg)
Shift and Rotate Operations
![Page 27: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/27.jpg)
Logical
• Bitwise operations• AND, OR, NOT
![Page 28: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/28.jpg)
Conversion
• E.g. Binary to Decimal
![Page 29: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/29.jpg)
Input/Output
• May be specific instructions• May be done using data movement
instructions (memory mapped)• May be done by a separate controller
(DMA)
![Page 30: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/30.jpg)
Systems Control
• Privileged instructions• CPU needs to be in specific state
—Ring 0 on 80386+—Kernel mode
• For operating systems use
![Page 31: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/31.jpg)
Transfer of Control
• Branch—e.g. branch to x if result is zero
• Skip—e.g. increment and skip if zero—ISZ Register1—Branch xxxx—ADD A
• Subroutine call—E.g. interrupt call
![Page 32: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/32.jpg)
x86 Branch instructions• Compare: cmp sets flags• Conditional jump: jne = jump on not equal, checks
flags.• Conditional jumps: there is a lot of them. Some
examples:• jpo = jump if parity odd • jpe = jump if parity even• jo = jump if overflow • jno = jump if no overflow• jz = jump if zero• jnz = jump if not zero • je = jump if equal• jl = jump if less than• jle = jump if less than or equal• jg = jump if greater than • jge = jump if greater than or equal
![Page 33: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/33.jpg)
Branch Instruction
![Page 34: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/34.jpg)
Nested Procedure Calls
![Page 35: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/35.jpg)
Use of Stack
![Page 36: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/36.jpg)
Stack Frame Growth Using Sample Procedures P and Q
![Page 37: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/37.jpg)
Byte Order
• What order do we read numbers that occupy more than one byte
• e.g. (numbers in hex to make it easy to read)
12345678 can be stored in 4 x 8 bit locations as follows
![Page 38: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/38.jpg)
Byte Order (example)
Address Version 1 Version 2
• 0x00184 12 78• 0x00185 34 56• 0x00186 56 34• 0x00187 78 12
• i.e. read top down or bottom up?
![Page 39: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/39.jpg)
Byte Order Names
• The problem is called Endian• The system on the right has the least
significant byte in the lowest address• This is called little-endian• The system on the left has the least
significant byte in the highest address• This is called big-endian
![Page 40: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/40.jpg)
Example of C Data Structure
![Page 41: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/41.jpg)
Alternative View of Memory Map
![Page 42: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.](https://reader036.fdocuments.in/reader036/viewer/2022070404/56649f335503460f94c50938/html5/thumbnails/42.jpg)
Endianess is not standardized
• Pentium (80x86), VAX are little-endian• IBM 370, Motorola 680x0 (Mac), and most
RISC are big-endian• Internet is big-endian
—Makes writing Internet programs on PC more awkward!
—WinSock provides htoi and itoh (Host to Internet & Internet to Host) functions to convert