CN107153511A - 存储节点、混合存储器控制器及控制混合存储器组的方法 - Google Patents
存储节点、混合存储器控制器及控制混合存储器组的方法 Download PDFInfo
- Publication number
- CN107153511A CN107153511A CN201710102539.1A CN201710102539A CN107153511A CN 107153511 A CN107153511 A CN 107153511A CN 201710102539 A CN201710102539 A CN 201710102539A CN 107153511 A CN107153511 A CN 107153511A
- Authority
- CN
- China
- Prior art keywords
- memory
- cpu
- mixing
- cpu request
- memory device
- 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.)
- Granted
Links
Classifications
-
- 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/1673—Details of memory controller using buffers
-
- 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/061—Improving I/O performance
-
- 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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/37—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
-
- 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/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0658—Controller construction 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/068—Hybrid storage device
-
- 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
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)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种混合存储器控制器,执行:接收第一中央处理单元(CPU)请求和第二CPU请求以向混合存储器组写入/从混合存储器组读取,通过译码和地址映射所述第一CPU请求和第二CPU请求而分别将易失性存储器件和非易失性存储器件识别为所述第一CPU请求和第二CPU请求的第一目标和第二目标,分别在第一缓冲器和第二缓冲器中对所述第一CPU请求和第二CPU请求排队,基于仲裁策略而对所述第一目标和第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和第二CPU请求中的另一个对应的第二命令,并且向易失性存储器件和非易失性存储器件中的相应的一个发送第一和第二命令。
Description
相关申请的交叉引用
本申请要求于2016年3月3日提交的美国临时申请第62/303,347号(“An AdaptiveMechanism for Synchronized or Asynchronized Memory Devices”)的优先权和权益,其全部内容在此通过引用并入。
技术领域
本发明各方面涉及存储器件和用于控制该存储器件的机制的领域。
背景技术
计算机系统历史上采用两层(two-tier)存储模型,其中所述两层存储模型包括:存储在系统停止/重引导/崩溃时丢失的临时数据的快速的、字节可寻址的存储器(即,易失性存储器)设备,以及永久存储可以跨越系统引导/崩溃而存活的持久数据的缓慢的、块可寻址的存储设备(即,非易失性存储器件)。
易失性存储器件(也称为同步存储器件)和非易失性存储器件(也称为异步存储器件)具有不同的定时参数并且采用不同的通信协议,这使得难以组合在由单个控制器控制的一个存储空间中的两种类型的存储器件。例如,易失性存储器件(诸如动态随机存取存储器或DRAM)使用用于执行它们各自的操作(例如,读/写)的固定定时,而非易失性存储器件(诸如闪存芯片)使用用于执行各种操作的可变定时。非易失性存储器件还用在涉及在控制器与存储器件之间的频繁握手的基于事务的系统中。然而,因为频繁握手导致减小的带宽,所以在这样的环境中使用易失性存储器件一般没有效率。
在背景技术部分中公开的以上信息仅仅用于增强对本发明的理解,并且因此其可包含不形成对本领域普通技术人员来说已知的现有技术的信息。
发明内容
本发明的实施例的各方面涉及一种用于同步存储器件或异步存储器件的复用控制逻辑的自适应机制。
本发明的实施例的各方面涉及用于控制包括至少一个易失性存储器件和至少一个非易失性存储器件的混合存储器阵列的混合存储器控制器及方法。所述易失性存储器件和非易失性存储器件可在相同的控制通道处或者甚至占用通道的相同存储器列。
根据本发明的一些实施例,提供一种用于控制包括易失性存储器件和非易失性存储器件的混合存储器阵列的混合存储器控制器,该混合存储器控制器包括:处理器;以及在所述处理器本地的处理器存储器,其中,该处理器存储器具有存储在其上的指令,该指令在由该处理器执行时使该处理器执行:接收第一中央处理单元(CPU)请求以向所述混合存储器阵列写入/从所述混合存储器阵列读取;通过对所述第一CPU请求的译码和地址映射,将所述易失性存储器件识别为所述第一CPU请求的第一目标;在第一缓冲器中对所述第一CPU请求排队;接收第二CPU请求以向混合存储器存储体写入/从混合存储器存储体读取;通过对所述第二CPU请求的译码和地址映射,将所述非易失性存储器件识别为所述第二CPU请求的第二目标;在第二缓冲器中对所述第二CPU请求排队;基于仲裁策略,对所述第一目标和所述第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且响应于生成所述第一命令,对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和第二CPU请求中的另一个对应的第二命令;以及向所述易失性存储器件和非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
根据本发明的一些实施例,提供一种存储节点,包括:混合存储器阵列,包括:非易失性存储器件;以及耦合到所述非易失性存储器件的易失性存储器件;以及混合存储器控制器,被配置成通过相同的通道执行到/自所述易失性存储器件和非易失性存储器件的数据传送,该混合存储器控制器包括:处理器;以及在所述处理器本地的处理器存储器,其中,该处理器存储器具有存储在其上的指令,该指令在由所述处理器执行时使所述处理器执行:通过检测存储在所述易失性存储器件和非易失性存储器件的每一个中的相关联的串行存在检测(SPD)数据,识别所述易失性存储器件和非易失性存储器件;接收第一中央处理单元(CPU)请求以向所述混合存储器阵列写入/从所述混合存储器阵列读取;通过对所述第一CPU请求的译码和地址映射,将所述易失性存储器件识别为所述第一CPU请求的第一目标;在第一缓冲器中对所述第一CPU请求排队;接收第二CPU请求以向所述混合存储器阵列写入/从混合存储器阵列读取;通过对所述第二CPU请求的译码和地址映射,将所述非易失性存储器件识别为所述第二CPU请求的第二目标;在第二缓冲器中对所述第二CPU请求排队;基于与所述易失性存储器件和非易失性存储器件相关联的SPD数据,确定仲裁策略;基于所述仲裁策略,对所述第一目标和第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且作为响应,对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和第二CPU请求中的另一个对应的第二命令;以及向所述易失性存储器件和非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
根据本发明的一些实施例,提供一种控制包括易失性存储器件和非易失性存储器件的混合存储器阵列的方法,该方法包括:由处理器接收第一中央处理单元(CPU)请求以向混合存储器阵列写入/从混合存储器阵列读取;通过对第一CPU请求的译码和地址映射,由所述处理器将所述易失性存储器件识别为第一CPU请求的第一目标;由所述处理器在第一缓冲器中对所述第一CPU请求排队;由所述处理器接收第二CPU请求以向所述混合存储器阵列写入/从所述混合存储器阵列读取;通过对所述第二CPU请求的译码和地址映射,由所述处理器将所述非易失性存储器件识别为所述第二CPU请求的第二目标;由所述处理器在第二缓冲器中对所述第二CPU请求排队;基于仲裁策略,由所述处理器对第一目标和第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且作为响应,对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和第二CPU请求中的另一个对应的第二命令;以及由所述处理器向所述易失性存储器件和非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
根据本发明的一些实施例,提供一种用于控制包括易失性存储器件和非易失性存储器件的混合存储器阵列的混合存储器控制器,该混合存储器控制器包括:地址映射器/译码器,被配置成:接收第一中央处理单元(CPU)请求和第二CPU请求以向混合存储器阵列写入/从混合存储器阵列读取,通过对所述第一CPU请求的译码和地址映射而将所述易失性存储器件识别为所述第一CPU请求的第一目标,并且通过对所述第二CPU请求的译码和地址映射而将所述非易失性存储器件识别为所述第二CPU请求的第二目标;第一事务队列,被配置成对所接收的第一CPU请求排队;第二事务队列,被配置成对所接收的第二CPU请求排队;仲裁器,被配置成基于与所述易失性存储器件和非易失性存储器件相关联的SPD数据而确定仲裁策略;以及调度器,被配置成:基于所述仲裁策略,对所述第一目标和第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和第二CPU请求中的另一个对应的第二命令,并且向所述易失性存储器件和非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
附图说明
附图与说明书一起图示本发明的示例性实施例,并且与描述一起用于解释本发明的原理。
图1图示根据本发明的一些实施例的混合存储器系统的框图。
图2A图示根据本发明的一些实施例的与易失性存储器件/非易失性存储器件通信的混合存储器控制器的详细框图。
图2B图示根据本发明的一些其它实施例的混合存储器控制器的详细框图。
图3图示根据本发明的一些实施例的使用混合存储器控制器控制包括易失性存储器件和非易失性存储器件的混合存储器阵列的过程。
具体实施方式
在下面的详细描述中,仅仅通过说明的方式示出和描述本发明的某些示例性实施例。如本领域技术人员将认识到的,本发明可以以许多不同的形式来体现,并且不应当被解释为限于在此阐述的实施例。在每个示例性实施例内的特征或方面的描述一般应当被认为对于其它示例性实施例中的其它类似特征或方面可用。贯穿说明书,相同的附图标记指代相同的元件。
图1图示根据本发明的一些实施例的混合存储器系统100的框图。
参考图1,混合存储器系统100包括:具有一个或多个存储器通信通道(下文中被称为“通道”)的混合存储器控制器110,以及包括易失性存储(VM)器件132和非易失性存储(NVM)器件134的存储器组(例如,混合存储器组)130,该易失性存储(VM)器件132和非易失性存储(NVM)器件134通过相同的通道111耦合到混合存储器控制器110并由混合存储器控制器110控制,或者存在于相同的可寻址的存储器组(rank)处。虽然图1仅仅示出单个VM器件132和单个NVM器件134,但是这仅仅是为了便于说明,并且本发明的实施例不限于此。例如,混合存储器系统100可包括通过与VM器件132和NVM器件134相同的通道111和/或通过不同的通道连接到混合存储器控制器110的多个易失性存储器和/或非易失性存储器。
在一些示例中,易失性存储器件132(也被称为同步存储器件)可展现固定的等待时间(例如,固定的读取/写入定时),并且可包括随机存取存储器(RAM),例如动态RAM(DRAM)、静态RAM等等。在一些示例中,非易失性存储器件134(也被称为异步存储器件)可展现可变的等待时间(例如,可变的读取/写入定时),并且可包括NAND存储器、NOR存储器、垂直NAND存储器、电阻性存储器、相变存储器、铁电存储器、自旋转移扭矩存储器等等。
根据一些实施例,混合存储器控制器110采用用于控制同步存储器件和异步存储器件的复用控制逻辑的自适应机制。在这样做时,通过在初始引导过程期间通过串行存在检测(SPD)识别组成存储器组130的一个或多个VM器件132和一个或多个NVM器件134,混合存储器控制器110映射耦合到它的存储器。从存储器件中的每一个检索(例如,读取)的SPD数据标识存储器件的类型和容量,并且提供关于使用什么定时(例如,读取或写入一字节的数据的时间tCL/tWL等等)访问特定存储器件的信息。混合存储器控制器110根据对应的SPD读出而不同地操作VM器件132和NVM器件134。
在一些实施例中,混合存储器控制器110使用同步定时协议(例如,同步DRAM定时协议)或异步通信协议来管理每个易失性存储器件132的组和/或通道,并且使用异步通信协议来管理每个非易失性存储器件134的组和/或信道。
根据一些实施例,混合存储器控制器110可使用标准命令集(例如,标准DRAM命令集)来向VM器件132中的每一个传送指令,并且使用修改的(或重新设计的)标准命令集或新命令集来向NVM器件134中的每一个传送指令。
图2A图示根据本发明的一些实施例的与VM/NVM设备132/134通信的混合存储器控制器110的详细框图。
参考2A,混合存储器控制器110包括SPD接口112、地址映射器/译码器114、易失性存储器(VM)事务队列116a、非易失性存储器(NVM)事务队列116b、仲裁器118、命令队列120、调度器122和响应队列124。
在引导过程期间,SPD接口112可从VM/NVM器件(也被简称为存储器件)132/134检索SPD数据,其中该SPD数据可被存储在存储器件132/134的SPD电可擦除可编程只读存储器(EEPROM)136中。
根据一些实施例,地址映射器/译码器114识别存储器件132/134的类型,即,确定存储器件132/134是易失性(例如,同步)存储器件还是非易失性(例如,异步)存储器件。地址映射器/译码器114将包含在SPD数据内的存储器地址译码为例如组、存储体、行和列ID(例如,索引)。这可通过将存储器地址切片(例如,拾取存储器地址的一部分并丢弃其余部分)来完成。在每组单个存储器件的示例中,地址映射器/译码器114可使用组ID来识别器件类型。在相同组的混合器件(例如,VM和NVM器件两者)的示例中,地址映射器/译码器114可使用组ID和存储体ID来识别器件类型。
在一些实施例中,当混合存储器控制器110从中央处理单元(CPU)接收请求(例如,写入或读取请求)时,地址映射器/译码器114译码CPU请求以确定CPU请求映射到是与VM器件132对应还是与NVM器件134对应的地址,并且将译码的CPU请求转发到VM事务队列116a和NVM事务队列116b中的对应的一个。
在一些实施例中,混合存储器控制器110使用用于存储CPU请求(例如,VM事务/请求)的涉及与VM器件132的位置相关联的存储器地址的专用VM事务队列116a,并且使用用于存储CPU请求(例如,NVM事务/请求)的涉及与NVM器件134的位置相关联的存储器地址的专用NVM事务队列116b。如稍后进一步详细描述的,具有分离的VM事务队列和NVM事务队列向仲裁器118提供仲裁选择,并且可增强混合存储器控制器110的性能。根据一些示例,VM事务队列116a本身可包括(例如,被划分成)多个VM事务队列,每个VM事务队列与存储器件132的不同VM列相关联。类似地,NVM事务队列116b本身可包括(例如,被划分成)多个NVM事务队列,每个事件队列与存储器组130的不同NVM列相关联。
仲裁器118根据仲裁策略确定在VM和NVM事务队列116a和116b的相应的事务队列中保持的VM和NVM CPU请求的处理/获取次序(例如,优先级),并且根据确定的处理次序而在命令队列120中对获取的VM和NVM CPU请求排队。
仲裁策略在系统引导时段期间可通过基本输入/输出系统(BIOS)和/或SPD数据定义和更新。例如,仲裁策略可遵循轮询协议(round-robin protocol,其中,例如,仲裁器118处理VM CPU请求、NVM CPU请求,随后是VM CPU请求,等等)。在一些实施例中,仲裁策略可对来自VM事务队列116a的条目排列优先级,因为VM器件往往具有比NVM器件低的访问等待时间。根据一些其它实施例,加权轮询仲裁策略考虑VM和NVM事务之间的不平衡发出比率。仲裁器118可从SPD接口112获得NVM和VM定时参数,并且确定VM事务队列116a和NVM事务队列116b之间的获取比率。例如,假设NVM器件具有比VM器件大20倍的等待时间,则可在1个NVM器件激活期间处理20个VM CPU请求,因此获取比率可被设置成20:1。
根据一些实施例,可基于从存储器件132/134接收的状态反馈信号119来确定仲裁策略。状态反馈信号119可指示存储器件132/134是否可用、忙碌等,并且在NVM器件134的情况下甚至可指示正由该器件执行的操作(例如,垃圾收集等等),关于何时操作可结束的估计,写入信用(例如,NVM事务队列116b中未占用条目的数量),当在NVM器件134内存在高速缓存时的高速缓存命中/未命中率,等等。在一些示例中,当状态反馈信号119指示NVM激活待定(pending)时,仲裁器118可减少来自NVM事务队列116b的获取速度。此外,当NVM器件134忙碌时,仲裁器118可仅仅发出VM请求,直到反馈信号119指示NVM设备再次空闲。在一些示例中,当写入信用大时,仲裁器118可增加发出NVM请求的速度(例如,增加NVM请求与VM请求的发出比率),而如果写入信用小,则仲裁器118可相应地降低发出NVM请求的速度(例如,降低NVM请求与VM请求的发出比率)。
调度器122例如可基于先进先出(FIFO)获取在命令队列120中排队的事务。然后,调度器122使用对应于获取的事务(例如,对应于由获取的事务所针对的VM或NVM器件132/134)的SPD数据(例如,组和/或通道ID),以生成对应于获取的事务的适当的命令。根据一些实施例,当获取的事务是VM CPU请求时,可在生成对应的命令时使用VM定时(例如,DDR4定时),而当获取的事务是NVM CPU请求时,诸如行地址选通到列地址选通(RAS-CAS)等等之类的基于事务的通信协议、以及从SPD接口112接收的特定NVM定时参数可用于生成对应的命令。
根据一些实施例,调度器122使用来自存储器件132/134的状态反馈信号119,以用合适的定时调度NVM命令。在一些实施例中,调度器122可在发出VM命令时不使用反馈信号119,因为VM器件132是同步器件并且展现固定或预设的定时。例如,在激活存储器行之后,混合存储器控制器110可在发出写入/读取数据的写入/读取命令之前等待固定的时间段。然而,因为NVM器件134是异步的并且展现不固定的定时,所以调度器122使用用于定时NVM命令的反馈信号119。例如,在激活NVM器件134之后,混合存储器控制器110可能不知道何时发出随后的命令,直到其接收到反馈信号119。
根据一些实施例,调度器122通过重新使用标准VM命令集(例如,DRAM命令集)来向NVM器件134发出命令。例如,调度器122向VM器件132和NVM器件134发送相同的激活、读取和写入(ACT、RD和WR)命令,并且在存储器件132/134内的寄存器时钟驱动器(RCD)138根据其器件特性解析接收的命令,并且执行相关联的动作(例如,激活、从存储单元140读取或向存储单元140写入)。
在一些实施例中,调度器122通过使用不同于与VM器件132一起使用的命令集来向NVM器件134发出命令。例如,调度器122可向VM器件132发送标准DDR ACT、RD和WR命令,而可向NVM器件134发送新定义的ACT_new、RD_new和WR_new命令。例如,在存储器件132/134处的还未由标准命令集(例如,DDR4命令集)使用的命令管脚(例如,/CS,BG,BA,...,A9-0)的低-高组合可用于定义新命令集以与NVM器件134一起使用。在这样的实施例中,相应地修改NVM器件134以能够解析新命令集。根据一些实施例,可沿着与标准VM命令集(例如,DDR存储器总线)相同的存储器总线发送新命令集。
由混合存储器控制器110响应于CPU读取请求而从存储器件132/134读取的数据在被发送到系统CPU之前存储在响应队列124中。
图2B图示根据本发明的一些实施例的混合存储器控制器110-1的详细框图。除了混合事务队列116-1之外,混合存储器控制器110-1可与以上关于图2所述的混合存储器控制器110相同或基本相同。
参考图2B,混合存储器控制器110-1不是使用用于对VM和NVM CPU请求排队的分离的事务队列,而是使用用于存储两种类型的事务的混合事务队列116-1。
在一些实施例中,当混合存储器控制器110-1接收CPU请求(例如,写入或读取请求)时,地址映射器/译码器114-1译码CPU请求以确定CPU请求映射到是对应于VM器件132还是NVM器件134的地址,将译码的CPU请求标记为或者VM CPU请求或者NVM CPU请求以识别对应的VM器件132或NVM器件134,并且将标记的请求转发到混合事务队列116-1。
根据一些实施例,仲裁器118-1基于FIFO处理/获取在混合事务队列116-1处排队的VM CPU请求和NVM CPU请求,而不考虑CPU请求的类型。在一些其它实施例中,仲裁器118-1梳理排队的事务,并使用标签来识别VM请求和NVM请求。仲裁器118-1根据关于图2所述的仲裁策略来确定VM CPU请求和NVM CPU请求的处理/获取次序(例如,优先级),并根据确定的处理次序来在命令队列120中对获取的VM CPU请求和NVM CPU请求排队。混合存储器控制器110-1然后可处理在命令队列120中排队的事务,如以上关于图2A所述。
图3图示根据本发明的一些实施例的使用混合存储器控制器110/110-1控制包括易失性存储器件132和非易失性存储器件134的混合存储器组130的过程300。
在动作S302,通过检测存储在VM器件和NVM器件中(例如,存储在对应的SPDEEPROM 136中)的每一个中的相关联的SPD数据,SPD接口112识别混合存储器组130中的VM器件132和NVM器件134。在一些示例中,VM器件132和NVM器件134的识别可包括映射存储器件132和134的地址(例如,确定通道、组和存储体ID)及其各自的定时参数(例如,激活、写入和读取时间)。该过程可在系统引导时发生。
在动作S304,地址映射器/译码器114/114-1接收第一中央处理单元(CPU)请求和第二CPU请求,以向混合存储器组130写入/从混合存储器组130读取。
在动作S306,通过对第一CPU请求和第二CPU请求的译码和地址映射,地址映射器/译码器114/114-1将VM器件识别为第一CPU请求的第一目标,而将NVM器件识别为第二CPU请求的第二目标。在一些示例中,VM器件132和NVM器件134可在相同存储器通道111的不同存储器组处。VM器件132和NVM器件134也可在相同存储器组的不同存储器存储体处。
在动作S308,地址映射器/译码器114/114-1在第一缓冲器(例如,VM事务队列116a)中对第一CPU请求排队,而在第二缓冲器(例如,NVM事务队列116b)中对第二CPU请求排队。在一些示例中,第一队列可专用于VM事务/CPU请求,而第二队列可专用于NVM事务/CPU请求。在一些示例中,专用的第一队列和第二队列可彼此分离(即,没有逻辑地址重叠)。在其它实施例中,第一队列和第二队列可组成相同的队列(例如,混合存储器队列116-1)。
在动作S310,混合存储器控制器110/110-1(例如,仲裁器118/118-1和调度器122)基于仲裁策略而对第一目标和第二目标中的相关联的一个生成与第一CPU请求和第二CPU请求中的一个对应的第一命令,并且然后对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和第二CPU请求中的另一个对应的第二命令。根据一些示例,仲裁策略可包括基于第一队列和第二队列的不平衡发出速度的轮询仲裁策略或加权轮询仲裁策略。在一些示例中,基于来自存储器件132和134的定时参数和/或状态反馈信号119,仲裁器118可确定仲裁策略。根据一些实施例,第一命令和第二命令可根据相同的标准易失性存储器命令集(例如,DDR4命令集)来生成。在其它实施例中,对应于第二目标的第一命令和第二命令根据与标准易失性存储器命令集不同的命令集来生成。
在动作S312,调度器122向VM器件132和NVM器件134的相应器件发送第一命令和第二命令。
相应地,本发明的实施例提出一种用于同步或异步的存储器件的复用控制逻辑的自适应机制。
SPD接口112、地址映射器/译码器114/114-1、事务和命令队列、仲裁器118/118-1和调度器122,以及一般地,混合存储器控制器100/100-1可使用任何合适的硬件(例如,专用集成电路)、固件、软件或者软件、固件和硬件的合适组合来实现。例如,可在一个集成电路(IC)芯片上或在分离的IC芯片上形成混合存储器控制器100/100-1的各种组件,诸如SPD接口112、地址映射器/译码器114/114-1、仲裁器118/118-1和调度器122。此外,混合存储器控制器100/100-1的各种组件可以是一个或多个计算设备中的在执行计算机程序指令并与用于执行在此所述的各种功能的其它系统组件交互的一个或多个处理器上运行的进程或线程。计算机程序指令可被存储在存储器中,该存储器可在使用标准存储器件(诸如例如随机存取存储器(RAM))的计算设备中来实现。
在所附权利要求中,处理器和处理器存储器表示SPD接口112、地址映射器/译码器114/114-1、仲裁器118/118-1、调度器122以及事务和命令队列的合并。
应当理解:虽然术语“第一”、“第二”、“第三”等在本文中可用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应当受这些术语限制。这些术语用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开。从而,以下讨论的第一元件、组件、区域、层或部分可能被称为第二元件、组件、区域、层或部分,而不会脱离本发明构思的精神和范围。
在此使用的术语是为了描述特定实施例的目的,并不意欲限制本发明构思。如在此使用的,单数形式“一”和“一个”也旨在包括复数形式,除非上下文另有明确指示。将进一步理解:当在本说明书中使用时,术语“包括”、“正包括”、“包含”和“正包含”指定存在所述特征、整数、步骤、操作、元件和/组件,但不排除存在或增加一个或多个其它特征、整数、步骤、操作、元件、组件和/或它们的组。如在此使用的,术语“和/或”包括相关联的所列项中的一个或多个的任何和所有组合。当在元素的列表之前时,诸如“……中的至少一个”的表达修饰元素的整个列表,而不修饰列表的个别元素。此外,在描述本发明构思的实施例时使用“可”指代“本发明构思的一个或多个实施例”。
将理解:当元件被称为“连接到”或“耦合到”另一个元件时,其可以直接连接到或耦合到其它元件,或者可存在一个或多个中间元件。当元件被称为“直接连接到”或“直接耦合到”另一个元件时,不存在中间元件。
如在此使用的,术语“使用”、“正使用”和“已使用”可被认为分别与术语“利用”、“正利用”和“已利用”同义。
虽然已经特别参照本发明的说明性实施例详细描述了本发明,但是在此所述的实施例并不旨在是穷举的或将本发明的范围限于公开的确切形式。本发明所属技术领域的技术人员将理解:组装和操作的所述结构和方法的变化和改变可被实施而没有有意地脱离本发明的原理、精神和范围,如在下列权利要求及其等同物中所阐述的。
Claims (21)
1.一种用于控制包括易失性存储器件和非易失性存储器件的混合存储器组的混合存储器控制器,所述混合存储器控制器包括:
处理器;和
在所述处理器本地的处理器存储器,其中,所述处理器存储器具有存储在其上的指令,其中所述指令在由所述处理器执行时使所述处理器执行:
接收第一中央处理单元(CPU)请求以向所述混合存储器组写入/从所述混合存储器组读取;
通过对所述第一CPU请求译码和地址映射,将所述易失性存储器件识别为所述第一CPU请求的第一目标;
在第一缓冲器中对所述第一CPU请求排队;
接收第二CPU请求以向所述混合存储器组写入/从所述混合存储器组读取;
通过对所述第二CPU请求译码和地址映射,将所述非易失性存储器件识别为所述第二CPU请求的第二目标;
在第二缓冲器中对所述第二CPU请求排队;
基于仲裁策略,对第一目标和第二目标中的相关联的一个生成与第一CPU请求和第二CPU请求中的一个对应的第一命令,并且响应于生成所述第一命令,对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和所述第二CPU请求中的另一个对应的第二命令;以及
向所述易失性存储器件和所述非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
2.根据权利要求1所述的混合存储器控制器,其中,所述指令进一步使所述处理器执行:
通过检测存储在所述易失性存储器件和所述非易失性存储器件的每一个中的相关联的串行存在检测(SPD)数据,识别所述易失性存储器件和非易失性存储器件。
3.根据权利要求2所述的混合存储器控制器,其中,所述易失性存储器件和非易失性存储器件的识别在引导时发生。
4.根据权利要求2所述的混合存储器控制器,其中,识别所述易失性存储器件和所述非易失性存储器件包括:地址映射所述易失性存储器件和非易失性存储器件。
5.根据权利要求2所述的混合存储器控制器,其中,所述指令进一步使所述处理器执行:
基于所述相关联的SPD数据,识别所述易失性存储器件和所述非易失性存储器件的定时参数;以及
基于所述定时参数,确定所述仲裁策略。
6.根据权利要求2所述的混合存储器控制器,其中,所述指令进一步使所述处理器执行:
从所述非易失性存储器件接收状态反馈信号;以及
基于所述状态反馈信号,确定所述仲裁策略。
7.根据权利要求1所述的混合存储器控制器,其中,所述仲裁策略包括基于所述第一队列和所述第二队列的不平衡发出速度的轮询仲裁策略或加权轮询仲裁策略。
8.根据权利要求1所述的混合存储器控制器,其中,所述非易失性存储器件和所述易失性存储器件处于相同存储器通道的不同存储器组。
9.根据权利要求1所述的混合存储器控制器,其中,所述非易失性存储器件和所述易失性存储器件处于相同存储器组的不同存储器存储体。
10.根据权利要求1所述的混合存储器控制器,其中,所述第一队列和所述第二队列是相同的队列。
11.根据权利要求1所述的混合存储器控制器,其中,所述第一命令和所述第二命令根据相同的标准易失性存储器命令集来生成。
12.根据权利要求1所述的混合存储器控制器,其中,与所述第二目标对应的所述第一命令和第二命令中的一个根据不同于标准易失性存储器命令集的命令集来生成。
13.一种存储节点,包括:
混合存储器组,包括:
非易失性存储器件;以及
易失性存储器件,耦合到所述非易失性存储器件;以及
混合存储器控制器,被配置成通过相同的通道执行到/自易失性存储器件和非易失性存储器件的数据传送,所述混合存储器控制器包括:
处理器;以及
在所述处理器本地的处理器存储器,其中,所述处理器存储器具有存储在其上的指令,其中所述指令在由所述处理器执行时使所述处理器执行:
通过检测存储在所述易失性存储器件和非易失性存储器件的每一个中的相关联的串行存在检测(SPD)数据,识别所述易失性存储器件和非易失性存储器件;
接收第一中央处理单元(CPU)请求以向所述混合存储器组写入/从所述混合存储器组读取;
通过对所述第一CPU请求的译码和地址映射,将所述易失性存储器件识别为所述第一CPU请求的第一目标;
在第一缓冲器中对所述第一CPU请求排队;
接收第二CPU请求以向所述混合存储器组写入/从所述混合存储器组读取;
通过对所述第二CPU请求的译码和地址映射,将所述非易失性存储器件识别为所述第二CPU请求的第二目标;
在第二缓冲器中对所述第二CPU请求排队;
基于与所述易失性存储器件和非易失性存储器件相关联的SPD数据,确定仲裁策略;
基于所述仲裁策略,对所述第一目标和第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且响应于生成所述第一命令,对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和所述第二CPU请求中的另一个对应的第二命令;以及
向所述易失性存储器件和非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
14.一种控制包括易失性存储器件和非易失性存储器件的混合存储器组的方法,所述方法包括:
由处理器接收第一中央处理单元(CPU)请求以向所述混合存储器组写入/从所述混合存储器组读取;
通过对所述第一CPU请求的译码和地址映射,由所述处理器将所述易失性存储器件识别为所述第一CPU请求的第一目标;
由所述处理器在第一缓冲器中对所述第一CPU请求排队;
由所述处理器接收第二CPU请求以向所述混合存储器组写入/从所述混合存储器组读取;
通过对第二CPU请求的译码和地址映射,由所述处理器将所述非易失性存储器件识别为所述第二CPU请求的第二目标;
由所述处理器在第二缓冲器中对所述第二CPU请求排队;
基于仲裁策略,由所述处理器对所述第一目标和第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且响应于生成所述第一命令,对所述第一目标和第二目标中的相关联的另一个生成与所述第一CPU请求和第二CPU请求中的另一个对应的第二命令;以及
由所述处理器向所述易失性存储器件和所述非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
15.根据权利要求14所述的方法,进一步包括:
通过检测存储在易失性存储器件和非易失性存储器件的每一个中的相关联的串行存在检测(SPD)数据,由所述处理器识别所述易失性存储器件和非易失性存储器件;
基于所述相关联的SPD数据,由所述处理器识别所述易失性存储器件和非易失性存储器件的定时参数;以及
基于所述定时参数,由所述处理器确定所述仲裁策略。
16.根据权利要求14所述的方法,进一步包括:
由所述处理器从所述非易失性存储器件接收状态反馈信号;以及
基于所述状态反馈信号,由所述处理器确定所述仲裁策略。
17.根据权利要求14所述的方法,其中,所述非易失性存储器件和易失性存储器件在相同存储器通道的不同存储器组处。
18.根据权利要求14所述的方法,其中,所述非易失性存储器件和易失性存储器件在相同存储器组的不同存储器存储体中。
19.根据权利要求14所述的方法,其中,所述第一命令和第二命令根据相同的标准易失性存储器命令集来生成。
20.根据权利要求14所述的方法,其中,与所述第二目标对应的第一命令和第二命令中的一个根据不同于标准易失性存储器命令集的命令集来生成。
21.一种用于控制包括易失性存储器件和非易失性存储器件的混合存储器组的混合存储器控制器,所述混合存储器控制器包括:
地址映射器/译码器,被配置成:接收第一中央处理单元(CPU)请求和第二CPU请求以向混合存储器组写入/从混合存储器组读取,通过对所述第一CPU请求的译码和地址映射而将所述易失性存储器件识别为所述第一CPU请求的第一目标,以及通过对所述第二CPU请求的译码和地址映射而将所述非易失性存储器件识别为所述第二CPU请求的第二目标;
第一事务队列,被配置成:对所接收的第一CPU请求排队;
第二事务队列,被配置成:对所接收的第二CPU请求排队;
仲裁器,被配置成:基于与所述易失性存储器件和非易失性存储器件相关联的SPD数据,确定仲裁策略;以及
调度器,被配置成:基于所述仲裁策略,对所述第一目标和第二目标中的相关联的一个生成与所述第一CPU请求和第二CPU请求中的一个对应的第一命令,并且对所述第一目标和第二目标中的相关联的另一个生成与第一CPU请求和第二CPU请求中的另一个对应的第二命令,并且向所述易失性存储器件和非易失性存储器件中的相应的存储器件发送所述第一命令和第二命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211606.5A CN111580749B (zh) | 2016-03-03 | 2017-02-24 | 存储节点、混合存储器控制器及控制混合存储器组的方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662303347P | 2016-03-03 | 2016-03-03 | |
US62/303,347 | 2016-03-03 | ||
US15/174,761 | 2016-06-06 | ||
US15/174,761 US9830086B2 (en) | 2016-03-03 | 2016-06-06 | Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010211606.5A Division CN111580749B (zh) | 2016-03-03 | 2017-02-24 | 存储节点、混合存储器控制器及控制混合存储器组的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107153511A true CN107153511A (zh) | 2017-09-12 |
CN107153511B CN107153511B (zh) | 2020-04-17 |
Family
ID=59723587
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010211606.5A Active CN111580749B (zh) | 2016-03-03 | 2017-02-24 | 存储节点、混合存储器控制器及控制混合存储器组的方法 |
CN201710102539.1A Active CN107153511B (zh) | 2016-03-03 | 2017-02-24 | 存储节点、混合存储器控制器及控制混合存储器组的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010211606.5A Active CN111580749B (zh) | 2016-03-03 | 2017-02-24 | 存储节点、混合存储器控制器及控制混合存储器组的方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9830086B2 (zh) |
JP (1) | JP6788517B2 (zh) |
KR (1) | KR20170104110A (zh) |
CN (2) | CN111580749B (zh) |
TW (1) | TWI710910B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488298A (zh) * | 2017-12-29 | 2020-08-04 | 贵阳忆芯科技有限公司 | 优化nvm接口命令执行顺序的方法与装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10621119B2 (en) | 2016-03-03 | 2020-04-14 | Samsung Electronics Co., Ltd. | Asynchronous communication protocol compatible with synchronous DDR protocol |
US10592114B2 (en) | 2016-03-03 | 2020-03-17 | Samsung Electronics Co., Ltd. | Coordinated in-module RAS features for synchronous DDR compatible memory |
US9830086B2 (en) * | 2016-03-03 | 2017-11-28 | Samsung Electronics Co., Ltd. | Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group |
WO2018067168A1 (en) * | 2016-10-07 | 2018-04-12 | Hewlett-Packard Development Company, L.P. | Hybrid memory devices |
TWI685792B (zh) * | 2018-03-14 | 2020-02-21 | 神雲科技股份有限公司 | 電腦裝置、伺服器裝置及其混合記憶體單元的控制方法 |
US11379388B1 (en) * | 2021-03-31 | 2022-07-05 | Advanced Micro Devices, Inc. | Credit scheme for multi-queue memory controllers |
US20220374168A1 (en) * | 2021-05-21 | 2022-11-24 | Micron Technology, Inc. | Memory with memory-initiated command insertion, and associated systems, devices, and methods |
US11960416B2 (en) * | 2021-12-21 | 2024-04-16 | Texas Instruments Incorporated | Multichannel memory arbitration and interleaving scheme |
US20230236742A1 (en) * | 2022-01-22 | 2023-07-27 | Micron Technology, Inc. | NONVOLATILE MEMORY EXPRESS (NVMe) OVER COMPUTE EXPRESS LINK (CXL) |
US12056362B2 (en) | 2022-09-28 | 2024-08-06 | Kioxia Corporation | Non-volatile storage device offloading of host tasks |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218686A (en) * | 1989-11-03 | 1993-06-08 | Compaq Computer Corporation | Combined synchronous and asynchronous memory controller |
CN102831087A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据读写处理方法和装置 |
CN104731725A (zh) * | 2013-12-24 | 2015-06-24 | 爱思开海力士有限公司 | 数据储存设备和包括数据储存设备的数据处理系统 |
US20150279463A1 (en) * | 2014-03-31 | 2015-10-01 | Dell Products, L.P. | Adjustable non-volatile memory regions of dram-based memory module |
CN106055493A (zh) * | 2015-04-14 | 2016-10-26 | 爱思开海力士有限公司 | 存储系统、存储模块及其操作方法 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247093B1 (en) * | 1995-09-01 | 2001-06-12 | Hitachi, Ltd. | Data processing apparatus for executing synchronous instructions prior to executing asynchronous instructions |
US6055619A (en) * | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
US6038630A (en) * | 1998-03-24 | 2000-03-14 | International Business Machines Corporation | Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses |
US7120065B2 (en) * | 2004-04-01 | 2006-10-10 | Micron Technology, Inc. | Techniques for implementing accurate operating current values stored in a database |
KR100567826B1 (ko) * | 2004-07-12 | 2006-04-05 | 삼성전자주식회사 | 이종 메모리의 카스 레이턴시와 주파수를 설정하는 방법및 장치 |
US7254075B2 (en) | 2004-09-30 | 2007-08-07 | Rambus Inc. | Integrated circuit memory system having dynamic memory bank count and page size |
KR100564635B1 (ko) * | 2004-10-25 | 2006-03-28 | 삼성전자주식회사 | 메모리 모듈 내에서의 인터페이스 타이밍을 제어하는메모리 시스템 및 그 방법 |
EP2706461A1 (en) * | 2006-02-09 | 2014-03-12 | Google Inc. | Memory circuit system and method |
WO2008040028A2 (en) | 2006-09-28 | 2008-04-03 | Virident Systems, Inc. | Systems, methods, and apparatus with programmable memory control for heterogeneous main memory |
US8949555B1 (en) | 2007-08-30 | 2015-02-03 | Virident Systems, Inc. | Methods for sustained read and write performance with non-volatile memory |
US7584335B2 (en) * | 2006-11-02 | 2009-09-01 | International Business Machines Corporation | Methods and arrangements for hybrid data storage |
US9195602B2 (en) * | 2007-03-30 | 2015-11-24 | Rambus Inc. | System including hierarchical memory modules having different types of integrated circuit memory devices |
US8301833B1 (en) | 2007-06-01 | 2012-10-30 | Netlist, Inc. | Non-volatile memory module |
US7885914B2 (en) * | 2007-12-28 | 2011-02-08 | Intel Corporation | Systems, methods and apparatuses for rank coordination |
US20100125695A1 (en) | 2008-11-15 | 2010-05-20 | Nanostar Corporation | Non-volatile memory storage system |
WO2010134201A1 (ja) * | 2009-05-22 | 2010-11-25 | 株式会社日立製作所 | 半導体装置 |
US9390035B2 (en) * | 2009-12-21 | 2016-07-12 | Sanmina-Sci Corporation | Method and apparatus for supporting storage modules in standard memory and/or hybrid memory bus architectures |
US8838853B2 (en) * | 2010-01-18 | 2014-09-16 | Marvell International Ltd. | Access buffer |
KR20130071436A (ko) * | 2010-05-07 | 2013-06-28 | 모사이드 테크놀로지스 인코퍼레이티드 | 단일 버퍼를 사용하여 복수의 메모리 장치를 동시에 판독하는 방법 및 장치 |
CN103354939B (zh) * | 2010-12-17 | 2016-03-16 | 艾沃思宾技术公司 | 用于使dram和mram访问交错的存储器控制器和方法 |
US10474584B2 (en) * | 2012-04-30 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | Storing cache metadata separately from integrated circuit containing cache controller |
US9047090B2 (en) * | 2012-08-07 | 2015-06-02 | Qualcomm Incorporated | Methods, systems and devices for hybrid memory management |
US20140085320A1 (en) * | 2012-09-27 | 2014-03-27 | Apple Inc. | Efficient processing of access requests for a shared resource |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
US9229854B1 (en) * | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
US9424126B2 (en) * | 2013-09-03 | 2016-08-23 | Kabushiki Kaisha Toshiba | Memory controller |
JP6165008B2 (ja) * | 2013-09-25 | 2017-07-19 | キヤノン株式会社 | メモリ制御装置、メモリ制御方法、情報機器及びプログラム |
US9449651B2 (en) * | 2014-03-21 | 2016-09-20 | Diablo Technologies Inc. | System and method for offsetting the data buffer latency of a device implementing a JEDEC standard DDR-4 LRDIMM chipset |
US20150347151A1 (en) * | 2014-05-28 | 2015-12-03 | Diablo Technologies Inc. | System and method for booting from a non-volatile memory |
US9811456B2 (en) * | 2014-11-26 | 2017-11-07 | Advanced Micro Devices, Inc. | Reliable wear-leveling for non-volatile memory and method therefor |
US20170060434A1 (en) * | 2015-08-27 | 2017-03-02 | Samsung Electronics Co., Ltd. | Transaction-based hybrid memory module |
KR102449333B1 (ko) * | 2015-10-30 | 2022-10-04 | 삼성전자주식회사 | 메모리 시스템 및 그것의 읽기 요청 관리 방법 |
US9971511B2 (en) * | 2016-01-06 | 2018-05-15 | Samsung Electronics Co., Ltd. | Hybrid memory module and transaction-based memory interface |
US9830086B2 (en) * | 2016-03-03 | 2017-11-28 | Samsung Electronics Co., Ltd. | Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group |
-
2016
- 2016-06-06 US US15/174,761 patent/US9830086B2/en active Active
- 2016-11-24 KR KR1020160157448A patent/KR20170104110A/ko not_active Application Discontinuation
- 2016-12-29 TW TW105143743A patent/TWI710910B/zh active
-
2017
- 2017-02-10 JP JP2017023105A patent/JP6788517B2/ja active Active
- 2017-02-24 CN CN202010211606.5A patent/CN111580749B/zh active Active
- 2017-02-24 CN CN201710102539.1A patent/CN107153511B/zh active Active
- 2017-10-19 US US15/788,501 patent/US10114560B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218686A (en) * | 1989-11-03 | 1993-06-08 | Compaq Computer Corporation | Combined synchronous and asynchronous memory controller |
CN102831087A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据读写处理方法和装置 |
CN104731725A (zh) * | 2013-12-24 | 2015-06-24 | 爱思开海力士有限公司 | 数据储存设备和包括数据储存设备的数据处理系统 |
US20150279463A1 (en) * | 2014-03-31 | 2015-10-01 | Dell Products, L.P. | Adjustable non-volatile memory regions of dram-based memory module |
CN106055493A (zh) * | 2015-04-14 | 2016-10-26 | 爱思开海力士有限公司 | 存储系统、存储模块及其操作方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488298A (zh) * | 2017-12-29 | 2020-08-04 | 贵阳忆芯科技有限公司 | 优化nvm接口命令执行顺序的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US9830086B2 (en) | 2017-11-28 |
CN111580749A (zh) | 2020-08-25 |
CN111580749B (zh) | 2023-06-23 |
JP6788517B2 (ja) | 2020-11-25 |
TWI710910B (zh) | 2020-11-21 |
TW201732612A (zh) | 2017-09-16 |
US10114560B2 (en) | 2018-10-30 |
US20170255398A1 (en) | 2017-09-07 |
CN107153511B (zh) | 2020-04-17 |
US20180046388A1 (en) | 2018-02-15 |
JP2017157206A (ja) | 2017-09-07 |
KR20170104110A (ko) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107153511A (zh) | 存储节点、混合存储器控制器及控制混合存储器组的方法 | |
US9690705B1 (en) | Systems and methods for processing data sets according to an instructed order | |
US9639407B1 (en) | Systems and methods for efficiently implementing functional commands in a data processing system | |
KR101312281B1 (ko) | 프로세서 및 메모리 제어 방법 | |
JP5666722B2 (ja) | メモリ・インターフェース | |
US7069373B2 (en) | USB endpoint controller flexible memory management | |
US9477412B1 (en) | Systems and methods for automatically aggregating write requests | |
CN105408875B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
CN101150485A (zh) | 一种零拷贝缓冲区队列网络数据发送的管理方法 | |
US10585822B2 (en) | Operation method of host system including storage device and operation method of storage device controller | |
KR20210119529A (ko) | 스토리지 장치 컨텐츠를 스트리밍하는 시스템들 및 방법들 | |
US9690713B1 (en) | Systems and methods for effectively interacting with a flash memory | |
EP3077914B1 (en) | System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface | |
CN112585570A (zh) | 存储器系统中用于提高命令总线利用率的控制器命令调度 | |
US9781225B1 (en) | Systems and methods for cache streams | |
US11042321B2 (en) | Memory controller | |
US8219745B2 (en) | Memory controller to utilize DRAM write buffers | |
US9753873B1 (en) | Systems and methods for key-value transactions | |
US9781027B1 (en) | Systems and methods to communicate with external destinations via a memory network | |
JP2017162399A (ja) | 記憶装置 |
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 |