精简指令集计算机处理器装置及其数据处理方法制造方法及图纸

技术编号:2827764 阅读:233 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种精简指令集计算机(RISC)处理器装置及其数据处理方法。该装置包括译码器,物理寄存器堆和运算部件,以及译码器,物理寄存器堆和运算部件之间连接的数据通路,所述物理寄存器堆中的每个物理寄存器扩展为72位,整个数据通路统一扩充为72位;所述运算部件,包括扩展运算模块,用于在指令运算中,对物理寄存器堆中的72位寄存器的标志位进行修改,并根据修改的标志位进行新的指令运算。其扩大虚拟机的优化空间,达到提高虚拟机性能的目的。

【技术实现步骤摘要】

本专利技术涉及计算机处理器
,特别是涉及一种精简指令集计算机(RISC)处理器装置及其数据处理方法。
技术介绍
虚拟机是20世纪60年代IBM公司提出的概念,并且付诸实现。当时主流计算机是大型机,通过把大型机分割成多个虚拟机,利用虚拟机监视器(Virtual Machine Monitor,VMM)的分隔,多种不同应用或者多个用户可以共享这一稀缺资源。但是,随着硬件成本降低和计算能力的增强,以及多任务操作系统(OS)的出现,虚拟机监视器慢慢退出历史舞台,微型计算机和个人计算机(PC)大行其道。然而,由于虚拟机的强大和成功在于用户可以访问和利用仅仅通过指令集的组合就可以形成的功能和设备,最近几年,虚拟机监视器重新成为学术界和工业界的焦点。虚拟机监视器为现代计算机系统的真实限制提供一种虚拟解决方案,其变成一个强大的工具,这一工具会大大扩展现代计算机系统的能力。当今X86架构在很多的应用中占据了主导的地位,很多大型的服务器类的应用都是X86架构。精简指令集计算机(Reduced Instruction Set Computing,RISC)架构的微处理器为了能够广泛地运行服务类的应用,实现与X86架构的兼容就成为了必要的任务。另外,现有X86架构的计算机中,应用程序更加多样化,很多商业软件都是基于X86架构的,所以RISC微处理器要想更为广泛地运行多样化的应用,也非常需要实现对X86的兼容。MIPS作为RISC很大的一个分支,目前有很多开源的虚拟机平台,可以实现MIPS到X86平台的异构支持。在MIPS架构上用虚拟机兼容X86架构需要考虑很多方面,其中一方面就-->是X86架构中对标志寄存器(EFLAGS)标志位的使用。X86定点运算指令支持共6比特(Bit)的EFLAGS标志位运算,即很多运算指令除了产生数据值以外,还要产生标志位,转移指令把标志位作为转移条件,实现指令运算。X86中标志寄存器(EFLAGS)主要包括以下三部分内容:一、状态标志(Status Flags),包括CF(进位标志)、PF(奇偶位)、AF(辅助进位)、ZF(零标志)、SF(非负标志)和OF(溢出)共六位;二、DF(方向标志)标志,用来控制串操作指令的方向;三、其他系统标志和I/O特权域(IOPL域),这些标志包括单步模式标志、中断使能、I/O优先级等,用户程序不能修改这些标志。关于标志寄存器的第二和第三部分的内容,MIPS64中已经有相应的硬件可以实现,但对于第一部分的内容没有相应的实现。X86中还有一个16位的浮点标志寄存器,其中每两位组成一个标志(TAG),共8个标志(TAG)。每个标志(TAG)对应一个浮点寄存器的状态,00表示valid,01表示zero,10表示special,11表示empty。由于X86中的浮点寄存器以栈的方式组织,浮点标志寄存器主要用于检测浮点访问时会不会发生栈溢出例外。现有技术中,标志寄存器第一部分的内容,即状态标志(Status Flags)和浮点标志寄存器的MIPS到X86的异构实现,都没有硬件实现,而软件层次的虚拟机异构实现会产生很大的开销,对性能造成很大的影响。
技术实现思路
本专利技术所要解决的问题在于提供一种精简指令集计算机(RISC)处理器装置及其数据处理方法。其扩大虚拟机的优化空间,达到提高虚拟机性能的目的。为实现本专利技术而提供的一种RISC处理器装置,包括译码器,物理寄存器堆和运算部件,以及译码器,物理寄存器堆和运算部件之间连接的数据通路,所述物理寄存器堆中的每个物理寄存器扩展为72位,整个数据通路统一扩充为72位;所述运算部件,包括扩展运算模块,用于当处理器处于X86虚拟机工作-->模式下时,在指令运算中,对物理寄存器堆中的72位寄存器的标志位进行修改,并根据修改的标志位进行新的指令运算。所述72位的物理寄存器,包括64位的数据位部分和8位的标志位部分。所述物理寄存器堆,包括通用寄存器和浮点寄存器。所述扩展后的通用寄存器的第64到69位共6个标志位,由低到高分别表示CF位、PF位、AF位、ZF位、SF位和OF位。所述扩展后的浮点寄存器的第64位作为该浮点寄存器的TAG标志位,表示该浮点寄存器的状态,用于检测浮点访问时会不会发生栈溢出例外。所述TAG位为0,则表示浮点栈此项为空,即浮点寄存器中的数值无效;如果为1,则表示浮点寄存器中的数值有效。所述扩展运算模块,包括通用寄存器扩展运算模块,用于当处理器处于X86虚拟机工作模式下时,利用所述扩展后的通用寄存器进行运算,并把运算结果的数据部分和标志部分一起写回到经扩展后的目标通用寄存器中。所述译码器包括最新标志位指针,用于指向与最新标志位结合的通用寄存器。所述扩展运算模块,包括浮点寄存器扩展运算模块,用于当处理器处于X86虚拟机工作模式下时,利用所述扩展后的浮点寄存器进行运算,并根据运算结果改写浮点寄存器的TAG位。为实现本专利技术目的还提供一种RISC处理器装置的数据处理方法,包括下列步骤:步骤A,在设置RISC处理器的X86虚拟机工作模式时,物理寄存器堆中的通用寄存器和浮点寄存器为72位物理寄存器;步骤B,在指令运算中,对物理寄存器堆中的72位寄存器的标志位进行修改,并根据修改的标志位进行新的指令运算。所述步骤B中,对于通用寄存器而言,包括下列步骤:步骤B1,扩展后的通用寄存器进行运算时,把运算得到的结果数据部分和标志部分一起写回到目标通用寄存器;步骤B2,根据指令运算,修改最新标志位指针,译码器的最新标志位指针指向与最新标志位结合的通用寄存器。所述步骤B2之后还包括下列步骤:-->步骤B3,如果一个新指令运算需要使用标志位作为源操作数,则使用最新标志位指针指向的通用寄存器作为该指令的源操作数。所述步骤B2中,修改最新标志位指针,包括下列步骤:1)如果指令运算时需要改变最新标志位,则最新标志位指针值改变为指向该指令的目标寄存器;2)如果新指令运算时不需要改变最新标志位,但是却把最新标志位指针指向的物理寄存器作为目的操作数,则需要将原物理寄存器中的标志位的值复制到新的物理寄存器中,作为最新标志位指针指向的通用寄存器;3)如果指令修改全部标志位,则修改通用寄存器中的6个标志位,再将最新标志位指针指向新的通用寄存器;4)如果指令只修改6位标志位中的其中一位或者多位,则采用拼接的方法把多位标志位拼接在一起。所述步骤B中,对于浮点寄存器而言,包括下列步骤:步骤B1′,如果浮点运算指令使用浮点栈中的浮点寄存器进行运算时,则需要先判断TAG标志位的状态,如果TAG位为0即数据无效,则引发浮点栈溢出异常;步骤B2′,如果浮点运算指令判断TAG标志位的状态为1即有效,则正常执行运算,执行之后将目标浮点寄存器的TAG位置为1;所述步骤B2′之后还包括下列步骤:步骤B3′,使用对TAG置位的指令SETTAG使得相应的浮点栈中项有效或者无效。本专利技术的有益效果是:本专利技术的精简指令集计算机(RISC)处理器装置及其数据处理方法,在MIPS架构上对X86的标志位和浮点栈做必要的硬件支持,在RISC处理器上实现标志寄存器6比特的标志位运算以及防止浮点栈溢出,实现与X86指令集的兼容,以扩大虚拟机的优化空间,达到提高虚拟机性能的目的。附图说明图1是本专利技术本文档来自技高网
...

【技术保护点】
一种RISC处理器装置,包括译码器,物理寄存器堆和运算部件,以及译码器,物理寄存器堆和运算部件之间连接的数据通路,其特征在于,所述物理寄存器堆中的每个物理寄存器扩展为72位,整个数据通路统一扩充为72位;    所述运算部件,包括扩展运算模块,用于当处理器处于X86虚拟机工作模式下时,在指令运算中,对物理寄存器堆中的72位寄存器的标志位进行修改,并根据修改的标志位进行新的指令运算。

【技术特征摘要】
1.一种RISC处理器装置,包括译码器,物理寄存器堆和运算部件,以及译码器,物理寄存器堆和运算部件之间连接的数据通路,其特征在于,所述物理寄存器堆中的每个物理寄存器扩展为72位,整个数据通路统一扩充为72位;所述运算部件,包括扩展运算模块,用于当处理器处于X86虚拟机工作模式下时,在指令运算中,对物理寄存器堆中的72位寄存器的标志位进行修改,并根据修改的标志位进行新的指令运算。2.根据权利要求1所述的RISC处理器装置,其特征在于,所述72位的物理寄存器,包括64位的数据位部分和8位的标志位部分。3.根据权利要求2所述的RISC处理器装置,其特征在于,所述物理寄存器堆,包括通用寄存器和浮点寄存器。4.根据权利要求3所述的RISC处理器装置,其特征在于,所述扩展后的通用寄存器的第64到69位共6个标志位,由低到高分别表示CF位、PF位、AF位、ZF位、SF位和OF位。5.根据权利要求3所述的RISC处理器装置,其特征在于,所述扩展后的浮点寄存器的第64位作为该浮点寄存器的TAG标志位,表示该浮点寄存器的状态,用于检测浮点访问时会不会发生栈溢出例外。6.根据权利要求5所述的RISC处理器装置,其特征在于,所述TAG位为0,则表示浮点栈此项为空,即浮点寄存器中的数值无效;如果为1,则表示浮点寄存器中的数值有效。7.根据权利要求1所述的RISC处理器装置,其特征在于,所述扩展运算模块,包括通用寄存器扩展运算模块,用于当处理器处于X86虚拟机工作模式下时,利用所述扩展后的通用寄存器进行运算,并把运算结果的数据部分和标志部分一起写回到经扩展后的目标通用寄存器中。8.根据权利要求7所述的RISC处理器装置,其特征在于,所述译码器包括最新标志位指针,用于指向与最新标志位结合的通用寄存器。9.根据权利要求1所述的RISC处理器装置,其特征在于,所述扩展运算模块,包括浮点寄存器扩展运算模块,用于当处理器处于X86虚拟机工作模式下时,利用所述扩展后的浮点寄存器进行运算,并根据运算结果改写浮点寄存器的TAG位。10.一种RISC处理器装置的数据处理方法,其特征在于,包括下列步骤:步骤A,在设置RISC处理器的X86虚拟机工作模式时,设置物理寄存器堆中...

【专利技术属性】
技术研发人员:蔡嵩松李晓钰
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利