DRAM Errors или не спешите винить Software


    Когда компьютер зависает или выдает пресловутый BSOD, как правило, во всем винят программное обеспечение (а также: кривые драйвера и руки недоучившихся программистов, Microsoft и лично Билла Гейтса и т.д.). Но в последние несколько лет ученые начали более пристально присматриваться к аппаратным сбоям, и обнаружили другой серьезный тип проблем, которые проявляются гораздо чаще, чем многие думают. О них и пойдет речь.

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

    Но «soft errors» — лишь часть проблемы. В течение последних пяти лет исследователи наблюдали за несколькими очень большими дата-центрами, и они обнаружили, что во многих случаях причиной сбоев были попросту неисправные микросхемы памяти. Температурное воздействие или производственные дефекты со временем могут привести к появлению неисправностей компонентов (разрушению проводящих связей или появлению новых). Это «hard errors»

    Soft Errors


    «Soft errors» крайне беспокоят разработчиков следующих поколений микросхем из-за одного важного фактора: энергопотребление. Когда появится следующее поколение суперкомпьютеров, они будут содержать в себе еще больше микропроцессоров и микросхем памяти. И всё это огромное количество транзисторов будет требовать всё больше энергии для того, чтобы избежать неконтролируемого переключения битов.

    Сама проблема связана с основами физики. По мере того, как производители делают связи внутри микросхем всё более тонкими, электроны попросту «убегают» как капли воды из дырявого шланга. Чем тоньше связи, тем больше энергии требуется для поддержания корректной работы.
    Проблема настолько сложна, что Intel работает совместно с министерством энергетики США и рядом других правительственных организаций для ее разрешения. Используя будущее поколение 5нм технологического процесса, Intel к концу десятилетия позволит создать в 1000 раз более мощные суперкомпьютеры, чем существующие сейчас. Но, кажется, что такие суперкомпьютеры не только будут гораздо быстрее, но и окажутся настоящими пожирателями электроэнергии.
    «У нас есть путь, чтобы достичь этого, не беспокоясь об энергопотреблении» (достичь увеличения производительности в 1000 раз). «Но если вы хотите, чтобы мы решили проблему энергопотребления – это за пределами наших планов».


    На графике — не самые актуальные данные, да и относящиеся к другому типу памяти. Конкретно для DRAM данных найти не удалось. Но виден общий тренд: повышение уровня напряжения снижает количество сбоев.


    Производители не любят говорить о том, как часто их продукция дает сбои – такая информация считается секретной и непросто найти исследования на данную тему. Часто компании просто запрещают своим клиентам говорить о частоте аппаратных сбоев.
    «Это область активных исследований. Мы не говорим об этом открыто, т.к. это очень деликатная тема».

    Soft Errors?


    «Soft errors» это одна из проблем, но есть и другие проблемы, о которых производители аппаратуры говорят еще меньше. Согласно исследованиям Университета Торонто, когда память компьютера дает сбой, это гораздо вероятнее вызвано возрастом или ошибками изготовления (это «hard errors»), а не «soft errors», причиной которых является космическое излучение.

    В 2007 году группа исследователей получила доступ к дата-центрам Google, где ими была собрана информация о том, как часто специализированные Linux-системы поискового гиганта давали сбои. Было зафиксировано в десятки раз больше сбоев, чем ожидалось. Если предыдущие исследования сообщали о цифрах от 200 до 5000 сбоев на миллиард часов работы, то исследования в Google показали цифры от 25000 до 75000.
    Но что еще интереснее, примерно 8% чипов памяти оказались повинны в более чем 90% сбоев.

    Более пристальный взгляд показал, что сбои имеют тенденцию происходить на более старых представителях машинного парка. После примерно 20 месяцев эксплуатации число сбоев стремительно растет. Вероятно, не случайно типовое обновление IT инфраструктуры происходит в районе трехлетней отметки. И, вероятно, результаты этих исследований окажутся еще одним аргументом в пользу того, что откладывание плановых апгрейдов вскоре начнет обходиться дороже, чем сэкономленные средства.

    Таким образом, обнаруженные проблемы оказались «hard errors», а не «soft errors», и их было гораздо больше, чем по самым смелым прогнозам.
    Последующие исследования показали аналогичную картину для чипов памяти, используемых IBM в системах Blue Gene и для канадского суперкомпьютера SciNet. Для всех систем частота сбоев памяти оказалась примерно одинаковой.

    Исследования, проводимые AMD, также показали, что для чипов DRAM «hard errors» встречаются гораздо чаще, чем «soft errors». Но AMD, как и Intel, никогда не публиковала исследований, касающихся частоты сбоев SRAM памяти, используемой в микропроцессорах
    Вилас Сридаран (Vilas Sridharan), reliability architect из AMD и один из авторов статей на данную тему сказал:
    «Это не новая проблема. Ошибки в модулях DRAM были впервые замечены в 1979 году, но с тех пор мы продолжаем учиться»
    А, согласно словам Samsung, крупнейшего производителя DRAM-памяти в мире, у них
    «нет никакой детальной информации, которую они могли бы сообщить на этот счет».


    Производителям микросхем следует уделять больше внимания вопросам «hard errors». Сегодня существует множество способов для исправления «soft errors»: начиная от кодов коррекции ошибок (ECC) и заканчивая использованием освинцованных шахт для размещения серверов. Но в деле противостояния «hard errors» всё далеко не так хорошо.
    При этом «hard errors» вызывают больше ошибок, чем большинство людей могут предположить. И если Hi-end суперкомпьютеры и сервера могут использовать ECC, то в случае с PC это не так. Большинство мобильных устройств, а также ноутбуков и настольных компьютеров ECC не содержат. Отчасти потому, что, согласно используемой модели сбоев, большинство из них вызвано «soft errors». Такая модель выгодна производителям. А пользователи вносят свою лепту, голосуя «рублем». Если вам доводилось выбирать модули памяти для домашнего (да и не только домашнего) компьютера, рассматривали ли вы наличие ECC как важной детали?

    А между тем, наличие ECC даже более важно, чем казалось ранее: в нем часто сокрыта разница между устранимой ошибкой и катастрофической, приводящей к вынужденному простою. Неудивительно, что создатели датацентров и суперкомпьютеров настаивают на нем.
    Кстати, похожая ситуация наблюдается и для SSD. Выбирая между моделями на 240Gb и 256Gb, при равной цене большинство выберет второй. При этом, то, что в действительности ёмкость одинакова, но первая модель резервирует 16Gb для исправления ошибок заметят единицы, и уж совсем для немногих это повлияет на выбор в пользу первого. Не буду называть конкретные модели и вендоров – это не так существенно.

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

    Ну и напоследок тематический демотиватор :):

    Intel
    151.73
    Company
    Share post

    Comments 51

      0
      Доживем ли до того что RAID выше 0го будет использоваться для RAM в обыденной жизни?!
        +2
        А смысл? Есть же ECC.
          –1
          А по сути ЕСС и есть что-то типа RAID — та же избыточность, позволяющая определить, а иногда и исправить ошибку.
          +1
          В серверах есть memory mirroring, а в пользовательских железах мы врядли его увидим.
            0
            Лет 5 назад то же самое можно было сказать про ECC. Однако в более-менее новых десктопных чипсетах он уже есть. И ECC unbuffered память достаточно дёшева.
              0
              Её поддержки нет в процессорах, тоесть сами плашки работают, но без контроля чётности.
              Массовый RAID тоже появился давно, много вы видели домашних пользователей с зеркалами?
                0
                В процессоре поддержки и не должно быть. Она в чипсете и всё исправляется автоматически. А ядро может соответствующие события принимать и писать в лог.

                Вот мой самый обычный домашний комп:

                [   17.234883] EDAC amd64: DRAM ECC enabled.
                [   17.234957] EDAC amd64: CS0: Unbuffered DDR3 RAM
                [   17.234958] EDAC amd64: CS1: Unbuffered DDR3 RAM
                [   17.234959] EDAC amd64: CS2: Unbuffered DDR3 RAM
                [   17.234960] EDAC amd64: CS3: Unbuffered DDR3 RAM
                [   17.235282] EDAC MC0: Giving out device to 'amd64_edac' 'F15h':
                 DEV 0000:00:18.2
                [   17.235315] EDAC PCI0: Giving out device to module 'amd64_edac'
                 controller 'EDAC PCI controller': DEV '0000:00:18.2' (POLLED)


                Ну, что представляет из себя «массовый RAID» это отдельная история. Как минимум, с драйверами морока. Да и «хомячкам» надо дёшево или чтобы игры без тормозов шли, о сохранности данных большинство не заботится.
                  0
                  > В процессоре поддержки и не должно быть. Она в чипсете
                  Забыл про интегрированный в процессор контроллер памяти.

                  В любом случае, вот она, поддержка — рабочий пример привёл.
                    –1
                    Для домашних пользователей это лишено смысла, так как не окупится, как и RAID.
                    Кому оно надо, могут позволить себе рабочую станцию начального уровня (ThinkStation на Xeon E3 стоит чуть больше $1000).

                    А для сохранности данных лучше взять внешний жесткий диск, так как рейд не отменяет бекапов.
            +14
            Какой развесистый BSOD на первой картинке :) Я раньше тоже фотографировал всякие неожиданности в терминалах, банкоматах и т.д. Самый интересный — BSOD на одном терминале МЧС, висевший без перерыва несколько месяцев. Захочешь вот SOS подать, а тут привет от Гейтса. Потом на терминал поставили Linux, и следующие несколько месяцев он показывал ошибку загрузчика GRUB. Дальше его просто выключили. Так что кривые руки — это все-таки серьезно, как и ошибки памяти.
              +2
              Ну, то, что провисел с синим экраном пару месяцев — ладно. Никто на него не смотрел — вот и висел. Но интересна логика человека, который пришел на него ставить Линукс, поставил, увидел ошибку загрузчика… и оставил это всё в таком же виде еще на пару месяцев.
                +3
                Очевидно, Linux попытались установить на ту же, убитую жизнью машину, полагая, что Linux умеет воскрешать мёртвых… Машина очередной раз сдохла, а человеку видимо традиционно забыли заплатить…
              0
              Никогда не получал бсод из-за проблем с софтом, всегда были проблемы с железом.
                +4
                Да ладно. Никогда не бывало проблем с драйверами?
                  0
                  В трёх последних версиях Windows большинство подсистем взаимодействия с драйверами работают не напрямую, а через прослойки. К примеру, от глюка в какой-то бетаверсии свежих радеоновских драйверов винда больше не упадёт. Хотя от глюка в драйвере чипсета — очень даже. Но такое редко бывает.
                    0
                    Я не раз ловил BSOD от драйверов Bluesoleil на Vista и 7.
                      0
                      Ну, значит до этих дров не добрались. Но я вот лично каждый раз радуюсь, когда при выставлении какого-то странного разрешения или частоты в настройках видюхи я максимум вижу черный экран на секунду и сообщение в трее «драйвер видеокарты упал и был перезапущен».
                      Думаю, и до изоляции Bluesoleil рано или поздно дойдет.
                  +2
                  Вы никогда не пользовались Win98?
                    +1
                    Получал и из-за софта и из-за железа, но увидев BSOD в первую очередь буду проверять железо.
                    Если дело окажется в софте, снесу его нафиг (ибо оно заставило меня проверять железо) :)
                    +3
                    Все от жадности. Если бы модули памяти с контролем четности стоили на 4/32=12.5 % дороже обычных и была бы поддержка в обычной системной логике (а много ли надо логических элементов, чтоб свертку проверить?), то все бы пользовались ими и не валяли дурака. А так память на 70-500% дороже, материнские платы тоже раза в 3 как минимум.
                      +4
                      Покупайте AMD — процы их депсктопные уже лет 5 как парктически все поддерживаеют ECC память.
                        +1
                        Интересная информация, не знал, спасибо.
                        Всю жизнь (после Z80) использовал на десктопах AMD, но вот под новый год как раз делал апгрейд после долгого перерыва и по совокупности признаков (производительность на ядро и TDP) выбрал Intel. Впрочем это для другой темы…
                            +2
                            Не то, чтобы ECC у вас дешевая дешевая, а вот обычная дофига дорогая. У нас обычная 1100(35$), ECC от 1700(60$), брэндовая и 5000 может стоить. Это DDR3 8Gb.
                            0
                            Практически все чипсеты (и соответственно материнки нормальных производителей) поддерживают память с ECC. А память, да существенно дороже, хотя чип ECC на планках грошовый…
                            +9
                            «soft errors», причиной которых является космическое излучение.
                            Это не руки у программистов из ж..., это свет с Венеры отразился от верхних слоёв атмосферы и вызвал ошибку в программе!
                              0
                              «Руки из ж...» это тоже проблема космического масштаба!!!
                              0
                              Я думаю, с появлением всё большего количества таких статей люди всё же начнут делать те же вещи, которые приходится делать тому же гуглу: чексумминг и репликацию :).
                                +6
                                Рабочий чат разработчиков:
                                хххх: habrahabr.ru/company/intel/blog/171395/
                                zzzz: Совсем баг не фиксится?… бывает )
                                  0
                                  Недавно столкнулся с этим. Поставил Арч x86_64. Не проходило и недели, как сегфолтилось что-нибудь без видимых на то причин. Проклял всех: Торвальдса, мэйнтейнров, посыпал себе голову пеплом за рукожопие, пытаясь понять, что же не так я сделал. Потом, спустя месяц, решил прогнать оперативку мемтестом и был удивлен куче ошибок. При том, что до этого на компе без проблем 2 года работали винда и убунта, правда 32-битные. Оказалось, что неправильно стояли плашки ОЗУ, 2 одного вендора, 2 — другого.
                                    0
                                    Нет никакой разницы, от одного вендора плашки или от разных. Чипсет найдет НОД и выставит им одинаковые частоты — и никаких проблем не будет. И на самом деле дело не в производителе плашки, а в производителе и модели чипов (ага, модель тоже крайне важна, не все Micron'ы одинаково полезны).
                                    Но бывает НЁХ, связанная с глюками чипсета, когда он плохо переваривает определенные чипы памяти или их комбинации. В этом случае система как правило вообще не грузится.
                                    Но чтобы загрузилась, большую часть времени работала нормально, но иногда, раз в неделю глюкало… Скорее всего, у вас просто один из модулей памяти был битый. А если не был, то стоило обновить биос. А если и это не помогло, то надо бы брать память из QVL, и уж тут ставить ее в любых комбинациях. То, что не упомянуто в QVL, надо ставить только при наличии подтверждений со стороны вида «у меня на такой же мамке та же модель памяти отлично работает».
                                      0
                                      Или можно купить китовую память, которая в QVL
                                        0
                                        Ну вот например мой ноутбук поддерживает официально 2х4гб и не более того. А мне этого мало. Я погуглил и обнаружил модель памяти 2х8гб, которая по отзывам с форумов прекрасно работает на этом ноутбуке (заодно много криков «купил 2x8gb и ноутбук не включается!» про другие плашки). Я заказал ту самую работавшую по всем отзывам память на амазоне, и спустя месяц перестал в чем-либо себе отказывать при работе с ноутбуком.
                                        Ну само собой первым делом мемтест на ночь.
                                    0
                                    Дважды пришлось наблюдать явно глючное железо, когда удалось точно связать ошибки софта с железом.
                                    Однажды пытались установить WinXP на машину, и на этапе инсталляции вылетало с какой-то уже не помню точно ошибкой. На машине постепенно заменили все — начиная с CD-ROM, заканчивая памятью. Счастье наступило лишь после замены процессора — это был Celeron, обрезок Pentium 4.
                                    Второй раз глючил наш софт на .Net Framework, причем глючил только на одной машине, да с такими рандомными ошибками, что волосы дыбом вставали — в разных местах, вплоть до ошибок в арифметических операциях. Это была единственная машина в нашей компании, в которой был установлен какой-то из AMD Duron.
                                      +3
                                      Если вам всё-таки посчастливилось иметь сервер с ECC, то ошибки памяти выглядят вот так в выводе dmesg:
                                      [834584.854220] [Hardware Error]: Northbridge Error (node 3): DRAM ECC error detected on the NB.
                                      0
                                      Эх, как хорошо было во времена ZX Spectrum, когда компьютер зависал / перезагружался совсем не от soft и hard отказов памяти, а только от выключения холодильника или от подключенного в розетку электрического чайника. Отказы можно было легко прогнозировать.
                                        0
                                        Кому верить?

                                        Этот пост:
                                        носят название «soft errors» и их значимость будет только расти по мере уменьшения техпроцесса, т.к. даже единственная частица сможет нанести гораздо больший ущерб.


                                        habrahabr.ru/post/156049/

                                        Еще один миф — современные тех.процессы менее радиационно-стойкие
                                        Шанс получить ошибку в конкретном транзисторе пропорционален его объему, а он быстро уменьшается с уменьшением технологии (т.к. транзисторы становятся не только меньше по площади, но и тоньше). Помимо этого, отмечено аномальное увеличение радиационной стойкости с современными толщинами подзатворных диэлектриков (3нм и менее).
                                          0
                                          Не вижу противоречий. Шанс получить ошибку в отдельно взятом транзисторе растет, но, благодаря архитектурным решениям (мажорирование, контрольные свертки, коррекция ошибок и т.п.), надежность работы устройства в целом остается высокой. Другое дело, что на технологиях 0.8 мкм на подобные решения можно было плевать, а на 22нм — нельзя.
                                            +1
                                            Шанс получить ошибку в отдельно взятом транзисторе растет

                                            как раз в одном из постов наприсано что не растёт:
                                            Шанс получить ошибку в конкретном транзисторе пропорционален его объему, а он быстро уменьшается с уменьшением технологии
                                              +1
                                              Мы имеем ввиду разные шансы. Я имею ввиду, шанс, что от попадания частицы ошибется хотя бы один (любой) транзистор, а вы — шанс, что ошибется конкретный транзистор.
                                              Представьте, что в поле, в плотном квадратно-гнездовом порядке окопалась Красная Армия, а мимо летящий самолет роняет на поле бомбу. Чем меньше квадрат одного отдельно взятого красноармейца, тем меньше шанс, что бомба достанется именно его квадрату, но тем больше квадратов пострадает от взрыва.
                                                0
                                                Помоему автор поста всё же имел ввиду что общая стойкость улучшается.
                                                Еще один миф — современные тех.процессы менее радиационно-стойкие

                                                В целом, на современных стойких тех.процессах (65нм и менее) рутинно получаются микросхемы выдерживающие дозу облучения в 1млн рад, что превышает все разумные требования по стойкости

                                                Помимо этого, отмечено аномальное увеличение радиационной стойкости с современными толщинами подзатворных диэлектриков (3нм и менее).
                                                  0
                                                  что имел ввиду автор — большой вопрос.

                                                  Еще один миф — современные тех.процессы менее радиационно-стойкие

                                                  именно процессы, или конечный продукт, созданный по этому процессу? Конечный продукт не будет менее стойким хотя бы из-за архитектурных решений.

                                                  В целом, на современных стойких тех.процессах (65нм и менее) рутинно получаются микросхемы выдерживающие дозу облучения в 1млн рад, что превышает все разумные требования по стойкости

                                                  А здесь вопрос, что имелось ввиду под словом «рутинно».

                                                  Помимо этого, отмечено аномальное увеличение радиационной стойкости с современными толщинами подзатворных диэлектриков (3нм и менее)

                                                  полагаю, что это очень зависит от технологии изготовления, непонятно откуда такие данные, на каком техпроцессе, какого производителя…

                                                  Боюсь, конструктивного спора тут не получится :)
                                          0
                                          будущее поколение 5нм технологического процесса, Intel к концу десятилетия позволит создать в 1000 раз более мощные суперкомпьютеры, чем существующие сейчас. Но, кажется, что такие суперкомпьютеры не только будут гораздо быстрее, но и окажутся настоящими пожирателями электроэнергии.

                                          Странно… вроде последнее время (10 лет?) тенденция как раз противоположная — техпроцесс уменьшается = энергопотребление уменьшается (энергопотребление на единицу производительности уж точно).
                                            +1
                                            При равном числе транзисторов энергопотребление уменьшается однозначно.
                                            При равной площади кристалла (т.е. число транзисторов сильно выросло, соответственно — производительность тоже) — если оно уменьшилось, то дело скорее в более совершенных технологиях энергосбережения.
                                              +2
                                              Преимущества каждого нового шага техпроцесса можно использовать по разному. Диапазон выбора лежит между ~20% производительности и ~40% энергоэффективности.
                                              Кроме того, не забывайте, что в суперкомпьютере трудится не один процессор, и их число растет.
                                              0
                                              Кстати, похожая ситуация наблюдается и для SSD. Выбирая между моделями на 240Gb и 256Gb, при равной цене большинство выберет второй. При этом, то, что в действительности ёмкость одинакова, но первая модель резервирует 16Gb для исправления ошибок заметят единицы, и уж совсем для немногих это повлияет на выбор в пользу первого. Не буду называть конкретные модели и вендоров
                                              SSD от Intel сам использую и другим советую
                                                0
                                                А как с производительностью у памяти с ECC?
                                                  0
                                                  Производительность ниже. Незначительно.
                                                  Актуальных графиков, на удивление, не получается найти.
                                                  0
                                                  «Часто компании просто запрещают своим клиентам говорить о частоте аппаратных сбоев. „
                                                  Интересно, как это возможно?
                                                  “У вас заглючило наше железо, но не распространяйтесь об этом, и мы вам дадим скидку в n% на следующую партию железа, а вы верьте, что оно будет менее глючным»?

                                                  Only users with full accounts can post comments. Log in, please.