The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Проект Raspberry Pi выпустил микроконтроллер RP2040, стоимос..."
Отправлено Ordu, 04-Июн-21 01:26 
>>> Нашо контролеру 2 ядра?
>> И чем больше у тебя ядер, тем проще с ним справляться. Не потому, что суммарно у ядер производительность выше, а потому, что если код, выполняющийся на одном ядре, тормозит, то другое ядро свободно, и может следовать рилтаймовым требованиям.
> Всё равно всё повиснет на этапе синхронизацыи. :)

Нет, зачем? Допустим, читаешь ты одним ядром по паре сэмплов с периодом в 20мкс. И пишешь их в очередь. А на том конце очереди ядро читает пары сэмплов по тыщще штук за раз, и делает по ним FTT.  Тебе из синхронизации максимум потребуется спинлок на очереди. А может даже и без него удастся обойтись, ежели ISA позволит.

И вот твоя реализация FTT может выжимать из ядра максимум, не отвлекаясь каждые 20мкс на чтение ещё одной пары сэмплов (что потребовало бы накладных расходов на сохранение регистров, восстановление их, возможно ещё на что-нибудь), она может в процессе даже иногда выделять память или освобождать её, если ей это зачем-то нужно. Она в целом может выполнять более продолжительные операции, не заботясь о том, что эти операции должны быть прерываемы в произвольный момент для того, чтобы прочитать ещё пару сэмплов.

> Я за распайку "ядер" на общей шыне по потребности — так универсальнее и надёжнее кажется

Мне кажется, что внешняя пайка всегда менее надёжна, чем соединения на одном кристалле. А насчёт универсальности, я совсем не согласен. Когда у тебя есть несколько ядер, это гораздо более универсальное решение, нежели вытачивание специальной схематики с тонкой заточкой под задачу, которая пойдёт лесом сразу же, как только слегка изменятся требования. Или если будет найден баг, упущенный раньше.

Читал про то, как вертолётик на Марсе чуть не убился[1]? Там был баг, который описан недостаточно подробно, на мой вкус, но я могу дофантазировать более точную картину. Где-то генерится импульс, который говорит камере захватить кадр, камера захватывает кадр, отправляет его микроконтроллеру, микроконтроллер принимает кадр, прописывает ему таймстамп на основании номера этого кадра, и заталкивает в дальнейшую обработку. Один кадр не был получен, и _не_был_посчитан_, в результате чего, таймстапмы всех последующих кадров съехали на 33.3 миллисекунды, что почти разломало систему управления. Вертолётик колбасило в воздухе так, что все уже думали, что ему кирдык придёт. К счастью, в момент посадки эта вниз направленная камера не используется, её кадры игнорируются, вертолётик полагается только на другие "органы чувств", благодаря чему ему удалось провести идеальную посадку и выжить.

Сейчас этот вертолётик стоит на приколе, ждёт обновления прошивки. А теперь прикинь, если бы у него каждое ядро было бы отдельным чипом, во что бы вылилось дополнение схематики возможностью перепрошить любой из чипов, не возвращая его для этого с Марса на Землю.

[1] https://spectrum.ieee.org/automaton/robotics/space-robots/ma...

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру