CN1148207A - 具有交错式写端口的多端口寄存器堆 - Google Patents

具有交错式写端口的多端口寄存器堆 Download PDF

Info

Publication number
CN1148207A
CN1148207A CN96106203A CN96106203A CN1148207A CN 1148207 A CN1148207 A CN 1148207A CN 96106203 A CN96106203 A CN 96106203A CN 96106203 A CN96106203 A CN 96106203A CN 1148207 A CN1148207 A CN 1148207A
Authority
CN
China
Prior art keywords
copy
register
write
port
heap
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.)
Granted
Application number
CN96106203A
Other languages
English (en)
Other versions
CN1081359C (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1148207A publication Critical patent/CN1148207A/zh
Application granted granted Critical
Publication of CN1081359C publication Critical patent/CN1081359C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

提供一种用于超长指令字(VLIW)和N路超标量处理器的改进的高速寄存器堆。此高速寄存器堆包含选定数目的通用寄存器(GPR)构件的拷贝。GPR构件至少包含两个交错式寄存器子片。每个子片包含N个数目的写端口和M个数目的读端口。子片的写端口是交错式的并且读端口是非交错式的。

Description

具有交错式写端口的多端口寄存器堆
本发明涉及具有多个读写端口的随机读/写存取存储器(RAM)或多端口寄存器堆,更具体地涉及包含64个或更多端口的高速寄存器堆,它适用于超长指令字(VLIW)和N路超标量处理器。
已知的多重或多端口寄存器堆不适用于超长指令字(VLIW)和N路超标量处理器。VLIW处理器由一系列能同时执行指令的各个部分的算术逻辑或功能单元组成。具有8个,16个或更多流水线功能单元的VLIW和N路超标量处理器需要一个中心寄存器堆用于通信,该寄存器堆必须给每个流水线提供三个或四个端口用于可能的64端口或更多的要求。当前的技术恰恰不允许构造有如此多端口的直接物理实现,特别是访问和写时间要求非常严格时。目前大多数物理上可连线的端口可能少于或等于二十(20)。
本发明的主要目的是提供一种用于超长指令字(VLIW)和N路超标量处理器的改进的多端口寄存器堆。
简言之,就是提供一种用于超长指令字(VLIW)和N路超标量处理器的高速寄存器堆。该高速寄存器堆包含选定数目的通用寄存器(GPR)构件的拷贝。GPR构件包含至少两个交错式寄存器子片。每个子片包含N个数目的写端口和M个数目的读端口。子片的写端口是交错式的并且读端口是非交错式的。
从下面图示所说明的本发明最佳实施方式的详细描述中,可以更好地理解本发明的上述目的以及其它目的和优点,其中:
图1是一个框图,它说明了一对根据本发明的有二十个端口的通用寄存器堆(GPR)物理构件;
图2是一个框图,它说明了一个六十四端口寄存器堆,该寄存器堆包含图1中二十八端口逻辑GPR堆逻辑构件的四个拷贝;
图3是一个框图,它说明了利用图1中GPR堆构件所进行的一种写端口的划分方案;
图4是一个框图,它说明了利用图1中GPR堆构件所进行的本发明的一种替代的简化的写端口划分寄存器堆方案;
图5是一个框图,它说明了一个包含图4中六十四端口寄存器堆的超长指令字(VLIW)处理单元;
图6是一个框图,它说明了一个七十二端口寄存器堆。该寄存器堆包含图1中二十八端口寄存器堆构件的四个拷贝;
图7是一个说明了图1中寄存器堆构件中的一个单元以及一个地址解码和算术逻辑单元(ALU)加法器的示意图;
图8是一个说明了根据图1中本发明的GPR堆构件的一个可变性能读访问的示意图;
图9是图1中GPR堆构件位0的一个示例性的布局;
图10是图1中GPR堆构件位0的又一个示例性的布局。它说明了根据本发明的一种替代的读端口布局;
图11是一个说明了包含图1中GPR堆构件的处理单元的一个示例性的布局的示意图。
现在参考附图,图1说明了根据本发明的一个二十八端口通用寄存器(GPR)堆逻辑构件,一般由参考符50标识。根据本发明的特点,交错式写端口,可以看出写端口特别分成了奇数号和偶数号寄存器子片。位宽32的GPR寄存器堆构件50产生总共16个可用的写端口和12个可用的读端口。
GPR堆逻辑构件50包含一对二十端口的GPR堆物理构件52。该二十端口GPR堆物理构件52包含一个偶数号GPR子片52和一个奇数号GPR子片52的交错式写端口。这两个GPR子片52提供12个读端口,并且其中一个有32个偶数号寄存器的子片提供8个写端口,另一个有32个奇数号寄存器的子片提供8个写端口。该GPR寄存器堆构件50包含十六个物理写端口和十二个物理读端口,它们可用于构造一个64端口GPR逻辑寄存器堆,这在图2中总体由60标识,它具有极佳的性能特性。
现在参考图2,该六十四(64)端口通用寄存器堆包含图1中二十八端口寄存器堆逻辑构件50的四个拷贝。随着GPR堆逻辑构件50复制了4次,读端口4倍地增长可满足总共48个读端口的所需数目。对于64位宽的寄存器堆60,64个寄存器分成两组;一组32个偶数号的寄存器和一组32个奇数号的寄存器。实用时,此寄存器堆方案60允许编译器通过某些寄存器分配组合及重命名算法,来产生奇数号和偶数号目标寄存器操作数目大致相同的指令的基本块。在VLIW指令严格编码的情况下,每个指令包都固定地赋予或者一个奇数号(奇数包)或者一个偶数号目标操作数寄存器堆端口,从而省去了在指令中对寄存器地址的最后一位进行编码的需要。
由于在目标寄存器中执行写操作之前,与非交错式寄存器堆的16路写选择相比,交错式寄存器堆60只需8路写选择,因而其写性能提高了。然而复制不可能引起写端口的增加,这是由于所有拷贝接收所有的写以保持有效的拷贝。GPR64端口寄存器堆60还提高了寄存器堆的实际读端口性能,这是由于它将拷贝1,2,3,4放在了最接近于它所驱动的流水线数据流处。这种复制策略的一个缺点是目标操作数必须物理上遍历图2寄存器堆60中GPR逻辑构件50的所有四个拷贝的整个区域。
图3是一个框图,它说明了利用这四个GPR构件50的拷贝而进行的一种写端口划分寄存器堆方案,一般标识为68。每个块70包含两个GPR构件52,带有进入每个单元的8个附加的写路径或端口。在寄存器堆68中,任何装载都能同时写所有的拷贝1,2,3和4,并且任何ALU都能同时写所有拷贝1、2、3和4。由于需要提供16个ALU写端口和8个负载写端口所需的8个附加的写端口,方案68是不现实的。
图4说明了一种包含四个块80的替代的、简化的写端口划分寄存器堆方案,一般标识为78。每个块80包含两个1/2块或子片52或一个块50。在拷贝1和2中,其中一个子片52用于ALU写管道0-7并且另一个子片52用于8个负载写端口。在拷贝3和4中,其中一个子片52用于ALU写管道8-15,并且另一个子片52用于8个负载写端口。图4的划分方案78提供了一种实用的解决方法,它总共需要十六个写端口,而不是图3中不实用的方案68总共所需要的24个写端口。一个复杂的编译器能在一个给定周期内把目标写只限定于4个拷贝80中的两个。对于产生必须写入寄存器堆78的目标结果的ALU操作,编译器设法使一个基本块的所有或大部分工作限于VLIW处理器的总共十六个流水线槽或管道中的第一组八条流水线0-7或第二组八条流水线8-15中。
寄存器堆78的两组拷贝80中的每一组只需从十六条管道中一半的管道中接收ALU目标结果:或者是八条管道0-7或者是八条管道8-15,这使得每个拷贝所需的总的写端口数减少8个。附加的读端口并不十分昂贵;但是,由于影响了具有额外输入端口的所有拷贝1,2,3,4,附加的全局写端口是十分昂贵的。当管道8-15需要查看管道0-7的结果或反之时,编译器适当地调度移动寄存器操作并适当地调度寄存器引用,使得由此引起的管道阻塞得以完全避免。
图5是一个框图,它说明了一个包含六十四端口GPR堆78的VLIW处理单元,一般标识为82。图5所示的ALU目标划分方案的另一个显著的优点是极大地减少了获得任何ALU结果到任何写端口所需的总线连线的总长度,并降低了负载需求,即从没有写端口划分时的4减少到2。标号84的连线代表划分寄存器堆78所需的最长的ALU写总线连线。标号86的连线代表未划分的寄存器堆60所需的最长的ALU写总线连线。在划分的ALU目标寄存器堆78中,最坏情况下,一个ALU只需驱动其自身和一个相邻的寄存器堆拷贝,与之相反,在非划分方案中则要驱动下一个与之相邻的拷贝。这也潜在地允许这些总线连线是双倍粗和双倍宽的连线。更粗和更宽的连线具有较低的电阻,并且还由于与非划分寄存器堆方案相比,总线连线可以只以大约一半的长度工作,从而提供了更好的性能。写端口目标划分显然不用于高速缓存数据负载写端口,其部分原因是由于在商用环境中,性能通常受到可用的负载管道数的限制,而不是ALU数的限制。这样ALU操作能够在每个ALU目标划分中重复而不会冲突,负载就不能。而且,存在许多负载相关的情况:例如链表,这使得延迟非常重要。对于高速缓存数据负载的情况,由于数据总线已经是带有高电流驱动源的长连线,几乎不存在周期时间/写连线延迟差别。驱动4个寄存器堆拷贝,而不仅仅是2个,使得总线延迟的改变不显著,特别是假定负载路径已经是2个周期的路径时。
图6说明了一个七十二端口寄存器堆,它包含图1中所示的二十八端口GPR堆逻辑构件50的四个拷贝,一般标识为90。图6中,整个寄存器堆的布局包含八个基本的20端口GPR子片52,所产生的逻辑寄存器堆能够对总共72个逻辑端口进行每周期最多48次读和24次写。这些逻辑端口具有非常快的读访问和写入性能能力。
图7是一个说明了图1中寄存器堆构件52的一个单元的示意图。一个DCACHE数据输入施加到一个8路字节校准器100上,而该8路字节对齐的输出端与一个4路多路选择器(MUX)102相连。MUX102与一个2路选择器(MUX)104相连。它们共同定义了单元106中的一个8路MUX操作。单元106包含一对锁存器,表示为L1和L2锁存器或一个移位寄存器锁存器。L1锁存器与一个8路MUX108相连,该MUX的输出端与8路MUX110相连。一般标识为112的GPR地址译码器包含一对地址缓冲器114,116,并且地址L1锁存器118,120将地址信号施加到MUX108和110上。C1时钟输出用于为L1和L2锁存器118和120设置地址缓冲器114和116。MUX110的输出施加到加法器122上,该加法器与相关联的算术逻辑单元(ALU)的L2*锁存器124相连。L2*锁存器124的输出施加到4路MUX126上,该MUX通过一个标号为128的全局网路线与2路MUX104相连。在具有6级金属喷镀的互补金属氧化物半导体(CMOS)集成电路实现中,全局网路线128可以是第5级金属并做得较厚,例如2倍于标准的线宽。L2锁存器106的单元输出施加到64路MUX130上,该MUX提供了一条恢复路径。
图8说明了本发明的一种可变读端口性能特性。对每个寄存器堆拷贝50,不是所有的12个读端口都有相同的性能要求。8个读端口要求尽可能快地写入。4个快速读端口馈给ALU的右输入端,这样对减法和其他功能必须具有求真和取补的功能。其它的4个快速读端口馈给其它的ALU输入端(不取补)和CACHE逻辑(机器关键路径)并且也要做得尽可能快。一个L1锁存器142提供2个锁存相-PHASE和+PHASE。L1锁存器相+PHASE用于驱动多个读端口选择器144和146以提供快速的L1写入端口。写入端口在同一个时钟周期内将数据从一个写端口传送到读端口。同样编译器能够保证在任意给定周期内没有2个以上的输出读选择器会访问相同的寄存器,从而限制了必须提供的电流,并进一步提高了性能。L1锁存器相-PHASE用于驱动缓冲器148,该缓冲器与一对选择器150,152相连,从而提供了4个慢速的L2读端口,这些读端口是非写入式的,并且没有严格的性能要求,这是由于当它们无论用于存储寄存器数据访问还是加载意外保存恢复寄存器时都没有严格的定时要求。这4个慢速读端口可以容忍较长,较细和较不规则的总线连线,这给了设计者额外的自由度。与写端口相连的旁路选择154给ALU管道提供了快速读端口。
图9提供了图1中GPR堆逻辑构件50位0的示例性布局。如布局中间附近所示,64个GPR寄存器单元分为32个奇数号单元106和32个偶数号单元106。与8∶1多路选择器相邻的列定义了4路和2路MUX102,126,并且104通过多条写连线与偶数号和奇数号单元106相连,这些写连线由标号为160的示例性连线指示。八个L1读端口和四个L2读端口利用指示单元106到读端口的示例性连接的连线进行说明。
参考图10,图1中GPR堆逻辑构件50位0的另一个示例性布局说明了根据本发明的一种替代的读端口布局。根据图8中所说明和描述的,GPR堆逻辑构件50包含八个快速L1读端口和四个慢速L2读端口。在写译码,时钟,缓冲和测试以及第一组四个八路写MUX之间提供了四个快速L1读端口。在第二组四个八路写MUX和四个慢速L2读端口之间提供了四个快速L1读端口。在八个写端口输入端和第一组四个八路MUX之间,这些八路MUX和这些单元之间以及这些单元与四个慢速L2读端口的其中一个端口之间表示了示例性的连线。
图11是一个说明了一个包含GPR堆78的处理单元的示例性布局的示意图。在图11中,划分的GPR堆78通常表示在位于寄存器/寄存器(RR)管道0-7之上和寄存器/存储(RS)管道0-5及相关联的DCACHE目录(DDIR)及段旁顾缓冲器(SLBs)0-7之下的中心位置处。在偶数号和奇数号GPR1/2拷贝1(图1中的子片52)之间,以及一个解码器和控制区域之间表明了一条示例性的连线,该控制区域能设置有更粗的连线,例如,两倍于标准的宽度。
虽然参照图中所示的本发明的实施方式详细描述了本发明,但是这些详述并不是为了限制所附的权利要求中所要求的本发明的范围。

Claims (14)

1.一种用于和超长指令字(VLIW)和N路超标量处理器的高速寄存器堆,包括:
一个通用寄存器GPR构件,所述GPR构件包含至少两个交错式寄存器子片,每个所述的子片包含N个数目的写端口和M个数目的读端口;所述子片的写端口是交错式的而读端口是非交错式的;以及:
所述GPR构件的一个选定数目的拷贝。
2.权利要求1中所述的高速寄存器堆,其特征在于,所述通用寄存器GPR构件包含一个奇数号寄存器子片和一个偶数号寄存器子片,该奇数号寄存器子片包含所述N数目的奇数号写端口;该偶数号寄存器子片包含所述N数目的偶数号写端口。
3.权利要求1中所述的高速寄存器堆,其特征在于,所述选定数目的所述拷贝被组合到预定的组中。
4.权利要求3中所述的高速寄存器堆,其特征在于,VLIW处理器包含十六个算术逻辑单元ALU0-15,并且或者第一组八个ALU0-7或者第二组八个ALU8-15向所述预定组中的预定某组写。
5.权利要求4中所述的高速寄存器堆,其特征在于,所述拷贝的所述的选定数目等于4并且所述的第一组八个ALU0-7对所述拷贝中的两个进行写,所述第二组八个ALU8-15对所述四个拷贝中的另外两个进行写。
6.权利要求1中所述的高速寄存器堆,其特征在于,定义所述GPR构件的所述寄存器的所述至少两个交错式子片的所述M个读端口相互进行“或”,从而为所述GPR构件提供了M个读端口。
7.权利要求1中所述的高速寄存器堆,其特征在于,所述通用寄存器GPR构件包含所述的M数目的读端口并且所述拷贝的所述选定数目等于四,从而提供了总共四倍于M的读端口。
8.权利要求7中所述的高速寄存器堆,其特征在于,所述的读端口数目M等于12,从而提供了总共48个读端口。
9.权利要求1中所述的高速寄存器堆,其特征在于,所述通用寄存器GPR构件包含两倍于所述N个数目的写端口。
10.权利要求1中所述的高速寄存器堆,其特征在于,拷贝的所述选定数目等于四,拷贝1,拷贝2,拷贝3和拷贝4,并且VLIW处理器包含十六个算术逻辑单元(ALU)0-15,而且第一组八个ALU0-7对拷贝1和2进行写,第二组八个ALU8-15对拷贝3和4进行写。
11.权利要求10中所述的高速寄存器堆,其特征在于,所述4个拷贝:拷贝1,拷贝2,拷贝3和拷贝4与一个高速缓冲存储器CACHE相连,用于对所有所述的四个拷贝提供高速缓存负载写。
12.权利要求1中所述的高速寄存器堆,其特征在于,VLIW处理器包含16个流水线0-15并且拷贝的所述选定数目等于四,拷贝1,拷贝2,拷贝3和拷贝4,并且所述的拷贝1、2与所述流水线0-7相连,所述拷贝3和4与所述流水线8-15相连。
13.权利要求12中所述的高速寄存器堆,其特征在于,所述拷贝通过八个写端口与所述流水线相连。
14.权利要求1中所述的高速寄存器堆,其特征在于,所述M数目的所述读端口既包含写入端口也包含非写入端口。
CN96106203A 1995-06-02 1996-05-07 具有交错式写端口的多端口寄存器堆 Expired - Fee Related CN1081359C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US459,490 1995-06-02
US08/459,490 US5644780A (en) 1995-06-02 1995-06-02 Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors

Publications (2)

Publication Number Publication Date
CN1148207A true CN1148207A (zh) 1997-04-23
CN1081359C CN1081359C (zh) 2002-03-20

Family

ID=23824998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96106203A Expired - Fee Related CN1081359C (zh) 1995-06-02 1996-05-07 具有交错式写端口的多端口寄存器堆

Country Status (6)

Country Link
US (1) US5644780A (zh)
EP (1) EP0745933A3 (zh)
JP (1) JP3177156B2 (zh)
KR (1) KR100195661B1 (zh)
CN (1) CN1081359C (zh)
TW (1) TW289103B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100412851C (zh) * 2005-05-19 2008-08-20 国际商业机器公司 用于共享处理器资源的方法和设备
CN1667744B (zh) * 2003-12-11 2010-07-28 国际商业机器公司 包含单个/多个阈值电压位线的寄存器堆及其使用的方法
CN110046105A (zh) * 2019-04-26 2019-07-23 中国科学院微电子研究所 一种3D NAND Flash

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924117A (en) * 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
JPH1131137A (ja) * 1997-07-11 1999-02-02 Nec Corp レジスタファイル
US6041387A (en) * 1997-09-12 2000-03-21 Siemens Aktiengesellschaft Apparatus for read/write-access to registers having register file architecture in a central processing unit
US6343356B1 (en) 1998-10-09 2002-01-29 Bops, Inc. Methods and apparatus for dynamic instruction controlled reconfiguration register file with extended precision
US6301653B1 (en) 1998-10-14 2001-10-09 Conexant Systems, Inc. Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
WO2000079395A1 (en) * 1999-06-21 2000-12-28 Bops Incorporated Methods and apparatus for establishing port priority functions in a vliw processor
US7401205B1 (en) * 1999-08-13 2008-07-15 Mips Technologies, Inc. High performance RISC instruction set digital signal processor having circular buffer and looping controls
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US7546444B1 (en) 1999-09-01 2009-06-09 Intel Corporation Register set used in multithreaded parallel processor architecture
US6629232B1 (en) * 1999-11-05 2003-09-30 Intel Corporation Copied register files for data processors having many execution units
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6704855B1 (en) 2000-06-02 2004-03-09 International Business Machines Corporation Method and apparatus for reducing encoding needs and ports to shared resources in a processor
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
EP1442362A1 (en) 2001-10-24 2004-08-04 Telefonaktiebolaget LM Ericsson (publ) An arrangement and a method in processor technology
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7120780B2 (en) * 2002-03-04 2006-10-10 International Business Machines Corporation Method of renaming registers in register file and microprocessor thereof
US7339592B2 (en) * 2004-07-13 2008-03-04 Nvidia Corporation Simulating multiported memories using lower port count memories
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US7366032B1 (en) * 2005-11-21 2008-04-29 Advanced Micro Devices, Inc. Multi-ported register cell with randomly accessible history
US20070239970A1 (en) * 2006-04-06 2007-10-11 I-Tao Liao Apparatus For Cooperative Sharing Of Operand Access Port Of A Banked Register File
WO2007138532A1 (en) * 2006-05-25 2007-12-06 Nxp B.V. Unified multi-ported register-file with uniform read and selective write ports
US7840783B1 (en) * 2007-09-10 2010-11-23 Netlogic Microsystems, Inc. System and method for performing a register renaming operation utilizing hardware which is capable of operating in at least two modes utilizing registers of multiple widths
US8654416B2 (en) 2009-07-16 2014-02-18 Konica Minolta Business Technologies, Inc. Image reader
US8533435B2 (en) * 2009-09-24 2013-09-10 Nvidia Corporation Reordering operands assigned to each one of read request ports concurrently accessing multibank register file to avoid bank conflict
US10514911B2 (en) * 2014-11-26 2019-12-24 International Business Machines Corporation Structure for microprocessor including arithmetic logic units and an efficiency logic unit
US11163568B2 (en) * 2018-09-06 2021-11-02 International Business Machines Corporation Implementing write ports in register-file array cell

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128883A (en) * 1977-09-30 1978-12-05 Ncr Corporation Shared busy means in a common bus environment
US4554645A (en) * 1983-03-10 1985-11-19 International Business Machines Corporation Multi-port register implementation
US4558433A (en) * 1983-05-31 1985-12-10 International Business Machines Corporation Multi-port register implementations
US4652993A (en) * 1984-04-02 1987-03-24 Sperry Corporation Multiple output port memory storage module
JPS618785A (ja) * 1984-06-21 1986-01-16 Fujitsu Ltd 記憶装置アクセス制御方式
US4766535A (en) * 1985-12-20 1988-08-23 International Business Machines Corporation High-performance multiple port memory
US4811296A (en) * 1987-05-15 1989-03-07 Analog Devices, Inc. Multi-port register file with flow-through of data
NL8800053A (nl) * 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5206944A (en) * 1990-06-07 1993-04-27 The United States Of America As Represented By The Secretary Of The Air Force High speed analog to digital converter board for an IBM PC/AT
US5204841A (en) * 1990-07-27 1993-04-20 International Business Machines Corporation Virtual multi-port RAM
US5111431A (en) * 1990-11-02 1992-05-05 Analog Devices, Inc. Register forwarding multi-port register file
JP2823767B2 (ja) * 1992-02-03 1998-11-11 松下電器産業株式会社 レジスタファイル
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5289427A (en) * 1992-07-20 1994-02-22 Motorola, Inc. Multiport memory with write priority detector
US5481736A (en) * 1993-02-17 1996-01-02 Hughes Aircraft Company Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
US5481495A (en) * 1994-04-11 1996-01-02 International Business Machines Corporation Cells and read-circuits for high-performance register files

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1667744B (zh) * 2003-12-11 2010-07-28 国际商业机器公司 包含单个/多个阈值电压位线的寄存器堆及其使用的方法
CN100412851C (zh) * 2005-05-19 2008-08-20 国际商业机器公司 用于共享处理器资源的方法和设备
CN110046105A (zh) * 2019-04-26 2019-07-23 中国科学院微电子研究所 一种3D NAND Flash
CN110046105B (zh) * 2019-04-26 2021-10-22 中国科学院微电子研究所 一种3D NAND Flash

Also Published As

Publication number Publication date
TW289103B (en) 1996-10-21
EP0745933A2 (en) 1996-12-04
KR100195661B1 (ko) 1999-06-15
CN1081359C (zh) 2002-03-20
JP3177156B2 (ja) 2001-06-18
EP0745933A3 (en) 2001-01-24
JPH08328858A (ja) 1996-12-13
US5644780A (en) 1997-07-01
KR970003267A (ko) 1997-01-28

Similar Documents

Publication Publication Date Title
CN1081359C (zh) 具有交错式写端口的多端口寄存器堆
CN108713196B (zh) 使用位向量运算装置进行的数据传送
CN105612582B (zh) 可独立寻址的存储器阵列地址空间
CN1045024C (zh) 在超标量处理机系统中提高指令调度效率的方法
EP1186995B1 (en) Instruction memory with associative cross-bar switch
US7568083B1 (en) Memory mapped register file and method for accessing the same
US20160266873A1 (en) Division operations on variable length elements in memory
WO2001035224A1 (en) Bit-serial memory access with wide processing elements for simd arrays
WO2017139191A1 (en) Data gathering in memory
WO2016036912A1 (en) Comparison operations in memory
EP0851343A2 (en) System for processing floating point operations
US5499204A (en) Memory cache with interlaced data and method of operation
CN101482811B (zh) 用于增强的计算能力的处理器体系结构
CN101520723A (zh) 用于装入/移动以及复制指令的处理器、系统和方法
WO2006071385A2 (en) Data file storing multiple data types with controlled data access
CN1224898C (zh) 多端口寄存器堆的选择性旁路的方法和设备
WO1997030395A1 (fr) Memoire a acces multiples et processeur de donnees procurant l'acces a cette memoire
CN102169427A (zh) 实施混洗指令的设备、方法和操纵数据操作数的设备
CN1534462A (zh) 流水线处理一系列处理指令的方法和设备
CN1220150C (zh) 具有可配置的高速缓存/静态随机存取存储器的系统
CN102541809A (zh) 一种动态可重构处理器
KR20020035739A (ko) 복수 레지스터 지정이 가능한 simd 연산방식
EP1535189A2 (en) Programmable pipeline fabric utilizing partially global configuration buses
US6219777B1 (en) Register file having shared and local data word parts
JPH06242953A (ja) データ・プロセッサ

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
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: 20020320

Termination date: 20100507