本申请要求2015年10月29日在韩国知识产权局提交的第10-2015-0150659号韩国申请的优先权,该韩国申请通过引用整体地并入本文。
技术领域
本发明的各个实施例总体上涉及一种数据储存设备,更具体地说,涉及一种能够缓存读取请求数据的数据储存设备及其操作方法。
背景技术:
近来,用于计算机环境的范例已经改变成普适计算,以便可以随时随地使用计算机系统。因此,诸如移动电话、数码相机以及笔记本计算机的便携式电子设备的使用正快速地增加。通常,便携式电子设备使用数据储存设备,数据储存设备采用用于储存数据的半导体存储器件。数据储存设备可以用作用于便携式电子设备的主存储器件或辅助存储器件。
使用半导体存储器件的数据储存设备没有机械驱动部件,并且通常表现出优异的稳定性、耐久性、高信息存取速度以及低电耗。具有这样优点的数据储存设备的示例包括通用串行总线(USB)存储器件、具有各种接口的存储卡以及固态驱动器(SSD)。
因为便携式电子设备常常处理诸如音乐或2020欧洲杯投注官网 文件的大文件,所以在便携式电子设备中使用的数据储存设备需要具有大的储存容量。因此,数据储存设备通常用作对存储单元来讲具有高的集成度以提供大的储存容量的储存介质、半导体存储器件。例如,作为非易失性存储器件的闪速存储器件具有高的集成度并且广泛用在便携式电子设备中。
技术实现要素:
本发明的各种实施例涉及一种能够有效地缓存读取请求数据的数据储存设备及其操作方法。
根据实施例,用于操作数据储存设备的方法可以包括:将缓存器划分为多个缓存区域;将多个逻辑地址分组为多个逻辑地址组;将索引分配至相应的逻辑地址组;以及将读取请求的第一逻辑地址集、与第一逻辑地址集对应的数据被缓存处的第一缓存区域以及第一缓存区域的空尺寸匹配至与第一逻辑地址集属于的逻辑地址组对应的索引。
根据实施例,数据储存设备可以包括:非易失性存储器件;控制单元,被配置为根据从主机设备接收到的请求来控制非易失性存储器件;以及缓存器,被配置为缓存从非易失性存储器件读出的数据,其中,控制单元将缓存器划分为多个缓存区域,将预定单位的多个逻辑地址分组为多个逻辑地址组,将索引分配至相应的逻辑地址组,以及当与读取请求的第一逻辑地址集对应的数据被缓存在缓存区域中的任何一个中时,将第一逻辑地址集的开始逻辑地址、与第一逻辑地址集对应的数据被缓存处的第一缓存区域以及第一缓存区域的空尺寸匹配至与第一逻辑地址集属于的逻辑地址组对应的索引。
根据实施例,由于能够有效地缓存读取请求的数据,因此可以提高缓存数据的命中率,以及可以提高数据储存设备的操作速度。
附图说明
图1是示出根据本发明的实施例的数据储存设备的框图。
图2示出根据本发明的实施例的读取缓存器的结构。
图3是示出根据本发明的实施例的读取缓存表的示例的示图。
图4是示出根据本发明的实施例的用于处理读取缓存器的操作的流程图。
图5是示出根据本发明的实施例的缓存读取数据以及更新读取缓存表的操作的流程图。
图6是示出根据本发明的另一实施例的读取缓存表的示例的示图。
图7至图11示出了根据本发明的实施例的用于操作读取缓存器的示例。
图12是示出根据本发明的实施例的包括数据储存设备的数据处理系统的框图。
图13是示出根据本发明的实施例的包括固态驱动器(SSD)的数据处理系统的框图。
图14是示出根据本发明的实施例的固态驱动器(SSD)控制器的框图。
图15是示出根据本发明的实施例的包括数据储存设备的计算机系统的框图。
图16是示出根据本发明的实施例的包括在数据储存设备内的非易失性存储器件的框图。
具体实施方式
在本发明中,在阅读结合附图所描述的以下实施例后,优点、特征以及用于实现它们的方法可以变得更加明显。然而,本发明可以以不同的形式来实施,且不应被解释为限于本文所阐述的实施例。更确切地说,提供这些实施例以将本发明详细地描述至本发明所属领域的技术人员可以容易地实践本发明的程度。
要理解的是,在本文中,本发明的实施例不限于在附图中示出的细节并且附图未必是按比例的,并且在有些情况下,比例可能已经被夸大以便更加清楚地描述本发明的某些特征。虽然在本文中使用特定术语,但要理解的是,在本文中所使用的术语仅出于描述特定实施例的目的,而并不意图限制本发明的范围。
如本文中所使用的,术语“和/或”包括一个或更多个相关所列项目的任意组合和所有组合。可以理解的是,当元件被称为“在”另一元件“上”、“连接到”或“耦接到”另一元件时,它可以直接在所述另一元件上、直接连接到或耦接到所述另一元件,或者可以存在中间元件。如本文中所使用的,除非上下文另外清楚地指出,否则单数形式也意图包括复数形式。还可以理解的是,当在本说明书中使用时,术语“包括”及其变型和/或“包含”及其变型具体说明存在至少一个所述特征、步骤、操作和/或元件,但是不排除存在或添加一个或更多个其他特征、步骤、操作和/或元件。
在下文中,参考附图通过实施例的各种示例来描述数据储存设备及其操作方法。
图1是示出根据本发明的实施例的数据储存设备100的框图。
参考图1,数据储存设备100可以储存要被诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏播放器、TV、车载信息娱乐系统等的主机设备(未示出)访问的数据。数据储存设备100也可以称为存储系统。
根据可以与主机设备电耦接的接口的协议,数据储存设备100可以被制造为各种储存设备中的任何一种。例如,数据储存设备100可以配置为诸如固态驱动器(SSD)、成MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡、成SD、迷你SD和微型SD形式的安全数字卡、通用串行总线(USB)储存设备、通用闪速储存(UFS)设备、个人计算机存储卡国际协会(PCMCIA)卡类型储存设备、外围部件互联(PCI)卡类型储存设备、PCI高速(PCI-E)卡类型储存设备、紧凑型闪存(CF)卡、智能媒体卡、记忆棒等的各种储存设备中的任何一种。
数据储存设备100可以被制造为各种封装类型中的任何一种。例如,数据储存设备100可以被制造为诸如层叠封装(POP)、系统级封装(SIP)、芯片上系统(SOC)、多 芯片封装(MCP)、板上芯片(COB)、晶片级制造封装(WFP)、晶片级层叠封装(WSP)等的各种封装类型中的任何一种。
数据储存设备100可以包括非易失性存储器件300。非易失性存储器件300可以作为数据储存设备100的储存介质来操作。非易失性存储器件300可以由诸如NAND闪速存储器件、NOR闪速存储器件、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧穿磁电阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)、电阻式随机存取存储器(ReRAM)等的各种类型的非易失性存储器件中的任何一种来配置。
数据储存设备100可以包括控制器200。控制器200可以包括控制单元210、主机接口(I/F)单元220以及随机存取存储器230。
控制单元210可以控制控制器200的总体操作。控制单元210可以分析并处理从主机设备输入的信号、命令或请求。例如,当从主机设备接收到读取请求时,控制单元210可以基于读取请求的逻辑地址从非易失性存储器件300读取数据。对于另一示例,当从主机设备接收到写入请求时,控制单元210可以基于写入请求的逻辑地址将写入数据储存在非易失性存储器件300中。为此,控制单元210可以解码并驱动加载在随机存取存储器230上的固件(FW)(或软件)。控制单元210可以以硬件和/或软件的形式实施。在实施例中,控制单元210可以以硬件和软件的组合形式实施。
主机接口单元220可以根据主机设备的协议使主机设备和数据储存设备100接口。例如,主机接口单元220可以通过包括例如通用串行总线(USB)、通用闪速储存器(UFS)、多媒体卡(MMC)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、外围部件互联(PCI)、PCI高速(PCI-E)协议等的任何合适的通信协议与主机设备通信。
主机接口单元220可以包括命令队列CMDQ。具有m的队列深度的命令队列CMDQ可以包括m数目的队列Q1至Qm。从主机设备接收到的请求(或命令)可以分别储存在m数目的队列Q1至Qm中。排列在命令队列CMDQ中的请求可以由控制单元210顺序地或者随机地处理。
随机存取存储器230可以储存要由控制单元210驱动的固件(FW)。此外,随机存取存储器230可以储存驱动固件(FW)所需的管理数据。随机存取存储器230可以作为控制单元210的工作存储器来操作。例如,储存在其中的管理数据可以包括用于将来自主机设备的存取请求的逻辑块地址(LBA)转换或映射为非易失性存储器件300的物理块地址(PBA)的地址映射信息。
随机存取存储器230可以暂时储存要从主机设备发送至非易失性存储器件300或者要从非易失性存储器件300发送至主机设备的数据。换句话说,随机存取存储器230可以作为数据缓冲器(DB)来操作。
随机存取存储器230可以缓存在发送到主机设备的数据之中的最近发送或频繁发送的数据。即,随机存取存储器230可以作为读取缓存器RC来工作,读取缓存器RC将从非易失性存储器件300读取的数据缓存以快速响应来自主机设备的读取请求。
为了提高读取缓存器RC的命中率,控制单元210可以将读取缓存器RC划分为若干读取缓存区域。控制单元210可以通过将每个读取缓存区域匹配至预定单位的逻辑地址来管理读取缓存表。控制单元210可以通过参考这种读取缓存表来管理读取缓存器RC。
例如,控制单元210可以将读取缓存器RC划分为多个读取缓存区域。控制单元210还可以将逻辑地址一起布置(例如分组)为逻辑地址组。例如,控制单元210可以将逻辑地址分组为从开始逻辑地址开始直至每个读取缓存区域的尺寸的逻辑地址组,其中,开始逻辑地址通过预定单位增大。
控制单元210还可以将索引分配至相应的逻辑地址组,以及通过将读取请求的逻辑地址、与逻辑地址对应的数据被缓存处的读取缓存区域以及读取缓存区域的空尺寸匹配至与逻辑地址所属的逻辑地址组对应的索引来管理读取缓存表。
图2示出了根据本发明的实施例的读取缓存器(RC)的结构的示例。例如,图2的读取缓存器可以是图1中的随机存取存储器230的读取缓存器(RC)。
参考图2,读取缓存器RC可以被划分成诸如A1至Az的各个读取缓存区域RCA。
在实施例中,每个读取缓存区域RCA的尺寸n可以对应于映射至每个逻辑地址的物理地址的尺寸,即,与每个物理地址对应的存储区域的尺寸。
在另一实施例中,每个读取缓存区域RCA的尺寸n可以对应于通过每个读取操作从非易失性存储器件300读出的数据量。因此,读取缓存区域RCA可以设定为通过每个读取操作从非易失性存储器件300读出的数据的尺寸。
在又一个实施例中,每个读取缓存区域RCA的尺寸n可以通过扇区(sector)的数目来确定。例如,每个读取缓存区域RCA的尺寸n可以通过扇区的数目表示,而不是通过由二进制表示的存储容量(即,位或字节)来表示。扇区可以具有512字节的尺寸作为与每个逻辑地址对应的数据单位。例如,当n是“2”时,每个读取缓存区域RCA 的尺寸可以表示与2个扇区对应的1KB(512字节*2)。
图3是示出根据本发明的实施例的读取缓存表RCT的示图。例如,图3的读取缓存表可以包括在图1的数据储存设备的随机存取存储器230内。在数据储存设备100启动后刚开始与在从主机设备接收到读取请求时结束的时间段期间,没有数据(也称为信息)可以包括在读取缓存表RCT中。读取缓存表RCT可以根据来自主机设备的读取请求实时更新,从而至少图3中示出的信息可以包括在其中。
读取缓存表RCT可以包括诸如索引、读取缓存区域(RCA)、空白空间(ES)以及逻辑块地址(LBA)的各种信息。索引可以分配给相应的逻辑块地址组。读取缓存区域RCA可以被匹配至所匹配的读取缓存区域RCA的空尺寸(或空白空间)ES和索引。因为数据可以通过参考分配给相应的逻辑地址组的读取缓存区域RCA的空尺寸而被缓存,从而在读取缓存区域RCA中不出现空白空间,所以在读取缓存器RC中可以缓存最大的数据量。
读取缓存表RCT可以分类为诸如从1至m的各种索引。索引的数目可以对应于图1中示出的命令队列CMDQ的队列深度m。索引可以由包括在命令队列CMDQ中的队列的数目m生成。
包括开始逻辑地址和从每个开始逻辑地址开始直至读取缓存区域RCA的尺寸(即,扇区的数目)n的通过预定单位(或预定间隔)增大的后续地址的逻辑地址可以分组为逻辑地址组LG。在一些实施例中,预定单位可以被确定为值m*n,其中,m表示队列深度,n表示每个读取缓存区域RCA的尺寸。逻辑地址组LG1至LGm可以分别对应于索引1至m。
例如,自开始逻辑地址0的n个逻辑地址、自开始逻辑地址mn的n个逻辑地址、自开始逻辑地址2mn的n个逻辑地址、自开始逻辑地址3mn的n个逻辑地址以及以这种方式计算的其余逻辑地址可以分组为与索引1对应的逻辑地址组LG1。
在属于逻辑地址组的逻辑地址之中,仅仅读取请求的逻辑地址可以匹配至对应索引。也就是说,如果与读取请求的逻辑地址对应的数据缓存在读取缓存器RC中,则读取请求的逻辑地址可以匹配至对应索引。
如果与读取请求的逻辑地址对应的数据缓存在读取缓存器RC中,则数据被缓存在其处的读取缓存区域RCA的信息可以匹配至索引。此外,关于通过从每个读取缓存区域RCA的尺寸n减去缓存数据的尺寸cs所获得的尺寸的信息,即,匹配读取缓存区域RCA的空尺寸ES可以匹配至索引。由于每个读取缓存区域RCA的尺寸n可以以扇区 的数目表示,因此匹配读取缓存区域RCA的空尺寸ES也可以以扇区的数目表示。
在假设来自主机设备的例如读取请求或写入请求的请求以开始逻辑地址以及扇区或逻辑地址的数目的形式提供的情况下,可以进行以下描述。开始逻辑地址以及扇区或逻辑地址的数目可以定义为逻辑地址集。换句话说,逻辑地址集定义为从开始逻辑地址到扇区或逻辑地址的数目的逻辑地址。
图4是示出根据本发明的实施例的用于处理读取缓存器RC的操作的流程图。在描述图4时,假设数据缓存在读取缓存器RC中以及读取缓存表RCT根据先前读取请求更新。例如,图4的操作可以通过图1的控制器210执行。
在步骤S100处,可以对当前从图1的主机设备(未示出)接收到的请求是读取请求RR还是写入请求WR进行判断。
在当前从主机设备接收到的请求是写入请求WR(S100,WR)的情况下,因为通过写入请求WR提供的新数据应该作为有效数据处理,而缓存在读取缓存器RC中旧数据应该作为无效数据处理,所以处理可以进行到步骤S110和步骤S120。
在步骤S110处,确定写入请求的逻辑地址集是否存在于读取缓存表RCT中。
在写入请求的逻辑地址集未存在于读取缓存表RCT(S110,否)中的情况下,由于这表示没有数据被缓存,因此处理可以在没有对读取缓存表RCT进行更新的情况下结束。
在写入请求的逻辑地址集存在于读取缓存表RCT(S110,是)中的情况下,由于这表示数据被缓存,因此可以执行步骤S120以处理作为无效数据的缓存在读取缓存器RC中的数据。在步骤S120处,可以从读取缓存表RCT移除写入请求的逻辑地址集。可以移除匹配至索引的逻辑地址,从而与当前写入请求的逻辑地址集对应的数据在随后的读取请求时不从读取缓存器RC提供(service)。
在当前从主机设备接收到的请求是读取请求RR(S100,RR)的情况下,可以对与读取请求的逻辑地址集对应的数据(也称为读取请求数据)是否缓存在读取缓存器RC中进行判定。用于维护读取请求数据的方法可以基于判定结果而改变。
在步骤S130处,为了判定读取请求数据是否是顺序数据,判定读取请求数据的尺寸是否小于或等于顺序数据参考值。读取请求数据的尺寸可以基于读取请求的逻辑地址集,即,开始逻辑地址和读取请求的扇区的数目来计算。顺序数据参考值可以是用于确定作为顺序数据的超过参考值的数据尺寸和作为随机数据的小于或等于参考值的数据尺 寸的参考值。参考值可以变化。
在读取请求数据的尺寸大于顺序数据参考值(S130,否)的情况下,因为读取缓存器RC的容量的限制,读取请求数据可以确定为是未由先前读取请求缓存的数据和未要由当前读取请求缓存的数据。因此,处理可以进行到步骤S140。在步骤S140处,读取请求数据可以从图1的非易失性存储器件300提供。即,当前读取请求的数据未被缓存。
在读取请求数据的尺寸小于或等于顺序数据参考值(S130,是)的情况下,读取请求数据可以确定为通过先前读取请求缓存的数据和待被缓存在读取缓存器RC中以快速响应随后的读取请求的数据。因此,处理可以进行到步骤S150。在步骤S150处,确定读取请求逻辑地址集是否存在于读取缓存表RCT中。
在读取请求逻辑地址集存在于读取缓存表RCT(S150,是)的情况下,由于这表示数据被缓存,因此处理可以进行到步骤S160。在步骤S160处,读取请求数据可以从读取缓存器RC提供。也就是说,未执行读取图1的非易失性存储器件300以提供读取请求数据的操作。
在读取请求逻辑地址集不存在于读取缓存表RCT(S150,否)中的情况下,由于这表示没有数据被缓存,因此在步骤S170、S180以及S190处,读取请求数据可以通过从非易失性存储器件300读出而提供,以及可以被缓存以为随后的读取请求作准备。
在步骤S170处,可以从非易失性存储器件300读出读取请求数据。在步骤S180处,可以通过参考读取缓存表RCT将读出数据缓存在读取缓存器RC中,以及可以更新读取缓存表RCT。在步骤S190处,可以从读取缓存器RC提供读取请求数据。
图5是示出根据本发明的实施例的缓存读取数据以及更新读取缓存表的操作的流程图。例如,图5的流程图可以是图4的步骤S180的详细示例。图5的操作可以通过图1的控制器210执行。为了简化起见,示出了流程图,其中首先执行读取缓存表RCT的更新操作(或管理操作),接下来执行缓存读取请求数据的操作。读取请求数据可以是根据读取缓存表RCT从非易失性存储器件300读取的数据。要注意的是,读取缓存表RCT的更新操作和数据缓存操作的顺序可以改变。
在步骤S181处,确定读取缓存区域RCA是否已经匹配至与读取请求的逻辑地址集所属的逻辑地址组对应的索引。
在读取缓存区域RCA没有匹配至索引(S181,否)的情况下,可以根据读出数据的尺寸将空(未匹配的)读取缓存区域RCA重新匹配至索引。
在步骤S182处,确定从非易失性存储器件300读出的数据的尺寸是否小于或等于每个读取缓存区域RCA的尺寸。
在读出数据的尺寸小于或等于每个读取缓存区域RCA的尺寸(S182,是)的情况下,可以将读出数据缓存在一个读取缓存区域RCA中。在步骤S183处,可以将读取缓存区域RCA、读取请求的逻辑地址集的开始逻辑地址LBA以及基于缓存(或要缓存)的数据计算出的读取缓存区域RCA的空尺寸ES匹配至索引。
在读出数据的尺寸大于每个读取缓存区域RCA的尺寸(S182,否)的情况下,读出数据可以不缓存在一个读取缓存区域RCA中。因此,可以将读出数据缓存在若干读取缓存区域RCA中。在步骤S184处,可以将读取缓存区域RCA、读取请求的逻辑地址集的开始逻辑地址LBA以及基于缓存(或要缓存)的数据计算出的读取缓存区域RCA的空尺寸ES匹配至多个索引中的每个。在这种情况下,可以移除因先前缓存的数据而匹配至每个索引的信息,例如,读取缓存区域RCA、读取请求的开始逻辑地址LBA以及匹配的读取缓存区域RCA的空尺寸ES。
在读取缓存区域RCA已经匹配至索引(S181,是)的情况下,可以根据读取缓存区域RCA的空尺寸ES,将读取请求数据缓存在已经匹配的读取缓存区域RCA的空白空间中或者在新匹配的读取缓存区域RCA中。
在步骤S185处,确定从非易失性存储器件300读出的数据的尺寸是否小于或等于匹配的读取缓存区域RCA的空尺寸ES。
在读出数据的尺寸小于或等于匹配的读取缓存区域RCA的空尺寸ES(S185,是)的情况下,可以将读出数据缓存在匹配的读取缓存区域RCA的空白空间中。在步骤S186处,可以将读取请求的逻辑地址集的开始逻辑地址LBA另外匹配至索引。换句话说,可以将当前读取请求的逻辑地址集的开始逻辑地址LBA同与已经缓存在读取缓存区域RCA中的数据对应的开始逻辑地址LBA一起匹配至索引。
在读出数据的尺寸大于匹配的读取缓存区域RCA的空尺寸ES(S185,否)的情况下,读出数据可以不缓存在匹配的读取缓存区域RCA的空白空间中。因此,可以将读出数据缓存在空的读取缓存区域RCA中。在步骤S187处,可以移除已经匹配至索引的读取缓存区域RCA、开始逻辑地址LBA以及读取缓存区域RCA的空尺寸ES。在步骤S188处,可以将读取缓存区域RCA、读取请求的逻辑地址集的开始逻辑地址LBA以及基于缓存(或要缓存)的数据计算出的读取缓存区域RCA的空尺寸ES重新匹配至索引。
在读取缓存区域RCA、读取请求的逻辑地址集的开始逻辑地址LBA以及基于缓存 (或要缓存)的数据计算出的读取缓存区域RCA的空尺寸ES匹配至索引后,可以如在步骤S189中,根据读取缓存表RCT缓存读出数据。
图6是示出根据本发明的实施例的读取缓存表的示例的示图。可以通过图1的控制器210执行图6的示例。图6中的读取缓存表RCT可以示出可包括在读取缓存表RCT中的信息。在这种情况下,假设命令队列CMDQ的队列深度m是32并且每个读取缓存区域RCA的尺寸n是8。
参考图6,索引可以利用为32的命令队列CMDQ的队列深度m来生成。此外,从开始逻辑地址开始直至8(作为每个读取缓存区域RCA的尺寸)个逻辑地址的逻辑地址可以分组为每个逻辑地址组LG,开始逻辑地址以256(=32(m)*8(n))为单位增大。此外,可以将读取缓存区域RCA的空尺寸ES计算为通过从作为每个读取缓存区域RCA的尺寸的8减去缓存数据尺寸cs所获得的尺寸。
例如,自第一开始逻辑地址0的8个逻辑地址0至7、自第二开始逻辑地址256的8个逻辑地址256至263、自第三开始逻辑地址512的8个逻辑地址512至519以及以这种方式计算的其余逻辑地址可以分组为与索引1对应的逻辑地址组LG1。第二开始逻辑地址256可以自第一开始逻辑地址0增加256,第三开始逻辑地址512可以自第二开始逻辑地址256增加256,以及第四开始逻辑地址768可以自第三开始逻辑地址512增加256。
自第一开始逻辑地址8的8个逻辑地址8至15、自第二开始逻辑地址264的8个逻辑地址264至271、自第三开始逻辑地址520的8个逻辑地址520至527以及以这种方式计算的其余逻辑地址可以分组为与索引2对应的逻辑地址组LG2。第二开始逻辑地址264可以自第一开始逻辑地址8增加256,第三开始逻辑地址520可以自第二开始逻辑地址264增加256,以及第四开始逻辑地址776可以自第三开始逻辑地址520增加256。
自第一开始逻辑地址16的8个逻辑地址16至23、自第二开始逻辑地址272的8个逻辑地址272至279、自第三开始逻辑地址528的8个逻辑地址528至535以及以这种方式计算的其余逻辑地址可以分组为与索引3对应的逻辑地址组LG3。第二开始逻辑地址272可以自第一开始逻辑地址16增加256,第三开始逻辑地址528可以自第二开始逻辑地址272增加256,以及第四开始逻辑地址784可以自第三开始逻辑地址528增加256。
自第一开始逻辑地址248的8个逻辑地址248至255、自第二开始逻辑地址504的8个逻辑地址504至511、自第三开始逻辑地址760的8个逻辑地址760至767以及以这种方式计算的其余逻辑地址可以分组为与索引m对应的逻辑地址组LGm。第二开始逻辑地址504可以自第一开始逻辑地址248增加256,第三开始逻辑地址760可以自第二 开始逻辑地址504增加256,以及第四开始逻辑地址1016可以自第三开始逻辑地址760增加256。
图7至图11示出了根据本发明的实施例的用于操作读取缓存器的示例。可以通过图1的控制器210执行图7至图11的操作。例如,在描述图7至图11中,可以参考图6中所示的读取缓存表RCT。
参考图7,可以描述在读出数据的尺寸大于每个读取缓存区域RCA的尺寸的情况下的读取缓存表RCT的更新处理和数据缓存处理。
在接收读取请求前,读取缓存表RCT和读取缓存器RC的状态可以是如下状态。
索引1可以处于没有数据与其匹配的状态。
索引2可以处于读取缓存区域(RCA)A1、开始逻辑地址(S_LBA)776以及读取缓存区域A1的空尺寸(ES)3与其匹配的状态。索引2可以表示与从开始逻辑地址776到逻辑地址780的5(=8-3)个逻辑地址对应的读取数据(2.5KB=528字节*5扇区)被缓存在读取缓存区域A1中的状态。
索引3可以处于读取缓存区域A8、开始逻辑地址528以及读取缓存区域A8的空尺寸1与其匹配的状态。索引3可以表示与从开始逻辑地址528到逻辑地址534的7(=8-1)个逻辑地址对应的读取数据(3.5KB=528字节*7扇区)被缓存在读取缓存区域A8中的状态。
如果接收到用于自开始逻辑地址0的20个逻辑地址的集的读取请求R(0,20),则由于读出数据的尺寸(10KB=528字节*20)大于每个读取缓存区域RCA的尺寸(4KB),因此可以更新读取缓存表RCT以及可以来缓存读出数据,如下。
由于开始逻辑地址0是属于与如图6所示的索引1对应的逻辑地址组LG1的逻辑地址,因此可以匹配至索引1。在空读取缓存区域A2、A3以及A7之中,可以将读取缓存区域A2匹配至索引1。由于数据被缓存为使得匹配的读取缓存区域A2完全被缓存,因此可以将读取缓存区域A2的空尺寸0匹配至索引1。
以与索引1同样的方式,可以将空读取缓存区域A3、开始逻辑地址8以及读取缓存区域A3的空尺寸0重新匹配至如图6所示的索引2。在这种情况下,可以移除已经匹配至索引2的读取缓存区域A1、开始逻辑地址776以及读取缓存区域A1的空尺寸3。匹配被移除的读取缓存区域A1可以转变成空(或未匹配)读取缓存区域。
以与索引1同样的方式,可以将空读取缓存区域A7、开始逻辑地址16以及读取缓存区域A7的空尺寸4重新匹配至如图6所示的索引3。在这种情况下,可以移除已经匹配至索引3的读取缓存区域A8、开始逻辑地址528以及读取缓存区域A8的空尺寸1。读取缓存区域A8可以转变成空(或未匹配)读取缓存区域。
根据读取请求R(0,20)将新的信息匹配至索引2和索引3可以表示近来提供的数据被缓存以及通过先前读取请求缓存的数据不再被缓存。
参考图8,可以描述在读出数据的尺寸小于或等于每个读取缓存区域RCA的尺寸的情况下的读取缓存表RCT的更新处理和数据缓存处理。
在接收到读取请求前,读取缓存表RCT和读取缓存器RC的状态可以是如下状态。
索引2可以处于没有数据与其匹配的状态。
如果接收到用于自开始逻辑地址8的8个逻辑地址的集的读取请求R(8,8),则由于读出数据的尺寸(4KB=528字节*8)等于每个读取缓存区域RCA的尺寸(4KB),因此可以更新读取缓存表RCT以及可以读出数据,如下。
由于开始逻辑地址8是属于与如图6所示的索引2对应的逻辑地址组LG2的逻辑地址,因此可以匹配至索引2。在空读取缓存区域A2、A3以及A7之中,可以将读取缓存区域A7匹配至索引2。由于数据被缓存为使得匹配的读取缓存区域A7完全被缓存,因此可以将读取缓存区域A7的空尺寸0匹配至索引2。
参考图9,描述了在读取缓存区域RCA已经匹配至与读取请求开始逻辑地址S_LBA属于的逻辑地址组对应的索引的情况下和在读出数据的尺寸大于读取缓存区域RCA的空尺寸的情况下的读取缓存表RCT的更新处理和数据缓存处理。
在接收到读取请求前,读取缓存表RCT和读取缓存器RC的状态可以是如下状态。
索引2可以处于读取缓存区域A7、开始逻辑地址8以及读取缓存区域A7的空尺寸0与其匹配的状态。
如果接收到用于自开始逻辑地址264的4个逻辑地址的集的读取请求R(264,4),则可以更新读取缓存表RCT以及可以缓存读出数据,如下。
由于开始逻辑地址264是属于与如图6所示的索引2对应的逻辑地址组LG2的逻辑地址,因此可以匹配至索引2。由于读出数据的尺寸4大于已经匹配至索引2的读取缓存区域A7的空尺寸0,因此读出数据可以不缓存在读取缓存区域A7中。因此,在空 读取缓存区域A2和A3之间,可以将读取缓存区域A2重新匹配至索引2。由于2KB的读出数据缓存在匹配的读取缓存区域A2中,因此可以将读取缓存区域A2的空尺寸4匹配至索引2。
即,在匹配的读取缓存区域的空白空间不足,并且因此即使读取缓存区域已经匹配至与读取请求的开始逻辑地址属于的逻辑地址组对应的索引,读出数据也可以不被缓存的情况下,可以重新匹配空读取缓存区域。
参考图10,可以描述在读取缓存区域RCA已经匹配至与读取请求的开始逻辑地址S_LBA属于的逻辑地址组对应的索引的情况下和在读出数据的尺寸小于或等于读取缓存区域RCA的空尺寸的情况下的读取缓存表RCT的更新处理和数据缓存处理。
在接收到读取请求前,读取缓存表RCT和读取缓存器RC的状态可以是如下状态。
索引2可以处于读取缓存区域A2、开始逻辑地址264以及读取缓存区域A2的空尺寸4与其匹配的状态。
如果接收到用于自开始逻辑地址8的3个逻辑地址的集的读取请求R(8,3),则可以更新读取缓存表RCT以及可以缓存读出数据,如下。
由于读出数据的尺寸3小于已经匹配至如图6所示的索引2的读取缓存区域A2的空尺寸4,因此可以不需要匹配用于缓存读出数据的新的读取缓存区域,以及可以将读出数据缓存在读取缓存区域A2中。可以将开始逻辑地址8另外匹配至已经匹配的开始逻辑地址264。由于总共3.5KB的读出数据被缓存在匹配的读取缓存区域A2中,因此可以将读取缓存区域A2的空尺寸1匹配至索引2。
即,在读取缓存区域已经匹配至与读取请求的开始逻辑地址属于的逻辑地址组对应的索引并且匹配的读取缓存区域的空白空间足够缓存读出数据的情况下,事实上可以使用已经匹配的读取缓存区域,以缓存读出数据。
参考图11,可以描述在读取缓存区域RCA已经匹配至与读取请求的开始逻辑地址S_LBA属于的逻辑地址组对应的索引的情况下和在读出数据的尺寸大于读取缓存区域RCA的空尺寸的情况下的读取缓存表RCT的更新处理和数据缓存处理。
在接收到读取请求前,读取缓存表RCT和读取缓存器RC的状态可以是如下状态。
索引2可以处于读取缓存区域A2、开始逻辑地址264和8以及读取缓存区域A2的空尺寸1与其匹配的状态。
如果接收到用于自开始逻辑地址520的2个逻辑地址的集的读取请求R(520,2),则可以更新读取缓存表RCT以及可以缓存读出数据,如下。
由于开始逻辑地址520是属于与如图6所示的索引2对应的逻辑地址组LG2的逻辑地址,因此可以匹配至索引2。由于读出数据的尺寸2大于已经匹配至索引2的读取缓存区域A2的空尺寸1,读出数据可以不缓存在读取缓存区域A中。因此,在空读取缓存区域A3和A7之间,可以将读取缓存区域A3重新匹配至索引2。由于1KB的读出数据被缓存在匹配的读取缓存区域A3中,因此可以将读取缓存区域A3的空尺寸6匹配至索引2。
在这种情况下,可以移除已经匹配至索引2的读取缓存区域A2、开始逻辑地址264和8以及读取缓存区域A2的空尺寸1。匹配被移除的读取缓存区域A2可以转变成空(或未匹配)读取缓存区域。根据读取请求R(520,2)将新的信息数据匹配至索引2可以表示近来提供的数据被缓存并且通过先前读取请求缓存的数据不再被缓存。
图12是示出根据本发明的实施例的包括数据储存设备的数据处理系统的框图。
参考图12,数据处理系统1000可以包括主机设备1100和数据储存设备1200。
数据储存设备1200可以包括控制器1210和非易失性存储器件1220。数据储存设备1200可以通过耦接到诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏播放器、TV、车载信息娱乐系统等的主机设备1100来使用。数据储存设备1200也可以称为存储系统。
控制器1210可以包括主机接口单元1211、控制单元1212、存储器接口单元1213、随机存取存储器1214以及错误校正码(ECC)单元1215。
控制单元1212可以响应于来自主机设备1100的请求控制控制器1210的总体操作。控制单元1212可以驱动用于控制非易失性存储器件1220的固件或软件。如上面参照图2至图11所描述的,控制单元1212可以通过参考读取缓存表来执行读取缓存操作。
随机存取存储器1214可以用作控制单元1212的工作存储器。随机存取存储器1214可以用作暂时储存从非易失性存储器件1220读取的数据或者从主机设备1100提供的数据的缓冲存储器。随机存取存储器1214可以用作缓存在发送到主机设备1100的数据之中的最近发送或者频繁发送的数据的读取缓存器。
主机接口单元1211可以使主机设备1100与控制器1210接口。例如,主机接口单元1211可以通过诸如通用串行总线(USB)协议、通用闪速储存(UFS)协议、多媒体 卡(MMC)协议、外围部件互联(PCI)协议、PCI高速(PCI-E)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议以及串行连接SCSI(SAS)协议的各种接口协议中的一种与主机设备1100通信。
存储器接口单元1213可以使控制器1210与非易失性存储器件1220接口。存储器接口单元1213可以向非易失性存储器件1220提供命令和地址。此外,存储器接口单元1213可以与非易失性存储器件1220交换数据。
ECC单元1215可以通过使用错误校正码对要储存在非易失性存储器件1220中的数据进行编码。此外,ECC单元1215可以通过使用错误校正码对从非易失性存储器件1220读出的数据进行解码。ECC单元1215可以包括在存储器接口单元1213中。
非易失性存储器件1220可以用作数据储存设备1200的储存介质。非易失性存储器件1220可以包括多个非易失性存储芯片(或裸片)NVM_1至NVM_k。
控制器1210和非易失性存储器件1220可以制造为各种数据储存设备中的任何一种。例如,控制器1210和非易失性存储器件1220可以集成到一个半导体器件中,以及可以制造为成MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡、成SD、迷你SD和微型SD形式的安全数字卡、通用串行总线(USB)储存设备、通用闪速储存(UFS)设备、个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能多媒体卡、记忆棒等中的任何一种。
图13是示出根据本发明的实施例的包括固态驱动器(SSD)的数据处理系统的框图。
参考图13,数据处理系统2000可以包括主机设备2100和固态驱动器(SSD)2200。
SSD 2200可以包括SSD控制器2210、缓冲存储器件2220、非易失性存储器件2231至223n、电源2240、信号连接器2250和电力连接器2260。
SSD控制器2210可以响应于来自主机设备2100的请求访问非易失性存储器件2231至223n。
缓冲存储器件2220可以暂时储存要被储存在非易失性存储器件2231至223n中的数据。此外,缓冲存储器件2220可以暂时储存从非易失性存储器件2231至223n读取的数据。暂时储存在缓冲存储器件2220中的数据可以在SSD控制器2210的控制下被发送到主机设备2100或非易失性存储器件2231至223n。
非易失性存储器件2231至223n可以用作SSD 2200的储存介质。非易失性存储器 件2231至223n可以分别通过多个通道CH1至CHn与SSD控制器2210耦接。一个或更多个非易失性存储器件可以耦接到一个通道。耦接到一个通道的非易失性存储器件可以耦接到同一信号总线和数据总线。
电源2240可以向SSD 2200的内部提供通过电力连接器2260输入的电力PWR。电源2240可以包括辅助电源2241。辅助电源2241可以供给电力以使得SSD 2200在发生突然断电时正常地终止。辅助电源2241可以包括能够利用电力PWR充电的大电容的电容器。
SSD控制器2210可以通过信号连接器2250与主机设备2100交换信号SGL。信号SGL可以包括命令、地址、数据等。信号连接器2250可以根据在主机设备2100和SSD2200之间的接口方案由诸如并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围部件互联(PCI)和PCI高速(PCI-E)协议的连接器来配置。
图14是示出根据本发明的实施例的固态驱动器(SSD)控制器的框图。例如,图14的SSD控制器可以是图13中示出的SSD控制器2210。
参考图14,SSD控制器2210可以包括存储器接口单元2211、主机接口单元2212、错误校正码(ECC)单元2213、控制单元2214以及随机存取存储器2215。
存储器接口单元2211可以向图13的非易失性存储器件2231至223n提供诸如命令和地址的控制信号。此外,存储器接口单元2211可以与非易失性存储器件2231至223n交换数据。存储器接口单元2211可以在控制单元2214的控制下将从缓冲存储器件2220发送的数据分散至相应的通道CH1至CHn。此外,存储器接口单元2211可以在控制单元2214的控制下将从非易失性存储器件2231至223n读取的数据发送到缓冲存储器件2220。
主机接口单元2212可以与图13的主机设备2100的协议对应地提供与SSD 2200的接口。例如,主机接口单元2212可以通过并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、外围部件互联(PCI)和PCI高速(PCI-E)协议中的一种与主机设备2100通信。此外,主机接口单元2212可以执行支持主机设备2100的磁盘模拟功能,以识别出作为硬盘驱动器(HDD)的SSD2200。
控制单元2214可以分析和处理从图13的主机设备2100输入的信号SGL。控制单元2214可以根据用于驱动SSD 2200的固件或软件来控制图13的缓冲存储器件2220和 非易失性存储器件2231至223n的操作。如上面参照图2至图11所描述的,控制单元2214可以通过参考读取缓存表执行读取缓存操作。
随机存取存储器2215可以用作控制单元2214的工作存储器。随机存取存储器2215可以用作缓存在发送到主机设备2100的数据之中的最近发送或者频繁发送的数据的读取缓存器。
ECC单元2213可以在储存在缓冲存储器件2220中的数据之中生成要被发送到非易失性存储器件2231至223n的奇偶校验数据。所生成的奇偶校验位可以与非易失性存储器件2231至223n中的数据一起储存。ECC单元2213可以检测从非易失性存储器件2231至223n读出的数据的错误。当检测到的错误在可校正范围内时,ECC单元2213可以校正检测到的错误。
图15是示出安装有根据本发明的实施例的数据储存设备的计算机系统的框图。
参考图15,计算机系统3000包括电耦接到系统总线3700的网络适配器3100、中央处理器3200、数据储存设备3300、随机存取存储器(RAM)3400、只读存储器(ROM)3500以及用户接口3600。数据储存设备3300可以由图1中示出的数据储存设备100、图12中示出的数据储存设备1200或者图13中示出的SSD 2200来构建。
网络适配器3100可以在计算机系统3000和外部网络之间提供接口。中央处理单元3200执行用于驱动存在于RAM 3400的操作系统或者应用程序的总体操作。
数据储存设备3300可以储存计算机系统3000中所需的通用数据。例如,用于驱动计算机系统3000的操作系统、应用程序、各种程序模块、程序数据以及用户数据可以储存在数据储存设备3300中。
RAM 3400可以用作计算机系统3000的工作存储器。在启动时,操作系统、应用程序、各种程序模块以及从数据储存设备3300读取的为驱动程序所需的程序数据可以加载在RAM 3400上。在操作系统被驱动前激活的BIOS(基本输入/输出系统)可以储存在ROM 3500中。在计算机系统3000和用户之间的信息交换可以通过用户接口3600实施。
图16是示出根据本发明的实施例的包括在数据储存设备中的非易失性存储器件的框图。例如,图16的数据储存设备可以是图1中示出的数据储存设备300。
参考图16,非易失性存储器件300可以包括存储单元阵列310、行解码器320、列解码器330、数据读取/写入块340、电压发生器350以及控制逻辑360。
存储单元阵列310可以包括布置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域处的存储单元。存储单元可以通过存取单元(诸如作为擦除单元的存储块以及作为编程和读取单元的页)来分组。
行解码器320可以通过字线WL1至WLm与存储单元阵列310耦接。行解码器320可以根据控制逻辑360的控制来操作。行解码器320可以对从外部设备(未示出)提供的地址进行解码。行解码器320可以基于解码结果选择并驱动字线WL1至WLm。例如,行解码器320可以向字线WL1至WLm提供从电压发生器350提供的字线电压。
列解码器330可以通过位线BL1至BLn与存储单元阵列310耦接。列解码器330可以根据控制逻辑360的控制来操作。列解码器330可以对从外部设备提供的地址进行解码。列解码器330可以基于解码结果将位线BL1至BLn与分别对应于位线BL1至BLn的数据读取/写入块340的读取/写入电路耦接。此外,列解码器330可以基于解码结果驱动位线BL1至BLn。
数据读取/写入块340可以根据控制逻辑360的控制来操作。数据读取/写入块340可以根据操作模式作为写入驱动器或者感测放大器来操作。例如,数据读取/写入块340可以作为在写入操作中将从外部设备提供的数据储存在存储单元阵列310中的写入驱动器来操作。对于另一示例,数据读取/写入块340可以作为在读取操作中从存储单元阵列310读出数据的感测放大器来操作。
电压发生器350可以产生要用于非易失性存储器件300的内部操作的电压。通过电压发生器350产生的电压可以被施加到存储单元阵列310的存储单元。例如,在编程操作中产生的编程电压可以被施加到要对其执行编程操作的存储单元的字线。对于另一示例,在擦除操作中产生的擦除电压可以被施加到要对其执行擦除操作的存储单元的阱区。对于又一示例,在读取操作中产生的读取电压可以被施加到要对其执行读取操作的存储单元的字线。
控制逻辑360可以基于从外部设备提供的控制信号来控制非易失性存储器件300的总体操作。例如,控制逻辑360可以控制诸如非易失性存储器件300的读取、写入以及擦除操作的非易失性存储器件300的操作。
虽然上面已经描述了各个实施例,但对于本领域技术人员来讲可以理解的是,所描述的实施例仅仅是示例。因此,在本文中所描述的数据储存设备及其操作方法不应该基于所描述的实施例而受到限制。
对于本领域技术人员来讲将明显的是,在不脱离如所附权利要求所限定的本发明的 精神和范围的情况下,可以做出各种改变和变型。