CN105094694B - 存储控制器和操作存储控制器的方法 - Google Patents
存储控制器和操作存储控制器的方法 Download PDFInfo
- Publication number
- CN105094694B CN105094694B CN201510257225.XA CN201510257225A CN105094694B CN 105094694 B CN105094694 B CN 105094694B CN 201510257225 A CN201510257225 A CN 201510257225A CN 105094694 B CN105094694 B CN 105094694B
- Authority
- CN
- China
- Prior art keywords
- data
- access
- group
- fetch
- coexistence
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- 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/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
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 Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种存储控制器和一种操作存储控制器的方法,所述存储控制器包括:共存取模式挖掘单元,被构造成检测在特定的持续时间期间共存取的数据的共存取模式,并产生包括符合该共存取模式的多个数据的共存取组。所述存储控制器还包括:共存取组匹配单元,被构造成在产生的共存取组中选择与请求读取的数据匹配的共存取组;数据定位单元,被构造成在预取缓冲器中存储被选择的共存取组中包括的数据。
Description
要求于2014年5月20日在韩国知识产权局提交的第10-2014-0060411号韩国专利申请的优先权和所有权益,该申请的全部内容通过引用全部包含于此。
技术领域
这里描述的本发明构思涉及存储(存储器)控制器并涉及操作存储控制器的方法。
背景技术
在向存储装置输入数据和从存储装置输出数据时,可以执行预取过程,从而减少输入/输出(I/O)时间并改善I/O性能。例如,当I/O操作期间从存储装置存取编址的数据时,可以预取存储装置中的邻近于编址的数据的数据,并将该数据加载在存储装置(例如,缓冲存储器)中。由于预取的数据在存储装置中极为靠近编址的数据,因此预期在后续的IO操作中存取该预读取的数据,所以进行上述操作。如果在后续的I/O操作中确实存取了预取的数据,则由于能够通过缓冲存储器存取而不需要通过存储装置恢复,因此能够相对快速地读取。
发明内容
根据本发明构思的一个方面,提供了一种存储控制器,所述存储控制器包括:共存取模式挖掘单元,检测在特定的持续时间期间共存取的数据的共存取模式,并产生包括符合该共存取模式的多个数据的共存取组;共存取组匹配单元,在产生的共存取组中选择与请求读取的数据匹配的共存取组;以及数据定位单元,在预取缓冲器中存储被选择的共存取组中包括的数据。
根据本发明构思的另一方面,提供了一种存储控制器,所述存储控制器包括:共存取模式挖掘单元,检测在特定的持续时间期间共存取的数据的共存取模式并产生包括符合该共存取模式的多个数据;以及共存取组优化单元,执行优化以减少产生的共存取组的个数。
根据本发明构思的又一方面,提供了一种操作存储控制器的方法,所述方法包括:检测在特定的持续时间期间共存取的数据的共存取模式;产生包括符合该共存取模式的多个数据的共存取组;在产生的共存取组中选择与请求读取的数据匹配的共存取组;以及在预取缓冲器中存取在被选择的共存取组中包括的数据。
附图说明
通过下面参照附图的详细描述,本发明构思的上述和其他方面和特征将变得清楚,在附图中:
图1是在解释根据本发明构思的实施例的存储系统时供参考的示意图;
图2是在解释根据本发明构思的实施例的存储控制器时供参考的示意图;
图3是在解释图2中示出的共存取分析单元时供参考的示意图;
图4和图5是用于解释检测数据的共存取模式的实施例的示意图;
图6是在解释根据图4中示出的实施例的存储控制器的操作时供参考的示意图;
图7是在解释检测数据的共存取模式的另一实施例时供参考的示意图;
图8是在解释根据图7中示出的实施例的存储控制器的操作时供参考的示意图;
图9是在解释根据本发明构思的实施例的存储控制器所使用的共存取组记录时供参考的示意图;
图10和图11是用于解释示出通过根据本发明构思的实施例的存储控制器的操作方法来匹配的共存取模式的实施例的示意图;
图12是在解释根据本发明构思的另一实施例的存储控制器的共存取分析单元时供参考的示意图;
图13是在解释共存取组优化单元时供参考的示意图;
图14和图15是在解释图12中示出的共存取组优化单元的操作时供参考的示意图;
图16是在解释根据本发明构思的另一实施例的存储控制器所使用的共存取组记录时供参考的示意图;
图17是在解释利用TOP向量阵列执行聚类操作时供参考的示意图;
图18是在解释根据本发明构思的实施例的存储控制器的操作方法时供参考的示意图;
图19是在解释根据本发明构思的另一实施例的存储控制器的操作方法时供参考的示意图;
图20是在解释根据本发明构思的又一实施例的存储控制器的操作方法时供参考的示意图。
具体实施方式
通过参照下面优选的实施例和附图的详细描述,将理解本发明构思的方面和特征以及完成本发明构思的方法。然而,本发明构思可以以许多不同的形式来实现,并且不应被解释为限制于这里阐述的实施例。相反,提供这些实施例,使得本公开将是彻底的和完整的,并且这些实施例将把本发明构思充分地传达给本领域技术人员,本发明构思将通过权利要求而不是公开的实施例来限定。在整个公开内容中同样的附图标号表示同样的元件。
这里使用的术语仅出于描述具体实施例的目的,并不意图限制本发明构思。除非上下文另外明确指出,否则如这里所使用的单数形式也意图包括复数形式。还将理解的是,术语“包含”和/或“包括”用在本说明书中时说明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除一个或更多个其他特征、整体、步骤、操作、元件、组件和/或它们的组的存在或添加。
将理解的是,当元件或层被称为“在”另一元件或层“上”、“连接到”或“结合到”另一元件或层上时,该元件或层可以直接在所述另一元件或层上,连接到或结合到所述另一元件或层,或者可以存在中间元件或层。相反,当元件被称为“直接在”另一元件或层“上”、“直接连接到”或“直接结合到”另一元件或层上时,则不存在中间元件或层。如这里使用的,术语“和/或”包括一个或更多个相关所列项的任意和所有组合。
将理解的是,尽管在这里可使用术语第一、第二等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用来将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开。因此,在不脱离本发明构思的教导的情况下,下面讨论的第一元件、组件、区域、层或部分可被命名为第二元件、组件、区域、层或部分。
为了易于描述,可以在这里使用诸如“在……之下”、“在……下方”、“下面的”、“在……上方”、和“上面的”等空间相对术语,以描述如附图中示出的一个元件或特征与其他元件或特征的关系。将理解的是,除了附图中描绘的方位之外,空间相对术语还意在包含装置在使用或操作中的不同方位。例如,如果将附图中的装置翻转,则被描述为“在”其他元件或特征“下方”或“之下”的元件将随后位于其他元件或特征“上方”。因此,示例性术语“在……下方”可包含在……上方和在……下方两种方位。该装置可被另外定位(旋转90度或在其它方位)并相应地解释这里使用的空间相对描述符。
在这里参照作为理想化的实施例(和中间结构)的示意性视图的剖视图来描述实施例。这样,预计将出现例如由制造技术和/或公差引起的示出的形状的变化。因此,这些实施例不应被解释为局限于这里示出的区域的特定形状,而是将包括例如由制造所造成的形状上的偏差。例如,示出为矩形的注入区将通常在其边缘具有圆形或弯曲的特征和/或注入浓度的梯度,而不是从注入区到非注入区的二元变化。同样,通过注入形成的埋置区可导致在埋置区和通过其发生注入的表面之间的区域中出现一定程度的注入。因而,附图中示出的区域实质上是示意性的,它们的形状并不意图示出装置的区域的实际的形状,也不意图限制本发明构思的范围。
除非另外定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本发明构思所属的领域中的普通技术人员所通常理解的意思相同的意思。还将理解的是,除非这里明确这样定义,否则术语(例如在通用的词典中定义的术语)应被解释为具有与相关领域的环境中它们的意思相一致的意思,而将不以理想的或过于正式的含义来解释它们的意思。
作为本发明所属领域中的惯例,按照功能块和单元描述并示出了实施例。本发明构思所属领域的技术人员将理解的是,这些块和单元通过诸如逻辑电路等的可以通过固件和/或软件来驱动的电子电路来物理实现。另外,实施例的每个功能块和单元可以被物理地分成两个或更多个相互作用且分立的块或单元。此外,在不脱离本发明构思的范围的情况下,实施例的功能块和单元可以被物理地组合成更多个复杂的块或单元。
图1是在解释根据本发明构思的实施例的存储系统时供参考的示意图。
参照图1,根据本发明构思的实施例的存储系统1包括存储(或存储器)控制器100、存储阵列200和预取缓冲器300。
存储控制器100通常根据从主机系统接收到的I/O请求来控制存储系统1的操作并执行数据I/O操作。例如,响应于从主机系统接收到的读取数据的I/O请求,存储控制器100可以读取存储在存储系统1中的数据,并响应于主机系统传输读取到的数据。响应于从主机系统接收到的写入数据的I/O请求,存储控制器100可以在存储系统1中存储从主机系统接收到的数据。
存储阵列200存储数据。在本发明构思的一些实施例中,存储阵列200可以包括一个或更多个存储装置。例如,存储阵列200可以包括硬盘驱动器(HDD)和固态硬盘(SSD)中的至少一个。所述一个或更多个存储装置可以彼此电连接,以构成存储阵列。
预取缓冲器300在存储控制器100和存储阵列200之间用作缓冲器。详细地讲,预取缓冲器300可以存储通过存储控制器100输入的各种指令或参数。另外,预取缓冲器300可以存储参数、变量以及输入到存储阵列200的数据或者从存储阵列200输出的数据。在发明构思的一些实施例中,为了读取请求读取的数据,存储控制器100可以搜索预取缓冲器300。如果在预取缓冲器300中存在请求读取的数据,则存储控制器100可以从预取缓冲器300恢复数据以向读取请求传输响应。
可选择地,如果预取缓冲器300中不存在请求读取的数据,则存储控制器100可以搜索存储阵列200,并且可以从存储阵列200恢复数据以向读取请求传输响应。在本发明构思的一些实施例中,预取缓冲器300的I/O速率(即,写入/读取操作速度)可以比存储阵列200的I/O速率高。此外,在本发明构思的一些实施例中,预取缓冲器300可以包括诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或双倍数据速率同步DRAM(DDRSDRAM)的易失性存储器或者诸如闪存的非易失性存储器。
图2是在解释根据本发明构思的实施例的存储控制器时供参考的示意图。
参照图2,根据本发明构思的实施例的存储控制器100包括处理器110、共存取分析单元120、I/O接口130、存储接口140和缓冲器接口150。
处理器110可以由电路、逻辑器件、软件/固件代码或者它们的组合来实现,并且通常控制包括存储控制器100的存储系统1的操作。如果电力施加到存储系统1,则处理器110驱动用于操作存储系统1的软件(例如,固件),从而控制存储系统1的整体操作。另外,处理器110可以解释通过I/O接口130接受到的指令,并且可以控制存储阵列200的整体操作。另外,处理器110可以利用地址映射表将数据的逻辑地址映射到物理地址。
共存取分析单元120分析在特定的持续时间期间共存取的数据的共存取模式。另外,共存取分析单元120检测在特定的持续时间期间(例如,1秒)共存取的数据,并产生包括所述数据的共存取组。
当对共存取组中的一个数据具有读取请求时,共存取分析单元120将与被读取请求的数据构成共存取组的其它数据储存到预取缓冲器300中。换言之,共存取分析单元120预计将会有对与被读取请求的数据构成共存取组的其它数据的读取请求,并执行预取操作。在本发明构思的一些实施例中,可以不仅以硬件而且以软件实现共存取分析单元120。例如,共存取分析单元120可以以包括场可编程门阵列(FPGA)、专用集成电路(ASIC)和通用计算机图形处理单元(GPGPU)的硬件来实现。
作为另一示例,共存取分析单元120可以以包括在存储控制器100上驱动的固件和在主机系统上驱动的应用程序的软件来实现。
I/O接口130可以在包括存储控制器100的存储系统1和主机系统之间执行接合。具体地,I/O接口130可以从主机系统接收读取请求以向处理器110提供接收到的读取请求,并且可以向主机系统传输读取请求的响应。在本发明构思的一些实施例中,I/O接口130可以根据预定的协议向主机系统传输数据/从主机系统接收数据。例如,预定的协议可以是通用串行总线(USB)、小型计算机系统接口(SCSI)、外设部件互连(PCI)、ATA、并行ATA(PATA)、串行ATA(SATA)、串列SCSI(SAS)、PCI快速(PCIe)等,但是不限于此。
存储接口140可以在存储控制器100和存储阵列200之间传输/接收数据。处理器110需要的指令可以通过存储接口140提供给存储阵列200,数据可以从存储控制器100传输到存储阵列200。另外,从存储阵列200输出的数据可以通过存储接口140提供给存储控制器100。
缓冲器接口150可以在存储控制器100和预取缓冲器300之间发送/接收数据。处理器110需要的指令可以通过缓冲器接口150提供给预取缓冲器300。另外,数据可以从存储控制器100传输到预取缓冲器300。此外,从预取缓冲器300输出的数据可以通过缓冲器接口150提供到存储控制器100。
在本发明构思的一些实施例中,处理器110、共存取分析单元120、I/O接口130、存储接口140和缓冲器接口150可以通过系统总线彼此电连接。
图3是在解释图2中示出的共存取分析单元时供参考的示意图。
参照图3,在图2中示出的共存取分析单元120可以包括I/O请求解析单元121、共存取模式挖掘单元(共存取pattern mining unit)123、共存取组匹配单元125、共存取组数据库127和数据定位单元128。
I/O请求解析单元121可以对通过I/O接口130接收到的I/O请求进行解析,并且可以向共存取模式挖掘单元123或共存取组匹配单元125提供解析的I/O请求。例如,I/O请求解析单元121可以通过I/O接口130接收I/O请求的流。I/O请求解析单元121可以辨别包括在I/O请求的流中的每个中的I/O请求。在本发明构思的一些实施例中,I/O请求解析单元121可以向共存取模式挖掘单元123提供关于产生所辨别的I/O请求的时间点以及所辨别的I/O请求和与所辨别的I/O请求相关的数据的地址的信息,从而允许共存取模式挖掘单元123检测共存取模式。
同时,在本发明构思的一些实施例中,I/O请求解析单元121可以向共存取组匹配单元125提供所辨别的I/O请求,从而利用与所辨别的I/O请求相关的数据使共存取组匹配单元125匹配共存取组。
共存取模式挖掘单元123可以检测在特定的持续时间期间共存取的数据的共存取模式,并且可以产生包括符合该共存取模式的多个数据的共存取组。
详细地讲,共存取模式挖掘单元123可以基于特定的持续时间(例如,1秒)期间重复地检测随时间的流逝共存取的数据,并且可以将检测到的数据识别为共存取模式。其后,共存取模式挖掘单元123可以产生包括形成检测到的共存取模式的多个数据的共存取组。
在本发明构思的一些实施例中,可以在随着时间的流逝产生许多I/O请求的I/O请求流中限定预定的时间窗口,共存取组中的多个数据被包括在时间窗口中,从而然后被共存取。随后将参照图4、图5和图7详细地描述确定共存取模式和共存取组的过程。
同时,在本发明构思的一些实施例中,为了产生共存取组,共存取模式挖掘单元123可以使用频繁项目集挖掘算法。例如,共存取模式挖掘单元123可以将Elcat算法、先验算法或FP-growth算法用作频繁项目集挖掘算法。
共存取组匹配单元125可以在通过共存取模式挖掘单元123产生的共存取组中选择与请求读取的数据匹配的共存取组。也就是说,共存取组匹配单元125使与从I/O请求解析单元121接收的I/O请求(例如,读取请求)相关的数据与由共存取模式挖掘单元123产生的共存取组匹配。在本发明构思的一些实施例中,共存取组数据库127可以存储由共存取模式挖掘单元123产生的共存取组,并且可以向共存取组匹配单元125提供存储的共存取组。
数据定位单元128可以从存储阵列200读取由共存取组匹配单元125选择的共存取组中包括的数据(即,与在该时间窗口中请求读取的数据共存取的数据),并且可以在预取缓冲器300中存储读取到的数据。
图4和图5是用于解释检测数据的共存取模式的实施例的示意图。
参照图4,图4中示出的数据D1至D8可以表示与I/O请求(即,读取请求)相关的数据或其地址。在本实施例中,随着时间的流逝数据已出现10次读取请求,并且用圆圈来标记根据读取请求存取的数据。例如,在持续时间t1中存取的数据包括数据D1、D2、D5和D8,在持续时间t2中存取的数据包括数据D3和D6,在持续时间t3中存取的数据包括数据D2和D7。根据本发明构思的各种实施例,持续时间t1至t10的长度可以通过存储控制器100的操作任意地设置。
共存取模式挖掘单元123检测在各个持续时间t1至t10中共存取的数据的共存取模式401。例如,由于在持续时间t1中共存取了数据D1、D2、D5和D8,并且在持续时间t4、t8和t10中共存取了数据D1、D2、D3、D5、D6和D8,因此共存取模式挖掘单元123可以将"{D1,D2,D5,D8}"检测为共存取模式401。如上所述,假设可以当存取构成一个共存取模式401的数据D1、D2、D5和D8中的一个数据(例如,D1)时执行对共存取模式401的检测,则还存取其他数据D2、D5和D8的可能性非常高。然后,共存取模式挖掘单元123产生包括符合共存取模式401的多个数据的共存取组。在本发明构思的一些实施例中,共存取组可以包括符合共存取模式401的多个数据的地址。
同样地,参照图5,由于在持续时间t2和t6中共存取数据D3和D6,并且在持续时间t4、t8和t10中共存取数据D1、D2、D3、D5和D8,因此共存取模式挖掘单元123可以将"{D3,D6}"检测为共存取模式403。其后,共存取模式挖掘单元123可以产生包括符合共存取模式403的多个数据的共存取组。
图6是在解释根据图4中示出的实施例的存储控制器的操作时供参考的示意图。
图6示出了其中产生符合如图4中示出的共存取模式401的"{D1,D2,D5,D8}"的共存取组的示例。在本实施例中,在接收到对数据D8的读取请求(S501)之后,存储控制器100向存储阵列200传输读取请求(S503)。如果存储阵列200根据读取请求读取数据D8,然后将读取到的数据D8传输到存储控制器100(S505),则作为对读取请求的响应,存储控制器100向例如主机系统传输数据D8(S507)。
同时,共存取组匹配单元125将由共存取模式挖掘单元123产生的共存取组中的与数据D8匹配的共存取组(即,符合"{D1,D2,D5,D8}"的共存取组)选择为共存取模式401。在本发明构思的一些实施例中,共存取组匹配单元125可以搜索共存取组数据库127,然后选择与数据D8匹配的共存取组。其后,数据定位单元128将包括在被选择的共存取组中的数据D1、D2和D5存储在预取缓冲器300中(S509)。在本发明构思的一些实施例中,可以在作为读取请求的响应而传输数据D8(S507)之后执行在预取缓冲器300中对数据D1、D2和D5的存储(S509)。
其后,如果存储控制器100接收到对数据D1、D2和D5的读取请求(S511),则存储控制器100搜索预取缓冲器300(S513)。由于请求读取的数据D1、D2和D5存在于预取缓冲器300中,因此存储控制器100读取存储在预取缓冲器300中的数据D1、D2和D5(S515),作为对读取请求的响应,数据D1、D2和D5被传输到例如主机系统(S517)。
图7是在解释检测数据的共存取模式的另一实施例时供参考的示意图。
参照图7,共存取模式挖掘单元123检测在持续时间t1至t10中共存取的数据的共存取模式405。在本实施例中,在持续时间t1中存取数据D1、D2和D8之后,在持续时间t3和t4中共存取数据D3、D5、D6和D7。同时,在持续时间t6中存取数据D1、D2和D5之后,在持续时间t8和t9中共存取数据D2、D3、D5、D6和D7。然后,在读取数据D1和D2之后,共存取模式挖掘单元123可以通过在时间差Td(例如,1秒)内检测数据D3、D5、D6和D7来检测模式。
换言之,共存取模式可以包括在特定的持续时间期间在第一持续时间(即,"t1")中共存取的数据(即,"{D1,D2}")的第一共存取子模式和在特定的持续时间期间在第二持续时间(即,"t2")中共存取的数据(即,"{D3,D5,D6,D7}")的第二共存取子模式,并且第一共存取子模式和第二共存取子模式可以在时间差Td内被存取。其后,当具有对符合第一共存取子模式的数据(即,数据D1和D2)的读取请求时,数据定位单元128可以在预取缓冲器300中存储符合第二共存取子模式的数据(即,数据D3、D5、D6和D7)。具体地,数据定位单元128可以在时间差Td内在预取缓冲器300中存储与第二共存取子模式适从的数据(即,数据D3、D5、D6和D7)。
图8是在解释根据图7中示出的实施例的存储控制器的操作时供参考的示意图。
图8示出了其中产生了符合图7中示出的共存取模式405的共存取组的示例。在本实施例中,在存储控制器100接收到对数据D1和D2的读取请求(S521)之后,读取请求被传输到存储阵列200(S523)。如果存储阵列200根据读取请求读取数据D1和D2,以将读取到的数据D1和D2传输到存储控制器100(S525),则作为对读取请求的响应,存储控制器100向例如主机系统传输数据D1和D2(S527)。
同时,共存取组匹配单元125在由共存取模式挖掘单元123产生的共存取组中选择与第一共存取子模式(即,"{D1,D2}")匹配的共存取组,即,符合第二共存取子模式(即,"{D3,D5,D6,D7}")的共存取组。其后,数据定位单元128将被选择的共存取组中包括的数据D3、D5、D6和D7存储在预取缓冲器300中(S529)。
其后,如果存储控制器100接收到对数据D5、D6和D7的读取请求(S531),则存储控制器100搜索预取缓冲器300(S533)。由于请求读取的数据D5、D6和D7存在于预取缓冲器300中,因此存储控制器100读取存储在预取缓冲器300中的数据D5、D6和D7(S535),并且作为对读取请求的响应,向例如主机系统传输数据D5、D6和D7(S537)。
另外,如果存储控制器100接收到对数据D3和D5的读取请求(S539),则存储控制器100搜索预取缓冲器300(S541)。由于请求读取的数据D3和D5也存在于预取缓冲器300中,因此存储控制器100读取存储在预取缓冲器300中的数据D3和D5(S543),并且作为对读取请求的响应,向例如主机系统传输数据D3和D5(S545)。
图9是在解释根据本发明构思的实施例的存储控制器所使用的共存取组记录时供参考的示意图。
如上所述,由共存取模式挖掘单元123产生的共存取组可以存储在共存取组数据库127中。参照图9,在本发明构思的一些实施例中,存储在共存取组数据库127中的共存取组记录410可以包括共存取组ID(CGID)411、共存取组出现频率(SV)413、共存取组长度(LEN)415、辅助场(AUX)417和共存取组地址列表(CG ADDR LIST)419。这里,共存取组出现频率(SV)413表示通过I/O请求每单位时间共存取的共存取组的出现频率。例如,如果某一共存取组的出现频率是0.035,则在I/O操作的1000个周期期间共存取组可以产生35次。
图10和图11是用于解释示出通过根据本发明构思的实施例的存储控制器的操作方法匹配的共存取模式的实施例的示意图。
参照图10,各个共存取组可以具有出现频率值。例如,共存取组ID为'1'的共存取组包括具有地址'A'、'B'、'C'和'G'的数据,并且具有'0.31'的出现频率值。另外,共存取组ID为'2'的组包括具有地址'A'、'B'、'D'和'E'的数据,并且具有'0.27'的出现频率值。
参照图11,如果例如产生图10中示出的共存取组,则位向量的阵列可以由各个共存取组中包括的数据的地址(作为竖直串)和共存取组ID(作为水平串)组成。例如,对于地址'B'的位向量为"{11101110}",并且具有地址'B'的数据被包括在具有1、2、3、5、6和7的共存取组ID的共存取组中。另外,对于地址'E'的位向量为"{01001101}",并且具有地址'E'的数据被包括在具有2、5、6和8的共存取组ID的共存取组中。
在本发明构思的一些实施例中,共存取组匹配单元125可以利用表示产生的共存取组的位向量(即,对于地址A至G的位向量)选择与请求读取的数据匹配的共存取组。例如,在具有对具有地址'B'的数据和具有地址'E'的数据的读取请求的情况下,为了确定与所述数据匹配的共存取组,可以对对于地址'B'的位向量"{11101110}"和对于地址'E'的位向量"{01001101}"执行AND操作。结果,可以得到掩码向量"{01001100}",这表明共存取组ID为'2','5'和'6'的共存取组与具有地址'B'的数据和具有地址'E'的数据同时匹配。
然而,如上所述,当具有与请求读取的数据匹配的多个共存取组时,共存取组匹配单元125可以选择多个共存取组中的每单位时间最频繁出现的共存取组。例如,如果共存取组ID为'5'和'6'的共存取组与请求读取的数据匹配,则可以选择具有较高的共存取组ID'5'的共存取组。
在本发明构思的一些实施例中,如果存在多个每单位时间最频繁出现的共存取组,则共存取组匹配单元125可以基于预取缓冲器300的状态来选择一个共存取组。例如,如果预取缓冲器300的允许空间与使用空间的比例大于或等于预定的临界值,则共存取组匹配单元125选择具有最大长度的共存取组。例如,如上所述,如果与请求读取的数据匹配的具有共存取组ID'5'和'6'的共存取组具有相同的出现频率时,则可以选择具有较长的长度的共存取组。同时,如果预取缓冲器300的允许空间与使用空间的比例小于预定的临界值,则共存取组匹配单元125选择具有最小的长度的共存取组。
同时,在本发明构思的一些实施例中,如果存在多个每单位时间最频繁出现的共存取组,则共存取组匹配单元125可以选择两个或更多个共存取组。例如,如上所述,如果与请求读取的数据匹配的具有共存取组ID'5'和'6'的共存取组具有相同的出现频率,则共存取组匹配单元125可以使这两个共存取组均被选择。因此,在这个示例中,由于共存取组ID为'5'的共存取组包括地址'A'、'B'、'E'和'F',并且共存取组ID为'6'的共存取组包括地址'A'、'B'、'C'、'D'和'E',则可以预取与地址'A'、'B'、'C'、'D'、E'和'F'对应的数据。
图12是在解释根据本发明构思的另一实施例的存储控制器的共存取分析单元时供参考的示意图,图13是在解释共存取组优化单元时供参考的示意图。
参照图12,在根据本发明构思的另一实施例的存储控制器100中,共存取分析单元120与图3中示出的共存取分析单元120的不同之处在于,除了I/O请求解析单元121、共存取模式挖掘单元123、共存取组匹配单元125和共存取组数据库127以外还包括共存取组优化单元129。共存取组优化单元129执行优化以减少由共存取模式挖掘单元123产生的共存取组的个数。详细地,共存取组优化单元129对共存取组数据库127中存储的共存取组进行分析并将在随时间的流逝时存取的共存取组合并到一个共存取组中,这将在后面参照图14和图15来更详细地描述。
参照图13,共存取组优化单元129可以包括聚类单元129a和共存取组合并单元129b。聚类单元129a使同时存取的共存取组聚类,共存取组合并单元129b使聚类的共存取组合并到一个共存取组中。
图14和图15是在解释图12中示出的共存取组优化单元的操作时供参考的示意图。
图14示出了关于时间段1至20存取12个共存取组CGID_01至CGID_12的时机。例如,在时间段2、6、10、13、17和20中存取共存取组CGID_01至CGID_03,在时间段4、6、12、17和20中存取共存取组CGID_04。如图14中所示,由于在相同的时间段2、6、10、13、17和20中存取3个共存取组CGID_01至CGID_03,因此可以将它们看作一个共存取组C_CGID_01。
图15示出了在同一时间段内存取的共存取组的合并结果。详细地讲,在时间段2、6、10、13、17和20中存取的共存取组CGID_01至CGID_03被合并成一个共存取组C_CGID_01,在时间段3、8、13、16和19中存取共存取组CGID_05、CGID_09、CGID_11和CGID_12被合并成一个共存取组C_CGID_03,在时间段1、7、13和19中存取的共存取组CGID_07和CGID_08被合并成一个共存取组C_CGID_05。
图16是在解释根据本发明构思的另一实施例的存储控制器所使用的共存取组记录时供参考的示意图。
共存取组优化单元129可以通过分析共存取组数据库127中存储的共存取组来执行优化,并且可以在共存取组数据库127中存储优化结果。参照图16,在根据本发明构思的一些实施例中,存储在共存取组数据库127中的共存取组记录410可以包括共存取组ID(CGID)411、共存取组出现频率(SV)413、共存取组长度(LEN)415、簇ID(CID)416、TOP向量418和共存取组地址列表(CG ADDR LIST)419。这里,簇ID 416是在被聚类之后分配给合并后的共存取组的ID,TOP向量418是表示共存取组的随时间出现模式的向量。
图17是在解释利用TOP向量阵列执行聚类操作时供参考的示意图。
聚类单元129a利用表示产生的共存取组的随时间出现模式的TOP向量418使同一持续时间中存取的共存取组聚类。图17示出了对于图14中示出的共存取组CGID_01至CGID_12的TOP向量TOP_VEC[1]至TOP_VEC[12]。参照图17,共存取组(CGID_01)的TOP向量TOP_VEC[1]是"01000100010010001001",共存取组(CGID_04)的TOP向量TOP_VEC[4]是"00010100000100001001",其均通过对随时间出现模式二进制编码来产生。因此,在TOP向量TOP_VEC[1]和TOP_VEC[4]的'1'的位置可以对应于在其每个中存取共存取组CGID_01的时间段2、6、10、13、17和20以及在其每个中存取共存取组CGID_04的时间段4、6、12、17和20。以这种方式,对于所有12个共存取组CGID_01至CGID_12可以产生各个TOP向量TOP_VEC[1]至TOP_VEC[12]。
在本发明构思的一些实施例中,可以利用“K-means”算法对产生的TOP向量TOP_VEC[1]至TOP_VEC[12]执行聚类。换言之,利用产生的TOP向量TOP_VEC[1]至TOP_VEC[12]用作K-means算法的输入值来执行聚类,直至得到最佳K值。结果,例如,分别将"{6,6,6,5,4,3,2,2,4,1,4,4}"作为簇ID分配给相应的TOP向量TOP_VEC[1]至TOP_VEC[12],TOP向量TOP_VEC[1]至TOP_VEC[3]可以变成具有ID'6'的簇。最后,可以从12个TOP向量TOP_VEC[1]至TOP_VEC[12]产生6个簇。
图18是在解释根据本发明构思的实施例的存储控制器的操作方法时供参考的示意图。
参照图18,根据本发明构思的实施例的存储控制器的操作方法包括接收I/O请求(例如,读取请求)(S601)并且然后检查请求读取的数据是否存在于预取缓冲器300(S603)中。如果请求读取的数据不存在于预取缓冲器300中,则提取存储在存储阵列200中的数据(S605)并且将与请求读取的数据相关的共存取的数据存储在预取缓冲器300中(S607)。同时,如果请求读取的数据存在于预取缓冲器300中,则提取存储在预取缓冲器300中的数据(S609)。
这里,在预取缓冲器300中存储与请求读取的数据相关的共存取数据的步骤(S607)可以包括:检测在特定的持续时间期间共存取的数据的共存取模式;产生包括符合该共存取模式的多个数据的共存取组;在产生的共存取组中选择与请求读取的数据匹配的共存取组;以及将包括在被选择的共存取组中的数据存储在预取缓冲器300中。
图19是在解释根据本发明构思的另一实施例的存储控制器的操作方法时供参考的示意图。
参照图19,根据本发明构思的另一实施例的存储控制器的操作方法包括从由包括在各个共存取组中的数据的作为竖直串的地址和作为水平串的共存取组ID构成的位向量的阵列提取第一位向量和第二位向量(S701)。接下来,对第一位向量和第二位向量执行AND操作(S703),然后提取候选的共存取组(S705)。如果提取多个候选的共存取组,则确定所述多个候选的共存取组中的一个共存取组(S709)。如参照图11所描述的,确定所述多个候选的共存取组中的共存取组的步骤(S709)可以包括选择每单位时间最频繁出现的共存取组或者基于预取缓冲器300的状态选择具有最长或最短长度的共存取组。
图20是在解释根据本发明构思的又一实施例的存储控制器的操作方法时供参考的示意图。
参照图20,根据本发明构思的又一实施例的存储控制器的操作方法包括提取共存取组的TOP信息(S801)并构成TOP向量阵列(S803)。通过对TOP向量阵列采用聚类算法(例如,K-means聚类)来使共存取组聚类(S805)。其后,合并与各个聚类的TOP向量相关的地址项目集(S809)以重建共存取组(S811)。
如上所述,根据本发明构思的各个实施例,可以利用通过分析随着时间流逝的I/O请求流的倾向得到的共存取组信息来执行预取操作。因此,关于随机的I/O操作以及顺序的I/O操作预取操作能够是有效的,从而最终使I/O效率最大化。另外,能够通过使共存取组信息聚类来节省共存取组数据库和存储空间,同时减少用于处理I/O指令的成本。
尽管已经参照本发明构思的示例性实施例具体地示出并描述了本发明构思,但是本领域普通技术人员将理解的是,在不脱离如权利要求所限定的本发明构思的精神和范围的情况下,可以在其中做出形式和细节上的各种改变。因此期望的是,在实施例在所有方面均被考虑为示意性的而不是限制性的,参照权利要求而不是前面的描述来表示本发明构思的范围。
Claims (25)
1.一种存储控制器,所述存储控制器包括:
共存取模式挖掘单元,被构造成检测在多个持续时间中的每个持续时间期间共存取的数据的共存取模式,并产生包括与在所述多个持续时间期间共存取的数据的共存取模式符合的多个数据的共存取组,其中,检测到的共存取模式与在所述多个持续时间中共存取的数据的顺序无关;
共存取组匹配单元,被构造成在产生的共存取组中选择与请求读取的数据匹配的共存取组;以及
数据定位单元,被构造成将被选择的共存取组中包括的数据存储到预取缓冲器中。
2.如权利要求1所述的存储控制器,其中,共存取组的所述多个数据在预定的时间窗口中与请求读取的数据共存取,并且在所述时间窗口中被共存取。
3.如权利要求2所述的存储控制器,其中,数据定位单元在时间窗口中将与请求读取的数据共存取的数据存储在预取缓冲器中。
4.如权利要求1所述的存储控制器,其中,共存取组匹配单元利用表示产生的共存取组的位向量来选择与请求读取的数据匹配的共存取组。
5.如权利要求1所述的存储控制器,其中,当具有与请求读取的数据匹配的多个共存取组时,共存取组匹配单元选择所述多个共存取组中的每单位时间最频繁出现的共存取组。
6.如权利要求5所述的存储控制器,其中,当具有多个每单位时间最频繁出现的共存取组时,共存取组匹配单元基于预取缓冲器的状态选择共存取组。
7.如权利要求6所述的存储控制器,其中,当预取缓冲器的允许空间与使用空间的比例大于或等于预定的临界值时,共存取组匹配单元选择具有最大长度的共存取组,并且当预取缓冲器的允许空间与使用空间的比例小于预定的临界值时,共存取组匹配单元选择具有最小长度的共存取组。
8.如权利要求5所述的存储控制器,其中,当具有多个每单位时间最频繁出现的共存取组时,共存取组匹配单元选择两个或更多个共存取组。
9.如权利要求1所述的存储控制器,其中,所述存储控制器还包括存储阵列,其中,数据定位单元向预取缓冲器传输存储在存储阵列中的被选择的共存取组中包括的数据。
10.如权利要求9所述的存储控制器,其中,预取缓冲器的输入/输出速率比存储阵列的输入/输出速率高。
11.如权利要求1所述的存储控制器,所述存储控制器还包括:输入/输出请求解析单元,被构造成解析接收到的输入/输出请求并向共存取模式挖掘单元或共存取组匹配单元提供解析的输入/输出请求。
12.如权利要求1所述的存储控制器,所述存储控制器还包括:共存取组数据库,被构造成存储由共存取模式挖掘单元产生的共存取组,并向共存取组匹配单元提供存储的共存取组。
13.如权利要求12所述的存储控制器,其中,存储在共存取组数据库中的共存取组记录包括共存取组的标识、出现频率和长度以及共存取组中包括的数据的地址列表。
14.如权利要求1所述的存储控制器,其中,共存取模式包括在所述多个持续时间的第一持续时间期间共存取的数据的第一共存取子模式和在所述多个持续时间的第二持续时间期间共存取的数据的第二共存取子模式,第一共存取子模式和第二共存取子模式以一段时间差被存取。
15.如权利要求14所述的存储控制器,其中,当对符合第一共存取子模式的数据具有读取请求时,数据定位单元在预取缓冲器中存储符合第二共存取子模式的数据。
16.如权利要求15所述的存储控制器,其中,数据定位单元在所述时间差内在预取缓冲器中存储符合第二共存取子模式的数据。
17.一种存储控制器,所述存储控制器包括:
共存取模式挖掘单元,被构造成检测在多个持续时间中的每个持续时间期间共存取的数据的共存取模式并产生包括与在所述多个持续时间期间共存储的数据的共存取模式符合的多个数据的共存取组,其中,检测到的共存取模式与在所述多个持续时间中共存取的数据的顺序无关;以及
共存取组优化单元,被构造成执行优化以减少产生的共存取组的个数。
18.如权利要求17所述的存储控制器,其中,共存取组优化单元包括:
聚类单元,被构造成使在同一时间存取的共存取组聚类;以及
共存取组合并单元,被构造成将被聚类的共存取组合并成一个共存取组。
19.如权利要求18所述的存储控制器,其中,聚类单元利用表示产生的共存取组的随时间出现模式的向量来使同一持续时间中存取的共存取组聚类。
20.如权利要求17所述的存储控制器,其中,所述存储控制器还包括:共存取组数据库,被构造成存储由共存取模式挖掘单元产生的共存取组,其中,共存取组优化单元对共存取组数据库中存储的共存取组执行优化。
21.如权利要求17所述的存储控制器,所述存储控制器还包括:
共存取组匹配单元,被构造成在产生的共存取组中选择与请求读取的数据匹配的共存取组;以及
数据定位单元,被构造成在预取缓冲器中存储被选择的共存取组中包括的数据。
22.一种操作存储控制器的方法,所述方法包括下述步骤:
检测在多个持续时间中的每个持续时间期间共存取的数据的共存取模式;
产生包括与在所述多个持续时间期间共存取的数据的共存取模式符合的多个数据的共存取组,其中,检测到的共存取模式与在所述多个持续时间中共存取的数据的顺序无关;
在产生的共存取组中选择与请求读取的数据匹配的共存取组;以及
在预取缓冲器中存储在被选择的共存取组中包括的数据。
23.如权利要求22所述的方法,其中,请求读取的数据包括第一数据和第二数据,当具有包括第一数据和第二数据中的一个的多个共存取组时,选择与请求读取的数据匹配的共存取组的步骤包括选择包括第一数据和第二数据中的两者的共存取数据组。
24.如权利要求22所述的方法,其中,在传输对请求读取的数据的响应之后,执行在预取缓冲器中存储包括在被选择的共存取组中的数据的步骤。
25.如权利要求22所述的方法,其中,当具有对包括在被选择的共存取组中的数据的读取请求时,所述方法还包括从预取缓冲器中读取被选择的共存取组中包括的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140060411A KR102295769B1 (ko) | 2014-05-20 | 2014-05-20 | 스토리지 컨트롤러 및 상기 스토리지 컨트롤러의 동작 방법 |
KR10-2014-0060411 | 2014-05-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094694A CN105094694A (zh) | 2015-11-25 |
CN105094694B true CN105094694B (zh) | 2019-12-10 |
Family
ID=53396180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510257225.XA Active CN105094694B (zh) | 2014-05-20 | 2015-05-19 | 存储控制器和操作存储控制器的方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9996271B2 (zh) |
EP (1) | EP2947557B1 (zh) |
JP (1) | JP6639107B2 (zh) |
KR (1) | KR102295769B1 (zh) |
CN (1) | CN105094694B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102305584B1 (ko) * | 2015-01-19 | 2021-09-27 | 삼성전자주식회사 | 언어 모델 학습 방법 및 장치, 언어 인식 방법 및 장치 |
JP2016162243A (ja) * | 2015-03-02 | 2016-09-05 | 富士通株式会社 | データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法 |
US10592171B2 (en) | 2016-03-16 | 2020-03-17 | Samsung Electronics Co., Ltd. | Multi-stream SSD QoS management |
JP2018124915A (ja) | 2017-02-03 | 2018-08-09 | 富士通株式会社 | 解析プログラム、解析方法及びストレージシステム |
KR102007086B1 (ko) * | 2017-09-29 | 2019-08-02 | 연세대학교 산학협력단 | 프리페치 장치 및 방법과 이에 관한 기록매체 |
FR3076002B1 (fr) * | 2017-12-22 | 2021-05-07 | Bull Sas | Procede d'amelioration du temps d'execution d'une application informatique |
KR102031490B1 (ko) * | 2018-04-26 | 2019-10-11 | 연세대학교 산학협력단 | 프리페치 장치 및 방법 |
FR3086408A1 (fr) * | 2018-09-21 | 2020-03-27 | Bull Sas | Procede de determination du type de sequence temporelle d'acces memoire se deroulant lors d'une execution d'une application informatique |
CN112328185B (zh) * | 2020-12-28 | 2021-03-23 | 烽火通信科技股份有限公司 | 一种基于分布式存储的智能预读方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301349A (zh) * | 2009-08-19 | 2011-12-28 | 甲骨文国际公司 | 数据库操作意识条带化技术 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910106B2 (en) | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US6963959B2 (en) | 2002-10-31 | 2005-11-08 | International Business Machines Corporation | Storage system and method for reorganizing data to improve prefetch effectiveness and reduce seek distance |
US7496592B2 (en) | 2005-01-31 | 2009-02-24 | International Business Machines Corporation | Systems and methods for maintaining closed frequent itemsets over a data stream sliding window |
JP5094193B2 (ja) | 2007-04-16 | 2012-12-12 | 株式会社日立製作所 | 記憶システム及びその制御方法 |
US8316288B2 (en) | 2007-11-09 | 2012-11-20 | Carnegie Mellon University | High efficiency, high performance system for writing data from applications to a safe file system |
US8327066B2 (en) * | 2008-09-30 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
US8214599B2 (en) * | 2008-11-04 | 2012-07-03 | Gridiron Systems, Inc. | Storage device prefetch system using directed graph clusters |
US8214608B2 (en) | 2008-11-04 | 2012-07-03 | Gridiron Systems, Inc. | Behavioral monitoring of storage access patterns |
US8959481B2 (en) | 2009-04-30 | 2015-02-17 | International Business Machines Corporation | Determining system level dependencies |
KR101105363B1 (ko) | 2010-01-18 | 2012-01-16 | 연세대학교 산학협력단 | 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법 |
US8645631B2 (en) * | 2010-03-29 | 2014-02-04 | Via Technologies, Inc. | Combined L2 cache and L1D cache prefetcher |
CN102142992A (zh) | 2011-01-11 | 2011-08-03 | 浪潮通信信息系统有限公司 | 通信告警频繁项集挖掘引擎及冗余处理方法 |
-
2014
- 2014-05-20 KR KR1020140060411A patent/KR102295769B1/ko active IP Right Grant
-
2015
- 2015-05-15 US US14/713,075 patent/US9996271B2/en active Active
- 2015-05-19 CN CN201510257225.XA patent/CN105094694B/zh active Active
- 2015-05-20 JP JP2015103220A patent/JP6639107B2/ja active Active
- 2015-05-20 EP EP15168382.8A patent/EP2947557B1/en active Active
-
2018
- 2018-05-11 US US15/977,883 patent/US10296225B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301349A (zh) * | 2009-08-19 | 2011-12-28 | 甲骨文国际公司 | 数据库操作意识条带化技术 |
Also Published As
Publication number | Publication date |
---|---|
EP2947557A1 (en) | 2015-11-25 |
JP6639107B2 (ja) | 2020-02-05 |
CN105094694A (zh) | 2015-11-25 |
JP2015219926A (ja) | 2015-12-07 |
US20180260117A1 (en) | 2018-09-13 |
KR20150133524A (ko) | 2015-11-30 |
US9996271B2 (en) | 2018-06-12 |
KR102295769B1 (ko) | 2021-08-30 |
EP2947557B1 (en) | 2019-07-03 |
US20150339235A1 (en) | 2015-11-26 |
US10296225B2 (en) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094694B (zh) | 存储控制器和操作存储控制器的方法 | |
US20200004430A1 (en) | System and method for predictive read of random data | |
US10261688B2 (en) | Performing search and replace operations in a memory device using command parameters and a storage controller without transferring data to a processor | |
US20150046665A1 (en) | Data Storage System with Stale Data Mechanism and Method of Operation Thereof | |
US20200004432A1 (en) | System and method for prediction of read commands to non-sequential data | |
US10976964B2 (en) | Storage system and method for hit-rate-score-based selective prediction of future random read commands | |
US20190065102A1 (en) | Memory system and operating method thereof | |
US11010299B2 (en) | System and method for performing discriminative predictive read | |
US11604749B2 (en) | Direct memory access (DMA) commands for noncontiguous source and destination memory addresses | |
US9529668B2 (en) | Method and system for using NAND page buffers to improve the transfer buffer utilization of a solid state drive | |
US11314445B2 (en) | Pattern tracking for efficiently predicting control pages | |
CN112948284A (zh) | 高速缓存媒体中的动态存取粒度 | |
CN113448511B (zh) | 通过链接阵列依序预提取 | |
CN112689836A (zh) | 基于加密操作修改数据片段 | |
CN112086121B (zh) | 存储器近接干扰管理 | |
US10261714B2 (en) | Memory controller and memory system including same | |
KR102577268B1 (ko) | 메모리 장치 및 이의 동작 방법 | |
US20210064368A1 (en) | Command tracking | |
US11734184B2 (en) | Effective avoidance of line cache misses | |
US11755488B2 (en) | Demand delay and data value correlated memory pre-fetching systems and methods | |
US11157412B2 (en) | Read commands based on row status prediction | |
TWI472919B (zh) | 改善快閃記憶儲存裝置輸入的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |