CN111385222A - 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类 - Google Patents

实时、时间感知、动态、情境感知和可重新配置的以太网分组分类 Download PDF

Info

Publication number
CN111385222A
CN111385222A CN201911362935.3A CN201911362935A CN111385222A CN 111385222 A CN111385222 A CN 111385222A CN 201911362935 A CN201911362935 A CN 201911362935A CN 111385222 A CN111385222 A CN 111385222A
Authority
CN
China
Prior art keywords
packet
data
time
received
data packet
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
Application number
CN201911362935.3A
Other languages
English (en)
Inventor
T·A·莱勒
W·C·华莱士
P·G·萨拉卡科蒂拉维杜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US16/425,734 external-priority patent/US11343205B2/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN111385222A publication Critical patent/CN111385222A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/251Cut-through or wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33139Design of industrial communication system with expert system

Abstract

本申请涉及实时、时间感知、动态、情境感知和可重新配置的以太网分组分类,并公开一种超高速电子通信装置(200),其包括:网络通信接口(225);存储器;以及一个或多个处理单元(219),其可通信地耦合到存储器和网络通信接口(225),其中存储器存储被配置为使一个或多个处理单元(219)进行以下操作的指令:使用网络通信接口接收数据分组(305);至少部分地基于多个因素确定数据分组的分类,其中多个因素包括接收数据分组的速率和接收数据分组的时间;至少部分地基于分类,从多个操作中选择操作,其中多个操作包括直通操作(504)和存储并转发操作(507);以及执行所选的操作。

Description

实时、时间感知、动态、情境感知和可重新配置的以太网分组 分类
相关申请的交叉引用
本申请要求于2018年12月29日提交的美国临时申请号62/786,395的优 先权益,并且该申请通过引用全部并入本文。本申请还要求于2018年5月30 日提交的美国临时申请号62/677,878的优先权益,并且该申请通过引用全部 并入本文。
技术领域
本公开总体上涉及一种工业控制子系统,其可以形成为集成电路的一部 分,诸如嵌入式处理器、片上系统(SoC)、专用集成电路(ASIC),或现场 可编程门阵列(FPGA)。更具体地,本公开涉及工业控制子系统中的实时数 据分组(packet)分类。
背景技术
跨不同工业和细分市场存在许多不同的通信协议,以解决用于在专用开 发的处理装置(诸如SoC、DSP、ASIC和FPGA)上运行的数据交换的实时 通信。例如,仅工业市场就有一百多种通信协议。尝试开发可以容易地配置 以适应新的通信协议的装置并没有完全令人满意。因此,在本领域中存在改 善的空间。
发明内容
本公开的至少一个示例包括网络通信接口;存储器;以及一个或多个处 理单元,其通信地耦合到存储器和网络通信接口,其中存储器存储被配置为 使一个或多个处理单元执行以下操作的指令:使用网络通信接口接收数据分 组;至少部分地基于多个因素确定数据分组的分类,其中多个因素包括接收 数据分组的速率和接收数据分组的时间;至少部分地基于分类,从多个操作 中选择操作,其中多个操作包括直通操作和存储并转发操作;以及执行所选 的操作。
本公开的至少另一示例包括存储由处理器可执行的指令的非暂时性计算 机可读存储器,该指令包括进行以下操作的指令:使用网络通信接口接收数 据分组;至少部分地基于多个因素确定数据分组的分类,其中多个因素包括 接收数据分组的速率和接收数据分组的时间;至少部分地基于分类,从多个 操作中选择操作,其中多个操作包括直通操作和存储并转发操作;以及执行 所选的操作。
本公开的至少另一示例包括处理器实现的方法,该方法包括:使用网络 通信接口接收数据分组;至少部分地基于多个因素确定数据分组的分类,其 中多个因素包括接收数据分组的速率和接收数据分组的时间;至少部分地基 于分类,从多个操作中选择操作,其中多个操作包括直通操作和存储并转发 操作;以及执行所选的操作。
附图说明
现将参考附图用于详细描述各种示例,在附图中:
图1示出了具有根据本公开的架构的系统的示例的框图;
图2A至图2C示出了示例工业通信子系统,其结合了来自图1的多个部 件;
图3示出了描述根据本公开的示例的分组分类引擎的逻辑的框图;
图4示出了根据本公开的示例的分组分类引擎的实施方式的框图;
图5示出了根据本公开的示例的输出调度模块的方面;以及
图6示出了根据本公开的示例的分组分类引擎的操作流程图。
具体实施方式
在以下描述中,出于解释的目的,阐明了许多具体细节以便提供本文所 公开示例的透彻理解。在一些情况下,可以不使用这些具体细节来实践所公 开的示例实施方式。在其他情况下,以框图形式示出结构和装置,以免混淆 所公开的示例。
当介绍本公开的各种示例的要素时,冠词“一”、“一个”和“该/所述” 旨在表示存在要素中的一个或多个。术语“包括”、“包含”和“具有”旨在 是包括性的,并且意味着除所列要素外,还可以有额外要素。所讨论的示例 本质上是说明性的,并且不应解释为暗示本文所述的特定示例本质上是优选 的。
在本公开中描述的示例既不是相互排斥的也不是集体穷举的。对“一个 示例”或“示例”的引用不应被解释为排除也包含所记载的特征的额外示例 的存在。
当在本文中使用时,术语“介质”包括一种或多种非暂时性物理介质, 其一起存储被描述为存储在其上的内容。示例包括非易失性辅助存储装置、 只读存储器(ROM)和/或随机存取存储器(RAM)。
当在本文中使用时,术语“应用程序”和“功能”包括一个或多个计算 模块、程序、过程、工作负载、线程和/或由计算系统执行的一组计算指令。 应用程序和功能的示例实施方式包括软件模块、软件对象、软件实例、其他 类型的可执行代码,诸如硬编码程序、硬连线电路和/或硬-连线电路。
本公开的一个或多个示例在“片上系统”(SoC)上实现。在至少一个示 例中,SoC包括多个硬件部件。在至少一个示例中,SoC包括微控制器、微 处理器、数字信号处理器(DSP)核和/或具有一个以上处理器核的多处理器 SoC。在至少一个示例中,SoC包括存储器块,该存储器块包括ROM、RAM、 电可擦除可编程只读存储器和闪存的选择。在至少一个示例中,SoC包括定 时(timing)源,该定时源包括振荡器和锁相环。在至少一个示例中,SoC包 括外围装置,该外围装置包括计数器、实时计时器和加电复位发生器。在至 少一个示例中,SoC包括模拟接口,该模拟接口包括模数转换器和数模转换 器。在至少一个示例中,SoC包括电压调节器和电源管理电路。
在至少一个示例中,SoC既包括如上所述的硬件,又包括控制所讨论的 微控制器、微处理器或DSP核、外围装置和接口的软件。
当在本公开中使用时,术语“通信桥”包括计算机联网装置,该计算机 联网装置从多个通信网络或网段创建单个聚合网络。此功能称为网络桥接。 在利用通信桥的实时系统(诸如本文所述的那些)中,分配给转发分组的时 间是确定性的,具有最小的抖动和等待时间。有关传入分组的转发决策取决 于接收分组的时间、接收分组的数据速率以及分组的内容。
当在本公开中使用时,术语“抖动”是指通常对于参考时钟信号,大概 周期性信号的真实周期性的偏差。
在本公开的示例中,通信协议是使通信系统的两个或更多个实体能够传 输信息的规则系统。某些通信协议(诸如EtherCAT(用于控制自动化技术的 以太网))可以在一个分组内具有多个数据报(datagram),该分组需要使用可 变的起始偏移量多次解析该分组。EtherCAT是基于以太网的现场总线系统。 现场总线系统是用于实时分布式控制的工业网络系统。EtherCAT协议在IEC 61158中进行了标准化,并且适用于自动化技术中的硬实时和软实时计算要求 两者。PROFINET是工业以太网通信协议。诸如PROFINET之类的工业以太网系统需要在接收过程期间解析其数据分组,并在接收过程期间到达分组末 尾之前做出处理/转发决策——诸如,将接收到的分组发送到何处。
如前所述,已经跨不同工业和细分市场开发了许多不同的通信协议,以 解决用于在专用开发的处理装置(诸如SoC、DSP、ASIC和FPGA)上运行 的数据交换的实时通信。本公开的示例针对提供和/或实现用于此类处理装置 和/或部件之间的通信的多协议灵活性。本公开的至少一个示例涉及以1千兆 位/秒或更快的速度提供和/或实现实时以太网通信。
本公开的至少一个示例是用于工业通信子系统(ICSS)的架构,其解决 了多协议通信的灵活性要求和实时千兆位以太网的性能要求。通过集成到目 录处理器上,该架构使工业通信像标准以太网一样容易。ICSS具有混合架构。 在至少一个示例中,ICSS包括四个32位精简指令集计算机(RISC)核心, 这些核心称为可编程实时单元(PRU),该PRU与一组紧密集成的硬件加速器 耦合。在本公开内,硬件加速器包括专门制造的硬件,以比使用在通用中央 处理单元(CPU)上运行的软件可能实现的功能更有效地执行一些功能。精 简指令集计算机(RISC)是这样的计算机,其指令集架构(ISA)使其与复杂 指令集计算机(CISC)相比,每条指令的周期(CPI)更少。
本文所述的128/256千兆位/秒数据传递与4纳秒(ns)的确定性编程解 析度(resolution)的组合是对通信接口的高度区分的方法。在图2A至图2C 中提供了与128/512千兆位/秒数据总线架构相组合的硬件加速器的详细视图。
本公开的示例涉及可编程实时单元(PRU)子系统和工业通信子系统 (ICSS),其由双32位RISC核心(PRU)、数据和指令存储器、内部外围模 块和中断控制器(INTC)组成。PRU-ICSS的可编程性质及其对引脚、事件 和所有SoC资源的访问权限在实现快速实时响应、专用数据处理操作、自定 义外围接口中并在卸载来自SoC的其他处理器核心的任务中提供了灵活性。
对于工业以太网使用情况,本公开的示例ICSS在可编程性(灵活性)与 保持线速分组负载的需求之间提供了平衡。在至少一个示例中,PRU基于250 MHz时钟运行,并因此在一些情况下,固件预算被限制为每个分组大约84 个周期(对于最小大小的传输和接收帧)。对于在1GHz速率处理的完全802.1D兼容分组,此预算可能不足。因此,示例ICSS包括用于耗时的桥接任 务的硬件加速器,诸如宽边(BS)512位/1024位硬件加速器和宽边随机存取 存储器(BS-RAM)。
根据公开的示例,PRU微处理器核心具有到外部存储器的加载/存储接口。 使用数据输入/输出指令(加载/存储),可以从外部存储器读取数据或将数据 写入外部存储器,但是以在访问发生时使核心停顿为代价。通常,读取N个 32位字通常需要3+N个周期,而写入则需要大约2+N个周期。对于某些应用 程序,这些读取和写入速率太慢(例如,读取32个字节可能需要大约11个 周期)。本公开的示例解决了这些问题。
根据公开的示例,PRU可编程核心还具有宽寄存器加载/存储/交换接口 (称为宽边),其允许对加速器的一个周期访问。固件使用一组特殊的指令 (xin/xout/xchng)(它们使用宽边ID、用于传递的起始寄存器以及要传递的字 节数作为变元(arguments))以访问此宽寄存器接口。在本公开的至少一个示 例中,随机存取存储器(RAM)被附接到该宽边接口。通过这种方法,固件 可以以比其他情况更少的周期将32个字节的数据传递到RAM或从RAM传 递该数据;通常,存储32个字节花费1-2个周期,并且加载32个字节花费 2-3个周期。
在至少一个示例中,针对32个字节的宽传递,优化了宽边RAM和/或宽 边接口。通过将大小填充到32个字节,可以支持较低的传递宽度。在至少一 个示例中,首先使用xout宽边指令将读取位置写入到附接的RAM,并然后使 用xin宽边指令读取所讨论的数据。因此,读取操作将始终花费两个周期。对 于写传递,地址被放置在靠近保存32个字节数据的寄存器的寄存器中,并且 数据加地址在一个xout指令中传递到附接的RAM。在至少一个示例中,该方 法具有额外的优点,即还能够对数据执行操作,这可能与数据的传递并行。
除了针对32个字节传递将写入速度提高到常规系统中的至少十倍,并且 将读取速度提高到五倍外,本公开的示例还提供了以下优点,诸如宽边(BS) 接口在本地存储由BS接口最后访问的RAM地址的能力,这允许自动递增操 作模式,因此固件不必不断更新地址(对于批量读取特别有用)。本公开的示 例使得能够使用该接口与写入操作并行地对数据进行有用的操作。例如,直 通数据可以通过校验和电路运行以计算分组的运行校验和,同时将分组存储 在RAM中。在至少一个示例中,处理器可以以各种数据大小边界对分组内的数据执行字节排列顺序的翻转(endian flipping)。在至少一个示例中,可以使 用BS接口执行数据枢转/互换操作,例如以将寄存器r2-r5与r6-r9互换。当 在具有不同块大小的接口之间移动数据时(例如,从32个字节的先进先出 (FIFO)接收器(RX)FIFO到16个字节的分组流接口),数据枢转/互换操 作有用。在至少一个示例中,通过使用不同的BS标识符(ID)(宽边指令的 参数)将组织与附接的存储器相关联,或通过不同的固件任务启用独立的存储器“视图”。宽边ID可以映射到不同的读或写存储器地址(由胶合逻辑维 护),使得数据结构(诸如先进先出(FIFO)和队列)可以通过附接的RAM 以灵活的和固件管理的方式实现。至少一个示例利用嵌入式处理。
在本公开的至少一个示例中,与进入(ingress)分类器组合的进入过滤器 硬件实现了用于实时转发和处理的硬件决策。
在本公开的示例中,多个硬件过滤器可以与二进制逻辑组合以形成复杂 的接收决策矩阵。在示例中,可以将多个硬件过滤器与时间窗口组合以用于 时间感知的接收决策。多个硬件过滤器也可以与速率计数器组合以用于速率 受限的接收决策。
在本公开的至少一个示例中,硬件过滤器和分类器使得能够以最小的桥 延迟实现与分组有关的接收和转发决策。在示例中,内容、时间窗口和数据 速率的组合为以太网桥接提供了稳健的进入分类,同时保持了最小的桥延迟。 本公开的示例实现了小于微秒的桥延迟。
图1是根据本公开的一个示例的基于ICSS架构的系统100(其可以是SoC 130的部件)的功能框图。在图1中,16千字节的宽边随机存取存储器 (BS-RAM)101耦合到AUX_PRU112(与其信号通信)。BS-RAM 101经由 AUX_PRU 112耦合到PRU 116。BS-RAM 101可以在系统100的一个时钟周 期中传递32个字节的数据。BS-RAM 101具有超高带宽和超低等待时间。在 本公开内,耦合的部件(例如,电路)能够彼此通信。连接的部件是经由直 接连接或间接连接被耦合的那些部件。在本公开内,除非提供相反的指示, 否则彼此耦合的部件也被连接。
如图1所示,通过接口电路104(其为实时接口)传入的数据传到FIFO 接收电路105。当数据通过接收电路105时,分类器108被应用于该传入数据。 分类引擎108的组合逻辑、过滤器106和速率计数器107被应用于接收到的 数据分组。
管理数据输入/输出(MDIO)电路102是介质接口。MDIO电路102使用 PRU 116与外部简化的千兆位介质独立接口(RGMII)物理层和介质独立接口 (MII)物理层(接口电路104、接口电路119)通信。MDIO电路102具有 低等待时间并且专用于PRU 116。如图1所示,系统100还包括统计计数器 电路103,其跟踪实时接口电路104的以太网端口的统计信息,诸如分组大小、 错误等。包括RGMII、串行千兆位介质独立接口(SGMII)和实时介质独立 接口231、259(RTMII)的实时接口电路104是连接到系统100的输入/输出 (IO)(诸如MDIO电路102)的硬件层。实时接口电路104耦合到FIFO接 收电路105,FIFO接收电路105包括一级先进先出(FIFO)接收层(RX_L1) 和二级FIFO接收层(RX_L2)。FIFO接收电路105可以接收一级FIFO数据 和二级FIFO数据。
如上所述,系统100包括过滤器106,其为用于八个过滤器类型1数据流 和/或十六个过滤器类型3数据流的过滤器。过滤器106确定给定的数据分组 是否为数据分组的特定“类型”。过滤器类型3数据分组具有可变的起始地址, 取决于分组是否与虚拟LAN通信。系统100还包括速率跟踪器107。在至少 一个示例中,系统100包括八个速率跟踪器107。基于过滤器类型命中率,速 率跟踪器107计算FIFO接收电路105的吞吐率。系统100还包括过滤器数据 库(FDB)109。FDB 109用于路由和冗余。接收电路105包括包含物理接收 端口的一级接收层(RX_L1)和二级接收层(RX_L2)。接收电路105的一级 接收层(RX_L1)和二级接收层(RX_L2)可以访问FDB 109,以基于 IEEE802.1Q学习桥模式1管理接收和转发决策。FDB109包含查找表(LUT), 查找表(LUT)存储可以给予PRU 116以帮助PRU 116做出数据路由决策的 结果。在至少一个示例中,系统100还包括虚拟局域网标签(VLAN TAG) 电路110。(标签(也称为“ID”)是分配给一条信息(诸如,互联网书签、数 字图像、数据库记录、计算机文件或VLAN)的关键字或术语。统计跟踪器 103、过滤器106、速率跟踪器107、分类器108、FDB109和(可选的)VLAN TAG 110是接收电路105的各个方面。
MDIO电路102根据开放系统互连(OSI)模型控制与系统的外部物理层 (未示出)的交互。物理层将诸如介质访问控制器(MAC)的链路层装置(参 见图2A的206(266)和220(290),以及图2C的266和290)连接到主机 (例如246)装置/系统的物理介质,子系统200是主机装置/系统的部件或这 子系统200耦合到主机装置/系统。物理层包括物理编码子层(PCS)功能和 物理介质相关(PMD)层功能两者。其中嵌入了系统100的SoC 130外部有 收发器。MDIO电路102配置一个或多个外部物理层(未示出)并且用于使 ICS的等待时间最小化。
每个中央处理单元(CPU)(诸如可编程实时单元116)都包括任务管理 器电路(例如,任务管理器电路111)。在至少一个示例中,任务管理器电路 111和任务管理器电路121可以识别200个或更多事件。事件对应于硬件状态 信号,诸如来自过滤器106、来自速率跟踪器107或来自中断控制器123的硬 件状态信号。AUX_PRU 112负责控制。例如,基于起动器帧,PRU-RTU 112 检测到新的分组将去往数据处理器PRU 116,并且与数据处理器收集数据并 行,PRU-RTU 112将根据去往每个主机(130、246)的分组的需要设置每个 分组的地址和直接存储器访问(DMA)。在将数据推送到BS-RAM 117的同时, 也可以将数据推送到校验和加速器诸如CRC 120。因此,CRC 120可以挂在 BS RAM 117之外。传递电路113与AUX_PRU112和PRU 116通信。如图1 中的符号“RX/TX”所指示,传递电路113可以接收(RX)和传输(TX)信 息。传递电路113配置有DMA,其使得AUX_PRU 112和PRU 116两者能够 访问主系统100存储器。当AUX_PRU 112或PRU 116启动事务时,传递电 路113将管理到SoC 130存储器的数据移动,以拉动或推送数据。因此,传 递电路113是可以用于数据传递的一般资产。在至少一个示例中,在图1的 架构中,当PRU 116推送数据时,AUX_PRU 112可以控制地址位置。因此, 该架构是灵活的,因为单个CPU(例如(112、116))既不负责数据管理又不 负责控制功能。
在至少一个示例子系统100中,存在具有本地存储器的构造。图1的示 例子系统100中的构造可以是4字节宽。然而,存在两排数据存储器114专 用于每个CPU(例如112、116),并且另一排较大的存储器115在CPU(112、 116)之间共享。数据存储器114可以与暂存器126和暂存器127一起使用, 而共享存储器115用于链路列表,该链路列表用于DMA或用于存储元数据。 暂存器126、127相似于BS-RAM 101、117。然而,暂存器126和暂存器127 与BS-RAM 101和BS-RAM 117的不同之处在于暂存器126、127在片形件 (slice)之间共享(参见图2A的片形件_0和图2C的片形件_1),并且暂存 器126、127比BS-RAM 101、117更灵活。暂存器(例如126、127)可以保 存和/或恢复寄存器组。暂存器126、127可以用于片形件对片形件通信并执行 桶形移位或将寄存器组重新映射到物理位置。BS-RAM 117类似于BS-RAM 101,除了BS RAM 117还具有包括查找表的FDB。当分组在接收电路105处 进入系统100时,硬件执行对FDB 109的查找并将数据呈现给PRU 116。基 于BS-RAM 117的FDB的响应,PRU 116做出路由决策,诸如,是否经由传 递电路113将接收到的分组路由到主机和/或诸如通过传输电路118路由到不 同的端口。PRU 116还访问BS-RAM 125。PRU 116充当交换机,而BS RAM 117使动作能够同时执行。因此,BS-RAM 117是双重用途的部件。硬件可以 连接到BS-RAM 117,而BS-RAM 117为PRU 116执行针对FDB 109的查找。 就像可以与加载RAM(例如114)同时由CRC 120执行校验和一样,当 BS-RAM 125与硬件交互时,BS-RAM 117可以为PRU 116执行FDB操作。
传输电路118处理来自PRU 116的数据的外出(egress)。传输电路118 执行抢占、标签插入和填充。传输电路118使固件能够干净地终止分组。此 后,任务管理器电路121将执行必要的步骤以生成最终的CRC,并且如果所 讨论的分组小,则传输电路118将执行填充。传输电路118可以插入标签, 使得PRU 116不必保持跟踪分组。因此,传输电路118能够辅助SoC 130的 硬件。传输电路118耦合到接口电路119。接口电路119是最终层。在传输电路118外部,存在不同的介质独立接口,例如RGMII、SGMII和实时MII(参 见104、119、225(295))。在本公开内,系统100上的其他类型的接口也是 可能的。FIFO传输电路118不关心此类接口。接口电路119是解复用器。接 口电路119为传输电路118提供协议转换,使传输电路118(并且因此PRU 116) 能够以适合该硬件的协议与一件给定硬件进行通信。因此,PRU116和传输 单元118不被限制以仅对应于一个协议的方式操作,使得PRU 116和传输电 路118比不存在接口电路119时更通用。在本公开的至少一个示例中,系统 100查明(pinsdown)接口电路119的数据流连接到外部物理层。参考开放系 统互连(OSI)模型的级别,传输电路118具有一级FIFO传输层(TX_L1) 和二级FIFO传输层(TX_L2)。一级(或“层”)对应于OSI模型的物理层, 并且二级对应于OSI模型的数据链路层。这种双层连接提供了选项。例如, 可以绕过二级FIFO传输层(TX_L2),并且可以将数据发送到一级FIFO传输 层(TX_L1),这减少了等待时间。在至少一个示例中,与一级FIFO传输层 (TX_L1)相比,二级FIFO传输层(TX_L2)具有更宽的接口。在至少一个 示例中,二级FIFO传输层(TX_L2)具有32字节的接口,而一级FIFO传输 层(TX_L1)具有4字节的接口。在至少一个示例中,如果在接收电路105处数据分组从一级接收层(RX_L1)到达二级接收层(RX_L2)272(257), 并且PRU 116在二级接收层(RX_L2)处访问该分组,则数据将被首先推送 到FIFO传输电路118的二级FIFO传输层(TX_L2),并且然后FIFO传输电 路118的硬件将数据分组直接推送到一级FIFO传输层(TX_L1)。然而,在 与超低等待时间接口(诸如EtherCAT)进行通信时,可以绕过二级FIFO传输层(TX_L2);从PRU 116输出的数据可以直接推送到一级FIFO传输层 (TX_L1)(如上所述,其具有4字节的宽度)。
接口电路104和接口电路119处于OSI模型的零级。因此,数据通过接 口电路104以零级进入系统100,从零级移动到FIFO接收电路105的一级接 收层(RX_L1)或FIFO接收电路105的二级接收层(RX_L2)272(257), 到PRU 116(同时存在于一级和二级),并且从PRU 116的一级或二级通过 FIFO传输电路118,并在接口电路119处降回到零级。在至少一个示例中, 循环冗余校验(CRC)电路120是加速器,其辅助PRU 116执行计算。PRU 116 通过BS-RAM117与CRC电路120接合。CRC电路120将散列(hash)函数 应用于PRU 116的数据。CRC电路120用于验证数据分组的完整性。例如, 所有以太网分组都包括CRC值。CRC电路120对分组执行CRC校验以查看 该分组的CRC值是否与CRC电路120所计算的结果一致。即,分组包括CRC 签名,并且在计算签名之后,结果与附接到分组的签名进行比较以验证分组 的完整性。
系统100还包括中断控制器(INTC)123。INTC 123将CPU(例如, AUX_PRU 112、PRU116)级事件聚合到主机(例如,130、146)事件。例 如,可能有十个主机事件。INTC 123确定应将给定的一组从属级事件聚合、 映射并分类为单个实体。单个实体可以被路由到PRU116或任务管理器电路 121并由其使用以引起主机(130、146)的事件。从这个意义上讲,INTC 123 既是聚合器又是路由器。
增强/外部捕获(eCAP)电路124是计时器,其使PRU 116能够基于与工 业以太网外围(IEP)电路122的时间匹配来生成输出响应,并捕获系统100 外部事件的事件时间。
IEP电路122具有两组独立的计时器,计时器使得能够进行时间同步、时 间戳和服务质量以用于将数据从系统100外出。存在若干个独立的捕获电路 与IEP电路122相关联。例如,如果存在接收(RX)起动器帧事件,并且在 特定时间将帧该推送到主机很重要,则IEP电路122可以对该事件加时间戳 以指示该特定时间。如果事件是用于外出电路118的时间触发的发送,则如 果期望在精确的时间(2-3纳秒内)传递分组,则在计时器到期时独立于PRU 116开始传输分组。因此,分组的传递有效地与PRU 116退耦。
除了所描述的计时器,IEP电路122还包含增强的数字输入/输出接口 (EDIO)。EDIO与通用输入/输出(GPIO)接口类似,但更智能,并且针对 以太网通信进行了更好的校准。例如,传输开始或接收开始的帧可以引起 EDIO上的事件,进而可以引起SoC 130外部的事件。同步输出和锁存是时间 同步的一部分。IEP 120也可以接收帧并捕获模拟电压。在常规系统中,这将 需要读取操作。但是使用EDIO,捕获可以被事件触发和/或时间触发,因此使捕获比常规系统中更精确。EDIO使系统100能够精确地确定传入帧何时到 达,这继而使系统100能够对一个或多个特定值(诸如温度、电压等)进行 采样并在采样时进行精确跟踪,这是因为由IEP电路122加时间戳。可以增 加所讨论的帧。当帧由传输电路118传输时,该帧可以包含被加时间戳的采 样值,而不会增加开销或等待时间。IEP电路122还包括看门狗(WD)计时 器。某些事件应在正常操作条件下发生。当此类事件发生时,PRU 116通常 将清除WD计时器。如果WD计时器启动,则表示PRU 116没有及时清除 WD计时器,或者没有及时重置WD计时器,这指示存在停滞或某种类型的 等待时间,这是不期望的。因此,WD计时器用于跟踪错误。
如上所述,任务管理器电路111和任务管理器电路121可以识别大量事 件。PRU116是系统100的主数据引擎。当帧开始时,系统100开始准备和 服务接收电路105。一旦帧在传输电路118中,就可以开始下一个分组的输入。 因为PRU 116是主处理器,所以PRU 116需要实时对所有事件具有访问权。 与PRU 116相关联的另一操作是加水印。可以在接口电路105、接收电路105、 传输电路118和接口电路119处创建水印。不期望在加载或卸载分组之前等 待直到FIFO已满,因为这样做太迟,并且不期望等待直到FIFO为空,因为 这为时过早,当达到一定量的空度(或满度)时,任务管理器电路121可以 启动,并且PRU 116将确定该分组是否将被加水印。
BS-RAM 117的一个方面在于,它使得PRU 116能够在系统100可以将 情境和变量保存在BS-RAM 117的同时监听分组,并且可以无额外开销对情 境和变量执行操作,因为分组的数据不需要移动两次。在本公开的至少一个 示例中,可以将传入的数据分组移动到存储位置,并且同时对数据进行操作。 这不同于常规系统,常规系统将进入的分组移动到处理电路并随后移动到存 储位置。因此,系统100执行单个操作,而常规系统将执行两个操作。
如上所述,AUX_PRU 112与BS-RAM 101交互。AUX_PRU112具有任 务管理器电路111,该任务管理器电路111可以基于某些事件或情境互换的发 生而抢占PRU 116。AUX_PRU112还与传递电路113交互。在至少一个示例 中,根据本公开的系统100还包括8千字节的数据RAM 114和64千字节的 共享RAM 115。AUX_PRU 112和传递电路113两者均与PRU 116交互。任 务管理器电路121基于FIFO水印输入用于接收和传输处理的实时任务。PRU 116还耦合到16千字节BS-RAM过滤器数据库117。来自PRU 116的输出去 往FIFO传输电路118。继而,来自FIFO传输电路118的输出去往实时接口 电路119。PRU 116还与计算以太网分组内的校验和的CRC 120交互。在至少 一个示例中,系统100包括IEP/计时器/EDIO/(多个)WD电路122。如上所 述,系统100还可以包括中断控制器(INTC)123和eCAP电路124。
图2A至图2C示出了示例工业通信子系统(ICSS)(在下文中简称为子 系统200)。图2A至图2C示出了多个与图1所示相同的部件,但是细节有所 变化。关于图1阐述的描述与图2A至图2C紧密相关,并且反之亦然。内部 总线248和外部总线247的左侧上的片形件_0 201与右侧上的片形件_1 261 对称。(注意,相似的字母符号指示相似的部件。)片形件_0 201中的部件的 描述适用于片形件_1 261中的部件。如图2所示,子系统200包括处理硬件 元件,诸如辅助可编程实时单元(AUX_PRU_0)205和PRU_0 219,这些处 理硬件元件包含一个或多个硬件处理器,其中每个硬件处理器可以具有一个 或多个处理器核心。在至少一个示例中,处理器(例如,AUX_PRU_0 205、 PRU_0 219)可以包括至少一个共享高速缓存,该共享高速缓存存储由处理器 (AUX_PRU_0 205、PRU_0 219)的一个或多个其他部件所利用的数据(例 如,计算指令)。例如,共享高速缓存可以是存储在存储器中的本地高速缓存 数据,以供组成处理器(AUX_PRU_0 205、PRU_0 219)的处理元件的部件 更快访问。在一些情况下,共享高速缓存可以包括一个或多个中级高速缓存, 诸如2级高速缓存、3级高速缓存、4级高速缓存或其他级高速缓存、最后一 级高速缓存或其组合。处理器的示例包括但不限于CPU微处理器。尽管在图 2中未明确示出,但是组成处理器AUX_PRU_0 205和处理器PRU_0219的处 理元件还可以包括一种或多种其他类型的硬件处理部件,诸如图形处理单元、ASIC、FPGA和/或DSP。PRU_1的另一个加速器是BSWAP电路224(294)。 BSWAP电路224(294)可以根据所讨论的分组的大小、小字节序和/或大字 节序来互换字。BSWAP电路224(294)可以根据字长对分组中的字节重新排 序。
子系统200包括由图2C中的片形件_1镜像的片形件_0 201。从图2A中 可以看出,片形件_0 201具有多个部件。主要部件是辅助PRU(AUX_PRU_0) 205、PRU_0 219和MII 25。AUX_PRU_0 205具有编号或加速器(也称为小 部件)。AUX_PRU_0 205用作片形件_0 201的控制处理器。在整个本公开中, 术语“控制处理器”、“AUX_PRU”和“RTU_PRU”是同义的和可互换的, 除非另有指示或专用于它们出现的情境,尽管它们的功能和配置可以不同。
图2A示出了存储器(例如204(264))可以可操作地并且通信地耦合到 AUX_PRU_0205。存储器204(264)可以是被配置为存储各种类型的数据的 非暂时性介质。例如,存储器204(264)可以包括包含易失性存储器的一个 或多个存储装置。易失性存储器(诸如随机存取存储器(RAM))可以是任何 合适的非永久性存储装置。在某些情况下,如果分配的RAM不足以容纳所有 工作数据,则可以使用非易失性存储装置(未示出)来存储溢出数据。当选择加载到RAM中的程序用于执行时,此种非易失性存储装置也可以用于存储 此类程序。
可以针对各种软件平台和/或操作系统,以各种计算语言开发、编码和编 译软件程序,并且随后由AUX_PRU_0 205加载和执行该软件程序。在至少一 个示例中,软件程序的编译过程可以将以编程语言编写的程序代码变换为另 一种计算机语言,使得AUX_PRU_0205能够执行该编程代码。例如,软件程 序的编译过程可以生成可执行程序,该可执行程序为AUX_PRU_0 205提供编 码指令(例如,机器代码指令)以完成特定的非通用计算功能。
在编译过程之后,然后可以将编码后的指令作为计算机可执行指令或过 程步骤从存储装置220(290)、从存储器210加载到AUX_PRU_0 205和/或嵌 入AUX_PRU_0 205内(例如,经由高速缓存或机载ROM)。在至少一个示例 中,AUX_PRU_0 205被配置为执行所存储的指令或过程步骤以执行指令或过 程步骤以将子系统200变换为非通用且经特殊编程的机器或设备。在计算机 可执行指令或过程步骤的执行期间,AUX_PRU_0 205可以访问所存储的数 据,例如由存储装置220(290)存储的数据,以指示子系统200内的一个或 多个部件。
图2B示出了由图2A的片形件_0和图2C的片形件_1共享的部件和资源。 图2C包括与图2A相同的硬件。片形件_0 201和片形件_1 261关于图2B对 称。在本公开内关于图2A的描述比照适用于图2C。子系统200包括子系统 200,该子系统200还包括片形件_0 201处和片形件_1 261上的对应端口276。 存在第三端口(参见图2B),即主机端口245,主机端口245将子系统200连 接到主机246,子系统200可以是主机246的部件。端口253和端口276都可以连接到以太网。子系统200因此可以用作三端口交换机。主机246可以是 本地源/同步或SoC(130)。虽然子系统200选项本身可以是SoC(130),但 在一些实施方式中,子系统200将是更大SoC(130)的子部件。在一些示例 中,主机246将是来自英国英格兰剑桥的ARMHoldings PLC的CPU。在至 少一个示例中,主机246包括若干个CPU。存在各种各样的CPU。小型CPU 的示例是Arm Cortex-R5-CPU。大型CPU的示例是Arm Cortex-A57-CPU。在 至少一个示例中,子系统200可以由另一个此种CPU控制。
子系统200包括如图所示的XFR2TR电路202(图2A),其与内部可配 置总线阵列子系统(CBASS)248(图2B)交互。XFR2TR电路202(280) 中的“XFR”代表传递。XFR2TR电路202(280)具有宽边接口。XFR2TR 电路202(280)经由XFR2TR电路202(280)的宽边接口邻接于AUX_PRU_0 205。AUX_PRU_0 205的内部寄存器组暴露于加速器MAC 206、CRC 207 (267)、SUM32电路208(268)、字节互换(BSWAP)电路203(263)和 BS-RAM 204(264)。在本公开的至少一个示例子系统200中,AUX_PRU_0 205 的内部寄存器组直接暴露于加速器(诸如上面引用的那些加速器),与常规系 统的架构不同。在常规系统中,AUX_PRU_0 205将需要构造上的负载存储操 作以访问加速器。然而,在图2所示的示例中,加速器实际上是AUX_PRU_0205的数据路径的一部分。AUX_PRU_0 205可以基于给定寄存器的宽边ID 将其寄存器文件导入和导出到给定的加速器(也称为“小部件”)。例如,作 为DMA一部分的XFR2TR电路202(280)可以执行传递请求。传递请求(TR) 可以从起始地址开始,以开始数据移动,将要移动的数据量(例如200字节) 移动到目的地。XFR2TR电路202(280)可以执行SMEM 235的简单DMA 存储器副本,其包含预定传递请求(TR)的列表。在AUX_PRU_0 205上运 行的软件知道SMEM 235的预先存在的TR的列表。在操作中,AUX_PRU_0 205向DMA引擎发送指令以移动数据。由于传递指令可能非常复杂化和/或复 杂,因此预定义指令位于存储在SMEM 235中的“工作命令池”内。基于所 讨论的分组类型,AUX_PRU_0 205确定应使用哪些“工作命令”,以及以什 么顺序将分组发送到正确的目的地。XFR2TR电路202(280)可以由 AUX_PRU_0 205引导来创建工作命令列表,并且一旦创建了工作命令列表, XFR2TR电路202(280)就将通知DMA引擎(未示出)。然后,DMA引擎 将从SMEM 235中拉出指定的工作命令并执行所拉出的工作命令。因此, XFR2TR 202(280)最小化了构建DMA列表(如执行数据移动的链路列表) 所需的计算开销和传递。TR代表传递请求。
AUX_PRU_0的另一个加速器是BSWAP电路203(263)。BSWAP电路 203(263)可以根据所讨论的分组的大小、小字节序和/或大字节序来互换字。 BSWAP电路203(263)可以根据字长对分组中的字节重新排序。因此,BSWAP 电路203(263)是将自动执行此类互换的加速器。BS-RAM 204(264)对应 于关于图1讨论的BS-RAM 101。BS-RAM 204(264)紧密耦合到AUX_PRU_0 205。当AUX_PRU_0 205将数据元素推送到BS RAM 204(264)时,可以通 过CRC 207(267)同时计算该元素的CRC,或者通过校验和电路208同时计 算该数据元素的校验和。基于数据分组的ID,AUX_PRU_0 205将同时监听 (一个或多个)必要事务(例如,校验和、乘法、累加等),这意味着将数据 元素推送到BS-RAM 204(264)并执行加速器动作构成单个事务,而不是双 重事务。BS-RAM 204(264)实现操作的同时性,因为BS-RAM 204(264) 可以在将数据传递到物理RAM(例如,图1所示的数据RAM 114和共享RAM 115)时启用和/或禁用小部件的功能。
外围BSWAP 203(263)、XFR2TR电路202(280)、MAC 206(266)、 CRC 207(267)和SUM32 208,虽然出于说明目的被图示为在BS-RAM 204 (264)外部,但在大多数操作条件下,它们被嵌入在BS-RAM 204(264)内。 乘法累加器(MAC)206(266)是简单的加速器,其包括32位乘32位的乘 法器和64位的累加器。循环冗余校验(CRC)电路207(267)循环执行冗余校验。CRC电路207(267)支持不同的多项式。校验和电路208相似于CRC 电路207(267),不同之处在于校验和电路208在执行对有效载荷的校验和之 前使用散列操作来确定AUX_PRU_0205处的有效载荷的完整性。
任务管理器电路209是AUX_PRU_0 205的关键部分。任务管理器电路可 以基于检测到的196个事件中的哪个提示AUX_PRU_0 205执行给定功能。
有两种方法可以将数据移入和移出子系统200,以及移入和移出SoC 130 存储器和/或移入外部装置。一种方式是通过分组流接口(PSI)211(281), 其提供了将数据推送到主机(例如246)和从主机(例如246)拉动数据的能 力。PSI 211(281)的此动作与读取请求不同。相反,将PSI 211(281)的主 (书写器)部件附接到AUX_PRU_0 205。存在接收到的分组到目的地的映射。 在正常操作条件下,目的地将准备好接收分组。为此,PSI 211(281)不读取 数据,而是将数据传输到目的地端点。PSI 211(281)从导航子系统(NAVSS) 210接收数据并将数据发送到导航子系统(NAVSS)210。NAVSS 210实现复 杂的数据移动。NAVSS 210具有DMA引擎和称为重新引擎的高级TR。NAVSS 210支持PSI 211(281),并且可以将PSI 211(281)映射到其他装置,诸如 经由外围部件互连高速。使用PSI 211(281),数据可以直接从ICSS去往外 围部件互连高速,而绕过主机和/或主DMA引擎,从而实现使数据从一个以 太网接口(例如,接口电路225(295))流向另一个接口,诸如通用串行总线 或外围部件互连高速。
AUX_PRU_0 205与处理器间通信暂存器(IPC SPAD)212(282)通信, 进而也与PRU_0 219通信。IPC SPAD 212(282)不是单个CPU拥有的临时 SPAD。至少出于IPC SPAD 212(282)的目的,IPC SPAD 212(282)能够跨 AUX_PRU_0 205和PRU_0 219传递数据或完整的控制器状态。传递到虚拟总 线电路(XFR2VBUS)电路213(或简称为“传递电路213”)对应于图1所 示的传递电路113,并且以与传递电路113相同的方式操作。传递电路213 (283)附接到BS-RAM 214(284)。传递电路213(283)具有与外部CBASS 247、内部CBASS 248和自旋锁电路249的宽边接口。传递电路213可以请 求从存储器(例如204、214)到宽边以及从宽边到存储器的读取和写入。此 读/写功能不同于诸如在专用存储器(DMEM0)233处的读/写操作。常规DMA 复制操作会将SoC(130)存储器中的信息移动到DMEM0 233或共享存储器 SMEM 235。内部CBASS 248是用于子系统200的片上网络。
内部CBASS 248为4字节宽。在至少一个访问内部CBASS 248中,必须 执行加载和存储操作,这是高等待时间低吞吐量的操作。然而,由于传递电 路213(283)的宽边宽度,使用紧密耦合且更直接的传递电路213(283)减 少了等待时间和开销,同时还提供了更大的带宽。因此,传递电路213(283) 可以充当从寄存器文件到子系统200存储器(例如233)的直接映射。中间存 储器位置被绕过并且传递电路213(283)直接去往寄存器文件,这减少了等待时间。
如AUX_PRU_0 205所述,PRU_0 219也具有加速器。PRU_0 219对应于 图1的PRU116。与PRU 116一样,PRU_0 219具有任务管理器电路223。 AUX_PRU_0 205和PRU_0 219之间的主要区别在于PRU_0 219与接口电路 104、接收电路105、传输电路118和接口电路119(参见图1)交互,它们在 图2A至图2C中共同示出为接口电路225(295)。接口电路225(295)包括 接收电路270,该接收电路270包括一级FIFO传输层(TX_L1)226(296) 和二级传输层(TX_L2)262(256)(参见图1,118)。传输电路271包括一 级接收层(RX_L1)和二级接收层(RX_L2)272(257)(参见图1,105)。
AUX_PRU 205的PRU_0 219的BS-RAM 214(284)与BS-RAM 204(264) 相同。通用输入/输出(GPIO)电路215(285)使子系统200能够访问SoC (例如130、246)的额外硬线。∑-Δ(Sigma-Delta)电路216(286)是模数 转换器,其与一个或多个外部传感器(未示出)交互。∑-Δ电路216(286) 将来自传感器的模拟数据流转换为数字数据流。∑-Δ电路216(286)是过滤 器。来自传感器的数据流对应于外部装置(诸如马达)处的电压或温度。∑-Δ 电路216(286)向PRU_0 219通知某些事件,例如是否存在电流尖峰、电压 尖峰或温度尖峰。PRU_0 219确定由于尖峰需要采取什么动作(如果有的话)。
外围接口217(287)用于在子系统200的控制下检测装置诸如马达或机 器人关节的位置或取向。外围接口217(287)例如使用协议来确定臂的精确 径向位置。∑-Δ电路216(286)和外围接口217(287)因此用于装置控制, 诸如机器人控制。∑-Δ电路216(286)和外围接口217(287)紧密耦合到PRU_0 219,这使子系统200能够用于工业场景。
219的分组流接口PSI 218(288)相似于205PSI的PSI 211(281)。211 (281)和PSI218(288)与导航子系统(NAVSS)PSI 210交互。然而,尽 管PSI 211(281)具有四个接收(RX)输入和一个传输(TX)输出,但是 PSI 218(288)具有单个传输(TX)输出。如上所述,PRU_0219可以将PRU_0 219的寄存器文件直接移动到以太网线(端口)253中。因此,数据分组通过接收电路271的一级接收层(RX_L1)227和接收电路271的二级接收层 (RX_L2)272(257)进入;无需读取存储器或通过DMA。相反,数据分组 可以在单个数据周期中立即弹出(推送)到PRU_0 219。如有必要,可以在 下一个时钟周期中将数据分组推送到一级传输层(TX_L1)226(296)或二 级传输层(TX_L2)262(256),这可以称为“桥到层直通”操作。在至少一 个桥到层直通操作中,该操作比存储并转发操作更快。可以在将数据分组经 由PRU_0 219和端口245推送到主机246(例如SoC 130)或将数据分组推送 到片形件_1 261时(视情况而定)执行桥到层直通操作。
PRU_0 219是RISC CPU,其寄存器文件能够访问以太网缓冲器,而无需 访问或通过其他存储器。接口228(298)、接口229(299)和接口230(258) 是物理介质接口,并且包括至少一个RGMII。实时介质独立接口228(298) 是4位接口。接口229(299)为千兆位宽。接口229(299)是简化的千兆位 介质接口(RGMII)。接口230(258)是串行千兆位介质独立接口(SGMII)。 在这些识别的接口的一个或多个示例中,这些识别的接口实时执行。
以太网接口电路225(295)包括接收(RX)分类器电路232(108),其 取得速率数据(107)和过滤器数据(106)和其他数据,并基于预定义的映 射函数(诸如时间函数),分类器电路232(108)根据该映射函数对分组进行 分类。分组的分类将确定分组的优先级,从而将指定分组将放入哪个队列(高 优先级队列、低优先级队列等)。_225(295)的端口253本质上是专用于以 太网接口电路225(295)的导线。端口253处于OSI模型的零级。接口252 (255)是PRU_0 219和以太网接口电路225(295)之间的接口。如上所述, 270(273)和271(274)是FIFO配置的电路。FIFO传输电路270(273)对 应于图1的传输电路118,且FIFO接收电路271(274)对应于图1中的电路 105。分类器电路232对数据进行操作,同时将数据推送到FIFO电路270(273) 中。
片形件_0 201和片形件_1 261共享诸如图2B所示的数字资源301。片形 件_0 201和片形件_1 261经由内部CBASS 248彼此耦合。内部CBASS 248 耦合到中断控制器236。中断控制器236是聚合事件实例的聚合器(如上所述, 存在196个可能的事件)。事件中的一些可以来自主机(130)246,尽管大多 数事件是子系统200的内部事件。由于存在大量可能的事件,因此必须将事 件聚合或合并为较少数量的超级分组,以便与来自主机(例如246)的数据大 体上共享。在PRU_0 219上运行的软件确定源到输出目的地的映射。
如上所述,子系统200包括内部可配置总线阵列子系统(CBASS)248 作为共享资源。内部CBASS 248经由32位从端口从外部CBASS 247接收数 据。内部CBASS 248与专用存储器_0 233、专用存储器_1 234和共享存储器 (SMEM)235(115)进行通信。SMEM 235是通用存储器。SMEM 235可以 用于直接存储器访问(DMA)操作,用于DMA指令集和其他功能。DMA相似于暂存器(126、127)并且可以包含控制和状态信息。内部CBASS 248还 与增强捕获模块(eCAP)237通信,eCAP也与外部可配置总线阵列子系统 (CBASS)247通信。增强捕获模块237是用于对诸如马达之类的外部装置 进行时间管理的计时器。
在至少子系统200中具有不同的操作模式。AUX_PRU_0 205和PRU_0 219各自具有存储器映射寄存器。主机246将信息写入配置管理器电路238。 例如,如果主机246需要启用RGMII模式,则配置管理器238将启用RGMII 229(299),RGMII 229(299)是配置寄存器的示例。
通用异步接收器-发射器(UART)239是用于异步串行通信的硬件装置, 其中数据格式和传输速度是可配置的。电信令电平和方法由UART 239外部的 驱动器电路处理。UART必须以特定的波特率(bod-rate)工作,这需要固定 的时钟速率。异步桥(AVBUSP2P)240与内部CBASS 248和UART 239通 信。UART 239继而与外部CBASS 247通信。AVBUSP2P 240是允许对UART 239进行独立计时的桥。外部CBASS 247耦合到工业以太网外围装置_0(IEP0)241A和工业以太网外围装置_1(IEP1)241B。IEP0 241和IEP1 273各自包括 计时器、EDIO和WD(122)。IEP0 241A和IEP1 241B共同使两个时域管理 能够同时运行。相似于AP 237的计时器搜索IEPO的计时器,并且IIP2必须 在给定的频率(例如200兆赫兹)上操作,但是PRU可以与这些退耦。同样, 如有必要,AVBUSP2P 240、AVBUSP2P 242和AVBUSP2P 243是允许UART239、IEP0 241A和IEP1 241B在不同频率下操作的耦合器。
如图2B所示,在IEP0 241A和内部可配置总线阵列子系统(CBASS)248 之间通信地插入第二AVBUSP2P电路242。还在IEP1 241B和内部CBASS 248 之间通信地插入第三AVBUSP2P 243。子系统200还包括脉宽调制器(PWM) 244,该PWM 244可通信地插入内部CBASS 248和外部部件之间。
部件236、237、238、239、241A、241B和244各自连接到特定的SoC 导线。也就是说,它们各自与主机246的IO通信。
图2B还示出了子系统200可以包括自旋锁249、AUX_SPAD 250和 PRU_SPAD 275。自旋锁249是硬件机构,其提供子系统200的各个核心(例 如205、219)与主机246之间的同步。通常,自旋锁是一种锁,该锁引起试 图自动获取它的线程在环路(“自旋”)中简单地等待,同时反复检查该锁是 否可用。由于线程保持活动状态但不执行有用的任务,因此使用此锁是一种 繁忙的等待。一旦获得了自旋锁,通常将保持这些自旋锁,直到明确释放它 们为止,尽管在某些实施方式中,如果正在等待的线程(保持锁的线程)阻 塞或“进入睡眠”,则可以自动释放自旋锁。锁是同步机构,用于在存在多个 执行线程的环境中对访问资源强加限制。锁强加互斥并发控制策略。基于该 原理,自旋锁249为子系统200部件的操作提供了自动化。例如,自旋锁249 使子系统的核心(例如AUX_PRU_0 205)中的每个能够访问共享的数据结构, 诸如存储在SMEM 235中的数据结构,这确保了同时更新各个核心。各个核 心的访问由自旋锁249序列化。
如示例子系统200中所示,辅助暂存器(PRU SPAD)250和AUX SPAD 275各自保持三排30个32位寄存器。子系统200还包括过滤器数据库(FDB) 251(109),其包括两个8千字节的排和过滤器数据库控制电路。FDB 251是 AUX_PRU_0 205和PRU_0 219访问的宽边RAM。硬件引擎∑-Δ216(286) 和外围接口217(287)也可访问FDB 251。接收电路271(其包括一级接收 层(RX_L1)227(297)和二级接收层(RX_L2)272(257))也可以访问FDB 251。FDB 251相对于AUX_PRU_0 205和PRU_0 219读取和写入条目是宽边 RAM,但硬件也使用FDB 251提供通过端口253到达的分组的加速压缩视图。 硬件将使用散列机制查询FDB 251的存储器,并将结果与分组一起递送到 PRU_0 219。路由功能确定分组接下来到达何处。AUX_PRU_0 205和PRU_0 219经由FDB 251的宽边接口访问FDB 251以添加信息和删除信息。接收硬 件225(295)也可以访问FDB 251。
子系统200还可以包括通信接口225(295),诸如可以包括可以通信地耦 合到处理器205的有线通信部件和/或无线通信部件的网络通信电路。网络通 信电路225可以使用各种专有或标准化网络协议(诸如以太网、TCP/IP)(列 举许多协议中的几种)中的任一种以实现装置之间的通信。网络通信电路还 可以包括利用以太网、电力线通信Wi-Fi、蜂窝和/或其他通信方法的一个或多 个收发器。
如上所述,在本公开的示例中,以实时确定性的方式处理数据分组,这 与常规以太网或IEEE以太网处理不同,常规以太网或IEEE以太网处理定义 了更多的“尽力而为”业务系统,其中取决于给定网络的负载发生分组丢失。 尽管常规以太网管理对于许多应用(诸如视频流)是可接受的,但是在工业 设置中(例如,机器人装配线),已发送的数据分组(在理想条件下)将根据 预定调度准确地递送。在工业世界中,分组必须根据严格调度过来。当然, 分组丢失可能在工业环境中发生,但是在层中有不同的手段(高于本公开的 示例所属的0级、1级和2级)来关心分组丢失。
当在一级接收层(RX_L1)227和/或二级接收层(RX_L2)272(257) 从物理层(未示出)接收到分组时,分组分类器232(108)分析该分组,并 标识分组的哪一部分是内容(也称为“有效载荷”)。然后,分组分类器(也 称为“分组分类引擎”)232做出关于对该分组做什么的动态(on the fly)决 策。以太网桥225(295)做出关于(经由接收电路271和/或入口253)接收 到的每个分组的转发并接收决策。在常规IEEE以太网桥中,以“存储并转发 方式”执行此类转发并接收操作,其中在第一步中接收传入的数据分组,并 且一旦接收到数据分组,然后在第二步中检查内容。在常规IEEE以太网桥中, 一旦完全接收到分组并检查了内容,就做出第三步转发并接收确定。在做出 转发并接收确定之后,然后将数据分组提供给机械传输层(诸如,经由传输 元件226(296)。在本公开的至少一个示例中,以最小化等待时间和抖动的方 式使这些步骤合理化。在至少一个示例中,分类引擎232(260)被配置为以重叠的方式执行常规IEEE以太网桥的例程,由此到在271(272)接收到分 组已经完成的时间为止,分类引擎232(260)已经确定需要对分组做什么, 需要将分组发送到什么目的地以及通过什么路由。
在本公开的示例中,桥延迟是数据分组到达端口253和在另一端口276 上离开之间的时间量。在数据分组的进入与数据的外出之间的时间期间,如 上所述,子系统200做出切换决策(确定)并且然后执行传输功能。在标准 以太网IEEE世界中,切换功能是使用必须具有可变等待时间的存储并转发结 构执行的。在可变等待时间条件下,无法保证在零时间在传入端口253(104、 105)上接收到数据分组时,该数据分组将在固定(已知先验)时间在不同端 口(例如276、245)上离开。子系统200的至少一个好处是分类引擎232可 以知道如果在时间零接收到数据分组,则该分组将在预定的(确定性)时段 内通过另一个端口(例如245)发送出去。在至少一个示例中,该时段是一微 秒。在至少一个示例中,当部件(诸如片形件_0 201)具有如此短的切换时间 时,该部件被认为是实时部件,能够“实时”执行其分配的功能。在本公开 的示例中,实时计算(RTC)描述了经受例如从事件到系统响应的“实时约束” 的硬件和软件系统。例如,实时程序必须保证在指定的时间限制(也称为“最 后期限”)内做出响应。在本公开内的一些示例中,实时响应为毫秒量级。在 本公开内的一些示例中,实时响应为微秒量级。
本公开的示例涉及在实时系统中操作的通信桥。通信桥是实时控制系统, 其中以确定性的方式交换输入数据和输出数据。本公开的示例包括控制装置 (例如217(287)、244)和多个从装置(未示出)或实时消耗来自控制装置 217(287)、244的输入/输出数据的装置(未示出)。实时系统100、200具有 通信桥255实时能力。因此,转发分组的时间量是确定性的,具有最小的抖 动和等待时间。在至少一个示例中,通过硬件计时器(未示出)将抖动和等 待时间最小化(到几纳秒的范围),该硬件计时器定义了分组离开物理端口 253、252(255)的时间。子系统200的实时可操作性不同于标准以太网,在 标准以太网中,至少几十微秒的抖动是常见的。在此类常规系统中,做出转 发/路由确定所花费的时间量根据分组到达的时间、接收数据分组的速率以及 分组的内容而变化。在本公开的实时系统(例如200)中,循环执行切换功能。 例如,可以以每31微秒在子系统200中交换新数据。预定的交换速率(诸如 31微秒)用作时间参考。取决于分组进入(例如,经由端口253)的时间, 以确定的等待时间(在此示例中为31微秒)转发分组,或替代地根据存储并 转发方式处理数据分组,相似于上述针对常规系统的描述。因此,分组到达 时间可以是子系统200将如何处理给定数据分组的鉴别器。接收(RX)分类 器232在确定对传入分组做什么时考虑的另一个因素是通常与所讨论的分组 类型相关联的数据(传输)速率。例如,如果接收到的分组的平均数据速率 超过某个数据速率阈值,则系统可以丢弃(不重要的)数据分组,以帮助确 保有足够的带宽用于较高优先级的分组。在至少一个示例中,分类器232至 少部分地基于分组的有效载荷来确定给定数据分组的重要性。
在至少一个示例中,分类器232通过首先访问分组中的位置(诸如分组 的以太网介质访问控制(MAC)地址)来检查分组内容。装置的MAC地址 是分配给网络接口控制器(NIC)的唯一标识符,用于在网段的数据链路层进 行通信。MAC地址被用作用于大多数IEEE802网络技术的网络地址,包括 以太网、Wi-Fi和蓝牙。在至少一个示例中,在子系统200的介质访问控制协 议子层中使用MAC地址。根据本公开,MAC地址可识别为六组的由连字符、冒号或使用其他符号系统分隔的两个十六进制数字。
数据分组可以由过滤器106基于其指定的递送地址(未示出)进行过滤。 数据分组包括六字节的源和目的地地址。在至少一个示例中,接口电路225 (295)基于该信息来过滤(106)分组。例如,接口电路225(295)可以读 取分组的网络地址并确定是接受分组、转发分组还是丢弃分组。在至少一个 示例中,接受转发丢弃决策可以基于分组的MAC报头。在至少一个示例中, 在做出接受转发丢弃确定时,接口电路可以进一步进入到有效载荷的分组中, 并且基于有效载荷中的名称来做出过滤106确定。在SoC 200的一些实施方 式中,装置的名称被连接在有效载荷中,并且然后内容过滤器106查看有效 载荷。
在本公开的实施方式中,数据分组通常将包含多个数据报。数据报的这 种多重性要求将分组或其部分传到多个地址。换句话说,以太网分组中可以 有多个子分组。由于子分组可以各自具有其自己的地址,因此必须对地址进 行解析。在一个分组中有多个地址的情况下,并且子系统200将在每次检测 到子地址时重新开始解析。因此,接口电路225(295)将具有用于过滤器106 的可变起始偏移,以使接口电路225(295)能够将多个子分组放置在单个以 太网分组中。在至少一个示例中,这意味着从单个数据分组派生的子分组被 发送到不同的装置(例如,通过外围接口217(287));在本公开的示例中, 单个以太网分组可以包含子分组,子分组中的一个或多个旨在用于(寻址到) 不同的装置。除非另有指示,否则本公开的通信(分组交换)不是点对点通 信。本公开的通信基于主装置到从装置架构。在本公开的实施方式中,单个 主装置(例如,主机246)控制数十个、数百个或甚至数千个从装置。
由于主装置和从装置之间的这种不对称关系(1对N,其中N可以是非 常大的数字),并且要求实时通信,提供了包括进入过滤器硬件106的接口电 路225(295)。进入过滤器106(及其伴随的逻辑)与进入分类器232组合, 实现用于实时转发和处理的硬件决策。在本公开的示例中,为了进行关于分 组的转发并接收确定而必须读取的所有信息位于分组的前32个字节中。一旦 读取了其中的前32个字节,PRU_0 219可以查找报头和附加报头,这取决于 分组所遵循的协议。可以实时查找报头(诸如在过滤器数据库251中)。因此, 如上所述,一旦接口电路225(295)已经接收到分组的前32个字节,接口电 路225(295)就具有足够的信息来确定是否转发分组或者是否接收分组。应 当注意,所描述的32字节报头大小是示例报头大小。本公开的系统100、200 可以被配置为与具有其他报头大小的分组一起工作。
如上所述,(分组)接收处理是实时完成的。在本公开的实施方式中, AUX_PRU_0205、PRU_0 219和接口电路225(295)是可编程的,并且被配 置为使得所有分组处理都是完全确定性的。在接口电路225(295)中以64千 兆位/秒的速度接收32个字节的报头信息,这使得接口电路225(295)能够 向前发送32个字节的信息或接收32个字节的信息。在可以移动过滤器106 以过滤分组的特定部分的范围内,本公开的过滤器106非常灵活。如果存在多个子分组,则可以根据需要由接口电路225(295)重新加载过滤器106。 另外,接口电路225(295)可以应用掩码以设置分组的范围或分组和/或子分 组中的地址。通过使用大于和小于操作对分组进行群集,接口电路225(295) 可以例如确定当分组具有从15到29的地址号时,该分组将被接收。在一些 示例中,可以应用二进制掩码,使得转发具有以偶数(如8-7)开始的地址的 子分组,不转发具有以奇数开始的地址的子分组(至少不是立即)。因此,具 有用于子分组地址分类的大于/小于操作可能是有利的。在一些示例中,可以 将不同的过滤器(诸如106和107)与其他部件(诸如MAC 206(266)、220 (290))操作地组合,以通过分组的MAC地址进一步处理分组。
如上所述,可以将多个过滤器组合用于接口电路225(295),以做出切换 确定。也可以应用附加逻辑。例如,分类器232可以对分组进行分类,并且 应用与分类相关的逻辑,如“对于分组类型A,如果条件1、2和3为真,则 将接收该分组。”作为另一示例,如果分组被分类为类型B,则如果条件1为 真并且条件2为假,则该分组将被丢弃。子系统200可以被配置为使得条件 还可以包括其中接收到分组的时间窗口。例如,接口电路225(295)可以确定在某个时间点,接口电路225(295)将仅允许转发非常重要(较高优先级) 的输入/输出数据。接口电路225(295)可以被配置为使得在指定时段期间(例 如,在发生预定事件之后),将应用一组过滤器组合,而在其他时间期间,可 以允许所有类型的数据业务。这种所描述的可编程性在工业设置中是有利的, 因为工业通信基于硬时间窗口进行操作(例如,与电话会议相反)。
在本公开的示例中,可以将多个硬件过滤器与速率过滤器107组合,使 得也可以根据速率对数据分组进行分类。所使用的过滤器106、107和硬件220 (290)操作可以累积地执行。可以使用内容、时间和速率的任何组合来过滤 分组——全部实时。给定的过滤器106可以为分组多次重启。过滤器106可 以具有起始地址,该起始地址的值至少部分地基于给定分组/子分组的内容和/ 或内容的类型来确定。
在本公开的至少一个示例中,接口电路225(295)被配置为自动检测分 组是否包含虚拟局域网(VLAN)标签。一些以太网分组在分组中间或尾随 MAC地址处具有标签字节的标签。可能发生的是,如果将过滤器应用于尾随 MAC地址的数据,则MAC地址将被不期望地移位四个字节。本公开的示例 接口电路225(295)通过自动检测分组是否具有VLAN标签,并且如果分组 确实包含VLAN标签,则使用VLAN标签的位置作为起始地址来重启相关过 滤器106来解决该问题。此后,接口电路225(295)做出确定,诸如是否使 用组合逻辑来接收或丢弃分组,该组合逻辑可以涉及AND、OR和过滤器标 志的任何适当的组合。在本公开的一个或多个示例中,速率计数器107(其可 以是硬件速率计数器)根据所讨论的业务的类型和针对分组的类型的预定时 间窗口来确定速率。因此,对于高优先级分组可以有一定的时间,并且对于 非实时分组可以有不同的时间,并且可以根据情况应用不同的过滤器。在一 些示例中,在接收时间(运行中)处理期间产生立即结果的过滤器106将转 发所讨论的分组,而与该分组的长度无关。该操作能力与常规以太网形成了 鲜明的对比,在常规以太网中,首先接收分组,查询一个或多个查找表,并 然后最终做出切换决策。在本公开的一些示例中,分组大小是预定的,并且 通信以每个分组的固定速率发生。在其他示例中,关于分组长度的信息被包 含在分组的报头内。在任一种情况下,分组长度都是硬实时动态确定的。
本公开中描述的架构的至少一个技术益处在于,即使对于长度达十二微 秒的分组,它们也使得能够在单个微秒内完成切换/转发确定。基于时间和数 据速率的接口电路225(295)的组合逻辑使得分类引擎232能够以稳健的方 式执行。子系统200重新启动过滤器106以在分组中多次应用过滤器106的 能力增强了子系统200实时做出分组切换决策的能力。在示例实施方式中, 过滤器106的长度受到限制。如果分组比过滤器更长,则将需要重新加载过 滤器106。如果包含子分组的以太网分组,则过滤器106可以与单个分组一起重新用于多个位置。在一些示例中,子分组将各自具有其自己的地址。例如, 如果分组包含三个子分组,则可以将地址过滤器106加载三次,以将相同的 地址过滤器106应用于每个子分组。PRU_0 219经由接口252(255)将数据 写入TX_L2中,并且然后数据沿着通信路径253离开片形件_0 201。所描述 的实时处理支持以下描述的资源可用性和分配管理。
本公开的示例涉及用于向多核通信的实时任务管理器(例如,任务管理 器电路223)的资源可用性事件消息传递。本公开的至少一个实施方式是一种 系统,该系统有效地管理用于工业通信的多核处理系统中的多个实时任务之 间的资源共享。在至少示例中,子系统(例如,子系统200)使通常与资源共 享相关联的停顿周期最小化,诸如当资源当前不可用时,需要执行的任务的 相关联的硬件终结于轮询资源可用性并浪费了PRU周期。在本公开的示例中, 此类PRU周期可以用于其他实时任务,并且当资源变得可用时,可以恢复被抢占的任务。因此,减少了等待时间。
在至少一个示例中,实时地将硬件部件需要执行的任务挂起到用于64个 自旋锁标志的不可用资源上。当资源变得可用时,与任务管理器(例如,任 务管理器电路209)对应的事件被路由到任务管理器,然后该任务管理器对该 事件进行操作并取决于等待资源的任务相对于其他任务的优先级触发等待资 源的任务。可以使用自旋锁249标志在同一不可用资源上挂起多个任务。在 本公开的示例中,关键任务在资源可用性上立即执行,并且消除了停顿周期, 因此充分使用了PRU周期。
本公开的至少一个示例在具有多个PRU的系统(例如200)中使用PRU 的BS指令。在至少一个示例中,具有中断分配器的实时任务管理器(例如, 任务管理器电路209)提供低等待时间任务切换。使多个任务能够针对同一资 源挂起以及在资源可用性上具有等待时间任务切换的能力使常规系统中将存 在的停顿周期最小化。
本公开的示例的至少一个技术益处在于,这些示例使高速工业以太网和 类似的PRU固件能够通过避免当计算资源当前不可用于一个或多个电路(因 为该计算资源当前被一个或多个其他电路使用)时避免停顿来节省PRU周期。 本公开的示例包括硬件支持,使PRU(例如205)固件能够避免轮询资源可 用性,这是不确定的。增强的系统确定性使切换千兆位以太网分组具有固定 的等待时间和最小抖动。因此,本公开的示例优化了用于多核处理系统(例 如,子系统200)中的资源共享的PRU周期使用。在至少一个示例中,使用 64个自旋锁标志来避免停顿周期,该停顿周期将用于连续轮询常规系统中的 资源可用性。在各种示例中,第一硬件部件(例如,PRU 205)的固件将仅检 查一次任务的资源可用性,并且然后执行将作为用于另一硬件部件(例如, PRU_0 219)的另一任务产生的期望资源的使用。当资源由等待的硬件部件(例 如,PRU 205)空闲时,将由实时任务管理器(例如,任务管理器电路209) 重新触发挂起的任务。
本公开的示例涉及PRU任务管理器(例如,任务管理器电路112)与自 旋锁电路(例如,249)的互操作性,以管理对共享资源的访问(一般参见图 2B)。在大多数情况下,此类任务管理器(例如209)将实时操作。在各种示 例中,为了能够以千兆位以太网速度操作,任务管理器(例如223)的FW利 用寄存器。为了适应不同的任务,诸如涉及分组切换的任务(例如,分组接 收、传输和后台任务,如源地址学习),任务管理器被配置为需要在机制之间 进行切换。与自旋锁电路249一起使用,任务管理器电路(例如223)将抢占 当前PRU执行/任务,保存密钥寄存器并在硬件事件触发新任务后十纳秒内起 动优先级高于当前任务的新任务。在一个或多个实施例中,由于任务管理器 将被配置为响应不同的硬件事件并且可以对任务进行不同的优先级排序,因 此固件映射多个(诸如64或70个)硬件事件中的哪个应引起任务互换发生, 这实现对于给定任务管理器(代表任务管理器的相应PRU)而言最佳的紧密 实时任务互换。连接150、152、154、156、158、160、162、164、252和255 是宽边连接。连接150、152、154、156、158、160、162、164、252和255 各自包括至少一个宽边接口。这些宽边接口使得32个字节的存储器能够在单 个时钟周期内跨接口传递。
图3示出了根据本公开的示例的描述分组分类引擎306(108、232、232') 的逻辑300的框图。在图3中,代表性数据分组305与接口电路(225)的分 组分类引擎306(108、232、232')交互。在FIFO 301处接收分组305(其在 正常操作条件下将是分组流中的一个分组)。根据端口状态307、时间、某些 地址规则308、速率限制309,产生了不同的输出310、311、312、313、318 和320。例如,分组305可以被接收310或存储并转发311。分组分类引擎306 可以确定在等待时段之后,诸如当端口(225)在另一侧(118、119)上繁忙 时,应该转发312分组305。替代地,分类器306可以立即将分组305发送 313到另一侧(118、119),这可以涉及称为直通313的网络管理操作。在直 通操作中,分组由PRU 317(219)直接处理。替代地,分类器306可以确定 诸如当分组305没有被寻址到FIFO 301所耦合的任何地址时,应该丢弃分组 305。
如上所述,当接收到分组305时,将对其进行检查和/或将其与不同规则 (例如308)进行比较。其他端口状态302是指特定的以太网端口(225)或 以太网接口(225')是处于打开状态还是处于关闭状态。如果输入302的值为 “真”或“1”,则可以意味着以太网端口或以太网接口连接到外部信号源。 如果输入302的值为“假”或“0”,则可以对应于以太网端口或以太网接口 未连接到外部信号源的指示。替代地,输入302处的值可以是用于分类引擎 306(108、232)进入状态的分类引擎306的指示符,在该状态中,诸如出于 安全原因,分类引擎306仅允许某种类型的票证。例如,如果当分类引擎306 处于安全配置中时外部源想要与该装置(200)对话,则分类引擎306将仅在 分类引擎认为第一分组305是包含正确身份验证信息的安全分组的情况下接 受来自该源的数据流。在该情况下,输入302处的值将被切换为“高”或“真”, 并且作为结果,接收器电路225将被切换为正常操作。存在不同的端口状态 302-304、307,这可以是分组分类306期间的因素。例如,如果在接口电路 225设置为安全时接口电路225接收到非安全分组,则分类器(232)将丢弃 非安全分组,如项目320所示。如上所述,图3示出了分组分类306也由多 种规则驱动,诸如进入虚拟局域网标识(标识符)(VLAN ID)规则308。ID 可以是标签、编号、地址或一组地址。
项目303是保留开放的端口调度器。只有在转发端口/其他端口打开且未 被分组阻塞的情况下,才能以直通方式进行转发决策。在即将到来的边界(诸 如红色和绿色通信阶段)的情况下,其他端口调度器也可以阻塞来自当前端 口的分组。例如,如果在第一端口(例如,RX_L1 227A)处接收到分组305, 但是该分组应该已经去往不同的端口(例如,RX_L1227A),则输入303处 的值将为“高”。在本公开内,接口电路(225)总是具有至少两个物理端口。 在端口1上进行给予和接收,并且假设分组是否应该在端口2上进行,这就 是它们在项目3其他端口调度器中所说的。为了使接口电路(225)将错误定 向的分组转发到另一个(正确的)端口,分类引擎(232)必须确定另一个(正 确的)端口是否具有可用的端口或者该(正确的)端口是否关闭。如果另一 个端口是打开的,则分类器(232)可以执行直通213。在本公开的示例中, 当接收到分组305时,一旦分组305被完全加载,分类器(232)就可以检查 分组的长度。分组305被转发到可以执行循环冗余校验(CRC)221的PRU (219)。然后,PRU将检查CRC 221。CRC确定是否应当接收310分组305。 然后,PRU(219)做出关于是否应该存储并转发311该分组的决策。上述操 作可以称为存储并转发操作311。
在至少一个示例中,分类器(232)查看传入分组305的第一字节,以查 看分组305是否需要转发或接收310或两者。分类器(232)查找报头。在分 类器(232)已经查找报头之后,即使分组305没有被完全接收,转发分组305 的过程也是如此。尚未完全接收到分组305的事实意味着尚未接收到分组305 的末端并且尚未对其进行检查。即使分类器(232)尚未看到分组的末端,即 使分组305的长度还未知,并且即使尚未执行CRC 221检查,转发过程也可 以开始。基于数据的第一字节转发分组的上述过程称为直通操作313。在本公 开的一个或多个示例中,直通313被实时执行。
继续图3所示的分类架构300,项目304意味着已将接收到的分组305分 类为冗余分组305。在至少一个示例中,如果存在网络并且存在可以通过其发 送分组305的两个端口,则可以使用任何可用的一侧(端口)来发送分组305。 在那种情况下,接收该冗余分组的电路将拾取第一(接收31)第一分组305, 并丢弃320第二分组。
在图3中,项目307是端口状态。不同的端口状态307是可能的。一种 此类端口状态307是快速生成树协议(RSTP),这将意味着根据RSTP格式化 接收到的分组305。快速生成树协议(RSTP)可以基于以太网地址信息来阻 塞传入的分组。分组305的协议定义了该分组通过网络(200)的路径。有时, 如果为给定分组305指示的路径不正确,则分组305将被丢弃320。另一方面, 如果为给定分组305定义了路径,则该分组将被处理并接收310或转发311到RTU 315。项目308指的是进入虚拟LAN标识符规则。在至少一个示例中, 可以定义网络中的区域。例如,可以有十台计算机可用,然而期望将十台计 算机中的三台分组为一个子网。子网将被分配VLAN ID。当分组305不带有 该VLAN ID(不符合VLAN ID规则308)时,可以丢弃320该分组305。
图3中的项目309是进入速率限制器。可以关于可以处理的速率限制特 定类型的分组(如特定报头)。进入速率限制器309有助于确保通过处理更少 的分组305来不阻塞更重要的分组305的处理。进入速率限制器309对分组 305的报头进行计数,将报头识别为某种类型,并然后限制将在端口(253) 处接收的那种类型的分组305的数量达确定的时段。因此,进入速率限制器 309将防止在给定的时间帧内接收到给定类型的多个分组。在至少一个示例 中,进入速率限制器所排除的多余分组305将被丢弃320。
在至少一个示例中,分组分类306的输出决策是接收310分组305并将 分组305发送(例如,经由接口252)到RTU 314。在至少一个示例中,分组 305通过RTU 314块接收310。如上所述,RTU 314、315是ICS(200)的处 理器。RTU也可以称为PRU(219)和AUX_PRU(205)。应该注意的是,虽 然RX_L1和RX_L2(参见图1中的105和图2A中的227)是输入端口,接 收器电路225通过这些输入端口接收分组305,但RX_L2 227B也可以是RX 分类器块232的过滤器。
返回图3的讨论,可以将接收到的分组305接收310到RTU 314进行处 理。项目311是指将分组305存储并转发311到RTU 315。存储并转发311 是指完全接收310到分组305,并然后将其放入缓冲器(未示出)中。此后, 分组305从缓冲器(未示出)转发到另一端口(例如,TX_L1 226A)。项目 312是由分组分类306引起的可能的决策。过程312是混合过程。例如,接收 器电路(225)可以接收到1,500字节的分组(其是大的以太网分组)。当执行 存储并转发操作311时,在可以处理该分组之前以及在可以做出转发该分组 的决策之前,接口电路232将需要等待1,500字节在大小上是正确并且具有正 确的校验和222(意味着接收时间是可变的)。另一方面,在已经接收到足够 的信息以能够在接收分组的同时转发该分组之后,在固定时间317执行直通 313。在直通313中,在分组305的后端仍进入(253)的同时发送分组305 的前端。相反,在等待并转发模式312中,如果必要的端口繁忙,则将以其 他方式以直通模式处理的1,500字节的分组将替代地被完全接收,并且然后通 过可用端口转发。
图3中的项目318意味着接口电路(225)已经进行终止分组305的决策, 这意味着分组305在PRU 319(219)内部被处理。此类分组305可以被称为 网络管理分组。例如,携带PRU 319的时间同步指令的分组将由PRU执行但 不发送至主机CPU(262),并且不转发至另一端口(例如,TX_L1)。块319 涉及以下事实:终止的分组包含由PRU(219)作为网络管理的一部分处理的 PRU代码。如图所示,图3的左侧是定义一些状态的系列,定义了如不同的 转发接收或丢弃分组之类的特征,并且图4是提供左侧上的能力的一种实现 硬件块可配置硬件。因此,图4上的项目3是正在到来的分组,该分组是图3 上的项目5。
图4示出了根据示例FIFO 400(105、227B)的分组分类引擎402的实施 方式的框图。图4提供了分类引擎的硬件401的简化视图,如详细讨论的那 样,其包括过滤器404。图4示出了被配置为提供关于图3讨论的操作能力的 硬件块的示例实施方式。
在图4的示例实施方式中,分组403(305)经由RX_L2过滤器404进入 RX分类器402(232)。(如上所述,RX_L2既是接收器又是过滤器。)RX_L2 过滤器404可以在过滤数据库(251)中查找分组403的类型。RX_L2过滤器 404可以进入分组403内的任何位置,而不必从分组403的第一个字节开始读 取。在一些示例中,RX_L2过滤器404也可以去往分组403的末端并将分组 403与从主机CPU 262预存储在该RX_L2过滤器404中的固定数据模式进行 比较。
在ICSS 200的一些实施方式中,每个片形件(201、261)有二十四个RX_L2 过滤器404。片形件(参见图2A)是ICSS 200的侧部分,其与同一ICSS 200 的另一侧部分(参见图2C)共享部件(参见图2B)。片形件(201)描述了一 个双向部件,通过该部件ICSS 200在第一端口(253)上通信。片形件(201) 包括能够接收数据的可编程逻辑单元(PLU)。PLU 225在另一个端口(例如 TX_L2)上传输。因此,沿着一个路径的接收-传输通信(RXT)被称为一个 片形件,并且同时在PRU 225处在另一个方向253'上存在通信。PRU 225是 片形件0的以太网端口(参见图2A)。与常规SoC不同,在本公开的至少一 个示例中,一个以太网端口(例如225)可以使用以太网协议与远方装置进行 交互,而同时使用另一个以太网端口(例如225')控制一个或多个从装置。 在至少一个替代示例中,一个以太网端口(例如225)可以使用以太网协议与 远方装置进行交互,而另一个以太网端口(例如225')以菊花链方式连接到 另一个ICSS的第一片形件。在菊花链布置的至少一种实施方式中,在PRU 225 和PRU225'之间插入多路复用器(未示出),使得经由路径253进入片形件0 201的一些数据在经由路径253'离开片形件1 261之前经过多路复用器(未示 出)。
以太网数据403(305)传到过滤器404(106)。当数据通过FIFO 400时, 将实时应用过滤器(例如404)。分组(305)然后去往业务类别选择器408, 其基于应用于分组403的过滤器404的组合来确定分组403是什么类型的业 务。另外,FIFO 100可以将速率限制应用于分组403,这取决于类别选择器 408确定的类型。在至少一个示例中,类别选择器408可以被配置为取决于各 种因素(诸如分组403何时到达)从不同的分类组中进行选择。例如,如果 在关键时刻接收到分组,则可以从可能的分类1至8中提取所应用的分类。 替代地,如果在非关键时刻接收到分组,诸如当系统200未实时操作时,则 选择器408可以从分类9至16提取。
如前所述,在图4中,分组(305)在RX_L2过滤器404处进入403分 类引擎402(232)。另外,如前所述,RX_L2过滤器404包含二十四个硬件 过滤器,它们检查分组305并重新启动,其中过滤器与传入分组的比较是匹 配或不匹配。例如,第一分类级别可以包括通过将传入分组305与RX_L2过 滤器进行比较来识别第三分组类型。上述分类方法是通过数据比较对内容进 行分类,其可以与确定属于虚拟LAN ID的分组一样简单。替代地,RX_L2 可以确定虽然给定的分组(305)具有正确匹配的地址,但仍可以基于分组的 内容对该分组进行过滤。
当分组(305)已经经过过滤器404时,该分组被转发到FDB 409。FDB 409 在查找表(LUT)中执行查找。FDB 409可以是文件传递协议(FTP)过滤的 数据库。FDB可以咨询LUT并查看以太网分组的前14个字节,其包括分组 的MAC(介质访问控制)字段和分组的VLAN字段。咨询这两个字段提供更 广泛地查看分组。MAC和VLAN被接收或转发422。过滤器404和FDB 409 之间的一个区别是各自可以进行的比较操作的数量。在过滤器404中,最多 可以有24个过滤器,而FDB可以存储数千个地址,必须使用到最多8个条 目的储存区中的基于散列的索引查找将该地址与接收到的分组进行比较。
在分组清除过滤器404之后,除了去往FDB 409之外,该分组还与业务 类别选择器408和速率计数器418并行。业务类别选择器408根据其类型对 分组进行分类。一旦业务类别选择器408已经识别出某种分组类型,就可以 将该分组的类型与某种数据速率相关联。业务类别选择器408确定分组的类 型是否超过数据速率阈值,例如对于千兆位网络,该阈值可以是200兆位。 如果一个千兆位是特定类型的分组,则如果分组403超过速率限制,则RX分 类器402可以丢弃该分组403。业务类别选择器408按数据速率对数据403进 行分类。业务类别选择器408的输出与RX_L2 404的输出并行地发送到速率 计数器418。RX_L2 404的输出和业务类别选择器408的输出涉及同一分组 403。在至少一个示例中,业务类别选择器408和RX_L2过滤器404被组合。
在至少一个示例中,RX_L2过滤器404中的二十四个过滤器中的一个对 作为以太网装置的目的地地址的分组403的前6个字节进行过滤。RX_L2过 滤器404中的另一个过滤器可以指示分组403具有某一协议。例如,分组403 可以是IP分组,并且分类器403可以插入过滤器,该过滤器指示分组403具 有VLAN ID。为了进行上述组合,分类器402需要具有分组403的MAC地 址,并且分类器需要能够识别分组403必须具有哪个VLAN ID,以便将分组 403识别为IP分组。可以利用所描述的三个条件来对业务类别选择器408进 行编程。如果业务类别选择器408确定这三个(示例)条件为真,则类别选 择器408将分组403与满足相同三个条件的另一个分组聚集。替代地,业务 类别选择器408可以给分组一个业务类别417。在这种情况下,输出117将指 示三个条件匹配,并且分组403是分类器402可确定的可能的十六种类型417 中的一种。如图4所示,业务分类424可以进入速率计数器418中。在所描 述的示例中,速率计数器418仅针对满足由RX_L2过滤器404和业务类别选 择器408施加的三个标准的那些分组403对数据速率进行计数。MAC地址、 VLAN ID和IP分组类型仅说明该类型的速率。408业务类别选择器通过分组 内容(诸如MAC地址、VLAN ID或IP地址)进行选择。内容分类分组可以 与用于这种分类分组的速率计数器组合。(参见408、418)。相反,如果在RX_L2 过滤器404处仅应用一个过滤器,并且分组403直接进入速率计数器418中, 则速率计数器408将仅对RX_L2过滤器404确定的分组403的一种分类的速 率进行计数。因此,分类器402可以经由单个过滤器具有单个分类,或者分 类器402可以组合多个过滤器并在业务类别选择器408处执行业务类别选择 功能。
分类器402的一个可能的输出是过滤器标志输出416。如图所示,存在来 自八个硬件预定义过滤器(未示出)和RX_L2过滤器404的二十四个可编程 过滤器的多达32个过滤器标志。标志416指示分组403是某种分组类型,诸 如单播分组或多播分组,其由报头中的单个位标识。例如,单播分组将去往 一个地址,而多播分组将去往ICSS 200所在网络中的所有装置,这就是为什 么有32个过滤器标志的原因。输出417对应于业务类别。分类器402选择不 同的过滤器设置并将其组合,并且然后在417处输出分类。输出421来自速 率计数器418。速率计数器可以被配置为对具有由RX_L2过滤器404和业务 类别选择器408确定的分类的分组进行速率计数。取决于为所讨论的分组403 选择的业务类别来测量和限制该速率。输出422对应于过滤器数据库409在 更宽的查找表中的查找结果,该查找表存储了数千个存储的地址。如上所述, FDB 409将传入分组403与大查找表(LUT)进行比较,大查找表包含关于转 发-接收的偏移分组的信息。
如图4所示,分类器402输出416、417、421和422进入PLU(219)。 PLU(219)读入这些分类器(232)输出(416、417、421和422),并就是否 将403(305)分组丢弃、接收、转发、置于直通模式或进入以转发模式存储 到另一端口253'(参见图2C)做出最终决策。统计块407跟踪诸如在一定时 段内已经接收了多少字节、已经接收到多少分组403、已经接收到多少特定大 小的分组以及在传入分组403中检测到多少错误之类的统计。
图5示出了根据本公开的示例的输出调度模块500的各方面。图5示出 了片形件0(201)和/或片形件1(261)的通信阶段。阶段504是其中以直通 模式处理分组(305、403)的阶段。在阶段504结束时,有时间506,此时片 形件0(201)切换到绿色阶段507时,在此期间,可以以直通模式或存储并 转发模式来处理分组,如图所示。在时间509处,片形件0进入黄色阶段510, 在此期间,所有接收到的分组以存储并转发(S&F)模式进行处理。在时段 502和时段511中,片形件0(201)不发送任何分组,因为片形件0(201) 必须参与调度操作。在时段502和511中进行调度期间,分类器(232)不处 理任何分组。根据时间(阶段),不同地处理分组。尽管图5主要示出了直通 处理和存储并转发处理,但是其他过程也包括在本公开内。分组分类器(232、 402)将一些类型的分组置于一个阶段(例如504、516)中,并且将其他类型 的分组置于不同的阶段(诸如508、521)中。图5示出了ICSS(200)的属 性的示例,其中被分类为更重要的分组在周期501A、501B中比不重要的分组 (507、520)更早地被处理(504、516)。
图5示出了调度模块500的执行周期内的关键时段504和非关键时段507 (例如,根据接口电路225)。在本公开的至少一个示例中,典型的最小周期 时间是31.2微秒。在调度器500可以进入新的红色阶段516(调度器在该红 色阶段516中照管关键分组)之前,调度器500为从非关键时段507到下一 关键时段516的过渡进行准备511。在工业实施方式中,重要的是关键分组根 据一组命令(规则)进行处理,并且非关键分组则根据另一组进行处理。例如,如果非关键分组被授予直通504(313)特权而关键分组被延迟(312), 则这将是有害的。因此,时间503、506、514、518是分组分类中的因素(306)。 定时驱动该阶段是红色阶段504、516还是绿色阶段507、520,并且根据该阶 段应用不同类型的分类方案。
为了使分类器(323、402)确定何时发送分组以及采用哪种切换方法, 分类器必须查找分组的内容。分组分类器对分组进行分类,并且基于分类, 分组分类器(323、402)分别在绿色阶段或红色阶段507、520期间保存分组 或以直通模式504、516转发分组(305)。在绿色阶段507、521的结束509、 530处,如果需要发送分组,则对于ICSS(200)而言,必须完全接收到该分 组以确定该分组是否适合于黄色窗口510、529。如果分组不适合黄色窗口510、520,则在通信周期(例如,从时间T0 503到时间Tcycle的周期501A)期间 不发送该分组。相反,将在下一个通信周期中发送该分组,该通信周期从(例 如,周期501B、时间T0 514到时间Tcycle)开始。发送分组的该模式500以 每个T周期重复。在本公开的至少一个示例中,每个周期501A、501B为一 毫秒长。对于速率触发的发送508、521和尽力而为发送508、512,必须由分 类器(322)做出实时确定。
存在与图5所示的阶段501A、501B相关联的开销。例如,如果分类器以 32位模式操作,则将存在回绕,并且接口电路225将需要重新计算新的调度 时间,因为在32位模式下可用的相对时间可用,而当接口电路225在64位 模式下运行时,没有回绕。必须重新计算在外出端口上发送分组的时间。在 IEP的32位模式下,每隔几秒钟就会有计时器回绕。在64位模式下,没有计 时器回绕。如果没有回绕,则没有调度开销502、504,因为当接口电路225 以64位模式操作时,调度操作是不必要的。周期501A是在相对时间(32位 模式)下操作的接口电路225的示例周期,其中存在回绕(502、511),在该 回绕期间重新计算定时。因为每次在阶段504期间发送505触发的分组(具 有指定发送时间的分组),所以重新计算定时。周期501B是接口电路225在 非相对时间(64位模式)下操作的示例周期。图5的输出调度器500由图2A 的PLU 219和图2B的IEP计时器零(IEP0)241设置。在发送分组时,在PRU 219进入红色阶段(关键阶段)504、516时以及在PRU 219进入绿色阶段(非 关键阶段)507、520时,IEP0生成事件。
图6示出了根据本公开的示例的分组分类引擎601的操作流程图600。在 图6中,红色时间信息604和绿色时间信息被示出进入分类硬件601(322、 402)中,分类硬件601(322、402)生成与为分组(305)确定的分类对应的 分类输出621(参见图4的417)。块609对应于图4的业务类别选择器408。 输入602表示关于时间的信息,指示分类器601处于绿色阶段。输入602来 自IEP计时器,诸如IEP0 241。取决于输入602的值,分类硬件601将处于 通信周期(501A、501B)的绿色阶段602或红色阶段604。输入617是来自 RX_L2过滤器(404)的输出(415)。在块618处,分类器601可以执行对来 自RX_L2(404)的信息617的缩减。
如图6所示,分类引擎601可以为分组(305)创建不同条件的组合。分 类引擎601然后可以将不同条件的该组合与对应于十六个业务分类620中的 一个的输出信号623相关联。RX_L2(404)基于RX_L2(404)的内容给出 输出617。如图所示,此输出项诸如“FT1匹配”(过滤器类型1匹配),它从 以太网分组的前12个字节导出并确定分组是否与RX_L2(404)的设置[7: 0]中的任一个匹配。如果分组(305)匹配,则分类器601将对分组进行分类 ——最多可以有十六个分类[15:0]。除了查看分组的内容外,分类引擎还可 以“RX允许”610分组。RX允许信号610来自速率计数器(418)。项目620 定义分组的某些业务和某些内容。将内容与作为RX允许610的该特定分组的 数据速率组合。因此,分类器610的输出622是内容和数据速率的组合609。 与门609的输入来自或门607、或门614以及或门616。信号608对应于关于 分组(305)的时间信息。来自门609的输出621可以包括接收分组的时间、 接收分组的速率以及分组的基于内容的分类。
原始RX分类器624不接收622的数据速率和时间的组合。原始RX分类 器624仅从块618接收原始数据分类632。而RX类别输出622是数据分类加 数据速率加时间。输出信号621对应于图4的信号417,然而,输出信号621 还涵盖速率限制421(图6中未示出)。输入信号602是基于时间的分类。输 入信号610对应于来自图4中的速率计数器418的速率限制421。输入信号615和输入信号617表示基于内容的分类。
尽管在整个以上公开中主要使用SoC作为芯片的示例类型,但是应当理 解,本文所述的技术可以应用于设计其他类型的IC芯片。例如,此类IC芯 片可包括基于x86、RISC或其他架构的通用或专用(ASIC)处理器、现场可 编程门阵列(FPGA)、图形处理器(GPU)、数字信号处理器(DSP)、片上系 统(SoC)处理器、微控制器和/或相关芯片组。仅作为示例,IC芯片可以是 可从德克萨斯州达拉斯(Dallas)的德州仪器公司(Texas Instruments Inc.)获得的数字信号处理器、嵌入式处理器,SoC或微控制器的型号。
在整个说明书和权利要求书中已经使用了某些术语来指称特定的系统部 件。本领域技术人员会认识到,不同的部分可能通过不同的名称来指代部件。 本文档不意图在名称不同但功能相同的部件之间加以区分。在本公开和权利 要求书中,术语包括“包括”和“包含”以开放形式使用,并且因此应解释 为意味着“包括但不限于...”。而且,术语“耦合”或“耦接”意图意味着间 接或直接的有限或无线连接。因此,如果第一装置耦合到第二装置,则该连 接可以通过直接连接或通过经由其他装置和连接的间接连接。叙述“基于” 意图意味着“至少部分地基于”。因此,如果X基于Y,则X可以是Y和任 何数量的其他因素的函数。
上面的讨论意在说明本公开的原理和各种实施方式。一旦完全认识上述 公开内容,许多变化和修改对于本领域技术人员是显而易见的。意图所附权 利要求解释为涵盖所有此类变化和修改。

Claims (20)

1.一种高速通信装置,包括:
网络通信接口;
存储器;以及
一个或多个处理单元,其可通信地耦合到所述存储器和所述网络通信接口,其中所述存储器存储被配置为使所述一个或多个处理单元执行以下操作的指令:
使用所述网络通信接口接收数据分组;
至少部分地基于多个因素确定所述数据分组的分类,其中所述多个因素包括接收所述数据分组的速率和接收所述数据分组的时间;
至少部分地基于所述分类,从多个操作中选择操作,其中所述多个操作包括直通操作和存储并转发操作;以及
执行所选的操作。
2.根据权利要求1所述的高速通信装置,其中所述多个因素还包括所述数据分组的地址。
3.根据权利要求1所述的高速通信装置,其中所述多个因素还包括接收所述数据分组的所述速率是否低于预定阈值。
4.根据权利要求1所述的高速通信装置,其中所述多个因素还包括接收所述数据分组的所述速率是否超过预定阈值。
5.根据权利要求1所述的高速通信装置,其中所述多个操作还包括等待并转发操作。
6.根据权利要求5所述的高速通信装置,其中所述多个操作还包括终止操作。
7.根据权利要求6所述的高速通信装置,其中所述多个操作还包括接收操作和丢弃分组操作。
8.根据权利要求1所述的高速通信装置,其中所述高速通信装置是片上系统的集成电路部件。
9.一种非暂时性计算机可读存储器,其存储由处理器可执行的指令,所述指令包括进行以下操作的指令:
使用网络通信接口接收数据分组;
至少部分地基于多个因素确定所述数据分组的分类,其中所述多个因素包括接收所述数据分组的速率和接收所述数据分组的时间;
至少部分地基于所述分类,从多个操作中选择操作,其中所述多个操作包括直通操作和存储并转发操作;以及
执行所选的操作。
10.根据权利要求9所述的非暂时性计算机可读存储器,其中所述多个因素还包括所述数据分组的有效载荷。
11.根据权利要求9所述的非暂时性计算机可读存储器,其中所述多个因素还包括接收所述数据分组的所述速率是否低于预定阈值。
12.根据权利要求9所述的非暂时性计算机可读存储器,其中所述多个因素还包括接收所述数据分组的所述速率是否超过预定阈值。
13.根据权利要求9所述的非暂时性计算机可读存储器,其中所述多个操作还包括等待并转发操作。
14.根据权利要求13所述的非暂时性计算机可读存储器,其中所述多个操作还包括终止操作。
15.根据权利要求14所述的非暂时性计算机可读存储器,其中所述多个操作还包括接收操作和丢弃分组操作。
16.根据权利要求9所述的非暂时性计算机可读存储器,其中非暂时性计算机可读存储器是片上系统的集成电路的部件。
17.一种处理器实现的方法,包括:
使用网络通信接口接收数据分组;
至少部分地基于多个因素确定所述数据分组的分类,其中所述多个因素包括接收所述数据分组的速率和接收所述数据分组的时间;
至少部分地基于所述分类,从多个操作中选择操作,其中所述多个操作包括直通操作和存储并转发操作;以及
执行所选的操作。
18.根据权利要求17所述的处理器实现的方法,其中所述多个因素还包括所述数据分组的报头信息。
19.根据权利要求17所述的处理器实现的方法,其中所述多个因素还包括接收所述数据分组的所述速率是否低于预定阈值。
20.根据权利要求17所述的处理器实现的方法,其中所述多个因素还包括接收所述数据分组的所述速率是否超过预定阈值。
CN201911362935.3A 2018-12-29 2019-12-26 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类 Pending CN111385222A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862786395P 2018-12-29 2018-12-29
US62/786,395 2018-12-29
US16/425,734 2019-05-29
US16/425,734 US11343205B2 (en) 2018-05-30 2019-05-29 Real-time, time aware, dynamic, context aware and reconfigurable ethernet packet classification

Publications (1)

Publication Number Publication Date
CN111385222A true CN111385222A (zh) 2020-07-07

Family

ID=71216935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911362935.3A Pending CN111385222A (zh) 2018-12-29 2019-12-26 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类

Country Status (1)

Country Link
CN (1) CN111385222A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114257472A (zh) * 2021-12-07 2022-03-29 中信银行股份有限公司 一种网络拓扑监控方法、装置、设备及可读存储介质
CN114491145A (zh) * 2022-01-27 2022-05-13 北京中电兴发科技有限公司 一种基于流存储的元数据设计方法
CN114827292A (zh) * 2022-04-14 2022-07-29 重庆邮电大学 工业异构协议高速转换优化处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070091802A1 (en) * 2005-10-24 2007-04-26 Cisco Technology, Inc., A California Corporation Class-based bandwidth partitioning
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
US20130177026A1 (en) * 2012-01-05 2013-07-11 Texas Instruments Incorporated Unified Programmable Interface for Real-Time Ethernet
US20150304952A1 (en) * 2012-11-12 2015-10-22 Telefonaktiebolaget L M Ericsson (Publ) Network Device, Method, Computer Program and Computer Program Product for Determining a Set of Power State Parameters

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070091802A1 (en) * 2005-10-24 2007-04-26 Cisco Technology, Inc., A California Corporation Class-based bandwidth partitioning
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
US20130177026A1 (en) * 2012-01-05 2013-07-11 Texas Instruments Incorporated Unified Programmable Interface for Real-Time Ethernet
US20150304952A1 (en) * 2012-11-12 2015-10-22 Telefonaktiebolaget L M Ericsson (Publ) Network Device, Method, Computer Program and Computer Program Product for Determining a Set of Power State Parameters

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SOPHIA-ANTIPOLIS: "S1-143158:Off-network group call considerations", 3GPP TSG_SA\\WG1_SERV *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114257472A (zh) * 2021-12-07 2022-03-29 中信银行股份有限公司 一种网络拓扑监控方法、装置、设备及可读存储介质
CN114257472B (zh) * 2021-12-07 2023-05-05 中信银行股份有限公司 一种网络拓扑监控方法、装置、设备及可读存储介质
CN114491145A (zh) * 2022-01-27 2022-05-13 北京中电兴发科技有限公司 一种基于流存储的元数据设计方法
CN114827292A (zh) * 2022-04-14 2022-07-29 重庆邮电大学 工业异构协议高速转换优化处理方法及系统
CN114827292B (zh) * 2022-04-14 2023-09-15 重庆邮电大学 工业异构协议高速转换优化处理方法及系统

Similar Documents

Publication Publication Date Title
US11966777B2 (en) Level two first-in-first-out transmission
US10425359B2 (en) Packet data traffic management apparatus
US10848442B2 (en) Heterogeneous packet-based transport
US7245627B2 (en) Sharing a network interface card among multiple hosts
US20220286412A1 (en) Real-time, time aware, dynamic, context aware and reconfigurable ethernet packet classification
CN111385222A (zh) 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类
US9537776B2 (en) Ethernet traffic management apparatus
US7860120B1 (en) Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US11579877B2 (en) Broadside random access memory for low cycle memory access and additional functions
CN111382091A (zh) 用于低周期存储器访问和附加功能的宽边随机访问存储器
EP4068703B1 (en) Method and device for performing software-based switching functions in a local area network
US20240137333A1 (en) Method for performing switching function and switching device
WO2022157750A1 (en) Centralized control of time gates for time sensitive networking (tsn)

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