CN103136080B - 一种缓存锁定功能的测试方法和装置 - Google Patents

一种缓存锁定功能的测试方法和装置 Download PDF

Info

Publication number
CN103136080B
CN103136080B CN201310078139.3A CN201310078139A CN103136080B CN 103136080 B CN103136080 B CN 103136080B CN 201310078139 A CN201310078139 A CN 201310078139A CN 103136080 B CN103136080 B CN 103136080B
Authority
CN
China
Prior art keywords
data
buffer memory
capacity
cache
cache lock
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.)
Expired - Fee Related
Application number
CN201310078139.3A
Other languages
English (en)
Other versions
CN103136080A (zh
Inventor
凌明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
QINGDAO VIMICRO ELECTRONICS CO Ltd
Original Assignee
QINGDAO VIMICRO ELECTRONICS CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by QINGDAO VIMICRO ELECTRONICS CO Ltd filed Critical QINGDAO VIMICRO ELECTRONICS CO Ltd
Priority to CN201310078139.3A priority Critical patent/CN103136080B/zh
Publication of CN103136080A publication Critical patent/CN103136080A/zh
Application granted granted Critical
Publication of CN103136080B publication Critical patent/CN103136080B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种缓存锁定功能的测试方法和测试装置,所述方法包括:向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;向缓存中读入大于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;向缓存中读入大于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;根据所述第五数据以及所述第一数据,确定判定该缓存锁定功能是否失效。本发明通过将第一数据锁定在缓存中,通过其他的数据来挤兑缓存中的锁定数据,从而来检测该缓存锁定的功能,以用来测试被锁住的数据是否会被新数据挤出缓存。

Description

一种缓存锁定功能的测试方法和装置
技术领域
本发明涉及缓存的测试领域,特别是涉及一种缓存锁定功能的测试方法和测试装置。
背景技术
缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里。因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在忙完后还是会把文件送到硬盘等存储器里永久存储。
如图1所示,为现有的一种SOC系统的结构示意图,包括CPU、总线(BUS)、缓存(cache)、内存(DDR)、总线监控器(BUSmonitor),其中运行在CPU等核心上的软件用来操作CPU通过cache对总线进行数据访问;同时用来操作cache的各种功能,比如锁定和解除锁定;并比较数据的正确性。SOC中的BusMonitor硬件处于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中,此时首先检查BusMonitor,此次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.此时首先检查BusMonitor,此次cache对bus访问的数据量应该是读16k字节,以判断数据量是否正确;运行在核心上的软件检查此次读入的数据是否是之前写入ddr的样本数据,以判断数据是否正确。如果数据不正确,则Cachelock功能有问题(lock导致数据不正确),结束操作。
7.运行在CPU核心上的软件将第0个样本数据中,其余way的数据读入CPU核心;这些数据以非lock的方式通过cache进入CPU核心。CPU读入第0块数据的剩余240K。将第0个样本数据对cache填充满。
8.此时首先检查BusMonitor,此次cache对bus访问的数据量应该是读256-16k字节,以判断数据量是否正确;运行在核心上的软件检查此次读入的数据是否是之前写入ddr的样本数据,为全0xffffffff,以判断数据是否正确。如果数据不正确,则Cachelock功能有问题(lock导致数据不正确),结束执行。
9.运行在CPU核心上的软件将第1块256K的样本数据读到核心中去;用新的样本1的数据试图将cache里面的样本0的数据挤出去,从而进行缓存锁定功能的测试。
10.此时首先检查BusMonitor,此次cache对bus的访问应该为读256K(ddr中新数据到cache中),写256K(cache中老数据到ddr中);且读到的数据为之前写入ddr中的样本。判断数据量是否为256k,且为全0x0。运行在CPU核心上的软件比较读入的数据是否是之前设定的样本,此时应该是相同的。如果数据不正确,则Cachelock功能有问题(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。首先检查BusMonitor,看cache对bus的访问是否为读256K-16K;然后运行在核心上的软件判断数据是否也是和预期一样。如果以上均符合预期,则认为cache的lock功能是正确的,判定锁定功能没有失效。如果不符合预期,则Cachelock功能有问题(没有锁住),判定锁定功能失效。
上述技术方案具有如下技术效果:本发明的缓存锁定的测试方法通过将第一数据锁定在缓存中,通过其他的数据来挤压缓存中的锁定数据,从而来检测该缓存锁定的功能,以用来测试被锁住的数据是否会被新数据挤出缓存。
以上所述是本实用新型的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本实用新型所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本实用新型的保护范围。

Claims (10)

1.一种缓存锁定功能的测试方法,其特征在于,包括:
向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
向缓存中读入大于或者等于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
2.根据权利要求1所述的缓存锁定功能的测试方法,其特征在于,所述向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中的步骤之后还包括:
确定锁定后的第一数据与锁定之前的缓存中读入的第一数据的容量和内容是否一致。
3.根据权利要求1或者2所述的缓存锁定功能的测试方法,其特征在于,所述向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中的步骤之后还包括:
向缓存中读入第六数据,该第六数据为缓存容量与第一数据之差,确定缓存中实际读入数据的容量和内容是否与第六数据相一致。
4.根据权利要求1所述的缓存锁定功能的测试方法,其特征在于,所述向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据,进一步包括:
确定缓存中实际读入的第三数据是否属于第二数据,并确定第三数据的容量是否为缓存容量与第一数据之差。
5.根据权利要求1或者2所述的缓存锁定功能的测试方法,其特征在于,所述根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效,进一步包括:
比较第五数据的内容是否属于第四数据,如果不属于,则判定该缓存锁定功能失效;
比较第五数据的容量与缓存容量同第一数据的差是否相同,如果不同,则判定该缓存锁定功能失效;
比较第一数据的内容与锁入缓存之前的数据是否一致,如果不一致,则判定该缓存锁定功能失效。
6.一种缓存锁定功能的测试装置,其特征在于,包括:
第一数据锁定模块,用于向缓存中读入小于缓存容量的第一数据,并锁定所述第一数据在该缓存中;
第二数据输入模块,用于向缓存中读入大于或者等于缓存容量的第二数据,并确定实际读入所述缓存的第三数据;
第三数据输入模块,用于向缓存中读入大于或者等于缓存容量的第四数据,并确定实际读入所述缓存的第五数据;
判定模块,用于根据所述第五数据以及所述第一数据,判定该缓存锁定功能是否失效。
7.根据权利要求6所述的缓存锁定功能的测试装置,其特征在于,还包括第一数据判定模块,用于确定锁定后的第一数据与锁定之前的缓存中读入的第一数据的容量和内容是否一致。
8.根据权利要求6所述的缓存锁定功能的测试装置,其特征在于,包括第二数据判定模块,用于向缓存中读入第六数据,该第六数据为缓存容量与第一数据之差,确定缓存中实际读入数据的容量和内容是否与第六数据相一致。
9.根据权利要求6所述的缓存锁定功能的测试装置,其特征在于,所述第三数据输入模块进一步包括:用于确定缓存中实际读入的第三数据是否属于第二数据,并确定第三数据的容量是否为缓存容量与第一数据之差。
10.根据权利要求6所述的缓存锁定功能的测试装置,其特征在于,所述判定模块进一步包括:
用于比较第五数据的内容是否属于第四数据,如果不属于,则判定该缓存锁定功能失效;
用于比较第五数据的容量与缓存容量同第一数据的差是否相同,如果不同,则判定该缓存锁定功能失效;
用于比较第一数据的内容与锁入缓存之前的数据是否一致,如果不一致,则判定该缓存锁定功能失效。
CN201310078139.3A 2013-03-12 2013-03-12 一种缓存锁定功能的测试方法和装置 Expired - Fee Related CN103136080B (zh)

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 CN103136080A (zh) 2013-06-05
CN103136080B true 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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
最小化最坏执行时间的指令缓存锁定算法;曾辉;《武汉大学学报(理学版)》;20101224(第6期);全文 *

Also Published As

Publication number Publication date
CN103136080A (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
US8364909B2 (en) Determining a conflict in accessing shared resources using a reduced number of cycles
US10691559B2 (en) Persistent memory transactions with undo logging
EP2588962B1 (en) Pre-emptive garbage collection of memory blocks
US8706983B2 (en) Garbage collection of memory blocks using volatile memory
JP2009520280A5 (zh)
US7536662B2 (en) Method for recognizing and verifying FIFO structures in integrated circuit designs
CN107728937A (zh) 一种使用非易失性内存介质的键值对持久存储方法及系统
CN103729304A (zh) 数据处理方法及装置
TWI812748B (zh) 記憶體系統及刪除重複記憶體系統
CN102967823A (zh) 一种单粒子多位翻转监测系统
CN106599096B (zh) 基于非易失性内存的高性能文件系统设计方法
CN109669635A (zh) 用于固态存储主控芯片的命令lba重合检测方法及装置
JPH0962560A (ja) データベース装置
CN102053868A (zh) 一种内存泄露检测方法和装置
US8732404B2 (en) Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to
CN103136080B (zh) 一种缓存锁定功能的测试方法和装置
CN108052644B (zh) 数据模式日志文件系统的数据写入方法及系统
CN103176753B (zh) 存储设备及其数据管理方法
CN112306980A (zh) 日志处理方法及终端设备
CN102339238B (zh) 具备回写式高速缓存的信息处理装置及主存储器诊断方法
US20120210322A1 (en) Methods for single-owner multi-consumer work queues for repeatable tasks
CN103117075B (zh) 磁盘块检查方法及装置
US7805471B2 (en) Method and apparatus to perform incremental truncates in a file system
CN110442531B (zh) 基于固态硬盘的读性能提升方法、装置和计算机设备
CN106504402A (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