maksya 0 4 декабря, 2006 Опубликовано 4 декабря, 2006 · Жалоба Задача - запихать в одну FPGA'шку три NiosII. Сейчас усердно знакомлюсь с литературой по теме. Просто может кто-то поспособствует ускорению процесса и поделится советом - с какой стороны удара граблей ожидать? Будет ли им там тесно? Допустим откидываем проблему нехватки логических ячеек, памяти и ног I/O. Основной вопрос пока, наверное, в организации процесса отладки этих процессоров. Идельным вариантом было бы описание опыта работы с похожей конфигурацией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 4 декабря, 2006 Опубликовано 4 декабря, 2006 · Жалоба Этим вопросом не занимался, но в документации присутствуют специальные элементы для ipc. Как я вижу- проблемма будет в памяти и доступом к ней. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 4 декабря, 2006 Опубликовано 4 декабря, 2006 · Жалоба увы, сам только начал подходить к мульти-процессорной конфигурации в железе. Первая поверхностная проблема - IDE создает проект только для одного процессора. Для симуляции обошли тем, что софт параметризирован (одинаковая задача для всех, с минимальными различиями), и программа в моделируемую память руками кладется одинаковая для всех. Моделируется нормально. Для этого использованы tightly coupled memories, т.е. у каждого процессора своя память инструкций и данных, несколько корявое решение имхо, но для начала подходит. Не понравилось то, что а) нельзя отказаться от кеша инструкций; б) без кеша данных проект не работает -квартус/ниос 5.0. Процессор держит какие-то переменные по нулевым адресам, и без кеша они сваливаются в область жтаг отладчика, и все рушат, а с кешом наружу не вылезают, все работает нормально. Может в новых версиях починили, может на ниосфоруме есть подсказки. еще не смотрел, пока оцениваю общие идеи ... От t-coupled памяти можно отказаться, позже подумаю, как это проще сделать. Может, если отказаться от отладчика - и без кеша будет попроще. В любом случае, можно цеплять свой скрипт линкера, который будет собирать как вам угодно, и на общей памяти, и с секциями в других местах и т.д. Дальше пока не ушли, возникли другие вопросы на плате, не связанные с процессорами. Надеюсь, для запуска и отладки обоих (трех-четырех-...) ядер проекта из-под IDE найдется какое-то встроенное решение. Результатами поделюсь как только так сразу... может через пару недель :( Тесно им там быть не с чего, если ресурсы полностью разделить или запирать (мьютексами или чем-то еще), но это не проблема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tegumay 4 4 декабря, 2006 Опубликовано 4 декабря, 2006 · Жалоба Пока точно сказать не могу, но помню картинку от Alterы и на ней несколько НИОСОВ на одном кристалле Думаю в надо аппликухи искать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 5 декабря, 2006 Опубликовано 5 декабря, 2006 · Жалоба Задача - запихать в одну FPGA'шку три NiosII. Сейчас усердно знакомлюсь с литературой по теме. Просто может кто-то поспособствует ускорению процесса и поделится советом - с какой стороны удара граблей ожидать? Будет ли им там тесно? Допустим откидываем проблему нехватки логических ячеек, памяти и ног I/O. Основной вопрос пока, наверное, в организации процесса отладки этих процессоров. Идельным вариантом было бы описание опыта работы с похожей конфигурацией. Имею вопросы: 1. Какие частоты нужны для процессора? 2. Какие задачи решают процессоры? 3. Все три процессора имеют одинаковые задачи и они одинаковые или у них есть различие? 4. Имеют ли они общую память и как организован арбитраж. 5. Если у процессоров задачи разные, то может быть для них не нужны Ниосы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Postoroniy_V 0 5 декабря, 2006 Опубликовано 5 декабря, 2006 · Жалоба Задача - запихать в одну FPGA'шку три NiosII. Сейчас усердно знакомлюсь с литературой по теме. Просто может кто-то поспособствует ускорению процесса и поделится советом - с какой стороны удара граблей ожидать? Будет ли им там тесно? Допустим откидываем проблему нехватки логических ячеек, памяти и ног I/O. Основной вопрос пока, наверное, в организации процесса отладки этих процессоров. Идельным вариантом было бы описание опыта работы с похожей конфигурацией. Имею вопросы: 1. Какие частоты нужны для процессора? 2. Какие задачи решают процессоры? 3. Все три процессора имеют одинаковые задачи и они одинаковые или у них есть различие? 4. Имеют ли они общую память и как организован арбитраж. 5. Если у процессоров задачи разные, то может быть для них не нужны Ниосы? так эта...у автора топика наверняка такие же вопросы возникли(4 и 5), смысл у него же переспрашивать? или у вас есть ответы на 4 и 5? от себя могу добавить для отладки удобно пользоваться Codelab лежит на фтп Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 5 декабря, 2006 Опубликовано 5 декабря, 2006 · Жалоба Про разделяемые ресурсы и арбитраж : http://www.altera.com/literature/tt/tt_nio...or_tutorial.pdf Простейший пример : http://www.altera.com/literature/tt/hello_world_multi.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 5 декабря, 2006 Опубликовано 5 декабря, 2006 · Жалоба Stewart Little, спасибо. очень хороший документ; непонятно, почему я его проигнорировал, когда собирал систему. Т.о. проблем с запуском и отладкой мульти-процессорной системы быть не должно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maksya 0 5 декабря, 2006 Опубликовано 5 декабря, 2006 · Жалоба Имею вопросы: 1. Какие частоты нужны для процессора? 2. Какие задачи решают процессоры? 3. Все три процессора имеют одинаковые задачи и они одинаковые или у них есть различие? 4. Имеют ли они общую память и как организован арбитраж. 5. Если у процессоров задачи разные, то может быть для них не нужны Ниосы? 1. Итоговая программа пока не дописана. И что еще хуже, недописана не мной :) Поэтому авторитетно ответить на Ваш вопрос пока не могу. Чем выше, тем лучше. Из прочитанного мной сделал вывод, что речь ведется о частотах ~50 МГц. 2. Основная задача - первичная обработка потоковой информации. В основном сортировка + несложные вычисления. 3. Задачи одинаковые. Три процессора работают в параллель и обрабатывают информацию с трех однотипных независимых каналов. Единственное различие будет по всей видимости в адресе в памяти куда будет записываться результат первичной обработки от каждого из процессоров. Это если у них память будет разделяемой. А вообще пока больше нравится вариант с подвешиванием к каждому из процессоров своей двухпортовой памяти с последующим сливом данных из них в общий чан. На ресурсах не экономлю. 4. Как правильно заметил Postoroniy_V, этот вопрос сейчас находится на стадии обсуждения. Как Я уже сказал, экономить на ресурсах ПЛИС не приходится, а посему и арбитраж несложный должен быть. 5. Задачи одинаковые. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maksya 0 5 декабря, 2006 Опубликовано 5 декабря, 2006 · Жалоба от себя могу добавить для отладки удобно пользоваться Codelab лежит на фтпА поподробней можно про CodeLab? Он позволяет отлаживать Nios II через JTAG? Точнее сказать одновременно 3 Nios II? Пока, честно сказать, не совсем понятно можно ли производить одновременную отладку трех процессоров. Или только по отдельности получится? И как в случае многопроцессорности отличать эти Nios'ы? По некоему cpu_inst_id ? Понятно, что раз задачи у процессоров одинаковые, то для начала можно один из них только зашить и отладить. Ну а что если представить, что назначения Nios'ов различны. Как тогда производить их отладку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 4 мая, 2007 Опубликовано 4 мая, 2007 · Жалоба Небольшой отчет. кваркус/ниос 6.1. отладчик встроенный в иде. Кодлаб не пробовал. Скомпилировал три процессора, у каждого своя onchip ram 16к для программы, кеша данных нет, кеш инструкций 512 (минимальный). Общие ресурсы - общая onchip, общая DDR внешняя. Прямо по указанному выше документу все работает отлично. В ИДЕ создается прект для каждого процессора, папки отдельные, у каждого свой софт. Собирается проект для каждого процессора, после чего собирается multiprocesor collection. Отлаживается вполне нормально: видны треды каждого процессора одновременно, брейкпойнты независимы, каждый тред можно запустить/приостановить, пошагово пройти. Результаты смотрю в отладчике при instruction stepping mode в переменных и в регистрах процессора. Все три процессора исполняют один и тот же код. Софт параметризирован, ядра себя опознают через NIOS2_READ_CPUID(cpuid). Где-то я что-то упустил, но лень копаться: процессоры a, b & c опознают себя как 1, 0 & 2 соответственно (я думал, что а - это будет 0). Но поскольку железо симметричное и проблем нет - копать неохота. В ППЗУ еще не грузил, работаю прямо из onchip. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться