Computer Architecture

Download Report

Transcript Computer Architecture

Codes
Outline
 Binary Coded Decimal (BCD)
 Gray Code
 Binary-to-Gray Conversion
 Gray-to-Binary Conversion




Other Decimal Codes
Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes
Outline
 Binary Coded Decimal (BCD)
 Gray Code
 Binary-to-Gray Conversion
 Gray-to-Binary Conversion




Other Decimal Codes
Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes
Binary Coded Decimal (BCD)
 Decimal numbers are more natural to humans. Binary numbers
are natural to computers. Quite expensive to convert between
the two.
 If little calculation is involved, we can use some coding schemes
for decimal numbers.
 One such scheme is BCD, also known as the 8421 code.
 Represent each decimal digit as a 4-bit binary code.
Binary Coded Decimal (BCD)
Decimal digit
BCD
Decimal digit
BCD
0
0000
5
0101
1
0001
6
0110
2
0010
7
0111
3
0011
8
1000
4
0100
9
1001
 Some codes are unused, eg: (1010)BCD, (1011)
BCD,
…,
(1111) BCD. These codes are considered as errors.
 Easy to convert, but arithmetic operations are more
complicated.
 Suitable for interfaces such as keypad inputs and digital
readouts.
Binary Coded Decimal (BCD)
Decimal digit
BCD
Decimal digit
BCD
0
0000
5
0101
1
0001
6
0110
2
0010
7
0111
3
0011
8
1000
 Examples:
(234)10 = (0010 0011 0100)BCD
(7093)10 = (0111 0000 1001 0011)BCD
(1000 0110)BCD = (86)10
(1001 0100 0111 0010)BCD = (9472)10
Notes: BCD is not equivalent to binary.
Example: (234)10 = (11101010)2
4
0100
9
1001
Outline
 Binary Coded Decimal (BCD)
 Gray Code
 Binary-to-Gray Conversion
 Gray-to-Binary Conversion




Other Decimal Codes
Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes
Gray Code
 Unweighted (not an arithmetic code).
 Only a single bit change from one code number to the next.
 Good for error detection.
Decimal
0
1
2
3
4
5
6
7
Binary
0000
0001
0010
0011
0100
0101
0110
0111
Gray Code
0000
0001
0011
0010
0110
0111
0101
0100
Decimal
8
9
10
11
12
13
14
15
Q. How to generate 5-bit standard Gray code?
Q. How to generate n-bit standard Gray code?
Binary
1000
1001
1010
1011
1100
1101
1110
1111
Gray code
1100
1101
1111
1110
1010
1011
1001
1000
Gray Code
0000
0001
0011
0001
0010
0000
0010
0110
0111
0011
0101
0001
0100
0000
1100
0100
0101
1101
0111
1111
0110
1110
0010
1010
0011
1011
0001
1001
0000
1000
Generating 4-bit standard Gray code.
Gray Code
sensors
mis-aligned
sensors
Binary coded: 111  110  000
mis-aligned
sensors
Gray coded: 111  101
Binary-to-Gray Code Conversion
 Retain most significant bit.
 From left to right, add each adjacent pair of binary code bits to
get the next Gray code bit, discarding carries.
 Example: Convert binary number 10110 to Gray code.
1
0
1
1
0

1
1
Binary
1
Gray
1
1
0
1
1
1
+
1

0
+
0
Binary
Gray
(10110)2 = (11101)Gray
0
1
1
0
1
Binary

1
1
Gray
1
1
0
1
1
1
1
0
+
0
1
0
Binary

1
Gray
+
1

1
1
0
Binary
Gray
Gray-to-Binary Conversion
 Retain most significant bit.
 From left to right, add each binary code bit generated to the
Gray code bit in the next position, discarding carries.
 Example: Convert Gray code 11011 to binary.
1
1
0
1
1

1
1
Gray
1
+
1
Binary
1
1
0
1
+
1
0
0

1
1
Gray
0
1
1

0
Gray
1
(11011)Gray = (10010)2
0
+
Binary
1
1
0
1
1
+
Binary
1
1
0
0
1
0
1
Gray

0
Binary

0
1
1
Gray
Binary
Outline
 Binary Coded Decimal (BCD)
 Gray Code
 Binary-to-Gray Conversion
 Gray-to-Binary Conversion




Other Decimal Codes
Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes
Other Decimal Codes
Decimal Digit
0
1
2
3
4
5
6
7
8
9
BCD
8421
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Excess-3
84-2-1
2*421
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
0000
0111
0110
0101
0100
1011
1010
1001
1000
1111
0000
0001
0010
0011
0100
1011
1100
1101
1110
1111
Biquinary
5043210
0100001
0100010
0100100
0101000
0110000
1000001
1000010
1000100
1001000
1010000
 Self-complementing codes: excess-3, 84-2-1, 2*421 codes.
 Error-detecting code: biquinary code (bi=two, quinary=five).
Outline
 Binary Coded Decimal (BCD)
 Gray Code
 Binary-to-Gray Conversion
 Gray-to-Binary Conversion




Other Decimal Codes
Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes
Self-Complementing Codes
 Examples: excess-3, 84-2-1, 2*421 codes.
 The codes that represent the pair of complementary digits are
complementary of each other.
Excess-3 code
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
241: 0101 0111 0100
758: 1010 1000 1011
Outline
 Binary Coded Decimal (BCD)
 Gray Code
 Binary-to-Gray Conversion
 Gray-to-Binary Conversion




Other Decimal Codes
Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes
Alphanumeric Codes
 Apart from numbers, computers also handle textual data.
 Character set frequently used includes:
alphabets:
digits:
special symbols:
non-printable:
‘A’ .. ‘Z’, and ‘a’ .. ‘z’
‘0’ .. ‘9’
‘$’, ‘.’, ‘,’, ‘@’, ‘*’, …
SOH, NULL, BELL, …
 Usually, these characters can be represented using 7 or 8 bits.
Alphanumeric Codes
 Two widely used standards:
ASCII (American Standard Code for Information Interchange)
EBCDIC (Extended BCD Interchange Code)
 ASCII: 7-bit, plus a parity bit
for error detection (odd/even
parity).
 EBCDIC: 8-bit code.
Character
0
1
...
9
:
A
B
...
Z
[
\
ASCII Code
0110000
0110001
...
0111001
0111010
1000001
1000010
...
1011010
1011011
1011100
Alphanumeric Codes
 ASCII table:
LSBs
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
000
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
O
SI
001
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
010
SP
!
“
#
$
%
&
‘
(
)
*
+
,
.
/
MSBs
011 100
0
@
1
A
2
B
3
C
4
D
5
E
6
F
7
G
8
H
9
I
:
J
;
K
<
L
=
M
>
N
?
O
101
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
110
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
111
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
Outline
 Binary Coded Decimal (BCD)
 Gray Code
 Binary-to-Gray Conversion
 Gray-to-Binary Conversion




Other Decimal Codes
Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes
Error Detection Codes
 Errors can occur data transmission. They should be detected,
so that re-transmission can be requested.
 With binary numbers, usually single-bit errors occur.
Example: 0010 erroneously transmitted as 0011, or 0000, or
0110, or 1010.
 Biquinary code uses 3 additional bits for error-detection. For
single-error detection, one additional bit is needed.
Error Detection Codes
 Parity bit.
 Even parity: additional bit supplied to make total number of
‘1’s even.
 Odd parity: additional bit supplied to make total number of ‘1’s
odd.
 Example: Odd parity.
Character
0
1
...
9
:
A
B
...
Z
[
\
ASCII Code
0110000 1
0110001 0
...
0111001 1
0111010 1
1000001 1
1000010 1
...
1011010 1
1011011 0
1011100 1
Parity bits
Error Detection Codes
 Parity bit can detect odd number of errors but not even number
of errors.
Example: For odd parity numbers,
10011  10001 (detected)
10011  10101 (non detected)
 Parity bits can also be
applied to a block of data:
0110 1
0001 0
1011 0
1111 1
1001 1
0101 0
Column-wise parity
Row-wise parity
Error Detection Codes
 Sometimes, it is not enough to do error detection. We may
want to do error correction.
 Error correction is expensive. In practice, we may use only
single-bit error correction.
 Popular technique: Hamming Code (not covered).