Blog

Chyba nikt rozsądny nie odważyłby się powiedzieć, że informacje przetwarzane przez nowoczesny komputer są „patykiem na wodzie pisane”. A jednak coś w tym jest…

Do przechowywania informacji większość współczesnych laptopów używa tzw. „dysków SSD”. Dlaczego „tak zwanych”? Słowo „dysk” jest tutaj użyte mocno na wyrost, jako że wewnątrz tego nośnika pamięci nie ma żadnych dysków, ani jakichkolwiek ruchomych elementów mechanicznych.

Podstawowym elementem budowy dysku SSD jest specjalnej konstrukcji tranzystor polowy, utworzony z napylonych na krzemowe podłoże kolejnych warstw przewodnika i półprzewodnika. Jest to tak zwana „bramka NAND”. Ta egzotycznie brzmiąca nazwa pochodzi od dwóch elementarnych operacji logicznych: zaprzeczenia (NO) i koniunkcji (AND). Połączenie tych dwóch funkcji, czyli zaprzeczenie koniunkcji nazywa się dysjunkcją. Struktura realizująca dysjunkcję, podobnie jak tranzystor, ma trzy połączenia sygnałowe: dwa wejścia i jedno wyjście. Przechodzące przez nią sygnały poddawane są właśnie operacji dysjunkcji. W ten sposób ta cała struktura jest zdolna do przechowywania informacji.

Ok. Wróćmy teraz do naszego „wodolejstwa” z pierwszego akapitu. W praktyce okazało się, iż najtańszą przemysłową realizacją bramek NAND jest połączenie wielu komórek - czyli tranzystorów, za pomocą jednej elektrody – w tym wypadku wspólnej bramki wielu tranzystorów, stanowiącej podłoże całej tej struktury. Elektronicy, ze względu na stale przepływający między tranzystorami w tej wspólnej bramce ładunek, nazwali ją „pływającą bramką”. Stąd właśnie wzięło się skojarzenie z wodą.

Pływająca bramka jest tania w masowej produkcji, ale niesie za sobą pewne, nieco kłopotliwe, skutki. Otóż tranzystory ze wspólną pływającą bramką tworzą tak zwane bloki pamięci. Zwykle mają one pojemność rzędu 512 bajtów (0,5 kB), lub - częściej - 1024 bajtów (1kB), a nawet większą. Funkcjonalnie są zatem podobne do sektorów na dysku HDD. (przypomnijmy: te ostatnie także mają zwykle 0,5 kB lub wielokrotność tej wartości).

Obie te struktury różnią się jednak sposobem pracy. Dysk HDD jest zorganizowany w ten sposób, że jego sektory zawsze zawierają fragment tylko jednego pliku. W przeciwieństwie do nich bloki pamięci na dysku SSD mogą zawierać fragmenty wielu plików.

Zarówno w sektorach dysku HDD, jak i blokach dysku SSD informacje można zapisać i odczytywać zarówno w całym obszarze struktury, jak i z pojedynczych komórek. Jednak w przeciwieństwie do dysku HDD, informacji na dysku SSD nie można nadpisywać. Należy najpierw skasować, czyli opróżnić komórki i dopiero wtedy można zapisać je nowymi danymi.  

I tu ważna informacja: ze względu na obecność pływającej bramki kasować można nie pojedyncze komórki, tylko całe bloki. Ponieważ w tych blokach, jak wspomnieliśmy, mogą znajdować się fragmenty różnych plików, więc jeśli chcemy skasować tylko jeden z nich, nie tracąc przy tym pozostałych, musimy najpierw wykonać kopię zapasową wszystkich bloków, w których znajdują się elementy tego kasowanego pliku.

I tu pojawia się problem. Z czasem bloki „zużywają się”. Po pewnym okresie używania następują trwałe zmiany w strukturze półprzewodnikowej i blok nie jest w stanie prawidłowo zapamiętywać informacji. Aby zapobiec błędom kontroler dysku SSD cały czas sprawdza poprawność działania każdego bloku za pomocą tzw. technologii sum kontrolnych. Bloki, które uznane zostały za niesprawne zostają trwale wyłączone z użytkowania. Odtąd system operacyjny komputera przestaje mieć do nich dostęp i bloki te zachowują się tak, jakby nie istniały. Ale one przecież istnieją! I chociaż zawarta w nich informacja może zawierać jakieś tam pojedyncze błędy, to przecież jednak istnieje! W szczególności, jeśli awaria bloku nastąpiła w trakcie operacji kasowania, może zawierać fragmenty owych skasowanych plików. Z łatwością więc można domyślić się czego dotyczyła! To bardzo niebezpieczny fakt…

WIPERAPP, jako profesjonalny system kasowania danych z dysków SSD, w pewien sposób „oszukuje” kontroler dysku SSD, zmuszając go do jednorazowego udostępnienia wszystkich bloków – zarówno tych czynnych, jak i tych dawno wyłączonych z użytkowania, (ale prawdopodobnie zawierających jakieś historyczne informacje…). Czyni to wszakże z jednym zastrzeżeniem: nie zmienia na trwałe ich statusu, bowiem uszkodzone i zużyte bloki nie odzyskują, niestety, w ten sposób swojej dawnej sprawności i użytkowane dalej mogłyby być źródłem błędów.

Po użyciu naszego systemu wszystkie bloki zostają skutecznie skasowane. Mamy pewność, iż cała struktura dysku nie zawiera już jakichkolwiek informacji i może być bezpiecznie na nowo używana. I o to właśnie chodziło!