<<<предыдущий список следующий>>>

Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer.


Previous Issue 10 Ноября 1997 года Next Issue

Всем новостям новость. Хакеры обнаружили уникальную ошибку в интеловских процессорах. По их словам, при исполнении последовательности инструкций 0xf0, 0x0f, 0xc7, 0xc8 пентиумы теряют нить повествования текущей исполняемой программы и замыкаются в себе, уходя в астрал. Виснут, короче и проще говоря.

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

В нормальной ситуации исполнение ошибочных или недозволенных инструкций из пользовательской программы ведет к генерации в процессоре так называемой исключительной ситуации. Процессор, грубо говоря, возмущается, и зовет операционную систему проверить, что случилось. Именно в этом случае Windows показывают на экране столь печально известное окошко с надписью General Protection Fault (GPF) или Unrecoverable Application Error, предлагая вам застрелить набедокурившую задачу.

Особенность же вышеописанного способа в том, что увидев среди команд эти 4 байта, процессор виснет сразу и намертво, никому ничего не говоря, и лекарства от этого просто нет. А главное - никак нельзя определить, какая именно из исполнявшихся программ исполнила недопустимое сочетание.

Сам Intel сохраняет молчание. Вчера часть сайта, посвященная новостям, вообще не работала, сегодня работает только половина, но среди представленых в ней новостей нет ни слова о новой ошибке.

Четыре вероломных байта выглядят в виде инструкции вот так:

lock cmpxchg8b eax

Первой в цепочке идет совершенно честная команда процессора. Правда, ввиду нераспространенности многпроцессорных систем на практике она применяется весьма редко, предназначена она для блокировки системной шины от других процессоров на время выполнения следующей команды. Суть ее сводится к требованию не вмешиваться в происходящее и дать данному процессору закончить свои дела, не прерываясь.

Следующая команда реализована не во всех версиях процессоров. В 486-х и раньше ее не бывает, насколько мне известно, а в пентиумах она, как правило, присутствует, но есть виды, не содержащие этой инструкции. Несколько читателей прислали нам сообщения о том, что именно их процессор не испытывает проблем с отбработкой "кода смерти" - дает ошибку исполнения неверной операции и продолжает работу.

В Pentium Pro и Pentium II команда cmpxchg8b есть, и реализована без ошибок.

Что же касается интеловских пентиумов, поддерживающих данную команду, то вина их относительно невелика. Ведь на практике инструкция cmpxchg8b не может применяться с операндом в регистре. Суть ее такова, что он обязан быть в памяти.

Если бы с процессором было все в порядке, неполноценная команда должна была бы вызвать исключительную ситуацию, и не более того. Однако... виснет, гад. Мы проверили на одной из редакционных машин - все честно. :-( Хотите проверить? Вот вам f00fc7c8.com - загрузите и запустите. Только не забудьте записать нужные файлы и вообще всячески приготовиться. Кстати, если у вас не интеловский процессор (amd, cyrix) - сообщите нам, пожалуйста, как они себя ведут.

Из нескольких источников известно, что Интел был предупрежден первооткрывателями ошибки до момента опубликования информации, но пресс-служба компании отрицает это и вообще комментировать событие не торопится.

NB! В предыдущей версии этой статьи была ошибка - команда 0fc7c8 была названа несуществующей. Несколько наших читателей сообщили об ошибке и в статью были внесены исправления. Спасибо всем, кто сообщил мне о том, что у меня - устаревший дизассемблер. :-)


Вряд ли ошибка F00F, как ее окрестили журналисты, имеет очень уж большое практическое значение для широких масс. Однако, реноме Intel в очередной раз подпорчено, и это не может не сыграть на руку конкурентам. Если, конечно, выяснится, что их процессоры не подвержены влиянию новой бомбы.

Предыдущие из найденых в Интеловских процессорах ошибок были, пожалуй, серьезнее. Интересно, что обе они относились к командам для работы с дробными числами - и известная ошибка в команде деления пентиума, и ошибка с преобразованием дробных в целые в Pentium Pro и Pentium II.


Из сообщений в usenet стало известно, что AMD K5 и K6 не содержат ошибки F00F. Пользователи Cyrix 6x86 тоже сообщают, что этому процессору не грозит беда.


Microsoft Internet Explorer начинает обгонять нетскейп. Сегодня счетчик рекламного сервера www.reklama.ru показал, что 53.3% пользователей предпочитают творение Микрософта, 45.8% - Нетскейпа, и 0.8% приходится на всех иных.


gmr.gif (14903 bytes)IBM-овские изыскания в области магниторезиста, наконец, дали результат, имеющий значение не только для владельцев ноутбуков.

Тут вот какая история. Традиционно с магнитными носителями работали с помощью магнитной головки. Это довольно несложная штука - сердечник с разрезом, и обмотка на нем. Разрезом ведем по намагниченному материалу (по "блину" диска, собственно), в обмотке наводится электричество, мы его измеряем и узнаем, что записано на диске - единичка, или нолик.

Все бы ладно, да только наводимое в обмотке напряжение напрямую связано со скоростью, с которой головка движется над поверхностью диска. Чем быстрее - тем выше напряжение. Головка, конечно, стоит на месте - движется диск, но суть от того не меняется. Зато вот относительная скорость диск-головка меняется - чем ближе головка к краю диска, тем больше линейная скорость. Дорожка-то у края длинее, чем у центра, а оборачивается за то же время. Скорость больше - больше и напряжение в головке. И чем большую часть поверхности винчестера мы хотим использовать, тем большей будет разница в диаметрах внешней и внутренней дорожек, и тем большей будет разница напряжений на головке при чтении внутренней и внешней дорожек.

Это создает проблемы для электронных схем, усиливающих сигнал с головки. Если сделать их чувствительными - внешние дорожки захлестнут нежные схемы своей мощью, и не дадут им работать в правильном режиме. Если сделать чувствительность меньше - не хватит чутья прочесть то, что на внутренних дорожках.

Все это портило винтостроителям аппетит многие годы, пока, наконец, IBM-еры не дотумкали писать на винт, как и раньше, магнитной головкой, а читать - магниторезистивной. Эта штука совершенно не интересуется скоростью движения диска. Она измеряет намагниченность того, что рядом лежит, хоть оно вообще не шевелись. А значит - нет больше проблем с разницей между дорожками.

Первым делом это было применено при создании сверхмаленьких винчестеров для ноутбуков - там разница в диаметрах дорожек просто катастрофическая. Нынче же - рывок на другом рынке. IBM сделал винчестер объемом в 16.8 гигабайта.

recpro.gif (20862 bytes)

Грубо говоря, так вот устроены головки в новых винчестерах. Красненьким нарисован магниторезистривный элемент - гвоздь программы.

Выпускаются две новых модели - основные характеристики их я привожу ниже:

Модель Deskstar 16GP Deskstar 14GXP
Интерфейс ATA-4 ATA-4
Емкость, гигабайт 14.4, 12.9, 10.1 16.8, 12.9, 10.1, 8.4, 6.4, 4.3, 3.2
Скорость вращения, об/сек 7200 5400
Скорость передачи данных носителя (макс.), Мб/сек 174.4 161.9
Скорость передачи данных интерфейса (макс.), Мб/сек 33.3 33.3
Скорость длительной передачи данных, Мб/сек 13-8 12-6
Среднее время позиционирования, мсек 9.5 9.5

В дополнение к магниторезистивному методу считывания новые диски используют и продвинутый метод записи на дорожки - так называемый No-ID формат. Отличие его от стандартного в том, что на дорожки больше не записывается информация о том, где какой сектор располагается. Диск хранит ее в отдельной памяти (флеш, или же записывается на спец-дорожки и считывается при включении), и просто заранее знает, где что искать, не рыская по всей дорожке. Как ни странно, удаление с дорожек идентификаторов дает при использовании магниторезиста дополнительную возможность повысить плотность записи на диск, а значит - и емкость при тех же размерах.

Под занавес - по слухам, стоить новый 16-гигабайтный зверь будет немного меньше тысячи. У них.


excimer_poster.gif (9487 bytes)Фирма "Эксимер" объявила о пятипроцентной скидке для читателей dz online. Чтобы получить скидку, нужно сказать сэйлс-менеджеру секретный пароль:"dz online". Позвонить в "Эксимер" можно по телефону 125-7001. Скидка действует как для частных лиц, так и для предприятий.

 

Я читаю новости, общаюсь с людьми, осмысливаю происходящее, и делаю выводы. Эта страничка - место, куда попадают некоторые из них. Иногда это просто издевки, иногда это - логические построения, иногда - шутки... Не стоит относиться к вышесказанному уж слишком всерьез. Однако, если нечто показалось Вам любопытным - пишите мне, пообщаемся. Если Вы нашли в сети нечто интересное, и хотите, чтобы я это откомментировал - обязательно пишите. Если у Вас возникла хоть какая эмоция - опять пишите. Хочу все знать. ;-)

Design (if any) and contents of these pages are c dz online, 1996-1997.

Other daily e-zines Web space provided by