CN1667591A - 用于闪速存储器的数据管理设备和方法 - Google Patents
用于闪速存储器的数据管理设备和方法 Download PDFInfo
- Publication number
- CN1667591A CN1667591A CNA2005100534758A CN200510053475A CN1667591A CN 1667591 A CN1667591 A CN 1667591A CN A2005100534758 A CNA2005100534758 A CN A2005100534758A CN 200510053475 A CN200510053475 A CN 200510053475A CN 1667591 A CN1667591 A CN 1667591A
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- unit
- operational processes
- management apparatus
- 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.)
- Granted
Links
Images
Classifications
-
- 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
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04H—BUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
- E04H17/00—Fencing, e.g. fences, enclosures, corrals
- E04H17/14—Fences constructed of rigid elements, e.g. with additional wire fillings or with posts
- E04H17/1413—Post-and-rail fences, e.g. without vertical cross-members
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04H—BUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
- E04H12/00—Towers; Masts or poles; Chimney stacks; Water-towers; Methods of erecting such structures
- E04H12/22—Sockets or holders for poles or posts
- E04H12/2207—Sockets or holders for poles or posts not used
- E04H12/2215—Sockets or holders for poles or posts not used driven into the ground
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04H—BUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
- E04H12/00—Towers; Masts or poles; Chimney stacks; Water-towers; Methods of erecting such structures
- E04H12/22—Sockets or holders for poles or posts
- E04H12/2253—Mounting poles or posts to the holder
- E04H12/2269—Mounting poles or posts to the holder in a socket
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04H—BUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
- E04H17/00—Fencing, e.g. fences, enclosures, corrals
- E04H17/14—Fences constructed of rigid elements, e.g. with additional wire fillings or with posts
- E04H17/1413—Post-and-rail fences, e.g. without vertical cross-members
- E04H17/1447—Details of connections between rails and posts
- E04H17/1452—Details of connections between rails and posts the ends of the rails are fixed on the lateral sides of the posts
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04H—BUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
- E04H17/00—Fencing, e.g. fences, enclosures, corrals
- E04H17/14—Fences constructed of rigid elements, e.g. with additional wire fillings or with posts
- E04H17/1413—Post-and-rail fences, e.g. without vertical cross-members
- E04H17/1447—Details of connections between rails and posts
- E04H17/1465—Details of connections between rails and posts the rails being supported within blind or through holes of the posts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
一种用于闪速存储器的数据管理设备和方法,其可以通过预测用户将何时接收响应于他或者她请求在闪速存储器上执行数据操作的响应来确保预定的响应时间。数据管理设备包括操作确定单元,用于确定用于在闪速存储器上执行数据操作而被需要的操作,用户利用用户程序请求数据操作;操作登记单元,用于通过该单元包括被确定用于在闪速存储器上执行被请求的数据操作而被需要的操作的操作列表被登记;和操作处理单元,用于选择包括在通过操作登记单元登记的操作列表中的操作之一并执行被选择的操作。
Description
技术领域
本发明涉及用于闪速存储器的数据管理的设备和方法,具体地讲,涉及这样一种用于闪速存储器的数据管理的设备和方法,其能够通过预测用户何时接收关于他或者她的在闪速存储器上执行数据操作的请求的响应消息来确保预定的响应时间。
背景技术
通常,例如机顶盒的家用设备、通讯装置和嵌入式系统利用非易失性存储器作为存储和处理数据的存储装置。
闪速存储器是非易失性存储器中的一类,在其中数据可以被电擦除和重写。因为它们比基于磁盘存储器的存储介质消耗更少的功率,和硬盘一样易得到,并尺寸紧凑,所以闪速存储器适合用作便携式装置。
由于闪速存储器的硬件特性,与传统的随机存取存储器(RAM)、非易失性存储介质或者磁存储介质不同,记录在闪速存储器上的数据以块为单元被擦除。
换句话说,在闪速存储器中,数据被记录在作为主机的逻辑操作单元的扇区上,而记录在扇区的数据通过删除包含该扇区的整个块被擦除。
由于在闪速存储器上数据被记录在其中的单元与其中数据从闪速存储器上被擦除的单元不同,闪速存储器的性能恶化。
为了防止闪速存储器基于这种原因的性能的恶化,逻辑地址和物理地址已经被提议。
换句话说,为了执行读取数据和写数据操作,通过各种类型的算法闪速存储器预定的逻辑地址被改成物理地址。在这种情况下,考虑到闪速存储器的物理条件,通过执行映射闪速存储器的性能可被最佳化。
闪速存储器可以包括用于存储将逻辑地址转换为物理地址的映射表的预定内存。
映射表通常被存储在SRAM中。然而,映射表也可以被存储在ROM、PROM、EPROM、高速缓冲存储器或者DRAM中。
图1示出映射表的例子。参照图1,映射表显示逻辑地址和各自的物理地址。
当反复地修改或擦除存储在闪速存储器中的数据时,数据被存储在其中的闪速存储器的物理地址很可能被改变。映射表利用相同的逻辑地址而不管物理地址的改变使存储在闪速存储器上的数据是可得到的。
通过利用逻辑地址存储在闪速存储器上的数据可得到的,其包括磁柱序列号、磁头序列号和扇区序列号。逻辑地址LSA可以用等式(1)表示:
LSA=(C*HpC+H)*SpH+S-1 ...(1)
其中,C是磁柱序列号,HpC是每个磁柱的磁头号,H是磁头序列号,SpH是每个磁头的扇区的号,并且S是扇区序列号。
如上所述,利用映射表逻辑地址被转换为物理地址从而例如写操作的数据操作在物理地址上被执行。
闪速存储器被划分为小块闪速存储器或者大块闪速存储器。在小块闪速存储器中,逻辑操作单元和物理操作单元相同,而在大块闪速存储器中,物理操作单元比逻辑操作单元大,并因此包括至少一个逻辑操作单元。
用于闪速存储器的传统的数据管理设备被表示在图2中。参照图2,传统的数据管理设备包括用户请求单元11,用户利用预定的用户程序对其发布在闪速存储器上执行数据操作的请求,并且用户从该单元接收指示数据操作是否被完成的响应信息;和控制器12,用于控制闪速装置驱动器13从而数据操作在用户请求下可以在闪速存储器上被执行。
当在闪速存储器的扇区上写数据时,扇区所属的块可以整个被擦除。
在擦除扇区所属的块之前,有效数据被存储在其中的相应块的有效扇区可以被复制到另一块。
块的擦除和将块中的有效扇区复制到另一块可被执行至少一次。
此外,考虑到闪速存储器内部的算法,确定反复擦除块而后将块中的有效扇区复制到另一块可以被执行多少次。
现在将更详细地说明用于闪速存储器的传统的数据管理设备的操作。
用于闪速存储器的传统的数据管理方法被示于图3。参照图2和图3,在操作S11中,用户将写数据到闪速存储器的扇区的请求发布到用户请求单元11。
在操作12中,响应于用户的请求,控制器将执行用于将数据写到扇区的预定操作的请求发布到闪速装置驱动器13。
在扇区上写数据需要擦除块或者将数据写到物理页上的操作。
具体地讲,将数据写到扇区的预定操作是将扇区所属的块中的有效扇区复制到另一个块或者擦除扇区所属的块的两操作中的至少一个。
在操作13中,通过闪速装置驱动器13数据被写到扇区以响应于发布的请求。
在操作14中,如果完成将数据写到扇区,则指示将数据写到扇区被完成的响应消息经控制器12被传输到用户请求单元11,因此基于该响应消息用户可辨别将数据写到扇区的完成。
然而,用于闪速存储器的传统的数据管理设备和方法具有在将数据写到扇区之前用户不能想象在闪速存储器内部什么操作已经被执行的缺点。
换句话说,通过简单地将数据写到物理页完成将数据写到扇区,如图4A所示,或者可通过执行多次反复擦除块而后将数据写到物理页来完成,如图4B所示。
因为在将数据写到扇区的预定操作的持续时间可根据将扇区所属的块的有效扇区复制到另一块并擦除该扇区所属的块是否被执行和执行多少次而相当大的不同,所以,对于用户来说不可能通过接收响应信息来预测他或者她何时被通知将数据写到扇区的完成。
例如,参照图5,如果用户将写数据的请求发布到用户请求单元11,用户请求单元11简单待机而不执行任何操作直到通过接收响应信息被通知写数据的完成。
如果花200微秒将数据写到页并且花2毫秒擦除块,则用户请求单元11不得不等待200毫秒到几个毫秒或者几秒才能接收响应信息。
简而言之,根据闪速存储器的内部算法,利用用于闪速存储器的传统的数据管理设备和方法将数据写到闪速存储器的扇区在不同的响应时间内结束,如图6所示,因此,当实际处理闪速存储器时会产生问题。
此外,因为这种不同的响应时间,用于闪速存储器的传统的数据管理设备和方法可能不能够满意地处理用户的请求,因此使整个闪速存储器的性能恶化。
发明内容
本发明的目的在于提供一种用于闪速存储器的数据管理设备和方法,其可以预测用户将接收关于他或者她的在闪速存储器上执行预定数据操作的请求的响应消息的响应时间,并且能够在响应时间内执行除了预定的数据操作之外的操作。
根据本发明的一方面,提供了一种用于闪速存储器的数据管理设备,包括:操作确定单元,用于确定用于在闪速存储器上执行数据操作而被需要的操作,用户利用用户程序请求数据操作;操作登记单元,通过该单元登记包括被确定用于在闪速存储器上执行被请求的数据操作而被需要的操作的操作列表;和操作处理单元,用于选择包括在通过操作登记单元登记的操作列表中的一个操作,并执行被选择的操作。操作确定单元可确定在被请求的数据操作前应该在闪速存储器上被执行的操作。此外,操作登记单元包括内存单元,用于存储在闪速存储器上执行被请求的数据操作而被需要的数据。此外,操作处理单元在由用户程序分配给它的预定的时间内执行包括在操作列表中的操作。操作处理单元在预定量的时间过去后将操作结果通知给用户程序。
在支持多进程的环境中,操作处理单元包含后台处理单元,用于将预定量的时间分配给操作处理单元从而操作处理单元能够在预定的时间内执行包括在操作列表中的操作。
如果后台处理单元从用户程序中接收控制操作处理单元的请求,则后台处理单元从操作处理单元接收对控制操作处理单元的请求的响应,而后将接收到的响应发送给用户程序。操作处理单元在预定量的时间过去后通知后台处理单元由操作处理单元获得的操作结果。
此外,操作处理单元在被分配给它的预定的时间内,可按照操作在操作列表中出现的顺序或根据操作的各自的优先级执行包括在操作列表中的所有操作,或者选择包括在操作列表中的一些操作然后在被分配给它的预定量的时间内仅执行被选择的操作。
预定量的时间被重复地分配到操作处理单元,并且操作处理单元在整个被分配的时间内执行包括在操作列表中的操作直到完成被请求的数据操作。
如果用户利用用户程序发布读取数据的请求,则操作处理单元可确定数据是否存在于内存单元中。此外,如果数据存在于内存单元中,则操作处理单元可从内存单元中读取数据。如果数据不存在于内存单元中,则操作处理单元从闪速存储器中读取数据。
根据本发明的另一方面,提供了一种用于闪速存储器的数据管理方法,包括:允许用户利用用户程序发布在闪速存储器上执行数据操作的请求;确定在闪速存储器上执行数据操作而被需要的操作并且登记包括被确定用于在闪速存储器上执行数据操作而需要的操作的操作列表,并选择包括在操作列表的操作中的操作之一并执行被选择的操作。
该确定可包括确定在被请求的数据操作前应在闪速存储器上被执行的操作。此外,该确定可包括在预定内存上存储用于执行被请求的数据操作而需要的数据。该选择可包括在被分配给它的预定的时间内通过用户程序处理操作。该选择可包括在预定的时间过去后把操作结果通知给用户程序。
在支持多进程的环境中,该选择可包括允许用户程序在预定量的时间内处理包括在操作列表中的操作,并且允许后台处理单元分配将与发送到它的响应相应的将被传送到用户程序中的响应。该选择可包括在预定的时间结束后把操作结果通知给后台处理单元。此外,选择包括在多个预定的被分配的时间内处理操作直到完成被请求的数据操作。
在这种情况下,该处理可包括在被分配的预定量的时间内按照它们在操作列表中出现的顺序或根据操作各自的优先级处理这些操作,或者在预定的被分配的时间内通过在包括在操作列表中的操作中选择一些操作而后仅执行被选择的操作。
根据本发明的另一方面,数据管理方法还包括允许用户利用用户程序发布从预定的扇区读取数据的请求;和确定操作列表是否包括用于从预定扇区读取数据而被需要的操作以响应于从预定扇区读取数据的请求。
如果操作列表包括从预定扇区读取数据而被需要的操作,则确定可包括读取用于与从预定扇区读取数据而被需要的操作一起被存储的数据。如果操作列表不包括用于从预定扇区中读取数据而被需要的操作,则确定可包括从闪速存储器中读取数据。
附图说明
通过结合附图详细的说明本发明示例性实施例,本发明的上述和其他方面将会变得更加清楚,其中:
图1是示出代表性的映射表的示图;
图2是用于闪速存储器的传统的数据管理设备的方框图;
图3是用于闪速存储器的传统的数据管理方法的流程图;
图4A是表示何时通过仅执行单一的物理操作完成将数据写到逻辑扇区的情形的图表;
图4B是表示何时通过执行多个物理操作完成将数据写到逻辑扇区的情形的图表;
图5是表示通过利用用于闪速存储器的传统的数据管理设备和方法执行的数据操作的示图;
图6是表示在响应于在闪速存储器上执行数据操作的请求的响应中获得的不同的响应时间的曲线图;
图7是根据本发明示例性实施例的用于闪速存储器的数据管理设备的方框图;
图8是图7的操作登记单元详细的方框图;
图9是表示根据本发明另一个示例性实施例的能够用于支持多进程的环境中的用于闪速存储器的数据管理设备的方框图;
图10是根据本发明示例性实施例的用于闪速存储器的数据管理方法的流程图;
图11是示出表示根据本发明示例性实施例在闪速存储器上执行的数据操作的示图;和
图12是图7的操作登记单元的高速缓冲存储方法的流程图。
具体实施方式
以下,通过参照示例性实施例的详细说明和附图可更易于理解本发明的各个方面及实现本发明的方法。然而,本发明可以多种不同的形式被实现并且不应该被理解为限制于这里提出的实施例。提供这些实施例从而本公开可以彻底和,并且将本发明的构思传达给本领域的技术人员。在整个描述中相同的标号表示相同的部件。
现在参照以下附图更详细地说明本发明,本发明的示例性实施例表示在附图中。
闪速存储器通常被分为大块闪速存储器和小块闪速存储器。小块闪速存储器具有相同尺寸的逻辑操作单元和物理操作单元,而大块闪速存储器具有比逻辑操作单元尺寸大的物理操作单元。作为在整个用户程序中由用户使用的数据操作单元的逻辑操作单元通常被称作扇区,作为在闪速存储器中使用的数据操作单元的物理操作单元通常被称作页。逻辑和物理操作单元的尺寸可以根据使用闪速存储器的设备的类型而改变,而不管扇区或者页。因此,在小块闪速存储器中,扇区和页是同样的,而在大块闪速存储器中页包括一个或者多个扇区。
为了将数据已经被写在其上的闪速存储器写满,扇区所属的块应该首先被擦除。如果扇区所属的块具有有效扇区,则有效扇区可以在擦掉该扇区所属的块之前被复制到另一块。因此,用于将数据写到闪速存储器的扇区而需要的操作的类型可根据闪速存储器的内部算法而不同。
用户不能够预测将数据写到闪速存储器的扇区上而需要的操作的每一个的类型和持续时间。因此,用户程序必须待机直到接收指示由用户请求的数据操作是否被完成的响应消息。
在用于管理存储在闪速存储器中的数据的软件被放置在非先占式内核层的情况下,其垄断核心资源。在这种情况下,传统的数据管理设备除了等待没有选择,直到接收到响应信息才能执行操作,因此传统的数据管理设备的性能恶化。
然而,根据本发明示例性实施例的用于闪速存储器的数据管理设备可以帮助预知用户何时接到对他或者她的在闪速存储器上执行数据操作的请求的响应并且能够执行除了数据操作外的操作,直到数据操作被完成。
图7是根据本发明示例性实施例的用于闪速存储器的数据管理设备的方框图。参照图7,数据管理设备包括:操作确定单元100,用于确定哪个操作需要被执行以用于由用户请求的数据操作;操作登记单元200,用于登记被确定用于执行被请求的数据操作而需要的操作;和操作处理单元300,用于执行已登记的操作。
此外,数据管理设备还包括用户请求单元400,用户将执行被请求的数据操作的请求发布到该单元,和从该单元接收指示被请求的数据操作是否被完成的响应消息;和闪速装置驱动器500,用于在操作处理单元300的控制下帮助执行被确定在闪速存储器上执行被请求的数据操作而需要的操作。
数据管理设备的多个操作单元即操作确定单元100、操作登记单元200、操作处理单元300、用户请求单元400、和闪速装置驱动500的每一个可以被设置为软件。另一方面,操作确定单元100、操作登记单元200、操作处理单元300、用户请求单元400、和闪速装置驱动器500可以被结合成一个单独的软件配置。
另一方面,操作确定单元100、操作登记单元200、操作处理单元300、用户请求单元400、和闪速装置驱动器500可以被划分为多个组,每一个组可以被设置为软件。
最好但不是必须,操作确定单元100包括闪速映射引擎(flash mappingengine),用于处理逻辑地址到物理地址映射信息和算法;并且操作登记单元200包括队列或者缓冲器,用于存储被确定用于执行被请求的数据操作而被需要的操作。
这里,如果用户请求预定的数据操作,则操作确定单元100确定哪个操作应该在被请求的数据操作之前被执行,并且产生操作列表,该操作列表包括被确定用于执行被请求的数据操作而被需要的操作。
例如,如果用户发布将数据写到闪速存储器的扇区的请求,则操作确定单元100确定擦除扇区所属的块和/或者复制扇区所属的块中的有效扇区是否应该被执行。
如图8所示,操作列表可以通过操作登记单元200被登记。操作登记单元200可包括内存单元210,按用户的请求将被写到闪速存储器的扇区的数据被存储在其中。
内存单元210可从操作登记单元200中被分离,最好但不是必须的,内存单元210可以是高速缓冲存储器、ROM、PROM、EPROM、EEPROM、闪速存储器、SRAM或者DRAM。
其间,用户请求单元400将预定量的时间分配给操作处理单元300。然后,操作处理单元300从通过操作登记单元200登记的操作列表中抽取可在预定时间内处理的多个操作中的一些操作,在预定量的时间内处理被抽取的操作,并且基于处理结果响应用户请求单元400。
具体地讲,操作处理单元300通过将包含关于被请求的数据操作是否被完成的信息的响应消息发送到用户请求单元400来响应用户请求单元400。
换句话说,如果用户请求单元400从操作处理单元300接收到指示被请求的数据操作还没被完成的响应消息,则其再次将预定量的时间分配给操作处理单元300。否则,用户请求单元400通知用户被请求的数据操作的完成。
操作处理单元300可以在预定的时间内按照它们在操作列表中出现的顺序或者根据各自的优先级处理包括在操作列表中的操作。
另一方面,考虑到操作在操作列表中出现的顺序或者操作的优先级,操作处理单元300可以选择包括在操作列表中的被认为能够在预定量的时间内处理的一些操作,然后并且仅执行被选择的操作。因此,用户请求单元400能够在预定的时间内执行除了被请求的数据操作外的操作,所以,提高了整个系统的性能。
此外,如果被请求的数据操作在预定的时间内未被完成,则其重复分配预定的时间给操作处理单元300直到被请求的数据操作被完成。因此,用户可以利用用户请求单元400执行除了被请求的数据操作外操作。
如上所述,根据本发明示例性实施例的用于闪速存储器的数据管理设备可以在几个阶段执行被请求的数据操作,并且允许用户请求单元400执行除了被请求的数据操作之外的操作。因此,操作登记单元200可以用作高速缓冲存储器。例如,如果用户发布写预定数据的请求,则预定的数据被存储在操作登记单元200的内存单元210中。
如果用户还在操作处理单元300分配的预定的时间内发布读取预定数据的请求,则预定数据可以从内存单元210中被读取,而不是从闪速存储器中。然而,如果预定数据不存在于内存单元210中,则其从闪速存储器中被读取。
以下,参照附图12更详细地说明从操作登记单元200的内存单元210中读取数据的方法。
在本发明另一个示例性实施例中,其中数据管理设备被用在支持多进程的系统中,如图9示出的用于闪速存储器的数据管理设备,后台处理单元600服务于图9的操作处理单元300提供的多个功能。
具体的讲,响应于用户请求单元400发布的请求后台处理单元600控制操作处理单元300,从操作处理单元300接收响应消息,并且将响应消息发送到用户请求单元400,从而通知用户用于执行由用户请求的数据操作而被需要的操作已经通过操作登记单元200被登记。
此外,用户请求单元400可以将控制操作处理单元300的请求发布到后台处理单元600,并且可以执行其他操作。
此后,通过操作登记单元200被登记的操作被后台处理单元600控制以控制操作处理单元300,因此,将支持多进程的系统的效率最佳化。
包括操作确定单元100、操作登记单元200、操作处理单元300、用户请求单元400、闪速装置驱动器500、和后台处理单元600的数据管理设备的多个单元的每一个可以被设置为软件。
另一方面,操作确定单元100、操作登记单元200、操作处理单元300、用户请求单元400、闪速装置驱动器500、和后台处理单元600可以结合成一个单独的软件配置。
另一方面,操作确定单元100、操作登记单元200、操作处理单元300、用户请求单元400、闪速装置驱动器500、和后台处理单元600被分成多个组,每个组可被设置为软件。
现在更详细地说明图7或者图9的数据管理设备的操作。
图10是根据本发明示例性实施例用于闪速存储器的数据管理方法的流程图。
参照图7或者图9和图10,在操作S111中,用户将在闪速存储器上执行预定的数据操作的请求发布给用户请求单元400。
假设预定的数据操作是将数据写到闪速存储器的预定扇区的操作。
在操作S112中,为了执行被请求的数据操作,操作确定单元100确定哪个操作需要被执行。在操作S113中,操作确定单元100通过操作登记单元200登记被确定用于执行被请求的数据操作而被需要的操作。
具体的讲,如果用户期望将数据写到预定的扇区,则操作确定单元100确定是否应该执行擦除预定扇区所属的块和/或者将块中的有效扇区复制到另一块,基于确定结果产生包括被确定用于将数据写到预定的扇区而被需要的操作的操作列表,并且通过操作登记单元200登记操作列表。
期望被写到预定扇区的数据可以通过操作登记单元200的内存单元210登记在操作列表旁。
在操作S114中,用户请求单元400将预定量的时间分配给操作处理单元300,并且操作处理单元300发布在预定的时间内执行通过操作登记单元200登记的操作的请求。
这里,操作处理单元300被允许在由操作处理单元300分配的预定的时间内执行通过操作登记单元200登记的操作。
在操作S115中,操作处理单元300在预定的时间内以多个阶段执行通过操作登记单元200登记的操作,直到完成被请求的数据操作,而后基于操作结果将指示被请求的数据操作是否被完成的响应消息发送到用户请求单元400。
因此,用户请求单元400能够基于从操作处理单元300发出的响应消息辨别被请求的数据操作是否被完成或者被请求的数据操作被完成多少。
从操作处理单元300发送给用户请求单元400的响应消息可以包含关于在执行被请求的数据操作过程中发生的错误的信息。
如上所述,用户请求单元400能够基于从操作处理单元300发送的响应消息辨别被请求的数据操作是否被完成或者被请求的数据操作被完成多少。
因此,用户请求单元400可以执行除了被请求的数据操作之外的操作。
在操作S116中,操作S114和操作S115被重复地执行直到用户请求单元400从操作处理单元300接收到指示被请求的数据操作被完成的响应消息。
参照图11更详细的说明图10的数据管理方法。
参照图11,当用户发布执行预定的数据操作的请求时,例如请求将数据写到闪速存储器的预定扇区,操作确定单元100为了执行被请求的数据操作而确定哪个操作需要被执行,产生包括被确定用于执行被请求的数据操作而被需要的操作的操作列表,并且通过操作登记单元200登记操作列表。
操作处理单元300在所分配的预定的时间内执行通过操作登记单元200登记的操作,并且将响应消息传送到用户请求单元400。
换句话说,如果用户请求单元400将第一响应时间分配给操作处理单元300,则操作处理单元300在第一响应时间内执行第一组操作并且将操作结果通知用户请求单元400。
如果将数据写到预定的扇区还没被完成,用户请求单元400将第二个响应时间和随后的第三个响应时间分配给操作处理单元300,直到完成将数据写到预定的扇区。然后,操作处理单元300可以在第二个响应时间内执行第二组操作,而后在第三个响应时间内执行第三组操作。因此,用户请求单元400能够辨别被请求的数据操作是否被完成或者被请求的数据操作被完成多少。
此外,用户请求单元400能够在第一、第二或者第三个响应时间内执行除了被请求的数据操作之外的操作,因此,提高了整个系统的效率。例如,如果被请求的数据操作是将数据写到预定的扇区,则用户请求单元400可以在第一、第二或者第三个响应时间内从闪速存储器中读取数据同时将数据写到预定的扇区,在这种情况下,操作登记单元200用作高速缓冲存储器。由于期望被写到预定扇区的数据也可以通过操作登记单元200被登记,因此如果用户发布从预定扇区读取数据的请求,则其可以直接从操作登记单元200中被读取。
将参照图12描述读取通过操作登记单元200登记的数据的方法。参照图12,在操作S211中,用户发布从闪速存储器的预定扇区读取数据的请求。
在操作S212中,确定从预定扇区中读取数据的操作是否已经通过操作登记单元200被登记。在操作S213中,如果从预定扇区读取数据的操作已经通过操作登记单元200被登记,则从操作登记单元200读取数据。在操作S214中,如果从预定扇区读取数据的操作还没通过操作登记单元200被登记,则从闪速存储器读取数据。
另一方面,如果图9的数据管理设备被用于支持多进程的系统,则后台处理单元600控制操作处理单元300,因此,用户请求单元400接收仅指示已经通过操作登记单元200被登记的执行由用户请求的数据操作而被需要的响应消息。具体的讲,用户请求单元400将用于控制操作处理单元300的请求发布到后台处理单元600,并且后台处理单元600将从操作处理单元300接收到的响应消息发送给用户请求单元400。
因此,操作处理单元300执行通过操作登记单元200登记的操作,并通知后台处理单元600操作结果,并且后台处理单元600将从操作处理单元300接收的响应消息传递给用户请求单元400。
后台处理单元600将关于分配给操作处理单元300的响应时间的信息发送到用户请求单元400。因此,用户请求单元400可以在响应时间内执行除了被请求的数据操作之外的操作。
虽然已经参照附图描述了根据本发明的用于闪速存储器的数据管理设备和方法,但是本发明不被限制于在说明书中公开的示例性实施例和附图,在基本不脱离本发明原理的情况下,可以进行各种变型和修改。
根据本发明用于闪速存储器的数据管理设备和方法具有下列示例性的特征。
第一,用户可以预期他或她何时接收到关于他或她请求通过分配用于数据操作的预定的时间在闪速存储器上执行数据操作的响应消息,然后在预定量的时间内执行数据操作。因此,可以相当大地提高系统的性能。
第二,由于数据管理设备,可以通过频繁的数据更新来相当大地提高系统的性能。
Claims (35)
1、一种用于闪速存储器的数据管理设备,包括:
操作确定单元,用于确定用于在闪速存储器上执行被请求的数据操作而需要的操作,被请求的数据操作由用户使用用户程序而被请求;
操作登记单元,通过该单元包括被确定用于在闪速存储器上执行被请求的数据操作而需要的操作的操作列表被登记;和
操作处理单元,用于在包括在通过操作登记单元登记的操作列表中的操作中选择操作并执行被选择的操作。
2、如权利要求1所述的数据管理设备,其中,操作确定单元确定在被请求的数据操作前应该在闪速存储器上被执行的操作。
3、如权利要求2所述的数据管理设备,其中,操作登记单元包括内存单元,用于存储用于在闪速存储器上执行被请求的数据操作而需要的数据。
4、如权利要求3所述的数据管理设备,其中,操作处理单元在由用户程序分配给它的预定量的时间内执行包括在操作列表中的操作。
5、如权利要求4所述的数据管理设备,其中,操作处理单元在预定的时间结束后将操作结果通知给用户程序。
6、如权利要求3所述的数据管理设备,其中,在支持多进程的环境中,操作处理单元包括后台处理单元,用于将预定的时间分配给操作处理单元,从而操作处理单元能够在预定的时间内执行包括在操作列表中的操作。
7、如权利要求6所述的数据管理设备,其中,如果后台处理单元从用户程序中接收控制操作处理单元的请求,则后台处理单元从操作处理单元接收对控制操作处理单元的请求的响应,而后将响应发送给用户程序。
8、如权利要求7所述的数据管理设备,其中,操作处理单元在预定的时间结束后通知后台处理单元由操作处理单元获得的操作结果。
9、如权利要求5所述的数据管理设备,其中,操作处理单元在被分配给它的预定量的时间内按照操作在操作列表中出现的顺序,根据各个操作的优先级,执行包括在操作列表中的所有操作,或者在包括在操作列表的操作中选择一些操作然后在被分配给它的预定量的时间内仅执行被选择的操作。
10、如权利要求5所述的数据管理设备,其中,预定量的时间被重复地分配到操作处理单元,并且操作处理单元在整个预定的时间内执行包括在操作列表中的操作,直到完成被请求的数据操作。
11、如权利要求5所述的数据管理设备,其中,如果用户利用用户程序发布读取数据的请求,则操作处理单元确定数据是否存在于内存单元中。
12、如权利要求11所述的数据管理设备,其中,如果数据存在于内存单元中,则操作处理单元从内存单元中读取数据。
13、如权利要求12所述的数据管理设备,其中,如果数据不存在于内存单元中,则操作处理单元从闪速存储器中读取数据。
14、如权利要求8所述的数据管理设备,其中,操作处理单元在被分配给它的预定量的时间内按照操作在操作列表中出现的顺序,根据各个操作的优先级,执行包括在操作列表中的所有操作,或者通过在包括在操作列表中的操作中选择一些操作并且在被分配给它的预定的时间内仅执行被选择的操作。
15、如权利要求8所述的数据管理设备,其中,预定的时间被重复地分配到操作处理单元,并且操作处理单元在整个预定的时间内执行包括在操作列表中的操作直到完成被请求的操作。
16、如权利要求8所述的数据管理设备,其中,如果用户利用用户程序发布读取数据的请求,则操作处理单元确定数据是否存在于内存单元。
17、如权利要求16所述的数据管理设备,其中,如果数据存在于内存单元中,则操作处理单元从内存单元中读取数据。
18、如权利要求17所述的数据管理设备,其中,如果数据不存在于内存单元中,则操作处理单元从闪速存储器中读取数据。
19、一种用于闪速存储器的数据管理方法,包括:
利用用户程序接收在闪速存储器上执行被请求的数据操作的请求;
确定用于在闪速存储器上执行数据操作而被需要的操作,并且登记包括被确定用于在闪速存储器上执行数据操作而被需要的操作的操作列表;和
在包括在操作列表中的操作中选择操作并执行被选择的操作。
20、如权利要求19所述的数据管理方法,其中,确定包括确定在被请求的数据操作前将在闪速存储器上被执行的操作。
21、如权利要求20所述的数据管理方法,其中,确定包括在预定内存上存储用于执行被请求的数据操作而被需要的数据。
22、如权利要求21所述的数据管理方法,其中,选择包括在由用户程分配给它的预定量的时间内处理操作。
23、如权利要求22所述的数据管理方法,其中,选择包括在预定的时间结束后将操作结果通知给用户程序。
24、如权利要求21所述的数据管理方法,其中,在支持多进程的环境中,选择包括允许用户程序在预定的时间内处理包括在操作列表中的操作,并且允许后台处理单元分配与发送到它的响应相应的将被发送到用户程序中的响应。
25、如权利要求24所述的数据管理方法,其中,选择包括在预定的时间结束后将操作结果通知给后台处理单元。
26、如权利要求23所述的数据管理方法,其中,选择包括在多个预定的被分配的时间内处理操作直到完成被请求的数据操作。
27、如权利要求26所述的数据管理方法,其中,处理包括:在被分配到它的预定的时间内按照操作在操作列表中出现的顺序,根据操作各自的优先级处理操作;或者通过在包括在操作列表中的操作中选择一些操作并且在预定的被分配的时间内仅执行被选择的操作。
28、如权利要求27所述的数据管理方法,还包括:
利用用户程序接收从预定的扇区读取数据的请求;和
响应于从预定扇区读取数据的请求,确定操作列表是否包括从预定扇区读取数据而被需要的操作。
29、如权利要求28所述的数据管理方法,其中,如果操作列表包括从预定扇区读取数据而被需要的操作,则确定包括读取与从预定扇区读取数据而被需要的操作一起被存储的数据。
30、如权利要求29所述的数据管理方法,其中,如果操作列表不包括从预定扇区读取数据而被需要的操作,则确定包括从闪速存储器中读取数据。
31、如权利要求25所述的数据管理方法,其中,选择包括在多个预定的被分配的时间内处理操作直到完成被请求的数据操作。
32、如权利要求31所述的数据管理方法,其中,操作包括:在预定的被分配的时间内按照操作在操作列表中出现的顺序,根据各个操作的优先级,处理操作;或者在包括在操作列表的操作中选择一些操作并且在预定的分配的时间内仅执行被选择的操作。
33、如权利要求32所述的数据管理方法,还包括:
允许用户利用用户程序发布从预定的扇区中读取数据的请求;和
响应于从预定扇区中读取数据的请求,确定操作列表是否包括从预定扇区中读取数据而被需要的操作。
34、如权利要求33所述的数据管理方法,其中,如果操作列表包括从预定的扇区中读取数据而被需要的操作,则确定包括读取与从预定的扇区读取数据而被需要的操作一起被存储的数据。
35、如权利要求34所述的数据管理方法,其中,如果操作列表不包括从预定的扇区中读取数据而被需要的操作,则确定包括从闪速存储器中读取数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040016567A KR100541642B1 (ko) | 2004-03-11 | 2004-03-11 | 플래시 메모리의 데이터 관리 장치 및 방법 |
KR16567/2004 | 2004-03-11 | ||
KR16567/04 | 2004-03-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1667591A true CN1667591A (zh) | 2005-09-14 |
CN100397363C CN100397363C (zh) | 2008-06-25 |
Family
ID=34825215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100534758A Expired - Fee Related CN100397363C (zh) | 2004-03-11 | 2005-03-11 | 用于闪速存储器的数据管理设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7430632B2 (zh) |
EP (1) | EP1574940A3 (zh) |
JP (1) | JP4242849B2 (zh) |
KR (1) | KR100541642B1 (zh) |
CN (1) | CN100397363C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027194B2 (en) | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
KR100869675B1 (ko) * | 2007-02-05 | 2008-11-21 | 지인정보기술 주식회사 | 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법 |
TWI470431B (zh) * | 2013-06-14 | 2015-01-21 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
KR20210055875A (ko) | 2019-11-08 | 2021-05-18 | 삼성전자주식회사 | 저장 장치와 저장 장치 시스템 그리고 그 동작 방법 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5471604A (en) * | 1992-10-30 | 1995-11-28 | Intel Corporation | Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer |
US5509134A (en) * | 1993-06-30 | 1996-04-16 | Intel Corporation | Method and apparatus for execution of operations in a flash memory array |
US6370651B1 (en) * | 1993-10-22 | 2002-04-09 | Intel Corporation | Synchronizing user commands to a microcontroller in a memory device |
WO1998009225A1 (en) * | 1996-08-29 | 1998-03-05 | Nematron Corporation | Real time software system |
US6078998A (en) * | 1997-02-11 | 2000-06-20 | Matsushita Electric Industrial Co., Ltd. | Real time scheduling of prioritized disk requests |
FR2772957B1 (fr) * | 1997-12-19 | 2000-02-04 | Gemplus Card Int | Procede de gestion d'applications evolutives dans un systeme terminal / carte a puce |
US6042383A (en) * | 1998-05-26 | 2000-03-28 | Herron; Lois J. | Portable electronic device for assisting persons with learning disabilities and attention deficit disorders |
JP2000057039A (ja) | 1998-08-03 | 2000-02-25 | Canon Inc | アクセス制御方法及び装置及びファイルシステム及び情報処理装置 |
US6374337B1 (en) * | 1998-11-17 | 2002-04-16 | Lexar Media, Inc. | Data pipelining method and apparatus for memory control circuit |
JP3440032B2 (ja) | 1999-07-15 | 2003-08-25 | パナソニック コミュニケーションズ株式会社 | メモリ制御装置,ファクシミリ装置および画像形成装置 |
JP4527239B2 (ja) | 2000-05-09 | 2010-08-18 | 大日本印刷株式会社 | ラベル印刷システム |
JP2002163175A (ja) * | 2000-11-28 | 2002-06-07 | Ntt Docomo Inc | 受信装置及び中継装置 |
US6614709B2 (en) * | 2001-03-09 | 2003-09-02 | Intel Corporation | Method and apparatus for processing commands in a queue coupled to a system or memory |
US6779045B2 (en) * | 2001-03-21 | 2004-08-17 | Intel Corporation | System and apparatus for increasing the number of operations per transmission for a media management system |
GB2395032B (en) * | 2001-08-07 | 2004-11-24 | Solid State System Co Ltd | Window-based flash memory storage system and management and access methods thereof |
US6778436B2 (en) * | 2001-10-10 | 2004-08-17 | Fong Piau | Apparatus and architecture for a compact flash memory controller |
JP4082913B2 (ja) * | 2002-02-07 | 2008-04-30 | 株式会社ルネサステクノロジ | メモリシステム |
CN100378656C (zh) * | 2002-04-30 | 2008-04-02 | Nxp股份有限公司 | 具有非易失性存储器的集成电路以及用于从所述存储器中取数据的方法 |
ATE503229T1 (de) * | 2002-04-30 | 2011-04-15 | Dsp Group Switzerland Ag | Verfahren zur ausholung von daten aus einem nichtflüchtigen speicher in einer integrierten schaltung und integrierte schaltung hierfür |
US20030206442A1 (en) * | 2002-05-02 | 2003-11-06 | Jerry Tang | Flash memory bridiging device, method and application system |
KR100493884B1 (ko) * | 2003-01-09 | 2005-06-10 | 삼성전자주식회사 | 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩 |
JP4073799B2 (ja) * | 2003-02-07 | 2008-04-09 | 株式会社ルネサステクノロジ | メモリシステム |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
-
2004
- 2004-03-11 KR KR1020040016567A patent/KR100541642B1/ko not_active IP Right Cessation
-
2005
- 2005-02-22 JP JP2005046083A patent/JP4242849B2/ja not_active Expired - Fee Related
- 2005-03-08 EP EP05251361A patent/EP1574940A3/en not_active Withdrawn
- 2005-03-11 US US11/077,157 patent/US7430632B2/en not_active Expired - Fee Related
- 2005-03-11 CN CNB2005100534758A patent/CN100397363C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1574940A2 (en) | 2005-09-14 |
US20050201160A1 (en) | 2005-09-15 |
KR20050091230A (ko) | 2005-09-15 |
CN100397363C (zh) | 2008-06-25 |
US7430632B2 (en) | 2008-09-30 |
EP1574940A3 (en) | 2008-11-26 |
JP2005259127A (ja) | 2005-09-22 |
JP4242849B2 (ja) | 2009-03-25 |
KR100541642B1 (ko) | 2006-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1154928C (zh) | 用于多任务设施信息处理系统的资源管理方法和设备 | |
CN1242330C (zh) | 执行并飞“异或”运算的方法和系统 | |
CN1317648C (zh) | 用于在主机处理器和图形处理器之间优化存储器共享的方法和系统 | |
CN1645516A (zh) | 用于闪速存储器的数据恢复设备和方法 | |
CN1648876A (zh) | 闪速存储器的数据管理设备和方法 | |
CN1720590A (zh) | 非易失性存储系统中的自动磨损平衡 | |
CN1701308A (zh) | 维护非易失性存储系统中的擦除计数 | |
CN1652253A (zh) | 存储卡和半导体器件 | |
CN1504896A (zh) | 在非易失性存储器系统中执行块高速缓冲存储的方法和装置 | |
CN1701390A (zh) | 跟踪非易失性存储器系统中最频繁擦除区块 | |
CN1734429A (zh) | 信息处理设备、存储设备和存储控制设备 | |
CN1540672A (zh) | 用于非易失存储系统的电源管理数据块 | |
CN1698036A (zh) | 跟踪非易失性存储器系统中最不频繁擦除区块 | |
CN1637724A (zh) | 用于闪速存储器的数据管理装置和方法 | |
CN1701389A (zh) | 维持非易失性存储系统中的平均擦除计数 | |
CN1701309A (zh) | 非易失性存储系统中的损耗平衡 | |
CN1881167A (zh) | 存储控制装置及其控制方法 | |
CN1538456A (zh) | 闪存存取装置及方法 | |
CN1658194A (zh) | 文件系统控制装置和文件系统控制方法 | |
CN1120699A (zh) | 高速缓存控制系统 | |
CN100341009C (zh) | 在管线微处理器使用卷标以执行结合写入的装置及方法 | |
CN1652088A (zh) | 用于闪速存储器的数据管理设备和方法 | |
CN1667591A (zh) | 用于闪速存储器的数据管理设备和方法 | |
CN1202467C (zh) | 在可拆卸设备上建立多个分区的方法 | |
CN1163834C (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080625 Termination date: 20150311 |
|
EXPY | Termination of patent right or utility model |