存储设备和主机设备的制造方法_3

文档序号:8476713阅读:来源:国知局
效率降低。
[0099]在该实施例中,在初始化时,可以将已部分地使用的AU分配为顺序写入区域。
[0100]当提供使部分地使用的AU可用的指定方法时,可以改进AU利用效率。
[0101]因为主机设备20管理存储卡的区域管理,所以当卡被断电时,卡不需要保存分配的信息。根据该方法,在为卡提供电力之后,主机设备20可以重新指定与断电之前的区域相等的区域。
[0102]顺序写入区域一直有效,直到一个AU已被完全写入时。
[0103]通常,当发出随机写入时,顺序写入结束,并且不能针对AU执行其它写入。
[0104]在该实施例中,即使插入向另一个区域的随机写入,分配为顺序写入区域的AU也可以继续顺序写入。由于此原因,可以在顺序写入区域的空闲区域中执行其它写入,并且可以改进AU利用效率。
[0105]下面将参考图5详细描述顺序写入区域SeqW-AU的设置。
[0106]用于分配顺序写入区域SeqW-AU的命令格式如下所示。
[0107]CMD20 “设置顺序写入 AU” +CMDxx
[0108]该命令格式指定一个顺序写入区域SeqW-AU。
[0109]CMD20 “设置顺序写入AU”和CMDxx的组合如下所示。
[0110]CMDxx是例如读取命令(CMD17)和多块写入命令(CMD25)的两个不同命令之一,并且CMDxx的地址指示AU的开头或中点。因此,可提供四种指定方法。
[0111](情况I)
[0112]当CMD17从AU的起始地址读出512字节区域时,将AU分配为顺序写入区域。从顺序写入区域的开头写入数据。应该丢弃读取数据,因为其毫无意义。
[0113](情况2)
[0114]当CMD17从AU的中间地址读出512字节区域时,将AU分配为顺序写入区域。从指定的地址写入数据。保留在指定的地址之前的区域中记录的数据。应该丢弃读取数据,因为其毫无意义。
[0115](情况3)
[0116]当CMD25从AU的起始地址写入数据时,将AU分配为顺序写入区域。从AU的开头写入数据,并且从紧接在写入数据之后的地址写入后续数据。
[0117](情况4)
[0118]当CMD25从AU的中间地址写入数据时,将AU分配为顺序写入区域。从AU的指定中间地址写入数据,并且从紧接在写入数据之后的地址写入后续数据。保留在指定的地址之前的区域中记录的数据。
[0119](顺序写入区域的有效期)
[0120]当下一个CMD20 “设置顺序写入AU”+CMDxx指定新区域时,顺序写入区域的有效性被取消。
[0121]当写入数据一直到分配的顺序写入区域的结尾时,分配被取消。
[0122]当存储设备11被断电时,可以保存或取消顺序写入区域的分配。即使在判断顺序写入区域中的写入不是顺序写入(发生盖写)时,也取消分配。如果主机分配另一个区域作为顺序写入区域,则也取消分配。
[0123](盖写区域的设置:设置盖写区域)
[0124]如上所述,CMD20“设置盖写区域”是用于设置盖写区域的命令。随机写入数据可以临时保存在高速缓存中。但是,因为整个用户区域能够经历随机写入,所以缓存快照(cacheflash)的发生可以使处理时间非常长。由于此原因,存储设备11指示长时间繁忙,并且可能出现称为“瞬间假死(petit freeze)”的现象。具体地说,闪存的块大小(用作确定AU大小的基础的物理数据长度)越大,繁忙时间往往越长,因为用于管理数据的区域较广。在具有大块的闪存中,这造成特别严重的问题。
[0125]在该实施例中,指定盖写区域。这使得可以降低缓存快照的影响,并且即使在最糟糕的情况下,也可能简短地估计处理时间,并且防止卡指示长时间繁忙。
[0126]由于此原因,在该实施例中,可以分配多个盖写区域。此外,预先确定繁忙时间,并且确保分配需要的时间。
[0127]使用CMD20+读取/写入命令和地址,指定盖写区域。
[0128]为了指定盖写区域的大小,例如可使用以下两种方法。
[0129](I)通过CMD20指定大小的方法
[0130](2)通过经历读取/写入的数据区域指定大小的方法
[0131]当将大区域共同指定为盖写区域时,方法(I)(作为CMD20的参数OWAS描述)有效。当首次创建目录表项时,需要在已分配的区域中写入数据“O”以便初始化。因此,在这种情况下,方法(2)有效。
[0132]注意,当在未指定的区域中写入数据时,写入命令可能指示长时间繁忙。例如,针对未指定的区域,将最大繁忙时间设置为500毫秒,而针对盖写区域,将最大繁忙时间设置为250毫秒。这意味着用于盖写区域和未指定的区域的高速缓存控制方法是不同的。因此,当用于存取AU的命令的地址指示存取盖写区域时,存储设备更改存储器存取控制(例如高速缓存控制),以便以不同方式控制除盖写区域之外的区域。即,主机设备因此指定顺序写入区域和盖写区域,并且在区域中执行写入。这允许存储设备执行有效处理并且改进总体性能。
[0133]下面将参考图6详细描述盖写区域指定方法。
[0134]用于分配盖写区域的命令格式如下所示。
[0135]CMD20 “设置盖写区域”+CMDxx
[0136]该格式指定一个盖写区域。例如,卡最多可以分配八个盖写区域。当指定八个或更多盖写区域时,最新八个区域作为盖写区域是有效的。
[0137]CMD20和CMDxx的组合如下所示。
[0138]CMDxx例如是多块读取命令CMD18或多块写入命令CMD25,并且具有两种不同的指定方法(所述命令可以是单写入命令CMD24或单读取命令CMD17)。
[0139]为了指定区域的大小,可使用通过将在后面描述的CMD20的参数指定大小的方法,或者通过CMDxx存取的区域指定大小的方法。
[0140](情况I)
[0141]如图6中所示,当CMD25从AU的中间地址写入数据时,将AU的一部分分配为盖写区域,并且从指定的地址写入数据。通过CMD20的参数OWAS表示的设置值或者CMD25写入的数据长度,指定盖写区域。在指定的盖写区域中,保留除写入区域之外的区域中的数据。
[0142](情况2)
[0143]如图6中所示,当CMD18从AU的中间地址读出512字节数据时,将AU的一部分分配为盖写区域,并且从指定的地址读出数据。通过CMD20的参数OWAS表示的设置值或者CMD18读取的数据长度,指定盖写区域。保留指定的盖写区域中的数据。
[0144]如上所述,当通过CMD20 “设置盖写区域” +CMDxx添加盖写区域时,如果针对分配计数设置上限,则将最新分配的盖写区域维护为盖写区域,并且可以从分配中删除较旧的盖写区域,以便通过上限限制总分配计数。
[0145]当存储设备11被断电时,可以保存或取消盖写区域的分配。
[0146](建立序列的改进:设置数据区域的顶部)
[0147]如上所述,CMD20 “设置数据区域的顶部”是用于向卡通知文件系统的数据区域的命令。
[0148]主机设备20向卡通知表示文件系统的格式的数据区域的起始位置。因此,卡可以指定exFAT (扩展FAT)的位图区域和FAT区域。
[0149]在符合SD标准文件系统的exFAT中,主机设备20可以使用CMD20“设置数据区域的顶部”之后的读取命令,将位图读出到RAM 24,并且在RAM 24中形成位图的高速缓存。
[0150]通常,通过写入命令定义记录区域。因此,如果没有开始记录,则不能准备记录区域。
[0151]在该实施例中,通过读取命令的地址指定记录区域,从而能够进行准备。
[0152]如上所述,可以将一个区域分配为顺序写入区域,并且可以将多个区域分配为盖写区域。
[0153]主机设备20发出用于允许存储设备11准备区域的命令。存储设备11根据该命令指示准备期间的繁忙,从而向主机设备20通知准备正在进行中。
[0154]下面将参考图7详细描述指定数据区域的起始位置的方法。
[0155]图7示出NAND闪存18的存储器图。在符合SD标准文件系统的exFAT中,NAND闪存18的用户区域18a在数据区域的起始位置之前包括包含FAT的文件系统,并且在数据区域的第一 4MB区域中包括位图区域。
[0156]主机设备20从存储设备11的文件系统格式搜索数据区域的起始地址,并且通过CMD20 “设置数据区域的顶部”+CMD18指定数据区域的起始地址。
[0157]存储设备11可以从CMD18指定的地址,预测记录在文件系统区域中的目录信息的位置以及数据区域的第一 4MB区域中的位图信息的位置。
[0158]注意,至于目录区域和位图区域,主机设备20不需要将这些区域设置为盖写区域,但可以根据设置数据区域的顶部的更简单过程,将这些区域设置为盖写区域。这些区域不包括在盖写区域分配的计数中。
[0159](区域管理:区域管理方法)
[0160]通过数据类型和数据长度,区分要使用的区域。即,可以通过文件名的扩展名或文件属性,预测文件的数据长度。例如,可以将视频文件处理为长数据,并且可以将文本文件处理为假设要被重写的短数据。文件名的扩展名或文件属性可以被用作一种手段,以便预测数据长度,或者即使当数据长度不定时预测是否盖写。
[0161]可以将与文件系统关联的数据(例如,FAT、位图或目录表项)处理为短数据,并且将其记录在盖写区域中。
[0162]将可重写短数据记录在盖写区域中,并且将可记录长数据记录在顺序写入区域中。
[0163]另一方面,将假设不被重写的长数据或短数据记录在顺序写入区域中。
[0164]例如,将等于或大于RU = 512KB
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1