CN111159005A - 一种内存管理功能的测试方法和系统 - Google Patents
一种内存管理功能的测试方法和系统 Download PDFInfo
- Publication number
- CN111159005A CN111159005A CN201811318574.8A CN201811318574A CN111159005A CN 111159005 A CN111159005 A CN 111159005A CN 201811318574 A CN201811318574 A CN 201811318574A CN 111159005 A CN111159005 A CN 111159005A
- Authority
- CN
- China
- Prior art keywords
- memory
- test
- test data
- read
- storage location
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 231
- 230000006870 function Effects 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013507 mapping Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 8
- 238000007726 management method Methods 0.000 description 44
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000013524 data verification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明公开了一种内存管理功能的测试方法和系统,所述系统包括:处理器、内存、内存管理单元和测试单元,所述测试单元,包括:用于存储虚拟地址的第一存储位置、用于存储测试数据的第二存储位置和第三存储位置;所述测试单元,用于在测试时,基于第一存储位置中存储的虚拟地址,访问内存管理单元,实现将第二存储位置存储的测试数据写入所述内存,或者,将从内存中读取的测试数据装载到第三存储位置;处理器,用于对测试单元写入或读取的测试数据进行校验。本发明不仅可以用于内存管理单元驱动的测试,在操作系统上运行出错后,对怀疑有问题的地址尝试用这种方式进行复现,帮助调式,提高开发效率。
Description
技术领域
本发明涉及集成电路领域,尤其涉及一种内存管理功能的测试方法和系统。
背景技术
内存管理单元MMU(Memory management unit)用来将CPU或者设备访问内存命令里的虚拟地址映射成实际物理地址,用于CPU以外设备,比如显示引擎,ISP的MMU又被称为设备内存管理单元(IOMMU,Input/Output(Device)Memory management unit)或者系统内存管理单元(SYSMMU)。
但是MMU在使用的过程中不单纯是一个硬件的行为,它是一个软硬件高度协同配合的工作,因为涉及到操作系统(比如linux,Android)对内存空间的动态管理,比如buffer(缓存)空间的动态申请和释放。MMU的驱动主要是在内存空间动态管理的过程中,频繁进行页表的维护,比如页表的创建,销毁,更新。如果驱动本身未经过充分测试,可靠性差,集成到系统上运行时很容易出现问题,而且一旦发生问题调式起来很费时,也难以定位,毕竟在系统上复现现场也很困难。
目前暂未从公开途径看到行业内对MMU,特别是IOMMU有好的测试和调式方法,一般最多是出错时产生中断协助诊断,比如读取到无效页表,但是页表自身内容有无错误不能有效帮助定位。
所以,现在的MMU(包括IOMMU)设计只有一些出现类似页表无效等错误时报错的简单机制,很难协助对驱动进行高效的测试,在系统运行出错后也很难快速帮助定位。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种解决上述问题的内存管理功能的测试方法和系统,用以帮助软件开发人员对驱动进行完善的测试,找出可能的错误,在系统运行出错后也能协助进行快速定位,提高开发效率。
依据本发明实施例的一个方面,提供一种内存管理功能的测试方法,包括:处理器、内存、内存管理单元和测试单元;
所述测试单元,包括:用于存储虚拟地址的第一存储位置、用于存储测试数据的第二存储位置和第三存储位置;
所述测试单元,用于在测试时,基于所述第一存储位置中存储的虚拟地址,访问所述内存管理单元,实现将所述第二存储位置存储的测试数据写入所述内存,或者,将从所述内存中读取的测试数据装载到所述第三存储位置;
所述处理器,用于对所述测试单元写入或读取的测试数据进行校验。
可选地,本发明实施例中:
所述第一存储位置为:地址寄存器;
所述第二存储位置为:第一数据寄存器;
所述第三存储位置为:第二数据寄存器。
可选地,本发明实施例中:所述第一数据寄存器和第二数据寄存器为同一寄存器。
可选地,本发明实施例中,所述测试单元,还包括:
控制/状态寄存器,用于配置测试的读写属性、以及开始/结束的状态。
可选地,本发明实施例中,所述测试单元,还包括:
测试功能控制单元,用于在测试时,基于所述第一存储位置中存储的虚拟地址,访问所述内存管理单元,并根据所述控制/状态寄存器配置的读写属性实现将所述第二存储位置存储的测试数据写入所述内存,或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
可选地,本发明实施例中,所述处理器,还用于将测试所用的虚拟地址写入所述第一存储位置;在测试写操作时将待写入所述内存的测试数据写入所述第二存储位置;以及在测试读操作时将测试数据写入所述内存。
可选地,本发明实施例中,所述测试单元,具体用于在测试时,向所述内存管理单元的映射查找表TLB查找所述第一存储位置中存储的虚拟地址对应的页表,并利用所述TLB返回的页表将所述虚拟地址转换为物理地址,根据所述物理地址,将所述第二存储位置存储的测试数据写入所述内存;或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
可选地,本发明实施例中,所述处理器,具体用于:
从所述内存中直接读取数据,将从所述内存中读取的数据与所述测试单元写入所述内存的测试数据进行比较,以对所述测试单元写入的数据进行校验;
或者,将所述处理器直接写入内存的测试数据与所述测试单元从所述内存中读出的测试数据进行比较,以对所述测试单元读出的数据进行校验。
依据本发明实施例的另一个方面,提供一种内存管理功能的测试方法,包括:
在测试时,基于第一存储位置中存储的虚拟地址,访问内存管理单元,实现将第二存储位置中存储的测试数据写入内存,或者,将从所述内存中读取的测试数据装载到第三存储位置;
通过处理器对写入所述内存或从所述内存中读取的测试数据进行校验。
可选地,本发明实施例中,在测试时,具体包括:
基于所述第一存储位置中存储的虚拟地址,访问所述内存管理单元,并根据配置的读写属性实现将所述第二存储位置存储的测试数据写入所述内存,或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
可选地,本发明实施例中,在测试时,具体包括:
向所述内存管理单元的TLB查找所述第一存储位置中存储的虚拟地址对应的页表,并利用所述TLB返回的页表将所述虚拟地址转换为物理地址,根据所述物理地址,将所述第二存储位置存储的测试数据写入所述内存;或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
可选地,本发明实施例中,所述通过处理器对写入所述内存或从所述内存中读取的测试数据进行校验,具体包括:
通过处理器从所述内存中直接读取数据,将从所述内存中读取的数据与所述写入所述内存的测试数据进行比较,以对写入内存的测试数据进行校验;
或者,通过处理器将所述处理器直接写入内存的测试数据与所述从内存中读取的测试数据进行比较,以对从内存中读出的测试数据进行校验。
本发明实施例有益效果如下:
本发明实施例所述方案通过对测试用虚拟地址完成到内存的读操作或写操作,并由处理器进行数据校验,可以检查驱动建立页表时,页表内容的正确性。该方案不仅可以用于内存管理单元驱动的测试,在操作系统上运行出错后,对怀疑有问题的地址尝试用这种方式进行复现,帮助调式。所以,本发明实施例采用简单易行的方法帮助软件开发人员对驱动进行完善的测试,找出可能的错误,在系统运行出错后也能协助进行快速定位,提高开发效率。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明第一实施例提供的一种内存管理功能的测试系统的结构示意图;
图2为本发明实施例中MMU的基本工作原理示意图;
图3为本发明第二实施例提供的一种内存管理功能的测试系统的结构示意图;
图4为本发明第三实施例提供的一种内存管理功能的测试系统的结构示意图;
图5为本发明第三实施例中进行MMU写测试的流程图;
图6为本发明第三实施例中进行MMU读测试的流程图;
图7为本发明第四实施例提供的一种内存管理功能的测试方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明第一实施例中,提供一种内存管理功能的测试系统,该系统主要用于帮助软件人员快速开发内存管理单元的驱动,减少开发的时间和工作量,在系统运行出现相关问题的时候,协助快速调式与定位原因。
如图1所示,本发明实施例所述系统包括:处理器110、内存120和内存管理单元130和测试单元140;其中:
测试单元140,包括:用于存储虚拟地址的第一存储位置141、用于存储测试数据的第二存储位置142和第三存储位置143;
测试单元140,用于在测试时,基于所述第一存储位置141中存储的虚拟地址,访问所述内存管理单元130,实现将所述第二存储位置存储的测试数据写入所述内存120,或者,将从所述内存120中读取的测试数据装载到所述第三存储位置143;
所述处理器110,用于对所述测试单元140写入或读取的测试数据进行校验。
在本发明的一个可选实施例中,通过处理器110对所述测试单元进行配置,具体的包括:将测试所用的虚拟地址写入所述第一存储位置141;在测试写操作时将待写入所述内存120的测试数据写入所述第二存储位置142;以及在测试读操作时将测试数据写入所述内存120。
在本发明的一个具体实施例中,所述测试单元140所述测试单元,具体用于在测试时,向所述内存管理单元130的映射查找表TLB查找所述第一存储位置141中存储的虚拟地址对应的页表,并利用所述TLB返回的页表将所述虚拟地址转换为物理地址,根据所述物理地址,将所述第二存储位置142存储的测试数据写入所述内存;或者,将从所述内存中读取的测试数据装载到所述第三存储位置143。
即,本实施例中,通过内存管理单元130可以实现页表的查询,进而实现了对内存的写入和读取。为了更清楚的阐述本发明实施例,下面结合内存管理单元130的基本工作原理,对其可以实现页表查询的方案进行说明。
如图2所示,介绍了本发明实施例中MMU中的实现方案。MMU的基本工作原理是:在设备发出带有虚拟地址的访问内存命令后,MMU的地址映射单元对TLB查找对应的页表是否存在,如果结果命中(hit),利用返回的页表将地址映射成物理地址后,将命令送往总线和内存。如果结果缺失(miss),则启动PTW(Page table walk)从内存取回页表返回,并装载到TLB中去。TLB用来缓存最近使用过的页表,避免每次都启动PTW操作,从而减少延迟。所以,本发明实施例中,通过访问内存管理单元130可以查询到对应虚拟地址的页表。
在本发明的一个具体实施例中,处理器110通过直接对内存进行读写操作获取参考数据,从而实现对测试单元的读写数据进行校验,具体的:
处理器110,从所述内存120中直接读取数据,将从所述内存120中读取的数据与所述测试单元140写入所述内存的测试数据进行比较,以对所述测试单元140写入的数据进行校验;或者,将所述处理器110直接写入内存120的测试数据与所述测试单元140从所述内存120中读出的测试数据进行比较,以对所述测试单元140读出的数据进行校验。
本发明实施例中,处理器110一般是通用处理器,例如中央处理器(CentralProcessing Unit,CPU)。
本发明实施例中,测试单元140可以配置在内存管理单元130中。
综上可知,本发明实施例所述方案通过对测试用虚拟地址完成到内存的读操作或写操作,并由处理器进行数据校验,可以检查驱动建立页表时,页表内容的正确性。该方案不仅可以用于内存管理单元驱动的测试,在操作系统上运行出错后,对怀疑有问题的地址尝试用这种方式进行复现,帮助调式,提高了开发效率。
在本发明第二实施例中,提供一种内存管理功能的测试系统,如图3所示,该系统包括:处理器210、内存220和内存管理单元230和测试单元240;其中:测试单元240,包括:地址寄存器241、第一数据寄存器242、第二数据寄存器243、控制/状态寄存器244和测试功能控制单元245;其中:
地址寄存器241,用于存储虚拟地址;
第一数据寄存器242,用于对测试写操作的测试数据进行存储;
第二数据寄存器243,用于对测试读操作时读取到的测试数据进行存储;
控制/状态寄存器244,用于配置测试的读写属性、以及开始/结束的状态;
测试功能控制单元245,用于在测试时,基于所述第一数据寄存器241中存储的虚拟地址,访问所述内存管理单元230,并根据所述控制/状态寄存器244配置的读写属性实现将所述第一数据寄存器242存储的测试数据写入所述内存220,或者,将从所述内存220中读取的测试数据装载到所述第二数据寄存器243。更为具体的,若配置的读写属性为“写”属性,则将所述第一数据寄存器242存储的测试数据写入所述内存220;若配置的读写属性为“读”属性,则将从所述内存220中读取的测试数据装载到所述第二数据寄存器243。
处理器210,用于对所述测试功能控制单元245写入或读取的测试数据进行校验。
本发明实施例中,读写操作的测试过程还可以共用数据寄存器,此时,第一数据寄存器242和第二数据寄存器243为同一寄存器。
本发明实施例中,处理器210根据控制/状态寄存器245中记录的测试状态,确定当前是否已经完成数据写入或者已经完成数据读取,当确定已经完成数据写入时,对所述测试功能控制单元242写入的测试数据进行校验;当确定已经完成数据读取时,对所述测试功能控制单元243读取的测试数据进行校验。
本发明实施例中上述各单元的具体实施过程可参见第一实施例,本实施例不再赘述。
综上可知,本发明实施例所述方案通过对测试用虚拟地址完成到内存的读操作或写操作,并由处理器进行数据校验,可以检查驱动建立页表时,页表内容的正确性。该方案不仅可以用于内存管理单元驱动的测试,在操作系统上运行出错后,对怀疑有问题的地址尝试用这种方式进行复现,帮助调式,提高了开发效率。
在本发明第三实施例中,提供一种内存管理功能的测试系统,本实施例借用MMU里面的TLB(Translation Lookaside Buffer,映射查找表)完成虚拟地址(Virtual Address,VA)到物理地址(Physical Address,PA)的映射,通过软件配置寄存器的方式对测试用虚拟地址完成到内存的读操作或写操作。该虚拟地址对应的物理地址可以根据页表内容由软件计算出,CPU利用物理地址直接对内存进行读或写操作,然后进行数据的比对看是否正确,这样可以检查驱动建立页表时,页表内容的正确性。上面方案不仅可以用于MMU驱动的测试,在操作系统上运行出错后,对怀疑有问题的地址尝试用这种方式进行复现,帮助调式。
具体的,本发明实施例所述系统的结构示意图如图4所示,本实施例为测试功能增加几个能被CPU读写操作的寄存器,它们主要是测试用地址寄存器,数据寄存器,控制/状态寄存器。地址寄存器存放目标虚拟地址,当目标操作为写操作时,将操作数(写数据)写入数据寄存器,当目标操作为读操作时,将操作数(读数据)从数据寄存器中读出来,读写可以用分开的数据寄存器,也可以共用数据寄存器。控制/状态寄存器用来配置目标操作的读写属性、开始、以及表明该读写操作结束。
本实施例中,当CPU配置好上述寄存器并使能测试后,测试功能控制单元会向TLB查找地址寄存器里虚拟地址对应的页表,等到页表返回后将虚拟地址映射成物理地址,然后根据读写属性和物理地址进行对内存的访问,如果为写操作,则将数据寄存器里的写操作数写入对应内存的buffer单元,如果是读操作,则将内存buffer里的内容读回并装载到数据寄存器里。
下面对MMU写测试和读测试的流程进行详细说明。
如图5所示,示出了进行MMU写测试的流程,具体包括如下步骤:
步骤1,CPU将测试用虚拟地址写入MMU的地址寄存器;
步骤2,CPU将写数据写入MMU的数据寄存器;
步骤3,CPU配置MMU的控制/状态寄存器为“写”模式,并使能测试功能;
步骤4,测试功能控制单元查询MMU的TLB;
步骤5,测试功能控制单元判断TLB是否返回页表,若是,执行步骤6,否则,继续等待;
步骤6,测试功能控制单元利用页表将VA转PA;
步骤7,测试功能控制单元按照PA将写数据写往内存;
步骤8,CPU读取MMU的控制/状态寄存器判断写操作是否完成;若是,执行步骤9,否则,继续等待;
步骤9,CPU根据计算出的物理地址直接从内存读数据;
步骤10,CPU对比读出的数据与写数据是否一致,若是,则测试通过;否则,测试未通过。
如图6所示,示出了进行MMU读测试的流程,具体包括如下步骤:
步骤1,CPU将测试用虚拟地址写入MMU的地址寄存器;
步骤2,CPU计算物理地址,并将写数据直接写入内存;
步骤3,CPU配置MMU的控制/状态寄存器为“读”模式,并使能测试功能;
步骤4,测试功能控制单元查询MMU的TLB;
步骤5,测试功能控制单元判断TLB是否返回页表,若是,则执行步骤6,否则继续等待;
步骤6,测试功能控制单元利用页表将VA转PA;
步骤7,测试功能控制单元按照PA将数据从内存读回并装载进数据寄存器;
步骤8,CPU读取MMU内的控制/状态寄存器判断读操作是否完成,若是,则执行步骤9,否则继续等待;
步骤9,CPU读取MMU的数据寄存器;
步骤10,CPU对比写数据与MMU读数据是否一致,若一致,则测试通过,否则,测试未通过。
综上,使用本发明实施例的测试功能可以帮助测试开发中的驱动是否能正确建立页表,在系统运行过程中出现问题后可以帮助快速定位,减少调试的难度和缩短软件开发周期。
在本发明第四实施例中,提供一种内存管理功能的测试方法,如图7所示,包括以下步骤:
步骤S601,在测试时,基于第一存储位置中存储的虚拟地址,访问内存管理单元,实现将第二存储位置中存储的测试数据写入内存,或者,将从所述内存中读取的测试数据装载到第三存储位置;
步骤S602,通过处理器对写入所述内存或从所述内存中读取的测试数据进行校验。
在本发明的一个具体实施例中,在测试时,具体包括:
基于所述第一存储位置中存储的虚拟地址,访问所述内存管理单元,并根据配置的读写属性实现将所述第二存储位置存储的测试数据写入所述内存,或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
在本发明的一个具体实施例中,在测试时,具体包括:
向所述内存管理单元的TLB查找所述第一存储位置中存储的虚拟地址对应的页表,并利用所述TLB返回的页表将所述虚拟地址转换为物理地址,根据所述物理地址,将所述第二存储位置存储的测试数据写入所述内存;或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
在本发明的一个具体实施例中,所述通过处理器对写入所述内存或从所述内存中读取的测试数据进行校验,具体包括:
通过处理器从所述内存中直接读取数据,将从所述内存中读取的数据与所述写入所述内存的测试数据进行比较,以对写入内存的测试数据进行校验;
或者,通过处理器将所述处理器直接写入内存的测试数据与所述从内存中读取的测试数据进行比较,以对从内存中读出的测试数据进行校验。
本发明实施例的具体实施过程可参照第一、二实施例,本实施例在此不再赘述。
综上可知,本发明实施例所述方法通过对测试用虚拟地址完成到内存的读操作或写操作,并由处理器进行数据校验,可以检查驱动建立页表时,页表内容的正确性。该方案不仅可以用于内存管理单元驱动的测试,在操作系统上运行出错后,对怀疑有问题的地址尝试用这种方式进行复现,帮助调式,提高了开发效率。
在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种内存管理功能的测试系统,包括:处理器、内存和内存管理单元,其特征在于,还包括:测试单元;
所述测试单元,包括:用于存储虚拟地址的第一存储位置、用于存储测试数据的第二存储位置和第三存储位置;
所述测试单元,用于在测试时,基于所述第一存储位置中存储的虚拟地址,访问所述内存管理单元,实现将所述第二存储位置存储的测试数据写入所述内存,或者,将从所述内存中读取的测试数据装载到所述第三存储位置;
所述处理器,用于对所述测试单元写入或读取的测试数据进行校验。
2.如权利要求1所述的方法,其特征在于,
所述第一存储位置为:地址寄存器;
所述第二存储位置为:第一数据寄存器;
所述第三存储位置为:第二数据寄存器。
3.如权利要求2所述的方法,其特征在于,所述第一数据寄存器和第二数据寄存器为同一寄存器。
4.如权利要求1所述的方法,其特征在于,所述测试单元,还包括:
控制/状态寄存器,用于配置测试的读写属性、以及开始/结束的状态。
5.如权利要求4所述的方法,其特征在于,所述测试单元,还包括:
测试功能控制单元,用于在测试时,基于所述第一存储位置中存储的虚拟地址,访问所述内存管理单元,并根据所述控制/状态寄存器配置的读写属性实现将所述第二存储位置存储的测试数据写入所述内存,或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
6.如权利要求1所述的方法,其特征在于,
所述处理器,还用于将测试所用的虚拟地址写入所述第一存储位置;在测试写操作时将待写入所述内存的测试数据写入所述第二存储位置;以及在测试读操作时将测试数据写入所述内存。
7.如权利要求1至6中任意一项所述的方法,其特征在于,所述测试单元,具体用于在测试时,向所述内存管理单元的映射查找表TLB查找所述第一存储位置中存储的虚拟地址对应的页表,并利用所述TLB返回的页表将所述虚拟地址转换为物理地址,根据所述物理地址,将所述第二存储位置存储的测试数据写入所述内存;或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
8.如权利要求1至6中任意一项所述的方法,其特征在于,所述处理器,具体用于:
从所述内存中直接读取数据,将从所述内存中读取的数据与所述测试单元写入所述内存的测试数据进行比较,以对所述测试单元写入的数据进行校验;
或者,将所述处理器直接写入内存的测试数据与所述测试单元从所述内存中读出的测试数据进行比较,以对所述测试单元读出的数据进行校验。
9.一种内存管理功能的测试方法,其特征在于,包括:
在测试时,基于第一存储位置中存储的虚拟地址,访问内存管理单元,实现将第二存储位置中存储的测试数据写入内存,或者,将从所述内存中读取的测试数据装载到第三存储位置;
通过处理器对写入所述内存或从所述内存中读取的测试数据进行校验。
10.如权利要求9所述的方法,其特征在于,在测试时,具体包括:
基于所述第一存储位置中存储的虚拟地址,访问所述内存管理单元,并根据配置的读写属性实现将所述第二存储位置存储的测试数据写入所述内存,或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
11.如权利要求9所述的方法,其特征在于,在测试时,具体包括:
向所述内存管理单元的TLB查找所述第一存储位置中存储的虚拟地址对应的页表,并利用所述TLB返回的页表将所述虚拟地址转换为物理地址,根据所述物理地址,将所述第二存储位置存储的测试数据写入所述内存;或者,将从所述内存中读取的测试数据装载到所述第三存储位置。
12.如权利要求9所述的方法,其特征在于,所述通过处理器对写入所述内存或从所述内存中读取的测试数据进行校验,具体包括:
通过处理器从所述内存中直接读取数据,将从所述内存中读取的数据与所述写入所述内存的测试数据进行比较,以对写入内存的测试数据进行校验;
或者,通过处理器将所述处理器直接写入内存的测试数据与所述从内存中读取的测试数据进行比较,以对从内存中读出的测试数据进行校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811318574.8A CN111159005B (zh) | 2018-11-07 | 2018-11-07 | 一种内存管理功能的测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811318574.8A CN111159005B (zh) | 2018-11-07 | 2018-11-07 | 一种内存管理功能的测试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159005A true CN111159005A (zh) | 2020-05-15 |
CN111159005B CN111159005B (zh) | 2024-03-29 |
Family
ID=70554998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811318574.8A Active CN111159005B (zh) | 2018-11-07 | 2018-11-07 | 一种内存管理功能的测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159005B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112270948A (zh) * | 2020-10-30 | 2021-01-26 | 皇虎测试科技(深圳)有限公司 | 支持DRAM x16颗粒的测试方法及装置、DRAM存储器的测试设备 |
CN113254322A (zh) * | 2021-06-07 | 2021-08-13 | 恒为科技(上海)股份有限公司 | 一种Stream系统极限吞吐性能评估方法及系统 |
CN114610557A (zh) * | 2022-05-11 | 2022-06-10 | 宏晶微电子科技股份有限公司 | 设备驱动单元的测试方法及装置 |
CN115114103A (zh) * | 2022-08-23 | 2022-09-27 | 摩尔线程智能科技(北京)有限责任公司 | 直接存储器访问数据传输的测试方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147757A (zh) * | 2010-02-08 | 2011-08-10 | 安凯(广州)微电子技术有限公司 | 一种测试装置和测试方法 |
US20120185668A1 (en) * | 2011-01-17 | 2012-07-19 | Samsung Electronics Co., Ltd. | Memory management unit and apparatuses having same |
CN102999663A (zh) * | 2012-11-19 | 2013-03-27 | 福州瑞芯微电子有限公司 | 一种soc芯片中的mmu的验证方法 |
CN103208314A (zh) * | 2013-03-04 | 2013-07-17 | 深圳市硅格半导体有限公司 | 嵌入式系统的内存测试方法及嵌入式系统 |
CN106560798A (zh) * | 2015-09-30 | 2017-04-12 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
CN107978338A (zh) * | 2016-10-21 | 2018-05-01 | 深圳市中兴微电子技术有限公司 | 一种测试信号产生方法及装置 |
-
2018
- 2018-11-07 CN CN201811318574.8A patent/CN111159005B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147757A (zh) * | 2010-02-08 | 2011-08-10 | 安凯(广州)微电子技术有限公司 | 一种测试装置和测试方法 |
US20120185668A1 (en) * | 2011-01-17 | 2012-07-19 | Samsung Electronics Co., Ltd. | Memory management unit and apparatuses having same |
CN102999663A (zh) * | 2012-11-19 | 2013-03-27 | 福州瑞芯微电子有限公司 | 一种soc芯片中的mmu的验证方法 |
CN103208314A (zh) * | 2013-03-04 | 2013-07-17 | 深圳市硅格半导体有限公司 | 嵌入式系统的内存测试方法及嵌入式系统 |
CN106560798A (zh) * | 2015-09-30 | 2017-04-12 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
CN107978338A (zh) * | 2016-10-21 | 2018-05-01 | 深圳市中兴微电子技术有限公司 | 一种测试信号产生方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112270948A (zh) * | 2020-10-30 | 2021-01-26 | 皇虎测试科技(深圳)有限公司 | 支持DRAM x16颗粒的测试方法及装置、DRAM存储器的测试设备 |
CN112270948B (zh) * | 2020-10-30 | 2021-12-28 | 皇虎测试科技(深圳)有限公司 | 支持DRAM x16颗粒的测试方法及装置、DRAM存储器的测试设备 |
CN113254322A (zh) * | 2021-06-07 | 2021-08-13 | 恒为科技(上海)股份有限公司 | 一种Stream系统极限吞吐性能评估方法及系统 |
CN113254322B (zh) * | 2021-06-07 | 2023-03-21 | 恒为科技(上海)股份有限公司 | 一种Stream系统极限吞吐性能评估方法及系统 |
CN114610557A (zh) * | 2022-05-11 | 2022-06-10 | 宏晶微电子科技股份有限公司 | 设备驱动单元的测试方法及装置 |
CN114610557B (zh) * | 2022-05-11 | 2022-08-26 | 宏晶微电子科技股份有限公司 | 设备驱动单元的测试方法及装置 |
CN115114103A (zh) * | 2022-08-23 | 2022-09-27 | 摩尔线程智能科技(北京)有限责任公司 | 直接存储器访问数据传输的测试方法和装置 |
CN115114103B (zh) * | 2022-08-23 | 2023-01-06 | 摩尔线程智能科技(北京)有限责任公司 | 直接存储器访问数据传输的测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111159005B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159005B (zh) | 一种内存管理功能的测试方法和系统 | |
US8261130B2 (en) | Program code trace signature | |
US7150006B2 (en) | Techniques for managed code debugging | |
KR101019209B1 (ko) | 임베디드 소프트웨어의 인터페이스 자동 추출 장치 및 그방법 | |
US7711914B2 (en) | Debugging using virtual watchpoints | |
Rubanov et al. | Runtime verification of linux kernel modules based on call interception | |
US8832684B2 (en) | Methods for improving atomicity of runtime inspections | |
US20080270842A1 (en) | Computer operating system handling of severe hardware errors | |
US20020170034A1 (en) | Method for debugging a dynamic program compiler, interpreter, or optimizer | |
EP3769222B1 (en) | Testing kernel mode computer code by executing the computer code in user mode | |
KR20140013005A (ko) | 단일 스텝 실행을 이용한 코드 진단 | |
US9176821B2 (en) | Watchpoint support system for functional simulator | |
US20070006042A1 (en) | Software debug support for cache flush with access to external data location(s) through debug port | |
TWI437428B (zh) | 主機資料處理設備內之裝置模擬支援 | |
TWI410978B (zh) | 用於整合之資料之完整性查證之系統與其方法 | |
US9069900B2 (en) | Method for determining whether a machine code instruction of a machine code program is executed in the machine code program | |
CN110955566B (zh) | 侦错方法 | |
US9383935B1 (en) | Secondary CPU MMU initialization using page fault exception | |
US7350109B2 (en) | System and method for testing a memory using DMA | |
CN115114103A (zh) | 直接存储器访问数据传输的测试方法和装置 | |
US20100017183A1 (en) | Multiprocessor Development Environment | |
US20050050276A1 (en) | System and method for testing a memory | |
CN112470134B (zh) | 数据处理装置和数据处理方法 | |
CN107291423B (zh) | 构建运行环境的方法和装置 | |
US9251093B2 (en) | Managing the translation look-aside buffer (TLB) of an emulated machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |