«Открытые системы»

Значение 210 всего на 24 больше, чем 103, но нежелание вовремя учесть его породило проблему, хотя, может быть, и не слишком серьезную

Кбиту, равному одному двоичному разряду, и байту, равному восьми разрядам, мы уже привыкли, с ними никаких проблем не возникает. Аналогичные им «нибл» (nibble — четыре разряда), «рун» (rune, 16) и «квад» (quad, 32) давно забыты так же, как и использовавшиеся еще раньше слова, полуслова и двойные слова. А вот с более крупными единицами измерения объемов данных пока ясности нет, проблема неоднозначности возникла по причине близости значений двух величин 103 и 210. На вольность в обращении с этими 103 и 210 специалисты обращали внимание еще в шестидесятые годы, но организации, ответственные за стандартизацию, тогда не придали их обеспокоенности должного внимания, а проблема осталась. Чтобы понять ее суть, обратимся к простейшему примеру.

Поверхность стандартной 3,5-дюймовой дискеты разбита на 80 дорожек, каждая из них разделена на 32 сектора, то есть всего на дискете насчитывается 2880 секторов. В один сектор записывается 512 байт, в итоге на дискету вмещается 2880*512=1474560 байт, это точно, а дальше начинается путаница. Если считать мегабайтом 1000*1024 (103*210) байт, то на дискете получается примерно 1,47 мегабайт, а если считать мегабайтом 220, что в переводе в десятичную систему равно 1048576, то при делении 1474560 на него получается примерно 1,4 мегабайт. Расхождение вызвано тем, что к двоичным по своей природе данным прилагаются префиксы, заимствованные из системы СИ, где кило действительно тысяча, а мега обозначается миллион. При измерении физических величин сомнений нет, километр равен тысяче метров, а мегаватт миллиону ватт. Так что такое мегабайт: это 1000*1000 байт, 1000*1024 байт или 1024*1024 байт?

Удивительно, но по-своему корректны все три варианта. Первый из них покажется самым странным для человека, имеющего представление о двоичной системе счисления, но тем не менее именно его придерживалась до последнего времени Международная электротехническая комиссия (International Electrotechnical Commission, IEC). Ссылаясь на систему единиц СИ, она считает, что мегабайт равен 106 байт. В такой трактовке мегабайт интерпретируют также производители жестких дисков и DVD. Это они непродуманно внесли смятение в ряды простых пользователей. Возникло расхождение, поскольку память компьютеров тоже измеряется мегабайтами, но, по определению, она «чисто двоичная», поэтому здесь мегабайт равен 220 байта, что заметно больше, чем 1048576 байт. А вот дискеты измеряются вообще каким-то причудливым смешением: 103*210, то есть здесь мегабайт равен 1024000 байт.

Где же истина? Чтобы ответить на этот вопрос, начнем с килобайта, который действительно равен 1024 байт. По-английски пишут KB, по-русски Кбайт, и это, вроде бы, правильно. Использование прописной буквы К тоже вполне корректно, латинские децимальные префиксы в системе СИ пишутся с малой буквы: кило, мега и т. д. С ними путаницы нет, а большая буква К используется только для градусов Кельвина, эта шкала температур в быту не используется, ее не пытались внедрить, как когда-то Паскали для измерения атмосферного давления.

До тех пор, пока последствия, вызванные различием между десятичной (1000) и двоичной тысячами (1024) были не слишком заметны, никто не обращал особенного внимания на некорректность системы измерения, но по мере роста размеров дисков она стала ощутимее и привлекла к себе внимание. Допустим, человек покупает компьютер с емкостью диска, скажем, 20 мегабайт, а потом обнаруживает, что сформатированная емкость всего 18,6 мегабайт. Куда делись 1,4 мегабайт? А если он покупает флэш-память, где написано 256 килобайт, то видит те же самые значения на своем экране.

По понятным арифметическим причинам различие между двоичными значениями и десятичными будут тем больше, чем больше абсолютная величина. Между 1000 и 1024 байт разница всего 2,4%, но между йоттабайтом (280) и обычно ставящимся ему в соответствие числом 1024 различие 20,8%. На уровне гигабайт, которыми измеряются диски большинства компьютеров, различие меньше. Но тем не менее оно оказалось достаточным, чтобы организации, защищающие права потребителей, возбудили судебные процессы против производителей дисков. Были попытки доказать, что они вводят в заблуждение покупателей, завышая истинные размеры, но это совсем не так. Разумеется, ни о какой злонамеренности со стороны компаний говорить нельзя, использование десятичных единиц измерения в накопителях является исторической инженерной традицией, так повелось еще со времен перфолент. Ни один из исков выиграть не удалось.

Для того чтобы преодолеть это противоречие, в 1999 году комиссия IEC разработала новый стандарт IEC 60027-2, в котором предлагается заменить десятичные префиксы на двоичные, отличающиеся двумя буквами bi (от binary), и полностью отказаться от использования основания 10 в пользу основания 2.


Новые префиксы помогут снять неопределенность

За прошедшие годы наблюдается определенный рост популярности новой системы измерений, в 2005 году ее приняли американский институт IEEE и Международный комитет по мерам и весам CIPM (Comite International des Poids et Mesures). Для префиксов более exbi пока название не утверждено. Что же касается «старых» мегабитов и других единиц измерения, то никто официально не отменял принятых вариантов, поэтому при использовании десятичных префиксов возможна неоднозначность

Предложение IEEE и CIMP

Аналогично предлагается поступить и с единицами измерения, определяющими скорость передачи данных. Единица измерения частоты Герц взята из системы СИ, следовательно, в десятичной системе надо считать и скорость передачи. Скажем, 128 Кбит/с должно означать передачу именно 128 тыс. десятичных бит в секунду, что равно 15,625 Kiбит в секунду, а, например, скорость передачи 1 Мбит/с — 122 Kiбит в секунду

Две системы измерения объемов данных