- 1
- 2
static const BOOL8 False = 0x4B;
static const BOOL8 True = 0xB4;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−39
static const BOOL8 False = 0x4B;
static const BOOL8 True = 0xB4;
добро пожаловать в медицинское оборудование life-support класса! булы могут принимить значения: false, true и ***ALARM***ALARM***FATAL ERROR***ALARM***ALARM***
PS если нет дублированого проца/памяти с компаратором, то вот так люди извращаются что бы bit-flip тру в фолс и наоборот не сделал.
биты в памяти, с (не)достаточно низкой вероятностью, под воздействием космической радиации, могут менять значение (ака bit-flip). на серваках для защиты от этого ставят ECC память. на safety/mission-critical/life-support системах, в зависимости от требований надёжности, ставят ECC память, и/или два проца/памяти в синке работающих, и/или используют для констант/значений hamming коды, что бы распозновать 1-bit-flip ошибку железа.
на системе которая у меня под рукой (временный проект) там нет двойного проца, и нет ECC. поэтому извращаются с кодами хэмминга, а тру/фолс имеют вот такие значения. проверяются значения не всегда, но в нужных местах проверяются, и система кидает фатальную ошибку.
к слову, там в сумме 3 проца стоят, и на одном из них true/false как раз 0xff/0x00. но на остальных 0xb4/0x4b.
PS я лично ожидал 0хAA/0x55.
Максимальное расстояние по хэммингуэю же. С произвольными числами оно меньше будет.
На уровне электроники иной раз ноль в единицу внешними факторами проще сбросить, чем наоборот (ну или наоборот). Поэтому нужно равномерное распределение например
З.Ы. К слову, та же циклоняшка умеет в фоне считать хеш своей конфигурационной памяти и выдавать на одну из ножек аларм, если какие-то биты помялись.
мое понимание всегда было что FPGA добавляют эту фичу потому что количество перезаписей прошивок (типа как на флеше) тоже ограниченый ресурс. и после какого-то числа прошивок, гейты больше не позволяют ихнее состояние менять.
Не, по крайней мере у циклона это самая обычная SRAM (да, для загрузки ему нужна внешняя spi флешка или дебаггер через jtag). А фича эта позиционируется именно для защиты от пролетающих мимо частиц-диверсантов: Cyclone IV devices offer on-chip circuitry for automated checking of SEU detection. Applications that require the device to operate error-free at high elevations or in close proximity to earth’s north or south pole require periodic checks to ensure continued data integrity.
MTTF (среднее время до поломки)?
Fault Tolerance Time (FTT) - время от обнаружения/происхождения ошибки до момента когда ошибка может нанести вред (пациэнту).
Multiple Fault Tolerance Time (MFTT) - промежуток времени когда двойная ошибка не наносит вреда. (плюс "sleeping fault" - ошибка которая происходит в момент времени, когда она никакого вреда нанести не может.)
все очевидно из области Fault Tolerance - но там все платными стандартами обложено и деталей я не знаю.
В класс же надо завернуть!
да.
> На самом деле не такой уж и багор
знаю что не говно. для большинства - которое включает меня - это просто диковинка.
--я считаю что истина только одна!
--о нет, мой юный друг. Истин на свете великое множество.
--Сколько, учитель?
--2^8 -1
Снимаю порчу с регистров, очищаю карму, изгоняю ошибки доступа.
и вообще даже в обычное гнездо не станет