Разбираем винчестеры дальше (ч. 4, 5)

 | 18.50

Мой Компьютер, №12 (516), 11.08.2008

Часть 4.

Головки чтения/записи

Рис. 1

Прежде чем рассмотреть устройство головки чтения/записи, давайте вспомним уроки физики, а именно — то, как работает электромагнит. При подаче тока в районе зазора катушки возникает магнитное поле, которое в свою очередь способно воздействовать на другие материалы (намагничивать). Но в современных накопителях процесс записи и процесс чтения несколько отличаются, поскольку процесс записи остался электромагнитным, а процесс чтения резистивным. При записи на катушку головки подается переменный ток (из-за этого некоторые люди ошибочно считают, что жесткий диск работает от переменного тока) и поле из зазора магнитной головки воздействует на ферромагнетик пластин, изменяя направление вектора намагниченности доменов в зависимости от величины сигнала. Сложно, понимаю, а как вы хотели? При чтении в старых головках накопителей под воздействием магнитного поля пластин в зазоре катушки изменялся магнитный поток, что в свою очередь приводило к изменению электрического сигнала. Это называется эффектом электромагнитной индукции, и его можно встретить в кассетных и в бобинных магнитофонах. Но вскоре, когда плотность записи увеличилась, электромагнитная головка перестала справляться с задачей чтения (писать она по-прежнему могла). Тогда был придуман новый метод считывания информации. Чтение производится теперь не электромагнитными головками, а магниторезистивными (MR — Magneto Resistive), в которых электрические импульсы появляются из-за изменения сопротивления в самих головках, под воздействием намагниченной поверхности пластин. В современных головках чтения/записи один блок предназначен для записи, а другой блок предназначен для чтения, хотя внешне головка выглядит как моноблок.

Рис. 2

Головка крепится к самому концу коромысла БМГ (актуатору), и к ней по разным сторонам подходят провода (рис. 1). Головки покоятся на очень тонкой латунной пластине, которая гнется буквально от малейшего прикосновения (рис. 2). А самые первые головки чтения/записи были ферритовыми, их чувствительность была очень низка, и они почти ползали по поверхности, от чего быстро выходили из строя. После ферритовых головок чтением и записью занимались тонкопленочные головки, но с увеличением плотности записи уменьшалось расстояние между минимальными участками магнитной поверхности и возникал эффект интерференции. При возникновении интерференции головка из-за наводок соседних участков не может правильно считать данные, потому что они обрастают шумом. С шумом борется мощная система шумоподавления и коррекции ошибок накопителя (предусилитель сигнала является частью этой системы), но все равно проблемы это не решает. В очередной раз, возвращаясь к истории, отмечу, что раньше, когда сервосистема накопителей только зарождалась, одна сторона пластины предназначалась для сервосистемы, а другая для записи данных. Аналогично одна головка читала сервометки, а другая читала и писала данные пользователя. Сегодня при каждом повышении плотности записи усложняются и головки чтения/записи, их чувствительность повышается, поскольку минимальные частицы магнитной поверхности (домены) становятся все меньше и меньше.

Рис. 3

Рис. 4

Чтобы сделать рассказ о головках чтения/записи более полным, добавлю, что помимо усовершенствования головок несколько видоизменился и способ общения магнитной головки с поверхностью. Прежний метод продольной записи стал узким местом в увеличении плотности записи — и производители, в корне переработав магнитные головки, изменили старый метод (рис. 3) на перпендикулярный PMR (рис. 4), при котором домены намагничиваются в другом направлении, что делает размещение информации более компактным. Чтобы было понятнее, скажу так: раньше North и West полярности располагались в ряд, а сейчас один над другим. Накопители с очень высокой плотностью размещения информации переведены на новые головки, которые позволяют обеспечивать перпендикулярный метод записи.

Дисковый кэш

Рис. 5

Каждый жесткий диск несет на своем борту некоторый объем SDR SDRAM-памяти, нужный для того, чтобы немного сбалансировать разницу в производительности медленной механики и быстрой электроники. Выглядит этот кэш как самая обычная микросхема памяти, из надписей которой можно узнать ее характеристики (рис. 5). Представьте, что накопителю требуется отыскать и передать в ОЗУ 100 килобайт данных. На поворот дисков и поиск нужного трека и сектора уйдет 12-20 миллисекунд, в зависимости от модели накопителя, а вот считанные данные доберутся от контроллера интерфейса к оперативной памяти за одну миллисекунду, а то и быстрее. Для одного файла это нормально, а если таких порций много, то можно только представить, как замедлится работа накопителя, лишенного буфера. Буферы современных винчестеров имеют размеры от двух мегабайт до тридцати двух. Раньше существовали модели с буферами от 128 килобайт и до 512, но тогда и плотность записи была не такой высокой, да и обмен данными по системным шинам не блистал скоростью. Но нельзя считать, что, установив в накопитель побольше памяти, можно добиться высокой производительности, ведь буфер обладает свойствами предсказания считывания данных, а здесь без умной логики не обойтись. Нередко случается так, что одна модель накопителя обладает более продуманной логикой предсказания и считывания информации в буфер, а другой накопитель слегка тормозит при работе с мелкими файлами, потому что буфер накопителя показывает себя только при работе с множеством мелких файлов, как при их записи, так и во время чтения. Для примера можете попробовать прокрутить список в директории, насчитывающей огромное количество файлов (подойдет кэш «Оперы» или IE). Так, накопитель с 4-х мегабайтным буфером заставит список дергаться во время плавного вращения колесика мышки, а накопитель с буфером 16 мегабайт покажет гораздо более плавную прокрутку. Но во время операций чтения и записи больших файлов, которые не помещаются в буфер, его эффективность уходит на задний план, уступая скорости чтения/записи с пластин. Во время потоковых операций чтения/записи бутылочное горлышко медленной механики превращается в широкую трубу, которая по диаметру не сильно отличается от пропускной способности интерфейса. Главное, чтобы не было фрагментации данных на файловой системе, которая заставляет БМГ отвлекаться по сторонам.

В процессе работы данные дискового кэша разбиваются на сегменты, и их выборка происходит по специальному алгоритму, который записан в Firmware накопителя. Именно поэтому некоторые накопители после перепрошивки начинают работать гораздо эффективнее. А вот если кэш в момент работы спровоцирует фрагментацию данных, то скорость дисковой подсистемы может сильно снизиться. Помимо этого, на электронику накопителя пойдет сильная нагрузка, что в свою очередь заставит микропроцессор винчестера сильно греться. Еще одной бедой кэшей можно считать утерю части файла во время резкого пропадания электричества — в таком случае часть файла запишется, а другая пропадет. Но с этим можно бороться на уровне файловой системы. Журналируемые ФС наподобие NTFS, Ext3 или ReiserFS не поставят специальный маркер, покуда транзакция не будет считаться завершенной. Современные накопители могут быть оснащены системой Flush Write Cache, которая при резком исчезновении тока, записывает содержимое буфера в служебную зону HDD, а после возобновления питания дозаписывает файл.

Термальные и акустические характеристики

Рис. 6

Любое устройство, которое потребляет энергию, какую-то ее часть обязательно рассеивает в атмосферу. Ну, может, японцы и придумали что-то с КПД 100%, но я пока об этом ничего не слышал (погоди, не принижай достоинства отечественных умельцев, Витренко ведь рассказывала про вечные двигатели для каждого украинца, а у них должно быть по определению более 100% КПД! — Прим. политически подкованного ред.). Накопители на жестких магнитных дисках всегда грелись, и не только из-за того, что часть энергии в его микросхемах не идет на благое дело. Накопитель сам по себе имеет большое количество трущихся деталей, взять хотя бы шпиндельный двигатель, подшипник которого нагревается в процессе работы, и даже гидродинамический тип подшипника имеет силу трения, пусть и не высокую. Но самой горячей точкой накопителя считается позиционер, а конкретно — тот магнит, в котором гуляет соленоидная катушка. Ведь в процессе работы накопителя, даже когда к диску нет запросов от ОС, головки с бешеной скоростью носятся по поверхности, выполняя то служебные команды HDD, то низкоуровневые запросы операционной системы. А вот в момент произвольного доступа к данным, которого можно достигнуть как в реальных приложениях, так и в специальных утилитах, толстый магнит (статор) разогревается до огромной температуры. Посмотрев тепловизором на жесткий диск, можно увидеть карту теплового дрейфа. Район статора будет самым горячим (рис. 6). В паспорте накопителя всегда указывается диапазон рабочих температур, и почти всегда он укладывается в рамки 0°С — +70°С, но расслабляться не стоит, нормальной рабочей температурой считается 25-30 градусов выше нуля. Именно при такой температуре замеряются математические расчеты работы на отказ всех накопителей (а с повышением температуры у любой механики, как мы знаем, износ растёт почти по экспоненте. — Прим. ред.)

Рис. 7

Помимо быстрого износа деталей самого HDD вместе с ним будут страдать и остальные компоненты системы, поэтому для принудительного охлаждения накопителей на корпус HDD принято устанавливать кулеры, построенные на базе одного или двух тихих вентиляторов (рис. 7). Часто от людей можно услышать вопрос, касающийся того, почему один накопитель греется как мартеновская печь, а другой холоден, как айсберг. Ответ так же прост, как и вопрос. Чем больше пластин имеет накопитель, чем выше обороты шпинделя, и чем быстрее работает позиционер (как это регулируется, мы поговорим чуть ниже), тем сильнее происходит нагрев всего накопителя в целом. Опять позволю себе вспомнить четверку терабайтных накопителей, где самым горячим оказался пятипластинный Hitachi T7K1000 с частотой вращения шпинделя 7200 rpm, а вот трехпластинный Samsung F1 и низкооборотистый Western Digital оказались наиболее холодными. К тому же, WD оказался самым тихим.

Если вы уже попытались замоделировать максимально возможную нагрузку на соленоидную катушку, то должны были заметить, что при этом накопитель стректотал головками, а может быть, даже и гремел. Помимо этого, при старте некоторые модели накопителей свистят, как несмазанный подшипник на колесе, а некоторые продолжают это делать даже после того, как пластины выйдут на рабочую скорость вращения. Причина шумности кроется в том, что во время работы головок они создают колебания воздуха, которые и выходят наружу сквозь толстые стенки корпуса накопителя. Двигатель, работающий на подшипниках качения, шумит гораздо сильнее своих гидродинамических братьев, а вибрация накопителя передается на стенки корпуса ПК, что лишь усиливает неприятный звук. Бороться с шумом головок можно программно, а вот с шумной механикой накопителя не поборешься, единственный выход — это повестить накопитель на резиновых растяжках (как это делать, писалось в одном из номеров МК за 2005 год). Шум накопителей измеряется в дБ (децибелах), его можно посмотреть в паспорте, обычно там указывают максимальный шум при поиске и максимальный шум во время простоя (когда мотор работает, но БМГ не обращается к данным). На сегодняшний день накопитель можно считать самым громким устройством в системе современного ПК, несмотря на то, что в паспорте большинства из них заявлены параметры 5-10 дБ во время «холостого хода» и 25-35 дБ во время поиска (ну, боксовые кулеры Intel и СО, установленные на новые Radeon HD 4850, позволяют легко спорить с этим утверждением, хотя, конечно, и там и тут можно использовать менее шумные варианты, а винт такому моддингу не поддаётся. — Прим. занудного ред.).

Логика накопителя и firmware

Первые жесткие диски, которые устанавливались в персональные компьютеры, не имели на своем корпусе практически никакой электроники, все данные передавались на внешние контроллеры, и уже там преобразовывались в понятный накопителю вид. Сегодня данные из контроллера жесткого диска поступают в оперативную память уже в понятном для контроллера виде. Как я уже говорил, от логики накопителя, которая выполнена на небольшой плате, зависит вся производительность винчестера, и неудивительно, когда схожие по характеристикам накопители работают с разной производительностью. Логика играет огромнейшую роль не только в преобразовании данных из низкоуровневых импульсов в удобоваримый вид, но и при работе кэша, который в одном накопителе может быть эффективным, а в другом — снижать производительность HDD на определенных задачах.

Рис. 8

К логике накопителя также относятся и фирменные примочки, вроде системы шумопонижения при поиске (у Samsung это Silent Seek) и еще множества полезных вещей. Но у каждого жесткого диска присутствует ряд неотъемлемых атрибутов, которые стандартизированы. Одним из таких стандартов считается система самотестирования накопителя SMART (Self-monitoring Analysis and Reporting Technologies), которая способна предсказать скорую кончину накопителя, а также раскрыть тайну остальных параметров, предостерегающих пользователя от потери данных. Данные SMART можно прочитать специальными утилитами вроде знаменитого HD-Tune или универсального Everest. Каждый пункт этой системы отвечает за свои параметры. Так, например, параметр StartStop Count показывает, сколько раз был запущен шпиндельный двигатель, Reallocated Sector Count подскажет, сколько секторов были замещены из резервной области. Но чтобы легче было понять значение каждого пункта, я советую воспользоваться русскоязычной утилитой CrystalDiskInfo (рис. 8).

Рис. 9

Помимо данных SMART каждый накопитель имеет паспорт, в котором заявлена поддержка тех или иных технологий (рис. 9). Как видно из рисунка, галочками отмечены те технологии, которые поддерживаются накопителем, и галочек нет на пунктах, которые недоступны накопителю, а точнее — его логике. Так как все эти пункты вызывают неподдельный интерес у пользователей, считаю свои долгом прокомментировать каждый из них:

  • SMART — SMART-технология, но ее поддерживают практически все накопители выше стандарта ATA-2;
  • 48 bit Addresses — 48-ми битная адресация контроллера;
  • Read Look-Ahead — предвыборка чтения. Это и есть то самое предсказание чтения, которое выполняет накопитель в процессе обращения пользователя к данным, и чем эффективнее работает эта система, тем приятнее работать с большим количеством мелких файлов;
  • Write Cache — кэширование данных;
  • Host Protected Area (HPA) — поддержка технологии, способной изменить размер накопителя, «отрезав» от конца адресного пространства определенную часть;
  • Device Configuration Overlay — это, собственно говоря, «умение» винта регулировать такие параметры, как HPA, AAM и так далее;
  • Firmware Upgradeable — возможность обновления прошивки;
  • Automatic Acoustic Management (AAM) — возможность регулировки скорости перемещения БМГ, что делает работу накопителя тише, но приводит к увеличению задержек;
  • Advanced Power Management — то же, что и Power Management и Interface Power Managment, накопители, знающие об этом параметре, более экономично расходуют энергию, но для настольных систем эта фича не столь актуальна;
  • Power-Up in Standby — умение накопителя выходить из режима ожидания, также более характерно для ноутбучных накопителей;
  • Security Mode — возможность накопителя работать с мастер-паролем и юзер-паролем жесткого диска, также этот параметр может отражать умение портативного винчестера шифровать данные;
  • Native Command Queuing (NCQ) — этот параметр позволяет SATA-контроллерам строить команды запросов таким образом, как это происходит в SCSI-накопителях. NCQ порядком повышает производительность дисковой подсистемы, но в полной мере данная технология поддерживается только контроллерами SATA II.

Некоторые из этих параметров можно регулировать специализированным софтом, у Hitachi это загрузочная однозадачная среда Hitachi Future Tool, другие производители вообще исключают вмешательство пользователей в свои продукты (и спят при этом спокойней). О процессе прошивки накопителей я рассказывать не стану, этот процесс очень ответственен, но весьма полезен; может быть, я посвящу ему отдельную статью. Если вы заинтересовались, пишите мне на мыло.

Мой Компьютер, №13 (517), 18.08.2008

Часть 5.

Кодирование информации на магнитных пластинах

Первая система кодирования информации для устройств хранения данных с магнитным покрытием (дискеты и HDD) называлась FM — Frequency Modulation (частотная модуляция). В этой системе единица кодировалась двумя последовательными сменами полярности, а ноль — одной, которая оставалась неизменной. Сразу вспоминаем рисунок продольной и перпендикулярной записи — именно о полярности доменов идет речь. После каждого закодированного бита информации происходила смена полярности. В сравнении с другими методами кодирования информации FM требовал непростительно много места, потому что каждый бит информации нуждался в некотором количестве данных для синхронизации. Такой метод использовался в самых первых дискетах и HDD, но вскоре ему на смену пришел новый, более продвинутый метод кодирования информации. Этот метод назывался MFM — Modified Frequency Modulation, и по отношению к FM он позволял закодировать ровно вдвое больше информации на одном участке магнитной поверхности, поскольку в этом методе были уменьшены магнитные переходы полярности для используемых синхронизаций.

Конечно же, при переходе на новую систему кодирования появилась необходимость усложнить электронику накопителя, но это были небольшие затраты по сравнению с переходом на новые магнитные головки и заменой магнитного покрытия. Привычная нам дискетка не продолжила эволюцию, и у нее метод кодирования информации так и остался MFM — который, к слову сказать, обратно совместим с прежним стандартом FM. Но вот винчестеры не могли стоять на месте, и старый стандарт в очередной раз сменился новым.

RLL — Run Length Limited (кодирование с ограничением длины поля записи). Назвать этот стандарт кодирования просто методом язык не повернется, это целая цепочка изменений в размещении информации на магнитном покрытии. Данный метод кодирования оперирует группами битов вместо операций над одним-единственным, хоть и с измененной системой переходов полярности. RLL-кодирование позволило еще больше повысить плотность записи на магнитной поверхности без внесения изменений в механику накопителя, изменялась только логика. На той же площади магнитного покрытия стало возможным записать в два раза больше информации, нежели при MFM-кодировании.

Развитие систем кодирования информации продолжало идти бурными темпами, и на свет появился новый стандарт: PRML — Partial Response Maximum Likelihood (частичный ответ, максимальное соответствие). Если сказать простыми словами, то в основе этого метода лежало обычное предсказание, то есть головки считывали блок информации, а контроллер на основе полученных данных при помощи специальной таблицы достраивал логическую цепочку. К такому кодированию прибегли по той причине, что увеличенная плотность записи механическим путем привела к эффекту интерференции, порождающему много шума, с которым старые методы чтения уже не справлялись. Этот метод в корне отличался от предыдущих, и уже повышал плотность записи на 30-40% по отношению к RLL. Далее метод PRML был доработан, и на свет появился EPRML, который с успехом используется в современных накопителях. Но, конечно же, каждый производитель вносит в него некоторые коррективы, наиболее подходящие для его продукции.

Логическое размещение информации

Рис. 1

Жесткий диск — это настолько сложное устройство, что в нем информация кодируется на нескольких уровнях: на физическом (электрическом) и на нескольких программных (логических). Самым низким уровнем считается намагничивание доменов, но домены кодируют очень маленькие участки информации. Более высокоуровневая разметка для хранения пользовательской информации становится доступна после процедуры низкоуровневого форматирования, когда на магнитной поверхности появляются секторы. Сектор считается минимальным участком для хранения пользовательских данных, он состоит из нескольких полей, в которых помимо самих данных размещаются различные служебные данные в виде заголовков, флагов и кодов коррекции ошибок. Секторы, в свою очередь, располагаются друг за другом на треках. Треки выглядят в виде замкнутых колец (концентрических); это совершенно не та спиралевидная дорожка, которая применяется в CD-ROM. Треки располагаются друг над другом, как в пределах одной пластины, так и в пределах всех пластин, нанизанных на шпиндель. А это, в свою очередь, образует очередной логический уровень накопителя, называемый цилиндром (рис. 1). Чтобы не расходовать попусту бумагу, забегу наперед и скажу, что в свое время количество секторов на внешних треках и на внутренних было равным, но чуть позже, для более рационального расходования пространства, на внешние треки стали размещать больше секторов. Эта система заставила разработчиков капитально переработать логику накопителя, но овчинка стоила выделки, благодаря этому накопитель стал вмещать больше информации. И на внешних треках, где центробежная сила намного выше, скорость чтения и записи выросла на порядок. До 2005 года один сектор накопителя был способен вмещать 512 байт данных, но теперь появились модели накопителей, где размер сектора вырос до 2048 байт.

Адресация к секторам в первых накопителях проходила по схеме CHS, что означает Cylinder Head Sector, еще ее называют Normal и Large. В этих названиях кроются некоторые видоизменения системы адресации, что для нас не так важно. И, что обиднее всего, при проектировании первых версий BIOS под описание адресации к жесткому диску отвели слишком мало места, и в процессе неоднократных попыток его усовершенствовать смогли добиться максимальной адресации 8.4 гигабайта. При этом пришлось на логическом уровне увеличить количество головок до 256 (до этого BIOS мог обращаться только к 1024 цилиндрам, 64 секторам и 16 головкам, что составляло 512 мегабайт). После адресации CHS появилась новая адресация LBA, которая и позволила обращаться к 8.4 гигабайтам данных на магнитной поверхности, больше BIOS увидеть был неспособен, и дальнейшее управление дисковым пространством пришлось взять на себя операционной системе, которая имеет для этого специальный драйвер. Проще говоря, если вы создадите загрузочный раздел за пределами 8.4 гигабайта, BIOS компьютера не сможет получить доступ к MBR и Partition Table.

LBA переводится как Logical Block Addressing, и в BIOS она четко ограничена 1024 цилиндрами и 256 головками, а вот когда говорят о контроллерах, то там уже LBA имеет цифровые индексы 28 и 48, что никакого отношения к BIOS не имеет. Режим LBA-28 способен разрешить контроллеру и драйверу операционной системы адресацию к пространству 128 гигабайт, и когда появились первые накопители, чей объем превысил 120 гигабайт, инженерам вновь пришлось ломать себе головы. Вычислить этот предел несложно, существует специальная формула, по которой нужно 2 возвести в 28 степень, затем полученное число умножить на 512 (это у нас объем сектора в байтах), и в результате мы получаем максимальный адрес, к которому может обратиться контроллер или операционная система. Если делить получившиеся байты не на 1024, а на 1000, то в итоге получается 137.4 гигабайта, учтите это. Точно по такой же схеме можно вычислить адресное пространство стандарта LBA-48, который позволил увеличить адресуемое пространство до 128 экзабайт. Здесь иногда возникает путаница: если ваша ОС не имеет драйвера LBA-48, то какие бы ни были контроллеры, вы не увидите на жестком диске больше 128 гигабайт, и наоборот, если контроллеры вашей материнской платы не знают о том, что такое LBA-48, большие жесткие диски без специальных ухищрений подружить с материнской платой не получится.

Интерфейсы

Об интерфейсах можно написать целую книгу, информации огромное количество, поэтому я постараюсь охватить самые важные, на мой взгляд, моменты. Под интерфейсом я здесь буду подразумевать не режимы работы контроллеров (PIO Mode; DMA Single Word, Multi Word и Ultra), а физические интерфейсы, по которым происходит передача данных между накопителем и материнской платой.

Вообще, интерфейсов передачи данных между накопителем и материнской платой существует великое множество, а сколько уж существует стандартов — голова может закружиться. Но самыми главными можно считать всего лишь три, а именно: PATA, SATA и SCSI. Экзотику вроде SAS, Fiber Channel или миниатюрного ZIF можно исключить из рассмотрения, поскольку первые два применяются в дорогущих серверах, а последний в микродрайвах (его имя расшифровывается как «минимальное усилие при подключении»).

Первым интерфейсом HDD, применяющимся в ПК, стал Parallel ATA. Или, как его принято называть в народе, IDE. Последнее название несколько некорректно, поскольку IDE — это электроника, интегрированная в устройство, а таковой можно считать даже микросхему по управлению электрическим чайником. Просто первые накопители, в которые интегрировали контроллеры, вызвали бурю эмоций, и отсюда посыпались неправдоподобные названия. В самых первых компьютерах вся логика находилась на внешних MFM- и RLE-контроллерах, а плата электроники самого накопителя включала в себя лишь модули аналогового преобразования и управления двигателем с блоком магнитных головок. Выросшая скорость обмена данными вынудила разработчиков перенести всю управляющую электронику поближе к накопителю, а куда еще ближе, как не на сам накопитель? Для этого в 1984 году компании Western Digital и Compaq встроили в накопитель AT-совместимый контроллер, использующий 16-ти разрядную шину ISA. Вдобавок к устранению неприятностей с наводками разработчикам удалось убить еще одного упитанного зайца, а именно — сделать жесткий диск более универсальным устройством. После этого накопители можно было подключать к любой материнской плате, а не сопрягать определенную модель с совместимым контроллером.

Robo User
Web-droid editor

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *