一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

净荷高速缓存的制作方法

2022-02-20 00:49:59 来源:中国专利 TAG:

净荷高速缓存
相关申请信息
1.本技术是2020年6月22日提交的美国专利申请s/n 16/907,347的部分继续申请,其公开内容通过引用并入本文。
技术领域
2.本发明涉及计算机系统,尤其但非排他地涉及数据高速缓存。


背景技术:

3.网络接口控制器(nic)通常是快速外围组件互连(pcie)卡,其插入到服务器或存储盒中以实现与以太网的连接性。smartnic提供的功能性超出了简单的连接性,并且在nic上实现了网络流量处理,这在基础nic的情况下必须由中央处理单元(cpu)执行。
4.bloch等人的美国专利公开2015/0271244描述了一种网络接口设备,其包括主机接口和网络接口,该主机接口用于连接到主机处理器,该网络接口被配置为通过网络发射和接收分组,并且包括被配置为连接到网络的多个不同的物理端口。处理电路被配置为经由物理端口之一从网络接收数据分组,并且响应于分组中的目的地标识符来决定经由主机接口将数据分组的净荷递送到主机处理器还是经由另一个物理端口将分组转发到网络。
5.kagan等人的美国专利8,051,212描述了一种网络接口适配器,其包括:传出分组生成器,其适用于响应于由主机处理器提交的请求而生成传出请求分组以递送给远程响应者;以及网络输出端口,其被耦合来通过网络向远程响应者发射该传出请求分组。网络输入端口响应于发送给远程响应者的传出请求分组而从远程响应者接收传入响应分组,以及由远程请求者发送的传入请求分组。传入分组处理器接收并处理传入响应分组和传入请求分组,并使传出分组生成器响应于传入请求分组,除了传出请求分组之外,还生成传出响应分组以传输到远程请求者。


技术实现要素:

6.根据本公开的实施方式,提供了一种计算机系统,包括:净荷子系统,该净荷子系统包括:被配置为与相应设备连接、与相应设备传送数据并且从相应设备接收写入事务的接口,被配置为将接收到的写入事务分类为净荷数据和控制数据的分类器,以及被配置为存储已分类的净荷数据的净荷高速缓存;以及处理单元(pu)子系统,该处理单元(pu)子系统包括:用于存储已分类的控制数据的本地pu高速缓存,其中净荷高速缓存和本地pu高速缓存是计算机系统中的相应不同物理位置中的不同物理高速缓存;和处理核心电路,该处理核心电路被配置为执行软件程序指令以响应于存储在本地pu高速缓存中的控制数据来执行控制和分组处理。
7.进一步根据本公开的实施方式,处理核心电路被配置为管理已分类的净荷数据经由接口和净荷高速缓存从设备中的第一设备到设备中的第二设备的传送。
8.更进一步根据本公开的实施方式,第一设备包括直接连接到接口之一的外部存储
设备,并且第二设备包括经由网络连接到接口之一的网络节点。
9.另外,根据本公开的实施方式,第一设备包括经由网络连接到接口之一的第一网络节点,并且第二设备包括经由网络连接到接口之一的第二网络节点。
10.此外,根据本公开的实施方式,处理核心电路被配置为管理已分类的净荷数据经由接口和净荷高速缓存从第一设备到第二设备的传送,而无需软件访问净荷高速缓存。
11.进一步根据本公开的实施方式,处理核心电路被配置为管理已分类的净荷数据经由接口和净荷高速缓存从第一设备到第二设备的传送,而无需软件将任何已分类的净荷数据存储在本地pu高速缓存中。
12.更进一步根据本公开的实施方式,处理核心电路被配置为生成净荷高速缓存中的相应空闲存储器位置的缓冲区描述符,并将缓冲区描述符提供给接口,并且接口被配置为响应于所提供的缓冲区描述符,经由净荷高速缓存将净荷数据从第一设备传送到第二设备。
13.另外,根据本公开的实施方式,处理核心电路被配置为响应于缓冲区描述符来管理至少一个队列,接口被配置为响应于至少一个队列,经由净荷高速缓存将净荷数据从第一设备传送到第二设备。
14.此外,根据本公开的实施方式,净荷高速缓存比处理核心电路在物理上被定位得更靠近接口,并且本地pu高速缓存比接口在物理上被定位得更靠近处理核心电路。
15.进一步根据本公开的实施方式,分类器被配置为响应于以下中的一个或多个而将接收到的写入事务分类为净荷数据和控制数据:数据类型,分组描述符数据,分组报头数据,数据大小,转向标签数据,或地址数据。
16.更进一步根据本公开的实施方式,该系统包括:存储器,该存储器被配置为跨多个存储器位置存储数据,处理核心电路被配置为将在相应存储器位置处从该存储器中读取的高速缓存行高速缓存到本地pu高速缓存中;互连,该互连被配置为管理存储器和本地pu高速缓存的读取操作和写入操作,根据高速缓存的高速缓存行的相应存储器位置,维持高速缓存的高速缓存行的本地高速缓存位置数据,并且维持存储器的一致性,并且其中分类器被配置为响应于本地高速缓存位置数据中的至少一些和写入事务的相应存储器位置,将接收到的写入事务分类为净荷数据和控制数据。
17.另外,根据本公开的实施方式,净荷子系统还包括至少一个硬件加速器,该硬件加速器被配置为执行以下中的任何一个或多个:从存储在净荷高速缓存中的净荷数据中计算校验和,从存储在净荷高速缓存中的净荷数据中执行冗余检查,压缩存储在净荷高速缓存中的至少一些净荷数据,或加密存储在净荷高速缓存中的至少一些净荷数据。
18.根据本公开的另一个实施方式,还提供一种方法,包括:从连接的设备接收写入事务;将接收到的写入事务分类为净荷数据和控制数据;将已分类的净荷数据存储在净荷高速缓存中;将已分类的控制数据存储在本地处理单元(pu)高速缓存中,其中净荷高速缓存和本地pu高速缓存是计算机系统中的相应不同物理位置中的不同物理高速缓存,并且执行软件程序指令以响应于存储在本地pu高速缓存中的控制数据来执行控制和分组处理。
19.此外,根据本公开的实施方式,执行软件程序指令包括管理已分类的净荷数据经由净荷高速缓存从设备中的第一设备到设备中的第二设备的传送。
20.进一步根据本公开的实施方式,软件程序管理已分类的净荷数据经由净荷高速缓
过程,以激活服务器的网络接口控制器(nic)通过网络将数据发送到远程设备。
36.分组处理可以包括每个分组处理,涉及对分组描述符和分组报头以及对软件维护的上下文数据库的访问,其中大多数的分组净荷不被访问。通常使用cpu来执行该处理。
37.可选地,诸如检查数据完整性、数据压缩和数据加密之类的净荷数据处理通常可以通过专用硬件加速器来执行。
38.由于每个分组处理都对存储器访问时延是敏感的,并且涉及对分组的有限部分的访问,因此将数据高速缓存成尽可能靠近cpu是有利的。对于净荷数据处理,将净荷数据高速缓存到裸片上以避免外部存储器带宽是有益的。在裸片内,将净荷放置成靠近硬件加速器和输入/输出(i/o)接口以便减少片上互连带宽是有益的。在每个分组处理和净荷数据处理的这两种情况下,高速缓存容量理解对于正确调整系统性能很重要。
39.一种解决方案是在cpu附近使用本地高速缓存,并在cpu和外围设备(诸如,加速器和/或i/o接口)之间共享更大的系统高速缓存。
40.上述解决方案遭受各种问题。首先,对于cpu和外围设备的访问而言,共享的高速缓存位置都不是最佳的。这可能会导致平均读取时延太高,这进而对cpu性能有着严重的负面影响。这也可能需要高带宽互连,以便在i/o接口和可选的加速器之间传送净荷数据。其次,由于除了i/o接口之间的数据传送之外,cpu还执行其他任务,因此cpu上运行的软件可能会将净荷数据从共享高速缓存中逐出到存储器(例如,dram),从而进一步降低了传送过程的性能。第三,难以分析软件和硬件之间的共享高速缓存容量分配以便正确地调整系统性能。
41.本发明的实施方式通过将经由i/o接口从外部设备写入的数据的高速缓存拆分为净荷数据和控制数据来解决上述问题。净荷数据被存储在通常物理上更靠近i/o接口和加速器的净荷高速缓存20中,而控制数据则被存储在通常物理上更靠近cpu的本地cpu高速缓存中。在所公开的实施方式中,不需要用于存储净荷和控制数据二者的共享高速缓存。在一些实施方式中,cpu和本地cpu高速缓存可以由任何合适的处理单元(pu)和本地pu高速缓存代替,例如图形处理单元(gpu)和gpu高速缓存。
42.如说明书和权利要求书中所使用的,术语“净荷数据”被定义为经由i/o接口从外部设备接收并经由i/o接口传送到另一外部设备而无需被读取以供cpu使用的数据。
43.如说明书和权利要求书中所使用的,术语“控制数据”被定义为经由i/o接口从外部设备接收并且需要被读取以供cpu使用的数据。
44.在一些实施方式中,通过分类器将从相应外部设备接收的写入事务分类为净荷数据和控制数据。分类器可以使用任何合适的方法来识别净荷数据和控制数据。在一些实施方式中,分类器根据以下中的一个或多个将接收到的写入事务分类为净荷数据和控制数据:数据类型、分组描述符数据、分组报头数据、数据大小、转向标签数据或地址数据。在一些实施方式中,由存储器一致性目录所提供的数据可以被用来对数据进行分类。
45.本发明的实施方式减少了时延并且减少了与使用共享高速缓存相关联的互连带宽要求,以及防止了与净荷数据的传送无关的cpu过程将净荷数据逐出到存储器中。例如,如果本地cpu高速缓存溢出,则溢出将去往存储器而不会干扰净荷数据,对于净荷,反之亦然。由于cpu经历了短读取时延,因此处理性能被改善。在cpu上运行的软件可以将其数据结构和行为调整为其专用的本地cpu高速缓存。可以基于线路速度和已知的外围时延来确定
净荷高速缓存的大小,而无需考虑意外的软件行为。在i/o接口和(一个或多个)加速器附近提供净荷高速缓存可释放cpu附近用于处理的路由资源。另外,i/o接口和(一个或多个)加速器的带宽行为易于分析,从而允许优化i/o接口和(一个或多个)加速器的区域中的互连设计。类似地,净荷高速缓存和cpu本地高速缓存的位置允许减少互连并降低互连复杂性。
46.系统描述
47.通过引用并入本文的文档应被视为本技术的组成部分,除非在这些被并入的文档中定义的任何术语与本说明书中显式或隐式的定义相冲突,则仅应考虑本说明书中的定义。
48.现在对图1进行参考,图1是根据本发明的实施方式构造和操作的计算机系统10的框图。还对图2进行参考,图2是包括在图1的系统10中的数据管理方法中的步骤的流程图50。
49.计算机系统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可以被实现在单个裸片上或者可以被实现在两个或更多裸片上。
50.在一些实施方式中,cpu子系统14可以被实现为任何合适的处理单元(pu)子系统,例如,包括一个或多个图形处理核心的图形处理单元(gpu)子系统,以及任何合适的本地pu高速缓存,例如本地gpu高速缓存。
51.外部设备38-1经由接口22-1连接到计算机系统10,并且外部设备38-2经由接口22-2连接到计算机系统10。计算机系统10可以包括连接到多于两个的相应外部设备38的多于两个的接口22。
52.外部设备38可以包括任何合适的外部设备,例如,外部存储设备(例如,快速非易失性存储器(nvme)ssd)或网络节点。
53.在一些实施方式中,外部设备38-1包括(例如,经由电缆而无需网络)直接连接到接口22-1的外部存储设备,并且外部设备38-2包括经由网络40连接到接口22-2的网络节点。在这些实施方式中,接口22-1可以包括任何合适的接口,例如pcie接口,并且接口22-2可以包括nic。
54.在一些实施方式中,外部设备38-1包括经由网络40(例如,经由网络电缆、wi-fi或蓝牙)连接到接口22-1的网络节点,并且外部设备38-2包括经由网络40或经由另一网络(例如,经由网络电缆、wi-fi或蓝牙)连接到接口22-2的另一网络节点。在这些实施方式中,每个接口22-1、22-2包括nic。
55.在一些实施方式中,外部设备38-1、38-2可以经由接口22直接连接到计算机系统10。
56.存储器16(例如,dram或任何合适的ram)被配置为跨多个存储器位置存储数据。互连20被配置为:管理存储器16、本地cpu高速缓存32和净荷高速缓存26的读取操作和写入操作;根据高速缓存的高速缓存行的相应存储器位置,将本地高速缓存位置数据维持在高速缓存的高速缓存行的目录18中;并根据合适的存储器一致性协议来维持存储器16的一致
性。
57.净荷高速缓存26和本地cpu高速缓存32是计算机系统10中的相应不同物理位置中的不同物理高速缓存。净荷高速缓存26通常比处理核心电路30在物理上被定位得更靠近接口22。本地cpu高速缓存36通常比接口22在物理上被定位得更靠近处理核心电路30。如在说明书和权利要求中所使用的,术语a比c在物理上更靠近b在本文中被定义为意指a和b之间的连接比a和c之间的连接更快和/或更便宜。
58.接口22被配置为:(直接地,例如经由电缆而无需网络,和/或经由网络间接地)与相应外部设备38连接。接口22被配置为与相应设备38传送数据,例如从外部设备38-1向外部设备38-2传送数据。接口22被配置为从相应设备38接收(框52)写入事务。写入事务可以包括分组或数据元素,其中任何分组或数据元素包括净荷数据和/或控制数据。例如,数据元素可以包括作为控制数据的报头部分和作为净荷数据的净荷部分。数据元素可以包括报头部分和净荷部分,它们都被分类为控制数据,例如数据传送请求或通知或确认。数据元素可以仅包括净荷数据。
59.分类器24被配置为从接口22接收写入事务,并且将接收到的写入事务分类(框54)为净荷数据和控制数据。控制数据可以包括控制结构和分组报头。在一些实施方式中,分类器24的功能性可以被并入到每个接口22中。
60.可以使用任何合适的方法和标准来执行分类。例如,诸如nic之类的接口可以具有对写入的数据类型、分组描述符和分组报头的详细理解。该信息可以被用来确定写入事务(例如,接收到的分组)是净荷数据还是控制数据,或者写入事务的哪些部分是净荷数据或控制数据。例如,分组描述符和分组报头可以被分类为控制数据,而分组净荷部分可以被分类为净荷数据。作为另一示例,诸如pcie接口之类的接口设备可以使用试探法来估计写入事务是控制数据还是净荷数据。例如,小尺寸的事务可以暗示控制结构,其应被存储在本地cpu高速缓存32中,而大尺寸的事务可以被存储在净荷高速缓存26中。来自外部设备的pcie“转向标签”可以被用来编码写入事务是控制数据还是净荷数据。数据是净荷数据还是控制数据的指示可以由软件设备驱动器编码在写入事务中使用的地址中(例如,在该地址的最高有效位中)。
61.因此,在一些实施方式中,分类器24被配置为响应于以下中的一个或多个将接收到的写入事务分类为净荷数据和控制数据:数据类型;分组描述符数据;分组报头数据;数据大小;转向标签数据;或地址数据。
62.在一些实施方式中,分类器24被配置为响应于(存储在目录18中的)本地高速缓存位置数据和写入事务的相应存储器位置,将接收到的写入事务分类为净荷数据和控制数据。例如,如果写入事务与存储器16中的特定存储器位置相关联,则可以搜索目录18以寻找与该存储器位置相关联的高速缓存的位置,以确定来自该存储器位置的数据是被高速缓存在净荷高速缓存26中还是本地cpu高速缓存32中。搜索的结果然后提供接收到的写入事务应被分类为净荷数据还是控制数据的指示。
63.在实践中,分类器24的一些或全部功能可以被组合在单个物理组件中,或者可替代地,使用多个物理组件来实现。这些物理组件可以包括硬连线或可编程设备,或者两者的组合。在一些实施方式中,分类器24的至少一些功能可以在合适的软件的控制下由可编程处理器来执行。例如,该软件可以通过网络以电子的形式被下载到设备。可替代地或附加
地,软件可以被存储在有形的、非暂时性的计算机可读存储介质中,诸如光、磁或电子存储器。
64.净荷高速缓存26被配置为存储(框56)从接口22-1运送到接口22-2的已分类的净荷数据。净荷数据由接口22-1写入到净荷高速缓存26。
65.本地cpu高速缓存32被配置为存储(框58)已分类的控制数据和由正被执行的软件所使用的其他数据。本地cpu高速缓存32可以包括每个核心34、每个核心群集或在所有核心34之间共享的多个高速缓存级别。
66.处理核心电路30被配置为执行软件程序指令以:响应于存储在本地cpu高速缓存32中的控制数据(并且可选地响应于存储在任何其他位置的数据)来执行控制和分组处理;将在相应存储器位置处从存储器16中读取的高速缓存行高速缓存到本地cpu高速缓存36中;并且管理已分类的净荷数据经由接口22和净荷高速缓存26从外部设备38-1到外部设备38-2的传送(框60)。
67.在一些实施方式中,在处理核心电路30上运行的软件被配置为管理已分类的净荷数据经由接口22和净荷高速缓存26从设备38-1到设备38-2的传送,而无需软件访问净荷高速缓存26(例如,从其中读取或写入到其中)。
68.在一些实施方式中,在处理核心电路30上运行的软件被配置为管理已分类的净荷数据经由接口22和净荷高速缓存26从设备38-1到设备38-2的传送,而无需软件将任何已分类的净荷数据存储在本地cpu高速缓存32中。
69.在实践中,处理核心电路30的一些或全部功能可以被组合在单个物理组件中,或者可替代地,使用多个物理组件来实现。在一些实施方式中,处理核心电路30的至少一些功能可以在合适的软件的控制下由可编程处理器来执行。例如,该软件可以通过网络以电子的形式被下载到设备。可替代地或附加地,该软件可以被存储在有形的、非暂时性的计算机可读存储介质中,例如光、磁或电子存储器。
70.(一个或多个)加速器28被配置为执行以下的任何一个或多个:从存储在净荷高速缓存26中的净荷数据中计算校验和;从存储在净荷高速缓存器26中的净荷数据中执行冗余检查;压缩存储在净荷高速缓存26中的至少一些净荷数据;或者加密存储在净荷高速缓存26中的至少一些净荷数据。
71.可以使用任何合适的方法来处理数据请求和数据传送。参考图3和图4的描述,描述了一种处理数据请求的方法。参考图5和图6的描述,描述了另一种方法。
72.现在对图3进行参考,图3是包括在图1的系统10中履行数据请求的方法中的步骤的流程图70。还对图1进行参考。
73.接口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。
74.现在对图4进行参考,图4是在包括图1的系统10中传送净荷数据的方法中的步骤的流程图90。还对图1进行参考。
75.处理核心电路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为止。
76.如前面所提及,(一个或多个)加速器28可以对存储在净荷高速缓存26中的净荷数据执行操作。因此,在框98和100的步骤之间,处理核心电路30可以向(一个或多个)加速器28发送处理请求,以处理存储在净荷高速缓存26中的净荷数据。一旦(一个或多个)加速器28完成其处理,便向处理核心电路30发送确认。
77.应当注意,可以针对与相应缓冲区描述符相关联的两个或更多空闲存储器位置并行地执行以上过程。
78.现在对图5进行参考,图5是在包括图1的系统10中基于队列来履行数据请求的方法中的步骤的流程图200。还对图1进行参考。
79.处理核心电路30被配置为响应于缓冲区描述符来管理至少一个队列,如下文参考图6更详细描述的。接口22被配置为响应于(一个或多个)队列而经由净荷高速缓存26将净
荷数据从外部设备38-1传送到外部设备38-2,如下文参考图6更详细描述的。(一个或多个)队列可以被存储在存储器16中(并且当由处理核心电路30和接口22使用时,分别被高速缓存到本地cpu高速缓存32和接口22的本地高速缓存(未示出))或者被存储在由处理核心电路30、接口22和(一个或多个)加速器28共享的共享高速缓存中。(一个或多个)队列可以包括缓冲区描述符、工作队列元素(wqe)或基于缓冲区描述符或任何适当数据的工作描述符。
80.接口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。
81.现在对图6进行参考,图6是在包括图1的系统10中基于队列来传送净荷数据的方法中的步骤的流程图220。还对图1进行参考。
82.处理核心电路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为止。
83.如前面所提及,(一个或多个)加速器28可以对存储在净荷高速缓存26中的净荷数据执行操作。因此,在框226和228的步骤之间,处理核心电路30可以经由处理队列(参考缓冲区描述符)向(一个或多个)加速器28发送处理请求,以处理存储在净荷高速缓存26中的净荷数据。一旦(一个或多个)加速器28完成其处理,便将确认写入到处理完成队列,其由处理核心电路30周期性地读取。
84.应当注意,可以针对与相应缓冲区描述符相关联的两个或更多空闲存储器位置并行地执行以上过程,以使得取决于关于净荷高速缓存26中的每个存储器位置的处理阶段,队列中的任何一个可以包括一个、或两个或更多缓冲区描述符。
85.为了清楚起见,在分开的实施方式的上下文中描述的本发明的各种特征也可以在单个实施方式中被组合提供。相反,为简洁起见,在单个实施方式的上下文中描述的本发明的各种特征也可以分开地或以任何合适的子组合来提供。
86.通过示例例证了上述实施方式,并且本发明不受以上已经具体示出和描述的内容的限制。相反,本发明的范围包括上述各种特征的组合和子组合,以及本领域技术人员在阅读前述说明后将想到的并且在现有技术中未公开的变型和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献