影子寄存器用于减少中断延迟。
Arm有15个寄存器,那么这些影子寄存器存放在哪里呢?
术语“影子寄存器”是否与银行和非银行寄存器有关?
影子寄存器用于减少中断延迟。
Arm有15个寄存器,那么这些影子寄存器存放在哪里呢?
术语“影子寄存器”是否与银行和非银行寄存器有关?
ARM 技术文档没有具体提到shadow,所以很难将其与 ARM 联系起来。
然而,从ARM 与 MIPS 架构的比较来看:
MIPS 体系结构支持实现多个“影子”寄存器组。这允许更有效的上下文切换操作,但该功能在基于 MIPS 的设备上并不普遍或一致地实现这一事实使其用途有限。因此,很少有编译器或操作系统使用它。
在这种情况下,“影子寄存器”更像是一种独立的东西——它们可以用于很多事情,而分组寄存器用于明确分离的执行模式。
arm 有超过 15 个寄存器,您可以访问的寄存器组中有 15 个是模式相关的。infocenter.arm.com 上的 arm 架构参考手册(只需获取涵盖传统 arm 拱门的 ARMv5 手册)显示了寄存器列表以及访问它们所需的模式。
ARM 不使用术语影子寄存器,但 fiq 模式与您所要求的类似,因为您不必从被中断的任务中保留许多或任何寄存器。ARM 进一步拥有多个堆栈等,具体取决于模式。