CN117370228A - 一种数据处理设备及方法 - Google Patents
一种数据处理设备及方法 Download PDFInfo
- Publication number
- CN117370228A CN117370228A CN202210764200.9A CN202210764200A CN117370228A CN 117370228 A CN117370228 A CN 117370228A CN 202210764200 A CN202210764200 A CN 202210764200A CN 117370228 A CN117370228 A CN 117370228A
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- cxl
- accessed
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000003672 processing method Methods 0.000 claims abstract description 16
- 238000013507 mapping Methods 0.000 claims description 16
- 230000003068 static effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000003370 grooming effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004816 latex Substances 0.000 description 1
- 229920000126 latex Polymers 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据处理设备及方法,涉及计算机领域,以提高内存访问时间性能。具体方案为:数据处理设备包括处理器、扩展存储装置。扩展存储装置通过CXL接口与处理器连接,该扩展存储装置用于存储处理器的待访问数据;获取扩展存储装置中存储的待访问数据的请求消息配置最高优先级。处理器在接收到处理第一数据的请求消息时,从扩展存储装置中,获取第一数据对应的待访问数据,以处理第一数据。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据处理设备及方法。
背景技术
在计算机数据存储领域,处理器读取数据时,对于时延的要求非常高。为了保证读取数据的时延需求,业界通常将寻址相关的数据存储于内存之外的存储空间。例如,旁路转换缓存(translation lookaside buffer,TLB),它是一个内存管理单元,其本质是一块用于改进虚拟地址到物理地址转换速度的高速缓存,可以有效提高数据读取的时延。
在计算机应用过程中,处理器经常存在一些高性能的频繁查表需求的场景,这些场景中时延对于访问性能影响很大。例如,内存访问TLB缓存未命中(Cache Miss)时,需要先访问内存获取页表,完成虚拟地址到物理地址转换后,再进行物理内存的访问,这样访问时延将增加一次双倍速率(double data rate,DDR)访问(其时延约为62-93纳秒),内存访问时间性能下降明显。在TLB Miss率比较高的场景下,例如稀疏内存的访问场景(sparse/graph application),TLB Cache存在较高的Miss率(20%-40%),内存访问时间性能下降明显。
发明内容
本申请提供一种数据处理设备及方法,以提高内存访问时间性能。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种数据处理设备,该数据处理设备包括处理器、扩展存储装置。其中,扩展存储装置通过计算快速链路(compute express link,CXL)接口与处理器连接,该扩展存储装置用于存储处理器的待访问数据;处理器用于在接收到处理第一数据的请求消息后,获取第一数据的虚拟地址,并从扩展存储装置中获取待访问数据,该待访问数据用于标识虚拟地址对应的物理地址,处理器还用于根据物理地址读取所述第一数据。
通过本申请提供的方案,将处理器的待访问数据,存储于通过CXL接口与处理器连接的扩展存储装置中。由于CXL接口的低时延性能,处理器在读取这些待访问数据时,通过CXL接口从扩展存储装置中读取,即使在频繁访问场景中,也可以低时延的处理数据。因此,本申请的方案很好的提高了内存访问时间性能。
一种可能的实现方式,待访问数据为低时延需求的进程的数据。
另一种可能的实现方式中,该扩展存储装置可以包括CXL芯片,以及基于CXL芯片扩展的存储空间。扩展的存储空间用于存储上述待访问数据。获取该扩展的存储空间的请求消息配置最高优先级。
另一种可能的实现方式中,扩展的存储空间包括CXL芯片内的静态随机存取存储器(static random-access memory,SRAM)。即,扩展的存储空间为片内存储空间,以节约成本。
另一种可能的实现方式中,扩展的存储空间包括CXL芯片连接的片外四倍数据倍率(quad data rate,QDR)系列存储。即,扩展的存储空间为片外存储空间,以实现更大容量的低时延存储。
另一种可能的实现方式中,CXL芯片还用于将请求消息配置为最高优先级。保证了这些请求消息的优先处理,更进一步的提高了数据处理时延。
另一种可能的实现方式中,数据处理设备还可以包括属性存储单元。属性存储单元用于在数据处理设备的启动引导boot阶段,将扩展存储装置注册至处理器。以使得数据处理设备运行阶段,处理器通过扩展存储装置实现低时延的内存访问。
另一种可能的实现方式中,属性存储单元具体用于,将扩展存储装置中用于存储上述待访问数据的存储空间的注册信息,注册至处理器。该注册信息可以包括下述信息中一项或多项:容量、时延、带宽。
另一种可能的实现方式中,属性存储单元可以部署于CXL芯片内部,通过软件配置进行刷新。
另一种可能的实现方式中,属性存储单元可以部署于CXL芯片外部的非易失性存储。
另一种可能的实现方式中,CXL芯片可以包括地址译码器,用于寻址。地址译码器用于处理器的物理地址到扩展的存储空间的物理地址的映射。以便于扩展存储装置在接收到处理器发送的请求消息时,将其转发至对应的扩展的存储空间。
另一种可能的实现方式中,上述待访问数据可以为页表,该页表用于处理器的虚拟地址到内存的物理地址的映射。
第二方面,提供一种数据处理方法,应用于数据处理设备,该数据处理设备包括处理器、扩展存储装置。扩展存储装置通过CXL接口与处理器连接,扩展存储装置用于存储处理器的待访问数据。该方法可以包括:处理器接收处理第一数据的请求消息;获取第一数据的虚拟地址;然后,处理器从扩展存储装置中获取待访问数据,该待访问数据用于标识虚拟地址对应的物理地址,处理器还用于根据物理地址读取所述第一数据。处理器从扩展存储装置中,获取第一数据对应的待访问数据,以处理第一数据。
通过本申请提供的方案,将处理器的待访问数据,存储于通过CXL接口与处理器连接的扩展存储装置中。由于CXL接口的低时延性能,处理器在读取这些待访问数据时,通过CXL接口从扩展存储装置中读取,即使在频繁访问场景中,也可以低时延的处理数据。因此,本申请的方案很好的提高了内存访问时间性能。
一种可能的实现方式中,该扩展存储装置可以包括CXL芯片,以及基于CXL芯片扩展的存储空间。扩展的存储空间用于存储上述处理器的待访问数据。获取扩展的存储空间的请求消息配置最高优先级。
另一种可能的实现方式中,扩展的存储空间包括CXL芯片内的SRAM。即,扩展的存储空间为片内存储空间,以节约成本。
另一种可能的实现方式中,扩展的存储空间包括CXL芯片连接的片外QDR系列存储。即,扩展的存储空间为片外存储空间,以实现更大容量的低时延存储。
另一种可能的实现方式中,该方法还可以包括:在数据处理设备的启动引导boot阶段,将扩展存储装置注册至处理器。以使得数据处理设备运行阶段,处理器通过扩展存储装置实现低时延的内存访问。
另一种可能的实现方式中,将扩展存储装置注册至处理器,包括:将扩展存储装置中用于存储处理器的待访问数据的存储空间的注册信息,注册至处理器。该注册信息包括下述信息中一项或多项:容量、时延、带宽。
另一种可能的实现方式中,该方法还可以包括:将处理器的物理地址到扩展的存储空间的物理地址的映射。以便于扩展存储装置在接收到处理器发送的请求消息时,将其转发至对应的扩展的存储空间。
另一种可能的实现方式中,该方法还可以包括:将访问其存储的处理器的待访问数据的请求消息配置最高优先级,以保证该请求消息对应的数据的访问时延。
另一种可能的实现方式中,上述待访问数据可以为页表,该页表用于处理器的虚拟地址到内存的物理地址的映射。
第三方面,提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任一方面或任意一种可能的实现方式所述的数据处理方法。
第四方面,提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一方面或任意一种可能的实现方式所述的数据处理方法。
第五方面,提供一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述方法中扩展存储装置的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
上述第三方面至第五方面提供的方案,用于实现上述第二方面提供的方法,因此可以与第一方面达到相同的有益效果,此处不再进行赘述。
需要说明的是,上述各个方面中的任意一个方面的各种可能的实现方式,在方案不矛盾的前提下,均可以进行组合。
附图说明
图1为一种访问内存的流程示意图;
图2为本申请实施例提供的一种数据处理设备的结构示意图;
图3为本申请实施例提供的另一种数据处理设备的结构示意图;
图4为本申请实施例提供的再一种数据处理设备的结构示意图;
图5为本申请实施例提供的再一种数据处理设备的结构示意图;
图6为本申请实施例提供的一种数据处理方法的流程示意图。
具体实施方式
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。
在描述本申请实施例之前,先对本申请实施例中涉及的名词进行解释。
物理地址:是存在于计算机中的一个实体,在每一台计算机中保持唯一独立性。也可以称它为物理内存。如在32位的机器上,物理空间的大小理论上可以达到2^32字节(4GB)。
虚拟地址:向进程分配的并不真实存在于计算机中地址空间。每个进程都有自己独立的虚拟地址空间,每个进程都能访问自己的虚拟地址空间,做到了进程间有效的隔离。
表1示意了计算机存储层次结构中不同位置的典型访问时间时延。
表1
在一些实际应用场景,处理器存在高性能查表需求的场景,即对于查表过程时延要求高的场景。例如,内存访问TLB Cache Miss时,需要首先访问内存获取页表,完成虚拟地址到物理地址转换后,再进行物理内存的访问,因此访问时延将增加一次DDR访问(如表1中所示该时延为62-93ns),性能下降明显。
当前,页表存储在主存中,在TLB Cache Miss的时候需要访问内存获取PageTable(页表),实现虚拟地址中的虚拟页表号到物理地址中的物理页表号的映射,然后将虚拟地址转成物理地址,其流程为如图1所示,包括如下步骤:
步骤1、处理器使用虚拟地址查询TLB Cache。
步骤2、TLB Cache Miss后,处理器访问存储于内存的页表,查询虚拟页表号与物理页表号的映射关系,获取虚拟页表号0x00004对应的物理地址页表号0x00008。
步骤3、处理器将虚拟页表号与物理页表号刷新到TLB Cache。
步骤4、处理器用页偏移和物理页表信息计算出物理地址。
示例性的,处理器用页偏移0x300和物理页表号0x00008计算出物理地址0x00008300。
步骤5、处理器使用物理地址访问内存数据。
示例性的,处理器使用物理地址0x00008300访问内存,读取该位置存储的数据。
从图1示意的流程可以看出,在TLB Cache Miss时,内存访问时延估算为:Latency=TLB访问时延+页表访问时延(访问内存)+数据访问时延(访问内存)。
根据表1示意的典型访问时间时延,TLB访问时延=10ns,页表访问时延(访问内存)=90ns,数据访问时延(访问内存)=90ns,因此,在TLB Cache Miss的场景下,访问内存数据的时间为:10ns+90ns+90ns=190ns。
对于稀疏内存的访问场景(例如sparse/graph application),TLB Cache存在较高的Miss率(20%-40%),典型场景TLB Miss率0.01%-1%。
CXL作为一种开放的行业标准,可在数据中心内的专用计算、内存、I/O和存储元素之间提供高带宽、低延迟的连接。CXL1.1,CXL2.0协议定义是基于高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)Gen5(32千兆传输/秒(gigatransmission per second,GT/s)),其链路典型时延为40ns,业界宣称已可以做到12ns。
基于此,本申请提供一种数据处理设备及方法,通过CXL接口为处理器提供低时延存储空间(本申请描述的扩展的存储装置中的存储空间),把有低时延访问诉求的待访问数据存储在超低时延存储空间内,来提升内存访问时间性能。
下面将结合附图对本申请实施例的实施方式进行详细描述。
一方面,本申请提供一种数据处理设备。如图2所示,该数据处理设备20可以包括处理器201、扩展存储装置202。其中:
扩展存储装置202通过CXL接口与处理器201连接。该扩展存储装置202用于存储处理器201的待访问数据。
其中,CXL接口采用CXL协议传输数据。
示例性的,处理器201的待访问数据可以为低时延需求的进程的数据。例如,处理器201的待访问数据可以为上述示例的TLB中的页表。当然,本申请实施例对于待访问数据的具体类型不予限定。
处理器201用于,在接收到处理第一数据的请求消息时,从扩展存储装置202中,获取第一数据对应的待访问数据,以处理第一数据。
具体的,处理器201接收到处理第一数据的请求消息,若第一数据对应的待访问数据存储于扩展存储装置,则从扩展存储装置202中,读取第一数据对应的待访问数据,进而处理第一数据。
其中,第一数据对应的待访问数据,用于处理第一数据。在不同的场景中,当处理第一数据的方式不同时,第一数据对应的待访问数据也不同。
例如,比如上述的TLB场景中,在处理器201读取第一数据的场景中,第一数据对应的待访问数据为页表,处理器201从扩展存储装置202中获取页表,进而获取第一数据的物理地址,以读取第一数据。
可选地,扩展存储装置202可以将处理器获取待访问数据的请求消息配置最高优先级。
示例性的,可以通过队列的形式实现。例如,配置队列,用于存储获取扩展存储装置202中存储的处理器201的待访问数据的请求消息,该队列具有最高优先级。
通过本申请提供的方案,将处理器的待访问数据,存储于通过CXL接口与处理器连接的扩展存储装置中,并将获取扩展存储装置中存储的待访问数据的请求消息配置最高优先级。由于CXL接口的低时延性能,处理器在读取这些待访问数据时,通过CXL接口从扩展存储装置中读取,即使在频繁访问场景中,也可以低时延的处理数据;同时,获取扩展存储装置中存储的待访问数据的请求消息配置最高优先级,保证了这些请求消息的优先处理,更进一步的提高了数据处理时延。因此,本申请的方案很好的提高了内存访问时间性能。
其中,处理器201可以是数据处理设备20的控制中心。例如,处理器201可以是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(applicationspecific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。
一种可能的实现方式中,上述待访问数据可以为页表,该页表用于处理器201的虚拟地址到内存的物理地址的映射。
示例性的,如图3所示,该数据处理设备20还可以包括内存203。内存203用于存储数据。具体的,内存203可以按照计算机协议标准存储数据。上述处理器201的待访问数据为页表,该页表用于处理器201的虚拟地址到内存的物理地址的映射。处理器201具体用于:在接收到处理第一数据的请求消息时,从扩展存储装置202中,查询页表获取第一数据的物理地址,进而按照第一数据的物理地址访问内存,读取第一数据。
示例性的,将页表存储在扩展存储装置202中,可以缩短在TLB Miss的场景下访问数据的时延,提升系统性能。
另一种可能的实现方式中,上述待访问数据可以为网络转发领域的随机表项,该随机表项可以用于指示数据转发的入端口与出端口的对应关系,以指导数据的转发路径。处理器201具体用于:在接收到处理第一数据的请求消息时,从扩展存储装置中,查询随机表项获取第一数据的出端口,进而按照出端口转发第一数据。
一种可能的实现方式中,可以将有低时延需求的进程的数据,存储于扩展存储装置202。
另一种可能的实现方式中,可以将处理器201所有的待访问数据,存储于扩展存储装置202。
在一些实施例中,如图4所示,扩展存储装置202可以包括CXL芯片2021,以及基于CXL芯片2021扩展的存储空间2022。该扩展的存储空间2022用于存储上述处理器201的待访问数据。其中,CXL芯片2021也可以称之为CXL设备(Device),本申请实施例对于CXL芯片2021的实际产品形态不予限定。
扩展的存储空间2022可以部署于CXL芯片2021内部,或者,扩展的存储空间2022可以部署于CXL芯片2021外部,本申请实施例对此不予限定。
进一步的,如图5所示,CXL芯片2021可以包括地址译码器20211。地址译码器20211用于处理器201的物理地址到扩展的存储空间2022的物理地址的映射。
示例性的,地址译码器20211可以为Decoder,其实现方式规范推荐方式类似,此处不再赘述。Decoder用于实现主机物理地址(host physical address,HPA)到设备物理地址(device physical address,DPA)的地址转换,将对超低时延存储的访问请求转发到扩展的存储空间2022。
示例性的,如图5所示,当扩展的存储空间2022在CXL芯片2021内部时,扩展的存储空间2022可以为CXL芯片2021内的SRAM。
示例性的,如图5所示,当扩展的存储空间2022在CXL芯片2021外部时,扩展的存储空间2022可以为CXL芯片2021连接的片外QDR系列存储。片外QDR系列存储为低时延单元。
示例性的,当扩展的存储空间2022在CXL芯片2021外部时,可以在CXL芯片2021硬件增加超低时延存储-QDRIV控制器,控制器外挂QDRIV存储颗粒(即片外QDR),容量为288MB,通过CXL芯片2021访问QDRII的时延为:22ns(其中CXL芯片2021访问QDRIV时延10ns,CXL链路时延12ns),带宽为19吉字节每秒(Gigabyte per second,GB/s)。
需要说明的是,扩展的存储空间2022的实际产品形态以及部署位置,均可以根据实际需求配置,本申请实施例对此仅为示例性描述,并不构成具体限定。
进一步的,如图5所示,数据处理设备20还可以包括属性存储单元204,属性存储单元204可以部署于扩展存储装置202内部或者外部,或者,属性存储单元204可以通过扩展存储装置202与处理器201通过总线连接。属性存储单元204用于在数据处理设备20的启动引导boot阶段,将扩展存储装置202注册至处理器201。
具体的,属性存储单元204用于将扩展存储装置202中用于存储处理器201的待访问数据的扩展的存储空间2022的注册信息,注册至处理器的地址空间。其中,该注册信息可以包括下述信息中一项或多项:容量、时延、带宽。
示例性的,可以在数据处理设备20的基本输入输出系统(basic input outputsystem,BIOS)boot阶段,通过系统管理总线(system management bus,SMBus)或者集成电路总线(inter-integrated circuit,I2C),获取扩展的存储空间2022的注册信息,保存到异构内存属性表(heterogeneous memory attribute table,HMAT)。在boot阶段映射到系统(System)随机存取存储器(random access memory,RAM)空间。进程启动时,申请使用超低时延存储,则可以将进程的页表存储到扩展的存储空间2022。
其中,属性存储单元204可以为超低时延存储空间属性(low latency memoryproperty,LLMP)控制模块。
其中,属性存储单元204可以部署在CXL芯片2021的内部,通过软件配置进行刷新。或者,属性存储单元204也可以部署在CXL芯片2021外部的易失性存储。本申请实施例对于属性存储单元204的部署位置不予限定。
示例性的,可以在CXL芯片2021外接flash或电可擦编程只读存储器(electrically erasable programmable read-only memory,EEPROM),存储扩展的存储空间2022的注册信息,由CXL芯片2021的固件(Firmware)完成注册信息的填充。
一种可能的实现方式中,CXL芯片2021可以通过扩展的方式,新增加处理超低时延存储的高优先级出口队列(Egress Queue),该队列配置最高的优先级,用于存储访问扩展的存储空间2022的请求消息,或者,该队列用于存储访问扩展的存储空间2022的请求消息对应的数据(或者返回的数据)。该Egress Queue可以保证超低时延存储(即访问扩展存储装置202存储的处理器201的待访问数据的请求消息)的高优先级处理,降低超低时延存储访问的时延。超低时延存储Egress Queue在调度时,其优先级高于基于CXL协议定义的其他出口队列(Egress Queue)的优先级。
示例性的,超低时延存储Egress Queue的调度算法可以是加权循环调度算法(weighted round robin,WRR),调度权重可以配置为4:1。
其中,本申请提供的超低时延访问的服务质量(quality of service,QoS)可以遵循CXL定义的QoS状态(即:即支持Light,Optimal,Moderate,Severe状态),区别在于本申请提供的超低时延访问使用新的高优先级Egress Queue。
示例性的,将前述TLB场景中的页表,存储于扩展的存储空间2022,如前述,在TLBCache Miss的场景下,访问内存数据的时间为:Latency=TLB访问时延+页表访问时延(访问内存)+数据访问时延(访问内存),采用本申请提供的方案,在TLB Cache Miss的场景下,访问内存数据的时间为:
Latency=10ns+22ns(CXL 12ns,QDRIV 10ns)+90ns=122ns,相比较于传统方案的190ns,读时延缩短了68ns。
如果按照40%Miss率,传统方案的访问性能为:60%hit*(10ns+90ns)+40%*(10ns+90ns+90ns)=136,本申请提供的方案的访问性能为:60%hit*(10ns+90ns)+40%*(10ns+22ns+90ns)=108.8,访问性能可以提升(136-108.8)/136=20%。
另一方面,本申请提供一种数据处理方法,应用于上述数据处理设备20。对于数据处理设备20的结构已经在前述实施例中进行了详细描述,此处不再赘述。
如图6所示,本申请实施例提供的数据处理方法可以包括:
S601、处理器接收处理第一数据的请求消息。
具体的,S601中处理器接收到处理第一数据的请求消息,若第一数据对应的待访问数据存储于扩展存储装置,则执行S602。
示例性的,若待访问数据为页表,第一数据对应的待访问数据则为页表。若待访问数据为随机转发表项,第一数据对应的待访问数据则为随机转发表项。
S602、处理器从扩展存储装置中,获取第一数据对应的待访问数据,以处理第一数据。
具体的,在S602中,处理器将请求消息转发至扩展存储装置,由扩展存储装置根据请求消息获取第一数据对应的待访问数据后返回。可选的,S602具体可以实现为S6021和S6022。
S6021、处理器向扩展存储装置发送请求消息。
S6022、扩展存储装置在接收到请求消息后,将处理器的物理地址到低时延存储空间的物理地址进行映射。
在S6022中,通过将处理器的物理地址到扩展的存储空间的物理地址进行映射,将请求消息转发至对应的存储空间,从对应的存储空间读取第一数据对应的待访问数据,返回给处理器,以使得处理器获取第一数据对应的待访问数据,对第一数据进行处理。
示例性的,上述处理器的待访问数据为页表,该页表用于处理器的虚拟地址到内存的物理地址的映射。S602中处理器在接收到处理第一数据的请求消息时,从扩展存储装置中,查询页表获取第一数据的物理地址,进而按照第一数据的物理地址访问内存,读取第一数据。
示例性的,上述处理器的待访问数据为网络转发领域的随机表项,该随机表项可以用于指示数据转发的入端口与出端口的对应关系,以指导数据的转发路径。S602中处理器在接收到处理第一数据的请求消息时,从扩展存储装置中,查询随机表项获取第一数据的出端口,进而按照出端口转发第一数据。
通过本申请提供的方案,将处理器的待访问数据,存储于通过CXL接口与处理器连接的扩展存储装置中,并将获取扩展存储装置中存储的待访问数据的请求消息配置最高优先级。由于CXL接口的低时延性能,处理器在读取这些待访问数据时,通过CXL接口从扩展存储装置中读取,即使在频繁访问场景中,也可以低时延的处理数据;同时,获取扩展存储装置中存储的待访问数据的请求消息配置最高优先级,保证了这些请求消息的优先处理,更进一步的提高了数据处理时延。因此,本申请的方案很好的提高了内存访问时间性能。
进一步可选的,如图6所示,在S601之前,本申请提供的数据处理方法还可以包括S603。
S603、扩展存储装置在数据处理设备的启动引导boot阶段,将扩展存储装置注册至处理器。
其中,boot指的是系统引导项,它是在开机运行时,计算机操作系统运行之前就自动运行的一段小程序。通过这段小程序可以建立内存空间的映射图、初始化硬件设备等操作,为最终调用操作系统内核准备环境。本申请将运行这个小程序的阶段称之为启动引导boot阶段。
需要说明的是,S603的具体实现可以参照前述属性存储单元204的具体实现,此处不再赘述。
可选地,如图6所示,本申请提供的数据处理方法还可以包括S604。
S604、扩展存储装置将访问其存储表项的请求消息配置最高优先级。
需要说明的是,S604的具体实现可以参照前述数据处理设备20中的具体实现,此处不再赘述。
还需要说明的是,本申请实施例提供的数据处理的方法所包括的步骤,可以根据实际需求配置执行顺序以及可选步骤,图6只是一种可行的示例,并不构成具体限定。
另一方面,本申请提供一种数据处理方法,应用于上述数据处理设备20进行TLB的场景中。数据处理设备20的处理器的待访问数据为页表,该页表用于处理器的虚拟地址到内存的物理地址的映射,该页表存储于数据处理设备20中的扩展存储装置中。数据梳理设备的处理器的处理流程可以包括如下步骤a至步骤d:
步骤a、处理器接收到携带虚拟地址的请求消息,该请求消息用于虚拟地址对应的物理地址指示的内存中存储的第一数据。
步骤b、处理器使用虚拟地址查询扩展存储装置中存储的页表,查询虚拟页表号与物理页表号的映射关系,获取虚拟页表号对应的物理地址页表号。
具体的,处理器可以将虚拟地址通过CXL接口,转发至扩展存储装置,由扩展存储装置将页表中虚拟地址中的虚拟地址页表号对应的物理页表号,反馈给处理器。
步骤c、处理器用虚拟地址中的页偏移和物理地址页表号计算出物理地址。
步骤d、处理器使用物理地址访问内存数据,读取该物理地址位置存储的第一数据。
作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的数据处理方法。
作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行时执行上述方法实施例中的数据处理方法。
本申请实施例再提供一种芯片,该芯片系统包括处理器,用于实现本发明实施例的技术方法。在一种可能的设计中,该芯片系统还包括存储器,用于保存本申请实施例必要的程序指令和/或数据。在一种可能的设计中,该芯片系统还包括存储器,用于处理器调用存储器中存储的应用程序代码。该芯片系统,可以由一个或多个芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
本申请实施例再提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的数据处理方法。
本申请实施例再一种计算机程序产品,当其在计算机上运行时,使得计算机执行所述的数据处理方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种数据处理设备,其特征在于,所述数据处理设备包括处理器、扩展存储装置;其中:
所述扩展存储装置通过计算快速链路CXL接口与所述处理器连接;
所述处理器用于,在接收到处理第一数据的请求消息后,获取所述第一数据的虚拟地址,所述处理器还用于从所述扩展存储装置中获取待访问数据,所述待访问数据用于标识所述虚拟地址对应的物理地址,所述处理器还用于根据所述物理地址读取所述第一数据。
2.根据权利要求1所述的数据处理设备,其特征在于,所述扩展存储装置包括CXL芯片,以及存储空间;所述存储空间用于存储所述待访问数据。
3.根据权利要求2所述的数据处理设备,其特征在于,所述扩展的存储空间位于所述CXL芯片内,所述存储空间包括静态随机存取存储器SRAM。
4.根据权利要求2所述的数据处理设备,其特征在于,所述扩展的存储空间位于所述CXL芯片外,所述存储空间包括连接的片外四倍数据倍率QDR系列存储。
5.根据权利要求2-4任一项所述的数据处理设备,其特征在于,所述CXL芯片还用于将所述请求消息配置为最高优先级。
6.根据权利要求1-5任一项所述的数据处理设备,其特征在于,所述数据处理设备还包括属性存储单元;
所述属性存储单元用于在所述数据处理设备的启动引导boot阶段,将所述扩展存储装置注册至所述处理器。
7.根据权利要求1-6任一项所述的数据处理设备,其特征在于,所述待访问数据为页表,所述页表用于保存所述处理器的虚拟地址到内存的物理地址的映射。
8.一种数据处理方法,其特征在于,应用于数据处理设备,所述数据处理设备包括处理器、扩展存储装置;所述扩展存储装置通过计算快速链路CXL接口与所述处理器连接;获取所述待访问数据的请求消息配置最高优先级;所述方法包括:
所述处理器接收处理第一数据的请求消息;
所述处理器获取所述第一数据的虚拟地址;
所述处理器从所述扩展存储装置中获取待访问数据,所述待访问数据用于标识所述虚拟地址对应的物理地址;
所述处理器还用于根据所述物理地址读取所述第一数据。
9.根据权利要求8所述的方法,其特征在于,所述扩展存储装置包括CXL芯片,以及基于所述CXL芯片扩展的存储空间;所述扩展的存储空间用于存储所述待访问数据,获取所述扩展的存储空间的请求消息配置最高优先级。
10.根据权利要求9所述的方法,其特征在于,所述扩展的存储空间包括所述CXL芯片内的静态随机存取存储器SRAM。
11.根据权利要求9所述的方法,其特征在于,所述扩展的存储空间包括所述CXL芯片连接的片外四倍数据倍率QDR系列存储。
12.根据权利要求9-11任一项所述的方法,其特征在于,所述CXL芯片将所述请求消息配置为最高优先级。
13.根据权利要求8-12任一项所述的方法,其特征在于,所述方法还包括:
在所述数据处理设备的启动引导boot阶段,将所述扩展存储装置注册至所述处理器。
14.根据权利要求8-13任一项所述的方法,其特征在于,所述待访问数据为页表,所述页表用于保存所述处理器的虚拟地址到内存的物理地址的映射。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764200.9A CN117370228A (zh) | 2022-06-30 | 2022-06-30 | 一种数据处理设备及方法 |
PCT/CN2023/081758 WO2024001310A1 (zh) | 2022-06-30 | 2023-03-15 | 一种数据处理设备及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764200.9A CN117370228A (zh) | 2022-06-30 | 2022-06-30 | 一种数据处理设备及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370228A true CN117370228A (zh) | 2024-01-09 |
Family
ID=89382609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210764200.9A Pending CN117370228A (zh) | 2022-06-30 | 2022-06-30 | 一种数据处理设备及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117370228A (zh) |
WO (1) | WO2024001310A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667758A (zh) * | 2024-01-31 | 2024-03-08 | 苏州元脑智能科技有限公司 | L3级缓存扩展装置、访问方法、访问装置、设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710544B (zh) * | 2017-10-26 | 2021-02-09 | 华为技术有限公司 | 内存访问方法、计算机系统以及处理装置 |
US11422944B2 (en) * | 2020-08-10 | 2022-08-23 | Intel Corporation | Address translation technologies |
CN114064524A (zh) * | 2021-11-22 | 2022-02-18 | 浪潮商用机器有限公司 | 一种服务器、提升服务器性能的方法、装置及介质 |
CN114020655A (zh) * | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
-
2022
- 2022-06-30 CN CN202210764200.9A patent/CN117370228A/zh active Pending
-
2023
- 2023-03-15 WO PCT/CN2023/081758 patent/WO2024001310A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667758A (zh) * | 2024-01-31 | 2024-03-08 | 苏州元脑智能科技有限公司 | L3级缓存扩展装置、访问方法、访问装置、设备及介质 |
CN117667758B (zh) * | 2024-01-31 | 2024-04-09 | 苏州元脑智能科技有限公司 | L3级缓存扩展装置、访问方法、访问装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024001310A1 (zh) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789872B2 (en) | Slot/sub-slot prefetch architecture for multiple memory requestors | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
US8405668B2 (en) | Streaming translation in display pipe | |
US8751713B2 (en) | Executing virtual functions using memory-based data in a PCI express SR-IOV and MR-IOV environment | |
US7636810B2 (en) | Method, system, and apparatus for memory compression with flexible in-memory cache | |
US8447897B2 (en) | Bandwidth control for a direct memory access unit within a data processing system | |
CN108351829B (zh) | 用于输入/输出计算资源控制的系统和方法 | |
US10310759B2 (en) | Use efficiency of platform memory resources through firmware managed I/O translation table paging | |
CN107667355B (zh) | 一种用于提供分区的转换高速缓存器的方法及其设备 | |
US11741039B2 (en) | Peripheral component interconnect express device and method of operating the same | |
US10114761B2 (en) | Sharing translation lookaside buffer resources for different traffic classes | |
WO2023165319A1 (zh) | 内存访问方法、装置和输入输出内存管理单元 | |
US9990305B2 (en) | Memory management component having multiple memory management modules and method therefor | |
CN117370228A (zh) | 一种数据处理设备及方法 | |
US20230350811A1 (en) | Real time input/output address translation for virtualized systems | |
WO2008031678A1 (en) | Dmac address translation miss handling mechanism | |
US8700865B1 (en) | Compressed data access system and method | |
US20220114107A1 (en) | Method and apparatus for detecting ats-based dma attack | |
WO2018077219A1 (zh) | 内存管理方法及系统 | |
US8533425B1 (en) | Age based miss replay system and method | |
WO2021061374A1 (en) | Multi-core processor and inter-core data forwarding method | |
CN117667766A (zh) | 一种访问存储器的方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |