200832132 九、發明說明: 【發明所屬之技術領域】 本發明係關於非揮發性記憶體系統,而且關於操作非揮 發性記憶體系統之方法。 【先前技術】 模組化、可攜式、非揮發性記憶體裝置係可取得,其可 輕易連接至及拆接自例如一數位相機、數位聲頻記錄器及 個人電腦之主機裝置。例如快閃卡之此等裝置中使用之傳 統記憶體係可重寫,其允許抹除及重寫一記憶體位址,以 作為系統或使用者之用途。一次可程式化(〇τρ)或少次可 程式化(FTP)之較低成本記憶體技術之建立允許配合主機 裝置之新使用核組,其類似一類比相機中之軟片,五人了 用以簡單拍攝及列印相片,同時省去當作一”負片"之詨低 成本卡。理想中,吾人應能夠在一標準快閃相機中使用此 低成本卡,但該等技術未必相容,因為可攜式裝置通常使 用DOS FATUm檔案系統,其要求系統結構可抹除。以一 0TP或FTP記憶體技術之自訂化檔案系統更新該裝置中之 韌體可解決此問題,但此可能將總可用市場限制於具有軟 體升級之新相機,或者可能要求使用者以該領域 升級其現存相機。 【發明内容】 主機從該 在一用於操作一非揮發性記憶體之方案中, 記憶體之位址範圍之-端分配叢集,而且控制"該位 範圍之另-端分配叢集,使不可能重寫或抹除該資料, 124767.doc 200832132 藉由一控制器之此類分配仍允許該主機傳送對先前已寫入 資料的一更新。藉由該主機之分配係記錄於一楷案分配^ (FAT)中。藉由該控制器之分配並未記錄於該中,但取 而代之,記錄於揮發性記憶體中。當一主機請求 時,該控制器根據揮發性記憶體中之紀錄而修正來自心 揮發性記憶體之FAT。 ~非 在一種管理一非揮發性記憶體之資料之方法中,其中一 主機將資料館存於該非揮發性記憶體,該主機將已儲存資 料之分配記錄在亦儲存於該非揮發性記憶體中的一檔案分 配表田接收來自該主機對儲存於該非揮發性記憶體陣列 中之檑案分配表之一部分的一請求時,從該非揮發性記情 體陣列讀取該檔案分配表之部分。隨後,根據: 正該檔案分配表之部分,嗲夺辂扣_ # 該、、、己錄私不該記憶體控制器用以 儲存接收自該主機之眘祖 ^ v 機之貝枓之至少一記憶體位置,並將該梓 案分配表之已修正部分傳送至該主機。 检 當二方法中’在一揮發性記憶體中維護一叢集映射,該 叢木映射指示複數個叢隼 狀態。回應接收對於有二二1集的一分配/解除分配 丧收對於有關該複數個叢集之分配資訊的—主 機睛求,從該叢隼缺:* a _ ^ . 一 、射决疋疋否該複數個叢集已分配。若 该複數個叢集未分配, 右 該叢集映射產生分配資訊,並 财具傳回至該主機。例 已分配#隹 ,可產生一 fat區段,以顯示無 匕•刀配叢集。此可尤益 #兮豐卷 错由存取該非揮發性記憶體而完成。 右該叢集映射指示:存 Λ 發性% 在至>、一已分配叢集,將從該非揮 士注记體暝取該分配資訊。 124767.doc 200832132 【實施方式】200832132 IX. INSTRUCTIONS: 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. Traditional memory systems used in such devices as flash cards are rewritable, which allows erasing and overwriting a memory address for use by a system or user. The establishment of a low-cost memory technology that can be programmed (〇τρ) or a small number of programmable (FTP) allows the new use of the core set of the host device, which is similar to the film in the camera, used by five people. Simply shoot and print photos, while eliminating the need for a "negative" & low cost card. Ideally, we should be able to use this low cost card in a standard flash camera, but these technologies may not be compatible. Because portable devices usually use the DOS FATUm file system, which requires the system structure to be erased. Updating the firmware in the device with a custom file system of 0TP or FTP memory technology can solve this problem, but this may The total available market is limited to new cameras with software upgrades, or users may be required to upgrade their existing cameras in this field. [Summary of the Invention] The host from the solution for operating a non-volatile memory, the memory The end of the address range allocates the cluster, and the control " the other end of the range allocates the cluster, making it impossible to rewrite or erase the data, 124767.doc 200832132 by a controller Such an allocation still allows the host to transmit an update to the previously written data. The allocation by the host is recorded in a file allocation (FAT). The allocation by the controller is not recorded in the file. Instead, it is recorded in volatile memory. When requested by a host, the controller corrects the FAT from the heart volatile memory based on the records in the volatile memory. In the method of the data, one of the hosts stores the repository in the non-volatile memory, and the host records the distribution of the stored data in a file allocation table also stored in the non-volatile memory. Reading a portion of the file allocation table from the non-volatile character array when stored in a request for a portion of the file allocation table in the non-volatile memory array. Subsequently, according to: part of the file allocation table,嗲 辂 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ The corrected portion of the distribution table is transmitted to the host. In the second method, a cluster map is maintained in a volatile memory, the cluster map indicating a plurality of cluster states. The response is received for a set of two An allocation/de-allocation of mourning for the allocation information about the plurality of clusters - the host's eyesight is missing from the cluster: * a _ ^ . 1. Whether the plurality of clusters have been allocated or not. The clusters are unallocated, and the right cluster map generates allocation information, and the financial assets are transmitted back to the host. The example has been assigned #隹, which can generate a fat section to display the flawless • knife-matching cluster. The volume error is completed by accessing the non-volatile memory. The right cluster map indicates that the cached % is in the >, an allocated cluster, and the allocation information will be retrieved from the non-swinger. 124767.doc 200832132 [Embodiment]
本文所述之某些具體實施例可用以致能一次或少次可程 式記憶體與現存消費性電子裝置共同運作(例如與快閃(一 可抹除、可重程式化非揮發性記憶體)共同運作者),而不 要求一韌體更新,藉以提供反向相容性同時最小化使用者 衝擊。如此,此等具體實施例係一用以橋接一次或少次可 程式化記憶體與具有快閃卡槽之現存消費性電子裝置之可 行方式。此等具體實施例亦允許設計未來消費性電子裝 置,使其無需更新韌體以含括自訂化成用於一種一次或少 次可程式化記憶體的一檔案系統。亦可將所述某些具體實 施例應用於多次可程式化之非揮發性記憶體。並不要求以 一次可程式化的一記憶體利用所述技術。 現在參考圖式,圖1係一連接至一記憶體裝置10之主機 裝置5的-方塊圖。該主機裝置5及該記憶體裝㈣兩者包 括電子連接器’其彼此配對,以便透過一介面15將該主機 裝置5電子耦合於該記憶體裳置1〇。如本文所使用,術語 "耦合於”意指透過一或多個介入組件而直接耦合(於)或間 接耦合(於)。該主機裝置5可採用一消費性電子裝置之形 式’例如但不限於-數位靜態或移動相機、—個人數位助 理、-蜂巢式電話、一數位聲頻播放器,或者一個人電腦 ⑼如該等具有刪讀取器/寫入器或pCMClA卡配接器的個 ^腦在此具體實施例中’該主機裝置5含有例如該 檔案系統的—多寫檔案系統卜同時說明非”反向 相容控制器”之其他柝告 為’例如與可抹除非揮發性記憶 124767.doc 200832132 體共同使用之控制器。 該記憶體裝置H)可採用—模組化、緊密、手持式單元之 形式’例如-記憶卡或條。該記憶體裝置10包括一控制器 2〇及唯寫-次s己憶體陣列3()。可組態 ㈣間之介面一用於多媒體、安全數位、記憶= 狁快閃記憶體、智慧媒體、xD、USB、HS_MMc,或許多 可用之可攜式儲存媒體的任何可攜式儲存媒^如以下之 詳細說明,控制器20允許該記憶體裝置10與使用一多寫檔 案系統的一主機裝置反向相容。如此,在本文中,有時; 控制器20將稱為一,,反向相容控制器"或"BCC"。 該控制器20的一實施方式係使用一與標準組合邏輯相組 :之有限狀態機的-ASIC。,然而’可以各式各樣其他形式 實施該控制器20,例如但不限於具有韌體的一微控制器或 -微處理器。此外’雖然此具體實施例中之該控:器二 該記憶體陣列30分離,但可將—㈣器及―記憶體陣列整 合於一單一晶粒中以節省成本。在此具體實施例中,該= 制器20之設計非常類似用於可重寫記憶體技術的—控= 器。差異之範例為:此控制器20不需要任何耗損平準或關 聯於抹除非揮發性記憶體之其他邏輯❶雖然此處表示之設 5十可包含此等額外步驟及功能,但其將可能不是最佳成 〇 該唯寫一次記憶體陣列30包括複數個場可程式化唯寫一 次記憶體單元。場可程式化唯寫一次記憶體單元係製造成 在一初始、未程式化數位狀態並可於製造後的一時間切換 124767.doc 200832132 至一替代、程式化數位狀態之記憶體單元。例如,可將該 原始、未程式化數位狀態識別為該邏輯i(或邏輯〇)狀態, :且可將該程式化數位狀態識別為該邏輯〇(或邏輯”狀 恶。因為該等記憶體單元係一唯寫一次類型,所以一旦切 換至一程式化數位狀態(例如··該邏輯〇狀態),則益法復原 -:存位置的一原始、未程式化數位狀態(例如,該邏⑴ 狀t)取代一種一次可程式化(亦即,唯寫一次)記憶體陣 列,該記憶體陣列30可採用一少次可程式化(FTp)記憶體 車歹J之形式,其係可唯寫一次以上但不如一多寫記憶體陣 列夕-人的一記憶體陣列。同時,該記憶體裝置⑺可含有額 外€憶體陣列(唯寫一:欠、少次可程式化,或多寫)。 該唯寫一次記憶體陣列3〇可採用任何適合形式,例如一 固態記憶體裝置(亦即,回應電子讀取及寫入信號的一記 體虞置)、一磁性儲存裝置(例如一硬碟機),或者一光學 儲存裝置(例如-⑶或则)。當具有一固態記憶體單元之 形式時,可以一二維或三維方式組織該記憶體陣列儿中之 記憶體單it。在-具體實施例中,該記憶體陣列3()係一三 維陣列,例如說明於Johns〇n等人之美國專利第6,〇34,882 唬及Zhang之美國專利第5,835,396號的一陣列。在某些其 他具體實施例中,使用例如可抹除快閃記憶體之可抹除非 揮發性記憶體。 μ 為了說明此等具體實施例,該DOS FAT權案系統(例如 Windows作業系統中所使用)將用以當作一多寫播案系統的 一辄例。應注意,此等具體實施例可與其他類型之多寫檔 124767.doc 200832132 案系統共同使用。再度參考圖式,圖2係一用以顯示各種 ‘案系統結構之典型以Fat 12/16為主之儲存卡之邏輯位 玉間的5己,丨思體映射5 〇。如本文所使用,一"檔案系統 結構,,指用以說明記憶體中一分區、該分區内之記憶體空 間及/或一檔案系統可或不可與該分區共同使用之命令類 3L的任何資料。檔案系統結構之範例包含但不限於主開機 紀錄、一分區開機紀錄、一檔案分配表("FAT”或”FAT表”)、 一根目錄,及一子目錄。該主開機紀錄(MBR)用以儲存該 卡(亦即,該記憶體裝置10)之開機資訊以及每一邏輯分區 之起始位置。例如此處所示之大部分記憶卡僅含有一邏輯 分區。此範例中,含有例如叢集大小、叢集數目、分區類 型、分區名稱等資訊之分區開機紀錄(pBR)起始於位址 0x4000 〇FAT1對應於FAT表一,其含有每一檔案、目錄及 該卡10上其他貢訊之叢集數目的一連結清單。FAT2對應於 FAT表二。最後,該根目錄及檔案資料區域開始於實體位 址0C200。此區域係分割成叢集,其對應於每一 fat表中 之叢集數目。應注意,此僅為一 FAT檔案系統的一範例, 而且決非希望限制本發明。每一結構之不同位置、不同叢 集大小及甚至不同檔案系統可關聯於本文所述之具體實施 例。一FAT檔案系統可與邏輯定址及實體定址記憶體兩者 共同使用。 一邏輯定址圮憶體將該主機提供之資料映射至記憶體中 的位置,而且記錄該映射。該主機分配給該資料之位址視 為邏輯位址,而且此等位址並未聯合該實體記憶體中之特 124767.doc -11 - 200832132 定位置。-普遍方法係使用_實體至邏輯位址表,其係在 啟動時讀取或計算’而且然後儲存於該控制器20之揮發性 記憶體。在0PT記憶體中,由該主機分配已更新資料給先 前已分配給舊資料之叢集。因此,佔用相同邏輯位址範 圍’、但在該實體記憶體中必須佔用額外空間。該FAT中指 不成可用之邏輯位址範圍與該記憶體中實際可用之實體位 址範圍間之此一差異將造成問題。例如,豸主機將嘗試寫 入一全滿記憶體。 在一實數址記憶體中,來自該主機之資料係根據該主 :所提供位址加以儲存。因&,該主機提供之位址視為一 實體位址,而非僅-邏輯位址,而且不需要任何實體至邏 輯位址轉譯表。然而,只要資料未儲存在該主機提供之位 址,此一系統中可能存在某些例外。一般而言需要某種方 案以追蹤此類資料。一方案係使用主機無法看見的一記憶 體頁之,,旁帶區域,,(sideband area)(或,,附加項區域,, (overhead area))。此一方案的一範例給定於美國專利申請 案第2006/0047920號。在一具體實施例中,將該記憶體陣 列係以528位元組頁為單位予以組織中,每頁儲存一區 段,但該主機以一 512位元組區段傳送資料,留下16位元 組之額外空間。此等額外16位元組稱為旁帶,而且可由該 控制器用以儲存包含(但不限於)ECC資料、資料與位址驗 證旗標及重映射指標之額外資訊。此方案中,若已重映射 該頁,則該控制器20使用此旁帶的部分儲存一實體位址。 右第一次寫入該頁,將不需要任何重映射指標,因為該實 124767.doc •12- 200832132 體及邏輯位址將相同。當該主機5嘗試修正該資料時,該 控制器會㈣資料寫入至m,而且將此位置之實體 位址儲存於該舊位置之旁帶中。 -般而言,-主機不知道一記憶體系統是否係邏輯定址 或實體定址,而且此處所述具體實施例可應用於實體定址 記憶體或邏輯定址記憶體。本敘述指的是邏輯定址記憶 體’但應瞭解,-般而言’可運用__特定預定邏輯至實體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 means of bridging one or fewer programmable memories with existing consumer electronics devices having 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. Referring now to the drawings, Figure 1 is a block diagram of a host device 5 coupled to a memory device 10. Both the host device 5 and the memory device (4) include electronic connectors that are paired with each other to electronically couple the host device 5 to the memory device through an interface 15. As used herein, the term "coupled to" means directly coupled (directly) or indirectly coupled through one or more intervening components. The host device 5 may take the form of a consumer electronic device 'eg but not Limited to - digital static or mobile cameras, personal digital assistants, - cellular phones, a digital audio player, or a personal computer (9) such as those with a delete reader / writer or pCMClA card adapter In this embodiment, the host device 5 contains, for example, the file system's multi-write file system, and the other non-"reverse compatible controllers" are described as 'eg with erasable volatile memory 124767. Doc 200832132 Controller for common use. The memory device H) can be in the form of a modular, compact, hand-held unit such as a memory card or strip. The memory device 10 includes a controller 2 and only Write-time s repudiation array 3(). Configurable (4) interface for multimedia, secure digital, memory = 狁 flash memory, smart media, xD, USB, HS_MMc, or many available portable Storage medium Any portable storage medium of the body, as described in detail below, the controller 20 allows the memory device 10 to be backward compatible with a host device using a multi-write file system. Thus, in this context, sometimes; The device 20 will be referred to as a "reverse compatible controller" or "BCC". An embodiment of the controller 20 uses a combination of standard combinational logic: an ASIC of a finite state machine. The controller 20 can be implemented in a variety of other forms, such as, but not limited to, a microcontroller or microprocessor having a firmware. Further, although in this embodiment, the controller: the memory array 30 separate, but the -(4) and "memory array" can be integrated into a single die to save cost. In this embodiment, the design of the controller 20 is very similar to that used for rewritable memory technology. —Control =. An example of the difference is that the controller 20 does not require any wear leveling or is associated with the other logic of the volatile memory, although the five steps shown here may include such additional steps and functions, but It will probably not be the best The write-only memory array 30 includes a plurality of field programmable single-write memory cells. The field programmable single-write memory cells are fabricated in an initial, unprogrammed digital state and can be fabricated after fabrication. One time switch 124767.doc 200832132 to an alternate, stylized digital memory unit. For example, the original, unprogrammed digit state can be identified as the logical i (or logical 〇) state, and The stylized digit state is identified as the logical 〇 (or logic). Because the memory cells are of a write-only type, once switched to a stylized digit state (eg, the logical state), Method Recovery - A raw, unprogrammed digital state of the location (eg, the logical (1) shape t) replaces a once-programmable (ie, write-only) memory array, and the memory array 30 can employ a The form of a small number of programmable (FTp) memory 歹 J, which can be written more than once but not as much as a memory array of memory arrays. At the same time, the memory device (7) may contain an extra memory array (only one: owed, less programmable, or more). The write-once memory array 3 can be in 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). Machine), or an optical storage device (for example - (3) or then). When having the form of a solid memory cell, the memory cell it in the memory array can be organized in a two or three dimensional manner. In a particular embodiment, the memory array 3() is a three-dimensional array, such as that described in U.S. Patent No. 6, </ RTI> </ RTI> </ RTI> </ RTI> </ RTI> </ RTI> <RTIgt; In some other embodiments, an erasable volatile memory, such as an erasable flash memory, is used. μ To illustrate these specific embodiments, the DOS FAT rights system (such as used in Windows operating systems) will be used as an example of a multi-writing system. It should be noted that these specific embodiments can be used in conjunction with other types of multi-files 124767.doc 200832132 systems. Referring again to the figure, Figure 2 is a diagram showing the various logical structures of the Fat 12/16-based memory card, which are typical of the system structure. As used herein, a "archive system structure" refers to any of the command classes 3L used to describe a partition in memory, a memory space within the partition, and/or a file system that may or may not be used with the partition. data. Examples of file system structures include, but are not limited to, a master boot record, a partition boot record, a file allocation table ("FAT" or "FAT table"), a directory, and a subdirectory. The master boot record (MBR) The boot information for storing the card (ie, the memory device 10) and the starting position of each logical partition. For example, most of the memory cards shown herein contain only one logical partition. In this example, for example, The partition boot record (pBR) of the cluster size, cluster number, partition type, partition name and other information starts at address 0x4000 〇FAT1 corresponds to FAT table 1, which contains each file, directory and other tribute on the card 10 A linked list of the number of clusters. FAT2 corresponds to FAT Table 2. Finally, the root directory and archive data area begins at entity address 0C200. This region is divided into clusters, which correspond to the number of clusters in each fat table. Note that this is only an example of a FAT file system, and it is by no means intended to limit the invention. Different locations of each structure, different cluster sizes, and even different file systems can be associated with DETAILED DESCRIPTION OF THE INVENTION A FAT file system can be used in conjunction with both logical addressing and entity-addressed memory. A logical addressing memory maps the data provided by the host to a location in memory and records the mapping The address assigned to the data by the host is treated as a logical address, and these addresses are not associated with the location of the specific memory in the physical memory 124767.doc -11 - 200832132. - The general method uses _ entity to logic The address table, which is read or calculated at startup and then stored in the volatile memory of the controller 20. In the 0PT memory, the updated data is allocated by the host to the cluster that was previously allocated to the old data. Therefore, occupying the same logical address range ', but must occupy extra space in the physical memory. The FAT refers to the difference between the logical address range that is not available and the physical address range actually available in the memory. This will cause problems. For example, the host will attempt to write a full memory. In a real-address memory, the data from the host is based on the host: the address provided. Stored. Because &, the address provided by the host is treated as a physical address, not just a logical address, and no entity-to-logical address translation table is required. However, as long as the data is not stored on the host There may be some exceptions in this system. In general, some kind of scheme is needed to track such data. One scheme uses a memory page that cannot be seen by the host, sideband area, (sideband area) (or, an area of the area). An example of such a solution is given in US Patent Application No. 2006/0047920. In a specific embodiment, the memory array is 528. The byte page is organized for each unit, and each page stores a segment, but the host transmits the data in a 512-bit segment, leaving extra space for the 16-bit tuple. These additional 16-bits are referred to as sidebands and can be used by the controller to store additional information including, but not limited to, ECC data, data and address verification flags, and remapping indicators. In this scheme, if the page has been remapped, the controller 20 uses the portion of the sideband to store a physical address. Writing to this page for the first time on the right will not require any remapping metrics, as the physical and logical addresses will be the same for the actual 124767.doc •12- 200832132. When the host 5 attempts to correct the data, the controller writes (4) the data to m, and stores the physical address of the location in the sideband of the old location. In general, the 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 logical addressed memory. This description refers to logically addressed memory 'but it should be understood that - in general, __ specific predetermined logic can be applied to the entity
映射’將-實體定址記憶體作為—邏輯定址記憶體予以處 理。在邏敎址或實體定址系統中,若—主機更新或解除 分配-OTP記憶體中之資料,則該主機可(透過FAT)看見較 該實體記憶體中實際可用更多之記憶體的可用空間。 用以解決解釋控制器使用實體記憶體之問題的—簡單方 式係於銷售該記憶體裝置1()之時間前保留記憶體空間供控 制器使用。此類空間無法供該主機使用。該控制㈣將使 用此靜態記憶體空間數量,直到不再留下任何保留空間為 止。此時,該控制㈣可發信—卡錯誤,允許非映射 之任何寫入,或者許多其他操作。吾人可看見稱為靜態分 配之此方法將為所期待,因為其限制—使用者可執行之操 作的數目及大小。 μ 在圖3所示的一替代動態分配方案中,該主機及控制器 兩者從相同邏輯位址空間3〇1分配叢集。在一範例中,如 圖3中所不’—主機從該可用位址空間3〇1之頂部分配叢 集’而該控制器從該可用位址Μ之底部分配叢集。因 此,該主機分配空間3〇3用於新資料,而該控制器分配空 124767.doc •13- 200832132 間3。05用於已更新資料。以此方式,I主機分配空間與控 制器分配空間其間之可用空間之劃分無預定限制。然而, 必須以某種方式向該主機報告該控制器之空間使用。 在一方案中,該控制器所使用之空間係透過傳送至該主 機之膽資訊而傳達至該主機。以此方式,當該記憶體中 之可用實體空間縮減時’如該中所示之主機可用之邏 輯空間亦縮減。The mapping 'processes the entity-addressed memory as a logically addressed memory. In a logical address or entity addressing system, if the host updates or de-allocates the data in the OTP memory, the host can (through the FAT) see more free space than the actually available memory in the physical memory. . The simple way to solve the problem of interpreting the controller using physical memory is to reserve the memory space for use by the controller before the time to sell the memory device 1(). This type of space is not available to this host. This control (4) will use this amount of static memory space until no more reserved space is left. At this point, the control (4) can send a letter-card error, allow any writes that are not mapped, 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 as 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, the host allocates a cluster from the top of the available address space 〇1 and the controller allocates the cluster from the bottom of the available address Μ. Therefore, the host allocates space 3〇3 for new data, and the controller allocates an empty 124767.doc •13- 200832132 for 3.05 for updated data. In this way, there is no predetermined limit on the division of the available space between the I 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 the 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 therein is also reduced.
在圖4A之範例中,該控制器2〇藉由寫入健存於該非揮發 性記憶體中之FAT表4〇7而通知該主機5空間已用於重映 '。使用-例如此系統之記憶體系統範例提供於美國專利 申請公開案第2GG6/GG47920號。當需要額外記憶體時,正 如該主機5將7分配-叢集給檔案資肖,該控制器20可分配 -新叢集給其本身使用。亦即,要額外空間用於重映 射時,此方㈣態更新該FAT表4〇7。㈣施方式之利益在 於:不限制該主機5及使用者可執行之重映射/檐案修正之 數目。該控制H2G將允許其進行重映射,直到該卡完全滿 為止。在此具體實施例中,當大部分主機從頂部向下分配 記憶體時,該控制器20從底部向上分配記憶體(如圖2中所 示,從邏輯空間之開始卜此分配方案將允許該控制器⑼ 及主機5獨立分配記憶體。此亦允許該控制器汕認可當該 二區段碰撞時,該卡!0全滿。在該卡全滿時,該控制器2〇 可選擇設定其永久及暫時寫人保護暫存器、發信給該主機 5不可能再寫入該卡10。另外,當該卡全滿時一控制器 可使用某種其他系統防止額外寫入。一般而言,該主機將 124767.doc •14- 200832132 不4圖寫入一全滿卡,因為該FAT指示該邏輯位址空間全 滿(右该主機快取fat資料,則該快取FAT將不顯示一全滿 邏輯位址空間)。一無快取系統將知道留下多少記憶體, 而一已快取系統將於啟動時讀取該FAT表,以看看該特定 作業階段之前使用多少重映射空間。 在一邏輯定址記憶體中,使用實體記憶體空間不必遵循 使用邏輯空間所遵循之相同型樣。圖4B至圖4D說明當該 控制器及主機如圖4 A中所示而儲存資料及分配邏輯位址空 間時如何將實體記憶體空間用於資料儲存。 圖4B顯不在一初始狀態之該實體記憶體4〇9,其中該實 體記憶體的一部分411用以儲存控制資料,而且其餘實體 η己憶體409未程式化。控制資料可包含該控制器所產生之 二貝料,其用以官理該記憶體陣列中之資料,例如由該控制 器用於邏輯實體映射之資料。一般而言,此類控制資料無 法由該主機看見。此範例中,該主機所供應之資料(包含 φ MBR及FAT)視為主機資料。此範例中,控制資料係於一初 始格式化操作期間所產生。 圖4C顯示該主機第一次傳送欲儲存於實體記憶體4〇9中 之主機資料後之實體記憶體。該主機資料被寫入至該控制 • 資料後之下一可用實體位置413。於寫入該主機資料後, 必須更新該控制資料之至少一部分’以反應該新寫入主機 資料。此已更新控制資料被寫入至該主機資料後之可用的 下-實體位置415。此已更新控制資料導致該先前已健存 控制資料之一部分417作廢。 124767.doc -15- 200832132 圖4D顯示該主機傳送已更新資料以取代先前程式化主機 資料之一部分後之實體記憶體409。例如,該主機可傳送 具有與先雨已儲存區段相同之邏輯位址之主機資料的若干 區段。該已更新主機資料係儲存於該下一可用實體位置 419中。然後與該已更新主機資料相關之控制資料係儲存 於該下一可用實體位置421中。已更新主機資料使該原始 主機貧料的一部分423作廢。已更新控制資料使該第一已 更新控制資料的一部分425作廢。因此,該實體記憶體空 間之部分係由已作廢資料部分417、423、425所佔用,該 等已作廢資料部分包含已作廢主機資料及已作廢控制資 料。該控制器可分配邏輯空間,以解釋實體空間之此損 失’而作廢主機資料及控制資料。 應’主心靜悲及動恶重映射並不互斥。吾人可選擇在一 單一產品中實施此二者。例如,即使該卡全滿,而且無法 新增任何額外檔案,一使用者可能希望刪除或修正檔案。 若預刀配一没疋置之記憶體並且在正常操作下未使用,則 可允許額外資料修正。例如,該卡10可具有設定於一旁之 :〇〇 KB之靜態重映射’直到由於主機及控制器分配碰撞使 該卡10出現全滿才由該控制器20加以使用。此時,該控制 益20可允許將該主機之額外資料寫入至該靜態分配區,直 到所欲操作完成為止。稍後,當對於大部分使用而言該卡 本上王滿%,可使用智慧濾波器允許例如刪除及換名 之某些使用者操作出現於該靜態區域,而其他操作將導致 一錯誤。 124767.doc -16 - 200832132 圖5顯示圖4的一替代方垒 ,^ c ^ _ 曰代万案。在圖5所示方案中,如以 前,該主機427從該頂部公献普& 攸发』貝砟刀配叢集,而且該控制器429從該 底部分配叢集。然而,此丨主、口 士 叩此h況中,僅將藉由該主機427之 叢集分配記錄在儲存於該非揮發性記憶體4 3 3之F AT 4 3工 中。因此,儲存於非揮發性記憶體433中之fat 43i之複本 顯示分配叢集0至2, 而且顯示叢集3至9可用於額外資料儲 存該控制器429之叢集7至9之分配並未記錄在^^丁 431In the example of Fig. 4A, the controller 2 notifies the host 5 that the space has been used for replaying by writing the FAT table 4〇7 stored in the non-volatile memory. An example of a memory system using, for example, such a system is provided in U.S. Patent Application Publication No. 2 GG6/GG47920. When additional memory is required, just as the host 5 allocates 7 clusters to the archives, the controller 20 can allocate - new clusters for its own use. That is, when additional space is needed for re-mapping, this side (four) state updates the FAT table 4〇7. (4) The benefit of the application method is: the number of remapping/file corrections that can be performed by the host 5 and the user is not limited. This control H2G 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, from the beginning of the logical space, this allocation scheme will allow The controller (9) and the host 5 independently allocate memory. This also allows the controller to recognize that when the two segments collide, the card !0 is full. When the card is full, the controller 2 can select to set it. The permanent and temporary write protection register, sending to the host 5 is no longer possible to write to the card 10. In addition, a controller can use some other system to prevent extra writes when the card is full. The host writes 124767.doc •14-200832132 not 4 to a full card, because the FAT indicates that the logical address space is full (the right cache fetch data, the cache FAT will not display one) Fully logical address space.) A no-cache system will know how much memory is left, and a cached system will read the FAT table at startup to see how much remapping space is used before that particular job phase. In a logically addressed memory, use The volume memory space does not have to follow the same pattern as the logical space is used. Figures 4B to 4D illustrate how the physical memory is stored when the controller and host store data and allocate logical address space as shown in Figure 4A. The space is used for data storage. Figure 4B shows the physical memory 4〇9 in an initial state, wherein a portion 411 of the physical memory is used to store control data, and the remaining entities η 忆 409 are not programmed. The utility model may include two materials generated by the controller for managing information in the memory array, such as data used by the controller for logical entity mapping. Generally, such control data cannot be seen by the host. In this example, the data supplied by the host (including φ MBR and FAT) is regarded as the host data. In this example, the control data is generated during an initial formatting operation. Figure 4C shows the host's first transmission desire. The physical memory stored in the host data in the physical memory 4〇9. The host data is written to the available physical location 413 after the control data. After the host material, at least a portion of the control data must be updated to reflect the newly written host data. The updated control data is written to the available lower-physical location 415 after the host data. This updated control data The portion 417 of the previously stored control data is invalidated. 124767.doc -15- 200832132 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 Transmitting a plurality of segments of host data having the same logical address as the first rained saved segment. The updated host data is stored in the next available entity location 419. The control profile associated with the updated host profile is then The system is stored in the next available entity location 421. The host material has been updated to invalidate a portion 423 of the original host lean. 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 logical space to interpret this loss of physical space and invalidate host data and control data. Should be 'mindfulness of the heart and the evil map is not mutually exclusive. We can choose to implement both in a single 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. If the pre-tool is equipped with a memory that is not set and is not used under normal operation, additional data correction may be allowed. For example, the card 10 can have a static remapping 'set to one side: 直到 KB until the card 10 is fully full due to the host and controller assignment collisions. At this point, the control benefit 20 may allow additional data for the host to be written to the static allocation area until the desired operation is completed. Later, when the card is over % 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 - 200832132 Figure 5 shows an alternative square barrier of Figure 4, ^ c ^ _ 曰 代 万. In the arrangement shown in Figure 5, as before, the host 427 from the top public & 』 』 砟 砟 砟 , , , ,, and the controller 429 distributes the cluster from the bottom. However, in this case, only the cluster allocation by the host 427 is recorded in the F AT 4 3 stored in the non-volatile memory 43 3 . Therefore, the replica of the fat 43i stored in the non-volatile memory 433 shows the distribution clusters 0 to 2, and the clusters 3 to 9 are displayed for additional data storage. The allocation of the clusters 7 to 9 of the controller 429 is not recorded in the ^ ^丁431
而記錄在儲存於一揮發性記憶體437内的一紀錄435。此情 況中,忒揮發性纪憶體437係一控制器429中的一靜態隨機 存取記憶體(SRAM)、然而亦可使用其他揮發性記憶體。 此情況中,該紀錄顯示該主機所分配之叢集及該控制器所 分配之叢集兩者。此範例中之紀錄僅記錄如分配或解除分 配之一叢集之狀態。該紀錄中未儲存任何額外資訊。反 之,該FAT不僅記錄是否分配一叢集,同時提供例如一鏈 中之下一叢集或一棺案結束指示器的額外資訊。對於每一 叢集,該紀錄435可具有一單一位元(用以指示分配/解除分 配),而且可視為一位元映射或一叢集映射。 當孩主機427請求FAT資訊時(一般而言藉由傳送對一或 多個FAT區段的一讀取請求),控制器429提供FAT資訊,其 反應儲存於該記憶體433之FAT 43 1中之FAT資訊及儲存於 揮發性記憶體437之紀錄435中之分配資訊兩者。FAT資訊 之請求部分係讀取自該非揮發性記憶體433,而且傳送至 該控制器429中的一編輯器439。該紀錄435亦讀取自揮發 性記憶體43 7,而且由該編輯器439用以編輯或修正來自該 124767.doc -17· 200832132 非揮發性記憶體433之FAT資訊。除了已記錄於fAt 43 藉由該主機427之分配,該編輯器439改變該FAT資訊,以 反應該控制器429之分配。藉由該控制器429之分配可藉由 以相容於該主機427之FAT方案的任何適合方式標示已分配 叢集而指示。例如,可將該等叢集標示成壞叢集、保留叢 集或已使用叢集。然後將該已修正FAT資訊441傳送至該主 機427。以此方式,通知該主機427該非揮發性記憶體中之 不可用空間,其係由該控制器429之重映射操作所致而不 可用。此防止該主機427嘗試分配該控制器C9已使用之叢 集。在一具體實施例中,顯示將該控制器已分配之叢集分 配給該控制器所建立的一檔案。該檔案可具有例如,,未使 用容量’’的一檔名,用以指示其並非一主機檔案。此一檔 案係藉由一目錄項加以顯示,該目錄項係於該主機請求儲 存在該記憶體之目錄資訊時所提供。可以修正FAT資訊的 一類似方式將該目錄項新增至儲存於記憶體中的一目錄。 此允許一使用者看見控制器操作導致多少容量無法使用。 尤其’此允許一使用者解釋一記憶卡之所述容量與達到一 卡全滿條件前所儲存之使用者資料量間的任何明顯差異。 可形成該編輯器,而成為該控制器中的一專屬電路,或者 可透過韌體或硬體與韌體之某種組合加以實施。 當最先接通該記憶體系統時,初始將產生一紀錄。一控 制器可掃描該記憶體,以構建該初始紀錄。該主機所分配 之叢集可藉由頃取該pAT而簡單地偵測。該控制器所分配 之叢集可藉由掃描該記憶體本身或者藉由掃描用以指示記 124767.doc • 18 - 200832132 憶體之使用之管理結構而獲得。當該控制器實現重映射操 作時,該控制器使用額外叢集,而且將此使用反應在該紀 錄中。初始時,該控制器可使用該控制器專屬之某種空 間。稍後,當此類專屬空間已全部使用時,該控制器可開 始使用亦由該主機使用之邏輯空間,因而該控制器亦開始 將此空間之使用記錄在該紀錄中。一般而言,當已作廢資 料數量達到一限制時,該控制器開始使用該主機可用之邏 輯空間。此限制係由可用之備用實體容量之數量所決定。 在一範例中,該限制係該記憶體之總實體容量減記憶體之 邏輯容量(如該主機所見到)減控制資料所要求之某種最小 空間及某種操作空間。某些情況中,於使用該實體記憶體 的一對應部分前,該控制器可在一紀錄中指示邏輯空間之 使用例如,只要一控制器已排定將要求實體記憶體中某 種空間之某種操作,該控制器可保留此空間,藉由在該紀 錄中扣不其無法使用而使其無法由該主機加以使用。藉由 “主機之为配亦可在該紀錄中反應,但此並非必要,因為 藉由違控#彳器之分配記錄在該FAT中。彳目肖於將主機及控 制為兩者分配記錄於該FAT中之範例,在此範例中,對該 非揮i性δ己憶體之寫入數目已減少。因為存在較少對該非 揮發性圮憶體之FAT寫入,所以需要較少空間儲存該 FAT。 圖6顯不一主機非序列地分配叢集的一範例。一般而 ° 主機以序列次序在一未寫入記憶體分配叢集。然 而並非永遠為該情況。只要一主機非序列地分配叢集, 124767,doc -19- 200832132 一般而言,較佳地當主機分配叢集與控制器分配 時將不產生一卡全滿條件。在本 —/、 ^ 4 τ 初始分夕堂 集映射651係從儲存於該記憶體中之ρΑτ 會 用其他來源產生該叢隼映身n 3獲侍(亦可使 序列地分配之叢隼。缺德修不兮、心 田落主機非 蕞集’、、、後修正該初始分配之叢集映射 ,以反應該控制器所分配之叢集,而提供一完敫叢集 映射655。該控制器分配叢集從該位址範圍之底::伸:Recorded in a record 435 stored in a volatile memory 437. In this case, the volatile memory 437 is a static random access memory (SRAM) in a controller 429, although other volatile memory may be used. In this case, the record shows both the cluster allocated by the host and the cluster allocated by the controller. The records in this example only record the status of a cluster as assigned or deallocated. No additional information is stored in the record. Instead, 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 a file end 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 child 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 43 1 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 43 7 and is used by the editor 439 to edit or correct the FAT information from the 124767.doc -17·200832132 non-volatile memory 433. In addition to having been recorded at fAt 43 by the host 427, 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 manner, the host 427 is notified of the unavailable space in the non-volatile memory, which is not available due to the remapping operation of the controller 429. This prevents the host 427 from attempting to allocate a cluster that the controller C9 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, for example, a file name of the unused capacity '' to indicate that it is not a host file. This file is displayed by a directory entry that is provided when the host requests storage of directory information for the memory. A directory in which the FAT information can be modified can be added to a directory stored in the memory. This allows a user to see 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 editor can be formed to become a dedicated circuit in the controller, or can be implemented by some combination of firmware or hardware and firmware. 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 cluster allocated by the host can be simply detected by taking the pAT. The cluster allocated by the controller can be obtained by scanning the memory itself or by scanning a management structure for indicating the use of the memory. 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 begin to use the logical space that is also used by the host, so the controller also begins recording the use of this space in the record. In general, when the amount of scrapped material reaches a limit, the controller begins to use the available logical space for the host. This limit is determined by the amount of spare entity capacity available. In one example, the limit is the total physical capacity of the memory minus the logical capacity of the memory (as seen by the host) minus some minimum space required by the control data and some operational space. In some cases, prior to using a corresponding portion of the physical memory, the controller may indicate the use of the logical space in a record, for example, as long as a controller has been scheduled to require some space in the physical memory. In this operation, the controller can reserve this space, and it cannot be used by the host by being unusable in the record. It can also be reflected in the record by the "host", but this is not necessary, because the allocation of the violation control device is recorded in the FAT. The project records the host and control as both. In the example of the FAT, in this example, the number of writes to the non-swifty δ-recall has been reduced. Since there are fewer FAT writes to the non-volatile memory, less space is required to store the FAT Figure 6 shows an example of a host non-sequentially allocating a cluster. Typically, the host is in a sequence of unwritten memory allocation clusters. However, this is not always the case. As long as a host non-sequentially allocates clusters, 124767, doc -19- 200832132 In general, it is better to not generate a card full condition when the host allocates the cluster and the controller is allocated. In the present - /, ^ 4 τ initial divides the set map 651 from the storage The ρΑτ in the memory will be generated by other sources. The 隼 隼 n n 获 获 ( ( ( ( ( ( ( ( ( ( ( ( ( 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获 获Initially allocated cluster map to It should be assigned the cluster controller, to provide a complete mapping Jiao cluster 655. The cluster controller assigns the address range extending from the bottom :::
主機分配叢集的一區域,而且亦在主機分配叢集之此區域 :方延伸。因A,在此方案中,當主機分配叢集與控制器 分配叢集相遇時並未產生—記憶體全滿條件。取而代之, 该控制器尋求用於-重映射操作之下—可用叢集。一記憶 體全滿條件可僅於符合例如分配該位址範圍中所有叢集之 某種其他條件時出現。當該主機請求fat資訊時,從該非 揮發性記憶體讀取該FAT資訊,而且於傳送至該主機前加 、U正圖6顯示如藉由儲存於該非揮發性記憶體中之fat 653所指不之叢集分配的一第一映射6S1。圖6顯示如對該 主機所指示之叢集分配的一第二映射655。該第二映射包 含該控制器所分配之叢集以及該主機所分配之叢集。在此 方案中,並非必須該控制器從該位址範圍的一端序列地分 配叢集。可使用混合主機分配叢集與控制器分配叢集的一 不同方案。 圖7顯示一導致一紀錄之改變之主機操作的一第一範 例。於該主機操作前,該FAT 761顯示叢集〇至2係由資料A 所佔用。圖7之FAT 761及紀錄763兩者顯示邏輯空間而非 124767.doc •20- 200832132The host allocates an area of the cluster, and also in this area of the host allocation cluster: the square extension. Because of A, in this scenario, when the host allocation cluster meets the controller allocation cluster, it does not generate a memory full condition. Instead, the controller seeks to be used under the -remap operation - the available cluster. A memory full condition may only occur when, for example, some other condition of all clusters in the address range is assigned. When the host requests the fat information, the FAT information is read from the non-volatile memory, and is sent to the host before, and the U is displayed as shown by the fat 653 stored in the non-volatile memory. A first map 6S1 that is not allocated by the cluster. 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. You can use a hybrid host to allocate a different scheme for clustering and controller allocation clustering. Figure 7 shows a first example of a host operation that results in a change in record. Before the host operates, the FAT 761 displays that the clusters to 2 are occupied by the data A. Both FAT 761 and record 763 of Figure 7 show logical space instead of 124767.doc •20- 200832132
實體空間之使用。該紀錄763亦顯示叢集0至2為已分配。 此日^未顯不任何其他叢集為已分配。然後該主機分配資料 Β給叢集〇至2。資料Β被寫入至實體記憶體之一新位置 處’該新位置係記錄於一實體至邏輯位址轉譯表中。更新 該FAT 761,以顯示分配給叢集〇至2之資料β。因此,由該 FAT 761所指示之已分配空間與以前相同。然而,該實體 圮fe體中使用較多空間,此係因為資料6被寫入至一新位 置,而且資料A仍然佔用另一位置。為了指示此使用,更 新該紀錄763,以顯示叢集7至9之使用。因此,該紀錄指 示使用六叢集,其對應於使用之實體記憶體數量。若此時 該主機請求叢集0至9之FAT資訊,則傳回給該主機之FAT 資訊將指示叢集〇至2及7至9係不可用。 圖8顯不一導致一紀錄之改變之主機操作的一第二範 例。於此主機操作前,該FAT 871顯示資料所佔用之叢集〇 至2。該紀錄873亦顯示此等叢集為已分配。然後該主機解 除分配叢集0至2。例如,該主機可嘗試刪除佔用叢集〇至2 之資料,其係例如藉由將叢集〇至2標示為可用,而且藉由 從該目錄移除分配給叢集0至2之檔案(在縮短一檔案之情 況中’可將叢集標示成不可用’而且以新長度更新該請 項)。此使叢集0至2可供將額外資料儲存於該ρΑτ 871中。 然而,該主機之操作使該實體記憶體中 ►工間不再可用。 為了反應該實體記憶體中之已使用空間, J 文研該紀錄,以 便如所使用而顯示叢集7至m時該主機請求叢集〇至9 之FAT資訊,則將顯示叢集7至9為不可田 ▲ J用。在一替代範例 124767.doc -21- 200832132 中’即使於叢集0至2由該主機解除分配並在fat中記錄為 解除分配後,該紀錄仍指示分配叢集〇至2。隨後,當該主 機請求叢集〇至2之FAT資訊時,指示其係待分配。在一些 情況中,此可能造成問題,因為該主機可能具有一分離之 紀錄(例如FAT的一快取部分),其指示解除分配叢集〇至 2 〇 以上範例指控制器使用記憶體空間儲存主機資料。然 而,其他情況中,該控制器可使用記憶體空間作為其他用 途,而且使用如所述的一紀錄解釋記憶體中之已使用空 間。可使用可抹除或OTP記憶體。在一範例中,運行於一 記憶卡中的一内嵌式應用程式可使用該非揮發性記憶體中 之空間。可追蹤藉由此一應用程式之一非揮發性記憶體中 之空間之使用並且透過揮發性記憶體中的一叢集映射將其 傳達至該主機。 另一具體實施例中,可使用揮發性記憶體中的一叢集映 射反應一根據一不同介面而操作之主機之分配。美國專利 申睛案第11/1 96,869號揭示兩主機介面共享記憶體中之相 同貝體區域之記憶體系統。一第一主機維護用以指示其邏 輯位址空間之使用的_ FAT,而—第二主機使用不要求 的-不同官理系統。然❿,修正該厦以顯示藉由該 第一主機之FAT中之邏輯空間之使用,該邏輯空間對應於 該實體記憶體中由該第二主機用以儲存資料m 替代配置中,取代修正該FAT以反應藉由該第二主機之活 動可維濩一叢集映射或類似紀錄以顯示此類使用。當該 124767.doc -22- 200832132 第-主機請求FAT資訊時,可根據該紀錄而讀取及修正該 FAT,以反應藉由該第一及第二主機兩者之記憶體之使 用0The use of physical space. The record 763 also shows that clusters 0 to 2 are assigned. This day ^ does not show any other clusters as assigned. The host then assigns the data to the cluster to 2. The data is written to a new location in the physical memory. The new location is recorded in an entity-to-logical address translation table. The FAT 761 is updated 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 uses more space in the body, because the data 6 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 requests FAT information for clusters 0 through 9 at this time, the FAT information returned to the host will indicate that clusters 2 to 2 and 7 to 9 are unavailable. Figure 8 shows a second example of host operation that results in a change in record. Before this host operation, the FAT 871 displays the cluster 〇 to 2 occupied 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 〇 to 2, which is indicated as being available, for example, by clustering 〇 to 2, and by removing the files assigned to clusters 0 to 2 from the directory (in shortening a file) In the case of 'can mark the cluster as unavailable' and update the request with the new length). This allows clusters 0 through 2 to store additional data in the ρΑτ 871. However, the operation of the host makes the work in the physical memory no longer available. In order to reflect the used space in the physical memory, J Wenyan records the record so that when the cluster 7 to m is displayed, the host requests the FAT information of the cluster 9 to 9, and the clusters 7 to 9 are displayed as unreachable. ▲ J used. In an alternative example, 124767.doc -21-200832132, even if clusters 0 through 2 are deallocated by the host and recorded as de-allocated in fat, the record indicates that the cluster is allocated to 2. Subsequently, when the host requests the FAT information of the cluster to 2, it is instructed to be allocated. In some cases, this may cause problems because the host may have a separate record (eg, a cache portion of the FAT) indicating that the deallocation cluster is 2 to 2 〇. The example refers to the controller using the memory space to store the host data. . However, in other cases, the controller can use the memory space for other purposes and use a record as explained to interpret the used space in the memory. Erasable or OTP memory can be used. In one example, an embedded application running on a memory card can use the space in the non-volatile memory. The use of space in the non-volatile memory of one of the applications can be tracked and communicated to the host via a cluster map in the volatile memory. 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 No. 11/1,096,869 discloses a memory system in which the two host interfaces share the same shell region in the memory. A first host maintains a _ FAT indicating the use of its logical address space, and a second host uses a different quorum system that is not required. Then, modifying the building to display the use of the logical space in the FAT of the first host, the logical space corresponding to the second host for storing the data m in the physical memory instead of modifying the configuration The FAT can respond to a cluster map or similar record by the activity of the second host to display such usage. When the 124767.doc -22-200832132 first host requests the FAT information, the FAT can be read and corrected according to the record to reflect the use of the memory of both the first and second hosts.
在圖9所不的|&例中,可使用揮發性記憶體中所維護 的一紀錄,以減少儲存於非揮發性記憶體中之FAT之讀取 數目。田主機4求-特定邏輯位址範圍的—或多個fat 區段891時HJt體控制器可檢查該範圍之紀錄,以決 定892是否已分配該範圍中之任何叢集。若該範圍中並無 分配叢集」則該控制器可藉由建立一或多個FAT區段893而 產生FAT貝汛,以反應此。因此,不需存取任何非揮發性 記憶體。若該紀錄指示分配請求之位址範圍中之叢集,則 -般而言讀取894儲存於非揮發性記憶體中之ρΑτ,以獲得 完全FAT資訊。可於傳送至該主機咖前根據該紀錄而修正 895讀取自該非揮發性記憶體之FAT。 可將藉由4控制器之叢集分配之紀錄當作—檔案加以維 羞在上述紹列中,僅將此播帛維護於揮H生記憶體中, 而且未儲存在該非揮發性記憶體中。然而,某些情況中, 可m案當作_電源切斷常式的部分或其他而分離儲 :於非揮發性記憶體中。當初始電源開啟該記憶體系統 ^此可減 > 在揮發性記憶體中產生一紀錄所需之時間。 、在-具體實_巾,該主機所分配之叢#及該控制器所 分配之叢集係於藉由比較該FAT所指示之分配與實際記憶 體使用之失效分析期間辨別。 記憶體空間係以一叢集為單位加以分配。叢集大小一般 124767.doc -23- 200832132 f吏用之記憶體系統’而且可能隨著記憶體系統而 、史動。在-範例中一叢集由32區段之資料所組成。〇要 該非揮發性記憶體係可抹除,一區塊(最小抹除單位)之大 小亦可為32區段。其他範例中,—區塊可含有三❹個叢 集。 本文參照之所有專利、專利申請案、文章、書籍、說明 書、其他公告、文件及事物全部以引用的方式併入本文中 而作為所有用途。在任何併入之公開案、文件或事物與本 文件之正文間之一術語之定義或使用之任何不一致或衝突 之範圍内,應優先採用該術語在本文件中之定義或使用。 雖然已就本發明之某些較佳具體實施例而說明本發明之 各方面,但是應瞭解,本發明有權在所附申請專利範圍之 全部範疇内受到保護。 【圖式簡單說明】 圖1顯示與包含一唯寫一次記憶體陣列之一記憶體裝置 進行通信的一主機裝置。 圖2顯示該唯寫一次記憶體陣列的一記憶體映射。 圖3顯示一記憶體映射,其包含該唯寫一次記憶體陣列 内之空間之使用,其中該主機從一端分配叢集,而且該控 制器從該位址範圍之另一端分配叢集。 圖4A顯示一唯寫一次記憶體之邏輯位址空間的一記憶體 映射,包含一檔案分配表(FAT),該檔案分配表反應藉由 該主機之分配及藉由該控制器之分配兩者。 圖4B顯示儲存主機資料前之圖4A之記憶體之實體位址 124767.doc -24- 200832132 空間的一映射。 圖4C顯示儲存主機資料並且更新控制資料以反應該已儲 存主機資料後之圖4 B之記憶體之實體位址空間的一映射。 圖4D顯示接收及儲存對該主機資料的—更新、同時儲存 已更新控制資料後之圖4C之記憶體之實體位址空間的一映 射。 圖5顯示一替代具體實施例,其中儲存於非揮發性記憶 體中的一FAT反應藉由該主機之分配,而且儲存於揮發性 記憶體中的一紀錄反應非藉由該控制器之分配,組合來自 該FAT之資訊與該紀錄,以回應對於fat資訊的一主機請 求。 圖6顯示一具體實施例,其中一主機非序列地分配一記 憶體中之空間’而且一控制器以一適應該分配空間之方式 分配空間。 圖7顯示一具體實施例,其中一主機分配非揮發性記憶 體之一紀錄中所反應之已更新資料。 圖8顯示一範例,其中一主機解除分配若干叢集,而且 更新該紀錄’以指不相專數目之叢集之使用。 圖9顯示一使用揮發性記憶體之一紀錄減少非揮發性記 憶體讀取數目之技術的一流程圖。 【主要元件符號說明】 5 主機裝置 7 多寫檔案系統 10 記憶體裝置 124767.doc -25· 200832132In the & example of Figure 9, a record maintained in the volatile memory can be used to reduce the number of FAT reads stored in the non-volatile memory. The HJt body controller may check the record of the range when the field host 4 seeks - a particular logical address range - or a plurality of fat segments 891 - to determine 892 whether any of the clusters in the range have been allocated. If there is no distribution cluster in the range, then the controller can generate FAT shells by establishing one or more FAT segments 893 to react. 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 ρ τ stored in non-volatile memory is generally read 894 to obtain full FAT information. The FAT read from the non-volatile memory can be corrected 895 based on the record before being transmitted to the host coffee. The record of the cluster assignment by the 4 controllers can be regarded as a file-shake. In the above list, only the broadcast is maintained in the memory and is not stored in the non-volatile memory. However, in some cases, the case can be stored as part of the _ power-off routine or otherwise stored in non-volatile memory. When the initial power is turned on, the memory system ^this can be reduced > the time required to generate a record in the volatile memory. The cluster allocated by the host and the cluster allocated by the controller are identified by comparing the allocation indicated by the FAT with the failure analysis period of the actual memory usage. The memory space is allocated in units of a cluster. The size of the cluster is generally 124767.doc -23- 200832132 f memory system used and may move with the memory system. In the example - a cluster consists of 32 segments of data. The non-volatile memory system can be erased, and the size of one block (minimum erase unit) can also be 32 segments. In other examples, the block can contain three clusters. All patents, patent applications, articles, books, descriptions, other publications, documents, and matters referred to herein are hereby incorporated by reference in their entirety for all purposes. To the extent that there is any inconsistency or conflict between the definition or use of a term between any incorporated publication, 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 certain preferred embodiments of the invention, it should be understood that the invention BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 shows 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 use of space within the write-only memory array, where the host allocates clusters from one end and the controller allocates clusters from the other end of the address range. 4A shows a memory map of a logical address space of a write-only memory, including a file allocation table (FAT), which reflects the allocation by the host and the allocation by the controller. . Figure 4B shows a mapping of the physical address of the memory of Figure 4A before storing the host data 124767.doc -24- 200832132. Figure 4C shows a mapping of the physical address space of the memory of Figure 4B after storing the host data and updating the control data to reflect the stored host data. Figure 4D shows a mapping of the physical address space of the memory of Figure 4C after receiving and storing the update of the host data while storing the updated control data. Figure 5 shows an alternative embodiment in which a FAT reaction stored in a non-volatile memory is allocated by the host, and a recorded response stored in the volatile memory is not distributed by the controller. The information from the FAT is combined with the record in response to a host request for fat information. Figure 6 shows an embodiment in which a host non-sequentially allocates space in a memory object' and a controller allocates space in a manner that accommodates the allocated space. Figure 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 refer to the use of a different 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 file system 10 Memory device 124767.doc -25· 200832132
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 Edit 441 Corrected slot allocation table information 651, 655 cluster mapping 761, 871 file allocation table 124767.doc -26-