存取多个寄存器其中之一目标寄存器的方法及其相关装置制造方法及图纸

技术编号:2915445 阅读:313 留言:0更新日期:2012-04-11 18:40
用以存取多个寄存器中之一目标寄存器的数据存取方法,包含:接收一指令,指令包含一寄存器索引区域;以及映射寄存器索引区域至该目标寄存器以存取目标寄存器。亦公开了对应该方法的数据存取装置。

【技术实现步骤摘要】

本专利技术有关于存取多个寄存器其中之一目标寄存器的方法,特别有关于利用映射的方式(mapping)通过一特定寄存器索引以存取多个寄存器其中一目标寄存器。
技术介绍
通常以处理器为基础的电脑会通过一指令执行预定的操作以及功能,指令的大小通常为32位,因此32位的指令通常亦称为一字码(word code)。如图1所示,指令100包含一op区域、一rs区域、一rt区域、一rd区域、一shamt区域以及一funct区域。如本领域技术人员所熟知,op区域为一操作码、rs区域代表一操作来源的一第一寄存器、rt区域代表一操作来源的一第二寄存器、rd区域代表存储操作结果的一寄存器、shamt区域代表迁移(shift)总量、而funct代表一功能码。然而,指令的大小并不限定于32位,可为其他大小如16位等,指令区域的划分亦可有所不同。图2表示公知技术中具有多个寄存器的寄存器文件,其用以存储欲被操作的数据,如此数据不需要再从存储器被读出,因此可以增加操作速度。如图2所示,寄存器文件200包含多个寄存器201、203、205、207以及209,其中每一寄存器都包含0至K-1的寄存器索引。在寄存器文件中的寄存器数量为K。图1中的指令的rs、rt以及rd区域为寄存器索引,用以存取对应每一寄存器号码索引的寄存器文件中的寄存器。指令的rs和rt区域指示数据自两寄存器中被读出,且执行被指令的op和funct区域所定义的操作。当操作完成时,指令的rd区域指示结果数据被写入至一特定寄存器,使得结果数据可以通过另一个寄存器文件读取操作而被随后的指令使用。由于详细的操作已被本领域技术人员所熟知,故在此不再赘述。为了能够利用一指令存取一寄存器文件中的所有K个寄存器,一寄存器索引区域须被log2K个位所编码。举例来说,对具有32个寄存器的寄存器文件而言,需要5位的寄存器索引区域(因为log232=5)。因此,为了在一指-->令中包含3个寄存器索引区域(2个为来源数据,1个是结果数据),则需要3*log2K位。对具有32个寄存器的寄存器文件来说,需要15个位。为了具有较好的效能,现行的32位指令处理器大多具有至少32寄存器的寄存器文件。而且为了较低的存储器成本,大多个的32位指令处理器在其指令组中都具有16位指令的格式,以降低程序的大小。然而,较大数量的寄存器以及减少的指令大小会对彼此造成问题。虽然32位指令具有足够的空间15位给三个5位寄存器索引区域使用(图1中所述的rs区域、rt区域以及rd区域),16位指令则无法将15位给三个5位寄存器索引区域使用而只利用一位编码两种功能。为了将足够的功能编码进16位指令使其有足够的功能,被编码的寄存器索引区域的数目须被降低(至2或1),且寄存器索引区域的位数目亦须被降低(至4位或3位)。若欲使用3位和4位的寄存器索引区域,因为索引的大小并不足以存取全部的32个寄存器,32个寄存器仅有一部份可被存取。若被3位或4位索引区域所存取的寄存器并未被好好的决定或控制,16位指令的使用会大为受限,亦无法达到使用16位指令以降低程序存储器大小的目的。因此,需要新颖的专利技术以解决上述问题。
技术实现思路
本专利技术的一目的为提供一种数据存取方法,用以存取多个寄存器的一目标寄存器,其可使用一N位寄存器索引区域以存取具有2M个寄存器的一寄存器文件,此寄存器文件对应M位寄存器索引,且N小于M。本专利技术的一目的为提供一种数据存取装置,用以存取多个寄存器的一目标寄存器,其可使用一N位寄存器索引区域以存取具有2M个寄存器的一寄存器文件,此寄存器文件对应M位寄存器索引,且N小于M。本专利技术的一实施例公开了一种用以存取多个寄存器中之一目标寄存器的数据存取方法,包含:接收一指令,该指令包含一N位寄存器索引区域;以及映射寄存器索引区域至M位的目标寄存器以存取目标寄存器。映射N位寄存器索引区域至M位的目标寄存器的存取索引的步骤可包含:定义该多个寄存器的M位存取索引以及N位的寄存器索引区域之间的至少2(M-N)映射关系,使得所有寄存器可被最小映射关系的组合所存取;并根据寄存器索引区域以及被选择的映射关系存取特定寄存器的目标寄存器。-->本专利技术亦公开了当N==3、N==4以及M==5时的实施例。而且,映射关系可由软件使用需求所定义以增加16位指令的应用性并减少映射关系的改变。本专利技术的实施例亦公开了一种数据存取装置,其对应至上述的方法,包含:一寄存器文件,包含多个寄存器;一指令解码器,用以接收一指令并提取该指令中的该寄存器索引区域;一映射控制单元,用以编程一特定映射关系;以及一映射电路,耦接至指令解码器、寄存器文件以及映射控制单元,用以映射N位寄存器索引区域至M位的寄存器存取索引以存取寄存器。根据前述方法以及装置,被寄存器文件中的M位寄存器存取索引所存取的寄存器可被具有较小N位索引区域的指令所存取。因此可增加16位指令的使用,以降低程序的大小。附图说明图1表示公知技术中指令的区域。图2表示公知技术中具有多个寄存器的寄存器文件。图3a表示根据本专利技术的较佳实施例的用以存取一目标寄存器的方法的流程图。图3b表示图3a所示的方法的变化型。图4表示根据本专利技术的另一较佳实施例的用以存取一目标寄存器的数据存取装置的方块图。图5a表示4位以及3位寄存器索引区域的映射控制单元的较佳实施例的详细结构。图5b表示根据本专利技术的数据存取装置的映射控制单元的较佳实施例的方块图。图6表示一4位寄存器索引区域、一3位寄存器索引区域以及对应于5位索引的具有32寄存器的寄存器文件之间的映射关系。图7表示一描述在软件协定中,被呼叫者保留(callee-saved)寄存器的使用以及其意义的软件代码的其中一例。图8表示一描述在软件协定中,呼叫者保留(caller-saved)寄存器的使用以及其意义的软件代码的其中一例。主要元件符号说明200 寄存器文件-->201-209,407-413 寄存器400 数据存取装置401 指令解码器403 映射电路405 寄存器文件415 映射控制单元具体实施方式图3a表示根据本专利技术的较佳实施例的用以存取一目标寄存器的方法的流程图。图3b表示根据本专利技术的另一较佳实施例的用以存取一目标寄存器的方法的流程图。如图3a所示,该方法包含:步骤301:定义N位寄存器索引区域以及被M位存取索引所指引的K个寄存器之间的2(M-N)映射关系(mapping relation),使得每一K寄存器具有至少一被定义的关系。并指派0到2(M-N)-1其中一个代码给每一映射关系以控制步骤305中的操作。步骤303:判断现今的映射关系是否需要为了下一个指令处理而被改变。若需要改变,到步骤305;若不需要,到步骤307。步骤305:在控制处理期间根据一新的代码值选择一预先定义的新映射关系,到步骤307。步骤307:接收包含N位寄存器索引区域的一指令。步骤309:将N位寄存器索引区域映射至具有M位的目标寄存器以存取目标寄存器。在图3b中,除了步骤307被移到步骤303之前外,所有的步骤都和图3a的步骤相同。在这两方法中,通过选择适当的映射关系,可使被M位存取索引所指引的K个寄存器被N位寄存器索引区域所存取,其中N小于M且2N<K<=2M。-->根据本专利技术的一实施例,寄存器区域为本文档来自技高网
...

【技术保护点】
一种用以存取多个寄存器中之一目标寄存器的数据存取方法,包含: (a)接收一指令,该指令包含一寄存器索引区域;以及 (b)映射该寄存器索引区域至该目标寄存器以存取该目标寄存器。

【技术特征摘要】
1.一种用以存取多个寄存器中之一目标寄存器的数据存取方法,包含:(a)接收一指令,该指令包含一寄存器索引区域;以及(b)映射该寄存器索引区域至该目标寄存器以存取该目标寄存器。2.如权利要求1所述的数据存取方法,其中该多个寄存器中的每一个可被一M位存取索引所存取,该指令的寄存器索引区域为一N位寄存器区域,且N小于M。3.如权利要求2所述的数据存取方法,还包含:(a1)定义该多个寄存器的M位存取索引以及N位的寄存器索引区域之间的至少2(M-N)映射关系;以及(a2)从定义的映射关系中选择一映射关系;其中该步骤(b)映射该寄存器索引区域至该目标寄存器以存取该目标寄存器,且该多个寄存器中的每一个可通过该寄存器索引区域以及该多个被定义的映射关系被存取。4.如权利要求1所述的数据存取方法,其中该寄存器索引区域为一4位寄存器区域,该寄存器的数目为32并需要5位的存取索引。5.如权利要求1所述的数据存取方法,其中该寄存器索引区域为一3位寄存器区域,该寄存器的数目为32并需要5位的存取索引。6.如权利要求1所述的数据存取方法,还包含:(a1)定义该多个寄存器的该存取索引以及一寄存器索引区域之间的至少一映射关系;(a2)从定义的映射关系中选择一映射关系;其中该步骤(b)映射该寄存器索引区域至该目标寄存器以存取该目标寄存器,且该多个寄存器中的每一个可通过该寄存器索引区域以及该多个被定义的映射关系被存取。7.如权利要求6所述的数据存取方法,其中该寄存器区域为一4位寄存器区域且该步骤(a1)包含:定义该4位寄存器索引区域以及特定寄存器的该存取索引之间的两映射关系,包含:(1)映射一第一关系,该第一关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;以及(2)映射一第二关系,该第二关系包含一呼叫者保留寄存器组,一被呼叫者保留寄存器组,以及一特定寄存器组。8.如权利要求6所述的数据存取方法,其中该寄存器区域为一3位寄存器区域且该步骤(a1)包含:定义该3位寄存器索引区域以及特定寄存器的该存取索引之间的四映射关系,包含:(1)映射一第一关系,该第一关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;(2)映射一第二关系,该第二关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;(3)映射一第三关系,该第三关系...

【专利技术属性】
技术研发人员:张传华苏泓萌曾仁志
申请(专利权)人:晶心科技股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1