【问题标题】:What are shadow registers in MIPS and how are they used?MIPS 中的影子寄存器是什么,它们是如何使用的?
【发布时间】:2015-10-04 00:17:42
【问题描述】:

当我阅读 MIPS 架构时,我遇到了影子寄存器,据说它是通用寄存器的副本。

我无法理解以下内容:何时使用影子寄存器?

【问题讨论】:

    标签: mips cpu cpu-registers cpu-architecture


    【解决方案1】:

    MIPS 影子寄存器用于减少处理中断时的寄存器加载/存储开销。分配了影子寄存器集的中断不需要保存任何现有上下文来提供空闲寄存器或在中断处理程序入口处加载存储在影子寄存器中的任何中断特定数据;在中断处理程序退出时,不需要保存中断处理程序上下文或恢复先前的上下文。

    ARM 提供了类似的功能,即所谓的分组寄存器。 (对于 ARM,只有部分 GPR 被复制。)

    MIPS 多线程应用程序特定扩展扩展了影子寄存器集的使用以成为线程上下文。 (影子寄存器集实际上支持一种非常有限的开启事件多线程形式,其中额外线程在概念上仅限于中断处理程序和中断事件。)

    【讨论】:

    • 影子寄存器对程序员是可见的还是被硬件严格使用?
    • @flashburn 它们对特权软件可见(显然中断处理程序必须知道它不必保存 GPR 状态); “特权软件可能需要引用寄存器文件中的所有 GPR,甚至是在当前模式下不可见的特定影子寄存器。RDPGPR 和 WRPGPR 指令用于此目的。” (第 7.1 节影子集简介,面向程序员的 MIPS 架构第三卷:MIPS64/microMIPS64 特权资源架构,修订版 6.00)。
    【解决方案2】:

    我认为您的意思是一种将管道最后阶段的结果共享给执行下一个指令的前一个阶段的机制,这些指令可能碰巧读取该结果。物理上没有这样的影子寄存器,只是每个先前阶段的中间选择器,它可能需要将结果作为输入总线,从寄存器组或最后阶段的结果中捕获。对不起我糟糕的英语措辞。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 2013-04-11
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多