CN103942156A - 存储器输出页面零数据的方法及存储器 - Google Patents
存储器输出页面零数据的方法及存储器 Download PDFInfo
- Publication number
- CN103942156A CN103942156A CN201310019840.8A CN201310019840A CN103942156A CN 103942156 A CN103942156 A CN 103942156A CN 201310019840 A CN201310019840 A CN 201310019840A CN 103942156 A CN103942156 A CN 103942156A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- area
- zero
- tlb
- 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
Abstract
本发明公开了一种存储器输出页面零数据的方法,包括:获取页面的虚拟地址;查找与页面的虚拟地址相应的旁路转换缓冲TLB表项;若TLB命中,则判断页面中预定的页面区域是否全为0数据;若页面区域全为0数据,则向外输出0数据或向寄存器发送置0信号,以使接收页面区域数据的寄存器的存储位置为0。由于本发明避免了从缓存中读取页面区域的零数据,而是直接输出0数据至及寄存器或将寄存器置0,这大大提高了存储器的读取速度。
Description
技术领域
本发明涉及电子存储技术领域,具体涉及一种存储器输出页面零数据的方法及存储器。
背景技术
在电子存储技术领域中,典型的单核心处理器的存储器可以分为一级缓存(L1cache)、二级缓存(L2cache)、内存和磁盘几个层次,其访问速度依次递减,容量依次递增。为了使存储器能够支持更大的容量需求,业界提出了虚拟存储器的技术,即在存储器中增加虚拟存储器,虚拟存储器通过“虚拟地址-物理地址”的映射表(又称页表),来实现比物理存储器(即内存)容量更大的虚拟存储。
在采用虚拟存储器技术之后,处理器在进行存储器数据访问时,需要先通过虚拟存储器将虚拟地址转换成物理地址,然后用物理地址访问缓存和内存。如图1所示,图1表示了存储器的读访问过程,其中缓存的索引一般为虚拟地址的部分字段。具体的,存储器的读访问处理过程如下:输入虚拟地址,将虚拟地址与旁路转换缓冲(Translation lookaside buffer,TLB)101中的虚拟地址标记中的地址进行比较,若TLB命中,则TLB101将虚拟地址转换为物理地址,并将物理地址和一级缓存102包含的一级缓存标记(L1cache-tag)中的地址进行比较,若命中,则从一级缓存数据中获得需要的数据。当一级缓存未命中,则需要对二级缓存进行访问,若二级缓存也未命中,则需要对内存进行访问。
在对现有技术的研究和实践过程中,本发明的发明人发现,虚拟存储的页面中,零页占所有页面的比例大。虽然零页数据全为0,但是传统的存储器访问并没有对零页数据进行特殊处理,仍然需要从缓存或内存中读取,读取零页数据的速度与读取其他页面数据的速度相当,并无读取速度上的优势。因此,如果能够提高零页数据的读取速度,将大大提升整体的数据读取效率。
发明内容
本发明实施例提供一种存储器输出页面零数据的方法及存储器,可以提高页面零数据的读取速度。
本发明实施例提供的一种存储器输出页面零数据的方法,包括:
获取页面的虚拟地址;
查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据,若所述页面区域全为0数据,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
本发明实施例提供的一种存储器,包括:
获取单元,用于获取页面的虚拟地址;
查找单元,用于查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
判断单元,用于若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据;
输出单元,用于若所述页面区域全为0数据,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
本发明实施例还提供了一种存储器,包括旁路转换缓冲TLB和与所述TLB连接的高速缓冲存储器,
所述TLB设有用于输出第一信号的第一输出端和用于输出第二信号的第二输出端,所述第一信号用于表示所述TLB是否命中,所述第二信号用于表示访问的页面中的预定大小的页面区域是否全为0数据;
所述TLB的第一输出端和所述TLB的第二输出端分别连接门电路的第一输入端和所述门电路的第二输入端,所述门电路的输出端连接数据选择器的数据选择输入端,所述高速缓冲存储器的数据输出端连接所述数据选择器的数据输入端;
所述门电路输出端用于当所述第一输入端输入的第一信号表示所述TLB命中时,而且当所述第二输入端输入的第二信号表示访问的页面中的预定大小的页面区域全为0数据时,所述门电路输出端向所述数据选择器的数据选择输入端输出有效选择信号,以使所述数据选择器的数据输出端输出0数据。
实施例中,在所述TLB命中后,以及当所访问的页面中的预定的页面区域对应的零页属性表示所述页面区域全为0数据,则直接从数据输出端输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0,而没有继续从缓存中读取所述页面区域的0数据。由于无需读取缓存中的数据,直接输出0数据至及寄存器或将寄存器置0,这大大提高了页面的读取速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有的访问存储器的示意图;
图2是实施例1提供的一种存储器输出页面零数据的方法的流程示意图;
图3是实施例2提供的一种存储器输出页面零数据的方法的流程示意图;
图4是实施例3提供的一种存储器输出页面零数据的方法的流程示意图;
图5是实施例3提供的一种存储器输出页面零数据的方法的程序处理流程示意图;
图6是实施例4提供的一种存储器输出页面零数据的方法的流程示意图;
图7是实施例5提供的一种存储器的结构示意图;
图8是实施例6提供的一种存储器的结构示意图;
图9是实施例7提供的一种存储器的结构示意图;
图10是实施例8提供的一种存储器的结构示意图;
图11是实施例9提供的一种存储器的结构示意图;
图12是实施例10提供的一种存储器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例公开了一种存储器输出页面零数据的方法,流程图如图2所示,包括:
201、获取页面的虚拟地址,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
处理器接收到应用程序发来的虚拟地址后,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
202、若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据。
若查找到与所述虚拟地址相对应的TLB表项,即所述TLB命中,则可以对所述页面中预定的页面区域是否全为0进行判断。所述预定的页面区域可为预定大小的页面区域,如二分之一页、四分之一页或者八分之一页,或者更细粒度的页面区域,当然,还可以是整个页面。
203、若所述页面区域全为0数据,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
若查询到的所述页面区域包含的数据全为0,则无需将虚拟地址转换成物理地址,以及从一级缓存读取所述页面区域的数据,而是直接在数据输出端生成0数据,并向外输出0数据,即直接向目标寄存器返回0数据,或者将用于接收所述页面区域数据的寄存器直接置为0。
由于省却了访问缓存的过程,因此,本实施例方法提高了读取零数据页面区域的速度,从而提高了读取页面的速度。
实施例2
本发明实施例公开了一种存储器输出页面零数据的方法,流程图如图3所示,包括:
301、获取页面的虚拟地址,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
处理器接收到应用程序发来的虚拟地址后,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
302、若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据,以及判断所述页面是否为只读页面。
所述预定的页面区域可为二分之一页、四分之一页或者八分之一页,或者更细粒度的页面区域,当然,还可以是整个页面。
303、若所述页面区域全为0数据,而且所述页面为只读页面,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
在上述实施例中,由于0数据并非从缓存或内存中读取,而是从存储器的输出端直接生成并输出0数据,因此,对该页面区域难以进行写操作,为了避免写操作情况的发生,本发明实施例即仅当访问只读页面的0数据页面区域时,向外直接输出0数据。由于省却了访问缓存的过程,因此,本实施例方法提高了读取零数据页面区域的速度,从而提高了读取页面的速度。
为了更好的解决本发明技术问题,在本实施例的基础上,还可以采取以下进一步措施。
在所述获取页面的虚拟地址的步骤之前,本实施例方法还可以包括以下步骤:在所述TLB中设置与页面中预定的页面区域对应的零页属性;检测所述页面是否为只读页面,以及检测所述页面中预定的页面区域是否为全为0数据;若所述页面为只读页面,而且所述页面区域全为0数据,则将所述页面区域对应的零页属性置为有效状态。
因此,判断所述页面中预定的页面区域是否全为0数据以及判断所述页面是否为只读页面只需查看零页属性是否为有效状态即可得到判断结果。具体的,该判断步骤包括:查询与所述页面区域对应的零页属性;若查询到的所述零页属性置为有效状态,则判断所述页面区域全为0数据,而且所述页面为只读页面。
简而言之,当查询到所述零页属性为有效状态时,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
此外,在本实施例中,为了节约TLB的资源,可以在所述TLB的保留位中设置所述零页属性。若所述TLB中没有多余的保留位,则可以添加位数,以设置页面区域的零页属性。
实施例3
本发明实施例公开了一种存储器输出页面零数据的方法,流程图如图4所示,包括:
401、获取页面的虚拟地址,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
处理器接收到应用程序发来的虚拟地址后,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
402、若所述TLB命中,则判断所述页面是否为只读零页。
具体的,即判断所述页面的整个页面是否全为0数据,而且判断所述页面是否为只读页面。当所述页面全为0数据,而且所述页面为只读页面时,则判断所述页面为只读零页。
403、若判断所述页面为只读零页,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
本实施例是针对访问的页面为只读零页(全页数据都为0的只读页面)的情况进行说明。应用本实施例方法,当所访问的页面为只读零页时,无需从缓存读取数据,直接输出零数据,或者将用于存储所述页面的寄存器置为0,提高了零页的读取速度。
在本实施例中,由于0数据并非从缓存或内存中读取,因此,对该页面难以进行写操作,为了避免写操作情况的发生,本发明实施例仅将只读页面中的0数据向外直接输出。
以下结合图5,对本实施例进行进一步的说明。
本实施例方法的处理流程可以包括:
501、开始存储器的读操作。
502、判断TLB是否命中。
若TLB命中,则实施步骤503;
若TLB未命中,则返回步骤501。
503、判断页面是否为只读零页。
若页面的零页属性为有效状态,则表示所述页面为只读零页。
若判断页面为只读零页,则实施步骤504:输出0数据或将目标寄存器置0。这里的目标寄存器为存储器读操作的目的端,即用于存储该页面的寄存器。
若判断页面不为只读零页,则实施步骤505:依据现有的TLB命中后的处理方法处理。例如,将虚拟地址转换为物理地址,将物理地址与一级缓存标记进行比较,若命中,读取一级缓存中的页面数据等。
为了更好的解决本发明技术问题,在本实施例的基础上,还可以采取以下进一步措施。
在所述获取页面的虚拟地址的步骤之前,本实施例方法还可以包括以下步骤:在所述TLB中设置与页面中预定的页面区域对应的零页属性;检测所述页面是否为只读零页;若所述页面为只读零页,则将所述页面区域对应的零页属性置为有效状态。
此外,还需说明的是,检测所述页面是否为只读零页可以分为检测所述页面是否为只读页面和检测所述页面是否为零页。在所述检测所述页面是否为只读页面的步骤之后,若所述页面为非只读页面,则将所述零页属性置为无效状态;在所述检测所述页面是否为零页的步骤之后,若所述页面不为零页,则将所述零页属性置为无效状态。简而言之,当检测所述页面不为零页时,将所述零页属性置为无效状态。
因此,判断所述页面是否为只读零页,只需查看零页属性是否为有效状态即可得到判断结果。具体的,该判断步骤包括:查询与所述页面区域对应的零页属性;若查询到的所述零页属性置为有效状态,则判断所述页面为只读零页。
因此,当查询到所述零页属性为有效状态时,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
此外,若查询到的所述零页属性为无效状态,则从所述页面的存储区域中读取所述页面数据,并向外输出。具体的,可以从所述TLB中读取与所述虚拟地址对应的物理地址,以及根据所述物理地址从高速缓冲存储器中读取所述页面区域的数据,并向外输出。
优选的,在本发明中,当所述页面为只读零页时,可以将所述页面对应的零页属性置为0,所述0表示所述零页属性为有效状态,因此,若查询到的所述页面对应的零页属性设为0,则向外输出0数据或将向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
在本实施例中,为了节约TLB的资源,可以在所述TLB的保留位中设置所述零页属性。若所述TLB中没有多余的保留位,则可以添加位数,以设置页面区域的零页属性。
在本实施例中,一个零页属性不仅可以对应一个页面,还可以与多个页面对应。例如,在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与至少两个页面对应的共享零页属性;以及检测所述至少两个页面是否为只读零页,若所述至少两个页面都为只读零页,则将所述至少两个页面共同对应的零页属性置为有效状态。
因此,步骤403可以包括:当查询到所述页面对应的共享零页属性为有效状态时,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
这里需要指出的是,若其中的部分页面不为只读零页,则该零页属性设置为无效状态。由于多个页面共享零页属性,节约了TLB中的位资源。
此外,还需说明的是,在本实施例中,由于零页数据并不是从缓存或内存中读取,而是直接生成并输出零数据,因此,对于只读零页而言,可以不在缓存或内存中保存,从而提高缓存或内存的空间利用率。
实施例4
本发明实施例公开了一种存储器输出页面零数据的方法,流程图如图6所示,包括:
601、在所述TLB中设置与页面中预定的页面区域对应的零页属性。
可以在TLB的保留位中设置页面区域对应的零页属性,若没有保留位,可以添加位数,以设置页面区域对应的零页属性。预定的页面区域可以为预定大小的页面区域,如二分之一、四分之一或者八分之一等大小的页面。
具体的,可以在与所述页面区域对应的零页属性中设置编码,所述编码对应所述页面中的一个页面区域。
602、检测所述页面是否为只读页面,以及检测所述页面中预定的页面区域是否为全为0数据,若所述页面为只读页面,而且所述页面区域全为0数据,则将所述页面区域对应的零页属性置为有效状态。
以下以预定大小的页面区域为四分之一页面为例进行说明。一个页面包含四个四分之一页面,按照顺序可以分为第一个四分之一页面、第二个四分之一页面、第三个四分之一页面、第四个四分之一页面。所述编码即是对这四个四分之一页面进行划分,每个编码对应一个四分之一页面。该编码可以为独热编码,可以分别用“1000”、“0100”、“0010”、“0001”表示第一至第四个四分之一页,同时独热编码的有效位为1,所述1表示所述独热编码对应的页面区域包含的数据全为0,即表示零页属性置为有效状态。
此外,还需说明的是,在所述检测所述页面是否为只读页面的步骤之后,若所述页面为非只读页面,则将所述零页属性置为无效状态;以及在所述检测所述页面中预定的页面区域是否为全为0数据的步骤之后,若所述页面区域不全为0数据,则将所述零页属性置为无效状态。
603、获取页面的虚拟地址,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
处理器接收到应用程序发来的虚拟地址后,查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项。
604、若所述TLB命中,则查询与所述页面区域对应的零页属性。
具体的,在所述TLB命中后,根据所述页面的页内偏移地址,确定被访问的所述页面区域。例如,预定大小的页面区域为四分之一页,则根据业内偏移地址的高两位判断访问的是页面中的第四个四分之一页面。
在确定被访问的所述页面区域之后,可以在TLB中查询设置有与确定的页面区域对应的编码的零页属性。例如,在确定被访问的页面区域是第四个四分之一页面之后,查询设置有与该第四个四分之一页面对应的编码的零页属性。
605、若查询到的所述零页属性为有效状态,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
例如,若查询到的页面区域对应的独热编码的有效位为1,则所述向外输出对应于所述页面区域的0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
此外,若查询到的所述零页属性为无效状态,则从所述页面的存储区域中读取所述页面数据,并向外输出。具体的,可以从所述TLB中读取与所述虚拟地址对应的物理地址,以及根据所述物理地址从高速缓冲存储器中读取所述页面区域的数据,并向外输出。
在本实施例中,一个零页属性可以不仅对应一个页面区域,还可以与多个页面区域对应。例如,在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与至少两个页面区域对应的零页属性;以及检测所述至少两个页面区域分别所在的页面是否都为只读页面而且所述至少两个页面区域所包含的数据是否全为0,若所述至少两个页面区域分别所在的页面都为只读页面,而且所述至少两个页面区域包含的数据全为0,则将所述至少两个页面区域对应的共享零页属性置为有效状态。这里需要指出的是,当部分页面区域不为只读页面的区域或者包含非0数据,则该零页属性设置为无效状态。由于多个页面区域共享零页属性,节约了TLB中的位资源。
因此,步骤604可以包括:若所述TLB命中,查询与所述页面区域对应的共享零页属性;若查询到的所述共享零页属性置为有效状态,向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
这里还需说明的是,在实施例1至4中,在判断所述页面中预定的页面区域是否全为0数据之后,若所述页面区域全为0数据,则停止在高速缓冲存储器中查找所述页面区域的数据。由于不从高速缓冲存储器中读取页面区域的数据,而是向外直接输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0,因此,可以停止在高速缓冲存储器中查找所述页面区域数据的操作,以节约能耗。
实施例5
如图7所示,本发明实施例提供了一种存储器,包括:
获取单元701,用于获取页面的虚拟地址;
查找单元702,用于查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
判断单元703,用于若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据;
输出单元704,用于若所述页面区域全为0数据,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
本实施例中,所述预定大小的页面区域可为二分之一页、四分之一页或者八分之一页,或者更细粒度的页面区域,当然,还可以是整个页面。所述输出单元704并不从缓存或内存中读取所述页面区域的0数据,而是直接向外输出0,从而提高页面的读取速度。
实施例6
如图8所示,本发明实施例提供了一种存储器,包括:
获取单元801,用于获取页面的虚拟地址;
查找单元802,用于查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
判断单元803,用于若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据,以及判断所述页面是否为只读页面;
输出单元804,用于若判断所述页面区域全为0数据,而且所述页面为只读页面,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
优选的,所述页面中预定的页面区域为所述页面的整个页面。
优选的,所述存储器还包括设置单元805和检测单元806,所述设置单元805用于在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与页面中预定的页面区域对应的零页属性;所述检测单元806用于检测所述页面是否为只读页面,以及检测所述页面中预定的页面区域是否为全为0数据,若所述页面为只读页面,而且所述页面区域全为0数据,则将所述页面区域对应的零页属性置为有效状态;所述判断单元包括查询子单元和判断子单元,所述查询子单元用于查询与所述页面区域对应的零页属性;所述判断子单元用于若查询到的所述零页属性置为有效状态,则判断所述页面区域全为0数据,而且所述页面为只读页面。
优选的,所述设置单元805还用于在所述TLB的保留位中设置所述零页属性。
优选的,所述存储器还包括关闭单元807,所述关闭单元807用于在所述判断所述页面中预定的页面区域是否全为0数据的步骤之后,若所述页面区域全为0数据,停止在高速缓冲存储器中查找所述页面区域的数据。
实施例7
如图9所示,本发明实施例提供了一种存储器,包括:
获取单元901,用于获取页面的虚拟地址;
查找单元902,用于查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
判断单元903,用于若所述TLB命中,则判断所述页面是否为只读零页;
输出单元904,用于若判断所述页面为只读零页,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
优选的,所述存储器还包括设置单元905和检测单元906,所述设置单元905用于在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与页面中预定的页面区域对应的零页属性;所述检测单元906用于检测所述页面是否为只读零页,若所述页面为只读零页,则将所述页面区域对应的零页属性置为有效状态。所述判断单元903包括查询子单元908,所述查询子单元908用于查询与所述页面区域对应的零页属性;所述输出单元904用于若查询到的所述零页属性置为有效状态,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
优选的,所述设置单元905进一步用于在所述TLB的保留位中设置所述零页属性。
优选的,所述设置单元905还用于在所述TLB中设置与至少两个页面对应的共享零页属性;
所述检测单元906还用于检测所述至少两个页面是否为只读零页,若所述至少两个页面都为只读零页,则将所述至少两个页面共同对应的零页属性置为有效状态;
所述判断单元903还用于查询与所述页面对应的共享零页属性;若查询到的所述共享零页属性置为有效状态,向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
优选的,所述存储器还包括关闭单元907,所述关闭单元907用于在所述判断所述页面中预定的页面区域是否全为0数据的步骤之后,若所述页面区域全为0数据,停止在高速缓冲存储器中查找所述页面区域的数据。
实施例8
如图10所示,本发明实施例提供了一种存储器,包括:
设置单元1005,用于在所述TLB中设置与页面中预定的页面区域对应的零页属性;
检测单元1006,用于检测所述页面是否为只读页面,以及检测所述页面中预定的页面区域是否为全为0数据,若所述页面为只读页面,而且所述页面区域全为0数据,则将所述页面区域对应的零页属性置为有效状态;
获取单元1001,用于获取页面的虚拟地址;
查找单元1002,用于查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
判断单元1003,所述判断单元1003包括查询子单元1008,所述查询子单元1008用于查询与所述页面区域对应的零页属性;
输出单元1004,用于若查询到的所述零页属性为有效状态,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
优选的,所述设置单元1005进一步用于在所述TLB的保留位中设置所述零页属性。
优选的,所述检测单元1006还用于在所述获取页面的虚拟地址的步骤之前,在所述零页属性中设置与所述页面区域对应的编码;
所述查询子单元1008还用于根据所述页面的页内偏移地址,确定被访问的所述页面区域,以及在确定被访问的所述页面区域之后,查询设置有与确定的页面区域对应的编码的零页属性。
优选的,所述编码为独热编码。
优选的,所述检测单元1006还用于在所述获取页面的虚拟地址的步骤之前,检测所述页面是否为只读页面,以及检测所述页面是否全为0数据,若所述页面为只读页面,而且所述页面区域全为0数据,将所述页面区域对应的零页属性中的独热编码的有效位设为1。
优选的,所述设置单元1005还用于在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与至少两个页面区域对应的共享零页属性;
所述检测单元1006还用于检测所述至少两个页面区域分别所在的页面是否都为只读页面,以及检测所述至少两个页面区域包含的数据是否全为0数据,若所述至少两个页面区域分别所在的页面都为只读页面,而且所述至少两个页面区域包含的数据全为0,则将所述至少两个页面区域对应的共享零页属性置为有效状态;
所述查询子单元1008还用于查询与所述页面区域对应的共享零页属性;
所述输出单元1004还用于若查询到的所述共享零页属性置为有效状态,向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
优选的,所述存储器还包括关闭单元1007,所述关闭单元1007用于在所述判断所述页面中预定的页面区域是否全为0数据的步骤之后,若所述页面区域全为0数据,停止在高速缓冲存储器中查找所述页面区域的数据。
实施例9
如图11所示,本发明实施例提供了一种存储器,包括旁路转换缓冲TLB1101和与所述TLB连接的高速缓冲存储器1102,所述TLB1101设有用于输出第一信号的第一输出端和用于输出第二信号的第二输出端,所述第一信号用于表示所述TLB1101是否命中,所述第二信号用于表示访问的页面中的预定大小的页面区域是否全为0数据;
所述TLB1101的第一输出端和所述TLB1101的第二输出端分别连接门电路1103的第一输入端和所述门电路1103的第二输入端,所述门电路1103的输出端连接数据选择器1104的数据选择输入端,所述高速缓冲存储器1102的数据输出端连接所述数据选择器1104的数据输入端;
所述门电路1103输出端用于当所述第一输入端输入的第一信号表示所述TLB1101命中时,而且当所述第二输入端输入的第二信号表示访问的页面中的预定大小的页面区域全为0数据时,所述门电路1103输出端向所述数据选择器1104的数据选择输入端输出有效选择信号,以使所述数据选择器的数据输出端输出0数据。
例如,所述门电路1103可以为与门电路1103。当所述TLB1101向与门电路1103输入有效信号0和有效命中信号0,则与门电路1103输出有效选择信号sel0,所述数据选择器1104在接收到sel0后,直接0数据输出。因此,在读取零页数据时,可以不从缓存或内存中读取,而是由所述数据选择器1104直接生成0数据输出,从而提高读取零页数据的速度。在本实施例中,sel0信号是在TLB1101命中及访问的页面的预定大小的页面区域全为0产生的,所述预定大小的页面区域可为二分之一页、四分之一页或者八分之一页,或者更细粒度的页面区域,当然,还可以是整个页面。sel0信号用于控制所述数据选择器1104的数据输出,当与门电路1103输出的不是sel0信号,则数据选择器1104可以选择高速缓冲存储器1102输出的数据。
实施例10
如图12所示,本发明实施例提供了一种存储器,包括旁路转换缓冲TLB1201和高速缓冲存储器1202,所述TLB1201设有用于输出第一信号的第一输出端和用于输出第二信号的第二输出端,所述第一信号用于表示所述TLB1201是否命中,所述第二信号用于表示访问的页面中的预定大小的页面区域是否全为0数据;
所述TLB1201的第一输出端和所述TLB1201的第二输出端分别连接门电路1203的第一输入端和所述门电路1203的第二输入端,所述门电路1203的输出端连接数据选择器1204的数据选择输入端,所述高速缓冲存储器1202的数据输出端连接所述数据选择器1204的数据输入端;
所述门电路1203输出端用于当所述第一输入端输入的第一信号表示所述TLB1201命中时,而且当所述第二输入端输入的第二信号表示访问的页面中的预定大小的页面区域全为0数据时,向所述数据选择器1204的数据选择输入端输出有效选择信号,以使所述数据选择器的数据输出端输出0数据。
所述数据选择器1204的数据输出端用于当所述的数据选择输入端输入所述门电路1203输出的所述有效选择信号时,输出0数据。
优选的,所述门电路1203为与门电路。例如,当所述第一信号有效时,所述第一信号表示所述TLB1201命中,当所述第二信号有效时,所述第二信号表示访问的页面中的预定大小的页面区域全为0数据,当所述与门电路的第一输入端和第二输入端分别输入有效的第一信号和有效的第二信号时,则所述与门电路的输出端输出有效选择信号。
优选的,所述门电路1203输出端连接门控时钟电路1205的输入端,所述门控时钟电路1205的输出端连接所述高速缓冲存储器1202的门控时钟信号输入端,所述门控时钟电路1205的输出端用于当所述门电路1203输出端输出所述有效选择信号时,向所述高速缓冲存储器1202输入用于表示表示停止所述高速缓冲存储器工作的信号;
所述门控时钟电路的输出端还连接所述TLB的门控时钟信号的输入端,所述门控时钟电路的输出端还用于当所述门电路输出端输出所述有效选择信号时,向所述TLB输入用于表示停止从所述TLB的存储阵列中读取物理地址的信号。
在本实施例中,当所述TLB1201向所述与门电路输入有效信号和有效命中信号,则所述与门电路输出有效选择信号sel0,所述数据选择器1204在接收到sel0后,直接0数据输出。因此,在读取零页数据时,可以不从缓存或内存中读取,因此,sel0此时可以作为门控时钟关闭所述高速缓冲存储器1202中用于读取访问页面数据的单元以及所述TLB1201中用于向缓存读取数据的单元,以节省能耗。
优选的,所述门电路1203输出端还连接寄存器(未在图12示出)的输入端,所述门电路1203输出端用于向所述寄存器输入所述有效选择信号,以使所述寄存器将用于接收所述页面区域数据的存储区域置为0。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种存储器输出页面零数据的方法及存储器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (26)
1.一种存储器输出页面零数据的方法,其特征在于,包括:
获取页面的虚拟地址;
查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据;
若所述页面区域全为0数据,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
2.根据权利要求1所述的存储器输出页面零数据的方法,其特征在于,还包括:若所述TLB命中,则判断所述页面是否为只读页面;
所述向外输出0数据或向寄存器发送置0信号的步骤包括:在判断所述页面区域是否全为0数据之后,以及在判断所述页面是否为只读页面之后,若判断所述页面区域全为0数据,而且所述页面为只读页面,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
3.根据权利要求2所述的存储器输出页面零数据的方法,其特征在于,所述页面中预定的页面区域为所述页面的整个页面。
4.根据权利要求2或3所述的存储器输出页面零数据的方法,其特征在于,还包括:在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与页面中预定的页面区域对应的零页属性;
检测所述页面是否为只读页面,以及检测所述页面中预定的页面区域是否为全为0数据,若所述页面为只读页面,而且所述页面区域全为0数据,则将所述页面区域对应的零页属性置为有效状态;
所述判断所述页面中预定的页面区域是否全为0数据以及判断所述页面是否为只读页面的步骤包括:
查询与所述页面区域对应的零页属性;
若查询到的所述零页属性置为有效状态,则判断所述页面区域全为0数据,而且所述页面为只读页面。
5.根据权利要求4所述的存储器输出页面零数据的方法,其特征在于,所述在所述TLB中设置与页面中预定的页面区域对应的零页属性的步骤具体为:在所述TLB的保留位中设置所述零页属性。
6.根据权利要求3所述的存储器输出页面零数据的方法,其特征在于,所述方法还包括:
在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与至少两个页面对应的共享零页属性,以及检测所述至少两个页面是否为只读零页,若所述至少两个页面都为只读零页,则将所述至少两个页面共同对应的零页属性置为有效状态;
所述判断所述页面中预定的页面区域是否全为0数据以及判断所述页面是否为只读页面的步骤包括:
查询与所述页面对应的共享零页属性;
若查询到的所述共享零页属性置为有效状态,向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
7.根据权利要求4所述的存储器输出页面零数据的方法,其特征在于,
所述在所述TLB中设置与页面中预定的页面区域对应的零页属性的步骤包括:在所述零页属性中设置与所述页面区域对应的编码;
所述查询与所述页面区域对应的零页属性的步骤包括:
根据所述页面的页内偏移地址,确定被访问的所述页面区域;
在确定被访问的所述页面区域之后,查询设置有与确定的页面区域对应的编码的零页属性。
8.根据权利要求7所述的存储器输出页面零数据的方法,其特征在于,所述编码为独热编码。
9.根据权利要求8所述的存储器输出页面零数据的方法,其特征在于,
所述将所述页面区域对应的零页属性置为有效状态的步骤包括:将所述页面区域对应的零页属性中的独热编码的有效位设为1。
10.根据权利要求7所述的存储器输出页面零数据的方法,其特征在于,所述在所述TLB中设置与页面中预定的页面区域对应的零页属性的步骤包括:在所述TLB中设置与至少两个页面区域对应的共享零页属性;
检测所述至少两个页面区域分别所在的页面是否都为只读页面,以及检测所述至少两个页面区域包含的数据是否全为0,若所述至少两个页面区域分别所在的页面都为只读页面,而且所述至少两个页面区域包含的数据全为0,则将所述至少两个页面区域对应的共享零页属性置为有效状态;
所述判断所述页面中预定的页面区域是否全为0数据以及判断所述页面是否为只读页面的步骤包括:
查询与所述页面区域对应的共享零页属性;
若查询到的所述共享零页属性置为有效状态,向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
11.根据权利要求1或2所述的存储器输出页面零数据的方法,其特征在于,还包括:在所述判断所述页面中预定的页面区域是否全为0数据的步骤之后,若所述页面区域全为0数据,则停止在高速缓冲存储器中查找所述页面区域的数据。
12.一种存储器,包括:
获取单元,用于获取页面的虚拟地址;
查找单元,用于查找与所述页面的虚拟地址相应的旁路转换缓冲TLB表项;
判断单元,用于若所述TLB命中,则判断所述页面中预定的页面区域是否全为0数据;
输出单元,用于若所述页面区域全为0数据,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
13.根据权利要求12所述的存储器,其特征在于,
所述判断单元还用于若所述TLB命中,则判断所述页面是否为只读页面;
所述输出单元还用于在判断所述页面区域是否全为0数据之后,以及在判断所述页面是否为只读页面之后,若所述页面区域全为0数据,而且所述页面为只读页面,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
14.根据权利要求13所述的存储器,其特征在于,所述页面中预定的页面区域为所述页面的整个页面。
15.根据权利要求13或14所述的存储器,其特征在于,还包括设置单元和检测单元,
所述设置单元用于在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与页面中预定的页面区域对应的零页属性;
所述检测单元用于在所述获取页面的虚拟地址的步骤之前,检测所述页面是否为只读页面,以及检测所述页面中预定的页面区域是否为全为0数据,若所述页面为只读页面,而且所述页面区域全为0数据,则将所述页面区域对应的零页属性置为有效状态;
所述判断单元包括查询子单元,所述查询子单元用于查询与所述页面区域对应的零页属性;
所述输出单元还用于若查询到的所述零页属性置为有效状态,则向外输出0数据或向寄存器发送置0信号,以使接收所述页面区域数据的寄存器的存储位置为0。
16.根据权利要求15所述的存储器,其特征在于,所述设置单元进一步用于在所述TLB的保留位中设置所述零页属性。
17.根据权利要求14所述的存储器,其特征在于,
所述设置单元还用于在所述TLB中设置与至少两个页面对应的共享零页属性;
所述检测单元还用于检测所述至少两个页面是否为只读零页,若所述至少两个页面都为只读零页,则将所述至少两个页面共同对应的零页属性置为有效状态;
所述判断单元包括查询子单元,所述查询子单元用于查询与所述页面对应的共享零页属性;
所述输出单元还用于若查询到的所述共享零页属性置为有效状态,向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
18.根据权利要求15所述的存储器,其特征在于,所述检测单元还用于在所述获取页面的虚拟地址的步骤之前,在所述零页属性中设置与所述页面区域对应的编码;
所述查询子单元还用于根据所述页面的页内偏移地址,确定被访问的所述页面区域,以及在确定被访问的所述页面区域之后,查询设置有与确定的页面区域对应的编码的零页属性。
19.根据权利要求18所述的存储器,其特征在于,所述编码为独热编码。
20.根据权利要求19所述的存储器,其特征在于,所述检测单元还用于在所述获取页面的虚拟地址的步骤之前,检测所述页面是否为只读页面,以及检测所述页面是否全为0数据,若所述页面为只读页面,而且所述页面区域全为0数据,将所述页面区域对应的零页属性中的独热编码的有效位设为1。
21.根据权利要求18所述的存储器,其特征在于,
所述设置单元还用于在所述获取页面的虚拟地址的步骤之前,在所述TLB中设置与至少两个页面区域对应的共享零页属性;
所述检测单元还用于检测所述至少两个页面区域分别所在的页面是否都为只读页面,以及检测所述至少两个页面区域包含的数据是否全为0数据,若所述至少两个页面区域分别所在的页面都为只读页面,而且所述至少两个页面区域包含的数据全为0,则将所述至少两个页面区域对应的共享零页属性置为有效状态;
所述查询子单元还用于查询与所述页面区域对应的共享零页属性;
所述输出单元还用于若查询到的所述共享零页属性置为有效状态,向外输出0数据或向寄存器发送置0信号,以使接收所述页面数据的寄存器的存储位置为0。
22.根据权利要求12或13所述的存储器,其特征在于,还包括关闭单元,所述关闭单元用于在所述判断所述页面中预定的页面区域是否全为0数据的步骤之后,若所述页面区域全为0数据,停止在高速缓冲存储器中查找所述页面区域的数据。
23.一种存储器,包括旁路转换缓冲TLB和与所述TLB连接的高速缓冲存储器,其特征在于,
所述TLB设有用于输出第一信号的第一输出端和用于输出第二信号的第二输出端,所述第一信号用于表示所述TLB是否命中,所述第二信号用于表示访问的页面中的预定大小的页面区域是否全为0数据;
所述TLB的第一输出端和所述TLB的第二输出端分别连接门电路的第一输入端和所述门电路的第二输入端,所述门电路的输出端连接数据选择器的数据选择输入端,所述高速缓冲存储器的数据输出端连接所述数据选择器的数据输入端;
所述门电路输出端用于当所述第一输入端输入的第一信号表示所述TLB命中时,而且当所述第二输入端输入的第二信号表示访问的页面中的预定大小的页面区域全为0数据时,向所述数据选择器的数据选择输入端输出有效选择信号,以使所述数据选择器的数据输出端输出0数据。
24.根据权利要求23所述的存储器,其特征在于,所述门电路为与门电路。
25.根据权利要求23或24所述的存储器,其特征在于,所述门电路输出端连接门控时钟电路的输入端,所述门控时钟电路的输出端连接所述高速缓冲存储器的门控时钟信号输入端,所述门控时钟电路的输出端用于当所述门电路输出端输出所述有效选择信号时,向所述高速缓冲存储器输入用于表示停止所述高速缓冲存储器工作的信号;所述门控时钟电路的输出端还连接所述TLB的门控时钟信号的输入端,所述门控时钟电路的输出端还用于当所述门电路输出端输出所述有效选择信号时,向所述TLB输入用于表示停止从所述TLB的存储阵列中读取物理地址的信号。
26.根据权利要求23所述的存储器,其特征在于,所述门电路输出端还连接寄存器的输入端,所述门电路输出端用于向所述寄存器输入所述有效选择信号,以使所述寄存器将用于接收所述页面区域数据的存储区域置为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310019840.8A CN103942156B (zh) | 2013-01-18 | 2013-01-18 | 存储器输出页面零数据的方法及存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310019840.8A CN103942156B (zh) | 2013-01-18 | 2013-01-18 | 存储器输出页面零数据的方法及存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942156A true CN103942156A (zh) | 2014-07-23 |
CN103942156B CN103942156B (zh) | 2018-01-16 |
Family
ID=51189828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310019840.8A Expired - Fee Related CN103942156B (zh) | 2013-01-18 | 2013-01-18 | 存储器输出页面零数据的方法及存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103942156B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694050A (zh) * | 2017-03-30 | 2018-10-23 | 维布络有限公司 | 对存储系统的软件包进行更新的方法和系统 |
CN110008154A (zh) * | 2019-04-16 | 2019-07-12 | 北京智芯微电子科技有限公司 | 提高处理器与访存总线时序的方法及内存属性预测器 |
CN111414196A (zh) * | 2020-04-03 | 2020-07-14 | 中国人民解放军国防科技大学 | 一种零值寄存器的实现方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105938A1 (en) * | 2001-11-30 | 2003-06-05 | Cooksey Robert N. | Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher |
US20100070678A1 (en) * | 2008-09-12 | 2010-03-18 | Vmware, Inc. | Saving and Restoring State Information for Virtualized Computer Systems |
CN102163320A (zh) * | 2011-04-27 | 2011-08-24 | 福州瑞芯微电子有限公司 | 一种图像处理专用可配置的mmu电路 |
CN102662861A (zh) * | 2012-03-22 | 2012-09-12 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存插入策略软件控制方法 |
-
2013
- 2013-01-18 CN CN201310019840.8A patent/CN103942156B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105938A1 (en) * | 2001-11-30 | 2003-06-05 | Cooksey Robert N. | Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher |
US20100070678A1 (en) * | 2008-09-12 | 2010-03-18 | Vmware, Inc. | Saving and Restoring State Information for Virtualized Computer Systems |
CN102163320A (zh) * | 2011-04-27 | 2011-08-24 | 福州瑞芯微电子有限公司 | 一种图像处理专用可配置的mmu电路 |
CN102662861A (zh) * | 2012-03-22 | 2012-09-12 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存插入策略软件控制方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694050A (zh) * | 2017-03-30 | 2018-10-23 | 维布络有限公司 | 对存储系统的软件包进行更新的方法和系统 |
CN110008154A (zh) * | 2019-04-16 | 2019-07-12 | 北京智芯微电子科技有限公司 | 提高处理器与访存总线时序的方法及内存属性预测器 |
CN111414196A (zh) * | 2020-04-03 | 2020-07-14 | 中国人民解放军国防科技大学 | 一种零值寄存器的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103942156B (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5440067B2 (ja) | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 | |
US11243889B2 (en) | Cache architecture for comparing data on a single page | |
CN109582214B (zh) | 数据访问方法以及计算机系统 | |
EP2710472B1 (en) | Memory with metadata stored in a portion of the memory pages | |
CN105808455B (zh) | 访问内存的方法、存储级内存及计算机系统 | |
KR20160132458A (ko) | 데이터 캐싱 방법, 캐시 및 컴퓨터 시스템 | |
CN103544269A (zh) | 目录的存储方法、查询方法及节点控制器 | |
CN102541510B (zh) | 一种指令缓存系统及其取指方法 | |
CN104252425A (zh) | 一种指令缓存的管理方法和处理器 | |
WO2017053109A1 (en) | Method and apparatus for cache line deduplication via data matching | |
CN107122130A (zh) | 一种数据重删方法及装置 | |
CN103942156A (zh) | 存储器输出页面零数据的方法及存储器 | |
CN107290654A (zh) | 一种fpga逻辑测试结构及方法 | |
CN115794669A (zh) | 一种扩展内存的方法、装置及相关设备 | |
CN102122270B (zh) | 在存储器中查找数据的方法和装置以及存储器 | |
CN103870204B (zh) | 一种cache中数据写入和读取方法、cache控制器 | |
CN100414518C (zh) | 改进的虚拟地址变换方法及其装置 | |
CN102024490B (zh) | 伪静态存储器及其读操作与刷新操作的控制方法 | |
CN103176753B (zh) | 存储设备及其数据管理方法 | |
WO2016106738A1 (zh) | 事务冲突检测方法、装置及计算机系统 | |
CN105335296A (zh) | 一种数据处理方法、装置及系统 | |
CN101158926B (zh) | 跟踪高速缓存中节省功率的装置和方法 | |
US9916086B2 (en) | Content-addressable memory device | |
US20100177575A1 (en) | Apparatus and method for controlling write access to a group of storage elements | |
CN110580231B (zh) | 处理电路、缓冲器、存储器及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180116 Termination date: 20210118 |