首页> 中国专利> 基于动态包传输的动态随机存储器队列调度方法

基于动态包传输的动态随机存储器队列调度方法

摘要

一种涉及数字信息的传输的基于动态包传输的动态随机存储器队列调度方法,其特征在于:输入的以太网包必须根据设定的门限把数据分成高低两种数据包,并把以太网包根据基于动态包传输DPT协议转换成空间重用协议SRP包格式;存放的数据包按块存取,把输入数据包按一定数据块规格进行切割,通过增加开销来表示数据块对应的POS口位置以及优先级;一路数据写输入、两路POS口读输出;读写采用高低优先级调度,写优先级高,两路POS口之间的读输出采用轮询调度;空间重用协议SRP包输入POS口中,有高、低优先级两种数据包4个队列,根据高低反压原理进行高、低优先级两种队列的二级调度,本发明内存管理设计简单,成本低,性能高。

著录项

  • 公开/公告号CN1471264A

    专利类型发明专利

  • 公开/公告日2004-01-28

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN02126698.0

  • 发明设计人 苏文彪;

    申请日2002-07-27

  • 分类号H04L12/24;

  • 代理机构

  • 代理人

  • 地址 518057 广东省深圳市南山区科技园科发路1号华为用服中心大厦

  • 入库时间 2023-12-17 15:05:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-15

    未缴年费专利权终止 IPC(主分类):H04L12/24 专利号:ZL021266980 申请日:20020727 授权公告日:20061206

    专利权的终止

  • 2006-12-06

    授权

    授权

  • 2004-04-07

    实质审查的生效

    实质审查的生效

  • 2004-01-28

    公开

    公开

  • 2002-10-30

    实质审查的生效

    实质审查的生效

说明书

技术领域

本发明涉及数字信息的传输,尤其涉及一种基于动态包传输的动态随机存储器队列调度方法。

背景技术

存放数据包的内存目前有几种选择:静态随机存储器SSRAM、动态随机存储器SDRAM、双速率动态随机存储器DDR SDRAM,静态随机存储器SSRAM速度快,比较容易实现Gbit的线速转发,即输入速率多大,输出速率也有多大,但市面上一般容量都较小,只几百K级,当输出端的下游芯片发生流量抖动,如堵塞时,由于容量小,则很容易溢出,因此抗抖动时间短,设计的调度很复杂,内存管理模块设计也相应复杂,且价格昂贵;动态随机存储器SDRAM容量大,目前128Mbits、64Mbits是主流款式,而且价格很便宜速率较低,但当需要多路数据存储调度时,实现线速转发很困难,双速率动态随机存储器DDR SDRAM兼容两者的优点,但由于是不是主流存储芯片,控制很复杂,无成熟的控制设计。

以64Mbit位容量作对比,若按以太网包最小长度为64字节算,则可存放125K个短包,则需要管理125K个内存指针,那么就必须需要一个很大的存储指针的空间,一般采用片内先进先出FIFO存储器或片外的静态随机存储器SSRAM,则目前FPGA满足不了如此大的先进先出FIFO存储器需求,使用片外静态随机存储器SSRAM则成本很高,而动态随机存储器SDRAM则很方便实现。因此,现有的技术成本高,内存管理模块设计复杂、可容许的IP数据流抖动时间短。

发明内容

本发明的目的在于提供一种性能良好且成本低的基于动态包传输的动态随机存储器队列调度方法。

本发明所采用的方法为:这种基于动态包传输的动态随机存储器队列调度方法,其特征在于:

A、输入的以太网包根据设定的门限把数据分成高低两种数据包,并把以太网包根据动态包传输DPT协议转换成空间重用协议SRP包格式;

B、存放的空间重用协议SRP包格式数据包按块存取,把输入数据包按一定数据块规格进行切割,当剩余数据填不满一个数据块空间时,剩余数据占据一个数据块空间,通过增加开销来表示数据块对应的POS口位置以及优先级;

C、通过动态随机存储器SDRAM的读/写一级调度,对动态随机存储器SDRAM进行读写操作或向POS口读输出;在动态随机存储器SDRAM的读/写一级调度中,采用一路数据写输入、两路POS口读输出;读写采用高低优先级调度,写优先级高,保证数据的优先输入,两路POS口之间的读输出采用轮询调度;

D、空间重用协议SRP数据包输入POS口中,有高、低优先级两种数据包,即高、低优先级两种队列,根据输出的POS口及其优先级分为4个队列,两路POS的4个队列置于动态随机存储器SDRAM中;每个POS口根据高低反压原理进行高、低优先级两种队列的二级调度;

所述的步骤D中,对高、低优先级两种队列的二级调度时,采用如下控制方法:

其中,H队列表示高优先级队列,L队列表示低优先级队列,低优先级被反压时,若H队列读控制模块有读请求则仲裁为H队列的读,否则若L队列读控制模块有请求仲裁为L队列;

高优先级被反压时,若L队列读控制模块有读请求则仲裁为L队列的读,否则若H队列读控制模块有请求仲裁为H队列;

两者都被反压时,H队列和L队列采用轮询仲裁;

两者都未被反压时,H队列有读请求优先服务H队列,否则L队列有读请求则服务L队列;

所述的步骤B中,数据包进行切割时后,存入写缓存空间的分片数据块实际增加3bit开销,其中2比特表示对应POS口和高低优先级,即队列号,对应动态随机存储器SDRAM的4个队列;另外1bit表示当前数据字为该包最后数据字,即EOP信息,End of Packet;

所述的数据包被写入写队列调度模块时,根据切割、队列号、以及EOP信息,添加3个长字的开销在数据包的最前面,分别为:

第一个长字(32bits):固定值为0H55555555;

第二个长字(32bits):固定值为0H555555D5;

第三个长字(32bits):长度域信息字,所包括的域有Hlp、Rid、Pri、Sz、Burst_num、Last_length等;

其中,Hlp表示高低优先级;

Rid表示环路,即表示POS口;

Pri表示当前包实际的优先级;

Sz表示当前包数据最后32bits中有效字节数;

Burst_num表示当前包被切割的数据块数;

Last_length:表示当前包被分块后,最后一块有效数据的深度;

被写入写队列调度模块的数据流顺序为:第一个长字、第二个长字、长度域信息字、空间重用协议SRP包头信息和以太网数据包,再经过动态随机存储器SDRAM的读/写一级调度,存入动态随机存储器SDRAM存储空间;

所述的写队列调度模块,包括一个异步块状先进先出FIFO存储器,对应两块数据块,分流分片的数据块存入异步块状先进先出FIFO存储器中,先来数据块存入异步先进先出FIFO存储器的A块空间,后来的存入异步先进先出FIFO存储器的B块空间;当A块空间未释放即未写入动态随机存储器SDRAM时,则异步先进先出FIFO存储器已满,不能再接纳数据块;当异步先进先出FIFO存储器有数据块时,向读/写一级调度模块发起写请求,同时传递写请求对应的队列号,当请求被响应时,从异步先进先出FIFO存储器读取该数据块送给读/写一级调度,由它把数据块写入动态随机存储器SDRAM,在写入动态随机存储器SDRAM过程,存入写缓存空间的分片数据块时增加的3bit开销被丢弃,其中2bits的队列号被传递给读/写一级调度,1bit的EOP信息通知读/写一级调度,便知道该动态随机存储器SDRAM队列空间的数据包是否增加;

所述的二级调度中,POS口的队列读调度模块包括读仲裁模块和队列读控制模块,队列读控制模块有两个;一个队列读控制模块控制一个队列的读操作,其中包括一个读先进先出FIFO存储器,该读先进先出FIFO存储器用于存放本队列的数据包,读调度是按一块块数据从动态随机存储器SDRAM中读出,因此,队列读控制模块产生该队列一个数据包的一次块数据的读取请求及把块数据存放到读先进先出FIFO存储器中,当该队列的一个包的所有数据块被读完时还需向读仲裁模块传递读包结束信息Rh_eop/Rl_eop,读仲裁模块需要向一级调度模块传递读结束信息R_eop以便通知一级调度模块动态随机存储器SDRAM中本队列数据包被读走一个;读仲裁模块对两个队列读控制模块送来的读请求根据当前工作状态、高低反压信号的情况进行仲裁,并把仲裁结果向一级调度模块传递,当本次仲裁结果被一级调度模块所接纳时,则向申请被受理的队列读控制模块发应答信号,则被受理的队列读控制模块开始处理队列的读数据的读过程控制;在该次的读动态随机存储器SDRAM块状数据时,读仲裁模块维护与动态随机存储器SDRAM的读控制信号和维护队列读控制模块部分的握手信号;

所述的读仲裁模块中,对于处于其他工作模式的数据,作出相应的高、低优先级请求的归化设置,且只允许L队列读写控制部分的读请求;

所述的归化设置写成真值表,置于ROM中;

所述的读/写一级调度中,根据数据块的大小,对读写指针进行相应的加减操作,以相对缩小指针的位宽;

所述的动态随机存储器SDRAM采用100M·32bits;

所述的数据包的包头定界字节即开销长字,而且开销长字在每个包的最前面,也是在块数据的最前面2个长字,数据包在被读取时,首先捕获2个长字,若读出的数据不是特定的开销长字,即认为同步失步,因此必须丢弃该数据块,直到读到同步字。

本发明的原理和有益效果为:如图1所示,该单板用于实现IP的动态包传输DPT环网技术,其中PL528的FPGA逻辑提供的是空间重用协议SRP协议处理,通过PL528逻辑,可以方便地实现2层的IP的动态包传输DPT环网接入,一片PL528逻辑只接一路千兆以太网输入,接两路通过同步数字体系数据包POS接口输出,POS即基于SDH/SONET的包封装,Package On SDH/SONET,根据动态包传输DPT协议,逻辑实现一路输入数据流,根据用户设定的优先级别,分成4个队列输出,即每个POS接口都有高、低优先级两个队列,根据动态包传输DPT芯片,即CX29950芯片,送来的高低反压信号进行高低优先级队列的发送调度,常用对列调度流水线处理原理为:如图示2所示,多路数据进来时,仲裁模块根据具体设计情况,按仲裁算法对输入数据流进行仲裁,同时向内存分配管理模块申请一个内存空间,取得相应内存空间的寻址指针,把被仲裁的数据流(包数据)存放到该空间中,同时提取该队列的包头,芯片对整个包头队列进行处理,处理完后根据分配的指针到内存找到相应的数据包,再组装成一个完整的包送出去,上图只是示例,当设计需要比较复杂时,再取出数据包的同时可能还需要对当前包头队列的情况进行仲裁判断。

在本发明中,输入的以太网包根据设定的门限把数据分成高低两种数据包,并把以太网包根据动态包传输DPT协议转换成空间重用协议SRP包格式,存放的数据包按块存取,把输入数据包按一定数据块规格进行切割,当剩余数据填不满一个数据块空间时,剩余数据占据一个数据块空间,通过增加开销来表示数据块对应的POS口位置以及优先级,经过动态随机存储器SDRAM的读/写一级调度:一路数据写输入、两路POS口读输出,读写采用高低优先级调度,写优先级高,利用逻辑芯片处理动态包传输DPT环网的空间重用协议SRP协议(Spatial Reuse Protocol空间重用协议),支持动态包传输DPT芯片的高低反压原理,实现一路以太网数据的IP输入,根据动态包传输DPT协议分成两个POS口环路,每个环路分成两个高低优先级队列,根据动态包传输DPT高低反压调度协议进行包队列调度,完成这种基于动态包传输的动态随机存储器SDRAM队列调度,内存管理设计简单,成本低;而且对于处于其他工作模式的数据,作出相应的高、低优先级请求的归化设置,只允许L队列读写控制部分的读请求,归化设置写成真值表,置于ROM中,以及根据数据块的大小,对读写指针进行相应的加减操作,以相对缩小指针的位宽,可简化设计,提高处理性能;动态随机存储器SDRAM采用100M·32bits可基本满足对于1Gbits/s的线速转发;数据包的包头定界字节即开销长字,在数据处理时可处理长度域出错问题,由于同步字共64bits,而且是放在最前面的位置,因此,错误同步的几率小于1/264,提高芯片设计的可靠性。

附图说明

图1为动态包传输DPT环网2层接入原理示意图;

图2为常用对列调度流水线处理示意图;

图3为本发明对列调度处理示意图;

图4为长度域信息字结构示意图;

图5为由数据分流分块模块写入写队列调度模块中的异步缓存先进先出FIFO存储器的实际数据结构示意图;

图6为POS口的读调度模块结构示意图;

图7为写调度模块的空满处理原理示意图;

图8为仲裁表设置。

具体实施方式

下面根据附图和实施例对本发明作进一步详细说明:

根据图3、图4、图5、图6和图7,本发明中,输入的以太网包必须根据设定的门限把数据分成高低两种数据包,并把以太网包根据动态包传输DPT协议转换成空间重用协议SRP包格式;存放的数据包按块存取,把输入数据包按一定数据块规格进行切割,当剩余数据填不满一个数据块空间时,剩余数据占据一个数据块空间,通过增加开销来表示数据块对应的POS口位置以及优先级;数据包进行切割时后,存入写缓存空间的分片数据块实际增加3bit开销,其中2比特表示对应POS口和高低优先级,即队列号,对应动态随机存储器SDRAM的4个队列;另外1bit表示当前数据字为该包最后数据字,即EOP信息,End of Packet。

如图3所示,通过动态随机存储器SDRAM的读/写一级调度,对动态随机存储器SDRAM进行读写操作或向POS口读输出;在动态随机存储器SDRAM的读/写一级调度中,采用一路数据写输入、两路POS口读输出;读写采用高低优先级调度,写优先级高,保证一路GMII数据的优先输入,两路POS口之间的读输出采用轮询调度,保证两路POS口的公平调度,POSA/POSB的两个高低队列读调度为二级调度。

根据动态包传输DPT协议要求,动态包传输DPT的空间重用协议SRP包输入的POS口中,只有高、低优先级两种数据包,即高低优先级两种队列。用户千兆以太网口输入的以太网包必须根据设定的门限(网络服务提供商的设定)把数据分成高低两种数据包,并把以太网包根据动态包传输DPT协议转换成空间重用协议SRP包格式。两路POS的4个队列就放在动态随机存储器SDRAM中,即把动态随机存储器SDRAM看成4个先进先出FIFO存储器,因此,队列的读/写一级调度模块必须控制和维护这些信息即4个队列的4对读写指针及各队列的空满信号等。动态随机存储器SDRAM采用100Mhz·32bit,存放的数据是按块存取,每块数据为32×32bits。

读队列调度需要控制把包从动态随机存储器SDRAM读出来,同时还必须根据块中的长度信息恢复一个数据包。但读队列是受到高低反压信号的控制。如果基于包的读调度方式,即每个读队列调度必须完整读完一个包才允许下一个读调度,则会人为造成数据输出的抖动,因为根据DPT协议,高低反压信号采样是在POS口发完一个包的时采样,由于从动态随机存储器SDRAM读出包到送出POS口会有一定延时,则会出现这种情况:当前从动态随机存储器SDRAM读出一个完整包还未结束时,POS口刚送出前面一个包并采样到对本队列反压有效信号(不允许当前队列再送出数据包),那么,读队列调度就来不及停下本次的读操作,别的队列因此需要等待。为了处理该缺陷,读队列调度采用特定算法,使每个包既是基于一个完整包的调度,又基于一个个数据块的调度。该功能由队列读调度模块实现。其中队列读控制模块其实就是基于一个包的调度,因为它处理一个包的各个连续的数据块,当读先进先出FIFO存储器有空间就要进行读请求,但读到的是一个数据包的一块数据,当一个包所有数据块都读完整后,则通知调度模块后续模块:该读先进先出FIFO存储器中有完整的数据包。读仲裁模块则是根据一个算法,实现根据高低反压信号进行基于数据块的调度,这是为解决上面人为抖动问题。每个POS口根据高低反压原理进行高、低优先级两种队列的二级调度,以下H队列表示高优先级队列,L队列表示低优先级队列:低优先级被反压时,若H队列读控制模块有读请求则仲裁为H队列的读,否则若L队列读控制模块有请求仲裁为L队列;高优先级被反压时,若L队列读控制模块有读请求则仲裁为L队列的读,否则若H队列读控制模块有请求仲裁为H队列;两者都被反压时,H队列和L队列采用轮询仲裁;两者都未被反压时,H队列有读请求优先服务H队列,否则L队列有读请求则服务L队列。

数据分流分块模块把输入的数据包进行分流并且分片,分流是决定该数据包从哪路POS口送出;分片是把输入数据包按32×32bits为一个数据块进行切割,当剩余数据填不满一个数据块空间时,数据块剩余空间放弃不利用。由于分流,需要增加开销来表示该数据块对应哪路POS口,是高优先级或低优先级,因此,存入写队列调度模块的写缓存空间的分片数据块实际为32×35bits,2比特表示对应POS口和高低优先级(即队列号),对应动态随机存储器SDRAM的4个队列。如00表示0路低优先级、01表示0路高优先级;10表示1路低优先级、11表示1路高优先级。另外1bit表示当前数据字为该包最后数据字(EOP信息,end of packet)。新增3bit开销不存入动态随机存储器SDRAM。由于读调度模块需要从一块块数据块恢复出包数据,因此,该模块还对输入的数据包添加一些开销以便读出模块进行数据包的恢复。开销为32bitsx3,即3个长字,添加在数据包的最前面,分别为:

第一个长字(32bits):固定值为0H55555555

第二个长字(32bits):固定值为0H555555D5

第三个长字(32bits):长度域信息字,如图4所示:

Hlp为高低优先级表示,1表示高,0表示低。

Rid为环路表示,1表示1环,既表示pos口1,0表示0环,即表示pos口0。

Pri为当前包实际的优先级。

Sz为当前包数据最后32bit中有效字节数,00表示32bits都有效,01表示低8bits(即低字节)有效,如此类推。

Burst_num:表示当前包被切割的数据块数,0表示1块,1表示2块,依次类推。

Last_length:表示当前包被分块后,最后一块有效数据的深度,0表示深度为1,1F表示深度为32,即满一块。

因此,一个输入以太网包经过空间重用协议SRP包格式变换后,由数据分流分块模块写入写队列调度模块中的异步缓存先进先出FIFO存储器的实际数据流顺序如图5所示:第一个长字、第二个长字、长度域信息字、空间重用协议SRP包头信息和以太网数据包。

写队列调度模块用来控制输入数据(即1Gbits/s的输入数据经分流分片后的数据块)的写调度,其内包括一个64×35bits的异步块状先进先出FIFO存储器。分流分片的数据块存入异步块状先进先出FIFO存储器中,之所以块状,是对应两块数据块,即先来数据块存入异步先进先出FIFO存储器的A块空间,后来的存入异步先进先出FIFO存储器的B块空间,每块异步先进先出FIFO存储器空间为32×35bits。当A块空间未释放即未写入动态随机存储器SDRAM时,则异步先进先出FIFO存储器已满,不能再接纳数据块了。写调度模块另一个功能为,当异步先进先出FIFO存储器有数据块时,向一级调度模块发起写请求,同时传递写请求对应的队列号,当请求被响应时,从异步先进先出FIFO存储器读取该数据块送给一级调度模块,由它把数据块写入动态随机存储器SDRAM。在写动态随机存储器SDRAM过程,35bits中的3bit开销被丢弃,2bits的队列号被传递给一级调度模块,以便一级调度模块知道该数据块写到哪个动态随机存储器SDRAM区间。1bit EOP通知一级调度模块以便知道该动态随机存储器SDRAM队列空间的数据包是否增加。

POSA/B两个高低队列读调度模块设计是一样的,该模块的功能为从动态随机存储器SDRAM对应的队列中读出该路POS口的两个高低优先级队列,从数据块中恢复成数据包,存放到该模块的两个读异步转换先进先出FIFO存储器中,每个异步先进先出FIFO存储器对应一个队列,每个读调度模块结构示意图如图6所示,队列读调度模块分为读仲裁模块和队列读控制模块(两个),一个队列读调度模块需要负责一路POS口的两个高低优先级队列,因此,一个队列读控制模块就是控制一个队列的读控制,由队列的读控制和一个读先进先出FIFO存储器组成。读FIF是存放本队列的数据包,从上面我们知道,一个数据包是被分割成一块块,而且本设计中,读调度是按一块块数据从动态随机存储器SDRAM中读出,不是按一个包来整个读调度,即当前一块数据被读出后,下一个被读出的数据块不一定是本数据块接续的数据块,可能是别的队列的数据块,因此,队列读控制模块的读控制部分负责产生该队列一个数据包的一次块数据的读取请求及把块数据存放到读先进先出FIFO存储器中去,当该队列的一个包的所有数据块被读完时还需向读仲裁模块传递读包结束信息Rh_eop/Rl_eop,同理读仲裁模块需要向一级调度模块传递读结束信息R_eop以便让一级调度模块知道动态随机存储器SDRAM中本队列数据包又被读走一个。

读仲裁模块的功能是对两个队列读控制模块送来的读请求根据当前工作状态、高低反压信号的情况进行仲裁,并把仲裁结果向一级调度模块传递,当本次仲裁结果被一级调度模块所接纳时,则向申请被受理的队列读控制模块发应答信号,则被受理的队列读控制模块开始处理队列的读数据的读过程控制。在该次的读动态随机存储器SDRAM块状数据时,读仲裁模块就必须维护与动态随机存储器SDRAM的读控制信号和维护队列读控制模块部分的握手信号。握手采用应答方式:req表示读请求,hold表示应答,在接收到应答后,请求发起方必须撤消请求,以防止误操作。读仲裁其实就相当于第二级的队列调度。

本发明是基于包的调度,即在动态随机存储器SDRAM中,存放的是整个数据包,没有像传统设计方案基于包头信息的调度,因此,在分流分块模块,根据添加3个长字后的实际包长度计算出按固定长度分割后的块数、最后一块实际长度,把这些信息放到开销字节中,一起存放到动态随机存储器SDRAM中,读出模块是根据包长度信息即块数和最后一块的实际长度,相当于基于包长度的调度,一旦长度出错,将出现不可恢复的故障。为此,添加包头定界字节即开销长字1和2,共64bit,而且开销长字肯定是在每个包的最前面,也是在块数据的最前面2个长字。读调度模块增加一个同步状态机用于捕获2个长字,当读调度模块在开始读一个数据包的第一个数据块时,若此时读出的数据不是特定的开销长字,即认为同步失步,因此必须丢弃该数据块,直到读到同步字。由于同步字共64bits,而且是放在最前面的位置,因此,错误同步的几率小于1/264,而且,对芯片设计的正确性要求,长度域出错可能性很低。若出错,通过丢包来换取芯片工作的稳定。其实开销长字的第三个长字的最高11bits固定为0,因此,若同步机把该11bits也考虑进去,错误同步概率就更低,丢包也越少。

动态随机存储器SDRAM器件的读写操作本身的带宽利用率是很低的,因此也决定了本发明不能再在动态随机存储器SDRAM中单独存放控制信息,即不能通过动态随机存储器SDRAM器件使用传统调度方案,该发明实际存放到动态随机存储器SDRAM中还有附加开销,这又降低了带宽利用率,为满足系统1Gbits/s的线速转发,本发明处理如下:

动态随机存储器SDRAM选用100M·32bits,理论带宽3.2G,动态随机存储器SDRAM控制器要求写操作时,开销不大于4拍,读操作时,开销不大于8拍。则按此设计,当动态随机存储器SDRAM一次读写长度为32时,动态随机存储器SDRAM读写带宽大约为1.34G。由于我们在以太网包上还添加了一些其它字节,如上面的3个长字开销,因此当处理短包如64字节的以太网短包时,实际带宽利用率更低。在上面的动态随机存储器SDRAM带宽基础上,对短包来说,如果开销字节打28,则实际带宽为=1.34*64/(64+28)=0.94Gbits/s。对实际应用来说,基本满足线速转发。

本发明的数据块分块采用32深度,当一个数据块没有填满时,在写入动态随机存储器SDRAM时必须按实际长度写,不能按32深度写,以便节省带宽。对写调度模块的写缓存异步先进先出FIFO存储器必须做特殊的空满标志处理。如图7所示,块状异步先进先出FIFO存储器每块的读写都是从块的起点开始,如A块,读写都是从地址0开始,B块,读写都是从地址32开始,当一块没有完全填满时,指针要具有调整功能,如当数据分流分块模块向A块空间写入17个深度的数据时,当写完第17个数据,写指针需要跳转到下一块空间即B块的起始地址即地址32,读一样。每块空间具有独立的空满信号,当满信号有效表示该数据块未被释放即未被写调度读出写入动态随机存储器SDRAM,因此,数据分流分块模块不能再往该块写。空信号对写调度而言,当空信号无效,表示该块有数据,写调度可以向一级调度模块申请写操作请求。为了满足带宽需求,要求:满信号在分流分块模块一开始写该先进先出FIFO存储器块时,就置有效,只有当读指针读完该数据块数据即指针从A块跳到B块首地址时置无效,即释放该先进先出FIFO存储器块空间;当写调度开始读块数据时,空信号置有效,只有当分流模块把该块数据写完一半如上图右,写指针越过地址16时,空信号置无效,表示写调度可以开始读数据。如此处理是为了减少空满信号的带宽浪费。因为写带宽为读带宽的一半,最消极情况下,分流模块刚写完一个数据块,写调度也刚好读完一个数据块,达到最快调度。本队列调度模块的处理时钟是100MHz的,因此设计还解决了如何处理高速设计的问题,保证复杂的调度算法能够实现100MHz的操作时钟,主要采用:

A:在一级调度模块,由于需要维护读写指针,即进行读写指针的加1减1操作,当位宽越宽时,加减法器的处理速度越慢,由于动态随机存储器SDRAM是采用块状存取,当一块块未填满,剩余空间不用,因此,指针的位宽可以缩小,如32块状深度就可以缩小5bits宽度,从而牺牲动态随机存储器SDRAM面积换取速度。

B:在读仲裁模块中,调度算法比较复杂,因此,可能也是速度瓶颈。如本发明中,实际工作状态有三种,因此调度算法处理上面描述的算法外,还需增加:为提高速度,对于处于其他工作模式的数据,作出相应的高、低优先级请求的归化设置,且只允许L队列读写控制部分的读请求,归化设置以仲裁表形式写成真值表,放到ROM中,如图8所示,MODE表示工作状态:非0表示其余工作状态,0表示动态包传输DPT规定的空间重用协议SRP状态。Txh_rlo:低优先级的反压信号,0表示被反压。Txh_rho:高优先级的反压信号,0表示反压。H/L_req:读队列控制模块的读请求,分别表示高低队列的读请求。Flag/Next_flag:被仲裁的标志。输出:表示仲裁的结果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号