CN111258492A - 存储系统 - Google Patents
存储系统 Download PDFInfo
- Publication number
- CN111258492A CN111258492A CN201910484788.0A CN201910484788A CN111258492A CN 111258492 A CN111258492 A CN 111258492A CN 201910484788 A CN201910484788 A CN 201910484788A CN 111258492 A CN111258492 A CN 111258492A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- host
- page
- storage
- 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
Images
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/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
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
-
- 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/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
公开了一种存储系统,其涉及用于减少高容量存储器件中的开销的技术。存储系统包括主机和至少一个存储器。主机通过分析关于存储器访问模式的历史信息来产生存储器信息。存储器件响应于存储器信息来预测在随后访问的页处要访问的数据的模式,根据被预测的数据模式来产生子集数据,以及将所产生的子集数据发送到主机。该子集数据少于随后访问的页的全部数据,这提高了存储系统的速度和效率。
Description
相关申请的交叉引用
本申请要求2018年11月30日提交的申请号为10-2018-0152527的韩国专利申请的优先权,其公开内容通过引用整体合并于此。
技术领域
本公开的实施例总体而言可以涉及一种存储系统,并且更具体地,涉及一种用于减少高容量存储器件中的开销(overhead)的技术。
背景技术
近来,各种移动通信终端(例如,智能手机、平板电脑等)已经在全世界广泛使用。此外,对社交网络服务(SNS)、机器对机器(M2M)服务、传感器网络等随时随地的需求正在迅速增加。因此,数据量、数据的创建速度和数据的多样性在按几何级数地增加。为了对这种各式各样且快速创建的大量数据进行处理,每个存储器的数据处理速度是重要的,并且还需要高容量存储器件和高容量存储模块。
因此,存储系统包括多个统一的存储器,以克服每个存储器的物理限制以及增大每个存储器的储存容量。存储系统的存储器可以通过共享其间的数据线而耦接到控制器。然而,由于在主机与存储器之间的数据传输期间发生开销,所以数据传输时间可能不可避免地增加。
发明内容
本公开的各种实施例旨在提供一种存储系统,其基本上消除了由于现有技术的限制和缺点而导致的一个或更多个问题。
本公开的实施例涉及一种存储系统,其用于分析主机的请求、预测可由主机随后访问的数据以及发送根据该预测而从整个页的数据之中选择的数据,从而减少开销。
根据本公开的一个实施例,存储系统包括:主机,其被配置为通过分析关于存储器访问模式的历史信息来产生存储器信息;以及至少一个存储器件,其被配置为使用所述存储器信息来预测要由主机访问的页的数据模式,根据被预测的数据模式来从所述页产生子集数据,以及将所产生的子集数据发送到主机,其中所述子集数据少于所述页的全部数据。
根据本公开的另一个实施例,存储系统包括:存储器件;存储器分析电路,其被配置为通过分析关于存储器访问模式的历史信息来产生存储器信息;以及数据预测电路,其被配置为使用所述存储器信息来预测要由主机访问的页的数据模式,以及根据被预测的数据模式来产生所述页的子集数据,其中所述子集数据少于所述页的全部数据。
应理解,本公开的前述的一般性描述和以下的详细描述都是说明性和解释性的,并且旨在提供对要求保护的本公开的进一步说明。
附图说明
当结合附图考虑时,通过参考以下的详细描述,本公开的上述和其他特征和优点将变得显而易见,其中:
图1是示出根据本公开的一个实施例的存储系统的框图。
图2是示出根据本公开的一个实施例的主机的框图。
图3是示出根据本公开的一个实施例的存储器件的框图。
图4是示出根据本公开的另一个实施例的存储系统的框图。
图5是示出根据本公开的另一个实施例的存储器件的框图。
图6示出了根据本公开的一个实施例的主机的分析过程。
图7是示出根据本公开的一个实施例的图3中所示的存储器件的数据预测过程的概念图。
图8和图9示出了根据本公开的一个实施例的数据检测电路的操作。
具体实施方式
现在将详细参考本公开的实施例,其示例在附图中示出。只要有可能,在整个附图中使用相同的附图标记来表示相同或相似的部分。贯穿本公开的说明书,如果假设某个部件连接(或耦接)到另一个部件,则术语“连接或耦接”意味着该特定部件直接连接(或耦接)到另一个部件和/或通过第三方的媒介电连接(或耦接)到另一部件。贯穿本公开的说明书,如果假设某个部件包括某个组件,则术语“包括或包含”意味着相应的组件还可以包括其他组件,除非写入与相应组件相抵触的特定含义。如说明书和所附权利要求中所使用的,术语“一”、“一个”、“所述”、“该”和其他类似术语包括单数形式和复数形式两者,除非上下文另外明确指出。本申请中使用的术语仅用于描述特定实施例,而不旨在限制本公开。除非在上下文中另有说明,否则单数表达可以包括复数表达。
图1是示出根据本公开的实施例的存储系统10的框图。
存储系统10可以包括主机100和多个存储器件200。主机100可以产生控制信号以控制存储器件200。根据一个实施例,主机100可以产生存储器信息INFO,并且将存储器信息INFO发送到存储器件200。由主机100产生的存储器信息INFO可以包括关于访问每个存储器件200所用的模式的历史信息。由主机100产生的存储器信息INFO可以包括存储区域信息。存储区域信息可以指示如何对被分配给进程的所有存储器进行分类,并且可以指示将哪一个用途分配给已分类的存储器中的每个存储器。主机100还可以包括接口,以与存储器件200交互(未示出)。
主机100可以产生命令信号CMD,并且可以将命令信号CMD发送到存储器件200。命令信号CMD可以包括用于将数据写入存储器件200中的写入命令和用于从存储器件200读取所储存的数据的读取命令等之中的一种或更多种。根据一个实施例,主机100可以包括请求命令,以从储存在每个存储器件200的页(稍后描述)中的全部数据之中请求所需的数据。
主机100可以向存储器件200中的每个存储器件发送数据DATA和从存储器件200中的每个存储器件接收数据DATA。换言之,主机100可以在写入操作期间将数据DATA发送到存储器件200,并且可以在读取操作期间接收从存储器件200读取的数据DATA。在一个实施例中,如随后将描述的,主机100可以接收来自每个存储器件200的被请求页中所储存的数据(例如,储存在被请求页中的全部数据)之中的子集数据SDATA。
另外,存储器件200可以响应于从主机100接收的命令信号CMD来提供数据DATA。例如,存储器件200可以在其中储存从主机100接收的数据,或者可以读取所储存的数据并将被读取的数据发送到主机100。
存储器件200可以从主机100接收存储器信息INFO,可以基于所接收的存储器信息INFO来预测用于访问后续页的数据模式,并且可以基于所接收的存储器信息INFO来产生由主机100请求的子集数据SDATA。一旦从主机100接收到用于读取数据的命令信号CMD,存储器件200就可以将准备好的子集数据SDATA发送到主机100。
根据本公开的实施例的存储器件200可以是池式存储系统,其中以统一形式(或集成形式)提供相同或不同种类的存储器。可以通过主机100的请求来访问从存储器件200之中选择的任意一个存储器件。
另外,根据该实施例的存储器件200中的每个存储器件可以包括易失性存储器,诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。然而,本公开的范围或精神不限于此,并且存储器件200中的每个存储器件可以被实施为非易失性存储器中的任意一种,例如,NAND快闪存储器、NOR快闪存储器、相变RAM(PRAM)、铁电RAM(FRAM)、磁性RAM(MRAM)等,或者也可以被实施为它们的组合。
如上所述,根据实施例的存储系统可以响应于关于存储器访问模式的历史信息来预测随后要访问的页的数据模式,并且可以基于被预测的页的数据模式来产生子集数据SDATA。另外,一旦从主机100接收到请求,存储器件200可以将子集数据SDATA发送到主机100,而不是将所述页的全部数据发送到主机100。因此,与用于将全部页的数据发送到目的地的传统存储系统相比,根据实施例的存储系统可以大大减少数据传输时间和开销。
图2是示出根据一个实施例的主机100(诸如图1中所示的主机100)的框图。
主机100可以包括访问模式储存电路110、分析器120、主机控制器130、数据检测电路140和储存电路150。
访问模式储存电路110可以储存由主机100来访问存储器件200的存储器访问模式的历史信息。
分析器120可以包括关于存储器件200的存储区域的内核级别或应用程序级别的信息,从而分析器120可以基于内核级别或应用程序级别的信息来分析存储器访问模式。
另外,分析器120可以分析主机100将使用哪种模式访问存储器件200。分析器120可以产生所分析的存储器访问模式作为存储器信息INFO,并且可以将所产生的存储器信息INFO发送到存储器件200。分析器120可以产生关于存储器件200中的被访问的存储区域的信息作为存储器信息INFO,并且可以将存储器信息INFO发送到存储器件200。
分析器120可以分析页间访问模式或页内访问模式,并且可以基于所分析的结果来提取存储器访问模式。
例如,分析器120可以收集在已经建立了针对每个页的访问保护之后产生的异常信息,使得分析器120可以基于所收集的异常信息来提取页间访问模式。(即,可以设置保护机制(未示出)以禁止对每个页的访问,从而在尝试访问先前未访问的页时产生异常。响应于该异常,对该页的访问被使能,由分析器120收集所述访问信息,然后成功完成所尝试的访问。)为了提取页间访问模式,分析器120可以在特定时间内执行异常信息的采样,以及然后可以使用该采样结果来提取页间访问模式。另外,分析器120可以产生关于所有页的异常信息,从而分析器120可以基于所产生的异常信息来提取页内访问模式。从分析器120提取的页访问模式可以被储存在访问模式储存电路110中。
主机控制器130可以产生命令信号CMD,该命令信号CMD用于从储存在存储器件200的每个页中的数据之中请求要访问的子集数据SDATA。换言之,当由主机100的应用程序所请求的页存在于存储器件200中时,主机控制器130可以产生请求该页的命令信号CMD,并且可以将所产生的命令信号CMD发送到存储器件200。
数据检测电路140可以接收从储存在存储器件200的每个页中的数据(例如,页中的全部数据的子集)之中请求的子集数据SDATA,并且可以在接收到的子集数据SDATA中检测与不存在的高速缓存行(non-present cache line)相对应的数据(即,具有与储存电路150的高速缓存行的对齐和大小相对应的对齐和大小的存储区域的数据的缺失)。在这种情况下,当对所接收的子集数据SDATA中的存在的数据区域进行访问时,数据检测电路140可以将所访问的子集数据SDATA发送到主机控制器130。
储存电路150可以储存被发送到数据检测电路140的或从数据检测电路140接收的数据DATA。储存电路150可以储存经由数据检测电路140接收的子集数据SDATA。
图3是示出根据一个实施例的存储器件200(诸如图1中所示的存储器件200的每个存储器件的框图)。
存储器件200中的每个存储器件可以包括接口210、控制器220、数据预测电路230和存储器核240。
接口210可以执行在主机100与存储器件200之间的交互。例如,接口210可以从主机100接收存储器信息INFO和命令信号CMD,并且可以将存储器信息INFO和命令信号CMD发送到控制器220和数据预测电路230。接口210可以从控制器220和数据预测电路230接收数据DATA和子集数据SDATA,并且可以将所接收的数据DATA和所接收的子集数据SDATA发送到主机100。
控制器220可以分析并处理从主机100接收的命令信号CMD。即,一旦从主机100接收到命令信号CMD,控制器220可以根据需要使用固件或软件来控制后台功能块的操作以驱动存储器核240。
一旦经由接口210接收到存储器信息INFO,数据预测电路230就可以使用所分析的存储器访问模式信息来预测对后续页进行访问的数据模式,并且可以从后续页之内的数据来产生子集数据SDATA。数据预测电路230可以考虑所分析的存储器访问模式信息的步长来提取数据,并且基于所提取的数据来产生被分组化的子集数据SDATA。在这种情况下,术语“步长”可以指存储地址之间的距离。在另一个实施例中,步长可以指被预测的步长或对随后请求的存储地址的预测,并且可以被有效地用于预取。
数据预测电路230可以通过模式学习来预测对后续页进行访问的数据模式。在这种情况下,术语“模式学习”可以包括用于学习现有的地址访问历史并基于所学习的结果来搜索模式的方案。例如,在模式训练期间,数据预测电路230可以通过寄存器(未示出)来学习必要的步长,或者可以通过机器学习来学习这样的步长,从而数据预测电路230可以预测对后续页进行访问的数据模式。
如果存储器访问模式被认为是不清楚的(或不确定的),则数据预测电路230可以通过使错误否定(false negative)的数量最小化来准备子集数据SDATA。即,当存储器访问模式不清楚(或不确定)时,数据预测电路230可以将来自每个页的额外数据(超出由存储器访问模式清楚地预测的数据)储存在所产生的子集数据SDATA中。另外,当访问区域密集地存在于所述页中时(即,当预测到要访问页的大部分或阈值时),数据预测电路230可以将所述页的全部数据发送到主机100。在一个实施例中,所述页的阈值为40%或更高、50%或更高、60%或更高、70%或更高、80%或更高或者90%或更高。一旦经由接口210接收到命令信号CMD,数据预测电路230可以经由接口210将准备好的子集数据SDATA发送到主机100。当少于所述页的全部数据的准备好的子集数据被发送到主机100时,将准备好的子集数据SDATA发送到主机100可以包括用于准备子集数据SDATA的数据模式的指示。当所述页的全部数据被发送到主机100时,将准备好的子集数据SDATA发送到主机100可以包括所述页的全部数据被包括在子集数据SDATA中的指示。
在写入操作期间,存储器核240可以在控制器220的控制下将数据储存在存储体(未示出)中。在读取操作期间,存储器核240可以在控制器220的控制下从存储体(未示出)读取所储存的数据。
图4是示出根据本公开的另一个实施例的存储系统10B的框图。
根据本公开的另一个实施例的存储系统10B可以包括主机100_1和多个存储器件200_1。
存储系统10B可以允许分析要在每个存储器件200_1而不是主机100_1中处理的存储器访问模式的操作。因此,与图1的主机100不同,图4中所示的主机100_1可能不会产生存储器信息INFO。
主机100_1和存储器件200_1的操作和其余组成元件与图3的那些相同,因此为了便于描述,这里将省略其详细描述。另外,稍后将描述在存储器件200_1中处理的分析操作。
图5是示出存储器件200_1(诸如图4中所示的存储器件200_1中的一个存储器件)的框图。
除了图3的存储器件200的接口210、控制器220、数据预测电路230和存储器核240之外,存储器件200_1还可以包括存储器访问模式储存电路250和存储器分析电路260。
图2的实施例说明性地公开了主机100包括访问模式储存电路110和分析器120,从而存储器访问模式的分析操作在主机100内执行。图5的实施例公开了存储器访问模式的分析操作在存储器件200_1中执行。在另一个实施例中,存储器访问模式的分析操作可以在主机和/或存储器件中执行。
返回参考图5,当存储器访问模式的分析操作在存储器件200_1中执行时,控制器220可以以高速缓存行为单位从主机100_1接收数据请求,而不是以页为单位从主机100_1接收数据请求。在实施例中,高速缓存行可以包括,例如32、64、128或256数据字节,但是实施例不限于此。
存储器访问模式储存电路250可以响应于在一系列虚拟地址中出现的步长来储存存储器访问模式。即,在主机100中的应用程序产生地址可以产生虚拟地址。结果,存储器访问模式储存电路250可以响应于从主机100接收的虚拟地址来储存存储器访问模式。然而,实施例不限于此。
存储器访问模式的步长可以与其他步长混杂(intermix)。然而,随同从主机100接收的存储区域信息一起,应用程序信息等也可以被记录在存储器访问模式储存电路250中,使得存储器访问模式的步长可以与其他步长区分开。所记录的信息可以指示如何划分被分配给进程的存储器,以及专供被分配的存储器的每个分区使用的用途(例如文本、数据、堆或堆栈)。应用程序信息可以用于区分进程,即,将一个进程的存储器访问与其他进程的存储器访问区分。
图5中所示的存储器件200_1的操作和其余组成元件与图2中所示的存储器件200的那些实质相同,因此为了便于描述,这里将省略其详细描述。
图6示出了图2中所示的主机100的分析过程(诸如,可以由分析器120执行)。下面将参考图2的实施例来描述图6的操作。然而,在另一个实施例中,与下面描述的操作类似的操作也可以在图4的存储器件200_1中由图5的存储器分析电路260执行。
主机100的分析器120可以读取在访问模式储存电路110中储存的信息。分析器120可以分析先前的存储器访问模式的历史信息,并且因此可以基于所分析的历史信息来产生存储器信息INFO。
例如,分析器120可以分析在页#100处访问的数据的模式信息、在页#104处访问的数据的模式信息以及在页#108处访问的数据的模式信息。从先前的存储器访问模式的历史信息的角度来看,可以认识到主机100所需的数据是页的一些数据,而不是页的全部数据。
如果在页#100处访问的数据、在页#104处访问的数据以及在页#108处访问的数据在位置上彼此相同,则主机100可以产生对应的访问模式作为存储器信息INFO,并且可以将所产生的存储器信息INFO发送到存储器件200。例如,如果,如图6所示,主机100以9、20、37、43、53和54的偏移量访问页#100、#104和#108中的每个页内的数据,则在一个实施例中,存储器信息INFO将指示包括9、20、37、43、53和54的访问模式。在一个实施例中,所述存储器访问模式可以仅应用于具有等于100+4N的编号的页,其中N是大于或等于0的整数。
图7是示出图3中所示的每个存储器件200的数据预测过程的概念图。下面将参考图3的实施例描述图7的操作,然而,实施例不限于此,并且与下面描述的操作类似的操作可以发生在图5的每个存储器件200_1中。
每个存储器件200的数据预测电路230可以响应于从分析器120接收的存储器信息INFO来预测在后续页处要访问的数据模式。
例如,从分析器100接收的存储器信息INFO可以包括特定信息,该特定信息指示在页#100处的存储器访问模式、在页#104处的存储器访问模式和在页#108处的存储器访问模式在位置上彼此相同。由此确定主机100的应用程序倾向于使用正规模式访问存储器件200。因此,数据预测电路230可以预测在后续页#112处将访问与先前在页#100、页#104和页#108中访问的相同位置相对应的数据DATA。
数据预测电路230可以响应于对被预测的页的数据DATA的请求来产生被预测为主机100所需的子集数据SDATA。由数据预测电路230产生的子集数据SDATA可以经由接口210被发送到主机100。例如,当请求了仅关于一个高速缓存行的数据时,数据预测电路230可以将子集数据SDATA的所有分组发送到主机100。在一个实施例中,所发送的子集数据SDATA的每个分组包括具有与由存储器信息INFO指示的来自存储器核240中相应位置的高速缓存行相对应的大小的数据。
如果必要,数据预测电路230还可以考虑由来自主机100的数据请求所产生的命令信号CMD的接收速度来调整或控制所发送的子集数据SDATA的量。例如,当以低速接收到来自主机100的命令信号CMD时,数据预测电路230可以减少所发送的子集数据SDATA的量。在一个实施例中,所发送的子集数据SDATA的量被减少,以便在接收到后续命令信号CMD之前完成子集数据SDATA的发送。
同时,主机100可以识别关于子集数据SDATA位于存储器件200的一个或更多个页中的位置的信息。即,当每个存储器件200的控制器220将子集数据SDATA发送到主机100时,控制器220还可以发送子集数据SDATA的格式信息。
例如,控制器220可以将关于到每个子集数据SDATA的距离的信息储存在格式信息中,并且可以将所得到的包括距离信息的格式信息发送到主机100。关于子集数据SDATA的距离信息的格式可以指示对应的子集数据SDATA与另一个子集数据SDATA间隔开多远。即,应用于主机100的格式可以包括“子集数据SDATA的值”和“关于到先前子集数据SDATA的距离的信息”。
例如,为了便于描述,假设子集数据SDATA的数量被设置为6。因此,子集数据SDATA的格式可以被设置为“{(9,SDATA1),(11,SDATA2),(17,SDATA3),(6,SDATA4),(10,SDATA5),(0,SDATA6)}”。在上述{(9,SDATA1),(11,SDATA2),(17,SDATA3),(6,SDATA4),(10,SDATA5),(0,SDATA6)}格式的每个括号中,前一个数字(9、11、17、6、10、0)可以指示到先前子集数据SDATA的距离,并且后一个数字(SDATA1~SDATA6)可以指示子集数据SDATA的值。
控制器可以将上述数据格式发送到主机100。因此,主机可以识别存储器件200的每个页中的子集数据SDATA的位置信息。
尽管已经如上所述建立了图7中所示的子集数据SDATA的格式,本公开的子集数据SDATA的格式的范围不限于此。
图8和图9示出了根据一个实施例的数据检测电路140(诸如图2中所示的数据检测电路140)的操作。
数据检测电路140可以包括错误校正码(ECC)编码器141和ECC解码器142。储存电路150不仅可以将数据DATA还可以将从ECC编码器141接收的ECC储存在高速缓存行151中。ECC可以是无效的ECC,即,与应用于数据DATA的ECC算法的计算结果不相等的ECC。
下面将详细描述一种使用数据检测电路140将子集数据SDATA储存在储存电路150中的方法。
主机100可以将空页分配给储存电路150,以便写入从存储器件200接收的数据。数据检测电路140可以将无效数据分配给储存电路150的对应页的所有数据字段。
数据检测电路140可以经由控制器220接收来自存储器件200的子集数据(SDATA)格式。数据检测电路140可以分析所接收的数据格式,并且可以区分“子集数据SDATA的值”与“到先前子集数据SDATA的距离”。通过参考关于每个子集数据SDATA的距离信息,数据检测电路140可以将子集数据SDATA储存在储存电路150的已分配的位置中。
同时,将在下文中参考附图描述使用数据检测电路140从储存电路150的页之中确定不存在的区域的方法。
为了便于描述和更好地理解本公开,假设主机100以储存电路150中的高速缓存行151为单位执行来自特定地址的数据的写入操作,即,如果高速缓存行151可以储存N字节的数据,则主机100以N字节的块执行写入操作。高速缓存行151可以是储存电路150中的多个高速缓存行之一,每个高速缓存行包括数据储存、地址标记储存和用于错误校正码(ECC)的储存。一旦接收到不存在的检测信号(non-present detection signal)NPSIG,ECC编码器141就可以对数据进行编码以产生无效的错误校正码(ECC),并且可以将所产生的无效ECC储存在高速缓存行151中,以将高速缓存行151标记为不包括有效数据。换言之,数据检测电路140可以通过ECC编码器141故意地产生无效ECC,并且可以将无效ECC输出到储存电路150,以指示高速缓存行目前未储存有效数据。
在读取操作期间,储存在高速缓存行151中的无效ECC可以被发送到ECC解码器142。ECC解码器142可以对从对应的高速缓存行151读取的ECC进行解码。数据检测电路140可以根据由ECC解码器142产生的结果来判断有效数据是否存在于高速缓存行151中。
数据检测电路140还可以基于ECC解码器142的解码结果来检测错误的存在或不存在。如果解码结果指示错误但是与故意的无效ECC不相同,则数据检测电路140可以确定已检测到的错误是实际故障,即,从高速缓存行151读取的数据和/或ECC值与储存在高速缓存行151中的数据和/或ECC值不同。即,数据检测电路140可以判断先前储存在高速缓存行151中的故意的无效ECC是否已经检测到或者实际故障是否已经默认。ECC编码器141可以接收不存在的检测信号NPSIG作为输入,并且因此可以使用所接收的不存在的检测信号NPSIG来对ECC进行编码。因此,如果不存在的检测信号NPSIG被激活(或使能),则数据检测电路140可以确定在有意的无效ECC中发生了错误。
例如,ECC编码器141可以接收数据DATA和与数据DATA相对应的ECC。如果与对应数据DATA相对应的预定的ECC比特位被设置为“0”,则ECC编码器141可以通过使将设置为“0”的预定的ECC比特位改变为“1”来对无效ECC进行编码,并且可以将编码结果储存在高速缓存行151中。随后,数据检测电路140可以对储存在高速缓存行151中的ECC进行解码,并且可以将已解码的ECC与原始的ECC比特位进行比较。在一个实施例中,由对储存在高速缓存行151中的数据进行编码的ECC来产生原始的ECC比特位。
如果由ECC解码器142进行解码的ECC比特位被设置为“0”,则当原始的ECC比特位也被设置为“0”时,这意味着数据已经被储存在高速缓存行151中,使得与ECC比特位“0”相对应的区域被认为是存在的区域(present region)。相反,如果由ECC解码器142进行解码的ECC比特位被设置为“1”,则当原始的ECC比特位还被设置为“0”时,这意味着数据尚未被储存在高速缓存行151中,使得与ECC比特位“1”相对应的区域被认为是不存在的区域(non-present region)。即,当储存在高速缓存行中的ECC值与由以预定方式对储存在高速缓存行中的数据进行编码的ECC所产生的ECC值不同时,这被解释为意味着有效数据尚未被储存在高速缓存行151中并且相应的区域被认为是不存在的区域。
参考图9,数据检测电路140可以使用位图显示关于数据是否被储存在高速缓存行151中的信息。例如,如果已经发生ECC错误,则这意味着对应的区域是未储存数据的不存在的区域,从而不存在的区域中的每个不存在的区域由图9的B(即,通过空白表示的比特值)来表示。这里,“B”可以表示无效数据。相反,如果尚未发生ECC错误,则这意味着对应的区域是储存了数据的存在的区域,从而存在的区域中的每个存在的区域由图9的A(即,通过字符“P”表示的比特值)表示。
在一个实施例中,数据检测电路140可以具有特定规则以区分故意的ECC错误与实际的存储错误。例如,在一个实施例中,特定规则可以用“+1”表示。在使用特定规则“+1”的情况下,当数据的正确ECC编码是“C”时,可以产生ECC值“C+1”以指示不存在的数据。此后,如果将补充规则“-1”应用于ECC校验处理,则可以确认对应的区域是不存在的区域而不是由存储器的故障或损坏导致的ECC错误。即,如果规则“+1”被用于产生指示不存在的区域的ECC,则当高速缓存行的ECC校验产生与其储存的ECC值相等的值时,数据检测电路140确定数据存在于高速缓存行中并且是正确的;当ECC校验产生与所储存的ECC值减1相等的值时,数据检测电路140确定针对该高速缓存行指示了不存在的区域,并且当ECC校验产生与任何其他值相等的值时,数据检测电路140确定在读取该高速缓存行时发生了错误。
即,由于主机100被设计为以页为单位访问存储器件200,因此主机100可能难以访问每个页中包含的区域。因此,从主机100的角度来看,主机100可能难以判定存储器件200的每页中的不存在的区域的存在或不存在。因此,根据本公开的实施例的存储系统可以通过数据检测电路140检测主机100中的不存在的数据。
从以上描述显而易见的是,根据本公开的实施例的存储系统可以通过减少开销来增大数据传输速率。
本领域技术人员将理解,在不脱离本公开的精神和基本特征的情况下,可以以除了本文中所阐述的方式之外的其他特定方式来实施所述实施例。因此,上述实施例在所有方面都被解释为说明性的而非限制性的。本公开的范围应由所附权利要求及其合法等同物来确定,而不是由以上描述来确定。此外,在所附权利要求的含义和等同范围内的所有变化都旨在被包含在其中。另外,对于本领域技术人员显而易见的是,在所附权利要求中未明确彼此引用的权利要求可以作为实施例组合地呈现或者在提交申请之后通过随后的修改被包括为新的权利要求。
尽管已经描述了许多说明性实施例,但是应该理解,本领域技术人员可以设计出落入本公开原理的精神和范围内的许多其他修改和实施例。特别地,在在本公开、附图和所附权利要求的范围内的组成部件和/或布置方面可以存在多种变化和修改。除了组成部件和/或布置的变化和修改之外,对于本领域技术人员而言替代用途也将是显而易见的。
附图中每个元件的标记
100:主机
200:多个存储器件
Claims (20)
1.一种存储系统,包括:
主机,其被配置为通过分析关于存储器访问模式的历史信息来产生存储器信息;以及
至少一个存储器件,其被配置为使用所述存储器信息来预测要由所述主机访问的页的数据模式,根据被预测的数据模式来从所述页产生子集数据,以及将所产生的子集数据发送到所述主机,
其中,所述子集数据少于所述页的全部数据。
2.根据权利要求1所述的存储系统,其中,所述主机包括:
分析器,其被配置为通过分析所述存储器访问模式来产生所述存储器信息;以及
主机控制器,其被配置为产生请求命令,所述请求命令用于从所述存储器件请求所述页的数据。
3.根据权利要求2所述的存储系统,其中:
所述存储器件被配置为响应于从所述主机接收所述请求命令而将所述页的所述子集数据发送到所述主机。
4.根据权利要求2所述的存储系统,其中,所述主机还包括:
访问模式储存电路,其被配置为储存关于所述存储器访问模式的历史信息。
5.根据权利要求2所述的存储系统,其中,所述分析器被配置为响应于关于所述存储器件的每个存储区域的内核级别的信息、关于所述存储器件的每个存储区域的应用程序级别的信息或上述两种信息来分析所述存储器访问模式。
6.根据权利要求2所述的存储系统,其中,所述分析器被配置为通过对页间访问模式、页内访问模式或上述两种模式进行分析来提取所述存储器访问模式。
7.根据权利要求2所述的存储系统,其中,所述主机还包括:
数据检测电路,其被配置为响应于被发送到所述存储器件的数据或从所述存储器件接收的数据并且响应于从所述存储器件接收的子集数据来检测不存在的高速缓存行的数据;以及
储存电路,其被配置为将所述数据和所述子集数据储存在所述高速缓存行中。
8.根据权利要求7所述的存储系统,其中,所述数据检测电路包括:
错误校正码ECC编码器,其被配置为对错误校正码ECC进行编码,并且响应于接收到不存在的检测信号而产生无效ECC;以及
错误校正码ECC解码器,其被配置为读取储存在所述储存电路中的所述错误校正码ECC,以及对所读取的ECC进行解码。
9.根据权利要求8所述的存储系统,其中,所述储存电路被配置为将所述数据和所述无效错误校正码ECC储存在所述高速缓存行中。
10.根据权利要求9所述的存储系统,其中,所述数据检测电路被配置为通过将储存在所述高速缓存行中的所述无效错误校正码ECC与从储存在所述高速缓存行中的数据产生的ECC进行比较来判断所述高速缓存行中有效数据的存在或不存在。
11.根据权利要求1所述的存储系统,其中,所述存储器件包括:
控制器,其被配置为分析和处理从所述主机接收的命令信号;
数据预测电路,其被配置为响应于所述存储器信息来预测所述数据模式,以及产生所述子集数据作为所述页的被分组化的子集数据;以及
存储器核,其被配置为一旦从所述控制器接收到控制信号就在读取操作期间读取数据或者在写入操作期间储存数据。
12.根据权利要求11所述的存储系统,其中,所述数据预测电路被配置为通过模式学习来预测所述数据模式。
13.一种存储系统,包括:
存储器件;
存储器分析电路,其被配置为通过分析关于存储器访问模式的历史信息来产生存储器信息;以及
数据预测电路,其被配置为使用所述存储器信息来预测要由主机访问的页的数据模式,以及根据被预测的数据模式来产生所述页的子集数据,所述子集数据少于所述页的全部数据。
14.根据权利要求13所述的存储系统,其中,所述存储器分析电路和所述数据预测电路是所述存储器件的一部分。
15.根据权利要求13所述的存储系统,其中,所述存储器件包括:
存储器访问模式储存电路,其被配置为储存关于所述存储器访问模式的历史信息;
控制器,其被配置为分析和处理从所述主机接收的命令信号;以及
存储器核,其被配置为一旦从所述控制器接收到控制信号就在读取操作期间读取数据或者在写入操作期间储存数据。
16.根据权利要求15所述的存储系统,其中,所述存储器访问模式储存电路被配置为响应于虚拟地址的步长来储存所述历史信息。
17.根据权利要求15所述的存储系统,其中,所述存储器访问模式储存电路被配置为储存存储区域信息和应用程序信息中的至少一种。
18.根据权利要求17所述的存储系统,其中,所述控制器被配置为以高速缓存行为单位接收数据请求。
19.根据权利要求13所述的存储系统,其中,所述存储器分析电路被配置为响应于关于所述存储器件的每个存储区域的内核级别的信息、关于所述存储器件的每个存储区域的应用程序级别的信息或上述两种信息来分析所述存储器访问模式。
20.根据权利要求13所述的存储系统,其中,所述数据预测电路被配置为通过模式学习来预测所述数据模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0152527 | 2018-11-30 | ||
KR1020180152527A KR20200065761A (ko) | 2018-11-30 | 2018-11-30 | 메모리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258492A true CN111258492A (zh) | 2020-06-09 |
CN111258492B CN111258492B (zh) | 2023-06-02 |
Family
ID=70849139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910484788.0A Active CN111258492B (zh) | 2018-11-30 | 2019-06-05 | 存储系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10963395B2 (zh) |
JP (1) | JP2020087421A (zh) |
KR (1) | KR20200065761A (zh) |
CN (1) | CN111258492B (zh) |
TW (1) | TW202022619A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7073952B2 (ja) * | 2018-07-09 | 2022-05-24 | 横河電機株式会社 | データ収集システム及びデータ収集方法 |
US20210149918A1 (en) * | 2019-11-15 | 2021-05-20 | International Business Machines Corporation | Intelligent data pool |
US11528979B2 (en) * | 2020-07-21 | 2022-12-20 | Sleepy Tie, Inc. | Hair accessory for maintaining previously styled hair |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050195635A1 (en) * | 2004-03-08 | 2005-09-08 | Conley Kevin M. | Flash controller cache architecture |
US20060041723A1 (en) * | 2004-08-17 | 2006-02-23 | Hakura Ziyad S | System, apparatus and method for predicting accesses to a memory |
US8819390B1 (en) * | 2010-12-17 | 2014-08-26 | Amazon Technoligies, Inc. | Speculative reads |
US20140379995A1 (en) * | 2013-06-19 | 2014-12-25 | SK Hynix Inc. | Semiconductor device for controlling prefetch operation |
US20150039968A1 (en) * | 2013-07-31 | 2015-02-05 | Arm Limited | Error code management in systems permitting partial writes |
US20150067276A1 (en) * | 2013-09-03 | 2015-03-05 | Kabushiki Kaisha Toshiba | Memory system and controller |
US20150074337A1 (en) * | 2013-09-06 | 2015-03-12 | Samsung Electronics Co., Ltd. | Storage device and data processing method thereof |
US20160055089A1 (en) * | 2013-05-03 | 2016-02-25 | Samsung Electronics Co., Ltd. | Cache control device for prefetching and prefetching method using cache control device |
US20180011754A1 (en) * | 2016-07-05 | 2018-01-11 | SK Hynix Inc. | Nonvolatile memory system and error determination method thereof |
WO2018022188A1 (en) * | 2016-07-29 | 2018-02-01 | Sandisk Technologies Llc | Systems and methods of memory reads |
CN108073468A (zh) * | 2016-11-16 | 2018-05-25 | 爱思开海力士有限公司 | 半导体器件和包括该半导体器件的半导体系统 |
CN108121428A (zh) * | 2017-12-06 | 2018-06-05 | 北京慧驰科技有限公司 | 一种瞬时掉电时mcu的内存数据保护方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433852B2 (en) | 2010-08-30 | 2013-04-30 | Intel Corporation | Method and apparatus for fuzzy stride prefetch |
-
2018
- 2018-11-30 KR KR1020180152527A patent/KR20200065761A/ko not_active Application Discontinuation
-
2019
- 2019-04-12 US US16/383,371 patent/US10963395B2/en active Active
- 2019-06-05 CN CN201910484788.0A patent/CN111258492B/zh active Active
- 2019-06-12 JP JP2019109225A patent/JP2020087421A/ja active Pending
- 2019-06-19 TW TW108121373A patent/TW202022619A/zh unknown
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050195635A1 (en) * | 2004-03-08 | 2005-09-08 | Conley Kevin M. | Flash controller cache architecture |
US20060041723A1 (en) * | 2004-08-17 | 2006-02-23 | Hakura Ziyad S | System, apparatus and method for predicting accesses to a memory |
US8819390B1 (en) * | 2010-12-17 | 2014-08-26 | Amazon Technoligies, Inc. | Speculative reads |
US20160055089A1 (en) * | 2013-05-03 | 2016-02-25 | Samsung Electronics Co., Ltd. | Cache control device for prefetching and prefetching method using cache control device |
US20140379995A1 (en) * | 2013-06-19 | 2014-12-25 | SK Hynix Inc. | Semiconductor device for controlling prefetch operation |
US20150039968A1 (en) * | 2013-07-31 | 2015-02-05 | Arm Limited | Error code management in systems permitting partial writes |
US20150067276A1 (en) * | 2013-09-03 | 2015-03-05 | Kabushiki Kaisha Toshiba | Memory system and controller |
US20150074337A1 (en) * | 2013-09-06 | 2015-03-12 | Samsung Electronics Co., Ltd. | Storage device and data processing method thereof |
US20180011754A1 (en) * | 2016-07-05 | 2018-01-11 | SK Hynix Inc. | Nonvolatile memory system and error determination method thereof |
WO2018022188A1 (en) * | 2016-07-29 | 2018-02-01 | Sandisk Technologies Llc | Systems and methods of memory reads |
CN108073468A (zh) * | 2016-11-16 | 2018-05-25 | 爱思开海力士有限公司 | 半导体器件和包括该半导体器件的半导体系统 |
CN108121428A (zh) * | 2017-12-06 | 2018-06-05 | 北京慧驰科技有限公司 | 一种瞬时掉电时mcu的内存数据保护方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200174942A1 (en) | 2020-06-04 |
CN111258492B (zh) | 2023-06-02 |
KR20200065761A (ko) | 2020-06-09 |
US10963395B2 (en) | 2021-03-30 |
TW202022619A (zh) | 2020-06-16 |
JP2020087421A (ja) | 2020-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258492B (zh) | 存储系统 | |
CN105930278B (zh) | 数据储存设备及其操作方法 | |
KR20160034913A (ko) | 미―준수 메모리 기술을 포함하거나 이와 인터페이스하는 메모리 모듈에 대한 응답 제어 | |
CN103077094A (zh) | 存储控制装置、存储装置、信息处理系统和存储控制方法 | |
US11422717B2 (en) | Memory addressing methods and associated controller, memory device and host | |
TW201243856A (en) | Methods, devices, and systems for data sensing | |
US10430085B2 (en) | Memory operations on data | |
CN109390019B (zh) | 存储系统及其操作方法 | |
KR20160018987A (ko) | 인터페이스 회로 및 그것의 패킷 전송 방법 | |
US20230094634A1 (en) | Memory system and data processing system including the same | |
US11567860B2 (en) | Memory system for updating mapping information | |
US20230031745A1 (en) | Memory system and controller of memory system | |
CN111221746B (zh) | 数据储存系统与其相关方法 | |
US8045405B2 (en) | Memory system, memory device and command protocol | |
CN113448511B (zh) | 通过链接阵列依序预提取 | |
US20170329709A1 (en) | Memory system having multiple cache pages and operating method thereof | |
US11875064B2 (en) | Solid state drive supporting both byte addressable protocol and block addressable protocol | |
US11720276B2 (en) | Memory system and controller for managing write status | |
CN104425039A (zh) | 用于改进的固态介质顺序读的动态映射预取 | |
KR20180055148A (ko) | 반도체장치 및 반도체시스템 | |
US11954351B2 (en) | Memory system, operating method thereof, and data processing system for processing duplicate data | |
KR20190129139A (ko) | 거래 식별 | |
EP4131009A1 (en) | Reading and writing method and memory apparatus | |
US20230305952A1 (en) | Memory system and operating method of a controller of the memory system | |
US20220334761A1 (en) | Memory system having system buffer and method of operating the memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |