我想实现数据镜像以避免RAM内存中的数据损坏。
我找到了有关此主题的有用文章:https://betterembsw.blogspot.com/2014/05/mitigating-data-corruption.html
现在我正在盯着实施上面链接中所述的相同策略:
对于全局数据,我很清楚如何创建2个结构,第一个结构包含所有全局数据,另一个结构包含相同的数据但取反。这些结构应在2个不同的部分中声明。
但是对于本地数据和静态本地数据,我不清楚如何进行。如果我在函数内部创建2个结构(与全局数据相同),那么如何在堆栈中选择它们的部分?
您是否知道如何为本地数据和静态本地数据实现数据镜像?
答案 0 :(得分:0)
你为什么想要它?
如果需要,您将需要硬件支持或实施该策略的编译器,或同时执行这两者,因为每次写入都需要镜像操作,而每次读取都需要验证操作。
您所引用的文章中描述的镜像无法检测到“位翻转”,或者更确切地说,它找不到哪个拷贝已翻转,除非您也使用原稿和镜像上的错误检测机制。例如,由于热或宇宙射线而引起的一点翻转会击中您的任何副本。这又导致了硬件。