dim99 0 24 февраля, 2009 Опубликовано 24 февраля, 2009 (изменено) · Жалоба Имеется: Quartus 8.0 Nios II 8.0 IDE В SOPC Buider сгенерил систему с 2-мя ядрами nios ii с общей памятью sram, для разделения использую mutex от altera. Проблема заключается в компиляции проекта в nios ide, а именно при компиляции совместно двух проектов для разных ядер. Может кто сталкивался с 2-мя ядрами, есть ли пример для них? буду благодарен за любую помощь. Скачать с сайта альтеры пример - не помогло, они дают в качестве software лишь сишный файл, без всякого проекта. Изменено 24 февраля, 2009 пользователем dim99 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 24 февраля, 2009 Опубликовано 24 февраля, 2009 · Жалоба 2 dim99 - а не могли бы вы по подробнее описать этот самый процесс собирания прожекта и совместную компиляцию для 2-х ядер ?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 24 февраля, 2009 Опубликовано 24 февраля, 2009 · Жалоба А что конкретно интересует? Процесс собирания в sopc не представляет ничего сложного, а вот компиляция в nios ii ide. завтра постараюсь прилепить скрины, чтоб было понятно о чем идет речь, пока не могу этого сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
islavv 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба Имеется: Quartus 8.0 Nios II 8.0 IDE В SOPC Buider сгенерил систему с 2-мя ядрами nios ii с общей памятью sram, для разделения использую mutex от altera. Проблема заключается в компиляции проекта в nios ide, а именно при компиляции совместно двух проектов для разных ядер. Может кто сталкивался с 2-мя ядрами, есть ли пример для них? буду благодарен за любую помощь. А можно поинтересоваться где у Altera на сайте описано как работает процессор Nios-II с двумя ядрами? И опять же где описано как два ядра используют общую память? Мне самому было интересно что на Сусlon можно запихать множество Nios - однако как их интегрировать и как IDE может поддерживать несколько процов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба Ссылка на источник прилагается десь Само руководство есть tt_nios2_multiprocessor_tutorial.pdf И где-то здесь пример Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба Проблема заключается в компиляции проекта в nios ide, а именно при компиляции совместно двух проектов для разных ядер. Может кто сталкивался с 2-мя ядрами, есть ли пример для них? буду благодарен за любую помощь. Проблема в чем заключается? Когда создаете в IDE новый проект, указываете ptf и из списка выбираете процессор, для которого собирается софт. В итоге в ИДЕ у вас два проекта. Компилируете оба проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба 2 dim99 - я вот что не могу понять - зачем вам 2 ядра выполняющие одну и ту же ф-цию ?? Вы что - ось собираетесь подымать на 2-х ядрах ?? Да и в той реализации , что по ссылкам - шина то у вас одна - кеша надо побольше в ниосы будет напихать , а то может системка подтормаживать..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба Kuzmi4 а не могли бы вы по подробнее описать этот самый процесс собирания прожекта и совместную компиляцию для 2-х ядер ?? Сам процесс собирания ничем не отличается от простого проекта с 1 ядром. Нюансы, с которыми столкнулся при сборе 2-ух ядер: матрица соединений - черные\белые точки на закладке connections - черненькая открывает канал, белая закрывает irq (прерывания) - простенькая система присвоения приоритета (0-высший приоритет) Собственно особых вопросов это у меня не вызвало. на рисунке показана сборка 2-ух ядер с матрицей соединений: id_gene Когда создаете в IDE новый проект, указываете ptf и из списка выбираете процессор, для которого собирается софт. В итоге в ИДЕ у вас два проекта. Компилируете оба проекта. Проблемы возникли при компиляции, но вроде потихоньку разгребаю. По примеру от альтеры получается, что каждое ядро будет дублировать один и тот же код программы, с этим пока вопрос завтра покопаю. 2 dim99 - я вот что не могу понять - зачем вам 2 ядра выполняющие одну и ту же ф-цию ?? Вы что - ось собираетесь подымать на 2-х ядрах ?? Да и в той реализации , что по ссылкам - шина то у вас одна - кеша надо побольше в ниосы будет напихать , а то может системка подтормаживать..... Вообще, это тема моей бакалавриатской работы и параллельно по работе. Речи ни о какой оси не идет, просто проверить возможности нескольких ядер в одном проекте, как себя поведут, вдруг что и пригодится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба Проблемы возникли при компиляции, но вроде потихоньку разгребаю. По примеру от альтеры получается, что каждое ядро будет дублировать один и тот же код программы, с этим пока вопрос завтра покопаю. Зачем один и тот же код. положите в каждый проект свои исходники. Удачи! Спрашивайте... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба 2 dim99 - вам же id_gene дал чёткий ответ - ложите в каждое ядро свой код и будет вам счастие А чем вам не нравится система , где каждый ниос со своей шиной + зашаренная область для всех ядер ? зачем вам всю эту гурьбу садить на 1 шину - чтоб потом 1 cpu ждал пока 2-й освободит ему шину (в смысле я про доступ в память например) ?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
islavv 0 26 февраля, 2009 Опубликовано 26 февраля, 2009 · Жалоба 2 dim99 - вам же id_gene дал чёткий ответ - ложите в каждое ядро свой код и будет вам счастие А чем вам не нравится система , где каждый ниос со своей шиной + зашаренная область для всех ядер ? зачем вам всю эту гурьбу садить на 1 шину - чтоб потом 1 cpu ждал пока 2-й освободит ему шину (в смысле я про доступ в память например) ?? Абсолютно согласен - в принципе самое эффективное решение задачи - это просто распараллелить логику и уложить ее просто хардверно в FPGA Можно наверное специальным Си компиллятором который превращает код в HDL - гикогда сам не делал но вроде как пищут что работает Процесоор нужен для коммуникации с внешним миром Если уж сделаны два процессора и есть Shared memory то ее можно поделить пополам и в одну область пишет один процесс а другой читает и наоборот, Можно сделать третью откуда оба читают Наверное можно еще прерывание завести по которому можно заставлять другой процессор читать А так два ядра на FPGA это как ящик водки украсть и продать чтобы пропить деньги Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 26 февраля, 2009 Опубликовано 26 февраля, 2009 (изменено) · Жалоба Спасибо за предложения, но моя задача на сегодняшний день просто разобраться как оно работает, а дальше уже буду рассматриваться варианты что и как :) Насчет кода каждому ядру: смутило, что альтеровский исходник представляет собой только 1 файл .c и описание, что его нужно везде копироват в проект и будет вам счастье. Сегодня добью что и как, тогда и посмотрим. Kuzmi4 А чем вам не нравится система , где каждый ниос со своей шиной? Что-то не пойму, в явном виде разве есть компоненты шины авалон или речь идет о Avalon-MM Pipeline Bridge? Изменено 26 февраля, 2009 пользователем dim99 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 26 февраля, 2009 Опубликовано 26 февраля, 2009 · Жалоба Выяснил интересную деталь при компиляции software для 2 ядер. В общем удачно компиляция проходит, только если память для каждого ядра больше 10 Кб, с чем это конкретно связано непонятно. При компиляции 1 ядра память не влияет на компиляцию, при 2 получается такая ерунда. По поводу программного кода, кто писал, что можно использовать разные исходники оказался прав :) в общем, каждое ядро выполняет свой исходный код. В общем, у меня только один полувопрос :) почему необходимо не менее 10 кб на on-chip memory каждому из ядер? и так ram памяти мало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 27 февраля, 2009 Опубликовано 27 февраля, 2009 · Жалоба В общем, у меня только один полувопрос :) почему необходимо не менее 10 кб на on-chip memory каждому из ядер? и так ram памяти мало.Сказать невозможно, пока вы не покажете целиком проект и логи компиляции. Скорее всего, вы неправильно настроили размещение секций. Для первого процессора все секции кода должны лежать в onchip, для второго - в onchip2. Настраивается в свойствах syslib. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slog 0 27 февраля, 2009 Опубликовано 27 февраля, 2009 · Жалоба В общем, у меня только один полувопрос :) почему необходимо не менее 10 кб на on-chip memory каждому из ядер? и так ram памяти мало. Если вы не укажете в свойствах библиотеки что нужно использовать Lightweight device driver API, Small C library, Reduced device driver, Program never exits - то 10кБ это минимальный объём который занимает простейший HelloWorld!. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться