CN1324482C - 窗口基底闪存储存系统的存取方法 - Google Patents
窗口基底闪存储存系统的存取方法 Download PDFInfo
- Publication number
- CN1324482C CN1324482C CNB031023444A CN03102344A CN1324482C CN 1324482 C CN1324482 C CN 1324482C CN B031023444 A CNB031023444 A CN B031023444A CN 03102344 A CN03102344 A CN 03102344A CN 1324482 C CN1324482 C CN 1324482C
- Authority
- CN
- China
- Prior art keywords
- window
- flash memory
- sector
- phase
- block
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000005055 memory storage Effects 0.000 title claims abstract description 26
- 239000000872 buffer Substances 0.000 claims abstract description 39
- 238000012546 transfer Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 description 12
- 238000012937 correction Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Landscapes
- Read Only Memory (AREA)
Abstract
一种窗口基底闪存储存系统的存取方法。此窗口基底闪存储存系统具有窗口信息区、额外保留区及多个缓冲区。此外,一个窗口信息区对应于具有多个实体区块的一个窗口,且窗口信息区储存有一窗口信息。其中,实体区块中的每一个都具有多个扇区。此存取方法首先将预定使用窗口所对应的窗口信息加载至SRAM。然后,找出资料需求组件所要求的需求扇区,并将此需求扇区自闪存加载至第一缓冲区中。之后,将加载至第一缓冲区的需求扇区传送至资料需求组件。而所有要传送到资料需求组件中,与此需求扇区相邻的扇区,就以管线的方法执行上述步骤,以将这些与需求扇区相邻的扇区管线化,经过上述的缓冲区而传送至资料需求组件中。
Description
技术领域
本发明是有关于一种大规模储存系统的存取方法,且特别是有关于一种窗口基底闪存储存系统的存取方法。
背景技术
闪存储存系统一般含有两大部分:一为闪存,一为控制器。闪存为资料储存的地方;控制器则作为闪存与主机的桥梁,负起与主机沟通并管理闪存的任务。控制器是由几个部份所组成,含微处理器,只读存储器,静态随机存取内存(SRAM),闪存接口及主机接口等。只读存储器主要放置了微处理器运作时所需的程序代码;SRAM主要有两个用途:一为放置窗口的相关信息;二为当成闪存与主机系统之间的资料缓冲区。控制器透过主机接口与主机沟通并以闪存接口存取闪存中的资料。
闪存是由许多的区块所构成(Blocks),而一定数目的区块可被归类为一窗口,记录每一窗口的相关信息我们称之为窗口信息。在一般的闪存储存系统中,为了降低使用SRAM的成本,会将窗口信息储存于闪存中,同时于系统运作时,只加载一部分的窗口信息到SRAM中。
假若我们要针对某一窗口作读写时,首先需由闪存中加载此窗口的窗口信息到SRAM中,其次我们才能对这一个窗口作读写的动作。若因不正常断电或插拔等因素常会造成在SRAM中的某些窗口信息没有备份回闪存中。如果于下次使用时直接将闪存中的这些窗口信息加载SRAM中,将造成资料错乱的情形。
对一窗口内的一扇区(Sector)作读写时,须经过数个阶段(Stage)。若有2个以上的扇区要读写时,现存处理方式为处理完一个扇区的所有阶段再开始处理另一扇区的阶段,但是此种方式将降低存取的效能;或是利用两个以上不同控制单元的闪存以交错轮流(Interleave)的方式来增加读写效能,但是此种方式有其限制,且将产生瞬间耗电过大的负面影响(Penalty)。
发明内容
有鉴于此,本发明提出一种窗口基底闪存储存系统的存取方法,其以并行控制管线的方式大幅提升读写的效能。
本发明提出一种窗口基底闪存储存系统的存取方法,其适用于具有窗口信息区与额外保留区之闪存上,且此窗口基底闪存储存系统具有多个缓冲区。此外,一个窗口信息区对应于具有多个实体区块的一个窗口,且窗口信息区储存有一窗口信息。其中,上述之实体区块中的每一个都具有多个扇区。此存取方法首先将预定使用窗口所对应的窗口信息加载至SRAM。接下来,找出资料需求组件所要求的需求扇区,并将此需求扇区自闪存加载至第一缓冲区中。之后,将加载至第一缓冲区的需求扇区传送至资料需求组件。而所有要传送到资料需求组件中,与此需求扇区相邻的扇区,就以管线的方法执行上述步骤,以将这些与需求扇区相邻的扇区管线化,经过上述的缓冲区而传送至资料需求组件中。
此外,本发明另提出一种窗口基底闪存储存系统之存取方法,其适用于具有窗口信息区与额外保留区之闪存上且此窗口基底闪存储存系统具有多个缓冲区。此外,一个窗口信息区对应于具有多个实体区块的一个窗口,且窗口信息区储存有一窗口信息。其中,上述之实体区块中的每一个都具有多个扇区。此存取方法首先传送要写入闪存之写入扇区到第一缓冲区中,并计算写入扇区于闪存中的地址。接下来,在检查上一次写入闪存之操作是否正确后,送出写入命令至闪存中以将写入扇区储存至闪存。而要写入闪存之相邻的写入扇区,就藉由管线操作而经由上述之缓冲区管线化并传送至闪存中。
综上所述,本发明藉由额外保留区来储存有关各窗口的摘要资料,并藉由快速建立法、正常建立法与逐步搜寻建立法来使得窗口基底闪存储存系统的启始速度加快。而藉由本发明以软件加以管线化的操作过程,也可进一步加速整个窗口基底闪存储存系统的操作速度。
为让本发明之上述和其它目的、特征、和优点能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下:
附图说明
图1绘示的是根据本发明的窗口基底闪存储存系统中,闪存的资料架构图;
图2绘示的是数据区块或写入区块中额外字节的一较佳实施例的数据结构图;
图3绘示的是写入区块状态或空置区块状态的一较佳实施例的数据结构图;
图4绘示的是根据本发明的一较佳实施例于读写时各个模块运作的流程图;
图5绘示的是静态随机存取内存(SRAM)中的使用窗口及预备窗口的一较佳实施例的架构图;
图6绘示的是根据本发明的一较佳实施例之窗口信息加载SRAM的流程图;
图7绘示的是窗口读写模块的一较佳实施例于的写入流程图;
图8绘示的是习知读出扇区资料的方式;
图9绘示的是根据本发明的一较佳实施例之并行管道读出扇区资料的流程图;
图10绘示的是根据本发明的一较佳实施例之并行管道读出的流程图;
图11绘示的是根据本发明的一较佳实施例中,经由并行管道将资料写入闪存的流程图;以及
图12绘示的是根据本发明的一较佳实施例之并行管道写入的流程图。
附图标记说明
100:窗口区域 101:动态连结区
102:窗口信息区 103:动态连结信息区
104:启始信息区 105:实体格式
106:逻辑格式 107:区块号码
108:相对区块号码 109:相对逻辑区块号码
110:逻辑区块号码 111:相对逻辑扇区号码
112:逻辑扇区号码 120:窗口基底区
121:额外保留区 201:相对逻辑区块编号
202,303:窗口编号 203:循环计数器
204:相位锁定旗标 205,305:加总检查码
206:资料错误旗标 207,307:区块错误旗标
208,308:错误修正码
301:相对区块编号
302:相对逻辑扇区编号
304:写入区块循环计数器
306:窗口信息的循环计数器
401-403,601-609,701-710,901-910,1001-1007,1101-1109,
1201-1208:本发明一较佳实施例的步骤
501:预备窗口变量区
502:主动窗口变量区
503-505:预备窗口变量
801-802:习知技术所使用的读取方法步骤
具体实施方式
图1绘示的是根据本发明的窗口基底闪存储存系统中,闪存的资料架构图。闪存是由许多的区块所构成,所有的区块可被分成两大部分:窗口基底区120及额外保留区121。
窗口基底区中每一窗口编号区域1到15各包含了512个资料区块,但有时最后一个窗口编号区域15并非刚好为512个。额外保留区可区分为四大区域,分别为动态连结区101、窗口信息区102、动态连结信息区103及启始信息区104。动态连结区101的区块可用来配置给各个窗口使用;每一个窗口可在窗口信息区102分配到两个区块来记录其窗口信息;动态连结信息区103则记录了动态连结区的配置状况;启始信息区104则记录了前面三个区域的位置及本系统可储存的逻辑扇区总数等信息。
如图1,实体格式105代表了控制器寻址闪存的方式;逻辑格式106则代表了主机系统对闪存系统寻址的方式。图1中闪存总计8192个区块,每一区块由32个扇区所构成。在实体格式105中区块编号107为从0到8191,相对区块编号108以每512个区块为一单位,除窗口15外,各个窗口的相对区块编号为0到511,额外保留区的相对区块编号为从512开始计算。逻辑格式106中亦包含了逻辑区块编号110为从0到7999;相对逻辑区块编号109亦以每512个区块为一单位,除窗口15外,各个窗口的相对逻辑区块编号为0到511;因一逻辑区块亦由32个逻辑扇区所构成,故逻辑扇区编号112为从0到255999;相对逻辑扇区编号111以每1638个扇区为一单位,除窗口15外,各个窗口的相对逻辑区块编号为0到16383。由图1我们可以清楚的看到主机系统的逻辑寻址方式是无法找到额外保留区的。
每一窗口包含三种类型的区块,分别为资料区块(Data Block),写入区块(Writing Block)及空置区块(Spare Block)。当我们要对原先的资料区块写入资料时,会先对写入区块做写入的动作;若写入区块写满时又要对另一资料区块作写入动作,则写入区块会取代原先的资料区块;原先的资料区块可被消除成为空置区块;空置区块可拿来作为写入区块以供另一资料区块作写入时使用。
如图1,窗口0区域100含512个资料区块,一开始时属于窗口0的一个写入区块及一个空置区块被配置在动态连结区101。每一窗口信息包含了此窗口当中资料区块与逻辑区块的对应表以及写入区块与空置区块的状态。以一个含有512个资料区块,一个写入区块及一个空置区块的窗口而言,需要用到两个扇区来记录窗口信息,这两个扇区的使用者资料区记录了512个资料区块与逻辑区块的对应关系,两扇区的额外16个字节则分别记录了写入区块及空置区块的状态。
请参照图2,其绘示了是数据区块或写入区块中额外字节的一较佳实施例的数据结构图。
如图所示,相对逻辑区块编号201记录了这一个区块所对应到的相对逻辑区块编号。窗口编号202记录了这一个区块所归属的窗口。循环记数器203系用来判别资料的新旧,写入时,写入区块的循环记数器值为资料区块的值加一。相位锁定旗标204记录着窗口信息所应备份回窗口信息区块的扇区位置,由此一旗标可判别窗口信息前一次是否备份成功。加总检查码205为前述资料的加总检查码。资料错误旗标206指出扇区的使用者资料区资料正确与否。区块错误旗标207指出区块是否有问题。错误修正码208则为扇区的使用者资料区之错误修正码。
请参照图3,其绘示了写入区块状态或空置区块状态的一较佳实施例的数据结构图。
如图所示,相对区块编号301记录了写入区块或空置区块所在的位置。相对逻辑扇区编号302的值若为0xFFFF,表示这些资料为空置区块状态,否则由此值可以得到最后写到写入区块的扇区位置。窗口编号303记录了这一个区块所归属的窗口。写入区块循环记数器304记录写入区块循环记数器的值。加总检查码305系为除区块错误旗标及错误修正码外的资料加总检查码。窗口信息的循环记数器306则可判别那一个的窗口信息区块较新。区块错误旗标307可指出区块是否有问题。错误修正码308则为扇区的使用者资料区之错误修正码。
整个闪存读写的流程是由三个模块来完成,分别为窗口建立模块、窗口读写模块及闪存存取模块。窗口建立模块主要负责将欲使用窗口正确的窗口信息加载静态随机存取内存(SRAM)中。窗口读写模块主要是响应主机系统的要求并决定存取闪存中那一区块的资料。闪存存取模块主要为接受其它模块的要求,直接对闪存作读出、写入、消除及检查状态等动作,以简化其它模块的复杂度。举例来说,请参照图4,其绘示的是根据本发明之一较佳实施例于读写时各个模块运作的流程图。在本实施例中,首先完成窗口建立模块401,然后再进行窗口读写模块402,直到完成所有应处理的扇区。若尚未处理完时又需针对另一窗口运作则需重新进入窗口建立模块。此流程图中虽未显示出闪存存取模块,但事实上于窗口建立模块及窗口读写模块对闪存作存取时皆需呼叫闪存存取模块。
在窗口建立模块的执行过程中,首先考量如何有效率的运作SRAM中各个窗口信息。为了降低在闪存与SRAM间切换各个窗口信息所花费的时间,最少应加载两个以上的窗口信息。越多的窗口信息虽可减少切换时间,但仍应考量SRAM的成本。在本发明的一个较佳实施例中,系以加载三个窗口信息来说明,其中一定包括窗口0,因为以DOS档案系统的运作而言一定会和这一个窗口有关。
从闪存中所加载到SRAM中的窗口信息,其中有关写入区块与空置区块状态的资料构成了SRAM中所谓的窗口变量。这些窗口变量在系统运作时是经常需要存取的,因此为了降低程序的复杂度及提升程序代码运作的效率,我们会将欲使用窗口变量移到一固定位置。举例而言,如图5所示,在SRAM中地址400到459为预备窗口变量区501,放置预备窗口0变量503、预备窗口1变量504及预备窗口2变量505。
若欲使用窗口为窗口0,因其为预备窗口,故只需将预备窗口0的20个字节的窗口变量由地址400至419移到地址20至39的地方,也就是使用窗口变量区502中变量1到变量20的位置,如此窗口0便成为使用窗口。当欲使用窗口变成窗口2时,首先必须将储存于主动窗口变量区502中的使用窗口0的变量移回原预备窗口0的变量的位置,同时将预备窗口2的变量移到主动窗口变量区502中,如此窗口2便成为使用窗口。在程序的规划上则只针对使用窗口的变量1到变量20作存取,如此可降低程序代码的复杂度并提升程序代码的效率。
当欲使用窗口非为预备窗口时,首先将使用窗口移回原预备窗口区中,然后选择一个预备窗口备份回闪存时再由闪存中加载欲使用窗口之变量到使用窗口变量区中。很明显地此种备份方式并不能保证下一次使用时闪存中之窗口信息皆为正常,但此种情形就如同遭到不正常断电或插拔的状况一样。重点是当下一次使用时如何能快速且将正确的窗口信息加载SRAM中。
以下将详细描述本发明用以解决上述问题的三种不同方式。
壹:快速建立法
此种方法主要是能够快速的判别在闪存中的窗口信息到底是不是有问题。若闪存中的窗口信息满足下列的条件,则我们断定其为正常的。
1.该窗口信息扇区中错误修正码没有问题。
2.该窗口信息扇区中加总检查码没有问题。
3.空置区块状态中所指向的区块(空置区块)确实为被消除过的区块。
4.写入区块状态中所指向的区块(写入区块)中其逻辑区块编号、循环记数器及最后一个写入的扇区与写入区块状态中所记录的一致。
5.写入区块状态中所指向的区块(写入区块)中其相位锁定旗标的值不等于窗口信息区块中第一个空白扇区的值。
实务上因大部份的窗口信息皆为正常的,我们便直接加载窗口信息到SRAM中,再利用此法判别窗口信息是否为正常的。若不正常的话则需采用下面两种方法之一以将正确的窗口信息加载SRAM中。贰:正常建立法
当不能用快速建立法时,我们可由最后的一笔窗口信息往回找到一笔’可用窗口信息’,由于窗口信息中资料区块与逻辑区块对应表记录了该窗口所属的所有资料区块的位置,而写入区块状态及空置区块状态则记录了该窗口所属的写入区块及空置区块的位置,因此我们可找到此窗口的所有区块以重建该窗口所属的正确的窗口信息并加载SRAM中。上述所谓’可用窗口信息’应满足下列条件:
1.该笔窗口信息的资料区块与逻辑区块对应表的资料没有不能修复的错误修正码。
2.该笔窗口信息的写入区块及空置区块的状态中加总检查码是正确的。
参:逐步搜寻建立法
另一种在不能用快速建立法时所能使用的方法就是,可以在窗口区块可能的储存区域上,逐一搜寻属于此窗口的所有区块,然后再重建正确的窗口信息。由于各个窗口的区块是不会交换的,所以我们只需搜寻窗口编号区域及所有已被动态分配的区块。若空置区块位于动态连结区时因并不容易分辨是属于那一个窗口,因此基本上我们只找回属于该窗口的资料区块及写入区块,然后再重新配置一空置区块。如此我们可以重建正确的窗口信息并加载SRAM中。
图6为图4步骤401窗口建立模块的细部流程,说明了如何将窗口信息加载SRAM。首先我们判断欲使用窗口是否为使用窗口,如步骤601,若是,则只需针对使用窗口运作即可;若不是,进入步骤602将目前的使用窗口移回原预备窗口的位置。再进入步骤603,判别欲使用窗口是否为预备窗口之一。若是,则让位于预备区的欲使用窗口成为使用窗口;若不是,则进入步骤604,选择一预备窗口备份回闪存中。继续依步骤605,使用快速建立法来加载欲使用窗口的窗口信息到SRAM中。若成功的话即完成使用窗口的建立,若失败的话则利用步骤606的正常建立法。若成功的话即完成使用窗口的建立,若失败的话则再利用步骤607的逐步搜寻建立法,继续于步骤608时,将利用逐步搜寻建立法所完成的最新的窗口信息先备份一份在闪存中,并于步骤609时完成加载SRAM中的动作。
图7为图4步骤402窗口读写模块执行窗口写入动作时的细部流程。步骤701,首先判别是否针对原有的写入区块作写入动作。若为针对原有的写入区块,于步骤702时判别是否会对已写过的扇区重复写入,若不会产生这种状况,则执行步骤707判别是否执行预写的动作。若会产生重复写入,则进入步骤703,将原有的写入区块清除并于步骤704将空置区块配置给原有的写入区块,然后回到步骤701。
若于步骤701时并非对原有的写入区块作写入动作,则进行至步骤705,将原有的写入区块作清除,同时于步骤706时将空置区块配置给目前所需的写入区块然后进入步骤707判别是否执行预写的动作。
不论是否执行预写的动作,都会进入步骤709以对写入区块作写入的动作,这一步骤只做到目前的写入区块写满或资料已写完。步骤710,判别对这一窗口的资料是否写完了。若是,则结束该窗口的写入动作;若不是,则回到步骤701。
步骤703或705清除写入区块的动作包含下列的步骤:
1.写入区块空白的扇区由资料区块中的资料补满。
2.将写入区块改成资料区块,即更新窗口信息中资料区块与逻辑区块的对应关系。
3.消除原有的资料区块,以将其转换成空置区块。
步骤707预写资料是为了保持资料依序写入,而把主机系统不准备写入的扇区资料,由资料区块搬到写入区块。
图4之步骤402执行窗口读写模块中的读出动作是比较简单的。
首先检查所要读出的资料是否在写入区块中。若是的话则写入区块中的资料为所要读出的资料;若不是的话则资料就在资料区块中。
读写时采用并行管道的方式主要是用来改善读写时的效能。但应满足下列的条件才能提升效能。
1.硬件需求上至少含两个独立的缓冲区。当一缓冲区与主机传递资料时,另一个可以同时对闪存作存取的动作。
2.主机存取的资料在本窗口中最少含两个以上连续的扇区。
以一主机从闪存储存系统读出一扇区的运作而言,可分成三个阶段。第一阶段为微处理器计算主机要求读出的扇区在闪存中那一个位置。第二阶段为微处理器送出读出(Read)的命令到闪存,等待闪存准备好资料(Ready),然后从闪存中读出该扇区且置放于缓冲区中,并作错误修正码的检查及更正的动作。第三阶段为主机得知缓冲区中的资料已经准备好了,并完整读取该扇区的资料。
假设阶段一需时25微秒,阶段二需时65微秒,阶段三需时100微秒。如图8所示,为一般的读出方式,我们可以发现扇区1的读出801需经过三个阶段,共花费了190微秒。扇区一读完后再进行扇区二的读出802动作,同样的亦花费了190微秒。若共有n个扇区要读出,需花费190*n微秒的时间。
如图9所示,为并行管道的读出方式,我们可以发现扇区1的读出901需经过三个阶段,共花费了190微秒。但是在扇区一进行阶段二902的动作时,扇区二阶段一903的读出动作亦同时进行;在扇区一进行阶段三904的动作时,扇区二阶段二905及扇区三阶段一906的动作亦同时进行。因此扇区二的读出907只需花费扇区二阶段三的时间,即100微秒,同时此时亦进行扇区三阶段二909及扇区四阶段一910,故我们可推论扇区三的读出亦花费100微秒。由此可知,若有n个扇区要读出,则只需要花费190+100*(n-1)微秒的时间。
图10为使用并行管道作读出动作的流程图。首先我们计算出所要读的扇区是在闪存中哪一个位置,如步骤1001。然后进入第二阶段的前半段,如步骤1002。接下来我们可以计算下一个所要读的扇区的位置,如步骤1003。再于步骤1004中完成第二阶段剩余的部分。步骤1005,首先检查主机是否已接收完缓冲区中前一扇区的资料,若目前进行的为第一个扇区就不需此动作,然后通知主机收取缓冲区中这一扇区的资料。再于步骤1006判断是否还有要读的资料。若有,则继续回到步骤1002;若无,如步骤1007,则等主机收取完缓冲区中扇区的资料即结束运作。
主机系统将扇区的资料写入闪存储存系统中的动作亦可分成三个阶段:第一阶段为微处理器要求主机开始传送资料,并由主机传送完一扇区的资料到缓冲区中。第二阶段为微处理器计算所要写入扇区的位置。第三阶段为检查上一次的写入动作是否正确并送出命令及地址,然后传送完缓冲区的资料并送出写入命令到闪存中。
图11为根据本发明的一较佳实施例中,经由并行管道将资料写入闪存的流程图。本较佳实施例系将写入操作分为三个阶段。阶段1是将要写入闪存的一个写入扇区传送到一个缓冲区中。阶段2是计算在闪存中,此写入扇区的地址。阶段3则是检查前一个闪存的写入操作是否正确,并接着将缓冲区中的写入扇区传送到闪存中。再者,在此较佳实施例中,在第一写入扇区的阶段1(1101)的写入操作结束之前,针对第一写入扇区的写入操作可以由阶段1(1101)进入到阶段2(1102),且阶段2(1102)也会在阶段1(1101)结束之前就结束。在第二写入扇区的阶段1(1103)的写入操作进行的期间,第一写入扇区的阶段3(1104)与第二写入扇区的阶段2(1105)也会接连的开始。第二写入扇区的阶段2(1105)最先结束,而之后第一写入扇区的阶段3(1104)与第二写入扇区的阶段1(1103)则接续的结束操作。所有完成写入操作的其它阶段会以类似上述的顺序接续的开始与结束。最后,最后一个写入扇区的阶段3(1109)会独自的开始与结束。
图12一为使用并行管道作写入动作的流程图。此一流程图为图7步骤709中的细部动作。我们在图7流程图开始700时就开始传送第一个扇区到缓冲区中。在图12中,于步骤1201时计算出所要写入的扇区是在闪存中哪一个位置。步骤1202等待主机填完一个缓冲区,同时判别是否还有资料未放入缓冲区中,若有的话要求主机传送下一扇区。步骤1203,检查上一次写入的动作是否正确,若目前处理的为第一个扇区则此动作省略,然后送出命令及地址并开始将缓冲区的资料传送到闪存中。步骤1204,计算出所要写入的下一扇区是在闪存中那一个位置。步骤1205,等待缓冲区传送资料到闪存的动作完成,并送出写入指令到闪存中。步骤1206,检查写入区块是否写满了。若是,如步骤1208,检查前面写入后的状态便结束;若否,则进入步骤1207,判别是否所有资料已传完毕。若是,则进入步骤1208,检查前面写入后的状态便结束;若否,则回到步骤1202。
若进行并行管道时发现写入动作失败,则以下列步骤处理。
1.终止并行管道的进行。
2.取得一个可用的空置区块。
3.把失效的区块内有用的资料搬到空置区块中。
4.失效的区块中标示区块错误旗标,并以步骤2中所取得的区块代替失效的区块。
5.重建并行管道的进行。
综上所述,现将本发明的优点略述如下。本发明以三种方法将窗口信息加载SRAM中,这些方法包括快速建立法、正常建立法与逐步搜寻建立法。窗口信息加载SRAM后,本发明还利用并行管道的方法来提升读写的性能。使用并行管道主要是能够打破一个扇区读写完再读写另一扇区的规则,也就是说,当进行到一扇区当中的一个阶段时,就能够同时进行其它扇区的另一阶段。
虽然本发明已以一较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明之精神和范围内,当可作些许之更动与润饰,因此本发明之保护范围当视后附之权利要求书所界定者为准。
Claims (4)
1.一种窗口基底闪存储存系统的存取方法,适用于具有一窗口信息区与一额外保留区的一闪存上,且该窗口基底闪存储存系统具有复数个缓冲区,该窗口信息区对应于具有复数个实体区块的一窗口,且该窗口信息区具有一窗口信息,其中,该些实体区块中的每一个具有复数个扇区,该窗口基底闪存储存系统的存取方法包括:
A.开始传送要写入该闪存的一写入扇区到一第一缓冲区中并计算该写入扇区于该闪存中的地址;
B.检查上一次写入该闪存的操作是否正确,并送出一写入命令至该闪存中以将该写入扇区储存至该闪存;以及
C.以并行管线方法执行步骤A到B,将要写入该闪存之相邻的该些写入扇区,经该些缓冲区管线化传送至该闪存中,其中管线方法是利用二并行的管道,使的步骤A与步骤B可重迭与交替进行。
2.如权利要求1所述的窗口基底闪存储存系统的存取方法,其特征在于其中当该些缓冲区中的任一个接收该写入扇区时,该些缓冲区中的另一个可以同时存取该闪存。
3.一种窗口基底闪存储存系统的存取方法,适用于具有一窗口信息区与一额外保留区的一闪存上,且该窗口基底闪存储存系统具有复数个缓冲区,该窗口信息区对应于具有复数个实体区块的一窗口,且该窗口信息区具有一窗口信息,其中,该些实体区块中的每一个具有复数个扇区,该窗口基底闪存储存系统的存取方法包括三个阶段:
阶段1:找出由一资料需求组件所要求的一需求扇区;
阶段2:将该需求扇区从该闪存加载到该些缓冲区中之一;以及
阶段3:将加载于该缓冲区中之该需求扇区传送至该资料需求组件;
其中,该些需求扇区的三个阶段系以平行管线化操作进行,并在一第一需求扇区的阶段2的执行期间执行一第二需求扇区的阶段1,在该第一需求扇区的阶段3执行期间执行该第二需求扇区的阶段2,以及在该第二需求扇区的阶段2执行期间执行一第三需求扇区的阶段1。
4.一种窗口基底闪存储存系统的存取方法,适用于具有一窗口信息区与一额外保留区的一闪存上,且该窗口基底闪存储存系统具有复数个缓冲区,该窗口信息区对应于具有复数个实体区块的一窗口,且该窗口信息区具有一窗口信息,其中,该些实体区块中的每一个具有复数个扇区,该窗口基底闪存储存系统的存取方法包括三个阶段:
阶段1:传送将要写入该闪存的一写入扇区至该些缓冲区其中之一;
阶段2:计算该写入扇区于该闪存中的地址;以及
阶段3:检查在该闪存上的前一个写入操作是否正确,并在之后将该缓冲区中之该写入扇区传至该闪存;
其中,该些写入扇区的三个阶段系以平行管线化操作进行,并在一第一写入扇区的阶段1的执行期间执行该第一写入扇区的阶段2,在一第二写入扇区的阶段1执行期间执行该第一写入扇区的阶段3,在该第一写入扇区的阶段3执行期间执行该第二写入扇区的阶段2,以及独自开始与结束一最后写入扇区的阶段3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031023444A CN1324482C (zh) | 2003-01-31 | 2003-01-31 | 窗口基底闪存储存系统的存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031023444A CN1324482C (zh) | 2003-01-31 | 2003-01-31 | 窗口基底闪存储存系统的存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1521633A CN1521633A (zh) | 2004-08-18 |
CN1324482C true CN1324482C (zh) | 2007-07-04 |
Family
ID=34281672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031023444A Expired - Lifetime CN1324482C (zh) | 2003-01-31 | 2003-01-31 | 窗口基底闪存储存系统的存取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1324482C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105788030B (zh) * | 2016-03-25 | 2018-07-06 | 航天科技控股集团股份有限公司 | 一种节省内存的循环代替式数据发送方法 |
WO2018136094A1 (en) * | 2017-01-23 | 2018-07-26 | Micron Technology, Inc. | Partially written block treatment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1155341A (zh) * | 1994-06-03 | 1997-07-23 | 英特尔公司 | 基于快速存储器的主存储器 |
-
2003
- 2003-01-31 CN CNB031023444A patent/CN1324482C/zh not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1155341A (zh) * | 1994-06-03 | 1997-07-23 | 英特尔公司 | 基于快速存储器的主存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN1521633A (zh) | 2004-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101086855B1 (ko) | 고속 동작하는 반도체 스토리지 시스템 및 그 제어 방법 | |
US7254668B1 (en) | Method and apparatus for grouping pages within a block | |
US6718430B2 (en) | Window-based flash memory storage system and management and access methods thereof | |
US8510532B2 (en) | Logical-to-physical address translation for a removable data storage device | |
JP4182993B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
TWI661299B (zh) | 記憶體管理方法以及儲存控制器 | |
JP6811819B2 (ja) | エラー処理方法、並びにデータ記憶装置及びその制御装置 | |
CN1482547A (zh) | 以非破坏性方式升级驱动器固件的方法和系统 | |
CN1652253A (zh) | 存储卡和半导体器件 | |
CN1658171A (zh) | 通过控制频繁受访问扇区对非易失性存储器的更快写操作 | |
CN1705936A (zh) | 用于分割一逻辑块的方法及设备 | |
CN1637721A (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
CN1222951C (zh) | 闪速存储器的实时处理方法 | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
KR20100091379A (ko) | 반도체 디스크 장치 및 그것의 프로그램 페일 처리 방법 | |
CN101078991A (zh) | 基于bios读写内存spd的计算机系统信息保存和读取方法 | |
CN1435758A (zh) | 存储装置、数据处理方法以及数据处理程序 | |
TWI277980B (en) | Memory card, semiconductor device, and method of controlling semiconductor memory | |
CN1447243A (zh) | 快闪存储器中快速且能防止不正常断电的演算法及其控制系统 | |
CN1324482C (zh) | 窗口基底闪存储存系统的存取方法 | |
CN1534509A (zh) | 具有快速且预防不当操作功效的快闪记忆体演算法及其控制系统 | |
TW202322129A (zh) | 用於改善存儲裝置的資料輸入/輸出性能的設備和方法 | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
CN111596859B (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: 20070704 |