CN115052042A - 一种高性能多通道共享缓存的实现方法 - Google Patents
一种高性能多通道共享缓存的实现方法 Download PDFInfo
- Publication number
- CN115052042A CN115052042A CN202210638868.9A CN202210638868A CN115052042A CN 115052042 A CN115052042 A CN 115052042A CN 202210638868 A CN202210638868 A CN 202210638868A CN 115052042 A CN115052042 A CN 115052042A
- Authority
- CN
- China
- Prior art keywords
- access
- bank
- source
- direct access
- data
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种高性能多通道共享缓存的实现方法,属于芯片设计领域。本发明针对数据缓存典型的访问模型,通过重新组织数据在缓存中的排布方式,并通过特定的访问时序对数据进行访问,优化了多源访问时共享缓存的处理能力。本发明合理组织数据节点存储方式,使得多个直接访问源可同时无阻塞的根据指定地址访问数据缓存,访问延时固定;本发明消除直接访问源抢占相同Bank访问权限的场景,提升了共享缓存多源访问时的整体带宽;本发明将直接访问源的剩余带宽提供给间接访问源,在数据缓存总带宽较大的情况下,间接访问源仍可提供获得高访问带宽。此外,由于其多源直通的特性,本发明有效的降低了系统数据通路设计的复杂度,减少了ASIC/FPGA实现面积。
Description
技术领域
本发明属于芯片设计领域,具体涉及一种高性能多通道共享缓存的实现方法。
背景技术
大容量SRAM共享缓存广泛应用于ASIC/FPGA设计中,在进行缓存设计时,综合考虑性能、面积、工艺等,通常将数据缓存划分为多个Bank,每个Bank由若干个单口SRAM组成。如图1所示。
在对每个Bank数据进行访问时,一般采用直接寻址的方式,并将每个Bank切分为更小的单位,定义为1个Cell。每个Cell对应一个Bank的多个地址,如图2所示,当Cell大小为Bank位宽4倍时,一个Cell对应4个地址。
实际应用中,多个访问源根据直接地址同时访问共享缓存,根据每个访问源需求不同,将访问源划分为直接访问源和间接访问源,其中直接访问源往往要求稳定性能、或低延时、或高带宽;间接访问源往往接受一定程度反压。直接访问源是直接对Bank进行访问的访问源,由于直接访问源占据访问接口,其他源无法直接访问接口,只能提出请求然后等待若干时间后才能访问接口,所以其他源称为间接访问源。
在多个源对同一个Bank进行访问时,由于单个Bank仅存在一套读写访问接口,则多源访问形成冲突。单个Bank对每个访问源的响应时间出现抖动,此时将不满足直接访问源需求。
在系统内,多个源请求多个Bank时,每个Bank都可能在一定时间内被某个源独占,造成其他源访问相同Bank时出现延时,最终影响系统整体性能。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种高性能多通道共享缓存的实现方法,以解决多源访问形成冲突和延时的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种高性能多通道共享缓存的实现方法,该方法包括:
系统内有n个直接访问源,每个源位宽为w;
将共享缓存划分为n个Bank,分别为Bank0~Bankn,每个Bank位宽为w;设定每个源每次访问的数据大小为1个Cell,每个Cell大小定义为n*w;
将每个Cell对应的数据平铺在n个Bank中,Banka的Cellb对应的数据存放于Bank0~Bankn的地址为:
a+b*n;
采用如下访问规则共享缓存:
每个直接访问源每个cycle访问位宽为wbit,每个直接访问源访问1个完整的Cell需要n个cycle;
直接访问源按照1个Cell串行连续访问Bank0~Bankn;
Bank a的Cellb起始访问cycle与a+b*n对应,起始访问Bank为Bank0。
进一步地,Bank a的Cell b对应的数据按顺序平铺在Bank0~Bankn对应的地址中。
进一步地,串行连续访问指时间上n个cycle是连续的,且串行访问Bank0~Bankn获取数据。
进一步地,每个Bank每个Cell的起始访问cycle是固定的。
进一步地,共享缓存内n个Bank供n个直接访问源直接访问,每个直接访问源带宽为:freq*w,freq为1/cycle。
进一步地,单个直接访问源若仅访问一个Cell的部分数据,则剩余cycle空闲,为IDLE cycle,IDLE cycle提供给间接访问源。
进一步地,IDLE cycle包括某个直接访问源未访问整个Bank的cycle,以及某个直接访问源在对应cycle未进行访问的cycle。
进一步地,间接访问源带宽为Bank数*w–直接访问源总带宽。
进一步地,通过扩展Bank组个数以支持更多的直接访问源,将系统设计为g组Bank组,每个Bank组包括n个Bank,从而支持直接访问源个数为:g*n。
进一步地,共享缓存供最多g*n个直接访问源访问,若实际直接访问源小于g*n,则多余的直接访问源访问cycle将出现空闲,空闲cycle分配给间接访问源使用。
(三)有益效果
本发明提出一种高性能多通道共享缓存的实现方法,本发明针对数据缓存典型的访问模型,通过重新组织数据在缓存中的排布方式,并通过特定的访问时序对数据进行访问,优化了多源访问时共享缓存的处理能力。
本发明合理组织数据节点存储方式,使得多个直接访问源可同时无阻塞的根据指定地址访问数据缓存,访问延时固定;
本发明消除直接访问源抢占相同Bank访问权限的场景,提升了共享缓存多源访问时的整体带宽;
本发明将直接访问源的剩余带宽提供给间接访问源,在数据缓存总带宽较大的情况下,间接访问源仍可提供获得高访问带宽。
本发明通过全新的数据组织形式,设计了一种多源无阻塞访问的高性能共享数据缓存机制,消除了直通访问源抖动时间,提升了系统数据缓存有效带宽。同时,由于其多源直通的特性,一般不需要额外进行数据预取或设计二级缓存,有效的降低了系统数据通路设计的复杂度,减少了ASIC/FPGA实现面积。
附图说明
图1为现有技术中Bank划分图;
图2为现有技术中Cel l切分图;
图3为本发明Bank地址映射图;
图4为本发明4个直接访问源对多个Bank并发访问cycle示意图;
图5为本发明IDLE cycle示意图;
图6为本发明扩展Bank组示意图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明针对数据缓存典型的访问模型,通过重新组织数据在缓存中的排布方式,并通过特定的访问时序对数据进行访问,优化了多源访问时共享缓存的处理能力。
本发明的高性能多通道共享缓存的实现方法的技术方案如下:
系统内有n个直接访问源,每个源位宽为w。
将共享缓存划分为n个Bank,分别为Bank0~Bankn,每个Bank位宽为w。设定每个源每次访问的数据大小为1个Cell,每个Cell大小定义为n*w。
增加直接地址到间接地址的映射:将每个Cell对应的数据平铺在n个Bank中,这样,Bank0的Cell0数据分布在Bank0~Bankn的Addr0中。
根据以上规则,Bank a的Cell b对应的数据存放于Bank0~Bankn的地址为:
a+b*n
Bank地址映射如图3所示。Bank a的Cell b对应的数据按顺序平铺在Bank0~Bankn对应的地址中。
针对上述定义Bank地址映射方法,指定如下访问规则:
1.每个直接访问源每个cycle访问位宽为wbit;每个直接访问源访问1个完整的Cell需要n个cycle;
2.直接访问源按照1个Cell串行连续访问Bank0~Bankn;连续访问指时间上n个cycle是连续的,串行访问是因为每个Cell对应的数据平铺在n个Bank中,需要串行访问Bank0~Bankn获取数据;
3.每个Bank每个Cell的起始访问cycle是固定的,Bank a的Cellb起始访问cycle与a+b*n对应,起始访问Bank为Bank0。例如,Bank0的Cell0的起始访问cycle为cycle0,起始访问Bank为Bank0,当某直接访问源在cycle0访问了Bank0的Addr0后,会cycle1在去访问Bank1的Addr0,此时,Bank0的访问接口未被占用,另一直接访问源可以访问Bank1的Cell0,即另一直接访问源的起始访问cycle为cycle1,在cycle1访问Bank0的Addr1,依次类推。
以n=4为例,4个直接访问源对多个Bank并发访问cycle如图4所示。每一行对应一个直接访问源,第一直接访问源的起始访问cycle为cycle0,共4个cycle;第二个直接访问源的起始访问cycle为cycle1,共4个cycle,分别为cycle1、cycle2、cycle3和下一个循环的cycle0;第三个直接访问源的起始访问cycle为cycle2,共4个cycle,分别为cycle2、cycle3、下一个循环的cycle0和cycle1;第四个直接访问源的起始访问cycle为cycle3,共4个cycle,分别为cycle3、下一个循环的cycle0、cycle1和cycle2。
根据以上访问规则,可达到如下效果:
1.共享缓存内n个Bank可供n个直接访问源直接访问;
2.每个直接访问源带宽为:freq*w;freq为1/cycle。
若系统存在间接访问源,补充如下规则:
1.单个直接访问源若仅访问一个Cell的部分数据,则剩余cycle空闲,为IDLEcycle,IDLE cycle提供给间接访问源;如图5所示。
根据以上访问规则,可达到如下效果:
1.可将IDLE cycle分配给多个间接访问源,包括2种情况,第一种是某个直接访问源未访问整个Bank的cycle,如图5的第3行所示;第二种是某个直接访问源在对应cycle未进行访问的,如图5的第2、4行所示。
2.间接访问源可获取带宽为Bank数*w–直接访问源总带宽;
由于访问cycle是不固定的,间接访问源响应可能存在抖动;
在系统需要支持更多的直接访问源、更大的系统总带宽,或直接访问源数量与总Bank数不一致时,补充如下访问规则:
1.通过扩展Bank组个数以支持更多的直接访问源,将系统设计为g组Bank组,每个Bank组包括n个Bank,则可支持直接访问源个数为:g*n,每个Bank组内单独运行上述共享缓存的实现方法。如图6所示。
根据以上访问规则,可达到如下效果:
1.系统总共享缓存可供最多g*n个直接访问源访问;
2.若实际直接访问源小于g*n,则多余的直接访问源访问cycle将出现空闲,这些空闲cycle将分配给间接访问源使用。
本发明合理组织数据节点存储方式,使得多个直接访问源可同时无阻塞的根据指定地址访问数据缓存,访问延时固定;
本发明消除直接访问源抢占相同Bank访问权限的场景,提升了共享缓存多源访问时的整体带宽;
本发明将直接访问源的剩余带宽提供给间接访问源,在数据缓存总带宽较大的情况下,间接访问源仍可提供获得高访问带宽。
本发明通过全新的数据组织形式,设计了一种多源无阻塞访问的高性能共享数据缓存机制,消除了直通访问源抖动时间,提升了系统数据缓存有效带宽。同时,由于其多源直通的特性,一般不需要额外进行数据预取或设计二级缓存,有效的降低了系统数据通路设计的复杂度,减少了ASIC/FPGA实现面积。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种高性能多通道共享缓存的实现方法,其特征在于,该方法包括:
系统内有n个直接访问源,每个源位宽为w;
将共享缓存划分为n个Bank,分别为Bank0~Bankn,每个Bank位宽为w;设定每个源每次访问的数据大小为1个Cell,每个Cell大小定义为n*w;
将每个Cell对应的数据平铺在n个Bank中,Bank a的Cellb对应的数据存放于Bank0~Bankn的地址为:
a+b*n;
采用如下访问规则共享缓存:
每个直接访问源每个cycle访问位宽为wbit,每个直接访问源访问1个完整的Cell需要n个cycle;
直接访问源按照1个Cell串行连续访问Bank0~Bankn;
Bank a的Cellb起始访问cycle与a+b*n对应,起始访问Bank为Bank0。
2.如权利要求1所述的高性能多通道共享缓存的实现方法,其特征在于,Bank a的Cellb对应的数据按顺序平铺在Bank0~Bankn对应的地址中。
3.如权利要求1所述的高性能多通道共享缓存的实现方法,其特征在于,串行连续访问指时间上n个cycle是连续的,且串行访问Bank0~Bankn获取数据。
4.如权利要求1所述的高性能多通道共享缓存的实现方法,其特征在于,每个Bank每个Cell的起始访问cycle是固定的。
5.如权利要求1所述的高性能多通道共享缓存的实现方法,其特征在于,共享缓存内n个Bank供n个直接访问源直接访问,每个直接访问源带宽为:freq*w,freq为1/cycle。
6.如权利要求1-5任一项所述的高性能多通道共享缓存的实现方法,其特征在于,单个直接访问源若仅访问一个Cell的部分数据,则剩余cycle空闲,为IDLE cycle,IDLE cycle提供给间接访问源。
7.如权利要求6所述的高性能多通道共享缓存的实现方法,其特征在于,IDLE cycle包括某个直接访问源未访问整个Bank的cycle,以及某个直接访问源在对应cycle未进行访问的cycle。
8.如权利要求6所述的高性能多通道共享缓存的实现方法,其特征在于,间接访问源带宽为Bank数*w–直接访问源总带宽。
9.如权利要求6所述的高性能多通道共享缓存的实现方法,其特征在于,通过扩展Bank组个数以支持更多的直接访问源,将系统设计为g组Bank组,每个Bank组包括n个Bank,从而支持直接访问源个数为:g*n。
10.如权利要求9所述的高性能多通道共享缓存的实现方法,其特征在于,共享缓存供最多g*n个直接访问源访问,若实际直接访问源小于g*n,则多余的直接访问源访问cycle将出现空闲,空闲cycle分配给间接访问源使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210638868.9A CN115052042B (zh) | 2022-06-07 | 2022-06-07 | 一种高性能多通道共享缓存的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210638868.9A CN115052042B (zh) | 2022-06-07 | 2022-06-07 | 一种高性能多通道共享缓存的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115052042A true CN115052042A (zh) | 2022-09-13 |
CN115052042B CN115052042B (zh) | 2023-05-26 |
Family
ID=83160710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210638868.9A Active CN115052042B (zh) | 2022-06-07 | 2022-06-07 | 一种高性能多通道共享缓存的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115052042B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010109A (zh) * | 2023-02-23 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 缓存资源分配方法、装置、电子设备和存储介质 |
CN117093371B (zh) * | 2023-02-23 | 2024-05-17 | 摩尔线程智能科技(北京)有限责任公司 | 缓存资源分配方法、装置、电子设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983439A (zh) * | 2006-05-16 | 2007-06-20 | 华为技术有限公司 | 一种提高ram读写效率的方法 |
US20090043943A1 (en) * | 2004-11-23 | 2009-02-12 | Efficient Memory Technology | Method and apparatus of multiple abbreviations of interleaved addressing of paged memories and intelligent memory banks therefor |
CN101621469A (zh) * | 2009-08-13 | 2010-01-06 | 杭州华三通信技术有限公司 | 数据报文存取控制装置和方法 |
US7750915B1 (en) * | 2005-12-19 | 2010-07-06 | Nvidia Corporation | Concurrent access of data elements stored across multiple banks in a shared memory resource |
US8108625B1 (en) * | 2006-10-30 | 2012-01-31 | Nvidia Corporation | Shared memory with parallel access and access conflict resolution mechanism |
CN108733415A (zh) * | 2018-05-16 | 2018-11-02 | 中国人民解放军国防科技大学 | 支持向量随机访存的方法及装置 |
CN111857831A (zh) * | 2020-06-11 | 2020-10-30 | 海光信息技术有限公司 | 一种存储体冲突优化方法、并行处理器及电子设备 |
CN113946435A (zh) * | 2020-07-17 | 2022-01-18 | 华为技术有限公司 | 内存管理技术及计算机系统 |
WO2022028209A1 (zh) * | 2020-08-05 | 2022-02-10 | 华为技术有限公司 | 一种内存故障处理方法和装置 |
-
2022
- 2022-06-07 CN CN202210638868.9A patent/CN115052042B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090043943A1 (en) * | 2004-11-23 | 2009-02-12 | Efficient Memory Technology | Method and apparatus of multiple abbreviations of interleaved addressing of paged memories and intelligent memory banks therefor |
US7750915B1 (en) * | 2005-12-19 | 2010-07-06 | Nvidia Corporation | Concurrent access of data elements stored across multiple banks in a shared memory resource |
CN1983439A (zh) * | 2006-05-16 | 2007-06-20 | 华为技术有限公司 | 一种提高ram读写效率的方法 |
US8108625B1 (en) * | 2006-10-30 | 2012-01-31 | Nvidia Corporation | Shared memory with parallel access and access conflict resolution mechanism |
CN101621469A (zh) * | 2009-08-13 | 2010-01-06 | 杭州华三通信技术有限公司 | 数据报文存取控制装置和方法 |
CN108733415A (zh) * | 2018-05-16 | 2018-11-02 | 中国人民解放军国防科技大学 | 支持向量随机访存的方法及装置 |
CN111857831A (zh) * | 2020-06-11 | 2020-10-30 | 海光信息技术有限公司 | 一种存储体冲突优化方法、并行处理器及电子设备 |
CN113946435A (zh) * | 2020-07-17 | 2022-01-18 | 华为技术有限公司 | 内存管理技术及计算机系统 |
WO2022028209A1 (zh) * | 2020-08-05 | 2022-02-10 | 华为技术有限公司 | 一种内存故障处理方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010109A (zh) * | 2023-02-23 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 缓存资源分配方法、装置、电子设备和存储介质 |
CN117093371A (zh) * | 2023-02-23 | 2023-11-21 | 摩尔线程智能科技(北京)有限责任公司 | 缓存资源分配方法、装置、电子设备和存储介质 |
CN117093371B (zh) * | 2023-02-23 | 2024-05-17 | 摩尔线程智能科技(北京)有限责任公司 | 缓存资源分配方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115052042B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6965969B2 (en) | Non-uniform cache apparatus, systems, and methods | |
KR100679362B1 (ko) | 메모리 요청 재정렬에 의해 버스 이용도를 향상시키는메모리 제어기 | |
US5390308A (en) | Method and apparatus for address mapping of dynamic random access memory | |
JP4299536B2 (ja) | Dramベースのランダム・アクセス・メモリ・サブシステムでツリー・アクセスに関する性能を改善するためのマルチ・バンク・スケジューリング | |
US11099746B2 (en) | Multi-bank memory with one read port and one or more write ports per cycle | |
EP2645259B1 (en) | Method, device and system for caching data in multi-node system | |
US8838901B2 (en) | Coordinated writeback of dirty cachelines | |
US8683128B2 (en) | Memory bus write prioritization | |
US6434674B1 (en) | Multiport memory architecture with direct data flow | |
JP2005525652A (ja) | アウトオブオーダdramシーケンサ | |
US10152434B2 (en) | Efficient arbitration for memory accesses | |
KR20010086035A (ko) | 메모리 장치의 물리적 페이지 상태를 탐색하기 위해페이지 태그 레지스터를 이용하는 방법 | |
US6665775B1 (en) | Cache dynamically configured for simultaneous accesses by multiple computing engines | |
CN115052042B (zh) | 一种高性能多通道共享缓存的实现方法 | |
KR20180006645A (ko) | 메모리 버퍼를 포함하는 메모리 시스템 | |
CN105487988B (zh) | 基于存储空间复用提高sdram总线有效访问速率的方法 | |
US20230102680A1 (en) | Stacked command queue | |
JP2561261B2 (ja) | バッファ記憶アクセス方法 | |
KR100710531B1 (ko) | 범용 리소스 접근 제어기 | |
US6542958B1 (en) | Software control of DRAM refresh to reduce power consumption in a data processing system | |
CN114742214A (zh) | 一种神经网络的高速缓存方法、系统、装置及存储介质 | |
US20010034808A1 (en) | Cache memory device and information processing system | |
US20220066672A1 (en) | Memory controller partitioning for hybrid memory system | |
US20230186976A1 (en) | Method and apparatus for recovering regular access performance in fine-grained dram | |
WO2024001414A1 (zh) | 报文的缓存方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |