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

Добрый день господа!

 

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

 

Сейчас в разработке полный тестбенч функциональности и тестбенч на измерение полосы пропускания для различных случаев последовательности команд.

 

После разработки полного тестбенча проект будет выложен либо на

 

http://code.iprium.ru/

 

либо на opencores (если будет не лень делать перевод доки на английский язык).

 

В атаче описание разработанного контроллера. С исходниками немного нужно обождать, их нужно почистить и доделать тестбенч (правда работать он будет только в софте с хорошей поддержкой систем верилога, т.е. в альдеке не заработает).

 

 

ЗЫ. Вопрос модераторам может стоит перенести обсуждение вопросов по сдрам, ддр, ддр2 в этой теме в отдельную ветку форума ?

doc.txt

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


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

После разработки полного тестбенча проект будет выложен либо на

 

http://code.iprium.ru/

 

либо на opencores (если будет не лень делать перевод доки на английский язык).

 

Пишите, помогу с переводом, если нужно...

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


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

Пишите, помогу с переводом, если нужно...

 

Спасибо, буду иметь в виду.

 

По проекту тест правильности работы отлажен и работает. Сейчас занимаюсь тестами на измерение производительности.

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


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

Не подскажите где можно найти достаточно понятную информацию по использованию памяти и модулей памяти (схемы, разъемы, вр. диаграммы, ip блоки). Информация нужна для студентов. Просто самому писать довольно много не хочеться, а хорошей статьи не нашел.

Прошу прощенья за оффтоп.

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


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

Не подскажите где можно найти достаточно понятную информацию по использованию памяти >>>>>>>>>>>>

 

http://www.elpida.com/en/products/documents.html

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


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

Пишите, помогу с переводом, если нужно...

 

Написал в личку.

 

 

Уфф, последняя стадия публикации на опенкорес : перевод документации.

 

 

Кому интересно смотрите доку в атаче.

 

Добровольные помощники в нелюбимом мной деле документирования приветствуются :)))

hssdrc_design_document.pdf

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


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

Добрый день всем!!!

 

Свершилось, извините за опоздание конечно. Много времени ушло на перевод. :)

 

Спасибо большое уважаемому ReedCat за помощь !!!

 

 

http://www.opencores.org/projects.cgi/web/hssdrc/overview

 

 

Обсуждение, порицание, предложения (хотя пара модификаций у меня на уме) приветствуются !!!

 

 

Копия документа в атаче

hssdrc_design_document.pdf

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


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

нескромный вопрос - а предполагается ли модуль(тестовая система) для быстрого запуска на nios2-devkit-2c35?

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


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

нескромный вопрос - а предполагается ли модуль(тестовая система) для быстрого запуска на nios2-devkit-2c35?

 

Аппаратная проверка заложена в план TODO. Но в наличии у меня платы на спартан 3е и циклон2, разработанные у нас, поэтому изначально проект будет протестирован на них.

 

Плату nios2-devkit-2c35 ни разу не видел, ничего сказать не могу.

 

Планов сделать проект SOPC Builder compatible нет, из-за недостатка времени и ламерстве в кухне NIOS и SOPC Builder. Ближайшее это создание оберток для контроллера на шины Wishbone (burst oriented) и AMBA AXI и потом тестирование их в тестовых системах на платах.

 

Но, контроллер идет под MIT лицензией, можете сами собрать любую угодную для вас тестовую систему и модернизировать контроллер :)

 

Кстати не подскажите идей о том, как такие системы тестирования делают (у меня есть пара своих идей, но может не очень удачных).

 

2 torik

 

А русское описание сохранилось?)

 

К сожалению такого подробного нет, т.к. при переводе, из-за аналитических свойств английского языка русский текст изменялся и дополнялся, но в референсный документ вписан не был. а "обратный" перевод делать времени нет.

 

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

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


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

А варианты с САМ кэшем ( ассоциативной памятью) не рассматривали ? Я так предпологаю , что большие скорости обмена с памятью (DDR2) , выбраны исходя из того , чтобы минимизировать простои со стороны ядра (которое может работать сущесвенно быстрее) . Т. е. возможно имеет место проблема "Бутылочного горла" , когда работа быстрого устройства тормозиться более медленными. Бурцева В.С. читайте

НОВЫЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ ВЫСОКОГО ПАРАЛЛЕЛИЗМА

Институт проблем информатики РАН,

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


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

А варианты с САМ кэшем ( ассоциативной памятью) не рассматривали ? Я так предпологаю , что большие скорости обмена с памятью (DDR2) , выбраны исходя из того , чтобы минимизировать простои со стороны ядра (которое может работать сущесвенно быстрее) . Т. е. возможно имеет место проблема "Бутылочного горла" , когда работа быстрого устройства тормозиться более медленными. Бурцева В.С. читайте

НОВЫЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ ВЫСОКОГО ПАРАЛЛЕЛИЗМА

Институт проблем информатики РАН,

 

Спасибо за ссылку, мне эта тема достаточно интересна.

 

По гуглу это описано здесь ? http://lvk.cs.msu.su/old/mco/part11.html

 

Если вопрос насчет КАМ адресовался мне, то поясните пожалуйста каким местом к контроллеру памяти предлагается использовать ассоциативный кеш ? %)

 

Контроллер внешней памяти это последняя инстанция хранения данных (берем систему без других внешних носителей информации ака винт). Т.е. по сути это последний слой работы с данными.

 

Кеш это один из предварительных слоев обработки информации и следуя принципу модульности построения: контроллер с кешем это система из отдельного контроллера памяти и кеш контроллера :))

Сделайте кеш контроллер и подключите его к контроллеру сдрам.

 

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

 

Полученные латентности доступа к данным это ФПГА компромис между латентностью и тактовой частотой.

 

С помошью небольшой модификации контроллера, латентность может быть уменьшена на 2 такта, но в этом случае гарантировано сильно упадет тактовая частота. Это несложно проверить.

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


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

Элементарно Ватсон. Предположим хотя-бы 8 потоков даных от восьми независимых шин данных (блоков или процессоров) стучаться в единое адресное пространство. Вот этим боком и касаеться. Т.Е мысля спрятать сам внутрь контроллера. Ну и соответственно время выборки из Сам на внешюю шину меньше чем время чтения записи SDRAM DDR. В качестве данных ассоциативного кэша например можно использовать адреса по которым происходили последнии обращения к контроллеру памяти и соответствующие этим адресам данные. возможно предварительое заполнение с упреждением для чередующихся адресов

Изменено пользователем Progman

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


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

Элементарно Ватсон. Предположим хотя-бы 8 потоков даных от восьми независимых шин данных (блоков или процессоров) стучаться в единое адресное пространство. Вот этим боком и касаеться. Т.Е мысля спрятать сам внутрь контроллера. Ну и соответственно время выборки из Сам на внешюю шину меньше чем время чтения записи SDRAM DDR. В качестве данных ассоциативного кэша например можно использовать адреса по которым происходили последнии обращения к контроллеру памяти и соответствующие этим адресам данные. возможно предварительое заполнение с упреждением для чередующихся адресов

 

Нет позвольте.

 

То, про что вы говорите, не имеет никакого отношения к контроллеру памяти. Это обычный кеш, последнего уровня, который стоит перед контроллером памяти и формирует нужные к контроллеру запросы, исходя из политики своей работы (тип кеша, политики управления кешем, упреждающее чтение и т.д.).

 

Нет никакого смысла вносить эту логику в контроллер памяти, т.к. задача контроллера памяти сформировать требуемые последовательности комманд для записи/чтения в память.

 

Кеш про который вы говорите специфичен для каждого конкретного применения и нет никакого смысла включать его в универсальный контроллер.

 

Если хотите контроллер с таким кешем, то разработайте кеш, и заверните его, вместе с контроллером в отдельный врапер. и назовите этот врапер my_super_controller, про который вы ведете речь.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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