1 / 53

Today’s class

Today’s class. Instruction set architecture. Instruction Set Design. The instruction set architecture (ISA) level is between the high-level languages and the hardware When new hardware architecture comes along … Need to maintain backward compatibility

Télécharger la présentation

Today’s class

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Today’s class • Instruction set architecture Computer Architecture I - Class 11

  2. Instruction Set Design • The instruction set architecture (ISA) level is between the high-level languages and the hardware • When new hardware architecture comes along … • Need to maintain backward compatibility • Can add new features to exploit new hardware capabilities Computer Architecture I - Class 11

  3. ISA Level Computer Architecture I - Class 11

  4. Properties of the ISA Level • In principle, the ISA level is defined by how the machine appears to a machine language programmer • In modern times, this is refined to say that ISA-level code is what a compiler outputs • Compiler writer needs to know: • Memory model • What registers are available • What data types are available • What instructions are available Computer Architecture I - Class 11

  5. Memory Models • Consider 8-byte (64-bit) words • Do words have to be “word-aligned” (start at a word address)? Computer Architecture I - Class 11

  6. Instruction and Data Spaces • Most machines have a single linear address space at the ISA level • However, a few machines have separate address spaces for instructions and data • Effectively doubles memory! • All writes go to data space, protecting instructions from being overwritten Computer Architecture I - Class 11

  7. Registers • Special purpose • Program counter • Stack pointer • Program status word • General purpose • Hold key local variables and intermediate results of calculations • RISC machines usually have at least 32 • Trend in new CPU designs is to have even more Computer Architecture I - Class 11

  8. Instructions • LOAD and STORE instructions – move data between memory and registers • MOVE instructions – move data among the registers • Arithmetic instructions • Boolean instructions • Comparing data items and branching on the results Computer Architecture I - Class 11

  9. Pentium 4 • Three operating modes • Real mode – all features added since the 8088 are turned off (effectively behaves like a simple 8088; if a program does something wrong whole machine crashes) • Virtual 8086 mode – makes it possible to run old 8088 programs in a protected way (if a program crashes, the OS is notified instead of the machine crashing) • Protected mode – actually behaves like a Pentium 4! Computer Architecture I - Class 11

  10. Pentium 4 • Address space • 16,384 segments • Each segment has 232 addresses (4 GB) • Most operating systems, including Unix and Windows, support only one segment • Every byte has its own address • Words are 32 bits long, and low-endian Computer Architecture I - Class 11

  11. Pentium 4 • Registers • EAX is main arithmetic register • EBX holds pointers • ECX plays a role in looping • EDX used in multiplication and division • ESI – source string pointer • EDI – destination string pointer • EBP – base of the current stack frame • ESP – stack pointer • EIP – instruction pointer Computer Architecture I - Class 11

  12. Pentium 4 • Data types • Two’s complement integers • Unsigned integers • Binary coded decimal numbers • IEEE 754 floating point numbers Computer Architecture I - Class 11

  13. Instruction Formats Computer Architecture I - Class 11

  14. Design Criteria • Short instructions are better than long ones • Sufficient room in the instruction format to express all the operations desired • Number of bits in the address field Computer Architecture I - Class 11

  15. Examples • Consider an (n + k) bit instruction that has a k-bit opcode and a single n-bit address • Allows for 2k different operations • Allows for 2n addressable memory cells • Could alternatively have: • k-1 bit opcode and n+1 bit address • Half as many instructions but twice the addressable memory • k+1 bit opcode and n-1 bit address • Twice as many instructions but half the addressable memory Computer Architecture I - Class 11

  16. Expanding Opcodes • An instruction with a 4-bit opcode and three 4-bit address fields. Computer Architecture I - Class 11

  17. Expanding Opcodes • Suppose the designers need: • 15 three-address instructions • 14 two-address instructions • 31 one-address instructions • 15 no-address instructions • Use opcodes 0-14 as the three-address instructions • Interpret opcode 15 differently Computer Architecture I - Class 11

  18. Expanding Opcodes Computer Architecture I - Class 11

  19. Pentium 4 Instruction Formats • Highly complex and irregular! • Up to 6 variable-length fields, 5 of which are optional Computer Architecture I - Class 11

  20. Addressing Modes • How to specify where an operand for an instruction is located • How the bits of an address field in an instruction are interpreted Computer Architecture I - Class 11

  21. Immediate Addressing • Address part of the instruction contains the actual operand itself • An immediate instruction for loading 4 into register 1 • Does not require an extra memory reference to fetch the operand Computer Architecture I - Class 11

  22. Direct Addressing • Instruction specifies full address of the operand • Instruction will always access the same memory location • Useful for accessing global variables Computer Architecture I - Class 11

  23. Register Addressing • Specifies a register for the operand • Most common addressing mode on computers Computer Architecture I - Class 11

  24. Register Indirect Addressing • Register contains the address in memory of the operand (the register acts as a pointer) • The following example computes the sum of the elements of an array Computer Architecture I - Class 11

  25. Indexed Addressing • Contents of a register plus a constant offset form the address of the operand • Consider the following program for computing the OR of corresponding products in two arrays Computer Architecture I - Class 11

  26. Reverse Polish Notation • Infix form: a + b • Postfix form: a b + • Any expression can be expressed without parentheses: • (a + b) * c = ab + c * • Convenient for evaluating formulas using stacks on a computer Computer Architecture I - Class 11

  27. Reverse Polish Notation • Some examples of infix expressions and their reverse Polish notation equivalents. Computer Architecture I - Class 11

  28. Evaluation of RPN Formulas • Evaluation of (8 + 2 x 5) / (1 + 3 x 2 - 4) • RPN form is 8 2 5 x + 1 3 2 x + 4 - / Computer Architecture I - Class 11

  29. Pentium 4 Addressing Modes • Highly irregular • Depends on which operating mode you are in (16-bit or 32-bit) • Not all modes apply to all instructions • Not all registers can be used in all modes • Compiler writer’s nightmare! Computer Architecture I - Class 11

  30. Pentium 4 Addressing Modes Computer Architecture I - Class 11

  31. Data Movement Instructions • Copying data is the most fundamental of all operations • Four possibilities: • Register to register • Register to memory • Memory to register • Memory to memory • May have one general instruction to cover all cases, or separate instructions for each case • Need to indicate how much data to copy Computer Architecture I - Class 11

  32. Dyadic Operations • Combine two operands to produce a result • Arithmetic instructions • Boolean instructions Computer Architecture I - Class 11

  33. Monadic Operations • Have one operand and produce one result • Shift and rotate instructions • CLR, INC, NEG Computer Architecture I - Class 11

  34. Comparisons and Conditional Branches • Common operation is a comparison to 0 • Use bits in the PSW, such as C, N, Z Computer Architecture I - Class 11

  35. Other Instructions • Procedure calls • Loop control Computer Architecture I - Class 11

  36. Programmed Input/Output • Single input instruction and single output instruction • Selects an I/O device and a single character is transferred • CPU must execute an explicit sequence of instructions for each and every character read or written Computer Architecture I - Class 11

  37. Programmed Input/Output • A simple terminal might have four 1-byte registers • Registers might be part of computer’s memory address space Computer Architecture I - Class 11

  38. Direct Memory Access • DMA gets rid of most of the interrupts of programmed I/O Computer Architecture I - Class 11

  39. Pentium 4 Instructions Computer Architecture I - Class 11

  40. Pentium 4 Instructions Computer Architecture I - Class 11

  41. Pentium 4 Instructions Computer Architecture I - Class 11

  42. Pentium 4 Instructions Computer Architecture I - Class 11

  43. Pentium 4 Instructions Computer Architecture I - Class 11

  44. Flow of Control • Most statements execute sequentially • Branches alter statement flow • Procedures also alter statement flow, but unlike branches, control is returned to the statement after the procedure call once the procedure is finished • Recursive procedures are procedures that call themselves Computer Architecture I - Class 11

  45. The Towers of Hanoi • An ancient problem with a simple recursive solution • In a certain monastery in Hanoi there are 3 gold pegs • Around the first peg are 64 gold disks, each disk slightly smaller in diameter than the disk below it • The monks have to move the disks to the third peg, one disk at a time, but at no time may a larger disk sit on top of a smaller one • It is said that when they finish the world will come to an end Computer Architecture I - Class 11

  46. 5-Disk Initial Configuration Computer Architecture I - Class 11

  47. Solution Outline • First move n-1 disks from peg 1 to peg 2 • Now move 1 disk from peg 1 to peg 3 • Then move the n-1 disks from peg 2 to peg 3 Computer Architecture I - Class 11

  48. Solution • This procedure moves n disks from peg I to peg j. Computer Architecture I - Class 11

  49. The Stack • Need a stack to store the parameters and local variables for each invocation of a recursive procedure • Do not want to confuse values of these variables in different invocations Computer Architecture I - Class 11

  50. The Stack Computer Architecture I - Class 11

More Related