Organisasi Komputer (T. Informatika)

(1)

Principles of Computer Architecture

Miles Murdocca and Vincent Heuring

Appendix B: Reduction of Digital

Logic


(2)

B.1 Reduction of Combinational Logic and Sequential Logic B.2 Reduction of Two-Level Expressions


(3)

Reduction (Simplification) of Boolean

Expressions

• It is usually possible to simplify the canonical SOP (or POS) forms.

• A smaller Boolean equation generally translates to a lower gate count in the target circuit.

• We cover three methods: algebraic reduction, Karnaugh map re-duction, and tabular (Quine-McCluskey) reduction.


(4)

• Compared with the AND-OR circuit for the unreduced majority

function, the inverter for C has been eliminated, one AND gate has been eliminated, and one AND gate has only two inputs instead of three inputs. Can the function by reduced further? How do we go about it?

F

A B C

F

A B C

A B C A B C A B C

A B C

Unreduced


(5)

The Algebraic Method

• Consider the majority function, F. We apply the algebraic method to reduce F to its minimal two-level form:

F ABC AB C ABC ABC

F ABC AB C AB C C

F ABC AB C AB

F ABC AB C AB

F ABC AB C AB ABC

F ABC AC B B AB

F ABC AC AB

F ABC AC AB ABC

F BC

= + + +

= + + +

= + +

= + +

= + + +

= + + +

= + +

= + + +

=

( )

( )

( )

Distributive Property Complement Property Identity Property

Idempotence Identity Property Complement and Identity

Idempotence 1

((A A) AC AB

F BC AC AB

+ + +

= + +

Distributive


(6)

• This majority circuit is functionally equivalent to the previous ma-jority circuit, but this one is in its minimal two-level form:

F


(7)

Karnaugh Maps: Venn Diagram

Rep-resentation of Majority Function

• Each distinct region in the “Universe” represents a minterm. • This diagram can be transformed into a Karnaugh Map.

ABC

ABC’ AB’C’ AB’C

A’BC

A’BC’ A’B’C

A’B’C’ B

A


(8)

K-Map for Majority Function

• Place a “1” in each cell that corresponds to that minterm. • Cells on the outer edge of the map “wrap around”

A B C F

Minterm Index

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

0 1 2 3 4 5 6 7

1 0

0-side 1-side

0

A balance tips to the left or right depending on whether

there are more 0’s or 1’s.

00

01

11

10

0

1

AB

C

1

1


(9)

Adjacency Groupings for Majority

Function

• F = BC + AC + AB

00

01

11

10

0

1

AB

C

1

1


(10)

• F = BC + AC + AB

• The K-map approach yields the same minimal two-level form as the algebraic approach.

F


(11)

K-Map Groupings

• Minimal grouping is on the left, non-minimal (but logically equiva-lent) grouping is on the right.

• To obtain minimal grouping, create smallest groups first.

00 01 11

1 01 11 1 1 10 AB 1 CD 10 00 01 11 01 11 10 CD 10 00 00 AB 1 1 1 1 1 2 3 4 1 1 1 1 1 1 1 1 2 4 5 1

F = A B C + A C D + A B C + A C D

F = B D + A B C + A C D + A B C + A C D


(12)

K-Map Corners are Logically Adjacent

00 01 11

1

1

1 01

11

1

1 1

1 1

10

AB

1

CD

00

10


(13)

K-Maps and Don’t Cares

• There can be more than one minimal grouping, as a result of don’t cares.

00 01 11

1 01

11

1 1

10

AB

1

CD

10 d

00 d

F = B C D + B D

01 11

1 01

11

1 1

10

1

CD

10 d

00 d

00

AB

F = A B D + B D


(14)

Five-Variable K-Map

• Visualize two 4-variable K-maps stacked one on top of the other; groupings are made in three dimensional cubes.

01 11

001 011

10

CDE

010 000

00

AB

01 11

101 111

10

CDE

110 100

00

AB

1 1

1 1

1 1

1 1

1 1

1 1


(15)

Six-Variable K-Map

• Visualize four 4-variable K-maps stacked one on top of the other; groupings are made in three dimensional cubes.

001 011 001 011 010 DEF 010 000 000 ABC 001 011 101 111 010 DEF 110 100 000 ABC 101 111 001 011 110 DEF 010 000 100 ABC 101 111 101 111 110 DEF 110 100 100 ABC 1 1 1 1 1 1 1 1 = +


(16)

• K-Kap Reduction results in a reduced two-level circuit (that is, AND followed by OR. Inverters are not included in the two-level count). Algebraic reduction can result in multi-level circuits with even fewer logic gates and fewer inputs to the logic gates.

M


(17)

Map-Entered Variables

• An example of a K-map with a map-entered variable D.

00 01 11 10

0

1

AB C

1 1

D


(18)

Two Map-Entered Variables

• A K-map with two map-entered variables D and E. • F = BC + ACD + BE + ABCE

00 01 11 10

0 1 AB C

1 1


(19)

Truth Table with Don’t Cares

• A truth table repre-sentation of a single function with don’t cares. 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 C D 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B d 1 0 1 0 1 1 1 0 0 1 d 0 1 0 d F 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 A


(20)

• Tabular reduction be-gins by grouping

minterms for which F is nonzero according to the number of 1’s in each minterm. Don’t cares are considered to be nonzero.

• The next step forms a consensus (the logical form of a cross prod-uct) between each pair of adjacent groups for all terms that differ in only one variable.

0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 C D 0 0 0 1 1 0 1 0 1 1 B 0 0 0 0 0 1 0 1 1 1 A √ √ √ √ √ √ √ √ √ √ 0 _ 0 1 1 _ 0 1 1 1 1 _ _ 1 1 1 1 1 1 _ _ 1 1 1 C D 0 0 _ _ 0 1 1 1 0 1 _ 1 B 0 0 0 0 _ 0 _ 0 1 _ 1 1 A * √ √ √ √ √ √ * * √ √ √ _ 1 _ 1 1 1 C D _ _ 1 B 0 _ _ A * * * Initial setup After first

reduction After secondreduction

(a)

(b)


(21)

Table of Choice

• The prime implicants form a set that completely covers the func-tion, although not necessarily minimally.

• A table of choice is used to obtain a minimal cover set.

0 0 1 0 _ _

0 1 0 _ _ 1

0 1 1 _ 1 _

_ _ _ 1 1 1

0001 0011 0101 0110 0111 1010 1101 Minterms

Prime Implicants

√ √

√ √ √ √

√ √

√ √ √

* *


(22)

Reduced Table of Choice

• In a reduced table of choice, the essential prime implicants and the minterms they cover are removed, producing the eligible set. • F = ABC + ABC + BD + AD

0

0

_

0

_

_

0

_

1

_

1

1

0001 0011

Minterms

Eligible

Set

Set 1

0 0 0 _

_ _ 1 1

Set 2

0 _ _ 1

X

Y

Z


(23)

Multiple Output Truth Table

• The power of tabular reduction comes into play for multiple func-tions, in which minterms can be shared among the functions.

0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 B C 0 0 0 0 1 1 1 1 A 1 0 0 1 0 0 0 1 F0 0 1 0 1 1 0 1 1 F1 0 0 1 1 0 0 1 1 F2 m0 m1 m2 m3 m4 m5 m6 m7 Minterm


(24)

F0(A,B,C) = ABC + BC

F1(A,B,C) = AC + AC + BC F2(A,B,C) = B

0 0 1 _ 1 _

0 _ _ 1 1 1

0 1 0 _ _ 1 Prime

Implicants

m0 m3 m7 m1 m3 m4 m6 m7 m2 m3 m6 m7 F0(A,B,C) F1(A,B,C) F2(A,B,C)

Min-terms

F0 F1 F1 F2 F1,2 F0,1,2

√ √

√ √

√ √ √ √ √ √

√ √ √ √ √

* * * *

*


(25)

Speed and Performance

• The speed of a digital system is governed by:

• the propagation delay through the logic gates and • the propagation delay across interconnections.

• We will look at characterizing the delay for a logic gate, and a method of reducing circuit depth using function decomposition.


(26)

Propagation Delay for a NOT Gate

• (From Hamacher et. al. 1990)

+5V

0V

+5V

0V

10%

90% Transition Time

90% 10%

50% (2.5V)

50% (2.5V) Propagation Delay

Transition Time

Time

A NOT gate input changes from 1 to 0

The NOT gate output changes from 0 to 1

(Fall Time)

(Latency)


(27)

MUX Decomposition

A C F 0000 0001 0010 0011 B 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 D 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0

1 A D

F 00 01 10 11 B C 00 01 10 11 B C 00 01 10 11 1 0 0 1 0 1 1 0 0

B C+ B C

B C + B C

F ABCD AB C D AB CD ABC D ABCD AB C D ABCD

B C BC AD B C BC AD B C BC

( )

( ) ( ) ( )

= + + + + +


(28)

OR-Gate Decomposition

• Fanin affects circuit depth.

A + B + C + D A BCD

Associative law of Boolean algebra: Initial high fan-in gate

Balanced tree

A B CD

(A + B) + (C + D)

Degenerate tree

A B C D


(29)

State Reduction

• Description of state machine M0 to be reduced.

X

0

1

A

C/0

E/1

Present state

Input

B

C

D

E

D/0

E/1

C/1

B/0

C/1

A/0


(30)

• A next state tree for M0.

(ABCDE)

(CDA)(CC)

(ABE)(CD)

(CC)(C)(CC)

(AB)(E)(CD)*

(BA)(E)(BB)

(AB)(E)(CD)

(DC)(A)(DD)

(AB)(E)(CD)

(EE)(C)(EE)

(AB)(E)(CD)*

(CC)(C)(CC) (AB)(E)(AA)

(AB)(E)(CD)

(CD)(A)(CC) (EE)(C)(EE)

(EEC)(BA)

(ABE)(CD)

(AA)(C)(DC)

(AB)(E)(CD)

(CC)(B)(EE)

(AB)(E)(CD)*

(CC)(C)(CC) (EE)(B)(AB)

0 1

0 1 0 1

0 1 0 1

0 1

0 1

Next states


(31)

Reduced State Table

• A reduced state table for machine M1.

X

0

1

AB: A'

B'

/0

C'

/1

Current state

Input

CD: B'

E: C'

B'

/1

A'

/0

A'

/0

B'

/1


(32)

The State Assignment Problem

• Two state assignments for machine M2.

P.S.

Input X

0 1

A B/1 A/1

B C/0 D/1

C C/0 D/0

D B/1 A/0

Machine M2

Input X

0 1

A: 00 01/1 00/1

B: 01 10/0 11/1

C: 10 10/0 11/0

D: 11 01/1 00/0

State assignment SA0

S0S1

Input X

0 1

A: 00 01/1 00/1

B: 01 11/0 10/1

C: 11 11/0 10/0

D: 10 01/1 00/0

State assignment SA1


(33)

State Assignment SA

0

• Boolean equations for machine M2 using state assignment SA0.

01 11

1

10

X

0 00

S0S1

1 1

1 1

01 11

1

10 0 00 1

1

1 1

X S0S1

01 11

1

10 0

00 1 1

1 1

X S0S1

S0 = S0S1 + S0S1 Z = S0S1 + S0X

+ S0S1X S1 = S0S1X + S0S1X


(34)

State Assignment SA

1

• Boolean equations for machine M2 using state assignment SA1.

01 11

1

10 X

0 00 S0S1

1 1

1 1

01 11

1

10 0 00 1 1

1 1 X S0S1

01 11

1

10 00 X

1 1

1

1

S0S1 0

S1 = X


(35)

Sequence Detector State Transition

Diagram

A

B

0/0

1/0

C

D

E

F

G

0/0

1/0

0/0

1/0

0/0

1/0 1/0

1/1 0/0

1/1

0/0

0/1 Input: 0 1 1 0 1 1 1 0 0

Output: 0 0 1 1 1 1 0 1 0 Time: 0 1 2 3 4 5 6 7 8


(36)

Sequence Detector State Table

X

0 1

A B/0 C/0

Present state Input

B C D E

D/0 E/0 F/0 G/0 D/0 E/0 F/0 G/1

F D/0 E/1


(37)

Sequence Detector Reduced State

Table

X

0

1

B'

/0

C'

/0

Present state

Input

B'

/0

D'

/0

E'

/0

F'

/0

E'

/0

F'

/1

B'

/0

D'

/1

E'

/1

F'

/0

A: A'

BD: B'

C: C'

E: D'

F: E'

G: F'


(38)

Sequence Detector State Assignment

X

0 1

A': 000 001/0 010/0

Present state

Input

B': 001 C': 010 D': 011 E': 100

001/0 011/0

100/0 101/0

100/0 101/1

001/0 011/1

F': 101 100/1 101/0


(39)

Excitation Tables

• In addition to the D flip-flop, the S-R, J-K, and T flip-flops are used as delay elements in finite state machines.

• A Master-Slave J-K flip-flop is shown below.

Q Q J

CLK

J

Q Q

K

Circuit Symbol


(40)

• K-map re-duction of next state and output functions for sequence detector. 01 11 10 00

S0X

1 1 1 1

01 11 10

d d d d 1 1 1 1 00

S2S1

01 11 10 00

S0X

1 1

01 11 10

d d d d 1 00

S2S1

01 11 10 00

S0X

1 1 1 10 d d d d 00

S2S1

01 11 10 00

S0X

1 01 11 10

d d d d 1 1 00

S2S1

01 11

S0 = S2S1X +S0X

+S2S0 +S1X

S1 = S2S1X +S2S0X

= + +

1 1

1


(41)

Clocked T Flip-Flop

• Logic diagram and symbol for a T flip-flop.

J

Q Q

K

Circuit

Q Q

Symbol 1


(42)

Sequence

Detector

Circuit

CLK

Q D

Q S0

Z Q

D Q S1

Q D

Q S2


(43)

Excitation Tables

• Each table

shows the set-tings that must be applied at the inputs at time t in order to

change the out-puts at time t+1.

0 0 1 1 0 1 0 1

Qt Qt+1 S

0 1 0 0 R 0 0 1 0 S-R flip-flop 0 0 1 1 0 1 0 1

Qt Qt+1 D

0 1 0 1 D flip-flop 0 0 1 1 0 1 0 1

Qt Qt+1 J

0 1 d d K d d 1 0 J-K flip-flop 0 0 1 1 0 1 0 1

Qt Qt+1 T

0 1 1 0 T flip-flop


(44)

Serial Adder 0 1 1 0 0

0 1 1 1 0

1 1 0 1 0

X Y

Z

Cin Cout

4 3 2 1 0

4 3 2 1 0 Time (t)

Time (t)

A B

00/0 01/1 10/1

11/0

00/1

10/0 01/0 11/1 No carry

state Carry state

xi yi

zi

Present state (St)

Input XY

00 01 10 11

A:0 0/0 0/1 0/1 1/0 B:1 0/1 1/0 1/0 1/1

Present state

Input XY

00 01 10 11

A A/0 A/1 A/1 B/0

B A/1 B/0 B/0 B/1

Next state Output

• State transi-tion diagram, state table, and state as-signment for a serial adder.


(45)

Serial Adder Next-State Functions

• Truth table showing next-state functions for a serial adder for D, S-R, T, and J-K flip-flops. Shaded functions are used in the ex-ample. 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

Y St

0 0 0 0 1 1 1 1 X 0 0 0 1 0 1 1 1 D 0 0 0 0 0 0 1 0 S 0 1 0 0 0 0 0 0 R 0 d 0 d 0 d 1 d J d 1 d 0 d 0 d 0 K 0 1 0 0 0 0 1 0 T 0 1 1 0 1 0 0 1 Z Present


(46)

CLK

Q J X

Y

Q

X Y

Y

X

Z S K X


(47)

D Flip-Flop Serial Adder Circuit

CLK

Q D X

Y

Q

X Y

Y

X

Z S X


(48)

A

0/0

B

C

D

E

F

G

0/1

1/0

1/1 0/0

1/0

0/0 1/0

0/0 1/0 0/0 1/1

0/0 1/1

Input: 0 1 1 1 0 0 1 0 1 Output: 0 0 1 0 0 0 0 0 1 Time: 0 1 2 3 4 5 6 7 8 Input History _ _ _

0 _ _

1 _ _

0 0 _ 0 1 _

1 0 _ 1 1 _


(49)

Majority FSM State Table

• (a) State table for majority FSM; (b) partitioning; (c) reduced state table.

X

0 1

A B/0 C/0

P.S. Input

B C D E

D/0 E/0 F/0 G/0 A/0 A/0 A/0 A/1 F A/0 A/1 G A/1 A/1

(a)

X

0 1

B'/0 C'/0 D'/0 E'/0 E'/0 F'/0 A'/0 A'/0 A'/0 A'/1 A'/1 A'/

1

A: A' B: B' C: C' D: D' EF: E'

G: F'

(c)

P0 = (ABCDEFG) P1 = (ABCD)(EF)(G) P2 = (AD)(B)(C)(EF)(G) P3 = (A)(B)(C)(D)(EF)(G) P4 = (A)(B)(C)(D)(EF)(G) √

P.S. Input


(50)

Majority FSM State Assignment

• (a) State assignment for reduced majority FSM using D flip-flops; and (b) using T flip-flops.

X

0 1

A': 000 001/0 010/0

P.S.

Input

B': 001 C': 010 D': 011 E': 100

011/0 100/0 100/0 101/0 000/0 000/0 000/0 000/1

F': 101 000/1 000/1 S2S1S0 S2S1S0Z S2S1S0Z

X

0 1

A': 000 001/0 010/0

P.S.

Input

B': 001 C': 010 D': 011 E': 100

000/0 010/0 110/0 111/0 011/0 011/0 100/0 100/1

F': 101 101/1 101/1 S2S1S0 T2T1T0Z T2T1T0Z


(51)

Majority FSM Circuit

Q D Q T 2 000 001 010 011 100 101 110 111 0 0 1 0 0 0 0 0 Q D Q T 1 000 001 010 011 100 101 110 111 x 1 1 0 0 0 0 Q D Q T 0 000 001 010 011 100 101 110 111 x 1 0 1 0 0 000 001 010 011 100 101 110 111 0 0 0 0 x 1 0 0 Z x 0 xx CLK x


(52)

Principles of Computer Architecture

Miles Murdocca and Vincent Heuring


(53)

Chapter Contents

1.1 Overview

1.2 A Brief History

1.3 The Von Neumann Model 1.4 The System Bus Model 1.5 Levels of Machines

1.6 Upward Compatibility 1.7 The Levels

1.8 A Typical Computer System 1.9 Organization of the Book


(54)

Computer architecture deals with the functional behavior of a computer system as viewed by a programmer (like the size of a data type – 32 bits to an integer).

Computer organization deals with structural relationships that are not visible to the programmer (like clock frequency or the size of the physical memory).

• There is a concept of levels in computer architecture. The basic idea is that there are many levels at which a computer can be con-sidered, from the highest level, where the user is running


(55)

Pascal’s Calculating Machine

• Performs basic arithmetic operations (early to mid 1600’s). Does not have what may be considered the basic parts of a computer. • It would not be until the 1800’s until Babbage put the concepts of

mechanical control and mechanical calculation together into a machine that has the basic parts of a digital computer.

(Source: IBM Archives photograph.)


(56)

Input Unit Arithmetic and Logic

Unit (ALU) Output Unit Memory

Unit

Control Unit

• The von Neumann model consists of five major components:

(1) input unit; (2) output unit; (3) arithmetic logic unit; (4) memory unit; (5) control unit.


(57)

System Bus

Data Bus Address Bus Control Bus (ALU,

Registers, and Control)

Memory Input and Output (I/O) CPU

The System Bus Model

• A refinement of the von Neumann model, the system bus model has a CPU (ALU and control), memory, and an input/output unit. • Communication among components is handled by a shared

path-way called the system bus, which is made up of the data bus, the address bus, and the control bus. There is also a power bus, and some architectures may also have a separate I/O bus.


(58)

High Level

High Level Languages User Level: Application Programs

Low Level

Functional Units (Memory, ALU, etc.)

Logic Gates Transistors and Wires

Assembly Language / Machine Code Microprogrammed / Hardwired Control

• There are a number of levels in a computer (the exact number is open to debate), from the user level down to the transistor level. • Progressing from the top level downward, the levels become less

abstract as more of the internal structure of the computer be-comes visible.


(59)

Monitor

CD-ROM drive Hard disk drive

Keyboard

Sockets for internal memory CPU (Microprocessor

beneath heat sink)

Sockets for plug-in expansion cards Diskette drive


(60)

Memory

Input / output

Battery Plug-in expansion card slots

Power supply connector Pentium II processor slot

(ALU/control)

• The five von Neumann components are visible in this example motherboard, in the context of the system bus model.

(Source: TYAN Computer, http://www.tyan.com)


(61)

Manchester University Mark I

• Supercomputers, which are produced in low volume and have a high price, have been largely displaced by, high-volume low-priced machines that offer a better price-to-performance ratio.


(62)

Moore’s Law

• Computing power doubles every 18 months for the same price. • Project planning needs to take this observation seriously: an

ar-chitectural innovation that is being developed for a projected ben-efit that quadruples performance in three years may no longer be relevant: the architectures that exist by then may already offer quadrupled performance and may look entirely different from what the innovation needs to be effective.


(63)

Principles of Computer Architecture

Miles Murdocca and Vincent Heuring


(64)

2.1 Introduction

2.2 Fixed Point Numbers 2.3 Floating Point Numbers

2.4 Case Study: Patriot Missile Defense Failure Caused by Loss of Precision


(65)

Fixed Point Numbers

• Using only two digits of precision for signed base 10 numbers, the range (interval between lowest and highest numbers) is

[-99, +99] and the precision (distance between successive num-bers) is 1.

• The maximum error, which is the difference between the value of a real number and the closest representable number, is 1/2 the pre-cision. For this case, the error is 1/2 × 1 = 0.5.

• If we choose a = 70, b = 40, and c = -30, then a + (b + c) = 80 (which is correct) but (a + b) + c = -30 which is incorrect. The problem is that (a + b) is +110 for this example, which exceeds the range of +99, and so only the rightmost two digits (+10) are retained in the intermediate result. This is a problem that we need to keep in mind when representing real numbers in a finite representation.


(66)

• The base, or radix of a number system defines the range of pos-sible values that a digit may have: 0 – 9 for decimal; 0,1 for binary. • The general form for determining the decimal value of a number is

given by:

Example:

541.2510 = 5 × 102 + 4 × 101 + 1 × 100 + 2 × 10-1 + 5 × 10-2 = (500)10 + (40)10 + (1)10 + (2/10)10 + (5/100)10


(67)

Base Conversion with the Remainder

Method

• Example: Convert 23.37510 to base 2. Start by converting the inte-ger portion:

23/2 = 11 R 1

11/2 = 5 R 1

5/2 = 2 R 1

2/2 = 1 R 0

1/2 = 0 R 1

Integer Remainder

Least significant bit

Most significant bit (23)10 = (10111)2


(68)

Base Conversion with the

Multiplica-tion Method

• Now, convert the fraction:

.375 × 2 = 0.75

.75 × 2 = 1.50

.5 × 2 = 1.00

Least significant bit Most significant bit

(.375)10 = (.011)2


(69)

Nonterminating Base 2 Fraction

• We can’t always convert a terminating base 10 fraction into an equivalent terminating base 2 fraction:

.2 .4 .8 .6 .2

. . .

0.4 0.8 1.6 1.2 0.4 =

= = = = 2

2 2 2 2

× × × × ×


(70)

• Example: Show a column for ternary (base 3). As an extension of that, convert 1410 to base 3, using 3 as the divisor for the remain-der method (instead of 2). Result is 1123

Binary (base 2) 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Octal (base 8) 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 Decimal (base 10) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hexadecimal (base 16) 0 1 2 3 4 5 6 7 8 9 A B C D E F


(71)

More on Base Conversions

• Converting among power-of-2 bases is particularly simple: 10112 = (102)(112) = 234

234 = (24)(34) = (102)(112) = 10112 1010102 = (1012)(0102) = 528

011011012 = (01102)(11012) = 6D16

• How many bits should be used for each base 4, 8, etc., digit? For base 2, in which 2 = 21, the exponent is 1 and so one bit is used for each base 2 digit. For base 4, in which 4 = 22, the exponent is 2, so so two bits are used for each base 4 digit. Likewise, for base 8 and base 16, 8 = 23 and 16 = 24, and so 3 bits and 4 bits are used for base 8 and base 16 digits, respectively.


(72)

Binary Addition

• This simple binary addition example provides background for the signed number representations to follow.

Operands 0 0 + 0 0 Sum Carry out

Carry in 0

0 1 + 1 0 0 1 0 + 1 0 0 1 1 + 0 1 0 Example: Carry

Addend: A

Augend: B

Sum

0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0

1 1 0 1 0 1 1 0 + (124)10 (90)10 (214)10 0 0 + 1 0 1 0 1 + 0 1 1 1 0 + 0 1 1 1 1 + 1 1 1


(73)

Signed Fixed Point Numbers

• For an 8-bit number, there are 28 = 256 possible bit patterns.

These bit patterns can represent negative numbers if we choose to assign bit patterns to numbers in this way. We can assign half of the bit patterns to negative numbers and half of the bit patterns to positive numbers.

• Four signed representations we will cover are: Signed Magnitude

One’s Complement Two’s Complement Excess (Biased)


(74)

Signed Magnitude

• Also know as “sign and magnitude,” the leftmost bit is the sign (0 = positive, 1 = negative) and the remaining bits are the magnitude.

• Example:

+2510 = 000110012 -2510 = 100110012

• Two representations for zero: +0 = 000000002, -0 = 100000002.

• Largest number is +127, smallest number is -12710, using an 8-bit representation.


(75)

One’s Complement

• The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by subtracting each bit from 2 (essentially, complementing each bit from 0 to 1 or from 1 to 0). This goes both ways: converting positive numbers to negative numbers, and con-verting negative numbers to positive numbers.

• Example:

+2510 = 000110012 -2510 = 111001102

• Two representations for zero: +0 = 000000002, -0 = 111111112.

• Largest number is +12710, smallest number is -12710, using an 8-bit representation.


(76)

• The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by adding 1 to the one’s complement tive. This goes both ways, converting between positive and nega-tive numbers.

• Example (recall that -2510 in one’s complement is 111001102): +2510 = 000110012

-2510 = 111001112

• One representation for zero: +0 = 000000002, -0 = 000000002.

• Largest number is +12710, smallest number is -12810, using an 8-bit representation.


(77)

Excess (Biased)

• The leftmost bit is the sign (usually 1 = positive, 0 = negative). Positive and negative representations of a number are obtained by adding a bias to the two’s complement representation. This goes both ways, converting between positive and negative num-bers. The effect is that numerically smaller numbers have smaller bit patterns, simplifying comparisons for floating point exponents.

• Example (excess 128 “adds” 128 to the two’s complement ver-sion, ignoring any carry out of the most significant bit) :

+1210 = 100011002 -1210 = 011101002

• One representation for zero: +0 = 100000002, -0 = 100000002.

• Largest number is +12710, smallest number is -12810, using an 8-bit representation.


(78)

Ten’s Complement

• Each binary coded decimal digit is composed of 4 bits.

0 0 0 0 (0)10

0 0 1 1 (3)10

0 0 0 0 (0)10

0 0 0 1 (1)10

(+301)10 1 0 0 1

(9)10

0 1 1 0 (6)10

1 0 0 1 (9)10

1 0 0 0 (8)10

(–301)10 1 0 0 1

(9)10

0 1 1 0 (6)10

1 0 0 1 (9)10

1 0 0 1 (9)10

(–301)10

Nine’s complement

Ten’s complement Nine’s and ten’s complement (a)

(b)

(c)

• Example: Represent +07910 in BCD: 0000 0111 1001

• Example: Represent -07910 in BCD: 1001 0010 0001. This is ob-tained by first subtracting each digit of 079 from 9 to obtain the nine’s complement, so 999 - 079 = 920. Adding 1 produces the

ten’s complement: 920 + 1 = 921. Converting each base 10 digit of 921 to BCD produces 1001 0010 0001.


(79)

(80)

Base 10 Floating Point Numbers

• Floating point numbers allow very large and very small numbers to be represented using only a few digits, at the expense of preci-sion. The precision is primarily determined by the number of dig-its in the fraction (or significand, which has integer and fractional parts), and the range is primarily determined by the number of digits in the exponent.

• Example (+6.023 × 1023):

+ Sign

2 3 6 0 2

Exponent

(two digits) (four digits)Significand Position of decimal point

3


(81)

Normalization

• The base 10 number 254 can be represented in floating point form as 254 × 100, or equivalently as:

25.4 × 101, or 2.54 × 102, or .254 × 103, or .0254 × 104, or

infinitely many other ways, which creates problems when making comparisons, with so many representations of the same number. • Floating point numbers are usually normalized, in which the radix

point is located in only one possible position for a given number. • Usually, but not always, the normalized representation places the radix point immediately to the left of the leftmost, nonzero digit in the fraction, as in: .254 × 103.


(82)

• Represent .254 × 103 in a normalized base 8 floating point format with a sign bit, followed by a 3-bit excess 4 exponent, followed by four base 8 digits.

• Step #1: Convert to the target base.

.254 × 103 = 25410. Using the remainder method, we find that 25410 = 376 × 80:

254/8 = 31 R 6 31/8 = 3 R 7 3/8 = 0 R 3

• Step #2: Normalize: 376 × 80 = .376 × 83.

• Step #3: Fill in the bit fields, with a positive sign (sign bit = 0), an exponent of 3 + 4 = 7 (excess 4), and 4-digit fraction = .3760:


(83)

Error, Range, and Precision

• In the previous example, we have the base b = 8, the number of significant digits (not bits!) in the fraction s = 4, the largest expo-nent value (not bit pattern) M = 3, and the smallest expoexpo-nent value m = -4.

• In the previous example, there is no explicit representation of 0, but there needs to be a special bit pattern reserved for 0 other-wise there would be no way to represent 0 without violating the normalization rule. We will assume a bit pattern of

0 000 000 000 000 000 represents 0.

• Using b, s, M, and m, we would like to characterize this floating point representation in terms of the largest positive representable number, the smallest (nonzero) positive representable number, the smallest gap between two successive numbers, the largest gap between two successive numbers, and the total number of numbers that can be represented.


(84)

Error, Range, and Precision (cont’)

• Largest representable number: bM × (1 - b-s) = 83 × (1 - 8-4)

• Smallest representable number: bm × b-1 = 8-4 - 1 = 8-5

• Largest gap: bM × b-s = 83 - 4 = 8-1


(85)

Error, Range, and Precision (cont’)

• Number of representable numbers: There are 5 components: (A) sign bit; for each number except 0 for this case, there is both a positive and negative version; (B) (M - m) + 1 exponents; (C) b - 1 values for the first digit (0 is disallowed for the first normalized digit); (D) bs-1 values for each of the s-1 remaining digits, plus (E) a special representation for 0. For this example, the 5 components result in: 2 × ((3 - 4) + 1) × (8 - 1) × 84-1 + 1 numbers that can be

represented. Notice this number must be no greater than the num-ber of possible bit patterns that can be generated, which is 216.

2 × ((M - m) + 1) × (b - 1) × bs-1 + Sign bit of fractionFirst digit Remaining digits of

fraction The number

of exponents Zero

A B C D E


(86)

Example Floating Point Format

• Smallest number is 1/8 • Largest number is 7/4 • Smallest gap is 1/32 • Largest gap is 1/4

• Number of representable numbers is 33.

–3 –1 –1 0 1 1 3

– 1 4

1 4 – 1

8

1 8 2

2 2 2

b = 2 M = +1 s = 3 m = –2


(87)

Gap Size Follows Exponent Size

• The relative error is approximately the same for all numbers.

• If we take the ratio of a large gap to a large number, and compare that to the ratio of a small gap to a small number, then the ratios are the same:

b

M

×

(1 –

b

s

)

b

Ms

1 –

b

s

b

s

=

=

b

s

–1

A large number

A large gap

1

b

m

×

(1 –

b

s

)

b

ms

1 –

b

s

b

s

=

=

b

s

–1

A small number


(88)

• Example: Convert (9.375 × 10-2)10 to base 2 scientific notation • Start by converting from base 10 floating point to base 10 fixed

point by moving the decimal point two positions to the left, which corresponds to the -2 exponent: .09375.

• Next, convert from base 10 fixed point to base 2 fixed point: .09375 × 2 = 0.1875

.1875 × 2 = 0.375 .375 × 2 = 0.75 .75 × 2 = 1.5 .5 × 2 = 1.0 • Thus, (.09375)10 = (.00011)2.

• Finally, convert to normalized base 2 floating point:


(89)

IEEE-754 Floating Point Formats

Single precision

Sign (1 bit)

Exponent Fraction 8 bits 23 bits

Double precision

Exponent Fraction

11 bits 52 bits

32 bits


(90)

(a) +1.101 × 25

Value

0

Sign Exponent Fraction

Bit Pattern

1000 0100 101 0000 0000 0000 0000 0000 (b) 1.01011 × 2−126 1 0000 0001 010 1100 0000 0000 0000 0000

(c) +1.0 × 2127 0 1111 1110 000 0000 0000 0000 0000 0000

(d) +0 0 0000 0000 000 0000 0000 0000 0000 0000

(e) 0 1 0000 0000 000 0000 0000 0000 0000 0000 (f) +∞ 0 1111 1111 000 0000 0000 0000 0000 0000 (g) +2−128 0 0000 0000 010 0000 0000 0000 0000 0000

(h) +NaN 0 1111 1111 011 0111 0000 0000 0000 0000 (i) +2−128 0 011 0111 1111 0000 0000 0000 0000 0000 0000


(91)

IEEE-754 Conversion Example

• Represent -12.62510 in single precision IEEE-754 format. • Step #1: Convert to target base. -12.62510 = -1100.1012 • Step #2: Normalize. -1100.1012 = -1.1001012 × 23

• Step #3: Fill in bit fields. Sign is negative, so sign bit is 1. Expo-nent is in excess 127 (not excess 128!), so expoExpo-nent is repre-sented as the unsigned integer 3 + 127 = 130. Leading 1 of significand is hidden, so final bit pattern is:


(92)

• According to the General Ac-counting Office of the U.S. Gov-ernment, a loss of precision in converting 24-bit integers into 24-bit floating point numbers was responsible for the failure of a Patriot anti-missile battery.

Range Gate Area

Missile Search action locates missile somewhere within beam

Validation action

Missile outside of range gate

Patriot Radar System


(93)

ASCII Character Code

• ASCII is a 7-bit code, com-monly stored in 8-bit

bytes.

• “A” is at 4116. To convert upper case letters to

lower case letters, add 2016. Thus “a” is at 4116 + 2016 = 6116.

• The character “5” at posi-tion 3516 is different than the number 5. To convert character-numbers into number-numbers, sub-tract 3016: 3516 - 3016 = 5.

00 NUL 01 SOH 02 STX 03 ETX 04 EOT 05 ENQ 06 ACK 07 BEL 08 BS 09 HT 0A LF 0B VT 0C FF 0D CR 0E SO 0F SI 10 DLE 11 DC1 12 DC2 13 DC3 14 DC4 15 NAK 16 SYN 17 ETB 18 CAN 19 EM 1A SUB 1B ESC 1C FS 1D GS 1E RS 1F US 20 SP 21 ! 22 " 23 # 24 $ 25 % 26 & 27 ' 28 ( 29 ) 2A * 2B + 2C ´ 2D -2E . 2F / 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 9 3A : 3B ; 3C < 3D = 3E > 3F ? 40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G 48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O 50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W 58 X 59 Y 5A Z 5B [ 5C \ 5D ] 5E ^ 5F _ 60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g 68 h 69 i 6A j 6B k 6C l 6D m 6E n 6F o 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w 78 x 79 y 7A z 7B { 7C | 7D } 7E ~ 7F DEL NUL SOH STX ETX EOT ENQ ACK BEL Null

Start of heading Start of text End of text

End of transmission Enquiry Acknowledge Bell BS HT LF VT Backspace Horizontal tab Line feed Vertical tab FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB Form feed Carriage return Shift out Shift in

Data link escape Device control 1 Device control 2 Device control 3 Device control 4 Negative acknowledge Synchronous idle

End of transmission block

CAN EM SUB ESC FS GS RS US SP DEL Cancel

End of medium Substitute Escape File separator Group separator Record separator Unit separator Space Delete


(94)

Character

Code

• EBCDIC is an 8-bit code.

STX Start of text RS Reader Stop DC1 Device Control 1 BEL Bell DLE Data Link Escape PF Punch Off DC2 Device Control 2 SP Space BS Backspace DS Digit Select DC4 Device Control 4 IL Idle ACK Acknowledge PN Punch On CU1 Customer Use 1 NUL Null SOH Start of Heading SM Set Mode CU2 Customer Use 2

ENQ Enquiry LC Lower Case CU3 Customer Use 3 ESC Escape CC Cursor Control SYN Synchronous Idle

BYP Bypass CR Carriage Return IFS Interchange File Separator CAN Cancel EM End of Medium EOT End of Transmission RES Restore FF Form Feed ETB End of Transmission Block SI Shift In TM Tape Mark NAK Negative Acknowledge SO Shift Out UC Upper Case SMM Start of Manual Message DEL Delete FS Field Separator SOS Start of Significance

SUB Substitute HT Horizontal Tab IGS Interchange Group Separator NL New Line VT Vertical Tab IRS Interchange Record Separator LF Line Feed UC Upper Case IUS Interchange Unit Separator

03 ETX 23 43 63 83 c A3 t C3 C E3 T 04 PF 24 BYP 44 64 84 d A4 u C4 D E4 U 05 HT 25 LF 45 65 85 e A5 v C5 E E5 V 06 LC 26 ETB 46 66 86 f A6 w C6 F E6 W 07 DEL 27 ESC 47 67 87 g A7 x C7 G E7 X 08 28 48 68 88 h A8 y C8 H E8 Y 09 29 49 69 89 i A9 z C9 I E9 Z 0A SMM 2A SM 4A ¢ 6A ‘ 8A AA CA EA 0B VT 2B CU2 4B 6B , 8B AB CB EB 0C FF 2C 4C < 6C % 8C AC CC EC 0D CR 2D ENQ 4D ( 6D _ 8D AD CD ED 0E SO 2E ACK 4E + 6E > 8E AE CE EE 0F SI 2F BEL 4F | 6F ? 8F AF CF EF 10 DLE 30 50 & 70 90 B0 D0 } F0 0 11 DC1 31 51 71 91 j B1 D1 J F1 1 12 DC2 32 SYN 52 72 92 k B2 D2 K F2 2 13 TM 33 53 73 93 l B3 D3 L F3 3 14 RES 34 PN 54 74 94 m B4 D4 M F4 4 15 NL 35 RS 55 75 95 n B5 D5 N F5 5 16 BS 36 UC 56 76 96 o B6 D6 O F6 6 17 IL 37 EOT 57 77 97 p B7 D7 P F7 7 18 CAN 38 58 78 98 q B8 D8 Q F8 8 19 EM 39 59 79 99 r B9 D9 R F9 9 1A CC 3A 5A ! 7A : 9A BA DA FA | 1B CU1 3B CU3 5B $ 7B # 9B BB DB FB 1C IFS 3C DC4 5C . 7C @ 9C BC DC FC 1D IGS 3D NAK 5D ) 7D ' 9D BD DD FD 1E IRS 3E 5E ; 7E = 9E BE DE FE 1F IUS 3F SUB 5F ¬ 7F " 9F BF DF FF


(95)

Unicode

Character

Code

• Unicode is a 16-bit code. 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F NUL STX

ETX Start of textEnd of text ENQ ACK BEL Enquiry Acknowledge Bell BS

HT BackspaceHorizontal tab

SOH Start of heading EOT End of transmission

DLE Data link escape DC1 DC2 DC3 DC4 NAK NBS

Device control 1 Device control 2 Device control 3 Device control 4 Negative acknowledge Non-breaking space EM SUB ESC FS GS RS US

End of medium Substitute Escape File separator Group separator Record separator Unit separator Null CAN Cancel ETX 0023 EOT 0024 ENQ 0025 ACK 0026 BEL 0027 0028 0029 LF 002A VT 002B FF 002C CR 002D SO 002E SI 002F DLE 0030 DC1 0031 DC2 0032 DC3 0033 DC4 0034 NAK 0035 SYN 0036 ETB 0037 CAN 0038 EM 0039 SUB 003A ESC 003B FS 003C GS 003D RS 003E US 003F BS HT 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F # $ % & ' ( ) * + ´ -. / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00AA 00AB 00AC 00AD 00AE 00AF 00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00BA 00BB 00BC 00BD 00BE 00BF Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl 00C3 00C4 00C5 00C6 00C7 00C8 00C9 00CA 00CB 00CC 00CD 00CE 00CF 00D0 00D1 00D2 00D3 00D4 00D5 00D6 00D7 00D8 00D9 00DA 00DB 00DC 00DD 00DE 00DF £ ¤ ¥ § ¨ © a « ¬ – ® – ˚ ± 2 3 ´ µ ¶ ˙ 1 o » 1/4 1/2 3/4 ¿ Ç  00E3 00E4 00E5 00E6 00E7 00E8 00E9 00EA 00EB 00EC 00ED 00EE 00EF 00F0 00F1 00F2 00F3 00F4 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD 00FE 00FF Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Y y D ´ ´ ã ä å æ ç è é ê ë ì í î ï ñ ò ó ô õ ö ÷ ø ù ú û ü ÿ ¶ P P pp

CR Carriage return SO Shift out SI Shift in FF Form feed SP

DEL SpaceDelete Ctrl Control


(96)

Principles of Computer Architecture

Miles Murdocca and Vincent Heuring


(97)

Chapter Contents

3.1 Overview

3.2 Fixed Point Addition and Subtraction 3.3 Fixed Point Multiplication and Division 3.4 Floating Point Arithmetic

3.5 High Performance Arithmetic


(98)

• Using number representations from Chapter 2, we will explore four basic arithmetic operations: addition, subtraction, multiplication, division.

• Significant issues include: fixed point vs. floating point arithmetic, overflow and underflow, handling of signed numbers, and perfor-mance.

• We look first at fixed point arithmetic, and then at floating point arithmetic.


(99)

Number Circle for 3-Bit Two’s

Complement Numbers

• Numbers can be added or subtracted by traversing the number

circle clockwise for addition and counterclockwise for subtraction. • Overflow occurs when a transition is made from +3 to -4 while

pro-ceeding around the number circle when adding, or from -4 to +3 while subtracting.

100

010 110

000 111

101 011

001 0

1

2

3 -4

-3 -2

-1

Adding numbers Subtracting numbers


(100)

• Overflow occurs when adding two positive numbers produces a negative result, or when adding two negative numbers produces a positive result. Adding operands of unlike signs never produces an overflow.

• Notice that discarding the carry out of the most significant bit dur-ing two’s complement addition is a normal occurrence, and does not by itself indicate overflow.

• As an example of overflow, consider adding (80 + 80 = 160)10, which produces a result of -9610 in an 8-bit two’s complement format:

01010000 = 80 + 01010000 = 80


(1)

LED, 349

levels of machines, 7

lexical analysis, in compilation, 160 LFU, 270

light emitting diode, 349 lightpen, 349

link register, 119, 139 linkage editor, 177 linker, 177 linking, 159

loader, 180 little-endian, 108 LLC, 371 load module, 177 loader, 177, 180 loading, 159 load-store, 116 load-through, 275

local area network, LAN, 361, 368 locality principle, 266

location counter, 128, 170 logic gate, 11, 465 logical link control, 371 logical record, tape, 342 LRU, 270

LSB, least significant bit, 25 LSI, 482

LUT , lookup table

in ALU design, 205, 265

M

MAC, 371 machine

code, 9

language, 9, 105 Macintosh, 113

macros, assembly language, 159, 169, 183–185 magnetic disks, 332

zone-bit recording, 335 majority function, 240, 473 MAL, 214

Manchester encoding, 334

mantissa, of floating point number, 39 map-entered variable, 532

mapping specification, in compilers, 161 master control block, 339

master-slave, 494 Mauchley, John, 3

maxterm, 476 MCB, 339 media

access control, 371 storage, 332

medium scale integration, 482 memory

address, defined, 6

content-addressable, 271, 293 flash, 265

hierarchy, 255–256 location, 107

management unit, 180 map, 109

mapped I/O, 109 in ARC, 115 mapped video, 353 unit, defined, 5 Merced, 403, 428–432 methods, Java, 146 MFM, 334

microarchitecture, 199 micro-assembly language, 214 microcontroller, 212

defined, 10 microinstruction, 211 microprocessors, 11 microprogram, 10

microprogrammed control units, 200 microstrip technology, 298

MIMD, 435 minterm, 475 minuend, 69 MISD, 436 MMU, 180 MMX, 185–193

instructions, 185

mnemonic, instruction, 9, 116 modem, 361

modified frequency modulation, 334 modular number system, 67

modulation, in telecommunications, 362 moduli, 90

monitor, video, 12, 352

motherboard, 12, 13, 14, 312, 453 Motorola

68000, see 68000, Motorola AltiVec, 185–193


(2)

PowerPC, 187, 425–428 mouse, 348

moving head, 333

MSB, most significant bit, 25 MSI, 482

multicast, 389 multilevel cache, 279 multimode fiber, 366 multiple instruction stream

multiple data stream, 435 single data stream, 436 multiplexer, 482 multi-valued logic, 462 MUX, 482

N

nanostore, 227

narrowband-ISDN, 394 Neat Little LRU Algorithm, 280 negative logic, 477

network-to-network interface, in AT M packets, 397 Newton’s iteration, 88

nibble, 107 Nintendo, 453 NISDN, 394 NNI, 397

non-maskable interrupt, NMI, 324 non-return-to-zero, 334

non-volatile memory, 332 NRZ, 334

NT SC video standard, 354 number

conversion

between bases, 25 multiplication method, 27 remainder method, 26 representation

binary coded decimal, 37 excess, 36

representations

one’s complement, 34 signed magnitude, 33 two’s complement, 34 nybble, 107

O

object module, 177 octet, 107

odd parity, 377

offline routing algorithm, 438 one theorem, 471

one’s complement, 34

one-address instructions, 132, 133 one-hot encoding, 230

Open System Interconnection, 369 optical

disks, 343 mouse, 349

optimal replacement policy, 270 OSI, 369

output unit, computer, 5 overflow, 22, 68, 122

overlapping register windows, 403, 415, 416 overlays, 281

P

packet, 369 page

fault, 283 frames, 283 table, 284 paging, 282

PAL video standard, 354 parallel

processing, 403, 432 time, 433

parity bit, 376 parser, 160

partition graph, 282 partitions, in the CM-5, 451 Pascal, Blaise, 1

Pascaline, 1 payload

in data packets, 369

type identifier, in AT M packets, 397 PC, 119

PCI, 320 PCM, 363 PDP-4, 151 PDP-8, 151 PE, 432

Pentium, Intel, 187 II, 14

Peripheral Component Interconnect, 320 peripheral interrupt controller, PIC, 324 phase modulation, 363


(3)

picture element, 353 pipelining, 403, 408

in SPARC, 129

pits, in compact disks, 343 pixel, 353

PLA, 487

platter, magnetic disk, 333 ply, 548

PM, 363 polling, 321 polynomial

code, 383 method, 25 port, 389 POS, 475, 523 positive logic, 477 Postscript, 352

PowerPC, 113, 187, 425–428 precision

in fixed point numbers, 23 in floating point numbers, 38 PRI, 395

Primary Rate Interface, 395 prime implicants, 527 principle of duality, 471 priority encoder, 487 procedure, 136

processing elements, 432 processor state register, 119 product terms, 474 product-of-sums, 475, 523 program counter, 111, 119 programmable

logic array, 487 sound generator, 454 programmed I/O, 321 PROM, 265

burner, 265, 455

propagate, in carry lookahead, 82 protection, 286

protocol stack, 369

pseudo-operations, pseudo-ops, 127–128 PSG, programmable sound generator, 454 PSR, 119

PT I, in AT M packets, 397 puck, 347

pulse code modulation, 363

Q

quadword, 122

Quine-McCluskey method, 534 QWERT Y, 346

R

radio frequency, 298 radix

conversion, see number conversion definition, 24

RAM, 257 Rambus, Inc., 298 random

access memory, RAM, 257 replacement policy, 270 range

in fixed point numbers, 22 in floating point numbers, 38 raster, 352

read-only memory, ROM, 11, 263 real estate, circuit area, 406 rearrangeably nonblocking, 440 re-compilation, 113

record, tape, 341 reduced

instruction set computer, 115 table of choice, 538

register, 510

assignment problem, 421 based addressing, 135, 136 based indexed addressing, 135, 136 file, 111, 416

indexed addressing, 135, 136 indirect addressing, 135, 136 transfer language, 229 window, 403

relocatability of programs, 176 relocating loader, 180

relocation, 179 dictionary, 176 repeater, 374 residue arithmetic, 90 resolver, 391

restoring division, 77 ring

in parallel processing, 433 network topology, 372


(4)

ringing, 432

ripple-borrow subtractor, 69, 70 ripple-carry adder, 69

ROM, 11, 263 rotational latency, 336 router, 371, 393

row address strobe, RAS, 261 RT L, 229

S

S/360, 151

saturation arithmetic, 190

Scalable Processor Architecture, 114 SCP, 396

SCSI, 320, 337

SEC, single error correcting code, 380 SECDED encoding, 382

seek time, 336 Sega, 453

Genesis, 453, 455 segment, 286 segmentation, 286 self-routing network, 393 semantic

analysis, in compilation, 160 gap, 404

sequential logic, 461 set associative mapping, 273 set-direct mapping, 273 set-reset flip-flop, 494 shared bus, 267

shared-memory multiprocessor, 280 sign extension, in ARC, 121 signaling control point, 396 signed magnitude, 33

significand, of floating point number, 39 silicon compilation, 229

SIMD, 435 processors, 186 single

mode fiber, 367 single instruction stream

multiple data stream, 435 single data stream, 434 SISD, 434

slots, 268

Small Computer Systems Interface, 320, 337 small scale integration, 482

SMP, 319 socket, 388 Sony, 453 SOP, 474, 523

source code compatibility, 8 SPARC, 114

pipelining, 129 spatial locality, 266 spec sheet, 479

speculative loading, 431 speedup, 406, 433 spindle, 333 split cache, 276 SRAM, 257 SSI, 482 stack

frame, 136, 139 pointer, 119, 138 star topology, 372 static RAM, 257 Stega, 453, 454 ST M, 395

stored program computer, 4 strictly nonblocking, 436 stylus, 347

subnetwork, 374 subroutine linkage, 136 subtraction, binary, 69 subtrahend, 69

sum-of-products, 474, 523 superscalar execution, 403 supervisor mode, 227 surface, magnetic disk, 333 Swift, Jonathan, 108 switch, 393

symbol table, 171, 172 symmetric multiprocessor, 319 synchronous

bus, 313

transfer mode, 395 syncing, magnetic disk, 340

syntactic analysis, in compilation, 160 synthesizer, 455

system bus, 6, 106 model, 5 systolic array, 436


(5)

T

table of choice, 537 tabular reduction, 523 tag field, 268

tagged word, SPARC data format, 122 T DM, 395

temporal locality, 266 T exas Instruments, 454 three-address instructions, 132 threshold, for logic gate, 468 throughput, 433, 434 T I, T exas Instruments, 454 time division multiplexing, 395 T LB, 290

toggle, 554

touchscreen, 143, 349 trace, wire, 298, 313 trackball, 349 transfer time, 336 transistor, 11, 468 translation

lookaside buffer, 290 process, compilation, 114 transmission line, 298 trap, 11, 225–227, 324 tree decoder, 261, 291 truth table, 463 T uring, Alan, 3

two’s complement numbers, 34 two-address instructions, 132, 133 T YAN Computer, 14

U

UNI, in AT M packets, 397 Unicode, 55

UNIVAC, 151

Universal Serial Bus, 321 upward compatibility, 7 USB, 321

user-to-network interface, 397

V

valid bit, 269 VAX, 151

VCI, in AT M packets, 397 vector processors, 186 Venn diagram, 525

very high speed integrated circuit, VHSIC, 229 very large scale integration, 295, 482

very long instruction word, VLIW, 403 VHDL, 229, 237

VHSIC hardware description language, 229 virtual

channel identifier, 397 machine, 113

memory, 281

path identifier, in AT M packets, 397 VLIW, 428

VLIW, very long instruction word, 403, 428 VLSI, 295, 482

von Neumann model, 4, 453 VPI, in AT M packets, 397

W

weighted position code, 24 well-known ports, 389 wide area network, WAN, 361 Wilkes, Maurice, 4

Winchester disk, 337

window, register, in SPARC, 416 word, 107

working set, 285

write once read many, WORM, 344 write-allocate policy, cache, 276 write-back policy, cache, 276 write-no-allocate policy, cache, 276 write-through policy, cache, 276

X

Xeon, 319

Y

Yamaha, 454, 456

Z

zero theorem, 471 Zilog Z-80, 151, 454, 455 zone

disk drive, 335 Internet, 391


(6)