Есть ли способ программно / универсально определить максимальную скорость ОЗУ, которую поддерживает компьютер?

0

Скажем, у меня есть компьютер, стандартная 32- или 64-разрядная архитектура. Я могу поставить любую ОС (* nix, Windows и т. Д.). Есть ли какой-нибудь способ для компьютера опросить аппаратное обеспечение относительно максимальной поддерживаемой скорости ОЗУ, которая работает универсально ?

Под «универсальным» я подразумеваю, что это решение должно работать даже на устройствах, которые ему не известны / во внутреннем словаре частей / чипсетов / процессоров / чего угодно. Прямо сейчас я могу работать dmidecodeна случайном МБ, и 9/10 раз это даст мне правильные текущие системные характеристики. Но это не говорит мне о максимальной поддерживаемой скорости ОЗУ, и это также неверно больше, чем хотелось бы: особенно на новых материнских платах, работающих под управлением старых ОС, и в странных средах совместимости с UEFI / BIOS.

Это возможно? Если нет, то почему нет?

Зак Б
источник

Ответы:

1

Я бы сказал, легко показать, что это невозможно.

В современной системе контроллер памяти находится на процессоре. Максимальная поддерживаемая частота памяти является меньшей из того, что поддерживает процессор и что поддерживает материнская плата. Без базы данных ЦП единственный способ определить максимальную частоту, которую поддерживает ЦП, - это сообщить BIOS. В то время как BIOS должны сообщать фактическую тактовую частоту в таблице DMI, нет стандартной записи для максимальной поддерживаемой частоты.

Другая проблема заключается в том, что таблица DMI имеет фактическую тактовую частоту. Если вы ищете эффективную частоту (как обычно сообщается скорость ОЗУ), это также потребует от программы понимания соотношения эффективности и фактической производительности ОЗУ. Что если QDR RAM станет популярным? Можете ли вы написать программу, которая может точно определять QDR SDRAM, которая еще даже не существует в качестве спецификации?

Дэвид Шварц
источник