【发布时间】:2015-10-04 00:17:42
【问题描述】:
当我阅读 MIPS 架构时,我遇到了影子寄存器,据说它是通用寄存器的副本。
我无法理解以下内容:何时使用影子寄存器?
【问题讨论】:
标签: mips cpu cpu-registers cpu-architecture
当我阅读 MIPS 架构时,我遇到了影子寄存器,据说它是通用寄存器的副本。
我无法理解以下内容:何时使用影子寄存器?
【问题讨论】:
标签: mips cpu cpu-registers cpu-architecture
MIPS 影子寄存器用于减少处理中断时的寄存器加载/存储开销。分配了影子寄存器集的中断不需要保存任何现有上下文来提供空闲寄存器或在中断处理程序入口处加载存储在影子寄存器中的任何中断特定数据;在中断处理程序退出时,不需要保存中断处理程序上下文或恢复先前的上下文。
ARM 提供了类似的功能,即所谓的分组寄存器。 (对于 ARM,只有部分 GPR 被复制。)
MIPS 多线程应用程序特定扩展扩展了影子寄存器集的使用以成为线程上下文。 (影子寄存器集实际上支持一种非常有限的开启事件多线程形式,其中额外线程在概念上仅限于中断处理程序和中断事件。)
【讨论】:
我认为您的意思是一种将管道最后阶段的结果共享给执行下一个指令的前一个阶段的机制,这些指令可能碰巧读取该结果。物理上没有这样的影子寄存器,只是每个先前阶段的中间选择器,它可能需要将结果作为输入总线,从寄存器组或最后阶段的结果中捕获。对不起我糟糕的英语措辞。
【讨论】: