基于大页映射的数据读取方法及装置与流程

文档序号:12597110阅读:191来源:国知局
基于大页映射的数据读取方法及装置与流程
本发明涉及电数字数据处理领域,尤其涉及一种基于大页映射的数据读取方法及装置。
背景技术
:当前,线性系统软件包(Linearsystempackage,简称,Linpack)是一种用于评价计算机系统浮点性能的测试基准,具体地,Linpack主要通过使用高斯消元法求解N元一次稠密线性代数方程组来评价高性能计算机系统的浮点性能,并以解上述N元一次稠密线性代数方程组所花费的时间来估计计算机系统浮点性能,在求解上述N元一次稠密线性代数方程组的过程中,Linpack需要读取上述N元一次稠密线性代数方程组对应的矩阵,并根据所读取的矩阵来求解上述N元一次稠密线性代数方程组。现有技术中,上述N元一次稠密线性代数方程组对应的矩阵是按列存储,即每一列存储在一个物理页面对应的存储空间内,而Linpack求解过程中读取矩阵时,是将上述N元一次稠密线性代数方程组对应的矩阵划分为多个矩阵块,并根据计算需要读取这些矩阵块,因此一个矩阵块中的多个元素可能不在同一个物理页面对应的存储空间内,即需要跨越不同的物理页面对应的存储空间,因此,Linpack读取一个矩阵块时,先在第一个物理页面对应的存储空间内读取到部分元素,接着在第二个物理页面对应的存储空间内读取另一部分元素,这样,在第二个物理页面对应的存储空间内读取另一部分元素时,传输后备缓冲器(TranslationLookasideBuffer,简称TLB)中所缓存的第一个物理页面的地址就会失效,从而会触发TLB的重填例外,即需要填写第二个物理页面的地址。但是,采用现有的矩阵块读取方法时,在读取矩阵块的过程中会经常触发TLB重填例外,从而降低了矩阵块的读取效率。技术实现要素:本发明提供一种基于大页映射的数据读取方法及装置,用于解决现有技术中矩阵块的读取效率低下的问题。本发明一方面提供一种基于大页映射的数据读取方法,包括:根据预留的数据读取空间的范围信息和存储待读取矩阵块的存储空间对应的物理地址范围信息,确定所述待读取矩阵块是否满足大页映射条件;若确定满足大页映射条件,则采用大页映射的方式读取所述待读取矩阵块;其中,所述待读取矩阵块为根据求解方程组时间参数评价计算机系统的性能时,所采用的方程组对应矩阵的子矩阵;所述预留的数据读取空间为计算机系统预留的性能评价空间;所述大页为大于或等于待读取矩阵块的缓存。本发明另一方面提供一种基于大页映射的数据读取装置,包括:判断模块和读取模块;所述判断模块,用于根据预留的数据读取空间的范围信息和存储待读取矩阵块的存储空间对应的物理地址范围信息,确定所述待读取矩阵块是否满足大页映射条件;所述读取模块,用于若所述判断模块判断所述待读取矩阵块满足大页映射条件,采用大页映射的方式读取所述待读取矩阵块;其中,所述待读取矩阵块为根据求解方程组时间参数评价计算机系统的性能时,所采用的方程组对应矩阵的子矩阵;所述预留的数据读取空间为计算机系统预留的性能评价空间;所述大页为大于或等于待读取矩阵块的缓存。本发明提供的基于大页映射的数据读取方法及装置,根据预留的数据读取空间的范围信息和存储待读取矩阵块的存储空间对应的物理地址范围信息,确定待读取矩阵块是否满足大页映射条件,若确定满足大页映射条件,则采用大页映射的方式读取待读取矩阵块。这样在满足条件的情况下可以一次性将待读取矩阵块读出,从而避免了当待读取矩阵块中的多个元素不在同一物理页面时,需要跨越不同的物理页面对应的存储空间读取矩阵块,造成TLB中所缓存的物理页面地址失效,触发TLB的重填例外,进而,本发明提供的基于大页映射的数据读取方法提高了待读取矩阵块的读取效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明提供的基于大页映射的数据读取方法的实施例一的流程图;图2为本发明提供的基于大页映射的数据读取方法的实施例二的流程图;图3为本发明提供的基于大页映射的数据读取方法的实施例三的流程图;图4为本发明提供的基于大页映射的数据读取方法的实施例四的流程图;图5为本发明提供的基于大页映射的数据读取方法的实施例五的流程图;图6为本发明提供的基于大页映射的数据读取装置的实施例一的结构示意图;图7为本发明提供的基于大页映射的数据读取装置的实施例二的结构示意图;图8为本发明提供的基于大页映射的数据读取装置的实施例三的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明提供的基于大页映射的数据读取方法的实施例一的流程图,如图1所示,该方法可以由中央处理器(CentralProcessingUnite,简称, CPU)执行,如图1所示,本实施例的方法可以包括:S101、根据预留的数据读取空间的范围信息和存储待读取矩阵块的存储空间对应的物理地址范围信息,确定待读取矩阵块是否满足大页映射条件。具体地,预留的数据读取空间的范围信息可以是物理地址范围信息。需要说明的是,待读取矩阵块为根据求解方程组时间参数评价计算机系统的性能时,所采用的方程组对应矩阵的子矩阵;预留的数据读取空间为计算机系统预留的性能评价空间。为了详细说明本发明中待读取矩阵块和预留的数据读取空间的含义,我们以计算系统求解四元一次稠密线性代数方程组为例进行说明:a11x+a12y+a13z=b1a21x+a22y+a23z=b2a31x+a32y+a33z=b3,]]>其中,x,y,z分别表示方程组的未知数,aij,bi表示方程组的常系数,其中,利用计算机系统求解上述方程组实际上是对上述方程组的系数矩阵A进行一系列的行列变化,最终得到方程组的解。A=a11a12a13b1a21a22a23b2a31a32a33b3,]]>在对矩阵进行一系列的行列变化之前,需要先对矩阵进行分块,A=[A11A12],其中,A11=a11a12a21a22a31a32,A12=a13b1a23b2a33b3,]]>A11和A12即为待读取矩阵块。计算机系统求解上述方程组的过程中需要频繁地读取上述矩阵块。需要说明的是,上述例子只是为了更直观地说明本发明中的待读取矩阵块的含义,实际上,在进行计算机系统的性能评价时,计算机系统求解的N元一次稠密线性代数方程组所对应的系数矩阵A的数据量非常大,对应的待读取矩阵块的数据量也很大。此外,在进行计算机系统的性能评价之前,计算机操作系统在内存初始化阶段为计算机系统预留一段内存空间,这段内存空间用于计算机系统性能的评价,因此也称作性能评价空间,其实质就是预留的数据读取空间。需要说明的是,计算机系统可以采用Linux操作系统,也可以采用 Windows操作系统,在此不做限定。S102、若确定满足大页映射条件,则采用大页映射的方式读取待读取矩阵块。需要说明的是,大页为大于或等于待读取矩阵块的缓存,该缓存用于暂时存储从预留的数据读取空间中读取的待读取矩阵块,便于CPU对该缓存中存储的待读取矩阵块进行直接处理。具体的,采用大页映射的方式读取待读取矩阵块是指采用大于或等于待读取矩阵块的缓存读取待读取矩阵块,即计算机系统可以一次性将待读取矩阵块读入缓存。本实施例中,根据预留的数据读取空间的范围信息和存储待读取矩阵块的存储空间对应的物理地址范围信息,确定待读取矩阵块是否满足大页映射条件,若确定满足大页映射条件,则采用大页映射的方式读取待读取矩阵块。这样可以在满足条件的情况下可以一次性将待读取矩阵块读出,从而避免了当待读取矩阵块中的多个元素不在同一物理页面时,需要跨越不同的物理页面对应的存储空间读取矩阵块,造成TLB中所缓存的物理页面地址失效,触发TLB的重填例外,进而,本发明提供的基于大页映射的数据读取方法提高了待读取矩阵块的读取效率。图2为本发明提供的基于大页映射的数据读取方法的实施例二的流程图,如图2所示,本实施例的方法包括:S201、根据预留的数据读取空间的起始地址和大小,判断预留的数据读取空间是否大于或等于待读取矩阵块;以及根据存储待读取矩阵块的存储空间对应的物理地址的起始地址和待读取矩阵块的大小,判断对应的物理地址的范围是否在预留的数据读取空间对应的地址范围内。其中,若判定结果为预留的数据读取空间大于或等于待读取矩阵块,且判定对应的物理地址的范围在预留的数据读取空间对应的地址范围内,则认为满足大页映射条件。S202、若确定满足大页映射条件,则采用大页映射的方式读取待读取矩阵块。其中,待读取矩阵块为根据求解方程组时间参数评价计算机系统的性能时,所采用的方程组对应矩阵的子矩阵;预留的数据读取空间为计算机系统 预留的性能评价空间;大页为大于或等于待读取矩阵块的缓存。为了详细说明上述步骤,我们以32位的物理地址为例进行举例说明,假设计算机操作系统预留的数据读取空间所对应的起始物理地址为FF000000H,预留的数据读取空间的大小为16MB。即预留的数据读取空间所对应的物理地址范围为:FF000000H~FFFFFFFFH,若待读取矩阵块的大小为1MB,且待读取矩阵块的存储空间对应的物理起始地址为FFF00000H,即待读取矩阵块的存储空间对应的物理地址范围为:FFF00000H~FFFFFFFFH,属于预留的数据读取空间,则采用大页映射的方式读取待读取矩阵块,若待读取矩阵块的大小为1MB,且待读取矩阵块的存储空间对应的物理起始地址为EFF00000H,即待读取矩阵块的存储空间对应的物理地址范围为:EFF00000~EFFFFFFFH,不属于预留的数据读取空间,则按照计算机系统原来分配给矩阵块的缓存读取矩阵块。只有同时满足预留的数据读取空间大于或等于待读取矩阵块且存储待读取矩阵块的存储空间对应的物理地址范围在预留的数据读取空间对应的地址范围内,才能采用大页映射的方式读取待读取矩阵块。图3为本发明提供的基于大页映射的数据读取方法的实施例三的流程图,如图3所示,本实施例的方法包括:S301、在TLB触发重填例外时,根据预留的数据读取空间的起始地址和大小,判断预留的数据读取空间是否大于或等于待读取矩阵块;以及根据存储待读取矩阵块的存储空间对应的物理地址的起始地址和待读取矩阵块的大小,判断对应的物理地址的范围是否在预留的数据读取空间对应的地址范围内。其中,若判定结果为预留的数据读取空间大于或等于待读取矩阵块,且判定对应的物理地址的范围在预留的数据读取空间对应的地址范围内,则认为满足大页映射条件。需要说明的是,当计算机系统需要读取待读取矩阵块时,需要根据待读取矩阵块的虚拟地址在TLB的表项中查找是否存在与待读取矩阵块的虚拟地址对应的表项,如果不存在,则TLB当前存储的物理页面地址失效,TLB触发重填例外,即需要通过访问慢速随机存储器(Random-AccessMemory,简称,RAM)中的页表计算出相应的物理地址。S302、若确定满足大页映射条件,将存储待读取矩阵块的存储空间对应的物理地址的起始地址填写在传输后备缓冲器TLB中。S303、采用大页映射的方式读取待读取矩阵块。其中,待读取矩阵块为根据求解方程组时间参数评价计算机系统的性能时,所采用的方程组对应矩阵的子矩阵;预留的数据读取空间为计算机系统预留的性能评价空间;大页为大于或等于待读取矩阵块的缓存。图4为本发明提供的基于大页映射的数据读取方法的实施例四的流程图,如图4所示,本实施例的方法包括:S401、根据预留的数据读取空间的起始地址和大小,判断预留的数据读取空间是否大于或等于待读取矩阵块;以及根据存储待读取矩阵块的存储空间对应的物理地址的起始地址和待读取矩阵块的大小,判断对应的物理地址的范围是否在预留的数据读取空间对应的地址范围内。其中,若判定结果为预留的数据读取空间大于或等于待读取矩阵块,且判定对应的物理地址的范围在预留的数据读取空间对应的地址范围内,则认为满足大页映射条件。S402、若确定满足大页映射条件,将待读取矩阵块的存储空间对应的物理地址的起始地址对齐到大页,获取对齐后的起始地址;将对齐后的起始地址填写在TLB中。需要说明的是,对齐后的起始地址可以满足大页映射对待读取矩阵块的物理起始地址的要求。S403、采用大页映射的方式读取待读取矩阵块。图5为本发明提供的基于大页映射的数据读取方法的实施例五的流程图,如图5所示,本实施例中,基于大页映射的数据读取方法可以由龙芯3B处理器执行,该方法包括:S501、在TLB触发重填例外时,根据预留的数据读取空间的起始地址和大小,判断预留的数据读取空间是否大于或等于待读取矩阵块;以及根据存储待读取矩阵块的存储空间对应的物理地址的起始地址和待读取矩阵块的大小,判断对应的物理地址的范围是否在预留的数据读取空间对应的地址范围内。其中,若判定结果为预留的数据读取空间大于或等于待读取矩阵块,且 判定对应的物理地址的范围在预留的数据读取空间对应的地址范围内,则认为满足大页映射条件。S502、若确定满足大页映射条件,将待读取矩阵块的存储空间对应的物理地址的起始地址对齐到大页,获取对齐后的起始地址,将对齐后的起始地址作为奇数页的起始地址填写在TLB中,并将对齐后的起始地址加上大页的大小后的地址作为偶数页的起始地址填写在TLB中。为了详细说明上述步骤,假设待读取矩阵块的起始地址为FFFF3000H,以FFFF3000H为页面起始地址的页面的大小为16KB,即该页面物理地址范围为FFFF3000H~FFFFFFFFH,若待读取矩阵块的存储空间的大小为32MB,如果直接将待读取矩阵块的起始地址FFFF3000H填入TLB表项中,则占用存储空间为32MB的待读取矩阵块的存储空间对应的物理页面为2048页,当计算机系统需要频繁访问该待读取矩阵块时,由于待读取矩阵块跨越多个物理页面,导致TLB中存储的物理页面的地址经常失效,从而触发多次TLB重填例外。因此,考虑到相邻的奇偶物理页面可以在同一个TLB表项中存储,将待读取矩阵块的存储空间对应的物理地址的起始地址对齐到32MB大页即将待读取矩阵块的起始地址FFFF3000H对齐到32MB大页面,对齐后的物理起始地址为FE000000H,也就说奇数页和偶数页总共的大小为32MB,奇数页面的物理地址范围为:FE000000H~FEFFFFFFH,偶数页面的物理地址范围为:FF000000H~FFFFFFFFH。将待读取矩阵块的存储空间对应的物理地址的起始地址对齐到32M大页后,待读取矩阵块的奇数页物理起始地址为FE000000H,待读取矩阵块的偶数页物理起始地址为FF000000H,通过TLB随机写命令将奇数页物理起始地址写入TLB表项中的EntryLO0寄存器,将偶数页物理起始地址写入EntryLO1寄存器,这样占用存储空间为32MB的待读取矩阵块的存储空间对应的物理页面为2页,且是相邻的奇偶页面,当计算机系统频繁访问待读取矩阵块时,避免了TLB中存储的物理页面地址经常失效的问题。S503、在TLB中将标识位的值修改为大页映射对应的值,以标识采用大页映射的方式读取待读取矩阵块。具体地,修改TLB中的PageMask的值用于指示采用大页映射的方式读 取待读取矩阵块。S504、采用大页映射的方式读取待读取矩阵块。需要说明的是,上述方法在具体实现的过程中,可以通过修改重填例外的指令来实现,修改后的重填例外指令超出了64条指令,修改final_handler数组的大小,使得重填例外指令可以存放入final_handler数组。图6为本发明提供的基于大页映射的数据读取装置的实施例一的结构示意图,如图6所示,基于大页映射的数据读取装置,包括:判断模块1和读取模块2。判断模块1,用于根据预留的数据读取空间的范围信息和存储待读取矩阵块的存储空间对应的物理地址范围信息,确定待读取矩阵块是否满足大页映射条件。读取模块2,用于若判断模块1判断待读取矩阵块满足大页映射条件,采用大页映射的方式读取待读取矩阵块。其中,待读取矩阵块为根据求解方程组时间参数评价计算机系统的性能时,所采用的方程组对应矩阵的子矩阵;预留的数据读取空间为计算机系统预留的性能评价空间;大页为大于或等于待读取矩阵块的缓存。需要说明的是,如果待读取矩阵块不满足大页映射的条件,则按照计算机系统按照原来分配给待读取矩阵块的缓存读取矩阵块。进一步地,在本发明另一实施例中,判断模块1具体用于:根据预留的数据读取空间的起始地址和大小,判断预留的数据读取空间是否大于或等于待读取矩阵块;以及根据存储待读取矩阵块的存储空间对应的物理地址的起始地址和待读取矩阵块的大小,判断对应的物理地址的范围是否在预留的数据读取空间对应的地址范围内。若判定结果为预留的数据读取空间大于或等于待读取矩阵块,且判定对应的物理地址的范围在预留的数据读取空间对应的地址范围内,则认为满足大页映射条件。图7为本发明提供的基于大页映射的数据读取装置的实施例二的结构示意图,如图7所示,在上述实施例的基础上,基于大页映射的数据读取装置还包括:写入模块3,用于在读取模块2采用大页映射的方式读取待读取矩阵块之前,将存储待读取矩阵块的存储空间对应的物理地址的起始地址填写 在传输后备缓冲器TLB中。可选地,判断模块1还用于在TLB触发重填例外时,根据计算机系统预留的数据读取空间的起始地址和大小,判断预留的数据读取空间是否大于或等于待读取矩阵块,且判断存储待读取矩阵块的存储空间对应的物理地址的范围是否在预留的数据读取空间对应的地址范围内。进一步地,在本发明另一实施例中,基于大页映射的数据读取装置:还包括对齐模块4,用于将待读取矩阵块的存储空间对应的物理地址的起始地址对齐到大页,获取对齐后的起始地址;将对齐后的起始地址通过写入模块3填写在TLB中。写入模块3具体用于将对齐后的起始地址作为奇数页的起始地址填写在TLB中,并将对齐后的起始地址加上大页的大小后的地址作为偶数页的起始地址填写在TLB中。图8为本发明提供的基于大页映射的数据读取装置的实施例三的结构示意图,如图8所示,在上述实施例的基础上,基于大页映射的数据读取装置:还包括修改模块5,用于将TLB中的标识位的值修改为大页映射对应的值,以标识采用大页映射的方式读取待读取矩阵块。上述装置实施例中各模块,对应地,可用于执行图5方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1