4

Информация о HDD:

$ sudo fdisk -l

Disk /dev/sda: 250.1 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488395055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
...

Так там написано, что там 255 голов.

Источник: http://www.tldp.org/LDP/sag/html/hard-disk.html.

Глядя на картинку выше, кажется, что 255 (количество головок)/2 (две головки на блюдо)= 127 пластин, что кажется невероятным числом. Как интерпретировать, что означает физическая голова?

1 ответ1

6

Как было отмечено в комментарии, номера цилиндров / головок / секторов, указанные для геометрии физического привода, в настоящее время не имеют оснований в реальности. Вы можете смело игнорировать эти цифры.

Чтобы понять, что происходит, мы должны вернуться к оригинальной модели IBM 5150 PC 1981 года.

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

Поскольку у 5150 был очень ограниченный объем памяти, как ОЗУ, так и хранилища (базовая модель имела 16 КБ ОЗУ ; текст этого ответа занимал бы около половины ОЗУ, не говоря уже о любом программном обеспечении для работы с текстом), важно было тратить как можно меньше. Таким образом, участвующие инженеры придумали набор ограничений, которые, вероятно, казались огромными в то время: цилиндр был закодирован с использованием 10 битов, головка была закодирована с использованием 8 битов, а номер сектора был закодирован с использованием 6 битов, все из которых могли быть аккуратно упакованный в три байта с некоторой магией бит-смещения Это позволило адресовать 256 головок, 1024 цилиндра на голову и 64 сектора на цилиндр. (На практике число 0 для каждого не используется.) С 512-байтовыми секторами это позволяет адресовать в общей сложности 8 ГиБ, огромное количество данных в 1981 году. Даже более практичный дисковод с десятью головками давал верхнюю границу в 320 МБ, в то время, когда носителем "высокого класса" на момент появления модели 5150 был 160- килобайтный гибкий диск (с использованием восьми секторов на дорожку и 40 дорожек или цилиндры). Если мы экстраполируем это на основе замены этих дискет на однослойные DVD-диски, на которых хранится чуть более 4 ГБ, а не на эти 8 ГБ, мы будем рассматривать отдельные диски, способные хранить порядка 100 ТБ. Увидеть кого-нибудь из них на горизонте рынка в ближайшее время? Я так не думаю.

Осложняющим фактором было то, что исходный стандарт IDE использовал другую кодировку CHS. Он использовал 28 бит для CHS, кодируя цилиндр как 16 бит, заголовок как 4 бита и сектор как 8 бит. Поскольку всем нравится совместимость, взяв самое большое из них, мы получаем 10 цилиндрических, 4 головных и 6 секторных бит. Поскольку сектор 0 не используется, это позволяет адресовать 1 032 192 сектора, каждый из которых по 512 байт отрабатывает до 504 МБ. Есть первое ограничение жестких дисков: барьер 500 МБ. Используя полную схему IDE CHS с 512-байтовыми секторами и не заботясь о совместимости с IBM CHS, вы могли бы обратиться к 127,5 ГиБ.

Кроме того, 256 головных дисков никогда не завоевывали популярность на рынке. (Даже сегодня большинство жестких дисков используют менее полудюжины пластин, по одной головке на каждой стороне каждого диска.) Поэтому кто-то задумался о том, как позаимствовать неиспользованные биты и использовать их заново. Следовательно, накопитель может иметь в четыре раза больше головок, чем он есть на самом деле, но на самом деле вместо него используются эти два дополнительных бита для адресации цилиндров. Микропрограмма может выполнять перевод достаточно легко, поскольку ее не нужно ограничивать так же, как исходный формат адресации 5150 CHS, не говоря уже о наименьшем общем знаменателе адресации IDE/ATA и IBM CHS. Однако, чтобы оставаться совместимым, привод должен по-прежнему иметь геометрию CHS. Так родилась переведенная геометрия с помощью LBA. Это позволило использовать полный теоретический диапазон адресации 8 ГиБ в схеме CHS, но дало нам чудовищности, такие как накопители, сообщающие, что они имеют сотни головок, просто чтобы был какой-то способ обратиться ко всем секторам накопителя через геометрию CHS.

CHS каким-то образом выживал до конца 1990-х годов, когда общие размеры жестких дисков начали приближаться к теоретическим пределам. В этот момент стало очевидно, что нужно что-то совершенно другое. Диски также становились все более продвинутыми, и примерно в то же время накопители стали иметь возможность прозрачно перераспределять поврежденные сектора (это ранее было обязанностью кода файловой системы операционной системы и является причиной, например, для MS). -DOS 6.x "ScanDisk" имел возможность выполнять физическую проверку чтения / записи по всему диску). В частности, когда вы попадаете на прозрачную переназначаемую территорию сектора, вся концепция адресации CHS становится бессмысленной, потому что нет ничего, говорящего о том, что запрашиваемый вами адрес CHS имеет какое-либо отношение к тому, который в итоге используется.

Идея была рождена, чтобы просто обратиться к диску как совокупность секторов. SCSI имел это в течение некоторого времени, первоначально используя 21-битный LBA, но позже перешел на 32-битный LBA, но ПК был полностью застрял в лагере CHS, хотя 22-битный LBA был опцией даже в оригинальном стандарте IDE. начиная с середины 1980-х годов. Это LBA или логическая блочная адресация. Для наших целей соответствующим начальным стандартизированным режимом LBA был LBA-28, который позволял адресовать 128 ГиБ из 512-байтовых секторов; в ATA-6 он был заменен LBA-48. Все современные (большинство после 1996 года) диски - это LBA, а также операционная система, знающая о том, что диски могут иметь секторы 512 байт или 4096 байт. Когда драйвер диска операционной системы хочет некоторый объем данных, он выдает запрос на чтение для номера сектора N или интервальных номеров сектора от M до N. Физический диск может свободно преобразовать это в любую внутреннюю геометрию, которую он использует, любыми средствами. он выбирает для использования. Это включает в себя сопоставление с физическими пластинами или микросхемами и местоположениями в них, а также переназначение прозрачных секторов. ОС никогда не нужно знать или интересоваться этими деталями. Вот почему вы можете просто подключить SSD, и он просто работает, несмотря на всю концепцию цилиндров, головок и секторов, не имеющую абсолютно никакого смысла для твердотельного хранилища. В настоящее время мы используем 48-битную адресацию LBA, которая позволяет адресовать 2 ^ 48 (около 3 * 10 ^ 14) секторов. С 512 байтовыми секторами, что позволяет адресовать 128 ПиБ; переход к 4 096 байтовым секторам теоретически повысил это значение до 1 EiB, хотя это, вероятно, потребовало бы изменения в протоколе связи устройства. Несмотря на это, 128 ПиБ настолько далеко за пределы того, что практически осуществимо с современной технологией, что вряд ли это станет проблемой, по крайней мере, в ближайшем будущем. (Вам понадобится около 20 000 новомодных накопителей емкостью 6 ТБ, которые будут объединены в один массив, чтобы приблизиться.)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .