0
点赞
收藏
分享

微信扫一扫

影子寄存器(shadow register)


    

       有阴影的寄存器,表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preload register(预装载寄存器),另一个是程序员看不见的、但在操作中真正起作用的寄存器,称为shadow register(影子寄存器)


       设计preload register和shadow register的好处是,所有真正需要起作用的寄存器(shadow register)可以在同一个时间(发生更新事件时)被更新为所对应的preload register的内容,这样可以保证多个通道的操作能够准确地同步。如果没有shadow register,或者preload register和shadow register是直通的,即软件更新preload register时,同时更新了shadow register,因为软件不可能在一个相同的时刻同时更新多个寄存器,结果造成多个通道的时序不能同步,如果再加上其它因素(例如中断),多个通道的时序关系有可能是不可预知的。


       当CPU需要写入寄存器时,它首先会将数据写入上层的Shadow Register。随后,在硬件更新之后,这些数据才会被写入下层供硬件访问的寄存器,并开始执行。这两个寄存器实际上是同一个寄存器的不同层级,而非两个独立的寄存器。Shadow Register的存在,使得CPU在写入寄存器时,可以先将数据存储在Shadow Register中,等待下一个硬件周期再执行。这种方式有助于提高计算机的运行效率,因为CPU可以在写入数据后继续执行其他任务,而无需等待硬件执行完成。





 



举报

相关推荐

0 条评论