自适应存储器事务调度的制作方法

文档序号:34454541发布日期:2023-06-13 23:28阅读:30来源:国知局
自适应存储器事务调度的制作方法


背景技术:

1、便携式计算设备(“pcd”)正成为人们在个人和专业水平的必需品。这些设备可能包括蜂窝电话、平板计算机、掌上计算机、便携式数字助理(“pda”)、便携式游戏机和其他便携式电子设备。pcd通常包含集成电路或片上系统(“soc”),这些集成电路或系统包括设计用于一起工作以向用户提供功能的众多元件。例如,soc可以包含任何数目的处理引擎,诸如具有多个核的中央处理单元(“cpu”)、图形处理单元(“gpu”)、神经处理单元(“npu”)、数字信号处理器(“dsp”)、无线收发器单元(也称为调制解调器)等。soc可以耦合到pcd内的其他元件,诸如系统存储器。在包括但不限于pcd的计算设备中,可以在各种处理引擎和系统存储器之间执行存储器事务。pcd和其他计算设备中的系统存储器通常包括动态随机存取存储器(“dram”)。

2、处理引擎可以通过分别请求写入事务或读取事务来发起向系统存储器写入数据或从系统存储器读取数据。存储器控制器可以将来自处理引擎的这样的事务请求转换为包括一组dram命令和相关联的数据和目标存储器地址的存储器事务。为了满足dram时序约束,存储器控制器必须将其提供给dram芯片的某些命令间隔指定的时间量或间隔。这种时序间隔的累积效应有助于完成存储器事务所需的延迟或时间。期望最小化存储器事务延迟并提高存储器访问效率,因为两者都有可能对计算设备性能产生不利影响,并最终对用户体验产生不利影响。

3、存储器控制器可以处理由多个处理引擎发出的多个存储器事务请求。在存储器控制器先前接收的事务请求已经完成之前,存储器控制器可以从一个或多个处理引擎接收额外的存储器事务请求。“调度”是一个术语,通常用于指用于帮助平衡满足dram时序约束的竞争目标,同时最小化延迟并最大化dram效率的技术。概括地说,调度涉及选择存储器控制器向dram发送事务的顺序或优先级。常规的存储器事务调度算法往往是不灵活的(静态定义的),并且不能动态地适应运行时事务请求的特性。


技术实现思路

1、公开了用于调度计算设备中的存储器事务的系统、方法、计算机程序产品和其他实施例。在示例性实施例中,计算设备可以包括耦合到dram的存储器控制器。

2、用于在计算设备中调度dram事务的示例性方法可以包括确定与从一个或多个处理器接收的多个事务请求相对应的多个dram事务。示例性方法可以进一步包括形成dram事务的子集。示例性方法还可以进一步包括选择子集中的一个。示例性方法还可以进一步包括将所选择的子集中的所有事务发送到dram。在确定多个dram事务时,每个dram事务可以通过事务是读取还是写入以及事务指向哪个dram等级的组合来标识。每个子集可以包括由彼此相同的dram等级和方向的组合标识的一个或多个dram事务。

3、用于在计算设备中调度dram事务的示例性系统可以包括事务队列和调度逻辑。调度逻辑可以被配置为确定与从一个或多个处理器接收到的多个事务请求相对应的多个dram事务。调度逻辑可以进一步被配置为形成dram事务的子集。调度逻辑还可以进一步被配置为选择子集中的一个。调度逻辑还可以进一步被配置为将所选择的子集中的所有事务发送到dram。在确定dram事务时,调度逻辑可以通过事务是读取还是写入或写入以及事务指向哪个dram等级的组合来标识每个事务。每个子集可以包括由彼此相同的dram等级和方向的组合标识的一个或多个dram事务。

4、用于在计算设备中调度dram事务的另一示例性系统可以包括用于确定与从一个或多个处理器接收到的多个事务请求相对应的多个dram事务的部件。示例性系统可以进一步包括用于形成dram事务的子集的部件。示例性系统还可以进一步包括用于选择子集中的一个的部件。示例性系统还可以进一步包括用于将所选择的子集中的所有事务发送到dram的部件。用于确定示例性系统中的多个dram事务的装置可以通过事务是读取还是写入以及事务指向哪个dram等级的组合来标识每个存储器事务。每个子集可以包括由彼此相同的dram等级和方向的组合标识的一个或多个dram事务。

5、用于在计算设备中调度dram事务的示例性计算机程序产品可以包括其上以计算机可执行形式存储有指令的非暂态计算机可读介质,当该指令由存储器控制器的处理系统执行时,配置该存储器控制器以:确定与从一个或多个处理器接收到的多个事务相对应的多个dram事务;形成dram事务的子集;选择子集中的一个子集;并将所选择的子集中的所有事务发送到dram。在示例性计算机程序产品中,dram事务可以通过该事务是读取还是写入以及该事务指向哪个dram等级的组合来标识。每个子集可以包括由彼此相同的dram等级和方向的组合标识的一个或多个dram事务。



技术特征:

1.一种用于在计算设备中调度动态随机存取存储器(dram)事务的方法,包括:

2.根据权利要求1所述的方法,其中:

3.根据权利要求2所述的方法,其中将所述多个存储器事务形成为所述多个子集进一步包括,针对所述子集中的每个子集:

4.根据权利要求3所述的方法,其中将所述多个存储器事务形成为所述多个子集进一步包括,针对所述子集中的每个子集:

5.根据权利要求4所述的方法,其中将所述多个存储器事务形成为所述多个子集进一步包括,针对所述子集中的每个子集,如果调度被标识为未命中、冲突、或在未命中/冲突下命中的一个或多个所选择的事务将导致大于阈值数目的空数据总线周期,则丢弃被标识为未命中、冲突、或在未命中/冲突下命中的一个或多个所选择的事务。

6.根据权利要求1所述的方法,其中选择所述子集中的一个子集包括:

7.根据权利要求6所述的方法,其中,所述度量包括响应于以下至少一项的益处部分:子集中所有所选择的事务之中的数据周期的计数;在所述子集中的所有所选择的事务之中的存储体扩展;在所述子集中的所有所选择的事务之中每页的平均字节数;在所述子集中的所有所选择的事务之中的最小突发长度等效计数;以及所述子集中所有所选择的事务之中的事务计数。

8.根据权利要求6所述的方法,其中,所述度量包括响应于以下中的至少一项的成本部分:子集切换成本;以及相同的等级加法器成本。

9.根据权利要求1所述的方法,其中,将所述子集中所选择的所述一个子集中的所有事务发送给所述dram包括:

10.根据权利要求1所述的方法,其中发送所述子集中的所选择的所述一个子集中的所有事务进一步包括在将与所述子集中的所选择的所述一个子集相关联的最终列地址选择(cas)命令发送到所述dram之前,向所述子集中的所选择的所述一个子集添加一个或多个事务。

11.一种用于在具有存储器控制器和动态随机存取存储器(dram)的计算设备中调度存储器事务的系统,包括:

12.根据权利要求11所述的系统,其中:

13.根据权利要求12所述的系统,其中所述调度逻辑被配置为通过进一步被配置为针对所述子集中的每一个子集执行以下来将所述多个存储器事务形成为所述多个子集:

14.根据权利要求13所述的系统,其中所述调度逻辑被配置为通过进一步被配置为针对所述子集中的每一个子集执行以下来将所述多个存储器事务形成为所述多个子集:

15.根据权利要求14所述的系统,其中所述调度逻辑被配置为通过进一步被配置为针对所述子集中的每个子集执行以下项来将所述多个内存事务形成为所述多个子集:如果调度被标识为未命中、冲突、或在未命中/冲突下命中的一个或多个所选择的事务将导致大于阈值数目的空数据总线周期,则丢弃被标识为未命中、冲突、或在未命中/冲突下命中的一个或多个所选择的事务。

16.根据权利要求11所述的系统,其中所述调度逻辑被配置为通过被配置为执行以下来选择所述子集中的一个子集:

17.根据权利要求16所述的系统,其中所述度量包括响应于以下中的至少一项的益处部分:子集中所有所选择的事务之中的数据周期计数;在所述子集中的所有所选择的事务之中的存储体扩展;在所述子集中的所有所选择的事务之中每页的平均字节数;在所述子集中的所有所选择的事务中之的最小突发长度等效计数;以及所述子集中所有所选择的事务之中的事务计数。

18.根据权利要求16所述的系统,其中所述度量包括响应于以下至少一项的成本部分:子集切换成本;以及相同的等级加法器成本。

19.根据权利要求11所述的系统,其中所述调度逻辑被配置为通过被配置为执行以下来将所述子集中所选择的所述一个子集中的所有事务发送到所述dram:

20.根据权利要求11所述的系统,其中所述调度逻辑被配置为:通过进一步被配置为在与所述子集中的所选择的所述一个子集相关联的最终列地址选择(cas)命令发送到所述dram之前,向所述子集中所选择的所述一个子集添加一个或多个事务,将所述子集中所选择的所述一个子集中的所有事务发送到所述dram。

21.一种用于在计算设备中调度动态随机存取存储器(dram)事务的系统,包括:

22.根据权利要求21所述的系统,其中:

23.根据权利要求22所述的系统,其中针对所述子集中的每个子集,所述用于将所述多个存储器事务形成为所述多个子集的部件包括:

24.根据权利要求23所述的系统,其中针对所述子集中的每个子集,所述用于将所述多个存储器事务形成为所述多个子集的部件进一步包括:

25.根据权利要求24所述的系统,其中所述用于将所述多个存储器事务形成为所述多个子集的部件进一步包括:针对所述子集中的每一个子集,用于如果调度被标识为未命中、冲突或在未命中/冲突下命中的一个或多个所选择的事务将导致大于阈值数目的空数据总线周期,则丢弃被标识为未命中、冲突、或在未命中/冲突下命中的一个或多个所选择的事务的部件。

26.根据权利要求21所述的系统,其中所述用于选择所述子集中的一个子集的部件包括:

27.根据权利要求26所述的系统,其中:

28.根据权利要求21所述的系统,其中所述用于将所述子集中所选择的所述一个子集中的所有事务发送给所述dram的部件包括:

29.根据权利要求21所述的系统,其中所述用于发送所述子集中的所选择的所述一个子集中的所有事务的部件进一步包括:用于在将与所述子集中的所选择的所述一个子集相关联的最终列地址选择(cas)命令发送到所述dram之前,向所述子集中的所选择的所述一个子集添加一个或多个事务的部件。

30.一种用于在具有存储器控制器的计算设备中调度动态随机存取存储器(dram)事务的计算机程序产品,所述计算机程序产品包括其上以计算机可执行形式存储有指令的非暂态计算机可读介质,当由所述存储器控制器的处理系统执行时,所述指令将所述存储控制器配置为:

31.根据权利要求30所述的计算机程序产品,其中:

32.根据权利要求31所述的计算机程序产品,其中:

33.根据权利要求32所述的计算机程序产品,其中所述指令通过将所述存储器控制器配置为针对所述子集中的每个子集执行以下来进一步配置所述存储器控制器以将所述多个存储器事务形成为所述多个子集:

34.根据权利要求33所述的计算机程序产品,其中所述指令将所述存储器控制器配置为通过针对所述子集中的每个子集执行以下来进一步配置所述存储器控制器:如果调度被标识为未命中、冲突、或在未命中/冲突下命中的一个或多个所选择的事务将导致大于阈值数目的空数据总线周期,则丢弃被标识为未命中、冲突或在未命中/冲突下命中的一个或多个所选择的事务,以将所述多个存储器事务形成为所述多个子集。

35.根据权利要求30所述的计算机程序产品,其中所述指令通过配置所述存储器控制器执行以下来将所述存储器控制器配置为选择所述子集中的一个子集:

36.根据权利要求35所述的计算机程序产品,其中:

37.根据权利要求30所述的计算机程序产品,其中所述指令配置所述内存控制器来通过配置所述存储器控制器执行以下来将所述子集中的所选择的所述一个子集中的所有事务发送到所述dram:

38.根据权利要求30所述的计算机程序产品,其中所述指令将所述存储器控制器配置为通过进一步配置所述存储器控制器以在将与所述子集中的所选择的所述一个子集相关联的最终列地址选择(cas)命令发送给所述dram之前,向所述子集中的所选择的所述一个子集添加一个或多个事务,将所述子集中的所选择的所述一个子集中的所有事务发送到所述dram。


技术总结
可以通过形成对应于指向DRAM的存储器事务请求的一组存储器事务的子集来调度计算设备中的存储器事务。每个子集可以包括由彼此相同的DRAM等级和方向(读取或写入)的组合标识的事务。可以基于效率来确定被选择包括在每个子集中的事务。可以基于应用于每个子集的度量来选择子集中的一个子集,并且可以将所选择的子集中的事务发送到DRAM。

技术研发人员:V·库玛,K·钱德拉塞卡
受保护的技术使用者:高通股份有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1