CN116192772A - 一种基于空间缓存的cpu收发包调度装置及方法 - Google Patents
一种基于空间缓存的cpu收发包调度装置及方法 Download PDFInfo
- Publication number
- CN116192772A CN116192772A CN202310200794.5A CN202310200794A CN116192772A CN 116192772 A CN116192772 A CN 116192772A CN 202310200794 A CN202310200794 A CN 202310200794A CN 116192772 A CN116192772 A CN 116192772A
- Authority
- CN
- China
- Prior art keywords
- data
- space
- queue
- virtual interface
- credit
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于空间缓存的CPU收发包调度装置及方法,装置包括发送队列调度模块、接收队列调度模块、指针管理模块、发送服务质量管理模块、共享缓存,方法包括CPU发送数据和CPU接收数据的步骤,这两个步骤均需要先读取读指针和写指针数值,再通过指针差值判断当前信用是否足够,信用足够则发送或接收队列数据,信用不够则暂停调度对应的队列;此外发送服务质量管理模块可以将队列缓存在相应端口的缓存空间内,等待不会出现冲突后再继续发送,以保证数据不会出现丢失,如果相应缓存空间的信用不足,则发出反压信号告知相应端口队列停止发送。本发明可以有效避免CPU在收发数据包时出现丢包的情况,可以增强数据传输的可靠性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于空间缓存的CPU收发包调度装置及方法。
背景技术
随着信息技术与网络通信的快速发展,人们对于数据的传输速率和可靠性都有着较高的需求,网络设备通常需要处理大量的数据包,在处理过程中经常会出现丢弃处理的情况,这种情况在高速传输的情况下尤为严重。这是因为在当前的三层以太网交换设备中,报文的二层交换和三层路由主要由交换芯片和网络处理器完成,CPU基本上不参与交换和路由过程,主要完成管理和控制交换芯片的功能。而随着以太网相关技术的发展,交换芯片和网络处理器的处理能力不断被提升;相比之下,数据交换设备中CPU处理性能的提升程度远远不及交换芯片和网络处理器。
因此,做好CPU和交换芯片以及网络处理器接口的缓冲管理、队列调度以及流量监管,合理利用CPU资源,是保证数据交换设备安全、稳定运行的前提,也是目前及将来数据交换设备开发的重要课题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于空间缓存的CPU收发包调度装置及方法,通过信用调度方式逐级反压,同时利用CPU的缓存空间,控制调度其中的收发队列,提高了数据的传输质量。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于空间缓存的CPU收发包调度装置,包括设置于CPU中的发送队列调度模块、接收队列调度模块、指针管理模块、发送服务质量管理模块,还包括CPU的共享缓存,其中:
发送队列调度模块用于调度目标虚拟接口的待发送队列,根据读写指针值计算目标虚拟接口的第一缓存空间的信用,若信用不足则停止调度待发送队列,若信用足够则将待发送队列的数据加入第一缓存空间;
接收队列调度模块用于调度目标虚拟接口的待接收队列,根据读写指针值计算目标虚拟接口的第二缓存空间的信用,若信用不足则停止调度待接收队列,若信用足够则将待接收队列的数据加入第二缓存空间;
指针管理模块用于维护各第一缓存空间和第二缓存空间的读指针和写指针;
发送服务质量管理模块用于从各源虚拟接口的第一缓存空间获取数据,并分别发送给对应的目的虚拟接口,若目的虚拟接口的第二缓存空间的信用不足则将获取的数据缓存在对应的第三缓存空间,第三缓存空间的缓存数据量达到给定的信用值时,通知发送队列调度模块停止调度待发送队列;
共享缓存用于提供第一缓存空间、第二缓存空间和第三缓存空间,所述第一缓存空间、第二缓存空间和第三缓存空间均与各虚拟接口一一对应。
进一步的,所述发送服务质量管理模块还用于存在指向同一目的虚拟接口的多个源虚拟接口时,指定其中一个源虚拟接口,并将指定的源虚拟接口以外的其他源虚拟接口的数据缓存在对应的第三缓存空间中,将指定的源虚拟接口的数据发给目的虚拟接口之后,依次重新指定源虚拟接口,并将指定的源虚拟接口的第三缓存空间中的数据发给目的虚拟接口,直到所有源虚拟接口的数据均发给目的虚拟接口。
进一步的,停止调度待接收队列时,接收队列调度模块停止从发送服务质量管理模块获取待接收队列的数据,同时,接收队列调度模块向发送服务质量管理模块发送反压信号,发送服务质量管理模块收到反压信号后将获取的数据缓存在对应的第三缓存空间中,并等待反压信号结束。
进一步的,通知发送队列调度模块停止调度待发送队列时,发送服务质量管理模块停止从对应的第一缓存空间获取数据,同时,发送服务质量管理模块向发送队列调度模块发送反压信号,发送队列调度模块收到反压信号后,停止从对应的虚拟接口获取数据,并向对应的虚拟接口发送反压信号,收到反压信号的虚拟接口停止发送数据,并等待反压信号结束。
进一步的,停止调度待发送队列时,发送队列调度模块停止从对应的虚拟接口获取数据,并向对应的虚拟接口发送反压信号,收到反压信号的虚拟接口停止发送数据,并等待反压信号结束。
本发明还提出一种基于空间缓存的CPU收发包调度方法,应用于任一所述的基于空间缓存的CPU收发包调度装置,所述方法包括CPU发送数据的步骤,具体包括:
S1)指针管理模块读取目标源虚拟接口的第一缓存空间的读指针和写指针,获取待传输数据报文的长度,发送队列调度模块根据读指针和写指针的值计算所述第一缓存空间的信用,若第一缓存空间的信用足够,则将待传输数据报文作为待发送队列的数据写入第一缓存空间;
S2)发送服务质量管理模块从第一缓存空间获取待发送队列的数据,并保存在目标源虚拟接口对应的第三缓存空间中,若对应的目的虚拟接口可接收数据,将第三缓存空间的数据发送给对应的目的虚拟接口。
进一步的,步骤S1)中包括判断第一缓存空间的信用是否足够的步骤,具体包括:
S11)计算读指针和写指针的值之差,然后用第一缓冲区的长度减去读指针和写指针的值之差,得到第一缓存空间的信用;
S12)若第一缓存空间的信用大于待传输数据报文的长度,则第一缓存空间的信用足够,若第一缓存空间的信用小于待传输数据报文的长度,则第一缓存空间的信用不足,发送队列调度模块停止调度待发送队列。
进一步的,步骤S2)中第三缓存空间采用FIFO,步骤S2)具体包括:
S21)将第一缓存空间的地址转换成物理地址,将待传输数据报文拆分成小块,以固定字节为单位对齐;
S22)根据小块个数启动对应次数的读事务,将第一缓存空间中的数据读入FIFO中;
S23)若在指定时间内未收到接收队列调度模块的反压信号,或收到的反压信号与目的虚拟接口无关,将FIFO中的数据发送给目的虚拟接口。
进一步的,所述方法还包括CPU接收数据的步骤,具体包括:
R1)发送服务质量管理模块从源虚拟接口的第三缓存空间中接收到数据报文的数据,并保存到目的虚拟接口对应第三缓存空间中;
R2)发送服务质量管理模块获取接收的数据个数,指针管理模块读取目的虚拟接口的第二缓存空间的读指针和写指针,若第二缓存空间的信用足够,则将目的虚拟接口对应第三缓存空间中的数据报文作为待接收队列的数据写入对应的第二缓存空间中。
进一步的,步骤R2)中第三缓存空间采用FIFO,步骤R2)包括以下步骤:
R21)将目的虚拟接口对应FIFO中的数据报文拆分为小块,并按固定字节边界对齐;
R22)根据小块的个数启动对应次数的写事务,将目的虚拟接口对应FIFO中的数据写进第二缓存空间。
和现有技术相比,本发明具有下述优点:
1、本发明通过使用共享缓存空间,采用分别为虚拟接口分配空间的形式,并以队列形式将所有虚拟接口的队列数据存储于同一空间中,节省了大量资源,这种方式减少了使用复杂度,满足单个缓存空间实现多接口、多队列处理的需求;
2、本发明使用信用机制管理每个队列的缓存,通过对比读写指针的方式确定数据数量,明确每个队列的传输请求,根据信用值判断是否调度各个队列,此方式实现简单,每个队列都可以得到有效的管理;
3、本发明对于网络数据传输质量有显著提高,在队列信用满之后,停止调度对应队列,从而实现逐级反压,保证了在发送过程中不会出现数据包丢失的情况,确保了数据的可靠性,对数据的传输速率也不会产生较大影响,在停止调度某个队列后CPU能够空闲出算力去处理其他信用足够的队列,在保证数据传输效率的情况下,一定程度上提高了数据的传输质量。
附图说明
图1为本发明实施例的装置结构图。
图2为本发明实施例中发送数据流程图。
图3为本发明实施例中接收数据流程图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
在网络交换设备中,CPU的负载主要来自以下几个方面:协议的定时驱动、用户的配置驱动、外部事件的驱动。典型的外部事件包括CPU通过直接存储器存取(DMA)收到包,CPU通过DMA发包等,只有处理好CPU的收发包的相关问题,才能使交换机稳定、高效地运行。
本实施例提出一种CPU收发包调度机制,每个虚拟端口都共享同一个内存空间,在内存空间中会预先为每个端口分配好各自的空间位置;在发送数据时,需要先读取读指针和写指针数值,再通过指针差值判断当前信用是否足够,如果信用足够则发送当前队列数据,如果信用不够,则暂停调度此队列;在发送数据过程中可能会出现多个端口同时向一个端口发送数据的情况,在出现冲突时,会先将其中部分发送队列缓存在相应端口的发送缓存空间内,等待不会出现冲突后再继续发送,以保证数据不会出现丢失,如果相应发送缓存空间的信用不足,则发出反压信号告知相应端口队列停止发送;在读取数据时,也需要获取读写指针数值,对比相应的信用值是否够用,再进行读操作。由这种调度机制可以有效避免CPU在收发数据包时出现丢包的情况,可以增强数据传输的可靠性。
基于以上构思,本实施例一种基于空间缓存的CPU收发包调度装置,如图1所示,包括设置于CPU中的发送队列调度模块、接收队列调度模块、指针管理模块、发送服务质量管理模块,还包括CPU的共享缓存,其中:
共享缓存空间是交换芯片的各个虚拟接口(Virtual Port)所共用的一块缓存空间,本实施例为每个虚拟接口均分配了相应的一部分缓存空间,每个虚拟接口的发送队列和接收队列都缓存于分配好的缓存空间中,共享缓存空间中包括:发送队列缓存空间,SendQueue(SQ),用于缓存软件将要传输的数据,在使用过程中软件需要将需要发送的数据报文拷贝到某个虚拟接口的SQ空间中准备好,并按照固定字节为单位对齐;接收队列缓存空间,Receive Queue(RQ),用于缓存硬件接收的数据,在使用过程中硬件需要将接收的数据拆分成多个小块,按照固定字节为单位对齐,写入RQ空间,后文将发送队列缓存空间成为第一缓存空间,将第二缓存空间成为第二缓存空间;
发送队列调度模块用于调度目标虚拟接口的待发送队列,根据读写指针值计算目标虚拟接口的第一缓存空间的信用,若信用不足则停止调度待发送队列,若信用足够则将待发送队列的数据加入第一缓存空间;
接收队列调度模块用于调度目标虚拟接口的待接收队列,根据读写指针值计算目标虚拟接口的第二缓存空间的信用,若信用不足则停止调度待接收队列,若信用足够则将待接收队列的数据加入第二缓存空间;
指针管理模块用于维护各第一缓存空间和第二缓存空间的读指针和写指针,区分各个队列的读指针和写指针应当由软件和硬件哪部分来维护,与发送队列调度模块和接收队列调度模块共同控制各个队列的调度;
发送服务质量管理模块用于从各源虚拟接口的第一缓存空间获取数据,并分别发送给对应的目的虚拟接口,若目的虚拟接口的第二缓存空间的信用不足则将获取的数据缓存在对应的第三缓存空间,第三缓存空间的缓存数据量达到给定的信用值时,通知发送队列调度模块停止调度待发送队列;
本实施例中,第三缓存空间为图1中所示的发送缓存空间,这些发送缓存空间与各虚拟接口一一对应,并且也由CPU的共享缓存提供,通过使用共享缓存空间,采用分别为虚拟接口分配空间的形式,并以队列形式将所有虚拟接口的队列数据存储于同一空间中,节省了大量资源,这种方式减少了使用复杂度,满足单个缓存空间实现多接口、多队列处理的需求。
发送服务质量管理模块保证发送数据时不会出现丢包的情况,在数据发送时会出现多个端口同时向一个端口发送数据的情况,此时会产生冲突,存在指向同一目的虚拟接口的多个源虚拟接口时,发送服务质量管理模块指定其中一个源虚拟接口,并将指定的源虚拟接口以外的其他源虚拟接口的数据缓存在对应的第三缓存空间中,将指定的源虚拟接口的数据发给目的虚拟接口之后,依次重新指定源虚拟接口,并将指定的源虚拟接口的第三缓存空间中的数据发给目的虚拟接口,直到所有源虚拟接口的数据均发给目的虚拟接口。
在此过程中,若某个源虚拟接口对应的第三缓存空间的缓存数据量达到给定的信用值时,发送服务质量管理模块同样会通知发送队列调度模块停止调度该源虚拟接口对应的待发送队列。
前述内容中,根据读写指针值计算缓存空间的信用具体是指:计算读指针和写指针的差值后,将缓存空间的长度减去该差值,就能够得到缓存空间的信用,即缓存空间可写入的地址长度,随后将缓存空间的信用与待写入数据长度进行比较,若信用大于待写入数据长度,则信用足够,可以将待写入数据写入缓存空间中,否则信用不足,需要暂停数据写入,等待缓存空间中的数据继续被读取,直到缓存空间的信用大于待写入数据长度。使用信用机制管理每个队列的缓存,通过对比读写指针的方式确定数据数量,明确每个队列的传输请求,根据信用值判断是否调度各个队列,此方式实现简单,每个队列都可以得到有效的管理。
上述模块中,发送队列调度模块在第一缓存空间信用不足的情况下会发出反压信号告知相应的虚拟接口,停止对相应队列发送数据,同时需要根据发送服务质量管理模块的反压信号判断是否向其发送数据;接收队列调度模块在第二缓存空间信用不足的情况下发出反压信号告知相应的发送服务质量管理模块,停止对相应队列发送数据,同时需要根据后级接收队列的反压信号判断是否向其发送数据;发送服务质量管理模块在第三缓存空间的缓存数量达到了设置的信用值,即信用不足的情况下通过反压信号告知发送队列调度模块停止对相应队列的调度,同样的,如果接收队列管理模块向发送服务质量管理模块发送了反压信号,则发送服务质量管理模块应停止对相应接收端口发送数据。
因此,停止调度待接收队列时,接收队列调度模块停止从发送服务质量管理模块获取待接收队列的数据,同时,接收队列调度模块向发送服务质量管理模块发送反压信号,发送服务质量管理模块收到反压信号后将获取的数据缓存在对应的第三缓存空间中,并等待反压信号结束。此外,通知发送队列调度模块停止调度待发送队列时,发送服务质量管理模块停止从对应的第一缓存空间获取数据,同时,发送服务质量管理模块向发送队列调度模块发送反压信号,发送队列调度模块收到反压信号后,停止从对应的虚拟接口获取数据,并向对应的虚拟接口发送反压信号,收到反压信号的虚拟接口停止发送数据,并等待反压信号结束。相对应的,停止调度待发送队列时,发送队列调度模块停止从对应的虚拟接口获取数据,并向对应的虚拟接口发送反压信号,收到反压信号的虚拟接口停止发送数据,并等待反压信号结束。逐级反压保证了在发送过程中不会出现数据包丢失的情况,确保了数据的可靠性,对数据的传输速率也不会产生较大影响。
本实施例还提出一种基于空间缓存的CPU收发包调度方法,应用于本实施例的的基于空间缓存的CPU收发包调度装置,如图2所示,该方法包括CPU发送数据的步骤,具体包括:
第一步,软件需要将要传输的数据拷贝到某个虚拟接口的SQ空间中准备好,在执行拷贝操作前需要通过指针管理模块和信用管理模块,读取SQ空间的读指针和写指针,判断SQ空间是否有足够的信用,如果有则将数据写入SQ空间并以固定字节为单位对齐,否则需要告知CPU没有足够的信用,使队列调度模块停止调度相应虚拟接口的对应队列;
第二步,硬件将SQ地址转换成物理地址,将数据报文拆分成多个小块,以固定字节为单位对齐;
第三步,根据小块个数启动多次的读事务,将SQ空间中的数据读进硬件的相应数据FIFO中;
第四步,在后级可接收数据的情况下发送数据。
通过各模块执行上述步骤的过程如下:
S1)指针管理模块读取目标源虚拟接口的第一缓存空间的读指针和写指针,获取待传输数据报文的长度,发送队列调度模块根据读指针和写指针的值计算所述第一缓存空间的信用,若第一缓存空间的信用足够,则将待传输数据报文作为待发送队列的数据写入第一缓存空间;
S2)发送服务质量管理模块从第一缓存空间获取待发送队列的数据,并保存在目标源虚拟接口对应的第三缓存空间中,若对应的目的虚拟接口可接收数据,将第三缓存空间的数据发送给对应的目的虚拟接口。
本实施例的步骤S1)中包括判断第一缓存空间的信用是否足够的步骤,具体包括:
S11)计算读指针和写指针的值之差,然后用第一缓冲区的长度减去读指针和写指针的值之差,得到第一缓存空间的信用;
S12)若第一缓存空间的信用大于待传输数据报文的长度,则第一缓存空间的信用足够,若第一缓存空间的信用小于待传输数据报文的长度,则第一缓存空间的信用不足,发送队列调度模块停止调度待发送队列。
本实施例的步骤S2)中第三缓存空间采用FIFO,步骤S2)具体包括:
S21)将第一缓存空间的地址转换成物理地址,将待传输数据报文拆分成小块,以固定字节为单位对齐;
S22)根据小块个数启动对应次数的读事务,将第一缓存空间中的数据读入FIFO中;
S23)若在指定时间内未收到接收队列调度模块的反压信号,或收到的反压信号与目的虚拟接口无关,将FIFO中的数据发送给目的虚拟接口。
本实施例的步骤S22)之后还包括以下步骤:
判断是否存在多个源虚拟接口对应同一目的虚拟接口的情况,否则执行步骤S23),是则从这些源虚拟接口中依次指定一个源虚拟接口,将被指定的源虚拟接口对应的第三缓存空间的数据发送给目的虚拟接口。
未被指定的源虚拟接口在等待过程中,循环执行步骤S21)和S22)。相对应的,本实施例的步骤S22)之前还包括以下步骤:读取目标源虚拟接口的FIFO的读指针和写指针,并以此计算该FIFO的信用,将该FIFO的信用与待传输数据报文的长度比较,若信用足够则执行步骤S22),若信用不足则从第一缓存空间中获取数据,目标源虚拟接口对应的第一缓存空间也停止写入数据。
如图3所示,该方法还包括CPU接收数据的步骤,具体包括:
第一步,硬件将接收到的数据送到相应虚拟接口的对应数据FIFO中;
第二步,硬件获取接收的数据个数,通过指针管理模块和信用管理模块读取读写指针值,并对比RQ中是否信用足够,如果有则将数据拆分为多个小块,并按固定字节边界对齐,否则需要告知CPU没有足够的信用,使队列调度模块停止调度相应虚拟接口的对应队列;
第三步,根据小块的个数启动多次的写事务,将硬件中的数据写进缓存空间。
通过各模块执行上述步骤的过程如下:
R1)发送服务质量管理模块从源虚拟接口的第三缓存空间中接收到数据报文的数据,并保存到目的虚拟接口对应第三缓存空间中;
R2)发送服务质量管理模块获取接收的数据个数,指针管理模块读取目的虚拟接口的第二缓存空间的读指针和写指针,若第二缓存空间的信用足够,则将目的虚拟接口对应第三缓存空间中的数据报文作为待接收队列的数据写入对应的第二缓存空间中。
本实施例中,步骤R2)中计算第二缓存空间的信用的步骤与步骤S11)至S12)相同,在此不再赘述,此外,第三缓存空间采用FIFO,步骤R2)包括以下步骤:
R21)将目的虚拟接口对应FIFO中的数据报文拆分为小块,并按固定字节边界对齐;
R22)根据小块的个数启动对应次数的写事务,将目的虚拟接口对应FIFO中的数据写进第二缓存空间。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种基于空间缓存的CPU收发包调度装置,其特征在于,包括设置于CPU中的发送队列调度模块、接收队列调度模块、指针管理模块、发送服务质量管理模块,还包括CPU的共享缓存,其中:
发送队列调度模块用于调度目标虚拟接口的待发送队列,根据读写指针值计算目标虚拟接口的第一缓存空间的信用,若信用不足则停止调度待发送队列,若信用足够则将待发送队列的数据加入第一缓存空间;
接收队列调度模块用于调度目标虚拟接口的待接收队列,根据读写指针值计算目标虚拟接口的第二缓存空间的信用,若信用不足则停止调度待接收队列,若信用足够则将待接收队列的数据加入第二缓存空间;
指针管理模块用于维护各第一缓存空间和第二缓存空间的读指针和写指针;
发送服务质量管理模块用于从各源虚拟接口的第一缓存空间获取数据,并分别发送给对应的目的虚拟接口,若目的虚拟接口的第二缓存空间的信用不足则将获取的数据缓存在对应的第三缓存空间,第三缓存空间的缓存数据量达到给定的信用值时,通知发送队列调度模块停止调度待发送队列;
共享缓存用于提供第一缓存空间、第二缓存空间和第三缓存空间,所述第一缓存空间、第二缓存空间和第三缓存空间均与各虚拟接口一一对应。
2.根据权利要求1所述的基于空间缓存的CPU收发包调度装置,其特征在于,所述发送服务质量管理模块还用于存在指向同一目的虚拟接口的多个源虚拟接口时,指定其中一个源虚拟接口,并将指定的源虚拟接口以外的其他源虚拟接口的数据缓存在对应的第三缓存空间中,将指定的源虚拟接口的数据发给目的虚拟接口之后,依次重新指定源虚拟接口,并将指定的源虚拟接口的第三缓存空间中的数据发给目的虚拟接口,直到所有源虚拟接口的数据均发给目的虚拟接口。
3.根据权利要求1所述的基于空间缓存的CPU收发包调度装置,其特征在于,停止调度待接收队列时,接收队列调度模块停止从发送服务质量管理模块获取待接收队列的数据,同时,接收队列调度模块向发送服务质量管理模块发送反压信号,发送服务质量管理模块收到反压信号后将获取的数据缓存在对应的第三缓存空间中,并等待反压信号结束。
4.根据权利要求1所述的基于空间缓存的CPU收发包调度装置,其特征在于,通知发送队列调度模块停止调度待发送队列时,发送服务质量管理模块停止从对应的第一缓存空间获取数据,同时,发送服务质量管理模块向发送队列调度模块发送反压信号,发送队列调度模块收到反压信号后,停止从对应的虚拟接口获取数据,并向对应的虚拟接口发送反压信号,收到反压信号的虚拟接口停止发送数据,并等待反压信号结束。
5.根据权利要求1所述的基于空间缓存的CPU收发包调度装置,其特征在于,停止调度待发送队列时,发送队列调度模块停止从对应的虚拟接口获取数据,并向对应的虚拟接口发送反压信号,收到反压信号的虚拟接口停止发送数据,并等待反压信号结束。
6.一种基于空间缓存的CPU收发包调度方法,其特征在于,应用于权利要求1~5任一所述的基于空间缓存的CPU收发包调度装置,所述方法包括CPU发送数据的步骤,具体包括:
S1)指针管理模块读取目标源虚拟接口的第一缓存空间的读指针和写指针,获取待传输数据报文的长度,发送队列调度模块根据读指针和写指针的值计算所述第一缓存空间的信用,若第一缓存空间的信用足够,则将待传输数据报文作为待发送队列的数据写入第一缓存空间;
S2)发送服务质量管理模块从第一缓存空间获取待发送队列的数据,并保存在目标源虚拟接口对应的第三缓存空间中,若对应的目的虚拟接口可接收数据,将第三缓存空间的数据发送给对应的目的虚拟接口。
7.根据权利要求6所述的基于空间缓存的CPU收发包调度方法,其特征在于,步骤S1)中包括判断第一缓存空间的信用是否足够的步骤,具体包括:
S11)计算读指针和写指针的值之差,然后用第一缓冲区的长度减去读指针和写指针的值之差,得到第一缓存空间的信用;
S12)若第一缓存空间的信用大于待传输数据报文的长度,则第一缓存空间的信用足够,若第一缓存空间的信用小于待传输数据报文的长度,则第一缓存空间的信用不足,发送队列调度模块停止调度待发送队列。
8.根据权利要求6所述的基于空间缓存的CPU收发包调度方法,其特征在于,步骤S2)中第三缓存空间采用FIFO,步骤S2)具体包括:
S21)将第一缓存空间的地址转换成物理地址,将待传输数据报文拆分成小块,以固定字节为单位对齐;
S22)根据小块个数启动对应次数的读事务,将第一缓存空间中的数据读入FIFO中;
S23)若在指定时间内未收到接收队列调度模块的反压信号,或收到的反压信号与目的虚拟接口无关,将FIFO中的数据发送给目的虚拟接口。
9.根据权利要求6所述的基于空间缓存的CPU收发包调度方法,其特征在于,所述方法还包括CPU接收数据的步骤,具体包括:
R1)发送服务质量管理模块从源虚拟接口的第三缓存空间中接收到数据报文的数据,并保存到目的虚拟接口对应第三缓存空间中;
R2)发送服务质量管理模块获取接收的数据个数,指针管理模块读取目的虚拟接口的第二缓存空间的读指针和写指针,若第二缓存空间的信用足够,则将目的虚拟接口对应第三缓存空间中的数据报文作为待接收队列的数据写入对应的第二缓存空间中。
10.根据权利要求9所述的基于空间缓存的CPU收发包调度方法,其特征在于,步骤R2)中第三缓存空间采用FIFO,步骤R2)包括以下步骤:
R21)将目的虚拟接口对应FIFO中的数据报文拆分为小块,并按固定字节边界对齐;
R22)根据小块的个数启动对应次数的写事务,将目的虚拟接口对应FIFO中的数据写进第二缓存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310200794.5A CN116192772A (zh) | 2023-03-03 | 2023-03-03 | 一种基于空间缓存的cpu收发包调度装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310200794.5A CN116192772A (zh) | 2023-03-03 | 2023-03-03 | 一种基于空间缓存的cpu收发包调度装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116192772A true CN116192772A (zh) | 2023-05-30 |
Family
ID=86442167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310200794.5A Pending CN116192772A (zh) | 2023-03-03 | 2023-03-03 | 一种基于空间缓存的cpu收发包调度装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192772A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781448A (zh) * | 2023-08-17 | 2023-09-19 | 北京芯驰半导体科技有限公司 | 一种can报文防丢失方法、装置、系统、芯片及介质 |
CN117614905A (zh) * | 2023-11-29 | 2024-02-27 | 无锡众星微系统技术有限公司 | 一种交叉开关调度方法和装置 |
CN117614905B (zh) * | 2023-11-29 | 2024-06-04 | 无锡众星微系统技术有限公司 | 一种交叉开关调度方法和装置 |
-
2023
- 2023-03-03 CN CN202310200794.5A patent/CN116192772A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781448A (zh) * | 2023-08-17 | 2023-09-19 | 北京芯驰半导体科技有限公司 | 一种can报文防丢失方法、装置、系统、芯片及介质 |
CN116781448B (zh) * | 2023-08-17 | 2023-11-07 | 北京芯驰半导体科技有限公司 | 一种can报文防丢失方法、装置、系统、芯片及介质 |
CN117614905A (zh) * | 2023-11-29 | 2024-02-27 | 无锡众星微系统技术有限公司 | 一种交叉开关调度方法和装置 |
CN117614905B (zh) * | 2023-11-29 | 2024-06-04 | 无锡众星微系统技术有限公司 | 一种交叉开关调度方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107623646B (zh) | 数据流传输方法、发送设备及接收设备 | |
US6442162B1 (en) | Credit-based scheme for high performance communication between devices in a packet-based communication system | |
KR100268565B1 (ko) | 다중 처리 시스템에서 타스크를 큐잉하기 위한 시스템 및 방법 | |
US6877048B2 (en) | Dynamic memory allocation between inbound and outbound buffers in a protocol handler | |
KR100817676B1 (ko) | 동적 클래스-기반 패킷 스케쥴링 방법 및 장치 | |
US7127534B2 (en) | Read/write command buffer pool resource management using read-path prediction of future resources | |
US7281249B2 (en) | Computer forming logical partitions | |
CN113711551A (zh) | 促进网络接口控制器(nic)中的动态命令管理的系统和方法 | |
US20030163589A1 (en) | Pipelined packet processing | |
CN103810133A (zh) | 动态共享读缓冲器管理 | |
US6526068B2 (en) | Interface control of communication between a control processor and a digital signal processor | |
KR100866204B1 (ko) | 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법 | |
CN116192772A (zh) | 一种基于空间缓存的cpu收发包调度装置及方法 | |
WO2006036124A1 (en) | Improved handling of atm data | |
EP1891503B1 (en) | Concurrent read response acknowledge enhanced direct memory access unit | |
US5982296A (en) | Data switching processing method and apparatus | |
KR20020000711A (ko) | 원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처 | |
JP2000183886A (ja) | 通信装置 | |
CN116471242A (zh) | 基于rdma的发送端、接收端、数据传输系统及方法 | |
US9906468B2 (en) | Packet traffic control in a network processor | |
US6212181B1 (en) | Method for using the departure queue memory bandwidth to support additional cell arrivals in an ATM switch | |
US6324625B1 (en) | Rotating rationed buffer refresh | |
CN116889024A (zh) | 一种数据流传输方法、装置及网络设备 | |
US7069557B2 (en) | Network processor which defines virtual paths without using logical path descriptors | |
JP3934099B2 (ja) | パケット処理装置およびプログラム |
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 |