一种多库内存的数据存储、读取方法及系统技术方案

技术编号:26341994 阅读:112 留言:0更新日期:2020-11-13 20:29
本发明专利技术提供了一种多库内存的数据存储方法,包括:获取每个运算数据的当前存储库取。通过贪心算法,获取冲突最少且填充元素最少时,对应的设定变换向量作为当前变换向量。根据当前变换向量生成每个当前存储库的当前内存库号。获取对应的内部偏移地址。将运算数据根据当前内存库号与内部偏移地址,存储到多个存储库中。本发明专利技术的目的是提供一种多库内存的数据存储方法,其通过线性转换的方法将元素以恰当的方法分散在不同的内存库中,并通过子任务切割的方式将应用划分为多个小任务,大幅降低了应用对内存资源的需求。同时,本发明专利技术还提供了一种多库内存的数据读取方法及种多库内存的数据存储系统。

【技术实现步骤摘要】
一种多库内存的数据存储、读取方法及系统
本专利技术数据存储及内存管理领域。本专利技术具体涉及一种多库内存的数据存储方法及系统。
技术介绍
作为领域专用加速器的一种有前途的选择,粗粒度可重构体系结构(以下简称CGRA)因为具有接近ASIC的能源效率以及较高的软件可编程性引起了越来越多的关注。CGRA通常由主控制器(通常是CPU),PE阵列,主存储器和本地存储器(一般是多库内存结构)组成,如图1所示(图1中hostcontroller主控制器contextmemory指令存储器datamemory数据存储器PEAsharedmemory(SM)局部数据存储器Parallel-accessdatabus并行访问数据总线PEAGlobalRegfile全局寄存器堆outputregister输出寄存器localregfile局部寄存器堆contextbuffer指令缓存Multi-bankPEAsharedmemory多内存库局部数据存储器)。CGRA计算系统的执行流程如下:首先,主控制器初始化CGRA指令和输入数据并存储至主存储器中。在CGR本文档来自技高网...

【技术保护点】
1.一种多库内存的数据存储方法,其特征在于,所述多库内存为CGRA粗粒度可重构芯片中的多个存储库;所述存储库的访问模式包括:空闲模式和占用模式;所述多库内存的数据存储方法能够存储运算数据;所述运算数据具有预存储位数;/n所述多库内存的数据存储方法包括:/n步骤S101,根据所述预存储位数扫描所述运算数据的多个存储维度,匹配空闲模式的存储库,获取每个运算数据的当前存储库;/n步骤S102,根据设定变换向量、顺序扫描所述多个存储库,依次生成所述当前存储库的待定内存库号系列;所述设定变换向量与所述运算数据的存储维度对应;/n步骤S103,以一个设定顺序扫描所述运算数据的存储维度以获取内存库号,若两个...

【技术特征摘要】
1.一种多库内存的数据存储方法,其特征在于,所述多库内存为CGRA粗粒度可重构芯片中的多个存储库;所述存储库的访问模式包括:空闲模式和占用模式;所述多库内存的数据存储方法能够存储运算数据;所述运算数据具有预存储位数;
所述多库内存的数据存储方法包括:
步骤S101,根据所述预存储位数扫描所述运算数据的多个存储维度,匹配空闲模式的存储库,获取每个运算数据的当前存储库;
步骤S102,根据设定变换向量、顺序扫描所述多个存储库,依次生成所述当前存储库的待定内存库号系列;所述设定变换向量与所述运算数据的存储维度对应;
步骤S103,以一个设定顺序扫描所述运算数据的存储维度以获取内存库号,若两个相邻维的所述待定内存库号不连续,则填充以使所述待定内存库号连续的填充元素;
步骤S104,通过贪心算法,获取冲突最少且填充元素最少时,对应的设定变换向量作为当前变换向量;
步骤S105,根据所述当前变换向量生成每个所述当前存储库的当前内存库号;
步骤S106,通过偏移函数将所述当前内存库号转换为与所述当前内存号对应的物理存储库地址且获取对应的内部偏移地址;
步骤S107,将所述运算数据根据步骤S105与S106中得到的所述当前内存库号与内部偏移地址,存储到所述多个存储库中。


2.根据权利要求1所述的数据存储方法,其特征在于,所述步骤S102中包括:
设定所述设定变换向量α=(α0,α1,...,αd-1),顺序扫描所述多个存储库,根据公式1生成所述当前存储库的待定内存库号;其中,N为所述存储库的物理存储行位数;其中x为所述存储库的物理地址号;
B(x)=(α*x)%N公式1。


3.根据权利要求1所述的数据存储方法,其特征在于,步骤S103中包括:
步骤S201,获取所述待定内存库号序列中一个或多个间断位置;
步骤S202,若所述多个间断位置对应维度相邻,则在间断位置填充以使所述待定内存库号连续的填充元素。


4.根据权利要求1所述的数据存储方法,其特征在于,所述步骤S104中包括:
步骤S301,设初始化循环启动间隔AII=0,Nb=N;N为内存库号;
步骤S302,获取没有填充内存库号的多个设定变换向量作为中间变换向量α;
步骤S303,判断是否存在根据所述中间变换向量α,其中∀0≤i<d,0≤αi<N,在无冲突约束的情况下,用最小化填充总开销函数Padding(α)方法得到的最佳的中间变换向量α;若存在则输出所述中间变换向量α作为当前变换向量,若不存在,则设AII=AII+1,Nb=Nb+N,返回步骤S303,重新计算,直至得到当前变换向量。


5.一种多库内存的数据读取方法,其特征在于,包括如权利要求1~4中任一项多库内存的数据存储方法;
所述多库内存的数据读取方法还包括:
设定一个读取窗口,其覆盖设定数量的多个存储库;根据一个设定滑动距离将所述读取窗口沿存储库的排列顺序滑动,读取所述读取窗口的初始位置所涵盖的多个内存数据及滑动后的读取窗口数据作为当前读取数据。

<...

【专利技术属性】
技术研发人员:李程张振欧阳鹏
申请(专利权)人:北京清微智能科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1