реклама на сайте
подробности

 
 
> MMU D-Cache I-Cache для ARM926EJ-S, Как работает и как настроить?
ZED
сообщение Dec 27 2010, 05:54
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102



Доброго всем здравия!

Уважаемые специалисты, помогите разобраться с этими монстрами.
Имеется AT91SAM9260 на базе процессора ARM926EJ-S. Для повышения скорости работы нужно настроить:

1) MMU (Memory Management Unit) - Блок управления памятью. Он отвечает за управление доступом к памяти, запрашиваемым центральным процессором путем трансляции адресов виртуальной памяти в адреса физической памяти. MMU разделяет виртуальное адресное пространство на участки одинакового размера (4 Кб, 64 Кб или 1 Mb ) называемые страницами.
Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции.
Младшие n бит адреса (смещение внутри страницы) остаются неизменными. Старшие биты адреса представляют собой номер (виртуальной) страницы. MMU обычно преобразует номера виртуальных страниц в номера физических страниц используя TLB(Translation Lookaside Buffer) - Буфер Ассоциативной Трансляции.
Вопрос 1. Как настроить это MMU для указанного выше процессора? Как организовать и заполнить TLB? Как ее подключить к MMU и пользоваться ей?

2) Нужно настроить D-Cache (Data Cache - Кэш данных) и I-Cache (Instruction Cache - Кэш комманд процессора).
Кэш — это некий промежуточный буфер, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из внешней памяти. Таким образом комманды и данные выбираются из быстрее и производительность растет.
Кэш состоит из набора записей. Каждая запись ассоциирована с данными, являющимися копией данных в основной памяти. Каждая запись имеет идентификатор, определяющий соответствие между элементами данных в кэше и их копиями в основной памяти.

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

Вопрос 2. Как инициализировать D-Cache и I-Cache? Как и когда (при каких условиях) их очищать? Как с ними работать?


Что имеется у меня: ARM926EJ-S Technical Reference Manual - написано много, очень грузно, четких инструкций не обнаружено. Много всяких режимов, я так и не понял какой нужен именно мне.
Имеется пример, а точнее функции от IAR, но ни в одном проекте они не применяются, т.е. функции нигдек не используются. Тем самым я не могу понять последовательность действий при инициализации вышеупомянутых модулей. Также есть пример из темы данного форума Производительность SAM9XE, непонятки с этим процом. Там есть как раз пример Translation Table, но не очень понятно как с ней работать и почему именно такие адреса.

В ARM926EJ-S еще есть некий регистр TTBR - Translation Table Base Register - я так понял, это регистр указателя начального (базового) адреса расположения TLB. Вопрос где хранить TLB и по какому адресу?


У меня никак не может сложиться общая картина совместной работы этих модулей. Буду признателен специалистам, которые смогут прояснить мне эти вопросы.

Сообщение отредактировал ZED - Dec 27 2010, 06:08
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ZED   MMU D-Cache I-Cache для ARM926EJ-S   Dec 27 2010, 05:54
- - DpInRock   Кодunsigned int AT91F_ARM_ReadControl() { ...   Dec 27 2010, 06:26
- - ZED   Спасибо DpInRock за Ваш пример. А не могли бы вы о...   Dec 27 2010, 06:41
- - DpInRock   Просто почитайте что-нибудь для начала. Ответить н...   Dec 27 2010, 06:58
|- - vmp   Цитата(DpInRock @ Dec 27 2010, 12:58) Ины...   Dec 28 2010, 03:37
- - ZED   Я так понял, что Ваша таблица TLB располагается в ...   Dec 27 2010, 11:50
- - DpInRock   У 9261 - 192К SRAM. (у 9260 совсем мало кажется). ...   Dec 27 2010, 14:25
|- - aaarrr   Цитата(DpInRock @ Dec 27 2010, 20:25) Бою...   Dec 27 2010, 14:35
- - DpInRock   НУ может быть. Уже год как не лазил в 926. А то и ...   Dec 27 2010, 14:38
- - ZED   Может я чего-то не понимаю, но по карте памяти адр...   Dec 28 2010, 04:04
- - DpInRock   Да. Зачем я туда засунул эту таблицу - не помню. ...   Dec 28 2010, 04:27
- - ZED   А можно еще такой вопрос? Поскольку у меня такие м...   Dec 28 2010, 06:47
- - DpInRock   Периферия по этим адресам - это копипасте строчек...   Dec 28 2010, 06:55
- - SII   Кэш инструкций включается установкой соответствующ...   Dec 28 2010, 07:14
- - ZED   ЦитатаMMU включается исключительно ради кэша), то ...   Dec 28 2010, 07:46
|- - vmp   Цитата(ZED @ Dec 28 2010, 13:46) Тогда по...   Dec 28 2010, 08:44
|- - sergeeff   Цитата(vmp @ Dec 28 2010, 15:44) И какие ...   Dec 28 2010, 09:47
|- - aaarrr   Цитата(sergeeff @ Dec 28 2010, 15:47) Еди...   Dec 28 2010, 11:24
- - ZED   ЦитатаИ какие в этом проблемы? Да проблем с этим н...   Dec 28 2010, 10:01
|- - vmp   Цитата(ZED @ Dec 28 2010, 16:01) Да пробл...   Dec 28 2010, 10:30
|- - SII   Цитата(ZED @ Dec 28 2010, 16:01) правильн...   Dec 29 2010, 10:00
- - DpInRock   Чисто совет. Кэш - отличная штука. Ускоряет так но...   Dec 28 2010, 10:51
|- - aaarrr   Вообще, лучше все же применять творческий подход, ...   Dec 28 2010, 21:25
- - ZED   Блин код забыл прикрепить: CODEunsigned int AT91F_...   Dec 28 2010, 11:54
- - DpInRock   Ну и что что в некэшируемой. Ставите нужный битик ...   Dec 28 2010, 13:02
- - sergeeff   To ZED: У Atmel'a, чтобы не было проблем с ко...   Dec 28 2010, 21:02
- - ZED   Спасибо Вам большое за советы и помощь!   Dec 29 2010, 03:24
- - ZED   Теперь возникли проблемы с PLL. Хотел протестирова...   Dec 29 2010, 06:36
- - DpInRock   В жизни не получал таких варнингов от ИАР. Скорее ...   Dec 29 2010, 07:18
- - ZED   ЦитатаРемап никак не связан с варнингами. (Или это...   Dec 29 2010, 07:52
- - DpInRock   Симуляторы и отладчики - зло. Вообще тогда смотрит...   Dec 29 2010, 08:19
- - ZED   В sdram.icf задано: Кодdefine symbol __ICFEDIT_siz...   Dec 29 2010, 08:22
- - DpInRock   А IRQ стек? Вообще, я отлаживаюсь последовательны...   Dec 29 2010, 08:34
- - ZED   ЦитатаА IRQ стек? Кодdefine symbol __ICFEDIT_size_...   Dec 29 2010, 08:36
- - DpInRock   Насколько я представляю, у вас не отлажена среда р...   Dec 29 2010, 08:54
- - ZED   Ну я вообщето взял готовый проект getting-started-...   Dec 29 2010, 08:58
- - DpInRock   По поводу примера. Это действительно не так чтоб о...   Dec 29 2010, 13:09
- - ZED   ЦитатаПо поводу примера. Это действительно не так ...   Dec 30 2010, 03:27
- - DpInRock   Перед вами плата. Перед вами PC. Шнурок RS232 межд...   Dec 30 2010, 08:25
- - JeDay   Цитата1. Пишите PC программу, которая сможет загон...   Jan 14 2011, 21:49


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016