Categories
Phần cứng

Cơ chế kiểm tra lỗi của bộ nhớ hoạt động như thế nào?

Computer trivia: What giant Internet outfit scooped up Netscape in a bid to corner the browser market?
Answer: America Online.

Hầu hết các loại bộ nhớ hiện nay đều rất đáng tin cậy. Hệ thống chỉ cần nhờ bộ điều khiển bộ nhớ kiểm tra lỗi lúc khởi động và có thể tin vào nó. Các chip nhớ có cơ chế kiểm tra lỗi được xây dựng sẵn thường sử dụng phương pháp chẵn-lẻ (parity) để kiểm tra. Các chip chẵn lẻ có một bit phụ cho mỗi 8 bit dữ liệu. Cơ chế chẵn lẻ hoạt động rất đơn giản. Đầu tiên là cơ chế bậc chẵn (even parity).

Khi 8 bit trong 1 byte nhận dữ liệu, chip nhớ sẽ thêm 1 bit gọi là bit bậc parity vào. Bit này là tổng số các bit 1 trong dãy dữ liệu đó. Nếu tổng số các bit 1 là lẻ, bit bậc parity sẽ được thiết lập là 1. Nếu tổng số các bit 1 là chẵn, nó được thiết lập là 0. Khi dữ liệu được đọc ra, việc tính toán tổng các bit 1 được thực hiện lại một lần nữa để so sánh với bit bậc parity. Nếu tổng là lẻ và bit bậc parity là 1, dữ liệu được xét là đúng và nó sẽ được gửi cho CPU. Nhưng nếu tổng là lẻ và bit bậc parity là 0, chip nhớ nhận thấy có một lỗi ở đâu đó trong dãy 8 bit và nó sẽ kết xuất dữ liệu ra. Cơ chế bậc lẻ cũng làm giống như vậy, nhưng bit bậc lẻ được thiết lập là 1 khi tổng số các bit 1 là chẵn.

Vấn đề với cơ chế chẵn lẻ là nó có khả năng phát hiện lỗi nhưng lại không thể sửa được các lỗi đó. Nếu 1 byte dữ liệu không hợp với bit bậc parity của nó, dữ liệu sẽ được loại bỏ và hệ thống thử lại lần nữa. Các máy tính có vai trò chủ chốt cần đến một dung sai lỗi (fault tolerance) ở mức cao hơn. Các máy tính chủ cao cấp thường sử dụng một dạng kiểm tra lỗi là error-correction code (ECC). Giống với cơ chế chẵn lẻ, ECC sử dụng các bit thêm vào để kiểm tra dữ liệu trong mỗi byte. Điểm khác biệt của cơ chế này là ECC sử dụng nhiều bit để kiểm tra lỗi thay vì một (nhiều bao nhiêu thì phụ thuộc vào độ rộng bus cho phép). Bộ nhớ ECC sử dụng một thuật toán đặc biệt cho phép nó không chỉ phát hiện lỗi mà còn sửa chúng. Bộ nhớ ECC cũng phát hiện trường hợp khi có nhiều hơn một bit trong dữ liệu 1 byte bị hỏng. Tuy nhiên, những lỗi này hiếm khi xảy ra và chúng cũng không thể sửa được, ngay cả với ECC.

Phần lớn các máy tính được bán ra ngày nay sử dụng các chip nhớ không-chẵn-lẻ (nonparity). Các chip này không cung cấp bất kỳ cơ chế kiểm tra hay sửa lỗi nào, mà chúng hoàn toàn phụ thuộc vào khả năng phát hiện lỗi của bộ điều khiển bộ nhớ.

(st)

Cơ chế kiểm tra lỗi của bộ nhớ hoạt động như thế nào?’]