Comments 18
На сколько в среднем падает производительность в lockstep при работе из какой-нибудь общей (разделяемой) памяти?
Хороший вопрос.
Проверить это проблематично, так как в спеке на SoC FC7300F8MDT не указаны регистры и битовые поля для отключения lockstep режима.
Не падает. Между парой ядер и шинами памяти/периферии находится проверочный модуль, который со стороны шин выглядит как одно ядро. Сами ядра в норме полностью синхронны и читают/пишут одни и те же адреса/данные на каждом такте, проверяющий следит как раз за этим, и либо пускает на шины полностью совпадающую активность (по сути, выходные сигналы одного ядра, второе пассивно принимает входные), либо сигналит ошибку.
А в случае использования задержки (временного сдвига) тоже не падает? Получается проверочный модуль хранит все изменения на этот временной сдвиг и сравнивает результат первого и второго?
Да, как на блок-схеме в статье - буферы на требуемое кол-во тактов для входных/выходных сигналов ядра. Обратите внимание на этот момент: сравниваются не внутренние состояния ядер, а их внешние сигналы, они куда более обозримы/легкодоступны. Сами ядра рассматриваются как "чёрные ящики", которые стартуют из одинаковых внутренних состояний (обеспечивается общим сбросом), далее в них подаётся одна и та же последовательность сигналов, а они должны выдавать одинаковые реакции на неё. Если в какой-то момент сбивается внутреннее состояние, рано или поздно это выходит наружу.
Мне кажется, надо три ядра, иначе будет как с часами: если у вас есть часы, вы можете узнать, который час, но если у вас двое часов, то вы никогда не будете уверены в результате
Забавно, как в примере указывается семейство MPC57x, а в ссылке на чип - SPC58
(первый - еще со времен Freescale, второй - уже NXP)
И от PowerPC NXP тоже уже отказались, их заменил ARM S32G.
Еще крупный известный индустриально-автомобильный локстеп чип - Tricore TCxxx
И от PowerPC NXP тоже уже отказались, их заменил ARM S32G.
Почему они так поступили?
мое понимание - издержки от поддержки PowerPC слишком высоки. NXP сфокусировалось на интеграции IP компонентов, и по сути отдали полностью разработку непосредственно ядра ARM.
PowerPC, судя по всему, остался только в радстойких процах
Существуют ли российские микроконтроллеры с функцией lockstep?
Миландр К1986ВК01. Согласно документации, два ядра ARM Cortex M4F могли работать либо независимо (DualCore), либо в режиме LockStep (вроде, настаивалось boot-опциями).
Правда, я лично этот МК в серийных изделиях не встречал (только инженерный образец на демо-плате). И вряд-ли вообще его кто-нибудь увидит, т.к. Миландру запретили производить МК с ядрами ARM.
Миландру запретили производить МК с ядрами ARM.
Пусть тогда разрабатывают MCU c RISC-V как Микрон (K1948BK018 )
Миландру запретили производить МК с ядрами ARM.
А НПЦ ЭЛВИС не запрещали ARM ядра встраивать? У них же ELIoT с двумя ARM Cortex-M33.

Есть ещё Техасский инструментальный завод, и их серия TMS570, тоже умеет lock-step
FC7300F8MDT: Lockstep (или как МК выявляет сбои)