首页> 中国专利> 具有加快的访问速度的便携式存储设备

具有加快的访问速度的便携式存储设备

摘要

一种存储设备具有用于传输数据文件的两个连接器:第一连接器,可以通过其以加快的速度传输数据文件,以及第二连接器,可以通过其以传统速度传输数据文件。根据本公开,用户可以通过将主机连接到存储设备的恰当的连接器,选择她/他想要将数据文件从主机传输到存储设备以及反之的速度(即“正常速度”或“加快的速度”)。第一连接器内部地与有助于以加快的速度传输数据的多个控制器相连,以及第二连接器内部地与有助于以正常速度传输数据的控制器相连。

著录项

  • 公开/公告号CN102105856A

    专利类型发明专利

  • 公开/公告日2011-06-22

    原文格式PDF

  • 申请/专利权人 桑迪士克以色列有限公司;

    申请/专利号CN200980129345.4

  • 申请日2009-07-16

  • 分类号G06F3/06(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人黄小临

  • 地址 以色列萨巴

  • 入库时间 2023-12-18 02:34:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-09

    授权

    授权

  • 2011-08-24

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20090716

    实质审查的生效

  • 2011-06-22

    公开

    公开

说明书

技术领域

本发明大体上涉及具有增大的读和写吞吐量的便携式存储设备(“PSD”),并且更具体地,涉及可以选择性地操作在两种可用的操作模式:“正常模式”和“快速访问”模式之一中的便携式存储设备。

背景技术

在最近几年,用于将数据从一个地点转移到另一地点的基于非易失性的便携式存储设备(“PSD”)的使用快速地增加,因为它们是便携的,并且它们具有小的物理尺寸和大的存储容量。存储设备具有多种设计。一些存储设备被称为“嵌入式的”,意味着它们不能并且不意图由用户将其从它们与之一起操作的主机设备中移除。其他存储设备是可移除的,这意味着用户可以将它们从一个主机设备移动到另一主机设备,或者用另一存储设备来取代存储设备。

例如,众所周知为“钥匙盒磁盘(Disk-on-Key)”设备的其他存储设备被提供有通用串行总线(“USB”)接口,以允许它们与计算机系统相连。被提供有USB接口的闪存设备在该领域中也已知为USB闪存盘或“UFD”。多媒体卡(MultiMedia Card)(“MMC”)、安全数字(Secure Digital)(“SD”)、miniSD和microSD是与诸如多媒体播放器(例如MP3和MP4播放器)、数码相机、膝上型计算机、全球定位系统(“GPS”)设备等的多种主机设备一起使用的示范性的闪存设备。

PSD的一种使用情况涉及转移诸如电影之类的非常大的文件以用于家庭娱乐消费。“非常大的文件”是其大小是例如4千兆字节(“GB”)或更大的文件。读或写非常大的文件的速度可能是不够的或恼人的。例如,虽然从PSD读取数据的速度通常满足于观看电影,但是将这样的电影写到PSD盘上的相对慢的速度暗示着等待几分钟(例如3-4分钟)以(使用每秒18兆字节(“MB/s”)的典型写速度)将4GB电影拷贝到PSD上,这对于许多用户是不令人满意的。由于将数据写入闪存中、即将数据一页一页写到页中并且相对于预定阈值迭代地重新检查与该数据写相关联的电压的方式,因此将大的文件写入存储设备中花费长的时间。

图1示出了典型的便携式存储设备(“PSD”)100。便携式存储设备100包括USB连接器110、存储控制器120以及包括两个单独闪存单元140和150的存储区域130。存储控制器120管理数据到/从存储区域130的传输,同时处理闪存单元140和150作为单一的、统一的存储区域(即存储区域130),其中处理闪存单元140和150作为单一的、统一的存储区域意味着,存储控制器120使用单一文件系统来对闪存单元140和150寻址。每个闪存单元140和150可以是闪存芯片、闪存裸片(die)或闪存包。USB连接器110具有如图2所示的典型电管脚布局(layout)。

参考图2,它示意性地图示了可由标准USB连接器使用的4-管脚布局。管脚1和4提供来自被连接的主机(未在图2中示出)的电能量以对PSD 100供能(energizing)。管脚2和3传输与所传输的数据相应的电信号。

已经注意到,可以使用低比特率来将小的数据文件传输到存储设备或从存储设备传输,因为由于文件小因而传输这样的文件将不花费太多的时间,来设计图1的传统存储设备的架构。然而,当文件变为大的数据文件时,图1的传统存储设备的架构是不够的(即,在数据传输速度方面)。从而,需要具有增大的数据传输速度的PSD。具体地,需要具有增大的数据写速度的PSD。

发明内容

因此,具有如下存储设备将是有益的:在可以在存储设备和主机之间“正常”(即,以传统比特率或以传统速度)传输相对小的数据文件的第一模式中,或者在可以在存储设备和主机之间以比第一模式高的比特率来传输更大的数据文件的第二模式中,可以与诸如个人计算机(“PC”)之类的主机交换数据的存储设备。

各种实施例被设计来实现在此提供的这样的数据传输例子。结合意图示范性和说明性但不限制范围的系统、工具和方法,来描述并说明如下示范性实施例及其方面。

在一个实施例中,一种存储设备可以具有用于传输数据文件的两个连接器:第一连接器,可以通过其以加快的速度传输数据文件,以及第二连接器,可以通过其以传统速度传输数据文件。根据本公开,通过将主机连接到合适的连接器,用户可以选择她/他想要将数据文件从主机传输到存储设备以及反之的速度(即“正常速度”或“加快的速度”)。第一连接器内部地与有助于以加快的速度传输数据的多个控制器相连,以及第二连接器内部地与有助于以正常速度传输数据的控制器相连。

在另一实施例中,一种用于准备用于写入存储设备的诸如主机内容(例如多媒体文件)之类的内容的方法可以包括:在具有第一(即主机的)文件系统的主机中,为包括多个离散的存储器单元和多个第一控制器(在这里可互换地使用术语“第一控制器”和“并行控制器”)的存储设备创建第二文件系统(第二文件系统在下文中被称为存储设备的文件系统);通过从第一文件系统读取主机内容、并将所读取的主机内容写到第二文件系统,来将主机内容拷贝到第二文件系统;以及将第二文件系统分段为分别指向多个第一控制器的多个分段;也就是,每个分段唯一地针对、关联于或指向多个第一控制器中的具体的、指定的、或特定的控制器。

创建第二文件系统可以包括将第二文件系统存储在第一文件系统内的文件(在下文中被称为“回环文件”)中,以及分段第二文件系统包括将第一文件系统内的回环文件分段为数量上等于第一控制器的数量的多个分段,其中每个分段承载或包含包括主机内容的一部分的第二文件系统的一部分。

该方法还可以包括例如通过由与多个存储器单元中的一个或多个相关联的第一控制器来将多个分段中的每一个写入多个存储器单元中的一个或多个,来由多个第一控制器分别将多个分段写入多个存储器单元。

该方法还可以包括由存储设备的第二控制器经由存储设备的第二连接器接收读取从多个存储器单元之一中的例如存储器扇区的地址读取数据的请求,以及由第二控制器从由该地址指向的多个存储器单元之一中的存储区域读取数据。

从由该地址指向的存储区域读取数据可以包括:(i)确定与存储区域相关联的逻辑页,(ii)从所确定的逻辑页确定逻辑页所属的存储器单元,以及(iii)确定存储区域在所确定的闪存单元内的物理位置。一旦确定了存储区域在所确定的闪存单元内的物理位置,就可以从该位置读取数据。

将主机内容拷贝到第二文件系统可以包括:将第二文件系统安装到第一文件系统中的前一步骤,以及在将主机内容拷贝到第二文件系统之后,从第一文件系统卸载第二文件系统的后一步骤。

因此,一种用于准备用于写入存储设备的主机内容的方法可以包括:在具有第一文件系统的主机中,为包括多个离散存储器单元和多个控制器的存储设备创建第二文件系统;将第二文件系统安装到第一文件系统中;通过从第一文件系统读取主机内容、并将所读取的主机内容写入第二文件系统,来将主机内容拷贝到第二文件系统;从第一文件系统卸载第二文件系统;以及将被卸载的第二文件系统分段为分别相应于多个控制器的多个分段。

在又一实施例中,提供了一种存储设备。该存储设备可以包括:实现为多个离散的存储器单元的非易失性存储器;还在下文中被称为“快速访问连接器”的第一连接器;多个第一控制器,其中多个第一控制器中的每一个功能性地插入到第一连接器和多个存储器单元中的各一个或多个之间;第二连接器;以及第二控制器,管理第二连接器和多个存储器单元之间的数据传输。

通过从主机接收被分段为分别指向多个第一控制器的多个分段的文件系统,并通过由多个第一控制器将多个分段写入多个存储器单元,多个第一控制器可以管理第一连接器和多个存储器单元之间的数据传输,使得第一控制器中的每一个将各自的分段写到与该控制器相关联的多个存储器单元中的一个或多个。

在再一实施例中,第一控制器之一还用作第二控制器,其中还用作第二控制器的第一控制器取决于(即,由与存储设备一起操作的主机)使用哪个连接器(即第一连接器或第二连接器),来管理第一连接器和多个存储器单元中的各一个或多个之间、或者第二连接器和多个存储器单元之间的数据传输。

在另一实施例中,第二控制器适合于将数据写入多个存储器单元,以及第一控制器适合于并行地从多个存储器单元同时读取数据。

存储设备的第一连接器可以是快速访问(“RAC”)连接器,以及第二连接器可以是USB阳性A类型连接器。RAC连接器可以包括多个触点分组,其中每个触点分组与第一控制器中的特定一个相关联。存储设备中的非易失性存储器单元中的至少一个可以是或包括NAND闪存。

除了上面描述的示范性方面和实施例之外,通过参考附图并通过学习如下详细描述,进一步的方面和实施例将变得明显。

附图说明

在附图中图示了示范性实施例。意图使在此公开的实施例是说明性的而不是限制性的。然而,当与附图一起阅读时,参考如下详细描述,可以更好地理解本公开,在附图中:

图1是根据现有技术的便携式存储设备;

图2是根据现有技术的USB连接器的管脚布局;

图3是根据示例实施例的便携式存储设备的方框图;

图4是根据示例实施例的便携式存储设备的多USB连接器的管脚布局;

图5示出了根据示例实施例的为存储设备进行的文件系统的准备;

图6示出了根据示例实施例的写图5的文件系统的分段;

图7示出了根据示例实施例的主机内容写-读循环;

图8图示了根据示例实施例的用于为存储设备准备新的、分段的文件系统的方法;

图9A、9B和9C共同展示了在主机的文件系统上安装(mounting)存储设备的文件系统;

图10图示了根据示例实施例的用于将新文件系统写入存储设备中的方法;

图11图示了根据示例实施例的用于从存储设备读取主机内容的方法;

图12示出了根据另一示例实施例的用于从存储设备读取主机内容的主机设备堆栈;

图13示出了根据另一示例实施例的主机内容写-读循环;

图14图示了根据示例实施例的用于在主机中(重新)聚合(assemble)分段的文件系统的方法;以及

图15是根据另一示例实施例的便携式存储设备的方框图。

将意识到,为了说明的简单和清楚,没有必要按比例画出附图中示出的元件。此外,在被视为恰当的情况下,可能在附图之间重复附图标记以代表同样、相应或类似的元件。

具体实施方式

下面的描述提供了示例实施例的各种细节。然而,该描述不意图限制权利要求的范围,而意图解释本发明的各种原则以及实现它的方式。

图3是根据示例实施例的PSD 300的方框图。PSD 300包括实现为多个离散(discrete)的存储器单元300、331、332、333、334、335、336和337(存储器单元330至337分别被指定为“存储器单元0”至“存储器单元7”)的非易失性存储器370。用“离散的存储器单元”表示由控制器控制、处理或管理的任何存储器裸片、存储器芯片和存储器包。

PSD 300还包括第一连接器350(在这里被称为快速访问(“RAC”)连接器)、多个第一(在这里也被称为“并行”)控制器341、342、343和344(第二控制器341至344分别被指定为“控制器1”至“控制器4”)。RAC连接器350可以包括多个触点分组(contacts groups),其中每个触点分组与第一控制器341至344中的特定一个相关联。

根据该示例实施例,存在八个存储器单元(即存储器单元330至337)和四个并行控制器(即第一控制器341至344),并且四个并行控制器341至344中的每一个被功能性地插入到RAC连接器350和多个存储器单元330至337中的各两个之间。例如,在RAC连接器350和存储器单元330和331之间功能性地插入控制器341;在RAC连接器350和存储器单元332和333之间功能性地插入控制器342,等等。通常,可以在RAC连接器和多个存储器单元中的各一个或多个之间功能性地插入并行控制器中的一个或多个。

并行控制器341至344操作来通过由存储设备300从与RAC连接器350相连的主机(未在图3中示出)接收被分段为分别指向多个控制器341至342的多个文件系统分段的文件系统,并通过将文件系统分段分别写入多个存储器单元中的各两个或多个中,来管理在RAC连接器350和多个存储器单元330至337之间的数据传输。用“分别指向多个控制器的文件系统分段”表示文件系统分段的数量等于多个并行控制器的数量,其在图3中是4,并且由主机(未在图3中示出)将文件系统分段中的每一个经由RAC连接器350转发给指定控制器,以由那个控制器来唯一地处理。参考四个示范性的控制器341至344,存储设备300的文件系统将被主机(即当它与RAC连接器350相连时)分段为四个文件系统分段,并且主机将同时向并行控制器341发送文件系统的第一分段(即第一文件系统分段)、向并行控制器342发送文件系统的第二分段、向控制器343发送文件系统的第三分段、以及向控制器344发送文件系统的第四分段。然后,每个并行控制器将把它从主机接收的文件系统分段写到与那个控制器相关联的存储器单元中。

要注意的是,根据本公开,并行控制器的数量可以不同于四(即,可以存在少于或多于四个的并行控制器),多个离散存储器单元的数量可以不同于八(即,可以存在少于或多于八个的存储器单元),以及多个并行控制器中的每一个可以被功能性地插入到RAC连接器350和大于2的多个存储器单元之间。例如,可以有16个并行控制器,并且16个并行控制器中的每一个可以被功能性插入到“RAC”350和4个存储器单元之间。

PSD 300还包括可以是标准类型的USB连接器(如图3所示)或非USB连接器的第二连接器310。PSD 300还包括操作来管理第二连接器310和多个存储器单元之间的数据传输的第二控制器320。

存储器单元330至337是可以是闪存类型(例如,它们可以实现为标准NAND闪存芯片)或非闪存类型的非易失性存储器单元。可替代地,存储器单元330至337中的至少一个可以是闪存类型的,而其他存储器单元是非闪存类型的。可替代地,存储器单元330至337中的至少一个可以是非闪存类型的,而其他存储器单元是闪存类型的。

第一连接器350,即快速访问连接器,提供了多于一条的通信链路。例如,第一连接器350可以包括四条单独的USB链路,或者一条USB链路和其他一条或多条非USB链路。第二连接器310可以是USB连接器,例如阳性(male)A类型连接器的USB连接器。USB连接器310的管脚布局可以与图1的USB连接器110的管脚布局相同,以及RAC连接器350可以具有如图4(在下面描述)所示的管脚布局,其通过例子的方式具有四个单独的USB接口D1、D2、D3和D4,其中“D1”指的是触点对“D1+/D1-”,“D2”指的是触点对“D2+/D2-”,等等。参考图4,RAC连接器350包括四个触点分组,其中每个触点分组与第一控制器341至344中的特定一个相关联。例如,触点分组D1可以与第一控制器341相关联,触点分组D2可以与第一控制器342相关联,等等。假设RAC连接器350具有图4所示的管脚布局,四个单独的USB接口D1至D4中的每一个与管理两个存储器单元的相应控制器341、342、343、344相连。存储器单元330至337可以具有相同的存储容量或不同的存储容量。

可以是某种标准存储器控制器的控制器320经由通信总线325对存储器单元330至337寻址。控制器320可以例如经由其管脚布局如图2所示的USB阳性“A”类型连接器310与标准USB主机(未在图3中示出)相接326。

控制器341至344中的每一个以与在便携式存储设备的领域中众所周知的传统USB闪存盘控制器相同的方式来处理存储操作(即“写”、“读”和“擦除”操作),因此它可以是这种传统USB闪存盘控制器。控制器341至344可以是相同类型(即,它们中的每一个可以包括相同类型的通信接口,例如USB通信接口),在该情况下,RAC连接器350可以具有诸如图4所示的管脚布局之类的管脚布局,其中该示范性的管脚布局提供了四条单独并独立的USB通信链路。可替代地,控制器341至344中的每一个可以是不同类型的(即,每个控制器可以包括不同类型的通信接口),在该情况下,RAC连接器350可以具有与图4所示的管脚布局不同的管脚布局,其提供了四条单独、独立并不同的通信链路。控制器341至344中的至少一个可以包括USB通信接口。

如果终端用户想要将大数据量文件(例如4千兆字节)从主机下载到存储设备300,则终端用户将存储设备300经由RAC连接器350连接到主机(未在图3中示出)。在将RAC连接器350连接到主机时或之后,主机与并行控制器341至344中的每一个握手,并处理它,就好像它属于或代表单独的存储设备一样。为了有助于将大数据量文件快速写入非易失性存储器370,主机创建用于存储设备300的新文件系统,将大数据量文件拷贝到新文件系统,然后将(具有拷贝到此的大数据量文件的)新文件系统划分为与存储设备300的并行控制器的数量相应的多个文件系统分段(即,存储设备的文件系统被分段为每个控制器一个文件系统分段)。最后,主机与每个并行处理器通信,并向每个并行控制器转发指向或目标针对那个并行控制器的文件系统分段。经由RAC连接器350与存储设备300相连的主机逻辑地从并行控制器341至344“知道”非易失性存储器370的整个存储布局,并基于该知道而在并行控制器341至344之间分布(具有所拷贝的大数据量文件的)新文件系统。例如,在下面描述的图5、6、8和9中阐述了文件系统分段的划分和分布。

参考图4,它描述了示范性的快速访问连接器(“RAC”)400。每个D+/D-对被布线(wired),或者连接到各自的并行控制器。例如,管脚2和3(D1+/D1-对)可以与控制器341相连,管脚4和5(D2+/D2-对)可以与控制器342相连,等等。管脚1和10分别使得能够从主机提供激活PSD 300所要求的电压和地电势。

经由诸如连接器400之类的10管脚RAC与PSD 300相连的主机将PSD300“看”作四个离散的USB大容量存储设备,因此单独处理它们,而如果主机经由控制器310与PSD 300相连,则主机将PSD 300看作单一的大容量存储设备,因为主机可以寻址所有八个存储器单元341至344作为单一的、统一的非易失性存储器。贯穿于存储器单元341至344,均匀分布包括文件系统的扇区(sectors)。

为存储设备准备文件系统

图5示出了根据示例实施例的为存储设备进行的文件系统500的准备。将结合图3来描述图5。当终端用户想要将内容(例如视频文件)从主机下载到PSD 300时,则终端用户向主机“标记”她/他想要下载到PSD 300的内容,并且主机准备所标记的内容以写入PSD 300。主机通过使用它自己的文件系统(在这里被称为“第一文件系统”)来准备写入PSD 300的内容,如下。首先,主机创建将被发送给PSD 300并由PSD 300使用的第二文件系统。然后,主机通过从第一(即从主机的)文件系统读取所标记的内容、并将所读取的内容写到第二文件系统,来将所标记的(主机)内容拷贝到第二文件系统。接着,主机将第二文件系统划分为多个文件系统分段,多个分段分别指向多个并行控制器341至344。

参考图5,主机通过首先在新文件500(在这里被称为“回环文件(loopfile)”)内创建空文件系统520来准备第二文件系统,其中由主机在主机的文件系统上(即第一文件系统上)创建新文件500。在主机创建空文件系统520之后,主机将由终端用户请求的内容(即所标记的内容)拷贝到空文件系统520。因此,可以说,用用户请求的主机内容来更新空文件系统520。

由主机创建来将第二文件系统传输到PSD 300的回环文件500包括关于并特征化该文件的其他数据和信息。也就是,除了第二文件系统520之外,回环文件500还包括引导(boot)部分510、根目录530和文件数据540。引导部分510包括将用于初始化存储设备300的引导数据。FAT部分(section)520包括与所使用的FAT系统有关的信息。根目录530是将由存储设备300使用的根目录。文件数据540包括在文件系统内包含的实际文件范围(extent)。

通过例子的方式,将文件系统500划分为32个数据页(被指定为数据页#0至数据页#31)。假设大数据量文件的目标所针对的存储设备包括四个并行控制器,则主机准备被指定为550、560、570和580的四个文件系统分段。

在主机用由终端用户请求的内容更新第二文件系统之后,主机将回环文件500划分为被指定为550、560、570和580的四个文件分段,因为如上所述,PSD 300包括四个并行控制器、并且每个并行控制器唯一地接收一个文件分段。“文件分段”(例如文件分段550)是承载关于或相应于分段的信息的文件。回环文件500整体上具有与非易失性存储器370的比特式(bit-wise)的大小基本相等的比特式的大小。例如,通过使用Linux命令“mkfs”,可以以那种方式来完成创建回环文件500。

假设非易失性(存储器)370是闪存,主机基于非易失性(存储器)370的页大小将回环文件500划分为相等的分段。在闪存的领域中,“页”是包括某种最小量的扇区的存储器单元,这取决于闪存的类型(即,它取决于页的基本大小)。例如,给定扇区的大小当前是512字节的事实,具有2K大小的页的闪存每页具有四个扇区。共同地写或读页的扇区。在闪存领域中,按块从闪存中擦除数据,其中块包括多页。

在图5所示的例子中,文件500被划分为32页,其中每页具有与本地(native)的闪存页相同的比特大小。页的实际数量取决于由终端用户请求的主机内容的大小。也就是,所请求的内容越大,页的数量越大。在该例子中,分段处理导致创建了四个文件(即550、560、570、580),其中将两页交替地存储在每个文件中,使得在处理文件500的结尾处被分段为如图5所示。

还假设PSD 300的非易失性(存储器)370的比特大小是32页,并且四个并行控制器341至344中的每一个功能性地与两个存储器单元相连。因此,文件500被划分为32页,并以如下方式将32页分布给四个分组(即文件分段)550、560、570和580:最开始的两页(即页0和1)与文件分段550相关联,接下来的两页(即页2和3)与文件分段560相关联,接下来的两页(即页4和5)与文件分段570相关联,接下来的两页(即页6和7)与文件分段580相关联,接下来的两页(即页8和9)与文件分段550相关联,等等。如果每个并行控制器功能性地与例如四个存储器单元相连,则最开始的四页(即页0、1、2、3)与文件分段550相关联,接下来的四页(即页5、6、7、8)与文件分段560相关联,等等。在分段处理结束时,文件分段550包括页0、1、8、9、16、17、24和25,文件分段560包括页2、3、10、11、18、19、26和27,文件分段570包括页4、5、12、13、20、21、28和29,以及文件分段580包括页6、7、14、15、22、23、30和31。

图6示出了根据示例实施例的写图5的被分段文件的分段。将结合图3和5描述图6。在主机完成四个文件分段550、560、570和580的准备之后,主机可以开始快速写处理,同时与控制器341至344握手,并且之后,向每个控制器转发意图给、或指向、或关联于那个控制器的文件分段。如上所述,主机(未在图6中示出)单独处理控制器341至344,就好像它们代表四个不同的存储设备610、620、630和640一样。也就是,主机向控制器341转发文件分段550,向控制器342转发文件分段560,向控制器343转发文件分段570,以及向控制器344转发文件分段580,如图6所示。如上所述,并行控制器341至344中的每一个功能性地与两个存储器单元相连。从而,每个控制器将其文件分段内的页的一半写到存储器单元之一中,并将页的另一半写到另一存储器单元中。例如,控制器341将页0、8、16和24写入存储器单元330,并将页1、9、17和25写入存储器单元331。

图7示出了根据示例实施例的文件写-读循环。将结合图3和5描述图7。在步骤710处,由主机在主机的文件系统上创建回环文件500,在这之后,主机在回环文件500上为存储设备300创建第二文件系统520,用存储设备的终端用户想要下载到存储设备300的内容来更新第二文件系统520,并将在它上具有所更新的第二文件系统520的回环文件500划分为作为并行控制器341至344的数量的四个(即划分为文件550至580)。

在步骤720处,主机通过使用并行控制器341至344,同时将文件分段550至580写入存储设备300。如果要求或期望的话,在步骤730处,主机可以通过使用并行控制器341至344(即通过使用RAC连接器350)、或者通过使用控制器320(即通过使用USB连接器310),从存储设备读取内容。因此,在步骤730处,由主机读取文件。因为主机使用并行控制器将内容写入存储设备300(这意味着在由不同的并行控制器管理或控制的多个存储器单元之间分布该内容),那么如果主机通过使用并行控制器341至344从存储设备300读取内容,则它通过使用相应的并行控制器来合并来自各种存储器单元的所分布的内容而完成该读取。

图8图示了根据示例实施例的用于为存储设备准备新的、分段的文件系统的方法。在步骤810处,主机使用它自己的文件系统来为存储设备的终端用户将主机内容(例如多媒体文件)下载到的存储设备创建空的文件系统。也就是,主机在它自己的文件系统上创建空的存储设备的文件系统,并使用安装-卸载(mounting-unmounting)机制来用主机内容更新空的存储设备的文件系统。使用安装-卸载机制,因为主机可以仅仅管理(即创建、移动、更新等)由主机的目录树引用(即可以访问)的文件(包括文件系统)。这意味着仅仅存储设备的文件系统逻辑地链接(即,“安装”)到主机的文件系统或者变为主机的文件系统的一部分之后,主机可以用主机内容来更新存储设备的文件系统。

安装和卸载回环文件

“安装”是逻辑地将附加的文件系统附连到或连接到计算机的当前可访问的文件系统的处理。文件系统是用于在计算机或存储媒介上组织文件的目录的层次(也被称为目录树)。在运行Linux、MacOS或其他类似Unix的操作系统的计算机上,目录开始于根目录,根目录是包含系统上的所有其他目录和文件的目录。“当前”可访问的文件系统是可以在给定时刻在计算机上访问的文件系统。

“安装点”是在额外文件系统所安装到的当前可访问的文件系统中的目录(通常是空目录)。安装点变为所添加的目录树的根目录,并且所添加的目录树变得可从它所安装到的目录(即它的安装点)访问。在类似Unix的系统中,安装点是所安装的文件系统出现的操作系统的目录结构中的位置。移除所安装的设备和文件系统的剩余部分之间的连接或链接被称为“卸载”。

回环设备(loop device)

在类似Unix的操作系统中,“回环设备”是使文件可作为伪设备来访问的伪设备。因为回环设备允许将常规文件看作“设备”,所以它们允许安装包含整个文件系统的那些常规文件。经由这样的回环安装来安装包含文件系统的文件,使得该文件系统内的文件可作为位于安装点目录上的常规文件来访问。

在步骤820处,格式化设备的文件系统,并在步骤830处,将被格式化的存储设备的文件系统安装在主机的文件系统内,以使得主机能够用主机内容更新它。因为如上所述,仅仅存储设备的文件系统逻辑地链接(即安装)到主机的文件系统之后,主机可以用内容来更新存储设备的文件系统,所以需要步骤830。

在步骤840处,主机将内容拷贝到存储设备的文件系统,并在将主机内容拷贝到存储设备的文件系统之后,在步骤850处,从主机的文件系统卸载存储设备的文件系统。在步骤860处,将被卸载的存储设备的文件系统划分为所需要的许多分段,如上所述。

图9A、9B和9C展示了将存储设备的文件系统安装在主机的文件系统上。图9A示出了存储设备的文件系统将被安装到的示范性的主机的文件系统900。通过例子的方式,主机的文件系统900包括五个数据文件(被指定为“F1”、“F2”、“F3”、“F4”和“F5”)。图9B示出了主机要向存储设备发送的示范性的存储设备的文件系统910。通过例子的方式,存储设备的文件系统910包括一个数据文件(被指定为“F11”)。

在可以将存储设备的文件系统910安装在主机的文件系统900上之前,前一步骤是将存储设备的文件系统910存储在用作回环设备的回环文件920中。图9C示出了被添加或“安装”到图9的主机的文件系统900的回环文件920。通过将回环文件920类似于回环设备来处理,主机可以通过将内容930“发送”给回环文件920,来用内容930更新存储设备的文件系统910,就好像回环文件920是物理设备一样。

图10示出了根据示例实施例的用于将新的文件系统写入存储设备的方法。将结合图3和5描述图10。在回环文件500的分段之后,可以开始快速写处理。在步骤1010处,快速访问连接器350与主机(未在图3和5中示出)相连。

如上结合图6所述,存储设备300对于主机表现为四个单独的、物理的USB大容量存储设备610、620、630和640。从而,在步骤1020处,主机枚举(enumerate)它在存储设备300内识别的USB存储设备。为了确定当前恰当安装了存储设备300(即文件分段的数量与并行控制器的数量相同),在步骤1030处,主机检查USB存储设备的数量是否是所期望的数量n(“n”是并行控制器的数量,其中在图3和6中n=4)。如果USB存储设备的数量是所期望的数量n(如步骤1030处的“Y”所示),则将分段作为原始数据同时写入明显分离的n个USB存储设备;也就是,不在单独的USB存储设备上准备文件系统。也就是,将(n个分段中的)分段1写入n个并行控制器中的控制器1(1050处所示),将分段2写入控制器2(1060处所示)......,以及将分段n写入控制器n(1070处所示)。

图11图示了根据示例实施例的用于从存储设备读取主机内容的方法。将结合图3和6描述图11。图3的连接器310和控制器320用于从非易失性存储器370读取数据。通过根据在图5中所描述的相同的逻辑页的布局而逻辑地映射各页,控制器320可以使用如图5所示的相同的逻辑页的布局,来直接读取所有八个存储器单元330至337。当存储设备300从主机接收用于读取非易失性存储器370中特定存储器页P上的扇区S的读取命令时,控制器320计算相关联的存储器物理地址,如下所述。

在步骤1110处,控制器320通过使用公式(1)来计算扇区S所在的逻辑页P:

P=SPS/SS---(1)

其中S是扇区号,Ps是页大小,以及Ss是扇区的大小。

例如,假设页大小(Ps)为2048字节,扇区大小(Ss)为512字节,以及S=14,则使用公式(1),与S=14相关联的逻辑页P是:

P=SPS/SS=142048/512=144=3.5

从扇区#0开始,“P=3.5”意味着(在截切或丢弃小数位“.5”之后)所请求的扇区(即扇区#14)位于与接收了用于读取扇区#14的读取请求的控制器相关联的存储器单元上的第四逻辑页。

在步骤1120处,控制器320通过使用公式(2)来计算扇区所位于的存储器单元MU:

MU=Pmod Ut    (2)

其中P是通过使用公式(1)找到的逻辑页,以及Ut是非易失性存储器370所包括的存储器单元的总数量。继续上述例子,如果逻辑页是P=3、并且一共有八(8)个存储器单元,则使用公式(2),存储器单元MU是:

MU=Pmod Ut=3mod 8=0

从MU#0开始,“MU=0”意味着扇区14位于存储器单元0上。

在步骤1130处,控制器320通过使用公式(3)来计算存储器单元MU内的逻辑地址A1:

A1=PUt---(3)

继续上述例子(即P=3以及Ut=8),并使用公式(3),与扇区S=14相关联的逻辑地址是:

A1=PUt=380

接着,在步骤1140处,控制器通过使用闪存单元本地的协议,从相应的(即所计算的)闪存单元取出物理页。

存储管理的领域中的技术人员将意识到,页的逻辑地址可以例如通过使用逻辑地址到物理地址转换表格或者对于具体存储器技术(例如诸如NAND闪存技术之类的闪存技术)合适的另一机制、与物理页地址相关,。

结合图3的控制器310描述了图11。然而,如果存储设备使用RAC连接器350与主机相连(即,使用并行控制器341至344),则主机使用与图11所示的方式相似的方法,如下面结合图12所述。

图12是根据另一示例实施例的实现从存储设备读取主机内容的方法的主机设备堆栈1205。可以是可以从存储设备读取内容的任何主机应用的主机应用1210与主机的文件系统驱动器1220相接口。在Windows中,这通过使用诸如CreateFile()之类的调用或者经由Windows Explorer来完成。在Linux中,这通过使用诸如open()或create()之类的标准POSIX文件接口调用来完成。对于主机应用,接口1215代表操作系统环境的标准端口。

文件系统驱动器1220逻辑地位于主机1205的物理接口驱动器之上,并且它在应用和相应的硬件部件(例如连接器、闪存、硬盘等)之间起接口作用。例如,如果应用需要读取例如位于硬盘上的文件,则操作系统通过使用驱动器的堆栈为相应的硬件部件(例如,为硬盘)翻译读取请求。文件系统驱动器1220通过存储设备的快速访问连接器(RAC)来透明地读和写文件。虽然图12图示了使用卷(volume)驱动器1230的Windows驱动器堆栈,但是同样地,可以将相同的构思加以必要的变更来应用到其他操作系统环境,等等。

卷驱动器1230合并并且利用在图11中例示的算法。用“卷”表示可以保持文件系统的连续块的集合(例如扇区、簇等的集合)。如使用上述公式(1)计算得到的页号P用于从存储接口1232、1234、1236和1238中选择存储接口。存储接口1232至1238分别操作性地与USB驱动器1242至1248相关联。从而,存储接口P0和P1(如存储接口1232所示)将读取请求路由(route)到映射到RAC 300上的管脚1、2、3和10的USB驱动器-1(1242处所示)。存储接口P2和P3(如存储接口1234所示)将读取请求路由到映射到RAC连接器100上的管脚1、4、5和10的USB驱动器-2(1244处所示),等等。卷驱动器1230提炼(abstracts)扇区读请求和写请求,并向文件系统驱动器1220表现为单一的大容量存储接口。换言之,高级应用可以将存储设备的RAC作为单一接口而不是四个单独的接口来处理。这可以被完成,因为卷驱动器1230将(“代理”或代表四个USB存储设备而操作的)四个USB驱动器对于主机呈现为单一的卷。

图13示出了根据另一示例实施例的主机内容写-读循环。将结合图3描述图13。在步骤1310处,主机为存储设备300创建文件系统,并用存储设备的终端用户想要下载到存储设备300的主机内容来更新文件系统。在步骤1320处,主机通过使用控制器320将文件系统写入存储设备300。控制器320将文件系统划分为数量上等于并行存储器单元的数量的多个分段(在图3中,八个分段),并将每个分段写入相应的存储器单元。

如果需要或期望的话,在步骤1330处,将内容存储到存储设备300(或另一主机)中的主机可以通过使用并行控制器341至344(即通过使用RAC连接器350)或者通过使用控制器320(即通过使用USB连接器310),来从存储设备300读取内容。因为在多个存储器单元之间分布被写入存储设备300的主机内容,所以主机可以通过使用控制器341至344来从存储设备300读取主机内容,以通过合并各种文件系统分段来重新聚合所分布的文件系统。

图14图示了根据示例实施例的在主机中聚合所分段的文件系统的方法。在步骤1410处,在主机上分布等于存储设备上存储空间的大小的新的回环文件系统。在步骤1420处,将所分段的文件系统的分段同时从存储器单元读取到回环文件系统内的预定偏移(offsets)。例如,如果如图5所示划分了文件系统,则从第一控制器读取的扇区0和1被放置在回环文件系统内的偏移0和1处,以及从第二控制器读取的扇区0和1被放置在回环文件系统内的偏移2和3处,等等(这时,没有安装回环文件系统)。在步骤1430处,安装回环文件系统,并在步骤1440处,从回环文件系统读取数据。

图15是根据另一示例实施例的便携式存储设备1500的方框图。便携式存储设备1500不同于便携式存储设备300之处在于,存储设备300的第一控制器之一(例如存储设备300的控制器341)也承担着图3的第二控制器320的功能。用附图标记1520引用承担第二控制器的任务的第一控制器。

第一控制器1520可以在一个时刻用作第一控制器、并在另一时刻用作第二控制器,取决于第一(或第二)控制器1520从连接器1510或从RAC连接器1550接收的连接信号。如果存储设备1500经由连接器1510与主机相连,则连接器1510向控制器1520发送相应的信号,响应于此信号,控制器1520用作第二控制器320。如果存储设备1500经由连接器1550与主机相连,则连接器1510向控制器1520发送相应的信号,响应于此信号,控制器1520用作第一控制器341。

冠词“一”和“一个”在这里使用来指向冠词的一个或一个以上(即至少一个)的语法对象,这取决于上下文。通过例子的方式,取决于上下文,“一元件”可以表示一个元件或多于一个的元件。术语“包括”在这里使用来表示短语“包括但不限于”,并且可以与之互换地使用。术语“或”和“和”在这里使用来表示术语“和/或”,并且可以与之互换地使用,除非上下文清楚地指示相反的情况。术语“例如”在这里使用来表示短语“例如但不限于”,并且可以与之互换地使用。

这样描述了本发明的示范性实施例,对本领域技术人员将明显的是,所公开的实施例的修改将在本发明的范围内。从而,替代实施例可以包括更多的模块、更少的模块和/或功能性等价的模块。本公开涉及例如SD驱动的闪存存储卡、闪存设备、非闪存设备等的各种类型的大容量存储设备,并涉及各种数据读/写速度。因此,下面的权利需要的范围不由在这里的公开所限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号