一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据指针老化的检测方法与流程

2022-08-17 19:43:07 来源:中国专利 TAG:


1.本发明属于计算机网络领域,具体涉及一种数据指针老化的检测方法。


背景技术:

2.目前cn1581100a的数据老化方法是利用系统时间、截值和老化对象创建时间截值的差与数据的老化时间进行一一比较从而进行判断是否将老化对象老化掉。这种方法在处理数据比较多的时候会消耗大量的时间,并且在资源上会存在浪费。


技术实现要素:

3.(一)要解决的技术问题
4.本发明要解决的技术问题是如何提供一种数据指针老化的检测方法,以解决现有的数据老化方法在处理数据比较多的时候会消耗大量的时间,并且在资源上会存在浪费的问题。
5.(二)技术方案
6.为了解决上述技术问题,本发明提出一种数据指针老化的检测方法,该方法包括设置3块ram,分别为数据ram、管理ram和老化ram;
7.数据通过数据ram进行存储,对于数据ram的读写运用地址进行管理,使用另一块ram对这块数据ram的地址进行管理,称为管理ram,另外使用一块用于老化的ram,称为老化ram;
8.假设数据ram是位宽为mbit,地址深度为n=2n的ram,n=x*y,用高xbit表示行,低ybit表示列,则管理ram的位宽及地址深度设置为2
x
bit和2y,老化ram的位宽及地址深度设置为2
x
bit和2y,管理ram与老化ram一一对应;
9.管理ram中的每一bit用于指示数据ram相应地址的数据,称为数据ram的指针;初始化时该管理ram为全0,在数据ram某一地址进行数据写的时候就往该地址对应的管理ram的bit写1,写入1表示该地址已被占用;当数据ram的某一地址的指针被释放时,释放地址对应的管理ram和老化ram的值都由1变为0;
10.在开始使用时,将管理数据的管理ram的状态更新至老化ram中,每隔检查时间间隔t将管理ram的状态刷新至老化ram中,刷新规则为:若管理ram中的1写入对应位置老化ram时,若此时该老化ram的对应位置为0,则直接更新为1;若此时该老化ram的对应位置也为1,即视为该指针已经老化,则上报老化警告且将老化指针也上报,最终以中断的方式在软件层面体现。
11.进一步地,数据ram是位宽为512bit,地址深度为8192的ram,则管理该数据管理ram的位宽及深度设置为64bit和128,老化ram的位宽及深度设置为64bit和128。
12.进一步地,管理ram记录数据ram的使用状态,在使用指针的时候遵循从前往后使用。
13.进一步地,预估使用数据ram的业务中指针使用到释放的最大时间t,将最大时间t
设置为老化ram的检查时间间隔。
14.进一步地,某业务场景指针使用到释放的最大时间t=100us,则将老化ram的检查时间间隔设置为100us,即每100us检查一次管理数据的管理ram。
15.进一步地,统计指针的空闲个数,设置水线,当指针的空闲个数小于等于水线时,开启老化时间的计时。
16.进一步地,水线设置为n-1或n-2。
17.进一步地,当数据ram的某一地址的指针被申请,且未到达老化时间检查点时,管理ram对应位置会由0变为1,老化ram位置对应的值不会发生变化。
18.进一步地,当收到中断时,采取的操作包括:重新设置老化检测的时间间隔、重新更换硬件的ram或重新修改软件代码。
19.进一步地,老化的流程包括:首先到达老化配置的水线,老化检查时间计时开始,到达第一次老化时间检测点时,此时由于初始化的老化ram里面为全0,所以第一次只是将管理ram中的数据导入老化ram,在后续的时间里,只要有指针释放,管理ram和老化ram对应位置的1则会修改为0,在到达老化时间的时候,将管理ram中的内容导入老化ram的时候则会检查每个位置的导入值与导入前的值是否均为1,若满足该条件则进行告警并中断上报。
20.(三)有益效果
21.本发明提出一种数据指针老化的检测方法,本发明首先在空间上节省资源,利用bitmap来映射数据,1个数据的存放使用1bit来进行管理,大大的节省了资源,因此在进行老化的时候,由于1个地址的数据仅有1bit来映射,所以在进行老化检查时所消耗的时间很少。在指针数为32000个时,在500m的系统时钟下,100个周期就可以把32000个指针老化完成,对应实际时间200ns即可把所有指针检查完成一次。
附图说明
22.图1为指针申请后某一时刻指针bitmap状态/首次老化bitmap导入指针使用状态示意图;
23.图2为申请指针示意图;
24.图3为释放指针示意图;
25.图4为指针老化流程图。
具体实施方式
26.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
27.本发明提出一种数据指针老化的检测方法,该方法包括设置3块ram,分别为数据ram、管理ram和老化ram;
28.数据通过数据ram进行存储,对于数据ram的读写运用地址进行管理,使用另一块ram对这块数据ram的地址进行管理,称为管理ram,另外使用一块用于老化的ram,称为老化ram;
29.假设数据ram是位宽为mbit,地址深度为n=2n的ram,n=x*y,用高xbit表示行,低ybit表示列,则管理ram的位宽及地址深度设置为2
x
bit和2y,老化ram的位宽及地址深度设
置为2
x
bit和2y,管理ram与老化ram一一对应;
30.管理ram中的每一bit用于指示数据ram相应地址的数据,称为数据ram的指针;初始化时该管理ram为全0,在数据ram某一地址进行数据写的时候就往该地址对应的管理ram的bit写1,写入1表示该地址已被占用;当数据ram的某一地址的指针被释放时,释放地址对应的管理ram和老化ram的值都由1变为0;
31.在开始使用时,将管理数据的管理ram的状态更新至老化ram中,每隔检查时间间隔t将管理ram的状态刷新至老化ram中,刷新规则为:若管理ram中的1写入对应位置老化ram时,若此时该老化ram的对应位置为0,则直接更新为1;若此时该老化ram的对应位置也为1,即视为该指针已经老化,则上报老化警告且将老化指针也上报,最终以中断的方式在软件层面体现。
32.进一步地,数据ram是位宽为512bit,地址深度为8192的ram,则管理该数据管理ram的位宽及深度设置为64bit和128,老化ram的位宽及深度设置为64bit和128。
33.进一步地,管理ram记录数据ram的使用状态,在使用指针的时候遵循从前往后使用。
34.进一步地,预估使用数据ram的业务中指针使用到释放的最大时间t,将最大时间t设置为老化ram的检查时间间隔。
35.进一步地,某业务场景指针使用到释放的最大时间t=100us,则将老化ram的检查时间间隔设置为100us,即每100us检查一次管理数据的管理ram。
36.进一步地,统计指针的空闲个数,设置水线,当指针的空闲个数小于等于水线时,开启老化时间的计时。
37.进一步地,水线设置为n-1或n-2。
38.进一步地,当数据ram的某一地址的指针被申请,且未到达老化时间检查点时,管理ram对应位置会由0变为1,老化ram位置对应的值不会发生变化。
39.进一步地,当收到中断时,采取的操作包括:重新设置老化检测的时间间隔、重新更换硬件的ram或重新修改软件代码。
40.进一步地,老化的流程包括:首先到达老化配置的水线,老化检查时间计时开始,到达第一次老化时间检测点时,此时由于初始化的老化ram里面为全0,所以第一次只是将管理ram中的数据导入老化ram,在后续的时间里,只要有指针释放,管理ram和老化ram对应位置的1则会修改为0,在到达老化时间的时候,将管理ram中的内容导入老化ram的时候则会检查每个位置的导入值与导入前的值是否均为1,若满足该条件则进行告警并中断上报。
41.本发明的目的就是对使用指针为索引的数据存储方式的指针的老化方法,该类方法可以节省资源并且消耗时间短。
42.首先设置3块ram,分别为数据ram、管理ram和老化ram;数据通过数据ram进行存储,对于数据ram的读写需要运用地址进行管理,在此使用另一块ram对这块数据ram的地址进行管理,称为管理ram或指针ram,另外还有一块ram用于老化的ram,称为老化ram。
43.假设数据ram是位宽为512bit,地址深度为8192的ram,因此从宽度及深度来考虑,管理该数据管理ram的位宽及深度设置为64bit和128。由于利用13bit即可覆盖数据ram的地址0-8191,13bit可以分为高6bit和低7bit,用高6bit表示行,低7bit表示列,则对应于管理ram的64bit和128。因此管理ram中的0-8191中的每一bit即可指示该数据ram地址对应的
数据,称之为数据ram的指针。在数据ram某一地址进行数据写的时候就往该地址对应的管理ram的bit写1,初始化时该管理ram为全0,写入1表示该地址已被占用;当数据ram的某一地址的指针被释放时,释放地址对应的管理ram和老化ram的值都由1变为0,写0表示该地址已被释放或空闲状态。如对数据ram的地址0进行写入数据时,则对应在管理ram的第一行第一列进行写入1,对数据ram的地址6写入数据时则对应在管理ram的第一行第七列进行写入1。因此该管理ram可记录数据ram的指针的使用状态。在使用指针的时候遵循从前往后使用,这样每个指针都会被使用到。
44.指针老化,就是在该指针使用后的一段时间后,若该指针还未进行过释放,即可认为该指针被老化了,通俗的来讲就是该指针已经被ram的使用者“遗忘”了,不会被释放了。本文就是讲述如何有效并且快速的检测出老化了的指针。本发明设置另外一块ram用作老化ram,与管理数据的指针的ram大小一样,位宽及深度为64bit和128。
45.为了有效准确的检测出老化的指针,我们还需要了解数据ram使用的业务场景,预估该业务中指针使用到释放的最大时间t,将最大时间t设置为老化ram的检查时间间隔。假设某业务场景指针使用到释放的最大时间t=100us,则我们将老化ram的检查时间间隔设置为100us,即每100us检查一次管理数据的管理ram。
46.在开始使用时,将管理数据的管理ram的状态更新至老化ram中,状态为0,1状态。判断什么时候是开始使用状态也是需要注意的,一般来说会对指针的空闲个数有个统计,因此我们在这里设置水线,此处例子中指针个数为8192个,因此我们可以设置水线为8191,8190都可以,当指针的空闲个数小于等于这个值的时候说明ram已经开始工作起来了,可以开启老化时间的计时了。
47.计时开始以后每隔检查时间间隔t=100us将管理ram的状态刷新至老化ram中,遵循的规则是若管理ram中的1写入对应位置老化ram时,若此时该老化ram的对应位置为0,则直接更新为1;若此时该老化ram的对应位置也为1,即视为该指针已经老化,因为在指针释放的时候会将管理ram与老化ram的对应位置都清0。例如假设某次更新状态时,老化ram第一行第二列中位置为0,管理ram第一行第二列中位置为1,则将老化ram中第一行第二列更新为1,100us后再次更新老化ram时,发现此时管理ram的第一行第二列仍为1,且老化ram第一行第二列也仍为1,则说明该指针一直处于未释放的状态,若该指针释放过则老化ram的位置将会是0。另外,当出现往老化ram写1的时候老化ram对应位置为1时则上报老化警告且将老化指针也上报,最终以中断的方式在软件层面体现。针对该中断具体需要如何处理为软件人员分析,有可能是老化检测的时间间隔设置过小,需要重新设置老化检测的时间间隔,也有可能是ram的物理层面的区域损坏,这种情况可能需要重新更换硬件的ram,或者软件代码存在bug导致某个指针未能释放需要重新修改软件代码。
48.当数据ram的某一地址的指针被申请,且未到达老化时间检查点时,管理ram对应位置会由0变为1,老化ram位置对应的值不会发生变化;
49.当数据ram的某一地址的指针被释放时,释放地址对应的管理ram和老化ram的值都由1变为0。
50.图2展示的是某一时刻某一位置的指针被申请,且未到达老化时间检查点时,管理ram对应位置会由0变为1,老化ram位置对应的值不会发生变化。
51.图3展示的是某一时刻管理ram和老化ram的状态,释放指针会使释放位置的管理
ram和老化ram的值都由1变为0。
52.图4的流程图简要的展示了老化的流程,首先到达老化配置的水线,老化检查时间计时开始,到达第一次老化时间检测点时,此时由于初始化的老化ram里面为全0,所以第一次只是将管理ram中的数据导入老化ram,在后续的时间里,只要有指针释放,管理ram和老化ram对应位置的1则会修改为0,在到达老化时间的时候,将管理ram中的内容导入老化ram的时候则会检查每个位置的导入值与导入前的值是否均为1,若满足该条件则进行告警并中断上报。
53.本发明首先在空间上节省资源,利用bitmap来映射数据,1个数据的存放使用1bit来进行管理,大大的节省了资源,因此在进行老化的时候,由于1个地址的数据仅有1bit来映射,所以在进行老化检查时所消耗的时间很少。在指针数为32000个时,在500m的系统时钟下,100个周期就可以把32000个指针老化完成,对应实际时间200ns即可把所有指针检查完成一次。
54.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献