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

Прошивка pl части со стороны ps на SOC FPGA+ARM

Здравствуйте. У меня возникла идея написать специальную ос под fpga+arm soc-ы. Само ядро ос должно запускаться на ps(CPU), а все программы на fpga(перестраивается при запуске каждого приложения, возможно деление fpga на несколько областей для запуска нескольких приложений), так вот самый главный вопрос, от которого зависит возможность этого проекта: может ли ps часть прошить pl(fpga) часть?

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


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

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

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


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

В 12.08.2022 в 17:16, Nikita Demerza сказал:

Само ядро ос должно запускаться на ps(CPU), а все программы на fpga(перестраивается при запуске каждого приложения, возможно деление fpga на несколько областей для запуска нескольких приложений)

Как-то эта задумка мысли об OpenCL навевает...

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


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

15 hours ago, makc said:

В Zynq PL грузится только из PS, но это не очень быстро...

Ну смотря какие требования. Все-таки, PL из PS грузится <1секунды. Если уж перешиваешь PL, то 1 сек может быть вполне удовлетворительным результатом.

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


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

25 минут назад, nice_vladi сказал:

Ну смотря какие требования. Все-таки, PL из PS грузится <1секунды. Если уж перешиваешь PL, то 1 сек может быть вполне удовлетворительным результатом.

В операционках квант времёни порядка 10 мс, названное вами время (мои наблюдения совпадают с вашими) на 2 порядка больше. Плюс ещё есть затраты времени на запуск PLL и т.п. стартап PL. Т.е. использовать PL в таком ключе мне видится крайне неэффективным.

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


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

6 минут назад, Nikita Demerza сказал:

А частичная перезапись возможна? Или это только в версалях есть?

Возможна. Читайте про zynq partial reconfiguration.

Но это очень специфическое средство, которое по своим ограничениям применимости далеко не всегда может подойти для решения задачи. 

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


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

On 8/13/2022 at 1:21 PM, makc said:

В операционках квант времёни порядка 10 мс, названное вами время (мои наблюдения совпадают с вашими) на 2 порядка больше. Плюс ещё есть затраты времени на запуск PLL и т.п. стартап PL. Т.е. использовать PL в таком ключе мне видится крайне неэффективным.

Ну так опять же: смотря, что делать. Допустим, если у вас релейка или какая-нибудь коммутационная вещь, то перепрошивка == разрыв связи/потеря маршрутизации. Тогда уже не важно: что 100 мс, что 1-2 секунды.

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


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

1 час назад, nice_vladi сказал:

Ну так опять же: смотря, что делать.

Вот в этом и проблема: ТС хотел общий универсальный механизм на все случаи жизни, как вытесняющая многозадачность в современной ОС. Но так не получается.

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


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

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. И расчитывать, что реконфигурация будет происходить редко и медленно.

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


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

В 15.08.2022 в 12:10, slkhome сказал:

Какие задачи стоят перед ОС?

Какая ниша предполагается у таких ОС?

Это прототипы для исследований или есть реальная потребность?

Это дипломная работа или диссертация?

ИМХО:

1. На сколько правильно поянл, Intel, а теперь Intel + Altera, подобрым вопросом уже давно озаботились. Тем более когда совместили CPU+PL+SDRAMDDR в одном корпусе. Читал когда-то у них уже даже есть какие-то инструменты, что бы писать ПО как раз с учетом того, что часть программ и будет подгружаться в PL и там работать на зверских скоростях. Конечно там увеличенная скорость загрузки в PL.

2. Для Зинков считаю, что лучше уж делать ускорители для решения конкретных задач, типа IP Core. А в ОС делать поддержку этих IPCores, или писать программы так, чтобы использовать ресурсы IPCores. И расчитывать, что реконфигурация будет происходить редко и медленно.

Для исследований.

Тут ещё появилась одна идея: адаптивная ос на онтологиях, начну делать под обычное железо, а потом возможно вернусь к fpga soc-ам в качестве железа.

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


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

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, чтобы ОС понимала что у неё добавилось.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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