我想实现数据镜像以避免 RAM 内存中的数据损坏。
我发现了一篇关于此主题的有用文章:https://betterembsw.blogspot.com/2014/05/mitigating-data-corruption.html
现在我开始实现与上面链接中所述相同的策略:
对于全局数据,我很清楚如何创建 2 个结构,第一个包含所有全局数据,另一个包含相同的数据但相反。这些结构应在两个不同的部分中声明。
但是对于本地数据和静态本地数据,我不清楚如何继续。如果我在一个函数内创建两个结构,与全局数据相同,那么我如何在堆栈内选择它们的部分?
您知道如何实现本地数据和静态本地数据的数据镜像吗?
最佳答案
你为什么想要它?
如果需要,您将需要硬件支持,或实现该策略的编译器,或两者兼而有之,因为每次写入都需要镜像操作,每次读取都需要验证操作。
您引用的文章中描述的镜像无法检测“位翻转”,或者更准确地说,它无法找到哪个副本发生了位翻转,除非您也使用原件和镜像上的错误检测机制。例如,由于热或宇宙射线而发生的轻微翻转可能会击中您的任何副本。这再次涉及到硬件。
关于c - 使用数据镜像保护数据损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53911131/