《一种高性能微处理器寄存器及其内存地址弹性保护方法.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 。