Professional Documents
Culture Documents
chỉ ra rằng không có lỗi nào được phát hiện, còn 𝟐𝑲 − 𝟏 giá trị để cho biết nếu có
lỗi thì bit nào bị lỗi. Bây giờ, vì mỗi lỗi có thể xảy ra trên bất kì bit dữ liệu M hoặc
bit kiểm tra K, chúng ta phải có
𝟐𝐊 − 𝟏 ≥ 𝐌 + 𝐊
Bảng trên cho thấy sự không công bằng này cung cấp số bit cần thiết để sửa lỗi bit
đơn trong một từ gồm M bit dữ liệu. Ví dụ, một từ gồm 8 bit dữ liệu ( M=8), chúng
ta có:
a. K = 3: 23 − 1 < 8 + 3 ( trái với với công thức 2𝑘 − 1 ≥ 𝑀 + 𝐾)
b. K = 4: 24 − 1 > 8 + 4
Single-Error Correction/
Single-Error Correction
Double-Error Detection
Data Bits Check Bits % Increase Check Bits % Increase
8 4 50 5 62.5
16 5 31.25 6 37.5
32 6 18.75 7 21.875
64 7 10.94 8 12.5
128 8 6.25 9 7.03
256 9 3.25 10 3.91
Table 5.2: Tăng chiều dài của từ với sửa lỗi
Do đó, tám bit dữ liệu yêu cầu 4 bit kiểm tra. Ba cột đầu tiên của bảng 5.2 liệt kê
số lượng các bit kiểm tra yêu cầu cho các độ dài dữ liệu khác nhau. Để thuận tiện,
chúng ta tạo ra một syndrome 4 bit cho một từ dữ liệu 8 bit có đặc điểm như sau:
i. Nếu syndrome gồm tất cả các bit 0, không có lỗi được phát hiện.
ii. Nếu syndrome gồm 1 và chỉ một bit thì đặt thành 1, sau đó lỗi có thể xảy ra
một trong 4-bit kiểm tra. Không cần chỉnh sửa.
Computer Organization and Architecture (9th Edition)- Transaltor Do Hung
iii. Nếu syndrome bao gồm nhiều hơn một bit tạo thành 1 thì trị số ( numerical
value) của syndrome cho biết vị trí của bit dữ liệu bị lỗi. Bit này được đảo
ngược để sửa.
Để đạt được ( achieve) các đặc tính ( characteristics) này thì dữ liệu và các bit
kiểm tra ( check bits) phải được sắp xếp (arranged ) thành một từ 12 bit như mô
tả hình 5.9. Các bit vị trí được đánh số từ 1 đến 12. Những vị trí bit có số thứ tự vị
trí là số mũ của 2 ( 20 , 21 , 22 … . . , 2𝑛 ) được chỉ định ( designated) làm bit kiểm tra
(check bits). Các bit kiểm tra được tính như sau, trong đó biểu tượng ⊕ chỉ định
(designates) phép XOR (exclusive-OR)
C1 = D1 ⊕ D2 ⊕ ⊕ D4 ⊕ D5 ⊕ ⊕ D7
C2 = D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7
C4 = D2 ⊕ D3 ⊕ D4 ⊕ D8
C8 = D5 ⊕ D6 ⊕ D7 ⊕ D8
Bit
12 11 10 9 8 7 6 5 4 3 2 1
posittion
Posittion
1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
Number
Data bit D8 D7 D6 D5 D4 D3 D2 D1
Check
C8 C4 C2 C1
bit
Figure 5.9: Layout of Data Bits and Check Bits
(Bảng 5.9: hiển thị bit dữ liệu và bit kiểm tra )
Computer Organization and Architecture (9th Edition)- Transaltor Do Hung
Mỗi bit kiểm tra ( Check bit) động dựa trên mỗi bit dữ liệu(Data bit) mà
Posittion Number chứa số 1 ở vị trí bit giống như vị trí số bit kiểm tra (xem bảng
5.9 để hiểu thêm) đó. Do đó, các vị trí bit dữ liệu 3,5,7,9 và 11 (D1,D2,D4,D5,D7)
tất cả đều chứa bit 1 ở vị trí ngoài cùng bên phải-<vị trí ít quan trọng nhất> ( least
significant bit) như C1; các bit vị trí 3, 6, 7, 10 và 11 tất cả đều bao gồm 1 trong bit
ở vị trí thứ 2, như C2 và tiếp tục như vậy (so on). Nhìn theo cách khác vị trí bit thứ
n được kiểm tra bởi các bit thứ 𝐶𝑖 sao cho ∑𝒊 = 𝒏. Ví dụ, vị trí thứ 7 được kiểm tra
bởi bit ở vị trí 4, 2 và 1; và 7 = 4+2+1.
Bây giờ chúng ta cùng xem xét một ví dụ. Giả sử rằng có 8-bit từ đầu vào là “
00111001” với bit dữ liệu D1 ở vị trí bên phải. Các phép tính như sau:
C1 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 1
C2 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 1
C4 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 1
C8 = 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0
Giả sử bây giờ dữ liệu bit 3 gặp một lỗi và được thay đổi từ 0 thành 1. Khi đó bit
kiểm tra được tính lại ( recalculated), chúng ta có
C1 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 0 = 1
C2 = 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 0 = 0
C4 = 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0
C8 = 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0
0 1 1 0
Kết quả là “ 0110 “ , chỉ ra rằng vị trí bit thứ 6 có chứa dữ liệu bit 3 là lỗi. Hình
5.10 minh họa trước khi tính toán.
Các bit dữ liệu và bit kiểm tra là vị trí đúng trong từ 12-bit. Bốn trong số bit
dữ liệu có giá trị là 1 ( nền vàng trong bảng), và giá trị vị trí của chúng phép toán
XOR để tạo ra mã Hamming là “ 0111 “, tạo thành 4 chữ số kiểm tra. Toàn bộ
khối được lưu trữ là
Bit
12 11 10 9 8 7 6 5 4 3 2 1
posittion
Posittion
1100 1011 1010 1001 1000 0111 0110 0110 0100 0011 0010 0001
number
Data bit D8 D7 D6 D5 D4 D3 D2 D1
Check
C8 C4 C2 C1
bit
Word
stored 0 0 1 1 0 1 0 0 1 1 1 1
as
Word
fetched 0 0 1 1 0 1 1 0 1 1 1 1
as
Posittion
1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
number
Check
0 0 0 1
bit
Hình 5.10: Check Bit Calculation ( Tín toán với bit kiểm tra )
“ 001101001111 “. Giả sử bây giờ dữ liệu bit 3 ở vị trí bit 6 đang có một lỗi và thay
đổi từ 0 thành 1. Khối kết quả là “ 001101101111 “, với mã Hamming “0111”.
Một phép XOR của mã Hamming và tất cả các giá trị vị trí bit cho không khác dữ
liệu kết quả trong “ 0110 “. Các kết quả không thay đổi khác phát hiện một lỗi và
chỉ ra rằng lỗi ở vị trí bit 6.
Computer Organization and Architecture (9th Edition)- Transaltor Do Hung