计算系统中的存储器分层技术的制作方法

文档序号:37354871发布日期:2024-03-18 18:38阅读:15来源:国知局
计算系统中的存储器分层技术的制作方法


背景技术:

1、在计算中,存储器通常是指用于存储供计算机或其它类型的计算设备中的中央处理单元(cpu)立即访问的数据的计算组件。除了存储器之外,计算机还可以包括在计算机上持久地存储数据的一个或多个计算机存储设备(例如,硬盘驱动器或hdd)。在操作中,数据(诸如应用的指令)可以首先从计算机存储设备加载到存储器中。然后,cpu可以执行加载在存储器中的应用的指令,以提供诸如文字处理、在线会议等的计算服务。


技术实现思路

1、提供本
技术实现要素:
以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

2、某些计算设备可以包括被配置为访问不同类型的存储器的cpu。例如,计算设备可以包括高速的第一类型存储器和较慢的第二类型存储器。示例性的第一类型存储器可以是与cpu封装在一起的双数据速率(ddr)同步动态随机存取存储器(sdram)。这种第一类型的存储器有时被称为“近存储器”,由于其物理上靠近cpu。第二类型存储器的示例可包括cpu可经由计算快速链路(cxl)或其它合适协议与之对接的那些存储器。这种第二类型的存储器有时可以被称为“远存储器”,这是由于与近存储器相比离cpu的距离更远。

3、使用高速存储器作为cpu的近存储器可能具有某些缺点。例如,ddr sdram通常比用于远存储器的那些更昂贵。近存储器也不可由计算设备上的操作系统(os)访问或甚至对其可见。相反,cpu具有对近存储器的独占控制。在一些数据中心服务器中,用作近存储器的ddr sdram的成本可高达数据中心服务器的总成本的约50%。因此,如果近存储器对于os是可见的并且可由os访问,则数据中心服务器的资本投资和用于从数据中心服务器提供各种计算服务的相关成本可被显著降低。

4、所公开技术的若干实施例针对实施存储器多分层化,根据该存储器多分层化,近存储器可用作针对远存储器的交换缓冲器,而非计算设备中的cpu的专用高速缓存存储器。这样,当近存储器和远存储器作为可寻址和可分配的系统存储器暴露给os时,cpu可以继续在近存储器中高速缓存数据。在某些实现中,硬件存储器控制器(例如,dram控制器)可被配置成以高速缓存线粒度(例如,64字节)管理交换操作。这样,计算设备将不需要任何软件干预或引起软件影响。在其它实现中,具有硬件和软件组件的存储器控制器可用于控制这种交换操作。

5、在某些实施方案中,近存储器可具有与远存储器相同或甚至更多单位的存储空间。例如,系统存储器地址的范围可以由近存储器和远存储器的组合以2比1、2比2、3比1、3比2、4比1、4比3或大于或等于1的其它合适的整数比覆盖。在一个说明性示例中,系统存储器地址的范围(例如,512gb)可以被近存储器和远存储器以2比2的比例的组合覆盖,即,两个128gb的近存储器和两个128gb的远存储器。这样,系统存储器的范围可以被分成四个区段,例如a、b、c和d,每个区段对应于近存储器或远存储器中的存储空间的一个区段。

6、在某些实施例中,当使用近存储器作为远存储器的交换缓冲器时,近存储器的多个区段可被配置为单独的查看层。例如,近存储器的第一区段可以被配置为层1(tier 1),而近存储器的第二区段151b被配置为层2(tier 2)。远存储器可以被配置为层3(tier 3),其可以包括一个或多个附加区段。这样,在操作期间,当执行诸如高速缓存线(cacheline)的数据读取时,存储器控制器可被配置成初始确定近存储器的层1是否包含高速缓存线。当层1包含高速缓存线时,存储器控制器从层1取回高速缓存线;向请求实体提供高速缓存线;以及终止所述读取操作。当层1不包含高速缓存线时,存储器控制器可以确定层2是否包含高速缓存线。对于近存储器中的附加层,可以以递归方式重复这样的操作。在其它实施例中,多个区段可以其它合适的操作方式配置。

7、在某些实施例中,近存储器或远存储器中的每个区段可以包括数据部分(例如,512比特)和元数据部分(例如,128比特)。数据部分可被配置成包含表示可由计算设备中的cpu执行的用户数据或指令的数据。元数据部分可以包括表示数据部分中的数据的各种属性的元数据。例如,元数据部分可包括对差错跟踪进行编码的差错校验和校正(ecc)位或其它合适类型的信息。在其它实施例中,每个区段还可以包括附加的和/或不同的数据/元数据部分。

8、根据所公开的技术的若干实施例,近存储器的层1中的元数据部分中的若干比特(例如,ecc比特)可被配置成指示(1)近存储器的层1当前保存系统存储器的范围的哪个区段;以及(2)系统存储器的范围的附加区段在近存储器的其它层或远存储器中的位置。例如,在具有近/远存储器比为2比2的系统存储器的四个区段的上述示例中,层1的元数据部分中的八个比特可被配置为包含这样的信息。例如,第一对比特(比特1和比特2)可以被配置为如下指示哪个区段当前被保存在近存储器的层1中:

9、 比特1 比特2 区段id 0 0 a 0 1 b 1 0 c 1 1 d

10、这样,当比特1和比特2分别包含0和0时,存储器控制器可以容易地确定近存储器的层1包含来自系统存储器的区段a的数据。

11、在上面的例子中,虽然前两个比特对应于近存储器的层1,但是附加的六位可以被细分成三对,分别对应于映射到系统存储器范围的相应区段的近存储器的层2和远存储器中的第一位置和第二位置。例如,第二、第三和第四对可以分别对应于近存储器的层2、远存储器中的第一位置和远存储器中的第二位置,如下:

12、 第一对(比特1和比特2) 近存储器层1 第二对(比特3和比特4) 近存储器层2 第三对(比特5和比特6) 远存储器中的第一位置 第四对(比特7和比特8) 远存储器中的第二位置

13、这样,存储器控制器可以容易地确定系统存储器的区段的位置,即使该区段的数据当前不在近存储器的层1中。举例来说,当第二对(即,比特3和比特4)包含(0,0)时,存储器控制器可经配置以确定对应于系统存储器的区段a的数据在近存储器的层2中。

14、使用来自近存储器的层1中的元数据部分的元数据,存储器控制器可以被配置为当使用近存储器作为交换缓冲器时管理近存储器和远存储器中的各个层之间的交换操作。例如,在目标区段的读取期间,存储器控制器可以被配置为从近存储器的层1读取,以从近存储器的层1的数据部分和元数据部分两者中取回数据和元数据。基于所取回的元数据,存储器控制器可接着经配置以使用(例如)上述表来确定所取回的数据对应于系统存储器的哪个区段,且确定所确定的区段是否匹配待读取的目标区段。例如,当目标区段是区段a,并且来自元数据部分的前两个比特包含(0,0)时,则存储器控制器可被配置成确定从近存储器的层1取回的数据对应于区段a(称为“a数据”)。因此,存储器控制器可以将所取回的数据从区段a转发到请求实体,例如在计算设备上执行的应用或os。

15、另一方面,例如,当来自元数据部分的前两个比特包含(0,1)而不是(0,0)时,存储器控制器可以被配置为确定所取回的数据属于区段b(称为“b数据”),而不是区段a。然后,存储器控制器可以继续检查元数据部分中的附加比特,以确定哪一对比特包含(0,0)。例如,当来自元数据部分的第二对(比特3和比特4)包含(0,0)时,则存储器控制器可被配置成确定a数据位于近存储器中的层2处。作为响应,存储器控制器可以被配置为从近存储器中的层2读取a数据,并将a数据提供给请求实体。存储器控制器还可以被配置为将所取回的a数据写入近存储器的层1中,并且将先前所取回的b数据从近存储器中的层1写入层2中,从而交换层1和层2中的数据。存储器控制器还可以被配置为修改近存储器的层1中的元数据部分中的比特,以反映近存储器的层1和层2之间的数据交换。

16、在某些实现方式中,存储器控制器可以被配置为以分层方式(例如,t1→t2→t3)从多个层执行数据驱逐(data eviction)。例如,在上述示例中,当检查元数据部分中的附加比特时,存储器控制器可以确定第三对(位5和位6)包含(0,0)。因此,存储器控制器可以确定数据a位于远存储器中的第一位置。作为响应,存储器控制器可以被配置为从远存储器中的第一位置取回数据a,并将所取回的数据a提供给请求实体。存储器控制器还可被配置成将当前存储在近存储器的层1处的数据(例如,数据b)驱逐到近存储器的层2,并将当前存储在近存储器的层2处的数据(例如,对应于区段c的数据c)驱逐到远存储器的第一位置。因此,在完成读操作时,数据a、b、c位于层1、层2和远存储器的第一位置。

17、在写操作期间,存储器控制器可以被配置为首先从近存储器的层1中的元数据部分读取数据。然后,存储器控制器可以被配置为确定来自系统存储器的哪个区段的数据当前被保存在近存储器的层1,以及所确定的区段是否匹配要写入的目标区段。例如,当用于写操作的目标区段是区段a,并且来自元数据部分的前两个比特包含(0,0)时,则存储器控制器可被配置成确定a数据当前在近存储器的层1中。作为响应,存储器控制器可被配置成重写近存储器的层1的数据部分中的数据并报告写操作的完成。

18、另一方面,当来自元数据部分的前两个比特包含(0,1)时,则存储器控制器可被配置成确定数据b当前在近存储器的层1中。作为响应,存储器控制器可以被配置为禁止向近存储器的层1写入,而是继续检查元数据部分的附加比特以确定哪一对位包含(0,0)。例如,当来自元数据部分的第二对(比特3和比特4)包含(0,0)时,则存储器控制器可被配置成确定a数据当前位于近存储器的层2处。作为响应,存储器控制器可以被配置为向近存储器的层2而不是近存储器的层1写入。在完成时,存储器控制器可经配置以报告写入操作的完成。

19、所公开的技术的若干实施例可以通过允许先前用作高速缓存存储器并且对os不可见的存储器被配置为可由os寻址的系统存储器来改进计算设备的操作和性能。例如,代替使用近存储器作为针对cpu的专用高速缓存存储器,近存储器可以被用作可分配系统存储器,同时经由上述交换操作继续向cpu提供高速缓存功能。通过增加可寻址系统存储器的数量,可以减少计算设备中的计算或其它合适类型的等待时间。

20、所公开技术的若干实施例还可减轻与直接映射的高速缓存相关联的某些性能异常值。在某些计算系统中,当在近存储器中交替地访问两个高速缓存线时,可以通过将两个高速缓存线中的一个高速缓存线从近存储器驱逐到远存储器来将另一个高速缓存线从近存储器驱逐。这种交换可以减少存储器带宽,从而对系统性能产生负面影响。通过以多个层配置近存储器,这种交换可以在近存储器内部的层之间,例如在前述示例中的层1和层2之间。这样,这种交换的存储器带宽影响可以显著小于近存储器和远存储器之间的交换。此外,以多个层配置近存储器还允许向计算系统提供比远存储器更多的近存储器容量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1