Chapter 4: Main Building Blocks of Hardware

advertisement

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

1

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

2

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

3

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

4

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: 10 0

Tens: 10 1

Hundreds 10 2

Thousands 10 3

Example: 3049 = 3*10 3 + 0*10 2 + 4*10 1 + 9*10 0

Similarly: Binary numbers use the same idea, except that we have 2 digits only  0 and 1

5

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*2 5 + 1*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0

= 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.

6

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 = 2 15 + … .+2 0 = 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.

7

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 =

- (2

5

+ 2

4

+ 2

0

) =

- (32 +16 + 1) = -49

Hence: -49 is represented as 1110001

8

Binary Numbers

How the computer knows that 1110001 is – 49 and not the 8-bit number 1110001 =

2

6

+ 2

5

+ 2

4

+ 2

0

=

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.

9

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

10

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]

2  [6, 9]

1  [22, 45]

… 11

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.

12

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

13

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 ”

14

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

Binary 0 current

Direction of magnetic field

Binary 1

15

Binary Numbers

Transistors

Typical density for cores: 500 bits/in 2

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 / cm 2

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 16

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/cm 2 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 cm 2 ) and cheap (ca. $100) processors with millions of transistors, which are far more powerful than the old machines.

17

Binary Numbers

Bus

Individual transistors

IC

DIP

PINs

Circuit board

18

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)

19

Binary Numbers

The two states of a transistor:

Switch closed

Power supply

(+5V)

1

Switch is open

+5V Power supply

Measuring

(+5V) device

0V

Measuring device

20

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 19 th 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.

21

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

22

Boolean Logic

Truth table for AND a true true false false

Truth table for OR a true true false false b true false true false b true false true false a AND b (also written a.b) true false false false a OR b (also written a+b) true true true false

23

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)

24

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)

25

Gates

 a b

Representation of the 3 gates looks like: a a.b

a+b a b

We use the following (and similar) representation(s): a a

AND a.b

OR a+b a NOT 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

a a

26

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)

27

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)

28

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

Resistor

Output a

Input (a)

29

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

30

From Gates To Circuits

Example: a

Inputs b

OR

NOT AND NOT

Circuit computes:

 c = a OR b d = NOT ((a OR b) AND (NOT b)) c

Outputs d

31

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

32

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  2 n 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

33

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

1

1

1

1

0

0

0

0

1

1

0

0

0

1

1

0

0

1

0

1

1

0

1

0

0

1 (case 1)

0

0

0

1 (case 2)

0

Step 2:

 not(a).b.not(c)

 a.b.not(c)

34

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

35

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

001101 +

001110

= 011011

(carry bit)

(13)

(14)

(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!)

36

From Gates To Circuits

Step 1: Truth table

1

1

0

1

1

0

0

Ai

0

0

1

1

0

1

0

1

Bi

0

1

0

1

0

1

1

0

Ci

0

0

0

0

1

1

Si

0

1

1

1

1

1

0

1

0

0

Ci-1

0

Ai

Bi

Ci

Inputs

1-ADD

Outputs

Si

Ci-1

37

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

38

From Gates To Circuits

Step 4: Circuit itself (1-ADD)

Si

Ci-1

NOT AND

39

OR

Ai Bi Ci

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 (C

N

= 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

B = b

1 b

2

… b

N-1 b

N

A= a

1 a

2

… a

N-1 a

N

C

0

1-ADD

C

1

1-ADD

C

2

C

N-2

1-ADD

C

N-1

1-ADD

C

N

= 0

S= s

0 s

1 s

2

… s

N-1 s

N

40

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

41

From Gates To Circuits

Control circuits

Used to control program execution in a computer

Multiplexer

Decoder

Multiplexer

Structure

2 N 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

42

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

R3

R4

Registers

Multiplexer

Check-zero circuit

Selector lines

43

From Gates To Circuits

Decoder

Structure

N input lines

2 N 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

44

From Gates To Circuits

Diagram for a 4-operations decoder

Operation Codes

00 = ‘+’

01 = ‘-’

10 = ‘*’

11 = ‘/’

Decoder

2 Inputs 4 Outputs

Add circuit

Subtract circuit

Multiply circuit

Divide circuit

45

Download