CN1253795C - 通用串行总线架构快闪存储器储存装置 - Google Patents
通用串行总线架构快闪存储器储存装置 Download PDFInfo
- Publication number
- CN1253795C CN1253795C CN 02108242 CN02108242A CN1253795C CN 1253795 C CN1253795 C CN 1253795C CN 02108242 CN02108242 CN 02108242 CN 02108242 A CN02108242 A CN 02108242A CN 1253795 C CN1253795 C CN 1253795C
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory device
- block
- data
- serial bus
- 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.)
- Expired - Lifetime
Links
- 230000005055 memory storage Effects 0.000 title abstract description 7
- 238000003860 storage Methods 0.000 claims description 15
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000002372 labelling Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 26
- 238000013507 mapping Methods 0.000 description 19
- 238000000034 method Methods 0.000 description 11
- 235000012431 wafers Nutrition 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000002425 crystallisation Methods 0.000 description 2
- 230000008025 crystallization Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000005039 memory span Effects 0.000 description 2
- 239000008188 pellet Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- NHDHVHZZCFYRSB-UHFFFAOYSA-N pyriproxyfen Chemical compound C=1C=CC=NC=1OC(C)COC(C=C1)=CC=C1OC1=CC=CC=C1 NHDHVHZZCFYRSB-UHFFFAOYSA-N 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Read Only Memory (AREA)
Abstract
本发明为一种通用串行总线架构快闪存储器储存装置,至少包含有:一个通用串行总线架构连接器,用以将快闪存储器储存装置连接至具通用串行总线架构连接器的主机;至少一个快闪存储器模组或阵列以储存数据;及一个控制器,用以控制主机和快闪存储器储存装置之间的命令和数据,以及管理至少一快闪存储器模组中的数据;本发明可以通过通用串行总线架构与主机连接,使主机可快速地将数据储存至本装置或读取本装置内的数据,让主机和本装置得以轻易地相连和互动。
Description
技术领域
本发明涉及一种存储器,尤其是可以通过通用串行总线架构(USB)连接的一种通用串行总线架构快闪存储器储存装置。
背景技术
快闪存储器的便携性及不可抹除的特性使它成为储存数据的重要媒介,对于如掌上型电子装置等便携式装置而言,这是一种非常有用的数据储存方式,而快闪存储器所带来的便利性使它比大部分传统的储存装置(如硬式磁碟等)具有更大的优势,除了便携性之外,快闪存储器的优点还有低电源消耗率、可靠性、轻巧以及高速等优点。
快闪存储器为非挥发性的,这表示即使电源被关闭了它还是保有已储存的数据,这比标准的随机存取存储器(RAM)更加进步,而随机存取存储器为挥发性的,因此当电源被关闭时,就会遗失已储存的数据。
随着可移动型、便携式或掌上型装置的增加,快闪存储器也逐渐受到青睐,最普遍的快闪存储器类型为可移除式的存储器卡,此种存储器卡让快闪存储器的内容得以轻易地在电子装置或电脑之间进行传输。
然而,在电子装置之间移动快闪存储器时需要额外的汇流排介面或转接器,以便让主机得以和快闪存储器卡进行通讯,许多电子装置可能没有内建与快闪存储器卡连接的能力,因此就必须在主机内安装一个特殊的转接器或卡,除此之外,其汇流排的结构便可能会限制主机和快闪存储器储存装置之间数据的传输速度。
因此,人们需要一个可以不需特殊缆线或转接器就可以直接与主机连接的快闪存储器储存装置。
发明内容
为了达到这些和其他优点,还有为了克服传统快闪存储器卡的缺点,本发明即提供了一种通用串行总线架构快闪存储器储存装置,它是一种可以通过通用串行总线架构与主机连接的快闪存储器储存装置。
通用串行总线架构(以下简称为USB)已成为标准的序列介面,它让数据得以快速地储存于USB快闪存储器储存装置以及快速地从快闪存储器储存装置中读取数据,因此,结合快闪存储器储存装置的优点以及USB的速度将非常有利,除此之外,通过设计搭配USB介面的快闪存储器储存装置,可使快闪存储器储存装置成为标准的USB储存装置,不仅使主机和快闪存储器储存装置可以轻易地相连和互动,并可轻易该扩展存储装置的容量。
为实现上述目的,本发明的通用串行总线架构快闪存储器储存装置,至少包含有:一个通用串行总线架构连接器,用以将快闪存储器储存装置连接至具通用串行总线架构连接器的主机;至少一个快闪存储器模组或阵列以储存数据;一个控制器,用以控制主机和快闪存储器储存装置之间的命令和数据,以及管理至少一快闪存储器模组中的数据;及一个延伸该快闪存储器储存装置的存储器大小的附属电路板,其至少包括一快闪存储器模组。
具体而言,快闪存储器储存装置的主电路板包含了一个控制器以及至少一个快闪存储器,而USB连接器将快闪存储器储存装置与具USB的主机相连接,主电路板上的快闪存储器至少包含了一个快闪存储器晶片,如上所述,此快闪存储器储存装置的存储器容量可以轻易地扩展。
控制器为装置的一项主要组件,此控制器控制了快闪存储器储存快闪存储器储存装置与主机之间的命令和数据,并管理快闪存储器阵列或模组中的数据,控制器最好是一个不需要随机存取存储器(RAM)或只读存储器(ROM)的单晶片设计。
本发明还包括:调节器为可调节快闪存储器储存装置的电压,一般而言,快闪存储器需要3.3伏特或5.0伏特电压,一些快闪存储器储存装置通过切换的方式视快闪存储器的需要在3.3伏特或5.0伏特之间进行切换,然而,本发明的快闪存储器储存装置的一项优点为此快闪存储器储存装置只需要3.3伏特,因此,不论主机发出的是5.0伏特或是3.3伏特,调节器都会确保电压为3.3伏特供USB收发器使用,而不需要进行侦测和转换电压。
时脉产生器,如结晶,为针对快闪存储器储存装置的控制器产生了一个时脉信号。
本发明具体表现的快闪存储器储存装置为进一步地包含了一个指示器(例如LED指示器),用以指示存储器储存装置的状态为使用中或待机状态。
快闪存储器储存装置的主电路板也可以有一个机架连接器,用以连接附属电路板与主电路板,以便利用快闪存储器阵列来延伸存储器大小,而附属电路板至少包含一个额外的快闪存储器模组或阵列,它也可以连接多个附属电路板,以便无限地扩展存储器使用。
写入保护开关为一个防止主机写入数据的开关,此开关至少有两个位置,一个让主机正常地可以读取和写入,另一个位置则是防护写入,当开关位于写入防护的位置时,主机就只能读取数据,但无法写入或擦除数据。
本发明的快闪存储器储存装置的控制器具有无数的功能,这些功能中有一项为控制USB介面,控制器在实体和逻辑协定方面遵照USB规范,控制器进一步包含了一个FIF0控制器缓冲区,使控制器接收来自具USB的主机的命令和参数进行封包,此封包随后被储存在一个由控制器定义的特殊暂存器中,而控制器同时也负责控制与主机之间的数据传输,除此之外,控制器亦提供状态数据给主机。
当主机发出一个写入命令时,就会产生岔断并发送给控制器及微处理器,以便通知微处理器该项命令以及命令的位置,该微处理器(例如一个8或16-bit的微处理器)为控制器的一项主要组件,而微处理器从暂存器中读取USB的命令和参数,此外,而微处理器也执行具参数的命令,微处理器一方面管理和映射USB FIF0地址至控制器缓冲区,一方面接收来自具USB的主机的数据以及将数据传输至主机上,此外,微处理器也为快闪存储器阵列管理,例如擦除、程序或读取等命令,除此之外,微处理器也依据控制器的演算法执行地址方法。
只读存储器(ROM)将已内建在控制器中的控制器程序代码加以储存,而微处理器控制器在执行USB命令或快闪演算法时所使用的一个系统随机存取存储器(RAM),由于它不需要离开晶片存储器,因此降低了系统的成本。
用以缓冲USB介面和快闪存储器阵列介面的系统缓冲区被当成快取使用,它同时也是USB协定的FIF0以及到缓冲区的方向图,微处理器管理此缓冲区的地址,若有需要,缓冲区可以通过位元组或文字进行存取。
本发明的快闪存储器储存装置进一步地包含了一硬件状态机器,以建立主机和快闪存储器之间系统缓冲区的读取和写入时序,快闪介面和电路控制了到快闪存储器阵列的读取和写入命令,在本发明的具体表现中,这是一个纯硬件电路。
除此之外,当缓冲区快取的数据写入至快闪存储器阵列时,ECC电路将编码ECC代码,而当读取快闪存储器阵列的数据至缓冲区快取时,ECC电路则将ECC代码解码,若发生ECC错误,ECC电路会判读缓冲区快取中的文字或位元组并订正错误。
USB命令实际包含了接收主机的命令和参数的控制器,并将命令和参数储存于控制器所定义的暂存器中,并且会产生和发出岔断,以通知微处理器已接收到命令。
控制器依据USB逻辑和实体规范来接收主机的数据以及将数据发送给主机,地址方法包含了管理快闪存储器的擦除、读取和写入命令以及管理实体至逻辑的映射。
当主机将命令和参数写入存储器储存装置中时,控制器会将其储存在一特定的暂存器中,数据随后会被微处理器读取为来自主机的信息,根据标准的USB规范,要求参数为包含了7个位元,BmRequestType D6-D5位元指定了命令协定的类型,种类包括标准、等级以及厂商,本发明的快闪存储器储存装置这三种类型的协定都支援,标准型为标准的装置要求,这是普通的命令,如USB_Get_Status or USB_set_Feature等。
本发明的快闪存储器储存装置在具体形式上利用了搭配bulk/控制/岔断传输的USB mass storage class。
由于快闪存储器实体上的限制,在执行写入命令之前必须先执行擦除命令,一般的快闪存储器需经过大的100万次的擦除之后才可以正常运作,所以,减少擦除的步骤以延长快闪存储器的使用寿命是非常重要的,因此,本发明提供了一个逻辑和实体地址映射表,以及一个母/子架构来达到此项目标。
以下是逻辑和实体地址映射表的使用说明,当启动快闪存储器时,所有的区块都会被搜寻,而搜寻到的实体和逻辑区块之间的关系记录就会成为连络表,与此同时,未使用的实体区块则放入备用区块让FIF0队列使用,接着,逻辑和实体地址映射表中的逻辑区块会被用来寻找对应的实体区块地址,如此一来,就可以精确地写入或撷取与特定实体区块相关连的数据了。
将数据写入快闪存储器时,可能需要一个经过擦除的区块(新的区块)来取代旧区块,然后将数据写入新的区块中,最后将未曾更改过的数据从旧区块移至新区块,这个步骤完成了写入一页数据的动作。
若有好几页数据持写入的话,就会重复以上的步骤,然而,如果数据不断重复地写入同一区块中的话,就会产生许多不必要的擦除和迁移动作,此举不仅浪费时间,同时也会缩短快闪存储器的使用寿命,因此,在本发明的快闪存储器储存装置中,当数据重复地写入同一区块时,它会避免擦除的动作,而迁移动作也只有在更换区块时才会执行,使用此种方法不仅延长了快闪存储器的寿命,同时也提高了快闪存储器储存装置的效率。
以下是一个写入数据范例,需将32个小区块(sector)的数据写入以0/0区块/页开始的快闪存储器中,总实体区块/逻辑区块为I024/992,FIF0的总备用区块为32个,无一区块有瑕疵,每一区块有32页,起始指标(Headpointer)所指的子区块03E0h取自FIF0备用区域,然后,起始指标会增加,而32页的数据则写入子区块中,将子区块第03E0h填入逻辑和实体地址映射表中母区块的逻辑区块地址0000h中,母区块0000h被擦除掉而尾端指标增加,然后,母区块第0000h则填入备用区域中的尾端指标所指的地址中。
以下是依据本发明具体形式的写入程序叙述。
主机将对应的写入命令和地址参数写入快闪存储器储存装置中,快闪存储器储存装置随后开始执行程序快闪演算法,然后,主机的逻辑地址会被转换成快闪存储器实体区块和页区块,控制器会检查子区块是否存在。
如果子区块不存在的话,它会从FIF0队列中取出一个干净的区块为现有的写入区块建立一个子区块,然后检查现有的快闪存储器逻辑页码,看待写入的是否等于「0」,若等于「0」,从主机至快闪存储器的数据就会写入缓冲区,而小区块的计数会减少,此程序会一直重复直到小区块计数等于「0」为止,若待写入的不等于「0」时,母区块(干净的)的数据就会移至「写入的最后一页」和「现有写入页」之间的子区块上,然后,从主机至快闪存储器的数据会写入缓冲区中,而小区块的计数会减少,此程序会一直重复直到小区块计数等于「0」为止。
如果子区块存在的话,就会检查现有快闪存储器的逻辑区块,看待写入的是否等于最后一个写入的快闪存储器逻辑区块,若不相等,母区块的数据就会移至写入的最后一页和「此区块的最后一页」之间的子区块,然后再将母区块擦除,更新控制器中的逻辑和实体地址映射表,以子区块地址代替原有的母区块地址,然后,将被擦除的母区块放回FIF0队列中成为干净的区块,若待写入的等于最后一个写入的快闪存储器逻辑区块的话,就会检查现有的快闪存储器逻辑页码,看待写入的是否大于最后一个写入的快闪存储器页,若大于,将检查现有的写入页码,看它是否等于所写的最后一页加1,若是,从主机至快闪存储器的数据就会写入缓冲区,而小区块的计数会减少,此程序会一直重复直到小区块计数等于「0」为止,若现有的写入页码不等于所写的最后一页加1时,母区块(干净的)的数据就会移至「写入的最后一页和「现有写入页」之间的子区块上。
若待写入的不大于最后一个写入的快闪存储器逻辑页时,母区块的数据就会被移至「写入的最后一页」和「此区块的最后一页」之间的子区块,然后再将母区块擦除,更新控制器中的逻辑和实体地址映射表,以子区块地址代替原有的母区块地址,然后,将被擦除的母区块放回FIF0队列中成为干净的区块。
若持写入的大于最后一个写入的快闪存储器逻辑页时,母区块的数据就会被移至「写入的最后一页」和「现有写入页」之间的子区块,从主机至快闪存储器的数据就会写入缓冲区,而小区块的计数会减少,数据会写入直到小区块计数等于「0」为止。
至于依据本发明具体形式的快闪存储器储存装置读取程序方面,主机的逻辑地址会被转换成快闪存储器实体区块和页地址,然后,检查现有的快闪存储器逻辑区块,看待读取是否等于最后一个被读取的快闪存储器逻辑区块,若不是的话,快闪存储器实体区块和页的数据就会被读取,而小区块的计数就会减少,此程序会一直重复直到小区块计数等于「0」为止,若待读取的等于最后一个被读取到的快闪存储器逻辑区块的话,它会检查现有的快闪存储器逻辑页,看待读取的是否大于最后一个写入的快闪存储器逻辑页。
若是,快闪存储器实体区块和页的数据就会被读取,而小区块计数就会减少,此程序会一直重复直到小区块计数等于「0」为止,若待读取的不大于最后一个写入的快闪存储器逻辑页的话,子区块实体区块和页的数据就会被读取,而小区块计数就会减少,此程序会一直重复直到小区块计数等于「0」为止。
当微处理器开始执行命令时,快闪存储器储存装置会从主机下载它的参数,例如读取或写入一厂商命令封包,系统会通过装置/启始位元组的第6个位元来判断地址模式,本发明的快闪存储器储存装置同时支援逻辑区块地址(LBA)和圆柱体启始小区块(CHS)模式,若主机利用LBA模式提供地址的话,快闪存储器储存装置会将它转换成CHS模式,然后将CHS模式改成实体地址。
当快闪存储器储存装置执行读取命令时,控制器首先会将快闪存储器的数据一个小区块一个小区块的读取到控制器的缓冲区(512位元组)中,然后USB引擎会将小区块送至主机,当送至主机的小区块数量等于主机欲读取的小区块数目时,整个命令就完成了。
当快闪存储器储存装置执行写入命令时,控制器会通过USB引擎将主机的数据一个小区块一个小区块的读取到控制器的缓冲区(512位元组),然后此小区块就会被储存在快闪存储器中,当送至快闪存储器的小区块数量等于主机欲写入的小区块数目时,整个命令就完成了。
快闪存储器储存装置可以支援一个以上的快闪存储器,本发明中提供了多个晶片选取脚,当启动快闪存储器储存装置时,它会检查板上所使用的快闪存储器类型(容量),以及系统有多少个晶片,快闪存储器储存装置会将所有的存储器晶片加起来,找出总容量,当主机需要这一类的数据时,快闪存储器储存装置就会提供总容量给主机,而不是单一晶片的容量。
当主机发出某一地址(逻辑)给快闪存储器储存装置时,快闪存储器储存装置会执行计算,找出主机想要的存取的确切晶片,以及对应的地址,然后,快闪存储器储存装置会使用计算出来的地址,并启动晶片选取脚。
附图说明
图1A:依据本发明具体形式显示出来的快闪存储器储存装置布局示意图;
图1B:依据本发明具体形式显示出来的快闪存储器储存装置中附属电路板布局示意图;
图2:依据本发明具体形式显示出来的快闪存储器储存装置控制器示意图;
图3:依据本发明具体形式显示出来的快闪存储器储存装置的系统架构区块示意图;
图4:依据本发明具体形式显示出来的各式各样作业系统的USB协定应用流程示意图;
图5:依据本发明具体形式显示出来实作于快闪存储器储存装置中USB协定的表列参数;
图6:依据本发明具体形式显示出来快闪存储器储存装置的写入程序流程;
图7:依据本发明具体形式显示出来快闪存储器储存装置的读取程序流程;
图8:依据本发明具体形式显示出来将数据写入新区块的区块示意图;
图9:依据本发明具体形式显示出来写入额外页次的数据的区块示意图;
图10:依据本发明具体形式显示母和子技术的区块示意图;
图11:依据本发明具体形式显示逻辑和实体地址映射表的示意图;
图12:依据本发明具体形式显示起始指标和尾端指标作业的示意图;
图13:依据本发明具体形式显示未写入之前的逻辑和实体地址映射表示意图;
图14:依据本发明具体形式显示起始指标和尾端指标作业的示意图;
图15:依据本发明具体形式显示的命令封包架构示意图。
具体实施方式
特此说明,前文的一般叙述以及以下的详细叙述皆为范例,并且将进一步解释所述的发明。
附图是为了让人们可以更加了解本发明,且编入并成为本发明的一部分,图片具体表现了本发明,配合文字叙述进而解释了发明的原理,在图片中,优先具体表现的叙述。
请参阅图1A、1B所示,为依据本发明具体形式显示出来的快闪存储器储存装置布局示意图及附属电路板布局示意图,于图中揭示快闪存储器储存装置5的主电路板100包含了一个控制器40和至少一个快闪存储器晶片50,而USB连接器10连接于快闪存储器储存装置5与具USB的主机之间,且主电路板100上至少包含了一个快闪存储器晶片50,而快闪存储器储存装置5则进一步地包含了一个延伸机架连接器20,可让附属电路板150上的快闪存储器120阵列或模组数量得以延伸,且延伸机架连接器20可对接于附属电路板150上的机架连接器110,以利用机架连接器110来使快闪存储器120阵列或模组与主电路板100上的控制器40形成连接,如此一来,快闪存储器储存装置5的存储器容量就可以视实际需要轻易地加以扩充了。
再者,其控制器40为该快闪存储器储存装置5的主要组件,此控制器40控制USB与具USB的主机之间的命令和数据,并管理快闪存储器120阵列或模组中的数据,而控制器40最好是一个不需要外部随机存取存储器(RAM)或只读存储器(ROM)的单晶片设计。
另,调节器90负责调节快闪存储器储存装置5的电压,一般而言,该快闪存储器需要3.3伏特或5.0伏特的电压,一些快闪存储器储存装置5视快闪存储器120的需要利用转换的方式在3.3伏特或5.0伏特之间进行切换,然而,本发明的快闪存储器储存装置5的一项优点为此快闪存储器储存装置5只需要3.3伏特,因此,不论主机发出的是5.0伏特或是3.3伏特,其调节器90都会确保电压为3.3伏特供应快闪存储器储存装置5使用,而不需要侦测和转换电压。
时脉产生器80,如结晶,针对快闪存储器储存装置5的控制器40产生了一个时脉信号。
本发明具体表现的快闪存储器储存装置5进一步地包含了一个指示器70(例如LED指示器),可指示快闪存储器储存装置5的状态为使用或待机状态中。
快闪存储器储存装置5的主电路板100也可以有一个机架连接器20,用以连接附属电路板150与主电路板100,以便利用额外的快闪存储器120阵列或模组依实际需要延伸存储器大小,而附属电路板150至少包含一个额外的快闪存储器120阵列或模组,它也可以连接多个附属电路板150,以便视实际需要扩展存储器数量。
防护开关30为一个可防止主机写入数据的开关,防护开关30至少有两个位置,一个让主机正常地可以进行读取和写入使用,另一个位置则是防止写入,当开关30位于防止写入的位置时,主机就只能读取数据,而无法写入或擦除数据。
该快闪存储器储存装置5进一步包含一指示器70(例如LED指示器),用以指示存储器储存装置5的状态为使用中或待机状态。
请参阅图2所示,为依据本发明具体形式显示出来的快闪存储器储存装置控制器示意图,本发明的快闪存储器储存装置的控制器200具有无数的功能,这些功能中有一项为控制USB介面210。
上述控制器200在实体和逻辑协定方面遵照USB规范,且控制器200进一步包含了一个系统缓冲区250或FIF0控制器缓冲区。
控制器200接收来自主机的命令和参数封包,此封包随后被储存在一个由控制器200定义的系统缓冲区250中,而控制器200同时也负责控制与USB主机之间的数据传输,除此之外,控制器200亦提供状态数据给主机。
当主机发出一个写入命令时,就会产生岔断并发送给控制器内的微处理器220,以便通知微处理器220该项命令以及命令的位置。
微处理器220(例如一个8或16-bit的微处理器)为控制器200中的一项主要组件,此微处理器220从系统缓冲区250中读取USB的命令和参数,此外,微处理器220也执行具参数的命令。
微处理器220一方面管理和映射USB FIF0地址至系统缓冲区250,一方面接收来自主机的数据,以及将数据传输至主机上。
此外,微处理器220也为快闪存储器阵列管理(例如擦除、程序或读取等命令),除此之外,微处理器220也依据控制器200的演算法执行地址方法。
只读存储器(ROM)230将已内建在控制器200中的控制器200程序代码加以储存,随机存取存储器(RAM)240为控制器200在执行USB命令或快闪演算法时所使用的一个系统随机存取存储器(RAM),由于它不需要离开晶片存储器,因此降低了系统的成本。
用以缓冲USB介面210和快闪存储器阵列介面260的系统缓冲区250被当成快取使用,它同时也是USB协定的FIF0以及到缓冲区的方向图,而微处理器220管理此缓冲区的地址,若有需要,缓冲区可以通过位元组或文字存取。
本发明的快闪存储器储存装置进一步地包含了一硬件状态机器,以建立主机和快闪存储器之间系统缓冲区250的读取和写入时序。
快闪存储器阵列介面260控制快闪存储器阵列的读取和写入命令,在本发明的具体表现中,这是一个纯硬件电路。
当系统缓冲区250快取的数据写入至快闪存储器阵列介面260时,ECC电路270将编码ECC代码,而当读取快闪存储器阵列的数据至系统缓冲区250快取时,ECC电路270则将ECC代码解码,若发生ECC错误,ECC电路270会判读系统缓冲区250快取中的文字或位元组并订正错误。
输入/输出控制介面280,提供系统需要进行其它的输入/输出控制。
请参阅图3所示,为依据本发明具体形式显示出来的快闪存储器储存装置的系统架构区块示意图,在某些具USB的主机300的作业系统(如Wind Ows ME和WindOws 2000等)中包含了预设的USB装置驱动器,其他的作业系统可能需要在主机安装一个USB装置驱动器,而USB命令实作320包含了通过USB连接器310来接收主机300和参数控制器305的命令,并将命令和参数储存于控制器305所定义的暂存器中,并且会产生和发出岔断,以通知微处理器已接收到命令。
参数控制器305依据USB逻辑和实体规范来接收主机300的数据以及将数据发送至主机300。
地址方法330包含了管理快闪存储器340的擦除、读取和写入命令,以及管理实体至逻辑的映射。
请参阅图4所示,为依据本发明具体形式显示出来的各式各样作业系统的USB协定应用流程示意图,当主机在步骤410将命令和参数写入快闪存储器储存装置中时,控制器会储存在一特定的暂存器中,并在步骤420时产生一个岔断至微处理器,数据随后会在步骤430时被微处理器读取来自主机的信息。
在步骤440中,微处理器依据参数开始执行命令,如果命令为写入命令,缓冲区的快取就会在步骤450收到具USB的主机的数据。
微处理器随后在步骤460中将逻辑地址转换至快闪存储器的实体地址,在步骤470中,微处理器将读取快闪存储器的数据或是将数据写入快闪存储器中,如果命令为读取命令,数据会在步骤480中传输至具USB的主机。
根据标准的USB规范,要求参数包含了7个位元,复请参阅图5所示,BmRequest Type的D6-D5位元指定了命令协定的类型,其种类包括标准、等级以及厂商,本发明的快闪存储器储存装置这三种类型的协定都支援,标准型为标准的装置要求,这是普通的命令,如USB_Get_Status or USB_set_Feature等。
本发明的快闪存储器储存装置在具体形式上利用了搭配bulk/控制/岔断传输的USB mass storage class。
由于快闪存储器的实体限制,在完成写入命令之前必须先执行擦除命令,一般的快闪存储器需经过大约100万次的擦除之后才可以正常运作,所以,减少擦除的步骤,以延长快闪存储器的使用寿命是非常重要的,因此本发明提供了一个逻辑和实体地址映射表,以及一个母/子架构来达到此项目标。
以下是逻辑和实体地址映射表的使用说明,当启动快闪时,所有的区块都会被搜寻,而搜寻到的实体和逻辑区块之间的关系记录就会成为连络表,于此同时,未使用的实体区块则放入备用区块让FIF0队列使用。
接着,逻辑和实体地址映射表中的逻辑区块会被用来寻找对应的实体区块地址,如此一来,就可以精确地写入或撷取与特定实体区块相关连的数据了。
请参阅图8所示,为依据本发明具体形式显示出来将数据写入新区块的区块示意图,将数据写入快闪存储器时,可能需要一个经过擦除的区块(新的区块)810来取代旧区块800,然后将数据写入新的区块810中,最后将未曾更改过的数据从旧区块800移至新区块810,这个步骤完成了写入一页数据的动作。
若有好几页数据待写入的话,就会重复以上的步骤,请参阅图9所示,为依据本发明具体形式显示出来写入额外页次的数据的区块示意图,这是依据本发明具体形式显示出来写入额外页次的数据的区块示意图,将数据写入新区块910中,而未曾更改过的数据从旧区块900移至新区块910。
然而,如果数据不断重复地写入同一区块中的话,就会产生许多不必要的擦除和迁移动作,此举不仅浪费时间同时也会缩短快闪存储器的使用寿命。
请参阅图10所示,为依据本发明具体形式显示母和子技术的区块示意图,这是依据本发明具体形式显示母和子技术的区块示意图,因此,在本发明的快闪存储器储存装置中,当数据重复地写入同一区块时,它会避免擦除的动作,而迁移动作也只有当更换区块时才会执行,所有的数据都先写入新区块(子区块)1010中,然后未曾更改过的数据则从旧区块(母区块)1000写入新区块1010中,使用此种方法不仅延长了快闪存储器的寿命,同时也提高了快闪存储器储存装置的效率。
请参阅图11所示,为依据本发明具体形式显示逻辑和实体地址映射表的示意图,以下是一个写入数据范例,其逻辑和实体地址映射表链结了一个实体区块地址1100和一个逻辑区块地址1110,需将320个小区块(Sector)的数据写入以0/0区块/页开始的快闪存储器中,总实体区块/逻辑区块为1024/992,FIF0的总备用区块为32个,无一区块有瑕疵,每一区块有32页。
请参阅图12、13和14所示,为依据本发明具体形式显示起始指标和尾端指标作业的示意图,显示未写入之前的逻辑和实体地址映射表示意图,及显示起始指标和尾端指标作业的示意图,在此范例中,起始指标1210所指的子区块1300的地址03E0h取自FIF0备用区域1200,然后,起始指标1210的地址会增加,变为起始指标1410,而32页的数据则写入子区块1300中。
再将子区块1300地址03E0h填入逻辑和实体地址映射表中母区块1310的逻辑区块地址0000h中,母区块1310地址0000h被擦除掉,而尾端指标1220增加,然后,母区块地址0000h则填入备用区域中的尾端指标1420所指的地址中。
现在将依据本发明的具体表现,制作写入程序的叙述参考。
主机将相对应的写入命令和地址参数写入快闪存储器储存装置中,而此快闪存储器储存装置随后开始执行程序快闪演算法。
请参阅图6所示,为依据本发明具体形式显示出来快闪存储器储存装置的写入程序流程,首先,在步骤601中,将主机发出的逻辑地址转换成快闪存储器实体区块和页地址。
然后在步骤602中,控制器会检查看子区块是否存在,若子区块不存在的话,则跳至步骤605,若子区块存在,在步骤603中会检查现有快闪存储器的逻辑区块,看写入的是否等于最后一个写入的存储器逻辑区块,若不相等,则跳至步骤611。
若相等,在步骤604中会检查现有的快闪存储器逻辑页码,看写入的是否大于最后一个写入的快闪存储器逻辑页,若是,则继续步骤610,若否,则跳至步骤611。
步骤605从FIF0队列中取一干净的区块为现有的写入命令建立一个子区块。
在步骤606检查现有的快闪存储器逻辑页码,看写入的是否等于「0」,若等于「0」,继续步骤608。
若不等于「0」,在步骤607中,母区块的数据会被移至「写入的最后一页」和「现有写入页」之间的子区块。
在步骤608,将主机至快闪存储器的数据写入缓冲区中,而小区块的计数会减少。
在步骤609,若小区块的计数等于「0」,则前进至「终点」,若否,则继续步骤608。
在步骤610,若现有的写入页码等于最后写入页码加1,则继续步骤608,若否,则继续步骤607。
在步骤611,母区块的数据会被移至「写入的最后一页」和「此区块的最后一页」之间的子区块,并擦除母区块,且更新控制器中的逻辑和实体地址映射表,以子区块地址代替母区块地址,同时将被擦除的母区块放回至FIF0队列中当成干净的区块。
请参阅图7所示,为依据本发明具体形式显示出来快闪存储器储存装置的读取程序流程,这是依据本发明具体形式显示出来快闪存储器储存装置的读取程序流程。
在步骤701,为将具USB的主机的逻辑地址转换成快闪存储器实体和页地址。
在步骤702中检查现有的快闪存储器,看待读取的是否等于最后一个读取的快闪存储器逻辑区块,若是,则跳至步骤705,若否,继续步骤703。
在步骤703中读取快闪存储器实体区块和页的数据而小区块的计数会减少。
在步骤704中检查小区块计数,看它是否等于「0」,若等于「0」,则前进至「终点」,若否,则回到步骤703。
在步骤705中检查现有的存储器逻辑页,看待读取的是否大于最后写入的快闪存储器逻辑页,若是,回到步骤703,若否,前进至步骤706。
在步骤706中读取子区块实体区块和页的数据,而小区块的计数会减少。
在步骤707中检查小区块计数,看它是否等于「0」,若等于「0」,则前进至「终点」,若否,则回到步骤705。
请参阅图15所示,为依据本发明具体形式显示的命令封包架构示意图,当微处理器开始执行命令时,USB快闪存储器储存装置会从主机中下载其参数,例如读取或写入,图中显示了厂商命令封包。
系统会通过装置/启始位元组来判断地址模式,本发明的快闪存储器储存装置同时支援逻辑区块地址(LBA)和圆柱体启始小区块(CHS)模式。
若主机利用LBA模式提供地址的话,快闪存储器储存装置会将它转换成CHS模式,然后将CHS模式改成实体地址。
当快闪存储器储存装置执行读取命令时,控制器首先会将快闪存储器的数据一个小区块一个小区块的读取到控制器的缓冲区(512位元组)中,然后USB引擎会将小区块送至主机,当送至主机的小区块数量等于主机欲读取的小区块数目时,整个命令就完成了。
当快闪存储器储存装置执行写入命令时,控制器会通过USB引擎将主机的数据一个小区块一个小区块的读取到控制器的缓冲区(512位元组),然后此小区块就会被储存在快闪存储器中,当送至快闪存储器的小区块数量等于主机欲写入的小区块数目时,整个命令就完成了。
快闪存储器储存装置可以支援一个以上的快闪存储器,本发明中提供了多个晶片选取脚,当启动快闪存储器储存装置时,它会检查板上所使用的快闪存储器类型(容量)以及系统有多少个晶片,快闪存储器储存装置会将所有的存储器晶片加起来,找出总容量,当主机需要这一类的数据时,快闪存储器储存装置就会提供总容量给主机,而不是单一晶片的容量。
当主机发出某一地址(逻辑)给快闪存储器储存装置时,快闪存储器储存装置会执行计算,找出主机想要的存取的确切晶片,以及对应的地址,然后,快闪存储器储存装置会使用计算出来的地址,并启动晶片选取脚。
此外,本发明中所述及的快闪存储器、控制器为一单晶片设计,用以缩小快闪存储器储存装置的整体体积,且不需要外部随机存取存储器(RAM)或只读存储器(ROM)的设计。
以上所述实施例仅为说明本发明的技术思想及特点,其目的在使熟习此项技艺的人士能够了解本发明的内容并据以实施,当不能以其限定本发明的专利范围,即大凡依本发明所揭示的精神所作的均等变化或修饰,仍应涵盖在本发明的权利要求范围内。
Claims (11)
1、一种通用串行总线架构快闪存储器储存装置,其至少包含有:
一个通用串行总线架构连接器,将该快闪存储器储存装置连接至具通用串行总线架构连接器的主机;
至少一个储存数据的快闪存储器模组或阵列;及
一个用以控制主机和快闪存储器储存装置之间的命令和数据并管理至少一快闪存储器模组中的数据的控制器;其特征是:
所述快闪存储器储存装置进一步包含了一个延伸该快闪存储器储存装置的存储器大小的附属电路板,且所述附属电路板至少包括一快闪存储器模组。
2、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步包含一指示该快闪存储器储存装置的状态的指示器。
3、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步包含一个防止写入该快闪存储器装置或是将数据擦除的写入保护开关。
4、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步地包含了一系统缓冲区,提供主机和快闪存储器装置之间的缓冲。
5、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步地包含了一个为系统缓冲区建立读取和写入时序的状态机器。
6、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步地包含了输入/输出控制介面,提供该快闪存储器储存装置需要进行其它的输入/输出控制。
7、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步地包含了一个错误更正代码电路,在数据写入该快闪存储器储存装置时编码该错误更正代码,以及当读取该快闪存储器储存装置的数据时解码该错误更正代码。
8、如权利要求7所述的通用串行总线架构快闪存储器储存装置,其特征是:该ECC电路进一步地包含了当发生并更正错误时,无效数据地址的判断。
9、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步地包含了一快闪存储器介面,控制送到至少一快闪存储器模组的读取和写入命令。
10、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该快闪存储器储存装置中进一步包含了一执行主机具有参数的命令的微处理器。
11、如权利要求1所述的通用串行总线架构快闪存储器储存装置,其特征是:该控制器为一不需要外部随机存取存储器或只读存储器的单晶片。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 02108242 CN1253795C (zh) | 2002-03-28 | 2002-03-28 | 通用串行总线架构快闪存储器储存装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 02108242 CN1253795C (zh) | 2002-03-28 | 2002-03-28 | 通用串行总线架构快闪存储器储存装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1448847A CN1448847A (zh) | 2003-10-15 |
| CN1253795C true CN1253795C (zh) | 2006-04-26 |
Family
ID=28680234
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN 02108242 Expired - Lifetime CN1253795C (zh) | 2002-03-28 | 2002-03-28 | 通用串行总线架构快闪存储器储存装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN1253795C (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101178933B (zh) * | 2007-12-05 | 2010-07-28 | 苏州壹世通科技有限公司 | 一种闪存阵列装置 |
| CN102193747B (zh) * | 2010-03-03 | 2015-06-10 | 群联电子股份有限公司 | 数据写入方法、可复写式非易失性存储器控制器及系统 |
| TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
| US10496289B2 (en) * | 2016-06-16 | 2019-12-03 | Nuvoton Technology Corporation | System and methods for increasing useful lifetime of a flash memory device |
| CN109582599B (zh) * | 2017-09-29 | 2023-12-22 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
-
2002
- 2002-03-28 CN CN 02108242 patent/CN1253795C/zh not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| CN1448847A (zh) | 2003-10-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1282089C (zh) | 控制串行快闪存储器中适当执行的装置和方法及相应芯片 | |
| CN1795437A (zh) | 用于块内页面分组的方法及设备 | |
| TWI592865B (zh) | 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器 | |
| US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
| US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
| CN1652253A (zh) | 存储卡和半导体器件 | |
| TWI454911B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| US20110055457A1 (en) | Method for giving program commands to flash memory, and controller and storage system using the same | |
| CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
| CN1426557A (zh) | 对快速存储器的数据记录装置和数据写入方法 | |
| CN1766850A (zh) | 具有存储元件的存储卡及其控制方法 | |
| CN1648876A (zh) | 闪速存储器的数据管理设备和方法 | |
| CN1745433A (zh) | 对非易失性存储器中缺陷的区界调整 | |
| CN1705936A (zh) | 用于分割一逻辑块的方法及设备 | |
| US9460004B2 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
| CN1516835A (zh) | 数据存储装置 | |
| CN1696888A (zh) | 记录介质、主机设备及数据处理方法 | |
| US8812772B2 (en) | Data merging method for non-volatile memory and controller and storage apparatus using the same | |
| CN1538456A (zh) | 闪存存取装置及方法 | |
| CN1702776A (zh) | 存储卡、半导体装置和半导体存储器的控制方法 | |
| US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
| CN1214326C (zh) | 非易失性存储装置及其控制方法 | |
| CN1253795C (zh) | 通用串行总线架构快闪存储器储存装置 | |
| CN102023811B (zh) | 对闪存下达程序化指令的方法和系统 | |
| CN102193871B (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 | ||
| CX01 | Expiry of patent term | ||
| CX01 | Expiry of patent term |
Granted publication date: 20060426 |