|
|
  |
CycloneII+DDR+NIOSII |
|
|
|
Mar 3 2007, 11:54
|
Участник

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

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

Частый гость
 
Группа: Свой
Сообщений: 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%. либо вы гдето лохонулись либо ниос зажирает все остальное без остатка.
--------------------
однако..
|
|
|
|
|
Mar 3 2007, 14:51
|
Участник

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

|
Ширина шины ddr 16 бит, avalona соответсвенно 32. Burst у памяти 8.Впринципе особо и лохануться негде, единственно что.. Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение? Я просто запрашиваю подряд байты, как в одном примере от Altera, у них наверное должно быть верно  И еще заметил...если ниос работает с плавающей запятой(аппартное ускорение не включено), то нехватка производительности памяти увеличивается существенно. Nios у меня кстати полный, при перекомпиляции его на средний, разницы не заметил, может падение его произвоительности компенсируется отсутсвием кэша данных и соотвенно более частым обращением к памяти?Ну и все же, может такое быть что ниос так много потребляет?
Сообщение отредактировал Пушкин - Mar 3 2007, 14:56
|
|
|
|
|
Mar 5 2007, 11:09
|
carpe manana
  
Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659

|
Цитата(Пушкин @ Mar 3 2007, 14:51)  Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение? В спецификации шины Авалон есть целая глава (№8) посвященная burst операциям. При чтении выставляйте нужный burstcount - и пакет не будет прерываться ниосом. зы когда добавить burstcount в интерфейс, придется пересобрать модуль в СОПС-билдере, и потом пересобрать систему.
|
|
|
|
|
Mar 5 2007, 18:57
|
Участник

Группа: Новичок
Сообщений: 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 не проверял).В чем тут может быть дело?
|
|
|
|
|
Mar 5 2007, 20:07
|
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х открытых банков вполне хватает, чтобы не терять циклы на открытие/рефреши и прочее. Насчет кол-ва памяти - может у вас кеш-памяти не хватает, потому что программа хранит там свои переменные, может вы обращаетесь к СДРАМ мимо кешей... Моделировали вы всю систему в моделсиме? Там должно быть все очень хорошо видно.
|
|
|
|
|
Mar 6 2007, 11:44
|
Участник

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

|
Да теперь все работает как надо, возиться неохото с моделсимом, да и выявит ли он проблему с 8 берстом?тут видимо что-то с памятью не так сделал
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|