CN1926616A - 使用存储器地址映射表的便携式数据存储设备 - Google Patents

使用存储器地址映射表的便携式数据存储设备 Download PDF

Info

Publication number
CN1926616A
CN1926616A CNA2004800425059A CN200480042505A CN1926616A CN 1926616 A CN1926616 A CN 1926616A CN A2004800425059 A CNA2004800425059 A CN A2004800425059A CN 200480042505 A CN200480042505 A CN 200480042505A CN 1926616 A CN1926616 A CN 1926616A
Authority
CN
China
Prior art keywords
data
address
logical address
equipment
write
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.)
Granted
Application number
CNA2004800425059A
Other languages
English (en)
Other versions
CN1926616B (zh
Inventor
陈亨利
符廷彬
林利泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TERCO 2000 INTERNATIONAL CO Ltd
Original Assignee
TERCO 2000 INTERNATIONAL CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by TERCO 2000 INTERNATIONAL CO Ltd filed Critical TERCO 2000 INTERNATIONAL CO Ltd
Publication of CN1926616A publication Critical patent/CN1926616A/zh
Application granted granted Critical
Publication of CN1926616B publication Critical patent/CN1926616B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Television Signal Processing For Recording (AREA)
  • Storing Facsimile Image Data (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种便携式数据存储设备包括USB控制器(2)、主控制单元(7)和NAND闪速存储器(9)设备。主控制单元(7)接收待写入逻辑地址的数据以及用于从逻辑地址中读取数据的指令。它使用存储器地址映射表来把存储器设备(9)中的逻辑地址与物理地址相关联,并且向对应于逻辑地址的物理地址写数据或从中读取数据。所述映射不时被改变,以便使不同的物理地址区域在不同的时间与逻辑地址相关联。这样做增加了设备的速度,并且还意味着不会因物理地址永久地与相对经常写入数据的逻辑地址相关联,而使物理地址很快被损坏。

Description

使用存储器地址映射表的便携式数据存储设备
技术领域
本发明涉及便携式数据存储设备,以及采用所述设备来存储并且取回写入它们的数据的方法。
背景技术
在过去几年来,人们已经对提供包含闪速存储器并且可与计算机串行总线相连的数据存储设备非常感兴趣。此领域的主要文献是WO01/61692,其描述了一种以注册商标“Thumbdrive”销售的整体设备。在此文献中所描述的实施例之一中,安装在设备壳体上的凸形USB插头直接连接到计算机上的凹形USB插口,以便使计算机能够在USB控制器的控制下向/从便携式存储设备的闪速存储器传送数据。已经对此设备提出各种改进。例如,WO 03/003282公开了所述设备可以装备有指纹传感器,并且只有在指纹传感器验证了用户身份的情况下,才允许对存储在设备内的数据进行访问,其中所述验证是通过比较用户扫描的指纹与预先存储的数据来实现的。这两篇文献的公开内容通过参看在此引入。
这种便携式存储设备的结构可以如图1所示。所述便携式存储设备被标记为1,并具有虚线所示的壳体。它包括用于控制USB接口3(例如,USB插头)的USB控制器2,所述USB接口3直接与主计算机5的USB接口4(例如,USB插口)相连。从所述主计算机5转送到USB接口3的数据经过USB控制器2到达主控制单元7。
数据分组为各种类型。它们包括WRITE(写)数据分组,其包含WRITE指令,用于把512字节倍数的数据量写入特定的逻辑地址。它们还包括READ(读)数据分组,其包括READ指令,用于从特定的逻辑地址中读取数据。所述WRITE指令通常包括数据的第一部分必须写入其中的逻辑地址,待写入多少数据的指示,然后还包括待写入的数据。可能需要多个数据分组来传递一个WRITE指令。同样地,READ指令表明从其开始读取的逻辑地址以及从该处开始待读取多少存储器的指示。
主控制单元7通过控制NAND(与非)闪速存储器9来实现这些指令。所述主控制单元7通过命令符号来控制NAND闪速存储器9,所述命令符号通过如示意性示出的一条或多条线路12来传递。通常,这些线路12包括当数据将被写入闪速存储器9时用于发送WRITE信号的线路,当闪速存储器将向主控制单元7发送数据时用于发送READ信号的线路,用于发送表明在存储器中应该写入数据或应该从中读取数据的位置的地址信号的线路,以及必须具备某一值以便以便使闪速存储器能够工作的ENABLE(使能)信号。
当主控制单元7必须在闪速存储器9中存储数据时,主控制单元7将数据经由8位总线发送到那里,同时发送WRITE命令、ENABLE信号和地址。该地址是对应于逻辑地址的物理地址(即,存储器单元9中的特殊地址),该对应依据存储在主控制器单元7或由主控制单元7访问的RAM存储器中存储的映射。当响应于READ命令时,把数据传送出设备,所述数据以512字节分组的形式从NAND闪速存储器9经由8位总线8被传递到主控制单元7。所述主控制单元向USB控制器2发送该512字节分组,USB控制器2经由USB接口3把数据发送出设备1至主机5。
所述设备通常经由USB接口3供电,因此当从计算机的USB插口中拔除USB接口3时,所述设备断电。存储在主控制单元7RAM中的所有数据丢失。
图2示出了NAND闪速存储器9的存储空间。所述设备配置为在各个“页面”6中存储512字节的数据部分(应注意的是,还存在其它可能性,诸如每页存储2千字节),每个页面还包含用于存储控制数据(通常为16字节)的各自的控制数据存储扇区11。数据以“块”10(即,图2各个行)的形式排列,例如每块10有64个页面6。常规的NAND闪速存储器有方面限制:
1.任何特定的页面要么处于“擦除”状态,在此状态中,可以把数据写入其中,要么处于“非擦除”状态,在此状态中,数据被存储在页面中并且不同的数据无法写入该页面中。页面必须逐块地从非擦除状态变化到擦除状态,即,特定块的所有非擦除页面必须一次被擦除,由此将会丢失其中存储的所有数据。
2.特定块或者页面具有有限的生命周期。换言之,它只得在有限次数内从擦除状态变化到非擦除状态,诸如10,000或者10,000次。这限制了存储器设备的使用寿命。
3.所述NAND闪速存储器包含在数据无法可靠地写入其中这种意义上为“坏”的个别块。
如上所述,在NAND存储器设备9中写入数据或者从中读取数据的地址是通过由USB接口3接收的数据分组编码的逻辑地址来确定的。通常,主控制单元可访问一个表,所述表存储逻辑地址空间中的地址和物理存储空间中的位置之间的映射,其中所述物理存储空间中的位置在存储器设备中不处于污染表中的的块内(即,存储器内的“物理地址”)。具体来讲,每块被映射到逻辑地址空间的各个区域,所述逻辑地址空间具有的地址数目等于页面的数目。这种映射是固定的。由此,坏块不会与任何逻辑地址相关联。
除所述坏块外,还存在不与逻辑地址相关联的其它块。这些是“保留”块,用于存储便携式存储设备可能需要的其它数据。例如,污染地址表本身被存储在保留块中。
所述主控制单元7包括文件管理系统,所述文件管理系统包括块分配表,其表明每个块是处于擦除状态还是非擦除状态,并且有多少处于擦除状态或者非擦除状态。当所述主控制单元7接收到待写入存储器位置中的一个块的数据时,所述主控制单元7使用块分配表来得出所述块是否处于擦除状态。如果它发现所述块处于非擦除状态,那么它通常将所述块中的不可被重写的任意数据复制到不同位置,擦除所述块,然后把待存储在存储器中的新数据和复制到不同位置的数据一起写回到所述块。
发明内容
本发明致力于提供一种新的并且有用的便携式数据存储设备。
概括地讲,本发明提出:逻辑地址空间的区域和物理存储空间中的区域之间的映射在设备操作期间是改变的。换言之,在逻辑地址区域和物理存储器区域之间有一对一映射,但是此映射随时间而改变。
这样具有许多优势。
首先,本发明人注意到,一般说来,由主计算机上的常规操作系统生成的逻辑地址趋向于统计相关,这意味着如果逻辑地址与物理地址具有固定关系,那么某些物理地址要比其它地址更加频繁地被使用,因此势必迅速损坏。
此外,能够改变逻辑和物理地址之间的关系意味着写数据所需的写操作的次数被减少。实质上,当接收到指令以把数据写入页面中,这些页面根据逻辑和物理地址间当前的映射是处于非擦除状态的,逻辑和物理地址间的映射可以被改变,以使处于擦除状态的新块与该逻辑地址相关联。所述新数据被写入新块,并且存储在旧块中的未被擦除的任意数据也被写入新块。由此,,旧的数据只须复制一次,而不是如上述常规方法中那样需要两次。这使得设备的总体操作更加快速。
逻辑和物理地址之间的临时映射是由存储器地址映射表定义的。出于操作速度的考虑,存储器地址映射表优选地被存储在RAM存储器中(例如,存储在主控制单元自身中)。但是用于定义它的映射数据优选地也存储在闪速存储器设备自身中,因此在断电情况下不会丢失。
具体的,特定块的一个或多个页面的控制数据存储扇区可以存储指示块当前与哪个逻辑地址区域相关的数据。当所述设备与主计算机相连,并且主控制单元加电时,主控制单元使用此数据来生成映射表(该映射表可以存储在其高速缓冲存储器中)。由于映射是变化的,所以对应于特定逻辑地址区域的物理地址从第一块改变为第二块,映射表中的数据以及存储在闪速存储器设备中的相应数据保持更新。在把数据存储在闪速存储器中的情况下,无非是在擦除第一块之前把用于定义映射的数据从第一块复制到第二块。
如上所述,在常规的系统中,所述逻辑地址空间小于物理地址空间,这是由于存在不与任何逻辑地址相关联的块。这些块是保留块和坏块。在本发明的实施例中,除保留块和坏块以外,随时都会存在其它块的集合(此处称为“排队块”),其可以用来映射到逻辑地址区域之一,以代替目前映射到该逻辑地址区域的块。优选地当所述映射将要改变时,排队块之一被选择以便与逻辑地址区域之一相关联。当所述排队块在排队时,它们最好处于擦除状态,而不是在其逻辑地址区域之一相关联之前刚刚被擦除。
存储器地址映射的更新(即,选择已擦除的第二块来替代处于映射的第一块)可以在每当接收到新的WRITE指令以把数据写入非处于擦除状态的物理地址中的位置时执行。
一接收到此WRITE指令,就可以执行此操作。或者,在本发明的优选细化方案中,由主控制单元基于特定WRITE指令执行的写操作可以暂停某段时间,并且只有在该期间内没有接收到符合与第一指令具有预定相似标准的指令的情况下才被执行。正如上述可变地址映射表的概念部分地是处于逻辑地址是统计相关的考虑,此细化方案是出于以下的考虑,即在相对较短时间段内频繁接收到的指令间的相关足够强,所以与独立处理相比,它们能够更加有效地共同处理,由此改进了便携式数据存储设备的速度和/或使用寿命。暂停写操作来确定另一相关的WRITE指令是否到达的这种概念构成了本发明的另一独立方面,除了与可变映射表结合之外,其也可以在本发明的范围内使用。
首先,第一种这种相关性是经常连续的WRITE指令指定数据待写入连续的同一逻辑区域。鉴于此,当主控设备接收到第一指令时,该指令指定将数据写入根据存储器地址映射对应于物理存储器的特定第一块的逻辑地址区域,所述主控设备优选地暂停至少一个操作,该操作是存储在不可被重写的第一块中的数据被复制到第二块中。如果在该期间内,所述主控设备没有收到把数据写入所述块的连续页面的指令的分组,则其可以继续把第一块中的数据复制到第二块中的操作。或者,如果在该期间内,其接收到指定将其他数据写入同一逻辑地址区域的其它位置中的其它数据的一个或多个分组,那么它可以把数据从所有分组写入到所述块中,并且在此情况下,只须把数据从第一块的其它部分复制到第二块中。
第二个这种相关性为:正如本发明人已经注意到的那样,所述主控设备经常在短时间内接收到包括指定完全相同逻辑地址的WRITE指令的分组。优选的是,本发明的实施例在一时间段期间暂停此操作,而不是每当接收到这些指令的每个时,立刻重置存储器地址映射。在该期间内,数据被存储在由主控设备操作的数据高速缓存中(例如,其内部RAM高速缓冲存储器)。如果在此期间内没有接收到关于同一逻辑地址的指令,那么主控设备如上所述那样继续进行把数据写入闪速存储器的操作。然而,如果在此期间接收到WRITE指令(或者,在其他的实施例中,为不是关于同一逻辑地址的指令),那么主控设备把数据写入其高速缓冲存储器(并且通常重置其时钟)。如果在此期间接收到关于同一逻辑地址的READ指令,那么从高速缓冲存储器中、而不是从闪速存储器设备中读取数据。
可选地,所述高速缓冲存储器可以足够大,以便存储关于多个逻辑地址的数据。也就是说,高速缓冲存储器可以分为多个区域,这些区域每个用于存储关于相应逻辑地址的数据,并且每个均和相应的定时器相关联,该定时器用于测量自从涉及该逻辑地址的WRITE指令被接收开始的时间。
优选地,数据存储设备能够辨别出哪些逻辑地址特别有可能经常被写入数据(即,它基于输入的指令来执行模式识别算法),因此其可以选择适于执行前面两段描述的高速缓存操作的一个或多个逻辑地址集合。
上面的描述假定对于待与逻辑地址区域相关联的每个块而言均存在相应的映射,但是这往往要求存储器地址映射表至少具有与可用于存储数据的块数目相等的元件。另一种方式是把逻辑地址区域与相应的块组相关联。例如,所述块可以四个块一组来组合(由此,例如总共4×64=256个页面),并且逻辑地址区域往往因对应系数(例如,四)而更大。在此情况下,所述存储器地址映射表将定义这些组的每一个和逻辑地址区域的相应一个之间的一对一映射。
所述组可以仅仅是连续的块,但是在存在任何坏块的情况下,用于设置块的更加成熟的方式是优选的,为其中不是坏的块被组合。块组因此能被当做与逻辑地址空间区域相关联的物理存储器区域。所述主控制单元可访问用于至少这种组合的组合表,因此当给定逻辑地址时,它可以使用存储器地址表来确定相应的组和并使用组合表来确定构成此组的块。
由于坏块相对稀少,所以大部分组可以依照简单的规则(例如,所述组是四个连续块的相应集合)来设置,并且所述组合表只存储关于未能遵守此规则的块的数据。这将减少组合表所需的大小。
顺便提及,把特定的逻辑地址区域与这些异常组之一相关联的事实可以作为标志包括在映射地址表中。由此,存储器映射地址表将表明何时需要查阅组合表来确定与特定逻辑地址相关联的物理地址。
主控制单元可以把特定逻辑地址区域中的逻辑地址与相应组的块相关联,因此连续的逻辑地址对应于页面的“列”。该提供块组以对应于逻辑地址区域,并且把逻辑地址区域内连续的逻辑地址与页面的列相关联的这种概念,构成了本发明的另一独立方面,除了与可变映射表结合之外,其还可以在本发明的范围内使用。
本发明第一方面的一种具体表达是一种便携式数据存储设备,包括:
(i)用于把数据分组转送到设备中并且从设备送出的数据接口,
(ii)接口控制器,
(iii)主控制单元,以及
(iv)至少一个NAND闪速存储器单元,
所述接口控制器用于将经由所述接口接收到的数据发送到主控制单元,并且
所述主控制单元用于把某些数据分组识别为编码READ指令,并且把其它数据分组识别为编码WRITE指令:
(a)当接收到指示逻辑地址的READ指令时,访问用于把逻辑存储空间内的逻辑地址区域与存储器单元内相应的第一物理地址区域相关联的存储器地址映射表,依照所述地址映射表从对应于所述逻辑地址的存储器单元中的物理地址读取数据,并且把包括被读取数据的一个或多个数据分组传输到所述数据接口,并且
(b)当接收到指示逻辑地址和待写入该逻辑地址的数据的WRITE指令时,确定依照所述存储器地址映射表对应于所述逻辑地址的物理地址是否处于擦除状态,并且:
如是,把数据写入该物理地址,或者
如否,修改所述地址映射表以便把第二物理地址区域与包含所述逻辑地址的逻辑地址区域相关联,依照修改后的存储器地址映射表把数据写入对应于逻辑地址的物理地址,并且把存储在第一物理地址区域的其它部分中的任何数据复制到第二物理地址区域的相应位置。
应该理解的是,在本发明的范围内,可能有包括待存储在多个页面的数据的WRITE指令,或者请求来自多个页面的数据的READ数据分组。换言之,上述的地址例如可以是物理地址区域的多页面部分的起始地址。
附图说明
现在将参照如下附图来描述本发明的优选特征,附图仅出于说明的目的其中:
图1示出了公知的便携式数据存储设备的第一配置;
图2示出了图1公知设备的NAND闪速存储器设备的物理存储空间;
图3示出了本发明第一实施例中的存储器地址映射表;
图4示出了在本发明第一实施例中执行的步骤的流程图;
图5示出了在某次数据写操作之后图3的存储器地址映射表;
图6包括图6(a)到6(e),其示出了本发明的第二实施例;
图7包括图7(a)到7(e),其示出了本发明第三实施例在各个时间的物理存储器的状态;
图8是图7实施例的操作的流程图;并且
图9包括图9(a)到9(c),其举例说明了本发明的第四实施例。
具体实施方式
现在将描述本发明的第一实施例。其可以具有与图1所示相同的物理结构,并且为此,所述实施例的相应元件将被给予与图1所用相同的参考标记。所示出的所有元件可以包含如USB连接器3安装于其上的单个壳体中。USB连接器3(例如,USB插头)可以通过插入主计算机5的USB插口4而直接连接到主计算机(例如,个人计算机(PC))。或者,在它们之间连接电缆。应该注意的是,这种设备可以具有许多图1中没有明确示出的特征,但是这些特征在公众可获得的便携式数据存储设备中是公知的,如口令保护、通过指纹核对的控制访问等等。这些特征的实现对于本领域技术人员而言是十分清楚的。
图3示出了第一实施例使用的存储器地址映射表。该表存储在主控制单元7的易失性RAM存储器中。左列21上是表明逻辑地址区域的标号,而右列23是表明与那些逻辑地址区域一对一映射的物理地址空间的块的数字。为简单起见,假定逻辑地址区域的数目是8(通过标号0到7来表明),并且块的数目是16(由标号0到15来表明)。实际上,这些数字都将会高得多。由此,可以存储在每一个逻辑地址区域中的数据量是512字节(假定这是页面大小)乘以每块的页面数目(例如,64)。右列每行只存储表明对应块的标号。逻辑地址区域的数目对应于将在任一时刻用于存储数据的数目块。
例如,由于假设每块存在64个页面,所以逻辑地址67和逻辑地址区域1中的页面相关。这是因为:逻辑地址区域1的页面具有逻辑地址0,1,...63,并且逻辑地址区域1的页面具有逻辑地址64,65,...127,因此逻辑地址67是逻辑地址区域1中的第四个地址。基于图3中所示的映射,逻辑地址区域1被映射到块10。
除被映射到逻辑地址区域的块以外,所述物理地址空间还包括许多其它块(在上面所示例子中为8块)。这些块包括作为保留块的块6、12和13,以及作为“坏”(不工作)了的坏块7。由此,这些地址不会出现在图3的映射表中(不过优选的是,所述实施例还具有污染块表和保留块表,其可以依照常规方式用于执行便携式存储设备中的其它常规操作)。这样做让许多可用块(在此例子中是四块)被映射到逻辑地址区域。
在图3的存储器地址映射表中,称为“排队块”的这些块被显示为25。这些块处于擦除状态。当把一个块从队列顶部移除时,所有其它块向上移一位;然后把新块插入区域25的底行中。顺便提及,这可以通过在存储器中设置四个位置以便每个存储标号之一并且具有指示四个位置之一的指针来实现。指针指向的位置逻辑上等效于区域25的“顶行”。由此,去除区域25的标号和“顶行”并且把新的标号写入所述区域的“底行”对应于把新的标号重写到指针指向的位置中,并且依照循环的方式改变指针以便指向下一位置。
被映射到相应逻辑地址区域的每块的第一页面的控制数据存储扇区11包括相应逻辑地址区域的标号(如果存储此标号所需的位数大于第一页面的扇区11中可用的位数,那么所述标号可以被编码并且存储在相应块的一个以上页面的扇区11中)。由此,如果所述设备断电(从而图3的存储器地址映射表从RAM中丢失),那么当所述设备被再次加电时,主控制单元7可以使用存储在控制数据存储扇区11中的标号在其RAM中来重新生成所述存储器地址映射表。
我们现在参考图4中所示的流程图来考虑第一实施例的操作。在步骤1,接收指令,并且在步骤2,主控制单元7确定它是READ指令还是WRITE指令。
假定所述指令是READ指令以读取从逻辑地址67开始的数据。在步骤3,主控制单元7使用图3的存储器地址映射表来确定对应于包含所述逻辑地址的逻辑地址区域的相应块(即,块10),以及该块内对应于所述逻辑地址的一个或多个页面(即,第四页面)。然后在步骤4,依照公知的技术来执行读取操作:主控制单元7向存储器单元9发送指令以便从块10中提取存储在第四页面的数据;把此数据从存储器单元9经由总线8传输到主控制单元7;主控制单元将其形成为一个或多个分组并且将它传输出所述设备。
假定所述主控制单元接收到WRITE指令以便写入从逻辑地址67开始的某些数据。在步骤5,主控制单元7确定对应于所述逻辑地址的块和页面(如步骤3),并且在步骤6,主控制单元确定此页面处于擦除状态还是非擦除状态。此操作可以使用文件管理系统(例如,采用如同上文所述的现有技术中的块分配表)来执行。如果块10的第四页面被擦除,那么主控制单元7仅仅把WRITE指令发送到存储器9,以便令所述存储器依照常规的技术在块10的第四页面中存储数据。
或者,如果块10的第四页面是非擦除的,那么在步骤8,主控制单元命令存储器单元把存储在块10头三个页面的以及块10最后60个页面中的任何数据复制到新块。此新块是排队块25的第一个,也就是块4。然后在步骤9,所述WRITE指令中包括的数据被写入块4的页面4。然后在步骤10,所述存储器地址表被重置为图5中所示的形式。也就是说,块4现在与逻辑地址区域1相关联。所述块10被擦除,并且被置于队列25的后面。由于在队列中存在四个块,所以块10将在主控制单元接下来第三次被命令向非擦除页面写数据时被重新使用。应注意的是,依照所述实现方式,步骤8到10的操作可以依照任何顺序来执行。
应注意的是,对于所述设备而言,使用文件管理系统的另一种方法为省略步骤6和7,并且直接从步骤5进行到步骤8。换言之,每当接收到WRITE指令时,将执行复制步骤8到10。
图6示出了本发明的第二实施例。尽管在第一实施例中,8个逻辑地址区域的每一个均被映射到相应的块,但是在第二实施例中,每一个逻辑地址区域(在此例子中仍是8个)被映射到相应的块组(在此例子中是四块每组)。在此例子中,块的数目等于64,由标号0到63来表明。把块60、61、62和63作为保留块。把块9、17、18和27假定为坏块。在图6(a)中所示的“污染表”中给出了坏组。此表可以在设备首次加电时通过测试所有块并且找到坏块来生成;随后,定义此保留块,以便确保它们不包括坏块。然后,通常把坏块表存储在一个或多个保留块中;或者,每当设备加电时,其可以被重新生成。
图6(b)中示出了存储器地址映射表。在此情况下,逻辑地址区域0到7的每一个(在左列31中)被显示为映射到组号(在中列33)。有12组可用于映射到各个逻辑地址区域,并且这些组由相应的组标号0到11来表明。
具有标号i的大部分组包括块4i-4、4i-3、4i-2和4i-1的集合。然而,存在异于该简单规则的特例块,这是因为如果所述规则被遵守,那么该组将包括一个或多个坏块。在图6(c)中所示的“干净表”中给出了用于定义这种组的块。
例如,组1简单地是开头的四个块0、1、2和3。组2是四个块4、5、6、7的第二集合。然而,组3不是块8、9、10和11,这是因为如上所述块9是坏的。相反,图6(c)的干净表表明组3由块8、59、10和11组成。依照通常的规则,组4是块12、13、14、15。再一次,组5是所述通常规则的例外(因为块17和18是坏的),并且依照所述干净表,由块16、58、57、19组成。组6也是常规的,即,块20、21、22和23。组7又是非常规的(由于块27是坏的),并且依照所述干净表,它是块24、25、26和56。组8到11依照通常的规则。
由此,在该例中,所述干净表只定义三个组的成员:组3、5和7。实际上,在更加典型的实施例中,坏组的比例非常低,从而所述干净表远小于存储器地址映射表。干净表最大行数是坏组的数目。
为了指示组3没有依照所述规则,所述存储器地址映射表在第三列37中包含标志,并且在第四列38中包含相应的指示,其指示参考图6(c)的干净表中的哪行来获得所述组的确切成员(在图6(b)中,第四列38中的值分别是0、1、2,并且这三个值分别表明图6(c)干净表的三个行)。
当主控制单元接收到指示其把某些数据写入逻辑地址67的WRITE指令时,在此情况下,它识别所述逻辑地址在逻辑地址区域0的范围之内(由于逻辑地址区域0是逻辑地址0到255)。图6(b)中的逻辑地址和组之间的映射指示相应组是组2。列37的相应标志没有设置,因此无需查阅干净表来识别对应于组2的块:所述规则给出其值为4、5、6和7。由此,逻辑地址67是块5中的第四页面。
如果此页面处于擦除条件,那么来自WRITE指令的数据被写入到该页面中。
如果此页面不处于擦除条件,那么WRITE指令中的数据被写入到队列25最前面的组的第二块的第四页面中,其恰好是组7。然后,通过把位于队列最前面的组号(即,组号7)移动到位于对应于逻辑地址区域0的行的列33,并且把表明该块7是不规则的标志复制到第三列37的同一行中,把表明干净表行的相应数据复制到第四列38的新行中,由此把图6(b)的存储器地址映射表更新为图6(d)。存储在块4、5、6和7的其余各页中的任何数据被分别复制到组7的相应页面(即,分别复制到块24、25、26和56的各个页面)。
如果随后接收到关于逻辑存储器地址67的READ指令,那么主控制单元7再次确定其对应于逻辑区域0,因此检查图6(d)的存储器地址映射表中的相应行。此时,它从列33中找到相应的组是7,并且列37中的标志指示此组是不规则的。列38指示所述组处于图6(c)的干净表的行2中(即,最后的行)。所述主控制单元因此从图6(c)的干净表中提取此行的各块(即,块24、25、26、56)。它从组7的第二块(即,块25)的第四页面中读取数据,生成用于编码该数据的一个或多个数据分组,并且把一个或多个分组经由接口3从所述设备传输出去。
如果再次接收到关于逻辑存储器地址67的WRITE指令,那么主控制单元7再次检查图6(d)的存储器地址映射表中的相应位置。此时,它发现相应的组是7,并且列37中的标志表明此组是不规则的。所述主控制单元因此从列38中提取相应的行号(即,2),并且从图6(c)的干净表中获得此行的各块(即,块24、25、26、56)。它检查组7第二块(即,块25)的第四页面,以便看看数据是否被存储在那里(考虑到上面解释过的历史,其理所当然存在)。因此,它把该组其它页面中所存储的所有数据移至此刻位于队列35最前面的组(即,组4)的相应页面,并且把WRITE指令的数据写入到此组第二块的第四页面。然后,在顶行把数字4插入列33,在顶行把对应于组4的(空白)标志复制到列37中,在顶行把对应于组4的(空白)数据复制到列38中,把标号7插入到该表区域35的底部中(让其它行向上移动一位),把相应的标志复制到列37的底行中并且把相应的数据复制到列38的底行中。
应注意的是,对应于此过程的流程与图4大部分相同。然而,应该理解的是,步骤3和5现在更加成熟。和仅仅根据逻辑地址和存储器地址映射表(例如图3的)来确定所述块不同,它是通过使用存储器地址映射表(例如图6(b)和6(d)的)来获得相应的组,并且确定该组的块而被确定的(根据所述规则来确定,或者如果标志存在于存储器地址映射表的列37中,从图6(c)干净表的列38中表明的行确定)。此外,在步骤8、9,对第一排队块的引用在此情况下应该被理解为引用第一排队组(即,处于存储器地址映射表的区域35的顶部的组)的相应块。
以上描述了第二实施例如何操作逻辑地址区域和各个块组之间的映射。逻辑上独立的问题是:所述实施例如何把任何特定逻辑地址区域内的逻辑地址映射到相应块组中的各个页面。
一种可能是我们将称为“水平”的对应关系。这意味着所述块的连续页面对应于连续的逻辑地址。每块的最终页面(除该组的最后块之外)在对应于该组下一块的第一页面的逻辑地址以前连续对应于所述逻辑地址。由此,举例来说,稍微大于单个块页面数目的数据量将被写入存储器,以至于数据的开始被写入由逻辑地址指定的页面,然后所述块的连续页面被写入,直到所述块用完为止,然后数据的剩余部分被写入下一块的第一页面。
然而,这不是唯一的可能。在本发明的第二实施例的优选形式中,所述主控制单元可以操作,使得所述块组的页面地址的逻辑对应关系是“垂直的”。具体来讲(为了举例起见,假定在给定组中存在四个块),开头的四个逻辑地址可以被映射到每一个块的第一页面(即,第一逻辑地址映射到所述组的第一块的第一页面;第二逻辑地址映射到所述组的第二块的第一页面;等等),接下来的四个逻辑地址可以被映射到每一个块的第二页面(即,第五逻辑地址映射到该组第一块的第二页面;第六逻辑地址映射到该组第二块的第二页面;等等)。
换句话说,主控制单元7把四个连续的逻辑地址集合视为分别对应于各个块的各个页面。与特定逻辑地址集合相关联的页面都具有相同的偏移值,该值是沿各个块的页面水平地计数测量的(即,这些页面在物理地址空间中形成“列”)。
图6(e)示出了当一定量数据将要写入组2的位置(即,块4、5、6和7)时将发生什么。写入数据开始的逻辑地址相对于对应于块4第一页面的逻辑地址具有偏移量17。也就是说,写入数据开始的逻辑地址是该组第一页面之后的17个页面。这些页面在图6(c)中被垂直地计数(即,首先从页面第一列向下,然后从下一列向下)。由此,具有偏移量17的页面是由“A”指示的页面。
在写操作中,来自旧组的数据被复制到组2中的位置,该位置由画斜线的区域32表明。然后,已写入分组中的数据被写入画斜线的区域34中的页面(即,起始于位置A)。然后,处于区域34之后的未画斜线的区域36的旧块中的任何数据被复制到区域34。
我们现在转向本发明的第三实施例。所述第三实施例类似第一实施例,但是有一处(重要的)不同。在第三实施例中,在使得存储器地址映射表中定义的映射改变的WRITE指令,以及待写入到与所述逻辑地址相关联的新块位置中的WRITE指令中包含的数据之后,把数据从其余的旧块复制到新块中的操作在预定时间内被部分暂停,以便看看是否接收到任何关于同一存储空间区域的新WRITE指令。
具体来讲,假定接收到WRITE指令,其指示数据A将要写入某一逻辑地址。假定逻辑地址处于目前对应于块0的逻辑地址区域。进一步假定所述逻辑地址对应于块0的页面4。进一步假定位于队列25顶部的擦除块(图3)是块3。图7(a)示出了包括块0和3的一部分物理存储器。也就是说,块0具有存储在页面0到3的标记为X的数据,存储在页面4的标记为Y的数据,存储在页面5到7的标记为Z的数据,然后其余的块处于擦除条件(显示为“0”)。
依照第一实施例,此WRITE指令将立即令块1和3中的物理存储器如图7(b)所示那样。也就是说,新数据A被存储在页面4,而数据X和Z被存储在块3中对应于块0中的前面页面的页面。块0将被擦除(并且代表它的标号将位于图3的区域25的底部)。
然而,在本发明的第三实施例中,所述物理存储器最初被重写为如图7(c)所示那样。也就是说,数据A被写入块3的页面4,而数据X被复制到页面0到3,但是数据Z尚末复制到块3的页面5到7。所述系统在由定时器给定的时间段内保持此配置。如果到此时间段结束之时没有再接收到关于对应于块3页面5的逻辑地址的WRITE信号,那么所述写操作完成,以得到图7(b)中所示的数据存储。然而,如果在这期间接收到新的WRITE指令,其指示数据B将要存储在此刻对应于块3的页面5的逻辑地址处,那么此数据B被写入块3的页面5,同时给出图7(d)中所示的数据存储。然后,所述定时器被再次启动以定义新的时间段。
如果到此时间段结束之时没有再接收到关于对应于块3的页面6的逻辑地址的WRITE信号,那么所述写操作完成,以得到图7(e)中所示的数据存储。然而,如果在这期间接收到新的WRITE指令,其指示数据C将要存储在此刻对应于块3的页面6的逻辑地址处,那么此数据B被写入块3的页面6,并且再次启动定时器。
此过程可以继续,直到到达块3的最后页面,或者达到规定时间段而没有接收到指示数据将存储在由先前WRITE指令指定的位置之后的页面的WRITE指令。应注意的是,这意味着与第一实施例相比,数据A,B,...可以被更加快速地写入存储器设备,这是因为极大地减少了对复制数据的要求。举例来说,在如上所述的步骤序列期间,不管随后接收到多少关于连续页面的WRITE指令,数据X只需最初都被复制一次。
图8中示出了所述流程图,并且与图6的不同只在于步骤8到10由步骤8到13替代。在图8的步骤8,只有关于WRITE指令被接收的页面之前的旧块(即,块0)中的页面被复制到新块(即,块3),并且WRITE指令中的数据被写入对应于逻辑地址的新块中的页面。在步骤9,确定新块的最后页面此刻是否已经被写入。如是,所述设备进行到步骤13。如否,在步骤10,所述设备确定在预定时间是否接收到关于新块的下一连续页面的新的WRITE指令。如是,那么所述实施例在步骤11把数据写入那里并且循环返回到步骤9。如果不是,在步骤12,所述实施例复制旧块的其余页面(即,如果有在关于接收到WRITE指令的最后页面之后的页面的话,其所有页面)。步骤13对应于图4的步骤10:所述旧块(块0)被擦除并且存储器映射地址表被更新。
应注意的是,当所述实施例处于步骤10时,如果接收到关于目前作为图8流程对象的逻辑地址区域中的逻辑地址的READ指令,那么所述设备应该从物理存储器的正确位置读取数据(即,如果逻辑地址对应于在步骤8中写入的地址,或者如果逻辑地址对应于在先前步骤9被写入的地址,那么从新块中读取;否则,从旧块中读取)。
在此实施例的某些形式中,如果在步骤10中确定接收到指示数据将写入不是新块的下一连续页面的任何逻辑地址的新WRITE指令,所述设备可以从步骤10进行到步骤12。在此情况下,对新WRITE指令的处理可以在完成图4的流程之后开始。
应注意的是,定时器通常设置为几毫秒长,诸如3ms左右。如果在接收到最后的WRITE指令之后所述设备在预定的时间段内与主机断开,那么存在丢失数据的危险。然而,通过把预定的时间段设置为毫秒的阶数,就不会出现此问题,并且由此将使所有数据得以安全存储。应注意的是,当把预定的时间段设置为零时,本发明的第三实施例将简化为第一实施例。
此刻,我们转向本发明的第四实施例。和第三实施例一样,所述第四实施例采用定时器。
在此情况下,所述主控制单元7包括模式识别单元,其用于接收由主控制单元从WRITE指令提取的逻辑地址。在某一操作阶段期间,如果所述模式识别单元注意到某一逻辑地址比期待的更加频繁地出现,那么它把该逻辑存储器地址写入到“经常使用的逻辑地址”空间中,所述空间定义在例如主控制单元的RAM存储器中。更普遍地,经常使用的逻辑地址空间可以包含多个确定为这种具有高频率的逻辑地址。所述模式识别单元可被编程为当逻辑地址在其频率减少时将其从此空间删除,和/或每当识别出具有更高频率的逻辑地址时将其替换出所述空间。由此,所述空间连续地存储在WRITE指令中最经常出现的逻辑地址。
主控制单元7为经常使用的地址空间中的每一位置保留高速缓存RAM存储器。当接收到关于存储在经常使用的逻辑地址空间中的地址之一的WRITE指令时,所述主控制单元最初不把WRITE指令中包含的数据写入到闪速存储器设备中。相反,它把该数据写入到相应的高速缓存中。然后,所述主控制单元7等待由定时器确定的时间。在这段时间,如果不再接收到WRITE指令(或者在所述实施例的一种形式中,如果接收到关于不同块的分组),那么所述主控制单元依照如上就本发明第一到第三实施例的任何一个所述的过程把高速缓存中的数据写入到闪速存储器中。另一方面,如果在预定的期间内,接收到关于同一逻辑地址的其它WRITE指令,那么所述主控制单元把该WRITE指令中包含的数据写入其高速缓存的同一位置(即,重写因第一已写入分组而被写入该处的数据)。然后重启所述定时器。
由此,可以看出,如果设备1接收到关于同一逻辑存储器地址的大量WRITE指令,这些指令以低于定时器所设置的预定时间的平均时间间隔开,那么将对存储器设备9进行(其是耗费计算量)写操作的那些WRITE指令的数目将很低。
图9列出了主控制单元9的部分结构。主控制单元9包含用于把WRITE指令分离为逻辑地址和待写入该逻辑地址的数据的区域51。把所述逻辑地址发送给模式识别单元53,其用来保持更新的经常使用的地址空间55。所述主控制单元具有开关57,其用于确定刚刚接收到的WRITE指令的逻辑地址是否处于经常使用的地址空间55中。如果不是,那么立刻把数据和逻辑地址写入单元57,其用于把它们依照第一实施例的方法写入到闪速存储器9。若是,那么所述数据被写入高速缓冲存储器59,并且定时单元61中的定时器被设置为运行。如果定时单元61中的定时器达到预定时间段的末尾而没有被再次重置,那么所述数据和相应的逻辑地址通过开关57从高速缓存59传递至单元57。请注意,虽然图9(a)只示出了单个定时单元61,但是该定时单元61通常包含用于频繁单元逻辑地址空间中的每一相应逻辑地址以及用于存在相应高速缓冲存储器位置的这些逻辑地址的每一个的相应定时器。
如果接收到READ指令,单元63确定所述逻辑地址是否是存储在经常使用的地址空间中的一个,并且若是,那么确定相应的定时器是否正在运行。若是,那么它从相应的高速缓冲存储器59中读取数据;否则,它使用单元67来依照由存储器地址映射表定义的对应关系(即,依照第一实施例的方法)从闪速存储器9中读取数据。两种情况下,它都把数据编码为分组,所述分组经由接口3被传输到设备以外。
所述实施例的流程图是图3的,除了图9(b)的步骤被插入到图3的步骤2和3之间以外(并且由单元51和57执行),并且图9(c)的步骤被插入到图3的步骤2和5之间(并且由单元63执行)。在步骤7和9,被写入所述页面的数据是关于该逻辑地址接收的最后WRITE指令中的数据。
每当单元53从经常使用的逻辑地址空间中移去逻辑地址(即,更新单元55)时,高速缓存59的相应位置中的数据依照图3的步骤5到10被写入存储器9。
在本发明的第三和/或第四实施例中,所述定时器可以被设置为只有几毫秒的预定时间段,诸如3ms左右。如果在接收到最后的WRITE指令之后所述设备在预定的周期内与主机断开,那么存在丢失数据的危险。然而,通过把预定的周期设置为毫秒的阶数,就不会出现此问题,并且由此将使所有数据得以安全存储。应注意的是,当把预定的时间段限定为零时,本发明的第三和第四实施例均简化为第一实施例。
应注意的是,如上所述的实施例都不需要块分配表(尽管其它使用这种表进行操作的实施例是可能的)。
虽然此处只详细说明了本发明的少数实施例,但是在本发明的范围内能够进行许多变化,这些对于本领域的技术人员而言是显而易见的。例如,第二、第三和第四实施例的特征易于依照任何组合方式来组合,并且实际上,更加优选的是所描述的所有特征的组合(包括垂直填充块组的页面)。由此,本发明的实施例可以这样来形成,其中逻辑地址区域被映射到由多个块组成的各个组,其中特定逻辑地址区域内的逻辑地址对应于块组内的列,其中第一定时器信号用来暂停从旧组向新组复制数据,并且其中第二(可选地为不同的)定时器信号用来暂停把WRITE指令中包含的数据写入到闪速存储器设备9。
此外,在上述实施例中,只存在单个NAND闪速存储器设备。然而,本发明不局限于此方面,而是可以存在一个以上的依照如上所述的本发明原理来操作的NAND闪速存储器设备。例如,每一个NAND存储器设备均可以与逻辑地址空间的特殊相应部分相关联,并且对于每个NAND存储器设备而言,在该存储器设备的各块和逻辑地址空间相应部分的各个区域之间可能有可变映射。
如上所述,本发明可以通过USB连接来实现,不过本发明不局限于此方面。优选地,由USB控制器采用的USB标准是USB 2.0版本,但是本发明可以采用任何其它版本的USB标准来实现,诸如将来采用的任何版本。
在本发明的范围内不对所述设备的总存储器容量进行限制,但是优选的是至少1兆字节,并且通常至少是10兆字节、至少100兆字节或者甚至至少1千兆字节。

Claims (20)

1、一种便携式数据存储设备,包括:
(i)用于把数据分组转送到设备中并且从该设备传出的数据接口,
(ii)接口控制器,
(iii)主控制单元,以及
(iv)至少一个NAND闪速存储器单元,
所述接口控制器用于向该主控制单元发送通过所述接口接收到的数据,并且
所述主控制单元被设置为把一些数据分组识别为编码READ指令,并且把其它数据分组识别为编码WRITE指令:
(a)当接收到指示逻辑地址的READ指令时,访问用于把逻辑存储空间内的逻辑地址区域与所述存储器单元内相应的第一物理地址区域相关联的存储器地址映射表,依照所述地址映射表从对应于所述逻辑地址的存储器单元中的物理地址读取数据,并且把包括被读取数据的一个或多个数据分组传输到所述数据接口,并且
(b)当接收到指示逻辑地址和待写入该逻辑地址的数据的WRITE指令时,依照所述存储器地址映射表确定对应于所述逻辑地址的物理地址是否处于擦除状态,并且:
若是,把数据写入该物理地址,或者
若否,修改所述地址映射表以便把第二物理地址区域与包含所述逻辑地址的逻辑地址区域相关联,依照修改后的存储器地址映射表把数据写入对应于所述逻辑地址的物理地址,并且把存储在所述第一物理地址区域的其它部分中的所有数据复制到所述第二物理地址区域的相应位置。
2、如权利要求1所述的设备,其中定义所述存储器地址映射表的数据在所述闪速存储器单元中被存储为映射数据,所述存储器控制设备被用于当修改所述存储器地址映射表时,修改所述映射数据。
3、如权利要求2所述的设备,其中所述存储器控制地址单元在初始化时用于从所述闪速存储器单元中提取所述映射数据,并且在RAM存储器内生成所述存储器地址映射表。
4、如权利要求2或3所述的设备,其中定义每个相应的物理地址区域和逻辑地址区域之间的所述映射的所述映射数据部分被存储在所述物理地址区域内。
5、如权利要求4所述的设备,其中关于给定物理地址区域的所述映射数据被存储在所述物理地址区域的一个或多个页面的控制数据存储扇区中。
6、如前述任意一项权利要求所述的设备,其中所述物理存储空间包括:
(i)通过所述存储器地址映射表与逻辑地址区域相关联的物理存储区域,以及
(ii)在用于修改所述存储器地址映射表的所述主控制单元的操作下可以与所述逻辑地址相关联的排队物理存储区域。
7、如权利要求6所述的设备,其中所述排队物理存储区域处于擦除状态。
8、如权利要求6或7所述的设备,其中所述物理存储空间还包括保留的物理存储区域,在用于修改所述存储器地址映射表的主控制单元的操作下,该保留的物理存储区域不能与逻辑地址相关联。
9、如前述任意一项权利要求所述的设备,其中所述物理地址区域是所述存储器单元的各个块。
10、如权利要求1至8中任意一项所述的设备,其中所述物理地址区域是所述存储器单元中的由多个块构成的多个块组,所述组是依照组合表来定义的。
11、如权利要求10所述的设备,其中大部分所述块组是依照一规则定义,并且所述组合表定义所述规则例外的若干组。
12、如权利要求11所述的设备,其中所述存储器地址映射表包含关于任何与所述规则例外的所述组中之一相关的逻辑地址区域的标志。
13、如权利要求10至12任意一项所述的设备,其中所述主控制单元连续地把逻辑地址区域内随后的逻辑地址与所述块中的不同的一些块中的各个页面相关联。
14、如权利要求13所述的设备,其中所述主控制单元把连续的逻辑地址关联为若干集合,每一个逻辑地址集合均具有多个成员,成员的数目与每组中的块数目相等,并且对于每个给定集合而言,所述主控制单元把所述集合的逻辑地址与各个块的相应页面相关联。
15、如先前任意一项权利要求所述的设备,其中所述主控制单元用于只有当在预定时间段内确定没有接收到遵从预定相似标准的第二WRITE指令时,才响应于接收第一WRITE指令来实现所述WRITE指令。
16、如权利要求15所述的设备,其中在关于给定逻辑地址区域的存储器地址修改表的修改后,并且在把所述数据从所述第一物理地址区域复制到所述新的第二地址区域之前,所述标准是所述第二WRITE指令是否涉及对应于待复制数据的给定逻辑地址区域内的位置的逻辑地址,并且在接收到这种WRITE指令的情况下,中止所述复制操作,否则,把由所述第二WRITE指令指定的数据写入所述第二物理地址区域的位置。
17、如权利要求15所述的设备,其中所述主控制单元可访问数据高速缓存,并且响应于所述第一WRITE指令把所述数据写入所述数据高速缓存,所述标准是所述第二WRITE指令与所述第一指令涉及相同的逻辑地址,在所述确定肯定的情况下,在所述第二WRITE指令中指定的数据被写入所述数据高速缓存。
18、如权利要求15所述的设备,其中所述主控制单元可访问数据高速缓存,并且如果所述第一WRITE指令涉及一个或多个所选择的逻辑地址,则响应于所述第一WRITE指令把数据写入所述数据高速缓存,所述标准是所述第二WRITE指令与所述第一指令涉及相同的逻辑地址,在所述确定肯定的情况下,在所述第二WRITE指令中指定的数据被写入所述数据高速缓存。
19、如权利要求18所述的设备,其中存在多个所述选择的逻辑地址。
20、如权利要求18或者19所述的设备,还包括模式识别单元,用于识别出现频率相对较高的WRITE指令中的编码的逻辑地址,并且用于把所述识别出的逻辑地址设置为所述选择的逻辑地址。
CN2004800425059A 2004-01-19 2004-01-19 使用存储器地址映射表的便携式数据存储设备 Expired - Fee Related CN1926616B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2004/000017 WO2005069288A1 (en) 2004-01-19 2004-01-19 Portable data storage device using a memory address mapping table

Publications (2)

Publication Number Publication Date
CN1926616A true CN1926616A (zh) 2007-03-07
CN1926616B CN1926616B (zh) 2011-09-14

Family

ID=34793522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800425059A Expired - Fee Related CN1926616B (zh) 2004-01-19 2004-01-19 使用存储器地址映射表的便携式数据存储设备

Country Status (10)

Country Link
US (1) US7653777B2 (zh)
EP (1) EP1706869B3 (zh)
JP (1) JP4047908B2 (zh)
CN (1) CN1926616B (zh)
AT (1) ATE438915T1 (zh)
BR (1) BRPI0418426A (zh)
DE (1) DE602004022459D1 (zh)
MY (1) MY135115A (zh)
TW (1) TWI277001B (zh)
WO (1) WO2005069288A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203019B (zh) * 2007-11-20 2011-01-05 中兴通讯股份有限公司 通讯设备逻辑地址与物理地址的互换方法及装置
CN103034590A (zh) * 2011-09-30 2013-04-10 国际商业机器公司 用于固态驱动器的直接存储器寻址的方法与系统
CN103677667A (zh) * 2012-09-20 2014-03-26 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN104700896A (zh) * 2013-12-04 2015-06-10 三星电子株式会社 存储器系统和包括所述存储器系统的用户装置
CN106021131A (zh) * 2015-03-24 2016-10-12 Arm 有限公司 存储器管理
CN106688208A (zh) * 2014-09-25 2017-05-17 英特尔公司 利用机架规模架构中的池化存储器进行的网络通信
CN107329905A (zh) * 2012-09-05 2017-11-07 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN115952110A (zh) * 2023-03-09 2023-04-11 浪潮电子信息产业股份有限公司 一种数据缓存方法、装置、设备和计算机可读存储介质

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161524B2 (en) * 2005-01-13 2012-04-17 Samsung Electronics Co., Ltd. Method and portable storage device for allocating secure area in insecure area
US7594067B2 (en) * 2005-10-20 2009-09-22 Stec, Inc. Enhanced data access in a storage device
US9384196B2 (en) 2005-10-26 2016-07-05 Cortica, Ltd. Signature generation for multimedia deep-content-classification by a large-scale matching system and method thereof
US10585934B2 (en) 2005-10-26 2020-03-10 Cortica Ltd. Method and system for populating a concept database with respect to user identifiers
US10380164B2 (en) 2005-10-26 2019-08-13 Cortica, Ltd. System and method for using on-image gestures and multimedia content elements as search queries
US10607355B2 (en) 2005-10-26 2020-03-31 Cortica, Ltd. Method and system for determining the dimensions of an object shown in a multimedia content item
US10372746B2 (en) 2005-10-26 2019-08-06 Cortica, Ltd. System and method for searching applications using multimedia content elements
US10193990B2 (en) 2005-10-26 2019-01-29 Cortica Ltd. System and method for creating user profiles based on multimedia content
US10387914B2 (en) 2005-10-26 2019-08-20 Cortica, Ltd. Method for identification of multimedia content elements and adding advertising content respective thereof
US20160321253A1 (en) 2005-10-26 2016-11-03 Cortica, Ltd. System and method for providing recommendations based on user profiles
US11604847B2 (en) 2005-10-26 2023-03-14 Cortica Ltd. System and method for overlaying content on a multimedia content element based on user interest
US10614626B2 (en) 2005-10-26 2020-04-07 Cortica Ltd. System and method for providing augmented reality challenges
US10776585B2 (en) 2005-10-26 2020-09-15 Cortica, Ltd. System and method for recognizing characters in multimedia content
US11032017B2 (en) 2005-10-26 2021-06-08 Cortica, Ltd. System and method for identifying the context of multimedia content elements
US11620327B2 (en) 2005-10-26 2023-04-04 Cortica Ltd System and method for determining a contextual insight and generating an interface with recommendations based thereon
US8326775B2 (en) 2005-10-26 2012-12-04 Cortica Ltd. Signature generation for multimedia deep-content-classification by a large-scale matching system and method thereof
US10360253B2 (en) 2005-10-26 2019-07-23 Cortica, Ltd. Systems and methods for generation of searchable structures respective of multimedia data content
US9477658B2 (en) 2005-10-26 2016-10-25 Cortica, Ltd. Systems and method for speech to speech translation using cores of a natural liquid architecture system
US10380623B2 (en) 2005-10-26 2019-08-13 Cortica, Ltd. System and method for generating an advertisement effectiveness performance score
US11216498B2 (en) 2005-10-26 2022-01-04 Cortica, Ltd. System and method for generating signatures to three-dimensional multimedia data elements
US9646005B2 (en) 2005-10-26 2017-05-09 Cortica, Ltd. System and method for creating a database of multimedia content elements assigned to users
US11361014B2 (en) 2005-10-26 2022-06-14 Cortica Ltd. System and method for completing a user profile
US11386139B2 (en) 2005-10-26 2022-07-12 Cortica Ltd. System and method for generating analytics for entities depicted in multimedia content
US10848590B2 (en) 2005-10-26 2020-11-24 Cortica Ltd System and method for determining a contextual insight and providing recommendations based thereon
US10180942B2 (en) 2005-10-26 2019-01-15 Cortica Ltd. System and method for generation of concept structures based on sub-concepts
US11019161B2 (en) 2005-10-26 2021-05-25 Cortica, Ltd. System and method for profiling users interest based on multimedia content analysis
US9372940B2 (en) 2005-10-26 2016-06-21 Cortica, Ltd. Apparatus and method for determining user attention using a deep-content-classification (DCC) system
US10742340B2 (en) 2005-10-26 2020-08-11 Cortica Ltd. System and method for identifying the context of multimedia content elements displayed in a web-page and providing contextual filters respective thereto
US10380267B2 (en) 2005-10-26 2019-08-13 Cortica, Ltd. System and method for tagging multimedia content elements
US10191976B2 (en) 2005-10-26 2019-01-29 Cortica, Ltd. System and method of detecting common patterns within unstructured data elements retrieved from big data sources
US9953032B2 (en) 2005-10-26 2018-04-24 Cortica, Ltd. System and method for characterization of multimedia content signals using cores of a natural liquid architecture system
US10949773B2 (en) 2005-10-26 2021-03-16 Cortica, Ltd. System and methods thereof for recommending tags for multimedia content elements based on context
US10691642B2 (en) 2005-10-26 2020-06-23 Cortica Ltd System and method for enriching a concept database with homogenous concepts
US11003706B2 (en) 2005-10-26 2021-05-11 Cortica Ltd System and methods for determining access permissions on personalized clusters of multimedia content elements
US8312031B2 (en) 2005-10-26 2012-11-13 Cortica Ltd. System and method for generation of complex signatures for multimedia data content
US11403336B2 (en) 2005-10-26 2022-08-02 Cortica Ltd. System and method for removing contextually identical multimedia content elements
US8818916B2 (en) 2005-10-26 2014-08-26 Cortica, Ltd. System and method for linking multimedia data elements to web pages
US10635640B2 (en) 2005-10-26 2020-04-28 Cortica, Ltd. System and method for enriching a concept database
US10621988B2 (en) 2005-10-26 2020-04-14 Cortica Ltd System and method for speech to text translation using cores of a natural liquid architecture system
US8046557B2 (en) * 2005-12-05 2011-10-25 Intelitrac Inc. Apparatus and method for on-demand in-memory database management platform
US7917487B2 (en) * 2005-12-13 2011-03-29 Microsoft Corporation Portable application registry
WO2008009040A1 (en) * 2006-07-18 2008-01-24 Stargames Corporation Pty Limited A method and arrangement for protecting data
KR100855467B1 (ko) * 2006-09-27 2008-09-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
US10733326B2 (en) 2006-10-26 2020-08-04 Cortica Ltd. System and method for identification of inappropriate multimedia content
KR100881597B1 (ko) 2007-02-02 2009-02-03 지인정보기술 주식회사 읽기 요청 처리 시스템 및 방법
KR100885181B1 (ko) 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
TWI397820B (zh) * 2007-03-25 2013-06-01 Mstar Semiconductor Inc 記憶體界面裝置與應用於其上之記憶體資料存取方法
US7984173B2 (en) * 2007-05-30 2011-07-19 Red Hat, Inc. Channel bundling
TWI423115B (zh) * 2007-07-06 2014-01-11 Hon Hai Prec Ind Co Ltd 容量整合設備及其資料存儲方法和資料讀取方法
KR101239767B1 (ko) * 2007-11-12 2013-03-06 삼성전자주식회사 화상형성장치 및 그 제어방법
TWI385519B (zh) * 2008-04-18 2013-02-11 Phison Electronics Corp 資料寫入方法及使用此方法的快閃儲存系統與其控制器
JP2010026933A (ja) * 2008-07-23 2010-02-04 Toshiba Corp メモリシステム、ホスト装置
US8838876B2 (en) 2008-10-13 2014-09-16 Micron Technology, Inc. Translation layer in a solid state storage device
US8275933B2 (en) * 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
TWI407441B (zh) * 2009-03-20 2013-09-01 Phison Electronics Corp 快閃記憶體寫入方法及使用此方法的儲存系統與控制器
TWI440044B (zh) * 2010-03-01 2014-06-01 Phison Electronics Corp 記憶體管理與寫入方法、記憶體控制器與記憶體儲存系統
TWI454907B (zh) * 2010-09-14 2014-10-01 Via Tech Inc 記憶裝置及其運作方法
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
CN102567244B (zh) * 2011-12-13 2014-06-04 清华大学 闪存和磁盘转换存取方法
US9740439B2 (en) * 2011-12-23 2017-08-22 International Business Machines Corporation Solid-state storage management
KR20130084846A (ko) 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
CN103077133B (zh) * 2013-01-23 2016-01-13 杭州士兰微电子股份有限公司 提供可变长度高速缓存线的高速缓存器控制器及方法
EP2797003A1 (en) * 2013-04-26 2014-10-29 Giesecke & Devrient GmbH Method for flash memory management of a secure element
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489294B2 (en) * 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory
CN103942499B (zh) * 2014-03-04 2017-01-11 中天安泰(北京)信息技术有限公司 基于移动存储器的数据黑洞处理方法及移动存储器
TWI546666B (zh) * 2014-11-03 2016-08-21 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US11195043B2 (en) 2015-12-15 2021-12-07 Cortica, Ltd. System and method for determining common patterns in multimedia content elements based on key points
WO2017105641A1 (en) 2015-12-15 2017-06-22 Cortica, Ltd. Identification of key points in multimedia data elements
US11237758B2 (en) * 2016-08-06 2022-02-01 Wolley Inc. Apparatus and method of wear leveling for storage class memory using address cache
US11760387B2 (en) 2017-07-05 2023-09-19 AutoBrains Technologies Ltd. Driving policies determination
WO2019012527A1 (en) 2017-07-09 2019-01-17 Cortica Ltd. ORGANIZATION OF DEPTH LEARNING NETWORKS
KR20190054730A (ko) * 2017-11-14 2019-05-22 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
TWI645404B (zh) * 2017-12-28 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
US10846544B2 (en) 2018-07-16 2020-11-24 Cartica Ai Ltd. Transportation prediction system and method
US11126870B2 (en) 2018-10-18 2021-09-21 Cartica Ai Ltd. Method and system for obstacle detection
US10839694B2 (en) 2018-10-18 2020-11-17 Cartica Ai Ltd Blind spot alert
US20200133308A1 (en) 2018-10-18 2020-04-30 Cartica Ai Ltd Vehicle to vehicle (v2v) communication less truck platooning
US11181911B2 (en) 2018-10-18 2021-11-23 Cartica Ai Ltd Control transfer of a vehicle
US11700356B2 (en) 2018-10-26 2023-07-11 AutoBrains Technologies Ltd. Control transfer of a vehicle
US10789535B2 (en) 2018-11-26 2020-09-29 Cartica Ai Ltd Detection of road elements
KR20200085510A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법과, 이를 위한 컨트롤러
US11643005B2 (en) 2019-02-27 2023-05-09 Autobrains Technologies Ltd Adjusting adjustable headlights of a vehicle
US11285963B2 (en) 2019-03-10 2022-03-29 Cartica Ai Ltd. Driver-based prediction of dangerous events
US11694088B2 (en) 2019-03-13 2023-07-04 Cortica Ltd. Method for object detection using knowledge distillation
US11132548B2 (en) 2019-03-20 2021-09-28 Cortica Ltd. Determining object information that does not explicitly appear in a media unit signature
US10789527B1 (en) 2019-03-31 2020-09-29 Cortica Ltd. Method for object detection using shallow neural networks
US10776669B1 (en) 2019-03-31 2020-09-15 Cortica Ltd. Signature generation and object detection that refer to rare scenes
US10796444B1 (en) 2019-03-31 2020-10-06 Cortica Ltd Configuring spanning elements of a signature generator
US11222069B2 (en) 2019-03-31 2022-01-11 Cortica Ltd. Low-power calculation of a signature of a media unit
US11488290B2 (en) 2019-03-31 2022-11-01 Cortica Ltd. Hybrid representation of a media unit
TWI707234B (zh) * 2019-05-20 2020-10-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US10748022B1 (en) 2019-12-12 2020-08-18 Cartica Ai Ltd Crowd separation
US11593662B2 (en) 2019-12-12 2023-02-28 Autobrains Technologies Ltd Unsupervised cluster generation
US11590988B2 (en) 2020-03-19 2023-02-28 Autobrains Technologies Ltd Predictive turning assistant
US11827215B2 (en) 2020-03-31 2023-11-28 AutoBrains Technologies Ltd. Method for training a driving related object detector
US11756424B2 (en) 2020-07-24 2023-09-12 AutoBrains Technologies Ltd. Parking assist

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5918055A (en) * 1997-02-06 1999-06-29 The Regents Of The University Of California Apparatus and method for managing digital resources by passing digital resource tokens between queues
JP2000227871A (ja) * 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
CN1314031C (zh) 2000-02-21 2007-05-02 特科2000国际有限公司 便携式数据存储装置
JP4017177B2 (ja) * 2001-02-28 2007-12-05 スパンション エルエルシー メモリ装置
US6938144B2 (en) * 2001-03-22 2005-08-30 Matsushita Electric Industrial Co., Ltd. Address conversion unit for memory device
JP4772214B2 (ja) 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 不揮発性記憶装置及びその書き換え制御方法
WO2003003278A1 (en) 2001-06-28 2003-01-09 Trek 2000 International Ltd. A portable device having biometrics-based authentication capabilities
JPWO2003009301A1 (ja) * 2001-07-17 2004-11-11 三菱電機株式会社 記憶装置
JP2003058417A (ja) 2001-08-21 2003-02-28 Matsushita Electric Ind Co Ltd 記憶装置
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
AU2002258343B2 (en) * 2002-05-13 2005-09-29 Trek 2000 International Ltd. System and apparatus for compressing and decompressing data stored to a portable data storage device
US20050050273A1 (en) * 2003-08-27 2005-03-03 Horn Robert L. RAID controller architecture with integrated map-and-forward function, virtualization, scalability, and mirror consistency

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203019B (zh) * 2007-11-20 2011-01-05 中兴通讯股份有限公司 通讯设备逻辑地址与物理地址的互换方法及装置
CN103034590A (zh) * 2011-09-30 2013-04-10 国际商业机器公司 用于固态驱动器的直接存储器寻址的方法与系统
CN103034590B (zh) * 2011-09-30 2015-09-16 国际商业机器公司 用于固态驱动器的直接存储器寻址的方法与系统
CN107329905B (zh) * 2012-09-05 2020-12-04 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN107329905A (zh) * 2012-09-05 2017-11-07 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
US9690695B2 (en) 2012-09-20 2017-06-27 Silicon Motion, Inc. Data storage device and flash memory control method thereof
CN103677667B (zh) * 2012-09-20 2017-02-15 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN103677667A (zh) * 2012-09-20 2014-03-26 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN104700896A (zh) * 2013-12-04 2015-06-10 三星电子株式会社 存储器系统和包括所述存储器系统的用户装置
CN104700896B (zh) * 2013-12-04 2019-09-06 三星电子株式会社 存储器系统和包括所述存储器系统的用户装置
CN106688208A (zh) * 2014-09-25 2017-05-17 英特尔公司 利用机架规模架构中的池化存储器进行的网络通信
US10621138B2 (en) 2014-09-25 2020-04-14 Intel Corporation Network communications using pooled memory in rack-scale architecture
CN106688208B (zh) * 2014-09-25 2020-06-30 英特尔公司 利用机架规模架构中的池化存储器进行的网络通信
CN106021131A (zh) * 2015-03-24 2016-10-12 Arm 有限公司 存储器管理
CN106021131B (zh) * 2015-03-24 2021-06-15 Arm 有限公司 存储器管理
CN115952110A (zh) * 2023-03-09 2023-04-11 浪潮电子信息产业股份有限公司 一种数据缓存方法、装置、设备和计算机可读存储介质

Also Published As

Publication number Publication date
DE602004022459D1 (de) 2009-09-17
CN1926616B (zh) 2011-09-14
US20080228995A1 (en) 2008-09-18
EP1706869B3 (en) 2013-04-03
ATE438915T1 (de) 2009-08-15
JP4047908B2 (ja) 2008-02-13
US7653777B2 (en) 2010-01-26
TWI277001B (en) 2007-03-21
WO2005069288A1 (en) 2005-07-28
EP1706869A1 (en) 2006-10-04
TW200525438A (en) 2005-08-01
MY135115A (en) 2008-02-29
EP1706869B1 (en) 2009-08-05
JP2007519118A (ja) 2007-07-12
BRPI0418426A (pt) 2007-05-22

Similar Documents

Publication Publication Date Title
CN1926616A (zh) 使用存储器地址映射表的便携式数据存储设备
CN1295622C (zh) 地址映射方法和映射信息管理方法及其闪速存储器
CN1232912C (zh) 非易失性存储器的控制方法
CN1230829C (zh) 快速可电擦写可编程只读存储器系统中的数据处理方法
CN1652253A (zh) 存储卡和半导体器件
CN1293466C (zh) 用于更新存储卡上固件的系统内编程的实现
US7877540B2 (en) Logically-addressed file storage methods
CN1306420C (zh) 利用永久历史页表数据预取数据到高速缓存的装置和方法
JP4977703B2 (ja) 予定再生操作を伴う不揮発性メモリ
CN1795437A (zh) 用于块内页面分组的方法及设备
CN1637724A (zh) 用于闪速存储器的数据管理装置和方法
US10437519B2 (en) Method and mobile terminal for processing write request
CN1804799A (zh) 单片机在线加载升级方法及系统
CN1199899A (zh) 非易失性半导体磁盘装置
CN1749974A (zh) 存储器管理装置以及存储器装置
CN1702776A (zh) 存储卡、半导体装置和半导体存储器的控制方法
CN1549133A (zh) 快闪存储器的平行双轨使用方法
CN101046774A (zh) 使用替代页池管理dma写入页错误的计算机实现方法和装置
CN1687865A (zh) 降低处理器电力消耗的系统、方法及装置
CN1652088A (zh) 用于闪速存储器的数据管理设备和方法
CN1819544A (zh) 一种基于bitmap表的缓存管理方法
CN1395175A (zh) 规定存取属性的存储器保护方法和电路
CN1545680A (zh) 存储卡及数据重写方法
CN1250184A (zh) 具有地址变换的数据处理方法及设备
CN100345126C (zh) 通用串行总线接口快闪存储器集成电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110914

Termination date: 20140119