MIPS中的阴影寄存器是什么?它们是如何使用的?

MIPS中的阴影寄存器是什么?它们是如何使用的?,mips,cpu,cpu-registers,cpu-architecture,Mips,Cpu,Cpu Registers,Cpu Architecture,当我读到MIPS体系结构时,我遇到了阴影寄存器,它们被称为通用寄存器的副本 我无法理解以下内容:何时使用卷影寄存器?MIPS卷影寄存器用于减少处理中断时的寄存器加载/存储开销。分配了阴影寄存器集的中断不需要保存任何现有上下文来提供空闲寄存器,也不需要在进入中断处理程序时加载阴影寄存器中存储的任何中断特定数据;在中断处理程序退出时,不需要保存中断处理程序上下文或恢复以前的上下文 ARM提供了一个类似的功能,它称之为银行寄存器。(对于ARM,仅复制部分GPRs。) MIPS多线程应用程序特定扩展扩展

当我读到MIPS体系结构时,我遇到了阴影寄存器,它们被称为通用寄存器的副本


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

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

ARM提供了一个类似的功能,它称之为银行寄存器。(对于ARM,仅复制部分GPRs。)


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

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

阴影寄存器对程序员可见还是严格由硬件使用?@flashburn它们对特权软件可见(显然中断处理程序必须知道它不必保存GPR状态);此外,“特权软件可能需要引用寄存器文件中的所有GPRs,甚至是在当前模式下不可见的特定阴影寄存器。RDPGPR和WRPGPR指令用于此目的。”(第7.1节阴影集简介,程序员MIPS体系结构第三卷:MIPS64/MicroIPS64特权资源体系结构,版本6.00)。