一种微处理器验证中快速换页的装置和方法

文档序号:6471927阅读:106来源:国知局
专利名称:一种微处理器验证中快速换页的装置和方法
技术领域
本发明涉及微处理器,尤其涉及一种微处理器验证中快速换页的装置和方法。
背景技术
模拟仿真验证是微处理器验证最主要的验证方法,在基于模拟仿真的微处 理器验证中,随机测试向量是最主要的验证向量,据统计整个验证过程中超过 四分之三的bug是通过运行随机测试向量发现的。因为在验证微处理器时面临 的最多、最显著的问题是需要验证巨大的变量空间(比如,由指令集所构成 的指令序列空间是一个几乎无限的空间)。这就需要随机地产生均匀分布的测 试向量,以期通过有限的指令空间的验证确保无限指令空间的正确性。通常情
况下, 一个微处理器的地址空间范围是很大的,以MIPS CPU为例,MIPS R4000在32位模式下的用户态可用空间为0x00000000 0x7fffffff,共2Gbyte, 在64位模式下的用户态可用空间为0x0000000000000000 0x000000ffffffffff, 共lTbyte。而通常情况下,微处理器中页大小相对与微处理器的地址空间要小 的多,例如MIPS R4000的页可以为4K、 16K、 64K、 256K、 1M、 4M、 16M。 为了使指令能够尽量平均分布在微处理器的地址空间,再加上指令访存的地址 空间, 一个随机测试向量序列的程序空间可能要占用1000多个页的大小,而 在MIPS处理器中,TLB (Translation lookaside buffer) —般只有64项,因 此在指令执行时,会频繁地发生缺页例外。
基于随机测试向量的模拟仿真验证,是在没有操作系统的基础上,直接执 行随机测试向量,因此在发生缺页例外时要能处理缺页例外,使微处理器能正 常执行随机测试向量。
图1描述了现有技术中解决缺页例外的方法,其包括如下歩骤
步骤S101,编写缺页例外处理程序。
步骤S102,生成随机测试向量的页表,并根据页表将测试向量写入内存。步骤S1(B,将缺页例外处理程序写入到微处理器指定的例外入口。
步骤S104,微处理器从内存中取指令执行。 歩骤S105,发生缺页例外。
步骤S106,跳转到缺页例外处理程序,解决缺页例外,返回随机测试向
量继续执行。
在传统的方法中,需要编写缺页例外处理程序,当发生缺页例外时,微处 理器跳转到例缺页外处理器程序执行,缺页例外处理程序将发生缺页例外的虚 页号对应的物理页号从也表中找到,在TLB中找到一项替换掉,解决缺页例 外,微处理器返回随机测试向量继续执行。但对于指令级随机测试向量的微处 理验证来说,缺页例外处理程序的指令序列和功能是固定的,重复执行对验证 微处理器没有帮助。对于MIPS兼容的处理器,缺页例外处理程序需要10到 20条指令,由于频繁地执行缺页另外处理程序,会使验证中执行的有效指令 的比率大大降低,并且由于页表存放在内存中,缺页例外处理器程序的执行非 常耗时。例如,对于有1000页的一个随机测试向量,假设该测试向量的指令 总数为20000条,缺页例外处理程序的指令为15条,则执行该随机测试向量 一共要产生IOOO次缺页例外,执行的缺页例外处理程序的指令数为1000X15 =15000条。随机指令测试向量的效率为20000/20000+15000 = 0.57,将近一 半的指令为重复执行的指令,验证的效率被大大降低。

发明内容
为了解决上述的技术问题,提供了一种微处理器验证中快速换页的装置和 方法,其目的在于,解决在现有技术中由于缺页例外而导致的微处理器验证效 率低的问题。
本发明提供了一种微处理器验证中快速换页的装置,包括 随机指令控制模块,用于读入验证微处理器的指令和数据,以及指令和数 据的虚页号;为每个虚页号分配物理页号,生成页表;根据页表将指令写入到 内存模块中;接收微处理器输出的缺页例外信号;将虚页号、物理页号以及缺 页例外信号组合成符合TLB格式的数据,随机写入被验证的微处理器;
被验证的微处理器,用于从内存模块中取指令并执行,并将缺页例外信号 输入到随机指令控制模块;
6内存模块,用于存储验证微处理器的指令和数据。
随机指令控制模块包括存储模块、指令及数据写入控制模块、例外信号 接收处理模块和页表生成及配置模块;
存储模块,用于存储验证微处理器的指令和数据,以及指令和数据的虚页

万;
页表生成及配置模块,用于为存储在存储模块中虚页号分配物理页号,生 成页表;当发生缺页例外时,将虚页号、物理页号以及缺页例外信号组合成符 合TLB格式的数据,随机写入被验证的微处理器的内部TLB;
指令及数据写入控制模块,用于根据页表生成及配置模块生成的页表,将 验证微处理器的指令和数据写入内存模块;
所述例外信号接收处理模块,用于接收并处理被验证的微处理器发送来的 缺页例外信号,并将得到的虚页号发送到页表生成及配置模块。
验证微处理器的指令和数据包括每条指令的可执行代码、指令需要访问 的数据、指令及数据的虚页号。
验证微处理器的指令和数据存放在内存模块中不同的物理页,并且指令和 数据根据页表转换后的物理地址存储在内存模块中。
存储在内存模块中的缺页例外处理器程序仅包含一条指令ERET。
被验证的微处理器包括寄存器、微处理器内部TLB和内存控制器模块。
寄存器包括EntryHi寄存器,BadVAddr寄存器以及Context寄存器;当 发生TLB例外时,例外的虚页号被存放到EntryHi寄存器和Context寄存器、 例外的虚地址被放到BadVAddr寄存器。
页表生成及配置模块将虚页号、物理页号以及缺页例外信号组合成符合 TLB格式的数据,随机写入被验证的微处理器的内部TLB。
本发明提供了一种微处理器验证中快速换页的方法,包括
步骤l,随机指令控制模块读入验证微处理器的指令和数据,以及指令和 数据的虚页号;
步骤2,随机指令控制模块为每个虚页号分配物理页号,生成页表; 步骤3,随机指令控制模块根据页表将指令写入到内存模块中; 步骤4,被验证的微处理器从内存模块中取指令并执行;发生缺页例外后, 将缺页例外信号输入到随机指令控制模块;步骤5,随机指令控制模块接收微处理器输出的缺页例外信号并得到虚页

步骤6,随机指令控制模块将虚页号、物理页号以及缺页例外信号组合成 符合TLB格式的数据,随机写入被验证的微处理器。
步骤1中,指令控制模块将验证微处理器的指令和数据,以及指令和数据 的虚页号读入到指令控制模块的存储模块;
步骤2中,指令控制模块的页表生成及配置模块为读入到存储模块中虚页 号分配物理页号,生成页表;
步骤3中,指令控制模块的指令及数据写入控制模块根据页表将指令写入 到内存模块中;
步骤4中,将缺页例外信号输入到指令控制模块的例外信号接收处理模
块;
步骤5中,指令控制模块的例外信号接收处理模块从缺页例外信号中得到 虚页号,并把虚页号送给指令控制模块的页表生成及配置模块;
步骤6中,指令控制模块的页表生成及配置模块将虚页号、物理页号以及 缺页例外信号组合成符合TLB格式的数据,随机写入被验证的微处理器的内 部TLB
步骤3中,指令控制模块的指令及数据写入控制模块根据页表将指令和数 据的虚地址转换成物理地址,并按物理地址将指令和数据写入到内存模块,将 只包含一条返回指令的缺页例外处理程序写入到处理器相应的例外入口处。
验证微处理器的指令和数据包括每条指令的可执行代码、指令需要访问 的数据、指令及数据的虚页号。
步骤3中,验证微处理器的指令和数据存放在内存模块中不同的物理页,
并且指令和数据根据页表转换后的物理地址存储在内存模块中。
存储在内存中的缺页例外处理器程序仅包含一条指令ERET。 被验证的微处理器的寄存器包括EntryHi寄存器,BadVAddr寄存器以及 Context寄存器。
步骤4中,当发生TLB例外时,例外的虚页号被存放到EntryHi寄存器和 Context寄存器、例外的虚地址被放到BadVAddr寄存器。
本发明的微处理器验证中快速换页的装置,当发生缺页例外时,微处理器进入缺页例外处理程序,同时把缺页例外信号送入到指令控制模块,指令控制
模块根据这些信号,把相关信息填入微处理器中的TLB,解决缺页例外,微
处理器进入缺页例外处理程序后只执行一条返回指令,返回到随机测试向量继 续执行。与现有的方法相比,减少了验证中重复执行的无效指令,提高了效率, 同时,由于解决缺页例外不需要访存操作,需要的时间也大大减少。


图1为现有技术中解决微处理器验证中缺页例外方法的流程图; 图2为本发明的微处理器验证中快速换页装置的结构框图; 图3为本发明的指令和数据写入内存框图; 图4为本发明的微处理器验证中快速换页方法的流程图。
具体实施例方式
本发明提供一种微处理器验证中快速换页的装置,其包括随机指令控制 模块,用于读入验证微处理器的指令、数据及指令和数据的虚页号,为每个虚 页号分配物理页号,生成页表;并根据页表将指令和数据写入到内存中;接收 微处理器部件输出的保存在寄存器EntryHi、 BadVAddr以及Context中的缺页 例外信号,根据缺页例外信号生成虚页号并在页表找到对应物理页号,把虚页 号、物理页号以及EntryHi寄存器中的ASID (Address space ID field)值组合 成符合微处理器内部TLB格式的数据,随机写入到处理器部件中TLB的某一 项中;内存模块,用于存储验证微处理器的指令及数据;微处理器从内存中取 指令和数据执行,当发生缺页例外时,把保存在寄存器EntryHi、 BadVAddr 以及Context中的缺页例外信号输入到随机指令控制模块;
所述随机指令控制模块包括存储模块,用于存储验证微处理器的指令、 数据以及指令和数据的虚页号;指令及数据写入控制模块,用于根据页表生成 及配置模块生成的页表,将指令和数据写入到内存模块中;例外信号接收处理 模块,用于接收并处理微处理器部件发送来的缺页例外信号,并把处理后的信 号传送到页表生成及配置模块;页表生成及配置模块,用于为存储在存储模块 中虚页号分配物理页号,生成页表;当发生缺页例外时,把例外信号接收模块 传来的内容组合成符合TLB格式的数据,随机填入到微处理器内部的TLB中的某一项。
如上所述的微处理器验证中快速换页的装置,随机指令控制模块读入的用 于验证微处理器的内容包括每条指令的可执行代码、指令中访存指令需要访 问的数据、指令及数据的虚页号,指令是按随机方法生成的。
如上所述的微处理器验证中快速换页的装置,指令和数据是存放在内存模 块中不同的物理页,并且指令和数据都是按经页表转换后的物理地址存储在内
存中的;存储在内存中的缺页例外处理器程序仅包含ERET —条指令。
如上所述的微处理器验证中快速换页的装置,所述微处理器部件为MIPS 兼容的微处理器,微处理器内部包含EntryHi寄存器,BadVAddr寄存器以及 Context寄存器,当发生TLB例外时,例外的虚页号被存放到EntryHi寄存器 和Context寄存器、例外的虚地址被放到BadVAddr寄存器。
本发明还提供一种微处理器验证中快速换页的方法,其包括 歩骤一,随机指令控制模块将验证微处理器的指令、指令中访存指令需要 访问的数据,指令和数据的虚页号读入到存储模块;
步骤二,页表生成及配置模块为读入到存储模块中虚页号分配物理页号, 生成页表;
步骤三,指令及数据写入控制模块根据页表生成及配置模块生成的页表, 将指令及数据的虚地址转换成物理地址,并按物理地址将指令和数据写入到内 存,将只包含一条ERET指令的缺页例外处理程序写入到微处理器相应的例外 入口处;
歩骤四,微处理部件从内存中取指令和数据执行,当发生缺页例外时,将 保存在寄存器EntryHi、 BadVAddr以及Context中的缺页例外信号输入到例外 信号接收处理模块,同时进入只包含一条ERET指令的缺页例外处理程执行;
步骤五,例外信号接收处理模块对接收到例外信号进行处理,从中得到发 生例外的指令或者访存数据的虚页号,并把虚页号送给页表生成及配置模块;
步骤六,页表生成及配置模块根据例外信号接收处理模块送来的虚页号, 找到对应的物理页号,并把虚页号、物理页号以及EntryHi寄存器中的ASID 值组合成符合微处理器内部TLB格式的数据并随机填入到微处理器内部的 TLB中某一项,微处理部件的缺页例外得到解决,从缺页例外处理程序执行 ERET返回,继续执行随机测试向量。如上所述的微处理器验证中快速换页的方法,在步骤一中,读入的用于验 证微处理器的内容包括每条指令的可执行代码、指令需要访问的数据、指令及 数据的虚页号,指令是按随机方法生成的。
如上所述的微处理器验证中快速换页的方法,在步骤三中,指令和数据是 存放在内存模块中不同的物理页,并且指令和数据都是按经页表转换后的物理 地址存储在内存中的;存储在内存中的缺页例外处理器程序仅包含一条指令
ERET。
如上所述的微处理器验证中快速换页的方法,在歩骤四中,微处理器部件 输入到例外信号接收处理模块的信号是EntryHi寄存器、BadVAddr寄存器以 及Context寄存器。
本发明提出一种微处理器验证中快速换页的装置和方法。
如图2所示,本发明的微处理器验证中快速换页装置包括随机指令控制模 块S31,内存模块S32,需要被验证的微处理器S33。需要被验证的微处理器 S33包含寄存器S205,处理器内部TLBS206,以及内存控制模块S207;寄存 器S205包括EntryHi寄存器、BadVAddr寄存器以及Context寄存器。
随机指令控制模块S31将验证微处理器的指令的可执行代码,指令中的访 存指令需要访问的数据、指令及数据的虚页号读入到存储模块S201,指令及 数据是按随机方法生成的;将只包含一条ERET指令的缺页例外处理程序写入 到内存模块S32中处理器要求的例外入口处。页表生成及配置模块S204为存 储在存储模块中虚页号分配物理页号,生成页表,随机指令及数据写入随机指 令控制模块S203,根据页表生成及配置模块S204生成的页表,将指令和访存 需要的数据写入到内存模块S32中,指令和数据写入内存的方式如图3所示, 指令和数据是存放在内存模块中不同的物理页,并且指令级和数据都是按经页 表转换后的物理地址存储在内存模块中的。
微处理器S33从内存模块S32中取指令和数据执行,当在指令执行过程 中发生TLB例外时,微处理器将发生例外的虚页号存放到EntryHi寄存器和 Context寄存器、例外的虚地址放到BadVAddr寄存器。同时进入缺页例外处 理程序执行ERET指令。例外信号接收处理模块S202从EntryHi 、 BadVAddr 和Context寄存器中得到发生缺页例外的指令或者访存数据的虚页号,并把虚 页号送给页表生成及配置模块S204,页表生成及配置模块S204根据例外信号接收处理模块送来的虚页号,找到对应的物理页号,并把虚页号、物理页号以
及EntryHi寄存器中的ASID值组合成符合微处理器内部TLB格式的数据并随 机填入到微处理器内部的TLBS206中的某一项,微处理器的缺页例外得到解 决,从缺页例外处理程序执行ERET返回,继续执行随机测试向量。由于缺页 例外的解决是通过直接填写微处理器部件中的TLB实现,而不是通过执行例 外处理程序解决的,因而大大提高了验证的效率。例如,对于有20000条指令、 有1000页的随机测试向量来说,因为缺页例外处理程序只有一条ERET指令, 1000次缺页共需要执行1000条例外处理器程序,所以执行的总指令数为20000 + 1000=21000条,有效指令数为20000条,效率为20000/21000 = 0.95。大大 增加了有效指令的比例,同时由于解决缺页例外不需要进行访存操作,仿真的 时间也能大大减少。
参照图4描述依照本发明的验证方法,其包括如下歩骤。 歩骤S301,随机指令控制模块将验证微处理器的指令、指令中访存指令 需要访问的数据,及指令和数据的虚页号读入到存储模块,将只包含一条返回 指令的缺页例外处理程序写入到内存模块中处理器要求的例外入口处;
步骤S302,页表生成及配置模块为读入到存储模块中虚页号分配物理 页号,生成页表;
步骤S303,指令及数据写入控制模块根据页表生成及配置模块生成的 页表,将每条指令的虚地址、访存需要的数据的虚地址转换成物理地址,并按 物理地址将指令和数据写入到内存;
步骤S304,微处理部件从内存中取指令和数据执行,当发生缺页例外 时,将例外信号输入到例外信号接收处理模块,同时进入缺页例外处理程序;
步骤S305,例外信号接收处理模块对接收到例外信号进行处理,从中 得到发生例外的指令或者访存数据的虚页号,并把虚页号送给页表生成及配置 模块;
步骤S306,页表生成及配置模块根据例外信号接收处理模块送来的虚 页号,找到对应的物理页号,并把虚页号、物理页号以及EntryHi寄存器中的 ASID值组合成符合微处理器内部TLB格式的数据并随机填入到微处理器内部 的TLB中某一项,微处理部件的缺页例外得到解决,从缺页例外处理程序执 行ERET返回,继续执行。
12本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条 件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于 以上的说明,而是由权利要求书的范围来确定的。
权利要求
1. 一种微处理器验证中快速换页的装置,其特征在于,包括随机指令控制模块,被验证的微处理器以及内存模块;随机指令控制模块,用于读入验证微处理器的指令和数据,以及指令和数据的虚页号;为每个虚页号分配物理页号,生成页表;根据页表将指令写入到内存模块中;接收微处理器输出的缺页例外信号;将虚页号、物理页号以及缺页例外信号组合成符合TLB格式的数据,随机写入被验证的微处理器;被验证的微处理器,用于从内存模块中取指令并执行,并将缺页例外信号输入到随机指令控制模块;内存模块,用于存储验证微处理器的指令和数据。
2. 如权利要求1所述的微处理器验证中快速换页的装置,其特征在于, 随机指令控制模块包括存储模块、指令及数据写入控制模块、例外信号接收 处理模块和页表生成及配置模块;存储模块,用于存储验证微处理器的指令和数据,以及指令和数据的虚页号,页表生成及配置模块,用于为存储在存储模块中的虚页号分配物理页号, 生成页表;当发生缺页例外时,将虚页号、物理页号以及缺页例外信号组合成 符合TLB格式的数据,随机写入被验证的微处理器的内部TLB;指令及数据写入控制模块,用于根据页表生成及配置模块生成的页表,将 验证微处理器的指令和数据写入内存模块;所述例外信号接收处理模块,用于接收并处理被验证的微处理器发送来的 缺页例外信号,并将得到的虚页号发送到页表生成及配置模块。
3. 如权利要求1所述的微处理器验证中快速换页的装置,其特征在于, 验证微处理器的指令和数据包括每条指令的可执行代码、指令需要访问的数 据、指令及数据的虚页号。
4. 如权利要求2所述的微处理器验证中快速换页的装置,其特征在于, 验证微处理器的指令和数据存放在内存模块中不同的物理页,并且指令和数据 根据页表转换后的物理地址存储在内存模块中。
5. 如权利要求4所述的微处理器验证中快速换页的装置,其特征在于,存储在内存模块中的缺页例外处理器程序仅包含一条指令ERET。
6. 如权利要求2所述的微处理器验证中快速换页的装置,其特征在于, 被验证的微处理器包括寄存器、微处理器内部TLB和内存控制器模块。
7. 如权利要求6所述的微处理器验证中快速换页的装置,其特征在于, 寄存器包括EntryHi寄存器,BadVAddr寄存器以及Context寄存器;当发生 TLB例外时,例外的虚页号被存放到EntryHi寄存器和Context寄存器、例外 的虚地址被放到BadVAddr寄存器。
8. 如权利要求6所述的微处理器验证中快速换页的装置,其特征在于, 页表生成及配置模块将虚页号、物理页号以及缺页例外信号组合成符合TLB 格式的数据,随机写入被验证的微处理器的内部TLB。
9. 一种微处理器验证中快速换页的方法,其特征在于,包括步骤l,随机指令控制模块读入验证微处理器的指令和数据,以及指令和 数据的虚页号;步骤2,随机指令控制模块为每个虚页号分配物理页号,生成页表; 步骤3,随机指令控制模块根据页表将指令写入到内存模块中; 步骤4,被验证的微处理器从内存模块中取指令并执行;发生缺页例外后, 将缺页例外信号输入到随机指令控制模块;歩骤5,随机指令控制模块接收微处理器输出的缺页例外信号并得到虚页号 步骤6,随机指令控制模块将虚页号、物理页号以及缺页例外信号组合成 符合TLB格式的数据,随机写入被验证的微处理器。
10. 如权利要求9所述的微处理器验证中快速换页的方法,其特征在于, 步骤l中,指令控制模块将验证微处理器的指令和数据,以及指令和数据的虚页号读入到指令控制模块的存储模块;步骤2中,指令控制模块的页表生成及配置模块为读入到存储模块中虚页 号分配物理页号,生成页表;步骤3中,指令控制模块的指令及数据写入控制模块根据页表将指令写入 到内存模块中;步骤4中,将缺页例外信号输入到指令控制模块的例外信号接收处理模块;歩骤5中,指令控制模块的例外信号接收处理模块从缺页例外信号中得到 虚页号,并把虚页号送给指令控制模块的页表生成及配置模块;步骤6中,指令控制模块的页表生成及配置模块将虚页号、物理页号以及 缺页例外信号组合成符合TLB格式的数据,随机写入被验证的微处理器的内 部TLB
11. 如权利要求IO所述的微处理器验证中快速换页的方法,其特征在于, 歩骤3中,指令控制模块的指令及数据写入控制模块根据页表将指令和数据的 虚地址转换成物理地址,并按物理地址将指令和数据写入到内存模块,将只包 含一条返回指令的缺页例外处理程序写入到处理器相应的例外入口处。
12. 如权利要求9所述的微处理器验证中快速换页的方法,其特征在于,验证微处理器的指令和数据包括每条指令的可执行代码、指令需要访问的数据、指令及数据的虚页号。
13. 如权利要求9所述的微处理器验证中快速换页的方法,其特征在于, 步骤3中,验证微处理器的指令和数据存放在内存模块中不同的物理页,并且 指令和数据根据页表转换后的物理地址存储在内存模块中。
14. 如权利要求13所述的微处理器验证中快速换页的方法,其特征在于, 存储在内存中的缺页例外处理器程序仅包含一条指令ERET。
15. 如权利要求l所述的微处理器验证中快速换页的方法,其特征在于, 被验证的微处理器的寄存器包括EntryHi寄存器,BadVAddr寄存器以及 Context寄存器。
16. 如权利要求4所述的微处理器验证中快速换页的方法,其特征在于, 步骤4中,当发生TLB例外时,例外的虚页号被存放到EntryHi寄存器和 Context寄存器、例外的虚地址被放到BadVAddr寄存器。
全文摘要
本发明涉及一种微处理器验证中快速换页的装置和方法。该装置包括随机指令控制模块,用于读入验证微处理器的指令和数据,以及指令和数据的虚页号;为每个虚页号分配物理页号,生成页表;根据页表将指令和数据写入到内存模块中;接收微处理器输出的缺页例外信号;将虚页号、物理页号以及缺页例外信号组合成符合TLB格式的数据,随机写入被验证的微处理器;被验证的微处理器,用于从内存模块中取指令和数据执行,并将缺页例外信号输入到随机指令控制模块;内存模块,用于存储验证微处理器的指令和数据。本发明减少了验证中重复执行的无效指令,提高了效率。
文档编号G06F12/10GK101441600SQ20081024107
公开日2009年5月27日 申请日期2008年12月25日 优先权日2008年12月25日
发明者沈海华, 王朋宇, 陈云霁 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1