CN105653472A - 缓存辅助的向量寄存器堆的缓冲方法 - Google Patents
缓存辅助的向量寄存器堆的缓冲方法 Download PDFInfo
- Publication number
- CN105653472A CN105653472A CN201511026668.4A CN201511026668A CN105653472A CN 105653472 A CN105653472 A CN 105653472A CN 201511026668 A CN201511026668 A CN 201511026668A CN 105653472 A CN105653472 A CN 105653472A
- Authority
- CN
- China
- Prior art keywords
- register file
- vbuf
- slv
- mvrf
- register
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种缓存辅助的向量寄存器堆的缓冲方法,包括:对短生命周期变量进行标识;寄存器堆读过程,在流水线的译码阶段从VBUF中查找相应的寄存器id,若存在,则从VBUF中读取;若不存在,则从MVRF中读取,并判断是否有端口冲突,若有端口读冲突会暂停取指-译码的流水,则分两次从MVRF中读取;寄存器堆写过程,判断结果是否为SLV,若是SLV,则判断是否在bypass中被相关指令消费,如果未消费,写入到VBUF中;若不是SLV,则判断端口是否冲突,若冲突,则需要缓冲变量到VBUF;若无冲突,则直接写入MVRF。
Description
技术领域
本发明涉及一种缓存辅助的向量寄存器堆的缓冲方法。
背景技术
寄存器缓冲,英文名buffer或cache,主要用于缓冲寄存器值数据来消除寄存器堆访问时的端口冲突及空间不足。如图1所示。
该专利用于寄存器文件资源不可用(寄存器端口或空间不足)时,把数据缓冲到405寄存器缓存(registercache),该专利具体体现在写回算法上,主要实现如下及图1所示。
图2主要描述了寄存器堆空间不足时缓存寄存器堆写入数据的操作方法,首先,在701步处理器会检查寄存器堆是否有空间及端口,如果有则把数据写入寄存器堆,再继续判断是否可以解锁寄存器缓冲(711步),如果可以解锁则写入(716步)。如果判断寄存器堆空间及端口不足,继续判断是否可以解锁寄存器缓冲(710步),如果可以解锁则写入(715步),接下来会等待寄存器堆空闲时写入(721步)。
上面图3主要描述了寄存器堆访问带宽不足时缓存寄存器堆写入数据的操作方法,首先,在801步处理器会检查数据是否有效,如有效则解锁寄存器缓冲(805步),如无效,则判断是否有足够的寄存器堆写带宽,如果是,则把数据写入寄存器堆(815步),如带宽不足,则会继续810步。
上面寄存器堆与缓冲中的数据为包含关系,主要减少了读操作。另外此专利并没有区分变量的类型。现有技术方案只考虑辅助缓冲用于寄存器端口及存储空间冲突解决的情况,未考虑减少寄存器堆能耗时,可以同时缓冲短生命周期变量的情况。此外,未考虑用作向量功能单元作用时,向量寄存器堆的缓冲及功耗开销。
发明内容
针对上述问题,本发明提供一种节约寄存器堆的访问功耗,减少端口的使用的缓存辅助的向量寄存器堆的缓冲方法。
为达到上述目的,本发明缓存辅助的向量寄存器堆的缓冲方法,包括:
对短生命周期变量进行标识;
寄存器堆读过程,在流水线的译码阶段从VBUF中查找相应的寄存器id,
若存在,则从VBUF中读取;
若不存在,则从MVRF中读取,并判断是否有端口冲突,
若有端口读冲突会暂停取指-译码的流水,则分两次从MVRF中读取;
寄存器堆写过程,判断结果是否为SLV,
若是SLV,则判断是否在bypass中被相关指令消费,如果未消费,写入到VBUF中;
若不是SLV,则判断端口是否冲突,
若冲突,则需要缓冲变量到VBUF;
若无冲突,则直接写入MVRF。
进一步地,向量寄存器缓冲VBUF失效时,同时无效2条冲突时的临时寄存器项,将所述临时寄存器项写入寄存器堆。
本发明缓存辅助的向量寄存器堆的缓冲方法,同时存储短生命周期值SLV及端口冲突时的临时寄存器项,共享存储空间,有效利用寄存器缓冲的空间。寄存器堆及寄存器缓冲间为互斥关系,对寄存器缓冲访问有优先权,数据量唯一位置存储,存储开销小。当向量寄存器缓冲VBUF失效时,会同时无效掉2条冲突时的临时寄存器项,并将其写入寄存器堆,批量写入数据,可以减少对主寄存器访问次数。
附图说明
图1现有的寄存器堆缓冲技术;
图2寄存器堆空间不足时缓存寄存器堆写入数据的操作方法;
图3寄存器堆访问带宽不足时缓存寄存器堆写入数据的操作方法;
图4是向量寄存器堆的缓冲结构;
图5是向量寄存器缓冲的数据项格式;
图6是读寄存器堆时的流水线状态图;
图7是写寄存器堆时的流水线状态图;
图8是短生命周期量SLV读写策略;
图9是VBUF空间不足时的替换策略。
具体实施方式
下面结合附图对本发明做进一步的描述。
说明:SLV—短生命周期变量;VBUF—向量寄存器堆数据缓冲;Bypass—数据旁路;MVRF—主向量寄存器堆。
在对数据进行计算的过程中,为了减少寄存器堆的访问及降低寄存器堆的能耗开销,可以采用把一些临时变量缓冲到Buffer的方法。如短生命周期变量,生命周期只有几条指令,没有必要写回到寄存器堆,可以借助cache实现数据的缓冲,如下面代码段所示:
上面代码中,寄存器vr6,vr1在第1行定义,第2行使用,第3行被重新定义,寄存器vr6,vr1的值没有必要写回寄存器堆,可以通过寄存器缓冲或bypass网络中获得,从而减少寄存器堆的访问功耗开销。
短生命周期变量SLV,从第n次变量定义Dn到变量使用Un仅仅间隔数条指令,下一次n+1重新定义Dn+1,使用深度Ln,空闲周期Sn。
Ln=Un-Dn,Sn=Dn+1-Un(1)
当Ln较小(一般小于5)且在Un及Dn+1未使用过该变量,那么该变量实质上在Un使用后就消亡了,因此被称为短生命周期变量。
本发明采用一种新的方法,利用VBUF缓存短生命周期变量和主寄存器堆端口共享结合起来,从而进一步减少寄存器堆访问开销及功耗。
针对现有技术未考虑暂存短生命周期变量的问题,本发明提出了一种复合的寄存器buffer结构,用于节约寄存器堆的访问功耗,以及减少端口的使用。本发明充分考虑了短生命周期变量及MVRF端口冲突的情况,并把两者很好的结合在一起,共享VBUF存储的使用,如图4所示。
1)正常访问:当数据通路中功能单元FU1,FU2,FU3使用端口数小于主寄存器堆MVRF的端口个数,通过MUX复用实现共享主寄存器堆MVRF端口。
2)访问带宽冲突:当数据通路中功能单元FU1,FU2,FU3使用端口数大于主寄存器堆MVRF的端口个数,需要MVRF寄存器Buffer缓冲解决。
3)短生命周期变量:对于没有必要写回主寄存器堆MVRF的变量,通过MVRF寄存器Buffer缓冲实现。
3短生命周期变量的暂存:
1)短生命周期变量通过编译器标识。
2)对于深度1-3的临时变量通过流水线bypass使用后释放
3)对对深度4-5的短什么周期变量,通过VBUF来缓冲。
4VBUF(vectorregisterfilebuffer)项的格式:
四项结构:Item(VR-id,value,type,valid),表示如图5所示:
算法方面的实现,主要有:1)寄存器堆读策略,2)寄存器堆写策略3)短生命周期变量SLV的存储策略。
1)寄存器堆读策略,如图6所示,主要说明:在流水线的译码阶段从VBUF中查找相应的寄存器id,如果存在就从VBUF中读取;如果不存在,则从MVRF中读取,并判断是否有端口冲突。如果有端口读冲突会暂停取指-译码的流水,则分两次从MVRF中读取。
2)寄存器堆写策略,如图7所示,主要说明:在写回阶段判断结果是否为SLV,如果是SLV则写入到VBUF中。如果不是SLV,则判断端口是否冲突,如果冲突,则需要缓冲变量到VBUF。如果无冲突,则直接写入MVRF。
3)短生命周期变量分配及释放策略,如图8所示,主要说明:在译码阶段检测SLV标示,并设置内部寄存器(map_slv)。在Execute阶段根据bypass判断SLV是否被消费了。在写回阶段,根据Map_slv的指示判断目的结果写入哪里:如果不是SLV变量则写回MVRF,如果是,则写一步判断是否在bypass中被相关指令消费,如果未消费,则写入VBUF。
6带宽不足时,算法上与专利US7418551的主要区别:
1)当type=0的变量发生替换操作时,会无效掉2项VBUF项,进行批量写入MVRF更新。
2)对于type=1的项目,只能通过功能单元FU使用后无效。
如下fft1024代码:
执行中VBUF的变化如图9所示:图9中,VBUF空间不足时,会同时无效掉Type=0的两项到MVRF中,然后写入VR-id=5的项。
1.复合缓冲结构:同时存储短生命周期值SLV及端口冲突时的临时寄存器项。
2.数据互斥结构:主寄存器堆及寄存器缓冲间为互斥关系,对寄存器缓冲访问有优先权。
3.批量更新策略:当向量寄存器缓冲VBUF失效时,会同时无效掉2条冲突时的临时寄存器项,并将其写入主寄存器堆。
以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
Claims (2)
1.一种缓存辅助的向量寄存器堆的缓冲方法,其特征在于,包括:
对短生命周期变量进行标识;
寄存器堆读过程,在流水线的译码阶段从VBUF中查找相应的寄存器id,
若存在,则从VBUF中读取;
若不存在,则从MVRF中读取,并判断是否有端口冲突,
若有端口读冲突会暂停取指-译码的流水,则分两次从MVRF中读取;
寄存器堆写过程,判断结果是否为SLV,
若是SLV,则判断是否在bypass中被相关指令消费,如果未消费,写入到VBUF中;
若不是SLV,则判断端口是否冲突,
若冲突,则需要缓冲变量到VBUF;
若无冲突,则直接写入MVRF。
2.根据权利要求1所述的缓存辅助的向量寄存器堆的缓冲方法,其特征在于,向量寄存器缓冲VBUF失效时,同时无效2条冲突时的临时寄存器项,将所述临时寄存器项写入寄存器堆。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511026668.4A CN105653472A (zh) | 2015-12-31 | 2015-12-31 | 缓存辅助的向量寄存器堆的缓冲方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511026668.4A CN105653472A (zh) | 2015-12-31 | 2015-12-31 | 缓存辅助的向量寄存器堆的缓冲方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105653472A true CN105653472A (zh) | 2016-06-08 |
Family
ID=56490987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511026668.4A Pending CN105653472A (zh) | 2015-12-31 | 2015-12-31 | 缓存辅助的向量寄存器堆的缓冲方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653472A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958453A (zh) * | 2018-07-03 | 2018-12-07 | 中国人民解放军国防科技大学 | 一种寄存器堆的低功耗访问方法及装置 |
CN115269205A (zh) * | 2022-09-27 | 2022-11-01 | 之江实验室 | 一种面向神经网络计算的内存优化方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418551B2 (en) * | 2004-07-06 | 2008-08-26 | Intel Corporation | Multi-purpose register cache |
CN101266576A (zh) * | 2008-05-15 | 2008-09-17 | 中国人民解放军国防科学技术大学 | 一种面向数据流的Cache管理方法 |
CN102037443A (zh) * | 2008-05-21 | 2011-04-27 | 高通股份有限公司 | 用于分支预测的多模式寄存器堆 |
CN103513957A (zh) * | 2012-06-27 | 2014-01-15 | 上海芯豪微电子有限公司 | 高性能缓存系统和方法 |
-
2015
- 2015-12-31 CN CN201511026668.4A patent/CN105653472A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418551B2 (en) * | 2004-07-06 | 2008-08-26 | Intel Corporation | Multi-purpose register cache |
CN101266576A (zh) * | 2008-05-15 | 2008-09-17 | 中国人民解放军国防科学技术大学 | 一种面向数据流的Cache管理方法 |
CN102037443A (zh) * | 2008-05-21 | 2011-04-27 | 高通股份有限公司 | 用于分支预测的多模式寄存器堆 |
CN103513957A (zh) * | 2012-06-27 | 2014-01-15 | 上海芯豪微电子有限公司 | 高性能缓存系统和方法 |
Non-Patent Citations (1)
Title |
---|
ZHIGUO LIU ETC.: "A low power buffer-aided vector register file for LTE baseband signal processing", 《2015 33RD IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN (ICCD)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958453A (zh) * | 2018-07-03 | 2018-12-07 | 中国人民解放军国防科技大学 | 一种寄存器堆的低功耗访问方法及装置 |
CN108958453B (zh) * | 2018-07-03 | 2020-06-05 | 中国人民解放军国防科技大学 | 一种寄存器堆的低功耗访问方法及装置 |
CN115269205A (zh) * | 2022-09-27 | 2022-11-01 | 之江实验室 | 一种面向神经网络计算的内存优化方法和装置 |
CN115269205B (zh) * | 2022-09-27 | 2022-12-27 | 之江实验室 | 一种面向神经网络计算的内存优化方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6342970B2 (ja) | トランザクショナルメモリ(tm)システムにおける読み出し及び書き込み監視属性 | |
KR101291016B1 (ko) | 사용자 핸들러 등록 장치, 프로세서, 시스템 및 방법 | |
TWI494770B (zh) | 用以於交易執行期間有效率地處理多個虛擬位址映射的方法、裝置及系統 | |
CN102934084B (zh) | 用于通过将第一核类型与第二核类型耦合来提高功率性能的装置、方法和系统 | |
RU2501071C2 (ru) | Механизм запроса поздней блокировки для пропуска аппаратной блокировки (hle) | |
US9298632B2 (en) | Hybrid cache state and filter tracking of memory operations during a transaction | |
KR100334479B1 (ko) | 컴퓨터 처리 시스템에서 로드 동작의 순서 변경 방법 및 장치 | |
JP5894120B2 (ja) | ゼロサイクルロード | |
TWI540502B (zh) | 用於重疊原子區域執行的處理器 | |
US20100162247A1 (en) | Methods and systems for transactional nested parallelism | |
US20080005504A1 (en) | Global overflow method for virtualized transactional memory | |
US20150205605A1 (en) | Load store buffer agnostic to threads implementing forwarding from different threads based on store seniority | |
US20080162889A1 (en) | Method and apparatus for implementing efficient data dependence tracking for multiprocessor architectures | |
US9990198B2 (en) | Instruction definition to implement load store reordering and optimization | |
EP2862068A1 (en) | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue | |
US20150100734A1 (en) | Semaphore method and system with out of order loads in a memory consistency model that constitutes loads reading from memory in order | |
WO2013188754A1 (en) | A disambiguation-free out of order load store queue | |
US11119925B2 (en) | Apparatus and method for managing capability metadata | |
US10831663B2 (en) | Tracking transactions using extended memory features | |
US20090276575A1 (en) | Information processing apparatus and compiling method | |
CN105653472A (zh) | 缓存辅助的向量寄存器堆的缓冲方法 | |
CN114116002A (zh) | 一种存储重命名的实现方法、处理器及计算机设备 | |
US11288194B2 (en) | Global virtual address space consistency model | |
Tamura et al. | High performance memory architectures with dynamic locking cache for real-time systems | |
CN105843360B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160608 |