Форум программистов, компьютерный форум, киберфорум
Низкоуровневое программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.01.2018
Сообщений: 4
1

Бинарный код, защита данных и вычислений от сбоев

05.01.2018, 03:09. Просмотров 640. Ответов 18
Метки нет (Все метки)

Сбои в ОЗУ, сбои в процессоре, как реализована аппаратная обработка таких ошибок? В простейшем случае, когда вы сами ничего не верифицируете, где и как детерминируются такие ошибки?

Вопрос обработки ошибок выполнения не лежит на поверхности ни в одной книжке по программированию.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2018, 03:09
Ответы с готовыми решениями:

Работа с Word на ASP. Net Защита от сбоев
Все доброго времени суток! Разрабатываю веб-приложение, ввожу некоторые данные, и по ним формирую...

Прокомментировать код вычислений
Доброго времени суток! Прошу помочь разобраться с кодом, изложенным ниже. Не понимаю сам алгоритм...

Неправильно работает код вычислений
Код Program z3; var x, u, e,uk:real; k:integer; function c(n:integer):real; var l:real; ...

Программа математических вычислений. Нужно подправить код
Здравствуйте! Есть задание: реализовать на С программу, которая будет расчитывать выражение: . ...

18
sha256rnds2
5286 / 1702 / 190
Регистрация: 14.12.2014
Сообщений: 3,204
Записей в блоге: 11
05.01.2018, 14:29 2
Точно не скажу, но можно покопать в сторону NMI (немаскируемого прерывания) и System Management Mode. В 3-м томе Intel'овского мануала режиму SMM посвящена целая большая глава.

Добавлено через 46 секунд
Но это аппаратно-программная обработка, а не чисто аппаратная.
1
5008 / 1781 / 335
Регистрация: 29.07.2014
Сообщений: 2,748
Записей в блоге: 5
07.01.2018, 01:51 3
не понятно, о каких ошибках идёт речь.
Если память, то у неё есть контр.сумма, а проц не ошибается --- ему только подсовывай данные
0
0 / 0 / 0
Регистрация: 05.01.2018
Сообщений: 4
07.01.2018, 05:10  [ТС] 4
В буквальном смысле вычислительные ошибки, когда проц ошибается, без привязки к режимам работы. Предположим, система не проходит нагрузочный тест, все остальное проходит, где будет наиболее вероятное место сбоя?

Любая такая информация интересует, главное чтобы была определенность в ответе.
0
Модератор
6655 / 3234 / 1305
Регистрация: 01.02.2015
Сообщений: 10,274
Записей в блоге: 1
07.01.2018, 14:13 5
Для промышленности (управления опасными объектами) выпускают высоконадёжные PLC (очень дорогие) с дублированием каждого узла. Почитайте о их устройстве. Не знаю, как они устроены, знаю лишь о их существовании.

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

Т.е. предлагаю вам поискать по этим направлениям.
------------------------------------
Когда работал с большими ЭВМ, сталкивался со схемотехническими решениями в процессорах (это стойки размером в шкаф и к нему ещё шкаф документации) с дублированием и сравнением вычислений (в стойке физически присутствовало по 2 процессора, выполняющих одновременно одну команду) - в случае несовпадения процессор аварийно останавливался и ОС переходила на резервный процессор (всего в системе было 3 стойки процессоров - два в работе, один в резерве).

Память в больших ЭВМ (ОЗУ, кэш, локальная память в различных ПВВ/АЦПУ/НМЛ/НМД/ВЗУ) всегда имела один контрольный бит на каждые 8 бит данных - итого 4 контрольных бит на слово (32 бита).

Думаю, что схемы и описания на IBM360, ЕС1030, ЕС1040, ЕС1045, СМ-2М, СМ-ЭВМ не являются секретом и доступны для изучения.

Для схем на микроконтроллерах от "зависания" делались внешние "сторожевые таймеры" - одновибраторы, к которым МК должен был обращаться. Сейчас подобные устройства встраивают в МК.
1
0 / 0 / 0
Регистрация: 05.01.2018
Сообщений: 4
09.01.2018, 21:35  [ТС] 6
Цитата Сообщение от R71MT Посмотреть сообщение
Если память, то у неё есть контр.сумма, а проц не ошибается --- ему только подсовывай данные
Ответ имеет право на существование, невозможно кодить на той системе, которая потушена, это понятно с долей юмора. Но, та же контрольная сумма генерится с возможностью или без восстановления данных, в процессоре или памяти, и что происходит при несоответствии, тупо крах системы? Как вмешаться? Откуда тогда берутся аптаймы в несколько лет?
0
5008 / 1781 / 335
Регистрация: 29.07.2014
Сообщений: 2,748
Записей в блоге: 5
13.01.2018, 20:33 7
Цитата Сообщение от 38Lab Посмотреть сообщение
и что происходит при несоответствии, тупо крах системы? Как вмешаться?
Если память неисправна на физ.уровне (битые ячейки и пр.), то система при включении тупо не пройдёт POST. Если-же ошибки возникают на логическом уровне под управлением ОС, то для этого, например винда, имеет т.н. механизм SEH (Structured Exception Handling) - механизм обработки программных и аппаратных исключений (достаточно забить в гугл "обратотчики SEH").

Эта фишка находится выше стека (по адресу FS:[0000]), и состоит из цепочки обработчиков ошибок. Там подряд идут несколько обработчиков юзерских ошибок, дальше - системных, и если возникшая ошибка никакому из цепочки обработчиков не известна, то последний из них вызывает BSOD! Юзер может подставлять туда свои обработчики, и система этому никак не препятствует.

Практика показала, что ошибки памяти с правками CRC возникают очень редко, поэтому от 9-чиповых модулей памяти уже давно отказались. Сейчас практически все модули 8/16-чиповые (нечётный чип использовался как-раз для контрольного бита). Что-же касается процессорных ошибок, то все они фиксируются флагами в регистре EFLAGS, которые так-же можешь контролировать сам. В чём именно вопрос???

Чтобы получить ожидаемый ответ, обычно вопрос должен быть более развёрнутым, т.к. объяснять всю архитектуру IA32/64 нет никакой мазы (вся она разжёвана в мана Интела 1/2/3). Хотя вот я попробовал по-Ванговать...
0
sha256rnds2
5286 / 1702 / 190
Регистрация: 14.12.2014
Сообщений: 3,204
Записей в блоге: 11
14.01.2018, 10:42 8
Цитата Сообщение от R71MT Посмотреть сообщение
Если память неисправна на физ.уровне (битые ячейки и пр.), то система при включении тупо не пройдёт POST.
Не факт. Неисправности могут быть слабо выраженными и проявляться при определённых условиях. К примеру, вот у меня как раз сейчас одна планка не проходит пару тестов memtest86+, хотя я уже и винду переустановил, не вынимая её – пока всё работает. Хотя, подозреваю, что в любой момент может вылететь синий экран.

Цитата Сообщение от R71MT Посмотреть сообщение
Что-же касается процессорных ошибок, то все они фиксируются флагами в регистре EFLAGS, которые так-же можешь контролировать сам.
Я думаю, что TC имеет в виду ошибки не уровня Page Fault, а поломку какой-либо схемы (в процессоре или в к/л контроллерах).

Добавлено через 2 минуты
(да и какие ошибки в EFLAGS находятся?)
0
5008 / 1781 / 335
Регистрация: 29.07.2014
Сообщений: 2,748
Записей в блоге: 5
14.01.2018, 11:51 9
Цитата Сообщение от Jin X Посмотреть сообщение
а поломку какой-либо схемы (в процессоре или в к/л контроллерах).
Как девушка не может быть наполовину беременна, так и система. Она либо рабочая, либо нет..
Если-же в каком-то контроллёре что-то не контачит на физ.уровне, программно юзер здесь уже ничего не сделает. Только в сервис..

Цитата Сообщение от Jin X Посмотреть сообщение
вот у меня как раз сейчас одна планка не проходит пару тестов
так это уже единичный случай, и скорей всего дело даже не в самой планке, а по шине питания или в контактах слота. Хотя всё может быть... У системы сколько деталей, столько и неисправностей.
1
sha256rnds2
5286 / 1702 / 190
Регистрация: 14.12.2014
Сообщений: 3,204
Записей в блоге: 11
14.01.2018, 12:40 10
Цитата Сообщение от R71MT Посмотреть сообщение
так это уже единичный случай, и скорей всего дело даже не в самой планке, а по шине питания или в контактах слота. Хотя всё может быть...
Я вставляю в этот же слот другую планку – всё нормально. Эту же планку в другой слот – ошибка.
При этом, как уже говорил, система работает (пока) уже несколько дней.
В чём может быть проблема и что можно сделать в данной ситуации?

Добавлено через 49 секунд
Цитата Сообщение от R71MT Посмотреть сообщение
Если-же в каком-то контроллёре что-то не контачит на физ.уровне, программно юзер здесь уже ничего не сделает.
Ну а он может хотя бы отреагировать и сказать юзеру: "Уважаемый, у вас ус отклеился"?
1
5008 / 1781 / 335
Регистрация: 29.07.2014
Сообщений: 2,748
Записей в блоге: 5
14.01.2018, 15:00 11
Цитата Сообщение от Jin X Посмотреть сообщение
В чём может быть проблема и что можно сделать в данной ситуации?
..так сходу и не скажешь, но обычно есть типовые проблемы.
Платы современных модулей памяти как-правило 6-слойные, и от слоя к слою имеются туннельные перемычки (визуально - дорожка заканчивается точкой). Вполне возможен плохой контакт в этих перемычках, который возникает при нагрузках или физ.воздействии. Это-же касается и самих чипов памяти - хоть одна ножка у одного из чипов отвалится - встречай глюк. Иногда лечится обычным прогревом планки феном паяльной станции, с температурой эдак 200-220 градусов.

В схемах модулей памяти, большинство критических узлов вынесены за пределы планки, на мат.плату (стабилизаторы питания, клокер и пр..). На самой планке - только чипы памяти и м/схема SPD. Там только ложные пайки, или полные кранты самих чипов (в большинстве случаях даже только одного из чипов). ИМХО, а конкретные ячейки памяти (внутри чипов) не могут периодически глючить, они если слетаю, то полностью.

Цитата Сообщение от Jin X Посмотреть сообщение
Ну а он может хотя бы отреагировать и сказать юзеру: "Уважаемый, у вас ус отклеился"?
..навряд-ли. Все контроллёры тестируются при включении машины северным мостом. Он опрашивает каждый из них, и если не получит ответа, то система (в лучшем случае) встанет BSOD'ом. ..и это только логика, поскольку есть ещё проверка по питанию основным стабилизатором. Если контроллёр отправился к праотцам, то этот стабилизатор не отправит в БП сигнал "Power-Good", и БП вообще не включится.

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

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

..хотя это только мои домыслы, и что удавалось наскребсти из сети, и из тонн макулатуры. Если разбираешся с радиотехнике, то картину классно вырисовывают принципиальные схемы материнских плат. Там всё как на ладони - пины, сигналы, и пр.. В купе с доками, что-то всплывает наружу.
1
sha256rnds2
5286 / 1702 / 190
Регистрация: 14.12.2014
Сообщений: 3,204
Записей в блоге: 11
14.01.2018, 17:20 12
Цитата Сообщение от R71MT Посмотреть сообщение
..так сходу и не скажешь, но обычно есть типовые проблемы.
Ну а если конкретно, что мне сейчас нужно сделать, чтобы понять, в чём проблема (для начала)?
0
5008 / 1781 / 335
Регистрация: 29.07.2014
Сообщений: 2,748
Записей в блоге: 5
14.01.2018, 18:05 13
Цитата Сообщение от Jin X Посмотреть сообщение
К примеру, вот у меня как раз сейчас одна планка не проходит пару тестов memtest86+
каких именно тестов?
но в любом случае, если слот исправный, то только прогреть феном планку с обратной стороны.
если где-то плохой контакт, то может прихватиться.
0
sha256rnds2
5286 / 1702 / 190
Регистрация: 14.12.2014
Сообщений: 3,204
Записей в блоге: 11
14.01.2018, 22:02 14
Скачал новую версию memtest86 (без +), оказалось много теcтов провальных... На остальных планках тест ошибок не находит.
При этом я только что загрузился с одной этой (сбойной) 4 Гб планкой (вместо 4-х). Система нормально загрузилась и часа 1,5 работала без проблем, пока я не выключил комп. Я работал в браузере, мессенджерах, Word'е и пр...
0
Миниатюры
Бинарный код, защита данных и вычислений от сбоев  
5008 / 1781 / 335
Регистрация: 29.07.2014
Сообщений: 2,748
Записей в блоге: 5
15.01.2018, 17:44 15
Цитата Сообщение от Jin X Посмотреть сообщение
оказалось много теcтов провальных...
..видно, что плохи дела!
тут главное, чтобы тест(3) прошёл успешно, остальные (4,5,6,7) привязаны к нему, только патерны (тестовые шаблоны) с разной битностью (8,32,рандом,64). 0,1,2 - это тест адресной шины, и в большинстве случаях ОК. так-что проще раскошелиться на новую планку, чем тратить нервы на восстановление этой. всё-равно рано или поздно вылезет косяк.

такие ошибки поймать трудно, т.к. не известно в каком именно чипе из 8-ми зарыта собака (а глючит как-правило только один чип). для его выявления MemTest не подходит, поэтому можно написать свою утилиту, и расчитав адреса насиловать отдельные чипы, пока не поймаешь ошибку. битый чип потом можно будет поменять.. алго там простой, только для 8-чиповых планок, но у тебя (как я понял) 16-чипов, раз модуль 4-гиговый, поэтому можно промахнуться.
1
sha256rnds2
5286 / 1702 / 190
Регистрация: 14.12.2014
Сообщений: 3,204
Записей в блоге: 11
15.01.2018, 18:08 16
R71MT, спасибо за развёрнутый ответ!
Лучше тогда выну пока её... буду в 12 Гб. Если будет мало, докуплю
0
195 / 87 / 15
Регистрация: 10.07.2016
Сообщений: 146
15.01.2018, 20:10 17
Ластиком контакты чистил? С частотами/таймингами игрался?
0
sha256rnds2
5286 / 1702 / 190
Регистрация: 14.12.2014
Сообщений: 3,204
Записей в блоге: 11
15.01.2018, 22:20 18
Цитата Сообщение от Ol44 Посмотреть сообщение
Ластиком контакты чистил? С частотами/таймингами игрался?
Нет
0
0 / 0 / 0
Регистрация: 05.01.2018
Сообщений: 4
16.01.2018, 04:06  [ТС] 19
Цитата Сообщение от R71MT Посмотреть сообщение
Чтобы получить ожидаемый ответ, обычно вопрос должен быть более развёрнутым, т.к. объяснять всю архитектуру IA32/64 нет никакой мазы (вся она разжёвана в мана Интела 1/2/3).
Не в конкретной архитектуре дело, думалось коррекция элементарных операций происходит постоянно на аппаратном уровне, какую архитектуру не построй это нужно будет делать. "Исследование, проведённое на большом количестве серверов Google показало, что количество ошибок может быть в пределах от 25 000 до 70 000 ошибок за миллиард рабочих часов (англ. device hours) на мегабит (то есть 2,5-7,0*10E-11 ошибок / бит*час )". https://ru.wikipedia.org/wiki/ECC

Меньше 5 ошибок в сутки на 1 Гб хранения данных не бывает, не так уж мало. Вы их видели когда-нибудь у себя на компе? Судя по ответам, все что происходит, условно говоря, между "POST" и "BSOD" там же и остается, если не подпадает ни под один обработчик исключений. …при этом, вдруг ваш комп отвечает за какую-нибудь наземную навигацию.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2018, 04:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Бинарный код
Кто-нибудь подскажет, как перевести любую букву в двоичный код(бинарный код)? Уже сколько форумов...

Бинарный код изображения
Подскажите, как считать изображение побайтово, чтобы его бинарный код записался в memo?

бинарный код файла
Такая задача - как получить бинарный код любого файла и обратно его собрать? поискал по теме, на...

Перевод в бинарный код
какие методы используются для перевода значений(любых) в бинарный код?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.