闪存系统及其运作方法 【技术领域】
本发明涉及一种闪存系统,特别指一种具有高速缓存(CacheMemory)的闪存系统及其运作方法。
背景技术
近几年来,半导体技术的快速发展,使得各种储存内存的容量得以大幅地增加。而在目前已普遍使用的非挥发性内存方面,又以闪存(Flash Memory)最为大众所熟悉,由于闪存具有存取速度快、耐震性佳、省电及体积小等多项优点,因此已大量地应用于各种电子产品装置之中(如:记忆卡、随身碟、固态磁盘驱动器(SSD)、个人数字助理(PDA)、数字相机及计算机等装置),以作为储存数据的重要媒介。
然而,闪存应用在储存系统时,其必须面临的便是使用寿命的问题,亦即闪存所能承受的抹除次数(Erase Cycle)的问题。我们都知道闪存在进行数据写入运作时会先执行抹除区块的动作,而一般而言闪存所能承受的抹除次数约在10,000次至100,000次之间,因此频繁的存取动作将会大幅地影响闪存的寿命。
而为了解决上述问题,有不少先前技术提出平均抹除(Wear-leveling)的设计,但其主要是在存取数据的处理过程中,借助算法来平均使用闪存的记忆区块,以避免因过度使用某些区块而形成毁损区块(Bad Block),进而达到提升闪存寿命的目的。因为当这些毁损区块的数目累积超过预留的备用区块(Spare Block)的数目时,则会因为闪存无法提供有效的可用空间做置换而提早结束闪存的寿命。虽然上述的设计方法能进一步延长闪存的寿命,但反复的抹除动作仍会影响闪存的寿命。
而为了达到减少抹除动作以进一步提升闪存的寿命,目前又有相关技术提出,先借助一高速缓存(Cache Memory)来暂存要写入闪存的数据,再将该数据写到闪存中,以减少数据在写入闪存时所需的抹除次数。不过,由于在储存系统中必须另外增加高速缓存来暂存数据,将会占掉储存系统的处理器的部分处理时序,因而导致储存系统的整体工作效率大幅地降低。
因此,要如何在提升闪存寿命的同时,亦能够兼顾储存系统的存取效能,便是目前值得进一步改善的重点。
【发明内容】
有鉴于此,本发明所要解决的技术问题在于,不仅借助增加一高速缓存于闪存系统之中以作为暂存欲存储数据之用,并避免该数据在进行暂存的动作影响到闪存系统的存取效能。借此,以在达到延长闪存寿命的同时,更可实现提升闪存系统数据存取效能的目的。
为了达到上述目的,根据本发明所提出的一方案,提供一种闪存系统,其包括:一高速缓存、一高速缓存接口、一主机接口、一闪存接口及一微处理器。其中高速缓存接口连接高速缓存,并且高速缓存接口进一步包含一分配器用以运行一分时(Time Sharing)处理来存取高速缓存。而主机接口接收主机端系统的一数据并将该数据暂存至高速缓存以成为一待存数据。再者,闪存接口连接至少一闪存,并且自该高速缓存中读取待存数据而储存至闪存。最后,微处理器控制主机接口及闪存接口来存取高速缓存。借此,借助高速缓存接口透过分配器的分时处理,使主机接口、闪存接口及微处理器得以同步存取高速缓存。
换句话说,本发明提供一种闪存系统,包括:一高速缓存,具有至少二快取区块;及一分配器,耦接于该高速缓存,透过数据总线频宽的分时处理,根据数据,对不同该快取区块进行分配存取。
本发明所提出的另一方案,提供一种闪存系统的运作方法,其中该闪存系统包含有一高速缓存,而且高速缓存具有至少二快取区块,该运作方法的步骤包括:首先,接收一数据,进而依据该数据所属的逻辑区块地址来将该数据暂存至所对应的快取区块,并且指示该数据成为一待存数据。接着,重复进行接收数据并暂存至原快取区块中,直到所接收的数据所属的逻辑区块地址转而落于另一快取区块所对应的逻辑区块地址时,则将该数据暂存至另一快取区块。并且,在将该数据暂存至另一快取区块的同时,也一并将原快取区块中所暂存的待存数据写入闪存的一空的实体区块。借此,借助重复上述步骤以完成闪存系统的运作,从而能达到对闪存系统中的高速缓存进行同步存取,以同时执行数据的暂存以及数据写入闪存地程序。
换句话说,本发明提供如上所述的闪存系统的运作方法,所述的运作方法的步骤包括:(a)接收该数据;(b)依据该数据所属的逻辑区块地址来将该数据暂存至所对应的其中的一该快取区块,进而指示该数据成为该待存数据;(c)重复执行步骤(a)至(b),直到该数据所属的逻辑区块地址转而落于另一逻辑区块地址时,则将该数据暂存至该另一快取区块;及(d)于步骤(c)将该数据暂存至该另一快取区块的同时,进行一写入程序,以将该原快取区块中所暂存的待存数据写入该闪存的一空的实体区块;借此,借助重复上述步骤以完成该闪存系统的运作。
综上所述,本发明借助增加一高速缓存,在写入数据要储存到闪存之前,先在高速缓存中作处理,以减少闪存上写入及抹除(Erase)的程序,并且再透过数据总线频宽的分时(Time Sharing)处理,以让高速缓存足以依据适当的分配而提供存取。此外,本发明再透过控制高速缓存中不同快取区块的存取,使之得以达到同步执行数据的暂存以及数据写入闪存的程序。借此,同时能有效提升闪存系统的存取效能以及内存寿命。
以上的概述与接下来的详细说明及附图,皆是为了能进一步说明本发明为达成预定目的所采取的方式、手段及功效。而有关本发明的其它目的及优点,将在后续的说明及附图中加以阐述。
【附图说明】
图1为本发明闪存系统的实施例方块图;
图2为本发明的高速缓存的架构示意图;
图3为本发明的高速缓存的存取运作实施例示意图;
图4A及图4B为本发明内存数据处理过程的第一实施例示意图;
图5A及图5B为本发明内存数据处理过程的第二实施例示意图;及
图6为本发明闪存系统的运作方法的实施例流程图。
【附图标记说明】
闪存系统1
主机接口11
高速缓存12
高速缓存接口13
分配器131
闪存界面14
闪存15
微处理器16
主机端记忆页缓冲器17
闪存记忆页缓冲器18
计时器19
主机端系统2
第一快取区块CB0
第二快取区块CB1
对照表空间TB
逻辑区块地址字段LBA
实体区块地址字段PBA
页旗标字段PF0~PFn
标头信息H
页地址P0~Pn
【具体实施方式】
本发明主要是在闪存系统中增加一高速缓存,以将写入数据在要储存到闪存之前,先在高速缓存中作处理,以减少闪存上写入及抹除(Erase)次数的程序。并且借助数据总线频宽的分时(Time Sharing)处理,以让高速缓存足以依据适当的分配而提供存取。进而再透过高速缓存的相异快取区块的设计,使得本发明得以控制不同的快取区块而达到同步执行数据的暂存以及数据写入闪存的程序。借此,同时能有效提升闪存系统的存取效能以及内存的使用寿命。
图1及图2,为本发明闪存系统的实施例方块图及高速缓存的架构示意图。如图1所示,本发明提供一种闪存系统1以应用于数据的存取。闪存系统1中包括:一主机接口11、一高速缓存12、一高速缓存接口13、一闪存接口14、至少一闪存15及一微处理器16。其中,主机接口11用以连接一主机端系统2,用于接收主机端系统2所输出的数据。
高速缓存接口13用以连接及控制高速缓存12,并且高速缓存接口13中进一步包含一分配器131,用以运行一分时处理来存取高速缓存12。当主机接口11接收到数据时,该数据便会经由高速缓存接口13而先暂存至高速缓存12,并且经过确认后以成为一待存数据。
而闪存接口14则是用来连接及控制闪存15。闪存接口14会经由高速缓存接口13而自高速缓存12中读取已确认为待存数据的数据而储存至闪存15。
再者,微处理器16是连接主机接口11、高速缓存接口13及闪存接口14,控制主机接口11及闪存接口14对高速缓存12进行读取或写入数据。于是,本实施例的闪存系统1即可借助高速缓存接口13中的分配器131所运行的分时处理以分配高速缓存接口13与高速缓存12之间的数据总线频宽给主机接口11、闪存接口14及微处理器16。使得主机接口11、闪存接口14及微处理器16得以同步经由高速缓存接口13而存取高速缓存12,以大幅提升闪存系统1的存取效率。
本发明的闪存系统1中更可进一步包含:一主机端记忆页缓冲器(Host Page Buffer)17及一闪存记忆页缓冲器(Flash Page Buffer)18。其中主机端记忆页缓冲器17是连接于主机接口11与高速缓存接口13之间,用以暂存欲存储的数据而缓冲提供给高速缓存接口13,以避免该数据在欲暂存至高速缓存12时,高速缓存12尚未能提供完整的区块来存放的情形。而相同的,闪存记忆页缓冲器18则是连接于高速缓存接口13与闪存接口14之间,用以作为高速缓存12及闪存15相互之间的数据传输时的缓冲及暂存。
而进一步在高速缓存12方面,可如图2所示,本实施例的高速缓存12可例如是分割为二快取区块(分别为一第一快取区块CB0及一第二快取区块CB1)及一对照表空间TB。在实际应用设计上,高速缓存12可设计分割为至少二快取区块,本实施例并非用来加以限制。高速缓存12中的空间TB可以根据实际应用设计需求,用以储存逻辑/实体地址对照表。而第一快取区块CB0及第二快取区块CB1即是用以接收并暂存前述主机接口11所传输的数据,并且当该数据暂存于第一快取区块CB0或第二快取区块CB1后再进行确认及处理以成为待存数据,进而提供给闪存接口14。高速缓存12中快取区块之间的实际处理情形,将于以下做进一步的说明。
首先,第一快取区块CB0及第二快取区块CB1分别具有一标头(Header)信息H,而标头信息H进一步区分为一逻辑区块地址字段LBA、一实体区块地址字段PBA及一组页旗标字段PF0~PFn。其中,逻辑区块地址字段LBA及实体区块地址字段PBA用以指示所属的快取区块CB0或CB1所对应的逻辑区块地址及实体区块地址;而页旗标字段PF0~PFn则是用以指示所属的快取区块CB0或CB1中所暂存的分布在不同的页的数据的有效性。
再者,第一快取区块CB0及第二快取区块CB1中更具有复数个页地址P0~Pn,微处理器16系控制主机接口11以一逻辑页(Page)为单位来将数据写入第一快取区块CB0或第二快取区块CB1的页地址P0~Pn。并且,上述的页旗标字段PF0~PFn即是分别对应快取区块的页地址P0~Pn,以指示页地址P0~Pn中所储存的暂存数据的有效性。换句话说,当数据暂存至快取区块时,微处理器16便会更新相对应的页旗标字段PF0~PFn,以指示该数据为有效数据,而当该数据已指示为有效数据后,即表示该笔数据为欲写入闪存15的数据,因而形成为待存数据。其中,在本实施例中,若在页旗标字段PF0~PFn其中的一设为“1”即表示所对应的页地址的暂存数据为有效数据;反之以“0”来表示无效数据。当然,亦可利用其它方式的设计来指示暂存数据的有效性。
高速缓存12在实际设计上可例如为铁电式随机存取内存(FeRAM)、磁性随机存取内存(MRAM)及相位变化随机存取内存(PRAM)的任一种非挥发性内存,亦或者是采用静态随机存取内存(SRAM)等挥发性内存。闪存系统1中可进一步设计有一计时器19以产生一预设时间给微处理器16,使得微处理器16得以每隔该预设时间便控制高速缓存12中所暂存的数据写入闪存15中。
请再参考图3,为本发明的高速缓存的存取运作实施例示意图。如图所示,假设主机接口11接收到主机端系统2所传送的逻辑区块a(LBa)的第二逻辑页(Page 2)的数据,并将之暂存至高速缓存12。其中,若该数据所属的逻辑区块地址是落于第一快取区块CB0所对应的逻辑区块地址,则将该数据写入第一快取区块CB0中第二页地址P2中,并且设定对应的页旗标字段PF2为“1”以指示该暂存数据为有效数据。而若接下来的数据的逻辑地址同样是落于逻辑区块a(LBa),则直接在第一快取区块CB0上更新所属的页地址,并将暂存的该数据指示为有效数据;若接下来的数据的逻辑地址于前一笔数据相同(如同样位于第二逻辑页P2),则直接进行覆盖前一笔数据。
此外,逻辑区块a(LBa)的地址是对应于实体区块x(PBx)的地址,于是在图3中实体区块地址字段PBA中即是储存为PBx信息。
以下的内存数据处理过程的实施例是用以进一步说明本发明于高速缓存12与闪存15之间的数据处理流程。
图4A及图4B,为本发明内存数据处理过程的第一实施例示意图。本实施例接续上述图3的实施例的说明,如图4A中所示是在P0、P2及Pn的页地址已暂存了数据,并且也已指示为有效数据而成为待存数据。
此时,若闪存系统1接收到另一笔为逻辑区块b(LBb)的第零逻辑页(Page 0)的数据。于是,微处理器16便控制主机接口11及高速缓存接口13将数据暂存至第二快取区块CB1的P0页地址(如图4A中的(1)步骤),并且若接下来所接收到的数据同样是落于第二快取区块CB1所对应的逻辑区块地址时,则直接于第二快取区块CB1中写入或覆盖数据。
此外在执行(1)步骤的同时,微处理器16会依据第一快取区块CB0的页旗标字段PF0~PFn来确认第一快取区块CB0中的数据并非全部为待存数据,于是微处理器16同步执行一合并写入程序(如图4A中的(2)步骤),控制高速缓存接口13及闪存接口14而将第一快取区块CB0中的待存数据读出。并且再如图4B所示,自第一快取区块CB0中所读出的待存数据会与第一快取区块CB0所对应的实体区块(PBx)中的数据进行合并,而写入闪存15中的一空的实体区块(PBs)。其中,合并写入指的是,将第一快取区块CB0中的待存数据写入闪存15空的实体区块(PBs)中,而其余未更新到的页地址的数据则自第一快取区块CB0所对应的实体区块(PBx)中进行读取而写入对应的实体区块(PBs),以达到合并写入的程序。
最后,当微处理器16控制该合并后的数据写入至闪存15的空的实体区块(PBs)后,则进行更新第一快取区块CB0的页旗标字段PF0~PFn,以将已写入闪存15的待存数据指示为无效数据,并且进一步再抹除第一快取区块CB0所对应的闪存15实体区块(PBx)的地址中的数据,以及将逻辑区块LBa的地址对应至实体区块PBs的地址。
请再参考图5A及图5B,为本发明内存数据处理过程的第二实施例示意图。本实施例同样是接续图3的实施例的说明,也就是在第一快取区块CB0中已暂存了待存数据,如图5A中所示是在P0、P2及Pn的页地址已暂存了数据,并且也已指示为有效数据而成为待存数据。
首先,同样在接收另一笔为逻辑区块b(LBb)的第零逻辑页(Page 0)的数据之后,由于该数据所属的逻辑区块地址是由第一快取区块CB0转而落于第二快取区块CB1所对应的逻辑区块地址。于是,微处理器16便控制主机接口11将该数据暂存至第二快取区块CB1的P0页地址(如图5A中的(1)步骤)。此时,微处理器16会依据第一快取区块CB0的页旗标字段PF0~PFn来确认第一快取区块CB0中并非全部存在为待存数据,于是执行合并写入程序(如图5A中的(2)步骤)以控制高速缓存接口13及闪存接口14,由第一快取区块CB0所对应的闪存15实体区块(PBx)的地址中,读取对应第一快取区块CB0中未写入数据的页地址(未指示为待存数据的页地址)的数据,将该些页数据复制到第一块曲区块CB0中对应的页地址中。也就是除了P0、P2及Pn页地址以外,快取区块CB0中其它的页数据皆由闪存15实体区块(PBx)中对应的数据页复制过来。随后,更新快取区块CB0的页旗标字段PF0~PFn的状态,指示快取区块CB0中的数据为有效数据。
进而再如图5B所示,将第一快取区块CB0中所有已指示的待存数据写入闪存15空的实体区块(PBs)。并且进行更新第一快取区块CB0的页旗标字段PF0~PFn的状态,并抹除闪存15实体区块(PBx)的地址中的数据,将逻辑区块LBa的地址对应至实体区块PBs的地址。
承上所述,在前述内存数据处理过程的第一及第二实施例中,微处理器16执行合并写入程序时所需进行高速缓存12及闪存15之间的数据传输或处理,即可透过闪存记忆页缓冲器18来加以暂存及作为缓冲处理。
此外,当所接收的数据所属的逻辑区块地址是由原快取区块转而落于另一快取区块所对应的逻辑区块地址,且微处理器16依据原快取区块的页旗标字段PF0~PFn而确认原快取区块中已全部存在为待存数据,便读取整个原快取区块中的数据而直接写入闪存15的空的实体区块。之后,则同样再进行更新原快取区块的页旗标字段PF0~PFn以将已写入闪存15的待存数据指示为无效数据,并且进一步再抹除原快取区块所对应的闪存15实体区块的地址中的数据,以及更新逻辑/实体地址对照表的对应关系等动作。
为了再进一步详细揭示本发明的实际运作过程,请再参考图6,为本发明闪存系统的运作方法的实施例流程图。如图所示,本发明提供一种闪存系统的运作方法,其步骤包括:首先,进行接收一数据(S601),并且判断该数据所属的逻辑区块地址是否落于目前快取区块所对应的逻辑区块地址(S603)。
若步骤(S603)的判断结果为是,则表示目前接收到的数据与前一笔数据是暂存在同一快取区块中,于是便直接接收该数据并暂存至原快取区块。然后更新原快取区块中的页旗标字段,以将数据指示为有效数据而成为待存数据(S605)。而若步骤(S603)的判断结果为否,则表示目前接收的数据所属的逻辑区块地址系由原快取区块转而落于另一记忆区块所对应的逻辑区块地址。也就是目前接收的数据与前一笔数据属于不同的记忆区块的储存数据,所以须暂存于不同的快取区块。于是便将目前接收的数据暂存至另一快取区块中,并且更新该另一快取区块中的页旗标字段以将该数据指示为有效数据而成为待存数据(S607)。而在步骤(S605)或步骤(S607)之后,则再继续进行步骤(S601)接收数据的动作,以当所接收的数据是落于与前一笔数据相同的快取区块时(属于同一记忆区块中的数据),得以继续写入所属的快取区块。
此外,在步骤(S603)的判断结果为否而执行步骤(S607)的同时,更会同步进行以下的步骤。首先进行判断原快取区块是否已存满数据且皆已指示成为待存数据(S609)。若步骤(S609)的判断结果为否,即表示原快取区块中存在有非待存数据,于是便执行一合并写入程序(S611),合并原快取区块中的待存数据与原快取区块所对应的闪存实体区块地址中的数据,并且将合并后的数据写入闪存一可使用的(已抹除过的)实体区块。
反之,若步骤(S609)的判断结果为是,即表示原快取区块中整个区块的数据皆已被指示为待存数据,于是便执行一直接写入程序(S613),而不需与其它数据进行合并,以直接将原快取区块中的待存数据写入闪存一可使用的(已抹除过的)实体区块。
而在步骤(S611)或步骤(S613)进行写入程序之后,则更新原快取区块中的页旗标字段,以将已写入闪存的待存数据指示为无效数据(S615),而得以继续接收及暂存其它的数据。此外,在步骤(S615)之后,则再进行抹除原快取区块所对应的闪存实体区块中的数据(S617),以及更新逻辑/实体地址对照表,以将原快取区块属的逻辑区块地址对应至先前步骤S611或S613所述的数据写入的实体区块的地址(S619)。借此,借助重复本实施例所提供的步骤,以完成本发明闪存系统进行数据存取的运作。
综上所述,本发明借助增加一高速缓存,在写入数据要储存到闪存之前,先在高速缓存中作处理,以减少闪存上写入及抹除(Erase)的程序,并且再透过数据总线频宽的分时(Time Sharing)处理,以让高速缓存足以依据适当的分配而提供存取。此外,本发明再透过控制高速缓存中不同快取区块的存取,使之得以达到同步执行数据的暂存以及数据写入闪存的程序。借此,同时能有效提升闪存系统的存取效能以及内存寿命。
本发明中,逻辑/实体地址对照表可以储存在快取区块中的对照表空间TB中,亦可储存于其它空间,如主机的文件系统中。
但,以上所述,仅为本发明的具体实施例的详细说明及附图而已,并非用以限制本发明,本发明的保护范围应以权利要求书的范围为准,任何本领域技术人员在本发明的领域内,可轻易思及的变化或修饰皆可涵盖在本案所界定的保护范围之内。