CN109952764A - 通讯网络控制器模块 - Google Patents
通讯网络控制器模块 Download PDFInfo
- Publication number
- CN109952764A CN109952764A CN201680090708.8A CN201680090708A CN109952764A CN 109952764 A CN109952764 A CN 109952764A CN 201680090708 A CN201680090708 A CN 201680090708A CN 109952764 A CN109952764 A CN 109952764A
- Authority
- CN
- China
- Prior art keywords
- frame
- descriptor
- data
- address
- queue
- 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.)
- Granted
Links
Classifications
-
- 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/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41422—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance located in transportation means, e.g. personal vehicle
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
Abstract
公开了一种用于在存储器中存储媒体数据的通信网络控制器模块(12)。该模块包括:媒体访问控制器(41)以及消息处理器(42)。消息处理器被配置为:响应于从媒体访问控制器接收到包括帧数据的帧(9),来识别帧的帧类型、基于帧类型识别目标队列(200、201、...、20r)、获得目标队列的10当前描述符(63)的当前描述符地址(65)、以及获得存储器(13)中被保留以用于存储帧类型的帧的一系列数据区域中的地址、将帧数据的一部分(61)存储在数据区域地址处,目标队列包括一系列数据区域(64),当前描述符包括描述符类型字段(66)、描述符指针字段(67)和描述符数据大小字段(69)。消息处理程序被配置为:基于确定描述符类型字段(66)中保存的描述符类型指示15帧数据部分要连续存储在一系列数据区域中,通过从用于队列的当前增量地址寄存器(490、491、...、49r)读取地址来获得存储该帧数据部分的地址。
Description
技术领域
本发明涉及一种能够将帧数据存储在系统存储器中的通信网络控制器模块,但不排他地涉及一种能够将帧数据存储在系统存储器中的音频视频桥接(AVB)终端站。
背景技术
已经开发了几种类型的高级驾驶员辅助系统(ADAS),其可以帮助机动车辆的驾驶员。这些类型的ADAS包括车道偏离警告、紧急制动辅助、自适应巡航控制、盲点检测和停车辅助等。
这些系统倾向于采用成像设备(例如数码相机)和传感器(例如超声波接近传感器),成像设备和传感器可以生成大量的需要实时的、低延迟数据处理的数据。
随着基于成像和传感器的ADAS和其他类型的车载数据处理系统的数量增加以及高清成像设备的使用变得更加广泛,电子控制单元(ECU)和其他车载网络设备的数据处理和存储要求(例如就速度、吞吐量和/或效率而言)不断增加。
发明内容
根据本发明的第一方面,提供了一种通信网络控制器模块,该通信网络控制器模块优选是硬件模块。该通信网络控制器模块包括:媒体访问控制器和消息处理器。消息处理器被配置为:响应于从媒体访问控制器接收到包括帧数据的帧(诸如以太网帧),来识别帧的帧类型(例如,基于流ID)并且基于帧类型识别目标队列。目标队列包括存储器中被保留以用于存储帧类型的帧的一系列数据区域。消息处理器被配置为获得目标队列的当前描述符的当前描述符地址。当前描述符包括描述符类型字段。当前描述符还可以包括描述符指针字段和描述符数据大小字段。消息处理器被配置为获得一系列数据区域中的数据区域地址并且将帧数据的一部分(诸如有效载荷)存储在数据区域地址处。消息处理器被配置为:基于确定描述符类型字段中保存的描述符类型指示帧数据部分要连续存储在一系列数据区域(例如,描述符类型是FEMPTY_IS或FEMPTY_IC)中,通过从用于目标队列的第一(或“当前增量”)地址寄存器(例如,寄存器CIARr.CIA)读取地址来获得存储帧数据部分的地址。
因此,帧数据部分中的数据可以连续存储在一系列数据区域(连续的一系列数据区域本文称为“增量数据区域”)中,这意味着数据在被读出和/或进一步处理之前,不需要重新排列(例如通过将数据复制到存储器的另一部分以作为连续部分)。这有助于减少CPU处理负载,并允许硬件处理器直接处理数据,这有助于减少延迟。
当前增量地址寄存器优选是硬件寄存器,并且可以在一组特殊功能寄存器(SFR)中提供。
消息处理器可以被配置为将新的帧类型写入描述符类型字段。
消息处理器可以被配置为将地址存储在用于目标队列的第二(或“最后增量”)地址寄存器(例如寄存器LIARr.LIA)中。第二地址寄存器可以由软件访问。因此,应用软件可以确定存储在增量数据区域中的数据量。
消息处理器优选地被配置为:在用于队列的当前增量地址寄存器(例如寄存器CIARr.CIA)中写入新的地址,以直接指向所述帧数据部分的结尾之后,以便允许在帧数据部分之后连续存储下一帧数据部分。
当前描述符地址可以从用于目标队列(r)的、指向当前描述符的第三(或“当前描述符”)地址寄存器(例如,从寄存器CDARr.CDA)获得,并且通信网络控制器模块可以被配置为:在从当前描述符地址寄存器获得当前描述符地址之后,更新当前描述符地址寄存器以指向下一个描述符。当前描述符地址寄存器优选是硬件寄存器,并且可以在SFR中提供。
模块可以被配置为使用报头描述符处理报头帧数据,并且使用不同的有效载荷描述符处理有效载荷帧数据。
消息处理器可以被配置为在一系列数据区域中连续存储有效载荷数据,并且响应于报头描述符指示消息处理器丢弃报头而丢弃报头。消息处理器可以被配置为在一系列数据区域中连续存储有效载荷数据,并且响应于报头描述符指示消息处理器存储报头而存储报头。尽管报头最终是连续存储的,因为它们可以是固定大小的并且固定大小可以对应于数据区域大小,但是报头不需要有意地连续存储。
存储器中的一系列数据区域可以被保留以用于存储帧类型的帧的有效载荷,并且消息处理器可以被配置为将报头存储在存储器中被保留以用于存储帧类型的帧的报头的另一系列数据区域中。
帧可以是以太网帧。以太网帧可以遵从IEEE 1722音频/视频桥接传输协议。帧可以是TCP/IP帧。
模块可以进一步包括未读帧计数器。当帧被添加到队列时,未读帧计数器可以递增。当帧由软件应用程序读取时,未读帧计数器可以递减。
根据本发明的第二方面,提供了一种集成电路,该集成电路包括:根据第一方面的模块、系统总线以及经由系统总线与模块通信的中央处理单元子系统。
集成电路可以是微控制器(MCU)、片上系统(SoC)或专用集成电路(ASIC)。集成电路可以包括FPGA。
集成电路可以进一步包括存储器,即存储帧数据的存储器。
根据本发明的第三方面,提供了一种计算机系统,该计算机系统包括根据第二方面的第一集成电路和与第一集成电路通信的不同的第二集成电路,第二集成电路提供存储器。
每个数据区域可以包括32位字的正整数倍。数据区域可以被设置为存储器中的连续块。链中的所有存储元件的描述符数据区域可以位于连续存储器中。
每个帧可以包含A/V数据包的正整数倍,例如一个或两个A/V数据包。
根据本发明的第四方面,提供了一种控制单元,该控制单元包括根据本发明第二方面的集成电路或根据本发明第三方面的计算机系统。
根据本发明的第五方面,提供了一种系统,该系统包括根据本发明的第四方面的控制单元、至少一个数据源(例如数码相机)以及被设置为将数据从至少一个数据源传递到控制单元的通信网络。
系统可以进一步包括耦接到控制单元以用于显示帧数据的至少一个显示器。系统可以是或可以包括在高级驾驶员辅助系统中。
根据本发明的第六方面,提供了一种包括根据本发明的第五方面的系统的车辆。车辆可以是机动车辆。机动车辆可以是摩托车、汽车(有时称为“轿车”)、小型公公汽车,公共汽车、卡车或货车。机动车辆可以由内燃机和/或一个或多个电动机提供动力。
根据本发明的第七方面,提供了一种方法,包括:识别包括帧数据的帧的帧类型,基于帧类型识别目标队列(目标队列包括存储器中被保留以用于存储帧类型的帧的一系列数据区域),获得目标队列的当前描述符的当前描述符地址(当前描述符包括描述符类型字段),获得一系列数据区域中的地址并将帧数据的一部分存储在该地址处。该方法包括:基于确定描述符类型字段中保存的描述符类型指示帧数据部分要连续存储在一系列数据区域中,通过从用于目标队列的当前增量地址寄存器读取地址来获得存储帧数据部分的地址。该方法优选地是硬件实现的方法。
该方法可以进一步包括对帧进行接收。
该方法可以进一步包括为目标队列提供最后增量地址寄存器。该方法可以进一步包括在处理描述符之前将增量地址寄存器设置为等于当前增量地址寄存器。
该方法可以进一步包括:在用于目标队列的当前增量地址寄存器中写入新的地址,以直接指向帧数据部分的结尾之后,以便允许在帧数据部分之后连续存储下一帧数据部分。
当前描述符地址可以从用于目标队列的、指向当前描述符的当前描述符地址寄存器获得,并且方法可以进一步包括:在从当前描述符地址寄存器获得当前描述符地址之后,更新当前描述符地址寄存器以指向下一个描述符。
根据本发明的第八方面,提供了一种方法,该方法包括:根据本发明的第七方面使用报头描述符处理报头帧数据,以及根据本发明的第七方面使用不同的有效载荷描述符处理有效载荷帧数据。
报头描述符可以包含指示不存储报头帧数据的相应描述符类型或指示要存储报头帧数据的相应描述符类型,并且其中报头帧数据存储在报头数据区域中。有效载荷描述符可以包含指示要存储有效载荷的相应描述符类型。
根据本发明的第九方面,提供了一种包括描述符链的数据结构,每个描述符被配置为控制存储器中帧数据的存储,每个描述符包括描述符类型字段、描述符指针和帧数据大小字段。
根据本发明的第十方面,提供了一种方法,该方法包括:根据第九方面使用数据结构处理帧数据。
附图说明
现在将参考附图通过示例的方式描述本发明的某些实施例,其中:
图1示意性地图示包括数码相机、适于处理来自数码相机的媒体数据的头部单元和显示器的机动车辆;
图2示意性地图示分割和传输由数码相机产生的图像;
图3图示可用于将媒体数据从数码相机传输到头部单元的AVBTP以太网帧;
图4是包括CPU子系统、终端站和系统存储器的微控制器的框图;
图5是包括描述符和描述符数据区域的存储元件的示意框图;
图6图示线性描述符链;
图7图示循环描述符链;
图8图示接收和传送队列的基地址表;
图9是处理存储元件的方法的过程流程图;
图10图示帧数据映射;
图11图示使用单独数据区域的接收队列的排列;
图12图示使用公共数据区域的接收队列的排列;
图13是由软件执行以处理增量数据区域的方法的过程流程图;
图14图示保持描述符类型模式中的循环链;
图15是使用单个描述符数据区域存储数据的方法的过程流程图;并且
图16是使用公共增量数据区域存储数据的方法的过程流程图。
具体实施方式
机动车辆
参考图1,示出了机动车辆1,其包括高级驾驶员辅助系统(ADAS)2,诸如停车辅助系统。ADAS 2包括至少一个高清数码相机3和连接到车载通信总线5的头部单元4。头部单元4连接到显示器6。显示器6可以采用例如位于中控台(未示出)或仪表板(未示出)中的平板显示器的形式。
还参考图2,每个高清数码相机3能够以一系列图像帧7(例如以60fps的速率)捕获图像,并将每个图像帧7分成一个或多个切片8以用于处理。每个图像帧7被切片、编码(可以包括压缩)、可选地加密、分成数据包(未示出)、封装在数据容器9中并经由车载通信总线5传送到头部单元4。
头部单元
头部单元4包括微控制器10或其他类似的基于微处理器的系统。微控制器10包括中央处理单元(CPU)子系统11和采用通信网络控制器12(本文称为“终端站”)形式的硬件实现的外围模块。微控制器10包括其他外围模块,诸如其他通信网络控制器(用于其他不同类型的通信网络)、定时器等。
头部单元4包括系统存储器13(本文称为“用户存储器”或“URAM”),系统存储器13可以在芯片上(即在微控制器上)提供或由外部存储器芯片(未示出)提供。存储器13可以采用同步单端口RAM的形式。
车载通信总线5采用有线以太网网络的形式,并且数据容器9采用音频视频桥接传输协议(AVBTP)以太网帧9(本文也称为AVBTP以太网数据包)的形式。
AVBTP帧格式
参考图3,示出了AVBTP帧9,其前面可以有前导码21和帧起始分隔符(SFD)22,并且其包括18字节以太网报头23、包括0到1500字节的数据的有效载荷24和4字节的帧校验序列(FCS)25。帧9具有64字节的最小长度。报头23包括6字节目的地地址26、6字节源地址27、4字节VLAN标签28和2字节以太网标签29。
有效载荷24包括IEEE 1772数据包,该数据包包括报头30和可以包括0到1476个字节的有效载荷31。报头30包括4字节1772报头32、8字节流标识符33、以及AVBTP时间戳34和有效载荷信息35以及附加报头和有效载荷36。1772报头30包括包含流ID有效(SV)位(未示出)和三位1722版本(未示出)的子类型数据(未示出)。
附加报头和有效载荷31包括IEC 61883音频/视频数据包,该音频/视频数据包包括8字节IEC 61883报头36和可包括0到1468字节的有效载荷37。
可以使用其他类型的数据数据包(除了AVBTP以太网数据包)、其他类型的封装数据包(除了IEEE 1722数据包)和其他类型的媒体数据包(除了IEC 61883)。
微控制器
参考图4,更详细地示出了微控制器10。
微控制器10包括通过系统总线15互连的CPU子系统11、终端站12和系统存储器13。CPU子系统11包括一个或多个CPU 16(为了清楚起见,本文将参考CPU 16)和存储应用软件18的存储器17。CPU 16加载并执行应用软件18。系统存储器13用于在传送队列19和接收队列20中存储数据。
终端站
仍然参考图4,终端站12包括媒体访问控制器(MAC)41、接收消息处理器42、传送消息处理器43和总线主接口44。MAC 41连接到外部物理层收发器(PHY)(未示出)。终端站12具有直接存储器访问能力。终端站12可以在没有CPU干预的情况下在MAC 41和系统存储器13之间传输数据。
终端站12可以包括可以用于捕获帧的时间戳和时序块(未示出)的帧起始检测器(未示出),例如以通用精确时间协议(gPTP)块的形式,该帧起始检测器可用于向接收消息处理器42提供接收时间戳。
终端站12还包括特殊功能寄存器(SFR)45。终端站12由CPU 16通过外围总线接口46经由SFR 45控制。
SFR 45包括(在其他寄存器中)描述符基地址表寄存器47(本文称为“DBAT”)、一组当前描述符地址寄存器48(本文称为“CDAR”)、一组当前增量地址寄存器49(本文称为“CIAR”)和一组最后增量地址寄存器50(本文称为“LIAR”)。
DBAT 47包含存储在系统存储器13中的描述符基地址表51的第一条目520(图8)的32位地址(“DBAT.TA”)。
存在q个当前描述符地址寄存器480、481、...、48q,其中q=0到21。在这种情况下,存在四个传送队列(即t=q,对于q=0、1、2、3)和18个接收队列(即r=q-4,对于q=4、5、...、22)。每个当前描述符地址寄存器480、481、...、48q保存队列q的相应32位地址(“CDARq.CDA”)。
存在r个当前增量地址寄存器49和r个最后增量地址寄存器50。每个当前增量地址寄存器490、491、...、49r保存队列r的相应32位地址(“CIARr.CIA”),该队列r存储当前帧数据或当队列r变为激活时将存储帧数据。每个最后增量地址寄存器500、501、...、50r保存队列r的相应32位地址(“LIARr.LIA”),其中第一个未使用的地址在接收队列r的增量数据区域内。可以有更少或更多的传送队列19,并且因此,可以有更少或更多的当前描述符地址寄存器48。可以有更少或更多的接收队列20,并且因此,可以有更少或更多的当前描述符地址寄存器48、当前增量地址寄存器49和最后增量地址寄存器50。
如稍后将更详细解释的,这些寄存器47、48、49、50用于允许数据选择性地非连续地存储在一系列固定大小的存储器区域(或“块”)中,由于数据的大小可以变化并且因此,在存储器中的数据之间没有任何间隙的情况下,不会填满存储器块或者连续填充在所谓的“增量数据区域”中。
尽管可以丢弃报头数据53,但这种排列还允许包含在帧8中的报头数据53和有效载荷数据54被单独存储。
再次参考图3,报头数据53和有效载荷数据54可以例如分别是以太网帧9的以太网帧报头23和有效载荷24。然而,报头数据53和有效载荷数据54可以是包含在以太网帧9中的报头和有效载荷,例如分别是1772数据包报头30和有效载荷31。
消息处理器42包括帧类型识别和分离过滤框55、采用先进先出(FIFO)缓冲器形式的接收缓冲器56、处理单元57和未读帧计数器58。处理单元57执行特定队列的描述符链处理和标记。
描述符
描述符存储在系统存储器中
还参考图5,终端站12使用位于系统存储器13中的数据结构62(本文也称为“存储元件”)与应用软件18交换接收和传送帧数据61。帧数据61可以是报头数据53或有效载荷数据54。如果存储两种类型的帧数据61,则使用两组存储元件62,即一组用于报头数据53并且一组用于有效载荷数据54。
存储元件62由控制结构63(本文称为“描述符”)和帧数据51所在的区域64(本文称为“描述符数据区域”或简称为“数据区域”)组成。
将存储元件62分成控制区域63和数据区域64允许在系统存储器13中的帧数据61灵活地分配。例如,帧数据61可以直接地、连续地存储在系统存储器13中,而不需要例如将数据存储在存储器的一部分中的非连续块中并且然后将数据复制到存储器的另一部分中的连续块中。使用描述符63还可以帮助实现对存储元件62的硬件和软件访问的仲裁。
描述符63在描述符地址65处开始,并且由控制存储元件62的功能的描述符类型字段66(本文也称为“DESC.DT”)、定义包含帧数据61的描述符数据区域64的第一地址68的描述符指针67(本文也称为“DESC.DPTR”)和定义帧数据61的大小70的帧数据大小字段69(本文也称为“DESC.DS”)组成。描述符63还包含描述符中断使能字段71(本文也称为“DESC.DIE”),其控制描述符63何时可以在处理时发出描述符中断。另外,描述符63可以包括内容相关字段72。
系统存储器13中的描述符63的存储例如以32位间隔对齐。在描述符数据区域64中的帧数据61的存储不受限制。
正常类型的描述符63具有两个长字的大小,即64位。例如,使用gPTP时间戳处理接收的扩展类型的描述符63可以具有五个长字的大小,即160位。
帧大小数据字段69定义帧数据61的大小70。在空存储元件62准备接收的情况下,帧大小数据字段69定义可以存储在描述符数据区域64中的最大帧数据大小。
描述符数据区域64由多个32位字组成。如果描述符指针67未与32位地址对齐,则当终端站12向描述符数据区域62写入时,不改变先前的字节。
队列的描述符链
如前所述,用于接收和传送的存储元件62被分组在队列19、20中。队列19、20提供处理一个或多个帧的功能。
传送队列19包括多个队列190、191、...、19t,其中t是等于或大于2的正整数。例如,t可以是3。接收队列20包括多个队列200、201、...、20r,其中r是等于或大于2的正整数。例如,r可以是17。
一串组合的存储元件在本文称为“描述符链”。
为了支持描述符链的灵活设计,可以定义三类描述符类型(即DESC.DT),即(1)定义帧数据的描述符,(2)如LINK和EOS的控制描述符链本身的描述符(它们在下面将更详细地描述)以及(3)通过硬件或软件仲裁访问的描述符。
参考图6和7,可以使用两种基本描述符链拓扑。
具体参考图6,示出了线性描述符链73。线性描述符链73具有链的基地址74。阵列中的最后描述符63、75是仲裁描述符,例如EEMPTY,用于标记描述符链的结尾。
参考图7,示出了循环描述符链76。循环描述符链76具有链的基地址77。阵列中的最后描述符63、78是返回指向链中的第一描述符63、79的控制描述符,例如LINK。
队列和描述符链之间的关系由链的基地址74、77实现。队列190、191、...、200、201(图4)一次连接到一个描述符链,但是存在在操作期间可用的机制以在不同的链之间切换。
对链73、76内的链描述符的数量和位置没有限制。因此链73、76可以由通过链描述符连接的一组描述符阵列组成。链73、76的最后一个描述符75、78定义了拓扑。
链结构和拓扑的选择取决于应用需求结构。
-描述符基地址表-
参考图8,位于系统存储器13中的描述符基地址表51定义每个队列的第一描述符63的地址。第一条目520、第二条目521、第三条目522和第四条目523分别用于访问第一传送队列190、第二传送队列191、第三传送队列192和第四传送队列193。第五条目524、第六条目525和第七条目526(及后续条目...)用于访问第一接收队列200、第二接收队列201和第三接收队列202(和后续接收队列...)。
基地址表条目510、...、516、...具有与链描述符63(图5)相同的格式。基地址表51中的描述符具有8字节的大小。因此,第二条目521在DBAT.TA+0x08处被找到,第三条目522在DBAT.TA+0x10处被找到,依此类推。然而,可以使用具有例如20位大小的扩展描述符。
如下文将更详细描述的,可以使用LINKFIX描述符类型。在处理之后,终端站12不使这种类型的链路描述符无效,因此不需要软件刷新。硬件/软件同步优选地由链的第一描述符完成。如果应用程序需要基地址的硬件/软件同步,则可以使用描述符类型LINK。CPU16(图4)优选地使用LINKFIX或LINK描述符类型以用于位于基地址表中的描述符。
-描述符链处理-
仍然参考图4和图5,当相关队列变为激活时,当前正在处理或将被处理的描述符被称为“当前描述符”。由队列q使用的当前描述符的地址可以从存储在SFR 45中的CDARq48q中的CDARq.CDA读取。
在描述符链处理期间,更新当前描述符地址CDARq.CDA。描述符链处理与数据传输分离。可以在处理描述符数据区域64之前执行对描述符63的读取。然而,一旦完全处理了存储元件62,就发生描述符63的写入。
还参考图9,终端站12(具体是处理器57)如下处理存储元件62。
读取第一描述符62(步骤S1)。初始化读取或写入相应的描述符数据区域64(步骤S2)。如果读/写描述符数据区域64的初始化已经完成(步骤S3),则将当前描述符地址更新到下一个、第二描述符(步骤S4)。一旦描述符数据区域64已转换并且描述符地址已更新(步骤S5),则更新第一描述符(步骤S6)。该过程将更详细地描述。
描述符中断
具体参考图5,每个存储元件62可以在处理之后发出描述符中断。描述符中断使能71可以禁止生成描述符中断标志(未示出)或者启用要生成的描述符中断标志(未示出)中的一个。
终端站12可以使用两种类型的描述符中断。一种类型是队列特定描述符中断。每个接收和传送队列20、21被分配一个队列特定描述符中断。另一种类型是通用描述符中断。可以在所有接收和传送队列之间共享15个通用描述符中断。
-队列特定描述符中断-
如前所述,每个接收和传送队列20、21存在一个队列特定描述符中断。这种关系(即中断和队列之间的)允许应用软件18直接处理通知。
当终端站12已经处理了描述符中断使能71被设置的描述符(即到0001b)时,SRF45中的相关队列特定中断标志被设置为0001b。例如,用于第t个队列的传送描述符处理标志(未示出)标记第t个传送队列19的描述符中断,并且用于第r个接收队列的接收描述符处理标志(未示出)标记第r个接收队列的描述符中断(未示出)。
具有描述符中断使能71设置的处理的描述符也可以触发通用描述符中断。为了防止到CPU 16的并发中断通知,当使用队列特定中断时,重置描述符处理中断控制寄存器(即到0000b)。
-通用描述符中断-
通用描述符中断是接收和传送队列之间共享的公共资源。软件控制的描述符中断的选择允许灵活的应用特定标记方案。
描述符类型
下面的表1给出了由终端站12使用的描述符类型的概述。第一列显示描述符类型名称,并且第二列是写入描述符类型字段66的4位数。由于数据传输的方向在传送和接收队列中相反,所以描述符类型的处理可以不同。然而,描述符类型的处理仅用于接收。“SW”意味着存储元件62被分配以供软件使用,因此允许CPU 16访问/修改描述符和描述符数据区域,“HW”意味着存储元件62被分配以供硬件使用,即由终端站使用,并且“HW*”意味着软件可以更新描述符,即使它被分配以供HW使用。
表1
-帧数据描述符的使用-
如稍后将更详细解释的,一些应用程序不使用普通长度的以太网帧9(或其他类型的帧)。为了最小化帧数据的存储器分配,终端站12支持将分割(split)帧数据分配给不同的描述符。
该功能允许处理比描述符数据区域64(图5)长的帧。此外,这允许应用程序基于帧数据结构来分割帧,例如,一个描述符用于存储帧报头信息,而另一个描述符用于帧有效载荷。
如上表1所示,定义了四种描述符类型以用于控制帧数据和分割。
参考图10,帧数据描述符63和相应的描述符区域64以四种情况示出,其中使用一到四个描述符。描述符数据区域64可以分布在系统存储器13中(图4)。可替代地,描述符数据区域64可以排列成连续的存储区域中。当帧被分割成多于四个部分时,添加附加的FMID描述符63。
-链控制描述符的使用-
链描述符
通过使用链描述符,可以配置描述符链的拓扑。
当使用LINK描述符时,硬件(即终端站12)将描述符类型改变为LEMPTY。因此,软件仍然具有与描述符地址相关的描述符点的信息。当处理LINKFIX时,硬件不更新描述符。
允许软件修改描述符中断使能和/或LINKFIX描述符的描述符指针。在这种情况下,描述符类型本身不能改变。当改变描述符指针时,如果使用旧链或新链,则可以使用SFR45中的当前描述符地址寄存器(未示出)中的当前描述符地址(未示出)来获得信息。
EOS描述符
通过使用EOS描述符,CPU将描述符链分割成不同的段。队列在EOS描述符之后继续。
分割帧的存储(当存储FMID,FEND时)被中止,并队列完全中断被生成。在所有其他位置处,EOS描述符无效。帧存储在EOS之后的存储元件中开始。
-硬件和软件仲裁描述符的使用-
终端站提供一组空描述符类型,即FEMPTYxxx、LEMPTY、EEMPTY,以在硬件处理之前区分不同的描述符类型。以这种方式,CPU 16可以在下次使用存储元件时识别所需的动作(例如空数据区域)。
FEMPTYxxx
这些描述符类型(即FEMPTY、FEMPTY_IS、FEMPTY_IC、FEMPTY_ND)被用于帧数据相关的描述符,其当前没有有效数据。
FEMPTYxxx描述符的描述符指针指代描述符数据区域
LEMPTY
该描述符类型用于处理的LINK描述符。LEMPTY描述符的描述符指针指的是描述符。
EEMPTY
此描述符类型用于已处理的EOS描述符。EEMPTY描述符的描述符指针未使用。
-硬件和软件描述符访问之间的同步-
主要硬件和软件同步使用系统存储器13中的描述符类型(即DESCR.DT)。使用它,可以最小化对终端站12的SFR 45的CPU访问次数,并且可以提高性能。
主同步方案基于两个原则。首先,分配一组描述符类型供硬件或软件独占使用(参见上面的表1)。其次,一方(即硬件或软件)不能修改分配给另一方的描述符。
因此,软件侧在改变描述符类型之前处理存储元件62的所有信息。当硬件侧描述符类型已被写入描述符类型字段66(图5)时,CPU 16不能修改存储元件的部分。
主同步方案可用于所有类型的应用程序。
除了这种主同步方案之外,还可以使用特殊操作模式。这些模式可以允许存储器减少对特殊应用方案的访问次数。
通过接收队列配置寄存器(未示出)中的接收同步模式位(未示出),可以为每个队列单独配置同步方案。
帧接收
再次参考图4和图5,终端站12在没有CPU干预的情况下在MAC 41和系统存储器13之间传输数据。这是使用上文描述的描述符机制实现的。
CPU 16准备存储元件62,存储元件62定义要存储的帧数据61(例如有效载荷数据54)的位置和数量。当MAC 41接收到帧9时,存储元件62被接收到的帧数据61填充。接收状态可以用信号通知给CPU 16。
接收消息处理器42采用分离过程来对接收的帧9进行分类。帧类型识别单元和分离过滤单元55用于识别帧类型(例如网络、AVB流等)、提供关于帧应如何处理的信息并为帧数据61提供队列号r。帧类型可包括网络(即遵从IEEE 802.1AS)、AVB流(即遵从IEEE 1722)和非AVB帧,并且帧类型处理可以包括是应该丢弃帧还是使用最大努力来处理帧。
基于该分类,接收到的以太网帧9存储在不同的接收队列20中。CPU 16可以对不同类别的接收的帧9进行优先级排序。
由MAC 41接收的帧9最初存储在终端站内部FIFO 56中。并行地,分析帧9以识别帧类型和目标队列号。在MAC 41完成接收之后,生成目标队列号并将其存储在Rx-FIFO 56中,以便稍后在帧9存储在系统存储器13中时使用。接收标记取决于帧到系统存储器13中的接收队列中的一个中的存储。未读帧计数器(UFC)58用于帧存储。
接收队列选择
终端站12基于灵活的分离过滤机制选择接收队列200、201、...、20r,用于存储接收的帧9。终端站12(具体是处理模块55)能够将接收到的帧9存储在系统存储器13中
在许多情况下,终端站12可以在正常操作期间丢弃接收的帧9。例如,如果MAC 41在接收期间检测到任何故障、如果帧9未通过分离过滤器、如果帧是广播帧和/或在存储期间存在问题(例如由于分配的队列已满),则终端站12可以丢弃帧9。
当帧接收由MAC 41完成时作出最终决定。当这发生时,帧9被提交给Rx-FIFO 56以便存储在适当的接收队列20中或从Rx-FIFO 56中丢弃。
-分离过滤器55-
分离过滤器55基于接收的以太网帧9的内容而选择流队列200、201、...、20r中的一个。分离过滤器55可以单独使用或与IEEE 1722以太网流帧过滤结合使用。
SFR 45中的分离过滤器偏移寄存器(未示出)存储第一字节位置配置参数(未示出),第一字节位置配置参数选择用于分离过滤的接收的帧9内的位置。使用该字节位置,分离过滤器55可以检查多达64位(即8个连续字节)以选择流队列200、201、...、20r。SFR 45中的分离过滤器偏移寄存器(未示出)存储公共过滤器掩码(未示出),公共过滤器掩码可以将分离过滤限制为较低的字节数或可自由配置的位掩码。
分离过滤器55在配置模式初始配置。但是,可以在操作模式期间更改过滤器配置。
-流分离支持-
终端站12可以使用灵活的分离过滤器55支持接收的流帧分离。在存在讲话者和收听者的AVB网络中,可以使用8字节的流ID 33(图3)来区分不同的音频-视频流。讲话者是生成一个或多个流的终端站,并且收听者是充当至少一个流的接收器的终端站。流ID 33(图3)通常是识别一个流的AVB网络中的唯一模式。
讲话者可以是相机3(图1)中的终端站(未示出),并且收听者可以是头部单元4(图1)中的终端站12。
根据IEEE 1722帧布局,流ID字段33(图3)从字节23开始。因此,对于IEEE1722流分离,第一字节位置配置参数(未示出)可以设置为22(十进制)。
(8字节)流ID 33(图3)可以分割成(例如6字节)讲话者源地址(未示出)和(例如2字节)唯一ID(未示出)。唯一ID(未示出)可用于区分源自同一讲话者的多个流。因此,可以将每个流分离为单个队列,或者将来自每个讲话者的流分离到单个队列。
接收的描述符机制
下面的表2列出了描述符类型和终端站12在处理存储元件62时所采取的动作。对“下一个描述符”的引用旨在意味着在终端站12已经设置了当前描述符之后的描述符链中的下一个描述符。术语“回写”旨在意味着当终端站12在为当前接收队列r选择正常模式时完成描述符处理之后如何改变描述符类型。
表2
接收过程
参考图4,在初始化之后,终端站12能够经由MAC 41接收帧9、选择适当的接收队列200、201、...、20r并将接收的帧存储在系统存储器13中的描述符链中。只要CPU 16提供足够数量的空描述符,接收的帧就可以存储在系统存储器13中。
如上所述,由MAC 41接收的帧9在接收期间被分类并存储在Rx-FIFO 56中。Rx-FIFO 56将MAC 41的帧接收与系统存储器13中的帧存储分离。只有稍后将用于系统存储器存储的信息才会存储在Rx-FIFO 56中。因此,当在Rx-FIFO 56中存储数据时,完成截断和帧丢弃。
以下信息存储在Rx-FIFO 56中,即接收的帧9的MAC状态、接收的帧9的长度、接收的帧9的时间戳、目标接收队列和接收的帧数据。
当Rx-FIFO 56中存在至少一个完整帧时,针对接收队列触发存储过程。
如果在触发的接收队列中找到至少一个空帧数据描述符,则帧存储开始。当队列已满(没有空帧描述符或达到UFC停止级别)时,帧将从Rx-FIFO 56中移除。因此,一个完整队列不会阻止到其他队列的存储。
-将帧数据存储到描述符数据区域-
参考图4、图5和图10,终端站12可以以两种方式实现帧存储,即整个帧数据61适合描述符数据区域64(在这种情况下,存储的帧数据由FSINGLE描述符处理)以及帧数据61大于描述符数据区域64并且需要被分割(在这种情况下,存储的帧数据由FSTART和可选的FMID和FEND描述符处理)。
当CPU 16处理接收时,它逐步遍历由终端站12更新的描述符链。如果以及如何通知CPU 16关于要处理的描述符以及CPU 16如何在处理之后回写描述符取决于所选择的硬件/软件同步机制。
终端站12将描述符类型66更新为存储元件处理的最后一步,因此CPU 16可以一致地访问具有分配给软件使用的描述符类型66的描述符。
在处理存储元件62并使用正常同步模式之后,CPU 16可以直接将描述符类型66写入FEMPTY描述符。在将描述符类型66写入FEMPTY描述符之后,CPU 16不修改描述符63或描述符数据区域64的任何(其他)部分。
除了当终端站没有操作在回写模式时,CPU 16还刷新在存储期间更新的帧数据字段69的大小。其他描述符字段只需要根据应用程序需求进行更新。
存储为单帧
在FSINGLE描述符中,整个帧位于CPU 16已在描述符指针字段67中指定的位置处的一个连续系统存储器位置中。帧数据字段69的大小提供关于接收的帧长度的信息。
当帧数据字段69的大小给出大于接收的帧大小的值并且给出FEMPTY_IS或FEMPTY_IC描述符时,终端站12将FSINGLE描述符存储到FEMPTY或FEMPTY_ND描述符。FEMPTY_IS和FEMPTY_IC描述符覆盖Rx-FIFO 56中的帧数据或所有剩余帧数据。
存储为分割帧
CPU 16可以以与单帧相同的方式处理分割帧。然而,CPU 16可能需要在由更高级软件处理之前组合分割数据。如果帧被截断,则可以在分割帧的所有描述符中将描述符截断字段(未示出)设置为相同的值。在检测到错误的描述符中设置描述符错误字段(未示出)。CPU 16将完整的帧处理为被破坏,而独立于分割帧的哪个部分被标记为有缺陷。
当终端站12在不同的描述符之间分割接收的帧时,它单独地处理每个存储元件62,并在处理完之后将其分配给软件使用。这允许CPU 16在描述符链处理期间定位不完整的帧(FEMPTY而不是FMID或FEND)。在这种情况下,CPU 16将不完整帧的处理推迟到下一个触发点。
没有数据存储
可能存在接收的帧的一部分对CPU 16不感兴趣的情况。例如,这可能在应用需要流数据时发生,而不是在以太网帧中包括的报头部分。通过使用分割帧存储,可以隔离以太网帧9的不需要的部分。
如果CPU 16根本不使用隔离的帧部分,则可以使用FEMPTY_ND描述符排除该部分,因此防止未使用的数据存储在系统存储器13中。因为没有存储数据,所以在微控制器10中的内部数据总线上不需要带宽来存储不需要的数据。因此,可以提高整体性能。
当终端站12更新FEMPTY_ND描述符时,帧数据字段69的描述符大小被设置为0。帧数据字段69的大小被设置为0是写入的FEMPTY_ND描述符的唯一指示。
帧截断
可以配置帧允许的最大字节数,以便在存储到系统存储器13之前限制接收的帧长度。终端站12支持SFR 45中的接收截断配置寄存器(未示出)中的最大帧长度的不同配置。对于每个接收队列r,可以选择截断配置寄存器中的一个。
当接收的帧超过所选择的最大帧长度时,只有所选择的最大帧长度字节数存储在系统存储器13中。错误中断(未示出)通知CPU 16截断。此外,设置描述符截断字段(未示出)以通知CPU 16哪个帧被截断。因为截断选择是特定于队列的,所以CPU16确保在截断可以发生之前已经完成了队列选择。最大帧长度可以以4个字节的倍数配置。
-增量数据区域-
为了存储接收的数据,CPU 16保留一定量的系统存储器13用于存储。如上文所述,报头数据53(图4)和有效载荷数据54(图4)可以分开存储。
参考图11,即使链中的所有存储元件的描述符数据区域64位于连续系统存储区域91中,如果接收的帧9的有效载荷数据54比提供的描述符数据区域64短,那么也将存在间隙92。
在一些应用程序中,例如当接收的数据由诸如音频-视频编解码器模块(未示出)的其他硬件处理时,连续数据区域(其中数据无间隙地连续存储)可能是有帮助的。当接收的帧具有不同的长度时,例如由于有效载荷中存在一个或两个音频-视频包,静态描述符指针的使用会导致数据区域91中的间隙92。因此,CPU 16可能需要执行附加处理(如数据复制)以消除间隙。
为了最小化或避免CPU 16复制数据的需要,终端站12支持增量数据区域功能。
参考图12,当使用增量数据区域时,不同的描述符63使用单独的公共数据区域95(本文也称为“增量数据区域”)以用于存储例如有效载荷数据54。描述符FEMPTY_IS定义增量数据区域95的基地址94,其由描述符链96中的描述符和后续描述符FEMPTY_IC使用,以存储接收的数据。
使用增量数据区域95不会减少针对各个描述符数据区域保留的系统存储器13的数量。硬件/软件同步策略没有变化。可以将帧分割成不同的描述符,例如一个用于以太网报头,一个用于有效载荷数据。
图11和图12中所示的排列图示了使用单独或增量数据区域的描述符链73。每个链73被配置成存储接收的帧,该帧包括由报头描述符处理的例如25字节的报头53以及150或300字节的有效载荷54,150或300字节的有效载荷54取决于数据源,例如如果在一个以太网帧9中发送一个或两个150字节的有效载荷数据包。
EOS描述符63、97是重新同步点的示例。在帧源传送超过325字节的帧的情况下,帧在三个描述符之间被分割,因此报头和数据的序列是不同步的。因为帧不是在EOS上分割的,所以这种不同步是在没有软件交互的情况下自我修复的。当使用增量数据区域时不需要EOS,因为增量描述符存储所有剩余的帧数据。
当终端站12将数据存储在增量数据区域95中时,它更新(除非它无回写模式)FEMPTY_IC描述符的描述符指针67。在写入FEMPTY描述符之后,生成的FEND或FSINGLE描述符具有与FEMPTY描述符相同的格式。
在处理FEMPTY_IS之前,SFR 45中的当前增量地址(CIARr.CIA)存储在SRF 45中的最后增量地址(LIARr.LIA)中,以供第r队列以保留增量数据区域信息的顶部用于软件使用。
应用软件可以在紧凑块中接收增量数据区域95中接收的数据。在增量数据区域的末尾处收集所有间隙。
如果SFR 45中的接收队列配置寄存器中的队列的打包增量数据区域标志被重置(即0b),则增量数据区域被限制为四个字节的倍数的帧存储。因此,如果要写入增量数据区域的接收的数据不是4个字节的倍数,则将仍然存在1到3个字节之间的间隙。CPU 16可以检查数据66的长度以了解间隙。
如果设置了队列(未示出)的打包增量数据区域标志(即1b),则对增量数据区域内的帧起始位置没有限制。因此,帧之间没有间隙。
增量数据区域的设置
如果在描述符链中存在参考增量数据区域的N个描述符,即一个FEMPTY_IS描述符和N-1个FEMPTY_IC描述符,则CPU 16将存储的接收的数据的最大量的N倍保留到增量数据区域。通过选择接收队列配置寄存器(未示出)中的截断选择位(未示出)和用于截断的适当的最大帧大小(未示出),可以避免由于不期望的接收而导致的增量数据区域的溢出。
如图12所示,FEMPTY_IS描述符63的描述指针67定义增量数据区域95的基地址94。链中的后续FEMPTY_IC描述符指示数据将被存储在增量数据区域中的处理步骤。
CPU 16不能直接限制由增量描述符(即FEMPTY_IS、FEMPTY_IC)存储的接收的数据量,因为数据大小字段69对于其他描述符(即FEMPTY和FEMPTY_ND)是可能的。即使接收的帧大小是已知的,也建议使用如上文所述的截断功能,以防止增量数据区域溢出。
基于描述符处理增量数据区域
通过CPU 16的数据处理与终端站12的存储机制无关,并且因此不需要不同地处理存储在增量数据区域中的数据。
该处理方案可以用于正常模式(即完全描述符回写)和保持描述符类型模式(保持DT模式,即在描述符回写时不存在描述符类型字段66的更新)。在无回写模式(即没有描述符回写的情况下),存储的数据大小不可用,并且因此CPU 16基于系统知识需要关于存储大小的信息(当帧源仅生成固定帧大小时)。
基于地址指针处理增量数据区域
当使用增量数据区域时,CPU 16可以独立于描述符本身处理接收的数据。为此,终端站12提供存储在SFR 45中的当前增量地址CIARr.CIA和最后增量地址LIARr.LIA。使用这些值和软件处理的地址指针(“SWdptr”),可以计算在增量数据区域中的数据量。
因为可以基于地址而计算存储的数据量,所以不需要在数据大小字段69中提供的大小信息。即使接收到的帧大小未知,也允许使用无回写模式。当用于第r个队列r的打包增量数据区域被重置(即到0b)时,在帧之后可能存在多达三个字节的间隙,并且软件将把它们考虑在内。
参考图13,当触发软件时(步骤S13.2),检查三个地址以定位要处理的数据。可以处理以下方案,即:
SWdptr==CIARr.CIA:没有任何内容存储在增量数据区域中
SWdptr<CIARr.CIA:新数据可用;处理两个位置之间的数据
SWdptr>CIARr.CIA:新数据可用;硬件已经达到FEMPTY_IS描述符的增量数据区域的基(假设描述符链包含指向增量数据区域的基的FEMPTY_IS描述符);处理SWdptr与最后增量地址(未示出)之间的数据(即在FEMPTY_IS之前存储的数据)和基与CIARr.CIA之间的数据(即由FEMPTY_IS存储的数据/FEMPTY_IS之后存储的数据)。
终端站12可以事前读取描述符并且将描述符数据处理为与当前CIARr.CIA值相关的描述符数据,这可以在系统中写入响应被延迟时发生。如果终端站12已经返回达到增量数据区域的基,那么终端站12可能正在将新数据写入尚未由软件处理的区域。取决于系统响应,这可能多达5帧。
CPU 16接收特定于应用的触发,例如接收警告中断、描述符处理的中断或软件定时器。如果起始地址和结束地址相同,则在步骤S13.5和S13.7中没有处理执行。在处理接收到的帧数据之后,通过CPU 16执行硬件/软件同步模式相关动作(步骤S13.8)。在保持DT并且无回写模式的情况下,没有通过CPU 16的描述符类型的更新。
-正常模式下处理描述符链-
该软件模拟描述符链处理。软件描述符指针变量(未示出)识别要处理的描述符。当进入OPERATION模式并且当使用加载基地址功能时,初始化软件描述符指针变量(未示出)以指示流的开始条件。
帧处理功能(未示出)处理存储元件。该功能(未示出)从软件描述符指针类型变量(未示出)导出帧是否完整。
-保持DT模式-
如果接收的帧是固定格式或使用增量数据区域,则终端站12的保持DT模式可用于减少对描述符的CPU更新。使用存储在SFR 45中的接收队列配置寄存器(未示出)中的接收同步模式值,可以为每个接收队列选择该模式。终端站12不更新描述符类型字段,而是更新所有其他描述符字段。
在这种操作模式中,在处理之后终端站12不修改该队列的描述符的描述符类型字段。这意味着CPU 16不需要再次准备描述符。可以通过使用UFC未读帧计数器51或通过使用描述符中断确定触发点来实现硬件/软件同步。
使用带有循环链的保持DT模式的示例
参考图14,使用要在保持DT模式下处理的增量区域来示出描述符链73、101。因为对于FEMPTY_IS和FEMPTY_IC描述符判断描述符数据大小为“不关心”,所以不需要CPU 16刷新描述符,因为CPU 16具有关于存储数据的全部知识。
例如,八个描述符63的循环链能够在队列充满之前保存多达八个帧。在典型的以太网帧的情况下,增量数据区域的总大小应为8×1500字节。截断可用于避免溢出。
第一描述符1021和第五描述符1025中的两个增量区域FEMPTY_IS用于防止由于不同的帧长度而在数据区域内重写。
为了在启动之后正确设置增量数据区域,链101的第一描述符1021是FEMPTY_IS。在保持DT模式下,LINK和LINKFIX描述符之间没有区别。在这种情况下,LINK被选择。
为防止重写,使用UFC停止级别功能(未示出)。停止级别被配置为4,这与一个增量数据区域中的可用描述符的最小数量相同。在该示例中,每个描述符存储一个完整的帧,并且不发生分割。
某些应用程序可能希望限制中断通知的数量。UFC警告级别对此进行支持。为避免队列处于充满状态,可将警告级别设置为2。这样可以存储多达2个附加帧,以防软件无法及时处理中断。
当软件处理接收的帧时,它可以使用描述符区域大小,以及基于本文此前描述的增量数据区域地址的处理。基于处理帧的数量,软件能够确定要处理的描述符。使用描述符中断使能,增量数据区域中存在关于损坏数据的信息。
-无回写模式-
从硬件/软件同步的角度来看,无回写模式与上文描述的保持DT模式相同。
因为在帧存储之后描述符不更新,所以在该模式中终端站12不提供关于错误和存储的数据字节数的信息。因此,CPU 16需要知道期望接收的帧格式。
CPU 16有两种方式可以确定接收的帧。第一,UFC提供关于队列中可用的、接收的帧的数量的信息。当帧格式固定时,描述符数据区域中的字节数是已知的。第二,当在增量数据区域中存储数据时,可以通过地址指针确定可用的、接收的数据。
由于关于接收的帧的有限信息,当检测到问题时,优选地执行接收队列的新设置和处理软件。这可有助于确保硬件和软件的正确重新同步。基于描述符区域大小和中断使能来评估接收的数据是不可能的。
-接收时间戳支持-
接收时间戳的提供对于IEEE 802.1AS时间同步很重要。其他类型的接收帧可以受益于接收时间戳。
参考图4,通过将检测器45在接收的帧的帧开始定界符(SFD)的出现处捕获的相关时间戳存储到最后的帧数据描述符FEND,FSINGLE中,终端站12基于gPTP定时器提供对接收时间戳的支持。
当需要时间戳存储时,扩展描述符可用于整个接收队列。
未读帧计数器
除了使用描述符类型的正常访问同步之外,终端站还支持硬件/软件同步。当描述符类型不可用于硬件/软件同步时(例如在保持DT和无回写模式中),需要此支持。为了支持特殊应用要求,当使用正常同步模式(即完全描述符回写模式)时,也可以使用未读帧计数器。
每个接收队列具有单独的未读帧计数器58。每个接收队列的计数器值可由SFR 45中的未读帧计数器值寄存器读取。所有未读帧计数器共享公共。该配置由SFR 45中的接收队列配置寄存器(未示出)中的未读帧计数器配置位(未示出)确定。
未读帧计数器功能基于与终端站12(在硬件侧)和通过CPU 16(在软件侧)的交互。硬件侧通知未读帧计数器58新的帧在描述符链中可用(即硬件增量)。软件侧通知未读帧计数器58从描述符链处理了多少帧(即软件减量)。
未读帧计数器58基于系统存储器13中存储的帧,并且与用于帧存储的描述符的数量无关。因此,即使通过不同的描述符分割接收的帧时,它也增加1。即使在使用FEMPTY_ND描述符时,未读帧计数器58也递增。
队列特定未读帧计数器55提供SFR 45中的当前未读帧计数器值(未示出)以及关于警告级别和停止级别的信息。终端站12使用警告级别到达信息来在SFC 45中设置接收警告标志(未示出)。当未读帧计数器值达到所选警告级别时,该标志被设置(到1b)。
停止级别达到的信息用于防止将接收到的帧存储到描述符链中。当所选的停止级别为0时,此功能被禁用。当所选择的停止级别等于未读帧计数器值时,丢弃要存储的帧。由于未读帧计数器停止功能而导致帧的丢弃由SFC 45中的接收中断状态寄存器队列充满标志(未示出)标记。
当终端站12处于配置模式时,CPU 16可以配置公共未读帧计数器配置寄存器(未示出),并为需要未读帧计数器支持的所有接收队列选择适当的配置。
存在两种未读帧计数器支持的主要使用方案,它们需要不同的所述的软件流程。
-填充级别通知-
在此方案中,接收队列使用描述符类型来使用正常同步。未读帧计数器58用于在描述符链中特定数量的帧可用时生成通知。未读帧计数器55的停止级别功能被禁用。
当使用循环描述符链时,链中的描述符位置与软件执行之间没有固定的关系。因此,分割帧和/或所有当前可用帧的处理使得难以选择用于通过描述符中断生成的通知的专用描述符。
使用未读帧计数器58有助于解决该问题。警告级别中断(未示出)可用于在接收到给定数量的帧之后触发软件执行。
可以使用软件定时器(未示出)。如果队列中的接收不频繁,则当由于未达到警告级别而未长时间处理存储在队列中的帧或一对帧时,可能发生这种情况。使用软件定时器(未示出)作为附加触发器可以帮助解决该问题。
在CPU 16开始处理帧之前,从未读帧计数器中读取可用帧数量(N)。此帧数被处理。处理期间接收的附加帧用下一个中断处理。
当CPU 16递减计数器时,当得到的未读帧计数器值低于使用的警告级别时,警告级别中断被清除。因为清除中断取决于未读帧计数器值,所以在CPU 16处理可用帧的同时,当接收到超过所选警告级别时,中断请求保持激活。
可以在许多情况下使用软件定时器。例如,软件定时器可用于减少CPU 16上的中断负载。接收的帧以至少十帧的集合进行处理。因此,队列的警告级别设置为十。在另一示例中,应用程序可能需要处理具有最大25ms延迟的接收的帧。因此,软件定时器被配置为该时间。
通过在开始处理时重新启动软件定时器,始终满足最大延迟条件。
-无回写模式中的硬件/软件同步-
在这种方案下,接收队列不使用采用描述符类型的正常同步方案,并且因此CPU16没有关于链中的填充描述符的信息。这里,未读帧计数器58用于向CPU 16通知可用帧的数量,并有助于避免尚未由CPU 16处理的存储元件的重写。
未读帧计数器中的值用作有关队列中可用帧数的信息。
在SFR 45中的未读帧计数器停止级别寄存器(未示出)中配置的停止级别用于防止重写。未读帧计数器停止级别寄存器(未示出)不应设置为零。
警告级别的使用是可选的,并取决于应用程序要求。当应用程序想要最小化接收通知中断的数量时,可以使用未读帧级别警告级别通知。可替代地,可以使用基于帧的接收通知。
在一组接收的帧之后触发CPU
该方案与上文关于填充级别通知所描述的方案相同。然而,它的不同之处在于,未读帧计数器停止级别寄存器(未示出)选择停止级别。
CPU由每个接收的帧触发
帧接收中断可用作触发器。因此,当至少一个帧在队列中时,处理开始。由于可以在CPU 16开始处理之前接收附加帧,因此未读帧计数器值用于确定要处理的帧的确切数量。不使用警告级别功能。
当CPU 16将减量应用于未读帧计数器递减寄存器(框D)时,当得到的未读帧计数器值为0(即,指示队列中的所有帧已被处理)时,帧接收中断被清除。因为清除中断取决于未读帧计数器值,所以在CPU 16处理可用帧的同时,当存在接收时,中断请求保持激活。
-加载基地址-
当CPU 16将描述符加载寄存器(未示出)的加载基地址设置为1b时,清除未读帧计数器58。结果,软件不能使用未读帧计数器来确定旧链中接收的帧的数量。
由于系统级别的数据传输时间,当终端站12从旧链改变为新链时,可能存在一个或多个帧正在运行。在这种情况下,未读帧计数器58忽略与旧链中相关的所有帧。下一个增量发生在新链中的第一帧。队列r的帧接收中断独立于旧链或新链标记所有接收的帧。
-UFC同步丢失-
以下条件可能导致同步丢失,即未读帧计数器58达到其最大值,分割帧的不完整存储(没有FEND被存储)、不完整的分割帧(F他TART,但没有FEND)不被计数,当因为没有FEMPTYxxx读取而检测到队列充满时,当描述符读取错误时。
结果,未读帧计数器可以将不同数量的帧指示为描述符链中真正可用的,并且因此可能丢失硬件/软件同步。在这种情况下,CPU 16可以使用相关队列的加载基地址功能来获得干净的操作起点。
图像帧的接收
再次参考图1和图3、图4和图5,数码相机3中的讲话者终端站(未示出)可以将图像流式传输到头部单元4中的收听者终端站12。
终端站12能够使用基于描述符的方法将图像数据(即帧数据61)存储在系统存储器13中。可以取决于软件如何设置描述符而使用单个描述符数据区域或使用公共增量数据区域来存储有效载荷数据54。
为了说明使用单个描述符数据区域或使用公共增量数据之间的差异,将使用其中处理150字节长的有效载荷数据54和300字节长的数据区域64的示例。
然而,应当理解,数据大小DS将根据存储的帧数据61的大小和分配给数据区域64的大小而变化。
使用单个描述符数据区域存储
参考图4、图5、图11和图15,现在将描述使用单个描述符数据区域64存储包含在接收的帧9中的报头数据53和有效载荷数据54的过程。
消息处理器42从MAC 41接收帧9(步骤S15.1)。消息处理器42根据帧类型和/或帧内容对帧9进行分类,并且响应于识别帧匹配给定帧类型和/或给定帧内容,选择队列i(步骤S15.2)。
消息处理器42首先处理报头数据53,报头数据53可以是以太网帧9的报头23。在这种情况下,消息处理器42存储如由软件所定义的报头数据53,因为描述符类型是FEMPTY。然而,如果由软件指示,则消息处理器42可以通过将描述符类型设置为FEMPTY_ND来丢弃报头数据53。
消息处理器42访问CDARi.CIA以获得指向第i个队列的描述符链73中的当前描述符63的指针(步骤S15.3)。然后,消息处理器42自动更新CDARi.CIA以指向链中的下一个描述符。
消息处理器42获取报头数据53的描述符63,报头数据53当前被设置为FEMPTY(DS=25),这为报头数据53分配25个字节(步骤S15.4)。使用DPTR,消息处理器42将报头数据53存储在用于第i个队列的报头数据的数据区域中(步骤S15.5)。这在图11中未示出。
然后,消息处理器42将描述符63更新(“回写”)到FSTART(DS=25),这允许报头数据读取(步骤S15.6)。
然后,消息处理器42处理有效载荷数据54。
消息处理器42访问CDARi.CIA以获得指向第i个队列的描述符链中的当前描述符的指针(步骤S15.7)。同样,消息处理器42然后自动更新CDARi.CIA以指向链中的下一个描述符。
消息处理器42获取有效载荷数据54的描述符63,有效载荷数据54的描述符63当前被设置为FEMPTY(DS=300)(步骤S15.8)。这表明数据区域64可用于存储有效载荷数据54,并且说明可用于存储的存储器的量(在这种情况下为300字节)。使用DPTR,消息处理器42将有效载荷数据54存储在用于第i个队列的有效载荷数据的数据区域64中(步骤S15.9)。
然后,消息处理器42将有效载荷描述符63更新为FEND(DS=300)(步骤S15.10)。消息处理器42通过将CIARi.CIA递增300(即,到下一个单独的描述符数据区域)来更新CIARi.CIA,并且通过将LIARi.LIA设置为具有与CIARi.CIA相同的值来更新LIARi.LIA。
如图11所示,如果有效载荷数据54仅为150字节长,但是单独数据区域64长300字节,则将出现未使用存储器的间隙92。
使用公共增量数据区域进行存储
参考图4、图5、图12和图15,现在将描述使用增量数据区域存储报头数据53和有效载荷数据54的过程。
消息处理器42从MAC 41接收帧9(步骤S16.1)。消息处理器42根据帧类型和/或帧内容对帧9进行分类,并且响应于识别帧匹配给定帧类型和/或给定帧内容,选择队列i(步骤S16.2)。
消息处理器42以与上文描述的单个描述符数据区域相同的方式处理帧的报头,并且因此这里不再描述(步骤S16.3至S16.6)。
然后,消息处理器42处理有效载荷数据54。
消息处理器42访问CDARi.CIA以获得指向第i个队列的描述符链中的当前描述符的指针(步骤S16.7)。消息处理器42自动更新CDARi.CIA以指向链中的下一个描述符。
消息处理器42获取有效载荷数据54的描述符63,有效载荷数据54的描述符63当前是FEMPTY_IS(步骤S15.8)。这表示应使用增量存储。应该使用由该增量存储器通知的消息处理器42访问CIARi.CIA以获得继续增量存储的地址(S16.8A)。
消息处理器42将有效载荷数据54存储在用于第i个队列的有效载荷数据的数据区域64中(步骤S16.9)。
然后,消息处理器42将有效载荷描述符63更新为FEND(DS=150)(步骤S16.10)。CIARi.CIA通过将CIARi.CIA递增150来更新,LIARi.LIA通过将LIARi.LIA设置为与CIARi.CIA具有相同的值来更新。
如图12所示,如果有效载荷数据54仅为150字节长,但使用增量存储,则数据54连续存储在为队列的有效载荷数据保留的存储器中而没有任何间隙92。
修改
应当理解,可以对本文之前描述的实施例进行许多修改。这些修改可以包括在微控制器、通信网络控制器、存储器系统或其部件的设计、制造和使用中已知的等效和其他特征,并且可以使用这些修改代替或补充本文已经描述的特征。一个实施例的特征可以由另一个实施例的特征替换或补充。
尽管在本申请中已经将权利要求制定为特征的特定组合,但是应当理解,本发明的公开内容的范围还包括本文公开的任何新颖特征或任何新颖特征的组合,无论是明确地还是隐含地或其任何概括,无论它是否涉及与任何权利要求中目前要求保护的相同的发明,以及无论它是否减轻了与本发明相同的任何或所有相同的技术问题。申请人在此告知,在本申请或由此衍生的任何进一步申请的审查期间,可以对这些特征和/或这些特征的组合制定新的权利要求。
Claims (23)
1.一种通信网络控制器模块,包括:
媒体访问控制器(41);以及
消息处理器(42);
其中,所述消息处理器被配置为:响应于从所述媒体访问控制器接收到包括帧数据的帧(9),来识别所述帧的帧类型、基于所述帧类型识别目标队列(200、201、...、20r)、获得所述目标队列的当前描述符(63)的当前描述符地址(65)、以及获得存储器(13)中被保留以用于存储所述帧类型的帧的一系列数据区域(64)中的地址并且将所述帧数据的一部分(61)存储在所述地址处,所述目标队列包括所述一系列数据区域(64),所述当前描述符包括描述符类型字段(66),
其特征在于,所述消息处理器被配置为:基于确定所述描述符类型字段(66)中保存的描述符类型指示所述帧数据部分要连续存储在所述一系列数据区域中,通过从用于所述目标队列的当前增量地址寄存器(490、491、...、49r)读取所述地址来获得存储所述帧数据部分的所述地址。
2.根据权利要求1所述的模块,其中所述消息处理器被配置为将新的帧类型写入所述描述符类型字段。
3.根据权利要求1或2所述的模块,其中所述消息处理器被配置为将所述地址存储在用于所述目标队列(r)的最后增量地址寄存器(490、491、...、49r)中。
4.根据任意前述权利要求所述的模块,其中所述消息处理器被配置为:在用于所述目标队列的所述当前增量地址寄存器(490、491、...、49r)中写入新的地址,以直接指向所述帧数据部分的结尾之后,以便允许在所述帧数据部分之后连续存储下一帧数据部分。
5.根据任意前述权利要求所述的模块,其中所述当前描述符地址是从用于所述目标队列(200、201、...、20r)的、指向所述当前描述符的当前描述符地址寄存器(480、481、...、48q)获得的,并且所述通信网络控制器模块被配置为:在从所述当前描述符地址寄存器获得所述当前描述符地址(65)之后,更新所述当前描述符地址寄存器以指向下一个描述符。
6.根据任意前述权利要求所述的模块,其中所述模块被配置为使用报头描述符处理报头帧数据,并且使用不同的有效载荷描述符处理有效载荷帧数据。
7.根据权利要求6所述的模块,其中所述消息处理器被配置为在所述一系列数据区域中连续存储有效载荷数据,并且响应于所述报头描述符指示所述消息处理器丢弃所述报头而丢弃所述报头。
8.根据权利要求6或7所述的模块,其中所述消息处理器被配置为在所述一系列数据区域中连续存储有效载荷数据,并且响应于所述报头描述符指示所述消息处理器存储所述报头而存储所述报头。
9.根据权利要求8所述的模块,其中存储器(13)中的所述一系列数据区域(64)被保留以用于存储所述帧类型的所述帧的有效载荷,并且其中所述消息处理器被配置为将所述报头存储在存储器中被保留以用于存储所述帧类型的所述帧的报头的另一系列数据区域中。
10.根据任意前述权利要求所述的模块,其中所述帧数据部分包括有效载荷。
11.根据任意前述权利要求所述的模块,其中所述数据帧是以太网帧。
12.根据权利要求11所述的模块,其中所述以太网帧遵从IEEE 1722音频/视频桥接传输协议。
13.根据权利要求1至11中任一项所述的模块,其中所述数据帧是TCP/IP帧。
14.一种集成电路,包括:
根据前述权利要求中任一项所述的模块;
系统总线;以及
经由所述系统总线与所述模块通信的中央处理单元子系统。
15.根据权利要求14所述的集成电路,其中所述集成电路是微控制器、片上系统或专用集成电路。
16.根据权利要求14或15所述的集成电路,进一步包括:存储器。
17.一种计算机系统,包括:
根据权利要求14或15所述的第一集成电路;和
与所述第一集成电路通信的不同的第二集成电路,所述第二集成电路提供存储器。
18.一种控制单元,包括:
根据权利要求14、15或16所述的集成电路;或
根据权利要求17所述的计算机系统。
19.一种系统,包括:
根据权利要求18所述的控制单元;
至少一个数据源;
通信网络,所述通信网络被设置为将数据从所述至少一个数据源传递到所述控制单元。
20.根据权利要求18所述的系统,进一步包括:
至少一个显示器,所述至少一个显示器耦接到所述控制单元以用于显示。
21.一种车辆,包括根据权利要求19或20所述的系统。
22.一种方法,包括:
识别包括帧数据的帧的帧类型;
基于所述帧类型识别目标队列(200、201、...、20r),所述目标队列包括存储器(13)中被保留以用于存储所述帧类型的帧的一系列数据区域(64);
获得所述目标队列的当前描述符(63)的当前描述符地址(65),所述当前描述符包括描述符类型字段(66);以及
获得所述一系列数据区域(64)中的地址并且将所述帧数据的一部分(61)存储在所述地址处;
其特征在于,基于确定所述描述符类型字段(66)中保存的描述符类型指示所述帧数据部分要连续存储在所述一系列数据区域中,通过从用于所述目标队列的当前增量地址寄存器(490、491、...、49r)读取所述地址来获得存储所述帧数据部分的所述地址。
23.一种方法,包括:
根据权利要求22使用报头描述符处理报头帧数据;以及
使用不同的有效载荷描述符处理有效载荷帧数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/077140 WO2018086683A1 (en) | 2016-11-09 | 2016-11-09 | Communications network controller module |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109952764A true CN109952764A (zh) | 2019-06-28 |
CN109952764B CN109952764B (zh) | 2021-11-23 |
Family
ID=57321287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680090708.8A Active CN109952764B (zh) | 2016-11-09 | 2016-11-09 | 通讯网络控制器模块、存储数据的方法和辅助系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11456975B2 (zh) |
EP (1) | EP3539293A1 (zh) |
CN (1) | CN109952764B (zh) |
WO (1) | WO2018086683A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221755A (zh) * | 2019-12-28 | 2020-06-02 | 重庆秦嵩科技有限公司 | 一种FPGA2子模块的io中断控制方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436172B2 (en) * | 2020-09-16 | 2022-09-06 | Hughes Network Systems, Llc | Data frame interface network device |
CN112835823B (zh) * | 2021-01-25 | 2022-03-01 | 无锡众星微系统技术有限公司 | 存储控制器应答发送方法 |
CN112995066B (zh) * | 2021-02-05 | 2023-10-24 | 新天科技股份有限公司 | 帧数据处理方法、装置、电子设备及存储介质 |
EP4113951A1 (en) * | 2021-06-29 | 2023-01-04 | Renesas Electronics Corporation | Frame data processing |
CN113839819B (zh) * | 2021-09-24 | 2022-08-05 | 北京微纳星空科技有限公司 | 一种协议转换器扩展串口的方法、装置、设备及存储介质 |
CN116032846A (zh) * | 2022-11-17 | 2023-04-28 | 中国第一汽车股份有限公司 | 支持帧抢占的mac ip核装置、支持帧抢占的数据帧发送方法和接收方法 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386522A (en) * | 1991-12-30 | 1995-01-31 | International Business Machines, Corp. | Dynamic physical address aliasing during program debugging |
JP2000242588A (ja) * | 1998-11-18 | 2000-09-08 | Samsung Electronics Co Ltd | イーサネットコントローラのメモリ管理装置及びその管理方法 |
US20010053148A1 (en) * | 2000-03-24 | 2001-12-20 | International Business Machines Corporation | Network adapter with embedded deep packet processing |
US20020032804A1 (en) * | 1998-10-02 | 2002-03-14 | Hunt Galen C. | Heavyweight and lightweight instrumentation |
US20040098707A1 (en) * | 2002-11-18 | 2004-05-20 | Microsoft Corporation | Generic wrapper scheme |
CN1581835A (zh) * | 2003-07-31 | 2005-02-16 | 富士通株式会社 | 用于无线局域网的介质访问控制设备 |
WO2005015836A1 (fr) * | 2003-08-06 | 2005-02-17 | Zte Corporation | Procede et systeme de commutation a base de commutation de niveau de service |
CN1698337A (zh) * | 2003-06-05 | 2005-11-16 | 恩维达公司 | 利用卸载单元处理tcp连接数据 |
US20060092844A1 (en) * | 2004-11-03 | 2006-05-04 | Electronics And Telecommunications Research Institute | Apparatus for transmitting WPAN MAC frames and method thereof |
CN1950810A (zh) * | 2003-10-17 | 2007-04-18 | 思科技术公司 | 用于主机子卡接口的后向兼容并行ddr总线 |
CN101247266A (zh) * | 2008-03-21 | 2008-08-20 | 深圳国人通信有限公司 | 以太网中进行数据处理的方法 |
US20110016284A1 (en) * | 2009-07-16 | 2011-01-20 | Shreeharsha Balan | Memory Management in Network Processors |
CN103902746A (zh) * | 2014-03-11 | 2014-07-02 | 深圳市元征科技股份有限公司 | 故障码、数据流及冻结帧数据保存和回放的方法 |
US9238937B2 (en) * | 2013-04-30 | 2016-01-19 | Smart Reveal Pty Ltd | Flashing and joiner for window installations |
US20160035399A1 (en) * | 2014-07-31 | 2016-02-04 | Texas Instruments Incorporated | Method and apparatus for asynchronous fifo circuit |
CN105530207A (zh) * | 2015-12-11 | 2016-04-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多类型数据帧的交换机端口仲裁电路及方法 |
CN105577563A (zh) * | 2015-12-22 | 2016-05-11 | 中国电子科技集团公司第三十二研究所 | 流量管理的方法 |
US20160191973A1 (en) * | 2014-12-29 | 2016-06-30 | Harman International Industries, Incorporated | Avb system bandwidth configuration |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583562A (en) * | 1993-12-03 | 1996-12-10 | Scientific-Atlanta, Inc. | System and method for transmitting a plurality of digital services including imaging services |
JP3337066B2 (ja) * | 1999-04-13 | 2002-10-21 | 日本電気株式会社 | Mpegデータ処理装置 |
US20030037154A1 (en) * | 2001-08-16 | 2003-02-20 | Poggio Andrew A. | Protocol processor |
US7958255B1 (en) * | 2003-11-04 | 2011-06-07 | Advanced Micro Devices, Inc. | Partial coalescing of transmit buffers |
US8391354B2 (en) * | 2007-05-14 | 2013-03-05 | Broadcom Corporation | Method and system for transforming uncompressed video traffic to network-aware ethernet traffic with A/V bridging capabilities and A/V bridging extensions |
US20090310489A1 (en) * | 2008-06-17 | 2009-12-17 | Bennett Andrew M | Methods and apparatus using a serial data interface to transmit/receive data corresponding to each of a plurality of logical data streams |
US7826469B1 (en) * | 2009-03-09 | 2010-11-02 | Juniper Networks, Inc. | Memory utilization in a priority queuing system of a network device |
US9584342B1 (en) * | 2010-05-26 | 2017-02-28 | Marvell International Ltd. | Enhanced audio video bridging (AVB) methods and apparatus |
US9680689B2 (en) * | 2013-02-14 | 2017-06-13 | Comcast Cable Communications, Llc | Fragmenting media content |
US9736069B1 (en) * | 2013-09-03 | 2017-08-15 | Cavium, Inc. | Method for storing and retrieving packets in high bandwidth and low latency packet processing devices |
-
2016
- 2016-11-09 WO PCT/EP2016/077140 patent/WO2018086683A1/en unknown
- 2016-11-09 EP EP16795289.4A patent/EP3539293A1/en active Pending
- 2016-11-09 CN CN201680090708.8A patent/CN109952764B/zh active Active
- 2016-11-09 US US16/348,703 patent/US11456975B2/en active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386522A (en) * | 1991-12-30 | 1995-01-31 | International Business Machines, Corp. | Dynamic physical address aliasing during program debugging |
US20020032804A1 (en) * | 1998-10-02 | 2002-03-14 | Hunt Galen C. | Heavyweight and lightweight instrumentation |
JP2000242588A (ja) * | 1998-11-18 | 2000-09-08 | Samsung Electronics Co Ltd | イーサネットコントローラのメモリ管理装置及びその管理方法 |
US20010053148A1 (en) * | 2000-03-24 | 2001-12-20 | International Business Machines Corporation | Network adapter with embedded deep packet processing |
US20040098707A1 (en) * | 2002-11-18 | 2004-05-20 | Microsoft Corporation | Generic wrapper scheme |
CN1698337A (zh) * | 2003-06-05 | 2005-11-16 | 恩维达公司 | 利用卸载单元处理tcp连接数据 |
CN1581835A (zh) * | 2003-07-31 | 2005-02-16 | 富士通株式会社 | 用于无线局域网的介质访问控制设备 |
WO2005015836A1 (fr) * | 2003-08-06 | 2005-02-17 | Zte Corporation | Procede et systeme de commutation a base de commutation de niveau de service |
CN1950810A (zh) * | 2003-10-17 | 2007-04-18 | 思科技术公司 | 用于主机子卡接口的后向兼容并行ddr总线 |
US20060092844A1 (en) * | 2004-11-03 | 2006-05-04 | Electronics And Telecommunications Research Institute | Apparatus for transmitting WPAN MAC frames and method thereof |
CN101247266A (zh) * | 2008-03-21 | 2008-08-20 | 深圳国人通信有限公司 | 以太网中进行数据处理的方法 |
US20110016284A1 (en) * | 2009-07-16 | 2011-01-20 | Shreeharsha Balan | Memory Management in Network Processors |
US9238937B2 (en) * | 2013-04-30 | 2016-01-19 | Smart Reveal Pty Ltd | Flashing and joiner for window installations |
CN103902746A (zh) * | 2014-03-11 | 2014-07-02 | 深圳市元征科技股份有限公司 | 故障码、数据流及冻结帧数据保存和回放的方法 |
US20160035399A1 (en) * | 2014-07-31 | 2016-02-04 | Texas Instruments Incorporated | Method and apparatus for asynchronous fifo circuit |
US20160191973A1 (en) * | 2014-12-29 | 2016-06-30 | Harman International Industries, Incorporated | Avb system bandwidth configuration |
CN105530207A (zh) * | 2015-12-11 | 2016-04-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多类型数据帧的交换机端口仲裁电路及方法 |
CN105577563A (zh) * | 2015-12-22 | 2016-05-11 | 中国电子科技集团公司第三十二研究所 | 流量管理的方法 |
Non-Patent Citations (2)
Title |
---|
ZHANGSHUAI HUANG: "《An efficient coding framework for compact descriptors extracted from video sequence》", 《2015 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING》 * |
栾志国: "《网络处理器中帧处理技术研究》", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221755A (zh) * | 2019-12-28 | 2020-06-02 | 重庆秦嵩科技有限公司 | 一种FPGA2子模块的io中断控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190288961A1 (en) | 2019-09-19 |
EP3539293A1 (en) | 2019-09-18 |
WO2018086683A1 (en) | 2018-05-17 |
CN109952764B (zh) | 2021-11-23 |
US11456975B2 (en) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109952764A (zh) | 通讯网络控制器模块 | |
CA2124452C (en) | Method and apparatus for processing data within stations of a communication network | |
JP5199399B2 (ja) | 通信ネットワークの直列データバスを介して当該ネットワークの加入者に到着したメッセージについての情報を格納するための方法及びフィルタ構成 | |
Di Natale et al. | Understanding and using the controller area network communication protocol: theory and practice | |
TWI524699B (zh) | 控制器區域網路(can)控制器單元、儲存can訊息之方法及相關聯微控制器 | |
CN101044737B (zh) | 分组合并 | |
DE60207177T2 (de) | System, welches zwei oder mehr Paketschnittstellen, einen Schalter, einen gemeinsamen Paket-DMA (Direct Memory Access)-Schaltkreis sowie einen L2 (Level 2) Cache aufweist | |
US6522188B1 (en) | High-speed data bus for network switching | |
EP3788497A1 (en) | Time synchronization for clocks separated by a communication link | |
WO2010024855A1 (en) | System and method for reducing latency associated with timestamps in a multi-core, multi-threaded processor | |
CN114185829B (zh) | 用于多种通信业务的共享的资源 | |
WO1999053646A2 (en) | System and process for application-level flow connection of data processing networks | |
EP3055959B1 (en) | Data communications network for an aircraft | |
JP2008113096A (ja) | ゲートウェイ装置及びデータ管理方法 | |
KR102202408B1 (ko) | 제네릭 인터페이스를 제공하기 위한 방법 및 제네릭 인터페이스를 구비한 마이크로컨트롤러 | |
US20150106473A1 (en) | Data communications network for an aircraft | |
US20030012223A1 (en) | System and method for processing bandwidth allocation messages | |
US9485113B2 (en) | Data communications network for an aircraft | |
TW201843598A (zh) | 用於在串列通訊鏈路上以均勻潛時傳輸事件之裝置及方法 | |
US9274586B2 (en) | Intelligent memory interface | |
CN110463212A (zh) | 用于媒体到以太网框架打包的低延迟管道 | |
CN102130099B (zh) | 封装体以及用在封装体中的方法和管芯 | |
CN115152184B (zh) | 网络中序列号的同步 | |
AU2002340733B2 (en) | Method and device for producing program interruptions in subscribers to a bus system, and corresponding bus system | |
CN111147175B (zh) | 时间触发以太网数据帧捕获、存储装置及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |