You are on page 1of 8

Computer Organization and Architecture (9th Edition)- Transaltor Do Hung

Hình 5.7 : Error – correcting Code function


Hình 5.7 minh họa về cách thức thực hiện quá trình sửa lỗi. Khi nào dữ liệu được
ghi vào bộ nhớ , tính toán, miêu tả như một hàm f, được thực hiện trên dữ liệu để
tạo ra một mã. Cả mã và dữ liệu được lưu trữ. Vì vậy một từ M bit dữ liệu được
lưu và mã có chiều dài K bit sau đó kích thước thực tế của từ được lưu trữ là M+ K
bit. Khi từ lưu trữ trước đó được đọc, mã sử dụng để phát hiện và sửa lỗi. Một bộ
bit mã K mới được tạo ra từ các bit dữ liệu M và so sánh với các bit mã lấy được.
So sánh này mang lại một trong ba kết quả:
i. Không phát hiện lỗi. Các bit dữ liệu được tìm nạp sẽ được gửi đi.
ii. Phát hiện lỗi và có thể sửa lỗi. Các bit dữ liệu cộng các bit điểu chỉnh lỗi
được đưa đến bộ điều chỉnh, tạo ra một bộ điều chỉnh M bit được gửi đi.
iii. Phát hiện lỗi, nhưng không thể sửa lỗi. Tình trạng này được báo cáo. Mã
hoạt động theo cách này được gọi là các mã sửa lỗi. Một mã được đặc
trưng bởi số lỗi bit trong một từ mà nó có thể chính và phát hện.
Computer Organization and Architecture (9th Edition)- Transaltor Do Hung

Hình 5.8: Hamming Error-Correcting Code


Mã đơn giản nhất của mã sửa lỗi ( error-correcting) là mã Hamming được
tạo ra bởi Richard Hamming tại Bell Laboratories. Hình 5.8 sử dụng sơ đồ Ven(
Venn diagrams) để minh họa việc sử dụng mã này trên 4bit (M=4). Với ba vòng
tròn giao nhau, tạo ra 7 khoảng. Chúng ta định nghĩa 4 bit dữ liệu cho các khoảng
bên trong ( hình 5.8a). Các ngăn còn lại được lấp đầy với cái gọi là bit chẵn lẻ. Mỗi
bit chẵn lẻ được chọn sao cho tổng số bit 1 trong vòng tròn của nó ( hình 5.8b).
Như vậy, bởi vì vòng tròn A bao gồm 3 khoảng dữ liệu có bit 1, do đó bit chẵn lẻ
trong vòng tròn đó được đặt thành 1. Bây giờ, nếu một lỗi thay đổi trong số các
bit dữ liệu ( hình 5.8c) , nó có thể dễ dàng tìm thấy. Bằng cách kiểm tra các bit
chẵn lẻ, sự khác biệt được tìm thấy trong vòng tròn A và vòng tròn C nhưng không
có trong vòng tròn B. Chỉ có một trong bẩy khoảng ở A và C nhưng không phải B.
Do đó, lỗi có thể được sửa bằng cách thay đổi bit đó. Để làm rõ các khái niệm có
liên quan, chúng ta sẽ phát triển một mã có thể phát hiện và sửa lỗi đơn bit trong
các từ 8-bit. Để bắt đầu, chúng ta hãy xác định mã có độ dài bao nhiêu. Đề cập
đến hình 5.7, so sánh giá trị logic nhận như là đầu vào hai giá trị K-bit. So sánh
từng bit từng bit là thực hiện bằng cách thực hiện phép XOR ( exclusive-OR) of hai
giá trị đầu vào. Kết quả gọi là syndrome word. Như vậy, mỗi bit của syndrome
kèm theo là 0 hoặc 1 để nếu có hoặc không có hai vị trí tương xứng của hai giá trị
vào. Do đó syndrome word dài K bit và có khoảng từ 0 đến 𝟐𝑲 − 𝟏. Giá trị 0 để
Computer Organization and Architecture (9th Edition)- Transaltor Do Hung

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

Khi đó các ể ớ (new check bit) được so sánh với ể ũ (old


check bit), syndrome word được hình thành:
C8 C4 C2 C1
0 1 1 1
⊕ 0 0 0 1
Computer Organization and Architecture (9th Edition)- Transaltor Do Hung

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

Mã chỉ mô tả được biết đến như một mã lỗi đơn (a single-error-correcting)


( SEC ). Thông thường, bộ nhớ bán dẫn được trang bị một lỗi đơn sửa, mã phát
hiện lỗi kép ( double-error-detecting) (SEC-DED). Như bảng 5.2 cho thấy, các mã
đó yêu cầu thêm một bit so với mã SEC.

Hình 5.11: Hamming SEC-DEC Code


Hình 5.11 minh họa cách một mã hoạt động, một lần nữa với một từ dữ
liệu 4-bit. Trình tự này được thấy nếu hai lỗi xảy ra ( Hình 5.11 c), thủ tục kiểm tra
đi lạc đường (d) và làm trầm trọng thêm vấn đề bằng cách tạo ra một lỗi thứ ba
(e). Vượt qua vấn đề, một bit thứ tám được thêm vào được đặt để tổng số bit 1
trong sơ đồ là bằng nhau. Bit kiểm tra chẵn lẻ tăng thêm để tìm lỗi (f).
Computer Organization and Architecture (9th Edition)- Transaltor Do Hung

You might also like