The Language of Bits: Computer Organisation and Architecture
The Language of Bits: Computer Organisation and Architecture
PROPRIETARY MATERIAL. © 2014 The McGraw-Hill Companies, Inc. All rights reserved. No part of this PowerPoint slide may be displayed, reproduced or distributed in any form or by any means, without the
prior written permission of the publisher, or used beyond the limited distribution to teachers and educators permitted by McGraw-Hill for their individual course preparation. PowerPoint Slides are being provided only
to authorized professors and instructors for use in preparing for classes using the affiliated textbook. No other use or distribution of this PowerPoint slide is permitted. The PowerPoint slide may not be sold and may
not be distributed or be used by any student or any other third party. No part of the slide may be reproduced, displayed or distributed in any form or by any means, electronic or otherwise, without the prior written
permission of McGraw Hill Education (India) Private Limited.
1
These slides are meant to be used along with the book: Computer
Organisation and Architecture, Smruti Ranjan Sarangi, McGrawHill 2015
Visit: http://www.cse.iitd.ernet.in/~srsarangi/archbooksoft.html
Outline
Boolean Algebra
Positive Integers
Negative Integers
Floating-Point Numbers
Strings
3
What does a Computer Understand ?
Computers do not understand natural human languages, nor
programming languages
They only understand the language of bits
Bit 0 or 1
Byte 08 or
bits1
Word 40bytes
or 1
kiloByte 1024
0 or 1bytes
megaByte 10
06or
bytes
1
4
Review of Logical Operations
* A + B (A or B) A B A+B
0 0 0
1 0 1
0 1 1
1 1 1
A B A.B
0 0 0
* A.B ( A and B) 1 0 0
0 1 0
1 1 1
5
Review of Logical Operations - II
A B A NAND B A B A NOR B
0 0 1 0 0 1
1 0 1 1 0 0
0 1 1 0 1 0
1 1 0 1 1 0
6
Review of Logical Operations
* XOR Operation : (A B)
A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0
7
Review of Logical Operations
* NOT operator
* Definition: 0 = 1, and 1 = 0
* Double negation: A = A, NOT of (NOT of A) is equal to
A itself
* OR and AND operators
* Identity: A + 0 = A, and A.1 = A
* Annulment: A + 1 = 1, A.0 = 0
8
* Idempotence: A + A = A, A.A = A, The result of
computing the OR and AND of A with itself is A.
* Complementarity: A + A = 1, A.A = 0
* Commutativity: A + B = B + A, A.B = B.A, the order of
Boolean variables does not matter
* Associativity: A+(B+C) = (A+B)+C, A.(B.C) = (A.B).C,
similar to addition and multiplication.
* Distributivity: A.(B + C) = A.B + A.C, A+ (B.C) = (A+B).
(A+C) Use this law to open up parantheses and
simplify expressions
De Morgan's Laws
* Two very useful rules
A + B = A.B
A.B = A + B
10
Consensus Theorem
* Prove :
X.Y + X.Z + Y.Z = X.Y + X.Z
11
Outline
* Boolean Algebra
* Positive Integers
* Negative Integers
* Floating Point Numbers
* Strings
12
Representing Positive Integers
* Ancient Roman System
Symbol I V X L C D M
Value 1 5 10 50 100 500 1000
* Issues :
* There was no notion of 0
* Very difficult to represent large numbers
* Addition, and subtraction (very difficult)
13
Indian System
Example in base 10
14
Number Systems in Other Bases
15
What if we had a world in which ...
16
Binary Number System
17
MSB and LSB
18
Hexadecimal and Octal Numbers
* Hexadecimal numbers
* Base 16 numbers – 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
* Start with 0x
* Octal Numbers
* Base 8 numbers – 0,1,2,3,4,5,6,7
* Start with 0
19
Examples
* Boolean Algebra
* Positive Integers
* Negative Integers
* Floating Point Numbers
* Strings
21
Representing Negative Integers
* Problem
* Assign a binary representation to a negative integer
* Consider a negative integer, S
* Let its binary representation be : xnxn-1….x2x1 (xi=0/1)
* We can also expand it to represent an unsigned, +ve,
number, N
* If we interpret the binary sequence as :
* An unsigned number, we get N
* A signed number, we get S
22
* We need a mapping :
* F : S → N (mapping function)
* S → set of numbers (both positive and negative –
signed)
* N → set of positive numbers (unsigned)
mapping
Set of
Set of +ve
+ve and -ve
numbers
numbers
23
Properties of the Mapping Function
* Preferably, needs to be a one to one mapping
* All the entries in the set, S, need to be mapped
* It should be easy to perform addition and
subtraction operations on the representation of
signed numbers
* Assume an n bit number system
SgnBit(u) = 1,u<0
0 , u >= 0
24
Sign-Magnitude Base Representation
F (u ) SgnBit (u )* 2 n 1 | u |
* Examples :
* -5 in a 4 bit number system : 1101
* 5 in a 4 bit number system : 0101
* -3 in a 4 bit number system : 1011
25
Problems
* There are two representations for 0
* 000000
* 100000
26
1's Complement Representation
u, u 0
F (u )
~ (| u |) or ( 2 n
1 | u |), u 0
27
Problems
* Two representations for 0
* 0000000
* 1111111
* Easy to add +ve numbers
* Hard to add -ve numbers
* Point to note :
* The idea of a complement
28
Bias Based Approach
F(u) =u+bias
* Consider a 4 bit number system with bias equal
to 7
* -3 → 0100
* 3 → 1010
29
The Number Circle
0000 (0)
1111 (15)
0001 (1)
1110 (14)
0010 (2)
1101 (13) 0011 (3)
Increment
1100 (12) 0100 (4)
0101 (5)
1011 (11)
0110 (6)
1010 (10)
0111 (7)
1001 (9)
1000 (8)
Clockwise: increment
Anti-clockwise: decrement
30
Number Circle with Negative Numbers
0000 (0)
1111 (-1)
0001 (1)
1110 (-2)
0010 (2)
1101 (-3) 0011 (3)
Increment
1100 (-4) 0100 (4)
0101 (5)
1011 (-5)
0110 (6)
1010 (-6)
0111 (7)
1001 (-7)
1000 (-8)
break point
31
Using the Number Circle
* To add M to a number, N
* locate N on the number circle
* If M is +ve
* Move M steps clockwise
* If M is -ve
* Move M steps anti-clockwise, or 2n – M steps
clockwise
*
If we cross the break-point
* We have an overflow
* The number is too large/ too small to be represented
32
2's Complement Notation
ìï
u, 0 £u £ 2 n- 1 - 1
F(u) =í n
ï
î 2 - | u |, - 2 n- 1
£u<0
* F(u) is the index of a point on the number
circle. It varies from 0 to 2n - 1
* Examples
* 4 → 0100
* -4 → 1100
* 5 → 0101
* -3 → 1101
33
Properties of the 2's Complement Notation
* a ≡ b → (a = b mod 2n)
* ≡ means same point on the number circle
* F(-u) ≡2n – F(u)
* Moving F(u) steps counter clock wise is the same
as moving 2n – F(u) steps clockwise from 0
35
Prove : F(u+v) ≡ F(u) + F(v)
*Start at point u
*
Its index is F(u)
*
If v is +ve,
* move v points clockwise. We arrive at
F(u+v).
* Its index is equal to (F(u) + v) mod 2n.
* Since v = F(v), we have F(u+v) = ( F(u) + F(v) )
mod 2n
36
Prove : F(u+v) ≡ F(u) + F(v)
*
If v is -ve,
* move |v| points anti-clockwise.
* Same as moving 2n – |v| points clockwise.
* We arrive at F(u+v).
* F(v) = 2n -|v|
* The index – F(u+v) – is equal to:
* (F(u) + 2n – |v|) mod 2n= (F(u) + F(v))
mod 2n
37
Subtraction
* F(u-v) ≡ F(u) + F(-v)
≡ F(u) + 2n - F(v)
38
Prove that :
* Prove that :
F(u*v) ≡ F(u) * F(v)
39
Computing the 2's Complement
* 2n – u
= 2n – 1 - u + 1
= ~u + 1
* ~u (1's complement)
1111 1011
0100 0001
1011 1100
40
Sign Extension
* Convert a n bit number to a m bit 2's complement
number (m > n)
* +ve
* Add (m-n) 0s in the msb positions
* Example, convert 0100 to 8 bits → 0000 0100
* -ve
* F(u) = 2n – |u| (n bit number) system
* Need to calculate F'(u) = 2m -|u|
41
Sign Extension - II
* 2m – u – (2n – u)
= 2m – 2n
= 2n + 2(n+1) + … + 2(m-1)
= 11110000
m-n n
F'(u) = F(u) + 2m – 2n
42
Sign Extension - III
43
The Overflow Theorem
* Add : u + v
* If uv < 0, there will never be an
overflow
* Let us go back to the number circle
* There is an overflow only when we cross
the break-point
* If uv = 0, one of the numbers is 0 (no
overflow)
* If uv > 0, an overflow is possible
44
Number Circle: uv < 0
0
-1 1
-2
2
-3 u=1
-4
3
v=-4
45
Number Circle: uv > 0
0
-1 1
-2
2
-3 u=1
-4
3
v=3
overflow
46
Conditions for an Overflow
*uv <= 0
* Never
47
Outline
* Boolean Algebra
* Positive Integers
* Negative Integers
* Floating-Point Numbers
* Strings
48
Floating-Point Numbers
49
Generic Form for Positive Numbers
* Example :
* 3.29 = 3 * 100 + 2*10-1 + 9*10-2
50
Generic Form in Base 2
* Generic form of a number in base 2
n
A = å xi 2 i
i=- n
Number Expansion
0.375 2–2 +2 –3
1 20
1.5 20 +2 –1
2.75 21 +2 –1 +2 –2
17.625 24 +2 0 +2 –1 +2 –3
51
Binary Representation
52
Normalized Form
* Let us create a standard form of all floating
point numbers
53
Examples (in decimal)
* 1.3827 * 1e-23
* Significand (P) = 1.3827
* Mantissa (M) = 0.3827
* Exponent (X) = -23
* Sign (S) = 0
* -1.2*1e+5
* P = 1.2 , M = 0.2
* S = 1, X = 5
54
IEEE 754 Format
* General Principles
* The significand is of the form : 1.xxxxx
55
IEEE 754 Format - II
1 8 23
56
Representation of the Exponent
* Biased representation
* bias = 127
* E = X + bias
* Range of the exponent
* 0 – 255 ⟷ -127 to +128
* Examples :
* X = 0, E = 127
* X = -23, E = 104
* X = 30 , E = 157
57
Normal FP Numbers
* Have an exponent between -126 and +127
* Let us leave the exponents : -127, and +128 for
special purposes.
S E- bias
A =(- 1) *P *2
(P =1+ M, 0 £M <1, X Î Z,1 £ E £ 254)
58
* What is the largest +ve normal FP number ?
59
Special Floating Point Numbers
E M Value
255 0 if S = 0
255 0 – if S = 1
255 0 NAN(Not a number)
0 0 0
0 0 Denormal number
60
Denormal Numbers
f = 2^(-126);
g = f/2;
if (g == 0)
print ("error");
61
Denormal Numbers - II
A =(- 1)S * P * 2 - 126
(P =0 + M, 0 £M <1)
62
Example
Denormal numbers
Normal FP numbers
64
Double Precision Numbers
Field Size(bits)
S 1
E 11
M 52
●
Approximate range of doubles
●
± 21023 = ± 10308
●
This is a lot !!!
65
Floating Point Mathematics
A = 2^(50);
B = 2^(10);
C = (B+A)- A;
* C will be computed to be 0
* There is no way of representing A+B in the IEEE 754 format
66
Outline
* Boolean Algebra
* Positive Integers
* Negative Integers
* Floating Point Numbers
* Strings
67
ASCII Character Set
* ASCII – American Standard Code for Information
Interchange
* It has 128 characters
* First 32 characters (control operations)
* backspace (8)
* line feed (10)
* escape (27)
* Each character is encoded using 7 bits
68
ASCII Character Set
Character Code Character Code Character Code
a 97 A 65 0 48
b 98 B 66 1 49
c 99 C 67 2 50
d 100 D 68 3 51
e 101 E 69 4 52
f 102 F 70 5 53
g 103 G 71 6 54
h 104 H 72 7 55
i 105 I 73 8 56
j 106 J 74 9 57
k 107 K 75 ! 33
l 108 L 76 # 35
m 109 M 77 $ 36
n 110 N 78 % 37
o 111 O 79 & 38
p 112 P 80 ( 40
q 113 Q 81 ) 41
r 114 R 82 * 42
s 115 S 83 + 43
t 116 T 84 , 44
u 117 U 85 . 46
v 118 V 86 ; 59
w 119 W 87 = 61
x 120 X 88 ? 63
y 121 Y 89 @ 64
z 122 Z 90 ^ 94
69
Unicode Format
* UTF-8 (Universal character set Transformation Format)
* UTF-8 encodes 1,112,064 characters defined in the
Unicode character set. It uses 1-6 bytes for this purpose.
E.g.अ आ क ख, ௹ ᇜ ಞஸ
* UTF-8 is compatible with ASCII. The first 128 characters
in UTF-8 correspond to the ASCII characters. When using
ASCII characters, UTF-8 requires just one byte. It has a
leading 0.
* Most of the languages that use variants of the Roman
script such as French, German, and Spanish require 2
bytes in UTF-8. Greek, Russian (Cyrillic), Hebrew, and
Arabic, also require 2 bytes.
70
UTF-16 and 32
* Unicode is a standard across all browsers and operating
systems
71
THE END
72