Я полностью переписал свой пост здесь, так как заметил, что раньше мне было немного неясно.
В предыдущем посте пользовательские опилки очень хорошо объяснили, что на контроллере HDD есть буфер SRAM, использующий алгоритм ECC.
Я не уверен, что контрольная сумма ECC из SRAM-буфера также записывается на диски или это только для того, чтобы избежать однобитовых ошибок, происходящих внутри SRAM.
Но как насчет кеш-памяти? Все современные жесткие диски используют DRAM-кэш с 64 МБ или даже 128 МБ. Это одна микросхема DRAM на печатной плате каждого жесткого диска, и все данные должны проходить через нее. Такие DRAM время от времени имеют однобитовые ошибки, а также страдают от старения. Если данные из кеш-DRAM имеют ошибку в один бит, здесь, похоже, нет исправления ECC, я прав?
Если DRAM-кэш вызвал однобитную ошибку, а затем эти данные пошли бы в SRAM-буфер, я предполагаю, что ECC-логика теперь создаст контрольную сумму "для неверных данных из DRAM", но не сможет распознать это ошибка.
Похоже, что HP предлагает дополнительную сквозную проверку четности, которую я нашел, описанную здесь: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c01159621/c01159621.pdf Четность не будет корректной, но только обнаружить и в конечном итоге запросить те же данные для повторной передачи. Постоянная ошибка DRAM привела бы к бесконечным повторным запросам передачи данных. Разве не было бы намного безопаснее иметь DRAM-кеш и ECC?
С уважением, Томми