CN101097551A - 带有闪存控制器的电子数据闪存卡 - Google Patents
带有闪存控制器的电子数据闪存卡 Download PDFInfo
- Publication number
- CN101097551A CN101097551A CNA200710137211XA CN200710137211A CN101097551A CN 101097551 A CN101097551 A CN 101097551A CN A200710137211X A CNA200710137211X A CN A200710137211XA CN 200710137211 A CN200710137211 A CN 200710137211A CN 101097551 A CN101097551 A CN 101097551A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- flash
- memory device
- data
- card
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种计算机可读电子数据闪存卡,包含一连接到用于存储数据文件的闪存设备的处理单元,一可激活以和主机建立通讯的输入输出接口电路,在一实施方式中,电子数据闪存卡采用一USB输入输出接口电路和主机通讯。闪存控制器包括一索引,用于将主机发送的逻辑地址转换为闪存设备对应扇区的物理地址。索引通过涉及存储于闪存设备的各种查询表值和有效数据的判断逻辑控制。闪存控制器还包括一先进先出(FIFO)单元,用于在后台处理中,回收闪存设备的废旧扇区使它们可重新编写。
Description
技术领域
本发明涉及一种电子数据闪存卡(electronic data flash card),尤其是指一种在电子数据闪存卡内控制闪存的系统和方法。
背景技术
存储于软盘或通过网络进行传输的个人数据文件通常需要通过密码或加密编码来保证文件的安全,个人文档通过安全封装或压缩打包后进行发送。然而,在传输过程中,个人数据文件和文档很可能因为密码、加密码、全封装或安全压缩包遭到破坏而被泄露,从而导致个人信息遭到未授权的访问。
随着闪存技术的发展,闪存将逐渐取代传统的磁盘作为移动系统的存储介质,闪存较软盘或磁硬盘有显著的优点,如高G阻抗和低耗电。由于物理尺寸较小,闪存也更有利于移动系统。一般,闪存由于它的高容量和低消耗的特点已成为发展趋势。因此为了各种性能、成本、容量的需求,很多种类的闪存设备应运而生,因此,当一个仅适配一种闪存卡的移动系统使用另一种不兼容的闪存时问题就出现了。
新一代个人计算机卡技术已经发展到将闪存和兼容USB标准的架构结合起来了,得益于USB标准对于PC使用者来说更易实现和普遍,这进一步促进了闪存的发展趋势。除了代替硬盘,还将取代软盘,这是因为闪存较软盘能提供更高的存储能力和更快的访问速度。
然而,USB标准的几个特性如封帧时间、处理数据包和列举处理等要求另外的处理器资源。为更好的优化,这些部件已经应用于各种专用集成电路。
USB大容量设备的缺点是存取速度慢,USB接口的存取速度比电子集成驱动器(IDE)接口慢得多,这是因为上述的USB标准包含了例如USB管理命令以及握手包需要的附加资源。USB标准引入的Bulk-only事务协议解除了一些资源,但仅限于USB传输空闲的时候。
除了USB标准引入的限制因素外,闪存也有固有的限制因素。首先,已被编程写入的闪存扇区在被重新编程写入之前应进行擦除,其次,闪存扇区的使用寿命有限,例如,它们在报废之前只能被擦除有限次数。相应地,根据写前擦除特性存取闪存不会太快,而且随着时间推移,擦除将破坏闪存扇区。
为解决USB标准闪存的速度问题,硬件和固件利用存在的小电脑系统接口(SCSI)协议以便闪存能如近似于磁硬盘的大容量设备一样运行。在闪存设备被广泛应用为存储媒介之前,SCSI协议早已被应用于USB标准大容量设备。相应地,USB标准结合传统SCSI协议用于管理闪存。
SCSI协议的缺点是它们没有擦除命令来解决闪存的写前擦除特性。因此,擦除管理是通过主机系统进行处理的,这将占用主机资源。
一种解决办法是引入了新的USB包定义,如写闪存、读闪存和擦除闪存定义。然而,这些定义并非是一个有效的处理闪存的途径,这是因为它们引入了额外的协议,这些协议要求额外的主机处理资源。同时,它们同样无法解决扇区损耗问题。
另一种解决办法是为闪存写处理提供一个驱动程序,这些程序拥有三个不同的子程序。一般,首先读取被请求闪存地址的数据,如果该地址中已有数据写入,固件会执行一个擦除命令。此时,如果擦除命令执行正确,固件会执行一个写入请求。然而,该驱动程序利用需要额外的主机处理资源的协议。
再一种解决办法是提供一个拥有两个区域:即数据区域和冗余区域的闪存扇区格式,冗余区域包含有有助于管理扇区标记的控制数据。然而当主机系统写入扇区时,标记增加了ASIC复杂性。
上述方法和其他已知设备的缺点是包含了额外的用于处理专用协议的占用主机系统资源的和由此增加的用于管理闪存的处理时间。
因此,必须研制一种带有智能处理单元的可支持多种闪存种类的电子数据闪存卡。
同时还必须开发一个改进的用于控制闪存的系统和方法。该系统和方法能适用于USB标准,能适配ASIC硬件执行,能简单、经济、方便适配现有技术。
发明内容
本发明提供了一种包含闪存设备、指纹感应器(fingerprint sensor)、输入/输出接口电路和处理单元(processing unit)的电子数据闪存卡。该电子数据闪存卡可被主机如个人电脑、笔记本电脑或其他电子主机设备访问。由于电子数据闪存卡易于携带和耐用性好,个人数据可以加密形式存储于闪存设备中,从而使得其仅能被访问,例如,通过在卡体上设置指纹传感器来确保未授权用户无法误用该卡。
一种适配可建立通讯连接的主机访问的电子数据闪存卡,其中,电子数据闪存卡包括:
卡体;
设于卡体上的闪存设备,闪存设备包含有大量用于存储数据文件的非易失性存储单元;
一设于卡体上用于和主机建立通讯的输入输出接口电路;和
一设于卡体上,并电性连接所述闪存设备和所述输入输出接口电路的闪存控制器,其中,闪存控制器包括:
(a)检测装置,用于根据闪存检测算法代码(flash detection algorithmcode),检测闪存设备是否为闪存控制器的处理单元所支持;
(b)一索引(index),存储大量逻辑块地址(logical block address)和物理块地址(physical block address),用于将各所述物理块地址指派给对应的所述逻辑块地址,各物理块地址对应闪存设备的相关大量存储单元;
(c)可选操作方式之一:
编程模式(programming mode),在该模式下,闪存控制器激活所述的输入输出接口电路,接收来自主机的数据文件,并通过一个主机发送给闪存控制器的写命令将该数据文件存入所述闪存设备关联到第一逻辑块地址的第一物理块地址中;
数据恢复模式(data retrieving mode),在该模式下,所述闪存控制器接收来自主机的包含第一逻辑块地址的读命令,并激活所述输入输出接口电路来传输从第一物理块地址读取到主机的数据文件;和
数据复位模式(data resetting mode),在该模式下,数据文件从闪存设备中擦除。
其中,索引包括至少一个用于存储逻辑块地址和对应物理块地址的查询表(look-up-table,简称LUT);
其中,闪存控制器还包括一个判断逻辑(arbitration logic),包含有将各所述物理块地址指派给对应所述逻辑块地址的装置。
其中,索引包括一写查询表(write LUT)和一读查询表(read LUT),其中,闪存控制器还包括一个在对应编程模式后,更新读查询表的装置。
其中,索引还包括一物理使用表(physical usage table,简称PUT),用于执行物理扇区映射(physical sector mapping),和提供一指示闪存设备已编程扇区的位图(bitmap)。
其中,写查询表、读查询表和物理使用表包括有高性能易失性闪存,如SRAM。
其中,闪存控制器还包括一先进先出单元(first-in-first-out,简称FIFO),用于将数据文件写入闪存设备之前,暂存至少一部分数据文件。
其中,闪存控制器还包括一第二先进先出单元,用于回收闪存设备的废旧扇区。
其中,闪存控制器还包括一通过SCSI协议接入闪存设备的装置。
其中,输入输出接口电路包含一串行总线接口电路,其中,串行总线接口电路包括有利用BOT协议传输所述数据的装置。
其中,输入输出接口电路包含SD接口电路、MMC接口电路、CF接口电路、MS接口电路、PCI高速接口电路、IDE接口电路、SATA接口电路中的一种。
其中,闪存设备包括第一闪存设备和第二闪存设备,和
其中,闪存控制器包括支持双通道平行访问(dual-channel parallelaccess)和交替访问(interleave access)方式中至少一种方式来访问第一闪存设备和第二闪存设备的装置。
其中,闪存控制器包括8051、8052、80286、RISC、ARM、MIPS的一种和一数字信号处理器。
根据本发明的一种实施方式,闪存控制器(flash memory controller)是处理单元的组成部分,用于控制闪存设备运行。处理单元连接于闪存设备和输入/输出接口电路。闪存控制器逻辑(flash memory controller logic)包括用于检测闪存设备是否为闪存控制器逻辑所支持的闪存类型的闪存类型算法(flash type algorithm)。通过存储闪存检测算法代码的动态部分和个人数据于至少一个闪存设备中,不仅能使电子数据闪存卡的ROM尺寸减小,还能使新的闪存类型能在仅改变存储于闪存中闪存检测算法动态部分而无需改变硬件的情况下就能被支持。这样节省了总花费和也节约了不必要的开发时间。
根据本发明另一种实施方式,电子数据闪存卡的处理单元有三种可选模式:可编程模式(programming mode)、数据恢复模式(data retrievingmode)和复位模式(resetting mode)。在可编程模式下,处理单元激活输入/输出接口电路从主机获取个人数据文件,将其存储于闪存设备中。在数据恢复模式下,处理单元激活输入/输出接口电路以传输数据文件至主机。在数据复位模式下,数据文件(和相关的指纹数据)从闪存设备中擦除。
在本发明的一种实施方式中,处理单元为8051、8052、80286、RISC、ARM、MIPS或数字信号处理器中的任一种微处理器。
根据本发明的一种实施方式,输入/输出接口电路是USB接口电路。
根据本发明的另一种实施方式,USB闪存设备使用单批量传输(Bulk-Only Transfer,简称BOT)协议在主机间传输高速数据,BOT是比CBI协议更为有效和高速的传输协议,因为BOT传输命令、数据、状态是依靠除了缺省控制端点(endpoint)的批量端点。
根据本发明的另一种实施方式,闪存控制器包括一个用于从主机系统接收至少一个请求的处理器。闪存控制器还包括一个包含关于闪存扇区(sector)信息的索引(index)。处理器利用索引来决定可用于编程、再编程或读操作的闪存扇区。本发明的另一方面,闪存控制器还包括一个用于回收废旧扇区(obsolete sector)以再编程的先进先出单元(first-in-first-outunit,简称FIFO)。
根据前述的系统和方法,主机系统无需闪存配置信息,却可以和闪存控制器相互影响。因此,当闪存兼容USB标准和ASIC构造时,从闪存中写和读数据的速度得以显著提高。
附图说明
本发明的其它特征和优点将结合附图进一步进行说明。具体如下:
图1为本发明一种实施方式的带有指纹验证功能的电子数据闪存卡的结构示意框图;
图2为本发明另一种实施方式中电子数据闪存卡的电路结构示意框图;
图3为本发明另一种实施方式的用于电子数据闪存卡的处理单元的结构示意框图;
图4A为本发明一种实施方式中检测闪存类型的处理流程图;
图4B为本发明另一种实施方式中电子数据闪存卡局部的结构示意框图;
图5A为8位处理器访问8位数据闪存的结构示意框图;
图5B为16位处理器访问16位数据闪存的结构示意框图;
图5C为16位双通道处理器通过单控制器访问两个8位数据闪存的结构示意框图;
图5D为根据本发明一种实施方式,采用16位交叉通道处理器通过单独控制器访问两个8位数据闪存的结构示意框图;
图6为本发明另一种实施方式中电子数据闪存卡的电路模块结构示意框图;
图7为本发明含有闪存控制器和闪存的闪存系统的结构示意框图;
图8为本发明图7中写查询表、读查询表、物理使用表和回收FIFO的具体结构示意框图;
图9为本发明图7中闪存的具体结构示意框图;
图10为本发明用于管理闪存的方法的高位流程图;
图11为本发明用于传输USB大容量级服务请求的方法的流程图;
图12A、12B、12C分别为本发明命令块包、命令读格式化简化块、命令状态包的结构示意框图;
图13为本发明用于读、写、擦除方法的流程图;
图14为本发明包含写处理的第一阶段、写处理的第二阶段、读处理和回收管理方法的高位流程图;
图15A、15B、15C、15D分别为根据本发明从写处理第一、第二阶段得出的代表性结果的示意框图;
图16为实现图14写处理第一阶段方法的流程图;
图17为实现图14写处理第二阶段方法的流程图;
图18为实现图14读处理方法的流程图;
图19为实现图14回收管理的方法的流程图。
具体实施方式
图1所示为本发明一种实施方式的结构示意图,如图1所示,一种电子数据闪存卡10,可通过接口总线13、读卡器12或其它接口设备(图中未示)被主机9访问,包括卡体1、处理单元2、一个或多个闪存设备3、指纹传感器4、输入/输出接口电路、一可选的显示单元6、电源(如电池)7和功能键设置(function key set)8。
闪存设备3设于卡体1上,以已知方式存储一个或多个数据文件、相关密码信息、相关通过扫描一个或多个电子数据闪存卡10授权用户的指纹获得的指纹信息。仅授权用户可访问这些存储的数据文件,数据文件可以是图形文件或文本文件。
指纹传感器4设于卡体1上,用于扫描电子数据闪存卡10用户的指纹以生成指纹扫描数据。本发明可采用的指纹传感器4的一个示例在专利号为6547130、名称为“带有指纹验证功能的集成电路卡”的共有美国专利中已公开,其技术内容在此不再详细说明。上述专利公开的指纹传感器包括用于定义指纹扫描空间的扫描单元阵列。指纹扫描数据包括大量通过扫描相应扫描单元阵列行获得的扫描行数据。扫描单元阵列行通过所述阵列的行方向和列方向进行扫描。当检测到卡体上指纹高电平时,各扫描单元产生一个第一逻辑信号,反之则产生一个第二逻辑信号。
输入/输出接口电路5设于卡体1上,能被激活,通过接口总线13或读卡器12经相应接口和主机9建立通讯。本发明的一种实施方式中,输入/输出接口电路5包含可通过接口总线13或读卡器12接入主机9的SD接口电路、MMC卡接口电路、CF接口电路、MS接口电路、PCI-Express接口电路、IDE接口电路、SATA接口电路的一种。
处理单元2设于卡体1上,通过卡体1上的传输线与闪存设备3、指纹传感器4和输入/输出接口电路5连接。本发明的一种实施方式,处理单元2采用8051、8052、80286微处理器中的一种,比如,Intel公司生产的。本发明的另一种实施方式,处理单元包含RISC、ARM、MIPS或其他数字信号处理器。根据本发明的一方面,处理单元2通过至少部分存储于闪存设备3中的程序进行控制,使得处理单元2可为下列可选模式:(1)可编程模式,该模式下,处理单元2激活输入/输出接口电路5以接收来自主机9的数据文件和相关指纹信息,并将其存储于闪存设备3中;(2)数据恢复模式,在该模式下,处理单元2激活输入/输出接口电路5以传输存储于闪存设备3中的数据文件至主机9;(3)数据复位模式,在该模式下,数据文件和相关指纹数据从闪存设备3中擦除。在运行中,主机9通过接口总线13或读卡器12和接入处理单元2的输入/输出接口电路5向电子数据闪存卡10发送写和读请求,依次利用闪存控制器(图中未示)向一个或多个闪存设备3读或写操作。本发明的一种实施方式,为了更好的安全保护,当检测到自上次授权访问存储于闪存设备3中的数据文件的预订时间消耗掉时,处理单元2自动开始运行数据复位模式。
可选电源7设于卡体1上,与处理单元2和卡体1上用于提供电源的其他单元连接。
可选功能键设置8,设于卡体1上,连接处理单元2,具可操作性以启动处理单元2运行于可选的可编程模式、数据恢复模式或数据复位模式下。可选功能键设置8可被操作用于向处理单元2提供一个输入密码。处理单元2比较输入密码和闪存设备3中存储的相关密码信息,经验证输入密码和相关密码一致,则启动电子数据闪存卡10的授权操作。
可选的显示单元6设于卡体1上,连接处理单元2并由处理单元2控制,用于显示和主机9交换数据文件和电子数据闪存卡10的运行状态。
本发明的优点如下:第一,电子数据闪存卡体积小、容量大、数据传输方便;第二,由于每个人的指纹是唯一的,电子数据闪存卡仅允许授权用户访问其内的数据文件,增强了安全性能。
本发明的其它特征和优点将在下面阐述。
图2是本发明另一种实施方式不带指纹传感器和用户验证过程的电子数据闪存卡10A的结构示意框图。一种电子数据闪存卡10A,包括由一输入/输出接口电路5A和一闪存控制器21为减少花费高集成组成的处理单元2A。输入/输出接口电路5A包括一收发模块(transceiver block)、一串行接口引擎模块(serial interface engine block),若干数据缓冲器(databuffer)、若干寄存器(register)和中断逻辑(interrupt logic)。输入/输出接口电路5A耦合一内部总线以容许输入/输出接口电路5A的多个部件能和闪存控制器21的部件之间进行通讯。闪存控制器21包括一微处理单元,一ROM,一RAM,闪存控制器逻辑,纠错码逻辑(error correction codelogic)和通用输入输出逻辑(GPIO)。本发明的一种实施方式中,通用输入输出逻辑耦合若干个LED用于状态显示,比如电源好(PG),读/写闪存活动等等,和其它的I/O设备。闪存控制器21耦合一个或多个闪存设备3。
在此实施方式中,主机9A包括一个功能键设置8A,当电子数据闪存卡10A运行时,通过接口总线或读卡器与处理单元2A连接。功能键设置8A用于设置电子数据闪存卡10A的可选工作模式:可编程模式、数据恢复模式或数据复位模式。功能键设置8A也可操作用于向主机9A提供一个输入密码。处理单元2A比较输入密码和闪存设备3内已存的相关密码信息,当验证到输入密码和相关密码信息一致时,启动电子数据闪存卡10A的授权操作。
在该实施方式中,主机9A包括显示单元6A,当电子数据闪存卡10A运行时,通过接口总线或读卡器与处理单元2A连接。显示单元6A用于显示和主机9A之间的数据文件交换,和电子数据闪存卡10A的运行状态。
图3为处理单元2A的内部结构示意框图,电子数据闪存卡10A包括一个用于向处理单元2A提供一个或多个电源供应(power supply)的电源调节器(power regulator)22,电源供应可根据电子数据闪存卡10A相关单元的电源要求提供不同的电压,带有用于稳压的电容器(Capacitor)(图中未示)。电子数据闪存卡10A包括一个用于向处理单元2A提供复位信号的复位电路(reset circuit)23,启动电源后,复位电路23向所有单元发送复位信号。当内部电压达到稳定,复位信号停止发送,电阻和电容(图中未示)用于适当的复位定时调整。电子数据闪存卡10A也包含一石英晶体振荡器(quartz crystal oscillator)(图中未示),用于向处理单元2A内的PLL提供基频。
根据本发明的一种实施方式,输入输出接口电路5A,复位电路23和电源调节器22集成或部分集成于处理单元2A上,这种高集成大大减少了所需空间、复杂度和制造成本。
体积小和花费是移动设备如本文所述电子数据闪存卡的关键因素。目前的IC封装技术能将不同技术和材料的离散IC部件集成于一个IC封装。比如,输入输出接口电路是模拟和数字混合电路,可和处理单元集成于MCP(Multi-Chip Package)封装上。复位电路和电源调节器是模拟电路,同样也可和处理单元集成于MCP封装上。
混合信号集成电路技术的特点允许模拟电路和数字电路的混合集成。因此,高集成可合并到包含输入输出接口电路5A、闪存控制器21、复位电路23和电源调节器22的同一处理单元2A的裸芯片(die)上。
本发明的另一种实施方式中,处理单元2、输入输出接口电路5、电源调节器22和复位电路23通过MCP技术或混合信号集成电路技术集成或部分集成。
闪存技术的优点已创造了大量的适应不同性能、花费和容量的闪存设备种类。比如,MBC(Multi Bit Cell)闪存设备较SBC(Single Bit Cell)闪存设备,形状要素相同,但容量更大,围绕NAND闪存相关知识产权问题,AND或Super-AND闪存得以创造。同样,大页尺寸(2k字节)闪存较小页尺寸(512字节)闪存拥有更好的写性能。闪存的飞速发展,使得设备拥有大容量。为了支持如此多种类的闪存类型,闪存控制器相应地必须能检测和访问它们。
基于上述的潜在缺点以及费用原因,寻找闪存的灵活性事实上唯一的方法就是要存取每一个不同的闪存类型。因此执行一个带有智能算法的处理单元来检测和存取不同闪存类型是非常重要的。
典型的闪存设备包含一个可用于识别闪存类型、制造商以及闪存的特性如页面大小、块结构大小、容量等的ID代码(ID code)。根据本发明的当前实施方式,电子数据闪存卡的处理单元在系统电源启动时执行闪存检测操作来判断闪存控制器是否支持一个或更多电子数据闪存卡的闪存设备。
图4A表示了本发明的闪存检测算法。首先,处理单元被复位(框410),接着,闪存的ID被读取用于识别闪存类型(框420)。读取的ID用于和闪存控制器的支持闪存类型表进行比较(框430),如果不支持该闪存类型(框435),闪存控制器将无法访问闪存,不兼容性将会通过一个控制器输出口的LED显示出来。如果支持该闪存类型,闪存控制器将被配置到对应的闪存类型的访问模式(框440),然后闪存控制器开始访问闪存(框450)。
电子数据闪存卡是使用闪存作为数据存储的闪存系统。如图4B所示,电子数据闪存卡10A包含处理单元2A、闪存3A、随机访问存储器(RAM)24,带有驻留于只读存储器(ROM)25的启动代码(Boot Code,简称BC)和操作系统(OS)代码。一旦电源开启,处理单元2A取出ROM25中的启动代码并执行,从而初始化系统的组件并将ROM25中的OS代码载入RAM24中。一旦OS代码被载入RAM24中,它将获取系统的控制权。OS包含用于执行基本任务如控制和分配内存、优先处理指令以及控制输入输出端口等的驱动程序。OS代码中也包括闪存检测算法代码和闪存参数数据(flash parametric data)。
由于存储于ROM中数据的永久性,在常规电子数据闪存卡的闪存控制器被设计好并投入生产后,ROM中的软件就被冻结,不能再支持市场上更晚出来的闪存类型。在这样的情况下,时常开发支持新闪存类型的闪存控制器是昂贵而且费时的。
再次关于图4B,根据本发明的另一种实施方式,电子数据闪存卡10A包含一个被分离成静态区域(static portion)26和动态区域(dynamicportion)27的闪存检测算法代码,静态区域26处理当前闪存类型,而动态区域27用于在静态区域26无法识别电子数据闪存卡的特殊闪存类型时控制检测过程。也就是说,当电子数据闪存卡10A是采用旧闪存类型的闪存设备制造时,闪存检测算法代码是在电源启动过程中识别该闪存设备ID,利用静态区域26执行对旧型闪存的读写;相反,当拥有新型配置的特殊电子数据闪存卡是采用新型闪存设备(如图4B所示的3A)制作时,则闪存检测算法代码在电源启动过程中识别闪存设备ID,并利用动态区域27执行对新型闪存设备3A的读写操作。在这种配置中,闪存检测算法代码的静态区域26存储于ROM25,而闪存检测算法代码的动态区域27存储于电子数据闪存卡10A的至少一个闪存设备3A中。通过存储动态区域27和数据(图中未示)于至少一个闪存设备3A中,不仅ROM25的大小可以减少,而且无需更换硬件新型闪存就可以获得支持。也就是说,当出于某些出发点制造了新型闪存(不被静态区域支持)时,只需简单地在一个或多个闪存设备中存储恰当的算法代码动态区域,而无需重置整个ROM。由于默认的存取和对动态区域读取已经合并到闪存检测算法代码的执行中来,因此动态区域的类型可被改动而不会影响到闪存检测算法代码的操作。因此,整个制造的费用被降低,不必要的开发也被缩减了。
由于闪存设备中存储和读取的数据是用于被访问和验证的,其速度也是设备性能的一个重要参数。根据上下文当前实施方式的另一方面,除了使用一些现有常规方法外,还可在电子数据闪存卡中执行一个双通道并行(dual-channel parallel)和隔行(interleave)存取闪存的方法来加速性能。
典型的电子数据闪存卡采用带单通道(8位)数据总线的闪存,如图5A所示。通过多通道(multiple-channel)数据总线,更多的数据位可同时在闪存中进行读、写,因此存取速度得以提高。例如双通道总线(16位)可将闪存存取速度翻一番,四通道(quad-channel)(32位)可以将闪存存取速度提高四倍,依此类推。带有双通道数据带宽的电子数据闪存卡可以通过一个如图5B所示的16位带宽的闪存、或通过单一控制的两个8位带宽的闪存(图5C)、或通过分别单独控制的两个8位带宽的闪存(如图5D)实现。
如图5D所示,电子数据闪存卡10B包括分别对应闪存设备3B1和闪存设备3B2的单独控制和输出输出连接。因此,使用交错编程(interleavedprogramming)来提高系统速度和降低耗电。比起其他模式(例如读取闪存单元、写入内存到外部设备的页寄存器(page register)中)来说,闪存设备在编程(写)模式下,数据从页寄存器传输到闪存阵列的闪存单元中,需要消耗更多的电。根据本发明,闪存设备3B1和3B2的交错编程包括“交错写入(write staggering)”,其中闪存控制器21B使一个闪存设备(如闪存设备3B1)将数据从其页寄存器编程(写)到其闪存阵列(flash memoryarray)中;同时另一个闪存设备(如闪存设备3B2)被限制为只能进行非编程操作(如从控制器21B接收数据到页寄存器中,当闪存设备3B1进行写操作时,闪存设备3B2不能进行写操作)。这样避免了在可编程模式下同时操作多闪存,存取每一个闪存设备3B1和3B2时提高了闪存的存取速度和吞吐量来匹配主机接口标准速度。除此之外,该交错存取方法(interleave access approach)也避免了由于同时对多闪存进行写操作带来的电力消耗。
上述各种新颖性在保持其实质和范围时可以被共同或单独地执行。例如,按照本发明的又一实施方式,图6显示了一个电子数据闪存卡10C(或电子数据存储介质,或集成电路卡)。电子数据闪存卡10C通过一个接口总线或读卡器(也就是连接通信)适配主机9A访问,包括卡体1C、一个包含前述实施方式中所述闪存控制器21C、输入输出电路5C以及一个或更多内存设备3C的处理单元2C,电子数据闪存卡10C可以是上述电子数据闪存卡10A的功能子系统(functional subsystem),也可以作为其他应用的功能子系统。
闪存控制器21C通过它产生的命令来控制闪存设备3C,在闪存设备中存储数据文件。
上述输入输出接口电路处理单元2C连接到闪存设备,处理单元2C的闪存控制器21C通过一个或更多上述方法控制闪存设备3C。在一种实施方式中,闪存控制器21C执行一个闪存类型算法来测定存储于ROM的闪存控制器逻辑的静态区域是否支持闪存设备3C,如果该类型为新型,则读取存储于闪存设备3C中的闪存控制器逻辑的动态区域。
另一方面,输入输出接口电路5C被激活,以通过接口连接和主机9A建立USB单批量传输(BOT)通信。主机和闪存设备USB接口电路(之后也成为USB设备)之间存在四种通信数据流:控制(control)、中断(interrupt)、批量(bulk)和同步(isochronous)。控制传输是从主机到USB设备之间的控制管道中的数据流,它负责配置和控制USB设备信息;中断传输是小量数据、非周期性、保证响应周期,通常是设备发起通信来通知主机USB设备需要服务;在无时间鉴定响应时大块数据穿过USB接口电路移动依赖于批量传输;同步传输为主机和USB设备提供周期的、持续的通信。USB接口电路通常支持两种数据传输协议:控制/批量/中断(Control/Bulk/Interrupt,简称CBI)协议和单批量传输(Bulk-OnlyTransfer,简称BOT)协议。大容量级CBI传输规范经核准使用于全速软盘驱动器,但未使用于高速功能设备,或其它除软盘以外的设备(根据USB协议)。根据本发明的一种实施方式,USB设备要和主机传输高速数据只有采用BOT协议。由于BOT命令、数据和状态传输依靠除默认控制端点外的批量端点,BOT协议比CBI协议更为高效和快速。
如前述实施方式,处理单元2C在可编程模式下是可选操作的,处理单元2C促使输入输出接口电路5C接收来自主机9A的数据,并通过主机9A向闪存控制器21C发出写命令,将数据存储于闪存设备3C中;数据恢复模式下,处理单元2C通过主机9A向闪存控制器21C发出的读命令来接收闪存设备3C中的数据并存取存储于闪存设备3C中的数据文件,并激活输入输出接口电路5C,将数据文件传输到主机9A;数据复位模式下,数据文件将从闪存设备3C中被擦除。
本发明智能处理单元2C的优点包括:
(1)提供高度集成、充分降低了整个空间占用,同时降低了复杂性和制造成本;
(2)利用一个智能算法来检测和存取不同类型的闪存,拓宽了闪存的来源和供应;
(3)将软件编程(software program)部分和闪存的数据放在一起,降低了控制器的成本;
(4)利用更先进的闪存控制逻辑,可以实现提高闪存存取的吞吐量;
根据本发明另一种实施方式,在电子数据闪存卡中提供一种系统和方法来控制闪存。该闪存控制器使用的系统和方法包括:一个用于接收至少一个来自主机系统的请求的处理器、一个包含若干查询表(Look-UpTables,简称LUTs)和一个物理使用表(Physical Usage Table,简称PUT)的索引。该索引将主机使用的逻辑块地址(Logical Block Addresses,简称LBAs)转换为闪存的物理块地址(Physical Block Addresses,简称PBAs),该索引还包括闪存配置信息。处理器可选地利用该索引来决定可用于编程、再编程或读的闪存扇区。闪存控制器还包括一个回收FIFO,用于回收旧块使得它们可用于再编程。回收操作包括复制和擦除,它是在后台执行,所以对主机是不可见的。相应地,闪存管理以及闪存控制器中相关智能代替了主机。结果,主机系统不需要闪存的物理配置就可以和闪存控制器交互作用。从而在保持兼容USB标准和ASIC架构的基础上极大地提高了读取或写入闪存的速度。
下面对本发明出现的专有名词进行定义。
块(block):一个基本存储擦除单元,每一个块包含了一定数量的扇区,例如16、32、64等等。如果任何扇区遇到写入错误,整个块将被定义为坏块,该块所有的有效扇区都被重新定位到其它的块。
扇区(sector):块的子单位,每个扇区通常拥有两个区域,数据区域和备用区域。
废旧扇区(obsolete sector):已被编程写入数据但数据接着要被更新的扇区。当数据更新后,旧的数据被保留在废旧扇区,新的数据被写入立刻变为有效扇区的新扇区。
无效块(non-valid block):带有废旧扇区的块。
有效扇区(valid block):一个被编程写入数据的扇区,且数据未过期,例如为当前数据。
平均读写(wear leveling):一个用于平均分配闪存中块的擦除次数,来延长闪存寿命的方法。闪存中块的擦数次数是有限的,如NAND闪存的典型擦除最大次数是一百万。
备用块(Spare block):闪存保留区,备用块使得闪存系统可以被坏块使用。
簇(Cluster):是由操作系统用作文件存取指针以改善内存性能的多数据扇区。在小容量存储器操作中,一个簇通常就是两个数据扇区的结合体,这也是文件大小单位的最小值。一个典型的小块存储器(例如每扇区512字节)的簇大小是1K字节,更大的块的存储器(例如每扇区2112字节)的簇大小为4K字节。
文件分配表(File Allocation Table,简称FAT):拥有链接地址指针的文件分配表。簇就是FAT的最小单位,例如FAT16就是一个簇地址为16位。
目录和子目录(Directory and Subdirectory):操作系统定义的文件指针。
主启动记录(Master boot record,简称MBR):一个存储根目录指针和可启动的相关启动文件的固定位置。这个固定位置可以是第一个块的最后一个扇区,在第一个块坏掉的情况下也可以是第二块的最后一个扇区。
包(Packet):USB基本处理单元的一个可变长度格式。典型USB规范中一般的处理包含三种包:令牌包(token packet)、数据包(data packet)和握手包(handshake packet)。令牌包有输入、输出以及配置的形式;一个数据包大小可变,例如USB1.1版本中为64字节,USB2.0中为512字节;握手包有ACK和NAK形式来告知主机处理完成。
帧(Frame):在USB通信不忙时,会用到使用高优先权的帧的批量处理。批量处理也可以在USB通信繁忙时等待下一个帧。
端点(Endpoint):三种端点包括控制、批量输入和批量输出。控制端点用于系统初始列举,批量输入端点用于主机系统读通道,批量输出端点用于主机系统写通道。
命令块包(Command block wrapper,简称CBW):一个包包含命令状态和相关信息,如数据传输长度(512字节如从8-11字节),一个CBW通常始于一个包边界,并以传输一个精确为31字节的短包终止,所有的CBW传输都应当以LSB(0字节)优先排序。
命令状态包(Command Status Wrapper,简称CSW):CSW是包的范围开始。
降低块命令(Reduced block command,简称RBC)SCSI协议:10字节的命令描述器。
图7为包括本发明相应闪存控制器110和闪存设备112的电子数据存储卡(存储器系统)100的结构示意框图。主机系统52提供读写处理资源,擦除操作由闪存控制器110实现。闪存控制器110通过主机系统接口116连接到主机系统52。主机系统52可以是PC或其它类型的计算机系统。主机系统52的操作系统可以是windows、MACOS,但不限于这些操作系统。在该具体实施方式中,闪存系统100遵从USB大容量级标准并且主机接口116为一个USB连接。USB规范可以是1.1、2.0或以上版本。闪存控制器110和闪存112都可以是总线供电或自身供电,或被用作大容量存储设备。作为大容量存储设备的优点是低耗电、易携带且容量远远大于传统的软盘。
闪存控制器110包含一个设备收发器120,可将模拟信号转变为数字流,并提供一个锁相回路(phase lock loop,简称PLL)电路来为内部数据锁存产生精确时钟。对于USB2.0来说,由于其是在480MHZ下进行操作,PLL功能精确且有用的。闪存控制器110还包括了一个串行接口引擎(serial interface engine,简称SIE)122,它可以提供串行和并行数据转换、包解码/生成、循环冗余码(cyclic redundancy code,简称CRC)生成/校检、不归零(non-return-to-zero,简称NRZI)编解码以及根据USB标准的位填充。端点124和125接收来自主机系统52的类型信息(如大容量存储设备级)、闪存配置信息和默认的控制信息;端点126接收来自主机系统52的读处理信息;端点128接收来自主机系统52的写处理信息。BOT单元130包含一个数据传输长度寄存器132和一个逻辑块地址寄存器134接收命令块包(CBW)。
本发明的一方面,从物理块地址分配到逻辑块地址整个过程都是闪存控制器110完成的,因此允许主机系统52在不需闪存设备112中存储数据的实际物理位置(配置)就能连接到闪存设备110(如执行读、写和擦除操作)。也就是说,闪存控制器110利用存储于电子数据闪存卡110(即并非从主机系统52接收到)的全部检验逻辑和数据来识别闪存设备112中的坏块,将闪存单元中好块的物理地址分配给逻辑块地址,回收不可用块并执行平均读写。因为这些命令中的每一个命令都是独立于主机系统52,因此主机系统52的操作得到增强。共有发明和另案待审的美国专利申请号No.xx/xxx,xxx名为《电子数据闪存卡的闪存坏块管理》中公开了闪存控制器110C利用的附加信息(即检验逻辑),在此包含参照它的完整性。
扇区FIFO140在主机系统52尝试写数据到闪存112时提供一个缓存特性。FIFO非空中断信号142在处理器150的中断处理器148中触发一个中断程序,中断程序回应主机系统52来确定数据要被写入闪存112。同时,处理器150执行一个写处理。
写查询表170、读查询表172和一个物理使用表180提供的索引展示了闪存112的构造。闪存控制器使用上述检验逻辑来控制读查询表172和写查询表170以及物理使用表180。读查询表172和写查询表170各自方便主机系统52和闪存112之间读写处理,读查询表172和写查询表170将主机提供的逻辑块地址转换为闪存设备112的物理块地址。物理使用表180执行物理扇区映射(mapping)并提供一个已编程扇区位图(bitmap),如已被写入数据的扇区。
带有闪存112的闪存接口控制器186执行来自处理器150的命令,闪存接口控制器186接收来自读查询表172和写查询表170读、写请求服务的逻辑物理块地址。
回收FIFO(recycling FIFO)190回收所有带过期扇区的块,从而使得它们可以被编程,例如写入新数据。回收操作是在写处理后立刻独立执行的,因此不会影响到闪存控制器110的写处理。
最佳的专用集成电路中,读查询172和写查询表170、物理使用表180以及回收FIFO都是使用易失性随机存取存储器(RAM),如同步随机存取存储器(SRAM)。闪存112能被执行使用一个或多个设备,并且每一个拥有一个或多个闪存阵列。
图8更具体地展示了本发明图7中写查询表170、读查询表172、物理使用表180和回收FIFO 190的结构示意框图。写查询表170在写处理过程中为闪存提供索引,将主机系统提供的逻辑块地址转换为闪存的物理块地址。写查询表170包含物理块地址302a、302b、302c和302d。为简化图例说明,每个查询表仅显示4个逻辑块地址。每一个逻辑块地址302a~302d包含一个可选的块偏移位(block-offset bit)(位5~位0)。块偏移位对应块中特殊扇区。
逻辑块地址302a~302d分别关联对应的物理块地址304a~304d。相应地,每个逻辑块地址a~d分别指向一个关联的物理块地址a~d。在此特例中,物理块地址长度为32位。扇区区域(sector field)306包含一串位,显示了一个块中的已编程扇区。
写查询表170仅记录一个特殊写处理中的起始逻辑块地址。例如,如果一个特殊的写处理需要两个或更多连续块,则写查询表170记录起始逻辑块地址。
读查询表172在进行读处理中为闪存提供索引,并将主机提供的逻辑块地址转换为闪存的物理块地址。读查询表172包含逻辑块地址302’a、302’b、302’c和302’d。读查询表172拥有和写查询表170相同的区域。在每个写操作完成后,读查询表172被更新来反映写查询表170的改变,以便区分读查询表172和写查询表170。一旦读查询表被更新,它可以用作为读操作的索引。
物理使用表180完成物理扇区映射,并提供一个可显示已编程扇区(即扇区已经被写入数据)的位图。无论何时发生写操作,物理使用表180记录可显示已编程扇区的使用信息。这样有助于闪存控制器处理器的写操作能根据物理使用表180来判断哪些扇区可用于编程和再编程。
回收FIFO 190回收无效块,且在每个写操作成功后进行回收处理。无论何时遇到一个带有旧扇区的块,作为块的物理地址信息被置于回收FIFO 190中,显示其为无效块。在完成有效位复制重定位操作后,回收FIFO 190提供用于执行无效块擦除操作的地址信息。回收FIFO 190使用一个写指针(write pointer)192作为更新无效块的FIFO地址,读指针(readpointer)194、196作为两个读地址参数指针。读指针二196用于后台回收读取参数,读指针一194作为擦除回收成功时的有效块参数。读指针一194永远不会超过读指针二196,两个读指针192和196都不会超过写指针192。根据当前实施方式的一方面,复制重置(copy-relocate)(无效块仍然留有可用扇区)和擦除回收操作(erase-recycling operation)都是在后台执行的,即独立于写处理,则不会影响到写处理。
图9为本发明图7中闪存112更为具体的结构示意框图。对应每一个物理块地址,闪存112拥有一个包含一个数据区域402和备用区域404的数据结构。每一个区域可容纳一定数量的字节,该数量取决于实际应用,例如,一个数据区域可能有512字节、2112字节或更多字节,一个备用区域可以有16、64或更多字节。
数据区域402存储原始数据,备用区域404存储存储器管理相关信息。备用区域404包括一个坏块指示区域(bad block indicator field)406、一个错误纠正代码(error correction code,简称ECC)区域408、一个擦除计数器区域(erase count field)410以及一个逻辑块地址区域(LBA field)412。因为查询表170、172和物理使用表180存储于易失性存储器中,因此,不保存有效扇区信息。逻辑块地址区域412用于在断电后初始化过程中重构读、写查询表172、170和物理使用表180。
坏块指示区域406指出坏块。当尝试写入或擦除一个特殊扇区失败时,就会产生坏块。特殊坏块指示区域414被定位于最后一个块,这个位置便于固件读取,当每个扇区存在一个位时尤其如此。在此特殊实施方式中,物理块使用了64位来记录扇区写入失败(64位×4096块=32K字节=16扇区=四分之一块)。任何带1s的块意味着该特殊块是坏块。为维持可靠性,四个副坏块指示器被保存于闪存的最后块中,当然也可以使用更少或更多的复制。
本发明中几乎不需要标记。查询表中的有效扇区标记使用唯一的标记用于帮助固件做出判断。这样也减少了读和写处理的复杂性。
图10是本发明闪存管理方法的一个高位(high-level)流程图。首先,闪存控制器利用处理器获取来自主机系统至少一个请求,步骤502,这个请求可以是写或读请求。因此,通过闪存控制器内部的索引表和处理器判断可用于编程、再编程或读的闪存的扇区,步骤504。主机系统不需要闪存配置信息就可以作用于闪存。
在特定的实施方式中,闪存控制器接收到一个来自主机系统的兼容USB大容量存储器类的请求,接下来的图例描述该特定的实施方式。
图11为本发明USB大容量存储设备级服务请求传输方法的流程图。首先,闪存控制器接收来自主机系统的请求,步骤602,该步骤即为所述的命令传输步骤602。该命令可以是写或读请求。若为写请求,则完成一个写处理,步骤604,该步骤即为所述的数据输出步骤604;若为读请求,则完成一个读处理,步骤606,该步骤即为所述的数据输入步骤606。一旦完成一个写或读处理,闪存控制器发送一个确认包到主机系统来确认处理完成,步骤608,该步骤即为所述的状态传输步骤608。
由于数据包是从主机系统发出的,所以命令传输步骤602和数据输出步骤604通常是批量输出传输。而由于数据包是发送给主机系统的,所以数据输入步骤606状态传输步骤608通常是批量输入传输。
图12A-C展示了本发明命令块包(CBW)702、精简的块命令读取格式(RBC)704和命令状态包(CSW)706的结构示意框图。USB标准中每个请求包括三种包:CBW702、RBC704和CSW706。CBW702、RBC704和CSW706也通常分别被称为令牌、数据和确认握手包,并分别用于命令传输、数据输入输出和状态传输,如图11中步骤602~608。
仍关于图12A-C,CBW702包含了主机系统数据要遵循的的信息,CBW702为31字节长度,并包含了命令解码和方向以及一个独特的逻辑块地址。CBW702中的逻辑块地址包含了文件分配表(FAT)和目录指针。CBW702也包含了作为RBC命令中的一部分的15字节的读/写范围。RBC704包含了写入闪存的数据信息,它是一个小型计算机系统接口精简的块命令读取格式(SCSI RBC)。数据长度可以根据不同版本的USB标准定义。例如USB1.1为64字节,USB2.0定义为512字节。CSW706包含了确认过程和处理结束信息,状态字节使用12字节。
图13所示为本发明读、写或擦除方法的流程图。结合图12A-C和图8所示,首先接收来自主机系统的请求,步骤802,为遵循USB标准,该请求包含CBW702、RBC704和CSW706;接下来,命令类型为读或写请求被检测,步骤804;接着CBW和CSW的寄存器被初始化,步骤806。
若请求为一个写处理的写请求,闪存控制器中扇区数据FIFO被填充。当512字节已就绪,扇区数据FIFO的写指针增加,并发送一个中断到闪存控制器的处理器,步骤810。然后,写处理被执行,步骤812。最后,一个确认包被发送到主机系统来确认写处理成功完成,步骤814。
成功完成写处理后,闪存控制器的固件检查回收FIFO状态,步骤820。若回收FIFO非空,回收FIFO就会回收旧的扇区,步骤822。
若请求为一个读处理的读请求,CBW中的逻辑块地址和FIFO扇区的所有入口进行比较,步骤828。若匹配,被请求数据被写回主机系统,步骤830。然后,一个确认包被发送到主机系统以确认读处理已成功完成,步骤832;若不匹配,被请求数据是从闪存中读取出来的,步骤834。最终,状态/确认包被发送到主机系统以确认读处理已成功完成,步骤836。
图14所示流程图展示了本发明包括写处理第一阶段(phase)、写处理的第二阶段、读处理和回收操作的方法。首先,接收到CBW,步骤902,然后,判断是否为写请求,步骤904。若是,FIFO扇区被检查,步骤906中,若FIFO扇区非空,则发起写请求。
为维持块地址的连续性和提高写效率,写处理有两个阶段。在第一个阶段,数据被写入到一个特殊数量的扇区并发送一个确认包给闪存控制器的处理器和主机系统来通知写处理已完成,步骤910。
如果没有后续的读请求待处理,写处理的第二阶段就被执行。相应地,有效扇区从无效块中复制到另一个块的新地址,步骤920。为保持数据一致性,步骤920在后台被执行。
如果判断为读请求,并且在写处理的第一个阶段完成后立刻有一个读请求,闪存使用读查询表的物理块地址取出被请求数据,步骤930。读请求被执行后,若存在一个待处理的写请求的第二阶段,该第二阶段被执行,步骤940。
步骤940中,当没有请求需要处理时,回收FIFO回收旧扇区。在一个特定实施方式中,当回收FIFO完成块擦除任务时,闪存控制器的固件可以返回来服务来自主机系统的其他请求。
图15A-D展示了本发明写处理第一、第二阶段的典型结果的结构示意框图。为进一步阐明本发明的上述特性,特提供了下面的例子。图15A-D显示了四个包含长度可变数据串的写处理,图15D显示了一个数据被更新的写处理。为便于说明,每个块仅显示4个扇区。
闪存112两个块(PBA 0 and PBA 1)均有四个扇区。在第一个写处理中,写查询表170写入闪存112的6个物理扇区,起始于第一物理块(PBA0)。在本例中,假定闪存112起始为空。为实现本例的目的,标签A0-A5在第一个写处理时再次进行数据写入。
物理使用表180中对应闪存112扇区的位显示为1,表示哪些扇区已被编程,即已被占用。闪存控制器的固件利用物理使用表180来判断可用扇区。相应地,那些扇区存有数据,不能被再编程,直到被第一次擦除,但这些扇区可随后被读取。已写入扇区的写查询表170通过1s显示有效扇区,读查询表172信息从写查询表170中复制来反映最近的改变。然而,一旦写阶段完成,读查询表172从写查询表170被复制,完成和写查询表170的最终同步。相应地,直到读查询表172被更新,将通过0s显示写查询表170的预更新信息,来指示空白扇区。
对于图15B,写查询表170写新数据B到PBA1中下一个可用扇区。这是第二个写处理。写查询表170、物理使用表180和闪存块反映了本次更新。读查询表172已被更新了上次的改变,但未被更新反映当前改变。
关于图15C,写查询表170被写入新数据C0和C1到下一个可用扇区,这是第三个写处理。注意数据C0和C1和数据A0-A5一样交叉了块范围。写查询表170和物理使用表180和闪存块再次反映了本次更新。读查询表172已被更新了上次的改变,但未被更新反映当前改变。
关于图15D,写查询表170已写数据,用已更新数据a0-a4来更新现有数据A0-A4。这是第四个处理。在写处理的第一个阶段中,因为块PBA0和PBA1需先擦除才能被再编程,已更新数据a0-a4被写入到同一个扇区数而不是下一个可用块中,即PBA3-4。一旦第一个写阶段完成,确认包被发送到闪存控制器的处理器来确认写处理第一个阶段的完成。写查询表170、物理使用表180和闪存块反映这个更新,读查询表172已被更新了上次的改变,但未被更新反映当前改变。
块PBA0和PBA1因为它们的某些扇区中的数据过期而变为无效。相应地,那些块可被回收FIFO190回收。回收FIFO190改变相应位为0来显示此回收。回收FIFO190的写指针192增加以指向下一个可用位置来存储于下一无效块地址。
在该写处理的第二阶段,数据A5、B和C0被复制到新块,即块PBA3-4,来保持写查询表170的连续性。写查询表170、物理使用表180和闪存块将反映本次更新。读查询表172此时将被更新,来反映当前改变。写处理的两个阶段都完成后,写查询表170和读查询表172将保持一致。
图16是显示本发明图14中执行物理块地址和扇区计数更新过程的第一个阶段的流程图,主要是做一个逻辑块地址和物理块地址之间的索引映射(index mapping)以便读和写地址可以保持追踪。表1(下面所述)是一个查询表入口和FIFO假定闪存中每块8个扇区的简化例子。1的入口意味着扇区数据有效,0表示扇区可用。请注意查询表(映射表)是用LBAx来做指针的,但是FIFO是使用Wr_ptr和Rd_ptrs来做指针的。
表1
PBAW/O扇区偏移量 | 扇区区域0 | 扇区区域1 | 扇区区域2 | 扇区区域3 | 扇区区域4 | 扇区区域5 | 扇区区域6 | 扇区区域7 |
PBAx | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
最初,来自主机的逻辑块地址和扇区计数(sector count,简称SC)被估算,步骤1102。然后,逻辑块地址偏移位被编码到一个扇区计数中,步骤1104。逻辑块地址指向闪存的一个物理块地址。如逻辑块地址为0010,0101并且扇区数量为16,那么0010就是两个查询表入口指针的初始LBAx块地址。如果物理使用表的扇区区域为0(即扇区可用),那么扇区计数寄存器(sector count register)就等于CBW扇区计数,同时写查询表的物理块地址将被载入,步骤1106。
如果写查询表的扇区区域为1,这意味着闪存扇区被之前的编程使用了,写指针指向的块要被擦除,步骤1108。然后,通过写指针指向的回收FIFO的入口被当前PBAx填充,步骤1110。在回收操作期间,写指针指向的块将被擦除。然后,物理使用的扇区区域被置为1,步骤1112,其中物理块地址显示这个扇区正在被使用中。然后扇区数量增加,步骤1114。
接下来,将扇区数量和块范围(block boundary)进行比较,步骤1116。如果扇区数量和块范围匹配,则写指针增加,步骤1118。当闪存块范围到达后,写查询表中的逻辑块地址增加,步骤1120。然后更新正确扇区数位置的写查询表,步骤1122。
如果扇区数量不匹配块范围,步骤1118和1120被避开,然后更新正确扇区数量位置的写查询表,步骤1122。
回到步骤1106,如果写查询表的扇区区域为0,则意味着闪存扇区没有被之前的编程所用,也即写处理尚未完成。然后,扇区计数和CBW的扇区计数进行比较,步骤1124。如果它们相同,由查询表的LBAx指向的PBAx将在步骤1126中被更新,然后处理到步骤1128。如果扇区计寄存器不等于步骤1124中CBW的扇区计数,两个查询表和将被写入闪存的数据的扇区区域将被置为1。接下来,扇区数量增加,步骤1128。在成功写入闪存后,CBW扇区计数被减去,步骤1130。
接下来,扇区计数被检查,步骤1132。如果扇区计数等于0,写处理的第一阶段终止,若不等于0,则意味着主机发送了一个不正确数量的数据。相应地,扇区FIFO被检查用于判断是否还有更多的有效数据,步骤1134。如果没有,一个超时序列(time-out sequence)被执行来标志一个异常流程终止,扇区FIFO也会持续检查直到足够的数据可用,步骤1136。如果扇区FIFO还有更多的可用数据,扇区数量将和块范围进行比较,如图1116所示。
图17为显示本发明图14中写处理第二阶段的执行方法的流程图。首先,写和读指针的指针值进行比较,步骤1202。回收FIFO的读指针指向的入口扇区区域指示了一个需要被复制到新的物理块地址来维持写查询表中连续性的有效扇区。当复制完成,读查询表被更新以区别于写查询表,步骤1204。接下来,读指针指向的扇区数量被检查,步骤1206。如果扇区数量为1,扇区中的数据被复制到新块,步骤1208。然后,查询表中的扇区数量被置为1,步骤1210。接下来,写查询表扇区区域被更新,步骤1212。然后,读查询表扇区区域被更新,步骤1214。接下来,扇区数量增加。返回步骤1206,如果扇区数量不为1,则扇区数量增加,步骤1216。
扇区数量一达到块范围,扇区复制处理就会完成。扇区数量和块范围进行比较,步骤1218。如果扇区数量匹配块的范围,读指针增加,步骤1220。接下来,读指针和写指针进行比较,步骤1202。如果在步骤1218中扇区数量不匹配块范围,则读指针指向的扇区数量被检查,步骤1206。
图18为显示本发明图14中读处理执行方法的流程图。首先,CBW被接收并被识别为读请求,并且CBW的逻辑块地址和扇区计数被载入,步骤1302。接下来,写查询表的逻辑块地址被转换到一个对应的物理块地址和扇区数量,步骤1304。然后,扇区区域位被检查,步骤1306。如果扇区区域位等于1,数据被读取,扇区计数减少,扇区数量增加,为下一个读处理做准备,步骤1308。如果扇区区域位不等于1,例如等于0,读查询表的逻辑块地址被转换为相应的物理块地址,步骤1309。然后数据被读取,扇区计数减少,扇区数量增加,步骤1308。
接下来完成一个ECC计算,步骤1310。然后ECC结果用于和闪存备用区域读出值进行比较,步骤1312。如果这些值相同,扇区计数被检查,步骤1314。若值不同,将进行一个ECC纠正,步骤1316,然后和步骤1314一样,扇区计数被检查。如果扇区计数接近0,如等于0,读处理结束。如果扇区计数不接近0,块范围也会被检查,步骤1317。如果扇区数量不匹配块的范围,读查询表中的逻辑块地址增加,步骤1320。然后读查询表更新为正确的扇区数量位置,步骤1318。
写处理第一阶段之后立即执行一个读处理。读处理比之前的写处理的第二阶段拥有更高的优先权,这样可以保证闪存系统的最佳反映。读处理比写处理要快得多,并且读处理也不会导致坏块情况(仅在写处理和擦除操作时才可能发生)。
无论何时扇区FIFO中内容是可用的,读处理区别于磁盘缓存功能,这种情况仅在当读查询表中逻辑块地址和前一个写查询表的逻辑块地址匹配时才可能发生。磁盘缓存概念是从硬磁盘概念中借用并应用到小容量闪存存储器中。这种特性通常被禁用来节省缓存费用。
图19为显示本发明图14中执行回收操作方法的流程图。首先,回收FIFO被检查,步骤1402。若回收FIFO为空,则回收操作结束。若回收FIFO非空,读指针2被检查,步骤1404,这样的情况下就会发生后台擦除操作。一旦擦除成功,为另一个有效块再编程检查操作的读指针1增加,这两个读指针都不会超过写指针。尽管如此,如果两个读指针被执行后写指针可能回到它的原起始位置。如果读指针2超过写指针位置,回收操作被终结。如果读指针2没有超过写指针,物理使用表中对应的位被清空(即0),步骤1406,显示了物理块现在可用于再编程。然后,读指针2定位到指向要被擦除的块,步骤1408。接下来,读指针2在成功擦除后增加为下次写地址检查操作,步骤1410。
为回收FIFO进行指针比较,可通过向写和读指针索引再增加一个或多个位来完成。例如,如果回收FIFO含有8个PBA入口,4个位而不是三个位将用于指针。写指针将从0增加到7并回到0。写指针值应该总是等于或大于读指针。当它们相等时,意味着回收FIFO为空。回收FIFO的深度,即入口数量会影响行复制速度和擦除速度之间的平衡,因此太少的入口会使得回收FIFO更加不理想。
本发明闪存控制器可以完成多块数据存取。传统的闪存设备拥有一个内建的512字节的寄存器,写入闪存的数据必须行写入到寄存器中然后写入到闪存单元中。传统的闪存控制器和他内建的固件一起控制闪存的存取周期。传统的闪存控制器每次传输一个单独块(512字节)数据到闪存的一个页寄存器中,一旦512的页寄存器被填满则不能进行其他对闪存的存取。因此,传统的使用单块数据存取法的闪存控制器,限制了闪存的性能。
根据本发明,闪存控制器使用2K或更大的页寄存器。本发明的闪存控制器是可以同时发送多块数据到闪存中填满页寄存器的多块存取控制器。这样极大地提高了数据传输的性能。比起传统的一次只能传输一个块的单芯片数据传输控制器,使用本发明的闪存控制器的数据传输性能得到了极大的改善。
本发明闪存控制器也提供了多通道处理来改善闪存系统的性能。双通道提供一个第二通道,或所谓的“高速公路”,来执行闪存设备和闪存控制器之间的处理。传统的闪存控制器使用一个单独的存储器总线可以连接到一个或更多的闪存设备。尽管如此,传统的架构限制了传统闪存控制器的性能。
根据本发明,系统使用了至少2个存储器总线集。每个存储器总线连接到各自的闪存设备。闪存控制器可以一起或单独存取这些闪存设备。结果就是,双通道处理被执行的速度可以翻一倍。此外,每个存储器总线还可以扩展存储器总线集。
本发明闪存控制器也可以进行交替操作。传统闪存控制器使用一个带有一个或多个闪存设备的单独闪存总线组。尽管如此,传统闪存控制器每次仅可以访问一个闪存设备。尽管如此,传统的架构限制了传统闪存控制器的性能。
根据本发明,至少需要用到一组或两组额外的闪存控制器信号(例如单独的芯片使能和繁忙信号)。此外,一个共享存储器总线,至少有2个闪存设备连接到该共享存储器总线。当另外一个单元正忙于读或写时本发明闪存控制器可以存取一个闪存设备。相应地,本发明闪存控制器可以完全利用共享存储器总线,因此极大地提高了性能。此外,闪存控制器的引脚数量也通过共享存储器输入输出和控制信号而得到减少,这样也减少了制造闪存设备的成本。
根据本发明,可以把集成多块访问、多单元交替访问以及多通道操作集成到一个存储器存期周期单芯片来达到性能最优化。
根据本发明,闪存控制器可以使用USB,也可以使用PCIE插入和插座系统。当然,闪存控制器可以在其他包括SD、MMC、MS、CF、IDE和SATA等插入和插座系统的实施方式中。
根据本文揭示的系统和方法,本发明提供了许多的优点。如把闪存管理和主机其他智能从主机转移到闪存控制器,以便主机系统不需要闪存的配置信息就可以和闪存控制器互相影响;例如闪存控制器提供LBA-TO-PBA转换,旧的扇区回收和平均读写等,此外,回收操作还是在后台被执行的;此外还排除了闪存专用定义包和标志;此外闪存控制器提供了多块数据存取、多通道处理和多单元交替访问等。因此,在保持对USB和ASIC架构兼容性的同时,闪存的写入和读取数据得到了极大的增长。
本发明揭示了一个用于控制闪存卡的系统和方法。该系统和方法由一个接收至少一个来自主机的请求的处理器、一个由查询表和物理使用表组成的索引。该索引将来自主机的逻辑块地址转换为闪存的物理块地址,该索引还包含了作为闪存配置的信息。处理器可以利用该索引来判断闪存中可用于编程、再编程和读取的扇区。闪存控制器此外还包括一个回收FIFO,用于回收旧扇区使得它们可用于再编程。回收操作包含了复制和擦除操作,这都是在后台完成的,因此对主机系统来说都是不可见的。相应地,管理闪存和相关智能由闪存控制器而不是主机系统完成,结果,主机系统不需要闪存的配置信息就可以和闪存控制器互相影响。因此在保持对USB和ASIC架构兼容性的同时,闪存的写入和读取数据得到了极大的增长。
尽管本文上下文描述的本发明所述为一个带或不带指纹验证功能的电子数据闪存卡,但是本发明可能在仍然保留它的精神和范围内应用于其他类型的存储器系统。此外,尽管本文上下文描述的本发明所述为USB标准,但是本发明可能在仍然保留它的精神和范围内应用于其他类型标准。因此,本发明的实施方式可以通过硬件、软件、包含程序指令的计算机可读媒体或者它们的复合体。因此,还可以从本文的精神和附加的权利要求出发通过对文中的一个普通的技能的进行多种多样的修改。
Claims (12)
1.一种适配可建立通讯连接的主机访问的电子数据闪存卡,其中,电子数据闪存卡包括:
卡体;
设于卡体上的闪存设备,闪存设备包含有大量用于存储数据文件的非易失性存储单元;
一设于卡体上用于和主机建立通讯的输入输出接口电路;和
一设于卡体上,并电性连接所述闪存设备和所述输入输出接口电路的闪存控制器,其中,闪存控制器包括:
(a)检测装置,用于根据闪存检测算法代码,检测闪存设备是否为闪存控制器的处理单元所支持;
(b)索引,存储大量逻辑块地址和物理块地址,用于将各所述物理块地址指派给对应的所述逻辑块地址,各物理块地址对应闪存设备的相关大量存储单元;
(c)可选操作方式之一:
编程模式,在该模式下,闪存控制器激活所述的输入输出接口电路,接收来自主机的数据文件,并通过一个主机发送给闪存控制器的写命令将该数据文件存入所述闪存设备关联到第一逻辑块地址的第一物理块地址中;
数据恢复模式,在该模式下,所述闪存控制器接收来自主机的包含第一逻辑块地址的读命令,并激活所述输入输出接口电路来传输从第一物理块地址读取到主机的数据文件;和
数据复位模式,在该模式下,数据文件从闪存设备中擦除。
2.如权利要求1所述的电子数据闪存卡,其中,索引包括至少一个用于存储逻辑块地址和对应物理块地址的查询表;
其中,闪存控制器还包括一个判断逻辑,包含有将各所述物理块地址指派给对应所述逻辑块地址的装置。
3.如权利要求2所述的电子数据闪存卡,其中,索引包括一写查询表和一读查询表,其中,闪存控制器还包括一个在对应编程模式后,更新读查询表的装置。
4.如权利要求3所述的电子数据闪存卡,其中,索引还包括一物理使用表,用于执行物理扇区映射,和提供一指示闪存设备已编程扇区的位图。
5.如权利要求4所述的电子数据闪存卡,其中,写查询表、读查询表和物理使用表包括有高性能易失性闪存,如SRAM。
6.如权利要求1所述的电子数据闪存卡,其中,闪存控制器还包括一先进先出单元,用于将数据文件写入闪存设备之前,暂存至少一部分数据文件。
7.如权利要求1所述的电子数据闪存卡,其中,闪存控制器还包括一第二先进先出单元,用于回收闪存设备的废旧扇区。
8.如权利要求1所述的电子数据闪存卡,其中,闪存控制器还包括一通过SCSI协议接入闪存设备的装置。
9.如权利要求1所述的电子数据闪存卡,其中,输入输出接口电路包含一串行总线接口电路,其中,串行总线接口电路包括有利用BOT协议传输所述数据的装置。
10.如权利要求1所述的电子数据闪存卡,其中,输入输出接口电路包含SD接口电路、MMC接口电路、CF接口电路、MS接口电路、PCI高速接口电路、IDE接口电路、SATA接口电路中的一种。
11.如权利要求1所述的电子数据闪存卡,其中,闪存设备包括第一闪存设备和第二闪存设备,和
其中,闪存控制器包括支持双通道平行访问和交替访问方式中至少一种方式来访问第一闪存设备和第二闪存设备的装置。
12.如权利要求1所述的电子数据闪存卡,其中,闪存控制器包括8051、8052、80286、RISC、ARM、MIPS的一种和一数字信号处理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/466,759 US7702831B2 (en) | 2000-01-06 | 2006-08-23 | Flash memory controller for electronic data flash card |
US11466759 | 2006-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101097551A true CN101097551A (zh) | 2008-01-02 |
CN100487678C CN100487678C (zh) | 2009-05-13 |
Family
ID=39011391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200710137211XA Expired - Fee Related CN100487678C (zh) | 2006-08-23 | 2007-07-11 | 带有闪存控制器的电子数据闪存卡 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100487678C (zh) |
TW (1) | TW200915080A (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958732A (zh) * | 2009-07-17 | 2011-01-26 | 索尼公司 | 用于数据通信的系统、方法和装置 |
CN102103566A (zh) * | 2009-12-18 | 2011-06-22 | Nxp股份有限公司 | 闪存存储器接口 |
CN102117214A (zh) * | 2010-01-06 | 2011-07-06 | 浙江德景电子科技有限公司 | 一种嵌入式设备及其数据文件下载方法 |
CN102272848A (zh) * | 2008-11-13 | 2011-12-07 | 韩商英得联股份有限公司 | 控制内存条存取的固态硬盘控制器 |
CN102012788B (zh) * | 2009-09-07 | 2012-07-18 | 群联电子股份有限公司 | 下达读取指令与数据读取方法、闪存控制器与储存系统 |
CN101685423B (zh) * | 2008-09-25 | 2012-07-18 | 亮发科技股份有限公司 | 记忆装置及其操作方法 |
CN102634934A (zh) * | 2012-04-19 | 2012-08-15 | 南京理工大学常熟研究院有限公司 | 一种基于arm的嵌入式电子花样机控制系统 |
CN101727976B (zh) * | 2008-10-15 | 2012-09-19 | 晶天电子(深圳)有限公司 | 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 |
CN103226524A (zh) * | 2012-01-31 | 2013-07-31 | 上海华虹集成电路有限责任公司 | 对Nandflash的坏块和空块进行统一管理的FIFO结构 |
US9128624B2 (en) | 2009-12-10 | 2015-09-08 | Phison Electronics Corp. | Flash memory storage system for simulating rewritable disc device, flash memory controller, computer system, and method thereof |
CN105009088A (zh) * | 2012-12-03 | 2015-10-28 | 西部数据技术公司 | 具有运行时变量raid保护方案的方法、固态驱动器控制器以及数据存储设备 |
CN102109965B (zh) * | 2009-12-23 | 2015-11-25 | 群联电子股份有限公司 | 闪存储存系统、闪存控制器、电脑系统及模拟方法 |
CN105264508A (zh) * | 2013-05-23 | 2016-01-20 | 西部数据技术公司 | 用于启用具有两个逻辑单元的网络附加存储的方法和设备 |
CN103914390B (zh) * | 2013-01-06 | 2016-08-17 | 北京忆恒创源科技有限公司 | 存储设备 |
CN106168927A (zh) * | 2015-05-22 | 2016-11-30 | 罗伯特·博世有限公司 | 具有在运行中可变的存储区域的fifo存储器 |
CN106293532A (zh) * | 2016-08-10 | 2017-01-04 | 广东佳禾声学科技有限公司 | 一种Flash数据储存方法 |
CN107092563A (zh) * | 2017-04-20 | 2017-08-25 | 紫光华山信息技术有限公司 | 一种垃圾回收方法及装置 |
CN107357528A (zh) * | 2017-06-29 | 2017-11-17 | 长沙伟确科技发展有限公司 | 一种基于flash的文件系统 |
CN108595125A (zh) * | 2018-04-27 | 2018-09-28 | 江苏华存电子科技有限公司 | 一种纠正闪存写入错误处理方法 |
CN109407966A (zh) * | 2017-08-18 | 2019-03-01 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109934023A (zh) * | 2017-12-19 | 2019-06-25 | 陈新 | 智能安全存储控制器 |
WO2019218547A1 (zh) * | 2018-05-14 | 2019-11-21 | 深圳市江波龙电子有限公司 | Usb大容量存储设备的访问控制方法及访问控制装置 |
CN112394967A (zh) * | 2019-08-14 | 2021-02-23 | 慧荣科技股份有限公司 | 批量生产软件工具的电子装置、方法与计算机可读取媒体 |
CN112445766A (zh) * | 2019-08-31 | 2021-03-05 | 华为技术有限公司 | 一种终端碎片整理方法、装置以及终端 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279803A (zh) * | 2011-04-13 | 2011-12-14 | 西安交通大学 | 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法 |
US9946656B2 (en) | 2013-08-30 | 2018-04-17 | Hewlett Packard Enterprise Development Lp | Completion packet return based on eviction or flush |
-
2007
- 2007-07-11 CN CNB200710137211XA patent/CN100487678C/zh not_active Expired - Fee Related
- 2007-09-21 TW TW96135503A patent/TW200915080A/zh unknown
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685423B (zh) * | 2008-09-25 | 2012-07-18 | 亮发科技股份有限公司 | 记忆装置及其操作方法 |
CN101727976B (zh) * | 2008-10-15 | 2012-09-19 | 晶天电子(深圳)有限公司 | 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 |
CN102272848A (zh) * | 2008-11-13 | 2011-12-07 | 韩商英得联股份有限公司 | 控制内存条存取的固态硬盘控制器 |
CN101958732A (zh) * | 2009-07-17 | 2011-01-26 | 索尼公司 | 用于数据通信的系统、方法和装置 |
CN101958732B (zh) * | 2009-07-17 | 2013-12-25 | 索尼公司 | 用于数据通信的系统、方法和装置 |
CN102012788B (zh) * | 2009-09-07 | 2012-07-18 | 群联电子股份有限公司 | 下达读取指令与数据读取方法、闪存控制器与储存系统 |
US9128624B2 (en) | 2009-12-10 | 2015-09-08 | Phison Electronics Corp. | Flash memory storage system for simulating rewritable disc device, flash memory controller, computer system, and method thereof |
CN102103566A (zh) * | 2009-12-18 | 2011-06-22 | Nxp股份有限公司 | 闪存存储器接口 |
CN102109965B (zh) * | 2009-12-23 | 2015-11-25 | 群联电子股份有限公司 | 闪存储存系统、闪存控制器、电脑系统及模拟方法 |
CN102117214A (zh) * | 2010-01-06 | 2011-07-06 | 浙江德景电子科技有限公司 | 一种嵌入式设备及其数据文件下载方法 |
CN102117214B (zh) * | 2010-01-06 | 2014-03-19 | 浙江德景电子科技有限公司 | 一种嵌入式设备及其数据文件下载方法 |
CN103226524A (zh) * | 2012-01-31 | 2013-07-31 | 上海华虹集成电路有限责任公司 | 对Nandflash的坏块和空块进行统一管理的FIFO结构 |
CN103226524B (zh) * | 2012-01-31 | 2017-07-04 | 上海华虹集成电路有限责任公司 | 对Nandflash的坏块和空块进行统一管理的FIFO系统 |
CN102634934A (zh) * | 2012-04-19 | 2012-08-15 | 南京理工大学常熟研究院有限公司 | 一种基于arm的嵌入式电子花样机控制系统 |
CN105009088A (zh) * | 2012-12-03 | 2015-10-28 | 西部数据技术公司 | 具有运行时变量raid保护方案的方法、固态驱动器控制器以及数据存储设备 |
CN103914390B (zh) * | 2013-01-06 | 2016-08-17 | 北京忆恒创源科技有限公司 | 存储设备 |
CN105264508A (zh) * | 2013-05-23 | 2016-01-20 | 西部数据技术公司 | 用于启用具有两个逻辑单元的网络附加存储的方法和设备 |
US9479588B1 (en) | 2013-05-23 | 2016-10-25 | Western Digital Technologies, Inc. | Methods and devices for booting a network attached storage with two logical units |
US9990136B2 (en) | 2013-05-23 | 2018-06-05 | Western Digital Technologies, Inc. | Methods and devices for booting a network attached storage with two logical units |
CN106168927A (zh) * | 2015-05-22 | 2016-11-30 | 罗伯特·博世有限公司 | 具有在运行中可变的存储区域的fifo存储器 |
CN106293532A (zh) * | 2016-08-10 | 2017-01-04 | 广东佳禾声学科技有限公司 | 一种Flash数据储存方法 |
CN107092563A (zh) * | 2017-04-20 | 2017-08-25 | 紫光华山信息技术有限公司 | 一种垃圾回收方法及装置 |
CN107357528A (zh) * | 2017-06-29 | 2017-11-17 | 长沙伟确科技发展有限公司 | 一种基于flash的文件系统 |
CN109407966A (zh) * | 2017-08-18 | 2019-03-01 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109934023A (zh) * | 2017-12-19 | 2019-06-25 | 陈新 | 智能安全存储控制器 |
CN108595125A (zh) * | 2018-04-27 | 2018-09-28 | 江苏华存电子科技有限公司 | 一种纠正闪存写入错误处理方法 |
WO2019218547A1 (zh) * | 2018-05-14 | 2019-11-21 | 深圳市江波龙电子有限公司 | Usb大容量存储设备的访问控制方法及访问控制装置 |
US11762976B2 (en) | 2018-05-14 | 2023-09-19 | Shenzhen Longsys Electronics Co., Ltd. | USB mass storage device access control method and access control apparatus |
CN112394967A (zh) * | 2019-08-14 | 2021-02-23 | 慧荣科技股份有限公司 | 批量生产软件工具的电子装置、方法与计算机可读取媒体 |
CN112394967B (zh) * | 2019-08-14 | 2023-08-08 | 慧荣科技股份有限公司 | 批量生产软件工具的电子装置、方法与计算机可读取媒体 |
CN112445766A (zh) * | 2019-08-31 | 2021-03-05 | 华为技术有限公司 | 一种终端碎片整理方法、装置以及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN100487678C (zh) | 2009-05-13 |
TW200915080A (en) | 2009-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100487678C (zh) | 带有闪存控制器的电子数据闪存卡 | |
US7702831B2 (en) | Flash memory controller for electronic data flash card | |
US7690031B2 (en) | Managing bad blocks in flash memory for electronic data flash card | |
US20080071978A1 (en) | Electronic data flash card with various flash memory cells | |
US7318117B2 (en) | Managing flash memory including recycling obsolete sectors | |
CN101118783A (zh) | 带有闪存坏块控制系统的电子数据闪存卡 | |
US20080082736A1 (en) | Managing bad blocks in various flash memory cells for electronic data flash card | |
US7299316B2 (en) | Memory flash card reader employing an indexing scheme | |
CN101398785A (zh) | 具有多样闪存单元的电子数据闪存卡 | |
US7676640B2 (en) | Flash memory controller controlling various flash memory cells | |
CN102163133B (zh) | 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置 | |
US7690030B1 (en) | Electronic data flash card with fingerprint verification capability | |
TWI435219B (zh) | 資料保護方法、記憶體控制器及可攜式記憶體儲存裝置 | |
US20110022779A1 (en) | Skip Operations for Solid State Disks | |
CN101403997A (zh) | 具多重分割区及自动执行功能的通用串行总线快闪存储卡 | |
TWI660271B (zh) | 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI336856B (en) | Method and system of logically-addressed file storage | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN103218300A (zh) | 数据处理方法、存储器控制器与存储器储存装置 | |
CN101957799B (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: 20090513 Termination date: 20120711 |