Na konferenci SENSOR + TEST 2022, která proběhla v německém Norimberku, se mohli návštěvníci blíže seznámit s novinkou ISM330IS, prvním senzorem vybaveným ISPU (intelligent sensor processing unit).
Společnost STMicroelectronics (dále jen „ST“) technologii představila již počátkem roku 2022 a příchod ISM303IS ukazuje její první reálnou implementaci. ISPU je vestavným digitálním signálovým procesorem (DSP) programovatelným v jazyce C a podporujícím algoritmy strojového a hlubokého učení. Jedná se tedy o další evoluci a rozšíření podpory AI přímo v čipu. ISM330IS nabízí jako první mezi pohybovými senzory také FPU (floating point unit: single precision) pro podporu složitějších matematických výpočtů.
Od nápadu až k nové generaci senzorů
Pro lepší porozumění se musíme podívat na klíčové inovace ST za poslední čtyři roky.
Vše začalo publikováním dokumentu, který zkoumal realizovatelnost jádra strojového učení (Machine Learning Core, dále jen „MLC“) uvnitř inerciální měřicí jednotky (Inertial Measurement Unit, IMU). Do té doby senzory poskytovaly pouze nezpracovaná data a prakticky veškeré výpočty a zpracování těchto dat muselo probíhat v mikrokontroléru (MCU). MEMS inerciální snímače patří k malým součástkám (rozměry obvykle menší než 3 × 3 × 1 mm) s velmi nízkou spotřebou energie. Pokud bychom tedy pro zpracování všech naměřených dat použili výkonný procesor, způsobilo by to výrazné komplikace z pohledu nákladů a limitování životnosti u bateriově napájených systémů.
Čeho dosáhl první senzor s MLC?
Rok 2018 byl průlomový. Na trh byl uveden LSM6DSOX, první senzor, který pro běh algoritmů strojového učení nabízí právě MLC. To umožňuje implementaci až osmi na sobě nezávislých rozhodovacích stromů, které mohou využít data z akcelerometru, gyroskopu nebo externího senzoru připojeného přes Sensor Hub. Ve výsledku je tedy možné zpracovávat data přímo v senzoru, navíc za zlomek spotřebované energie. Nové aplikace na sebe nenechaly dlouho čekat, zvláště po integraci tohoto senzoru do testovací platformy SensorTile.box. Ta pomohla vytvořit např. detektor dětského pláče pro kojence ponechané v automobilech nebo aplikaci pro vyhodnocení funkce dolních končetin („sit-stand tests“).
A co další senzory s MLC?
Senzor LSM6DSOX stál rovněž u zrodu nové komunity vývojářů. V souvislosti s MLC vznikl repozitář na GitHub, kde jsou k dispozici příklady použití a ukázky implementace algoritmů v MLC. Pro programátory, kteří chtěli těžit z výhod MLC, bylo zpřístupněno rozšíření softwarového nástroje Unico GUI pro konverzi rozhodovacích stromů do podoby nastavení registrů senzoru. Krátce nato byl uveden LSM6DSRX, který se pyšnil ještě lepšími parametry pro náročnější aplikace, jako jsou např. helmy pro virtuální realitu. Očekává se také brzké uvedení nové generace rodiny inerciálních měřicích jednotek. Konkrétně LSM6DSV16X s rozšířeným MLC a ještě lepším poměrem výkonu dosahovaného na jeden watt v systémech s přísnějšími požadavky na spotřebu. Senzory s MLC od ST proto částečně přispěly i k nástupu nové éry automatizace a ISM330IS v tom dále pokračuje.
Od nového jádra pro zpracování k novým aplikacím
Co si máme pod zkratkou ISPU představit? ISPU (intelligent sensor processing unit) senzoru ISM330IS nabízí 8 kB paměti RAM pro data a 32 kB RAM pro aplikaci. Má 32bitovou RISC Harvardskou architekturu běžící na 10 MHz, čtyřstupňový pipeline, FPU a sadu 16bitových instrukcí s optimalizací pro neuronové sítě a jejich zpracování. Ale nejen to. ISPU může obsloužit přerušení v pouhých čtyřech hodinových cyklech (jádra Arm® Cortex® jich k tomu obvykle potřebují 15), dokáže rovněž v jednom cyklu zpracovat 16bitové násobení. Ke komunikaci s MCU slouží jako u většiny jiných senzorů rozhraní SPI nebo I²C. Program se nahrává do RAM paměti ISPU po spuštění z nadřazeného MCU.
Integrované FPU umožňuje aplikacím pracovat s ještě větší flexibilitou. K dispozici je generátor přerušení ovladatelný z programu ISPU, který může informovat nadřazené MCU např. o provedení výpočtů nebo o detekci monitorované události. Samotná architektura ISPU umožňuje zlepšení výkonu v porovnání s předchozí generací součástek, zatímco spotřeba stále zůstává na mikrowattových úrovních. Jedná se tedy o ještě výkonnější a zejména pak flexibilnější řešení oproti MLC s rozhodovacími stromy. I přes integraci mnoha nových funkcí se podařilo ISM330IS kvalifikovat ve standardním pouzdru LGA o rozměrech 3 × 2,5 × 0,83 mm, které je navíc HW kompatibilní s jinými inerciálními měřicími jednotkami od ST.
Čím vyniká ISM330IS?
Aplikace s umělou inteligencí jsou stále běžnější a často se spojují s představou vysokých paměťových nároků, výpočetních cloudových serverů nebo komplikovaných GPU architektur. Spousta programů si také žádá nákladné výpočetní operace, což bývá neslučitelné se zpracováním přímo v daném zařízení. Takový výkon však nepotřebují všechny systémy strojového učení. Klasifikace na mobilních zařízeních, jako jsou chytré telefony, nebo lokálních průmyslových zařízeních se ve výsledku těší velké oblibě. Rozpoznávání obrazu, detekce závad a také prediktivní údržba – to vše vyžaduje spolehlivé funkce AI nezatížené vysokou spotřebou energie. Podobně budou i kamery v bezdrátových zabezpečovacích systémech pro domácnosti využívat služeb AI k rozpoznávání tváří či domácích zvířat.
ISM330IS je odpovědí na tyto náročné požadavky, protože v režimu vysokého výkonu odebírá pouze 0,59 mA. Jen pro srovnání, ISM330DHCX vyžaduje za obdobných podmínek až 1,5 mA. Druhý jmenovaný senzor má ale kromě jiného výkonnější gyroskop, což částečně vysvětluje rozdílnou spotřebu. Čísla však také odrážejí optimalizace spojené s novou součástkou, včetně efektivity výpočetního jádra. Pro nízkopříkonové mikrokontroléry je výjimkou mít FPU, protože to vede ke zvýšené spotřebě provozní energie. Obvody ISM330IS svůj odběr přesto stále udržují na dostatečně nízké úrovni tak, aby vyhověly požadavkům na bateriově napájené systémy. Řešení v podobě ISM330IS tedy kombinuje přesné měření intergrovaného akcelerometru a gyroskopu, nízkou energetickou náročnost a DSP jednotku s datovou a programovou pamětí RAM.