UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of...

12
1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean Logic & Truth Tables Computer circuitry works based on Boolean logic: operations on true (1) and false (0) values. 15110 Principles of Computing, Carnegie Mellon University - CORTINA 2 A B A B (A AND B) (Ruby: A && B) A B (A OR B) (Ruby: A || B) 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 A ¬ A (NOT A) (Ruby: !A) 0 1 1 0

Transcript of UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of...

Page 1: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

1

UNIT 8AComputer Circuitry: Layers of Abstraction

15110 Principles of Computing,

Carnegie Mellon University - CORTINA1

Boolean Logic & Truth Tables

• Computer circuitry works based on Boolean

logic: operations on true (1) and false (0)

values.

15110 Principles of Computing,

Carnegie Mellon University - CORTINA2

A B A ∧∧∧∧ B

(A AND B)

(Ruby: A && B)

A ∨∨∨∨ B

(A OR B)

(Ruby: A || B)

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 1

A ¬¬¬¬ A

(NOT A)

(Ruby: !A)

0 1

1 0

Page 2: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

2

Gates

• A gate is an electronic device that implements

a logical function. (Images from Wikipedia)

• Circuit

diagram:

• Abstract

Diagram:

15110 Principles of Computing,

Carnegie Mellon University - CORTINA3

A

B

A

BAA ∨ B

“OR”

¬ A

“NOT”

A ∧ B

“AND”

Properties

• Commutative: a ∧ b = b ∧ a a ∨ b = b ∨ a

• Associative: a ∧ b ∧ c = (a ∧ b) ∧ c = a ∧ (b ∧ c)

a ∨ b ∨ c = (a ∨ b) ∨ c = a ∨ (b ∨ c)

• Distributive: a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)

• Identity: a ∧ 1 = a a ∨ 0 = a

• Idempotence: a ∧ a = a a ∨ a = a

• Complementation: a ∧ ¬a = 0 a ∨ ¬a = 1

• Double Negation: ¬ ¬ a = a

15110 Principles of Computing,

Carnegie Mellon University - CORTINA4

Page 3: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

3

Equivalence

15110 Principles of Computing,

Carnegie Mellon University - CORTINA5

A B C Q

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

http://www.allaboutcircuits.com/vol_4/chpt_7/6.html

Q = (A ∧ B) ∨ ((B ∨ C) ∧ (C ∧ B))

Equivalence

15110 Principles of Computing,

Carnegie Mellon University - CORTINA6

A B C Q

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

http://www.allaboutcircuits.com/vol_4/chpt_7/6.html

Q = (A ∧ B) ∨ ((B ∨ C) ∧ (C ∧ B))

Q = B ∧ (A ∨ C)

Page 4: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

4

More gates

15110 Principles of Computing,

Carnegie Mellon University - CORTINA7

A B A nand B A nor B A xor B

0 0 1 1 0

0 1 1 0 1

1 0 1 0 1

1 1 0 0 0

• nand (“not and”): A nand B = not (A and B)

• nor (“not or”): A nor B = not (A or B)

• xor (“exclusive or”):

A xor B = (A and not B) or (B and not A)

A

B

A

B

A

B

¬(A ∧ B)

¬(A ∨ B)

A ⊕ B

DeMorgan’s Law

Nand: ¬(A ∧ B) = ¬A ∨ ¬B

if !((x > 15) && (x < 110)) then ...

is logically equivalent to

if (x <= 15) || (x >= 110) then ...

Nor: ¬(A ∨ B) = ¬A ∧ ¬B

if !((x < 15) || (x > 110)) then ...

is logically equivalent to

if (x >= 15) && (x <= 110) then ...

15110 Principles of Computing,

Carnegie Mellon University - CORTINA8

Page 5: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

5

A Logical Function Using Gates

3-bit odd parity checker

F = (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ ¬z) ∨ (x ∧ ¬y ∧ ¬z) ∨ (x ∧ y ∧ z)

15110 Principles of Computing,

Carnegie Mellon University - CORTINA9

x y z F

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

A Logical Function Using Gates

3-bit odd parity checker

F = (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ ¬z) ∨ (x ∧ ¬y ∧ ¬z) ∨ (x ∧ y ∧ z)

15110 Principles of Computing,

Carnegie Mellon University - CORTINA10

x y z F

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

x

y

zF

F = x ⊕ y ⊕ z

Page 6: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

6

A Full Adder

15110 Principles of Computing,

Carnegie Mellon University - CORTINA11

A B Cin Cout S

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

A

B

SCout

Cin

A Full Adder

15110 Principles of Computing,

Carnegie Mellon University - CORTINA12

A B Cin Cout S

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

A

B

SCout

Cin

S = A ⊕ B ⊕ Cin

Cout = ((A ⊕ B) ∧ C) ∨ (A ∧ B)

Page 7: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

7

Full Adder (FA)

15110 Principles of Computing,

Carnegie Mellon University - CORTINA13

1-bit

Full

Adder

A B

CinCout

S

Another Full Adder (FA)

15110 Principles of Computing,

Carnegie Mellon University - CORTINA14

1-bit

Full

Adder

A B

CinCout

S

http://students.cs.tamu.edu/wanglei/csce350/handout/lab6.html

Page 8: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

8

8-bit Full Adder

15110 Principles of Computing,

Carnegie Mellon University - CORTINA15

1-bit

Full

Adder

A0 B0

Cin

S0

1-bit

Full

Adder

A1 B1

S1

1-bit

Full

Adder

A7 B7

Cout

S7

1-bit

Full

Adder

A2 B2

S2

...

8-bit

FA

A B

CinCout

S

8 ⁄ ⁄ 8

⁄ 8

Multiplexer (MUX)

15110 Principles of Computing,

Carnegie Mellon University - CORTINA16

http://www.cise.ufl.edu/~mssz/CompOrg/CDAintro.html

• A multiplexer chooses between a set of inputs.

A B F

0 0 D1

0 1 D2

1 0 D3

1 1 D4

MUX

A B

F

D1D2D3D4

Page 9: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

9

Arithmetic Logic Unit (ALU)

15110 Principles of Computing,

Carnegie Mellon University - CORTINA17

OP1OP0

http://cs-alb-pc3.massey.ac.nz/notes/59304/l4.html

OP0 OP1 F

0 0 A ∧ B

0 1 A ∨ B

1 0 A

1 1 A + B

Carry In & OP

Flip Flop

• A flip flop is a sequential circuit that is able to

maintain (save) a state.

– Example: D (Data) Flip-Flop – sets output Q to input D

when clock turns on. (Images from Wikipedia)

15110 Principles of Computing,

Carnegie Mellon University - CORTINA18

ClockClock

S=Set Q to 1,

R=Reset Q to 0

Page 10: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

10

Registers

• A register is just

a set of edge-

triggered flip-flops.

Registers are

triggered by

a clock signal.

15110 Principles of Computing,

Carnegie Mellon University - CORTINA19

Clock

Reg.

Clock

D0D1D2D3

Q0Q1Q2Q3

http://cpuville.com/register.htm

Central Processing Unit (CPU)

• A CPU contains:

– Arithmetic Logic Unit to perform computation

– Registers to hold information

• Instruction register (current instruction being executed)

• Program counter (to hold location of next instruction in memory)

• Accumulator (to hold computation result from ALU)

• Data register(s) (to hold other important data for future use)

– Control unit to regulate flow of information and operations

that are performed at each instruction step

15110 Principles of Computing,

Carnegie Mellon University - CORTINA20

Page 11: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

11

A sample CPU

http://cpuville.com/main.htm

15110 Principles of Computing,

Carnegie Mellon University - CORTINA21

Computer

15110 Principles of Computing,

Carnegie Mellon University - CORTINA22

http://cse.iitkgp.ac.in/pds/notes/intro.html

Page 12: UNIT 8A - cs.cmu.edutcortina/15110f11/Unit08PtA.pdf · 1 UNIT 8A Computer Circuitry: Layers of Abstraction 15110 Principles of Computing, Carnegie Mellon University - CORTINA 1 Boolean

12

Abstraction

• We can use layers of abstraction to hide details of

the computer design.

• We can work in any layer, not needing to know how

the lower layers work or how the current layer fits

into the larger system.

-> transistors

-> gates

-> circuits (adders, multiplexors, flip-flops)

-> central processing units (ALU, registers, control)

-> computer

15110 Principles of Computing,

Carnegie Mellon University - CORTINA23