CN1916875A - 存储器空间管理方法及其相关*** - Google Patents

存储器空间管理方法及其相关*** Download PDF

Info

Publication number
CN1916875A
CN1916875A CNA200610115798XA CN200610115798A CN1916875A CN 1916875 A CN1916875 A CN 1916875A CN A200610115798X A CNA200610115798X A CN A200610115798XA CN 200610115798 A CN200610115798 A CN 200610115798A CN 1916875 A CN1916875 A CN 1916875A
Authority
CN
China
Prior art keywords
storage device
size
data
storage
access unit
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
Application number
CNA200610115798XA
Other languages
English (en)
Other versions
CN100520735C (zh
Inventor
汪秉玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of CN1916875A publication Critical patent/CN1916875A/zh
Application granted granted Critical
Publication of CN100520735C publication Critical patent/CN100520735C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种存储器空间管理方法及其相关***,用来依据一档案***的一存取单元的大小来处理多个原始机器运作指令(primitive operation)的一集合来存取依据一储存单元的大小来储存数据的一储存装置,该存储器空间管理方法包含有:接收指示至少一存取单元地址的一原始机器运作指令;将所述存取单元地址转译成至少一相对应的储存单元地址,其中所述储存单元的大小不同于所述存取单元的大小;以及使用该储存单元地址来存取所述储存装置以响应所述原始机器运作指令。本发明中电子装置的制造成本并不会大为增加,而对于大量数据储存而言,也可以提供较快速的读写能力。

Description

存储器空间管理方法及其相关***
技术领域
本发明在于提供一种存取数据的方法与相关***,尤指一种使用一缓冲储存模块来缓冲两储存装置之间所传递的数据的存储器空间管理(memorymanagement)方法及其存储器管理***,其中此两储存装置为具有不同大小的基本数据存取单元(basic data access unit)的储存装置。
背景技术
在档案管理***中,例如一般磁盘操作***(Disk Operating System,DOS)、窗口操作***(Windows)与OS/2操作***中所支持或使用的的档案配置***(File Allocation System,FAT),磁盘(storage disk)在逻辑上将被分割成数个丛集(cluster),而每个丛集进一步将被分割成多个扇区(sector),举例来说,一个丛集具有四个512字节大小的扇区,其中该扇区为档案配置***中一最小存取单元,此外,对于一非挥发性储存装置而言,例如闪存(flashmemory)装置,该非挥发性储存装置在逻辑上将被分割成多个基本储存单元,而一个档案则由一特定数目的基本储存单元所组成,举例来说,闪存装置中一基本储存单元为一512字节大小的储存页面(page)。
因此,档案配置***可以经由一驱动程序(driver)来存取所述闪存装置,而该驱动程序则用来撷取或者更新储存于该闪存装置中的数据;在现有技术中,该储存页面的大小相同于该扇区的大小,即,该闪存装置中每一储存页面对应于档案配置***中的一扇区,然而,由于存储体高容量需求,目前的闪存装置皆具有较大尺寸的储存页面(例如储存页面的大小为2K字节)以提供较好的效能,因此,扇区的大小与储存页面的大小之间的不一致将形成严重的问题,而现有技术在解决此一问题时提供一种将扇区的大小扩展成相同于储存页面的大小的机制,然而,档案配置***将需要占用随机存取存储器(random access memory,RAM)装置的一部分空间,其中该随机存取存储器为采用该档案配置***的电子***中的存储器,因而将大大增加该电子***的成本。
发明内容
因此本发明的目的之一在于提供一种使用一缓冲储存模块来缓冲于两储存装置之间所传递的数据的存储器空间管理方法及存储器管理***,其中此两储存装置为具有不同大小的基本数据存取单元的储存装置。
依据本发明的申请专利范围,其揭露一种应用于一储存装置的存储器空间管理方法,其中该储存装置包含有多个储存单元。所述方法包含有:提供包含有一缓冲空间的缓冲储存装置,其中该缓冲空间的大小相同于每一储存单元的大小;接收经由至少一存取单元所传送的输入数据,并储存该输入数据至该缓冲储存装置的缓冲空间,其中该存取单元的大小不同于每一储存单元的大小;以及当该缓冲空间已满时,由传送储存于该缓冲空间的数据至该储存装置中所述多个储存单元的一第一储存单元来写入所述输入数据至该储存装置。
依据本发明的实施例,其另揭露一种存储器空间管理***。所述存储器空间管理***包含有一数据来源、一储存装置、一缓冲储存装置以及一储存装置控制器。所述数据来源用来提供一输入数据予至少一存取单元;所述储存装置包含有多个储存单元,其中该存取单元的大小不同于每一储存单元的大小;所述缓冲储存装置包含有一缓冲空间,其中该缓冲空间的大小相同于每一储存单元的大小;所述储存装置控制器耦接至所述数据来源、所述储存装置与所述缓冲储存装置,并用来接收经由所述存取单元所传送的输入数据,储存所述输入数据至该缓冲储存装置的所述缓冲空间,以及当该缓冲空间已满时,由传送储存于该缓冲空间的数据至该储存装置中该多个储存单元的一第一储存单元来写入该输入数据至该储存装置。
相较于现有技术,本发明档案配置***中存取单元的大小与闪存模块中储存单元的大小不需要修改为相同大小,因此,本发明电子***的成本也不会大为增加,而对于作为大量数据储存而言,则能够提供较快速的读写能力。
附图说明
图1为本发明存储器空间管理***一实施例的示意图。
图2为本发明数据写入运作的一实施例的示意图。
图3为本发明数据读取运作的一实施例的示意图。
图4为本发明数据读取运作的另一实施例的示意图。
图5为本发明数据修正运作的一实施例的示意图。
主要元件符号说明:
10:存储器空间管理***;
12:电子装置;
14:闪存模块;
22:微处理器;
24:存储器单元;
26:缓冲储存模块;
27:缓冲空间;
28:闪存控制器;
51、52、53、54:储存页面;
270、271、272、273:缓冲单元;
510、511、512、513、520、521、522、523:子储存页面;
530、531、532、533、540、541、542、543:子储存页面。
具体实施方式
请参照图1,图1是本发明存储器空间管理***10的一实施例的示意图。在本实施例中,存储器空间管理***10包含有一电子装置12(例如基频芯片、手机或者是数字相机)与一闪存模块14,其中电子装置12包含有一微处理器22、用以作为一数据来源的存储器单元24、用以作为一缓冲储存装置的缓冲储存模块26与用以作为一储存装置的闪存控制器28,为了进一步说明本发明的技术特征,在本实施例中假设电子装置12采用档案配置***(FAT)来管理存储器的空间,另外,存储器单元24耦接至微处理器22,并依据至少一存取单元来储存数据,其中该存取单元表示档案配置***中所采用于数据存取的最小单元,而在本实施例中,该存取单元为具有512字节大小的一扇区,此外,储存于存储器单元24中的数据包含有驱动程序(包括闪存模块14的驱动程序)、档案***软件与不同的软件应用程序,微处理器22则耦接至存储器单元24与闪存控制器28,用来执行储存于存储器单元24中的数据(例如闪存的驱动程序),而闪存模块14则耦接至电子装置12,用来储存存储器单元24中所储存的程序代码于执行时所可能使用的数据,例如***设定与使用者数据,如熟习此项技术者所熟知,闪存模块14包含有多个储存单元,其中各储存单元为闪存模块14中最小存取单元,而在本实施例中,储存单元的大小具有2K字节的一储存页面,而存储器单元24中存取单元的大小不同于闪存模块14中储存单元的大小,举例来说,一2K字节的储存页面(即一储存单元)将对应于四个具有512字节大小的扇区(即四个存取单元)。请注意到,在本发明的其它实施例中,存取单元与储存单元的大小可能因不同的设计需求而改变,然此也属于本发明的范畴;此外,如图1所示,微处理器22、存储器单元24、缓冲储存模块26以及闪存控制器28都置于电子装置12中,然而,此非本发明的限制。
在本实施例中,缓冲储存模块26耦接至闪存控制器28,并包含有一缓冲空间27,其中缓冲空间27的大小相同于闪存模块14中每一储存单元的大小,如图1所示,缓冲空间27包含有多个缓冲单元,其中每一缓冲单元为缓冲储存模块26中最小的存取单元,在本实施例中,一缓冲单元的大小相同于存储器单元24中一存取单元的大小,即该缓冲单元的大小为512字节,但是请注意到,缓冲储存模块26并不限于只具有四个缓冲单元,换言之,缓冲储存模块26也可以设计成具有多个缓冲空间以提供较佳的缓冲能力。
另外,闪存控制器28耦接至微处理器22、闪存4与14与缓冲储存模块26,并用来控制闪存模块14的数据存取(即数据读取或者是数据写入),其中缓冲储存模块26与闪存控制器28的详细说明将于稍后描述。在此请注意到,本发明的其它实施例中,闪存模块14可以被其它储存装置所取代,而闪存控制器28则可以由软件或是硬件的方式而以其它储存装置控制器(storagecontroller)来加以实现,此外,电子装置12也可以被其它操作模块取代并且其也能够采用其它不同的档案***;如图1所示,缓冲储存模块26中缓冲空间27的大小为2K字节包含有缓冲单元2270、271、272、273,而闪存模块14则包含有多个储存页面(其中包括储存页面51、52、53、54),而在本实施例中,储存页面51、52、53、54中每一储存页面都包含有四个子储存页面(分别是子储存页面510~513、520~523、530~533、540~543),其中每一子储存页面的大小相同于一存取单元的大小。
当微处理器22执行一应用程序(例如上述的软件应用程序)并且该应用程序需要存取储存于闪存模块14中的数据时,该应用程序会呼叫档案配置管理***的原始机器运作指令(primitive operation),或者是由该应用程序中的函式来呼叫其对应的原始机器运作指令,其中该原始机器运作指令包含有一数据写入运作、一数据读取运作与一数据修正运作,而该原始机器运作指令另进一步地呼叫闪存模块14的闪存驱动程序以驱动实际上存取闪存模块14的相对应的闪存控制器28,而该闪存驱动程序则将依据档案配置管理***所提供的扇区地址来计算出一储存页面地址(即,闪存模块14中某特定储存页面的储存页面地址),并存取储存于闪存模块14中的数据。
然后,自闪存模块14所取得的数据将按照储存页面的格式来暂存于缓冲空间27,接着,储存于缓冲空间27的部分数据或是全部数据将按照扇区的格式被传送至档案配置管理***,即,档案配置管理***进一步会按照扇区的格式来传送所请求的数据至所述应用程序,而存取储存于闪存模块14的数据的详细说明(包含上述的数据写入、读取与修正运作)将于稍后描述。
经由上述说明,本发明存储器空间管理方法的一实施例描述如下:存储器空间管理方法用来依据一档案***(例如档案配置管理***)的存取单元大小(例如扇区大小)来处理多个原始机器运作指令的一集合来存取一储存装置(例如一闪存),而该储存装置依据一储存单元大小(例如储存页面大小)来储存数据,如上述例子所述,扇区大小为512字节而储存页面大小则为2K字节,此外,存储器空间管理方法可以利用软件、韧体或者是数字逻辑电路的方式而实作为一存储器驱动程序,其中该存储器驱动程序、所述档案***与所述储存装置安装于一电子装置(例如行动电话或其它行动通讯产品)上。
然而,所述存储器驱动程序与所述存储驱动程序也可以安装于一第一电子装置上,而所述储存装置则安装于一第二电子装置上,举例来说,该第一电子装置为一个人计算机而该第二电子装置为具有一闪存的行动电话,连接该第一电子装置与该第二电子装置之间的是一通讯连结(communication link)与相关的软硬件(例如通用序列总线(Universal Serial Bus,USB)与通用序列总线的信号线);当所述第二电子装置被所述第一电子装置视为一外部存储器装置时,所述存储器驱动程序将被安装于该第一电子装置上,因此,该存储器驱动程序会接收所述原始机器运作指令并依据实际的储存装置(即,使用储存单元大小与相关储存单元地址的储存装置)来将其转译成对应的指令,此外,在此种情形下,通讯协议也将结合至该驱动程序中;另外,存储器驱动程序也可以安装至所述第二电子装置上,而在此种情形之下,其对应的程序代码则必须依据该第二电子装置上的组态设定来加以修正。
综合上述,所述存储器空间管理方法可以概述如下:接收用以表示一存取单元地址的原始机器运作指令、将该存取单元地址转译成至少一对应储存单元地址、以及利用转译后储存单元地址来存取所述储存单元以响应该接收后的原始机器运作指令。所述原始机器运作指令可以是数据读取、写入或者是其它数据存取指令(例如是数据清除指令),因此,当该原始机器运作指令为数据读取指令并且所述存取单元的大小小于所述储存单元的大小时,一储存单元将被撷取并暂存,但只有一部分的储存单元将被传送至请求数据的软件程序;而当所述原始机器运作指令系为数据写入指令并且所述存取单元的大小小于所述储存单元的大小时,一相关的储存单元(其包含所指定的存取单元地址的存取单元与所指定的存取单元地址邻近的存取单元)将被储存至一缓冲器中,接着,在所述缓冲器中的要被更新的存取单元将被写入一指定值,然后,该缓冲器中的数据便被写回至所述储存装置。
请参照图2,图2是本发明数据写入运作的一实施例的示意图。在此假设微处理器22需要将储存于两扇区S1、S2中的第一请求数据DATA_01储存至闪存模块14,如上所述,在闪存模块14中最小的储存单元的大小为一四倍于扇区大小的储存页面,因此,储存于扇区S1、S2中的第一请求数据DATA_01无法直接储存至闪存模块14;在数据写入运作时,如图2所示,首先储存于两扇区S1、S2中的第一请求数据DATA_01被分别写入至缓冲空间27的缓冲单元271、272,而缓冲空间27中剩下的空间(包括缓冲单元270、273)则接着填满虚拟数据(dummy data),其中该虚拟数据包含本实施例中所使用的逻辑值,而每一逻辑值对应于闪存模块14中的一抹除状态(erasestate),之后,闪存控制器28会将储存于缓冲空间27的数据以储存页面的格式写入至闪存模块14的储存页面51,如图2所示,储存页面51包含有四个子储存页面510、511、512、513并分别对应于缓冲单元270、271、272、273,因此,将可以达到由利用缓冲储存模块26的缓冲空间27来将储存于扇区S1、S2的第一请求数据DATA_01写入至闪存模块14,此外,所述虚拟数据利用以下两种机制被储存于缓冲单元中:第一种机制是在第一请求数据DATA_01储存于缓冲空间27(即本实施例中的缓冲单元271、272)之前,利用该虚拟数据先将缓冲空间27(即所有的缓冲单元271、272、273、274)填满,而另一种机制则在第一请求数据DATA_01储存于缓冲单元271、272的后,才利用该虚拟数据将缓冲单元270、273补满,以上任一种机制都可适用于本实施例,然而,此非本发明的限制。
请参照图3,图3是本发明数据读取运作的一实施例的示意图。在此假设微处理器22需要读取储存于闪存模块14的子储存页面522中的第二请求数据DATA_02,在数据读取运作中,所述闪存驱动程序所驱动的闪存控制器28首先会复制储存于储存页面52中所有数据至缓冲空间27中,其中所述数据包含有第二请求数据DATA_02,此时,储存于缓冲单元270、271、272、273中的数据分别相同于储存于子储存页面520、521、522、523中的数据,之后,闪存驱动程序将驱动闪存控制器28来传送储存于缓冲单元272中的第二请求数据DATA_02至所述档案配置管理***,因而完成数据读取运作。
请参照图4,图4是本发明数据读取运作的另一实施例的示意图。在此假设微处理器22需要读取储存于闪存模块14中子储存页面522的第二请求数据DATA_02,在数据读取运作中,闪存驱动程序所驱动的闪存控制器28不需使用缓冲空间27而直接读取并传送储存于子储存页面522的第二请求数据DATA_02至所述档案配置管理***,因此,同样也可以达成读取第二请求数据DATA_02的目的。
请参照图5,图5是本发明数据修正运作的一实施例的示意图。在此假设微处理器22需要修正储存于闪存模块14中的储存页面53的子储存页面533的特定数据,如上所述,闪存模块14中的最小储存单元为一储存页面,因此,储存于子储存页面533中的特定数据无法直接被修正并储存回闪存模块14中,而在数据修正运作中,所述闪存驱动程序所驱动的闪存控制器28首先会复制储存于储存页面53中的所有数据至缓冲空间27,此时,储存于缓冲单元270、271、272、273中的数据分别相同于储存于子储存页面530、531、532、533中的数据,接着,闪存控制器28会修正储存于缓冲单元273中的特定数据,之后,闪存控制器28会将储存于缓冲空间27的数据写回至闪存模块14的另一储存页面54,其中写入至子储存页面543的信息不同于储存于子储存页面53中的信息,换言之,储存于缓冲单元270、271、272、273中的数据分别相同于储存于子储存页面540、541、542、543中的数据,因此,修正后的特定数据则顺利地储存于子储存页面543中。
总结上述所说,在本发明中,档案配置管理***的存取单元的大小与闪存模块的储存单元的大小并不需要相同,此外,本发明中电子装置的制造成本并不会大为增加,而对于大量数据储存而言,也可以提供较快速的读写能力。

Claims (25)

1.一种存储器空间管理方法,用来依据一档案***的一存取单元的大小来处理多个原始机器运作指令(primitive operation)的一集合来存取依据一储存单元的大小来储存数据的一储存装置,该存储器空间管理方法包含有:
接收指示至少一存取单元地址的一原始机器运作指令;
将所述存取单元地址转译成至少一相对应的储存单元地址,其中所述储存单元的大小不同于所述存取单元的大小;以及
使用该储存单元地址来存取所述储存装置以响应所述原始机器运作指令。
2.如权利要求1所述的方法,其中当所述原始机器运作指令为一读取运作并且所述存取单元的大小小于所述储存单元的大小时,该方法另包含有:
缓冲所述储存单元地址所指定的一撷取后储存单元,并且只提供该撷取后储存单元的一部分以响应所述原始机器运作指令。
3.如权利要求1所述的方法,其中当所述原始机器运作指令为一写入运作并且所述存取单元的大小小于所述储存单元的大小时,该方法另包含有:
读取对应于所述存取单元地址的一储存单元至一缓冲器,其中该储存单元包含有该存取单元地址所指定的用以写入的一存取单元与一或多个邻近存取单元,而所指定的该存取单元与该邻近存取单元的总和大小等于该储存单元的大小;
以一指定值来更新所指定的用以写入的所述存取单元;以及
写入所述缓冲器的数据至所述储存装置。
4.如权利要求1所述的方法,其中一存储驱动程序(storage driver)、所述档案***与所述储存装置安装于一电子装置上,所述电子装置的软件应用程序使用所述多个原始机器运作指令的所述集合来存取所述储存装置,而该多个原始机器运作指令则用于所述存储驱动程序以执行接收该多个原始机器运作指令、转译该多个原始机器运作指令与存取该储存装置的步骤。
5.如权利要求1所述的方法,其中一存储驱动程序与所述档案***安装于一第一电子装置上,而所述储存装置则安装于一第二电子装置上;该第一电子装置的软件应用程序使用所述多个原始机器运作指令的所述集合来存取所述储存装置,而该多个原始机器运作指令则用于所述存储驱动程序以执行接收该多个原始机器运作指令、转译该多个原始机器运作指令与存取所述储存装置的步骤。
6.如权利要求1所述的方法,其中所述储存装置为一闪存。
7.如权利要求6所述的方法,其中所述储存单元的大小为所述闪存的一储存页面的大小,而该存取单元的大小则为所述档案***的一扇区的大小。
8.一种用于一储存装置的存储器空间管理方法,所述储存装置包含有多个储存单元,该存储器空间管理方法包含有:
提供包含有至少一缓冲空间的一缓冲储存装置,其中该缓冲空间的大小相同于每一储存单元的大小;
接收经由至少一存取单元所传送的一输入数据,并储存该输入数据至所述缓冲储存装置的所述缓冲空间,其中该存取单元的大小不同于每一储存单元的大小;以及
当所述缓冲空间已满时,由传送储存于所述缓冲空间的数据至所述储存装置中所述多个储存单元的一第一储存单元以写入所述输入数据至该储存装置。
9.如权利要求8所述的方法,其中所述储存装置为一闪存。
10.如权利要求9所述的方法,其另包含有:
在所述输入数据储存于所述缓冲空间之后,除了该输入数据已占用的空间外,以一虚拟数据(dummy data)填满该缓冲空间。
11.如权利要求10所述的方法,其中所述虚拟数据包含有多个逻辑值,而每一逻辑值对应于所述闪存的一抹除状态(erase state)。
12.如权利要求9所述的方法,其另包含有:
在所述输入数据储存于所述缓冲空间之前,先以一虚拟数据填满该缓冲空间。
13.如权利要求12所述的方法,其中所述虚拟数据包含有多个逻辑值,而每一逻辑值对应于所述闪存的一抹除状态。
14.如权利要求8所述的方法,其中所述储存单元的大小大于所述存取单元的大小。
15.如权利要求8所述的方法,其另包含有:
当接收用以修正所述输入数据的一请求时,复制储存于所述第一储存单元的该输入数据至所述缓冲空间、修正储存于所述缓冲空间的数据以及传送储存于该缓冲空间的该修正后输入数据至所述储存装置中所述多个储存单元的一第二储存单元。
16.如权利要求8所述的方法,其另包含有:
当接收用以读取所述输入数据的一请求时,复制储存于所述第一储存单元中该数据至所述缓冲空间以及读取储存于该缓冲空间中的该输入数据。
17.一种存储器空间管理***,其包含有:
一数据来源,用来提供一输入数据至至少一存取单元;
一储存装置,其包含有多个储存单元,其中该存取单元的大小不同于每一储存单元的大小;
一缓冲储存装置,其包含有至少一缓冲空间,其中该缓冲空间的大小相同于每一储存单元的大小;以及
一储存装置控制器,耦接至所述数据来源、所述储存装置与所述缓冲储存装置,用来接收经由所述存取单元所传送的所述输入数据,储存该输入数据至该缓冲储存装置的所述缓冲空间,以及当该缓冲空间已满时,由传送储存于该缓冲空间的数据至所述储存装置中所述多个储存单元的一第一储存单元来写入所述输入数据至所述储存装置。
18.如权利要求17所述的存储器空间管理***,其中所述储存装置为一闪存。
19.如权利要求18所述的存储器间管理***,其中在所述输入数据储存于所述缓冲空间之后,除了该输入数据所占用的空间外,所述储存装置控制器另以一虚拟数据填满该缓冲空间。
20.如权利要求19所述的存储器空间管理***,其中所述虚拟数据包含有多个逻辑值,而每一逻辑值对应于所述闪存的一抹除状态。
21.如权利要求18所述的存储器空间管理***,其中在所述输入数据储存于所述缓冲空间之前,所述储存装置控制器先以一虚拟数据填满该缓冲空间。
22.如权利要求21所述的存储器空间管理***,其中所述虚拟数据包含有多个逻辑值,而每一逻辑值对应于所述闪存的一抹除状态。
23.如权利要求17所述的存储器空间管理***,其中所述储存单元的大小大于所述存取单元的大小。
24.如权利要求17所述的存储器空间管理***,其中当所述储存装置控制器接收用以修正所述输入数据的一请求时,该储存装置控制器会复制储存于所述第一储存单元的数据至所述缓冲空间、修正储存于所述缓冲空间的数据以及将储存于该缓冲空间中修正后的数据传送至该储存装置中所述多个储存单元的一第二储存单元。
25.如权利要求17所述的存储器空间管理***,其中当所述储存装置控制器接收用以读取所述输入数据的一请求时,该储存装置控制器会复制储存于所述第一储存单元中的数据至所述缓冲空间以及读取该缓冲空间中的所述输入数据。
CNB200610115798XA 2005-08-17 2006-08-17 存储器空间管理方法及其相关*** Expired - Fee Related CN100520735C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US70879805P 2005-08-17 2005-08-17
US60/708,798 2005-08-17

Publications (2)

Publication Number Publication Date
CN1916875A true CN1916875A (zh) 2007-02-21
CN100520735C CN100520735C (zh) 2009-07-29

Family

ID=37715715

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200610115798XA Expired - Fee Related CN100520735C (zh) 2005-08-17 2006-08-17 存储器空间管理方法及其相关***

Country Status (4)

Country Link
US (1) US20070041050A1 (zh)
CN (1) CN100520735C (zh)
DE (1) DE102006036837A1 (zh)
TW (1) TW200708950A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101740126A (zh) * 2008-11-13 2010-06-16 旺宏电子股份有限公司 存储器及使用于一存储器编程命令的方法
CN102999437A (zh) * 2011-09-19 2013-03-27 群联电子股份有限公司 数据搬移方法、存储器控制器与存储器储存装置
CN101782873B (zh) * 2009-01-15 2014-07-09 旺玖科技股份有限公司 具有自带保全功能的外接储存装置
WO2016106757A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 一种存储数据的管理方法、存储管理器及存储***

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
JP5709563B2 (ja) * 2011-02-07 2015-04-30 キヤノン株式会社 バッファキャッシュ管理方法、バッファキャッシュ管理装置及びプログラム
JP5738618B2 (ja) * 2011-02-08 2015-06-24 オリンパス株式会社 データ処理装置
TWI448892B (zh) * 2011-09-06 2014-08-11 Phison Electronics Corp 資料搬移方法、記憶體控制器與記憶體儲存裝置
US9542321B2 (en) * 2014-04-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Slice-based random access buffer for data interleaving
US11079958B2 (en) * 2019-04-12 2021-08-03 Intel Corporation Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator
US20220188029A1 (en) * 2020-12-15 2022-06-16 Micron Technology, Inc. Techniques for partial writes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319645A (ja) * 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US7136986B2 (en) * 2002-11-29 2006-11-14 Ramos Technology Co., Ltd. Apparatus and method for controlling flash memories

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101740126A (zh) * 2008-11-13 2010-06-16 旺宏电子股份有限公司 存储器及使用于一存储器编程命令的方法
CN101782873B (zh) * 2009-01-15 2014-07-09 旺玖科技股份有限公司 具有自带保全功能的外接储存装置
CN102999437A (zh) * 2011-09-19 2013-03-27 群联电子股份有限公司 数据搬移方法、存储器控制器与存储器储存装置
CN102999437B (zh) * 2011-09-19 2015-12-16 群联电子股份有限公司 数据搬移方法、存储器控制器与存储器储存装置
WO2016106757A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 一种存储数据的管理方法、存储管理器及存储***

Also Published As

Publication number Publication date
CN100520735C (zh) 2009-07-29
US20070041050A1 (en) 2007-02-22
DE102006036837A1 (de) 2007-03-01
TW200708950A (en) 2007-03-01

Similar Documents

Publication Publication Date Title
CN100520735C (zh) 存储器空间管理方法及其相关***
US20220129374A1 (en) Memory system, data storage device, user device and data management method thereof
US7039788B1 (en) Method and apparatus for splitting a logical block
EP2519880B1 (en) Micro-update architecture for address tables
EP1576478B1 (en) Method and apparatus for grouping pages within a block
US9058254B2 (en) Memory device
US8205063B2 (en) Dynamic mapping of logical ranges to write blocks
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
US7814262B2 (en) Memory system storing transformed units of data in fixed sized storage blocks
US7669003B2 (en) Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7450420B2 (en) Reclaiming data storage capacity in flash memories
KR101969883B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20070086260A1 (en) Method of storing transformed units of data in a memory system having fixed sized storage blocks
CN1658171A (zh) 通过控制频繁受访问扇区对非易失性存储器的更快写操作
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
KR20100091379A (ko) 반도체 디스크 장치 및 그것의 프로그램 페일 처리 방법
EP1938195B1 (en) Storage of transformed units of data in a memory system having fixed sized storage blocks
WO2007019175A2 (en) Indexing of file data in reprogrammable non-volatile memories that directly store data files
US20230315646A1 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
KR102509487B1 (ko) 메모리 시스템 및 그것의 동작 방법
US11669270B1 (en) Multi-channel memory storage device, memory control circuit unit and data reading method
US20240232071A1 (en) Information processing apparatus, information processing system, and information processing method
CN115495009A (zh) 闪存的数据读取方法及闪存控制器与电子装置
CN116149540A (zh) 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置
KR20190022603A (ko) 데이터 저장 장치 및 그것의 동작 방법

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: 20090729

Termination date: 20160817

CF01 Termination of patent right due to non-payment of annual fee