ARMv7处理器各个模式之间是怎样切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?
2014-06-17 17:27
337 查看
1、ARM处理器各个模式之间是怎样切换的?
答:除用户模式外的其它6种模式称为特权模式,这些模式中,程序能够訪问全部系统资源,也能够随意进行处理器模式的切换。处理器模式能够通过软件控制进行切换(直接设置CPSR寄存器的后五位就能够在6种特权模式之间互相切换),也能够通过外部中断或异常处理过程进行切换(比如,在USR模式下,发生中断后切换到IRQ模式)。
2、ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做?
答:CPU做的:
(1)把返回地址保存到对应模式的lr寄存器中,比如从usr模式切换到irq模式,CPU会将usr模式下的pc值,保存到irq模式下的lr寄存器中。
(2)保存CPSR到对应模式的SPSR寄存器中,还是上面的样例,CPU保存usr模式下的CPSR到irq模式下的SPSR中。
(3)将pc设置成对应模式下的某地址值继续运行。
操作系统做的(以从模式A切换到模式B为例):
操作系统所做内容须要依据情况而定,由于模式切换不一定伴随着进程之间的切换,有可能从A模式切换到B模式后,CPU运行的是同一个进程,这时不须要操作系统详细做什么。
当模式切换伴随着进程切换时,操作系统须要保存模式切换之前的上下文环境。也就是进程控制块,进程控制块包含标识符、用户可见寄存器、控制和状态寄存器、栈指针等等,这与普通的进程切换类似。
答:除用户模式外的其它6种模式称为特权模式,这些模式中,程序能够訪问全部系统资源,也能够随意进行处理器模式的切换。处理器模式能够通过软件控制进行切换(直接设置CPSR寄存器的后五位就能够在6种特权模式之间互相切换),也能够通过外部中断或异常处理过程进行切换(比如,在USR模式下,发生中断后切换到IRQ模式)。
2、ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做?
答:CPU做的:
(1)把返回地址保存到对应模式的lr寄存器中,比如从usr模式切换到irq模式,CPU会将usr模式下的pc值,保存到irq模式下的lr寄存器中。
(2)保存CPSR到对应模式的SPSR寄存器中,还是上面的样例,CPU保存usr模式下的CPSR到irq模式下的SPSR中。
(3)将pc设置成对应模式下的某地址值继续运行。
操作系统做的(以从模式A切换到模式B为例):
操作系统所做内容须要依据情况而定,由于模式切换不一定伴随着进程之间的切换,有可能从A模式切换到B模式后,CPU运行的是同一个进程,这时不须要操作系统详细做什么。
当模式切换伴随着进程切换时,操作系统须要保存模式切换之前的上下文环境。也就是进程控制块,进程控制块包含标识符、用户可见寄存器、控制和状态寄存器、栈指针等等,这与普通的进程切换类似。
相关文章推荐
- ARMv7处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?
- ARMv7处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?
- ARM处理器各个模式之间是如何切换的?ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做?
- ARM处理器各个模式之间是如何切换的?ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做?
- linux操作系统在字符模式下怎样切换到图形界面下
- [ARM&Linux]Linux下中断处理的上下文保存与切换的一些细节
- 操作系统怎样控制硬件
- 操作系统应该要控制硬件的哪些单元
- Red Hat Linux操作系统下从文本模式切换到图形模式的方法
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Nachos之线程切换过程中的上下文保存与恢复
- vi的工作模式及各模式之间如何相互切换
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Windows mobile多窗口的模式中窗口之间切换显示的连续性
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 操作系统用户态和内核态之间的切换过程
- Windows mobile多窗口的模式中窗口之间切换显示的连续性
- SQL SERVER2005数据库紧急模式与正常模式之间的切换
- 操作系统:从实模式切换到保护模式