Memory management unit

Блок управления памятью — набор схем для доступа к физической памяти

Содержание страницы

Блок управления памятью (Memory management unit ) — набор схем для доступа к физической памяти, запрашиваемой ЦП . Среди задач этих систем — функции трансляции виртуальной памяти в память, защита физической памяти , обслуживание рельсов управления кеш-памятью и, в простых (особенно 8-битных) системах, переключение банков памяти

Современные микросхемы MMU делят пространство логической (виртуальной) памяти на страницы размером 2N , обычно несколько килобайт. Младшие N битов адреса (смещение — называется. Offset ) остается неизменным, в то время как старшие биты адреса указать страницу (логическое) памяти номер. MMU преобразует логические адреса (виртуальные) физические адреса , используя ассоциативный кэш под названием TLB — называется. Перевод Lookaside буфера . Если TLB не имеет соответствующего отображения ( TLBограничено) для запускаются механизмы более медленного аппаратного процессора определяется сложением битов.поиск в структурах данных в памяти , что иногда требует помощи программного обеспечения ( операционной системы ). Позиции в этих структурах называются записями (элементами) памяти таблицы страниц ( PTE — именуемыми записями таблицы страниц ), а вся структура называется таблицей страниц ( именуемой таблицей страниц ). Полный адрес в физической памяти смещения номера переведенной страницы.

Блок управления памятью - набор схем для доступа к физической памяти
Die size: 7.0 x 5.2 mm The IDT IDT79R3051 family is a series of high-performance 32-bit microprocessors featuring a high level of integration which are targeted to high-performance, but cost sensitive embedded processing applications. The IDT79R3051 family is designed to bring the high-performance inherent in the MIPS RISC architecture into low-cost, simplified, power sensitive applications. Functional units were integrated onto the CPU core in order to reduce the total system cost, without significantly degrading system performance. Thus, the IDT79R3051 family is able to offer 35MIPS of integer performance at 40MHz without requiring external SRAM or caches. Furthermore, the IDT79R3051 family brings dramatic power reduction to these embedded applications, allowing the use of low-cost packaging for devices up to 25 MHz. The IDT79R3051 family allows customer applications to bring maximum performance at minimum cost. The IDT79R3051 family could be viewed as the embodiment of a discrete solution built around the IDT79R3000A or IDT79R3001. However, by integrating this functionality on a single chip, dramatic cost and power reductions are achieved. The IDT79R3052″E» incorporates 8kB of Instruction Cache, and features a full-function Memory Management Unit (MMU), including a 64-entry fully-associative Translation Lookaside Buffer (TLB). This is the same MMU incorporated into the IDT79R3000A and IDT79R3001.

Записи в TLB или PTE могут также хранить информацию или иметь доступ к ручному режиму записи ( называемому. Dirty Bit ) или в режиме чтения ( называемому. Accessed bit — bit, полезные алгоритмы развертки памяти), биты разрешения страницы Операция память (права для режима супервизора или режима пользователя) или возможность перемещения страницы для подкачки памяти .

Если структуры TLB или PTE не содержат соответствующего описания текущей используемой страницы логической памяти или запись запрещает доступ в данном режиме, MMU сигнализирует ЦП об исключении, связанном с неправильным доступом к странице памяти , так называемой ошибка страницы. Затем операционная система может предпринять действия, связанные с исключением , например, заполнить записи в таблице страниц или TLB или завершить процесс , операция которого вызвала исключение.

Примеры

80×86

Блок управления памятью - набор схем для доступа к физической памяти

MMU выполняется только в защищенном режиме (начиная с 80286). По сути, существует два механизма, обеспечивающих защиту памяти: сегментация (начиная с 80286) и разбиение на страницы (начиная с 80386), из которых сегментация не используется в современных операционных системах, за исключением особых случаев (требуется постоянный контроль над регистрами сегментов, снижая производительность процессора) [ необходима сноска ]. Включенная подкачка не приводит к снижению скорости обработки инструкций (например, проверка возможности записи по заданному адресу выполняется во время обработки инструкций). Для разбиения на страницы требуется дополнительная память для хранения информации о страницах памяти размером 4 КБ. Вам требуется до 4 Кбайт каталога страниц ( англ. Таблица страниц ) и 4 Кбайт для массива каталогов ( англ. Директория страниц ). В случае нарушения прав защиты перед выполнением «незаконных» инструкций генерируется исключение. Операционная система следит за каталогом страниц и таблицей каталогов. MMU процессора Pentium был расширен с возможностью использования страниц размером 4 МБ.

PowerPC

Блок управления памятью - набор схем для доступа к физической памяти

MMU реализован с использованием регистров процессора: 16 сегментных регистров SR0-SR15, 16 регистров BAT (8 регистров для адресов инструкций IBATL0-IBATL3 и IBATU0-IBATU3, 8 регистров BAT для адресов данных DBATL0-DBATL3 и DBATU0-DBATU3) и один регистр SDR1 . Существует три механизма трансляции адресов: трансляция страниц размером 4 Кбайт (использует регистры сегментов SR0-SR15), трансляция переменного размера блока со 128 Кбайт до 256 Мбайт (использует регистры BAT) и адресация в реальном режиме (трансляция отключена). Перевод страницы и перевод блока начинаются одновременно, однако перевод блока имеет приоритет над переводом страницы. Если более старый 15-битный эффективный адрес (обозначение EA0-EA14, ang. Действующий адрес) соответствует одному из регистров IBATU или DBATU, дальнейшая трансляция страницы отменяется. Затем физический адрес начала блока берется из соответствующего регистра IBATL или DBATL. Размер блока кодируется 11 битами регистра IBATU или DBATU и может быть: 128 КБ, 256 КБ, …, 64 МБ, 128 МБ, 256 МБ. Защита данного блока определяется двумя битами PP: 00 без доступа, x1 только для чтения, 10 для чтения и записи разрешены. При нарушении прав выдается исключение в зависимости от типа запроса (доступ к инструкциям или данным). В случае перевода по страницам Старшие 4 бита эффективного адреса (EA0-EA3) выбирают один из 16 сегментных регистров (32 бита). Из выбранного сегментного регистра берутся 24 бита, из которых вычисляется 24 + 28 = 52-битный виртуальный адрес. Затем виртуальный адрес используется для поиска физического адреса двумя способами: либо через TLB (более быстрый доступ, кэшированный физический адрес), либо путем поиска в таблице страниц.

Поддержание содержимого TLB (TLB не является обязательным) и таблицы страниц — это задача операционной системы. Доступ к TLB возможен только тогда, когда процессор работает в режиме супервизора или MSR [PR] = 0 ( англ. Режим супервизора ). Операционная система должна обеспечивать согласованность между TLB и таблицей страниц. Если подходящая копия PTE отсутствует в TLB, процессор ищет PTE в таблице страниц, созданной операционной системой. Таблица состоит из 8-байтовых PTE (содержащих 20-битные физические адреса). Размер таблицы страниц хранится в регистре SDR1 и может составлять 64 КБ, 128 КБ, …, 16 МБ, 32 МБ. Поиск PTE в таблице страниц выполняется в два этапа: он использует два разных хеш-таблицы.и требует в общей сложности 16 PTE для просмотра из таблицы страниц. Первая хеш-функция — это операция XOR. Функции смешивания обеспечивают высокую вероятность обнаружения PTE, в случае возникновения исключения отсутствия совпадения (Ошибка страницы ). Этот механизм обеспечивает эффективный поиск PTE в таблице страниц (без просмотра всей таблицы страниц, которая может составлять до 2 ^ 22 = 4194304 PTE). Если правильный PTE найден уже во время первого поиска (поиск 8 PTE), второй этап не выполняется.

Оставьте комментарий