CN113900965A - 净荷高速缓存 - Google Patents
净荷高速缓存 Download PDFInfo
- Publication number
- CN113900965A CN113900965A CN202110675989.6A CN202110675989A CN113900965A CN 113900965 A CN113900965 A CN 113900965A CN 202110675989 A CN202110675989 A CN 202110675989A CN 113900965 A CN113900965 A CN 113900965A
- Authority
- CN
- China
- Prior art keywords
- payload
- cache
- data
- interface
- local
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在一个实施方式中,一种计算机系统包括:净荷子系统,该净荷子系统包括:用于与相应设备连接、与相应设备传送数据并且从相应设备接收写入事务的接口,用于将接收到的写入事务分类为净荷数据和控制数据的分类器,用于存储已分类的净荷数据的净荷高速缓存;处理单元(PU)子系统,该处理单元(PU)子系统包括:用于存储已分类的控制数据的本地PU高速缓存,其中净荷高速缓存和本地PU高速缓存是计算机系统中的相应不同物理位置中的不同物理高速缓存;和处理核心电路,该处理核心电路被配置为执行软件程序指令以响应于存储在本地PU高速缓存中的控制数据来执行控制和分组处理。
Description
相关申请信息
本申请是2020年6月22日提交的美国专利申请S/N 16/907,347的部分继续申请,其公开内容通过引用并入本文。
技术领域
本发明涉及计算机系统,尤其但非排他地涉及数据高速缓存。
背景技术
网络接口控制器(NIC)通常是快速外围组件互连(PCIe)卡,其插入到服务器或存储盒中以实现与以太网的连接性。SmartNIC提供的功能性超出了简单的连接性,并且在NIC上实现了网络流量处理,这在基础NIC的情况下必须由中央处理单元(CPU)执行。
Bloch等人的美国专利公开2015/0271244描述了一种网络接口设备,其包括主机接口和网络接口,该主机接口用于连接到主机处理器,该网络接口被配置为通过网络发射和接收分组,并且包括被配置为连接到网络的多个不同的物理端口。处理电路被配置为经由物理端口之一从网络接收数据分组,并且响应于分组中的目的地标识符来决定经由主机接口将数据分组的净荷递送到主机处理器还是经由另一个物理端口将分组转发到网络。
Kagan等人的美国专利8,051,212描述了一种网络接口适配器,其包括:传出分组生成器,其适用于响应于由主机处理器提交的请求而生成传出请求分组以递送给远程响应者;以及网络输出端口,其被耦合来通过网络向远程响应者发射该传出请求分组。网络输入端口响应于发送给远程响应者的传出请求分组而从远程响应者接收传入响应分组,以及由远程请求者发送的传入请求分组。传入分组处理器接收并处理传入响应分组和传入请求分组,并使传出分组生成器响应于传入请求分组,除了传出请求分组之外,还生成传出响应分组以传输到远程请求者。
发明内容
根据本公开的实施方式,提供了一种计算机系统,包括:净荷子系统,该净荷子系统包括:被配置为与相应设备连接、与相应设备传送数据并且从相应设备接收写入事务的接口,被配置为将接收到的写入事务分类为净荷数据和控制数据的分类器,以及被配置为存储已分类的净荷数据的净荷高速缓存;以及处理单元(PU)子系统,该处理单元(PU)子系统包括:用于存储已分类的控制数据的本地PU高速缓存,其中净荷高速缓存和本地PU高速缓存是计算机系统中的相应不同物理位置中的不同物理高速缓存;和处理核心电路,该处理核心电路被配置为执行软件程序指令以响应于存储在本地PU高速缓存中的控制数据来执行控制和分组处理。
进一步根据本公开的实施方式,处理核心电路被配置为管理已分类的净荷数据经由接口和净荷高速缓存从设备中的第一设备到设备中的第二设备的传送。
更进一步根据本公开的实施方式,第一设备包括直接连接到接口之一的外部存储设备,并且第二设备包括经由网络连接到接口之一的网络节点。
另外,根据本公开的实施方式,第一设备包括经由网络连接到接口之一的第一网络节点,并且第二设备包括经由网络连接到接口之一的第二网络节点。
此外,根据本公开的实施方式,处理核心电路被配置为管理已分类的净荷数据经由接口和净荷高速缓存从第一设备到第二设备的传送,而无需软件访问净荷高速缓存。
进一步根据本公开的实施方式,处理核心电路被配置为管理已分类的净荷数据经由接口和净荷高速缓存从第一设备到第二设备的传送,而无需软件将任何已分类的净荷数据存储在本地PU高速缓存中。
更进一步根据本公开的实施方式,处理核心电路被配置为生成净荷高速缓存中的相应空闲存储器位置的缓冲区描述符,并将缓冲区描述符提供给接口,并且接口被配置为响应于所提供的缓冲区描述符,经由净荷高速缓存将净荷数据从第一设备传送到第二设备。
另外,根据本公开的实施方式,处理核心电路被配置为响应于缓冲区描述符来管理至少一个队列,接口被配置为响应于至少一个队列,经由净荷高速缓存将净荷数据从第一设备传送到第二设备。
此外,根据本公开的实施方式,净荷高速缓存比处理核心电路在物理上被定位得更靠近接口,并且本地PU高速缓存比接口在物理上被定位得更靠近处理核心电路。
进一步根据本公开的实施方式,分类器被配置为响应于以下中的一个或多个而将接收到的写入事务分类为净荷数据和控制数据:数据类型,分组描述符数据,分组报头数据,数据大小,转向标签数据,或地址数据。
更进一步根据本公开的实施方式,该系统包括:存储器,该存储器被配置为跨多个存储器位置存储数据,处理核心电路被配置为将在相应存储器位置处从该存储器中读取的高速缓存行高速缓存到本地PU高速缓存中;互连,该互连被配置为管理存储器和本地PU高速缓存的读取操作和写入操作,根据高速缓存的高速缓存行的相应存储器位置,维持高速缓存的高速缓存行的本地高速缓存位置数据,并且维持存储器的一致性,并且其中分类器被配置为响应于本地高速缓存位置数据中的至少一些和写入事务的相应存储器位置,将接收到的写入事务分类为净荷数据和控制数据。
另外,根据本公开的实施方式,净荷子系统还包括至少一个硬件加速器,该硬件加速器被配置为执行以下中的任何一个或多个:从存储在净荷高速缓存中的净荷数据中计算校验和,从存储在净荷高速缓存中的净荷数据中执行冗余检查,压缩存储在净荷高速缓存中的至少一些净荷数据,或加密存储在净荷高速缓存中的至少一些净荷数据。
根据本公开的另一个实施方式,还提供一种方法,包括:从连接的设备接收写入事务;将接收到的写入事务分类为净荷数据和控制数据;将已分类的净荷数据存储在净荷高速缓存中;将已分类的控制数据存储在本地处理单元(PU)高速缓存中,其中净荷高速缓存和本地PU高速缓存是计算机系统中的相应不同物理位置中的不同物理高速缓存,并且执行软件程序指令以响应于存储在本地PU高速缓存中的控制数据来执行控制和分组处理。
此外,根据本公开的实施方式,执行软件程序指令包括管理已分类的净荷数据经由净荷高速缓存从设备中的第一设备到设备中的第二设备的传送。
进一步根据本公开的实施方式,软件程序管理已分类的净荷数据经由净荷高速缓存从第一设备到第二设备的传送,而无需访问净荷高速缓存。
更进一步根据本公开的实施方式,软件程序管理已分类的净荷数据经由净荷高速缓存从第一设备到第二设备的传送,而无需将任何分类的净荷数据存储在本地PU高速缓存中。
另外,根据本公开的实施方式,该方法包括:生成净荷高速缓存中的相应空闲存储器位置的缓冲区描述符;并且响应于缓冲区描述符,经由净荷高速缓存将净荷数据从第一设备传送到第二设备。
此外,根据本公开的实施方式,该方法包括:响应于缓冲区描述符来管理至少一个队列;并且响应于至少一个队列,经由净荷高速缓存将净荷数据从第一设备传送到第二设备。
进一步根据本公开的实施方式,分类包括:响应于以下中的一个或多个而将接收到的写入事务分类为净荷数据和控制数据:数据类型,分组描述符数据,分组报头数据,数据大小,控制标签数据,或地址数据。
更进一步根据本公开的实施方式,分类包括:响应于以下内容而将接收到的写入事务分类为净荷数据和控制数据:维持在目录中的本地高速缓存位置数据,该目录被维持以提供存储器的一致性,以及写入事务的相应存储器位置。
另外,根据本公开20的实施方式,该方法包括执行以下的任何一个或多个:从存储在净荷高速缓存中的净荷数据中计算校验和,从存储在净荷高速缓存中的净荷数据中执行冗余校验,压缩存储在净荷高速缓存中的至少一些净荷数据,或者加密存储在净荷高速缓存中的至少一些净荷数据。
附图说明
从以下结合附图的详细描述中将理解本发明,其中:
图1是根据本发明的实施方式构造和操作的计算机系统的框图;
图2是包括在图1的系统中的数据管理方法中的步骤的流程图;
图3是包括在图1的系统中履行数据请求的方法中的步骤的流程图;
图4是包括在图1的系统中传送净荷数据的方法中的步骤的流程图;
图5是包括在图1的系统中基于队列来履行数据请求的方法中的步骤的流程图;以及
图6是包括在图1的系统中基于队列来传送净荷数据的方法中的步骤的流程图。
具体实施方式
SmartNIC、存储控制器或其他接口可以处理传入分组,并稍后将修改后的分组转发到目标,例如主机处理器、网络节点或外部固态驱动器(SSD)。例如,分组中的一些(或其一部分)可以由硬件加速器或通用处理器处理。
作为另一示例,经由网络连接到服务器的设备可以请求存储在经由快速外围组件互连(PCIe)接口直接连接到服务器的外部磁盘上的内容。数据可以从外部磁盘进行检索,可选地由硬件加速器处理,然后被写入到系统存储器(例如,动态随机存取存储器(DRAM))中,并且一旦在存储器中,就会有一个由服务器的中央处理单元(CPU)管理的“存储和转发”过程,以激活服务器的网络接口控制器(NIC)通过网络将数据发送到远程设备。
分组处理可以包括每个分组处理,涉及对分组描述符和分组报头以及对软件维护的上下文数据库的访问,其中大多数的分组净荷不被访问。通常使用CPU来执行该处理。
可选地,诸如检查数据完整性、数据压缩和数据加密之类的净荷数据处理通常可以通过专用硬件加速器来执行。
由于每个分组处理都对存储器访问时延是敏感的,并且涉及对分组的有限部分的访问,因此将数据高速缓存成尽可能靠近CPU是有利的。对于净荷数据处理,将净荷数据高速缓存到裸片上以避免外部存储器带宽是有益的。在裸片内,将净荷放置成靠近硬件加速器和输入/输出(I/O)接口以便减少片上互连带宽是有益的。在每个分组处理和净荷数据处理的这两种情况下,高速缓存容量理解对于正确调整系统性能很重要。
一种解决方案是在CPU附近使用本地高速缓存,并在CPU和外围设备(诸如,加速器和/或I/O接口)之间共享更大的系统高速缓存。
上述解决方案遭受各种问题。首先,对于CPU和外围设备的访问而言,共享的高速缓存位置都不是最佳的。这可能会导致平均读取时延太高,这进而对CPU性能有着严重的负面影响。这也可能需要高带宽互连,以便在I/O接口和可选的加速器之间传送净荷数据。其次,由于除了I/O接口之间的数据传送之外,CPU还执行其他任务,因此CPU上运行的软件可能会将净荷数据从共享高速缓存中逐出到存储器(例如,DRAM),从而进一步降低了传送过程的性能。第三,难以分析软件和硬件之间的共享高速缓存容量分配以便正确地调整系统性能。
本发明的实施方式通过将经由I/O接口从外部设备写入的数据的高速缓存拆分为净荷数据和控制数据来解决上述问题。净荷数据被存储在通常物理上更靠近I/O接口和加速器的净荷高速缓存20中,而控制数据则被存储在通常物理上更靠近CPU的本地CPU高速缓存中。在所公开的实施方式中,不需要用于存储净荷和控制数据二者的共享高速缓存。在一些实施方式中,CPU和本地CPU高速缓存可以由任何合适的处理单元(PU)和本地PU高速缓存代替,例如图形处理单元(GPU)和GPU高速缓存。
如说明书和权利要求书中所使用的,术语“净荷数据”被定义为经由I/O接口从外部设备接收并经由I/O接口传送到另一外部设备而无需被读取以供CPU使用的数据。
如说明书和权利要求书中所使用的,术语“控制数据”被定义为经由I/O接口从外部设备接收并且需要被读取以供CPU使用的数据。
在一些实施方式中,通过分类器将从相应外部设备接收的写入事务分类为净荷数据和控制数据。分类器可以使用任何合适的方法来识别净荷数据和控制数据。在一些实施方式中,分类器根据以下中的一个或多个将接收到的写入事务分类为净荷数据和控制数据:数据类型、分组描述符数据、分组报头数据、数据大小、转向标签数据或地址数据。在一些实施方式中,由存储器一致性目录所提供的数据可以被用来对数据进行分类。
本发明的实施方式减少了时延并且减少了与使用共享高速缓存相关联的互连带宽要求,以及防止了与净荷数据的传送无关的CPU过程将净荷数据逐出到存储器中。例如,如果本地CPU高速缓存溢出,则溢出将去往存储器而不会干扰净荷数据,对于净荷,反之亦然。由于CPU经历了短读取时延,因此处理性能被改善。在CPU上运行的软件可以将其数据结构和行为调整为其专用的本地CPU高速缓存。可以基于线路速度和已知的外围时延来确定净荷高速缓存的大小,而无需考虑意外的软件行为。在I/O接口和(一个或多个)加速器附近提供净荷高速缓存可释放CPU附近用于处理的路由资源。另外,I/O接口和(一个或多个)加速器的带宽行为易于分析,从而允许优化I/O接口和(一个或多个)加速器的区域中的互连设计。类似地,净荷高速缓存和CPU本地高速缓存的位置允许减少互连并降低互连复杂性。
系统描述
通过引用并入本文的文档应被视为本申请的组成部分,除非在这些被并入的文档中定义的任何术语与本说明书中显式或隐式的定义相冲突,则仅应考虑本说明书中的定义。
现在对图1进行参考,图1是根据本发明的实施方式构造和操作的计算机系统10的框图。还对图2进行参考,图2是包括在图1的系统10中的数据管理方法中的步骤的流程图50。
计算机系统10包括净荷子系统12、中央处理单元(CPU)子系统14、存储器16、目录18和互连20。净荷子系统12包括多个接口22、分类器24、净荷高速缓存26和可选的一个或多个加速器28。CPU子系统14包括处理核心电路30和本地CPU高速缓存32。处理核心电路30可以包括一个或多个处理核心34。本地CPU高速缓存32可以包括一个或多个高速缓存36。净荷子系统12、CPU子系统14、互连20、目录18和存储器16可以被实现在单个裸片上或者可以被实现在两个或更多裸片上。
在一些实施方式中,CPU子系统14可以被实现为任何合适的处理单元(PU)子系统,例如,包括一个或多个图形处理核心的图形处理单元(GPU)子系统,以及任何合适的本地PU高速缓存,例如本地GPU高速缓存。
外部设备38-1经由接口22-1连接到计算机系统10,并且外部设备38-2经由接口22-2连接到计算机系统10。计算机系统10可以包括连接到多于两个的相应外部设备38的多于两个的接口22。
外部设备38可以包括任何合适的外部设备,例如,外部存储设备(例如,快速非易失性存储器(NVMe)SSD)或网络节点。
在一些实施方式中,外部设备38-1包括(例如,经由电缆而无需网络)直接连接到接口22-1的外部存储设备,并且外部设备38-2包括经由网络40连接到接口22-2的网络节点。在这些实施方式中,接口22-1可以包括任何合适的接口,例如PCIe接口,并且接口22-2可以包括NIC。
在一些实施方式中,外部设备38-1包括经由网络40(例如,经由网络电缆、Wi-Fi或蓝牙)连接到接口22-1的网络节点,并且外部设备38-2包括经由网络40或经由另一网络(例如,经由网络电缆、Wi-Fi或蓝牙)连接到接口22-2的另一网络节点。在这些实施方式中,每个接口22-1、22-2包括NIC。
在一些实施方式中,外部设备38-1、38-2可以经由接口22直接连接到计算机系统10。
存储器16(例如,DRAM或任何合适的RAM)被配置为跨多个存储器位置存储数据。互连20被配置为:管理存储器16、本地CPU高速缓存32和净荷高速缓存26的读取操作和写入操作;根据高速缓存的高速缓存行的相应存储器位置,将本地高速缓存位置数据维持在高速缓存的高速缓存行的目录18中;并根据合适的存储器一致性协议来维持存储器16的一致性。
净荷高速缓存26和本地CPU高速缓存32是计算机系统10中的相应不同物理位置中的不同物理高速缓存。净荷高速缓存26通常比处理核心电路30在物理上被定位得更靠近接口22。本地CPU高速缓存36通常比接口22在物理上被定位得更靠近处理核心电路30。如在说明书和权利要求中所使用的,术语A比C在物理上更靠近B在本文中被定义为意指A和B之间的连接比A和C之间的连接更快和/或更便宜。
接口22被配置为:(直接地,例如经由电缆而无需网络,和/或经由网络间接地)与相应外部设备38连接。接口22被配置为与相应设备38传送数据,例如从外部设备38-1向外部设备38-2传送数据。接口22被配置为从相应设备38接收(框52)写入事务。写入事务可以包括分组或数据元素,其中任何分组或数据元素包括净荷数据和/或控制数据。例如,数据元素可以包括作为控制数据的报头部分和作为净荷数据的净荷部分。数据元素可以包括报头部分和净荷部分,它们都被分类为控制数据,例如数据传送请求或通知或确认。数据元素可以仅包括净荷数据。
分类器24被配置为从接口22接收写入事务,并且将接收到的写入事务分类(框54)为净荷数据和控制数据。控制数据可以包括控制结构和分组报头。在一些实施方式中,分类器24的功能性可以被并入到每个接口22中。
可以使用任何合适的方法和标准来执行分类。例如,诸如NIC之类的接口可以具有对写入的数据类型、分组描述符和分组报头的详细理解。该信息可以被用来确定写入事务(例如,接收到的分组)是净荷数据还是控制数据,或者写入事务的哪些部分是净荷数据或控制数据。例如,分组描述符和分组报头可以被分类为控制数据,而分组净荷部分可以被分类为净荷数据。作为另一示例,诸如PCIe接口之类的接口设备可以使用试探法来估计写入事务是控制数据还是净荷数据。例如,小尺寸的事务可以暗示控制结构,其应被存储在本地CPU高速缓存32中,而大尺寸的事务可以被存储在净荷高速缓存26中。来自外部设备的PCIe“转向标签”可以被用来编码写入事务是控制数据还是净荷数据。数据是净荷数据还是控制数据的指示可以由软件设备驱动器编码在写入事务中使用的地址中(例如,在该地址的最高有效位中)。
因此,在一些实施方式中,分类器24被配置为响应于以下中的一个或多个将接收到的写入事务分类为净荷数据和控制数据:数据类型;分组描述符数据;分组报头数据;数据大小;转向标签数据;或地址数据。
在一些实施方式中,分类器24被配置为响应于(存储在目录18中的)本地高速缓存位置数据和写入事务的相应存储器位置,将接收到的写入事务分类为净荷数据和控制数据。例如,如果写入事务与存储器16中的特定存储器位置相关联,则可以搜索目录18以寻找与该存储器位置相关联的高速缓存的位置,以确定来自该存储器位置的数据是被高速缓存在净荷高速缓存26中还是本地CPU高速缓存32中。搜索的结果然后提供接收到的写入事务应被分类为净荷数据还是控制数据的指示。
在实践中,分类器24的一些或全部功能可以被组合在单个物理组件中,或者可替代地,使用多个物理组件来实现。这些物理组件可以包括硬连线或可编程设备,或者两者的组合。在一些实施方式中,分类器24的至少一些功能可以在合适的软件的控制下由可编程处理器来执行。例如,该软件可以通过网络以电子的形式被下载到设备。可替代地或附加地,软件可以被存储在有形的、非暂时性的计算机可读存储介质中,诸如光、磁或电子存储器。
净荷高速缓存26被配置为存储(框56)从接口22-1运送到接口22-2的已分类的净荷数据。净荷数据由接口22-1写入到净荷高速缓存26。
本地CPU高速缓存32被配置为存储(框58)已分类的控制数据和由正被执行的软件所使用的其他数据。本地CPU高速缓存32可以包括每个核心34、每个核心群集或在所有核心34之间共享的多个高速缓存级别。
处理核心电路30被配置为执行软件程序指令以:响应于存储在本地CPU高速缓存32中的控制数据(并且可选地响应于存储在任何其他位置的数据)来执行控制和分组处理;将在相应存储器位置处从存储器16中读取的高速缓存行高速缓存到本地CPU高速缓存36中;并且管理已分类的净荷数据经由接口22和净荷高速缓存26从外部设备38-1到外部设备38-2的传送(框60)。
在一些实施方式中,在处理核心电路30上运行的软件被配置为管理已分类的净荷数据经由接口22和净荷高速缓存26从设备38-1到设备38-2的传送,而无需软件访问净荷高速缓存26(例如,从其中读取或写入到其中)。
在一些实施方式中,在处理核心电路30上运行的软件被配置为管理已分类的净荷数据经由接口22和净荷高速缓存26从设备38-1到设备38-2的传送,而无需软件将任何已分类的净荷数据存储在本地CPU高速缓存32中。
在实践中,处理核心电路30的一些或全部功能可以被组合在单个物理组件中,或者可替代地,使用多个物理组件来实现。在一些实施方式中,处理核心电路30的至少一些功能可以在合适的软件的控制下由可编程处理器来执行。例如,该软件可以通过网络以电子的形式被下载到设备。可替代地或附加地,该软件可以被存储在有形的、非暂时性的计算机可读存储介质中,例如光、磁或电子存储器。
(一个或多个)加速器28被配置为执行以下的任何一个或多个:从存储在净荷高速缓存26中的净荷数据中计算校验和;从存储在净荷高速缓存器26中的净荷数据中执行冗余检查;压缩存储在净荷高速缓存26中的至少一些净荷数据;或者加密存储在净荷高速缓存26中的至少一些净荷数据。
可以使用任何合适的方法来处理数据请求和数据传送。参考图3和图4的描述,描述了一种处理数据请求的方法。参考图5和图6的描述,描述了另一种方法。
现在对图3进行参考,图3是包括在图1的系统10中履行数据请求的方法中的步骤的流程图70。还对图1进行参考。
接口22-2被配置为从外部设备38-2接收(框72)数据传送请求。被请求数据被存储在外部设备38-1中。数据传送请求被分类器24分类为控制数据,并且被传送到本地CPU高速缓存32,以由处理核心电路30的软件进行处理。在一些实施方式中,控制数据被存储在本地CPU高速缓存32中的任何合适的位置(例如,任何空闲的高速缓存行)中。处理核心电路30被配置为生成(框74)一个或多个缓冲区描述符,其指示净荷高速缓存26中的一个或多个空闲存储器位置。处理核心电路30被配置为:将(一个或多个)缓冲区描述符提供(框76)到接口22。处理核心电路30可以经由对外部设备38的写入和读取请求,将缓冲区描述符提供到接口22,如参考图4更详细描述的。接口22被配置为响应于所提供的(一个或多个)缓冲区描述符,经由净荷高速缓存26从设备38-1向设备38-2传送(由设备38-1提供的)净荷数据(框78)。作为数据传送请求的一部分,由接口22使用缓冲区描述符将数据写入到净荷高速缓存26并从净荷高速缓存26读取数据,如将参考图4更详细描述的。可以在履行数据传送请求的同时重复框76和78(箭头80)的步骤,如参考图4更详细描述的。随着净荷高速缓存26中的空间变得空闲,可以生成更多的缓冲区描述符(箭头82)。缓冲区描述符可能需要被接口22处理,以提供净荷高速缓存26中的高速缓存位置。一旦所有被请求数据都已经从外部设备38-1被传送,外部设备38-1就可以被配置为将数据结束通知发送到处理核心电路30,该通知由接口22-1接收(框84)并传送到本地CPU高速缓存32。
现在对图4进行参考,图4是在包括图1的系统10中传送净荷数据的方法中的步骤的流程图90。还对图1进行参考。
处理核心电路30被配置为向接口22-1提供(框92)净荷高速缓存26中的空闲存储器位置的缓冲区描述符。处理核心电路30还可以向外部设备38-1发送请求,以将净荷的块传送到接口22-1。在一些实施方式中,处理核心电路30可以向外部设备38-1发送请求,以将所有被请求数据传送到接口22-1,并且允许接口22-1控制从外部设备38-1到接口22-1的数据传送。接口22-1被配置为响应于由处理核心电路30提供的缓冲区描述符,将从外部设备38-1接收的净荷数据写入(框94)到净荷高速缓存26。接口22-1或外部设备38-1被配置为向处理核心电路30提供对写入的确认(框96)。该确认被分类为控制数据,并且被传送到本地CPU高速缓存32以用于由处理核心电路30接收(框98)和处理。响应于写入确认,处理核心电路30被配置为向接口22-2(例如,发送接口)和/或外部设备38-2提供(框100)相同的缓冲区描述符。处理核心电路30还可以根据缓冲区描述符向外部设备38-2发送请求,以从接口22-2读取净荷数据。响应于读取请求,外部设备38-2可以被配置为根据所提供的缓冲区描述符从接口22-2读取数据。在一些实施方式中,处理核心电路30可以向外部设备38-2发送请求,以从接口22-2传送所有净荷,并允许接口22-2根据由处理核心电路30提供的(一个或多个)缓冲区描述符来控制从净荷高速缓存26到外部设备22-2的数据传送。接口22-2被配置为响应于所提供的缓冲区描述符从净荷高速缓存26读取(框102)净荷数据。一旦成功地执行了读取,接口22-2或外部设备38-2就被配置为提供(框104)对读取的确认。处理核心电路30被配置为接收(框106)读取确认,并且缓冲区描述符可以被重用,因为缓冲区描述符现在指向空闲(或未使用)存储器位置。可以重复框92-106的步骤,直到针对请求数据的所有净荷都从外部设备38-1被传送到外部设备38-2为止。
如前面所提及,(一个或多个)加速器28可以对存储在净荷高速缓存26中的净荷数据执行操作。因此,在框98和100的步骤之间,处理核心电路30可以向(一个或多个)加速器28发送处理请求,以处理存储在净荷高速缓存26中的净荷数据。一旦(一个或多个)加速器28完成其处理,便向处理核心电路30发送确认。
应当注意,可以针对与相应缓冲区描述符相关联的两个或更多空闲存储器位置并行地执行以上过程。
现在对图5进行参考,图5是在包括图1的系统10中基于队列来履行数据请求的方法中的步骤的流程图200。还对图1进行参考。
处理核心电路30被配置为响应于缓冲区描述符来管理至少一个队列,如下文参考图6更详细描述的。接口22被配置为响应于(一个或多个)队列而经由净荷高速缓存26将净荷数据从外部设备38-1传送到外部设备38-2,如下文参考图6更详细描述的。(一个或多个)队列可以被存储在存储器16中(并且当由处理核心电路30和接口22使用时,分别被高速缓存到本地CPU高速缓存32和接口22的本地高速缓存(未示出))或者被存储在由处理核心电路30、接口22和(一个或多个)加速器28共享的共享高速缓存中。(一个或多个)队列可以包括缓冲区描述符、工作队列元素(WQE)或基于缓冲区描述符或任何适当数据的工作描述符。
接口22-2被配置为从外部设备38-2接收(框202)数据传送请求。被请求数据被存储在外部设备38-1中。数据传送请求被分类器24分类为控制数据,并且被传送到本地CPU高速缓存32,以由处理核心电路30的软件进行处理。处理核心电路30被配置为生成(框204)一个或多个缓冲区描述符,其指示净荷高速缓存26中的一个或多个空闲存储器位置和一个或多个队列。处理核心电路30被配置为:经由一个或多个队列(例如,在接口22-1的接收队列中以及在接口22-2的发送队列中)向接口22提供(框206)(一个或多个)缓冲区描述符。还可以生成和管理其他完成队列以用于读取和写入确认。接口22被配置为响应于在队列中提供的(一个或多个)缓冲区描述符而经由净荷高速缓存26从设备38-1向设备38-2传送(由设备38-1提供的)净荷数据(框208)。作为数据传送请求的一部分,由接口22使用缓冲区描述符将数据写入到净荷高速缓存26并从净荷高速缓存26读取数据,如将参考图6更详细描述的。可以在履行数据传送请求的同时重复框206和208的步骤,如参考图6更详细描述的。随着净荷高速缓存26中的空间变得空闲,可以生成更多的缓冲区描述符并将其添加到队列。缓冲区描述符可能需要被接口22处理,以提供净荷高速缓存26中的高速缓存位置。一旦所有数据都已经从外部设备38-1被传送,外部设备38-1就可以被配置为将数据结束通知发送到处理核心电路30,该通知由接口22-1接收(框210)并传送到本地CPU高速缓存32。
现在对图6进行参考,图6是在包括图1的系统10中基于队列来传送净荷数据的方法中的步骤的流程图220。还对图1进行参考。
处理核心电路30被配置为在接收队列中提供净荷高速缓存26中的空闲存储器位置的缓冲区描述符(框222),其由接口22-1周期性地读取。处理核心电路30还可以向外部设备38-1发送请求,以将净荷的块传送到接口22-1。在一些实施方式中,处理核心电路30可以向外部设备38-1发送请求,以将所有被请求数据传送到接口22-1,并且允许接口22-1控制从外部设备38-1到接口22-1的数据传送。响应于读取接收队列,接口22-1被配置为响应于由处理核心电路30在接收队列中提供的缓冲区描述符,将从外部设备38-1接收的净荷数据写入(框224)到净荷高速缓存26。接口22-1被配置为经由写入完成队列提供(框226)对写入的确认(参考缓冲区描述符),其由处理核心电路30周期性地读取。响应于写入确认,处理核心电路30被配置为在发送队列中提供(框228)相同的缓冲区描述符,其由接口22-2(例如,发送接口)周期性地读取。响应于读取发送队列,接口22-2被配置为响应于在发送队列中提供的缓冲区描述符,从净荷高速缓存26读取(框230)净荷数据。处理核心电路30还可以根据缓冲区描述符向外部设备38-2发送请求,以从接口22-2读取净荷数据。响应于该读取请求,外部设备38-2可以被配置为根据所提供的缓冲区描述符从接口22-2读取数据。在一些实施方式中,处理核心电路30可以向外部设备38-2发送请求,以传送来自接口22-2的所有净荷,并允许接口22-2根据中由处理核心电路30中发送队列提供的(一个或多个)缓冲区描述符来控制从净荷高速缓存26到外部设备38-2的数据传送。一旦成功地执行了读取,接口22-2就被配置为在读取完成队列中提供(框232)对读取的确认(参考缓冲区描述符),其由处理核心电路30周期性地读取。响应于读取确认,处理核心电路30被配置为重用(框234)缓冲区位置,因为缓冲区描述符现在指向空闲存储器位置。可以重复框222-234的步骤,直到针对请求数据的所有净荷都从外部设备38-1被传送到外部设备38-2为止。
如前面所提及,(一个或多个)加速器28可以对存储在净荷高速缓存26中的净荷数据执行操作。因此,在框226和228的步骤之间,处理核心电路30可以经由处理队列(参考缓冲区描述符)向(一个或多个)加速器28发送处理请求,以处理存储在净荷高速缓存26中的净荷数据。一旦(一个或多个)加速器28完成其处理,便将确认写入到处理完成队列,其由处理核心电路30周期性地读取。
应当注意,可以针对与相应缓冲区描述符相关联的两个或更多空闲存储器位置并行地执行以上过程,以使得取决于关于净荷高速缓存26中的每个存储器位置的处理阶段,队列中的任何一个可以包括一个、或两个或更多缓冲区描述符。
为了清楚起见,在分开的实施方式的上下文中描述的本发明的各种特征也可以在单个实施方式中被组合提供。相反,为简洁起见,在单个实施方式的上下文中描述的本发明的各种特征也可以分开地或以任何合适的子组合来提供。
通过示例例证了上述实施方式,并且本发明不受以上已经具体示出和描述的内容的限制。相反,本发明的范围包括上述各种特征的组合和子组合,以及本领域技术人员在阅读前述说明后将想到的并且在现有技术中未公开的变型和修改。
Claims (21)
1.一种计算机系统,包括:
净荷子系统,所述净荷子系统包括:
接口,所述接口被配置为:与相应设备连接;与所述相应设备传送数据;并从所述相应设备接收写入事务;
分类器,所述分类器被配置为将接收到的所述写入事务分类为净荷数据和控制数据;和
净荷高速缓存,所述净荷高速缓存被配置为存储已分类的净荷数据;和
处理单元(PU)子系统,所述处理单元(PU)子系统包括:
本地PU高速缓存,所述本地PU高速缓存被配置为存储已分类的控制数据,其中所述净荷高速缓存和所述本地PU高速缓存是所述计算机系统中的相应不同物理位置中的不同物理高速缓存;和
处理核心电路,所述处理核心电路被配置为执行软件程序指令以响应于存储在所述本地PU高速缓存中的所述控制数据来执行控制和分组处理。
2.根据权利要求1所述的系统,其中所述处理核心电路被配置为管理所述已分类的净荷数据经由所述接口和所述净荷高速缓存从所述设备中的第一设备到所述设备中的第二设备的传送。
3.根据权利要求2所述的系统,其中:
所述第一设备包括直接连接到所述接口之一的外部存储设备;和
所述第二设备包括经由网络连接到所述接口之一的网络节点。
4.根据权利要求2所述的系统,其中:
所述第一设备包括经由网络连接到所述接口之一的第一网络节点;和
所述第二设备包括经由所述网络连接到所述接口之一的第二网络节点。
5.根据权利要求2所述的系统,其中所述处理核心电路被配置为管理所述已分类的净荷数据经由所述接口和所述净荷高速缓存从所述第一设备到所述第二设备的传送,而无需所述软件访问所述净荷高速缓存。
6.根据权利要求5所述的系统,其中所述处理核心电路被配置为管理所述已分类的净荷数据经由所述接口和所述净荷高速缓存从所述第一设备到所述第二设备的传送,而无需所述软件将任何所述已分类的净荷数据存储在所述本地PU高速缓存中。
7.根据权利要求6所述的系统,其中:
所述处理核心电路被配置为:
生成所述净荷高速缓存中的相应空闲存储器位置的缓冲区描述符;以及
将所述缓冲描述符提供给所述接口;以及
所述接口被配置为响应于所提供的缓冲区描述符,经由所述净荷高速缓存将所述净荷数据从所述第一设备传送到所述第二设备。
8.根据权利要求7所述的系统,其中所述处理核心电路被配置为响应于所述缓冲区描述符来管理至少一个队列,所述接口被配置为响应于所述至少一个队列,经由所述净荷高速缓存将所述净荷数据从所述第一设备传送到所述第二设备。
9.根据权利要求1所述的系统,其中所述净荷高速缓存比所述处理核心电路在物理上被定位得更靠近所述接口,并且所述本地PU高速缓存比所述接口在物理上被定位得更靠近所述处理核心电路。
10.根据权利要求1所述的系统,其中所述分类器被配置为响应于以下中的一个或多个而将接收到的所述写入事务分类为净荷数据和控制数据:数据类型;分组描述符数据;分组报头数据;数据大小;转向标签数据;或地址数据。
11.根据权利要求1所述的系统,还包括:
存储器,所述存储器被配置为跨多个存储器位置存储数据,所述处理核心电路被配置为将在相应存储器位置处从存储器中读取的高速缓存行高速缓存到所述本地PU高速缓存中;
互连,所述互连被配置为:
管理所述存储器和所述本地PU高速缓存的读取操作和写入操作;
根据所述高速缓存的高速缓存行的相应存储器位置,维持所述高速缓存的高速缓存行的本地高速缓存位置数据;以及
维持所述存储器的一致性,并且其中,
所述分类器被配置为响应于所述本地高速缓存位置数据中的至少一些和所述写入事务的相应存储器位置,将接收到的所述写入事务分类为净荷数据和控制数据。
12.根据权利要求1所述的系统,其中所述净荷子系统还包括至少一个硬件加速器,所述硬件加速器被配置为执行以下的任何一个或多个:从存储在所述净荷高速缓存中的所述净荷数据中计算校验和;从存储在所述净荷高速缓存中的所述净荷数据中执行冗余检查;压缩存储在所述净荷高速缓存中的至少一些净荷数据;或加密存储在所述净荷高速缓存中的至少一些净荷数据。
13.一种方法,包括:
从连接的设备接收写入事务;
将接收到的所述写入事务分类为净荷数据和控制数据;
将已分类的净荷数据存储在净荷高速缓存中;
将已分类的控制数据存储在本地处理单元(PU)高速缓存中,其中所述净荷高速缓存和所述本地PU高速缓存是计算机系统中的相应不同物理位置上的不同物理高速缓存;以及
执行软件程序指令以响应于存储在所述本地PU高速缓存中的所述控制数据来执行控制和分组处理。
14.根据权利要求13所述的方法,其中所述执行软件程序指令包括:管理所述已分类的净荷数据经由所述净荷高速缓存从所述设备中的第一设备到所述设备中的第二设备的传送。
15.根据权利要求14所述的方法,其中所述软件程序管理所述已分类的净荷数据经由所述净荷高速缓存从所述第一设备到所述第二设备的传送,而无需访问所述净荷高速缓存。
16.根据权利要求15所述的方法,其中所述软件程序管理所述已分类的净荷数据经由所述净荷高速缓存从所述第一设备到所述第二设备的传送,而无需将任何所述已分类的净荷数据存储在所述本地PU高速缓存中。
17.根据权利要求16所述的方法,还包括:
生成所述净荷高速缓存中的相应空闲存储器位置的缓冲区描述符;以及
响应于所述缓冲区描述符,经由所述净荷高速缓存将所述净荷数据从所述第一设备传送到所述第二设备。
18.根据权利要求17所述的方法,还包括:
响应于所述缓冲区描述符来管理至少一个队列;以及
响应于所述至少一个队列,经由所述净荷高速缓存将所述净荷数据从所述第一设备传送到所述第二设备。
19.根据权利要求13所述的方法,其中所述分类包括:响应于以下中的一个或多个而将接收到的所述写入事务分类为净荷数据和控制数据:数据类型;分组描述符数据;分组报头数据;数据大小;转向标签数据;或地址数据。
20.根据权利要求13所述的方法,其中所述分类包括:响应于以下内容而将接收到的所述写入事务分类为净荷数据和控制数据:维持在目录中的本地高速缓存位置数据,所述目录被维持以提供存储器的一致性;以及所述写入事务的相应存储器位置。
21.根据权利要求13所述的方法,还包括执行以下的任何一个或多个:从存储在所述净荷高速缓存中的所述净荷数据中计算校验和;从存储在所述净荷高速缓存中的所述净荷数据中执行冗余检查;压缩存储在所述净荷高速缓存中的至少一些净荷数据;或加密存储在所述净荷高速缓存中的至少一些净荷数据。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/907,347 US20210397560A1 (en) | 2020-06-22 | 2020-06-22 | Cache stashing system |
US16/907,347 | 2020-06-22 | ||
US16/908,776 US11258887B2 (en) | 2020-06-22 | 2020-06-23 | Payload cache |
US16/908,776 | 2020-06-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113900965A true CN113900965A (zh) | 2022-01-07 |
Family
ID=79022136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110675989.6A Pending CN113900965A (zh) | 2020-06-22 | 2021-06-18 | 净荷高速缓存 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11258887B2 (zh) |
CN (1) | CN113900965A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11681625B2 (en) * | 2018-12-20 | 2023-06-20 | Intel Corporation | Receive buffer management |
US11874774B2 (en) * | 2020-09-24 | 2024-01-16 | Advanced Micro Devices, Inc. | Mechanism to efficiently rinse memory-side cache of dirty data |
US12001722B2 (en) * | 2022-08-18 | 2024-06-04 | Arm Limited | Technique for controlling stashing of data |
CN116996448B (zh) * | 2023-09-27 | 2023-12-12 | 空间液态金属科技发展(江苏)有限公司 | 多类型多通道动态速率载荷数据调度装置及其调度方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051212B2 (en) | 2001-04-11 | 2011-11-01 | Mellanox Technologies Ltd. | Network interface adapter with shared data send resources |
US20030145136A1 (en) * | 2002-01-31 | 2003-07-31 | Tierney Gregory E. | Method and apparatus for implementing a relaxed ordering model in a computer system |
US8296520B2 (en) * | 2007-12-19 | 2012-10-23 | International Business Machines Corporation | System and method for optimizing neighboring cache usage in a multiprocessor environment |
US8103764B2 (en) * | 2008-10-14 | 2012-01-24 | CacheIQ, Inc. | Method and apparatus for matching trigger pattern |
US8930518B2 (en) * | 2012-10-03 | 2015-01-06 | Oracle International Corporation | Processing of write requests in application server clusters |
US10454991B2 (en) | 2014-03-24 | 2019-10-22 | Mellanox Technologies, Ltd. | NIC with switching functionality between network ports |
-
2020
- 2020-06-23 US US16/908,776 patent/US11258887B2/en active Active
-
2021
- 2021-06-18 CN CN202110675989.6A patent/CN113900965A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210400124A1 (en) | 2021-12-23 |
US11258887B2 (en) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113900965A (zh) | 净荷高速缓存 | |
US8537828B2 (en) | Scalable interface for connecting multiple computer systems which performs parallel MPI header matching | |
US8812795B2 (en) | Shared memory architecture | |
US9148485B2 (en) | Reducing packet size in a communication protocol | |
US8850125B2 (en) | System and method to provide non-coherent access to a coherent memory system | |
JP6676027B2 (ja) | ネットワークプロセッサにおけるマルチコア相互接続 | |
US10175891B1 (en) | Minimizing read latency for solid state drives | |
US8677075B2 (en) | Memory manager for a network communications processor architecture | |
WO2004061684A2 (en) | Using direct memory access for performing database operations between two or more machines | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
CN107153624A (zh) | 经由计算机总线对持久性存储器的控制 | |
US20230017643A1 (en) | Composable infrastructure enabled by heterogeneous architecture, delivered by cxl based cached switch soc | |
KR20190033284A (ko) | PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템 | |
US8819305B2 (en) | Directly providing data messages to a protocol layer | |
US9137167B2 (en) | Host ethernet adapter frame forwarding | |
US11593281B2 (en) | Device supporting ordered and unordered transaction classes | |
CN103124962B (zh) | 优化环协议和技术 | |
US8051246B1 (en) | Method and apparatus for utilizing a semiconductor memory of a node as a disk cache | |
CN114238156A (zh) | 处理系统以及操作处理系统的方法 | |
US20220350526A1 (en) | Flexible memory extension systems and methods | |
WO2022141250A1 (zh) | 数据传输方法和相关装置 | |
CN114116553B (zh) | 数据处理装置、方法以及系统 | |
CN115981548A (zh) | 一种流控方法及装置 | |
CN117311596A (zh) | 数据读取方法、数据存储方法、装置及系统 | |
JP2004164586A (ja) | 疎結合計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |