System korekcji błędów
Podczas pracy napędu CD ROM często pojawiają się błędy odczytu. Na szczęście opracowano odpowiednią metodę korekcji błędów troszcząc się o to, by podczas odczytu do komputera trafiały dokładnie te same informacje co zostały zapisane na dysku. Metoda korekcji polega na tym, że dane nie są zapisane w sposób ciągły, lecz blokami. W każdym bloku, prócz samych danych, zawarte są również uzupełniające informacje na ich temat. Dzięki temu komputer może sprawdzić, czy dokonano odpowiedniego odczytu danych. Oczywiście ta technika funkcjonuje wtedy, gdy na dysku nie ma zbyt wielu błędów. Dzisiejsze dyski CD o pojemności 650 MB nie są już wystarczające dla coraz obszerniejszych programów multimedialnych czy choćby dłuższych filmów o jakości telewizyjnej. Następna generacja dysków zapewnia pojemność do 17 GB, co oznacza prawie trzydziestokrotny postęp do dysków używanych obecnie. Naturalnie nowe dyski DVD wymagają innego napędu.
W technice cyfrowej zgubienie nawet jednego bitu może spowodować wadliwą pracę urządzenia, dlatego urządzenie musi mieć możliwość odtworzenia brakujących bitów informacji. Płyta CD przechowuje dane w oddzielnych sektorach, z których każdy ma standardowo wielkość 2 kilobajtów. Te 2 kB prócz danych użytkowych zawierają również informacje potrzebne dla systemu korekcji błędów. Nawet prawie nowy krążek może być zanieczyszczony odciskami palców czy drobinami kurzu. Z czasem na nośniku zaczynają się także pojawiać zarysowania, których przy normalnej eksploatacji nie sposób uniknąć. Układ logiczny systemu korekcji błędów musi być więc w stanie zniwelować błędy odczytu spowodowane uszkodzeniem lub zabrudzeniem powierzchni płyty. W nowoczesnych czytnikach takie obliczenia właściwej sekwencji bitów w uszkodzonych obszarach nośnika powinny trwać bardzo krótko, gdyż w przypadku rosnących szybkości obrotowych napędów dane znacznie szybciej docierają z laserowej głowicy odczytującej.
Prawie wszystkie dostępne na rynku urządzenia CD-ROM stosują w tej sytuacji pewien sprytny manewr: w momencie, gdy system korekcji błędów przestaje nadążać za strumieniem napływających danych, urządzenie zmniejsza swoją szybkość obrotową. W przypadku mniejszej szybkości układ logiczny ma więcej czasu na ponowną próbę "usunięcia" napotkanego błędu. Przeprowadzone testy wykazały, że czasami szybkość transmisji danych obniża się z 4000 KB/s do poziomu około 100 KB/s.
Sprawną korekcję błędów osiągnięto dzięki kodowaniu krzyżowemu i systemowi przeplotu.
Kod o skrótowej nazwie CIRC od słów Cross Interleave Read-Salomon Code (krzyżowy przeplatany kod Reeda-Salomona) umożliwia odtworzenie informacji nawet przy zaniku 3000 kolejnych bitów. Zasada kodowania krzyżowego na podstawie kartki kalendarza przedstawiona jest na rysunku poniżej. Tablica z danymi b) utworzona została ze zbioru danych a) , wybieranych wzdłuż linii równoległych do przekątnej. Uszkodzona linia danych c) jest możliwa do odtworzenia na podstawie porównań słów sąsiednich, po przywróceniu do pierwotnej postaci.
Zasada kodowania krzyżowego:
a) b)
Po Wt Śr Cz Pi So Ni 25 18 26 11 19 27 4
27 28 29 30 1 2 3 12 20 28 27 5 13 21
4 5 6 7 8 9 10 29 Po 28 6 14 22 30
11 12 13 14 15 16 17 Wt 29 7 15 23 31 Śr
18 19 20 21 22 23 24 30 8 16 24 Cz 1 9
25 26 27 28 29 30 31 17 Pi 2 10 So 3 Ni
c) d)
25 18 26 11 19 27 4 Po< Wt Śr Cz Pi So Ni
12 20 28 27 5 13 21 7 28< 29 30 1 2 3
29 Po 28 6 14 22 30 <<< 4 5 6< 7 8 9 10
Wt 29 7 15 23 31 Śr 11 12 13 14< 15 16 17
30 8 16 24 Cz 1 9 18 19 20 21 22< 23 24
17 Pi 2 10 So 3 Ni 25 26 27 28 29< 30< 31
gdzie: < to przekreślenie, a <<< to przekreślenie całej lini
W systemie przeplotu nagrywane słowa są opóźniane o ustalony czas w wyspecyfikowanych przerwach. Podczas odtwarzania stosowana jest procedura odwrotna. Kolejne słowa przy zapisie na płytę są opóźnione o 5 pozycji. Utracone słowa, jak przedstawiono na rysunku b) , przy powrocie do pierwotnej formy zapisu, mogą być odzyskane przez porównanie ze słowami sąsiednimi.
Realizacja przeplotu
a) S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15
b) S1 S4 S7 S10 S13 S2 S5 S8< S11< S14< S3< S6 S9 S12 S15
c) S1 S2 S3< S4 S5 S6 S7 S8< S9 S10 S11< S12 S13 S14< S15
gdzie < to przekreślenie
Do korekcji odczytywanych uszkodzonych słów na płytach jest stosowana kombinacja kodowania krzyżowego i procedury przeplotu, co przyczynia się do skuteczniejszego eliminowania błędów.
W standardzie CD-ROM sektory płyty mają po 2048 bajtów długości, przy czym 4 bajty przeznaczone są na kod detekcji błędów EDC (error detection code) a 276 bajty na kod korekcji błędów ECC (error correction code).