CN101399076A - 电子数据快闪记忆卡、控制方法和决定闪存装置类型方法 - Google Patents

电子数据快闪记忆卡、控制方法和决定闪存装置类型方法 Download PDF

Info

Publication number
CN101399076A
CN101399076A CNA2008101004803A CN200810100480A CN101399076A CN 101399076 A CN101399076 A CN 101399076A CN A2008101004803 A CNA2008101004803 A CN A2008101004803A CN 200810100480 A CN200810100480 A CN 200810100480A CN 101399076 A CN101399076 A CN 101399076A
Authority
CN
China
Prior art keywords
flash memory
program code
memory device
data
flash
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.)
Pending
Application number
CNA2008101004803A
Other languages
English (en)
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.)
Super Talent Electronics Inc
Original Assignee
Super Talent Electronics Inc
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 Super Talent Electronics Inc filed Critical Super Talent Electronics Inc
Publication of CN101399076A publication Critical patent/CN101399076A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Abstract

本发明公开一种电子数据快闪记忆卡、控制方法和决定闪存装置类型方法,所述的电子数据快闪记忆卡,包含有一闪存控制器以及耦合到闪存控制器的至少一闪存装置。在程序化程序期间,闪存系统的开机程序代码与控制程序码是储存在闪存装置中,而在启动程序或重设程序时,闪存控制器会将开机程序代码与控制程序码移转到非易变性主存储器,而建构成一个以随机存取内存为基础之内存系统,至于于执行程序代码更新期间,则会将开机程序代码与控制程序码选择性覆写。因此,本发明是提供了一种单一闪存控制器,可支持各种品牌与类型的闪存,包括多层晶胞闪存,可以如此消除库存问题。

Description

电子数据快闪记忆卡、控制方法和决定闪存装置类型方法
技术领域
本发明涉及的是一种电子数据快闪记忆卡,特别涉及的是一种用以在电子数据快闪记忆卡中控制闪存的系统、控制方法和决定闪存装置类型方法。
背景技术
机密的数据文件通常会储存在软式磁盘(floppy disk),或是通过网络来传递,并且需要密码或使用加密程序代码来保密。在机密文件的传递过程,则会通过加入安全标章与印记来传送。然而,机密数据文件与文件具有密码、加密程序代码、安全标章与印记可能会被破坏(或破解)的危险,从而导致机密数据被未经授权而存取。
闪存的多媒体记忆卡(Multi-Media Card;MMC)广泛使用来储存数据。以多媒体记忆卡为基础的闪存(或快闪记忆卡)是众所周知的,并使用在譬如数字摄影机的许多产品中。快闪记忆卡的优势包含低功率消耗与高抗振。
图21为一种传统快闪记忆卡50结合有使用者主机52的方块图。此快闪记忆卡50包含闪存控制器60与闪存装置62。使用者主机52可譬如为摄影机或计算机。数据会通过闪存控制器60传递在使用者主机52与闪存装置62之间。提供存取闪存装置62所需要的数据储存在闪存控制器60的只读存储器(ROM)64(并非只包含一般的只读存储器ROM区块中,而且也包含能够具有只读存储器功能的状态机器(state-machine)或逻辑数组),数据包含开机程序代码66与控制程序码68。开机程序代码66为在开机程序的初始状态期间将快闪记忆卡50初始化的软件。而控制程序码68则包含实行初始的开机程序的必要数据,也包含致使闪存控制器60能够存取闪存装置62的数据。
传统闪存系统的一个问题为开机程序代码66与/或控制程序码68可能具有错失(bug),有可能直到闪存系统已经发生问题才会发现。并且,由于错失或者是程序代码的改良,开机程序代码66与/或控制程序码68可能必须被更新。
传统的解决方法是替换掉闪存控制器60,闪存控制器60包含储存有开机程序代码66与控制程序码68的只读存储器64。而此解决方法的一个问题是可能会对于快闪记忆卡厂商造成明显的库存(inventory)问题。举例而言,整个库存的闪存控制器可能会为了对于开机程序代码或控制程序码进行一次修正或一次更新而被丢弃。
因此,有其必要寻求一种适用的、简单的、符合经济效益的以及能够容易适用在目前技术的改良的闪存系统。
发明内容
有鉴于此,本发明的一个目的在于提供一种电子数据快闪记忆卡、控制方法和决定闪存装置类型方法,其具有使用者认证能力,可以在数据传输到闪存装置或从闪存转移时予以保密。
根据本发明的一些实施例,一种电子数据储存媒体(快闪记忆卡)是适用在由数据端(如主机系统)所存取。电子数据快闪记忆卡包含闪存装置、使用者认证系统(譬如指纹感应器,或者,通过功能键装置或主机系统所存取的储存密码)、输入/输出接口电路以及处理单元(闪存控制器)。闪存装置储存数据文件与保密数据(譬如通过扫描被授权来存取所述的数据文件的个人的指纹所获得的指纹辨识数据,或者,譬如为储存密码的保密程序代码)。在一个实施例中,指纹感应器是适用在扫描电子数据储存媒体的使用者的指纹并产生指纹扫描数据。在另一个实施例中,保密程序代码是由功能键装置的方法或通过主机系统所存取。输入/输出接口电路可能被驱动或撤销以建立和主机系统的通信。处理单元连接到闪存装置、认证系统与输入/输出接口电路,并选择性执行在程序化模式、重设模式、数据撷取模式、程序代码更新模式以及数据重设模式。当处理单元处在程序化模式时,处理单元会驱动输入/输出接口电路从主机系统接收数据文件、开机程序代码数据、控制程序码数据与选配的保密数据,并储存数据在闪存装置中。当处理单元处在重设模式时,处理单元会从闪存装置读取开机程序代码数据和控制程序码数据,并致使输入/输出接口电路和主机系统依照开机程序代码数据和控制程序码数据来交换数据。当处理单元处在数据撷取模式时,处理单元会驱动输入/输出接口电路去传送数据文件给主机系统。在程序代码更新模式时,更新的开机程序代码数据和控制程序码数据会写入闪存装置,如此帮助目前的开机程序代码数据和控制程序码数据的更新(也就是说,不必像传统组件必须替换一个内部只读存储器(On-Chip ROM)单元)。
在数据重设模式时,数据文件(与保密数据)会从闪存装置中抹去。因为开机程序代码数据和控制程序码数据储存在闪存装置中(取代传统组件储存在只读存储器中),目前的开机程序代码数据和控制程序码数据可能会被更新,且单一闪存控制器可能会被使用来控制大量的各种类型与大小的闪存装置。
附图说明
图1A为根据本发明的一个实施例所提供的一种电子数据快闪记忆卡结合主机系统的方块图;
图1B为根据本发明的另一个实施例所提供的一种电子数据快闪记忆卡结合主机系统的方块图;
图1C为根据本发明的另一个实施例所提供的一种电子数据快闪记忆卡结合主机系统的方块图;
图1D为根据本发明的另一个实施例所提供的一种使用在电子数据快闪记忆卡的处理单元的方块图;
图2A为根据本发明的一个实施例所提供的一种包含开机程序代码与控制程序码两者的电子数据快闪记忆卡的方块图;
图2B为根据本发明的另一个实施例所提供的一种包含开机程序代码与控制程序码两者的电子数据快闪记忆卡的方块图;
图3为根据本发明的一个实施例所提供的第(2A)图的电子数据快闪记忆卡的方块图;
图4为根据本发明的一个实施例所提供的一种电子数据闪存结构的示意图;
第4A图与第4B图为根据本发明的一些实施例所提供的一种电子数据闪存结构的示意图;
图5为根据本发明的一个实施例所提供的一种包含两个使用双信道设定的闪存装置的闪存系统的方块图;
图6为根据本发明的一个实施例所提供的图5的闪存装置的闪存结构的示意图;
图7为根据本发明的一个实施例所提供的图5的闪存系统的时序示意图;
图8为根据本发明的一个实施例所提供的一种包含两个使用互动的闪存装置的闪存系统的方块图;
图9为根据本发明的一个实施例所提供的图8的闪存装置的闪存结构的示意图;
图10为根据本发明的另一个实施例所提供的图8的闪存装置的闪存结构的示意图;
图11为根据本发明的一个实施例所提供的图8的闪存系统的时序示意图;
图12为根据本发明的一个实施例所提供的一种闪存数据的架构的示意图;
图13为根据本发明的一个实施例所提供的一种闪存系统在读取识别码指令执行期间的时序示意图;
图13A为根据本发明的另一个实施例所提供的一种闪存系统在读取识别码指令执行期间的时序示意图;
图14为根据本发明的一个实施例所提供的一种使用厂商主机程序化快闪记忆卡的方法的流程图;
图15为根据本发明的一个实施例所提供的一种使用闪存程序器程序化闪存的方法的流程图;
图16为根据本发明的一个实施例所提供的一种将闪存开机的方法的流程图;
图17为根据本发明的一个实施例所提供的一种在装运的前测试闪存的方法的流程图;
图18为根据本发明的一个实施例所提供的一种闪存结构的示意图;
图19为根据本发明的一个实施例所提供的一种在正常操作期间将快闪记忆卡电源恢复的方法的流程图;
图20为根据本发明的一个实施例所提供的一种在正常操作期间执行控制程序码的方法的流程图;以及
图21为一种传统快闪记忆卡结合主机系统的方块图。
附图标记说明:1-卡体;2-处理单元;2A-处理单元;2B-处理单元;3-闪存装置;3A、3B-闪存装置;4-指纹感应器;4A-指纹感应器;5-输入/输出接口电路;5A-输入/输出接口电路;5B-输入/输出接口电路;6-显示单元;6B-显示单元;7-电源;8-功能键装置;8B-功能键装置;9-外部(主机)计算机;9B-外部(主机)计算机;10-电子数据快闪记忆卡;10A-电子数据快闪记忆卡;10B-电子数据快闪记忆卡;12-读卡机;13-接口总线;21-闪存控制器;22-电源调整器;23-重设电路;50-快闪记忆卡;52-使用者主机;60-闪存控制器;62-闪存装置;64-只读存储器;66-开机程序代码;68-控制程序码;200-闪存系统;200A-闪存系统;202-闪存控制器;202A-闪存控制器;204-闪存;204A-闪存;206-开机程序代码;206A-开机程序代码;208-控制程序码;208A1-控制程序码;208A2-控制程序码;210-使用者主机;212-主机快闪记忆卡控制器;220-厂商主机;222-主机快闪记忆卡控制器;230-闪存程序器;302-记忆卡频率区域;304-CPU频率区域;310-指令位移缓存器;312-指令编译器;314-指令线;320-CPU;322a-页面缓冲器;322b-页面缓冲器;323-闪存接口电路;324-冗位检查单元;326-冗位检查单元;328-记忆卡ID状态机制;30-CPU;331-直接内存存取引擎逻辑;332-响应缓存器;340-锁相回路电路;342-晶体;350-只读存储器;352-随机存取内存;406-保留区域;406A-保留区域;408-保留区域;410-记忆卡非易变性缓存器;412-数据库映像文件;414-开机程序代码;416-控制程序码;418-坏区块地图;420-作业缓存器;500-闪存系统;502-闪存装置;504-闪存装置;506-闪存控制器;508-输入/输出总线;602-闪存结构;604-闪存结构;802-闪存装置;804-闪存装置;806-闪存控制器;808-输入/输出总线;902-闪存结构;904-闪存结构;1002-闪存结构;1004-闪存结构。
具体实施方式
现在举出数个实施例,并提出许多详细说明对于本发明的实施例作全面性地解释。然而,本发明相关领域的技艺人士将可以清楚知道,并非一定需要这些特定的详细说明才可以完成本发明的实施例。在其它例子中,则配合方块图辅助说明已知的结构与组件,使本发明实施例的技术思想更被突显。
参阅本说明书所谓一个实施例意指和包含在本发明的至少一个实施例中的实施例所相关的特定特征、结构或特性描述。而本说明书各个地方所谓在一个实施例中并不需要全部参照相同的实施例。
请参阅图1A,根据本发明的一个实施例,一种电子数据快闪记忆卡10是适用在提供外部(主机)计算机9来存取,或者是经由接口总线13或记忆卡读卡器(图中未示)或其它接口机制(图中未示)来存取,并且电子数据快闪记忆卡10包含一卡体1、一处理单元2、一个或更多个闪存装置3、一选配的(optional)指纹感应器(保密组件)4、一输入/输出接口电路5、一选配的显示单元6、一选配的电源(例如,电池)7以及一选配的功能键装置8。
闪存装置3装设在卡体1上,并以一个已知的方法储存可提供存取的数据文件、识别密码以及通过扫描被授权来存取所述的数据文件的个人的指纹所获得的指纹辨识资料在其中。如以上所揭示,闪存装置3也包含开机程序代码数据与控制程序码数据。
指纹感应器4是装设在卡体1上,并且适用在扫描电子数据快闪记忆卡10的使用者的指纹,以产生指纹扫描数据。一个例子可以使用在本发明的指纹感应器4,乃揭示在共同拥有(co-owned)的美国专利第6,547,130号,标题为”INTEGRATED CIRCUIT CARD WITH FINGER PRINT VERIFICATIONCAPABILITY”(具有指纹辨识能力的集成电路卡),在此请一并参照其整个内容。上述专利所公开的指纹感应器包含一用来定义指纹扫描区域的扫瞄单元数组。指纹扫描数据包含通过扫描相关联的复数扫描单元数组线所获得的复数个扫描线数据。复数扫描单元数组线是以列(row)方向进行扫描,并且也以数组的行(column)方向进行扫描。每一个扫描单元在侦测记忆卡卡体的持有者的指纹中的突起处会产生第一逻辑讯号,在侦测记忆卡卡体的持有者的指纹中的低凹处会产生第二逻辑讯号。
输入/输出接口电路5装设在卡体1上,并且能够被驱动来建立和主机计算机9的通信,譬如,经由接口总线13或记忆卡读卡器的方式给予装配在相关联的插槽。在一个实施例中,输入/输出接口电路5包含复数电路以及和选自通用序列总线(Universal Serial Bus;USB)、PCMCIA(个人计算机内存卡国际协会;personal computer memory card international association)与RS232接口结构相关联的控制逻辑。并且,输入/输出接口电路5可连接到连接或装设在主机计算机9上相关联的插槽。在另一个实施例中,输入/输出接口电路5可以包含安全数字记忆卡(Secure Digital;SD)接口电路、多媒体记忆卡(Multi-Media Card;MMC)接口电路、紧密快闪记忆卡(Compact Flash;CF)接口电路、MS记忆卡(Memory Stick;MS)接口电路、外围装置连接快递(PCI-Express;PCIE)接口电路、整合式驱动电子(Integrated Drive Electronics;IDE)接口电路与序列进阶技术接附(Serial Advanced Technology Attachment;SATA)接口电路的一,以经由接口总线13或记忆卡读卡器和主机计算机9相接。
处理单元2装设在卡体1上,且通过设置在卡体1上相关联的导电路径或导线的方式,来连接到内存装置3、指纹感应器4以及输入/输出接口电路5。在一个实施例中,处理单元可譬如为从英特尔公司(Intel Corporation.)所获得的8051、8052或80286微处理器之一。在其它实施例中,处理单元2包含RISC、ARM、MIPS或其它数字讯号处理器。根据本发明的一个方面,处理单元是由储存在闪存装置3的至少一部份的程序所控制,使得处理单元2可以选择性地执行在:(1)程序化模式,处理单元2会驱动输入/输出接口电路5去从主机计算机9接收数据文件、开机程序代码数据、控制程序码数据与选配的指纹辨识数据,并储存数据在闪存装置3中(作为一个选配,是以压缩格式去提高闪存装置3的储存能力);(2)重设模式,处理单元2会从闪存装置3中读取开机程序代码数据和控制程序码数据,并使用来设定与控制处理单元2的执行;(3)数据撷取模式,处理单元2会从指纹感应器4去读取指纹扫描数据,并将此指纹扫描数据和闪存装置3的指纹辨识数据的至少一片段进行比较,以确认是否电子数据快闪记忆卡10的使用者有被授权来存取闪存装置3所储存的数据文件,并在确认使用者有被授权来存取闪存装置3所储存的数据文件后,驱动输入/输出接口电路5传送数据文件给主机计算机8;(4)程序代码更新模式,将开机程序代码数据和控制程序码数据更新到闪存装置3;以及(5)数据重设模式,从闪存装置3中抹去数据文件与指纹辨识数据。在操作时,主机计算机9会经由记忆卡读卡器或接口总线13与连接到处理单元2的输入/输出接口电路5,来传送写入与读取要求给电子数据快闪记忆卡10,并利用闪存控制器(图中未示)从相关联的一个或更多个闪存装置3来读取,或写入到相关联的一个或更多个闪存装置3。在一个实施例中,因为数据文件与指纹辨识数据储存在闪存装置3中,在侦测目前的时间周期过后,处理单元2会自动将数据重设模式的操作初始化。
8051、8052或80286处理器是由英特尔公司所发展的使用复杂指令集(complex instruction set)的微处理器。其中8051与8052处理器具有8位数据总线,80286处理器具有16位数据总线。RISC、ARM与MIPS处理器为使用精简指令集(reduced instruction set)的架构的微处理器。且8051与8052处理器是广泛使用在诉求低价格产品。80286处理器可以使用在诉求较高的速度/效能的产品。RISC、ARM与MIPS处理器是较高价格的微处理器,也较适合在较复杂的应用,譬如进阶的错误更正程序代码(Error Correction Code;ECC)与资料加密。
选配的电源7是装设在卡体1上,并连接到处理单元2与在卡体1上的其它相关联的单元,以对于这些单元提供必需的电力。
选配的功能键装置8是装设在卡体1上,并连接到处理单元2。操作功能键装置8可用以将处理单元在被选定的程序化模式、重设模式、数据撷取模式、程序代码更新模式以及数据重设模式的操作予以初始化。操作功能键装置8可用以提供输入密码给处理单元2。处理单元2会比较输入密码与储存在闪存装置3的识别密码,并在确认输入密码符合识别密码之后,对于电子数据快闪记忆卡10被授权的操作予以初始化。
选配的显示单元6是装设在卡体1上,并连接到处理单元2,并且,由处理单元2控制显示单元6呈现和主机计算机9所交换的数据文件与显示电子数据快闪记忆卡10的操作状态。
在此说明本发明的数个实施例的一些优点:首先,电子数据快闪记忆卡具有小体积,但具有大的储存能力,所以在传输数据过程会非常便利;再者,因为每个人具有独特的指纹,电子数据快闪记忆卡只会允许被授权的使用者去存取储存在其内的数据文件,从而提高保密效果。本发明其它的特征与优点则详述如后。
图1B为根据本发明的一个可供选择的实施例所提供的一种电子数据快闪记忆卡10A的方块图,其中乃提供一广义的感应器单元4A取代前述的指纹感应器。在此所提供的感应器单元范例包含有视网膜(例如,眼睛)扫瞄器或声音识别装置,其具有侦侧被授权的使用者的生理特征的能力,以及可用类似在前述指纹感应器4的识别方法来操作。
图1C为根据本发明的另一个可选择的实施例所提供的一种电子数据快闪记忆卡10B的方块图。电子数据快闪记忆卡10B少去指纹感应器与被授权的使用者的辨识程序。为了完成降低价格的目的,电子数据快闪记忆卡10B也包含一高度积体化的处理单元2B,此高度积体化的处理单元2B包含一输入/输出接口电路5B与一闪存控制器21。输入/输出接口电路5B包含一无线传输接收机(transceiver)区块、一是列的接口引擎(interface engine)区块,复数缓冲器、复数缓存器(register)与中断逻辑(interrupt logic)。而且,输入/输出接口电路5B连结到内部总线以允许输入/输出接口电路5B的各种组件和闪存控制器21的数个组件的通信。另外,闪存控制器21包含一微处理器单元、一只读存储器(read-only-memory;ROM)、一随机存取内存(random access memory;RAM)、一闪存控制器逻辑、一错误更正程序代码逻辑以及一通用型输入输出(generalpurpose input/output;GPIO)逻辑。在一个实施例中,通用型输入输出逻辑乃连结到用以状态指示的复数发光二极管(LED),譬如指示电源良好(powergood)、读取/写入闪存活动等等的状态,并连结到其它输入/输出装置。而闪存控制器21连结到一个或更多个闪存装置3B。
在本实施例中,主机计算机9B包含一功能键装置8B,当电子数据快闪记忆卡10B操作时,功能键装置8B会经由接口总线或记忆卡读卡器连结到处理单元2B。功能键装置8B是用来在选择性设定电子数据快闪记忆卡10B操作在程序化模式、重设模式、数据撷取模式、程序代码更新模式以及数据重设模式的一个模式。操作功能键装置8B也可用来提供输入密码给主机计算机9B。处理单元2B会将输入密码和储存在闪存装置3B的识别密码相比较,并在确认输入密码和识别密码之后,将电子数据快闪记忆卡10B的被授权的操作予以初始化。
并且,在本实施例中,主机计算机9B包含显示单元6B,当电子数据快闪记忆卡10B操作时,显示单元6B会经由接口总线或记忆卡读卡器连接到处理单元2B。通过显示单元6B可呈现电子数据快闪记忆卡10B和主机计算机9B所交换的数据文件,并显示电子数据快闪记忆卡10B的操作状态。
根据本发明的一个实施例,处理单元2包含一闪存类型的算法,用以侦测闪存类型是否由闪存控制器逻辑所支持。闪存技术的进展,造成了大量的基于效能、价格与功能的种种理由所发展出来的各种各样的闪存类型。由于可能的短缺、价格理由、闪存的供应弹性的需求、以及存取每个不同闪存类型所需要的单一性控制,利用具有智能型算法的处理单元去实行侦测与存取不同闪存类型是重要的。典型的闪存包含用来证明闪存类型的身分证明(ID)程序代码、厂商与闪存的特征/参数,例如页面大小、区块大小、结构、功能等等。智能型算法会控制处理单元2在重设时去读取闪存3的ID,以及基于由闪存控制器所支持的闪存类型的表格来比较此ID。假如闪存3并未受到支持,则闪存控制器将无法存取闪存3,且经由闪存控制器的输出埠,发光二极管(LED)会显示不兼容。假如闪存3是受到支持的,则闪存控制器将会在闪存控制器开始存取闪存3的前,以设定的方法来安装。一种具有智能型算法的闪存控制器,揭示在譬如为共同拥有的美国专利说明书第11/466,759号,标题为”Flash MemoryController For Electronic Data Flash Card”(电子数据快闪记忆卡的闪存控制器),在此请一并参照其整个内容。
电子数据快闪记忆卡是一种使用复数用来数据储存的闪存的闪存系统。典型的闪存系统的系统架构包含具有处理器、ROM与RAM的闪存控制器,其中存在于ROM的开机程序代码与控制程序码就如同RAM程序代码。在开机(power up)时,处理器会取得开机程序代码以执行开机,开机程序代码将会初始化系统组成并将控制程序码安装到RAM。一旦控制程序码安装到RAM,它会取得系统的控制。控制程序码包含数个驱动器以执行数个基本任务,譬如控制与分配内存、按优先级排好各个指令的处理、控制输入与输出埠等等。控制程序码也包含闪存类型的侦测算法与闪存参数数据。
ROM是一种只读存储器,在闪存控制器的设计完成与转移到生产之后,在ROM里面的软件程序代码会予以冻结并且无法被改变以支持后来市面上所释出的新的闪存类型。在这种情况中,必须一次又一次地被发展出来较新的闪存控制器,才可以支持新的闪存,这样将会很耗费金钱与时间。
图1D是以额外的细节揭示图1B的处理单元2A。电子数据闪存10A包含有一电源调整器(power regulator)22,用以提供一个或更多个的电源供应器。电源供应器乃根据电源需求,而提供不同电压给处理单元2A与电子数据快闪记忆卡10A的其它相关联的单元。并且,可能需要利用电容器(图中未示)来提供电源稳定性。电子数据快闪记忆卡10A包含一重设电路23,用以提供重设讯号给处理单元2A。在开机中,重设电路23会保持发出一重设讯号给所有单元。当内部电压达到一稳定的程度,重设讯号就会不作用(de-asserted),且利用电阻器与电容器(图中未示)提供一个足够的重设时序调整(adequate reset timingadjustment)。电子数据快闪记忆卡10A也包含一石英晶体振荡器(图中未示),用来提供基本的频率(fundamental frequency)给处理单元2A中的锁相回路(PLL)。
根据本发明的一个实施例,输入/输出接口电路5A、重设电路23与电源调整器22是整合或部分整合在处理单元2A内。这样一个高度整合大体上会将全部的空间需求、复杂性与制造费用予以减少。紧密的以及减少的花费对于譬如在此描述的电子数据快闪记忆卡的可移动的装置来说是个关键因素。现代的集成电路(Integrated Circuit;IC)封装可以将分离的IC组件用不同的技术与材料加以整合到一个IC封装。举例而言,输入/输出接口电路为模拟与数字混合电路系统,可以将其整合到一个具有处理单元的多芯片封装(Multi-Chip Packaging;MCP)。重设电路与电源调整器则为模拟电路系统,也可以将其整合到具有处理单元的多芯片封装(Multi-Chip Packaging;MCP)。混合的讯号IC技术的本质将会允许一种混合的模拟与数字两者整合的电路系统。因此,较高的整合可将输入/输出接口电路、闪存控制器、重设电路与电源调整器结合在和处理单元相同的芯片/晶粒。
根据本发明的另一个实施例,电子数据快闪记忆卡包含有开机程序代码与控制程序码储存在闪存中,替代了储存在闪存控制器ROM。于是,开机程序代码与控制程序码可以马上被更新而不需要更换闪存控制器。为了描述本发明的特征,现在请配合图式并同时参考下列说明。
虽然本发明在此公开的数个实施例是描述在一快闪记忆卡之内容,但是本发明的实施例可以应用在其它类型之内存系统,而仍然不脱离本发明的实施例的精神与范围。
图2A为根据本发明的一个实施例所提供的一种闪存系统200的方块图。闪存系统200包含一闪存控制器202与一闪存204。闪存204储存有开机程序代码206与控制程序码208。注意闪存此项目表示一个或更多个闪存装置。假如具有超过一个闪存装置,开机程序代码206与控制程序码208可以储存在一个闪存装置,或者,也可以选择性地储存在多个闪存装置。在正常模式(normal-mode)操作期间,闪存系统200是适用在连结到使用者主机210。使用者主机210包含有主机快闪记忆卡控制器212。
在程序化模式(programming-mode)期间,闪存系统200适用在连结到厂商主机220或可选择性地连结到一美国电子工程设计发展联合协会规格的闪存程序器(Jedec flash programmer)230。厂商主机220可以为具有特定硬件的个人计算机。厂商主机220包含一主机快闪记忆卡控制器222,此主机快闪记忆卡控制器222可以为专用在量产快闪记忆卡的特别的记忆卡接口控制器。
在正常模式操作期间,闪存系统200储存有提供给使用者主机210所提供的数据,使用者主机210可以为数字摄影机或个人计算机(PC)或另外的主机。闪存系统200是以快闪记忆卡来实施。闪存系统200可以储存各种类型的数据,包含有影像数据及其它类型的多媒体数据。另外,闪存系统200也可以为多媒体记忆卡(Multi-Media Card;MMC)。储存在闪存系统200的数据可以在之后在电子邮件(e-mail)中当作附件传送、打印或转移到另外的主机。
使用者主机快闪记忆卡控制器212能够处理在闪存系统200与使用者主机210之间的快闪记忆卡协议转换,能够让使用者主机210去移转档案,使各种主机操作系统(operating system;OS)软件得以分享数据。举例而言,使用者主机快闪记忆卡控制器212会让数据可以经由电子邮件被使用者所读取。在使用者主机210的软件将提供处理档案系统功能,例如提供档案应用接口与使用者可存取组件驱动器。
在闪存系统200运送到一个末端使用者的前,储存在闪存系统200中的数据要确保能够正确运作,其数据包含有开机程序代码206与控制程序码208,如同闪存所特有的资料(例如,厂商、身份证明等等)。开机程序代码206乃为会在开机程序刚开始的阶段期间,将闪存系统200予以初始化的软件。开机程序代码206也用以决定可获得之内存的数量以及决定如何存取内存。控制程序码208包含用来实行开始的开机程序的必要数据与致使闪存控制器202能够存取闪存装置204的数据。控制程序码208包含参数设定与闪存装置相关数据的列表,如同记忆卡ID与记忆卡特殊数据(card specific data;CSD)。
由于开机程序代码206与控制程序码208储存在取代闪存控制器ROM的闪存装置中,在ROM的程序代码和ROM的物理大小同样可以被最小化。
在程序化模式操作中,厂商主机220被使用来通过闪存控制器202设计闪存204的程序。同样地,Jedec闪存程序器230可以使用来直接对于闪存204作程序设计。在完成程序设计时,厂商主机220将会检察闪存系统200以确保它可以正确地运作。
由于开机程序代码与控制程序码储存在闪存204中,所以不同品牌或类型的闪存能够被相同的闪存控制器202所支持,而不用更换闪存控制器202。就像这样,闪存控制器是通用在各种品牌与类型的闪存。这是因为每一个闪存204的闪存装置储存了对于每一个闪存特有的开机与控制程序码。对于不同类型的闪存装置的参数是利用控制程序码与数据库映像文件(library image file)来定义。另外,单一个闪存控制器即可以支持多种品牌与多种类型的闪存。换句话说,闪存控制器不必根据每一种品牌或类型的闪存而作更换。当各种大量生产的记忆卡具有不同规格(例如,不同闪存)时,这明显地减少了存货。
并且,因为开机程序代码与控制程序码储存在闪存中,开机程序代码与控制程序码可以马上被更新。就像这样,末端使用者可以下载更新的程序代码。上述程序代码可以经由各种方式,如因特网支持、电子邮件等等来提供,以及可以使用个人计算机来下载。
图2B为根据本发明的一个可供选择的实施例所提供的一种闪存系统200A的方块图。类似在传统的系统,闪存系统200A包含开机程序代码206A与控制程序码208A1的第一个版本(例如,”控制程序码1(Controlcode1)”)在闪存控制器202A的ROM部位,并且也包含控制程序码208A1的一个更新的版本208A2(例如,”控制程序码2(Controlcode2)”)在闪存204A。在本实施例中,开机程序代码是下载到RAM并且使用来决定是否使用初始的控制程序码208A1或更新控制程序码208A2。本实施例将不会允许对于开机程序代码更新,并且不会缩小ROM的大小,如同显示在图2A的实施例,但会帮助对于控制程序码更新,以允许对于譬如存在于初始的控制程序码208A1的错失(bug)立刻定位。
图3为根据本发明的一个实施例所提供的第(2A)图的闪存控制器202的方块图。为了容易说明,图3的闪存控制器202是以两个区域来表示,一个记忆卡频率区域(card clock domain)302与一个中央处理器(CPU)(闪存控制器)频率区域304。记忆卡频率区域302是由记忆卡频率(标记为”card_clk”)所控制,记忆卡频率是由主机(图中未示)所提供来统计指令与数据协议。注意主机系统或主机此项目,当一般使用时,可以包含任何类型的主机,其包含但不限定为使用者主机、厂商主机、Jedec程序器等等。所有的协议(handshake)讯号是按照着记忆卡去实行运作。
CPU频率区域304是由CPU频率(标记为”CPU_clk”)所控制,CPU频率控制所有的闪存操作和CPU的活动。CPU频率可以通过高速度以达到有效运作(例如,为记忆卡频率的两倍或更快)。随着技术的提升,CPU频率的速度能够并将会提高,并且CPU频率确切的速度将依照特定的应用。
参照记忆卡频率区域302,指令位移缓存器(command shifter register)310是使用在每当指令位移缓存器310看到从主机传送一起始位(start bit)时,就会通过指令线(command line)314从主机抓住一指令。如同先前的状态,通用项目的主机可以是任何类型的主机,包含但不限定在使用者主机、厂商主机等等。指令线314是双方向性的(bi-directional),并且从闪存系统响应给主机从而可以使用指令线314来进行传输协议(protocol transfer)。
指令编译器(command decoder)312会产生一指令中断(command interrupt),并将指令中断传送到CPU320。双页面缓冲器322a与322b是使用来提高闪存操作的效率。在此特殊的实施例中,双页面缓冲器322a与322b为2K字节缓冲器,但也可以根据特殊应用而更多或更少。闪存控制器202在页面缓冲器322a与322b之间作互动,用以将主机与闪存控制器202的通信予以最佳化。当页面缓冲器322a正在使用来传送数据到闪存接口323时,页面缓冲器322b会保持可接受从主机的数据的状态。相反地,当页面缓冲器322b正在使用来传送数据到闪存接口323,页面缓冲器322a会保持可接受从主机的数据的状态。
周期性的冗位检查单元(cyclic redundancy check unit)324(标示为”CRC16”)是用来检查数据的较大的字节(例如,512或更多字节)的总和检查值(checksum)。周期性的冗位检查单元326(标示为”CRC7”)是用来检查数据的较小的字节的总和检查值。这样的数据包含,例如为指令或响应封包确认。记忆卡ID状态机制328会检查闪存控制器202是否由主机所识别。每一个有关于复杂的运作的状态是由CPU320的韧体来处理。当下载开机程序代码或控制程序码时,数据传输状态机制330会帮助直接内存存取(direct memory access;DMA)引擎逻辑331去减轻CPU320。此DMA引擎逻辑331会从闪存204传输较大的复数区块的程序代码到主存储器(随机存取内存;RAM)352。此加快速度的系统是通过执行在以RAM为基础之内存来实行,和减轻CPU一样。响应缓存器(response register)332会帮助数据从闪存系统传输到主机。
参照CPU频率区块304,CPU320是用来控制优先级安排并且也可以用来对于韧体的优先级安排进行处理的主要引擎。具有晶体342的锁相回路(phase-locked loop;PLL)电路340会产生CPU频率与系统频率(标记为”sys_clk”),其主要使用在CPU320与闪存接口323。频率速度会影响快闪的时间。较好的速度是20兆赫兹(Mhz)状态追踪,并且可以加以变化。
具有晶体342的锁相回路(PLL)电路340可以由其它解决方式来取代。譬如,RC振荡器也可以使用在图3中,其费用将较具有晶体的PLL电路为少。因为晶体可以被整合在硅基板上的单一芯片中,这可能占据记忆卡印刷电路板(PCB)的空间并且在某些情况下使得记忆卡大小不符合在一个标准大小。RC振荡器可以完全使用最少之内部组件(也用较少的费用)实施在单一个芯片中。环状振荡器(Ring-Oscillator)是另一种在特殊应用中可以取代具有晶体的PLL电路的解决方法。
一种储存有程序代码的只读存储器(ROM)350可用来处理闪存装置204的程序代码的下载,并传输控制给存在于闪存204的开机程序代码。或者,ROM350也可以被固定型态(fixed-type)的电子抹除式只读存储器(electricallyerasable ROM;EEPROM)或是或门型态(NOR type)的闪存所替代。这样的选择对于工程经验的目的将是有用的。
一种主要之内存,静态随机存取内存(static random access memory;SRAM)352可储存作业程序代码(executable code),这些作业程序代码包含有开机程序代码与控制程序码,是在闪存系统开机时从闪存204下载。和控制程序码的复杂度有关,RAM352可以和CPU320整合。一种以富-RAM为基础的8051控制器(rich-RAMbased8051controller)乃是和CPU整合的RAM的一个例子。
闪存接口电路323是和闪存装置204在闪存存取操作期间互相邻介,从以将来自主机所传送的指令为基础予以程序化、读取、抹去快闪页面或区块。
快闪记忆卡使用以区块为基础的寻址设计(block-based addressing scheme),相对于随机寻址设计(random addressing scheme),以区块为基础的寻址设计和动态随机存取内存(dynamic random access memory;DRAM)系统是共通的。以区块为基础的寻址和指令与地址有关,指令与地址是通过数据总线来传送,并且和被读取或写入的区块数据有关。闪存的优点在于使用数据总线来传送指令与地址,并且传送使用者数据。因此,在一个闪存芯片上会需要较少的接脚(pin)。所以费用会被减少。
图4为根据本发明所提供的一种闪存结构406的示意图。保留区域(reservedarea)406是位于闪存装置的最终区块,使用来储存配合闪存运作的数据的最终区块的数据(譬如,开机程序代码与控制程序码)。这些数据包含保留区域408、记忆卡非易变性(non-volatile;NV)缓存器410、数据库映像文件412、开机程序代码414、控制程序码416、坏区块地图(bad block map)418以及作业缓存器(operation registers)420。保留区域406实际上具有一个或更多个备用区域(spareareas),使得旧的最终区块数据的备份复本(back-up copies)得以被保存下来。当可获得额外的备用区域时,就可以保存多个较旧的最终区块数据的备份复本。
保留区域408是使用在抹除抽换(erase swapping)。在旧的最终区块数据被抹除之后,新的数据就被复制回存(copy back)。平均磨损(wear leveling)的问题在保留区域406并不是问题,因为更新到程序代码或缓存器的任一个和一般的数据转移相比只会引起些微的变化。
记忆卡的非易变(NV)缓存器410包含必须的参数,譬如主机所需要知道的符合传输协议的记忆卡身份证明(card identification;CID)资料。数据库映像文件412包含厂商字节、磁盘字节与从快闪指令所读取的其它数据。
考虑开机程序代码414与控制程序码416,开机程序代码414与控制程序码416的至少两个复本会储存在闪存装置中。这样子会在更新期间提供一个备份复本。在更新期间,两个复本中只有一个会被更新以反映最新的改变。另外的复本则用以保存唯一没有任何改变的备份复本,免得在更新期间发生任何未知的失败。并且,这两份复本是双态(toggled)会使得在后续的更新期间,原始的备份复本是被以最新的程序代码更新,且首先更新的复本变成新的备份复本。当两份复本储存在特殊实施例中,假如内存大小足够,可以存在更多的复本。另外的区块可以被保留来接受较大的大小的开机程序代码与控制程序码。
坏区块地图418是用来纪录坏区块。在闪存中的坏区块可能产生在每个时间,其包含产生在区块首先建立时,并可以产生在稍后抹除或程序化时的阶段。在一个特殊的实施例中,每一个区块是由一个坏区块位来表示,一个逻辑一(”1”)表示一个好区块,且一个逻辑零(”0”)表示一个坏区块。坏区块地图表格也包含根据好区块对于坏区块的比例的闪存的使用寿命。所有的闪存品牌具有对于坏区块位的规格定义的位置,会在读取厂商程序代码而得知。这样的位置通常会在备用数据区域的开始位置后面以数个字节来寻址。保留区域406在区块扫描时将不会包含任何坏区块的侦测。作业缓存器420包含总和检查值数据与地址指针(address pointer)。地址指针是由DMA快闪地址开始缓存器所共享,并且也储存在快闪记忆卡控制器所需要的基本数据的扇区(sector)中,以作为例如为开机程序代码与控制程序码的复本、开始地址与闪存系统的使用者储存容量的指针。
闪存装置的使用者储存容量是在读取”90h指令”ID后,利用读取组织字节所得知的闪存芯片的规格容积来计算。使用者储存容量是以闪存芯片的规格容积减去保留区域区块与坏区块。
闪存系统可以依照特殊应用的需求具有一个或更多个闪存装置。假如使用超过一个闪存装置,闪存装置最好是相同制造与类型。然而,他们也不一定需要是相同的制造与类型。
第4A图是根据本发明的一个实施例所提供的加强图4结构的揭示。请参照图4,根据一个实施例,保留区域406位于储存有开机程序代码与控制程序码的闪存装置的最终区块中。此处包括有两个偏僻个案(corner case):(1)最终区块是一种坏区块;(2)快闪身分证明(FLASHID)是纪录在一个快闪控制器中(譬如,使用新ID的新的快闪),使得控制器无法算出最后的区块的物理地址。第4A图定义第一区块406A为一个指令区块(instructing block),指令区块可以指出保留区块406的位置。这将会解决两个偏僻个案。大部份的快闪芯片是肯定第一区块不是坏区块,所以即使最后的区块是坏区块,第一区块将会把保留区块406变更位置(re-location)到另一个位置。不用ID号码(例如,没有快闪大小或最后区块地址数据),第一区块地址是通用在所有快闪芯片。
在第4B图中,一个最糟的个案,第一区块不肯定为好的区块,根据一个实施例,系统内定的保留区块406可以设定为最后的区块或系统内定的第二区块。所以,第4A图可以提供一个加强的保密。
图5是根据本发明的一个实施例所提供的一种使用双通道(dual-channel)设定的闪存系统500的方块图。请参照图5,两个闪存装置502与504是通过输入/输出(I/O)总线508连结到一闪存控制器506。I/O总线508的宽度是双倍总线的宽度,可以使用作为唯一的闪存装置。因此,I/O总线508执行速度为使用单一信道控制逻辑的总线的两倍快。
闪存装置502与504是8位装置,且闪存装置502与504的地址空间是由接口逻辑来重新排列,以能够存取它们。闪存装置502与504的扇区大小是512字节。准备/忙碌#线(ready/busy#line)(标记为”FE_RB#”)是用以指示一种内部忙碌状态。
图6是根据本发明的一个实施例所提供的图5的闪存装置的闪存结构602与604的示意图。闪存结构602与604乃相似在图4的闪存结构,除了闪存的物理地址被分割成两个闪存装置。闪存结构602是设计为偶数字节,而闪存结构604是设计为奇数字节。
图7是根据本发明的一个实施例所提供的图5的闪存系统的数据写入时序示意图。首先,在指令阶段(标记为”CMD_WR”)期间,指令是根据闪存装置502与504的闪存规格被写入在闪存装置502与504中。接着,在地址阶段(标记为”Column Addr”与”Row Addr”)期间,行与列地址是利用两个分开的连续周期来加以存取。特定数量的周期将和特定应用有关。接着,在数据阶段(标记为”D0”~”D3”)期间,数据会被传送到闪存装置502与504。这就完成了具有难以置信的效能增益的格式化。两个扇区缓冲器,每一个具有512字节,是使用来传送奇数与偶数字节给闪存装置502与504。在最终阶段(标记为”CMD_Confir”)期间,各自和偶数与奇数位相配的错误更正程序代码(ECC)字节会被写入到每个扇区的备用区域位置。考虑最后的讯号(”FO_RB#”),其波形代表闪存装置504的准备/忙碌接脚输出。此FO_RB#接脚是不连续的。因为闪存装置502与504的RB#接脚是处在三态(tri-stated),它们也可以被绑在一起。
图8是根据本发明所提供的一种包含两个使用互动(interleaved)的闪存装置802与804的闪存系统800的方块图。闪存装置802与804是通过I/O总线808连结到闪存控制器806。I/O总线808是由闪存装置802与804来分时享用(timeshared)。另外,指令可以被传送到闪存装置802与804两者,从而完全利用到I/O总线808的频宽。因为I/O总线808的频宽被分享,所以闪存控制器806接脚总数可以减少。闪存装置802与804更可具有分开的芯片致能线(标记为”FE_CE#”与”FO_CE#”)与准备/忙碌总线线(标记为”FE_RB#”与”FO_RB#”)。
图9为根据本发明的一个实施例所提供的图8的闪存装置802与804分别的闪存结构902与904的示意图。闪存结构902与904是相似在图6的闪存结构602与604。从缓存器的所有数据、数据库映像文件以及开机与控制程序码是依照顺序排列并分开成两个闪存结构902与904。如图所示,闪存结构902是用第一组的字节(标记为”D0”-“D511”)来设计,且闪存结构904是用第二组的字节(标记为”D512”-“D1023”)来设计。
图10是根据本发明的另一个实施例所提供的图8的闪存装置802与804分别的闪存结构1002与1004的示意图。闪存结构1002与1004并不相同在图9的闪存结构902与904,因为缓存器、开机程序代码、控制程序码、数据库映像文件、坏区块地图以及作业缓存器是储存在一个闪存装置。互动的特征可以在控制程序码成功下载之后被呈现。且互动的特征会当每次坏区块地图或其它字节被更改时而被关闭。这也是前述具有双信道特征的案例。
图11是根据本发明的一个实施例所提供的图8的闪存系统的时序示意图。对于闪存装置进行存取,使第一闪存装置开始运作并连接第二闪存装置。因为I/O总线是被分时享用在第一内存装置与第二内存装置之间,可选择存取在两者之间。此顺序相似在图7的时序示意图。考虑闪存两者,在产生确认指令(confirm-command)之后,CE#会被释放,并且RB#会维护内部总线状态。
图12是根据本发明的一个实施例所提供的一种闪存数据的架构的示意图。要操作闪存装置的不可缺少的数据是由厂商来提供。控制程序码会提供数据给闪存控制器。每个品牌与类型的闪存装置具有它自己的地址设计与功能。在闪存装置中的作业缓存器提供可以一起组成为一个页面而可以由闪存控制器容易存取的数据。两个主要品牌的闪存的资料架构,如图所示的厂商T(Maker T)与厂商S(Maker S)。第一组数据包含厂商程序代码。第二组数据包含磁盘ID。所有品牌与类型的闪存装置具有一相关磁盘ID。特别指令(”code90h”)是产生在第二地址阶段之后。这是要读取闪存装置ID的唯一需要的控制。
第四组的送回数据对于不同的闪存装置具有不同意义。譬如,假如使用单层单元(single level cell;SLC)结构,错误更正程序代码(ECC)产生电路将是1位电路,或者假如使用多层晶胞(multi-levelcell;MLC)结构,其将是4位电路。作业缓存器(operating register)也包含地址周期缓存器(address cycleregister),用以帮助读取/写入的存取。其它必要数据包含区块大小、页面大小与备用区域大小。
假如在一个快闪记忆卡中使用超过一个相同品牌与类型的闪存装置,闪存控制器必须去只读第一闪存装置以收集必要数据。假如使用超过一个闪存装置,为了减少控制程序码则最好使用相同品牌与类型的闪存装置。
图13为根据本发明的一个实施例所提供的一种闪存系统的时序示意图。在第一阶段,产生一读取ID指令(”90h”)。在第二阶段,决定一地址(例如,”00h”)。在第三阶段,读取厂商程序代码(例如,”ECh”或”98h”)。在第四阶段,读取磁盘程序代码。从第五阶段开始,读取其它类型的数据。数据包含页面大小、区块大小与备用区域大小等等。
图13A为根据本发明的一个实施例所提供的一种闪存系统的时序示意图。先前所述在控制器中的开机程序代码是利用读取快闪ID(Reading flash ID)来识别快闪芯片,然后传送对应的读取/写入指令,以安装程序代码从快闪到主存储器(RAM)352。在控制器中具有快闪ID表格的开机程序代码是由ROM(或具有相同功能的其它电路结构)来执行。这里指的是一种可以只支持所有具有已知ID的快闪芯片的控制器。然而,假如控制器的开机顺序是根据ID号码,新的具有新ID的快闪产品则无法被识别。图13A提供一种增强方法可以覆盖偏僻个案。快闪芯片可以由根据它们不同的时序分为两种类型:一种小区块类型的快闪与一种大区块类型的快闪。小区块类型的快闪在接收指令之后会拉下准备/忙碌#(”ready/busy#”)讯号。大区块类型的快闪不会用这种方式操作,大区块类型快闪会拉起ready/busy#讯号直到接收确认指令(十六进制的指令”0 x 30”)。因此,控制器可以根据此差异来判断是否快闪为小区块或大区块类型(例如,通过确认是否需要指令0 x 30以看到快闪拉下ready/busy#)。一旦控制器产生小区块或大区块类型的快闪,它可以从快闪正确地读取数据,使得它可以安装开机程序代码(Boot Code)206、控制器程序代码(Controller code)208或控制器程序代码208A2而没有任何问题。
图14为根据本发明的一个实施例所提供的一种使用厂商主机程序化快闪记忆卡的方法的流程图。当在闪存系统(或快闪记忆卡)中侦测到开机重设,中断服务(interrupt servicer outine)例行程序就会被执行,如步骤1402。开机重设的侦测是当闪存系统被连接到厂商主机时,或是当闪存系统已经被连接到主机系统后主机电源开启时。在闪存系统中的电压感应器会检查输入电源电压是否升高到操作电压。通用的重设会同步化所有在闪存系统的状态机制并初始化所有的闪存控制器本地缓存器(local registers)为系统内定值(default values)。而当PLL稳定时就移除掉重设讯号。
厂商主机发出第一指令(”CMD0”),如步骤1404,并初始化所有在闪存系统中的状态主机。
接着,检查本地缓存器以确保本地缓存器为正确运作,如步骤1406。假如本地缓存器检查失败,就会抛弃并纪录其失败。然后,读取闪存装置ID,如步骤1410。ROM程序代码会用来指示CPU去传送闪存指令给输入/输出接口电路。接续,本地控制缓存器将会被安装以正确作业,如步骤1412。这会在读取闪存装置的参数时实现。参数可根据不同类型的闪存装置而包含不同的地址阶段周期与大小排列缓存器(sizing registers)。假如快闪ID可以被发现在控制器中目前的ID列表,步骤1410与步骤1412可以通过于图13A中的快闪类型识别方式来加强。
在步骤1410与步骤1412之后,闪存系统会进入一个指令等待状态,保持对于更多的指令(instructions)来做反应,如步骤1414。这些指令可包含特别的厂商主机检查或指令。厂商主机使用一种特殊的指令开始程序化。假如接受特殊的厂商检查,如步骤1416,闪存系统会回答闪存装置类型给厂商主机,如步骤1418。闪存类型是通常以4字节来提供。厂商主机使用此数据来决定闪存装置的系统数据的物理地址,并将此数据写入数据库映像文件。接着,厂商主机会传送此数据文件给闪存系统,如步骤1420。此数据是配合特殊类型的闪存装置并包含有一数据库映像文件、一记忆卡非易变性缓存器、数个坏区块地图以及数个操作缓存器。操作缓存器包含开机与控制程序码起始地址(startingaddresses)、反转指针(flip pointers)与闪存装置的容量。
假如接收一正常指令,如步骤1422,快闪记忆卡会进到正常操作模式,如步骤1424。假如不接收正常指令,则传回前置硬码(pre-hardcode)VDD电压情况,如步骤1426。设定最后的位,它是一个忙碌位。最后位表示闪存系统是「忙碌(”busy”)」(设定)或者是「未备妥(”not ready”)」(清除)。接着,会判定是否控制程序码引擎正在运行,如步骤1428。然后,除非控制程序码引擎先运行,忙碌位会被清除,如步骤1430。
在步骤1420之后,快闪记忆卡会进到程序化模式,如步骤1440。接下来的步骤会针对程序化闪存装置。首先,建立一基本分割区(primary partition),并且以档案结构数据来格式化闪存装置,在步骤1442。此档案结构数据可包含一主区块纪录(master block record;MBR)、分割区块纪录(partition block record;PBR)以及初始开机数据库与FAT16数据。特定的档案结构数据需求将和主机的操作系统的类型有关(譬如,Windows、Linux或Mac OS)。
接着,执行写入/读取测试,如步骤1444。在测试期间,坏区块被识别出来并接续加以处理,如步骤1446。然后,判定是否坏区块的数量超过了特定值,如步骤1448。假如坏区块的数量超过特定值,会产生一失败报告,如步骤1450。假如坏区块的数量未超过特定值,则建立一坏区块地图,如步骤1452。然后,抹除使用者数据,如步骤1454。储存系统数据与非易变性缓存器的扇区(sections)被抹除。然后,当完成程序化时就标记在厂商主机,如步骤1456。
图15为根据本发明的一个实施例所提供的一种使用闪存程序器(programmer)程序化闪存的方法的流程图。在此特殊的实施例中,快闪程序器为取代了厂商程序器的Jedec闪存程序器。Jedec闪存程序器直接程序化闪存装置。每个闪存装置具有由Jedec闪存程序器所处理的唯一的程序代码排列顺序。
首先,执行例行中断服务,如步骤1502。例行中断服务是和图14的步骤1402-1420相同。接着,程序化闪存最后的可取得的区块,如步骤1504。闪存装置的容量在程序化的前是已知的。接着,选择区块地址,如步骤1506。接着,一个地址决定给一非挥发(NV)性记忆卡缓存器地址,如步骤1508。接着,对于复数NV缓存器进行程序化,如步骤1510。这些缓存器包含一记忆卡ID(CID)缓存器与一记忆卡特定数据(card specific data;CSD)缓存器。记忆卡ID(CID)缓存器包含一个ID的数个扇区、厂商ID(MID)、原始设备厂商ID(OEMID或OID)、产品名称(PNM)、产品版本(PRV)以及序号、数据、使用来总和检查的CRC7值。CSD缓存器会提供如何存取记忆卡内容的数据。所有初始的系统内定值是储存在三个闪存页面中。只读资料则是一个页面。使用者一次写入(write-once)字段是位于不同页面,使得第二次的程序化无法存取此页面,一个例子是记忆卡档案格式化或一次程序写入(one-time-programming;OTP)。
接着,将操作控制缓存器(operation control register;OCR)予以程序化,如步骤1512。为了能正确运作,此OCR包含了主机必需知道的记忆卡电压窗口。譬如,假如主机只支持3.3伏特(V),记忆卡OCR会通知快闪记忆卡为一种5V装置,记忆卡就应所述的不会在此系统中运作。
OCR缓存器的程序化是通过使用CMD27指令来达到,OCR缓存器的地址为部份闪存物理地址,其可利用韧体来得知,但不可由末端使用者来存取。
相关记忆卡地址(RCA)缓存器与驱动器阶段缓存器(DSR)是以系统内定值加以程序化,可以在之后调整。为了较早的闪存程序化,一个在闪存单元中的逻辑一(或”1”)是定义作系统内定值。例如,假如最初的记忆卡电源启动(power up),则”1”是忙碌,假如记忆卡是以电源启动顺序完成,则”0”是未备妥。
接着,对于预先决定的闪存数据库映像文件进行程序化,如步骤1514。数据库映像文件储存有闪存的参数并且是有组织化的为一个页面,为了容易存取。闪存接口电路针对指令译码程序(command decoding)与存取时间(access timing)使用数据库映像文件。
接着,针对开机程序代码与控制程序码,地址进入点(address entry points)被予以决定,如步骤1516。接着,决定开机程序代码的地址,如步骤1518。然后,程序化开机程序代码在闪存中,如步骤1520。储存开机程序代码的两个复本。接着,初始化双态开机程序代码地址指针,如步骤1522。接着,设定DMA引擎与开机缓存器,如步骤1524。使用DMA引擎在正常程序代码重新定位程序期间。利用定义三个单元来帮助此特征:闪存物理起始地址缓存器;传输的页面长度缓存器;与针对开机程序代码的主要内存起始地址。
接着,程序化控制程序码在闪存中,如步骤1526。储存至少两个控制程序码的复本。接着,对于双态控制程序码地址指针进行初始化,如步骤1528。接着,设定DMA引擎与控制缓存器,如步骤1530。使用DMA引擎在正常程序代码重新定位程序期间。定义三个单元用来帮助此特征:闪存物理起始地址缓存器;传输的页面长度缓存器;与针对控制程序码的主要内存起始地址。
接着,决定是否程序化失败,如步骤1532。假如程序化失败,最后的区块是以坏区块标志(”0”)来标示,如步骤1534。接着,区块地址是由一来减少,如步骤1536,且程序从步骤1506开始再一次。假如在步骤1532中,程序化没有失败,厂商程序化就完成了。
图16为根据本发明的一个实施例所提供的一种将闪存开机的方法的流程图。首先,实行电源开机重设,如步骤1602。这会在快闪记忆卡连接到厂商主机时发生。接着,重新设定记忆卡CPU会造成一种发布重设地址(issued resettingaddress)跳线ROM程序代码到主例行程序,如步骤1604。接着,由发出一”FFh”指令,控制器会重设快闪。然后,读取磁盘ID,如步骤1606。这个步骤是由”90h”来初始化。接着,”00h”地址阶段会被初始化,如步骤1610。接着,假如CE#是活动的,厂商程序代码会被闪存装置送回,如步骤1610。然后,按照送回的厂商程序代码,会照着各个流程图支线进行。
接着,读取磁盘程序代码,如步骤1612a或1612b,按照厂商程序代码(例如,厂商S或厂商T)。在读取所有的磁盘程序代码数据之后,传送厂商主机以选择正确数据库映像文件给闪存装置,如步骤1614。接着,厂商主机将闪存装置的数据写入本地易变性缓存器,如步骤1616。厂商主机也写入正确的数据库映像文件到闪存装置最后的区块。
ROM建立操作缓存器。一旦缓存器设定好,输入/输出接口电能可以正常运作来帮助厂商主机下载数据库映像文件到闪存装置。短的ROM程序代码是被预期可以帮助快闪记忆卡控制器来识别闪存装置。
图17为根据本发明的一个实施例所提供的一种在装运的前测试闪存的方法的流程图,首先,初始化厂商主机,如步骤1702,厂商主机将作为测试主机的用,厂商主机可以是一台具备有卡片阅读机或是通用序列总线(Universal SerialBus;USB)、个人计算机内存卡国际协会(personal computer memory cardinternational association;PCMCIA)接口的个人计算机;接着,快闪记忆卡会被连接到厂商主机上,如步骤1704,为了产生容量,多数快闪记忆卡可以被插在测试主机上来增加测试的效率,然后记忆卡进行侦测测试,如步骤1706,接着,如果侦测到失败,如步骤1708,快闪记忆卡将会被标示为瑕疵品(defective),如步骤1710,如果没有侦测错误,则快闪记忆卡会被进一步设定,如步骤1712,然后快闪记忆卡会进行低阶的格式化(low-level format),接着,如果侦测到设定失败,如步骤1714,则快闪记忆卡将会被标示为瑕疵品,如步骤1710,如果没有侦测到失败,则将会进行闪存的格式化测试,如步骤1716。
快闪记忆卡可以被格式化成任何种特别档案系统,举例来说,窗口98(Windows98)需要采用FAT16系统,假如扇区大小为512字节的长度,因为是64K丛集涵盖了整个FAT16的地址范围,故整个档案储存容量在128M字节下,而窗口2000(Window2000)系统需要FAT32系统用来储存更大的容量。为了确保档案可被读取的能力,FAT16为了往后的兼容性设定一个预设档案的系统,测试程序建立了分割扇区表并且予以执行格式化。接着,若是侦测到格式化失败,如步骤1718,快闪记忆卡将会被标示为瑕疵品,如步骤1710,然后会检查快闪记忆卡的容量是否及其规格书上吻合,如步骤1720,如果不吻合,快闪记忆卡将会被标示为瑕疵品,如步骤1710,如果判定快闪记忆卡的容量吻合,则会进行快闪记忆卡的功能执行测试,如步骤1722。
接着,如果侦测到失败,如步骤1724,快闪记忆卡将会被标示为瑕疵品,如步骤1710;如果并没有侦测到任何失败,则会在快闪记忆卡上写入序号(serialnumber),如步骤1726。然后会检查快闪记忆卡的初始容量,如步骤1728,在运送的前,快闪记忆卡的所有容量都要被清空而可供使用者来使用,因此,需要实行清除整个记忆卡的动作,来重新设定所有的使用者可以存取单元/位到1(”1”s),除了必要的档案配置表或缓存器等。
接着,如果快闪记忆卡被判定为并非空的,如步骤1730,快闪记忆卡同样也被标示为瑕疵品,如步骤1710;如果快闪记忆卡是空的,则快闪记忆卡的控制与状态缓存器(control and status register;CSR)、记忆卡身份证明(cardidentification;CID)与操作控制缓存器(operation control register;OCR)都会被检查,如步骤1732。
接着,如果检查记忆卡身份证明与操作控制缓存器并不吻合其规格书,如步骤1734,同样快闪记忆卡也会被标示为瑕疵品,如步骤1710;如果判定吻合,则接续程序完成,快闪记忆卡检查完成同时为良好的快闪记忆卡。
图18为根据本发明的一个实施例所提供的一种闪存结构的示意图,软件结构包含了精简的只读存储器程序代码(short ROM code)1802、开机程序代码1804与控制程序码1806,当快闪记忆卡开始时,就会选择两个模式中之一个,所谓的两个模式,一个模式是当闪存装置可以如同上述的程序化的程序化的模式,另一个模式是当快闪记忆卡接受一个使用者开机序列的一个正常模式。
可通过快闪记忆卡所接受到指令来决定所处的模式,厂商主机会发布指令来使快闪记忆卡处在程序化的模式。当处在程序化的模式,闪存影像档案可以下加载快闪记忆卡中的闪存,使用者主机(譬如为数字相机)会发布指令使快闪记忆卡处在正常模式,而快闪记忆卡可以接受一个使用者开机序列。
为了使只读存储器中的程序代码数量最小化,只读存储器将可支持简单的闪存扇区写入程序以及基本响应至厂商主机。
在厂商主机决定了闪存装置的种类后,在快闪记忆卡被运送到末端使用者前,影像数据文件会被写入预定闪存的最终区块内;另外,如果厂商已经知道了闪存的模式,则影像数据文件将可以直接被写入闪存中,而不需要事先决定闪存的模式。
处在正常模式下,当记忆卡连接到使用者主机时,将会进行开机重设,在开机重设之后,只读存储器程序代码会检查快闪记忆卡写入、读取所有的易变缓存器,然后发布闪存装置身份识别码来针对闪存取得操作来填入本地闪存接口缓存器,闪存装置身份识别码将会被读取,而参数会被储存在快闪记忆卡的本地操作注册区。
开机程序代码需要被直接内存存取(direct memory access;DMA)下载到主存储器(随机存取内存),直接内存存取下载将可快速存取闪存装置,因为开机程序代码与控制程序码都储存在闪存装置内,所以只读存储器程序代码将可以相当简短。中断处理程序(interrupt service routine;ISR)保留所有进入点的地址,并支持所有在程序化模式与正常模式的指令,在只读存储器程序代码的末端,在必要的系统操作程序上将控制传达到开机程序代码。
开机程序代码由闪存装置的保留区块下载复杂的控制程序码到主存储器,然后控制就会传达到控制程序码。因为开机程序代码与控制程序码都由主随机存取内存内取得,故开机程序代码引擎会降低只读存储器的大小,并且使快闪记忆卡可以执行的更快。
控制程序码引擎也可处理所有不同针对快闪记忆卡的各种协议的指令。
图19为根据本发明的一个实施例所提供的一种在常态操作期间将快闪记忆卡电源恢复的方法的流程图;再通过厂商主机程序化后,快闪记忆卡将可以被使用者在正常模式下使用,在初始的快闪记忆卡正常模式下,快闪记忆卡组件已经被运送前的程序化,而快闪记忆卡的模式则储存在快闪记忆卡的本地快闪缓存器(local flash register)。
首先,直接内存存取引擎的本地复制被设定,如步骤1902,接着直接内存存取引擎会被初始化,如步骤1904,因为一部份的直接内存存取被初始化了,所以本地缓存器就会被程序化,然后开机程序代码会由闪存中被读取,并且写入主存储器中,如步骤1906,直接内存存取引擎会将开机程序代码传送到主存储器,因为开机程序代码的一部份被读取了,所以开机程序代码起使物理扇区地址(starting physical sector address)与扇区长度也会被读取。然后,会判断传送是否已经完成,如步骤1908,如果尚未完成,则重复步骤1906直到完成;若判断传输已经完成,开机程序代码的总和检查值(CRC16)会被检查来判断是否正确,如步骤1910,若是不正确,快闪记忆卡将会进入除错状态(error handlerstate),如步骤1912,然后反转指针会固定来给予备份复制开机程序代码至闪存,如步骤1914,接着,直接内存存取程序会重复开始在步骤1904,任何错误的纪录都会增加未来确认是败次数的计数器上,如果步骤1910中总和检查值正确,则开机程序代码将会被作动,如步骤1916。
接续,开机程序代码会由主存储器中被执行,如步骤1918,所有的区块都会被扫瞄来找去坏区块,并建立坏区块地图,如步骤1920,根据扫瞄的完成,使用者数据的容量也会被闪存系统得知,并储存在非易变性缓存器;坏区块地图位于快闪记忆卡中的最后一个区块,而当使用超过一个内存装置时,则会存放在第一个闪存装置中。接着,坏区块会被略过并记录在坏区块地图内,如步骤1922,接着决定是否坏区块数量超过了预定容忍(predetermined tolerance)的上限,如步骤1924,如果是,快闪记忆卡会被指定为坏掉,并发出警告,如步骤1926;如果没有超过,则由闪存装置中读取控制程序码,并储存在主存储器中,如步骤1928,接着检查控制程序码的总和检查值(CRC16)会被检查来判断是否正确,步骤1930,若是总和检查值不正确,控制将会被传达到开机程序代码引擎来控制程序码引擎,如步骤1934,如果判断正确,则流程会回去,并且控制程序码的备份复制会被加载主存储器中,如步骤1932,而来检查备份复制的总和检查值是否正确,如步骤1930。在闪存系统开机且加载控制程序码至主存储器后,被开机程序代码所占据之内存的空间将会释放做为其它用途,如步骤1936,因此,后续执行控制程序码将会更有效率。
图20为根据本发明的一个实施例所提供的一种在正常操作期间执行控制程序码的方法的流程图。一旦控制程序码引擎被初始化,操作控制缓存器(operationcontrol register;OCR)中之一个忙碌位(busy bit)将会被清除,如步骤2002。接着,控制程序码引擎等待并且准备接收主机进一步的指令,如步骤2004;接着会判断是否等待时间超过预定的时间暂停限制,如步骤2006,若是超过,在接收到新的主机指令前,如步骤2010,将会初始化省电状态(power saving state),如步骤2008。若尚未超过,控制程序码引擎将会继续等待,直到等到时间超过预定的时间暂停限制,或是接收到主机的指令,如步骤2010。
任何接收到的指令都会触发一个适当的例行性中断服务的程序,如步骤2012,接着,此一指令会被译码使得控制程序码引擎可以执行特定的工作任务(譬如数据转移,身份证明辨识等),如步骤2014;另一个本发明的技术特征在于,使用者可在外域操作(field operation)过程中,更新开机程序代码或是控制程序码,此一技术特征相当有价值,尤其是快闪记忆卡运送之后,开机程序代码或控制程序码当发生或发现错失(bug)时。如同的前所描述,开机程序代码与控制程序码储存在闪存的第二备份复制,以免在更新过程中产生错误。
前述步骤2010中,主机指令可以包含特殊的更新指令,如步骤2016,更新开机程序代码或是控制程序码的复制来源,可以使用一台个人计算机由各种来源下载,譬如为通过网络。在此一特殊的实施例中,更新的程序代码包含有特殊的更新指令,利用反转指针(flip pointer)指示到目前复制的程序代码的位置,如步骤2018。
接着,目前复制的程序代码的总和检查值(checksum)与来源复制比较,如步骤2020,并且,判断两总和检查值是否相匹配,如步骤2022,若是两者匹配,表示目前的复制已经是最新,无需要进一步更新,若是两者不相符合,翻转指针用来指示程序代码的备份复制,如步骤2024。接着,适当的复制被更新,如步骤2026,接续判断更新动作是否已经完成,如步骤2028,如果尚未完成,则重复步骤2026,如果更新已经传输完毕,则总和检查值将再度被检查来确定乃为正确的总和检查值,如步骤2030,一旦发现不正确,在更新程序试图结束前,此一更新的程序将被标示为失败(failure),如步骤2034,而翻转指针并非双态(toggled),会保持预备重复更新的程序直到稍后接到使用者的判断。若总和检查值正确无误,在更新程序完成前,翻转指针就会准备下一笔更新,如步骤2032。
由于必须处理开机程序代码与控制程序码的更新程序,故控制程序码可以非常大,然而,因为控制程序码储存在闪存中,而非固定的只读存储器,因此可以相当有弹性、有价值地支撑此一技术领域。
举例来说,程序代码可以通过如图19、图20的总和检查值来检查,且其为CRC16兼容的算法(CRC16compatiblealgorithm),此仅为一个可以实施的方式,其它任意程序代码的检查方法都可以采用,譬如每一个512字节数据可以保护并通过错误更正程序代码(Error Correction Code;ECC)算法来检查。一旦被侦测出的错误更正程序代码的错误位的数量低在能力或是达到了可靠度的临界值,控制器可以视为「程序代码错误」,如步骤1910、步骤1930、步骤2030。
因为并无任何写入保护的硬件被定义在多媒体记忆卡(Multi-Media Card;MMC)的说明书中,记忆卡中所储存的数据具有MMC格式参数将会附带移除,此将导致个人或是生意上程序的数据遗失,此一实施例描述MMC将可在功能上达到安全数字记忆卡(Secure Digital;SD)的型态参数,当SD记忆卡上可获得写入保护的功能,在主机磁盘(图中未示)内部建立有电子与机构的接触,并在记忆卡插入时启动写入保护功能,以及写入保护切换器设置在记忆卡的适当位置。
SD记忆卡的协议支持额外的指令,譬如为ACMD41,其为MMC协议所无法达到,在开启记忆卡身份证明辨识程序时,使用者主机通过额外的指令侦测得知其中之差异,且可分辨出此差异的身份证明状态而不会混淆。
根据本发明的较佳实施例,电子数据快闪记忆卡的接口电路可以包含有通用序列总线(Universal Serial Bus;USB)、多媒体记忆卡(Multi-Media Card;MMC)、安全数字记忆卡(Secure Digital;SD)、MS记忆卡(Memory Stick;MS)、紧密快闪记忆卡(Compact Flash;CF)、外围装置连接快递(PCI-Express;PCIE)、整合式驱动电子(Integrated Drive Electronics;IDE)与序列进阶技术接附(SerialAdvanced Technology Attachment;SATA)接口电路。
根据前述所公开的系统与方法,本发明具备有数种优点,举例来说,可以在不变动闪存控制器的下,启动开机程序代码、控制程序码的更新程序,同时,其也使得闪存控制器可以支持数种不同品牌、种类的闪存装置。另外,因为开机程序代码与控制程序码储存在闪存装置、而非只读存储器中,使得只读存储器中的程序代码最小化,因而使得只读存储器可以微小化。
根据本发明所公开各种实施例的一种系统是可提供一种闪存系统,闪存系统在闪存中储存有开机程序代码与控制程序码,而非一般的只读存储器,因此,可以再不变动闪存控制器的下,更新开机程序代码与控制程序码,前述部分细节的描述已经公开了利用算法与在计算机内存中位数据的操作的符号陈述(symbolicre presentations),这些算法语符号陈述使得熟悉数据处理领域的人,得以了解并据以有效地传达给其它熟悉此领域的人士。在此的算法,表达出一致性的顺序来达到预期的结果,此些操作乃需要大量重复的物理性操作,通常,虽然可能并非一定,这些数量采用电子、磁性讯号而能具以储存、转移、结合、比对或是其它操作的型态,其通常使用各种如位的讯号、值、组件、符号、文字、名称、数字或是类似的方式来方便证明;当然这也是因为乃是目前最共通使用的方式。
然而,必须特别注意的是,所有这些用来描述本发明类似的名称、数量,只是用来便于标示、陈述本发明;除非特定的定义,否则如同上述所讨论的其也只是用来作为公开描述的用,诸如讨论到计算机系统中处理动作所使用的处理、运算、计算、决定或是显示等,或是其余应用在类似电子计算装置上操作、数据转移所呈现在计算机系统注册区、内存的物理性(电子性)数量或是其余种类信息储存、传送或是显示等装置。
本发明实施例中也公开关于执行此一操作的装置,此装置可能是根据此一目的需求的特殊装置,或是也可以为包含一般广泛应用目的并通过计算机程序来作用、重新设定并储存在计算机中的计算机,如此的计算机程序可以储存在计算机可读取的媒体中,譬如为任意种类的磁盘,诸如软性磁盘(floppy disks)、光学性盘片(optical disks)、光驱(compact disc,read-only memory;CD-ROMs)、磁性光盘片(magnetic-optical disks)、只读存储器(read-only memories;ROMs)、随机存取内存(random access memories;RAMs)、抹除式只读存储器(erasableROM;EPROM)、电子抹除式只读存储器(electrically erasable ROM;EEPROM)、磁性或是光学记忆卡或是其它任意种类的适用在储存电子指令的储存媒体,并且可以耦接在计算机系统的总线;当然,也不限制在此些种类的储存媒体。
在此所呈现的算法大体上来说并不涉与到任何特别的计算机或是其它装置,任何种类共同目的的系统都可以根据本发明的公开来使用此程序,或是也可以根据上述方法需求提供专属的装置来执行,此针对各种系统的需求结构根据下面所描述的将会更加清楚。此外,本发明所公开的实施例并没有利用任何程序语言来予以标示,任何种类的程序语言都可以用来实施本发明此处所描述的实施例。
一种机器可读取的媒体可以包含有任何种类的机构用来储存、传输信息并采用机器(譬如为计算机)可以读取的格式,举例说,机器可读取的媒体可以包含有只读存储器(read-only-memory;ROM)、随机存取内存(random accessmemory;RAM)、磁性磁盘记录媒体(magnetic disk storage media)、光学记录媒体(optical storage media)、闪存装置(flash memory devices)以及电子性、光学性、声音性或是其它种类格式的传播讯号(propagated signals),譬如为载波、红外线讯号、数字讯号等等。
以上所述仅为本发明的较佳实施例,对本发明而言仅仅是说明性的,而非限制性的。本专业技术人员理解,在本发明权利要求所限定的精神和范围内可对其进行许多改变,修改,甚至等效,但都将落入本发明的保护范围内。

Claims (10)

1、一种电子数据快闪记忆卡,用以建立一提供一主机系统存取的通信链接,其特征在于:所述的电子数据快闪记忆卡包含有:
一卡体;
一闪存装置,装设在所述的卡体上,所述的闪存装置包含复数个非易变性内存单元,所述的这些非易变性内存单元包含一第一区块,用以储存一指针,所述的指针指向一第二区块,所述的第二区块具有复数预先决定的非易变性内存单元;
一输入/输出接口电路,装设在所述的卡体上,用以建立和所述的主机系统的通信;以及
一闪存控制器,装设在所述的卡体上,并电连接到所述的闪存装置与所述的输入/输出接口电路。
2、根据权利要求1所述的电子数据快闪记忆卡,其特征在于:所述的闪存装置包含一第一闪存装置与一第二闪存装置,所述的闪存控制器还包含一易变性主存储器电路。
3、根据权利要求1所述的电子数据快闪记忆卡,其特征在于:所述的闪存控制器包含8051、8052、80286、RISC、ARM、MIPS与数字讯号处理器其中之一,且所述的输入/输出接口电路、一重设电路是积体设置或部份积体设置在一单一多芯片封装或在一单一集成电路芯片上,并包含通用序列总线、安全数字记忆卡、多媒体记忆卡、紧密快闪记忆卡、MS记忆卡、外围装置连接快递、整合式驱动电子与序列进阶技术接附接口电路。
4、一种电子数据快闪记忆卡控制方法,其是通过上述的电子数据快闪记忆卡实现的,其特征在于,其选择性执行下列其中之一模式
一程序化模式,所述的闪存控制器启动所述的输入/输出接口电路接收所述的主机系统的开机程序代码数据与控制程序码数据,且将所述的开机程序代码数据与所述的控制程序码数据至少其中之一储存在所述的闪存装置的预先决定相关的非易变性内存单元中,并经由所述的第一区块的所述的指针予以寻址;
一重设模式,所述的闪存控制器从所述的相关的非易变性内存单元去读取所述的开机程序代码数据与所述的控制程序码数据至少其中之一,并使所述的输入/输出接口电路和所述的主机系统依照以所述的开机程序代码数据与所述的控制程序码数据为基础的标准协议进行交换数据;以及
一程序代码更新模式,将更新的开机程序代码数据与更新的控制程序码数据至少其中之一,写入所述的闪存装置内。
5、根据权利要求4所述的电子数据快闪记忆卡控制方法卡,其特征在于:所述的闪存控制器支持所述的第一闪存装置与所述的第二闪存装置进行双信道并行存取或互动存取至少其中之一,并将所述的开机程序代码数据与所述的控制程序码数据的两者储存在所述的闪存装置中;所述的第一区块是位于所述的闪存装置的起始端,以及其中所述的第二区块是位于所述的闪存装置的任一地址,假若所述的第一区块并未正常作用,则所述的第二区块是位于所述的闪存装置的位置范围的末端。
6、根据权利要求4所述的电子数据快闪记忆卡控制方法,其特征在于:所述的闪存控制器储存所述的开机程序代码数据的第一复本与第二复本在所述的闪存装置中,且所述的闪存控制器只更新在所述的闪存装置中的所述的开机程序代码数据的第一复本,并使用所述的开机程序代码数据的第二复本做为一备份复本。
7、根据权利要求4所述的电子数据快闪记忆卡控制方法,其特征在于:所述的闪存控制器储存所述的控制程序码数据的第一复本与第二复本在所述的闪存装置中,且所述的闪存控制器只更新在所述的闪存装置中的所述的控制程序码数据的第一复本,并使用所述的控制程序码数据的第二复本做为一备份复本;所述的闪存控制器依照从一只读存储器所读取的复数指令,将所述的开机程序代码数据与所述的控制程序码数据至少其中之一从所述的闪存装置转移到所述的易变性主存储器。
8、根据权利要求7所述的电子数据快闪记忆卡控制方法,其特征在于:将所述的开机程序代码数据与所述的控制程序码数据至少其中之一从所述的闪存装置转移到所述的易变性主存储器的过程是:利用直接内存存取方式将所述的开机程序代码数据与所述的控制程序码数据至少其中之一从所述的闪存装置转移到所述的易变性主存储器。
9、根据权利要求8所述的电子数据快闪记忆卡控制方法,其特征在于:所述的闪存控制器在转移所述的控制程序码数据到所述的易变性主存储器之前,将所述的开机程序代码数据转移到所述的易变性主存储器,以及在转移所述的控制程序码数据到所述的易变性主存储器之后,将由所述的开机程序代码数据所占据的易变性主存储器空间释放出来。
10、一种电子数据快闪记忆卡决定闪存装置的类型的方法,其是通过上述的电子数据快闪记忆卡实现的,其特征在于,其包括的步骤为:
传送一读取指令到所述的闪存装置,其中假若所述的闪存装置在接收到所述的读取指令之后下拉一读取/忙碌#讯号线,所述的闪存装置是搭配一小区块类型的闪存装置;以及
传送一确认指令到所述的闪存装置,其中假若所述的闪存装置在接收到所述的读取指令的前持续下拉所述的读取/忙碌#讯号线,所述的闪存装置是搭配一大区块类型的闪存装置。
CNA2008101004803A 2007-09-28 2008-06-16 电子数据快闪记忆卡、控制方法和决定闪存装置类型方法 Pending CN101399076A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/864652 2007-09-28
US11/864,652 US7676640B2 (en) 2000-01-06 2007-09-28 Flash memory controller controlling various flash memory cells

Publications (1)

Publication Number Publication Date
CN101399076A true CN101399076A (zh) 2009-04-01

Family

ID=39275875

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101004803A Pending CN101399076A (zh) 2007-09-28 2008-06-16 电子数据快闪记忆卡、控制方法和决定闪存装置类型方法

Country Status (3)

Country Link
US (1) US7676640B2 (zh)
CN (1) CN101399076A (zh)
TW (1) TW200915090A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135939A (zh) * 2011-11-29 2013-06-05 广达电脑股份有限公司 存取装置
CN103679059A (zh) * 2012-08-29 2014-03-26 珠海扬智电子科技有限公司 安全开机方法及电脑系统
CN109815171A (zh) * 2017-11-21 2019-05-28 西部数据技术公司 用于存储器控制器发现供应商特定非易失性存储器设备的方法和装置
TWI692689B (zh) * 2017-12-28 2020-05-01 慧榮科技股份有限公司 記憶卡控制器、記憶卡、使用於記憶卡控制器的方法以及連接至記憶卡的電子裝置
CN111367826A (zh) * 2018-12-26 2020-07-03 旺宏电子股份有限公司 闪存装置及其控制方法
CN111581012A (zh) * 2019-02-15 2020-08-25 宇瞻科技股份有限公司 固态硬盘
CN113918082A (zh) * 2020-07-08 2022-01-11 慧荣科技股份有限公司 计算机可读取存储介质、配置可靠命令的方法及装置

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003194A1 (fr) * 2001-06-27 2003-01-09 Sony Corporation Dispositif a circuit integre, dispositif de traitement de l'information, procede de gestion de memoire de support d'information, terminal mobile, dispositif a circuit integre a semi-conducteur, et procede de communication par terminal mobile
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
GB0405795D0 (en) * 2004-03-15 2004-04-21 Tom Tom B V Navigation device displaying travel information
KR101197556B1 (ko) * 2006-01-09 2012-11-09 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
KR100746036B1 (ko) * 2006-02-23 2007-08-06 삼성전자주식회사 플래시 메모리를 제어하는 장치 및 방법
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
JP2008293076A (ja) * 2007-05-22 2008-12-04 Seiko Epson Corp エラー判定プログラム、エラー判定方法、及び、電子機器
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
TWI381387B (zh) * 2008-02-21 2013-01-01 Phison Electronics Corp 儲存裝置、控制器及其資料存取方法
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US9477587B2 (en) * 2008-04-11 2016-10-25 Micron Technology, Inc. Method and apparatus for a volume management system in a non-volatile memory device
US9946667B2 (en) * 2008-11-12 2018-04-17 Microchip Technology Incorporated Microcontroller with configurable logic array
US20100146239A1 (en) * 2008-12-08 2010-06-10 Infinite Memories Ltd. Continuous address space in non-volatile-memories (nvm) using efficient embedded management of array deficiencies
CN101751338B (zh) * 2008-12-15 2012-03-07 中芯国际集成电路制造(上海)有限公司 数据存取控制装置及数据存取方法
US20100180182A1 (en) * 2009-01-09 2010-07-15 Seagate Technology Llc Data memory device and controller with interface error detection and handling logic
TWI420528B (zh) * 2009-03-11 2013-12-21 Silicon Motion Inc 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器
US9164914B1 (en) * 2009-04-07 2015-10-20 Marvell World Trade Ltd. Multiple port routing circuitry for flash memory storage systems
KR101573722B1 (ko) * 2009-04-20 2015-12-03 삼성전자주식회사 비휘발성 메모리 장치 및 컨트롤러를 포함하는 메모리 시스템
US8112682B2 (en) * 2009-04-23 2012-02-07 Sandisk Il Ltd Method and device for bad-block testing
US20100293309A1 (en) * 2009-05-13 2010-11-18 Yun-Ching Lin Production Tool For Low-Level Format Of A Storage Device
US8245024B2 (en) 2009-08-21 2012-08-14 Micron Technology, Inc. Booting in systems having devices coupled in a chained configuration
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8443135B2 (en) * 2009-10-27 2013-05-14 Texas Instruments Incorporated Exhaustive parameter search algorithm for interface with nand flash memory
JP2011141709A (ja) * 2010-01-07 2011-07-21 Sanyo Electric Co Ltd アクセス制御装置
TWI490780B (zh) * 2010-02-05 2015-07-01 Nat Applied Res Laboratoires 嵌入式系統及其存取資料方法
US20110258356A1 (en) * 2010-04-15 2011-10-20 I/O Interconnect, Ltd. Host apparatus and operation system and control method thereof
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US20120036301A1 (en) * 2010-08-03 2012-02-09 Caspole Eric R Processor support for filling memory regions
US9055687B2 (en) 2010-08-20 2015-06-09 Rockwell Automation Technologies, Inc. Input/output circuits and devices having physically corresponding status indicators
KR101649115B1 (ko) * 2010-11-11 2016-08-19 삼성전자주식회사 디스플레이 장치 및 이에 적용되는 마이컴 코드 업데이트 방법
KR20120065576A (ko) * 2010-12-13 2012-06-21 (주)다윈텍 엠엘에이의 라이트 속도를 향상시키기 위한 데이터 라이트 장치 및 그 방법
JP2012128769A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
CN102081538A (zh) * 2011-01-11 2011-06-01 上海华勤通讯技术有限公司 手机处理器兼容多种芯片的方法
CN102692578B (zh) * 2011-03-21 2016-04-27 纬创资通(昆山)有限公司 用来测试具有多种存储卡规格的读卡器的测试卡
EP2745203B1 (en) * 2011-08-19 2016-09-21 Kabushiki Kaisha Toshiba Information processing apparatus
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9116620B2 (en) * 2011-12-30 2015-08-25 Sandisk Technologies Inc. Controller and method for memory aliasing for different flash memory types
US9046915B2 (en) * 2012-02-27 2015-06-02 Advanced Micro Devices, Inc. Circuit and method for initializing a computer system
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
KR20130139604A (ko) 2012-06-13 2013-12-23 삼성전자주식회사 복수의 메모리 칩을 구비한 메모리 장치, 그 인증 시스템 및 인증 방법
ES2837801T3 (es) 2012-08-07 2021-07-01 Nokia Technologies Oy Control de acceso para memoria inalámbrica
US9336395B2 (en) * 2013-01-25 2016-05-10 Hewlett-Packard Development Company, L.P. Boot driver verification
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9934045B1 (en) * 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US10120694B2 (en) * 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
EP2989547B1 (en) 2013-04-23 2018-03-14 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
CN105144185B (zh) 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 验证控制器代码和系统启动代码
US9880908B2 (en) * 2013-04-23 2018-01-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
US8966137B1 (en) * 2013-08-04 2015-02-24 Transcend Information, Inc. Storage device and memory accessing method for a storage device
KR102128472B1 (ko) * 2014-02-17 2020-06-30 삼성전자주식회사 인-스토리지 컴퓨팅 동작들을 수행할 수 있는 스토리지 장치, 이의 동작 방법, 및 이를 포함하는 시스템
US9354816B2 (en) * 2014-04-08 2016-05-31 Seagate Technology Llc Read policy for system data of solid state drives
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9312010B1 (en) 2014-10-07 2016-04-12 Sandisk Technologies Inc. Programming of drain side word line to reduce program disturb and charge loss
KR102358053B1 (ko) 2014-10-28 2022-02-04 삼성전자주식회사 복수의 불휘발성 메모리 칩들을 포함하는 스토리지 장치
EP3283951B1 (en) * 2015-04-14 2020-01-29 Capital One Services, LLC System and method for secure firmware validation
CN106155734B (zh) * 2015-04-27 2020-09-18 南京中兴软件有限责任公司 一种软件版本的下载方法及装置
KR102298661B1 (ko) * 2015-04-30 2021-09-07 삼성전자주식회사 저장 장치 및 그것의 초기화 방법
KR102278811B1 (ko) 2015-12-02 2021-07-19 삼성전자주식회사 모바일 장치를 이용한 호스트 장치의 부팅 방법
CN105404475B (zh) * 2015-12-14 2018-08-21 武汉奥泽电子有限公司 MCU片内小容量flash的存储管理系统及方法
TWI615705B (zh) * 2016-05-31 2018-02-21 瑞昱半導體股份有限公司 於電腦系統中重置記憶體的方法
CN106527969B (zh) * 2016-09-21 2017-09-19 中国科学院地质与地球物理研究所 一种寿命均衡的NandFlash存储器读写方法
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
EP3388979B1 (en) * 2017-04-14 2020-07-22 Nxp B.V. Rfid integrated circuit
TWI640872B (zh) * 2017-07-07 2018-11-11 群聯電子股份有限公司 記憶體控制電路單元、記憶體儲存裝置及其控制方法
US10572166B1 (en) * 2017-09-27 2020-02-25 Amazon Technologies, Inc. Firmware download for a solid state storage card
CN109614798B (zh) * 2017-09-30 2022-12-27 华为技术有限公司 安全启动方法、装置及终端设备
US10824376B2 (en) 2017-12-08 2020-11-03 Sandisk Technologies Llc Microcontroller architecture for non-volatile memory
US10622075B2 (en) 2017-12-12 2020-04-14 Sandisk Technologies Llc Hybrid microcontroller architecture for non-volatile memory
TWI673716B (zh) * 2018-10-09 2019-10-01 慧榮科技股份有限公司 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置
KR20200087557A (ko) 2019-01-11 2020-07-21 주식회사 엘지화학 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
WO2020167283A1 (en) 2019-02-11 2020-08-20 Hewlett-Packard Development Company, L.P. Recovery from corruption
US10777240B1 (en) 2019-03-07 2020-09-15 Sandisk Technologies Llc Efficient control of memory core circuits
US10971199B2 (en) 2019-06-20 2021-04-06 Sandisk Technologies Llc Microcontroller for non-volatile memory with combinational logic
CN112214157B (zh) * 2019-07-10 2023-11-03 慧荣科技股份有限公司 主机输出输入命令的执行装置及方法及存储介质
TWI740272B (zh) * 2019-11-14 2021-09-21 和碩聯合科技股份有限公司 寫入映像檔至記憶體之裝置、方法及其非暫態電腦可讀取媒體
CN111338714A (zh) * 2020-02-19 2020-06-26 北京百度网讯科技有限公司 小程序物料处理方法、装置、电子设备和介质
US11507498B2 (en) 2020-03-05 2022-11-22 Sandisk Technologies Llc Pre-computation of memory core control signals
CN113495848A (zh) * 2020-04-08 2021-10-12 慧荣科技股份有限公司 闪存装置、闪存装置的开卡方法及计算机可读取存储介质
WO2021217410A1 (en) * 2020-04-28 2021-11-04 Arris Enterprises Llc Electronic device, system, method and program with enhanced detection of potential bricking
US11704234B2 (en) * 2020-04-28 2023-07-18 Silicon Motion, Inc. Method for accessing flash memory module and associated package
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
US11966303B2 (en) * 2022-06-02 2024-04-23 Micron Technology, Inc. Memory system failure detection and self recovery of memory dice

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
DE4401329C2 (de) 1994-01-18 1997-04-03 Siemens Ag Verfahren und Anordnung sowie Teilnehmerstation und Zentralstation zum Übertragen von Sprachinformation in einem Funksystem
US5623552A (en) 1994-01-21 1997-04-22 Cardguard International, Inc. Self-authenticating identification card with fingerprint identification
US6081878A (en) 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
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
US6559825B2 (en) 1996-10-31 2003-05-06 Kopin Corporation Display system for wireless pager
US6125192A (en) 1997-04-21 2000-09-26 Digital Persona, Inc. Fingerprint recognition system
US6012636A (en) 1997-04-22 2000-01-11 Smith; Frank E. Multiple card data system having first and second memory elements including magnetic strip and fingerprints scanning means
US6193152B1 (en) 1997-05-09 2001-02-27 Receiptcity.Com, Inc. Modular signature and data-capture system and point of transaction payment and reward system
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5959541A (en) 1997-09-23 1999-09-28 Accu-Time Systems, Inc. Biometric time and attendance system with epidermal topographical updating capability
US6081858A (en) 1997-11-26 2000-06-27 Cirrus Logic, Inc. Apparatus and method for shaping random waveforms
US6275894B1 (en) 1998-09-23 2001-08-14 Advanced Micro Devices, Inc. Bank selector circuit for a simultaneous operation flash memory device with a flexible bank partition architecture
US6321478B1 (en) 1998-12-04 2001-11-27 Smith & Wesson Corp. Firearm having an intelligent controller
WO2000051978A1 (en) 1999-03-01 2000-09-08 Nitromed, Inc. Nitrosated and nitrosylated prostaglandins, compositions and metods of use
US6467015B1 (en) 1999-04-15 2002-10-15 Dell Products, L.P. High speed bus interface for non-volatile integrated circuit memory supporting continuous transfer
TW428755U (en) 1999-06-03 2001-04-01 Shen Ming Shiang Fingerprint identification IC card
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US7257714B1 (en) 1999-10-19 2007-08-14 Super Talent Electronics, Inc. Electronic data storage medium with fingerprint verification capability
US7103684B2 (en) 2003-12-02 2006-09-05 Super Talent Electronics, Inc. Single-chip USB controller reading power-on boot code from integrated flash memory for user storage
US7249978B1 (en) 2005-10-24 2007-07-31 Super Talent Electronics, Inc. Reduced-length, low-profile USB device and card-like carrier
US6718407B2 (en) 1999-09-30 2004-04-06 Intel Corporation Multiplexer selecting one of input/output data from a low pin count interface and a program information to update a firmware device from a communication interface
US20060161725A1 (en) 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US7103765B2 (en) 2001-09-25 2006-09-05 Ben Wei Chen Method and system for providing a modulized server on board
US20050160213A1 (en) 2004-01-21 2005-07-21 Chen Ben W. Method and system for providing a modular server on USB flash storage
US6636929B1 (en) 2000-04-06 2003-10-21 Hewlett-Packard Development Company, L.P. USB virtual devices
US6920553B1 (en) 2000-04-28 2005-07-19 Intel Corporation Method and apparatus for reading initial boot instructions from a bootable device connected to the USB port of a computer system
US6354858B1 (en) * 2000-08-17 2002-03-12 International Business Machines Corporation Retention apparatus for flash memory card
US6622208B2 (en) 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US7051169B2 (en) 2002-02-26 2006-05-23 Kyocera Wireless Corp. Memory configuration for a wireless communications device
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7308524B2 (en) 2003-01-13 2007-12-11 Silicon Pipe, Inc Memory chain
US20040255054A1 (en) 2003-06-10 2004-12-16 Khein-Seng Pua High-speed data transmission device
US6880024B2 (en) 2003-06-12 2005-04-12 Phison Electronics Corp. Control system for memory storage device having two different interfaces
KR100506203B1 (ko) * 2003-09-17 2005-08-05 삼성전자주식회사 부팅 및 부트 코드 업데이트 방법 및 시스템
US7171526B2 (en) 2003-11-07 2007-01-30 Freescale Semiconductor, Inc. Memory controller useable in a data processing system
US7237103B2 (en) * 2004-02-18 2007-06-26 Wyse Technology, Inc. Computing device deployment using mass storage device
US7664707B2 (en) 2004-04-30 2010-02-16 Research In Motion Limited System and method for handling peripheral connections to mobile devices
US7296143B2 (en) * 2004-06-22 2007-11-13 Lenovo (Singapore) Pte. Ltd. Method and system for loading processor boot code from serial flash memory
US7413129B2 (en) 2004-09-30 2008-08-19 Stmicroelectronics, Inc. USB device with secondary USB on-the-go function
US20060242346A2 (en) 2004-10-06 2006-10-26 Cory Vuong Method and aparatus for plug-and-play webserver
US20060106962A1 (en) 2004-11-17 2006-05-18 Woodbridge Nancy G USB On-The-Go implementation
US7631173B2 (en) 2005-03-09 2009-12-08 Wyse Technology Inc. Method and system for performing pre-boot operations from an external memory including memory address and geometry
US20060242395A1 (en) 2005-03-09 2006-10-26 Wyse Technology Inc. Operating system boot from network location
US20070094489A1 (en) 2005-10-21 2007-04-26 Sony Corporation Embedded system that boots from USB flash drive
US7739726B2 (en) 2005-11-14 2010-06-15 Route1 Inc. Portable device for accessing host computer via remote computer

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135939A (zh) * 2011-11-29 2013-06-05 广达电脑股份有限公司 存取装置
CN103679059A (zh) * 2012-08-29 2014-03-26 珠海扬智电子科技有限公司 安全开机方法及电脑系统
CN109815171A (zh) * 2017-11-21 2019-05-28 西部数据技术公司 用于存储器控制器发现供应商特定非易失性存储器设备的方法和装置
TWI692689B (zh) * 2017-12-28 2020-05-01 慧榮科技股份有限公司 記憶卡控制器、記憶卡、使用於記憶卡控制器的方法以及連接至記憶卡的電子裝置
TWI714487B (zh) * 2017-12-28 2020-12-21 慧榮科技股份有限公司 記憶卡控制器以及使用於記憶卡控制器的方法
CN111367826A (zh) * 2018-12-26 2020-07-03 旺宏电子股份有限公司 闪存装置及其控制方法
CN111581012A (zh) * 2019-02-15 2020-08-25 宇瞻科技股份有限公司 固态硬盘
CN111581012B (zh) * 2019-02-15 2023-02-28 宇瞻科技股份有限公司 固态硬盘
CN113918082A (zh) * 2020-07-08 2022-01-11 慧荣科技股份有限公司 计算机可读取存储介质、配置可靠命令的方法及装置
CN113918082B (zh) * 2020-07-08 2024-03-08 慧荣科技股份有限公司 计算机可读取存储介质、配置可靠命令的方法及装置

Also Published As

Publication number Publication date
TW200915090A (en) 2009-04-01
US7676640B2 (en) 2010-03-09
US20080086631A1 (en) 2008-04-10

Similar Documents

Publication Publication Date Title
CN101399076A (zh) 电子数据快闪记忆卡、控制方法和决定闪存装置类型方法
US8296467B2 (en) Single-chip flash device with boot code transfer capability
US10747299B2 (en) Card and host apparatus
CN100487678C (zh) 带有闪存控制器的电子数据闪存卡
US7299316B2 (en) Memory flash card reader employing an indexing scheme
US20080256352A1 (en) Methods and systems of booting of an intelligent non-volatile memory microcontroller from various sources
US20060075395A1 (en) Flash card system
TWI494849B (zh) 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
CN101118783A (zh) 带有闪存坏块控制系统的电子数据闪存卡
US20080071973A1 (en) Electronic data flash card with various flash memory cells
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
US9235534B2 (en) Data protecting method, memory controller and memory storage apparatus
CN101399075A (zh) 具多样闪存单元坏块管理的电子数据闪存卡
KR19990023469A (ko) 불휘발성 반도체 메모리의 제어방법
CN110032520A (zh) 系统开机代码存储器管理方法、存储器装置及其制造方法
US20150058531A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN101398785A (zh) 具有多样闪存单元的电子数据闪存卡
US9235501B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
US20140156913A1 (en) Data processing method, memory controller and memory storage apparatus
US20130166893A1 (en) Auxiliary card initialization routine
CN102999437A (zh) 数据搬移方法、存储器控制器与存储器储存装置
CN104166558B (zh) 固件码载入方法、存储器控制器与存储器存储装置
CN103870209A (zh) 工作模式切换方法、存储器控制器与存储器储存装置
US8595417B2 (en) Memory configuring method, memory controller and memory storage apparatus
CN102236608A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090401