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

 
 
> AT91SAM9XE512 & MMU, разместить таблицу трансляции во FLASH
Genadi Zawidowsk...
сообщение Mar 31 2013, 16:38
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



В применении без внешней RAM есть только 32 килобайта внутренней памяти. Тратить 16 килобайт под таблицу трансляции адресов как-то жаль. Разместил таблицу во FLASH, MMU и DCache (ICache работал и раньше) включил. Вроде живёт.
Вопросы:
1) имеет ли смысл по скорости?
2) как правильно выполнить сброс DCache в SRAM перед DMA записями (не целиком, а только указанный диапазон MVA)
3) как правильно выполнить инвалидацию DCache после операции чтения блока откуда-либо по DMA (указанный диапазон адресов).
Помнится, в Intel 486 это происходило автоматически...

В двух последних вопросах хотелось бы видеть код, сами функции обращения к CP15 есть или могут быть написаны по мере необходимости.
Как я понимаю, нужно учитывать размер строки TLB и выдавать команды для всех требуемых адресов, инкреметируя начало буфера на размер строки?

Сообщение отредактировал Genadi Zawidowski - Mar 31 2013, 16:49
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Apr 4 2013, 21:42
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Объявить некешируемой часть памяти не получается - атрибуты при одноуровневой таблице распространяются на зоны в мегабайт размером.
Наличие выигрыша будет проверяться осцилографом по времени нахождения в прерывании.

Сообщение отредактировал Genadi Zawidowski - Apr 4 2013, 21:44
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 4 2013, 21:57
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Genadi Zawidowski @ Apr 5 2013, 01:42) *
Объявить некешируемой часть памяти не получается - атрибуты при одноуровневой таблице распространяются на зоны в мегабайт размером.

Тогда есть смысл сделать многоуровневую таблицу - все равно все пути осядут в TLB.

Ну и попутно вопрос: а точно ли нужен DCache? Двукратный прирост скорости при операциях с памятью, конечно,
никогда не мешает, но ведь внутренняя SRAM и сама по себе достаточно быстрая.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 5 2013, 04:48
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(aaarrr @ Apr 5 2013, 01:57) *
Тогда есть смысл сделать многоуровневую таблицу - все равно все пути осядут в TLB.

Ну и попутно вопрос: а точно ли нужен DCache?


Например, много операций pcm->a-law и назад (32 штуки прерывание 8 кГц). т.е., константные данные во flash. Надеюсь на ускорение работы. Хотя, для этого хватает и WT кэширования, которое для FLASH и включено. А WB это так... хочется же запаса!

Сообщение отредактировал Genadi Zawidowski - Apr 5 2013, 04:48
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:44
Рейтинг@Mail.ru


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