OSDev Wiki
Advertisement

В общем случае подсистема памяти имеет многоуровневую архитектуру.

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

Второй уровень иерархии образован кэш-памятью второго уровня — более медленной, чем кэш первого уровня, но имеющей большую ёмкость. В некоторых моделях могут присутствовать средства обеспечения многопроцессорной работы, связанные с синхронизацией информации в кэшах и т.п. Спецификация ARM, однако, не накладывает каких-либо ограничений на реализацию кэша второго уровня и на необходимость поддержки мультипроцессирования, ограничиваясь замечанием, что фирмы-разработчики процессоров архитектуры ARM должны по этим вопросам взаимодействовать с самой компанией ARM, чтобы быть уверенным в сохранении совместимости своих разработок с будущими версиями архитектуры.

На третьем уровне находятся собственно память (оперативная и постоянная разных типов) и регистры внешних устройств. В принципе, может присутствовать и четвёртый уровень — например, особо медленные (по сравнению с микросхемами ОЗУ и ПЗУ) регистры устройств и т.п. Эти уровни обычно реализованы вне кристалла процессора, хотя спецификация не запрещает размещать на кристалле память и регистры устройств, логически относящиеся к третьему уровню. В реальных микроконтроллерах архитектуры ARM на кристалле обычно интегрированы контроллеры последовательных интерфейсов (RS-232, RS-485, CAN), USB, Ethernet и другие устройства, относящиеся к третьему уровню.

Помимо кэша, процессоры обычно оснащаются буфером записи. В нём накапливаются значения, которые должны должны быть записаны в память, но ещё не записаны. Этот буфер может существенно поднять производительность, в то же время его наличие для программиста остаётся незаметным.

Количество реально реализованных уровней памяти и устройств, их ёмкости, скорость доступа, тип и другие характеристики спецификацией ARM не ограничиваются, что даёт возможность фирмам-разработчикам выпускать кристаллы, оптимизированные под определённые задачи.

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

Advertisement