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

 
 
 
Reply to this topicStart new topic
> NIOS и двухпортовая память для программ/данных
alexadmin
сообщение Oct 25 2011, 11:58
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Занимаюсь оптимизацией быстродействия встроенного ПО, возник ряд вопросов по технической части...
Есть процессор NIOSII/f, работает из on-chip памяти. Как лучше сделать с точки зрения быстродействия: отдельно память программ, отдельно память данных и подключить их соответсвенно к instruction master и data master портам ниоса или сделать двухпортовую память, один порт к instruction master, другой к data master? Второй вариант более гибкий, и с точки зрения здравого смысла должен быть не медленнее. А на практике разница будет?
И попутный вопрос - может ли увеличение размера кэша дать положительный результат, при условии, что программа и так исполняется из on-chip RAM с латентностью = 1?
Go to the top of the page
 
+Quote Post
barabek
сообщение Oct 25 2011, 12:17
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(alexadmin @ Oct 25 2011, 22:58) *
И попутный вопрос - может ли увеличение размера кэша дать положительный результат, при условии, что программа и так исполняется из on-chip RAM с латентностью = 1?


Скорее всего будет только замедление, ведь на заполнение кэша время-то тратится.


Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Oct 25 2011, 12:29
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(alexadmin @ Oct 25 2011, 18:58) *
Второй вариант более гибкий, и с точки зрения здравого смысла должен быть не медленнее. А на практике разница будет?

я всегда 2-портовую ставлю, блоки m9k в циклонах поддерживают этот режим. по поводу кэша согласен с barabek, никакой выгоды от него не вижу в описанной вами ситуации. правда nios/f не дает полностью отключить кэши, все равно останется кэш инструкций
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Jan 12 2012, 11:52
Сообщение #4


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(vadimuzzz @ Oct 25 2011, 16:29) *
я всегда 2-портовую ставлю, блоки m9k в циклонах поддерживают этот режим. по поводу кэша согласен с barabek, никакой выгоды от него не вижу в описанной вами ситуации. правда nios/f не дает полностью отключить кэши, все равно останется кэш инструкций

а как в SOPC, указать процу, что вот эта область - instruction memory, а та - data memory?


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
barabek
сообщение Jan 12 2012, 22:45
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Fynjisx @ Jan 12 2012, 21:52) *
а как в SOPC, указать процу, что вот эта область - instruction memory, а та - data memory?

этим линкер занимается. Без Вашего участия если, конечно же, нет особых пожеланий sm.gif.
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Jan 13 2012, 18:38
Сообщение #6


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(barabek @ Jan 13 2012, 01:45) *
этим линкер занимается. Без Вашего участия если, конечно же, нет особых пожеланий sm.gif.

Т.е Вы хотите сказать, что достаточно в SOPC указать что память 2-х портовая, как NIOS сразу в одной части будет хранить код в другой данные? Это где то написано?


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
barabek
сообщение Jan 14 2012, 07:41
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Fynjisx @ Jan 14 2012, 04:38) *
Т.е Вы хотите сказать, что достаточно в SOPC указать что память 2-х портовая, как NIOS сразу в одной части будет хранить код в другой данные? Это где то написано?

Ставим двухпортовую память. Один ее порт соединяем с instruction_master, другой с data_master nios. Автоматически (auto assign base address) адреса обоих портов памяти становятся одинаковые. Затем в nios IDE в свойствах system library (правой кнопкой проект_syslib в properties->system library) настраиваем где хранить каждый раздел. В Вашем случае все разделы (.text, .rodata, .rwdata ...) нужно указать на двухпортовую память.
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Jan 16 2012, 08:42
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Так производительность будет реально выше чем с однопортовой?
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Jan 16 2012, 16:22
Сообщение #9


студент
****

Группа: Свой
Сообщений: 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 - в каких случаях нужна???

заранее спасибо за ответы...


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
barabek
сообщение Jan 16 2012, 23:29
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 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, только без возможности записи sm.gif.
2. Например, когда установили ROM.
Go to the top of the page
 
+Quote Post

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

 


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


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