Пушкин 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба Всем привет. Вот возникла такая проблема... Работают с памятью у меня два мастера.Один это ниос, а второй моя логика, которой нужен равномерный поток около 40 МБайт/сек, причем читает он подряд по 64 байта. Так вот когда ниос ничего не делает, то производительности хватает, но как он что-то начинает, так сразу ддр немного не упевает выдать те 40 мбайт на логику. Все это работает на частоте 75мгц, если поднимать частоту, то становится нормально. Но как я понимаю пиковая производительность памяти 300Мбайт/сек, неужели этого мало?Тем более что байти не в разнобой читаются а группами по 64 байта. В чем тут может быть дело? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyadvychuk 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба Всем привет. Вот возникла такая проблема... Работают с памятью у меня два мастера.Один это ниос, а второй моя логика, которой нужен равномерный поток около 40 МБайт/сек, причем читает он подряд по 64 байта. Так вот когда ниос ничего не делает, то производительности хватает, но как он что-то начинает, так сразу ддр немного не упевает выдать те 40 мбайт на логику. Все это работает на частоте 75мгц, если поднимать частоту, то становится нормально. Но как я понимаю пиковая производительность памяти 300Мбайт/сек, неужели этого мало?Тем более что байти не в разнобой читаются а группами по 64 байта. В чем тут может быть дело? маловато данных не хватает ширины шины но если очень грубо... допустим при ширине 32 - 40 МБайт/сек получаем 10 МВыборок/сек при частоте 75М вполне понятно что это 7.5% от пропускной. при барсте 16 выборок(кстати не помню я у ддр такого барста) добавим примерно 3-5% на командные циклы и (в зависимости от алгоритмя арбитра) 1-2% на арбитраж. (все это для случая когда специальных мер по увеличению производительности не применяется) итого - загрузка вашей шины 15-16%. либо вы гдето лохонулись либо ниос зажирает все остальное без остатка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пушкин 0 3 марта, 2007 Опубликовано 3 марта, 2007 (изменено) · Жалоба Ширина шины ddr 16 бит, avalona соответсвенно 32. Burst у памяти 8.Впринципе особо и лохануться негде, единственно что.. Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение? Я просто запрашиваю подряд байты, как в одном примере от Altera, у них наверное должно быть верно И еще заметил...если ниос работает с плавающей запятой(аппартное ускорение не включено), то нехватка производительности памяти увеличивается существенно. Nios у меня кстати полный, при перекомпиляции его на средний, разницы не заметил, может падение его произвоительности компенсируется отсутсвием кэша данных и соотвенно более частым обращением к памяти?Ну и все же, может такое быть что ниос так много потребляет? Изменено 3 марта, 2007 пользователем Пушкин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение? В спецификации шины Авалон есть целая глава (№8) посвященная burst операциям. При чтении выставляйте нужный burstcount - и пакет не будет прерываться ниосом. зы когда добавить burstcount в интерфейс, придется пересобрать модуль в СОПС-билдере, и потом пересобрать систему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пушкин 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Нужно ли в авалоне мастере специально как-то сообщать слейву, что хочу burst чтение? В спецификации шины Авалон есть целая глава (№8) посвященная burst операциям. При чтении выставляйте нужный burstcount - и пакет не будет прерываться ниосом. зы когда добавить burstcount в интерфейс, придется пересобрать модуль в СОПС-билдере, и потом пересобрать систему. Спасибо за совет, я переделал с burst'ом, так все работает.Но есть еще несколько вопросов: 1)Почему раньше могло не успевать, даже если выславлять приоритет арбитража? 2)Как ниос может столько памяти жрать, особенно при выполнии операций с плавающей запятой, это же занимает много циклов, а данные в кэше могут храниться? 3)И еще самое интересное, память как я уже сказал держит Burst 8, однако при выстанровлении такого бёрста в ддр контроллере и чтении бёрстом через авалон начиная от 8 слов все сразу глючит, такое ощущение что он выдает вместо 8 разных слов, 2 раза по 4 одинаковых. Если же в контроллере берст 4 ставить, то через авалон любым берстом можно читать(больше 16 не проверял).В чем тут может быть дело? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Спасибо за совет, я переделал с burst'ом, так все работает.Но есть еще несколько вопросов: 1)Почему раньше могло не успевать, даже если выславлять приоритет арбитража? 2)Как ниос может столько памяти жрать, особенно при выполнии операций с плавающей запятой, это же занимает много циклов, а данные в кэше могут храниться? 3)И еще самое интересное, память как я уже сказал держит Burst 8, однако при выстанровлении такого бёрста в ддр контроллере и чтении бёрстом через авалон начиная от 8 слов все сразу глючит, такое ощущение что он выдает вместо 8 разных слов, 2 раза по 4 одинаковых. Если же в контроллере берст 4 ставить, то через авалон любым берстом можно читать(больше 16 не проверял).В чем тут может быть дело? Тут все очень сильно зависит от системы, и сам я не сталкивался с такой проблемой, так что сказать трудно. Я пользуюсь внутренним контроллером СДРАМ своей конторы, проблем таких нет. Даже при работе двух мастеров 4х открытых банков вполне хватает, чтобы не терять циклы на открытие/рефреши и прочее. Насчет кол-ва памяти - может у вас кеш-памяти не хватает, потому что программа хранит там свои переменные, может вы обращаетесь к СДРАМ мимо кешей... Моделировали вы всю систему в моделсиме? Там должно быть все очень хорошо видно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пушкин 0 6 марта, 2007 Опубликовано 6 марта, 2007 · Жалоба Да теперь все работает как надо, возиться неохото с моделсимом, да и выявит ли он проблему с 8 берстом?тут видимо что-то с памятью не так сделал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться