Tin Tức

Xử lý các lỗi đọc của CD ROM

single image

Xử lý các lỗi khi đọc một đĩa là một phần quan trọng trong tiêu chuẩn CD Sách Đỏ (Red Book) nguyên bản.

Các đĩa CD sử dụng kỹ thuật đan xen và chẵn lẻ được gọi là mã Reed – Solomon đan xen chéo (CIRC: cross-interleaye Reed-Solomon code) để giảm đến mức tối thiểu các ảnh hưởng gây ra các lỗi trên đĩa.

Phương thức thực hiện

Công việc này được thực hiện tại mức cấu trúc. Khi lưu trữ, 24 byte dữ liệu trên mỗi cấu trúc được chạy đầu tiên thông qua một một bộ mã hóa Reed-Solomon để tạo ra một mã chẵn lẻ 4 byte gọi là mã chẵn lẻ “Q”, sau đó được gộp vào với 24 byte dữ liệu. Kết quả là 28 byte sẽ được chạy qua một thiết bị mã hóa khác dùng một sắp xếp khác để tạo ra một giá trị chẵn lẻ 4 byte thêm gọi là mã chẵn lẻ “P”. Những giá trị này sẽ được gộp vào 28 byte từ phiên mã hóa trước đó, tạo thành 32 byte (24 byte từ dữ liệu ban đầu cộng thêm những byte chẵn lẻ Q và P). Một byte thêm của thông tin mã phụ (ghi rãnh) được cộng vào sau đó thành tổng số 33 Byte cho mỗi cấu trúc. Chú ý là các Byte chẵn lẻ p và Q không liên quan đến mã phụ Q và p đã đề cập trước đó.

Để giảm đến mức tối thiểu ảnh hưởng của lỗi vật lý hoặc vết xước có thể làm hại các cấu trúc kề sát nhau, một số bước xen kẽ được thêm vào trước khi các cấu trúc thực sự được ghi. Các phần của 109 cấu trúc được đan xen chéo (được lưu trữ trong các cấu trúc và các sector khác nhau) sử dụng các đường trễ. Việc xáo trộn này làm giảm khả năng một vết xước hoặc lỗi vật lý ảnh hưởng đến dữ liệu gần kề do dữ liệu được ghi thực tế không theo thứ tự.

Xử lý lỗi với các đĩa CD

Cơ chế CIRC có thể sửa các lỗi lên đến độ dài 3.874 bit (là 2.6mm trong độ dài rãnh). Thêm nữa, đối với đĩa CD âm thanh, chỉ có C1RC có thể giấu được (thông qua phép nội suy) các lỗi lên đến độ dài 13,282 bit (8.9 mm độ dài của rãnh). Nội suy (Interpolation) là quá trình trong đó dữ liệu được ước tính hoặc tính trung bình để phục hồi lại phần bị mất. Điều này dĩ nhiên là không thể chấp nhận cho một đĩa dữ liệu CD, do vậy chỉ áp dụng cho các đĩa âm thanh. Tiêu chuẩn CD Sách Đỏ đã ghi rõ tỷ lệ lỗi khối (BLER: block error rate) như số cấu trúc (98 cho mỗi sector) cho mỗi giây có bất kỳ bit lỗi nào (trung bình là trên 10 giây) và yêu cầu số này phải ít hơn 220. Điều này cho phép tối đa lên đến khoảng 3% các cấu trúc có lỗi và đĩa vẫn còn có thể hoạt động.

xử lý các lỗi đọc của cd rom

Một lớp hệ mạch phát hiện và chỉnh sửa lỗi thêm vào là một khác biệt chính giữa đầu đọc CD âm thanh và ổ đĩa CD dữ liệu. Các đĩa CD âm thanh biến đổi thông tin tín hiệu số được lưu trữ trên đĩa sang tín hiệu tương tự cho bộ khuyếch đại âm thanh nổi xử lý. Trong giai đoạn này, một số sự méo tín hiệu có thể chấp nhận được vì hầu như không thể nhận thấy được khi nghe nhạc. Tuy nhiên, đối với CD dữ liệu, không thể bỏ qua sự không đúng này. Mỗi bit dữ liệu phải được đọc một cách chính xác. Vì lý do này, đĩa CD dữ liệu có thêm vai trò quan trọng của thông tin ECC được ghi vào đĩa cùng với thông tin lưu trữ thực. ECC có thể phát hiện và sửa hầu hết những lỗi nhỏ, tăng cường độ tin cậy, độ chính xác đến mức độ có thể chấp nhận được dùng để lưu dữ liệu cho laptop.

Trong trường hợp của CD âm thanh, dữ liệu mất có thể được nội suy — thông tin theo mẫu dự đoán cho phép ổ đĩa đoán các giá trị mất. Ví dụ: Nếu ba giá trị được lưu trên một đĩa âm thanh (là 10, 13 và 20 xuất hiện trong dãy này), giá trị giữa bị thiếu — do hỏng hoặc do bẩn trên mặt đĩa CD — bạn có thể nội suy được giá trị ở giữa là 15 – tức là nằm giữa 10 và 20. Mặc dù việc này có thể không chính xác hoàn toàn, trong trường hợp thu âm thanh, có thể người nghe sẽ không chú ý. Nhưng nếu ba giá trị này xuất hiện trên một đĩa CD dữ liệu trong một chương trình có thể chạy được thì không có cách nào có thể đoán được giá trị đúng cho mẫu ở giữa. Việc nội suy không thể thực hiện được do đòi hòi các chỉ lệnh chương trình thực thi được hoặc dữ liệu phải thật chính xác; mặt khác, chương trình sẽ bị hỏng hoặc dữ liệu đọc không đúng theo yêu cầu tính toán. Sử dụng ví dụ ở trên đối với một đĩa CD dữ liệu đang chạy một chương trình có khả năng thực thi, việc suy đoán 15 không đơn thuần bỏ đi — sai hoàn toàn.

Trong một CD lưu trữ dữ liệu thay vì thông tin âm thanh, thông tin thêm được tính vào mỗi sector để phát hiện và chỉnh sửa các lỗi cũng như xác định vị trí của các sector dữ liệu chính xác hơn. Để thực hiện việc này 304 byte được lấy từ 2,352 byte ban đầu được dành cho dữ liệu âm thanh và được thay thế sử dụng cho đồng bộ (các bit đồng bộ), ID (các bit định dạng), ECC và thông tin EDC. Việc này để lại 2,048 byte cho dữ liệu người dùng thực sự trên mỗi sector. Khi đọc một đĩa âm thanh CD, trong một ổ đĩa CD lx (tốc độ chuẩn), các sector được đọc với tốc độ 75 không đổi cho mỗi giây. Điều này dẫn đến một đĩa CD chuẩn tốc độ truyền dữ liệu 153,600 byte mỗi giây (2.048 X 75) được thể hiện dưới dạng 153.6KBps hay 150KiBps.

Chú ý:

Một số cơ chế bảo vệ chống sao chép trên CD âm thanh gây nhiễu với dữ liệu âm thanh và thông tin CIRC như là cách làm đĩa đang tỏ ra vận hành một cách chính xác, tuy nhiên việc sao chép các tệp tin âm thanh hay của toàn bộ đĩa sẽ được lọc tiếng ồn. Bảo vệ chống sao chép cho cả CD dữ liệu và âm thanh được thảo luận chi tiết tại đây.

You may like