память всегда глобальная, разделяемая и глобально синхронная, и фактически полностью подчиняется всем заборам, даже если она используется в качестве неназванных регистров,
Я не уверен, что вызначит здесь.Если поток обращается к частным данным (то есть не разделяется с любым другим потоком), то почти нет необходимости в инструкциях по ограничению памяти 1 .Заборы используются для управления порядком, в котором доступы к памяти из одного ядра видны другим ядрам.
Почему выделенный кэш L1 не обеспечивает подобную регистру семантику для тех модулей памяти, которые используются толькоконкретным исполнительным блоком?
Я думаю (если я вас правильно понимаю) то, что вы описываете, называется памятью блокнота (SPM), которая представляет собой аппаратную структуру памяти, которая сопоставлена с архитектурнойфизическое адресное пространство или имеет свое собственное физическое адресное пространство.Программное обеспечение может напрямую обращаться к любому местоположению в SPM, аналогично основной памяти.Однако, в отличие от основной памяти, SPM имеет более высокую пропускную способность и / или меньшую задержку, чем основная память, но, как правило, его размер намного меньше.
SPM намного проще, чем кеш, поскольку ему не нужны теги, MSHR, политика замены или аппаратные средства предварительной выборки.Кроме того, согласованность SPM работает как основная память, т. Е. Она вступает в игру только при наличии нескольких процессоров.
SPM используется во многих коммерческих аппаратных ускорителях, таких как графические процессоры, DSP и многоядерные процессоры.Один из примеров, с которым я знаком, - это многоядерный процессор MCDRAM от Knights Landing (KNL), который можно настроить для работы в качестве ближней памяти (т. Е. SPM), кэш-памяти последнего уровня для основной памяти или гибридной.Часть MCDRAM, которая настроена для работы в качестве SPM, отображается в то же физическое адресное пространство, что и DRAM, и кэш L2 (который является частным для каждой плитки) становится кэшем последнего уровня для этой части MCDRAM.Если есть часть MCDRAM, которая настроена как кэш для DRAM, то это будет только кэш последнего уровня DRAM, а не часть SPM.MCDRAM имеет гораздо более высокую пропускную способность, чем DRAM, но задержка примерно одинакова.
В общем случае SPM можно разместить в любом месте иерархии памяти.Например, его можно разместить на том же уровне, что и кэш-память L1.SPM повышает производительность и снижает энергопотребление, когда нет необходимости перемещать данные между SPM и DRAM или нет необходимости.
SPM очень подходит для систем с требованиями в реальном времени, поскольку он обеспечивает гарантии относительно максимальной задержки и / илисамая низкая полоса пропускания, которая необходима для того, чтобы с уверенностью определить, могут ли быть соблюдены ограничения в реальном времени.
SPM не очень подходит для настольных или серверных систем общего назначения, где они могут быть одновременно запущены несколькими приложениями.Такие системы не предъявляют требований в реальном времени, и в настоящее время средняя потребность в полосе пропускания не оправдывает стоимость включения чего-то вроде MCDRAM.Кроме того, использование SPM на уровне L1 или L2 налагает ограничения на размер SPM и кэшей и затрудняет использование такой иерархии памяти для ОС и приложений.
Память Intel Optance DC может быть сопоставлена сфизическое адресное пространство, но оно находится на том же уровне, что и основная память, поэтому оно не считается SPM.
Сноски:
(1) Памятьв однопотоковом (или однопроцессорном) сценарии могут по-прежнему быть необходимы заборы.Например, если вы хотите измерить время выполнения определенной области кода на неработающем процессоре, может потребоваться заключить область между двумя подходящими командами ограничения.Ограждения также требуются при обмене данными с устройством ввода-вывода через страницы ввода-вывода с отображением в памяти, чтобы гарантировать, что все более ранние хранилища достигли устройства.