stringtranslate.com

Блокнотная память

Scratchpad memory ( SPM ), также известная как scratchpad , scratchpad RAM или local store в компьютерной терминологии, представляет собой внутреннюю память, обычно высокоскоростную, используемую для временного хранения вычислений, данных и другой незавершенной работы. В отношении микропроцессора ( или ЦП ) scratchpad относится к специальной высокоскоростной памяти, используемой для хранения небольших элементов данных для быстрого извлечения. Она похожа на использование и размер блокнота в жизни: блокнот для предварительных заметок, набросков или записей и т. д. Когда блокнот является скрытой частью основной памяти, то его иногда называют bump storage .

В некоторых системах [a] его можно считать аналогичным кэшу L1 в том смысле, что это следующая ближайшая память к АЛУ после регистров процессора , с явными инструкциями по перемещению данных в основную память и из нее , часто с использованием передачи данных на основе DMA . [1] В отличие от системы, использующей кэши, система с блокнотами является системой с неравномерными задержками доступа к памяти (NUMA), поскольку задержки доступа к памяти для различных блокнотов и основной памяти различаются. Еще одним отличием от системы, использующей кэши, является то, что блокнот обычно не содержит копию данных, которая также хранится в основной памяти.

Scratchpads используются для упрощения логики кэширования и для гарантии того, что устройство может работать без конкуренции за основную память в системе, использующей несколько процессоров, особенно в многопроцессорной системе на кристалле для встраиваемых систем . Они в основном подходят для хранения временных результатов (как это было бы найдено в стеке ЦП), которые обычно не должны всегда фиксироваться в основной памяти; однако при подаче через DMA их также можно использовать вместо кэша для зеркалирования состояния более медленной основной памяти. Те же проблемы локальности ссылок применяются в отношении эффективности использования; хотя некоторые системы позволяют strided DMA получать доступ к прямоугольным наборам данных. Другое отличие заключается в том, что scratchpads явно манипулируются приложениями. Они могут быть полезны для приложений реального времени , где предсказуемая синхронизация затруднена поведением кэша.

Scratchpads не используются в основных процессорах для настольных ПК, где требуется универсальность для работы устаревшего программного обеспечения из поколения в поколение, в котором доступный размер памяти на чипе может меняться. Они лучше реализованы во встраиваемых системах, специализированных процессорах и игровых консолях , где чипы часто производятся как MPSoC , и где программное обеспечение часто настраивается на одну аппаратную конфигурацию.

Примеры использования

Альтернативы

Управление кэшем против блокнотов

Некоторые архитектуры, такие как PowerPC, пытаются избежать необходимости в блокировке строк кэша или блокнотах с помощью инструкций управления кэшем . Пометка области памяти как «Data Cache Block: Zero» (выделение строки, но установка ее содержимого в ноль вместо загрузки из основной памяти) и ее отбрасывание после использования («Data Cache Block: Invalidate», сигнализирующее о том, что основная память не получила обновленных данных) заставляет кэш вести себя как блокнот. Общность сохраняется в том, что это подсказки, и базовое оборудование будет работать правильно независимо от фактического размера кэша.

Общие локальные хранилища L2 и Cell

Что касается межпроцессорной связи в многоядерной конфигурации, есть сходство между межлокальным DMA Cell и общей настройкой кэша L2, как в Intel Core 2 Duo или пользовательском powerPC Xbox 360: кэш L2 позволяет процессорам обмениваться результатами без необходимости их фиксации в основной памяти. Это может быть преимуществом, когда рабочий набор для алгоритма охватывает весь кэш L2. Однако, когда программа написана для использования преимущества межлокального DMA, Cell имеет преимущество в том, что каждое локальное хранилище служит как частному рабочему пространству для одного процессора, так и точке совместного использования между процессорами; т. е. другие локальные хранилища находятся в таком же положении, как и общий кэш L2 в обычном чипе. Компромисс заключается в том, что память тратится впустую на буферизацию и сложность программирования для синхронизации, хотя это было бы похоже на предварительно кэшированные страницы в обычном чипе. Области, в которых использование этой возможности эффективно, включают:

Обычный процессор мог бы получить аналогичные преимущества с помощью инструкций по управлению кэшем, например, разрешив предварительную выборку в L1 в обход L2 или подсказку о вытеснении, которая сигнализировала бы о передаче из L1 в L2, но не о передаче в основную память; однако в настоящее время ни одна система не предлагает такую ​​возможность в пригодной для использования форме, и такие инструкции по сути должны отражать явную передачу данных между областями кэша, используемыми каждым ядром.

Смотрите также

Примечания

  1. ^ Некоторые старые системы использовали скрытую часть основного хранилища, называемую bump storage, в качестве scratchpad. В других системах, например, UNIVAC 1107 , все адресуемые регистры содержались в scratchpad.

Ссылки

  1. ^ Steinke, Stefan; Lars Wehmeyer; Bo-Sik Lee; Peter Marwedel (2002). "Assigning Program and Data Objects to Scratchpad for Energy Reduction" (PDF) . University of Dortmund . Получено 3 октября 2013 г. .: "3.2 Модель блокнота. Память блокнота использует программное обеспечение для управления распределением местоположения данных."
  2. ^ "Внутренняя архитектура TI-99/4A". www.unige.ch . Получено 2023-03-08 .
  3. ^ J. Lu, K. Bai, A. Shrivastava, «SSDM: интеллектуальное управление данными стека для программно-управляемых многоядерных процессоров (SMM)», Design Automation Conference (DAC) , 2–6 июня 2013 г.
  4. ^ К. Бай, А. Шривастава, «Автоматическое и эффективное управление данными кучи для многоядерных архитектур с ограниченной локальной памятью», Design Automation and Test in Europe (DATE) , 2013
  5. ^ K. Bai, J. Lu, A. Shrivastava, B. Holton, «CMSM: эффективное и действенное управление кодом для программно-управляемых многоядерных процессоров», CODES+ISSS , 2013
  6. ^ Паттерсон, Дэвид (30 сентября 2009 г.). «10 главных инноваций в новой архитектуре NVIDIA Fermi и три главные задачи на будущее» (PDF) . Лаборатория исследований параллельных вычислений и NVIDIA . Получено 3 октября 2013 г.
  7. ^ Цзя, Чжэ; Тиллман, Блейк; Маджони, Марко; Скарпацца, Даниэль П. (7 декабря 2019 г.). Анализ архитектуры Graphcore IPU с помощью микробенчмаркинга (PDF) (технический отчет). Citadel Enterprise Americas, LLC. arXiv : 1912.03413 .

Внешние ссылки