发明内容
为了克服现有技术的不足,解决众核处理器数据存储延迟大、传输效率低而导致的无法继续提升众核计算单元阵列并行计算效率的问题,提出一种用于众核处理系统的数据存储结构,给出用于所述的众核处理系统的数据存储结构的数据访问方法,从而降低众核处理系统的访存代价,提高的访存效率,进而大大提高众核处理器的并行处理性能。为此,本发明采取的技术方案是,用于众核处理系统的数据存储结构,包括:全局共享存储器,外部数据传输控制器,内部数据传输控制器:所述全局共享存储器,具有存储主控核通过所述外部数据传输控制器读写的数据以及存储众核计算单元阵列通过所述内部数据传输控制器读写的数据的功能,并作为每个众核计算单元都可以读写的存储器;所述全局共享存储器包括n个数据存储单元,n为正整数,所述的n个数据存储单元具有完全一样的结构,每个所述数据存储单元具有1至2组端口,端口包括:数据端口、地址端口以及读写控制、片选控制端口;外部数据传输控制器以及内部数据传输控制器通过相应的数据线、地址线及读写控制信号连接至每个数据存储单元对应的端口;每个所述数据存储单元均可以通过任意地址访问其中的数据;每个所述数据存储单元都可被各个众核计算单元间接连接访问,其数据位宽与众核计算单元的数据位宽一致;每个所述数据存储单元都可以被主控核间接连接访问。
所述外部数据传输控制器,具有实现主控核与全局共享存储器之间数据交互的功能,具体包括高位译码,用于根据主控核命令中的地址信息选通某一个数据存储单元,实现对数据存储单元指定地址的数据发出读写请求以及传输数据;其中数据来源和去向是主控核,或者是外部存储器。
所述内部数据传输控制器,具有实现众核计算单元阵列与全局共享存储器之间数据交互的功能,具体包括高位译码,用于根据主控核命令中的地址信息选通某一个数据存储单元,实现对数据存储单元指定地址的数据发出读写请求以及传输数据。
用于众核处理系统的数据访问方法,包括下列步骤:在众核计算单元阵列正在执行某个指令包的计算任务时,这里指令包包括指令包和配置包,众核计算单元阵列会通过所述内部数据传输控制器在一段时间对所述全局共享存储器中对应的某一个所述数据存储单元R进行反复的读写操作,此时其他数据存储单元并不会因为这一个数据存储单元R被占用而进入等待状态,主控核还能够通过所述外部数据传输控制器对其他数据存储单元进行合适的读写操作,且只能在一个时间点上对其中一个数据存储单元进行读取数据或者写入数据操作:
所述读取数据操作指的是,在众核计算单元阵列完成当前指令包之前的a个指令包的计算任务时,已经将需要返回给主控核的数据通过所述内部数据传输控制器写入到b个数据存储单元中,a、b为正整数,此时主控核就能够通过所述外部数据传输控制器以一定顺序将这些数据读取。
所述的写入数据操作指的是,如果众核计算单元需要执行后续的指令包,且执行这些指令包所需的初始数据与当前众核计算单元阵列正在计算的数据无关,且这些初始数据需要来源于外部,那么此时主控核就可以通过所述外部数据传输控制器将所需的这些初始数据以一定顺序写入到c个数据存储单元中,且在某一个时间点上被写入的数据存储单元不能是:当前正在被众核计算单元阵列读写的数据存储单元R、待主控核读取返回值的数据存储单元、已经写入待处理的初试数据而未被众核计算单元阵列处理过的数据存储单元,c为正整数。
与已有技术相比,本发明的技术特点与效果:
本发明提供的一种用于众核处理系统的数据存储结构及数据访问方法,使得众核处理系统在工作过程中能够根据主控核的调配使得主控核以及众核计算单元阵列能够对同时对全局共享存储器进行访问,提高了众核处理系统的数据存储和传输效率,增强了众核处理系统的性能。
本发明的其他优点可能会在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1一种现有的典型众核处理系统结构。
图2本发明的众核处理系统的数据存储结构示意图。
图3根据本发明的一个实施例的众核处理系统的数据存储结构示意图。
图4根据本发明的一个实施例的全局共享存储单元示意图。
图5根据本发明的一个实施例的外部数据传输控制器示意图。
图6根据本发明的一个实施例的内部数据传输控制器示意图。
图7一种现有众核处理系统中数据存储结构执行数据读写的过程示意图。
图8根据本发明一个实施例的并行执行主控核以及众核计算单元阵列同时对全局共享存储器中不同数据存储单元的数据读写的过程示意图。
图9一种现有的众核处理系统存储结构和方法下的时间分配效率图。
图10根据本发明的一个实施例中的众核处理系统存储结构和方法下的时间分配效率图。
具体实施方式
本发明的技术方案如下:
根据本发明的第一个目的提出一种用于众核处理系统的数据存储结构,用于实现M×N(M,N均为正整数)众核计算单元阵列(计算单元的分布以M行N列的形式分布)与系统主控核以及外部存储单元之间的数据交互,如图2所示,包括全局共享存储器100,外部数据传输控制器200,内部数据传输控制器300。
所述全局共享存储器,具有存储主控核通过所述外部数据传输控制器读写的数据以及存储众核计算单元阵列通过所述内部数据传输控制器读写的数据的功能,并作为每个众核计算单元都可以读写的存储器。
所述全局共享存储器包括n个(n为正整数)数据存储单元,所述的n个数据存储单元具有完全一样的结构,每个所述数据存储单元具有1至2组端口,端口包括:数据端口、地址端口以及读写控制、片选控制端口。外部数据传输控制器以及内部数据传输控制器通过相应的数据线、地址线及读写控制信号连接至每个数据存储单元对应的端口;每个所述数据存储单元均可以通过任意地址访问其中的数据;每个所述数据存储单元都可被各个众核计算单元间接连接访问,其数据位宽与众核计算单元的数据位宽一致;每个所述数据存储单元都可以被主控核间接连接访问。
所述外部数据传输控制器,具有实现主控核与全局共享存储器之间数据交互的功能,具体包括根据主控核命令利用地址的高位译码后对于某一个数据存储单元的选通功能,对数据存储单元指定地址的数据发出读写请求以及传输数据的功能。其中数据来源和去向可以是主控核,也可以是外部存储器。
所述内部数据传输控制器,具有实现众核计算单元阵列与全局共享存储器之间数据交互的功能,与外部数据传输控制器功能和机构基本一致,具体包括根据主控核命令用地址的高位译码后对于某一个数据存储单元的选通功能,对数据存储单元指定地址的数据发出读写请求以及传输数据的功能。
根据本发明的第二个目的提出一种适用于所述的众核处理系统数据存储结构的数据访问方法,使得整个系统能够并行执行主控核以及众核计算单元阵列同时对全局共享存储器中不同数据存储单元的数据读写,具体的实施方案为:在众核计算单元阵列正在执行某个指令包(后文均理解为指令包或配置包)的计算任务时,众核计算单元阵列会通过所述内部数据传输控制器在一段时间对所述全局共享存储器中对应的某一个所述数据存储单元R进行反复的读写操作,此时其他数据存储单元并不会因为这一个数据存储单元R被占用而进入等待状态,主控核可以通过所述外部数据传输控制器对其他数据存储单元进行合适的读写操作,且只能在一个时间点上对其中一个数据存储单元进行读取数据或者写入数据操作:
所述读取数据操作指的是,在众核计算单元阵列完成当前指令包之前的a个(a为正整数)指令包的计算任务时,已经将需要返回给主控核的数据通过所述内部数据传输控制器写入到b个(b为正整数)数据存储单元中,此时主控核就可以通过所述外部数据传输控制器以一定顺序将这些数据读取。
所述的写入数据操作指的是,如果众核计算单元需要执行后续的指令包,且执行这些指令包所需的初始数据与当前众核计算单元阵列正在计算的数据无关,且这些初始数据需要来源于外部,那么此时主控核就可以通过所述外部数据传输控制器将所需的这些初始数据以一定顺序写入到c个(c为正整数)数据存储单元中,且在某一个时间点上被写入的数据存储单元不能是:当前正在被众核计算单元阵列读写的数据存储单元R、待主控核读取返回值的数据存储单元、已经写入待处理的初试数据而未被众核计算单元阵列处理过的数据存储单元)。
所述的读取数据操作与写入数据操作在时间顺序上没有固定的先后关系。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件,标号的末位数字仅用于描述序号,而不能理解为某种意义上的顺序或理解为指示、暗示相对重要性。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“前端”“后端”“内部”“外部”等指示方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特点的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。需要说明的是,除非另有明确的规定和限定,术语“连接”应做广义理解,例如可以是固定连接,也可以是可拆卸连接,或一体式连接;可以是机械连接,也可以是电连接;可以是直接相连接,也可以具体情况理解上述术语在本发明中的具体含义。
图3为根据本发明的一个实施例的众核处理系统的数据存储结构示意图。
如图3所示,根据本发明实施例的众核处理系统的数据存储结构,包括全局共享存储器100,外部数据传输控制器200,内部数据传输控制器300。本实施例中的全局共享存储器包含2个数据存储单元,分别为数据存储单元400和数据存储单元401;图中还包括本发明以外的众核处理系统的其他结构,如主控核ARM7,外部存储器以及4×4的众核计算单元阵列,这些结构都是为了更好的解释本发明,而不能理解为对本发明的限制。
具体的,如图4所示,全局共享存储器100用于存储主控核通过外部数据传输控制器200为支持众核计算单元计算所读写的初始数据,以及存储众核计算单元阵列通过内部数据传输控制器300为返回主控核所读写的数据。在本发明的实施例中全局共享存储器100中包含2个数据存储单元400和401,这两个数据存储单元具有完全一样的结构,具有2组端口,端口包括:数据端口(D0-D4)、地址端口(A0-A9)以及读写控制、片选控制端口。一组端口用于与前端的外部数据传输模块连接,一组端口用于与后端的内部数据传输模块连接;这两个存储单元均可以通过任意地址访问其中的数据;这两个数据存储单元都可被各个众核计算单元连接访问,其数据位宽与众核计算单元的数据位宽一致,均为32bit,容量为1024;这两个数据存储单元都可以被主控核连接访问。在具体的实施例中,数据存储单元可以用标准双口RAM实现。
具体的,如图5所示,外部数据传输控制器200具有实现主控核与全局共享存储器100之间数据交互的功能,具体为根据主控核命令对于某一个数据存储单元(400/401)的地址选通功能,通过高位的地址(如图中的A10)译码后,形成对数据存储单元的选通信号,进而对数据存储单元指定地址(地10位地址A0-A9)的数据发出读写请求,并通过数据线D0-D4传输数据。其中数据来源和去向可以是主控核,也可以是外部存储器。
具体的,如图6所示,内部数据传输控制器300具有实现众核计算单元阵列与全局共享存储器100之间数据交互的功能,具体包括根据主控核命令对于某一个数据存储单元(400/401)的地址选通功能,数据存储单元指定地址的数据发出读写请求以及传输数据的功能。其中数据来源和去向为众核计算单元阵列。其结构和功能与外部数据传输单元基本一致。
图7为现有的众核处理系统中数据存储结构执行数据读写的过程示意图。图8为根据本发明一个实施例的用于众核处理系统数据存储结构中,关于并行执行主控核以及众核计算单元阵列同时对全局共享存储器100中不同数据存储单元的数据读写的过程示意图。
具体地,如图7所示,现有的执行方法流程中,由于主控核为了将初始计算数据写入共享存储器或将返回值从共享存储器中读出而占用了的共享存储器,众核计算单元阵列无法连续不间断的高效计算,使得整个众核处理系统的性能无法得到进一步的提高。而如图8所示的实施例,并行执行主控核以及众核计算单元阵列对全局共享存储器中不同数据存储单元的数据读写方法主要包括:
S401,主控核通过外部数据传输控制器200将数据写入全局共享存储器100的一个数据存储单元400/401中。S402,众核计算单元阵列执行当前指令包并在此期间反复读写数据存储单元400/401。S403,在S402执行的同时,主控核通过外部数据传输控制器200将众核计算单元阵列在下一个指令包需要用到的数据写入到全局共享存储器100的另一个数据存储单元401/400中。S404,在S402和S403都完成以后(通常S402所需时间远大于S403所需时间),众核计算单元阵列马上转入执行下一个指令包,并在此期间反复读写数据存储单元401/400。S405,在S404执行的同时,主控核通过外部数据传输控制器200将上一个指令包计算产生并存储于数据存储单元400/401的返回值读取。如果需要继续执行下个指令包,且需要新的初始计算数据,那么在S406中,主控核会在S405完成以后,在S404执行的同时,通过外部数据传输控制器200将下一个指令包需要用到的数据写入到全局共享存储器100的数据存储单元400/401中,并等待S404的完成后,切换数据存储单元(比如众核计算单元阵列正在反复读写的数据存储单元为401,那接下来的一个指令包中,众核计算单元阵列反复读写的数据存储单元切换为400);如果不需要继续执行下个指令包或者不需要新的初始计算数据,那么就跳出如图8所示的循环。如图8所示,本发明的提出的存储器访问方法的一个实施例流程即为反复循环以上对数据存储单元400和401的交替读写过程,直到所有计算任务完成,跳出循环。
通过以上方法,可以使得众核处理系统对于数据存储传输的效率大大提高,从而提升众核处理系统的性能。图9为现有的一种众核处理系统中数据存储结构和方法下的时间分配效率图,可以看到在主控核对全局共享存储器读写时,众核计算单元阵列处于空闲等待状态,无法高效利用其高性能的并行计算优势;而在众核计算单元阵列计算的时候,主控核又无法提前准备好后续指令包所需的初始数据。
图10为根据以上所述的本发明所提出的众核处理系统的数据存储结构以及数据访问方法的这一个实施例下的时间分配效率图。可以看到在主控核对全局共享存储器的一个数据存储单元进行数据读写时,完全不会妨碍众核计算单元阵列的计算以及对另一个数据存储单元的反复读写操作;反之,众核计算单元阵列进行计算和反复读写一个数据存储单元的同时,主控核可以利用这段时间从另一个数据存储单元中将上个指令包计算的返回值读取并可以将后续指令包就算所需的初始数据写入,提高了系统整体对于时间的利用效率,一定程度上解决了系统共享存储器存在“内存墙”制约的这一问题,进而提高了系统的处理性能。
在众核处理系统工作的过程中,在进行本发明提到的外部数据传输控制器对外部存储器进行数据读写的步骤时,具体的读取过程需要遵循相关总线协议(如AHB协议),本发明无需赘述
在本说明书的描述中,参考术语“一个实施例”“示例”等描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求书及其等同限定。