Title: Computer Organization
1Computer Organization
 It describes the function and design of the
various units of digital computers that store and
process information.  It also deals with the units of computer that
receive information from external sources and
send computed results to external destinations
2Computer Organization Computer Architecture
 Computer Organization and Computer
Architecture are the terms used in describing
digital computer systems.  Computer architecture deals with the instruction
sets, address fields, operation codes, addressing
modes, effective utilization of I/O mechanisms
and such other aspects which would interest the
users of computers.  Computer organization include hardware details
such as generation of control signals, interface
between the computer and peripherals, memory
technologies used, modular design, flow of data,
control mechanisms and so on.  In brief, a programmer is generally more
concerned about the architectural features and a
designer of computer systems is more concerned
about the organizational aspects.
3Computer types
 Digital computer
 It is a fast electronic calculating machine that
accepts digitized input information, processes it
according to a list of internally stored
instructions, and produces the resulting output
information.  (1) Personal computer
 It is the most common form of desktop computers.
 Desk top computers have processing and storage
units, visual display and audio output units, and
a keyboard that can all be located easily on a
home or office desk. The storage media include
hard disks, CDROMs and diskettes.  Portable notebook computers are a compact version
of the personal computers with all of these
components packaged into single unit the size of
a thin briefcase
4Computer types (contd.,)
 (2) Workstations
 Work stations with high resolution graphics
input/output capability, although still retaining
the dimensions of desktop computers, have
significantly more computational power than
personal computers.  Workstations are often used in engineering
applications, especially for interactive design
works.  (3) Enterprise systems or mainframes
 These are used for business data processing in
medium to large corporations that require much
more computing power and storage capacity than
workstations can provide.
5Computer types (contd.,)
 4) Servers
 Servers contain sizable database storage units
and are capable of handling large volumes of
requests to access the data.  The Internet and its associated servers have
become a dominant world wide source of all types
of information.  5) Super Computers
 Super Computers are used for the large scale
numerical calculations required in applications
such as weather forecasting, aircraft design and
simulation.
6Functional units
 A computer consists of five functionally
independent main parts  Input unit
 Memory unit
 Arithmetic and logic unit (ALU)
 Output unit
 Control unit
 The structure of a digital computer is shown
below
7(No Transcript)
8Operation of a computer
 The computer accepts information in the form of
programs and data through an input unit and
stores it in the memory.  Information stored in the memory is fetched,
under program control, into an arithmetic and
logic unit, where it is processed.  Processed information leaves through an output.
 All activities inside the machine are directed by
the control unit.
9Input unit
 Computers accept coded information through input
units.  The most well known input device is key board.
 Whenever a key is pressed, the corresponding
letter or digit is automatically translated into
its corresponding binary code and transmitted
over a cable to either the memory or the
processor.
10Memory unit
 The function of the memory is to store programs
and data.  There are two classes of storage, called primary
and secondary.  Primary storage is a fast memory that operates at
electronic speeds.  Programs must stay in memory while they
are being executed.  The memory contains a large number of
semiconductor storage cells, each capable of
storing one bit of information.  Random access memory Memory in which any
location can be reached in a short and fixed
amount of time after specifying its address is
called random access memory (RAM).
11Memory unit (Contd.,)
 The time required to access one word is called
the memory access time.  Cache memory The small, fast, Ram units are
called caches.  They are tightly coupled with the
processor and are often contained on the same
integrated circuit chip to achieve high
performance.  Main memory The largest and slowest unit is
referred to as the main memory.
12Memory unit (Contd.,)
 Secondary storage
 Although primary storage is essential, it tends
to be expensive.  Thus additional, cheaper, secondary storage is
used when large amounts of data and many programs
have to be stored, particularly for information
that is accessed infrequently.  A wide selection of secondary storage devices is
available, including magnetic disks,tapes and
optical disks (CDROMs)
13Arithmetic and logic unit (ALU)
 Most computer operations are executed in in the
arithmetic and logic unit (ALU) of the processor.  For example, Suppose two numbers are to be added.
 They are brought into the processor, and the
actual addition is carried out by the ALU.  The sum may then be stored in the memory or
retained in the processor for immediate use.  When operands are brought into the processor,
they are stored in highspeed storage elements
called registers.
14Output unit
 The output unit is the counterpart of input unit.
 Its function is to send processed results to the
outside world.  The most familiar example of such a device is a
printer.  Some units, such as graphic displays, provide an
input function and an output function. The dual
role of such units is the reason for using the
single name I/O unit in many cases.
15Control unit
 The memory, arithmetic and logic, and I/O units
store and process information and perform input
and output operations.  The operations of these units are coordinated by
control unit.  The control unit is effectively the nerve center
that sends control signals to other units and
senses their states.
16Basic operational concepts
 To perform a given task, an appropriate program
consisting of a list of instructions is stored in
the memory.  Individual instructions are brought from the
memory into the processor, which execute the
specified operations.  Data to be used as operands are also stored
in the memory
17Basic operational concepts (Contd.,)
 Consider, the two instruction sequence
 Load LOCA, R1
 Add R1, R0
 The first of these instructions transfers the
contents of memory location LOCA into processor
register R1, and second instruction adds the
contents of register R1 as well as those of R0
and places the sum into R0.  Note that this destroys the former contents of R1
as well as R0, where as the original contents of
memory location LOCA are preserved.
18 Connections between the processor and the
memory
Memory
Processor
19Instruction register (IR)
 The instruction register holds the instruction
that is currently being executed.  Its output is available to the control circuits,
which generate the timing signals that control
the various processing elements involved in
executing the instruction
20Program counter (PC)
 The program counter is another specialized
register.  It keeps track of the execution of a program.
 It contains the memory address of the next
instruction to be fetched and executed.  During the execution of an instruction, the
contents of of the PC are updated to correspond
to the address of the next instruction to be
executed.  It is customary to say that PC points to the next
instruction that is to be fetched from the
memory.
21Memory address register (MAR) Memory data
register (MDR)
 These two registers facilitate communication with
the memory.  The MAR holds the address of the location to be
accessed.  The MDR contains the data to be written into or
read out of the addressed location.
22Operating steps for Program execution
 Programs are stored in the memory through the
input unit.  Execution of the program starts when the PC is
set to point to the first instruction of the
program.  The contents of the PC are transferred to the MAR
and a Read control signal is sent to the memory.  After the time required to access the memory
elapses, the addressed word (in this case, the
first instruction of the program) is read out of
the memory and loaded into the MDR.
23Operating steps for Program execution (Contd.,)
 Next, the contents of the MDR are transferred to
the IR .  At this point, the instruction is ready to be
decoded and executed.  If the instruction involves an operation to be
performed by the ALU, it is necessary to obtain
the required operands.  If an operand resides in memory ( it could also
be in a generalpurpose register in the
processor), it has to be fetched by sending its
address to the MAR and initiating a Read cycle. 
24Operating steps for Program execution (Contd.,)
 When the operand has been read from the memory
into the MDR, it is is transferred from the MDR
to the ALU.  After one or more operands are fetched in this
way, the ALU can perform the desired operation.  If the result of the operation is to be stored in
the memory, then the result is sent to the MDR.  The address of the location where the result is
to be stored is sent to the MAR, and a write
cycle is initiated.
25Operating steps for Program execution (Contd.,)
 At some point during the execution of the current
instruction, the contents of the PC are
incremented so that the PC points to the next
instruction to be executed.  Thus, as soon as the execution of the current
instruction is completed, a new instruction fetch
may be started.  In addition to transferring data between the
memory and the processor, the computer accepts
data from input devices and sends data to output
devices. Thus, some machine instructions with the
ability to handle I/O transfers are provided.
26Interrupt service routine
 Normal execution of a programs may be preempted
if some device requires urgent servicing.  For example, a monitoring device in a
computercontrolled industrial process may detect
a dangerous condition.  In order to deal with the situation
immediately, the normal execution of the current
program must be interrupted.  To do this, the device raises an interrupt
signal.  An interrupt is a request from an I/O device for
service by the processor.  The processor provides the requested
service by executing an appropriate
interruptservice routine. 
27Interrupt service routine (contd.,)
 Because such diversions may alter the internal
state of the processor, its state must be saved
in the memory locations before servicing the
interrupt.  Normally, the contents of the PC, the general
registers, and some control information are
stored in memory.  When the interrupt service routine is completed,
the state of the processor is restored so that
the interrupted program may continue.
28Bus structures
 A group of lines(wires) that serves as a
connecting path for several devices of a computer
is called a bus.  In addition to the lines that carry the data, the
bus must have lines for address and control
purposes.  The simplest way to interconnect functional units
is to use a single bus, as shown below 
processor
input
output
memory
29Bus structures (contd.,)
 All units are connected to this bus. Because the
bus can be used for only one transfer at a time,
only two units can actively use the bus at any
given time.  Bus control lines are used to arbitrate multiple
requests for use of the bus.  The main virtue of the singlebus structure is
its low cost and its flexibility for attaching
peripheral devices.  Systems that contain multiple buses achieve more
concurrency in operations by allowing two or more
transfers to be carried out at the same time.This
leads to better performance but at an increased
cost.
30Explain how timing differences are smoothed out
among processors, memories and I/O devices.
 The devices connected to a bus vary widely in
their speed of operation.  Electro mechanical devices such as key
board and printers are relatively slow.  Others like magnetic or optical disks, are
considerably faster.  Memory and processor units operate at
electronic speeds.  A common approach to smooth out the timing
differences is to include buffer registers with
the devices to hold the information during
transfers.  They prevent a high speed processor from being
locked to a slow I/O device during a sequence of
data transfers.
31Contd.,
 This allows the processor to switch rapidly from
one device to another, interweaving its process
activity with data transfers involving several
I/O devices.  Thus, buffer registers smooth out timing
differences among processors, memories and I/O
devices.
32Software
 Explain the role of system software in a
computer.  System software is responsible for the
coordination of all activities in a computing
system.  System software is a collection of programs that
are executed as needed to perform functions such
as  1) Receiving and interpreting user
commands.  2) Entering and editing application programs
and storing them as files in secondary storage
devices.  3) Managing the storage and retrieval of
files in secondary storage devices. 
33Contd.,
 4) Running standard application programs such
as word processors, spread sheets, or games, with
data supplied by the user.  5) Controlling I/O units to receive input
information and produce output results.  6) Translating programs from high level
language to low level language.  7) Linking and running userwritten application
programs with existing standard library routines,
such as numerical computation packages.
34Explain various components of system software.
 Compiler A system software program which
translates the highlevel language program into a
suitable machine language program.  Text editor Another important system program
that all programmers use is a text editor.  It is used for entering and editing application
programs.  The user of this program interactively execute
commands that allow statements of a source
program entered at a keyboard to be accumulated
in a file.
35Contd.,
 Operating system (OS)
 It is a key system software component.
 This is a large program, or actually a collection
of routines , that is used to control the sharing
of and interaction among various computer units
as they execute application programs.  The OS routines perform the tasks required to
assign computer resources to individual
application programs.  These tasks include assigning memory to program
and data files, moving data between memory and
disk units, and handling I/O operations.
36Performance
 Discuss various parameters for improving the
performance of a computer.  The most important measure of the performance of
a computer is how quickly it can execute a
programs.  The speed with which a computer executes programs
is affected by the design of its hardware and its
machine language instructions.  Elapsed time The total time required to execute
a program .  This elapsed time is a measure of the performance
of the entire computer system.  It is affected by the speed of the processor, the
disk and the printer.
37Contd.,
 Processor time
 Here we have to consider only those periods of
the elapsed time, during which the processor is
active.  The sum of these periods is called processor
time.  The processor time depends on the hardware
involved in the execution of individual machine
instructions.  Cache memory
 The processor and a relatively small cache memory
can be fabricated on a single IC chip.  The internal speed of performing the basic steps
of instruction processing on such chips is very
high and considerably faster than the speed at
which instructions and data can be fetched from
the main memory.
38Contd.,
 A program will be executed faster if the movement
of instructions and data between the main memory
and processor is minimized, which is achieved by
using the cache.
Processor
Main memory
Cache memory
Bus
39Processor clock
 Processor circuits are controlled by a timing
signal called a clock .  The clock defines regular time intervals, called
clock cycles.  To execute a machine instruction, the processor
divides the action to be performed into a
sequence of basic steps, such that each step can
be completed in one clock cycle.  The length P of one clock cycle is an important
parameter that affects processor performance.  Its inverse is the clock rate, R 1/P , which is
measured in cycles per second .  If the clock rate is 500 million cycles per
second, then the corresponding clock period is 2
nanoseconds.
40Basic performance equation
 Let T be the processor time required to execute
a program that has been prepared in some high
level language.  Assume that the complete execution of the program
requires the execution of N machine language
instructions.  Suppose that the average number of basic steps
needed to execute one machine instruction is S.  If the clock rate is R cycles per second, the
program execution time is given by  T N . S
 R
 This is often referred to as the basic
performance equation.
41Pipelining and Super scalar operation
 A substantial improvement in performance can be
achieved by overlapping the execution of
successive instructions, using a technique called
pipelining .  Consider the instruction
 Add R1, R2, R3
 Which adds the contents of registers R1 and R2,
and places the sum into R3.  The contents of R1 and R2 are first transferred
to the inputs of the ALU.  After the add operation is performed, the sum is
transferred to R3.  Processor can read the next instruction from the
memory while the addition operation is being
performed.
42Pipelining (contd.,)
 Then, if that instruction also uses the ALU, its
operands can be transferred to the ALU inputs at
the same time that the result of Add instruction
is being transferred to R3.  Thus, pipelining increases the rate of executing
instructions significantly and cause the
effective value of S to approach 1.
43Super scalar operation
 A higher degree of concurrency can be achieved if
multiple instruction pipelines are implemented in
the processor.  This means that multiple function units are used,
creating parallel paths through which different
instructions can be executed in parallel.  With such an arrangement, it becomes possible to
start the execution of several instructions in
every clock cycle.  This mode of execution is called Super scalar
operation
44Clock rate
 There are two possibilities for increasing the
clock rate, R.  First, improving the IC technology makes logic
circuit faster, which reduces the the needed to
complete a basic step. This allows the clock
period, P, to be reduced and the clock rate, R,
to be increased.  Second, reducing the amount of processing done in
one basic step also makes it possible to reduce
the clock period , P.
45Instruction set CISC and RISC
 The terms CISC and RISC refer to design
principles and techniques.  RISC Reduced instruction set computers
 Simple instructions require a small number of
basic steps to execute.  For a processor that has only simple
instructions, a large number of instructions may
be needed to perform a given programming task.  This could lead to a large value of N and a
small value for S.  It is much easier to implement efficient
pipelining in processors with simple instruction
sets.
46Instruction set CISC and RISC (contd.,)
 CISC Complex instruction set computers.
 Complex instructions involve a large number of
steps.  If individual instructions perform more complex
operations, fewer instructions will be needed,
leading to a lower value of N and a larger value
of S.  Complex instructions combined with pipelining
would achieve good performance.
47Compiler
 A compiler translates a highlevel language
program into a sequence of machine instructions  To reduce N, we need to have a suitable machine
instruction set and a compiler that makes good
use of it.  An optimizing compiler takes advantage of various
features of the target processor to reduce the
product N.S .  The compiler may rearrange program instructions
to achieve better performance.
48Performance measurement
 SPEC rating.
 A non profit organization called System
Performance Evaluation Corporation (SPEC)
selects and publishes representative application
programs for different application domains.  The SPEC rating is computed as follows
 SPEC rating Running time on the
reference computer  Running time on
the computer under test  Thus SPEC rating of 50 means that the computer
under test is 50 times faster than the reference
computer for this particular benchmark.
49Contd.,
 The test is repeated for all the programs in the
SPEC suite, and the geometric mean of the results
is computed.  Let SPECi be the rating for program i in the
suite.  The overall SPEC rating for the computer is
given by  SPEC rating ? ( SPECi )
 where n is the number of programs in the
suite.
n
i1
50Multiprocessors
 Large computer systems may contain a number of
processor units, in which case they are called
multiprocessor systems.  These systems either execute a number of
different application tasks in parallel, or they
execute subtasks of a single large task in
parallel.  All processors usually have access to all of the
memory in such systems, and the term
sharedmemory multiprocessor systems is often
used to make this clear.
51Multiprocessors (contd.,)
 The high performance of these systems comes with
much increased complexity and cost.  In addition to multiple processors and
memory units, cost is increased because of the
need for more complex interconnection networks.
52Multicomputers
 In contrast to multiprocessor systems, it is
possible to use an interconnected group of
complete computers to achieve high total
computational power.  The computers normally have access only to their
own memory units.  When the tasks they are executing need to
communicate data, they do so by exchanging
messages over a communication network.  This property distinguishes them from
sharedmemory multiprocessors, leading to the
name messagepassing multi computers.
53(No Transcript)
54Data Representation
 31 Data Types
 Binary information is stored in memory or
processor registers  Registers contain either data or control
information  Data are numbers and other binarycoded
information  Control information is a bit or a group of bits
used to specify the sequence of command signals  Data types found in the registers of digital
computers  Numbers used in arithmetic computations
 Letters of the alphabet used in data processing
 Other discrete symbols used for specific purpose
 ?? Number ? Letter ?? ??, ?) gray code, error
detection code,  Number Systems
 Base or Radix r system uses distinct symbols
for r digits  Most common number system Decimal, Binary,
Octal, Hexadecimal  Positionalvalue(weight) System r2 r 1r0.r1
r2 r3  Multiply each digit by an integer power of r and
then form he sum of all weighted digits
55 Decimal System/Base10 System
 Composed of 10 symbols or numerals(0, 1, 2, 3, 4,
5, 6, 7, 8, 9, 0)  Binary System/Base2 System
 Composed of 10 symbols or numerals(0, 1)
 Bit Binary digit
 Hexadecimal System/Base16 System Tab. 32
 Composed of 16 symbols or numerals(0, 1, 2, 3, 4,
5, 6, 7, 8, 9, A, B, C, D, E, F)  BinarytoDecimal Conversions
 1011.1012 (1 x 23) (0 x
22) (1 x 21) (1 x 2o) (1 x 21) (0 x 22)
(1 x 23)  810 0 210 110
0.510 0 0.12510  11.62510
 DecimaltoBinary Conversions
 Repeated division(See p. 69, Fig. 31)
 37 / 2 18 remainder 1 (binary number
will end with 1) LSB  18 / 2 9
remainder 0  9 / 2 4 remainder 1
 4 / 2 2
remainder 0  2 / 2 1
remainder 0  1 / 2 0
remainder 1 (binary number will start with 1)
MSB
??? ?? 0.375 x 2 0.750 integer
0 MSB 0.750 x 2 1.500 integer 1
. 0.500 x 2 1.000 integer 1 LSB
Read the result downward .37510 .0112
56 HextoDecimal Conversion
 2AF16 (2 x 162) (10 x 161)
(15 x 16o)  51210 16010
1510  68710
 DecimaltoHex Conversion
 42310 / 16 26 remainder 7
(Hex number will end with 7) LSB  2610 / 16 1 remainder
10  110 / 16 0 remainder
1 (Hex number will start with 1) MSB  Read the result upward to give an answer
of 42310 1A716  HextoBinary Conversion
 9F216 9 F
2  1001 1111 0010
 1001111100102
Table 32 Hex Binary Decimal 0 0000
0 1 0001 1 2 0010 2 3 0011 3 4
0100 4 5 0101 5 6 0110
6 7 0111 7 8 1000 8 9 1001
9 A 1010 10 B 1011 11 C 1100
12 D 1101 13 E 1110 14 F 1111 15
 BinarytoHex Conversion
 1 1 1 0 1 0 0 1 1 02 0 0 1 1 1 0 1 0
0 1 1 0  3
A 6  3A616
57 BinaryCodedDecimal Code
 Each digit of a decimal number is represented by
its binary equivalent  8 7 4
(Decimal)  1000 0111 0100
(BCD)  Only the four bit binary numbers from 0000
through 1001 are used  Comparison of BCD and Binary
 13710 100010012
(Binary)  require only 8 bits  13710 0001 0011
0111BCD (BCD)  require 12 bits  Alphanumeric Representation
 Alphanumeric character set(Tab. 34)
 10 decimal digits, 26 letters, special
character(, , ,.)  A complete list of ASCII p. 384, Tab. 111
 ASCII(American Standard Code for Information
Interchange)  Standard alphanumeric binary code uses seven bits
to code 128 characters
58 32 Complements
 Complements are used in digital computers for
simplifying the subtraction operation and for
logical manipulation  There are two types of complements for base r
system  1) rs complement 2) (r1)s
complement  Binary number 2s or 1s complement
 Decimal number 10s or 9s complement
 (r1)s Complement
 (r1)s Complement of N (rn1)N
 9s complement of N546700
 (1061)546700 (10000001)546700
999999546700  453299
 1s complement of N101101
 (261)101101 (10000001)101101 111111101101
 010010
 rs Complement
 rs Complement of N rnN
 10s complement of 2389 76101 7611
 2s complement of 1101100 00100111 0010100
N given number r base n digit number
546700(N) 453299(9s com) 999999
101101(N) 010010(1s com) 111111
rs Complement (r1)s Complement 1
(rn1)N1 rnN
59 Subtraction of Unsigned Numbers
 1) M (rnN)
 2) M ? N Discard end carry, Result MN
 3) M ? N No end carry, Result  rs
complement of (NM)  Decimal Example)
 72532(M)  13250(N) 59282
 72532
 86750 (10s complement of 13250)
 1 59282
 Result 59282
 Binary Example)
 1010100(X)  1000011(Y) 0010001
 1010100
 0111101 (2s complement of 1000011)
 1 0010001
 Result 0010001
(MN), N?0
 13250(M)  72532(N) 59282
 13250
 27468 (10s complement of 72532)
 0 40718
 Result (10s complement of 40718)
 (592811) 59282
M ? N
M ? N
Discard End Cary
No End Carry
 1000011(X)  1010100(Y) 0010001
 1000011
 0101100 (2s complement of 1010100)
 0 1101111
 Result (2s complement of 1101111)
 (00100001) 0010001
X ? Y
X ? Y
60Numeric Data 1) Fixed Point 2) Floating Point
32.25 1) 0.25, 2) 32.0, 3) 32.25
 33 FixedPoint Representation
 Computers must represent everything with 1s and
0s, including the sign of a number and
fixed/floating point number  Binary/Decimal Point
 The position of the binary/decimal point is
needed to represent fractions, integers, or mixed
integerfraction number  Two ways of specifying the position of the binary
point in a register  1) Fixed Point the binary point is always fixed
in one position  A binary point in the extreme left of the
register(Fraction 0.xxxxx)  A binary point in the extreme right of the
register(Integer xxxxx.0)  The binary point is not actually present, but the
number stored in the register is treated as a
fraction or as an integer  2) Floating Point the second register is used
to designate the position of the  binary point in
the first register(refer to 34)  Integer Representation
 Signedmagnitude representation
 Signed1s complement representation
 Signed2s complement representation
MSB for Sign 0 is plus 1 is minus

14 14 0 0001110
1 0001110 0 0001110 1 1110001
0 0001110 1 1110010
Most Common
61(12) (13) 25 (12) (13) 25
(25) (37) 37  25 12
 Arithmetic Addition
 Addition Rules of Ordinary Arithmetic
 The signs are same sign common sign, result
add  The signs are different sign larger sign,
result largersmaller  Addition Rules of the signed 2s complement
 Add the two numbers including their sign bits
 Discard any carry out of the sign bit position
 Arithmetic Subtraction
 Subtraction is changed to an Addition
 ( A)  ( B) ( A) ( B)
 ( A)  (  B) ( A) ( B)
 Overflow
 Two numbers of n digits each are added and the
sum occupies n1 digits  n 1 bit cannot be accommodated in a register
with a standard length of n bits(many computer
detect the occurrence of an overflow, and a
corresponding F/F is set)
Addition Exam) 6 00000110  6
11111010 13 00001101 13 00001101
19 00010011 7 00000111 6
00000110  6 11111010  13
11110011  13 11110011  7
11111001  19 11101101
Subtraction Exam) ( 6)  (  13)
7 11111010  11110011 11111010 2s comp of
11110011
11111010 00001101
1 00000111 7
Discard End Carry
62 Overflow
 An overflow may occur if the two numbers added
are both positive or both negative  When two unsigned numbers are added
 an overflow is detected from the end carry out of
the MSB position  When two signed numbers are added
 the MSB always represents the sign
  the sign bit is treated as part of the
number   the end carry does not indicate an
overflow
Overflow Exam) out in
out in carries 0 1
carries 1 0 70 0 1000110  70
1 0111010 80 0 1010000  80
1 0110000 150 1 0010110  150 0
1101010
 Overflow Detection
 Detected by observing the carry into the sign bit
position and the carry out of the sign bit
position  If these two carries are not equal, an overflow
 condition is produced(ExclusiveOR gate 1)
 Decimal FixedPoint Representation
 A 4 bit decimal code requires four F/Fs
 for each decimal digit
 The representation of 4385 in BCD requires 16
F/Fs (0100 0011 1000 0101)  The representation in decimal is wasting a
considerable amount of storage space and the
circuits required to perform decimal arithmetic
are more complex
Decimal Exam) (375) (240) 375 (10s comp
of 240) 375 760 0 375 (0000 0011 0111
0101) 9 760 (1001 0111 0110 0000) 0 135
(0000 0001 0011 0101)
Advantage Computer I/O data are generated by
people who use the decimal system
63 Decimal 6132.789 Fraction
Exponent 0.6132789 4
 34 FloatingPoint Representation
 The floatingpoint representation of a number has
two parts  1) Mantissa signed, fixedpoint number
 2) Exponent position of binary(decimal) point
 Scientific notation m x re (0.6132789 x 104)
 m mantissa, r radix, e exponent
 Example m x 2e (.1001110)2 x 24
 Normalization
 Most significant digit of mantissa is nonzero
 35 Other Binary Codes
 Gray Code
 Gray code changes by only one bit (Tab. 35
4bit Gray Code )  ??
 The data must be converted into digital form
before they can be used by a digital
computer(Analog to Digital Converter)  The analog data are represented by the continuous
change of a shaft position(Rotary Encoder of
Motor)
Fraction Exponent 01001110
000100
64 Other Decimal Codes
 Binary codes for decimal digits require four
bits. A few possibilities are shown in Tab. 36  Excess3 Gray Code
 Gray code? BCD ?? ?, 9 ?? 0 ?? ??? 1101?? 0000??
?? 3 ??? ??? ???? Tab. 35 ?? 3 ?? 12?? ???? 0010
?? 1010?? 1??? ??.  SelfComplementing excess3 code
 9s complement of a decimal number is easily
obtained by 1s complement(changing 1s to 0s
and 0s to 1s)  Weighted Code 2421 code
 The bits are multiplied by the weights, and the
sum  of the weighted bits gives the decimal digit
 Other Alphanumeric Codes
 ASCII Code?? Tab. 34 ?? p. 384, Tab. 111
 Format effector Functional characters for
controlling the layout of printing or display
devices(carriage returnCR, line feedLF,
horizontal tabHT,)  Data communication flow control(acknowledgeACK,
escapeESC, synchronousSYN,)  EBCDIC(Extended BCD Interchange Code)
 Used in IBM equipment(?? ??? ?? ??)
SelfComplement Exam) 410 0111 (3excess)
1000 ( 1s comp) 510 (3excess
in Tab. 36) 510( 9s comp of 4)
65 36 Error Detection Codes
 Binary information transmitted through some form
of communication medium is subject to external
noise  Parity Bit
 An extra bit included with a binary message to
make the total number of 1s either odd or
even(Tab. 37)  Evenparity method
 The value of the parity bit is chosen so that the
total number of 1s (including the parity bit) is
an even number  1 1 0 0 0 0 1 1
 Oddparity method
 Exactly the same way except that the total number
of 1s is an odd number  1 1 0 0 0 0 0 1
Added parity bit
Added parity bit
66 1 1 0 0 0 0 1 1 C 1
1 0 0 0 0 1 0 B (Evenparity Generator)
(Evenparity Checker)
 Parity Generator/Checker
 At the sending end, the message is applied to a
parity generator  At the receiving end, all the incoming bits are
applied to a parity checker  Can not tell which bit in error
 Can detect only single bit error(odd number of
errors)  3 bit data line example Fig. 33
 4 bit data line example
67 Odd Parity Generator/Checker
 Truth Table
68Chapter 2 Data Representation
CS140 Computer Organization
These slides are derived from those of Null
Lobur the work of others.
69Chapter 2 Objectives
 Understand the fundamentals of numerical data
representation and manipulation in digital
computers both integer and floating point.  Master the skill of converting between various
radix systems.  Understand how errors can occur in computations
because of overflow and truncation.  Gain familiarity with the most popular character
codes.  Understand the concepts of error detecting and
correcting codes.
702.1 Introduction
 REVIEW
 A bit is the most basic unit of information in a
computer.  It is a state of on or off in a digital
circuit.  Sometimes these states are high or low
voltage instead of on or off..  A byte is a group of eight bits.
 A byte is the smallest possible addressable (can
be found via its location) unit of computer
storage.  A word is a contiguous group of bytes.
 Words can be any number of bits (16, 32, 64 bits
are common).  A group of four bits is called a nibble (or
nybble).  Bytes, therefore, consist of two nibbles a
highorder nibble, and a loworder nibble.
712.2 Positional Numbering Systems
 Bytes store numbers using the position of each
bit to represent a power of 2.  The binary system is also called the base2
system.  Our decimal system is the base10 system. It
uses powers of 10 for each position in a number.  Any integer quantity can be represented exactly
using any base (or radix).  The decimal number 947 in powers of 10 is
 The decimal number 5836.47 in powers of 10 is
9 ? 10 2 4 ? 10 1 7 ? 10 0
5 ? 10 3 8 ? 10 2 3 ? 10 1 6 ? 10 0
4 ? 10 1 7 ? 10 2
722.2 Positional Numbering Systems
 Binary works the same as decimal
 The binary number 11001 in powers of 2 is
 When the radix of a number is something other
than 10, the base is denoted by a subscript.  Sometimes, the subscript 10 is added for
emphasis  110012 2510
1 ? 2 4 1 ? 2 3 0 ? 2 2 0 ? 2 1 1 ?
2 0 16 8 0
0 1 25
732.3 Decimal to Binary Conversions
Subtraction Method
 Suppose we want to convert the decimal number 190
to base 3.  We know that 3 5 243 so our result will be
less than six digits wide. The largest power of
3 that we need is therefore 3 4 81, and
81 ? 2 162.  Write down the 2 and subtract 162 from 190,
giving 28.
Note The book also talks about the Division
Method which you may prefer.
742.3 Decimal to Binary Conversions
Subtraction Method
 Converting 190 to base 3...
 The next power of 3 is 3 3 27.
Well need one of these, so we subtract 27 and
write down the numeral 1 in our result.  The next power of 3, 3 2 9, is too large, but
we have to assign a placeholder of zero and carry
down the 1.
752.3 Decimal to Binary Conversions
Subtraction Method
 Converting 190 to base 3...
 3 1 3 is again too large, so we assign a zero
placeholder.  The last power of 3, 3 0 1, is our last
choice, and it gives us a difference of zero.  Our result, reading from top to bottom is
 19010 210013
762.3 Decimal to Binary Conversions
 Fractional values can be approximated in all base
systems.  Fractions do not necessarily have exact
representations under all radices.  The quantity ½ is exactly representable in
binary and decimal, but not in the ternary (base
3) numbering system.
 Fractional decimal values have nonzero digits to
the right of the decimal point.  Fractional values of other radix systems have
nonzero digits to the right of the radix point.
0.4710 4 ? 10 1 7 ? 10 2 0.112 1 ? 2
1 1 ? 2 2 ½ ¼
0.5 0.25 0.75
772.3 Decimal to Binary Conversions
Subtraction Method
 This shows the subtraction method to convert the
decimal 0.8125 to binary.  Our result, reading from top to bottom is
 0.812510 0.11012
 This method works with any base, not just binary.
Note The book also talks about the
Multiplication Method which you may prefer.
782.3 Decimal to Binary Conversions
HEX
 The binary numbering system is the most important
radix system for digital computers.  But, its difficult to read long strings of
binary numbers and even a modest decimal number
becomes a very long binary number.  For example 110101000110112 1359510
 For compactness and ease of reading, binary
values are usually expressed using the
hexadecimal, or base16, numbering system.
 The hexadecimal numbering system uses the
numerals 0 through 9 and the letters A through F.  The decimal number 12 is C16.
 The decimal number 26 is 1A16.
 It is easy to convert between base 16 and base 2,
because 16 24.  Thus, to convert from binary to hexadecimal, all
we need to do is group the binary digits into
groups of four.
A group of four binary digits is called a hextet
792.3 Decimal to Binary Conversions
HEX
 Using groups of hextets, the binary number
110101000110112 ( 1359510) in hexadecimal is  Practice Convert 100010 to Hex
In hexadecimal, we cant write numbers 1016 as
single digits, so we use the letters A F. The
number FA316 is F (15) in the 162 column, A (10)
in the 161 column and 3 in the 160 column
802.4 Signed Integer Representation
 To represent negative values, computer systems
allocate the highorder bit to indicate the sign
of a value.  The highorder bit is the leftmost bit in a byte.
Its also called the most significant bit.  The remaining bits contain the value of the
number.  There are three ways in which signed binary
numbers may be expressed  Signed magnitude,
 Ones complement ? we wont do much with this
here  Twos complement.
812.4 Signed Integer Representation
 In an 8bit word, signed magnitude representation
places the absolute value of the number in the 7
bits to the right of the sign bit.
 In 8bit signed magnitude,
 Positive 3 is 00000011
 Negative 3 is 10000011
 Computers perform arithmetic operations on signed
magnitude numbers the same way as humans do
pencil and paper arithmetic.  Humans ignore the signs of the operands while
doing a calculation, applying the appropriate
sign at the end.
822.4 Signed Integer Representation
 Binary addition is as easy as it gets. You need
to know only four rules  0 0 0 0 1 1
 1 0 1 1 1 10
 The simplicity of this system makes it possible
for digital circuits to carry out arithmetic
operations.  We will describe these circuits in Chapter 3.
Lets see how the addition rules work with signed
magnitude numbers . . .
832.4 Signed Integer Representation
 Example
 Using signed magnitude binary arithmetic, find
the sum of 75 and 46.  Convert 75 and 46 to binary, and arrange as a
sum. Separate the (positive) sign bits from the
magnitude bits.
 As in decimal arithmetic, find the sum starting
with the rightmost bit and work left.
 In the second bit, we have a carry, so we note it
above the third bit.
842.4 Signed Integer Representation
 Example
 Using signed magnitude binary arithmetic, find
the sum of 75 and 46.  The third and fourth bits also give us carries.
 Once we have worked our way through all eight
bits, we are done.
In this example, we were careful to pick two
values whose sum would fit into seven bits. If
thats not the case, we have a problem.
 Example
 Using signed magnitude binary arithmetic, find
the sum of 107 and 46.  The carry from the seventh bit overflows and is
discarded, giving us the erroneous result 107
46 25.
852.4 Signed Integer Representation
 The signs in signed magnitude representation work
just like the signs in pencil and paper
arithmetic.  Example Using signed magnitude binary
arithmetic, find the sum of 46 and 25.
Because the signs are the same, all we do is add
the numbers and supply the negative sign when we
are done.
 Mixed sign addition (or subtraction) is done the
same way.  Example Using signed magnitude binary
arithmetic, find the sum of 46 and 25.
The sign of the result gets the sign of the
number that is larger. Note the borrows from
the second and sixth bits.
862.4 Signed Integer Representation
 Signed magnitude representation is easy for
people to understand, but needs complicated
computer hardware.  Another disadvantage it allows two different
representations for zero positive zero and
negative zero.  So computers systems employ complement systems
for numeric value representation.
4bit Binary Decimal 1000
8 1001 7 1010 6
1011 5 1100 4 1101
3 1110 2 1111
1 0000 0 0001 1 0010
2 0011 3 0100
4 0101 5 0110 6 0111
7
872.4 Signed Integer Representation
 To express a value in twos complement
 If the number is positive, just convert it to
binary and youre done.  If the number is negative, find the ones
complement (change each of the bits) of the
number and then add 1.  Example
 In 8bit ones complement, positive 3 is
 00000011
 Negative 3 in ones complement is
 11111100
 Adding 1 gives us 3 in twos complement form
 11111101.
882.4 Signed Integer Representation
 With twos complement arithmetic, all we do is
add our two binary numbers. Just discard any
carries emitting from the high order bit.
Example Using twos complement binary
arithmetic, find the sum of 48 and  19.
We note that 19 in ones complement is
00010011, so 19 in ones complement is
11101100, and 19 in twos complement is
11101101.
892.4 Signed Integer Representation
 When we use any finite number of bits to
represent a number, we run the risk of the result
of calculations being too large to be stored in
the computer.  While we cant always prevent overflow, we can
always detect overflow.
Example Using twos complement binary
arithmetic, find the sum of 107 and 46 (we did
this before in slide 17) We see that the nonzero
carry from the seventh bit overflows into the
sign bit, giving us the erroneous result 107
46 103.
Rule for detecting signed twos complement
overflow When the carry in and the carry
out of the sign bit differ, overflow has
occurred.
902.4 Signed Integer Representation
 Signed and unsigned numbers are both useful.
 For example, memory addresses are always
unsigned.  Using the same number of bits, unsigned integers
can express twice as many values as signed
numbers.  Trouble arises if an unsigned value wraps
around.  In four bits 1111 1 0000.
 Good programmers stay alert for this kind of
problem.
912.4 Signed Integer Representation
 There are a number of algorithms that improve the
performance of computer arithmetic.  Booths algorithm as discussed in the book is one
of these enhancements.  Many of these methods are based on the fact that
multiplication is HARD for a computer, but
addition and shifting is SIMPLE. So techniques
that optimize the simple operations make
hardware, firmware, software go faster.
922.5 FloatingPoint Representation
 Integer formats are not useful in scientific or
business applications that deal with real number
values.  Floatingpoint representation solves this
problem.  Most of todays computers are equipped with
specialized hardware that performs floatingpoint
arithmetic with no special programming required.
932.5 FloatingPoint Representation
 Detour on biased notation.
Excess8 Notation 0000 8 0001 7 0010 6
0011 5 0100 4 0101 3 0110 2 0111 1
1000 0 1001 1 1010 2 1011 3 1100 4 1101
5 1110 6 1111 7
 Use unsigned magnitude to represent both positive
and negative numbers by using a bias, or excess,
representation  The entire numbering system is shifted up some
positive amount.  To convert a number from excess8 to decimal.
 For a number in excess8, we subtract 8 from the
number to get the real value (1001 in excess8 is
1001 1000 00012 1)  To convert a number from decimal to excess8.
 6 01102. Add on the bias like this 0110
1000 1110 ? the is the excess8 number.  To use the representation
 numbers have to be shifted, then stored, and then
shifted back when retrieved  Unnecessarily complicated for regular use.
 Useful to represent exponents in our floating
point representation (shown next)
942.5 FloatingPoint Representation
 Floatingpoint numbers allow an arbitrary