Жесткий диск
Если вскрыть корпус жесткого диска и посмотреть, что там внутри, то наиболее заметной деталью будет стопка темных или зеркальных дисков, насаженных на одну ось и занимающих большую часть пространства внутри корпуса винчестера[17]. Именно они и являются хранилищем информации. В качестве материала для дисков обычно используется алюминий, реже - стекло или керамика. Диски покрыты слоем окиси хрома, которая, собственно, и обладает возможностью сохранять в себе магнитные метки, и жестко закреплены на оси, которая в своей нижней части является якорем плоского электродвигателя. Между каждыми двумя дисками есть некоторое расстояние.
Сбоку от стопки дисков находится блок головок, состоящий из расположенных один над другим держателей с головками, скрепленных в единое целое. Блок головок может поворачиваться, причем так, что держатели головок заходят в промежутки между дисками. Данные хранятся на обоих поверхностях каждого из дисков, поэтому вокруг каждого диска находится по две головки - сверху и снизу. В процессе работы стопка дисков вращается вокруг своей оси, поэтому блок головок в принципе может получить доступ к любому участку любого из дисков.
Поворотом блока головок управляет специальный электромагнитный двигатель, вмонтированный в его основание. Также внутри корпуса жесткого диска находится небольшая микросхема - усилитель сигналов, соединенная шлейфом из проводов с блоком головок. Магнитные диски, блок головок и микросхема заключены в герметичный корпус, заполненный обеспыленным воздухом. В целом содержимое корпуса напоминает проигрыватель грампластинок, отличающийся тем, что одновременно на ось насажены несколько дисков, для каждого из них с обоих его сторон имеется по звукоснимающей головке, и все головки для всех дисков связаны в единый блок. В выключенном состоянии блок головок повернут так, что головки находятся у оси стопки дисков, в так называемой "зоне парковки".
Снаружи герметичного корпуса располагаются различные микросхемы, управляющие жестким диском, в частности, микросхема с нестираемой служебной информацией, кэш диска - как бы его "оперативная память", куда помещаются передаваемые на диск данные перед тем, как стать записанными на винчестер и некоторые другие блоки.
Блок головок может перемещаться поперек стопки дисков с определенным шагом. При своем перемещении он ориентируется на специальные магнитные метки, нанесенные на диски при их изготовлении. Тот фрагмент поверхности диска, который доступен одной головке при неподвижном блоке и полном обороте стопки дисков, называется дорожкой, совокупность всех фрагментов поверхностей всех дисков, доступных при одном обороте стопки дисков и неподвижном блоке, именуется цилиндром. Количество цилиндров зависит от радиуса дисков и возможного шага перемещения блока головок.
Каждая дорожка с помощью магнитных меток еще во время изготовления винчестера[18]
разбивается на секторы - непосредственные единицы хранения информации на жестком диске. Согласно существующим стандартам, в каждом секторе может быть записано 512 байт информации, метка начала сектора и число, рассчитываемое на основе информации в секторе для отслеживания возможных ее изменений (так называемая "контрольная сумма сектора"). Начало каждой дорожки и сектора также особо помечается, причем начала всех дорожек, как нетрудно понять, расположены в плоскости одного радиуса стопки дисков.
Кроме того, на поверхности дисков, обычно между секторами, размещаются служебные магнитные метки, использующиеся для определения и стабилизации скорости вращения стопки дисков, а также более быстрого поиска нужных секторов и дорожек.
Управляет работой жесткого диска особая микросхема, именуемая контроллером винчестера.
Для чтения или записи какого-либо сектора контроллеру следует указать номер цилиндра, номер дорожки и номер сектора на этой дорожке. (Номера дорожек еще называют "номерами головок" - так как на каждую дорожку, входящую в цилиндр, приходится как раз одна головка.) Получив эту информацию, контроллер прикажет блоку головок расположиться над дорожками цилиндра, а затем начнет работать с той головкой, которая находится над нужной дорожкой, приказав ей дождаться того момента, когда вследствие вращения стопки дисков под ней пройдет нужный сектор, а затем считать из него информацию или, наоборот, записать туда данные.
Несмотря на то, что в каждый отдельный момент контроллер винчестера может работать максимум лишь с одним сектором на одном из дисков стопки, блок головок перемещается целиком - со всеми головками. Это может показаться нерациональным, но иначе конструкция винчестера очень бы усложнилась.
После окончания сборки жесткого диска на заводе проводится его тестирование с помощью специальной аппаратуры. К сожалению, на существующем уровне развития технологий добиться идеально качественной поверхности магнитных дисков невозможно, поэтому на них обязательно будут дефектные участки - места, куда невозможно полноценно осуществить запись данных. Чтобы этот факт не приводил к невозможностью работать со всем жестким диском, во время тестирования составляется так называемая "таблица переназначения дефектных секторов". При этом контроллер жесткого диска программируется так, что при поступлении обращения операционной системы к дефектному сектору в действительности работа осуществляется с резервными сектором, находящимся в специальной области диска (располагающейся, в зависимости от модели винчестера, на каждой дорожке или, чаще, в отдельных цилиндрах). Данные о соответствии дефектных секторов диска резервным также находятся в специально выделенной области и загружаются в память контроллера жесткого диска при начале работы винчестера.
При запуске компьютера и подаче напряжения на жесткий диск после краткого самотестирования микросхем винчестера начинает работать электродвигатель и раскручивает стопку дисков. Когда скорость вращения двигателя достигает определенной величины, за счет давления воздуха, увлекаемого дисками при вращении, держатели головок чуть-чуть приподнимают их над дисками, и под ними возникает воздушная подушка. Головки получают возможность перемещаться поперек стопки дисков, не касаясь их поверхности. Как только это происходит, контроллер винчестера дает им команду считать информацию стабилизации скорости вращения, всегда находящуюся в одних и тех же местах, а также таблицу переназначения дефектных секторов.
После этого производится самотестирование жесткого диска путем считывания определенной последовательности дорожек, и, если все прошло нормально, сообщение BIOS'у об успешном запуске винчестера.
BIOS, или базовая система ввода-вывода: Base Input-Output System, - это программа, записанная в микрочипе на материнской плате. Она содержит в себе функции управления ресурсами материнской платы и некоторых периферийных устройств, а также программу работы с жестким диском - считывания и записи данных, перемещения головок. Операционная система MS-DOS использует именно BIOS для работы с ресурсами компьютера - когда MS-DOS посылает команду считать данные с винчестера, то выполняет ее BIOS. Системы Windows9x/Me, Windows NT/2000/XP, Linux используют свои программы-драйвера для работы с винчестерами.
BIOS'у компьютера и операционной системе не обязательно поставляются точные данные о физическом строении ("физической геометрии") жесткого диска - о количестве цилиндров, головок, секторов. Электроника винчестера способна "на лету" пересчитывать данные "физической геометрии" в так называемую "логическую геометрию" диска и уже именно ее параметры сообщать BIOS'у. Например, старые модели BIOS не могут работать больше, чем с 1024 цилиндрами, 256 дорожками в цилиндре и 63 секторами на дорожке. Это связано с возможностями его так называемого "прерывания 13", способа работы с жестким диском, изначально в BIOS запрограммированного и используемого MS-DOS, а также операционными системами Windows во время загрузки. Поскольку развитие жестких дисков шло именно по пути увеличения количества цилиндров (в самом деле, представить себе жесткий диск с 256 головками одна над другой сложно), то для того, чтобы с диском можно было работать через BIOS, контроллер винчестера представляет BIOS'у, скажем, диск с 20480 цилиндрами и 4 дорожками как диск из 1024 цилиндров и 80 дорожек.
К сожалению, даже при использовании конвертации "физической геометрии" диска в "логическую" максимальный обьем винчестера, с которым можно работать средствами BIOS, составляет 1024*256*63*512= 8455716864 байт = около 8 гигабайт.
С дисками большего обьема работать посредством 13-го прерывания BIOS невозможно[19]. Поэтому на новых материнских платах BIOS особым образом усовершенствован ("прерывание 13" сделано "расширенным") , и это ограничение емкости дисков в нем отсутствует.
Современные операционные системы при своей работе не используют 13-е прерывание BIOS, а поэтому могут работать с дисками весьма большого обьема. Но каждая операционная система должна загрузиться, а в процессе загрузки ее файлы могут быть считаны с диска только средствами BIOS'а. Поэтому в случае использования больших дисков со старым BIOS'ом с загрузкой операционной системы могут быть сложности.
Кроме того, на современных жестких дисках применяется особая форма разделения дорожек на секторы, при которой внешние дорожки, протяженность которых больше, чем внутренних, разбиваются на большее количество секторов. При этом для операционной системы диск все равно имеет равное количество секторов на каждой дорожке, а преобразование запросов операционной системы в команды блоку головок производится в соответствии со специальными таблицами, записанными в микросхемах жесткого диска.
В жестких дисках последних 7-8 лет выпуска имеется так называемая система S.M.A.R.T. (то есть "Self Monitoring Analysis and Reporting Technology") - особые компоненты устройства, предназначение которых заключается в отслеживании возможных неисправностей и устранении их по мере возникновения. Так, в то время как в старых дисках таблица переназначения дефектных секторов формировалась на заводе, выпускающем винчестеры, а впоследствии уже не могла изменяться, то в новых винчестерах система S.M.A.R.T. во время работы диска отслеживает качество записи и чтения с каждого сектора и при его снижении заранее переназначает сектор на резервный, не дожидаясь момента отказа. Изначально же область резервных секторов делается больше, чем нужно в момент изготовления диска, - с расчетом на будущее.
Читая старые статьи и воспоминания компьютерщиков, вы наверняка обращали внимание на описания ситуации, когда жесткий диск покрывается сбойными секторами, и наверняка поражались, что, к счастью, вас эта чаша минула - ваш недавно выпущенный диск абсолютно исправен и не имеет ни одного поврежденного сектора.
Но это так из-за действия системы S.M.A.R.T. - она просто даже не дает операционной системе заметить, что тот или иной участок диска испортился, моментально переназначая на него резервные секторы. И только тогда, когда вся резервная область будет исчерпана, на вашем жестком диске появятся видимые из операционной системы сбойные участки.
Помимо слежения за качеством поверхности жесткого диска, S.M.A.R.T. также отслеживает изменения параметров работы механики винчестера, таких, как время достижения диском расчетной скорости вращения, время доступа к различным зонам диска и в случае, когда эти параметры выходят за допустимые пределы, сообщает операционной системе, что диск собирается испортиться. Если операционная система поймет сообщения S.M.A.R.T., то пользователю будет сообщено о вскоре предстоящей необходимости замены диска.
Для просмотра параметров S.M,A.R.T. можно воспользоваться программным комплексом HDDUtility Дмитрия Пашкова (адрес для загрузки - http://www.ibaranov.ru/hddutil.rar, программа работает только в среде Windows9x). Кроме того, если ваш диск выпущен фирмой Quantium после 1997 года, то с помощью HDDUtility вы сможете просмотреть его дефект-лист непосредственно и узнать, какие конкретно сектора являются переназначенными. Если же у вас нет HDDUtility или воспользоваться вы им вы не можете (например, по причине работы в другой операционной системе), то используйте любой программный пакет для тестирования компонентов компьютера, имеющий функцию прорисовки графика скорости последовательного чтения секторов диска (например, ZiffDavis WinBench 99). Моменты резкого падения скорости чтения соответствуют переназначенным секторам, так как при тестировании такого сектора тратится время на перемещение магнитной головки в резервную область и обратно к той дорожке, на которой располагался переназначенный сектор.
Если при заводском тестировании на одной поверхности магнитной пластины будет найдено столько плохих секторов, что весь дефект-лист окажется заполненным, а другая поверхность будет в порядке, то ту магнитную головку, которая должна работать с дефектной поверхностью, просто отключают.
Вас, кстати, никогда не удивляло наличие в магазинах дисков, скажем, на 10 и 30 гигабайт при заявленной емкости одной пластины в этих моделях в 20 гигабайт? Величины-то 20-ти не кратны. Так вот в таких дисках одна из сторон их магнитных пластин имеет так много дефектов, что просто отключена и диск промаркирован на меньшую емкость. Скажем в 10-гигабайтном винчестере стоит 20-гигабайтная пластина, в которой работает только одна сторона.
На свободное место в резервной зоне поврежденные сектора переназначаются лишь на некоторых моделях жестких дисков. На остальных же переназначение секторов может идти лишь на резервные, находящиеся лишь на той же дорожке. Или на том же секторальном блоке. Или на том же цилиндре. Использование же для переназначения секторов резервной области другой дорожки (блока, цилиндра) невозможно. Делается это для некоего упрощения работы системы переназначения секторов, подразумевается, что повреждения поверхности про исходят в относительно случайном порядке. При длительной работе жесткого диска примерно так и происходит, однако, скажем, при ударе по диску или при его падении может происходить повреждение сразу множества секторов, расположенных в одном месте. Тогда, если эти поврежденные секторы находились, например, на одной дорожке, резервная область этой дорожки окажется переполненной переназначенными секторами, и места в ней для всех не хватит. Многие bad-сектора останутся непереназначенными, и при проверке диска кластеры, их содержащие, будут помечены как поврежденные. Однако резервные области на остальных дорожках останутся незаполненными - те-то дорожки повреждены не были, и общий процент переназначенных секторов будет не таким уж и высоким. Поэтому получится ситуация, при которой согласно сообщениям S.M.A.R.T. процент заполнения дефект-листа низкий, в bad-блоки на диске имеются. Однако моделей жестких дисков, использующих именно такой способ работы с переназначенными секторами, не так и много.
Шумовой эффект "хрюканья", возникающий при работе с жестким диском, обусловлен перемещением головок взад-вперед по диску.
Процесс равномерного считывания содержимого диска практически бесшумен. Вы можете сами в этом убедиться, сравнив шумовые эффекты от работы программы ScanDisk в режиме проверки поверхности диска, при которой блок головок медленно и равномерно перемещается вдоль диска, и программы Defrag, при работе которой блок головок постоянно двигается взад-вперед.
Однако даже при работе ScanDisk в режиме "полной" проверки диск все равно время от времени "всхрюкивает". Это происходит как раз в те моменты, когда проверка доходит до дефектного сектора, и контроллер винчестера заставляет головки переместиться в зону, где содержатся резервные секторы. Из этого следует простой практический вывод: если вы желаете узнать, насколько качественно сделана поверхность вашего жесткого диска без каких-либо специальных программ проверки S.M.A.R.T. или тестирования скорости считывания, то запустите ScanDisk в режиме полной проверки, дождитесь начала тестирования поверхности и прислушайтесь к звукам, доносящимся из корпуса компьютера. Каждое "хрюканье" будет означать наличие одного дефектного сектора. Естественно, в период проверки не следует допускать какую-нибудь еще работу с жестким диском со стороны операционной системы или запущенных программ, включая планировщики заданий и хранитель экрана.
"Всхрюкивание" жесткого диска при начале загрузки компьютера также связано с перемещением головок по определенной последовательности дорожек во время самотестирования.
Жесткий диск в своем "натуральном" виде, полученном на заводе, непригоден для размещения информации. Чтобы на винчестере можно было хранить данные, необходимо создать на нем файловую систему.