Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[22]

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

При использовании CHS-трансляции со сдвигом разряда сообщенные диском (физические) параметры предаются как P-CHS, а логические параметры, измененные BIOS, передаются в виде L-CHS. После установки соответствующих значений в программе настройки параметров BIOS происходит автоматическое преобразование логических адресов CHS (L-CHS) в физические адреса CHS (P-CHS) на уровне базовой системы ввода-вывода. Это дает возможность операционной системе посылать команды в BIOS, используя логические параметры L-CHS, которые при обращении базовой системы ввода-вывода к накопителю с помощью команд ATA автоматически преобразуются в физические параметры P-CHS. Правила вычисления параметров CHS-трансляции со сдвигом разряда приведены в представленной ниже таблице.

Правила CHS-трансляции со сдвигом разряда

Физические (переданные диском) цилиндры

Физические головки

Логические цилиндры

Логические головки

Максимальная емкость

1 < C < 1 024

1 < H < 16

С = С

Н = Н

528 Мбайт

1 024 < C < 2 048

1 < H < 16

С = С/2

Н = Нх2

1 Гбайт

2 048 < C < 4 096

1 < H < 16

С = С/4

Н = Нх4

2,1 Гбайт

4 096 <C < 8192

1 < H < 16

С = С/8

Н = Нх8

4,2 Гбайт

8192<C < 16384

1 < H < 16

С = С/16

Н = Нх 16

8,4 Гбайт

Примечание. Количество секторов, переданное дисководом, не транслируется.

При использовании таких операционных систем, как DOS/Win9x/Me, количество логических головок не может превышать 255.

CHS-трансляция со сдвигом разряда основывается на делении количества физических цилиндров на число 2, что позволяет преодолеть существующее ограничение BIOS INT13h (количество цилиндров не должно превышать 1 024), и последующем умножении количества головок на то же число, благодаря чему общее количество секторов остается неизменным. Как показано ниже, степень числа 2, используемая в качестве делителя, зависит от количества цилиндров.

Ниже приведен пример CHS-трансляции со сдвигом разряда.

Физические параметры CHS Логические параметры CHS

со сдвигом разряда

Цилиндров8 0001 000

Головок16128

Секторов на дорожке6363

Итого секторов8 064 0008 064 000

Итого байт4 128 768 0004 128 768 000

Мегабайт4 1294 129

Mebibytes (MiB)3 9383 938

Гигабайт4,134,13

Gibibytes (GiB)3,853,85

В этом примере приведен диск, содержащий 8 000 цилиндров и 16 головок. Физическое количество цилиндров больше ограничения в 1 024 цилиндра, накладываемого BIOS, поэтому при выборе CHS-трансляции со сдвигом разряда BIOS делит количество цилиндров на 2, 4, 8 или 16, уменьшая его до 1 024. В данном случае количество цилиндров делится на 8, в результате чего получено новое число логических цилиндров, равное 1 000, которое не превышает установленного ограничения (1 024). После этого число головок умножается на ту же величину, в результате чего получается количество логических головок, равное 128, что также ниже ограничения, установленного BIOS.

Таким образом, несмотря на то что диск физически имеет 8 000 цилиндров и 16 головок, BIOS и все программное обеспечение (включая операционную систему) рассматривают его как жесткий диск, содержащий 1 000 цилиндров и 128 головок. Обратите внимание, что число 63, выражающее количество секторов, приходящихся на каждую дорожку, передается в неизменном виде. Результатом трансляции является то, что благодаря использованию логических параметров BIOS может полностью видеть весь диск емкостью 4,13 Гбайт, не ограничиваясь только первыми 528 Мбайт.

При установке нового жесткого диска вам не придется выполнять математическую трансляцию для преобразования количества цилиндров и головок, BIOS сделает это автоматически. Необходимо только разрешить BIOS автоматически определить физические параметры CHS, а затем активизировать трансляцию ECHS или LBA в программе настройки параметров BIOS. Все остальное базовая система ввода-вывода сделает сама.


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

Преодоление ограничения емкости в 2,1 Гбайт

В некоторых базовых системах ввода-вывода для данных, обозначающих количество полей физических цилиндров CHS, отводилось только 12 бит, что ограничивало объем диска 4 096 цилиндрами. В сочетании с существующими стандартными ограничениями (16 головок и 63 сектора) это не позволяло поддерживать накопители, емкость которых превышала 2,1 Гбайт. К счастью, описанный дефект существовал только в определенных системах, включающих в себя BIOS, созданную примерно до середины 1996 года.

Преодоление ограничения емкости в 4,2 Гбайт

Тем не менее все еще существовали определенные проблемы, связанные с трансляцией со сдвигом разряда. Технология организации операционных систем DOS и Windows 9x/Me не позволяет правильно обрабатывать жесткие диски, содержащие 256 головок. Подобная ситуация стала проблемной для накопителей емкостью более 4,2 Гбайт, поскольку правила CHS-трансляции со сдвигом разряда обычно приводили к логическому значению в 256 головок.

Физические параметры CHS Логические параметры CHS

Цилиндров12000750

Головок16256

Секторов на дорожке6363

Итого секторов12 096 00012 096 000

Итого байт6 193 152 0006 193 152 000

Мегабайт6 1936 193

Mebibytes (MiB)5 9065 906

Гигабайт6,196,19

Gibibytes (GiB)5,775,77

При попытке инсталляции операционной системы Windows 9x/Me (или DOS) на жестком диске емкостью более 4,2 Гбайт оказалось, что подобная схема неудачна, поскольку значение "256 головок" является одним из параметров L-CHS. Ограничение емкости диска в 4,2 Гбайт было свойственно практически любой базовой системе ввода-вывода, реализующей эту схему, поэтому установка жесткого диска большей емкости и выбор CHS-трансляции со сдвигом разряда и приводили к сбоям накопителя. Следует заметить, что к операционным системам Windows NT/2000/XP это не относится.

Замечание

Интересно то, что причиной подобной проблемы является вовсе не BIOS, а код файловой системы DOS/Win9x/Me, в котором количество секторов, приходящихся на каждую дорожку, сохраняется в виде 8-разрядного числа. Проблемы возникают при считывании числа 256, представляющего собой в двоичной записи выражение 100000000b, для хранения которого требуется 9-разрядное поле. Число 255 (или 11111111b в двоичной системе) является наибольшим значением, которое подходит 8-разрядному двоичному регистру и определяет максимальное число головок, поддерживаемое той или иной операционной системой.

Для решения этой проблемы CHS-трансляция со сдвигом разряда была переработана и дополнена правилом, согласно которому при наличии 16 физических головок и более чем 8 192 цилиндров (что привело бы к трансляции 256 головок) принимается количество головок P-CHS, равное 15 (вместо 16). Во избежание ошибок при вычислении число цилиндров P-CHS умножается на выражение 16/15. После этого выполняется трансляция скорректированного количества цилиндров и головок. Результаты вычислений показаны в следующем примере.

Физические параметры Логические параметры Логические параметры CHSCHSCHS со сдвигом разряда

Цилиндров12 000750800

Головок16256240


Секторов на дорожке

63

63

63

Итого секторов

12 096 000

12 096 000

12 096 000

Итого байт Мегабайт Mebibytes (MiB) Гигабайт

Gibibytes (GiB)

6 193 152 000 6 193 5 906

6,19 5,77

6 193 152 000 6 193 5 906 6,19 5,77

6 193 152 000 6 193 5 906 6,19 5,77

Как показано в этом примере, жесткий диск, содержащий 12 000 цилиндров и 16 головок, с помощью стандартной схемы CHS со сдвигом разряда преобразуется в логический диск с 750 цилиндрами и 256 головками. В данном случае в соответствии с правилом переработанной схемы CHS со сдвигом разряда выполняется двойная трансляция, которая состоит в изменении числа физических головок (принимается число головок, равное 15, а не 16) и последующем умножении числа цилиндров (12 000) на выражение 16/15, в результате чего получается количество цилиндров, равное 12 800. После этого новое число цилиндров, полученное при CHS-трансляции со сдвигом разряда, делится на 16, в результате чего получается 800 логических цилиндров. По аналогии с этим, при умножении количества головок (15) на число 16 получаем 240 логических головок. Вычисленное количество логических цилиндров, превышающее число 1 024, уменьшается до 1 024. В этом случае 12 000 физических цилиндров и 16 головок транслируются в 800 логических цилиндров и 240 головок (вместо 750 цилиндров и 256 головок), что позволяет не обращать внимания на ошибки, существующие в операционных системах DOS/Win9x/Me.

До сих пор все приводимые примеры были достаточно понятны, т. е. вычисленные логические параметры L-CHS и физические параметры P-CHS соответствовали одной и той же емкости жесткого диска. К сожалению, этот метод подходит далеко не всегда. Ниже приведен довольно типичный пример, взятый из реальной жизни. Накопители емкостью 8,4 Гбайт, созданные в компаниях Maxtor, Quantum, Seagate и др., содержат 16 383 физических цилиндра и 16 головок CHS. При трансляции будут получены следующие параметры этих дисков.

Физические параметры

CHS

Логические параметры CHS со сдвигом разряда

Скорректированные логические параметры CHS со сдвигом разряда

Цилиндров Головок

Секторов на дорожке

16 383 16 63

1 023 256 63

1 024 240 63

Итого секторов

16 514 064

16 498 944

15 482 880

Итого байт Мегабайт Mebibytes (MiB) Гигабайт

Gibibytes (GiB)

8 455 200 768 8 455 8 064 8,46 7,87

7 927 234 560 7 927 7 560 7,93 7,38

8 447 459 328 8 447 8 056 8,45 7,87

Обратите внимание, что правила переработанной CHS-трансляции со сдвигом разряда позволяют поддерживать не более 7,93 Гбайт из общего объема жесткого диска, равного 8,4 Гбайт. Фактически параметры, приведенные в этом примере (в столбце с 240 головками), являются абсолютным максимумом, который может поддерживать переработанная CHS-трансляция со сдвигом разряда. К счастью, существует другой режим трансляции, позволяющий выйти из этого положения.

Трансляции LBA-Assist

Метод трансляции LBA-Assist не налагает каких-либо искусственных ограничений на физические параметры конфигурации жесткого диска, но работает только на тех накопителях, которые поддерживают адресацию LBA на уровне интерфейса ATA. К счастью, практически все накопители ATA, емкость которых превышает 2 Гбайт, поддерживают LBA. Трансляция LBA-Assist принимает параметры CHS, переданные диском, перемножает их для того, чтобы получить расчетное максимальное значение LBA (общее число секторов), а затем использует вычисленное число LBA для получения преобразованных (транслированных) параметров CHS. Основные правила трансляции LBA-Assist приведены в следующей таблице.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36]