1.一种页表预取方法,其特征在于,包括:
当页表快速查询表缺失时,触发页表转换;
判断页表所在位置的存储器的属性;
根据取回的数据状态判断预取页表是否合法;
若预取页表合法,则保存预取页表,否则丢弃预取页表。
2.根据权利要求1所述的方法,其特征在于,所述存储器的属性分为三类:可缓存的、不可缓存的和外设;对于属性为可缓存的,选择突发访问数据量为半个缓存行或者整个缓存行;对于属性为不可缓存的,数据访问量根据处理器的外部总线宽度而定;对于属性为外设的,不进行页表预取。
3.根据权利要求1或2所述的方法,其特征在于,所述根据取回的数据状态判断预取页表是否合法包括:
对于最后一级不是l3,如果预取回的数据不是块描述符,而是表描述符或者无效输入,则判定所述预取页表不合法;
对于最后一级不是l3,如果预取回的数据有页表错误,则判定所述预取页表不合法;
对于最后一级是l3,如果目标描述符含有连续位,则判定所述预取页表不合法;
对于最后一级是l3,如果预取数据含有连续位,则判定所述预取页表不合法;
对于最后一级是l3,如果预取数据是页描述符,但是有页表错误,则判定所述预取页表不合法。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对所述预取页表进行管理。
5.根据权利要求4所述的方法,其特征在于,所述对所述预取页表进行管理包括以下一个或多个:
预取页表在上电复位后,将其状态置为无效状态;
在页表转换过程中,如果有页表错误,不保存预取页表;
当接收到任何将页表快速查询表置为无效状态的指令时,将预取页表置为无效;
当接收到任何配置与页表转换相关的系统寄存器操作时,将预取页表置为无效;
在每一次产生预取页表时,将之前所有预取页表进行覆盖。
6.一种页表预取装置,其特征在于,包括:
触发单元,用于当页表快速查询表缺失时,触发页表转换;
第一判断单元,用于判断页表所在位置的存储器的属性;
第二判断单元,用于根据取回的数据状态判断预取页表是否合法;
保存单元,用于当所述第二判断单元判断预取页表合法时,保存预取页表;
丢弃单元,用于当所述第二判断单元判断预取页表不合法时,丢弃预取页表。
7.根据权利要求6所述的装置,其特征在于,所述存储器的属性分为三类:可缓存的、不可缓存的和外设;对于属性为可缓存的,选择突发访问数据量为半个缓存行或者整个缓存行;对于属性为不可缓存的,数据访问量根据处理器的外部总线宽度而定;对于属性为外设的,不进行页表预取。
8.根据权利要求6或7所述的装置,其特征在于,所述第二判断单元,用于按照如下方式判断预取页表是否合法:
对于最后一级不是l3,如果预取回的数据不是块描述符,而是表描述符或者无效输入,则判定所述预取页表不合法;
对于最后一级不是l3,如果预取回的数据有页表错误,则判定所述预取页表不合法;
对于最后一级是l3,如果目标描述符含有连续位,则判定所述预取页表不合法;
对于最后一级是l3,如果预取数据含有连续位,则判定所述预取页表不合法;
对于最后一级是l3,如果预取数据是页描述符,但是有页表错误,则判定所述预取页表不合法。
9.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
管理单元,用于对所述预取页表进行管理。
10.根据权利要求9所述的装置,其特征在于,所述管理单元,用于按照以下方式中的一个或多个对所述预取页表进行管理:
预取页表在上电复位后,将其状态置为无效状态;
在页表转换过程中,如果有页表错误,不保存预取页表;
当接收到任何将页表快速查询表置为无效状态的指令时,将预取页表置为无效;
当接收到任何配置与页表转换相关的系统寄存器操作时,将预取页表置为无效;
在每一次产生预取页表时,将之前所有预取页表进行覆盖。