CN111324555B - 数据处理系统及其操作方法 - Google Patents
数据处理系统及其操作方法 Download PDFInfo
- Publication number
- CN111324555B CN111324555B CN201911205548.9A CN201911205548A CN111324555B CN 111324555 B CN111324555 B CN 111324555B CN 201911205548 A CN201911205548 A CN 201911205548A CN 111324555 B CN111324555 B CN 111324555B
- Authority
- CN
- China
- Prior art keywords
- candidate
- command
- list
- host
- lbas
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- 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
- 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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据处理系统,该数据处理系统包括:主机,适于生成包括多个候选逻辑块地址(LBA)的LBA列表;存储器装置,适于存储多个映射段和与各个映射段对应的用户数据;以及控制器,适于从主机接收候选LBA列表并从存储器装置加载目标映射段,该目标映射段与多个候选LBA对应。
Description
相关申请的交叉引用
本申请要求于2018年12月13日向韩国知识产权局提交的申请号为10-2018-0160903的韩国专利申请的优先权,其通过整体引用并入本文。
技术领域
各个实施例涉及一种数据处理系统及其操作方法,更特别地,涉及一种高效地执行读取操作的数据处理系统及其操作方法。
背景技术
计算机环境范例已经变为使得计算系统可以被随时随地使用的普世计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用迅速增长。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器系统不具有活动部件,因此存储器系统具有诸如出色的稳定性和耐用性、高信息访问速度以及低功耗的优点。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各个实施例涉及一种数据处理系统,该数据处理系统预报与未来待读取的用户数据对应的映射段,并加载该映射段以快速执行读取操作。
在实施例中,一种数据处理系统可以包括:主机,适于生成包括多个候选逻辑块地址(LBA)的候选LBA列表;存储器装置,适于存储多个映射段和与各个映射段对应的用户数据;以及控制器,适于从主机接收候选LBA列表,并从存储器装置加载对应于多个候选LBA的目标映射段。
在实施例中,一种数据处理系统的操作方法可以包括:通过主机检查命令队列中的多个时隙之中是否存在空时隙;当不存在空时隙时,通过主机生成候选LBA列表;通过主机从主机向控制器提供预报命令和候选LBA列表;基于候选LBA列表,通过控制器从映射缓冲器中检索与多个候选LBA对应的目标映射段;当没有从映射缓冲器中检索到目标映射段时,通过控制器从存储器装置加载与各个候选LBA对应的目标映射段;通过控制器将所加载的目标映射段存储在映射缓冲器中。
在实施例中,一种数据处理系统可以包括:存储器装置,适于存储多个映射段和与该多个映射段对应的多条数据;主机,适于传送对在所述多条数据之中的一条数据的读取请求,并生成且传送存储与在读取该条数据之后待读取的至少一个下一条数据对应的地址信息的候选列表;以及控制器,适于响应于读取请求,从存储器装置读取该条数据,以将该条数据提供给主机,接收候选列表并基于地址信息从存储器装置中加载多个映射段之中的目标映射段。
附图说明
图1是示出根据本发明实施例的包括存储器系统的数据处理系统的框图。
图2是示出根据实施例的候选LBA列表的结构的示图。
图3是示出根据实施例的命令队列的结构的示图。
图4是示出根据实施例的存储器系统的操作的概念图。
图5A至图8B是示出根据实施例的数据处理系统的操作的概念图和流程图。
图9至图11是示意性地示出根据本发明各个实施例的数据处理系统的应用示例的示图。
具体实施方式
下面参照附图更详细地描述本发明的各个实施例。然而,根据本公开,对于本领域技术人员显而易见的是,本发明的各种元件和特征可以与所描述的实施例中所示的方式不同地配置或布置。因此,本发明不限于本文阐述的实施例。相反,提供所描述的实施例,使得本公开是彻底和完整的,并且将本发明充分传达给本发明所属领域的技术人员。此外,对“实施例”的引用不一定意味着仅一个实施例,并且对“实施例”的不同引用不一定针对相同的实施例。纵观本公开,在本发明的各个附图和实施例中,相同的附图标记指代相同的部分。
应理解的是,尽管术语“第一”、“第二”、“第三”等在本文中可用于标识各种元件,但是元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可以被称为第二或第三元件。
附图不一定按比例绘制,并且在某些情况下,可能放大比例,以清楚地示出所公开的实施例的各种特征。
应进一步理解的是,当一个元件被称为“连接到”或“联接到”另一元件时,它可以直接位于、连接到或联接到另一元件,或可能存在一个或多个中间元件。另外,还应理解的是,当元件被称为在两个元件“之间”时,该元件可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
在此文中使用的术语仅出于描述特定实施例的目的,并不旨在限制本发明。如本文所使用的,除非上下文另外明确指出,单数形式旨在包括复数形式,反之亦然。将进一步理解的是,当在本说明书中使用术语“包括”、“包含”、“包括有”和“包含有”时,指示存在所陈述的元件,且不排除存在或附加一个或多个其他元件。如本文所使用的,术语“和/或”包括一个或多个相关联的所列项目的任意和所有组合。
除非另有定义,否则本文中使用的包括技术和科学术语的所有术语具有与本发明所属领域的普通技术人员鉴于本公开而通常理解的相同含义。将进一步理解的是,诸如在常用词典中定义的那些术语应解释为具有与它们在本公开和相关技术的上下文中的含义一致的含义,并且除非在此文中明确定义,否则不应以理想化或者过于形式的方式进行解释。
在下面的描述中,阐述了许多具体细节以提供对本发明的透彻理解。可以在没有某些或所有这些具体细节的情况下实践本发明。在其它情况下,没有详细描述公知的进程结构和/或进程,以免不必要地使本发明难以理解。
还应注意的是,在某些情况下,如对相关领域的技术人员显而易见的,除非另有明确说明,结合一个实施例描述的特征或元件可以单独使用或与另一实施例的其他特征或元件组合使用。
将参照附图详细描述本发明的各个实施例。
图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。图1所示部件之间的箭头表示数据和命令的路径,并不表示实际的物理连接。可以通过能够在部件之间共享的总线将数据和命令传输到存储器系统110。
参照图1,数据处理系统100可以包括可操作地联接到存储器系统110的主机102。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任意一种,或者诸如台式计算机、游戏机、电视(TV)以及投影仪的各种非便携式电子装置中的任意一种。
主机102可以包括至少一个操作系统(OS)或多个OS,并且根据用户请求运行OS以与存储器系统110执行操作。主机102可以向存储器系统110提供与用户请求对应的多个命令。存储器系统110可以执行与从主机102提供的命令对应的操作。OS可以管理和控制主机102的整体功能和操作,并且提供主机102与数据处理系统100或使用存储器系统110的用户之间的交互。
例如,在用户数据的读取请求的情况下,主机102可以向存储器系统110提供用于执行读取操作的读取命令和逻辑块地址(LBA)。存储器系统110可以执行与主机102提供的读取命令对应的读取操作。然而,当存储器系统110具有许多正在进行的操作时,主机102不能向存储器系统110提供命令。此时,主机102可以创建与之后待读取的数据对应的LBA的列表。以下,将该LBA称为候选LBA。
特别地,主机102可以包括可以由OS操作的列表生成器104。当存储器系统110不能从主机102接收与用户请求对应的命令时,列表生成器104可以生成并存储图2的候选LBA列表200。以下参照图2,将描述候选LBA列表200。
图2示出了根据实施例的候选LBA列表200的结构。
参照图2,候选LBA列表200可以包括与随后将根据用户请求被执行的多个读取命令对应的候选LBA的“开始LBA”信息,指示候选LBA的大小的“长度”信息,以及指示候选LBA在候选LBA列表200中的存储顺序的“编号”信息。每个长度大于“1”的候选LBA可以包括多个连续的LBA。另一方面,每个长度为“1”的候选LBA可以仅包括该候选LBA自身。
例如,在图2的候选LBA列表200中,多个候选LBA中的第一候选LBA210第一个存储在候选LBA列表200中,并且第一LBA LBA1是第一候选LBA210的开始LBA,并且长度为“1”。即,第一候选LBA210可以仅包括第一LBA LBA1。对于另一示例,多个候选LBA中的第三候选LBA230第三个存储在候选LBA列表200中,并且第五LBA LBA5是第三候选LBA 230的开始LBA,并且长度为“6”。因此,第三候选LBA230可以包括第五到第十LBA。然而,这仅是示例,本实施例不限于此。
返回参照图1,列表生成器104可以将候选LBA存储在参照图2描述的候选LBA列表200中。候选LBA可以对应于随后将根据用户请求被执行的多个读取命令。此外,当与用户请求对应的数据的大小大于或等于预定阈值大小时,列表生成器104可以生成候选LBA列表200。例如,当由于预定阈值大小为“100KB”而与用户请求对应的数据大小为“160KB”,因而存储器系统110不能从主机102接收与用户请求对应的命令时,列表生成器104可以生成存储有与“160KB”对应的候选LBA的候选LBA列表200。另一方面,即使存储器系统110不能从主机102接收与用户请求对应的命令,在与用户请求对应的数据大小小于预定阈值大小的情况下,列表生成器104可以不生成候选LBA列表200。
列表生成器104可以仅将候选LBA在候选LBA列表中存储到预定的“编号”个数。候选LBA可以对应于将根据用户请求被执行的多个读取命令。例如,当“编号”设置为“100”时,列表生成器104可以将候选LBA在候选LBA列表中存储到“100”个。在这种情况下,图2中的“n”为“100”。对于另一示例,当与对应于将根据用户请求被执行的读取命令的候选LBA的数量是“150”时,列表生成器104可以为“100”个候选LBA生成候选LBA列表,而不分别为其他“50”个候选LBA生成候选LBA列表。
随后,当存储器系统110切换到存储器系统110可以从主机102接收与用户请求对应的命令的状态时,主机102可以向存储器系统110提供预报命令。预报命令可以包括存储在候选LBA列表中的最后编号的信息。
存储器系统110可以响应于主机102的请求而操作以存储主机102的数据。存储器系统110的非限制性示例可以包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)和记忆棒。MMC可以包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型MMC等。SD卡可以包括迷你SD卡和微型SD卡。
存储器系统110可以实施为各种类型的存储器装置。这样的存储器装置的示例可以包括但不限于诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置以及诸如只读存储器(ROM)、掩码ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻性RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。闪速存储器可以具有3维(3D)堆叠结构。
存储器系统110可以包括控制器130和存储器装置150。
控制器130和存储器装置150可以集成到单个半导体装置中。例如,控制器130和存储器装置150可以集成为一个半导体装置以构成固态驱动器(SSD)。当存储器系统110用作SSD时,可以提高连接到存储器系统110的主机102的操作速度。另外,控制器130和存储器装置150可以集成为一个半导体装置以构成存储卡。例如,控制器130和存储器装置150可以构成诸如个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、存储棒、包括尺寸减小的MMC(RS-MMC)和微型MMC的多媒体卡(MMC)、包括迷你SD、微型SD和SDHC的安全数字(SD)卡、或通用闪存(UFS)装置的存储卡。存储器系统110的非限制性应用示例可以包括计算机、智能电话和便携式游戏机。
存储器装置150可以是非易失性存储器装置,即使不供应电力也可以保存存储在其中的数据。存储器装置150可以通过写入操作存储从主机102提供的数据,并且可以通过读取操作将存储在存储器装置150中的数据提供给主机102。
多个存储块152中的每一个可以包括多个页面,每个页面可以包括多个联接到字线的存储器单元。存储器装置150可以包括多个平面,每个平面可以包括多个存储块152,并且存储器装置150可以包括多个存储器管芯,每个存储器管芯可以包括多个平面。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可以具有3维(3D)堆叠结构。
控制器130可以响应于来自主机102的请求而控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器装置150。对于这种操作,控制器130可以控制存储器装置150的读取、编程和擦除操作。
控制器130可以包括经由内部总线全部可操作地联接的主机接口(I/F)132、处理器134、存储器I/F142和存储器144。
主机接口132可以被配置为处理主机102的命令和数据,并且可以通过诸如通用串行总线(USB)、多媒体卡(MMC)、外围组件高速互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和集成驱动电子装置(IDE)的各种接口协议中的一个或多个与主机102通信。可以通过称为主机接口层(HIL)的固件来驱动主机接口132以便与主机交换数据。
特别地,主机接口132可以包括能够对从主机102提供的命令排队的命令队列136、能够管理命令队列136的队列管理器138以及能够输入/输出从主机102提供的数据的数据输入和输出(I/O)电路140。
命令队列136可以包括多个时隙。命令队列136可以在各个时隙中对主机102提供的命令排队。以下参照图3,将描述命令队列136的结构。
图3示出了根据实施例的命令队列136的结构。
参照图3,命令队列136可以包括多个时隙(例如,m个时隙),并且包括与各个时隙对应的编号以及在各个时隙中排队的命令。例如,在第一时隙中排队的命令是“读取”命令。此外,在第二时隙中排队的命令是“写入”命令。命令队列136可以具有先进先出(FIFO)结构。当命令队列136具有FIFO结构时,可以首先处理在第一时隙中排队的“读取”命令,然后可以处理在第二时隙中排队的“写入”命令。然而,这仅是示例,并且本实施例不限于此。
命令队列136可以具有有限数量的时隙(以下称为队列深度)。因此,命令队列136可以仅将从主机102接收的多个命令排队直到队列深度。例如,当队列深度是“32”(即,图3中的m是“32”)时,命令队列136可以仅将从主机102提供的“32”个命令排队在时隙中。如果在所有“32”个时隙中都有命令排队,则主机102不能再向存储器系统110提供命令。当处理了在“32”个时隙中排队的一个或多个命令从而创建了空时隙时,主机102可以向存储器系统110提供命令,并且提供的命令可以在命令队列136内的空时隙中排队。此外,当命令队列136没有空时隙时,主机102可以生成候选LBA列表200。
返回参照图1,队列管理器138可以管理命令队列136。特别地,队列管理器138可以检查命令队列136是否具有空时隙。如果命令队列136不具有空时隙,则队列管理器138可以向主机102提供指示命令队列136不具有空时隙的信息(以下称为空时隙信息)。主机102可以基于空时隙信息来确定是否向存储器系统110提供命令。此外,队列管理器138可以决定在命令队列136中排队的命令的处理顺序。如果命令队列136不具有FIFO结构,则可以根据队列管理器138决定的处理顺序来处理在命令队列136中排队的命令。队列管理器138可以基于决定的处理顺序将命令通知给处理器134。
在处理器134的控制下,数据I/O电路140可以从主机102接收与命令对应的数据并存储接收到的数据。数据I/O电路140可以具有类似命令队列136的FIFO结构。
例如,当主机102向存储器系统110提供读取命令时,数据I/O电路140可以从主机102接收诸如与读取命令对应的LBA信息的数据。在处理器134的控制下,数据I/O电路140可以存储数据。
对于另一示例,当主机102向存储器系统110提供写入命令时,数据I/O电路140可以从主机102接收与写入命令的目标对应的写入数据。在处理器134的控制下,数据I/O电路140可以存储写入数据。
对于另一示例,当主机102向存储器系统110提供预报命令时,数据I/O电路140可以接收候选LBA列表200。在处理器134的控制下,数据I/O电路140可以存储与候选LBA列表200相关联的数据。
在处理器134的控制下,数据I/O电路140可以将从主机102接收的数据提供给存储器144。
当主机102向存储器系统110提供读取命令时,在处理器134的控制下,数据I/O电路140可以将与读取命令对应的用户数据输出至主机102。可以将用户数据从存储器装置150加载到存储器144。
存储器接口142可以将控制器130与存储器装置150接口连接,使得控制器130响应于主机102的请求而控制存储器装置150。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。
存储器144可以由易失性存储器实现。例如,存储器144可以实现为静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在实施例中,存储器144可以存在于控制器130的内部。可选地,存储器144可以存在于控制器130的外部。此时,存储器144可以实现为外部易失性存储器,并且通过存储器接口142向该外部易失性存储器输入来自控制器130的数据,以及通过存储器接口142从该外部易失性存储器输出来自控制器130的数据。
存储器144可以存储在主机102和存储器装置150之间用于执行数据写入/读取操作所需的数据,以及在数据写入/读取操作期间的数据。例如,当主机102向存储器系统110提供读取命令时,存储器144可以从存储器装置150加载待提供给主机102的读取数据,并临时存储该读取数据。对于另一示例,当主机102向存储器系统110提供预报命令时,存储器144可以存储从主机102提供的候选LBA列表200。存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等,以存储数据。
处理器134可以控制存储器系统110的整体操作。响应于主机102的写入命令、读取命令和预报命令,处理器134可以执行与存储器装置150的各个命令对应的操作。参照图4将更详细地描述处理器134的操作。
以下参照图4,将详细描述在根据本实施例的存储器系统110中执行的命令操作。
图4是示出根据实施例的存储器系统110的操作的概念图。图4仅示出了存储器144和存储器装置150,但是可以在处理器134的控制下,将数据从存储器144移动到存储器装置150或从存储器装置150移动到存储器144。
根据实施例,当主机102向存储器系统110提供读取命令时,处理器134可以执行读取操作。特别地,处理器134可以从存储器144检索映射段。映射段可以对应于主机102通过读取命令提供的LBA。如果未从存储器144中检索到映射段,则处理器134可从存储器装置150中加载映射段。然后,处理器134可基于加载的映射段来加载与存储器装置150的读取命令对应的数据,将加载的数据存储在存储器144中,并通过主机接口132输出存储的数据。
控制器130可以执行与从主机102接收的多个命令对应的命令操作。例如,当主机102向存储器系统110提供写入命令时,控制器130可以执行编程操作。此时,控制器130可以通过将用户数据编程到存储器装置150的存储块452至484来存储与写入命令对应的用户数据。此外,控制器130可以根据将用户数据编程到存储块452至484的操作生成和更新用于用户数据的元数据,然后将元数据存储在存储器装置150的存储块452至484中。
控制器130可以生成并更新指示用户数据存储在存储器装置150的多个块452至484中的页面中的信息,例如,第一映射数据和第二映射数据。换言之,控制器130可以生成和更新第一映射数据的逻辑段,即L2P段,和第二映射数据的物理段,即P2L段,然后将L2P段和P2L段存储在存储器装置150的存储块452至484的页面中。
例如,控制器130可以将用户数据存储在控制器130的存储器144中的数据缓冲器410中。用户数据可以对应于从主机102提供的写入命令。此外,在数据缓冲器410中存储用户数据的数据段412之后,控制器130可以将数据缓冲器410中的数据段412存储到存储器装置150的存储块452至484中的页面中。当与从主机10提供的写入命令对应的用户数据的数据段412被编程并存储到存储器装置150的存储块452至484中的页面中时,控制器130可以生成并更新第一映射数据和第二映射数据,并将第一映射数据和第二映射数据存储到控制器130的存储器144中的映射缓冲器420中。也就是说,控制器130可以将用户数据的第一映射数据的L2P段422和第二映射数据的P2L段424存储在映射缓冲器420中。如上文所描述的,第一映射数据的L2P段422和第二映射数据的P2L段424或第一映射数据的L2P段422的映射列表和第二映射数据的P2L段424的映射列表可以存储在控制器130的存储器144中的映射缓冲器420中。此外,控制器130可以将存储在映射缓冲器420中的第一映射数据的L2P段422和第二映射数据的P2L段424存储到存储器装置150的存储块452至484的页面中。
对于另一个示例,控制器130可以执行与从主机102提供的读取命令对应的读取操作。此时,控制器130可以基于与读取命令对应的用户数据的映射段来读取存储在存储设备150的存储块452至484中的用户数据,例如第一映射数据的L2P段422和第二映射数据的P2L段424。然而,当在映射缓冲器420中不存在对应于提供有来自主机102的读取命令的LBA的映射段时,控制器130可以将映射段加载到映射缓冲器420中并检查加载的映射段。然后,控制器130可以读取存储在存储器装置150的存储块452至484之中的相应存储块的页面中的用户数据。此外,控制器130可以将读取的用户数据的数据段412存储在数据缓冲器410中,然后将数据段412输出到主机102。
对于另一个示例,当主机102向存储器系统110提供预报命令时,控制器130可执行与预报命令对应的操作。此时,控制器130可以检查存储在存储器144中的候选LBA列表200,从存储器装置150中加载对应于存储在候选LBA列表200中的候选LBA的映射段,并且将加载的映射段存储在映射缓冲器420中。然而,当对应于候选LBA的映射段已经存在于映射缓冲器420中时,控制器130可以利用已经存在于映射缓冲器420中的映射段。通过将与后来待由对应于预报命令的操作(以下称为预报操作)提供的读取命令对应的映射段预先加载到映射缓冲器420,控制器130可以快速执行读取操作。
以下参照图5A至图8B,将描述根据本实施例的数据处理系统100的操作。特别地,将描述数据处理系统100用于处理预报命令的操作。为了便于描述,假定候选LBA列表200的“n”是“100”,命令队列136的“m”是“32”。此外,假定用户请求的数据大小足够大以生成候选LBA列表。另外,假定命令队列136和数据I/O电路140具有FIFO结构。然而,这仅是示例,并且本实施例不限于此。此外,在每个附图中仅示出了描述所需的部件。
图5A是示出根据实施例的主机102和控制器130的操作的概念图。特别地,图5A是示出根据本实施例的生成候选LBA列表200的操作的概念图。
首先,主机102可以向存储器系统110提供由用户请求生成的多个命令。从主机102提供的命令可以在主机接口132内的命令队列136中排队。
例如,“32”个命令可以分别在命令队列136内的多个时隙中排队。当多个命令都在各自“32”个时隙中排队时,队列管理器138可以检查到命令队列136没有空时隙。队列管理器138可以向主机102提供空时隙信息,以通知主机102没有空时隙。
接收空时隙信息的主机102不能向存储器系统110提供命令,直到在命令队列136中出现空时隙。此时,主机102中的列表生成器104可以生成其中存储有候选LBA的候选LBA列表200,候选LBA分别对应于多个读取命令,该多个读取命令将在之后由用户请求生成。列表生成器104可以存储候选LBA列表。
图5B是示出根据本实施例的生成候选LBA列表200的进程的流程图。
参照图5B,在步骤S501中,主机102可以根据用户请求生成读取命令或写入命令。
在步骤S503中,主机102可以基于队列管理器138提供的空时隙信息来确定命令队列136是否具有空时隙。
当确定存在空时隙时(步骤S503中为“是”),则在步骤S505中,主机102可将生成的读取或写入命令提供给存储器系统110。提供的命令可以在命令队列136内的空时隙中排队。
另一方面,当确定不存在空时隙时(步骤S503中为“否”),列表生成器104可以重置值“i”(即,i=1)以在步骤S507中生成候选LBA列表200。此处“i”代表候选LBA列表200的编号。
在步骤S509中,列表生成器104可以将第i个候选LBA存储在候选LBA列表200中的第i个位置。第i个候选LBA可以对应于之后待生成的读取命令。
在步骤S511中,列表生成器104可以确定“i”的值是否大于或等于“100”。由于假定“n”为“100”,因此可以将“i”的值与“100”进行比较。
当确定“i”的值小于“100”时(步骤S511中为“否”),列表生成器104可以将“i”的值增加“1”(即,i=i++),以通过步骤S509和S511连续将候选LBA存储在候选LBA列表200中。
另一方面,当确定“i”的值大于或等于“100”时(步骤S511中为“是”),列表生成器104可以完成候选LBA列表的生成。最终,如图5A所示,列表生成器104可以生成存储了第1至第100候选LBA的候选LBA列表200。
尽管在图5B中未示出,但是如果存在比100个候选LBA更多的对应于用户请求的候选LBA,则列表生成器104可以生成与生成的候选LBA列表不同的另一个候选LBA列表。例如,当存在150个对应于用户请求的候选LBA时,列表生成器104可以生成包括第1至第100个候选LBA的第一LBA列表,并生成包括第101至第150个候选LBA的第二候选LBA列表。
图6A是示出根据实施例的主机102和控制器130的操作的概念图。特别地,图6A是示出根据本实施例的主机102向控制器130提供预报命令和候选LBA列表200的操作,以及控制器130处理预报命令和候选LBA列表200的操作的概念图。
当命令队列136内的多个时隙中出现空时隙时,队列管理器138可以提供空时隙信息以通知主机102空时隙的出现。然后,主机102可以基于空时隙信息将预报命令和候选LBA列表200提供给存储器系统110。预报命令可以包括关于候选LBA列表200的“编号”的信息,该信息存储在候选LBA列表200中。
首先,命令队列136可以将主机102提供的预报命令在空时隙中排队。由于假定命令队列136具有FIFO结构,因此可以首先将预报命令排队在第32时隙中。
数据I/O电路140可以利用预报命令从主机120接收候选LBA列表200。数据I/O电路140可以在处理器134的控制下存储候选LBA列表200。在处理器134的控制下提供的候选LBA列表200可以存储在存储器144中。
在完全处理在预报命令之前排队的多个命令之后,可以开始处理预报命令。当在预报命令之前排队的多个命令的处理完成时,预报命令可以在第一时隙中排队。此时,队列管理器138可以请求处理器134开始处理在第一时隙中排队的预报命令。然后,处理器134可以基于在预报命令中存储在候选LBA列表200中的最后“编号”的信息执行预报操作。
图6B是示出根据本实施例的向存储器系统110提供预报命令和候选LBA列表200的进程的流程图。
参照图6B,在步骤S601中,主机102可以生成候选LBA列表200,并存储生成的候选LBA,直到将候选LBA列表200提供给存储器系统110。
在步骤S603中,主机102可以将候选LBA列表200中的数量与预设阈值进行比较。即,参照图6A,主机102可以检查在候选LBA列表200中是否存储了100个候选LBA。
当检查到候选LBA列表200中存储的候选LBA的数量小于预设阈值时(步骤S603中为“否”),流程可以返回到步骤S601,并且主机102可以连续生成候选LBA列表200。
另一方面,当检查到候选LBA列表200中存储的候选LBA的数量大于或等于预设阈值时(步骤S603中为“是”),则在步骤S605中,主机102可以基于从队列管理器138提供的空时隙信息确定命令队列136中是否存在空时隙。
当确定不存在空时隙时(步骤S605中为“否”),主机102可以等待直到命令队列136中出现空时隙。
另一方面,当确定存在空时隙时(步骤S605中为“是”),则在步骤S607中,主机102可以向存储器系统110提供预报命令(CMD)和候选LBA列表200。
在步骤S609中,命令队列136可以将预报命令在空时隙中排队。
在步骤S611中,数据I/O电路140可以接收候选LBA列表200。在处理器134的控制下,数据I/O电路140可以存储候选LBA列表200。
尽管分别描述了步骤S609和S611,但是可以并行执行分别对应于步骤S609和S611的操作。
在步骤S613中,在处理器134的控制下可以将候选LBA列表200存储在存储器144中。
图6C是示出根据本实施例的处理预报命令的时间点的流程图。
参照图6C,在步骤S621中,可以根据具有FIFO结构的命令队列136的特性,优先处理在第一时隙中排队的命令。此时,队列管理器138可以确定是否开始处理在图6B的步骤S609中排队的预报命令。
当确定预报命令不是处理目标时(步骤S621中为“否”),则在步骤S623中,队列管理器138可以处理优先于在命令队列136中排队的预报命令的命令。特别地,队列管理器138可以请求处理器134处理在第一时隙中排队的命令。当在第一时隙中排队的命令的处理完成时,在第二时隙中排队的命令可以在第一时隙中排队,并且队列管理器138可以请求处理器134处理在第一时隙中排队的命令。然后,流程可以返回到步骤S621,并且队列管理器138可以确定是否开始处理预报命令。
另一方面,当确定预报命令是处理目标时(步骤S621中为“是”),队列管理器138可以处理预报命令。特别地,队列管理器138可以请求处理器134处理预报命令。然后,处理器134可以基于关于存储在预报命令中包括的候选LBA列表200中的最后“编号”的信息来执行预报操作。
图7A是示出根据实施例的处理预报命令的操作的概念图。
参照图7A,处理器134可以从队列管理器138接收对预报命令的处理请求。处理器134可以检查存储在存储器144中的候选LBA列表200。处理器134可以基于候选LBA列表200,将与候选LBA对应的映射段从存储器装置150加载到映射缓冲器420中。然而,当与候选LBA对应的映射段已经存在于映射缓冲器420中时,处理器134可以检索与下一个候选LBA对应的映射段。例如,处理器134可以首先从存储器144内的映射缓冲器420检索映射段。映射段可以与作为存储在候选LBA列表200中的第一候选LBA的第一LBA LBA1对应。当映射缓冲器420中不存在与第一LBA LBA1对应的映射段时,处理器134可以从存储器装置150读取映射段,并且将读取的映射段存储在映射缓冲器420中。另一方面,当映射缓冲器420中存在与第一LBA LBA1对应的映射段时,处理器134可以直接检索与第二候选LBA对应的映射段。
当与第一候选LBA对应的映射段完全加载时,处理器134可以首先从存储器144内的映射缓冲器420检索映射段。映射段可以对应于作为第二候选LBA的第43LBA LBA43。如果映射缓冲器420中不存在与第43LBA LBA43对应的映射段,则处理器134可以从存储器装置150读取映射段,并将读取的映射段存储在映射缓冲器420中。另一方面,当映射缓冲器420中存在与第43LBA LBA43对应的映射段时,处理器134可以直接检索与第三候选LBA对应的映射段。
根据相同的原则,处理器134可以将映射段存储在映射缓冲器420中。映射段可以对应于作为第100候选LBA的第250LBA LBA250。
此外,处理器134可以基于关于存储在预报命令中包括的候选LBA列表200中的最后“编号”的信息来检查预报操作的终点。例如,由于候选LBA列表200中存储的最后编号是“100”,因此处理器134可以通过将与作为第100候选LBA的第250LBA LBA250对应的映射段存储在映射缓冲器420中来完成预报操作。
在预报操作完成之后,处理器134可以将预报操作的完成通知队列管理器138。作为响应,队列管理器138可以擦除在命令队列136中排队的预报命令。
从队列管理器138接收对预报命令的处理请求的处理器134可以检查存储在存储器144中的候选LBA列表200。
图7B是示出根据本实施例的处理预报命令的操作的流程图。
参照图7B,在步骤S701中,根据队列管理器138的请求,处理器134可以开始处理预报命令。
在步骤S703中,处理器134可以设置初始值(即i=1),以加载与候选LBA列表200中存储的候选LBA对应的映射段。
在步骤S705中,处理器134可以检查存储在候选LBA列表200中的第i候选LBA。
在步骤S707中,处理器134可以确定是否从存储器144内的映射缓冲器420中检索到与第i候选LBA对应的目标映射段。
如果确定没有从映射缓冲器420中检索到与第i候选LBA对应的目标映射段(步骤S707中为“否”),则在步骤S709中,处理器134可以控制存储器装置150检测目标映射段,并从存储器装置150获得读取的目标映射段。
在步骤S711中,处理器134可以接收从存储器150提供的目标映射段并将目标映射段存储在存储器144内的映射缓冲器420中。
在步骤S713中,处理器134可以基于预报命令中包括的候选LBA列表200中存储的最后编号的信息,来检查当前值“i”是否是最后编号。
另一方面,当确定从映射缓冲器420中检索到与第i候选LBA对应的目标映射段时(步骤S707中为“是”),则可以不执行与步骤S709和S711对应的操作,而是在步骤S713中,处理器134可以基于预报命令中包括的候选LBA列表200中存储的最后编号的信息,直接检查“i”的当前值是否是最后的编号。
如果确定“i”不是最后编号(步骤S713中为“否”),则在步骤S715中,处理器134可以将“i”的值增加“1”(即,i=i++)以执行分别与步骤S705至S713对应的操作,或者控制存储器装置150。
另一方面,当确定“i”的值是最后编号时(步骤S713中为“是”),则可以完成对预报命令的处理操作。尽管在图中未示出,但是处理器134可以在预报操作完成之后向队列管理器138通知预报操作的完成,并且队列管理器138可以擦除在命令队列136中排队的预报命令。从队列管理器138接收到对预报命令的处理请求的处理器134可以检查存储在存储器144中的候选LBA列表200。
图8A是示出根据实施例的处理读取命令的进程的概念图。特别地,图8A示出了处理与作为候选LBA列表200中记录的第一候选LBA的第一LBA LBA1对应的读取命令。
参照图8A,主机102可以设置包括关于第一LBA LBA1的信息的读取命令,并且将该读取命令提供给存储器系统110。
命令队列136可以将从主机102提供的读取命令排队在空时隙中。为了便于描述,假定该读取命令在第一时隙中排队。队列管理器138可以请求处理器134处理在第一时隙中排队的读取命令。然后,处理器134可以启动与读取命令对应的读取操作。
首先,处理器134可以检索与第一LBA LBA1对应的映射段。然而,如参照图5A至图7B所描述的,与第一LBA LBA1对应的映射段可以存储在映射缓冲器420中。因此,基于存储在映射缓冲器420中的映射段,处理器134可以从存储器装置150中读取与读取命令对应的用户数据。
处理器134可将用户数据存储在存储器144的数据缓冲器410中。用户数据可对应于从主机102提供的读取命令中的第一LBA LBA1。
处理器134可将用户数据提供给数据I/O电路140。作为响应,在处理器134的控制下,数据I/O电路140可最终将用户数据输出至主机102。
图8B是示出根据本实施例的处理读取命令的进程的流程图。特别地,如参照图8A所描述的,图8B示出了处理与作为记录在候选LBA列表200中的第一候选LBA的第一LBALBA1对应的读取命令的进程。
参照图8B,在步骤S801中,主机102可以向存储器系统110提供读取命令。
在步骤S803中,命令队列136可以将提供的读取命令在空时隙中排队。
在步骤S805中,队列管理器138可以确定读取命令是否对应于处理顺序。
当确定读取命令不与处理顺序对应时(步骤S805中为“否”),则队列管理器138可以请求处理器134处理优先于该读取命令的命令。然后,在步骤S805中,队列管理器138可以确定读取命令是否对应于处理顺序。
另一方面,当确定读取命令对应于处理顺序时(步骤S805中为“是”),则在步骤S809中,队列管理器138可以请求处理器134处理读取命令。
在步骤S811中,处理器134可以从映射缓冲器420中检索包括与读取命令对应的LBA的映射段,基于检索到的映射段从存储器装置150读取用户数据,并在数据缓冲器410中存储读取的用户数据。在处理器134的控制下,可以将存储在数据缓冲器410中的用户数据移动到数据I/O电路140。
在步骤S813中,在处理器134的控制下,数据I/O电路140可以将用户数据输出到主机102。
如上所述,当主机102不能向存储器系统110提供命令时,主机102可以为之后待读取的数据生成候选LBA的列表,并且仅将该列表提供给存储器系统110。因此,即使不直接提供读取命令,基于该列表,存储器系统110也可以预报将来将要提供的读取命令。然后,存储器系统110可以将映射段从存储器装置150加载到控制器130。因此,可以减少检索映射段所需的时间,并且因为减少了检索映射段所需的时间,使得用户请求的数据可以尽可能快速地输出。
图9是示意性地示出根据实施例的包括存储器系统的数据处理系统6200的另一示例的示图。
参照图9,数据处理系统6200可以包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如参照图1所描述的,数据处理系统6200可以用作存储介质,诸如存储卡(例如,CF卡、SD卡等)或USB装置。存储器装置6230可以对应于图1所示的存储器系统110中的存储器装置150,存储器控制器6220可以对应于图1所示的存储器系统110中的控制器130。
存储器控制器6220可以响应于主机6210的请求而控制对存储器装置6230的读取、写入或擦除操作。存储器控制器6220可以包括一个或多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲器存储器、错误校正码(ECC)电路6223、主机接口6224和诸如NVM接口6225的存储器接口。
图10是示意性示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。例如,图10示意性地示出了可以应用存储器系统的固态驱动器(SSD)6300。
参照图10,SSD 6300可以包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可以对应于图1的存储器系统110中的控制器130,存储器装置6340可以对应于图1的存储器系统中的存储器装置150。
更特别地,控制器6320可以通过多个通道CH1至Chi与存储器装置6340连接。控制器6320可以包括一个或多个处理器6321、错误校正码(ECC)电路6322、主机接口6324、缓冲存储器6325和例如非易失性存储器接口6326的存储器接口。
主机接口6324可以提供与例如主机6310的外部装置的接口功能,非易失性存储器接口6326可以提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可以设置多个应用了图1的存储器系统110的SSD 6300以实现数据处理系统,例如独立磁盘冗余阵列(RAID)系统。RAID系统可以包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。
图11是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图,例如用户系统6900。
参照图11,用户系统6900可以包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
可以将应用处理器6930设置为片上系统(SoC)。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。例如,可以基于叠层封装(PoP)来封装和设置应用处理器6930和存储器模块6920。
网络模块6940可以与外部装置通信。例如,网络模块6940不仅可以支持有线通信,而且可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互通性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)的各种无线通信协议,从而与有线/无线电子装置,特别是移动电子装置进行通信。因此,根据本发明的实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置。网络模块6940可以包括在应用处理器6930中。
存储模块6950可以存储数据,例如从应用处理器6930接收的数据,然后可以将存储的数据传送到应用处理器6930。存储模块6950可以通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器和3D NAND闪速存储器来实施,并设置为诸如用户系统6900的存储卡或外部驱动器的可移动存储介质。存储模块6950可以对应于参照图1描述的存储器系统110。此外,存储模块6950可以实现为如以上参照图10所描述的SSD。
尽管已经出于说明性目的描述了各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离所附权利要求书限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (21)
1.一种数据处理系统,包括:
主机,根据控制器的命令队列是否具有空时隙,选择性地生成用于多个逻辑块地址即LBA的多个读取命令,或者生成包括所述多个LBA的候选LBA列表和用于预加载与所述多个LBA相对应的目标映射段的预报命令;
存储器装置,存储多个映射段和与各个映射段对应的用户数据;以及
所述控制器,当所述空时隙出现在所述命令队列中时,从所述主机接收所述预报命令和所述候选LBA列表,并且从所述存储器装置加载所述目标映射段。
2.根据权利要求1所述的数据处理系统,其中所述候选LBA列表包括:编号,指示每个LBA在所述候选LBA列表中存储的顺序;每个LBA的开始LBA;以及长度,指示每个LBA的大小。
3.根据权利要求1所述的数据处理系统,其中所述主机包括:列表生成器,生成所述候选LBA列表,并且
其中所述控制器包括:
命令队列,将从所述主机提供的命令排队;
队列管理器,决定排队的命令的处理顺序,并且向所述主机提供关于所述命令队列中的空时隙的信息;
处理器,从所述存储器装置加载所述目标映射段;以及
存储器,存储加载的目标映射段。
4.根据权利要求3所述的数据处理系统,其中当所述命令队列不具有空时隙时,所述列表生成器生成所述候选LBA列表。
5.根据权利要求3所述的数据处理系统,其中当所述目标映射段未存储在所述存储器中时,所述处理器从所述存储器装置加载所述目标映射段。
6.根据权利要求4所述的数据处理系统,所述命令队列将提供的预报命令在所述空时隙中排队,并且
所述队列管理器请求所述处理器按照所述预报命令的处理顺序处理所述预报命令。
7.根据权利要求6所述的数据处理系统,其中所述存储器存储从所述主机提供的所述候选LBA列表。
8.根据权利要求6所述的数据处理系统,其中所述预报命令包括关于存储在所述候选LBA列表中的最后编号的信息。
9.根据权利要求8所述的数据处理系统,其中所述处理器基于关于存储在所述候选LBA列表中的最后编号的信息检查所述预报命令的处理是否完成,并且通知所述队列管理器所述预报命令的处理完成,并且
所述队列管理器擦除在所述命令队列中排队的所述预报命令。
10.根据权利要求9所述的数据处理系统,其中所述主机提供与在所述候选LBA列表中的所述多个LBA之中的一个或多个目标LBA对应的目标读取命令,并且
所述控制器基于与存储在所述存储器中的所述目标LBA对应的映射段,从所述存储器装置读取目标用户数据,并将读取的目标用户数据输出至所述主机。
11.一种数据处理系统的操作方法,包括:
通过主机检查命令队列中的多个时隙之中是否存在空时隙;
当存在所述空时隙时,所述主机生成用于多个逻辑块地址即LBA的多个读取命令;
当不存在所述空时隙时,所述主机生成包括所述多个LBA的候选LBA列表,和用于预加载与所述多个LBA相对应的目标映射段的预报命令;
当所述空时隙出现在所述命令队列中时,通过所述主机向控制器提供所述预报命令和所述候选LBA列表;
通过所述控制器基于所述候选LBA列表从映射缓冲器中检索所述目标映射段;
当从所述映射缓冲器中没有检索到所述目标映射段时,通过所述控制器加载所述目标映射段;以及
通过所述控制器将加载的目标映射段存储在所述映射缓冲器中。
12.根据权利要求11所述的操作方法,其中所述候选LBA列表包括:编号,指示每个LBA在所述候选LBA列表中存储的顺序;每个LBA的开始LBA;以及长度,指示每个LBA的大小。
13.根据权利要求12所述的操作方法,其中生成所述候选LBA列表包括:在所述候选LBA列表中存储最多至预设数量的所述候选LBA。
14.根据权利要求12所述的操作方法,其中所述预报命令包括关于存储在所述候选LBA列表中的最后编号的信息。
15.根据权利要求12所述的操作方法,其中所述目标映射段的检索包括:根据所述编号依次检索与每个所述候选LBA对应的每个目标映射段;以及当从所述映射缓冲器中检索到所述目标映射段时,从所述映射缓冲器中检索与具有下一编号的候选LBA对应的下一目标映射段。
16.根据权利要求11所述的操作方法,进一步包括:向主机提供指示所述命令队列中是否存在空时隙的空时隙信息;
其中检查是否存在所述空时隙包括基于所述空时隙信息检查所述空时隙的存在。
17.根据权利要求11所述的操作方法,进一步包括:
将所述预报命令在所述命令队列的空时隙中排队;以及
将所述候选LBA列表存储在存储器中。
18.根据权利要求17所述的操作方法,进一步包括:当存在具有优先级的命令时,优先处理在所述命令队列中排队的命令之中的具有优先于所述预报命令的优先级的命令。
19.根据权利要求14所述的操作方法,进一步包括:
基于关于所述候选LBA列表中存储的最后编号的信息,检查所述预报命令的处理是否完成;以及
擦除在所述命令队列中排队的所述预报命令。
20.根据权利要求11所述的操作方法,进一步包括:
提供与所述候选LBA列表中的所述多个LBA之中的一个或多个目标LBA对应的目标读取命令;
基于与存储在所述映射缓冲器中的所述目标LBA对应的映射段,从所述存储器装置读取目标用户数据;以及
输出所述目标用户数据。
21.一种数据处理系统,包括:
存储器装置,存储多个映射段以及与所述多个映射段对应的多条数据;
主机,传送所述多条数据之中的一条数据的读取请求,并当控制器的命令队列中没有空时隙时,生成且传送存储与读取所述一条数据后的至少一个下一条数据对应的地址信息的候选列表,而不生成要读取的至少一个下一条数据的至少一个读取命令;以及
所述控制器,响应于所述读取请求,从所述存储器装置读取所述一条数据以将所述一条数据提供给所述主机,接收所述候选列表并基于所述地址信息从所述存储器装置加载所述多个映射段之中的目标映射段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180160903A KR20200072854A (ko) | 2018-12-13 | 2018-12-13 | 데이터 처리 시스템 및 그것의 동작방법 |
KR10-2018-0160903 | 2018-12-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324555A CN111324555A (zh) | 2020-06-23 |
CN111324555B true CN111324555B (zh) | 2023-03-28 |
Family
ID=71071168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911205548.9A Active CN111324555B (zh) | 2018-12-13 | 2019-11-29 | 数据处理系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11119699B2 (zh) |
KR (1) | KR20200072854A (zh) |
CN (1) | CN111324555B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1575458A (zh) * | 2001-08-22 | 2005-02-02 | 皮尔雷斯系统公司 | 用于能够对专用网络资源进行访问的输出管理系统和方法 |
CN103339618A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 用于存取面向块的非易失性存储器的控制布置和方法 |
CN106557428A (zh) * | 2015-09-30 | 2017-04-05 | 西部数据技术公司 | 数据存储设备的映射系统选择 |
CN107209714A (zh) * | 2015-03-16 | 2017-09-26 | 株式会社日立制作所 | 分布式存储系统及分布式存储系统的控制方法 |
US10102145B1 (en) * | 2015-12-07 | 2018-10-16 | Seagate Technology Llc | Out of order LBA processing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452912B2 (en) * | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
KR101522402B1 (ko) | 2008-10-07 | 2015-05-26 | 삼성전자주식회사 | 반도체 디스크 장치 및 그것의 데이터 관리 방법 |
KR101890767B1 (ko) * | 2011-07-01 | 2018-09-28 | 시게이트 테크놀로지 인터내셔날 | 주소 사상 정보 관리 방법 이를 적용한 저장 장치 |
JP2013061799A (ja) * | 2011-09-13 | 2013-04-04 | Toshiba Corp | 記憶装置、記憶装置の制御方法およびコントローラ |
US8321627B1 (en) * | 2011-10-06 | 2012-11-27 | Google Inc. | Memory operation command latency management |
US9471497B2 (en) * | 2014-01-24 | 2016-10-18 | Netapp, Inc. | Methods for combining access history and sequentiality for intelligent prefetching and devices thereof |
CN106547480B (zh) * | 2015-09-17 | 2019-04-12 | 慧荣科技股份有限公司 | 数据储存装置及其数据读取方法 |
KR102450555B1 (ko) | 2015-11-09 | 2022-10-05 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
CN106681654B (zh) * | 2016-09-29 | 2019-08-27 | 合肥兆芯电子有限公司 | 映射表载入方法与存储器存储装置 |
US10877766B2 (en) * | 2018-05-24 | 2020-12-29 | Xilinx, Inc. | Embedded scheduling of hardware resources for hardware acceleration |
-
2018
- 2018-12-13 KR KR1020180160903A patent/KR20200072854A/ko not_active Application Discontinuation
-
2019
- 2019-11-06 US US16/676,180 patent/US11119699B2/en active Active
- 2019-11-29 CN CN201911205548.9A patent/CN111324555B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1575458A (zh) * | 2001-08-22 | 2005-02-02 | 皮尔雷斯系统公司 | 用于能够对专用网络资源进行访问的输出管理系统和方法 |
CN103339618A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 用于存取面向块的非易失性存储器的控制布置和方法 |
CN107209714A (zh) * | 2015-03-16 | 2017-09-26 | 株式会社日立制作所 | 分布式存储系统及分布式存储系统的控制方法 |
CN106557428A (zh) * | 2015-09-30 | 2017-04-05 | 西部数据技术公司 | 数据存储设备的映射系统选择 |
US10102145B1 (en) * | 2015-12-07 | 2018-10-16 | Seagate Technology Llc | Out of order LBA processing |
Non-Patent Citations (1)
Title |
---|
Feng Chen.etc.Essential Roles of Exploiting Internal Parallelism of Flash Memory based Solid State Drives in High-Speed Data Processing.《2011 IEEE 17th International Symposium on High Performance Computer Architecture》.2011,1-12. * |
Also Published As
Publication number | Publication date |
---|---|
US20200192604A1 (en) | 2020-06-18 |
US11119699B2 (en) | 2021-09-14 |
KR20200072854A (ko) | 2020-06-23 |
CN111324555A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025185B (zh) | 数据存储装置及其操作方法 | |
CN107179996B (zh) | 数据存储装置和其操作方法 | |
CN110825318B (zh) | 控制器及其操作方法 | |
CN111078582B (zh) | 基于模式调整映射段的存储器系统及其操作方法 | |
KR20190136492A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US11537316B2 (en) | Data storage device for storing data in sequential data area and method of operating the same | |
KR20190090635A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102649131B1 (ko) | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 | |
US10067873B2 (en) | Data storage device and operating method thereof | |
KR20200085967A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US11461226B2 (en) | Storage device including memory controller | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
KR20190044798A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US20170160991A1 (en) | Method of handling page fault in nonvolatile main memory system | |
KR102660399B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20190143073A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20200137244A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20200019430A (ko) | 컨트롤러 및 그것의 동작방법 | |
KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
KR20200074647A (ko) | 메모리 시스템 및 그것의 동작방법 | |
CN111241001B (zh) | 数据处理系统及其操作方法 | |
KR102654308B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20210157544A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN113126896A (zh) | 具有数据压缩器的存储器控制器及其操作方法 | |
CN111324555B (zh) | 数据处理系统及其操作方法 |
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 |