[发明专利]一种微处理器内部寄存器堆的设计和访问方法无效
申请号: | 200810116924.2 | 申请日: | 2008-07-21 |
公开(公告)号: | CN101324837A | 公开(公告)日: | 2008-12-17 |
发明(设计)人: | 刘勇;谢劲松;张吉豫;陈钟 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京市商泰律师事务所 | 代理人: | 毛燕生 |
地址: | 1008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 微处理器 内部 寄存器 设计 访问 方法 | ||
技术领域
本发明为一种微处理器内部寄存器堆的设计和访问方法,属于微处理器设计技术,具体涉及微处理器中寄存器堆的设计、编址和访问等技术方法,目的是在不增加寄存器数量的基础上,充分利用有限的寄存器资源,提高程序的性能。
背景技术
寄存器是微处理器内部的高性能部件,它的存储性能大约为一级缓存(Cache)的二到三倍,是内存存储性能的几十倍到上百倍,由此可见,充分利用寄存器进行程序设计对提高程序的运行性能至关重要。通常将程序员可见的寄存器称为体系结构寄存器,由于各种因素的制约,体系结构寄存器的数量非常有限(一般为32个),因此往往需要将一些变量临时保存到一级缓存乃至二级缓存中,这就会影响到程序的运行性能。微处理器寄存器堆是所有寄存器的集合,包括体系结构寄存器和一些其它的物理寄存器。微处理器寄存器的宽度一般为8的倍数,例如在32位处理器中,寄存器的宽度为32位;在64位处理器中,寄存器的宽度为64位。
绝大部分精简指令集计算机(Reduced Instruction Set Computer:RISC)的微处理器不提供对部分寄存器的访问,而X86和X64系列微处理器也只能提供对部分寄存器非常有限的访问(例如AH/AL,AX分别表示8位,16位子寄存器),其目的则是为了使之能与更第一级的微处理器和指令集兼容。X86提供的部分寄存器设计和访问方式有以下几点不足:其一,适合于这种X86微处理器上的一条指令的一个操作数一次只能访问一个部分寄存器;其二,并不是所有X86微处理器上的寄存器都具有部分寄存器,只有少量寄存器具有部分寄存器;其三,目前对这些部分寄存器的访问方式还不完善,只能直接访问低位部分寄存器,例如EAX寄存器只提供了对AX的直接访问,需要使用额外的指令(例如移位指令)才能完成对高位的访问。
在程序设计方面,经常需要对8位、16位、32位、64位等不同长度的数据进行混合处理,对于32位或者64位处理器来说,由于8位部分寄存器的数量非常有限,常常需要用32位或64位长度的寄存器来存储8位或16位的数据,由于每次访问只能以整个寄存器为单位进行访问或者计算,造成资源上的极大浪费,使得本来就非常宝贵的寄存器资源更显得捉襟见肘。
发明内容
提高存储性能和效率是现代微处理器最重要的设计准则之一。为充分利用有限的寄存器结构,减少访问和计算带来的浪费,采用本发明方法可以将物理寄存器或者体系结构寄存器设计成矩阵式的寄存器堆。
本发明提供一种微处理器内部寄存器堆的设计,该设计与现有寄存器的访问和计算模式兼容,通过将原有的寄存器在逻辑上进行矩阵式的编址,能够较大程度地提高寄存器堆的利用效率,从而减少对缓存的访问,进而提高微处理器的存储和计算性能。
本发明解决其技术问题所采用的技术方案是:本发明将物理寄存器或者体系结构寄存器设计成矩阵式的寄存器堆,并引入新的指令同时对多个子寄存器进行读、写及各种逻辑运算。
一种微处理器寄存器堆的设计和访问方法,其包括:
寄存器堆结构的矩阵化设计步骤,所述微处理器寄存器堆中的n个寄存器中的每个寄存器根据处理器数据通路的宽度划分成m个等长的子寄存器,并为每个所述子寄存器用一个唯一的名字命名,形成n×m矩阵式寄存器堆结构;寄存器堆访问的矩阵化设计步骤,根据所述每个寄存器的相应名称进行寄存器堆的数据访问,并根据所述数据通路的要求,规定同时访问的目的和源子寄存器的数目,通过增加新的指令来访问矩阵化的寄存器堆;寄存器堆计算的矩阵化设计步骤,通过增加新的指令以新的寄存器名字进行计算;通过增加新的指令,同时对多个子寄存器进行读、写及各种逻辑运算,其中,当所述微处理器寄存器堆中的寄存器是64位寄存器时,m=8,在所述寄存器堆访问的矩阵化设计步骤中,同时访问任意8个所述子寄存器;当所述微处理器寄存器堆中的寄存器是32位寄存器时,m=4,在所述寄存器堆访问的矩阵化设计步骤中,同时访问任意4个所述子寄存器。
本发明的有益效果:本发明通过将寄存器堆按照矩阵化方式设计,在大大提高寄存器的利用率的同时,还可以充分利用现有的数据通路,并与现有的寄存器访问模式兼容,因为现有的寄存器只是矩阵化寄存器的一部分,现有软件不需要做任何修改,就可以在新的处理器上运行。根据本发明,在不增加寄存器数量的基础上,提高对寄存器堆访问的灵活性和高效性。
附图说明
图1是根据本发明所设计的寄存器矩阵阵列示意图;
图2是根据本发明的普通的寄存器堆示意图;
图3是根据本发明进行矩阵化设计的寄存器堆的示意图,每个寄存器分成4个子寄存器的例子。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810116924.2/2.html,转载请声明来源钻瓜专利网。