|
altera ddr2 sdram controller |
|
|
|
Jan 11 2008, 04:32
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Добрый день господа! На этих НГ праздниках я нашел время доделать контроллер, который разрабатывал для души, и набросать для него пока простой тестбенч, что бы убедиться в его работоспособности. Сейчас в разработке полный тестбенч функциональности и тестбенч на измерение полосы пропускания для различных случаев последовательности команд. После разработки полного тестбенча проект будет выложен либо на http://code.iprium.ru/либо на opencores (если будет не лень делать перевод доки на английский язык). В атаче описание разработанного контроллера. С исходниками немного нужно обождать, их нужно почистить и доделать тестбенч (правда работать он будет только в софте с хорошей поддержкой систем верилога, т.е. в альдеке не заработает). ЗЫ. Вопрос модераторам может стоит перенести обсуждение вопросов по сдрам, ддр, ддр2 в этой теме в отдельную ветку форума ?
Прикрепленные файлы
doc.txt ( 17.99 килобайт )
Кол-во скачиваний: 177
--------------------
|
|
|
|
|
Jan 15 2008, 15:07
|

Частый гость
 
Группа: Свой
Сообщений: 109
Регистрация: 14-01-08
Из: Москва
Пользователь №: 34 069

|
Цитата(des00 @ Jan 11 2008, 07:32)  После разработки полного тестбенча проект будет выложен либо на http://code.iprium.ru/либо на opencores (если будет не лень делать перевод доки на английский язык). Пишите, помогу с переводом, если нужно...
|
|
|
|
|
Jan 17 2008, 02:35
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 16-01-08
Пользователь №: 34 131

|
Не подскажите где можно найти достаточно понятную информацию по использованию памяти и модулей памяти (схемы, разъемы, вр. диаграммы, ip блоки). Информация нужна для студентов. Просто самому писать довольно много не хочеться, а хорошей статьи не нашел. Прошу прощенья за оффтоп.
|
|
|
|
|
Feb 7 2008, 06:11
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(ReedCat @ Jan 15 2008, 10:07)  Пишите, помогу с переводом, если нужно... Написал в личку. Уфф, последняя стадия публикации на опенкорес : перевод документации. Кому интересно смотрите доку в атаче. Добровольные помощники в нелюбимом мной деле документирования приветствуются  ))
--------------------
|
|
|
|
|
Mar 6 2008, 13:53
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Добрый день всем!!! Свершилось, извините за опоздание конечно. Много времени ушло на перевод. Спасибо большое уважаемому ReedCat за помощь !!! http://www.opencores.org/projects.cgi/web/hssdrc/overviewОбсуждение, порицание, предложения (хотя пара модификаций у меня на уме) приветствуются !!! Копия документа в атаче
--------------------
|
|
|
|
|
Mar 7 2008, 03:32
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(vetal @ Mar 6 2008, 11:12)  нескромный вопрос - а предполагается ли модуль(тестовая система) для быстрого запуска на nios2-devkit-2c35? Аппаратная проверка заложена в план TODO. Но в наличии у меня платы на спартан 3е и циклон2, разработанные у нас, поэтому изначально проект будет протестирован на них. Плату nios2-devkit-2c35 ни разу не видел, ничего сказать не могу. Планов сделать проект SOPC Builder compatible нет, из-за недостатка времени и ламерстве в кухне NIOS и SOPC Builder. Ближайшее это создание оберток для контроллера на шины Wishbone (burst oriented) и AMBA AXI и потом тестирование их в тестовых системах на платах. Но, контроллер идет под MIT лицензией, можете сами собрать любую угодную для вас тестовую систему и модернизировать контроллер  Кстати не подскажите идей о том, как такие системы тестирования делают (у меня есть пара своих идей, но может не очень удачных). 2 torik Цитата А русское описание сохранилось?) К сожалению такого подробного нет, т.к. при переводе, из-за аналитических свойств английского языка русский текст изменялся и дополнялся, но в референсный документ вписан не был. а "обратный" перевод делать времени нет. Но общие моменты можно взять в документе выше. Разница между документами в том, что в последнем больше раскрывается кухня контроллера.
--------------------
|
|
|
|
|
Mar 13 2008, 13:09
|
Группа: Новичок
Сообщений: 13
Регистрация: 30-09-06
Пользователь №: 20 845

|
А варианты с САМ кэшем ( ассоциативной памятью) не рассматривали ? Я так предпологаю , что большие скорости обмена с памятью (DDR2) , выбраны исходя из того , чтобы минимизировать простои со стороны ядра (которое может работать сущесвенно быстрее) . Т. е. возможно имеет место проблема "Бутылочного горла" , когда работа быстрого устройства тормозиться более медленными. Бурцева В.С. читайте НОВЫЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ ВЫСОКОГО ПАРАЛЛЕЛИЗМА Институт проблем информатики РАН,
|
|
|
|
|
Mar 14 2008, 03:19
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Progman @ Mar 13 2008, 08:09)  А варианты с САМ кэшем ( ассоциативной памятью) не рассматривали ? Я так предпологаю , что большие скорости обмена с памятью (DDR2) , выбраны исходя из того , чтобы минимизировать простои со стороны ядра (которое может работать сущесвенно быстрее) . Т. е. возможно имеет место проблема "Бутылочного горла" , когда работа быстрого устройства тормозиться более медленными. Бурцева В.С. читайте НОВЫЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ ВЫСОКОГО ПАРАЛЛЕЛИЗМА Институт проблем информатики РАН, Спасибо за ссылку, мне эта тема достаточно интересна. По гуглу это описано здесь ? http://lvk.cs.msu.su/old/mco/part11.htmlЕсли вопрос насчет КАМ адресовался мне, то поясните пожалуйста каким местом к контроллеру памяти предлагается использовать ассоциативный кеш ? %) Контроллер внешней памяти это последняя инстанция хранения данных (берем систему без других внешних носителей информации ака винт). Т.е. по сути это последний слой работы с данными. Кеш это один из предварительных слоев обработки информации и следуя принципу модульности построения: контроллер с кешем это система из отдельного контроллера памяти и кеш контроллера  ) Сделайте кеш контроллер и подключите его к контроллеру сдрам. мне было интересно выжать в контроллере именно максимум полосы пропускания внешней памяти, за счет использования ее возможностей. Полученные латентности доступа к данным это ФПГА компромис между латентностью и тактовой частотой. С помошью небольшой модификации контроллера, латентность может быть уменьшена на 2 такта, но в этом случае гарантировано сильно упадет тактовая частота. Это несложно проверить.
--------------------
|
|
|
|
|
Mar 14 2008, 08:19
|
Группа: Новичок
Сообщений: 13
Регистрация: 30-09-06
Пользователь №: 20 845

|
Элементарно Ватсон. Предположим хотя-бы 8 потоков даных от восьми независимых шин данных (блоков или процессоров) стучаться в единое адресное пространство. Вот этим боком и касаеться. Т.Е мысля спрятать сам внутрь контроллера. Ну и соответственно время выборки из Сам на внешюю шину меньше чем время чтения записи SDRAM DDR. В качестве данных ассоциативного кэша например можно использовать адреса по которым происходили последнии обращения к контроллеру памяти и соответствующие этим адресам данные. возможно предварительое заполнение с упреждением для чередующихся адресов
Сообщение отредактировал Progman - Mar 14 2008, 08:23
|
|
|
|
|
Mar 14 2008, 10:00
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Progman @ Mar 14 2008, 03:19)  Элементарно Ватсон. Предположим хотя-бы 8 потоков даных от восьми независимых шин данных (блоков или процессоров) стучаться в единое адресное пространство. Вот этим боком и касаеться. Т.Е мысля спрятать сам внутрь контроллера. Ну и соответственно время выборки из Сам на внешюю шину меньше чем время чтения записи SDRAM DDR. В качестве данных ассоциативного кэша например можно использовать адреса по которым происходили последнии обращения к контроллеру памяти и соответствующие этим адресам данные. возможно предварительое заполнение с упреждением для чередующихся адресов Нет позвольте. То, про что вы говорите, не имеет никакого отношения к контроллеру памяти. Это обычный кеш, последнего уровня, который стоит перед контроллером памяти и формирует нужные к контроллеру запросы, исходя из политики своей работы (тип кеша, политики управления кешем, упреждающее чтение и т.д.). Нет никакого смысла вносить эту логику в контроллер памяти, т.к. задача контроллера памяти сформировать требуемые последовательности комманд для записи/чтения в память. Кеш про который вы говорите специфичен для каждого конкретного применения и нет никакого смысла включать его в универсальный контроллер. Если хотите контроллер с таким кешем, то разработайте кеш, и заверните его, вместе с контроллером в отдельный врапер. и назовите этот врапер my_super_controller, про который вы ведете речь.
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|