Логическая адресация блоков
Адресация логических блоков ( 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 байт. Доступ к этим значениям можно получить, введя команду ATA «Идентифицировать устройство» ( EC
з) на драйв. [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 МБ.
До выпуска стандарта 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]
Размер диска | Секторы/дорожка | Руководители | Цилиндры |
---|---|---|---|
1 < X ≤ 504 МБ | 63 | 16 | Х ÷ (63 × 16 × 512) |
504 МБ < X ≤ 1008 МБ | 63 | 32 | Х ÷ (63 × 32 × 512) |
1008 МБ < X ≤ 2016 МБ | 63 | 64 | Х ÷ (63 × 64 × 512) |
2016 МБ < X ≤ 4032 МБ | 63 | 128 | Х ÷ (63 × 128 × 512) |
4032 МБ < X ≤ 8032,5 МБ | 63 | 255 | Х ÷ (63 × 255 × 512) |
LBA48
[ редактировать ]Текущая 48-битная схема LBA была представлена в 2002 году стандартом ATA-6 . [4] повышение лимита адресации до 2 48 × 512 байт, что составляет ровно 128 ПиБ или примерно 144 ПБ . Современные ПК-совместимые компьютеры поддерживают расширения INT 13h, которые используют 64-битные структуры для адресации LBA и должны охватывать любые будущие расширения адресации LBA, хотя современные операционные системы реализуют прямой доступ к диску и не используют подсистемы BIOS , за исключением загрузки времени . . Однако общая DOS (MBR) в стиле таблица разделов основной загрузочной записи поддерживает только разделы диска до 2 размером ТиБ. Для более крупных разделов это необходимо заменить другой схемой, например, таблицей разделов GUID (GPT), которая имеет тот же 64-битный предел, что и текущие расширения INT 13h. Windows XP SP2 Известно, что поддерживает LBA48 (и включен по умолчанию).
Преобразование CHS
[ редактировать ]Значение LBA | Кортеж CHS |
---|---|
0 | 0, 0, 1 |
1 | 0, 0, 2 |
2 | 0, 0, 3 |
62 | 0, 0, 63 |
63 | 0, 1, 1 |
945 | 0, 15, 1 |
1007 | 0, 15, 63 |
1008 | 1, 0, 1 |
1070 | 1, 0, 63 |
1071 | 1, 1, 1 |
1133 | 1, 1, 63 |
1134 | 1, 2, 1 |
2015 | 1, 15, 63 |
2016 | 2, 0, 1 |
16,127 | 15, 15, 63 |
16,128 | 16, 0, 1 |
32,255 | 31, 15, 63 |
32,256 | 32, 0, 1 |
16,450,559 | 16319, 15, 63 |
16,514,063 | 16382, 15, 63 |
В схеме адресации 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 ) mod HPC
- S = ( LBA mod 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 определенно использует математическую концепцию кортежа , ее также можно рассматривать как пример общей схемы, называемой смешанной системой счисления , если рассматривать ее цилиндры, головки и сектора как имеющие разные числовые основы; например, цилиндры от 0 до 1023, головки от 0 до 254 и сектора от 1 до 63.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Информационные технологии — AT-соединение с пакетным интерфейсом — 5 (ATA/ATAPI-5)» (PDF) . www.t13.org . 29 февраля 2000 г. Архивировано из оригинала (PDF) 6 августа 2020 г. . Проверено 15 декабря 2020 г.
- ^ «KB224526: Windows NT 4.0 поддерживает системный раздел размером не более 7,8 ГБ» . Поддержка.microsoft.com. 23 февраля 2007 г. Проверено 30 июля 2013 г.
- ^ Стьюнебринк, Январь. «Ограничения жесткого диска BIOS IDE» . Архивировано из оригинала 6 октября 2013 года . Проверено 6 октября 2013 г.
- ^ «Информационные технологии — AT-соединение с пакетным интерфейсом — 6 (ATA/ATAPI-6)» (PDF) . www.t13.org . 26 февраля 2002 г. Архивировано из оригинала (PDF) 6 августа 2020 г. . Проверено 15 декабря 2020 г.
- ^ «Основы работы с жесткими дисками» . active-undelete.com . Проверено 10 февраля 2015 г.
Номера дорожек начинаются с 0, а дорожка 0 — это самая дальняя дорожка диска. Дорожка с наибольшим номером находится рядом со шпинделем.
- ^ «HOWTO по работе с большими дисками, раздел 3. Доступ к диску» . tldp.org . 08.11.2004 . Проверено 10 февраля 2015 г.
- ^ «Формулы преобразования CHS в LBA» . pcrepairclass.tripod.com . Проверено 26 августа 2014 г.
Внешние ссылки
[ редактировать ]- Объяснения LBA. Архивировано 25 февраля 2021 г. на Wayback Machine.
- Формат LBA и CHS, отображение LBA
- Учебное пособие по переводу CHS в LBA
- Статья Microsoft об ограничении 7,8 ГБ в NT 4.0
- Ограничения и барьеры размера жесткого диска. Архивировано 25 февраля 2021 г. на Wayback Machine.
- «Модернизация и ремонт компьютеров» , Скотт Мюллер. Страницы 524–531.
- Приложение AT 8 — набор команд ATA/ATAPI (ATA8-ACS)