Я передаю данные из FPGA PCIe через DMA, что очень быстро. У меня есть 500 данных, каждая из которых содержит 80000 байт. Следовательно, время для всех 500 приема и сохранения данных в .bin-файле составляет 0,5 секунды. Если я делаю то же самое в файле .txt (это моя конечная цель), это занимает 15 секунд.FAST DMA выгодно использовать FPGA, используя потоки в C++
Следовательно, теперь я хочу использовать потоки в C++, где 1 поток (я называю его основным потоком) принимает данные DMA (по одному за раз) и одновременно открывает 500 других потоков (по одному для каждого файла) каждый файл, сохраняющий поток, ждет некоторого события триггера и т. д. (не так много, потому что процессор по своей сути работает последовательно, что вызывает проблему для проектировщика FPGA, который занимается параллельным доменом)
Пожалуйста, см. случай, который я объяснил, может быть решение, но мне нужно знать, как его реализовать, если это правильно в ++ ????
случай
1-данных (THRU DMA) входит в основной поток (где глобальная память назначается с помощью таНос()) -> Тема для файла 1 ждет любого TRIGGER и т.д., и как только когда он получает этот триггер, скопируйте содержимое памяти в свою выделенную память и затем начнет сохранять в файле, между тем он также запускает «главный поток» для увеличения своего счетчика и получения следующих данных, и процесс продолжается для всего 500 данных ,
Я в основном и парень FPGA и C++ на этом высоком уровне в первый раз, я определен, но застрял. действительно перепутался в течение двух дней с чтением нагрузок материала по потокам (в C++), главным образом, начиная с createthreads() и продолжая и продолжая, я думал, что WaitForSingleObject может быть решением, но я не могу понять, как это реализовать ...
любая идея была бы заметна. Я не ищу никакого кода, я просто ищу способ реализовать. К примеру тех, кто знаком с VHDL, они могли бы знать, в VHDL мы можем использовать
Код: wait until abc'event and abc = '1';
но что делать здесь?
Благодаря sraza
(Примечание: я бы ожидал, что вы остановились на своем вопросе, чтобы сделать производительность еще хуже, хотя бы потому, что теперь все ваши файлы фрагментированы, а не непрерывны) –