Nikita Demerza 0 August 12, 2022 Posted August 12, 2022 · Report post Здравствуйте. У меня возникла идея написать специальную ос под fpga+arm soc-ы. Само ядро ос должно запускаться на ps(CPU), а все программы на fpga(перестраивается при запуске каждого приложения, возможно деление fpga на несколько областей для запуска нескольких приложений), так вот самый главный вопрос, от которого зависит возможность этого проекта: может ли ps часть прошить pl(fpga) часть? Quote Share this post Link to post Share on other sites More sharing options...
makc 385 August 12, 2022 Posted August 12, 2022 · Report post В Zynq PL грузится только из PS, но это не очень быстро и в результате частые перезагрузки PL дадут слишком большие накладные расходы. Разработчики не рассчитывали на такой вариант использования. Quote Share this post Link to post Share on other sites More sharing options...
StewartLittle 87 August 12, 2022 Posted August 12, 2022 · Report post В 12.08.2022 в 17:16, Nikita Demerza сказал: Само ядро ос должно запускаться на ps(CPU), а все программы на fpga(перестраивается при запуске каждого приложения, возможно деление fpga на несколько областей для запуска нескольких приложений) Как-то эта задумка мысли об OpenCL навевает... Quote Share this post Link to post Share on other sites More sharing options...
nice_vladi 3 August 13, 2022 Posted August 13, 2022 · Report post 15 hours ago, makc said: В Zynq PL грузится только из PS, но это не очень быстро... Ну смотря какие требования. Все-таки, PL из PS грузится <1секунды. Если уж перешиваешь PL, то 1 сек может быть вполне удовлетворительным результатом. Quote Share this post Link to post Share on other sites More sharing options...
makc 385 August 13, 2022 Posted August 13, 2022 · Report post 25 минут назад, nice_vladi сказал: Ну смотря какие требования. Все-таки, PL из PS грузится <1секунды. Если уж перешиваешь PL, то 1 сек может быть вполне удовлетворительным результатом. В операционках квант времёни порядка 10 мс, названное вами время (мои наблюдения совпадают с вашими) на 2 порядка больше. Плюс ещё есть затраты времени на запуск PLL и т.п. стартап PL. Т.е. использовать PL в таком ключе мне видится крайне неэффективным. Quote Share this post Link to post Share on other sites More sharing options...
Nikita Demerza 0 August 13, 2022 Posted August 13, 2022 · Report post А частичная перезапись возможна? Или это только в версалях есть? Quote Share this post Link to post Share on other sites More sharing options...
makc 385 August 13, 2022 Posted August 13, 2022 · Report post 6 минут назад, Nikita Demerza сказал: А частичная перезапись возможна? Или это только в версалях есть? Возможна. Читайте про zynq partial reconfiguration. Но это очень специфическое средство, которое по своим ограничениям применимости далеко не всегда может подойти для решения задачи. Quote Share this post Link to post Share on other sites More sharing options...
nice_vladi 3 August 14, 2022 Posted August 14, 2022 · Report post On 8/13/2022 at 1:21 PM, makc said: В операционках квант времёни порядка 10 мс, названное вами время (мои наблюдения совпадают с вашими) на 2 порядка больше. Плюс ещё есть затраты времени на запуск PLL и т.п. стартап PL. Т.е. использовать PL в таком ключе мне видится крайне неэффективным. Ну так опять же: смотря, что делать. Допустим, если у вас релейка или какая-нибудь коммутационная вещь, то перепрошивка == разрыв связи/потеря маршрутизации. Тогда уже не важно: что 100 мс, что 1-2 секунды. Quote Share this post Link to post Share on other sites More sharing options...
makc 385 August 14, 2022 Posted August 14, 2022 · Report post 1 час назад, nice_vladi сказал: Ну так опять же: смотря, что делать. Вот в этом и проблема: ТС хотел общий универсальный механизм на все случаи жизни, как вытесняющая многозадачность в современной ОС. Но так не получается. Quote Share this post Link to post Share on other sites More sharing options...
slkhome 1 August 15, 2022 Posted August 15, 2022 · Report post On 8/12/2022 at 5:16 PM, Nikita Demerza said: Здравствуйте. У меня возникла идея написать специальную ос под fpga+arm soc-ы. Само ядро ос должно запускаться на ps(CPU), а все программы на fpga(перестраивается при запуске каждого приложения, возможно деление fpga на несколько областей для запуска нескольких приложений), так вот самый главный вопрос, от которого зависит возможность этого проекта: может ли ps часть прошить pl(fpga) часть? Какие задачи стоят перед ОС? Какая ниша предполагается у таких ОС? Это прототипы для исследований или есть реальная потребность? Это дипломная работа или диссертация? ИМХО: 1. На сколько правильно поянл, Intel, а теперь Intel + Altera, подобрым вопросом уже давно озаботились. Тем более когда совместили CPU+PL+SDRAMDDR в одном корпусе. Читал когда-то у них уже даже есть какие-то инструменты, что бы писать ПО как раз с учетом того, что часть программ и будет подгружаться в PL и там работать на зверских скоростях. Конечно там увеличенная скорость загрузки в PL. 2. Для Зинков считаю, что лучше уж делать ускорители для решения конкретных задач, типа IP Core. А в ОС делать поддержку этих IPCores, или писать программы так, чтобы использовать ресурсы IPCores. И расчитывать, что реконфигурация будет происходить редко и медленно. Quote Share this post Link to post Share on other sites More sharing options...
Nikita Demerza 0 August 16, 2022 Posted August 16, 2022 · Report post В 15.08.2022 в 12:10, slkhome сказал: Какие задачи стоят перед ОС? Какая ниша предполагается у таких ОС? Это прототипы для исследований или есть реальная потребность? Это дипломная работа или диссертация? ИМХО: 1. На сколько правильно поянл, Intel, а теперь Intel + Altera, подобрым вопросом уже давно озаботились. Тем более когда совместили CPU+PL+SDRAMDDR в одном корпусе. Читал когда-то у них уже даже есть какие-то инструменты, что бы писать ПО как раз с учетом того, что часть программ и будет подгружаться в PL и там работать на зверских скоростях. Конечно там увеличенная скорость загрузки в PL. 2. Для Зинков считаю, что лучше уж делать ускорители для решения конкретных задач, типа IP Core. А в ОС делать поддержку этих IPCores, или писать программы так, чтобы использовать ресурсы IPCores. И расчитывать, что реконфигурация будет происходить редко и медленно. Для исследований. Тут ещё появилась одна идея: адаптивная ос на онтологиях, начну делать под обычное железо, а потом возможно вернусь к fpga soc-ам в качестве железа. Quote Share this post Link to post Share on other sites More sharing options...
Gaba 0 December 19, 2023 Posted December 19, 2023 · Report post On 8/12/2022 at 5:16 PM, Nikita Demerza said: может ли ps часть прошить pl(fpga) часть? Может, такое реализовывается с помощью fpga manager на PS части. Вот гайд https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841645/Solution+Zynq+PL+Programming+With+FPGA+Manager Довольно муторная подготовка в том плане, что необходимо вырезать всю PL часть из device tree и записывать её в дополнительный файл device tree overlay, который потом наложится на основной dtb файл. Если коротко, то при запуске загружается только PS часть, которая потом подгружает bit.bin файл и допольнительный оверлейный device tree, чтобы ОС понимала что у неё добавилось. Quote Share this post Link to post Share on other sites More sharing options...