一种高性能微处理器寄存器及其内存地址弹性保护方法.pdf

上传人:zhu****69 文档编号:4757427 上传时间:2018-11-07 格式:PDF 页数:11 大小:486.88KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310072972.7

申请日:

2013.03.07

公开号:

CN103150521A

公开日:

2013.06.12

当前法律状态:

授权

有效性:

有权

法律详情:

专利权的转移IPC(主分类):G06F 21/71登记生效日:20180419变更事项:专利权人变更前权利人:周海林变更后权利人:成都常明信息技术有限公司变更事项:地址变更前权利人:610072 四川省巴中市巴州区茶坝镇新寺梁村531号变更后权利人:610000 四川省成都市中国(四川)自由贸易试验区成都高新区锦城大道666号4栋20层6号|||授权|||实质审查的生效IPC(主分类):G06F 21/71申请日:20130307|||公开

IPC分类号:

G06F21/71(2013.01)I; G06F9/48; G06F9/30

主分类号:

G06F21/71

申请人:

周海林

发明人:

周海林

地址:

610072 四川省巴中市巴州区茶坝镇新寺梁村531号

优先权:

专利代理机构:

成都金英专利代理事务所(普通合伙) 51218

代理人:

袁英

PDF下载: PDF下载
内容摘要

本发明公开了一种高性能微处理器寄存器及其内存地址弹性保护方法,方法包括:赋值37、38、39号寄存器,分配内存区间;检查14号寄存器的内容是否在39号中页值之内;检查16号寄存器的页码是否在0号到37号页码范围中;检查18号寄存器的页码是否在37、38号范围中;检查20号寄存器的内容是否在38、39号中页值之内;处理器把异常号送到异常中断寄存器中,当前处理器的指令页是18号,指令指针是17号,处理器通过执行操作系统的异常中断处理程序。本发明在不改变指令集的前提下可轻易升级,采用浅流水线设计和精简流水线架构,能够更好地减少每条指令的时间,同时支持多发多射,提高处理器运算速度,有效地分配内存空间,有效防止应用程序的非法访问。

权利要求书

权利要求书一种高性能微处理器寄存器,其特征在于:它包括:
永远为0的0号寄存器;
用作累加器的1~8号寄存器;
用作乘法时的高位,除法指令的商的9号寄存器;
用作乘法时的低位,除法指令的模的10号寄存器;
用作返回用户模式时的指针、页的11、12号寄存器;
用作处理器在用户模式时的指令指针、页的13、14号寄存器;
用作处理器在特权模式时的指令指针、页的15、16号寄存器;
用作处理器在中断模式时的指令指针、页的17、18号寄存器,其页只有处理器在ken mode和int mode下才被数据移动指令赋值,如果处理器在soft mode和urs mode,则不能赋值并产生异常;
用作软件模式的指令指针、页的19、20号寄存器,其页只有处理器在ken mode、int mode和soft mode下才被数据移动指令赋值,如果处理器在urs mode,则不能赋值并产生异常;
用作堆栈指针、页的21、22号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的23、24号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的25、26号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的27、28号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的29、30号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作状态寄存器的31号寄存器;
用作页目录寄存器的32号寄存器,保存虚拟地址转换式的页目录低20位有效,高12位强制为0,否则在以后的产品中产生不可预知的错误异常;
用作定时器timer的33~36号寄存器,当timer使能后,处理器每经过一个时钟寄存器的值加1,溢出时产生异常;
分别用作kenend、intend和softend寄存器的37~39号寄存器,在计算机的内存不大于4GB,在页大小为4kb时低20位有效,高12位必须为0,否则产生指令错误异常;
用作异常中断寄存器的40号寄存器,15位为1开启中断,反之不开启;16位为1开启异常,反之不开启;
用作页异常线性地址的41号寄存器;
用作多任务模式下的页开始、结束位置的42、43号寄存器,当操作系统开启多任务保护模式,当用户页的值在42、43号寄存器值之外时,处理器产生出界异常;
用作虚拟模式下的页开始、结束位置的44、45号寄存器,0号版本的内核暂时保留;
用作tlb入口的46~50号寄存器,该寄存器的21,22,23位的值是000,001,010,011,100,101,110,111,其中,011,100,101,110保留,供处理器架构升级用,000作为0级cache的地址使用,001作为1级cache的地址使用,010作为2级cache的地址使用,111作为处理器的全局地址,供io输入输出块使用,高9位是处理器的处理核心号码,供处理器升级成多核心时使用,在操作系统为单核心时强制为0,低20位是cache的块号;
用作内部dma的51~53号寄存器,51号寄存器为地址的开始地址,52号寄存器为地址结束处;
53号寄存器保留;
54号寄存器保留;
用作分页模式下的局部地址转换的奇54、55号寄存器;
57~60号寄存器分别作为config0、config1、config2、config3,其中,对于config0,25号寄存器低4位分别使能0,1,2,3号时钟,第4位为1开启分页机制,为0时开启分页码机制,第5位多任务保护模式,操作系统检查当前usr mode的指令页码的范围是否在42、43号寄存器之内,不在其内,则产生异常;其它位保留,config1、config2、config3分别保留;
分别用作trp、trpp寄存器的61、62号寄存器,在任务切换时,61、62号寄存器的值无需保存,其每行的数据长度为32位,在任务切换时把寄存器的值放在里面,执行该任务时将数据取出;
63号寄存器cpu属性如下:
处理器核心数     9bit【31,23】
处理器当前核心号 9bit【22,14】
处理器的位数     3bit【2,0】   
其它位保留;
其中,32~63号寄存器的值只有运行在ker mode,int mode和soft mode才能被赋值。
一种高性能微处理器寄存器的内存地址弹性保护方法,其特征在于,它包括以下步骤:
S1:操作系统通过赋值37、38、39号寄存器,分配处理器在各种模式下的内存区间;
S2:处理器检查14号寄存器的内容是否在39号寄存器中页值之内,如果在其范围之内,则产生异常,如果不在其范围之内,则不产生异常;
S3:处理器检查16号寄存器的页码是否在0号到37号寄存器页码范围中,如果在其范围之内,则不产生异常,如果不在其范围之内,则产生异常;
S4:处理器检查18号寄存器的页码是否在37号寄存器和38号寄存器范围中,如果在其范围之内,则不产生异常,如果不在其范围之内,则产生异常;
S5:处理器检查20号寄存器的内容是否在38号寄存器和39号寄存器中页值之内,如果在其范围之外,则产生异常;
S6:处理器把异常号送到异常中断寄存器中,并且进入int mode,当前处理器的指令页是18寄存器,指令指针是17号寄存器,处理器通过执行操作系统的异常中断处理程序,从而防止应用程序的非法访问。

说明书

说明书一种高性能微处理器寄存器及其内存地址弹性保护方法
技术领域
本发明涉及一种高性能微处理器寄存器及其内存地址弹性保护方法。
背景技术
处理器是当代计算机工业的核心。处理器大致分为两类:精简指令集处理器和复杂指令集处理器。在高性能处理平台中,精简指令集处理器被广泛使用,如:PAD,高性能服务器,桌面平台,嵌入式平台等;然而,复杂指令集处理器的使用却相对较少,一般只用于低性能服务器和桌面平台等。其主要原因是:精简指令集处理器指令长度不变,指令格式少,寄存器数目多,指令数目少,更能使处理器处理流水化。具有设计简单、效率高、容易测试、成品率高等特点。因此,如何研发出具有完全自主核心知识产权的高性能精简指令集处理器,已成为计算机工业设计研究中的重要课题。
目前,计算机操作系统的内核主要放在内存的低地址区间中(只有极少数的处理器把内核放在内存的高地址),接着放操作系统处理异常中断的程序,再接着放为应用程序提供服务的程序,应用程序放在最后。为了防止应用程序的非法访问,目前,主流的处理器主要用以下方法实现:
(1)把计算机的内存固定分成一定长度的段,应用程序和操作系统内核放在规定的内存区间内,以防止用户程序的非法访问;
(2)处理器通过检查程序的长度,特权级和读写执行等属性以防止用户程序的非法访问;
(3)操作系统通过检查程序的长度,特权级和读写执行等属性以防止用户程序的非法访问。
现有的计算机内存地址的保护方法存在以下不足:
1)当计算机的内存很小(如PDD、嵌入式平台中)时,如果固定长度的内存很大,供应用程序使用的内存就会很小,会造成宝贵的内存资源浪费,造成内存没有被合理的使用;
2)当计算机的内存很大(如在高性能的服务器中、大型计算机中),并且其操作系统内核也很大时,会造成操作系统内核不能完全被处理器内核保护的情况;
3)如果应用程序利用操作系统的漏洞,篡改程序属性(在分段操作系统,分页操作系统中分别更改段属性,页属性等),使程序得到非法权限。
发明内容
本发明的一个目的在于克服现有技术的不足,提供一种高性能微处理器,在不改变指令集的前提下可轻易升级,采用浅流水线设计和精简流水线架构,静态分支预测,动态分支预测,能够更好地减少每条指令执行的时间,同时支持多发多射,减少处理器从内存里查找数据所用的时间;
本发明的另一个目的在于提供一种高性能微处理器寄存器的内存地址弹性保护方法,克服传统处理器通过软件保护和固定分段保护来防止应用程序非法访问的不足,可有效防止应用程序的非法访问。
本发明的目的是通过以下技术方案来实现的:一种高性能微处理器寄存器,它包括:
永远为0的0号寄存器;
用作累加器的1~8号寄存器;
用作乘法时的高位,除法指令的商的9号寄存器;
用作乘法时的低位,除法指令的模的10号寄存器;
用作返回用户模式时的指针、页的11、12号寄存器;
用作处理器在用户模式时的指令指针、页的13、14号寄存器;
用作处理器在特权模式时的指令指针、页的15、16号寄存器;
用作处理器在中断模式时的指令指针、页的17、18号寄存器,其页只有处理器在ken mode和int mode下才被数据移动指令赋值,如果处理器在soft mode和urs mode,则不能赋值并产生异常;
用作软件模式的指令指针、页的19、20号寄存器,其页只有处理器在ken mode、int mode和soft mode下才被数据移动指令赋值,如果处理器在urs mode,则不能赋值并产生异常;
用作堆栈指针、页的21、22号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的23、24号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的25、26号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的27、28号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的29、30号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作状态寄存器的31号寄存器;
用作页目录寄存器的32号寄存器,保存虚拟地址转换式的页目录低20位有效,高12位强制为0,否则在以后的产品中产生不可预知的错误异常;
用作定时器timer的33~36号寄存器,当timer使能后,处理器每经过一个时钟寄存器的值加1,溢出时产生异常;
分别用作kenend、intend和softend寄存器的37~39号寄存器,在计算机的内存不大于4GB,在页大小为4kb时低20位有效,高12位必须为0,否则产生指令错误异常;
用作异常中断寄存器的40号寄存器,15位为1开启中断,反之不开启;16位为1开启异常,反之不开启;
用作页异常线性地址的41号寄存器;
用作多任务模式下的页开始、结束位置的42、43号寄存器,当操作系统开启多任务保护模式,当用户页的值在42、43号寄存器值之外时,处理器产生出界异常;
用作虚拟模式下的页开始、结束位置的44、45号寄存器,0号版本的内核暂时保留;
用作tlb入口的46~50号寄存器,该寄存器的21,22,23位的值是000,001,010,011,100,101,110,111,其中,011,100,101,110保留,供处理器架构升级用,000作为0级cache的地址使用,001作为1级cache的地址使用,010作为2级cache的地址使用,111作为处理器的全局地址,供io输入输出块使用,高9位是处理器的处理核心号码,供处理器升级成多核心时使用,在操作系统为单核心时强制为0,低20位是cache的块号;
用作内部dma的51~53号寄存器,51号寄存器为地址的开始地址,52号寄存器为地址结束处(都是块号);
53号寄存器保留;
54号寄存器保留;
用作分页模式下的局部地址转换的奇54、55号寄存器;
57~60号寄存器分别作为config0、config1、config2、config3,其中,对于config0,25号寄存器低4位分别使能0,1,2,3号时钟,第4位为1开启分页机制,为0时开启分页码机制,第5位多任务保护模式,操作系统检查当前usr mode的指令页码的范围是否在42、43号寄存器之内,不在其内,则产生异常;其它位保留,config1、config2、config3分别保留;
分别用作trp、trpp寄存器的61、62号寄存器,在任务切换时,61、62号寄存器的值无需保存,其每行的数据长度为32位,在任务切换时把寄存器的值放在里面,执行该任务时将数据取出;
63号寄存器cpu属性如下:
处理器核心数     9bit【31,23】
处理器当前核心号 9bit【22,14】
处理器的位数     3bit【2,0】   
其它位保留;
其中,32~63号寄存器的值只有运行在ker mode,int mode和soft mode才能被赋值。
一种高性能微处理器寄存器的内存地址弹性保护方法,它包括以下步骤:
S1:操作系统通过赋值37、38、39号寄存器,分配处理器在各种模式下的内存区间;
S2:处理器检查14号寄存器的内容是否在39号寄存器中页值之内,如果在其范围之内,则产生异常,如果不在其范围之内,则不产生异常;
S3:处理器检查16号寄存器的页码是否在0号到37号寄存器页码范围中,如果在其范围之内,则不产生异常,如果不在其范围之内,则产生异常;
S4:处理器检查18号寄存器的页码是否在37号寄存器和38号寄存器范围中,如果在其范围之内,则不产生异常,如果不在其范围之内,则产生异常;
S5:处理器检查20号寄存器的内容是否在38号寄存器和39号寄存器中页值之内,如果在其范围之外,则产生异常;
S6:处理器把异常号送到异常中断寄存器中,并且进入int mode,当前处理器的指令页是18寄存器,指令指针是17号寄存器,处理器通过执行操作系统的异常中断处理程序,从而防止应用程序的非法访问。 
本发明的有益效果是:
1)在不改变指令集的前提下可轻易升级,采用浅流水线设计和精简流水线架构,静态分支预测,能够更好地减少每条指令的时间,同时支持多发多射;
2)指令集采用目前主流的精简指令,现大约有60条,本指令集最大可以支持1024条,在处理器的位超过1024位时,才需要升级;
3)在任务切换时,61、62号寄存器的值不需要保存,其每行数据的长度为32位,在任务切换时把寄存器的值放在里面,执行该任务时把数据从里面取出,可减少处理器从内存里查找数据所用的时间;
4)操作系统通过数据移动指令赋值37至39号寄存器,能更有效地分配计算机内存空间;
5)从计算机硬件层面保护了系统资源,克服了传统处理器通过软件保护和固定分段保护来防止应用程序非法访问的不足,可有效防止应用程序的非法访问。
附图说明
图1为内存地址弹性保护方法流程图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
一种高性能微处理器寄存器,其特征在于:它包括:
用于接电源最低电位的永远为0的0号寄存器;
用作累加器的1~8号寄存器;
用作乘法时的高位,除法指令的商的9号寄存器;
用作乘法时的低位,除法指令的模的10号寄存器;
用作返回用户模式时的指针、页的11、12号寄存器;
用作处理器在用户模式时的指令指针、页的13、14号寄存器;
用作处理器在特权模式时的指令指针、页的15、16号寄存器;
用作处理器在中断模式时的指令指针、页的17、18号寄存器,其页只有处理器在ker mode和int mode下才被数据移动指令赋值,如果处理器在soft mode和urs mode,则不能赋值并产生异常;
用作软件模式的指令指针、页的19、20号寄存器,其页只有处理器在ker mode、int mode和soft mode下才被数据移动指令赋值,如果处理器在urs mode,则不能赋值并产生异常;
用作堆栈指针、页的21、22号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的23、24号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的25、26号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的27、28号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作页寄存器的指针、页的29、30号寄存器,当给其控制的0级cache赋值时,检查其特权级,当特权级值小于等于它才被赋值,否则产生异常;
用作状态寄存器的31号寄存器;
用作页目录寄存器的32号寄存器,保存虚拟地址转换式的页目录低20位有效,高12位强制为0,否则在以后的产品中产生不可预知的错误异常;
用作定时器(timer)的33~36号寄存器,当timer使能后,处理器每经过一个时钟寄存器的值加1,溢出时产生异常;
分别用作kenend、intend和softend寄存器的37~39号寄存器,在计算机的内存不大于4GB,在页大小为4kb时低20位有效,高12位必须为0,否则产生指令错误异常;
用作异常中断寄存器的40号寄存器,15位为1开启中断,反之不开启;16位为1开启异常,反之不开启;
用作页异常线性地址的41号寄存器;
用作多任务模式下的页开始、结束位置的42、43号寄存器,当操作系统开启了多任务保护模式,当用户页的值在42、43号寄存器值之外时,处理器产生出界异常;
用作虚拟模式下的页开始、结束位置的44、45号寄存器,0号版本的内核暂时保留;
用作tlb入口的46~50号寄存器,该寄存器的21,22,23位的值是000,001,010,011,100,101,110,111,其中,011,100,101,110保留,供处理器架构升级用,000作为0级cache的地址使用,001作为1级cache的地址使用,010作为2级cache的地址使用,111作为处理器的全局地址,供io输入输出块使用,高9位是处理器的处理核心号码,供处理器升级成多核心时使用,在操作系统为单核心时强制为0,低20位是cache的块号;
用作内部dma的51~53号寄存器,51号寄存器为地址的开始地址,52号寄存器为地址结束处(都是块号);
53号寄存器保留;
54号寄存器保留;
用作分页模式下的局部地址转换的奇54、55号寄存器;
57~60号寄存器分别作为config0、config1、config2、config3,其中,对于config0,25号寄存器低4位分别使能0,1,2,3号时钟,第4位为1开启分页机制,为0时开启分页码机制,第5位多任务保护模式,操作系统检查当前usr mode的指令页码的范围是不是在42、43号寄存器之内,不在其内,则产生异常;其它位保留,config1、config2、config3分别保留;
分别用作trp、trpp寄存器的61、62号寄存器,在任务切换时,61、62号寄存器的值无需保存,其每行的数据长度为32位,在任务切换时把寄存器的值放在里面,执行该任务时将数据取出;
63号寄存器cpu属性如下:
处理器核心数     9bit【31,23】
处理器当前核心号 9bit【22,14】
处理器的位数     3bit【2,0】   
其它位保留;
其中,32~63号寄存器的值只有运行在特权模式下才能被赋值。37~39号寄存器只有在ken mode下才能被赋值,其他mode赋值产生异常。
指令集手册:
mov 指令
mov,其为数据移动指令,该指令可以分成两类:立即数移动指令;寄存器间移动指令。
(1)立即数移动指令可以分成有符号立即数移动指令,无符号立即数移动指令:
A:有符号立即数移动指令
       源操作数         目的操作数(该处是目的寄存器)
movsb  立即数        ,    %n       8位有符号移动指令
movsw  立即数        ,    %n       16位有符号移动指令
movsd  立即数        ,    %n       32位有符号移动指令
movsl  立即数        ,     %n       64位有符号移动指令(在32位处理器中保留)
B:无符号立即数移动指令
       源操作数         目的操作数(该处是目的寄存器)
movb  立即数         ,    %n       8位有符号移动指令
movw  立即数         ,    %n       16位有符号移动指令
movd  立即数         ,    %n       32位有符号移动指令
movl  立即数         ,    %n       64位有符号移动指令(在32位处理器中保留)
 C: 寄存器间移动指令:
mov %n ,%m(把源操作数所在的寄存器%n,送到目的操作数所在寄存器%m)
(2)特殊指令
指令                      注释
bck         源操作数为11号寄存器,目的操作数为12号寄存器,返回用户模式,在跳转指令时,把用户模式的指针,页放入对应的寄存器。
usr         无源目的操作数,处理器进入用户模式。
ken         无源目的操作数,处理器进入核心模式。
int         无源目的操作数,处理器进入中断模式。
saft        无源目的操作数,处理器进入软件模式。
pop         从堆栈页中弹出数据指令,弹出,压人的数据长度为处理器的位数。
push        把寄存器中的数据压人堆栈中,弹出,压人的数据长度为处理器的位数。
set         置位命令,把目的操作数的(源操作数位)置1。
clr         清位命令,把目的操作数的(源操作数位)置0。
tst         测试命令,测试目的操作数的(源操作数位)位,结果放入(31号寄存器)状态寄存器的27位。
m32         32位无符号数乘法指令,结果放到,低位放到10号寄存器,高位放到9号寄存器中。
sm32        32位有符号数乘法指令,结果放到,低位放到10号寄存器,高位放到9号寄存器中。           
d32         32位无符号数除法指令,结果放到,结果放到9号寄存器,模放到10号寄存器中。
Sd32       32位有符号数乘法指令,结果放到,结果放到9号寄存器,模放到10号寄存器中。
rst         rest(只有处理器处在ken mode,才能执行,否则产生异常)。
如图1所示,一种高性能微处理器寄存器的内存地址弹性保护方法,它包括以下步骤:
S1:操作系统通过赋值37、38、39号寄存器,分配处理器在各种模式下的内存区间;
S2:处理器检查14号寄存器的内容是否在39号寄存器中页值之内,如果在其范围之内,则产生异常,如果不在其范围之内,则不产生异常;
S3:处理器检查16号寄存器的页码是否在0号到37号寄存器页码范围中,如果在其范围之内,则不产生异常,如果不在其范围之内,则产生异常;
S4:处理器检查18号寄存器的页码是否在37号寄存器和38号寄存器范围中,如果在其范围之内,则不产生异常,如果不在其范围之内,则产生异常;
S5:处理器检查20号寄存器的内容是否在38号寄存器和39号寄存器中页值之内,如果在其范围之外,则产生异常;
S6:处理器把异常号送到异常中断寄存器(40号寄存器)中,并且进入int mode,当前处理器的指令页是18寄存器,指令指针是17号寄存器,处理器通过执行操作系统的异常中断处理程序,从而防止应用程序的非法访问。

一种高性能微处理器寄存器及其内存地址弹性保护方法.pdf_第1页
第1页 / 共11页
一种高性能微处理器寄存器及其内存地址弹性保护方法.pdf_第2页
第2页 / 共11页
一种高性能微处理器寄存器及其内存地址弹性保护方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种高性能微处理器寄存器及其内存地址弹性保护方法.pdf》由会员分享,可在线阅读,更多相关《一种高性能微处理器寄存器及其内存地址弹性保护方法.pdf(11页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103150521 A (43)申请公布日 2013.06.12 CN 103150521 A *CN103150521A* (21)申请号 201310072972.7 (22)申请日 2013.03.07 G06F 21/71(2013.01) G06F 9/48(2006.01) G06F 9/30(2006.01) (71)申请人 周海林 地址 610072 四川省巴中市巴州区茶坝镇新 寺梁村 531 号 (72)发明人 周海林 (74)专利代理机构 成都金英专利代理事务所 ( 普通合伙 ) 51218 代理人 袁英 (54) 发明名称 一种高性能微处理器寄存。

2、器及其内存地址弹 性保护方法 (57) 摘要 本发明公开了一种高性能微处理器寄存器 及其内存地址弹性保护方法, 方法包括 : 赋值 37、 38、 39号寄存器, 分配内存区间 ; 检查14号寄存器 的内容是否在 39 号中页值之内 ; 检查 16 号寄存 器的页码是否在0号到37号页码范围中 ; 检查18 号寄存器的页码是否在 37、 38 号范围中 ; 检查 20 号寄存器的内容是否在 38、 39 号中页值之内 ; 处 理器把异常号送到异常中断寄存器中, 当前处理 器的指令页是 18 号, 指令指针是 17 号, 处理器通 过执行操作系统的异常中断处理程序。本发明在 不改变指令集的前提下。

3、可轻易升级, 采用浅流水 线设计和精简流水线架构, 能够更好地减少每条 指令的时间, 同时支持多发多射, 提高处理器运算 速度, 有效地分配内存空间, 有效防止应用程序的 非法访问。 (51)Int.Cl. 权利要求书 2 页 说明书 7 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书7页 附图1页 (10)申请公布号 CN 103150521 A CN 103150521 A *CN103150521A* 1/2 页 2 1. 一种高性能微处理器寄存器, 其特征在于 : 它包括 : 永远为 0 的 0 号寄存器 ; 用作累加器的 1 8 。

4、号寄存器 ; 用作乘法时的高位, 除法指令的商的 9 号寄存器 ; 用作乘法时的低位, 除法指令的模的 10 号寄存器 ; 用作返回用户模式时的指针、 页的 11、 12 号寄存器 ; 用作处理器在用户模式时的指令指针、 页的 13、 14 号寄存器 ; 用作处理器在特权模式时的指令指针、 页的 15、 16 号寄存器 ; 用作处理器在中断模式时的指令指针、 页的 17、 18 号寄存器, 其页只有处理器在 ken mode 和 int mode 下才被数据移动指令赋值, 如果处理器在 soft mode 和 urs mode, 则不能 赋值并产生异常 ; 用作软件模式的指令指针、 页的 19。

5、、 20 号寄存器, 其页只有处理器在 ken mode、 int mode 和 soft mode 下才被数据移动指令赋值, 如果处理器在 urs mode, 则不能赋值并产生 异常 ; 用作堆栈指针、 页的 21、 22 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 23、 24 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 25、 26 号寄存器, 当给其控制的 0 级 cache。

6、 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 27、 28 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 29、 30 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作状态寄存器的 31 号寄存器 ; 用作页目录寄存器的 32 号寄存器, 保存虚拟地址转换式的页目录低 20 位有效, 高 12 位强制为 0, 否则在以后的产品中产生不可预知的错误异常。

7、 ; 用作定时器 timer 的 33 36 号寄存器, 当 timer 使能后, 处理器每经过一个时钟寄存 器的值加 1, 溢出时产生异常 ; 分别用作 kenend、 intend 和 softend 寄存器的 37 39 号寄存器, 在计算机的内存不 大于 4GB, 在页大小为 4kb 时低 20 位有效, 高 12 位必须为 0, 否则产生指令错误异常 ; 用作异常中断寄存器的 40 号寄存器, 15 位为 1 开启中断, 反之不开启 ; 16 位为 1 开启 异常, 反之不开启 ; 用作页异常线性地址的 41 号寄存器 ; 用作多任务模式下的页开始、 结束位置的 42、 43 号寄存。

8、器, 当操作系统开启多任务保 护模式, 当用户页的值在 42、 43 号寄存器值之外时, 处理器产生出界异常 ; 用作虚拟模式下的页开始、 结束位置的 44、 45 号寄存器, 0 号版本的内核暂时保留 ; 用作tlb入口的4650号寄存器, 该寄存器的21, 22, 23位的值是000, 001, 010, 011, 100, 101, 110, 111, 其中, 011, 100, 101, 110 保留, 供处理器架构升级用, 000 作为 0 级 cache 权 利 要 求 书 CN 103150521 A 2 2/2 页 3 的地址使用, 001 作为 1 级 cache 的地址使用。

9、, 010 作为 2 级 cache 的地址使用, 111 作为处 理器的全局地址, 供io输入输出块使用, 高9位是处理器的处理核心号码, 供处理器升级成 多核心时使用, 在操作系统为单核心时强制为 0, 低 20 位是 cache 的块号 ; 用作内部 dma 的 51 53 号寄存器, 51 号寄存器为地址的开始地址, 52 号寄存器为地 址结束处 ; 53 号寄存器保留 ; 54 号寄存器保留 ; 用作分页模式下的局部地址转换的奇 54、 55 号寄存器 ; 57 60 号寄存器分别作为 config0、 config1、 config2、 config3, 其中, 对于 config。

10、0, 25 号寄存器低 4 位分别使能 0, 1, 2, 3 号时钟, 第 4 位为 1 开启分页机制, 为 0 时开启分页码 机制, 第5位多任务保护模式, 操作系统检查当前usr mode的指令页码的范围是否在42、 43 号寄存器之内, 不在其内, 则产生异常 ; 其它位保留, config1、 config2、 config3 分别保留 ; 分别用作 trp、 trpp 寄存器的 61、 62 号寄存器, 在任务切换时, 61、 62 号寄存器的值无 需保存, 其每行的数据长度为 32 位, 在任务切换时把寄存器的值放在里面, 执行该任务时 将数据取出 ; 63 号寄存器 cpu 属性。

11、如下 : 处理器核心数 9bit【31, 23】 处理器当前核心号 9bit【22, 14】 处理器的位数 3bit【2, 0】 其它位保留 ; 其中, 32 63 号寄存器的值只有运行在 ker mode, int mode 和 soft mode 才能被赋 值。 2. 一种高性能微处理器寄存器的内存地址弹性保护方法, 其特征在于, 它包括以下步 骤 : S1 : 操作系统通过赋值 37、 38、 39 号寄存器, 分配处理器在各种模式下的内存区间 ; S2 : 处理器检查 14 号寄存器的内容是否在 39 号寄存器中页值之内, 如果在其范围之 内, 则产生异常, 如果不在其范围之内, 则不。

12、产生异常 ; S3 : 处理器检查16号寄存器的页码是否在0号到37号寄存器页码范围中, 如果在其范 围之内, 则不产生异常, 如果不在其范围之内, 则产生异常 ; S4 : 处理器检查 18 号寄存器的页码是否在 37 号寄存器和 38 号寄存器范围中, 如果在 其范围之内, 则不产生异常, 如果不在其范围之内, 则产生异常 ; S5 : 处理器检查 20 号寄存器的内容是否在 38 号寄存器和 39 号寄存器中页值之内, 如 果在其范围之外, 则产生异常 ; S6 : 处理器把异常号送到异常中断寄存器中, 并且进入int mode, 当前处理器的指令页 是 18 寄存器, 指令指针是 17。

13、 号寄存器, 处理器通过执行操作系统的异常中断处理程序, 从 而防止应用程序的非法访问。 权 利 要 求 书 CN 103150521 A 3 1/7 页 4 一种高性能微处理器寄存器及其内存地址弹性保护方法 技术领域 0001 本发明涉及一种高性能微处理器寄存器及其内存地址弹性保护方法。 背景技术 0002 处理器是当代计算机工业的核心。处理器大致分为两类 : 精简指令集处理器和复 杂指令集处理器。在高性能处理平台中, 精简指令集处理器被广泛使用, 如 : PAD, 高性能服 务器, 桌面平台, 嵌入式平台等 ; 然而, 复杂指令集处理器的使用却相对较少, 一般只用于低 性能服务器和桌面平台。

14、等。其主要原因是 : 精简指令集处理器指令长度不变, 指令格式少, 寄存器数目多, 指令数目少, 更能使处理器处理流水化。具有设计简单、 效率高、 容易测试、 成品率高等特点。因此, 如何研发出具有完全自主核心知识产权的高性能精简指令集处理 器, 已成为计算机工业设计研究中的重要课题。 0003 目前, 计算机操作系统的内核主要放在内存的低地址区间中 (只有极少数的处理 器把内核放在内存的高地址) , 接着放操作系统处理异常中断的程序, 再接着放为应用程序 提供服务的程序, 应用程序放在最后。为了防止应用程序的非法访问, 目前, 主流的处理器 主要用以下方法实现 : (1) 把计算机的内存固定。

15、分成一定长度的段, 应用程序和操作系统内核放在规定的内 存区间内, 以防止用户程序的非法访问 ; (2) 处理器通过检查程序的长度, 特权级和读写执行等属性以防止用户程序的非法访 问 ; (3) 操作系统通过检查程序的长度, 特权级和读写执行等属性以防止用户程序的非法 访问。 0004 现有的计算机内存地址的保护方法存在以下不足 : 1) 当计算机的内存很小 (如 PDD、 嵌入式平台中) 时, 如果固定长度的内存很大, 供应用 程序使用的内存就会很小, 会造成宝贵的内存资源浪费, 造成内存没有被合理的使用 ; 2) 当计算机的内存很大 (如在高性能的服务器中、 大型计算机中) , 并且其操作。

16、系统内 核也很大时, 会造成操作系统内核不能完全被处理器内核保护的情况 ; 3) 如果应用程序利用操作系统的漏洞, 篡改程序属性 (在分段操作系统, 分页操作系统 中分别更改段属性, 页属性等) , 使程序得到非法权限。 发明内容 0005 本发明的一个目的在于克服现有技术的不足, 提供一种高性能微处理器, 在不改 变指令集的前提下可轻易升级, 采用浅流水线设计和精简流水线架构, 静态分支预测, 动态 分支预测, 能够更好地减少每条指令执行的时间, 同时支持多发多射, 减少处理器从内存里 查找数据所用的时间 ; 本发明的另一个目的在于提供一种高性能微处理器寄存器的内存地址弹性保护方法, 克服传。

17、统处理器通过软件保护和固定分段保护来防止应用程序非法访问的不足, 可有效防 说 明 书 CN 103150521 A 4 2/7 页 5 止应用程序的非法访问。 0006 本发明的目的是通过以下技术方案来实现的 : 一种高性能微处理器寄存器, 它包 括 : 永远为 0 的 0 号寄存器 ; 用作累加器的 1 8 号寄存器 ; 用作乘法时的高位, 除法指令的商的 9 号寄存器 ; 用作乘法时的低位, 除法指令的模的 10 号寄存器 ; 用作返回用户模式时的指针、 页的 11、 12 号寄存器 ; 用作处理器在用户模式时的指令指针、 页的 13、 14 号寄存器 ; 用作处理器在特权模式时的指令指。

18、针、 页的 15、 16 号寄存器 ; 用作处理器在中断模式时的指令指针、 页的 17、 18 号寄存器, 其页只有处理器在 ken mode 和 int mode 下才被数据移动指令赋值, 如果处理器在 soft mode 和 urs mode, 则不能 赋值并产生异常 ; 用作软件模式的指令指针、 页的 19、 20 号寄存器, 其页只有处理器在 ken mode、 int mode 和 soft mode 下才被数据移动指令赋值, 如果处理器在 urs mode, 则不能赋值并产生 异常 ; 用作堆栈指针、 页的 21、 22 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查。

19、其特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 23、 24 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 25、 26 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 27、 28 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 29、 30。

20、 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作状态寄存器的 31 号寄存器 ; 用作页目录寄存器的 32 号寄存器, 保存虚拟地址转换式的页目录低 20 位有效, 高 12 位强制为 0, 否则在以后的产品中产生不可预知的错误异常 ; 用作定时器 timer 的 33 36 号寄存器, 当 timer 使能后, 处理器每经过一个时钟寄存 器的值加 1, 溢出时产生异常 ; 分别用作 kenend、 intend 和 softend 寄存器的 37 39 号寄存器, 在计算机的内存不 大于 4GB, 在页大小为 。

21、4kb 时低 20 位有效, 高 12 位必须为 0, 否则产生指令错误异常 ; 用作异常中断寄存器的 40 号寄存器, 15 位为 1 开启中断, 反之不开启 ; 16 位为 1 开启 异常, 反之不开启 ; 用作页异常线性地址的 41 号寄存器 ; 用作多任务模式下的页开始、 结束位置的 42、 43 号寄存器, 当操作系统开启多任务保 护模式, 当用户页的值在 42、 43 号寄存器值之外时, 处理器产生出界异常 ; 用作虚拟模式下的页开始、 结束位置的 44、 45 号寄存器, 0 号版本的内核暂时保留 ; 说 明 书 CN 103150521 A 5 3/7 页 6 用作tlb入口的。

22、4650号寄存器, 该寄存器的21, 22, 23位的值是000, 001, 010, 011, 100, 101, 110, 111, 其中, 011, 100, 101, 110 保留, 供处理器架构升级用, 000 作为 0 级 cache 的地址使用, 001 作为 1 级 cache 的地址使用, 010 作为 2 级 cache 的地址使用, 111 作为处 理器的全局地址, 供io输入输出块使用, 高9位是处理器的处理核心号码, 供处理器升级成 多核心时使用, 在操作系统为单核心时强制为 0, 低 20 位是 cache 的块号 ; 用作内部 dma 的 51 53 号寄存器, 。

23、51 号寄存器为地址的开始地址, 52 号寄存器为地 址结束处 (都是块号) ; 53 号寄存器保留 ; 54 号寄存器保留 ; 用作分页模式下的局部地址转换的奇 54、 55 号寄存器 ; 57 60 号寄存器分别作为 config0、 config1、 config2、 config3, 其中, 对于 config0, 25 号寄存器低 4 位分别使能 0, 1, 2, 3 号时钟, 第 4 位为 1 开启分页机制, 为 0 时开启分页码 机制, 第5位多任务保护模式, 操作系统检查当前usr mode的指令页码的范围是否在42、 43 号寄存器之内, 不在其内, 则产生异常 ; 其它位保。

24、留, config1、 config2、 config3 分别保留 ; 分别用作 trp、 trpp 寄存器的 61、 62 号寄存器, 在任务切换时, 61、 62 号寄存器的值无 需保存, 其每行的数据长度为 32 位, 在任务切换时把寄存器的值放在里面, 执行该任务时 将数据取出 ; 63 号寄存器 cpu 属性如下 : 处理器核心数 9bit【31, 23】 处理器当前核心号 9bit【22, 14】 处理器的位数 3bit【2, 0】 其它位保留 ; 其中, 32 63 号寄存器的值只有运行在 ker mode, int mode 和 soft mode 才能被赋 值。 0007 一。

25、种高性能微处理器寄存器的内存地址弹性保护方法, 它包括以下步骤 : S1 : 操作系统通过赋值 37、 38、 39 号寄存器, 分配处理器在各种模式下的内存区间 ; S2 : 处理器检查 14 号寄存器的内容是否在 39 号寄存器中页值之内, 如果在其范围之 内, 则产生异常, 如果不在其范围之内, 则不产生异常 ; S3 : 处理器检查16号寄存器的页码是否在0号到37号寄存器页码范围中, 如果在其范 围之内, 则不产生异常, 如果不在其范围之内, 则产生异常 ; S4 : 处理器检查 18 号寄存器的页码是否在 37 号寄存器和 38 号寄存器范围中, 如果在 其范围之内, 则不产生异常。

26、, 如果不在其范围之内, 则产生异常 ; S5 : 处理器检查 20 号寄存器的内容是否在 38 号寄存器和 39 号寄存器中页值之内, 如 果在其范围之外, 则产生异常 ; S6 : 处理器把异常号送到异常中断寄存器中, 并且进入int mode, 当前处理器的指令页 是 18 寄存器, 指令指针是 17 号寄存器, 处理器通过执行操作系统的异常中断处理程序, 从 而防止应用程序的非法访问。 0008 本发明的有益效果是 : 1) 在不改变指令集的前提下可轻易升级, 采用浅流水线设计和精简流水线架构, 静态 说 明 书 CN 103150521 A 6 4/7 页 7 分支预测, 能够更好地。

27、减少每条指令的时间, 同时支持多发多射 ; 2) 指令集采用目前主流的精简指令, 现大约有 60 条, 本指令集最大可以支持 1024 条, 在处理器的位超过 1024 位时, 才需要升级 ; 3) 在任务切换时, 61、 62 号寄存器的值不需要保存, 其每行数据的长度为 32 位, 在任务 切换时把寄存器的值放在里面, 执行该任务时把数据从里面取出, 可减少处理器从内存里 查找数据所用的时间 ; 4) 操作系统通过数据移动指令赋值 37 至 39 号寄存器, 能更有效地分配计算机内存空 间 ; 5) 从计算机硬件层面保护了系统资源, 克服了传统处理器通过软件保护和固定分段保 护来防止应用程。

28、序非法访问的不足, 可有效防止应用程序的非法访问。 附图说明 0009 图 1 为内存地址弹性保护方法流程图。 具体实施方式 0010 下面结合附图进一步详细描述本发明的技术方案, 但本发明的保护范围不局限于 以下所述。 0011 一种高性能微处理器寄存器, 其特征在于 : 它包括 : 用于接电源最低电位的永远为 0 的 0 号寄存器 ; 用作累加器的 1 8 号寄存器 ; 用作乘法时的高位, 除法指令的商的 9 号寄存器 ; 用作乘法时的低位, 除法指令的模的 10 号寄存器 ; 用作返回用户模式时的指针、 页的 11、 12 号寄存器 ; 用作处理器在用户模式时的指令指针、 页的 13、 。

29、14 号寄存器 ; 用作处理器在特权模式时的指令指针、 页的 15、 16 号寄存器 ; 用作处理器在中断模式时的指令指针、 页的 17、 18 号寄存器, 其页只有处理器在 ker mode 和 int mode 下才被数据移动指令赋值, 如果处理器在 soft mode 和 urs mode, 则不能 赋值并产生异常 ; 用作软件模式的指令指针、 页的 19、 20 号寄存器, 其页只有处理器在 ker mode、 int mode 和 soft mode 下才被数据移动指令赋值, 如果处理器在 urs mode, 则不能赋值并产生 异常 ; 用作堆栈指针、 页的 21、 22 号寄存器,。

30、 当给其控制的 0 级 cache 赋值时, 检查其特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 23、 24 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 25、 26 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作页寄存器的指针、 页的 27、 28 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生。

31、异常 ; 说 明 书 CN 103150521 A 7 5/7 页 8 用作页寄存器的指针、 页的 29、 30 号寄存器, 当给其控制的 0 级 cache 赋值时, 检查其 特权级, 当特权级值小于等于它才被赋值, 否则产生异常 ; 用作状态寄存器的 31 号寄存器 ; 用作页目录寄存器的 32 号寄存器, 保存虚拟地址转换式的页目录低 20 位有效, 高 12 位强制为 0, 否则在以后的产品中产生不可预知的错误异常 ; 用作定时器 (timer) 的 33 36 号寄存器, 当 timer 使能后, 处理器每经过一个时钟寄 存器的值加 1, 溢出时产生异常 ; 分别用作 kenend、。

32、 intend 和 softend 寄存器的 37 39 号寄存器, 在计算机的内存不 大于 4GB, 在页大小为 4kb 时低 20 位有效, 高 12 位必须为 0, 否则产生指令错误异常 ; 用作异常中断寄存器的 40 号寄存器, 15 位为 1 开启中断, 反之不开启 ; 16 位为 1 开启 异常, 反之不开启 ; 用作页异常线性地址的 41 号寄存器 ; 用作多任务模式下的页开始、 结束位置的 42、 43 号寄存器, 当操作系统开启了多任务 保护模式, 当用户页的值在 42、 43 号寄存器值之外时, 处理器产生出界异常 ; 用作虚拟模式下的页开始、 结束位置的 44、 45 号。

33、寄存器, 0 号版本的内核暂时保留 ; 用作tlb入口的4650号寄存器, 该寄存器的21, 22, 23位的值是000, 001, 010, 011, 100, 101, 110, 111, 其中, 011, 100, 101, 110 保留, 供处理器架构升级用, 000 作为 0 级 cache 的地址使用, 001 作为 1 级 cache 的地址使用, 010 作为 2 级 cache 的地址使用, 111 作为处 理器的全局地址, 供io输入输出块使用, 高9位是处理器的处理核心号码, 供处理器升级成 多核心时使用, 在操作系统为单核心时强制为 0, 低 20 位是 cache 的。

34、块号 ; 用作内部 dma 的 51 53 号寄存器, 51 号寄存器为地址的开始地址, 52 号寄存器为地 址结束处 (都是块号) ; 53 号寄存器保留 ; 54 号寄存器保留 ; 用作分页模式下的局部地址转换的奇 54、 55 号寄存器 ; 57 60 号寄存器分别作为 config0、 config1、 config2、 config3, 其中, 对于 config0, 25 号寄存器低 4 位分别使能 0, 1, 2, 3 号时钟, 第 4 位为 1 开启分页机制, 为 0 时开启分页 码机制, 第 5 位多任务保护模式, 操作系统检查当前 usr mode 的指令页码的范围是不是在。

35、 42、 43 号寄存器之内, 不在其内, 则产生异常 ; 其它位保留, config1、 config2、 config3 分别 保留 ; 分别用作 trp、 trpp 寄存器的 61、 62 号寄存器, 在任务切换时, 61、 62 号寄存器的值无 需保存, 其每行的数据长度为 32 位, 在任务切换时把寄存器的值放在里面, 执行该任务时 将数据取出 ; 63 号寄存器 cpu 属性如下 : 处理器核心数 9bit【31, 23】 处理器当前核心号 9bit【22, 14】 处理器的位数 3bit【2, 0】 其它位保留 ; 其中, 32 63 号寄存器的值只有运行在特权模式下才能被赋值。。

36、37 39 号寄存器只 说 明 书 CN 103150521 A 8 6/7 页 9 有在 ken mode 下才能被赋值, 其他 mode 赋值产生异常。 0012 指令集手册 : mov 指令 mov, 其为数据移动指令, 该指令可以分成两类 : 立即数移动指令 ; 寄存器间移动指令。 0013 (1) 立即数移动指令可以分成有符号立即数移动指令, 无符号立即数移动指令 : A : 有符号立即数移动指令 源操作数 目的操作数 (该处是目的寄存器) movsb 立即数 , %n 8 位有符号移动指令 movsw 立即数 , %n 16 位有符号移动指令 movsd 立即数 , %n 32 位。

37、有符号移动指令 movsl 立即数 , %n 64 位有符号移动指令 (在 32 位处理器中保 留) B : 无符号立即数移动指令 源操作数 目的操作数 (该处是目的寄存器) movb 立即数 , %n 8 位有符号移动指令 movw 立即数 , %n 16 位有符号移动指令 movd 立即数 , %n 32 位有符号移动指令 movl 立即数 , %n 64位有符号移动指令 (在32位处理器中保留) C: 寄存器间移动指令 : mov %n , %m(把源操作数所在的寄存器 %n, 送到目的操作数所在寄存器 %m) (2) 特殊指令 指令 注释 bck 源操作数为 11 号寄存器, 目的操作。

38、数为 12 号寄存器, 返回用户模式, 在 跳转指令时, 把用户模式的指针, 页放入对应的寄存器。 0014 usr 无源目的操作数, 处理器进入用户模式。 0015 ken 无源目的操作数, 处理器进入核心模式。 0016 int 无源目的操作数, 处理器进入中断模式。 0017 saft 无源目的操作数, 处理器进入软件模式。 0018 pop 从堆栈页中弹出数据指令, 弹出, 压人的数据长度为处理器的位数。 0019 push 把寄存器中的数据压人堆栈中, 弹出, 压人的数据长度为处理器的 位数。 0020 set 置位命令, 把目的操作数的 (源操作数位) 置 1。 0021 clr 。

39、清位命令, 把目的操作数的 (源操作数位) 置 0。 0022 tst 测试命令, 测试目的操作数的 (源操作数位) 位, 结果放入 (31号寄存 器) 状态寄存器的 27 位。 0023 m32 32 位无符号数乘法指令, 结果放到, 低位放到 10 号寄存器, 高位放 到 9 号寄存器中。 0024 sm32 32 位有符号数乘法指令, 结果放到, 低位放到 10 号寄存器, 高位放 到 9 号寄存器中。 说 明 书 CN 103150521 A 9 7/7 页 10 d32 32位无符号数除法指令, 结果放到, 结果放到9号寄存器, 模放到10号寄 存器中。 0025 Sd32 32 位。

40、有符号数乘法指令, 结果放到, 结果放到 9 号寄存器, 模放到 10 号寄存器中。 0026 rst rest(只有处理器处在 ken mode, 才能执行, 否则产生异常) 。 0027 如图 1 所示, 一种高性能微处理器寄存器的内存地址弹性保护方法, 它包括以下 步骤 : S1 : 操作系统通过赋值 37、 38、 39 号寄存器, 分配处理器在各种模式下的内存区间 ; S2 : 处理器检查 14 号寄存器的内容是否在 39 号寄存器中页值之内, 如果在其范围之 内, 则产生异常, 如果不在其范围之内, 则不产生异常 ; S3 : 处理器检查16号寄存器的页码是否在0号到37号寄存器页。

41、码范围中, 如果在其范 围之内, 则不产生异常, 如果不在其范围之内, 则产生异常 ; S4 : 处理器检查 18 号寄存器的页码是否在 37 号寄存器和 38 号寄存器范围中, 如果在 其范围之内, 则不产生异常, 如果不在其范围之内, 则产生异常 ; S5 : 处理器检查 20 号寄存器的内容是否在 38 号寄存器和 39 号寄存器中页值之内, 如 果在其范围之外, 则产生异常 ; S6 : 处理器把异常号送到异常中断寄存器 (40 号寄存器) 中, 并且进入 int mode, 当前 处理器的指令页是18寄存器, 指令指针是17号寄存器, 处理器通过执行操作系统的异常中 断处理程序, 从而防止应用程序的非法访问。 说 明 书 CN 103150521 A 10 1/1 页 11 图 1 说 明 书 附 图 CN 103150521 A 11 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1