CN107728934B - 存储器控制器及包括其的存储*** - Google Patents
存储器控制器及包括其的存储*** Download PDFInfo
- Publication number
- CN107728934B CN107728934B CN201710680666.XA CN201710680666A CN107728934B CN 107728934 B CN107728934 B CN 107728934B CN 201710680666 A CN201710680666 A CN 201710680666A CN 107728934 B CN107728934 B CN 107728934B
- Authority
- CN
- China
- Prior art keywords
- workload
- host
- requests
- memory device
- monitoring unit
- 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.)
- Active
Links
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/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40611—External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1636—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储***,包括:存储器件,包括多个存储体;以及存储器控制器,适用于监控存储器件的工作负载,以及根据监控的结果来将第一刷新命令和第二刷新命令中的一种施加给存储器件。在存储器件中,要由第二刷新命令刷新的存储体的数目可以大于要由第一刷新命令刷新的存储体的数目。
Description
技术领域
本发明的示例性实施例总体而言涉及一种存储器控制器及包括其的存储***。
背景技术
存储器件的存储单元包括用于储存电荷的电容器以及用作开关的晶体管,该开关控制电荷向电容器的流入以及电荷从电容器的流出。电容器中储存的电荷表示数据。例如,当电容器中存在电荷时,电容器的引线两端的电压高,且可以表示“高”(逻辑1)数据。当电容器中不存在数据时,电容器的引线两端的电压低,且可以表示“低”(逻辑0)数据。由于数据的储存以电荷积聚在电容器中这样的方式来实现,因此原则上不存在功耗。然而,由于因PN耦合或诸如MOS晶体管等而导致存在泄漏电流,因此储存在电容器中的初始电荷量减少,从而数据可能丢失。为了防止这种情况,在数据丢失之前读取存储单元中的数据,并根据读取的信息来将电荷重新充电至正常电荷量。这种操作被称为刷新操作,且被周期性重复以保持储存的数据。
在采用电容器的存储单元中(诸如在DRAM存储器件中)需要刷新操作来维持所储存的数据的完整性。然而,刷新操作可能增大存储器件的总电流消耗。存储器件的性能也可能因刷新操作而降低。因此,亟需用于优化刷新操作以减小电流消耗并提升存储器件的性能的改进技术。
发明内容
各种实施例针对一种在不降低存储***的性能的情况下减小因存储***的刷新操作而引起的电流消耗的技术。
在一个实施例中,一种存储***可以包括:存储器件,包括多个存储体;以及存储器控制器,适用于监控存储器件的工作负载,以及根据监控的结果来将第一刷新命令和第二刷新命令中的一种施加给存储器件,其中,在存储器件中,要由第二刷新命令刷新的存储体的数目可以大于要由第一刷新命令刷新的存储体的数目。
在工作负载为高的情况下,存储器控制器可以施加第一刷新命令给存储器件,而在工作负载为低的情况下,存储器控制器可以施加第二刷新命令给存储器件。
在存储器件中,要由第一刷新命令刷新的存储体的数目可以为1。在存储器件中,要由第二刷新命令刷新的存储体可以为存储器件的全部存储体。
存储器控制器可以包括:主机接口,适用于与一个或更多个主机通信;工作负载监控单元,适用于监控存储器件的工作负载;调度器,适用于确定存储器件的操作顺序;命令发生器,适用于产生要施加给存储器件的命令;以及存储器接口,适用于与存储器件通信。
工作负载监控单元可以对来自所述一个或更多个主机的请求的次数计数,以及使用计数的结果来确定存储器件的工作负载。
一个或更多个主机可以被划分成认为存储器性能较重要的第一主机和不认为存储器性能较重要的第二主机。如果在预定时间内[来自第一主机的请求的数目]:[来自第二主机的请求的数目]的比例为第二阈值或更大,则工作负载监控单元可以确定工作负载为高,否则,工作负载监控单元可以确定工作负载为低。
一个或更多个主机可以被划分成认为存储器性能较重要的第一主机和不认为存储器性能较重要的第二主机。如果在预定时间内来自第一主机的请求的数目为第三阈值或更大,则工作负载监控单元可以确定工作负载为高,否则,工作负载监控单元可以确定工作负载为低。
第一主机可以包括CPU(中央处理单元)和GPU(图形处理单元)中的至少一种或更多种,以及第二主机可以包括通信单元、显示控制器和视频编解码器中的至少一种或更多种。
在一个实施例中,一种存储器控制器可以包括:主机接口,适用于与一个或更多个主机通信;工作负载监控单元,适用于监控存储器件的工作负载;调度器,适用于确定存储器件的操作顺序;命令发生器,适用于产生要施加给存储器件的命令,其中,命令发生器根据工作负载监控单元监控的工作负载来产生第一刷新命令和第二刷新命令中的一种;以及存储器接口,适用于与存储器件通信,其中,在存储器件中,要由第二刷新命令刷新的存储体的数目可以大于要由第一刷新命令刷新的存储体的数目。
在工作负载为高的情况下,命令发生器可以产生第一刷新命令,以及在工作负载为低的情况下,命令发生器产生第二刷新命令。
在存储器件中,要由第一刷新命令刷新的存储体的数目为1。在存储器件中,要由第二刷新命令刷新的存储体可以为存储器件的全部存储体。
工作负载监控单元可以对来自所述一个或更多个主机的请求的次数计数,以及使用计数的结果来确定存储器件的工作负载。
如果在预定时间内请求的总数为第一阈值或更大,则工作负载监控单元可以确定工作负载为高,否则,工作负载监控单元可以确定工作负载为低。
一个或更多个主机可以被划分成认为存储器性能较重要的第一主机和不认为存储器性能较重要的第二主机。如果在预定时间内[来自第一主机的请求的数目]:[来自第二主机的请求的数目]的比例为第二阈值或更大,则工作负载监控单元可以确定工作负载为高,否则,工作负载监控单元可以确定工作负载为低。
一个或更多个主机可以被划分成认为存储器性能较重要的第一主机和不认为存储器性能较重要的第二主机,以及
如果在预定时间内来自第一主机的请求的数目为第三阈值或更大,则工作负载监控单元可以确定工作负载为高,否则,工作负载监控单元可以确定工作负载为低。
第一主机可以包括CPU(中央处理单元)和GPU(图形处理单元)中的至少一种或更多种,以及第二主机可以包括通信单元、显示控制器和视频编解码器中的至少一种或更多种。
根据各种实施例,可以在不降低存储***的性能的情况下使因刷新操作而引起的电流消耗最小化。
附图说明
图1是图示根据本发明的一个实施例的存储***的配置的示意图。
图2是图示图1的存储器控制器的一个实施例的配置的示意图。
图3是图示根据本发明的一个实施例的预定时间内由工作负载监控单元所计数的请求的数目的示例的示意图。
具体实施方式
下面将参照附图来更详细地描述各种实施例。然而,本公开可以以不同的形式来实施,而不应当被解释成局限于本文中所阐述的实施例。与此相反,这些实施例被提供以使得本公开将是彻底且完整的,且将把本公开的范围充分传达给本领域技术人员。贯穿本公开,相同的附图标记在本公开的各种附图和实施例中指代相同的部分。
将理解的是,虽然在本文中可能使用“第一”、“第二”、“第三”等术语来描述各种元件,但是这些元件不受限于这些术语。这些术语用来将一个元件与另一个元件区分开。因此,在不背离本发明的精神和范围的情况下,下面描述的第一元件也可以被称作第二元件或第三元件。
附图不一定成比例,且在一些情况下,可能已经夸大了比例以清楚地图示实施例的特征。
还将理解的是,当一个元件被称作“连接到”或“耦接到”另一元件时,其可以直接在另一元件上、直接连接到或耦接到另一元件,或者可以存在一个或更多个中间元件。此外,还将理解的是,当一个元件被称作在两个元件“之间”时,其可以为这两个元件之间的唯一元件,或者也可以存在一个或更多个中间元件。
本文中所使用的术语仅用于描述特定实施例的目的,而非意图限制本发明。如本文中所使用的,除非上下文清楚地另外指出,否则单数形式意在也包括复数形式。还将理解的是,术语“包括”、“包含”在此说明书中使用时说明存在所述元件,但不排除存在或添加一个或更多个其他元件。如本文中所使用的,术语“和/或”包括相关联的所列项中的一个或更多个的任意组合和全部组合。
除非另外限定,否则本文中所使用的全部术语(包括技术术语和科学术语)具有与本发明所属领域的技术人员通常理解的意思相同的意思。还将理解的是,诸如在通用词典中定义的术语的术语应当被解释成具有与其在本说明书的上下文和相关领域中的意思一致的意思,而不应该以理想化或过于形式的意思来解释,除非本文中清楚地这样定义。
在下面的描述中,阐述了大量具体细节以提供对本发明的透彻理解。可以在无这些具体细节中的一些或全部的情况下实施本发明。另一方面,未详细描述众所周知的工艺结构和/或工艺以免不必要地混淆本发明。
还要注意的是,在一些情况下,对于相关领域技术人员将明显的是,除非另外具体指出,否则关于一个实施例而描述的特征或元件可以单独使用,或者结合另一实施例的其他特征或元件来使用。
将理解的是,虽然在本文中可能使用“第一”、“第二”、“第三”等术语来描述各种元件,但是这些元件不受限于这些术语。这些术语用来将一个元件与另一个元件区分开。因此,在不背离本发明的精神和范围的情况下,下面描述的第一元件也可以被称作第二元件或第三元件。
附图不一定成比例,且在一些情况下,可能已经夸大了比例以清楚地图示实施例的特征。
还将理解的是,当一个元件被称作“连接到”或“耦接到”另一元件时,其可以直接在另一元件上、直接连接到或耦接到另一元件,或者可以存在一个或更多个中间元件。此外,还将理解的是,当一个元件被称作在两个元件“之间”时,其可以为这两个元件之间的唯一元件,或者也可以存在一个或更多个中间元件。
本文中所使用的术语仅用于描述特定实施例的目的,而非意图限制本发明。如本文中所使用的,除非上下文清楚地另外指出,否则单数形式意在也包括复数形式。还将理解的是,术语“包括”、“包含”在此说明书中使用时说明存在所述元件,但不排除存在或添加一个或更多个其他元件。如本文中所使用的,术语“和/或”包括相关联的所列项中的一个或更多个的任意组合和全部组合。
除非另外限定,否则本文中所使用的全部术语(包括技术术语和科学术语)具有与本发明所属领域的技术人员通常理解的意思相同的意思。还将理解的是,诸如在通用词典中定义的术语的术语应当被解释成具有与其在本说明书的上下文和相关领域中的意思一致的意思,而不应该以理想化或过于形式的意思来解释,除非本文中清楚地这样定义。
在下面的描述中,阐述了大量具体细节以提供对本发明的透彻理解。可以在无这些具体细节中的一些或全部的情况下实施本发明。另一方面,未详细描述众所周知的工艺结构和/或工艺以免不必要地混淆本发明。
还要注意的是,在一些情况下,对于相关领域技术人员将明显的是,除非另外具体指出,否则关于一个实施例而描述的特征或元件可以单独使用,或者结合另一实施例的其他特征或元件来使用。
在下面的示例中,将描述全部存储体(all-bank)刷新操作和每一存储体(per-bank) 刷新操作。
在全部存储体刷新操作期间,存储器件中的全部存储体被刷新,从而存储器件不能执行除刷新操作之外的操作。因此,存储器件的性能可能降低。
在每一存储体刷新操作期间,在任何特定时间存储器件中的仅一个存储体被刷新,从而可以同时访问存储器件中的其他存储体。这样,根据每一存储体刷新操作,防止了因刷新操作所导致的存储器件的性能的降低。为了刷新存储器件中的全部存储体,执行“n”次每一存储体刷新操作,其中,“n”是存储器件中的存储体的数目。这跟全部存储体刷新操作形成对比,在全部存储体刷新操作中,对存储器件的全部存储体同时仅执行一次刷新操作。例如,在存储器件包括16个存储体的情况下,在全部存储体刷新操作期间,一次刷新16个存储体,而对于每一存储体刷新操作,一次刷新一个存储体,且每一存储体刷新操作被执行16次以刷新全部16个存储体。因此,在此示例中,每一存储体刷新操作被执行了全部存储体刷新操作的16倍那么多次。因此,为了刷新存储器件中的全部存储体,每一存储体刷新操作可能导致比多存储体刷新操作(例如,全部存储体刷新操作)更大的电流消耗。
即,全部存储体刷新操作降低了存储器件的性能,但是具有小的电流消耗的优点,而每一存储体刷新操作能够防止存储器件的性能降低,但是具有较大的电流消耗的缺点。
参见图1,提供了根据本发明的一个实施例的存储***100的配置。
根据图1的实施例,存储***100可以包括可操作地彼此耦接的存储器控制器110和存储器件120。存储***100可以为更大的电子设备的部分。电子设备可以为便携式电子设备。电子设备可以为台式电子设备。例如,存储***100可以包括在诸如计算机、服务器、个人数字助理(PDA)、便携式计算机、网络平板、无线电话、移动电话、智能电话、数字音乐播放器、便携式多媒体播放器(PMP)、相机、全球定位***(GPS)、摄像机、录音机、远程信息处理、视听(AV)***、智能电视等的电子设备中。
存储器件120可以包括多个存储体。工作时,存储器件120可以从存储器控制器110接收命令和地址,以及与存储器控制器110交换数据。存储器件120可以根据存储器控制器110的控制而执行读取操作、写入操作和刷新操作中的至少一种。
存储器控制器110可以根据来自主机(诸如例如中央处理单元(CPU)、图形处理单元(GPU)、通信单元、显示控制器、视频编解码器等)的请求来控制存储器件120 的操作。通信单元可以设置在计算机、智能电话等中以与外部设备无线地交换数据。显示控制器可以为控制存储器件100中包括的器件的显示的控制器。视频编解码器可以被配置为对视频编码或解码。
存储器控制器110可以监控存储器件120的工作负载并根据工作负载监控的结果来控制刷新操作。例如,当确定存储器件的工作负载重时,存储器控制器110可以施加第一刷新命令给存储器件120。当确定存储器件120的工作负载轻时,存储器控制器110 可以施加第二刷新命令给存储器件120。在存储器件120中,要由单个第二刷新命令刷新的存储体的数目可以大于要由单个第一刷新命令刷新的存储体的数目。例如,第一刷新命令可以为指示每一存储体刷新操作的刷新命令,而第二刷新命令可以为指示全部存储体刷新操作的刷新命令。
在第一刷新操作期间,根据第一刷新命令,电流消耗高于根据第二刷新命令的第二刷新操作,然而,大幅地防止了存储器件120的性能降低。在第二刷新操作期间,根据第二刷新命令,电流消耗降低,然而,存储器件的性能也被大幅地降低。在存储器件120 的重工作负载的时间段期间,存储器控制器110可以向存储器件120提供第一刷新命令以防止存储器件120的大幅性能降低。在存储器件120的轻工作负载的时间段期间,存储器控制器110可以向存储器件120提供第二刷新命令以实现存储器件120的电流消耗的大幅降低。
现在参见图2,根据本发明的一个实施例提供了图示图1的存储器控制器110的配置的示意图。
根据图2的实施例,存储器控制器110可以包括主机接口210、工作负载监控单元220、调度器230、命令发生器240和存储器接口250,它们全部与内部总线电耦接。
主机接口210可以为用于将存储器控制器110与至少一个主机可操作地耦接的任意合适的接口。
请求可以经由主机接口210来从主机提供,且处理请求的结果可以经由主机接口210传输给至少一个主机。如上所述,主机的示例可以包括CPU、GPU、通信单元、显示控制器和视频编解码器等。
工作负载监控单元220可以为用于监控存储器件120的工作负载的任何合适的单元。工作负载监控单元220可以周期性地监控存储器件120的工作负载。例如,工作负载监控单元220可以周期性地对在预定时间间隔期间从至少一个主机提供的请求的数目计数,并确定存储器件220的工作负载为重还是轻,例如,基于请求的数目是否等于或大于预设值来确定。在本文中之后将描述关于工作负载确定方法的更详细说明。
调度器230可以为给存储器件120的请求确定操作次序以提升存储器件120的性能。调度器230可以为给存储器件120的请求确定操作次序,该操作次序可以不同于来自主机的请求的提供次序。例如,即使在GPU将写入请求提供给存储器件120之前CPU将读取请求提供给存储器件120,调度器230也可以为读取请求和写入请求确定操作次序,使得GPU请求的写入操作在CPU请求的读取操作之前执行。
命令发生器240可以根据调度器230确定的操作次序来产生要施加给存储器件120的命令。为了防止存储器件120的数据丢失,命令发生器240可以周期性地产生刷新命令。命令发生器240可以在工作负载监控单元220将存储器件120的工作负载确定为重时产生第一刷新命令,以及可以在工作负载监控单元220将存储器件120的工作负载确定为轻时产生第二刷新命令。
存储器接口250可以提供存储器控制器110与存储器件120之间的接口。可以采用任何合适的接口。工作时,命令和地址可以经由存储器接口250从存储器控制器110传输给存储器件120。数据也可以经由存储器接口250来在存储器件120与存储器控制器 110之间交换。存储器接口250也可以被称作PHY(物理)接口。
在下文中,将详细描述工作负载监控单元220的操作。
工作负载监控单元220可以周期地对在预定时间间隔期间从至少一个主机提供的请求的数目计数。由于每个请求包括指示提供该请求的主机的源信息,因此在采用多个主机时可以对从每个主机提供的请求的数目计数。
当采用了多于一个主机时,这多个主机可以划分成请求性能敏感操作的第一主机和请求除性能敏感操作之外的操作的第二主机。例如,由于CPU和GPU经常具有重工作负载且从而请求性能敏感操作,因此它们可以被划分为第一主机。由于通信单元、显示控制器和视频编解码器经常具有轻工作负载且从而它们请求除性能敏感操作之外的操作,因此它们可以被划分为第二主机。
在一个实施例中,工作负载监控单元220可以基于下面的三个示例性标准中的一个来确定存储器件120的工作负载。然而,我们注意到,也可以采用用于确定重工作负载或轻工作负载的其它标准。
工作负载确定第一标准:请求的总数
如果在预定时间段期间来自至少一个主机的请求的总数等于或大于第一阈值,则工作负载监控单元220可以确定存储器件120的工作负载为重。否则,工作负载监控单元220可以确定存储器件120的工作负载为轻。例如,如果在预定时间内来自至少一个主机的请求的总数为10000或更多,则可以确定工作负载为重。否则,可以确定工作负载为轻。在图3的(A)和(C)部分中所示的情况下,由于请求的相应的总数(即,总数 14400和11200)大于10000,因此可以确定工作负载为重。在图3的(B)部分中所示的情况下,由于请求的总数(即,总数8200)小于10000,因此可以确定工作负载为轻。因此,在图3的(A)和(C)的情况下,可以将第一刷新命令从存储器控制器110施加给存储器件120。在图3的(B)情况下,可以将第二刷新命令从存储器控制器110施加给存储器件120。
工作负载确定第二标准:来自第一主机的请求对来自第二主机的请求的比例
如果在预定时间期间来自第一主机的请求对来自第二主机的请求的比例等于或大于第二阈值,则工作负载监控单元220可以确定存储器件120的工作负载为重。否则,工作负载监控单元220可以确定存储器件120的工作负载为轻。这是为了在全部请求之中存在很多对性能敏感的请求时确定工作负载为重。例如,如果在预定时间期间来自第一主机的请求对来自第二主机的请求的比例为1.5或更大,则可以确定存储器件120的工作负载为重。否则,可以确定工作负载为轻。在图3的(B)的情况下,由于来自第一主机的请求对来自第二主机的请求的比例为3.1(6200: 2000),即,大于1.5,因此,确定存储器件120的工作负载为重。在图3的(A)和(C)的情况下,由于来自第一主机的请求对来自第二主机的请求的比例分别为小于1.5的0.3和0.9,因此可以确定工作负载为轻。因此,在图3的(B)的情况下,可以将第一刷新命令从存储器控制器110 施加给存储器件120。在图3的(A)和(C)的情况下,可以将第二刷新命令从存储器控制器110施加给存储器件120。
工作负载确定第三标准:来自第一主机的请求的数目
如果在预定时间内来自第一主机的请求的数目为第三阈值或更大,则工作负载监控单元220可以确定存储器件120的工作负载为重。否则,工作负载监控单元220可以确定存储器件120的工作负载为轻。在这种情况下,假定与来自第一主机的请求相对应的性能敏感操作主要影响工作负载,则主要考虑来自第一主机的请求的数目。例如,如果在预定时间内来自第一主机的请求的数目为5000或更大,则可以确定存储器件120的工作负载为重。否则,可以确定工作负载为轻。根据此标准,在图3的(B)和(C)的情况下,其中来自第一主机的请求分别为8200和5400,可以确定存储器件120的工作负载为重,而在图3的(A)的情况下,其中来自第一主机的请求为3700,可以确定存储器件120的工作负载为轻。
虽然已经出于说明性的目的而描述了各种实施例,但是对于本领域技术人员将明显的是,在不背离所附权利要求书所限定的本公开的精神和范围的情况下,可以作出各种改变和修改。
Claims (12)
1.一种存储***,包括:
存储器件,包括多个存储体;以及
存储器控制器,适用于监控存储器件的工作负载,以及根据监控的结果来将每一存储体刷新命令和全部存储体刷新命令中的一种施加给存储器件,
其中,当每一存储体刷新命令被施加给存储器件时仅存储器件的一个存储体被刷新,以及当全部存储体刷新命令被施加给存储器件时存储器件的全部存储体被刷新,以及
其中,存储器控制器在工作负载为重时施加每一存储体刷新命令给存储器件,而存储器控制器在工作负载为轻时施加全部存储体刷新命令给存储器件,以及
其中,存储器控制器包括:
工作负载监控单元,适用于监控存储器件的工作负载;
调度器,适用于基于从一个或更多个主机提供的请求的提供次序来确定存储器件的操作次序,其中,操作次序不同于从一个或更多个主机提供的请求的提供次序,以便当在第二主机将写入请求提供给存储器件之前第一主机将读取请求提供给存储器件时调度器确定操作次序,以使得来自第二主机的写入请求在来自第一主机的读取请求之前被执行;以及
命令发生器,适用于根据所确定的操作次序来产生要施加给存储器件的命令。
2.如权利要求1所述的存储***,其中,工作负载监控单元对请求的数目计数,以及使用计数的结果来确定存储器件的工作负载。
3.如权利要求2所述的存储***,其中,如果在预定时间内请求的总数等于或大于第一阈值,则工作负载监控单元将工作负载确定为重,否则,工作负载监控单元将工作负载确定为轻。
4.如权利要求2所述的存储***,
其中,一个或更多个主机被划分成提供性能敏感请求的第一主机和提供除性能敏感请求以外的请求的第二主机,以及
其中,如果在预定时间内来自第一主机的请求的数目对来自第二主机的请求的数目的比例等于或大于第二阈值,则工作负载监控单元将工作负载确定为重,否则,工作负载监控单元将工作负载确定为轻。
5.如权利要求2所述的存储***,
其中,一个或更多个主机被划分成提供性能敏感请求的第一主机和提供除性能敏感请求以外的请求的第二主机,以及
其中,如果在预定时间内来自第一主机的请求的数目为第三阈值或更大,则工作负载监控单元将工作负载确定为重,否则,工作负载监控单元将工作负载确定为轻。
6.如权利要求4所述的存储***,
其中,第一主机包括中央处理单元CPU和图形处理单元GPU中的至少一种或更多种,以及
其中,第二主机包括通信单元、显示控制器和视频编解码器中的一种或更多种。
7.一种存储器控制器,包括:
工作负载监控单元,适用于监控存储器件的工作负载;
调度器,适用于基于从一个或更多个主机提供的请求的提供次序来确定存储器件的操作次序,其中,操作次序不同于从一个或更多个主机提供的请求的提供次序,以便当在第二主机将写入请求提供给存储器件之前第一主机将读取请求提供给存储器件时调度器确定操作次序以使得来自第二主机的写入请求在来自第一主机的读取请求之前被执行;以及
命令发生器,适用于根据所确定的操作次序来产生要施加给存储器件的命令,
其中,命令发生器根据工作负载监控单元监控的工作负载来产生每一存储体刷新命令和全部存储体刷新命令中的一种,
其中,当每一存储体刷新命令被施加给存储器件时仅存储器件的一个存储体被刷新,以及当全部存储体刷新命令被施加给存储器件时存储器件的全部存储体被刷新,
其中,在工作负载为重的情况下,命令发生器产生每一存储体刷新命令,以及
其中,在工作负载为轻的情况下,命令发生器产生全部存储体刷新命令。
8.如权利要求7所述的存储器控制器,其中,工作负载监控单元对请求的数目计数,以及使用计数的结果来确定存储器件的工作负载。
9.如权利要求8所述的存储器控制器,其中,如果在预定时间内请求的总数等于或大于第一阈值,则工作负载监控单元将工作负载确定为重,否则,工作负载监控单元将工作负载确定为轻。
10.如权利要求8所述的存储器控制器,
其中,所述一个或更多个主机被划分成提供性能敏感请求的第一主机和提供除性能敏感请求以外的请求的第二主机,以及
其中,如果在预定时间内来自第一主机的请求的数目对来自第二主机的请求的数目的比例等于或大于第二阈值,则工作负载监控单元将工作负载确定为重,否则,工作负载监控单元将工作负载确定为轻。
11.如权利要求8所述的存储器控制器,
其中,所述一个或更多个主机被划分成提供性能敏感请求的第一主机和提供除性能敏感请求以外的请求的第二主机,以及
其中,如果在预定时间内来自第一主机的请求的数目为第三阈值或更大,则工作负载监控单元将工作负载确定为重,否则,工作负载监控单元将工作负载确定为轻。
12.如权利要求10所述的存储器控制器,
其中,第一主机包括中央处理单元CPU和图形处理单元GPU中的至少一种或更多种,以及
其中,第二主机包括通信单元、显示控制器和视频编解码器中的一种或更多种。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/234,912 | 2016-08-11 | ||
US15/234,912 US10318187B2 (en) | 2016-08-11 | 2016-08-11 | Memory controller and memory system including the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107728934A CN107728934A (zh) | 2018-02-23 |
CN107728934B true CN107728934B (zh) | 2022-11-22 |
Family
ID=61158962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710680666.XA Active CN107728934B (zh) | 2016-08-11 | 2017-08-10 | 存储器控制器及包括其的存储*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US10318187B2 (zh) |
KR (1) | KR102653415B1 (zh) |
CN (1) | CN107728934B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698785B2 (en) * | 2017-05-30 | 2020-06-30 | International Business Machines Corporation | Task management based on an access workload |
US10503670B2 (en) * | 2017-12-21 | 2019-12-10 | Advanced Micro Devices, Inc. | Dynamic per-bank and all-bank refresh |
US10872652B2 (en) * | 2018-06-19 | 2020-12-22 | Apple Inc. | Method and apparatus for optimizing calibrations of a memory subsystem |
US11226752B2 (en) | 2019-03-05 | 2022-01-18 | Apple Inc. | Filtering memory calibration |
KR20210026871A (ko) * | 2019-09-02 | 2021-03-10 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11681465B2 (en) | 2020-06-12 | 2023-06-20 | Advanced Micro Devices, Inc. | Dynamic multi-bank memory command coalescing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713163A (zh) * | 2004-06-24 | 2005-12-28 | 三星电子株式会社 | 用于调度命令的存储器控制设备及方法 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2316590A1 (en) * | 2000-08-23 | 2002-02-23 | Celestica International Inc. | System and method for using a synchronous device with an asynchronous memory controller |
US6553449B1 (en) * | 2000-09-29 | 2003-04-22 | Intel Corporation | System and method for providing concurrent row and column commands |
US6631440B2 (en) * | 2000-11-30 | 2003-10-07 | Hewlett-Packard Development Company | Method and apparatus for scheduling memory calibrations based on transactions |
KR100429872B1 (ko) * | 2001-06-27 | 2004-05-04 | 삼성전자주식회사 | 반도체 메모리 장치의 이용 효율을 높이는 메모리 시스템및 상기 반도체 메모리 장치의 리프레쉬 방법 |
US7114041B2 (en) * | 2002-12-20 | 2006-09-26 | Lsi Logic Corporation | AMBA modular memory controller |
US7042785B2 (en) * | 2003-12-19 | 2006-05-09 | Infineon Technologies, Ag | Method and apparatus for controlling refresh cycles of a plural cycle refresh scheme in a dynamic memory |
KR100660874B1 (ko) * | 2005-07-25 | 2006-12-26 | 삼성전자주식회사 | 듀얼 포트를 갖는 디램에서의 리프레시 제어 방법 |
JP4813264B2 (ja) * | 2006-06-14 | 2011-11-09 | 株式会社日立製作所 | ストレージシステム |
KR100809960B1 (ko) | 2006-09-28 | 2008-03-07 | 삼성전자주식회사 | 반도체 메모리 장치의 리프레시 회로 및 리프레시 방법 |
KR100909630B1 (ko) * | 2007-11-02 | 2009-07-27 | 주식회사 하이닉스반도체 | 어드레스 카운터 회로 |
US8463987B2 (en) * | 2008-09-23 | 2013-06-11 | Intel Corporation | Scalable schedulers for memory controllers |
US8949520B2 (en) * | 2009-01-22 | 2015-02-03 | Rambus Inc. | Maintenance operations in a DRAM |
KR101796116B1 (ko) * | 2010-10-20 | 2017-11-10 | 삼성전자 주식회사 | 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법 |
US8775725B2 (en) * | 2010-12-06 | 2014-07-08 | Intel Corporation | Memory device refresh commands on the fly |
US8799566B2 (en) * | 2010-12-09 | 2014-08-05 | International Business Machines Corporation | Memory system with a programmable refresh cycle |
JP5138836B2 (ja) * | 2011-04-13 | 2013-02-06 | パナソニック株式会社 | 参照セル回路とそれを用いた抵抗変化型不揮発性記憶装置 |
US8705307B2 (en) * | 2011-11-17 | 2014-04-22 | International Business Machines Corporation | Memory system with dynamic refreshing |
KR20130055992A (ko) * | 2011-11-21 | 2013-05-29 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 이용한 반도체 집적 회로 |
KR101962874B1 (ko) * | 2012-04-24 | 2019-03-27 | 삼성전자주식회사 | 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 |
KR101966858B1 (ko) * | 2012-04-24 | 2019-04-08 | 삼성전자주식회사 | 휘발성 메모리 장치의 동작 방법, 휘발성 메모리 장치 및 메모리 시스템의 제어 방법 |
US9117544B2 (en) * | 2012-06-30 | 2015-08-25 | Intel Corporation | Row hammer refresh command |
KR102021401B1 (ko) * | 2012-08-30 | 2019-11-04 | 에스케이하이닉스 주식회사 | 메모리 장치 |
KR102011796B1 (ko) * | 2012-08-30 | 2019-08-20 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US9299400B2 (en) * | 2012-09-28 | 2016-03-29 | Intel Corporation | Distributed row hammer tracking |
US8886844B2 (en) * | 2012-10-05 | 2014-11-11 | Analog Devices, Inc. | Efficient scheduling of read and write transactions in dynamic memory controllers |
US9269417B2 (en) * | 2013-01-04 | 2016-02-23 | Intel Corporation | Memory refresh management |
US9318182B2 (en) * | 2013-01-30 | 2016-04-19 | Intel Corporation | Apparatus, method and system to determine memory access command timing based on error detection |
US9196347B2 (en) * | 2013-03-14 | 2015-11-24 | International Business Machines Corporation | DRAM controller for variable refresh operation timing |
US9117542B2 (en) * | 2013-09-27 | 2015-08-25 | Intel Corporation | Directed per bank refresh command |
US9972376B2 (en) * | 2013-11-07 | 2018-05-15 | International Business Machines Corporation | Memory device for interruptible memory refresh |
US20150206574A1 (en) * | 2014-01-22 | 2015-07-23 | Advanced Micro Devices, Inc. | Relocating infrequently-accessed dynamic random access memory (dram) data to non-volatile storage |
US20150253992A1 (en) * | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and control method |
US9569117B2 (en) * | 2014-03-11 | 2017-02-14 | Kabushiki Kaisha Toshiba | Memory system controlling interleaving write to memory chips |
KR20160023274A (ko) * | 2014-08-22 | 2016-03-03 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10002405B2 (en) * | 2016-01-22 | 2018-06-19 | Intel Corporation | Smart optimization of unused graphics buffer memory in computing environments |
-
2016
- 2016-08-11 US US15/234,912 patent/US10318187B2/en active Active
- 2016-10-28 KR KR1020160141880A patent/KR102653415B1/ko active IP Right Grant
-
2017
- 2017-08-10 CN CN201710680666.XA patent/CN107728934B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713163A (zh) * | 2004-06-24 | 2005-12-28 | 三星电子株式会社 | 用于调度命令的存储器控制设备及方法 |
Non-Patent Citations (1)
Title |
---|
利用重新排序型控制器提升DDR SDRAM的效率;Leith Johnson;《中国集成电路》;20100405(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US10318187B2 (en) | 2019-06-11 |
KR20180018982A (ko) | 2018-02-22 |
CN107728934A (zh) | 2018-02-23 |
KR102653415B1 (ko) | 2024-04-03 |
US20180046389A1 (en) | 2018-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107728934B (zh) | 存储器控制器及包括其的存储*** | |
US11631450B2 (en) | Partial refresh technique to save memory refresh power | |
US10083737B2 (en) | Row hammer monitoring based on stored row hammer threshold value | |
US9251885B2 (en) | Throttling support for row-hammer counters | |
CN107256717B (zh) | 行锤击刷新命令 | |
US9129674B2 (en) | Hybrid memory device | |
US20160041596A1 (en) | Power efficient method and system for executing host data processing tasks during data retention operations in a storage device | |
US9336855B2 (en) | Methods and systems for smart refresh of dynamic random access memory | |
KR20170138765A (ko) | 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법 | |
US10878880B2 (en) | Selective volatile memory refresh via memory-side data valid indication | |
US8560767B2 (en) | Optimizing EDRAM refresh rates in a high performance cache architecture | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
US20190096472A1 (en) | Memory chip having reduced baseline refresh rate with additional refreshing for weak cells | |
US8843709B2 (en) | Method and apparatus for performing dynamic configuration | |
KR20140139523A (ko) | 리프레시 모드들 동안의 메모리 디바이스들에서의 전력 소비의 감소 | |
KR20220121406A (ko) | 메모리 장치 및 그 동작방법 | |
KR102276739B1 (ko) | 암시적 프리차지 명령 시그널링을 관리하기 위한 방법, 장치 및 시스템 | |
US20190026028A1 (en) | Minimizing performance degradation due to refresh operations in memory sub-systems | |
US9607679B1 (en) | Refresh control device | |
CN105045370A (zh) | 在电子终端中执行睡眠状态管理的方法及其电子终端 | |
KR20240059151A (ko) | 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |