Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 111 – Sept. 15 Chapter 2 – Manipulating data by performing instructions “What is going on in the CPU?” Commitment: –Please read through section 2.3.

Similar presentations


Presentation on theme: "CS 111 – Sept. 15 Chapter 2 – Manipulating data by performing instructions “What is going on in the CPU?” Commitment: –Please read through section 2.3."— Presentation transcript:

1 CS 111 – Sept. 15 Chapter 2 – Manipulating data by performing instructions “What is going on in the CPU?” Commitment: –Please read through section 2.3 –Meet here tomorrow.

2 Basic anatomy Inside a computer are 2 parts –CPU –Memory –These are connected by a data bus: an “HOV lane” where traffic can go either way. CPU contains: –ALU: arithmetic and logic unit –Control unit: figures out what to do next –Registers to hold values needed for calculation Memory (RAM) contains: –Software: list of instructions the CPU needs to perform –Data: Input and output values need to be stored while program runs

3 Stored program idea Program = software = list of instructions for CPU to do Programs reside in memory CPU will do 1 instruction at a time For each instruction, we do the following: –Fetch it from memory –Decode – figure out what it means –Execute – do it –And then we continue with the next instruction… until the program is finished.

4 Simple example A program to add two numbers. This program may reside at bytes 100-116 in RAM. The two numbers we wish to add are located at bytes 200 and 204 in RAM. We want the result to go into memory at byte 208. Program may go something like this: –Load the value at Memory[200] into register 1. –Load the value at Memory[204] into register 2. –Add registers 1 and 2, and put result in register 3. –Store the value from register 3 into Memory[208]. Note that the bus is communicating instructions (RAM to CPU) as well as data (both ways).

5 Machine language Unfortunately, instructions for CPU can’t be in English, French, etc. Machine language = binary (or hex) representation of our instructions. –Each type of computer has its own machine language. This is the oldest form of “computer programming”. Later we’ll look at much more intuitive ways to convey instructions. Verbs: Instruction set. e.g. Add, subtract, load, store… Nouns: Operands such as: registers, memory locations, constants, other instructions

6 Verbs 3 kinds of instructions (instruction set) Data transfer, using the bus –Load a value from memory into a CPU register Very similar to fetching an instruction! –Store a value from a CPU register into memory ALU –Bit manipulation: AND, OR, XOR, NOT, shift left, shift right, … –Arithmetic: add, sub, mul, div, remainder, =,, , , ≠, … Control –“Go to” another instruction in program. In other words, interrupt normal sequence of instructions. –Can be conditional or unconditional

7 Example language Our book illustrates with an example HW. 256 bytes of RAM: addressable by 8 bits CPU contains –Instruction register –Program counter –16 general purpose registers: addressable by 4 bits Each register is 1 byte Each instruction is 2 bytes = 16 bits = 4 hex digits long Instruction format: –First 4 bits are the opcode = specify which instruction type –Other 12 bits are operand(s) What do instructions mean? See pp. 602-603.

8 Example instructions Note: 16 possible opcodes: 4 bit opcode Note: 16 possible registers: register number also 4 bits Opcode 5 is used for adding –Expects 3 register operands –5RST means R = S + T, where R, S and T are register numbers –Ex. 5123 means Add registers 2 and 3 and put result in register 1. Opcode 2 is for putting a constant in a register –Expects a register operand, and an 8-bit constant operand –2RXX means R = XX, where XX is some 8-bit pattern –Ex. 27c9 means Put the hexidecimal “c9” into register 7. Try an example using both types of instructions.

9 More instructions Opcode 1 is for loading a memory value into a register –Expects a register operand (4 bits), and a memory address from which to load (8 bits). –Ex. 1820 means to go out to memory at address [20], grab the contents and load it into register 8. (It does not mean put the number 20 in register 8.) Opcode 3 is a store = opposite of load –Ex. 3921 means to take the value in register 9, and put it into memory at location [21]. (It does not mean put the number 9 into memory location 21.) Opcode C (hex code for 12) is for telling CPU it’s done. –Expects operand to be 12 zero-bits.


Download ppt "CS 111 – Sept. 15 Chapter 2 – Manipulating data by performing instructions “What is going on in the CPU?” Commitment: –Please read through section 2.3."

Similar presentations


Ads by Google