CN109697022A - 一种报文描述符pd的处理方法、装置及计算机可读存储介质 - Google Patents
一种报文描述符pd的处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109697022A CN109697022A CN201710994891.0A CN201710994891A CN109697022A CN 109697022 A CN109697022 A CN 109697022A CN 201710994891 A CN201710994891 A CN 201710994891A CN 109697022 A CN109697022 A CN 109697022A
- Authority
- CN
- China
- Prior art keywords
- read
- write
- team
- order
- memory
- 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
- 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/0611—Improving I/O performance in relation to response time
-
- 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/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
-
- 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/6215—Individual queue per QOS, rate or priority
-
- 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/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种报文描述符PD的处理方法,包括:接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;当所述读写状态为不可用状态,在所述第二存储器对所述PD进行读写操作;所述第一存储器设置于进行缓存管理的缓存管理单元MMU中。本发明还公开了一种PD的处理装置和计算机可读存储介质。
Description
技术领域
本发明涉及通信领域,尤其涉及一种报文描述符PD的处理方法、装置及计算机可读存储介质。
背景技术
随着网络的迅速发展,在数据通信领域对数据产品的QoS服务质量要求越来越高,对QoS需要支持的队列数、带宽和报文的低延迟都提出了更高的要求,因此对队列管理单元(Queue Manager Unit,QMU)和缓存管理单元(Memory Manager Unit,MMU)的性能要求也越来越高。
QMU主要包括队列入队、队列调度和队列出队基本操作,为了有效的管理队列入队、队列调度和队列出队,队列管理需要存储队列的重要参数(比如:队列首尾指针、队列深度、队列授权盈余等),队列的这些重要参数通常存储在随机存取存储器(Random AccessMemory,RAM)。
MMU主要管理队列入队和出队时对外部缓存器的访问的控制。在队列出队时首先读取PD(Packet Descriptor,PD),随后依据PD信息才能准确有效的读取报文,PD主要包括报文包长、报文出端口号以及其他报文信息。PD可以存储在RAM或者外部存储器,若将PD存储在RAM中,随着队列数的增加,所需要的RAM资源将急剧增加,这样会增加芯片的面积和功耗;若把PD存储在外部存储器中,队列管理获取PD读延迟会很大,这样会严重影响报文出队的速度,降低芯片的性能和带宽。
特别大容量的流量管理设备的PD存储方法一般是将PD和报文拼接后一起存储在外部DDR(Double Data Rate,简称:DDR)存储器里面或者HBM(High Bandwidth Memory,简称:HBM)存储器等外部存储器里面,但是DDR或者HBM的读写延迟都很大,高读写延迟极大的限制了队列管理性能的提升。
因此,亟需提供一种PD的处理方案,能够在节约RAM资源的同时,提高读写速度。
发明内容
有鉴于此,本发明实施例希望提供一种PD的处理方法、装置及计算机可读存储介质,能够在节约RAM资源的同时,提高读写速度。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种PD的处理方法,所述方法包括:
接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;
当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;
当所述读写状态为不可用状态,在第二存储器对所述PD进行读写操作;
所述第一存储器设置于进行缓存管理的缓存管理单元MMU中。
上述方案中,所述根据所述第一读写地址确定所述PD在第一存储器上的读写状态包括:
将所述第一读写地址进行转换得到索引地址;
获取所述第一存储器的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储器上的读写状态。
上述方案中,获取所述第一存储器的所述索引地址的索引信息包括:
从所述索引地址中的至少两个行way中选取目标way;
获取所述目标way的索引信息。
上述方案中,当接收到入队写命令,所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:
根据所述索引信息中的状态信息确定所述PD在第一存储器上的读写状态;
或根据所述索引信息中的状态信息和所述PD的PD类型确定所述PD在第一存储器上的读写状态。
上述方案中,当接收到出队读命令,所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:
获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储器上的读写状态。
上述方案中,所述方法还包括:
当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;
当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。
上述方案中,当接收到入队写命令,所述方法还包括:
当所述入队写命令对应的保序值为第一保序值,控制所述第一存储器生成第一写释放消息;
当所述入队写命令对应的保序值为第二保序值,控制所述第二存储器生成第二写释放消息。
为实现上述PD的处理方法,本发明实施例还提供一种PD的处理装置,所述装置包括:解析单元和读写单元;
所述解析单元,用于接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定PD在第一存储单元上的读写状态;
所述读写单元,用于当所述读写状态为可用状态,在所述第一存储单元对所述PD进行读写操作,当所述读写状态为不可用状态,在第二存储单元对所述PD进行读写操作;
所述第一存储单元设置于进行缓存管理的缓存管理单元MMU中。
上述方案中,所述解析单元根据所述第一读写地址确定所述PD在第一存储单元上的读写状态包括:
将所述第一读写地址进行转换得到索引地址;
获取所述第一存储单元的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储单元上的读写状态。
上述方案中,所述解析单元获取所述第一存储单元的所述索引地址的索引信息包括:
从所述索引地址中的至少两个way中选取目标way;
获取所述目标way的索引信息。
上述方案中,当接收到入队写命令,所述解析单元根据所述索引信息确定所述PD在第一存储单元上的读写状态包括:
根据所述索引信息中的状态信息确定所述PD在第一存储单元上的读写状态;
或根据所述索引信息中的状态信息和所述PD的PD类型确定所述PD在第一存储单元上的读写状态。
上述方案中,当接收到出队读命令,所述解析单元根据所述索引信息确定所述PD在第一存储单元上的读写状态包括:
获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储单元上的读写状态。
上述方案中,所述装置还包括:保序单元,用于:
当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;
当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。
上述方案中,当接收到入队写命令,所述装置还包括:释放单元,用于:
当所述入队写命令对应的保序值为第一保序值,控制所述第一存储单元生成第一写释放消息;
当所述入队写命令对应的保序值为第二保序值,控制所述第二存储单元生成第二写释放消息。
本发明实施例还提供一种PD的处理装置,包括:处理器、用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述PD的处理方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述PD的处理方法的步骤。
本发明实施例的一种PD的处理方法、装置及计算机可读存储介质,包括:接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;当所述读写状态为不可用状态,在所述第二存储器对所述PD进行读写操作;所述第一存储器设置于进行缓存管理的缓存管理单元MMU中;如此,动态将PD存储到片内缓存或者外部存储器中,解决了PD静态存储在RAM中带来资源增加问题或PD静态存储在外部存储器高读写延迟问题,提高了流量管理模块的处理性能,节约了RAM资源,减少了面积,节省了对外部存储器的读写次数,提高了PD的读写速度。
附图说明
图1为本发明实施例一提供的PD的处理方法的流程示意图;
图2为本发明实施例一提供的第一存储器和第二存储器的结构示意图;
图3为本发明实施例三提供的PD-cache的mWay结构示意图;
图4为本发明实施例三提供的PD的写入方法的流程示意图;
图5为本发明实施例三提供的入队写命令队列和入队写命令保序队列的映射关系示意图;
图6为本发明实施例三提供的PD存储方式示意图;
图7为本发明实施例三提供的PD的读取方法的流程示意图;
图8为本发明实施例三提供的出队读命令队列和出队读命令保序队列的映射关系示意图;
图9为本发明实施例三提供的PD读取方式示意图;
图10为本发明实施例四提供的一种PD的处理装置的结构示意图;
图11为本发明实施例四提供的另一种PD的处理装置的结构示意图;
图12为本发明实施例五提供的一种PD的处理装置的结构示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述。
实施例一
本发明实施例一提供一种报文描述符PD的处理方法,如图1所示,所述方法包括:
S101、接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;
对PD进行读写操作时,PD主要包括包的片内首指针、包长、片内片外指示等信息。片内首指针指示该PD对应的报文在片内的存储地址,包长指示该PD对应的报文的包长,片内片外指示指示该PD对应的报文存储在片内还是片外。
这里,存储PD的存储器包括两个存储器,分别为第一存储器和第二存储器,第一存储器设置于进行缓存管理的缓存管理单元MMU中,也可称为PD-cache,第二存储器设置于所述MMU外,也可称为外部存储器。其中,第一存储器和第二存储器可如图2所示,第一存储器设置于MMU内,为MMU的片内存储器,可与MMU的缓存控制器连接,第二存储器为设置于MMU外的片外存储器。这里,MMU主要管理队列入队和出队时对外部缓存器的访问的控制。
当终端接收到入队写命令或出队读命令后,对入队写命令或出队读命令进行解析,得到入队写命令或出队读命令携带的第一读写地址。当接收到入队写命令时,入队写命令携带待写入的PD,指示将PD写入第一读写地址。当接收到出队读命令时,指示从第一读写地址读取PD。
这里,可直接以第一读写地址作为写入或读取PD的地址,此时,直接利用第一读写地址确定PD在第一存储器上的读写状态;也可将第一读写地址转换为索引地址,以索引地址作为写入或读取PD的地址,此时,利用索引地址确定PD在第一存储器上的读写状态。
根据所述第一读写地址确定所述PD在第一存储器上的读写状态包括:将所述第一读写地址进行转换得到索引地址;获取所述第一存储器的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储器上的读写状态。
在得到第一读写地址后,将第一读写地址转换为索引地址,通过地址转换是将第一读写地址转换成第一存储器的索引地址,其中,索引地址为与第一读写地址对应在第一存储器上的索引地址。地址转换可通过循环冗余码校验(Cyclic Redundancy Check,CRC)多项式实现,其中,使用CRC多项式进行地址转换可将第一读写地址更好的离散化和随机化,这样有利于提高第一存储器的均衡性和命令率。在进行地址转换时,CRC多项式可配置,不同应用场景下可使用不同的CRC多项式。
在确定索引地址后,根据索引地址确定第一存储器中索引地址对应的条目,在每个条目中,可包括m个,即第一存储器采用mWay的存储方式,其中,Way表示行。此时,第一存储器的每个条目都是mWay(m≥1)结构,mWay包括Way0、Way1……Waym,每个Way可以存储1个PD。
当索引地址的条目包括一个Way,以索引地址的条目所包括的Way作为目标Way,读取目标Way的索引信息,根据读取的目标Way的索引信息确定PD在第一存储器上的读写状态。
当索引地址的条目包括至少两个Way,获取所述第一存储器的索引地址的索引信息包括:从所述索引地址中的至少两个way中选取目标way;获取所述目标way的索引信息。在选取目标Way时,可根据需求设置多种选取准则,比如:在索引地址中携带目标Way的标识信息、根据Way的空闲状态确定目标Way等。以根据Way的空闲状态确定目标Way为例,根据所述索引地址中的至少两个way中的各个way的空闲状态确定目标way;比如:第一存储器采用2way结构,则每个条目包括Way0和Way1,在确定索引地址后,查看索引地址的Way0和Way1的空闲状态,当Way0为空闲状态,则以way0为目标Way,在Way0进行读写操作,当Way1为空闲状态,则以Way1为目标Way,当Way0和Way1都为空闲状态时,可根据Way0和Way1的优先级确定目标Way。在查看way的空闲状态时,可根据Way的索引信息中的状态信息查看Way的空闲状态。
在本发明实施例中,使用mWay存储方式,第一存储器的每个条目都可以存储m个PD,提高了第一存储器的利用率,降低了入队和出队对外部存储器的访问数目,提高了QMU和MMU的处理性能。
每个way的索引信息包括状态信息和数据信息,状态信息表征当前way是否可以使用以及在被占用时,存储的PD的类型;数据信息存储PD及PD对应的地址,这里将数据信息中存储的PD对应的地址称为第二读取地址。PD的类型包括外部报文描述符(External PacketDescriptor,EPD)、内部报文描述符(Internal Packet Descriptor,IPD)等类型,EPD表示PD在外部存储器有备份,IPD表示PD在外部存储器没有备份,只存储在第一存储器中,EPD可以被IPD覆盖。在本发明实施例中,状态信息可通过不同的标识符来表示,比如:当状态信息为00时,表示当前way为空,可存储PD;当状态信息为01时,当前way存储的EPD,可被IPD覆盖;当状态信息为11时,当前way存储的IPD,不可被覆盖,新的PD只能存储在外部存储器。
当接收到入队写命令时,所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:根据所述索引信息中的状态信息确定所述PD在第一存储器上的读写状态;或根据所述索引信息中的状态信息和所述PD的PD类型确定所述PD在第一存储器上的读写状态。
这里,PD在第一存储器上的读写状态为可用状态和不可用状态。此时,当读写状态为可用状态,第一存储器的索引地址的目标Way中可写入PD,当读写状态为不可用状态,第一存储器的索引地址的目标Way中不可写入PD,需将PD写入第二存储器即外部存储器。索引信息中的状态信息表征当前Way为空时,读写状态为可用状态,则目标Way为空闲状态,可写入任何类型的PD;当索引信息中的状态信息表征目标Way存储IPD时,读写状态为不可用状态,目标Way中不可写入PD;当索引信息中的状态信息表征目标Way存储EPD时,查看待写入的PD的类型,当待写入的PD的类型为IPD,读写状态为可用状态,当前Way中可写入IPD,当待写入的PD的类型为EPD,读写状态为不可用状态,目标Way中不可写入EPD。
当接收到出队读命令,所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储器上的读写状态。
接收到出队读命令时,出队读命令本身不携带PD,指示从存储PD的位置对PD进行读取操作。此时,获取索引地址的数据信息中的第二读写地址,当索引地址包括多个Way时,获取目标Way的数据信息中的第二读写地址。将出队读命令中的第一读写地址和第二读写地址进行匹配得到匹配结果,当匹配结果为第一读写地址和第二读写地址匹配时,读命中,确定索引地址存储有出队读命令欲读取的PD;当匹配结果为第一读写地址与第二读写地址不匹配时,读不命中,确定索引地址未存储有出队读命令欲读取的PD,欲读取的PD存储在第二存储器,即存储MMU的外部存储器。
这里,将第一读写地址和第二读写地址进行匹配的匹配策略可根据需求进行设置,比如:当第一读写地址和第二读写地址相同时,确定第一读写地址和第二读写地址匹配。
根据第一读写地址确定PD在第一存储器上的读写状态后,还包括:当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。通过入队写命令对应的保序值对接收到的入队写命令进行排序,保证接收到的入队写命令的接收顺序;通过出队读命令对应的保序值对接收到的出队读命令进行排序,保证接收到的出队读命令的接收顺序。
这里,入队写命令对应的第一保序值可称为第一写保序值,入队写命令对应的第二保序值可称为为第二写保序值,出队读命令对应的第一保序值为称为第一读保序值,出队读命令对应的第二保序值可称为为第二读保序值。
当状态信息表征当前way为空时,表征当前way可用,则设置接收的入队写命令对应的写保序值为第一写保序值;当状态信息表征当前way存储EPD时,待写入的PD为EPD,则设置接收的入队写命令对应的写保序值为第二写保序值,待写入的PD为IPD,则设置接收的入队写命令对应的写保序值为第一写保序值;当状态信息表征当前way存储IPD时,待写入的PD为EPD或IPD,设置接收的入队写命令对应的写保序值都为第二写保序值。
接收到入队写命令时,接收到的入队写命令映射有写保序值,其中,接收到的入队写命令的队列映射有入队写保序队列,入队写保序队列中根据接收到的入队写命令的顺序排列有各入队写命令对应的写保序值。写保序值包括第一写保序值和第二写保序值。当PD在第一存储器上的读写状态为可用状态,写保序值为第一写保序值,表征入队写命令待写入的PD可写入第一存储器中。当PD在第一存储器上的读写状态为不可用状态,写保序值为第二写保序值,表征对入队写命令待写入的PD无法写入第一存储器中,需存储在第二存储器中。第一写保序值和第二写保序值可通过不同的标识如:0、1进行区分,比如:第一写保序值为1,第二写保序值为0。
可根据所述匹配结果设置所述出队读命令对应的读保序值。
接收到出队读命令时,接收到出队读命令映射有读保序值,其中,接收到的出队读命令的队列映射有出队读保序队列,出队读保序队列中根据接收到的出队读命令的顺序排列有各出队读命令对应的读保序值。读保序值包括第一读保序值和第二读保序值,当PD在第一存储器上的读写状态为可用状态,读保序值为第一读保序值,表征第一存储器中的索引地址存储有出队读命令欲读取的PD,出队读命令读取的PD可从第一存储器中读取。当PD在第一存储器上的读写状态为不可用状态,读保序值为第二读保序值,表征第一存储器中的索引地址未存储出队读命令欲读取的PD,出队读命令读取的PD无法从第一存储器中读取,需从第二存储器中读取。第一读保序值和第二读保序值可通过不同的标识如:0、1进行区分,比如:第一读保序值为1,第二读保序值为0。
在实际应用中,将第一读写地址和第二读写地址进行匹配得到匹配结果后,根据匹配结果对出队读命令对应的读保序值进行设置后,可根据读保序值确定欲读取的PD的存储位置,当出队读命令对应的保序值为第一读保序值时,表明欲获取的PD存储在第一存储器中,当出队读命令对应的保序值为第二读保序时,表明欲获取的PD存储在外部存储器中。
S102、当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;
当接收到入队写命令,读写状态为可用状态时,则表征可向第一存储器的索引地址中写入PD。此时,将PD写入第一存储器的索引地址的目标Way中。当接收到出队读命令,读写状态为可用状态时,表征第一存储器的索引地址中存储有PD,则从第一存储器的索引地址的目标Way中读取PD。
S103、当所述读写状态为不可用状态,在第二存储器对所述PD进行读写操作。
当接收到入队写命令,读写状态为不可用状态时,则表征PD不可写入第一存储器的索引地址中,此时,将PD写入向第二存储器。当接收到出队读命令时,读写状态为不可用状态时,则表征第一存储器的索引地址中未存储有出队读命令欲读取的PD,无法从第一存储器的索引地址读取欲读取的PD,此时,从第二存储器读取欲读取的PD。第二存储器可为外部DDR存储器、HBM存储器等外部存储器。
在本发明实施例中,当接收到入队写命令时,所述方法还包括:当所述入队写命令对应的保序值为第一保序值,控制所述第一存储器生成第一写释放消息;当所述入队写命令对应的保序值为第二保序值,控制所述第二存储器生成第二写释放消息。
这里,在将PD写入第一存储器或第二存储器中后,根据该入队写命令对应的保序值控制第一存储器或第二存储器生成写释放消息,将生成的写释放消息发送给QMU,通过QMU当前写操作完成。当入队写命令对应的保序值为第一写保序值时,则表明PD写入第一存储器中,控制第一存储器生成第一写释放消息发送至QMU,当入队写命令对应的保序值为第二写保序值时,则表明PD写入第二存储器中,则控制第二存储器生成第二写释放消息发送至QMU。这里,将第一存储器生成的写释放消息称为第一写释放消息,将第二存储器生成的写释放消息称为第二写释放消息。
在实际应用中,当控制第二存储器生成第二写释放消息时,可控制用于控制第二存储器的外部控制器生成第二写释放消息。
在本发明实施例中,接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;当所述读写状态为不可用状态,在所述第二存储器对所述PD进行读写操作;所述第一存储器设置于进行缓存管理的缓存管理单元MMU中;如此,动态将PD存储到片内缓存或者外部存储器中,并优先将PD存储在片内的第一存储器,当第一存储器中已经存储了PD,那么新的PD会存储到外部存储器中,解决了PD存储静态存储在RAM中带来资源增加问题或PD静态存储在外部存储器高读写延迟问题,提高了流量管理模块的处理性能,节约了RAM资源,减少了面积,节省了对外部存储器的读写次数。进一步的地,第一存储器使用mWay存储方式,每个条目都可以存储m个PD,提高了第一存储器的利用率,降低了入队和出队对外部存储器的访问数目,提高了QMU和MMU的处理性能。第一存储器中的索引信息分开存储Way的状态信息和数据信息,有利于简化逻辑实现和降低RAM资源。
实施例二
在本发明实施例中,对上述实施例提供的PD的处理方法进行进一步描述,这里,第一存储器为PD-cache,第二存储器为外部存储器。
本发明实施例中,报文入队PD存储到PD-cache或外部存储器,报文出队会自动检查当前PD是否存储在PD-cache中。如果命中,则直接从PD-cache读取PD,如果没有命中,才会从外部存储器读取PD,这样可以有效降低对外部存储器的访问次数,节省外部存储器的读写带宽。PD-cache同时支持纯片内工作模式,即芯片没有挂接外部存储器的情况下,能支持芯片的正常工作。
PD的读取方法中主要包括地址转换、入队写命令保序、入队写命令释放、PD-cache入队更新、出队读命中,出队读命令保序、PD-cache出队更新几部分。
地址转换可通过CRC多项式将写命令地址和读命令地址转换成PD-cache的索引地址。这里,写命令地址为入队写命令的第一读写地址,读命令地址为出队读命令的第一读写地址。
使用CRC多项式可以将写命令地址和读命令地址更好的离散化和随机化,这样有利于提高PD-cache的均衡性和命令率。CRC多项式支持可配置,不同应用场景可以使用不同的CRC多项式。
入队写命令保序:入队写命令依据PD-cache的状态信息,判断PD是存储在PD-cache还是外部存储器,当确定PD存储在PD-cache中,入队写命令保序先进先出队列(firstin,first out,FIFO)置1,当确定PD是存储在外部存储器,那么入队写命令保序FIFO置0。这里,在报文需要完全存储到存储单元时产生写释放,按照入队写命令顺序释放入队写命令释放的顺序,避免QMU出错。这里,入队写命令保序FIFO当前的值为当前入队写命令对应的写保序值。
入队写命令释放方法:当入队写命令保序FIFO非空时,预取入队写命令保序FIFO的值,若预取的值为1,则入队写命令释放由PD-cache自动产生,若预期的值为0,则入队写命令释放由外部存储器的控制器产生。
PD-cache入队更新准则:入队写命令首先读取PD-cache中当前Way的状态信息,如果PD-cache中当前Way可以使用,那么PD就可以存储在PD-cache,并且更新PD-cache中当前Way的状态信息,否则PD就存储到外部存储器,并且保持PD-cache中当前Way的状态信息不变。
出队读命中:出队读命令获取PD-cache中当前Way的数据信息中的地址和出队读命令的中地址完成一致就表示读命中。如果判决是读命中,PD则直接从PD-cache中读取,如果判决是读不命中,PD则需要从外部存储器中读取。
出队读命令保序:PD返回的顺序必须依据出队读命令顺序返回,否则会导致QMU解析PD出错。如果读命中,出队读命令保序FIFO置1,相反如果读不命中,出队读命令保序FIFO置0。
PD-cache出队更新准则:如果读命中,需要将PD-cache中当前Way的状态信息清空,如果读不命中,保持PD-cache中当前Way的状态信息不变。
本发明实施例提供的PD读取的方法,将PD优先存储在PD-cache中,若PD-cache的Way已经存储了PD,那么新的PD才会存储到外部存储器中,解决了PD存储静态存储在RAM中带来资源增加问题或PD静态存储在外部存储器高读写延迟问题,提高了流量管理模块的处理性能,节约了RAM资源,减少了面积,节省了对外部存储器的读写次数。
实施例三
在本发明实施例中,对上述实施例提供的PD的处理方法进行进一步描述,这里,第一存储器为PD-cache,第二存储器为外部存储器。
这里,对PD-cache的mWay存储方式,如图3所示,PD-cache的每个条目都是mWay(m≥1)结构,mWay就是指Way0、Way1……Waym,每个Way可以存储1个PD。Way的信息包括状态信息和数据信息。Way的状态信息显示当前的Way是否可以使用,由于Way的状态信息在入队和出队的时候都需要进行读写操作,可选择使用2R2W的RAM存储Way的状态信息。Way的数据信息存储的是PD和PD对应的地址,Way的数据信息是在入队的时候写入,在出队的时候读取,可选择使用1R1W的RAM存储数据信息。选择分开存储Way的状态信息和数据信息有利于简化逻辑实现和降低RAM资源。使用mWay存储方式,PD-cache的每个条目都可以存储m个PD,提高了PD-cache的利用率,降低了入队和出队对外部存储器的访问数目,提高了QMU和MMU的处理性能。
PD-cache的Way的状态信息具体含义说明如下:Way的状态信息可包括{Flag0,Valid0,Flag1,Valid1,……Flagm,Validm}共2mbit信息。其中,Flag0和Valid0对应Way0的状态信息,Flag1和Valid1对应Way1的状态信息……Flagm和Validm对应Waym的状态信息。由于{Flag0,Valid0}、{Flag1,Valid1}……{Flagm,Validm}的含义和更新准则是完全一致的,因此用{Flag,Valid}代替{Flag0,Valid0}、{Flag1,Valid1}……{Flagm,Validm}进行详细说明。当{Flag,Valid}为2’b00表示当前Way是空的,可以存储PD;{Flag,Valid}为2’b01表示当前Way存储的EPD,EPD表示PD在外部存储器有备份,EPD可以被IPD覆盖,IPD表示PD在外部存储器没有备份,只存储在PD-cache;{Flag,Valid}为2’b11表示当前Way存储的IPD,IPD不可以被覆盖,新的PD只能存储到外部存储器;{Flag,Valid}为2’b10的情况不存在;其中,2’b00表示通过2进制的表示的00,其他类似。
写命令和读命令对{Flag,Valid}更新准则如下。
写命令更新{Flag,Valid}状态:
(1){Flag,Valid}为2’b00:当前Way为空,若新PD为EPD,存储在当前Way并且更新{Flag,Valid}为2’b01;新PD为IPD,存储在当前Way并且更新{Flag,Valid}为2’b11;此时,读写状态为可用状态。
(2){Flag,Valid}为2’b01:当前Way储存的EPD,若新PD为IPD,读写状态为可用状态,存储在当前Way并且更新{Flag,Valid}为2’b11;新PD为EPD,读写状态为不可用状态,存储到外部存储器,不更新{Flag,Valid};
(3){Flag,Valid}为2’b10:这种情况不存在;
(4){Flag,Valid}为2’b11:当前Way储存的IPD,新PD不管是IPD或EPD,读写状态为不可用状态,都存储到外部存储器,不更新{Flag,Valid}。
读命令更新{Flag,Valid}状态:
(1){Flag,Valid}为2’b00:当前Way为空,没有存储PD,读不命中,不更新{Flag,Valid};
(2){Flag,Valid}为2’b01:当前Way储存的EPD,若读命中,并且更新{Flag,Valid}为2’b00,若读不命中,不更新{Flag,Valid};
(3){Flag,Valid}为2’b10:这种情况不存在;
(4){Flag,Valid}为2’b11:当前Way储存的IPD,若读命中,并且更新{Flag,Valid}为2’b00,若读不命中,不更新{Flag,Valid}。
当读命中时,读写状态为可用状态,当读不命中时,读写状态为不可用状态。
初始化的时候,PD-cache的状态信息和数据信息全部清空。
下面通过实例一中的接收到入队写命令时的PD的处理方法和实例二中的接收出队读命令时的PD的处理方法对本发明实施例提供的PD的处理方法进行进一步说明。
实例一
当接收到入队写命令时,PD的处理方法如图4所示,包括:
S401、接收入队写命令;
S402、写命令地址进行转换,确定索引地址;
这里,对写命令地址进行地址转换得到索引地址,索引地址为PD-cache的索引地址。
S403、根据索引地址读取索引信息;
S404、根据索引信息中的状态信息判断当前Way是否可用;
当判断Way可用时,执行S405;当判断Way不可用时,执行S408。这里,当读写状态为可用状态时,表征Way可用,当读写状态为不可用状态时,表征Way不可用。
S405、PD存储在PD-cache的当前Way中;
S406、设置写保序值为1;
S407、控制PD-cache产生写释放消息;
S408、PD存储在外部存储器中;
S409、设置写保序值为0;
S410、控制外部控制器产生写释放消息。
接收到入队写命令时,将入队写命令的写命令地址(第一读取地址)进行地址转换后得到索引地址,再用转换后的索引地址读取PD-cache的状态信息,判决当前Way是否可以使用,如果当前Way可以使用,将PD和PD对应的地址存储到当前Way的数据信息中,并更新当前Way的状态信息,此时,向入队写命令保序FIFO中写1。如果当前Way不可以使用,将PD存储到外部存储器,保持当前Way的状态信息,并且向入队写命令保序FIFO中写0。入队写命令保序队列如图5所示,入队写命令队列中的入队写命令的顺序依次为:WR_CMD_0、WR_CMD_1、WR_CMD_2、WR_CMD_3、……WR_CMD_N,入队写命令队列对应的入队写命令保序队列中根据入队写命令的顺序映射有各入队写命令的写保序值,其中,1为读写状态可用,PD存储在PD-cache,0为读写状态可用,PD存储在外部存储器。
写命令释放如下所述:一旦入队写命令保序FIFO非空时,就预取入队写命令保序FIFO的值,如果预取的写命令保序值为1,由PD-cache产生写释放返回给QMU,如果预取的写命令保序值为0,必须等待外部控制器产生的写释放返回给QMU。
入队的PD写入方式如示意图6所示,在图6中,入队的PD的顺序为PD0、PD1、……PDN,当一PD的索引地址中的Way可用时,将该PD存储在PD-cache中,当一PD的索引地址中的Way不可用时,将该PD存储在外部存储器中。
实例二
当接收到出队读命令时,PD的处理方法如图7所示,包括:
S701、接收出队读命令;
S702、读命令地址进行转换,确定索引地址;
这里,对读命令地址进行地址转换得到索引地址,索引地址为PD-cache的索引地址。
S703、根据索引地址读取索引信息;
S704、根据索引信息中的数据信息判断当前是否命中;
当命中时,执行S705,当未命中时,执行S707。这里,当命中时,读写状态为可用状态,当未命中时,读写状态为不可用状态。
S705、设置读保序值为1;
S706、从PD-cache读取PD;
S707、设置读保序值为0;
S708、从外部存储器读取PD。
接收到的出队读命令时,将出队读命令的读命令地址(第一读写地址)进行地址转换得到索引地址,再用转换后的索引地址读取PD-cache的数据信息,判决读命令是否命中,若读命中,向出队读命令保序FIFO中写1,清空PD-cache的状态信息,并且将从PD-cache读取到PD存储到Cache_PD_FIFO中;若没有读命中,向出队读命令保序FIFO中写0,保持PD-cache的状态信息,并且向外部存储器发起读PD的操作,将外部存储器返回的PD存储到EMEM_PD_FIFO中。当出队读命令保序FIFO非空时,预取出队读命保序FIFO的值,若预取的读命令保序值为1,需要等待Cache_PD_FIFO为非空的时候,则从Cache_PD_FIFO读取PD返回给QMU,若预取的读命令保序值为0,需要判决EMEM_PD_FIFO为非空的时候,则从EMEM_PD_FIFO读取PD返回给QMU。出队读命令保序队列如8所示,出队读命令队列中的出队读命令的顺序依次为:RD_CMD_0、RD_CMD_1、RD_CMD_2、RD_CMD_3、……RD_CMD_N,出队读命令队列对应的出队读命令保序队列中根据出队读命令的顺序映射有各出队读命令的读保序值,其中,1为读写状态可用,PD存储在PD-cache,0为读写状态可用,PD存储在外部存储器。
出队的PD读取方式如示意图9所示,在图9中,出队的PD的顺序为PD0、PD1、……PDN,当一PD的索引地址中的数据信息命中时,该PD存储在PD-cache中,从PD-cache读取PD;当一PD的索引地址中的数据信息未命中时,该PD存储在外部存储器,从外部存储器读取该PD。
实施例四
为实现本发明实施例提供的PD的处理方法,本发明实施例提供一种PD的处理装置,如图10所示,包括:解析单元1001、读写单元1002;
解析单元1001,用于接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储单元上的读写状态;
读写单元1002,用于当所述读写状态为可用状态,在所述第一存储单元对所述PD进行读写操作,当所述读写状态为不可用状态,在第二存储单元对所述PD进行读写操作;
所述第一存储单元设置于进行缓存管理的缓存管理单元MMU中。
解析单元1001根据所述第一读写地址确定所述PD在第一存储单元上的读写状态包括:将所述第一读写地址进行转换得到索引地址;获取第一存储单元的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储单元上的读写状态。
解析单元1001获取所述第一存储单元的所述索引地址的索引信息包括:从所述索引地址中的至少两个way中选取目标way;获取所述目标way的索引信息。
当接收到入队写命令,解析单元1001根据所述索引信息确定PD在第一存储单元上的读写状态包括:根据所述索引信息中的状态信息确定所述PD在第一存储单元上的读写状态;或根据所述索引信息中的状态信息和所述PD的PD类型确定第一存储单元的读写状态。
当接收到出队读命令,解析单元1001根据所述索引信息确定所述PD在第一存储单元上的读写状态包括:获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储单元上的读写状态。
如图11所示,所述装置还包括:保序单元1003,用于:
当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。
当接收到入队写命令,所述装置还包括:释放单元1004,用于:当所述入队写命令对应的保序值为第一保序值,控制所述第一存储单元生成第一写释放消息;当所述入队写命令对应的保序值为第二保序值,控制所述第二存储单元生成第二写释放消息。
需要说明的是:上述实施例提供的PD的处理装置在进行PD的读写时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的PD的处理装置与实施例一提供的PD的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
实施例五
本发明实施例还提供了一种PD的处理装置,该PD的处理装置包括:处理器、用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行:接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;当所述读写状态为不可用状态,在第二存储器对所述PD进行读写操作;所述第一存储器设置于进行缓存管理的缓存管理单元MMU中。
所述处理器还用于运行所述计算机程序时,执行所述根据所述第一读写地址确定所述PD在第一存储器上的读写状态包括:将所述第一读写地址进行转换得到索引地址;获取所述第一存储器的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储器上的读写状态。
所述处理器还用于运行所述计算机程序时,执行获取所述第一存储器的所述索引地址的索引信息包括:从所述索引地址中的至少两个way中选取目标way;获取所述目标way的索引信息。
所述处理器还用于运行所述计算机程序时,当接收到入队写命令,执行所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:根据所述索引信息中的状态信息确定所述PD在第一存储器上的读写状态;或根据所述索引信息中的状态信息和所述PD的PD类型确定所述PD在第一存储器上的读写状态。
所述处理器还用于运行所述计算机程序时,当接受到出队读命令,执行所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储器上的读写状态。
所述处理器还用于运行所述计算机程序时,还执行:当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。
所述处理器还用于运行所述计算机程序时,当接收到入队写命令,还执行:当所述入队写命令对应的保序值为第一保序值,控制所述第一存储器生成第一写释放消息;当所述入队写命令对应的保序值为第二保序值,控制所述第二存储器生成第二写释放消息。
基于此,图12是本发明实施例五的PD的处理装置的结构示意图,图12所示的PD的处理装置包括:至少一个处理器1201和存储器1202。PD的处理装置中的各个组件通过总线系统1203耦合在一起。可理解,总线系统1203用于实现这些组件之间的连接通信。需要说明的是,实施例五中的MMU、存储器、第一存储器、第二存储器统可由存储器1202实现。
可以理解,存储器1202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器1202旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器1202用于存储各种类型的数据以支持实施例五的PD的处理装置的操作。
上述本发明实施例揭示的方法可以应用于处理器1201中,或者由处理器1201实现。处理器1201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器1201可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器1202,处理器1201读取存储器1202中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,实施例五PD的处理装置可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
实施利六
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器1202,上述计算机程序可由PD的处理装置的处理器1201执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、FlashMemory、磁表面存储器、光盘、或CD-ROM等存储器。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:
接收到PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;当所述读写状态为不可用状态,在第二存储器对所述PD进行读写操作;所述第一存储器设置于进行缓存管理的缓存管理单元MMU中。
该计算机程序被处理器运行时,执行所述根据所述第一读写地址确定所述PD在第一存储器上的读写状态包括:将所述第一读写地址进行转换得到索引地址;获取所述第一存储器的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储器上的读写状态。
该计算机程序被处理器运行时,执行获取所述第一存储器的所述索引地址的索引信息包括:从所述索引地址中的至少两个way中选取目标way;获取所述目标way的索引信息。
该计算机程序被处理器运行时,当接收到入队写命令,执行所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:根据所述索引信息中的状态信息确定所述PD在第一存储器上的读写状态;或根据所述索引信息中的状态信息和所述PD的PD类型确定所述PD在第一存储器上的读写状态。
该计算机程序被处理器运行时,当接收到出队读命令,执行所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:
获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储器上的读写状态。
该计算机程序被处理器运行时,还执行:当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。
该计算机程序被处理器运行时,当接收到入队写命令,还执行:当所述入队写命令对应的保序值为第一保序值,控制所述第一存储器生成第一写释放消息;当所述入队写命令对应的保序值为第二保序值,控制所述第二存储器生成第二写释放消息。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种报文描述符PD的处理方法,其特征在于,所述方法包括:
接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定所述PD在第一存储器上的读写状态;
当所述读写状态为可用状态,在所述第一存储器对所述PD进行读写操作;
当所述读写状态为不可用状态,在第二存储器对所述PD进行读写操作;
所述第一存储器设置于进行缓存管理的缓存管理单元MMU中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一读写地址确定所述PD在第一存储器上的读写状态包括:
将所述第一读写地址进行转换得到索引地址;
获取所述第一存储器的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储器上的读写状态。
3.根据权利要求2所述的方法,其特征在于,获取所述第一存储器的所述索引地址的索引信息包括:
从所述索引地址中的至少两个行way中选取目标way;
获取所述目标way的索引信息。
4.根据权利要求2所述的方法,其特征在于,当接收到入队写命令,所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:
根据所述索引信息中的状态信息确定所述PD在第一存储器上的读写状态;
或根据所述索引信息中的状态信息和所述PD的PD类型确定所述PD在第一存储器上的读写状态。
5.根据权利要求2所述的方法,其特征在于,当接收到出队读命令,所述根据所述索引信息确定所述PD在第一存储器上的读写状态包括:
获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储器上的读写状态。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;
当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。
7.根据权利要求6所述的方法,其特征在于,当接收到入队写命令,所述方法还包括:
当所述入队写命令对应的保序值为第一保序值,控制所述第一存储器生成第一写释放消息;
当所述入队写命令对应的保序值为第二保序值,控制所述第二存储器生成第二写释放消息。
8.一种报文描述符PD的处理装置,其特征在于,所述装置包括:解析单元和读写单元;
所述解析单元,用于接收到读写PD的入队写命令或出队读命令时,确定所述入队写命令或出队读命令的第一读写地址,根据所述第一读写地址确定PD在第一存储单元上的读写状态;
所述读写单元,用于当所述读写状态为可用状态,在所述第一存储单元对所述PD进行读写操作,当所述读写状态为不可用状态,在第二存储单元对所述PD进行读写操作;
所述第一存储单元设置于进行缓存管理的缓存管理单元MMU中。
9.根据权利要求8所述的装置,其特征在于,所述解析单元根据所述第一读写地址确定所述PD在第一存储单元上的读写状态包括:
将所述第一读写地址进行转换得到索引地址;
获取所述第一存储单元的所述索引地址的索引信息,根据所述索引信息确定所述PD在第一存储单元上的读写状态。
10.根据权利要求9所述的装置,其特征在于,所述解析单元获取所述第一存储单元的所述索引地址的索引信息包括:
从所述索引地址中的至少两个way中选取目标way;
获取所述目标way的索引信息。
11.根据权利要求9所述的装置,其特征在于,当接收到入队写命令,所述解析单元根据所述索引信息确定所述PD在第一存储单元上的读写状态包括:
根据所述索引信息中的状态信息确定所述PD在第一存储单元上的读写状态;
或根据所述索引信息中的状态信息和所述PD的PD类型确定所述PD在第一存储单元上的读写状态。
12.根据权利要求9所述的装置,其特征在于,当接收到出队读命令,所述解析单元根据所述索引信息确定所述PD在第一存储单元上的读写状态包括:
获取所述索引信息中的数据信息,将所述数据信息中的第二读写地址和所述第一读写地址进行匹配得到匹配结果,根据所述匹配结果确定所述PD在第一存储单元上的读写状态。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:保序单元,用于:
当所述读写状态为可用状态,设置所述入队写命令或出队读命令对应的保序值为第一保序值;
当所述读写状态为不可用状态,设置所述入队写命令或出队读命令对应的保序值为第二保序值。
14.根据权利要求13所述的装置,其特征在于,当接收到入队写命令,所述装置还包括:释放单元,用于:
当所述入队写命令对应的保序值为第一保序值,控制所述第一存储单元生成第一写释放消息;
当所述入队写命令对应的保序值为第二保序值,控制所述第二存储单元生成第二写释放消息。
15.一种报文描述符PD的处理装置,其特征在于,包括:处理器、用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994891.0A CN109697022B (zh) | 2017-10-23 | 2017-10-23 | 一种报文描述符pd的处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994891.0A CN109697022B (zh) | 2017-10-23 | 2017-10-23 | 一种报文描述符pd的处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109697022A true CN109697022A (zh) | 2019-04-30 |
CN109697022B CN109697022B (zh) | 2022-03-04 |
Family
ID=66225950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710994891.0A Active CN109697022B (zh) | 2017-10-23 | 2017-10-23 | 一种报文描述符pd的处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109697022B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111107017A (zh) * | 2019-12-06 | 2020-05-05 | 苏州浪潮智能科技有限公司 | 一种交换机报文拥塞的处理方法、设备以及存储介质 |
CN111857599A (zh) * | 2020-07-29 | 2020-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种数据读写方法、装置、设备及可读存储介质 |
CN113495670A (zh) * | 2020-04-01 | 2021-10-12 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
WO2023130997A1 (zh) * | 2022-01-07 | 2023-07-13 | 华为技术有限公司 | 管理流量管理tm控制信息的方法、tm模块和网络转发设备 |
US11886287B2 (en) | 2020-04-01 | 2024-01-30 | Changxin Memory Technologies, Inc. | Read and write methods and memory devices |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101087256A (zh) * | 2007-07-13 | 2007-12-12 | 杭州华三通信技术有限公司 | 报文传输方法、系统及端设备处理器 |
CN101610197A (zh) * | 2008-06-16 | 2009-12-23 | 中兴通讯股份有限公司 | 一种缓冲区管理方法及其系统 |
CN102204183A (zh) * | 2011-05-09 | 2011-09-28 | 华为技术有限公司 | 报文保序处理方法、保序协处理器和网络设备 |
US8266344B1 (en) * | 2009-09-24 | 2012-09-11 | Juniper Networks, Inc. | Recycling buffer pointers using a prefetch buffer |
CN106302238A (zh) * | 2015-05-13 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法及装置 |
CN106325758A (zh) * | 2015-06-17 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种队列存储空间管理方法及装置 |
-
2017
- 2017-10-23 CN CN201710994891.0A patent/CN109697022B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101087256A (zh) * | 2007-07-13 | 2007-12-12 | 杭州华三通信技术有限公司 | 报文传输方法、系统及端设备处理器 |
CN101610197A (zh) * | 2008-06-16 | 2009-12-23 | 中兴通讯股份有限公司 | 一种缓冲区管理方法及其系统 |
US8266344B1 (en) * | 2009-09-24 | 2012-09-11 | Juniper Networks, Inc. | Recycling buffer pointers using a prefetch buffer |
CN102204183A (zh) * | 2011-05-09 | 2011-09-28 | 华为技术有限公司 | 报文保序处理方法、保序协处理器和网络设备 |
CN106302238A (zh) * | 2015-05-13 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法及装置 |
CN106325758A (zh) * | 2015-06-17 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种队列存储空间管理方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111107017A (zh) * | 2019-12-06 | 2020-05-05 | 苏州浪潮智能科技有限公司 | 一种交换机报文拥塞的处理方法、设备以及存储介质 |
CN113495670A (zh) * | 2020-04-01 | 2021-10-12 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
US11886287B2 (en) | 2020-04-01 | 2024-01-30 | Changxin Memory Technologies, Inc. | Read and write methods and memory devices |
CN113495670B (zh) * | 2020-04-01 | 2024-03-26 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN111857599A (zh) * | 2020-07-29 | 2020-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种数据读写方法、装置、设备及可读存储介质 |
WO2023130997A1 (zh) * | 2022-01-07 | 2023-07-13 | 华为技术有限公司 | 管理流量管理tm控制信息的方法、tm模块和网络转发设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109697022B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109697022A (zh) | 一种报文描述符pd的处理方法、装置及计算机可读存储介质 | |
US10552332B2 (en) | Rapid side-channel access to storage devices | |
US10922287B2 (en) | Intelligent layout of composite data structures in tiered storage | |
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US8635412B1 (en) | Inter-processor communication | |
CN103324585B (zh) | 分级缓存的处理器中的协作预取处理 | |
CN103069400B (zh) | 具有可动态调整的移除度量的组合写入缓冲器 | |
EP2472412B1 (en) | Explicitly regioned memory organization in a network element | |
CN103999057B (zh) | 具有开关的相变存储器(pcms)的元数据管理和支持 | |
US7603496B2 (en) | Buffering data during data transfer through a plurality of channels | |
CN109952565B (zh) | 内存访问技术 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US8996818B2 (en) | Bypassing memory requests to a main memory | |
JP2017016691A (ja) | テーブル・オブ・コンテンツエントリを使用してデータを格納するためのシステムおよび方法 | |
US9323678B2 (en) | Identifying and prioritizing critical instructions within processor circuitry | |
US6988167B2 (en) | Cache system with DMA capabilities and method for operating same | |
US7574562B2 (en) | Latency-aware thread scheduling in non-uniform cache architecture systems | |
CN115168247B (zh) | 用于并行处理器中动态共享存储空间的方法及相应处理器 | |
WO2024036985A1 (zh) | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 | |
US20140143500A1 (en) | Flexible control mechanism for store gathering in a write buffer | |
CN110737618B (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
US20020108021A1 (en) | High performance cache and method for operating same | |
US6901450B1 (en) | Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors | |
CN115079957A (zh) | 请求处理方法、装置、控制器、设备及存储介质 | |
CN114258528A (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 |