Title: Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates
1Chapter 4 The Building Blocks Binary Numbers,
Boolean Logic, and Gates
- Invitation to Computer Science,
- C Version, Third Edition
2Objectives
- In this chapter, you will learn about
- Boolean logic and gates
- The binary numbering system
- Building computer circuits
- Control circuits
3Introduction
- Chapter 4 focuses on hardware design (also called
logic design) - How to represent and store information inside a
computer - How to use the principles of symbolic logic to
design gates - How to use gates to construct circuits that
perform operations such as adding and comparing
numbers, and fetching instructions
4The Reliability of Binary Representation
Sec 4.2.3
- Electronic devices are most reliable in a
bistable environment - Bistable environment
- Distinguishes only two electronic states
- Current flowing or not
- Direction of flow
- Easiest way to make computers reliable was to use
a two-state design. Hence they are designed to
store and process binary information.
5Binary Storage Devices
Sec 4.2.4
- Magnetic core
- Historic device for computer memory
- Tiny magnetized rings flow of current sets the
direction of magnetic field - Binary values 0 and 1 are represented using the
direction of the magnetic field
6Sec 4.2.4
- Figure 4.9
- Using Magnetic Cores to Represent Binary Values
7Binary Storage Devices (continued)
Sec 4.2.4
- Transistors
- Solid-state switches either permits or blocks
current flow - A control input causes state change
- Constructed from semiconductors
8Sec 4.2.4
- Figure 4.11
- Simplified Model of a Transistor
9Sec 4.2.4
10Sec 4.2.4
11Boolean Logic and Gates Boolean Logic
Sec 4.3.1
- Boolean logic is a branch of mathematics which
describes operations on objects with two possible
values, True or False - True/False values map easily onto a two-state
electronic environment. - Boolean logic operations may be performed on
electronic signals using devices built out of
transistors and other electronic devices.
12Boolean Logic (continued)
Sec 4.3.1
- Let a and b represent objects with two possible
values, true and false - Boolean logic operations
- a AND b
- True only when a is true and b is true
- a OR b
- True when either a is true or b is true, or both
are true - NOT a
- True when a is false, and vice versa
13Boolean Logic (continued)
Sec 4.3.1
- Boolean expressions
- Constructed by combining together Boolean
operations - Example (a AND b) OR ((NOT b) AND (NOT a))
- Truth tables capture the output/value of a
Boolean expression - A column for each input plus the output
- A row for each combination of input values
14Boolean Logic (continued)
Sec 4.3.1
- Example (a AND b) OR ((NOT b) and (NOT a))
_ _alternate
expression (a b) ( b a )
a b Value
0 0 1
0 1 0
1 0 0
1 1 1
15Gates
Sec 4.3.2
- Gates
- Hardware devices built from transistors to mimic
Boolean logical operations on digital electrical
signals - AND gate
- Two input lines, one output line
- Outputs a 1 when both inputs are 1
16Gates (continued)
Sec 4.3.2
- OR gate
- Two input lines, one output line
- Outputs a 1 when either input is 1
- NOT gate
- One input line, one output line
- Outputs a 1 when input is 0 and vice versa
17Sec 4.3.1
- Figure 4.15
- The Three Basic Gates and Their Symbols
18Sec 4.3.2
NAND gate
AND gate
19Sec 4.3.2
NOR gate
OR gate
20Gates (continued)
Sec 4.3.2
- Abstraction in hardware design
- Transform hardware devices to Boolean logical
descriptions - Design more complex devices in terms of logic,
not electronics - Conversion from logic to hardware design may be
automated
21Sec 4.4.1
- Figure 4.19
- Diagram of a Typical Computer Circuit
22Building Computer Circuits Introduction
Sec 4.4.1
- A circuit is a collection of logic gates
- Transforms a set of binary inputs into a set of
binary outputs - Values of the outputs depend only on the current
values of the inputs - Combinational circuits have no cycles in them (no
outputs feed back into their own inputs)
23(No Transcript)
24(No Transcript)
25Building Computer Circuits Intro Contd.
Sec 4.4.1
inputs inputs output
a b c
0 0 1
0 1 0
1 0 0
1 1 0
We want a 1 only when both inputs are 0. Is there
a gate which will do this? An AND gate gives a
1 only when both inputs are 1. An OR gate gives
a 1 whenever at least one input is 1 Could we
use an AND gate or an OR gate somehow?
26A Circuit Construction Algorithm
Sec 4.4.2
- Sum-of-products algorithm is one way to design
circuits - Truth table to Boolean expression to gate layout
27Sec 4.4.2
- Figure 4.21
- The Sum-of-Products Circuit Construction Algorithm
28A Circuit Construction Algorithm (continued)
Sec 4.4.2
- Sum-of-products algorithm
- Truth table captures every input/output possible
for circuit - Repeat process for each output line
- Build a Boolean expression using AND and NOT for
each 1 of the output line - Combine together all the expressions with ORs
- Build circuit from whole Boolean expression
29The Binary Numbering System
- A computers internal storage techniques are
different from the way people represent
information in daily lives - Information inside a digital computer is stored
as a collection of binary data
30Binary Representation of Numeric and Textual
Information
- Binary numbering system
- Base-2
- Built from ones and zeros
- Each position is a power of 2
- 1101 1 x 23 1 x 22 0 x 21 1 x 20
- Decimal numbering system
- Base-10
- Each position is a power of 10
- 3052 3 x 103 0 x 102 5 x 101 2 x 100
31- Figure 4.2
- Binary-to-Decimal
- Conversion Table
32Taxonomy of Integers
33Binary Representation of Numeric and Textual
Information (continued)
- Representing integers
- Decimal integers are converted to binary integers
- Given k bits, the largest unsigned integer is 2k
- 1 - Given 4 bits, the largest is 24-1 15
- Signed integers must also represent the sign
(positive or negative)
34Binary to Decimal Conversion
35Decimal to Binary Conversion
36Twos Complement Representation of Signed Integers
- Used by almost all computers today
- All places hold the value they would in binary
except for the leftmost place which is negative - 8 bit integer -128 64 32 16 8 4 2 1
- Range -128,127
- If last bit (leftmost)
- is 0, then positive ? looks just as before
- is 1, then negative ?add values for first 7
digits and then subtract 128 - 1000 1101 148-128 -115
37Twos Complement Representation of Signed Integers
- Converting from decimal to 2s complement
- For positive numbers find the binary
representation - For negative numbers
- Find the binary representation for its positive
equivalent - Flip all bits
- Add a 1
- 43
- 43 0010 1011
- -43
- 43 0010 1011 ? 1101 0100 ? 1101 0101
- 1101 0101 -128641641 -43
- We can use the usual laws of binary addition
38Twos Complement Representation
- 125 - 19 106
- 0111 1101 1110 1101 ------------- 0110 1010
106 ! - What happened to the one that we carried at the
end? - Got lost but still we got the right answer!
- We carried into and carried out of the leftmost
column
39Binary Representation of Numeric and Textual
Information (continued)
- Representing real numbers
- Real numbers may be put into binary scientific
notation a x 2b - Example 101.11 x 20
- Number then normalized so that first significant
digit is immediately to the right of the binary
point - Example .10111 x 23
- Mantissa and exponent then stored
40Binary Representation of Numeric and Textual
Information (continued)
41Converting Decimal Fractions To Binary
42Converting Decimal Fractions To Binary
- Note that the binary representation of 0.410 is a
repeating base two fraction, .01102 - This just says that 0.4 cannot be exactly
represented as a sum of inverse powers of two. - .875
- .400
43Binary Representation of Textual Information
- Many transformations exist and all are arbitrary
- Two popular
- EBCDIC (Extended Binary Coded Decimal Interchange
Code) by IBM - ASCII (American Standard Code for Information
Interchange) by American National Standards
Institute (ANSI) - Most widely used
- Every letter/symbol is represented by 7 bits
- How many letters/symbols do we have in total?
- A-Z (26) , a-z (26) , 0-9 (10), symbols (33),
control characters (33) - If using 1 byte/character ? we have one extra bit
- Extended ASCII-8 (more mathematical and graphical
symbols or phonetic marks) --- 256
44Binary Representation of Numeric and Textual
Information (continued)
- Characters are mapped onto binary numbers
- ASCII code set
- 8 bits per character 256 character codes
- UNICODE code set
- 16 bits per character 65,536 character codes
- Text strings are sequences of characters in some
encoding
45(No Transcript)
46Binary Representation of Images
- Representing image data
- Images are sampled by reading color and intensity
values at even intervals across the image - Each sampled point is a pixel
- Image quality depends on number of bits at each
pixel
47Binary Representation of Images
Divide the screen into a grid of cells each
referred to as a pixel 512256 image ? grid has
512 columns and 256 rows Pixel values and sizes
depend on the type of the image For black
white images, we can use 1 bit for every pixel
such that 1 ? black and 0 ? white For grayscale
images, we use 1 byte where 255 ? black and 0 ?
white and anything in between is gray
(higher/lower values are closer to
black/white) For color images, we need three
values per pixel (depends on the color scheme
used) Red/Green/Blue We need 1 byte per value
? 3 bytes per pixel For an 512x256 image
512x256x3 384K bytes
48(No Transcript)
49(No Transcript)
50(No Transcript)
51Binary Representation of Movies
- Image movies are built from a number of images
(or frames) that are displayed in a certain
sequence at high speeds - 30 frames per second
- 2-hr movie needs (assume previous image used)
- 384K 30 60 120 83 GB (billion) bytes!
- People use compression to reduce large movie
sizes - Usually the change between two consecutive images
is small ? store only difference between frames
(Temporal compression) - Large areas with the same color can be stored by
saving the boundary pixels only (everything
within the boundaries has the same value)
(Spatial compression)
52Binary Representation of Sound
- Sound/Audio Data
- An object produces sound when it vibrates in
matter (e.g. air) - A vibrating object sends a wave of pressure
fluctuations through the atmosphere - We hear different sounds from different vibrating
objects because of variations in the sound wave
frequency - Higher wave frequency means air pressure
fluctuation switches back and forth more quickly
during a period of time - We hear this as a higher pitch (tone)
- When there are fewer fluctuations in a period of
time, the pitch is lower - The level of air pressure in each fluctuation,
the wave's amplitude or height, determines how
loud the sound is
53Binary Representation of Sound
- Numbers used to represent the amplitude of sound
wave - Analog is continuous and we need digital
- Digitize the sound signal
- Measure the voltage of the signal at certain
intervals (40,000 per sec) - Reconstruct wave
- Compression can also be used for audio files
- MP3 reduces size to 1/10th
- ? faster transfer over the Internet
54- Figure 4.5
- Digitization of an Analog Signal
- (a) Sampling the Original
- Signal
- (b) Recreating the
- Signal from the Sampled
- Values
55Binary Representation of Sound and Images
- Storage required
- Text 300 page novel
- 100,000 words x 5 char/word x 8 bits/char 4
million bits - Music WAV
- 44,100 samp/sec x 16bits/samp x 60 sec/min 42
Mbits / min - For stereo there are left and right channels gt
84 Mbits / min - Digital Photo 3 Megapixel camera, 24 bit color
- 3,000,000 pixels/photo x 24 bits/pixel 72
Mbits 7 Mbytes
56Binary Representation of Sound and Images
- Data Compression
- Lossless
- Run-length Encoding (RLE)http//en.wikipedia.org/
wiki/Run-length_encoding - Variable length code sets (Huffman
code)http//en.wikipedia.org/wiki/Huffman_coding
- Lossy
- JPEG pictureshttp//en.wikipedia.org/wiki/JPEG
- MP3, ATRAC audiohttp//en.wikipedia.org/wiki/MP
3
57Binary Representation of Sound and Images
- Digital image and audio have a lot of advantages
over non-digital ones - Can easily be modified by changing the bit
pattern - Image enhancement, noise/distortion removal, etc
- Superimpose one sound on another or image on
another results in newer ones - http//en.wikipedia.org/wiki/Digital_audio_editor
- http//en.wikipedia.org/wiki/Video_editing_softwar
e
58Back To Circuit Design And Construction
- Compare-for-equality circuit
- Addition circuit
- Both circuits can be built using the
sum-of-products algorithm
59A Compare-for-equality Circuit
- Compare-for-equality circuit
- CE compares two unsigned binary integers for
equality - Built by combining together 1-bit comparison
circuits (1-CE) - Integers are equal if corresponding bits are
equal (AND together 1-CE circuits for each pair
of bits)
60A Compare-for-equality Circuit (continued)
a b Output
0 0 1
0 1 0
1 0 0
1 1 1
61A Compare-for-equality Circuit (continued)
- 1-CE Boolean expression
- First case (NOT a) AND (NOT b)
- Second case a AND b
- Combined
- ((NOT a) AND (NOT b)) OR (a AND b)
62- Figure 4.22
- One-Bit Compare for Equality Circuit
63N-bit Compare for Equality Circuit
64Binary Addition
65An Addition Circuit
- Addition circuit
- Adds two unsigned binary integers, setting output
bits and an overflow - Built from 1-bit adders (1-ADD)
- Starting with rightmost bits, each pair produces
- A value for that order
- A carry bit for next place to the left
66An Addition Circuit (contd)
Full 4-bit Adder Circuit
67An Addition Circuit (continued)
- 1-ADD truth table
- Input
- One bit from each input integer
- One carry bit (always zero for rightmost bit)
- Output
- One bit for output place value
- One carry bit
68An Addition Circuit (continued)
ai bi ci Ci1 Sumi
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
Truth Table
Full 1-bit Adder
69- Figure 4.24
- The 1-ADD Circuit and Truth Table
70(No Transcript)
71(No Transcript)
72An Addition Circuit (continued)
- Building the full adder
- Put rightmost bits into 1-ADD, with zero for the
input carry - Send 1-ADDs output value to output, and put its
carry value as input to 1-ADD for next bits to
left - Repeat process for all bits
73(No Transcript)
74Circuit Analysis Introduction
- To analyze what a circuit does there are three
approaches. - Convert the circuit into its corresponding truth
table by hand - Simulate the circuit and generate its truth table
from observations - Build the circuit and study its behavior fro
various inputs
75Circuit Analysis Intro. Contd.
Generate truth table by hand ? Remove
Internal Lines
inputs inputs internal lines internal lines internal lines Output
a b c d e z
0 0 0 1 0 0
0 1 0 1 1 1
1 0 0 1 1 1
1 1 1 0 1 0
inputs inputs output
a b z
0 0 0
0 1 1
1 0 1
1 1 0
76Control Circuits
- Do not perform computations
- Choose order of operations or select among data
values - Major types of controls circuits
- Multiplexors
- Select one of inputs to send to output
- Decoders
- Sends a 1 on one output line, based on what input
line indicates
77Control Circuits Contd.
78Control Circuits (continued)
- Decoder
- Form
- N input lines
- 2N output lines
- N input lines indicate a binary number, which is
used to select one of the output lines - Selected output sends a 1, all others send 0
79Control Circuits Decoders
A 1-to-2 Decoder
Input Out 0 Out 1
0 1 0
1 0 1
80Control Circuits Decoders
Input Lines Input Lines OutputLines OutputLines OutputLines OutputLines
in1 in2 out0 out1 out2 out3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
A 2-to-4 Decoder
81- Figure 4.29
- A 2-to-4 Decoder Circuit
82(No Transcript)
83(No Transcript)
84Control Circuits (continued)
- Decoder purpose
- Given a number code for some operation, trigger
just that operation to take place - Numbers might be codes for arithmetic add,
subtract, etc. - Decoder signals which operation takes place next
85Control Circuits (continued)
- Multiplexor form
- 2N regular input lines
- N selector input lines
- 1 output line
- Multiplexor purpose
- Given a code number for some input, selects that
input to pass along to its output - Used to choose the right input value to send to a
computational circuit
86Control Circuits (continued)
87- Figure 4.28
- A Two-Input Multiplexor Circuit
88A Two-Input Multiplexor Circuit Using A 1-to-2
Decoder
89A 4-Input Multiplexor Circuit Using A 2-to-4
Decoder
90Decoder Example 1
91Multiplexor Example 1
92Summary
- Digital computers use binary representations of
data numbers, text, multimedia - Binary values create a bistable environment,
making computers reliable - Boolean logic maps easily onto electronic
hardware - Circuits are constructed using Boolean
expressions as an abstraction - Computational and control circuits may be built
from Boolean gates