stringtranslate.com

Логическая адресация блоков

Адресация логических блоков ( LBA ) — это распространенная схема, используемая для указания местоположения блоков данных, хранящихся на компьютерных устройствах хранения данных, обычно в вторичных системах хранения данных, таких как жесткие диски . LBA — это особенно простая схема линейной адресации ; блоки располагаются по целочисленному индексу, причем первый блок имеет значение LBA 0, второй LBA 1 и т. д.

Стандарт IDE включал в качестве опции 22-битный LBA, который был расширен до 28-битного с выпуском ATA-1 (1994 г.) и до 48-битного с выпуском ATA-6 (2003 г.), тогда как размер записи в структурах данных на диске и в памяти, содержащие адрес, обычно имеют длину 32 или 64 бита. Большинство жестких дисков, выпущенных после 1996 года, реализуют адресацию логических блоков.

Обзор

При адресации логических блоков для адресации данных используется только одно число, и каждый линейный базовый адрес описывает один блок.

Схема LBA заменяет более ранние схемы, которые раскрывали физические данные устройства хранения данных программному обеспечению операционной системы. Главной среди них была схема «головка блока цилиндров» (CHS), в которой блоки обращались с помощью кортежа , определяющего цилиндр, головку и сектор, в котором они появлялись на жестком диске . CHS плохо сопоставлялся с устройствами, отличными от жестких дисков (такими как ленты и сетевые хранилища), и обычно для них не использовался. CHS использовался в ранних дисках MFM и RLL , и как он, так и его преемник, расширенный сектор головки блока цилиндров (ECHS), использовались в первых дисках ATA . Однако современные дисководы используют зонную побитовую запись , где количество секторов на дорожку зависит от номера дорожки. Несмотря на то, что дисковод сообщает некоторые значения CHS в виде секторов на дорожку (SPT) и головок на цилиндр (HPC), они имеют мало общего с истинной геометрией диска.

LBA был впервые представлен в 1981 году SASI , предшественником SCSI , как абстракция. Хотя контроллер диска по-прежнему обращается к блокам данных по их адресу CHS, эта информация обычно не используется драйвером устройства SCSI, ОС, кодом файловой системы или любыми приложениями (например, базами данных), которые обращаются к «необработанному» диску. Системные вызовы, требующие ввода-вывода на уровне блоков, передают определения LBA драйверу устройства хранения; в простых случаях (когда один том сопоставлен одному физическому диску) этот LBA затем передается непосредственно контроллеру диска.

В устройствах с избыточным массивом независимых дисков (RAID) и сетях хранения данных (SAN), а также там, где логические диски ( номера логических устройств , LUN) составлены посредством виртуализации и агрегирования LUN, адресация LBA отдельного диска должна транслироваться программным уровнем для обеспечения единая адресация LBA для всего устройства хранения данных.

Расширенный БИОС

Более ранний стандарт IDE от Western Digital представил 22-битный LBA; в 1994 году стандарт ATA-1 допускал 28-битные адреса как в режимах LBA, так и в CHS. Схема CHS использовала 16 бит для цилиндра, 4 бита для головы и 8 бит для сектора, считая сектора от 1 до 255. Это означает, что сообщаемое количество головок никогда не превышает 16 (0–15), количество секторов может составлять 255 ( 1–255; хотя 63 часто является самым большим используемым), а количество цилиндров может достигать 65 536 (0–65 535), ограничивая размер диска до 128 ГиБ (≈ 137,4 ГБ) при условии, что секторы составляют 512 байт. Доступ к этим значениям можно получить, введя ECна диск команду ATA «Идентифицировать устройство» ( h). [1] :  87

Однако реализация IBM BIOS , определенная в процедурах доступа к диску INT 13h , использовала совершенно другую 24-битную схему адресации CHS: 10 бит для цилиндра, 8 бит для головки и 6 бит для сектора, или 1024 цилиндра, 256 головок, и 63 сектора. [2] Эта реализация INT 13h предшествовала стандарту ATA, поскольку она была введена, когда IBM PC имел только хранилище для гибких дисков , а когда в IBM PC/XT были представлены жесткие диски , интерфейс INT 13h не мог быть практически реализован. переработан из-за проблем обратной совместимости . Перекрытие сопоставления ATA CHS с сопоставлением CHS BIOS дало наименьший общий знаменатель 10:4:6 бит, или 1024 цилиндра, 16 головок и 63 сектора, что дало практический предел в 1024×16×63 сектора и 528 МБ (504  МБ  ) . ), предполагая секторы размером 512 байт.

Чтобы BIOS преодолел этот предел и успешно работал с жесткими дисками большего размера, необходимо было реализовать схему трансляции CHS [ когда? ] в процедурах ввода-вывода диска BIOS, которые преобразуют 24-битную нумерацию CHS, используемую INT 13h, и 28-битную нумерацию CHS, используемую ATA. Схема трансляции получила название трансляции с большим сдвигом или побитовой трансляцией . Этот метод переназначит 16:4:8-битные цилиндры и головки ATA на 10:8:6-битную схему, используемую INT 13h, создавая гораздо больше «виртуальных» головок диска, чем сообщает физический диск. Это увеличило практический предел до 1024×256×63 секторов, или 8,4  ГБ (7,8  ГиБ ).

Для дальнейшего преодоления этого ограничения были введены расширения INT 13h [ когда? ] с помощью BIOS Enhanced Disk Drive Services , которая сняла практические ограничения на размер диска для операционных систем, поддерживающих этот новый интерфейс, таких как компонент DOS 7.0 в Windows 95 . Эта расширенная подсистема BIOS поддерживает адресацию LBA с помощью LBA или метода с помощью LBA , который использует собственный 28-битный LBA для адресации дисков ATA и выполняет преобразование CHS по мере необходимости.

Метод «нормальный» или « нет» возвращается к более раннему режиму CHS 10:4:6 бит, который не поддерживает адресацию более 528  МБ.

Установка OEM-версии EZ Drive от Western Digital на 3,5-дюймовую дискету.

До выпуска стандарта ATA-2 в 1996 году существовало несколько жестких дисков большого размера, которые не поддерживали адресацию LBA, поэтому можно было использовать только большие или обычные методы. Однако использование большого метода также создавало проблемы с переносимостью, поскольку в разных BIOS часто использовались разные и несовместимые методы трансляции, а жесткие диски, разделенные на компьютер с BIOS от определенного поставщика, часто не могли быть прочитаны на компьютере с BIOS другой марки. . Решением было использование программного обеспечения для преобразования, такого как OnTrack Disk Manager , Micro House EZ-Drive/EZ-BIOS и т. д., которое устанавливалось в загрузчик ОС диска и заменяло процедуры INT 13h во время загрузки собственным кодом. Это программное обеспечение также может обеспечить поддержку расширений LBA и INT 13h для старых компьютеров с BIOS, не совместимыми с LBA.

Перевод с помощью LBA

Когда BIOS настроен на использование диска в режиме трансляции с помощью LBA, BIOS обращается к оборудованию в режиме LBA, а также представляет преобразованную геометрию CHS через интерфейс INT 13h. Количество цилиндров, головок и секторов в преобразованной геометрии зависит от общего размера диска, как показано в следующей таблице. [3]

LBA48

Текущая 48-битная схема LBA была представлена ​​в 2002 году вместе со стандартом ATA-6 , [4] подняв предел адресации до 2 48  × 512 байт, что составляет ровно 128 ПиБ или примерно 144 ПБ . Современные компьютеры, совместимые с ПК, поддерживают расширения INT 13h, которые используют 64-битные структуры для адресации LBA и должны охватывать любые будущие расширения адресации LBA, хотя современные операционные системы реализуют прямой доступ к диску и не используют подсистемы BIOS , за исключением времени загрузки. . Однако общая таблица разделов основной загрузочной записи (MBR) в стиле DOS поддерживает только разделы диска размером до 2 ТиБ. Для более крупных разделов это необходимо заменить другой схемой, например, таблицей разделов GUID (GPT), которая имеет тот же 64-битный предел, что и текущие расширения INT 13h.   

Преобразование CHS

В схеме адресации LBA сектора нумеруются как целочисленные индексы; при сопоставлении с кортежами CHS ( цилиндр-головка-сектор ) нумерация LBA начинается с первого цилиндра, первой головки и первого сектора дорожки. Как только дорожка исчерпана, нумерация продолжается до второй головки, оставаясь при этом внутри первого цилиндра. Как только все головки внутри первого цилиндра исчерпаны, нумерация продолжается со второго цилиндра и т. д. Таким образом, чем ниже значение LBA, тем ближе физический сектор находится к первому (то есть внешнему [5] ) цилиндру жесткого диска.

Кортежи CHS можно сопоставить с адресом LBA по следующей формуле: [6] [7]

LBA = ( C × HPC + H ) × SPT + (S - 1)

где

Адреса LBA можно сопоставить с кортежами CHS по следующей формуле («mod» — это операция по модулю , т. е. остаток , а «÷» — целочисленное деление , т. е. частное деления, при котором любая дробная часть отбрасывается):

C = LBA ÷ ( HPC × SPT )
H = ( LBA ÷ SPT ) mod HPC
S = ( LBA мод SPT ) + 1

Согласно спецификациям ATA, «если содержимое слов (61:60) больше или равно 16 514 064, то содержимое слова 1 [количество логических цилиндров] должно быть равно 16 383». [1] :  20 Следовательно, для LBA 16450559 диск ATA может фактически ответить кортежем CHS ( 16319, 15, 63), и количество цилиндров в этой схеме должно быть намного больше, чем 1024, разрешенное INT 13h. [а]

Зависимости операционной системы

Операционные системы, чувствительные к геометрии диска, сообщаемой BIOS, включают семейства Solaris , DOS и Windows NT, где NTLDR ( NT , 2000 , XP , Server 2003 ) или WINLOAD ( Vista , Server 2008 , Windows 7 и Server 2008 R2 ) используют основную загрузку. запись , которая обращается к диску с помощью CHS; Версии Windows x86-64 и Itanium могут разделить диск с помощью таблицы разделов GUID , которая использует адресацию LBA.

Некоторые операционные системы не требуют какой-либо трансляции, поскольку они не используют геометрию, сообщаемую BIOS, в своих загрузчиках . Среди этих операционных систем — BSD , Linux , macOS , OS/2 и ReactOS .

Смотрите также

Примечания

  1. ^ Хотя адресация CHS определенно использует математическую концепцию кортежа , ее также можно рассматривать как пример общей схемы, называемой смешанной системой счисления , если рассматривать ее цилиндры, головки и сектора как имеющие разные числовые основы; например, цилиндры от 0 до 1023, головки от 0 до 254 и сектора от 1 до 63.

Рекомендации

  1. ^ ab «Информационные технологии — AT-соединение с пакетным интерфейсом — 5 (ATA/ATAPI-5)» (PDF) . www.t13.org . 29 февраля 2000 г. Архивировано из оригинала (PDF) 6 августа 2020 г. . Проверено 15 декабря 2020 г.
  2. ^ «KB224526: Windows NT 4.0 поддерживает системный раздел размером не более 7,8 ГБ» . Поддержка.microsoft.com. 23 февраля 2007 г. Проверено 30 июля 2013 г.
  3. ^ Стьюнебринк, январь. «Ограничения жесткого диска BIOS IDE». Архивировано из оригинала 6 октября 2013 года . Проверено 6 октября 2013 г.
  4. ^ «Информационные технологии — AT-соединение с пакетным интерфейсом — 6 (ATA/ATAPI-6)» (PDF) . www.t13.org . 26 февраля 2002 г. Архивировано из оригинала (PDF) 6 августа 2020 г. . Проверено 15 декабря 2020 г.
  5. ^ «Основы жесткого диска» . active-undelete.com . Проверено 10 февраля 2015 г. Номера дорожек начинаются с 0, а дорожка 0 — это самая дальняя дорожка диска. Дорожка с наибольшим номером находится рядом со шпинделем.
  6. ^ «Инструкции по работе с большими дисками, Раздел 3. Доступ к диску» . tldp.org . 08.11.2004 . Проверено 10 февраля 2015 г.
  7. ^ «Формулы преобразования CHS в LBA» . pcrepairclass.tripod.com . Проверено 26 августа 2014 г.

Внешние ссылки