用于缓冲管理的设备和方法及缓冲管理器与流程
未命名
08-03
阅读:63
评论:0

1.本公开内容一般地涉及通信领域,并且更具体地涉及以太网交换机中的缓冲管理。
背景技术:
2.保密性(security)对于车载通信而言是日益增长的挑战。例如,攻击者访问、破坏或以其他方式损害车辆功能的难度应当尽可能高。作为另一示例,应保护客户专用和私有数据不被攻击者访问。以太网在各种应用例如车载通信中用作通信接口。为车载通信提供保密性的以太网协议标准是多种多样的,并且在不同的以太网层存在不同的保密性协议,例如媒体访问控制安全性(macsec)、因特网协议安全性(ipsec)、传输层安全性(tls)和数据报tls(dtls)。
技术实现要素:
3.在一些实现中,设备包括:缓冲存储器,其用于对通过设备的多个端口接收到的帧或要通过设备的多个端口发送的帧进行缓冲;至少一个帧处理器,其用于对通过设备的多个端口接收的帧或要通过设备的多个端口发送的帧进行处理;以及缓冲管理器,其用于将帧存储在缓冲存储器中,帧是通过多个端口中的端口被接收的帧或要通过多个端口中的端口被发送的帧,基于将帧存储在缓冲存储器中而将至少一个缓冲控制块(bcb)分配给帧,将帧控制块(fcb)分配给帧,fcb包括标识至少一个bcb的信息,以及与至少一个帧处理器对帧的处理相关联地执行一个或更多个排队操作,使用与fcb相关联的信息来执行一个或更多个排队操作。
4.在一些实现中,缓冲管理器包括一个或更多个部件,该一个或更多个部件用于:获得帧,帧是通过设备的多个端口中的端口被接收的帧或要通过设备的多个端口中的端口被发送的帧;使帧被存储在设备的缓冲存储器中,基于使帧被存储在缓冲存储器中而将至少一个bcb分配给帧;将fcb分配给帧,fcb包括标识至少一个bcb的信息;以及与设备的帧处理器对帧的处理相关联地使帧入队或出队,使用与fcb相关联的信息来执行入队或出队。
5.在一些实现中,方法包括:由缓冲管理器使帧被存储在缓冲存储器中,其中,该帧通过多个端口中的端口被接收,或者要通过多个端口中的端口被发送;由缓冲管理器基于使帧被存储在缓冲存储器中而将至少一个bcb分配给帧;由缓冲管理器将fcb分配给帧,其中,fcb包括标识至少一个bcb的信息;以及与帧的处理相关联地执行一个或更多个排队操作,其中,使用与fcb相关联的信息来执行一个或更多个排队操作。
附图说明
6.图1a和图1b是与根据本公开内容的各个方面的提供改进的缓冲管理的交换机的示例相关联的图。
7.图2是根据本公开内容的各个方面的其中可以实现提供改进的缓冲管理的交换机
的示例系统的图。
8.图3是根据本公开内容的各个方面的提供改进的缓冲管理的交换机的示例实现的图。
9.图4是与根据本公开内容的各个方面的交换机中的缓冲管理相关的示例处理的流程图。
具体实施方式
10.示例性实现的以下详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元件。
11.如上所提到的,为车载通信提供保密性的以太网协议标准是多种多样的,并且在不同的以太网层存在不同的保密性协议,例如macsec、ipsec、tls和dtls。在操作中,车载通信所需的保密协议帧处理、帧分类和帧转发需要一定程度的数据移动和缓冲。在以太网交换机(或网桥)中可以采用缓冲管理方案来管理数据移动和缓冲。缓冲管理方案的设计在管理以太网交换机的物理尺寸、由以太网交换机提供的帧处理等待时间和整体系统性能方面是重要的因素。值得注意的是,随着以太网速度的增加(例如,高达25吉比特每秒(gbps)),(例如,在主控制单元(mcu)、主处理单元(mpu)等处)提供有效的缓冲管理变得越来越复杂和具有挑战性。例如,对于10gbps以太网接口,1毫秒突发可能需要兆字节级的缓冲器大小。
12.一种可能的以太网交换机(或网桥)解决方案使用如下分布式缓冲方案,其中设备的每个mac端口具有可以用于对发送帧(例如,将由以太网交换机的端口发送的帧)或接收帧(例如,在以太网交换机的端口处接收的帧)进行缓冲的专用发送(tx)缓冲器和接收(rx)缓冲器。然而,由于帧处理花费一些时间,因此总是需要特定的缓冲器大小来实现这样的方案,这意味着设备的物理面积可能增加(例如,由于每个端口需要专用缓冲器)。此外,该以太网交换机解决方案具有帧分类功能,该帧分类功能用于解析帧报头、标记帧的类别(有时称为分类队列或流)以及将属于相同类别的帧存储或链接在一起。然而,在该方案下使用每个分类队列的静态缓冲器分配,这意味着所需的缓冲器大小也可能不期望地较大。另外,随着交换机的以太网端口数量的增加,总的缓冲器大小增加,这增加了交换机的物理面积以及生产成本。值得注意的是,在这样的方案中使用的帧分类、帧转发(例如,从一个以太网端口转发到另一个以太网端口)和加密引擎处理可能需要某种程度上“智能”的缓冲和队列管理,这可能进一步增加复杂性。
13.本文描述的一些方面提供了用于以太网交换机中的改进的缓冲管理的技术和设备。例如,在一些实现中,设备(例如,以太网交换机或网桥等)可以包括缓冲存储器、帧处理器和缓冲管理器。在一些实现中,缓冲管理器将帧存储在缓冲存储器中,该帧是通过设备的端口被接收的帧或要通过设备的端口被发送的帧。缓冲管理器可以将至少一个缓冲控制块(bcb)分配给帧,并且可以将帧控制块(fcb)分配给帧,其中fcb包括标识至少一个bcb的信息。缓冲管理器与帧处理器对帧的处理相关联地执行一个或更多个排队操作,其中使用与fcb相关联的信息来执行一个或更多个排队操作。下文提供了附加细节。
14.在一些实现中,本文描述的用于改进的缓冲管理的技术和设备消除了对用于每个mac端口的专用(tx/rx)缓冲器的需要。此外,在给定的mac端口内不需要存储和转发缓冲器,并且不需要每个队列的缓冲器分配。以这种方式,可以减少以太网交换机处的帧移动等
待时间。
15.另外,在一些实现中,本文描述的用于改进的缓冲管理的技术和设备使得集中式物理缓冲器能够被设备的多个(例如,所有)端口共享。集中式物理缓冲器的共享减少了对缓冲器大小过度设计的需要,并且因此减少了以太网交换机所需的物理面积。
16.此外,在一些实现中,本文描述的用于改进的缓冲管理的技术和设备使得帧能够在帧处理期间在队列中入队或出队。如下面进一步详细描述的,在一些实现中,队列可以被构建为帧链接列表。因此,入队和出队操作仅需要对链路指针的更新(而不是需要复制帧数据),这最小化了数据移动并提高了功耗效率。在一些实现中,给定帧与指向帧数据存储位置和属于给定队列的下一帧的fcb相关联。在一些实现中,启用安全性(safety)或保密性检查的数据可以被存储在fcb中。
17.图1a和图1b是与如本文所述的提供改进的缓冲管理的交换机100的示例相关联的图。交换机100可以是例如以太网交换机或网桥。在一些实现中,交换机100可以被包括在通信系统例如车载通信系统中。如图1a所示,交换机100可以包括:rx部件102,其包括rx帧处理器104;tx部件106,其包括tx帧处理器108;以及缓冲管理器110,其包括缓冲存储器112。下面描述交换机100的部件,接着描述与提供改进的缓冲管理相关联的交换机100的示例操作。
18.rx部件102包括与在交换机100处接收帧并对在交换机100处接收到的帧进行处理相关联的一个或更多个部件。在一些实现中,rx部件102包括一个或更多个端口(例如,一个或更多个mac端口,图1a中未示出),可以通过所述一个或更多个端口在交换机100处接收帧。如图所示,rx部件102包括rx帧处理器104。
19.rx帧处理器104包括与对在交换机100处接收到的帧进行处理相关联的一个或更多个部件。即,rx帧处理器104可以包括一个或更多个部件来对通过rx部件102的端口接收到的帧进行处理。rx帧处理器104的一个或更多个部件可以包括例如rx复用器(例如,时分rx复用器)、帧入队部件、报头/数据提取器部件、帧解析器、查找参数存储器、解析器微代码存储器、加密帧入队部件、加密帧处理器、加密引擎、保密性参数存储器或与对在交换机100处接收到的帧进行处理相关联的另一类型的部件。
20.tx部件106包括与对将由交换机100发送的帧进行处理以及对将由交换机100发送的帧进行处理相关联的一个或更多个部件。在一些实现中,tx部件106包括一个或更多个端口(例如,一个或更多个mac端口,图1a中未示出),交换机100可以通过一个或更多个端口发送帧。在一些实现中,交换机100的一个或更多个端口可以用于接收和发送。例如,交换机100的给定mac端口可以是tx/rx端口,通过该端口可以发送或接收帧。如图所示,tx部件106包括tx帧处理器108。
21.tx帧处理器108包括与对将由交换机100发送的帧进行处理相关联的一个或更多个部件。即,tx帧处理器108可以包括一个或更多个部件来对要通过tx部件106的端口发送的帧进行处理。tx帧处理器108的一个或更多个部件可以包括例如tx解复用器(例如,时分tx解复用器)、帧出队部件、调度器部件(例如,时间敏感网络(tsn)/整形器/调度器)、加密帧入队/出队部件、加密引擎、保密性参数存储器或与对将由交换机100发送的帧进行处理相关联的另一类型的部件。
22.缓冲管理器110包括在如本文所述的交换机100处提供缓冲管理的一个或更多个
部件。例如,在一些实现中,缓冲管理器110可以获得帧并且可以将该帧存储在缓冲存储器112中或者使得该帧被存储在缓冲存储器112中。此处,帧可以是通过交换机100的端口被接收的帧,或者可以是要通过交换机100的端口被发送的帧。
23.在一些实现中,缓冲管理器110可以使用多级架构来执行缓冲管理,诸如包括储帧存储器、缓冲控制块(bcb)、帧控制块(fcb)、队列控制块(qcb)的四级架构。图1b是示出可以由缓冲管理器110结合执行缓冲管理来使用的四级架构的示例的图。在一些实现中,四级架构使得队列和帧数据存储能够被构造为链接的列表,如本文所述。
24.储帧存储器对应于缓冲存储器112的存储器存储。在一些实现中,储帧存储器被划分为块(例如,128字节块、256字节块等)。在一些实现中,这样的划分改进了存储器利用,以使得能够支持不同的帧大小(例如,较小的帧可以仅使用一个块用于数据存储,较大的帧可以使用多个块用于数据存储)。在一些实现中,给定帧的数据可以存储在储帧存储器的一个或更多个块中。例如,第一帧的数据可以存储在储帧存储器的三个块(例如,如图1b中标识的块1、块2和块5)中,而第二帧的数据可以存储在储帧存储器的两个块(例如,如图1b中标识的块3和块4)中。
25.bcb是指示其中存储帧数据块的储帧存储器的块的信息块。即,bcb可以包括映射到存储给定帧的帧数据的一部分的储帧存储器块的指针。在一些实现中,bcb可以包括标识与帧相关联的另一bcb的指针。例如,如图1b所示,与第一帧相关联的第一bcb可以指向存储帧数据的第一部分的第一储帧存储器块(例如,块1),并且还可以包括指向第二bcb的指针,其中,第二bcb包括指向存储帧数据的第二部分的第二储帧存储器块(例如,块2)的指针。继续该示例,第二bcb可以包括指向第三bcb的指针,其中,第三bcb包括指向存储帧数据的第三部分的第三储帧存储器块(例如,块5)的指针。以这种方式,多个bcb可以被链接以指向存储给定帧的数据的所有储帧存储器块。在操作中,缓冲管理器110可以将至少一个bcb分配给由交换机100接收或将由交换机100发送的给定帧。
26.在一些实现中,bcb的使用使得能够在不需要静态存储器分配的情况下容纳不同的帧大小,从而(通过避免对静态存储器的需要)减少物理面积开销。例如,以太网帧的长度可以在从64字节到1.5千字节的范围内。此处,相对较小的帧可以使用储帧存储器中的较少数目的数据块(例如,单个数据块),而相对较大的帧可以使用在bcb存储器中链接在一起的较大数目的数据块(例如,两个或更多个数据块)。因此,当利用bcb时,可以根据实际帧长度来动态地分配帧缓冲器。另外,可以基于例如平均帧长度乘以帧总数来确定总帧存储器的大小(而不是基于最大帧长度乘以帧总数来确定总帧存储器的大小)。此外,bcb的使用可以促进帧修改操作。例如,如果在帧的处理期间需要添加或移除一个或更多个帧报头字段,则仅需要修改存储帧报头的第一bcb数据块,而不需要修改或以其他方式改变其余的bcb数据块(存储帧的有效载荷的数据块)。
27.fcb是包括标识与帧相关联的一个或更多个bcb的信息的信息块。例如,如图1b所示,与第一帧相关联的fcb可以包括指示与第一帧相关联的第一bcb的指针。如另外所示,fcb还可以包括指示与帧相关联的最后bcb(例如,映射到储帧存储器块5的bcb)的指针。在一些实现中,fcb可以包括标识另一fcb的指针。例如,如图1b所指示的,与第一帧相关联的第一fcb可以指向与第二帧相关联的第二fcb。因此,在一些实现中,与帧相关联的fcb可以指向与另一帧(例如,第一帧和第二帧在其中排队的队列中的下一帧)相关联的fcb。以这种
方式,多个fcb可以被链接以指向给定队列的所有fcb。在操作中,缓冲管理器110可以将fcb分配给由交换机100接收或将由交换机100发送的给定帧。
28.在一些实现中,如图1b所指示的,fcb可以包括与帧相关联的附加信息。在一些实现中,附加信息可以包括与帧相关联的安全性数据。安全性数据可以包括例如时间戳或帧循环冗余校验(crc)值以及其他示例。在一些实现中,时间戳可以指示帧被接收或将被发送的时间。时间戳可以用于例如管理稍后的处理(例如,tsn相关的时间敏感整形或门控)或保存帧的顺序(例如,当来自多个队列的帧汇聚时,时间戳可以用于确定进一步转发或处理的顺序)。在一些实现中,存储在fcb中的crc值使得crc校验能够被推迟到处理的稍后阶段或者在处理的稍后阶段处重新执行,这为数据完整性提供了改进的覆盖并使得能够用于安全性论证。
29.另外地或可替选地,附加信息可以包括与帧相关联的保密性数据。保密性数据可以包括例如保密性协议类型、密钥索引或(例如,由帧分类器生成的)流标识符以及其他示例。另外,在一些实现中,分类信息或加密结果可以存储在fcb中。在一些实现中,保密性数据可以被存储在fcb中以供在帧的稍后处理(例如,加密处理)中使用。
30.另外地或可替选地,附加信息可以包括与帧相关联的第一bcb数据块中的第一有效字节的指示(在图1b中标识为“第一bcb偏移”)。在一些实现中,第一bcb数据块中的第一有效字节的指示可以用于实现如上所述的帧报头修改。例如,如果需要修改或移除一个或更多个帧报头字段,则仅需要修改第一bcb数据块,并且可以相应地更新fcb中的“第一bcb偏移”。
31.另外地或可替选地,附加信息可以包括帧长度的指示(在图1b中标识为“长度”)。在一些实现中,长度的指示可以使得能够例如计算帧的最后bcb数据块中的有效字节的数量。
32.在一些实现中,缓冲管理器110可以基于帧的处理结果来更新fcb(例如,以包括安全性数据和/或保密性数据)。即,在一些实现中,缓冲管理器110可以基于(例如,如由rx帧处理器104或tx帧处理器108执行的)帧的处理的结果来更新fcb,使得fcb包括与处理帧相关联地生成、获得或以其他方式确定的安全性数据和/或保密性数据。
33.qcb是包括对与给定队列中的帧相关联的一个或更多个fcb进行标识的信息的信息块。例如,如图1b所示,与队列相关联的qcb可以包括指示与第一帧相关联的第一fcb的指针。如另外所示,qcb还可以包括指示与帧相关联的最后fcb(例如,在图1b所示的示例中与第二帧相关联的fcb)的指针。以这种方式,qcb可以用于将队列构造为fcb的链接列表。在一些实现中,属于相同类别(例如,相同的因特网协议(ip)连接、相同的传输控制协议(tcp)连接等)的帧可以在相同的队列中排队。
34.在一些实现中,缓冲管理器110可以与交换机100的帧处理器(例如,rx帧处理器104、tx帧处理器108)对帧的处理相关联地执行一个或更多个排队操作。一个或更多个排队操作可以包括与处理帧相关联的入队(例如,将帧分配给队列)和/或出队(例如,从队列中移除帧)。在一些实现中,缓冲管理器110使用与fcb相关联的信息来执行一个或更多个排队操作。例如,在一些实现中,缓冲管理器110可以通过更新与队列相对应并且与帧的处理相关联的qcb以包括标识fcb的信息来使帧入队。作为另一示例,在一些实现中,缓冲管理器110可以通过从与队列相对应的qcb中移除标识fcb的信息来使帧从队列中出队。值得注意
的是,一个或更多个排队操作可以由缓冲管理器110执行而无需复制帧,这意味着数据移动和复制被最小化,从而减少功耗并减少处理等待时间。
35.在一些实现中,缓冲管理器110可以维护可用fcb和bcb的列表。在接收到帧或确定要发送帧时,缓冲管理器110可以从这些列表中分配fcb和一个或更多个bcb,并且可以从列表中移除一个或更多个bcb和fcb。此外,当帧的生命周期结束时(例如,当完成对接收到的帧的处理时、当已经发送了要发送的帧时),缓冲管理器110可以回收相关联的bcb和fcb资源,并将一个或更多个bcb和fcb添加回可用bcb和fcb的列表。在一些实现中,可以维护列表的一对头指针和尾指针,并且将可用的fcb或bcb条目链接在一起(例如,类似于链接属于一个帧的bcb或链接属于一个队列的fcb的方式)。在一些实现中,缓冲管理器110可以通过读取和更新报头指针来执行bcb和fcb资源的分配。在一些实现中,缓冲管理器110可以通过更新尾指针来执行bcb和fcb资源的回收。
36.在交换机100的操作中,缓冲管理器110可以将在交换机100处接收到的帧入队到队列。例如,缓冲管理器110可以将一个或更多个bcb分配给帧,并且可以将fcb分配给帧(其中fcb包括指示一个或更多个bcb的信息)。缓冲管理器110随后可以使帧出队(例如,从队列中移除)以对帧进行分类。在一些实现中,在执行分类之前对帧进行缓冲允许将帧分类器的性能设置为小于最坏情况(例如,以线速度进入的小帧的长突发)的点,以便减少面积和成本。在一些实现中,在分类完成之后,缓冲管理器110可以使用qcb将属于一个分类类别的帧链接到特定队列。在一些实现中,当分类结果包括与帧相关联的附加信息(例如,保密性数据、安全性数据等)时,附加信息可以被包括在fcb中(例如,被分配给fcb)。在一些实现中,保密性相关帧可以被链接到专用保密性队列中,以传递到交换机100的加密引擎以用于进一步处理。
37.在一些实现中,保密性队列和帧与非保密性帧分离,并且只有保密性主设备可以访问保密性帧。在一些实现中,这样的分离可以通过将保密性队列访问入口点置于连续的地址范围中来实现,该连续的地址范围通过仅向保密性主设备给予访问权限并且在正常操作模式下禁止软件直接访问储帧存储器而处于访问控制之下。在一些实现中,帧入队和出队操作由硬件(例如,以太网硬件)管理。一个替选方案是使用保密性与非保密性存储器——储帧存储器、帧控制块存储器(例如,用于fcb的存储器)和队列控制存储器(例如,用于qcb的存储器)之间的划分。
38.回到图1a,缓冲管理器110可以包括(或通信地耦接至)缓冲存储器112。缓冲存储器112包括一个或更多个存储器部件,以对通过交换机100的端口接收的帧或要通过交换机100的端口发送的帧进行缓冲。在一些实现中,由缓冲存储器112提供的缓冲由缓冲管理器110管理或控制,如本文所述。在一些实现中,缓冲存储器112被配置成用于针对交换机100的多个端口对帧进行缓冲。例如,在一些实现中,缓冲存储器112被配置成用于针对交换机100的每个端口对帧进行缓冲。在一些实现中,在交换机100的多个(例如,所有)端口之间共享缓冲存储器112减少了对缓冲器大小过度设计的需要,并且因此减少了交换机100的物理面积。
39.以这种方式,缓冲管理器110可以提供集中式且高效的缓冲管理方案,该方案使得能够:(1)减小在端口之间集中并被共享的帧缓冲器大小;(2)减少保密性加速、分类和内部端口转发的功能所需的数据移动和复制(3)减少数据移动和复制,这减少了处理等待时间;
(4)选择被设置为期望点的帧分类或加密引擎的性能目标而无需额外的缓冲;(5)由其他部件(例如,cpu、系统软件等)访问帧而无需额外的数据移动;(6)在保密性帧与非保密性帧分离的情况下在不同处理级之间传递保密性数据;以及(7)传递crc值和时间戳存储以启用延迟的安全性校验并提高安全性防护覆盖。更一般地,缓冲管理器110可以提供如下缓冲管理方案,该方案提供帧安全性和保密性,同时使面积成本最小化。
40.如上所指示的,图1a和图1b是作为示例提供的。其他示例可以不同于关于图1a和图1b所描述的示例。此外,图1a所示的部件的数量和布置是作为示例提供的。实际上,可以存在与图1a中所示的部件相比附加的部件、更少的部件、不同的部件或不同布置的部件。此外,图1a所示的两个或更多个部件可以在单个部件内实现,或者图1a所示的单个部件可以实现为多个分布式部件。附加地或可替选地,交换机100的部件集合(例如,一个或更多个部件)可以执行被描述为由交换机100的另一部件集合执行的一个或更多个功能。
41.图2是其中可以实现交换机100的示例系统200的图。在一些实现中,系统200可以是片上系统(soc)。如图2所示,系统200可以包括交换机100以及总线202、存储器204、直接存储器访问(dma)206、中央处理单元(cpu)208和通信部件210。
42.交换机100是执行与改进的缓冲管理相关联的操作的部件,如本文所述。在本文中的其他地方例如以上关于图1a和图1b提供关于交换机100的其他细节。
43.总线202是实现系统200的部件之间的通信的部件。例如,总线202可以使得交换机100能够从存储器204和/或dma 206接收数据。作为另一示例,总线202可以使得交换机100能够向通信部件210发送数据。
44.存储器204是存储和/或提供由交换机100处理或将由交换机100处理的数据的部件。在一些实现中,存储器204可以包括随机存取存储器(ram)、只读存储器(rom)和/或另一类型的存储器(例如,闪存、磁存储器和/或光存储器)。
45.dma 206是向交换机100提供由存储器204存储的数据的部件。在一些实现中,dma 206独立于cpu 208向交换机100提供由存储器204存储的数据(即,dma 206提供直接存储器访问)。
46.cpu 208包括中央处理单元、图形处理单元、微处理器、控制器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和/或另一类型的处理部件。在一些实现中,cpu 208以硬件、固件或硬件和软件的组合来实现。在一些实现中,cpu 208包括能够被编程以执行功能的一个或更多个处理器。
47.通信部件210包括使得系统200能够例如通过有线连接和/或无线连接与其他设备通信。例如,通信部件210可以包括接收器、发送器、收发器、调制解调器、网络接口卡、天线等。
48.图2所示的部件的数量和布置是作为示例提供的。实际上,可以存在与图2中所示的部件相比附加的部件、更少的部件、不同的部件或不同布置的部件。此外,图2所示的两个或更多个部件可以在单个部件内实现,或者图2所示的单个部件可以实现为多个分布式部件。另外地或可替选地,系统200的部件集合(例如,一个或更多个部件)可以执行被描述为由系统200的另一部件集合执行的一个或更多个功能。
49.图3是根据本公开内容的各个方面的提供改进的缓冲管理的交换机100的示例实现300的图。
50.如图3所示,在交换机100的示例实现300中,rx部件102包括一组rx mac端口302,并且rx帧处理器104包括rx复用器304、帧入队部件306、报头/数据提取器部件308、帧解析器310、解析器微代码存储器312、查找参数存储器314、加密帧入队部件316、加密帧处理器318、保密性参数存储器320和加密引擎322。
51.如另外所示,tx部件106包括一组tx mac端口324,并且tx帧处理器108包括tx解复用器326、帧出队部件328、调度器部件330、加密帧入队/出队部件332、保密性参数存储器334和加密引擎336。值得注意的是,示例实现300的部件是出于说明的目的而提供的,并且给定交换机100中的tx/rx实现可以不同于图3所示的tx/rx实现,以解决不同的需求或设计目标。
52.如另外所示,在示例实现300中,缓冲管理器110可以包括为交换机100接收到的帧提供缓冲管理的部件(标识为rx缓冲管理器110),以及为将由交换机100发送的帧提供缓冲管理的部件(标识为tx缓冲管理器110)。如另外所示,缓冲存储器112可以包括用于由交换机100接收到的帧的缓冲存储器(标识为rx缓冲存储器112),以及用于将由交换机100发送的帧的缓冲存储器(标识为tx缓冲存储器112)。
53.如上所指示的,提供图3作为示例。其他示例可以不同于关于图3所描述的示例。此外,图3所示的部件的数量和布置是作为示例提供的。实际上,可以存在与图3中所示的部件相比附加的部件、更少的部件、不同的部件或不同布置的部件。此外,图3所示的两个或更多个部件可以在单个部件内实现,或者图3所示的单个部件可以实现为多个分布式部件。另外地或可替选地,系统100的部件集合(例如,一个或更多个部件)可以执行被描述为由系统100的另一部件集合执行的一个或更多个功能。
54.图4是与以太网交换机中的缓冲管理相关联的示例处理400的流程图。在一些实现中,图4的一个或更多个处理块由系统200的一个或更多个部件来执行。例如,图4的一个或更多个处理块可以由交换机100的一个或更多个部件来执行,一个或更多个部件例如rx部件102(例如,rx帧处理器104)、tx部件106(例如,tx帧处理器108)和/或(例如,使用缓冲存储器112的)缓冲管理器110。另外地或可替选地,一个或更多个处理块可以由与交换机100分离或包括交换机100的另一部件或一组部件来执行,例如由存储器204、dma206、cpu 208和/或通信部件210执行。
55.如图4所示,处理400可以包括使帧被存储在缓冲存储器中,其中,该帧通过多个端口中的端口被接收,或者要通过多个端口中的端口被发送(块410)。例如,如上所述,交换机100(例如,缓冲管理器110)可以使帧被存储在缓冲存储器(例如,缓冲存储器112)中,其中,该帧通过多个端口中的端口被接收,或者要通过多个端口中的端口被发送。
56.如图4中另外所示,处理400可以包括基于使帧被存储在缓冲存储器中而将至少一个bcb分配给帧(块420)。例如,如上所述,交换机100(例如,缓冲管理器110)可以基于使帧被存储在缓冲存储器中而将至少一个bcb分配给帧。
57.如图4中另外所示,处理400可以包括将fcb分配给帧,其中,fcb包括标识至少一个bcb的信息(块430)。例如,如上所述,交换机100(例如,缓冲管理器110)可以将fcb分配给帧,其中,fcb包括标识至少一个bcb的信息。
58.如图4中另外所示,处理400可以包括与帧的处理相关联地执行一个或更多个排队操作,其中,使用与fcb相关联的信息来执行一个或更多个排队操作(块440)。例如,如上所
述,交换机100(例如,缓冲管理器110)可以与帧的处理相关联地执行一个或更多个排队操作,其中,使用与fcb相关联的信息来执行一个或更多个排队操作。
59.处理400可能包括附加的实现,例如下面描述的和/或与本文其他地方描述的一个或更多个其他处理相关的任何单个实现或实现的任何组合。
60.在第一实现中,执行一个或更多个排队操作包括通过与处理帧相关联地更新qcb以包括标识fcb的信息来使帧入队以用于处理,qcb与队列相对应。
61.在第二实现中,单独地或与第一实现相结合,执行一个或更多个排队操作包括通过从与队列相对应的qcb中移除标识fcb的信息来使帧从队列中出队。
62.在第三实现中,单独地或与第一实现和第二实现中的一个或更多个实现相结合,在不复制帧的情况下执行一个或更多个排队操作。
63.在第四实现中,单独地或与第一实现至第三实现中的一个或更多个实现相结合,缓冲存储器被配置成用于针对多个端口的每个端口对帧进行缓冲。
64.在第五实现中,单独地或与第一实现至第四实现中的一个或更多个实现相结合,帧是第一帧,以及fcb是第一fcb,并且第一fcb包括标识与第二帧相关联的第二fcb的字段,第二帧与和第一帧相同的队列相关联。
65.在第六实现中,单独地或与第一实现至第五实现中的一个或更多个实现相结合,fcb包括与帧相关联的保密性数据。
66.在第七实现中,单独地或与第一实现至第六实现中的一个或更多个实现相结合,fcb包括与帧相关联的安全性数据。
67.在第八实现中,单独地或与第一实现至第七实现中的一个或更多个实现相结合,缓冲管理器还基于处理帧的结果来更新fcb。
68.虽然图4示出了处理400的示例块,但是在一些实现中,处理400包括与图4中描绘的那些块相比附加的块、更少的块、不同的块或不同地布置的块。另外地或可替选地,可以并行地执行处理400的两个或更多个块。
69.上述公开内容提供了说明和描述,但并不旨在穷举或将实现限制为所公开的精确形式。可以根据上述公开内容进行修改和变化,或者可以从实现的实践中获得修改和变化。
70.如本文所使用的,术语“部件”旨在被广泛地解释为硬件、固件和/或硬件和软件的组合。将明显的是,本文描述的系统和/或方法可以以不同形式的硬件、固件或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不是对实现的限制。因此,在本文中在不参考特定的软件代码的情况下描述了系统和/或方法的操作和行为——应当理解,软件和硬件可以被设计成基于本文中的描述来实现系统和/或方法。
71.如本文所使用的,根据上下文,满足阈值可以指某值大于阈值、大于或等于阈值、小于阈值、小于或等于阈值、等于阈值、不等于阈值等。
72.即使在权利要求中列举和/或在说明书中公开了特征的特定组合,这些组合并不旨在限制各种实现的公开内容。实际上,这些特征中的许多特征可以以未在权利要求中具体列举和/或未在说明书中具体公开的方式组合。尽管下面列出的每个从属权利要求可能直接引用仅一个权利要求,但是各种实现的公开内容包括与权利要求集合中的每个其他权利要求相结合的每个从属权利要求。如本文所使用的,提及项目列表中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一个”旨在涵盖a、
b、c、a-b、a-c、b-c和a-b-c,以及具有多个相同项目的任何组合。
73.本文使用的元件、动作或指令不应被解释为关键的或必要的,除非明确地这样描述。此外,如本文所使用的,冠词“一”和“一个”旨在包括一个或更多个项目,并且可以与“一个或更多个”互换使用。此外,如本文所使用的,冠词“该”旨在包括结合冠词“该”提及的一个或更多个项目,并且可以与“一个或更多个”互换使用。此外,如本文所使用的,术语“集合”旨在包括一个或更多个项目(例如,相关项目、不相关项目或相关项目和不相关项目的组合),并且可以与“一个或更多个”互换使用。在意指仅一个项目的情况下,使用短语“仅一个”或类似语言。此外,如本文中使用的,术语“具有(has)”、“有(have)”、“具备(having)”等旨在是开放式术语。此外,除非另有明确说明,否则短语“基于”旨在意指“至少部分地基于”。此外,如本文所用,除非另外明确说明(例如,如果与“任一”或“仅之一”组合使用),否则术语“或”当在系列中使用时旨在是包括性的,并且可以与“和/或”互换使用。
技术特征:
1.一种用于缓冲管理的设备,包括:缓冲存储器,其用于对通过所述设备的多个端口接收到的帧或要通过所述设备的所述多个端口发送的帧进行缓冲;至少一个帧处理器,其用于对通过所述设备的所述多个端口接收的帧或要通过所述设备的所述多个端口发送的帧进行处理;以及缓冲管理器,其用于:将帧存储在所述缓冲存储器中,所述帧是通过所述多个端口中的端口被接收的帧,或者是要通过所述多个端口中的端口被发送的帧,基于将所述帧存储在所述缓冲存储器中而将至少一个缓冲控制块bcb分配给所述帧,将帧控制块fcb分配给所述帧,所述fcb包括标识所述至少一个bcb的信息,以及与由所述至少一个帧处理器对所述帧的处理相关联地执行一个或更多个排队操作,所述一个或更多个排队操作是利用与所述fcb相关联的信息来被执行的。2.根据权利要求1所述的设备,其中,所述缓冲存储器被配置成用于针对所述多个端口中的每个端口对帧进行缓冲。3.根据权利要求1所述的设备,其中,所述缓冲管理器在执行所述一个或更多个排队操作时,通过更新与队列相对应并且与所述帧的处理相关联的队列控制块以包括标识所述fcb的信息,来使所述帧入队。4.根据权利要求1所述的设备,其中,所述缓冲管理器在执行所述一个或更多个排队操作时,通过从与队列相对应的队列控制块中移除标识所述fcb的信息,来使所述帧从所述队列中出队。5.根据权利要求1所述的设备,其中,在不复制所述帧的情况下执行所述一个或更多个排队操作。6.根据权利要求1所述的设备,其中,所述帧是第一帧并且所述fcb是第一fcb,并且所述第一fcb包括标识与第二帧相关联的第二fcb的字段,所述第二帧与和所述第一帧相同的队列相关联。7.根据权利要求1所述的设备,其中,所述fcb包括与所述帧相关联的保密性数据。8.根据权利要求1所述的设备,其中,所述fcb包括与所述帧相关联的安全性数据。9.根据权利要求1所述的设备,其中,所述缓冲管理器还基于处理所述帧的结果来更新所述fcb。10.一种缓冲管理器,包括:一个或更多个部件,其用于:获得帧,所述帧是通过设备的多个端口中的端口被接收的帧或要通过所述设备的所述多个端口中的端口被发送的帧;使所述帧被存储在所述设备的缓冲存储器中,基于使所述帧被存储在所述缓冲存储器中而将至少一个缓冲控制块bcb分配给所述帧;将帧控制块fcb分配给所述帧,所述fcb包括标识所述至少一个bcb的信息;以及与由所述设备的帧处理器对所述帧的处理相关联地使所述帧入队或出队,所述入队或出队是利用与所述fcb相关联的信息来被执行的。
11.根据权利要求10所述的缓冲管理器,其中,所述一个或更多个部件在使所述帧入队时,更新与队列相关联的队列控制块以包括标识所述fcb的信息。12.根据权利要求10所述的缓冲管理器,其中,所述一个或更多个部件在使所述帧出队时,从与队列相对应的队列控制块中移除标识所述fcb的信息。13.根据权利要求10所述的缓冲管理器,其中,在不复制所述帧的情况下执行所述帧的所述入队或出队。14.根据权利要求10所述的缓冲管理器,其中,所述帧是第一帧并且所述fcb是第一fcb,并且所述第一fcb包括标识与第二帧相关联的第二fcb的字段,所述第二帧与和所述第一帧相同的队列相关联。15.根据权利要求10所述的缓冲管理器,其中,所述fcb包括与所述帧相关联的保密性数据和与所述帧相关联的安全性数据中的至少一者。16.根据权利要求10所述的缓冲管理器,其中,所述一个或更多个部件还基于由所述帧处理器对所述帧执行处理的结果,来更新所述fcb。17.一种用于缓冲管理的方法,包括:通过缓冲管理器,使帧被存储在缓冲存储器中,其中,所述帧或者通过多个端口中的端口被接收或者要通过所述多个端口中的端口被发送;通过所述缓冲管理器,基于使所述帧被存储在所述缓冲存储器中而将至少一个缓冲控制块bcb分配给所述帧;通过所述缓冲管理器,将帧控制块fcb分配给所述帧,其中,所述fcb包括标识所述至少一个bcb的信息;以及与所述帧的处理相关联地执行一个或更多个排队操作,其中,所述一个或更多个排队操作是利用与所述fcb相关联的信息来被执行的。18.根据权利要求17所述的方法,其中,执行所述一个或更多个排队操作包括:通过更新队列控制块qcb以包括标识所述fcb的信息,来使所述帧入队以用于处理,所述qcb与队列相对应并且与所述帧的处理相关联。19.根据权利要求17所述的方法,其中,执行所述一个或更多个排队操作包括:通过从与队列相对应的队列控制块中移除标识所述fcb的信息,来使所述帧从所述队列出队。20.根据权利要求17所述的方法,其中,在不复制所述帧的情况下执行所述一个或更多个排队操作。
技术总结
公开了一种用于缓冲管理的设备和方法以及缓冲管理器。该设备可以包括缓冲存储器以对通过设备的多个端口接收或发送的帧进行缓冲。该设备可以包括至少一个帧处理器以处理帧。该设备可以包括将帧存储在缓冲存储器中的缓冲管理器。缓冲管理器可以基于将帧存储在缓冲存储器中而将至少一个缓冲控制块(BCB)分配给帧。缓冲管理器可以将帧控制块(FCB)分配给帧。FCB可以包括标识至少一个BCB的信息。缓冲管理器可以与由至少一个帧处理器对帧的处理相关联地执行一个或更多个排队操作。可以利用与FCB相关联的信息来执行一个或更多个排队操作。作。
技术研发人员:余龙理 曼努埃拉
受保护的技术使用者:英飞凌科技股份有限公司
技术研发日:2023.01.19
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/