固态盘控制器及其数据处理方法

文档序号:6465930阅读:188来源:国知局
专利名称:固态盘控制器及其数据处理方法
技术领域
本发明涉及数据存储设备控制技术,更具体地,涉及固态盘控制 10 器及其数据处理方法。
背景技术
传统地,在诸如计算机系统之类的电子系统中,将磁盘用作数据 存储设备。然而,随着半导体技术的发展,在计算机系统和便携式设 15备中,已经越来越多地使用固态盘(Solid State Disk, SSD)而不是磁 盘,固态磁盘(SSD)将基于电可擦除可编程只读存储器(EEPROM) (例如,与非(NAND)型EEPROM或或非(NOR)型EEPROM)的 非易失性存储器作为数据存储设备使用。
因为SSD不包括诸如在硬盘驱动器(HDD)中使用的电动机之类 20的机械驱动设备,所以SSD在操作期间很少产生热和噪声。此外,SSD 具有快速存取速率、高集成度以及抗外部影响的稳定性,因此已经将 SSD首选为数据存储设备。此外,SSD的数据传送率远高于HHD的数 据传送率。
在将SSD用作数据存储设备时,控制器控制在主机与基于 25EEPROM的非易失性存储器之间的数据传送。在处理每页数据时,控 制器在固件的控制下将数据传输至非易失性存储器以及从非易失性存 储器接收数据,这降低了SSD的性能。

发明内容
30 本发明的某些实施例提供了具有最佳性能的固态盘控制器及其
数据处理方法。
本发明的某些实施例还提供了一种数据处理方法和设备,用于利 用硬件执行交叉操作而无需固件的干预。
根据本发明的某些实施例,提供了一种固态盘控制器的数据处理 5 方法,包括在读取操作中,读取在易失性存储器的存储区中存储的
扇区位图值,其中所述存储区由指针指示;和基于所述扇区位图值,
选择性地读取形成外部非易失性存储器的页面多个扇区中的至少一个 扇区。
根据本发明的其它实施例,提供了一种固态盘控制器的数据处理
10 方法,包括在读取操作中,基于在易失性存储器的第一存储区中存 储的第一扇区位图值,选择性地读取形成第一非易失性存储器的第一 页面的多个扇区中的至少一个扇区,其中所述第一存储区由指针指示;
和基于在所述易失性存储器的第二存储区中存储的第二扇区位图值, 选择性地读取形成第二非易失性存储器的第二页面的多个扇区中的至
15 少一个扇区。
该数据处理方法还可以包括对于交叉读取操作,将读取命令传 输至与第一非易失性存储器和第二非易失性存储器相连接的通道。
基于第一扇区位图值选择性地读取至少一个扇区包括读取在第 一存储区存储的第一扇区位图值;和分析第一扇区位图值,并响应于 20 至少一个第一随机数据输出命令,基于分析的结果选择性地读取形成 所述第一页面的所述多个扇区中的至少一个扇区。
基于第二扇区位图值选择性地读取至少一个扇区包括读取在第 二存储区中存储的第二扇区位图值;和分析第二扇区位图值,并响应 于至少一个第二随机数据输出命令,基于分析的结果选择性地读取形 25 成所述第二页面的所述多个扇区中的至少一个扇区。
根据本发明的进一步示例实施例, 一种固态盘控制器的数据处理 方法包括所述数据处理方法包括在编程操作中,读取在易失性存 储器的存储区中存储的扇区位图值,其中所述存储区由指针指示;和 基于所述扇区位图值,选择性地将从主机输出的数据的至少一个扇区 30 编程到外部非易失性存储器的页面。
在其它实施例中, 一种固态盘控制器包括易失性存储器,其包 括存储有扇区位图值的存储区;和存储控制器,被配置为在读取操作 中,基于在由指针指示的存储区中存储的扇区位图值,选择性地读取 形成外部非易失性存储器的页面的多个扇区中的至少一个扇区。 5 存储控制器可以包括第一寄存器,被配置为存储所述指针;第
二寄存器;和状态机,被配置为从存储区读取扇区位图值并基于所述 指针将扇区位图值存储在第二寄存器中,分析在第二寄存器中存储的 扇区位图值,以及响应于至少一个随机数据输出命令,基于分析的结 果从外部非易失性存储器读取多个扇区中的至少一个扇区。 10 在进一步其它实施例中, 一种固态盘控制器包括易失性存储器,
其包括存储有扇区位图值的存储区;和存储控制器,被配置为在编 程操作中,基于在由指针指示的存储区中存储的扇区位图值,选择性 地将从主机输出的数据的至少一个扇区编程到外部非易失性存储器的 页面。
15 在进一步其它实施例中, 一种固态盘控制器包括易失性存储器,
其包括存储有第一扇区位图值的第一存储区和存储有第二扇区位图值 的第二存储区;和存储控制器,被配置为在读取操作中,基于在由指 针指示的第一存储区中存储的第一扇区位图值,选择性地读取形成第 一外部非易失性存储器的第一页面的多个扇区中的至少一个扇区,以
20 及基于在第二存储区中存储的第二扇区位图值,选择性地读取形成第 二外部非易失性存储器的第二页面的多个扇区中的至少一个扇区。
在进一步的实施例中, 一种数据存储设备包括非易失性存储器 固态盘控制器;和连接在非易失性存储器与固态盘控制器之间的通道; 其中固态盘控制器包括易失性存储器,包括存储有扇区位图值的存
25 储区;和存储控制器,被配置为在读取操作中,基于在由指针指示的 存储区中存储的扇区位图值,选择性地读取形成外部非易失性存储器 的页面的多个扇区中的至少一个扇区。


30 通过参考附图详细描述其示例实施例,本发明的以上和其它特征
以及优点将变得更加明显,附图中
图l是根据本发明某实施例的包括固态盘(SSD)控制器在内的系
统的方框图2是图1所示的SSD控制器的数据处理方法的流程图; 5 图3A和3B是用于解释图1所示的SSD控制器的随机数据输出操作 的图4是由图1所示的SSD控制器执行的硬件交叉(interleaving)读 取操作的流程图;以及
图5A和5B是用于解释随机数据输出操作的图,所述随机数据输出 10 操作用于图1所示的SSD控制器的硬件交叉读取操作。
具体实施例方式
现在将在下文中参考示出本发明实施例的附图更充分地描述本 发明。然而,可以采用不同的形式具体实现本发明,不应将本发明解 15 释为仅限于这里提出的实施例。更合适地,提供了这些实施例,使得 本公开将清楚和完整并且将向本领域技术人员充分传达本发明的范 围。在图中,为了清楚,夸大了层和区的尺寸和相对尺寸。相同的数 字指示相同的元件。
将理解,在将元件称为"连接"或"耦合"至另一元件时,该元件可 20以直接连接或耦合至另一元件,或可以存在中间元件。相反,在将元 件称为"直接连接"或"直接耦合"至另一元件时,没有中间元件存在。 如这里使用的,术语"和/或"包括一个或更多个所关联的列出的项目的 任何以及全部组合,可以将其简写为"/"。
将理解,尽管在这里使用术语第一、第二等描述各种元件,然而 25这些术语不应限制这些元件。这些术语仅用于区分一个元件与另一元 件。例如,在不背离公开的教义的情况下,可以将第一信号称为第二 信号,并且类似地,可以将第二信号称为第一信号。
这里使用的术语仅是为了描述特定实施例,而不意旨限制本发 明。如这里所使用的,除非上下文明确地指示,否则单数形式"a"、 "an" 30和"the"还包括复数形式。还将理解,在本说明书中使用术语"包括"
(comprise禾口/或comprising,或者indudes禾口/或including) 日寸,指定所
陈述的特征、区域、整数、步骤、操作、元件和/或部件的存在,然而
不排除存在或附加一个或更多个其它的特征、区域、整数、步骤、操
作、元件、部件和/或其组合。
5 除非另有限定,否则这里使用的所有术语(包括技术和科学术语)
具有本领域普通技术人员公知的相同的含义。还将理解,应该将诸如 在常用词典中定义的术语之类的术语解释为具有与其在相关技术和/
或本申请的上下文中的含义一致的含义,而不将其解释为理想化的或 过分正式的理解,除非这里清楚地限定。
10 图l是根据本发明某些实施例的包括固态盘(SSD)控制器30在内
的系统10的方框图。参考图l,可以是计算机系统或移动设备的系统IO 包括主机20、 SSD控制器30、非易失性存储设备50。 SSD包括非易 失性存储设备50,或包括SSD控制器30和非易失性存储设备50。
主机20通过主机接口 (I/F) 49和系统总线BUS将操作命令(例如,
15 读取命令、编程命令、或擦除命令)和地址传输至SSD控制器30。可 选地,主机20可以通过主机接口 (I/F) 49直接将操作命令和地址传输 至SSD控制器30。 SSD控制器30包括易失性存储器31、存储控制器(或 闪存控制器)39、缓冲存储器47和主机I/F49。
可以采用动态随机存取存储器(DRAM)或静态随机存取存储器
20 (SRAM)实现易失性存储器31,易失性存储器31包括多个存储区33、 35和37,每个存储区存储有扇区位图值。可以使用特殊的硬件或固件 对存储在存储区33、 35和37中的扇区位图值进行编程或设置。
存储控制器39包括第一寄存器(或扇区位图指针寄存器)41, 其存储扇区位图指针;第二寄存器(或扇区位图寄存器)43,其基于
25 扇区位图指针存储从易失性存储器31输出的扇区位图值;以及状态机 45。状态机45使用多个控制信号(如命令锁存使能(CLE)信号、芯 片使能(CE)信号、写使能(WE)信号、地址锁存使能(ALE)信 号、读/忙(R/B)输出信号、以及写使能(RE)信号),通过多个通 道51、 57、 63和69中的至少一个相应通道,将数据DATA写入非易失
30 性存储设备50或从非易失性存储设备50读取数据DATA。
可以通过系统总线BUS将状态机45从非易失性存储设备50读取 的数据DATA临时存储在缓冲存储器47中。缓冲存储器47临时存储在 主机20与非易失性存储设备50之间传送的数据DATA。主机I/F 49将数 据DATA传输至主机20以及从主机20接收数据DATA。主机I/F 49可以 5使用串行高级技术连接(ATA)协议、并行ATA协议或其它通信协议。
SSD控制器30和非易失性存储设备50通过多个通道51、 57、 63和 69中的至少一个通道传送数据。可以将两个芯片53和55、 59和61、 65 禾口67、或71和73分别连接到通道51、 57、 63和69之一。然而,与通道 51、 57、 63和69之一连接的芯片的数目可以是一个或大于两个。 10 芯片53、 55、 59、 61、 65、 67、 71和73中每一个均包括页面缓
冲器(未示出),和包括多个存储单元的存储单元阵列(未示出)。可 以釆用闪速(flash)电可擦除可编程只读存储器(EEPROM)实现每 个存储单元。可以采用单级单元(SLC)或多级单元(MLC)实现闪 速EEPROM。
15 图2是图1所示的SSD控制器30的数据处理方法的流程图。图3A和
3B是用于解释图1所示的SSD控制器30的随机数据输出操作的图。这 里,"tR"表示从存储单元阵列的存储单元至页面缓冲器的数据传送时 间。
参考图1直到图3B,通过读取"n"个(其中"n"是自然数,例如8)
20扇区中具有扇区位图值"l"的至少一个扇区,执行随机数据输出操作, 其中"n"个扇区形成与第一通道51连接的第一芯片53的第一页面。这里 单个扇区可以具有"m"字节(其中"m"是自然数,例如512或1024)。
在随机数据输出操作中,状态机45产生多个控制信号,也就是CLE 信号、CE信号、WE信号、ALE信号、R/B输出信号以及RE信号,以
25 响应于从主机20输出的读取命令READ,读取在与第一通道51连接的 第一芯片53的第一页面中存储的数据DATA。第一芯片53分析控制信 号,执行读取命令READ。
在操作S10 (图2)中,状态机45读取在第一寄存器41中存储的扇 区位图指针,读取在易失性存储器31的由扇区位图指针指示的第一存
30储区33中存储的扇区位图值(例如,01100010),将扇区位图值存储在
第二寄存器43中。例如,在例如01100010的扇区位图值中,"l"指示有 效扇区,"O"指示无效扇区,或反之亦然。
如图3A所示,在操作S20 (图2)中,状态机45读取和分析在第二 寄存器43中存储的扇区位图值(例如01100010),并顺序地输出扇区地 5 址和随机数据输出命令,以基于分析的结果从第一页面(或第一芯片 53的页面缓冲器)顺序地读取扇区2、扇区6和扇区7。换言之,根据随 机数据输出操作,状态机45从第一页面或第一芯片53的页面缓存器中 仅读取在第二寄存器43中存储的扇区位图值(例如01100010)中具有 扇区位图值"l"的扇区(例如,扇区2、扇区6或扇区7)。
10 状态机45可以通过系统总线BUS将读取的扇区2、扇区6和扇区7
传输至缓冲存储器47,以将其存储在缓冲存储器47中。可选地,状态 机45可以将读取的扇区2、扇区6和扇区7直接传输至缓冲存储器47。因 此,SSD控制器30不从页面读取所有的扇区,而是基于扇区位图值选 择性地从页面中仅读取至少一个有效扇区,从而提高了性能。
15 图4是由图1所示的SSD控制器执行的硬件交叉(interleaving)读
取操作的流程图。图5A和5B是用于解释随机数据输出操作的图,所述 随机数据输出操作用于图1所示的SSD控制器的硬件交叉读取操作。参 考图l、图4、图5A以及图5B,通过仅读取形成了与第一通道51连接的 第一芯片53的第一页面的"n"个扇区中具有扇区位图值'T'的扇区,以
20 及仅读取形成了与第一通道51连接的第五芯片55的第二页面的"n"个 扇区中具有扇区位图值"l"的扇区,以交叉操作方式执行随机数据输出 操作。
这里,在操作Sll (图4)中,状态机45将多个控制信号(也就是 CLE信号、CE信号、WE信号、ALE信号、R/B输出信号、以及RE信号) 25输出至第一通道51,以响应于从主机20输出的读取命令READ(图5A), 读取第一芯片53的第一页面中存储的数据和第五芯片55的第二页面中 存储的数据。
此后,如图5A所示,在操作S21中(图4),状态机45读取在第一 寄存器41中存储的扇区位图指针,读取在易失性存储器31的由扇区位 30图指针指示的第一存储区33中存储的第一扇区位图值(例如
01100010),将第一扇区位图值存储在第二寄存器43中,以及基于在第 二寄存器43中存储的第一扇区位图值(也就是01100010)读取形成了 第一芯片53的第一页面的"n"个扇区中的扇区2、扇区6和扇区7。换言 之,通过随机数据输出操作,状态机45从第一页面(图5B)或第一芯 5 片53的页面缓冲器中仅读取存储在第二寄存器43中的扇区位图值 01100010中具有扇区位图值'T'的扇区(也就是扇区2、扇区6和扇区7)。 状态机45可以直接或通过系统总线BUS将读取的扇区2、扇区6和扇区7 传输至缓冲存储器47,以它们存储在缓冲存储器47中。
在相对于第一页面的随机数据输出操作结束之后,如图5所示,
10在操作S31中(图4),状态机45读取在易失性存储器31的第二存储区 35中存储的第二扇区位图值(例如10101000),将第二扇区位图值存储 在第二寄存器43中,以及基于第二寄存器43中存储的第二扇区位图值 (也就是10101000)从第二页面或第五芯片的页面缓存器中读取"n" 个扇区中的扇区12、扇区14和扇区16,其中"n"个扇区形成第五芯片55
15的第二页面(图5B)。第二存储区35可以是增大由扇区位图指针指示 的第一存储区33的存储区。换言之,通过随机数据输出操作,状态机 45从第二页面或第五芯片55的页面缓冲器中仅读取在存储在第二寄存 器43中的扇区位图值10101000中具有扇区位图值"1"的扇区(例如,扇 区12、扇区14和扇区16)。状态机45可以直接或通过系统总线BUS将读
20 取的扇区12、扇区14和扇区16传输至缓冲存储器47,以将它们存储在 缓冲存储器47中。
因此,在交叉读取操作中,根据本发明某些实施例的SSD控制器 30自动读取在易失性存储器31的多个存储区的每一个中存储的扇区位 图值而无需固件的干预,以及从特定页面选择性地仅读取至少一个扇
25区,从而提高了性能。为了描述的清楚,描述了读取操作,然而根据 本发明的某些实施例的使用指针的数据处理方法还可以用于写或编程 操作中。
例如,在写(或编程)操作中,状态机45读取在第一寄存器41中 存储的扇区位图指针,读取在易失性存储器31的由扇区位图指针指示 30的第一存储区33中存储的扇区位图值(例如01100010),以及将扇区位
图值(也就是01100010)存储在第二寄存器43中。其次,状态机45读 取和分析在第二寄存器43中存储的扇区位图值01100010,以及基于分 析的结果(例如,分析每个扇区位图值是"1"还是"0"的结果)选择性 地仅将从主机20输出的数据中的扇区2、扇区6和扇区7通过通道51写入 5 (或编程)到第一芯片53。
此外,在交叉操作中,状态机45能够仅将具有扇区位图值"1"的至 少一个扇区写入或编程到与第一通道51连接的第一芯片53的第一页 面,以及仅将具有扇区位图值"l"的至少一个扇区写入或编程到与第一 通道51连接的第五芯片55的第二页面。
10 例如,响应于从主机20输出的写入或编程命令,状态机45读取在
第一寄存器42中存储的扇区位图指针。接着,状态机读取在易失性存 储器31的第一存储区33 (由扇区位图指针指示的)中存储的第一扇区 位图值(例如01100010),将第一扇区位图值存储在第二寄存器43中, 以及基于在第二寄存器43中存储的第一扇区位图值(也就是01100010)
15 选择性地将从主机输出的数据中的扇区2、扇区6和扇区7写入第一芯片 53的第一页面。在结束到第一页面的写入或编程操作之后,状态机45 读取在易失性存储器31的第二存储区35中存储的第二扇区位图值(例 如IOIOIOOO),将第二扇区位图值存储在第二寄存器43中,以及基于在 第二寄存器43中存储的第二扇区位图值(也就是10101000)选择性地
20 将从主机20输出的数据中的扇区12、扇区14和扇区16写入到第五芯片 55的第二页面。
因此,在交叉写入或编程操作中,根据本发明某些实施例的SSD 控制器30自动读取在易失性存储器31的多个存储区的每一个中存储的 扇区位图值而无需固件的干预,以及基于扇区位图值选择性地仅将从 25 主机输出的数据中的至少一个扇区写入或编程到特定页面。因为SSD 控制器30不将所有数据不必要地写入或编程到特定页面,所以提高了 SSD控制器30的性能。
根据本发明,在交叉读取操作中,SSD控制器自动地读取在易失 性存储器的多个存储区中的每一个中存储的扇区位图值而无需固件的 30干预,从特定页面选择性地仅读取至少一个扇区,从而提高了性能。
此外,SSD控制器自动地读取在易失性存储器的多个存储区中的每一
个中存储的扇区位图值而无需固件的干预,基于扇区位图值选择性地 仅将从主机输出的数据中的至少一个扇区写入或编程到特定页面,从 而提高了性能。
虽然通过参考其示例实施例具体地示出和描述了本发明,然而本 领域技术人员将理解,可以在不脱离由以下权利要求所限定的本发明 的精神和范围的情况下进行各种形式和细节上的改变。
权利要求
1、一种固态盘控制器的数据处理方法,所述数据处理方法包括在读取操作中,读取在易失性存储器的存储区中存储的扇区位图值,其中所述存储区由指针指示;和基于所述扇区位图值,选择性地读取形成外部非易失性存储器的页面的多个扇区中的至少一个扇区。
2、 根据权利要求l的数据处理方法,其中,响应于至少一个随机 数据输出命令,执行选择性地读取至少一个扇区。
3、 根据权利要求l的数据处理方法,其中,所述扇区位图值中的 每一个指示所述多个扇区中的相应扇区是否有效。
4、 根据权利要求l的数据处理方法,还包括将选择性读取的至 少一个扇区存储在缓冲存储器中。
5、 一种固态盘控制器的数据处理方法,所述数据处理方法包括 在读取操作中,基于在易失性存储器的第一存储区中存储的第一扇区位图值,选择性地读取形成第一非易失性存储器的第一页面的多 个扇区中的至少一个扇区,其中所述第一存储区由指针指示;和基于在所述易失性存储器的第二存储区中存储的第二扇区位图 值,选择性地读取形成第二非易失性存储器的第二页面的多个扇区中 的至少一个扇区。
6、 根据权利要求5的数据处理方法,还包括对于交叉读取操作, 将读取命令传输至与第一非易失性存储器和第二非易失性存储器相连 接的通道。
7、 根据权利要求5的数据处理方法,其中,基于第一扇区位图值 选择性地读取至少一个扇区包括读取在第一存储区存储的第一扇区位图值;和分析第一扇区位图值,并响应于至少一个第一随机数据输出命 令,基于分析的结果选择性地读取形成所述第一页面的所述多个扇区 中的至少一个扇区。
8、 根据权利要求7的数据处理方法,其中,基于第二扇区位图值 选择性地读取至少一个扇区包括读取在第二存储区中存储的第二扇区位图值;和分析第二扇区位图值,并响应于至少一个第二随机数据输出命 令,基于分析的结果选择性地读取形成所述第二页面的所述多个扇区 5 中的至少一个扇区。
9、 一种固态盘控制器的数据处理方法,所述数据处理方法包括 在编程操作中,读取在易失性存储器的存储区中存储的扇区位图值,其中所述存 储区由指针指示;和 10 基于所述扇区位图值,选择性地将从主机输出的数据的至少一个扇区编程到外部非易失性存储器的页面。
10、 一种固态盘控制器,包括-易失性存储器,包括存储有扇区位图值的存储区;和 存储控制器,被配置为在读取操作中,基于在由指针指示的存储 15区中存储的扇区位图值,选择性地读取形成外部非易失性存储器的页 面的多个扇区中的至少一个扇区。
11、 根据权利要求10的固态盘控制器,其中,所述存储控制器包括第一寄存器,被配置为存储所述指针; 20 第二寄存器;和状态机,被配置为从存储区读取扇区位图值并基于所述指针将 扇区位图值存储在第二寄存器中,分析在第二寄存器中存储的扇区位 图值,以及响应于至少一个随机数据输出命令,基于分析的结果从外 部非易失性存储器读取多个扇区中的至少一个扇区。 25
12、 一种固态盘控制器,包括-易失性存储器,包括存储有扇区位图值的存储区;和 存储控制器,被配置为在编程操作中,基于在由指针指示的存 储区中存储的扇区位图值,选择性地将从主机输出的数据的至少一个 扇区编程到外部非易失性存储器的页面。 30
13、 一种固态盘控制器,包括- 易失性存储器,包括存储有第一扇区位图值的第一存储区和存储有第二扇区位图值的第二存储区;和存储控制器,被配置为在读取操作中,基于在由指针指示的第 一存储区中存储的第一扇区位图值,—选择性地读取形成第一外部非易 5失性存储器的第一页面的多个扇区中的至少一个扇区,以及基于在第 二存储区中存储的第二扇区位图值,选择性地读取形成第二外部非易 失性存储器的第二页面的多个扇区中的至少一个扇区。
14、 根据权利要求13的固态盘控制器,其中,在读取操作是交叉读取操作时,所述存储控制器将读取命令输出至与第一外部非易失性 10 存储器和第二外部非易失性存储器相连接的通道。
15、 一种数据存储设备,包括非易失性存储器; 固态盘控制器;和连接在非易失性存储器与固态盘控制器之间的通道; 15 其中固态盘控制器包括易失性存储器,包括存储有扇区位图值的存储区;和 存储控制器,被配置为在读取操作中,基于在由指针指示的存储区中存储的扇区位图值,选择性地读取形成外部非易失性存储器的页面的多个扇区中的至少一个扇区。
全文摘要
提供了一种固态盘控制器。固态盘控制器包括易失性存储器,包括存储扇区位图值的存储区;和存储器控制器。在读取操作中,存储器控制器读取在由指针指示的存储区中欧存储的扇区位图值,以及通过随机数据输出操作,基于扇区位图值选择性地读取形成外部非易失性存储器的页面的多个扇区中的至少一个扇区。
文档编号G06F3/06GK101349963SQ200810136100
公开日2009年1月21日 申请日期2008年7月15日 优先权日2007年7月19日
发明者李太学, 韩奎旭 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1