1 / 0

Computer System

Computer System. Building blocks of a computer system: Using bits Binary data and operations Logic gates Units of measuring amount of data CPU vs. memory ( Operating System) Programming languages  Models of computation, e.g. Turing Machine. Binary.

ursala
Télécharger la présentation

Computer System

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. Computer System Building blocks of a computer system: Using bits Binary data and operations Logic gates Units of measuring amount of data CPU vs. memory (Operating System) Programming languages  Models of computation, e.g. Turing Machine
  2. Binary All information inside computer is in binary Smallest unit of data is the bit Only the values 0 and 1 are used 0 means “false” or “off” or the number 0 1 means “true” or “on” or the number 1 Individual bit values can be manipulated with Boolean operations: “and”, “or”, “not”, etc. In hardware, we implement these operations with logic gates.
  3. Boolean examples AND To graduate, you must have 128 credits and 2.0 GPA. OR Classics scholarship requires 3 years of Latin or 3 years of Greek. XOR (“exclusive” or) To go to Cincinnati, you can fly or drive. In other words, it doesn’t make sense to do both. Do you want a 2-door or a 4-door car? NOT If a statement is true, its negation is false, and vice versa.
  4. Gates Basic building blocks of CPU’s circuitry. Usually 2 inputs. X and Y could be 0 or 1. Combining gates into a circuit: The output of one gate becomes input to another. This is how more useful operations are performed.
  5. ‘AND’ and ‘OR’ Note: 0 AND (anything) = 0 1 OR (anything) = 1
  6. XOR XOR basically says, “either but not both” The output is 1 if both inputs are different.
  7. NOR, NAND NOR gate Negation of the OR Same as feeding output of OR into a NOT gate. Symbol for NOR gate is same as OR but with a loop on the end. NAND gate Negation of the AND…. analogous to NOR. Interesting property: NOR and NAND are universal gates. Any other boolean operation can be implemented by using several NAND’s or several NOR’s.
  8. Units of data size Bit = a single 0 or 1 value Nibble = 4 bits = 1 hexadecimal digit Byte = 8 bits Kilobyte (KB) = 210 bytes Megabyte (MB) = 220 bytes Gigabyte (GB) = 230 bytes Terabyte (TB) = 240 bytes 210 = 1024, though 1000 is a close approx.
  9. CPU and memory CPU’s job is to obey instructions and do calculations Memory system stores information for current and future use CPU has tiny number of “registers” for calculations main memory (RAM) stores all files currently open Secondary memory (e.g. hard drive) is for long-term storage of files Backup system: tape, external hard drive Other types of memory: Cache, between CPU and RAM Removable drive, e.g. USB or DVD
  10. RAM Runs on electricity: volatile but fast Each byte is numbered and addressable Capable of holding a single character or small #
  11. CPU, memory Contrast between levels of memory Tradeoff between cost / size / speed Manipulating data by performing instructions “What is going on in the CPU?” Handout A simple machine language
  12. Memory comparison Numbers are approximate. “ns” means nanosecond = 1 billionth of a second
  13. Basic computer 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
  14. 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.
  15. 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).
  16. 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 original form of “computer programming”. Verbs: Instruction set. e.g. Add, subtract, load, store… Nouns: Operands such as: registers, memory locations, constants, other instructions
  17. 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
  18. Example language Let’s consider very simple HW. 256 bytes of RAM: addressable by 8 bits CPU contains Instruction register (to store contents of instruction) Program counter (to indicate instruction’s address) 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?
  19. Machine language Machine language examples Don’t memorize… Instruction execution Operations in instruction set Performing arithmetic sometimes requires load / store instructions in addition to the arithmetic instruction Instructions to manipulate bits directly
  20. 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.
  21. 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.
  22. Some practice Refer to handout… How would we put the number 64 into memory at address 12? How would we add the numbers 6 and 8 and put the result in register 1? How would we add register 7 to register 5 and put the answer in memory at address 32?
  23. Execution In our example, each instruction is 2 bytes long. Program counter (PC) begins at address of first instruction. For each instruction: Fetch (and increment PC by 2) Decode Execute Note that RAM contains both instructions and data, separated from each other. For example, addresses 0-99 could be reserved for code.
  24. Bitwise Operations that manipulate bits directly Logical Shift
  25. Logic operations Work just like gates, but we do several bits in parallel. Examples 10101110 01101011 AND 11110000 AND 00011111 Try the same examples with “OR” and “XOR” Observations: What happens when you AND with a 1? With a 0? What about OR’ing with a 1 versus a 0? What about XOR? ASCII code: how do you capitalize a letter?
  26. Shift operations Given a bit pattern like 00011100, we can shift the bits left to obtain: 00111000. If we shift to the right instead, 00011100 becomes this: 00001110. We can even shift by more than one position. Shifting 01010000 by 3 bits right  00001010. Sometimes when we shift, 1’s fall off the edge. Shifting 01010000 by 2 bits left  01000000. When we shift, the “vacated” bits are usually 0.
  27. Why shift? One application of a shift operation is to: Multiply by 2: left shift Divide by 2: right shift Try some examples – should look familiar with our earlier work on binary numbers. One funny exception: dividing a (signed) negative number by 2. We need a different operation: arithmetic right shift. In this case, we want the vacated bit to be 1 Example: –12 in signed is 11110100. If we shift right by 1, we get 01111010, but it should be this: 11111010.
  28. Rotate Rotate operations work the same as shift… except that the vacated bits come from the other end of the number. So, instead of 1’s falling off the edge, they rotate. For example, 01010000 rotated left by 2 becomes 01000001. Also: 00001111 rotated right by 3 becomes: 11100001.
  29. Summary Here is a list of bitwise operators: Logical and, or, xor, not Shift sll (Shift left logical) srl (Shift right logical) sra (Shift right arithmetic) rol (Rotate left) ror (Rotate right)
  30. Language evolution Machine language Assembly language Like machine language, also unique to each manufacturer High-level language  FORTRAN, COBOL Pascal, Algol, Ada C, C++, C# Java, Javascript, Python many more
  31. Example How would we calculate: 12 + 22 + 32 + … + 202 ? Let’s create our own solution, and see what the “code” looks like in different types of languages: Machine language  Assembly language  High-level language 
  32. Machine language 00003000: 00000014 00004000: 200c0001 00004004: 20080000 00004008: 3c0a0000 0000400c: 354a3000 00004010: 8d4a0000 00004014: 018a4822 00004018: 1d200005 0000401c: 018c0018 00004020: 00005812 00004024: 010b4020 00004028: 218c0001 0000402c: 08001005 00004030: 2008000a 00004034: 0000000c help me!
  33. Assembly language numValue: .word 20 __start: addi $12, $0, 1 addi $8, $0, 0 lui $10, 0 ori $10, $10, 0x3000 lw $10, 0($10) while: sub $9, $12, $10 bgtz $3, end mult$12, $12 mflo$11 add $8, $8, $11 addi$12, $12, 1 j while end: addi $8, $0, 10 syscall
  34. HLL (Pascal) var sum : integer; count : integer; begin sum := 0; for count := 1 to 20 do sum := sum + count * count; writeln(sum); end.
  35. 3 ways to create code Write HLL code compiler Write assembly code assembler Write machine code Machine code Machine code
  36. What does a compiler do? Scan Break up program into tokens Remove comments Check syntax Understand the structure of the program Do all statements obey rules of language? Generate code Create appropriate machine/assembly instructions Optimize operations to save time We need a compiler for each language and architecture.
  37. Thinking How computers think Concept of “state” Turing machine model Finite state machine model a.k.a. “Finite automaton”
  38. State Fundamental concept for any computation Machine keeps track of where it is, what it needs a.k.a. Status, mode state may be stored in some memory cell Many examples Logging in Using a dialog box, or other user-interface Fax machine, photocopier, telephone Car transmission
  39. Examples In a Tic-Tac-Toe game, the “state” of the game would include: Whose turn it is Is the game over? Who won, or was it a tie? State is determined by looking at the board. Backgammon (roll dice, move pieces…) Depending on your situation in the game, some moves are illegal. Another way to think about states is to consider all possible board configurations!
  40. Turing machine Alan Turing, 1936 Any general purpose machine must: Work automatically Be aware of what state it’s in Have sufficient memory Be able to do I/O, and be able to read the input many times if necessary Powerful model, but tedious to work with
  41. Adder example S x y C z 4 possible final states, depending on the inputs For example, (S = 0 and C = 0) would be one outcome. Programming the details make working with real TMs a headache.
  42. Finite Automatasingular: finite automaton Simple model for machine behavior. Purpose is to accept or reject some input Examples: logging in, using a wizard, game At any given time, machine is in some “state” Start state Final (or accept, “happy”) states Dead states Transitions between states
  43. Example Vending machine for 25¢ item. 0 5 10 +5 +5 +10 +10 +5 +25 25 20 15 +5 +5
  44. Binary example We want a “word” starting with “101…” need 101 1 need 01 0 need 1 1  1 0 0 0,1 
  45. What does this FA do? 1 A B 0 1 0
  46. Example We want a word with at least two 0’s. 0 need two need one 0  0,1 1 1 What if we wanted exactly two 0’s?
  47. Regular language Set of input strings that can be “accepted” or recognized by a FA. Credit card numbers Social security numbers Phone numbers Date / Time (e.g. to enter into reservation system) Some FAs are too big to draw, so instead we describe with regular expression. Shows general format of the input
  48. Regular expression Use “wild cards” to make a general expression. ? = can replace any single character * = can replace any number of characters [ ] = can hold a range of possible valid characters Examples 105* = anything starting with 105 feb??.ppt= file names like feb25.ppt or feb04.ppt furman*.xlsx = any spreadsheet about Furman Version[123].txt = version1.txt, version2.txt, version3.txt
  49. Dijkstra’s algorithm 4 7 9 6 8 7 4 3 2 3 1 6 How do you find the shortest path in a network? General case solved by Edsger Dijkstra, 1959
  50. A 4 7 2 B C 3 4 Z Let’s say we want to go from “A” to “Z”. The idea is to label each vertex with a number – its best known distance from A. As we work, we may find a cheaper distance, until we “mark” or finalize the vertex. Label A with 0, and mark A. Label A’s neighbors with their distances from A. Find the lowest unmarked vertex and mark it. Let’s call this vertex “B”. Recalculate distances for B’s neighbors via B. Some of these neighbors may now have a shorter known distance. Repeat steps 3 and 4 until you mark Z.
  51. A 4 7 2 B C 3 4 Z First, we label A with 0. Mark A as final. The neighbors of A are B and C. Label B = 4 and C = 7. Now, the unmarked vertices are B=4 and C=7. The lowest of these is B. Mark B, and recalculate B’s neighbors via B. The neighbors of B are C and Z. If we go to C via B, the total distance is 4+2 = 6. This is better than the old distance of 7. So re-label C = 6. If we go to Z via B, the total distance is 4 + 3 = 7.
  52. A 4 7 2 B C 3 4 Z Now, the unmarked vertices are C=6 and Z=7. The lowest of these is C. Mark C, and recalculate C’s neighbors via B. The only unmarked neighbor of C is Z. If we go to Z via C, the total distance is 6+4 = 10. This is worse than the current distance to Z, so Z’s label is unchanged. The only unmarked vertex now is Z, so we mark it and we are done. Its label is the shortest distance from A.
  53. A 4 7 2 B C 3 4 Z Postscript. I want to clarify something… The idea is to label each vertex with a number – its best known distance from A. As we work, we may find a cheaper distance, until we “mark” or finalize the vertex. When you mark a vertex and look to recalculate distances to its neighbors: We don’t need to recalculate distance for a vertex if marked. So, only consider unmarked neighbors. We only update a vertex’s distance if it is an improvement: if it’s shorter than what we previously had.
  54. Shortest Paths Dijkstra’s algorithm: What is the shortest distance between 2 points in a network/graph ? A related problem: What is the shortest distance for me to visit all the points in the graph and return home? This is called the traveling salesman problem. Nobody knows how to solve this problem without doing an exhaustive search! Open question in CS: why is this problem so hard?
  55. B 8 6 9 12 A 2 C 5 4 6 3 E D 4
More Related