CN114443523A - 一种适用于gpu的地址动态切割交织方法及系统 - Google Patents
一种适用于gpu的地址动态切割交织方法及系统 Download PDFInfo
- Publication number
- CN114443523A CN114443523A CN202210071719.9A CN202210071719A CN114443523A CN 114443523 A CN114443523 A CN 114443523A CN 202210071719 A CN202210071719 A CN 202210071719A CN 114443523 A CN114443523 A CN 114443523A
- Authority
- CN
- China
- Prior art keywords
- transaction
- interleaving
- cutting
- address
- transmission length
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种适用于GPU的地址动态切割交织方法及系统,该方法包括如下步骤:地址切割步骤,根据交织粒度、交易特性等输入信号作为动态地址切割的参数,基于交易进行输入地址的切割;交织步骤,根据交织通道数确定交织位宽,并用散列变换将切割后的地址进行重新映射;通道匹配步骤,根据输入地址和交织策略,将切割后的交易匹配到各个通道上。本发明以切割和交织的嵌合设计为基础,降低逻辑级数的同时,在交织上引入散列变换,解决了GPU访存过程中单猝发交易大量堆积在同一交织通道上的问题,同时以控制信号作为动态切割与交织的参数,使GPU具备动态调整交织方案的功能。
Description
技术领域
本发明属于内存访问技术领域,更具体地,涉及一种适用于图形处理器(GraphicsProcessing Unit,GPU)的地址动态切割交织方法及系统。
背景技术
随着GPU性能和规模的不断提升,其对访存性能的需求越来越高,为了提高对存储的访存速度,很多高性能芯片都引入了多通道技术,内存控制器通过同时访问分布在不同通道的内存上,来实现访存速度的提升。但由于地址连续性的问题,数据常常不能按照理想的方式散布在不同内存中,由此引入一种名为交织的技术,使得同一段地址的内存能够分布到不同通道中去,通过同时访问不同通道的交织地址进一步提升访存的性能。GPU中存在众多功能模块与内存的大量数据交互,访存性能的低下将成为GPU性能的瓶颈,优化GPU的访存方法对于其设计占据相当重要的地位。
GPU对访存性能的需求尤其突出,系统入口带宽一般都大于内存入口带宽,同一内存通道经常会同时被多个主机访问,交易的随机访问与顺序访问穿插进行,对交织功能具有很大的挑战。固定的交织粒度无法修改,导致不能针对访存特性进行最优的交织粒度配置,无法将交织技术发挥至最大。同时由于GPU交织数据量巨大,访存过程中若存在单猝发交易大量堆积在同一交织通道上的情况,将会导致交易在阻塞交织通道上的等待从而大幅提升系统访存平均延时,明显降低了GPU的性能甚至导致显示出错。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种适用于GPU的地址动态切割交织方法及系统,旨在解决GPU访存过程中单猝发交易大量堆积在同一交织通道上且不能针对访存特性进行最优的交织粒度配置的问题。
为实现上述目的,第一方面,本发明提供了一种适用于GPU的地址动态切割交织方法,包括如下步骤:
确定待进行交易的信息,所述交易指有一段数据等待传输至GPU,所述交易的信息包括:交易的起始地址、交易传输长度、交易的数据位宽、交织粒度以及交织策略;所述交织策略指示交易是否采用交织存取策略以及采样交织存取策略时对应的交织区域和非交织区域;
当根据所述交织策略确定所述交易采用交织存取策略时,对交织粒度取对数运算确定切割数据的位宽;
根据所述交易传输长度、交易的数据位宽以及切割数据的位宽确定切割边界的传输长度;
基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,并确定切割后的各段子交易的起始地址;
根据GPU从机个数确定需要进行交织存取的通道数,并基于所述通道数确定交织位的位宽,采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,并确定对应的交织位,所述交织位用于指示所述交易被切割后所要交织存储的目标通道;
根据所述交织策略确定所述交易传输长度对应的交织区域和非交织区域,当切割后的子交易地址存在于所述交织区域时,将切割后的子交易根据所述交织位发送到对应的目标通道。
在一个可选的实施例中,基于所述交易传输长度和切割边界的传输长度对所述交易进行切割之前,还包括如下步骤:
基于所述交易传输长度和切割边界的传输长度判断所述待进行交易是否需要切割,若交易传输长度小于或等于切割边界的传输长度,则不需要进行切割,若交易传输长度大于切割边界的传输长度,则需要切割;
当交易不需要进行切割时,直接将交易的起始地址映射到对应的通道。
在一个可选的实施例中,所述基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,具体为:
将所述交易切割成多段长度为切割边界的传输长度的子交易,直至剩余未被切割的交易的传输长度小于切割边界的传输长度,此时,将剩余未被切割的部分作为切割得到的最后一个子交易。
在一个可选的实施例中,所述采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,具体为:
以交织位的位宽为一个周期,从切割后子交易起始地址的最低位开始轮询三个周期并将对应的位进行位或操作并赋值给所述交织位,以使得子交易按照地址映射到各个通道。
在一个可选的实施例中,所述交织粒度参数可调。
在一个可选的实施例中,该方法还包括如下步骤:
在高位留出交织位宽的寻址位,最高位与子交易的起始地址保持一致,其他位填0,将交织位前后两端进行拼接,得到交织地址。
第二方面,本发明提供一种适用于GPU的地址动态切割交织系统,包括:
交易信息确定单元,用于确定待进行交易的信息,所述交易指有一段数据等待传输至GPU,所述交易的信息包括:交易的起始地址、交易传输长度、交易的数据位宽、交织粒度以及交织策略;所述交织策略指示交易是否采用交织存取策略以及采样交织存取策略时对应的交织区域和非交织区域;
切割位宽确定单元,用于当根据所述交织策略确定所述交易采用交织存取策略时,对交织粒度取对数运算确定切割数据的位宽;
交易切割单元,用于根据所述交易传输长度、交易的数据位宽以及切割数据的位宽确定切割边界的传输长度;以及基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,并确定切割后的各段子交易的起始地址;
交易交织单元,用于根据GPU从机个数确定需要进行交织存取的通道数,并基于所述通道数确定交织位的位宽,采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,并确定对应的交织位,所述交织位用于指示所述交易被切割后所要交织存储的目标通道;以及根据所述交织策略确定所述交易传输长度对应的交织区域和非交织区域,当切割后的子交易地址存在于所述交织区域时,将切割后的子交易根据所述交织位发送到对应的目标通道。
在一个可选的实施例中,所述交易切割单元还用于基于所述交易传输长度和切割边界的传输长度判断所述待进行交易是否需要切割,若交易传输长度小于或等于切割边界的传输长度,则不需要进行切割,若交易传输长度大于切割边界的传输长度,则需要切割;当交易不需要进行切割时,直接将交易的起始地址映射到对应的通道。
在一个可选的实施例中,所述交易切割单元基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,具体为:将所述交易切割成多段长度为切割边界的传输长度的子交易,直至剩余未被切割的交易的传输长度小于切割边界的传输长度,此时,将剩余未被切割的部分作为切割得到的最后一个子交易。
在一个可选的实施例中,所述交易交织单元采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,具体为:以交织位的位宽为一个周期,从切割后子交易起始地址的最低位开始轮询三个周期并将对应的位进行位或操作并赋值给所述交织位,以使得子交易按照地址映射到各个通道。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供一种适用于GPU的地址动态切割交织方法及系统,以交易特性和交织特性等作为输入信号调整地址切割的计算方法,并根据切割的结果改变交织方案生成交织地址,将切割的多位地址经过散列变换到交织位上,重映射切割地址、交织位等地址信息生成交织地址,最后以交织地址和交织策略为依据进行通道的动态匹配。实现了交织功能的动态调整,根据应用需求进行交织方案的改变,解决了GPU访存过程中若存在单猝发交易大量堆积在同一交织通道上的情况,大幅度提升了GPU的访存性能。
附图说明
图1为本发明实施例提供的适用于GPU的地址动态切割交织方法流程图;
图2为本发明实施例提供的一种具体的地址动态切割交织方法流程图;
图3为本发明实施例提供的一种具体的切割流程图;
图4为本发明实施例提供的一种具体的交织流程图;
图5为本发明实施例提供的一种具体的通道匹配流程图;
图6为本发明实施例提供的适用于GPU的地址动态切割交织系统架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明公开了一种适用于GPU的地址动态切割交织方法及系统,该方法包括如下步骤:地址切割步骤,根据交织粒度、交易特性等输入信号作为动态地址切割的参数,基于交易进行输入地址的切割;交织步骤,根据交织通道数确定交织位宽,并用散列变换将切割后的地址进行重新映射;通道匹配步骤,根据输入地址和交织策略,将切割后的交易匹配到各个通道上。本方法以切割和交织的嵌合设计为基础,降低逻辑级数的同时,在交织上引入散列变换,解决了GPU访存过程中单猝发交易大量堆积在同一交织通道上的问题,同时以控制信号作为动态切割与交织的参数,使GPU具备动态调整交织方案的功能。
本发明提供一种适用于GPU的地址动态切割交织方法及系统,以切割和交织的嵌合设计为基础,降低逻辑级数的同时,解决交织方案固定与交易未有效散布到多通道的问题。
为实现上述目的,本发明提供的方法包括以下步骤:
地址切割步骤,根据交织粒度、交易特性等输入信号作为地址切割的参数,以输入的交易为单位对输入地址的进行动态切割;
交织步骤,根据交织通道数确定交织位宽,对切割地址使用散列变换计算得到交织位;
通道匹配步骤,重映射切割地址、交织位等地址信息生成交织地址,根据交织策略将切割后的交易匹配到各个通道上。
所述地址切割步骤中,包括地址分析和交易切割两个步骤,
地址分析步骤根据交织粒度等输入信号作为地址切割的参数,计算交织边界等参数;
进一步地,根据交织存取信号判断该笔交易的交织策略,若不需要交织则直接匹配通道,若需要交织,通过交织粒度、交易特性等输入等参数计算得到距离切割边界的传输长度。
交易切割步骤基于交易长度,在交织边界上对交易进行切割,并对切割后的交易再次执行地址分析和地址切割步骤,直至切割完成。
进一步地,根据交易特性与距离切割边界的传输长度对交易进行切割,得到切割后交易起始地址和传输长度。
进一步地,持续对切割后的交易再次执行地址分析和地址切割步骤,直至切割完成。
所述交织步骤中,根据需要进行交织的通道数目计算得到交织位的位宽,交织位用来指示一笔切割交易在交织存取后匹配的目标通道。
进一步地,使用散列变换使得交易按切割地址分散到各个通道,将切割的多位地址经过散列变换到交织位上,提升交织存取的性能。
所述通道匹配步骤中,重映射切割地址、交织位等地址信息生成交织地址,交织位作为通道选择被移除。
进一步地在高位留出交织位宽的寻址位,最高位与切割地址保持一致,其他位填0,将交织位前后两端进行拼接,得到交织地址。
所述地址匹配步骤中,根据交织策略确定交织区域和非交织区域,再根据区域划分与及散列变换得到的交织位确定目标通道。
当切割地址不存在于交织策略地址段中时,该交易没有地址匹配,返回寻址错误信号。
图1为本发明实施例提供的适用于GPU的地址动态切割交织方法流程图;如图1所示,包括如下步骤:
S10,确定待进行交易的信息,所述交易指有一段数据等待传输至GPU,所述交易的信息包括:交易的起始地址、交易传输长度、交易的数据位宽、交织粒度以及交织策略;所述交织策略指示交易是否采用交织存取策略以及采样交织存取策略时对应的交织区域和非交织区域;
S20,当根据所述交织策略确定所述交易采用交织存取策略时,对交织粒度取对数运算确定切割数据的位宽;
S30,根据所述交易传输长度、交易的数据位宽以及切割数据的位宽确定切割边界的传输长度;
S40,基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,并确定切割后的各段子交易的起始地址;
S50,根据GPU从机个数确定需要进行交织存取的通道数,并基于所述通道数确定交织位的位宽,采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,并确定对应的交织位,所述交织位用于指示所述交易被切割后所要交织存储的目标通道;
S60,根据所述交织策略确定所述交易传输长度对应的交织区域和非交织区域,当切割后的子交易地址存在于所述交织区域时,将切割后的子交易根据所述交织位发送到对应的目标通道。
在一个可选的实施例中,基于所述交易传输长度和切割边界的传输长度对所述交易进行切割之前,还包括如下步骤:
基于所述交易传输长度和切割边界的传输长度判断所述待进行交易是否需要切割,若交易传输长度小于或等于切割边界的传输长度,则不需要进行切割,若交易传输长度大于切割边界的传输长度,则需要切割;
当交易不需要进行切割时,直接将交易的起始地址映射到对应的通道。
在一个可选的实施例中,所述基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,具体为:
将所述交易切割成多段长度为切割边界的传输长度的子交易,直至剩余未被切割的交易的传输长度小于切割边界的传输长度,此时,将剩余未被切割的部分作为切割得到的最后一个子交易。
在一个可选的实施例中,所述采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,具体为:
以交织位的位宽为一个周期,从切割后子交易起始地址的最低位开始轮询三个周期并将对应的位进行位或操作并赋值给所述交织位,以使得子交易按照地址映射到各个通道。
在一个可选的实施例中,所述交织粒度参数可调。
参考图2所示流程图,本实施例提供一种适用于GPU的动态切割交织方法,如图2所示,本方法包括如下步骤,
步骤101,地址切割步骤:根据交织粒度、交易特性等输入信号作为地址切割的参数,以输入的交易为单位对输入地址的进行动态切割。
步骤102,交织步骤:根据交织通道数确定交织位宽,对切割地址使用散列变换计算得到交织位。
步骤103,通道匹配步骤:重映射切割地址、交织位等地址信息生成交织地址,根据交织策略确认地址区域属性,将切割后的交易匹配到各个通道上。
本发明在设计上采用切割与交织嵌合的方法,在切割与交织共通的参数上进行并发设计,通过参数引入进行交织方案的动态调整。由于GPU布局布线的问题,存储器一般散布在芯片四周,交易的交织处理无法放在总线与存储器之间,只能放在总线的入口处,该方法将接口上的交易的切割与交织嵌合处理,降低了切割与交织的逻辑消耗,减小逻辑级数;同时通过参数的引入,可以动态地调整切割与交织的策略,使GPU可以更加灵活、高效地进行访存操作。
使用散列变换处理交织位,对于传统的交织方式拥有更好的交易打散能力,交织粒度与交织通道的改变,都将改变交织位的位子,交织策略改变时,尤其是本应打散的单猝发交易。当出现GPU访存过程中出现的单猝发交易大量堆积在同一交织通道上的情况时,将会导致交易在阻塞交织通道上的等待从而大幅提升系统访存平均延时,因此用散列变化进行处理,将当前交织策略不包括的位也加入交织位的计算中,加强交易的打散能力,提升GPU的访存性能。
如图3所示,根据交织存取信号[3:0]interleave_i判断该笔交易的交织策略,当interleave_i=4’b0001时,该笔传输不采用交织存取的方式;当interleave_i≠4’b0001时,选择交织粒度Int,对交织粒度进行取对数运算得到切割数据cut_data的位宽Wcut_data=log2Int,根据该笔传输的起始地址[32:0]addr_i得到切割地址cut_addr=addr_i[31:Wcut_data],切割数据cut_data=addr_i[Wcut_data-1:0]。通过切割数据cut_data和交易位宽msize_i计算距离切割边界的传输长度cut_bdry_bl:
cut_bdry_bl=({1′d0,~cut_addr}>>msize_i)+1′d1
当interleave_i=4’b0010时,该笔传输交织粒度为64Bytes,切割数据cut_data位宽为6,cut_addr=addr_i[31:6];当interleave_i=4’b0100时,该笔传输交织粒度为128Bytes,切割数据cut_data位宽为7,cut_addr=addr_i[31:7];当interleave_i=4’b1000时,该笔传输交织粒度为256Bytes,cut_addr=addr_i[31:8]。msize_i表示输入交易的数据位宽,1′d1表示该运算为闭区间运算,addr_i[]表示输入交易的起始地址,Wcut_data表示切割数据的位宽。
每笔交易进入后,根据距离切割边界的传输长度和交易传输长度mburstlength_i判断是否需要切割,若距离切割边界的传输长度大于交易传输长度则该笔交易不需要切割,得到起始地址cut_addr,传输长度mburstlength_i的交易,若距离切割边界的传输长度小于交易传输长度则得到起始地址cut_addr,传输长度cut_bdry_bl的交易,并对该笔交易进行切割,其中:经过切割后当前交易还保留的传输长度cut_remaining_bl=mburstlength_i-cut_bdry_bl;同时对切割地址cut_addr进行处理cut_addr=cut_addr+1,得到起始地址为cut_addr+1,传输长度cut_remaining_bl的交易,并再对cut_remaining_bl进行上述与切割边界的比较。
如图4所示,需要进行交织存取的通道数目为interleave_number_i,用该参数确定交织位interleave_channel的位宽interleave_bit=log2interleave_number_i,交织位interleave_channel用来指示一笔交易在交织存取后的目标通道。
为了使得各个通道交织的数据能够平均,以交织位的位宽为一个周期,从切割地址cut_addr的最低位开始轮询三个周期并将对应位进行位或操作并赋值给[interleave_bit:0]interleave_channel,使用该散列变换使得交易按地址分散到各个通道。
interleave_channel[0]
=cut_addr[0]^cut_addr[interleave_bit]^cut_addr[2*interleave_bit]
其中,符号^表示按位异或运算。
如图5所示,根据切割地址cut_addr与当前地址的交织策略确定交织存取区域和非交织存取区域,再根据区域划分与及散列变换得到的交织位interleave_channel确定目标通道;当切割地址不存在与交织策略地址段中时,该交易没有地址匹配,返回寻址错误信号。
由于已经确定目标通道,因此交织地址interleave_addr_o可以不包含交织位的位宽,仅用于存储器的读写,交织位处于原切割地址的中间部分,若位子不变,需要存储器进行识别,所以将用0填充并放置高位,并将交织位前后两端进行拼接,得到交织地址:
interleave_addr_o
={(interleave_bit)′b0,addr_i[31:Wcut_data+interleave_bit],cut_addr[Wcut_data-1:0]}
其中,(interleave_bit)′b0表示位宽为interleave_bit的二进制0。
图6为本发明实施例提供的适用于GPU的地址动态切割交织系统架构图,如图6所示,包括:
交易信息确定单元610,用于确定待进行交易的信息,所述交易指有一段数据等待传输至GPU,所述交易的信息包括:交易的起始地址、交易传输长度、交易的数据位宽、交织粒度以及交织策略;所述交织策略指示交易是否采用交织存取策略以及采样交织存取策略时对应的交织区域和非交织区域;
切割位宽确定单元620,用于当根据所述交织策略确定所述交易采用交织存取策略时,对交织粒度取对数运算确定切割数据的位宽;
交易切割单元630,用于根据所述交易传输长度、交易的数据位宽以及切割数据的位宽确定切割边界的传输长度;以及基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,并确定切割后的各段子交易的起始地址;
交易交织单元640,用于根据GPU从机个数确定需要进行交织存取的通道数,并基于所述通道数确定交织位的位宽,采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,并确定对应的交织位,所述交织位用于指示所述交易被切割后所要交织存储的目标通道;以及根据所述交织策略确定所述交易传输长度对应的交织区域和非交织区域,当切割后的子交易地址存在于所述交织区域时,将切割后的子交易根据所述交织位发送到对应的目标通道。
需要说明的是,图6中各个单元的详细功能实现可参见前述方法实施例中的介绍,在此不做赘述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种适用于GPU的地址动态切割交织方法,其特征在于,包括如下步骤:
确定待进行交易的信息,所述交易指有一段数据等待传输至图形处理器GPU,所述交易的信息包括:交易的起始地址、交易传输长度、交易的数据位宽、交织粒度以及交织策略;所述交织策略指示交易是否采用交织存取策略以及采样交织存取策略时对应的交织区域和非交织区域;
当根据所述交织策略确定所述交易采用交织存取策略时,对交织粒度取对数运算确定切割数据的位宽;
根据所述交易传输长度、交易的数据位宽以及切割数据的位宽确定切割边界的传输长度;
基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,并确定切割后的各段子交易的起始地址;
根据GPU从机个数确定需要进行交织存取的通道数,并基于所述通道数确定交织位的位宽,采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,并确定对应的交织位,所述交织位用于指示所述交易被切割后所要交织存储的目标通道;
根据所述交织策略确定所述交易传输长度对应的交织区域和非交织区域,当切割后的子交易地址存在于所述交织区域时,将切割后的子交易根据所述交织位发送到对应的目标通道。
2.根据权利要求1所述的地址动态切割交织方法,其特征在于,基于所述交易传输长度和切割边界的传输长度对所述交易进行切割之前,还包括如下步骤:
基于所述交易传输长度和切割边界的传输长度判断所述待进行交易是否需要切割,若交易传输长度小于或等于切割边界的传输长度,则不需要进行切割,若交易传输长度大于切割边界的传输长度,则需要切割;
当交易不需要进行切割时,直接将交易的起始地址映射到对应的通道。
3.根据权利要求1或2所述的地址动态切割交织方法,其特征在于,所述基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,具体为:
将所述交易切割成多段长度为切割边界的传输长度的子交易,直至剩余未被切割的交易的传输长度小于切割边界的传输长度,此时,将剩余未被切割的部分作为切割得到的最后一个子交易。
4.根据权利要求1或2所述的地址动态切割交织方法,其特征在于,所述采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,具体为:
以交织位的位宽为一个周期,从切割后子交易起始地址的最低位开始轮询三个周期并将对应的位进行位或操作并赋值给所述交织位,以使得子交易按照地址映射到各个通道。
5.根据权利要求1或2所述的地址动态切割交织方法,其特征在于,所述交织粒度参数可调。
6.根据权利要求1或2所述的地址动态切割交织方法,其特征在于,还包括如下步骤:
在高位留出交织位宽的寻址位,最高位与子交易的起始地址保持一致,其他位填0,将交织位前后两端进行拼接,得到交织地址。
7.一种适用于GPU的地址动态切割交织系统,其特征在于,包括:
交易信息确定单元,用于确定待进行交易的信息,所述交易指有一段数据等待传输至图形处理器GPU,所述交易的信息包括:交易的起始地址、交易传输长度、交易的数据位宽、交织粒度以及交织策略;所述交织策略指示交易是否采用交织存取策略以及采样交织存取策略时对应的交织区域和非交织区域;
切割位宽确定单元,用于当根据所述交织策略确定所述交易采用交织存取策略时,对交织粒度取对数运算确定切割数据的位宽;
交易切割单元,用于根据所述交易传输长度、交易的数据位宽以及切割数据的位宽确定切割边界的传输长度;以及基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,并确定切割后的各段子交易的起始地址;
交易交织单元,用于根据GPU从机个数确定需要进行交织存取的通道数,并基于所述通道数确定交织位的位宽,采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,并确定对应的交织位,所述交织位用于指示所述交易被切割后所要交织存储的目标通道;以及根据所述交织策略确定所述交易传输长度对应的交织区域和非交织区域,当切割后的子交易地址存在于所述交织区域时,将切割后的子交易根据所述交织位发送到对应的目标通道。
8.根据权利要求7所述的地址动态切割交织系统,其特征在于,所述交易切割单元还用于基于所述交易传输长度和切割边界的传输长度判断所述待进行交易是否需要切割,若交易传输长度小于或等于切割边界的传输长度,则不需要进行切割,若交易传输长度大于切割边界的传输长度,则需要切割;当交易不需要进行切割时,直接将交易的起始地址映射到对应的通道。
9.根据权利要求7或8所述的地址动态切割交织系统,其特征在于,所述交易切割单元基于所述交易传输长度和切割边界的传输长度对所述交易进行切割,具体为:将所述交易切割成多段长度为切割边界的传输长度的子交易,直至剩余未被切割的交易的传输长度小于切割边界的传输长度,此时,将剩余未被切割的部分作为切割得到的最后一个子交易。
10.根据权利要求7或8所述的地址动态切割交织系统,其特征在于,所述交易交织单元采用散列变换基于所述交织位的位宽将切割后的子交易的起始地址映射到各个通道,具体为:以交织位的位宽为一个周期,从切割后子交易起始地址的最低位开始轮询三个周期并将对应的位进行位或操作并赋值给所述交织位,以使得子交易按照地址映射到各个通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071719.9A CN114443523B (zh) | 2022-01-21 | 2022-01-21 | 一种适用于gpu的地址动态切割交织方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071719.9A CN114443523B (zh) | 2022-01-21 | 2022-01-21 | 一种适用于gpu的地址动态切割交织方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114443523A true CN114443523A (zh) | 2022-05-06 |
CN114443523B CN114443523B (zh) | 2023-05-09 |
Family
ID=81368072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210071719.9A Active CN114443523B (zh) | 2022-01-21 | 2022-01-21 | 一种适用于gpu的地址动态切割交织方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443523B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250212A1 (en) * | 2007-04-09 | 2008-10-09 | Ati Technologies Ulc | Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information |
CN108845958A (zh) * | 2018-06-19 | 2018-11-20 | 中国科学院软件研究所 | 一种交织器映射和动态内存管理系统及方法 |
US20190220949A1 (en) * | 2018-01-12 | 2019-07-18 | Ribbon Communications Operating Company, Inc. | Methods and apparatus for supporting communication of content streams using efficient memory organization |
US20190361807A1 (en) * | 2018-05-24 | 2019-11-28 | Qualcomm Incorporated | Dynamic adjustment of memory channel interleave granularity |
CN112463665A (zh) * | 2020-10-30 | 2021-03-09 | 中国船舶重工集团公司第七0九研究所 | 一种用于多通道显存交织模式的切换方法及装置 |
-
2022
- 2022-01-21 CN CN202210071719.9A patent/CN114443523B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250212A1 (en) * | 2007-04-09 | 2008-10-09 | Ati Technologies Ulc | Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information |
US20190220949A1 (en) * | 2018-01-12 | 2019-07-18 | Ribbon Communications Operating Company, Inc. | Methods and apparatus for supporting communication of content streams using efficient memory organization |
US20190361807A1 (en) * | 2018-05-24 | 2019-11-28 | Qualcomm Incorporated | Dynamic adjustment of memory channel interleave granularity |
CN108845958A (zh) * | 2018-06-19 | 2018-11-20 | 中国科学院软件研究所 | 一种交织器映射和动态内存管理系统及方法 |
CN112463665A (zh) * | 2020-10-30 | 2021-03-09 | 中国船舶重工集团公司第七0九研究所 | 一种用于多通道显存交织模式的切换方法及装置 |
Non-Patent Citations (1)
Title |
---|
何国强;汪智勇;: "面向高性能计算的多通道交织存储架构设计", 现代雷达 * |
Also Published As
Publication number | Publication date |
---|---|
CN114443523B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042576B2 (en) | Method and apparatus for compressing addresses | |
CN1142493C (zh) | 具有低能耗方式的高带宽动态随机存取存储器 | |
CN111563052B (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
WO2005114669A2 (en) | System and method for improving performance in computer memory systems supporting multiple memory access latencies | |
CN112506823B (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
US20140040541A1 (en) | Method of managing dynamic memory reallocation and device performing the method | |
CN1653434A (zh) | 获得数据掩码映射信息 | |
CN114036077B (zh) | 数据处理方法及相关装置 | |
CN112269752A (zh) | 一种PCIe虚拟通道的数据处理方法及相关装置 | |
CN116431079A (zh) | 数据读取、写入方法及装置、带宽转换装置和电子设备 | |
CN118132472B (zh) | 一种基于多接口ddr内存控制器的实现方法及装置 | |
US20240289275A1 (en) | Data processing method and apparatus, and cache, processor and electronic device | |
CN110737607B (zh) | 管理hmb内存的方法、装置、计算机设备及存储介质 | |
CN1653435A (zh) | 通过控制器编程在硬件中映射数据掩码 | |
CN1714401A (zh) | 对二维访问优化的sdram地址映射 | |
CN112787955B (zh) | Mac层数据报文的处理方法、设备和存储介质 | |
CN114442908B (zh) | 一种用于数据处理的硬件加速系统及芯片 | |
CN114443523A (zh) | 一种适用于gpu的地址动态切割交织方法及系统 | |
WO2024174121A1 (zh) | 一种写数据通路结构和芯片 | |
CN115190102B (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
US20070233958A1 (en) | Cashe Device and Method for the Same | |
CN106919516B (zh) | Ddr地址映射系统和方法 | |
CN115016981B (zh) | 存储区域的设置方法、数据读取、写入方法及相关装置 | |
CN115543869A (zh) | 多路组相连高速缓冲存储器及其访问方法、计算机设备 | |
CN113886287A (zh) | 一种基于SoC的自适应实时缓存系统及方法 |
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 |