处理器、内存控制器、片上系统芯片和数据预取方法技术方案

技术编号:37494445 阅读:9 留言:0更新日期:2023-05-07 09:32
本申请公开了一种处理器、内存控制器、片上系统芯片和数据预取方法,涉及存储领域,用于提高数据预取的覆盖率。处理器包括:内核、缓存控制器和缓存;内核中运行线程;缓存控制器用于:获取线程访问至少一个物理页面的页面访问密度,页面访问密度指单个物理页面中在预设时间内被线程访问的缓存线占全部缓存线的比率;在线程访问目标物理页面的目标缓存线对应的数据的情况下,当至少一个物理页面的页面访问密度满足第一条件时,向内存控制器发送请求消息,请求消息用于请求获取内存中与多个缓存线对应的数据,多个缓存线包括目标缓存线以及目标物理页面中与目标缓存线关联的预取缓存线;从内存控制器接收多个缓存线对应的数据,并存储至缓存中。并存储至缓存中。并存储至缓存中。

【技术实现步骤摘要】
处理器、内存控制器、片上系统芯片和数据预取方法


[0001]本申请涉及存储领域,尤其涉及一种处理器、内存控制器和片上系统(system on chip,SoC)芯片和数据预取方法。

技术介绍

[0002]由于处理器性能提升速度远远快于内存性能提升的速度,内存性能限制了处理器性能的释放,成为系统主要性能瓶颈。目前可以通过数据缓存和数据预取来解决这一问题。其中,数据缓存指通过处理器内部的高速缓存来暂时存储内存中的数据,处理器通过访问缓存来避免直接访问内存。数据预取指提前将内存中的数据加载到缓存中,以便于处理器访问。
[0003]现有技术中数据预取的粒度是缓存线(cache line),通常缓存线的大小为32或64字节。每次预取的数据量较少,使得处理器所需要的数据被预取到缓存中的占比较低,即覆盖率较低。

技术实现思路

[0004]本申请实施例提供一种处理器、内存控制器、片上系统芯片和数据预取方法,用于提高数据预取的覆盖率。
[0005]为达到上述目的,本申请的实施例采用如下技术方案:
[0006]第一方面,提供了一种处理器,包括:内核、缓存控制器和缓存;内核中运行线程;缓存控制器用于:获取线程访问至少一个物理页面的页面访问密度,页面访问密度指单个物理页面中在预设时间内被线程访问的缓存线占全部缓存线的比率;在线程访问目标物理页面的目标缓存线对应的数据的情况下,当至少一个物理页面的页面访问密度满足第一条件时,向内存控制器发送请求消息,请求消息用于请求获取内存中与多个缓存线对应的数据,多个缓存线包括目标缓存线以及目标物理页面中与目标缓存线关联的预取缓存线;从内存控制器接收多个缓存线对应的数据,并存储至缓存中。
[0007]本申请实施例提供的处理器,当处理器中内核运行的线程访问至少一个物理页面的页面访问密度满足第一条件时,即从该线程历史访问物理页面时的行为来说,通常会访问同一物理页面内较多的缓存线对应的数据,所以在该线程访问新的物理页面中的目标缓存线对应的数据的情况下,处理器不仅请求内存控制器获取目标缓存线对应的数据,还请求内存控制器获取同一物理页面中与目标缓存线关联的预取缓存线对应的数据,从而提高数据预取的覆盖率。
[0008]在一种可能的实施方式中,至少一个物理页面的页面访问密度满足第一条件,包括:至少一个物理页面的页面访问密度的均值大于第一门限,或者,至少一个物理页面的页面访问密度的最大值大于第二门限,或者,至少一个物理页面的页面访问密度的每个值均大于第三门限。至少一个物理页面的页面访问密度满足第一条件的物理意义在于:如果一个线程历史访问的大部分物理页面的页面访问密度都很高,那么当该线程访问一个新的物
理页面的时候,就可以提前把内存中与该物理页面中多个缓存线对应的数据预取到缓存中,这样就能够提高预取的覆盖率而且准确率也不会过低。
[0009]在一种可能的实施方式中,缓存控制器具体用于:先从内存控制器接收目标缓存线对应的数据,后从内存控制器接收预取缓存线对应的数据。即处理器先接收到内核立即需要的目标缓存线对应的数据,后接收到内核未来可能需要的预取缓存线对应的数据,使得内核获取目标缓存线对应的数据后可以立即对数据进行处理,相对于先接收到预取缓存线对应的数据后接收到目标缓存线对应的数据来说,能够降低内核从内存获取数据的时延。
[0010]在一种可能的实施方式中,缓存指中间级缓存或最后一级缓存。对于大容量的中间级缓存(二级缓存)和最后一级缓存(三级缓存),覆盖率更重要,所以本申请实施例更适用于对这些缓存实现数据预取。
[0011]第二方面,提供了一种内存控制器,包括第一决策器、第二决策器和通信接口;通信接口用于从处理器接收请求消息,请求消息用于请求获取内存中与多个缓存线对应的数据,多个缓存线包括处理器访问的物理页面中的目标缓存线以及与目标缓存线关联的预取缓存线;第一决策器用于通过通信接口向处理器发送目标缓存线对应的数据;第二决策器用于通过通信接口向处理器发送预取缓存线对应的数据。其中,第一决策器和第二决策器可以合并为一个决策器,或者,可以集成在一个功能模块中。
[0012]本申请实施例提供的内存控制器,内存控制器可以向处理器发送目标缓存线对应的数据以及与目标缓存线关联的预取缓存线对应的数据,从而提高数据预取的覆盖率。
[0013]在一种可能的实施方式中,对于同一个请求消息对应的目标缓存线和预取缓存线,第一决策器先发送目标缓存线对应的数据,第二决策器后发送预取缓存线对应的数据。因为目标缓存线对应的数据是内核目前最需要的,所以内存控制器先发送目标缓存线对应的数据,使得内核尽快获取目标缓存线对应的数据,降低内核从内存获取数据的时延。
[0014]在一种可能的实施方式中,如果预取缓存线有多个,第二决策器优先发送时延最低的预取缓存线对应的数据。例如,由于内存控制器在对内存进行寻址时,不同内存秩之间的切换的时延>不同行之间切换的时延>不同内存库之间切换的时延>同一行不同列之间切换的时间,所以第二决策器可以优先发送与目标缓存线对应的数据位于同一内存秩并且同一行但是不同内存库的预取缓存线对应的数据。
[0015]在一种可能的实施方式中,请求消息包括第一请求消息和第二请求消息;第一请求消息请求获取第一目标缓存线对应的数据以及与第一目标缓存线关联的第一预取缓存线对应的数据,第二请求消息请求获取第二目标缓存线对应的数据以及与第二目标缓存线关联的第二预取缓存线对应的数据;如果第一预取缓存线对应的数据与第一目标缓存线对应的数据位于内存中同一内存库的同一行,在第一决策器发送第一目标缓存线对应的数据之后,第二决策器优先发送第一预取缓存线对应的数据,然后第一决策器发送第二目标缓存线对应的数据,第二决策器发送第二预取缓存线对应的数据。
[0016]由于同一行不同列之间切换的时间是最短的,所以同一内存库的同一行中不同列的数据集中发送出去的时延是最小的。
[0017]在一种可能的实施方式中,请求消息包括第一请求消息和第二请求消息;第一请求消息请求获取第一目标缓存线对应的数据以及与第一目标缓存线关联的第一预取缓存
线对应的数据,第二请求消息请求获取第二目标缓存线对应的数据以及与第二目标缓存线关联的第二预取缓存线对应的数据;如果第一预取缓存线对应的数据与第一目标缓存线对应的数据不位于内存中同一内存库的同一行,第一决策器先发送第一目标缓存线对应的数据以及第二目标缓存线对应的数据,然后第二决策器发送第一预取缓存线对应的数据以及第二预取缓存线对应的数据。
[0018]因为目标缓存线对应的数据是内核目前最需要的,即内存控制器先发送内核立即需要的目标缓存线对应的数据,后发送内核未来可能需要的预取缓存线对应的数据,使得内核获取目标缓存线对应的数据后可以立即对数据进行处理,相对于先发送预取缓存线对应的数据后发送目标缓存线对应的数据来说,能够降低内核从内存获取数据的时延。
[0019]在一种可能的实施方式中,第一决策器或第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器,其特征在于,包括:内核、缓存控制器和缓存;所述内核中运行线程;所述缓存控制器用于:获取所述线程访问至少一个物理页面的页面访问密度,所述页面访问密度指单个物理页面中在预设时间内被所述线程访问的缓存线占全部缓存线的比率;在所述线程访问目标物理页面的目标缓存线对应的数据的情况下,当所述至少一个物理页面的页面访问密度满足第一条件时,向内存控制器发送请求消息,所述请求消息用于请求获取内存中与多个缓存线对应的数据,所述多个缓存线包括所述目标缓存线以及所述目标物理页面中与所述目标缓存线关联的预取缓存线;从所述内存控制器接收所述多个缓存线对应的数据,并存储至所述缓存中。2.根据权利要求1所述的处理器,其特征在于,所述至少一个物理页面的页面访问密度满足第一条件,包括:所述至少一个物理页面的页面访问密度的均值大于第一门限,或者,所述至少一个物理页面的页面访问密度的最大值大于第二门限,或者,所述至少一个物理页面的页面访问密度的每个值均大于第三门限。3.根据权利要求1

2任一项所述的处理器,其特征在于,所述缓存控制器具体用于:先从所述内存控制器接收所述目标缓存线对应的数据,后从所述内存控制器接收所述预取缓存线对应的数据。4.根据权利要求1

3任一项所述的处理器,其特征在于,所述缓存指中间级缓存或最后一级缓存。5.一种内存控制器,其特征在于,包括第一决策器、第二决策器和通信接口;所述通信接口用于从处理器接收请求消息,所述请求消息用于请求获取内存中与多个缓存线对应的数据,所述多个缓存线包括所述处理器访问的物理页面中的目标缓存线以及与所述目标缓存线关联的预取缓存线;所述第一决策器用于通过所述通信接口向所述处理器发送所述目标缓存线对应的数据;所述第二决策器用于通过所述通信接口向所述处理器发送所述预取缓存线对应的数据。6.根据权利要求5所述的内存控制器,其特征在于,对于同一个请求消息对应的所述目标缓存线和所述预取缓存线,所述第一决策器先发送所述目标缓存线对应的数据,所述第二决策器后发送所述预取缓存线对应的数据。7.根据权利要求5

6任一项所述的内存控制器,其特征在于,如果所述预取缓存线有多个,所述第二决策器优先发送时延最低的预取缓存线对应的数据。8.根据权利要求5

7任一项所述的内存控制器,其特征在于,所述请求消息包括第一请求消息和第二请求消息;所述第一请求消息请求获取第一目标缓存线对应的数据以及与所述第一目标缓存线关联的第一预取缓存线对应的数据,所述第二请求消息请求获取第二目标缓存线对应的数据以及与所述第二目标缓存线关联的第二预取缓存线对应的数据;如果所述第一预取缓存线对应的数据与所述第一目标缓存线对应的数据位于所述内存中同一内存库的同一行,在所述第一决策器发送所述第一目标缓存线对应的数据之后,
所述第二决策器优先发送所述第一预取缓存线对应的数据,然后所述第一决策器发送所述第二目标缓存线对应的数据,所述第二决策器发送所述第二预取缓存线对应的数据。9.根据权利要求5

7任一项所述的内存控制器,其特征在于,所述请求消息包括第一请求消息和第二请求消息;所述第一请求消息请求获取第一目标缓存线对应的数据以及与所述第一目标缓存线关联的第一预取缓存线对应的数据,所述第二请求消息请求获取第二目标缓存线对应的数据以及与所述第二目标缓存线关联的第二预取缓存线对应的数据;如果所述第一预取缓存线对应的数据与所述第一目标缓存线对应的数据不位于所述内存中同一内存库的同一行,所述第一决策器先发送所述第一目标缓存线对应的数据以及所述第二目标缓存线对应的数据,然后所述第二决策器发送所述第一预取缓存线对应的数据以及所述第二预取缓存线对应的数据。10.根据权利要求5

9任一项所述的内存控制器,其特征在于,所述第一决策器或所述第二决策器在发送所述内存中同一行内数据时,按照以下任一方式发送所述同一行内数据:按照从低地址至高地址发送所述同一行内数据;或者,按照从高地址至低地址发送所述同一行内数据;或者,以所述目标缓存线对应的数据为中心向高地址和低地址发送所述同一行内数据;或者,按照随机顺序发送所述同一行内数据。11.一种...

【专利技术属性】
技术研发人员:王科兵邸千力周永彬陈章麒蒋志军
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1