本发明专利技术涉及一种微处理器中寄存器堆的设计和访问方法。该方法包括:假设原有的寄存器堆中共有N个寄存器组成,将这N个寄存器中的每个寄存器划分成等长的M个子寄存器,则这N个寄存器形成一个N*M个子寄存器矩阵,该子寄存器矩阵中的每个子寄存器都有自己相应的子寄存器名,通过新增指令来访问这个矩阵中的任意M个子寄存器。利用本发明专利技术的设计方法可以在不增加现有寄存器数量的基础上,通过逻辑上的扩展,提高寄存器堆的利用率。该设计及访问方法能够兼容现有的寄存器堆的数据通路和访问方式。
【技术实现步骤摘要】
本专利技术为,属于微处理器设 计技术,具体涉及微处理器中寄存器堆的设计、编址和访问等技术方法,目的 是在不增加寄存器数量的基础上,充分利用有限的寄存器资源,提高程序的性 能。
技术介绍
寄存器是微处理器内部的高性能部件,它的存储性能大约为一级缓存(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个等长的子寄存器,并 为每个所述子寄存器用一个唯一的名字命名,形成nXm矩阵式寄存器堆结构。所述寄存器访问的矩阵化设计步骤是指,是指在不增加原有的寄存器数量 的情况下,只是在逻辑上将原有的每个寄存器划分成等长的子寄存器,并使每 个子寄存器都有自己相应的名字,根据所述每个寄存器的相应名称进行寄存器 堆的数据访问。其中,所述寄存器堆的数据访问步骤进一步包括可以根据数 据通路的要求,来规定可以同时访问的目的和源子寄存器的数目;可以通过增 加新的指令来访问矩阵化的寄存器堆。所述寄存器计算的矩阵化设计步骤是指,可以通过增加新的指令以新的寄存器名字进行计算;通过增加新的指令,同时对多个子寄存器进行读、写及各 种逻辑运算。本专利技术的有益效果本专利技术通过将寄存器堆按照矩阵化方式设计,在大大提 高寄存器的利用率的同时,还可以充分利用现有的数据通路,并与现有的寄存 器访问模式兼容,因为现有的寄存器只是矩阵化寄存器的一部分,现有软件不 需要做任何修改,就可以在新的处理器上运行。根据本专利技术,在不增加寄存器 数量的基础上,提高对寄存器堆访问的灵活性和高效性。 附图说明图1是根据本专利技术所设计的寄存器矩阵阵列示意图; 图2是根据本专利技术的普通的寄存器堆示意图;图3是根据本专利技术进行矩阵化设计的寄存器堆的示意图,每个寄存器分成4 个子寄存器的例子。下面结合附图和实施例对本专利技术进一步说明。具体实施方式实施例l如图3所示,提供了一种微处理器寄存器堆的矩阵化设计及访问方 法。它将图2所示的微处理器寄存器堆中的每个寄存器(假设共n个)划分成m个 等长的子寄存器,图中m取值为4,每个子寄存器都有自己的名字,形成nXm(此 实施例中m二4)矩阵式寄存器堆结构。实施例2引入新的指令,同时对多个子寄存器进行读、写及各种逻辑运算。 如图1所示,举例说明如何将4个32位寄存器进行矩阵化设在32位处理器中,寄存器堆包括4个32位的寄存器。可以将每个寄存 器分为8比特一组,每8个比特的部分寄存器按照矩阵的方式进行命名,可从 中任意选取4个进行访问,图1就是4个寄存器矩阵化后的示意图,称为寄存 器矩阵。如果想将R0.3, R1.2, R2.1, R3.0的内容复制到RO.O, Rl.l, R2.2, R3.3,则新指令可以写成如下形式move $R0.0—RU—R2.2—R3.3 $R0.3—R1.2—R2.1—R3.0这种想法也可以很容易的推广到其它指令上,例如add指令 add $R2. 0—R3. 1—R0. 2_R1. 3 $R0. 0—Rl. 1_R2. 2_R3. 3 $R0, 3—Rl. 2—R2. 1_R3. 0 实施例3在物理实现方面,目前一般处理器釆用多端口寄存器堆,每增加 一些端口要付出较大代价。例如实施例2所建议的指令需要同时访问可能多达12 个寄存器(8个源/4个目标),所以可以对该指令进行流水线特殊处理以提高性 能。实施例4寄存器堆矩阵化设计与访问通常要求更多的位数来进行编码,变 长指令系统的计算机可以直接利用,定长指令系统的计算机可以通过超长指令 字、指令拼接扩展等方式进行利用。权利要求1.一种微处理器寄存器堆的设计和访问方法,其特征在于包括寄存器堆结构的矩阵化设计步骤;寄存器堆访问的矩阵化设计步骤;寄存器堆计算的矩阵化设计步骤。2. 根据权利要求l所述的一种微处理器寄存器堆的设计和访问方法,其特 征还在于所述寄存器堆结构的矩阵化设计步骤是指,微处理器寄存器堆中的 每个寄存器(假设共n个)根据处理器数据通路的宽度划分成m个等长的子寄存 器,并为每个所述子寄存器用一个唯一的名字命名,形成nXm矩阵式寄存器堆 结构。3. 根据权利要求l所述的一种微处理器寄存器堆的设计和访问方法,其特 征还在于所述寄存器访问的矩阵化设计步骤是指,在不增加原有的寄存器数 量的情况下,只是在逻辑上将原有的每个寄存器划分成等长的子寄存器,并使 每个子寄存器都有自己相应的名字,根据所述每个寄存器的相应名称进行寄存 本文档来自技高网...
【技术保护点】
一种微处理器寄存器堆的设计和访问方法,其特征在于包括:寄存器堆结构的矩阵化设计步骤;寄存器堆访问的矩阵化设计步骤;寄存器堆计算的矩阵化设计步骤。
【技术特征摘要】
【专利技术属性】
技术研发人员:刘勇,谢劲松,张吉豫,陈钟,
申请(专利权)人:北京大学,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。