对存储器访问请求进行暂存的制作方法

文档序号:31009830发布日期:2022-08-03 12:32阅读:53来源:国知局
对存储器访问请求进行暂存的制作方法
对存储器访问请求进行暂存


背景技术:

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