2015年12月2日 09:00
ARM TechCon 2015 - 新たに2種類の命令グループが定義された「ARMv8-M」を読み解く
もっともこのSecure Modeを設けるにあたり、追加されるリソースは本当に最小限である。例えばレジスタ類を新設することすらしていない。ではこれでどうやってTrustZoneを実現できるのか?。
まずプログラマから見たメモリマップがPhoto08である。これはNon Secure Modeから見た構図であるが、セキュアな領域はMPUによって保護されるので、「基本」アクセスが一切出来ないことになる。
一方、Secure ModeにおいてはこのSecure Unitにアクセスが可能である。「基本」と書くのは例外があるからで、Photo09の赤い部分は、NCU(Non-Secure Callable)と定義される。NCUはおおむね、簡単なエントリポイントなどが置かれる程度のものだが、要するにNormal StateからSecure Stateを呼び出す際に利用される領域として定義される。
さて、もう少し先に進んでみる。Non Secureで稼働中にThread→Handler、あるいはHandler→Secureの遷移はこれまでと同様だし、Secureで稼働中も同じである。ではNon Secure Thread中にSecureなインタラプトが入った(あるいはSecure Thread中にNon-Secureなインタラプトが入った)