Как стать автором
Обновить

OpenMCAPI: одновременный запуск Linux и RTOS на многоядерных процессорах

Время на прочтение10 мин
Количество просмотров15K
Всего голосов 33: ↑33 и ↓0+33
Комментарии15

Комментарии 15

Поясните пожалуйста, почему время растет настолько медленнее по сравнению с ростом размера пакета?
Или если мы передаем лишь указатель на общую память почему оно вообще растет?
НЛО прилетело и опубликовало эту надпись здесь
Между ядрами действительно передается лишь указатель, но есть операции копирования userspace<->kernel со стороны Linux. Соответственно время на простом копировании тоже теряется. Время растет медленно из-за наличия кеша L2 256 Кбайт. Результат становится намного хуже при использовании пакетов размером больше 100 кб… В принципе, это хорошая золотая середина на ненагруженной системе (имеется ввиду наша плата)…
Если основное время съедается копированием в userspace, корректно ли включать это время в замеры? Как я понял, критично время которое РТОС тратит на коммуникацию, на Линуксовый кернел сравнительно плевать (тем более, думаю, для него это о-малое). Передача ведь происходит асинхронно?
Корректно, ну как минимум на мой взгляд… Так как основная задача openmcapi-порта со стороны Linux — обеспечить доступ к обмену из приложения userspace.
Спасибо за ответы.
Всегда пожалуйста.
Я правильно понимаю что два физически разных процессора пишут в одну и туже микросхему памяти и читают из нее поочередно, дергая прерывания друг друга?
Ну они не обязательно должны быть отдельными процессорами. В статье говорится о ядрах. А так да, своеобразный вариант несимметричного мультипроцессинга (только уже на уровне разных ОС).
Используется реализация в пределах одного процессора на разных ядрах. Ничего не мешает использовать два разных процессора или даже более, с небольшим изменением порта openmcapi.
Да, кстати. Вопрос не совсем по теме поста.
Как в таких сетапах, когда на разных ядрах крутятся разные ОС контролируются доступы к девайсам? В смысле, нужно следить чтобы они друг другу не мешали. Есть ли некие хардварные семафоры?
При одновременной работе придется разруливать семафорами, возможно их сделать программными (ну с замедлением, аппартатных в данном процессоре нет). Есть несколько исключений для данного камня P1020: Crypto модуль допускает одновременную работу, контроллер ELBC (NAND/NOR/etc) позволяет с некотороми ухищерениями отдать первому ядру NOR второму NAND с прозрачным доступом к ним (ухищерения относятся к обработке ошибок).
Прикольно. То есть, например, одинаковые физ. адреса будут разрешатся на разных ядрах в разную память?
Big_Lebowski, спасибо за интерес к посту и вопросы. См. ответ ниже.
Eсли имеется ввиду ELBC то нет. Есть 7 CS на которые можно повесть NOR/NAND/ETC. Адреса у CS разные, конкретный CS должно использовать только одно ядро. Изюминка заключается в том что операции с NAND на одном CS будутут прозрачны для NOR на втором CS учитывая что шина данных и адреса одна и таже, весь разрул берет на себя контроллер.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий