CN118550452A - 一种基于ddr的多路缓存队列调度器及方法 - Google Patents
一种基于ddr的多路缓存队列调度器及方法 Download PDFInfo
- Publication number
- CN118550452A CN118550452A CN202311404233.3A CN202311404233A CN118550452A CN 118550452 A CN118550452 A CN 118550452A CN 202311404233 A CN202311404233 A CN 202311404233A CN 118550452 A CN118550452 A CN 118550452A
- Authority
- CN
- China
- Prior art keywords
- ddr
- read
- data
- state
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000008569 process Effects 0.000 claims abstract description 4
- 230000009191 jumping Effects 0.000 claims description 18
- 230000008520 organization Effects 0.000 claims description 4
- 238000000926 separation method Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
现有的基于DDR的存储转发方案,存在有效带宽小,带宽利用率低,浪费DDR缓存空间的问题。为解决上述问题,本发明公开了一种基于DDR的多路缓存队列调度器及方法。该队列调度器包括:队列读写调度状态机、入队FIFO、读写时间片管理模块、包识别及包分发模块、队列读写指针存储RAM、DDR控制器、DDR存储器。方法为:数据包在DDR中连续存储,数据包之间插入包间隔信息,从DDR读出时按字节流进行;对DDR的操作分为读写时间片,在一个时间片内只进行读或写操作;从DDR读数据时读命令和数据分离处理,根据队列深度分两种情况处理;状态机依据条件在状态S1‑S8间跳转,完成队列数据写入和读出流程。本发明提升了DDR的有效带宽,提高了DDR带宽利用率,充分利用了DDR缓存容量。
Description
技术领域
本发明涉及数据缓存、数据交换技术领域,特别涉及一种基于DDR的多路缓存队列调度器及方法。
背景技术
大型网络系统业务流量大种类繁多,当多个端口往一个端口发送数据时,会产生端口的竞争。为保证数据的有序发送,一般会把业务分为若干个缓存队列,存储到外部存储器中,然后按照一定的规则从外部存储器的各个队列中取出数据,从端口发送出去。常用的存储转发解决方案所选用的存储芯片为DDR,对于DDR芯片的读写控制通常采用芯片厂商提供的DDR控制器IP CORE。DDR控制器通常包括两组信号接口,一组信号面向DDR芯片,一组信号面向用户。DDR控制器把DDR芯片复杂的时序控制简单化,提供给用户较为简单的一组控制接口。
以太网交换机、IP交换机通常以包为单位进行数据转发,为了便于内部FIFO读写以及控制转发方向,通常会在原始报文前再加上用户自定义头部,该自定义头通常包含:入端口号、出端口号、优先级,包的总长度等信息。在向DDR芯片写入数据时以出端口号作为缓存队列的通道号(或者出端口号和优先级的组合),同时出端口号也是DDR地址总线的高位地址。在切换出端口时,由于DDR地址总线高位发生变化,可能会引起DDR芯片的某些逻辑BANK(L-BANK)产生预充电动作,造成DDR控制器就绪信号(ready)拉低(无效),此时不能对DDR进行任何读写操作。频繁的通道切换会造成就绪信号的频繁拉低,大量时间用于等待就绪信号拉高(有效),降低带宽利用率。
缓存队列读写调度器通常包含一个状态机,该状态机除了写DDR状态,读DDR状态,通常还要包含空闲等其它状态,以太网/IP报文数据包的长度是一定范围内的随机值,长度越小,读写DDR时状态机跳转就越频繁,有效读写时间就越短。因此,数据包长度越小,用于包转发的时间占比就越小,整体的带宽利用率就越低。
用户逻辑操作DDR控制器从DDR芯片读数据时,一组读命令写下去后通常要等若干个时钟周期(通常十几到二十几个)DDR控制器才能返回读出的数据,每读一个数据包都要等待这么一段时间。数据包越小,读写越频繁,等待时间占比就越长,整体的带宽利用率就越低。
发明内容
鉴于上述问题,本发明提供一种至少解决上述部分问题,提高DDR带宽利用率,尤其提高存储长度较小的数据包时的DDR带宽利用率,提升多路缓存队列数据吞吐率的队列调度器及方法。
第一方面,本发明的技术解决方案为:一种基于DDR的多路缓存队列调度器,其逻辑结构框图如图1所示,包括队列读写调度状态机、入队FIFO、读写时间片管理模块、包识别及包分发模块、队列读写指针存储RAM、DDR控制器、DDR存储器;
所述队列读写调度状态机,用于DDR多路缓存队列的读写调度控制,包括状态跳转控制、入队FIFO的数据读出时序控制、DDR控制器写命令和写数据时序控制、DDR控制器读命令时序控制、缓存队列读写指针控制、读写指针存储RAM的数据写入和读出控制、队列空满状态标志位控制;
所述入队FIFO,用于对待写入DDR存储器中的数据进行缓存;
所述读写时间片管理模块,用于读写时间片的管理,并产生超时标志;
所述包识别及包分发模块,用于接收从DDR控制器读出的数据,并从中检测数据包的起始位置、出端口号和长度信息,然后向相应的出端口FIFO写数据;
所述队列读写指针存储RAM,用于存储各路队列的读地址、写地址、队列深度;
所述DDR控制器,用于完成DDR芯片的初始化操作,以及把用户侧的读写时序,转换成面向DDR芯片(物理侧)的读写时序。
进一步的,所述队列读写调度状态机,包括状态S1、S2、S3、S4、S5、S6、S7、S8;
所述状态S1,用于DDR芯片及模块内部信号的初始化;
所述状态S2,用于DDR读写操作间隙的等待以及相关信号的复位置位;
所述状态S3,用于获取DDR缓存队列的通道号;
所述状态S4,用于获取DDR缓存队列读指针、写指针、队列深度;
所述状态S5,用于向DDR写入自定义包间隔;
所述状态S6,用于从入队FIFO读出数据及向DDR写入数据包;
所述状态S7,用于从DDR读出有效数据包;
所述状态S8,用于存储DDR缓存队列的读指针、写指针、队列深度。
第二方面,本发明还提供一种基于DDR的多路缓存队列调度方法,具体如下:
数据包在DDR中的组织形式按包存储,但同一队列中的包与包之间没有地址间隙,向DDR写入数据时以包为单位进行,从DDR读出数据时按字节流进行;
对DDR的写入或读出操作按时间片进行管理,在一个时间片内只进行读或写操作,时间片的长度T可参数化控制;
向DDR写数据时,数据包之间插入包间隔信息,从DDR读数据时,根据包间隔信息定位一个数据包的起始位置同时获取包的头部信息;
从DDR读数据时采用读命令和读数据分离处理,读命令由所述队列读写调度状态机完成,读出的数据由所述包识别及包分发模块接收、识别包间隔信息、包头部信息,按出口号进行包分发;
从DDR读数据时,根据队列深度N分两种情况处理,(1)当深度小于等于特定值M(M的值可参数化控制)时,一次性的把队列中所有数据读出;(2)当深度大于特定值M时,至少读出深度M的数据,并且把当前数据包完整读出,此时读命令的个数可能大于所设置的特定值,此时需要一个掩码信号(wr_mask)来告诉包识别及分发模块后面的数据不用接收;
队列读写调度状态机依据条件在状态S1-S8间跳转;
进一步的,对DDR的写入或读出操作按时间片进行管理,在一个时间片内只进行读或写操作,时间片的长度T参数化控制,具体如下:
在DDR写时间片,(1)若入队FIFO有数据则维持在DDR写时间片,对DDR进行写入操作,直到把入队FIFO读空;(2)若入队FIFO无数据且DDR缓存队列至少有一个通道可以读出数据则切换到读时间片,时间片定时器清0,对DDR进行读操作;
在DDR读时间片,(1)若DDR缓存队列没有一个通道可以读出数据且入队FIFO非空则切换到DDR写时间片,时间片定时器清0,对DDR进行写入操作;(2)若定时器超时且入队FIFO非空则切换到DDR写时间片,时间片定时器清0,对DDR进行写入操作;(3)若DDR缓存队列至少有一个队列可以读出数据则维持在DDR读时间片,对DDR进行读操作。
进一步的,所述队列读写调度状态机依据条件在状态S1-S8间跳转,具体如下:
由S1到S2、系统复位后,首先进入S1状态,在完成DDR芯片及模块内部信号的初始化操作后进入S2状态;
由S2到S3、当前处于S2状态,若可以对缓存队列进行读写操作则跳转到S3状态;
由S3到S4、当前处于S3状态,若当前通道号和上一次通道号不相等则进入S4状态;
由S3到S5、当前处于S3状态,若当前通道号和上一次通道号相等且写标志有效则跳转到S5状态;
由S3到S7、当前处于S3状态,若当前通道号和上一次通道号相等且读标志有效则跳转到S7状态;
由S4到S5、当前处于S4状态,若写标志有效则跳转到S5状态;
由S4到S7、当前处于S4状态,若读标志有效则跳转到S7状态;
由S5到S6、当前处于S5状态,写入自定义包间隔后跳转到S6状态;
由S6到S8、当前处于S6状态,当前数据包写完后跳转到S8状态;
由S7到S8、当前处于S7状态,读取特定长度数据包后跳转到S8状态;
由S8到S2、当前处于S8状态,队列读写指针及队列深度存储到RAM中,随后跳转到S2状态。
本发明与现有技术相比,其显著的有益效果至少包括:
1.采用时间片管理模块,允许连续的写入或者读出大量数据,减少了读命令和写命令之间的切换频次,减少了读写通道号的切换频次,从而减少了DDR控制器就绪信号(ready)拉低的频次,提高了DDR的有效带宽。
2.采用时间片管理模块,允许连续的写入或者读出大量数据,提高了读DDR状态和写DDR状态在整个状态机中的时间占比,尤其提高了读DDR状态的时间占比,提高了DDR总体带宽利用率。
3. DDR控制器的命令通道和数据通道是相对独立的,利用这一点可以实现命令和数据分开处理,从DDR读数据时,可以先把读命名下发完,不等数据完全出来就可以进行下一个读写周期的命令下发,充分利用了读DDR命令和读出有效数据之间的时间延迟,提高了DDR总体带宽利用率。
4. 数据包在DDR中的组织形式按包存储,但同一队列中的包与包之间没有空闲地址,包与包之间插入一个“自定义帧间隔”, DDR读写指针按字节流计数,可以实现字节流连续读写,该方式消除了同一缓存通道数据包之间的碎片空间,充分利用DDR缓存容量。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明提供的基于DDR的多路缓存队列调度器逻辑结构框图;
图2为本发明提供的队列读写调度状态机模块的状态迁移图;
实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或模块。
在本发明的描述中,需要说明的是,状态机名称可以任意取名,S1-S8只是为了方便描述各个状态要完成的功能以及它们之间的迁移逻辑,不构成对本发明的限制。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1所示,本发明实施例提供一种基于DDR的多路缓存队列调度器,包括队列读写调度状态机、入队FIFO、读写时间片管理模块、包识别包分发模块、队列读写指针存储RAM、DDR控制器、DDR存储器;
所述队列读写调度状态机,用于DDR多路缓存队列的读写调度控制,包括状态跳转控制、入队FIFO的数据读出时序控制、DDR控制器写命令和写数据时序控制、DDR控制器读命令时序控制、缓存队列读写指针控制、读写指针存储RAM的数据写入和读出控制、队列空满状态标志位控制;
所述入队FIFO,用于对待写入DDR存储器中的数据进行缓存;
所述读写时间片管理模块,用于读写时间片的管理,并产生超时标志;
所述包识别及包分发模块,用于接收从DDR控制器读出的数据,并从中检测数据包的起始位置、出端口号和长度信息,然后向相应的出端口FIFO写数据;
所述队列读写指针存储RAM,用于存储各路队列的读地址、写地址、队列深度;
所述DDR控制器,用于完成DDR芯片的初始化操作,以及把用户侧的读写时序,转换成面向DDR芯片(物理侧)的读写时序。
进一步的,所述队列读写调度状态机,包括状态S1、S2、S3、S4、S5、S6、S7、S8;
所述状态S1,用于DDR芯片及模块内部信号的初始化;
所述状态S2,用于DDR读写操作间隙的等待以及相关信号的复位置位;
所述状态S3,用于获取DDR缓存队列的通道号;
所述状态S4,用于获取DDR缓存队列读指针、写指针、队列深度;
所述状态S5,用于向DDR写入自定义包间隔;
所述状态S6,用于从入队FIFO读出数据及向DDR写入数据包;
所述状态S7,用于从DDR读出有效数据包;
所述状态S8,用于存储DDR缓存队列的读指针、写指针、队列深度。
本发明实施例还提供一种基于DDR的多路缓存队列调度方法,具体如下:
数据包在DDR中的组织形式按包存储,但同一队列中的包与包之间没有地址间隙,向DDR写入数据时以包为单位进行,从DDR读出数据时按字节流进行;
对DDR的写入或读出操作按时间片进行管理,在一个时间片内只进行读或写操作,时间片的长度T可参数化控制;
向DDR写数据时,数据包之间插入包间隔信息,从DDR读数据时,根据包间隔信息定位一个数据包的起始位置同时获取包的头部信息;
从DDR读数据时采用读命令和读数据分离处理,读命令由所述队列读写调度状态机完成,读出的数据由所述包识别及包分发模块接收、识别包间隔信息、包头部信息,按出口号进行包分发;
从DDR读数据时,根据队列深度N分两种情况处理:(1)当深度小于等于特定值M时,一次性的把队列中所有数据读出;(2)当深度大于特定值M时,至少读出深度M的数据,并且把当前数据包完整读出,此时读命令的个数可能大于所设置的特定值,此时需要一个掩码信号(wr_mask)来告诉包识别模块后面的数据不用接收;
队列读写调度状态机依据条件在状态S1-S8间跳转,状态迁移如图2所示;
进一步的,对DDR的写入或读出操作按时间片进行管理,在一个时间片内只进行读或写操作,时间片的长度T参数化控制,具体如下:
在DDR写时间片,(1)若入队FIFO有数据则维持在DDR写时间片,对DDR进行写入操作,直到把入队FIFO读空;(2)若入队FIFO无数据且DDR缓存队列至少有一个通道可以读出数据则切换到读时间片,时间片定时器清0,对DDR进行读操作;
在DDR读时间片,(1)若DDR缓存队列没有一个通道可以读出数据且入队FIFO非空则切换到DDR写时间片,时间片定时器清0,对DDR进行写入操作;(2)若定时器超时且入队FIFO非空则切换到DDR写时间片,时间片定时器清0,对DDR进行写入操作;(3)若DDR缓存队列至少有一个队列可以读出数据则维持在DDR读时间片,对DDR进行读操作。
进一步的,所述队列读写调度状态机依据条件在状态S1-S8间跳转,具体如下:
由S1到S2、系统复位后,首先进入S1状态,在完成DDR芯片及模块内部信号的初始化操作后进入S2状态;
由S2到S3、当前处于S2状态,若可以对缓存队列进行读写操作则跳转到S3状态;
由S3到S4、当前处于S3状态,若当前通道号和上一次通道号不相等则进入S4状态;
由S3到S5、当前处于S3状态,若当前通道号和上一次通道号相等且写标志有效则跳转到S5状态;
由S3到S7、当前处于S3状态,若当前通道号和上一次通道号相等且读标志有效则跳转到S7状态;
由S4到S5、当前处于S4状态,若写标志有效则跳转到S5状态;
由S4到S7、当前处于S4状态,若读标志有效则跳转到S7状态;
由S5到S6、当前处于S5状态,写入自定义包间隔后跳转到S6状态;
由S6到S8、当前处于S6状态,当前数据包写完后跳转到S8状态;
由S7到S8、当前处于S7状态,读取特定长度数据包后跳转到S8状态;
由S8到S2、当前处于S8状态,队列读写指针及队列深度存储到RAM中,随后跳转到S2状态。
以上对本发明实施例进行了详细介绍,对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (5)
1.一种基于DDR的多路缓存队列调度器,其特征在于,包括队列读写调度状态机、入队FIFO、读写时间片管理模块、包识别及包分发模块、队列读写指针存储RAM、DDR控制器、DDR存储器;
所述队列读写调度状态机,用于DDR多路缓存队列的读写调度控制,包括状态跳转控制、入队FIFO的数据读出时序控制、DDR控制器写命令和写数据时序控制、DDR控制器读命令时序控制、缓存队列读写指针控制、读写指针存储RAM的数据写入和读出控制、队列空满状态标志位控制;
所述入队FIFO,用于对待写入DDR存储器中的数据进行缓存;
所述读写时间片管理模块,用于读写时间片的管理,并产生超时标志;
所述包识别及包分发模块,用于接收从DDR控制器读出的数据,并从中检测数据包的起始位置、出端口号和长度信息,然后向相应的出端口FIFO写数据;
所述队列读写指针存储RAM,用于存储各路队列的读地址、写地址、队列深度;
所述DDR控制器,用于完成DDR芯片的初始化操作,以及把用户侧的读写时序,转换成面向DDR芯片(物理侧)的读写时序。
2.根据权利要求1所述的基于DDR的多路缓存队列调度器,其特征在于,所述队列读写调度状态机,包括状态S1、S2、S3、S4、S5、S6、S7、S8;
所述状态S1,用于DDR芯片及模块内部信号的初始化;
所述状态S2,用于DDR读写操作间隙的等待以及相关信号的复位置位;
所述状态S3,用于获取DDR缓存队列的通道号;
所述状态S4,用于获取DDR缓存队列读指针、写指针、队列深度;
所述状态S5,用于向DDR写入自定义包间隔;
所述状态S6,用于从入队FIFO读出数据及向DDR写入数据包;
所述状态S7,用于从DDR读出有效数据包;
所述状态S8,用于存储DDR缓存队列的读指针、写指针、队列深度。
3.一种基于DDR的多路缓存队列调度方法,用于组织和实现如权利要求1-2所述的任一功能模块,其特征在于,包括:
数据包在DDR中的组织形式按包存储,但同一队列中的包与包之间没有地址间隙,向DDR写入数据时以包为单位进行,从DDR读出数据时按字节流进行;
对DDR的写入或读出操作按时间片进行管理,在一个时间片内只进行读或写操作,时间片的长度T可参数化控制;
向DDR写数据时,数据包之间插入包间隔信息,从DDR读数据时,根据包间隔信息定位一个数据包的起始位置同时获取包的头部信息;
从DDR读数据时采用读命令和读数据分离处理;
从DDR读数据时,根据队列深度N分两种情况处理:(1)当深度小于等于特定值M时,一次性的把队列中所有数据读出;(2)当深度大于特定值M时,至少读出深度M的数据,并且把当前数据包完整读出,M的值可参数化控制;
队列读写调度状态机依据条件在状态S1-S8间跳转,完成DDR缓存队列数据写入和读出流程。
4.根据权利要求3所述的基于DDR的多路缓存队列调度方法,其特征在于,对DDR的写入或读出操作按时间片进行管理,在一个时间片内只进行读或写操作,时间片的长度T参数化控制,具体如下:
在DDR写时间片,(1)若入队FIFO有数据则维持在DDR写时间片,对DDR进行写入操作直到把入队FIFO读空;(2)若入队FIFO无数据且DDR缓存队列至少有一个通道可以读出数据则切换到读时间片,时间片定时器清0,对DDR进行读操作;
在DDR读时间片,(1)若DDR缓存队列没有一个通道可以读出数据且入队FIFO非空则切换到DDR写时间片,时间片定时器清0,对DDR进行写入操作;(2)若定时器超时且入队FIFO非空则切换到DDR写时间片,时间片定时器清0,对DDR进行写入操作;(3)若DDR缓存队列至少有一个队列可以读出数据则维持在DDR读时间片,对DDR进行读操作。
5.根据权利要求3所述的基于DDR的多路缓存队列调度方法,其特征在于,所述队列读写调度状态机的状态跳转流程,具体如下:
由S1到S2、系统复位后,首先进入S1状态,在完成DDR芯片及模块内部信号的初始化操作后进入S2状态;
由S2到S3、当前处于S2状态,若可以对缓存队列进行读写操作则跳转到S3状态;
由S3到S4、当前处于S3状态,若当前通道号和上一次通道号不相等则进入S4状态;
由S3到S5、当前处于S3状态,若当前通道号和上一次通道号相等且写标志有效则跳转到S5状态;
由S3到S7、当前处于S3状态,若当前通道号和上一次通道号相等且读标志有效则跳转到S7状态;
由S4到S5、当前处于S4状态,若写标志有效则跳转到S5状态;
由S4到S7、当前处于S4状态,若读标志有效则跳转到S7状态;
由S5到S6、当前处于S5状态,写入自定义包间隔后跳转到S6状态;
由S6到S8、当前处于S6状态,当前数据包写完后跳转到S8状态;
由S7到S8、当前处于S7状态,读取特定长度数据包后跳转到S8状态;
由S8到S2、当前处于S8状态,队列读写指针及队列深度存储到RAM中,随后跳转到S2状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311404233.3A CN118550452A (zh) | 2023-10-27 | 2023-10-27 | 一种基于ddr的多路缓存队列调度器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311404233.3A CN118550452A (zh) | 2023-10-27 | 2023-10-27 | 一种基于ddr的多路缓存队列调度器及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118550452A true CN118550452A (zh) | 2024-08-27 |
Family
ID=92445007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311404233.3A Pending CN118550452A (zh) | 2023-10-27 | 2023-10-27 | 一种基于ddr的多路缓存队列调度器及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118550452A (zh) |
-
2023
- 2023-10-27 CN CN202311404233.3A patent/CN118550452A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7295553B2 (en) | Packet buffer | |
KR101607180B1 (ko) | 패킷 재조립 및 재배열 방법, 장치 및 시스템 | |
US6272567B1 (en) | System for interposing a multi-port internally cached DRAM in a control path for temporarily storing multicast start of packet data until such can be passed | |
US6167054A (en) | Method and apparatus providing programmable thresholds for full-duplex flow control in a network switch | |
EP1839166B1 (en) | Shared-memory switch fabric architecture | |
US20030210574A1 (en) | Scratchpad memory | |
CN113032295B (zh) | 一种数据包二级缓存方法、系统及应用 | |
JP2000349789A (ja) | メモリー幅の非常に広いtdmスイッチシステム | |
JP2009157680A (ja) | メモリ制御装置 | |
CN114531488B (zh) | 一种面向以太网交换器的高效缓存管理系统 | |
US20200259766A1 (en) | Packet processing | |
US20030053470A1 (en) | Multicast cell buffer for network switch | |
CN107800644A (zh) | 一种可动态配置的流水化令牌桶限速方法与装置 | |
CN116955247B (zh) | 一种缓存描述符管理装置及其方法、介质、芯片 | |
US7130916B2 (en) | Linking frame data by inserting qualifiers in control blocks | |
US5721833A (en) | Push-out of low priority signals from switch buffers | |
CN118550452A (zh) | 一种基于ddr的多路缓存队列调度器及方法 | |
CN116893983B (zh) | 数据缓存方法、设备及介质 | |
US8345701B1 (en) | Memory system for controlling distribution of packet data across a switch | |
US6885591B2 (en) | Packet buffer circuit and method | |
EP2854042A1 (en) | Information processing apparatus, data transfer apparatus, and data transfer method | |
JP3044653B2 (ja) | ゲートウェイ装置 | |
CN113645148B (zh) | 一种时间敏感网络的流量整形器令牌更新系统及方法 | |
US6622202B2 (en) | Method and device for operating a RAM memory | |
JPH06216929A (ja) | Atmスイッチ |
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 |