размер физической памяти

Тема в разделе "WASM.ASSEMBLER", создана пользователем rpy3uH, 26 апр 2007.

  1. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    на сайте sasm.narod.ru есть пример определения размера физической памяти (путём прочёчывания памяти постранично), но он подойдёт только для памяти размером не больше 4 ГБ, а как же быть с памятью более 4 ГБ (для режима PAE), как определиь её размер????
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    rpy3uH
    GlobalMemoryStatus, GlobalHemoryStatusEx или у тебя какая-то экзотика?
     
  3. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    rpy3uH
    смотри мануал Intel по PAE
    вкратце, нужно будет создать 3 64-х битных элемента (PDPTE, PDE, PTE) (адрес PDE поместить в PDPTE, адрес PTE - в PDE)
    последовательно меняя базу 36 битного адреса в PTE и используя виртуальный адрес 0x00000000 можно получить доступ ко всему 64GB пространству
     
  4. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    http://www.wasm.ru/forum/viewtopic.php?id=19897
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    rpy3uH
    Используй прирывания биуса Int 15h
    Функция 0E820h

    EAX = E820h System Memory Map
    Input:
    EBX Номер дескриптора
    ES:lol: I Адрес структуры “Address Range Descriptor”
    ECX Длина структуры “Address Range Descriptor”
    (=> 20 bytes)
    EDX "SMAP" сигнатура (в FASMе "PAMS") 534D4150h
    Output:
    Carry 0 => Функция E820 поддерживается
    EAX "SMAP" сигнатура
    ES:lol: I Тоже самое значение которое подавалось на вход
    ECX Длина полученной информации в Байтах
    EBX Следующей номер дескриптора
    Структура “Address Range Descriptor”:
    Байты 0-3 Нижние 32 Бита Базового адреса
    Байты 4-7 Верхние 32 Бита Базового адреса
    Байты 8-11 Нижние 32 Бита Длины в байтах
    Байты 12-15 Верхние 32 Бита Длины в байтах
    Байты 16-19 Тип диапазона:
    1 = AddressRangeMemory, разрешен для использования в ОС
    2 = AddressRangeReserved, не разрешен для использования
    3 = AddressRangeACPI, разрешен для использования в ОС
    4 = AddressRangeNVS, не разрешен для использования в ОС
    Другие = Не определены, не разрешены для использования в ОС
    Примечание: Каждый вызов этого сервиса возвращает дескриптор
    Первый дескриптор имеет 0 значение, последний дескриптор указывает на 0.


    Недавно обусждали здесь http://board.sysbin.com/viewtopic.php?t=1673
    и еще на форуме колибре.

    Способ сканирования памяти не верный. Так как существует возможность, что видео память находиться сразу за основной. Это возможно уже при 3ГБ основной памяти. И это не беря в расчет что биус использует часть основной памяти компьютера. К примеру во встроенных видео картах и для других нужд.
     
  6. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    это точно......даже не задумывался
    но здесь возникает новый вопрос
    если памяти 4 ГБ, а на видюхе 512 МБ, а система на обычном ядре что тогда делать?
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    rpy3uH
    Ядро менять. Можешь просконировать PCI найти самый маленький адресс(>16МБайт). И уже сканировать память до него.
     
  8. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    я тут где прочитал что если мать поддерживает не больше 4 ГБ и если поставить 4 ГБ, то получится 3,2 ГБ так как старшие 700 МБ адресов отводятся под PCI устройства, а если мать поддерживает 8 ГБ то не более 7,2 ГБ и так далее.....
    отсуда новый вопрос: а если на видюхе 1 ГБ памяти?
     
  9. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    rpy3uH
    Если компьютер поддерживает до 4ГБ то. Будет 2ГБ основной памяти далее все под PCI.
    Это условно, вообще у Intel написано что BIOS отводить 1ГБайт под PCI, но размер может варьироваться.

    А вот если матерь поддерживает 8ГБ то там все 8 и будут. Такие матери поддерживают переотображения части основной памяти.
     
  10. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    не понял....
    то есть под PCI устройства может отводиться память любого размера сколько может поддерживать мать
     
  11. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    rpy3uH
    Я имел виду если матерь поддерживает 8ГБайт основной памяти. То все 8ГБайт основной памяти у тебе и будет доступно. Так как в таких материнках предусмотрено переотображения части основной памяти.
    А под PCI будет зарезервирован участок по средине, и в конце. Посередине нужен участок в целях совместимость со старым оборудованием которое поддерживает только 32линии адреса.

    Под PCI отводиться не память, а адресатное пространство. В принципе может отводиться сколько угодно. Но есть ряд ограничений.
     
  12. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    вопрос который долго меня гложет:
    на видюхах стоит высокоскоростная память, но с высокой скоростью к ней может обратиться только процессор видюхи
    собственно вопрос: на процессоре видюхи какой код выполняется?
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    rpy3uH
    Шейдеры.
     
  14. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    rpy3uH
    Собственно, это точно знают только производители видюх или драйверов к ним... :dntknw:
    Предположительно - в 2D - рисование примитивов, аппаратная поддержка всяких фич типа скроллинга, всякие там копипейстерства, заливки и т.д.
    в 3D - текстурирование, анти-алиасинг, бамп-маппинг, и т.д. плюс собственно код, который сочинит ей программист, называемый страшным словом "шейдеры" :)

    Вообще, понятие GPU довольно мутное - графический процессор, в отличии от CPU, в виде отдельной взятой сущности, для которой применимо понятие "исполняемый код" в современных видяхах и не существует, т.к. есть существо многоголовое от незапамятных времен. :)
     
  15. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    теперь всё понятно.