TW201225100A - Dynamic optimization of back-end memory system interface - Google Patents

Dynamic optimization of back-end memory system interface Download PDF

Info

Publication number
TW201225100A
TW201225100A TW100124825A TW100124825A TW201225100A TW 201225100 A TW201225100 A TW 201225100A TW 100124825 A TW100124825 A TW 100124825A TW 100124825 A TW100124825 A TW 100124825A TW 201225100 A TW201225100 A TW 201225100A
Authority
TW
Taiwan
Prior art keywords
circuit
memory
controller
data
error
Prior art date
Application number
TW100124825A
Other languages
Chinese (zh)
Other versions
TWI482169B (en
Inventor
Chun Sing Jackson Chung
Steven Shisan Cheng
Eran Erez
Original Assignee
Sandisk Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/835,292 external-priority patent/US8464135B2/en
Priority claimed from US13/087,640 external-priority patent/US9069688B2/en
Application filed by Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW201225100A publication Critical patent/TW201225100A/en
Application granted granted Critical
Publication of TWI482169B publication Critical patent/TWI482169B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)

Abstract

A structure, and corresponding operating techniques, are presented for the internal controller to memory circuit interface for memory systems such a flash memory card or other similarly structured devices. The interface between the controller circuit and memory circuit (or circuits) includes a feedback process where the amount of error that arises due to controller-memory transfers is monitored and the transfer characteristics (such as clock rate, drive strength, etc. ) can be modified accordingly. Techniques are also presented for dynamically optimizing the performance of the controller-memory (or ''back-end'') interface of a non-volatile memory system. Memory systems are usually designed to have a certain amount of error tolerance for error that can then be corrected by ECC. In may circumstances, such as when a device is new, the ECC capabilities of the system exceed what is needed to correct data storage errors. In these circumstances the memory system internally allots a non-zero portion of this error correction capacity to the back-end interface. This allows for the interface to operate at, for example, higher speed or lower power, even though this will likely lead to transmission path error. The system can also calibrate the back-end interface to determine that amount of error that result from various operating conditions, allowing the operating parameters of the back-end interface to be set according to amount of error that is allotted to the transfer process.

Description

201225100 六、發明說明: 【發明所屬之技術領域】 本申請案係關於諸如半導體快閃記憶體等可再程式化非 揮發性記憶體系統之操作,且更特定而言係關於該記憶體 系統之控制器與記憶體電路之間的内部介面。 【先前技術】 最近,具有非揮發性電荷儲存能力之固態記憶體,尤其 係作為-小形狀因數卡封裝之EEPRQM及快閃eepr〇m形 式之固態記憶體,已成為各種行動及手持裝置、特別係資 訊用具及消費型電子產品中之優選儲存裝置。不同於同樣 為固態記憶體之RAM(隨機存取記憶體),快閃記憶體係非 揮發性,且即使在關斷電源之後亦保持其所健存資料。此 外,不肖於ROM(唯讀記憶體),快閃記憶體類似於一磁碟 儲存裝置係可重寫的。儘管成本較高,然而快閃記憶體卻 正越來越多地用於大容量儲存應用中。基於旋轉磁性媒體 之習用大容量儲存裝置(諸如硬碟機及軟磁碟)不適合於行 動及手持環境。此乃因磁碟機往往較為笨重,易於發生機 械故障’且具有高延時及高電力要h此等不期望之屬性 使得基於磁碟之儲存裝置不適用於大多數行動及可攜式應 用。另一方面,快閃記憶體(嵌入式及呈一可抽換卡之^ 式兩者)因其小大小、低電力消耗、高速度及高可靠性特 徵而理想地適用於行動及手持環境。 快閃EEPROM類似於EEPROM(電可抹除及可程式化唯讀 記憶體),此乃因其係可被抹除的且使新資料寫入或「程 157533.doc 201225100 式化」至其記憶體胞中之—非揮發性記憶體。兩者皆在— 場效應電晶體結構中利用—浮動(未連接之)導電閘極1 浮動導電閘極定位於—半導體基板中之—通道區上方、源 極與汲極區之間。接著’在該浮動閘極上方提供-控制閉 極。该電晶體之臨限電壓特性受到該浮動閘極上所保持之 電荷量之控制。亦即,對於浮動閘極上之一給定電荷位 準,存在在「接通J電晶體以准許其源極區與汲極區之間 導電之前必須施加至控制閘極之一對應電壓(臨限值卜特 定而言,諸如快閃EEPROM之快閃記憶體允許同時抹除若 干個完整的記憶體胞區塊。 浮動閘極可保持一電荷範圍,且因此可被程式化至一臨 限電壓窗内之任一臨限電壓位準。該臨限電壓窗之大小由 裝置之最小臨限位準及最大臨限位準來定界,而裝置之最 小臨限位準及最大臨限位準又對應於可程式化至該浮動閘 極上之電荷範圍。臨限窗一般取決於記憶體裝置之特性、 操作條件及歷史。原則上,該窗内之每一不同可解析之臨 限電壓位準範圍皆可用於指定該胞之一明確記憶體狀態。 充當一記憶體胞之電晶體通常藉由兩種機制中之一者程 式化至一「經程式化」狀態。在「熱電子注入」中,施加 至沒極之一高電壓跨越基板通道區使電子加速。同時,施 加至控制閘極之一高電壓將熱電子穿過一薄閘極介電質拉 動至達浮動閘極上。在「穿隧注入」中,相對於基板向控 制閘極施加一高電壓。以此方式,將電子自基板拉至中間 浮動閘極。儘管歷史上係使用術語「程式化」來闡述藉由 157533.doc 201225100 將電子注入至記憶體胞之一經最初抹除電荷儲存單元以更 改記憶體狀態而向一記憶體寫入,但其現已與更常見術笋 諸如「寫入」或「記錄」互換使用。 可藉由若干種機制抹除記憶體裝置。對於eepr〇m,可 藉由相對於控制閘極向基板施加一高電壓以便誘使浮動閘 極中之電子穿過一薄氧化物穿隧至基板通道區(亦即,傅 勒-諾德翰穿隧(Fowler-Nordheim tunneling))來電抹除一記 憶體單兀。通常,可逐位元組地抹除EEpR〇N^對於快閃 EEPROM,記憶體係可一次電抹除其全部或每一次電抹除 一或多個最小可抹除區塊,其中一最小可抹除區塊可由一 或多個區段組成且每一區段可儲存512個位元組或5n個位 元組以上之資料。 記憶體裝置通常包含可安裝在一卡上之一或多個記憶體 晶片。每一記憶體晶片皆包含由周邊電路(諸如,解碼器 以及抹除、寫入及讀取電路)所支援之一記憶體單元陣 列。更複雜之記憶體裝置亦帶有一控制器,該控制器執行 智慧及較高階記憶體操作及介接。 存在現今正使用之諸多商業上成功之非揮發性固態記憶 體裝置。此等記憶體裝置可係快閃EEPROM或可採用其他 類型之非揮發性記憶體胞。在第5,070,032號、第5,095,344 號、第 5,315,541 號、第 5,343,063號及第 5,661,〇53號、第 5,3 13,421號及第6,222,762號美國專利中給出快閃記憶體及 系統以及其製造方法之實例。特定而言,具有NAND串結 構之快閃記憶體裝置闡述於第5,570,315號、第5,903,495 157533.doc -6 - 201225100 號二第6,(Μ6,935賴國專财n亦由具有用於儲存 電荷之一電介質層之記憶體胞製造非揮發性記憶體裝置。 其使用一介電層代替先前所闡述之導電浮動閘極元件。利 用介電儲存元件之此等記憶體裝置已由Eitan等人闡述, NROM . A Novel Localized Trapping, 2-Bit Nonvolatile201225100 VI. Description of the Invention: [Technical Field] The present application relates to the operation of a reprogrammable non-volatile memory system such as a semiconductor flash memory, and more particularly to the memory system The internal interface between the controller and the memory circuit. [Prior Art] Recently, solid-state memories with non-volatile charge storage capability, especially as solid-state memories in the form of small form factor card packages, EEPRQM and flash eepr〇m, have become various mobile and handheld devices, It is the preferred storage device in information appliances and consumer electronics. Unlike RAM (random access memory), which is also a solid-state memory, the flash memory system is non-volatile and retains its stored data even after the power is turned off. In addition, unlike ROM (read-only memory), flash memory is similar to a disk storage device that is rewritable. Despite the higher cost, flash memory is increasingly being used in mass storage applications. Conventional mass storage devices based on rotating magnetic media, such as hard disk drives and floppy disks, are not suitable for mobile and handheld environments. This is due to the fact that the disk drive tends to be cumbersome and prone to mechanical failures' and has high latency and high power. Such undesired attributes make disk-based storage devices unsuitable for most mobile and portable applications. On the other hand, flash memory (both embedded and in a removable card) is ideally suited for mobile and handheld environments due to its small size, low power consumption, high speed and high reliability. Flash EEPROM is similar to EEPROM (Electrically Erasable and Programmable Read Only Memory) because it can be erased and new data can be written or "processed" to "Memory 157533.doc 201225100" In the body cell - non-volatile memory. Both are used in the field effect transistor structure - floating (unconnected) conductive gate 1 floating conductive gate is positioned in the semiconductor substrate - above the channel region, between the source and the drain region. Next, a - control closure is provided above the floating gate. The threshold voltage characteristic of the transistor is controlled by the amount of charge held on the floating gate. That is, for a given charge level on one of the floating gates, there is a corresponding voltage that must be applied to the control gate before the J transistor is turned on to permit conduction between its source and drain regions. In particular, flash memory such as flash EEPROM allows several complete memory cell blocks to be erased simultaneously. The floating gate maintains a range of charges and can therefore be programmed to a threshold voltage window. Any threshold voltage level within the threshold voltage. The size of the threshold voltage window is delimited by the minimum threshold level and the maximum threshold level of the device, and the minimum threshold level and the maximum threshold level of the device are Corresponding to the range of charge that can be programmed onto the floating gate. The threshold window generally depends on the characteristics, operating conditions and history of the memory device. In principle, each different analyzable threshold voltage level range within the window It can be used to specify one of the cells to define the state of the memory. A transistor that acts as a memory cell is usually programmed into a "programmed" state by one of two mechanisms. In "hot electron injection", Applied to the endless The high voltage crosses the substrate channel region to accelerate the electrons. At the same time, a high voltage applied to one of the control gates pulls the hot electrons through a thin gate dielectric up to the floating gate. In "tunneling injection", The substrate applies a high voltage to the control gate. In this way, electrons are pulled from the substrate to the intermediate floating gate. Although historically the term "stylized" is used to describe the injection of electrons into the memory cell by 157533.doc 201225100 One writes to a memory by initially erasing the charge storage unit to change the state of the memory, but it is now used interchangeably with more common techniques such as "write" or "record". It can be erased by several mechanisms. Memory device. For eepr〇m, a high voltage can be applied to the substrate relative to the control gate to induce electrons in the floating gate to tunnel through the thin oxide to the substrate channel region (ie, Fule - Fowler-Nordheim tunneling) to erase a memory unit. Usually, EEpR〇N^ can be erased bit by byte. For flash EEPROM, the memory system can erase all of it at once. or Erasing one or more minimum erasable blocks at a time, wherein a minimum erasable block can be composed of one or more segments and each segment can store 512 bytes or more than 5n bytes The memory device typically includes one or more memory chips that can be mounted on a card. Each memory chip contains peripheral circuitry (such as a decoder and erase, write, and read circuitry). Supports one memory cell array. The more complex memory device also has a controller that performs smart and higher-order memory operations and interfaces. There are many commercially successful non-volatile solid-state memories currently in use today. Body devices. These memory devices may be flash EEPROM or other types of non-volatile memory cells. In Nos. 5,070,032, 5,095,344, 5,315,541, 5,343,063 and 5,661,〇53, Examples of flash memory and systems and methods of making the same are given in U.S. Patent Nos. 5, 3, 421, and 6, 222, 762. In particular, a flash memory device having a NAND string structure is described in No. 5, 570, 315, No. 5, 903, 495 157 533. doc -6 - 201225100 No. 6, (Μ 6,935 赖国专财n n also has a charge for storing A memory cell of a dielectric layer is used to fabricate a non-volatile memory device that uses a dielectric layer in place of the previously described conductive floating gate device. Such memory devices utilizing dielectric storage elements have been described by Eitan et al. , NROM . A Novel Localized Trapping, 2-Bit Nonvolatile

Memory Cell」(IEEE Electron Device Letters,第 21卷,第 11號,2000年11月,第543-545頁)。一ΟΝΟ介電層延伸跨 越源極擴散區與汲極擴散區之間的通道。用於一個資料位 元之電荷局部化於毗鄰汲極之介電層中,而用於另一資料 位元之電荷則局部化於毗鄰源極之介電層中。舉例而言, 第5’768’192及6,〇11J25號美國專利揭示具有夾在兩個二氧 化矽層之間的一陷獲介電質之一非揮發性記憶體胞。多狀 態資料儲存係藉由分離地讀取介電質内在空間上分離之電 荷儲存區之二進位狀態來實施。 為改良讀取及程式化效能,平行讀取或程式化一陣列中 之多個電荷儲存元件或記憶體電晶體。因此,一起讀取或 程式化s己憶體元件「頁」。在現有記憶體架構中,一列 通*含有數個交錯頁或其可構成一個頁。將一起讀取或程 式化一頁之所有記憶體元件。 在陕閃C憶體系統中,抹除操作可花費比讀取及程式化 =作長數量級的時間。因此,期望具有實質大小之抹除 區塊。以此方式,在一大記憶體胞聚集體上分攤抹除時 間。 快閃記憶體之性質意味著資料必須寫入至一經抹除之記 157533.doc 201225100 憶體位置。若欲更新來自一主機之某一邏輯位址之資料, 則一種方式係將該更新資料重寫於相同實體記憶體位置 中。亦即,不改變邏輯至實體位址映射。然而,此將意味 著含有彼實體位置之整個抹除區塊將首先被抹除且然後用 更新之資料覆寫。此更新方法係低效的,乃因其需要抹除 及寫入一整個抹除區塊,尤其係在欲更新之資料僅伯據抹 除區塊之一小部分之情形下。其亦將導致對記憶體區塊之 一較高頻率之抹除再循環’鑒於此類型之記憶體裝置之有 限耐久性此係不期望的。 將透過主機系統、記憶體系統及其他電子系統之外部介 面傳送之資料定址且映射至一快閃記憶體系統之實體位置 中。通常’由系統產生或接收之資料檔案之位址係映射至 根據邏輯資料區塊(下文稱為「LBA介面」)針對系統建立 之一連續邏輯位址空間之不同範圍中。該位址空間之廣度 通常充足以覆蓋該系統能夠處置之全位址範圍。在一個實 例中’磁碟機透過此一邏輯位址空間與電腦或其他主機系 統通信。此位址空間具有足以定址磁碟機之整個資料儲存 容量之一廣度。 存在藉由減少電力消耗以及增加裝置速度來改良記憶體 裝置之效能之一不斷努力。如上文所提及,非揮發性記憶 體裝置通常由彼此經由一匯流排結構連接之一控制器電路 及一或多個記憶體晶月形成。控制器/記憶體裝置介面之 設定(諸如所用的電壓值及頻率)通常係根據所預期之最差 情形情i兄來设疋以具有足夠之安全限度以避免裝置故障。 157533.doc -8 - 201225100 因此,在大多數情形中,介面係則、於最佳條件操作。由 於此介面可係裝置效能之一限制因子,因而存在改良此介 面之設計之空間。 【發明内容】 根據本發明之一般態樣,呈現操作—非揮發性記憶體 系統之一方法。該非揮發性記憶體系統包括:具有一記憶 體介面之-控制器電路;具有—非揮發性記憶體胞陣列^ 一控制器介面之-記憶體電路;及連接至該控制器電路之 該記憶體介面及該記憶體電路之該控制器介面用於其之間 的資料及命令之傳送之-匯流排結構。該記憶⑽統可容 許來自當進行以下操作時之―第—非零累積錯誤量:將自 該控制器傳送資料以寫人至該記憶體陣列直至隨後自該記 憶體陣列讀回之後在該控制器處接收到該資料為止。該方 法包括該控制器將該第一錯誤量之一第一非零部分分配給 經由該匯流排結構在該控㈣電路與該記憶體電路之間的 資料之傳送’將該第—錯誤量之剩餘分配給在該記憶體電 路上對該資料之寫人、儲存及讀取。該控制器電路設定該 控制器電路與該記憶體電路之間操作之傳送特性以最多允 許該第一部分之錯誤。 在其他態樣中’呈現操作包括—記憶體電路及—控制器 電路之#揮發性記憶體系統之方法。該控制器電路 針對連接該控制器與該記憶體電路之一匯流排結構針二 或多個操作參數中之每__者之複數個值中之每—者執 執行一傳輪錯誤校準。此處理程序包括將—已知資料 157533.doc 201225100 之-資料集經由該控制器上之傳輸電路自該控 該匯流排結構及經由該記憶體電路上之接收電路 、至 排結構接收該資料集。將所接收之該資料集儲存於 體電路上之緩衝記憶體中且然後經由該記憶體電路上 輸電路將儲存於該記憶體電路上之緩衝記憶體令 =陣:中之該資料集傳送至該匯流排結構'經由該= 之收電路自該匯流排結構接收該資料集且對所 之該資料集與該已知型樣執行一比較。基於該比較針 用的一或多個操作參數判定與該傳輸處理程序相關聯之^ 誤量。隨後操作該記憶體系統以在該控制器電路與該記憶 體電路之間的該資料傳輸中允許一第一非零錯誤量,其中‘ 該控制器電路根據基於該所判定之相關聯錯誤量之該 錯誤校準處理程序選擇該等操作參數之值。 1 根據本發明之另一般態樣,—非揮發性記憶體系統具 有:-控制器電路’其包括一記憶體介面及邏輯電路·及 -記憶體電路’其包括一非揮發性記憶體胞陣列、—控制 益介面及邏輯電路。該記憶體系統亦包括連接至該 電路之該記憶體介面及該記憶體電路之該控制器介面用於 在該控制器與該記憶體電路之間的資料及命令之傳送之一 匯流排結構。-回馈處理電路在資料在該控制器與該記憶 體電路之間的-傳送期間連接至該控制器與該記憶體電路 中之接收者之邏輯電路用於接收關於作為傳送之一結果而 發生的錯誤量之資訊’且連接至該記憶體介面及該控制器 介面中之一者或兩者以回應於該錯誤量而調整其之間的傳 157533.doc •10· 201225100 送之特性。 在另-其他態樣中’呈現操作包括—非揮發性記憶體電 路及一控制器電路之一非揮發性記憶體系統之方法。在該 控制器電路及該記憶體電路令之一第一者上之邏輯電路; 根據一資料集產生-第-散列值。藉由該控制器電路及該 記憶體電路中之第一者上之一介面將該資料集及該第一散 列值傳輸至一匯流排結構,且藉由該控制器電路及該記憶 體電路_之第二者上之-介面自該匯流排結構接收該資料 集及該第一散列值。然後在該控制器電路及該記憶體電路 中之第一者上之邏輯電路中根據所接收之該資料集產生一 第一散列值,且然後在該控制器電路及該記憶體電路中之 第一者上將所接收之該第一散列值與該第二散列值進行比 較。基於該控制器電路及該記憶體電路十之第二者上之邏 輯電路對所接收之該第一散列值與第二散列值之比較,該 系統判定是否更改該控制器電路與該記憶體電路之間的資 料傳送之特性。 本發明之各種態樣、優點、特徵及實施例包括於下文對 本發明實例性實例之說明中,該說明應結合隨附圖式一起 理解。本文中所提及之所有專利、專利申請案、論文、其 他公開案、文獻及諸如此類皆出於各種目的特此以全文引 用的方式併入本文中。在對所併入之公開案、文獻或諸如 此類中之任一者與本申請案之間存在術語之定義或用法之 任何不一致或衝突之情形下,應以本申請案之定義或用法 為準。 157533.doc -11· 201225100 【實施方式】 記憶體系統 圖1至圖7提供其令可實施或圖解說明本發明之各種態樣 之實例性記憶體系統。 圖8至圖10圖解說明用於實施本發明之各種態樣之較佳 記憶體及區塊架構。 圖11至圖13圖解說明在控制器與該(或該等)記憶體電路 之間的一適應性内部介面之使用。 圖1示意性地圖解說明適合於實施本發明之一記憶體系 統之主硬體組件。記憶體系統90通常透過一主機介面與一 主機80—起操作。該記憶體系統通常呈一記憶體卡或一嵌 入式記憶體系統之形式。記憶體系統9〇包括一記憶體 200,記憶體200之操作由一控制器1〇〇控制。記憶體2〇〇包 含分佈於一或多個積體電路晶片上之一或多個非揮發性記 憶體胞陣列。控制器100包括一介面110、一處理器120、 一可選共處理器121、ROM 122(唯讀記憶體)、ram 130(隨機存取記憶體)且視情形包括可程式化非揮發性記憶 體124。介面110具有將該控制器介接至一主機之一個組件 及將該控制器介接至s己憶體2 0 0之另一組件。儲存於非揮 發性ROM 122及/或可選非揮發性記憶體124中之韌體為處 理器120提供實施控制器1〇〇之功能之碼。處理器12〇或可 選共處理器121可處理錯誤校正碼。在一替代實施例中, 控制器100由一狀態機(未展示)實施。在又另一實施例中, 控制器100實施於主機内。 157533.doc •12· 201225100 實體記憶體結構 圖2示意性地圖解說明一非揮發性記憶體胞。記憶體胞 10可由具有一電荷儲存單元2〇(諸如,一浮動閘極或一介 電層)之一場效應電晶體實施。記憶體胞丨〇亦包括一源極 14、一没極16及一控制閘極30 » 存在現今正使用之諸多商業上成功之非揮發性固態記憶 體裝置。此等記憶體裝置可採用不同類型之記憶體胞,每 一類型之記憶體胞皆具有一或多個電荷儲存元件。 典型非揮發性記憶體胞包括EEPROM及快閃EEPROM。 在第5,595,924號美國專利中給出EEPROM記憶胞及其製造 方法之實例。在第5,〇7〇,〇32號、第5,095,344號、第 5,315,541 號、第 5,343,063 號、第 5,661,053 號、第 5,313,421號及第6,222,762號美國專利中給出快閃£丑?1101^ 記憶胞、EEPROM記憶胞在記憶體系統中之使用及其製造 方法之實例。特定而言’在第5,570,315號、第5,903,495 號、第6,046,935號美國專利中闡述具有NAND記憶胞結構Memory Cell" (IEEE Electron Device Letters, Vol. 21, No. 11, November 2000, pp. 543-545). A dielectric layer extends across the channel between the source diffusion region and the drain diffusion region. The charge for one data bit is localized in the dielectric layer adjacent to the drain and the charge for the other data bit is localized in the dielectric layer adjacent to the source. For example, U.S. Patent Nos. 5,768,192 and 6, the entire disclosure of which is incorporated herein by reference. The multi-state data storage is implemented by separately reading the binary state of the charge storage region that is spatially separated within the dielectric. To improve read and program performance, multiple charge storage elements or memory transistors in an array are read or programmed in parallel. Therefore, the suffix element "page" is read or programmed together. In the existing memory architecture, a column contains a number of interlaced pages or it can constitute a page. All memory elements of a page will be read or programmed together. In the Shanyin C memory system, the erase operation can take longer than reading and programming = a long order of magnitude. Therefore, it is desirable to have a substantial size erase block. In this way, the erase time is spread over a large memory cell aggregate. The nature of flash memory means that the data must be written to the erased record. 157533.doc 201225100 Memory location. If a data from a logical address of a host is to be updated, one way is to rewrite the updated data in the same physical memory location. That is, the logical to physical address mapping is not changed. However, this would mean that the entire erase block containing the physical location will be erased first and then overwritten with the updated information. This update method is inefficient because it requires erasing and writing an entire erase block, especially if the data to be updated is only a small portion of the erased block. It will also result in a higher frequency erase recirculation of the memory block' which is undesirable in view of the limited durability of this type of memory device. The data transmitted through the external interface of the host system, the memory system, and other electronic systems is addressed and mapped to a physical location of a flash memory system. Usually, the address of the data file generated or received by the system is mapped to a different range of continuous logical address space established for the system based on the logical data block (hereinafter referred to as "LBA interface"). The breadth of the address space is usually sufficient to cover the full range of addresses that the system can handle. In one example, the drive communicates with a computer or other host system through this logical address space. This address space has a breadth of data storage capacity sufficient to address the drive. There is a constant effort to improve the performance of memory devices by reducing power consumption and increasing device speed. As mentioned above, non-volatile memory devices are typically formed by one controller circuit and one or more memory crystal cells connected to each other via a busbar structure. The controller/memory device interface settings (such as the voltage value and frequency used) are typically set according to the worst case scenario expected to have sufficient safety margins to avoid device failure. 157533.doc -8 - 201225100 Therefore, in most cases, the interface is operated under optimal conditions. Since this interface can be a limiting factor for device performance, there is room to improve the design of this interface. SUMMARY OF THE INVENTION In accordance with a general aspect of the present invention, an operational-non-volatile memory system method is presented. The non-volatile memory system includes: a controller circuit having a memory interface; a memory circuit having a non-volatile memory cell array and a controller interface; and the memory connected to the controller circuit The interface and the controller interface of the memory circuit are used for the transfer of data and commands between them - a bus bar structure. The memory (10) system can tolerate a "first-non-zero cumulative error amount" when the following operations are performed: data will be transferred from the controller to write to the memory array until subsequent readback from the memory array in the control The device receives the data. The method includes the controller assigning one of the first non-zero portions of the first error amount to the transfer of data between the control circuit and the memory circuit via the bus structure to 'the first-error amount The remainder is allocated to the writer, store, and read of the material on the memory circuit. The controller circuit sets the transfer characteristics of the operation between the controller circuit and the memory circuit to allow for at most the error of the first portion. In other aspects, the presentation operation includes a method of a memory circuit and a #volatile memory system of the controller circuit. The controller circuit performs a carrier error calibration for each of a plurality of values connecting each of the controller and one of the two or more operational parameters of the bus structure pin of the memory circuit. The processing program includes receiving a data set from the data set of the known data 157533.doc 201225100 through the transmission circuit on the controller, and receiving the data set from the receiving circuit and the receiving circuit on the memory circuit. . The received data set is stored in a buffer memory on the body circuit, and then the data set stored in the buffer memory of the memory circuit is transferred to the memory circuit via the memory circuit The bus structure 'receives the data set from the bus structure via the receiving circuit of the = and performs a comparison of the data set with the known pattern. The error amount associated with the transmission processing program is determined based on one or more operational parameters of the comparison pin. The memory system is then operated to allow a first non-zero error amount in the data transfer between the controller circuit and the memory circuit, wherein the controller circuit is based on the associated error amount determined based on the determination The error calibration handler selects the values of the operational parameters. 1 In accordance with another aspect of the present invention, a non-volatile memory system has: a controller circuit that includes a memory interface and logic circuit and a memory circuit that includes a non-volatile memory cell array , - control benefits interface and logic circuits. The memory system also includes a bus interface structure coupled to the memory interface of the circuit and the controller interface of the memory circuit for transferring data and commands between the controller and the memory circuit. a feedback processing circuit coupled to the controller and the receiver of the memory circuit during reception of the data between the controller and the memory circuit for receiving a result of the transmission as a result of the transmission The error amount information 'and one or both of the memory interface and the controller interface are adjusted in response to the error amount to pass the 157533.doc •10·201225100 delivery characteristics. In another aspect, the presenting method includes a method of non-volatile memory circuitry and a non-volatile memory system of a controller circuit. a logic circuit on the first of the controller circuit and the memory circuit; generating a -th-hash value based on a data set. Transmitting the data set and the first hash value to a bus structure by using one of the controller circuit and the first one of the memory circuits, and the controller circuit and the memory circuit The second of the _ receives the data set and the first hash value from the bus structure. And generating a first hash value according to the received data set in the logic circuit on the first of the controller circuit and the memory circuit, and then in the controller circuit and the memory circuit The first one compares the received first hash value with the second hash value. The system determines whether to change the controller circuit and the memory based on the comparison between the received first hash value and the second hash value by the logic circuit on the controller circuit and the second circuit of the memory circuit The nature of data transfer between body circuits. The various aspects, advantages, features, and embodiments of the invention are described in the following description of the example embodiments of the invention. All of the patents, patent applications, essays, other publications, documents, and the like referred to herein are hereby incorporated by reference in their entirety for all purposes. In the event of any inconsistency or conflict of definition or usage of terms between any of the incorporated publications, documents, or the like, and the application, the definition or usage of this application shall prevail. 157533.doc -11 201225100 [Embodiment] Memory System FIGS. 1 through 7 provide an exemplary memory system in which various aspects of the present invention can be implemented or illustrated. 8 through 10 illustrate preferred memory and block architectures for implementing various aspects of the present invention. 11 through 13 illustrate the use of an adaptive internal interface between the controller and the (or the) memory circuitry. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a schematic illustration of the main hardware components suitable for implementing one of the memory systems of the present invention. The memory system 90 typically operates with a host 80 via a host interface. The memory system is typically in the form of a memory card or an embedded memory system. The memory system 9A includes a memory 200, and the operation of the memory 200 is controlled by a controller. The memory 2 includes one or more non-volatile memory cell arrays distributed on one or more integrated circuit wafers. The controller 100 includes an interface 110, a processor 120, an optional coprocessor 121, a ROM 122 (read only memory), a ram 130 (random access memory) and optionally a programmable non-volatile memory. Body 124. The interface 110 has a component that interfaces the controller to a host and interfaces the controller to the other component of the memory. The firmware stored in the non-volatile ROM 122 and/or the optional non-volatile memory 124 provides the processor 120 with a code that implements the functionality of the controller. The processor 12 or optional coprocessor 121 can process the error correction code. In an alternate embodiment, controller 100 is implemented by a state machine (not shown). In yet another embodiment, the controller 100 is implemented within a host. 157533.doc •12· 201225100 Physical Memory Structure Figure 2 schematically illustrates a non-volatile memory cell. The memory cell 10 can be implemented by a field effect transistor having a charge storage unit 2 (e.g., a floating gate or a dielectric layer). The memory cell also includes a source 14, a dipole 16 and a control gate 30. There are many commercially successful non-volatile solid state memory devices in use today. These memory devices may employ different types of memory cells, each of which has one or more charge storage elements. Typical non-volatile memory cells include EEPROM and flash EEPROM. An example of an EEPROM memory cell and a method of fabricating the same is given in U.S. Patent No. 5,595,924. U.S. Patent Nos. 5, 〇 7〇, 〇 32, 5, 095, 344, 5, 315, 541, 5, 343, 063, 5, 661, 053, 5, 313, 421, and 6, 222, 762. 1101^ Examples of the use of memory cells, EEPROM memory cells in a memory system, and methods of fabricating the same. Having a NAND memory cell structure is described in U.S. Patent Nos. 5,570,315, 5,903,495, and 6,046,935.

之記憶體裝置之實例》此外’利用電介質儲存元件之記憶 體裝置之實例已由Eitan等人闡述:「NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cellj (IEEEAn example of a memory device "In addition, an example of a memory device using a dielectric storage element has been described by Eitan et al.: "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cellj (IEEE

Electron Device Letters’ 第 21卷,第 11期,2000 年 11 月, 第543-545頁)且在第5,768,192號及第6,011,725號美國專利 中予以闡述。 實際上’通常藉由在將一參考電壓施加至控制閘極時感 測跨越一記憶胞之源極電極與汲極電極的導電電流來讀取 I57533.doc -13- 201225100 該記憶胞之記憶體狀態。因此,對於—記憶胞之浮動閉極 上之每-給定電荷,皆可偵測到相對於一固定參考控制閘 極電壓之-對應導電電流。類似地,可程式化至浮動閘極 上之電荷之範圍定義一對應臨限電壓窗或一對應導電電流 窗。 另-選擇係,替代痛測一所分割電流窗當中之導電電 流’可在控制閘極處為—測試中給定記憶體狀態設定臨限 電壓且制該導電m於還是高於—臨限㈣。在一個 實施方案中,相對於-臨限電㈣測導電電流係、藉由檢驗 導電電流正透過位元線之電容放電之速率來達成。 圖3圖解說明針對浮動閘極可在任何一個時間選擇性地 儲存之四個不同電荷^至94的源極·汲極電流1〇與控制閘 極電壓vCG之間的關係。該四條實體1〇對1曲線表示可在 -記憶體單元之-浮動閘極上程式化之四種可能電荷位 準,其分別對應於四種可能記憶體狀態。作為—實例,一 記憶胞群體之臨限電壓窗可介於自05 V至3·5 V之範圍 内。可藉由將該臨限窗分割成每一區〇5 ν之間隔的五個 區來分界分別表示一個經抹除狀態及六個經程式化狀態之 七個可能的記憶體狀態Γ 〇」、「1」、「2」、「3」、「4」、 「5」、6」。舉例而言,若如所展示使用2 之一參考電 流IREF ’則藉助φ程式化之記憶胞可視為處於一記憶體 狀態「1」中’乃因其曲線與Iref在由VcG = 〇5 乂及1.〇 ν 分界的限窗之區中相交。類似地,係處於—記憶體狀 態「5」中。 157533.doc •14· 201225100 如自以上說明可看出,使一記憶體胞儲存之狀態越多, 其臨限窗劃分得越精細。舉例而言,一記憶體裝置可具有 若干個記憶體胞’該等記憶體胞具有介於-1.5 V至5 V範圍 内之一臨限窗。此提供6·5 V之最大寬度。若該記憶體胞 欲儲存16俩狀態’則每一狀態在臨限窗中可佔據自2〇〇 mV 至300 mV。此將需要更高之程式化及讀取操作精確度,以 能夠達成所需解析度。 圖4A示意性地圖解說明組織成一 NAND串之一記憶體胞 串。一 NAND串50包含一系列由其源極及汲極菊鏈連接之 s己憶體電晶體Ml、. M2、…、Mn(例如,n= 4、8、16或更 高)。一對選擇電晶體SI、S2分別經由該NAND串之源極端 子54及汲極端子56控制該記憶體電晶體鏈至外部之連接。 在一記憶體陣列中,當源極選擇電晶體S1接通時,該源極 端子耦合至一源極線(參見圖4B) »類似地,當汲極選擇電 晶體S2接通時,該NAND串之汲極端子耦合至該記憶體陣 列之一位元線。該鏈中之每一記憶體電晶體10充當一記憶 體胞。其具有一電荷儲存元件20以儲存一給定電荷量以便 表示一既定記憶體狀態。每一記憶體電晶體之一控制閘極 30允許對讀取及寫入操作進行控制。如在圖4B中將看出, NAND串之一列之對應記憶體電晶體之控制閘極3〇全部連 接至相同字線。類似地,選擇電晶體s丨、S2中之每一者之 一控制閘極32分別經由其源極端子54及汲極端子56提供對 該NAND串之控制存取。同樣地,NAND串之一列之對應 選擇電晶體之控制閘極32全部連接至相同選擇線。 157533.doc •15· 201225100 當在程式化期間讀取或驗證一 NAND串内之一經定址記 憶體電晶體10時,給其控制閘極30供應一適當電壓。同 時,藉由在NAND串50中之剩餘未經定址記憶體電晶體之 控制閘極上施加充足電壓來完全接通該等未經定址記憶體 電晶體。以此方式,有效地自個別記憶體電晶體之源極至 該NAND串之源極端子54形成一導電路徑,且同樣地自個 別記憶體電晶體之汲極至該記憶胞之汲極端子56形成一導 電路徑。第 5,570,3 15、5,903,495、6,046,935號美國專利 中闡述具有此等NAND串結構之記憶體裝置。 圖4B圖解說明由諸如圖4A中所示之NAND串50構成之一 NAND記憶體胞陣列2 10之一實例。沿NAND串之每一行, 一位元線(諸如,位元線36)輕合至每一 NAND串之沒極端 子56。沿NAND串之每一庫,一源極線(諸如,源極線34) 耦合至每一 NAND串之源極端子54。此外,沿NAND串之 庫中之一 5己憶體胞列之控制閘極連接至一字線(諸如, 選擇電晶體列之控制閘 字線42)。沿NAND串之一庫中之一 極連接至一選擇線(諸如,選擇線44)β可藉由NAND串之 一庫之字線及選擇線上之適當電壓來定址NANDf之該庫 中之一整個記憶體胞列。當正讀取一 一 NAND串内之一記憶Electron Device Letters', Vol. 21, No. 11, November 2000, pp. 543-545, and is described in U.S. Patent Nos. 5,768,192 and 6,011,725. In fact, 'the memory of the memory cell is read by sensing the conduction current across the source electrode and the drain electrode of a memory cell when a reference voltage is applied to the control gate. status. Therefore, for each given charge on the floating closed pole of the memory cell, a corresponding conductive current relative to a fixed reference control gate voltage can be detected. Similarly, the range of charge that can be programmed onto the floating gate defines a corresponding threshold voltage window or a corresponding conductive current window. Another-selection system, instead of the pain measurement, the conduction current in a divided current window can be set at the control gate—the threshold voltage is set for the given memory state in the test and the conduction m is still higher than—the threshold (4) . In one embodiment, the conduction current system is measured relative to the current limit (4) by verifying that the conduction current is flowing through the capacitance of the bit line. Figure 3 illustrates the relationship between source and drain currents 1 四个 and control gate voltage vCG for four different charges ^ to 94 that can be selectively stored at any one time for the floating gate. The four entities 1 〇 to 1 curve represent four possible charge levels that can be stylized on the - floating gate of the memory cell, which correspond to the four possible memory states, respectively. As an example, a threshold voltage window for a memory cell population can range from 05 V to 3.5 V. The seven possible regions of an erased state and six stylized states can be demarcated by dividing the threshold window into five regions at intervals of 〇5 ν for each region, respectively. "1", "2", "3", "4", "5", 6". For example, if one of the reference currents IREF' is used as shown, the memory cell programmed with φ can be regarded as being in a memory state "1" because the curve and Iref are at VcG = 〇5. 1. 〇 分 分 的 的 的 的 的 相 相 相 相 相Similarly, the system is in the "memory state" "5". 157533.doc •14· 201225100 As can be seen from the above description, the more states a memory cell is stored, the finer the threshold window is. For example, a memory device can have a plurality of memory cells. The memory cells have a threshold window ranging from -1.5 V to 5 V. This provides a maximum width of 6.5 V. If the memory cell wants to store 16 states, then each state can occupy from 2 〇〇 mV to 300 mV in the threshold window. This will require higher stylization and read operation accuracy to achieve the desired resolution. Figure 4A schematically illustrates a memory cell string organized into a NAND string. A NAND string 50 comprises a series of s-resonant transistors M1, M2, ..., Mn (e.g., n = 4, 8, 16 or higher) connected by their source and daisy chains. The pair of selection transistors SI, S2 control the connection of the memory transistor chain to the outside via the source terminal 54 and the gate terminal 56 of the NAND string, respectively. In a memory array, when the source select transistor S1 is turned on, the source terminal is coupled to a source line (see FIG. 4B). Similarly, when the drain select transistor S2 is turned on, the NAND A string of terminals is coupled to a bit line of the memory array. Each of the memory transistors 10 in the chain acts as a memory cell. It has a charge storage element 20 for storing a given amount of charge to indicate a predetermined memory state. One of the control transistors of each of the memory transistors allows control of the read and write operations. As will be seen in Figure 4B, the control gates 3 of the corresponding memory transistors in one of the NAND strings are all connected to the same word line. Similarly, a control gate 32 of each of the selected transistors s, S2 provides controlled access to the NAND string via its source terminal 54 and NMOS terminal 56, respectively. Similarly, the control gates 32 of the corresponding select transistors of one of the NAND strings are all connected to the same select line. 157533.doc •15· 201225100 When one of the addressed NAND transistors in a NAND string is read or verified during stylization, its control gate 30 is supplied with an appropriate voltage. At the same time, the unaddressed memory transistors are fully turned on by applying sufficient voltage across the control gates of the remaining unaddressed memory transistors in NAND string 50. In this manner, a conductive path is effectively formed from the source of the individual memory transistor to the source terminal 54 of the NAND string, and likewise from the drain of the individual memory transistor to the drain terminal 56 of the memory cell. A conductive path is formed. A memory device having such NAND string structures is described in U.S. Patent Nos. 5,570,3, 5, 5, 903, 495, 6, 046, 935. Figure 4B illustrates an example of a NAND memory cell array 2 10 constructed from a NAND string 50 such as that shown in Figure 4A. Along each row of the NAND string, a bit line (such as bit line 36) is tapped to the no terminal 56 of each NAND string. Along each bank of NAND strings, a source line, such as source line 34, is coupled to source terminal 54 of each NAND string. In addition, the control gates along one of the banks of the NAND string are connected to a word line (such as the control gate line 42 of the selected transistor column). Connecting one of the banks of one of the NAND strings to a select line (such as select line 44) β can address one of the banks of the NANDf by the word line of one of the NAND strings and the appropriate voltage on the select line. Memory cell column. When reading one memory in a NAND string

正讀取之記憶胞中所儲存之電荷位準。The level of charge stored in the memory cell being read.

〜、也网ι取(芈例而 言)NAND組態的一記憶體胞頁。 圖5基本上展示圖4B之記 157533.doc • 16 - 201225100 憶體陣列210中之NAND串50之一庫,其中每一NAND串之 細節係如圖4A中所明確展示。一「頁」(諸如,頁6〇)係使 能夠平行感測或程式化之一記憶體胞群組。此藉由一對應 頁之感測放大器212達成。所感測之結果係鎖存於一對應 組之鎖存器214中《每一感測放大器可經由一位元線耦合 至一NAND_。該頁係藉由共同連接至一字線42的該頁之 該等記憶胞之控制閘極啟用且每一記憶胞可由一可經由一 位元線3 6存取之感測放大器存取。作為一實例,當分別感 測或程式化該記憶胞頁60時,一感測電壓或一程式化電壓 分別施加至共同字線WL3,連同施加適當電壓於位元線 上。 ' 記憶體之實體組織 快閃記憶體與其他類型記憶體之間的一個重要差異係一 記憶胞必須自經抹除狀態程式化。亦即,浮動閘極必須首 先放空電荷。接著程式化將一所期望量之電荷添加回至浮 動閘極。其不支援自浮動移除電荷之一部分以自一經程式 化程度較高的狀態變為一經程式化程度較低的狀態。此意 味著更新資料無法覆寫現有資料且必須寫入至一先前未經 寫入之位置。 此外,抹除係自浮動閘極放空所有電荷且通常要花費可 觀的時間。出於彼原因,逐記憶胞或甚至逐頁抹除將係麻 ' 極陵實際上己憶體胞陣列係劃分成大數目個記 憶體胞區塊。如對於快閃EEPROM系統所常見,區塊係抹 除單疋。亦即,每一區塊含有一起抹除之最小數目個記憶 I57533.doc -17· 201225100 體胞。儘管將欲平行抹除之大數目個記憶胞聚集成一區塊 將改良抹除效能,但一大大小區塊亦需要處理較大數目個 更新及過時資料。就在區塊被抹除之前,需要-廢棄項目 收集以挽救該區塊中之非過時資料。 每一區塊通常係劃分成若干個m程式化或讀 取皁70。在-項實施例t,可將個別頁劃分成若干個段, 且該等段可含有作為—基本程式化操作—次寫人之最少數 目個。己ItM或多個資料頁通常係儲存於-個記憶體胞 列中。-頁可儲存一或多個區段。一區段包括使用者資料 及附加項資料。跨越多個陣列分佈之多個區塊及頁亦可作 為元區塊及元頁一起操作。若其分佈於多個晶片上,則其 可作為元區塊及元頁一起操作。 多位階記憶胞(「MLC」)記憶體分割之實例 已結合圖3闞述了其中記憶體胞各自儲存多個資料位元 之一非揮發性記憶體。一特定實例係由一場效應電晶體陣 列形成之一記憶體,每一場效應電晶體在其通道區與其控 制閘極之間具有一電荷儲存層。該電荷儲存層或單元可儲 存一電荷範圍,從而產生每一場效應電晶體之一臨限電壓 範圍。可能臨限電壓之範圍橫跨一臨限窗。當將該臨限窗 分割成多個臨限電壓子範圍或區域時,每一可解析區域用 於表示一記憶體胞之一不同記憶體狀態。該多個記憶體狀 態可藉由一或多個二進位位元進行寫瑪。舉例而言,分割 成四個區域之一記憶體胞可支援可被寫碼為2位元資料之 四個狀態。類似地,分割成八個區域之一記憶體胞可支援 157533.doc -18- 201225100 可被寫碼為3位元資料之八個記憶體狀態等等。 所有位元、全序列MLC程式化 圖6(0)至圖6(2)圖解說明程式化4個狀態之記憶體胞群體 之一實例。圖6(0)圖解說明可程式化為分別表示記憶體狀 態「0」、「1」、「2」及「3」之四個不同臨限電壓分佈之記 憶體胞群體。圖6(1)圖解說明一經抹除記憶體之初始「經 抹除」臨限電壓分佈。圖6(2)圖解說明在該等記憶體胞中 之諸多記憶體胞已經程式化之後的記憶體之一實例。本質 上,一記憶胞最初具有一「經抹除」臨限電壓且程式化將 把其移動至一較高值,進入由驗證位準vVi、vV2及vV3分 界之二個區域中之一者中。以此方式,每一記憶體胞可被 程式化為三個經程式化狀態「1」、「2」及「3」中之一者 或保持未經程式化而處於「經抹除」狀態中。隨著記憶體 程式化程度提尚’如圖6(1)中所展示之「經抹除」狀態之 初始分佈將變得較窄且該經抹除狀態由「〇」狀態來表 示。 具有一下部位元及一上部位元之2位元碼可用於表示四 個記憶體狀態中之每一者。舉例而言,「〇」、「1」、「2」及 「3」狀態分別由「11」、「01」、「00」及「10」來表示。 可藉由以「全序列」模式進行感測而自記憶體讀取2位元 資料,在該「全序列」模式中’藉由分別以三個子遍相對 於讀取分界臨限值rVi、rVz及rV3進行感測而一起感測兩個 位元。 逐位元MLC程式化及讀取 157533.doc -19- 201225100 圖7A至圖7E圖解說明用一給定2位元碼編碼之4狀熊記 憶體之程式化及讀取。圖7A圖解說明當每一記情體胞使用 2位元碼儲存兩個資料位元時4狀態記憶體陣列之臨限電壓 分佈。美國專利第7,057,939號中已揭示此—2位元碼 圖7B圖解說明使用2位元碼之2遍程式化方案中之下部頁 程式化(下部位元)。容錯LM新碼本質上避免任—上部頁程 式化轉變穿過任何中間狀態。因此,第一 题下部頁程式化 如藉由將「未經程式化」記憶體狀態「 」径式化至由 (X,0)指定之「中間」狀態所表示使邏輯狀態(上部位元, 下部位元)=(1,υ轉變至某一中間狀態(χ,〇),其中一經 程式化臨限電壓大於Da但小於Dc。 圖7C圖解說明使用2位元碼之2遍程式化方案中之上部頁 程式化(上部位元)。在將上部頁位元程式化至「〇」之第二 遍中’若下部頁位元處於M」,則如藉由將經料 化」記憶體狀態「〇」程式化至Γι」所表示將邏輯狀態 Ο,1)轉變至(〇’ υ。若下部頁位元處於「〇」,則藉由自 「中間」狀態程式化至「3」而獲得邏輯狀態(〇, 〇卜類似 地’若上部頁欲保持處於「1」,而下部頁已程式化至 「〇」,則如藉由將「令間」狀態程式化至「2」所表示其 將需要自「中間」狀態至(卜0)之一轉變。 、 圖7〇圖解說明辨別用2位元碼編碼之4狀態記憶體之下部 位讀需之讀取操作。首先執行一讀”操作以判定是否 可„賣取LM旗標。若可讀取,則上部頁已程式化且讀取β操 作將正確地產生下部頁資料。另一方面,若上部頁尚未程 157533.doc -20- 201225100 式化’則將藉由一讀取A操作讀取下部頁資料。 圖7E圖解說明辨別用2位元碼編碼之4狀態記憶體之上部 位元所需之讀取操作。如自該圖顯而易見,上部頁讀取將 需要分別相對於分界臨限電壓、DB及Dc之讀取A、讀取 B及讀取C之3遍讀取。 在針對一 2位元記憶體之逐位元方案中,一實體記憶體 胞頁將儲存兩個邏輯資料頁,即對應於下部位元之—下部 資料頁及對應於上部位元之一上部資料頁。 二進位及MLC記憶體分割 圖6及圖7圖解說明2位元(亦稱作「D2」)記憶體之實 例。如可看出’一 D2記憶體使其臨限範圍或窗分割成指定 4狀態之4個區。類似地,在03中,每一記憶胞儲存3個位 元(下部、中部及上部位元)且存在8個區。在〇4中,存在4 個位元及16個區等等。隨著記憶體之有限臨限窗被分割成 更多區,程式化及讀取之解析度將有必要變得更精細。隨 著記憶體胞經組態以儲存更多位元而出現兩個問題。 首先,#必㈣準確地程式化或㈣一記憶胞之臨限值 時程式化或讀取將較慢。實際上,在實務+,(程式化及 讀取時所需的)感測時間往往隨分割位準之數目之平方而 增加。 其次’快閃記憶體隨著其使用老化而具有一对久性問 題。當重複地程式化及抹除—記憶胞時,電荷藉由㈣跨 越一電介質而穿梭地進出浮動閘極2G(參見圖2卜每一 ·欠, 某些電荷可被陷獲於介電質中且將修改該記憶胞之臨限 157533.doc 21. 201225100 值。貫際上’隨著使用,臨限窗將逐漸地變窄。因此, MLC記憶體通常經設計而在容量、效能及可靠性之間具有 折衷。 相反’將看出’對於二進位記憶體,記憶體之臨限窗僅 分割成兩個區。此將允許一最大誤差限度。因此,在消減 儲存容量的同時進行二進位分割將提供最大效能及可靠 性。 結合圖7闡述之多遍逐位元程式化及讀取技術提供mLc 與二進位分割之間的一平滑轉變。在此情形下,若僅以下 部位元程式化記憶體,則其實際上係一經二進位分割之記 憶體。儘管此方法並不完全最佳化臨限窗之範圍(如在一 單階§己憶胞(「SLC」)記憶體之情形中一般),但其具有使 用與MLC記憶體之下部位元之操作相同之分界或感測位準 之優點。如稍後將闡述,此方法允許「徵用」一 MLC記憶 體以用作二進位記憶體,或反之亦然。應理解mlc記憶體 往往具有更嚴格之使用規範。 二進位記憶體及部分頁程式化 私式化至一個§己憶體胞之電荷儲存元件中之電荷產生一 電場,其擾亂一相鄰記憶體胞之電場。此將影響相鄰記憶 體胞(其本質上係具有一電荷儲存元件之一場效應電晶體 之特性。特定而言,當感測時,記憶體胞將看似具有高於 在其受擾亂程度較低時之一臨限位準(或經程式化程度更 南)。 -般而言’若-記’It體胞在-第—現場環境下經程式化 J57533.doc •22- 201225100 驗證且務後因相鄰記憶胞隨後以不同電荷程式化而在一不 同現場環境下被再次讀取,則讀取準確度可因相鄰浮動閘 極之間的耦合而受到影響,此稱為「Yupin效應」。隨著半 導體記憶體之整合度越來越高,由於記憶體胞之間的所儲 存電荷所致的電場之擾亂(YUpin效應)將因記憶胞間間距縮 減而變得更加可觀。 以上結合圖7闡述之逐位元MLC程式化技術經設計以最 小化來自沿相同字線之記憶胞之程式化干擾。如自圖7B可 看出,在兩個程式化遍中之一第一遍中,該等記憶胞之臨 限值移動至沿臨限窗向上的幾乎中途處。該第一遍之效應 被最後一遍超過。在該最後一遍中,臨限值僅移動全程的 四77之一。換S之,對於D2而言,相鄰記憶胞當中的電荷 差異限制為其最大值的四分之一。對於〇3,在三遍之情形 下,最後一遍將電荷差異限制為其最大值的八分之一。 然而,逐位元多遍程式化技術將被部分頁程式化所連 累。一頁係通常沿一列或字線之一記憶體胞群組,其作為 -早兀而-起程式化。有可能在多個程式遍上個別地程式 化一頁之非重疊部分。然而, 在最後一遍中一起被程式化, 之後在記憶胞當中的經程式化電荷中形成大差異 由於並非該頁之所有記憶胞 因此其可在該頁完成程式化 擾且將需要一較大感測 部分頁程式化將導致更多程式化干擾且將需要 準確度限度。~, also network ι (for example) a NAND configuration of a memory cell page. Figure 5 basically shows a library of NAND strings 50 in the memory array 210 of Figure IB. 157533.doc • 16 - 201225100, wherein the details of each NAND string are as shown in Figure 4A. A "page" (such as page 6) enables parallel sensing or stylization of one of the memory cell groups. This is achieved by a corresponding page of sense amplifiers 212. The sensed results are latched in a corresponding set of latches 214. "Each sense amplifier can be coupled to a NAND_ via a bit line. The page is enabled by the control gates of the memory cells of the page that are commonly connected to a word line 42 and each memory cell is accessible by a sense amplifier accessible via a bit line 36. As an example, when the memory cell page 60 is sensed or programmed separately, a sense voltage or a stylized voltage is applied to the common word line WL3, respectively, along with applying an appropriate voltage to the bit line. 'The physical organization of memory An important difference between flash memory and other types of memory is that memory cells must be stylized from the erased state. That is, the floating gate must first discharge the charge. The stylization then adds a desired amount of charge back to the floating gate. It does not support the self-floating removal of a portion of the charge to change from a more stylized state to a less programmed state. This means that the update data cannot overwrite the existing data and must be written to a location that was not previously written. In addition, erasing the vacant charge from the floating gate typically takes a considerable amount of time. For some reason, the memory-by-memory or even page-by-page erasure will be used to divide the cell array into a large number of memory cells. As is common for flash EEPROM systems, the block is erased. That is, each block contains the smallest number of memories I57533.doc -17· 201225100. Although the integration of a large number of memory cells to be erased in parallel will improve the erase performance, a large number of blocks also need to process a larger number of updated and obsolete data. Just before the block is erased, it is necessary to collect the waste project to save non-obsolete data in the block. Each block is usually divided into a number of m stylized or read soaps 70. In the item embodiment t, the individual pages can be divided into segments, and the segments can contain as the most basic purpose of the - basic stylized operation. ItM or multiple data pages are usually stored in one memory cell. - The page can store one or more sections. A section includes user data and additional items. Multiple blocks and pages distributed across multiple arrays can also operate as metablocks and metapages. If it is distributed over multiple wafers, it can operate as a metablock and a metapage. Example of multi-level memory cell ("MLC") memory segmentation A non-volatile memory in which memory cells each store a plurality of data bits is described in conjunction with FIG. A particular example is a memory formed by a field effect transistor array, each field effect transistor having a charge storage layer between its channel region and its control gate. The charge storage layer or cell can store a range of charges to produce a threshold voltage range for each field effect transistor. It is possible that the threshold voltage range spans a threshold window. When the threshold window is divided into a plurality of threshold voltage sub-ranges or regions, each analyzable region is used to represent a different memory state of a memory cell. The plurality of memory states can be written by one or more binary bits. For example, a memory cell divided into four regions can support four states that can be coded as 2-bit data. Similarly, a memory cell divided into eight regions can support 157533.doc -18- 201225100 can be written as three-bit data in eight memory states and so on. All Bits, Full Sequence MLC Stylization Figure 6(0) through Figure 6(2) illustrate an example of a stylized four state memory cell population. Figure 6(0) illustrates a memory cell population that can be programmed to represent four different threshold voltage distributions of memory states "0", "1", "2", and "3", respectively. Figure 6(1) illustrates the initial "erased" threshold voltage distribution of an erased memory. Fig. 6(2) illustrates an example of a memory after a plurality of memory cells in the memory cells have been programmed. Essentially, a memory cell initially has an "erased" threshold voltage and the stylization will move it to a higher value into one of the two regions demarcated by the verification levels vVi, vV2, and vV3. . In this way, each memory cell can be programmed into one of the three stylized states "1", "2", and "3" or remain "erased" in the unstamped state. . As the degree of stylization of the memory is increased, the initial distribution of the "erased" state as shown in Fig. 6(1) will become narrower and the erased state will be represented by the "〇" state. A 2-bit code having a lower portion element and an upper portion element can be used to represent each of the four memory states. For example, the "〇", "1", "2" and "3" states are represented by "11", "01", "00" and "10" respectively. The 2-bit data can be read from the memory by sensing in the "full sequence" mode, in the "full sequence" mode, by using the three sub-passes with respect to the read boundary thresholds rVi, rVz And rV3 senses and senses two bits together. Bitwise MLC Stylization and Reading 157533.doc -19- 201225100 Figures 7A through 7E illustrate the stylization and reading of a 4-shaped bear memory encoded with a given 2-bit code. Figure 7A illustrates the threshold voltage distribution of a 4-state memory array when each of the cells is stored using a 2-bit code to store two data bits. This 2-bit code is disclosed in U.S. Patent No. 7,057,939. Figure 7B illustrates the lower page stylization (lower part element) in a 2-pass stylization scheme using a 2-bit code. The fault-tolerant LM new code essentially avoids any upper-page transitions going through any intermediate state. Therefore, the lower page of the first question is programmed to make the logic state (upper part element) by the "unprogrammed" memory state "" to the "intermediate" state specified by (X, 0). Lower part element) = (1, υ transition to an intermediate state (χ, 〇), where a programmed threshold voltage is greater than Da but less than Dc. Figure 7C illustrates a 2-pass stylization scheme using a 2-bit code The upper page is stylized (top part). In the second pass of stylizing the upper page bit to "〇", if the lower page bit is at M, then by "memorizing" the memory state "〇" is programmed to Γι" to indicate the logical state 1, 1) to (〇' υ. If the lower page bit is "〇", it is obtained by staging from "intermediate" state to "3" The logical state (〇, 〇 类似 similarly 'if the upper page wants to remain at "1" and the lower page has been programmed to "〇", it is represented by stylizing the "inter-order" state to "2" It will take a transition from the "intermediate" state to (b 0). Figure 7〇 illustrates the identification with a 2-bit code. The read operation of the part under the code 4 state memory. First perform a read operation to determine whether the LM flag can be sold. If it is readable, the upper page is programmed and the β operation will be read. The lower page data is correctly generated. On the other hand, if the upper page has not been programmed 157533.doc -20-201225100, the lower page data will be read by a read A operation. Fig. 7E illustrates the identification of 2 bits. The coded code 4 is required for the read operation of the upper part of the state memory. As is apparent from the figure, the upper page read will need to be read A and B respectively with respect to the threshold voltage, DB and Dc respectively. Reading 3 times of reading C. In the bitwise scheme for a 2-bit memory, a physical memory cell page will store two logical data pages, that is, corresponding to the lower part of the element - the lower data page and Corresponding to an upper data page of the upper part element. Binary and MLC memory partitioning FIG. 6 and FIG. 7 illustrate an example of a 2-bit (also referred to as "D2") memory. As can be seen, 'a D2 memory Divide the threshold range or window into 4 zones of the specified 4 states. Similarly In 03, each memory cell stores 3 bits (lower, middle, and upper part elements) and there are 8 areas. In 〇4, there are 4 bits, 16 areas, etc. With the memory The limited threshold window is divided into more regions, and the resolution of the stylization and reading will need to be more refined. Two problems arise as the memory cells are configured to store more bits. First, # Must be (4) accurately stylized or (4) a memory cell threshold will be slower to program or read. In fact, in practice +, (storage and read) required sensing time often with the split bit Secondly, the square of the number increases. Secondly, the flash memory has a pair of long-term problems as it ages. When the memory is repeatedly programmed and erased, the charge is shuttled across a dielectric by (4) In and out of the floating gate 2G (see Figure 2, each owed, some charge can be trapped in the dielectric and will modify the threshold of the memory cell 157533.doc 21. 201225100 value. On a continuous basis, as the use, the threshold window will gradually narrow. Therefore, MLC memory is typically designed to have a trade-off between capacity, performance, and reliability. Conversely, it will be seen that for binary memory, the threshold window of memory is divided into only two regions. This will allow a maximum margin of error. Therefore, performing binary splitting while reducing storage capacity will provide maximum efficiency and reliability. The multi-pass bitwise stylization and reading technique illustrated in conjunction with Figure 7 provides a smooth transition between mLc and binary segmentation. In this case, if only the following parts are stylized, the memory is actually a binary segmented memory. Although this method does not fully optimize the range of the threshold window (as is the case in the case of a single-order memory cell ("SLC") memory, it has the use of parts below the MLC memory. The advantage of operating the same demarcation or sensing level. As will be explained later, this method allows "extracting" an MLC memory for use as a binary memory, or vice versa. It should be understood that mlc memory tends to have stricter usage specifications. Binary Memory and Partial Page Stylization A charge that is privately converted into a charge storage element of a cell is an electric field that disturbs the electric field of an adjacent memory cell. This will affect the adjacent memory cells (which essentially have the characteristics of a field effect transistor of a charge storage element. In particular, when sensed, the memory cells will appear to be higher than they are disturbed. One of the low-level thresholds (or more south of the stylized). - Generally speaking, 'If-Remember' It is programmed in the -first scene environment. J57533.doc •22- 201225100 Verification and service After the adjacent memory cells are then re-read with different charges and read in a different field environment, the read accuracy can be affected by the coupling between adjacent floating gates. This is called the "Yupin effect." As the integration of semiconductor memory becomes higher and higher, the disturbance of the electric field due to the stored charge between memory cells (YUpin effect) will become more significant due to the reduction of memory cell spacing. The bitwise MLC stylization technique illustrated in Figure 7 is designed to minimize stylized interference from memory cells along the same word line. As can be seen from Figure 7B, in one of the two stylized passes, the first pass , the threshold of the memory cell moves To the midway along the threshold window, the effect of the first pass is exceeded by the last pass. In the last pass, the threshold only moves one of the four 77s of the whole process. For S, for D2, the phase The difference in charge between adjacent memory cells is limited to a quarter of its maximum. For 〇3, in the case of three passes, the last pass limits the difference in charge to one-eighth of its maximum value. However, bitwise Multi-pass stylization techniques will be staggered by partial page stylization. A page usually remembers a group of cells along one column or word line, which is stylized as early as possible. It is possible to have multiple programs. Individually stylizing the non-overlapping parts of a page. However, they are stylized together in the last pass, and then a large difference is formed in the stylized charge in the memory cell. Since it is not all the memory cells of the page, it can be on the page. Completing the stylized disturbance and stylizing a larger sensing portion of the page will result in more stylized interference and will require accuracy limits.

157533.doc 马二進位記憶體之情形下,操作之限度 在較佳實施例中,二進位記憶體經組態 •23· 201225100 以支援部分頁程式化,在部分頁程式化中一頁之非重疊部 分可在對該頁之多個程式化遍中之一者中被個別地程式 化。可藉由以一大大小頁進行操作來改良程式化及讀取效 能。然而’當頁大小遠遠大於主機之寫入單元(通常為5 12 位元組區段)時’其使用將係低效的。以比一頁更精細之 細度進行操作允許此一頁之更高效使用。 已給出介於二進位與MLC之間的實例。應理解,一般而 言,在具有第一數目個位階之一第一記憶體與具有多於該 第一 s己憶體之第二數目個位階之一第二記憶體之間應用相 同原理。 邏輯及實體區塊結構 圖8圖解說明由一記憶體管理器管理之記憶體,其中該 記憶體管理器係駐存於控制器中之一軟體組件。記憶體 200係組織成若干個區塊,每一記憶胞區塊係一最小抹除 單兀。端視實施方案,記憶體系統可以藉由一區塊聚集體 形成為「元區塊」且亦形成為「區塊」之更大抹除單元來 操作。為方便起見,本說明將一抹除單元稱為一元區塊, 不過應理解某些系統以藉由—元區塊聚集體形成之諸如一 厂巨區塊」之更大抹除單元來操作。 主機80在於一檔案系統或作業系統下運行一應用程式時 存取記憶體200。ϋ常,主機系統以邏輯區段為單元定址 資料,其中(舉例而言)每一區段可含有512個位元組之資 料。此外’通常主機以邏輯叢集為單元對記憶體系 讀取或寫H邏輯叢集由—或多個邏輯區段組成。在 157533.doc -24· 201225100 某些主機系統中’可存在一可選主機側記憶體管理器以在 主機處執行較低階記憶體管理。在大多數情形中,在讀取 或寫入操作期間,主機80本質上發出一命令至記憶體二统 9〇以讀取或寫人含有具有連續位址之_串資料邏輯區段之 一段。 一記憶體側管理器300實施於記憶體系統9〇之控制器1〇〇 中以管理對快閃記憶體200之元區塊中的主機邏輯區段之 資料之财及擷取。記憶體管理器包含—前端系統31〇及 一後端系統320。前端系統31〇包括一主機介面312。後端 系統320包括用於管理對元區塊之抹除、讀取及寫入操作 之若干個軟體模組。記憶體管理器亦維持快閃記憶體2〇〇 及控制器RAM 130中與其操作相關聯之系統控制資料及目 錄資料。 圖9圖解說明後端系統之軟體模組。後端系統主要包含 兩個功能模組:一媒體管理層33〇及一資料流與定序層 340 ° 媒體管理層330負責一快閃記憶體元區塊結構内之邏輯 資料儲存之組織。稍後將在關於「媒體管理層」的章節中 提供更多細節。 資料流與定序層340負責一前端系統與一快閃記憶體之 間的資料區段之定序及傳送。此層包括一命令定序器 342、一低階定序器344及一快閃控制層346。稍後將在關 於「低階系統規格」的章節中提供更多細節。 s己憶體管理器3 0 0較佳地實施於控制器1 〇 〇中。其將自主 I57533.doc •25- 201225100 機接收之邏輯位址轉譯成記憶體陣列内實際儲存資料之實 體位址’且接著記錄此等位址轉譯。 圖l〇A(i)至圖i〇A(iii)示意性地圖解說明一邏輯群組與— 元區塊之間的映射。實體記憶體之元區塊具有用於儲存— 邏輯群組之N個資料邏輯區段之N個實體區段。圖1〇A(i)展 示來自一邏輯群組LGi之資料’其中邏輯區段呈連續邏輯 次序0、1、…、iV-7。圖l〇A(ii)展示以相同邏輯次序儲存 於元區塊中之相同資料。當元區塊以此方式儲存時其稱作 「順序的」。一般而言’元區塊可具有以一不同次序儲存 之資料’在此情形中元區塊稱作「無序的」或「混亂 的」。 在一邏輯群組之最下部位址與其所映射至的元區塊之最 下部位址之間可存在一偏移◦在此情形中,邏輯區段位址 環繞為在元區塊内自底部向後至邏輯群組之頂部的一迴 圈。舉例而言,在圖lOA(iii)中’元區塊於其第一位置中 以邏輯區段&之資料開始儲存。當到達最後一個邏輯區段 時,其環繞至區段0且最終於其最後一個實體區段中儲 存與邏輯區段灸-/相關聯之資料。在較佳實施例中,使用 一頁標籤來識別任一偏移,諸如識別儲存於該元區塊之第 實體區段中之資料之開始邏輯區段位址。當兩個區塊不 同僅相差一頁標籤時,該兩個區塊將被視為以類似次序儲 存其邏輯區段。 圖1 0B示意性地圖解說明邏輯群組與元區塊之間的映 射。每一邏輯群組380映射至一唯一元區塊37〇,其中資料 157533.doc -26 - 201225100 當刖正被更新之小數目個邏輯群組除外。在一邏輯群組經 更新之後,便可將其映射至一不同元區塊。映射資訊維持 在一邏輯對實體目錄集中,稍後將更詳細地闡述該映射資 訊。 適應性控制器-記憶體介面 本章節呈現一回饋機制及處理單元之使用,該回饋機制 及處理單元監視記憶體系統之内部控制器_記憶體介面之 傳送70整性且可相應地調整介面設定。此允許系統最佳化 介面效能。舉例而言,可能夠減少系統之電力或使介面之 匯流排時脈加速,此(由於此通常可係一内部效能瓶頸, 因而)如在記憶體系統外部(亦即,自主機)所見允許增加效 能。在傳輸錯誤之情形中,在介面完整性回饋及(端視實 施例)其他感測器或參數之幫助下,回饋處理單元可決定 是調整介面設定、執行一傳輸重試還是忽略該錯誤。以下 淪述亦係在使用圖4A、圖4Β及圖5中所展示的一 NAND型 記憶體陣列架構之一記憶體卡之背景中給出,但易於延伸 至其他架構之類似内部介面、其他形式之記憶體及非卡式 用途’諸如嵌入式系統、SSD等等。 雖然以下論述可基於各種實例性實施例以提供具體實 例,但此處之技術及結構一般可完全適用於具有一控制器 及可獨立操作之多個庫之記憶體系統,其中該等庫包括係 快閃記憶體或其他種類之一定量之非揮發性記憶體,該非 揮發性記憶體可用來儲存控制器可用以管理記憶體系統之 系統資料。除上文所引㈣已提及記憶體系、統外,此等記 157533.doc •27- 201225100 憶體系統還可包括以下編號的美國專利、專利申請案及申 請案中所呈現之各種記憶體系統:7,480,766、1^-2005-0154819-A1 ' US-2007-0061581-A1 ' US-2007-0061597-Al ' US-2007-0113030-A1 ' US-2008-0155178-A1 ' US-2008-0155228-A1 、US-2008-0155176-A1 、 US-2008- 0155177-A1 ' US-2008-0155227-A1 ' US-2008-0155175-A1、12/348,819、12/348,825、12/348,891、12/348,895、 12/348,899、12/642,584、12/642,611、US 12/642,649、 12/642,728、12/642,740及 61/142,620。 在論述實例性實施例之前,本章節將以進一步考量有待 解決之問題開始。控制器-記憶體裝置介面係用於在一控 制器(100 ’圖1)與一或多個NAND(在該實例性實施例中)裝 置(200,圖1)之間傳送資料。(注意,本論述係關於記憶體 系統90上之控制器1 〇〇與快閃記憶體2〇〇之間的内部介面, 而介面110係控制器用於與記憶體系統外部通信之主機介 面。)已開發不同之NAND介面模式來增加折衷速度、電力 消耗之介面效能等等。由於此介面經常係一效能瓶頸,因 而將此等介面推動至最大化系統效能之限度。為避免資料 錯誤,介面設定(諸如,電壓、頻率、驅動強度及轉換速 率控制)係針對最差情形情境(極端溫度、極端負載電容、 極端電壓等等)設定。因此,裝置通常經設計而具有最差 情形安全限度,此轉譯為典型條件中之最大限度。在此等 :、5L條件巾1將介面設定最佳化為較高之介面效能而不 連累產可罪丨生。右沒有諸如下文中所呈現之一機制,則 157533.doc 201225100 記憶體裝置將繼續以最差情形效能設定來操作。 舉例而言,針對一個16位元正常模式在33 MHz之標稱 匯流排頻率與加速之40 MHz、與超級加速之50 MHz及與 特級加速之60 MHz之叢集資料傳送時間之間的一簡單比較 分別產生約17%、33%及45%之顯著延時減少。此展示於 表1中,其中該等行係頻率、對應週期(tcyc)、傳送2142位 元組資料之時間及相對於在33 MHz下之速度比。 頻率 tcvc 2142B xfr 時間 比率 33 MHz 30.3 ns 32454.5 ns 1.00 40 MHz 25.0 ns 26775.0 ns 0.83 50 MHz 20.0 ns 21420.0 ns 0.66 60 MHz 16.7 ns 17850.0 ns 0.55 表1 在先前技術中,通常針對一給定產品將快閃介面效能設 定為一固定效能。該設計由此計入最差情形設計。在某些 產品中,快閃介面係針對一「接近於最差情形」設計,從 而允許一定之介面效能最佳化,但係冒著一定之較低裝置 良率或增加之資料錯誤之危險。 此章節呈現一回饋機制及處理單元,該回饋機制及處理 單元監視介面傳送完整性且相應地調整介面設定以最佳化 介面效能。在傳輸錯誤之情形中,該回饋處理單元(在介 面完整性回饋及可能之其他感測器或參數之幫助下)可決 定是調整介面設定、執行一傳輸重試還是忽略該錯誤。在 無傳輸錯誤之情形中,該回饋處理單元可決定使介面設定 保持原樣還是修改介面設定以增加介面效能。因此,可以 157533.doc -29- 201225100 使得該回饋處理單元可獲得不同等級之資訊(諸如二進位 通過/未通過指示、一通過/未通過加錯誤編號或一通過/未 通過加錯誤編號加錯誤位置)之方式設計該介面完整性回 饋機制。 根據該實施例,該回饋機制可利用現有裝置基礎結構或 藉由專用機制(諸如散列值引擎)來進一步最佳化。此專用 機制可實施於硬體、軟體或此等之一組合中。亦可由具有 校正傳輸錯誤能力之一錯誤校正引擎來補充該散列值引 擎。此方法將允許該介面應付一定程度之位元錯誤速率’ 同時仍達到最佳效能。傳輸校正能力係有價值的,乃因在 先前技術中針對NAND位元故障之ECC之設計僅考量記憶 體本身上之錯誤,而不考量當在控制器與記憶體裝置之間 傳送資料時可能發生之介面錯誤。傳輸錯誤之可能性隨著 一介面效能上升而上升。使舊有ECC處理介面錯誤使舊有 ECC能力在效能及不可恢復錯誤之概率方面降級。設計一 專用介面錯誤校正引擎可允許具有一「劃分及規則」,從 而使舊有ECC僅集中於NAND產生之錯誤。(可在以下編號 之美國專利、專利公開案及專利申請案中找到關於ECC之 額外背景細節:2009/0094482 、 7,502,254 ' 2007/0268745、2007/0283081、7,310,347、7,493,457、 7,426,623 、 2007/0220197 、 2007/0065119 、 2007/0061502 、 2007/0091677 、 2007/0180346 、 2008/0181000 、 2007/0260808 、 2005/0213393 、 6,510,488 ' 7,058,818 ' 2008/0244338 ' 2008/0244367 ' 157533.doc •30- 201225100 2008/0250300及2008/0104312。;) 圖11係展示此一回饋機制之一方塊圖,但係基於一典型 先前技術現有NAND/控制器基礎結構。此將幫助進一步圖 解說明所涉及之某些概念以及提供一適應性介面之一替代 實施例。在圖11中,為簡化本論述,僅明確地展示與本論 述相關之元件而抑制其他元件。在控制器1〇〇上,係ASIC 核心411、ECC電路413、一輸出緩衝器415、一輸入緩衝 器425、傳輸電路417及接收電路427。雖然在此處展示為 分離的’但在實際實施方案中可不係如此:輸入緩衝器與 輸出缓衝器可係重疊部分或係同一個;傳輸及接收電路係 共用元件或甚至係同一個;ECC電路可實施為ASIC核心中 之軟體及等等。在記憶體侧2〇〇上’所展示的元件係讀取 電路431及傳送電路441(其同樣可係部分地或完全重疊)、 一輸入資料緩衝器433及一輸出資料緩衝器443(其可類似 地係一單個緩衝器)及NAND核心43 5。控制器1 〇〇與該記憶 體電路然後藉由匯流排結構401連接。 一旦在控制器100處接收到一主機資料集,該主機資料 集之一典型流動係自ASIC核心411至輸出資料緩衝器415、 穿經傳輸電路417且至匯流排結構401上。在記憶體200 上,該資料係藉由接收電路431自該匯流排傳送至輸入資 料緩衝器433中且然後寫入NAND核心435中。隨後,當主 機想要存取該資料時,將該資料自NAND核心435讀出至輸 出資料緩衝器443、藉由傳輸電路441傳送至匯流排結構 401,且然後藉由接收電路427自該匯流排讀取進該控制器 157533.doc -31- 201225100 之輸入資料緩衝器425中。記情鲆多& 1 a 。己隐體系統通常使用錯誤校正 碼(ECC)來偵測及校正可進 _ 進八这資枓之錯誤,其中該控制 器產生與該資料一起傳輸且寫入至該Μ·核心中且然後 與該資料-起讀取回之對應ECCeEcc引擎4邮後可以利 用該資料及其對應之ECC,從而允許在將該資料傳遞至主 機之前根據需要檢查並校正該資料。 雖然可使用ECC來校正資料錯誤,但其僅可校正一有限 數量之錯誤’其中該量係一設計選擇。在此等能力内, ECC引擎413可針對在環程旅行期間所累積之任一錯誤進 仃校正,包括傳輸錯誤以及與NAND核心435自身相關聯之 錯誤(諸如寫入錯誤、讀取錯誤及在儲存時之資料之干擾 及其他降級”然而,ECC之選擇通常僅基於對核 〜435相關之錯誤之考量。在某些配置中,諸如關於上文 針對ECC所引用的某些參考中所揭示之「強Ecc」,該碼係 基於記憶體之性質及如何將該等資料狀態映射至該記憶體 中。控制器與記憶體之間的傳輸大部分被忽略且被視為未 添加錯誤。因此,需要相應地設定該介面,從而導致根據 最差、接近最差之情形設定該等參數,如上文所闡述。 一第一實施例集係基於圖丨丨之元件來供應用於最佳化該 等介面特性之回饋。在一環程旅行上,將一資料集連同對 應ECC自該控制器發送至該記憶體且發送回至該控制器, 此與上文所闡述的在標準寫入之後的一讀取甚是相同,只 是並不將該資料(及對應ECC)實際寫入該記憶體核心中。 在將一寫入傳送自控制器100發出至記憶體電路200之後, 157533.doc157533.doc In the case of horse binary memory, the limit of operation In the preferred embodiment, the binary memory is configured to support partial page stylization, and in the partial page stylization one page is not The overlapping portion can be individually programmed in one of a plurality of stylized passes to the page. Programmability and read performance can be improved by operating on a large page size. However, when the page size is much larger than the write unit of the host (usually a 5 12-bit sector), its use will be inefficient. Operating at a finer detail than a page allows for a more efficient use of this page. An example between the binary and the MLC has been given. It should be understood that, in general, the same principle applies between a first memory having one of a first number of steps and a second memory having a second number of steps greater than the first s. Logic and Physical Block Structure Figure 8 illustrates a memory managed by a memory manager that resides in one of the software components of the controller. The memory 200 is organized into a number of blocks, each of which is a minimum erasing unit. Continuing with the embodiment, the memory system can be operated by forming a block aggregate into a "metablock" and also forming a larger erase unit of the "block". For convenience, this description refers to a erase unit as a metablock, although it should be understood that some systems operate with a larger erase unit such as a macroblock formed by a metablock aggregate. The host 80 accesses the memory 200 when an application is run under a file system or operating system. Typically, the host system addresses the data in units of logical segments, where, for example, each segment can contain 512 bytes of data. In addition, the 'generator usually consists of a logical cluster as a unit to read or write H logical clusters—or multiple logical sections. An optional host side memory manager may be present in some host systems at 157533.doc -24· 201225100 to perform lower level memory management at the host. In most cases, during a read or write operation, host 80 essentially issues a command to memory to read or write a segment of the _string data logical segment with consecutive addresses. A memory side manager 300 is implemented in the controller 1 of the memory system 9 to manage the wealth and retrieval of data to the host logical segments in the metablock of the flash memory 200. The memory manager includes a front end system 31 and a back end system 320. The front end system 31A includes a host interface 312. Backend system 320 includes a number of software modules for managing erase, read, and write operations on metablocks. The memory manager also maintains the flash control memory 2 and the system control data and directory data associated with its operation in the controller RAM 130. Figure 9 illustrates a software module of a backend system. The back-end system mainly includes two functional modules: a media management layer 33 and a data stream and sequencing layer. The media management layer 330 is responsible for the organization of logical data storage in a flash memory block structure. More details will be provided later in the chapter on “Media Management”. The data stream and sequencing layer 340 is responsible for the sequencing and transmission of data sectors between a front end system and a flash memory. This layer includes a command sequencer 342, a low order sequencer 344, and a flash control layer 346. More details will be provided later in the chapter on "Lower Order System Specifications". The suffix manager 300 is preferably implemented in the controller 1 。 。. It translates the logical address received by the autonomous I57533.doc •25-201225100 machine into the physical address of the actual stored data in the memory array and then records these address translations. Figures 〇A(i) through i〇A(iii) schematically illustrate the mapping between a logical group and a metablock. The metablock of the physical memory has N physical sections for storing - N data logical sections of the logical group. Figure 1A(i) shows data from a logical group LGi where the logical segments are in consecutive logical order 0, 1, ..., iV-7. Figure 1A(ii) shows the same data stored in the same block in the same logical order. When a metablock is stored in this way it is called "sequential." In general, 'metablocks may have data stored in a different order' in this case the metablocks are referred to as "disordered" or "chaotic". There may be an offset between the lowest location of a logical group and the lowest location of the metablock to which it is mapped. In this case, the logical sector address is surrounded from the bottom backward in the metablock. A loop to the top of the logical group. For example, in Figure 10A(iii) the 'meta block' is stored in its first position with the data of the logical section & When the last logical segment is reached, it wraps around segment 0 and eventually stores data associated with the logical segment moxibustion - in its last physical segment. In the preferred embodiment, a page of tags is used to identify any offset, such as identifying the starting logical sector address of the data stored in the first physical segment of the metablock. When two blocks differ by only one page of labels, the two blocks are considered to store their logical segments in a similar order. Figure 10B schematically illustrates the mapping between logical groups and metablocks. Each logical group 380 is mapped to a unique metablock 37, where the data 157533.doc -26 - 201225100 is excluded from the small number of logical groups being updated. After a logical group has been updated, it can be mapped to a different metablock. The mapping information is maintained in a logical-to-entity directory set, which will be explained in more detail later. Adaptive Controller - Memory Interface This section presents a feedback mechanism and processing unit that monitors the internal controller of the memory system - the memory interface 70 is transmitted and the interface settings can be adjusted accordingly . This allows the system to optimize interface performance. For example, it may be possible to reduce the power of the system or accelerate the bus time of the interface, which (as this can usually be an internal performance bottleneck), as allowed outside the memory system (ie, from the host) allows for an increase. efficacy. In the case of transmission errors, the feedback processing unit may decide whether to adjust the interface settings, perform a transmission retry, or ignore the error with the help of interface integrity feedback and other sensors or parameters (at the end of the embodiment). The following description is also given in the context of a memory card using one of the NAND type memory array architectures shown in FIGS. 4A, 4B, and 5, but is easily extended to similar internal interfaces and other forms of other architectures. Memory and non-card use [such as embedded systems, SSDs, etc. Although the following discussion may be based on various example embodiments to provide specific examples, the techniques and structures herein are generally fully applicable to a memory system having a controller and a plurality of independently operable libraries, wherein the libraries include Flash memory or one of a variety of other types of non-volatile memory that can be used to store system data that the controller can use to manage the memory system. In addition to the above-mentioned (4) reference to the memory system, the 157533.doc • 27-201225100 memory system may also include the following numbers of US patents, patent applications and various memory presented in the application. System: 7,480,766,1^-2005-0154819-A1 ' US-2007-0061581-A1 ' US-2007-0061597-Al ' US-2007-0113030-A1 ' US-2008-0155178-A1 ' US-2008-0155228 -A1, US-2008-0155176-A1, US-2008- 0155177-A1 ' US-2008-0155227-A1 ' US-2008-0155175-A1, 12/348,819, 12/348, 825, 12/348, 891, 12/348, 895 12/348,899, 12/642,584, 12/642,611, US 12/642,649, 12/642,728, 12/642,740 and 61/142,620. Before discussing the example embodiments, this section will begin with further consideration of the issues to be resolved. The controller-memory device interface is used to transfer data between a controller (100 'Fig. 1) and one or more NAND (in the exemplary embodiment) device (200, Fig. 1). (Note that this discussion is about the internal interface between controller 1 快 and flash memory 2 记忆 on memory system 90, and interface 110 is the host interface for communication with the external memory system.) Different NAND interface modes have been developed to increase the speed of compromise, the interface performance of power consumption, and the like. Since this interface is often a performance bottleneck, these interfaces are pushed to the limit of system performance. To avoid data errors, interface settings (such as voltage, frequency, drive strength, and slew rate control) are set for worst-case scenarios (extreme temperatures, extreme load capacitance, extreme voltages, etc.). Therefore, devices are typically designed to have a worst-case safety margin, which translates to the maximum of typical conditions. Here, the 5L conditional towel 1 optimizes the interface setting to a higher interface performance without being guilty of production. Without a mechanism such as that presented below, the 157533.doc 201225100 memory device will continue to operate with a worst case performance setting. For example, a simple comparison between a 16-bit normal mode at 33 MHz nominal bus frequency and 40 MHz for acceleration, 50 MHz for super-acceleration, and 60 MHz for super-acceleration. Significant delay reductions of approximately 17%, 33%, and 45%, respectively, were produced. This is shown in Table 1, where the line frequency, the corresponding period (tcyc), the time at which 2142 bytes are transmitted, and the speed ratio at 33 MHz. Frequency tcvc 2142B xfr time ratio 33 MHz 30.3 ns 32454.5 ns 1.00 40 MHz 25.0 ns 26775.0 ns 0.83 50 MHz 20.0 ns 21420.0 ns 0.66 60 MHz 16.7 ns 17850.0 ns 0.55 Table 1 In the prior art, usually a flash will be flashed for a given product The interface performance is set to a fixed performance. This design is therefore factored into the worst case design. In some products, the flash interface is designed for a "near worst case" design that allows for a certain interface performance to be optimized, but at the risk of a lower device yield or increased data error. This section presents a feedback mechanism and processing unit that monitors the interface transport integrity and adjusts the interface settings accordingly to optimize interface performance. In the case of a transmission error, the feedback processing unit (with the help of interface integrity feedback and possibly other sensors or parameters) may decide whether to adjust the interface settings, perform a transmission retry, or ignore the error. In the absence of a transmission error, the feedback processing unit may decide to leave the interface settings as they are or modify the interface settings to increase interface performance. Therefore, 157533.doc -29-201225100 can be used to make the feedback processing unit obtain different levels of information (such as binary pass/fail indication, pass/fail plus error number or pass/fail plus error number plus error) The interface integrity feedback mechanism is designed in a way. According to this embodiment, the feedback mechanism can be further optimized using existing device infrastructure or by a dedicated mechanism such as a hash value engine. This proprietary mechanism can be implemented in hardware, software, or a combination of these. The hash value engine can also be supplemented by an error correction engine that has the ability to correct transmission errors. This method will allow the interface to cope with a certain level of bit error rate while still achieving optimal performance. Transmission correction capability is valuable because the prior art ECC design for NAND bit failures only considers errors in the memory itself, not when it is possible to transfer data between the controller and the memory device. The interface is wrong. The possibility of transmission errors increases as the performance of an interface increases. Making old ECC processing interface errors degrades old ECC capabilities in terms of the probability of performance and unrecoverable errors. Designing a dedicated interface error correction engine allows for a "division and rule" so that legacy ECCs focus only on NAND generated errors. (Additional background details regarding ECC can be found in U.S. Patent, Patent Publication, and Patent Application Serial No.: 2009/0094482, 7,502,254 ' 2007/0268745, 2007/0283081, 7,310,347, 7,493,457, 7,426,623, 2007/0220197, 2007 /0065119, 2007/0061502, 2007/0091677, 2007/0180346, 2008/0181000, 2007/0260808, 2005/0213393, 6,510,488 ' 7,058,818 ' 2008/0244338 ' 2008/0244367 ' 157533.doc •30- 201225100 2008/0250300 and 2008/0104312.;) Figure 11 is a block diagram showing one of the feedback mechanisms, but based on a typical prior art existing NAND/controller infrastructure. This will help to further illustrate some of the concepts involved and provide an alternative embodiment of an adaptive interface. In Fig. 11, in order to simplify the discussion, only elements related to the present description are explicitly shown to suppress other elements. On the controller 1, an ASIC core 411, an ECC circuit 413, an output buffer 415, an input buffer 425, a transmission circuit 417, and a receiving circuit 427 are provided. Although shown here as separate 'but in actual implementations this may not be the case: the input buffer and the output buffer may be overlapping or identical; the transmitting and receiving circuits share the same or even the same; ECC The circuit can be implemented as software in the ASIC core and the like. The components shown on the memory side 2' are read circuit 431 and transfer circuit 441 (which may also partially or completely overlap), an input data buffer 433 and an output data buffer 443 (which may Similarly a single buffer) and NAND core 43 5 . The controller 1 is then connected to the memory circuit by bus bar structure 401. Once a host data set is received at controller 100, one of the host data sets typically flows from ASIC core 411 to output data buffer 415, through transmission circuit 417, and to bus bar structure 401. On the memory 200, the data is transferred from the bus to the input buffer 433 by the receiving circuit 431 and then written into the NAND core 435. Then, when the host wants to access the data, the data is read from the NAND core 435 to the output data buffer 443, transmitted to the bus bar structure 401 by the transmission circuit 441, and then transmitted from the bus by the receiving circuit 427. The row is read into the input data buffer 425 of the controller 157533.doc -31 - 201225100. Remember more than & 1 a. An implicit system usually uses an error correction code (ECC) to detect and correct errors that can be entered into the data, where the controller generates and transmits with the data and writes to the core and then This information - the corresponding ECCeEcc engine 4 can be used after reading the post and its corresponding ECC, allowing the data to be checked and corrected as needed before being passed to the host. Although ECC can be used to correct data errors, it can only correct a limited number of errors' where the quantity is a design choice. Within these capabilities, the ECC engine 413 can correct for any errors accumulated during the round trip, including transmission errors and errors associated with the NAND core 435 itself (such as write errors, read errors, and Interference and other degradation of data at the time of storage" However, the choice of ECC is usually based solely on considerations related to core-435 errors. In some configurations, such as those disclosed in certain references cited above for ECC. "Strong Ecc", the code is based on the nature of the memory and how the data state is mapped into the memory. The transfer between the controller and the memory is mostly ignored and is considered as an unadded error. The interface needs to be set accordingly, resulting in setting the parameters according to the worst, near worst case, as explained above. A first embodiment set is based on the elements of the figure to supply for optimization Feedback of the interface characteristics. On a round trip, a data set is sent from the controller to the memory along with the corresponding ECC and sent back to the controller, as explained above. A read after quasi-write is quite the same, except that the data (and corresponding ECC) is not actually written into the memory core. After a write transfer is sent from the controller 100 to the memory circuit 200, 157533.doc

-32- 201225100 該控制器可使用緩衝鎖存器433及443來讀取回該資料。此 係藉由路徑437來表示,雖然若輸入缓衝器與輸出緩衝器 係同一緩衝器,將不存在一實際傳送。由於此環程旅行移 除與陣列435本身相關聯之任一錯誤,因而此將傳輸之影 響隔離’且允許ECC引擎413判定該記憶體介面之完整 I1生。然後可修改該等介面參數且可重新發出該處理程序。 如此可最佳化寫入及讀取介面參數兩者。 圖12係圖解說明另一實施例集之一方塊圖,但其中回饋 機制使用一散列值引擎及專用於該介面之可選資料校正引 擎。圖12並未提及控制器及記憶體晶片,而是以傳輸器側 520及接收器側530上之電路之措辭呈現,乃因如下文進一 步所闡述,此等中之任一者可係控制器且另一者可係記憶 體’此取決於其係一讀取處理程序還是寫入處理程序,且 兩側無需對稱。 傳輸器側520將同樣包括一寫入資料緩衝器521及傳輸介 面電路529。現在其亦將包括一散列值產生器525及一多工 器527。在一傳送處理程序中,欲寫入之資料(523)自寫入 緩衝器520傳送出至散列值產生器525及MUX 527。散列值 產生器525對應地根據該資料產生一散列值,然後將該散 列值傳遞至MUX 527上。該多工器然後將後跟其散列值之 資料供應至傳輸介面電路529且然後供應至匯流排結構55〇 上。 該接收器侧同樣包括接收器介面電路及一讀取資料缓衝 器535,加上某些額外元件。在讀取介面電路532自匯流排 157533.doc -33- 201225100 550取得該資料及對應散列值之後,去多工電路533將該散 列值與該資料分離,將該所讀取之資料發送至緩衝器535 且亦發送至-接收器側散列值產生器539,接收器側散列 值產生器讲同樣根據該㈣集產生—散列值。然後在比 較電路⑷中將該接收器侧所產生之散列值與該所接收之 散列值進行比&。端視該實施命卜崎之結果可僅判定此 等值是否匹配或進一步判定由於該傳送處理程序所致的錯 誤量。在某些實施例中亦可包括一資料校正引擎537以校 正介面錯誤而不必執行一資料重新傳輸。在該實例性實施 例中,該等散列值產生器(及在接收器側上之可選資料校 正引擎)與用於NAND核心錯誤之ECC分離雖然在電路中 可存在某些重疊部分;且實際上兩者可實施於該控制器之 同一邏輯電路上但係藉由不同韌體碼來實施。(雖然針對 此論述係視為分離的’但在下文所闡述之一更一般性實施 例中該兩個錯誤偵測/校正部分可係互動式。)通常,將基 於正發送之資訊之全部(使用者資料、對應ECC、標頭資訊 等)產生散列值’但在替代實施例中,可根據藉由(例如)自 各附加項剝離之僅一部分且僅使用用於產生散列值之使用 者資料本身來產生散列值。 圖12亦包括經連接以接收散列值比較電路541之輸出之 回饋處理單元560。然後在561處分析此回饋,端視實施 例’其可考量溫度、供應電壓位準及NAND核心之處理相 關品質中之一者或多者。在563處,然後可使用此回饋結 果來調整該傳輸處理程序且對應地連接至傳輸介面電路 157533.doc •34· 201225100 529及讀取介面電路531中之 者或兩者。對於一寫入操作 (其中該控制器係傳輸器側),在 — ^ , 將寫入傳送自該控制器 發出至該記憶體裝置之後,該回 頌慝理卓兀可僅讀取回對 該等所產生之散列值之比較,且蘊a 殿且鞛由彼操作判定寫入方向 記憶體介面完整性。基於此,可終 J ^改介面寫入參數且若期 望可重新發出該處理程序。斟魈从,咖 枉厅對稱地,可對其中記憶體係傳 輸器側之讀取方向採用同一操作。 圖13係展示經由E流排介面傳輸資料及所產生之散列值 之-實例之-圖示。如在項部所展示,將對應散列值自動 附加至該資料,以便當—裝置以此模式操作時此等將一起 傳輸。在展示於底部處之第二選項中,傳輸資料有效負 載,該接收側請求對應之散列值,然後產生並傳輸該對應 散列值。資料有效負載可具有預界定長度或具有隨機長 度若資料有效負載長度係預界定的,則散列值可如在第 一選項中附加至該資料,或應請求而發送。若資料有效負 載長度係隨機的,則可在發出一特定命令之後發送該散列 值0 對於關於圖12所闡述之技術及對應電路,一定數目個變 化形式係可能的《關於散列值引擎及散列值,該散列值引 擎可係同位碼(循環冗餘檢查,或CRC)、ECC等等。舉例 而§ ’可使用將傳回通過/失敗之一個「二進位」實施 例’該實施例可係基於錯誤位元計數(CRC)而建置且具有 實施一低閘計數之益處。另一選擇係,一「軟」實施例可 返回一錯誤位元計數(EBC)及(視情形)故障位元之位置, 157533.doc •35· 201225100 且可係基於諸如BCH或索羅門碼等ECC碼來建置從而提 供更多資訊來幫助系統做出正確決定。散列值引擎可視情 形亦具有校正介面故障之一補充特徵,舉例而言,類似二 校正來自記憶體核心之經翻轉位元,如圖12之資料校正引 擎537所呈現。基於來自該傳送之回饋,㈣統可重複該 傳送。可基於二進位傳送狀態或基於—軟體傳送狀態決定< 傳送重試。此外,可基於傳送狀態與nand位元翻轉數目 之一組合來決㈣送重試;舉例而言,若該介面引入了 N 個錯誤且該NAND引入了 M個錯誤,且該㈣器錯誤校正 能力係Ρ,且Ρ>Ν+Μ,則該系統可決定不重新傳輸。 該系統亦可以各種不同方式組態。該組態可係對稱的, 其中在控制器側及記憶體側處之散列值引擎係相同的或不 對稱的。在-不對稱組態中,對於不同傳輸方向使用不同 組態;舉例而言,可針對讀取傳輸設定—較快機制而針對 寫入傳輸設計一較可靠機制。而且,應注意,即使介面係 對稱地組態’由於可在資料之初始寫入與隨後讀取之間的 間隔期間改變該等設定’因而其可關於一給定資料集不對 稱地作用。 回饋處理單元530可不同地位於控制器1〇〇上、記憶體 200上或兩者上或分佈於兩者之間。其亦可形成於一單獨 電路上。在諸多應用中,將回饋處理單元實施於控制器上 將係最實際的,乃因控制器電路經常包括更高級之處理能 力且亦由於記憶體系統經常由多個記憶體晶片形成,但此 處所提供之技術並不如此限制。在此等變化形式中之任— 157533.doc -36 - 201225100 者中’檢查資料傳送狀態階段係回饋處理單元之職責。 進一步考量其中回饋處理單元位於控制器側上之一實 例.在讀取方向上’在控制器讀取該資料及散列值之後, 此等將穿經該回饋機制且該控制器將判定該通過/未通過 狀態且可相應地調整(或不調整)介面設定。由於控制器已 讀取資料及散列值,因而判定狀態不再進一步需要來自該 快閃記憶體側之資訊,乃因可在控制器之邏輯中進行此操 作。在寫入方向上,將資料有效負載及對應散列值發送至 記憶體侧且控制器然後可以數個不同方式操作:自記憶體 側讀取通過/未通過狀態;讀回該散列值且判定通過/未通 過,自該記憶體讀回錯誤位元計數(EBC);自nand讀回 EBC及錯誤位置;或自記憶體側讀取通過/未通過狀態及經 校正之位元數目。 回饋處理單元可決定修改介面設定。相而t,可修改 以下介面設定··驅動強度、匯流排頻率或其他時序參數; 介面電遷、介面模式(例如,自—正常/習用模式切換至一 雙態觸變模式)等等。然後可以—適應性回鎮方式修改此 等介面設由於諸如處理程序變化、供應電壓位準及溫 度等因子影響介面錯誤之概度,因而此等因子亦可被包^ 而作為圖12上回饋分析561之輸入。 匯流排頻率及其他參數設定可係基於早先傳輸,其中亦 可以不同方式設定標稱參數設定。舉例而言,可使用具有 用於不同匯流排電容/NAND組態之不同值之一查找表 (LUT) 查找表(LUT)亦可具有針對不同操作處理程序 157533.doc •37- 201225100 參數、供應電壓位準、溫度等等之不同值。處理程序參 數、供應電壓位準及溫度在一函數(公式)中可係一變量, 而非如在一 LUT中係預界定的。 可在背景中操作介面設定最佳化任務。亦可使用諸如供 應電壓或溫度改變等特殊事件來觸發—介面設定訓練任 務。介面訓練任務亦可使用跨越而未寫入至nand核心之 已头模式,諸如上文關於圖u及路徑43 7所闡述。介面 «又疋亦可係不同的且係基於讀取方向及寫人方向或基於不 同資料保持要求。 先前論述主要將記憶體系統視為具有一控制器及一單個 "己隐體裝置電路。更_般而1’該系統可包括可使用各種 匯流排拓撲連接至控制器(及回饋處理單元,若係一單獨 電路)之數個記憶體晶片。舉例而言,所有記憶體晶片可 八用單個系統匯流排;或每一記憶體電路可具有其自己 的控制器-記憶體匯流排;或可使用各種混合配置。然 後,可將不同介面設定應用於此複數個NAND裝置(例如, 若介接數個裝置,則此可平行地進行)。亦可基於正被存 取之特定NAND裝置而使用不同介面設定,乃因介面品質 可係特定NAND裝置之負載及/或胞/區塊品質之一函數)。 此外,在一給定記憶體裝置内,亦可將不同介面設定應用 於NAND核心内之區塊,乃因介面品質可係特定區塊之品 質之一函數。 可在於2010年7月13曰提出申請之美國專利申請案第 12/835,292號中找到前述章節之技術之更多細節。 157533.doc -38- 201225100 後端記憶體系統介面之動態最佳化 本章節將進一步考量記憶體系統之控制器-記憶體(或 「後端」)介面且呈現用於動態地最佳化適於高速記憶體 系統(包括具有多個記憶體資料匯流排之記憶體系統)之後 端讀取及寫入效能之某些方法。如上文所論述,一記憶體 系統通常經設計而具有一定容錯量;且雖然此錯誤可發生 於控制器-記憶體傳輸處理程序及實際在記憶體上之儲存 處理程序兩者中’但傳統上,ECC處理程序僅考量此等情 形中之後者且通常後端介面經最佳化以消除或至少保量最 小化傳輸通道錯誤。但是,在諸多情形中,由料處理程 序產生之資料錯誤(包括讀取及寫入錯誤)可遠遠低於系統 之ECC能力。舉例而言,雖然一經大量循環裝置可需要完 全可用資料校正,但一未用過之裝置可具有相對少之錯 誤,從而使系統具有額外之錯誤校正能力。此章節呈現記 憶體系統藉以將此錯誤校正容量之—非零部分内部地分配 給傳輸通道之方法。此允許介面以(舉例而言)較高速度或 較低電路操作,即使此將可能導致傳輸路徑錯誤。當記憶 體邛分需要一較高錯誤校正量時,可自動調整分配。在補 充態樣中,系統可校準傳輸路徑以針對不同操作參數判定 所形成之傳輸錯誤之量且然後基於所允許的量選擇參數。 進步考量控制器與記憶體部分之間的後端介面,一典 型圮憶體系統係由一記憶體控制器及一記憶體裝置(諸如 一 NAND快閃記憶體模組)組成。後端介面係記憶體與其控 制益之間的資料匯流排。該介面通常係以兩種方式中之一 157533.doc .39· 201225100 者建立。在第一種方式中’若控制器與記憶體裝置係離散 組件,則該後端介面係藉由將此等組件安裝於其上之印刷 電路板(PCB)上之導電跡線來建立。在第二種方式中控 制器與記憶體可係囊封於一單個封裝中,諸如系統級封裝 (SIP)或多晶片封裝(MCP)e在此第二情形中,#由封裝基 板建立後端介面。 如在先前章節中所論述,記憶體系統中之總體位元錯誤 率(BER)可歸因於兩個主要因子:記憶體裝置(諸如nand 快閃記憶體)中之資料保持可靠性;及後端介面之缺陷, 此可造成傳輸錯誤。則在記憶體系統中可採用錯誤校正碼 (E C C)來解決此總體腿。圖! 4示意性地圖解說明一記憶 體系統中之位元錯誤之成因。 如在圖14t所展示,總體位元錯誤率BER 605之主要根 源中之-者。將由於所儲存資料之資料降級(源於電荷洩 漏、干擾等等)所致的此錯誤以及在讀取及寫入處理程序 中所引入之任一錯誤之影響展示為nand保持⑽卜傳統 上,資料校正僅用於計及此因子,當讀取資料時會觀察到 此因子。在603處展示由於通道缺陷所致的錯誤且該錯誤 影響資料讀取及寫人兩者,但同樣將在讀取時觀察到影 響。通道影響錯誤之根源可包括符號間干擾(isi)、同一資 料匯流排(匯流排内)串擾、匯流排間串擾(關於多資料匯流 排設計)、印刷電路板(PCB)雜訊、碎晶粒雜訊、封裝雜訊 等等。另-方面’ ECC 607可校正多達一定程度之錯誤之 錯誤。 157533.doc •40- 201225100 隨者控制Is與§己憶體之間的資料傳送速率增加,後端介 面變得對由於603(諸如同一資料匯流排内之信號當中的_ 擾(記憶體資料匯流排内串擾)及符號間干擾(ISI))所致的信 號完整性相關問題更敏感。另外,記憶體拓撲(其中控制 器可同時存取多個記憶體裝置(多記憶體資料匯流排設計 之引入使後端介面遭受同時切換雜訊及資料匯流排當中之 串擾(記憶體資料匯流排間串擾)。除匯流排速度之外,諸 如資料匯流排之電壓振幅及溫度(PCB跡線之環境溫度及系 統級封裝(SIP)或多晶片封裝(MCP)之接面溫度)等因子亦 可影響後端介面之信號完整性。因此,後端介面之固有缺 陷成為判定南速§己憶體系統之總體系統效能之一瓶頸。記 憶體裝置之引腳電容隨著記憶體晶粒之數目而增加。用多 個記憶體晶粒建構之高容量記憶體裝置在其資料輸入/輸 出(I/O)上展現高電容,此進—步降級資料匯流排結構之邊 緣速率及信號完整性。 關於信號跡線之信號完整性相關問題可藉由增加信號跡 線彼此分開之間距以最小化串擾來最小化;但此方法受 PCB或基板上之可用區域限制。亦可藉由選擇具有低介電 常數及低消耗因數(損耗因數)之PCB材料來減少該等問 題;但此等PCB材料比典型材料較昂貴。因而,雖然存在 藉助降低匯流排速度或另外地使操作匯流排參數降級之輸 出來減少此錯誤之若干方法’但此等方法存在缺點。 本章節呈現用於解決後端介面中之此等信號完整性問題 且亦計及在控制器與記憶體裝置當中的處理程序變化之一 I57533.doc •41 · 201225100 動態最佳化技術。除處理程序變化外,記憶體系統操作所 處之電壓設定及溫度可變化。一靜態解決方案不計及處理 程序'電壓及溫度之變化,且因此可非係最佳方法。 本早卽使用一偽回送方式來動態地最佳化記憶體系統 (包括具有多個δ己憶體資料匯流排之彼等記憶體系統)之後 端效能。可使用與先前章節中所闞述之機制類似之該等種 類之機制或藉由使用預定資料型樣來進行此操作。該實例 性實施例將使用一偽隨機位元型樣(PRBS)。動態最佳化資 料匯流排設定可幫助最大化控制器與記憶體裝置之間的資 料傳輸之可靠性。此可允許記憶體系統區分傳輸錯誤與記 憶體裝置上造成之錯誤。此等態樣對於配備有高速後端記 憶體介面及多個記憶體資料匯流排之產品尤其有利。 PCB或封裝基板上之導電跡線具有有限頻寬,此造成符 號間干擾(ISI)。ISI之效應取決於邊緣速率(上升時間及下 降時間)、資料速率及資料型樣。在數位通信中,有時使 用偽隨機位元型樣(PRBS)型樣來探索一資料鏈路之最差情 形1 SI影響’乃因此型樣富含頻率分量。一 PRBS型樣係一 重複型樣’其具有類似於一隨機序列之性質且用於量測在 電子資料鏈路中所傳輸資料之抖動及眼圖波罩。PRBs通 常表示為2X-1 PRBS或PRBS_X,其中冪(χ)指示形成該型 樣所用的移位暫存器長度。每一 2X-1 PRBS含有X數目個位 凡Ο個除外)之每一可能組合。期望實際使用最長PRBS型 樣’乃因其對信號鏈路施加最大壓力且提供一較佳隨機資 料表示 〇 157533.doc -42. 201225100 雖然該實例性實施例使用一偽隨機位元型樣,但亦可使 用其他型樣,只要該系統知曉所用的資料集之型樣即可’ 以便可將此與在回送處理程序結束時回來的資料進行比 較。該實例性實施例使用PRBS型樣,乃因其類隨機特性 可最大化信號鏈路之ISI影響。除pRBS型樣之外,在本發 明中可利用其他類型之資料型樣,且每一個別型樣可產生 一不同結果。 可將一PRBS型樣應用於平行後端介面中之每一信號鏈 路。雖然理想上將無限地重複該型樣在記憶體系統中實際 上係不可行的,但此不應係一重要缺點,只要藉由使用一 短型樣可將該型樣重複足夠數目次即可^舉例而言若一 NAND快閃記憶體之頁大小係16 kB,則在一 8位元資料匯 流排之每一信號鏈路上,可將127b型樣長度之一 pRBs_7型 樣完整地重複129次《剩餘位元(16384b-127bxl29 = lb)構成 PRBS-7之一不完整複本。此不完整pRBS型樣最終不應造 成一有意義事物,乃因大多數傳輸鏈路效應係以129個完 整之PRB S型樣循環來計及。 圖15可用於圖解說明在後端介面中一偽回送方法之操 作。在圖15中,左手側係一流程,而右手側示意性地圖解 說明對應控制器-記憶體互動。在7 〇 1處,控制器關斷其資 料攪碼及錯誤校正編碼(ECC)能力,其中在右手側,此係 藉由將此等元件「X」出去來表示。因此,所有經傳送而 出入於控制器之資料皆係以其原始格式而未經任何授碼或 校正。在703處,控制器將一命令發送至記憶體裝置,告 157533.doc •43· 201225100 訴它將欲接收之資料錯存並保持在其資料鎖存暫存器令而 不將其傳送至s己憶體單元。亦即,不將此資料集程式化至 記憶體胞中。在705處,控制器在該資料匯流排結構中之 每一 k號鏈路上將一已知資料型樣(此處係一獨立p刪 型樣)發送至記憶體裝置。記憶體裝置將該資料保持於資 料鎖存暫存器中,直至其滿為止。 在707處,控制器將一命令發送至記憶體裝置,告訴它 將儲存於其資料鎖存暫存器令之資料不斷地發送回來,直 至控制器指示其停止為止。亦即,在該資料鎖存暫存器已 在每一鏈路上倒出所有16 kb之資料之後,其將再次開始 發送回m因此,PRBS_7型樣在資料匯流排之每一 信號鏈路上重複。該實例性實施例使用PRBs型樣傳送之 連續操作之原因係由一信號鏈路引入之位元錯誤係一概率 性事件。跨越一鏈路傳送之資料量越大,傳輸位元錯誤率 (BER)作為對固有鏈路效能之一靜態量測越準確且越具代 表性。在709處,控制器接收資料匯流排之每一信號鏈路 上之該重複PRBS-7型樣(或其他所用資料型樣)。 在711處,該控制器比較該所接收資料與所發送資料型 樣(此處係標準PRBS-7型樣)且將任何錯誤作為傳輸BER進 行報告。該控制器然後將停止發送PRBS_7型樣(713)且退 出偽回送模式(715)之一命令發送至記憶體裝置。 圖16對應於圖15之方塊圖705,其中控制器將資料型樣 發送至記憶體裝置’其中圖17對應於方塊7〇9。在此兩個 圖中’展示一匯流排結構811之一個特定實例,其中頂部 157533.doc -44 - 201225100 處展示數個命令及控制信號線,且在下部展示一定數目個 資料線。此處,CLE=命令鎖存啟用,ALE=位址鎖存啟 用,RE=讀取啟用,WE=寫入啟用,DQS=資料選通,且存 在八個輸入/輸出線(100-107)。出於此論述之目的而簡化 了此等盒圖,其中在記憶體控制器801上僅展示一 ECC方 塊805及一 PRBS產生器803且在記憶體裝置831上僅呈現資 料暫存器REG 833,而未明碟展示其他元件(包括在831上 之非揮發性記憶體陣列)。在圖16中,當控制器801正發送 資料型樣跨越至記憶體裝置83 1時,將斷定寫入啟用信號 及資料選通且每一信號線將載送該資料型樣。此處,每一 IO線載送一獨立型樣。此處,此等係PRBS之所有個別複 本,但可具有不同時序,如該圖中之其相對偏斜所指示。 在記憶體831上,該資料型樣然後如接收地儲存於暫存器 833中。在圖17中,該資料然後自暫存器833跨越匯流排結 構811發送回至控制器8〇1,因而現在斷定讀取啟用信號及 資料選通…旦該資料型樣完成了環程旅行(未寫入至非 揮發性記憶體中)且回到控制器801上,就可將其對照其原 始形式進行檢察並察看發生了多少損毁。雖然匯流排結構 81^係具有多個信號線之一平行匯流排介面,但此僅係一 特疋實例’可將其他匯流排結構用㈣輸通道,諸如 資料配置。 藉由相對於電力消耗(電力消耗與資料匯流排電壓直接 相關)之資料傳送速率(匯流排操作頻率)來表徵—記憶體系 統之效能。藉由使資料匯流排之電壓振幅(由驅動資料匯 I57533.doc •45- 201225100 W排之裝置之:[/〇判定)及資料傳送速率變化 什穆圖帥鶴_之一個三維表示,其中傳送速率 轴繪製’資料匯流排電屋沿以,且傳輸顺沿 處’資料傳送速率可係指在寫入操作(如在圖15之7〇5令 當將貧料自控制器電路傳送至記憶體電路時)或讀取操作 (如在7〇9中,當將資料自記憶體傳送至控制器時)期間 加之資料傳送速率。呈現於此一什穆圖中之資料可係在各 種輸出驅動阻抗(驅動強度)及溫度下量測以覆蓋最差情 :、典型情形、及最好情形情境。作為一結果,針對―: 疋量之可允許傳輸錯誤’可在此資料匯流排電壓、輸出驅 動阻抗、轉換速率、線路電容、傳送速率、溫度及電力消 耗之-給定參數組合下判定最佳操作點。在圖18中展示什 穆圖之一實例。 圖18係展示在—系統記憶體之—特定實例之—固定輸出 驅動阻抗、轉換速率、線路電容及溫度下傳輸咖對資料 匯流排電壓及資料傳送速率之一什穆圖之一實例。資料匯 流排電壓係在垂直軸上之Vdd,而傳送速率在水平抽上。 傳輸BER之量藉由該曲線圖上之色彩表示,其中答案在圖 右側。在此黑與白表示中,極低與極高錯誤量之表示看似 相同,但在該主圖中,較低錯誤區在顏色淺之劃分區左 邊,而較高錯誤區在右邊。基於此類資料,針對所允許之 傳輸資料之量,可選擇操作參數之一組合,其中,與往常 一樣,此經常將涉及一折衷。舉例而言,若所期望之可允 許BER量係10·5,若最大速度係主要考量,則Vdd應採用約 157533.doc •46· 201225100 3.1-3.2 V,從而允許約170-1別Mb/s之一傳送速率。若電 力消耗係一較重要的考量,則可使用一較低Vdd值,例如 2·8 V,由此針對約相同之傳送ber將允許約15〇 Mb/Si — 傳送速率》若基於(舉例而言)記憶體已循環多少次或ecc 指示BER之組合成因正接近系統之最大能力,則給分配給 傳輸通道之BER重寫分配一不同值,然後控制器可基於此 資料調整匯流排系統之操作參數。 因此’在藉由捕獲在各種輸出驅動阻抗、轉換速率、線 路電谷、溫度等等下呈現於什穆圖中之資料來校準該系統 之後,該記憶體系統可根據各種情形操作。舉例而言,已 知一期望傳輸BER,則記憶體系統查找並選擇最佳資料匯 流排電壓、資料傳送速率、輸出驅動阻抗及轉換速率。 (可將來自該校準處理程序之此資料保存於非揮發性記憶 體中或控制器電路中之記憶體空間(RAM)中。)舉例而言, 其可選擇形成該所期望之傳輸BER之最低資料匯流排電 壓、最咼資料傳送速率及最低輸出驅動阻抗。在另—實例 中,已知資料匯流排電壓、資料傳送速率、輸出驅動阻 抗、轉換速率、線路電容及溫度之一特定組合,記憶體系 統知曉其可預期什麼傳輸BER»另一選擇係,記憶體系統 可選擇平衡所有因子—資料匯流排電壓、資料傳送速率、 輸出驅動強度及傳輸BER之一操作條件。 由於控制器中與記憶體裝置中之I/O緩衝器之設計可不 同,因而可分別判定記憶體系統之最佳讀取效能及寫入效 能。除由使記憶體系統設計不同所產生之差別外,同一裝 157533.doc • 47· 201225100 置之個別實例由於處理程序變化以及操作條件之差別而亦 將存在差別。為計及裝置老化、操作條件之改變等等,亦 可重複校準處理程序。舉例而言,可在運送裝置之前在測 試時執行一初始校準,且然後該控制器可週期性地或回應 於諸如裝置循環、錯誤結果、操作條件之顯著改變等等之 事件而重新校準系統β因此,除改變分配給傳輸通道之 總錯誤之比例之外,針對一給定分配之對應操作參數可動 態地改變。 如上文所提及,可在讀取處理程序及寫入處理程序兩者 期間最佳化效能》回到圖15,對於在記憶體讀取期間之效 能最佳化,在705處,系統減慢正寫入至記憶體裝置之資 料鎖存暫存器中之資料型樣之傳送速率以最大化該資料型 樣之傳送之完整性。舉例而言’在丨0 MHz傳送速率下,填 滿16 kb之資料鎖存暫存器將花費U ms。在7〇9及7Π下, 系統量測在讀取操作期間所招致之傳輸Ber,其中記憶體 裝置之I/O係驅動器’且該控制器係接收器。什穆圖資料 然後展示記憶體裝置之I/O電壓與讀取頻率之間的關係。 對於在記憶體寫入期間之效能最佳化,在7〇5處,系統 使正寫入至δ己憶體裝置之資料鎖存暫存器中之資料型樣之 電壓及傳送速率變化。在709處,系統然後將減慢資料自 記憶體裝置至控制器之傳送速率以防止由信號鏈路注入額 外位元錯誤。所量測之傳輸BER由此係在705中在寫入操 作期間所招致之BER。因此,什穆圖資料將表示控制器之 I/O電壓與寫入頻率之間的關係。 157533.doc • 48· 201225100 目則為止,此處所呈現之各種態樣皆係在其中在一控制 器電路/、皁個3己憶體電路之間僅有一單個匯流排之一背 景中呈現°然而’-記憶體系、統可包括具有各種匯流排拓 撲之多個裝置;且當存在多個匯流排時,此等匯流排之間 的互動可導致額外錯誤源。此處之技術可提供使後端介面 中之一資料匯流排内之信號鏈路中之每一者偏斜至一特定 解析度之能力,舉例而言,1〇〇 pS。此偏斜能力可由控制 器或S己憶體裝置引入於驅動器或接收器中。將偏斜引入於 資料匯流排中允許系統補償P C B或封裝基板中之信號跡線 之長度不匹配。引入偏斜可減少後端介面中之近端與遠端 串擾之影響,且因此降低傳輸BER。涉及到兩種類型之串 擾:記憶體資料匯流排内串擾;及記憶體資料匯流排間串 擾。此_擾造成資料匯流排中之抖動。一典型記憶體系統 使用驅動器所發送之時脈來取樣同時在平行資料匯流排中 之每一個別信號。因此,資料匯流排中每一信號之抖動之 增加將造成傳輸BER之一增加。藉由使跨越多個記憶體資 料匯流排之資料偏斜以便使其不彼此對準,可減少記憶體 資料匯流排間之串擾。 圖19係圖解說明其匯流排結構使用多個記憶體資料匯流 排之一記憶體系統中之此串擾之一方塊圖。該記憶體系統 包括控制器901及藉由個別匯流排911 -1、911 -2、911 -3、 911-4連接至該控制器之多個(此處係四個)記憶體裝置931-1、931-2、932-3、934-4。對於匯流排911中之每一者,其 將具有一或多個10線’如ιοί至IOX所詳細展示。與以前 157533.doc -49- 201225100 一樣’此等個別匯流排可使用於傳送資料之平行地、串列 地或以此等中之一組合操作之10線之數目變化。此類多匯 流排配置經常實施於SSD型裝置中(參見,舉例而言,美國 專利7,376,034、美國專利7,765,339或?訂让等人之論文「八 High Performance Controller for NAND Flash-based Solid State Disk (NSSD)」(三星,2006年非揮發性半導體研討 會,IEEE,NVSMW 2006,第 21 卷,17 頁至 20 頁,2006 年 2月12日至16曰))以改良效能,但亦可發現於某些記憶體卡 及其他記憶體系統之設計中。除一給定匯流排之1〇線之間 的該類記憶體資料匯流排内串擾之外,現在將亦存在不同 匯流排上之記憶體資料匯流排間之串擾信號。當與上文所 闡述之PRBS型樣及偽回送模式之使用組合時,給出資料 匯流排電壓、傳送速率、溫度、輸出驅動阻抗、轉換速 率、線路電容及電力消耗之一特定組合,可判定產生最少 串擾且因此產生最低傳輸BER之最佳偏斜。 此處所呈現之各種態樣提供在存在各種信號完整性問題 下最佳化後端介面效能之一低成本解決方案。藉由將「未 使用」的ECC能力動態地分配給傳送處理程序,可如所闡 述地改良效能。如上文所提及,某些記憶體系統使用探索 多狀態記憶體裝置之性質之一種類型之「強」Ecc,在此 情形中,經傳送用於傳輸通道之錯誤校正能力可不按uti 之方式傳送。亦應注意,雖然記憶體系統併入Ecc來補償 資料錯誤,但對命令通常不存在相同規定,且記憶體裝置 經常將不接受已損毁命令,因而雖然在資料傳輸中故竞允 157533.doc •50· 201225100 :錯誤’但對命令將並非將係 等機制可針對資料分洗iie ^ 雖,、,' 籍由此 :對資枓允許一較高傳送速率,但可併入一較 <傳送速率(或其他參數)之設^以便針對控制 k破不招致錯誤。 結論 出於圖解說明及闡述之目的,已呈現對本發明之前述詳 ”田說明。本文不意欲具有排他性或將本發明限制於所揭示 之精確形式。根據上文之教示内容也可作出諸多種修改及 變化形心所⑽實施例經選擇以最佳_釋本發明之原 理及其實際應用,藉此使熟習此項技術者能夠在各種實施 例中且以適合於所構想特定用途之各種修改形式來最佳地 利用本發明。本發明之範疇意欲由本文所隨附之申請專利 範圍來界定。 【圖式簡單說明】 圖1示意性地圖解說明適合於實施本發明之一記憶體系 統之主硬體組件。 圖2示意性地圖解說明一非揮發性記憶體胞。 圖3圖解說明針對浮動閘極可在任何一個時間選擇性地 儲存之四個不同電荷Q1至Q4的源極-汲極電流iD與控制閘 極電壓VCG之間的關係。 圖4A示意性地圖解說明組織成一 NAND串之一記憶體胞 串 〇 圖4B圖解說明由諸如圖4A中所示之NAND串50構成之一 NAND記憶體胞陣列210之一實例。 I57533.doc -51· 201225100 圖5圖解說明平行感測或程式化之組織為(舉例而 言)NAND組態之一記憶體胞頁。 圖6(0)至圖6(2)圖解說明程式化一 4狀態記憶體胞群體之 一實例。 圖7A至圖7E圖解說明用一給定2位元碼編碼之4狀態記 憶體之程式化及讀取。 圖8圖解說明由一記憶體管理器管理之記憶體,其中該 記憶體管理器係駐存於控制器中之一軟體組件。 圖9圖解說明後端系統之軟體模組。 圖10A(i)至圖lOA(iii)示意性地圖解說明一邏輯群組與一 元區塊之間的映射。圖10B示意性地圖解說明邏輯群組與 元區塊之間的映射。 圖11係展示用於基於一現有基礎結構判定介面完整性之 一回饋機制之一方塊圖》 圖12係圖解說明其中該回饋機制使用一散列值引擎來判 定介面完整性之實施例之一方塊圖。 圖13係展不經由匯流排介面傳輸資料及所產生之散列值 之一實例之一圖示。 圖14示意性地圖解說明一記憶體系統中之位元錯誤之成 因。 圖15可用於圖解說明在後端介面中一偽回送方法之操 作。 圖16及圖17分別對應於圖15之方塊7〇5及7〇9。 圖18係展示傳輸BER對資料匯流排電壓及資料傳送速率 157533.doc -52· 201225100 之一什穆圖之一實例。 圖19係圖解說明其匯流排結構使用多個記憶體資料匯流 排之一記憶體系統中之此串擾之一方塊圖。 【主要元件符號說明】 10 記憶體胞 14 源極 16 汲極 20 電荷儲存單元 30 控制閘極 32 控制閘極 34 源極線 36 位元線 42 字線 44 選擇線 50 NAND 串 54 汲極端子 56 源極端子 60 頁 80 主機 90 記憶體系統 100 控制器 110 介面 120 處理器 121 可選共處理器 157533.doc -53- 唯讀記憶體 可程式化非揮發性記憶體 隨機存取記憶體 記憶體 記憶體陣列 感測放大器 鎖存器 記憶體管理器 前端系統 主機介面 後端系統 媒體管理層 資料流與定序層 命令定序器 低階定序器 快閃控制層 元區塊 邏輯群組 匯流排結構 專用積體電路核心 錯誤校正碼電路 輸出緩衝器 傳輸電路 輸入緩衝器 -54- 201225100 427 接收電路 431 接收電路 433 輸入資料緩衝器 435 NAND核心 441 傳送電路 443 輸出資料緩衝器 520 傳輸器側 521 寫入資料缓衝器 525 散列值產生器 527 多工器 529 傳輸介面電路 530 接收器側 531 讀取介面電路 533 去多工電路 539 接收器側散列值產生器 541 比較電路 550 匯流排結構 560 回饋處理單元 561 回饋分析 801 記憶體控制器 803 偽隨機位元型樣產生器 805 錯誤校正碼 811 匯流排結構 831 記憶體裝置 833 暫存器 157533.doc -55- 201225100 901 控制器 911-1 匯流排 911-2 匯流排 911-3 匯流排 911-4 匯流排 931-1 記憶體裝置 931-2 記憶體裝置 931-3 記憶體裝置 931-4 記憶體裝置 ALE 位址鎖存啟用 BL 位元線 CLE 命令鎖存啟用 DQS 資料選通 10 輸入/輸出 LG 邏輯群組 Ml 記憶體 M2 記憶體 MB 元區塊 Mn 記憶體 RE 讀取啟用 SI 選擇電晶體 S2 選擇電晶體 WE 寫啟用 WL 字線 157533.doc -56--32- 201225100 The controller can use buffer latches 433 and 443 to read back the data. This is indicated by path 437, although if the input buffer is the same buffer as the output buffer, there will be no actual transfer. Since this round trip removes any errors associated with array 435 itself, this isolates the impact of transmission' and allows ECC engine 413 to determine the complete I1 of the memory interface. These interface parameters can then be modified and the process can be reissued. This optimizes both write and read interface parameters. Figure 12 is a block diagram illustrating another embodiment set, but wherein the feedback mechanism uses a hash value engine and an optional data correction engine dedicated to the interface. Figure 12 does not mention controller and memory chips, but rather is presented in terms of circuitry on transmitter side 520 and receiver side 530, as any of these may be controlled as set forth below. The other can be a memory 'depending on whether it is a read handler or a write handler, and there is no need for symmetry on both sides. Transmitter side 520 will also include a write data buffer 521 and a transmission interface circuit 529. It will now also include a hash value generator 525 and a multiplexer 527. In a transfer processing program, the data to be written (523) is transferred from the write buffer 520 to the hash value generator 525 and the MUX 527. The hash value generator 525 correspondingly generates a hash value based on the data and then passes the hash value to the MUX 527. The multiplexer then supplies the data followed by its hash value to the transmission interface circuit 529 and then to the bus bar structure 55A. The receiver side also includes a receiver interface circuit and a read data buffer 535 plus some additional components. After the read interface circuit 532 obtains the data and the corresponding hash value from the bus 157533.doc -33 - 201225100 550, the multiplex circuit 533 separates the hash value from the data, and sends the read data. To buffer 535 and also to the receiver-side hash value generator 539, the receiver-side hash value generator also generates a hash value based on the (four) set. The hash value produced by the receiver side is then compared to the received hash value in the comparison circuit (4). Looking at the result of the implementation of the decision, it is possible to determine only whether the equivalent matches or further determines the amount of error due to the transfer handler. A data correction engine 537 may also be included in some embodiments to correct for interface errors without having to perform a data retransmission. In the exemplary embodiment, the hash value generators (and the optional material correction engine on the receiver side) are separated from the ECC for NAND core errors, although there may be some overlap in the circuit; In fact, both can be implemented on the same logic circuit of the controller but implemented by different firmware codes. (Although this discussion is considered separate 'but the two error detection/correction sections may be interactive in one of the more general embodiments described below.) Typically, it will be based on all of the information being sent ( User data, corresponding ECC, header information, etc.) produces a hash value 'but in alternative embodiments, may be based on, for example, only a portion of the stripping from each additional item and only the user used to generate the hash value The data itself produces a hash value. Figure 12 also includes a feedback processing unit 560 coupled to receive the output of the hash value comparison circuit 541. This feedback is then analyzed at 561, looking at one or more of the embodiment's consideration of temperature, supply voltage level, and processing related quality of the NAND core. At 563, the feedback process can then be used to adjust the transmission process and correspondingly to either or both of the transmission interface circuits 157533.doc • 34· 201225100 529 and the read interface circuit 531. For a write operation (where the controller is on the transmitter side), after the transfer is sent from the controller to the memory device at -^, the response can only be read back to the The comparison of the generated hash values, and the integrity of the write direction memory interface is determined by the operation. Based on this, the parameters can be written to the interface and the process can be reissued if desired. From the symmetry of the coffee shop, the same operation can be performed on the reading direction of the memory system side of the memory system. Figure 13 is a diagram showing an example of the transmission of data and the resulting hash values via the E-streaming interface. As shown in the item, the corresponding hash value is automatically appended to the data so that they will be transmitted together when the device is operating in this mode. In the second option shown at the bottom, the data payload is transmitted, the receiving side requests the corresponding hash value, and then the corresponding hash value is generated and transmitted. The data payload can have a predefined length or have a random length. If the data payload length is predefined, the hash value can be appended to the profile as in the first option or sent on request. If the data payload length is random, the hash value can be sent after issuing a specific command. For the technique and corresponding circuitry described with respect to Figure 12, a certain number of variations are possible with respect to the hash value engine and A hash value, which can be a parity code (cyclic redundancy check, or CRC), ECC, and the like. For example, § ' can use a "binary" embodiment that will pass back/fail. This embodiment can be built based on the error bit count (CRC) and has the benefit of implementing a low gate count. Alternatively, a "soft" embodiment may return an error bit count (EBC) and (as appropriate) the location of the fault bit, 157533.doc • 35· 201225100 and may be based on, for example, BCH or Solomon code. The ECC code is built to provide more information to help the system make the right decision. The hash value engine visual aspect also has one of the complementary features of the correction interface failure. For example, the second correction is from the flipped bit of the memory core, as represented by the data correction engine 537 of FIG. Based on the feedback from the transmission, (4) the transmission can be repeated. Can be based on binary transfer status or based on the software transfer status < Transfer retry. In addition, the retry can be sent based on a combination of the transfer status and the number of nand bit flips; for example, if the interface introduces N errors and the NAND introduces M errors, and the (4) error correction capability The system and Ρ>Ν+Μ, the system can decide not to retransmit. The system can also be configured in a variety of different ways. The configuration can be symmetrical, with the hash value engines at the controller side and the memory side being identical or asymmetrical. In the -asymmetric configuration, different configurations are used for different transmission directions; for example, a more reliable mechanism can be designed for write transmission for the read transfer setting - faster mechanism. Moreover, it should be noted that even though the interface is symmetrically configured 'because the settings can be changed during the interval between initial writing and subsequent reading of the material', it can act asymmetrically with respect to a given data set. The feedback processing unit 530 can be located differently on the controller 1 , on the memory 200, or both, or between the two. It can also be formed on a separate circuit. In many applications, implementing the feedback processing unit on the controller will be most practical, as the controller circuit often includes more advanced processing capabilities and also because the memory system is often formed from multiple memory chips, but here The technology provided is not so limited. In any of these variations - 157533.doc -36 - 201225100 "Check the data transfer status phase is the responsibility of the feedback processing unit. Further considering an instance in which the feedback processing unit is located on the controller side. In the read direction, after the controller reads the data and the hash value, the device will pass through the feedback mechanism and the controller will determine the pass. / Failed status and the interface settings can be adjusted (or not adjusted) accordingly. Since the controller has read the data and the hash value, the decision state no longer requires further information from the flash memory side, as this can be done in the logic of the controller. In the write direction, the data payload and the corresponding hash value are sent to the memory side and the controller can then operate in several different ways: reading the pass/fail state from the memory side; reading back the hash value and The pass/fail is judged, the error bit count (EBC) is read back from the memory; the EBC and the error position are read back from nand; or the pass/fail status and the corrected number of bits are read from the memory side. The feedback processing unit can decide to modify the interface settings. Phase t, you can modify the following interface settings · · drive strength, bus frequency or other timing parameters; interface relocation, interface mode (for example, from - normal / custom mode to a two-state thixotropic mode) and so on. Then, the adaptive back-to-back method can be used to modify the interface settings due to factors such as process variation, supply voltage level, and temperature affecting the interface error. These factors can also be included as feedback analysis on Figure 12. 561 input. The bus frequency and other parameter settings can be based on earlier transmissions, and the nominal parameter settings can also be set in different ways. For example, a lookup table (LUT) lookup table (LUT) with different values for different busbar capacitance/NAND configurations can also be used with different operational handlers 157533.doc •37-201225100 parameters, provisioning Different values of voltage level, temperature, etc. The processing parameters, supply voltage levels, and temperature can be a variable in a function (formula) rather than as predefined in a LUT. The optimization interface can be set up by operating the interface in the background. Special events such as supply voltage or temperature changes can also be used to trigger the interface setup training task. The interface training task can also use a header mode that spans but not writes to the nand core, such as set forth above with respect to Figure u and path 43. The interface «also can be different and based on the reading direction and the writing direction or based on different materials. The previous discussion primarily considers a memory system to have a controller and a single "hidden device circuit. More generally, the system can include a plurality of memory chips that can be connected to the controller (and the feedback processing unit, if a separate circuit) using a variety of bus topologies. For example, all memory chips can be used in a single system bus; or each memory circuit can have its own controller-memory bus; or various hybrid configurations can be used. Different interface settings can then be applied to the plurality of NAND devices (e.g., if several devices are interfaced, this can be done in parallel). Different interface settings can also be used based on the particular NAND device being accessed, since the interface quality can be a function of the load and/or cell/block quality of a particular NAND device. In addition, different interface settings can be applied to blocks within the NAND core within a given memory device, since the interface quality can be a function of the quality of a particular block. Further details of the techniques of the preceding sections can be found in U.S. Patent Application Serial No. 12/835,292, filed on Jan. 13, 2010. 157533.doc -38- 201225100 Dynamic Optimization of the Backend Memory System Interface This section will further consider the controller-memory (or "backend") interface of the memory system and present it for dynamic optimization. Some methods of reading and writing performance at the end of a high-speed memory system (including a memory system with multiple memory data busses). As discussed above, a memory system is typically designed to have a certain amount of fault tolerance; and although this error can occur in both the controller-memory transfer handler and the actual store handler on the memory 'but traditionally The ECC handler only considers the latter in these situations and typically the backend interface is optimized to eliminate or at least minimize the loss of transmission channel errors. However, in many cases, data errors (including read and write errors) generated by the material processing program can be much lower than the system's ECC capabilities. For example, while a large number of looping devices may require fully available data correction, an unused device may have relatively few errors, thereby providing additional error correction capabilities to the system. This section presents a method by which the memory system internally allocates the non-zero portion of the error correction capacity to the transmission channel. This allows the interface to operate at, for example, higher speeds or lower circuitry, even though this would result in a transmission path error. When the memory segmentation requires a higher error correction amount, the allocation is automatically adjusted. In the complementary aspect, the system can calibrate the transmission path to determine the amount of transmission error formed for different operational parameters and then select the parameters based on the allowed amount. The process considers the back-end interface between the controller and the memory portion. A typical memory system consists of a memory controller and a memory device (such as a NAND flash memory module). The back-end interface is the data bus between the memory and its control benefits. This interface is usually established in one of two ways: 157533.doc .39· 201225100. In the first mode, if the controller and the memory device are discrete components, the back-end interface is established by conductive traces on the printed circuit board (PCB) on which the components are mounted. In the second mode, the controller and the memory may be encapsulated in a single package, such as a system-in-package (SIP) or a multi-chip package (MCP). In this second case, the back end is established by the package substrate. interface. As discussed in the previous section, the overall bit error rate (BER) in a memory system can be attributed to two main factors: data retention reliability in memory devices (such as nand flash memory); Defects in the interface, which can cause transmission errors. An error correction code (E C C) can be used in the memory system to resolve the overall leg. Figure! 4 Schematic map illustrating the cause of a bit error in a memory system. As shown in Figure 14t, the overall bit error rate BER 605 is the primary source of the error. The effect of this error due to data degradation of the stored data (due to charge leakage, interference, etc.) and any errors introduced in the read and write processing program is shown as nand (10). Traditionally, Data correction is only used to account for this factor, which is observed when reading data. An error due to a channel defect is displayed at 603 and the error affects both data reading and writing, but will also be observed at the time of reading. Sources of channel impact errors can include intersymbol interference (isi), crosstalk in the same data bus (in busbar), crosstalk between busbars (for multi-data busbar design), printed circuit board (PCB) noise, and broken die Noise, package noise, and more. The other aspect - ECC 607 can correct errors up to a certain degree of error. 157533.doc •40- 201225100 The data transfer rate between the follower control Is and the § memory is increased, and the backend interface becomes 603 (such as the _ disturbance in the signal in the same data bus (memory data sink) Signal integrity related issues due to inter-row crosstalk and inter-symbol interference (ISI) are more sensitive. In addition, the memory topology (where the controller can access multiple memory devices at the same time (the introduction of multi-memory data bus design causes the back-end interface to suffer from crosstalk in the simultaneous switching of noise and data buss) (memory data bus Inter-crosstalk). In addition to bus speed, factors such as the voltage amplitude and temperature of the data bus (the ambient temperature of the PCB trace and the junction temperature of the system-in-package (SIP) or multi-chip package (MCP)) Affects the signal integrity of the back-end interface. Therefore, the inherent defect of the back-end interface becomes a bottleneck in determining the overall system performance of the Southspeed § Remembrance system. The pin capacitance of the memory device varies with the number of memory dies. The high-capacity memory device constructed with multiple memory dies exhibits high capacitance on its data input/output (I/O), which further degrades the edge rate and signal integrity of the data bus structure. Signal integrity related issues with signal traces can be minimized by increasing the separation of signal traces from each other to minimize crosstalk; however, this method is subject to PCB or substrate Use area limitation. This problem can also be reduced by selecting PCB materials with low dielectric constant and low dissipation factor (loss factor); however, these PCB materials are more expensive than typical materials. Therefore, although there is a reduction in busbars Speed or otherwise degrading the operation bus parameters to reduce some of the methods of this error' but these methods have drawbacks. This section presents these signal integrity issues in the backend interface and is also considered in control. One of the processing changes in the device and the memory device I57533.doc •41 · 201225100 Dynamic optimization technology. In addition to processing program changes, the voltage setting and temperature of the memory system operation can be changed. A static solution does not count And the process 'changes in voltage and temperature, and therefore may not be the best method. This is a pseudo-return method to dynamically optimize the memory system (including the one with multiple delta recall data buss) Memory system) post-end performance. These types of mechanisms similar to those described in previous chapters can be used or by using pre- The data pattern is used for this operation. The exemplary embodiment will use a pseudo-random bit pattern (PRBS). Dynamically optimized data bus settings can help maximize data transfer between the controller and the memory device. Reliability. This allows the memory system to distinguish between transmission errors and errors caused by memory devices. These aspects are especially beneficial for products equipped with a high-speed back-end memory interface and multiple memory data busses. The conductive traces on the substrate have a finite bandwidth, which causes intersymbol interference (ISI). The effect of ISI depends on the edge rate (rise time and fall time), data rate, and data type. In digital communications, sometimes used Pseudo-random bit pattern (PRBS) pattern to explore the worst case of a data link 1 SI influence 'is therefore a type rich in frequency components. A PRBS type line is a repeat pattern' which has a random The nature of the sequence and used to measure the jitter and eye mask of the data transmitted in the electronic data link. The PRBs are typically expressed as 2X-1 PRBS or PRBS_X, where the power (χ) indicates the length of the shift register used to form the pattern. Each 2X-1 PRBS contains every possible combination of X number of bits, except one. It is desirable to actually use the longest PRBS pattern' because it exerts maximum pressure on the signal link and provides a better random data representation 〇 157533.doc -42. 201225100 Although this exemplary embodiment uses a pseudo-random bit pattern, Other types can be used as long as the system knows the type of data set used so that it can be compared to the data returned at the end of the loopback handler. This exemplary embodiment uses the PRBS pattern because of its class-like nature to maximize the ISI impact of the signal link. In addition to the pRBS type, other types of data patterns can be utilized in the present invention, and each individual pattern can produce a different result. A PRBS pattern can be applied to each of the signal links in the parallel backend interface. Although it is ideally indefinitely repeated that the pattern is not practical in a memory system, this should not be an important disadvantage as long as the pattern can be repeated a sufficient number of times by using a short pattern. For example, if the page size of a NAND flash memory is 16 kB, then one of the 127b-type length pRBs_7 patterns can be completely repeated 129 times on each signal link of an 8-bit data bus. The remaining bits (16384b-127bxl29 = lb) constitute an incomplete copy of PRBS-7. This incomplete pRBS pattern should not ultimately make a meaningful thing, as most transmission link effects are factored out in 129 full PRB S-type cycles. Figure 15 can be used to illustrate the operation of a pseudo loopback method in the backend interface. In Fig. 15, the left hand side is a flow, and the right hand side is schematically illustrated to correspond to the controller-memory interaction. At 7 〇 1, the controller turns off its data agitation and error correction coding (ECC) capabilities, where on the right hand side, this is indicated by the "X" of these components. Therefore, all information transmitted to and from the controller is in its original format without any enrollment or correction. At 703, the controller sends a command to the memory device, 157533.doc •43·201225100 v. It will store the data to be received and keep it in its data latch register order without transmitting it to s Recall the body unit. That is, the data set is not programmed into the memory cell. At 705, the controller sends a known data pattern (here an independent p-type) to each of the k-links in the data bus structure to the memory device. The memory device holds the data in the data latch register until it is full. At 707, the controller sends a command to the memory device telling it to continuously send back the data stored in its data latch register until the controller instructs it to stop. That is, after the data latch register has dumped all 16 kb of data on each link, it will start transmitting again back to m. Therefore, the PRBS_7 pattern is repeated on each signal link of the data bus. The reason why the exemplary embodiment uses continuous operation of PRBs type transmission is that the bit error introduced by a signal link is a probabilistic event. The greater the amount of data transmitted across a link, the more accurate and representative the transmission bit error rate (BER) as one of the inherent link performance. At 709, the controller receives the repeating PRBS-7 pattern (or other data pattern used) on each of the signal links of the data bus. At 711, the controller compares the received data with the transmitted data type (here standard PRBS-7 type) and reports any errors as transmission BER. The controller then sends a command to stop the transmission of the PRBS_7 pattern (713) and exit the pseudo loopback mode (715) to the memory device. Figure 16 corresponds to block 705 of Figure 15 in which the controller sends the data pattern to the memory device 'where Figure 17 corresponds to block 7 〇 9. In this two figures, a specific example of a bus bar structure 811 is shown, with a number of command and control signal lines being displayed at the top 157533.doc -44 - 201225100 and a certain number of data lines being displayed at the bottom. Here, CLE = command latch enable, ALE = address latch enable, RE = read enable, WE = write enable, DQS = data strobe, and there are eight input/output lines (100-107). Such a block diagram is simplified for the purposes of this discussion, in which only one ECC block 805 and one PRBS generator 803 are shown on the memory controller 801 and only the data register REG 833 is presented on the memory device 831, Other components (including the non-volatile memory array on the 831) are shown on the unillustrated disc. In Fig. 16, when the controller 801 is transmitting a data pattern across the memory device 83 1 , the write enable signal and the data strobe will be asserted and each signal line will carry the data pattern. Here, each IO line carries a separate pattern. Here, these are all individual copies of the PRBS, but may have different timings as indicated by their relative skew in the figure. On the memory 831, the data pattern is then stored in the register 833 as received. In Figure 17, the data is then sent back from the scratchpad 833 across the busbar structure 811 to the controller 8〇1, and it is now determined that the read enable signal and the data strobe are completed... the data pattern completes the round trip ( Not written to the non-volatile memory) and returned to the controller 801, it can be inspected against its original form and see how much damage has occurred. Although the bus bar structure 81 has a parallel bus bar interface of one of a plurality of signal lines, this is only a special example, and other bus bar structures can be used for (4) transmission channels, such as data configuration. The performance of the memory system is characterized by the data transfer rate (bus operation frequency) relative to power consumption (power consumption is directly related to the data bus voltage). By transmitting the voltage amplitude of the data bus (by the drive data sink I57533.doc •45-201225100 W device: [/〇 judgment) and the data transfer rate change Shimutu handsome crane _ a three-dimensional representation, which transmits The rate axis plots the 'data bus bar' and the data transfer rate at the end of the transfer can refer to the write operation (as in Figure 5 of Figure 5, when the poor material is transferred from the controller circuit to the memory) The data transfer rate is added during the circuit or during the read operation (as in 7〇9, when transferring data from the memory to the controller). The data presented in this Shimut figure can be measured at various output drive impedances (drive strength) and temperature to cover the worst case: typical case, and best case scenario. As a result, for the ": allowable transmission error" can be determined in this data bus voltage, output drive impedance, slew rate, line capacitance, transfer rate, temperature and power consumption - given the combination of parameters Operating point. An example of a Shimut is shown in FIG. Figure 18 is an illustration of one example of a Shimut diagram of a data transfer bus voltage and a data transfer rate for a fixed output drive impedance, slew rate, line capacitance, and temperature for a particular instance of system memory. The data bus voltage is Vdd on the vertical axis, and the transfer rate is drawn horizontally. The amount of transmitted BER is represented by the color on the graph, with the answer on the right side of the graph. In this black and white representation, the representations of very low and very high error quantities appear to be the same, but in the main picture, the lower error area is to the left of the lightly divided area and the higher error area is to the right. Based on such information, a combination of operational parameters can be selected for the amount of data that is allowed to be transmitted, which, as usual, often involves a compromise. For example, if the expected allowable BER is 10·5, if the maximum speed is the primary consideration, then Vdd should be approximately 157533.doc • 46· 201225100 3.1-3.2 V, allowing approximately 170-1 to Mb/ One of the transfer rates. If power consumption is a more important consideration, a lower Vdd value can be used, such as 2·8 V, whereby approximately 15 〇 Mb/Si — the transmission rate will be allowed for approximately the same transmission ber. Word) How many times the memory has been cycled or the ecc indicates that the combined cause of the BER is approaching the maximum capacity of the system, then assign a different value to the BER rewrite assigned to the transmission channel, and then the controller can adjust the operation of the bus system based on this data. parameter. Thus, after calibrating the system by capturing data presented in the smut diagram at various output drive impedances, slew rates, line valleys, temperatures, etc., the memory system can operate according to various scenarios. For example, if a desired transmission BER is known, the memory system finds and selects the optimal data bus voltage, data transfer rate, output drive impedance, and slew rate. (This data from the calibration process can be stored in non-volatile memory or in memory space (RAM) in the controller circuit.) For example, it can choose to form the lowest expected transmission BER. Data bus voltage, final data transfer rate, and minimum output drive impedance. In another example, a specific combination of data bus voltage, data transfer rate, output drive impedance, slew rate, line capacitance, and temperature is known, and the memory system knows what it can expect to transmit BER » another selection system, memory The body system can choose to balance all factors—data bus voltage, data transfer rate, output drive strength, and one of the operating conditions of the transmitted BER. Since the design of the I/O buffer in the controller and the memory device can be different, the optimal reading performance and writing efficiency of the memory system can be determined separately. In addition to the differences made by the design of the memory system, the individual instances of the same package will vary due to process variations and operating conditions. The calibration process can also be repeated to account for aging of the device, changes in operating conditions, and the like. For example, an initial calibration can be performed at the time of testing prior to shipping the device, and then the controller can recalibrate the system periodically or in response to events such as device cycling, erroneous results, significant changes in operating conditions, and the like. Thus, in addition to changing the proportion of the total error assigned to the transmission channel, the corresponding operational parameters for a given allocation can be dynamically changed. As mentioned above, performance can be optimized during both the read process and the write process" back to Figure 15, for performance optimization during memory read, at 705, the system slows down The transfer rate of the data pattern being written to the data latch register of the memory device to maximize the integrity of the transfer of the data pattern. For example, at a 丨0 MHz transfer rate, filling the 16 kb data latch register will take U ms. At 7〇9 and 7Π, the system measures the transmission Ber incurred during the read operation, where the I/O system of the memory device is 'and the controller is the receiver. The Shimtu data then shows the relationship between the I/O voltage of the memory device and the read frequency. For performance optimization during memory writes, at 7〇5, the system changes the voltage and transfer rate of the data pattern being written to the data latch register of the δ memory device. At 709, the system will then slow down the transfer rate of data from the memory device to the controller to prevent additional bit errors from being injected by the signal link. The measured transmission BER is thus the BER incurred during the write operation in 705. Therefore, the Shimtu data will represent the relationship between the controller's I/O voltage and the write frequency. 157533.doc • 48· 201225100 The various aspects presented here are presented in the background of one of the single busbars between a controller circuit and a soap circuit. The '-memory system, the system can include multiple devices with various busbar topologies; and when there are multiple busbars, the interaction between such busbars can result in additional sources of error. The techniques herein can provide the ability to skew each of the signal links within one of the data busses in the backend interface to a particular resolution, for example, 1 〇〇 pS. This skewing capability can be introduced into the driver or receiver by the controller or S-resonance device. Introducing skew into the data bus allows the system to compensate for the mismatch in the length of the signal traces in the P C B or package substrate. Introducing skew can reduce the effects of near-end and far-end crosstalk in the back-end interface, and thus reduce the transmission BER. There are two types of crosstalk: crosstalk in the memory data bus; and crosstalk between the memory data bus. This _ disturbance causes jitter in the data bus. A typical memory system uses the clock transmitted by the driver to sample each individual signal in a parallel data bus. Therefore, an increase in the jitter of each signal in the data bus will result in an increase in the transmission BER. Crosstalk between memory data busses can be reduced by skewing data across multiple memory data busses so that they are not aligned with one another. Figure 19 is a block diagram illustrating one of the crosstalk in a memory system in which the bus bar structure uses a plurality of memory data sinks. The memory system includes a controller 901 and a plurality of (here four) memory devices 931-1 connected to the controller by individual bus bars 91-1, 911-2, 911-3, 911-4 , 931-2, 932-3, 934-4. For each of the bus bars 911, it will have one or more 10 lines ' as shown in detail from ιοί to IOX. As with the previous 157533.doc -49-201225100, these individual busbars can vary the number of 10 lines used to transmit data in parallel, in tandem, or in combination with one of them. Such a multi-bus arrangement is often implemented in an SSD-type device (see, for example, U.S. Patent No. 7,376,034, U.S. Patent No. 7,765,339, or issued to et al., entitled "Eight Performance Controller for NAND Flash-based Solid State Disk (NSSD) (Samsung, 2006 Non-Volatile Semiconductor Symposium, IEEE, NVSMW 2006, Volume 21, pages 17 to 20, February 12-16, 2006)) to improve performance, but can also be found in Some memory cards and other memory systems are designed. In addition to the crosstalk in this type of memory data bus between the 1 line of a given bus, there will now be crosstalk signals between the memory data bus rows on different bus bars. When combined with the use of the PRBS pattern and the pseudo loopback mode described above, a specific combination of data bus voltage, transmission rate, temperature, output drive impedance, slew rate, line capacitance, and power consumption is given. The least skew is generated and thus the best skew of the lowest transmission BER is produced. The various aspects presented herein provide a low cost solution to optimize back end interface performance in the presence of various signal integrity issues. By dynamically assigning "unused" ECC capabilities to the transfer handler, performance can be improved as explained. As mentioned above, some memory systems use a type of "strong" Ecc that explores the nature of a multi-state memory device, in which case the error correction capability transmitted for the transmission channel may not be transmitted as uti. . It should also be noted that although the memory system incorporates Ecc to compensate for data errors, there is usually no such requirement for commands, and memory devices will often not accept corrupted commands, and therefore compete in data transmission 157533.doc • 50·201225100: Error 'But the order will not be a mechanism such as the system can be used to wash the data iie ^, though, 'by this: allows a higher transfer rate for the asset, but can be incorporated into a comparison <Transfer rate (or other parameter) setting so as not to cause an error for the control k. The foregoing description of the present invention has been presented for purposes of illustration and description, and the embodiments of the invention And variations of the centroids (10) are selected to best explain the principles of the invention and its practical application, thereby enabling those skilled in the art to make various modifications in various embodiments and suitable for the particular use contemplated. The invention is best utilized, and the scope of the invention is intended to be defined by the scope of the appended claims. FIG. 1 is a schematic illustration of a main memory system suitable for implementing one of the present inventions. Hardware components. Figure 2 schematically illustrates a non-volatile memory cell. Figure 3 illustrates source-drainage of four different charges Q1 to Q4 that can be selectively stored at any one time for a floating gate. The relationship between the current iD and the control gate voltage VCG. Figure 4A schematically illustrates a memory cell sequence organized into a NAND string. Figure 4B illustrates the The NAND string 50 shown in Figure 4A constitutes one example of a NAND memory cell array 210. I57533.doc -51· 201225100 Figure 5 illustrates the parallel sensing or stylization of the organization as (for example) NAND configuration One memory cell page. Figures 6(0) through 6(2) illustrate an example of a stylized 4-state memory cell population. Figures 7A-7E illustrate encoding with a given 2-bit code. 4 Stylization and reading of state memory Figure 8 illustrates a memory managed by a memory manager that resides in one of the software components of the controller. Figure 9 illustrates the back end The software module of the system. Figure 10A(i) to Figure 10A(iii) schematically illustrate the mapping between a logical group and a metablock. Figure 10B schematically illustrates the logical group and the metablock. Figure 11 is a block diagram showing one of the feedback mechanisms for determining interface integrity based on an existing infrastructure. Figure 12 is a diagram illustrating the implementation of the feedback mechanism using a hash value engine to determine interface integrity. One of the block diagrams of the example. An illustration of one of the examples of the interface transfer data and the resulting hash value. Figure 14 is a schematic illustration of the cause of a bit error in a memory system. Figure 15 can be used to illustrate one of the back-end interfaces. Figure 16 and Figure 17 respectively correspond to blocks 7〇5 and 7〇9 of Figure 15. Figure 18 shows one of the transmission BER vs. data bus voltage and data transfer rate 157533.doc -52· 201225100 An example of a smut diagram. Figure 19 is a block diagram illustrating one of the crosstalks in a bus memory system using a plurality of memory data busses. [Main component symbol description] 10 Memory cell 14 source Pole 16 Pole 20 Charge Storage Unit 30 Control Gate 32 Control Gate 34 Source Line 36 Bit Line 42 Word Line 44 Select Line 50 NAND String 54 汲 Extreme 5 Source Terminal 60 Page 80 Host 90 Memory System 100 Controller 110 Interface 120 Processor 121 Optional Coprocessor 157533.doc -53- Read Only Memory Programmable Nonvolatile Memory Random Access Memory Memory Memory Array Sensing Bulk latch memory manager front-end system host interface back-end system media management layer data stream and sequencing layer command sequencer low-order sequencer flash control layer element block logic group bus line structure special integrated body Circuit Core Error Correction Code Circuit Output Buffer Transmission Circuit Input Buffer -54 - 201225100 427 Receive Circuit 431 Receive Circuit 433 Input Data Buffer 435 NAND Core 441 Transfer Circuit 443 Output Data Buffer 520 Transmitter Side 521 Write Data Buffer 525 scatter value generator 527 multiplexer 529 transmission interface circuit 530 receiver side 531 read interface circuit 533 multiplexer circuit 539 receiver side hash value generator 541 comparison circuit 550 bus bar structure 560 feedback processing unit 561 Feedback Analysis 801 Memory Controller 803 Pseudo Random Bit Pattern Generator 805 Error Correction Code 811 Bus Bar Structure 831 Memory Device 833 Register 157533.doc -55- 201225100 901 Controller 911-1 Bus 911-2 Busbar 913-1 Busbar 911-4 Busbar 931-1 Memory Device 931-2 Memory device 931-3 Memory device 931-4 Memory device ALE Address latch enable BL bit line CLE Command latch Enable DQS data strobe 10 Input/output LG Logical group Ml Memory M2 Memory MB Block Mn Memory RE Read Enable SI Select Transistor S2 Select Transistor WE Write Enable WL Word Line 157533.doc -56-

Claims (1)

201225100 七、申請專利範圍: 1,一種操作一非揮發性記憶體系統之方法,該非揮發性記 憶體系統包括具有一記憶體介面之一控制器電路、具有 一非揮發性記憶體胞陣列及一控制器介面之一記憶體電 路以及連接至4控制n電路之該記憶體介面及該記憶體 電路之該控制器介面以用於其之間的資料及命令之傳送 之-匯流排結構’其中該記憶體系統可容許來自當進行 '下操作時之帛—非零累積錯誤量:自該控制器傳送 資料以寫入至該§己憶體陣列,直至在隨後自該記憶體陣 列讀回之後在該控制器處接收到該資料為止該方法包 含: 藉由該控制器電路將該第一錯誤量之—第一非零部分 刀配…i由該匯流排結構在該控制器電路與該記憶體電 路之間的該資料之該傳送,該第一錯誤量之剩餘部分係 分配給在該記憶體電路上對該資料之寫人、儲存 取;及 記憶體電路之 該第一錯誤部 由該控制器電路將該控制器電路與 門的傳送特性設定為操作以允許最多 分。 2. 如請求項1之方法,i 士—站油 ^ ^ 其中該等傳送特性包括該匯流排結 構之電壓振幅。 3. 如請求項丨之方法,1 ^ ^ '、甲该等傳送特性包括該匯流排結 構上之資料傳送速率。 4. 如請求項1之古 ,其中該等傳送特性包括信號驅動強 157533.doc 201225100 度。 '項1之方法’其中該等傳送特性包括信號轉換速 率。 6. 如求項1之方法,其中該記憶體系統包括錯誤校正碼 (ECC)電路,且該第一錯誤量係基於該ECC電路之能 力。 7. 如請求項6之方法,其中該ECC電路係在該控制器電路 上。 8.如咕求項6之方法,該方法進一步包括: 在該控制器電路處自一主機接收該資料; 產生用於該資料之對應ECC碼; 根據該等傳送特性在該匯流排結構上將該資料及對應 馬自該控制器電路傳送至記憶體電路;及 /將在該。己憶體電路處所接收之該資料及對應 碼寫入至該記憶體胞陣列中。 9.如請求項〖之方法,其進一步包含: 隨後藉由該控制器電路將該第一錯誤量之一第二部分 =新刀配給紅由該匯流排結構在該控制器電路與該記憶 體電路之間的該資料之該傳送;及 藉由該控制器電路將該控制 衩制器電路與該記憶體電路之 間的該專傳送特性設定為 μ八 保忭以允許最多達該第二錯誤 部分。 10.如請求項9之方法, 電路所經歷之程式化 其中該控制器電 -抹除循環之數目 路回應於該記憶體 而將該錯誤部分自 157533.doc 201225100 該第一量重新分配為第二量。 11. 如請求項9之方法,其中該控制器電路回應於在自該記 憶體陣列所讀回之資料中偵測到的錯誤量而將該錯誤部 分自該第一量重新分配為該第二量。 12. 如請求項丨之方法,其令該記憶體系統維持該匯流排結 構之一或多個操作參數之值與'經由該匯流排結構在該控 制器電路與該記憶體電路之間的該資料之該傳送的所得 錯誤量之間的對應性,其中設定該等傳送特性包括: 藉由該控制器電路基於該對應性選擇該一或多個操作 參數之值。 、 月长項12之方法’其巾該等對應性係針對複數個操作 &gt;數’且選擇該複數個操作參數之值包括根據一或多個 ==則在允許最多達該第—錯誤部分的該複數個 參數之複數個組合之間進行挑選。 14. 15. 如請求項1 3之方法, 構之該電壓振幅及該 如請求項13之方法, 度。 '、中該等操作參數包括該匯流排結 匯流排結構上之該資料傳送速率。 其中該等操作參數包括信號驅動強 16.如請求項13之方 率 〇 法’其巾料操作參數包括 信號轉換速 17. 如請求項12之方法,其進—步包含· 之該等值之前,藉由 該控 在選擇該—或多個操作參數 制器電路建立該對應性。 18. 如請求項17之方法,复 、T建立該對應性包括: 157533.doc 201225100 針對該等操作參數之該等值中之每一者,經由該匯流 排結構將一已知資料型樣自該控制器電路傳送至該記憶 體電路並在不將該資料寫入至該非揮發性記憶體胞陣列 中之情形下將該資料傳送回去,且比較在該控制器電路 處所接收回的該資料與所發送之該資料型樣。 19. 如請求項17之方法,其中該記憶體系統包括多個記憶體 電路,且該匯流排結構包括對應多個匯流排,藉此該等 記憶體電路中之每一者個別地連接至該控制器電路,且 其中藉由該控制器電路建立該對應性包括判定匯流排間 串擾錯誤。 20. -種操作-非揮發性記憶體系统之方法,㈣揮發性記 憶體系統具有一控制器電路及句括_非播t l 刊命电峪汉巴祜非揮發性記憶體胞 陣列之一 §己憶體電路,該方法包含: 藉由該控制器電路藉由針對連接該控制器與該記憶體 電路之一匯流排結構的一或多個操作參數中之每一者之 複數個值中之每-者執行—處理程序來執行—傳輸錯誤 校準,該處理程序包括: 已知資料型樣之一 經由該控制器上之傳輸電路將— 資料集自該控制器傳送至該匯流排結構; 自該匯流排結構接 經由§亥s己憶體電路上之接收電路 收該資料集; 將所接收之該資料集儲存於 发°己憶體電路上之緩衝 憶體中; 經由該記憶體電路上之值鈐帝朴, 上之傳輸電路將儲存於該記憶體 157533.doc 201225100 路上之緩衝記憶體中而未被寫入至該陣列中之該資 集傳送至該匯流排結構 〆 收電路自該匯流排結構接收該 經由該控制器上之接 資料集; 執仃所接收之該資料集與該已知型樣之一比較;及 —基於該比較,針對該所使用之操作參數判 定與傳輸處理程序相關聯之錯誤量;及 隨後#作該記憶體系統以允許該控制器電路與該記 憶體電路之間的資料傳輸中之一第一非零錯誤量,其 中該控制器電路基於該所判定之相關聯錯誤量而根據 傳輸錯誤校準處理程序來選擇該等操作參數之值。 21_如請求項20之方法,其中該等操作參數包括該匯流排結 構之電壓振幅。 22. 如請求項20之方法’其中該等操作參數包括該匯流排結 構上之資料傳送速率。 23. 如請求項20之方法,其中該等操作參數包括信號驅動強 度0 24. 如請求項20之方法,其中該等操作參數包括信號轉換速 率。 25. 如請求項20之方法,其進一步包含: 隨後操作該記憶體系統以允許該控制器電路與該記憶 體電路之間的該資料傳輸中之一第二錯誤量,其中該控 制器電路基於該所判定之相關聯錯誤量而根據該傳輸錯 誤校準處理程序來選擇該等操作參數之值。 157533.doc 201225100 26. 如請求項20之方法,其進一步包含 隨後重新執行該傳輸錯誤校準處理程序。 27. 如清求項20之方法 ^ ’其中、_行該傳輸錯誤校準處理程 :::…憶體系統將該傳輸錯誤校準處理程… 果儲存於非揮發性記憶體中。 α 28. :=Γ方法,其中針對複數個操作參數執行該傳 輸錯純準’且該控制器電路根據—或多個職效能準 則在允許最多達該第—錯誤量的該複數個操作參數 數個組合之間進行挑選。 29.如請求項2G之方法,其中該記憶體系統包括多個記憶體 電路’且4匯流排結構包括對應多個匯流排,藉此該等 。己It體電路中之每—者個別地連接至該控制器電路,且 其中傳送一已知資料型樣之該資料集包括用於判定匯流 排間串擾錯誤之資料。 30. —種非揮發性記憶體系統,其包含: 一控制器電路,其包括一記憶體介面及邏輯電路; 一記憶體電路,其包括一非揮發性記憶體胞陣列、 控制器介面及邏輯電路; 一匯流排結構’其連接至該控制器電路之該記憶體介 面及該記憶體電路之該控制器介面,以用於其之間的資 料及命令之傳送;及 一回馈處理電路,其在該控制器與該記憶體電路之間 的一資料傳送期間連接至該控制器與該記憶體電路中之 接收者之該邏輯電路以接收關於因該傳送而發生之錯誤 157533.doc 201225100 量之資訊,且連接至該記憶體介面及該控制器介面中之 一者或兩者以回應於該錯誤量而調整其之間的該傳送之 特性。 3 1.如請求項30之非揮發性記憶體系統,其中該資料傳送係 自該控制器電路至該記憶體電路。 32.如請求項30之非揮發性記憶體系統,其中該資料傳送係 自遠§己憶體電路至該控制器電路。 33_如請求項30之非揮發性記憶體系統,其中該控制器及該 記憶體電路中之每一者之該邏輯電路包括一散列值產生 器, 其中在自該記憶體電路及該控制器中之第一者至其中 之第二者之傳送處理程序中,該第一者經由該匯流排結 構傳輸一資料集及藉由第一者之邏輯電路自該資料集所 產生之一第一散列值,且該第二者自該匯流排結構接收 該資料集及該第一散列值且藉由該第二者之邏輯電路自 該所接收之資料集產生來自該資料集之一第二散列值, 且 其中該記憶體電路及該控制器中之該第二者之該邏輯 電路進-步包括比較電路’該比較電路經連接以接收所 接收之該第一散列值及該第二散列值且執行其之一比 較’該錯誤量係基於該比較之結果。 34.如請求項33之非揮發性記憶體系統,其中在該記憶體電 路上與在該控制||上用於產生該等各別散列值之該等電 路係等效的。 157533.doc 201225100 35. 36. 37. 38. 39. 40. 41. 42. 43. 如請求項33之非揮發性記憶㈣統,其中在該記憶體電 路上與該控制器上用於產生該等各別散列值之該等電路 係不等效的。 其中該比較判定該 ’且回應於判定該 如請求項30之非揮發性記憶體系統, 第一散列值與該第二散列值是否相等 第一值與該第二值不相等 ’該記憶體電路及該控制器中 之該第二者之該邏輯電路進一步量化該錯誤量。 如請求項30之非揮發性記憶體系統,其中該回饋處理電 路係形成於與該控制器相同之積體電路上。 如請求項30之非揮發性記憶體系統,其中該回饋處理電 路係形成於與該記憶體電路相同之積體電路上。 如請求項30之非揮發性記憶體系統,其中該回饋處理電 路係形成於與該控制器及該記憶體電路兩者分離之一積 體電路上。 如請求項30之非揮發性記憶體系統,其中該記憶體電路 係由複數個積體電路形成,每一積體電路包括一非揮發 性記憶體胞陣列、一控制器介面及邏輯電路。 如請求項40之非揮發性記憶體系統,其中該記憶體電路 之每一積體電路藉由一不同匯流排連接至該控制器。 如請求項40之非揮發性記憶體系統,其中該記憶體電路 之積體電路中之一或多者藉由一共用匯流排連接至該控 制器。 如請求項40之非揮發性記憶體系統’其中該控制器與該 記憶體電路之該等積體電路中之複數者之間的傳送之特 157533.doc 201225100 性係可獨立調整的。 44· -種操作一非揮發性記憶體系統之方法,該非揮發性記 憶體系統包括一控制器電路及一非揮發性記憶體電路, 該方法包含: 在該控制器電路及該記憶體電路令之— 。 ^ ^ τ ^ 第一者上之邏 輯電路令自一資料集產生一第一散列值; 經由該控制器電路及該記憶體電路中之該第一者上之 一介面將該資料集及該第一散列值傳輸至^一匯流 構; ' 經由該控制器電路及該記憶體電路中之第二者上之一 介面自該匯流排結構接收該資料集及該第一散列值; 。在該控制器電路及該記憶體電路中之該第二者上之邏 輯電路中自所接收之該資料集產生-第二散列值; 在該控制器電路及該記憶體電路中之該第二者上比較 所接收之該第一散列值與該第二散列值;及 基於該控制器電路及該記憶體電路中之該第二者上之 該邏輯電路對所接收之該第—散列值與該第二散列值之 X比較判疋疋否更改該控制器電路與該記憶體電路之 間的該資料傳送之特性。 •如叫求項44之方法,其中該控制器電路及該記憶體電路 中之s亥第一者係該控制器電路。 46·如求項44之方法’其中該控制器電路及該記憶體電路 中之該第一者係該記憶體電路。 如》f求項44之方法’其中在該記憶體電路上與該控制器 157533.doc 201225100 上用於產生該等各別散列值之該等邏輯電路係等效的。 48. 如請求項44之方法,其中在該記憶體電路上與該控制器 上用於產生該等各別散列值之該等邏輯電路係不等效 的。 49. 如請求項44之方法,其中該控制器電路與該記憶體電路 之間的該資料傳送之該等特性包括傳送資料之一頻率。 50. 如請求項44之方法’其中該控制器電路與該記憶體電路 之間的該資料傳送之該等特性包括該匯流排結構之一時 脈頻率。 .如請求項44之方法,其中該控制器電路與該記憶體電路 之間的該資料傳送之該等特性包括在該傳送中所使用之 一轉換速率。 52.如請求項44之方法’其中該控制器電路與該記憶體電路 之間的該資料傳送之該等特性包括傳送資料之一介面電 53.如請求項44之方法,其中該控制器電路與該記憶體電路 之間的該資料傳送之該等特性包括傳送f料之—驅動強 度。 循環冗餘 錯誤校正 54.如請求項44之方法,其中該等散列值係基於— 檢查而建置。 55_如請求項44之方法,其中該等散列值係基於— 碼而建置。 器電路及該記憶 資料集及該第一 56.如請求項44之方法’其中在經由該控制 體電路中之該第一者上之該介面傳輸該 157533.doc •10· 201225100 散列值之前,將該資料傳送之料特性設定為基於該記 憶體系統之該匯流排結構及該記憶體電路之該等特性而 自一查找表判定之一初始值集。 57. 如請求項44之方法,其中在經由該控制器電路及該記憶 體電路中之該第-者上之該介面傳輸該資料集及該第一 散列值之前,將該資料傳送之該等特性設定為基於一或 多個參數而自一查找表判定之一初始值集。 58. 如請求項44之方法,其中在經由該控制器電路及該記憶 體電路中之該第-者上之該介面傳輸該資料集及該第一 散列值之刚,將該資料傳送之該等特性設定為自該控制 器電路與該記憶豸電路之間的一先前資料傳輸之品質而 判定之一初始值集。 59. 如請求項58之方法,其中該一或多個參數包括一供應電 壓位準。 60. 如請求項58之方法,其中該一或多個參數包括一溫度。 61·如請求項58之方法,其中該-或多個參數包括該控制器 電路及該記憶體電路中之一或兩者之處理值。 62. 如晴求項44之方法’該第一散列值之該產生及傳輸係回 應於來自該控制器電路及該記憶體電路中之-者之-請 求。 63. 如請求項44之方法,其進一步包含: 應於4判&amp; ’更改該控制器電路與該記憶體電路之 間的該資料傳送之該等特性,其中該更改係關於自該控 制器電路JL該記憶體電路之傳送及自該記憶體電路至該 157533.doc 201225100 控制器電路之傳送對稱地完成。 64. 如請求項44之方法,其進一步包含: 回應於該判定,更改該控制器電路與該記憶體電路之 間的該資料傳送之該等特性,其中該更改係關於自該控 制器電路至該記憶體電路之傳送及自該記憶體電路至該 控制器電路之傳送不對稱地完成。 65. —種操作一非揮發性記憶體系統之方法,該非揮發性記 憶體系統具有一控制器電路及包括一非揮發性記憶體胞 陣列之一 §己憶體電路,該方法包含: 經由該控制器上之傳輸電路將一資料集自該控制器上 之緩衝記憶體傳送至將該控制器連接至該記憶體電路之 一匯流排結構; 經由該記憶體電路上之接收電路自該匯流排結構接收 該資料集; 將所接收之該資料集儲存於該記憶體電路上之緩衝記 憶體中; 經由該記憶體電路上之傳輸電路將儲存於該記憶體電 路上之緩衝記憶體中而未被寫入至該陣列中之該資料集 傳送至該匯流排結構; 經由該控制器上之接收電路自該匯流排結構接收該資 料集; 隨後將所接收之該資料集儲存於該控制器上之緩衝記 憶體中; 隨後基於所接收的並儲存於該控制器上之該緩衝記憶 157533.doc ^ 201225100 體中之該資料集之錯誤量調整該控制器電路與該記憶體 電路之間的該資料傳送之特性。 66.如請求項65之方法,其中藉由該控制器上之ECC電路判 定該錯誤量。 157533.doc •13-201225100 VII. Patent Application Range: 1. A method for operating a non-volatile memory system, the non-volatile memory system comprising a controller circuit having a memory interface, having a non-volatile memory cell array and a a memory circuit of the controller interface and the memory interface connected to the 4 control n circuit and the controller interface of the memory circuit for the transfer of data and commands therebetween - a bus bar structure The memory system can tolerate the 帛-non-zero cumulative error amount when performing the 'down operation: transferring data from the controller to write to the § memory array until after reading back from the memory array The method of receiving, by the controller, the method includes: using the controller circuit, the first non-zero portion of the first error amount is configured by the bus bar structure in the controller circuit and the memory The transmission of the data between the circuits, the remainder of the first error amount is assigned to the writer, storage, and storage of the data on the memory circuit; The first error portion of the memory circuit is configured by the controller circuit to set the transfer characteristics of the controller circuit and the gate to operate to allow for maximum division. 2. The method of claim 1, i - station oil ^ ^ wherein the transmission characteristics include the voltage amplitude of the bus structure. 3. In the case of the request item, 1 ^ ^ ', A, the transmission characteristics include the data transfer rate on the bus structure. 4. As in the case of claim 1, the transmission characteristics include a signal driven strong 157533.doc 201225100 degrees. The method of item 1 wherein the transmission characteristics include a signal conversion rate. 6. The method of claim 1, wherein the memory system comprises an error correction code (ECC) circuit and the first error amount is based on the capabilities of the ECC circuit. 7. The method of claim 6, wherein the ECC circuit is on the controller circuit. 8. The method of claim 6, the method further comprising: receiving the data from a host at the controller circuit; generating a corresponding ECC code for the data; based on the transfer characteristics, the bus structure The data and corresponding horses are transferred from the controller circuit to the memory circuit; and/or will be there. The data and corresponding code received by the memory circuit are written into the memory cell array. 9. The method of claim 1, further comprising: subsequently, by the controller circuit, the second portion of the first error amount = the new knife is assigned to the red by the bus structure in the controller circuit and the memory The transmission of the data between the circuits; and the special transfer characteristic between the control controller circuit and the memory circuit by the controller circuit is set to μ 忭 to allow up to the second error section. 10. The method of claim 9, wherein the circuit is programmed to re-allocate the error portion from the 157533.doc 201225100 to the first number in response to the memory. Two quantities. 11. The method of claim 9, wherein the controller circuit reassigns the error portion from the first amount to the second in response to an error amount detected in the data read back from the memory array the amount. 12. The method of claim 1, wherein the memory system maintains a value of one or more operational parameters of the busbar structure and the 'between the controller circuit and the memory circuit via the busbar structure Correspondence between the resulting error amounts of the transmission of the data, wherein setting the transmission characteristics comprises: selecting, by the controller circuit, the value of the one or more operational parameters based on the correspondence. The method of month length item 12, whose correspondence is for a plurality of operations &gt; number ' and selecting the value of the plurality of operation parameters includes allowing up to the first error portion according to one or more == A selection is made between a plurality of combinations of the plurality of parameters. 14. 15. The method of claim 13 wherein the voltage amplitude and the method of claim 13 are used. The operational parameters in the ', include the data transfer rate on the busbar bus structure. Wherein the operational parameters include a signal driving strength. 16. The method of claim 13 wherein the towel operating parameter comprises a signal conversion speed. 17. The method of claim 12, wherein the step comprises the value of The correspondence is established by selecting the one or more operating parameter controller circuits by the control. 18. The method of claim 17, wherein the establishing the correspondence comprises: 157533.doc 201225100 for each of the values of the operational parameters, a known data pattern is self-contained via the bus structure The controller circuit transmits to the memory circuit and transmits the data back without writing the data into the non-volatile memory cell array, and compares the data received at the controller circuit with The type of material sent. 19. The method of claim 17, wherein the memory system comprises a plurality of memory circuits, and the bus bar structure comprises a plurality of bus bars, whereby each of the memory circuits is individually connected to the a controller circuit, and wherein establishing the correspondence by the controller circuit comprises determining a crosstalk error between the bus bars. 20. - Operation - Non-volatile memory system method, (4) Volatile memory system with a controller circuit and sentence _ non-broadcast TL 命 峪 峪 峪 峪 峪 之一 之一 § § § § The memory circuit, the method comprising: by the controller circuit by using a plurality of values for each of one or more operational parameters connecting the controller to one of the bus circuits of the memory circuit Each execution-processing program-executing-transmission error calibration, the processing program comprising: one of the known data patterns via the transmission circuit on the controller - the data set is transferred from the controller to the bus structure; The bus bar structure receives the data set via a receiving circuit on the circuit, and stores the received data set in a buffer memory on the memory circuit; via the memory circuit The value of 钤帝朴, the transmission circuit will be stored in the buffer memory of the memory 157533.doc 201225100 on the road and the collection not written to the array is transferred to the bus structure 〆 Receiving a circuit from the busbar structure to receive the data set via the controller; the data set received by the stub is compared with one of the known patterns; and - based on the comparison, the operating parameters for the use Determining an amount of error associated with the transfer handler; and subsequently #serving the memory system to allow a first non-zero error amount in data transfer between the controller circuit and the memory circuit, wherein the controller circuit The values of the operational parameters are selected in accordance with the transmission error calibration process based on the determined associated error amount. The method of claim 20, wherein the operational parameters comprise voltage amplitudes of the busbar structure. 22. The method of claim 20, wherein the operational parameters include a data transfer rate on the bus structure. 23. The method of claim 20, wherein the operational parameters include signal driving strengths. 0. 24. The method of claim 20, wherein the operational parameters comprise signal conversion rates. 25. The method of claim 20, further comprising: subsequently operating the memory system to allow a second error amount in the data transfer between the controller circuit and the memory circuit, wherein the controller circuit is based The determined error amount determined by the decision is based on the transmission error calibration process to select values of the operational parameters. 157533.doc 201225100 26. The method of claim 20, further comprising subsequently re-executing the transmission error calibration process. 27. If the method of claim 20 is ^', where _ line the transmission error calibration process :::... the memory system stores the transmission error calibration process... in non-volatile memory. An α 28. :=Γ method, wherein the transmission error is performed for a plurality of operational parameters and the controller circuit is capable of allowing the plurality of operational parameters up to the first-error amount according to a plurality of job performance criteria Pick between the combinations. 29. The method of claim 2, wherein the memory system comprises a plurality of memory circuits ' and the bus bar structure comprises a plurality of bus bars, whereby the same. Each of the circuits is connected to the controller circuit individually, and the data set in which a known data pattern is transmitted includes information for determining a crosstalk error between the bus lines. 30. A non-volatile memory system, comprising: a controller circuit including a memory interface and logic circuit; a memory circuit including a non-volatile memory cell array, a controller interface, and logic a bus structure </ RTI> connected to the memory interface of the controller circuit and the controller interface of the memory circuit for transmission of data and commands therebetween; and a feedback processing circuit Connecting to the controller and the receiver of the memory circuit during a data transfer between the controller and the memory circuit to receive an error regarding the transfer 157533.doc 201225100 Information, and connected to one or both of the memory interface and the controller interface to adjust the characteristics of the transfer between them in response to the amount of error. 3. The non-volatile memory system of claim 30, wherein the data transfer is from the controller circuit to the memory circuit. 32. The non-volatile memory system of claim 30, wherein the data transfer is from a remote circuit to the controller circuit. 33. The non-volatile memory system of claim 30, wherein the logic circuit of each of the controller and the memory circuit comprises a hash value generator, wherein the memory circuit and the control In the transmission processing program of the first one of the devices to the second one of the devices, the first one transmits a data set via the bus structure and the first one generated from the data set by the logic circuit of the first one a hash value, and the second one receives the data set and the first hash value from the bus structure and generates, by the logic circuit of the second one, the one of the data sets from the received data set a second hash value, and wherein the logic circuit of the memory circuit and the second one of the controllers further comprises a comparison circuit 'the comparison circuit is coupled to receive the received first hash value and the The second hash value and one of its comparisons is made 'this error amount is based on the result of the comparison. 34. The non-volatile memory system of claim 33, wherein the memory circuit is equivalent to the circuitry used to generate the respective hash values on the control ||. 157533.doc 201225100 35. 36. 37. 38. 39. 40. 41. 42. 43. The non-volatile memory (four) system of claim 33, wherein the memory circuit is used with the controller for generating the Such circuits, such as individual hash values, are not equivalent. Wherein the comparison determines the 'and in response to determining the non-volatile memory system as claimed in claim 30, whether the first hash value is equal to the second hash value, the first value is not equal to the second value' The logic circuit of the second circuit of the body circuit and the controller further quantizes the amount of error. The non-volatile memory system of claim 30, wherein the feedback processing circuit is formed on the same integrated circuit as the controller. The non-volatile memory system of claim 30, wherein the feedback processing circuit is formed on the same integrated circuit as the memory circuit. The non-volatile memory system of claim 30, wherein the feedback processing circuit is formed on an integrated circuit separate from both the controller and the memory circuit. The non-volatile memory system of claim 30, wherein the memory circuit is formed by a plurality of integrated circuits, each integrated circuit comprising a non-volatile memory cell array, a controller interface, and a logic circuit. The non-volatile memory system of claim 40, wherein each integrated circuit of the memory circuit is coupled to the controller by a different bus bar. A non-volatile memory system as claimed in claim 40, wherein one or more of the integrated circuits of the memory circuit are coupled to the controller by a common bus. The transmission of the non-volatile memory system of claim 40, wherein the controller and the plurality of integrated circuits of the memory circuit are 157533.doc 201225100, can be independently adjusted. 44. A method of operating a non-volatile memory system, the non-volatile memory system comprising a controller circuit and a non-volatile memory circuit, the method comprising: the controller circuit and the memory circuit - ^ ^ τ ^ the logic circuit on the first one causes a first hash value to be generated from a data set; the data set and the one via the controller circuit and one of the first ones in the memory circuit Transmitting, by the controller circuit and one of the second one of the memory circuits, the data set and the first hash value from the bus line structure; Generating a second hash value from the received data set in the logic circuit on the second of the controller circuit and the memory circuit; the first in the controller circuit and the memory circuit Comparing the received first hash value with the second hash value; and receiving the first based on the controller circuit and the logic circuit pair on the second one of the memory circuits Comparing the hash value with the X of the second hash value determines whether the characteristics of the data transfer between the controller circuit and the memory circuit are changed. The method of claim 44, wherein the controller circuit and the first one of the memory circuits are the controller circuit. 46. The method of claim 44 wherein the controller circuit and the first one of the memory circuits are the memory circuits. The method of claim 44 is equivalent to the logic circuitry on the memory circuit for generating the respective hash values on the controller 157533.doc 201225100. 48. The method of claim 44, wherein the logic circuits on the memory circuit are not equivalent to the logic circuits on the controller for generating the respective hash values. 49. The method of claim 44, wherein the characteristics of the data transfer between the controller circuit and the memory circuit comprise transmitting a frequency of the data. 50. The method of claim 44, wherein the characteristic of the data transfer between the controller circuit and the memory circuit comprises a clock frequency of the bus structure. The method of claim 44, wherein the characteristics of the data transfer between the controller circuit and the memory circuit comprise a slew rate used in the transfer. 52. The method of claim 44, wherein the characteristic of the data transfer between the controller circuit and the memory circuit comprises transmitting a data interface. The method of claim 44, wherein the controller circuit The characteristics of the data transfer with the memory circuit include the drive strength of the transfer material. Cyclic Redundancy Error Correction 54. The method of claim 44, wherein the hash values are based on an inspection. 55. The method of claim 44, wherein the hash values are based on a code. And the memory data set and the method of claim 44, wherein before the 157533.doc •10·201225100 hash value is transmitted via the interface on the first one of the control body circuits The material characteristics of the data transfer are set to determine one of the initial value sets from a lookup table based on the bus structure of the memory system and the characteristics of the memory circuit. 57. The method of claim 44, wherein the data is transmitted before the data set and the first hash value are transmitted via the controller circuit and the interface on the first one of the memory circuits The characteristics are set to determine one of the initial value sets from a lookup table based on one or more parameters. 58. The method of claim 44, wherein the data set is transmitted by transmitting the data set and the first hash value via the interface of the controller circuit and the first one of the memory circuits The characteristics are set to determine an initial set of values from the quality of a prior data transfer between the controller circuit and the memory port circuit. 59. The method of claim 58, wherein the one or more parameters comprise a supply voltage level. 60. The method of claim 58, wherein the one or more parameters comprise a temperature. 61. The method of claim 58, wherein the one or more parameters comprise processing values of one or both of the controller circuit and the memory circuit. 62. The method of claim 44, wherein the generating and transmitting of the first hash value is returned to the request from the controller circuit and the memory circuit. 63. The method of claim 44, further comprising: changing the characteristics of the data transfer between the controller circuit and the memory circuit at 4, wherein the change is related to the controller Circuit JL transfers the memory circuit and the transfer from the memory circuit to the 157533.doc 201225100 controller circuit symmetrically. 64. The method of claim 44, further comprising: responsive to the determining, changing the characteristics of the data transfer between the controller circuit and the memory circuit, wherein the change is from the controller circuit to The transfer of the memory circuit and the transfer from the memory circuit to the controller circuit are performed asymmetrically. 65. A method of operating a non-volatile memory system, the non-volatile memory system having a controller circuit and a circuit comprising a non-volatile memory cell array, the method comprising: The transmission circuit on the controller transmits a data set from the buffer memory on the controller to the bus bar structure connecting the controller to the memory circuit; the receiving circuit on the memory circuit is from the bus bar The structure receives the data set; stores the received data set in a buffer memory on the memory circuit; and stores the data stored in the memory circuit on the memory circuit through the transfer circuit on the memory circuit; The data set written to the array is transferred to the bus structure; the data set is received from the bus structure via a receiving circuit on the controller; and the received data set is then stored on the controller In the buffer memory; then based on the data set received and stored on the controller in the buffer memory 157533.doc ^ 201225100 Error characteristics of the transmission of the adjustment amount of data between the control circuit and the memory circuit. 66. The method of claim 65, wherein the error amount is determined by an ECC circuit on the controller. 157533.doc •13-
TW100124825A 2010-07-13 2011-07-13 Dynamic optimization of back-end memory system interface TWI482169B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/835,292 US8464135B2 (en) 2010-07-13 2010-07-13 Adaptive flash interface
US13/087,640 US9069688B2 (en) 2011-04-15 2011-04-15 Dynamic optimization of back-end memory system interface

Publications (2)

Publication Number Publication Date
TW201225100A true TW201225100A (en) 2012-06-16
TWI482169B TWI482169B (en) 2015-04-21

Family

ID=45469774

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100124825A TWI482169B (en) 2010-07-13 2011-07-13 Dynamic optimization of back-end memory system interface

Country Status (4)

Country Link
KR (1) KR101719395B1 (en)
CN (1) CN107093464A (en)
TW (1) TWI482169B (en)
WO (1) WO2012009318A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI498893B (en) * 2013-10-31 2015-09-01 Innostor Technology Corp MLC memory write method in multiple environments
US9811473B2 (en) 2014-04-22 2017-11-07 Nuvoton Technology Corporation Storage unit controller and control method thereof, and storage device
TWI644209B (en) * 2016-11-08 2018-12-11 美商美光科技公司 Memory management
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
TWI727960B (en) * 2015-07-21 2021-05-21 美商愛德斯托科技公司 Memory device having programmable impedance elements with a common conductor formed below bit lines
TWI737262B (en) * 2020-04-16 2021-08-21 晶豪科技股份有限公司 Method of controlling verification operations for error correction of non-volatile memory device, and non-volatile memory device
TWI754550B (en) * 2020-09-23 2022-02-01 日商鎧俠股份有限公司 Semiconductor memory device and memory system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9343165B2 (en) * 2012-12-31 2016-05-17 Sandisk Technologies Inc. Dynamic drive strength optimization
US10014070B2 (en) 2013-01-14 2018-07-03 Micron Technology, Inc. Data path integrity verification in memory devices
US9747048B2 (en) * 2014-06-02 2017-08-29 Micron Technology, Inc. Systems and methods for packing data in a scalable memory system protocol
CN117215824A (en) * 2017-09-28 2023-12-12 北京忆芯科技有限公司 Read data error handling based on machine learning
US11119700B2 (en) 2019-03-11 2021-09-14 Micron Technology, Inc. Receive-side crosstalk cancelation
US11217285B1 (en) 2020-08-05 2022-01-04 Apple Inc. Memory subsystem calibration using substitute results
KR20220019944A (en) * 2020-08-11 2022-02-18 삼성전자주식회사 Storage devices and methods of operating storage devices

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
KR0169267B1 (en) 1993-09-21 1999-02-01 사토 후미오 Nonvolatile semiconductor memory device
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
US6768165B1 (en) 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US6510488B2 (en) 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US7093172B2 (en) * 2002-08-07 2006-08-15 Broadcom Corporation System and method for determining on-chip bit error rate (BER) in a communication system
WO2004015740A2 (en) 2002-08-08 2004-02-19 M-Systems Flash Disk Pioneers Ltd. Integrated circuit for digital rights management
US8001325B2 (en) 2004-01-09 2011-08-16 Sandisk Corporation Memory card that supports file system interoperability
US7694202B2 (en) * 2004-01-28 2010-04-06 Micron Technology, Inc. Providing memory test patterns for DLL calibration
US20050213393A1 (en) 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate
US7310347B2 (en) 2004-03-14 2007-12-18 Sandisk, Il Ltd. States encoding in multi-bit flash cells
US7057939B2 (en) 2004-04-23 2006-06-06 Sandisk Corporation Non-volatile memory and control with improved partial page program capability
US7246274B2 (en) * 2004-09-10 2007-07-17 Rambus Inc. Method and apparatus for estimating random jitter (RJ) and deterministic jitter (DJ) from bit error rate (BER)
US7853837B2 (en) * 2004-09-10 2010-12-14 Rambus Inc. Memory controller and method for operating a memory controller having an integrated bit error rate circuit
US7493457B2 (en) 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US7426623B2 (en) 2005-01-14 2008-09-16 Sandisk Il Ltd System and method for configuring flash memory partitions as super-units
US8341371B2 (en) 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7913004B2 (en) 2005-09-06 2011-03-22 Sandisk Il Ltd Portable selective memory data exchange device
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US7644347B2 (en) * 2005-09-30 2010-01-05 Intel Corporation Silent data corruption mitigation using error correction code with embedded signaling fault detection
US20070086244A1 (en) 2005-10-17 2007-04-19 Msystems Ltd. Data restoration in case of page-programming failure
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US7624239B2 (en) 2005-11-14 2009-11-24 Sandisk Corporation Methods for the management of erase operations in non-volatile memories
US7376034B2 (en) 2005-12-15 2008-05-20 Stec, Inc. Parallel data storage system
US8020060B2 (en) 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
US7502254B2 (en) 2006-04-11 2009-03-10 Sandisk Il Ltd Method for generating soft bits in flash memories
US8330878B2 (en) 2006-05-08 2012-12-11 Sandisk Il Ltd. Remotely controllable media distribution device
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US7583545B2 (en) 2006-05-21 2009-09-01 Sandisk Il Ltd Method of storing data in a multi-bit-cell flash memory
US7711890B2 (en) 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US7765339B2 (en) 2006-10-27 2010-07-27 Stec, Inc. Distributed addressing in solid-state storage
US20080112255A1 (en) * 2006-11-15 2008-05-15 Aaron John Nygren Training of signal transfer channels between memory controller and memory device
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US20080155175A1 (en) 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US8046522B2 (en) 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US8166267B2 (en) 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US7660166B2 (en) 2007-01-31 2010-02-09 Sandisk Il Ltd. Method of improving programming precision in flash memory
US7904793B2 (en) 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7975209B2 (en) 2007-03-31 2011-07-05 Sandisk Technologies Inc. Non-volatile memory with guided simulated annealing error correction control
US7966550B2 (en) 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
CN101162449B (en) * 2007-10-08 2010-06-02 福州瑞芯微电子有限公司 NAND FLASH controller and data interactive method with NAND FLASH chip
US8392779B2 (en) * 2008-04-25 2013-03-05 Qimonda Ag Interface voltage adjustment based on error detection
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US20100005219A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI498893B (en) * 2013-10-31 2015-09-01 Innostor Technology Corp MLC memory write method in multiple environments
US9811473B2 (en) 2014-04-22 2017-11-07 Nuvoton Technology Corporation Storage unit controller and control method thereof, and storage device
TWI727960B (en) * 2015-07-21 2021-05-21 美商愛德斯托科技公司 Memory device having programmable impedance elements with a common conductor formed below bit lines
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10956290B2 (en) 2016-11-08 2021-03-23 Micron Technology, Inc. Memory management
TWI644209B (en) * 2016-11-08 2018-12-11 美商美光科技公司 Memory management
US11209986B2 (en) 2016-11-08 2021-12-28 Micron Technology, Inc. Memory operations on data
US11550678B2 (en) 2016-11-08 2023-01-10 Micron Technology, Inc. Memory management
US11886710B2 (en) 2016-11-08 2024-01-30 Micron Technology, Inc. Memory operations on data
TWI737262B (en) * 2020-04-16 2021-08-21 晶豪科技股份有限公司 Method of controlling verification operations for error correction of non-volatile memory device, and non-volatile memory device
TWI754550B (en) * 2020-09-23 2022-02-01 日商鎧俠股份有限公司 Semiconductor memory device and memory system
TWI845881B (en) * 2020-09-23 2024-06-21 日商鎧俠股份有限公司 Memory system

Also Published As

Publication number Publication date
CN107093464A (en) 2017-08-25
WO2012009318A1 (en) 2012-01-19
KR101719395B1 (en) 2017-03-23
TWI482169B (en) 2015-04-21
KR20130139848A (en) 2013-12-23
CN103098029A (en) 2013-05-08

Similar Documents

Publication Publication Date Title
US9069688B2 (en) Dynamic optimization of back-end memory system interface
TW201225100A (en) Dynamic optimization of back-end memory system interface
US9384128B2 (en) Multi-level redundancy code for non-volatile memory controller
US10169143B2 (en) Preferred state encoding in non-volatile memories
US8464135B2 (en) Adaptive flash interface
US8027195B2 (en) Folding data stored in binary format into multi-state format within non-volatile memory devices
KR101312146B1 (en) Programming management data for nand memories
US7409473B2 (en) Off-chip data relocation
KR100663738B1 (en) Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
TWI470641B (en) Methods and apparatus for interfacing between a flash memory controller and a flash memory array
US20010000023A1 (en) Semiconductor integrated circuit and data processing system
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
US20200402582A1 (en) Non-volatile storage system with fast slc operation
JP2015043253A (en) M+n bit programming and m+l bit read for m bit memory cell
CN103827971A (en) Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
CN112542201B (en) Memory device and method of operating the same
US11062756B2 (en) Extending operating temperature of storage device
US9312013B1 (en) Configuration method of erase operation, memory controlling circuit unit and memory storage device
US9972390B2 (en) Two pass memory programming method, memory control circuit unit and memory storage apparatus
US10984876B2 (en) Temperature based programming in memory
CN115827305A (en) Vertical compression scheme for compressed soft bit data in non-volatile memory having a set of data latches
CN115827306A (en) Just-in-time multiplexing scheme for compressed soft bit data in non-volatile memory
US20180136841A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN112562772B (en) Adaptive low density parity check hard decoder
CN108091364B (en) Data writing method, memory control circuit unit and memory storage device

Legal Events

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