CN108614792A - 1394事务层数据包存储管理方法及电路 - Google Patents
1394事务层数据包存储管理方法及电路 Download PDFInfo
- Publication number
- CN108614792A CN108614792A CN201611140180.9A CN201611140180A CN108614792A CN 108614792 A CN108614792 A CN 108614792A CN 201611140180 A CN201611140180 A CN 201611140180A CN 108614792 A CN108614792 A CN 108614792A
- Authority
- CN
- China
- Prior art keywords
- data packet
- module
- transmission data
- transmission
- data
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0012—High speed serial bus, e.g. IEEE P1394
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种1394事务层数据包存储管理的电路及方法。电路包括发送链头队列FIFO缓冲区模块、发送数据帧描述符缓冲区模块、发送数据包缓冲区模块和事务层发送缓存管理控制模块。发送链头队列FIFO缓冲区模块的输入端与PLB的输出端口相连接;数据帧描述符缓冲区模块和发送数据包缓冲区模块与PLB双向连接;发送链头队列FIFO缓冲区模块的输出端与事务层发送缓存管理控制模块的输入端相连接;数据帧描述符缓冲区模块、发送数据包数据区模块与事务层发送缓存管理控制模块双向连接;事务层发送缓存管理控制模块的输出端与外部链路层连接。适用于1394总线等时和异步传输模式,能够有效实现等时传输模式实时性大量传输数据。
Description
技术领域
本发明属于计算机硬件控制领域,涉及一种1394事务层数据包存储管理电路及方法。
背景技术
Mil-1394总线作为新一代机载高速总线,主要用于机载子系统内部互联和子系统之间的数据交互,支持异步传输和等时传输方式。在不同的传输速率模式下,IEEE1394协议规定在S100B、S400B速度模式下,能能发送的数据包的最大长度分别是512Bytes、2048Bytes,在1394通信过程中,对于携带大量数据信息超过协议限定的数据包长度时,就需要对这种数据包进行组织、拆分成协议限定长度内的数据包,对于这种拆分过后的各个小数据包传统方法采用存储器连续存储的方式或基于FIFO存储器的消息队列方式,采用这种设计控制复杂,消耗资源多,且扩展受限不利于满足1394总线通信实时性和准确性的通信需求,尤其对数据包的缓存管理效率严重制约着事务层对上层应用数据包的存储转发速度,如何选取合适的缓存管理方法成为关键。
发明内容
本发明的目的是:
提供一种1394事务层数据包存储管理方法及电路,用以满足1394总线等时传输时大量数据包实时性传输的要求,也适应1394总线异步传输应用无损传输数据的情况,提高缓存管理的效率,加速网络总线数据的存储转发速度。
本发明的解决方案是:
本发明提供一种1394事务层数据包存储管理方法,其方法包括以下步骤:
步骤1、首先,1394事务层进行系统总线复位,外部上层应用软件根据1394总线网络通信需求,即不同的传输速率模式下数据包传输长度不同,如果数据包长度超过规定速度模式下限定的数据包长度,则由外部上层应用软件根据IEEE1394协议限定的最大数据包长,将异步通道或等时通道待发送传输的数据包进行组织、拆分成各分段小数据包,其次,外部上层应用软件根据异步通道和等时通道待发送数据包的特点设置发送数据包缓冲区模块内部异步或等时发送数据缓冲区的基地址和大小,设置发送数据帧描述符缓冲区模块内部异步或等时发送数据帧描述符缓冲区的大小,其中,如果数据帧个数多、数据包长度小则可以将描述符缓冲区设置大些,数据缓冲区设置小些,否则将描述符缓冲区设置小些,数据缓冲区设置大些。
步骤2、根据上述步骤1,首先,外部PLB接口总线将上述各分段小数据包输出给发送数据包缓冲区模块,即外部PLB接口总线判断各分段小数据包类型,如果是异步类型分段小数据包,则外部PLB接口总线将该分段小数据包存入发送数据包缓冲区模块内部的异步发送数据包缓冲区内,如果是等时类型分段小数据包,则外部PLB接口总线将该分段小数据包存入发送数据包缓冲区模块内部的等时发送数据包缓冲区内;其次,外部PLB接口总线根据异步或等时分段小数据包在发送数据包缓冲区模块内存储起始地址偏移量、数据包编号、数据包类型和数据帧的总长度的索引信息输出给发送数据帧描述符缓冲区模块内部等时或异步发送数据帧描述符缓冲区相应的区域;
步骤3,根据上述步骤2,首先,发送数据帧描述符缓冲区模块接收到这些索引信息,判断当前数据包的数据包类型是等时还是异步,如果是等时分段小数据包,则将该索引信息存储到发送数据帧描述符缓冲区的等时帧发送数据帧描述符缓冲区内,存储完成之后,如果该步骤后续再接收到步骤2发送的等时分段小数据包索引信息,则将后接收的索引信息按照字地址递增的存储的方式,存储在上一个等时索引信息之后。如果是异步分段小数据包,则将该索引信息存储到发送数据帧描述符缓冲区的异步帧发送数据帧描述符缓冲区内,存储完成之后,如果该步骤后续再接收到步骤2发送的异步分段小数据包索引信息,则将后接收的索引信息按照字地址递增的存储的方式,存储在上一个异步索引信息之后。其次,发送数据帧描述符缓冲区模块根据异步或等时分段小数据包的帧描述符存储形式,即,Frame Number(当前统一数据包链上各分段数据包的个数)、数据包传输类型和ListHeader Pointer(发送数据帧描述符起始偏移指针)描述帧索引信息,发送数据帧描述符缓冲区模块将这些数据链索引信息输出给发送链头队列FIFO缓冲区模块;
步骤4,根据上述步骤3,首先,发送链头队列FIFO缓冲区模块收到这些数据链索引信息后,将其存入内部的发送链头队列FIFO缓冲区中,其次,发送链头队列FIFO将自身的“空”或“满”状态传输给事务层发送缓存管理控制模块;
步骤5,根据上述步骤4,首先,事务层发送缓存管理控制模块内部控制逻辑不断监测发送链头队列FIFO缓冲区模块内部链头队列FIFO的“空”和“满”状态,只要队列不空,事务层发送缓存管理控制模块内发送控制逻辑就从发送链头队列FIFO缓冲区读取一个数据链索引信息,获取发送数据帧描述符缓冲区各分段小数据包帧描述符信息,其次,根据数据包描述符索引信息从发送数据缓冲区模块内Data Block Header Pointer(帧起始地址偏移量)指定起始位置调度出相应数据包,并在数据搬运过程中进行错误检测,如果符合IEEE1394协议约定的等时或异步传输的数据包,则将该数据包从发送数据包缓冲区内搬运至事务层发送缓存管理控制模块的发送数据FIFO中,否则,将错误的数据包进行丢弃处理,最后,当事务层发送缓存管理控制模块检测外部链路层接收控制逻辑ready时,即准备好接红数据包,事务层发送缓存管理控制模块内发送数据FIFO中的数据包输出给外部链路层。
实现上述1394总线事务层数据包存储管理方法的电路,包括:
发送数据包缓冲区模块、发送数据帧描述符缓冲区模块、发送链头队列FIFO缓冲区模块、和事务层发送缓存管理控制模块;
发送数据包缓冲区模块,与PLB(Processor Local Bus,处理器局部总线)双向连接;外部上层应用软件根据1394总线网络通信需求,即不同的传输速率模式下数据包传输长度不同,如果数据包长度超过规定速度模式下限定的数据包长度,则需要将待发送传输的异步或等时数据包进行组织、拆分成各分段小数据包,发送数据包缓冲区模块通过PLB接口总线的输出端接收这些分段小数据包,并将其根据异步或等时数据包的类型存储在发送数据包缓冲区模块内部异步发送数据缓存区和等时发送数据缓冲区内;
发送数据帧描述符缓冲区模块,与PLB接口总线双向连接,首先,发送数据包缓冲区模块将内部等时或异步数据包存储的每个数据包位置、数据包类型、数据包编号和数据包的大小信息输出给PLB接口总线,其次,PLB接口总线将接收到的发送数据包缓冲区模块内部每个发送数据包的信息输出给发送数据帧描述符缓冲区模块,发送数据帧描述符缓冲区模块接收到这些信息,判断当前数据包的数据包类型,如果是等时数据包,则根据数据包类型、数据包编号将属于1394总线同一个数据包的各分段小数据包的描述符信息连续存储在发送数据帧描述符缓冲区模块内部的等时或异步描述符缓冲区内;
所述数据包类型包括等时和异步传输两种数据类型;
所述描述符信息包括发送数据缓冲区中的Data Block Header Pointer(帧起始地址偏移量)和Data Block Length(数据帧的总长度);
发送链头队列FIFO缓冲区模块,该模块的输入端与PLB(Processor Local Bus,处理器局部总线)的输出端口相连接,首先,发送数据帧描述符缓冲区模块将内部异步或等时描述符存存区存储各分段小数据包的存储Frame Number(当前统一数据包链上各分段数据包的个数)、数据包传输类型和List Header Pointer(发送数据帧描述符起始偏移指针)信息输出给PLB接口总线,其次,PLB接口总线将接收到的这些信息输出给发送链头队列FIFO缓冲区模块进行缓存;
事务层发送缓存管理控制模块,该模块的输入端与发送链头队列FIFO缓冲区模块的输出端相连,该模块的输入端与外部链路层连接,首先,事务层发送缓存管理控制模块不断监测发送链头队列FIFO缓冲区模块内部链头队列FIFO的“空”和“满”状态,只要队列不空,则事务层发送缓存管理控制模块内部发送控制逻辑读取发送链头队列FIFO缓冲区模块的一个链表信息,获取发送数据帧描述符缓冲区模块中的各分段小数据包描述符信息,其次,事务层发送缓存管理控制模块根据各分段小数据包描述符索引信息从发送数据缓冲区模块内Data Block Header Pointer(帧起始地址偏移量)指定位置调度出相应数据包,在数据搬运过程中进行错误检测,符合1394总线发送要求的数据包,则将数据包从发送数据包缓冲区内搬运至事务层发送缓存管理控制模块,错误的数据包则进行丢弃操作处理,当检测外部链路层ready状态时,将该数据包输出给外部链路层。
本发明具有的优点效果:
本发明是一种1394事务层数据包存储管理方法及电路,依据1394总线协议异步和等时传输的数据包类型,采用由硬件实现各数据地址存储地址的独立划分,对1394总线上大量的数据待传输的数据包,同类型数据包的缓冲区采取数据帧信息链表队列存储和数据包环形存储管理的形式,实现事务层的发送数据包的实时、快速的调度转发,其技术效果有:
a.适用于1394总线等时和异步传输模式,能够有效实现等时传输应用实时性大量传输数据,也适应异步传输应用无损传输数据的情况;
b.通过采用数据帧信息链表队列存储和数据包环形存储算法使电路设计结构简单,离散存储和动态分配的特性使外部应用软件分配数据包存储空间更加方便;
c.设置缓冲区配置开关可以灵活性配置描述符和数据缓冲区的大小,提高缓存管理的效率,加速网络总线数据的存储转发速度,可以充分利用系统缓存,节省系统存储资源。
同时,采用链表数据包队列式的动态存储管理算法设计上结构简单、使用灵活、易于扩展、可以充分利用系统缓存,节省系统存储资源。
附图说明
图1为本发明的电路结构框图;
图2发送数据帧描述符缓冲区内发送数据包描述符数据格式;
图3发送链头队列FIFO缓冲区内每条链的数据格式。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
下面结合具体实施例和附图对本发明的技术方案做进一步详细描述,请参阅图1、图2和图3。
本发明1394事务层数据包存储管理方法,包括以下步骤:
步骤1、首先,1394事务层进行系统总线复位,外部上层应用软件根据1394总线网络通信需求,即不同的传输速率模式下数据包传输长度不同,如果数据包长度超过规定速度模式下限定的数据包长度,则由外部上层应用软件根据IEEE1394协议限定的最大数据包长,将异步通道或等时通道待发送传输的数据包进行组织、拆分成各分段小数据包,其次,外部上层应用软件根据异步通道和等时通道待发送数据包的特点设置发送数据包缓冲区模块内部异步或等时发送数据缓冲区的基地址和大小,设置发送数据帧描述符缓冲区模块内部异步或等时发送数据帧描述符缓冲区的大小,其中,如果数据帧个数多、数据包长度小则可以将描述符缓冲区设置大些,数据缓冲区设置小些,否则将描述符缓冲区设置小些,数据缓冲区设置大些,可以采用寄存器形式设置发送描述符缓冲区大小,可根据具体需要进行设置。
步骤2、根据上述步骤1,首先,外部PLB接口总线将上述各分段小数据包输出给发送数据包缓冲区模块,即外部PLB接口总线判断各分段小数据包类型,如果是异步类型分段小数据包,则外部PLB接口总线将该分段小数据包存入发送数据包缓冲区模块内部的异步发送数据包缓冲区内,如果是等时类型分段小数据包,则外部PLB接口总线将该分段小数据包存入发送数据包缓冲区模块内部的等时发送数据包缓冲区内;其次,外部PLB接口总线根据异步或等时分段小数据包在发送数据包缓冲区模块内存储起始地址偏移量、数据包编号、数据包类型和数据帧的总长度的索引信息输出给发送数据帧描述符缓冲区模块内部等时或异步发送数据帧描述符缓冲区相应的区域;
步骤3,根据上述步骤2,首先,发送数据帧描述符缓冲区模块接收到这些索引信息,判断当前数据包的数据包类型是等时还是异步,如果是等时分段小数据包,则将该索引信息存储到发送数据帧描述符缓冲区的等时帧发送数据帧描述符缓冲区内,存储完成之后,如果该步骤后续再接收到步骤2发送的等时分段小数据包索引信息,则将后接收的索引信息按照字地址递增的存储的方式,存储在上一个等时索引信息之后。如果是异步分段小数据包,则将该索引信息存储到发送数据帧描述符缓冲区的异步帧发送数据帧描述符缓冲区内,存储完成之后,如果该步骤后续再接收到步骤2发送的异步分段小数据包索引信息,则将后接收的索引信息按照字地址递增的存储的方式,存储在上一个异步索引信息之后。其次,发送数据帧描述符缓冲区模块根据异步或等时分段小数据包的帧描述符存储形式,即,Frame Number(当前统一数据包链上各分段数据包的个数)、数据包传输类型和ListHeader Pointer(发送数据帧描述符起始偏移指针)描述帧索引信息,发送数据帧描述符缓冲区模块将这些数据链索引信息输出给发送链头队列FIFO缓冲区模块;
步骤4,根据上述步骤3,首先,发送链头队列FIFO缓冲区模块收到这些数据链索引信息后,将其存入内部的发送链头队列FIFO缓冲区中,其次,发送链头队列FIFO将自身的“空”或“满”状态传输给事务层发送缓存管理控制模块;
步骤5,根据上述步骤4,首先,事务层发送缓存管理控制模块内部控制逻辑不断监测发送链头队列FIFO缓冲区模块内部链头队列FIFO的“空”和“满”状态,只要队列不空,事务层发送缓存管理控制模块内发送控制逻辑就从发送链头队列FIFO缓冲区读取一个数据链索引信息,获取发送数据帧描述符缓冲区各分段小数据包帧描述符信息,其次,根据数据包描述符索引信息从发送数据缓冲区模块内Data Block Header Pointer(帧起始地址偏移量)指定起始位置调度出相应数据包,并在数据搬运过程中进行错误检测,如果符合IEEE1394协议约定的等时或异步传输的数据包,则将该数据包从发送数据包缓冲区内搬运至事务层发送缓存管理控制模块的发送数据FIFO中,否则,将错误的数据包进行丢弃处理,最后,当事务层发送缓存管理控制模块检测外部链路层接收控制逻辑ready时,即准备好接红数据包,事务层发送缓存管理控制模块内发送数据FIFO中的数据包输出给外部链路层。
实现上述1394事务层数据包存储管理方法的电路,包含发送数据包缓冲区模块1、发送数据帧描述符缓冲区模块2、发送链头队列FIFO缓冲区模块3、和事务层发送缓存管理控制模块4;
所述发送数据包缓冲区模块1、发送数据帧描述符缓冲区模块2、发送链头队列FIFO缓冲区模块3的输入端与PLB(Processor Local Bus,处理器局部总线)接口模块双向连接;发送链头队列FIFO缓冲区模块3的输出端与事务层发送缓存管理控制模块的输入端相连接;发送数据包缓冲区模块1、发送数据帧描述符缓冲区模块2与事务层发送缓存管理控制模块双向连接;事务层发送缓存管理控制模块的输出端与外部链路层输入端相连接。具体结构如图1所示:
发送数据包缓冲区模块1,用于存储异步发送通道或等时发送通道待发送数据,首先,外部上层应用软件根据1394总线网络通信需求(不同的传输速率模式下数据包传输长度不同),如果数据包长度超过规定速度模式下限定的数据包长度,则需要将待发送传输的异步或等时数据包进行组织、拆分成各分段小数据包,其次,发送数据包缓冲区模块1通过PLB接口总线的输出端接收这些分段小数据包,最后,根据异步或等时数据包的类型存储到发送数据包缓冲区模块内部(1)异步发送数据缓存区和等时发送数据缓冲区内;发送数据缓冲区存储的数据格式与事务层发送缓存管理控制模块内部的发送数据缓存FIFO中的数据格式一致,满足IEEE1394协议数据包格式要求;
发送数据帧描述符缓冲区模块2,如图2所示,用于存储发送数据包缓冲区模块1中各个分段小数据包的在发送数据包缓冲区的索引信息,首先,发送数据包缓冲区模块1将内部等时或异步数据包存储的每个数据包位置、数据包类型(等时或异步)、数据包编号和数据包的大小信息输出给PLB接口总线,其次,PLB接口总线将接收到的发送数据包缓冲区模块1内部每个发送数据包的信息输出给发送数据帧描述符缓冲区模块2,发送数据帧描述符缓冲区模块2接收到这些信息,判断当前数据包的数据包类型(等时或异步),如果是等时数据包,则根据数据包类型(等时或异步)、数据包编号将属于1394总线同一个数据包的各分段小数据包的描述符信息连续存储在发送数据帧描述符缓冲区模块2内部的等时或异步描述符缓冲区内,其中,所述描述符信息具体包括:发送数据缓冲区中的Data Block HeaderPointer(帧起始地址偏移量)和Data Block Length(数据帧的总长度)。其中,Data BlockLength的单位是字(4字节),对于异步发送,Data Block Length的有效取值范围为[3,4096];对于等时发送,Data Block Length的有效取值范围为[1,4096];Data BlockHeader Pointer(帧起始地址偏移量),左移4位表示该数据块在数据缓冲区内的头指针,其单位是4字(16字节),即发送包数据缓冲区内的数据块都是按照16字节(128位)对齐的方式进行存储的。异步发送(简写为AT)或等时发送(简写为IT)描述符缓冲区内每个描述符的第12至16比特位填写等时或异步传输的类型标识和数据包编号,如果数据传输过程中检测该部分错误,则产生错误中断;
发送链头队列FIFO缓冲区模块3,用于存储每条待发送数据链的索引信息,如下图3所示,该模块的输入端与PLB(Processor Local Bus,处理器局部总线)的输出端口相连接,首先,发送数据帧描述符缓冲区模块2将内部异步或等时描述符存存区存储各分段小数据包的存储Frame Number(当前统一数据包链上各分段数据包的个数)、数据包传输类型(等时或异步标识)和List Header Pointer(发送数据帧描述符起始偏移指针)信息输出给PLB接口总线,其次,PLB接口总线将接收到的这些信息输出给发送链头队列FIFO缓冲区模块2进行缓存;其中,发送链头队列FIFO缓冲区采用一个同步FIFO来实现,其中FIFO的大小是:宽度32位,深度128(根据具体应用可以扩展)。
事务层发送缓存管理控制模块4,用于发送调度发送数据缓冲区中的数据包,该模块的输入端与发送链头队列FIFO缓冲区模块的输出端相连,该模块的输入端与外部链路层连接。首先,当外部上层系统软件通过设置事务层发送缓存管理控制模块内部的发送使能标识有效,事务层发送缓存管理控制模块不断监测发送链头队列FIFO缓冲区模块3内部链头队列FIFO的“空”和“满”状态,只要队列不空,则事务层发送缓存管理控制模块4内部发送控制逻辑读取发送链头队列FIFO缓冲区模块3的一个链表信息,获取发送数据帧描述符缓冲区模块2中的各分段小数据包描述符信息,其次,事务层发送缓存管理控制模块4根据各分段小数据包描述符索引信息从发送数据缓冲区模块1内Data Block Header Pointer(帧起始地址偏移量)指定位置调度出相应数据包,在数据搬运过程中进行错误检测,符合1394总线发送要求的数据包,则将数据包从发送数据包缓冲区内搬运至事务层发送缓存管理控制模块4,错误的数据包则进行丢弃操作处理,当检测外部链路层ready状态时,将该数据包输出给外部链路层。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (2)
1.一种1394事务层数据包存储管理方法,其特征在于,包括以下步骤:
步骤1、首先,1394事务层进行系统总线复位,外部上层应用软件根据1394总线网络通信需求,即不同的传输速率模式下数据包传输长度不同,如果数据包长度超过规定速度模式下限定的数据包长度,则由外部上层应用软件根据IEEE1394协议限定的最大数据包长,将异步通道或等时通道待发送传输的数据包进行组织、拆分成各分段小数据包,其次,外部上层应用软件根据异步通道和等时通道待发送数据包的特点设置发送数据包缓冲区模块内部异步或等时发送数据缓冲区的基地址和大小,设置发送数据帧描述符缓冲区模块内部异步或等时发送数据帧描述符缓冲区的大小,其中,如果数据帧个数多、数据包长度小则可以将描述符缓冲区设置大些,数据缓冲区设置小些,否则将描述符缓冲区设置小些,数据缓冲区设置大些;
步骤2、根据上述步骤1,首先,外部PLB接口总线将上述各分段小数据包输出给发送数据包缓冲区模块,即外部PLB接口总线判断各分段小数据包类型,如果是异步类型分段小数据包,则外部PLB接口总线将该分段小数据包存入发送数据包缓冲区模块内部的异步发送数据包缓冲区内,如果是等时类型分段小数据包,则外部PLB接口总线将该分段小数据包存入发送数据包缓冲区模块内部的等时发送数据包缓冲区内;其次,外部PLB接口总线根据异步或等时分段小数据包在发送数据包缓冲区模块内存储起始地址偏移量、数据包编号、数据包类型和数据帧的总长度的索引信息输出给发送数据帧描述符缓冲区模块内部等时或异步发送数据帧描述符缓冲区相应的区域;
步骤3,根据上述步骤2,首先,发送数据帧描述符缓冲区模块接收到这些索引信息,判断当前数据包的数据包类型是等时还是异步,如果是等时分段小数据包,则将该索引信息存储到发送数据帧描述符缓冲区的等时帧发送数据帧描述符缓冲区内,存储完成之后,如果该步骤后续再接收到步骤2发送的等时分段小数据包索引信息,则将后接收的索引信息按照字地址递增的存储的方式,存储在上一个等时索引信息之后;如果是异步分段小数据包,则将该索引信息存储到发送数据帧描述符缓冲区的异步帧发送数据帧描述符缓冲区内,存储完成之后,如果该步骤后续再接收到步骤2发送的异步分段小数据包索引信息,则将后接收的索引信息按照字地址递增的存储的方式,存储在上一个异步索引信息之后;其次,发送数据帧描述符缓冲区模块根据异步或等时分段小数据包的帧描述符存储形式,即,Frame Number(当前统一数据包链上各分段数据包的个数)、数据包传输类型和ListHeader Pointer(发送数据帧描述符起始偏移指针)描述帧索引信息,发送数据帧描述符缓冲区模块将这些数据链索引信息输出给发送链头队列FIFO缓冲区模块;
步骤4,根据上述步骤3,首先,发送链头队列FIFO缓冲区模块收到这些数据链索引信息后,将其存入内部的发送链头队列FIFO缓冲区中,其次,发送链头队列FIFO将自身的“空”或“满”状态传输给事务层发送缓存管理控制模块;
步骤5,根据上述步骤4,首先,事务层发送缓存管理控制模块内部控制逻辑不断监测发送链头队列FIFO缓冲区模块内部链头队列FIFO的“空”和“满”状态,只要队列不空,事务层发送缓存管理控制模块内发送控制逻辑就从发送链头队列FIFO缓冲区读取一个数据链索引信息,获取发送数据帧描述符缓冲区各分段小数据包帧描述符信息,其次,根据数据包描述符索引信息从发送数据缓冲区模块内Data Block Header Pointer(帧起始地址偏移量)指定起始位置调度出相应数据包,并在数据搬运过程中进行错误检测,如果符合IEEE1394协议约定的等时或异步传输的数据包,则将该数据包从发送数据包缓冲区内搬运至事务层发送缓存管理控制模块的发送数据FIFO中,否则,将错误的数据包进行丢弃处理,最后,当事务层发送缓存管理控制模块检测外部链路层接收控制逻辑ready时,即准备好接红数据包,事务层发送缓存管理控制模块内发送数据FIFO中的数据包输出给外部链路层。
2.实现如权利要求1所述1394总线事务层数据包存储管理方法的电路,包括:
发送数据包缓冲区模块(1)、发送数据帧描述符缓冲区模块(2)、发送链头队列FIFO缓冲区模块(3)、和事务层发送缓存管理控制模块(4);
发送数据包缓冲区模块(1),与PLB(Processor Local Bus,处理器局部总线)双向连接;外部上层应用软件根据1394总线网络通信需求,即不同的传输速率模式下数据包传输长度不同,如果数据包长度超过规定速度模式下限定的数据包长度,则需要将待发送传输的异步或等时数据包进行组织、拆分成各分段小数据包,发送数据包缓冲区模块(1)通过PLB接口总线的输出端接收这些分段小数据包,并将其根据异步或等时数据包的类型存储在发送数据包缓冲区模块内部(1)异步发送数据缓存区和等时发送数据缓冲区内;
发送数据帧描述符缓冲区模块(2),与PLB接口总线双向连接,首先,发送数据包缓冲区模块(1)将内部等时或异步数据包存储的每个数据包位置、数据包类型、数据包编号和数据包的大小信息输出给PLB接口总线,其次,PLB接口总线将接收到的发送数据包缓冲区模块(1)内部每个发送数据包的信息输出给发送数据帧描述符缓冲区模块(2),发送数据帧描述符缓冲区模块(2)接收到这些信息,判断当前数据包的数据包类型,如果是等时数据包,则根据数据包类型、数据包编号将属于1394总线同一个数据包的各分段小数据包的描述符信息连续存储在发送数据帧描述符缓冲区模块(2)内部的等时或异步描述符缓冲区内;
所述数据包类型包括等时和异步传输两种数据类型;
所述描述符信息包括发送数据缓冲区中的Data Block Header Pointer(帧起始地址偏移量)和Data Block Length(数据帧的总长度);
发送链头队列FIFO缓冲区模块(3),该模块的输入端与PLB(Processor Local Bus,处理器局部总线)的输出端口相连接,首先,发送数据帧描述符缓冲区模块(2)将内部异步或等时描述符存存区存储各分段小数据包的存储Frame Number(当前统一数据包链上各分段数据包的个数)、数据包传输类型和List Header Pointer(发送数据帧描述符起始偏移指针)信息输出给PLB接口总线,其次,PLB接口总线将接收到的这些信息输出给发送链头队列FIFO缓冲区模块(2)进行缓存;
事务层发送缓存管理控制模块(4),该模块的输入端与发送链头队列FIFO缓冲区模块的输出端相连,该模块的输入端与外部链路层连接,首先,事务层发送缓存管理控制模块不断监测发送链头队列FIFO缓冲区模块(3)内部链头队列FIFO的“空”和“满”状态,只要队列不空,则事务层发送缓存管理控制模块(4)内部发送控制逻辑读取发送链头队列FIFO缓冲区模块(3)的一个链表信息,获取发送数据帧描述符缓冲区模块(2)中的各分段小数据包描述符信息,其次,事务层发送缓存管理控制模块(4)根据各分段小数据包描述符索引信息从发送数据缓冲区模块(1)内Data Block Header Pointer(帧起始地址偏移量)指定位置调度出相应数据包,在数据搬运过程中进行错误检测,符合1394总线发送要求的数据包,则将数据包从发送数据包缓冲区内搬运至事务层发送缓存管理控制模块(4),错误的数据包则进行丢弃操作处理,当检测外部链路层ready状态时,将该数据包输出给外部链路层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140180.9A CN108614792B (zh) | 2016-12-12 | 2016-12-12 | 1394事务层数据包存储管理方法及电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140180.9A CN108614792B (zh) | 2016-12-12 | 2016-12-12 | 1394事务层数据包存储管理方法及电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614792A true CN108614792A (zh) | 2018-10-02 |
CN108614792B CN108614792B (zh) | 2021-03-26 |
Family
ID=63644068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611140180.9A Active CN108614792B (zh) | 2016-12-12 | 2016-12-12 | 1394事务层数据包存储管理方法及电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108614792B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958641A (zh) * | 2019-11-29 | 2020-04-03 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端wifi数据收发控制方法和装置 |
US20210406387A1 (en) * | 2020-06-29 | 2021-12-30 | Rockwell Automation Technologies, Inc. | Method and Apparatus for Managing Transmission of Secure Data Packets |
CN116405733A (zh) * | 2023-06-08 | 2023-07-07 | 新华三技术有限公司 | 一种数据传输方法及电子设备 |
US12052231B2 (en) | 2020-06-29 | 2024-07-30 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing reception of secure data packets |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1182993A (zh) * | 1996-11-04 | 1998-05-27 | Lg情报通信株式会社 | 将异步传送方式网络中恒定比特率的通信分段与重组的装置与方法 |
JPH11308255A (ja) * | 1998-04-22 | 1999-11-05 | Canon Inc | データ通信システム、方法及び装置並びに記憶媒体 |
CN1764147A (zh) * | 2004-10-22 | 2006-04-26 | 中兴通讯股份有限公司 | Dsl系统中对以太网数据包进行分段处理的装置 |
CN101304266A (zh) * | 2008-07-08 | 2008-11-12 | 张会庭 | 一种数字低压电力线路长度分段设置传输综合信息系统 |
CN105376129A (zh) * | 2015-12-09 | 2016-03-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种1394总线事务层-链路层数据包发送电路及方法 |
-
2016
- 2016-12-12 CN CN201611140180.9A patent/CN108614792B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1182993A (zh) * | 1996-11-04 | 1998-05-27 | Lg情报通信株式会社 | 将异步传送方式网络中恒定比特率的通信分段与重组的装置与方法 |
JPH11308255A (ja) * | 1998-04-22 | 1999-11-05 | Canon Inc | データ通信システム、方法及び装置並びに記憶媒体 |
CN1764147A (zh) * | 2004-10-22 | 2006-04-26 | 中兴通讯股份有限公司 | Dsl系统中对以太网数据包进行分段处理的装置 |
CN101304266A (zh) * | 2008-07-08 | 2008-11-12 | 张会庭 | 一种数字低压电力线路长度分段设置传输综合信息系统 |
CN105376129A (zh) * | 2015-12-09 | 2016-03-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种1394总线事务层-链路层数据包发送电路及方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958641A (zh) * | 2019-11-29 | 2020-04-03 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端wifi数据收发控制方法和装置 |
CN110958641B (zh) * | 2019-11-29 | 2024-03-22 | 湖南超捷科技有限公司 | 一种移动终端wifi数据收发控制方法和装置 |
US20210406387A1 (en) * | 2020-06-29 | 2021-12-30 | Rockwell Automation Technologies, Inc. | Method and Apparatus for Managing Transmission of Secure Data Packets |
US11599649B2 (en) * | 2020-06-29 | 2023-03-07 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing transmission of secure data packets |
US12052231B2 (en) | 2020-06-29 | 2024-07-30 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing reception of secure data packets |
CN116405733A (zh) * | 2023-06-08 | 2023-07-07 | 新华三技术有限公司 | 一种数据传输方法及电子设备 |
CN116405733B (zh) * | 2023-06-08 | 2023-09-19 | 新华三技术有限公司 | 一种数据传输方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108614792B (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520394B2 (en) | Network processor FPGA (npFPGA): multi-die-FPGA chip for scalable multi-gigabit network processing | |
CN108809854B (zh) | 一种用于大流量网络处理的可重构芯片架构 | |
US6526451B2 (en) | Method and network device for creating circular queue structures in shared memory | |
US7042891B2 (en) | Dynamic selection of lowest latency path in a network switch | |
CN107948094B (zh) | 一种高速数据帧无冲突入队处理的装置及方法 | |
US7227841B2 (en) | Packet input thresholding for resource distribution in a network switch | |
US7406041B2 (en) | System and method for late-dropping packets in a network switch | |
US7307998B1 (en) | Computer system and network interface supporting dynamically optimized receive buffer queues | |
US20020118692A1 (en) | Ensuring proper packet ordering in a cut-through and early-forwarding network switch | |
US20030026267A1 (en) | Virtual channels in a network switch | |
US20040174813A1 (en) | Method and apparatus for controlling network data congestion | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN106953853B (zh) | 一种片上网络千兆以太网资源节点及其工作方法 | |
CN108614792A (zh) | 1394事务层数据包存储管理方法及电路 | |
CN110297797B (zh) | 异构协议转换装置和方法 | |
CN104378161A (zh) | 一种基于AXI4总线架构的FCoE协议加速引擎IP核 | |
CN107135200A (zh) | 基于fpga的高速串行总线数据发送方法 | |
CN112653638B (zh) | 一种多路中频与基带高速交换路由的装置及其通信方法 | |
US9274586B2 (en) | Intelligent memory interface | |
CN100486224C (zh) | 一种基于fpga实现atm网络流量控制的装置及方法 | |
US10079769B1 (en) | Methods and apparatus for implementing dynamic rate controllers using linked list of rate programs | |
CN108650160A (zh) | 一种基于链式端口的总线桥接器及其工作方法 | |
US7751422B2 (en) | Group tag caching of memory contents | |
CN112995245B (zh) | 一种基于fpga的可配置负载均衡系统与方法 | |
CN115756296A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221012 Address after: Room S303, Innovation Building, No. 25, Gaoxin 1st Road, Xi'an, Shaanxi 710075 Patentee after: XI'AN XIANGTENG MICROELECTRONICS TECHNOLOGY Co.,Ltd. Address before: No.15, Jinye 2nd Road, Xi'an, Shaanxi 710000 Patentee before: AVIC XI''AN AERONAUTICS COMPUTING TECHNIQUE RESEARCH INSTITUTE |
|
TR01 | Transfer of patent right |