Введение

Скретчпад память (SPM), также известный как скретчпад, скретчпад RAM или локальный хранилище в компьютерной терминологии, является внутренней памятью, обычно высокой скорости, используется для временного хранения вычислений, данных и других текущих работ. Ссылаясь на микропроцессор (или CPU), скретчпад относится к специальной высокоскоростной памяти, используемой для хранения небольших элементов данных для быстрого извлечения. Это похоже на использование и размер скретчпада в жизни: блокнот для предварительных заметок или эскизов или записей и т. д. Когда скретчпад является скрытой частью основной памяти, его иногда называют хранилищем bump. В некоторых системах его можно считать похожим на кэш L1, поскольку это ближайшая память к ALU после регистра процессора, с ясными инструкциями для перемещения данных в и из основной памяти, часто используя передачу данных на основе DMA. В отличие от системы, использующей кэш, система со скретчпадами является системой с неравномерными задержками доступа к памяти (NUMA), потому что задержки доступа к памяти для разных скретчпадов и основной памяти варьируются. Еще одно отличие от системы, использующей кэширование, заключается в том, что скретчпад обычно не содержит копии данных, которые также хранятся в основной памяти. Скретчпады используются для упрощения логики кэширования и для обеспечения возможности работы устройства без конфликта с основной памятью в системе, использующей несколько процессоров, особенно в многопроцессорной системе на чипе для встроенных систем. Они в основном подходят для хранения временных результатов (как это было бы найдено в стеке процессора), которые обычно не должны всегда быть связаны с основной памятью; однако, когда их питает DMA, они также могут использоваться вместо кэша для отражения состояния более медленной основной памяти. Те же самые вопросы локальности ссылки применяются в отношении эффективности использования; хотя некоторые системы позволяют шаговой DMA получать доступ к прямоугольным наборам данных. Еще одно отличие заключается в том, что скретчпадами явно манипулируют приложения. Они могут быть полезны для приложений в режиме реального времени, где предсказуемое время затруднено поведением кэша. Скретчпады не используются в основных настольных процессорах, где требуется общность для запуска устаревшего программного обеспечения из поколения в поколение, в котором размер доступной памяти на чипе может меняться. Они лучше реализуются в встроенных системах, процессорах специального назначения и игровых консолях, где чипы часто производятся как MPSoC, и где программное обеспечение часто настроено на одну конфигурацию оборудования.

Контроль кэша против скретчпадов

Некоторые архитектуры, такие как PowerPC, пытаются избежать необходимости блокировки кэш-линии или скретчпадов с помощью инструкций управления кэшем. Отмечая область памяти "Блок кэша данных: нуль" (присвоение строки, но настройка ее содержимого на нуль вместо загрузки из основной памяти) и отбрасывание после использования ("Блок кэша данных: недействительный", сигнализирующий о том, что основная память не получила никаких обновленных данных), кэш ведет себя как скретчпад. Общественность сохраняется в том, что это подсказки, и базовое оборудование будет работать правильно независимо от фактического размера кэша.