TWI387878B - A nand flash memory controller exporting a logical sector-based interface - Google Patents
A nand flash memory controller exporting a logical sector-based interface Download PDFInfo
- Publication number
- TWI387878B TWI387878B TW96130794A TW96130794A TWI387878B TW I387878 B TWI387878 B TW I387878B TW 96130794 A TW96130794 A TW 96130794A TW 96130794 A TW96130794 A TW 96130794A TW I387878 B TWI387878 B TW I387878B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- interface
- controller
- host
- storage system
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
本發明係關於記憶體設備(諸如快閃記憶體設備),且更特定言之,本發明係關於一種記憶體設備,其之控制器輸出一以邏輯區段為基礎之介面。The present invention relates to memory devices (such as flash memory devices) and, more particularly, to a memory device whose controller outputs a logical segment based interface.
快閃記憶體設備久已為吾人所知。通常,一快閃記憶體內之每一單元儲存一個資訊位元。傳統上,儲存一位元之方式係支援單元之兩個狀態-一個狀態表示邏輯"0"且另一狀態表示邏輯"1"。在一快閃記憶體單元中,該兩個狀態係藉由使一浮動閘極位於單元之通道(該區域連接該單元之電晶體的源極元件與汲極元件)上方且具有針對儲存於此浮動閘極內之電荷量的兩個有效狀態來實施。通常,一個狀態係在浮動閘極中具有零電荷且為在被抹除後該單元之初始未寫入狀態(通常被界定為表示"1"狀態)且另一狀態係在浮動閘極中具有某一定量之負電荷(通常被界定為表示"0"狀態)。在該閘極中具有負電荷導致該單元之電晶體之臨限電壓(亦即,必須被施加至電晶體之控制閘極以便導致該電晶體導電的電壓)增加。現可藉由檢查該單元之臨限電壓來讀取所儲存之位元-若臨限電壓係處於較高狀態,則位元值係"0",且若臨限電壓係處於較低狀態,則位元值係"1"。實際上,無需精確地讀取單元之臨限電壓-僅需正確地識別該單元當前處於該兩個狀態中之哪一狀態。為彼目的,與一處於該兩個狀態之間的中間處之參考電壓值進行比較,且因此判定單元之臨限電壓係低於還是高於此參考值就足夠了。Flash memory devices have long been known to us. Typically, each unit of a flash memory stores an information bit. Traditionally, the way to store a bit is the two states of the support unit - one state represents logic "0" and the other state represents logic "1". In a flash memory cell, the two states are located above the channel of the cell (the source is connected to the source and drain elements of the cell of the cell) by a floating gate Two effective states of the amount of charge in the floating gate are implemented. Typically, a state has zero charge in the floating gate and is the initial unwritten state of the cell after being erased (generally defined as indicating a "1" state) and the other state is in the floating gate A certain amount of negative charge (usually defined as representing a "0" state). Having a negative charge in the gate results in an increase in the threshold voltage of the cell of the cell (i.e., the voltage that must be applied to the control gate of the transistor to cause the transistor to conduct). The stored bit can now be read by checking the threshold voltage of the cell - if the threshold voltage is in a higher state, the bit value is "0", and if the threshold voltage is in a lower state, Then the bit value is "1". In fact, there is no need to accurately read the threshold voltage of the cell - it is only necessary to correctly identify which of the two states the cell is currently in. For each purpose, it is sufficient to compare the reference voltage value in the middle between the two states, and thus the threshold voltage of the determining unit is lower or higher than the reference value.
圖1A圖解展示了此係如何工作的。特定言之,圖1A展示了大量單元之臨限電壓之分布。因為在快閃設備中之單元在其特徵與性能方面並不完全相同(例如,由於雜質濃度之微小變化或矽結構之缺陷),所以將相同程式化操作應用於所有該等單元並不會導致所有該等單元皆具有完全相同之臨限電壓。(注意,由於歷史原因,將資料寫入至一快閃記憶體通常被稱作"程式化"該快閃記憶體。術語"寫入"與"程式化"在本文中可互換使用)。實情為,臨限電壓以類似於圖1A中所示之方式而分布。儲存值"1"之單元通常具有一負臨限電壓,使得大多數單元具有一接近由圖1A之左峰值所示之值的臨限電壓,同時某些較小數目之單元具有較低或較高之臨限電壓。類似地,儲存值"0"之單元通常具有一正臨限電壓,使得大多數單元具有一接近由圖1A之右峰值所示之值的臨限電壓,同時某些較小數目之單元具有較低或較高之臨限電壓。Figure 1A illustrates how this system works. In particular, Figure 1A shows the distribution of threshold voltages for a large number of cells. Because the cells in a flash device are not identical in their characteristics and performance (for example, due to small changes in impurity concentration or defects in the germanium structure), applying the same stylized operation to all of these cells does not result in All of these units have exactly the same threshold voltage. (Note that for historical reasons, writing data to a flash memory is often referred to as "stylizing" the flash memory. The terms "write" and "stylized" are used interchangeably herein). The reality is that the threshold voltage is distributed in a manner similar to that shown in Figure 1A. A cell storing a value of "1" typically has a negative threshold voltage such that most cells have a threshold voltage close to the value shown by the left peak of Figure 1A, while some smaller number of cells have lower or lower High threshold voltage. Similarly, a cell storing a value of "0" typically has a positive threshold voltage such that most cells have a threshold voltage close to the value shown by the right peak of Figure 1A, while some smaller numbers of cells have Low or higher threshold voltage.
近年來,一新穎種類之快閃設備已出現在市場上,其使用一被習知稱為"多位準單元"或簡稱為MLC的技術。(此命名法會使人誤解,因為先前類型之快閃單元亦具有一個以上之位準:其具有兩個位準,如上文所描述。因此,在本文中將該兩種快閃單元稱作"單一位元單元"(SBC)及"多位元單元"(MBC))。由MBC快閃設備所帶來之改良係在每一單元中儲存兩個位元。(原則上,MBC亦包括每單元儲存兩個以上之位元。為簡化解釋,本文中強調兩位元狀況。然而,應理解,本發明同等適用於支援每單元兩個以上之位元的快閃記憶體設備)。為使單一單元儲存兩個資訊位元,該單元必須能夠處於四個不同狀態中之一者中。由於單元之"狀態"係由其臨限電壓來表示,所以清楚的是一MBC單元應支援其臨限電壓的四個不同有效範圍。圖1B展示了一典型MBC單元之臨限電壓分布。如所預期,圖1B具有四個峰值,每一峰值對應於該等狀態中之一者。對於SBC狀況而言,每一狀態實際上為一臨限電壓範圍且並非為一單一臨限電壓。當讀取單元之內容時,僅必須保證單元之臨限電壓所處的範圍被正確識別。要獲得一MBC快閃設備之一先前技術實例,見Harari之美國專利第5,434,825號,該專利為所有目的而以引用之方式併入本文,就如同完全陳述於本文中一般。In recent years, a novel type of flash device has appeared on the market, using a technique known as "multi-level unit" or simply MLC. (This nomenclature can be misunderstood because the flash type of the previous type also has more than one level: it has two levels, as described above. Therefore, the two flash units are referred to herein. "Single Bit Unit" (SBC) and "Multiple Bit Unit" (MBC)). The improvement brought about by the MBC flash device is to store two bits in each cell. (In principle, MBC also includes more than two bits per cell. To simplify the explanation, the two-element condition is emphasized in this paper. However, it should be understood that the present invention is equally applicable to support more than two bits per cell. Flash memory device). In order for a single unit to store two information bits, the unit must be able to be in one of four different states. Since the "state" of a cell is represented by its threshold voltage, it is clear that an MBC cell should support four different valid ranges of its threshold voltage. Figure 1B shows the threshold voltage distribution of a typical MBC unit. As expected, Figure IB has four peaks, each peak corresponding to one of the states. For an SBC condition, each state is actually a threshold voltage range and is not a single threshold voltage. When reading the contents of the unit, it is only necessary to ensure that the range in which the threshold voltage of the unit is located is correctly identified. For a prior art example of one of the MBC flash devices, see U.S. Patent No. 5,434,825, the disclosure of which is incorporated herein in
通常將快閃記憶體設備劃分為NOR設備及非及設備,該等名稱係得自個別記憶體單元在單元陣列內互連之方式。NOR設備為隨機存取設備-存取一NOR快閃設備之主機電腦可在設備之位址插腳上向該設備提供任何位址且在該設備之資料插腳上立即擷取儲存於彼位址中之資料。此非常類似於SRAM或EPROM記憶體的操作方式。另一方面,非及設備並非為隨機存取設備而是串行存取設備。不可以上文針對NOR所描述之方式來存取任何隨機位址,相反,主機必須將一位元組序列寫入至該設備中,該位元組序列識別所請求之命令之類型(例如,讀取、寫入、抹除等等)及待用於彼命令之位址。該位址識別一頁(可在單一操作中被寫入的快閃記憶體之最小塊)或一區塊(可在一單一操作中被抹除的快閃記憶體之最小塊)而非識別一單一位元組或字組。讀取及寫入命令序列確實包括單一位元組或字組之位址,但實際上非及快閃設備總是自記憶體單元讀取完整頁及將完整頁寫入至記憶體單元。在已將一資料頁自陣列讀取至一位於該設備內部之緩衝器中之後,主機可藉由使用一選通信號來連續時脈輸出資料位元組或字組而一個接一個地存取該等資料位元組或字組。Flash memory devices are typically divided into NOR devices and non-devices, which are derived from the manner in which individual memory cells are interconnected within a cell array. The NOR device is a random access device - the host computer accessing a NOR flash device can provide any address to the device on the address pin of the device and immediately retrieve it in the address of the device. Information. This is very similar to how SRAM or EPROM memory operates. On the other hand, the non-device is not a random access device but a serial access device. It is not possible to access any random address in the manner described above for NOR. Instead, the host must write a one-tuple sequence into the device that identifies the type of command requested (eg, read Fetch, write, erase, etc.) and the address to be used for the command. This address identifies a page (the smallest block of flash memory that can be written in a single operation) or a block (the smallest block of flash memory that can be erased in a single operation) rather than identifying A single byte or block. The read and write command sequence does include a single byte or block address, but in fact the flash device always reads the full page from the memory unit and writes the full page to the memory unit. After a page has been read from the array into a buffer located inside the device, the host can access the data bytes or groups continuously by using a strobe signal for successive clock outputs. The data bytes or groups of words.
由於非及設備之非隨機存取性質,所以此等設備無法用於直接執行來自其快閃記憶體之代碼。此與支援直接代碼執行(通常被稱為"在適當位置執行"或"XIP")之NOR設備相反。因此,NOR設備係通常用於代碼儲存之設備。然而,非及設備具有使其非常有用於資料儲存之優勢。非及設備比具有相同位元容量之NOR設備便宜,或等效地,非及設備比相同成本之NOR設備提供多得多的儲存位元。又,非及設備之寫入及抹除效能比NOR設備之寫入及抹除效能快得多。此等優勢使得非及快閃記憶體技術成為用於儲存資料的首選技術。Because of the non-random access nature of the device, these devices cannot be used to directly execute code from their flash memory. This is in contrast to NOR devices that support direct code execution (often referred to as "execution in place" or "XIP"). Therefore, NOR devices are devices that are commonly used for code storage. However, non-devices have the advantage of making them very useful for data storage. Non-devices are cheaper than NOR devices with the same bit capacity, or equivalently, non-devices provide much more storage bits than NOR devices of the same cost. Moreover, the write and erase performance of non-devices is much faster than the write and erase performance of NOR devices. These advantages make non-flash memory technology the technology of choice for storing data.
一典型之SBC非及設備係提供2Gbit之儲存容量的TC58NVG1S3B(Toshiba Corporation,Tokyo,Japan)。一典型之MBC非及設備係提供4Gbit之儲存容量的TC58NVG2D4B(亦為Toshiba Corporation,Tokyo,Japan)。附加了兩個設備之資料表作為附錄A及附錄B。A typical SBC non-device is a TC58NVG1S3B (Toshiba Corporation, Tokyo, Japan) that provides 2 Gbit of storage capacity. A typical MBC non-device is a TC58NVG2D4B (also known as Toshiba Corporation, Tokyo, Japan) that provides a 4 Gbit storage capacity. A data sheet with two devices is attached as Appendix A and Appendix B.
如可自上述資料表所見,彼等兩種非及設備具有類似之介面。此等非及設備使用相同之電信號以用於協調在非及快閃設備與其主機設備之間的命令及資料轉移。彼等信號包括資料線及一些控制信號-ALE(位址鎖存啟用)、CLE(命令鎖存啟用)、WE\(寫入啟用)、RE\(讀取啟用)等等。SBC及MBC設備在其性能方面並不完全相同,寫入一MBC頁花費之時間比寫入一SBC頁花費之時間長得多。然而,用於兩個設備中之電信號及該兩個設備之功能性係相同的。此類型之介面協定在此項技術中被稱為"非及介面"協定。儘管該"非及介面"協定迄今未由一標準化組織來正式標準化,非及快閃設備之製造者仍皆遵循用於支援非及快閃功能性之基本子集的相同協定。完成此以使得在其電子產品內使用非及設備之顧客可使用來自任何製造者之非及設備而不必特製其硬體或軟體來與一特定廠商之設備一起操作。注意,甚至提供超出此基本功能性子集之額外功能性的非及廠商仍確保提供該基本功能性以便至少在某種程度上提供與由其他廠商所使用之協定的相容性。As can be seen from the above data sheet, these two non-compliant devices have similar interfaces. These non-devices use the same electrical signals to coordinate the transfer of commands and data between the non-flash device and its host device. These signals include data lines and some control signals - ALE (address latch enable), CLE (command latch enable), WE\ (write enable), RE\ (read enable), and so on. SBC and MBC devices are not exactly the same in terms of performance, and writing an MBC page takes much longer than writing to an SBC page. However, the electrical signals used in the two devices and the functionality of the two devices are the same. This type of interface agreement is referred to in this technology as a "non-interface" protocol. Although the "non-interface" agreement has not been formally standardized by a standardization organization to date, manufacturers of non-flash devices still follow the same protocol for supporting a basic subset of non-flash functionality. This is done so that customers who use non-devices within their electronic products can use equipment from any manufacturer without having to tailor their hardware or software to operate with a particular vendor's equipment. Note that even non-commercial vendors that provide additional functionality beyond this basic functional subset are guaranteed to provide this basic functionality to at least some extent provide compatibility with agreements used by other vendors.
本文中,術語"非及介面協定"(或簡言之"非及介面")意謂一在一起始設備與一回應設備之間的介面協定,即使該協定並不完全與所有時序參數相容、並不支援一抹除命令、並不完全與由非及設備所支援之其他命令相容或含有非及設備並不支援之額外命令,該介面協定仍通常遵循上文所描述之用於基本讀取及寫入操作的在一主機設備與一非及快閃設備之間的協定。換言之,術語"非及介面(協定)"係指代任何使用被轉移位元組序列(在功能性方面與當與Toshiba TC58NVG1S3B非及設備及Toshiba TC58NVG2D4B非及設備建立介面以進行讀取(操作碼00H)及寫入(操作碼80H)時所使用的位元組序列等效)且亦使用控制信號(在功能性方面與此等兩種非及設備之CLE、ALE、CE、WE及RE信號等效)的介面協定。As used herein, the term "non-interface agreement" (or simply "non-interface") means an interface agreement between a device and a response device, even if the protocol is not fully compatible with all timing parameters. Does not support a wipe command, is not fully compatible with other commands that are not supported by the device, or contains additional commands that are not supported by the device. The interface agreement still generally follows the basic read described above. A protocol between a host device and a non-flash device that takes the write operation. In other words, the term "non-interface (agreement)" refers to any use of the transferred byte sequence (in terms of functionality and when creating interfaces with Toshiba TC58NVG1S3B non-devices and Toshiba TC58NVG2D4B non-devices for reading (opcode) 00H) and the byte sequence used in writing (opcode 80H) is equivalent) and also uses control signals (in terms of functionality and CLE, ALE, CE, WE and RE signals of these two non-devices) Equivalent) interface agreement.
應注意,"非及介面協定"並非為對稱的。總是主機設備經由一非及介面而起始互動且快閃記憶體設備從未起始互動。It should be noted that "non-interface agreements" are not symmetrical. The host device always initiates interaction via a non-interface and the flash memory device never initiates interaction.
若一給定之設備(例如,控制器、快閃設備、主機設備等等)包括用於支援一非及介面協定(例如,用於使用該非及介面協定而與另一設備相互作用)所必要的元件(例如,硬體、軟體、韌體或其任何組合),則將該設備稱為包含、包括或具有該"非及介面"。If a given device (eg, controller, flash device, host device, etc.) includes the necessary to support a non-interface protocol (eg, for interacting with another device using the non-interface protocol) An element (eg, a hardware, a soft body, a firmware, or any combination thereof) is referred to as including, including, or having the "non-interface".
由於非及介面協定並非為對稱的,所以本文中使用術語"主機型非及介面"及"快閃型非及介面"來區別一非及介面協定之兩個側。由於總是主機起始相互作用,所以若一給定之設備包括用於實施非及介面協定之主機側(亦即,用於呈現一非及主機並起始非及協定相互作用)所必要的硬體及/或韌體及/或軟體,則將該設備稱為具有一"主機型非及介面"或輸出一"主機型非及介面"或"支援"一"主機型非及介面"。類似地,由於快閃設備從未起始相互作用,所以若一給定之設備包括用於實施非及協定之快閃側(亦即,用於呈現一非及快閃設備)所必要的硬體及/或韌體及/或軟體,則將該設備稱為具有一"快閃型非及介面"或"輸出"一"快閃型非及介面"或"支援"一"快閃型非及介面"。Since the non-interface protocol is not symmetrical, the terms "host type non-interface" and "flash type interface" are used herein to distinguish between the two sides of a non-interface agreement. Since the host initiates an interaction, if a given device includes a host side for implementing a non-interface agreement (ie, for presenting a non-host and initiating a non-compliant interaction) For the body and / or firmware and / or software, the device is said to have a "host type and interface" or output a "host type and interface" or "support" - "host type and interface". Similarly, since the flash device never initiates interaction, if a given device includes the hardware necessary to implement the non-compliant flash side (ie, for presenting a non-flash device) And / or firmware and / or software, the device is said to have a "flash type and interface" or "output" - "flash type and interface" or "support" - "flash" interface".
本文中,術語"主機設備"(或簡言之"主機")意謂任何具有處理能力且能夠與一快閃記憶體設備建立介面的設備。典型主機設備之實例包括個人電腦、PDA、行動電話、遊戲機等等。As used herein, the term "host device" (or simply "host") means any device that has processing power and is capable of establishing an interface with a flash memory device. Examples of typical host devices include personal computers, PDAs, mobile phones, game consoles, and the like.
通常,相對難以與非及設備建立介面及配合其操作。彼之一原因為用於存取非及設備之相對複雜(與NOR設備相比)的協定,如上文所描述。另一困難係在自非及設備讀取之資料中存在誤差(與可被假定為總是傳回正確資料之NOR設備相反)。非及設備之此固有之非可靠性要求使用誤差偵測碼(EDC)及誤差校正碼(ECC)。In general, it is relatively difficult to establish interfaces and operate with non-devices. One of the reasons is the agreement for accessing relatively complex devices (compared to NOR devices), as described above. Another difficulty is that there is an error in the data read from the device (as opposed to a NOR device that can be assumed to always return the correct data). This inherent non-reliability of equipment requires the use of error detection code (EDC) and error correction code (ECC).
SBC非及快閃設備之製造者通常建議使用者應用一能夠在每一具有512個資料位元組之頁中校正1個位元誤差的誤差校正碼。但MBC非及快閃設備之資料表通常建議應用一能夠在每一具有512個資料位元組之頁中校正4個位元誤差的ECC。對於大小為2048個位元組之頁(諸如在上文所提及之非及設備(通稱為"大型區塊設備")之狀況下)而言,建議係對於該頁之每一512個位元組部分應用誤差校正。本文中,術語"N位元ECC"係指代一能夠校正512個資料位元組中之N個位元誤差的ECC機制,而不管該512個位元組係一個頁之大小、小於一個頁還是大於一個頁。Manufacturers of SBC non-flash devices typically recommend that the user apply an error correction code that corrects one bit error in each page having 512 data bytes. However, the MBC non-flash device data sheet generally suggests the application of an ECC capable of correcting 4 bit errors in each page with 512 data bytes. For pages of 2048 bytes in size (such as in the case of the non-devices mentioned above (commonly referred to as "large block devices"), it is recommended for each 512 bits of the page. The tuple part is applied with error correction. As used herein, the term "N-bit ECC" refers to an ECC mechanism capable of correcting N bit errors in 512 data bytes, regardless of the size of one page of the 512 bytes, less than one page. Still larger than one page.
由於非及設備之此等複雜性,所以慣例係使用一"非及控制器"以用於控制一非及設備在一電子系統中之使用。確實可直接藉由一主機設備來操作並使用一非及設備而無介入之非及控制器,且存在實際類似於此而操作之系統。然而,此架構遭受許多缺陷。首先,主機必須個別地操縱非及設備之控制信號中之每一者(例如,CLE或ALE),此對於主機而言繁瑣且耗時。第二,對EDC及ECC之支援將一嚴重負擔強加於主機,必須針對被寫入之每一頁來計算同位位元,且必須藉由主機來執行誤差偵測計算(且有時亦執行誤差校正計算)。所有此使得此"無控制器"架構變得相對緩慢且無效率。Due to the complexity of the device, the convention uses a "non-controller" for controlling the use of a non-device in an electronic system. It is true that a host device can be operated directly and used without a device and without a intervention, and there is a system that actually operates similarly. However, this architecture suffers from many drawbacks. First, the host must individually manipulate each of the non-device control signals (eg, CLE or ALE), which is cumbersome and time consuming for the host. Second, the support for EDC and ECC imposes a severe burden on the host. The parity bit must be calculated for each page being written, and the error detection calculation must be performed by the host (and sometimes the error is also performed). Correction calculation). All this makes this "no controller" architecture relatively slow and inefficient.
當使用非及設備時,使用一非及控制器顯著簡化了主機之任務。處理器使用一使用起來方便得多的協定(可在位址及資料之後發送一用於寫入一頁之請求作為一單一命令代碼,而不必為控制線及非及命令代碼之複雜編序而費心)而與該控制器相互作用。該控制器接著將主機-控制器協定轉換為等效之非及協定序列,同時主機可自由執行其他任務(或僅等待完成非及操作(若需要如此))。When using a non-device, using a non-controller significantly simplifies the task of the host. The processor uses a much more convenient protocol (a request to write a page can be sent as a single command code after the address and data, without having to program the control line and the complex code of the command code. Difficult to interact with the controller. The controller then converts the host-controller contract into an equivalent non-contract sequence, while the host is free to perform other tasks (or just wait for completion of the inaction (if so).
在先前技術中關於非及控制器在系統內之位置存在若干選擇。圖2中展示了一第一方法。此處,一非及控制器114實體位於一主機設備110A之一主機處理器112A內。若將主機處理器112A實施為一單一晶粒,則將控制器114A併入於相同晶粒上。此為(例如)在某些由Dallas TX USA之Texas Instruments製造及出售之OMAP處理器中的狀況。在一使用此架構建置之系統中,主機處理器112A通常使用某一專有協定而與非及控制器114相互作用,因為該相互作用係在主機處理器112A之內部且使用一標準協定不存在益處。There are several options in the prior art regarding the location of the controller and the system within the system. A first method is shown in FIG. Here, a non-controller 114 entity is located within one of the host devices 110A's host processor 112A. If host processor 112A is implemented as a single die, controller 114A is incorporated on the same die. This is for example the case in some OMAP processors manufactured and sold by Texas Instruments of Dallas TX USA. In a system that uses this shelf, the host processor 112A typically interacts with the controller 114 using a proprietary protocol because the interaction is internal to the host processor 112A and uses a standard protocol. There are benefits.
圖3A至圖3B中展示了一第二先前技術方法。此處,一非及控制器116係一常駐於一主機110B之一主機處理器112B與一非及設備120A之間的獨立實體元件。此為(例如)在攜帶型USB快閃驅動器(UFD)(諸如由Milpitas CA USA之SanDisk Corporation製造及出售的DiskOnKey)中之狀況。在此UFD中,存在一非及控制器116,該非及控制器116被封裝於UFD內部且在一側上使用一設備側非及介面124而與非及設備120A相互作用並在另一側上(使用一使用USB協定之主機側USB介面122)與主機處理器112B相互作用。在一使用此架構建置之系統中,主機處理器112B通常使用一標準協定(諸如USB或ATA)而與非及控制器116相互作用,因為該相互作用係在處理器112B之外部且針對其他目的而使用業已由處理器112B所支援之標準協定可更為方便。A second prior art method is illustrated in Figures 3A-3B. Here, a non-controller 116 is a separate physical component resident between one of the host processor 112B and a non-compliant device 120A. This is the case, for example, in a portable USB flash drive (UFD) such as the DiskOnKey manufactured and sold by SanDisk Corporation of Milpitas CA USA. In this UFD, there is a non-controller 116 that is packaged inside the UFD and uses a device side non-interface 124 on one side to interact with the non-device 120A and on the other side. (Using a host side USB interface 122 using the USB protocol) interacts with the host processor 112B. In a system that uses this shelf construction, host processor 112B typically interacts with controller 116 without using a standard protocol (such as USB or ATA) because the interaction is external to processor 112B and is directed to other It is more convenient to use a standard protocol that has been supported by processor 112B.
圖4中展示了一第三先前技術方法。此處,非及控制器118實體位於一非及設備120B內。可甚至將非及設備120B及控制器118實施於相同晶粒上。此為(例如)在某些由SanDisk Corporation製造及出售之MDOC儲存設備及由Suwon,South Korea之Samsung Electronics製造及出售之OneNAND設備中的狀況。在一使用此架構建置之系統中,主機處理器112B通常使用一標準協定(諸如USB)或半標準協定(如為MDOC及OneNAND設備中之狀況)而與非及控制器118相互作用。A third prior art method is illustrated in FIG. Here, the non-controller 118 entity is located within a non-device 120B. The non-device 120B and the controller 118 can even be implemented on the same die. This is the case, for example, in certain MDOC storage devices manufactured and sold by SanDisk Corporation and OneNAND devices manufactured and sold by Suwon, South Korea's Samsung Electronics. In a system that uses this shelf construction, host processor 112B typically interacts with controller 118 without using a standard protocol (such as USB) or a semi-standard protocol (such as for MDOC and OneNAND devices).
可自上文推斷一先前技術單機非及控制器(其並未與非及設備或主機處理器整合)通常在其之主機側上具有一標準介面且在其之快閃記憶體設備側上具有一非及介面(如圖3B中)。實際上,吾人可在市場中發現輸出許多介面類型,USB、SD(安全數位)、MMC(多媒體卡)等等,之非及控制器。Lasser之美國專利申請案11/326,336(作為美國專利申請公開案第2007/0074093號而公開)揭示了一在兩個側上具有非及型介面的非及控制器。It can be inferred from the above that a prior art stand-alone controller (which is not integrated with a non-device or host processor) typically has a standard interface on its host side and has a flash memory device side on its side. A non-interface (as in Figure 3B). In fact, we can find many interface types in the market, such as USB, SD (safe digital), MMC (multimedia card), etc. A non-controller having a non-contact interface on both sides is disclosed in U.S. Patent Application Serial No. 11/326,336, the disclosure of which is incorporated herein by reference.
另一由非及控制器所提供之功能係向主機輸出一邏輯位址空間而非一實體位址空間。快閃設備具有某些限制,其使得在實體位址位準下使用此等設備有點問題。在一快閃設備中,對該記憶體之一先前被寫入區域進行重寫而先前不抹除該區域(亦即,在快閃單元可再次被程式化之前,該等單元必須被抹除(例如,程式化至"1"))係不切實際的。僅可針對通常被稱為"抹除區塊"的相對較大之單元組(通常在當前市售非及設備中大小為16 Kbyte至128 Kbyte,且在NOR設備中具有更大之大小)來執行抹除。因此,更新單一位元組或甚至一為1千位元組之塊的內容需要"內務處理(housekeeping)"操作,必須首先將抹除區塊之不被更新的部分移至別處,使得此等部分在抹除期間將被保留,且接著將其移回適當位置。Another function provided by the controller is to output a logical address space to the host instead of a physical address space. Flash devices have certain limitations that make it somewhat problematic to use such devices at physical address levels. In a flash device, one of the previously written areas of the memory is overwritten without previously erasing the area (i.e., the units must be erased before the flash unit can be programmed again) (for example, stylized to "1")) is impractical. Can only be used for relatively large groups of cells commonly referred to as "erase blocks" (usually 16 Kbytes to 128 Kbytes in current commercial and non-device sizes, and larger in NOR devices) Execute the erase. Therefore, updating the content of a single byte or even a block of 1 kilobyte requires a "housekeeping" operation, and the portion of the erased block that is not to be updated must first be moved elsewhere, so that The portion will be retained during the erase and then moved back to the appropriate location.
此外,該設備之某些區塊為不可靠之"不良區塊",使得應避免使用此等區塊。區塊由製造者在初始測試該設備時或由應用程式軟體在現場使用該設備期間偵測區塊之故障時被宣告為"不良區塊"。In addition, certain blocks of the device are unreliable "bad blocks" so that the use of such blocks should be avoided. A block is declared "bad block" by the manufacturer when initially testing the device or when the application software detects a failure of the block during use of the device in the field.
為克服非及設備之此等限制,已引入了快閃檔案系統(FFS)。一種此FFS描述於Ban之美國專利第5,404,485號中,該專利以引用之方式併入本文,就如同完全陳述於本文中一般。一FFS在快閃設備上提供一資料儲存及操縱系統,其允許此等設備模擬磁碟。在現有技術中,應用程式或作業系統與一不使用實體位址而是使用邏輯位址(有時被稱為虛擬位址)之快閃儲存系統相互作用。在軟體應用程式與實體儲存系統之間存在一中間軟體層,其提供自邏輯位址至實體位址中之一映射。儘管軟體可將儲存系統視為具有一鄰接之不含缺陷之媒體(其可被隨機且無限制地讀取或寫入),但實體定址機制在其位址範圍中具有"孔"(例如,歸因於不良區塊),且在邏輯位址範圍中彼此鄰近之資料片段在實體位址範圍中可被極大地分離。執行上文所描述之映射的中間軟體層可為一執行於應用程式所執行於之相同CPU上的軟體驅動程式。或者,該中間軟體層可嵌入於一控制器內,該控制器控制儲存系統之快閃設備且在主機電腦存取儲存系統時充當該主機電腦之主CPU的介面。此為(例如)在抽取式記憶卡(諸如安全數位(SD)卡或多媒體卡(MMC))中之情形,其中該卡具有一執行一韌體程式之板上控制器,該韌體程式除其他功能外還實施此類型之映射。To overcome these limitations of non-devices, the Flash File System (FFS) has been introduced. One such FFS is described in U.S. Patent No. 5,404,485, the disclosure of which is incorporated herein by reference in its entirety in its entirety in its entirety herein in An FFS provides a data storage and manipulation system on the flash device that allows such devices to emulate a disk. In the prior art, an application or operating system interacts with a flash storage system that does not use physical addresses but uses logical addresses (sometimes referred to as virtual addresses). There is an intermediate software layer between the software application and the physical storage system that provides a mapping from one of the logical address to the physical address. Although a software can treat a storage system as having a contiguous, defect-free medium (which can be read or written randomly and without restriction), the physical addressing mechanism has "holes" in its address range (eg, Due to the bad blocks), the pieces of data that are adjacent to each other in the logical address range can be greatly separated in the physical address range. The intermediate software layer that performs the mapping described above can be a software driver that executes on the same CPU that the application executes on. Alternatively, the intermediate software layer can be embedded in a controller that controls the flash device of the storage system and acts as the interface of the host CPU of the host computer when the host computer accesses the storage system. This is the case, for example, in a removable memory card, such as a Secure Digital (SD) card or Multimedia Card (MMC), where the card has an on-board controller that executes a firmware program, in addition to the firmware program. This type of mapping is implemented in addition to other features.
通常將執行此等位址映射之軟體或韌體實施稱為"快閃管理系統"或"快閃檔案系統"。後一術語係一誤稱,因為該等實施不必支援"檔案"(在檔案用於作業系統或個人電腦中之意義上),而是支援類似於彼等由硬碟軟體驅動器所輸出之區塊設備介面的區塊設備介面。儘管如此,仍通常使用術語"快閃檔案系統",且"快閃檔案系統"與"快閃管理系統"在本文中可互換使用。Software or firmware implementations that perform such address mapping are often referred to as "flash management systems" or "flash file systems." The latter term is a misnomer because it does not have to support "files" (in the sense that files are used in operating systems or personal computers), but rather supports blocks similar to those exported by hard disk software drivers. The block device interface of the device interface. Nevertheless, the term "flash file system" is often used, and "flash file system" and "flash management system" are used interchangeably herein.
其他實施邏輯-實體位址映射之先前技術系統被描述於Ban之美國專利5,937,425及Lasser之美國專利6,591,330中,該等專利皆為所有目的而以引用之方式併入本文,就如同完全陳述於本文中一般。</ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; In general.
若一與一儲存設備建立介面且存取該設備以用於讀取及/或寫入資料的主機電腦並不知道儲存該資料之實體位址,則將彼設備在本文中稱為輸出(或簡單地"具有")一邏輯介面。可將被寫入至一由主機提供之特定邏輯位址/自一由主機提供之特定邏輯位址讀取的資料儲存於該儲存設備內之任何實體位置中,但此事實係主機所不可見的。通常,一儲存設備具有一邏輯介面亦意謂主機將儲存設備看作具有一鄰接之"無孔"位址空間。If a host computer that establishes an interface with a storage device and accesses the device for reading and/or writing data does not know the physical address at which the data is stored, then the device is referred to herein as an output (or Simply "have" a logical interface. Data that is written to a specific logical address provided by the host/read from a specific logical address provided by the host can be stored in any physical location within the storage device, but this fact is invisible to the host of. In general, a storage device having a logical interface also means that the host considers the storage device to have an adjacency "non-porous" address space.
若一與一儲存設備建立介面且存取該設備以用於讀取及/或寫入資料的主機電腦知道儲存該資料之實體位址且當向該儲存設備發出命令時明確地引用此等實體位址,則將彼設備在本文中稱為輸出(或"具有")一實體介面。If a host computer that establishes an interface with a storage device and accesses the device for reading and/or writing data knows the physical address at which the data is stored and explicitly references the entity when issuing a command to the storage device The address is referred to herein as an output (or "with") entity interface.
更一般而言,如在一具有一邏輯介面之儲存設備的狀況中,若對應之經由其主機型非及介面而與一"具有"或"輸出"一快閃型非及介面之設備相互作用的主機設備並不知道實體位址而是僅知道邏輯位址,則將該設備在本文中稱為"具有"或"輸出"一"邏輯"快閃型非及介面。主機設備之對應之主機型介面在本文中稱為一"邏輯"主機型非及介面。類似地,如在一具有一實體介面之儲存設備的狀況中,若對應之主機設備知道實體位址,則一"具有"或"輸出"一快閃型非及介面之設備在本文中稱為"具有"或"輸出"一"實體"主機型非及介面。主機設備之對應之主機型介面在本文中稱為一"實體"主機型非及介面。注意,一個設備之一邏輯快閃型非及介面必須與另一設備之一邏輯主機型非及介面成對以使該兩個設備根據一非及協定而交換資料;且一個設備之一實體快閃型非及介面必須與另一設備之一實體主機型非及介面成對以使該兩個設備根據一非及協定而交換資料。More generally, in the case of a storage device having a logical interface, if it corresponds to a device having a "flash" type interface through "host" or "output" via its host type interface The host device does not know the physical address but only the logical address, and the device is referred to herein as a "having" or "output"-"logical" flash-type interface. The corresponding host type interface of the host device is referred to herein as a "logical" host type interface. Similarly, in the case of a storage device having a physical interface, if the corresponding host device knows the physical address, a device having "with" or "output" a flash-type interface is referred to herein. "Having" or "Output" - "Entity" host type non-interface. The corresponding host type interface of the host device is referred to herein as a "physical" host type interface. Note that one of the logical flash-type interfaces of one device must be paired with one of the logical host-type interfaces of the other device to enable the two devices to exchange data according to a non-conformity; and one of the devices is fast The flash-type interface must be paired with one of the other devices' physical host type interfaces to enable the two devices to exchange data in accordance with a non-compliant agreement.
使用以上術語,可如下來分類先前技術非及快閃設備:A.向其主機輸出一並非一非及介面且為一邏輯介面之介面的設備。所有輸出USB、SD或MMC介面之設備皆在此類別內,因為彼等協定(皆使用非非及介面)需要使用邏輯位址。Using the above terms, prior art non-flash devices can be classified as follows: A. Output to the host a device that is not an interface and is a logical interface interface. All devices that output USB, SD, or MMC interfaces are in this category because they require the use of logical addresses for their protocols (both non-non-interfaces).
B.向其主機輸出一為一邏輯介面之非及介面的設備。此為(例如)Lasser之US 11/326,336中所揭示之控制器。B. Output a device that is a logical interface and interface to its host. This is, for example, the controller disclosed in US Pat.
C.向其主機輸出一為一實體介面之非及介面的設備。標準非及設備(諸如上文所提及之兩個Toshiba非及設備)係在此類別內。C. Output to the host a device that is a non-interface of the physical interface. Standard non-devices, such as the two Toshiba non-devices mentioned above, are within this category.
存在必須處理之在與以非及為基礎之快閃記憶體設備建立介面方面之潛在複雜性的一進一步之問題。以頁來寫入非及設備。換言之,一頁係可被寫入至記憶體單元陣列中之最小資料塊。在過去,大多數非及快閃設備使用0.5 Kbyte(512個位元組)之頁。近來,大多數非及設備使用2 Kbyte之頁。另一方面,主機電腦之作業系統及執行於主機電腦上之應用程式通常以"區段"(大小為0.5 Kbyte)為單位來存取所儲存之資料。當使用具有0.5 Kbyte頁之非及設備時,在頁大小與區段大小之間存在一精確匹配,且預期不會發生困難。然而,當使用具有2 Kbyte之頁(或其他大於一區段之大小的頁大小)的非及設備時,將多個區段指派給一共同快閃頁,且此產生了一些複雜性,如下文將予以解釋。There is a further problem with the potential complexity of having to interface with non-and-based flash memory devices. Write to non-devices in pages. In other words, a page can be written to the smallest block of data in the array of memory cells. In the past, most non-flash devices used pages of 0.5 Kbyte (512 bytes). Recently, most non-devices use 2 Kbyte pages. On the other hand, the operating system of the host computer and the application executing on the host computer usually access the stored data in units of "segments" (0.5 Kbytes in size). When using a device with a 0.5 Kbyte page, there is an exact match between the page size and the segment size, and no difficulty is expected. However, when using a non-device with 2 Kbyte pages (or other page size larger than the size of a segment), assigning multiple segments to a common flash page, and this creates some complexity, as follows The text will explain.
Lasser之美國專利第6,760,805號解釋了當頁大小大於區段大小時與快閃管理系統相關聯之一些複雜性,且教示了用於解決此等問題之方法。美國專利6,760,805之方法處理快閃管理系統配置實體位址之方式,且其並非與由主機已知之邏輯位址直接相關。U.S. Patent No. 6,760,805 to Lasser teaches some of the complexity associated with flash management systems when the page size is larger than the segment size, and teaches a method for solving such problems. The method of U.S. Patent No. 6,760,805 deals with the manner in which the flash management system configures the physical address and is not directly related to the logical address known by the host.
輸出一非非及介面(諸如USB、SD或MMC)之儲存設備將區段用作其基本資料轉移單位。因此,當使用此等設備時,主機不必知道該設備內之實際頁大小且控制器處理所有轉換及映射。此係順理成章的,因為此等控制器業已處理邏輯-實體位址轉譯,且添加區段-頁映射係一自然擴展。當使用輸出一亦為實體介面之非及介面的儲存設備時,主機與記憶體設備之間的基本資料轉移單位係頁。若該頁大於一區段,則將資料區段映射及匹配至頁之重擔落在主機上。A storage device that outputs a non-negative interface (such as USB, SD, or MMC) uses the segment as its base data transfer unit. Therefore, when using such devices, the host does not have to know the actual page size within the device and the controller handles all translations and mappings. This is logical because these controllers have already processed logical-physical address translations, and adding a section-page mapping is a natural extension. When a storage device that is also a non-interface of the physical interface is used, the basic data transfer unit between the host and the memory device is a page. If the page is larger than a segment, the data segment mapping and matching to the page load falls on the host.
吾人會期待當使用一具有一為邏輯介面之非及介面的儲存設備時,資料轉移單位將為一區段,因為使用邏輯定址暗示存在可簡單地添加有區段-頁映射之邏輯-實體位址轉譯。然而,情況並非如此,所有具有一為邏輯介面之非及介面的先前技術設備將頁而非區段用作其基本資料轉移單位。We would expect that when using a storage device with a logical interface and a non-interface, the data transfer unit will be a segment because the use of logical addressing implies the presence of a logical-physical bit that can simply be added with a segment-page mapping. Address translation. However, this is not the case, and all prior art devices having a non-interface of logical interface use pages rather than segments as their basic data transfer unit.
此事實消除了將由於使用邏輯非及介面而獲得之大部分益處。此等介面之優勢及採用其之主要原因係簡化主機側上之存取軟體。由於邏輯介面處理不良區塊及快閃管理之其他難題,所以主機對記憶體設備之存取變得非常簡單,主機寫入一邏輯頁及讀取一邏輯頁。無需關注於頁之實體位置或必須執行以便具有足夠自由空間以用於額外寫入之廢料收集工作。但若一非及型邏輯介面將頁用作其基本資料轉移單位且頁大小不同於區段大小,則將丟失大部分此簡單性。This fact eliminates most of the benefits that will be gained due to the use of logical non-interfaces. The advantages of these interfaces and the main reason for their use are to simplify the access software on the host side. Because the logical interface handles bad blocks and other challenges of flash management, the host's access to the memory device becomes very simple, the host writes a logical page and reads a logical page. There is no need to focus on the physical location of the page or the waste collection work that must be performed in order to have sufficient free space for additional writing. However, if a non-logical logical interface uses the page as its base data transfer unit and the page size is different from the segment size, most of this simplicity will be lost.
為瞭解為何會如此,請考慮在一主機必須將一具有若干0.5 Kbyte邏輯區段之流寫入至一輸出每一者為2 Kbyte之頁操作的設備時所發生之情況。讓吾人假定(作為一實例)具有邏輯位址0、1、2及3之區段將一個接一個地被寫入至儲存設備中。由於介面僅支援2 Kbyte頁操作,所以當寫入第0區段時,主機實際上導致2 Kbyte被移至單元之快閃陣列中。接著應寫入第1區段。但彼區段必須與第0區段一起被裝入於一共同頁中。因此主機必須讀回第0區段、合併兩個區段之資料及發送一含有兩個區段之資料的頁寫入命令。此對於第2區段繼續,且接著亦對於第3區段繼續。在每一狀況下,先前區段必須被讀出至主機,僅在由主機與新近獲得之區段組合之後才被再次寫入。此過程高度欠缺效率且如上文所陳述消除了首先具有一邏輯介面之主要優勢-根據一簡單存取模型來存取記憶體設備而使主機不必受快閃記憶體之實體實施細節(諸如頁大小)的干擾。To understand why this is the case, consider what happens when a host must write a stream with several 0.5 Kbyte logical segments to a device that outputs a page of 2 Kbytes each. Let us assume (as an example) that segments with logical addresses 0, 1, 2, and 3 will be written to the storage device one by one. Since the interface only supports 2 Kbyte page operations, when writing to the 0th segment, the host actually causes 2 Kbytes to be moved into the flash array of the cell. Then the first section should be written. However, the segment must be loaded into a common page along with the 0th segment. Therefore, the host must read back the 0th sector, merge the data of the two sections, and send a page write command containing the data of the two sections. This continues for the second segment and then continues for the third segment. In each case, the previous segment must be read out to the host and only rewritten after being combined with the newly acquired segment by the host. This process is highly inefficient and eliminates the primary advantage of having a logical interface as described above - accessing the memory device according to a simple access model without the host having to be exposed to the physical implementation details of the flash memory (such as page size) ) interference.
因此廣泛認識到需要且將為高度有利地具有一方便之用以甚至藉由區段大小不同於儲存設備之頁大小的一主機來存取一具有一邏輯非及介面之儲存設備的方式。It is therefore widely recognized that there is a need and will be highly advantageous to have a convenient way to access a storage device having a logical non-interface and a host even by a host having a segment size different from the page size of the storage device.
根據本發明,提供一用於一快閃記憶體設備之控制器,其包括:(a)一用於與非及快閃記憶體設備交換資料頁之主機型非及介面;及(b)一用於與該控制器之一主機交換資料區段之快閃型非及介面;其中該等資料頁具有一共同資料頁大小,且其中該等資料區段具有一不同於共同資料頁大小之共同資料區段大小。According to the present invention, there is provided a controller for a flash memory device, comprising: (a) a host type non-interface for exchanging data pages with non-flash memory devices; and (b) a a flash-type non-interface for exchanging data segments with a host of the controller; wherein the data pages have a common data page size, and wherein the data segments have a common difference from a common data page size Data section size.
根據本發明,提供一資料儲存系統,其包括:(a)一包括複數個實體頁之記憶體,該等實體頁具有一共同實體頁大小;及(b)用於輸出一快閃型非及介面之電路,該快閃型非及介面用於與資料儲存系統之一主機交換資料區段,其中該等資料區段具有一不同於實體頁大小之共同資料區段大小。According to the present invention, there is provided a data storage system comprising: (a) a memory comprising a plurality of physical pages, the physical pages having a common physical page size; and (b) for outputting a flash type An interface of the interface for exchanging data segments with a host of a data storage system, wherein the data segments have a common data segment size different from the physical page size.
根據本發明,提供了一種儲存資料之方法,其包括以下步驟:(a)提供一包括複數個實體頁之記憶體,該等實體頁具有一共同實體頁大小;及(b)向一主機輸出一用於與該主機交換資料區段的快閃型非及介面,其中該等資料區段具有一不同於實體頁大小之共同資料區段大小。According to the present invention, there is provided a method of storing data comprising the steps of: (a) providing a memory comprising a plurality of physical pages, the physical pages having a common physical page size; and (b) outputting to a host A flash-type non-interface for exchanging data segments with the host, wherein the data segments have a common data segment size different from the physical page size.
本發明之用於控制一快閃記憶體設備之基本控制器包括一用於與該快閃記憶體設備交換資料頁的主機型非及介面及一用於與該控制器之一主機交換資料區段的快閃型非及介面。該等資料頁具有一共同資料頁大小,該等資料區段具有一共同資料區段大小,且該共同資料區段大小不同於共同資料頁大小。本文中將一資料頁之"大小"理解為一資料頁中之位元之數目。本文中將一資料區段之"大小"理解為一資料區段中之位元之數目。舉例而言,使用長度為8個位元之位元組,一512位元組區段之大小為4096個位元且一2 Kbyte頁之大小為16,384個位元。較佳地,共同資料區段大小小於共同資料頁大小。The basic controller for controlling a flash memory device of the present invention comprises a host type interface for exchanging data pages with the flash memory device and a data area for exchanging data with a host of the controller The flash type of the segment is not the interface. The data pages have a common data page size, the data segments having a common data segment size, and the common data segment size is different from the common data page size. In this paper, the "size" of a data page is understood as the number of bits in a data page. In this paper, the "size" of a data section is understood as the number of bits in a data section. For example, a byte of length of 8 bits is used, a size of a 512-bit block is 4096 bits and a size of a 2 Kbyte page is 16,384 bits. Preferably, the common data segment size is less than the common data page size.
較佳地,主機型非及介面係一實體介面且快閃型非及介面係一邏輯介面。Preferably, the host type interface is a physical interface and the flash type interface is a logical interface.
較佳地,控制器亦包括至少一主機側介面。注意,一"主機側"介面並非與一"主機型"介面相同。舉例而言,下文圖5A展示了一具有兩個主機側介面之控制器,該等主機側介面中之一者係一快閃型介面。Preferably, the controller also includes at least one host side interface. Note that a "host side" interface is not the same as a "host type" interface. For example, Figure 5A below shows a controller having two host side interfaces, one of which is a flash type interface.
較佳地,控制器亦包括一或多個功能模組,諸如一誤差校正模組、一加密模組及/或一位址映射模組。Preferably, the controller also includes one or more functional modules, such as an error correction module, an encryption module, and/or an address mapping module.
本發明之一種類型之資料儲存系統包括本發明之控制器及該控制器所控制之快閃記憶體設備。較佳地,該快閃記憶體設備係一非及快閃記憶體設備。One type of data storage system of the present invention includes a controller of the present invention and a flash memory device controlled by the controller. Preferably, the flash memory device is a non-flash memory device.
用於製造控制器及快閃記憶體設備之選擇包括:在不同的各別晶粒上製造控制器及快閃記憶體設備,在此狀況下,主機型非及介面係一晶粒間介面;及在一共同晶粒上製造控制器及快閃記憶體設備。若在不同晶粒上製造控制器及快閃記憶體設備,則封裝選擇包括:將該控制器及該快閃記憶體設備兩者封裝於相同之多晶片封裝中;將該控制器封裝於一控制器封裝中,而將該快閃記憶體設備封裝於一獨立之記憶體設備封裝中;將該控制器封裝於一控制器封裝中,而將該快閃記憶體設備晶粒直接安裝於一印刷電路板上;將該快閃記憶體設備封裝於一記憶體設備封裝中,而將該控制器晶粒直接安裝於一印刷電路板上;及將該控制器晶粒及該快閃記憶體設備晶粒直接安裝於一印刷電路板上。The choices for manufacturing controllers and flash memory devices include: manufacturing controllers and flash memory devices on different individual dies, in which case the host-type interface and the interface are inter-die interfaces; And manufacturing controllers and flash memory devices on a common die. If the controller and the flash memory device are fabricated on different dies, the package selection includes: packaging the controller and the flash memory device in the same multi-chip package; packaging the controller in a In the controller package, the flash memory device is packaged in a separate memory device package; the controller is packaged in a controller package, and the flash memory device die is directly mounted on the device a printed circuit board; the flash memory device is packaged in a memory device package, and the controller die is directly mounted on a printed circuit board; and the controller die and the flash memory are The device die is mounted directly on a printed circuit board.
本發明之一種類型之資料處理系統包括此資料儲存系統及其主機。One type of data processing system of the present invention includes the data storage system and its host.
本發明之另一基本資料儲存系統包括一包括複數個實體頁之記憶體,該等實體頁皆具有一共同實體頁大小。此基本資料儲存系統亦包括用於輸出一快閃型非及介面之電路,該快閃型非及介面用於與該資料儲存系統之一主機交換資料區段。該等資料區段具有一不同於記憶體之頁之共同實體頁大小的共同資料區段大小。本文中將一實體頁之"大小"理解為可儲存於一實體頁中之位元之最大數目。舉例而言,使用長度為8個位元之位元組,一2 Kbyte實體頁之大小為16,384個位元。較佳地,共同資料區段大小小於共同實體頁大小。Another basic data storage system of the present invention includes a memory comprising a plurality of physical pages, each of which has a common physical page size. The basic data storage system also includes circuitry for outputting a flash type interface that is used to exchange data segments with a host of the data storage system. The data segments have a common data segment size that is different from the common physical page size of the pages of the memory. The "size" of a physical page is understood herein as the maximum number of bits that can be stored in a physical page. For example, using a byte of 8 bits in length, a 2 Kbyte physical page has a size of 16,384 bits. Preferably, the common data segment size is smaller than the common physical page size.
較佳地,快閃型非及介面係一邏輯介面。Preferably, the flash type interface is a logical interface.
較佳地,每一頁包括複數個快閃單元。最佳地,該等快閃單元係非及快閃單元。Preferably, each page includes a plurality of flash units. Most preferably, the flash units are not flash units.
用於製造電路及記憶體之選擇包括在不同的各別晶粒上製造電路及記憶體以及在一共同晶粒上製造電路及記憶體。若在不同晶粒上製造電路及記憶體,則封裝選擇包括:將電路及記憶體兩者封裝於相同之多晶片封裝中;將電路封裝於一電路封裝中,而將記憶體封裝於一獨立之記憶體封裝中;將電路封裝於一電路封裝中,而將該記憶體晶粒直接安裝於一印刷電路板上;將該記憶體封裝於一記憶體封裝中,而將電路晶粒直接安裝於一印刷電路板上;及將電路晶粒及記憶體晶粒兩者直接安裝於一印刷電路板上。Options for fabricating circuits and memories include fabricating circuits and memory on different individual dies and fabricating circuits and memories on a common die. If the circuit and the memory are fabricated on different dies, the package options include: packaging both the circuit and the memory in the same multi-chip package; packaging the circuit in a circuit package and packaging the memory in an independent package In the memory package; the circuit is packaged in a circuit package, and the memory die is directly mounted on a printed circuit board; the memory is packaged in a memory package, and the circuit die is directly mounted On a printed circuit board; and mounting both the circuit die and the memory die directly on a printed circuit board.
本發明之另一資料處理系統包括此資料儲存系統及此資料儲存系統之主機。Another data processing system of the present invention includes the data storage system and a host of the data storage system.
本發明之用於儲存資料的基本方法包括提供一包括複數個實體頁(其皆具有一共同實體頁大小)之記憶體的步驟及向一主機輸出一用於與該主機交換資料區段之快閃型非及介面的步驟。該等資料區段具有一不同於記憶體之頁之共同實體頁大小的共同資料區段大小。較佳地,共同資料區段大小小於共同實體頁大小。The basic method for storing data of the present invention includes the steps of providing a memory comprising a plurality of physical pages (all having a common physical page size) and outputting a message to a host for exchanging data segments with the host Flash type and interface steps. The data segments have a common data segment size that is different from the common physical page size of the pages of the memory. Preferably, the common data segment size is smaller than the common physical page size.
較佳地,每一實體頁具有一各別之實體位址範圍且每一資料區段具有一各別之邏輯區段位址。藉由若干步驟而將資料寫入至記憶體,該等步驟包括:自主機接收一或多個資料區段以寫入至記憶體;將每一接收之資料區段之邏輯區段位址映射至一對應之實體位址中;及將該(等)資料區段寫入至一或多個實體頁中,該(等)實體頁在其各別之實體位址範圍中具有映射有該(等)邏輯區段位址的該(等)實體位址。藉由若干步驟而自記憶體讀取資料,該等步驟包括:自主機接收一用以自記憶體讀取一或多個資料區段的命令;將每一資料區段之邏輯區段位址映射至一對應之實體位址中;及自一或多個實體頁讀取該(等)資料區段,該(等)實體頁在其各別之實體位址範圍中具有映射有該(等)邏輯區段位址的該(等)實體位址。Preferably, each physical page has a respective physical address range and each data segment has a respective logical sector address. Writing data to the memory by a number of steps includes: receiving one or more data segments from the host to write to the memory; mapping the logical sector addresses of each of the received data segments to a corresponding physical address; and writing the (etc.) data section to one or more physical pages, the (etc.) physical page having the mapping in its respective physical address range (etc. The (etc.) physical address of the logical sector address. Reading data from the memory by a number of steps, the steps comprising: receiving a command from the host to read one or more data segments from the memory; mapping the logical sector addresses of each data segment And corresponding to the physical address; and reading the (etc.) data section from one or more physical pages, the (etc.) physical page having the mapping in the respective physical address range of the (etc.) The (etc.) physical address of the logical sector address.
可參看圖式及隨附說明來更好地理解根據本發明經由一非及介面來存取一記憶體設備的原理及操作。The principles and operation of accessing a memory device via a non-interface can be better understood with reference to the drawings and accompanying description.
現將依據特定例示性實施例來描述本發明。將理解,本發明並不限於下文所描述之例示性實施例。亦應理解,並不需要所描述之該等控制器、包括控制器之系統及讀取方法以及資料中的每一特徵來實施如附加之申請專利範圍中之任何特定一請求項中所主張的本發明。描述了設備之各種元件及特徵以使得能完全實現本發明。亦應理解,貫穿此揭示內容,在展示或描述一過程或方法之處,可以任何次序或同時執行該方法之步驟,除非自上下文可瞭解一步驟視另一首先執行之步驟而定。The invention will now be described in terms of specific exemplary embodiments. It will be understood that the invention is not limited to the illustrative embodiments described hereinafter. It should also be understood that each of the controllers, the system including the controller, and the method of reading, and each of the features described herein, are not required to be implemented as claimed in any particular claim in the appended claims. this invention. Various elements and features of the device are described to enable full implementation of the invention. It is also to be understood that the steps of the method may be carried out in any order or concurrently, as illustrated or described in the context of the present disclosure.
本發明之控制器係一向主機側輸出一邏輯非及介面之非及控制器,即使由該控制器控制的非及設備之實體頁具有不同於區段大小的大小,該邏輯非及介面仍支援將區段作為資料轉移單位。本發明之控制器處理如由主機所見之邏輯區段至如由非及設備所見之實體頁的映射。The controller of the present invention outputs a logical non-interface and a controller to the host side. Even if the physical page of the non-device controlled by the controller has a size different from the size of the segment, the logical non-interface supports Use the section as a data transfer unit. The controller of the present invention processes the mapping of logical segments as seen by the host to physical pages as seen by the device.
本文中將一"非及快閃記憶體設備"界定為電子電路,該電子電路包括複數個非及快閃記憶體單元及任何必需之用於將資料儲存於該等非及快閃記憶體單元內的控制電路(例如,用於提供一快閃型介面之電路)。應注意,"非及快閃記憶體設備"不必具有其專用外殼,且可與另一"設備"(諸如一控制器)一起而常駐於一單一外殼內。在本發明之某些實施例中,"非及快閃記憶體設備"直接安裝於一印刷電路板上而無任何介入封裝。A "non-flash memory device" is defined herein as an electronic circuit that includes a plurality of non-flash memory cells and any necessary data for storing data in the non-flash memory cells. Internal control circuitry (eg, circuitry for providing a flash interface). It should be noted that the "non-flash memory device" does not have to have its own dedicated housing and can reside in a single housing along with another "device" such as a controller. In some embodiments of the invention, "non-flash memory devices" are mounted directly on a printed circuit board without any intervening packages.
再次參看該等圖式,圖5A係根據本發明之某些實施例之控制器130的示意性方塊圖。控制器130包括一用於建立介面至一非及快閃設備之快閃記憶體設備側非及介面142。快閃記憶體設備側非及介面142係一主機型非及介面(亦即,經調適以經由非及介面而起始相互作用,且將一主機設備呈現給一非及快閃設備)。Referring again to the drawings, Figure 5A is a schematic block diagram of a controller 130 in accordance with some embodiments of the present invention. The controller 130 includes a flash memory device side interface 142 for establishing an interface to a non-flash device. The flash memory device side interface 142 is a host type non-interface (ie, adapted to initiate interaction via a non-interface and present a host device to a non-flash device).
控制器130亦包括一用於建立介面至一支援一非及介面協定之主機的主機側非及介面144。主機側非及介面144係一快閃記憶體型非及介面(亦即,控制器130經調適以向主機呈現一非及快閃記憶體儲存設備)。該控制器可視情況包括一或多個額外主機側介面146,該(等)主機側介面146用於使用非非及介面(諸如USB或MMC介面)而將該控制器建立介面至主機。The controller 130 also includes a host side interface 144 for establishing an interface to a host supporting a non-interface agreement. The host side interface 144 is a flash memory type interface (ie, the controller 130 is adapted to present a non-flash memory storage device to the host). The controller may optionally include one or more additional host side interfaces 146 for establishing the interface to the host using a non-non-interface (such as a USB or MMC interface).
如圖5A中所示,控制器130進一步包括一ECC模組132,該ECC模組132用於偵測及校正經由設備側介面142而自非及設備擷取之資料中的所有或一些誤差。ECC模組132可包括硬體、軟體、韌體或其任何組合。ECC模組132可校正所有誤差,在該狀況下,非及控制器130向主機輸出一不含誤差之非及設備。或者,ECC模組132可僅校正在經由快閃記憶體設備側非及介面142而自非及設備擷取之資料中所發現的一些誤差。As shown in FIG. 5A, the controller 130 further includes an ECC module 132 for detecting and correcting all or some of the errors in the data retrieved from the non-device by the device side interface 142. The ECC module 132 can include hardware, software, firmware, or any combination thereof. The ECC module 132 can correct all errors, and in this case, the controller 130 outputs a non-error-free device to the host. Alternatively, the ECC module 132 may only correct some of the errors found in the data retrieved from the non-compliant device via the flash memory device side interface 142.
非及控制器130亦包括一或多個用於提供其他功能性(諸如加密功能性或將自主機接收之邏輯快閃位址映射至被發送至快閃設備之實體快閃位址的位址映射)之模組134(例如,包括硬體、軟體、韌體或其任何組合)。由於控制器130輸出一邏輯介面,所以控制器130必須至少包括邏輯-實體位址轉譯之功能性。其他功能性係可選的。The controller 130 also includes one or more addresses for providing other functionality, such as cryptographic functionality or mapping logical flash addresses received from the host to physical flash addresses that are sent to the flash device. Mapped) module 134 (eg, including hardware, software, firmware, or any combination thereof). Since controller 130 outputs a logical interface, controller 130 must include at least the functionality of logical-physical address translation. Other functional options are optional.
圖5B係一包括圖5A中所描述之外部非及控制器130(亦即,一與主機設備分離之控制器)之例示性系統的示意性方塊圖。經由設備側非及介面142,外部非及控制器130與圖2及圖3A之非及快閃設備120A建立介面。經由主機側非及介面144,非及控制器130與圖2之主機設備110A建立介面。Figure 5B is a schematic block diagram of an exemplary system including the external non-controller 130 (i.e., a controller separate from the host device) as depicted in Figure 5A. The external non-controller 130 establishes an interface with the non-flash device 120A of FIGS. 2 and 3A via the device side interface 142. The controller 130 establishes an interface with the host device 110A of FIG. 2 via the host side interface 144.
本發明之一創新特徵係控制器130使用資料區段而與主機110A相互作用。主機110A將區段寫入至控制器130且自控制器130讀取區段(在兩種狀況下皆使用邏輯位址)。另一方面,控制器130使用資料頁而與非及快閃記憶體設備120A相互作用,其中頁具有不同於區段之大小。An innovative feature of the present invention is that the controller 130 interacts with the host 110A using the data section. Host 110A writes the segment to controller 130 and reads the segment from controller 130 (using logical addresses in both cases). Controller 130, on the other hand, uses a profile page to interact with non-flash memory device 120A, where the page has a different size than the segment.
圖6A展示了圖5A中所描述之例示性系統之例示性晶粒組態。因此,非及控制器130包括製造於一控制器晶粒131上之電子電路135,而非及快閃設備120A包括製造於一快閃晶粒133上之電子電路137。控制器晶粒131及快閃晶粒133係不同、獨立晶粒。FIG. 6A illustrates an exemplary die configuration of the exemplary system depicted in FIG. 5A. Thus, the non-controller 130 includes an electronic circuit 135 fabricated on a controller die 131, and the non-flash device 120A includes an electronic circuit 137 fabricated on a flash die 133. The controller die 131 and the flash die 133 are different and independent dies.
應注意,在如圖5A中所說明之非及控制器130內的元件(亦即,ECC模組132、快閃型非及介面144、主機型非及介面142及146)係至少部分地藉由常駐於控制器晶粒131上之控制器電子電路135來實施。It should be noted that the components in the controller 130 (ie, the ECC module 132, the flash type interface 144, the host type interface 142 and 146) are at least partially borrowed as illustrated in FIG. 5A. It is implemented by controller electronics 135 resident on controller die 131.
控制器電子電路135與快閃電子電路137之間的介面142係一"晶粒間"介面。如本文中所使用,一"晶粒間介面"(例如,一晶粒間非及介面)經操作以在常駐於不同晶粒上的電子電路之兩個不同單元之間建立介面(例如,提供必需之用於使電子電路之不同單元(例如)使用一或多個特定協定而彼此通信的實體及邏輯基礎架構)。因此,晶粒間介面142包括必需之用於在常駐於獨立晶粒130及133上的電子電路之兩個不同單元135與137之間建立介面的實體元件(襯墊、輸出及輸入驅動器等等)。The interface 142 between the controller electronics 135 and the flash electronic circuit 137 is an "inter-die" interface. As used herein, an "inter-die interface" (eg, a inter-die interface) is operative to establish an interface between two different cells of an electronic circuit resident on different dies (eg, provide Necessary physical and logical infrastructure for enabling different units of an electronic circuit to communicate with each other, for example, using one or more specific protocols. Thus, the inter-die interface 142 includes the physical components (pads, output and input drivers, etc.) necessary to establish an interface between two different cells 135 and 137 of electronic circuitry resident on the individual dies 130 and 133. ).
根據本發明之某些實施例,一晶粒間介面在製造於兩個被封裝於一共同封裝中之不同晶粒上的電子電路之間建立介面。此實例被說明於圖6B中,其中非及控制器130及非及快閃設備120A兩者常駐於一共同多晶片封裝139內。In accordance with some embodiments of the present invention, an inter-die interface creates an interface between two electronic circuits fabricated on different dies that are packaged in a common package. This example is illustrated in FIG. 6B in which both the controller 130 and the non-flash device 120A reside in a common multi-chip package 139.
或者,該晶粒間介面在製造於兩個被封裝於不同封裝中之不同晶粒(例如,其中每一晶粒被封裝於其自己的封裝中)上的電子電路之間建立介面。此實例被說明圖6C中,該圖展示了常駐於獨立的各別封裝141及143中的非及控制器130及非及快閃設備120A。非及控制器130常駐於控制器封裝141內,而非及快閃設備120A常駐於快閃封裝143內。因此,如圖6C中所說明,介面142係一"封裝間介面"。Alternatively, the inter-die interface establishes an interface between electronic circuits fabricated on two different dies that are packaged in different packages (eg, each of which is packaged in its own package). This example is illustrated in Figure 6C, which shows the non-controller 130 and non-flash device 120A resident in separate individual packages 141 and 143. The controller 130 is resident in the controller package 141, and the flash device 120A is not resident in the flash package 143. Thus, as illustrated in Figure 6C, interface 142 is an "inter-package interface."
該等晶粒常駐於一共同封裝中(例如,如圖6B中所示)及該等晶粒常駐於獨立封裝中(例如,如圖6C中所示)的實施例並非所有可能之組態。Embodiments in which the dies are resident in a common package (eg, as shown in FIG. 6B) and the dies are resident in a separate package (eg, as shown in FIG. 6C) are not all possible configurations.
因此,或者,在某些實施例中,晶粒間介面在製造於兩個不同晶粒上之電子電路之間建立介面,其中此等晶粒中之一者或兩者根本不具有封裝。舉例而言,在許多應用中,由於需要節約空間,所以將記憶體晶粒提供(例如,安裝(例如,直接安裝))於板上而根本不進行封裝。因此,在一實例中,應注意,在新一代用於電話之記憶卡中,通常將記憶體晶粒安裝於板上而根本不進行封裝。如本文中所使用,將"直接安裝"於一印刷電路板上之晶粒安裝於印刷電路板上而不首先進行封裝。此等實施例被說明於圖6D、6E及6F中。圖6D展示了被封裝於控制器封裝141中之非及控制器130(如圖6C中)及直接安裝於一印刷電路板145上之非及快閃設備120A。圖6E展示了被封裝於快閃封裝143中之非及快閃設備120A(如圖6C中)及直接安裝於一印刷電路板147上之非及控制器130。圖6F展示了皆被直接安裝於一共同印刷電路板149上的非及控制器130及非及快閃設備120A。Thus, or in some embodiments, the inter-die interface establishes an interface between electronic circuits fabricated on two different dies, wherein one or both of these dies do not have a package at all. For example, in many applications, memory dies are provided (eg, mounted (eg, directly mounted)) on a board without packaging at all due to the need for space savings. Therefore, in an example, it should be noted that in a new generation of memory cards for telephones, the memory die is typically mounted on a board without packaging at all. As used herein, a die that is "directly mounted" on a printed circuit board is mounted on a printed circuit board without first being packaged. These embodiments are illustrated in Figures 6D, 6E and 6F. 6D shows the non-flash device 120A packaged in the controller package 141 and not directly to the controller 130 (as in FIG. 6C) and directly mounted on a printed circuit board 145. 6E shows the non-flash controller 120A (as in FIG. 6C) packaged in the flash package 143 and the non-controller 130 mounted directly on a printed circuit board 147. Figure 6F shows the non-controller 130 and non-flash device 120A, both mounted directly on a common printed circuit board 149.
儘管通常情況為將一輸出一邏輯介面之非及控制器實施於一與該控制器所控制之非及設備分離之晶粒上,但此對於本發明而言並不重要。因此,當將非及設備及非及控制器實施於一共同單一晶粒上時,本發明亦為可適用的。圖6G展示了非及控制器130及非及快閃設備120A皆被製造於一共同晶粒151上。Although it is common practice to implement an output-logic interface and a controller on a die that is separate from the device controlled by the controller, this is not critical to the invention. Therefore, the present invention is also applicable when the non-device and the non-controller are implemented on a common single die. Figure 6G shows that both the controller 130 and the non-flash device 120A are fabricated on a common die 151.
圖7係一種方法之流程圖,藉由該方法,主機110A(亦即,一在該設備內包括一非及控制器114之主機)經由外部非及控制器130而將資料(例如,一資料區段)寫入至非及儲存設備120A。如圖7中所示,主機110A向外部控制器130發出(區塊410)一寫入命令(例如,一使用非及介面協定而發出之寫入命令,其包括命令位元組、位址位元組及資料位元組,其中該命令定址一邏輯區段)。7 is a flow chart of a method by which a host 110A (ie, a host that includes a controller other than the controller 114) transmits data (eg, a profile via the external controller 130). The segment is written to the non-storage device 120A. As shown in FIG. 7, host 110A issues (block 410) a write command to external controller 130 (eg, a write command issued using a non-interface protocol, including command byte, address bits) A tuple and a data byte, where the command addresses a logical section).
非及控制器130接收由主機110A所發出之邏輯區段寫入命令(例如,經由主機側非及介面144)。在接收該寫入命令之後,控制器130計算(區塊420)將儲存區段資料之一實體頁數目。若需要,控制器130可自非及設備120A讀取先前所儲存之區段且將此等區段之資料與新近接收之區段之資料合併,因此產生將被寫入至所計算之實體頁中的資料。控制器130接著向非及設備120A發出(區塊430)一實體頁寫入命令(例如,經由快閃記憶體設備側介面142)。再次,根據非及介面協定而發出該命令,其包括命令位元組、位址位元組及資料位元組。在區塊440中,非及快閃儲存設備120A將其所接收之資料位元組儲存至規定之實體頁之非揮發性記憶體單元中,因此實現主機110A之請求。The controller 130 receives the logical sector write command issued by the host 110A (e.g., via the host side interface 144). After receiving the write command, the controller 130 calculates (block 420) the number of physical pages that will store the segment data. If desired, the controller 130 can read the previously stored segments from the device 120A and merge the data of the segments with the newly received segment data, thus generating a page to be written to the calculated entity page. Information in the middle. The controller 130 then issues (block 430) a physical page write command to the non-device 120A (e.g., via the flash memory device side interface 142). Again, the order is issued in accordance with the non-interface agreement, which includes the command byte, the address byte, and the data byte. In block 440, the non-flash storage device 120A stores the data bytes it receives into the non-volatile memory unit of the specified physical page, thus implementing the request of the host 110A.
圖8係一種方法之流程圖,藉由該方法,主機110A(亦即,一在該設備內包括一非及控制器114之主機)經由外部非及控制器130而自非及儲存設備120A讀取資料(例如,一資料區段)。主機110A向外部控制器130發出(區塊510)一讀取命令(例如,一使用非及介面協定而發出之讀取命令,包括命令位元組及位址位元組,其中該命令定址一邏輯區段)。8 is a flow chart of a method by which a host 110A (ie, a host that includes a controller other than the controller 114) is read from the non-storage device 120A via the external controller 130. Take the data (for example, a data section). The host 110A issues (block 510) a read command to the external controller 130 (eg, a read command issued using a non-interface protocol, including a command byte and an address byte, wherein the command addresses one Logical section).
外部非及控制器130接收由主機110A所發出之邏輯區段讀取命令(例如,經由主機側非及介面144)。在接收該讀取命令之後,外部控制器130向非及設備120A發出(區塊520)一實體頁讀取命令(例如,經由設備側非及介面142)。再次,根據非及介面協定而發出命令,包括命令位元組及位址位元組。藉由控制器130根據由主機110A在區塊510中所提供之邏輯區段位址且根據由控制器130所維護之映射表來計算被嵌入於該命令中之實體頁位址。在區塊530中,非及快閃儲存設備120A自其非揮發性單元陣列擷取所請求之實體頁資料。在區塊540中,將資料位元組發送至外部非及控制器130。藉由一系列由控制器130所產生之讀取選通而根據非及介面協定來完成此發送,其中每一讀取選通按順序將一個位元組或一個字組(視所使用之非及介面寬度是8個位元還是16個位元而定)讀取至控制器130中。控制器130可讀取實體頁之所有資料,或控制器130可選擇性地僅讀取彼等對應於所請求之邏輯區段的資料位元組。在區塊550中,外部非及控制器130自實體頁資料提取邏輯區段資料。此僅在控制器130在區塊540中讀取實體頁之所有資料時才有必要。在區塊560中,經由主機側非及介面144而將邏輯區段之所提取之資料位元組發送至主機110A。藉由一系列由主機110A所產生之讀取選通而根據非及介面協定再次執行發送。主機110A現具有主機110A最初儲存至快閃記憶體中的邏輯區段之相同資料位元組。The external NOT controller 130 receives the logical segment read command issued by the host 110A (e.g., via the host side interface 144). After receiving the read command, the external controller 130 issues (block 520) a physical page read command to the non-compliant device 120A (eg, via the device side interface 142). Again, commands are issued based on non-interface protocols, including command bytes and address bytes. The physical page address embedded in the command is calculated by the controller 130 based on the logical sector address provided by the host 110A in block 510 and according to the mapping table maintained by the controller 130. In block 530, the non-flash storage device 120A retrieves the requested physical page material from its non-volatile cell array. In block 540, the data byte is sent to the external non-controller 130. This transmission is accomplished according to a non-interface protocol by a series of read strobes generated by controller 130, each of which reads a byte or a block in order (depending on the use of the strobe) And the interface width is 8 bits or 16 bits) read into the controller 130. The controller 130 can read all of the material of the physical page, or the controller 130 can selectively read only the data bytes corresponding to the requested logical segment. In block 550, the external controller 130 extracts logical segment data from the physical page data. This is only necessary if the controller 130 reads all of the material of the physical page in block 540. In block 560, the extracted data byte of the logical segment is sent to host 110A via host side non-interface 144. The transmission is performed again according to the non-interface protocol by a series of read strobes generated by the host 110A. Host 110A now has the same set of data bits that host 110A initially stores into the logical segments in the flash memory.
可以以下方式中之任一者來建構一併入有一快閃記憶體設備及一控制器且併入有本發明之方法的快閃記憶體儲存系統:a.記憶體系統僅接受操縱邏輯區段之命令,且不接受操縱邏輯頁之命令。A flash memory storage system incorporating a flash memory device and a controller incorporating the method of the present invention can be constructed in any of the following ways: a. The memory system only accepts the manipulation logic segment The command, and does not accept the command to manipulate the logical page.
b.記憶體系統接受操縱邏輯區段之命令及操縱邏輯頁之命令兩者。一模式改變命令在兩種模式(一種模式用於一類型之命令)之間切換該系統。b. The memory system accepts both commands to manipulate the logical section and commands to manipulate the logical page. A mode change command switches the system between two modes (one mode for one type of command).
c.記憶體系統接受操縱邏輯區段之命令及操縱邏輯頁之命令兩者。該等模式中之一者為預設模式,且在一命令前之前置項指示應將該命令解譯為非預設模式之命令。c. The memory system accepts both the command to manipulate the logical section and the command to manipulate the logical page. One of the modes is a preset mode, and a pre-command pre-order indicates that the command should be interpreted as a non-preset mode command.
d.記憶體系統接受操縱邏輯區段之命令及操縱邏輯頁之命令兩者。一在供電時被施加至系統之接觸插腳中之一者的電信號選擇該兩種模式中之一者。舉例而言,選擇插腳處之"1"位準指示應將所有命令理解為以區段為基礎之命令,而選擇插腳處之"0"位準指示應將所有命令理解為以頁為基礎之命令。d. The memory system accepts both the command to manipulate the logical section and the command to manipulate the logical page. An electrical signal applied to one of the contact pins of the system at the time of power supply selects one of the two modes. For example, selecting the "1" level indication at the pin should be interpreted as a segment-based command, and selecting the "0" level at the pin should interpret all commands as page-based. command.
e.記憶體系統接受操縱邏輯區段之命令及操縱邏輯頁之命令兩者。一在執行時間被施加至系統之接觸插腳中之一者的電信號選擇該兩種模式中之一者。舉例而言,選擇插腳處之"1"位準指示應將所有在當前時間執行之命令理解為以區段為基礎之命令,而選擇插腳處之"0"位準指示應將所有在當前時間執行之命令理解為以頁為基礎之命令。e. The memory system accepts both the command to manipulate the logical section and the command to manipulate the logical page. An electrical signal that is applied to one of the contact pins of the system at the time of execution selects one of the two modes. For example, selecting the "1" level indication at the pin should interpret all commands executed at the current time as segment-based commands, and selecting the "0" level at the pin should indicate all at the current time. The executed command is understood to be a page-based command.
對於在一系統中支援以區段為基礎之命令及以頁為基礎之命令兩者的所有以上實施而言,一寫入命令中所提供之資料的量視該寫入命令為一頁命令還是一區段命令而定。換言之,在一以頁為基礎之寫入命令包括(例如)發送2 Kbyte之資料時,一以區段為基礎之寫入命令包括(例如)僅發送0.5 Kbyte。類似地,主機可在一讀取命令中擷取之資料的量亦視該讀取命令為一頁命令還是一區段命令而定。For all of the above implementations that support both segment-based and page-based commands in a system, the amount of data provided in a write command depends on whether the write command is a one-page command or According to a section command. In other words, when a page-based write command includes, for example, transmitting 2 Kbytes of data, a segment-based write command includes, for example, only transmitting 0.5 Kbytes. Similarly, the amount of data that the host can retrieve in a read command depends on whether the read command is a one-page command or a segment command.
在所有類型之邏輯介面中,不管邏輯介面是以區段為基礎還是以頁為基礎,唯一由主機提供至儲存系統之資料係使用者資料。換言之,當儲存一邏輯區段時,由主機發送恰好512個位元組。此與實體非及介面相反,其中一些額外資料位元組有時由主機提供並被儲存於一"額外"或"備用"區域中。此等位元組可含有通常用於快閃管理演算法之控制資訊。由於邏輯介面將快閃管理之重擔交給記憶體系統,所以主機被免除彼任務且無需處理控制資訊。In all types of logical interfaces, regardless of whether the logical interface is segment-based or page-based, the only data provided by the host to the storage system is user data. In other words, when storing a logical segment, exactly 512 bytes are transmitted by the host. This is in contrast to physical non-interfaces, some of which are sometimes provided by the host and stored in an "extra" or "alternate" area. These bytes can contain control information typically used for flash management algorithms. Since the logical interface hands over the burden of flash management to the memory system, the host is exempt from the task and does not need to process control information.
以區段為基礎之命令的結構可與以頁為基礎之命令的結構相同。可使用相同之用於讀取及寫入命令的操作碼(分別為操作碼00H及80H)。提供於一以區段為基礎之命令內的邏輯區段位址對應於提供於一以頁為基礎之命令內的頁位址。一以區段為基礎之命令亦可允許將該區段內之一特定位元組規定為一開始點,此類似於一以頁為基礎之非及命令允許規定此開始點之方式。然而,此係可選的,且一系統可如此實施使得僅寫入及讀取完整區段。The structure of a section-based command can be the same as the structure of a page-based command. The same opcode for the read and write commands (operating codes 00H and 80H, respectively) can be used. The logical sector address provided within a sector-based command corresponds to a page address provided within a page-based command. A segment-based command may also allow a particular byte within the segment to be specified as a starting point, similar to a page-based non-and command that allows for the starting point to be specified. However, this is optional and a system can be implemented such that only the complete segment is written and read.
現可見,即使當一非及設備之實體頁在大小方面不同於主機電腦之作業系統之區段,本發明仍允許吾人受益於一邏輯非及介面。It can be seen that the present invention allows us to benefit from a logical interface even when a physical page other than the device is different in size from the operating system of the host computer.
在本文中及附加之申請專利範圍中的描述中,使用動詞"包含"、"包括"及"具有"以及其之動詞變化形式中之每一者來指示該動詞之一或多個賓語不必為該動詞之一或多個主語的構件、組件、元件或部件之一完整清單。In the description herein and in the appended claims, each of the verbs "comprising," "including," and "having" and verb variations thereof is used to indicate that one or more of the verbs are not necessarily A complete list of one of the components, components, components or components of one or more of the verbs.
本發明已使用對其實施例之詳細描述而加以描述,借助於實例而提供該等詳細描述且其並不意欲限制本發明之範疇。所描述之實施例包括不同特徵,在本發明之所有實施例中並不需要所有該等特徵。本發明之一些實施例僅利用一些該等特徵或該等特徵之一些可能組合。熟習此項技術者將不難想起所描述之本發明之實施例及包括在所描述之實施例中所提及之特徵之不同組合的本發明之實施例的變化。The present invention has been described in detail with reference to the embodiments of the invention The described embodiments include different features, all of which are not required in all embodiments of the invention. Some embodiments of the invention utilize only some of these features or some possible combinations of such features. It will be readily apparent to those skilled in the art that variations of the embodiments of the invention described herein and the various combinations of the features recited in the described embodiments.
110A...主機設備110A. . . Host device
110B...主機110B. . . Host
112A...主機處理器112A. . . Host processor
112B...主機處理器112B. . . Host processor
114...非及控制器114. . . Non-controller
116...非及控制器116. . . Non-controller
118...非及控制器118. . . Non-controller
120A...非及快閃設備120A. . . Non-flash device
120B...非及設備120B. . . Non-device
122...主機側USB介面122. . . Host side USB interface
124...設備側非及介面124. . . Device side non-interface
130...控制器130. . . Controller
131...控制器晶粒131. . . Controller die
132...ECC模組132. . . ECC module
133...快閃晶粒133. . . Flash crystal
134...模組134. . . Module
135...電子電路135. . . electronic circuit
137...快閃電子電路137. . . Flash electronic circuit
139...多晶片封裝139. . . Multi-chip package
141...控制器封裝141. . . Controller package
142...快閃記憶體設備側介面/主機側非及介面142. . . Flash memory device side interface / host side non-interface
143...快閃封裝143. . . Flash package
144...快閃型非及介面/主機側非及介面144. . . Flash type non-interface/host side non-interface
145...印刷電路板145. . . A printed circuit board
146...主機側介面146. . . Host side interface
147...印刷電路板147. . . A printed circuit board
149...共同印刷電路板149. . . Common printed circuit board
151...共同晶粒151. . . Common grain
圖1A說明了以1位元模式而被程式化的快閃單元之臨限電壓分布;圖1B說明了以2位元模式而被程式化的快閃單元之臨限電壓分布;圖2係一先前技術資料處理系統之高階示意性方塊圖,其中一快閃記憶體設備之一控制器被包括於該快閃記憶體設備之一主機中;圖3A及圖3B係一先前技術資料處理系統之高階示意性方塊圖,其中一快閃記憶體設備之一控制器獨立於該快閃記憶體設備之一主機及該快閃記憶體設備兩者;圖4係一先前技術資料處理系統之一高階示意性方塊圖,其中一快閃記憶體設備之一控制器被包括於該快閃記憶體設備中;圖5A係本發明之控制器之一高階示意性方塊圖;圖5B係一包括圖5A之控制器之資料處理系統的高階示意性方塊圖;圖6A至6G說明了用於封裝圖5B之資料處理系統之組件的各種選擇;圖7係根據本發明將資料寫入至一記憶體之流程圖;圖8係根據本發明自一記憶體讀取資料之方法的流程圖。Figure 1A illustrates the threshold voltage distribution of a flash cell that is programmed in a 1-bit mode; Figure 1B illustrates the threshold voltage distribution of a flash cell that is programmed in a 2-bit mode; Figure 2 is a A high-level schematic block diagram of a prior art data processing system, wherein a controller of a flash memory device is included in one of the flash memory devices; FIG. 3A and FIG. 3B are prior art data processing systems. a high-order schematic block diagram in which one controller of a flash memory device is independent of both the host of the flash memory device and the flash memory device; FIG. 4 is a high-order one of the prior art data processing systems Schematic block diagram, in which a controller of a flash memory device is included in the flash memory device; FIG. 5A is a high-order schematic block diagram of one of the controllers of the present invention; FIG. 5B is a diagram including FIG. 5A High-level schematic block diagram of the data processing system of the controller; Figures 6A through 6G illustrate various options for packaging the components of the data processing system of Figure 5B; Figure 7 is for writing data to a memory in accordance with the present invention. flow chart; Figure 8 is a flow diagram of a method of reading data from a memory in accordance with the present invention.
130...控制器130. . . Controller
132...ECC模組132. . . ECC module
134...模組134. . . Module
142...快閃記憶體設備側非及介面/主機側非及介面142. . . Flash memory device side non-interface and host side non-interface
144...快閃型非及介面/主機側非及介面144. . . Flash type non-interface/host side non-interface
146...主機側介面146. . . Host side interface
Claims (35)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US82294806P | 2006-08-21 | 2006-08-21 | |
| US11/806,702 US20080046630A1 (en) | 2006-08-21 | 2007-06-04 | NAND flash memory controller exporting a logical sector-based interface |
| US11/806,701 US20080046641A1 (en) | 2006-08-21 | 2007-06-04 | NAND flash memory controller exporting a logical sector-based interface |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200815991A TW200815991A (en) | 2008-04-01 |
| TWI387878B true TWI387878B (en) | 2013-03-01 |
Family
ID=39060245
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW96130794A TWI387878B (en) | 2006-08-21 | 2007-08-20 | A nand flash memory controller exporting a logical sector-based interface |
Country Status (3)
| Country | Link |
|---|---|
| KR (1) | KR20090054958A (en) |
| TW (1) | TWI387878B (en) |
| WO (1) | WO2008023368A2 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8219781B2 (en) * | 2008-11-06 | 2012-07-10 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
| US9959203B2 (en) | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
| CN104461959B (en) * | 2014-11-05 | 2017-04-19 | 福州瑞芯微电子股份有限公司 | Method and device for distinguishing NOR Flash from NAND Flash |
| US9952769B2 (en) | 2015-09-14 | 2018-04-24 | Microsoft Technology Licensing, Llc. | Data storage system with data storage devices operative to manage storage device functions specific to a particular data storage device |
| TWI619023B (en) * | 2016-11-30 | 2018-03-21 | 瑞昱半導體股份有限公司 | Memory control circuit and method thereof |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1146428B1 (en) * | 2000-04-13 | 2008-01-23 | A-DATA Technology Co., Ltd. | Multi-interface memory card and adapter module for the same |
| GB0123412D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
| TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
| US7594135B2 (en) * | 2003-12-31 | 2009-09-22 | Sandisk Corporation | Flash memory system startup operation |
-
2007
- 2007-08-20 TW TW96130794A patent/TWI387878B/en not_active IP Right Cessation
- 2007-08-21 KR KR1020097001528A patent/KR20090054958A/en not_active Ceased
- 2007-08-21 WO PCT/IL2007/001041 patent/WO2008023368A2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008023368A2 (en) | 2008-02-28 |
| TW200815991A (en) | 2008-04-01 |
| KR20090054958A (en) | 2009-06-01 |
| WO2008023368A3 (en) | 2008-06-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20080046630A1 (en) | NAND flash memory controller exporting a logical sector-based interface | |
| US20080046641A1 (en) | NAND flash memory controller exporting a logical sector-based interface | |
| CN101366182B (en) | A nand flash memory controller exporting a nand interface | |
| US8612791B2 (en) | Method of selective power cycling of components in a memory device independently by turning off power to a memory array or memory controller | |
| CN102054534B (en) | Comprise power source-responsive fault-signal and refresh the nonvolatile semiconductor memory of power-fail circuit, of write data | |
| US12360665B2 (en) | Storage device for executing processing code and operating method of the storage device | |
| CN103137197B (en) | Semiconductor storage unit and its read method and data storage device | |
| US20130191580A1 (en) | Controller, System, and Method for Mapping Logical Sector Addresses to Physical Addresses | |
| TWI631460B (en) | Data reading method, memory control circuit unit and memory storage device | |
| EP4180977B1 (en) | Parameter change command for storage device interface tuning | |
| TWI387878B (en) | A nand flash memory controller exporting a logical sector-based interface | |
| CN112783431A (en) | Storage device and operation method thereof | |
| KR20170094674A (en) | Data storage device | |
| KR20170109344A (en) | Data storage device and operating method thereof | |
| US20220011975A1 (en) | Method and apparatus and computer program product for configuring reliable command | |
| US20240402945A1 (en) | Storage device and prefetch method thereof | |
| KR20230011214A (en) | Storage device and operating method thereof | |
| Eshghi et al. | SSD Architecture and PCI Express | |
| KR20220045342A (en) | Host device, Data storage device, Data processing system and Data processing method | |
| KR102509646B1 (en) | Storage device | |
| CN115617705B (en) | Storage devices and their operation methods |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |