Перейти к содержанию
    

CycloneII+DDR+NIOSII

Всем привет.

Вот возникла такая проблема...

Работают с памятью у меня два мастера.Один это ниос, а второй моя логика, которой нужен равномерный поток около 40 МБайт/сек, причем читает он подряд по 64 байта.

Так вот когда ниос ничего не делает, то производительности хватает, но как он что-то начинает, так сразу ддр немного не упевает выдать те 40 мбайт на логику.

Все это работает на частоте 75мгц, если поднимать частоту, то становится нормально. Но как я понимаю пиковая производительность памяти 300Мбайт/сек, неужели этого мало?Тем более что байти не в разнобой читаются а группами по 64 байта.

В чем тут может быть дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет.

Вот возникла такая проблема...

Работают с памятью у меня два мастера.Один это ниос, а второй моя логика, которой нужен равномерный поток около 40 МБайт/сек, причем читает он подряд по 64 байта.

Так вот когда ниос ничего не делает, то производительности хватает, но как он что-то начинает, так сразу ддр немного не упевает выдать те 40 мбайт на логику.

Все это работает на частоте 75мгц, если поднимать частоту, то становится нормально. Но как я понимаю пиковая производительность памяти 300Мбайт/сек, неужели этого мало?Тем более что байти не в разнобой читаются а группами по 64 байта.

В чем тут может быть дело?

 

маловато данных

не хватает ширины шины

но если очень грубо...

 

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

 

итого - загрузка вашей шины 15-16%.

либо вы гдето лохонулись либо ниос зажирает все остальное без остатка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Изменено пользователем Пушкин

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

В спецификации шины Авалон есть целая глава (№8) посвященная burst операциям.

При чтении выставляйте нужный burstcount - и пакет не будет прерываться ниосом.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

В спецификации шины Авалон есть целая глава (№8) посвященная burst операциям.

При чтении выставляйте нужный burstcount - и пакет не будет прерываться ниосом.

 

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

Спасибо за совет, я переделал с burst'ом, так все работает.Но есть еще несколько вопросов:

1)Почему раньше могло не успевать, даже если выславлять приоритет арбитража?

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

3)И еще самое интересное, память как я уже сказал держит Burst 8, однако при выстанровлении такого бёрста в ддр контроллере и чтении бёрстом через авалон начиная от 8 слов все сразу глючит, такое ощущение что он выдает вместо 8 разных слов, 2 раза по 4 одинаковых.

Если же в контроллере берст 4 ставить, то через авалон любым берстом можно читать(больше 16 не проверял).В чем тут может быть дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет, я переделал с burst'ом, так все работает.Но есть еще несколько вопросов:

1)Почему раньше могло не успевать, даже если выславлять приоритет арбитража?

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

3)И еще самое интересное, память как я уже сказал держит Burst 8, однако при выстанровлении такого бёрста в ддр контроллере и чтении бёрстом через авалон начиная от 8 слов все сразу глючит, такое ощущение что он выдает вместо 8 разных слов, 2 раза по 4 одинаковых.

Если же в контроллере берст 4 ставить, то через авалон любым берстом можно читать(больше 16 не проверял).В чем тут может быть дело?

 

Тут все очень сильно зависит от системы, и сам я не сталкивался с такой проблемой, так что сказать трудно.

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

 

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

 

Моделировали вы всю систему в моделсиме? Там должно быть все очень хорошо видно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да теперь все работает как надо, возиться неохото с моделсимом, да и выявит ли он проблему с 8 берстом?тут видимо что-то с памятью не так сделал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...