CN116584075A - 调节存储器子系统中的信用分配 - Google Patents

调节存储器子系统中的信用分配 Download PDF

Info

Publication number
CN116584075A
CN116584075A CN202080106350.XA CN202080106350A CN116584075A CN 116584075 A CN116584075 A CN 116584075A CN 202080106350 A CN202080106350 A CN 202080106350A CN 116584075 A CN116584075 A CN 116584075A
Authority
CN
China
Prior art keywords
memory
clients
controller
credit
memory controller
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.)
Pending
Application number
CN202080106350.XA
Other languages
English (en)
Inventor
纳加拉吉·阿肖克·普蒂
阿比拉·巴格奇
维亚格瑞斯瓦路度·杜尔加·乃纳拉
文卡特斯瓦兰·阿南撒纳拉亚南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN116584075A publication Critical patent/CN116584075A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

本文件描述了用于调节存储器子系统中的信用分配的系统和技术。所描述的系统和技术可以向信用控制器(116)提供反馈机制,以存储器接口处的带宽。存储器控制器(114)监测与提供给存储器子系统的一个或多个随机存取存储器(RAM)(206‑1、206‑2)的事务请求相关联的统计。存储器控制器(114)然后可以向信用控制器(116)或向一个或多个客户端(108‑1,108‑2,108‑3)提供建议,以调节分配给一个或多个客户端(108‑1,108‑2,108‑3)的信用的数目。通过这种方式,所描述的系统和技术可以提高存储器控制器(114)在管理事务请求方面的效率以及存储器接口处的带宽。

Description

调节存储器子系统中的信用分配
背景技术
片上系统(SoC)中的存储器控制器可以包括缓冲区,用于在将事务发送给存储器之前临时存储事务。缓冲区允许存储器控制器调度事务并最大化到存储器的接口的带宽。为了进一步管理带宽,存储器控制器通常将缓冲区细分为信用(credit)。SoC可以基于访问存储器的客户端的希望或要求的服务质量(QoS),将信用分配给客户端或客户端的不同业务类别。然而,分配给业务类别的信用的数目是静态的,并且无法基于存储器处的实际事务业务来最大化存储器接口处的带宽。
发明内容
本文件描述了用于调节存储器子系统中的信用分配的系统和技术。所描述的系统和技术可以向信用控制器或存储器子系统的一个或多个客户端提供反馈机制,以提高存储器接口处的带宽。存储器控制器监测与提供给存储器子系统的一个或多个随机存取存储器(RAM)的事务请求相关联的统计。存储器控制器然后可以向信用控制器或一个或多个客户端提供建议,以调节分配给访问RAM的一个或多个客户端的信用的数目。通过这种方式,所描述的系统和技术可以提高存储器控制器在管理事务请求方面的效率以及存储器接口处的带宽。
例如,一种片上系统(SoC)的存储器子系统包括信用控制器和存储器控制器。信用控制器将相应数目的信用分配给存储器子系统的一个或多个客户端。存储器控制器能操作地连接到一个或多个RAM。存储器控制器包括缓冲区,该缓冲区可以存储来自客户端的访问RAM中的数据的事务请求。存储器控制器可以对于每个客户端监测由存储器控制器服务的事务请求的统计,并且基于该统计生成信号以指示信用控制器调节分配给客户端中的至少一个的相应数目的信用。
本文件还描述了用于调节存储器子系统中的信用分配的其他方法、配置和系统。
提供本发明内容是为了介绍用于调节存储器子系统中的信用分配的简化构思,这将在以下具体实施方式和附图中进一步描述。本发明内容并不旨在识别所要求保护的主题内容的基本特征,也不旨在用于确定所要求保护主题的范围。
附图说明
参考以下附图,在本文件中描述了调节存储器子系统中的信用分配的一个或多个方面的细节。遍及多个附图使用相同的编号来引用相似的特征和组件。
图1示出了在其中可以实现用于调节存储器子系统中的信用分配的系统和技术的用户设备的示例设备图。
图2示出了在其中可以实现用于调节SoC的存储器子系统中的信用分配的系统和技术的SoC的示例设备图。
图3示出了可以调节信用分配的存储器子系统的示例图。
图4示出了示例图,其示出由存储器控制器的统计监测模块监测的差异度量。
图5示出了示出基于占用度量和差异度量分配给客户端的信用的示例图、以及示出来自存储器控制器的反馈信号的示例图。
图6是示出调节存储器子系统中的信用分配的示例操作的流程图。
具体实施方式
本文件描述了用于调节存储器子系统中的信用分配的系统和技术。SoC中的存储器控制器可以将内部缓冲区细分为信用。信用控制器可以将信用分配给不同的客户端或客户端的业务类别。通过这种方式,存储器控制器可以分配存储器控制器的缓冲区并调度事务以最大化存储器接口处的带宽。
存储器子系统可以将业务类别定义为一组存储器事务,所述一组存储器事务要求特定处理,以保证特定服务质量(QoS)或获得特定系统性能。SoC或信用控制器可以为每个业务类别分配不同的虚拟信道标识(VCID),以简化信用分配。
现有的存储器控制器可以包括相对大的缓冲区,以提高向存储器服务事务的效率并提高存储器接口处的带宽。这些存储器子系统通常静态地分配:指定给客户端和业务类别的信用的数目。然而,这样的存储器子系统不能响应于实际的存储器事务而动态地调整所分配的信用以提高存储器接口处的带宽。
相反,所描述的系统和技术基于服务的事务的实时统计来调节对客户端、业务类别或VCID的信用分配。通过这种方式,所描述的系统和技术可以建议对所分配的信用进行调节。存储器控制器还可以向信用控制器或至少一些客户端提供闭合反馈机制,以实现对交易请求的有效管理和递送。结果,所描述的系统和技术可以增大存储器接口处的带宽。
作为非限制性示例,SoC的存储器子系统包括信用控制器和存储器控制器。信用控制器可以将相应数目的信用分配给一个或多个客户端。存储器控制器能操作地连接到一个或多个RAM和信用控制器。存储器控制器还包括缓冲区,该缓冲区可以存储来自客户端的访问RAM中的数据的事务请求。存储器控制器可以对于一个或多个客户端中的每个客户端监测由存储器控制器服务的事务请求的统计。然后,存储器控制器可以基于统计来确定:通过增加或减少分配给一个或多个客户端中的至少一个客户端的相应数目的信用存储器吞吐量是否会增加。存储器控制器可以基于存储器吞吐量将会增加的确定来生成输出信号。输出信号可以向信用控制器指示:应当增加或减少分配给至少一个客户端的相应数目的信用。
这个示例仅是对存储器子系统中的信用分配进行调节以提高存储器接口处的带宽的说明。遍及本文件描述其他示例配置和方法。本文件现在描述了用于所描述的对存储器子系统中的信用分配的调节的附加示例方法、配置和组件。
示例设备
图1示出了在其中可以实现用于调节存储器子系统中的信用分配的系统和技术的用户设备102的示例设备图100。为了清楚起见,用户设备102可以包括从图1中省略的附加组件和接口。
用户设备102可以是各种消费电子设备。作为非限制性示例,用户设备102可以是移动电话102-1、平板设备102-2、膝上型计算机102-3、台式计算机102-4、计算机化手表102-5、可穿戴计算机102-6、视频游戏控制台102-7或语音辅助系统102-8。
用户设备102可以包括用于通过无线网络进行通信的一个或多个射频(RF)收发器104。用户设备102可以将RF收发器104和支持电路(例如,天线、前端模块、放大器)调谐到由各种通信标准定义的一个或多个频带。
用户设备102还包括SoC 106。SoC 106通常将用户设备102的若干组件集成到单个芯片中,包括中央处理单元、存储器以及输入端口和输出端口。SoC 106可以包括单个核或多个核。在所描绘的实现方式中,SoC 106包括一个或多个客户端108和存储器子系统110。SoC 106可以包括其他组件,包括通信单元(例如,调节解调器)、输入/输出控制器和系统接口。
客户端108向存储器子系统110的随机存取存储器(RAM)112提供读取或写入数据的事务请求。作为非限制性示例,客户端108可以包括SoC 106的显示系统、图形处理单元、中央处理单元、通信单元、输入/输出控制器和系统接口。
存储器子系统110包括RAM 112、存储器控制器114和信用控制器116。RAM 112是合适的存储设备(例如,静态RAM(SRAM)、动态RAM(DRAM)、非易失性RAM(NVRAM)、同步动态RAM(SDRAM)),以存储客户端108可访问的数据。在其他实现方式中,RAM 112可以位于SoC 106之外。
存储器控制器114管理客户端108对RAM 112的事务请求。存储器控制器114可以缓冲并服务对RAM 112的事务请求,以增加存储器子系统110的带宽。特别地,存储器控制器可以调度事务请求,以提高RAM 112和存储器控制器114之间的接口的带宽。存储器控制器114可以包括硬件、固件、软件或其组合。
信用控制器116可以将存储器控制器114中的缓冲区的一部分分配给客户端108。缓冲区的分配的部分(在本件文中称为“信用”)表示在RAM 112处对相应客户端108的带宽保证。信用控制器116可以包括硬件、固件、软件或其组合。
架构(fabric)(在图1中未示出)经由相应的虚拟信道能操作地连接到客户端108。该架构可以将来自客户端108的事务请求转发到存储器控制器114。在一些实现方式中,该架构是复用器。在任何或所有客户端108中,信用控制器116可以在该架构中实现作为SoC106中的独立组件或作为SoC 106之外的独立组件。
存储器控制器114还可以监测与向RAM 112服务的事务相关的统计。基于统计,存储器控制器114可以向信用控制器116和/或客户端108提供反馈,以潜在地调节(例如,减少、增加、维持)分配给客户端108中的一个或多个的信用。通过这种方式,所描述的系统和技术可以动态地调节客户端108之间的信用分配,并提高对客户端108的QoS。
用户设备102还包括计算机可读存储介质(CRM)118。CRM 118是用于存储用户设备102的设备数据的合适的存储设备(例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、非易失性RAM(NVRAM)、只读存储器(ROM)、闪速存储器)。设备数据可以包括操作系统、一个或多个应用、用户数据和多媒体数据。在其他实现方式中,CRM 118可以存储操作系统、以及SoC 106的应用、用户数据和多媒体数据的子集。
操作系统通常管理用户设备102的硬件和软件资源并提供公共服务。操作系统和应用通常由SoC 106可执行,以实现与用户设备102的通信和用户交互,这可要求访问存储器子系统110的RAM 112中的数据。
图2示出了在其中可以实现用于调节SoC 106的存储器子系统110中的信用分配的系统和技术的SoC 106的示例设备图200。SoC 106和存储器子系统110可以包括未在图2中示出的附加组件。
SoC 106包括多个客户端108和存储器子系统110。在所描绘的实现方式中,客户端108包括客户端A 108-1、客户端B 108-2和客户端C 108-3。SoC 106可以包括更少或更多的客户端108。在该示例中,客户端108位于存储器子系统110之外。在其他实现方式中,客户端108或客户端108中的一部分可以位于存储器子系统110中。
如上所述,客户端108可以向RAM 112提供读取或写入数据的事务请求。一个或多个客户端108可以向存储器子系统110提供实时业务202和非实时业务204。在该示例中,客户端A 108-1的事务请求包括实时业务202和非实时业务204。
存储器子系统110包括RAM 112、存储器控制器114和信用控制器116。RAM 112包括至少一个存储设备。在所描述的实现方式中,RAM 112包括两个存储设备:SDRAM 206-1和SDRAM 206-2。SDRAM 206-1和SDRAM 206-2可以存储用于客户端108的数据或客户端108可访问的数据。SDRAM 206-1和SDRAM 206-2能操作地连接到存储器控制器114。
存储器控制器114可以包括缓冲区208、统计监测模块210和信用分配反馈模块212。缓冲区208临时存储客户端108的事务请求。缓冲区208,或存储器控制器114的另一组件,也可以向SDRAM 206-1和SDRAM 2062发送事务请求,以增加存储器接口处的带宽。
统计监测模块210可以监测向SDRAM 206-1和SDRAM 206-2服务的事务请求。例如,统计监测模块210可以确定与命中(例如,SDRAM 206-1或SDRAM 206-2处的页命中)数目、冲突(例如,在打开请求的页之前SDRAM 206-1或SDRAM 206-2关闭页)、为客户端108分配的带宽(例如,指定给服务事务请求的客户端108的业务类别)、事务请求的效率,以及希望的带宽有关的统计。统计监测模块210可以在存储器控制器114中以硬件、数字逻辑或其组合来实现。
信用分配反馈模块212可以向信用控制器116或客户端108提供反馈。反馈可以提供对分配给一个或多个客户端108的信用进行调节的建议。例如,信用分配反馈模块212可以建议信用控制器116将分配给客户端B 108的信用的数目减少2。存储器控制器114通常不知道分配给特定业务类别或VCID的信用的数目。因此,在对信用分配是不可知时,信用分配反馈模块212可以基于由统计监测模块210确定的统计来提供反馈。
该文件关于图3更详细地描述了存储器子系统110的操作,特别是存储器控制器114和信用控制器116的操作。
示例配置
本部分说明了用于调节信用分配的基于硬件的存储器子系统的示例配置,该示例配置可以单独发生、或全部地或部分地一起发生。为了便于阅读,本部分关于附图描述了示例配置。
图3示出了可以调节信用分配的存储器子系统110的示例图300。存储器子系统110可以包括未在图3中示出的附加组件。存储器子系统110提供用于基于由存储器控制器114收集的统计向上游客户端108或信用控制器116发送反馈的硬件实现。反馈可以建议对分配给特定业务类别或特定客户端的信用的数目进行调节。反馈回路由客户端108或信用控制器116完成,针对反馈采取行动并调节信用分配。通过这种方式,存储器控制器114可以提高存储器子系统110的性能。
类似于图2,存储器子系统110包括一个或多个RAM 112(例如,SDRAM 206-1、SDRAM206-2)、存储器控制器114、信用控制器116、架构312以及一个或多个客户端108(例如,客户端A 108-1、客户端B108-2、客户端C 108-3)。客户端108经由内部总线能操作地连接到架构312。该文件将内部总线称为虚拟信道302。每个虚拟信道302被指定唯一标识,在本文件中该唯一标识被称为虚拟信道标识(VCID)。架构312、信用控制器116或客户端108可以将VCID指定给特定的业务类别。如上所述,业务类别表示事务请求所要求的特定处理,以满足对客户端108的特定QoS。例如,实时业务202(例如,来自显示客户端)可要求与非实时业务204相比不同的QoS处理。
在所描绘的实现方式中,客户端A 108-1经由虚拟信道302-1能操作地连接到架构312。客户端B 108-2经由虚拟信道302-2能操作地连接到架构312,并且客户端C 108-3经由虚拟信道302-3能操作地连接到架构312。
信用控制器116可以将存储器控制器114的缓冲区208(图3中未示出)细分为信用,并将信用分配给不同业务类别,以管理可用于不同业务类别的带宽。分配给不同业务类别的信用以及因此分配给不同VCID的信用转化为存储器控制器114的缓冲区208处对每个VCID的带宽保证。在其他实现方式中,信用控制器116可以基于空闲池在客户端108之间分配信用。空闲池允许信用控制器116基于来自存储器控制器114的反馈、业务类别指定、可用的空闲信用的数目或其组合来动态地向客户端108分配信用。
架构312经由内部总线304能操作地连接到存储器控制器114。架构312经由内部总线304将存储器事务从客户端108发送给存储器控制器114。存储器控制器114将事务请求临时存储在缓冲区208中。
存储器控制器114经由内部总线306能操作地连接到SDRAM 206。在所描绘的实现方式中,存储器控制器114分别经由内部总线306-1和306-2能操作地连接到SDRAM 206-1和206-2。存储器控制器114经由相应的内部总线306向SDRAM 206服务事务请求。如关于图2所描述的,统计监测模块210(图3中未示出)监测向SDRAM 206服务的存储器事务的统计。
存储器控制器114还经由边带信道308能操作地连接到信用控制器116。在一些实现方式中,存储器控制器114还可以经由边带信道310能操作地连接到一个或多个客户端108。在其他实现方式中,存储器控制器114可以经由边带信道310能操作地连接到客户端108,而不是经由边带信道308能操作地连到信用控制器116。
基于统计监测模块210生成的统计,信用分配反馈模块212(图3中未示出)可以建议:对一个或多个客户端108的信用分配进行调节。通过这种方式,存储器控制器114可以确保缓冲区208是最大效率的。如果特定VCID可以用较小的信用分配来实现相同的吞吐量,那么信用控制器116或客户端108可以将备用信用分配给将受益于附加信用的不同的VCID、业务类别或客户端108。
例如,存储器控制器114可以经由边带信道308或边带信道310发送表1中列出的建议信号中的至少一个。例如,建议信号r_reduce_credits和w_decrease_credits建议减少分配给客户端108中的一个或多个的信用的数目。通过这种方式,信用控制器116或客户端108可以使用建议信号来动态地调节针对特定VCID的缓冲区208的最大占用。在空闲池分配系统中,信用控制器116或客户端108考虑建议信号以调节VCID之间的信用分配。在调节信用分配时,信用控制器116还在调节分配给特定VCID的信用时考虑最小信用分配、QoS规范、和基于紧急性的考虑。
表1
信号名称 宽度 描述
r_decrease_credits [Num_vc-1:0] 减少信用的建议
r_hold_credits [Num_vc-1:0] 保持信用的建议
r_increase_credits [Num_vc-1:0] 增加信用的建议
w_decrease_credits [Num_vc-1:0] 减少信用的建议
w_hold_credits [Num_vc-1:0] 保持信用的建议
w_increase_credits [Num_vc-1:0] 增加信用的建议
在操作中,统计监测模块210可以监测若干度量以辅助信用分配反馈模块212。特别地,统计监测模块210可以针对存储器子系统110的每个时钟周期确定对由存储器控制器114服务的事务请求的差异度量和占用度量。事务请求包括VCID、或识别服务事务请求的客户端108的其他数据。通过这种方式,统计监测模块210可以为一个或多个客户端108中的每一个确定差异度量和占用度量。在其他实现方式中,统计监测模块210可以确定并监测附加度量。参照图4更详细地描述了表示在到SDRAM 206的接口处由特定VCID看到的效率的差异度量。关于图5更详细地描述了占用度量,其推断分配给某个VCID的信用的数目。
如图3中所描绘,存储器子系统110可以以硬件实现对信用分配的管理和调节。在其他实现方式中,信用管理和重新平衡可以在内核级别或驱动程序级别实现。
图4示出了示例图4400,其示出由存储器控制器114的统计监测模块210监测的差异度量。在该实现方式中,统计监测模块210监测针对存储器子系统110的特定VCID的差异度量。
差异度量表示对SDRAM 206中的一个或两个的接口处VCID的效率。作为示例,有着导致相对大比例命中的事务请求的VCID将具有比有着造成较高比例冲突的较随机的事务请求的VCID更高的效率。在本文件中,命中是指在SDRAM 206处的页命中。当对事务请求所要求的SDRAM 206的页(例如,行)已经打开时,可发生页命中。未命中是指对在SDRAM 206处关闭的页的事务请求。冲突是指SDRAM 206具有与事务请求所要求的页不同的打开的页,从而导致打开的页被关闭。
SDRAM 206处的事务请求通常导致特定的命令序列。例如,读(RD)或写(WR)命令首先涉及发送激活(ACT)命令。ACT命令将SDRAM 206的整个页加载到行缓冲区中。后续的寻址该页的列的RD命令返回数据。类似地,后续的寻址该页的WR命令将事务请求中的数据写入经寻址的列中。在该页的访问完成之后,SDRAM 206通过发出预充电(PRE)命令来关闭该页。通常,向SDRAM 206的事务请求可以包括打开、访问和关闭页。如果事务请求寻址当前未打开的页或行缓冲区,则事务请求会引起关闭已打开页的附加惩罚。
存储器控制器114试图最大化在到SDRAM 206的接口处的带宽,并且还同时满足事务请求的QoS参数。这两个要求可导致存储器控制器114不按顺序服务事务请求。发送导致一系列命中的事务请求的客户端108、业务类别或VCID将具有比经历许多冲突的客户端108、业务类别或VCID更低的延迟。因此,信用分配反馈模块212可以使用与命中、冲突、分配的带宽和希望的带宽有关的统计来定义性能度量。信用分配反馈模块212然后可以使用性能度量来建议对分配给不同客户端108、业务类别或VCID的信用进行调节,以提高系统性能。
统计监测模块210可以将特定VCID的差异度量定义为将命中之和减去冲突之和:
差异[VCi]=∑命中-∑冲突 (1)
差异度量可以是具有某个初始偏移值(例如,32)的8比特无符号值。每当事务请求接收存储器控制器114的请求调度器中的许可时,统计监测模块210在下一时钟周期中更新属于该VCID的命中和冲突的数目,并更新差异值。通过这种方式,统计监测模块210可以使用计数器来确定与特定VCID相关联的效率,同时避免需要使用除法或乘法来生成差异度量。统计监测模块210通常不考虑未命中,因为每个冲突最终导致未命中。在另一实现方式中,统计监测模块210可以根据未命中,而非冲突,来定义差异度量。统计监测模块210还可以使差异度量在最大值414(例如,255)和最小值416(例如,0)处饱和,以避免差异值翻转(例如,以避免可能导致差异度量的值错误的整数上溢或下溢)。
图400示出了针对时间窗口404、406、408、410和412由统计监测模块210对客户端A108-1生成的示例差异值402。在时间窗口404的开始,对于客户端A 108-1的差异值402开始于为32的初始偏移值。在时间窗口404期间,存储器控制器114不服务客户端A 108-1的任何事务请求,并且差异值402保持为32的值。
在时间窗口406期间,存储器控制器114服务导致页命中的事务请求,并且差异值402具有正斜率。在一定数目的页面命中之后,差异值402在最大值414处饱和。
在时间窗口408期间,统计监测模块210包括衰减因子,该衰减因子在没有针对该VCID的事务请求时缓慢地将差异值402带回初始偏移值。通过这种方式,统计监测模块210可以避免旧事务请求线程的命中率影响对当前事务请求线程的反馈信号。
在时间窗口410期间,差异值402通过低于初始偏移值和高于初始偏移值而围绕初始偏移值振荡。差异值402的振荡可以是由一系列事务请求引起的,所述一系列事务请求导致冲突然后导致页命中。考虑到在事务请求被发送并导致冲突之后,该事务请求成为页命中,并导致正分数抵消负分数。在时间窗口412期间,存储器控制器114不服务针对VCID的任何事务请求,并且差异值402保持在初始偏移值。
响应于低的差异值402,信用分配反馈模块212不必建议减少对特定VCID的信用分配。VCID可能已经被指定了少数目的信用,并且期望在存储器控制器114处具有小的带宽。因此,预期在到SDRAM 206的接口处相对低的效率或带宽,并且不会触发减少分配给该VCID的信用的建议。为此,信用分配反馈模块212使用关于图5描述的占用度量以及差异度量来生成信用分配反馈。
图5示出了示出基于占用度量和差异度量分配给客户端108的信用504的示例图502、以及示出来自存储器控制器114的反馈信号520的示例图518。在该实现方式中,统计监测模块210监测存储器子系统110的特定VCID的占用度量。
如上所述,占用度量表示统计监测模块210对分配给VCID的信用504的数目的推断。因为信用的分配是由信用控制器116和/或一个或多个客户端108管理的,所以存储器控制器114不直接知道分配给特定VCID的信用504的数目。统计监测模块210可以使用缓冲区208中由特定VCID使用的条目的数目来推断分配给VCID的信用504。换句话说,特定虚拟信道的占用度量是该虚拟信道使用的缓冲区条目的数目。
信用分配反馈模块212可以基于由统计监测模块210收集的占用度量和差异度量来确定每个VCID的反馈信号520,如下所示:
K×占用[VCi]-差异[VCi]>阈值[VCi] (2)
其中K是恒定的缩放因子,以使占用度量和差异度量两者都在相同的范围内。如果前者为真,则信用分配反馈模块212建议:减少分配给VCID的信用504。信用控制器116和/或客户端108可以使用反馈信号520来执行对分配给VCID的信用504的最大数目的逐次近似。
作为示例,图502示出了分配给特定客户端108(例如,客户端B108-2)的信用504。图518示出了信用分配反馈模块212向信用控制器116提供的关于用于调节分配给客户端B108-2的信用504的建议的反馈信号520。在时间窗口510期间,信用控制器116向客户端B108-2分配最大数目的信用506(例如,12个信用)。信用分配反馈模块212在时间窗口510期间向用于客户端B 108-2的信用控制器116发送保持建议。
在时间窗口512中,统计监测模块210确定与客户端B 108-2相关联的VCID的占用度量大于阈值,该阈值大于该VCID的差异度量。作为响应,信用分配反馈模块212向存储器控制器114发送r_reduce_credits信号。当信用控制器116看到T个时钟周期522的减少建议时,信用控制器116可以将分配给客户端B 108-2的信用504的数目朝向最小数目的信用508向下调节信用的数目。分配给客户端B108-2的信用504的数目的减少可以继续,直到反馈信号520不再包括r_decrease_credits建议。分配给客户端B 108-2的信用504的数目通常不会下降到最小数目的信用508之下。
在时间窗口514和516期间,反馈信号520不再包括T个时钟周期522的r_reduce_credits建议,并且分配给客户端B 108-2的信用504的数目朝向最大数目的信用506增加回来。
信用控制器116可以将从客户端B 108-2取走的信用分配给不同的客户端或分配给信用的空闲池。通过这种方式,存储器子系统110可以通过调节分配给不同VCID的信用来有效地利用存储器控制器114的缓冲区208。此外,在没有来自存储器控制器114的减少信用建议的情况下,信用控制器通常试图将最大数目的信用506分配给客户端108。
示例方法
图6是示出调节存储器子系统中的信用分配的示例操作600的流程图。操作600是在图1和图2的存储器子系统110的上下文中描述的。操作600可以以不同的次序执行,或者使用附加的或较少的操作来执行。
在602,信用控制器将相应数目的信用分配给一个或多个客户端。例如,信用控制器116可以将相应数目的信用分配给一个或多个客户端108。
在604,由存储器控制器存储来自一个或多个客户端的用于访问一个或多个RAM中的数据的事务请求。存储器控制器能操作地连接到一个或多个RAM和信用控制器。例如,存储器控制器114能操作地连接到一个或多个RAM 112(例如,SDRAM 206-1、SDRAM 206-2)和信用控制器116。存储器控制器114包括缓冲区208,用于存储来自一个或多个客户端108的访问一个或多个RAM 112中的数据的事务请求。
在606,由存储器控制器对于一个或多个客户端中的每个客户端来监测向一个或多个RAM服务的事务请求的统计。例如,存储器控制器114可以对于一个或多个客户端108中的每个客户端108监测向一个或多个RAM 112服务的事务请求的统计。
在608,存储器控制器基于统计来确定通过增加或减少分配给一个或多个客户端中的至少一个客户端的相应数目的信用是否会将存储器吞吐量增加。例如,存储器控制器114可以基于统计来确定通过增加或减少分配给一个或多个客户端108中的至少一个客户端108的相应数目的信用是否会将存储器吞吐量增加。
在610,由存储器控制器生成输出信号,以指示应增加或减少相应数目的信用。输出信号是基于存储器吞吐量会被增加的确定。输出信号由存储器控制器发送给信用控制器。例如,存储器控制器114可以生成输出信号以指示应当增加或减少相应数目的信用。输出信号是基于RAM 112的存储器吞吐量会被增加的确定。存储器控制器114可以经由边信道308将输出信号发送给信用控制器116。存储器控制器114还可以将输出信号直接发送给一个或多个客户端108中的至少一个。
在612,分配给一个或多个客户端中的至少一个客户端的相应数目的信用由信用控制器基于输出信号而被调节。例如,信用控制器116可以基于输出信号来调节分配给一个或多个客户端108中的至少一个客户端108的相应数目的信用。
示例
在以下部分中,提供了示例。
示例1:一种片上系统(SoC)的存储器子系统:存储器控制器,能够操作地连接到信用控制器,存储器控制器包括缓冲区,缓冲区被配置为存储来自一个或多个客户端的用于访问一个或多个RAM中的数据的事务请求,存储器控制器被配置为:对于一个或多个客户端中的每个客户端,监测由存储器控制器服务的事务请求的统计;基于统计来确定:通过增加或减少分配给一个或多个客户端中的至少一个客户端的相应数目的信用存储器吞吐量是否将会增加;以及基于存储器吞吐量增加的确定来生成输出信号,输出信号被配置为向信用控制器指示:应当增加或减少分配给一个或多个客户端中的至少一个客户端的相应数目的信用。
示例2:根据示例1所述的存储器子系统,其中:信用控制器经由相应的虚拟信道能够操作地连接到一个或多个客户端,虚拟信道与相应的虚拟信道标识(VCID)相关联;以及存储器控制器进一步被配置为将每个客户端的统计与相应的VCID相关联。
示例3:根据任何前述示例所述的存储器子系统,其中:存储器控制器进一步被配置为经由边信道向信用控制器发送建议。
示例4:根据任一项前述示例所述的存储器子系统,其中,统计包括一个或多个RAM中的页命中数目、在能够打开另一页之前要求关闭一个或多个RAM的页的冲突数目、或分配给客户端的相应数目的信用的推断中的至少两个。
示例5:根据示例4所述的存储器子系统,其中,存储器控制器进一步被配置为:对于一个或多个客户端中的每个客户端定义差异度量,差异度量表示页命中数目减去冲突数目;以及对于一个或多个客户端中的每个客户端定义占用度量,占用度量表示分配给客户端的相应数目的信用的推断,其中,对分配给一个或多个客户端中的至少一个客户端的相应数目的信用进行调节的建议是基于对于一个或多个客户端中的每个客户端的占用度量与差异度量的比较。
示例6:根据示例5所述的存储器子系统,其中,差异度量包括:最大阈值,表示差异度量的最大值;以及默认阈值,表示差异度量的初始偏移值。
示例7:根据示例6所述的存储器子系统,其中,差异度量进一步包括:衰减因子,该衰减因子使差异量度在没有任何事务请求的时间段之后回归到默认阈值。
示例8:根据示例4至7中任一项所述的存储器子系统,其中,存储器控制器基于一个或多个客户端中的每个客户端所使用的缓冲区中的条目的数目来确定占用度量。
示例9:根据任一项前述示例所述的存储器子系统,其中,一个或多个RAM包括低功率双数据速率同步动态随机存取存储器(LPDDR SDRAM)。
示例10:根据任一项前述示例所述的存储器子系统,其中,存储器控制器包括专用集成电路(ASIC)存储器控制器。
示例11:根据任一项前述示例所述的存储器子系统,其中,SoC被嵌入在用户设备中。
示例12:根据示例11所述的存储器子系统,其中,用户设备是移动电话、膝上型计算机、平板电脑、便携式视频游戏控制台或可穿戴设备。
示例13:一种信用控制器,该信用控制器被配置为:将相应数目的信用分配给片上系统(SoC)的存储器子系统的一个或多个客户端,一个或多个客户端被配置为发送用于访问一个或多个RAM中的数据的事务请求;从存储器控制器并基于由存储器控制监测的统计,接收信号,该信号指示分配给一个或多个客户端的相应数目的信用应当被增加或减少;以及基于信号来动态地改变分配给一个或多个客户端的相应数目的信用。
示例14:根据示例13所述的信用控制器,其中:信用控制器经由相应的虚拟信道能够操作地连接到一个或多个客户端,虚拟信道与相应的虚拟信道标识(VCID)相关联;以及由存储器控制器对于一个或多个客户端中的每个客户端监测的统计与相应的VCID相关联。
示例15:根据示例13和14中任一项所述的信用控制器,其中,信用控制器经由边信道从存储器控制器接收建议。
示例16:一种片上系统(SoC)的客户端,该客户端被配置为:向SoC的存储器子系统的存储器控制器发送用于访问一个或多个RAM中的数据的事务请求;从存储器控制器并基于由存储器控制监测的统计,接收信号,该信号指示分配给客户端的相应数目的信用应当被增加或减少;以及基于信号来动态地改变用于未来事务请求的信用的数目。
结论
虽然已经用特定于特征和/或方法的语言描述了用于调节存储器子系统中的信用分配的各种配置和方法,但是应当理解,所附权利要求的主题内容不必限于所描述的特定特征或方法。相反,特定特征和方法被公开为调节存储器子系统中的信用分配的非限制性示例。

Claims (16)

1.一种片上系统SoC的存储器子系统,包括:
能够操作地连接到信用控制器的存储器控制器,所述存储器控制器包括缓冲区,所述缓冲区被配置为存储来自一个或多个客户端的用于访问一个或多个RAM中的数据的事务请求,所述存储器控制器被配置为:
对于所述一个或多个客户端中的每个客户端,监测由所述存储器控制器所服务的所述事务请求的统计;
基于所述统计来确定通过增加或减少分配给所述一个或多个客户端中的至少一个客户端的相应数目的信用是否会将存储器吞吐量增加;以及
基于确定所述存储器吞吐量将会增加来生成输出信号,所述输出信号被配置为向信用控制器指示应当增加或减少分配给所述一个或多个客户端中的所述至少一个客户端的所述相应数目的信用。
2.根据权利要求1所述的存储器子系统,其中:
所述信用控制器经由相应的虚拟信道能够操作地连接到所述一个或多个客户端,所述虚拟信道与相应的虚拟信道标识VCID相关联;以及
所述存储器控制器进一步被配置为将用于每个客户端的统计与所述相应的VCID相关联。
3.根据前述权利要求中任一项所述的存储器子系统,其中:
所述存储器控制器进一步被配置为经由边信道向所述信用控制器发送所述建议。
4.根据前述权利要求中任一项所述的存储器子系统,其中,所述统计包括以下中的至少两个:所述一个或多个RAM中的页命中数目、在能够打开另一页之前要求关闭所述一或多个RAM的页的冲突数目、或分配给所述客户端的所述相应数目的信用的推断。
5.根据权利要求4所述的存储器子系统,其中,所述存储器控制器进一步被配置为:
对于所述一个或多个客户端中的每个客户端定义差异度量,所述差异度量表示所述页命中数目减去所述冲突数目;以及
对于所述一个或多个客户端中的每个客户端定义占用度量,所述占用度量表示分配给所述客户端的所述相应数目的信用的推断,
其中,用于对分配给所述一个或多个客户端中的所述至少一个客户端的所述相应数目的信用进行调节的建议是基于所述一个或多个客户端中的每个客户端的所述占用度量与所述差异度量的比较。
6.根据权利要求5所述的存储器子系统,其中,所述差异度量包括:
最大阈值,所述最大阈值表示所述差异度量的最大值;以及
默认阈值,所述默认阈值表示所述差异度量的初始偏移值。
7.根据权利要求6所述的存储器子系统,其中,所述差异度量进一步包括衰减因子,所述衰减因子使所述差异量度在没有任何事务请求的时间段之后回归到所述默认阈值。
8.根据权利要求4至7中任一项所述的存储器子系统,其中,所述存储器控制器基于由所述一个或多个客户端中的每个客户端所使用的所述缓冲区中的条目的数目来确定所述占用度量。
9.根据前述权利要求中任一项所述的存储器子系统,其中,所述一个或多个RAM包括低功率双数据速率同步动态随机存取存储器(LPDDR SDRAM)。
10.根据前述权利要求中任一项所述的存储器子系统,其中,所述存储器控制器包括专用集成电路(ASIC)存储器控制器。
11.根据前述权利要求中任一项所述的存储器子系统,其中,所述SoC被嵌入在用户设备中。
12.根据权利要求11所述的存储器子系统,其中,所述用户设备是移动电话、膝上型计算机、平板电脑、便携式视频游戏控制台或可穿戴设备。
13.一种信用控制器,所述信用控制器被配置为:
将相应数目的信用分配给片上系统SoC的存储器子系统的一个或多个客户端,所述一个或多个客户端被配置为发送用于访问一个或多个RAM中的数据的事务请求;
从所述存储器控制器并基于由所述存储器控制监测的统计来接收信号,所述信号指示分配给所述一个或多个客户端的所述相应数目的信用应当被增加或减少;以及
基于所述信号来动态地改变分配给所述一个或多个客户端的所述相应数目的信用。
14.根据权利要求13所述的信用控制器,其中:
所述信用控制器经由相应的虚拟信道能够操作地连接到所述一个或多个客户端,所述虚拟信道与相应的虚拟信道标识VCID相关联;以及
由所述存储器控制器针对所述一个或多个客户端中的每个客户端所监测的所述统计与所述相应的VCID相关联。
15.根据权利要求13和14中任一项所述的信用控制器,其中,所述信用控制器经由边信道从所述存储器控制器接收所述建议。
16.一种片上系统SoC的客户端,所述客户端被配置为:
向所述SoC的存储器子系统的存储器控制器发送用于访问一个或多个RAM中的数据的事务请求;
从所述存储器控制器并基于由所述存储器控制监测的统计来接收信号,所述信号指示分配给所述客户端的信用的数目应当被增加或减少;以及
基于所述信号来动态地改变用于未来事务请求的所述信用的数目。
CN202080106350.XA 2020-10-26 2020-10-26 调节存储器子系统中的信用分配 Pending CN116584075A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/057293 WO2022093165A1 (en) 2020-10-26 2020-10-26 Modulating credit allocations in memory subsystems

Publications (1)

Publication Number Publication Date
CN116584075A true CN116584075A (zh) 2023-08-11

Family

ID=73455804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080106350.XA Pending CN116584075A (zh) 2020-10-26 2020-10-26 调节存储器子系统中的信用分配

Country Status (5)

Country Link
US (1) US20240004551A1 (zh)
EP (1) EP4211566A1 (zh)
CN (1) CN116584075A (zh)
TW (2) TWI783386B (zh)
WO (1) WO2022093165A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7362705B2 (en) * 2004-05-13 2008-04-22 International Business Machines Corporation Dynamic load-based credit distribution
AU2011302452B2 (en) * 2010-09-16 2014-09-04 Apple Inc. Multi-ported memory controller with ports associated with traffic classes
US9535860B2 (en) * 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric
GB2522057B (en) * 2014-01-13 2021-02-24 Advanced Risc Mach Ltd A data processing system and method for handling multiple transactions
US9954792B2 (en) * 2014-12-20 2018-04-24 Intel Corporation Shared flow control credits
US10268405B2 (en) * 2016-03-17 2019-04-23 Mediatek, Inc. Dynamic rank switching for low power volatile memory

Also Published As

Publication number Publication date
US20240004551A1 (en) 2024-01-04
EP4211566A1 (en) 2023-07-19
WO2022093165A1 (en) 2022-05-05
TWI823637B (zh) 2023-11-21
TW202307679A (zh) 2023-02-16
TWI783386B (zh) 2022-11-11
TW202217579A (zh) 2022-05-01

Similar Documents

Publication Publication Date Title
US10528481B2 (en) Apparatus and method for managing storage of data blocks
US7054968B2 (en) Method and apparatus for multi-port memory controller
US6785793B2 (en) Method and apparatus for memory access scheduling to reduce memory access latency
US10783104B2 (en) Memory request management system
US6397287B1 (en) Method and apparatus for dynamic bus request and burst-length control
US11221798B2 (en) Write/read turn techniques based on latency tolerance
US10795837B2 (en) Allocation of memory buffers in computing system with multiple memory channels
US8045472B2 (en) Credit management when resource granularity is larger than credit granularity
US10331195B2 (en) Power and performance aware memory-controller voting mechanism
CN103210382A (zh) 基于总线装置健康信息和相关功率管理而仲裁通信总线上的总线事务
US20050262323A1 (en) System and method for improving performance in computer memory systems supporting multiple memory access latencies
EP1820107A2 (en) Streaming memory controller
KR20160144482A (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
CN107562369B (zh) 存储器控制器、存储缓冲器芯片和存储系统
CN110109953A (zh) 一种数据查询方法、装置及设备
CN111049756B (zh) 请求响应方法、装置、电子设备及计算机可读存储介质
US10514848B2 (en) Data storage method for selectively storing data in a buffer preset in a memory of an electronic device or an inherent buffer in an SSD
US7660964B2 (en) Windowing external block translations
WO2018147964A1 (en) Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems
US10031884B2 (en) Storage apparatus and method for processing plurality of pieces of client data
CN116584075A (zh) 调节存储器子系统中的信用分配
US20120066471A1 (en) Allocation of memory buffers based on preferred memory performance
US11803467B1 (en) Request buffering scheme
KR20160018204A (ko) 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법
CN108228104A (zh) 数据传输方法及固态硬盘控制器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination