The Instruction Set Architecture Level Dept. of Computer Science Virginia Commonwealth University
CMSC 312 Computer Organization Hongsik Choi 2 ISA level Interface between the software and hardware Common intermediate formBuild H/W, execute ISA program directly Build compiler
CMSC 312 Computer Organization Hongsik Choi properties Defined by how the machine appears to a machine language programmer Memory model, registers, data types and instructions, etc
CMSC 312 Computer Organization Hongsik Choi Memory Models Memory: collection of addressable cells Byte: ASCII Unicode
CMSC 312 Computer Organization Hongsik Choi Memory Models Aligned? Single Linear address space? Memory semantics DataProgram Read/write Serialized/Sync instruction
CMSC 312 Computer Organization Hongsik Choi Registers Registers – visible to micro architecture level Some are visible to ISA Level (\TOS, MAR) special purpose (SP, PC) control registers for kernel mode PSW (Program Status Word) condition codes (bits in PSW) N,Z,V,C,A,P general purpose (local variables, etc)
CMSC 312 Computer Organization Hongsik Choi Instructions Load, store Move Arithmetic Logic
CMSC 312 Computer Organization Hongsik Choi Pentium 4 ISA level Level 0 : kernel mode Level1: Level2: Level 4: User mode
CMSC 312 Computer Organization Hongsik Choi Pentium 4 ISA level Main arithmetic register Good for holding pointers Play a role in looping For * and / Pointer(M) to the source Pointer(M) to the destination Base of current stack frame Stack pointer Segment registers Instruction Pointer (PC) PSW
CMSC 312 Computer Organization Hongsik Choi UltraSPARC III ISA Level RISC machine bit GPR and 32 bit floating point registers FP: Frame pointer SP: stack pointer CWP: current window pointer Multiple GPRs set Only STORE, LOAD can access memory
CMSC 312 Computer Organization Hongsik Choi UltraSPARC III ISA Level 1. Emulate stack w/ Procedure call 2. Fast parameter passing 8 Global registers
CMSC 312 Computer Organization Hongsik Choi ISA Level (embedded system) One chip with CPU, memory and I/O controller 64K for data 64k for programs ROM RAM For rapid interrupt processing 8 bit R0 to R Special registers Such as accumulator (240)
CMSC 312 Computer Organization Hongsik Choi Data Types at the ISA level,meaning data types supported by hardware Numerical data types, (2 32-1, or , Non numerical data types, Data types on the Pentium 4, SPARC and 8051 n = f x 10 e, fraction( or mantissa), exponent 3.14 = × 101 = 3.14 × = 0.1 × 10−5 = 1.0 × 10− = × 104 = × 103
CMSC 312 Computer Organization Hongsik Choi Numerical data types Integer( unsigned , or signed ) n = f x 10e, fraction( or mantissa), exponent 3.14 = × 101 = 3.14 × = 0.1 × 10−5 = 1.0 × 10− = × 104 = × 103 F = 3 digit in the range of 0.1 <= f < 1, e = zero and signed 2 digit x10 99, x10- 99, 0, 0.100x10- 99, x Real N = continuum Floating P N = 2* Rounding (nearest number) x10 99 vs 0.999x10 99
CMSC 312 Computer Organization Hongsik Choi Nonumerical data types ASCII(7) vs UNICODE(16) Boolean Machine address
CMSC 312 Computer Organization Hongsik Choi Pentium, Sparc, and 8051
CMSC 312 Computer Organization Hongsik Choi Instruction Format
CMSC 312 Computer Organization Hongsik Choi Design criteria for instructionFormats Size of instruction? n-16 bit instruction vs n -32 bit instruction Memory size, fetch speed vs harder to decode, more time to decode and execute Accommodate all the operation desired. 2 n operation with n-1 bit? Size of address field? Memory (2 32 bytes) If 8bit byte as a basic unit of word vs 32 bit word vs 1 bit (Burroughs B1700) Resolution shorter address means shorter instruction vs. Waste space, Extra comparison
CMSC 312 Computer Organization Hongsik Choi Expanding Opcodes (n+k) bit instrcution If 2 n memory cell, we have only 2 k opcodes With 16 registers What if we have15 three address instn, 14 two address instn, 31 one address instn and 16 no address instn? Size of instruction n-16 bit instruction vs n -32 bit instruction Memory size, fetch speed vs harder to decode, more time to decode and execute
CMSC 312 Computer Organization Hongsik Choi Expanding Opcodes We have variable size opcode to make the unit size instructions. Variable size instruction is hard to decode, even hard to align on byte boundaries
CMSC 312 Computer Organization Hongsik Choi case studies 1,2,3 byte