Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5-6) Внешняя память и RAID.docx
Скачиваний:
9
Добавлен:
12.11.2019
Размер:
160.93 Кб
Скачать

Лекция 5. Внешняя память

Внешней называют память на магнитных (жесткие и гибкие диски), оптических носителях (CD-ROM) и т.п.

Дисковые накопители в зависимости от среды носителя и по применяемому методу записи и чтения данных могут подразделяться на магнитные, оптические и магнитооптические.

Дисковая память

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

Перед осуществлением записи на магнитный диск он должен быть специальным образом инициализирован – отформатирован. В результате форматирования на поверхности образуются концентрические окружности (синхронизирующие метки диска), называемые дорожками (track). Количество дорожек зависит от типа диска. Дорожки разбиваются на участки фиксированной длины, называемые секторами. Количество секторов на дорожке определяется типом и форматом диска, и они в основном одинаковы для всех дорожек. Стандартным сектором считается сектор из 512 байт. Данные любого размера (разрядности) размещаются в секторах с фиксированным размером, а дисковые операции записи и считывания производятся с целыми секторами.

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

Память на жестких магнитных дисках

Первые накопители на жестких магнитных дисках имели интерфейс, являющийся расширением интерфейса НГМД, и подключались к специальной плате контроллера с модулем дополнительной BIOS, хранящей всю информацию об установленных жестких дисках.

Основной программной технологией жестких дисков является адресация данных. Для дисков используются следующие режимы адресации:

  • CHS (цилиндр-головка-сектор, традиционная трехмерная адресация данных на диске);

  • ECHS (расширенная трехмерная адресация);

  • LBA (линейная адресация данных на диске через логический адрес блока).

Минимальной адресуемой единицей данных является логический блок, как правило, размером 512 байт. Для традиционных дисковых устройств АТА блок является сектором.

Традиционная адресация CHS задает три координаты сектора устройства АТА:

  • Cylinder — номер цилиндра, который задается регистрами и может принимать значение 0-65 535 (216 - 1). Устройство может иметь до 65 536 (216) цилиндров (Cyl);

  • Head — номер головки, который задается битами регистра и может принимать значение 0-15 (24 - 1). Устройство может иметь до 16 (24) головок в цилинде (Heads Per Cylinder, НРС);

  • Sector — номер сектора, который задается регистром SN и может принимать значение 1-255 (28 - 1), нулевой номер сектора не используется. Устройство может иметь до 255 (28 - 1) секторов на каждом треке (Sectors Per Track, SPT).

Здесь в координатах подразумевается внешняя геометрия — адреса, которые заносятся в командные регистры устройств. В системе CHS устройство АТА позволяет адресовать до 267 386 880 (65 536 х 16 х 255) секторов (блоков), что при размере сектора 512 байт дает 136 902 082 560 байт (около 137 Гбайт).

Линейная (логическая) адресация (Logical Block Addressing, LBA) гораздо проще — здесь адрес блока (сектора) определяется одним числом в диапазоне от 0 до N - 1, где N — емкость устройства хранения (в блоках). Предел адресуемого объема определяется разрядностью логического адреса и емкостью устройства:

  • 28-битный адрес, изначально используемый для устройств АТА, позволяет адресовать до 228 - 1 = 268 435 455 секторов, что при размере сектора 512 байт дает 137 438 952 960 байт (137,4 Гбайт, чуть больше, чем в CHS). По соглашению об адресации и сам линейный адрес LBA, и общее число адресуемых блоков N должны умещаться в 28 бит;

  • 32-битный адрес, используемый устройствами ATAPI, позволяет адресовать до 232 - 1 = 4 294 967 295 секторов, что при размере сектора 512 байт дает 2 199 023 255 040 байт (около 2,2 Тбайт). Доступная емкость устройства определяется посылкой пакета с SCSI-командой, соответствующей классу данного устройства;

  • 48-битный расширенный адрес устройств АТА, введенный в ATA/ATAPI-6 и Serial АТА, позволяет адресовать до 248 - 1 = 281 474 976 710 655 секторов — 144 115 188 075 854 848 байт (около 144 Пбайт).

Попытки обращения к сектору с номером LBA, превышающим максимально возможный, или же с координатами С, Н, S не вписывающимися в текущую геометрию, приведут к генерации ошибки.

С устройствами ATAPI работа возможна только по линейному адресу LBA. Использование 32-битного адреса оказалось временным решением проблемы предела адресации для жестких дисков — существуют модели винчестеров, идентифицирующие себя как устройства ATAPI.

С устройствами АТА можно работать в разных режимах (CHS, LBA), но, естественно, с оглядкой на предел адресации выбранного режима. Возможность адресации LBA была заложена в самой первой спецификации АТА, стандарты АТА и АТА-2 допускают поддержку обоих режимов адресации (CHS и LBA). В стандартах, начиная с АТА-3, поддержка LBA для всех устройств обязательна. Для устройств АТА емкостью более 137,4 Гбайт обязательна поддержка LBA-48.

Все современные винчестеры используют LBA-адресацию. В режиме LBA параметры стандартных вызовов транслируются в т.н. линейный адрес, который вычисляется однозначно в «естественном» порядке счета секторов, т.е. сектору с нулевым лог. адресом соответствует первый сектор нулевой головки нулевого цилиндра.

В тоже время большинство ПО использует CHS-адресацию. Поэтому с появлением HDD с LBA адресацией, чтоб не модернизировать имеющееся ПО, поступили следующим образом. BIOS в случае определения LBA-винчестера, переводит его параметры в CHS-версию и ОС работает с ним как с CHS-винчестером. Т.е. 28-битное значение адреса LBA «раскладывается» следующим образом: 16 бит – цилиндр, 8 бит – сектор, 4 бита – головка. В результате, при получении запроса на работу с диском, BIOS переводит для контроллера это значение LBA-адрес :

В общем виде формулы вычисления такого адреса имеет вид:

LBA=(CYL*HDS*HD)*SPT+SEC-1

  • CYL – номер цилиндра

  • HD – номер головки

  • HDS – количество головок

  • SPT – количество секторов на треке

  • SEC – номер сектора

Для накопителей на жестких дисках используют интерфейсы ST-506/412, ESDI, АТА (неофициальное название IDE), SCSI. Накопители и контроллеры с интерфейсами ST-506/412 и ESDI практически не используются.