Comments 15
Поясните пожалуйста, почему время растет настолько медленнее по сравнению с ростом размера пакета?
Или если мы передаем лишь указатель на общую память почему оно вообще растет?
UFO landed and left these words here
Между ядрами действительно передается лишь указатель, но есть операции копирования userspace<->kernel со стороны Linux. Соответственно время на простом копировании тоже теряется. Время растет медленно из-за наличия кеша L2 256 Кбайт. Результат становится намного хуже при использовании пакетов размером больше 100 кб… В принципе, это хорошая золотая середина на ненагруженной системе (имеется ввиду наша плата)…
Если основное время съедается копированием в userspace, корректно ли включать это время в замеры? Как я понял, критично время которое РТОС тратит на коммуникацию, на Линуксовый кернел сравнительно плевать (тем более, думаю, для него это о-малое). Передача ведь происходит асинхронно?
Корректно, ну как минимум на мой взгляд… Так как основная задача openmcapi-порта со стороны Linux — обеспечить доступ к обмену из приложения userspace.
Я правильно понимаю что два физически разных процессора пишут в одну и туже микросхему памяти и читают из нее поочередно, дергая прерывания друг друга?
Ну они не обязательно должны быть отдельными процессорами. В статье говорится о ядрах. А так да, своеобразный вариант несимметричного мультипроцессинга (только уже на уровне разных ОС).
Используется реализация в пределах одного процессора на разных ядрах. Ничего не мешает использовать два разных процессора или даже более, с небольшим изменением порта openmcapi.
Да, кстати. Вопрос не совсем по теме поста.
Как в таких сетапах, когда на разных ядрах крутятся разные ОС контролируются доступы к девайсам? В смысле, нужно следить чтобы они друг другу не мешали. Есть ли некие хардварные семафоры?
При одновременной работе придется разруливать семафорами, возможно их сделать программными (ну с замедлением, аппартатных в данном процессоре нет). Есть несколько исключений для данного камня P1020: Crypto модуль допускает одновременную работу, контроллер ELBC (NAND/NOR/etc) позволяет с некотороми ухищерениями отдать первому ядру NOR второму NAND с прозрачным доступом к ним (ухищерения относятся к обработке ошибок).
Прикольно. То есть, например, одинаковые физ. адреса будут разрешатся на разных ядрах в разную память?
Eсли имеется ввиду ELBC то нет. Есть 7 CS на которые можно повесть NOR/NAND/ETC. Адреса у CS разные, конкретный CS должно использовать только одно ядро. Изюминка заключается в том что операции с NAND на одном CS будутут прозрачны для NOR на втором CS учитывая что шина данных и адреса одна и таже, весь разрул берет на себя контроллер.
Only those users with full accounts are able to leave comments. Log in, please.

Information

Founded
Location
Россия
Website
www.promwad.ru
Employees
101–200 employees
Registered