参数确定及数据读写方法、处理器、装置、计算机设备制造方法及图纸

技术编号:38989071 阅读:11 留言:0更新日期:2023-10-07 10:19
本公开实施例提供了一种参数确定及数据读写方法、处理器、装置、计算机设备、计算机可读存储介质。该参数确定方法包括:获取预设的计算模块的数据请求粒度;计算模块属于一处理器,处理器包括缓存模块和至少两个计算模块,缓存模块包括与每一计算模块一一对应的第一缓存子模块、以及各个第一缓存子模块共用的第二缓存子模块;确定每一第一缓存子模块分别与第二缓存子模块之间的第一数据位宽;基于至少一个数据请求粒度和至少一个第一数据位宽,确定目标缓存子模块中缓存行的粒度;目标缓存子模块包括以下至少之一:第一缓存子模块,第二缓存子模块。根据本公开实施例,能够提高缓存模块中存储空间的利用率,并更好地满足各计算模块的缓存需求。模块的缓存需求。模块的缓存需求。

【技术实现步骤摘要】
参数确定及数据读写方法、处理器、装置、计算机设备


[0001]本公开涉及但不限于计算机
,尤其涉及一种参数确定及数据读写方法、处理器、装置、计算机设备、计算机可读存储介质。

技术介绍

[0002]缓存模块(Cache)是处理器中一个常用的模块,缓存模块中缓存行(Cacheline)的粒度(size)是一个缓存模块的关键参数,因此,在处理器芯片的设计过程中,缓存模块中缓存行粒度的确定方式非常重要。然而,相关技术中确定缓存模块中缓存行的粒度的方案往往会导致缓存模块的存储空间利用率较低。

技术实现思路

[0003]有鉴于此,本公开实施例至少提供一种参数确定及数据读写方法、处理器、装置、计算机设备、计算机可读存储介质,能够提高缓存模块中存储空间的利用率,并能更好地满足各计算模块的缓存需求。
[0004]本公开实施例的技术方案是这样实现的:本公开实施例提供一种参数确定方法,所述方法包括:获取预设的计算模块的数据请求粒度;所述计算模块属于一处理器,所述处理器包括缓存模块和至少两个所述计算模块,所述缓存模块包括与每一所述计算模块一一对应的第一缓存子模块、以及各个所述第一缓存子模块共用的第二缓存子模块;确定每一所述第一缓存子模块分别与所述第二缓存子模块之间的第一数据位宽;基于至少一个所述数据请求粒度和至少一个所述第一数据位宽,确定目标缓存子模块中缓存行的粒度;其中,所述目标缓存子模块包括以下至少之一:所述第一缓存子模块,所述第二缓存子模块。
[0005]本公开实施例提供一种处理器,包括:缓存模块和至少两个计算模块;所述缓存模块包括与每一所述计算模块一一对应的第一缓存子模块、以及各个所述第一缓存子模块共用的第二缓存子模块;每一所述第一缓存子模块与所述第二缓存子模块之间具有第一数据位宽;对于所述缓存模块中的目标缓存子模块,所述目标缓存子模块中缓存行的粒度是基于至少一个所述计算模块的数据请求粒度和至少一个所述第一数据位宽确定的,所述目标缓存子模块包括以下至少之一:所述第一缓存子模块,所述第二缓存子模块。
[0006]本公开实施例提供一种数据读写方法,应用于处理器的缓存模块中,所述处理器与主存储器连接,所述处理器包括至少两个计算模块和所述缓存模块,所述缓存模块包括与每一所述计算模块一一对应的第一缓存子模块、以及各个所述第一缓存子模块共用的第二缓存子模块;所述方法包括:接收第一读数据请求;所述第一读数据请求是由至少一个所述计算模块中的第一计算模块发送的;
基于所述第一读数据请求,从第一目标缓存子模块、所述第二缓存子模块或所述主存储器中,读取与所述第一读数据请求匹配的第一目标数据,并将所述第一目标数据返回至所述第一计算模块;所述第一目标缓存子模块为与所述第一计算模块对应的第一缓存子模块;其中,每一所述第一缓存子模块与所述第二缓存子模块之间具有第一数据位宽;目标缓存子模块中缓存行的粒度是基于至少一个所述计算模块的数据请求粒度和至少一个所述第一数据位宽确定的,所述目标缓存子模块包括以下至少之一:所述第一缓存子模块,所述第二缓存子模块。
[0007]本公开实施例提供一种参数确定装置,所述装置包括:第一获取模块,用于获取预设的计算模块的数据请求粒度;所述计算模块属于一处理器,所述处理器包括缓存模块和至少两个所述计算模块,所述缓存模块包括与每一所述计算模块一一对应的第一缓存子模块、以及各个所述第一缓存子模块共用的第二缓存子模块;第一确定模块,用于确定每一所述第一缓存子模块分别与所述第二缓存子模块之间的第一数据位宽;第二确定模块,用于基于至少一个所述数据请求粒度和至少一个所述第一数据位宽,确定目标缓存子模块中缓存行的粒度;其中,所述目标缓存子模块包括以下至少之一:所述第一缓存子模块,所述第二缓存子模块。
[0008]本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述参数确定方法或数据读写方法中的部分或全部步骤。
[0009]本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述参数确定方法或数据读写方法中的部分或全部步骤。
[0010]本公开实施例中,处理器包括缓存模块和至少两个计算模块,缓存模块包括与每一计算模块一一对应的第一缓存子模块、以及各个第一缓存子模块共用的第二缓存子模块。通过获取预设的计算模块的数据请求粒度、以及每一第一缓存子模块分别与第二缓存子模块之间的第一数据位宽,并针对至少一个数据请求粒度和至少一个第一数据位宽,确定第一缓存子模块和/或第二缓存子模块中缓存行的粒度。这样,由于确定处理器的缓存模块中第一缓存子模块和/或第二缓存子模块的缓存行的粒度的过程中,考虑了处理器的缓存模块中至少一个第一缓存子模块对应的计算模块的数据请求粒度、以及至少一个第一缓存子模块与第二缓存子模块之间的数据位宽,因而可以使得第一缓存子模块和/或第二缓存子模块能够更好地匹配下游计算模块的缓存需求、以及第一缓存子模块与上游第二缓存子模块之间的数据传输能力,从而可以提高缓存模块中存储空间的利用率,并能更好地满足计算模块的缓存需求。
[0011]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
[0012]此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公
开的实施例,并与说明书一起用于说明本公开的技术方案。
[0013]图1A为本公开实施例提供的一种处理器的组成结构示意图一;图1B为本公开实施例提供的一种参数确定方法的实现流程示意图二;图2为本公开实施例提供的一种参数确定方法的实现流程示意图三;图3为本公开实施例提供的一种参数确定方法的实现流程示意图四;图4为本公开实施例提供的一种数据读写方法的实现流程示意图一;图5A为本公开实施例提供的一种数据读写方法的实现流程示意图二;图5B为本公开实施例提供的一种第五地址信息的字段结构示意图;图6A为本公开实施例提供的一种参数确定方法的实现流程示意图五;图6B为本公开实施例提供的一种包含多粒度的计算模块的处理器的组成结构示意图;图7为本公开实施例提供的一种参数确定装置的组成结构示意图;图8为本公开实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
[0014]为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
[0015]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0016]所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种参数确定方法,其特征在于,所述方法包括:获取预设的计算模块的数据请求粒度;所述计算模块属于一处理器,所述处理器包括缓存模块和至少两个所述计算模块,所述缓存模块包括与每一所述计算模块一一对应的第一缓存子模块、以及各个所述第一缓存子模块共用的第二缓存子模块;确定每一所述第一缓存子模块分别与所述第二缓存子模块之间的第一数据位宽;基于至少一个所述数据请求粒度和至少一个所述第一数据位宽,确定目标缓存子模块中缓存行的粒度;其中,所述目标缓存子模块包括以下至少之一:所述第一缓存子模块,所述第二缓存子模块。2.根据权利要求1所述的方法,其特征在于,每一所述第一缓存子模块与所述第二缓存子模块之间的第一数据位宽均相等。3.根据权利要求2所述的方法,其特征在于,所述目标缓存子模块包括所述第一缓存子模块;所述基于至少一个所述数据请求粒度和至少一个所述第一数据位宽,确定目标缓存子模块中缓存行的粒度,包括:在第一数据请求粒度小于或等于所述第一数据位宽的情况下,确定第一缓存行粒度与所述第一数据位宽相等;其中,所述第一数据请求粒度为所述第一缓存子模块对应的计算模块的数据请求粒度,所述第一缓存行粒度为所述第一缓存子模块中缓存行的粒度。4.根据权利要求3所述的方法,其特征在于,所述第一缓存子模块中具有多个存储块,所述存储块中包括至少一个存储子块;所述在第一数据请求粒度小于或等于所述第一数据位宽的情况下,确定第一缓存行粒度与所述第一数据位宽相等,包括:在所述第一数据请求粒度小于所述第一数据位宽的情况下,确定所述第一缓存行粒度与所述第一数据位宽相等,且所述第一缓存子模块的每一存储块中包括的存储子块的数量等于第一比值,所述第一比值为所述第一数据位宽与所述第一数据请求粒度之间的比值;在所述第一数据请求粒度等于所述第一数据位宽的情况下,确定所述第一缓存行粒度与所述第一数据位宽相等,且所述第一缓存子模块的每一存储块中包括一个存储子块。5.根据权利要求2所述的方法,其特征在于,所述目标缓存子模块包括所述第一缓存子模块;所述基于至少一个所述数据请求粒度和至少一个所述第一数据位宽,确定目标缓存子模块中缓存行的粒度,包括:在第一数据请求粒度大于所述第一数据位宽的情况下,基于第二缓存行粒度,确定第一缓存行粒度;其中,所述第一数据请求粒度为所述第一缓存子模块对应的计算模块的数据请求粒度,所述第一缓存行粒度为所述第一缓存子模块中缓存行的粒度,所述第二缓存行粒度为所述第二缓存子模块中缓存行的粒度。6.根据权利要求5所述的方法,其特征在于,所述基于第二缓存行粒度,确定第一缓存行粒度,包括:在所述第一数据请求粒度不超过所述第二缓存行粒度的情况下,确定所述第一缓存行粒度与所述第一数据请求粒度相等;在所述第一数据请求粒度大于所述第二缓存行粒度的情况下,确定所述第一缓存行粒度为所述第一数据位宽和第一预设数量之间的乘积;其中,所述第一预设数量为预设的所述第二缓存子模块中缓存行所支持拆分的缓存分区的数量上限。
7.根据权利要求2至6中任一项所述的方法,其特征在于,所述目标缓存子模块包括所述第二缓存子模块;所述基于至少一个所述数据请求粒度和至少一个所述第一数据位宽,确定目标缓存子模块中缓存行的粒度,包括:确定各所述数据请求粒度中的最大值与所述第一数据位宽之间的第二比值;在所述第二比值不超过第一预设数量的情况下,确定第二缓存行粒度与所述最大值相等;其中,所述第二缓存行粒度为所述第二缓存子模块中缓存行的粒度,所述第一预设数量为所述第二缓存子模块中缓存行所支持拆分的缓存分区的数量上限;在所述第二比值大于所述第一预设数量的情况下,确定所述第二缓存行粒度为所述第一数据位宽和所述第一预设数量之间的乘积。8.根据权利要求2至6中任一项所述的方法,其特征在于,所述第二缓存子模块中的缓存行包括多个缓存分区;所述方法还包括:确定所述缓存分区的粒度与所述第一数据位宽相等。9.根据权利要求1至6中任一项所述的方法,其特征在于,所述确定每一所述第一缓存子模块分别与所述第二缓存子模块之间的第一数据位宽,包括:基于预设位宽条件,确定每一所述第一缓存子模块分别与所述第二缓存子模块之间的第一数据位宽;其中,所述预设位宽条件包括以下至少之一:所述第一数据位宽不小于各所述数据请求粒度中的最小值,且所述第一数据位宽不大于各所述数据请求粒度中的最大值;所述第一数据位宽与所述最小值之间的比值不大于第二预设数量;所述第一缓存子模块中具有多个存储块,所述第二预设数量为预设的单个存储块所支持拆分的存储子块的数量上限;所述第一数据位宽小于预设的第一位宽上限;所述第一位宽上限为所述第一缓存子模块与所述第二缓存子模块之间所支持的最大数据位宽。10.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:针对每一所述第一缓存子模块,基于第一数据请求粒度,确定第二数据位宽,所述第二数据位宽为所述第一缓存子模块与对应的计算模块之间的数据位宽,所述第一数据请求粒度为所述第一缓存子模块对应的计算模块的数据请求粒度。11.根据权利要求10所述的方法,其特征在于,所述基于第一数据请求粒度,确定第二数据位宽,包括:获取预设的所述第一缓存子模块与对应的计算模块之间的第二位宽上限;在所述第一数据请求粒度小于所述第二位宽上限的情况下,确定所述第二数据位宽与所述数据请求粒度相等;在所述第一数据请求粒度大于或等于所述第二位宽上限的情况下,确定所述第二数据位宽与所述第二位宽上限相等。12.一种数据读写方法,其特征在于,应用于处理器的缓存模块中,所述处理器与主存储器连接,所述处理器包括所述缓存模块和至少两个计算模块,所述缓存模块包括与每一所述计算模块一一对应的第一缓存子模块、以及各个所述第一缓存子模块共用的第二缓存子模块;所述方法包括:接收第一读数据请求;所述第一读数据请求是由至少一个所述计算模块中的第一计算
模块发送的;基于所述第一读数据请求,从第一目标缓存子模块、所述第二缓存子模块或所述主存储器中,读取与所述第一读数据请求匹配的第一目标数据,并将所述第一目标数据返回至所述第一计算模块;所述第一目标缓存子模块为与所述第一计算模块对应的第一缓存子模块;其中,每一所述第一缓存子模块与所述第二缓存子模块之间具有第一数据位宽;目标缓存子模块中缓存行的粒度是基于至少一个所述计算模块的数据请求粒度和至少一个所述第一数据位宽确定的,所述目标缓存子模块包括以下至少之一:所述第一缓存子模块,所述第二缓存子模块。13.根据权利要求12所述的方法,其特征在于,所述基于所述第一读数据请求,从第一目标缓存子模块、所述第二缓存子模块或所述主存储器中,读取与所述第一读数据请求匹配的第一目标数据,并将所述第一目标数据返回至所述第一计算模块,包括:所述第一目标缓存子模块响应于所述第一读数据请求,从第一存储空间中读取所述第一目标数据;所述第一存储空间为所述第一目标缓存子模块的存储空间;在从所述第一存储空间中未读取到所述第一目标数据的情况下,所述第一目标缓存子模块基于所述第一读数据请求中携带的第一地址信息,向所述第二缓存子模块发送第二读数据请求;所述第二读数据请求中携带有与所述第一地址信息具有映射关系的第二地址信息;所述第二缓存子模块响应于所述第二读数据请求,基于所述第二地址信息从所述第二缓存子模块或所述主存储器中,读取所述第一目标数据,并将所述第一目标数据返回至所述第一计算模块。14.根据权利要求13所述的方法,其特征在于,所述第一目标缓存子模块基于所述第一读数据请求中携带的第一地址信息,向所述第二缓存子模块发送第二读数据请求,包括:所述第一目标缓存子模块获取与所述第一读数据请求对应的读取模式标识信息;所述第一目标缓存子模块基于所述第一地址信息,向所述第二缓存子模块发送第二读数据请求;所述第二读数据请求中携带有所述第二地址信息、以及所述读取模式标识信息;所述基于所述第二地址信息从所述第二缓存子模块或所述主存储器中,读取所述第一目标数据,包括:基于所述第二地址信息和所述读取模式标识信息,从所述第二缓存子模块或所述主存储器中,读取所述第一目标数据。15.根据权利要求14所述的方法,其特征在于,所述第一目标缓存子模块获取与所述第一读数据请求对应的读取模式标识信息,包括:在第一缓存行粒度小于第二缓存行粒度的情况下,所述第一目标缓存子模块确定与所述第一读数据请求对应的读取模式标识信息为表征进行多倍预读取的第一模式标识;所述第一缓存行粒度为所述第一目标缓存子模块中缓存行的粒度,所述第二缓存行粒度为所述第二缓存子模块中缓存行的粒度。16.根据权利要求14所述的方法,其特征在于,所述基于所述第二地址信息和所述读取模式标识信息,从所述第二缓存子模块或所述主存储器中,读取所述第一目标数据,包括:在所述读取模式标识信息包括第一模式标识的情况下,从所述第二缓存子模块或所述
主存储器中,读取与所述第二地址信息对应的所述第一目标数据、以及与至少一个第三地址信息分别对应的第二目标数据;所述第一模式标识表征进行多倍预读取;将所述第一目标数据和每一所述第二目标数据返回至所述第一目标缓存子模块;所述方法还包括:所述第一目标缓存子模块响应于接收的所述第一目标数据和每一所述第二目标数据,至少将所...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

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

1