片上重复寻址的方法及装置的制造方法
【专利摘要】本发明提供一种片上重复寻址的方法及其相应的装置,该方法包括:数据划分步骤,根据预定的数据划分原则将片上存储介质和/或片外存储介质的数据划分为不同的数据块,所述数据划分原则包括将重用距离低于预定距离阈值的数据划分在同一个数据块;数据索引步骤,根据预定的替换策略的顺序关系,依次载入不同的所述数据块到至少一个片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址。本发明将重用距离小于预定的距离阈值的数据划分在同一个数据块,这些数据划分在同一数据块上可以一次载入片内存储然后使用尽可能多的次数,从而访存更加高效。
【专利说明】
片上重复寻址的方法及装置
技术领域
[0001 ]本发明涉及一种片上重复寻址的方法及装置。
【背景技术】
[0002]在大数据时代,越来越多的设备需要对于真实世界的实时输入进行越来越复杂的处理,如工业机器人、自动驾驶无人汽车以及移动设备等等。这些任务大多数偏向于机器学习领域,其中大部分运算为向量运算或者矩阵运算,具有极高的并行度。相较于传统通用的GPU/CPU加速方案,硬件ASIC加速器是目前最受欢迎的加速方案,一方面可以提供极高的并行度可以实现极高的性能,另外一方面具有极高的能效性。
[0003]然而这其中带宽成为限制加速器性能的一大瓶颈,常见的解决方案是通过放置在片上的缓存来平衡带宽的不均衡性。这些常见的解决方案并没有对数据读写进行优化,从而不能很好的利用数据的特性使得片上存储开销过大,数据读写开销过大。对于目前常见的机器学习类算法,其数据大多具有重用性,也即同样的数据会被多次使用,从而数据具有多次重复寻址的特性,如神经网络中的权值。
[0004]综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
【发明内容】
[0005]针对上述的缺陷,本发明的目的在于提供一种片上重复寻址的方法及装置,将数据按照预定的数据划分原则划分成数据块,使得划分在同一数据块上的数据可以一次载入片内存储然后使用尽可能多的次数,从而使得访存更加高效。
[0006]为了实现上述目的,本发明提供一种片上重复寻址的方法,包括:
[0007]数据划分步骤,根据预定的数据划分原则将片上存储介质和/或片外存储介质的数据划分为不同的数据块,所述数据划分原则包括将重用距离低于预定距离阈值的数据划分在同一个数据块;
[0008]数据索引步骤,根据预定的替换策略的顺序关系,依次载入不同的所述数据块到至少一个片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址。
[0009]根据本发明所述的方法,所述数据的索引地址包括数据块地址与块内地址;
[0010]所述数据索引步骤包括:根据所述替换策略的顺序关系和所述数据块地址,依次载入不同的所述数据块到至少一个所述片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址,当所述数据块的所述块内地址全部索引完成后才替换新的数据块,直至没有数据块被需要载入为止。
[0011]根据本发明所述的方法,所述片上存储介质与所述片上处理单元通过片内数据通路进行数据交换;
[0012]所述片上存储介质与所述片外存储介质通过片内外数据通路进行数据交换,所述片上存储介质或所述片外存储介质至少一次从内部或外部进行读写;
[0013]所述数据以数据块为单位在所述片上存储介质、所述片外存储介质和/或所述片上处理单元两两之间搬运。
[0014]根据本发明所述的方法,所述数据块的数据量小于所述片上存储介质的容量。
[0015]根据本发明所述的方法,所述片上存储介质采用读写端口分离设计。
[0016]根据本发明所述的方法,所述方法应用于学习类加速器。
[0017]根据本发明所述的方法,所述方法应用于异构环境。
[0018]根据本发明所述的方法,所述片上处理单元为片上运算模块,所述根据预定条件选取数据,满足所述预定条件的所述数据被划分在相同的所述数据块中。
[0019]根据本发明所述的方法,所述预定条件包括简单划分条件、平均为预定数目的数据块条件、与不同输出神经元相关条件或者满足预定数学关系条件。
[0020]根据本发明所述的方法,所述替换策略包括顺序替换、逆序替换或者乱序替换;或者
[0021]所述替换策略包括数据写回,在数据处理完成后将最终结果或中间结果写回所述片上存储介质、所述片外存储介质和/或所述片上处理单元。
[0022]本发明相应提供一种实现上述所述方法的片上重复寻址的装置,包括:
[0023]数据划分模块,用于根据预定的数据划分原则将片上存储介质和/或片外存储介质的数据划分为不同的数据块,所述数据划分原则包括将重用距离低于预定距离阈值的数据划分在同一个数据块;
[0024]数据索引模块,用于根据预定的替换策略的顺序关系,依次载入不同的所述数据块到至少一个片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址。
[0025]本发明将重用距离小于预定的距离阈值的数据划分在同一个数据块,重用距离指的是一个数据两次使用的距离,距离是指访存次数,重用距离近的数据在运行短期内就会被访问,也即就有很强的时间上的相关性。这些数据划分在同一数据块上可以一次载入片内存储然后使用尽可能多的次数,从而访存更加高效。
【附图说明】
[0026]图1是本发明片上重复寻址的装置的优选实施例的总体结构的示例的框图;
[0027]图2是本发明片上重复寻址的方法的优选实施例的数据地址划分图;
[0028]图3是本发明片上重复寻址的方法的优选实施例的数据划分示意图之一;
[0029]图4是本发明片上重复寻址的方法的优选实施例的数据划分示意图之二;
[0030]图5是本发明片上重复寻址的方法的优选实施例的替换策略示意图;
[0031]图6是本发明片上重复寻址的方法的一种具体实施例的流程图;
[0032]图7是本发明片上重复寻址的方法的片上重复索引优选实施例示意图。
【具体实施方式】
[0033]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034]本发明包括用于片上重复数据寻址的装置及该装置的调度使用方法,目的在于针对重复数据高效地进行读写,可以有效的实现片上重复寻址,同时支持片上片外数据交换,通过数据和地址划分,片上数据重复寻址空间可以被扩展到片外地址空间。本发明能够降低访存带宽需求,同时提供良好的灵活性,从而降低片上存储开销,而且能够适用于不同场景,并不仅仅局限于机器学习类加速器。
[0035]本发明同时可通过合理调度数据,缩减片上缓存开销,从而可提供更加高效的加速器设计支持。合理调度数据不仅仅指数据替换策略,也包括对于计算的划分,重新安排计算顺序,使得集中访问的数据可被安排在相同的数据块中。本发明为异构环境下利用片上重复寻址用于降低访存带宽,涉及存储单元、寻址单元的实施和调度。
[0036]图1是优选实施例的总体结构的示例框图。举例说明,对于异构平台来说,加速器的片上存储介质20能够存储的数据十分有限,通常来讲片上有限的资源限制了将所有数据放置在片上的可能性,所以将大存储介质(廉价,速度稍慢)放在片外,小存储介质(昂贵,速度快)集成在片上,需要将所有的数据划分成为大小可以存储在片上存储介质20的数据块,通过存储容量大的片外存储介质10和存储容量小的片上存储介质20上的数据交互将所需数据块读入或者写出。其间,片内地址索引单元40将片内数据地址按需提供给片上处理单元30。本发明的存储介质并不限定,可以是静态随机存储器(Static Random AccessMemory,SRAM),动态随机存储器(Dynamic Random Access Memory,DRAM),增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,eDRAM),寄存器堆(Register file,RF)等常见存储介质,也可是新型的存储器件,如非易失存储器(Non-Vo Iati Ie Memory,NVM)或3D存储器件等。
[0037]本发明提供一种片上重复寻址的方法,是一种当总数据过大,大于片上存储介质20的存储容量时所使用的数据管理策略,从而可以把片外的数据读取至片内进行快速重复寻址,当然,也可以实现片外重复寻址,然而高效的做法是将集中访问的数据放在一起,一次搬至片内,然后直接在片内快速寻址。该方法包括:
[0038]数据划分步骤,根据预定的数据划分原则将片上存储介质和/或片外存储介质的数据划分为不同的数据块,所述数据划分原则包括将重用距离低于预定距离阈值的数据划分在同一个数据块。重用距离指的是一个数据两次使用的距离,距离是指访存次数,重用距离近的数据在运行短期内就会被访问,也即就有很强的时间上的相关性。这些数据划分在同一数据块上可以一次载入片内存储然后使用尽可能多的次数,从而访存更加高效。在每个数据块中,数据则按照预定的规则存储介质内,例如,顺序存储。
[0039]数据索引步骤,根据预定的替换策略的顺序关系,依次载入不同的所述数据块到至少一个片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址。该数据块里的数据可在片内直接重复寻址,避免从片外存储或10多次读写(速度慢,功耗高)。采用有效的数据划分原则,从而使得上述替换发生次数尽可能的少(有效的数据划分原则可减少替换次数,有效的数据替换策略在此基础上可进一步减少替换次数)。
[0040]优选的是,图2所示即为数据地址划分图,所述数据的索引地址50包括数据块地址51与块内地址52;即每个数据的地址为当前数据块地址51与块内地址52拼接而成。将数据划分成为合理的数据块后,通过将地址划分成为片内和片外使得片内重复寻址更加高效。地址索引所采用的技术并不局限于简单的数据索引,也包括codebook(码本)等划分实施方案。
[0041]所述数据索引步骤包括:根据所述替换策略的顺序关系和数据块地址51,依次载入不同的所述数据块到至少一个片上处理单元30,被载入的所述数据块中的重复数据在片内重复寻址,当所述数据块的块内地址52全部索引完成后才替换新的数据块,直至没有数据块被需要载入为止。在数据块内进行索引时,只有数据的块内地址52有用,则索引的硬件单元不需要使用数据块地址51,然而数据块地址51仍然需要记录从而可以被后续使用。
[0042]优选的是,片上存储介质20与片上处理单元30通过片内数据通路进行数据交换;片上存储介质20与片外存储介质10通过片内外数据通路进行数据交换,片上存储介质20或片外存储介质10至少一次从内部或外部进行读写;所述数据以数据块为单位在片上存储介质20、片外存储介质10和/或片上处理单元30两两之间搬运。
[0043]优选的是,所述数据块的数据量小于片上存储介质20的容量,优选能够被其整除。
[0044]优选的是,片上存储介质20采用读写端口分离设计,从而使得数据的读出和写入相互独立,可以同时进行。
[0045]优选的是,所述方法应用于学习类加速器。
[0046]优选的是,所述方法应用于异构环境。
[0047]优选的是,片上处理单元30为片上运算模块,所述根据预定条件选取数据,满足所述预定条件的所述数据被划分在相同的所述数据块中。具体的是,所述预定条件包括简单划分条件、平均为预定数目的数据块条件、与不同输出神经元相关条件或者满足预定数学关系条件。这些是针对不同情况下具体的数据划分准则,仍在数据划分原则限定的范围内。
[0048]如图3所示为一个优选实施例的数据划分示意图。以常见的神经网络为例(向量运算),不同输出神经元所需的权值数据存储在不同的数据块,运算时,需要在不同的时刻载入不同的数据块进行索引。输入神经元的值是被复用,计算两个输出神经元用的是同样的输入。在计算输出神经元的时候需要载入相关的权值,计算完成后则这部分权值完全不需要了;计算输出神经元时,需要载入相关的权值。其中相同输入神经元的值只存了一份,也即计算时需要重复寻址。相同的权值也只存了一份,也需要重复寻址获得。
[0049]如图4所示为一个优选实施例的数据划分示意图。同样以常见的神经网络为例(向量运算),满足指定条件的权值连接被划分存储在同样的数据块中,如实线权值连接和虚线权值连接。在不同的时刻,不同数据块被载入,运算单元根据指定条件选取数据,如所有的输出神经元先计算与实线权值连接的相关计算,在数据块替换后再计算与虚线权值连接的相关计算。
[0050]优选的是,所述替换策略包括顺序替换、逆序替换或者乱序替换;图5所示即为一个优选实施例的替换策略示意图,数据被划分成为不同的数据块,在不同时刻,根据不同的替换策略载入不同的数据块。如顺序替换,数据块按照#1、#2、#3以此类推的顺序载入;逆序替换,数据块按照.、#(N-1)、#(N_2)的顺序载入;乱序替换,则根据指定的顺序读入数据块。或者,所述替换策略包括数据写回,在数据处理完成后将最终结果或中间结果写回所述片上存储介质、所述片外存储介质和/或所述片上处理单元。不同的替换策略应当考虑到数据的一致性。
[0051]本发明相应提供一种实现片上重复寻址的方法的装置,该装置包括:
[0052]数据划分模块,用于根据预定的数据划分原则将片上存储介质和/或片外存储介质的数据划分为不同的数据块,所述数据划分原则包括将重用距离低于预定距离阈值的数据划分在同一个数据块;
[0053]数据索引模块,用于根据预定的替换策略的顺序关系,依次载入不同的所述数据块到至少一个片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址。
[0054]优选的是,所述数据的索引地址包括数据块地址与块内地址;
[0055]所述数据索引模块用于根据所述替换策略的顺序关系和所述数据块地址,依次载入不同的所述数据块到至少一个所述片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址,当所述数据块的所述块内地址全部索引完成后才替换新的数据块,直至没有数据块被需要载入为止。
[0056]优选的是,所述片上存储介质与所述片上处理单元通过片内数据通路进行数据交换;
[0057]所述片上存储介质与所述片外存储介质通过片内外数据通路进行数据交换,所述片上存储介质或所述片外存储介质至少一次从内部或外部进行读写;
[0058]所述数据以数据块为单位在所述片上存储介质、所述片外存储介质和/或所述片上处理单元两两之间搬运。
[0059]优选的是,所述数据块的数据量小于所述片上存储介质的容量。
[0060]优选的是,所述片上存储介质采用读写端口分离设计。
[0061]优选的是,所述装置应用于学习类加速器。
[0062]优选的是,所述装置应用于异构环境。
[0063]优选的是,所述片上处理单元为片上运算模块,所述根据预定条件选取数据,满足所述预定条件的所述数据被划分在相同的所述数据块中。
[0064]优选的是,所述预定条件包括简单划分条件、平均为预定数目的数据块条件、与不同输出神经元相关条件或者满足预定数学关系条件。
[0065]优选的是,所述替换策略包括顺序替换、逆序替换或者乱序替换;或者
[0066]所述替换策略包括数据写回,在数据处理完成后将最终结果或中间结果写回所述片上存储介质、所述片外存储介质和/或所述片上处理单元。
[0067]图6所示即为一个优选实施例的利用片上数据重复寻址降低访存带宽需求装置使用的流程图。开始计算后,
[0068]步骤SlOl,数据按照数据划分原则划分成为不同的数据块。
[0069]步骤S102,将数据块载入片上存储介质20。在某一时刻,只有一块数据块被载入片上存储介质20用于片上计算,根据不同的替换策略,不同的数据块按不同的顺序被载入用于运算。
[0070]步骤S103,对获取的数据进行片上计算。
[0071]步骤S104,判断是否所有的计算完毕没有数据块需要再次载入,如果是则全部计算结束,否则,回到步骤S102。
[0072]图7所示即为一个优选实施例的计算单元根据地址进行重复寻址的框图。根据地址索引,存储于地址DA的数据被计算单元#0、#2、#4所需要,则实施例索引至地址DA,并将DA中的数据传播给所需的计算单元,即#0、#2和#4。这个例子中,三个计算单元所需要的数据因为是一样的,所以在片上只存储了一份,也即同一个数据要被重复寻址三次。图7中数据传递给片上计算单元的方式并不局限于BUS总线的连接方式,也包括Crossbar结构、FAT-TREE、H-TREE等其他连接方式。
[0073]综上所述,本发明将重用距离小于预定的距离阈值的数据划分在同一个数据块,重用距离指的是一个数据两次使用的距离,距离是指访存次数,重用距离近的数据在运行短期内就会被访问,也即就有很强的时间上的相关性。这些数据划分在同一数据块上可以一次载入片内存储然后使用尽可能多的次数,从而访存更加高效。本发明旨在利用片上的重复寻址用于降低访存带宽。本发明的装置及其相关使用方法可以有效的提供数据的复用性和其灵活寻址的需求,能够适用于不同场景,并不仅仅局限于机器学习类加速器。
[0074]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【主权项】
1.一种片上重复寻址的方法,其特征在于,包括: 数据划分步骤,根据预定的数据划分原则将片上存储介质和/或片外存储介质的数据划分为不同的数据块,所述数据划分原则包括将重用距离低于预定距离阈值的数据划分在同一个数据块; 数据索引步骤,根据预定的替换策略的顺序关系,依次载入不同的所述数据块到至少一个片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址。2.根据权利要求1所述的方法,其特征在于,所述数据的索引地址包括数据块地址与块内地址; 所述数据索引步骤包括:根据所述替换策略的顺序关系和所述数据块地址,依次载入不同的所述数据块到至少一个所述片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址,当所述数据块的所述块内地址全部索引完成后才替换新的数据块,直至没有数据块被需要载入为止。3.根据权利要求1所述的方法,其特征在于,所述片上存储介质与所述片上处理单元通过片内数据通路进行数据交换; 所述片上存储介质与所述片外存储介质通过片内外数据通路进行数据交换,所述片上存储介质或所述片外存储介质至少一次从内部或外部进行读写; 所述数据以数据块为单位在所述片上存储介质、所述片外存储介质和/或所述片上处理单元两两之间搬运。4.根据权利要求1所述的方法,其特征在于,所述数据块的数据量小于所述片上存储介质的容量。5.根据权利要求1所述的方法,其特征在于,所述片上存储介质采用读写端口分离设i+o6.根据权利要求1所述的方法,其特征在于,所述方法应用于学习类加速器;和/或 所述方法应用于异构环境。7.根据权利要求1所述的方法,其特征在于,所述片上处理单元为片上运算模块,所述根据预定条件选取数据,满足所述预定条件的所述数据被划分在相同的所述数据块中。8.根据权利要求6所述的方法,其特征在于,所述预定条件包括简单划分条件、平均为预定数目的数据块条件、与不同输出神经元相关条件或者满足预定数学关系条件。9.根据权利要求7所述的方法,其特征在于,所述替换策略包括顺序替换、逆序替换或者乱序替换;或者 所述替换策略包括数据写回,在数据处理完成后将最终结果或中间结果写回所述片上存储介质、所述片外存储介质和/或所述片上处理单元。10.—种实现如权利要求1?9任一项所述方法的片上重复寻址的装置,其特征在于,包括: 数据划分模块,用于根据预定的数据划分原则将片上存储介质和/或片外存储介质的数据划分为不同的数据块,所述数据划分原则包括将重用距离低于预定距离阈值的数据划分在同一个数据块; 数据索引模块,用于根据预定的替换策略的顺序关系,依次载入不同的所述数据块到至少一个片上处理单元,被载入的所述数据块中的重复数据在片内重复寻址。
【文档编号】G06F12/0831GK105912476SQ201610210095
【公开日】2016年8月31日
【申请日】2016年4月6日
【发明人】郭崎, 陈天石, 陈云霁
【申请人】中国科学院计算技术研究所