Winter 2016CISC101 - Prof. McLeod1 Today How transistors can carry out commands in a CPU. For example, how to add two integers in an integrated circuit. Creating an “N Bit Adder”.
Winter 2016CISC101 - Prof. McLeod2 Transistors - Cont. Source, Gate and Drain are also called “Collector”, “Base” and “Emitter”: A 5V signal applied to the gate or “base” is enough to cause current to flow. Zero volts turns the signal off. Combinations of transistors can be used to perform boolean logical functions, called “gates”:
Winter 2016CISC101 - Prof. McLeod3 “AND” Gate Two transistors forming an “AND” gate: Both Input-1 and Input-2 have to be “1” (ie. 5 volts) for the Output to be “on”. How an “AND” gate is drawn in a logic diagram: Logic or “Truth” table:
Winter 2016CISC101 - Prof. McLeod4 “OR” Gate Either Input-1 or Input-2 can cause Output to be “On”. An “OR” gate in a logic diagram.
Winter 2016CISC101 - Prof. McLeod5 “NOT” Gate The “NOT” gate just reverses the Input:
Winter 2016CISC101 - Prof. McLeod6 “NOR” Gate Same as NOT(OR), like an OR gate followed by a NOT gate.
Winter 2016CISC101 - Prof. McLeod7 “NAND” Gate Same as NOT(AND), like an AND gate followed by a NOT gate.
Winter 2016CISC101 - Prof. McLeod8 “XOR” Gate X Y Z=X Y XOR gate (These are NOT(AND) or “NAND” gates.) One way:
CISC101 - Prof. McLeod9 Summary: “Truth” or Logic Tables AND I1I1 I2I2 Output OR I1I1 I2I2 Output NOT I Output NAND I1I1 I2I2 Output NOR I1I1 I2I2 Output XOR I1I1 I2I2 Output
CISC101 - Prof. McLeod10 Summary, Cont. Gates: You can use transistors to build a circuit, or “gate”, that provides the logic for each of these operators. Notation: a b (you will also see just “ab”) means “a AND b” a+b means “ a OR b” a means NOT(a) a b means “a XOR b” Winter 2016
CISC101 - Prof. McLeod11 Digital Circuits Generally, a digital circuit can be represented by: Remember that an input or output can only be either on (1) or off (0). The gates defined above can be used to design circuits that provide a desired logic. Winter 2016
CISC101 - Prof. McLeod12 For Example: Adding Binary Numbers Show how to build a circuit to add binary numbers - a “one bit full adder”. First: How do you add decimal (base 10) numbers?: Carry digits Sum + Winter 2016
CISC101 - Prof. McLeod13 Adding Binary Numbers, for Example The binary numeric system consists of zeros and ones – only. Also called “base 2”. Adding binary numbers: Carry bits Sum + Winter 2016
CISC101 - Prof. McLeod14 Half Bit Adder Look at the first column of the process: carry output input 1 input 2 sum output Winter 2016
CISC101 - Prof. McLeod15 Half Bit Adder - Cont. Construct a truth table to describe the operation, considering every possible input: input 1input 2sum outputcarry output Which gate produces the sum? The carry? Winter 2016
CISC101 - Prof. McLeod16 Write the boolean expressions for the sum output and the carry output: Where “ S ” is the sum output and “ C o ” is the carry output. Half Bit Adder - Cont. or Winter 2016
CISC101 - Prof. McLeod17 Half Bit Adder - Cont. Logical diagram for the sum output: (This is another way to build a “XOR” gate.) notand or Winter 2016
CISC101 - Prof. McLeod18 Test XOR Gate Logic notand or Winter 2016
CISC101 - Prof. McLeod19 Test XOR Gate, Cont. notand or Winter 2016
CISC101 - Prof. McLeod20 Half Bit Adder - Cont. Back to the expression for “ S ”: So, S can be generated by an “XOR” gate and C o by an “AND” gate: I1I1 I2I2 S CoCo Winter 2016
CISC101 - Prof. McLeod21 Full Bit Adder Look at one column of the addition process that also adds the carry bit: carry output carry input input 1 input 2 sum output Winter 2016
CISC101 - Prof. McLeod22 Full Bit Adder - Cont. Construct a logic table to describe what happens - list every input possibility: carry inputinput 1input 2sum outputcarry output Winter 2016
CISC101 - Prof. McLeod23 Full Bit Adder - Cont. Create boolean expressions: Where “ I ” is input, “ C i ” is carry input, “ C o ” is carry output and “ S ” is sum output. (Don’t panic! You don’t have to know where these expressions come from and you don’t have to remember them!) Winter 2016
CISC101 - Prof. McLeod24 Full Bit Adder - Cont. You can write the logical diagram from these expressions as they are but it can be simplified using two “half-bit” adders and an OR gate: S CoCo I1I1 I2I2 CiCi Winter 2016
CISC101 - Prof. McLeod25 Full Bit Adder - Cont. How many transistors required? –AND and OR have 2 each, NOT has 1 (and a resistor) –Then XOR must have 8 (2 NOTs, 2 ANDs, 1 OR) –Half-bit adder must have 10 (1 XOR, 1 AND) –Full-bit adder must have 22 (2 half-bits, 1 OR) Winter 2016
CISC101 - Prof. McLeod26 N Bit Full Adder Winter 2016
CISC101 - Prof. McLeod27 N Bit Full Adder – Cont. How many transistors? –22 times N –Integers might occupy 4 bytes or 32 bits for example: 704 transistors, minimum! –Just to add two integers! Winter 2016
YouTube Video Another presentation of this topic that might help: Winter 2016CISC101 - Prof. McLeod28
Aside - Minecraft Constructions People with a lot of time on their hands have built adders like these in Minecraft. For example, see these YouTube videos: One bit: 32 bit: CISC101 - Prof. McLeod29Winter 2016
CISC101 - Prof. McLeod30 Other Operations So, a full adder can be used to produce a N+1-bit number as the sum of two other N bit numbers. How about multiplication? From Grade 4: 27 Base 10: Base 2: Winter 2016
CISC101 - Prof. McLeod31 Multiplication, Cont. So what kind of logic would you build to do multiplication of x times y? Create a running sum, s. For each digit, x i : If x i equals 1 then add 2 i y to x. Use a bitwise shift operation to calculate 2 i y (ie. Add a zero to the right of the number). So, an N-bit adder would be used along with some other simple circuits. Winter 2016
CISC101 - Prof. McLeod32 Summary of Digital Logic The CPU needs to carry out many other operations than just addition: –subtraction –comparison –multiplication –division, etc. Some common functions (trig, exp, log, etc) would work faster if they were hard coded into the processor too. Lots (and lots!) of transistors!! Winter 2016
Aside – My CPU, for Example Intel Core i7 2670QM, 2.2 GHz (up to 3.2 GHz): –32 nm technology –6MB cache –4 cores, 8 threads –995 million transistors, total. –988 pins. CISC101 - Prof. McLeod33Winter 2016
CISC101 - Prof. McLeod34 “Don’t Worry, Be Happy!” You do not need to be able to design microprocessor circuits! Besides, INTEL and AMD have some fancy programs that do all the work. The purpose of this discussion has been to give you some idea of how an integrated circuit carries out instructions. (Not MAGIC! Just some good technology!) Winter 2016