|
|
  |
NIOS и двухпортовая память для программ/данных |
|
|
|
Oct 25 2011, 11:58
|
Знающий
   
Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965

|
Занимаюсь оптимизацией быстродействия встроенного ПО, возник ряд вопросов по технической части... Есть процессор NIOSII/f, работает из on-chip памяти. Как лучше сделать с точки зрения быстродействия: отдельно память программ, отдельно память данных и подключить их соответсвенно к instruction master и data master портам ниоса или сделать двухпортовую память, один порт к instruction master, другой к data master? Второй вариант более гибкий, и с точки зрения здравого смысла должен быть не медленнее. А на практике разница будет? И попутный вопрос - может ли увеличение размера кэша дать положительный результат, при условии, что программа и так исполняется из on-chip RAM с латентностью = 1?
|
|
|
|
|
Jan 12 2012, 11:52
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(vadimuzzz @ Oct 25 2011, 16:29)  я всегда 2-портовую ставлю, блоки m9k в циклонах поддерживают этот режим. по поводу кэша согласен с barabek, никакой выгоды от него не вижу в описанной вами ситуации. правда nios/f не дает полностью отключить кэши, все равно останется кэш инструкций а как в SOPC, указать процу, что вот эта область - instruction memory, а та - data memory?
--------------------
С Уважением...
|
|
|
|
|
Jan 13 2012, 18:38
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(barabek @ Jan 13 2012, 01:45)  этим линкер занимается. Без Вашего участия если, конечно же, нет особых пожеланий  . Т.е Вы хотите сказать, что достаточно в SOPC указать что память 2-х портовая, как NIOS сразу в одной части будет хранить код в другой данные? Это где то написано?
--------------------
С Уважением...
|
|
|
|
|
Jan 16 2012, 16:22
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(barabek @ Jan 14 2012, 10:41)  Ставим двухпортовую память. Один ее порт соединяем с instruction_master, другой с data_master nios. Автоматически (auto assign base address) адреса обоих портов памяти становятся одинаковые. Затем в nios IDE в свойствах system library (правой кнопкой проект_syslib в properties->system library) настраиваем где хранить каждый раздел. В Вашем случае все разделы (.text, .rodata, .rwdata ...) нужно указать на двухпортовую память. Спасибо barabek, теперь ясно стало как настроить. Цитата(gosu-art @ Jan 16 2012, 11:42)  Так производительность будет реально выше чем с однопортовой? Но все таки, очень интересный ньюанс использовать двухпорттовку для данных и инструкций. Значит Nios поддерживает такую возможность. Все таки интересно где это написано?))) да, кстати при настройке памяти в диалоге "On Chip Memory(RAM or ROM)" увидел несколько опций и до кучи хочу спросить: 1.тип памяти ROM тоже бывает на Alter'овских Fpga? 2. опция Initialize Memory Content - в каких случаях нужна??? заранее спасибо за ответы...
--------------------
С Уважением...
|
|
|
|
|
Jan 16 2012, 23:29
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата так производительность... Я не пробовал двухпортовку, но по идее если есть кэш или DMA то работать будет по-шустрей. Цитата(Fynjisx @ Jan 17 2012, 02:22)  да, кстати при настройке памяти в диалоге "On Chip Memory(RAM or ROM)" увидел несколько опций и до кучи хочу спросить: 1.тип памяти ROM тоже бывает на Alter'овских Fpga? 2. опция Initialize Memory Content - в каких случаях нужна??? заранее спасибо за ответы... 1. ROM это та же RAM, только без возможности записи  . 2. Например, когда установили ROM.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|