一种存储资源的调度方法及设备与流程

文档序号:13429981阅读:209来源:国知局
一种存储资源的调度方法及设备与流程
本发明涉及计算机技术,尤其涉及一种存储资源的调度方法及设备。

背景技术:
目前,基于动态存储资源管理的消息传输机制中,队列管理单元收到消息处理单元发送的消息传输指令后,向内存管理单元(MemoryManagementUnit,MMU)申请目的地址,然后将申请到的目的地址和消息传输指令发送给直接内存存取(DirectMemoryAccess,DMA)单元,以使得DMA单元依据目的地址将第二存储单元,例如双倍速率同步动态随机存储器(DoubleDataRateSynchronousDynamicRandomAccessMemory,DDRSDRAM)中的数据块,复制到第一存储单元,例如共享二级(ShareLevel2,SL2)内存,同时队列管理单元将目的地址写入接收队列,这样消息处理单元可以依据接收队列中的目的地址对从第一存储单元中的数据块进行处理,并在处理完成后指示MMU释放第一存储单元中相应的存储资源。然而,当消息处理单元处理数据块的速度比较慢时,第一存储单元中存储资源的释放速度也比较慢,但是,队列管理单元仍然会向MMU申请目的地址,DMA单元就会将第二存储单元中的数据块复制到第一存储单元中,从而导致第一存储单元的存储资源不足,成为消息传输系统的瓶颈。

技术实现要素:
有鉴于此,本发明实施例提供了一种存储资源的调度方法及设备,以实现控制数据块占用的存储资源,节省存储资源。第一方面,本发明实施例提供了一种存储资源的调度方法,包括:对第一存储单元存储的第一数据块进行计数,以获得计数值;依据所述计数值和预设的计数阈值,向内存管理单元MMU申请目的地址,以获得所述目的地址;将所述目的地址和消息传输指示发送给直接内存存取DMA单元,以使得DMA单元从第二存储单元中提取第二数据块,以及依据所述目的地址将所述第二数据块存储到所述第一存储单元。在第一方面的第一种可能的实现方式中,所述计数阈值包括第一阈值和第二阈值,所述第一阈值小于或等于所述第二阈值,所述依据所述计数值预设的计数阈值,获得目的地址,包括:若所述计数值小于所述第一阈值,将所述计数值加1,并获得所述目的地址;或者,若所述计数值大于或等于所述第二阈值,暂停获得所述目的地址;或者,若所述计数值大于或等于所述第一阈值且小于所述第二阈值,且已经暂停获得目的地址,继续暂停获得所述目的地址;或者,若所述计数值大于或等于所述第一阈值且小于所述第二阈值,且没有暂停获得目的地址,将所述计数值加1,并获得所述目的地址。在第一方面的第二种可能的实现方式中,所述方法还包括:接收资源释放指令;将所述计数值减1。第二方面,本发明实施例提供了一种存储资源的调度设备,包括:计数单元,用于对第一存储单元存储的第一数据块进行计数,以获得计数值;地址申请单元,用于依据所述计数值和预设的计数阈值,向MMU申请目的地址,以获得所述目的地址;发送单元,用于将所述目的地址和消息传输指示发送给DMA单元,以使得DMA单元从第二存储单元中提取第二数据块,以及依据所述目的地址将所述第二数据块存储到所述第一存储单元。在第二方面的第一种可能的实现方式中,所述计数阈值包括第一阈值和第二阈值,所述第一阈值小于或等于所述第二阈值,所述依据所述计数值预设的计数阈值,获得目的地址,包括:若所述计数值小于所述第一阈值,将所述计数值加1,并获得所述目的地址;或者,若所述计数值大于或等于所述第二阈值,暂停获得所述目的地址;或者,若所述计数值大于或等于所述第一阈值且小于所述第二阈值,且已经暂停获得目的地址,继续暂停获得所述目的地址;或者,若所述计数值大于或等于所述第一阈值且小于所述第二阈值,且没有暂停获得目的地址,将所述计数值加1,并获得所述目的地址。在第二方面的第二种可能的实现方式中,所述设备还包括:接收单元,用于接收资源释放指令;所述计数单元,还用于将所述计数值减1。本发明实施例的技术方案具有以下有益效果:在队列管理单元对第一存储单元中的数据块进行计数,依据计数值和计数阈值,对申请目的地址进行控制,从而可以控制第二存储单元中的数据块对第一存储单元的存储资源的占用,有效节省宝贵的存储资源,有效避免第一存储单元的存储资源不足,成为消息传输系统的瓶颈的问题。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1是本发明实施例所提供的存储资源的调度方法的流程示意图;图2是本发明实施例所提供的存储资源的调度方法对应的结构示意图;图3是本发明实施例所提供的存储资源的调度设备的功能方块图。具体实施方式为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例给出一种存储资源的调度方法,请参考图1,其为本发明实施例所提供的存储资源的调度方法的流程示意图;如图1所示,该方法包括以下步骤:步骤101,对第一存储单元存储的第一数据块进行计数,以获得计数值。具体的,请参考图2,在队列管理单元中可以包含至少一个发送队列和至少一个接收队列,一个发送队列对应一个接收队列,本发明实施例中,为每个发送队列配置一个缓存计数器;由于当队列管理单元收到消息处理单元发送的消息传输指令时,将该消息传输指令插入对应的发送队列的尾部,队列管理单元将为发送队列中的排在第一位的消息传输指令,申请目的地址,即从MMU获得该目的地址,然后将目的地址和消息传输指令发送给DMA单元,DMA单元将第二存储单元中的第二数据块搬移到第一存储单元中,所述第二存储单元可以为DDRSDRAM,还可以为FLASH闪存;因此,当队列管理单元从MMU获得一个目的地址,队列管理单元中该目的地址对应的发送队列的缓存计数器的计数值就需要加1,因此,每个发送队列对应的缓存计数器用于对第一存储单元存储的该发送队列中消息传输指令所指示的第一数据块进行计数,从而队列管理单元可以获得第一存储单元存储的第一数据块的计数值,因此,本发明实施例中,队列管理单元中包含至少一个缓存计数器,获得至少一个所述计数值;其中,第一存储单元可以为共享存储器,如SL1内存、SL2内存或SL3内存。步骤102,依据所述计数值和预设的计数阈值,向MMU申请目的地址,以获得所述目的地址。具体的,消息处理单元依据DMA单元对数据块的复制速度,以及消息处理单元对第一存储单元中存储的数据块的处理速度,获得所述计数阈值,然后将所述计数阈值发送给队列管理单元;这里,消息处理单元可以灵活的配置队列管理单元中缓存计数器对应的计数阈值,保证数据块搬移的速度与消息处理单元处理数据块的速度相匹配。队列管理单元接收消息处理单元发送的消息传输指令,所述消息传输指令中包含数据块的源地址和数据块的长度;队列管理单元在收到消息传输指令后,将消息传输指令插入对应的发送队列的尾部。队列管理单元依据所述发送队列的缓存计数器的计数值和收到的计数阈值,获得目的地址;其中,所述计数阈值可以包括第一阈值和第二阈值,所述第一阈值小于或等于所述第二阈值。下面以一个发送队列为例,说明依据所述计数值和预设的计数阈值,获得目的地址的具体方法:若所述第一阈值等于所述第二阈值,当所述计数值小于所述第一阈值时,将所述发送队列的缓存计数器的计数值加1,队列管理单元依据所述发送队列中排位第一的消息传输指令,向MMU发送地址请求消息,MMU在收到地址请求消息后,获得目的地址并发送给队列管理单元,从而队列管理单元获得目的地址。或者,当所述计数值大于或等于所述第一阈值(相当于所述计数值大于或等于所述第二阈值)时,队列管理单元暂停处理该发送队列中的消息传输指令,即暂停为该发送队列中的消息传输指令,向MMU申请目的地址;但是队列管理单元依然可以将新收到的消息传输指令插入该发送队列,而且,暂停处理该发送队列,不影响队列管理单元处理其他发送队列中的消息传输指令。若所述第一阈值小于所述第二阈值,当所述计数值小于所述第一阈值时,将所述发送队列的缓存计数器的计数值加1,队列管理单元依据所述发送队列中排位第一的消息传输指令,向MMU发送地址请求消息,MMU在收到地址请求消息后,获得目的地址并发送给队列管理单元,从而队列管理单元获得目的地址。当所述计数值大于或等于所述第二阈值时,队列管理单元暂停处理该发送队列中的消息传输指令,即暂停为该发送队列中的消息传输指令,向MMU申请目的地址;但是队列管理单元依然可以将新收到的消息传输指令插入该发送队列,而且,暂停处理该发送队列,不影响队列管理单元处理其他发送队列中的消息传输指令。若所述第一阈值小于所述第二阈值,还存在一种情况,即所述计数值大于或等于所述第一阈值,且小于所述第二阈值,对于这种情况,需要依据队列管理单元对发送队列的处理状态,决定是否暂停处理发送队列;如果处理状态是队列管理单元已经暂停为该发送队列中的消息传输指令申请目的地址,则当计数值大于或等于所述第一阈值,且小于所述第二阈值时,队列管理单元继续暂停处理发送队列中的消息传输指令,直到该发送队列的缓存计数器的计数值小于所述第一阈值;如果处理状态为队列管理单元仍然处理发送队列中的消息传输指令,则当计数值大于或等于所述第一阈值,且小于所述第二阈值时,队列管理单元继续处理发送队列中的消息传输指令,为该发送队列中的消息传输指令向MMU申请目的地址,直到计数值大于或等于所述第二阈值。步骤103,将所述目的地址和消息传输指示发送给DMA单元,以使得DMA单元从第二存储单元中提取第二数据块,以及依据所述目的地址将所述第二数据块存储到所述第一存储单元。具体的,队列管理单元将获得的目的地址和消息传输指令发送给DMA单元,所述消息传输指令中携带数据块的源地址,以使得DMA单元依据源地址对第二存储单元中对应的第二数据块进行复制,然后依据目的地址将复制获得的第二数据块存储到第一存储单元中目的地址对应的缓存块中,然后DMA单元将该目的地址发送给队列管理单元,队列管理单元将该目的地址插入接收队列的队尾,并等待消息处理单元对该数据块进行处理,消息处理单元依据目的地址获得第一存储单元中的第一数据块,对第一数据块进行处理。消息处理单元完成第一数据块的处理后,可以向队列管理单元发送资源释放指令,其中携带发送队列标识,队列管理单元接收资源释放指令,依据发送队列标识将对应的缓存计数器的计数值减1;消息处理单元向MMU发送释放地址指令,以使得MMU将分配给第一数据块的目的地址收回,以便将该目的地址分配给其他第二存储单元中的第二数据块使用。本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。请参考图3,其为本发明实施例所提供的一种存储资源的调度设备的功能方块图,该设备可以为上述队列管理单元。如图所示,该设备包括:计数单元30,用于对第一存储单元存储的第一数据块进行计数,以获得计数值;地址申请单元31,用于依据所述计数值和预设的计数阈值,向MMU申请目的地址,以获得所述目的地址;发送单元32,用于将所述目的地址和消息传输指示发送给DMA单元,以使得DMA单元从第二存储单元中提取第二数据块,以及依据所述目的地址将所述第二数据块存储到所述第一存储单元。其中,所述计数阈值包括第一阈值和第二阈值,所述第一阈值小于或等于所述第二阈值,所述依据所述计数值预设的计数阈值,获得目的地址,包括:若所述计数值小于所述第一阈值,将所述计数值加1,并获得所述目的地址;或者,若所述计数值大于或等于所述第二阈值,暂停获得所述目的地址;或者,若所述计数值大于或等于所述第一阈值且小于所述第二阈值,且已经暂停获得目的地址,继续暂停获得所述目的地址;或者,若所述计数值大于或等于所述第一阈值且小于所述第二阈值,且没有暂停获得目的地址,将所述计数值加1,并获得所述目的地址。所述设备还包括:接收单元33,用于接收资源释放指令;所述计数单元30,还用于将所述计数值减1。需要说明的是,上述装置实施例中,计数单元30和地址申请单元31的功能可以通过通用处理器或专用处理器来实现,例如,可以通过处理器调用存储在存储器中的程序来实现上述功能,具体硬件结构可以根据使用场景灵活变化,本发明不做限定。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1