CN101324837B - 一种微处理器内部寄存器堆的设计和访问方法 - Google Patents

一种微处理器内部寄存器堆的设计和访问方法 Download PDF

Info

Publication number
CN101324837B
CN101324837B CN2008101169242A CN200810116924A CN101324837B CN 101324837 B CN101324837 B CN 101324837B CN 2008101169242 A CN2008101169242 A CN 2008101169242A CN 200810116924 A CN200810116924 A CN 200810116924A CN 101324837 B CN101324837 B CN 101324837B
Authority
CN
China
Prior art keywords
register
registers
sub
register file
matrixing
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
Application number
CN2008101169242A
Other languages
English (en)
Other versions
CN101324837A (zh
Inventor
刘勇
谢劲松
张吉豫
陈钟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN2008101169242A priority Critical patent/CN101324837B/zh
Publication of CN101324837A publication Critical patent/CN101324837A/zh
Application granted granted Critical
Publication of CN101324837B publication Critical patent/CN101324837B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明涉及一种微处理器中寄存器堆的设计和访问方法。该方法包括:假设原有的寄存器堆中共有N个寄存器组成,将这N个寄存器中的每个寄存器划分成等长的M个子寄存器,则这N个寄存器形成一个N*M个子寄存器矩阵,该子寄存器矩阵中的每个子寄存器都有自己相应的子寄存器名,通过新增指令来访问这个矩阵中的任意M个子寄存器。利用本发明的设计方法可以在不增加现有寄存器数量的基础上,通过逻辑上的扩展,提高寄存器堆的利用率。该设计及访问方法能够兼容现有的寄存器堆的数据通路和访问方式。

Description

一种微处理器内部寄存器堆的设计和访问方法
技术领域
本发明为一种微处理器内部寄存器堆的设计和访问方法,属于微处理器设计技术,具体涉及微处理器中寄存器堆的设计、编址和访问等技术方法,目的是在不增加寄存器数量的基础上,充分利用有限的寄存器资源,提高程序的性能。
背景技术
寄存器是微处理器内部的高性能部件,它的存储性能大约为一级缓存(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个子寄存器的例子。
下面结合附图和实施例对本发明进一步说明。
具体实施方式
实施例1如图3所示,提供了一种微处理器寄存器堆的矩阵化设计及访问方法。它将图2所示的微处理器寄存器堆中的每个寄存器(假设共n个)划分成m个等长的子寄存器,图中m取值为4,每个子寄存器都有自己的名字,形成n×m(此实施例中m=4)矩阵式寄存器堆结构。
实施例2引入新的指令,同时对多个子寄存器进行读、写及各种逻辑运算。如图1所示,举例说明如何将4个32位寄存器进行矩阵化:
设在32位处理器中,寄存器堆包括4个32位的寄存器。可以将每个寄存器分为8比特一组,每8个比特的部分寄存器按照矩阵的方式进行命名,可从中任意选取4个进行访问,图1就是4个寄存器矩阵化后的示意图,称为寄存器矩阵。
如果想将R0.3,R1.2,R2.1,R3.0的内容复制到R0.0,R1.1,R2.2,R3.3,则新指令可以写成如下形式:
move $R0.0_R1.1_R2.2_R3.3  $R0.3_R1.2_R2.1_R3.0
这种想法也可以很容易的推广到其它指令上,例如add指令:
add $R2.0_R3.1_R0.2_R1.3 $R0.0_R1.1_R2.2_R3.3 $R0.3_R1.2_R2.1_R3.0
实施例3在物理实现方面,目前一般处理器采用多端口寄存器堆,每增加一些端口要付出较大代价。例如实施例2所建议的指令需要同时访问可能多达12个寄存器(8个源/4个目标),所以可以对该指令进行流水线特殊处理以提高性能。
实施例4寄存器堆矩阵化设计与访问通常要求更多的位数来进行编码,变长指令系统的计算机可以直接利用,定长指令系统的计算机可以通过超长指令字、指令拼接扩展等方式进行利用。

Claims (1)

1.一种微处理器寄存器堆的设计和访问方法,包括:
寄存器堆结构的矩阵化设计步骤,所述微处理器寄存器堆中的n个寄存器中的每个寄存器根据处理器数据通路的宽度划分成m个等长的子寄存器,并为每个所述子寄存器用一个唯一的名字命名,形成n×m矩阵式寄存器堆结构;
寄存器堆访问的矩阵化设计步骤,根据所述每个寄存器的相应名称进行寄存器堆的数据访问,并根据所述数据通路的要求,规定同时访问的目的和源子寄存器的数目,通过增加新的指令来访问矩阵化的寄存器堆;
寄存器堆计算的矩阵化设计步骤,通过增加新的指令以新的寄存器名字进行计算;通过增加新的指令,同时对多个子寄存器进行读、写及各种逻辑运算,
所述微处理器寄存器堆的设计和访问方法的特征在于,
当所述微处理器寄存器堆中的寄存器是64位寄存器时,m=8,在所述寄存器堆访问的矩阵化设计步骤中,同时访问任意8个所述子寄存器;
当所述微处理器寄存器堆中的寄存器是32位寄存器时,m=4,在所述寄存器堆访问的矩阵化设计步骤中,同时访问任意4个所述子寄存器。
CN2008101169242A 2008-07-21 2008-07-21 一种微处理器内部寄存器堆的设计和访问方法 Expired - Fee Related CN101324837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101169242A CN101324837B (zh) 2008-07-21 2008-07-21 一种微处理器内部寄存器堆的设计和访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101169242A CN101324837B (zh) 2008-07-21 2008-07-21 一种微处理器内部寄存器堆的设计和访问方法

Publications (2)

Publication Number Publication Date
CN101324837A CN101324837A (zh) 2008-12-17
CN101324837B true CN101324837B (zh) 2010-06-23

Family

ID=40188387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101169242A Expired - Fee Related CN101324837B (zh) 2008-07-21 2008-07-21 一种微处理器内部寄存器堆的设计和访问方法

Country Status (1)

Country Link
CN (1) CN101324837B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620524B (zh) * 2009-07-03 2011-08-10 中国人民解放军国防科学技术大学 支持矩阵整体读写操作的矩阵寄存器文件
CN108304217B (zh) * 2018-03-09 2020-11-03 中国科学院计算技术研究所 将长位宽操作数指令转换为短位宽操作数指令的方法
CN115421788B (zh) * 2022-08-31 2024-05-03 苏州发芯微电子有限公司 寄存器堆系统、方法及使用该寄存器堆的汽车控制处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084083A1 (en) * 2001-07-31 2003-05-01 Hull James M. Method and apparatus for performing integer multiply operations using primitive multi-media operations that operate on smaller operands
US20030159022A1 (en) * 2002-02-15 2003-08-21 Hitachi, Ltd. Processor and its arithmetic instruction processing method and arithmetic operation control method
US20040215940A1 (en) * 1998-11-27 2004-10-28 Matsushita Electric Industrial Co., Ltd. Processor, compiling apparatus, and compile program recorded on a recording medium
CN1720494A (zh) * 2002-12-04 2006-01-11 皇家飞利浦电子股份有限公司 减少微处理器的功率消耗的寄存器堆选通方法
WO2006071385A2 (en) * 2004-11-17 2006-07-06 Sandbridge Technologies, Inc. Data file storing multiple data types with controlled data access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215940A1 (en) * 1998-11-27 2004-10-28 Matsushita Electric Industrial Co., Ltd. Processor, compiling apparatus, and compile program recorded on a recording medium
US20030084083A1 (en) * 2001-07-31 2003-05-01 Hull James M. Method and apparatus for performing integer multiply operations using primitive multi-media operations that operate on smaller operands
US20030159022A1 (en) * 2002-02-15 2003-08-21 Hitachi, Ltd. Processor and its arithmetic instruction processing method and arithmetic operation control method
CN1720494A (zh) * 2002-12-04 2006-01-11 皇家飞利浦电子股份有限公司 减少微处理器的功率消耗的寄存器堆选通方法
WO2006071385A2 (en) * 2004-11-17 2006-07-06 Sandbridge Technologies, Inc. Data file storing multiple data types with controlled data access

Also Published As

Publication number Publication date
CN101324837A (zh) 2008-12-17

Similar Documents

Publication Publication Date Title
Aga et al. Compute caches
Kim et al. Sort vs. hash revisited: Fast join implementation on modern multi-core CPUs
US7444499B2 (en) Method and system for trace generation using memory index hashing
CN101799750B (zh) 一种数据处理的方法与装置
CN108351830A (zh) 用于存储器损坏检测的硬件装置和方法
CN104252392A (zh) 一种访问数据缓存的方法和处理器
CN103246542B (zh) 智能缓存及智能终端
IL204633A (en) A parallel processing computer system with reduced energy consumption and a method for making it
Crago et al. OUTRIDER: Efficient memory latency tolerance with decoupled strands
CN101187908A (zh) 单芯片多处理器共享数据存储空间的访问方法
US20110072170A1 (en) Systems and Methods for Transferring Data to Maintain Preferred Slot Positions in a Bi-endian Processor
CN109992559A (zh) 多插槽系统中的远程原子操作
CN101211256A (zh) 一种专用双流水线risc指令系统及其操作方法
CN101847096A (zh) 包含栈变量函数的优化方法
CN101324837B (zh) 一种微处理器内部寄存器堆的设计和访问方法
CN101727435B (zh) 一种超长指令字处理器
Benini et al. Synthesis of application-specific memories for power optimization in embedded systems
Raghavan et al. Very wide register: An asymmetric register file organization for low power embedded processors
Lazo et al. Adaptable register file organization for vector processors
US20130061213A1 (en) Methods and systems for optimizing execution of a program in a parallel processing environment
Zhang et al. A new register file access architecture for software pipelining in VLIW processors
US20030177337A1 (en) Computer system
Ungethüm et al. Overview on hardware optimizations for database engines
CN103235762B (zh) 一种自索引寄存器文件堆装置
Vieira et al. A compute cache system for signal processing applications

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100623

Termination date: 20120721