реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Определение количества физической памяти
Guest_Serg79_*
сообщение May 3 2007, 14:05
Сообщение #1





Guests






Тут такой вопрос, как мне определить количество установленной физической памяти на машине?

Считывание значения по адресу (в реальном режиме) 0040:0013h (сильно не пинайте, сейчас точно не помню точный адрес, по этому могу и ошибаться) слова, у меня на машине показывает 614 Кбайт, что соответственно не правда. Хотя BIOS как то определяет размер физической памяти. Может кто знает, по какому адресу он размещает данное значение.
Go to the top of the page
 
+Quote Post
BSV
сообщение May 4 2007, 00:45
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Можно почитать содержимое SPD-микросхем, стоящих на модулях памяти, через SMBus контроллер, имеющийся в южном мосте (Intel). Скачайте даташит на любой Интеловский южник и там можете почитать про это поподробней.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
makc
сообщение May 4 2007, 08:20
Сообщение #3


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Если мне не изменяет память, то есть функция прерывания 15h, которая позволяет определять количество памяти.

PS: Вам под какой ОС это нужно?


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Guest_Serg79_*
сообщение May 4 2007, 08:35
Сообщение #4





Guests






Цитата(BSV @ May 4 2007, 01:45) *
Можно почитать содержимое SPD-микросхем, стоящих на модулях памяти, через SMBus контроллер, имеющийся в южном мосте (Intel). Скачайте даташит на любой Интеловский южник и там можете почитать про это поподробней.
Точно, Вы попали прямо в точку. Скорее всего так BIOS и поступает, ведь он выполняется в реальном режиме и ему доступно адресное пространство в пределах FFFF:FFFFh.
BSV, если Вам не сложно не могли бы Вы ткнуть меня носом на ссылочку где лежат данные даташиты. А то я защел на сайт Intel и убил минут дватцать, но так и не смог добраться ни до какой либо технической документации.
Go to the top of the page
 
+Quote Post
BSV
сообщение May 4 2007, 11:28
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



ICH2
http://www.intel.com/design/chipsets/datashts/290687.htm
ICH4
http://www.intel.com/design/chipsets/datashts/290744.htm
ICH5
http://www.intel.com/design/chipsets/designex/252673.htm
ICH6
http://www.intel.com/design/chipsets/datashts/301473.htm
ICH7
http://www.intel.com/design/chipsets/datashts/307013.htm
ICH8
http://www.intel.com/design/chipsets/datashts/313056.htm

Только там кроме SPD-шек еще что-то может висеть - нужно сканировать весь диапазон адресов, а затем уже анализировать найденное. Давно этим занимался не помню уже точно.
Еще один момент - BIOS работает в режиме "линейной адресации", при этом может адресовать (как данные) память в 32-разрядном пространстве - это не совсем реальный режим. Регистры SMBus расположены в адресном пространстве адресов ввода-вывода, адрес можно прочитать из соответствующего регистра базового адреса - так что с этим проще. Если с железом через PCI не работали - сложновато Вам будет программу написать.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 00:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016