首页 / 专利库 / 计算机网络 / 软件缺陷 / 检测计算机中的存储器问题

检测计算机中的存储器问题

阅读:90发布:2020-11-05

专利汇可以提供检测计算机中的存储器问题专利检索,专利查询,专利分析的服务。并且在控制计算机的过程中,如 开关 交换,可以证明解决故障花费很大。解决 软件 缺陷 尤其困难。如果问题发生,重要的是尽快直接维修正确的目标。破坏者和黑客构成了威胁。如果从别处用于维修的选项合并于计算机中,那么误用的危险将相应地增加。用于发现 存储器 问题的 现有技术 不能必要地揭示由计算方法引起的以有规律的间隔发生的缺陷。举例来说,如果存储器 电路 的一根地址线出错,存储器缺陷将以有规律的间隔发生。现有技术的第二个缺点是即使只是一个存储器 位置 变化也不得不重新计算校验和。根据本 发明 发现存储器问题的方法是“有规律地无规律”,使得它能以可靠的方式发现在任何存储区域(MA)内的未受控制的变化。此外,根据本方法计算的校验和(CS)可以根据存储区域(MA)内单元的变化更新,使得与在被监视的整个存储区域(MA)内计算校验和相比,更新需要较少的计算。本方法适用于发现 硬件 和 软件缺陷 以及 加速 计算机的重新启动。,下面是检测计算机中的存储器问题专利的具体信息内容。

1.一种用于在包括存储器单元(Mi)的一个存储区域(MA)计算一个 M位校验和(CS)的方法,其特征在于以下步骤:
-在计算之前给该校验和(CS)一个预定的初始值,
-在存储区域(MA)的每个存储器单元(Mi)处计算校验和(CS),作为 一个逐位求和(异或),逐位求和的第一因子在该单元(Mi)的基础上形 成,第二因子在前一个单元(Mi-1)处计算的校验和(CS)值的基础上形成;
-在计算和之前,将第二因子的位循环一个预定的数。
2.如权利要求1所述的方法,其特征在于,
-第二因子本身是校验和(CS)的先前值,
-第一因子通过向右循环单元(Mi)的位K位(向最低位的方向)形 成,其中 k = Σ j = 0 INT ( i / M j )
其中INT表示一个整数,保证循环位数K的正确。
3.如权利要求1所述的方法,其特征在于在该方法中
-第一因子本身是单元(Mi);以及
-第二因子通过循环校验和(CS)的先前值形成,循环是由
-在保证0<Mn<i+1的每个M的整数次幂Mn处,确定单元(Mi)的 序号加1(i+1)是否可以被该M的整数次幂Mn整除;以及
-响应单元(Mi)序号加1(i+1)被该M的整数次幂Mn整除,向左 循环校验和(CS)一位;以及
-一旦存储区域(MA)的所有的存储单元(Mi)都进行一遍,向右循环 校验和(CS),循环位数与计算校验和(CS)的过程中向左循环的总位数相 同。
4.如权利要求1所述的方法,用于根据存储区域(MA)的单元(Mi)中 的变化更新校验和(CS),其特征在于该方法包括以下步骤:
-将变化的单元(Mi)的新数据与该同一单元(Mi)的旧数据逐位求和;
-在变化的单元(Mi)的序号(i)的基础上,推断,在计算原始校验和(CS) 时该单元(Mi)共循环了多少位;
-向右循环校验和,循环位数与计算原始校验和时在该单元(Mi)向 左循环的位数相同;
-对循环的校验和(CS)求和,由此获得原始校验和(CS)。
5.如权利要求1所述的方法,其特征在于该方法进一步包括以下步 骤:
-在至少一个存储区域计算一个校验和(CS);
-比较在该存储区域(MA)计算的校验和(CS)和在以前阶段同一存储 区域(MA)计算的校验和;
-响应在同一存储区域(MA)不同时刻计算的校验和之间的失配,产 生指示该差别的一个信号
6.如权利要求5所述的方法,其特征在于,在该存储区域(MA)计算 的校验和与在以前阶段同一存储区域(MA)计算的校验和(CS)以预定的 次数周期性地进行比较。
7.如上述任一权利要求所述的方法,其特征在于,为了加速一个 包括盘驱动器的计算机的重新启动,该方法包括以下步骤:
-在至少一个存储区域计算一个校验和(CS);
-重新启动计算机;
-在至少一个这样的存储区域(MA)计算一个校验和(CS),在重新启 动之前已经在该存储区域计算了一个校验和(CS);
-比较重新启动后计算的校验和(CS)和重新启动之前在同一存储区 域(MA)计算的校验和(CS);
-响应重新启动后计算的校验和与重新启动之前计算的校验和之间 的失配,从盘驱动器中装载与该存储区域对应的数据。
8.如权利要求7所述的方法,其特征在于,重新启动之前计算的校 验和(CS)的值存储在一个主存储器中。
9.如权利要求8所述的方法,其特征在于,重新启动之前计算的校 验和(CS)的值存储在一个写保护的主存储器中。
10.如权利要求7所述的方法,其特征在于,重新启动之前计算的 校验和(CS)的值存储在一个硬盘中。

说明书全文

发明涉及检查计算机中存储器内容的完整。

图1显示一台计算机中与本发明有关的基本的部分。在初始阶段,在 电源开启之后,主存储器RAM的内容处于一个不明确的状态。常规计算 机的初始装载发生,使得电源开启产生一个初始信号INIT,它使得,例如, 一个处理器CPU跳进一个预定的地址。在一个只读存储器ROM中,这个 存储器具有一个初始装载的程序,它的执行包括从一个HD磁盘驱动器中 的一个预定位置装载操作系统(OS)的基本部分。这样装载的OS基本部 分包括更多高级的装载程序,不仅从ROM中的为HD预定的位置装载一 部分OS,还从其它地方也装载一部分OS。这些更高级的装载程序依次装 载其它软件等。

这些软件模块不必位于HD磁盘驱动器的相邻区域。在读HD时,通 常情况是位于HD不同区域的信息必须接连读取。一个建议的指标值为可 能从磁盘驱动器以约1MB/s的速度读相邻区域的数据。但实际上读的速度 只是这个速度的一半。例如,装载30MB的软件可能花大约一分钟的时间

在控制计算机的过程中,如开关交换,可以证明解决故障花费很大。 解决软件缺陷尤其困难。硬件缺陷常常可以通过与另一个已知处于正常工 作状态的仪器比较而发现。软件缺陷通常无法用这种方式发现,因为通常 不存在已知处于正常工作的参考软件。多数情况下,通常遇到的进一步的 缺点是根据征兆通常不可能迅速推断出缺陷是在硬件还是软件。在特定存 储区域的未受控制的变化,可能由两种原因中的任意一个造成。如果问题 发生,重要的是尽快直接维修正确的目标。

破坏者和“黑客”构成了威胁。如果用于远程维修的选项合并于计算 机中,那么误用的危险将相应地增加。

为了发现存储器问题,已经开发了几个不同的解决方案。现有技术已 知一个所谓的校验位,依靠它可能在存储位置有偶数个一位(或者,如果 需要,奇数个)。正如众所周知,通过在存储位置的偶数个位,使用 校验不能发现状态的同时变化。

另一个一般使用的工具是循环冗余校验CRC。CRC和是发现串行模 式数据,如位于磁盘驱动器中和数据链中的数据的错误的一个有用的 工具。关于矩阵数据,CRC和面临两个问题。第一是CRC和不能用于可 靠地发现在由计算CRC和的方法所引起的间隔时发生的缺陷。第二个 问题与如果仅一个存储位置的内容改变就必须重新计算CRC和这个事 实有关。

由以上可得出结论,开发一种方法和仪器,利用它们,计算机的存 储器问题能被发现并且上述的问题能够被解决,这是本发明的一个目 的。一方面,本发明是基于一种方法,根据最新收集的经验,该方法 对于发现存储器中所有可能的未受控制的变化是足够广泛的,而且另 一方面,本发明是基于在计算机的各种操作中均可使用本方法。

首先,根据本发明的方法和系统有可靠地发现存储器问题的优点。 这因此导致第二个优点,即通过省略在现有技术系统中执行的“仅仅 是以防万一”的一些指令,加速计算机的重新启动。

以下,将参考附图,利用本发明首选的实施例更详尽地描述本发 明,其中:

图1显示一台计算机中与本发明有关的基本的部分;

图2说明使用校验和监视存储器内容;

图3是说明保持校验和的一个流程图;以及

图4说明根据本发明计算校验和。

关于图2的流程图,该校验和在一个特定存储区域计算,它与先前 计算的校验和比较,如果这两个校验和不同,就会发出一条错误消息。 在图2的流程图中,重要的问题是正在计算的校验和被初始化的方法。 根据本发明的一个实施例,这种计算发生在有规律的间隔。根据另一 个实施例,是结合特定的事件,例如,打开计算机、修改程序等,来 计算校验和。

图3的流程图说明写入存储器是如何发生的。一旦一个存储区域的 内容变化,将通过(i)从先前的校验和中删除变化的存储区域的部分, 以及(ii)向这样变化了的校验和增加与变化了的存储区域的新内容 对应的部分,来修正校验和。

图3中的流程图的简单使得计算校验和的现有技术的方法无法用于从 一个计算过的校验和中删除变化的存储区域的先前部分,并且用一个与该 相同存储区域的新内容对应的部分来代替。下面,参考图4,描述用于计 算校验和的根据本发明的一种新方法。将在计算机的整个存储器MEM中 的被监视的一个存储区域MA内计算校验和。校验和(CS)的宽度M是 任意的,但是宽度M的合适值等于计算机的字长W。在计算之前,给校 验和一个初始值,例如0。进行计算,使得在一个存储区域MA的具有M 位的每个单元Mi(其中i表示单元在存储区域内的序号)与校验和CS逐 位求和(通过一个异或运算),使得在求和之前,单元Mi向右循环k位(向 最低位的方向)。循环的位数k由下式获得: k = Σ j = 0 INT ( i / M j ) - - - ( 1 )

其中INT表示一个整数。实际上,求和不必永远继续,只要达到当Mj 小于或等于单元序号i时的j的最大值(或可能的最大的序号值)。

利用以下的快速方法能够得到同样的结果。存储区域MA的单元与校 验和CS进行逐位求和(异或)。每次求和以后,校验和向左(向最高位的 方向)循环一位。如果i+1被M整除则重复循环,然后如果i+1被M2整 除则同样循环,等等,直到M的所有可能的整数次幂都进行一遍。一旦所 有的单元都求和完毕,校验和向右循环,位数与求和时校验和向左循环的 位数相同。

本方法值得一提的优点是这样计算的校验和可能容易被更新。这种更 新如以下发生:

(1)变化的单元的数据与该单元的旧数据求和。

(2)根据变化的单元的序号,推断,当计算原始校验和时在该单元 共循环了多少位。

(3)将和向右循环相同程度。

(4)将这样得到的循环的和与原始的校验和求和。

这样得到的结果是根据变化的存储区域更新的新的校验和。如果一个 具有任意尺寸的存储区域发生变化,将通过每个单元仅计算两个和来更新 校验和。这样,新的校验和不必在整个存储区域计算,那将是循环冗余校 验(CRC)的事。

通过单元序号i除以M的可能的整数次幂,然后根据方程(1)对这 些商取整求和,可以计算出在变化的单元循环的位数。

参考表1,现在将描述根据本发明的方法的校验和的一个示范计算。 为简化起见,假定存储区域包括16个能够通过一个4位序号寻址的位置。 在本例中,存储位置的数据也具有4位的宽度。同样,校验和的初始值置 为0。作所有这些假定都是为了说明本发明,它们并不以任何方式限定本 发明。

存储位置0的内容1001与初始值0000逐位求和,然后因为0+1不能 被校验和的宽度(4)整除,所以和向左循环一位。得到的新的校验和是 0011。在这个和上加上存储位置1的内容1011,这样得到的和向左循环一 位,因为1+1不能被校验和的宽度整除。这样以后,新的校验和为0001。 这个过程以这种方式继续,直到整个存储区域进行一遍。在存储位置3、7 和11,校验和循环两位,因为这些序号加1后能够被校验和的宽度整除。 在存储位置15,将循环三位,因为15+1既可以被校验和的宽度整除,也 可以被校验和的宽度的平方整除。在所有其它位置,校验和仅循环一位。 最后,校验和向相反方向,即向右循环21位。最终得到的校验和为0111 。计算的逐步过程如表1所示。

表1     地址     数据     旧 CS     位和     新 CS     循环     0000     1001     0000     1001     0011     1     0001     1011     0011     1000     0001     1     0010     1101     0001     1100     1001     1     0011     0010     1001     1011     1110     2     0100     1011     1110     0101     1010     1     0101     1010     1010     0000     0000     1     0110     0111     0000     0111     1110     1     0111     0010     1110     1100     0011     2     1000     0000     0011     0011     0110     1     1001     0001     0110     0111     1110     1     1010     0111     1110     1001     0011     1     1011     0101     0011     0110     1001     2     1100     1111     1001     0110     1100     1     1101     0011     1100     1111     1111     1     1110     1110     1111     0001     0010     1     1111     0101     0010     0111     1011     3     1011     1101     -21

下面,假定存储位置例如0101的内容从1010变为0110。新旧内容的 逐位求和将为1100。根据序号0101(=5),逐位求和1100向右循环5+1=6 位,由此得到的结果为0011。当它加到旧的校验和上时,得到的新的校验 和为1110。通过从开始就重复结合表1讨论的步骤,可以得到相同的结果, 但是存储位置0101的内容具有新的值,在这种情况下为0110。

校验和可以通过计算机方便地计算。为此,可以利用以下类似Pascal 语言的伪代码形式的程序。

SUM:=initial value;

for I:=0 to N-1 do

SUM:=SUM xor X(I);

SUM:=SUM rol 1;

if(I+1)mod M=0 then

SUM:=SUM rol 1;

if(I+1)mod(M*M)=0 then

SUM:=SUM rol 1;

if(I+1)mod(M*M*M)=0 then

SUM:=SUM rol 1;

...  

end;

end;

end;

end;

end;

N1:=N+N/M+N/(M*M)+N/(M*M*M)+N...;

SUM:=SUM ror N1;

end;

在上述伪代码中,N表示被监视的存储区域的尺寸,xor表示逐位求 和(异或),mod表示模运算符(余数),rol表示左循环,ror对应地表 示右循环。

以下伪代码可以用于更新校验和:

SUM:=initial value;

for I:=0 to N-1 do

I1:=I+I/M+I/(M*M)+I/(M*M*M)+I...;

SUM:=SUM xor(X(I)ror I1);

end;

显然,没有一个校验和可以发现所有的的存储器问题。一个显而易见 的原因是:因为校验和CS的信息内容比计算校验和时所处的存储位置MA 的信息内容小得多,所以存储位置不可避免地具有一些产生相同校验和CS 的可能内容。然而,实际上,缺陷能被可靠地发现。该存储位置有一个未 受控制的变化,而校验和无并发变化将要求存储区域的几个地址的几个位 根据一个特定的数学规律性同时变化。尽管实际的存储器问题通常确实表 现数学的规律性,但是这个规律性没有这种性质,即使用本发明的方法, 存储器问题将一直不被发现。在这个方面,可以说根据本发明计算校验和 是“有规律地无规律”。

用于计算校验和的本发明的方法可以如下被应用:一个有贡献的校验 和被分配到被监视的每个存储区域。随着存储区域的内容的改变,该校验 和也相应改变。校验和的完整性被例如在特定间隔或结合特定事件的时刻 监视。如果发现校验和不匹配,缺陷至少被报告并且其它要求的测量加之 进行。

利用本发明的校验和计算方法的第二个方面是加速计算机的重新启动 。常规的计算机在这种情况下从一个磁盘驱动器,一个网络等装载整个软 件。  通过利用根据本发明的校验和,可能指示哪个存储区域关于其内容已 经不存在缺陷,导致其内容不必重新装载。结果,与现有技术相比,计算 机的启动可以加速几十分钟。在重新启动之前,在被监视的一个或多个存 储区域MA可以计算校验和CS,并且这些校验和可以存储在主存储器中 。一些系统允许保护一部分存储器以后不被覆盖。在这种类型的存储器中, 相应于不同程序模块的校验和可以被存储,因为一旦该程序模块被装载进 一个存储器,其内容就不应被改变。或者,一个预定的校验和可以与存储 在磁盘驱动器的每个程序模块结合。在装载程序模块的过程中,该校验和 可以首先从磁盘驱动器读出,并与在相应的存储区域计算的校验和比较。 如果校验和一致,程序模块将不必从磁盘驱动器重新装载。包括多个部分 的软件的不同模块的校验和可以存在一个共有的文件中,读该文件可迅速 区分哪些模块已经无缺陷地启动以及哪些模块应从磁盘驱动器重新装载。

尽管本发明是以计算机为例解释的,但本发明并不局限于计算机的一 个狭义范围,而可以应用于使用电子存储器的所有情况。这种应用的例子 包括计算机外围设备和通讯系统、图象和声音存储器、数据记录系统、控 制和处理自动控制系统以及各种机器人。同样显然,对于熟练的技术人员, 随着技术的进步,本发明的基本原理可以以不同方式应用。本发明以及其 中的实施例并不局限于上述的例子,而是在权利要求书的范围内可以变化 。

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈