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