Материал: Лекция2_жесткие_диски

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Контроллеры жестких дисков

Собственно контроллер накопителя физически расположен на плате электроники и предназначен для обеспечения операций преобразования и пересылке информации от головок чтения/записи к интерфейсу накопителя. Часто, контроллером называют интерфейс накопителя или интерфейс ПК с накопителем, что в общем не верно. Контроллер жестких дисков представляет собой сложнейшее устройство - микрокомпьютер, со своим процессором, ОЗУ и ПЗУ, схемами и системой ввода/вывода и т.п.. Однако, в большинстве случаев, производители размещают их в одном или двух микро-чипах.

Контроллер занимается множеством операций преобразования потока данных. Так как длинна дорожек неравна, данные на различные дорожки необходимо записывать неравномерно. Это становится проблемой, по сравнению с гибкими дисками, для носителей с высокой плотностью записи (число дорожек более 1000). Простые контроллеры, как правило, записывают одно и тоже количество информации на каждую дорожку, независимо от ее длинны. Для этого контроллер упаковывает данные более плотно, начиная с определенной по счету дорожки. Цилиндр, с которого начинается более плотная упаковка данных называется цилиндром начальной прекомпенсации (Starting Cylinder for Precompensation - SCP). Для компенсации искажения информации при чтении, запись данных производится с предварительным смещением битов, которое учитывает искажения.

Многие производители создают устройства, которые записывают различный объем информации на внутренние и внешние дорожки за счет размещения на них разного числа секторов. Это возможно, благодаря аппаратному скрытию от программ и пользователя физических характеристик устройства на уровне его контроллера и/или интерфейса (устройства с IDE, EIDE и SCSI интерфейсами). Поэтому, накопители, как правило, имеют различное физическое и логическое число цилиндров.

Также, в силу исторических причин, многие операционные системы, работающие с накопителями на ЖМД через BIOS, разработаны таким образом, что не могут оперировать числом цилиндров более 1024. Поскольку в настоящее время, накопители больших объемов (более 1Мб) имеют более 1024 физических цилиндра, то применяется программный пересчет, при котором, накопитель определяется его контроллером и процедурами BIOS как имеющий не более 1024 цилиндра, но имеющий некоторое нереальное число головок, поверхностей и секторов. Функция же пересчета для отыскания нужного сектора ложится либо на BIOS ПК, либо на BIOS контроллера, либо на интерфейс.

Данные, записываемые в сектора, защищаются от некоторых ошибок чтения/записи при помощи расчета и записи вместе с ними контрольной суммы - кода контроля ошибок (Error Correction Code - ECC). Записывая байты на диск, адаптер производит накопление циклическим делением входных данных на специальный полином, остатка от деления, который представляет уникальную комбинацию бит и записывается контроллером вместе с данными. Число байт ECC для каждого устройства определяется видом используемого полинома. При считывании данных производится аналогичное накопление и расчет контрольной суммы. В случае несовпадения результатов рассчитываемого и хранимого с данными ECC, производится попытка восстановления - коррекции данных при помощи полинома, имеющихся данных и контрольной суммы. Число байт данных, которое может быть скорректировано, определяется порядком используемого полинома. Чем она выше, тем большее количество байт подряд может быть скорректировано, но тем длиннее и сам код ECC. Используются разные полиномы и число байт ECC может быть от 4 до 8 и более. Число же бит информации, требуемое для записи одного байта, зависит от используемого метода кодирования. Необходимо отметить, что восстановление данных при помощи полинома и кода ECC происходит на уровне контроллера и прозрачно для программ и пользователя, однако, на основе процедур BIOS программным путем можно получить информацию о том, была ли произведена процедура коррекции.

Для оптимального использования поверхности дисков применяется так называемая зонная запись (Zoned Bit Recording - ZBR), принцип которой состоит в том, что на внешних дорожках, имеющих большую длину (а следовательно - и потенциальную информационную емкость на единицу площади), информация записывается с большей плотностью, чем на внутренних. Таких зон с постоянной плотностью записи в пределах всей поверхности образуется до десятка и более; соответственно, скорость чтения и записи на внешних зонах выше, чем на внутренних. Благодаря этому файлы, расположенные на дорожках с большим диаметром, в целом будут обрабатываться быстрее файлов, расположенных на дорожках с меньшим диаметром, т.к. для них будет производится меньшее число позиционирований с дорожки на дорожку.

В ЖД последнего поколения используются технологии PRML (Partial Response, Maximum Likelihood - максимальное правдоподобие при неполном отклике) и S.M.A.R.T. (Self Monitoring Analysis and Report Technology - технология самостоятельного слежения анализа и отчетности). Первая разработана по причине того, что при существующих плотностях записи уже невозможно четко и однозначно считывать сигнал с поверхности диска - уровень помех и искажений очень велик. Вместо прямого преобразования сигнала используется его сравнение с набором образцов, и на основании максимальной похожести (правдоподобия) делается заключение о приеме того или иного машинного слова.

Накопитель, в котором реализована технология S.M.A.R.T., ведет статистику своих рабочих параметров (количество стартов/остановок и наработанных часов, время разгона шпинделя, обнаруженные/исправленные физические ошибки и т.п.), которая регулярно сохраняется в перепрограммируемом ПЗУ или служебных зонах диска. Эта информация накапливается в течение всего периода эксплуатации и может быть в любой момент затребована программами анализа. По ней можно судить о состоянии механики, условиях эксплуатации или примерной вероятности выхода из строя.

Таблица 2

Формат таблицы разделов

Название записи элемента Partition Table

Длина,байт

Флаг активности раздела

1

Номер головки начала раздела

1

Номер сектора и номер цилиндра загрузочного сектора раздела

2

Кодовый идентификатор операционной системы

1

Номер головки конца раздела

1

Номер сектора и цилиндра последнего сектора раздела

2

Младшее и старшее двухбайтовое слово относительного номера начального сектора

4

Младшее и старшее двухбайтовое слово размера раздела в секторах

4

Завершают элемент раздела младшее и старшее двухбайтовое слово относительного номера первого сектора раздела и размер раздела в секторах соответственно.

Номера сектора и номер цилиндра секторов в разделах занимают 6 и 10 бит соответственно. Ниже представлен формат записи, содержащей номера сектора и цилиндра.

Биты номера цилиндра Биты номера сектора

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Как было показано выше, для жестких дисков типичной является ситуация, когда имеется четыре записи в таблице разделов и соответственно четыре раздела. ОС MS-DOS использует только два из них, остальные резервируются на случай параллельного использования других операционных систем.

Благодаря наличию такой структуры как MBR, на одном физическом жестком носителе может располагаться несколько файловых систем различного типа различных операционных систем.

Структуры MBR представляют собой важнейшую информацию, повреждение которой приводит к частичной или полной потере доступа к данным логических устройств жесткого диска и возможно, к невозможности загрузки операционной системы с поврежденного носителя.

Логические разделы.

Логические разделы тоже имеют некоторую иерархическую структуру в зависимости от типа и вида ОС и ее файловой системы.

Так, первый раздел жесткого диска в MS-DOS называется главным разделом (Primary Partition), а второй расширенным (Extended Partition). Главный раздел всегда должен присутствовать на диске, с него происходит загрузка MS-DOS. Расширенного же раздела может не быть, он создается лишь в том случае, когда необходимо получить более одного логического устройства на физическом диске. Логический раздел размещает в себе такие структуры файловой системы как логические диски или устройства, или тома (оформленные как подразделы), загрузчик операционной системы, таблицы распределения файлов, области пользовательских данных в которых размещаются записи о каталогах и файлах и данные файлов. По своей структуре логические подразделы или диски схожи с разделами. Основным отличием является то, что их число может быть более четырех, а последний элемент каждого показывает является ли он последним логическим подразделом раздела, или указывает на следующий элемент таблицы логических устройств или подразделов. Таблица подразделов строится только на расширенной таблице разделов, каждый ее элемент соответствует логическому устройству с односимвольным именем D:, E: и т.д.. Главная таблица разделов содержит только одно логическое устройство – диск С:. Таблица подразделов создается при создании расширенной таблицы разделов, а число элементов таблицы подразделов определяется пользователем. При определении числа логических устройств пользователь определяет и долю дискового пространства расширенного раздела, отводимую каждому логическому устройству – задает объем логических дисков. В дальнейшем, число и объем логических устройств не может быть изменено без потери данных, расположенных на перераспределяемых логических устройствах. На основе разделов в MS-DOS и Windows 95 ориентированных ОС создается дальнейшая структура. Так в таких системах основной единицей хранения информации является кластер (cluster) - группа секторов. В таком случае, для распределения минимального дискового пространства в один байт выделяется целый кластер, содержащий много секторов и еще больше байт (килобайты), что приводит к нерациональному использованию пространства ЖД для мелких файлов. Для доступа к каждому кластеру создается таблица соответствия номеров кластеров файлам на логическом разделе - таблица распределения файлов (File Allocation Table - FAT). Поэтому, файловые систем такого типа называют типа FAT, или построенные по принципу FAT. Это не самый оптимальный, но довольно быстрый способ организации информации на разделах, поэтому он "дожил" до наших дней с незапамятных времен зори цивилизации ПК, где использовался исключительно для накопителей на гибких магнитных дисков. Все остальные логические структуры - файлы или каталоги связаны локализацией с FAT.

Для других ОС, например, UNIX - использование разделов происходит иначе. Как правило, их может быть более четырех, все они равноправны и одинаково могут быть загрузочными, содержат собственные файловые системы на основе i-узлов. Такие файловые системы являются теговыми и не имеют таблиц распределения порций информации. Дисковое пространство распределяется посекторно, что дает максимально возможное использование пространства раздела, но несколько снижает производительность. Весь раздел разбивается на иерархически связанную цепочку узлов разного уровня, которым соответствует некоторое количество секторов. На основе узлов строится понятие файлов и каталогов, и в таких системах файлы и каталоги действительно не различаются, т.к. каталог является файлом, содержащим структуру узлов. Один раздел отводится для дискового свопа и имеет упрощенную структуру, т.к. никогда не содержит файлов и каталогов.

Существуют и другие принципы организации логической структуры дискового пространства разделов накопителей на ЖД.

Все разделы могут содержать загрузчик операционной системы, который располагается, как правило, в первом секторе и занимает один сектор. В этом секторе располагаются структуры - записи, имеющие отношение лишь к конкретной операционной системе и следовательно они могут отличаться для разных разделов и версий операционных систем. Многие специализированные программы (например, защиты данных, по борьбе и профилактике вирусов и др.) могут изменять структуру или отдельные части загрузчика операционных систем. Загрузчик большинства персональных однопользовательских операционных систем является объектом заражения вирусами, которые заражают загрузочные сектора жестких дисков.

Интерфейсы жестких дисков

Интерфейсом накопителей называется набор электроники, обеспечивающий обмен информацией между контроллером устройства (кеш-буфером) и компьютером. В настоящее время в настольных ПК IBM-PC, чаще других, используются две разновидности интерфейсов ATAPI - AT Attachment Packet Interface (Integrated Drive Electronics - IDE, Enhanced Integrated Drive Electronics - EIDE) и SCSI (Small Computers System Interface).

Интерфейс ide

Разрабатывался как недорогая и производительная альтернатива высокоскоростным интерфейсам ESDI и SCSI. Интерфейс, предназначен для подключения двух дисковых устройств. Отличительной особенностью дисковых устройств, работающих с интерфейсом IDE состоит в том, что собственно контроллер дискового накопителя располагается на плате самого накопителя вместе со встроенным внутренним кэш-буфером. Такая конструкция существенно упрощает устройство самой интерфейсной карты и дает возможность размещать ее не только на отдельной плате адаптера, вставляемой в разъем системной шины, но и интегрировать непосредственно на материнской плате компьютера. Интерфейс характеризуется чрезвычайной простотой, высоким быстродействием, малыми размерами и относительной дешевизной.

Сегодня на смену интерфейсу IDE пришло детище фирмы Western Digital - Enhanced IDE, или сокращенно EIDE. Сейчас это лучший вариант для подавляющего большинства настольных систем. Жесткие диски EIDE заметно дешевле аналогичных по емкости SCSI-дисков (см. ниже) и в однопользовательских системах не уступают им по производительности, а большинство материнских плат имеют интегрированный двухканальный контроллер для подключения четырех устройств.

Можно выделить шесть основных отличий расширенного стандарта.

Во-первых, это большая емкость дисков. Если IDE не поддерживал диски свыше 528 мегабайт, то EIDE преодолевает это ограничение.

Во-вторых, к нему подключается больше устройств - четыре вместо двух. Раньше имелся только один канал контроллера, к которому можно было подключить два IDE устройства. Теперь таких каналов два. Основной канал, который обычно стоит на высокоскоростной локальной шине и вспомогательный.

В-третьих, появилась спецификация ATAPI (AT Attachment Packet Interface) дающая возможность подключения к этому интерфейсу не только жестких дисков, но и других устройств - стриммеров и дисководов CD-ROM.

В-четвертых - повысилась производительность. Накопители с интерфейсом IDE характеризовались максимальной скоростью передачи данных на уровне 3 мегабайт в секунду. Жесткие диски EIDE поддерживают несколько новых режимов обмена данными. В их число входит режим программируемого ввода-вывода PIO (Programmed Input/Output) Mode 3 и 4, которые обеспечивают скорость передачи данных 11.1 и 16.6 мегабайт в секунду соответственно.

В пятых - поддерживается режим прямого доступа к памяти - Multiword Mode 1 DMA (Direct Memory Access) или Multiword Mode 2 DMA и Ultra DMA, которые поддерживают обмен данными в монопольном режиме (то есть когда канал ввода-вывода в течение некоторого времени обслуживает только одно устройство).

В шестых - расширена система команд управления устройством, передачи данных и диагностики, увеличен кеш-буфер обмена данными и существенно доработана механика.

В настоящее время интерфейс IDE поддерживается стандартом программного обмена ATA-5, в котором помимо команд различных режимов обмена с данными реализованы такие функции, как, например, перезапись программы контроллера винчестера, доступ по паролю и т.д.