CN102866957B - 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 - Google Patents
面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 Download PDFInfo
- Publication number
- CN102866957B CN102866957B CN201210269432.3A CN201210269432A CN102866957B CN 102866957 B CN102866957 B CN 102866957B CN 201210269432 A CN201210269432 A CN 201210269432A CN 102866957 B CN102866957 B CN 102866957B
- Authority
- CN
- China
- Prior art keywords
- request
- virtual active
- page
- active page
- data
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种面向多核多线程微处理器的虚拟活跃页缓冲方法及装置,方法步骤为:构建虚拟活跃页缓冲器,根据处理器的片上访存部件的访存请求来管理虚拟活跃页缓冲器中的虚拟活跃页的构建、存储以及删除,访存请求为读请求时且在虚拟活跃页缓冲器中发生命中时直接从虚拟活跃页缓冲器中读取虚拟活跃页来提高访存性能;装置包括页预测器(1)、仲裁器(2)、虚拟活跃页标识阵列(3)、虚拟活跃页数据阵列(4)、读写队列(5)、命令队列(6)、数据返回队列(7)、未决表(8)和多路选择器(9);本发明能够增加存储器整体的活跃页数量,减少活跃页关闭后再激活的代价、提高访存带宽,具有访存性能高、可扩展性强的优点。
Description
技术领域
本发明涉及多核多线程微处理器体系结构设计中的片外存储带宽优化技术领域,具体涉及一种针对处理器线程数目较多的情况下的面向多核多线程微处理器的虚拟活跃页缓冲方法及装置。
背景技术
主流的片外存储器使用DDR2和DDR3存储器(后文统称DDR),都是基于SDRAM搭建。DDR SDRAM是一个由片排(rank)、体(bank)、行(row)和列(column)索引的四维的存储结构。存储器控制器一般以先进先出的顺序向SDRAM 传递访存指令,这种按程序顺序调度的方法实现简单,但由于存储体竞争,对同一存储体的连续访问必须等待前一个访问完成才能进行,存储器带宽利用率较低。
SDRAM 芯片中活跃页实际上和敏感放大器息息相关,SDRAM 中活跃页将被“读”到敏感放大器上,后续的访问就可以直接访问,速度很快。影响活跃页数量的最主要因素有敏感放大器的数量和功耗,但是敏感放大器的面积较大,数量不可能无限增大,另外,每个敏感放大器的功耗不小,也限制了敏感放大器的总数量。在现阶段,物理活跃页的数目受到物理制造工艺的限制非常有限,DDR2/DDR3 JDEC标准中定义了每个DDR 存储器件活跃页最多是8个,这是限制访存性能提高的主要瓶颈。
目前片外存储带宽优化主要有两个方向:(1)提高活跃页的服务请求数量,通过各种软硬件方法对访存流进行重新排序,提高存储器带宽利用率。在不破坏DDR 协议的基础上,为了确保活跃页(Open Page)服务时间长,需要存储器控制器对时间窗口中的所有请求进行调度。在保证公平性和服务质量的前提下,映射到同一页面的多个请求连续化,减少页面关闭和激活的次数,增加页面活跃的时间。(2)使连续地址均匀映射到SDRAM的多个体,实现不同体间负载基本平衡。由于访存地址存在热点(Hot-spot),即部分访存地址可能多次被访问,因此地址平衡不等于访问平衡。
突破传统的片外存储带宽优化方法在多核多线程处理器中的瓶颈,解决多核多线程处理器中由于线程间地址流的相关性小而导致的SDRAM中的活跃页被频繁开启和关闭、造成实际有效带宽优化空间受限的问题。对于多核多线程处理器,地址流间的相关性小,当线程数较多时,多基址流并发访问外部存储器,导致外部存储器的物理活跃页频繁的开启和关闭,两个连续的读请求在访问不同页面时的请求间隔时间是访问相同页面时的请求间隔时间的10倍,因此连续访问之间的页面切换严重影响访存带宽,因此存在访存性能低、活跃页关闭后再激活的代价较高的缺点。
发明内容
本发明要解决的技术问题是提供一种能够增加存储器整体的活跃页数量、减少活跃页关闭后再激活的代价、提高访存带宽、访存性能高、可扩展性强的面向多核多线程微处理器的虚拟活跃页缓冲方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向多核多线程微处理器的虚拟活跃页缓冲方法,其实施步骤如下:
1)在处理器的片上访存部件和存储器控制器之间构建虚拟活跃页缓冲器,获取来自处理器的片上访存部件的访存请求并判断访存请求的类型,如果访存请求为读请求,则跳转执行步骤2);如果访存请求为预取读请求,则跳转执行步骤4);如果访存请求为写请求,则跳转执行步骤7);
2)根据访存请求的请求地址和历史访存请求的请求地址比较判断访存请求的访存模式是否符合预设的规则访问特性,当访存模式符合预设的规则访问特性时判定为页预测命中,否则判定为页预测未命中;
3)判断访存请求的所需页是否在虚拟活跃页缓冲器中,如果访存请求对应的页在虚拟活跃页缓冲器中则从虚拟活跃页缓冲器获取数据并跳转执行步骤6);否则,当页预测命中时跳转执行步骤4),当页预测未命中时跳转执行步骤5);
4)将访存请求转换为块读请求并访问存储器控制器获取请求的页数据,将返回的页数据作为虚拟活跃页填充虚拟活跃页缓冲器,然后跳转执行步骤6);
5)发送访存请求到存储器控制器并访问存储器控制器获取请求数据;
6)将读请求数据返回给处理器的片上访存部件完成读请求,预取读请求返回的数据不需要返回给处理器的片上访存部件;
7)首先判断是否命中虚拟活跃页缓冲器中的虚拟活跃页,如果命中虚拟活跃页缓冲器中的虚拟活跃页则作废虚拟活跃页缓冲器中的所述虚拟活跃页;然后发送写请求到存储器控制器,进行访问存储器控制器完成写请求。
作为本发明面向多核多线程微处理器的虚拟活跃页缓冲方法的进一步改进:
所述步骤2)中根据访存请求的请求地址和历史访存请求的请求地址比较判断访存请求的访存模式是否符合预设的规则访问特性具体是指:当访存请求的请求地址中<rank,bank,row>索引的页被连续访问两次时,判定访存请求的访存模式符合规则访问特性,否则判定访存请求的访存模式不符合规则访问特性;其中rank为所述请求地址中的排地址,bank为所述请求地址中的体地址,row为所述请求地址中的行地址。
所述步骤4)中将返回的页数据填充虚拟活跃页缓冲器作为虚拟活跃页时具体是指通过先入先出的存储方式填充虚拟活跃页缓冲器,返回的页数据在填充虚拟活跃页数据阵列的同时,旁路输出到多路选择器;所述步骤6)中当访存请求对应的页在虚拟活跃页缓冲器时读请求数据来自虚拟活跃页数据阵列,否则来自数据返回队列填充虚拟活跃页缓冲器时的填充数据。
本发明还提供一种面向多核多线程微处理器的虚拟活跃页缓冲装置,包括页预测器、仲裁器、虚拟活跃页标识阵列、虚拟活跃页数据阵列、读写队列、命令队列、数据返回队列、未决表和多路选择器,所述页预测器的输入端、多路选择器的输出端分别与处理器的片上访存部件相连,所述命令队列的输出端、数据返回队列的输入端、未决表的输入端分别与存储器控制器相连;
所述页预测器用于接收来自处理器的片上访存部件的访存请求、判断访存请求的类型以及访存请求是否为页预测命中的页预测结果;
所述仲裁器用于仲裁来自读写队列的读写请求和来自数据返回队列的填充请求并向虚拟活跃页标识阵列输出仲裁结果;所述虚拟活跃页标识阵列用于保存虚拟活跃页的页地址和状态信息,存储器的每个体对应一个独立的标识阵列,不同体的标识阵列可以并行访问;
所述虚拟活跃页标识阵列接收来自片上访存请求的请求标识、页预测器的页预测结果、来自读写队列的读写请求和来自仲裁器的仲裁结果;
所述虚拟活跃页数据阵列用于保存虚拟活跃页的页数据,虚拟活跃页数据阵列根据读写队列的读请求读数据队列、根据数据返回队列的填充请求写数据队列;
所述读写队列用于保存读写虚拟活跃页缓冲的标识阵列和数据阵列的请求,当访存请求为读请求且访存请求标识与虚拟活跃页标识阵列中的标识比较结果为匹配时,所述读写队列缓存用于从虚拟活跃页数据阵列中读出所需数据的访存请求;当访存请求为写请求且访存请求标识与虚拟活跃页标识阵列中的标识比较结果为匹配时,所述读写队列缓存用于作废命中的虚拟活跃页的访存请求;当访存请求标识与虚拟活跃页标识阵列中的标识比较结果为不匹配时,读写队列不缓存访存请求;
所述命令队列用于保存需要发送到存储器控制器的包括普通的读、写请求或者块读请求的访存请求;
所述数据返回队列用于保存存储器控制器从外部存储器返回的读响应数据、输出填充请求和数据到数据阵列,输出填充请求到仲裁器、输出填充数据到多路选择器;
所述未决表用于保存所有等待存储器控制器返回的块读请求的状态信息,所述状态信息按照请求号索引存储于未决表中,若片上访存读请求命中虚拟活跃页数据阵列,但是请求所需数据位于记录在未决表中的一个未返回的块读请求所读取的物理页中,则将该片上访存读请求追加到在未决表中命中的块读请求项中,等待块读请求所读取的物理页数据返回时一并返回给片上访存部件;
所述多路选择器用于根据仲裁器的仲裁结果选择从虚拟活跃页数据阵列或者从数据返回队列获得返回数据并输出给处理器的片上访存部件。
作为本发明面向多核多线程微处理器的虚拟活跃页缓冲装置的进一步改进:
所述仲裁器为轮转策略仲裁器。
所述读写队列、命令队列和数据返回队列均为先入先出结构。
本发明面向多核多线程微处理器的虚拟活跃页缓冲方法具有下述优点:
1、本发明在外部存储器物理活跃页数目受限的情况下,通过为存储器的每个体虚拟多个虚拟活跃页的方式,增加了存储器整体的活跃页的数量,减少了活跃页关闭后再激活的代价、提高了访存带宽,具有访存性能高、可扩展性强的优点。
2、传统的访存调度技术主要从提高物理活跃页的服务时间、平衡多体负载的角度优化片外访存带宽,其优化空间受到外部存储器物理活跃页数目的限制,优化幅度无法进一步突破;而本发明提出了虚拟活跃页的概念,虚拟活跃页的数目可以根据需要进行线性扩展,打破了传统的仅仅依赖物理活跃页的情况下活跃页数目限制,访存带宽可以进一步提高。
3、本发明可以与传统的提高外部存储器访问带宽的方法联合使用,突破传统方法在提高访存带宽方面的极限。
本发明面向多核多线程微处理器的虚拟活跃页缓冲装置由于具有与本发明面向多核多线程微处理器的虚拟活跃页缓冲方法对应的结构,因此也具有上述本发明面向多核多线程微处理器的虚拟活跃页缓冲方法相对应的优点。
附图说明
图1为本发明实施例方法构建的虚拟活跃页缓冲器的位置示意图。
图2为本发明实施例方法中处理访存请求为读请求或预取读请求时的实施步骤示意图。
图3为本发明实施例方法中处理访存请求为写请求时的实施步骤示意图。
图4为本发明实施例装置的框架结构示意图。
图例说明:1、页预测器;2、仲裁器;3、虚拟活跃页标识阵列;4、虚拟活跃页数据阵列;5、读写队列;6、命令队列;7、数据返回队列;8、未决表;9、多路选择器。
具体实施方式
如图1、图2和图3所示,本实施例面向多核多线程微处理器的虚拟活跃页缓冲方法的实施步骤如下:
1)在处理器的片上访存部件和存储器控制器之间构建虚拟活跃页缓冲器(Virtual Open Page Buffer,简称VOP缓冲器),获取来自处理器的片上访存部件的访存请求并判断访存请求的类型,如果访存请求为读请求,则跳转执行步骤2);如果访存请求为预取读请求,则跳转执行步骤4);如果访存请求为写请求,则跳转执行步骤7);
2)根据访存请求的请求地址和历史访存请求的请求地址比较判断访存请求的访存模式是否符合预设的规则访问特性,当访存模式符合预设的规则访问特性时判定为页预测命中,否则判定为页预测未命中;
3)判断访存请求的所需页是否在虚拟活跃页缓冲器中,如果访存请求对应的页在虚拟活跃页缓冲器中则从虚拟活跃页缓冲器获取数据并跳转执行步骤6);否则,当页预测命中时跳转执行步骤4),当页预测未命中时跳转执行步骤5);
4)将访存请求转换为块读请求(块读请求每次能够返回一个页容量如1024K字节的数据,普通的读请求每次仅能够返回一个Cache行容量如16字节数据)并访问存储器控制器获取请求的页数据,将返回的页数据作为虚拟活跃页填充虚拟活跃页缓冲器,然后跳转执行步骤6);
5)发送访存请求到存储器控制器并访问存储器控制器获取请求数据;
6)将读请求数据返回给处理器的片上访存部件完成读请求,预取读请求返回的数据不需要返回给处理器的片上访存部件;
7)首先判断是否命中虚拟活跃页缓冲器中的虚拟活跃页,如果命中虚拟活跃页缓冲器中的虚拟活跃页则作废虚拟活跃页缓冲器中的虚拟活跃页;然后发送写请求到存储器控制器,进行访问存储器控制器完成写请求。
传统的调度策略调度窗口有限,如果不进行必要的体系结构优化,单纯依靠访存调度策略的优化很难进一步提高片外存储带宽的效率,而本实施例中通过增加虚拟活跃页的数量,在片外存储器活跃页有限的情况下,在片内虚拟更多的虚拟活跃页,例如为存储器的每个体虚拟出8~16个虚拟活跃页,并且可以根据需要线性扩展,从而能够有效缓解上述调度策略调度窗口有限的问题,能够提高存储器的访存性能和访存带宽。
步骤2)中根据访存请求的请求地址和历史访存请求的请求地址比较判断访存请求的访存模式是否符合预设的规则访问特性具体是指:当访存请求的请求地址中<rank,bank,row>索引的页被连续访问两次时,判定访存请求的访存模式符合规则访问特性,否则判定访存请求的访存模式不符合规则访问特性;其中rank为请求地址中的排地址,bank为请求地址中的体地址,row为请求地址中的行地址。此外,也可以根据需要定义其它的规则访问特性。
步骤4)中将返回的页数据填充虚拟活跃页缓冲器作为虚拟活跃页时具体是指通过先入先出的存储方式填充虚拟活跃页缓冲器,返回的页数据在填充虚拟活跃页数据阵列4的同时,旁路输出到多路选择器9;步骤6)中当访存请求对应的页在虚拟活跃页缓冲器时读请求数据来自虚拟活跃页数据阵列4,否则来自数据返回队列7填充虚拟活跃页缓冲器时的填充数据。
如图4所示,本实施例面向多核多线程微处理器的虚拟活跃页缓冲装置包括页预测器1、仲裁器2、虚拟活跃页标识阵列3、虚拟活跃页数据阵列4、读写队列5、命令队列6、数据返回队列7、未决表8和多路选择器9,页预测器1的输入端、多路选择器9的输出端分别与处理器的片上访存部件相连,命令队列6的输出端、数据返回队列7的输入端、未决表8的输入端分别与存储器控制器相连。
页预测器1(Page Predictor,简称PP)用于接收来自处理器的片上访存部件的访存请求、判断访存请求的类型以及访存请求是否为页预测命中的页预测结果。页预测器1接收来自处理器片上访存部件的访存请求,开发符合顺序访问特性的访存模式,一种简单的预测方式是每个<rank,bank,row>索引的页被连续访问两次,认为可以激发一个块读操作,存储器控制器从外部存储器(外存)读取一个完成的物理页数据到VOP缓冲装置中。
仲裁器2用于仲裁来自读写队列5的读写请求和来自数据返回队列7的填充请求并向虚拟活跃页标识阵列3输出仲裁结果。
虚拟活跃页标识阵列3(VOP Tag Array,VOP标识阵列)用于保存虚拟活跃页的页地址和状态信息,存储器的每个体对应一个独立的标识阵列(Tag),不同体的标识阵列可以并行访问;虚拟活跃页标识阵列3接收来自片上访存请求的请求标识、页预测器1的页预测结果、来自读写队列5的读写请求和来自仲裁器2的仲裁结果。本实施例中,虚拟活跃页标识阵列3具有双端口,一个端口为相联存储器(Content Addressed Memory,简称CAM)端口,用于进行Tag比较,另外一个端口为写端口,用于标识和状态更新。
虚拟活跃页数据阵列4(虚拟活跃页数据阵列)用于保存虚拟活跃页的页数据,虚拟活跃页数据阵列4根据读写队列5的读请求读数据队列、根据数据返回队列7的填充请求写数据队列。若虚拟活跃页数据阵列4仅拥有一个读写端口时,需要根据仲裁器2的仲裁结果决定处理器读请求还是填充请求。虚拟活跃页数据阵列4的容量可以根据实际需要线性扩展。
读写队列5(Read/Write Queue,简称RWQ)用于保存读写虚拟活跃页缓冲的标识阵列和数据阵列的请求,当访存请求为读请求且访存请求标识与虚拟活跃页标识阵列3中的标识比较结果为匹配时,读写队列5缓存用于从虚拟活跃页数据阵列4中读出所需数据的访存请求;当访存请求为写请求且访存请求标识与虚拟活跃页标识阵列3中的标识比较结果为匹配时,读写队列5缓存用于作废命中的虚拟活跃页的访存请求;当访存请求标识与虚拟活跃页标识阵列3中的标识比较结果为不匹配时,读写队列5不缓存访存请求。
命令队列6(Command Queue,简称CQ)用于保存需要发送到存储器控制器的包括普通的读、写请求或者块读请求的访存请求。
数据返回队列7(Return Data Queue,简称RDQ)用于保存从存储器控制器返回的读响应数据、输出填充请求和数据到数据阵列,输出填充请求到仲裁器2、输出填充数据到多路选择器9。数据返回队列7保存块读请求从存储器控制器返回的页数据,等待写入虚拟活跃页数据阵列4中。
未决表8(PendingTable,简称PT)用于保存所有等待存储器控制器返回的块读请求的状态信息,状态信息按照请求号索引存储于未决表8中,若片上访存读请求命中虚拟活跃页数据阵列4,但是请求所需数据位于记录在未决表8中的一个未返回的块读请求所读取的物理页中,则将该片上访存读请求追加到在未决表8中命中的块读请求项中,等待块读请求所读取的物理页数据返回时一并返回给片上访存部件。
多路选择器9用于根据仲裁器2的仲裁结果选择从虚拟活跃页数据阵列4或者从数据返回队列7获得返回数据并输出给处理器的片上访存部件。
本实施例中,仲裁器2为轮转策略仲裁器。读写队列5、命令队列6和数据返回队列7均为先入先出结构。
由于具有顺序访问特性的访存将会对同一个页进行连续访问,页预测器1接收来自处理器访存部件的请求,根据访存地址中的rank号、bank号和row号,其中rank为请求地址中的排地址,bank为请求地址中的体地址,row为请求地址中的行地址,判断由<rank,bank,row>索引的物理页之前是否被访问过,若已有一次或一次以上的访问,则页预测命中,可以将普通的仅取一个缓存行(Cacheline)数据的读请求转换为一个对该缓存行所在物理页的块读(block load)操作,将整个物理页从外部存储器读入到虚拟活跃页数据阵列4中,保存为一个虚拟活跃页;若没有访问过,则页预测不命中,按照普通的访问处理。仲裁器2按照公平的轮转策略对分别来自RWQ和RDQ的请求进行仲裁,选择其中的一个源。若仲裁器2选中了来自RWQ的请求,如果是读请求,则根据命中信息访问虚拟活跃页数据阵列4,从命中的虚拟活跃页中获得所需的缓存行数据送回处理器的片上访存部件;如果是写请求,则访问虚拟活跃页标识阵列3,通过作废命中的虚拟活跃页在虚拟活跃页标识阵列3中的有效位作废整个虚拟页,维护数据一致性。若仲裁器2选中了来自RDQ的请求,则从RDQ取出块读响应包含的物理页数据,按照未决表8中预先保存的信息,填充到虚拟活跃页数据阵列4中对应的位置,并修改虚拟活跃页标识阵列3中对应的状态。每个存放于虚拟活跃页数据阵列4中的虚拟活跃页的页地址作为标识(Tag)保存在标识阵列中。通过页预测器1的访存请求会将页地址(请求标识)送入虚拟活跃页标识阵列3进行比较,判断是否与其中的某个标识匹配。对于读请求,如果发现匹配,则说明所需的缓存行数据已经保存于虚拟活跃页数据阵列4中或者已经被虚拟活跃页数据阵列4预取但还未写入缓冲器;如果不匹配,则根据页预测器1的预测结果决定发送一个普通的访存请求还是块读请求。对于写请求,如果发现匹配,说明虚拟活跃页数据阵列4中保存了较老的缓存行数据,为了保证数据的一致性,一种简单的做法是直接作废其所在的整个虚拟活跃页,写请求发送到外部存储器,一种优化的做法是不作废整个虚拟活跃页,而是写更新页中对应缓存行的数据。对于预取读请求,若请求标识与虚拟活跃页标识阵列3中的标识比较匹配,则预取读命令被取消;若不匹配,则激发一个块读操作,预取一个物理页到虚拟活跃页数据阵列4中,但是不返回数据到片上访存部件。对于读请求:如果请求标识与虚拟活跃页标识阵列3中的标识匹配且所需的数据已经存在于虚拟活跃页数据阵列4中,则将该请求及命中信息存入读写队列5中;如果请求标识与虚拟活跃页标识阵列3中的标识比较不匹配且页预测命中,则将该读请求转换为块读请求送入命令队列6中,同时块读请求记录在未决表8中;如果请求标识与虚拟活跃页标识阵列3中的标识比较不匹配且页预测不命中,则将读请求当作普通的读请求送入命令队列6中;如果请求标识与虚拟活跃页标识阵列3中的标识匹配且所需数据所在的页正被虚拟活跃页数据阵列4通过块读请求从外部存储器读取但还未返回,则将该请求与未决表8中记录的块读请求合并。块读请求将读取完整的一个物理页,当该页的数据从存储器控制器返回虚拟活跃页数据阵列4时,将所有数据保留在虚拟活跃页数据阵列4中作为一个虚拟活跃页。
本实施例面向多核多线程微处理器的虚拟活跃页缓冲装置的工作流程如下:
A1)页预测器1获取来自处理器的片上访存部件的访存请求并判断访存请求的类型:
如果访存请求为读(load)请求,则跳转执行步骤A2);
如果访存请求为预取读(Prefetch load,简称Preload)请求,则跳转执行步骤A4);
如果访存请求为写(store)请求,则跳转执行步骤A7)。
A2)页预测器1根据访存请求的请求地址和历史访存请求的请求地址比较判断访存请求的访存模式是否符合规则访问特性(顺序访问特性或者跨步访问特性等)。本实施例中,当访存请求的请求地址中<rank,bank,row>索引的页被连续访问两次时,判定访存请求的访存模式符合规则访问特性,否则判定访存请求的访存模式不符合规则访问特性;其中rank为请求地址中的排地址,bank为请求地址中的体地址,row为请求地址中的行地址。当访存模式符合规则访问特性时判定为页预测命中,否则判定为页预测未命中。
A3)虚拟活跃页标识阵列3判断访存请求的所需页是否在虚拟活跃页缓冲器中,如果访存请求对应的页在虚拟活跃页缓冲器中则从虚拟活跃页缓冲器获取数据并跳转执行步骤A6)。否则,当页预测命中时跳转执行步骤A4),当页预测未命中时不对虚拟活跃页数据阵列4做任何操作,直接跳转执行步骤A5)。
A4)命令队列6将访存请求转换为块读请求(Block load)并访问存储器控制器获取请求的页数据,数据返回队列7将返回的页数据作为虚拟活跃页填充虚拟活跃页数据阵列4,然后跳转执行步骤A6)。
A5)命令队列6发送访存请求到存储器控制器并访问存储器控制器获取请求数据。
A6)多路选择器9选择从虚拟活跃页数据阵列4或者数据返回队列7获得读请求数据返回给处理器的片上访存部件完成读请求,预取读请求返回的数据不需要返回给处理器的片上访存部件。
A7)虚拟活跃页标识阵列3首先判断是否命中虚拟活跃页缓冲器中的虚拟活跃页,如果命中虚拟活跃页缓冲器中的虚拟活跃页则作废虚拟活跃页缓冲器中的虚拟活跃页;然后通过命令队列6发送写请求到存储器控制器,进行访问存储器控制器完成写请求。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.一种面向多核多线程微处理器的虚拟活跃页缓冲方法,其特征在于其实施步骤如下:
1)在处理器的片上访存部件和存储器控制器之间构建虚拟活跃页缓冲器,获取来自处理器的片上访存部件的访存请求并判断访存请求的类型,如果访存请求为读请求,则跳转执行步骤2);如果访存请求为预取读请求,则跳转执行步骤4);如果访存请求为写请求,则跳转执行步骤7);
2)根据访存请求的请求地址和历史访存请求的请求地址比较判断访存请求的访存模式是否符合预设的规则访问特性:当访存请求的请求地址中<rank,bank,row>索引的页被连续访问两次时,判定访存请求的访存模式符合规则访问特性,否则判定访存请求的访存模式不符合规则访问特性,其中rank为所述请求地址中的排地址,bank为所述请求地址中的体地址,row为所述请求地址中的行地址;当访存模式符合预设的规则访问特性时判定为页预测命中,否则判定为页预测未命中;
3)判断访存请求的所需页是否在虚拟活跃页缓冲器中,如果访存请求对应的页在虚拟活跃页缓冲器中则从虚拟活跃页缓冲器获取数据并跳转执行步骤6);否则,当页预测命中时跳转执行步骤4),当页预测未命中时跳转执行步骤5);
4)将访存请求转换为块读请求并访问存储器控制器获取请求的页数据,将返回的页数据作为虚拟活跃页填充虚拟活跃页缓冲器,然后跳转执行步骤6);
5)发送访存请求到存储器控制器并访问存储器控制器获取请求数据;
6)将读请求数据返回给处理器的片上访存部件完成读请求,预取读请求返回的数据不需要返回给处理器的片上访存部件;
7)首先判断是否命中虚拟活跃页缓冲器中的虚拟活跃页,如果命中虚拟活跃页缓冲器中的虚拟活跃页则作废虚拟活跃页缓冲器中的所述虚拟活跃页;然后发送写请求到存储器控制器,进行访问存储器控制器完成写请求。
2.根据权利要求1所述的面向多核多线程微处理器的虚拟活跃页缓冲方法,其特征在于:所述步骤4)中将返回的页数据填充虚拟活跃页缓冲器作为虚拟活跃页时具体是指通过先入先出的存储方式填充虚拟活跃页缓冲器,返回的页数据在填充虚拟活跃页数据阵列(4)的同时,旁路输出到多路选择器(9);所述步骤6)中当访存请求对应的页在虚拟活跃页缓冲器时读请求数据来自虚拟活跃页数据阵列(4),否则来自数据返回队列(7)填充虚拟活跃页缓冲器时的填充数据。
3.一种面向多核多线程微处理器的虚拟活跃页缓冲装置,其特征在于:包括页预测器(1)、仲裁器(2)、虚拟活跃页标识阵列(3)、虚拟活跃页数据阵列(4)、读写队列(5)、命令队列(6)、数据返回队列(7)、未决表(8)和多路选择器(9),所述页预测器(1)的输入端、多路选择器(9)的输出端分别与处理器的片上访存部件相连,所述命令队列(6)的输出端、数据返回队列(7)的输入端、未决表(8)的输入端分别与存储器控制器相连;
所述页预测器(1)用于接收来自处理器的片上访存部件的访存请求、判断访存请求的类型以及访存请求是否为页预测命中的页预测结果;
所述仲裁器(2)用于仲裁来自读写队列(5)的读写请求和来自数据返回队列(7)的填充请求并向虚拟活跃页标识阵列(3)输出仲裁结果;
所述虚拟活跃页标识阵列(3)用于保存虚拟活跃页的页地址和状态信息,存储器的每个体对应一个独立的标识阵列,不同体的标识阵列可以并行访问;虚拟活跃页标识阵列(3)接收来自片上访存请求的请求标识、页预测器(1)的页预测结果、来自读写队列(5)的读写请求和来自仲裁器(2)的仲裁结果;
所述虚拟活跃页数据阵列(4)用于保存虚拟活跃页的页数据,虚拟活跃页数据阵列(4)根据读写队列(5)的读请求读数据队列、根据数据返回队列(7)的填充请求写数据队列;
所述读写队列(5)用于保存读写虚拟活跃页缓冲的标识阵列和数据阵列的请求,当访存请求为读请求且访存请求标识与虚拟活跃页标识阵列(3)中的标识比较结果为匹配时,所述读写队列(5)缓存用于从虚拟活跃页数据阵列(4)中读出所需数据的访存请求;当访存请求为写请求且访存请求标识与虚拟活跃页标识阵列(3)中的标识比较结果为匹配时,所述读写队列(5)缓存用于作废命中的虚拟活跃页的访存请求;当访存请求标识与虚拟活跃页标识阵列(3)中的标识比较结果为不匹配时,读写队列(5)不缓存访存请求;
所述命令队列(6)用于保存需要发送到存储器控制器的包括普通的读、写请求或者块读请求的访存请求;
所述数据返回队列(7)用于保存存储器控制器从外部存储器返回的读响应数据、输出填充请求和数据到数据阵列,输出填充请求到仲裁器(2)、输出填充数据到多路选择器(9);
所述未决表(8)用于保存所有等待存储器控制器返回的块读请求的状态信息,所述状态信息按照请求号索引存储于未决表(8)中,若片上访存读请求命中虚拟活跃页数据阵列(4),但是请求所需数据位于记录在未决表(8)中的一个未返回的块读请求所读取的物理页中,则将该片上访存读请求追加到在未决表(8)中命中的块读请求项中,等待块读请求所读取的物理页数据返回时一并返回给片上访存部件;
所述多路选择器(9)用于根据仲裁器(2)的仲裁结果选择从虚拟活跃页数据阵列(4)或者从数据返回队列(7)获得返回数据并输出给处理器的片上访存部件。
4.根据权利要求3所述的面向多核多线程微处理器的虚拟活跃页缓冲装置,其特征在于:所述仲裁器(2)为轮转策略仲裁器。
5.根据权利要求4所述的面向多核多线程微处理器的虚拟活跃页缓冲装置,其特征在于:所述读写队列(5)、命令队列(6)和数据返回队列(7)均为先入先出结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210269432.3A CN102866957B (zh) | 2012-07-31 | 2012-07-31 | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210269432.3A CN102866957B (zh) | 2012-07-31 | 2012-07-31 | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102866957A CN102866957A (zh) | 2013-01-09 |
CN102866957B true CN102866957B (zh) | 2014-07-30 |
Family
ID=47445836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210269432.3A Active CN102866957B (zh) | 2012-07-31 | 2012-07-31 | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102866957B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501069B2 (en) | 2014-03-13 | 2016-11-22 | International Business Machines Corporation | Control of solid state memory device temperature using queue depth management |
US9213569B2 (en) | 2014-03-27 | 2015-12-15 | International Business Machines Corporation | Exiting multiple threads in a computer |
US9772867B2 (en) | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
US9223574B2 (en) | 2014-03-27 | 2015-12-29 | International Business Machines Corporation | Start virtual execution instruction for dispatching multiple threads in a computer |
US9195493B2 (en) * | 2014-03-27 | 2015-11-24 | International Business Machines Corporation | Dispatching multiple threads in a computer |
CN105182221B (zh) * | 2015-10-09 | 2017-12-22 | 天津国芯科技有限公司 | 一种jtag多路选择器及其在单芯片系统中的连接方法 |
CN107025064B (zh) * | 2016-01-30 | 2019-12-03 | 北京忆恒创源科技有限公司 | 一种低延迟高iops的数据访问方法 |
US10552042B2 (en) * | 2017-09-06 | 2020-02-04 | Samsung Electronics Co., Ltd. | Effective transaction table with page bitmap |
CN110825439B (zh) * | 2018-08-10 | 2021-03-09 | 北京百度网讯科技有限公司 | 信息处理方法和处理器 |
CN111143242B (zh) * | 2018-11-02 | 2022-05-10 | 华为技术有限公司 | 一种缓存预取方法和装置 |
CN114116540B (zh) * | 2022-01-26 | 2022-04-12 | 广东省新一代通信与网络创新研究院 | 一种用于提高处理器页表缓冲性能的方法及系统 |
CN117312199B (zh) * | 2023-11-30 | 2024-03-08 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101326499A (zh) * | 2005-10-20 | 2008-12-17 | 高通股份有限公司 | 更新多级翻译旁视缓冲器(tlb)字段 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043194B2 (en) * | 2002-09-17 | 2015-05-26 | International Business Machines Corporation | Method and system for efficient emulation of multiprocessor memory consistency |
-
2012
- 2012-07-31 CN CN201210269432.3A patent/CN102866957B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101326499A (zh) * | 2005-10-20 | 2008-12-17 | 高通股份有限公司 | 更新多级翻译旁视缓冲器(tlb)字段 |
Also Published As
Publication number | Publication date |
---|---|
CN102866957A (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866957B (zh) | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 | |
US7761656B2 (en) | Detection of speculative precharge | |
US9460763B2 (en) | Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory request in one transfer cycle | |
JP5610636B2 (ja) | トラフィッククラスと関連するポートをもつマルチポートのメモリコントローラ | |
EP3091439B1 (en) | Multi-bank memory with multiple read ports and multiple write ports per cycle | |
US20210073152A1 (en) | Dynamic page state aware scheduling of read/write burst transactions | |
US9411757B2 (en) | Memory interface | |
US9529622B1 (en) | Systems and methods for automatic generation of task-splitting code | |
US7127573B1 (en) | Memory controller providing multiple power modes for accessing memory devices by reordering memory transactions | |
US20060294295A1 (en) | DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device | |
US9069489B1 (en) | Dynamic random access memory front end | |
JP2016520233A (ja) | メモリシステム、メモリアクセス要求を処理するための方法、およびコンピュータシステム | |
CN102831088A (zh) | 基于混合存储器的数据迁移方法和装置 | |
CN110032530A (zh) | 用于多级存储器早期页面降级的方法和装置 | |
CN103345451B (zh) | 一种在多核处理器中缓冲数据的方法 | |
CN103345368B (zh) | 一种在缓冲存储器中缓存数据的方法 | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
US8356143B1 (en) | Prefetch mechanism for bus master memory access | |
US8341344B2 (en) | Techniques for accessing a resource in a processor system | |
CN101702326A (zh) | 内存控制器 | |
CN102541761B (zh) | 应用于嵌入式芯片的只读高速缓冲存储器 | |
US6836831B2 (en) | Independent sequencers in a DRAM control structure | |
US20120297131A1 (en) | Scheduling-Policy-Aware DRAM Page Management Mechanism | |
CN100536021C (zh) | 大容量高速缓冲存储器 | |
CN107506139A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |