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

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

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

1 ответ1

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .