CN112602049A - 优化对存储器系统的信息请求 - Google Patents
优化对存储器系统的信息请求 Download PDFInfo
- Publication number
- CN112602049A CN112602049A CN201980053318.7A CN201980053318A CN112602049A CN 112602049 A CN112602049 A CN 112602049A CN 201980053318 A CN201980053318 A CN 201980053318A CN 112602049 A CN112602049 A CN 112602049A
- Authority
- CN
- China
- Prior art keywords
- memory subsystem
- host system
- memory
- amount
- buffer
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 323
- 239000000872 buffer Substances 0.000 claims abstract description 73
- 238000004891 communication Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000003139 buffering effect Effects 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 29
- 230000009977 dual effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 16
- 238000012546 transfer Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Memory System (AREA)
Abstract
一种具有处理装置和控制器的系统,所述控制器通过通信信道可操作地连接到存储器子系统以:存储标识所述存储器子系统的缓冲器的可用容量的量的信息;通过所述通信信道向所述存储器子系统传输一或多个写入命令以将数据存储在所述存储器子系统的存储器组件中,其中所述存储器子系统在所述缓冲器中对所述一或多个写入命令进行排队;通过从所述可用容量的量扣除所述一或多个写入命令所用的缓冲容量的量以产生所述缓冲器的当前可用容量的量来更新所述信息;以及至少部分地基于所述当前可用容量的量来确定是否计算对所述存储器子系统的信息请求。
Description
相关申请
本申请要求2018年8月8日提交的标题为“优化对存储器系统的信息请求(Optimize Information Requests to a Memory System)”的第16/058,645号美国专利申请的申请日的权益,其整个公开内容特此以引用的方式并入本文中。
技术领域
本公开的实施例大体上涉及存储器系统,且更具体地说,涉及优化从主机系统传输到存储器系统的信息请求的频率。
背景技术
存储器子系统可以是存储系统,例如固态驱动器(SSD),也可以是存储器模块,例如非易失性双列直插式存储器模块(NVDIMM),且可包含存储数据的一或多个存储器组件。存储器组件可例如为非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
标准化的通信协议允许主机系统与存储器子系统进行通信,以存储数据和检索数据。
例如,JEDEC(电子装置工程设计联合协会)固态技术协会提出了一种用于主机系统与NVDIMM-P存储器模块之间的通信的“DDR5 NVDIMM-P总线协议”。JEDEC委员会信函投票委员会:JC-45.6,委员会项目编号2261.13D,主题:“拟议的DDR5 NVDIMM-P总线协议”对此协议进行了详细描述,其在此以全文引用的方式并入本文中。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的具有存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的包含信息请求管理器的实例计算系统。
图3是根据本公开的一些实施例的优化从主机系统到存储器子系统的信息请求的实例方法的流程图。
图4是根据本公开的一些实施例的优化信息请求的详细实例方法的流程图。
图5是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的至少一些方面涉及优化从主机系统传输到存储器子系统的信息请求以减少通信业务和/或减小功耗。替代地,对请求的此类优化可用于增加响应性,或在响应性与业务量之间创建中间点。存储器子系统在下文还称为“存储器装置”。存储器子系统的实例是通过存储器总线连接到中央处理单元(CPU)的存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。存储器子系统的另一实例是存储系统,例如固态驱动器(SSD)。在一些实施例中,存储器子系统是提供存储器功能和存储功能两者的混合式存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
在一些计算机系统(例如使用NVDIMM-P总线连接的主机系统和存储器子系统)中,用以将数据存储于存储器子系统中的写入命令可在存储器子系统中缓冲以供在未预定的时间段内执行。主机系统可发出命令以向存储器子系统请求信息,所述信息包含指示存储器子系统用于接受新写入命令和其数据的可用容量的信息。指示可用容量的此类信息可称作写入额度(write credit)。在一些情况下,例如在当前预期存储器子系统不具有可分配给主机系统以发送新写入命令的容量时,发送此类请求可能不会产生有用的结果。发送请求而产生不大可能有用的响应可导致对通信资源的低效使用和/或可增加功耗。
本公开的至少一些方面通过主机系统根据已产生有用结果的以往请求的定时的统计数据而调整信息请求的频率来解决以上和其它缺陷。
图1说明根据本公开的一些实施例的具有存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如存储器组件109A到109N。存储器组件109A到109N可以是易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统110是存储器模块。存储器模块的实例包含DIMM、NVDIMM和NVDIMM-P。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合式存储器/存储子系统。通常,计算环境可包含使用存储器子系统110的主机系统120。例如,主机系统120可将数据写入到存储器子系统110且从存储器子系统110读取数据。
主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置,或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可通过物理主机接口耦合到存储器子系统110。如本文所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有居间组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120还可利用NVM高速(NVMe)接口来访问存储器组件109A到109N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据以及其它信号的接口。图1说明作为实例的存储器子系统110。一般来说,主机系统120可通过同一通信连接、多个单独通信连接和/或通信连接的组合来访问多个存储器子系统。
主机系统120包含处理装置118和控制器116。主机系统120的处理装置118可例如为微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些情况下,控制器116可称作存储器控制器、存储器管理单元和/或启动器。在一个实例中,控制器116控制通过耦合在主机系统120与存储器子系统110之间的总线进行的通信。
通常,控制器116可向存储器子系统110发送期望访问存储器组件109A到109N的命令或请求。控制器116还可包含用以与存储器子系统110通信的接口电路系统。接口电路系统可将从存储器子系统110接收的响应转换成用于主机系统120的信息。
主机系统120的控制器116可与存储器子系统110的控制器115通信以执行操作,例如在存储器组件109A到109N处读取数据、写入数据或擦除数据,以及其它此类操作。在一些情况下,控制器116集成于处理装置118的同一封装内。在其它情况下,控制器116与处理装置118的封装分开。控制器116和/或处理装置118可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器、高速缓冲存储器,或其组合。控制器116和/或处理装置118可以是微控制器、专用逻辑电路系统(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
存储器组件109A到109N可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)型快闪存储器。存储器组件109A到109N中的每一者可包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)或多层级单元(MLC)(例如三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一者可存储由主机系统120使用的一或多位的数据(例如,数据块)。尽管描述如NAND型快闪存储器的非易失性存储器组件,但存储器组件109A到109N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件109A到109N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、铁电随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)、基于纳米线的非易失性存储器、并入有忆阻器技术的存储器,以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件109A到109N的存储器单元可分组为存储器页面或数据块,所述存储器页面或数据块可指用于存储数据的存储器组件的单元。
存储器子系统110的控制器115可与存储器组件109A到109N通信以执行操作,例如在存储器组件109A到109N处读取数据、写入数据或擦除数据,以及其它此类操作(例如,响应于由控制器116在命令总线上调度的命令)。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或另一合适的处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理装置117(处理器)。在所说明的实例中,控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行各种过程、操作、逻辑流以及例程以控制存储器子系统110的操作,包含处理存储器子系统110与主机系统120之间的通信。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管将图1中的实例存储器子系统110说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可能不包含控制器115,且可能改为依靠(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或合适的命令,以实现对存储器组件109A到109N的所期望访问。控制器115可负责其它操作,例如耗损均衡操作、无用单元收集操作、误差检测和误差校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器组件109A到109N相关联的逻辑块地址与物理块地址之间的地址转译。控制器115还可包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以访问存储器组件109A到109N,以及将与存储器组件109A到109N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如DRAM)以及地址电路系统(例如行解码器和列解码器),所述地址电路系统可从控制器115接收地址且对所述地址进行解码以访问存储器组件109A到109N。
计算系统100在主机系统120中包含信息请求管理器113,所述信息请求管理器经配置以优化对存储器子系统110的信息请求的产生。在一些实施例中,主机系统120中的控制器116包含信息请求管理器113的至少一部分。例如,控制器116可包含实施信息请求管理器113的逻辑电路系统。例如,控制器116使用经配置以执行存储在本地存储器中的指令的处理装置118(处理器)来执行本文描述的信息请求管理器113的操作。在一些实施例中,信息请求管理器113是主机系统120的操作系统、装置驱动器或应用程序的部分。
主机系统120的信息请求管理器113控制信息请求的产生,以提高请求和其响应的有效性。信息请求可要求存储器子系统110分配存储器子系统110中的可用缓冲容量。基于所分配缓冲容量,主机系统120可将新写入命令和其数据传输到存储器子系统110;且存储器子系统110可将所述新写入命令和其数据存储在所分配缓冲容量中,以用于在由存储器子系统110决定的时刻执行。信息请求管理器113可基于在主机系统120处可用的当前所分配缓冲容量的量和/或在关于缓冲容量的分配的先前通信后的时间间隔来延迟信息请求的产生。例如,如果在主机系统120处可用以发送写入命令的当前所分配缓冲容量高于阈值,则信息请求管理器113可延迟信息请求的产生。例如,如果在主机系统120处可用于发送写入命令的当前所分配缓冲容量低于阈值,且在存储器子系统110进行的先前缓冲容量分配后经过的时间小于阈值时间段,则信息请求管理器113可延迟信息请求的产生,直到经过的时间达到阈值时间段为止。所述阈值时间段可以是预定时间段,或基于存储器子系统110可分配用于接受新写入命令的缓冲容量的平均速度而计算出的时间段。以此方式控制信息请求的产生可提高通信资源的使用效率,所述通信资源例如主机系统120与存储器子系统110之间的总线。此外,增大信息请求的有效性可通过消除和/或组合某些通信而使功耗降低。下文描述关于信息请求管理器113的操作的其它细节。
图2说明根据本公开的一些实施例的包含信息请求管理器113的实例计算系统。
描述图2时仅出于的非限制性说明目的,主机系统120的控制器116在下文有时称为存储器控制器116,且存储器子系统110的控制器115在下文有时称为媒体控制器115。
在图2中,主机系统120与存储器子系统110之间的通信信道包含命令总线121、数据总线123、事务总线125和元数据总线127。用于所述通信通道的通信协议允许异步访问存储器子系统110,以便由主机系统120进行数据存储和检索。例如,存储器子系统110可以是NVDIMM;且主机系统120可使用命令总线121、数据总线123、事务总线125和元数据总线127根据JEDEC NVDIMM-P总线协议访问存储器控制器116。
例如,存储器控制器116可发出将数据存储在存储器子系统110中的写入命令。在命令总线121上传输写入命令后的固定和预定时间窗口之后,存储器控制器116开始在数据总线123上传输数据。存储器子系统110无需在预定时间段内完成写入命令的操作。此类写入命令的实例包含在JEDEC NVDIMM-P总线协议中标识的XWRITE和PWRITE。
例如,存储器控制器116可发出读取命令以向存储器子系统110请求信息。存储器子系统110无需在读取命令后的预定时间窗口内产生响应。此类读取命令的实例包含在JEDEC NVDIMM-P总线协议中标识的XREAD和SREAD。可给予XREAD预定的读取ID,以指示其是将返回系统状态但不会直接访问媒体的信息请求(status_read)。
响应于读取命令,存储器子系统110准备读取命令所请求的数据。例如,媒体控制器115可从媒体(例如109A、…、或109N)检索数据,并在本地存储器119或另一存储器中缓冲检索数据,使得当请求此类传输时,所述数据可在预定时间窗口内成功传输到存储器控制器116。
当所请求数据准备好传输时,存储器子系统110可在事务总线125中提供响应信号。当存储器控制器116被告知存储器子系统110准备传输某些数据时,存储器控制器116可提供发送命令,以请求存储器子系统110在从发送命令开始的预定时间窗口内开始在数据总线123上传输数据。当响应于发送命令时,存储器子系统115还可发送事务状态信息,例如标识对应读取命令的读取ID、如下文进一步论述的写入额度信息、对应于事务的元数据,和/或误差校正码(ECC)。此类发送命令的实例是在JEDEC NVDIMM-P总线协议中标识的SEND。
存储器子系统110可在本地存储器119或另一存储器中缓冲从命令总线121接收的读取命令和写入命令。媒体控制器115可按与接收命令的次序不同的次序执行经缓冲命令。
存储器子系统110具有一定量的容量用于缓冲待决读取命令和写入命令以及其相关联的数据。存储器控制器116和媒体控制器115可彼此通信以防止存储器子系统110中的缓冲区溢出。
例如,写入额度可用于表示可供用于缓冲写入命令和其预定大小的相关联数据的缓冲容量单位。在一些情况下,写入命令可具有大于预定大小的数据;且此类写入命令需要多个写入额度以用于在存储器子系统110中缓冲所述命令和其数据。
存储器控制器116可维持其可用于在命令总线121上将写入命令传输到存储器子系统110的写入额度的计数。当通过命令总线121发送了写入命令,存储器控制器116扣除写入命令所用的写入额度。为避免缓冲区溢出,当存储器控制器11不具有足以将写入命令传输到存储器子系统110的写入额度时,存储器控制器116不应传输写入命令。
媒体控制器115可维持其可返还给存储器控制器116以完成写入命令的写入额度的计数。在存储器子系统110中缓冲的写入命令完成之后,写入命令所用的缓冲空间可被释放以接受来自存储器控制器116的其它写入命令。已完成的写入命令所用的写入额度可添加到可被返还给存储器控制器116的写入额度的计数。
存储器子系统110可使用元数据总线127指定其返还给存储器控制器116的写入额度的数目。例如,在事务总线125上发送响应信号以使得存储器控制器116能够发出发送命令之后,媒体控制器115可使用元数据总线127传输所返还写入额度的数目。存储器子系统110可响应于读取命令(例如在JEDEC NVDIMM-P总线协议中标识的XREAD和SREAD)而传输此类响应信号。响应信号的实例是在JEDEC NVDIMM-P总线协议中标识的RSPx_n。
当存储器控制器116使用读取命令来请求检索某个地址的数据时,存储器控制器116可在读取命令之后紧接放置地址命令以指定地址。类似地,当存储器控制器116使用写入命令将数据存储于某个地址处时,存储器控制器116可在写入命令之后紧接放置地址命令以指定地址。此类地址命令的实例是在JEDEC NVDIMM-P总线协议中标识的XADR。
主机系统120的存储器控制器116在主机系统120处具有写入额度的计数器,其表示已知在存储器子系统110中可用于缓冲从主机系统120传输的写入命令的缓冲空间的量。
当主机系统120将写入命令传输到存储器子系统时,主机系统120的存储器控制器116将其在主机系统120处的写入额度的计数器减小与写入命令和其数据所占用的缓冲容量相对应的量。当主机系统120不具有足以传输写入命令的写入额度时,主机系统120不传输命令,以避免在存储器子系统110处发生缓冲区溢出。
存储器子系统110的媒体控制器115可操作以监测可位于本地存储器119或存储器子系统110中的另一存储器中的写入缓冲器。存储器子系统110处的写入额度总计数标识可供用于分配到主机系统120以用于将写入命令从主机系统120传输到存储器子系统110的总缓冲容量。存储器子系统110处的写入额度的总计数可减少从存储器子系统110传输到主机系统120的写入额度。所传送的写入额度表示经分配以供主机系统120用来发送新写入命令的缓冲容量的量。在执行写入命令且从缓冲器中清除写入命令之后,写入额度的总计数可增加与缓冲器中写入命令所占用的缓冲空间量相对应的写入额度量。当缓冲写入命令时,缓冲器中写入命令所占用的缓冲空间量标识写入命令所用的写入额度量。写入额度量可基于与写入命令相关联的数据的大小来确定。存储器子系统110处的写入额度的总计数可减少从存储器子系统110传输到主机系统120的写入额度。所传送的写入额度表示经分配以供主机系统120用来发送新写入命令的缓冲容量的量。在执行写入命令和/或从缓冲器中清除写入命令之后,写入额度的总计数可增加写入命令所用的写入额度量。
主机系统120的信息请求管理器113可产生从存储器子系统110接收写入额度的信息请求;且主机系统120中的写入额度指示分配给主机系统120以传输写入命令的缓冲容量的量。通常,从存储器子系统110向主机系统120传输写入额度以作为对来自主机系统120的读取命令的响应,所述读取命令例如信息请求(例如,JEDEC NVDIMM-P总线协议中标识的RSPx_n)或从特定地址检索数据的请求(例如JEDEC NVDIMM-P总线协议中标识的SREAD或XREAD)。
信息请求管理器113确定主机系统120是否具有可用于发送写入命令到存储器子系统110的超过阈值数目的写入额度。如果在主机系统110处可用的写入额度的总计数当前大于阈值数目,则信息请求管理器113推迟产生针对写入额度的信息请求。
当在主机系统110处可用的写入额度的总计数当前小于阈值数目时,信息请求管理器113确定自先前从存储器子系统110传送写入额度以来经过的时间是否长于阈值时间段。写入额度的先前传送可响应于针对写入额度的信息请求,或响应于从与读取命令相关联的指定地址检索数据的读取命令。
所述阈值时间段可以是预定配置参数。替代地,信息请求管理器113可计算存储器子系统110传送至少阈值数目的写入额度(例如,在主机系统110处可用的写入额度的总计数低于预定水平之后传送)到主机系统110的平均时间间隔的阈值时间段。所述平均时间间隔表示存储器子系统110可执行经缓冲写入命令以释放写入额度给新写入命令的平均速度。例如,基于在存储器子系统110处执行写入命令的估计速度,信息请求管理器113估计或预测存储器子系统110处可用于传送到主机系统120的总写入额度。当在存储器子系统110处可用的估计或预测的总写入额度高于阈值时,信息请求管理器113可使存储器控制器116传输可使存储器子系统110传送写入额度的信息请求。
任选地,信息请求管理器113计算从存储器子系统110到主机系统120的写入额度的相邻传送之间的时间间隔的移动平均值。所述阈值时间段可基于所述时间间隔的移动平均值而动态地调整。
任选地,信息请求管理器113基于两次相邻的写入额度传送之间的时间间隔和在所述时间间隔结束时传送的写入额度量来计算在存储器子系统110中产生写入额度的平均速度。所述平均速度可用于预测距存储器子系统110具有可传送到主机系统120的超过阈值数目的写入额度的时刻的时间间隔;且信息请求管理器113可根据预测的时间间隔来延迟信息请求的产生。在一些情况下,信息请求管理器113可根据写入额度传送的数个最近时间间隔来计算产生写入额度的速度的移动平均值。所述移动平均值可用于计算阈值时间段。
任选地,当存储器子系统110具有来自主机系统120的待决读取命令时,信息请求管理器113还可推迟信息请求的产生。存储器子系统110可使用对待决读取命令的响应来将写入额度传送到主机系统120。
因此,信息请求管理器113可组合和/或减少与请求分配用于缓冲写入命令的缓冲容量有关的通信业务,且减小与减少的通信业务相关联的功耗。
图3是根据本公开的一些实施例的优化从主机系统120到存储器子系统110的信息请求的实例方法的流程图。图3的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,图3的方法至少部分地由图1或2的信息请求管理器113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在框301,信息请求管理器113存储信息,所述信息标识存储器子系统的缓冲器中用于写入命令的可用容量的量。例如,缓冲器可实施于本地存储器119或另一存储器中。缓冲器的可用容量的量已分配给主机系统120以用于传输写入命令和其数据。
在框303处,存储器控制器116向存储器子系统110传输一或多个写入命令,以将数据存储在存储器子系统110的存储器组件109A到109N中。存储器子系统110在缓冲器中对一或多个写入命令进行排队,以用于在由存储器子系统110的媒体控制器115确定的时刻执行。
在框305处,信息请求管理器113从可用容量的量中扣除缓冲器中用于一或多个写入命令的缓冲容量的量,以计算缓冲器中分配给主机系统120用于传输写入命令和其数据的当前可用容量的量。
在框307处,信息请求管理器113至少部分地基于所述当前可用容量的量来确定是否产生对存储器子系统110的信息请求。所述信息请求可使存储器子系统110为主机系统120分配缓冲容量以传输新写入命令。
例如,信息请求管理器113可推迟信息请求的产生,直到当前可用缓冲容量的量低于阈值为止。当前可用/所分配的缓冲容量的量可在主机系统120处用于传输写入命令,而不会导致存储器子系统110中的缓冲区溢出。
任选地,信息请求管理器113可推迟信息请求的产生,直到从先前传达所分配的用于主机系统120传输写入命令的缓冲容量后经过的时间段长于某一时间间隔为止。通过根据所述时间间隔进行推迟,所述信息请求很可能在存储器子系统110已完成一或多个写入命令且释放先前由完成的写入命令所用的缓冲容量时的时间传输,使得释放的容量可被分配且标识到主机系统120以用于传输其它写入命令。
任选地,信息请求管理器113可推迟信息请求的产生,直到信息请求管理器113预测存储器子系统110已通过完成先前接收到的写入命令而释放大于阈值量的写入缓冲容量为止,使得所述信息请求在存储器子系统110可通过标识分配给主机系统120传输新写入命令和其数据的大于阈值量的写入缓冲容量进行响应时的时间发送。
在一些情况下,信息请求管理器113可视需要进一步推迟信息请求的产生,直到主机系统120的存储器控制器116已接收到对先前传输到存储器子系统110的所有读取命令的响应为止。结合对待决读取命令中的任一者的响应,存储器子系统可分配写入缓冲容量,且传输所分配缓冲容量的量的指示。
图4是根据本公开的一些实施例的优化信息请求的详细实例方法的流程图。图4的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,图4的方法至少部分地由图1或2的信息请求管理器113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在框321处,主机系统120的存储器控制器116接收从存储器子系统110传送一定量的写入额度到主机系统120的通信。例如,可使用JEDEC NVDIMM-P总线协议中标识的通信协议来进行写入额度的传送。可响应于存储器控制器116在命令总线121中放置发送命令而使用元数据总线127传达所述量的写入额度。主机系统120的存储器控制器116可响应于存储器子系统110在事务总线125上提供的响应信号而发出所述发送命令。响应信号的实例是在JEDEC NVDIMM-P总线协议中标识的RSPx_n。响应信号可响应于读取命令,例如在JEDECNVDIMM-P总线协议中标识的XREAD或SREAD。
在框323处,信息请求管理器113将所述通信中指定的写入额度的所述量添加到主机系统120处可用的写入额度总量。所述总量表示用于缓冲来自主机系统120的写入命令的总分配/可用缓冲空间。当写入额度的总量足以允许主机系统120传输一或多个写入命令时,所述方法可进行到框325。
在框325处,存储器控制器116从主机系统120向存储器子系统110传输一或多个写入命令。存储器子系统110缓冲所述一或多个写入命令以用于在不由主机系统120控制的时刻执行。写入命令的实例包含在JEDEC NVDIMM-P总线协议中标识的WRITE和PWRITE。
在框327处,信息请求管理器113从总量中扣除所述一或多个写入命令所用的一或多个写入额度。通过发送一或多个写入命令,主机系统120将所述一或多个写入命令所用的写入额度发送到存储器子系统110。
在框329处,信息请求管理器113确定写入额度的总量现在是否低于阈值。如果总量不低于阈值,则存储器控制器116可传输跳过框331到335且执行其它操作,例如传输325其它的写入命令。然而,传输325一或多个写入命令无需写入额度的总量高于阈值。可在写入额度总量不低于写入命令所用的写入额度时传输所述写入命令。任选地,存储器控制器116还可传输从存储器组件109A到109N中检索数据的读取命令,例如JEDEC NVDIMM-P总线协议中的XREAD或SREAD。存储器子系统110可视需要结合对读取命令的响应而提供写入额度,且使存储器控制器116接收321写入额度递增通信。
在框331处,如果主机系统120处的写入额度总量低于阈值,则信息请求管理器113可延迟一段时间,直到最近的写入额度通信后经过的时间长于阈值时间段为止。所述阈值时间段允许存储器子系统110处理缓冲的写入命令且回收由完成的写入命令所用的写入额度,使得回收的写入额度可被传送到主机系统120。
所述阈值时间段可以是预定时间间隔,或由信息请求管理器113基于与存储器子系统110可回收写入额度的速度有关的统计数据而计算出的时间间隔。例如,所述时间间隔可被计算为相邻写入额度通信(例如,传送大于预订水平的写入额度的通信)之间的时间段的动态平均值。例如,基于两个相邻写入额度通信之间的时间段和在这两个写入额度通信中的后一者中提供的写入额度,信息请求管理器113可计算存储器子系统110完成缓冲的写入命令的估计速度且回收写入额度。例如,信息请求管理器113可计算相邻写入额度通信之间的多个时间间隔中的估计速度的动态平均值。信息请求管理器113可使用所述速度来确定阈值时间段。在先前的写入额度通信后的阈值时间段之后,存储器子系统110预测已完成一组缓冲的写入命令。完成的写入命令允许存储器子系统110回收至少预定水平的写入额度。回收的写入额度可在阈值时间段后发送的对信息请求的响应中传送到主机系统120。
图5说明计算机系统600的实例机器,在所述计算机系统内可执行指令集,以用于使所述机器执行本文中所论述的任何一或多个方法。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行信息请求管理器113的操作(例如,执行指令以执行对应于参考图1、2、3和4所描述的信息请求管理器113的操作)。在替代实施例中,所述机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。所述机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。此外,尽管说明了单个机器,但还应认为术语“机器”包含分别或共同地执行一组(或多组)指令以执行本文所论述的任何一或多个方法的任何机器集合。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态随机存取存储器(SRAM)以及数据存储系统618,它们通过总线630(其可包含多个总线)彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元(CPU)等等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、图形处理单元(GPU)、网络处理器等。处理装置602经配置以执行指令626以用于执行本文所论述的操作和步骤。计算机系统600还可包含网络接口装置608以通过网络620通信。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有体现本文所描述的任何一或多个方法或功能的一或多组指令626或软件。指令626还可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含实施对应于信息请求管理器113(例如参考图1、2、3和4描述的信息请求管理器113)的功能的指令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行且使机器执行本公开的任何一或多个方法的指令集的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在此处以及通常被认为是产生期望的结果的操作的自洽序列。所述操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元素、符号、字符、项、数字等等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指计算机系统或类似电子计算装置的动作和过程,其操控且将计算机系统的寄存器和存储器内表示为物理(电子)量的数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及一种用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合存储电子指令的任何类型的媒体,各个媒体耦合到计算机系统总线。
本文中呈现的算法和显示在本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备以执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含机器可读媒体,所述机器可读媒体上存储有指令,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和附图。
Claims (20)
1.一种主机系统,其包括:
处理装置;以及
控制器,其通过通信信道可操作地连接到存储器子系统以进行以下操作:
存储标识所述存储器子系统的缓冲器的可用容量的量的信息;
通过所述通信信道向所述存储器子系统传输一或多个写入命令以在所述存储器子系统的存储器组件中存储数据,其中所述存储器子系统在所述缓冲器中对所述一或多个写入命令进行排队;
通过从所述可用容量的量扣除所述一或多个写入命令所用的缓冲容量的量以计算所述缓冲器的当前可用容量的量来更新所述信息;以及
至少部分地基于所述当前可用容量的量来确定是否产生对所述存储器子系统的信息请求。
2.根据权利要求1所述的主机系统,其中所述控制器进一步进行以下操作:
至少部分地基于所述存储器子系统是否已对从所述主机系统传输到所述存储器子系统的读取命令进行响应来确定是否产生对所述存储器子系统的所述信息请求。
3.根据权利要求2所述的主机系统,其中所述控制器进一步进行以下操作:
推迟所述信息请求的产生,直到所述当前可用容量的量小于阈值为止。
4.根据权利要求3所述的主机系统,其中所述控制器进一步进行以下操作:
推迟所述信息请求的产生,直到所述当前可用容量的量小于阈值且所述存储器子系统不具有所述存储器子系统尚未向所述主机系统提供相应响应的读取命令为止。
5.根据权利要求1所述的主机系统,其中所述控制器进一步进行以下操作:
至少部分地基于时间间隔而产生所述信息请求。
6.根据权利要求5所述的主机系统,其中所述控制器进一步进行以下操作:
推迟所述信息请求的产生,直到所述主机系统与所述存储器子系统之间关于所述缓冲器的可用容量的第一通信后经过的时间长于所述时间间隔为止。
7.根据权利要求6所述的主机系统,其中所述控制器进一步进行以下操作:
基于所述主机系统与所述存储器子系统之间关于所述缓冲器的可用容量的所述第一通信与第二通信之间的时间段来更新所述时间间隔。
8.根据权利要求7所述的主机系统,其中进一步基于在所述第一通信中分配给所述主机系统的所述缓冲器可用容量的量来更新所述时间间隔。
9.根据权利要求1所述的主机系统,其中所述处理装置进一步进行以下操作:
预测在所述存储器子系统中可用于分配给所述主机系统以传输写入命令的所述缓冲器容量的量;以及
推迟所述信息请求的产生,直到所述预测量高于阈值为止。
10.根据权利要求1所述的主机系统,其中所述存储器组件包含非易失性存储器;所述主机系统与所述存储器子系统之间的所述通信信道包含:
命令总线,其用以传输所述一或多个写入命令;
数据总线,其用以传输所述一或多个写入命令所请求存储的所述数据;以及
事务总线,其用以将对所述信息请求的响应信号从所述存储器系统传输到所述主机系统。
11.根据权利要求10所述的主机系统,其中所述写入命令、所述信息请求和所述响应信号符合用于非易失性双列直插式存储器模块的通信协议。
12.一种方法,其包括:
通过通信信道在耦合到存储器子系统的主机系统中存储信息,所述信息标识所述存储器子系统的缓冲器的可用容量的量;
通过所述通信信道向所述存储器子系统传输一或多个写入命令以将数据存储在所述存储器子系统的存储器组件中,其中所述存储器子系统在所述缓冲器中对所述一或多个写入命令进行排队;
通过从所述可用容量的量扣除所述一或多个写入命令所用的缓冲容量的量以计算所述缓冲器的当前可用容量的量来更新所述信息;以及
至少部分地基于时间间隔和所述当前可用容量的量来控制对所述存储器子系统的信息请求的产生。
13.根据权利要求12所述的方法,其进一步包括:
推迟所述信息请求的所述产生,直到所述主机系统与所述存储器子系统之间的先前通信后经过的时间长于所述时间间隔且所述当前可用容量的量小于阈值为止。
14.根据权利要求13所述的方法,其进一步包括:
基于所述先前通信与在所述先前通信之前在所述主机系统与所述存储器子系统之间关于所述缓冲器的可用容量的通信之间的时间段来更新所述时间间隔。
15.根据权利要求14所述的方法,其中进一步基于在所述先前通信中分配给所述主机系统的所述缓冲器可用容量的量来更新所述时间间隔。
16.根据权利要求12所述的方法,其进一步包括:
预测在所述存储器子系统中可用于分配给所述主机系统以传输写入命令的所述缓冲器容量的量;以及
推迟所述信息请求的产生,直到所述预测量高于阈值为止。
17.根据权利要求12所述的方法,其中所述写入命令和所述信息请求符合用于非易失性双列直插式存储器模块的通信协议;且所述主机系统与所述存储器子系统之间的所述通信信道包含:
命令总线,其用以传输所述一或多个写入命令;
数据总线,其用以传输所述一或多个写入命令所请求存储的所述数据;以及
事务总线,其用以将对所述信息请求的响应信号从所述存储器系统传输到所述主机系统。
18.一种非暂时性计算机可读存储媒体,其存储指令,所述指令在由处理装置执行时使所述处理装置进行以下操作:
通过通信信道在耦合到存储器子系统的主机系统中存储信息,所述信息标识所述存储器子系统的缓冲器的可用容量的量,其中所述主机系统通过所述通信信道向所述存储器子系统传输一或多个写入命令以将数据存储在所述存储器子系统的存储器组件中,且其中所述存储器子系统在所述缓冲器中对所述一或多个写入命令进行排队;
通过从所述可用容量的量扣除所述一或多个写入命令所用的缓冲容量的量以计算所述缓冲器的当前可用容量的量来更新所述信息;
预测在所述存储器子系统中可用于分配给所述主机系统以传输写入命令的所述缓冲器容量的量;以及
推迟对所述存储器子系统的信息请求的产生,直到所述预测量高于阈值为止。
19.根据权利要求18所述的非暂时性计算机可读存储媒体,其中所述指令在由所述处理装置执行时进一步使所述处理装置进行以下操作:
基于所述预测量高于阈值来计算时间间隔;
其中推迟信息请求的所述产生,直到所述主机系统与所述存储器子系统之间的先前通信后经过的时间长于所述时间间隔为止。
20.根据权利要求18所述的非暂时性计算机可读存储媒体,其中所述指令在由所述处理装置执行时进一步使所述处理装置进行以下操作:
基于在所述先前通信中分配给所述主机系统的所述缓冲器可用容量的量来更新所述时间间隔。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/058,645 US11074007B2 (en) | 2018-08-08 | 2018-08-08 | Optimize information requests to a memory system |
US16/058,645 | 2018-08-08 | ||
PCT/US2019/043308 WO2020033152A1 (en) | 2018-08-08 | 2019-07-24 | Optimize information requests to a memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112602049A true CN112602049A (zh) | 2021-04-02 |
Family
ID=69407171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980053318.7A Pending CN112602049A (zh) | 2018-08-08 | 2019-07-24 | 优化对存储器系统的信息请求 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11074007B2 (zh) |
EP (1) | EP3834069A4 (zh) |
CN (1) | CN112602049A (zh) |
WO (1) | WO2020033152A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12009660B1 (en) | 2023-07-11 | 2024-06-11 | T-Mobile Usa, Inc. | Predicting space, power, and cooling capacity of a facility to optimize energy usage |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877669B1 (en) * | 2011-06-30 | 2020-12-29 | Amazon Technologies, Inc. | System and method for providing a committed throughput level in a data store |
US10969994B2 (en) * | 2018-08-08 | 2021-04-06 | Micron Technology, Inc. | Throttle response signals from a memory system |
US11074007B2 (en) | 2018-08-08 | 2021-07-27 | Micron Technology, Inc. | Optimize information requests to a memory system |
US11070474B1 (en) * | 2018-10-22 | 2021-07-20 | Juniper Networks, Inc. | Selective load balancing for spraying over fabric paths |
US10795796B1 (en) | 2020-01-24 | 2020-10-06 | Qumulo, Inc. | Predictive performance analysis for file systems |
US11775481B2 (en) | 2020-09-30 | 2023-10-03 | Qumulo, Inc. | User interfaces for managing distributed file systems |
US11403011B1 (en) * | 2021-04-05 | 2022-08-02 | Western Digital Technologies, Inc. | Host memory buffer allocation management |
US11669255B2 (en) * | 2021-06-30 | 2023-06-06 | Qumulo, Inc. | Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations |
US11609700B2 (en) | 2021-08-11 | 2023-03-21 | Mellanox Technologies, Ltd. | Pacing in a storage sub-system |
CN115905056A (zh) * | 2021-08-11 | 2023-04-04 | 迈络思科技有限公司 | 改进存储子系统中的步调 |
US11842056B2 (en) * | 2021-10-25 | 2023-12-12 | EMC IP Holding Company, LLC | System and method for allocating storage system resources during write throttling |
US11836096B2 (en) * | 2021-12-22 | 2023-12-05 | Micron Technology, Inc. | Memory-flow control register |
US11722150B1 (en) | 2022-09-28 | 2023-08-08 | Qumulo, Inc. | Error resistant write-ahead log |
US11729269B1 (en) | 2022-10-26 | 2023-08-15 | Qumulo, Inc. | Bandwidth management in distributed file systems |
US11966592B1 (en) | 2022-11-29 | 2024-04-23 | Qumulo, Inc. | In-place erasure code transcoding for distributed file systems |
US11921677B1 (en) | 2023-11-07 | 2024-03-05 | Qumulo, Inc. | Sharing namespaces across file system clusters |
US11934660B1 (en) | 2023-11-07 | 2024-03-19 | Qumulo, Inc. | Tiered data storage with ephemeral and persistent tiers |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189080B1 (en) * | 1996-09-20 | 2001-02-13 | Emc Corporation | Minimum read rate throughput in a disk cache system |
CN1564973A (zh) * | 2002-06-27 | 2005-01-12 | 索尼株式会社 | 信息处理设备、信息处理方法及信息处理程序 |
US8190804B1 (en) * | 2009-03-12 | 2012-05-29 | Sonics, Inc. | Various methods and apparatus for a memory scheduler with an arbiter |
US20120221767A1 (en) * | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
US8321618B1 (en) * | 2009-07-28 | 2012-11-27 | Nvidia Corporation | Managing conflicts on shared L2 bus |
CN106489136A (zh) * | 2014-06-02 | 2017-03-08 | 美光科技公司 | 用于在可扩展存储器系统协议中调节包传输的系统及方法 |
CN107885676A (zh) * | 2016-09-30 | 2018-04-06 | 三星电子株式会社 | 计算系统和用于操作计算系统的方法 |
US20180188952A1 (en) * | 2016-12-29 | 2018-07-05 | David B. Carlton | Apparatus, system and method for throttling a rate at which commands are accepted in a storage device |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535340A (en) | 1994-05-20 | 1996-07-09 | Intel Corporation | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge |
US6006289A (en) | 1996-11-12 | 1999-12-21 | Apple Computer, Inc. | System for transferring data specified in a transaction request as a plurality of move transactions responsive to receipt of a target availability signal |
US5862338A (en) | 1996-12-30 | 1999-01-19 | Compaq Computer Corporation | Polling system that determines the status of network ports and that stores values indicative thereof |
JP3284464B2 (ja) | 1998-09-29 | 2002-05-20 | セイコーエプソン株式会社 | ページプリンタ及びページプリントシステム |
US6457143B1 (en) | 1999-09-30 | 2002-09-24 | International Business Machines Corporation | System and method for automatic identification of bottlenecks in a network |
JP2001209500A (ja) | 2000-01-28 | 2001-08-03 | Fujitsu Ltd | ディスク装置およびディスク装置のリード・ライト処理方法 |
JP2001312373A (ja) | 2000-04-21 | 2001-11-09 | Internatl Business Mach Corp <Ibm> | データの書き込み方法およびディスクドライブ装置 |
US20020091965A1 (en) | 2000-12-22 | 2002-07-11 | Mark Moshayedi | System and method for early detection of impending failure of a data storage system |
US6678758B2 (en) | 2001-02-05 | 2004-01-13 | Fujitsu Limited | Dynamic queuing for read/write requests |
US7080217B2 (en) | 2003-03-31 | 2006-07-18 | Intel Corporation | Cycle type based throttling |
US7249222B1 (en) | 2004-05-05 | 2007-07-24 | Altera Corporation | Prefetching data based on predetermined criteria |
WO2006003920A1 (ja) | 2004-06-30 | 2006-01-12 | Vodafone K.K. | 連係動作方法及び移動通信端末装置 |
JP4093226B2 (ja) | 2004-11-08 | 2008-06-04 | ソニー株式会社 | 情報処理装置および方法、記録媒体、並びにプログラム |
JP2006190402A (ja) | 2005-01-07 | 2006-07-20 | Renesas Technology Corp | 半導体装置 |
US7647436B1 (en) | 2005-04-29 | 2010-01-12 | Sun Microsystems, Inc. | Method and apparatus to interface an offload engine network interface with a host machine |
US20070006070A1 (en) | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Joining units of work based on complexity metrics |
JP4796854B2 (ja) | 2006-01-30 | 2011-10-19 | 株式会社日立製作所 | 差分リモートコピーにおける中間ボリュームのデータ溢れ対策 |
KR100706808B1 (ko) | 2006-02-03 | 2007-04-12 | 삼성전자주식회사 | 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법 |
US7613841B2 (en) | 2006-06-07 | 2009-11-03 | Kabushiki Kaisha Toshiba | Systems and methods for reducing data storage in devices using multi-phase data transactions |
US7702841B2 (en) | 2007-03-08 | 2010-04-20 | Ricoh Company, Limited | Semiconductor integrated circuit and image processing apparatus having the same |
US20090327535A1 (en) | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
JP5420648B2 (ja) | 2009-05-22 | 2014-02-19 | 株式会社日立製作所 | 半導体装置 |
TW201111986A (en) | 2009-09-29 | 2011-04-01 | Silicon Motion Inc | Memory apparatus and data access method for memories |
US9037778B2 (en) | 2010-08-20 | 2015-05-19 | Samsung Electronics Co., Ltd. | Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device |
JP2013009045A (ja) | 2011-06-22 | 2013-01-10 | Fujitsu Ltd | 伝送システム、伝送装置および伝送装置の制御方法 |
TWI467372B (zh) | 2011-07-06 | 2015-01-01 | Phison Electronics Corp | 指令執行方法、記憶體控制器與記憶體儲存裝置 |
US9268568B2 (en) | 2011-11-09 | 2016-02-23 | Intel Corporation | Method and apparatus for agent interfacing with pipeline backbone to locally handle transactions while obeying ordering rule |
US9069485B2 (en) | 2012-12-20 | 2015-06-30 | Oracle International Corporation | Doorbell backpressure avoidance mechanism on a host channel adapter |
RU2628124C2 (ru) | 2013-03-15 | 2017-08-15 | Интел Корпорейшн | Система памяти |
KR102053865B1 (ko) | 2013-03-15 | 2019-12-09 | 삼성전자주식회사 | 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템 |
US9552323B1 (en) | 2013-07-05 | 2017-01-24 | Altera Corporation | High-speed peripheral component interconnect (PCIe) input-output devices with receive buffer management circuitry |
WO2015005903A1 (en) | 2013-07-09 | 2015-01-15 | Hewlett-Packard Development Company, L.P. | Write flow control for memory modules that include or interface with non-compliant memory technologies |
US9852779B2 (en) | 2014-03-12 | 2017-12-26 | Futurewei Technologies, Inc. | Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers |
US9792965B2 (en) | 2014-06-17 | 2017-10-17 | Rambus Inc. | Memory module and system supporting parallel and serial access modes |
JP6476655B2 (ja) | 2014-08-26 | 2019-03-06 | 株式会社リコー | データ転送制御装置 |
US10235056B2 (en) * | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
JP2016122227A (ja) | 2014-12-24 | 2016-07-07 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US9696935B2 (en) | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US10061734B2 (en) | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit |
US10937484B2 (en) | 2015-12-30 | 2021-03-02 | International Business Machines Corporation | Dynamic bandwidth throttling of DRAM accesses for memory tracing |
US10216668B2 (en) | 2016-03-31 | 2019-02-26 | Intel Corporation | Technologies for a distributed hardware queue manager |
US10372606B2 (en) | 2016-07-29 | 2019-08-06 | Samsung Electronics Co., Ltd. | System and method for integrating overprovisioned memory devices |
US10515006B2 (en) | 2016-07-29 | 2019-12-24 | Samsung Electronics Co., Ltd. | Pseudo main memory system |
JP2018022397A (ja) | 2016-08-04 | 2018-02-08 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
US20180059976A1 (en) | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Storage System with Integrated Components and Method for Use Therewith |
US20180059945A1 (en) | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Media Controller with Response Buffer for Improved Data Bus Transmissions and Method for Use Therewith |
US10310997B2 (en) | 2016-09-22 | 2019-06-04 | Advanced Micro Devices, Inc. | System and method for dynamically allocating memory to hold pending write requests |
CN107885671B (zh) * | 2016-09-30 | 2021-09-14 | 华为技术有限公司 | 一种非易失性内存的持久化方法和计算设备 |
EP3352086B1 (en) | 2016-12-05 | 2020-11-11 | Huawei Technologies Co., Ltd. | Control method, device and system for data reading-writing command in nvme over fabric architecture |
US10725933B2 (en) | 2016-12-30 | 2020-07-28 | Intel Corporation | Method and apparatus for redirecting memory access commands sent to unusable memory partitions |
US20180246643A1 (en) | 2017-02-28 | 2018-08-30 | Dell Products, Lp | System and Method to Perform Runtime Saves on Dual Data Rate NVDIMMs |
US10990301B2 (en) | 2017-02-28 | 2021-04-27 | SK Hynix Inc. | Memory module capable of reducing power consumption and semiconductor system including the same |
US20180285252A1 (en) | 2017-04-01 | 2018-10-04 | Intel Corporation | Optimized memory access bandwidth devices, systems, and methods for processing low spatial locality data |
EP4152166A3 (en) | 2017-06-23 | 2023-04-26 | Huawei Technologies Co., Ltd. | Memory access technology and computer system |
KR102450514B1 (ko) * | 2017-09-19 | 2022-10-05 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 그것을 포함하는 저장 장치의 동작 방법 |
US10996888B2 (en) * | 2017-10-31 | 2021-05-04 | Qualcomm Incorporated | Write credits management for non-volatile memory |
US10431305B2 (en) | 2017-12-14 | 2019-10-01 | Advanced Micro Devices, Inc. | High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM) |
US10795604B2 (en) | 2018-07-23 | 2020-10-06 | Western Digital Technologies, Inc. | Reporting available physical storage space of non-volatile memory array |
US10969994B2 (en) | 2018-08-08 | 2021-04-06 | Micron Technology, Inc. | Throttle response signals from a memory system |
US11074007B2 (en) | 2018-08-08 | 2021-07-27 | Micron Technology, Inc. | Optimize information requests to a memory system |
-
2018
- 2018-08-08 US US16/058,645 patent/US11074007B2/en active Active
-
2019
- 2019-07-24 WO PCT/US2019/043308 patent/WO2020033152A1/en unknown
- 2019-07-24 EP EP19847154.2A patent/EP3834069A4/en active Pending
- 2019-07-24 CN CN201980053318.7A patent/CN112602049A/zh active Pending
-
2021
- 2021-07-21 US US17/382,195 patent/US11983435B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189080B1 (en) * | 1996-09-20 | 2001-02-13 | Emc Corporation | Minimum read rate throughput in a disk cache system |
CN1564973A (zh) * | 2002-06-27 | 2005-01-12 | 索尼株式会社 | 信息处理设备、信息处理方法及信息处理程序 |
US8190804B1 (en) * | 2009-03-12 | 2012-05-29 | Sonics, Inc. | Various methods and apparatus for a memory scheduler with an arbiter |
US8321618B1 (en) * | 2009-07-28 | 2012-11-27 | Nvidia Corporation | Managing conflicts on shared L2 bus |
US20120221767A1 (en) * | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
CN106489136A (zh) * | 2014-06-02 | 2017-03-08 | 美光科技公司 | 用于在可扩展存储器系统协议中调节包传输的系统及方法 |
CN107885676A (zh) * | 2016-09-30 | 2018-04-06 | 三星电子株式会社 | 计算系统和用于操作计算系统的方法 |
US20180188952A1 (en) * | 2016-12-29 | 2018-07-05 | David B. Carlton | Apparatus, system and method for throttling a rate at which commands are accepted in a storage device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12009660B1 (en) | 2023-07-11 | 2024-06-11 | T-Mobile Usa, Inc. | Predicting space, power, and cooling capacity of a facility to optimize energy usage |
Also Published As
Publication number | Publication date |
---|---|
US20200050391A1 (en) | 2020-02-13 |
US11983435B2 (en) | 2024-05-14 |
EP3834069A1 (en) | 2021-06-16 |
WO2020033152A1 (en) | 2020-02-13 |
EP3834069A4 (en) | 2022-05-04 |
US11074007B2 (en) | 2021-07-27 |
US20210349659A1 (en) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11983435B2 (en) | Optimize information requests to a memory system | |
US11573700B2 (en) | Buffer management in memory systems for read and write requests | |
US11650755B2 (en) | Proactive return of write credits in a memory system | |
US11740833B2 (en) | Throttle response signals from a memory system | |
US20210271424A1 (en) | Quality of service control for read operations in memory systems | |
CN112805676B (zh) | 基于数据总线模式对读取操作和写入操作的调度 | |
US20210357153A1 (en) | Controller Command Scheduling in a Memory System to Increase Command Bus Utilization | |
CN112534393B (zh) | 存储器系统中的写入积分的主动返回 | |
US11899972B2 (en) | Reduce read command latency in partition command scheduling at a memory device | |
CN112231252B (zh) | 用于存储器子系统的内部管理业务调节 | |
US20240069732A1 (en) | Balancing performance between interface ports in a memory sub-system |
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 |