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

 
 
 
Reply to this topicStart new topic
> CycloneII+DDR+NIOSII
Пушкин
сообщение Mar 3 2007, 11:54
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



Всем привет.
Вот возникла такая проблема...
Работают с памятью у меня два мастера.Один это ниос, а второй моя логика, которой нужен равномерный поток около 40 МБайт/сек, причем читает он подряд по 64 байта.
Так вот когда ниос ничего не делает, то производительности хватает, но как он что-то начинает, так сразу ддр немного не упевает выдать те 40 мбайт на логику.
Все это работает на частоте 75мгц, если поднимать частоту, то становится нормально. Но как я понимаю пиковая производительность памяти 300Мбайт/сек, неужели этого мало?Тем более что байти не в разнобой читаются а группами по 64 байта.
В чем тут может быть дело?
Go to the top of the page
 
+Quote Post
lutik
сообщение Mar 3 2007, 13:39
Сообщение #2


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

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



Цитата(Пушкин @ Mar 3 2007, 11:54) *
Всем привет.
Вот возникла такая проблема...
Работают с памятью у меня два мастера.Один это ниос, а второй моя логика, которой нужен равномерный поток около 40 МБайт/сек, причем читает он подряд по 64 байта.
Так вот когда ниос ничего не делает, то производительности хватает, но как он что-то начинает, так сразу ддр немного не упевает выдать те 40 мбайт на логику.
Все это работает на частоте 75мгц, если поднимать частоту, то становится нормально. Но как я понимаю пиковая производительность памяти 300Мбайт/сек, неужели этого мало?Тем более что байти не в разнобой читаются а группами по 64 байта.
В чем тут может быть дело?


маловато данных
не хватает ширины шины
но если очень грубо...

допустим при ширине 32 - 40 МБайт/сек получаем 10 МВыборок/сек при частоте 75М вполне понятно что это 7.5% от пропускной. при барсте 16 выборок(кстати не помню я у ддр такого барста) добавим примерно 3-5% на командные циклы и (в зависимости от алгоритмя арбитра) 1-2% на арбитраж. (все это для случая когда специальных мер по увеличению производительности не применяется)

итого - загрузка вашей шины 15-16%.
либо вы гдето лохонулись либо ниос зажирает все остальное без остатка.


--------------------
однако..
Go to the top of the page
 
+Quote Post
Пушкин
сообщение Mar 3 2007, 14:51
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



Ширина шины ddr 16 бит, avalona соответсвенно 32. Burst у памяти 8.Впринципе особо и лохануться негде, единственно что.. Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение? Я просто запрашиваю подряд байты, как в одном примере от Altera, у них наверное должно быть верно biggrin.gif

И еще заметил...если ниос работает с плавающей запятой(аппартное ускорение не включено), то нехватка производительности памяти увеличивается существенно.

Nios у меня кстати полный, при перекомпиляции его на средний, разницы не заметил, может падение его произвоительности компенсируется отсутсвием кэша данных и соотвенно более частым обращением к памяти?Ну и все же, может такое быть что ниос так много потребляет?

Сообщение отредактировал Пушкин - Mar 3 2007, 14:56
Go to the top of the page
 
+Quote Post
id_gene
сообщение Mar 5 2007, 11:09
Сообщение #4


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Цитата(Пушкин @ Mar 3 2007, 14:51) *
Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение?


В спецификации шины Авалон есть целая глава (№8) посвященная burst операциям.
При чтении выставляйте нужный burstcount - и пакет не будет прерываться ниосом.

зы когда добавить burstcount в интерфейс, придется пересобрать модуль в СОПС-билдере, и потом пересобрать систему.
Go to the top of the page
 
+Quote Post
Пушкин
сообщение Mar 5 2007, 18:57
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



Цитата(id_gene @ Mar 5 2007, 11:09) *
Цитата(Пушкин @ Mar 3 2007, 14:51) *

Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение?


В спецификации шины Авалон есть целая глава (№8) посвященная burst операциям.
При чтении выставляйте нужный burstcount - и пакет не будет прерываться ниосом.

зы когда добавить burstcount в интерфейс, придется пересобрать модуль в СОПС-билдере, и потом пересобрать систему.

Спасибо за совет, я переделал с burst'ом, так все работает.Но есть еще несколько вопросов:
1)Почему раньше могло не успевать, даже если выславлять приоритет арбитража?
2)Как ниос может столько памяти жрать, особенно при выполнии операций с плавающей запятой, это же занимает много циклов, а данные в кэше могут храниться?
3)И еще самое интересное, память как я уже сказал держит Burst 8, однако при выстанровлении такого бёрста в ддр контроллере и чтении бёрстом через авалон начиная от 8 слов все сразу глючит, такое ощущение что он выдает вместо 8 разных слов, 2 раза по 4 одинаковых.
Если же в контроллере берст 4 ставить, то через авалон любым берстом можно читать(больше 16 не проверял).В чем тут может быть дело?
Go to the top of the page
 
+Quote Post
id_gene
сообщение Mar 5 2007, 20:07
Сообщение #6


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Цитата(Пушкин @ Mar 5 2007, 18:57) *
Спасибо за совет, я переделал с burst'ом, так все работает.Но есть еще несколько вопросов:
1)Почему раньше могло не успевать, даже если выславлять приоритет арбитража?
2)Как ниос может столько памяти жрать, особенно при выполнии операций с плавающей запятой, это же занимает много циклов, а данные в кэше могут храниться?
3)И еще самое интересное, память как я уже сказал держит Burst 8, однако при выстанровлении такого бёрста в ддр контроллере и чтении бёрстом через авалон начиная от 8 слов все сразу глючит, такое ощущение что он выдает вместо 8 разных слов, 2 раза по 4 одинаковых.
Если же в контроллере берст 4 ставить, то через авалон любым берстом можно читать(больше 16 не проверял).В чем тут может быть дело?


Тут все очень сильно зависит от системы, и сам я не сталкивался с такой проблемой, так что сказать трудно.
Я пользуюсь внутренним контроллером СДРАМ своей конторы, проблем таких нет. Даже при работе двух мастеров 4х открытых банков вполне хватает, чтобы не терять циклы на открытие/рефреши и прочее.

Насчет кол-ва памяти - может у вас кеш-памяти не хватает, потому что программа хранит там свои переменные, может вы обращаетесь к СДРАМ мимо кешей...

Моделировали вы всю систему в моделсиме? Там должно быть все очень хорошо видно.
Go to the top of the page
 
+Quote Post
Пушкин
сообщение Mar 6 2007, 11:44
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



Да теперь все работает как надо, возиться неохото с моделсимом, да и выявит ли он проблему с 8 берстом?тут видимо что-то с памятью не так сделал
Go to the top of the page
 
+Quote Post

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

 


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


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