暂存缓冲区仲裁的制作方法

文档序号:31054124发布日期:2022-08-06 10:38来源:国知局
暂存缓冲区仲裁的制作方法
暂存缓冲区仲裁


背景技术:

1.命令队列在执行存储器存取请求之前存储所述请求。命令队列上增加的仲裁和存储压力会导致性能下降。
附图说明
2.图1是根据一些实施方案的用于暂存存储器存取请求的示例处理器的框图。
3.图2是根据一些实施方案的用于暂存存储器存取请求的示例方法的流程图。
4.图3是根据一些实施方案的用于暂存存储器存取请求的示例方法的流程图。
5.图4是根据一些实施方案的用于暂存存储器存取请求的示例方法的流程图。
6.图5是根据一些实施方案的用于暂存存储器存取请求的示例方法的流程图。
7.图6是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
8.图7是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
9.图8是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
10.图9是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
11.图10是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
12.图11是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
13.图12是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
14.图13是根据一些实施方案的用于暂存缓冲区仲裁的示例方法的流程图。
具体实施方式
15.在一些实施方案中,一种暂存缓冲区仲裁的方法包括将多个存储器存取请求存储在暂存缓冲区中;基于一个或多个仲裁规则,从暂存缓冲区中选择多个存储器存取请求中的存储器存取请求;以及将存储器存取请求从暂存缓冲区移动到命令队列。
16.在一些实施方案中,选择存储器存取请求包括选择相同请求类型的存储器存取请求突发,其中存储器存取请求突发包括存储器存取请求。在一些实施方案中,选择存储器存取请求包括基于以下一项或多项来选择存储器存取请求:作为另一存储器存取请求的目标的存储体、作为另一存储器存取请求的目标的存储块,或作为另一存储器存取请求的目标的存储器子通道。在一些实施方案中,选择存储器存取请求包括基于作为另一存储器存取请求的目标的动态随机存取存储器页面来选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括基于优先级值来选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在暂存缓冲区中识别与第一页面未命中相关联的另一存储器存取请求;在命令队列中识别与不同于第一页面未命中的第二页面未命中相关联的排队存储器存取请求;以及响应于识别其他存储器存取请求和排队存储器存取请求而选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在暂存缓冲区中识别与第一页面冲突相关联的另一存储器存取请求;在命令队列中识别与不同于第一页面冲突的第二页面冲突相关联的排队存储器存取请求;以及响应于识别其他存储器存取请求和排队存储器存取请求
而选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在命令队列中识别页面命中请求;以及基于存储器存取是另一页面命中请求来选择存储器存取请求。
17.在一些实施方案中,一种用于暂存缓冲区仲裁的存储器管理单元执行包括以下项的步骤:将多个存储器存取请求存储在暂存缓冲区中;基于一个或多个仲裁规则,从暂存缓冲区中选择多个存储器存取请求中的存储器存取请求;以及将存储器存取请求从暂存缓冲区移动到命令队列。
18.在一些实施方案中,选择存储器存取请求包括选择相同请求类型的存储器存取请求突发,其中存储器存取请求突发包括存储器存取请求。在一些实施方案中,选择存储器存取请求包括基于以下一项或多项来选择存储器存取请求:作为另一存储器存取请求的目标的存储体、作为另一存储器存取请求的目标的存储块,或作为另一存储器存取请求的目标的存储器子通道。在一些实施方案中,选择存储器存取请求包括基于作为另一存储器存取请求的目标的动态随机存取存储器页面来选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括基于优先级值来选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在暂存缓冲区中识别与第一页面未命中相关联的另一存储器存取请求;在命令队列中识别与不同于第一页面未命中的第二页面未命中相关联的排队存储器存取请求;以及响应于识别其他存储器存取请求和排队存储器存取请求而选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在暂存缓冲区中识别与第一页面冲突相关联的另一存储器存取请求;在命令队列中识别与不同于第一页面冲突的第二页面冲突相关联的排队存储器存取请求;以及响应于识别其他存储器存取请求和排队存储器存取请求而选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在命令队列中识别页面命中请求;以及基于存储器存取是另一页面命中请求来选择存储器存取请求。
19.在一些实施方案中,一种用于暂存缓冲区仲裁的设备包括处理器,所述处理器包括存储器管理单元,所述存储器管理单元用于执行包括以下项的步骤:将多个存储器存取请求存储在暂存缓冲区中;基于一个或多个仲裁规则,从暂存缓冲区中选择多个存储器存取请求中的存储器存取请求;以及将存储器存取请求从暂存缓冲区移动到命令队列。
20.在一些实施方案中,选择存储器存取请求包括选择相同请求类型的存储器存取请求突发,其中存储器存取请求突发包括存储器存取请求。在一些实施方案中,选择存储器存取请求包括基于以下一项或多项来选择存储器存取请求:作为另一存储器存取请求的目标的存储体、作为另一存储器存取请求的目标的存储块,或作为另一存储器存取请求的目标的存储器子通道。在一些实施方案中,选择存储器存取请求包括基于作为另一存储器存取请求的目标的动态随机存取存储器页面来选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括基于优先级值来选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在暂存缓冲区中识别与第一页面未命中相关联的另一存储器存取请求;在命令队列中识别与不同于第一页面未命中的第二页面未命中相关联的排队存储器存取请求;以及响应于识别其他存储器存取请求和排队存储器存取请求而选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在暂存缓冲区中识别与第一页面冲突相关联的另一存储器存取请求;在命令队列中识别与不同于第一页面冲突的第二页面冲突相关联的排队存储器存取请求;以及响应于识别其他存储器存取请求和排队存储器存取请求而选择存储器存取请求。在一些实施方案中,选择存储器存取请求包括:在命令队列中识别
页面命中请求;以及基于存储器存取是另一页面命中请求来选择存储器存取请求。
21.图1是根据一些实施方案的非限制性示例处理器100的框图。示例处理器100可以在各种计算装置中实施,所述计算装置包括移动装置、个人计算机、外围硬件组件、游戏装置、机顶盒等。处理器100包括存储器管理单元102。存储器管理单元102接收存储器存取请求(例如,读取数据和/或将数据写入到存储器的特定区域的请求。存储器管理单元102还执行将存储器存取请求中的虚拟存储器地址转换为物理存储器地址以执行存储器存取请求。
22.存储器管理单元102包括命令队列104。当在执行存取动态随机存取存储器106之前(例如,从中央处理单元或处理器100的其他组件)接收到存储器存取请求时,命令队列104存储所述存储器存取请求。尽管动态随机存取存储器106被示为与处理器100分离,但是应理解,动态随机存取存储器106可以包括片上动态随机存取存储器106(例如,作为处理器100的组件)。在动态随机存取存储器106包括多个存储体的情况下,存储器管理单元102可以包括多个命令队列104,每个命令队列对应于相应存储体。
23.存储器管理单元102使用例如先到先服务(fcfs)、先准备好、先到先服务(fr-fcfs)、先进先出(fifo)等一个或多个方案从命令队列104中选择存储器存取请求以供执行。存储器管理单元102包括命令队列仲裁器108,所述命令队列仲裁器从命令队列104中选择存储器存取请求以使用一个或多个规则来执行。例如,一个或多个规则基于时序或时钟信息(例如,存储器存取请求的年限)。作为另一示例,一个或多个规则基于页面表110。例如,优先从命令队列104中选择将导致页面表110命中的存储器存取请求以供执行。
24.在现有方法中,将由存储器管理单元102接收的存储器存取请求直接放置在命令队列104中以供后续执行。为了提高性能并减轻命令队列104的压力,存储器管理单元102包括暂存缓冲区112。将由存储器管理单元102接收的存储器存取请求放置在暂存缓冲区112中。然后,暂存缓冲区仲裁器114基于一个或多个仲裁规则从暂存缓冲区112中选择存储器存取请求以移动到命令队列104。
25.在一些实施方案中,仲裁规则基于作为存储器存取请求的目标的动态随机存取存储器106页面。例如,当关闭和打开页面所需的开销减少时,优先选择以打开的动态随机存取存储器106页面为目标的存储器存取请求以移动到命令队列104。作为另一示例,优先选择以动态随机存取存储器106页面为目标的存储器存取请求,所述动态随机存取存储器页面也作为命令队列104中的另一存储器存取请求的目标并且因此将在执行所选择的存储器存取请求时打开。
26.在一些实施方案中,仲裁规则基于存储体组轮换或存储块轮换。例如,在动态随机存取存储器106包括多个存储体的情况下,从暂存缓冲区112中选择存储器存取请求以添加到命令队列104,使得连续添加的请求不以相同存储体为目标。例如,将以第一存储体为目标的存储器存取请求移动到命令队列104,然后将以第二存储体为目标的存储器存取请求移动到命令队列104。然后将以第一存储体为目标的另一存储器存取请求添加到命令队列104等。在一些实施方案中,选择存储器存取请求,从而以相同或不同存储体内的不同存储块为目标,或者替代地以动态随机存取存储器106的不同子通道为目标(例如,子通道平衡)。
27.在一些实施方案中,仲裁规则基于存储器存取请求的请求类型(例如,读取或写入)。由于在动态随机存取存储器106读取与写入之间切换存在计算开销,因此将读取请求
和/或写入请求分组在一起,作为用于移动到命令队列104的请求“突发”的一部分。因此,可以连续地执行一组读取请求和/或一组写入请求。
28.在一些实施方案中,存储器管理单元102确定暂存缓冲区112已满。因此,存储器管理单元102将接收到的存储器存取请求直接存储在命令队列104中,而不将接收到的存储器存取请求存储在暂存缓冲区112中。
29.为了进一步解释,图2阐述示出根据本公开的实施方案的用于暂存存储器存取请求的示例方法的流程图,所述方法包括接收202(例如,由处理器100的存储器管理单元102)针对动态随机存取存储器106的存储器存取请求204。存储器存取请求204包括从动态随机存取存储器106读取数据或将数据写入到所述动态随机存取存储器的请求。经由将存储器管理单元102耦合到中央处理单元或其他组件的数据结构或其他互连件接收存储器存取请求204。
30.图2的方法还包括将存储器存取请求204存储206(例如,由存储器管理单元102)在暂存缓冲区112中。图2的方法还包括将存储器存取请求204从暂存缓冲区112移动208到命令队列104。移动208存储器存取请求204包括从暂存缓冲区112移除存储器存取请求204并将存储器存取请求204存储在命令队列104中。在一些实施方案中,存储器存取请求204响应于暂存缓冲区112中的存储器存取请求204的数量满足阈值而移动。在一些实施方案中,存储器存取请求204响应于命令队列104中的存储器存取请求204的数量低于阈值而移动。在一些实施方案中,存储器存取请求204响应于存储器存取请求204的年限(例如,接收到存储器存取请求204的时间)满足阈值而移动。在一些实施方案中,存储器存取请求204响应于满足一个或多个仲裁规则而移动。
31.为了进一步解释,图3阐述示出根据本公开的实施方案的用于暂存存储器存取请求的示例方法的流程图,所述方法包括接收202(例如,由处理器100的存储器管理单元102)针对动态随机存取存储器106的存储器存取请求204;将存储器存取请求204存储206在暂存缓冲区112中;以及将存储器存取请求204从暂存缓冲区112移动208到命令队列104。
32.图3的方法与图2的不同之处在于,图3的方法还包括从命令队列104中选择302(例如,由处理器100的存储器管理单元102)存储器存取请求204。使用例如先到先服务(fcfs)、先准备好、先到先服务(fr-fcfs)、先进先出(fifo)等一个或多个方案从命令队列104中选择存储器存取请求204。在一些实施方案中,存储器管理单元102包括命令队列仲裁器108,所述命令队列仲裁器从命令队列104中选择存储器存取请求以使用一个或多个规则来执行。例如,一个或多个规则基于时序或时钟信息(例如,存储器存取请求的年限)。作为另一示例,一个或多个规则基于页面表110。例如,优先从命令队列104中选择将导致页面表110命中的存储器存取请求以供执行。
33.图3的方法与图2的不同之处在于,图3的方法还包括执行304(例如,由存储器管理单元102)存储器存取请求204。执行304存储器存取请求204包括从存储器存取请求204中指定的动态随机存取存储器106地址读取数据和/或将数据写入到存储器存取请求204中指定的动态随机存取存储器106地址。
34.为了进一步解释,图4阐述示出根据本公开的实施方案的用于暂存存储器存取请求的示例方法的流程图,所述方法包括接收202(例如,由处理器100的存储器管理单元102)针对动态随机存取存储器106的存储器存取请求204;将存储器存取请求204存储206在暂存
缓冲区112中;以及将存储器存取请求204从暂存缓冲区112移动208到命令队列104。
35.图4的方法与图2的不同之处在于,图4的方法还包括接收402另一存储器存取请求404。图4的方法与图2的不同之处进一步在于,图4的方法还包括确定406暂存缓冲区112已满。暂存缓冲区112包括用于存储预定义最大数量的存储器存取请求的预定数量的存储器。因此,确定406暂存缓冲区112已满包括确定暂存缓冲区112正在存储预定义最大数量的存储器存取请求。
36.图4的方法与图2的不同之处进一步在于,图4的方法还包括将其他存储器存取请求404存储408在命令队列104中,而不将其他存储器存取请求404存储在暂存缓冲区112中。因此,在已满时绕过暂存缓冲区112。
37.为了进一步解释,图5阐述示出根据本公开的实施方案的用于暂存存储器存取请求的示例方法的流程图,所述方法包括接收202(例如,由处理器100的存储器管理单元102)针对动态随机存取存储器106的存储器存取请求204;将存储器存取请求204存储206在暂存缓冲区112中;以及将存储器存取请求204从暂存缓冲区112移动208到命令队列104。
38.图5的方法与图2的不同之处在于,图5的方法还包括基于一个或多个仲裁规则从暂存缓冲区112中的多个存储器存取请求中选择502(例如,由存储器管理单元102,由存储器管理单元102的暂存缓冲区仲裁器114)存储器存取请求204,以移动到命令队列104。
39.在一些实施方案中,仲裁规则基于作为存储器存取请求的目标的动态随机存取存储器106页面。例如,当关闭和打开页面所需的开销减少时,优先选择以打开的动态随机存取存储器106页面为目标的存储器存取请求以移动到命令队列104。作为另一示例,优先选择以动态随机存取存储器106页面为目标的存储器存取请求,所述动态随机存取存储器页面也作为命令队列104中的另一存储器存取请求的目标并且因此将在执行所选择的存储器存取请求时打开。
40.在一些实施方案中,仲裁规则基于存储体组轮换或存储块轮换。例如,在动态随机存取存储器106包括多个存储体的情况下,从暂存缓冲区112中选择存储器存取请求以添加到命令队列104,使得连续添加的请求不以相同存储体为目标。例如,将以第一存储体为目标的存储器存取请求移动到命令队列104,然后将以第二存储体为目标的存储器存取请求移动到命令队列104。然后将以第一存储体为目标的另一存储器存取请求添加到命令队列104等。在一些实施方案中,选择存储器存取请求,从而以相同或不同存储体内的不同存储块为目标。还选择存储器存取请求,以替代地以动态随机存取存储器106的不同子通道为目标(例如,子通道平衡)。
41.在一些实施方案中,仲裁规则基于存储器存取请求的请求类型(例如,读取或写入)。由于在动态随机存取存储器106读取与写入之间切换存在计算开销,因此将读取请求和/或写入请求分组在一起,作为用于移动到命令队列104的请求“突发”的一部分。因此,连续地执行一组读取请求和/或一组写入请求。
42.为了进一步解释,图6阐述示出根据本公开的实施方案的用于暂存缓冲区仲裁的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100的存储器管理单元102)在暂存缓冲区112中。存储器存取请求包括从动态随机存取存储器106读取数据或将数据写入到所述动态随机存取存储器的请求。存储器存取请求经由将存储器管理单元102耦合到中央处理单元或其他组件的数据结构或其他互连件。
43.图6的方法还包括基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608。例如,暂存缓冲区仲裁器114基于一个或多个仲裁规则来选择存储器存取请求608。将仲裁规则应用于存储在暂存缓冲区112中的存储器存取请求、存储在命令队列104、页面表110中的存储器存取请求的各种属性和/或其他属性。例如,仲裁规则基于暂存缓冲区112和/或命令队列104中的存储器存取请求的请求类型、当前打开的动态随机存取存储器106页面、作为暂存缓冲区112和/或命令队列104中的存储器存取请求的目标的存储体组、作为暂存缓冲区112和/或命令队列104中的存储器存取请求的目标的存储体或页面的刷新状态、和/或作为暂存缓冲区112和/或命令队列104中的存储器存取请求的目标的子通道。
44.图6的方法还包括将存储器存取请求608从暂存缓冲区112移动610到命令队列104。移动610存储器存取请求608包括从暂存缓冲区112中删除存储器存取请求608和/或释放存储存储器存取请求608的暂存缓冲区112的一部分以用于随后的重写。移动610存储器存取请求608还包括将存储器存取请求608添加到命令队列104。因此,稍后由存储器管理单元102从命令队列104执行存储器存取请求608。
45.为了进一步解释,图7阐述示出根据本公开的实施方案的用于暂存缓冲区仲裁的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100的存储器管理单元102)在暂存缓冲区112中;基于一个或多个仲裁规则,从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608;以及将存储器存取请求608从暂存缓冲区112移动610到命令队列104。
46.图7的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括:选择702相同请求类型的存储器存取请求突发,其中存储器存取请求突发包括存储器存取请求608。存储器存取请求突发包括相同类型的多个存储器存取请求(例如,读取或写入)。选择存储器存取请求突发中的存储器存取请求以连续地和/或至少部分地同时移动到命令队列104,使得存储器存取请求突发中的存储器存取请求稍后连续地和/或至少部分地同时执行。例如,在不执行中间写入请求的情况下执行一连串读取请求。作为另一示例,在不执行中间读取请求的情况下执行一连串写入请求。由于在执行对动态随机存取存储器106的读取和写入请求之间切换会消耗计算开销,因此通过执行相同请求类型的多个存储器存取请求来避免这种计算开销。因此,基于相同请求类型的其他存储器存取请求已添加到命令队列104和或基于相同请求类型的其他存储器存取请求存储在随后添加到命令队列104作为存储器存取请求突发的一部分的暂存缓冲区112中,选择存储器存取请求608。
47.为了进一步解释,图8阐述示出根据本公开的实施方案的用于暂存缓冲区仲裁的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100的存储器管理单元102)在暂存缓冲区112中;基于一个或多个仲裁规则,从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608;以及将存储器存取请求608从暂存缓冲区112移动610到命令队列104。
48.图8的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括基于以下一项或多项选择802存储器存取请求608:作为另一存储器存取请求的目标的存储体、作为存储器存取请求的目标
的存储块,或作为另一存储器存取请求的目标的存储器子通道。例如,在一些实施方案中,将存储器存取请求添加到命令队列104,使得所执行的存储器存取请求交替地以不同的动态随机存取存储器106存储块或存储体为目标(例如,存储块平衡、存储体平衡)。在其他实施方案中,将存储器存取请求添加到命令队列104,使得所执行的存储器存取请求以平衡的方式以动态随机存取存储器106子通道为目标。因此,基于作为已经添加到命令队列104(例如,以不同存储块、存储体或子通道为目标的排队存储器存取命令)的存储器存取请求的目标的存储块、存储体或子通道来选择存储器存取请求608。还基于作为暂存缓冲区112中稍后添加到命令队列104(例如,以不同存储块、存储体或子通道为目标的暂存存储器存取命令)的存储器存取请求的目标的存储块、存储体或子通道来选择存储器存取请求608。
49.为了进一步解释,图9阐述示出根据本公开的实施方案的用于暂存缓冲区仲裁的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100的存储器管理单元102)在暂存缓冲区112中;基于一个或多个仲裁规则,从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608;以及将存储器存取请求608从暂存缓冲区112移动610到命令队列104。
50.图9的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括:基于作为另一存储器存取请求的目标的动态随机存取存储器106页面选择902存储器存取请求608。如果所执行的存储器存取请求以当前未打开的页面为目标,则在关闭当前打开的页面和打开目标页面时会产生开销。执行以相同(例如打开)页面为目标的存储器存取请求会减少这种开销。因此,在一些实施方案中,基于作为已经执行的存储器存取请求的目标的页面(例如,已经打开的页面)来选择存储器存取请求608。在一些实施方案中,存储器存取请求608基于作为存储在命令队列104中的存储器存取请求的目标的页面而选择,所述存储器存取请求将在所选择存储器存取请求308之前执行,使得目标页面将在执行所选择存储器存取请求608时打开。在一些实施方案中,存储器存取请求608基于作为存储在暂存缓冲区112中的另一存储器存取请求的目标的页面而选择,所述另一存储器存取请求随后将选择用于移动到命令队列104,使得目标页面将在执行另一存储器存取请求时打开。
51.为了进一步解释,图10阐述示出根据本公开的实施方案的用于暂存缓冲区仲裁的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100的存储器管理单元102)在暂存缓冲区112中;基于一个或多个仲裁规则,从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608;以及将存储器存取请求608从暂存缓冲区112移动610到命令队列104。
52.图10的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括:基于优先级值选择1002存储器存取请求1002。在一些实施方案中,优先级值是分配给存储器存取请求608(例如,优先级层)的显式优先级值。在其他实施方案中,基于存储器存取请求的属性,例如存储器存取请求的年限(例如,给定存储器存取请求由存储器管理单元102生成或接收的时间)来计算优先级值。
53.为了进一步解释,图11阐述示出根据本公开的实施方案的用于暂存缓冲区仲裁的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100的存
储器管理单元102)在暂存缓冲区112中;基于一个或多个仲裁规则,从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608;以及将存储器存取请求608从暂存缓冲区112移动610到命令队列104。
54.图11的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括:在暂存缓冲区112中识别1102与第一页面未命中相关联的另一存储器存取请求。换句话说,其他存储器存取请求的执行将导致页面未命中和对应计算开销。例如,存取页面表110以确定其他存储器存取请求的执行将导致页面未命中。
55.图11的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608还包括在命令队列104中识别1104与不同于第一页面未命中的第二页面未命中相关联的排队存储器存取请求。例如,排队存储器存取请求被识别为具有相同请求类型,并且以与暂存缓冲区中的其他存储器存取请求相同的动态随机存取存储器存储体为目标,但将导致不同的行页面未命中。
56.图11的方法与图6的不同之处进一步在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608还包括:响应于识别其他存储器存取请求和排队存储器存取请求而选择1106存储器存取请求608。换句话说,优先于与第一页面未命中相关联的暂存缓冲区112中的其他存储器存取请求选择存储器存取请求608。
57.为了进一步解释,图12阐述示出根据本公开的实施方案的用于暂存缓冲区仲裁的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100的存储器管理单元102)在暂存缓冲区112中;基于一个或多个仲裁规则,从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608;以及将存储器存取请求608从暂存缓冲区112移动610到命令队列104。
58.图12的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括:在暂存缓冲区112中识别1202与第一页面冲突相关联的另一存储器存取请求。换句话说,其他存储器存取请求的执行将导致页面冲突和对应计算开销。例如,存取页面表110以确定其他存储器存取请求的执行将导致页面冲突。
59.图12的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608还包括:在命令队列104中识别1204与不同于第一页面冲突的第二页面冲突相关联的排队存储器存取请求。例如,排队存储器存取请求被识别为具有相同请求类型,并且以与暂存缓冲区112中的其他存储器存取请求相同的动态随机存取存储器存储体为目标,但将导致不同的行页面冲突。
60.图12的方法与图6的不同之处进一步在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608还包括:响应于识别其他存储器存取请求和排队存储器存取请求而选择1206存储器存取请求608。换句话说,优先于与第一页面冲突相关联的暂存缓冲区112中的其他存储器存取请求选择存储器存取请求608。
61.为了进一步解释,图13阐述示出根据本公开的实施方案的用于暂存存储器存取请求的示例方法的流程图,所述方法包括将多个存储器存取请求存储602(例如,由处理器100
的存储器管理单元102)在暂存缓冲区112中;基于一个或多个仲裁规则,从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608;以及将存储器存取请求608从暂存缓冲区112移动610到命令队列104。
62.图13的方法与图6的不同之处在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括:在命令队列104中识别1302页面命中请求。页面命中请求包括以动态随机存取存储器106的当前打开页为目标的存储器存取请求。图13的方法与图6的不同之处进一步在于,基于一个或多个仲裁规则从暂存缓冲区112中选择606多个存储器存取请求中的存储器存取请求608包括:基于存储器存取请求608是另一页面命中请求而选择1304存储器存取请求608。换句话说,优先于将导致页面未命中的其他存储器存取请求选择存储器存取请求608以用于移动到命令队列104。因此,暂存缓冲区112将保存页面冲突请求。在一些实现方式中,选择存储器存取请求608以用于移动到命令队列104,使得命令队列104优先为每个存储体保存不超过一个存储器存取请求。
63.鉴于上述说明,读者将认识到,根据本公开的实施方案的暂存缓冲区仲裁的益处包括:
64.·
通过使用额外的暂存缓冲区减轻命令队列压力来提高计算系统的性能。
65.·
通过最佳地选择存储器存取请求以添加到命令队列,从而减少计算开销来提高计算系统的性能。
66.主要在用于暂存缓冲区仲裁的全功能计算机系统的上下文中描述本公开的示例性实施方案。然而,本领域的技术人员将认识到,本公开还可以体现在计算机程序产品中,所述计算机程序产品设置在计算机可读存储介质上,以与任何合适的数据处理系统一起使用。此类计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁性介质、光学介质或其他合适的介质。此类介质的示例包括硬盘驱动器或软盘中的磁盘,用于光驱的光盘、磁带以及本领域的技术人员会想到的其他介质。本领域的技术人员将立即认识到,具有合适的编程装置的任何计算机系统将能够执行如在计算机程序产品中体现的本公开的方法的步骤。本领域的技术人员还将认识到,尽管本说明书中描述的一些示例性实施方案针对安装在计算机硬件上并且在计算机硬件上执行的软件,但是实施为固件或硬件的替代性实施方案也完全在本公开的范围内。
67.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本公开的各方面的计算机可读程序指令的一个或多个计算机可读存储介质。
68.计算机可读存储介质可以是可以保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以为例如但不限于电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述各项的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下项:便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)、记忆棒、软盘、机械编码装置(例如穿孔卡或槽中的凸起结构,其上记录有指令),以及前述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被理解为本身是暂时性信号,诸如无线电波或其他自由传播的电磁波,通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉
冲),或通过导线传输的电信号。
69.本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理装置,或者经由网络(例如,互联网、局域网、广域网和广域网/或无线网络)下载到外部计算机或外部存储装置。网络可包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应的计算/处理装置内的计算机可读存储介质中。
70.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种编程语言的任何组合编写的源代码或目标代码,所述一种或多种编程语言包括面向对象的编程语言,例如smalltalk、c++等,以及常规的过程编程语言,例如“c”编程语言或类似的编程语言。作为独立的软件包,计算机可读程序指令可全部在用户的计算机上执行、部分在用户的计算机上执行;部分在用户的计算机上并且部分在远程计算机上执行或全部在远程计算机或服务器上执行。在后一情形中,远程计算机可通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或所述连接可以(例如,使用互联网服务供应商通过互联网)连接到外部计算机。在一些实施方案中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可通过利用计算机可读程序指令的状态信息来个性化电子电路来执行计算机可读程序指令,以便执行本公开的各个方面。
71.在本文中参照根据本公开的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或框图来描述本公开的各方面。应理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可由计算机可读程序指令来实施。
72.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令建立用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,所述计算机可读存储介质可以指导计算机、可编程数据处理设备和/或其他装置以特定方式起作用,使得在其中存储有指令的计算机可读存储介质包括制品,所述制品包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
73.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理设备或其他装置上以使一系列操作步骤在计算机、其他可编程设备或其他装置上执行以产生计算机实现的过程,使得在计算机、其他可编程设备或其他装置上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
74.附图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能实现方式的体系结构、功能性和操作。在这个方面,流程图或框图中的每个框可以表示包括用于实现所指定的一个或多个逻辑功能的一个或多个可执行指令的指令的模块、区段或部分。在一些替代性实现方式中,框中提到的功能可以不按附图中提到的顺序发生。例如,连续示出的两个框实际上可以大体上同时执行,或者这些框有时可以按相反的顺序执行,这取决于所涉及的功能性。还应指出,框图和/或流程图图解的每个框以及框图和/或流程图图解中的框的组合可以由执行指定的功能或操作的基于专用硬件的系统或
者执行专用硬件和计算机指令的组合来实现。
75.从前面的描述将理解,可以在本公开的各种实施方案中进行修改和改变。本说明书中的描述仅用于说明的目的,而不应被理解为是限制性的。本公开的范围仅由所附权利要求的语言限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1