平码五不中公式规律
  • / 24
  • 下载费用:30 金币  

具有较少不必要寄存器数据存取的模式切换处理方法及相关非临时机器可读介质.pdf

关 键 ?#21097;?/dt>
具有 较少 不必要 寄存器 数据 存取 模式 切换 处理 方法 相关 临时 机器 可读 介质
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580047377.5

申请日:

2015.08.31

公开号:

CN106663027A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 9/46申请日:20150831|||公开
IPC分类号: G06F9/46 主分类号: G06F9/46
申请人: 联发科技股份有限公司
发明人: 张雅婷; 陈家明; 周宏霖; 林有明; 陈雨廷; 尼古拉斯·秦辉·郑; 许嘉豪
地址: 中国台湾新竹市
优?#28909;ǎ?/td> 2014.09.03 US 62/045,082
专利代理机构: 北京万慧达知识产权代理有限公司 11111 代理人: 白华胜;王蕊
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580047377.5

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

一种模式切换处理方法包括:当操作系统模式从第一模式切换至第二模式时,将存储在多个寄存器中的寄存器数据的仅一部分保存至存储装置中;其中,在该第一模式中使用M位寄存器长度,在该第二模式中使用N位寄存器长度,且M和N为不同整数。

权利要求书

1.一种模式切换处理方法,包括:
当操作系统模式从第一模式切换至第二模式时,将存储在多个寄存器中的寄存器数据
的仅一部分保存至存储装置中;
其中,在该第一模式中使用M位寄存器长度,在该第二模式中使用N位寄存器长度,且M
和N为不同整数。
2.如权利要求1所述的模式切换处理方法,其特征在于,M小于N。
3.如权利要求1所述的模式切换处理方法,其特征在于,该将存储在该多个寄存器中的
该寄存器数据的仅该部分保存至该存储装置中的步骤包括:
将存储在该寄存器中的该多个寄存器数据的该部分保存至该存储装置中,其中,存储
在该多个寄存器中的该寄存器数据的剩余部分不保存在该存储装置中。
4.如权利要求3所述的模式切换处理方法,其特征在于,该寄存器数据的该部分存储在
该多个寄存器的下半部分,该寄存器数据的该剩余部分存储在该多个寄存器的上半部分,
该多个寄存器的该下半部分允许用于该第一模式和该第二模式的每个之中,且该多个寄存
器的该上半部分允许用于该第二模式中,但不允许用于该第一模式中。
5.如权利要求1所述的模式切换处理方法,其特征在于,该将存储在该多个寄存器中的
该寄存器数据的仅该部分保存至该存储装置中的步骤包括:
将存储在该多个寄存器的一部分寄存器中的寄存器数据保存至该存储装置中,其中,
存储在该多个寄存器的剩余部?#31181;?#30340;多个寄存器数据不保存至该存储装置中。
6.如权利要求5所述的模式切换处理方法,其特征在于,该多个寄存器的该部分寄存器
允许用于该第一模式和该第二模式的每个中,且该多个寄存器的该剩余部分寄存器允许用
于该第二模式中,但不允许用于该第一模式中。
7.一种模式切换处理方法,包括:
当操作系统模式从第二模式切换至第一模式时,将存储装置中的保存的寄存器数据集
合恢复至多个寄存器的存储空间的仅一部分;
其中,M位寄存器长度用于第一模式,N位寄存器长度用于第二模式,且M和N为不同整
数。
8.如权利要求7所述的模式切换处理方法,其特征在于,M小于N。
9.如权利要求7所述的模式切换处理方法,其特征在于,该将该存储装置中的该保存的
寄存器数据集合恢复至该多个寄存器的该存储空间的仅一部分的步骤包括:
将该保存的寄存器数据集合中包括的寄存器数据恢复至寄存器的一部分,其中,不将
该保存的寄存器数据集合中包括的该寄存器数据恢复至该寄存器的剩余部分。
10.如权利要求9所述的模式切换处理方法,其特征在于,该寄存器的该部分为该寄存
器的下半部分,该寄存器的该剩余部分为该寄存器的上半部分,该寄存器的该下半部分允
许用于该第一模式和该第二模式的每个之中,且该寄存器的该上半部分允许用于该第二模
式中,但不允许用于该第一模式中。
11.如权利要求7所述的模式切换处理方法,其特征在于,该将该存储装置中的该保存
的寄存器数据集合恢复至该多个寄存器的该存储空间的仅一部分的步骤包括:
将该保存的寄存器数据集合中包括的寄存器数据恢复至该多个寄存器的一部分,其
中,不将该保存的寄存器数据集合中包括的该寄存器数据恢复至该多个寄存器的剩余部分
中。
12.如权利要求11所述的模式切换处理方法,其特征在于,该多个寄存器的该部分允许
用于该第一模式和该第二模式的每个中,且该多个寄存器的该剩余部分允许用于该第二模
式中,但不允许用于该第一模式中。
13.一种非临时机器可读介质,包括存储于其中的程序代码,其中当处理器执行该程序
代码时,该程序代码使该处理器执行下列步骤:
当操作系统模式从第一模式切换至第二模式时,将存储在多个寄存器中的寄存器数据
的仅一部分保存至存储装置中;
其中,在该第一模式中使用M位寄存器长度,在该第二模式中使用N位寄存器长度,且M
和N为不同整数。
14.如权利要求13所述的非临时机器可读介质,其特征在于,M小于N。
15.如权利要求13所述的非临时机器可读介质,其特征在于,该将存储在多个寄存器中
的寄存器数据的仅一部分保存至存储装置中包括:
将存储在该多个寄存器中的该寄存器数据的该部分保存至该存储装置中,其中,存储
在该多个寄存器中的该寄存器数据的剩余部分不保存在该存储装置中。
16.如权利要求15所述的非临时机器可读介质,其特征在于,该寄存器数据的该部分存
储在该多个寄存器的下半部分,该寄存器数据的该剩余部分存储在该多个寄存器的上半部
分,该多个寄存器的该下半部分允许用于该第一模式和该第二模式的每个之中,且该多个
寄存器的该上半部分允许用于该第二模式中,但不允许用于该第一模式中。
17.如权利要求13所述的非临时机器可读介质,其特征在于,该将存储在多个寄存器中
的寄存器数据的仅一部分保存至存储装置中包括:
将存储在该多个寄存器的一部分寄存器中的寄存器数据保存至该存储装置中,其中,
存储在该多个寄存器的剩余部分寄存器中的寄存器数据不保存至该存储装置中。
18.如权利要求17所述的非临时机器可读介质,其特征在于,该多个寄存器的该部分寄
存器允许用于该第一模式和该第二模式的每个中,且该多个寄存器的该剩余部分寄存器允
许用于该第二模式中,但不允许用于该第一模式中。
19.一种非临时机器可读介质,包括存储于其中的程序代码,其中当处理器执行该程序
代码时,该程序代码使该处理器执行下列步骤:
当操作系统模式从第二模式切换至第一模式时,将存储装置中的保存的寄存器数据集
合恢复至多个寄存器的存储空间的仅一部分;
其中,在该第一模式中使用M位寄存器长度,在该第二模式中使用N位寄存器长度,且M
和N为不同整数。
20.如权利要求19所述的非临时机器可读介质,其特征在于,M小于N。
21.如权利要求19所述的非临时机器可读介质,其特征在于,该将存储装置中的保存的
寄存器数据集合恢复至多个寄存器的存储空间的仅一部分包括:
将该保存的寄存器数据集合中包括的寄存器数据恢复至寄存器的一部分,其中,不将
该保存的寄存器数据集合中包括的寄存器数据恢复至该寄存器的剩余部分。
22.如权利要求21所述的非临时机器可读介质,其特征在于,该寄存器的该部分为该寄
存器的下半部分,该寄存器的该剩余部分为该寄存器的上半部分,该寄存器的该下半部分
允许用于该第一模式和该第二模式的每个之中,且该寄存器的该上半部分允许用于该第二
模式中,但不允许用于该第一模式中。
23.如权利要求19所述的非临时机器可读介质,其特征在于,该将存储装置中的保存的
寄存器数据集合恢复至多个寄存器的存储空间的仅一部分包括:
将该保存的寄存器数据集合中包括的寄存器数据恢复至该多个寄存器中的一部分寄
存器,其中,不将该保存的寄存器数据集合中包括的该寄存器数据恢复至该多个寄存器的
剩余部?#31181;小?br />
24.如权利要求23所述的非临时机器可读介质,其特征在于,该多个寄存器的该部分允
许用于该第一模式和该第二模式的每个中,且该多个寄存器的该剩余部分允许用于该第二
模式中,但不允许用于该第一模式中。

说明书

具有较少不必要寄存器数据存取的模式切换处理方法及相关非临时机器可读介质

相关申请的交叉引用

本申请的权利要求范围要求如下申请的优?#28909;ǎ?014年9月3日递交的申请号为
62/045,082的美国临时案。在此合并参考上述美国临时申请案的全部内容。

技术领域

本发明有关于模式切换处理方法,更具体地,有关于模式切换处理方法及相应的
处理器。

背景技术

处理器是各种电子装置所需的关键元件。例如,操作系统(operating system,OS)
可由电子装置的处理器执行以控制应用软件的执行用于执行用户所需数据处理。操作系统
可在不同操作系统模式间切换,例如用户模式和内核模式(kernel mode)。从第一操作系统
模式到第二操作系统模式的切换需要是可逆的,当退出第二操作系统模式时,将返回第一
操作系统模式,这样在没有被中断的情况下,第一操作系统模式将继续。为了实现这种可逆
性,需要在刚离开第一操作系统模式时将各个寄存器(例如处理器内的寄存器)的内容存
储,以使在第二操作系统模式结束使用寄存器(例如,处理器内部的寄存器)且控?#21697;?#22238;至
第一操作系统模式之后可恢复这些内容。这通常是通过在离开第一操作系统模式时将第一
操作系统模式中处理器寄存器的寄存器数据保存至外部动态随机存取存储器(dynamic
random access memory,DRAM)中分配的堆栈存储器的一个区域,且在返回第一操作系统模
式时将来自堆栈存储器的该区域的保存的存储器数据返回至该处理器寄存器而实现的。

传统模式切换处理方法可保存和恢复处理器使用的所有寄存器的内容。然而,此
传统方法所具有的问题?#20999;?#20837;堆栈存储器和随后从堆栈存储器读取的操作相对较慢,这将
不可避免地?#26723;?#22788;理器的性能。因此,需要一种创新的模式切换处理方法能避免/减少不必
要的存储器数据存取从而加速模式切换操作。

发明内容

根据本发明的实施例,提出一种具有较少不必要寄存器数据存取的模式切换处理
方法及相关非临时机器可读介质。根据本发明的第一个方面,揭露一种模式切换处理方法。
该模式切换处理方法包括:当操作系统模式从第一模式切换至第二模式时,将存储在多个
寄存器中的寄存器数据的仅一部分保存至存储装置中;其中,在该第一模式中使用M位寄存
器长度,在该第二模式中使用N位寄存器长度,且M和N为不同整数。

根据本发明的第二个方面,揭露一种模式切换处理方法。该模式切换处理方法包
括:包括:当操作系统模式从第二模式切换至第一模式时,将存储装置中的保存的寄存器数
据集合恢复至多个寄存器的存储空间的仅一部分;其中,M位寄存器长度用于第一模式,N位
寄存器长度用于第二模式,且M和N为不同整数。

根据本发明的第三个方面,揭露一种包括存储于其中的程序代码的非临时机器可
读介质。当处理器执行该程序代码时,该程序代码使该处理器执行下列步骤:当操作系统模
式从第一模式切换至第二模式时,将存储在多个寄存器中的寄存器数据的仅一部分保存至
存储装置中;其中,在该第一模式中使用M位寄存器长度,在该第二模式中使用N位寄存器长
度,且M和N为不同整数。

根据本发明的第三个方面,揭露一种非临时机器可读介质,包括存储于其中的程
序代码,其中当处理器执行该程序代码时,该程序代码使该处理器执行下列步骤:当操作系
统模式从第二模式切换至第一模式时,将存储装置中的保存的寄存器数据集合恢复至多个
寄存器的存储空间的仅一部分;其中,在该第一模式中使用M位寄存器长度,在该第二模式
中使用N位寄存器长度,且M和N为不同整数。

附图说明

图1是根据本发明一个实施例的处理系统的模块示意图。

图2为根据本发明一个实施例32位处理器结构使用的寄存器的示意图。

图3为根据本发明一个实施例64位处理器结构使用的寄存器的示意图。

图4为64位通用目的寄存器的示意图。

图5为第一寄存器数据保存机制的示例示意图。

图6为第二寄存器数据保存机制的示例示意图。

图7为第三寄存器数据保存机制的示例示意图。

图8为第一寄存器数据恢复机制的示例示意图。

图9为第一寄存器数据恢复机制的示例示意图。

图10为第三寄存器数据恢复机制的示例示意图。

图11为将本发明提出的模式切换处理方法运用至基于ARM计算机系统的示例示意
图。

图12为将本发明提出的模式切换处理方法运用至基于ARM计算机系统的示例示意
图。

图13为根据本发明一个实施例的模式切换处理方法的流程图。

具体实施方式

在说明书及后续的权利要求当中使用了某些词汇来指称特定的元件。所属领域技
术人员应可理解,制造商可能会用不同的名词来称呼同样的元件。本说明书及后续的权利
要求并不以名称的差异来作为区别元件的方式,而?#19988;?#20803;件在功能上的差异来作为区别的
基准。在通篇说明书及后续的权利要求当中所提及的「包括」为开放式的用语,故应解?#32479;傘?br />包括但不限定于」。此外,?#26684;?#25509;」一词在此包括任何直接及间接的电气连接手段。因此,若文
中描述第一装置耦接于第二装置,则代表该第一装置可直接连接于该第二装置,或透过其
他装置或连接手段间接地连接至该第二装置。

图1是根据本发明一个实施例的处理系统100的模块示意图。处理系统100为电子
装置的一部分,该电子装置可例如,电视、移动电话、平板电脑或可穿戴式设备。处理系统
100可包括处理器102、非临时机器可读介质(non-transitory machine readable medium)
104以及存储装置106。应注意的是图1仅?#20801;?#20102;本发明有关的元件。实际上,处理系统100可
配置为包括用于实现其他功能的额外元件。在此实施例中,非临时机器可读介质104和存储
器106可用分离的存储装置实现。例如,非临时机器可读介质104可为非?#36164;?#24615;机器可读介
质(例如闪存),且存储器106可为?#36164;?#24615;机器可读介质(例如动态随机存取存储器)。或者,
非临时机器可读介质104和存储器106可用同一存储装置中分配的分离存储空间实现。简而
言之,本发明对非临时机器可读介质104和存储器106的具体实?#32622;?#26377;限制。

处理器102可具有包括REG0-REGn在内的多个寄存器。当处理器102为N位处理器
时,寄存器REG0-REGn的大部分或全部可为N位寄存器。例如,处理器102可为64?#25442;?#20110;ARM
(ARM-based)的处理器,且寄存器REG0-REGn的大部分可为64位寄存器。应注意,同一处理器
102中实现的寄存器REG0-REGn的数目可根据处理器102的实际处理器结构。在此实施例中,
提出的具有更少不必要寄存器数据存取的模式切换方法可应用至处理器102内部的寄存器
REG0-REGn。然而,此仅用于说明目的,并不意在限制本发明。此外,提出的具有更少不必要
寄存器数据存取的模式切换方法可应用至?#25105;?#22788;理电路使用的寄存器及/或处理器102外
部的寄存器。

非临时机器可读介质104可设置为存储程序代码PROG。程序代码PROG可为操作系
统(OS)的一部分,例如基于Linux的OS,且程序代码PROG可被处理器102加载并执行以处理
操作系统模式的模式切换操作。存储装置106可设置为具有分配在其中的堆栈存储器
(stack memory)。因此,当操作系统模式从第一模式切换至第二模式时,第一模式中的指令
执行可被中断,且处理器102上运行的程序代码PROG可将处理器102的寄存器数据存储至堆
栈存储器,这样保存的寄存器数据集合DATAREG在存储装置106中为可用的。当操作系统模式
从第二模式切换至第一模式时,处理器102上运行的程序代码PROG可将堆栈存储器中的保
存的寄存器数据集合DATAREG恢复至处理器102,从而致能继续第一模式中的指令执行。

当处理器102为N位处理器时,处理器102可配置为操作在N位模式、N/2位模式、N/4
位模式…及一位模式。因此,处理器102可操作在N位模式(其中可使用N位寄存器长度)中,
且可操作在M位模式(其中可使用M位寄存器长度)中,其中N和M可为不同整数。由于处理器
102的N位模式的寄存器使用可能不同于处理器102的M位模式的寄存器使用,保存/恢复处
理器的所有寄存器REG0-REGn的全部寄存器数据可能会导致不必要的寄存器数据存取及不
必要的存储装置存取。相较于保存/恢复处理器的所有寄存器REG0-REGn的全部寄存器数据
的传统模式切换处理方法,本发明提出的模式切换处理方法可避免/减少不必要的寄存器
数据存取以实现快速模式切换和减少的功率消耗。提出的模式切换处理方法的更多?#38468;?#22914;
?#28388;?#31034;。

图2为根据本发明一个实施例32位处理器结构使用的寄存器的示意图。32位处理
器结构可支持多个处理器模式,例如USR(用户)模式、IRQ(中断)模式、FIQ(快速中断)模式、
SVC(监视)模式、ABT(退出)模式、UND(未定义)模式及HYP(管理)模式等?#21462;?#20363;如,当用户应
用程序运行在处于用户模式的操作系统模式中时,处理器可操作在用户模式的处理器模式
中;且当操作系统模式从用户模式切换至内核模式时,处理器可操作在监视模式的处理器
模式中。如图2中所示,一组寄存器R0-R7可被所有处理器模式共享。第一组寄存器R8-R12在
用户模式中为可用的,且第二组寄存器R8-R12在快速中断模式中为可用的。寄存器R13的每
个可为堆?#24674;刚?stack pointer,SP)。寄存器R14的每个可为链接?#21018;?link pointer,
LP)。如图2中所示,第一组寄存器R13和R14在用户模式中为可用的,第二组寄存器R13和R14
在监视模式中为可用的,第三组寄存器R13和R14在退出模式中为可用的,第四组寄存器R13
和R14在未定义模式中为可用的,第五组寄存器R13和R14在中断模式中为可用的,第六组寄
存器R13和R14在快速中断模式中为可用的。此外,附加寄存器R13在管理模式中为可用的。
应注意的是32位处理器结构可具有附加寄存器(图未示),包括程序计数器(program
counter,PC)、管理模式寄存器(ELR_Hyp)、保存的程序状态寄存器(SPSR)等?#21462;?br />

图3为根据本发明一个实施例64位处理器结构使用的寄存器的示意图。如图3所
示,其中有31个64位通用目的寄存器X0-X30,其下半部分可存取为W0-W30。通用目的寄存器
X0-X30可为64位宽度以处理由64位处理器执行的64位指令集合的较大地址。对于由同一64
位处理器执行的32位指令集合,32位存取可仅使用64位通用目的寄存器X0-X30的下半部分
W0-W30。图4为64位通用目的寄存器的示意图。64位通用目的寄存器可划分为上半部分P1
(由更重要位—位[63:32]组成)和下半部分P2(由较不重要位—位[31:0]组成)。在64位处
理器可用于操作在64位模式(其中可使用64位寄存器长度)的另一情形中,上半部分P1和下
半部分P2都将被使用。在64位处理器可用于操作在32位模式(其中可使用32位寄存器长度)
的情形中,仅使用下半部分P2,其中,上半部分P1可被忽略或被0填充。此外,如图2中所示的
32位处理器结构中定义的寄存器可被?#25104;?#22312;图4中所示的64位处理器结构中定义的64位通
用目的寄存器X0-X30的下半部分,以致能在64位处理器结构上运行32位指令集合。应注意
的是64位处理器机构可具有附加寄存器(图未示),包括堆?#24674;刚?#23492;存器、异常(exception)
链接寄存器、保存的程序状态寄存器(SPSR)等?#21462;?br />

举例而言,图1中所示的处理器102可为至少使用图3中所示的64位通用目的寄存
器X0-X30的64位处理器。如上所述,当用户应用程序运行在处于用户模式的操作系统模式
中时,处理器可操作在用户模式的处理器模式中;且当操作系统模式从用户模式切换至内
核模式时,处理器可操作在监视模式的处理器模式中。在用户应用可为32位应用且操作系
统可为64位操作系统的情形中,并非所有64位通用目的寄存器X0-X30在用户模式中可被全
部存取。例如,对于64位通用目的寄存器X0-X30,一些通用目的寄存器X0-X14的仅下半部分
P2可被32位应用存取。基于上述观察,本发明因此提出一种部分寄存器数据保存/恢复机制
以增强模式切换效率。

请再次参考图1,当操作系统从第一模式切换至第二模式时,运行在处理器102上
的程序代码(例如模式切换处理程序)PROG可用于执行保存操作。其中M位长度寄存器可用
于第一模式中,且N位寄存器长度可用于第二模式中,且M和N可为不同整数。例如,处理器
102可为64位处理器(例如,64?#25442;?#20110;ARM的处理器),第一模式可为32位用户模式,且第二模
式可为64位内核模式。因此,由于M=32且N=64,M小于N。例如,可检查程序状态寄存器(例
如,SPSR)决定处理器为操作在N位指令模式还是M位指令模式以决定是否将发生从“USR”处
理器模式到“SVC”处理器模式的模式切换。然而,此仅用于说明目的,并不意在现在本发明。
实际上,本发明提出的切换处理方法可采用能检查是否操作系统模式将从短位模式切换至
长位模式的?#25105;?#26041;法。

当操作系统模式从第一模式(例如32位用户模式)切换至第二模式(例如64位内核
模式)、运行在处理器(例如64位处理器)102上的程序代码(例如,模式切换处理程序)PROG
可仅将存储在寄存器(例如处理器102内的寄存器REG0-REGn)中的寄存器数据的一部分保
存至存储装置103中以作为保存的寄存器数据集合DATAREG。

对于后述的几个例子,假设使用图3中所示的通用目的寄存器X0-X30。然而,此仅
用于说明目的,并非意在限制本发明。实际上,根据实际设计考量,寄存器的数目可调整。例
如,提出的具有较少不必要寄存器数据存取的处理模式切换的方法可运用于通用目的寄存
器X0-X40,及/或通用目的寄存器X0-X15的下半部分可以短位模式被存取。

在第一寄存器数据保存机制中,运行在处理器(例如64位处理器)102上的程序代
码(例如,模式切换处理程序)PROG可仅将存储在寄存器REG0-REGn中的寄存器数据的一部
分保存至存储装置106中?#28304;?#24314;保存的寄存器数据集合DATAREG,其中,存储在寄存器REG0-
REGn的每个中的寄存器数据的剩余部分不保存在存储装置106中。例如,该寄存器数据的该
部分可存储在图4中所示寄存器的下半部分(lower-half part)P2,该寄存器数据的剩余部
分可存储在图4中所示寄存器的上半部分P1,其中,寄存器的下半部分P2允许用于第一模式
(例如用户模式)和第二模式(例如内核模式)的每个之中,且寄存器的该上半部分P1允许用
于该第二模式(例如用户模式)中,但不允许用于该第一模式(例如内核模式)中。

图5为第一寄存器数据保存机制的示例示意图。假设寄存器REG0-REGn可包括图3
中所示的通用目的寄存器X0-X30。因此,仅通用目的寄存器X0-X30的下半部?#31181;?#23384;储的该
部分寄存器数据D0_P2-D30_P2可保存在存储装置106中。相较于传统模式切换处理方法的保
存所有通用目的寄存器X0-X30的全部寄存器数据,本发明提出的仅保存所有通用目的寄存
器X0-X30的部分寄存器数据的模式切换处理方法对存储装置106需要更少的数据存取。应
注意,仅通用目的寄存器X0-X14的下半部分可包括第一模式(例如用户模式)的有效寄存器
数据。

在第二寄存器数据保存机制中,运行在处理器(例如64位处理器)102上的程序代
码(例如,模式切换处理程序)PROG可仅将存储在处理器102的寄存器REG0-REGn的一部?#31181;?br />存储的多个寄存器数据保存至存储装置106中?#28304;?#24314;保存的寄存器数据集合DATAREG,其中,
存储在寄存器REG0-REGn的剩余部?#31181;?#30340;多个寄存器数据不保存在存储装置106中。例如,
该寄存器REG0-REGn的该部分可允许用于第一模式(例如用户模式)和第二模式(例如内核
模式)的每个之中,且寄存器REG0-REGn的该剩余部分不可允许用于该第二模式(例如用户
模式)中,但不允许用于该第一模式(例如内核模式)中。

图6为第二寄存器数据保存机制的示例示意图。假设寄存器REG0-REGn可包括图3
中所示的64位通用目的寄存器X0-X30。因此,仅一些通用目的寄存器X0-X14中的寄存器数
据,包括通用目的寄存器X0-X14的上半部?#31181;?#30340;部分寄存器数据D0_P1-D14_P1和通用目的
寄存器X0-X14的下半部?#31181;?#30340;部分寄存器数据D0_P2-D14_P2可被保存在存储装置106中。相
较于传统模式切换处理方法的保存所有通用目的寄存器X0-X30的全部寄存器数据,本发明
提出的仅保存部分通用目的寄存器X0-X14的全部寄存器数据的模式切换处理方法对存储
装置106需要更少的数据存取。应注意,通用目的寄存器X0-X14的仅下半部分可包括第一模
式(例如用户模式)的有效寄存器数据。

在第三寄存器数据保存机制中,运行在处理器(例如64位处理器)102上的程序代
码(例如,模式切换处理程序)PROG可仅将存储在处理器102的寄存器REG0-REGn的一部分的
每个中存储的一部分寄存器数据保存至存储装置106中?#28304;?#24314;保存的寄存器数据集合
DATAREG。换言之,可将第三寄存器数据保存机制看作具有第一寄存器数据保存机制和第二
寄存器数据保存机制的技术特征。

图7为第三寄存器数据保存机制的示例示意图。假设寄存器REG0-REGn可包括图3
中所示的64位通用目的寄存器X0-X30。因此,仅一些通用目的寄存器X0-X14的下半部?#31181;?br />的部分寄存器数据D0_P2-D14_P2可被保存在存储装置106中。相较于传统模式切换处理方法
的保存所有通用目的寄存器X0-X30的全部寄存器数据,本发明提出的仅保存部分通用目的
寄存器X0-X14的部分寄存器数据的模式切换处理方法对存储装置106需要更少的数据存
取。应注意,仅通用目的寄存器X0-X14的下半部分可包括第一模式(例如用户模式)的有效
寄存器数据。

如果由于第二模式(例如内核模式)的退出,使操作系统模式从第二模式(例如内
核模式)切换至第一模式(例如用户模式),运行在处理器102上的程序代码PROG可将存储装
置106中保存的寄存器数据集合DATAREG恢复至处理器102以用于恢复第一模式(例如用户模
式)中32位应用的指令执行。因此,当操作系统模式从第二模式(例如内核模式)切换至第一
模式(例如用户模式)时,运行在处理器(例如64位处理器)102上的程序代码PROG可更执行
恢复操作。例如,可检查程序状态寄存器(例如,SPSR)以决定处理器为操作在N位指令模式
还是M位指令模式以决定是否将发生从“USR”处理器模式到“SVC”处理器模式的模式切换。
然而,此仅用于说明目的,并不意在现在本发明。实际上,本发明提出的切换处理方法可采
用能检查是否操作系统模式将从短位模式切换至长位模式的?#25105;?#26041;法。

当操作系统模式从第二模式(例如内核模式)切换至第一模式(例如用户模式)、运
行在处理器(例如64位处理器)102上的程序代码(例如,模式切换处理程序)PROG可将存储
装置106中的保存的寄存器数据集合恢复至多个寄存器(例如,处理器102内的寄存器REG0-
REGn)的存储空间的仅一部分。

在第一寄存器数据恢复机制中,运行在处理器(例如64位处理器)102上的程序代
码(例如,模式切换处理程序)PROG可将保存的寄存器数据集合DATAREG(可根据第一示例寄
存器数据存取机制进行保存)中包括的寄存器数据恢复至处理器102的多个寄存器REG0-
REGn中每个寄存器的仅一部分,其中,保存的寄存器数据集合DATAREG(可根据第一示例寄存
器数据存取机制进行保存)中包括的寄存器数据不?#25442;?#22797;至处理器102的多个寄存器REG0-
REGn中每个寄存器的剩余部分。例如,如图4所示,该寄存器的该部分可为该寄存器的下半
部分P2,且如图4所示该寄存器的该剩余部分可为该寄存器的上半部分P1,其中,寄存器的下
半部分P2允许用于第一模式(例如用户模式)和第二模式(例如内核模式)的每个之中,且寄
存器的该上半部分P1允许用于该第二模式(例如内核模式)中,但不允许用于该第一模式
(例如用户模式)中。

图8为第一寄存器数据恢复机制的示例示意图。假设寄存器REG0-REGn可包括图3
中所示的64位通用目的寄存器X0-X30。因此,该保存的寄存器数据集合DATAREG中包括的寄
存器数据D0_P2-D30_P2可?#25442;?#22797;至图3中所示通用目的寄存器X0-X30的仅下半部分。相较于
传统模式切换处理方法的恢复所有通用目的寄存器X0-X30的全部寄存器数据,本发明提出
的仅恢复所有通用目的寄存器X0-X30的部分寄存器数据的模式切换处理方法对存储装置
106需要更少的数据存取。应注意,仅通用目的寄存器X0-X14的下半部分可在第一模式(例
如用户模式)中进行存取。

在第二寄存器数据恢复机制中,运行在处理器(例如64位处理器)102上的程序代
码(例如,模式切换处理程序)PROG可将保存的寄存器数据集合DATAREG(可根据第二示例寄
存器数据存取机制进行保存)中包括的寄存器数据恢复至处理器102的多个寄存器REG0-
REGn中的一部分,其中,保存的寄存器数据集合DATAREG(可根据第二示例寄存器数据存取机
制进行保存)中包括的寄存器数据不?#25442;?#22797;至处理器102的多个寄存器REG0-REGn中的剩余
部分。例如,该寄存器REG0-REGn的该部分可允许用于第一模式(例如用户模式)和第二模式
(例如内核模式)的每个之中,且寄存器的该剩余部分可允许用于该第二模式(例如内核模
式)中,但不允许用于该第一模式(例如用户模式)中。

图9为第二寄存器数据恢复机制的示例示意图。假设寄存器REG0-REGn可包括图3
中所示的64位通用目的寄存器X0-X30。因此,该保存的寄存器数据集合DATAREG中包括的寄
存器数据D0_P1-D14_P1和D0_P2-D14_P2可?#25442;?#22797;至仅部分通用目的寄存器X0-X14。相较于
传统模式切换处理方法的恢复所有通用目的寄存器X0-X30的全部寄存器数据,本发明提出
的仅恢复部分通用目的寄存器X0-X14的全部寄存器数据的模式切换处理方法对存储装置
106需要更少的数据存取。应注意,仅通用目的寄存器X0-X14的下半部分可在第一模式(例
如用户模式)中进行存取。

在第三寄存器数据恢复机制中,运行在处理器(例如64位处理器)102上的程序代
码(例如,模式切换处理程序)PROG可将保存的寄存器数据集合DATAREG(可根据第三示例寄
存器数据存取机制进行保存)中包括的寄存器数据恢复至处理器102的寄存器REG0-REGn中
每个寄存器的一部分。换言之,可将第三寄存器数据恢复机制可被看作组?#31995;?#19968;寄存器数
据恢复机制和第二寄存器数据恢复机制的技术特征。

图10为第三寄存器数据恢复机制的示例示意图。假设寄存器REG0-REGn可包括图3
中所示的64位通用目的寄存器X0-X30。因此,该保存的寄存器数据集合DATAREG中包括的寄
存器数据D0_P1-D14_P1可仅?#25442;?#22797;至部分通用目的寄存器X0-X14的下半部分。相较于传统
模式切换处理方法的恢复所有通用目的寄存器X0-X30的全部寄存器数据,本发明提出的仅
恢复部分通用目的寄存器X0-X14的部分寄存器数据的模式切换处理方法对存储装置106需
要更少的数据存取。应注意,仅通用目的寄存器X0-X14的下半部分可在第一模式(例如用户
模式)中进行存取。

当采用其中一种前述的寄存器数据保存机制和其中一种前述的寄存器数据恢复
机制时,可避免部分或全部的寄存器存取从而减少将寄存器数据写入至存储装置106和从
存储装置106读取寄存器数据所需的时间。图11和图12为将本发明提出的模式切换处理方
法运用至基于ARM计算机系统的示例示意图。64?#25442;?#20110;ARM处理器可支持四个异常级别
(exception level)EL0、EL1、EL2及EL3,其中,异常级别EL3可为具有最多异常特权的最高
异常级别。例如,用户模式可归类在异常级别EL0中,且监视模式可归类在异常级别EL1中。
当操作系统模式切换操作在32位用户模式和64位内核模式之间发生时,使用上述的第三示
例寄存器数据保存机制和第三示例寄存器数据恢复机制可跳过64位寄存器的上半部分且
跳过冗余的64位寄存器,从而仅保存和恢复64?#25442;?#20110;ARM处理器的寄存器的必要寄存器数
据。通过此方式,可实?#21482;?#20110;ARM计算机系统的快速模式切换。

图13为根据本发明一个实施例的模式切换处理方法的流程图。该模式切换处理方
法可由图1中所示的处理系统100所采用。多个步骤并不要求以图13中所示的确切顺序执
行。此外,?#25442;?#22810;个步骤可从图13中所示流程省略或添加进图13中所示流程。该模式切换处
理方法可简略概况如下。

步骤1302:是否操作系统模式从第一模式(例如使用M位寄存器长度的用户模式)
切换至第二模式(例如使用N位寄存器长度的内核模式,其中N>M)?如果是,进行步骤1304;
否则,进行步骤1302以等待操作系统模式从短位模式切换至长位模式。

步骤1304:将存储在寄存器中的寄存器数据的仅一部分保存至存储装置中,以使
保存的寄存器数据在该存储装置中为可用的。

步骤1306:是否操作系统模式从第二模式(例如使用N位寄存器长度的内核模式)
切换至第一模式(例如使用M位寄存器长度的内核模式,其中M<N)?如果是,进行步骤1308;
否则,进行步骤1306以等待操作系统模式从长位模式切换至短位模式。

步骤1308:将存储装置中的保存的寄存器数据集合恢复至多个寄存器的存储空间
的仅一部分。

在阅读上述段落后,本领域技术人员可理解图13中所示的每个步骤的?#38468;冢?#20026;简
洁,更详?#35813;?#36848;在此省略。

在上述实施例中,处理器102可为64位处理器(例如64?#25442;?#20110;ARM处理器),第一模
式可为M位操作系统模式(例如32位用户模式),且第二模式可为N位操作系统模式(例如64
位内核模式)。然而,此仅用于说明目的,并非意在限制本发明。实际上,本发明提出的模式
切换处理方法可运用至短位模式和高位模式之间的?#25105;?#27169;式切换以避免模式切换的保存
阶段和恢复阶段期间存储装置中的一些或全部不必要数据存取。

本领域技术人员在保存本发明精神的前提下可对装置及方法做若干修改和变更。
相应地,上述揭露应只以后附权利要求的范围和限定为准。

关于本文
本文标题:具有较少不必要寄存器数据存取的模式切换处理方法及相关非临时机器可读介质.pdf
链接地址:http://www.pqiex.tw/p-6091775.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 大神棋牌 福彩3d和值走势图近500期 2010年排列三走势图 甘肃11选5开奖结果手机版 爱玩棋牌手机版 国际股票指数国际股票指数 彩票号码预测软件 北京pk10是国家彩票吗 865捕鱼棋牌游戏平台 17大乐透75期开奖号码