реклама на сайте
подробности

 
 
> TMS320c6678 и многоядерность, Как раскидать задачи на разные ядра ?
Digi
сообщение Dec 23 2013, 11:12
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 150
Регистрация: 20-08-04
Пользователь №: 529



Не могу понять, как в один *.out файл поместить програмные модули, которые должны работать в разных ядрах.
И вообще я еще не понял принцип работы программы в многоядерном процессоре. Я понял я так: К примеру Ядро 0 выполняет задачи передачи данных, обобщение результатов вычислений. Ядра 1-4 вычисляют принятые во внутреннюю память данные и укладывают туда же результаты. Связь между ядрами осуществялется через внутренюю память.
Это правильно или как то иначе ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hoodwin
сообщение Dec 27 2013, 08:00
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Цитата
FIFO и есть связанный список. Какие отличия???

Как раз и нет. Главное отличие аналогично фундаментальной разнице между списком и массивом. В одном случае атомарной операцией (то есть не зависящей от состояния структуры) является вставка и удаление произвольного элемента, в другом - выборка.

Цитата
Ничего FIFO не гарантирует, синхронизацию доступа надо аппаратными средствами осуществлять, причем в 667х эти средства есть.
...
Не вляпались в ситуацию, когда оба процесса одновременно искалечат индексы первого и последнего элементов очереди. Это же элементарно и называется оверран.

Вы можете осуществлять синхронизацию любыми способами, которые сочтете удобными. На мой вкус FIFO удобнее.
1) ему не нужна особая специальная поддержка в аппаратных средствах.
2) оно дает возможность асинхронного взаимодействия ядер, в отличие от критических секций. В частности это позволяет решить проблему передачи данных на обработку из прерываний в основные процессы. Захват критической секции в прерывании, которое наступает асинхронно, может привести к deadlock-у.
3) overrun и underrun не является проблемой FIFO, и тут вам jcxz все правильно написал. Я только еще раз суть подчеркну: любая сторона может асинхронно проверить ситуацию на overrun/underrun и сделать правильные выводы. Для этого не нужно делать критическую секцию вокруг FIFO. Вообще говоря это не дается бесплатно, но платой является то, что писатель может увидеть overrun даже когда место на самом деле еще есть, а читатель может увидеть пустое fifo еще какое-то время после того, как там данные уже появились. Или, проще, цена состоит в том, что один-два слота памяти FIFO будут зарезервированы на крайний случай, но не будут использоваться фактически. Так вот, эта цена обычно абсолютно приемлема, так как памяти в нем гораздо больше.
4) FIFO могут использоваться для передачи данных в другие клоковые домены, хотя это уже больше относится к их реализации в ПЛИС. В этом случае им также нет конкурентов по совокупности характеристик, главной из которых является возможность асинхронной передачи данных.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 14th August 2025 - 23:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.02121 секунд с 7
ELECTRONIX ©2004-2016