Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Логическая адресация блоков ( 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 была впервые представлена ​​в SCSI как абстракция. Хотя контроллер дисковода по-прежнему обращается к блокам данных по их адресу CHS, эта информация обычно не используется драйвером устройства SCSI, ОС, кодом файловой системы или любыми приложениями (такими как базы данных), которые обращаются к «необработанному» диску. Системные вызовы, требующие ввода-вывода на уровне блоков, передают определения LBA драйверу устройства хранения; в простых случаях (когда один том отображается на один физический диск) этот LBA затем передается непосредственно контроллеру диска.

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

Улучшенный BIOS [ править ]

Более ранний стандарт 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–65535), что ограничивает размер диска 128 ГиБ (≈137,4 ГБ), предполагая 512-байтовые сектора. К этим значениям можно получить доступ, выполнив команду ATA «Идентифицировать устройство» ( ECh) для привода. [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 с сопоставлением BIOS CHS наименьший общий знаменатель составлял 10: 4: 6 бит, или 1024 цилиндра, 16 головок и 63 сектора, что давало практический предел 1024 × 16 × 63 секторов и 528  МБ (504  МБ. ), предполагая 512-байтовые сектора.

Для того, чтобы BIOS преодолел этот предел и успешно работал с жесткими дисками большего размера, в процедурах ввода-вывода диска BIOS должна была быть реализована схема трансляции CHS, которая преобразует 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 , которые сняли практические ограничения на размер диска для операционных систем, которые знают об этом новом интерфейсе, таких как компонент DOS 7.0 в Windows 95 . Эта усовершенствованная подсистема BIOS поддерживает адресацию LBA с помощью метода LBA или LBA , который использует собственный 28-битный LBA для адресации дисков ATA и при необходимости выполняет преобразование CHS.

В нормальных или ни один метод возвращается к ранее 10: 4: 6 битный режим CHS , который не поддерживает адресации больше , чем 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 для старых компьютеров с несовместимыми с LBA BIOS.

LBA-перевод [ править ]

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

LBA48 [ править ]

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

Преобразование CHS [ править ]

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

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

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

где

  • C , H и S - номер цилиндра, номер головки и номер сектора.
  • LBA - адрес логического блока
  • HPC - это максимальное количество головок на цилиндр (по данным дискового накопителя, обычно 16 для 28-битного LBA)
  • SPT - это максимальное количество секторов на дорожку (сообщает диск, обычно 63 для 28-битного LBA)

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

C = LBA ÷ ( HPC × SPT )
H = ( LBA ÷ SPT ) мод 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 .

См. Также [ править ]

  • Блок (хранилище данных)
  • Сектор головки цилиндров (CHS)
  • Форматирование диска
  • Разбиение диска
  • Дисковое хранилище

Заметки [ править ]

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

Ссылки [ править ]

  1. ^ a b "Информационные технологии - AT-вложения с пакетным интерфейсом - 5 (ATA / ATAPI-5)" (PDF) . www.t13.org . 29 февраля 2000 года Архивировано из оригинального (PDF) от 6 августа 2020 года . Проверено 15 декабря 2020 года .
  2. ^ «KB224526: Windows NT 4.0 поддерживает системный раздел размером не более 7,8 ГБ» . Support.microsoft.com. 2007-02-23 . Проверено 30 июля 2013 .
  3. ^ Steunebrink, Янв. «Ограничения жесткого диска 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. ^ "Large Disk HOWTO, Раздел 3. Доступ к диску" . tldp.org . 2004-11-08 . Проверено 10 февраля 2015 .
  7. ^ «Формулы преобразования CHS в LBA» . pcrepairclass.tripod.com . Проверено 26 августа 2014 .

Внешние ссылки [ править ]

  • LBA объяснил
  • Формат LBA и CHS, отображение LBA
  • Руководство по переводу CHS в LBA
  • Статья Microsoft об ограничении 7,8 ГБ для NT 4.0
  • Ограничения и препятствия на размер жесткого диска
  • Обновление и ремонт ПК , Скотт Мюллер. Страницы 524–531.
  • Вложение 8 - набор команд ATA / ATAPI (ATA8-ACS)