CN104252420A - 数据写入方法及内存*** - Google Patents
数据写入方法及内存*** Download PDFInfo
- Publication number
- CN104252420A CN104252420A CN201310270239.6A CN201310270239A CN104252420A CN 104252420 A CN104252420 A CN 104252420A CN 201310270239 A CN201310270239 A CN 201310270239A CN 104252420 A CN104252420 A CN 104252420A
- Authority
- CN
- China
- Prior art keywords
- data block
- written
- cache line
- data
- delta data
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例提供一种数据写入方法及内存***,该方法适用于至少包括内存控制器与内存设备的内存***,该方法包括:内存控制器接收高速缓存发送的变化信息,变化信息为高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块后,生成的指示各数据块上的数据是否发生变化的信息,内存控制器根据变化信息,对于数据发生变化的各变化数据块,向内存设备发送对应的列地址和数据,使内存设备对各变化数据块进行数据写入;对于数据未发生变化的数据块,不进行写入,从而实现对有效数据的快速写入,降低内存***的能耗、提高内存***的性能的目的。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种数据写入方法及内存***。
背景技术
当前的内存***基本包括内存控制器(Memory Controller,MC)、内存设备等,MC与内存设备之间通过双倍数据频率(Double Data Rate,DDR)协议进行数据交互,MC采用突发(Burst)写的方式将数据写入内存设备,一次突发写的数据块大小为内存数据总线宽度,而高速缓存(Cache)与内存***之间的数据交互以高速缓存条(Cache Line)为单位,一次读写的数据大小为Cache的最后一级Cache(Last Level Cache,LLC)的一个Cache Line的大小。因此,MC需要多次连续的突发写才能将一个Cache Line的数据写入内存设备中,其中,连续突发写的次数称之为突发长度(Burst Length,BL)。
DDR3协议中,BL一般等于8,以一次突发写的数据块大小为粒度,将一个Cache Line划分多个数据块。例如,若LLC的一个Cache Line的大小为64Byte,内存数据总线宽度为64bit,则在数据总线上出现突发写的数据时,MC需要在连续的4个时钟周期上,突发写8次才能将LLC的一个Cache Line的数据写入内存设备。然而,实际上,LLC的一个Cache Line数据写入内存设备时,很多数据块并没有改变,写入过程中,会存在某些次的突发写并向内存设备中写入无效数据的情况,导致有效数据的写入速度缓慢,且大量无效数据的写入使得内存***能耗增大,从而降低了内存***的性能。
DDR3协议支持的BC4技术中,MC向内存设备写数据时,连续的2个时钟周期共突发写4次,之后的2个时钟周期没有突发写数据,从而将一个Cache Line的前一半数据或者后一半数据写入内存设备。该过程中,前两个时钟周期内,不区分数据块上的数据是否改变的写入方式,也存在某些次的突发写并向内存设备中写入无效数据的情况,导致有效数据的写入速度缓慢,且大量无效数据的写入使得内存***能耗增大,从而降低了内存***的性能。
发明内容
本发明实施例提供一种数据写入方法及内存***,通过区分Cache Line中的数据块上的数据是否发生变化,仅对发生变化的数据块进行写入,从而实现有对有效数据的快速写入,降低内存***的能耗、提高内存***的性能的目的。
第一个方面,本发明实施例提供一种数据写入方法,适用于至少包括内存控制器与内存设备的内存***,包括:
所述内存控制器接收高速缓存发送的变化信息,所述变化信息为所述高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块后,生成的指示各所述数据块上的数据是否发生变化的信息;
所述内存控制器根据所述变化信息,对于所述变化信息指示的未发生数据变化的各非变化数据块,不向所述内存设备发送各所述非变化数据块对应的列地址和各所述非变化数据块对应的数据;对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,所述突发长度与所述至少一个数据块的数据块数量相等。
在第一个方面的第一种可能的实现方式中,所述对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据,包括:
若所述第一待写入Cache Line的所述变化数据块的数量与所述突发长度相等,则所述内存控制器向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,包括:
所述内存设备根据各所述列地址和各所述变化数据块对应的数据,对所述第一待写入Cache Line的各变化数据块进行所述突发长度的数据写入。
在第一个方面的第二种可能的实现方式中,所述对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据,包括:
若所述第一待写入Cache Line的所述变化数据块的数量小于所述突发长度,则将所述第一待写入Cache Line的各变化数据块,以及至少一个第二待写入Cache Line的变化数据块对应的列地址与数据发送至所述内存设备,所述至少一个第二待写入Cache Line的变化数据块与所述第一待写入CacheLine的变化数据块的数量之和小于等于所述突发长度;
所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,包括:
所述内存设备根据所述第一待写入Cache Line的各列地址,以及所述至少一个第二待写入Cache Line的各列地址,对所述第一待写入Cache Line的各变化数据块,以及所述至少一个第二待写入Cache Line的各变化数据块,进行所述突发长度的数据写入,所述第二待写入Cache Line为所述LLC中除所述第一待写入Cache Line之外的待写入Cache Line。
结合第一个方面的第二种可能的实现方式,在第一个方面的第三种可能的实现方式中,所述第一待写入Cache Line与所述至少一个第二待写入CacheLine属于同一个存储组Bank的相同行,且所述LLC中没有对所述相同行的读命令。
结合第一个方面、第一个方面的第一种至第三种中任一种可能的实现方式,在第一个方面的第四种可能的实现方式中,所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,包括:
所述内存设备上设置有所述突发长度数量的列地址缓存与所述突发长度数量的列译码器,对于每一所述变化数据块,采用独立的列地址缓存与列译码器进行数据写入。
第二个方面,本发明实施例提供一种内存***,至少包括内存控制器与内存设备,包括:
所述内存控制器用于接收高速缓存发送的变化信息,所述变化信息为所述高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块后,生成的指示各所述数据块上的数据是否发生变化的信息;根据所述变化信息,对于所述变化信息指示的未发生数据变化的各非变化数据块,不向所述内存设备发送各所述非变化数据块对应的列地址和各所述非变化数据块对应的数据;对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备用于根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,所述突发长度与所述至少一个数据块的数据块数量相等。
在第二个方面的第一种可能的实现方式中,所述内存控制器用于若所述第一待写入Cache Line的所述变化数据块的数量与所述突发长度相等,则所述内存控制器向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备用于根据各所述列地址和各所述变化数据块对应的数据,对所述第一待写入Cache Line的各变化数据块进行所述突发长度的数据写入。
在第二个方面的第二种可能的实现方式中,所述内存控制器用于若所述第一待写入Cache Line的所述变化数据块的数量小于突发长度,则将所述第一待写入Cache Line的各变化数据块,以及至少一个第二待写入Cache Line的变化数据块对应的列地址与数据发送至所述内存设备,所述至少一个第二待写入Cache Line的变化数据块与所述第一待写入Cache Line的变化数据块的数量之和小于等于所述突发长度;
所述内存设备用于根据所述第一待写入Cache Line的各列地址,以及所述至少一个第二待写入Cache Line的各列地址,对所述第一待写入Cache Line的各变化数据块,以及所述至少一个第二待写入Cache Line的各变化数据块,进行所述突发长度的数据写入,所述第二待写入Cache Line为所述LLC中除所述第一待写入Cache Line之外的待写入Cache Line。
结合第二个方面的第二种可能的实现方式,在第二个方面的第三种可能的实现方式中,所述第一待写入Cache Line与所述至少一个第二待写入CacheLine属于同一个存储组Bank的相同行,且所述LLC中没有对所述相同行的读命令。
结合第二个方面、第二个方面的第一种、第二种或第三种可能的实现方式,在第二个方面的第四种可能的实现方式中,所述内存设备上设置有所述突发长度数量的列地址缓存与所述突发长度数量的列译码器,对于每一所述变化数据块,采用独立的列地址缓存与列译码器进行数据写入。
本发明实施例提供的数据写入方法及内存***,内存控制器根据高速缓存发送的变化信息,仅对数据块上的数据发生变化的数据块,向内存设备发送列地址和数据,使内存设备对各变化数据块进行数据写入,对数据未发生变化的数据块,不进行写入,从而实现有效数据的快速写入,降低内存***的能耗、提高内存***的性能的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据写入方法的流程图;
图2为本发明数据写入方法中的LLC工作示意图;
图3为本发明数据写入方法中的内存控制器工作示意图;
图4为本发明数据写入方法中的内存设备的工作示意图;
图5为本发明数据写入方法中写命令合并的时序图;
图6为本发明内存***的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据写入方法实施例一的流程图。本实施例适用于向至少包括内存控制器与内存设备的内存***写入数据的场景。具体的,本实施例包括以下步骤:
101、内存***接收高速缓存发送的变化信息,变化信息为高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块后,生成的指示各数据块上的数据是否发生变化的信息。
高速缓存Cache位于中央处理器(central processing unit,CPU)与大容量的内存***之间,有较高的存取速度。本步骤中,高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块,为每一个数据块增加一个标识位,用标识位表示该数据块上的数据是否发生变化,一个Cache Line需要多个标识位,每个Cache Line的多个标识位组成指示该Cache Line的各数据块上的数据是否发生变化的变化信息。例如,以内存数据线总线宽度为粒度,将一个Cache Line划分为多个数据块,为每一个数据块增加一个用0或1标识的标识位,0表示该数据块上的数据未发生变化,即数据块的值没有改变;1表示该数据块上的数据发生变化,即数据块的值发生了变化,各个Cache Line的标识位组成该Cache Line的改变块向量(Changed Block Vector,CBV),即变化信息。具体的,假设一个Cache Line大小为64字节,内存数据总线宽度为64比特,则可以将一个Cache Line划分为8个数据块,突发长度BL=8,即一个CBV的大小为8比特。
图2为本发明数据写入方法中的LLC工作示意图。如图2所示,当高速缓存的上一级Cache向LLC的一个Cache Line写回数据时,先读出该CacheLine中原来的数据(old data),并与要写入的数据(new data)比较,如果一个数据块上的数据没有改变,则将该数据块的标识位标识为0;否则,若发生了变化,则将该数据块的标识位标识为1。当LLC将该Cache Line的数据写入内存***时,同时该Cache Line对应的CBV信息传递给内存***的内存控制器,内存控制器接收该CBV信息,即接收对应的变化信息。以标签为Tag1的数据块为例,上一级Cache执行①向LLC的某一Cache Line写数据时,读取该数据块原来的数据D1,先将D1与待写入的数据D2通过比较器比较,将比较结果记录在CBV中。同理,上一级Cache读出该Cache Line中其他数据块的数据并与待写入该些数据块的新数据做比较,将各数据块的比较结果记录在CBV中,从而得到该Cache Line的CBV信息,即变化信息。当LLC执行②向内存***写回时,即向内存***发送写回请求以写入数据的时候,同时执行③,将待写入Cache Line的变化信息也发送给内存***。
102、内存控制器根据变化信息,对于变化信息指示的未发生数据变化的各非变化数据块,不向内存设备发送各非变化数据块对应的列地址和各非变化数据块对应的数据;对于变化信息指示的发生数据变化的各变化数据块,向内存设备发送各变化数据块对应的列地址和各变化数据块对应的数据。
本步骤中,内存***的内存控制器根据接收到的变化信息,判断是否需要对第一待写入Cache Line的各个数据块进行写入。具体的,请参见图3.
图3为本发明数据写入方法中的内存控制器工作示意图。请参照图3,内存***的内存控制器包括请求队列(Tansaction Queue)和命令队列(Command Queue)等。LLC的写回请求首先被放到请求队列中,内存控制器将写回请求转换成操作内存设备的具体命令,并将命令存放到命令队列中。内存控制器根据第一待写入Cache Line的变化信息,判断是否需要对第一待写入Cache Line的各个数据块进行写入。具体的,对于数据块上的数据未发生变化的非变化数据块,不采用突发写进行写入,对于数据块上的数据发生变化的变化数据块,通过地址总线和数据总线等,每一拍向内存控制器发送一个数据块对应的列地址和数据。其中,由于DDR技术在一个时钟周期的上升沿和下降沿都传输数据,数据总线的数据频率是数据总线时钟频率的两倍,因此,每一拍即半个时钟周期。
103、内存设备根据各变化数据块对应的列地址和各变化数据块对应的数据,对各变化数据块进行突发长度的数据写入,突发长度与至少一个数据块的数据块数量相等。
一般来说,将第一待写入Cache Line划分为的数据块的数量即为连续突发写的次数。本步骤中,内存设备根据接收到的各列地址和数据,对各变化数据块进行突发长度的数据写入。
可选的,相对于现有技术中一个内存设备中只有一个列地址缓存和一个列译码器,本实施例的内存设备包括多个列地址缓存和列译码器。图4为本发明数据写入方法中的内存设备的工作示意图。请参照图4,本实施例中,内存设备上包括行地址缓存(row address buffer)、行地址译码器(rowdecoder)、突发长度数量的列地址缓存(column address buffer)、突发长度数量的列地址译码器(column decoder)、传感放大阵列(Sense Amplifier Array,SAA),以及存储阵列(Memory Array)、写入数据缓存(Data in buffer)等,对每一变化数据块,内存设备采用独立的列地址缓存与列译码器进行数据写入。每次写入数据时,对于内存控制器发送的多个列地址,存放在不同的列地址缓存中,并通过不同的列译码器并向译码,选中SAA中的不同的列,并向这些被选中的列中写入数据,最后将SAA中的数据写回存储阵列中。
本发明实施例提供的数据写入方法,内存控制器根据高速缓存发送的变化信息,仅对数据块上的数据发生变化的数据块,向内存设备发送列地址和数据,使内存设备对各变化数据块进行数据写入,对数据未发生变化的数据块,不进行写入,从而实现有效数据的快速写入,降低内存***的能耗、提高内存***的性能的目的。
可选的,上述实施例一中,内存控制器根据变化信息,判断是否需要对各数据块进行写入,对于变化信息指示的发生数据变化的各变化数据块,若第一待写入Cache Line的变化数据块的数量与突发长度相等,则内存控制器向内存设备发送各变化数据块对应的列地址和各变化数据块对应的数据。相应的,内存设备根据各列地址,对第一待写入Cache Line的各变化数据块进行突发长度的数据写入。
具体的,高速缓存将LLC的第一待写入Cache Line划分为至少一个数据块,对每一个数据块进行一次突发写,划分所得的数据块的数量即为突发写的次数,即突发长度。本实施例中,若变化数据块的数量与突发长度相等,即划分所得的每个数据块上的数据都发生了变化,内存控制器接收到的变化信息为指示该Cache line的每个数据块上的数据都发生了变化。此时,对于第一待写入Cache Line的每个数据块,内存控制器都向内存设备发送该数据块对应的列地址和数据,内存设备将接收到的多个列地址,存放到不同的列地址缓存中,并通过不同的列译码器并行译码,选中SAA中的不同的列,并向这些被选中的列中写入数据,最后将SAA中的数据写回存储阵列中,从而对第一待写入Cache Line的各个数据块进行写入。例如,将第一待写入Cacheline以内存数据总线宽度为粒度划分为8个数据块,该8个数据块上的数据都发生了变化,则内存控制器向内存设备发送8个列地址和对应的数据,内存设备上设置有8个列地址缓存和列译码器,每个列地址缓存存放一个列地址,各列地址对应的列译码器并行译码。
可选的,上述实施例一中,内存控制器根据变化信息,判断是否需要对各数据块进行写入,对于变化信息指示的发生数据变化的各变化数据块,若第一待写入Cache Line的变化数据块的数量小于突发长度,则将第一待写入Cache Line的各变化数据块,以及至少一个第二待写入Cache Line的变化数据块对应的列地址与数据发送至内存设备。其中,至少一个第二待写入CacheLine的变化数据块与第一待写入Cache Line的变化数据块之和小于等于突发长度。相应的,内存设备根据第一待写入Cache Line的各列地址,以及至少一个第二待写入Cache Line的各列地址,对第一待写入Cache Line的各变化数据块,以及至少一个第二待写入Cache Line的各变化数据块,进行突发长度的数据写入,第二待写入Cache Line为LLC中除第一待写入Cache Line之外的待写入Cache Line。
一般来说,高速缓存将LLC的第一待写入Cache Line划分为至少一个数据块,对每一个数据块进行一次突发写,划分所得的数据块的数量即为突发写的次数,即突发长度。本实施例中,若变化数据块的数量小于突发长度,即划分所得的各数据块中只有部分数据块上的数据发生了变化。此时,内存控制器在进行命令调度时,进行写命令合并,通过写命令合并的方式,在一个固定突发长度的时钟周期内,完成多个写请求,从而避免时钟周期的浪费,降低内存***的能耗,从而提高内存***的性能。
具体的,LLC向内存控制器发送的各请求写入Cache Line大小数据的写回请求首先存储在请求队列中,内存控制器将该些写回请求转换成操作内存设备的写命令,并将各写命令存放到命令队列中。内存设备发送第一待写入Cache Line的写命令时,若内存控制器根据第一待写入Cache Line的变化信息,发现该Cache Line的变化数据块小于突发长度,则从命令队列中选择至少一个第二待写入Cache line对应的写命令,各第二待写入Cache Line的变化数据块的数量与第一待写入Cache line的变化数据块的数量之和小于等于突发长度。在BL次的突发长度中,每一拍内存控制器将第一待写入CacheLine的一个变化数据块的对应的列地址和数据发送至内存设备,当第一待写入Cache Line的变化数据块对应的列地址和数据发送完毕后,后续每一拍继续向内存设备发送第二待写入Cache Line的一个变化数据块对应的列地址和数据,重复该过程,直到写入BL个数据块,或者在命令队列中找不到可以合并的写命令,即写入的数据块的个数小于BL。
需要说明的是,上述若第一待写入Cache Line的变化数据块的数量小于突发长度,数据写入过程中需要对第一待写入Cache Line对应的写命令与至少一个第二待写入Cache Line对应的写命令进行写命令合并时,除了满足可合并的写命令对应的各第二待写入Cache Line的变化数据块的数量与第一待写入Cache Line的变化数据块的数量之和小于等于突发长度的条件外,各写命令还需满足以下条件:第一待写入Cache Line与至少一个第二待写入CacheLine属于同一个存储组Bank的相同行,且LLC中没有对相同行的读命令。即第一待写入Cache Line对应的写命令与各第二待写入Cache Line对应的写命令是对同一个存储组Bank的相同行的写入,且各个第二待写入Cache Line对应的写命令中不存在对该相同行的读请求。此时,请参照图4,内存设备中还包括一个行测试(Row Test),用于测试各个写命令是否是对相同存储组Bank的相同行的数据写入。
具体的,假设LLC的一个Cache Line的大小为64Byte,内存数据总线宽度为64比特,突发长度BL=8。内存控制器的命令队列中的命令信息如下表1所示:三个写命令操作的是同一Bank,写命令Write1、写命令Write3写的是行Row1,写命令Write2写的是行Row2。
表1
由表1可知,Write1和Write3写的是同一行,且CBV,即变化信息显示Write1对应的Cache Line的变化数据块的数量与Write3的对应的Cache Line的变化数据块的数量之和为8(如表1中阴影部分所示)。因此,可对Write1和Write3进行写命令合并,内存控制器在完成Write1和Write3的调度后,再调度Write2。具体的,请参照图5。
图5为本发明数据写入方法中写命令合并的时序图。如图5所示,前4拍,即T0和T1时钟周期的上升沿和下降沿,内存控制器发送Write1和列地址列col1、col2、col3和col4,接下来的4拍,即T2和T3时钟周期的上升沿和下降沿发送Write3和列地址col3、col4、col5和col6。然后,再发送Write2及对应的列地址。在T5时刻,数据总线上出现突发写的数据Dn,突发写8次,从而将Write1对应的Cache Line和Write3对应的Cache Line的变化数据块写入到内存设备中。其中,col1表示Write1对应的Cache Line的8个数据块中第一个数据块对应的列地址,D1表示该第一个数据块对应的数据……以此类推。
需要说明的是,上述实施例中是以Write1和Write3两个写命令合并、该可合并的两个写命令Write1对应的Cache Line和Write2的对应的Cache Line的变化数据的数量和为BL为例对本发明进行详细阐述,然而,本发明并不以此为限,在其他可能的实施方式中,也可以是多个写命令的合并,例如,当Write1对应的Cache Line和Write3的对应的Cache Line的变化数据的数量和小于BL时,可从命令队列中选择其他可合并的写命令。另外,若命令队列中所有可合并的写命令对应的Cache Line的变化数据块之和小于BL,此时,依旧进行BL次的突发写,该BL次突发写的某几个时钟周期或时钟周期的某几拍空闲。另外,图5中,仅示出了动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)的3个内存时钟(internal CK),而实际上共有8个。
图6为本发明内存***的结构示意图,是与本发明图1实施例对应的装置实施例,具体实现过程在此不再赘述。具体的,本实施例提供的内存***100至少包括内存控制器10与内存设备11。
具体的,内存控制器10用于接收高速缓存发送的变化信息,变化信息为高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块后,生成的指示各数据块上的数据是否发生变化的信息;根据变化信息,对于变化信息指示的未发生数据变化的各非变化数据块,不向内存设备发送各非变化数据块对应的列地址和各非变化数据块对应的数据;对于变化信息指示的发生数据变化的各变化数据块,向内存设备发送各变化数据块对应的列地址和各变化数据块对应的数据;
内存设备11用于根据各变化数据块对应的列地址和各变化数据块对应的数据,对各变化数据块进行突发长度的数据写入,突发长度与至少一个数据块的数据块数量相等。
进一步的,内存控制器10用于若第一待写入Cache Line的变化数据块的数量与突发长度相等,则向内存设备10发送各变化数据块对应的列地址和各变化数据块对应的数据。
内存设备11用于根据各列地址,对第一待写入Cache Line的各变化数据块进行突发长度的数据写入。
进一步的,内存控制器10用于若第一待写入Cache Line的变化数据块的数量小于突发长度,则将第一待写入Cache Line的各变化数据块,以及至少一个第二待写入Cache Line的变化数据块对应的列地址与数据发送至内存设备11,至少一个第二待写入Cache Line的变化数据块与第一待写入Cache Line的变化数据块之和小于等于突发长度;
内存设备11用于根据第一待写入Cache Line的各列地址,以及至少一个第二待写入Cache Line的各列地址,对第一待写入Cache Line的各变化数据块,以及至少一个第二待写入Cache Line的各变化数据块,进行突发长度的数据写入,第二待写入Cache Line为LLC中除第一待写入Cache Line之外的待写入Cache Line。
进一步的,第一待写入Cache Line与至少一个第二待写入Cache Line属于同一个存储组Bank的相同行,且LLC中没有对相同行的读命令。
进一步的,内存设备11上设置有突发长度数量的列地址缓存与突发长度数量的列译码器,对于每一变化数据块,采用独立的列地址缓存与列译码器进行数据写入。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据写入方法,适用于至少包括内存控制器与内存设备的内存***,其特征在于,包括:
所述内存控制器接收高速缓存发送的变化信息,所述变化信息为所述高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块后,生成的指示各所述数据块上的数据是否发生变化的信息;
所述内存控制器根据所述变化信息,对于所述变化信息指示的未发生数据变化的各非变化数据块,不向所述内存设备发送各所述非变化数据块对应的列地址和各所述非变化数据块对应的数据;对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,所述突发长度与所述至少一个数据块的数据块数量相等。
2.根据权利要求1所述的方法,其特征在于,所述对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据,包括:
若所述第一待写入Cache Line的所述变化数据块的数量与所述突发长度相等,则所述内存控制器向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,包括:
所述内存设备根据各所述列地址和各所述变化数据块对应的数据,对所述第一待写入Cache Line的各变化数据块进行所述突发长度的数据写入。
3.根据权利要求1所述的方法,其特征在于,所述对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据,包括:
若所述第一待写入Cache Line的所述变化数据块的数量小于所述突发长度,则将所述第一待写入Cache Line的各变化数据块,以及至少一个第二待写入Cache Line的变化数据块对应的列地址与数据发送至所述内存设备,所述至少一个第二待写入Cache Line的变化数据块与所述第一待写入CacheLine的变化数据块的数量之和小于等于所述突发长度;
所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,包括:
所述内存设备根据所述第一待写入Cache Line的各列地址,以及所述至少一个第二待写入Cache Line的各列地址,对所述第一待写入Cache Line的各变化数据块,以及所述至少一个第二待写入Cache Line的各变化数据块,进行所述突发长度的数据写入,所述第二待写入Cache Line为所述LLC中除所述第一待写入Cache Line之外的待写入Cache Line。
4.根据权利要求3所述的方法,其特征在于,所述第一待写入Cache Line与所述至少一个第二待写入Cache Line属于同一个存储组Bank的相同行,且所述LLC中没有对所述相同行的读命令。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述内存设备根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,包括:
所述内存设备上设置有所述突发长度数量的列地址缓存与所述突发长度数量的列译码器,对于每一所述变化数据块,采用独立的列地址缓存与列译码器进行数据写入。
6.一种内存***,至少包括内存控制器与内存设备,其特征在于,包括:
所述内存控制器用于接收高速缓存发送的变化信息,所述变化信息为所述高速缓存将最后一级缓存LLC的第一待写入高速缓存条Cache Line划分为至少一个数据块后,生成的指示各所述数据块上的数据是否发生变化的信息;根据所述变化信息,对于所述变化信息指示的未发生数据变化的各非变化数据块,不向所述内存设备发送各所述非变化数据块对应的列地址和各所述非变化数据块对应的数据;对于所述变化信息指示的发生数据变化的各变化数据块,向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备用于根据各所述变化数据块对应的列地址和各所述变化数据块对应的数据,对各所述变化数据块进行突发长度的数据写入,所述突发长度与所述至少一个数据块的数据块数量相等。
7.根据权利要求6所述的内存***,其特征在于,所述内存控制器用于若所述第一待写入Cache Line的所述变化数据块的数量与所述突发长度相等,则所述内存控制器向所述内存设备发送各所述变化数据块对应的列地址和各所述变化数据块对应的数据;
所述内存设备用于根据各所述列地址和各所述变化数据块对应的数据,对所述第一待写入Cache Line的各变化数据块进行所述突发长度的数据写入。
8.根据权利要求6所述的内存***,其特征在于,所述内存控制器用于若所述第一待写入Cache Line的所述变化数据块的数量小于突发长度,则将所述第一待写入Cache Line的各变化数据块,以及至少一个第二待写入CacheLine的变化数据块对应的列地址与数据发送至所述内存设备,所述至少一个第二待写入Cache Line的变化数据块与所述第一待写入Cache Line的变化数据块的数量之和小于等于所述突发长度;
所述内存设备用于根据所述第一待写入Cache Line的各列地址,以及所述至少一个第二待写入Cache Line的各列地址,对所述第一待写入Cache Line的各变化数据块,以及所述至少一个第二待写入Cache Line的各变化数据块,进行所述突发长度的数据写入,所述第二待写入Cache Line为所述LLC中除所述第一待写入Cache Line之外的待写入Cache Line。
9.根据权利要求8所述的内存***,其特征在于,所述第一待写入CacheLine与所述至少一个第二待写入Cache Line属于同一个存储组Bank的相同行,且所述LLC中没有对所述相同行的读命令。
10.根据权利要求6~9任一项所述的内存***,其特征在于,所述内存设备上设置有所述突发长度数量的列地址缓存与所述突发长度数量的列译码器,对于每一所述变化数据块,采用独立的列地址缓存与列译码器进行数据写入。
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667673.6A CN107577614B (zh) | 2013-06-29 | 2013-06-29 | 数据写入方法及内存*** |
CN201310270239.6A CN104252420B (zh) | 2013-06-29 | 2013-06-29 | 数据写入方法及内存*** |
JP2016522212A JP6159478B2 (ja) | 2013-06-29 | 2014-06-17 | データ書き込み方法及びメモリシステム |
AU2014301874A AU2014301874B2 (en) | 2013-06-29 | 2014-06-17 | Data writing method and memory system |
RU2016102771A RU2621611C1 (ru) | 2013-06-29 | 2014-06-17 | Способ записи данных и система памяти |
PCT/CN2014/080073 WO2014206220A1 (zh) | 2013-06-29 | 2014-06-17 | 数据写入方法及内存*** |
BR112015031803A BR112015031803A2 (pt) | 2013-06-29 | 2014-06-17 | método de gravação de dados e sistema de memória |
KR1020157036978A KR101785189B1 (ko) | 2013-06-29 | 2014-06-17 | 데이터 기입 방법 및 메모리 시스템 |
EP14818249.6A EP2998867B1 (en) | 2013-06-29 | 2014-06-17 | Data writing method and memory system |
US14/982,353 US20160110286A1 (en) | 2013-06-29 | 2015-12-29 | Data writing method and memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310270239.6A CN104252420B (zh) | 2013-06-29 | 2013-06-29 | 数据写入方法及内存*** |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710667673.6A Division CN107577614B (zh) | 2013-06-29 | 2013-06-29 | 数据写入方法及内存*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104252420A true CN104252420A (zh) | 2014-12-31 |
CN104252420B CN104252420B (zh) | 2017-08-29 |
Family
ID=52141031
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310270239.6A Active CN104252420B (zh) | 2013-06-29 | 2013-06-29 | 数据写入方法及内存*** |
CN201710667673.6A Active CN107577614B (zh) | 2013-06-29 | 2013-06-29 | 数据写入方法及内存*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710667673.6A Active CN107577614B (zh) | 2013-06-29 | 2013-06-29 | 数据写入方法及内存*** |
Country Status (9)
Country | Link |
---|---|
US (1) | US20160110286A1 (zh) |
EP (1) | EP2998867B1 (zh) |
JP (1) | JP6159478B2 (zh) |
KR (1) | KR101785189B1 (zh) |
CN (2) | CN104252420B (zh) |
AU (1) | AU2014301874B2 (zh) |
BR (1) | BR112015031803A2 (zh) |
RU (1) | RU2621611C1 (zh) |
WO (1) | WO2014206220A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324982A (zh) * | 2017-07-31 | 2019-02-12 | 上海华为技术有限公司 | 一种数据处理方法以及数据处理装置 |
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN113918508A (zh) * | 2021-12-15 | 2022-01-11 | 苏州浪潮智能科技有限公司 | 一种缓存加速方法、装置、设备及可读存储介质 |
WO2023115319A1 (zh) * | 2021-12-21 | 2023-06-29 | 华为技术有限公司 | 一种数据存储方法、存储装置及设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210200695A1 (en) * | 2019-12-27 | 2021-07-01 | Advanced Micro Devices, Inc. | Staging memory access requests |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174846A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Nonvolatile Memory With Write Cache Having Flush/Eviction Methods |
CN102012850A (zh) * | 2010-12-09 | 2011-04-13 | 首都师范大学 | 基于硬件监视和微包协议的关键数据恢复方法 |
US20110087845A1 (en) * | 2009-10-14 | 2011-04-14 | Doug Burger | Burst-based cache dead block prediction |
CN102662992A (zh) * | 2012-03-14 | 2012-09-12 | 北京搜狐新媒体信息技术有限公司 | 一种海量小文件的存储、访问方法及装置 |
CN102725741A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 高速缓冲存储器控制方法、装置和*** |
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02113353A (ja) * | 1988-10-24 | 1990-04-25 | Hitachi Ltd | 半導体メモリ |
JPH03164849A (ja) * | 1989-11-22 | 1991-07-16 | Matsushita Electric Ind Co Ltd | マイクロプロセッサおよびマイクロプロセッサシステム |
RU2010318C1 (ru) * | 1991-10-28 | 1994-03-30 | Институт точной механики и вычислительной техники им.С.А.Лебедева РАН | Устройство управления памятью |
JPH05282208A (ja) * | 1992-04-03 | 1993-10-29 | Hitachi Ltd | キャッシュメモリ制御方式 |
US5459842A (en) * | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
EP0683457A1 (en) * | 1994-05-20 | 1995-11-22 | Advanced Micro Devices, Inc. | A computer system including a snoop control circuit |
JP3204295B2 (ja) * | 1997-03-31 | 2001-09-04 | 日本電気株式会社 | キャッシュメモリシステム |
US6658533B1 (en) * | 2000-09-21 | 2003-12-02 | Intel Corporation | Method and apparatus for write cache flush and fill mechanisms |
JP2004246754A (ja) * | 2003-02-17 | 2004-09-02 | Renesas Technology Corp | 半導体記憶装置およびその制御装置 |
US7555610B2 (en) * | 2003-11-18 | 2009-06-30 | Panasonic Corporation | Cache memory and control method thereof |
DE602004016972D1 (de) * | 2004-06-16 | 2008-11-20 | Freescale Semiconductor Inc | Datum-Pufferspeichersystem |
KR100575004B1 (ko) * | 2005-01-15 | 2006-04-28 | 삼성전자주식회사 | 버스트 동작이 가능한 에스램 메모리 장치 |
KR101443231B1 (ko) * | 2007-11-27 | 2014-09-19 | 삼성전자주식회사 | 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템 |
US8001331B2 (en) * | 2008-04-17 | 2011-08-16 | Arm Limited | Efficiency of cache memory operations |
US8924652B2 (en) * | 2009-11-23 | 2014-12-30 | Marvell Israel (M.I.S.L.) Ltd. | Simultaneous eviction and cleaning operations in a cache |
CN102135941B (zh) * | 2010-08-26 | 2013-09-11 | 华为技术有限公司 | 从缓存写数据到内存的方法和装置 |
RU2487398C1 (ru) * | 2011-12-13 | 2013-07-10 | Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" | Способ формирования виртуальной памяти и устройство для его реализации |
CN110275840B (zh) * | 2014-02-23 | 2024-03-15 | 拉姆伯斯公司 | 在存储器接口上的分布式过程执行和文件*** |
-
2013
- 2013-06-29 CN CN201310270239.6A patent/CN104252420B/zh active Active
- 2013-06-29 CN CN201710667673.6A patent/CN107577614B/zh active Active
-
2014
- 2014-06-17 WO PCT/CN2014/080073 patent/WO2014206220A1/zh active Application Filing
- 2014-06-17 BR BR112015031803A patent/BR112015031803A2/pt not_active IP Right Cessation
- 2014-06-17 RU RU2016102771A patent/RU2621611C1/ru active
- 2014-06-17 EP EP14818249.6A patent/EP2998867B1/en active Active
- 2014-06-17 JP JP2016522212A patent/JP6159478B2/ja active Active
- 2014-06-17 KR KR1020157036978A patent/KR101785189B1/ko active IP Right Grant
- 2014-06-17 AU AU2014301874A patent/AU2014301874B2/en active Active
-
2015
- 2015-12-29 US US14/982,353 patent/US20160110286A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174846A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Nonvolatile Memory With Write Cache Having Flush/Eviction Methods |
US20110087845A1 (en) * | 2009-10-14 | 2011-04-14 | Doug Burger | Burst-based cache dead block prediction |
CN102012850A (zh) * | 2010-12-09 | 2011-04-13 | 首都师范大学 | 基于硬件监视和微包协议的关键数据恢复方法 |
CN102725741A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 高速缓冲存储器控制方法、装置和*** |
CN102662992A (zh) * | 2012-03-14 | 2012-09-12 | 北京搜狐新媒体信息技术有限公司 | 一种海量小文件的存储、访问方法及装置 |
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN111857822B (zh) * | 2016-08-05 | 2024-04-05 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN109324982A (zh) * | 2017-07-31 | 2019-02-12 | 上海华为技术有限公司 | 一种数据处理方法以及数据处理装置 |
CN113918508A (zh) * | 2021-12-15 | 2022-01-11 | 苏州浪潮智能科技有限公司 | 一种缓存加速方法、装置、设备及可读存储介质 |
WO2023115319A1 (zh) * | 2021-12-21 | 2023-06-29 | 华为技术有限公司 | 一种数据存储方法、存储装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20160110286A1 (en) | 2016-04-21 |
CN107577614B (zh) | 2020-10-16 |
EP2998867B1 (en) | 2019-09-18 |
KR20160014053A (ko) | 2016-02-05 |
JP6159478B2 (ja) | 2017-07-05 |
JP2016524251A (ja) | 2016-08-12 |
CN107577614A (zh) | 2018-01-12 |
RU2621611C1 (ru) | 2017-06-06 |
CN104252420B (zh) | 2017-08-29 |
AU2014301874B2 (en) | 2017-05-04 |
KR101785189B1 (ko) | 2017-10-12 |
AU2014301874A1 (en) | 2016-01-21 |
EP2998867A1 (en) | 2016-03-23 |
EP2998867A4 (en) | 2016-07-06 |
BR112015031803A2 (pt) | 2017-07-25 |
WO2014206220A1 (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043541B2 (en) | Storage control device, storage device, and control method for controlling storage control device | |
US20190042413A1 (en) | Method and apparatus to provide predictable read latency for a storage device | |
CN104252420A (zh) | 数据写入方法及内存*** | |
CN102682012A (zh) | 一种文件***内读写数据的方法及装置 | |
US9411519B2 (en) | Implementing enhanced performance flash memory devices | |
US20150081953A1 (en) | Ssd (solid state drive) device | |
CN105518784A (zh) | 具有用于高可靠性操作的存储控制器的数据处理器和方法 | |
TWI403897B (zh) | 記憶裝置及其資料管理方法 | |
TWI579689B (zh) | 資料備份系統 | |
US9519541B2 (en) | Data storage device and data checking and correction for volatile memory | |
US10157123B1 (en) | Methods and apparatus for a scheduler for memory access | |
CN102789422B (zh) | 固态硬盘的数据写入方法 | |
CN104035886B (zh) | 磁盘重映射方法、装置及电子设备 | |
CN103246615A (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
CN102063271B (zh) | 一种磁盘外置Cache基于状态机的写回方法 | |
KR20090098275A (ko) | 플래시 메모리 시스템 | |
CN104778015A (zh) | 一种磁盘阵列性能优化方法及*** | |
CN105335296A (zh) | 一种数据处理方法、装置及*** | |
CN105205017A (zh) | 一种基于pcie ssd的存储控制器 | |
CN104317750B (zh) | 一种可自主堆叠连接的存储介质结构 | |
US20230350809A1 (en) | Memory device including address table and operating method for memory controller | |
US11594268B2 (en) | Memory device deserializer circuit with a reduced form factor | |
WO2024031734A1 (zh) | 数据写入方法、存储装置及计算机可读存储装置 | |
JP2016154031A (ja) | Ssd(ソリッドステートドライブ)装置 | |
KR20170042522A (ko) | 비식별 요청을 처리하는 저장 장치 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |