一种链的管理方法及物理设备技术

技术编号:14884493 阅读:83 留言:0更新日期:2017-03-25 00:17
本申请提供了一种链的管理方法及物理设备,用以解决现有技术中传统的管理信息存储器性能要求高,造成成本和功耗较大的问题。该方法为:物理设备包括存储链的尾指针的第一存储器和存储链的头指针的第二存储器;所述物理设备具有在一个时钟周期内支持一个入队处理和一个出队处理,其中:当第一链在入队处理前不为空时,所述物理设备修改所述第一存储器中所述第一链的第一尾指针;当第二链在出队处理后不为空时,所述物理设备修改所述第二存储器中所述第二链的第二头指针。这样,在保证所述物理设备的输入输出性能的前提下,每个管理信息存储器均只需要具有1读1写的能力,该方法降低了管理信息存储器的性能要求,以及管理信息存储器的成本和功耗。

【技术实现步骤摘要】

本申请涉及存储
,尤其涉及一种链的管理方法及物理设备
技术介绍
线性表的链式存储结构的特点是用一组存储单元存储线性表的数据元素,而这组存储单元可以是连续的,也可以是不连续的。所述线性表又称为链表。为了表示每个数据元素ai与其直接后继数据元素ai+1之间的逻辑关系,因此存储该数据元素ai的存储单元还需要存储指示ai直接后继数据元素ai+1的存储位置(又称为指针)。该存储单元中存储的数据元素ai和指针这两部分信息组成数据元素ai的结点,该存储单元中存储数据元素ai的域称为数据域,存储指针的域称为指针域。n个结点(ai(1≤i≤n)的结点)链结成一条链(a1,a2,…an),一个链表中的包含多条链。链表是存储数据的结点的集合,这些结点通过指针链接起来,构成队列。链表保存在存储器后,还需要专用存储器保存所述链表中每条链的管理信息。其中,所述专用存储器又称为管理信息存储器,任意一条链的管理信息包含指示该链的队头(首个结点)的存储位置的头指针和指示该链的队尾(最后一个结点)的存储位置的尾指针,以及该链的长度(该链中包含的结点的个数)等信息。存储器所属的物理设备可以对所述存储器中的链表的一条链中的结点进行处理,例如,入队操作,即所述物理设备将新结点加入到所述链的队尾;出队操作,即所述物理设备将所述链中的队头取出结点。传统地,所述物理设备在一个时钟周期内的所述链入队操作中,对所述链的管理信息进行处理的步骤包括:所述物理设备获取所述链的原长度;在所述原长度为0时,所述物理设备同时修改所述链的头指针和尾指针;或者,在所述原长度不为0时,所述物理设备只修改所述链的尾指针;所述物理设备修改所述链的长度,其中,修改后的新长度为所述原长度加1。传统地,所述物理设备在一个时钟周期内的所述链出队操作中,对所述链的管理信息进行处理的步骤包括:所述物理设备确定本次出队操作取出的结点总数;所述物理设备获取所述链的原长度;所述物理设备确定所述链的新长度,并将所述新长度更新到所述链的管理信息存储器中,其中,所述新长度为所述原长度减去所述取出的结点总数;在所述新长度不为0时,所述物理设备修改所述链的头指针;或者,在所述新长度为0时,所述物理设备不进行任何操作。为了保证所述物理设备的输入输出性能,所述物理设备在一个时钟周期内需要支持一个入队操作和一个出队操作。根据以上描述,所述物理设备在出队操作和入队操作都需要访问和修改链的管理信息,且在一个时钟周期内,管理信息存储器需要支持2读2写,因此所述管理信息存储器的访问开销较大。其中所述2读2写中包含入队操作中的1读(即读取链的原长度和原尾指针)1写(修改链长度和尾指针,且在原长度为0时还修改头指针)、出队操作中的1读(读取链的原长度和原头指针)1写(修改链长度和头指针)。由于链表中往往需要包含巨大数量的链,故而管理信息存储器中链的管理信息也占用很大空间,例如,物理设备的存储器存储的一链表中存在1兆(M)条链,每条链均能占用256个结点,那么管理信息存储器至少需要1M深度,90比特(b)位宽的存储器,即所述管理信息存储器大约需要90兆比特(Mb)的存储容量。根据以上论述可知,管理信息存储器具有每个时钟周期2读2写的能力,因此,该管理信息存储器需要有4个端口。由于存储器支持同时访问的端口数量不同,实现的代价业务不同,且存储器的端口数量越多,实现的代价就越大,例如具有4端口的存储器所占面积和功耗分别是具有2端口的存储器所占面积和功耗的4倍左右。综上所述,由于管理信息存储器要求不仅具有每个时钟周期2读2写的能力,且具有较大容量,造成管理信息存储器的成本和功耗较大。
技术实现思路
本申请提供一种链的管理方法及物理设备,用以解决现有技术中传统的管理信息存储器是具有每时钟周期2读2写的能力的大容量存储器,造成成本和功耗较大的问题。本申请提供的具体技术方案如下:一方面,本申请实施例提供了一种链的管理方法,该方法应用于具有第一存储器、第二存储器的物理设备,其中,所述物理设备中保存有链表,所述第一存储器中保存链表包含的多条链中每条链的尾指针,所述第二存储器中保存每条链的头指针。所述物理设备具有在一个时钟周期内实现对所述多条链中的第一链的入队处理和对所述多条链中的第二链的出队处理的能力,其中,该方法包括:在所述物理设备对所述第一链进行入队处理的情况下,当所述第一链在入队处理前不为空时,所述物理设备修改所述第一存储器中所述第一链的第一尾指针,使修改后的所述第一尾指针指向在入队处理后的所述第一链中最后一个结点所在的存储位置;以及在所述物理设备对所述第二链进行出队处理的情况下,当所述第二链在出队处理后不为空时,所述物理设备修改所述第二存储器中所述第二链的第二头指针,使修改后的所述第二头指针指向在出队处理后的所述第二链中首个结点所在的存储位置。通过上述方法,在一个时钟周期内所述物理设备对所述第一链进行入队处理,和/或,对所述第二链进行出队处理时,第一存储器和第二存储器访问率大幅度降低,均只存在1读1写,且上述两个存储器仅存储链的管理信息中的一部分管理信息。由于上述每个存储器的访问率为1读1写,显然,每个存储器为2个端口的存储器,相对于传统的4个端口的管理信息存储器,每个存储器可以明显降低所占面积和功耗。另外,由于每个存储器仅存储部分管理信息,所以每个存储器的存储压力和存储容量需求也降低了。因此,上述方法在保证所述物理设备的输入输出性能的前提下,降低了管理信息存储器(即上述两个存储器)的性能要求,从而降低了管理信息存储器的成本和功耗。在一个可能的设计中,当所述第一链在入队前为空时,所述物理设备不仅修改所述第一存储器中所述第一链的第一尾指针,还需要修改所述第二存储器中所述第一链的第一头指针,使修改后的所述第一头指针指向在入队处理后的所述第一链中首个结点所在的存储位置。通过所述方法,所述物理设备可以在对所述第一链进行入队处理的情况下,实现对所述第一链的头指针和尾指针的管理。在一个可能的设计中,所述第一存储器还保存有每条链的第一状态标识;所述第二存储器还保存有每条链的第二状态标识;所述物理设备还具有存储每条链的第三状态标识的第三存储器,其中,任意一条链的第一状态标识和第二状态标识相同,所述链的第一状态标识和第三状态标识组合、所述链的第二状态标识和所述第三状态标识组合均可指示所述链是否为空;在上述三个存储器均存储每条链的相应的状态标识的场景下,所述物理设备在对所述第一链进行入队处理时,还可以通过以下步骤确定所述第一链在入队处理前是否为空:首先,分别从所述第一存储器和所述第三存储器中读取所述第一链的第一状态标识和第三状态标识;然后根据所述第一链的所述第一状态标识和所述第三状态标识,确定所述第一链在入队处理前是否为空。通过上述方法,在所述物理设备对所述第一链进行入队处理的情况下,所述物理设备可以直接根据所述第一链的第一状态标识与第三状态标识组合,确定所述第一链是否为空,提高了所述物理设备确定所述第一链的状态的效率。在一个可能的设计中,在所述物理设备通过上述设计中的三个存储器存储每条链的相应的状态标识的场景下,所述物理设备在对所述第二链进行出队处理的情况下,当所述第二链在出队处理后为空时,所述物理设备根据所述第二存储器中所述本文档来自技高网
...
一种链的管理方法及物理设备

【技术保护点】
一种链的管理方法,其特征在于,所述方法应用于具有第一存储器、第二存储器的物理设备,所述第一存储器用于保存链表包含的多条链中每条链的尾指针,所述第二存储器用于保存每条链的头指针,所述物理设备具有在一个时钟周期内实现对第一链的入队处理和对第二链的出队处理的能力,所述第一链和所述第二链均为所述多条链中的一条链,所述方法包括:在所述物理设备对所述第一链进行入队处理的情况下,当所述第一链在入队处理前不为空时,所述物理设备修改所述第一存储器中所述第一链的第一尾指针,使修改后的所述第一尾指针指向在入队处理后的所述第一链中最后一个结点所在的存储位置;在所述物理设备对所述第二链进行出队处理的情况下,当所述第二链在出队处理后不为空时,所述物理设备修改所述第二存储器中所述第二链的第二头指针,使修改后的所述第二头指针指向在出队处理后的所述第二链中首个结点所在的存储位置。

【技术特征摘要】
1.一种链的管理方法,其特征在于,所述方法应用于具有第一存储器、第二存储器的物理设备,所述第一存储器用于保存链表包含的多条链中每条链的尾指针,所述第二存储器用于保存每条链的头指针,所述物理设备具有在一个时钟周期内实现对第一链的入队处理和对第二链的出队处理的能力,所述第一链和所述第二链均为所述多条链中的一条链,所述方法包括:在所述物理设备对所述第一链进行入队处理的情况下,当所述第一链在入队处理前不为空时,所述物理设备修改所述第一存储器中所述第一链的第一尾指针,使修改后的所述第一尾指针指向在入队处理后的所述第一链中最后一个结点所在的存储位置;在所述物理设备对所述第二链进行出队处理的情况下,当所述第二链在出队处理后不为空时,所述物理设备修改所述第二存储器中所述第二链的第二头指针,使修改后的所述第二头指针指向在出队处理后的所述第二链中首个结点所在的存储位置。2.如权利要求1所述的方法,其特征在于,所述第一存储器还保存有每条链的第一状态标识;所述第二存储器还保存有每条链的第二状态标识;所述物理设备还具有第三存储器,所述第三存储器用于保存每条链的第三状态标识,其中,任意一条链的第一状态标识和第二状态标识相同,所述链的第一状态标识和第三状态标识组合用于指示所述链是否为空,且所述链的第二状态标识和所述第三状态标识组合用于指示所述链是否为空;在所述物理设备对所述第一链进行入队处理的情况下,所述方法还包括:所述物理设备确定所述第一链在入队处理前是否为空,具体包括:所述物理设备分别从所述第一存储器和所述第三存储器中读取所述第一链的第一状态标识和第三状态标识;所述物理设备根据所述第一链的所述第一状态标识和所述第三状态标识,确定所述第一链在入队处理前是否为空。3.如权利要求2所述的方法,其特征在于,在所述物理设备对所述第二链进行出队处理的情况下,所述方法还包括:当所述第二链在出队处理后为空时,所述物理设备根据所述第二存储器中所述第二链的第二状态标识,修改所述第三存储器中所述第二链的第三状态标识,使所述第二链的所述第二状态标识和修改后的所述第三状态标识组合指示出队处理后的所述第二链为空。4.如权利要求2或3所述的方法,其特征在于,在所述物理设备对所述第一链进行入队处理的情况下,所述方法还包括:所述物理设备确定所述第一链在入队处理前为空,所述物理设备执行以下操作:修改所述第一存储器中所述第一链的所述第一状态标识,使所述第一链的所述第三状态标识与修改后的所述第一状态标识组合指示入队处理后的所述第一链不为空;修改所述第一存储器中所述第一链的所述第一尾指针,使修改后的所述第一尾指针指向在入队处理后的所述第一链中最后一个结点所在的存储位置;修改所述第二存储器中所述第一链的第二状态标识,使修改后的所述第一链的第二状态标识与修改后的所述第一链的所述第一状态标识相同;修改所述第二存储器中所述第一链的第一头指针,使修改后的所述第一头指针指向在入队处理后的所述第一链中首个结点所在的存储位置。5.如权利要求4所述的方法,其特征在于,所述第一存储器还保存有每条链的长度;在所述物理设备对所述第一链进行入队处理的情况下,当所述第一链在入队处理前不为空时,所述方法还包括:所述物理设备从所述第一存储器中读取所述第一链的第一长度;并根据所述第一长度和入队的结点总数,得到新的第一长度,以及将所述第一长度更新到所述第一存储器中;在所述物理设备对所述第一链进行入队处理的情况下,当所述第一链在入队处理前不为空时,所述方法还包括:所述物理设备将入队的结点总数作为所述第一链的第一长度,并将所述第一链的所述第一长度更新到所述第一存储器中;在所述物理设备对所述第二链进行出队处理的情况下,当所述第二链在出队处理后不为空时,所述方法还包括:所述物理设备从所述第一存储器中读取所述第二链的第二长度;并根据所述第二长度和出队的结点总数,得到新的第二长度,以...

【专利技术属性】
技术研发人员:吕晖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1