IDAU(Implementation Defined Attribution Unit)用于向处理器指示特定内存地址是安全的、非安全可调用(NSC)的,还是非安全的,并提供内存地址所在的区域号。它还可以标记一个内存区域,以免受安全检查的影响,例如一个ROM表。总体而言,IDAU接口是处理器特定的。然而,不同Cortex-M处理器上的IDAU接口之间存在高度相似性。
理论上,设计IDAU为可编程是可能的。然而,IDAU接口上的信号可能在关键的时序路径上,这可能使复杂的IDAU变得不切实际,并可能导致设计中的门数更多。因此,IDAUs提供了具有有限可配置性的简单内存映射。
Armv8-M定义了一个在512MB边界上划分的内存映射。以下图示的示例内存映射通过在它们的中间点处为每个区域添加对安全性的支持,使得较低的一半提供对256MB非安全窗口的访问,而较高的一半提供相同256MB区域的安全视图。系统中的其他控制点确定了在安全和非安全窗口中的每一个中可访问的内容。
例如,设计人员可以使用地址的第28位来定义内存是安全的还是非安全的,从而得到以下示例内存映射。