Защита магнитных стержней во время работы процессора
Что будет, если остановился кулер на процессоре AMD или процессор включить вообще без кулера? Читайте о наших экспериментах с новейшими аппаратными системами защиты от перегрева на платах ASUSTeK и Soltek. Обжигающие результаты!
Высокое тепловыделение настольных процессоров компании AMD — популярная тема для разговоров. Кое-кто даже умудрился пожарить глазунью, использовав AMD Athlon XP 1500+ в качестве нагревательного прибора. Между тем «горячие парни» из AMD упорно настаивают на том, что их «камни» выделяют тепла не больше, чем Pentium 4 (подробнее об этом см. во врезке). Однако юзеру нет дела до абстрактных споров «кто горячее», ему важнее неприхотливость процессоров к теплоотводу и теплозащите. Впрочем, эта статья вовсе не о горячести процессоров, а о надежности защиты платформы AMD от перегрева процессора на примере пары свежих материнских плат популярных производителей.
Хорошо, положим и кулер вы выбрали «кульный», и пасту бочками «запастили» (бочками, кстати — тоже плохо), но вот собрали компьютер невнимательно, и какой-то провод или шлейф затормозил крыльчатку вентилятора на процессорном кулере (а то и просто забыли воткнуть питание кулера), кулер перегревается за считанные минуты (50–70 Вт от процессора не шутка), и… вы вынуждены идти в магазин за новым «камушком» (к сожалению, это не выдумки, а реальные факты из жизни грамотных сборщиков, а порой и профессионалов из крупных компьютерных фирм). Процессоры Intel Pentium 4 от такого казуса надежно защищены встроенной в них схемой под названием Thermal Monitor, а вот процессоры AMD пока нет. Другой не менее жизненный случай: поработал-поработал вентилятор на кулере и приказал долго жить. Сразу этого можно и не заметить, но за считанные минуты… — см. выше. А сколько бывает случаев некачественно надетого кулера, когда он прилегает к процессору с незаметным на глаз перекосом, но этого достаточно, чтобы потерялся термоконтакт со всей поверхностью «камушка» (что даже хуже, чем отсутствие термопасты). Кстати, я сам лично видел подобное в компьютерах, собранных известными московскими фирмами. Или вдруг, паче чаяния, вы включили компьютер, забыв поставить кулер на процессор (и такое случается), или разбираете компьютер, забыв его обесточить, сняли кулер, и тут вдруг питание случайно включилось… Думаю, последствия для процессоров AMD пояснять не нужно (для Pentium 4, к счастью, все значительно безопаснее).
В силу этого производители материнских плат уже давно озаботились тем, как защитить камни AMD, и вот уже более года почти все материнские платы имеют в своих BIOS Setup опцию защиты процессора от перегрева (ее можно активировать или дезактивировать по собственному желанию). Как правило, эта опция двухступенчатая: при превышении критической температуры (часто — задаваемой пользователем) компьютер оповещает об этом событии писком системного динамика, а если температура превысила другой (более высокий) порог, то компьютер (системная плата) сам обесточивается (по счастью, платы Socket A для блоков питания формата AT уже не выпускаются). Есть в BIOS Setup и опция предупреждения при остановке вентилятора (правда, она не всегда хорошо работает с некоторыми кулерами, и порой приходится ее отключать, чтобы не мешала).
У этого подхода к термозащите есть и достоинства, и существенные недостатки. Достоинства — простота реализации, дешевизна и возможность настройки порога пользователем. Как правило, платы для процессоров AMD сейчас имеют средства мониторинга (измерения) температуры CPU, поэтому достаточно лишь дописать небольшой код в BIOS, который сравнивал бы показания термодатчика с задаваемым порогом и выдавал импульс отключения питания. Теперь о недостатках. Во-первых, почти у всех современных и недавнего прошлого материнских плат для измерения температуры процессоров AMD используется внешний терморезистор (термистор), прижимаемый к чипу снизу (это лучший вариант) или расположенный на плате под процессором (то есть измеряющий фактически температуру платы в этом месте). В этих случаях точность измерения температуры самого процессорного ядра вызывает сомнения, да и оперативность отслеживания текущих значений температуры тоже не на лучшем уровне (процессор без кулера может разогреться до 150–200 градусов за несколько секунд, а датчик на плате этого даже не почувствует). Второй недостаток — программная, а не аппаратная реализация защиты, то есть для того, чтобы она сработала, необходимо, чтобы процессор все это время функционировал без сбоев и не зависал! А если он вдруг завис (либо перегрелся, либо его подвесила за уши очередная форточкина заморочка), защита, увы, не сработает — со всеми вытекающими последствиями.
Поэтому в нынешнем году (странно, почему не раньше?) некоторые производители стали оснащать свои материнские платы для Socket A специальной аппаратной защитой от перегрева процессора, свободной от двух вышеперечисленных недостатков. Принцип работы всех этих систем защиты в общем-то одинаковый: в материнскую плату добавлена микросхема, которая отслеживает температуру процессора по встроенному в Athlon XP термодиоду, и если показания превысят 85–95 °С, микросхема выдает аппаратный сигнал на выключение питания компьютера (напомню, что, согласно спецификации на процессоры, порогом работоспособности для Athlon XP и Duron является температура 90 градусов). Однако это все красиво в теории, а как системы термозащиты работают на практике, мы и решили выяснить — пока на примере двух плат: ASUS A7V333 и Soltek SL-75DRV5.
Отказы, возникающие при эксплуатации носителей информации на жестких дисках, могут быть вызваны очень многими причинами, в том числе и производственными дефектами. В данной статье мы рассмотрим природу отказов, вызванных внешними механическими воздействиями на жесткий диск (удары, сотрясения, толчки, т. к. именно они являются «невидимыми» провокаторами гибели винчестера в 53% случаев), а также технологии, реализуемые в последних модификациях жестких дисков с целью значительного повышения устойчивости носителей к указанным воздействиям.
Любой отказ или неисправность в накопителе может обернуться частичной или полной потерей очень важной и порой бесценной информации. В виду того, что значительная доля неисправностей в накопителях является следствием непредусмотренных спецификациями механических воздействий на них, в настоящее время особое внимание стало уделяться защите HDD от ударов и толчков.
Британия изолировать РФ от IT- технологий, но дело не выгорит
Очередная волна антироссийских санкций со стороны Великобритании накрыла отечественных разработчиков процессоров — в опубликованном 4 мая списке значатся компания АО МЦСТ, выпускающая процессоры «Эльбрус», а также АО «Байкал электроникс», производящая процессоры Baikal. У них заморозили активы, предприятиям Королевства запретили оказывать им технологические и финансовые услуги. Среди запретительных мер значится ограничение на использование британской архитектуры ARM. Теперь им предстоит воспользоваться контрафактом или искать замену.
Запрет использования ARM весьма чувствителен для «Байкал электроникс», работающий по лицензии с данной архитектурой. Теперь, возможно, им придется воспользоваться открытыми — RISC-V, MIPS или VLIW.
Ранее производители российских процессоров, в том числе МЦСТ, «Байкал электроникс», НТЦ «Модуль», НТЦ «Элвис» уже попали под американские санкции, согласно которым зарубежные партнеры обязаны координировать с Бюро промышленности и безопасности американского министерства торговли реализацию российским предприятиям собственной технологической продукции.
Как поясняет председатель совета Фонда развития цифровой экономики Герман Клименко, назвать процессоры «Эльбрус» и Baikal российскими можно было с большой натяжкой.
— Здесь сложилась довольно своеобразная картина, довольно распространенная в производстве оборудования: мы берем детали в Китае, что-то делаем из них делаем на заводе в Китае, везем в Россию, а потом выдаем это за отечественную продукцию — за результат политики импортозамещения. Государство в данном направлении, мягко говоря, ошиблось. Сфера высоких технологий все же отличается от аграрной, где для выращивания некоторых продуктов используется импортный посевной материал. Там действительно можно отказаться от импорта, пусть потеряв в количестве. Мы вырастим меньше продукции, но она будет точно своя. В IT такого достичь не удается.
«СП»: — Значит, желаемое выдавалось за действительное?
— Примерно так. Когда несколько лет назад мы попали под санкции, чиновникам нужно было говорить, что у нас есть что-то свое. Теперь мы получили, что получили. Не всякий же высокопоставленный чиновник рискнет изложить первому лицу реальную картину. Получается, прежде мы вводили в заблуждение общественность. Может, сейчас говорить об этом не слишком к месту, но ведь все равно когда-то об этом сказать придется.
«СП»: — Есть ли какие-то варианты выхода из ситуации?
— Обращаться за помощью к Китаю, я не вижу иного выхода. Поднебесная все-таки считается нашим союзником, стратегическим партнером.
Три года назад, когда компания Huawei попала под санкции, они приезжали в Россию и предлагали сотрудничество, в котором они нуждались. Они вели переговоры с разработчиком «Эльбруса». Предлагали свои сервера. Но наши отказали по причине вдруг возникшей гордости — мол, у нас есть собственные. Их сервера, может, не такие мощные, но построенные на собственных технологиях, которые обслуживают несколько центров с общей численностью несколько тысяч человек.
Сейчас, надо сказать, та же Huawei не горит желанием с нами сотрудничать, опасаясь попасть под вторичные санкции. Так что, нельзя недооценивать возможности партнера и переоценивать свои собственные.
«СП»: — Но что-то же у нас производят?
— Делают на старых компонентах, этого немного, но для оборонных нужд вполне достаточно. В ситуации с процессорами мы просчитались.
Думаю, стоило упирать прежде всего на то, где мы сильны — на программирование. Скажем, сейчас на «Касперского» грозят санкциями, всевозможными карами, однако все понимают, что на практике это крайне сложно будет сделать, потому что огромный пласт компьютеров в мире завязаны на нем.
«СП»: — Какая судьба может ожидать «Эльбрус» и Baikal?
— Возможно, все будет по старой традиции — станут делать вид, будто что-то делают. Здесь можно вспомнить судьбу некогда широко разрекламированной национальной поисковой системы «Спутник» и одноименного браузера. Когда ввалили огромные деньги, о нем много говорили, но потом он тихо умер.
«СП»: — Для зарубежных партнеров разрыв сотрудничества с нашими компаниями будет чувствительным?
— При существующих у них объемах экономики, наш рынок не слишком значимый.
Впрочем, по словам директора по развитию компании Promobot (занимается разработкой робототехники) Олега Кривокурцева, с разработкой процессоров все обстоит не настолько печально.
— Конечно, сотрудничество с британской стороной было важным для МЦСТ и «Байкал электоникс», и введенные санкции создадут им проблемы. Но я точно знаю, что эти проекты свернуты не будут. У компаний-создателей был разработан «план Б» на случай возникновения подобной ситуации. Конечно, теперь сроки реализации проектов будут несколько сдвинуты, но их уверяю вас, не забросят.
«СП»: — Насколько сдвинутся сроки?
— Примерно на год. Думаю, через это время они представят общественности результаты своих трудов.
«СП»: — Тема технологического суверенитета сейчас активно обсуждается в прессе и экспертном сообществе? Насколько возможна такая автаркия в области высоких технологий?
— Абсолютно невозможна. Причем ее не сможет обеспечить себе ни одна страна. Высокие технологии потому и развиваются так быстро, что происходит обмен идеями, навыками, знаниями специалистов всего мира. Это ведь не просто общение, но и обмен научными школами, подходами. Конечно, мы будем перенимать опыт, воспроизводить что-то и создавать свое. Но Россия точно не станет отгораживаться от мира в данной сфере, а изолировать нас точно невозможно.
Samsung
В первом квартале 2000 года компания Samsung представит в России две новые модели винчестеров серии SpinPoint: V9100 и V10200. Cовместное использование в этих моделях двух собственных технологий защиты от ударов ImpacGuard (ТМ) и Shock Skin Bumper (ТМ) позволит обеспечивать защиту от ударных воздействий с уровнем до 250G в нерабочем состоянии. Более ранние модели SpinPoint серий V6800, V4300, V4, V3, V3A, V3200 имеют показатели 75G для длительности воздействия в 11 ms (или 200G Ref. для длительности в 2ms). Несколько выпадает из этого ряда модели серии W2100, у которой эти показатели ниже.
Fujitsu
Компания не изобретала и не патентовала каких либо громких технологий по защите дисков от ударных воздействий, но, тем не менее, многие из производимых в настоящее время винчестеров очень устойчивы к нерабочим ударным нагрузкам. Например, винчестеры серий MPE3xxx имеют удароустойчивость на уровне 250 G. А модели серий Hornet 9, 10, 11 до 600 G! Причем, их варианты для мобильных компьютеров способны нормально переносить до 700 G в нерабочем состоянии и до 125 G во время работы.
Магнитно-резистивные головки и их работа
Принцип работы магнитно-резистивной (MR) головки при чтении данных состоит в изменении сопротивления электрическому току в соответствии с изменением магнитного поля. Элемент чтения такой головки представляет собой очень тонкую пленку специального материала, которая меняет свое сопротивлении в соответствии с расположением магнитных доменов на поверхности вращающегося диска. Расположение этих доменов, определяется записанной на диск информацией. Изменение сопротивления пленки, регистрируется специальным каналом чтения и передается на дальнейшую обработку компаратору, окончательно определяющему, что было записано, ноль или единица. MR головки обладают еще одним свойством, непосредственно относящимся к нашей теме — конечное активное сопротивление пленки зависит от ее температуры.
В нормальных условиях, при раскрученном до рабочих оборотов диске, воздушный поток приподнимает головку над диском, и она парит над гладкой поверхностью диска, не касаясь его. Если же на диске будут частицы или неровности сопоставимые по размерам с зазором между головкой и диском, то они, проносясь с огромной скоростью под парящей головкой, задевают ее, и трение мгновенно разогревает головку. Этот нагрев, тут же сказывается на сопротивлении пленочного покрытия головки и оно резко повышается. Канал чтения неверно интерпретирует изменение сопротивления головки и чтение данных в этом месте становится невозможным.
Постоянное воздействие температуры преждевременно старит головку, а проносящиеся под головкой частицы действуют как абразивная шкурка. Способность головки реагировать на изменение магнитного поля ухудшается со временем (на диске появляются все новые и новые нечитаемые сектора, или как говорят диск начал «сыпаться»), и в конечном итоге происходит полный выход головки из строя.
Western Digital
Мне не удалось найти какой либо информации о применяемых в винчестерах данной компании специальных технологиях защиты от ударов. Но, судя по техническим данным винчестеров, этих технологий возможно и не было. Ряд моделей запущенных в производство совсем недавно, имеют повышенную ударостойкость на уровне 150-200 G. Остальные модели на уровне 60-70 G. Поэтому также требуют очень нежного обращения.
Существующие на настоящий момент накопители серий DeskStar и UltraStar емкостью свыше 3.5 Gb имеют удароустойчивость на уровне 175 G в нерабочем состоянии. Модели этих серий с емкостью ниже 3.5 Gb имеют меньшие возможности выдержать внешние ударные воздействия. Модели винчестеров для мобильных компьютеров серии TravelStar от 2.2 Gb и выше обладают очень неплохими показателями и способны переносить до 400-500G в нерабочем состоянии и до 150 G в рабочем. Недавно анонсированные новые модели винчестеров UltraStar 36, 72 будут производится с использованием технологии Active Damping, которая позволит эксплуатировать эти винчестеры в условиях с повышенным уровнем вибрации.
Ударное воздействие и его последствия
Падение жесткого диска (пусть даже с очень небольшой высоты) может вызвать внутренние повреждения в накопителе, несмотря на то, что внешне корпус винчестера выглядит безупречно, и на нем нет следов механического воздействия. Самым безопасным такое воздействия будет, если отказ HDD или наличие ошибок на нем были обнаружены при тестировании на заводе изготовителе. В этом случае, накопитель выбраковывается и на этом его жизненный путь закончен. Это не страшно, т. к. он никогда не поступит в эксплуатацию и на него никогда не будет записана информация. Гораздо хуже, если возникшие неисправности при тестировании себя никак не проявили, и накопитель поступил в продажу. Подобные неисправности опасны тем, что они проявят себя позже, постепенно ухудшая параметры накопителя, они несут угрозу хранящимся на накопителе данным…
-
Удар — это резкое и сильное механическое воздействие на предмет характеризующееся очень малой длительностью. Удары характеризуются огромными ускорениями, которые получает предмет за очень непродолжительное время. Поэтому уровень ударного воздействия, которому подвергнулся предмет, принято измерять в единицах кратных ускорению свободного падения G, равное 9,8 мс2.
-
Рабочая ударостойкость определяет его стойкость к ударам в рабочем состоянии, при которых обеспечивается безошибочность записи/чтения. Рабочая ударостойкость обычно не велика и составляет около 10-15G у старых накопителей и до 70-150 у новейших, собранных с применением технологий защиты. К счастью, накопители, находящиеся в рабочей системе подвергаются ударам очень редко, да и энергия этих воздействий значительно снижается элементами конструкции корпуса компьютера, поэтому повреждения в этом состоянии жесткие диски получают редко.
Чаще всего жесткие диски испытывают ударные воздействия в моменты транспортировок от поставщика к потребителю и в процессе его установки в PC недостаточно квалифицированным или плохо осведомленным персоналом. В России ситуация часто усугубляется тем, что партии винчестеров перевозят неподготовленным для этого транспортом, не предусматривая никаких дополнительных мер защиты на случай столкновения автомобиля или просто резкого торможения. Очень часто фирмы — продавцы комплектующих, при продаже винчестеров передают их покупателю упакованными в одну единственную электростатическую оболочку. А ведь покупателю его еще до дома или до работы везти. И где гарантия, что сам продавец, не стукнул этот винт, а это очень вероятно в таких точках торговли, как радиорынки. Достаточно посмотреть, как там с ними обращаются. Более того, достаточно сильное ударное воздействие жесткий диск может испытать, если случайно ткнуть его монтажным инструментом, например отверткой, стукнув два винчестера между собой или в результате усиленного проталкивания винчестера в его посадочное место в корпусе компьютера… На рисунке 1 показаны наиболее типичные случаи возникновения ударных воздействий на винчестеры и степень их воздействия на жесткие диски. По вертикали — сила воздействия в единицах кратным ускорению свободного падения (G), по горизонтали длительность воздействия.
- шлепок головок;
- проскальзывание и смещение дисков в пакете;
- появление люфта в подшипниках.
Самым распространенным последствием удара в накопителе является «шлепок головок», Рисунок 2. Он происходит когда энергиия удара направлена вертикально или под некоторым углом к горизонтальной плоскости. В этом случае, происходит отрыв магнитой головки от поверхности диска и затем ее резкое опускание на поверхность магнитного диска. В момент соприкосновения, головка врезается в поверхность своей кромкой, положение головки выравнивается и она с силой прижимается к поверхности всей плоскостью. В результате этого диск получает поверхностные повреждения, мельчайшие частички и осколки рассеиваются по поверхности магнитного диска.
Не стоит думать, что эти осколки смогут улететь за пределы диска в виду центробежных сил возникающих при бешеном вращении диска. По причине магнитной природы диска и микроскопического размера осколков, они остануться на диске и ничем их оттуда не убрать. Кроме того, после удара, сама головка может получить физическое повреждение, а ее магнитные свойства резко ухудшаются. На практике данные повреждения проявляются в виде так называемых «битых кластеров». Если просматривать такой диск в программах с визуальным интерфесом типа Norton Speed Disk, то повреждения поверхности проявятся в виде одного или нескольких хаотично расположенных сбойных кластеров. Повреждения вызванные дефектом одной из головок скорее всего проявятся в виде гораздо большего количества дефектных кластеров и в их расположении будет четко отслеживаться некоторая закономерность. Но даже в том случае, если дефекты на диске не проявились сразу после ударного воздействия на накопитель, эти дефекты дадут о себе знать позже (через месяц или даже через год!). Почему? Давате рассмотрим этот вопрос детальней.
Maxtor
Maxtor тоже не осталась в стороне, и разработала свою собственную технологию, получившую название ShockBlock. Первой моделью накопителя с этой технологией, стала модель DiamondMax Plus 5120. Как и в технологиях конкурентов, проблема шлепка головки решается в ней за счет уменьшения физических размеров и массы головки. Но здесь Maxtor, добавила еще одно решение. Все мы знаем, что в нерабочем состоянии головки винчестера размещаются в так называемой landing zone, в зоне, куда запись информации никогда не производится. Поэтому, укрепив покрытие магнитного диска в landing zone, компания заметно уменьшила вероятность появления мелких частиц и осколков в случае, когда головка все же ударялась о диск накопителя в отключенном состоянии.
Дальнейшим развитием этой технологии стала технология ShockBlock Enhanced. Теперь Maxtor утверждает, что ее технология позволяет накопителям ее производства противостоять ударам с уровнем до 1000 G!. Первым накопителем произведенным с этой технологией стал DiamondMax 6800. Чем же достигнута такая высокая ударостойкость. По мнению Maxtor, делая держатели головок более гибкими, производители не только не снижают силу шлепка головки о диск, а даже увеличивают его, так как эффект «хлыста», только усиливает удар. Maxtor наоборот сделала держатели гораздо более упругими в своих новых накопителях. Неизбежно, увеличив упругость держателя, компании пришлось дополнительно решать вопрос обеспечения прежнего «парения» головок над диском во время его вращения. И видимо ей это удалось. Более того, компания пошла дальше. Справедлив рассудив, что пагубным эффектом является не столько сам шлепок, а его последствия (частицы и осколки на диске), то нужно сделать так чтобы даже после шлепка появление осколков было мене вероятным. Посмотрите на рисунок. Головка, опускаясь после удара, всегда бьет о диск своей кромкой. Вероятность повредить диск — очень велика.
Поэтому компания изменила конструкцию крепления головки к держателю таким образом, что бы даже во время шлепка, головка ударялась о диск равномерно всей поверхностью. Это в несколько раз уменьшает вероятность появления осколков и частиц после удара головки.
Заключение
Жесткий диск очень чувствительное к тряскам и ударам устройство и поэтому требует к себе очень внимательного отношения. Диски, произведенные год, полтора назад, имели очень не большую удароустойчивость (на уровне 60-100G), поэтому некоторые из вас, наверное, только сейчас видят на своем «винте» результаты удара произведенного год назад, о котором вы даже и не подозревали.
Купив винчестер, обратите внимание на появившиеся сбойные кластеры в течение гарантийного срока, и если появился хотя бы один - срочно меняйте. И не поддавайтесь ни на какие убеждения продавцов по поводу того, что один два нечитаемых кластера — это в пределах нормы. Появление битых кластеров неизбежно приведет к появлению новых и новых, вплоть до выхода винчестера из строя. Вопрос только в том, насколько долго он протянет.
Вы наверняка интуитивно догадывались, что приложения, выполняемые на Intel x86 компьютерах, ограничены в своих возможностях, и что некоторые действия могут быть выполнены исключительно операционной системой. Но знаете ли вы, как это действительно работает? В данном посте рассмотрим уровни привилегий x86 — механизм, в котором ОС и процессор действуют сообща для того, чтобы ограничить то, что могут сделать user mode приложения.
Существуют четыре уровня привилегий, они пронумерованы от 0 (наиболее привилегированный уровень), до 3 (наименее привилегированный уровень), и три типа ресурсов, в отношении которых действуют механизмы защиты процессора: память, порты ввода / вывода и возможность выполнения некоторых инструкций. В любой момент, x86 процессор работает на определенном уровне привилегий, и от этого зависит, что может и чего не может сделать код. Уровни привилегий также часто называют кольцами защиты, которые изображаются в виде вложенных окружностей. Наиболее привилегированный уровень соответствует окружности с наибольшей степенью вложенности. Большинство современных ядер для архитектуры x86 используют всего два уровня привилегий — 0 и 3.
Перед тем как мы обратимся к рассмотрению механизма защиты, давайте посмотрим как именно процессор следит за текущим уровнем привилегий. К этому имеют непосредственное отношение сегментные селекторы (segment selectors), которые мы рассмотрели в предыдущем посте. Вот они:
Программист использует определенные инструкции для того, чтобы загрузить сегментный селектор для data сегмента в любой из сегментных регистров для данных (например SS или DS). При этом загружается все содержимое сегментного селектора, включая поле Requested Privilege Level (RPL), предназначение которого опишем немного ниже. Что касается CS регистра, то здесь все происходит несколько иначе. Во-первых, нельзя напрямую использовать load инструкции вроде mov для того, чтобы загрузить селектор в этот регистр. Вместо этого, содержимое регистра может измениться только как результат выполнения инструкции, которая управляет потоком выполнения, например far call. Во-вторых, и это для нас очень важно, вместо поля RPL, значение которого определяется программистом, селектор в CS регистре имеет поле Current Privilege Level (CPL), значение которого выставляется и контролируется самим процессором. Двухбитовое поле CPL в CS регистре всегда отражает текущий уровень привилегий, на котором работает процессор. Интелловские доки, в том числе те, которые опубликованы на просторах Интернета, могут иметь рассхождения по этому вопросу, однако, данный факт совершенно точно отражает суть вещей. В любой момент, чтобы там не происходило в самом процессоре, взглянув на значение поля CPL в CS регистре, мы всегда узнаем текущий уровень привилегий, с которым выполняется код.
Обратите внимание, текущий уровень привилегий процессора, не имеет ничего общего с привилегиями пользователями операционной системы. Совершенно не важно из под какой учетки вы работаете — root, Администратор, guest или обычный пользователь. Код всех пользовательских приложений выполняется в кольце 3, в то время как любой код, имеющий отношение к ядру, выполняется в кольце 0. Иногда некоторые типичные для ядра задачи могут выносить в user space – так, например, реализованы некоторые драйверы в Windows Vista, но это можно рассматривать всего лишь как частный случай, когда специального рода процессы просто выполняют некоторую работу для ядра. Обычно их можно убить без каких бы то ни было серьезных последствий.
Из-за существующих ограничений на доступ к памяти и портам ввода / вывода, выполняемая в user mode программа сама по себе фактически никак не может влиять на “окружающий мир” и ничего не может сделать без содействия ядра. Такая программа не может открыть файл, послать сетевой пакет, вывести на экран строчку текста, или выделить под себя память. Можно сказать, что пользовательские процессы выполняются в своего рода песочницах с кардинально урезанными возможностями, которые для них были уготованы “богами нулевого кольца”. Таким образом, утечка памяти, если таковая и вызвана процессом, не может пережить сам процесс, точно также как файлы, открытые во время жизнедеятельности процесса, не останутся открытыми после его завершения. Все структуры данных, используемые для контроля подобных вещей – выделенной памяти, открытых файлов – недоступны для пользовательского кода; как только программа завершает выполнение, её “песочница” уничтожается ядром. Именно поэтому современные сервера могут иметь по 600 часов аптайма – если железо или ядро не заглючит, все может проработать вечно. И это, кстати, причина, по которой Windows 95 / 98 так часто падала: нет, это не потому что “M$ — отстой”, просто для обеспечения обратной совместимости некоторые важные структуры данных оставили доступными для user mode приложений. В то время, это наверное был разумный компромисс, но обошелся он весьма дорогой ценой.
Процессор защищает память в двух стратегических точках: в момент, когда производится попытка загрузить сегментный селектор в регистр, а также когда происходит обращение к странице памяти. Механизм защиты, таким образом, отражает основные этапы адресной трансляции, где также задействованы и сегментация, и пейджинг. Попытка загрузить сегментный селектор сопровождается следующей проверкой:
Чем число больше, тем меньший уровень привилегий оно обозначает. Таким образом, функция MAX() выбирает значение, выражающее наименьший уровень привилегий (будь то CPL или RPL), которое затем сравнивается с уровнем привилегий целевого дескриптора (DPL). Если DPL больше или равен, до доступ разрешается. Весь смысл в использовании RPL в этой формуле заключается в том, что это позволяет ядру получать доступ к сегменту с умышленно заниженным уровнем привилегий, если это необходимо. Например, можно использовать селектор, в котором задан RPL равный 3 для того, ограничить некоторую операцию возможностью работать только с user mode сегментами данных. Проверка при загрузке селектора в SS регистр другая, здесь для успешного её прохождения все три значения CPL, RPL и DPL должны совпадать.
В действительности, защита на уровне сегментов особой роли не играет, так как современные ядра используют «плоскую» модель организации памяти, в которой user mode сегмент покрывает все доступное физическое адресное пространство. Сколь-нибудь полезная защита памяти осуществляется в paging unit при преобразовании линейного адреса в физический. Каждая страница памяти представляет собой последовательность байт, которая описывается записью в page table. В этой записи два поля имеют отношение к механизмам защиты, а именно supervisor флаг и read/write флаг. Supervisor флаг – основной механизм защиты, используемый современными ядрами. Когда данный флаг сброшен, к странице нельзя обратиться из кольца 3. Хотя read/write флаг не играет никакой роли при проверке привилегий, он все равно находит интересное применение. При загрузке программы в память на выполнение, страницы памяти, хранящие исполняемый образ программы, помечаются как доступные только для чтения. Это позволяет отловить некоторые ошибки при работе с указателями, если с помощью них производится попытка осуществить запись в эти страницы. Read/write флаг также используется для реализации механизма copy on write при создании дочернего процесса с помощью системного вызова fork() в Unix-подобных ОС. Когда производиться форк, страницы памяти родительского процесса помечаются как доступные только для чтения. Дочерний процесс изначально будет использовать те же самые страницы памяти, что и родительский процесс. Если кто либо из них попытается осуществить запись в страницу памяти, процессор инициирует fault, и ядро отработает его следующим образом – оно создает для процесса, попытавшегося осуществить запись, собственный экземпляр страницы, а также выставит на эту страницу read / write права.
Идем дальше. Нам необходим механизм, который позволил бы CPU переключаться между разными уровнями привилегий. Если бы код, выполняющийся в кольце 3, мог передавать управление в произвольные места в ядре, можно было бы легко обойти защитные механизмы операционной системы просто осуществив jmp по неправильному (или правильному?) адресу. Чтобы воспрепятствовать этому, нужен механизм, обеспечивающий контролируемый трансфер потока выполнения. Он реализован на основе т.н. gate дескрипторов или инструкции sysenter. Gate дескриптор – это сегментный дискриптор, имеющий тип «system». Существуют четыре его разновидности: call-gate, interrupt-gate, trap-gate и task-gate дескрипторы. Посредством сall-gate дескриптора, ядро может предоставить точку входа, которую можно использовать с помощью обычных инструкций типа far call и far jump. Call-gate дескрипторы используются нечасто, поэтому рассказывать о них не будем. Task-gate дескрипторы нам то же мало интересны (в Linux они используются только при обработке double faults, которые обычно случаются из-за проблем с ядром или железом).
Остаются два других гораздо более интересных типа дескрипторов: interrupt-gate и trap-gate, которые используются для обработки хардверных прерываний (клавиатура, таймеры, диски) и исключений (page faults, деление на ноль). Оба эти типа механизмов я буду условно называть «прерывания». Данный тип дескрипторов хранится в таблице дескрипторов прерываний (IDT). Каждому прерыванию устанавливается в соответствие идентификационный номер от 0 до 255, называемый вектором. Когда нужно определить какой дескриптор использовать для обработки прерывания, процессором использует вектор в качестве указателя на дескриптор в IDT. Формат interrupt-gate и trap-gate дескрипторов фактически идентичен. Данный формат, а также проверка привилегий, которая совершается, когда происходит прерывание, изображены на рисунке. Я заполнил некоторые поля дескриптора теми значениями, которые обычно используются ядром Linux, чтобы добавить конкретики:
Доступ контролируется на основании текущего СPL и DPL целевого сегмента, а точка входа определяется на основе селектора и поля Offset в gate-дескрипторе. В современных ядрах, сегментный селектор, содержащийся в соответствующем поле gate-дескриптора, обычно выбирает code сегмент ядра. Механизм прерываний устроен так, что не может быть использован для передачи управления из более привилегированного кольца в менее привилегированное кольцо. Уровень привилегий должен либо остаться на прежнем уровне, либо повыситься (так происходит, когда, например, осуществляется прерывание user mode приложения). В любом случае, новое значение CPL будет равно DPL целевого code сегмента. В ситуации, когда CPL меняется, также происходит автоматическое переключение stack сегмента. Если прерывание является программным (вызвано выполнением инструкции INT n, например), дополнительно осуществляется еще одна проверка: gate DPL должен быть равен или больше чем исходный CPL. Данная проверка призвана сделать вызов некоторых обработчиков прерываний недоступным для пользовательского кода. В Linux, все обработчики прерываний выполняются в кольце 0.
Во время инициализации, функция ядра Linux setup_idt() создает IDT таблицу без указания конкретных точек входа в дескрипторах. Затем дескрипторы будут заполнены данными в соответствии с содержанием файлов include/asm-x86/desc.h и arch/x86/kernel/traps_32.c. В терминологии Linux, дескриптор, который имеет в своем названии слово «system», доступен для использования user mode кодом, и для него устанавливается gate DPL равный 3. “System gate” – это интелловский trap-gate, доступный для использования user mode кодом. Помимо этого, отличий в терминологии больше нет. Хардверные прерывания настраиваются не здесь, а в соответствующих драйверах.
Три гейта доступны для использования в user mode: векторы 3 и 4 используются для отладки и проверки на числовые переполнения, соответственно. Затем идёт system gate, имеюший ID равный значению константы SYSCALL_VECTOR — для x86 архитектуры это 0x80. Раньше это был основной механизм для передачи управления ядру при осуществлении системного вызова. Было время, когда и я хотел себе блатной номер с символами “int 0x80”. Начиная с Pentium Pro была добавлена новая инструкция sysenter, предназначенная для более быстрого осуществления системного вызова. Данная инструкция использует специальные регистры, которые хранят информацию о code сегменте, точку входа и т.п. При выполнении инструкции sysenter не производится проверка уровня привилегий, процессор сразу же переключается в CPL 0 и загружает соответствующие значения в регистры, имеющие отношения к коду и стеку (CS, EIP, SS и ESP). Загрузка значений в регистры, используемые инструкцией sysenter, возможна только из колца 0 и осуществляется функцией enable_sep_cpu().
Наконец, когда настает время вернуться в кольцо 3, ядро использует инструкцию IRET или SYSEXIT для того, чтобы вернуть контроль после обработки прерывания или системного вызова, соответственно. В результате, мы покидаем кольцо 0, и возобнавляется выполнение user mode кода с CPL равным 3. Vim подсказывает мне, что количество слов уже близко к отметке 1900, поэтому оставим тему портов ввода / вывода на потом. Всем спасибо за внимание!
После того, как Nvidia представила антимайнинговую защиту LHR, добытчикам криптовалют (в основном, Ethereum) пришлось несладко. Постепенно разработчики майнеров повышали эффективность работы 3D-карт LHR, но дальше отметки в 70% никто не шагнул. До сегодняшнего дня.
Разработчики NiceHash объявили об успешной разблокировке защиты LHR – теперь при использовании майнеров NiceHash QuickMiner или NiceHash Miner будет достигаться 100-процентная эффективность любых 3D-карт Nvidia с защитой LHR – от RTX 3060 до RTX 3080 Ti. К слову, в NiceHash уже протестировали GeForce RTX 3080 Ti, и она выдала 120 MH/s при добыче Ethereum – ровно столько, сколько и должно быть. Примерно на том же уровне Ethereum добывает GeForce RTX 3090 – единственная 3D-карта Nvidia серии RTX 30, которую защита LHR обошла стороной.
Уже есть и первый независимый тест обновленного майнера NiceHash – его провела команда польского ресурса Benchmark.pl. Результат все той же GeForce RTX 3080 Ti при добыче Ethereum – 117 MH/s. Для сравнения, ранее производительность такой 3D-карты при добыче Ethereum составляла около 85 MH/s при использовании того же майнера.
В общем, сейчас действительно можно говорить о том, что защита LHR сломана окончательно. Связано ли это с недавним взломом корпоративной сети Nvidia и хищением из нее большого объема конфиденциальных данных – непонятно. Но хакеры уже тогда отмечали, что получили доступ к решению, которое позволяло обойти антимайнинговую защиту видеокарт на базе графических процессоров GA102 и GA104.
Quantum
Технология SPS
Технология SPS (Shock Protection System) была разработана в первой половине 1998 года и впервые внедрена в винчестерах серии Fireball EL. Она представляет собой 14 улучшений и технологических решений в конструкции накопителя направленных, прежде всего на поглощение и минимизацию отрицательного эффекта ударов с высокой энергией и коротким временем воздействия. Это явилось результатом долгого и тщательного исследования поведения, взаимодействия конструктивных элементов, нагрузок и их распределения во время удара. Повторимся, самым пагубным последствием таких ударов, является отрыв головки от диска и ее дальнейший резкий шлепок по нему. Решения примененные инженерами Quantum исключают или значительно уменьшают высоту отрыва головки при ударе (Рисунок 3). Основная энергия удара поглощается остальными конструкциями накопителя, что предотвращает шлепок и появление осколков, ведущих к преждевременному старению жесткого диска. На настоящий момент, следующие модели Quantum собираются с применением SPS: VikingII, Fireball EL, Fireball CX, Fireball CR, Fireball Plus KA, Fireball Plus KX, Atlas III, Atlas IV, Atlas 10k, BigFoot TS.
Технология SPS II
Технология SPS II явилась логическим продолжением технологии SPS и была объявлена в 1999 году. Первым жеским диском с такой технологией стал Fireball Ict В то время как, SPS обеспечивала повышенный уровень устойчивости к ударам полученным накопителем в нерабочем состоянии, SPS II дополнительно защищает работающий накопитель от производства записи /чтения в моменты удара и тряски возникающие в случае толчков системного блока работающего компьютера. Вместо записи на диск, данные кэшируются, и будут записаны на диск позже, когда энергия толчка будет поглощена и диск будет в спокойном состоянии. Рисуноки 4 и 5 показывают процесс записи в момент удара на не защищенный и защищенный технологией SPS II диски. На момент написания SPS II используется в трех новейших моделях Quantum — Fireball Ict, Fireball Ict10k и AtlasV.
Ударное воздействие и его последствия
Падение жесткого диска (пусть даже с очень небольшой высоты) может вызвать внутренние повреждения в накопителе, несмотря на то, что внешне корпус винчестера выглядит безупречно, и на нем нет следов механического воздействия. Самым безопасным такое воздействия будет, если отказ HDD или наличие ошибок на нем были обнаружены при тестировании на заводе изготовителе. В этом случае, накопитель выбраковывается и на этом его жизненный путь закончен. Это не страшно, т. к. он никогда не поступит в эксплуатацию и на него никогда не будет записана информация. Гораздо хуже, если возникшие неисправности при тестировании себя никак не проявили, и накопитель поступил в продажу. Подобные неисправности опасны тем, что они проявят себя позже, постепенно ухудшая параметры накопителя, они несут угрозу хранящимся на накопителе данным…
-
Удар — это резкое и сильное механическое воздействие на предмет характеризующееся очень малой длительностью. Удары характеризуются огромными ускорениями, которые получает предмет за очень непродолжительное время. Поэтому уровень ударного воздействия, которому подвергнулся предмет, принято измерять в единицах кратных ускорению свободного падения G, равное 9,8 мс2.
-
Рабочая ударостойкость определяет его стойкость к ударам в рабочем состоянии, при которых обеспечивается безошибочность записи/чтения. Рабочая ударостойкость обычно не велика и составляет около 10-15G у старых накопителей и до 70-150 у новейших, собранных с применением технологий защиты. К счастью, накопители, находящиеся в рабочей системе подвергаются ударам очень редко, да и энергия этих воздействий значительно снижается элементами конструкции корпуса компьютера, поэтому повреждения в этом состоянии жесткие диски получают редко.
Чаще всего жесткие диски испытывают ударные воздействия в моменты транспортировок от поставщика к потребителю и в процессе его установки в PC недостаточно квалифицированным или плохо осведомленным персоналом. В России ситуация часто усугубляется тем, что партии винчестеров перевозят неподготовленным для этого транспортом, не предусматривая никаких дополнительных мер защиты на случай столкновения автомобиля или просто резкого торможения. Очень часто фирмы — продавцы комплектующих, при продаже винчестеров передают их покупателю упакованными в одну единственную электростатическую оболочку. А ведь покупателю его еще до дома или до работы везти. И где гарантия, что сам продавец, не стукнул этот винт, а это очень вероятно в таких точках торговли, как радиорынки. Достаточно посмотреть, как там с ними обращаются. Более того, достаточно сильное ударное воздействие жесткий диск может испытать, если случайно ткнуть его монтажным инструментом, например отверткой, стукнув два винчестера между собой или в результате усиленного проталкивания винчестера в его посадочное место в корпусе компьютера… На рисунке 1 показаны наиболее типичные случаи возникновения ударных воздействий на винчестеры и степень их воздействия на жесткие диски. По вертикали — сила воздействия в единицах кратным ускорению свободного падения (G), по горизонтали длительность воздействия.
- шлепок головок;
- проскальзывание и смещение дисков в пакете;
- появление люфта в подшипниках.
Самым распространенным последствием удара в накопителе является «шлепок головок», Рисунок 2. Он происходит когда энергиия удара направлена вертикально или под некоторым углом к горизонтальной плоскости. В этом случае, происходит отрыв магнитой головки от поверхности диска и затем ее резкое опускание на поверхность магнитного диска. В момент соприкосновения, головка врезается в поверхность своей кромкой, положение головки выравнивается и она с силой прижимается к поверхности всей плоскостью. В результате этого диск получает поверхностные повреждения, мельчайшие частички и осколки рассеиваются по поверхности магнитного диска.
Не стоит думать, что эти осколки смогут улететь за пределы диска в виду центробежных сил возникающих при бешеном вращении диска. По причине магнитной природы диска и микроскопического размера осколков, они остануться на диске и ничем их оттуда не убрать. Кроме того, после удара, сама головка может получить физическое повреждение, а ее магнитные свойства резко ухудшаются. На практике данные повреждения проявляются в виде так называемых «битых кластеров». Если просматривать такой диск в программах с визуальным интерфесом типа Norton Speed Disk, то повреждения поверхности проявятся в виде одного или нескольких хаотично расположенных сбойных кластеров. Повреждения вызванные дефектом одной из головок скорее всего проявятся в виде гораздо большего количества дефектных кластеров и в их расположении будет четко отслеживаться некоторая закономерность. Но даже в том случае, если дефекты на диске не проявились сразу после ударного воздействия на накопитель, эти дефекты дадут о себе знать позже (через месяц или даже через год!). Почему? Давате рассмотрим этот вопрос детальней.
Решение
Одним из возможных решений проблемы может явиться осторожность и квалифицированность людей обращающихся с накопителями. Но таким способом проблему решить тяжело, т. к. даже за рубежом, более 30% жестких дисков устанавливаются в компьютеры не подготовленным персоналом вне фирм производителей компьютеров. В России этот процент гораздо выше. Более того, очень много случаев, когда ударные воздействия являются следствием случайности, а не халатности.
Таким образом, решение данной проблемы должно реализовываться через повышение ударной стойкости самого накопителя. В последнее время производителя накопителей разработали целый ряд недорогих и эффективных технологических решений по повышению ударной стойкости и надежности продукции и к нашему счастью, теперь это решение не ограничивается надписью «Handle with care!» на корпусе.
Посмотрим, что же предлагают нам основные производители.
Seagate
Технология GFP
Технология GFP (G-force protection) компании Seagate объединяет в себе ряд технологических решений направленных на улучшение нерабочей ударостойкости носителей. Эта технология обеспечивает большую степень защиты таких компонентов жестких дисков как: двигатель и подшипник вращения дисков, головки, гибкие держатели головок и диски.
Уменьшив массу и размеры головок, а так же увеличив величину клиренса между держателем и диском, инженеры компании заметно уменьшили кинетическую энергию этих компонентов приобретаемую ими в процессе удара. А значит, у головок становится меньше шансов произвести шлепок по диску в момент внешнего воздействия. Seagate также уделила внимание защите и прочности подшипников вращения дисков и узлу крепления дисков в пакете.
Дефекты возникающие в подшипнике (см. рис. 6) ведут к повышенной шумности и вибрациям винчестера, что к конечном итоге может привести к отказу двигателя.
Проскальзывание дисков в узле крепления происходит достаточно редко, но даже если это и происходило в результате удара, то жесткие диски семейства Barracuda и Cheetah всегда имели способность работать с проскользнувшим диском благодаря встроенной системе коррекции головок на каждый оборот диска (once per revolution compensation — OPR). Сервосистема диска использует OPR для определения величины, на сколько сдвинут диск от своего первоначального положения, и в соответствии с этим корректирует положение головок, так чтобы положение головки соответствовало записанной на диск дорожке. В технологии GPS применена улучшенная система OPR, что вдвое увеличивает способность сервосистемы обслуживать сдвинутые диски.
Технология GPS будет применена на новейших высокопроизводительных накопителях Seagate Barracuda 18LP/36/50 и Cheetah 18LP/36. В целом применение GPS позволит, по мнению производителя, увеличить сопротивляемость ударным воздействиям на 30% для дисков Barracuda и на 40% для семейства Cheetah.
Читайте также: