Раньше я писал BIOS для жизни, и я все еще вовлечен в этот бизнес, но больше не занимаюсь большим количеством интересного кодирования.
Отвечая на вопрос: зачем мне покупать дорогую материнскую плату с ограниченными возможностями расширения PCI-e для рабочей станции? Когда лучшее оборудование доступно гораздо дешевле? Я думаю, что ответ очевиден. Это для меня. Я хочу лучшее оборудование для разработки программного обеспечения. А преимущества серверной платы (iBMC и поддержка удаленного управления) в моих обстоятельствах кажутся мне не очень важными.
Тем не менее, я знаю, что 16 ГБ памяти не-ECC (моя целевая конфигурация) будет генерировать панику и поврежденные сектора на моих жестких дисках довольно регулярно. Числа, такие как один сбой памяти каждые несколько дней, кажутся довольно распространенными в статьях в сети, обсуждающих системы с таким объемом оперативной памяти.
С 16 ГБ памяти, не относящейся к ECC, на этой материнской плате я вижу 2-3 сбоя в неделю при выполнении диагностики стандартной памяти (конечно, я не смог протестировать конфигурацию ECC, но я ожидал, что вероятность сбоя снизится практически до 0, если бы мне потребовалось 2 из этих 3 сбоев в одном и том же 64-битном слове).
Кажется, это вполне то, чего я должен ожидать, и для меня достаточно проблемы, так как я готов приложить некоторые усилия для ее устранения.
Я также не хочу просто улетать и делать взлом самостоятельно, если кто-то уже провел какое-то расследование ситуации. К сожалению, я не знаю достаточно людей, которые взломали BIOS, чтобы иметь личные связи. Таким образом, вопрос.
Но если я единственный, кто смотрит на проблему, я немного удивлен, но я не возражаю углубляться в взлом BIOS. Это может или не может стоить хлопот.
Вот почему я поставил вопрос в области вопросов программирования, а не в области администратора. Это требует изменения кода BIOS (я был бы очень удивлен, если честно).
Я вполне уверен, что системное оборудование (за исключением, возможно, отсутствия 8 или 16 проводов для 8 битов четности) способно работать в режиме полного ECC - процессор включает контроллер памяти с поддержкой ECC, модули DIMM представляют собой небуферизованные модули DIMM ECC с те же электрические требования, что и для небуферизованных модулей DIMM не-ECC, поэтому единственная задействованная функция материнской платы - это набор проводов и пассивных компонентов, которые соединяют их.
И в ответ на комментарий, что 85% потребительских плат не смогут загрузиться с ECC: мой опыт находится в том же парке событий. Без изменения содержимого SPD EEPROM на DIMM, КАЖДАЯ загруженная мной плата не загружается с установленными модулями ECC DIMM (все они были платами DDR и DDR2, но не DDR3). Однако при использовании взломанных модулей ECC DIMM все они успешно загрузились, а те, на которых я запускал диагонали памяти, работали в течение нескольких дней без ошибок. Таким образом, ошибка загрузки - это решение, принятое микропрограммой /BIOS материнской платы или чем-то еще, считывающим содержимое EEPROM SPD.
Напишите примечание о последовательности ошибок, которая имеет смысл: меня беспокоит то, что я не вижу никаких признаков того, что BIOS следует этой последовательности. Похоже, что он сначала проверяет правильность установленных модулей DIMM ECC (поскольку я не вижу кодов PORT80, отображаемых в случае правильно установленных модулей DIMM ECC), затем выполняет некоторые другие действия (несколько кодов PORT80) и, наконец, сообщает, что неправильно установленные модули DIMM ECC не установлены в правильные слоты.
На самом деле я нахожу это многообещающим, так как это заставляет меня думать, что может быть явный тест для модулей DIMM ECC, выполняемых на ранних этапах POST (возможно, для предотвращения запуска системы с процессором Xeon и модулями ECC DIMM).