当前位置: 首页 > 专利查询>辉达公司专利>正文

用于保留高速缓存中的数据的存储器地址分配和高速缓存映射制造技术

技术编号:38495766 阅读:13 留言:0更新日期:2023-08-15 17:06
本公开涉及用于保留高速缓存中的数据的存储器地址分配和高速缓存映射。一种计算系统包括易失性存储器、与易失性存储器耦合的高速缓存、以及与高速缓存和存储设备或网络端口中的至少一个耦合的处理设备。该处理设备用于:生成多个虚拟地址,所述多个虚拟地址针对响应于输入/输出(I/O)请求而要进行被处理或被传输中的至少一个的数据而按顺序编号;针对所述数据分配所述易失性存储器的连续范围的物理地址;基于所述多个虚拟地址和所述连续范围的物理地址中的相应物理地址之间的映射,生成一组基于散列的值;确定与所述一组散列的值中的每个相应的基于散列的值相对应的所述高速缓存的特有高速缓存行;以及使得所述数据被直接存储在所述高速缓存的所述特有高速缓存行中。存储在所述高速缓存的所述特有高速缓存行中。存储在所述高速缓存的所述特有高速缓存行中。

【技术实现步骤摘要】
用于保留高速缓存中的数据的存储器地址分配和高速缓存映射


[0001]至少一个实施例一般涉及计算机系统,并且更具体地但不排他地涉及改进存储器地址分配和高速缓存映射以保留高速缓存中的数据。

技术介绍

[0002]固态驱动器(SSD)是大容量存储设备,其使用集成电路存储器(通常是基于负与(NAND)的闪存)来存储数据,同时提供模拟传统硬盘驱动器(HDD)的接口。与HDD相比,SSD提供更快的访问速度,更低的延迟,以及更强的抗环境干扰能力。因此,SSD在许多存储应用中正逐渐取代HDD。
[0003]由于SSD最初是为了取代HDD而设计的,因此它们通常使用与HDD相同种类的输入/输出(I/O)总线和协议,诸如串行AT附件(SATA)、串行连接的小型计算机系统接口(SCSI)(SAS)和光纤通道。随后,SSD变得可用,它们直接连接到主机的外围组件接口总线,诸如(SAS)和光纤通道。随后,SSD变得可用,它们直接连接到主机的外围组件接口总线,诸如总线。NVM Express(NVMe)为PCI Express SSD定义了寄存器接口、命令集和功能集。
[0004]高级网络接口控制器(NIC)被设计为支持远程直接存储器访问(RDMA)操作,其中NIC通过直接存储器访问将数据从一台计算机的存储器传送到另一台计算机的存储器,而不涉及目标计算机的中央处理单元(CPU)。这些RDMA操作通常用于将数据传送到主机存储器/从主机存储器传输数据,例如,随机存取存储器(RAM),尽管已经尝试调整RDMA功能以直接向或从SSD读/写数据。
[0005]此外,诸如数据处理单元(DPU)和图形处理单元(GPU)的智能NIC,例如通过支持RDMA操作和直接读取或写入连接的存储设备以响应于远程发起者请求,将关键的网络、安全和存储任务从CPU卸载。此外,智能NIC(和GPU)涉及高数据传输应用程序,这些应用程序可能仍然涉及将RAM作为临时数据的主要存储。高速缓存固定(cache pinning)并非在所有的系统都实现,或者在支持高速缓存固定的系统中,找到固定地址是一个挑战,并且整个高速缓存的固定可能不允许其他进程正常工作。此外,高速缓存固定在数据传输所需的分配量方面并不是完全有效的,需要的固定与不需要的固定之间存在最佳的平衡。结果是,在智能NIC(或类似的通信装置或设备)中,高速缓存可能会填满并且需要经历向RAM的淘汰(eviction)才能完成某些操作。由于高速缓存淘汰到NIC/GPU内的RAM所涉及的延迟大于通信设备或存储设备的延迟,因此这些高速缓存淘汰在这种高速、高数据量的NIC(或GPU)中造成了瓶颈。
附图说明
[0006]将参考附图描述根据本公开的各种实施例,其中:
[0007]图1A

1B是根据至少一些实施例的数据通信系统的示意性框图;
[0008]图2是根据至少一些实施例的示出了易失性存储器中虚拟地址(VA)和连续范围的
物理地址(PA)之间基于散列的分配以便将VA映射到最后一级高速缓存(LLC)中的特有高速缓存行(unique cache lines)的操作性框图;
[0009]图3是根据至少一些实施例的操作性数据流图,其中基于图2的基于散列的分配,数据通信系统的数据从存储设备和/或网络端口直接路由通过高速缓存,而不将数据逐出到易失性存储器;
[0010]图4是根据至少一些实施例的使用所公开的基于散列的分配将VA映射到图3的特有高速缓存行的方法的流程图;
[0011]图5是根据至少一些实施例的操作性数据流图,其中基于图2的基于散列的分配,数据通信系统的数据从图形处理单元(GPU)和/或中央处理单元(CPU)直接路由通过第二最高级别的高速缓存,而不将数据逐出到易失性存储器;以及
[0012]图6是根据至少一些实施例的使用所公开的基于散列的分配将VA映射到图5的特有高速缓存行的方法的流程图。
具体实施方式
[0013]本公开的方面和实施例解决了上述瓶颈问题,即在支持高速和大量数据传输应用的智能NIC或类似装置或设备(例如,GPU)中从高速缓存逐出到例如RAM的易失性存储器。在本文公开的各种实施例中,通过分配被映射到数据的虚拟地址(VA)的易失性存储器的连续范围的物理地址,可以消除或显著减少对逐出的需要,该数据是响应于输入/输出(I/O)请求而正在处理或传输的数据之一,正如将详细解释的那样。
[0014]如前所述,一些数据通信设备(诸如智能NIC(例如,如前所述,一些数据通信设备(诸如智能NIC(例如,DPU))支持响应于远程发起者请求(例如,通过数据通信设备所连接的网络从设备接收到的内容传输请求),经由存储子系统直接读取或写入附连的本地外围存储设备(例如,NVM express(NVMe)驱动器或其他存储设备)。取决于内容传输请求的级别以及网络、存储子系统接口和本地外围存储设备的速度和带宽,存储子系统可能出现拥塞,导致系统对服务传入内容传输请求的响应变差。
[0015]例如,存储子系统可以包括随机存取存储器(RAM)(例如,双倍数据速率(DDR)存储器),其用于在数据通信设备和本地外围存储设备之间传输内容,反之亦然。在某些情况下,RAM不是瓶颈,因为本地外围存储设备的速度很慢。在其他情况下,如果外围存储设备足够快(例如,NVMe驱动器),RAM可能成为瓶颈,因为它比本地外围存储设备和服务于内容传输请求的发起者的网络端口慢。
[0016]解决这个问题的一种方法是使用高速缓存(例如,末级高速缓存(LLC)),在高速缓存中在数据通信设备和本地外围存储设备之间复制数据,反之亦然。然而,如果高速缓存变满,高速缓存条目(仍然需要使用的)可以被逐出到RAM,例如,基于最近最少使用(LRU)的原则。然后必要时,被逐出的条目会被从RAM读到高速缓存,从而导致瓶颈。一般来说,可以选择高速缓存来服务于网络带宽,并且如果数据通信设备成功地将所有条目(需要使用的)保存在高速缓存中,那么高速缓存可以以全线速度服务于内容传输请求。然而,一旦条目被从高速缓存中逐出到RAM,就可能形成恶性循环,其中可能需要很长的时间才能返回到没有条目(需要使用的)被从高速缓存中逐出的最佳性能。
[0017]因此,在某些情况下,如果尽管在高速缓存中没有足够的空间,但所有接收到的内
容传输请求仍被提供服务,则高速缓存成为瓶颈,并且高速缓存条目(仍然需要使用的)被逐出到RAM。一种解决方案是请求发起者避免发送内容传输或I/O请求。然而,这种解决方案通常是不切实际的,因为发起者可能来自不同的实体或以其他方式不遵守规定。
[0018]相应地,根据各种实施例,通过处理逻辑(例如,数据通信设备的电路、固件、软件或其组合)生成虚拟地址来消除或显著减少这种高速缓存逐出瓶颈,这些虚拟地址对于响应于I/O请求而要处理/传输的数据是按顺序编号的。处理逻辑可以进一步为数据分配易失性存储器(例如,RAM)的连续范围的物理地址。根据这些实施例,一旦这样的连续范围的物理地址被分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算系统,包括:易失性存储器;与所述易失性存储器耦合的高速缓存;以及与所述高速缓存耦合的处理设备,所述处理设备与存储设备或网络端口中的至少一个耦合,并且用于:生成多个虚拟地址,所述多个虚拟地址针对响应于输入/输出I/O请求而要进行被处理或被传输中的至少一个的数据而按顺序编号;针对所述数据分配所述易失性存储器的连续范围的物理地址;基于所述多个虚拟地址和所述连续范围的物理地址中的相应物理地址之间的映射,生成一组基于散列的值;确定与所述一组散列的值中的每个相应的基于散列的值相对应的所述高速缓存的特有高速缓存行;以及使得所述数据被直接存储在所述高速缓存的所述特有高速缓存行中。2.根据权利要求1所述的计算系统,其中所述高速缓存是离所述处理设备最远级别的高速缓存,并且其中所述处理设备进一步用于使得所述数据直接从所述高速缓存被传送到所述存储设备或所述网络端口中的至少一个。3.根据权利要求2所述的计算系统,其中所述处理设备进一步用于:接收响应于第二I/O请求而要进行被处理或被传输中的至少一个的第二数据;将所述多个虚拟地址指派给所述第二数据,同时保持所述一组基于散列的值;以及使得所述第二数据直接存储在所述高速缓存的所述特有高速缓存行中。4.根据权利要求1所述的计算系统,其中所述处理设备进一步用于改变存储在所述特有高速缓存行中的至少一个中的所述数据,而不将所述数据逐出到所述易失性存储器。5.根据权利要求1所述的计算系统,其中所述高速缓存是第三级L3高速缓存或第四级L4高速缓存中的一个。6.根据权利要求1所述的计算系统,其中所述处理设备进一步用于将分配给所述多个虚拟地址的所述物理地址的连续范围限制为所述高速缓存的大小。7.根据权利要求1所述的计算系统,其中所述连续范围的物理地址的所述分配是非一致性的,并且其中所述连续范围的物理地址的大小与所述I/O请求的最大可能大小相匹配。8.根据权利要求1所述的计算系统,其中所述存储设备是管理一个或更多个存储设备的网络交换机或存储集线器中的一个。9.一种方法,包括:由与计算系统中的高速缓存耦合的处理设备生成多个虚拟地址,所述多个虚拟地址针对响应于输入/输出I/O请求而要进行被处理或被传输中的至少一个的数据而按顺序编号;由所述处理设备针对所述数据分配所述计算系统的易失性存储器的连续范围的物理地址;由所述处理设备基于所述连续范围的物理地址中的相应物理地址来生成一组基于散列的值;由所述处理设备确定与所述一组基于散列的值中的每个相应的基于散列的值相对应的所述高速缓存的特有高速缓存行;以及
由所述处理设备使得所述数据被直接存储在所述高速缓存的所述特有高速缓存行中。10.根据权利要求9所述的方法,其中所述高速缓存是离所述处理设备最远级别的高速缓存,所述方法进一步包括使得所述数据直接从所述高速缓存传送到存储设备或网络端口中的至少一个。11.根据权利要求10...

【专利技术属性】
技术研发人员:A
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1