amater 0 14 октября, 2011 Опубликовано 14 октября, 2011 · Жалоба Коллеги, Я никогда не программировал под Linux, а сейчас камень мощный появился, можно и попробовать. То есть планирую использовать Cortex-A9 с двумя ядрами, на одном из ядер запустить свою очень маленькую, но быструю задачу (короче 10us), а на другом linux. Думаю про отдельное ядро, потому что latency скажем в 4 us меня совершенно не устраивает. А задача такая маленькая что в кеш должна поместится. Как подступится к Linux понятия не имею. И вообще возможно ли сделать чтобы какой то поток исполнялся на отдельном ядре независимо от остального Linux? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gormih 0 14 октября, 2011 Опубликовано 14 октября, 2011 · Жалоба Коллеги, Я никогда не программировал под Linux, а сейчас камень мощный появился, можно и попробовать. То есть планирую использовать Cortex-A9 с двумя ядрами, на одном из ядер запустить свою очень маленькую, но быструю задачу (короче 10us), а на другом linux. Думаю про отдельное ядро, потому что latency скажем в 4 us меня совершенно не устраивает. А задача такая маленькая что в кеш должна поместится. Как подступится к Linux понятия не имею. И вообще возможно ли сделать чтобы какой то поток исполнялся на отдельном ядре независимо от остального Linux? Сделать можно все. Самое узкое место в Вашей системе - общие шины для оборудования и памяти от ядер. И еще будут некоторые проблемы с объяснением линуксу на каком ядре он должен работать, и на каком запустить вашу отдельную задачу (запускать ее будет именно линукс, тут без вариантов). И кстати - ваш кортекс-а9 имеет 4 ядра а не 2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 14 октября, 2011 Опубликовано 14 октября, 2011 (изменено) · Жалоба Сделать можно все. Самое узкое место в Вашей системе - общие шины для оборудования и памяти от ядер. И еще будут некоторые проблемы с объяснением линуксу на каком ядре он должен работать, и на каком запустить вашу отдельную задачу (запускать ее будет именно линукс, тут без вариантов). Это у вас Cortex-A9 с четырьмя ядрами а у меня с двумя http://www.altera.com/devices/processor/ar...-cortex-a9.html Только я не понял почему без вариантов запускать под Linux надо? Изменено 14 октября, 2011 пользователем Аматер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gormih 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Это у вас Cortex-A9 с четырьмя ядрами а у меня с двумя http://www.altera.com/devices/processor/ar...-cortex-a9.html Только я не понял почему без вариантов запускать под Linux надо? Потому что собрать самому ядро для одного процессора будет значительно сложнее, чем для двух. Для двух уже есть готовые реализации, которые нужно чуть подработать. Для одного Вам нужно будет славно потрудится, чтобы запустить хотя бы ядро Linux- дело неблагодарное имхо, но если есть много времени и высококлассный спец по портированию Linux ядра на новые платформы - почему бы и нет :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Потому что собрать самому ядро для одного процессора будет значительно сложнее, чем для двух. Для двух уже есть готовые реализации, которые нужно чуть подработать. Для одного Вам нужно будет славно потрудится, чтобы запустить хотя бы ядро Linux- дело неблагодарное имхо, но если есть много времени и высококлассный спец по портированию Linux ядра на новые платформы - почему бы и нет :-) Как то вы неопределенно говорите. Готовые реализации это hard affinity что ли? Но я не понимаю будет ли линукс запускать что либо на ядре к которому привязана моя задача? Может ли он тормозить выполнение моей задачи? Задержка даже в 4 мкс не подходит мне. Поэтому и пытаюсь выяснить подход заранее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Как то вы неопределенно говорите. Готовые реализации это hard affinity что ли? Но я не понимаю будет ли линукс запускать что либо на ядре к которому привязана моя задача? Может ли он тормозить выполнение моей задачи? Задержка даже в 4 мкс не подходит мне. Поэтому и пытаюсь выяснить подход заранее. а что, задача так сложна или в ней floating point ? по описанию - задача- типовая плисовая Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба а что, задача так сложна или в ней floating point ? по описанию - задача- типовая плисовая Так она и решается сейчас на FPGA+NIOS. Но скорости не хватает. Естественно float упростит жизнь, можно будет отказатся от маштабирования для повышения точности. А fpga + DSP или внешний ARM как-то вызывают сомнения потому что время потеряется на синхронизации, предаче данных и результатов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gormih 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Так она и решается сейчас на FPGA+NIOS. Но скорости не хватает. Естественно float упростит жизнь, можно будет отказатся от маштабирования для повышения точности. А fpga + DSP или внешний ARM как-то вызывают сомнения потому что время потеряется на синхронизации, предаче данных и результатов. Есть такие чипы - DSP и FPGA в одном корпусе (чипе). Их достаточно много. Имхо самое то для Вас :-) А многоядерные чипы могут и не оправдать Ваших надежд... Тут как бы самое узкое место - как раз взаимодействие ядер между собой и с аппаратурой через всякие "интеллектуальные" штуки, которые могут достаточно неадекватно вести себя для Вашей задачи. (Не зная сути задачи трудно судить) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Есть такие чипы - DSP и FPGA в одном корпусе (чипе). Их достаточно много. Имхо самое то для Вас :-) А многоядерные чипы могут и не оправдать Ваших надежд... Тут как бы самое узкое место - как раз взаимодействие ядер между собой и с аппаратурой через всякие "интеллектуальные" штуки, которые могут достаточно неадекватно вести себя для Вашей задачи. (Не зная сути задачи трудно судить) Может подскажите хоть одного производителя кто выпускает DSP+FPGA в одном корпусе? Насколько я знаю и у xilinx и у altera пока только анонсированы A9+FPGA. Про DSP+FPGA вообще первый раз слышу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gormih 0 17 октября, 2011 Опубликовано 17 октября, 2011 · Жалоба Может подскажите хоть одного производителя кто выпускает DSP+FPGA в одном корпусе? Насколько я знаю и у xilinx и у altera пока только анонсированы A9+FPGA. Про DSP+FPGA вообще первый раз слышу. Точно где то встречал. Еще спрошу у человека. А вообще есть вот такой вариант например. ARM конечно ограничен в dsp инструкциях, но все же. На счет конкретно DSP + FPGA еще узнаю :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 17 октября, 2011 Опубликовано 17 октября, 2011 · Жалоба Точно где то встречал. Еще спрошу у человека. А вообще есть вот такой вариант например. ARM конечно ограничен в dsp инструкциях, но все же. На счет конкретно DSP + FPGA еще узнаю :-) Так о чем я и говорил с самого начала, про альтеру на которую вы ссылку даете. А DSP+FPGA не делают, потому что DSP решается в встроенными в FPGA умножителями. У меня немного другая задача - нужно по входным данным найти кое что и расчитатать, то есть на фильтр вообще не похоже. Поэтому cortex A9 иделальный вариант. Вот только почему то их программируют с операционками. Ну и ладно, операционка вещь хорошая, но должна крутится независимо от моей задачи. Поэтому и задал вопрос можно ли выделить ядро под мою задачу. Пока кажется что проще адаптировать скажем eCos чем настроить Linux. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 19 октября, 2011 Опубликовано 19 октября, 2011 · Жалоба Пока кажется что проще адаптировать скажем eCos чем настроить Linux. Чем проще ? SMP в Linux отключается в конфиге одной галочкой, а вот как общие ресурсы делить между ядрами это уже другой вопрос, для этого различные гипервизоры пишут, кстати у cortex-a есть аппаратное расширение TrustZone, мне кажется надо смотреть в эту сторону, на сайте ARM есть где-то пример настройки двух standalone задач, правда помоему для одного ядра пример. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 28 ноября, 2011 Опубликовано 28 ноября, 2011 · Жалоба Чем проще ? SMP в Linux отключается в конфиге одной галочкой, а вот как общие ресурсы делить между ядрами это уже другой вопрос, для этого различные гипервизоры пишут, кстати у cortex-a есть аппаратное расширение TrustZone, мне кажется надо смотреть в эту сторону, на сайте ARM есть где-то пример настройки двух standalone задач, правда помоему для одного ядра пример. +1, заставить Linux работать не только без SMP, но и вообще выделить какое либо ядро (или несколько) чтобы оно было свободно - делается в конфигах и даже в параметре к ядру а то сижу читаю местных экспертов про "ужасные сложности" и диву даюсь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться