W przypadku pamięci mechanicznej działanie dysku niskiego poziomu seek()
powoduje, że głowice dysków twardych przemieszczają się w miejsce, dzięki czemu są gotowe do odczytu z danego obszaru dysku.
Dzięki pamięci półprzewodnikowej, takiej jak karty SD, dyski flash i dyski SSD, nie ma ruchomych części sprzętu, a jedynie sygnały elektryczne.
Zakładając, że nieulotna technologia pamięci RAM NAND jest podstawą sprzętu, jaką funkcję seek()
faktycznie wykonuje na poziomie sprzętowym takiego urządzenia?
Żeby było jasne, już wiem, że dzieje się tak:
Program przestrzeni użytkownika wywołuje
seek()
wywołanie systemowe lub odpowiednik specyficzny dla systemu operacyjnegoJądro interpretuje wywołanie systemowe i wysyła komunikat do kontrolera SATA w celu wyszukania
Kontroler SATA interpretuje polecenie i mówi podłączonemu urządzeniu dyskowemu, które jest w stanie stałym, aby szukał (a może jest wystarczająco inteligentny, aby rozpoznać, że jest w stanie stałym, a nawet nie mówi?)
Co ja nie wiem, jest urządzenie półprzewodnikowe robi ??? z poleceniem „szukać”.
Jeśli istnieją szczegóły, które zależą od systemu operacyjnego, załóż względnie standardową wersję GNU / Linux na komputery stacjonarne z jądrem w wersji 3.2.
Odpowiedzi:
jeśli masz na myśli Linuksa, szukaj nadal przesuwa się do przodu o wymaganą liczbę bajtów. Na przykład:
Zacznie kopiować zera 1024 bajty na początku dysku, nie ma znaczenia, czy sdb jest kartą SD, czy dyskiem SSD, z powodu drobnej rzeczy zwanej abstrakcją, rzeczywistą mechaniką tego zajmuje się na niższym poziomie.
Aktualizacja
Rozumiem, co teraz mówisz. Zgodnie z przykładem mojej karty SD pamięć flash używa czegoś zwanego stronami , a strony mają określony rozmiar. kiedy przychodzi wyszukiwanie, system operacyjny wysyła polecenie do karty SD / kontrolera karty, aby przejść do określonej strony do odczytu i zapisu.
źródło
lseek()
razie potrzeby możesz spojrzeć na wywołanie systemowe jako konkretny przykład. Wiem, że to wywołanie systemowe nie tylko szuka logiki, ale także powoduje ruch głowic HDD podczas pracy z dyskiem mechanicznym, więc co robi SSD?