2015年12月2日 09:00
ARM TechCon 2015 - 新たに2種類の命令グループが定義された「ARMv8-M」を読み解く
らどうなるか、がPhoto10となる。扱いとしてはARMv7-MのException Handlingと同じ仕組みとすることである。遷移の際にかならずZero Clearするのは、これによるSnoopの可能性を抑えるためである。
ちなみにSecureかNon Secureかの区別は、基本的にはアドレスベースでの管理となる。これを管理するのが(Photo09のキャプションにも出てきている)SAUで、ここがメモリ領域ごとにSecureかNon Secureかの情報を格納している(Photo11)。なので、Non Secure StateのアプリケーションがSecureなアドレスにアクセスしようとすると、Memory Faultを発生する形でSecureが担保される。ちなみにBranch/CallでSecure Addressをアクセスしようとした場合は、新しく追加されたSecure Fault(Exception Number 7)が発生する形だ。
このあたりをもう少し見やすくしたのがPhoto12で、Secure State/Non Secure-State、Secure Address/Non-Secure Addressは完全に分離されており、唯一NSCの領域でのみ両者がアクセスできる事になる。