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

 
 
> Что-то с NIOS II не так, Очень медленно работает...
EXeGLuMATOR
сообщение Nov 25 2005, 22:40
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Имеется - надо принять поток данных (16 бит) и сложить его во внешнюю память (8 бит), потом соотв прочитать и выдать во внешнее устройство (4 бита). В связи со спецификой решения - все делается на параллельных портах. Результат - крайне низкая скорость. Странно очень для RISC-процессора - на кристалле EP1C3 - при частоте проца 200МГц - длительность импульса (поставил бит в порт-снял бит с порта) - соотв частоте 1МГц. Запись 1 МБ памяти занимает около 2-х секунд!!! blink.gif Это так и должно быть? Quartus 4.2 sp 1 + все стандартное из комплекта. Может чего-то не так настроил?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
vetal
сообщение Nov 25 2005, 23:19
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



А какой именно NIOSII используете? Их не менее трех.
По всей видимости вы используете маленький, так вот у него мипсов в 5 раз меньше тактовой.(В вашем случае 40MHz)
Go to the top of the page
 
+Quote Post
Major
сообщение Nov 26 2005, 07:11
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375



Цитата
А какой именно NIOSII используете? Их не менее трех.


И на программу (поставил бит в порт-снял бит с порта) хотелось бы взглянуть(на С или на ассемблере). Из какой памяти исполняется, какой кэш, все ли попадает в кэш (инструкции).
С памятью другой вопрос. Он обсуждался активно на форуме www.niosforum.com/forum.htm
Вот линка, стоит прочитать: http://www.niosforum.com/forum/index.php?showtopic=629
Проблема для чтения, но она актуально если код у вас во внешней памяти, и вы без кэша вынужденые его от туда читать.

После чего разработчики добавили в ниос 2 версия 5.0 специальный вид памяти: Tightly Coupled Memory (тесно связаная с ядром).

Вот линка на релизные изменения в версии 5.0 http://www.niosforum.com/forum/index.php?s...1651&hl=latency
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Nov 26 2005, 20:21
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Nios не 5 но и не 1-й! Не помню версии - на работе стоит... а инета там нету... sad.gif Ниос в самой мелкой комплектации - естественно без кэша и т.п В ЕР1С3 - особо не втолкаешь - память команд и констант - внутренняя. А на проблемы с внешней памятью наткнулись на евалюшн борде, потому и на параллельных портах. Программка ессно на С - встроенное все, что в комплекте было... . процедура IOWR_... ну и тп.
Попробую кэш прикрутить... может влезет... Хотя даже при такте 40 МГц - должно быстрее работать.
Go to the top of the page
 
+Quote Post
vetal
сообщение Nov 26 2005, 22:31
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
длительность импульса (поставил бит в порт-снял бит с порта) - соотв частоте 1МГц. Запись 1 МБ памяти занимает около 2-х секунд!!!

Если посчитать та если у вас на операция записи длится 2 импульса или даже 1, то 1 миллион обращений и вылезает в приведенные вами времена. А чего вы хотели?

И что за проблеммы с памятью?
Тот же самый PIO адресуется как ячейка памяти. У NIOS все, что не входит в ядро является памятью.
Go to the top of the page
 
+Quote Post
Major
сообщение Nov 27 2005, 05:06
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375



Извеняюсь, немного ошибся (с нисом работаю редко). Но вот как раз намечаетсяновая работа.

Проблема на которыю я сослался относиться только к Data Master, но не к Instruction Master.

Вопрос в ветке цитировать не буду, но ответ разработчика процитирую (разговор идет про NIOS II ver 1.0):

What you're seeing is the result of the Nios data master not being 'latency aware' (the instruction master is, and this allows relatively speedy instruction fetch even with a cache miss). Both master ports on the DMA controller are, and that is why Ken sees the performance he does. In a nutshell, Nios II was really designed to be as simple (small/fast) as possible and deliver best performance when things are cached.

PS: Latency aware means that an Avalon master accepts the 'readdatavalid' signal, rather than merely the 'waitrequest' signal as all masters must do.

В версии 5.0 немного подшаманили Data Master и привертели Tightly Coupled Memory.

А производительность махания битом я сейчас проверю на эвалюхе.
Go to the top of the page
 
+Quote Post
Major
сообщение Nov 27 2005, 06:33
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375



Софт проект hello_led
добавлен цикл:
while(1){
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x01);
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x00);
}
Плата 1С20 эвалюха, частота 50МГц
HW 1C20 low_cost (код данные из SDRAM, процессор NIOS II/e): период 1.56 мкс.

Тоже самое но для HW small (память данных и кода на М4К блоках внутри циклона (всего 2К байт), процессор NIOS II/e): период 800нс

При этом для ядра NIOS II/e заявляется 5-7 DMIPS.
По сгенеренному коду мы имеем:
while(1){
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x01);
60: 00900004 movi r2,16384
64: 00c00044 movi r3,1
68: 10c00035 stwio r3,0(r2)
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x00);
6c: 00900004 movi r2,16384
70: 10000035 stwio zero,0(r2)
74: 003ffa06 br 60 <alt_main+0xc>
Disassembly of section .comment:

За один период выполняется 6 команд. Что соответствует заявленым 5-7 мипсам.
Проект компилился в дебаге. Реально только запись в R2 лишняя, что уменьшило бы цикл до 4 команд.

Все "железо" компилилось в квартусе 5.0, настройки проектов не изменялись, все по умолчанию.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Nov 28 2005, 20:13
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Понятно - в общем так и есть... Как и описал Major... цикл приблизительно так-же выглядит (а как иначе-то? smile.gif)
Наличие кэша и пр влияет незначительно. Быстрее... но чуть-чуть.
В общем - тормоз. И зачем он еще нужен - если только лампочками моргать да клавиатуру сканить... На более серьезные задачи - очень тяжело... А жаль - удобно... Попробовать 5.0 поставить... Хотя если даже на асме писать - такая задержка... Неприемлемо...
Go to the top of the page
 
+Quote Post
Major
сообщение Nov 29 2005, 05:25
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375



Нужен, даже в варианте e(economic наверное).
Лампой моргать можно и логику привертеть, так же как и клаву.
Есть рутинные задачи, которые на конечных автоматах запаристо делать, да и понимание их работы со времененм ухудшается (программы медленее "стареют"). Мне обычно мипсы нужны только пиковые, а так все идет неспешно, то что на авре требует 8 мипс на ниосе хватит 2-3 (за счет битности и внешней логики) плюс большое адресное пространство - это для мелких задач. Цена критерием не является. Это моя оценка, сам я использую только варианты s (standart) и f (fast), и при этом весьма доволен.
Ниос мне позволяет делать отложеные решения на этапе проектирования, не заморачиваясь раздачей ног и ресурсов (в локальном смысле). Цена за это своя, но меня она устраивает.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 29 2005, 06:12
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(EXeGLuMATOR @ Nov 26 2005, 01:40) *
Имеется - надо принять поток данных (16 бит) и сложить его во внешнюю память (8 бит), потом соотв прочитать и выдать во внешнее устройство (4 бита). В связи со спецификой решения - все делается на параллельных портах. Результат - крайне низкая скорость. Странно очень для RISC-процессора - на кристалле EP1C3 - при частоте проца 200МГц - длительность импульса (поставил бит в порт-снял бит с порта) - соотв частоте 1МГц. Запись 1 МБ памяти занимает около 2-х секунд!!! blink.gif Это так и должно быть? Quartus 4.2 sp 1 + все стандартное из комплекта. Может чего-то не так настроил?


1. Могу добавить только, что конвейер 5 ступеней и при каждом JMP, CALL, RET происходит сборс конвейера. Следовательно, все критичные куски надо писать "в лоб", без этих команд.
2. Сделайте ДМА, если это позволяет обработка Ваших данных. Если нужно что-то особенное, то есть пользовательские команды. Небольшой автомат, определяющий готовность данных. Получите скорость близкую к тактовой. Если внешнее устройство - порт MII, то это гораздо проще сделать аппаратно, чем выделять тетрады.

Так что либо сидеть со "спецификой", либо как задумано в Niose.
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Гвоздик
сообщение Dec 2 2005, 14:44
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Скажите, пожалуйста, а вы за каждый запрограммированный НИОС за лицензию его ядра по 500 долларов выкладываете? Или крэк существует?
После такой беседы о тормознутости НИОСа что-то берет сомнение о его приобретении за такие деньги...
Go to the top of the page
 
+Quote Post
Major
сообщение Dec 2 2005, 14:53
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375



500 уе стоит годовая подписка.
После окончания срока подписки вам будут не доступны новые версии. все что было до этого будет доступно.
Например в мае у меня кончилась лицензия, и я могу пользовать только 5.0 ивсе что было раньше этой версии.
Чтобы использовать 5.1 надо покупать подписку.
Для того чтобы понять нужен вам ниос или нет достаточно evaluation версии, пока квартус через jtag видит матрицу, все работает.
Без этого время работы ограничено 30 мин. После чего проц перестает функционировать.
Про лекарство - вроде есть, сам не пользовал.
Go to the top of the page
 
+Quote Post
Гвоздик
сообщение Dec 2 2005, 15:09
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Теперь понятно. Скажите, а как при такой медленной работе Ниоса (1 Мбайт/с записывать) можно на него еще UcLinux ставить? Читал по форуму, что под Линуксом все работает. Это при самом ресурснозатратном варианте Ниоса получается только?
Go to the top of the page
 
+Quote Post
Major
сообщение Dec 2 2005, 15:13
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375



Я линукс не пользую.
На форуме ниоса народ активное его обсуждает со всех сторон.
http://www.niosforum.com/pages/forum.php?cat_id=5

Для работы с памятью рекомендую использовать DMA.
Да и ядро ставить не economical.
Go to the top of the page
 
+Quote Post
Гвоздик
сообщение Dec 2 2005, 15:26
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Скажите, если не секрет, а что за отладочная плата у Вас? Смотрел альтеровскую родную NIOS-EVALKIT-1C12: там кварцевый генератор на 24 МГц (у Вас 50 МГц). Цена какая? Альтеровскую за 320 долларов предлагают...
Go to the top of the page
 
+Quote Post

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

 


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


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