Память блокнота - Scratchpad memory

Память блокнота (SPM), также известный как блокнот, оперативная память блокнота или же местный магазин в компьютер По терминологии, это высокоскоростная внутренняя память, используемая для временного хранения вычислений, данных и другой незавершенной работы. Что касается микропроцессор ("ЦПУ "), блокнот относится к специальной высокоскоростной памяти. схема используется для хранения небольших данных для быстрого поиска. Это похоже на использование и размер блокнота в жизни: блокнот для предварительных заметок, набросков, записей и т. Д.

Его можно считать аналогом Кэш L1 в том, что это следующее ближайшее к ALU после регистры процессора, с явными инструкциями по перемещению данных в и из основная память, часто используя DMA передача данных на основе.[1] В отличие от системы, использующей кеши, система с блокнотами - это система с неравномерный доступ к памяти задержки, потому что задержки доступа к памяти к различным блокнотам и основной памяти различаются. Еще одно отличие от системы, в которой используются кеши, заключается в том, что блокнот обычно не содержит копии данных, которые также хранятся в основной памяти.

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

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

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

  • Fairchild F8 1975 года содержал 64 байта блокнота.
  • Cyrix 6x86 единственный x86 -совместимый процессор для настольных ПК со специальным блокнотом.
  • SuperH, используемый в консолях Sega, может блокировать строки кэша по адресу вне основной памяти для использования в качестве блокнота.
  • Sony PS1 с R3000 был блокнот вместо кеша L1. Здесь можно было разместить стек ЦП, пример использования временного рабочего пространства.
  • Богоявление Адаптевой параллельно сопроцессор имеет локальные магазины для каждого ядра, соединенные сеть на чипе, с возможным DMA между ними и внешними связями (возможно, с DRAM). Архитектура аналогична Sony Cell, за исключением того, что все ядра могут напрямую обращаться к блокнотам друг друга, генерируя сетевые сообщения из стандартных инструкций загрузки / сохранения.
  • Sony PS2 Двигатель эмоций включает 16КБ блокнот, в который и с которого может осуществляться передача DMA в его GS и основную память.
  • Клетка SPE ограничены только работой в своем «локальном хранилище», полагаясь на DMA для передачи из / в основную память и между локальными хранилищами, как блокнот. В этом отношении дополнительная выгода получается из-за отсутствия оборудования для проверки и обновления согласованности между несколькими кэшами: конструкция использует преимущество предположения, что рабочее пространство каждого процессора является отдельным и частным. Ожидается, что это преимущество станет более заметным по мере увеличения числа процессоров в будущем "многоядерности". Тем не менее, из-за исключения некоторой аппаратной логики данные и инструкции приложений на SPE должны управляться через программное обеспечение, если вся задача на SPE не может поместиться в локальном хранилище.[2][3][4]
  • Многие другие процессоры позволяют блокировать строки кэша L1.
  • Наиболее цифровые сигнальные процессоры используйте блокнот. Многие прошлые 3D-ускорители и игровые консоли (включая PS2) использовали DSP для преобразования вершин. Это отличается от потокового подхода современных графических процессоров, которые имеют больше общего с функциями кеш-памяти ЦП.
  • NVIDIA 8800 GPU работает под CUDA предоставляет 16 КБ блокнота (NVIDIA называет это общей памятью) на каждый поток при использовании для ГПГПУ задачи. Электронный блокнот также использовался в более поздних Ферми GPU (GeForce 400 серии ).[5]
  • Агейи PhysX Чип включает оперативную память RAM аналогично ячейке; его теория утверждает, что иерархия кеша менее полезна, чем программно управляемая физика и вычисления столкновений. Эти воспоминания также хранятся в банках, и переключатель управляет передачей между ними.
  • Intel Процессор Knights Landing имеет 16 ГБ MCDRAM, которую можно настроить как кэш, оперативную память или разделить на кеш-память и оперативную память.
  • Movidius Myriad 2, а блок обработки изображений, организованная как многоядерная архитектура с большим многопортовым общим блокнотом.
  • Graphcore разработал AI-ускоритель на основе воспоминаний блокнота[6]

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

Контроль кеша против блокнотов

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

Общий L2 против локальных магазинов сотовой связи

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

  • Конвейерная обработка (где достигается тот же эффект, что и при увеличении размера кеша L1 путем разделения одного задания на более мелкие части)
  • Расширение рабочего набора, например, золотая середина для сортировки слиянием, когда данные умещаются в пределах 8 × 256 КБ
  • Загрузка общего кода, например загрузка фрагмента кода в один SPU, а затем его копирование оттуда в другие, чтобы избежать повторного попадания в основную память

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

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

Рекомендации

  1. ^ Стейнке, Стефан; Ларс Вемейер; Бо-Сик Ли; Питер Марведель (2002). «Назначение программ и объектов данных в электронный блокнот для снижения энергопотребления» (PDF). Дортмундский университет. Получено 3 октября 2013.: "3.2 Модель блокнота. Блокнотная память использует программное обеспечение для управления назначением местоположения данных."
  2. ^ Дж. Лу, К. Бай, А. Шривастава, "SSDM: интеллектуальное управление данными стека для многоядерных компьютеров, управляемых программным обеспечением (SMM)", Конференция по автоматизации проектирования (DAC), 2–6 июня 2013 г.
  3. ^ К. Бай, А. Шривастава, «Автоматическое и эффективное управление данными в куче для многоядерных архитектур с ограниченной локальной памятью», Автоматизация проектирования и тестирование в Европе (ДАТА), 2013
  4. ^ К. Бай, Дж. Лу, А. Шривастава, Б. Холтон, «CMSM: эффективное и действенное управление кодом для многоядерных программ, управляемых программным обеспечением», КОДЫ + ISSS, 2013
  5. ^ Паттерсон, Дэвид (30 сентября 2009 г.). «10 лучших инноваций в новой архитектуре NVIDIA Fermi и 3 основных задачи, которые предстоит решить» (PDF). Лаборатория параллельных вычислений и NVIDIA. Получено 3 октября 2013.
  6. ^ (PDF) https://www.graphcore.ai/hubfs/assets/pdf/Citadel%20Securities%20Technical%20Report%20-%20Dissecting%20the%20Graphcore%20IPU%20Architecture%20via%20Microbenchmarking%20Dec%202019.pdf. Отсутствует или пусто | название = (помощь)

внешняя ссылка