Что вы действительно спрашиваете, так это сопоставление физического адреса с DRAM.Как правило, единого ответа не существует, и в данной системе может не быть определенного бита адреса.Вам нужно будет знать геометрию вашей памяти и то, как сконфигурирован ваш контроллер памяти.В Linux существует decode-dimms , который запрашивает сами микросхемы DRAM по протоколу SPD и может рассказать вам кое-что о геометрии памяти, но не о сопоставлении физического адреса с DRAM или его конфигурации.Ваш контроллер памяти может шифровать биты адреса, чтобы добиться большего параллелизма и избежать перебора банка.Вы должны попасть в сорняки.
Принимая во внимание, что TLB скрывает сложность виртуального сопоставления с физическим, контроллер памяти DRAM скрывает сложность физического сопоставления с DRAM.(И вы, вероятно, подумали, что физический означает физический!) Вам нужно больше узнать о физическом сопоставлении адресов DRAM и вашем контроллере памяти и о том, как BIOS конфигурирует его в частности. Хороший учебник по сопоставлению адресов физических и DRAM . Другой, использующий определенную систему Sandy Bridge. Образец таблицы данных Micron .Вам нужно будет взглянуть на логику загрузки вашей системы, так как она настроит контроллер памяти.Я не знаю, есть ли способ запросить контроллер памяти относительно его конфигурации.ОС, вероятно, не будет касаться этой конфигурации и вместо этого будет полагать, что BIOS сделал все правильно.Может быть возможно определить эти вещи эмпирически.Документы RowHammer были бы хорошим местом для поиска этого.