1 / 45

Chapter 4: Main Building Blocks of Hardware

Chapter 4: Main Building Blocks of Hardware. Algorithms are supposed to be executed by a computer They describe the logical structure of a solution of a given problem They are problem-oriented We do not yet (till chapter 3) know how the computer executes them!

colin
Download Presentation

Chapter 4: Main Building Blocks of Hardware

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. Chapter 4: Main Building Blocks of Hardware • Algorithms are supposed to be executed by a computer • They describe the logical structure of a solution of a given problem • They are problem-oriented • We do not yet (till chapter 3) know how the computer executes them! • The goal of this chapter is to get to know the smallest building blocks of a computer • Next chapter will deal with execution of programs

  2. Main Building Blocks of Hardware • We will deal with the: • Representation of numbers • Boolean Logic • Gates • Comparison with biology: • This chapter will have microscopic view and will handle tiny objects like cells, DNA, tissues, and genes in biology. • The big picture, including heart, lungs and other organs as well as their interconnections will be deferred to the next chapter. • This field of computer science is called hardware design or logic design

  3. Binary Numbers • How is information represented in a computer? • Information vs Data • First, humans also represent information: • Numerical values: 10 digits (0..9) • Textual information: 26 letters (A..Z) • Sign-magnitude notation: + and – (left to digits) • Decimal notation: using decimal point separating 2 whole numbers where the right one is positive e.g –12.56

  4. Binary Numbers • Computers? • External representation • Internal representation • External: • Looks like human representation • Important is the internal representation: • The way information is stored in memory • Internally computers use the binary numbering system • Example: • Input via keyboard: ABC • Memory representation: e.g. 0100101001010101101010100 • Output to screen: ABC

  5. Binary Numbers • What are binary numbers? • Base-2 positional number system • In everyday life we use base-10, where the digit itself as well as its position in a number determine the value of each digit • Moving from the right to the left the positions represent • Ones: 100 • Tens: 101 • Hundreds 102 • Thousands 103 • Example: 3049 = 3*103 + 0*102 + 4*101 + 9*100 • Similarly: Binary numbers use the same idea, except that we have 2 digits only  0 and 1

  6. Binary Numbers • Binary numbers: • 2 digits: with symbols 0 and 1 • Value is based on powers of 2 (not of 10) • The two digits 0 and 1 are called bits (binary digits) • Example: 111001 = 1*25 + 1*24 + 1*23 + 0*22 + 0*21 + 1*20 = 32 + 16 + 8 + 0 + 0 + 1 = 57 • Computation is easier than base-10: simply sum up any non-zero term • Theoretically, any number in the decimal system can be represented in the decimal system and vice versa • This means: We do not loose anything if we use binary notation. Humans use base-10 because it is more compact.

  7. Binary Numbers • Computers always have a maximum number of digits (to represent numbers) • Examples: 16, 32, 64 bits • Example: maximum value is 16 bits long: Max = 1111111111111111 (16 ones) (compare: 999999 is the maximum mileage value if you had 6 positions in your decimal odometer) Max = 215 + ….+20 = 65535 • If an operation in a computer produces a value larger than the maximum value, an error called arithmetic overflow occurs. • Attention: in computer science there are always upper limits for numbers unlike mathematics.

  8. Binary Numbers • Representing negative binary numbers: • Sign-magnitude notation (and others) • Sign-magnitude: the first bit on the left side is used to indicate the sign of the number: • First bit = 1  negative number • First bit = 0  positive number • This means that no extra symbols ‘+’ and ‘–’ are used internally! • Example: representing –49 (if we had 7 bits only) 1 1 1 0 0 0 1 = - (25 + 24 + 20) = - (32 +16 + 1) = -49 • Hence: -49 is represented as 1110001

  9. Binary Numbers • How the computer knows that 1110001 is –49 and not the 8-bit number 1110001 = 26 + 25 + 24 + 20 = 64 + 32 + 16 + 1 = 113 • In other words how to differentiate between 113 and – 49? • In fact, the computer does NOT know whether or not this sequence of 8 bits is a –49 or 113 • Only the context makes it possible to make a difference: Example: “ball” may mean the object used to play or a formal party. Only the context lets us make a difference.

  10. Binary Numbers • Representing Text • Binary digits are also used for text • Any letter of the alphabet is assigned a unique number  code mapping • The binary representation of that number is stored in memory instead • Internationally used mapping: ASCII (American Standard for Information Interchange) • ASCII uses 8 bits for each printable symbol (including letters) • Examples: • A  65  01000001 • a  97  01100001 • ?  63  00111111 • Z  122  01111010 • Again: How to know whether e.g. 65 is an ‘A’ or the number 65?  Context

  11. Binary Numbers • Why binary? • Why don’t we use decimals also internally? • Binary representation is more reliable • Information is stored using electronic devices depending on electronic quantities like current and voltage. • Using binary means we only need two stable energy states • Using decimals would mean to provide 10 stable energy states, which could be a very tricky and time-consuming engineering task. • Suppose we can store electrical charges between 0 and +45 volts Decimal-to-Voltage Mapping Binary-to-Voltage Mapping 0  [0, 3] 0  [0, 22] 1  [3, 6] 1  [22, 45] 2  [6, 9] …

  12. Binary Numbers • Since voltage may oscillate, a decimal value representing 2 may drop to 6 volts •  how to interpret it, as 1 or as 2? • In the case of binary representation, there are only two large ranges (instead of several small ones) and it is therefore very improbable that the voltage drops or rises in a confusing way. • Therefore, we speak of the reliability or stability of the binary representation • Devices that operate on two stable states are called bi-stable ones. • However, there is (theoretically) no argument against using decimal numbers for computers if we were able to construct devices having 10 stable states.

  13. Binary Numbers • Example of bi-stable states: • Full on – full off • Fully charged – fully discharged • Charged positively – charged negatively • Magnetized – non-magnetized • Magnetized clockwise - magnetized counterclockwise • Example for binary: • 0 = 0 volts = full off • 1 = +45 volts = full on • Only large drifts of voltages may influence data

  14. Binary Numbers • Requirements for any hardware device of a binary computer: • 2 stable energy states • States are separated by a large energy barrier • It is possible to sense the state of the device without destroying the stored value • It is possible to switch the state from 0 to 1 and vice versa • Examples: • On-off light switch (clearly not used to build computers) • Magnetic cores (no longer used) • 1955-1975 in use • “core memory”

  15. Binary Numbers • Cores • The 2 states for 0 and 1 are based on the direction of the magnetic field • Current left-to-right  counterclockwise magnetization (0) • Current right-to-left  clockwise magnetization (1) Direction of magnetic field Direction of magnetic field current Binary 1 Binary 0

  16. Binary Numbers • Transistors • Typical density for cores: 500 bits/in2 • Today’s computers: millions of bits and more • Transistors are more compact, cheaper, require less power • Transistor is like a (light) switch • Off state: no electricity can flow • On state: electricity can flow • Unlike light switch: no mechanics • Switching is done electronically • Fast switching: 10-20 billionth of sec • Density: several millions of transistors / cm2 • Are based on semiconductors: silicon or gallium arsenide • Huge number of transistors on a wafer form so-called integrated circuits (IC) • ICs are also called chips • Chips are mounted inside a ceramic housing called dual in-line package (DIP) • Input/output connectors of DIPs are called PINs

  17. Binary Numbers • DIP are typically mounted on a circuit board (connecting different chips) • Production not mechanically but rather photographically (using light) • More effective (use of masks and simple reuse) • Higher density • More accurate • Very high densities: 5-25 millions transistors/cm2 possible (very large scale integration or VLSI) • Ultra large scale integration or ULSI in progress • All these advantages together shifted computers from being expensive huge devices (filling rooms) to tiny (0.25 cm2) and cheap (ca. $100) processors with millions of transistors, which are far more powerful than the old machines.

  18. Binary Numbers Individual transistors IC DIP PINs Bus Circuit board

  19. Binary Numbers • Theoretical concepts behind transistors: semiconductors •  Electrical engineering •  Physics • Here we use a model of a switch for a transistor: Switch • Base = high voltage (1) • switch closes • transistor is in “on” state • Base = low (0) • Switch opens • Transistor is in “off” state Collector Emitter Base (control)

  20. Binary Numbers • The two states of a transistor: Switch is open Switch closed Power supply (+5V) +5V Power supply (+5V) 0V Measuring device Measuring device 1

  21. Boolean Logic • Computer circuits construction is based on mathematics:  Boolean logic • Relationship: • Truth value “true” represents binary 1 • Truth value “false” represents binary 0 • Anything stored as a sequence of 0 and 1 can be viewed as a sequence of “true” and “false”. • Hence: These values can be manipulated using Boolean operators • Bool George: • English mathematician of mid 19th century • 1854 his book: Introduction to the Laws of Thought • Combined principles of logic with algebra • At his time his book got no special attention but 100 years later his ideas were used for computer design, now there is a branch of mathematics called Boolean algebra.

  22. Boolean Logic • Boolean expressions • Any expression that evaluates to true or false • Examples: • X = 1 • A < B • It is exactly 2 pm now • Operations for arithmetic are: + * / - • Operations for Boolean logic are: AND, OR, and NOT • Rules: a and b are Boolean expressions • a AND b is true iff both a and b are true • a OR b is true if either a is true, or b is true, or both are true • NOT a is true iff a is false

  23. Boolean Logic • Truth table for AND a b a AND b (also written a.b) true true true true false false false true false false false false • Truth table for OR a b a OR b (also written a+b) true true true true false true false true true false false false

  24. Boolean Logic • Example for AND • Check if the weight w of an object is between 90 and 100 kg • W >= 90 does not suffice  130 does not match • W <= 100 does not suffice  45 does not match • We have to build the following Boolean expression: • (W >= 90) AND (w<= 100) • Example for OR • Looking for students majoring in either computer science or biology • Test for major = computer science does not suffice • Test for major = biology does not suffice • OR expression needed: • (major = computer science) OR (major = biology) • Example for NOT • GPA should not exceed 3.5 using “>” operator • NOT (GPA > 3.5)

  25. Gates • Why Boolean logic at all? •  Gates are constructed using Boolean logic • Gate: • A device that transforms a set of binary inputs to one binary output • In general, a gate can do any transformation, but we will only deal with 3 gates: • AND gate • OR gate • NOT gate • Computers can be built using only these 3 gates (thanks to Boolean algebra)

  26. Gates • Representation of the 3 gates looks like: a a a a.b a+b a b b • We use the following (and similar) representation(s): a a a a+b a.b OR a NOT AND b b • a, b Î {0, 1} with interpretation similar to {false, true} • Example 0.0 = 0, 0.1 = 0, 0+1=1, not(1) = 0 • Often also Ù, Ú, and Ø are used instead of., +, and -

  27. Gates • Construction of an AND gate • Idea: 2 transistors in series • Current flows iff both transistors are closed (state 1) Output (a.b) Power Supply Input 1 (a) Input 2 (b)

  28. Gates • Construction of an OR gate • Idea: 2 transistors in parallel • Current flows if either of the transistor is closed (state 1) Power Supply Output (a+b) Input 1 (a) Input 2 (b)

  29. Gates • Construction of a NOT gate • Idea: 1 transistors and a resistor • Current flows (to output) iff the transistor is open (state 0) Power Supply a Output Resistor Input (a)

  30. From Gates To Circuits • Circuit (also called combinational circuit): • Collection of logic gates that • Transforms a set of binary inputs to a set of binary outputs • And where any output only depends on the current input • Any gate is a circuit and not vice versa • We will discuss circuits based on AND, OR, and NOT gates • Internal connections must conform to used gates!!! • OR and AND gates: 2 inputs and 1 output • NOT gate: one input and one output

  31. From Gates To Circuits • Example: a c OR Inputs Outputs b NOT AND NOT d • Circuit computes: • c = a OR b • d = NOT ((a OR b) AND (NOT b))

  32. From Gates To Circuits • Combinational circuits vs sequential circuits • Combinational: output depends only on current input • Sequential: feedback loops from output to input are allowed meaning that output may depend on previous input • Sequential circuits good for memory design (they have the ability to “remember” inputs) • In a sense when designing computer hardware we don’t have to think in terms of current and voltage, or transistor. The main building blocks of circuits are gates ( abstraction) • How to build circuits from gates?  Circuit construction algorithm

  33. From Gates To Circuits • Circuit construction algorithm: • Here we use: sum-of-product algorithm • It has 4 steps • Step 1: Construct Truth Table • n input lines  2n rows in the truth table • Simple example: OR gate  2 inputs  4 rows • Each input and each output is assigned a column in the truth table • Step 2: Construct subexpression based on AND and NOT • Scan the column of each output line • Whenever you see 1, build a subexpression for that output line based on inputs using the following 2 rules • Any 0 of the row corresponds to its negated input • Any 1 of the row corresponds to its input • Combine the inputs (of that row) using ANDs • Step 3: Combine subexpressions using OR • For each output line combine the corresponding subexpressions of step 2 using ORs

  34. From Gates To Circuits • Step :4 Circuit Diagram Production • Convert Boolean expressions of step 3 into a circuit diagram using AND, OR, and NOT gates • Example: • Step 1: a b c d (output) 0 0 0 0 0 0 1 0 0 1 0 1 (case 1) 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 (case 2) 1 1 1 0 • Step 2: • not(a).b.not(c) • a.b.not(c)

  35. From Gates To Circuits • Step 3 • d = not(a).b.not(c) + a.b.not(c) • Step 4 • Draw the diagram • We need here 2 NOT gates, 4 AND gates, and 1 OR gate •  7 gates are needed • Described algorithm for circuit construction is NOT always optimal: • Always correct circuit • Not always the minimum number of gates • Compare chapter 3: algorithms should be correct and if possible efficient • Our example could be solved directly: • Don’t use the input a • d = b.not(c) •  only two gates (instead of 7) are needed at minimum!!! • Less gates means circuit is cheaper, compacter, and faster

  36. From Gates To Circuits • Designing a full-adder circuit (for unsigned numbers) • Problem: given 2 N-bit binary numbers A and B, design a circuit that performs the binary addition and yields an N-bit binary sum S • S = A + B in binary • Example: N = 6 11 (carry bit) 001101 + (13) 001110 (14) = 011011 (27) • Consider each column i separately: • We need Ai, Bi, Ci as inputs, where Ci is the used carry bit. • We need Si, and Ci-1 as output, where Ci-1 is the carry to be used for the next column. • Develop first a circuit 1-ADD to perform single bit addition (one column only!)

  37. From Gates To Circuits • Step 1: Truth table Ai Bi Ci Si Ci-1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Ai 1-ADD Si Bi Ci-1 Ci Inputs Outputs

  38. From Gates To Circuits • Step 2: Building subexpressions • Subexpression of Column Si are: • not(Ai).not(Bi).Ci • not(ai).Bi.not(Ci) • Ai.not(Bi).not(Ci) • Ai.Bi.Ci • Subexpression of Column Ci-1 are: • not(Ai).Bi.Ci • Ai.not(Bi).Ci • Ai.Bi.not(Ci) • Ai.Bi.Ci • Step 3: Combining them • Si = not(Ai).not(Bi).Ci + not(ai).Bi.not(Ci) + Ai.not(Bi).not(Ci) + Ai.Bi.Ci • Ci-1 = not(Ai).Bi.Ci + Ai.not(Bi).Ci + Ai.Bi.not(Ci) + Ai.Bi.Ci

  39. From Gates To Circuits • Step 4: Circuit itself (1-ADD) Si Ci-1 NOT AND OR Ai Bi Ci

  40. From Gates To Circuits • Back to the full-adder • We have now a device (1-ADD) that performs single bit addition • We use N such 1-ADD devices for N-bit addition • The 1-ADD at the most right position uses carry = 0 (CN = 0) • A potential carry should be forwarded to the left 1-ADD device • The 1-ADD device at the most right position also produces a carry bit, which is not used for the addition itself • Full adder circuit A= a1 a2 … aN-1 aN B = b1 b2 … bN-1 bN C0 C1 C2 CN-2 CN-1 CN= 0 1-ADD 1-ADD 1-ADD 1-ADD S= s0 s1 s2 … sN-1 sN

  41. From Gates To Circuits • Analysis of full-adder: • Number of NOT gates: 3*N • Number of AND gates: 16*N • Number of OR gates: 6*N • For N = 32: NOTs = 96, ANDs = 512, ORs = 192 • Number of transistors: • 1 NOT  1 Transitor, 1 AND (resp. 1 OR)  2 Transistors each • Number NOT-transistors: 96*1 = 96 • Number AND-transistors: 512*2 = 1024 • Number OR-transistors: 192*2 = 384 •  Number of transistors is: 1504

  42. From Gates To Circuits • Control circuits • Used to control program execution in a computer • Multiplexer • Decoder • Multiplexer • Structure • 2N input lines • N selector lines (also input) • 1 output line • The selector lines represent the binary representation of one input line • The value (0/1) of that input line is forwarded to the output line

  43. From Gates To Circuits • Use of Multiplexer • Suppose computer has to repeatedly check whether or not one of 4 memory locations (rather processor registers) has become 0 • Input: 4 lines (4 registers) • 2 selector lines: 00, 01, 10, 11 R0 R1 Check-zero circuit Multiplexer R3 R4 Registers Selector lines

  44. From Gates To Circuits • Decoder • Structure • N input lines • 2N output lines • The input lines represent the binary representation of one output line. • The value 1 is forwarded to the (selected) output line - the output line is activated. • Example for decoder usage • Suppose a computer has 4 operation +, -, *, / • In order to activate one operation, the numbers 00, 01, 10, 11 are used as input for a decoder

  45. From Gates To Circuits • Diagram for a 4-operations decoder Add circuit Operation Codes 00 = ‘+’ 01 = ‘-’ 10 = ‘*’ 11 = ‘/’ Subtract circuit Decoder Multiply circuit Divide circuit 2 Inputs 4 Outputs

More Related