ARM处理器有个Shadow Register的概念,查了很多资料,语焉不详,究竟是什么意思呢?

这其实是个和硬件有关的概念。

有些register是2层的,第一层是供CPU访问,第二层供Hw访问。

CPU访问

Hw访问

其中Hw访问的这层register称之为Shadow Register
CPU在写Register的时候,会先写在上层的Shadow Register,随后硬件update之后才会在下层供Hw访问的Register开始执行。

这是同一个Register,不是2个Register,只不过分了2层。形象的讲上层是下层的Shadow。

因为真正生效的执行Hw动作的是下面这层,而上面这层只是将CPU(也就是将软件)的信息获取到,等下个硬件周期才会执行。

那么这有什么用呢?哪里用到了这点呢?

这样做可以加快程序的相应和信息的处理。

其中ARM的FIQ有用到,也就是fast interrupt,快速中断的意思。

因为FIQ是有Shadow Register的,所以你在使用它或者是设置它的时候,指令可以先存在Shadow Register里面,等到下一个硬件周期就会立即执行。

而没有Shadow Register的IRQ(interrupt),就要等Register里面的数据执行完毕后才能写入,那样就稍慢一些。

这也就是FIQ比IRQ快的一个原因。

Shadow Register 是什么?相关推荐

  1. 影子寄存器(shadow register)

    1.以下仅供参考: 有阴影的寄存器,表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preload register(预装载寄存器),另一个是程序员看不见的.但在操作中真 ...

  2. SATA 学习笔记2 - Shadow Register和FIS的传输

    在上一篇笔记SATA学习笔记1 - Link Layer初认识中,我们简单了解了FIS是如何在不同的layer中进行传输和接收的,在这篇笔记中,我将进一步讲解FIS的相关知识. 在讲FIS前,我们先来 ...

  3. X86 第一条CPU指令及BIOS Shadow

    目录 一.CPU第一条指令计算 二.找到第一条指令所在位置 三.第一条指令的内容 四.BIOS Shadow 一.CPU第一条指令计算 开机时CPU进入实模式,8086以及80286的寻址方式为段寄存 ...

  4. DOS下读取4GB内存

    好文章我收集下起来 CPU上电后,从ROM 中的BIOS开始运行. BIOS是处在内存的最顶端64KB(FFFF0000H),还是1MB之下的64KB(F0000H)处呢?事实上,BIOS在这两个地方 ...

  5. stm32影子寄存器、预装载寄存器,TIM_OC1PreloadConfig和TIM_ARRPreloadConfig的作用

    一直没搞清楚stm32定时器的TIM_OC1PreloadConfig.TIM_ARRPreloadConfig函数的作用,影子寄存器.预装载寄存器.重载寄存器的概念.今天来研究一下: 首先看定时器的 ...

  6. STM32-通用定时器基本定时功能

    1.     STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器.其中系统嘀嗒定时器是前文中所 ...

  7. LPC43xx SGPIO Pattern Match Mode

    模式匹配 所有位串均具有模式匹配功能. 该功能可用于检测启动代码等.要使用该功能,则必须用需匹配的模式来对REG_SS 编程 (请注意, POS 达到零时 REG_SS 不会与 REG  交换!) M ...

  8. 理解单片机系统—汇编语言

    理解单片机系统 一.理解CPU的三种工作模式 从80386开始,CPU有三种工作方式:实模式(real-mode).保护模式(protected-mode)和虚拟8086模式.只有在刚刚启动的时候是实 ...

  9. STM32F2xx DMA Controllers

    http://blog.frankvh.com/2011/08/18/stm32f2xx-dma-controllers/ If you're moving a bunch of data aroun ...

最新文章

  1. 学习性代码和使用不存在的代码
  2. 【Android布局】控件布置
  3. MongoDB分析工具之三:db.currentOp()
  4. 阿里云 腾讯云 服务器挂载数据盘
  5. android 360旋转动画,ANDROID——仿360手机卫士的旋转打分控件
  6. zabbix-3.0.4安装部署
  7. iOS开发使用UIKeyInput自定义密码输入框
  8. mysql generic安装_MySQL 5.7 linux generic 版本安装
  9. 关于Windows7系统不能访问XP创建的DVD的问题
  10. 穿越火线老是卡在正在连接服务器,修复cf经常提示网络出现异常与服务器断开连接的方法...
  11. 矩阵满秩分解原理解释
  12. [转载]徐文兵:梦与健康
  13. 【原创】Ubuntu Docker 配置网易国内镜像
  14. office常用的快捷键
  15. MALTAB中 imshow函数出错
  16. android 8.0 展讯平台系统编译问题点
  17. vue项目中elementUI的日期时间选择器的默认修改以及能选择当天的未来时间24点
  18. JS点击列表li获取li的id
  19. Java实现掷骰子控制台和窗体两种实现方法
  20. DNF手游多开搬砖赚RMB攻略

热门文章

  1. javascript制作省市联动等类似二级目录
  2. C++ P1726 上白泽慧音
  3. JVM学习 谁是垃圾?判断对象是否能被垃圾回收 可达性分析 四大引用
  4. 大型互联网架构演变历程(读《淘宝技术这10年》有感)
  5. 不止是刷题——leetcode笑死人的评论合集,独乐乐不如众乐乐~~
  6. 一名普通游戏开发者的年终总结
  7. sqlmap中转注入
  8. 用Python爬取顶点小说网站中的《庆余年》思路参考——记一次不成功的抓取
  9. 妙眠新零售系统开发 ——PHP程序源码搭建
  10. VM安装centos时设置基础软件仓库时出错(设置镜像后依旧出错)