William Stallings Computer Organization and Architecture Chapter 9 Instruction Sets: Characteristics and Functions... What is an instruction set?§ The complete collection of instructions
Trang 1William Stallings
Computer Organization and Architecture
Chapter 9
Instruction Sets:
Characteristics
and Functions
Trang 2What is an instruction set?
§ The complete collection of instructions that are understood by aCPU
§ Machine Code
§ Binary
§ Usually represented by assembly codes
• Assembly language is a symbolic representation of machine L
Trang 3Elements of an Instruction
§ Operation code (Op code)
• specifies operation to be performed
• Represented by mnemonics (SUB, ADD)
§ Source Operand reference
• Input to the operation
• 1 or 2 (can be constant, in a reg, mem, I/O)
§ Result Operand reference
• Put the answer here (Reg, Mem, I/O)
§ Next Instruction Reference
• Tells CPU where to fetch next instruction
• On most case, next instruction to be fetched immediately follows current instruction
Trang 4Instruction Representation
§ In machine code each instruction has a unique bit pattern
§ For human consumption (well, programmers anyway) a symbolic representation is used
• e.g ADD, SUB, LOAD
§ Operands can also be represented in this way
• ADD A,B
Trang 5Instruction Types
§ Data processing
• Arithmetic & Logic instruction
üProcess numeric data
üOperates on bits of the word as bits and not as numbers
§ Data storage (main memory)
• Register - memory
§ Data movement (I/O) (IN, OUT, Memory mapped I/O)
• I/O – Memory
• I/O – Reg
§ Program flow control
• Test & branch
• Testing data, status of computation (zero, overflow)
• Branch to some location depending on decision
Trang 6Number of Addresses (a)
§ # of address allowed in an instruction
§ Decide the categories of processor architecture
Trang 7Number of Addresses (b)
§ 2 addresses
• One address doubles as operand and result
• a = a + b
• Reduces length of instruction
• Requires some extra work
üTemporary storage to hold some results
Trang 8Number of Addresses (c)
§ 1 address
• Implicit second address
• Usually a register (accumulator)
• Common on early machines
Trang 9Dis, stack can not be accessed randomly
-> difficult to generate efficient code
à longer program
Ad Short instruction
Trang 10PUSH B ADD B ADD R1, B ADD D, D, C
ADD ADD C ADD R1, C
PUSH C STORE D STORE D, R1
ADD
POP D
ß - short instruction -à compact program, longer inst
Trang 11How Many Addresses
§ More addresses
• More complex (powerful?) instructions
• More registers
üInter-register operations are quicker
• Fewer instructions per program
§ Fewer addresses
• Less complex (powerful?) instructions
• More instructions per program
• Faster fetch/execution of instructions
Trang 12Design Decisions (1)
§ 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
Trang 13Design Decisions (2)
§ Registers
• Number of CPU registers available
• Which operations can be performed on which registers?
§ Addressing modes (later…)
§ RISC v CISC
Trang 15Pentium 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
Trang 16Specific 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
Trang 17Pentium Floating Point Data Types
§ See Stallings p324
Trang 21§ Bitwise operations
§ AND, OR, NOT
Trang 22§ E.g Binary to Decimal
Trang 23§ May be specific instructions
§ May be done using data movement instructions (memory mapped)
§ May be done by a separate controller (DMA)
Trang 26Foreground Reading
§ Pentium and PowerPC operation types
§ Stallings p338 et Seq
Trang 27Byte Order
(A portion of chips?)
§ 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 4x8bit locations as follows
§
Trang 28Byte Order (example)
§ Address Value (1) Value(2)
Trang 29Byte Order Names
§ The problem is called Endian
§ The system on the left has the least significant byte in the lowest address
§ This is called big-endian
§ The system on the right has the least significant byte in the highest address
§ This is called little-endian
Trang 30Standard …What Standard?
§ Pentium (80x86), VAX are little-endian
§ IBM 370, Moterola 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