как понять, поддерживает ли процессор ECC?

У меня есть старый компьютер с процессором Intel Core2 Quad @ 2,4 ГГц (и Bios, и linux dmidecode не говорят больше об этом), я могу добавить, что процессор принадлежит к семейству 6, модели 15, степпингу 7 (сокет LGA775). ).

Материнская плата поддерживает ECC, но мне интересно, поддерживает ли это ЦП. Я вижу, что результат команды dmidecode --t cache дает информацию о L1, L2, L3, и я вижу, что на L1 и L2 «Тип исправления ошибок: однобитный ECC», а на L3 «Тип исправления ошибок: Неизвестно» .

Учитывая то, что я наблюдаю на L1 и L2, могу ли я сделать вывод, что ЦП действительно поддерживает ECC, и я мог бы использовать его для своего ZFS NAS?


person Tiutto    schedule 15.06.2018    source источник
comment
Одно только название и тактовая частота почти наверняка определяют его как Q6600.   -  person Iwillnotexist Idonotexist    schedule 15.06.2018
comment
FWIW, ECC RAM не более необходима в системе ZFS, чем в любой другой файловой системе (хотя, конечно, ECC полезна для любой системы, где важна целостность данных). Это миф о ZFS, который кажется особенно опасным. См. ответ Мэтта Аренса (соавтора ZFS) на этот миф здесь: >arstechnica.com/civis/.   -  person Dan    schedule 16.06.2018


Ответы (1)


Нет, вы не можете сделать вывод о том, поддерживается ECC DRAM или нет, исходя из того, что внутренний кэш использует для защиты данных в кеше. Эти две вещи не связаны.

Вам необходимо проверить спецификации процессора и материнской платы, чтобы убедиться, что они оба поддерживают ECC DRAM. (В вашем случае Core2 не имеет встроенного контроллера памяти, поэтому DRAM подключена к северному мосту ЦП. Это было последнее поколение, которое не интегрировало контроллеры DRAM.)

Все последние процессоры Intel используют ECC в своих кэшах L2/L3, но L1D на самом деле просто контроль четности, а не ECC. (Для поддержки эффективных однобайтовых и невыровненных хранилищ без больших накладных расходов ECC.)

Core2Quad не имеет кэш L3.

И, кстати, его пропускная способность памяти значительно хуже, чем у Nehalem или новее с DDR3, что может быть проблемой для ZFS, часто копирующего данные. Я думаю, что пропускная способность памяти может быть частью узкого места в моем старом Core2Duo с XFS RAID5, который не насыщает пропускную способность отдельных дисков для последовательного чтения.

person Peter Cordes    schedule 15.06.2018
comment
Вы можете определить механизм исправления ошибок, используемый на любом уровне памяти, используя sudo dmidecode | grep "Error Correction Type". Это напечатает 4 строки на сокет, соответствующие 4 уровням памяти (L1, L2, L3 и память). Я запускал это на трех системах Intel: клиент Haswell, сервер Broadwell, клиент Coffee Lake. В Haswell все кеши используют однобитный ECC. На BDW и CFL L1 использует контроль четности, а L2 и L3 используют однобитовый ECC. В клиентских системах модули DIMM не имеют защиты от ошибок. В серверной системе модули DIMM защищены с помощью многобитного ECC. - person Hadi Brais; 25.03.2019
comment
Так что похоже, что Intel использует ECC для L1 в некоторых микроархитектурах. - person Hadi Brais; 25.03.2019
comment
@HadiBrais: Интересно, интересно, правда ли это. Я думаю, что это происходит из-за BIOS, а не непосредственно из CPUID, так что есть место для сомнений. Мой C2Duo также сообщает об однобитном ECC для кэшей L1i/d и L2, в то время как мой SKL сообщает о четности как для своих кэшей L1, так и для однобитного ECC L2 и многобитного ECC L3. Я предполагаю, что L1i не нуждается в ECC, потому что он может просто выполнить повторную выборку, в то время как L2 может хранить ценные грязные данные, которых нет больше нигде. (dmidecode сообщает 128 КБ для обоих, я думаю, потому что это общее количество для 4 ядер.) - person Peter Cordes; 25.03.2019
comment
Да, я думаю, что это исходит от BIOS, но я не знаю, откуда BIOS получает эту информацию. Pentium Pro также использует ECC для L1 и L2. Pentium 4 использует четность для L1 и ECC для L2 (и L3). Вы можете найти эту информацию в старых документах Intel. Неудивительно, что некоторые процессоры Intel используют ECC для L1. Другие поставщики, такие как AMD и DEC, также использовали ECC для L1 в некоторых своих процессорах. - person Hadi Brais; 25.03.2019