支持缓存一致性的多核处理器、读写方法、装置及设备制造方法及图纸

技术编号:13290658 阅读:76 留言:0更新日期:2016-07-09 09:14
本申请公开了一种支持缓存一致性的多核处理器,一种基于所述多核处理器的数据读取方法及装置、一种基于所述多核处理器的数据写入方法及装置,一种基于所述多核处理器的内存分配方法及装置,以及一种设备。其中支持缓存一致性的多核处理器包括:复数个处理器内核,与复数个处理器内核分别对应的本地缓存;不同处理器内核的本地缓存分别用于缓存不同地址范围的内存空间中的数据,每个处理器内核通过互连总线访问其他处理器内核本地缓存中的数据。本申请的技术方案,提供了一种从传统多核处理器架构中移除缓存目录和共享缓存的新思路,不仅实现了缓存的一致性,而且将私有缓存共享化,在解决私有缓存与共享缓存之间矛盾的同时,提升处理器的整体性能。

【技术实现步骤摘要】

本申请涉及多核处理器领域,具体涉及一种支持缓存一致性的多核处理器。本申请同时提供一种基于所述多核处理器的数据读取方法及装置、一种基于所述多核处理器的数据写入方法及装置,一种基于所述多核处理器的内存分配方法及装置,一种设备,以及另一种支持缓存一致性的多核处理器。
技术介绍
在计算机技术发展过程中,主存储器(即:通常所说的物理内存或者内存)的存取速度一直比中央处理器的操作速度慢得多,使中央处理器(CPU)的高速处理能力不能得到充分发挥。为了缓和CPU和主存储器之间速度不匹配的矛盾,在两者之间引入了高速缓冲存储器(cache,通常简称为缓存)。高速缓冲存储器的容量一般比主存储器小很多,但它的存取速度能与CPU相匹配。根据程序局部性原理,CPU正在访问的指令和数据,在以后的时间段中可能会被多次访问到,而该指令和数据附近的内存区域,也可能会被多次访问。因此,计算机硬件通常自动地将与CPU访问相关的内存区域中的数据调入高速缓冲存储器,从而CPU在访问内存中的数据时,可以先访问Cache,如果未能在Cache中命中,再访问内存。采用这种方式,能够尽量减少CPU对内存的直接访问,从而提高计算机系统整体的处理速度。最近几年,计算机已经朝着多核计算机体系架构方向发展。为了加快CPU核心的处理速度,通常将每个CPU核心需要访问的数据存储在其私有缓存中(例如:L1Cache和L2Cache)。由于任何一份数据都可能被多个CPU私有缓存所持有,为了减少缓存冗余,于是引入了共享缓存,即:通常将最后一级缓存(lastlevelcache,简称LLC)在各个处理器内核间共享,请参见附图1所示的多核处理器架构的示意图。共享缓存使得多个处理器内核可以共享某些数据,降低通讯延迟,同时减少数据的冗余备份,提高缓存空间利用率。由于私有缓存的存在导致同一个数据可能存在多个副本,为了保证数据一致性,现有技术通常使用基于目录的一致性协议,即:用缓存目录跟踪数据在不同CPU内核的私有缓存里的轨迹,记录每个数据在哪些私有缓存中存在副本,并根据目录内容执行读写控制,例如:当某个CPU内核需要针对私有缓存中的数据执行写操作时,首先通过缓存目录查询哪些私有缓存存储了其副本,并通知这些私有缓存将相应数据置为无效,然后再执行写操作,从而保证数据的一致性。采用上述架构以及基于缓存目录的数据一致性协议,存在以下问题:1)由于缓存目录需要跟踪数据在不同CPU内核的私有缓存里的轨迹,随着CPU内核数目的增多,缓存目录也必然不断变大,不仅占用缓存容量,而且严重影响多核扩展能力。2)私有缓存和共享缓存之间存在不可避免的矛盾,私有缓存由于包含多份相同数据导致缓存利用率降低,而共享缓存虽然可以减少冗余,提高缓存的利用率,但是随着CPU核数的增加,共享LLC需要与每个CPU内核相连,LLC设计中产生的硬件冗余度也同时变大,延迟变长,导致访问时间过长。3)当前架构导致缓存一致性协议需要对所有CPU内核的私有缓存数据进行检查,最终决定其工作行为,制约读取操作性能,比如每次读取数据都要访问LLC以及缓存目录,保证当前访问数据与其他CPU内核私有缓存数据完整一致,导致数据访问性能降低。
技术实现思路
本申请提供一种支持缓存一致性的多核处理器,以解决现有多核处理器的缓存目录占用缓存空间、影响数据访问性能、以及访问共享缓存时延长的问题。本申请另外提供一种基于所述多核处理器的数据读取方法和装置,一种基于所述多核处理器的数据写入方法和装置,一种基于所述多核处理器的内存分配方法及装置,以及一种设备。本申请提供一种支持缓存一致性的多核处理器,包括:复数个处理器内核,与所述复数个处理器内核分别对应的本地缓存;不同处理器内核的本地缓存分别用于缓存不同地址范围的内存空间中的数据,每个处理器内核通过互连总线访问其他处理器内核本地缓存中的数据。可选的,所述每一处理器内核均使用其本地缓存所对应的相应地址范围的内存空间中的内存。可选的,所述多核处理器还包括:内存控制器,与所述复数个处理器内核相连,用于供所述处理器内核访问内存中的数据。可选的,所述每个处理器内核的本地缓存包括:一级缓存和二级缓存。此外,本申请还提供一种基于上述任意一项所述多核处理器的数据读取方法,包括:待执行读取数据操作的处理器内核,根据所述数据的内存地址,判断是否为本处理器内核负责缓存的数据;若是,从本地缓存中读取所述数据;若否,向负责缓存所述数据的远端处理器内核发送读取数据请求,并接收所述远端处理器内核返回的所述数据。可选的,所述根据所述数据的内存地址,判断是否为本处理器内核负责缓存的数据,包括:根据所述数据的内存地址,按照预先设定的对内存空间进行缓存的地址划分规则,计算负责缓存所述数据的处理器内核编号;判断所述处理器内核编号是否与本内核一致,若一致,则判定所述数据是本处理器内核负责缓存的数据。可选的,所述预先设定的内核对内存空间进行缓存的地址划分规则是指,每个处理器内核负责缓存内存中以下地址范围中的数据:MEM/N×n至MEM/N×(n+1)-1;其中,MEM为内存容量,N为处理器内核的数目,n为处理器内核的编号,其取值范围是0至N-1。可选的,采用如下公式计算负责缓存所述数据的处理器内核编号:处理器内核编号=(A×N/MEM)modN;其中,A为所述数据的内存地址。可选的,所述从本地缓存中读取数据包括:根据所述数据的内存地址,判断所述数据是否已在本地缓存中缓存;若是,从本地缓存读取所述数据;若否,根据所述数据的内存地址访问内存,读取所述数据,并将所述数据所在内存数据块写入本地缓存。可选的,所述向负责缓存所述数据的远端处理器内核发送数据读取请求,并接收所述远端处理器内核返回的所述数据,包括:向负责缓存所述数据的远端处理器内核发送数据读取请求,所述请求包含所述数据的内存地址和请求方的处理器内核编号;所述远端处理器内核从其本地缓存中读取所述数据;所述远端处理器内核将读取的所述数据返回给所述请求方。可选的,所述远端处理器内核从本地缓存中读取所述数据,包括:所述远端处理器内核根据所述数据的内存地址,判断所述数据是否已在本地缓存中缓存;若是,从所述本地缓存读取所述数据;若否,根据所述数据的内存地址访问内存,读取所述数据,并将所述数据所在内存数据块写入本地缓存。...

【技术保护点】
一种支持缓存一致性的多核处理器,其特征在于,包括:复数个处理器内核,与所述复数个处理器内核分别对应的本地缓存;不同处理器内核的本地缓存分别用于缓存不同地址范围的内存空间中的数据,每个处理器内核通过互连总线访问其他处理器内核本地缓存中的数据。

【技术特征摘要】
1.一种支持缓存一致性的多核处理器,其特征在于,包括:
复数个处理器内核,与所述复数个处理器内核分别对应的本地缓存;
不同处理器内核的本地缓存分别用于缓存不同地址范围的内存空间中的数
据,每个处理器内核通过互连总线访问其他处理器内核本地缓存中的数据。
2.根据权利要求1所述的支持缓存一致性的多核处理器,其特征在于,所
述每一处理器内核均使用其本地缓存所对应的相应地址范围的内存空间中的内
存。
3.根据权利要求1-2任一所述的支持缓存一致性的多核处理器,其特征在
于,还包括:
内存控制器,与所述复数个处理器内核相连,用于供所述处理器内核访问
内存中的数据。
4.根据权利要求3所述的支持缓存一致性的多核处理器,其特征在于,所
述每个处理器内核的本地缓存包括:一级缓存和二级缓存。
5.一种基于权利要求1所述多核处理器的数据读取方法,其特征在于,包
括:
待执行读取数据操作的处理器内核,根据所述数据的内存地址,判断是否
为本处理器内核负责缓存的数据;
若是,从本地缓存中读取所述数据;
若否,向负责缓存所述数据的远端处理器内核发送读取数据请求,并接收
所述远端处理器内核返回的所述数据。
6.根据权利要求5所述的数据读取方法,其特征在于,所述根据所述数据
的内存地址,判断是否为本处理器内核负责缓存的数据,包括:
根据所述数据的内存地址,按照预先设定的对内存空间进行缓存的地址划
分规则,计算负责缓存所述数据的处理器内核编号;
判断所述处理器内核编号是否与本内核一致,若一致,则判定所述数据是
本处理器内核负责缓存的数据。
7.根据权利要求6所述的数据读取方法,其特征在于,所述预先设定的内
核对内存空间进行缓存的地址划分规则是指,每个处理器内核负责缓存内存中
以下地址范围中的数据:
MEM/N×n至MEM/N×(n+1)-1;
其中,MEM为内存容量,N为处理器内核的数目,n为处理器内核的编号,
其取值范围是0至N-1。
8.根据权利要求7所述的数据读取方法,其特征在于,采用如下公式计算
负责缓存所述数据的处理器内核编号:
处理器内核编号=(A×N/MEM)modN;
其中,A为所述数据的内存地址。
9.根据权利要求5-8任一所述的数据读取方法,其特征在于,所述从本地
缓存中读取数据包括:
根据所述数据的内存地址,判断所述数据是否已在本地缓存中缓存;
若是,从本地缓存读取所述数据;
若否,根据所述数据的内存地址访问内存,读取所述数据,并将所述数据
所在内存数据块写入本地缓存。
10.根据权利要求9所述的数据读取方法,其特征在于,所述向负责缓存
所述数据的远端处理器内核发送数据读取请求,并接收所述远端处理器内核返
回的所述数据,包括:
向负责缓存所述数据的远端处理器内核发送数据读取请求,所述请求包含
所述数据的内存地址和请求方的处理器内核编号;
所述远端处理器内核从其本地缓存中读取所述数据;
所述远端处理器内核将读取的所述数据返回给所述请求方。
11.根据权利要求10所述的数据读取方法,其特征在于,所述远端处理器
内核从本地缓存中读取所述数据,包括:
所述远端处理器内核根据所述数据的内存地址,判断所述数据是否已在本
地缓存中缓存;
若是,从所述本地缓存读取所述数据;
若否,根据所述数据的内存地址访问内存,读取所述数据,并将所述数据
所在内存数据块写入本地缓存。
12.一种基于权利要求1所述多核处理器的数据读取装置,其特征在于,
包括:
读操作判断单元,用于待执行读取数据操作的处理器内核,根据所述数据
的内存地址,判断是否为本处理器内核负责缓存的数据;
本地缓存读取单元,用于当所述读操作判断单元的输出为“是”时,从本
地缓存中读取所述数据;
远端缓存读取单元,用于当所述读操作判断单元的输出为“否”时,向负
责缓存所述数据的远端处理器内核发送读取数据请求,并接收所述远端处理器
内核返回的所述数据。
13.根据权利要求12所述的数据读取装置,其特征在于,所述读操作判断
单元包括:
读编号计算子单元,用于根据所述数据的内存地址,按照预先设定的对内
存空间进行缓存的地址划分规则,计算负责缓存所述数据的处理器内核编号;
编号判断子单元,用于判断所述处理器内核编号是否与本内核一致,若一
致,则判定所述数据是本处理器内核负责缓存的数据。
14.根据权利要求13所述的数据读取装置,其特征在于,所述读编号计算
子单元采用的地址划分规则是指,每个处理器内核负责缓存内存中以下地址范
围中的数据:
MEM/N×n至MEM/N×(n+1)-1;
其中,MEM为内存容量,N为处理器内核的数目,n为处理器内核的编号,
其取值范围是0至N-1。
15.根据权利要求14所述的数据读取装置,其特征在于,所述编号计算子
单元具体用于,采用如下公式计算缓存所述数据的处理器内核编号:
处理器内核编号=(A×N/MEM)modN;
其中,A为所述数据的内存地址。
16.根据权利要求12-15任一所述的数据读取装置,其特征在于,所述本地
缓存读取单元包括:
本地缓存判断子单元,用于根据所述数据的内存地址,判断所述数据是否
已在本地缓存中缓存;
缓存读取执行子单元,用于当所述本地缓存判断子单元的输出为“是”时,
从本地缓存读取所述数据;
内存读取子单元,用于当所述本地缓存判断子单元的输出为“否”时,根
据所述数据的内存地址访问内存,读取所述数据,并将所述...

【专利技术属性】
技术研发人员:马凌周伟张磊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1