Zawsze zastanawiałem się, jak dysk twardy znajduje pierwszy bit danych.
Gdy dysk twardy włącza się, wszystko, co czyta, musi być okrągłym strumieniem danych, dopóki głowica odczytu nie przesunie się w inne miejsce.
Ale w takim okrągłym strumieniu, skąd dysk wie, gdzie leży pierwszy i ostatni bit, aby mógł przekazywać dane we właściwej kolejności?
hard-drive
data-transfer
uzumaki
źródło
źródło
Odpowiedzi:
Odczytuje to z dysku.
Dane na dysku są nie tylko uporządkowane (jak mówi @psusi), ale także zakodowane. Kodowanie zapewnia, że zapisanych danych nie można pomylić z markerami pozycji w nagłówkach sektorów, dzięki czemu strumień kołowy można odczytać aż do znalezienia markera pozycji docelowej.
Jak rozumiem, nowoczesne dyski twarde tego nie robią; odczytują cały krąg do bufora, śledząc, gdzie jest każdy sektor, i używają buforów do wysyłania żądanych danych.
AKTUALIZACJA:
Nośnik magnetyczny jest materiałem, który ma pole magnetyczne o dwóch kluczowych właściwościach: 1) nigdy nie zmienia się samo, oraz 2) urządzenie rejestrujące może zmienić orientację pola w dowolnym punkcie na powierzchni. Podczas odczytu nośnika czujnik wykrywa, gdzie pole jest skierowane w stronę czujnika, a gdzie pole jest skierowane z dala od czujnika. Gdy czujnik porusza się po powierzchni, wykrywa czasy tych przejść biegunowości; pierwsza warstwa dekodowania przekształca te czasy na wartości bitowe . Ze względu na fizycznie konieczne niepewności w tym procesie kodowanie nie może wymagać długich odcinków o tej samej polaryzacji; oznacza to, że musi to być kodowanie o ograniczonej długości (RLL).
Szczegółowe informacje na temat konstrukcji dysków twardych są na ogół tajemnicą handlową, ale istnieją zasadniczo dwa sposoby zapewnienia, że znaczniki sektora nigdy nie pojawią się w treści sektora:
Zaprojektuj RLL, który dopuszcza specjalne wartości, które nigdy nie będą wynikały z kodowania danych treści. Te specjalne wartości mogą być wykorzystane nie tylko do oznaczania granic sektorów, ale również do korekcji błędów lub innych celów wtórnych.
Użyj drugiej warstwy kodowania, która zapewnia, że wartości znaczników pojawiają się tylko przy znacznikach. Jest to trochę jak kodowanie adresów URL, aby umożliwić „ukrywanie” znaków specjalnych w adresach URL, ale z dodatkowym ograniczeniem równoważnym ograniczeniu liczby znaków, które można dodać, więc kończy się to bardziej kodowaniem base64 .
Głowica czytająca porusza się po powierzchni, wykrywając zmiany biegunowości magnetycznej, czasy tych zmian są wykorzystywane do określenia odpowiedniej sekwencji wartości bitów (ewentualnie włączając pewne wyjątkowe wartości, które nie reprezentują przechowywanych danych), a ta sekwencja jest używana do określić, które sektory są odczytywane i zawartość tych sektorów. Po określeniu zawartości sektorów dane mogą być przechowywane w buforze półprzewodnikowym i / lub przechowywane w buforze RAM i / lub odesłane w celu spełnienia żądania.
źródło
Dane nie są zapisywane jako arbitralny strumień zer i jedynek. Jest napisany w sektorach. Każdy sektor ma ładunek danych użytkownika i nagłówek. Nagłówek zawiera kody korekcji błędów, a także specjalne pole synchronizacji, które identyfikuje początek sektora oraz numer sektora, dzięki czemu dysk może wiedzieć, kiedy znalazł początek sektora i który to sektor.
źródło
Psusi ma rację (dane na dysku mają strukturę , a różne części komputera używają różnych części tej struktury), ale tak naprawdę nie wchodzi w twoje pytanie.
Napęd tak naprawdę niczego nie „wie”. Ma elektronikę niskiego poziomu, która może odczytywać znaczniki na dysku (zwykle zapisywane w fabryce lub przez samą głowicę napędu), odczytywać bloki danych z dysku lub zapisywać bloki danych na dysku, lub powiedzieć, czy określone miejsce na dysku dysk jest uszkodzony lub uszkodzony albo powinien zostać przeniesiony w określone miejsce na dysku. To wszystko, co „wie”. Głowica czytająca nie decyduje się sama przenieść w inne miejsce, coś wyżej w maszynie każe jej ...
źródło
Oprócz innych odpowiedzi, dyski twarde z pewnością kiedyś (i nadal mogą) mieć jeden talerz („głowica” w kategoriach cylinder / głowica / sektor), który jest zarezerwowany dla danych kalibracyjnych / pozycjonujących, w ogóle nie używanych do przechowywania danych użytkownika .
źródło
Odpowiedź, której szukasz, składa się z dwóch części:
1) Kontroler sprzętowy
2) System plików
Tak jak powiedziałeś, na HDD (w przeciwieństwie do innych technologii, takich jak dyski SSD), rzeczywiste dane są zapisywane na okrągłych metalowych płytkach jako koncentryczne okrągłe pierścienie z wzorzystym polem magnetycznym. Ponad talerzami, które przechowują te dane, znajduje się głowica zapisująca, która porusza się w celu odczytu i zapisu danych, podobnie jak odtwarzacz płyt winylowych. Talerze, po których się porusza, są przymocowane do silnika elektrycznego, który steruje ich obrotem.
Kontroler sprzętowy działa jako interfejs między systemem operacyjnym a dyskiem twardym. Sterownik może odczytać pozycję głowicy zapisującej, a także obrót talerzy i korzysta z tych informacji, aby zdecydować, jak ustawić głowicę i talerze do odczytu i zapisu. Przetwarza żądania odczytu i zapisu z systemu operacyjnego na sygnały sterujące, które poruszają głowicą zapisującą i obracają talerze, a także konwertuje równoległe dane przychodzące z systemu operacyjnego do pojedynczej linii danych szeregowych. Dzieli również tę linię szeregową i decyduje, w jakiej fizycznej lokalizacji lub sektorze umieścić każdy kawałek i zapisuje te informacje w sposób określony przez system plików.
System plików to specyfikacja sposobu i miejsca przechowywania danych. System operacyjny komputera wie, jak interpretować ten system plików i wykorzystuje tę wiedzę, aby odpowiednio komunikować się ze sterownikiem sprzętowym, w tym przypadku rozkładając okrągłe pierścienie danych na użyteczne segmenty zwane sektorami i informując system plików, gdzie te sektory są fizycznie zlokalizowane. System plików nadaje każdemu sektorowi adres, który jest tylko unikalnym numerem, a ten adres jest tłumaczony przez kontroler sprzętowy na określony obrót talerza i pozycję głowicy czytającej, aby rozpocząć odczyt lub zapis.
Aby uzyskać więcej informacji, pomocne są następujące sekcje artykułów w Wikipedii:
Zobacz wprowadzenie i rozdział 3.1 „Zarządzanie przestrzenią” tutaj: https://en.wikipedia.org/wiki/File_system
Patrz sekcja 2.1 „Nagrywanie magnetyczne” tutaj: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording
źródło