CN1249585C - 闪速存储器*** - Google Patents
闪速存储器*** Download PDFInfo
- Publication number
- CN1249585C CN1249585C CNB988025930A CN98802593A CN1249585C CN 1249585 C CN1249585 C CN 1249585C CN B988025930 A CNB988025930 A CN B988025930A CN 98802593 A CN98802593 A CN 98802593A CN 1249585 C CN1249585 C CN 1249585C
- Authority
- CN
- China
- Prior art keywords
- mentioned
- flash memory
- data
- address
- physical 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
- G11C29/765—Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供具有管理主***与闪速存储器的数据传送的存储器管理器的闪速存储器***。存储器管理器具有在从上述主***提供给闪速存储器的逻辑地址与作为闪速存储器的实际地址的物理地址之间进行变换的地址变换表。而且,地址变换表具有规定为对应于闪速存储器的最小消除单位的结构。使用这样的结构,能够实现写入/读出时间延迟少,能够以高速进行动作,能够适宜地进行不良扇区和不良比特等的管理的闪速存储器***。
Description
技术领域
本发明涉及作为非易失性存储器的闪速存储器,更详细地讲涉及具备适宜地管理闪速存储器的管理***的闪速存储器***。
背景技术
作为计算机***所使用的存储媒体,当前正在使用着硬盘,软盘等磁存储媒体。其中,大容量而且能够快速动作的硬盘由于能够存储大量的数据,因此处于***的中心存储媒体的位置。
然而,硬盘的制造工艺复杂,难以谋求小型,轻量化和低成本化,为了使构造的各部分工作而需要比较大的消耗功率,特别是在便携设备等的应用方面成为问题。
作为硬盘以外的存储媒体,已知作为非易失性的存储元件的闪速存储器。闪速存储器不需要用于维持存储的电源,然而其构造上,在存取次数方面具有1010左右的有限的物理寿命。为此,为了长期比较安全地稳定使用闪速存储器,需要检测寿命完结的存储元件和发生不良状况的位置,回避这些元件和位置保持数据。进而,在闪速存储器的情况下,不能够在已经存储的数据的位置上写新的数据。从而,在要存储新的数据时,要在消除了暂时存储的内容以后写入数据。然而,可消除的单位不是以一个个的存储元件(比特),而是例如以4k字节和8k字节这样的块单位进行。因此,通常把需改写的数据以外的数据部分从将被消除的块中取出之后,再对块进行消除,然后,再次把数据部分重新加入或写入,写入处理动作非常复杂。
在特开平2-292798号公报中记述了以提高向闪速存储器的写入/读出速度,管理不良单元等为目的的闪速EEPROM***。在这里记述的闪速EEPROM***,通过采用超高速缓冲存储器谋求提高存储时间。然而,依赖于超高速缓冲存储器的存取时间的缩短自然受到限制,为了进一步提高其闪速存储器的写入/读出速度,需要使闪速存储器***总体的动作速度提高。
另外,在上述公报中,为了进行不良单元等的管理,使冗余区域具有ECC等信息,仅用该冗余区域的信息进行不良单元等的管理。然而,由于仅用冗余区域进行不良单元等的管理,因此必须加大该冗余区域的存储容量,结果将压缩存储实际数据的区域。进而,该***中由于仅用冗余区域进行不良单元等的管理,在读出实际数据之前,要读出上述冗余数据,判断存储在存储器内的数据是否适宜以及进行修复等,因此成为使存取时间大幅度减缓的原因。
发明内容
本发明的目的在于:提供一种能减少写入/读出时间的延迟,能够比较简单地进行写入动作,能够以高速进行动作,能够适宜地管理不良扇区等的闪速存储器***。
为了实现上述目的,本发明的闪速存储器***,包括:
设置在仅能对消除了其存储内容的物理块进行写入的闪速存储器与主***之间,对该闪速存储器与主***之间的数据传送进行管理的存储器管理器,其中闪速存储器具有存储区域且能按分割了该存储区域的每个最小存储单位进行写入和读出,能把由预定数量的最小存储单位构成的物理块作为最小消除单位来消除存储内容,
连接上述存储器管理器和上述主***的总线接口,和
连接上述存储器管理器和上述闪速存储器的闪速存储器接口,
上述存储器管理器包括:
存储使由上述主***提供的逻辑地址所特定的逻辑块的地址与包含在上述存储区域中的上述物理块的地址对应的地址变换表的地址变换表存储装置,
从上述地址变换表求出与由上述主***提供的逻辑地址所特定的上述逻辑块对应的物理块,并对该物理块实现来自该主***的访问的访问装置,
把上述存储区域中与上述逻辑块不对应的物理块作为使用待机状态的待机队列来进行管理的装置,和
对包含表示上述各物理块的状态的信息即至少表示其是否良好以及是否正在使用的信息的块状态表进行存储的块状态表存储装置。
更好是,所述闪速存储器***包括参照上述块状态表来生成上述地址变换表的地址变换表生成装置。
更好是,所述闪速存储器***包括:当上述主***提供写入上述闪速存储器的数据时参照上述块状态表,当作为写入预定目标的物理块正在使用时,把上述使用待机状态的待机队列的物理块作为新的写入物理块来写入上述数据,把正在使用的物理块设定为待机队列的物理块,据此来进行块交换的交换装置。
更好是,上述访问装置包括:在上述总线接口与上述闪速存储器接口之间,分别暂时存储预定长度的数据的2个缓冲器,和
在上述2个缓冲器中交替地存储从上述主***一侧或闪速存储器一侧发送的数据,并且从装满数据的缓冲器中把数据交替地发送到闪速存储器一侧或主***一侧的装置。
更好是,上述访问装置在对上述物理块开始进行来自上述主***的访问之前,进行根据上述地址变换表求出与上述逻辑块对应的物理块的处理。
更好是,所述闪速存储器***包括:当上述主***提供写入上述闪速存储器的数据时参照上述块状态表,判断作为写入预定目标的物理块中是否有故障,当有故障时,把上述使用待机状态的待机队列的物理块作为新的写入物理块来写入上述数据,把判断为有故障的物理块设定为待机队列的物理块,据此来进行块交换的交换装置。
更好是,上述各最小存储单位分别具有写入与该最小存储单位所属的物理块对应的逻辑块的地址的冗余区域,上述地址变换表存储装置由RAM构成,上述地址变换表根据复位后从上述冗余区域中读出的数据形成在上述RAM上。
更好是,上述各最小存储单位分别具有写入表示该最小存储单位所属的物理块的状态的信息的冗余区域,上述块状态表存储装置由RAM构成,上述块状态表根据复位后从上述冗余区域中读出的数据形成在上述RAM上。
更好是,上述访问装置在把来自上述主***的数据写入上述闪速存储器时,把该数据写入上述待机队列内的任意物理块中,把该物理块作为新的写入预定物理块,把上述主***用逻辑地址指示的原来的写入预定目标物理块设定为上述待机队列的物理块。
更好是,上述访问装置在由主***用逻辑地址指示的原来的写入预定目标物理块中具有已经写入作为写入目标的最小存储单位以外的最小存储单位的数据时,在来自上述主***的预定数量的数据转送结束后,把上述已经写入的数据转送到上述新的写入预定物理块。
更好是,按预定次数的每次复位来任意设定上述逻辑块与上述物理块的对应关系的开始位置。
更好是,上述存储器管理器包括:按预定次数的每次复位,把已经写入与上述逻辑块分配对应的物理块中的数据写入上述待机队列的物理块中,把写入该数据的待机队列的物理块的地址设定为与该逻辑块分配对应的物理块的地址,并且把与该逻辑块分配对应的物理块设定为新的待机队列的物理块的装置。
更好是,上述待机队列的物理块由指针控制。
更好是,上述物理块相当于8个或者16个上述最小存储单位的大小。
更好是,上述最小存储单位的大小是在一个扇区的数据长度上加上冗余区域的数据长度。
更好是,存储在上述冗余区域中的数据在一个物理块中是相同的。
更好是,上述闪速存储器***是IC芯片。
更好是,上述闪速存储器***是卡片形状的外部存储***。
另外,上述目的也可以通过以下的结构实现。
(1)闪速存储器***具有管理主计算机和闪速存储器之间数据传送的存储器管理器,
上述存储器管理器具有用于把从主计算机提供给闪速存储器的逻辑地址和作为闪速存储器的实际地址的物理地址进行变换的地址变换表,而且地址变换表被规定为对应于闪速存储器的最小消除单位。
(2)上述(1)的闪速存储器***中,具有上述存储器管理器,能够与主计算机连接的总线接口,用于进行向闪速存储器写入/读出的闪速存储器接口,
上述存储器管理器具有把从主计算机一侧向闪速存储器一侧发送来的数据与从闪速存储器一侧向主计算机一侧送出的数据进行中继的数据中继装置。
(3)上述(1)或者(2)的闪速存储器***中,上述地址变换表使得把在主计算机指定存储媒体上的最小存储单位时使用的逻辑地址对应于上述最小消除单位进行分割了的逻辑块地址与把上述物理地址对应于上述最小消除单位进行分割了的物理块地址相互对应。
(4)上述(1)~(3)的任一项中的闪速存储器***中,上述逻辑地址与物理地址的变换在向闪速存储器开始数据的写入/读出之前进行。
(5)上述(1)~(4)的任一项中的闪速存储器***中,上述闪速存储器的物理地址区的大小大于逻辑地址区的大小。
(6)上述(1)~(5)的任一项中的闪速存储器***中,在对应于上述逻辑地址区的任意的最小消除单位中发生了故障时,与物理地址区中的不与逻辑地址区对应的部分的任一个最小消除单位进行交换。
(7)上述(1)~(6)的任一项中的闪速存储器***中,上述数据中继装置还具有块状态表,该块状态表是表示闪速存储器上的上述各物理块的状态的数据,
至少具有表示其状态是否良好,有无不良扇区以及是否使用的数据。
(8)上述(1)~(7)的任一项中的闪速存储器***中,上述地址变换表用在复位以后从闪速存储器的冗余区域读出的数据形成在RAM上。
(9)上述(7)或者(8)的闪速存储器***中,上述块状态表用在复位以后从闪速存储器的冗余区域读出的数据形成在RAM上。
(10)闪速存储器***,具有管理主计算机与闪速存储器的数据传送的存储器管理器,
上述存储器管理器把能够从上述主计算机存取闪速存储器的逻辑地址区的大小设定为小于作为闪速存储器的实际地址的物理地址区的大小,
而且,在物理地址区的不与逻辑地址区对应的剩余区域中,具有待用状态的队列。
(11)上述(10)的闪速存储器***中,上述存储器管理器在对应于闪速存储器的最小消除单位分割的每个块中处理上述物理地址区,上述逻辑地址区以及上述队列。
(12)上述(10)或者(11)闪速存储器***中,对应于上述队列的闪速存储器的区域成为消除后的状态。
(13)上述(10)~(12)的任一项中的闪速存储器***中,上述存储器管理器在物理地址区内任意块中发生了故障时,与上述队列内的任意的块进行交换。
(14)上述(10)~(13)的任一项中的闪速存储器***中,在向闪速存储器写入数据时,上述存储器管理器向队列内的预定的块中写入新的数据,
把该数据设为写入预定目标的逻辑块地址,把该写入预定目标的块设定为队列。
(15)上述(14)的闪速存储器***中,在写入预定目标的块具有将被更新的数据以外的数据的情况下,
在结束了来自主计算机的预定量的数据传送以后,
上述存储器管理器从写入预定目标的块向写入了新数据的队列内的预定的块传送原来的数据。
(16)上述(10)~(15)的任一项中的闪速存储器***中,上述存储器管理器使得物理地址区和逻辑地址区与对应于最小消除单位分割了的逻辑块地址和物理块地址相对应,
而且,该对应关系的开始位置取为由每个预定次数的复位所决定的任意位置。
(17)上述(10)~(16)的任一项中的闪速存储器***中,上述存储器管理器在每个预定次数的复位时,在队列的块中写入与逻辑地址区相对应的物理地址区内的任意块中的数据,
而且,把写入了数据的队列内的块地址取为物理地址区内的任意块的逻辑块地址,
把上述物理地址区内的任意的块作为队列。
(18)上述(10)~(17)的任一项中的闪速存储器***中,除去上述存储器管理器以外,还具有用于与主计算机连接的总线接口,进行向闪速存储器的读出/写入动作的闪速存储器接口。
(19)上述(10)~(18)的任一项中的闪速存储器***中,上述队列由指针控制。
(20)上述(1)~(19)的任一项中的闪速存储器***中,上述最小消除单位与8或者16个最小存储单位相当。
(21)上述(1)~(20)的任一项中的存储器***中,上述最小存储单位是在一个扇区部分的数据长度上加入了冗余区域的数据长度的大小。
(22)上述(1)~(21)的任一项中的闪速存储器***中,上述最小存储单位的冗余区域中至少具有表示属于上述最小存储单位的块是否良好,有无不良扇区以及其块是否正在使用的数据。
(23)上述(1)~(22)的任一项中的闪速存储器***中,上述冗余区域在一个块中存储着相同的数据。
(24)上述(1)~(23)的任一项中的闪速存储器***中,上述数据中继装置具有暂时存储预定长度数据的2个缓冲器,在该2个缓冲器中交替存储从主计算机一侧或者闪速存储器一侧发送来的数据的同时,从存满了数据的缓冲器交替地向闪速存储器一侧或者主计算机一侧发送数据。
(25)上述(1)~(24)的任一项中的闪速存储器***是IC芯片。
(26)上述(1)~(25)的任一项中的闪速存储器***是卡片形状的外部存储***。
附图说明
图1是示出本发明的闪速存储器***的基本结构的框图。
图2是示出地址变换表一结构例的示意图。
图3是示出闪速存储器内的块结构的示意图。
图4是示出存储器管理器内理想地具有的数据中继装置结构例的框图。
图5是示出块状态表的结构例的示意图。
图6是示出本发明的闪速存储器***的基本结构的框图,示出在闪速存储器内设置了剩余区域的状况。
图7是对于闪速存储器内的物理地址区配置了逻辑地址的示意图,示出对应于逻辑地址区的物理地址区。
图8示出了剩余区域分散配置在物理地址区中的状况。
图9示意地示出了队列的状况。
图10是示出了闪速存储器内的实际数据存储部分与冗余数据存储部分的状况的示意图。
图11是复位时的动作,是示出了形成块状态表的状况的示意图。
图12是复位时的动作,是示出了在闪速存储器中进行临时编号状况的示意图。
图13是示出把闪速存储器***应用在存储器卡中的例子的结构框图。
具体实施方式
本发明的闪速存储器***如图1所示,具有存储器管理器3,该存储器管理器3具有能够与主计算机1连接的总线接口2,用于进行在闪速存储器5上写入/读出的闪速存储器接口4,用于把从上述主计算机一侧向闪速存储器一侧发送来的数据和把从闪速存储器一侧向主计算机一侧发送的数据进行中继的数据中继装置,上述存储器管理器3具有把从主计算机1提供给闪速存储器5的逻辑地址和作为闪速存储器5的实际地址的物理地址进行交换的地址交换表(即地址变换区),而且该地址交换表规定为对应于闪速存储器5的最小消除单位。
存储器管理器3管理主计算机1与闪速存储器5的数据传送。即,或者调整从主计算机1发送来的数据和从闪速存储器5发送来的数据的传送速度,或者把用于从主计算机1指定的读出/写入的逻辑地址数据变换为物理地址数据。
地址变换表31把在主计算机1一侧指定的逻辑地址与闪速存储器5一侧存在的物理地址之间建立关系。通过借助地址变换表31,把逻辑地址与物理地址之间建立关系,能够避开在闪速存储器内产生了不良的位置等而把两者建立关系。而且,不必特意从闪速存储器读出不良扇区和不良比特等的数据,事先进行适宜的关系对应,在存取存储器时参照该关系能够立即计算必要的物理地址,高速地存取闪速存储器。
地址变换表31设置在存储器管理器3内。另外,通常形成在从该存储器管理器3的控制单元可参照的存储媒体上。而且,存储器管理器3使用该地址变换表31,把从主计算机1提供给闪速存储器5的逻辑地址变换为作为闪速存储器5的实际地址的物理地址,或者进行其逆变换。
主计算机1具有微处理器以及该微处理器的周边元件,键盘,通信口,扩展总线,显示器等输入输出装置,只要是能够与硬盘等的存储媒体进行连接,可以作为计算机(个人计算机)完成必要的动作(无论一般用途还是特定用途)即可,而不论其形态如何。
总线接口2是用于与主计算机1连接的总线,例如可以举出SCSI,IDE等的外部连接总线,以这些总线为基准的PCMCIA等PC卡接口等。其中,作为理想的形态,在把本发明的闪速存储器***应用在PC卡的情况下,使用PC卡接口。从而,总线接口是能够根据这些规格,标准适宜地与主计算机1连接的接口。另外,该总线接口如果在从主计算机1一侧观看的情况下,能够把闪速存储器5与硬盘进行相同的处理,则就能够直接使用现存的OS,应用软件等。
闪速存储器5是非易失性存储器,可以视为EEPROM的一种。即,能够随时进行数据的读出,然而数据的写入通常在数据消除后仅能够进行一次,不能够进行数据的改写。从而,进行数据的写入动作之前必须伴随着用于消除存储着的数据的动作(除去初始状态)。在消除数据的情况下,在闪速存储器中,其构造上成为一起消除预定的存储区域。本发明中理想地使用的NAND型闪速存储器中,通常,可消除的最小区域是上述最小存储单位(一个扇区+冗余区域)的8个或者16个部分,即,4k字节或者8k字节(除去冗余区域)。
闪速存储器5为了确保预定的存储容量,通常构成为集合了多个闪速存储器IC的存储器阵列。另外,还连接了与闪速存储器5相连接的,用于对闪速存储器5进行写入/读出动作的闪速存储器接口4,例如,闪速存储器序列发生器等以及自动控制和优化闪速存储器的写入/读出的控制元件等。
其次,说明地址变换表31的具体结构例。图2是示出地址变换表31的结构例的示意图。地址变换表31形成为与图3所示的闪速存储器5内的最小消除单位(最小消除块)5a相对应。另外,图3示意性示出了闪速存储器5的方框结构,图中标注在上面的带有#号的数值表示为每个最小消除单位所规定的物理块地址。
最小消除单位是在闪速存储器5内一起被消除的存储区域。如上所述,闪速存储器5的最小存储单位与最小消除单位不同,消除每个预定大小的存储区域。把该一起被消除的区域称为最小消除单位,闪速存储器的消除动作必须对作为集合了多个最小存储区域的块的最小消除单位进行。另外,最小消除单位5a中的实线所包围的部分是最小存储单位,其中,用虚线划开的部分中较小一方的区域表示冗余区域。
这样,通过用每个最小消除单位5a处理并且管理消除每个最小消除单位5a所需要消除的闪速存储器5,能够高效地进行写入动作(读出动作)。从而,地址变换表31形成为与最小存储单位相对应。
地址变换表31在图2所示的例中,在一个块内的上段配置逻辑块地址,在下段配置物理块地址(图中编号的起端标注#号表示),对于某个特定的逻辑块地址,通常能够把任意的物理块地址以一对一建立关系。即,相对应的逻辑块地址与物理块地址配置在预定的块内。而且,规定在主计算机1一侧开放的可存取的存储区的最大逻辑块地址Nh和具有对应大小的物理块地址。
这里所谓的逻辑块地址,是在从主计算机1存取特定的存储器内的存储单位时指定的地址编号,指把地址分割为对应于上述最小消除单位5a大小的每个块而得到的起始地址。所谓物理块地址,是闪速存储器上的实际的地址编号,指最小消除单位5a的起始地址。
用地址变换表使逻辑块地址与物理块地址两者相互对应的意义如下。由于通常逻辑块地址与物理块地址以一对一相对应,因此有时还能够直接把逻辑块地址用作为物理块地址。然而,逻辑块地址与物理块地址之间有时产生偏离(或者偏移)。这些偏差起因于两个管理***不同,起因于由于产生故障而不能够使用的不良块以及起因于为了防止在特定的存储区域集中进行存取而实施的处理等。
其中,发生了不良块的情况下,需要排除其逻辑块地址,把逻辑块地址进行分配。图2示出这样把逻辑块进行分配的状态。该例中,#0003和#0020的物理块地址作为不良块被排除的结果,#0004成为#0003,#0021成为#0019,逻辑块地址的最大值Nh中,额外地需要2个块,即物理块地址#Nh+2。另外,在该例中将物理块地址依次分配给逻辑块地址,然而也可以分配给任意的逻辑块地址。
这样,有时在能够用逻辑块地址即逻辑地址区指定的存储区与作为实际存储区的物理地址的最大区域的物理地址区之间具有偏差,理想的是物理地址区设定为大于逻辑地址区。即,由于物理地址区中产生的故障可以被相关物理地址区中的存储区所补偿,故逻辑地址区设定为较小。换言之,在物理地址区中存在着不包含在逻辑地址区内的剩余区域。
其次,说明使用地址变换表进行地址变换的方法。
现在,假设从主计算机1发送出用于读出的地址数据(以下称为逻辑地址)。这里,如果把逻辑地址记为LBAs,则逻辑块地址LBA能够表示为
LBAs/k=LBA...m(1)
这里,k是1块内存在的扇区数,通常为8或者16。另外,m是用k进行除法运算时的余数。即,该值成为表示逻辑块地址内的扇区位置的偏差值。
用上式求出的逻辑块地址LBA通过参照地址变换表的该位置,变换为物理块地址PBA。在被变换了的物理块地址PBA中,加入上述偏差值m可以得到作为闪速存储器上的实际地址的物理地址PA。
存储器管理器3的控制单元如果设定指定如上述那样得到的物理地址PA,进行预定的读出操作,则其随后读出数据中继装置3内部的数据,传送机构自动地进行数据的读出、传送。控制单元在进行了上述设定以后,在数据传送过程中能够计算接着要读出的地址。从而,几乎不需要用于地址变换的明显时间。这样,在开始写入/读出动作之前进行地址变换,能够高速进行动作。
其次,说明作为存在于存储器管理器3中的数据中继装置的理想形态。
存储器管理器3具有把从主计算机1一侧经过总线接口2发送来的数据经过闪速存储器接口4传送到闪速存储器5一侧,或者反之,把从闪速存储器5一侧经过内部总线传送来的数据经过总线接口2发送到主计算机1一侧的功能。
这时,在很多情况下,主计算机1一侧的数据传送速度和定时与闪速存储器5一侧的数据传送速度和定时分别不同。因此,理想的是具有图4所示的数据中继装置3a。
即,具有存储了预定大小的数据的两个缓冲器36、37,在把一方的缓冲器A(B)置为数据写入一侧(实线一侧)时,把另一方的缓冲器B(A)置为数据读出一侧(虚线一侧)。而且,缓冲器控制单元35在作为数据写入一侧的一方的缓冲器A(B)装满了预定长度的数据,而且检测出已经读出了作为数据读出一侧的另一方的缓冲器B(A)的数据时,把两者进行交换,把装满了数据的一方的缓冲器A(B)置为数据读出一侧,把已经读出了数据的另一方的缓冲器B(A)置为数据写入一侧。
这样,在2个缓冲器中交替地写入数据的同时,通过从装满了数据的缓冲器交替地读出数据,即使主计算机一侧与闪速存储器一侧数据的传送速度不同,也能够对应于各个速度和定时收发数据。这种情况下,由于数据收发速度快的一侧必须成为待机状态,因此作为总体的数据传送速度由数据传送速度慢的一侧支配。另外,缓冲器内的数据在被读出以后,虽然像FIFO存储器那样成为空状态,但如果能够检测出用新数据装满了的状态,则也能够进行改写。
在2个缓冲器中作为能够写入/读出的数据长度,虽然没有特别的限定,然而理想的是作为一个扇区部分数据为512字节或者在其上面加入了冗余数据部分的长度。
这样,通过交替地交换2个缓冲器36、37进行的数据收发,能够在一方的缓冲器中写入数据的同时从另一方的缓冲器读出数据,因此能够大幅度地缩减用于中继数据所需要的时间。这种情况下,缓冲器36、37的交换由缓冲器控制单元35瞬时地进行,因此如上述那样数据的传送时间能够视为与主计算机一侧或者闪速存储器一侧的某一个较慢一方的速度相同。另外,缓冲器存储器35作为门电路的组合,最好用硬件构成。通过仅采取硬件的结构能够大幅度地提高动作速度。
本发明的闪速存储器***还可以具有块状态表(块状态区)32,该块状态表32具有表示闪速存储器上的各物理块的状态的数据,至少表示该块是否良好,有无不良扇区以及是否正在使用的数据。通过具有块状态表32,能够在表上迅速地把握各物理块的状态,能够迅速地形成后述的队列,能够在存储器的读出和写入之前或者与其无关地进行适宜的存储器管理。
块状态表32例如像图5所示那样构成。在图示例中,在一个块内的上端配置物理块地址(图中编号的起始标注#号表示),在下段配置状态值,使得具有对应于各个物理块地址的状态值。然后,规定直到闪速存储器5内的可存取的存储区中的最大物理块地址#Nmax的对应状态值。
状态值是表示物理块地址的状态的值,例如,作为初始状态写入FF(或者消除状态),然后根据块地址的状态把值进行变化。作为能够用状态值表现的数据,至少是表示块是否良好,有无不良扇区以及其块是否正在使用的数据。除此之外,还能够表示块良好的程度以及有关安全数据等。作为数据的表示形态虽然没有特别的限定,然而既可以是特定的数据长度,例如以1个字节的代码进行表现,也可以通过使特定数据长度的各比特具有权值进行表现。
通过具有块状态表32,能够迅速地把握各逻辑块状态。从而,在参照块状态表构筑地址变换表31时,排除后述的队列要素等,把逻辑块地址分配到物理块地址中,或者在有不良扇区时,迅速地检测成为不良块等的块,能够构筑将不良块排除了的地址变换表。另外,还能够从块状态表32容易地把握未使用的块,能够极其容易而且迅速地进行与不良块的交换等的作业。即,能够不存取闪速存储器而把握各扇区和块的状态,格外地提高处理速度。
上述存储器管理器3,例如如图6所示,还把能够从上述主计算机1存取闪速存储器5的逻辑地址区Ln的大小设定为小于作为闪速存储器的实际地址的物理地址区Pn的大小,而且在物理地址区Pn的不与逻辑地址区Ln相对应的剩余区域5a中具有使用待机状态的队列。
通过把作为闪速存储器的实际地址的物理地址区的大小设定为大于从主计算机存取闪速存储器时的逻辑地址区的大小,而且在物理地址区的不与逻辑地址区相对应的剩余区域中具有队列,例如,在与逻辑地址区相对应的物理地址区内发生了不良位置的情况下能够与队列部分进行交换。另外,在向闪速存储器进行写入时,把新的写入数据暂时写入到队列部分中,根据需要从写入的预定部位补充原来的数据,将其与写入预定部分进行交换,由此能够极其高效率的进行写入时的动作。
另外,不是简单地任意地使用上述剩余区域,而通过作为队列进行管理,在特定的存储器区中集中存取等,能够不进行复杂的控制进行适宜的存储器管理。
图6中,存储器管理器3把从上述主计算机能够存取闪速存储器的逻辑地址区的大小Ln设定为小于作为闪速存储器的实际地址的物理地址区的大小Pn,而且在物理地址区的不与逻辑地址区相对应的剩余区域,具有使用等待状态的队列。
即,作为闪速存储器5内的全部存储区域的物理地址区,设定为比能够从主计算机1一侧进行存取的逻辑地址区大。换言之,在主计算机一侧开放的逻辑地址区仅比作为闪速存储器5的整个存储区域的物理地址区小包含队列部分的预定区域。
队列(Queue)通常在初始状态从上述剩余区域中的若干地址顺序形成(但是除去不良位置等)。另外,该队列(Queue),物理地址以及逻辑地址最好在每个闪速存储器5的最小消除单位(块)进行处理。该最小消除单位在闪速存储器上是同时被消除的最小的单位。如上所述,闪速存储器不是在每个最小存储单位,而是在每个把它们集合起来成为某个大小的存储单位进行消除。因此,通过在每个作为该消除区域的最小单位的最小存储单位,处理上述队列(Queue),物理地址以及逻辑地址,能够得到高效的存储器控制***。
在对应于逻辑地址区的物理地址区内发生了不良位置的情况下,该不良位置与队列进行置换,而这些操作通过在每个块进行也能够高效地适宜地进行管理。闪速存储器5的写入动作需要每个块的消除动作,而通过在每个块管理闪速存储器5能够高效地进行动作。
物理地址通常当然是与逻辑地址1对1相对应,而这些对应关系理想的是在每个块中进行规定。即,两者分别在每个块中处理,对于其起始地址,规定为物理块地址和逻辑块地址。而且,作为从起始地址开始的偏移值,规定作为每个存储单位的物理地址以及逻辑地址。另外,各个块使用地址变换表等,从逻辑块地址变换为物理块地址或者从物理块地址变换为逻辑块地址。
如上所述在全部物理地址区中,队列(Queue)存在于与逻辑地址区相对应的物理地址区以外的区域内,但全部这些区域不必都是队列(Queue)。剩余区域中有时存在作为不良块永久被废弃,也不用作为队列(Queue)的块等。另外,该剩余区域为全部物理地址区的1~5%,更理想的是2~3%左右。
其次,说明队列(Queue)的更具体的结构。图7是示意地示出了闪速存储器5内的存储器空间的框图。图中各块内记载的数字,记号表示物理块地址。
在图示例的闪速存储器5中,在主计算机1一侧开放的物理块区与逻辑块地址对应,成为至其最大值Nh的范围。另外,作为剩余区域5a(图中用斜线表示),存在于从与逻辑块地址的最大值Nh相对应的物理块地址上加1的地址Nh+1开始至物理块地址的最大值Nmax之间。而且在该区域内具有队列(Queue)。
该队列(Queue)通常在初始设定时如上述那样从作为剩余区域定义的区域中选择。从而,队列(Queue)的各要素成为消除状态(初始状态),使用该队列(Queue)时能够直接进行写入。另外,在加入新的队列(Queue)时,在消除之后或者在确认了是消除状态以后进行加入。
另外,剩余区域5a(队列)如图7所示,不需要连续地存在于物理地址区的最后部分,例如,也可以像图8所示那样,孤立地分散存在于物理地址区内(图中,用斜线表示的部分)。把剩余区域分散了的结果,在图示例中逻辑地址区的最大值Nh和物理地址区的最大值Nmax成为相同位置。剩余区域(队列)的分散状态通常通过反复地用后述的不良块和写入动作时的队列(Queue)进行置换操作形成。另外,图8中,在块中记载的数字与图7的情况不同表示逻辑块地址。这样,具有队列(Queue)的剩余区域5a由于不与逻辑地址相对应,因此不能够从主计算机1一侧进行识别。
队列(Queue)50最好用指针控制。指针例如如图9所示进行控制使得构成队列(Queue)50的各块(以下称为要素)的数成为预定的范围。即,在图示例中,在块上部标注作为要素的块的顺序,而在该顺序的预定位置处存在取出指针OP(在图示例中2)和取入指针IP(n-2)。而且,队列(Queue)50的取出,取入时移动指针。即
(取入指针IP的位置)-(取出指针OP的位置)=要素数
另外,队列(Queue)自身也可以登录到管理表等中进行管理。
本发明的闪速存储器***理想的是具有用于把逻辑块地址与物理块地址相互交换的地址变换表。
图2所示的地址变换表31中,设定能够从主计算机存取的逻辑地址区使其小于作为实际存储器区且物理地址的最大区域的物理地址区。即,像可以设定上述队列(Queue)那样较小地设定逻辑地址区。在地址变换表中,不与逻辑块地址相对应的物理块地址可以成为队列(Queue)的要素。
使用地址变换表31当然能够在逻辑块地址与物理块地址之间建立关系,然而两者对应关系不一定必须成为从小的地址数开始的顺序,也可以以任意的地址彼此之间进行对应。即,形成预定区域内的两者的块地址之间,可以以1对1建立关系。从而,还能够不使用地址变换表而使用函数等。
通过闪速存储器***的复位动作,把逻辑块地址再次与物理块地址建立关系的情况下,通常从小的地址编号顺序建立关系。这种情况下,对于逻辑块地址的最小地址编号,可以任意选择开始对应关系的物理块地址编号变更开始位置。通过这样做,能够不固定与特定的逻辑块地址编号对应的物理块地址编号而进行变动,例如,在小的地址编号集中存取,或者即使存在在某个应用软件中被频繁地存取的区域,由于对应的闪速存储器的实际地址发生变化因此能够分散实际被存取的位置。
作为指定任意的开始位置的方法没有特别的限定,可以使用通过众所周知的随机数发生方法得到的随机数和函数及其它数学方法选择任意的块地址。
另外,通过闪速存储器***的复位动作等,在与逻辑块地址相对应的物理块地址中,可以把任意的块地址与上述队列(Queue)的块进行交换。通过进行这样的交换,与上述相同能够防止对于特定的存储器的存取过于集中,能够把闪速存储器总体的存取次数平均化。
存储器块交换的频度可以在每次复位等时进行,在复位等的频度高的情况下可以记述预定次数,或者使用随机数等在每个预定的次数(频度)进行。
本发明的闪速存储器***与闪速存储器共同使用,而作为把上述结构形成为一体的装置,还能够与闪速存储器独立地存在。例如,可以把总线接口2,闪速存储器接口4,地址变换表,具有数据中继装置的存储器管理***3构成为一体的IC(集成电路)芯片。通过构成IC芯片,在与闪速存储器组合时可以容易地得到小型的存储器***。另外,把本发明闪速存储器***与闪速存储器相组合,把它们配置在预定规格的卡片形状的外壳内,把总线接口作为PC卡总线,由此能够容易地得到不需要电源的非易失性存储器卡。
实施例
其次示出实施例,更具体地说明本发明。
[制造时的初始设定]
在制造以后的初始状态,存储器管理器3的控制单元对于闪速存储器5内的各扇区进行评价(能够正常写入/读出,被写入的数据内容中无异常等),把它们当作为块单位的评价内容制作状态表32。
例如,如图10所示,假设在具有一定大小的实际数据存储单元51和冗余数据存储单元52的闪速存储器的物理块地址#0003中存在异常。控制单元例如如图11所示,按照物理块地址顺序进行评价,在S-RAM上的状态表形成区域的预定位置,没有异常的情况下设定(写入)初始值(图示例中是“FF”),在检测出了异常的情况下写入表示其内容的状态值(图示例中是“0F”)。这样,制作块状态表32。
接着,控制单元例如如图12所示对于闪速存储器5进行相当于逻辑块地址的临时编号。这时,根据状态表32的信息,从编号的对象消除不良块。被编号了的数值(图示例中为下段)与状态值(图示例中为上段)写入到闪速存储器的冗余区域52中。
在该状态的闪速存储器***中不进行逻辑块地址与物理块地址的关系对应,也不存在队列(Queue)。然而,上述不良块成为剩余区域的一部分。
[复位时的初始设定]
开启电源时,在复位时,控制单元把握闪速存储器的大小(芯片数),求作为最小消除单位的块的总数Nmax。
接着,控制单元读出闪速存储器5内的各块(物理块)的冗余区域。这种情况下,在块内的各个最小存储单位(1字节+冗余区域)中存在冗余区域,同一块内的冗余区域全部被写入相同的数据。从而,可以只读出每一个块的最小存储单位中的冗余区域。另外,读出并对照多个位置的冗余区域(通常为相同内容),还能够评价其最小存储单位和块的可靠性。
作为被读出的数据,上述的例中如下。
物理块地址 状态值 逻辑块地址值
#0000 FF 0000
#0001 FF 0001
#0002 FF 0002
#0003 0F -----------
#0004 FF 0003
#0005 FF 0004
...............以下省略
从所得到的数据把地址变换表31以及块状态变换表32形成在S-RAM上的地址变换表形成区域和状态表形成区域(因为在开启电源时或在复位时S-RAM上的数据消失或失去可靠性)。由此,以后直到进行再次的复位,可以存取S-RAM上的地址变换表,不需要读出闪速存储器的冗余区域。这种情况下,实际的地址变换表31以及块状态表32例如把S-RAM上的特定区域的起始地址为基准点(视为“0000”等),如果从该基准点开始是地址变换表,则可以在成为对应的逻辑块地址值上写入必要的数据(物理块地址),如果是块状态表,则可以在成为对应物理块地址值的位置上写入必要的数据(状态值)。
另外,这时,如果发现逻辑块地址为“FFFF”,即成为消除图形的块则视为队列(Queue)的要素,把该要素登录到队列(Queue)表50中。另外,检查该队列的要素内的数据是否全部为“FFFF”,即是否为消除图形。
这种情况下,实际的队列(Queue)表50,地址变换表31以及块状态表32例如以S-RAM上的特定区域的起始地址为基准点(视为“0000”等),从该基准点开始,在成为分别对应的队列(Queue)数,逻辑块地址值,或者物理块地址值的位置写入必要的数据(分别是物理块地址值,物理块地址值,状态值)。
[读出时的动作]
作为读出时的动作,以图13所示的装置中的动作为例进行说明。图13是示出闪速存储器***的一实施例的框图。图示例的闪速存储器***具有与主计算机1连接的PC卡总线2a,与该PC卡总线2a连接的缓冲器控制单元35内的缓冲器A36和缓冲器B37(在该例中作为一体进行表示,然而也可以分别独立地存在)。另外,在上述PC卡总线2a中,连接着PCMCIA块38和ATA块39。在上述缓冲器控制单元35内的缓冲器A36和缓冲器B37中,连接着作为闪速存储器接口4的闪速序列发生器41和ECC控制单元42(在该例中作为一体进行表示,然而也可以分别独立地存在),在该闪速序列发生器41等中连接着闪速存储器5的存储器阵列。
另外,控制单元34连接着上述缓冲器控制单元35,PCMCIA块38,ATA块39,闪速序列发生器41,把它们综合地进行控制。该控制单元34中连接着能够直接存取的ROM、RAM,使得存储控制算法和运算所必需的数据。另外,地址变换表31和块状态表32通常形成在上述RAM上。
PC卡总线2a是用于连接被称为PC卡的卡片形状的扩展***(例如,SCSI接口单元,MODEM单元,存储器卡等)的总线***,在本例中是通过PCMCIA标准的预定卡片槽可以连接PC卡的总线。这样的PC卡能够特别理想地应用在膝上型计算机等的便携设备和从总线收发信息的***等中。
缓冲器控制单元35以及缓冲器A36、缓冲器B37与上述的数据中继装置3a是相同的结构,省略说明。
PCMCIA块38作用为适宜地与上述PC卡总线2a连接的PC卡总线接口。即,PC卡总线2a的控制***(未图示)存储着用于识别连接了PC卡所必需的数据和用于识别所必需的顺序,能够自动地进行必要的操作。ATA块39的工作寄存器具有收容着从主计算机提供的作为同位标磁道组、磁头、扇区的数据的CHS地址,或者反之,把这些数据提供给主计算机一侧,用于变换为主计算机一侧的逻辑地址的数据。由此,主计算机1能够把闪速存储器***宛如硬盘一样进行处理。
闪速存储器5构成为集合了多个存储器元件的存储器阵列,使得能够确保必要的存储总量。其它的结构与上述的结构例相同,在相同的构成要素上标注相同的符号并且省略说明。
这样,图示例的闪速存储器***收容在PC卡内,使得能够与SCSI规格的硬盘相同地进行处理。通过作为PC卡能够装卸自由地与主计算机连接,能够用小型,轻量的卡片自由地移动或者保存比较大容量的数据。而且,由于以往的软件能够与可识别的硬盘相同地进行处理,因此能够灵活地运用已有的软件,处理也很容易。
作为读出时的动作,首先,控制单元34通过上述缓冲器A36(或者B37)等接收来自主计算机1的地址数据。这时,从主计算机传送来的地址数据如果是LBA方式,则通过使用了公式(I)的与上述相同的作业,进行向逻辑块地址以及偏移值的变换。
即,如果把从主计算机传送来的逻辑地址记为LBAs,则逻辑块地址LBA用下式求出
LBA=LBAs/k
k=最小消除单位内的扇区数(8或者16)
余数m成为表示块内的扇区位置的偏移值。
另外,从主计算机传送来的数据是CHS方式的情况下,根据以下的计算公式(II)变换为LBA方式的数据。另外,这样的变换功能也可以像AT块等那样,独立设计为具有用于把CHS方式的数据变换为LBA方式的数据的专用功能的块。
LBA=(C×HpC+H)×SpH+S-1(II)
这里,C:柱面号,H:磁头号,S:扇区号,HpC:磁头/柱面,SpH:扇区/磁头。
所得到的逻辑块地址通过数据变换表31变换为物理块地址,在该地址上加入偏移值成为物理地址数据。
在读出动作中,通常自动地进行闪速存储器5的读出和向主计算机1的传送。即,如果控制单元34设定希望读出的存储器区域的地址,则闪速存储器接口4例如闪速序列发生器41自动地读出其存储器区域的数据。缓冲器控制单元35把传送来的数据与闪速存储器5一侧和主计算机1一侧的传送速度相吻合顺序地进行发送。
ATA块39如果有来自控制单元34的数据传送的指令则解除工作状态,通知主计算机开始传送数据。这样,控制单元34在进行了地址变换作业以后,通过进行预定的设定操作,从用于数据传送的操作中解放出来,能够先行一步进行下一个地址变换作业。另外,由于数据变换作业如上述那样能够高速处理,因此通常在数据传送中结束。由此,格外地提高数据传送速度。
作为写入数据的动作,至地址变换为止的动作与上述读出时的动作相同。接着,进行地址变换,进行向闪速存储器5上的预定地址的写入动作。
闪速存储器5如上述那样不能够进行改写。从而,在写入动作中伴随着块单位的消除动作。这种情况下,在把预先写入的块内的数据暂时读出了以后也能够消除该数据,加写新的数据。然而,在该方法中在写入之前由于伴随着读出动作,因此存取速度迟缓。
因此,最好灵活地运用包含在上述物理地址区中的逻辑地址区的剩余区域。即,暂时把新的数据写入到剩余区域中任意的块内。而且,把原来的具有写入预定地址的块地址作为消除预定地址。另外,把具有块状态表32上的写入预定地址的块地址置换为写入了新的数据的剩余区域中的块的地址。由此,上述剩余区域中的块成为具有写入后的数据的新的块地址。
这种情况下,最好灵活地运用剩余区域中的队列(Queue)。即,从队列(Queue)的起始取出要素,暂时把新的数据写入到该块的预定位置(用偏移值指定),作为交换预定块。而且,把原来的作为读入目标的块的逻辑块地址作为消除预定地址。
另外,交换预定块的冗余区域中,写入消除预定块的块地址和状态值。这时,对于地址变换表的逻辑块也可以进行改写。由此,从上述队列(Queue)取出的块成为具有写入后的数据的新的逻辑块地址。
而且,最好在全部的或者预定量的数据传送结束的时刻,把上述消除预定块的剩余数据(没有进行改写的数据)传送到交换预定块内,把消除预定块进行消除。由此,伴随着写入的读出动作以及消除动作在进行了全部的数据传送后进行,外观上,对于主计算机,通过使读入数据的接收早期完成,提高写入时的动作速度。另外,至进行全部数据的置换为止的操作保持在历史保持表等中,使得成为顺利地进行使用了队列(Queue)的写入操作。
另外,上述例中在写入时,灵活地运用闪速存储器上的剩余区域和数据中继装置内的存储媒体,例如在RAM上展开的队列(Queue)。然而,存在着RAM等由于供给电源的瞬断等丢失数据的担忧。另外,由于队列(Queue)还产生写入数据多,重复多个操作,存在多个消除预定块,交换预定块的状态,因此在结束了每个块的改写时刻,最好同时改写闪速存储器的冗余区域上的块状态值以及地址交换用数据。
这样,通过具有对应于最小消除单位的队列(Queue),地址变换表31,块状态表32,由此管理闪速存储器5,能够极其有效地进行读出/写入动作,格外地提高总体的处理速度。而且,使用块状态表32适宜地管理闪速存储器的不良位置和ECC,能够通过队列(Queue)置换不良块等,因此能够长期稳定地保持数据。
产业上的可利用性
本发明的闪速存储器***不限定于上述结构例,能够有各种应用。另外,其使用范围除去膝上型计算机等的计算机***以外,还能够在便携式通信设备,数字照相机等多媒体***等各种处理数据的领域中进行应用。
发明的效果
综上所述,如果依据本发明,就能够实现可以减少写入/读出时间的延迟,比较简单地进行写入动作,能够以高速进行动作,适当地进行不良扇区等的管理的闪速存储器***。
Claims (18)
1.一种闪速存储器***,特征在于:包括:
设置在仅能对消除了其存储内容的物理块进行写入的闪速存储器与主***之间,对该闪速存储器与主***之间的数据传送进行管理的存储器管理器,其中闪速存储器具有存储区域且能按分割了该存储区域的每个最小存储单位进行写入和读出,能把由预定数量的最小存储单位构成的物理块作为最小消除单位来消除存储内容,
连接上述存储器管理器和上述主***的总线接口,和
连接上述存储器管理器和上述闪速存储器的闪速存储器接口,
上述存储器管理器包括:
存储使由上述主***提供的逻辑地址所特定的逻辑块的地址与包含在上述存储区域中的上述物理块的地址对应的地址变换表的地址变换表存储装置,
从上述地址变换表求出与由上述主***提供的逻辑地址所特定的上述逻辑块对应的物理块,并对该物理块实现来自该主***的访问的访问装置,
把上述存储区域中与上述逻辑块不对应的物理块作为使用待机状态的待机队列来进行管理的装置,和
对包含表示上述各物理块的状态的信息即至少表示其是否良好以及是否正在使用的信息的块状态表进行存储的块状态表存储装置。
2.如权利要求1所述的闪速存储器***,其特征在于:
包括参照上述块状态表来生成上述地址变换表的地址变换表生成装置。
3.如权利要求1所述的闪速存储器***,其特征在于:包括:
当上述主***提供写入上述闪速存储器的数据时参照上述块状态表,当作为写入预定目标的物理块正在使用时,把上述使用待机状态的待机队列的物理块作为新的写入物理块来写入上述数据,把正在使用的物理块设定为待机队列的物理块,据此来进行块交换的交换装置。
4.如权利要求1所述的闪速存储器***,其特征在于:
上述访问装置包括:
在上述总线接口与上述闪速存储器接口之间,分别暂时存储预定长度的数据的2个缓冲器,和
在上述2个缓冲器中交替地存储从上述主***一侧或闪速存储器一侧发送的数据,并且从装满数据的缓冲器中把数据交替地发送到闪速存储器一侧或主***一侧的装置。
5.如权利要求1所述的闪速存储器***,其特征在于:
上述访问装置在对上述物理块开始进行来自上述主***的访问之前,进行根据上述地址变换表求出与上述逻辑块对应的物理块的处理。
6.如权利要求1所述的闪速存储器***,其特征在于:包括:
当上述主***提供写入上述闪速存储器的数据时参照上述块状态表,判断作为写入预定目标的物理块中是否有故障,当有故障时,把上述使用待机状态的待机队列的物理块作为新的写入物理块来写入上述数据,把判断为有故障的物理块设定为待机队列的物理块,据此来进行块交换的交换装置。
7.如权利要求1所述的闪速存储器***,其特征在于:
上述各最小存储单位分别具有写入与该最小存储单位所属的物理块对应的逻辑块的地址的冗余区域,
上述地址变换表存储装置由RAM构成,
上述地址变换表根据复位后从上述冗余区域中读出的数据形成在上述RAM上。
8.如权利要求1所述的闪速存储器***,其特征在于:
上述各最小存储单位分别具有写入表示该最小存储单位所属的物理块的状态的信息的冗余区域,
上述块状态表存储装置由RAM构成,
上述块状态表根据复位后从上述冗余区域中读出的数据形成在上述RAM上。
9.如权利要求1所述的闪速存储器***,其特征在于:
上述访问装置在把来自上述主***的数据写入上述闪速存储器时,把该数据写入上述待机队列内的任意物理块中,把该物理块作为新的写入预定物理块,把上述主***用逻辑地址指示的原来的写入预定目标物理块设定为上述待机队列的物理块。
10.如权利要求9所述的闪速存储器***,其特征在于:
上述访问装置在由主***用逻辑地址指示的原来的写入预定目标物理块中具有已经写入作为写入目标的最小存储单位以外的最小存储单位的数据时,在来自上述主***的预定数量的数据转送结束后,把上述已经写入的数据转送到上述新的写入预定物理块。
11.如权利要求1所述的闪速存储器***,其特征在于:
按预定次数的每次复位来任意设定上述逻辑块与上述物理块的对应关系的开始位置。
12.如权利要求1所述的闪速存储器***,其特征在于:
上述存储器管理器包括:
按预定次数的每次复位,把已经写入与上述逻辑块分配对应的物理块中的数据写入上述待机队列的物理块中,把写入该数据的待机队列的物理块的地址设定为与该逻辑块分配对应的物理块的地址,并且把与该逻辑块分配对应的物理块设定为新的待机队列的物理块的装置。
13.如权利要求1所述的闪速存储器***,其特征在于:
上述待机队列的物理块由指针控制。
14.如权利要求1所述的闪速存储器***,其特征在于:
上述物理块相当于8个或者16个上述最小存储单位的大小。
15.如权利要求1所述的闪速存储器***,其特征在于:
上述最小存储单位的大小是在一个扇区的数据长度上加上冗余区域的数据长度。
16.如权利要求7、8或15所述的闪速存储器***,其特征在于:
在一个物理块中,存储在上述冗余区域中的数据是相同的。
17.如权利要求1所述的闪速存储器***,其特征在于:
上述闪速存储器***是IC芯片。
18.如权利要求1所述的闪速存储器***,其特征在于:
上述闪速存储器***是卡片形状的外部存储***。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP363504/97 | 1997-12-16 | ||
JP36350497 | 1997-12-16 | ||
JP36570497 | 1997-12-22 | ||
JP365704/97 | 1997-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1248334A CN1248334A (zh) | 2000-03-22 |
CN1249585C true CN1249585C (zh) | 2006-04-05 |
Family
ID=26581486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB988025930A Expired - Fee Related CN1249585C (zh) | 1997-12-16 | 1998-12-08 | 闪速存储器*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US6581132B1 (zh) |
CN (1) | CN1249585C (zh) |
WO (1) | WO1999031592A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100544175B1 (ko) * | 1999-05-08 | 2006-01-23 | 삼성전자주식회사 | 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법 |
TW539946B (en) * | 2001-08-07 | 2003-07-01 | Solid State System Company Ltd | Window-based flash memory storage system, and the management method and the access method thereof |
KR100449708B1 (ko) * | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
AU2003219414A1 (en) * | 2002-04-30 | 2003-11-17 | Koninklijke Philips Electronics N.V. | Apparatus and method for fetching data from memory |
TW561339B (en) * | 2002-07-24 | 2003-11-11 | C One Technology Corp | Non-volatile memory based storage system capable of directly overwriting without using redundancy and the method thereof |
US7114053B2 (en) * | 2003-08-21 | 2006-09-26 | Texas Instruments Incorporated | Virtual-to-physical address conversion in a secure system |
TWI226643B (en) * | 2003-10-31 | 2005-01-11 | C One Technology Corp | Simulated SmartMedia/xD-Picture memory card using any nonvolatile memory |
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
EP2977906A1 (en) * | 2004-04-28 | 2016-01-27 | Panasonic Corporation | Nonvolatile storage device and data write method |
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
US7395384B2 (en) * | 2004-07-21 | 2008-07-01 | Sandisk Corproation | Method and apparatus for maintaining data on non-volatile memory systems |
TW200608370A (en) * | 2004-08-20 | 2006-03-01 | Benq Corp | Optical read/write apparatus, writing frequency management method and computer-readable storage medium thereof |
US7826470B1 (en) * | 2004-10-19 | 2010-11-02 | Broadcom Corp. | Network interface device with flow-oriented bus interface |
US7457909B2 (en) * | 2005-01-14 | 2008-11-25 | Angelo Di Sena | Controlling operation of flash memories |
CN100353337C (zh) * | 2005-06-01 | 2007-12-05 | 旺玖科技股份有限公司 | 闪存储存*** |
CN101364207B (zh) * | 2005-06-01 | 2010-05-26 | 旺玖科技股份有限公司 | 闪存储存*** |
US7509471B2 (en) * | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
US7631162B2 (en) | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
JP4863749B2 (ja) | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
US7694091B2 (en) * | 2006-10-23 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Non-volatile storage for backing up volatile storage |
KR100780963B1 (ko) * | 2006-11-03 | 2007-12-03 | 삼성전자주식회사 | 메모리 카드 및 메모리 카드의 구동 방법 |
TW200828014A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Flash memory management method with low RAM utilization |
US7925795B2 (en) * | 2007-04-30 | 2011-04-12 | Broadcom Corporation | Method and system for configuring a plurality of network interfaces that share a physical interface |
CN101441596B (zh) * | 2007-11-21 | 2013-05-01 | 深圳市朗科科技股份有限公司 | 提高闪存介质读写速度的方法 |
US8762661B2 (en) * | 2008-09-18 | 2014-06-24 | Seagate Technology Llc | System and method of managing metadata |
JP5404483B2 (ja) * | 2010-03-17 | 2014-01-29 | 株式会社東芝 | メモリシステム |
JP5535128B2 (ja) * | 2010-12-16 | 2014-07-02 | 株式会社東芝 | メモリシステム |
US9007836B2 (en) * | 2011-01-13 | 2015-04-14 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
US9003162B2 (en) * | 2012-06-20 | 2015-04-07 | Microsoft Technology Licensing, Llc | Structuring storage based on latch-free B-trees |
US9519591B2 (en) * | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
US9514211B2 (en) | 2014-07-20 | 2016-12-06 | Microsoft Technology Licensing, Llc | High throughput data modifications using blind update operations |
JP2018041204A (ja) | 2016-09-06 | 2018-03-15 | 東芝メモリ株式会社 | メモリ装置及び情報処理システム |
FR3072476A1 (fr) * | 2017-10-13 | 2019-04-19 | Proton World International N.V. | Unite logique de memoire pour memoire flash |
JP7074453B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102098240B1 (ko) * | 2018-05-16 | 2020-04-08 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 |
CN109086006B (zh) * | 2018-07-24 | 2021-10-15 | 浪潮电子信息产业股份有限公司 | 一种数据读取的方法以及相关装置 |
US11288007B2 (en) * | 2019-05-16 | 2022-03-29 | Western Digital Technologies, Inc. | Virtual physical erase of a memory of a data storage device |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6426220A (en) * | 1987-07-22 | 1989-01-27 | Omron Tateisi Electronics Co | Writing system for memory card |
JPS6481028A (en) * | 1987-09-22 | 1989-03-27 | Fanuc Ltd | Data memory system |
DE69033438T2 (de) | 1989-04-13 | 2000-07-06 | Sandisk Corp | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
US5200959A (en) | 1989-10-17 | 1993-04-06 | Sundisk Corporation | Device and method for defect handling in semi-conductor memory |
JP2582487B2 (ja) | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
JPH0573433A (ja) * | 1991-09-12 | 1993-03-26 | Hitachi Ltd | 記憶装置 |
JP3178909B2 (ja) | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
JPH05233426A (ja) * | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | フラッシュ・メモリ使用方法 |
JPH06250799A (ja) | 1993-02-26 | 1994-09-09 | Toshiba Corp | 半導体ディスク装置およびその半導体ディスク装置を使用したコンピュータシステム |
JPH0736759A (ja) | 1993-07-15 | 1995-02-07 | Hitachi Ltd | 半導体ファイルシステム |
JPH06332806A (ja) * | 1993-05-25 | 1994-12-02 | Hitachi Ltd | フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法 |
JPH0850564A (ja) * | 1994-08-03 | 1996-02-20 | Hitachi Ltd | 制御テーブル管理方式 |
JPH08203292A (ja) * | 1995-01-31 | 1996-08-09 | Fuji Film Micro Device Kk | 不揮発性メモリ |
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
US5835935A (en) * | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
JP3702515B2 (ja) * | 1995-12-04 | 2005-10-05 | 富士通株式会社 | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット |
JP3197815B2 (ja) | 1996-04-15 | 2001-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
JPH09319666A (ja) * | 1996-05-31 | 1997-12-12 | Hitachi Ltd | 半導体ファイル記憶装置 |
US5943692A (en) * | 1997-04-30 | 1999-08-24 | International Business Machines Corporation | Mobile client computer system with flash memory management utilizing a virtual address map and variable length data |
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 |
-
1998
- 1998-12-08 CN CNB988025930A patent/CN1249585C/zh not_active Expired - Fee Related
- 1998-12-08 WO PCT/JP1998/005545 patent/WO1999031592A1/ja active Application Filing
-
1999
- 1999-08-16 US US09/374,267 patent/US6581132B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1248334A (zh) | 2000-03-22 |
WO1999031592A1 (fr) | 1999-06-24 |
US6581132B1 (en) | 2003-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1249585C (zh) | 闪速存储器*** | |
CN1249586C (zh) | 闪速存储器*** | |
CN1278243C (zh) | 用于合并存贮的数据项的按块擦除存储***和方法 | |
CN1276358C (zh) | 用于存储设备的地址转换单元 | |
CN102915208B (zh) | 信息处理装置、半导体存储装置及半导体存储装置的控制方法 | |
CN1229724C (zh) | 外部存储设备和数据处理方法 | |
CN1315057C (zh) | 重映射闪速存储器的方法 | |
CN1304960C (zh) | 用于实现文件的写入时复制的方法和*** | |
CN1186729C (zh) | 从虚地址计算页表索引的方法和装置 | |
CN1265274C (zh) | 存储设备控制装置和存储设备控制装置的控制方法 | |
CN1881183A (zh) | 信息处理装置、进程控制方法及其计算机程序 | |
CN1493026A (zh) | 存储装置及利用此存储装置的记录再生装置 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1722107A (zh) | 计算机***以及存储装置***的迁移方法 | |
CN1811744A (zh) | 通过串行总线互连多个处理节点的装置 | |
CN1680930A (zh) | 减少总线使用时间的***和控制器 | |
CN1202673A (zh) | 卡型存储媒体 | |
CN1934543A (zh) | 高速缓冲存储器及其控制方法 | |
CN101042674A (zh) | 非易失性存储装置及其数据写入方法 | |
CN1698035A (zh) | 数据存储装置、更新数据存储装置中的管理信息的方法和计算机程序 | |
CN101046771A (zh) | 使用闪存的存储***及其平均读写方法和平均读写程序 | |
CN1591345A (zh) | 存储*** | |
CN1596401A (zh) | 非易失性存储器装置的控制方法 | |
CN1922571A (zh) | 数据运行编程 | |
CN1795437A (zh) | 用于块内页面分组的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060405 Termination date: 20111208 |