CN101419541B - 存取多个寄存器其中之一目标寄存器的方法及其相关装置 - Google Patents
存取多个寄存器其中之一目标寄存器的方法及其相关装置 Download PDFInfo
- Publication number
- CN101419541B CN101419541B CN2007101814308A CN200710181430A CN101419541B CN 101419541 B CN101419541 B CN 101419541B CN 2007101814308 A CN2007101814308 A CN 2007101814308A CN 200710181430 A CN200710181430 A CN 200710181430A CN 101419541 B CN101419541 B CN 101419541B
- Authority
- CN
- China
- Prior art keywords
- register
- index
- mapping
- keeps
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
用以存取多个寄存器中之一目标寄存器的数据存取方法,包含:接收一指令,指令包含一寄存器索引区域;以及映射寄存器索引区域至该目标寄存器以存取目标寄存器。亦公开了对应该方法的数据存取装置。
Description
技术领域
本发明有关于存取多个寄存器其中之一目标寄存器的方法,特别有关于利用映射的方式(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。
根据本发明的一实施例,寄存器区域为一4位寄存器索引区域且寄存器数量为32(被5位所指引)。在此例中,步骤301还包含:根据图6中所述的映射关系,定义4位寄存器索引区域和特定寄存器之间的两个(2(5-4))映射关系;且给予两映射关系代码1和代码0。
根据本发明的另一实施例,寄存器区域为一3位寄存器索引区域且寄存器的数量为32(被5位所指引)。在此例中,步骤301还包含:根据图6中所述的映射关系,定义3位寄存器索引区域和特定寄存器之间的四个(2(5-3))映射关系;且给予每一映射关系代码0、1、2或3。
须注意的是,本发明的范围并不限制于上述的步骤。举例来说,可预先设定一特定的映射关系,且寄存器仅根据此映射关系被存取。在此例中,图3a和3b图所示的定义步骤以及选择步骤可被省略。
在图6中,4-0表示4位寄存器索引区域中的第0个映射关系、4-1表示4位寄存器索引区域中的第1个映射关系、3-0表示3位寄存器索引区域中的第0个映射关系、3-1表示3位寄存器索引区域中的第1个映射关系、3-2表示3位寄存器索引区域中的第2个映射关系、3-3表示3位寄存器索引区域中的第3个映射关系。如图6所示,32个寄存器r0-r31根据所须的软件操作(software usage)被分成不同种类。如本领域技术人员所熟知,软件操作中的寄存器组包含呼叫者保留(caller-saved)寄存器、被呼叫者保留(callee-saved)寄存器以及特殊寄存器。对本发明的较佳实施例而言,寄存器a0-a5为存储功能呼叫参数(function call parameter)以及传递回传值(return value)的寄存器,亦为最常被使用的呼叫者临时保留寄存器(如图8中的描述801、805以及807)。寄存器s0-s8为被呼叫者临时保留寄存器,其通常用以存储跨越功能呼叫(across function call)所须保留的值(如图7中的描述707、709以及711)。寄存器t0-t9为呼叫者临时保留寄存器,其通常用以存储跨越功能呼叫所不须保留的值(如图8中的描述801、805以及807)。如本领域技术人员所熟知,寄存器gp,sp,lp,fp,ta,p0,p1用于特殊目的的寄存器。举例来说,寄存器fp用以存储一帧指针(frame pointer),而寄存器sp用以存储一堆栈指针(stack pointer)。
对一通常功能而为(其可为一呼叫者以及一被呼叫者),映射关系最好包含呼叫者保留和被呼叫者保留,以增加16位指令的可用性。
通过此映射规则,在4位寄存器索引区域例子中,两映射关系的较佳实 施例如下所述:
1.代码0的4位寄存器索引区域包含10呼叫者保留寄存器以及6被呼叫者保留寄存器。
2.代码1的4位寄存器索引区域包含3呼叫者保留寄存器、7被呼叫者保留寄存器以及6特别寄存器。
在3位寄存器索引区域例子中,四映射关系的较佳实施例如下所述:
1.代码0的3位寄存器索引区域包含6呼叫者保留寄存器以及2被呼叫者保留寄存器。
2.代码1的3位寄存器索引区域包含4呼叫者保留寄存器以及4被呼叫者保留寄存器。
3.代码2的3位寄存器索引区域包含5呼叫者保留寄存器以及3被呼叫者保留寄存器。
4.代码3的3位寄存器索引区域包含2呼叫者保留寄存器以及6被呼叫者保留寄存器。
须注意的是,图6所示的映射关系仅用以举例,并非用以限定本发明。
图4表示根据本发明的另一较佳实施例的用以存取一目标寄存器的数据存取装置400的方块图。如图4所示,数据存取装置400包含一指令解码器401、一映射电路403、一映射控制单元415,以及具有多个寄存器407、409、411以及413的一寄存器文件405。须注意的是,数据存取装置400为一概略的示意图,详细的连接以及结构为熟知本领域技术人员所知悉,故在此不再赘述。指令解码器401用以接收包含N位寄存器索引区域RIF的一指令INST并自指令INST提取寄存器索引区域RIF。映射电路,用以映射N位寄存器索引区域RIF至M位寄存器存取索引(RAI)以存取K个寄存器407、409、411以及413其中之一。使用于映射电路403中的映射关系被一映射控制单元415所设定以及选择。
图5a表示4位以及3位寄存器索引区域的映射控制单元的较佳实施例的详细结构。其包含4位索引模式的一位区域(位2)以及3位索引模式的两位区域(位1和0)。4位索引模式的一位区域被用以选择两个被定义的映射关系其中之一。2位索引模式的两位区域被用以选择四个被定义的映射关系其中之一。
图5b表示使用4位和3位寄存器索引区域的映射控制单元415以及映射 电路413的另一实施例的详细结构。其包含:
(1)16个5位寄存器,用以存储4位寄存器索引区域和寄存器文件的5位存取索引之间的映射关系。且其可被编程以选择3216个映射关系中其中一个,使得映射关系在控制上比较有弹性。
(2)8个5位寄存器,用以存储3位寄存器索引区域和寄存器文件的5位存取索引之间的映射关系。且其可被编程以选择328个映射关系中其中一个,使得映射关系在控制上比较有灵活性。
根据前述的方法和装置,所有寄存器文件中的被M位寄存器存取索引所指引的K个寄存器可被较小的N位寄存器索引区域所存取。因此可提高较小的指令(例如:16位指令)的可利用性,故较小的指令可被运用在程序中以减少程序的大小。再加上已公开的根据软件协定订定的3位和4位寄存器索引区域的实施例中的映射关系,更应该能增加16位指令的使用率。此外,如前所述,可预先设定一特定的映射关系,且寄存器仅根据此映射关系被存取。在此例中,因为映射关系已固定因此不须选择,故图4中所示的映射控制单元415可被省略。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所进行的等效变化与修改,皆应属本发明的涵盖范围。
Claims (10)
1.一种用以存取多个寄存器中之一目标寄存器的数据存取方法,包含:
(a1)定义多个寄存器的M位存取索引以及N位的寄存器索引区域之间的至少2(M-N)映射关系,并指派一代码给每一映射关系;
(a2)判断现今的映射关系是否需要为了下一个指令处理而被改变,如果需要改变,则根据新的代码值选择一预先定义的新的映射关系,然后执行步骤(a3),如果不需要改变,则直接执行步骤(a3);
(a3)接收一指令,该指令包含一寄存器索引区域;以及
(b)映射该寄存器索引区域至该目标寄存器以存取该目标寄存器;
其中该多个寄存器中的每一个可被一M位存取索引所存取,该指令的寄存器索引区域为一N位寄存器索引区域,且N小于M;
其中该步骤(b)中该多个寄存器中的每一个可通过该寄存器索引区域以及该多个被定义的映射关系被存取。
2.如权利要求1所述的数据存取方法,其中该寄存器索引区域为一4位寄存器索引区域,该寄存器的数目为32并需要5位的存取索引。
3.如权利要求1所述的数据存取方法,其中该寄存器索引区域为一3位寄存器索引区域,该寄存器的数目为32并需要5位的存取索引。
4.如权利要求1所述的数据存取方法,其中该寄存器索引区域为一4位寄存器索引区域且该步骤(a1)包含:
定义该4位寄存器索引区域以及特定寄存器的该存取索引之间的两映射关系,包含:
(1)映射一第一关系,该第一关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;以及
(2)映射一第二关系,该第二关系包含一呼叫者保留寄存器组,一被呼叫者保留寄存器组,以及一特定寄存器组。
5.如权利要求1所述的数据存取方法,其中该寄存器索引区域为一3位寄存器索引区域且该步骤(a1)包含:
定义该3位寄存器索引区域以及特定寄存器的该存取索引之间的四映射关系,包含:
(1)映射一第一关系,该第一关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;
(2)映射一第二关系,该第二关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;
(3)映射一第三关系,该第三关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;
(4)映射一第四关系,该第四关系包含一呼叫者保留寄存器组,以及一特定寄存器组。
6.一种数据存取装置,包含:
一寄存器文件,包含多个寄存器;
一指令解码器,用以接收具有寄存器索引区域的一指令并提取该指令中的该寄存器索引区域;以及
一映射电路,耦接至该指令解码器以及该寄存器文件,用以映射该寄存器索引区域至目标寄存器以存取该多个寄存器;
其中该多个寄存器中的每一个可被一M位存取索引所存取,该指令的寄存器索引区域为一N位寄存器索引区域,且N小于M;
其中至少2(M-N)映射关系被预先定义,且该数据存取装置还包含一映射控制单元以判断现今的映射关系是否需要为了下一个指令处理而被改变,如果需要改变,则根据新的代码值选择一预先定义的新的映射关系。
7.如权利要求6所述的数据存取装置,其中该寄存器索引区域为一4位寄存器索引区域,且该映射控制单元通过底下的步骤定义该4位寄存器索引区域以及特定寄存器的该存取索引之间的两映射关系:(1)映射一第一关系,该第一关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;以及(2)映射一第二关系,该第二关系包含一呼叫者保留寄存器组,一被呼叫者保留寄存器组,以及一特定寄存器组。
8.如权利要求6所述的数据存取装置,其中该寄存器索引区域为一3位寄存器索引区域,且该映射控制单元通过底下的步骤定义该3位寄存器索引区域以及特定寄存器的该存取索引之间的四映射关系:
(1)映射一第一关系,该第一关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;
(2)映射一第二关系,该第二关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;
(3)映射一第三关系,该第三关系包含一呼叫者保留寄存器组,以及一被呼叫者保留寄存器组;
(4)映射一第四关系,该第四关系包含一呼叫者保留寄存器组,以及一特定寄存器组。
9.如权利要求6所述的数据存取装置,其中该寄存器索引区域为一4位寄存器索引区域,该寄存器的数目为32并需要5位的存取索引。
10.如权利要求6所述的数据存取装置,其中该寄存器索引区域为一3位寄存器索引区域,该寄存器的数目为32并需要5位的存取索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101814308A CN101419541B (zh) | 2007-10-25 | 2007-10-25 | 存取多个寄存器其中之一目标寄存器的方法及其相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101814308A CN101419541B (zh) | 2007-10-25 | 2007-10-25 | 存取多个寄存器其中之一目标寄存器的方法及其相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101419541A CN101419541A (zh) | 2009-04-29 |
CN101419541B true CN101419541B (zh) | 2011-03-30 |
Family
ID=40630337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101814308A Expired - Fee Related CN101419541B (zh) | 2007-10-25 | 2007-10-25 | 存取多个寄存器其中之一目标寄存器的方法及其相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101419541B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235762B (zh) * | 2013-04-19 | 2016-06-22 | 中国科学院自动化研究所 | 一种自索引寄存器文件堆装置 |
CN113808000B (zh) * | 2021-11-19 | 2022-04-26 | 北京壁仞科技开发有限公司 | 数据管理装置及数据管理方法 |
CN118069225A (zh) * | 2022-11-22 | 2024-05-24 | 华为技术有限公司 | 一种块指令的寄存器参数传递方法和相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192457B1 (en) * | 1997-07-02 | 2001-02-20 | Micron Technology, Inc. | Method for implementing a graphic address remapping table as a virtual register file in system memory |
CN101055550A (zh) * | 2007-05-31 | 2007-10-17 | 威盛电子股份有限公司 | 存储器存取装置及其方法 |
-
2007
- 2007-10-25 CN CN2007101814308A patent/CN101419541B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192457B1 (en) * | 1997-07-02 | 2001-02-20 | Micron Technology, Inc. | Method for implementing a graphic address remapping table as a virtual register file in system memory |
CN101055550A (zh) * | 2007-05-31 | 2007-10-17 | 威盛电子股份有限公司 | 存储器存取装置及其方法 |
Non-Patent Citations (1)
Title |
---|
US 2007/0005869 A1,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN101419541A (zh) | 2009-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8738892B2 (en) | Very long instruction word (VLIW) computer having efficient instruction code format | |
US8327246B2 (en) | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith | |
KR100961288B1 (ko) | 데이터 비트 저장 방법, 메모리 장치 및 데이터 저장시스템 | |
CN101727983B (zh) | 存储设备及其编程方法 | |
KR880006593A (ko) | 명령 선택장치 및 명령 입력방법 | |
US9454471B2 (en) | Electronic counter in non-volatile limited endurance memory | |
CN101419541B (zh) | 存取多个寄存器其中之一目标寄存器的方法及其相关装置 | |
CN103268202B (zh) | 一种扩容方法和设备 | |
Hillier et al. | Simultaneous optimization of work and buffer space in unpaced production lines with random processing times | |
CN103377135A (zh) | 寻址方法、装置及系统 | |
CN101609431B (zh) | 闪存装置的运作方法及闪存装置 | |
CN100365593C (zh) | 计算机系统的内存管理方法 | |
CN111221470A (zh) | 数据处理方法、电子装置及存储介质 | |
CN106484492A (zh) | 配置接口的方法和系统 | |
CN100375029C (zh) | 存储器配置系统与方法 | |
JP4703753B2 (ja) | 情報処理装置、半導体記憶装置、及びプログラム | |
US9460782B2 (en) | Method of operating memory controller and devices including memory controller | |
CN111489202B (zh) | 一种发送电子券的方法及装置 | |
US6691211B2 (en) | Method of selecting registers from a primitive register set | |
CN101616026A (zh) | 一种获取单板属性的方法及系统 | |
US6886159B2 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
US8510539B2 (en) | Spilling method involving register files based on communication costs and use ratio | |
CN100380345C (zh) | 内存结构及其所使用的控制器 | |
CN114327287B (zh) | 一种固态硬盘的晶圆设置方法、装置、设备及介质 | |
CN116880775B (zh) | 存储空间的硬件管理模组、芯片、电子设备及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110330 Termination date: 20191025 |