Блокнот памяти
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2013 г. ) |
Блокнотная память ( SPM ), также известная как блокнот , блокнот RAM или локальное хранилище в компьютерной терминологии, представляет собой внутреннюю память, обычно высокоскоростную, используемую для временного хранения вычислений, данных и другой незавершенной работы. Что касается микропроцессора (или ЦП ), блокнот относится к специальной высокоскоростной памяти, используемой для хранения небольших элементов данных для быстрого поиска. Это похоже на использование и размер блокнота в жизни: блокнот для предварительных заметок, набросков, записей и т. д. Когда блокнот представляет собой скрытую часть основной памяти, его иногда называют хранилищем данных .
В некоторых системах [а] его можно считать похожим на кэш L1 в том смысле, что это следующая ближайшая к ALU память после регистрации процессора , с явными инструкциями по перемещению данных в основную память и из нее , часто с использованием передачи данных на основе DMA . [1] В отличие от системы, использующей кэши, система с блокнотами — это система с неравномерными задержками доступа к памяти (NUMA), поскольку задержки доступа к памяти для разных блокнотов и основной памяти различаются. Еще одно отличие от системы, использующей кэш, заключается в том, что блокнот обычно не содержит копии данных, которые также хранятся в основной памяти.
Блокноты используются для упрощения логики кэширования и для гарантии того, что устройство может работать без конфликтов с основной памятью в системе, использующей несколько процессоров, особенно в многопроцессорных системах на кристалле для встраиваемых систем . Они в основном подходят для хранения временных результатов (например, в стеке ЦП), которые обычно не обязательно всегда фиксировать в основной памяти; однако при подаче через DMA их также можно использовать вместо кеша для зеркалирования состояния более медленной основной памяти. Те же вопросы локальности применимы и к эффективности использования; хотя некоторые системы позволяют пошаговому DMA получать доступ к прямоугольным наборам данных. Другое отличие состоит в том, что блокноты явно управляются приложениями. Они могут быть полезны для приложений реального времени , где предсказуемость времени затрудняется поведением кэша.
Блокноты не используются в основных настольных процессорах, где требуется универсальность для запуска устаревшего программного обеспечения из поколения в поколение, в которых доступный объем встроенной памяти может меняться. Они лучше реализуются во встраиваемых системах, процессорах специального назначения и игровых консолях , где чипы часто производятся как MPSoC , а программное обеспечение часто настроено на одну аппаратную конфигурацию.
Примеры использования
[ редактировать ]- Fairchild F8 1975 года содержал 64 байта блокнота.
- TI -99/4A имеет 256 байт оперативной памяти на 16-битной шине, содержащей регистры процессора TMS9900. [2]
- Cyrix 6x86 — единственный x86 -совместимый процессор для настольных ПК, оснащенный выделенным блокнотом.
- SuperH , используемый в консолях Sega, мог привязывать строки кэша к адресу за пределами основной памяти для использования в качестве блокнота.
- Sony PS1 R3000 . имел блокнот вместо кэша L1 Здесь можно было разместить стек ЦП, пример использования временного рабочего пространства.
- Adapteva Epiphany Параллельный сопроцессор имеет локальные хранилища для каждого ядра, соединенные сетью на кристалле , с возможным DMA между ними и внешними соединениями (возможно, с DRAM). Архитектура аналогична Sony Cell, за исключением того, что все ядра могут напрямую обращаться к блокнотам друг друга, генерируя сетевые сообщения из стандартных инструкций загрузки/сохранения.
- Sony PS2 Emotion Engine включает в себя блокнот объемом 16 КБ , в который и из которого можно осуществлять передачу DMA в его GS и основную память.
- SPE Cell ограничены работой исключительно в своем «локальном хранилище», полагаясь на DMA для передачи данных из/в основную память и между локальными хранилищами, что очень похоже на блокнот. В этом отношении дополнительная выгода возникает из-за отсутствия аппаратного обеспечения для проверки и обновления согласованности между несколькими кэшами: в конструкции используется предположение о том, что рабочее пространство каждого процессора является отдельным и частным. Ожидается, что это преимущество станет более заметным по мере увеличения количества процессоров в «многоядерном» будущем. Тем не менее, из-за устранения некоторой аппаратной логики данные и инструкции приложений на SPE должны управляться через программное обеспечение, если вся задача на SPE не может поместиться в локальном хранилище. [3] [4] [5]
- Многие другие процессоры позволяют блокировать строки кэша L1.
- Большинство процессоров цифровых сигналов используют блокнот. Многие предыдущие 3D-ускорители и игровые консоли (включая PS2) использовали DSP для преобразования вершин . Это отличается от потокового подхода современных графических процессоров, который имеет больше общего с функциями кэша ЦП.
- NVIDIA 8800 Графический процессор , работающий под управлением CUDA, обеспечивает 16 КБ оперативной памяти (NVIDIA называет это общей памятью) на каждый пакет потоков при использовании для задач GPGPU . Scratchpad также использовался в более поздних графических процессорах Fermi ( серия GeForce 400 ). [6]
- компании Ageia Чип PhysX включает в себя оперативную память, аналогичную Cell; теория этого конкретного физического процессора заключается в том, что иерархия кэша менее полезна, чем управляемая программным обеспечением физика и расчеты столкновений. Эти воспоминания также сохраняются в банке, и переключением между ними управляет переключатель.
- Процессор Intel Knights Landing имеет MCDRAM объемом 16 ГБ, который можно настроить как кэш-память, блокнотную память или разделить на часть кэш-памяти и часть блокнотной памяти.
- Movidius Myriad 2 — процессор видеоизображения , организованный в виде многоядерной архитектуры с большим многопортовым общим блокнотом.
- Graphcore разработала ускоритель искусственного интеллекта на основе блокнотной памяти [7]
Альтернативы
[ редактировать ]Контроль кэша против блокнотов
[ редактировать ]Некоторые архитектуры, такие как PowerPC, пытаются избежать необходимости блокировки строки кэша или блокнота за счет использования инструкций управления кэшем . Маркировка области памяти с помощью «Блок кэша данных: ноль» (выделение строки, но установка ее содержимого в ноль вместо загрузки из основной памяти) и ее удаление после использования («Блок кэша данных: недействительный», сигнализирующий о том, что основная память не была использована). не получаю никаких обновленных данных) кэш работает как блокнот. Общность сохраняется в том смысле, что это подсказки, и базовое оборудование будет работать правильно независимо от фактического размера кэша.
Общие локальные магазины L2 и Cell
[ редактировать ]Что касается межпроцессорной связи в многоядерной конфигурации, существует сходство между DMA между локальными хранилищами Cell и общей настройкой кэша L2, как в Intel Core 2 Duo или специальном PowerPC Xbox 360: кэш L2 позволяет процессорам обмениваться результатами, не быть зафиксированным в основной памяти. Это может быть преимуществом, если рабочий набор алгоритма охватывает весь кэш L2. Однако, когда программа написана так, чтобы использовать преимущества DMA между локальными хранилищами, Cell имеет преимущество в том, что каждое локальное хранилище друг друга служит ОБА частной рабочей области для одного процессора И точке совместного использования между процессорами; т. е. другие локальные хранилища рассматриваются с одного процессора так же, как общий кэш L2 в обычном чипе. Платой за это является трата памяти на буферизацию и сложность программирования для синхронизации, хотя это похоже на предварительно кэшированные страницы в обычном чипе. Области, в которых использование этой возможности эффективно, включают:
- Конвейерная обработка (где достигается тот же эффект, что и при увеличении размера кэша L1 за счет разделения одного задания на более мелкие фрагменты)
- Расширение рабочего набора, например, оптимального варианта для сортировки слиянием, при котором данные умещаются в пределах 8×256 КБ.
- Загрузка общего кода, например загрузка фрагмента кода в один SPU, а затем копирование его оттуда в другие, чтобы избежать повторного обращения к основной памяти.
Обычный процессор мог бы получить аналогичные преимущества с помощью инструкций управления кэшем, например, позволяя выполнять предварительную выборку в L1 в обход L2 или подсказку о вытеснении, которая сигнализирует о передаче из L1 в L2, но не фиксируется в основной памяти; однако в настоящее время ни одна система не предлагает эту возможность в пригодной для использования форме, и такие инструкции по сути должны отражать явную передачу данных между областями кэша, используемыми каждым ядром.
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Некоторые старые системы использовали скрытую часть основной памяти, так называемую временную память, в качестве блокнота. В других системах, например UNIVAC 1107 , все адресуемые регистры хранились в блокноте.
Ссылки
[ редактировать ]- ^ Стейнке, Стефан; Ларс Вемейер; Бо-Сик Ли; Питер Марведель (2002). «Назначение объектов программы и данных в блокнот для снижения энергопотребления» (PDF) . Университет Дортмунда . Проверено 3 октября 2013 г. : "3.2 Модель блокнота.. Память блокнота использует программное обеспечение для управления назначением местоположения данных."
- ^ «Внутренняя архитектура ТИ-99/4А» . www.unige.ch . Проверено 08 марта 2023 г.
- ^ Дж. Лу, К. Бай, А. Шривастава, «SSDM: управление данными интеллектуального стека для многоядерных процессоров, управляемых программным обеспечением (SMM)» , Конференция по автоматизации проектирования (DAC) , 2–6 июня 2013 г.
- ^ К. Бай, А. Шривастава, «Автоматическое и эффективное управление кучей данных для многоядерных архитектур с ограниченной локальной памятью» , «Автоматизация проектирования и тестирование в Европе» (DATE) , 2013 г.
- ^ К. Бай, Дж. Лу, А. Шривастава, Б. Холтон, «CMSM: эффективное и действенное управление кодом для многоядерных процессоров, управляемых программным обеспечением» , CODES + ISSS , 2013
- ^ Паттерсон, Дэвид (30 сентября 2009 г.). «10 главных инноваций в новой архитектуре NVIDIA Fermi и 3 главных будущих задачи» (PDF) . Лаборатория исследований параллельных вычислений и NVIDIA . Проверено 3 октября 2013 г.
- ^ Цзя, Чжэ; Тиллман, Блейк; Маджиони, Марко; Скарпацца, Даниэле П. (7 декабря 2019 г.). Анализ архитектуры Graphcore IPU с помощью микробенчмаркинга (PDF) (технический отчет). Цитадель Энтерпрайз Америкас, ООО. arXiv : 1912.03413 .
Внешние ссылки
[ редактировать ]- Раджешвари Банакар, Блокнотная память: альтернатива конструкции кэша. Встроенная память во встраиваемых системах // КОДЫ'02. 6–8 мая 2002 г.