|
|
  |
Целесообразность тестирования памяти и регистров |
|
|
|
Feb 16 2008, 22:38
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(_Pasha @ Feb 16 2008, 18:14)  У меня время жизни объектов без их регенерации сравнительно короткое. Иногда ставлю низкоприоритетный тред, который пересчитывает кое-какие "константы". Я совершенно не спорю с вами я просто не знаю ответа. Вот скажите мне при каком условии вероятность сбоя будет выше? 1) 1 раз записать ячейку - 100 млн. раз её прочитать. 2) 100 тыс. раз записать ячейку - 100 млн. раз её прочитать. Давайте ещё один пример виртуальный с EEPROM. Представим себе ситуацию что надо хранить 50 байт данных и периодически обновлять их. Как надёжнее? 1) Просто записать и КС 2) Хранить 3 экземпляра и кс. и ещё вопрос В каком из этих вариантов EEPROM разрушится быстрее или вероятность появления ошибки выше?
|
|
|
|
|
Feb 17 2008, 08:02
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(SasaVitebsk @ Feb 17 2008, 01:38)  Я совершенно не спорю с вами я просто не знаю ответа. ................. В каком из этих вариантов EEPROM разрушится быстрее или вероятность появления ошибки выше? А резервирование - то делается на макроуровне, на уровне блоков. А все остальное - камлания и холодный термоядерный синтез.  Есть пример - контроллер мостовой пилы для резки гранита. Все просто - тележка ездит вперед/назад, пила вверх/вниз и враво/влево, датчики положения (холла). Решения - периодическая проверка живучести системного таймера, таймауты на прием сигналов датчиков. Красота... но если пила в камне, то вправо/влево включать нельзя. А как сие определить? Проверить положение? А если что-то врет? Тогда получается некрасивая пропорция - проц за 1 доллар убивает пилу за 2000 оных. Вышли из положения - перемещения влево/вправо можно только выключить автоматом. Включить - только вручную. Извините за оффтоп.
|
|
|
|
|
Feb 17 2008, 09:46
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Конечно - это всё не праздные вопросы. И в каждом конкретном случае надо самостоятельное решение принимать. А груз ответственности велик. Скажем в таких приложениях никто не заставляет AVR применять, хотя с другой стороны если проц за 1$ это ещё не значит что он не надёжный. К тому же резервирование на процессорах за 1$ будет стоить дешевле  естественно с точки зрения аппаратной части. А вот разработка программного обеспечения - будет трудоёмким. (Я естественно не призываю - так - вариант) Такие вопросы, в общем то всегда возникают. У вас пила дисковая, а мне, к примеру, сейчас придётся раскручивать 2 барабана размером в рост человека. А это всё в цеху, гле люди непрерывно ходят. А мне отлаживать. Причём разгон-торможение, синхронное движение. А людей не выгонишь - круглосуточно работают. Будем решать. Будем внимательнее.
|
|
|
|
|
Feb 17 2008, 09:52
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(SasaVitebsk @ Feb 17 2008, 12:46)  Причём разгон-торможение, синхронное движение. Брат объявился! Про пилу - это дела минувших дней. А про Вашу тему - сейчас то же самое делаю по синхронному движению. В личку можно?
|
|
|
|
|
Feb 18 2008, 14:57
|

Участник

Группа: Свой
Сообщений: 66
Регистрация: 28-01-08
Из: Николаев
Пользователь №: 34 507

|
Цитата(SasaVitebsk @ Feb 17 2008, 11:46)  Конечно - это всё не праздные вопросы. И в каждом конкретном случае надо самостоятельное решение принимать. А груз ответственности велик. Будем решать. Будем внимательнее.  Полностью согласен, достаточность мер диагностики определяет только разработчик и под свою ответственность. И на 99% вероятность аварии в его руках. Но если вернуться к теме Цитата Целесообразность тестирования памяти и регистров То честно говоря не вижу в этом особого смысла, да и возможности. При включении можно проверить всё, что угодно. А как во время работы проверить ОЗУ? Остановить устройство, и записывать-считывать память, регистры и т.п.? Цитата(_Pasha @ Feb 17 2008, 10:02)  Есть пример - контроллер мостовой пилы для резки гранита. Все просто - тележка ездит вперед/назад, пила вверх/вниз и враво/влево, датчики положения (холла). Решения - периодическая проверка живучести системного таймера, таймауты на прием сигналов датчиков. Красота... но если пила в камне, то вправо/влево включать нельзя. А как сие определить? Проверить положение? А если что-то врет? Тогда получается некрасивая пропорция - проц за 1 доллар убивает пилу за 2000 оных. Для устройств, которые выполняют периодические действия эта задача решаема, например в ЧПУ станка такую проверку можно выполнять перед запуском программы. А если процесс непрерывный или непредсказуемый? Да и вероятность выхода из строя ячейки памяти гораздо ниже, чем какого либо датчика, поэтому стоит обращать внимание на диагностику периферийных устройств, исходя из моего опыта, это в большой степени снижает вероятность отказа, и конечно же стоит следить за "качеством" программы написаной Вами.
|
|
|
|
|
May 18 2008, 18:40
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(Getmanov @ Feb 18 2008, 18:57)  При включении можно проверить всё, что угодно. А как во время работы проверить ОЗУ? Остановить устройство, и записывать-считывать память, регистры и т.п.? Как как.. Да как два пальца абосфальт.. Записал чё-нить в ОЗУ и тут же прочитал (проверил тем самым записалось ли). Не знал про такой способ?
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
May 18 2008, 19:10
|

Участник

Группа: Свой
Сообщений: 66
Регистрация: 28-01-08
Из: Николаев
Пользователь №: 34 507

|
Цитата(Дон Амброзио @ May 18 2008, 21:40)  Как как.. Да как два пальца абосфальт.. Записал чё-нить в ОЗУ и тут же прочитал (проверил тем самым записалось ли). Не знал про такой способ? А тут же, это когда, через такт, секунду, месяц? А ещё бывают volatile переменные, что, запрещать к ним доступ, что бы прочитать что записалось?
|
|
|
|
|
May 19 2008, 04:11
|
Местный
  
Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997

|
Цитата(Getmanov @ May 18 2008, 23:10)  А тут же, это когда, через такт, секунду, месяц? А ещё бывают volatile переменные, что, запрещать к ним доступ, что бы прочитать что записалось? Можно выделить сразу буфер, для проверуи памяти. Сначала проверяете его, а потом блоками перетаскиваете в него содержимое из ОЗУ, проверив определённый участок памяти, возвращаете туда то что перекидывали. Естенственно на время теста нужно вырубать прерывания. А период тестирования определяется параметрами надёжности и безопасности вашего устройства.
|
|
|
|
|
May 19 2008, 04:58
|

Участник

Группа: Свой
Сообщений: 66
Регистрация: 28-01-08
Из: Николаев
Пользователь №: 34 507

|
Цитата(BigBolt @ May 19 2008, 07:11)  Можно выделить сразу буфер, для проверуи памяти. Сначала проверяете его, а потом блоками перетаскиваете в него содержимое из ОЗУ, проверив определённый участок памяти, возвращаете туда то что перекидывали. Естенственно на время теста нужно вырубать прерывания. А период тестирования определяется параметрами надёжности и безопасности вашего устройства. Единственный способ проверок такого рода, резервирование двойное, а то и тройное.
|
|
|
|
|
May 19 2008, 10:23
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561

|
Цитата(_Pasha @ May 19 2008, 08:54)  Известно из работ 80-х годов по тестированию ОЗУ (конкретнее - если найду книжку - скажу) о том, что такой способ является самым грубым и не обеспечивает выявление даже половины возможных неисправностей.  ...очень бы хотелось посмотреть эту книгу, поскольку вопрос интересует давно. Сам считаю что в части случаев такая проверка необходима (все что связано с системами управления в ядерной энергетики и оружием)
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|