さて、冒頭の話に戻ろう。なぜZephyrの名前を思い出したのか? というと、Intelが2020年9月に発表した「Intel Atom x6000E」で、このZephyrが利用されていたためだ。こちらの記事では、リアルタイム性について「Intel TCC(Time Coordinated Computing)」の導入について触れられているが、これとは別に「最悪応答時間を保証した処理」が可能とある(図3)。普通に考えると、Linuxのような仮想記憶を利用したOSが動いている時点で、これはかなり難易度が高いのがお分かりいただけるかと思う。
だからといって、AtomコアがZephyrで動いている、というわけではない。この最悪応答時間を保証した処理を行うのはAtomコアではなく、PCH(つまりチップセット側)に内蔵されたPSE(Programmable Services Engine)というユニットが実施するのだが、このPSEの中身については以下のように説明されている。
The Intel Programmable Services Engine (Intel PSE) is a dedicated offload engine for IoT functions powered by an ARM Cortex-M7 microcontroller. It provides independent, low-DMIPS computing and low-speed I/Os for IoT applications, plus dedicated services for real-time computing and time-sensitive synchronization.(Atom x6000EのProduct Briefより)
要するに、リアルタイム処理については、Atomコアの処理から独立したArmの「Cortex-M7」で行うことで最悪応答時間が保証される、というわけだ。ちなみに上にも書いたように、PSEそのものはPCH側に内蔵されているから、Atomのメインメモリにアクセスは行わず、PSE内のCortex-M7コアと一緒に搭載されるSRAMを利用して稼働することになる。
さてそうなると、そんじゃこのPSEはどういうソフトウェア環境で動くの? という話になる。やはり先に挙げたProducts Briefから抜粋するとこんな感じ(図4)。「何でZephyr?」という話であるが、実装がIntelということは、要するにまだIntel社内にはZephyrを扱える人間が存在した(逆に言えば、他のRTOSを扱える人間がいない?)ということだと「この時は」思った。
Copyright © ITmedia, Inc. All Rights Reserved.