HDD для начинающих
HDD, ПЗУ, НЖМД, жесткий диск, накопитель, "винчестер", "винт", "хард". Ни одно устройство персонального компьютера не имеет такого количества названий. Наверно потому, что мы, наделяя ответственностью за сохранность наших данных, лелеем его и любим. Ведь именно жесткому диску программист доверяет плоды своего многодневного труда, в его укромных уголках юный онанист хранит от родителей свою порноколлекцию, к нему пытаются получить доступ злобствующие хакеры. А так ли мы хорошо знаем его? Давайте разберемся.
Итак, "винчестер" представляет собой небольшую плоскую черную пластмассовую коробку с блестящей металлической крышкой. Внутри коробки есть несколько магнитных дисков насажанных на одну ось, набор считывающих/записывающих головок, привод этих головок и привод дисков, а так же набор микросхем управления и памяти. Вроде все, остальное мелочи. Кстати примечательно само название "винчестер". Где-то в 60-ые годы IBM выпустила по тем временам высокоскоростной накопитель. Он имел два диска один из которых был сменным. Оба диска были по 30 Mb. Номер разработки того диска: 30-30, что совпадало с обозначением нарезного оружия Winchester,
между прочим, довольно популярного в Америке. Вот и начали америкосы называть этот носитель "винчестером", а потом уж и весь мир. Затем название это прочно укоренилось за всеми жесткими дисками. Ну да ладно. На данный момент принцип работы накопителей фактически одинаков. Хотя надо заметить, что на рынке вскоре появятся диски, скроенные по новым
технологиям (о которых я расскажу в следующий раз). В накопителе устанавливается несколько дисков, которые разбиты на
дорожки и сектора. Однотипные, т. е. одинаково расположенные дорожки объединяются в цилиндр. Данные находятся с обоих сторон дисков, а считываются и записываются головками. Скорость вращения современных дисков довольно высокая - свыше 7000 об/мин. При нормальной работе "винта" головки не касаются дисков. Если такое дело случилось, то зачастую накопитель приходится выбрасывать. Также может случиться попадание пылинок в зазор между головкой и цилиндром. Результат - царапина и: опять таки дальнейшую
жизнь вполне вероятно "винт" проведет на помойке. Вообще надо заметить, что жесткие диски не любят сильной тряски и тем более ударов. Хотя производители год от года улучшают противоударную защиту, думаю, все же проверять ее не стоит. Ладно, не будем о грустном. О размерах и скоростях, при которых работает "винт" может дать представление пересчет некоторых величин. Если взять расстояние между головкой и диском за 1 дюйм, то все остальные значения надо будет умножить
на 200 000. Почему? Да потому, что 1 дюйм больше 5 микродюймов ровно в 200000 раз. Если кому не нравятся дюймы может сам пересчитать все в сантиметры. Итак, считаем: длина головки получится 400 м, высота - 100 м. Перемещаться она будет со скоростью 4760 км в секунду! Не слабо, да? К примеру, спутник, летящий на такой скорости по орбите Земли, совершит виток за 8 секунд!
Теперь о дорожках и секторах. Дело в том, что дорожка записи слишком велика, что бы использовать ее в качестве минимальной единицы
хранения данных. Поэтому придумали разбивать дорожки на сектора. Секторов может умещаться от 17 до 150, а то и более на одной дорожке. Их нумерация начинается с единицы, тогда как нумерация головок и цилиндров начинается с нуля. В начале каждого сектора записывается его заголовок (иногда еще говорят префикс, но мы умничать не будем). По этому заголовку определяется
начало и номер сектора. В конце сектора есть заключение (по-умному - суффикс), в котором содержится контрольная сумма, которая нужна для проверки целостности данных. Все это можно назвать служебной информацией. Данные же находятся аккурат между ними. Вся информация в заголовки записывается при форматировании. Но надо сказать, что это еще не все. Есть такая "фишка" как промежутки. Они есть как внутри секторов, так и между секторами и в них никакую полезную информацию записать нельзя. Кстати,
сектора располагаются не по порядку. Очередность их расположения одному богу известна, а точнее производителю. Зачем это сделали? Дело в том, что головка получает команду на считывание данных только из одного сектора. Затем следует команда для другого. Если бы сектора располагались один за другим, то диску пришлось сделать лишний оборот, чтобы подвести
следующий сектор под головку т. к. скорость вращения очень высокая и головка просто не успеет получить команду и найти то, что надо. А поскольку такие команды отдаются головкам в количестве