Что такое Mappable и Non-mappory Memeory

Я просматриваю пример кода и наткнулся на функцию (ID3D11DeviceContext :: UpdateSubresource) «CPU копирует данные из памяти в подресурс, созданный в не отображаемая память

Физически и / или логически, каковы упрощенные определения отображаемая память?

Аналогично, каковы упрощенные определения не отображаемая память?

Я нашел много подробной (с точки зрения начинающего) информации по теме карт памяти и добавил ее в свой список чтения. Я прочитал некоторую основную информацию, которая объясняет, что и почему карты памяти. Как сказал один сайт: «Расположение файлов в памяти компьютера сохраняется в виртуальном файле, известном как карта памяти».

У меня возникают проблемы при подключении этих определений и понятий к терминам отображаемой / не отображаемой памяти.

Я получаю немного помощи от моих друзей.

0

Решение

Mappable memory — это то, к чему вы можете получить доступ непосредственно из вашей программы через отображение виртуальной памяти.

Если память вашей графической карты не отображена в памяти, вам нужно как-то отдать распоряжение карте загрузить ее из вашего адресного пространства в ее адресное пространство. Который включает в себя копирование.

Если память карты была разделена или отображена, процессор мог напрямую записывать в общую память, избегая при этом ненужного копирования.

1

Другие решения

Для графики в основном четыре вида памяти:

  • Выделенная видеопамять: Это память, которая может использоваться только графической картой, поскольку она физически расположена на самой графической части. GPU может получить к нему доступ, CPU не может. Значение DXGI_ADAPTER_DESC.DedicatedVideoMemory количество такого вида памяти.

  • Выделенная системная память: В случае встроенной графической части часть основной системной памяти используется во время загрузки для выделенного графического использования. Процессор заблокирован от доступа к нему, и он используется исключительно графическим процессором. DXGI_ADAPTER_DESC.DedicatedSystemMemory количество такого вида памяти.

  • Общая системная память: Это обычная основная память, которая находится в режиме, доступном как для GPU, так и для CPU. Обычно это достигается через что-то вроде апертуры памяти PCIe. DXGI_ADAPTER_DESC.SharedSystemMemory количество такого вида памяти.

  • остаток системной памяти не доступен для GPU, только для процессора. Графические процессоры обычно не могут адресовать более 4 ГБ общей памяти между всеми тремя типами.

Так что для дискретной графической части, DedicatedVideoMemory это что-то вроде 1 ГБ, SharedSystemMemory что-то вроде 256 МБ или больше, и DedicatedSystemMemory это 0.

Для интегрированной части, DedicatedVideoMemory небольшое число (16 МБ или 32 МБ) или даже 0, DedicatedSystemMemory составляет 256 МБ или 512 МБ, и SharedSystemMemory 256 МБ или больше.

Существуют также системы с унифицированной архитектурой памяти, такие как Xbox One, где имеется небольшое количество DedicatedVideoMemory и по существу вся основная память также SharedSystemMemory,

«Маппируемая» память относится к общей системной памяти. Если связанный ресурс DEFAULT тогда вы не можете отобразить его, потому что ему разрешено находиться в выделенной видеопамяти. DYNAMIC ресурс помещается в общую системную память. STAGING ресурс выделяется в части «остальной части системной памяти».

Увидеть DirectX Видеопамять образец.

1

Отображение памяти это термин, обозначающий присвоение адресов памяти что-то. Это может быть что-то вроде аппаратных регистров для интерфейса USB или расположения в файле.

файл отображенный в память это файл, к которому можно получить доступ, как если бы он был в памяти, как огромный массив. Некоторые операционные системы предоставляют функциональность для этого, на других платформах программист должен смоделировать это поведение.

Имейте в виду, что ОСРВ обычно контролирует доступ к ячейкам памяти, включая те, которые отображены в памяти. Просто так что-то является отображением памяти (как порт I2C), не означает, что ваша программа пространства пользователя может получить к ней доступ напрямую.

0
По вопросам рекламы [email protected]