CN103136080A - 一种缓存锁定功能的测试方法和装置 - Google Patents
一种缓存锁定功能的测试方法和装置 Download PDFInfo
- Publication number
- CN103136080A CN103136080A CN2013100781393A CN201310078139A CN103136080A CN 103136080 A CN103136080 A CN 103136080A CN 2013100781393 A CN2013100781393 A CN 2013100781393A CN 201310078139 A CN201310078139 A CN 201310078139A CN 103136080 A CN103136080 A CN 103136080A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer memory
- cache
- reading
- capacity
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种缓存锁定功能的测试方法和测试装置,所述方法包括:向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;向缓存中读入大于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;向缓存中读入大于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;根据所述第五数据以及所述第一数据,确定判定该缓存锁定功能是否失效。本发明通过将第一数据锁定在缓存中,通过其他的数据来挤兑缓存中的锁定数据,从而来检测该缓存锁定的功能,以用来测试被锁住的数据是否会被新数据挤出缓存。
Description
技术领域
本发明涉及缓存的测试领域,特别是涉及一种缓存锁定功能的测试方法和测试装置。
背景技术
缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里。因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在忙完后还是会把文件送到硬盘等存储器里永久存储。
如图1所示,为现有的一种SOC系统的结构示意图,包括CPU、总线(BUS)、缓存(cache)、内存(DDR)、总线监控器(BUS monitor),其中运行在CPU等核心上的软件用来操作CPU通过cache对总线进行数据访问;同时用来操作cache的各种功能,比如锁定和解除锁定;并比较数据的正确性。SOC中的Bus Monitor硬件处于cache模块和总线之间,用来统计cache对总线反问的数据量。
现在随着CPU以及各种图形处理核心频率和能力的提高,给系统总线带来的很大的带宽压力;而cache具有降低访问总线的频率,且提高总线访问效率的作用,因此能显著提高整个系统的性能。所以SOC系统中各个处理核心之前竞相添加cache(缓存)硬件。如何确保cache(缓存)硬件实现的正确性成为了一个新的问题。目前还没有合适的测试方法对缓存的锁定功能进行测试。
发明内容
本发明提供了一种缓存锁定功能的测试方法和测试装置,用于对缓存进行锁定功能的测试。
本发明提供了一种缓存锁定功能的测试方法,包括:
向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
向缓存中读入大于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
向缓存中读入大于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
本发明还提供了一种缓存锁定功能的测试装置,包括:
第一数据锁定模块,用于向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
第二数据输入模块,用于向缓存中读入大于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
第三数据输入模块,用于向缓存中读入大于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
判定模块,用于根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
本发明的技术方案具有的有益效果是:本发明通过将第一数据锁定在缓存中,通过其他的数据来挤兑缓存中的锁定数据,从而来检测该缓存锁定的功能,以用来测试被锁住的数据是否会被新数据挤出缓存。
附图说明
图1为现有的一种SOC系统的结构示意图;
图2为本发明一种实施例的缓存锁定功能的测试方法的流程图;
图3为本发明第二种实施例的缓存锁定功能的测试方法的流程图;
图4为本发明一种实施例的缓存锁定功能的测试装置的结构框图;
图5为本发明一种实施例的缓存锁定功能的测试执行的流程图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结 合附图及具体实施例进行详细描述。
如图2所示,为本发明一种实施例的缓存锁定功能的测试方法的流程图,包括:
步骤S101:向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
步骤S102:向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
步骤S103:向缓存中读入大于或者等于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
步骤S104:根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
本发明通过将第一数据锁定在缓存中,通过其他的数据来挤兑缓存中的锁定数据,从而来检测该缓存所的功能,以用来测试被锁住的数据是否会被新数据挤出缓存。
步骤S101中,将小于缓存容量的第一数据锁定在该缓存中,缓存是以way(道)为单位,可以选择一个或者多个way进行第一数据的锁定。具体缓存的操作是:打开cache(缓存),并且设定锁定某一个way,比如第13way;然后打开cache的lock功能,将第样本数据中第13way指定的数据读入CPU,该way所有数据必定通过cache了,此时关闭cache的lock功能,从而将第一数据锁定在缓存中。
步骤S102中,向缓存中读入大于或者等于缓存容量的第二数据,用大于或者等于缓存容量的第二数据来挤压被锁定的第一数据,需要用大于或者等于缓存容量的数据进行挤压才能够检验缓存的锁定功能是否失效。在向缓存中读入第二数据时,还要确定实际读入所述缓存的第三数据。例如缓存的容量为256K,第二数据的容量也为256K,将256K的第二数据读到CPU中,此时首先检查Bus Monitor,此次cache对bus的访问应该为读256K(ddr中新数据到cache中),写256K(cache中老数据到ddr中);且读到的数据为之前写入ddr中的样本。而且,CPU读入的数据应该是之前设定的第二数据。当第二数据大于缓存的容量时,向缓存中读入第二数据时,并将缓存中的数据读入CPU 中,同样需要确定CPU读入的数据是否属于第二数据,以便于检查缓存锁定功能是否失效。
在步骤S103中,向缓存中读入大于或者等于缓存容量的第四数据,用第四数据检验该缓存锁定功能是否失效,还要并确定实际读入所述缓存的第五数据。第四数据可以大于或者关于缓存的容量,以便于检验缓存的锁定功能。
步骤S104:根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。该步骤是通过第五数据和第一数据来判定缓存的锁定功能是否失效。
如图3所示,为本发明第二种实施例的缓存锁定功能的测试方法的流程图,该实施例与第一种实施例基本相同,区别是在步骤S101之后还包括步骤S105,该步骤为确定锁定后的第一数据与锁定之前的缓存中读入的第一数据的容量和内容是否一致,如果一致,继续执行步骤S102,如果不一致,则结束。
该实施例在锁定第一数据之后,还需检测该缓存中余下的容量是否为除去锁定的空间。具体为向缓存中读入第六数据,该第六数据为缓存容量与第一数据之差,确定缓存中实际读入数据的容量和内容是否与第六数据相一致,如果相一致,则符合要求,继续执行步骤S102,如果不一致,则结束。
在步骤S102中,向缓存中读入大于缓存容量的第二数据,并确定实际读入所述缓存的第三数据,该步骤用于将大于缓存容量的数据来挤压缓存中锁定的第一数据,从而为检测步骤做准备。该第二数据还可以是正好等于缓存容量。
本发明在向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据,进一步包括:确定缓存中实际读入的第三数据是否属于第二数据,并确定第三数据的容量是否为缓存容量与第一数据之差。当第二数据正好等于缓存容量时,需要确定第三数据是否为缓存容量与第一数据之差,如果是,继续执行,如果否,则结束。
本发明在根据所述第五数据以及所述第一数据,确定判定该缓存锁定功能是否失效,进一步包括:
比较第五数据的内容是否属于第四数据,如果不属于,则判定该缓存锁定功能失效;
比较第五数据的容量与缓存容量同第一数据的差是否相同,如果不同,则 判定该缓存锁定功能失效;
比较第一数据的内容与锁入缓存之前的数据是否一致,如果不一致,则判定该缓存锁定功能失效。
如图4所示,为本发明一种实施例的缓存锁定功能的测试装置的结构框图,该测试装置包括:
第一数据锁定模块100,用于向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
第二数据输入模块200,用于向缓存中读入大于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
第三数据输入模块300,用于向缓存中读入大于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
判定模块400,用于根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
本发明的测试装置还包括第一数据判定模块,用于确定锁定后的第一数据与锁定之前的缓存中读入的第一数据的容量和内容是否一致。
本发明的测试装置还包括第二数据判定模块,用于向缓存中读入第六数据,该第六数据为缓存容量与第一数据之差,确定缓存中实际读入数据的容量和内容是否与第六数据相一致。
本发明的测试装置中第三数据输入模块进一步包括:用于确定缓存中实际读入的第三数据是否属于第二数据,并确定第三数据的容量是否为缓存容量与第一数据之差。
本发明的测试装置中的判定模块进一步包括:
用于比较第五数据的内容是否属于第四数据,如果不属于,则判定该缓存锁定功能失效;
用于比较第五数据的容量与缓存容量同第一数据的差是否相同,如果不同,则判定该缓存锁定功能失效;
用于比较第一数据的内容与锁入缓存之前的数据是否一致,如果不一致,则判定该缓存锁定功能失效。
以下结合一实施例对本发明的具体工作工程进行描述:
假设cache的特性为:256k字节大小,分为16个way,每个way16k字节大小,每个way分为64个line,每个line为256字节;lock以way为单位。
如图5所示,为本发明一种实施例的缓存锁定功能的测试执行的流程图,包括如下步骤:
1.在DDR中组织好2个256k大小且起始地址4k对齐的样本数据(可以由运行在CPU核心上的软件首先关闭cache;然后将2个256k大小的样本数据写到ddr中,分别是第0块数据和第1块数据,其中第0块数据为全0xffffffff,第1块数据为0x0。
2.运行在CPU核心上的软件打开cache,使得缓存能够存入数据;这两个步骤是进行数据和cache准备阶段;
3.设定锁定某一个way,比如第13way;然后打开cache的lock功能。
4.运行在CPU核心上的软件将第0个样本数据中第13way指定的数据读入核心,由于步骤2中打开了cache,该way所有数据必定通过cache了。
5.运行在核心上的软件关闭cache的lock功能。此时第13way的数据就锁定在缓存中。此时缓存中就lock一个way数据到cache阶段。
6.此时首先检查Bus Monitor,此次cache对bus访问的数据量应该是读16k字节,以判断数据量是否正确;运行在核心上的软件检查此次读入的数据是否是之前写入ddr的样本数据,以判断数据是否正确。如果数据不正确,则Cache lock功能有问题(lock导致数据不正确),结束操作。
7.运行在CPU核心上的软件将第0个样本数据中,其余way的数据读入CPU核心;这些数据以非lock的方式通过cache进入CPU核心。CPU读入第0块数据的剩余240K。将第0个样本数据对cache填充满。
8.此时首先检查Bus Monitor,此次cache对bus访问的数据量应该是读256-16k字节,以判断数据量是否正确;运行在核心上的软件检查此次读入的数据是否是之前写入ddr的样本数据,为全0xffffffff,以判断数据是否正确。如果数据不正确,则Cache lock功能有问题(lock导致数据不正确),结束执行。
9.运行在CPU核心上的软件将第1块256K的样本数据读到核心中去;用新的样本1的数据试图将cache里面的样本0的数据挤出去,从而进行缓存锁 定功能的测试。
10.此时首先检查Bus Monitor,此次cache对bus的访问应该为读256K(ddr中新数据到cache中),写256K(cache中老数据到ddr中);且读到的数据为之前写入ddr中的样本。判断数据量是否为256k,且为全0x0。运行在CPU核心上的软件比较读入的数据是否是之前设定的样本,此时应该是相同的。如果数据不正确,则Cache lock功能有问题(lock导致数据不正确),结束执行。
11.运行在CPU核心上的软件关闭cache,将第0个样本里面的所有256K数据都修改掉;将第0块数据更新为0x12345678,然后再打开cache。这样不会改变cache中的数据。
12.运行在CPU核心上的软件打开cache,再一次将第0个样本的所有256K数据读到内核中。
13.此时如果lock功能生效的话,由于步骤3中读入的数据一直被锁定在cache中,受lock保护在步骤8中不会被挤到ddr中,因此读入的数据量应该为256-16k;而此次读入的数据,该被锁定的way里面的数据应该是最初的步骤1中设定的值;而其它数据应该是步骤10修改的值,锁定的第13way数据为0xfffffff,其余数据为0x12345678。首先检查Bus Monitor,看cache对bus的访问是否为读256K-16K;然后运行在核心上的软件判断数据是否也是和预期一样。如果以上均符合预期,则认为cache的lock功能是正确的,判定锁定功能没有失效。如果不符合预期,则Cache lock功能有问题(没有锁住),判定锁定功能失效。
上述技术方案具有如下技术效果:本发明的缓存锁定的测试方法通过将第一数据锁定在缓存中,通过其他的数据来挤压缓存中的锁定数据,从而来检测该缓存锁定的功能,以用来测试被锁住的数据是否会被新数据挤出缓存。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种缓存锁定功能的测试方法,其特征在于,包括:
向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
向缓存中读入大于或者等于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
2.根据权利要求1所述的缓存锁定功能的测试方法,其特征在于,所述向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中的步骤之后还包括:
确定锁定后的第一数据与锁定之前的缓存中读入的第一数据的容量和内容是否一致。
3.根据权利要求1或者2所述的缓存锁定功能的测试方法,其特征在于,所述向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中的步骤之后还包括:
向缓存中读入第六数据,该第六数据为缓存容量与第一数据之差,确定缓存中实际读入数据的容量和内容是否与第六数据相一致。
4.根据权利要求1所述的缓存锁定功能的测试方法,其特征在于,所述向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据,进一步包括:
确定缓存中实际读入的第三数据是否属于第二数据,并确定第三数据的容量是否为缓存容量与第一数据之差。
5.根据权利要求1或者2所述的缓存锁定功能的测试方法,其特征在于,所述根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效,进一步包括:
比较第五数据的内容是否属于第四数据,如果不属于,则判定该缓存锁定功能失效;
比较第五数据的容量与缓存容量同第一数据的差是否相同,如果不同,则判定该缓存锁定功能失效;
比较第一数据的内容与锁入缓存之前的数据是否一致,如果不一致,则判定该缓存锁定功能失效。
6.一种缓存锁定功能的测试装置,其特征在于,包括:
第一数据锁定模块,用于向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
第二数据输入模块,用于向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
第三数据输入模块,用于向缓存中读入大于或者等于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
判定模块,用于根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
7.根据权利要求5所述的缓存锁定功能的测试装置,其特征在于,还包括第一数据判定模块,用于确定锁定后的第一数据与锁定之前的缓存中读入的第一数据的容量和内容是否一致。
8.根据权利要求5所述的缓存锁定功能的测试装置,其特征在于,包括第二数据判定模块,用于向缓存中读入第六数据,该第六数据为缓存容量与第一数据之差,确定缓存中实际读入数据的容量和内容是否与第六数据相一致。
9.根据权利要求5所述的缓存锁定功能的测试装置,其特征在于,所述第三数据输入模块进一步包括:用于确定缓存中实际读入的第三数据是否属于第二数据,并确定第三数据的容量是否为缓存容量与第一数据之差。
10.根据权利要求5所述的缓存锁定功能的测试装置,其特征在于,所述判定模块进一步包括:
用于比较第五数据的内容是否属于第四数据,如果不属于,则判定该缓存锁定功能失效;
用于比较第五数据的容量与缓存容量同第一数据的差是否相同,如果不同,则判定该缓存锁定功能失效;
用于比较第一数据的内容与锁入缓存之前的数据是否一致,如果不一致,则判定该缓存锁定功能失效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310078139.3A CN103136080B (zh) | 2013-03-12 | 2013-03-12 | 一种缓存锁定功能的测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310078139.3A CN103136080B (zh) | 2013-03-12 | 2013-03-12 | 一种缓存锁定功能的测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136080A true CN103136080A (zh) | 2013-06-05 |
CN103136080B CN103136080B (zh) | 2016-07-13 |
Family
ID=48495932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310078139.3A Expired - Fee Related CN103136080B (zh) | 2013-03-12 | 2013-03-12 | 一种缓存锁定功能的测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136080B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1703891A (zh) * | 2002-11-29 | 2005-11-30 | 国际商业机器公司 | 对n路共享存储系统中快闪副本的高效锁管理 |
CN1754155A (zh) * | 2003-01-17 | 2006-03-29 | 泰斯特网络公司 | 使用分布式文件系统进行存储式高速缓存的方法和系统 |
CN101185068A (zh) * | 2005-03-16 | 2008-05-21 | 阿玛得斯两合公司 | 维持多个独立进程的高速缓存的一致性的方法和系统 |
US7827360B2 (en) * | 2007-08-02 | 2010-11-02 | Freescale Semiconductor, Inc. | Cache locking device and methods thereof |
-
2013
- 2013-03-12 CN CN201310078139.3A patent/CN103136080B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1703891A (zh) * | 2002-11-29 | 2005-11-30 | 国际商业机器公司 | 对n路共享存储系统中快闪副本的高效锁管理 |
CN1754155A (zh) * | 2003-01-17 | 2006-03-29 | 泰斯特网络公司 | 使用分布式文件系统进行存储式高速缓存的方法和系统 |
CN101185068A (zh) * | 2005-03-16 | 2008-05-21 | 阿玛得斯两合公司 | 维持多个独立进程的高速缓存的一致性的方法和系统 |
US7827360B2 (en) * | 2007-08-02 | 2010-11-02 | Freescale Semiconductor, Inc. | Cache locking device and methods thereof |
Non-Patent Citations (1)
Title |
---|
曾辉: "最小化最坏执行时间的指令缓存锁定算法", 《武汉大学学报(理学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN103136080B (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10423474B2 (en) | Performing diagnostic tracing of an executing application to identify suspicious pointer values | |
CN108089971B (zh) | 基于嵌入式实时系统的日志服务方法和系统 | |
CN103226499B (zh) | 一种恢复内部存储器中的异常数据的方法及装置 | |
CN109656779A (zh) | 内存监控方法、装置、终端和存储介质 | |
US7536662B2 (en) | Method for recognizing and verifying FIFO structures in integrated circuit designs | |
CN103488563A (zh) | 并行程序的数据竞争检测方法、装置及多核处理系统 | |
CN105677511B (zh) | 一种降低同步开销的数据写入方法和装置 | |
CN106599096B (zh) | 基于非易失性内存的高性能文件系统设计方法 | |
CN102967823A (zh) | 一种单粒子多位翻转监测系统 | |
CN112185453A (zh) | 读干扰测试方法、装置、计算机可读存储介质及电子设备 | |
CN102053868A (zh) | 一种内存泄露检测方法和装置 | |
US9898468B2 (en) | Single pass file system repair with copy on write | |
CN103136080A (zh) | 一种缓存锁定功能的测试方法和装置 | |
CN114639437B (zh) | 存储器的测试方法、装置、设备及存储介质 | |
CN108170567B (zh) | 基于写时复制特性的虚拟机中存储区域完整性检测方法 | |
Fairbanks | A technique for measuring data persistence using the ext4 file system journal | |
US7805471B2 (en) | Method and apparatus to perform incremental truncates in a file system | |
CN103117075B (zh) | 磁盘块检查方法及装置 | |
CN111209146B (zh) | 一种raid卡老化测试方法及系统 | |
CN113820649A (zh) | 一种电能表固件的寿命可靠性测试方法和装置 | |
CN107544851A (zh) | 一种锁操作处理方法及装置 | |
CN113703673A (zh) | 一种单机数据存储方法及相关装置 | |
CN113779926A (zh) | 一种电路的检测方法、装置、电子设备及可读存储介质 | |
CN109976811B (zh) | 一种可移动存储设备自动挂载方法及机车视频监视系统 | |
CN113918393B (zh) | 一种功能安全系统内存检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160713 |
|
CF01 | Termination of patent right due to non-payment of annual fee |