TWI376599B - Method and nonvolatile memory system of managing file allocation table information - Google Patents

Method and nonvolatile memory system of managing file allocation table information Download PDF

Info

Publication number
TWI376599B
TWI376599B TW96134944A TW96134944A TWI376599B TW I376599 B TWI376599 B TW I376599B TW 96134944 A TW96134944 A TW 96134944A TW 96134944 A TW96134944 A TW 96134944A TW I376599 B TWI376599 B TW I376599B
Authority
TW
Taiwan
Prior art keywords
host
volatile memory
allocation
controller
data
Prior art date
Application number
TW96134944A
Other languages
Chinese (zh)
Other versions
TW200832132A (en
Inventor
Andrew Tomlin
Sergey Anatolievich Gorobets
Original Assignee
Sandisk Corp
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
Priority claimed from US11/537,243 external-priority patent/US7752412B2/en
Priority claimed from US11/537,216 external-priority patent/US7681008B2/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200832132A publication Critical patent/TW200832132A/en
Application granted granted Critical
Publication of TWI376599B publication Critical patent/TWI376599B/en

Links

Classifications

    • 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/0643Management of files
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

1376599 九、發明說明: 【發明所屬之技術領域】 本發明係關於非揮發性記憶體系統,而且關於操作非揮 發性記憶體系統之方法。 【先前技術】 模組化、可攜式、非揮發性記憶體裝置係可取得,其可 輕易連接至及拆接自例如一數位相機、數位聲頻記錄器及 個人電腦之主機裝置。例如快閃卡之此等裝置中使用 統記憶體係可重寫,其允許抹除及重寫一記憶體位址= 作為系統或使用者之用途。一次可程式化(〇τρ)或少次可 程式化(FTP)之較低成本記憶體技術之建立允許配合=機 裝置之新使用模組,其類似一類比相機中之軟片,五人。 用以簡單拍攝及列印相片,同時省去當一" 貝月之該低 成本卡。理想中,吾人應能夠在一標準快閃相機中使用此 低成本卡,但該等技術未必相容,因為可攜式裝 用D〇SFAT12/16標案系統,其要求系統結構可抹除 ^ ⑽或猜記憶體技術之自訂化槽案系統更新該中之 勒體可解決此問題,但此可能將總可用市場限制於. 體升級之新相機,或者可能要求使用者以該領^體 升級其現存相機。 秋遐 【發明内容】 在一用於操作一非揮發性記憶體之 不丁 —主播你辞 記憶體之位址範圍之―端分配叢 铲阁★ σ t 佐制益從該位址 耗圍之另一端分配叢集。即使不可能重寫或抹除該資料, 124767.doc 1376599 藉由一控制器之此類分配仍允許該主機傳送對先前已寫入 資料的一更新。藉由該主機之分配係記錄於一檔案分配表 (FAT)中。藉由該控制器之分配並未記錄於該fat中但取 而代之,記錄於揮發性記憶體中。當一主機請求FAT資訊 時’該控制器根據揮發性記憶體甲之紀錄而修正來自該非 揮發性記憶體之fat。1376599 IX. Description of the Invention: TECHNICAL FIELD OF THE INVENTION The present invention relates to non-volatile memory systems, and to methods of operating non-volatile memory systems. [Prior Art] A modular, portable, non-volatile memory device is available that can be easily connected to and disconnected from a host device such as a digital camera, a digital audio recorder, and a personal computer. For example, flash memory cards are rewritable in a memory system that allows erasing and overwriting a memory address = as a system or user. The establishment of a low-cost memory technology that can be programmed (〇τρ) or a few times programmable (FTP) allows for the use of new modules for the device, which is similar to a film in a camera, five people. It is used to simply take and print photos, while eliminating the low cost card of the one. Ideally, we should be able to use this low-cost card in a standard flash camera, but these technologies may not be compatible, because the portable D〇SFAT12/16 standard system requires a system structure that can be erased^ (10) or the custom memory system of the memory technology update can solve this problem, but this may limit the total available market to a new camera, or may require the user to use the body Upgrade its existing camera.秋遐 [Abstract] In the operation of a non-volatile memory, the address of the address range of the host memory is allocated to the shovel shovel ★ σ t Zuo Yi benefit from the address The other end allocates clusters. Even if it is not possible to rewrite or erase the material, 124767.doc 1376599 allows the host to transmit an update to previously written data by such a distribution of a controller. The distribution by the host is recorded in a file allocation table (FAT). The assignment by the controller is not recorded in the fat but instead is recorded in the volatile memory. When a host requests FAT information, the controller corrects the fat from the non-volatile memory based on the record of the volatile memory.

在一種管理一非揮發性記憶體之資料之方法中,其中一 主機將資料儲存於該非揮發性記憶體,該主機將已儲存資 料之分配記錄在亦儲存於該非揮發性記憶體中的一檔案分 配表。备接從來自該主機對儲存於該非揮發性記憶體陣列 中之檔案分配表之一部分的一請求時,從該非揮發性記憶 體陣歹K買取该槽案分配表之部分。隨後,根據一紀錄而修 該擋案刀配表之部分’該紀錄指示該記憶體控制器用以 儲存接收自該主機之咨划, 機之資枓之至少一記憶體位置’並將該檔 案为配表之已修正部分傳送至該主機。In a method of managing data of a non-volatile memory, one of the hosts stores data in the non-volatile memory, and the host records the allocation of the stored data in a file also stored in the non-volatile memory. Allocation Table. A portion of the slot allocation table is purchased from the non-volatile memory array K from a request from the host for a portion of the file allocation table stored in the non-volatile memory array. Subsequently, the portion of the knives matching table is repaired according to a record indicating that the memory controller is configured to store at least one memory location received from the host, and the file is The corrected portion of the matching table is transmitted to the host.

::方法t,在一揮發性記憶體中維護一叢集映 ::映射:禾複數個叢集之每-叢集的-分配/解除分配 口 W接收對於有關該複數個叢集之分配資訊的一主 =’從該叢集映射決定是否該複數個叢集已分:: method t, maintaining a cluster of images in a volatile memory:: mapping: each of the plurality of clusters - the allocating - allocating / de-allocating port receives a master for the allocation information about the plurality of clusters = 'From the cluster map determines whether the plural clusters have been divided

將立傳則從該叢集映射產生分配資訊,並 將具傳回至該主機。 . L 已分配業崔 β產生一 FAT區段,以顯示無 若兮叢隼胁Μ此可不藉由存取該非揮發性記憶體而完成。 右孩蕞集映射指示.六士 人 發性記憶體讀取” i少一已分配叢集,將從該非揮 瓶項取該分配資訊。 124767.doc 1376599 【實施方式】The pass will generate the distribution information from the cluster map and pass the device back to the host. L The assigned industry Cui β generates a FAT section to show that the 无 兮 隼 Μ Μ Μ Μ Μ Μ Μ Μ Μ Μ Μ 。 。 。 。 。 。 。 。 。 。 。 。 。 。 The right child set mapping indication. Six people's memory read "i" one allocated cluster, the allocation information will be taken from the non-volume item. 124767.doc 1376599 [Embodiment]

本文所述之某些具體實施例可用以致能一次或少次可程 式記憶體與現存消費性電子裝置共同運作(例如與快閃(一 可抹除、可重程式化非揮發性記憶體)共同運作者),而不 要求一韌體更新,藉以提供反向相容性同時最小化使用者 衝擊。如此,此等具體實施例係一用以橋接一次或少次可 程式化記憶體與具有快閃卡槽之現存消費性電子裝·置之可 行方式。此等具體實施例亦允許設計未來消費性電子裝 置,使其無需更新韌體以含括自訂化成用於一種一次或少 次可程式化記憶體的一檔案系統。亦可將所述某些具體實 施例應用於多次可程式化之非揮發性記憶體。並不要求以 一次可程式化的一記憶體利用所述技術。Certain embodiments described herein may be used to enable one or fewer programmable memory devices to function in conjunction with existing consumer electronic devices (eg, in conjunction with flash (an erasable, reprogrammable non-volatile memory) The operator does not require a firmware update to provide backward compatibility while minimizing user impact. Thus, these embodiments are a convenient way to bridge one or less programmable memory and existing consumer electronics devices with flash card slots. These specific embodiments also allow for the design of future consumer electronic devices that do not require updating firmware to include a file system for customizing one or less programmable memory. The specific embodiments described may also be applied to multiple programmable non-volatile memories. It is not required to utilize the technique in a memory that can be programmed once.

現在參考圖式,圖1係一連接至一記憶體裝置之主機 裝置5的方塊圖。該主機裝置5及該記憶體裝置1〇兩者包 括電子連接器,其彼此配對,以便透過—介面15將該主機 裝置5電子耦合於該記憶體裝置1〇。如本文所使用術語 "輕合於,,意指透過一或多個介入組件而直_合(於)或間 接耦合(於)。該主機裝置5可採用一消費性電子裝置之形 式,例如料限於-數位靜態或移動相機、—個人數位助 理、-蜂巢式電話、-數位聲頻播放器,或者—個人電腦 (例如該等具有USB讀取II /寫人器或pcMciA卡配接器的個 二電腦h在此具體實施例中1主機裝置5含有例如該 OS-FAT槽案系統的—多寫標案系統7。同時說明非,,反向 相容控制器"之其他控制器’例如與可抹除非揮發性記憶 !24767.άο〇 1376599 體共同使用之控制器。 該記憶體裝置ίο可採用一模組化、緊密、手持式單元之 形式,例如一記憶卡或條。該記憶體裝置10包括一控制器 20及一唯寫一次記憶體陣列30 ^可組態主機5與記憶體裳 置10間之介面15 ’以用於多媒體、安全數位、記憶棒、緊 密快閃記憶體、智慧媒體、XD、USB、HS-MMC,或許多 可用之可攜式儲存媒體的任何可攜式儲存媒體。如以下之 詳細說明,控制器20允許該記憶體裝置1〇與使用一多寫標 案系統的一主機裝置反向相容。如此,在本文中,有時該 控制器20將稱為一”反向相容控制器"或”bcc"。 該控制器20的一實施方式係使用一與標準組合邏輯相組 合之有限狀態機的一 ASIC。然而,可以各式各樣其他形式 實施該控制器20,例如但不限於具有韌體的一微控制器或 一微處理器。此外,雖然此具體實施例中之該控制器2〇與 該記憶體陣列30分離,但可將一控制器及一記憶體陣列整 合於一單一晶粒中以節省成本。在此具體實施例中,該控 制器20之設計非常類似用於可重寫記憶體技術的—控制 器。差異之範例為:此控制器20不需要任何耗損平準或關 聯於抹除非揮發性記憶體之其他邏輯。雖然此處表示之設 计可包含此等額外步驟及功能,但其將可能不是最佳成 本0 該唯寫一次記憶體陣列30包括複數個場可程式化唯寫一 次記憶體單元。場可程式化唯寫一次記憶體單元係製造成 在一初始、未程式化數位狀態並可於製造後的一時間切換 124767.doc -9 1376599Referring now to the drawings, Figure 1 is a block diagram of a host device 5 connected to a memory device. Both the host device 5 and the memory device 1 include electronic connectors that are paired with one another to electronically couple the host device 5 to the memory device 1 through the interface 15. As used herein, the term "lightly," means direct-coupled or indirectly coupled through one or more intervening components. The host device 5 can take the form of a consumer electronic device, such as a digital- or static camera, a personal digital assistant, a cellular phone, a digital audio player, or a personal computer (eg, such a USB device) Two computers in which the II/writer or pcMciA card adapter is read. In this embodiment, the host device 5 contains, for example, the multi-write standard system 7 of the OS-FAT slot system. , the other controller of the reverse compatible controller', for example, can be used together with a controller that can be used together with the volatile memory! 24767.άο〇1376599. The memory device ίο can be used in a modular, compact, handheld The form of the unit, such as a memory card or strip. The memory device 10 includes a controller 20 and a write-only memory array 30. The configurable host 5 and the memory device 10 interface 15' Any portable storage medium for multimedia, secure digital, memory stick, compact flash memory, smart media, XD, USB, HS-MMC, or many portable storage media available. Controls are detailed below. Device 20 allows the memory device 1 to be backward compatible with a host device using a multi-write standard system. Thus, in this context, sometimes the controller 20 will be referred to as a "reverse compatible controller". Or "bcc". An embodiment of the controller 20 utilizes an ASIC of a finite state machine combined with standard combinational logic. However, the controller 20 can be implemented in a variety of other forms, such as but not limited to having A microcontroller or a microprocessor of the firmware. Further, although the controller 2 is separated from the memory array 30 in this embodiment, a controller and a memory array can be integrated into a single The cost is saved in the die. In this embodiment, the controller 20 is designed to be very similar to the controller for rewritable memory technology. An example of the difference is that the controller 20 does not require any wear leveling or Associated with other logic that erases volatile memory. Although the design shown herein may include such additional steps and functions, it may not be optimal cost. The write-only memory array 30 includes a plurality of Write-once-only programmable memory cell. A field-programmable write-only memory cell system manufactured in an initial, non-programmable digital state can be manufactured at a time after the switching 124767.doc -9 1376599

至一替代、程式化數位狀態之記憶體單元。例如,可將該 原始、未程式化數位狀態識別為該邏輯丨(或邏輯0)狀態, 而且可將該程式化數位狀態識別為該邏輯〇(或邏輯〇狀 態。因為該等記憶體單元係一唯寫一次類型,所以一旦切 換至一程式化數位狀態(例如:該邏輯0狀態),則無法復原 一儲存位置的一原始、未程式化數位狀態(例如,該邏輯1 狀態)。取代一種一次可程式化(亦即,唯寫一次)記憶體陣 列,該記憶體陣列30可採用一少次可程式化(FTp)記憶體 陣列之形式’其係可唯寫一次以上但不如一多寫記憶體陣 列多次的一記憶體陣列。同時,該記憶體裝置1〇可含有額 外記憶體陣列(唯寫一次、少次可程式化,或多寫)。To a replacement, stylized digital memory unit. For example, the original, unprogrammed digit state can be identified as the logical 丨 (or logical 0) state, and the stylized digit state can be identified as the logical 〇 (or logical 〇 state) because the memory cells are A write-only type, once switched to a stylized digit state (eg, the logic 0 state), an original, unprogrammed digit state of a storage location (eg, the logic 1 state) cannot be restored. A programmable (ie, write-only) memory array, the memory array 30 can be in the form of a small number of programmable (FTp) memory arrays, which can be written more than once but not as much as one. The memory array has a memory array multiple times. At the same time, the memory device 1 can contain an additional memory array (single write, less programmable, or multiple writes).

該唯寫一次記憶體陣列30可採用任何適合形式,例如一 固態記憶體裝置(亦即’回應電子讀取及寫入信號的一記 憶體裝置)、一磁性儲存裝置(例如一硬碟機),或者一光學 儲存裝置(例如一 CD或DVD)。當具有一固態記憶體單元之 形式時,可以一二維或三維方式組織該記憶體陣列3〇中之 δ己憶體單元。在一具體實施例中,該記憶體陣列3 〇係一三 維陣列,例如說明於Johnson等人之美國專利第6 034 882 號及Zhang之美國專利第5,835,396號的一陣列。在某些其 他具體實施例中,使用例如可抹除快閃記憶體之可抹除非 揮發性記憶體。 為了說明此等具體實施例,該DOS FAT檔案系統(例如 Windows作業系統中所使用)將用以當作一多寫檔案系統的 一範例。應注意,此等具體實施例可與其他類型之多寫檔 124767.doc -10- 1376599 定位置。一普遍方法係使用一實體至邏輯位址表,其係在 啟動時讀取或計算,而且然後儲存於該控制器2〇之揮發性 記憶體。在OPT記憶體中,由該主機分配已更新資料給先 前已分配給舊資料之叢集。因此,佔用相同邏輯位址範 圍,但在該實體記憶體中必須佔用額外空間。該FAT中指 不成可用之邏輯位址範圍與該記憶體中實際可用之實體位 址範圍間之此一差異將造成問題。例如,該主機將嘗試寫 入一全滿記憶體。The write-once memory array 30 can take any suitable form, such as a solid state memory device (ie, a memory device that responds to electronic read and write signals), a magnetic storage device (eg, a hard disk drive). Or an optical storage device (such as a CD or DVD). When having the form of a solid state memory cell, the δ-resonant cell in the memory array 3 can be organized in a two- or three-dimensional manner. In one embodiment, the memory array 3 is a three-dimensional array, such as an array of U.S. Patent No. 6,034,882 to Johnson et al. In some other embodiments, an erasable volatile memory, such as an erasable flash memory, is used. To illustrate these specific embodiments, the DOS FAT file system (e.g., used in a Windows operating system) will be used as an example of a multi-write file system. It should be noted that these specific embodiments can be positioned with other types of multiple write files 124767.doc -10- 1376599. A common approach is to use an entity-to-logical address table that is read or calculated at startup and then stored in the controller's volatile memory. In the OPT memory, the host allocates updated data to the cluster that was previously allocated to the old data. Therefore, the same logical address range is occupied, but extra space must be occupied in the physical memory. This difference in the FAT quotation between the range of logical addresses that are not available and the range of physical addresses that are actually available in the memory will cause problems. For example, the host will attempt to write to a full memory.

在一實體定址記憶體中,來自該主機之資料係根據該主 機所提供位址加以儲存。因此,該主機提供之位址視為一 實體位址,而非僅一邏輯位址,而且不需要任何實體至邏 輯位址轉譯表H只要f料未儲存在該主機提供之位 址,此-系統中可能存在某些例外。一般而言需要某種方 案以追蹤此類資料。一方案係使用主機無法看見的一$憶 體頁之,,旁帶區域” (Sideband area)(或,,附加項區域: (overhead area))。此一方案的一範例給定於美國專利申古主 案第2_/_792〇號。在—具體實施例中,㈣記憶體陣 列係以528位元組頁為單位予以組織中,每頁儲存一區 段,但該主機以一512位元組區段傳送資料,留下Η位二 組之額外空間。此等額外16位元組稱為旁帶,而且可由該 控制器用以锗存包含(但不限於)Ecc資料、資料與位址驗 證旗標及重映射指標之額外資訊。此方牵 /' 茶肀右已重映射 該頁,則該控制器20使用此旁帶的部分儲存一實體位址。 若第-次寫入該頁’將不需要任何重映射指標因為該實 124767.doc •12· 1376599 體及邏輯位址將相同。當該主機5嘗試修正該資料時,該 控制器會將新資料寫入至一新位置,而且將此位置之實體 位址儲存於該舊位置之旁帶中。 一般而言,一主機不知道一記憶體系統是否係邏輯定址 或實體定址,而且此處所述具體實施例可應用於實體定址 記憶體或邏輯定址記憶體。本敘述指的是邏輯定址記憶 體,但應瞭解,一般而言,可運用—特定預定邏輯至實體In an entity-addressed memory, data from the host is stored according to the address provided by the host. Therefore, the address provided by the host is regarded as a physical address, not just a logical address, and does not require any physical-to-logical address translation table H as long as the material is not stored in the address provided by the host. There may be some exceptions in the system. In general, some kind of program is needed to track such information. One solution is to use a "Sideband area" (or, an area of the overhead area) that is invisible to the host. An example of this solution is given in the US patent application. In the specific embodiment, (4) the memory array is organized in units of 528 bytes, each section stores a section, but the host is a 512-bit tuple. The segment transmits the data, leaving extra space for the two groups. These additional 16-bytes are called sidebands and can be used by the controller to store, but not limited to, Ecc data, data and address verification flags. Additional information marked with the remapping indicator. If the party/reconciliation has remapped the page, the controller 20 uses the sideband to store a physical address. If the page is written to the first time No remapping metrics are required because the real and logical addresses will be the same. When the host 5 attempts to correct the data, the controller will write the new data to a new location and will The physical address of this location is stored in the sideband of the old location. In this case, a host does not know whether a memory system is logically addressed or physically addressed, and the specific embodiments described herein can be applied to physical addressed memory or logically addressed memory. This description refers to logically addressed memory. But it should be understood that, in general, it can be applied - specific predetermined logic to the entity

映射,將一實體定址記憶體作為一邏輯定址記憶體予以處 理。在邏輯定址或實體;t址系統中,主機更新或解除 分配-OTP記憶體中之資料,則該主機可(透過FAT)看見較 該實體記憶體中實際可用更多之記憶體的可用空間。 用以解決解釋控制器使用#體記憶體之問㈣一簡單方 式係於銷售該記憶體裝置10之時間前保留記憶體空間供控 制器使用。此類空間無法供該主機使用。該控制器20將使 用此靜態記憶體空間數量,直到不再留下任何保留空間為Mapping, processing a physical addressed memory as a logically addressed memory. In a logical addressing or entity; t-site system, the host updates or de-allocates the data in the OTP memory, and the host can (through FAT) see more free space than is actually available in the physical memory. In order to solve the problem of using the memory of the interpretation controller (4), a simple method is to reserve the memory space for use by the controller before the time of selling the memory device 10. This type of space is not available to this host. The controller 20 will use this amount of static memory space until no more reserved space is left.

止。此時,該控制器20可發信-卡錯誤,允許非一重映射 之任何寫入,或者許多其他操作。吾人可看見稱為靜態分 配之此方法將為所期待,因為其限制—使用者可執行之操 作的數目及大小。 ' 在圖3所示的一替代動態分配方案中該主機及控制器 兩者從相同邏輯位址空間3〇1分配叢集。在一範例中,如 圖3中所示,一主機從該可用位址空間3〇ι之頂部分配叢 集’而該控制器從該可用位址空間之底部分配叢集。因 此,該主機分配空間303用於新資料,而該控制器分配* 124767.doc 13· 1376599 間305用於已更新資料。以此方式,在主機分配空間與控 制器分配空間其間之可用空間之劃分無預定限制。然而, 必須以某種方式向該主機報告該控制器之空間使用。 在一方案令,該控制器所使用之空間係透過傳送至該主 機之FAT資訊而傳達至該主機。以此方式,當該記憶體中 之可用實體空間縮減時’如該FAT中所示之主機可用之邏 輯空間亦縮減。stop. At this point, the controller 20 can send a card-card error, allow for any writes that are not one-to-one mapping, or many other operations. We can see that this method, called static allocation, would be desirable because of its limitations—the number and size of operations that the user can perform. In an alternative dynamic allocation scheme shown in Figure 3, both the host and the controller allocate clusters from the same logical address space 3〇1. In one example, as shown in Figure 3, a host allocates clusters 'from the top of the available address space 3' and the controller allocates clusters from the bottom of the available address space. Therefore, the host allocation space 303 is used for new data, and the controller allocates *124767.doc 13· 1376599 between 305 for updated material. In this way, there is no predetermined limit on the division of the available space between the host allocation space and the controller allocation space. However, the space usage of the controller must be reported to the host in some way. In one arrangement, the space used by the controller is communicated to the host via FAT information transmitted to the host. In this way, when the available physical space in the memory is reduced, the logical space available to the host as shown in the FAT is also reduced.

在圖4A之範例中,該控制器2〇藉由寫入儲存於該非揮發 性s己憶體中之FAT表40 7而通知該主機5空間已用於重映In the example of FIG. 4A, the controller 2 notifies the host 5 that the space has been replayed by writing the FAT table 40 7 stored in the non-volatile suffix.

射。使用一例如此系統之記憶體系統範例提供於美國專利 申請公開案第2006/0047920號。當需要額外記憶體時,正 如該主機5將分配一叢集給檔案資料,該控制器2〇可分配 一新叢集給其本身使用。亦即,當需要額外空間用於重映 射時,此方案動態更新該FAT表4〇7。此實施方式之利益在 於.不限制該主機5及使用者可執行之重映射/檔案修正之 數目。該控制器20將允許其進行重映射,直到該卡完全滿 為止。在此具體實施例中,當大部分主機從頂部向下分配 記憶體時,該控制器20從底部向上分配記憶體(如圖2中所 示,從邏輯空間之開始)。此分配方案將允許該控制器2〇 及主機5獨立分配記憶體。此亦允許該控制器2〇認可當該 二區段碰撞時,該卡10全滿》在該卡全滿時,該控制器2〇 可選擇設定其永久及暫時寫人㈣暫存器、發信給該主機 5不可能再寫入該卡10。另外,當兮4入、受 Γ *这卡全滿時’一控制器 一般而言’該主機將 可使用某種其他系統防止額外寫人 124767.doc 1376599 不試圖寫入一全滿卡,因為該fat指示該邏輯位址空間全 滿(若該主機快取FAT資料,則該快取FAT將不顯示一全滿 邏輯位址空間)。一無快取系統將知道留下多少記憶體, 而已快取系統將於啟動時讀取該FAT表,以看看該特定 作業階段之前使用多少重映射空間。Shoot. An example of a memory system using such a system is provided in U.S. Patent Application Publication No. 2006/0047920. When additional memory is required, just as the host 5 will allocate a cluster to the archive, the controller 2 can allocate a new cluster for its own use. That is, this scheme dynamically updates the FAT table 4〇7 when additional space is needed for re-mapping. The benefit of this embodiment is that the number of remapping/file corrections that can be performed by the host 5 and the user is not limited. The controller 20 will allow it to be remapped until the card is fully full. In this particular embodiment, when most of the hosts are allocating memory from the top down, the controller 20 allocates memory from the bottom up (as shown in Figure 2, starting from the logical space). This allocation scheme will allow the controller 2 and the host 5 to independently allocate memory. This also allows the controller 2 to recognize that when the two segments collide, the card 10 is full. When the card is full, the controller 2 can choose to set its permanent and temporary write (four) register, send It is impossible for the host 5 to write to the card 10 again. In addition, when the card is full, the card is full * When the card is full, the controller will generally use some other system to prevent additional writers. 124767.doc 1376599 does not attempt to write a full card because The fat indicates that the logical address space is full (if the host caches the FAT data, the cache FAT will not display a full logical address space). A no-cache system will know how much memory is left, and the cached system will read the FAT table at startup to see how much remapping space is used before that particular job phase.

在一邏輯定址記憶體中,使用實體記憶體空間不必遵循 使用邏輯空間所遵循之相同型樣。圖4B至圖4D說明當該 控制器及主機如圖4A中所示而儲存資料及分配邏輯位址空 間時如何將實體記憶體空間用於資料儲存。In a logically addressed memory, the use of physical memory space does not have to follow the same pattern followed by the use of logical space. 4B through 4D illustrate how the physical memory space is used for data storage when the controller and host store data and allocate logical address space as shown in FIG. 4A.

圖4B顯示在一初始狀態之該實體記憶體4〇9,其中該實 體記憶體的一部分411用以儲存控制資料,而且其餘實體 記憶體409未程式化。控制資料可包含該控制器所產生之 資料,其用以管理該記憶體陣列中之資料,例如由該杵制 器用於邏輯實體映射之資料。—般而t,此類控制資料 法由該主機看見。此範例中’該主機所供應之資料(包含 MBR及FAT)視為主機資料。此範例中,㈣資料係於一初 始格式化操作期間所產生。 η…η股心偈遐409中 之主機資料後之實體記憶體。該主機資料被寫入至該控制 資料後之下-可用實體位置413。於寫入該主機資料後, 必須更新該控制資料之至少一部分’以反應該新寫入主機 資料。此已更新控制資料被寫入至該主機資料後之可用的 下-實體位置415。此已更新控制資料導致該先前已储存 控制資料之一部分417作廢。 124767.doc •15- ^376599 圖4D顯示該主機傳送已更新資料以取代先前程式化主機 資料之一部分後之實體記憶體409 »例如,該主機可傳送 具有與先刖已儲存區段相同之邏輯位址之主機資料的若干 區段。該已更新主機資料係儲存於該下一可用實體位置 419中》然後與該已更新主機資料相關之控制資料係儲存 於該下一可用實體位置421中。已更新主機資料使該原始 主機資料的一部分423作廢。已更新控制資料使該第一已 更新控制資料的一部分425作廢。因此,該實體記憶體空 間之部分係由已作廢資料部分417、423、425所佔用,該 等已作廢資料部分包含已作廢主機資料及已作廢控制資 料。該控制器可分配邏輯空間,以解釋實體空間之此損 失,而作廢主機資料及控制資料。 應庄思,靜態及動態重映射並不互斥。吾人可選擇在一 早一產品中實施此二者。例如,即使該卡全滿,而且無法 新增任何額外檔案,一使用者可能希望刪除或修正檔案。 右預分配一設定量之記憶體並且在正常操作下未使用,則 可允許額外資料修正。例如,該卡1〇可具有設定於一旁之 500 KB之靜態重映射,直到由於主機及控制器分配碰撞使 該卡1〇出現全滿才由該控制器20加以使用。此時,該控制 器2〇可允許將該主機之額外資料寫入至該靜態分配區,直 到所欲操作完成為止。稍後,當對於大部分使用而言該卡 1 〇基本上全滿時,可使用智慧濾波器允許例如刪除及換名 之某些使用者操作出現於該靜態區域,而其他操作將導致 一錯誤β 124767.doc -16-Figure 4B shows the physical memory 4〇9 in an initial state in which a portion 411 of the physical memory is used to store control data and the remaining physical memory 409 is unprogrammed. The control data can include data generated by the controller for managing data in the array of memory, such as data used by the controller for logical entity mapping. As usual, such control data is seen by the host. In this example, the data (including MBR and FAT) supplied by the host is regarded as the host data. In this example, (iv) the data is generated during an initial formatting operation. η...n The core memory of the host data in 409. The host data is written below the control data - available entity location 413. After writing the host material, at least a portion of the control data must be updated to reflect the newly written host data. This updated control data is written to the available lower-physical location 415 after the host profile. This updated control data causes a portion 417 of the previously stored control data to be invalidated. 124767.doc •15- ^376599 Figure 4D shows the physical memory 409 after the host transmits the updated data to replace a portion of the previously programmed host data. For example, the host can transmit the same logic as the pre-stored saved segment. Several sections of the host data of the address. The updated host profile is stored in the next available entity location 419 and then the control profile associated with the updated host profile is stored in the next available entity location 421. The host material has been updated to invalidate a portion 423 of the original host material. The control data has been updated to invalidate a portion 425 of the first updated control material. Therefore, part of the physical memory space is occupied by the obsolete data sections 417, 423, 425, and the scrapped data sections contain the obsolete host data and the obsolete control data. The controller can allocate logic space to interpret this loss of physical space and invalidate host data and control data. Should be succinct, static and dynamic remapping are not mutually exclusive. We can choose to implement both in an early morning product. For example, a user may wish to delete or correct an archive even if the card is full and no additional files can be added. Additional data corrections are allowed by pre-allocating a set amount of memory to the right and not being used under normal operation. For example, the card 1 〇 can have a static remapping of 500 KB set aside until the card 1 全 is full due to the host and controller assignment collisions. At this point, the controller 2 can allow additional data for the host to be written to the static allocation area until the desired operation is complete. Later, when the card 1 is substantially full for most uses, a smart filter can be used to allow certain user operations such as deletion and renaming to occur in the static area, while other operations will result in an error. β 124767.doc -16-

圖5顯示圖4的一替代方案。在圖5所示方案t,如以 前,該主機427從該頂部分配叢集,而且該控制器429從該 底部分配叢集 '然而’此情況令,僅將藉由該主機4”之 叢集刀配記錄在儲存於該非揮發性記憶體U3之^Figure 5 shows an alternative to Figure 4. In the scenario t shown in FIG. 5, as before, the host 427 allocates a cluster from the top, and the controller 429 allocates a cluster from the bottom 'however', this will only be recorded by the cluster of the host 4" Stored in the non-volatile memory U3^

中。因此,儲存於非揮發性記憶體433中之fat々η之複本 顯示分配叢集0至2,而且顯示叢集3至9可用於額外資料儲 存。該控制器429之叢集7至9之分配並未記錄在fat 431, 而記錄在儲存於一揮發性記憶體437内的一紀錄435 〇此情 况中,該揮發性記憶體437係一控制器429中的一靜態隨機 存取記憶體(SRAM),然而亦可使用其他揮發性記憶體。 此情況中,1¾、纪錄顯示該主機所分配之叢集及該控制器所in. Therefore, the replica of fatfa stored in the non-volatile memory 433 shows the distribution clusters 0 to 2, and the display clusters 3 to 9 can be used for additional data storage. The distribution of clusters 7 through 9 of the controller 429 is not recorded in the fat 431, but is recorded in a record 435 stored in a volatile memory 437. In this case, the volatile memory 437 is a controller 429. A static random access memory (SRAM), however, other volatile memory can be used. In this case, the record shows the cluster allocated by the host and the controller.

分配之叢集兩者。此範例中之紀錄僅記錄如分配或解除分 配之一叢集之狀態。該紀錄中未儲存任何額外資訊。反 之’該FAT不僅記錄是否分配一叢集,同時提供例如一鏈 中之下一叢集或一檔案結束指示器的額外資訊。對於每一 叢集,該紀錄435可具有一單一位元(用以指示分配/解除分 配),而且可視為一位元映射或一叢集映射。 當該主機427請求FAT資訊時(一般而言藉由傳送對一或 多個FAT區段的一讀取請求),控制器429提供FAT資訊,其 反應儲存於該記憶體433之FAT 431中之FAT資訊及儲存於 揮發性記憶體437之紀錄435中之分配資訊兩者。FAT資訊 之請求部分係讀取自該非揮發性記憶體433,而且傳送至 該控制器429中的一編輯器439。該紀錄435亦讀取自揮發 性記憶體437,而且由該編輯器439用以編輯或修正來自該 124767.doc • 17- 1376599 非揮發性記憶體43 3之FAT資訊。除了已記錄於FAT 431之 藉由該主機42 7之分配,該编輯器439改變該FAT資訊,以 反應該控制器429之分配。藉由該控制器429之分配可藉由 以相容於該主機427之FAT方案的任何適合方式標示已分配 叢集而指示。例如,可將該等叢集標示成壞叢集、保留叢 集或已使用叢集。然後將該已修正FAT資訊441傳送至該主 機427。以此方式’通知該主機427該非揮發性記憶體中之Both clusters are allocated. The records in this example only record the status of a cluster as assigned or deallocated. No additional information is stored in the record. In contrast, the FAT not only records whether or not a cluster is allocated, but also provides additional information such as a cluster below a chain or an end of file indicator. For each cluster, the record 435 can have a single bit (to indicate allocation/de-allocation) and can be viewed as a one-bit map or a cluster map. When the host 427 requests FAT information (generally by transmitting a read request for one or more FAT segments), the controller 429 provides FAT information, which is stored in the FAT 431 of the memory 433. Both the FAT information and the allocation information stored in the record 435 of the volatile memory 437. The request portion of the FAT information is read from the non-volatile memory 433 and transmitted to an editor 439 in the controller 429. The record 435 is also read from the volatile memory 437 and is used by the editor 439 to edit or correct the FAT information from the 124767.doc • 17-1376599 non-volatile memory 43 3 . In addition to being assigned to the FAT 431 by the host 42 7 , the editor 439 changes the FAT information to reflect the assignment of the controller 429. The allocation by the controller 429 can be indicated by indicating the allocated cluster in any suitable manner consistent with the FAT scheme of the host 427. For example, the clusters can be marked as bad clusters, reserved clusters, or used clusters. The corrected FAT information 441 is then transmitted to the host 427. In this way, the host 427 is notified of the non-volatile memory.

不可用空間’其係由該控制器429之重映射操作所 可用。此防止該主機427嘗試分配該控制器429已使用之叢 集。在一具鱧實施例中,顯示將該控制器已分配之叢集分 配給該控制器所建立的一檔案。該檔案可具有例如"未使 用奋里的一檔名,用以指示其並非一主機檔案。此一檔 案係藉由一目錄項加以顯示,該目錄項係於該主機請求儲 存在該5己憶體之目錄資訊時所提供。可以修正fat資訊的 一類似方式將該目錄項新增至健存於記憶體中的一目錄。 此允許-使用者看見控制器操作導致多少容量無法使用。 尤其,此允許一使用者解釋一記憶卡之所述容量與達到一 卡全滿條件前所儲存之使用者資料量間的任何明顯差異。 可形成該編輯而成為該控制器中的一專屬電路,或者 可透過勒體或硬_體之某種組合加以實施。 當最先接通該記憶體系統時,初始將產生一紀錄。一控 制器可掃描該記憶體,以構建該初始紀錄。該主機所分配 之f集可藉由讀取該FAT而簡單地㈣。該控制器所分配 集可藉由掃描該§己憶體本身或者藉由掃描用以指示記 124767.doc •18· 1376599 • ’隐冑之使用之管理結構而獲#。當該控制器實現重映射操 作時,該控制器使用額外叢集,而且將此使用反應在該紀 錄宁。初始時,該控制器可使用該控制器專屬之某種空 間。稍後,當此類專屬空間已全部使用時,該控制器可開 _ 肖使用亦由該主機使用之邏輯空間,因而該控制器亦開始 將此工間之使用記錄在該紀錄中。一般而言,當已作廢資 料數量達到一限制時,該控制器開始使用該主機可用之邏 輯2間。&限制係由可用之備用實體容量之數量所決定。 在中,肖限制係、該記憶體之總實體容量減記憶體之 邏輯合里(如該主機所見到)減控制資料 空間及某種操作空間。某些情況中,於使用該實= . 的一對應部分前,該控制器可在-紀錄中指示邏輯空間之 使用。例如,只要一控制器已排定將要求實體記憶體中某 種空間之某種操作,該控制器可保留此空間,藉由在該紀 錄中指示其無法使用而使其無法由該主機加以使用。藉由 % 該主機之分配亦可在該紀錄中反應,但此並非必要,因為 藉由該控制器之分配記錄在該FATf。相較於將主機及控 制器兩者分配記錄於該FAT中之範例,在此範例中,對該 . 非揮發性記憶體之寫入數目已減少。因為存在較少對該非 . _發性記憶體之㈣寫入,所以需要較少空間儲存該 fat 〇 ▲圖6顯示一主機非序列地分配叢集的一範例。一般而 言,-主機以序列次序在一未寫入記憶體分配叢集 '然 而,並非永遠為該情況。只要一主機非序列地分配叢集, 124767.doc 1376599 般而。,較佳地當主機分配叢集 柱 取禾,、控制盗分配叢集相遇 時將不產生一卡全滿條。 在本範例中,一初始分配之叢 集映射651係從儲存於哕 仔於該記憶體中之FAT 653獲得(亦可使The unavailable space' is available by the remapping operation of the controller 429. This prevents the host 427 from attempting to allocate a cluster that the controller 429 has used. In one embodiment, a cluster that has been assigned to the controller is assigned to a file created by the controller. The file may have a name such as "not used to indicate that it is not a host file. This file is displayed by a directory entry that is provided when the host requests to store the directory information of the 5 memory. A directory item that can be modified in the fat information can be added to a directory that is stored in the memory. This allows - the user sees how much capacity is unusable due to controller operation. In particular, this allows a user to interpret any significant difference between the capacity of a memory card and the amount of user data stored prior to reaching a full condition. The edit can be formed to become a dedicated circuit in the controller, or can be implemented by some combination of a lemma or a hard body. When the memory system is first turned on, a record will initially be generated. A controller can scan the memory to construct the initial record. The set of f assigned by the host can be simply (4) by reading the FAT. The set of allocations by the controller can be obtained by scanning the § memory itself or by scanning a management structure for indicating the use of the concealed use of 124767.doc • 18· 1376599 • ‘. When the controller implements a remapping operation, the controller uses an extra cluster and reacts this usage to the record. Initially, the controller can use some space exclusive to the controller. Later, when such exclusive space is fully utilized, the controller can use the logical space that is also used by the host, so the controller also begins recording the use of the workstation in the record. In general, when the amount of scrapped material reaches a limit, the controller begins to use the logic 2 available to the host. The & limit is determined by the amount of spare capacity available. In the middle, the total physical capacity of the memory minus the logical combination of the memory (as seen by the host) minus the control data space and some operational space. In some cases, the controller may indicate the use of the logical space in the - record before using a corresponding portion of the real =. For example, as long as a controller has been scheduled to require some kind of operation in a certain space in the physical memory, the controller can reserve this space and make it unavailable to the host by indicating that it is unusable in the record. . The allocation of the host by % can also be reflected in the record, but this is not necessary because the allocation of the controller is recorded in the FATf. In contrast to the example in which both the host and the controller are recorded in the FAT, in this example, the number of writes to the non-volatile memory has been reduced. Since there are fewer (4) writes to the non-volatile memory, less space is needed to store the fat. ▲ Figure 6 shows an example of a host non-sequentially allocating a cluster. In general, the host is in a sequence of unwritten memory allocation clusters. 'Rather, this is not always the case. As long as a host allocates clusters non-sequentially, 124767.doc 1376599 is the same. Preferably, when the host allocates the cluster column, the control stolen distribution cluster will not generate a full card. In this example, an initially allocated cluster map 651 is obtained from FAT 653 stored in the memory (also

他來源產生該叢集映射此映射651指示由該主機非 序列地分配之叢集。然後修正該初始分配之叢集映射 651 ’以反應該控制器所分配之叢集,而提供一完整叢集 映射655 〇該控制器分配叢集從該位址範圍之底部延伸至 主機分配叢集的—區域,而且亦在主機分配叢集之此區域 k伸因此’在此方案中,當主機分配叢集與控制器 刀配叢集相遇時並未產生—記憶體全滿條件。取而代之, 該控制器尋求用於-重映射操作之下—可用叢集…記憶 體王滿條件可僅於符合例如分配該位址範圍中所有叢集之 某種其他條件時出現。當該主機請求FAT資訊時,從該非 揮發性記憶體讀取該FAT資訊,而且於傳送至該主機前加 以修正。圖6顯示如藉由儲存於該非揮發性記憶體中之FAT 653所指示之叢集分配的一第一映射651。圖6顯示如對該 主機所指示之叢集分配的一第二映射655。該第二映射包 含該控制器所分配之叢集以及該主機所分配之叢集。在此 方案中’並非必須該控制器從該位址範圍的一端序列地分 配叢集。可便用混合主機分配叢集與控制器分配叢集的一 不同方案。 圖7顯示一導致一紀錄之改變之主機操作的一第一範 例°於該主機操作前,該FAT 761顯示叢集0至2係由資料A 所佔用。圖7之FAT 76 1及紀錄763兩者顯示邏輯空間而非 124767.doc -20- 1376599The source generates the cluster map. This map 651 indicates the cluster that is non-sequentially allocated by the host. The initial allocated cluster map 651' is then modified to reflect the cluster allocated by the controller, and a complete cluster map 655 is provided, the controller assigns the cluster from the bottom of the address range to the area of the host allocation cluster, and This area is also stretched in the area of the host allocation cluster. Therefore, in this scheme, the memory full condition is not generated when the host allocation cluster meets the controller knife cluster. Instead, the controller seeks to be used under the remapping operation - the available clusters... the memory king condition can occur only if it meets some other condition, such as allocating all the clusters in the address range. When the host requests FAT information, the FAT information is read from the non-volatile memory and corrected before being transmitted to the host. Figure 6 shows a first map 651 as assigned by the cluster indicated by FAT 653 stored in the non-volatile memory. Figure 6 shows a second mapping 655 as assigned to the cluster indicated by the host. The second map contains the clusters allocated by the controller and the clusters allocated by the host. In this scenario, it is not necessary for the controller to serially distribute the cluster from one end of the address range. A different approach to clustering and controller allocation clustering is possible with a hybrid host. Figure 7 shows a first example of a host operation that results in a change in record. The FAT 761 shows that clusters 0 through 2 are occupied by profile A before the host operates. Both FAT 76 1 and record 763 of Figure 7 show logical space instead of 124767.doc -20- 1376599

實體空間之使用。該紀錄763亦顯示叢集〇至2為已分配。 此時未顯示任何其他叢集為已分配。然後該主機分配資料 Β給叢集0至2。資料Β被寫入至實體記憶體之一新位置 處,該新位置係記錄於一實體至邏輯位址轉譯表中。更新 該FAT 761,以顯示分配給叢集〇至2之資料Β。因此,由該 FAT 761所指示之已分配空間與以前相同。然而,該實體 A憶體中使用較多空間,此係因為資料B被寫入至一新位 置,而且資料A仍然佔用另一位置。為了指示此使用,更 新該紀錄763,以顯示叢集7至9之使用。因此,該紀錄指 示使用六叢集,其對應於使用之實體記憶體數量。若此時 該主機u月求叢集〇至9之FAT資訊,則傳回給該主機之FAT 資訊將指示叢集〇至2及7至9係不可用。The use of physical space. The record 763 also shows that clusters 〇 to 2 are allocated. No other clusters are shown as assigned. The host then assigns data to clusters 0 through 2. The data is written to a new location in the physical memory, which is recorded in an entity-to-logical address translation table. Update the FAT 761 to display the data assigned to the cluster 〇 to 2. Therefore, the allocated space indicated by the FAT 761 is the same as before. However, this entity A uses more space in the memory, because the data B is written to a new location, and the data A still occupies another location. To indicate this usage, the record 763 is updated to show the use of clusters 7 through 9. Therefore, the record indicates the use of a six cluster set, which corresponds to the amount of physical memory used. If the host asks for a FAT message of 9 to 9 at this time, the FAT information returned to the host will indicate that the clusters are 2 and 7 to 9 are unavailable.

圖8顯示一導致一紀錄之改變之主機操作的一第二範 例。於此主機操作前,該FAT 871顯示資料所伯用之叢集〇 至2。該紀錄873亦顯示此等叢集為已分配。然後該主機解 除分配叢集0至2。例如,該主機可嘗試刪除佔用叢集⑴ 之資料,其係例如藉由將叢集〇至2標示為可用,而且藉由 從該目錄移除分配給叢集〇至2之檔案(在縮短一檔案之情 況中’可將叢集標示成不可用’而且以新長度更新該目錄 項)。此使叢集〇至2可供將額外資料儲存於該fat⑺中。 然而’該主機之操作使該實體記憶體中之空間不再可用。 為了反:該實體記憶體中之已使用空間更新該紀錄,以 叢請^若此㈣主機請求叢編9 則將顯示叢集7至9為不可用。在-替代範例 124767.doc 21 1376599 中,即使於叢集〇至2由胃主機解除分配並在⑽ 解除分配後,該紀錄仍指示分配叢集〇 ' - z 隨後,當該主 機請求叢集〇至2之FAT資訊時,指示其係待分配。在一肽 情況中’此可能造成問冑,因為該主機可能具有一分離: 紀錄(例如FAT的一快取部分),盆指 刀 ,刀)丹扣不解除分配叢集〇至 2 〇Figure 8 shows a second example of a host operation that results in a change in record. Before this host operation, the FAT 871 displays the cluster 〇 to 2 used by the data. The record 873 also shows that these clusters have been allocated. The host then unassigns the clusters 0 through 2. For example, the host may attempt to delete the data occupying the cluster (1) by, for example, marking the cluster 〇 to 2 as available, and by removing the files assigned to the cluster 〇 to 2 from the directory (in the case of shortening a file) In 'can mark the cluster as unavailable' and update the directory entry with the new length). This causes the cluster to be 2 to store additional data in the fat(7). However, the operation of the host makes the space in the physical memory no longer available. In order to reverse: the used space in the physical memory is updated to the record, so if the (4) host requests the bundle 9 then the clusters 7 to 9 will be displayed as unavailable. In the alternative example 124767.doc 21 1376599, even after the cluster 〇 to 2 is deallocated by the stomach host and after (10) is deallocated, the record indicates that the cluster 分配 ' - z is subsequently assigned, when the host requests the cluster 〇 to 2 When FAT information is displayed, it indicates that it is to be assigned. In the case of a peptide, this may cause a problem because the host may have a separation: a record (such as a cached part of FAT), a basin knife, a knife) a buckle does not de-allocate the cluster to 2 〇

以上範例指控制器使用記憶體空間儲存主機資料。然 而,其他情泥中,該控制器可使用記憶體空間作為其他用、 途,而且使用如所述的-紀錄解釋記憶體中之已使用空 間。可使用可抹除或OTP記憶體。在_範例中運行於一 記憶卡中的-内嵌式應用程式可使用該非揮發性記情體中 U間。可ϋ蹤藉由此—應用程式之—非揮發性記憶體中 之空間之使用並且透過揮發性記憶體中的一叢集映射將其 傳達至該主機。The above example means that the controller uses the memory space to store the host data. However, in other situations, the controller can use the memory space for other uses, and use the recorded space as explained to explain the used space in the memory. Erasable or OTP memory can be used. The embedded application running on a memory card in the _ example can use the U between the non-volatile ticks. It can be traced to the use of the space in the application-non-volatile memory and communicated to the host via a cluster map in the volatile memory.

另一具體實施例中,可使用揮發性記憶體中的一叢集映 射反應一根據一不同介面而操作之主機之分配。美國專利 申凊案第11/196,869號揭示兩主機介面共享記憶體中之相 同實體區域之記憶體系統。一第一主機維護用以指示其邏 輯位址空間之使用的一 FAT,而一第二主機使用不要求 FAT的一不同管理系統。然而,修正該FAT以顯示藉由該 第二主機之FAT中之邏輯空間之使用,該邏輯空間對應於 該實體記憶體中由該第二主機用以儲存資料之空間。在一 替代配置中,取代修正該FAT以反應藉由該第二主機之活 動,可維護一叢集映射或類似紀錄以顯示此類使用。當該、 124767.doc -22- 1376599 第一主機請求FAT資訊時,可根據該紀錄而讀取及修正該 FAT ’以反應藉由該第一及第二主機兩者之記憶體之使 用。 在圖9所不的一範例中,可使用揮發性記憶體中所維護 的紀錄,以減少儲存於非揮發性記憶體中之FAT之讀取 數目。當-主機請求-特定邏輯位址範圍的一或多個 區段891時,該記憶體控制器可檢查該範圍之紀錄,以決 定,是否已分配該範圍中之任何叢集。若該範圍中並無 分配叢集1該控制器可藉由建立一或多個魔區段州而 產生FAT資訊,以反應此。因此,不需存取任何非揮發性 記憶體:若該紀錄指示分配請求之位址範圍中之叢集則 般而…賣取894儲存於非揮發性記憶體中之,以獲得 完全咖資訊。可於傳送至該主機_前根據該紀錄而修正 895讀取自該非揮發性記憶體之 a 了將错由漆控制器之叢集分配之紀錄當作一擋案加以維 護。在上述範財,僅將此㈣維護於揮發性記憶體中, 而且未儲存在該非揮發性記憶體中。然而,某些情況中, 可將此一檔案當作一電源切斷常式的部分或其他而分離儲 存於非揮發性§己憶體卜當初始 時,此可減少在揮發料浩继“丄 隐體系統 谭發性δ己憶體中產生一紀錄所需之時間。 二之=施例’’該主機所分配之叢集及該控制器所 :使用之失、::藉由比較該FAT所指示之分配與實際記憶 體使用之失效为析期間辨別。 s己憶體空間係以-叢集為單位加以分配。叢集大小一般 124767.doc -23· 向言端視使用之記憶體系統,而且可能隨著記憶體系統而 變動。在-範例中,一叢集由32區段之資料所組成。只要 該非揮發性記憶體係可抹除,一區塊(最小抹除單位)之大 小亦可為32區段。其他範例中,—區塊可含有二或多個叢 集。 本文參照之所有專利、專利申請案、文章、書籍、說明 書、其他公告、文件及事物全部以引用的方式併入本文中 而作為所有用it。在任何併人之公開案、文件或事物與本 文件之正文間之一術語之定義或使用之任何不一致或衝突 之範圍内,應優先採用該術語在本文件中之定義或使用。 雖然已就本發明之某些較佳具體實施例而說明本發明之 各方面,但是應瞭解,本發明有權在所附申請專利範圍之 全部範疇内受到保護。 【圖式簡單說明】 圖1顯示與包含一唯寫一次記憶體陣列之一記憶體裝置 進行通信的一主機裝置。 圖2顯示該唯寫一次記憶體陣列的一記憶體映射。 圖3顯示一記憶體映射,其包含該唯寫一次記憶體陣列 内之空間之使用,其中該主機從一端分配叢集,而且該控 制器從該位址範圍之另一端分配叢集。 圖4A顯示一唯寫一次記憶體之邏輯位址空間的一記憶體 映射,包含一檔案分配表(FAT),該檔案分配表反應藉由 該主機之分配及藉由該控制器之分配兩者。 圖4B顯示儲存主機資料前之圖4A之記憶體之實體位址 124767.doc •24· 1376599 空間的一映射β 圖4C顯示錯存主機資料並且更新控制資料以反鹿 存主機貧料後之圖4B之記憶截之實體位址空間的一映射。 圖侧示接收及儲存對該主機資料的一更新、同時儲存 已更新控制請後之圖4C之記憶體之實體位址空間的一映 射。 圖5顯示-替代具體實施例’其中儲存於非揮發性記憶In another embodiment, a cluster mapping reaction in a volatile memory can be used - a distribution of hosts operating according to a different interface. U.S. Patent Application Serial No. 11/196,869 discloses a memory system in which the two host interfaces share the same physical area in the memory. A first host maintains a FAT indicating the use of its logical address space, and a second host uses a different management system that does not require FAT. However, the FAT is modified to display the use of logical space in the FAT of the second host, the logical space corresponding to the space in the physical memory used by the second host to store data. In an alternate configuration, instead of modifying the FAT to react to activity by the second host, a cluster map or similar record can be maintained to show such usage. When the first host requests 124AT.doc -22- 1376599, the FAT information can be read and corrected according to the record to reflect the use of the memory by both the first and second hosts. In an example not shown in Figure 9, the records maintained in the volatile memory can be used to reduce the number of FAT reads stored in the non-volatile memory. When the host requests - one or more sectors 891 of a particular logical address range, the memory controller can check the record of the range to determine if any of the clusters in the range have been allocated. If there is no distribution cluster 1 in the range, the controller can generate FAT information by establishing one or more magic segment states to reflect this. Therefore, there is no need to access any non-volatile memory: if the record indicates a cluster in the address range of the allocation request, then the sell 894 is stored in the non-volatile memory to obtain full coffee information. It can be corrected according to the record before being transmitted to the host_. 895 is read from the non-volatile memory, and the record of the distribution of the error by the paint controller is treated as a file for maintenance. In the above-mentioned formula, only (4) is maintained in the volatile memory, and is not stored in the non-volatile memory. However, in some cases, this file can be used as a power source to cut off the part of the routine or otherwise stored separately in the non-volatile § memory. When initially, this can be reduced in the volatile material. The time required to generate a record in the hidden system of the hidden system. II = Example ''The cluster allocated by the host and the controller: Loss of use, :: By comparing the FAT The allocation of indications and the failure of the actual memory usage are discriminated during the analysis period. The sufficiency space is allocated in units of clusters. The cluster size is generally 124767.doc -23· The memory system used by the end, and possibly In the case of the memory system, a cluster consists of 32 segments of data. As long as the non-volatile memory system can be erased, the size of a block (minimum erase unit) can also be 32 regions. In other examples, a block may contain two or more clusters. All patents, patent applications, articles, books, specifications, other publications, documents, and things referred to herein are hereby incorporated by reference in their entirety as Place Use of it. In the event of any inconsistency or conflict between the definition or use of a term between any public disclosure, document or thing and the body of this document, the definition or use of that term in this document shall prevail. Although the various aspects of the invention have been described in terms of some preferred embodiments of the invention, it is understood that the invention is in the scope of the appended claims. Displaying a host device in communication with a memory device including a write-once memory array. Figure 2 shows a memory map of the write-once memory array. Figure 3 shows a memory map containing the Write the use of the space within the memory array, where the host allocates the cluster from one end, and the controller allocates the cluster from the other end of the address range. Figure 4A shows a logical address space of a write-only memory. The memory map includes a file allocation table (FAT), and the file allocation table reflects both the allocation by the host and the allocation by the controller. The physical address of the memory in Figure 4A before storing the host data is 124767.doc • 24· 1376599 A mapping of the space β Figure 4C shows the memory of Figure 4B after the host data is updated and the control data is updated to deer the host. A map of the physical address space of the intercepted entity. The figure shows a mapping of the physical address space of the memory of Figure 4C after receiving and storing an update to the host data, and storing the updated control. Figure 5 shows - Alternative to the embodiment 'where stored in non-volatile memory

體中的-FAT反應藉由該主機之分配,而且儲存於揮發性 記憶體中的一紀錄反應非藉由該控制器之分配組合來自 該fat之資訊與該紀錄,以回應對於FAT資訊的一主機請 求。 圖6顯示一具體實施例,其中一主機非序列地分配一記 隱體中之空間,而且一控制器以一適應該分配空間之方式 分配空間。The -FAT reaction in the body is allocated by the host, and a record response stored in the volatile memory is not the information of the fat and the record by the allocation of the controller, in response to the FAT information. Host request. Figure 6 shows an embodiment in which a host non-sequentially allocates a space in a hidden object, and a controller allocates space in a manner that accommodates the allocated space.

圖7顯示一具體實施例,其中一主機分配非揮發性記憶 體之一紀錄中所反應之已更新資料。 圖8顯示一範例,其中一主機解除分配若干叢集,而且 更新該紀錄,以指示相等數目之叢集之使用。 圖9顯示一使用揮發性記憶體之一紀錄減少非揮發性記 憶體讀取數目之技術的一流程圖。 【主要元件符號說明】 5 主機裝置 7 多寫槽案系統 10 記憶體裝置 124767.doc •25- 1376599Figure 7 shows an embodiment in which a host allocates updated data reflected in a record of one of the non-volatile memories. Figure 8 shows an example in which a host de-allocates a number of clusters and updates the record to indicate the use of an equal number of clusters. Figure 9 shows a flow chart of a technique for recording the number of non-volatile memory readings using one of the volatile memories. [Main component symbol description] 5 Host device 7 Multi-write slot system 10 Memory device 124767.doc •25- 1376599

15 介面 20, 429 控制器 30 唯寫一次記憶體陣列 50 記憶體映射 301 邏輯位址空間 303 主機分配空間 305 控制器分配空間 407, 431, 653 非揮發性記憶體中之檔案分配表 409 實體記憶體 411 實體記憶體的一部分 413, 415,419, 421 實體位置 417, 425 控制資料的一部分 423 主機資料的一部分 427 主機 433 非揮發性記憶體 435, 763, 873 紀錄 437 揮發性記憶體 439 編輯器 441 已修正檔案分配表資訊 651, 655 叢集映射 761, 871 檀案分配表 124767.doc -26-15 Interface 20, 429 Controller 30 Write-only memory array 50 Memory map 301 Logical address space 303 Host allocation space 305 Controller allocation space 407, 431, 653 File allocation table in non-volatile memory 409 Physical memory Body 411 Part of the physical memory 413, 415, 419, 421 Physical location 417, 425 Part of the control data 423 Part of the host data 427 Host 433 Non-volatile memory 435, 763, 873 Record 437 Volatile memory 439 Editor 441 Corrected file allocation table information 651, 655 cluster map 761, 871 Tan file allocation table 124767.doc -26-

Claims (1)

、申請專利範圍: —種管理由一主機用以儲存 KI ^ 仔負枓之一非揮發性記憶體陣 f料之方法’該主機將已儲存資料之位址記錄在 亦儲存於該非揮發性記憶體陣列中的一檔案分配表該 方法包括: 接收來自該主機對於儲存於該非揮發性記憶體陣列中 之該檔案分配表之一部分的一請求; 從該非揮發性記憶體陣列讀取該㈣分配表之該部 T後根據一紀錄而修正該檔案分配表之該部分,該紀 m不由記憶體控制器用以儲存自該主機接收之資料之 至少—位址;以及 將該槽案分配表之已修正部分傳送至該主機。 2. 如請求項·、土 . 万去’其中該紀錄係在一揮發性記憶體中 維護,OJL JL '' 阳非在該非揮發性記憶體陣列中維護。 3. 如請求jg 1夕+、A 之·方法’其中該非揮發性記憶體陣列係不可 抹除。 4·如請求項1 ^之方法,其中該紀錄係一叢集映射,其包含 複數個叢^ ^ 取杲之每—叢集的一分配/解除分配狀態。 5.如請求項4 ^ ^ 1之方法’其中回應該主機將資料分配給一先 月1J已分gp f隹 最集’而發生由該記憶體控制器對該位址之使 用。 6 · 如請求堪 之方法,其中回應該主機解除分配先前已分 酉己| # /、’而發生由該記憶體控制器對該位址之使用。 124767.doc 1376599 一種管理在一非揮發性記憶體陣列中之資料之方法,其 包括: 接收來自一主機之資料之一第一部分,該資料之該第 一部分由該主機分配給先前已分配的一第一叢集; 將該資料之該第一部分儲存於該非揮發性記憶體陣列 中; 接收來自該主機之分配資訊,該分配資訊連結該資料Patent application scope: A method for managing a non-volatile memory array material used by a host to store KI ^ 仔 ' ' 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该 该A file allocation table in a volume array, the method comprising: receiving a request from the host for a portion of the file allocation table stored in the non-volatile memory array; reading the (four) allocation table from the non-volatile memory array The portion of the file allocation table is modified according to a record, and the memory controller is not used by the memory controller to store at least the address of the data received from the host; and the slot allocation table has been modified. Partially transferred to the host. 2. If the request item, 土. 10,000 goes, where the record is maintained in a volatile memory, OJL JL '' Yang Fei is maintained in the non-volatile memory array. 3. If the request jg 1 + +, A method ', where the non-volatile memory array is not erasable. 4. The method of claim 1 wherein the record is a cluster map comprising a plurality of clusters each of which is an allocation/deallocation state of the cluster. 5. The method of claim 4 ^ ^ 1 wherein the host responds to the allocation of data to a first month 1J has been divided into gp f隹 the most set and the use of the address by the memory controller occurs. 6 • If the method is requested, it should be used by the memory controller to de-allocate the previously allocated user | # /, '. 124767.doc 1376599 A method of managing data in a non-volatile memory array, comprising: receiving a first portion of one of data from a host, the first portion of the data being assigned by the host to a previously assigned one a first cluster; storing the first portion of the data in the non-volatile memory array; receiving distribution information from the host, the distribution information linking the data 之該第一部分與該第一叢集,該分配資訊指示一第二叢 集可供額外資料之儲存; 將該分配資訊儲存於該非揮發性記憶體陣列中;以及 隨後,回應對該分配資訊的一主機請求,從該非揮發 性兄憶體陣列讀取該分配資m,而且修正該&配資訊, 該已修正分配資訊指示該第一叢集及該第二叢集兩者不 可用於額外資料之儲存。The first portion and the first cluster, the allocation information indicates that a second cluster is available for storing additional data; storing the allocation information in the non-volatile memory array; and subsequently, responding to a host of the allocation information Requesting, reading the allocation resource m from the non-volatile brother memory array, and correcting the & allocation information indicating that both the first cluster and the second cluster are unavailable for storage of additional data. 中之資料之方法,其中一 且將該分配記錄於該非揮 一種管理在一非揮發性記憶體 主機將資料分配於叢集中,而 發性記憶體中,該方法包括: 產生一叢集映射,其指示複數個叢集之每-叢集的 分配/解除分配狀態; 在-揮發性記憶體中維護該叢集映射; 回應接收對於有關該複數 嗜灰,夕™ , 钱致個叢集之为配資訊的一主機 w月本從該叢集映射決定县 疋疋否分配該複數個叢阜· 若未分配該複數個叢隼 訊,而且將該產生之分 ⑨生刀配資 配資訊傳回至該主機。 124767.doc -2^ 9.如請求項8之方法,其牛 之至少—書 /匕括右分配該複數個叢集 訊。 集,則從該非揮發性記憶體讀取該分配資 1。·如請求項9之方法’其進 之分配,而且撻批兮口片 很媒这紀錄修正讀取 u如 k供該已修正分配資訊給該主機。 項〗0之方法,其令該已修正 该複數個叢集之至少-叢集的一標案。 刀配給 2 ’種管理在一非揮發性$ ,陪_名μ上 非揮發性㈣料中之^之方法,該 ㈣Φ a〜彡有》配給儲存於該非揮發性記憶 體中之貝料的-邏輯位址空間,該方法包括: 將藉由-主機之位址空間之分配記錄在儲存於該 發性記憶體陣列中的一稽案系統結構; 揮 將非藉由該主機之位址空間之分配記錄在儲存於—揮 毛!·生《己隱體陣列而非儲存於該非揮發性記憶體陣列的一 紀錄中;以及 回應對於分配資料的一主機請求,查閱該紀錄,而且 端視該紀錄之内容提供一回應給該主機。 13·如請求項丨2之方法,其中非藉由該主機之位址空間之分 配係由一記憶體控制器用於更新控制資料之位址空間之 分配。 14. 如請求項丨2之方法,其中非藉由該主機之位址空間之分 配係未將其分配記錄於該檔案系統結構中之藉由另一主 機之位址空間之分配。 15. 如請求項12之方法,其中非藉由該主機之位址空間之分 124767.doc 1376599 配係藉由該非揮發性記憶體系統内之一内嵌式應用程式 之位址空間之分配。 16.如請求項12之方法,其中該回應包含一特定播案係分配 給由該紀錄指示待分配之位址空間的一指示。 1 7. —種非揮發性記憶體系統,其包括: 一非揮發性記憶體陣列,其儲存來自一主機之資料, 及儲存用以指示由該主機將該資料分配給一邏輯位址空 間之至少一第一部分的一檔案系統結構; 一控制器,其管理該非揮發性記憶體陣列中之資料, 該控制器分配該邏輯位址空間之至少一第二部分,而未 在該檔案系統結構中指示該第二部分之分配;以及 揮發性s己憶體,其記錄藉由該控制器之邏輯位址空 間之第二部分之分配。 …如請求項17之_發性記憶體系統’其中該非揮發性記 憶體陣列係不可抹除。 19.如請求項17之非揮發性記憶體系統,其中在一共同晶粒 上形成該揮發性記憶體及該控制器。 20·如請求項17之非揮發性記憶體系統,其中該邏輯位址空 間之該第二部分係由該控制器分配給該主機所傳送之資 料,以更新先前儲存於該非揮發性記憶體陣列中之資 料。 21 ·如請求項17之非揮發性記 揮發性記憶體系統中的— 空間之第二部分由該控制 憶體系統,其進一步包括該非 内嵌式應用程式’該邏輯位址 器分配給該内嵌式應用程式所 124767.doc 儲存之資料。 22.如請求項丨7之非揮發性記憶體系統,其進一步包括該控 制器中的-编輯器,該編輯器於從該非揮發性記憶體陣 列讀取時修正該檔m结構,然後將該已修正棺案系 統結構傳送至該主機。 、 23·如請求項22之非揮發性記憶體系統,其中該編輯器根據 記錄於該揮發性記憶體中之資訊而修正該 構。 、,· 4·如明求項17之非揮發性記憶體系統,其中該非揮發性記 憶體系統係内嵌於一可抽換記憶卡中。 2乂如請求項17之非揮發性記憶體系統,其中回應對於來自 該非揮發性s己憶體系、統有關—邏輯位址之分配資訊的一 主機請求,該控制器檢查該揮發性記憶體,而且若該揮 發性記憶體顯示未分配該邏輯位址,則該控制器傳回以 下的一指* :該邏輯位址係未分酉己,而纟從該非揮發性 記憶體陣列讀取分配資訊。 26. —種非揮發性記憶體系統,其包括: 一非揮發性記憶體陣列,其儲存來自一主機之資料及 儲存用以指示藉由該主機之資料之分配的一擋案系統結 構,以及 ’- 一記憶體控制器’其管理該非揮發性記憶體陣列中之 資料,該記憶體控制器包含一編輯器,其根據儲存於一 揮發性記憶體中的—紀錄而修正來自該非揮發性記憶體 陣列之檔案系統結構,該記憶體控制器回應—主機請求 124767.doc 1376599 而將該已修正檔案系統結構傳送至該主機。 27.如請求項26之非揮發性記憶體系統,其中該紀錄指示藉 由該控制器之邏輯空間之分配。 28.如請求項26之非揮發性記憶體系統,其中該非揮發性記 憶體陣列係不可抹除。 29. 如請求項26之非揮發性記憶體系統 統在根據一介面與一主機介接的一 ,其中該非揮發性系 可抽換記憶卡中。The method of data, wherein one of the records is recorded in the non-volatile management, and the non-volatile memory host distributes the data in the cluster, and the method includes: generating a cluster map, Instructing the allocation/de-allocation state of each cluster of the plurality of clusters; maintaining the cluster mapping in the -volatile memory; responding to receiving a host for the complex information about the plural gray, the singularity, and the money From the cluster map, the county determines whether the county allocates the plurality of clusters. If the plurality of clusters are not allocated, the generated information is transmitted back to the host. 124767.doc -2^ 9. In the method of claim 8, the at least one of the cows is assigned to the plurality of clusters. The set reads the allocation 1 from the non-volatile memory. • As in the method of claim 9, the allocation is made, and the record is corrected. The record is read by u to provide the corrected allocation information to the host. The method of item 0, which causes the at least one cluster of the plurality of clusters to be corrected. The knife is assigned to 2' species management in a non-volatile $, accompanied by a method of non-volatile (four) material, the (four) Φ a ~ 彡 has been assigned to the bedding stored in the non-volatile memory - Logical address space, the method includes: recording, by the allocation of the address space of the host, an auditory system structure stored in the array of the initial memory; the address space of the host is not used by the host The distribution record is stored in - swaying! • Producing a "hidden array" rather than a record in the non-volatile memory array; and responding to a host request for allocation of data, reviewing the record, and providing a response to the host based on the contents of the record. 13. The method of claim 2, wherein the allocation of the address space not by the host is used by a memory controller to update the allocation of the address space of the control data. 14. The method of claim 2, wherein the allocation by the address space of the host does not record its allocation in the file system structure by the allocation of the address space of the other host. 15. The method of claim 12, wherein the location of the address space of an embedded application within the non-volatile memory system is allocated by the address space of the host device 124767.doc 1376599. 16. The method of claim 12, wherein the response comprises assigning a particular broadcast to an indication of the address space to be allocated by the record. 1 7. A non-volatile memory system, comprising: a non-volatile memory array storing data from a host, and storing to indicate that the data is allocated by the host to a logical address space At least a first portion of a file system structure; a controller that manages data in the non-volatile memory array, the controller assigning at least a second portion of the logical address space, not in the file system structure Indicating an allocation of the second portion; and a volatile suffix that records the allocation of the second portion of the logical address space of the controller. ...the sinusoidal memory system of claim 17 wherein the non-volatile memory array is not erasable. 19. The non-volatile memory system of claim 17, wherein the volatile memory and the controller are formed on a common die. 20. The non-volatile memory system of claim 17, wherein the second portion of the logical address space is data transmitted by the controller to the host to update previously stored in the non-volatile memory array Information in the middle. 21 - The non-volatile memory memory system of claim 17 - the second portion of the space is controlled by the control memory system, further comprising the non-embedded application 'the logical addresser is assigned to the internal Information stored in the embedded application program 124767.doc. 22. The non-volatile memory system of claim 7, further comprising an editor in the controller, the editor correcting the file m structure when reading from the non-volatile memory array, and then The modified system structure has been transferred to the host. 23. The non-volatile memory system of claim 22, wherein the editor modifies the structure based on information recorded in the volatile memory. 4. The non-volatile memory system of claim 17, wherein the non-volatile memory system is embedded in a removable memory card. 2. The non-volatile memory system of claim 17, wherein the controller checks the volatile memory for a host request from the non-volatile memory system for the allocation information of the logical address. And if the volatile memory indicates that the logical address is not allocated, the controller returns the following one finger*: the logical address is not separated, and the allocation information is read from the non-volatile memory array. . 26. A non-volatile memory system, comprising: a non-volatile memory array storing data from a host and storing a file system structure for indicating allocation of data by the host, and '- a memory controller' that manages data in the non-volatile memory array, the memory controller including an editor that corrects from the non-volatile memory based on a record stored in a volatile memory The file system structure of the volume array, the memory controller responds to the host request 124767.doc 1376599 to transfer the modified file system structure to the host. 27. The non-volatile memory system of claim 26, wherein the record indicates an allocation of logical space by the controller. 28. The non-volatile memory system of claim 26, wherein the non-volatile memory array is non-erasable. 29. The non-volatile memory system of claim 26, wherein the non-volatile system is replaceable in a memory card according to an interface interfacing with a host. 124767.doc124767.doc
TW96134944A 2006-09-29 2007-09-19 Method and nonvolatile memory system of managing file allocation table information TWI376599B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/537,243 US7752412B2 (en) 2006-09-29 2006-09-29 Methods of managing file allocation table information
US11/537,216 US7681008B2 (en) 2006-09-29 2006-09-29 Systems for managing file allocation table information

Publications (2)

Publication Number Publication Date
TW200832132A TW200832132A (en) 2008-08-01
TWI376599B true TWI376599B (en) 2012-11-11

Family

ID=38988085

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96134944A TWI376599B (en) 2006-09-29 2007-09-19 Method and nonvolatile memory system of managing file allocation table information

Country Status (2)

Country Link
TW (1) TWI376599B (en)
WO (1) WO2008042594A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681008B2 (en) 2006-09-29 2010-03-16 Sandisk Corporation Systems for managing file allocation table information
US7752412B2 (en) 2006-09-29 2010-07-06 Sandisk Corporation Methods of managing file allocation table information
TWI452467B (en) * 2008-10-13 2014-09-11 A Data Technology Co Ltd Memory system and control method thereof
TWI425514B (en) * 2009-10-29 2014-02-01 Hon Hai Prec Ind Co Ltd A nand flash memory and method for updating data in the nand flash memory
TWI449414B (en) 2010-12-29 2014-08-11 Altek Corp Image capturing apparatus and booting method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996660B1 (en) * 2001-04-09 2006-02-07 Matrix Semiconductor, Inc. Memory device and method for storing and reading data in a write-once memory array
TW200504577A (en) * 2003-07-16 2005-02-01 Matsushita Electric Ind Co Ltd Management method for data storage in data recording medium, and information processing device using the same
US7398348B2 (en) * 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory

Also Published As

Publication number Publication date
WO2008042594A1 (en) 2008-04-10
TW200832132A (en) 2008-08-01

Similar Documents

Publication Publication Date Title
US7681008B2 (en) Systems for managing file allocation table information
US7752412B2 (en) Methods of managing file allocation table information
JP4238514B2 (en) Data storage device
KR100980905B1 (en) Data storing apparatus
US8166258B2 (en) Skip operations for solid state disks
US9116791B2 (en) Method for flash-memory management
KR100987241B1 (en) Memory Device and Recording/Reproducing Apparatus Using the Same
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
TWI240865B (en) Method and apparatus for splitting a logical block
US8041884B2 (en) Controller for non-volatile memories and methods of operating the memory controller
KR101139224B1 (en) Method And Apparatus For Using A One-Time Or Few-Time Programmable Memory With A Host Device Designed For Erasable/Rewriteable Memory
US7849253B2 (en) Method for fast access to flash-memory media
CN101253468A (en) Method and system for dual mode access for storage devices
CN107273058A (en) Logical Address Offset
TW201040719A (en) Solid state memory formatting
TWI376599B (en) Method and nonvolatile memory system of managing file allocation table information
JP7026833B1 (en) Storage device, fresh memory controller and its control method
CN1701300B (en) Method and apparatus for resolving physical blocks associated with a common logical block
US20200412379A1 (en) Data storage device and non-volatile memory control method
JP2007018528A (en) Memory device, file management method, and recording and reproducing device
JP2007164391A (en) Memory card and control method therefor

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees