一种页表创建方法、处理器验证方法、装置及电子设备

著录项
  • CN202211634958.7
  • 20221219
  • CN115878502A
  • 20230331
  • 成都海光集成电路设计有限公司
  • 杨振;吴敌;陈玉龙;张攀勇
  • G06F12/02
  • G06F12/02 G06F12/1009 G06F9/50

  • 四川省成都市高新区和乐二街171号3栋
  • 四川(51)
  • 北京市广友专利事务所有限责任公司
  • 张仲波
摘要
本申请的实施例公开了一种页表创建方法、处理器验证方法、装置及电子设备,涉及处理器验证技术领域,为便于提高处理器验证效率而发明。所述方法,包括:根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围;根据所述虚拟地址范围,为各级页表申请所需要的地址空间;初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位。本申请适用于对处理器进行验证。
权利要求

1.一种页表创建方法,其特征在于,包括:

根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围;

根据所述虚拟地址范围,为各级页表申请所需要的地址空间;

初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位。

2.根据权利要求1所述的方法,其特征在于,初始化后的各级页表用于验证处理器;在为各级页表申请所需要的地址空间之前,所述方法还包括:

选择分页模式和页面大小;

根据待验证处理器的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

3.根据权利要求2所述的方法,其特征在于,所述选择分页模式,包括:

根据所述内核运行模式,选择分页模式。

4.根据权利要求2所述的方法,其特征在于,所述内核运行模式,包括:经典运行模式或长运行模式。

5.一种处理器验证方法,其特征在于,应用于处理器验证系统,所述验证方法包括:

确定所述验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围;

根据所述虚拟地址范围,为各级页表申请所需要的地址空间;

初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位;

将第一级页表的基地址更新到CR3控制寄存器中,并使能分页机制;

根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据所述数据对所述处理器进行验证。

6.根据权利要求5所述的方法,其特征在于,在为各级页表申请所需要的地址空间之前,所述方法还包括:

确定所述验证系统所要开启的分页模式和页面大小;

根据所述验证系统启动进入的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

7.一种页表创建装置,其特征在于,包括:

第一确定模块,用于根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围;

第一申请模块,用于根据所述虚拟地址范围,为各级页表申请所需要的地址空间;

第一初始化模块,用于初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:

选择模块,用于在所述第一申请模块为各级页表申请所需要的地址空间之前,选择分页模式和页面大小;

第二确定模块,用于根据所述处理器的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

9.一种处理器验证装置,其特征在于,应用于处理器验证系统,所述验证装置包括:

第三确定模块,用于确定所述验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围;

第二申请模块,用于根据所述虚拟地址范围,为各级页表申请所需要的地址空间;

第二初始化模块,用于初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位;

更新模块,用于将第一级页表的基地址更新到CR3控制寄存器中,并使能分页机制;

验证模块,用于根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据所述数据对所述处理器进行验证。

10.根据权利要求9所述的装置,其特征在于,所述装置还包括:

第四确定模块,用于在所述第二申请模块为各级页表申请所需要的地址空间之前,确定所述验证系统所要开启的分页模式和页面大小;

第五确定模块,用于根据所述验证系统启动进入的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

11.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-4任一项所述的页表创建方法或前述权利要求5-6任一项所述的处理器验证方法。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述权利要求1-4任一项所述的页表创建方法或前述权利要求5-6任一项所述的处理器验证方法。

说明书
技术领域

本申请涉及处理器验证技术领域,尤其涉及一种页表创建方法、处理器验证方法、装置、电子设备及可读存储介质。

分页机制在处理器中具有重要的地位。在处理器开启分页机制之前,需要系统初始化相应的页表,通常是动态分配一段内存空间用于存放页表,通过该页表能够将虚拟地址转换为物理地址。在对处理器进行验证过程中会产生大量地缺页异常,验证会被中断而进入缺页异常处理服务程序中需要分配所需要的页表,而这些异常处理服务程序会大大降低处理器的验证效率。

有鉴于此,本申请实施例提供一种页表创建方法、处理器验证方法、装置、电子设备及可读存储介质,便于提高处理器验证效率。

第一方面,本申请实施例提供一种页表创建方法,包括:根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围;根据所述虚拟地址范围,为各级页表申请所需要的地址空间;初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位。

根据本申请实施例的一种具体实现方式,初始化后的各级页表用于验证处理器;在为各级页表申请所需要的地址空间之前,所述方法还包括:选择分页模式和页面大小;根据待验证处理器的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

根据本申请实施例的一种具体实现方式,所述选择分页模式,包括:根据内核运行模式,选择分页模式。

根据本申请实施例的一种具体实现方式,所述选择页面大小,包括:选择页面大小为4K,2M或1G。

根据本申请实施例的一种具体实现方式,所述内核运行模式,包括:经典运行模式或长运行模式。

第二方面,本申请实施例提供一种处理器验证方法,其特征在于,应用于处理器验证系统,所述验证方法包括:确定所述验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围;根据所述虚拟地址范围,为各级页表申请所需要的地址空间;初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位;将第一级页表的基地址更新到CR3控制寄存器中,并使能分页机制;根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据所述数据对所述处理器进行验证。

根据本申请实施例的一种具体实现方式,在为各级页表申请所需要的地址空间之前,所述方法还包括:确定所述验证系统所要开启的分页模式和页面大小;根据所述验证系统启动进入的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

第三方面,本申请实施例提供页表创建装置,包括:第一确定模块,用于根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围;第一申请模块,用于根据所述虚拟地址范围,为各级页表申请所需要的地址空间;第一初始化模块,用于初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位。

根据本申请实施例的一种具体实现方式,所述装置还包括:选择模块,用于在所述第一申请模块为各级页表申请所需要的地址空间之前,选择分页模式和页面大小;第二确定模块,用于根据所述处理器的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

根据本申请实施例的一种具体实现方式,所述选择模块,具体用于:根据内核运行模式,选择分页模式。

根据本申请实施例的一种具体实现方式,所述选择模块,具体用于:选择页面大小为4K,2M或1G。

根据本申请实施例的一种具体实现方式,所述内核运行模式,包括:经典运行模式或长运行模式。

第四方面,本申请实施例提供处理器验证装置,应用于处理器验证系统,所述验证装置包括:第三确定模块,用于确定所述验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围;第二申请模块,用于根据所述虚拟地址范围,为各级页表申请所需要的地址空间;第二初始化模块,用于初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位;更新模块,用于将第一级页表的基地址更新到CR3控制寄存器中,并使能分页机制;验证模块,用于根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据所述数据对所述处理器进行验证。

根据本申请实施例的一种具体实现方式,所述装置还包括:第四确定模块,用于在所述第二申请模块为各级页表申请所需要的地址空间之前,确定所述验证系统所要开启的分页模式和页面大小;第五确定模块,用于根据所述验证系统启动进入的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

第五方面,本申请实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的页表创建方法或所述的处理器验证方法。

第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的页表创建方法或所述的处理器验证方法。

本实施例的页表创建方法、处理器验证方法、装置、电子设备及可读存储介质,根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围,确定所要转换的虚拟地址范围,根据虚拟地址范围,为各级页表申请所需要的地址空间,初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中,其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请一实施例提供的页表创建方法的流程示意图;

图2为本申请一具体实施例提供的页表创建方法的流程示意图;

图3为本申请一具体实施例提供的虚拟地址转换为物理地址的示意图;

图4为处理器执行代码的流程图;

图5为本申请一实施例提供的处理器验证方法的流程示意图;

图6为本申请一具体实施例提供的处理器验证方法的流程示意图;

图7为本申请一实施例提供的页表创建装置的结构示意图;

图8为本申请一实施例提供的处理器验证装置的结构示意图;

图9为本申请一实施例提供的电子设备的结构示意图。

下面结合附图对本申请实施例进行详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

为使本领域技术人员更好地理解本申请实施例的技术构思、实施方案和有益效果,下面通过具体实施例进行详细说明。

本申请一实施例提供的一种页表创建方法,便于提高处理器验证效率。

图1为本申请一实施例提供的页表创建方法的流程示意图,如图1所示,本实施例的页表创建方法,可以包括:

S101、根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围。

如内核所访问的最大地址为0xFFFFFFFF,可以确定所要转换的虚拟地址范围为0x0-0xFFFFFFFF,可以对该范围内的地址内的所有页面生成页表。

根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围,再利用该范围,初始化各级页表。

S102、根据虚拟地址范围,为各级页表申请所需要的地址空间。

根据虚拟地址范围,可以向操作系统申请各级页表所需要的内存地址空间。由于各级页表存在物理内存中,所以需要向操作系统申请,为各级页表预留足够的内存空间。

S103、初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中。

在为各级页表申请所需要的地址空间的过程中,即可确定各级页表的基地址,这样,在初始化各级页表的过程中,可以将下一级页表的基地址填入上一级页表的页表项中,如可以将第二级页表的基地址填入第一级页表的页表项中。

本实施例中,虚拟地址的高位为虚拟地址中除页内偏移位之外的比特位。

由于最后一级页表的页表项中,存储的是物理地址的基地址,由该基地址结合虚拟地址中的页内偏移的比特位,能够得到虚拟地址对应的物理地址,而本实施例中的最后一级页表项中存储的是虚拟地址中除页内偏移位之外的比特位,这样,物理地址可以根据虚拟地址中除页内偏移位之外的比特位和页内偏移位确定,即得到的物理地址等于虚拟地址。

本实施例,根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围,根据虚拟地址范围,为各级页表申请所需要的地址空间,初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中,其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位,由于最后一级页表的页表项中,存储的是物理地址的基地址,并且根据该基地址结合虚拟地址中的页内偏移的比特位,能够得到虚拟地址对应的物理地址,而本实施例中的最后一级页表项中存储的是虚拟地址中除页内偏移位之外的比特位,这样,物理地址可以根据虚拟地址中除页内偏移位之外的比特位和页内偏移位确定,即得到的物理地址等于虚拟地址,而虚拟地址范围是根据预设的测试代码所需的最大访问内存地址确定的,这样,在使用初始化的页表对处理器进行验证时,不会产生缺页,提高处理器验证效率,避免了测试代码运行过程中产生大量地缺页异常而被中断进入缺页异常处理服务程序中而导致的降低处理器的运行效率的问题,此外,使用本实施例的页表进行处理器验证代码的开发编译过程中,可以仅以物理地址或虚拟地址为准进行,这样,能够降低处理器验证代码的开发编译复杂度,提高处理器验证代码的开发编译的效率。

在一些例子中,在初始化各级页表之后,可以将第一级页表的基地址更新到控制寄存器CR3中,以便使能分页模式;还可以配置各级页表的页表项的属性如读/写属性。

本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例中,初始化后的各级页表用于验证处理器;在为各级页表申请所需要的地址空间之前,所述方法还包括:

S104、选择分页模式和页面大小。

分页模式为内核分页模式,其中,内核为处理器的内核。分页模式可以包括页表地址扩展模式(PAE,Page Address Extension)和非页表地址扩展模式(Non PAE),在一些例子中,根据内核运行模式,选择分页模式。内核运行模式可以包括32位的经典运行模式或者64位的长运行模式,经典运行模式下,分页模式可为Non PAE,长运行模式下,分页模式可为PAE。

页面大小包括4K,2M或1G,页面大小影响页表转换所需要的页表级数。

S105、根据待验证处理器的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

在一些例子中,内核运行模式可以包括经典运行模式(Legacy mode)或长运行模式(Long mode)。

本实施例的内核运行模式、分页模式和页面大小影响页表级数。

预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,在确定内核运行模式、分页模式和页面大小的情况下,可以根据映射关系,确定页表转换级数。

下面以一具体实施例,对本申请的方案进行详细说明。

参见图2,本实施例的页表创建方法,可以包括:

S11、选择内核的分页模式和页表大小。

选择内核的分页模式包括Non PAE或PAE,页表大小为4K、2M或1G。

Non PAE模式使用的页表项为32Bit,而PAE模式使用的页表项为64Bit;页表大小会决定页表转换所需要的页表项级数。

S12、根据内核运行模式,分页模式和页表大小确定页表的级数。

例如内核运行在32Bit Legacy mode下,选择使用PAE分页和4K页表大小,则需要3级页表(PDPE,PDE,PTE)。

S13、确定内核所访问的最大内存地址,以确定所需要转换的虚拟地址范围。

例如内核所访问的最大地址为0xFFFFFFFF,这里需要将虚拟地址范围为0x0-0xFFFFFFFF的所有页面均生成对应的页表。

S14、申请各级页表所需的内存地址空间。

由于各级页表都是存在物理内存中,所以需要为各级页表预留足够的内存空间。

S15、初始化各级页表。

这里需要将第一级页表项填写第二级页表的基地址,第二级页表项填写第三级页表的基地址,第三级页表项需要填写本页虚拟地址的高位。最后需要填写各级页表的属性配置。

S16、更新到CR3寄存器,并使能分页机制。

将第一级页表的基地址更新到CR3寄存器,内核可以使能分页机制。

参见3,内核选择使用4K大小的分页模式为PAE的分页机制,对于一个32位的虚拟地址,只需要将高20Bit地址根据页表来转换,低12Bit作为页内偏移,不做转换。将虚拟地址0x12345678映射到物理地址0x12345678。

本实施例,在处理器系统启动分页机制之前,初始化页表,可以将系统访问到的最大虚拟地址所包含的页面全部换为其相等的物理地址,这样就可以保证验证用例(case)以物理地址编译运行,同时也可以启动处理器分页机制。而且在系统运行过程中不会产生缺页异常,提高处理器执行效率。

参见图4,处理器在启动分页机制后,所有的访问的内存地址都是虚拟地址,经过内存管理单元的页表转换为物理地址,从内存模块获取指令或者数据,进入验证处理器的程序。

本申请一实施例提供的一种处理器验证方法,能够提高处理器验证效率。

参见图5,本申请一实施例提供的处理器验证方法,应用于处理器验证系统,本实施例的验证方法可以包括:

S201、确定验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围。

如内核所访问的最大地址为0xFFFFFFFF,可以确定所要转换的虚拟地址范围为0x0-0xFFFFFFFF,可以对该范围内的地址内的所有页面生成页表。

根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围,再利用该范围,初始化各级页表,这样,预设的测试代码在运行过程中,不会产生缺页异常,提升执行效率,避免了测试代码运行过程中产生大量地缺页异常而被中断进入缺页异常处理服务程序中而导致的降低处理器的运行效率的问题。

S202、根据虚拟地址范围,为各级页表申请所需要的地址空间。

根据虚拟地址范围,可以向操作系统申请各级页表所需要的内存地址空间。由于各级页表存在物理内存中,所以需要向操作系统申请,为各级页表预留足够的内存空间。

S203、初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中。

在为各级页表申请所需要的地址空间的过程中,即可确定各级页表的基地址,这样,在初始化各级页表的过程中,可以将下一级页表的基地址填入上一级页表的页表项中,如可以将第二级页表的基地址填入第一级页表的页表项中。

本实施例中,虚拟地址的高位为虚拟地址中除页内偏移位之外的比特位。

由于最后一级页表的页表项中,存储的是物理地址的基地址,由该基地址结合虚拟地址中的页内偏移的比特位,能够得到虚拟地址对应的物理地址,而本实施例中的最后一级页表项中存储的是虚拟地址中除页内偏移位之外的比特位,这样,物理地址可以根据虚拟地址中除页内偏移位之外的比特位和页内偏移位确定,即得到的物理地址等于虚拟地址。

S204、将第一级页表的基地址更新到CR3控制寄存器中,并使能分页机制。

第一级页表为初始化页表的第一级页表。

S205、根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据数据对所述处理器进行验证。

CR3控制寄存器中的值为第一级页表的基地址。

在运行测试代码的过程中,可以通过初始化的页表,从内存中读取数据或者向内存中写入数据,本实施例中,在测试代码运行时,根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,可以向内存中写入数据或者从内存中读取数据,根据写入和/或读取的数据,对处理器进行验证。

本实施例,确定验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围,根据虚拟地址范围,为各级页表申请所需要的地址空间,初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中,其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位,由于最后一级页表的页表项中,存储的是物理地址的基地址,并且根据该基地址结合虚拟地址中的页内偏移的比特位,能够得到虚拟地址对应的物理地址,而本实施例中的最后一级页表项中存储的是虚拟地址中除页内偏移位之外的比特位,这样,物理地址可以根据虚拟地址中除页内偏移位之外的比特位和页内偏移位确定,即得到的物理地址等于虚拟地址,而虚拟地址范围是根据预设的测试代码所需的最大访问内存地址确定的,这样,根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据所述数据对所述处理器进行验证时,不会产生缺页,提高处理器验证效率,避免了测试代码运行过程中产生大量地缺页异常而被中断进入缺页异常处理服务程序中而导致的降低处理器的运行效率的问题,此外,使用本实施例的页表进行处理器验证代码的开发编译过程中,可以仅以物理地址或虚拟地址为准进行,这样,能够降低处理器验证代码的开发编译复杂度,提高处理器验证代码的开发编译的效率,进一步,能够提高处理器验证效率。

本申请又一实施例,与上述实施例基本相同,不同之处在于,在为各级页表申请所需要的地址空间之前,本实施例的方法还可以包括:

S206、确定验证系统所要开启的分页模式和页面大小。

分页模式为内核分页模式,其中,内核为处理器的内核。分页模式可以包括NonPAE or PAE,在一些例子中,Non PAE模式使用的页表项为32Bit,而PAE模式使用的页表项为64Bit。

页面大小包括4K,2M或1G,页面大小影响页表转换所需要的页表级数。

S207、根据验证系统启动进入的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

在一些例子中,内核运行模式可以包括Legacy mode或Long mode。

本实施例的内核运行模式、分页模式和页面大小影响页表级数。

预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,在确定内核运行模式、分页模式和页面大小的情况下,可以根据映射关系,确定页表转换级数。

参见图6,下面介绍一种页表初始化的方法在验证系统中的实施例,具体执行流程如下:

S21、选择系统内核分页模式和页面大小。

X86处理器验证系统在启动初始化时,选择系统内核所要开启的分页模式和页面大小,并配置相应寄存器。

S22、确定页表转换的级数。

根据X86处理器验证系统启动进入的运行模式、分页模式和页面大小,来确定页表转换的级数。

S23、申请各级页表所需要的物理地址空间。

申请各级页表所需要的物理地址空间、确保这些物理地址空间不被占用。

S24、确定验证系统中最大访问内存地址,确定转换的虚拟地址范围。

S25、初始化各级页表。

按照特定规则初始化各项页表项值,上级页表填写下级页表的基地址,最后一级页表徐填写其虚拟地址的高位,确保虚拟地址等于物理地址,并配置各级页表属性,最后生成页表。

S26、更新CR3控制寄存器,并使能分页。

更新页表基地址,即CR3控制寄存器。使能分页机制。

S27、回归验证case。

回归处理器验证测试用例(case)。

回归测试Case数量比较大,随机性比较强的情况下,使用本实例的页表,仍然可以保证整个回归测试中不会产生缺页异常,有效提高验证效率。

处理器验证过程中需要回归测试大量的验证Case,当启动处理器分页机制后,由于验证Case中的数据和指令存放的内存位置具有一定的随机性,所以现有技术中,处理器在执行大量的验证Case时会可能会产生大量缺页异常,并且在缺页异常处理程序中需要分配所需要的页表,而缺页异常服务程序并不是验证处理器Case的内容,属于无效验证代码,而且频繁的进入缺页异常服务函数里,会降低处理器验证效率。

本实施例中,在处理器验证系统中初始化页表,将系统访问到的最大虚拟地址所包含的页面全部换为其相等的物理地址,这样就可以保证验证Case以物理地址编译运行,同时在系统运行过程中不会产生缺页异常,提高处理器验证效率。

本申请一实施例提供的一种页表创建装置,便于提高处理器验证效率。

图7为本申请一实施例提供的页表创建装置的结构示意图,如图7所示,本实施例的页表创建装置,可以包括:第一确定模块11,用于根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围;第一申请模块12,用于根据所述虚拟地址范围,为各级页表申请所需要的地址空间;第一初始化模块13,用于初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本实施例的装置,根据预设的测试代码所需的最大访问内存地址,确定所要转换的虚拟地址范围,根据虚拟地址范围,为各级页表申请所需要的地址空间,初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中,其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位,由于最后一级页表的页表项中,存储的是物理地址的基地址,并且根据该基地址结合虚拟地址中的页内偏移的比特位,能够得到虚拟地址对应的物理地址,而本实施例中的最后一级页表项中存储的是虚拟地址中除页内偏移位之外的比特位,这样,物理地址可以根据虚拟地址中除页内偏移位之外的比特位和页内偏移位确定,即得到的物理地址等于虚拟地址,而虚拟地址范围是根据预设的测试代码所需的最大访问内存地址确定的,这样,在使用初始化的页表对处理器进行验证时,不会产生缺页,提高处理器验证效率,避免了测试代码运行过程中产生大量地缺页异常而被中断进入缺页异常处理服务程序中而导致的降低处理器的运行效率的问题,此外,使用本实施例的页表进行处理器验证代码的开发编译过程中,可以仅以物理地址或虚拟地址为准进行,这样,能够降低处理器验证代码的开发编译复杂度,提高处理器验证代码的开发编译的效率。

作为一可选实施方式,所述装置还包括:选择模块,用于在所述第一申请模块为各级页表申请所需要的地址空间之前,选择分页模式和页面大小;第二确定模块,用于根据所述处理器的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

作为一可选实施方式,所述选择模块,具体用于:根据内核运行模式,选择分页模式。

作为一可选实施方式,所述选择模块,具体用于:选择页面大小为4K,2M或1G。

作为一可选实施方式,所述内核运行模式,包括:经典运行模式或长运行模式。

上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本申请一实施例提供的一种处理器验证装置,能够提高处理器验证效率。

图8为本申请一实施例提供的处理器验证装置的结构示意图,如图8所示,本实施例的处理器验证装置,应用于处理器验证系统,所述验证装置可以包括:第三确定模块21,用于确定所述验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围;第二申请模块22,用于根据所述虚拟地址范围,为各级页表申请所需要的地址空间;第二初始化模块23,用于初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中;其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位;更新模块24,用于将第一级页表的基地址更新到CR3控制寄存器中,并使能分页机制;验证模块25,用于根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据所述数据对所述处理器进行验证。

本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本实施例,确定验证系统的最大访问内存地址,以确定所要转换的虚拟地址范围,根据虚拟地址范围,为各级页表申请所需要的地址空间,初始化各级页表,以将下一级页表的基地址填入上一级页表的页表项中,将虚拟地址的高位填入最后一级页表的页表项中,其中,所述虚拟地址的高位为所述虚拟地址中除页内偏移位之外的比特位,由于最后一级页表的页表项中,存储的是物理地址的基地址,并且根据该基地址结合虚拟地址中的页内偏移的比特位,能够得到虚拟地址对应的物理地址,而本实施例中的最后一级页表项中存储的是虚拟地址中除页内偏移位之外的比特位,这样,物理地址可以根据虚拟地址中除页内偏移位之外的比特位和页内偏移位确定,即得到的物理地址等于虚拟地址,而虚拟地址范围是根据预设的测试代码所需的最大访问内存地址确定的,这样,根据CR3控制寄存器中的第一级页表的基地址以及初始化后的各级页表,测试代码获取目标物理地址上的数据,和/或向目标物理地址写入数据,以根据所述数据对所述处理器进行验证时,不会产生缺页,提高处理器验证效率,避免了测试代码运行过程中产生大量地缺页异常而被中断进入缺页异常处理服务程序中而导致的降低处理器的运行效率的问题,此外,使用本实施例的页表进行处理器验证代码的开发编译过程中,可以仅以物理地址或虚拟地址为准进行,这样,能够降低处理器验证代码的开发编译复杂度,提高处理器验证代码的开发编译的效率,进一步,能够提高处理器验证效率。

作为一可选实施方式,所述装置还包括:第四确定模块,用于在所述第二申请模块为各级页表申请所需要的地址空间之前,确定所述验证系统所要开启的分页模式和页面大小;第五确定模块,用于根据所述验证系统启动进入的内核运行模式、分页模式和页面大小,以及预先建立的运行模式、分页模式、页面大小和页表转换级数之间的映射关系,确定页表转换级数。

上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图9为本申请一实施例提供的电子设备的结构示意图,如图9所示,可以包括:壳体61、处理器62、存储器63、电路板64和电源电路65,其中,电路板64安置在壳体61围成的空间内部,处理器62和存储器63设置在电路板64上;电源电路65,用于为上述电子设备的各个电路或器件供电;存储器63用于存储可执行程序代码;处理器62通过读取存储器63中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种页表创建方法或处理器验证方法,因此也能实现相应的有益技术效果,前文已经进行了详细说明,此处不再赘述。

上述电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

相应的,本申请的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种页表创建方法或处理器验证方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本申请时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

本文发布于:2024-09-24 17:08:30,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/86994.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议