CN116074406B - 指令发送方法及装置 - Google Patents
指令发送方法及装置 Download PDFInfo
- Publication number
- CN116074406B CN116074406B CN202211515601.7A CN202211515601A CN116074406B CN 116074406 B CN116074406 B CN 116074406B CN 202211515601 A CN202211515601 A CN 202211515601A CN 116074406 B CN116074406 B CN 116074406B
- Authority
- CN
- China
- Prior art keywords
- instruction
- buffer
- counter
- data
- resetting
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本申请涉及一种指令发送方法及装置,包括:当接收到待发送的一指令时,将所述指令写入缓存器以缓存,复位计数器并启动自计数;使用竞争方式执行第一操作与第二操作:所述第一操作包括:当所述计数器计数达到预设周期阈值时,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;所述第二操作包括:当所述缓存器中缓存的指令个数达到预设个数阈值,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;发送所述一帧数据。本申请可以提高指令的发送效率。
Description
技术领域
本申请涉及半导体测试技术领域,特别涉及一种指令发送方法及装置、指令接收方法及装置、计算设备、计算机可读存储介质及计算机程序产品。
背景技术
目前ATE测试系统中的PCIE卡和数据接收端的接口板之间是光纤通信,PCIE卡和接口板均采用AMD公司的FPGA作为核心芯片,通信协议是Aurora协议。Aurora协议的特点是简单,对于短指令来说,效率很高。但是其缺点是通用性较差,不支持与其他公司的FPGA设备通信。因此,当数据接收端的接口板采用其他公司(比如Intel公司的Arria10型号)的FPGA时,PCIE卡和接口板无法使用Aurora协议通信,此时可以使用通用协议Ethernet实现两者通信。
当ATE测试系统中的数据发送端(即PC)发送大量指令(测试机的所有指令均可以,下面以写指令为例)至数据接收端时(具体的指令发送过程为PC执行PCIE软件代码,经过PCIE驱动、PCIEIP传输至PCIE的FPGA的FIFO中缓存,再通过以太网发送至数据接收端),由于PC每次发送的写指令数量都不同,写指令之间的耗时也不相同,发送频次也不一样,PC执行同一段PCIE软件代码,在不同时刻发送指令,FPGA收到的指令之间的间隔也是不同的,最少10多个周期,最长也有80多个周期。Ethernet协议发送最小帧是64字节,若采用Ethernet协议一帧数据只包含一个指令的发送情况下,对于指令间隔较短(10多个周期)时,会出现发送不及时,FIFO溢出现象,并且以太网发送也会出现数据溢出问题,导致数据丢包,且发送一个指令的耗时比Aurora协议更多。这样情况约束了PC发送指令的数量和频次,只有在Ethernet协议一帧数据中包含多个写指令才能让Ethernet协议通信效率提高,甚至接近于Aurora协议的通信效率。
在此背景下,如何确定一帧Ethernet协议数据中具体包含多少个写指令,才能使PC发送指令的数量、频次不受约束,才能把一帧Ethernet协议数据快速发送,提高通信效率,是有待解决的技术问题。
发明内容
鉴于现有技术的以上问题,本申请提供一种指令发送方法及装置、指令接收方法及装置、计算设备、计算机可读存储介质及计算机程序产品,以使PC发送指令的数量、频次不受约束,通过Ethernet协议能提高通信效率。
为达到上述目的,本申请第一方面提供了一种指令发送方法,包括:
当接收到待发送的一指令时,将所述指令写入缓存器以缓存,复位计数器并启动自计数;
使用竞争方式执行第一操作与第二操作:
所述第一操作包括:当所述计数器计数达到预设周期阈值时,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
所述第二操作包括:当所述缓存器中缓存的指令个数达到预设个数阈值,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
发送所述一帧数据。
本申请使用自适应机制,使得Ethernet协议一帧数据不只是包含一个指令的发送,不论指令之间的间隔周期是多少,都可以高效率发送,使PC发送指令的数量、频次不受约束。
本申请第二方面提供了一种指令接收方法,包括:
接收通过Ethernet协议发送的一帧数据;所述一帧数据包括目标MAC地址字段、源MAC地址字段、长度字段、指令字段和停止指令字段;
对所述目标MAC地址字段、源MAC地址字段、长度字段进行解析;
对所述指令字段和停止指令字段进行解析,判断解析到的为所述停止指令,则停止解析,缓存所述指令,等待下一帧数据;若解析到所述指令,缓存所述指令,继续对所述指令字段和停止指令字段进行解析,直到解析到所述停止指令为止。
为达到上述目的,本申请第三方面提供了一种指令发送装置,包括:
第一执行单元,用于当接收到待发送的一指令时,将所述指令写入缓存器以缓存,复位计数器并启动自计数;
第二执行单元,用于使用竞争方式执行第一操作与第二操作:
所述第一操作包括:当所述计数器计数达到预设周期阈值时,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
所述第二操作包括:当所述缓存器中缓存的指令个数达到预设个数阈值,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
第三执行单元,用于发送所述一帧数据。
为达到上述目的,本申请第四方面提供了一种指令发送装置,包括:
缓存模块,包括缓存器,所述缓存器用于缓存待发送的指令;
检测模块,用于当写入所述缓存器待发送的指令时使计数器复位并启动自计数,以及当所述缓存器缓存的指令被读取时使计数器复位,以及用于判断计数器计数达到预设周期阈值时或所述缓存器中缓存的指令个数达到预设个数阈值时生成发送信号;
发送模块,用于根据所述发送信号读取所述缓存器缓存的指令并封装于一帧数据中发送。
本申请使用自适应机制,使得Ethernet协议一帧数据不只是包含一个指令的发送,不论指令之间的间隔周期是多少,都可以高效率发送,使PC发送指令的数量、频次不受约束。
本申请第五方面提供了一种指令接收装置,包括:
数据接收模块,用于接收通过Ethernet协议发送的一帧数据;所述一帧数据包括目标MAC地址字段、源MAC地址字段、长度字段、指令字段和停止指令字段;
解析模块,用于对所述目标MAC地址字段、源MAC地址字段、长度字段进行解析;对所述指令字段和停止指令字段进行解析,判断解析到的为所述停止指令,则停止解析,缓存所述指令,等待下一帧数据;若解析到所述指令,缓存所述指令,继续对所述指令字段和停止指令字段进行解析,直到解析到所述停止指令为止。
本申请第六方面提供了一种计算设备,包括:通信接口,以及至少一个处理器;其中,所述至少一个处理器用于执行程序指令,所述程序指令当被所述至少一个处理器执行时使得所述计算设备执行上述第一方面的任一所述的指令发送方法,或者,所述程序指令当被所述至少一个处理器执行时使得所述计算设备实现上述第二方面所述的方法。
本申请第七方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行上述第一方面的任一所述的指令发送方法,或者,所述程序指令当被所述计算机执行时使得所述计算机实现上述第二方面所述的方法。
本申请第八方面提供了一种计算机程序产品,其包括有程序指令,所述程序指令当被计算机执行时使得所述计算机执行上述第一方面的任一所述的指令发送方法,或者,所述程序指令当被所述计算机执行时使得所述计算机实现上述第二方面所述的方法。
附图说明
图1是本申请指令发送方法的第一实施例的流程图;
图2是本申请FIFO缓存数据达到阈值个数时的数据帧结构示意图;
图3是本申请检测计数器超过阈值周期时的数据帧结构示意图;
图4是本申请指令发送方法的具体实例示意图;
图5是本申请指令发送装置的一种结构性示意性图;
图6是本申请指令发送装置的另一种结构性示意性图;
图7是本申请指令接收方法的流程图;
图8是本申请指令接收装置的结构性示意性图;
图9是本申请实施例提供的一种计算设备的结构性示意性图。
应理解,上述结构示意图中,各框图的尺寸和形态仅供参考,不应构成对本发明实施例的排他性的解读。结构示意图所呈现的各框图间的相对位置和包含关系,仅为示意性地表示各框图间的结构关联,而非限制本发明实施例的物理连接方式。
具体实施方式
下面结合附图并举实施例,对本申请提供的技术方案作进一步说明。应理解,本申请实施例中提供的系统结构和业务场景主要是为了说明本申请的技术方案的可能的实施方式,不应被解读为对本申请的技术方案的唯一限定。本领域普通技术人员可知,随着系统结构的演进和新业务场景的出现,本申请提供的技术方案对类似技术问题同样适用。
应理解,本申请实施例提供的指令发送、接收方案,包括指令发送方法及装置、指令接收方法及装置。由于这些技术方案解决问题的原理相同或相似,在如下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本发明,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义:
1)ATE(AutomaticTestEquipment),于半导体产业意指集成电路(IC)自动测试机,用于检测集成电路功能的完整性,为集成电路生产制造的最后流程,以确保集成电路生产制造的品质。
2)PCIE(peripheralcomponentinterconnectexpress)是一种高速串行计算机扩展总线标准。PCIE属于高速串行点对点双通道高带宽传输,PCIE总线使用端到端的连接方式,在一条PCIE链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。PCIE卡是一种具有PCIE接口的网卡,在主板级连接中用作扩展端口。具体来说,基于PCIE的扩展卡能插入主机、服务器和网络交换机等设备主板中的PCIE插槽。
3)FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
4)Aurora是一个用于在点对点串行链路间移动数据的可扩展轻量级链路层协议。
5)Ethernet(以太网)属网络底层协议,通常在OSI模型的物理层和数据链路层操作。
6)FIFO(FirstInputFirstOutput)先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
为了解决上述技术问题,实现自适应接受PC指令通过Ethernet协议发送,提高发送效率,本申请设计了一种指令发送机制,本申请实施例就提供了一种指令发送方法。
下面参照图1示出的流程图,对本申请指令发送方法实施例进行介绍。其中,如图1所示,该方法包括:
S110:当接收到待发送的一指令时,将所述指令写入缓存器以缓存,复位计数器并启动自计数;
S120:使用竞争方式执行第一操作与第二操作:
所述第一操作包括:当所述计数器计数达到预设周期阈值时,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
所述第二操作包括:当所述缓存器中缓存的指令个数达到预设个数阈值,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
S130:发送所述一帧数据。
其中,上述方法可以应用于设置有FPGA的PCIE板卡,其中的缓存器可以为FPGA的FIFO;所述一帧数据为一帧Ethernet协议数据。
本申请通过自适应机制,使得一帧Ethernet协议数据中可以包含多个指令发送,使PC发送指令的数量、频次不受约束可以使得一帧Ethernet协议数据快速发送,使PC发送指令的数量、频次不受约束提高通信效率。
本申请实施例可以应用于任何使用Ethernet协议发送帧数据的场景当中,适用于测试系统中任何指令的发送。
其中,从数据发送端接收到指令,该数据发送端可以指ATE测试系统中的PC。PC发送指令到FIFO采用PCIE方式通信,即PC发送的指令经过PCIE驱动、PCIEIP传输至FPGA端,把数据存入FIFO。这里提到的指令可以包括测试系统涉及到的全部指令。
在一实施例中,计数器计算的是以太网用户侧发送端的时钟,就是PCIE板卡核心芯片是FPGA,这个板子有时钟芯片,引入FPGA后,倍频生成200MHz,这个时钟一直存在。当计时器开启时,可以每隔5纳秒(5纳秒是200MHz的周期),记一个数。预设阈值周期比如说可以设定为7个周期,就是7个5纳秒,也可以是其他数值,人为根据实际指令发送、接收端FPGA的数据处理情况确定。
在一实施例中,所述将所述指令写入缓存器以缓存,复位计数器并启动自计数,包括:
当将所述指令写入缓存器使得所述缓存器的缓存状态由空变为非空时,使所述缓存器的empty端口由高电平变为低电平;其中,所述缓存器的缓存状态为空时,empty端口为高电平,计数器保持复位状态;
检测到所述empty端口由高电平变为低电平,计数器解除复位并启动自计数;
当将所述指令写入缓存器使得所述缓存器中的缓存指令发生变化,则复位计数器。
在一实施例中,所述将所述指令写入缓存器以缓存,复位计数器并启动自计数,包括:
将所述指令写入缓存器时,使所述缓存器的写入使能信号有效或写入计数信号变化;
检测到所述缓存器的写入使能信号有效或写入计数信号变化时,复位计数器并启动自计数。
在一实施例中,所述读取所述缓存器已缓存的指令,及所述并复位计数器,包括:
读取所述缓存器已缓存的指令时,使所述缓存器的读取计数信号变化;
检测到所述缓存器的读取计数信号变化时,复位计数器。
在一实施例中,所述读取所述缓存器已缓存的指令,及所述并复位计数器,包括:
读取所述缓存器已缓存的指令时,使所述缓存器缓存状态为空,从而使所述缓存器的empty端口为高电平;
检测到所述empty端口为高电平时,复位计数器。
其中,empty是FIFO的输出信号,无缓存数据时,empty信号是1;当有缓存数据时,empty变0。
读取计数信号rd_data_count和写入计数信号wr_data_count都是对缓存指令统计的,是FIFO自带的。读取计数信号rd_data_count和写入计数信号wr_data_count在FIFO中没有缓存数据时(即FIFO为空),rd_data_count和wr_data_count均为0,在有指令写入FIFO时均加1,在有指令从FIFO被读取时均减1,即读取计数信号rd_data_count和写入计数信号wr_data_count在有指令写入或被读取时均有变化,信号变化表明指令有变化。可以是写入计数信号wr_data_count和/或读取计数信号rd_data_count的BIT0发生变化时计数器被清零。BIT0从0变1或从1变0,都表明有一个缓存指令发生变化,可以是存入的也可以是读取的,都要判断。
在使用时,wr_data_count采用写入端的时钟同步,写入时钟是250MHz,PCIE指令存入FIFO是在250MHz下。rd_data_count采用读取端的时钟同步,读取时钟是200MHz,后端发送和检测判断,全部是在200MHz下。所以若使用wr_data_count作为检测信号,需要将进行写入时钟同步至200MHz才可以。
或,在检测到FIFO端的使能写入信号和使能读取信号发生变化时,表明缓存的所述指令发生变化,计数器被清零。
其中,还可以使用FIFO端的使能写入信号wren和使能读取信号rden一起来判断指令是否发生变化,其中,使能写入信号wren和使能读取信号rden进行“或”操作。因为缓存数据变化包括增加和减少,wren使缓存增加,rden使缓存减少,所以如果要全面判定缓存数据变化,这两个信号要一起使用。再者,使能写入信号wren使用写入端的时钟250MHz,而使能读取信号rden使能使用的是读取端的时钟200MHz,使用使能写入信号wren时,需要同步到200MHz时钟下。
在一实施例中,对于S120其可以是如下的具体过程:
如果指令之间的间隔周期少、指令数量多,那么计数器会不断被清零。当缓存FIFO中的指令个数超过阈值个数(阈值个数可以是16,直接判断rd_data_count>=16)时,从FIFO中读取数据,读使能信号变化,读取数据会引起rd_data_count变化,从而清零计数器。当出现指令间隔周期长,或者指令个数少时,计数器的数值达到阈值周期会释放一个发送信号(这个信号在超过阈值周期后,一直保持1,读取数据后也跟着复位了,变成0了),从FIFO中读取数据,读取数据会引起rd_data_count变化,从而清零计数器和复位发送信号。检测一直在进行,rd_data_count发生变化都会清零计数器(包括写入时rd_data_count增多,读取时rd_data_count减少)。
发送结束后,如果FIFO中还有指令,当计数器计数超过阈值周期时,发送当前FIFO所有指令,在发送过程中还有新的指令存入时,新的指令不发送,只发送超过阈值周期时刻FIFO内已经缓存的指令;如果当计数器计数未超过阈值周期时,并且缓存指令超过阈值个数,发送固定阈值个数的指令。
其中,当阈值个数到了,同时也发送了阈值周期信号,此时读取FIFO内已缓存的指令,会清零计数器和复位阈值周期发送的信号,不会引起重复发送的问题。这个两种情况,不论那个导致发送数据,都会相互复位。
在一实施例中,一帧数据的总长度为预设的固定长度,一帧数据中还包括目标MAC地址字段、源MAC地址字段、长度字段、指令字段和停止指令字段;
其中,所述指令字段填充所述读取的所述缓存器已缓存的指令;
所述停止指令字段填充可变长度的停止指令,该可变长度以使所述一帧数据的总长度达到所述预设的固定长度。
其中,采用的是IEEE802.3格式定义Ethernet协议数据帧格式。
具体的,当FIFO缓存指令个数达到阈值时,一帧Ethernet协议数据由6字节目标地址,6字节源地址,2字节长度,固定阈值数量的指令数据,4字节停止指令组成,如图2所示;当计数器达到阈值周期时,一帧Ethernet协议数据由6字节目标地址,6字节源地址,2字节长度,FIFO中所有的指令数据,自适应填充停止指令组成,如图3所示。
具体的,图4是本申请指令发送的具体实例示意图,参考图5,设定阈值数量为15,当缓存FIFO中的指令个数超过15,则发送包括15个写指令的一帧Ethernet协议数据。当缓存FIFO中的指令个数不超过15,但是计数器计数超过了周期阈值,比如,缓存FIFO中只有一个指令,那就发送包括1个写指令的一帧Ethernet协议数据。当时间间隔很长之后再次判断出计数器计数超过了周期阈值,此时缓存FIFO中有3个指令,那就发送包括3个写指令的一帧Ethernet协议数据。
如图4所示,本申请实施例提供了一种指令发送装置,该指令发送装置可以用于实现上述实施例中的指令发送方法,如图5所示,该指令发送装置500包括:第一执行单元510,用于当接收到待发送的一指令时,将所述指令写缓存器以缓存,复位计数器并启动自计数;第二执行单元520,用于使用竞争方式执行第一操作与第二操作:所述第一操作包括:当所述计数器计数达到预设周期阈值时,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;所述第二操作包括:当所述缓存器中缓存的指令个数达到预设个数阈值,读取所述FIFO已缓存的指令,封装于一帧数据中,并复位计数器;第三执行单元530,用于发送所述一帧数据。
如图6所示,本申请实施例提供了一种指令发送装置,该指令发送装置可以用于实现上述实施例中的指令发送方法,如图6所示,该指令发送装置600具有缓存模块610、检测模块620、发送模块630。缓存模块610,包括缓存器,所述缓存器用于缓存待发送的指令;检测模块620,用于当写入所述缓存器待发送的指令时使计数器复位并启动自计数,以及当所述缓存器缓存的指令被读取时使计数器复位,以及用于判断计数器计数达到预设周期阈值时或所述缓存器中缓存的指令个数达到预设个数阈值时生成发送信号;发送模块630,用于根据所述发送信号读取所述缓存器缓存的指令并封装于一帧数据中发送。
具体可参见方法实施例中的详细描述,此处不做赘述。
本申请提供的指令发送方法及装置可以获得如下有益效果:
1、PC执行同一段PCIE软件代码,在不同时刻发送指令,FPGA收到的指令之间的间隔是不同的,最少10多个周期,最长也有80多个周期。在以太网协议下,单帧数据只发送一个指令时,对于指令间隔较短并且指令数量较多(10多个周期)的时候,会出现发送不及时,FIFO溢出现象,并且以太网发送也会出现数据溢出问题,导致数据丢包。采用指令发送机制后,不论指令之间的间隔周期是多少,PC发送PCIE指令的数量、频次不受约束,通过Ethernet协议均能高效率转发。
2、ATE测试系统的测试软件指令是PCIE方式发送,原来的发送方式不用更改,而Ethernet协议是在FPGA内做的,所以ATE测试系统的测试软件无需更改。
针对于上述提到的指令发送方法,在数据接收端还存在指令接收方法,如图7所示,本申请提供了一种指令接收方法,该方法包括:
接收通过Ethernet协议发送的一帧数据;所述一帧数据包括目标MAC地址字段、源MAC地址字段、长度字段、指令字段和停止指令字段;
对所述目标MAC地址字段、源MAC地址字段、长度字段进行解析;
对所述指令字段和停止指令字段进行解析,判断解析到的指令是否为停止指令,若判断解析到的为所述停止指令,则停止解析,等待下一帧数据;若判断解析到的不是所述停止指令,则缓存所述指令,继续对所述指令字段和停止指令字段进行解析,直到解析到所述停止指令为止。
如图8所示,本申请实施例提供了一种指令接收装置,该指令接收装置可以用于实现上述实施例中的指令接收方法,如图8所示,该指令接收装置800具有数据接收模块810和解析模块820。
其中,数据接收模块810,用于接收通过Ethernet协议发送的一帧数据;所述一帧数据包括目标MAC地址字段、源MAC地址字段、长度字段、指令字段和停止指令字段;
解析模块820,用于对所述目标MAC地址字段、源MAC地址字段、长度字段进行解析;对所述指令字段和停止指令字段进行解析,判断解析到的指令是否为停止指令,若判断解析到的为所述停止指令,则停止解析,等待下一帧数据;若判断解析到的不是所述停止指令,则缓存所述指令,继续对所述指令字段和停止指令字段进行解析,直到解析到所述停止指令为止。
图9是本申请实施例提供的一种计算设备900的结构性示意性图。该计算设备可以作为指令发送装置,执行上述指令发送方法中的各可选实施例,或者该计算设备可以作为指令接收装置,执行上述指令接收方法中的各可选实施例。该计算设备可以是终端,也可以是终端内部的芯片或芯片系统。如图9所示,该计算设备900包括:处理器910、存储器920、通信接口930。
应理解,图9所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信,具体可以包括一个或多个收发电路或接口电路。
其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(PeripheralComponentInterconnect,PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中采用了一条无箭头的线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器910可以采用中央处理单元(centralprocessingunit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,DSP)、专用集成电路(applicationspecificintegratedcircuit,ASIC)、现成可编程门阵列(fieldprogrammablegateArray,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的任一操作步骤以及其中任一可选的实施例。
应理解,根据本申请实施例的计算设备900可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
另外,说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在上述的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,均属于本申请保护范畴。
Claims (9)
1.一种指令发送方法,其特征在于,包括:
当接收到待发送的一指令时,将所述指令写入缓存器以缓存,复位计数器并启动自计数;
使用竞争方式执行第一操作与第二操作:
所述第一操作包括:当所述计数器计数达到预设周期阈值时,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
所述第二操作包括:当所述缓存器中缓存的指令个数达到预设个数阈值,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
发送所述一帧数据。
2.如权利要求1所述的方法,其特征在于,所述将所述指令写入缓存器以缓存,复位计数器并启动自计数,包括:
当将所述指令写入缓存器使得所述缓存器的缓存状态由空变为非空时,使所述缓存器的empty端口由高电平变为低电平;其中,所述缓存器的缓存状态为空时,empty端口为高电平,计数器保持复位状态;
检测到所述empty端口由高电平变为低电平,计数器解除复位并启动自计数;
当将所述指令写入缓存器使得所述缓存器中的缓存指令发生变化,则复位计数器。
3.如权利要求1所述的方法,其特征在于,所述将所述指令写入缓存器以缓存,复位计数器并启动自计数,包括:
将所述指令写入缓存器时,使所述缓存器的写入计数信号变化;
检测到所述缓存器的写入计数信号变化时,复位计数器并启动自计数。
4.如权利要求1所述的方法,其特征在于,所述读取所述缓存器已缓存的指令,及所述并复位计数器,包括:
读取所述缓存器已缓存的指令时,使所述缓存器的读取计数信号变化;
检测到所述缓存器的读取计数信号变化时,复位计数器。
5.如权利要求1所述的方法,其特征在于,所述读取所述缓存器已缓存的指令,及所述并复位计数器,包括:
读取所述缓存器已缓存的指令时,使所述缓存器缓存状态为空,从而使所述缓存器的empty端口为高电平;
检测到所述empty端口为高电平时,复位计数器。
6.如权利要求1所述的方法,其特征在于,所述一帧数据的总长度为预设的固定长度,所述一帧数据中包括目标MAC地址字段、源MAC地址字段、长度字段、指令字段和停止指令字段;
其中,所述指令字段填充所述读取的所述缓存器已缓存的指令;
所述停止指令字段填充可变长度的停止指令,该可变长度以使所述一帧数据的总长度达到所述预设的固定长度。
7.如权利要求1至6任一项所述的方法,其特征在于,
所述方法应用于设置有FPGA的PCIE板卡,所述缓存器为所述FPGA的FIFO;
所述一帧数据为一帧Ethernet协议数据。
8.一种指令发送装置,其特征在于,包括:
第一执行单元,用于当接收到待发送的一指令时,将所述指令写缓存器以缓存,复位计数器并启动自计数;
第二执行单元,用于使用竞争方式执行第一操作与第二操作:
所述第一操作包括:当所述计数器计数达到预设周期阈值时,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
所述第二操作包括:当所述缓存器中缓存的指令个数达到预设个数阈值,读取所述缓存器已缓存的指令,封装于一帧数据中,并复位计数器;
第三执行单元,用于发送所述一帧数据。
9.一种计算设备,其特征在于,包括:
处理器,以及
存储器,其上存储有程序指令,所述程序指令当被所述处理器执行时使得所述处理器执行权利要求1至7任意一项所述的指令发送方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211515601.7A CN116074406B (zh) | 2022-11-29 | 2022-11-29 | 指令发送方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211515601.7A CN116074406B (zh) | 2022-11-29 | 2022-11-29 | 指令发送方法及装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116074406A CN116074406A (zh) | 2023-05-05 |
| CN116074406B true CN116074406B (zh) | 2024-07-19 |
Family
ID=86172417
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211515601.7A Active CN116074406B (zh) | 2022-11-29 | 2022-11-29 | 指令发送方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116074406B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117572817B (zh) * | 2023-12-01 | 2024-08-30 | 深圳市华科科技有限公司 | 一种基于plc的伺服运动控制方法及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6728918B1 (en) * | 1999-11-01 | 2004-04-27 | Matsushita Electric Industrial Co., Ltd. | Relay transmission method and system, and device used thereof |
| CN103780506A (zh) * | 2012-10-26 | 2014-05-07 | 中兴通讯股份有限公司 | 一种用于以太网设备的数据缓存系统及方法 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3466613A (en) * | 1967-01-13 | 1969-09-09 | Ibm | Instruction buffering system |
| US5835745A (en) * | 1992-11-12 | 1998-11-10 | Sager; David J. | Hardware instruction scheduler for short execution unit latencies |
| US6321302B1 (en) * | 1998-04-15 | 2001-11-20 | Advanced Micro Devices, Inc. | Stream read buffer for efficient interface with block oriented devices |
| JP4203661B2 (ja) * | 2004-08-02 | 2009-01-07 | パナソニック株式会社 | サーボ制御装置 |
| US8130232B2 (en) * | 2008-06-17 | 2012-03-06 | Nuvoton Technology Corporation | Drawing control method, drawing control apparatus, and drawing control system for embedded system |
| CN105137915B (zh) * | 2015-08-27 | 2018-11-02 | 湖北中航精机科技有限公司 | 一种包芯冲总线多轴伺服控制方法及系统 |
| JP6165286B1 (ja) * | 2016-02-29 | 2017-07-19 | 株式会社安川電機 | モータ制御システム、ロボットシステム、及びモータ制御システムの通信方法 |
| CN112148515B (zh) * | 2020-09-16 | 2023-06-20 | 锐捷网络股份有限公司 | 一种故障定位方法、系统、装置、介质和设备 |
| CN113992473A (zh) * | 2021-10-29 | 2022-01-28 | 宁波弘讯科技股份有限公司 | 一种通信方法、装置及电子设备和存储介质 |
-
2022
- 2022-11-29 CN CN202211515601.7A patent/CN116074406B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6728918B1 (en) * | 1999-11-01 | 2004-04-27 | Matsushita Electric Industrial Co., Ltd. | Relay transmission method and system, and device used thereof |
| CN103780506A (zh) * | 2012-10-26 | 2014-05-07 | 中兴通讯股份有限公司 | 一种用于以太网设备的数据缓存系统及方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116074406A (zh) | 2023-05-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
| CN112765054B (zh) | 一种基于fpga的高速数据采集系统及方法 | |
| US20020078249A1 (en) | Programmable multi-standard MAC architecture | |
| JPH06511338A (ja) | 並行パケットバスに関する方法及び装置 | |
| CN116414767B (zh) | 一种对基于axi协议乱序响应的重排序方法及系统 | |
| CN112328523B (zh) | 传输双倍速率信号的方法、装置及系统 | |
| CN110138809A (zh) | 一种面向以太网控制器接收链路的tcp报文拼接系统和方法 | |
| CN116074406B (zh) | 指令发送方法及装置 | |
| CN113836048A (zh) | 一种基于fpga内存动态分配的数据交换方法及装置 | |
| CN106656714A (zh) | 一种基于EtherCAT总线的通信协议方法及系统 | |
| CN107168710B (zh) | 一种基于阻塞接收机制的嵌入式Linux串口驱动开发方法 | |
| CN112948295A (zh) | 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法 | |
| CN117768248A (zh) | 网卡设备、网络数据传输方法、装置、系统、设备及介质 | |
| CN113518044B (zh) | Epa设备 | |
| CN113454935B (zh) | 一种线路编码方法及装置 | |
| CN105579952B (zh) | 利用伪停顿的高速通道上的emi抑制 | |
| CN119766709B (zh) | 回环测试方法、装置、系统、电子设备、介质及程序产品 | |
| CN113722250B (zh) | 基于Aurora协议的双路冗余数据交换方法及系统 | |
| CN114416019A (zh) | 一种数据管理方法及系统 | |
| CN112699070B (zh) | 基于zynq的dma数据传输方法 | |
| CN118519729B (zh) | 一种报文调度方法、系统、存储介质和电子设备 | |
| CN105939238B (zh) | 一种基于SOC隔离Memory的10Gbps以太网实时数据采集方法 | |
| CN107273100A (zh) | 一种数据实时处理及存储装置 | |
| CN116055409B (zh) | 以太网卡的数据传输方法、装置、网络设备及存储介质 | |
| CN117896289A (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 |