对便携式数据存储设备中存储的数据进行压缩及解压缩的系统和设备的制作方法

文档序号:6433232阅读:145来源:国知局
专利名称:对便携式数据存储设备中存储的数据进行压缩及解压缩的系统和设备的制作方法
技术领域
本发明涉及对电子数据进行存储的领域。更特别的,本发明涉及对在便携式数据存储设备中存储的数据的压缩及解压缩。
背景技术
便携式存储设备,有时被称为“钥匙链”存储设备或ThumbdrivesTM(该商标属于本发明受让人),都是小型便携式数据存储设备。这些设备已成为一类不可或缺的电子计算机外部设备,它们在商务,教育和家用计算中得到广泛应用。这些设备与其它的数据存储设备,如个人计算机(PC)、个人数字助理(PDA)、磁盘或光盘(CD)相比,更为小巧。确实,“钥匙链”存储设备这个名字说明这些设备在尺寸上与钥匙相差不多。便携式数据存储设备通常不会永久性地安装于一台特定的主机平台,如个人计算机。相反,它们可以方便地与具有合适的连接端口(例如,像USB端口或IEEE1394(“火线”)端口等的串行总线端口)的计算机进行连接及从计算机上移除。这样,这些设备可以使用户在不同的计算机间传递数据;非此,这些计算机将无法连接。由于这些设备使用非易失性固态存储器(例如快闪存储器)作为存储介质,它们不需要活动的部件或机械的传动装置进行数据的存取。没有传动装置使得便携式数据存储设备同如磁盘或光盘等的表面存储设备相比,结构更加紧凑。同样,由于没有活动的部件,对这些存储设备的存储器的读写比对磁盘或光盘的读写更快。便携式数据存储设备也比磁盘具有更大存储容量。便携式数据存储设备可容纳多达256M字节,而磁盘则为1.4M字节。
尽管将数据存储于便携式存储设备已被证明很有用途,但由于不增大这些设备的尺寸就无法存储更大量的数据,这些设备的使用受到了限制。

发明内容
因而,本发明的目的是提供一种系统和设备,以使用户能够向便携式数据存储设备中存入超过现有技术允许的更大量的数据。这将使制造商增加这些设备的存储器中可存储的数据总量,而无需增大存储器的尺寸,从而无需增大这些设备的尺寸。另外,这还有附加的益处,它可使制造商减小这些设备的尺寸而无需减少设备所能存储的数据总量。
本发明可达成上述这些目的及其它目的;本发明包括一个便携式存储设备,该便携存储设备能通过USB端口、IEEE1394端口或类似的端口与主机平台,如个人计算机,方便地连接。该设备内包括快闪存储器,只读存储器(ROM),随机存取存储器(RAM),USB控制器和一个微控制器。另外,在便携式存储设备中还包括一个数据压缩和解压缩引擎,以便当向存储器中存储及读取数据时,对数据进行压缩/解压缩。
便携式存储设备(ThumbdriveTM)通过将USB连接器插入到个人计算机的USB端口中而与主机平台,如个人计算机(PC),进行连接。欲存储于便携式存储设备中的数据,是由个人计算机以数据包的形式发送到便携式存储设备的工作缓存器中。压缩引擎从缓存器中读取数据并对每一个数据包进行压缩。经压缩的数据包存储于快闪存储器中。为了读取数据,压缩/解压缩引擎从快闪存储器读取数据并将之进行解压缩。解压缩引擎将解压缩的数据置于工作缓存器中,然后数据从缓存器发送至主机平台。
典型情况下,压缩/解压缩引擎位于只读存储器中,然而上载到微控制器中执行。在另一个备选的实施例中,压缩/解压缩引擎位于便携式设备的特定用途集成电路(ASIC)芯片中。
用户无法觉察到该便携式设备的压缩/解压缩功能。用户存储数据,但并不知道数据受到压缩。在另一个备选的实施例中,用户可以了解这些功能,并能根据其意愿而启用/禁止压缩功能。禁止压缩功能可以加快数据存储的速度。


根据以下本发明的优选实施例的具体实施方式
并参考附图,可以明确本发明的目的,功能和优点。
图1为框图,它说明了根据本发明之便携式存储设备的一个实施例的各个功能框及其直观结构。
图2为流程图,它说明了主机平台如何向便携式存储设备传达命令。
图3为流程图,它说明了数据如何发送,压缩并存储于便携式存储设备的存储器中。
图4为流程图,它说明了对存储于便携式存储设备的存储器中的数据如何进行存取。
具体实施例方式
这里,参考附图对本发明进行更详细的说明,在附图中显示了本发明优选的实施例。然而,本发明可通过不同的形式进行实施,而不应被理解为受限于本文中所提出的实施例;相反,提供这些实施例是为了使本文能够向本领域的技术人员充分、全面而且完整地表达本发明。实际上,本发明涵盖了这些实施例的替换形式、改造形式及等同形式,这些都包含于所附的权利要求书中确定的本发明之保护范围和主旨。此外,在随后的本发明的具体实施方式
中,列出众多的特定细节是为了有助于对本发明有一个更充分的理解。但是,本领域的一般技术人员应该明了,无需这些特定的细节即可实施本发明。在其它的实施例中,未对公知的方法、流程、元件和电路进行详细地描述,以免对本发明的各个方面造成不必要的混淆。
图1的框图说明了根据本发明之便携式存储设备和系统的一个实施例的功能框及其直观结构。图1显示了便携式存储设备100(适合握在手中的小型手持设备),该设备经通用串行总线(USB)端口连接器,IEEE1394(即火线)连接器或其它的端口连接器140同主机平台195(例如个人计算机)的USB端口(或类似的端口)192相连接。在优选的实施例中,无需电线或电缆的互相联络即可实现连接。主机平台195与位于便携式设备内部的电源电路150相连。电源电路150从主机平台获取能量,并作为便携式设备100中各个元件的电源。
仍然参考图1,便携式存储设备包括一个微控制器160,快闪存储器180,及一个压缩/解压缩引擎190。显然,微控制器160也可以是一个通用微处理器。
在一个实施例中,工作缓存器165位于微控制器内。在另一个备选的实施例中,工作缓存器165位于微控制器165之外(即随机存储器110之中)。在优选的实施例中,工作缓存器的容量为16K字节。
应该意识到数据压缩/解压缩引擎190可应用多个方法实现,这些方法均处于本发明的保护范围之内。在一个实施例中,压缩/解压缩引擎190可由便携式设备100内的非易失性存储器110中存储的固件实现。在另一个实施例中,数据压缩/解压缩引擎190可由微控制器160的一部分实现。还有一个实施例中,压缩/解压缩引擎190可由与微控制器160相分离的处理器实现。换句话说,在本发明的保护范围内,压缩/解压缩引擎190并不需要固定于便携式设备100的某一特定部位。相反,在何处安放压缩/解压缩引擎190可根据设计进行选择,这样,就为适应使用本发明的不同的应用情况提供了设计的灵活性。
在数据从主机平台195发送至便携式存储设备100之后,数据压缩/解压缩引擎190对数据进行压缩。数据以数据包的形式经USB总线进行传输。数据压缩/解压缩引擎190从工作缓存器165中读取数据(典型情况下是每一次读取一个扇区)并对数据进行压缩。在优选的实施例中,数据压缩至原有大小的50%。因而大小为512字节的数据包将被压缩至256字节。压缩后,数据存储于快闪存储器180中。压缩/解压缩引擎190也对存储于快闪存储器180中的数据进行解压缩并将数据传输至主机平台195。
在该实施例中,便携式设备包括一个USB设备控制器130,它用于控制便携式设备100与主机平台195之间的通信,后者如兼容USB的个人计算机,其中具有USB主控制器197。
仍然参考图1,便携式设备100还包括一个易失性存储器120和一个非易失性存储器110。在优选的实施例中,易失性存储器120是随机存取存储器(RAM),它作为微控制器160在工作时的工作存储器。在该实施例中,非易失性存储器110是只读存储器(ROM),它可用于存储固件,后者可完成便携式存储设备100的不同功能。
另外,在该实施例中,便携式设备100包括一个写保护开关170,当它打开时,可以启动微控制器160而禁止对快闪存储器180的写入访问。应该注意到,同压缩/解压缩引擎190一样,写保护开关可采用多个方法实现,这些方法均处于本发明保护范围之内。写保护开关170可通过以下方法实现例如应用软件(如在非易失性存储器中存储的固件),作为微控制器160的一部分,或作为与微控制器160相分离的处理单元。在备选实施例中,写保护开关可以是一个手动开关,它可由用户手动操作。
在如图1所描述的当前优选的实施例中,微处理器160控制着便携式设备100的各个元件,包括USB设备控制器130,只读存储器(ROM)110和随机存取存储器(RAM)120(及存储于其中的固件代码的执行)。
另外的选择是,便携式设备100进一步包括一个USB端口(图中未示),它可提供一种方便的性能,以使之能通过USB而将其它的一个或多个USB兼容设备与该便携式设备相连接。
在一个实施例中,驱动软件(图中未示),应用程序接口(API)及监控程序(图中未示)都驻留于主机平台195并与USB主控制器197相联络,以便于对便携式设备100进行操作。
在如下的两个美国专利申请中描述了便携式数据存储设备的结构一个申请的序列号为09/898,365,题目是“具有生物特征认证功能的便携式设备”,于2001年7月3日提交;另一申请的序列号为09/830,173,题目是“可通过USB接头与计算机直接连接的便携式数据存储设备”。
图2的流程图描述了当用户将便携式设备100与主机平台195连接(步骤205)并开始向便携式设备100存储数据时所发生的操作。在步骤205中,当与主机平台195连接之后,便携式设备100进行初始化过程。在当前优选的实施例中,初始化过程涉及与主机平台195建立联络并确保主机平台195知道便携式设备100已与其相连接。主机平台195通过向USB主控制器197发送请求包而从便携式设备100请求服务。USB主控制器197通过USB端口192向USB连接器140发送请求包。然后便携式设备140完成各项操作,如从快闪存储器180中读出数据、向其写入数据或者删除数据,同时伴有对数据的压缩及解压缩。
在步骤210中,主机平台195可向便携式存储设备100,以写入命令的形式发出请求,以便向快闪存储器180写入数据。在步骤215中,USB控制器130接收到写入命令。典型情况下,写入命令指明了随后将要存储的数据包的数目。
图3的流程图描述了当数据传输到便携式设备以便压缩并写入到快闪存储器180中时发生的操作。主机平台195将第一个数据包发送至USB控制器130(步骤303)。在一个实施例中,按照USB2.0标准,每一个数据包对应于存储器的一个扇区或512字节。在备选的实施例中,按照USB1.1标准,每一个数据包是64字节。
USB控制器130从主机平台195接收数据包(步骤305)。USB控制器130将数据包发送至工作缓存器165(步骤310)。在优选的实施例中,工作缓存器165最多能容纳16K字节的数据。如果工作缓存器165达到最大容量而不能存储更多的数据,那么下一个数据包就会被拒绝,并且微控制器160会向主控制器195发出一个否定应答(NAK)信号,表示被拒绝的数据包未被接收(步骤312和313)。然后,主控制器195再次发送被拒绝的数据包(步骤303)。数据包被拒绝和再次发送的这一过程持续进行,直到工作缓存器165有了足够的容量接收下一个数据包(步骤314)。
微控制器160执行压缩/解压缩引擎190(步骤315)。压缩/解压缩引擎190按“先进先出”的方案对存储于工作缓存器165中的数据包进行操作,借此,数据包按照它们在工作缓存器165存储的顺序进行压缩,这样,最先存储于工作缓存器165的数据包将最先被压缩并最先被传输至快闪存储器180。在优选的实施例中,数据被压缩至原有大小的50%。在优选的实施例中,当按照USB2.0标准进行操作时,压缩引擎190每一次操作压缩一个扇区(512字节)的数据。在备选的实施例中,当按照USB1.1标准进行操作时,压缩引擎190每一次操作压缩64字节的数据。被压缩的数据存储于快闪存储器180中(步骤325)。
存储器变换由微控制器150控制。在优选的实施例中,主机平台(及用户)并不知道数据正在被压缩。对主机平台而言,数据好像未被压缩那样填充快闪存储器180的扇区(即每一个扇区有512字节未被压缩的数据)。这样,写入第一个扇区的压缩数据对主控制器而言就好像填满了整个扇区。实际上,数据从512字节压缩至256字节,并且数据未被压缩时所需的扇区空间的一半就可存储这些数据。这样,第二个数据包,在从512字节压缩至256字节之后,也存储于第一个扇区。对于主控制器而言,实际上存储于第一个扇区的第二个数据包,显得就好像存储于第二个扇区中。同样,存储于第二个扇区的第一个数据包就会显得好像存储于第三个扇区,而存储于第二个扇区的第二个数据包就会显得好像存储于第四个扇区。
典型情况下,采取2位错误检测和1位校正机制(2bit errordetection and 1bit correction mechanisms)。
如果存在另外的数据包,主控制器195就向USB控制器130发送该数据包(步骤335和303)。数据压缩引擎190继续压缩在工作缓存器165中存储的另外的数据包(步骤320)。当没有需要压缩的数据包时,数据压缩和存储过程结束。
图4描述了从便携式数据存储设备的存储器中读取数据并进行解压缩的步骤。
在步骤410中,用户将便携式设备100与主机平台195相连接。在步骤410中,当便携式设备与主机平台195连接之后,便携式设备100进行如上所述的初始化过程。主机平台195通过向USB主控制器197发送请求包,而从便携式设备100请求服务。USB主控制器197通过USB端口192向USB连接器140发送请求包。
主机平台195可向便携式存储设备100,以读出命令的形式发出请求,以便读出用户所请求的数据(步骤420)。USB控制器130接收到读出命令(步骤425)。读出命令指明了数据在快闪存储器180中的位置和所要读出的数据包的数目。由于主机平台195并不知道数据受到压缩,读出命令所请求的数据并不一定位于主机平台195认为该数据所在的扇区。例如,如上所述,第二个数据包实际上存储于第一个扇区的第二部分,对主机平台195而言,就好像存储于第二个扇区中。类似地,存储于第二个扇区的第一个数据包就会显得好像存储于第三个扇区,而存储于第二个扇区的第二个数据包就会显得好像存储于第四个扇区。这样,主机平台195的数据请求可能指明某一特定的数据包存储于第二个扇区,而实际上,该数据存储于第一个扇区的第二部分。为了解决这个问题,微控制器160按照数据进行存储时的方式,从快闪存储器180中读取所请求的数据。
在步骤430中,微控制器160执行压缩/解压缩引擎190。压缩/解压缩引擎190从快闪存储器180中读取所请求的数据包(步骤445)。压缩/解压缩引擎190对数据进行解压缩(步骤447)。经过解压缩的数据发送至工作缓存器165(步骤450)。经过解压缩的数据发送至USB控制器130(步骤455)。在步骤460中,将数据包发送至主机平台195的存储器(例如随机存储器)中。
数据压缩/解压缩引擎190继续从快闪存储器180中读取数据并对其进行解压缩,直到所有请求的数据都已被解压缩并发送至主机平台195。
另外的选择是,主机平台195向便携式设备100发出请求,以读出在快闪存储器180中存储的数据的目录。然后用户就能在主机平台195上观察目录,以确定他希望从快闪存储器180中读出哪一个数据。
显然,上面的描述只涉及本发明的优选的实施例。在本领域中有技术的人员可设计出其它的装置而不偏离本发明的主旨及保护范围。因而本发明只受限于所附的权利要求书。
权利要求
1.一种设备,其包括一个单一的便携式数据存储设备,它具有一个适用于存储设备的通用串行总线USB连接器,该设备可通过该连接器与计算机直接连接,该存储设备包括一个具有一个第一存储容量的快闪存储器;及一个数据压缩引擎,该数据压缩引擎能够对在快闪存储器中存储的数据进行压缩,以便快闪存储器的存储容量超过所述第一存储容量。
2.如权利要求1所述的便携式数据存储设备,其进一步包括一个解压缩引擎,该解压缩引擎能够对在便携式设备的存储器中存储的数据进行解压缩。
3.如权利要求1所述的便携式设备,其中用户并不知道数据受到压缩。
4.如权利要求1所述的便携式设备,其中数据被压缩至原有大小的50%。
5.如权利要求1所述的便携式设备,其中存储器的容量被增大100%。
6.如权利要求1所述的便携式设备,其中用户可以启动和禁止压缩引擎。
7.一种压缩数据的方法,该方法包括如下的步骤a)通过通用串行总线连接器将便携式数据存储设备直接连接于主机平台的通信端口;b)执行驻留在该便携式存储设备中的数据压缩引擎;c)压缩由主机提供的数据;及e)将压缩的数据存储于便携式设备的存储器中。
8.如权利要求7所述的方法,其中用户并不知道数据受到压缩。
9.如权利要求7所述的方法,其中压缩步骤包括将数据压缩至原有大小的50%。
10.如权利要求7所述的方法,其中进一步包括将存储器的容量增大100%的步骤。
11.如权利要求7所述的方法,其中用户可启动和禁止压缩引擎。
12.一种对存储于便携式存储设备的存储器中的数据进行解压缩的方法,该方法包括如下的步骤a)通过通用串行总线USB将便携式数据存储设备直接连接于个人计算机的通信端口;b)执行驻留于便携式数据存储设备中的数据压缩/解压缩引擎;及c)从便携式数据存储设备的存储器中读取经过压缩的数据;d)对数据进行解压缩;及e)将数据发送至主机平台。
11.如权利要求10所述的方法,其中用户可启动和禁止压缩引擎。
全文摘要
本发明提供一种便携式存储设备,它能够通过通用串行总线(USB)端口、IEEE1394(火线)端口或类似的端口与个人计算机方便地连接。该便携式存储设备中包括一个能够对数据进行压缩和解压缩的压缩/解压缩引擎。个人计算机或其它主机平台中的数据由该引擎压缩,随后存储于便携式存储设备的存储器中。压缩的数据由该引擎读取并解压缩,随后发送给个人计算机供用户使用。这样,本发明的实施例就为用户提供了非常方便的系统和设备,使其能在相对较小的设备中访问和存储更大量的数据。
文档编号G06F13/12GK1605069SQ02825073
公开日2005年4月6日 申请日期2002年5月13日 优先权日2002年5月13日
发明者符廷彬 申请人:特科2000国际有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1