TWI500040B - Flash memory controller - Google Patents
Flash memory controller Download PDFInfo
- Publication number
- TWI500040B TWI500040B TW097137662A TW97137662A TWI500040B TW I500040 B TWI500040 B TW I500040B TW 097137662 A TW097137662 A TW 097137662A TW 97137662 A TW97137662 A TW 97137662A TW I500040 B TWI500040 B TW I500040B
- Authority
- TW
- Taiwan
- Prior art keywords
- period
- memory devices
- timing
- implementations
- read
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明一般係關於記憶體裝置。The present invention generally relates to memory devices.
許多電子裝置都包含嵌入式系統,其具備中央處理器單元(CPU,“central processor unit”)來控制該等裝置的運作來提供大幅增強的功能性與操作彈性。一般而言,包含非揮發性記憶體成為該嵌入式系統的一部分,來儲存用於操作該嵌入式系統的作業系統程式碼和資料。近來,嵌入式系統已經使用快閃記憶體當成非揮發性記憶體。快閃記憶體具備可重新程式編輯,同時提供資訊非揮發性儲存之優點。Many electronic devices include embedded systems that have a central processor unit (CPU) to control the operation of such devices to provide greatly enhanced functionality and operational flexibility. In general, non-volatile memory is included as part of the embedded system to store operating system code and data for operating the embedded system. Recently, embedded systems have used flash memory as non-volatile memory. Flash memory is reprogrammable and offers the benefits of non-volatile storage.
本發明提供一種於一或多個快閃記憶體裝置之間實施輪詢處理之方法、系統及電腦程式產品。在某些實施當中,該輪詢處理可包含將一讀取狀態指令傳送至一快閃記憶體裝置,來偵測該快閃記憶體裝置的讀取或忙碌狀態。該快閃記憶體裝置內可包含一狀態暫存器,用於儲存指出一寫入(或抹除)操作執行狀態的狀態信號。一固態磁碟機系統可藉由讀取該快閃記憶體裝置的快閃暫存器來執行該輪詢處理。The present invention provides a method, system and computer program product for performing polling processing between one or more flash memory devices. In some implementations, the polling process can include transmitting a read status command to a flash memory device to detect a read or busy state of the flash memory device. The flash memory device can include a status register for storing a status signal indicating a write (or erase) operation execution state. A solid state disk drive system can perform the polling process by reading a flash register of the flash memory device.
在某些實施當中,說明一種方法,其包含主張一控制信號至一或多裝置;決定認定該控制信號之後一初始等待時間;根據該初始等待時間發出一第一指令;決定與該第一指令相關聯的一第一間隔時間和一第二指令;以及根據該第一間隔時間發出該第二指令。In some implementations, a method is described that includes asserting a control signal to one or more devices; determining an initial wait time after the control signal is asserted; issuing a first command based on the initial wait time; deciding with the first instruction Associated with a first interval time and a second instruction; and issuing the second instruction according to the first interval time.
在某些實施當中,說明一種方法,其包含控制複數 個記憶體裝置,該裝置包含一第一組記憶體裝置和一第二組記憶體裝置;決定與該第一組記憶體裝置相關聯的一第一週期;根據該第一週期發出一第一指令至該第一組記憶體裝置;決定與該第二組記憶體裝置相關聯的一第二週期;以及根據該第二週期發出一第二指令至該第二組記憶體裝置。In some implementations, a method is described that includes controlling a complex number a memory device, the device comprising a first set of memory devices and a second set of memory devices; determining a first period associated with the first set of memory devices; issuing a first according to the first period Commanding to the first set of memory devices; determining a second period associated with the second set of memory devices; and issuing a second command to the second set of memory devices in accordance with the second period.
在某些實施當中,說明一種裝置,其包含一第一可程式編輯計時器,用於指定與發出一或多指令到至少一裝置相關聯之一初始等待時間;以及一第二可程式編輯計時器,用於指定一間隔時間來控制每一已發出指令之間的一週期。In some implementations, an apparatus is illustrated that includes a first programmable edit timer for specifying an initial wait time associated with issuing one or more instructions to at least one device; and a second programmable edit timing For specifying an interval to control a period between each issued instruction.
在某些實施當中,說明一種裝置,其包含一匯流排,用於接收一或多至一或多記憶體裝置的指令,並且用於根據該發出的指令控制該一或多記憶體裝置;以及一記憶體控制器,用於執行資料輪詢,同時利用該一或多記憶體裝置處理該發出的指令。In some implementations, an apparatus is illustrated that includes a bus bar for receiving instructions of one or more memory devices and for controlling the one or more memory devices in accordance with the issued instructions; A memory controller for performing data polling while processing the issued command with the one or more memory devices.
以下在附圖及說明中提出本發明之一或多個具體實施例之細節。從說明與圖式以及申請專利範圍中將明白本發明之其他特徵、目的與優點。The details of one or more specific embodiments of the invention are set forth in the drawings and description. Other features, objects, and advantages of the invention will be apparent from the description and drawings.
像是快閃可電抹除可程式唯讀記憶體(EEPROM,“electrically erasable programmable read only memory”)這類記憶體裝置的使用已經更加廣泛,例如:跳躍磁碟機、記憶卡和其他非揮發性記憶體設備在相機、電視遊樂器、電腦和其他電子裝置內非常普遍。第一圖顯示一記憶體陣列100的方塊圖。Memory devices such as "EEPROM" (electrically erasable programmable read only memory) have become more widely used, such as: jump drives, memory cards, and other non-volatile devices. Sex memory devices are very common in cameras, video games, computers, and other electronic devices. The first figure shows a block diagram of a memory array 100.
如第一圖所示,一記憶體陣列100可用位元來組 織。例如:記憶體陣列100可包含8位元深度108。記憶體陣列100也可用位元組來組織。例如:記憶體陣列100可包含內含2k位元組的部分104和內含64位元組的部分106。記憶體陣列100可進一步組織成分頁。例如:記憶體陣列100可包含512k分頁102。一單一分頁112可組織成兩個部分:一第一部分114(例如代表2k位元組的部分104)和一第二部分116(例如代表64位元的部分106)。第二部分116一般對應至一個八位元寬的資料輸入/輸出(I/O)路徑(例如I/O[0]至I/O[7])。甚至進一步,記憶體陣列100可排列在單節內。例如:記憶體陣列100可包含一單節110,其等於64個分頁。在這之中,使用該等前述位元、位元組、分頁和單節可形成8Mb記憶體裝置。As shown in the first figure, a memory array 100 can be grouped with bits. Weaving. For example, the memory array 100 can include an 8-bit depth 108. The memory array 100 can also be organized with a byte. For example, the memory array 100 can include a portion 104 containing 2k bytes and a portion 106 containing 64 bytes. The memory array 100 can further organize the page of ingredients. For example, the memory array 100 can include 512k pages 102. A single page 112 can be organized into two parts: a first portion 114 (e.g., portion 104 representing a 2k byte) and a second portion 116 (e.g., a portion 106 representing a 64 bit). The second portion 116 generally corresponds to an octet wide data input/output (I/O) path (eg, I/O [0] to I/O [7]). Even further, the memory array 100 can be arranged in a single block. For example, the memory array 100 can include a single block 110 that is equal to 64 pages. Among these, 8Mb memory devices can be formed using the aforementioned bits, bytes, pages, and blocks.
第一圖顯示的記憶體陣列可配置成一快閃記憶體。在某些實施當中,該快閃記憶體可為一「NAND」型快閃記憶體。NAND快閃記憶體一般具有較快的抹除與寫入時間、較高密度、每位元較低的成本以及比NOR型快閃記憶體更耐用。NAND快閃記憶體可與一NAND快閃I/O介面耦合。不過,該NAND快閃I/O介面通常只允許依序存取資料。當然,第一圖顯示的記憶體陣列也可為NOR快閃EEPROM、AND快閃EEPROM、DiNOR快閃EEPROM、序列快閃EEPROM、DRAM、SRAM、ROM、EPROM、FRAM、MRAM或PCRAM任一的形式。The memory array shown in the first figure can be configured as a flash memory. In some implementations, the flash memory can be a "NAND" type flash memory. NAND flash memory typically has faster erase and write times, higher density, lower cost per bit, and is more durable than NOR-type flash memory. The NAND flash memory can be coupled to a NAND flash I/O interface. However, the NAND flash I/O interface typically only allows sequential access to data. Of course, the memory array shown in the first figure can also be in the form of NOR flash EEPROM, AND flash EEPROM, DiNOR flash EEPROM, serial flash EEPROM, DRAM, SRAM, ROM, EPROM, FRAM, MRAM or PCRAM. .
一NAND快閃I/O介面可包含多個接腳,每一都對應至一特殊功能。表1內顯示一範例介面。A NAND flash I/O interface can include multiple pins, each corresponding to a particular function. An example interface is shown in Table 1.
如上面表1所示,許多接腳功能可對應至介面內指定的接腳。As shown in Table 1 above, many of the pin functions correspond to the pins specified in the interface.
資料讀取操作的範例時序圖Sample timing diagram for data read operations
第二A圖顯示在資料讀取操作期間與一NAND快閃介面內每一接腳相關聯之範例時序圖。請參閱第二A圖,區域202表示一或多個指令已經傳送至一快閃記憶體裝置的週期,而區域204則表示資料已經傳輸至/來自該快閃記憶體裝置的週期。如所示,寫入啟用信號「WE_」可具備脈衝(例如週期25ns),允許行位址(例如RA1、RA2和RA3)以及列位址(例如CA1和CA2)資訊鎖定在該NAND快閃記憶體裝置內。資料進/出I/O[7:0]接腳上出現的指令「00h」指出一讀取位址輸入,同時指令「3 Oh」指出一讀取開始。Figure 2A shows an example timing diagram associated with each pin within a NAND flash interface during a data read operation. Referring to Figure 2A, area 202 indicates the period in which one or more instructions have been transferred to a flash memory device, and area 204 indicates the period during which data has been transferred to/from the flash memory device. As shown, the write enable signal "WE_" can have a pulse (eg, 25ns period), allowing row address (eg, RA1, RA2, and RA3) and column address (eg, CA1 and CA2) information to be locked in the NAND flash memory. Inside the body device. The command "00h" appearing on the data I/O[7:0] pin indicates a read address input, and the command "3 Oh" indicates a read start.
在此也可使用其他指令。例如:其他記憶體指令可包含但不受限於讀取操作、寫入操作、抹除操作、讀取狀態操作、讀取ID操作、寫入組態暫存操作、寫入位址操作以及重置操作。例如:指令「05h」可表示一隨機資料讀取指令、指令「10h」表示一分頁程式指令、指令「20h」表示一晶片抹除指令、指令「21h」表示一區段抹除指令、指令「30h」表示一讀取開始指令、指令「35h」表示一分頁讀取複製指令、指令「39h」表示一寫入裝置位址指令、指令「60h」表示一單節抹除指令、指令「70h」表示一讀取狀態指令、指令「80h」表示一序列資料輸入(寫入器至緩衝器)指令、指令「85h」表示一隨機資料輸入指令、指令「8Fh」表示一目標位址輸入複製指令、指令「90h」表示一讀取裝置類型指令、指令「A0h」表示一寫入組態暫存指令、指令「C0h」表示一程式編輯/抹除中止指令、指令「D0h」表示一程式編輯/抹除指令並且「FFh」表示重置指令,這只是一些範例。Other instructions can also be used here. For example, other memory instructions may include, but are not limited to, read operations, write operations, erase operations, read status operations, read ID operations, write configuration scratch operations, write address operations, and Set the operation. For example, the command "05h" can indicate a random data read command, the command "10h" indicates a page program command, the command "20h" indicates a wafer erase command, the command "21h" indicates a segment erase command, and the command " 30h" indicates a read start command, the command "35h" indicates a page read copy command, the command "39h" indicates a write device address command, the command "60h" indicates a single block erase command, and the command "70h". Indicates a read status instruction, instruction "80h" indicates a sequence data input (writer to buffer) instruction, instruction "85h" indicates a random data input instruction, and instruction "8Fh" indicates a target address input copy instruction. The instruction "90h" indicates a reading device type command, the command "A0h" indicates a write configuration temporary storage command, the command "C0h" indicates a program editing/erasing abort command, and the command "D0h" indicates a program editing/wiping. Except for the instruction and "FFh" means the reset instruction, this is just some examples.
底下表2顯示該資料進/出接腳(例如I/O[7:0])上行和列位址多工範例。Table 2 below shows an example of the upstream and column address multiplexing for this data entry/exit pin (eg I/O[7:0]).
在某些實施當中,較高位址位元可用於定址較大記憶體配置(例如A30用於2Gb、A31用於4Gb、A32用於8Gb、A33用於16Gb、A34用於32Gb、A35用於64Gb等等)。In some implementations, higher address bits can be used to address larger memory configurations (eg, A30 for 2Gb, A31 for 4Gb, A32 for 8Gb, A33 for 16Gb, A34 for 32Gb, A35 for 64Gb) and many more).
另一方面,在讀取啟用信號「RE_」脈衝之下,可從該NAND快閃記憶體裝置中讀取像是Dout N、Dout N+1、Dout N+2、...Dout M的資料。一特定邏輯狀態內的備妥/忙碌輸出信號「R/B_」可指示該輸出是否忙碌。例如:一低邏輯狀態內的備妥/忙碌輸出信號「R/B_」可指示該輸出上的忙碌狀態。在此範例中,備妥/忙碌輸出信號「R/B_」可在寫入啟用信號「WE_」的最後上升邊緣之後某些時間週期內成為邏輯高狀態(即是變成指示一備妥狀態的邏輯高狀態)。On the other hand, under the read enable signal "RE_" pulse, images such as D out N, D out N+1, D out N+2, ... D can be read from the NAND flash memory device. Out M's information. The ready/busy output signal "R/B_" within a particular logic state indicates whether the output is busy. For example, a ready/busy output signal "R/B_" in a low logic state can indicate a busy state on the output. In this example, the ready/busy output signal "R/B_" can be in a logic high state (ie, becomes a logic indicating a ready state) after some time period after the last rising edge of the write enable signal "WE_". High state).
如所示,指出讓一資料從一單元傳輸至一內部分頁緩衝區的資料傳輸時間之「tR」週期可橫跨從讀取開始指令「30h」至備妥/忙碌輸出信號「R/B」的上升邊緣,並且指出讀取資料的讀取時間。在某些實施當中,「tR」週期可決定用於READ操作的固態磁碟機系統(例如第三圖所示的固態磁碟機系統300)之效能。在某些實施當中,一長「tR」週期表示在該控制器可取得READ資料之前對於一固態控制器(例如固態控制器308)有更長的等待時間。As shown, the "tR" period of the data transmission time for transferring a data from one unit to an internal partial page buffer can range from the read start command "30h" to the ready/busy output signal "R/B". The rising edge and indicate the read time of the read data. In some implementations, the "tR" period may determine the performance of a solid state drive system (such as the solid state drive system 300 shown in FIG. 3) for READ operations. In some implementations, a long "tR" period indicates that there is a longer wait time for a solid state controller (e.g., solid state controller 308) before the controller can obtain the READ data.
在資料備妥之前,該NAND快閃I/O介面會閒置並且消耗不必要的頻寬。如此,吾人想要恆定將該NAND快閃I/O介面維持在一忙碌狀態來達成頻寬。例如:若 該NAND快閃I/O介面以tRC=25ns來運行,則一可達到頻寬的上限可為40MB/S(例如根據8位元資料匯流排所使用的消耗量,並且該NAND快閃記憶體具備無限制的頻寬,如此資料可持續從該NAND快閃記憶體傳送至該固態控制器)。不過,在讀取資料返回固態磁碟機之前,此目的可能難以達成已知的「tR」週期來從一NAND快閃記憶體內一記憶體單元讀取一分頁至一內部緩衝區。The NAND flash I/O interface is idle and consumes unnecessary bandwidth before the data is ready. As such, we want to maintain the NAND flash I/O interface in a busy state to achieve bandwidth. For example: if The NAND flash I/O interface operates at tRC=25 ns, and the upper limit of the reachable bandwidth can be 40 MB/s (for example, according to the consumption of the 8-bit data bus, and the NAND flash memory) With unlimited bandwidth, such data can be transferred from the NAND flash memory to the solid state controller). However, prior to reading the data back to the solid state drive, this purpose may be difficult to achieve a known "tR" cycle to read a page from a memory cell in a NAND flash memory to an internal buffer.
如此,在某些實施當中,一單一通道內附帶多個裝置(例如多個晶片啟動信號)而分享一相同NAND快閃I/O介面,如此盡可能涵蓋該「tR」時間同時允許相同通道的至少一個裝置獲得資料。Thus, in some implementations, multiple devices (eg, multiple wafer enable signals) are included in a single channel to share an identical NAND flash I/O interface, thus covering the "tR" time as much as possible while allowing the same channel. At least one device obtains the data.
在某些實施當中,該資料傳輸時間在一單層單元(SLC,“single level cell”)裝置上大約25μs的範圍內,或在一多層單元(MLC,“multi-level cell”)裝置上大約60μs的範圍內,底下會有更詳細討論。在該「tR」週期期間,備妥/忙碌輸出信號「R/B_」可認定為一邏輯「0」,指出該快閃記憶體位於一忙碌狀態,在此間資料無法寫入或抹除。In some implementations, the data transmission time is in the range of about 25 [mu]s on a single layer unit (SLC, "single level cell") device, or on a multi-level cell (MLC) device. A range of approximately 60 μs will be discussed in more detail below. During the "tR" period, the ready/busy output signal "R/B_" can be regarded as a logic "0", indicating that the flash memory is in a busy state, during which data cannot be written or erased.
單層單元和多層單元裝置簡介Introduction to single-layer units and multi-level unit
一記憶體裝置內的每一單元都可程式編輯成每單元一單一位元(即是單層單元--SLC)或每單元多位元(即是多層單元--MLC)。每一單元的臨界電壓一般決定儲存在該單元內的資料類型,例如:在一SLC記憶體裝置內,0.5V的臨界電壓指出一已程式編輯的單元(即是邏輯「0」狀態),而-0.5V的臨界電壓則指出一已抹除的 單元(即是邏輯「1」狀態)。Each unit in a memory device can be programmed to be a single bit per cell (ie, a single layer cell - SLC) or a multi-bit per cell (ie, a multi-level cell - MLC). The threshold voltage of each cell generally determines the type of data stored in the cell. For example, in an SLC memory device, a threshold voltage of 0.5V indicates a programmed cell (ie, a logic "0" state). -0.5V threshold voltage indicates an erased Unit (that is, a logical "1" state).
隨著電子系統的效能與複雜程度增加,一系統內額外記憶體的需求也增加。不過,為了繼續降低該系統成本,該等相關部件一般必須維持最小。在一記憶體應用當中,這可由利用增加一積體電路的記憶體密度來達成。尤其是,藉由使用MLC記憶體裝置可增加記憶體密度。MLC記憶體裝置可增加一積體電路內儲存的資料量,而不需要增加額外的單元和/或增加該晶粒大小。MLC記憶體裝置在每一記憶體單元內可儲存二或更多個資料位元,不過MLC記憶體裝置需要緊密控制該臨界電壓,以便每一單元使用多重臨界位階。非揮發性記憶體單元的一項問題為其間隔緊密,MLC尤為甚,屬於浮動閘至浮動閘耦合會導致單元之間干擾。此干擾會在一個單元程式編輯時移動相鄰單元的臨界電壓。As the effectiveness and complexity of electronic systems increase, so does the need for additional memory within a system. However, in order to continue to reduce the cost of the system, these related components must generally be kept to a minimum. In a memory application, this can be achieved by using a memory density that adds an integrated circuit. In particular, memory density can be increased by using an MLC memory device. The MLC memory device can increase the amount of data stored in an integrated circuit without the need to add additional cells and/or increase the die size. The MLC memory device can store two or more data bits in each memory unit, although the MLC memory device needs to tightly control the threshold voltage so that each unit uses multiple critical levels. One problem with non-volatile memory cells is that they are closely spaced, especially for MLC, which is a floating gate to floating gate coupling that can cause interference between cells. This interference moves the threshold voltage of adjacent cells when a unit program is edited.
部分是因為需要更緊密間隔臨界電壓的狀態數量增加,造成MLC記憶體也具有比SLC記憶體裝置還低的可靠度。例如:一記憶體裝置內用於儲存相片的壞位元比一記憶體裝置內用於儲存程式碼的壞位元更容易容忍。一相片內的壞位元可能只產生數百萬畫素中的一個壞畫素,不過程式碼或其他資料內的壞位元意味著一指令毀壞,這會影響到整個程式的操作。Partly because of the increased number of states requiring closer spacing of the threshold voltage, the MLC memory also has lower reliability than the SLC memory device. For example, a bad bit in a memory device for storing photos is more tolerable than a bad bit in a memory device for storing code. A bad bit in a photo may only produce one bad pixel in millions of pixels, but a bad bit in a code or other data means that an instruction is destroyed, which affects the operation of the entire program.
一MLC記憶體裝置具有二或多個臨界電壓分佈,並且具有對應至該電壓分佈的二或更多個資料儲存狀態。例如:可程式編輯2位元資料的MLC記憶體裝置具有四個資料儲存狀態(例如[11]、[10]、[01]和[00])。這些狀態可對應至該MLC記憶體裝置的臨界電壓分佈,例如:假設該記憶體單元的個別臨界電壓分佈為-2.7 V或以下、0.3V至0.7V、1.3V至1.7V以及2.3V至2.7V,則狀態[11]、[10]、[01]和[00]分別對應至-2.7V或以下、0.3V至0.5V、1.3V至1.7V以及2.3V至2.7V。An MLC memory device has two or more threshold voltage distributions and has two or more data storage states corresponding to the voltage distribution. For example, an MLC memory device that can program 2-bit data has four data storage states (eg [11], [10], [01], and [00]). These states may correspond to a threshold voltage distribution of the MLC memory device, for example: assuming that the individual threshold voltage distribution of the memory cell is -2.7 V or less, 0.3V to 0.7V, 1.3V to 1.7V, and 2.3V to 2.7V, then states [11], [10], [01], and [00] correspond to -2.7V or less, 0.3V, respectively. Up to 0.5V, 1.3V to 1.7V and 2.3V to 2.7V.
具備多層單元的快閃記憶體裝置之讀取操作可利用偵測一多層單元的資料來執行。根據可包含例如:根據一定量位元線電流與一階梯狀波形的字線電壓,決定流過所選記憶體單元的單元電流間之差異。A read operation of a flash memory device having a multi-level cell can be performed by detecting data of a multi-level cell. The difference between the cell currents flowing through the selected memory cell is determined according to, for example, the word line voltage according to a certain amount of bit line current and a staircase waveform.
具備多層單元的快閃記憶體裝置之程式編輯操作可利用一預定的程式編輯電壓供應至所選記憶體單元的閘道,然後將一接地電壓供應至該位元線來執行。然後,一電源供應電壓可供應至該位元線,以避免進行程式編輯。若該程式編輯電壓和該接地電壓分別供應至所選記憶體單元的字線與位元線,則會在一浮動閘與該記憶體單元通道之間供應相當高的電場。由於此電場,該通道的電子通過在該浮動閘與該通道之間形成的氧化物層,如此其中發生穿隧。在此方式中,可增加利用該浮動閘內該等電子累積來程式編輯的記憶體單元臨界電壓。The program editing operation of the flash memory device having the multi-level cell can be performed by supplying a predetermined program editing voltage to the gate of the selected memory cell, and then supplying a ground voltage to the bit line. Then, a power supply voltage can be supplied to the bit line to avoid program editing. If the program edit voltage and the ground voltage are respectively supplied to the word line and the bit line of the selected memory cell, a relatively high electric field is supplied between a floating gate and the memory cell channel. Due to this electric field, electrons of the channel pass through an oxide layer formed between the floating gate and the channel, such that tunneling occurs therein. In this manner, the memory cell threshold voltage programmed using the electronic accumulation in the floating gate can be increased.
資料分頁操作的示例性時序圖Exemplary timing diagram for data paging operations
第二B圖顯示在一資料程式編輯操作期間與一NAND快閃介面內每一接腳相關聯之範例時序圖。請參閱第二B圖,區域206表示一或多個指令已經傳送至一快閃記憶體裝置的週期,而區域208則表示程式編輯資料可被傳送至該快閃記憶體裝置的週期,並且區域210則表示一狀態檢查可被傳送至該快閃記憶體裝置來檢 查該記憶體裝置狀態之週期。The second B diagram shows an example timing diagram associated with each pin within a NAND flash interface during a data program editing operation. Referring to FIG. 2B, the area 206 indicates the period in which one or more instructions have been transferred to a flash memory device, and the area 208 indicates the period in which the program editing material can be transferred to the flash memory device, and the area 210 indicates that a status check can be transmitted to the flash memory device for inspection. Check the period of the memory device state.
如所示,資料進/出I/O[7:0]接腳上出現的指令「80h」指出序列資料輸入(例如Din N...Din M)。指令「10h」可指示一自動程式編輯,接著由指令「70h」所指示的狀態讀取。I/O[0]="0"指出一非錯誤情況,而I/O[0]=“1”則指出自動程式編輯內已經發生錯誤。As shown, the command "80h" appearing on the data I/O[7:0] pins indicates the sequence data input (for example, D in N...D in M). The command "10h" indicates an automatic program editing, and is then read by the status indicated by the command "70h". I/O[0]="0" indicates a non-error condition, and I/O[0]=“1” indicates that an error has occurred in the automatic program editing.
另外,根據已經討論過的,備妥/忙碌輸出信號「R/B_」可為邏輯低狀態,指出一忙碌狀態。在某些實施當中,備妥/忙碌輸出信號「R/B_」的低邏輯狀態期間範圍在數百μs內。另外,讀取啟用信號「RE_」的上升邊緣可在一段時間之後接著寫入啟用信號「WE_」的上升邊緣。在某些實施當中,此時間週期可在大約60ns的範圍內。In addition, as already discussed, the ready/busy output signal "R/B_" can be in a logic low state, indicating a busy state. In some implementations, the low logic state period of the ready/busy output signal "R/B_" is in the range of hundreds of μs. In addition, the rising edge of the read enable signal "RE_" can be written to the rising edge of the enable signal "WE_" after a certain period of time. In some implementations, this time period can be in the range of approximately 60 ns.
另外,如第二B圖所示,橫跨從該尾端邊緣至/忙碌輸出信號「R/B_」上升邊緣的時序週期「tPRG」可指出用於程式編輯資料的程式編輯時間。在某些實施當中,程式編輯時間「tPRG」在針對一SLC裝置時在大約200μs至大約700μs的範圍內,而在針對一MLC裝置時在大約800μs至大約3ms的範圍內。In addition, as shown in the second B-picture, the timing period "tPRG" across the rising edge of the /busy output signal "R/B_" from the trailing edge can indicate the program editing time for the program editing data. In some implementations, the program edit time "tPRG" is in the range of about 200 [mu]s to about 700 [mu]s for an SLC device and about 800 [mu]s to about 3 ms for an MLC device.
在某些實施當中,程式編輯時間「tPRG」類似於「t4」週期,但是用於程式編輯資料時與用於讀取資料時相反。在「tPRG」週期期間,備妥/忙碌輸出信號「R/B_」可認定為一邏輯「0」,指出該快閃記憶體位於一忙碌狀態,在此間資料無法讀取或抹除。In some implementations, the program editing time "tPRG" is similar to the "t4" period, but is used when the program is used to edit data as opposed to when reading data. During the "tPRG" period, the ready/busy output signal "R/B_" can be regarded as a logic "0", indicating that the flash memory is in a busy state, during which data cannot be read or erased.
單節抹除操作的示例時序圖Example timing diagram for single block erase operation
第二C圖顯示在一單節抹除操作期間與一NAND 快閃介面內每一接腳相關聯之範例時序圖。請參閱第二C圖,區域212表示一或多個指令已經傳送至一快閃記憶體裝置的週期,而區域214則表示一狀態檢查已經傳送至該快閃記憶體裝置來檢查該記憶體裝置狀態的週期。The second C picture shows a NAND during a single erase operation Example timing diagram associated with each pin in the flash interface. Referring to the second C diagram, the area 212 indicates the period in which one or more instructions have been transmitted to a flash memory device, and the area 214 indicates that a status check has been transmitted to the flash memory device to check the memory device. The period of the state.
如所示,資料進/出I/O[7:0]接腳上出現的指令「60h」指出一單節抹除操作,其中已經供應序列行位址(例如RA 1、RA 2和RA 3)。指令「D0h」可指出一循環2單節抹除操作。該單節抹除操作可利用一狀態讀取(指令「70h」)來檢查,其中I/O[0]=「0」指出一非錯誤情況,而I/O[0]=「1」則指出一單節抹除內已經發生錯誤。As shown, the command "60h" appearing on the data in/out I/O[7:0] pins indicates a single-block erase operation in which sequence line addresses have been supplied (eg RA 1, RA 2, and RA 3). ). The instruction "D0h" indicates a loop 2 block erase operation. This block erase operation can be checked with a status read (command "70h"), where I/O[0] = "0" indicates a non-error condition, and I/O[0] = "1" It is pointed out that an error has occurred within a single block erase.
在此範例中,備妥/忙碌輸出信號「R/B_」可在時序週期中為邏輯低狀態,像是在大約毫秒的範圍內(例如具有一預定最大值)。類似地,讀取啟用信號「RE_」的上升邊緣可接著寫入啟用信號「WE_」的上升邊緣。根據其他範例,寫入啟用信號「WE_」之上升邊緣對應至「D0h」指令,而備妥/忙碌輸出信號「R/B_」的下降邊緣可位於大約100ns的範圍內。In this example, the ready/busy output signal "R/B_" may be in a logic low state during the timing cycle, such as in the range of approximately milliseconds (eg, having a predetermined maximum). Similarly, the rising edge of the read enable signal "RE_" can then be written to the rising edge of the enable signal "WE_". According to another example, the rising edge of the write enable signal "WE_" corresponds to the "D0h" command, and the falling edge of the ready/busy output signal "R/B_" can be in the range of approximately 100 ns.
另外,如第二C圖所示,橫跨從該尾端邊緣至備妥/忙碌輸出信號「R/B_」上升邊緣的時序週期「tBERS」可指出用於抹除單節資料的單節抹除時間。In addition, as shown in the second C-picture, the timing period "tBERS" across the rising edge of the ready/busy output signal "R/B_" from the trailing edge can indicate a single-section wipe for erasing a single block of data. Except time.
在某些案例中,除了傳送一或多個單節抹除指令以外(或若不使用讀取一備妥/忙碌輸出信號「R/B_」時的讀取狀態指令),一單節抹除操作並不需要進出該NAND快閃I/O介面。一固態磁碟機系統的效能間接取決於該單節抹除操作。在特定案例當中,在一單節抹除操作的 最開頭,該磁碟機可決定一些已抹除的分頁可用於資料程式編輯。結果,該磁碟機可維護一程式編輯操作而不需要執行一單節抹除操作。不過,隨著該磁碟機內儲存的資料跟著該磁碟機的操作而修改,可用於資料程式編輯的分頁變少了,如此該磁碟機應該需要執行一或多次單節抹除操作以清空分頁用於資料程式編輯。如此,一長「tBERS」週期應該產生一較長的等待週期,讓該固態磁碟機系統接受該PROGRAM指令。換言之,一單節抹除操作在該整體磁碟機效能上的衝擊絕大部分取決於由該韌體(例如韌體324)所處置的垃圾收集機制。In some cases, in addition to transmitting one or more single-block erase commands (or if you do not use the read status command when reading a ready/busy output signal "R/B_"), a single block erase The operation does not require access to the NAND flash I/O interface. The performance of a solid state disk drive system is indirectly dependent on the single block erase operation. In a specific case, in a single section erase operation At the beginning, the drive can determine that some of the erased pages can be used for data program editing. As a result, the disk drive can maintain a program editing operation without performing a single block erase operation. However, as the data stored in the disk drive is modified following the operation of the disk drive, the number of pages available for data program editing is reduced, so the disk drive should perform one or more single block erase operations. Use the empty tab to edit the data program. Thus, a long "tBERS" period should produce a longer wait period for the solid state drive system to accept the PROGRAM command. In other words, the impact of a single erase operation on the overall drive performance is largely dependent on the garbage collection mechanism handled by the firmware (e.g., firmware 324).
在某些實施當中,單節抹除時間「tBERS」在針對一SLC裝置時在大約1.5ms至大約2ms的範圍內,而在針對一MLC裝置時在大約1.5ms至大約10ms的範圍內。在「tBERS」週期期間,備妥/忙碌輸出信號「R/B_」可認定為一邏輯「0」,指出該快閃記憶體位於一忙碌狀態,在此間資料無法讀取或寫入。In some implementations, the single erase time "tBERS" is in the range of about 1.5 ms to about 2 ms for an SLC device and about 1.5 ms to about 10 ms for an MLC device. During the "tBERS" period, the ready/busy output signal "R/B_" can be regarded as a logic "0" indicating that the flash memory is in a busy state, during which data cannot be read or written.
固態磁碟機Solid state disk drive
第三圖顯示一範例固態磁碟機系統300。如第三圖所示,系統300包含一個主機302和一個固態磁碟機304。固態磁碟機304可包含一個主機介面310、中央處理器單元(CPU)323、一個記憶體控制器介面328、一個記憶體控制器330和一或多個快閃記憶體裝置306a-306d。The third figure shows an example solid state disk drive system 300. As shown in the third diagram, system 300 includes a host 302 and a solid state drive 304. The solid state drive 304 can include a host interface 310, a central processing unit (CPU) 323, a memory controller interface 328, a memory controller 330, and one or more flash memory devices 306a-306d.
主機302可透過主機介面310與固態磁碟機304通訊。在某些實施當中,主機介面310包含一個序列先進技術附加(SATA,“serial advanced techonology attachment”)介面或並列先進技術附加(PATA,“parallel advanced techonology attachment”)介面。一SATA介面或PATA介面分別用於將序列或並列資料轉換成並列或序列資料。例如:若主機介面310包含一SATA介面,則該SATA介面可透過一匯流排303(例如SATA匯流排)接收從主機302轉移來的序列資料,並將接收的資料轉換成並列資料。在其他實施當中,主機介面310可包含一複合介面。在這些實施當中,該複合介面可用於例如與一序列介面結合。The host 302 can communicate with the solid state drive 304 via the host interface 310. In some implementations, the host interface 310 includes a serial advanced technology add-on (SATA, "serial advanced techonology" Attach") interface or parallel advanced technology attachment (PATA) interface. A SATA interface or PATA interface is used to convert sequence or parallel data into parallel or sequence data. For example, if the host interface 310 contains a In the SATA interface, the SATA interface can receive the sequence data transferred from the host 302 through a bus 303 (for example, a SATA bus), and convert the received data into parallel data. In other implementations, the host interface 310 can include a Composite interface. In these implementations, the composite interface can be used, for example, in conjunction with a sequence of interfaces.
在某些實施當中,主機介面310可包含一或多暫存器,其中可暫時儲存來自主機302的操作指令和位址。主機介面310可將一寫入或讀取操作通訊至一固態控制器308,以回應該(等)暫存器內儲存的資訊。In some implementations, host interface 310 can include one or more registers in which operational instructions and addresses from host 302 can be temporarily stored. The host interface 310 can communicate a write or read operation to a solid state controller 308 to respond to information stored in the scratchpad.
在某些實施當中,固態磁碟機304可包含一或多個通道326a-326d(例如四或八個通道),並且每一通道都可配置成接收來自主機302或來自快閃記憶體306a-306d的一或多個控制信號(例如四晶片啟用信號)。In some implementations, solid state drive 304 can include one or more channels 326a-326d (eg, four or eight channels), and each channel can be configured to receive from host 302 or from flash memory 306a- One or more control signals of 306d (eg, a four-wafer enable signal).
快閃記憶體裝置Flash memory device
在某些實施當中,每一快閃記憶體裝置306都可包含非揮發性記憶體(例如一單層快閃記憶體或一多層快閃記憶體)。在某些實施當中,該非揮發性快閃記憶體可包含一NAND型快閃記憶體模組。一NAND型快閃記憶體模組包含一個指令/位址/資料多工介面,如此可透過對應的輸入/輸出接腳提供指令、資料和位址。使用NAND型快閃記憶體的優點,與一硬碟方式相反,包含:(i)開機與恢復時間更快速;(ii)電池使用時間較長(例如 用於無線應用)以及(iii)較高的資料可靠度。In some implementations, each flash memory device 306 can include non-volatile memory (eg, a single layer of flash memory or a multi-layered flash memory). In some implementations, the non-volatile flash memory can include a NAND type flash memory module. A NAND-type flash memory module includes an instruction/address/data multiplex interface that provides instructions, data, and address through corresponding input/output pins. The advantages of using NAND-type flash memory, contrary to a hard disk method, include: (i) faster boot and recovery time; (ii) longer battery life (eg For wireless applications) and (iii) high data reliability.
在某些實施當中,每一快閃記憶體裝置都可連接至通道326。每一通道都可例如支援一或多個輸入與輸出線、晶片選擇信號線、晶片啟用信號線等等。該通道也可支援其他信號線,像是寫入啟用、讀取啟用、備妥/忙碌輸出以及重置信號線。在某些實施當中,該等快閃記憶體裝置306a-306d可分享一共用通道。在其他實施當中,若要增加相似程度,每一快閃記憶體裝置都可具有自己的通道連接至固態磁碟機304。例如:快閃記憶體裝置306a可使用通道326a連接至固態磁碟機304;快閃記憶體裝置306b可使用通道326b連接至固態磁碟機304;快閃記憶體裝置306c可使用通道326c連接至固態磁碟機304;並且快閃記憶體裝置306d可使用通道326d連接至固態磁碟機304。In some implementations, each flash memory device can be coupled to channel 326. Each channel can, for example, support one or more input and output lines, a wafer select signal line, a wafer enable signal line, and the like. This channel can also support other signal lines such as write enable, read enable, ready/busy output, and reset signal lines. In some implementations, the flash memory devices 306a-306d can share a common channel. In other implementations, each flash memory device can have its own channel connected to the solid state drive 304 to increase the degree of similarity. For example, flash memory device 306a can be coupled to solid state disk drive 304 using channel 326a; flash memory device 306b can be coupled to solid state disk drive 304 using channel 326b; flash memory device 306c can be coupled to channel 326c using channel 326c Solid state disk drive 304; and flash memory device 306d can be coupled to solid state disk drive 304 using channel 326d.
在某些實施當中,快閃記憶體裝置306a-306d可分離。在某些實施當中,快閃記憶體裝置306a-306d可使用標準連接器連接至固態磁碟機304。標準連接器的範例包含但不受限於SATA、USB(萬用序列匯流排)、SCSI(小型電腦系統介面)、PCMCIA(個人電腦記憶卡國際協會)以及IEEE-1394(Firewire)。In some implementations, flash memory devices 306a-306d can be separated. In some implementations, flash memory devices 306a-306d can be coupled to solid state disk drive 304 using standard connectors. Examples of standard connectors include, but are not limited to, SATA, USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCMCIA (Personal Computer Memory Card International Association), and IEEE-1394 (Firewire).
在某些實施當中,每一快閃記憶體裝置306都可包含排成列的一或多個固態儲存元件。一固態儲存元件可分割成分頁。在某些實施當中,一固態儲存元件具有2000位元組的容量(即是一個分頁)。在某些實施當中,一固態儲存元件可包含兩個暫存器,提供4000位元組(即是4kB)的總容量。In some implementations, each flash memory device 306 can include one or more solid state storage elements arranged in a row. A solid state storage element can divide the page of ingredients. In some implementations, a solid state storage element has a capacity of 2000 bytes (ie, one page). In some implementations, a solid state storage component can include two registers, providing a total capacity of 4000 bytes (ie, 4 kB).
在某些實施當中,每一快閃記憶體裝置306也可包 含一或多列,每列都使用一晶片啟用信號或晶片選擇信號來選擇。該晶片啟用或晶片選擇信號可選擇一或多個固態儲存元件,以回應一主機指令。In some implementations, each flash memory device 306 can also be packaged. One or more columns are included, each column being selected using a wafer enable signal or a wafer select signal. The wafer enable or wafer select signal can select one or more solid state storage elements in response to a host command.
在某些實施當中,每一固態儲存元件都可包含一或多個單層單元(SLC,“single level cell”)裝置。在某些實施當中,每一固態儲存元件都可包含一或多個多層單元(MLC,“multi-level cell”)裝置。該等SLC或MLC裝置可使用一晶片啟用或晶片選擇信號來選擇,這些信號可由固態控制器308使用接收自主機302的控制與位址資訊之組合來產生。In some implementations, each solid state storage element can include one or more single layer unit (SLC, "single level cell" devices. In some implementations, each solid state storage element can include one or more multi-level cell (MLC) devices. The SLC or MLC devices can be selected using a wafer enable or wafer select signal that can be generated by the solid state controller 308 using a combination of control and address information received from the host 302.
在某些實施當中,在使用多列之處,固態磁碟機304可同時存取一相同快閃記憶體裝置內一或多列。在某些實施當中,固態磁碟機304可同時存取不同快閃記憶體裝置內不同列。存取超過一列的能力允許固態磁碟機304完整利用可用的資源和通道326a-326d,以增加固態磁碟機304的整體效能。更進一步,在快閃記憶體裝置306a-306d分享一相同記憶體輸入/輸出線和控制信號(例如晶片啟用信號)之處,固態控制器308的接腳數量可減少,來將製造固態磁碟機304的成本降至最低。In some implementations, where multiple columns are used, the solid state drive 304 can simultaneously access one or more columns within a same flash memory device. In some implementations, the solid state drive 304 can simultaneously access different columns within different flash memory devices. The ability to access more than one column allows the solid state drive 304 to fully utilize the available resources and channels 326a-326d to increase the overall performance of the solid state drive 304. Further, where the flash memory devices 306a-306d share an identical memory input/output line and control signals (e.g., wafer enable signals), the number of pins of the solid state controller 308 can be reduced to manufacture a solid state disk. The cost of machine 304 is minimized.
固態控制器Solid state controller
固態控制器308可接收一或多個服務要求或指令(例如讀取和程式編輯要求)。固態控制器308可配置成處理任何指令、狀態或控制要求,來存取快閃記憶體裝置306a-306d。例如:固態控制器308可配置成管理和控制儲存裝置,並擷取快閃記憶體裝置306a-306d內的資料。The solid state controller 308 can receive one or more service requests or instructions (eg, read and program editing requirements). The solid state controller 308 can be configured to process any instruction, state, or control request to access the flash memory devices 306a-306d. For example, the solid state controller 308 can be configured to manage and control the storage device and retrieve data within the flash memory devices 306a-306d.
在某些實施當中,固態控制器308在一微處理器(未顯示)的控制下屬於一微處理器系統的一部分。固態控制器308可控制主機302與固態磁碟機304之間指令與資料的流動。在某些實施當中,固態控制器308可包含唯讀記憶體(ROM,“read only memory”)、隨機存取記憶體(RAM,“random access memory”)以及其他內部電路。在某些實施當中,固態控制器308可設置成支援與快閃記憶體裝置306a-306d相關聯的許多功能,像是(並無限制)診斷快閃記憶體裝置306a-306d、傳送指令(例如啟動、讀取、程式編輯、抹除、預先充能與更新指令)至快閃記憶體裝置306a-306d以及接收來自快閃記憶體裝置306a-306d的狀態,在一不同晶片上或一相同晶片上可形成固態控制器308當成快閃記憶體裝置306a-306d(例如在一相同晶片上形成為固態磁碟機304)。快閃記憶體裝置306a-306d可與記憶體介面328耦合。在某些實施當中,若快閃記憶體裝置306a-306d包含NAND型記憶體裝置,則記憶體介面328可為一NAND快閃輸入/輸出介面。In some implementations, solid state controller 308 is part of a microprocessor system under the control of a microprocessor (not shown). The solid state controller 308 can control the flow of commands and data between the host 302 and the solid state drive 304. In some implementations, the solid state controller 308 can include read only memory (ROM, "random access memory") and other internal circuitry. In some implementations, the solid state controller 308 can be configured to support a number of functions associated with the flash memory devices 306a-306d, such as (without limitation) diagnosing the flash memory devices 306a-306d, transmitting instructions (eg, Initiating, reading, program editing, erasing, pre-charging and updating instructions) to flash memory devices 306a-306d and receiving status from flash memory devices 306a-306d, on a different wafer or an identical wafer Solid state controller 308 can be formed as flash memory devices 306a-306d (e.g., formed as solid state disk drive 304 on a same wafer). Flash memory devices 306a-306d can be coupled to memory interface 328. In some implementations, if the flash memory devices 306a-306d include NAND type memory devices, the memory interface 328 can be a NAND flash input/output interface.
如第三圖所示,固態控制器308可包含一個錯誤檢查碼模組312、介面邏輯314、一個定序器316和一個格式化程式318。在某些實施當中,固態控制器308可與包含嵌入式韌體324的CPU 323耦合,該韌體可由固態控制器308所控制。CPU 323可包含一個微處理器、一個信號處理器(例如數位信號處理器)或微控制器。在某些實施當中,具有嵌入式韌體324的CPU 323可存在於固態磁碟機304之外。As shown in the third diagram, solid state controller 308 can include an error check code module 312, interface logic 314, a sequencer 316, and a formatter 318. In some implementations, the solid state controller 308 can be coupled to a CPU 323 that includes an embedded firmware 324 that can be controlled by the solid state controller 308. The CPU 323 can include a microprocessor, a signal processor (e.g., a digital signal processor) or a microcontroller. In some implementations, CPU 323 with embedded firmware 324 can exist outside of solid state drive 304.
在某些實施當中,固態磁碟機304(和/或主機302) 可固定在一晶片上系統(SOC,“system on chip”)之上。在這些實施當中,可使用例如數位處理來製造該SOC。該SOC可包含與固態磁碟機304內分離的嵌入式處理系統(例如一嵌入式CPU)。該SOC也可包含用於處理程式碼和資料的SRAM、系統邏輯、快取記憶體和快取控制器。與該嵌入式處理系統相關聯的程式碼和資料可儲存在快取裝置306a-306d內,並且透過例如一SOC介面通訊至該SOC。該SOC介面可由一轉譯器用來轉譯該SOC的介面與內部匯流排結構之間流動之資訊。控制信號可從該SOC流向快閃裝置306a-306d,而在讀取操作期間指令和資料可從快閃裝置308流量該SOC。指令和資料也可流向快閃裝置306a-306d,像是當快閃裝置306a-306d內的主記憶體處於WRITE操作當中時。In some implementations, solid state drive 304 (and/or host 302) It can be fixed on a system on a wafer (SOC, "system on chip"). In these implementations, the SOC can be fabricated using, for example, digital processing. The SOC can include an embedded processing system (e.g., an embedded CPU) that is separate from the solid state drive 304. The SOC may also include SRAM, system logic, cache memory, and cache controller for processing code and data. The code and data associated with the embedded processing system can be stored in cache devices 306a-306d and communicated to the SOC via, for example, an SOC interface. The SOC interface can be used by a translator to translate information flowing between the interface of the SOC and the internal bus structure. Control signals may flow from the SOC to flash devices 306a-306d, while instructions and data may flow from flash device 308 during the read operation. Instructions and data may also flow to flash devices 306a-306d, such as when the main memory within flash devices 306a-306d is in WRITE operation.
在某些實施當中,快閃裝置306a-306d可由記憶體控制器330控制。主機302可透過與記憶體控制器330耦合的記憶體介面328與快閃裝置306a-306d通訊。在某些實施當中,記憶體介面328可為一NAND快閃介面。In some implementations, flash devices 306a-306d can be controlled by memory controller 330. Host 302 can communicate with flash devices 306a-306d via a memory interface 328 coupled to memory controller 330. In some implementations, the memory interface 328 can be a NAND flash interface.
記憶體控制器330可透過一對應的接腳或端子連接至快閃記憶體裝置306a-306d。在這些實施當中,記憶體控制器330可實施成一應用專屬積體電路(ASIC,‘application specific integrated circuit”)或一晶片上系統(SOC,“system on chip”)。此外,信號CNFG可透過快閃裝置306a-306d上的電路以串聯方式連接。The memory controller 330 can be coupled to the flash memory devices 306a-306d via a corresponding pin or terminal. In these implementations, the memory controller 330 can be implemented as an application specific integrated circuit (ASIC) or a system on chip (SOC). In addition, the signal CNFG can be transmitted through the fast. The circuits on flash devices 306a-306d are connected in series.
狀態輪詢Status polling
如上面所討論,一特定邏輯狀態內的備妥/忙碌輸出信號「R/B_」可指示該輸出是否忙碌。例如:一低邏輯 狀態內的備妥/忙碌輸出信號「R/B_」可指示該輸出上的忙碌狀態。在此範例中,備妥/忙碌輸出信號「R/B_」可在寫入啟用信號「WE_」的最後上升邊緣之後某些時間週期內成為邏輯高狀態(即是變成指示備妥狀態的邏輯高狀態)。As discussed above, the ready/busy output signal "R/B_" within a particular logic state can indicate whether the output is busy. For example: a low logic The ready/busy output signal "R/B_" in the status indicates the busy status on the output. In this example, the ready/busy output signal "R/B_" can be in a logic high state for some time period after the last rising edge of the write enable signal "WE_" (ie, it becomes a logic high indicating the ready state). status).
一般而言,一快閃記憶體裝置只具有一個內部寫入充電泵。因此,將資料寫入該快閃記憶體裝置(即是程式編輯該裝置)將該記憶體裝置放入一忙碌狀態,如此在一寫入操作期間無法從該記憶體裝置讀取資料。若在該忙碌狀態期間執行一讀取操作,則回傳邏輯「00」。在此案例中,一寫入操作的忙碌狀態可持續數微秒。In general, a flash memory device has only one internal write charge pump. Therefore, writing data to the flash memory device (i.e., program editing the device) puts the memory device into a busy state so that data cannot be read from the memory device during a write operation. If a read operation is performed during the busy state, the logic "00" is returned. In this case, the busy state of a write operation can last for a few microseconds.
類似地,將該快閃記憶體裝置的抹除操作初始化會將該記憶體裝置放入該忙碌狀態。在一抹除操作期間,裝置一般會進入該忙碌狀態0.50-1.0秒。在此期間,該裝置也無法存取。Similarly, initializing the erase operation of the flash memory device places the memory device in the busy state. During a erase operation, the device typically enters the busy state for 0.50-1.0 seconds. During this time, the device could not be accessed.
在寫入與抹除操作期間無法存取該快閃記憶體裝置會導致實施該快閃記憶體裝置的系統之運作慢於一般系統。在該處理器(例如CPU 323)或嘗試讀取該快善記憶體裝置內容的記憶體控制器可獲得所要資料之前,必須先等待該寫入或抹除操作完成才行。Failure to access the flash memory device during write and erase operations can result in systems operating the flash memory device operating slower than normal systems. Before the processor (such as the CPU 323) or the memory controller attempting to read the contents of the fast memory device can obtain the desired data, it must wait for the writing or erasing operation to complete.
進一步,在此等待期間(例如寫入或抹除操作正在進行期間),該處理器或記憶體控制器330可使用備妥/忙碌輸出信號「R/B_」偵測該快閃記憶體裝置是否在一備妥狀況內(例如偵測該快閃記憶體裝置是否備妥可讀取)。若該快閃記憶體裝置忙碌,則一忙碌狀態會回傳至該處理器或記憶體控制器330。若該快閃記憶體裝置閒置中,則回傳一閒置狀態。Further, during this waiting period (eg, during a write or erase operation), the processor or memory controller 330 can detect whether the flash memory device is detected using the ready/busy output signal "R/B_" In a ready condition (for example, detecting if the flash memory device is ready for reading). If the flash memory device is busy, a busy state is passed back to the processor or memory controller 330. If the flash memory device is idle, an idle state is returned.
雖然前述偵測該快閃記憶體裝置一備妥/忙碌情況的處理允許該處理器或記憶體控制器330在其他操作(例如寫入或抹除操作)完成之後立即讀取(或寫入或抹除)該快閃記憶體裝置之內容,該快閃記憶體裝置通常需要一額外的接腳來支援此處理。Although the aforementioned process of detecting a ready/busy condition of the flash memory device allows the processor or memory controller 330 to read (or write or immediately) after other operations (such as write or erase operations) are completed. Erasing) The contents of the flash memory device, which typically requires an additional pin to support this process.
在某些實施當中,若要避免需要一額外接腳,該處理器或記憶體控制器330可利用一輪詢方法,該方法利用將一讀取狀態指令(例如一狀態讀取指令「70h」)傳送至該快閃記憶體裝置來偵測該快閃記憶體裝置的備妥或忙碌狀態(例如已執行一指令的讀取狀態、該讀取指令的忙碌/等待或通過/失敗狀態等等)。在某些實施當中,一狀態暫存器336a-336d可連接至該快閃記憶體裝置,用於儲存指出一寫入(或抹除)操作執行狀態的狀態信號。該處理器或記憶體控制器330可藉由讀取該快閃記憶體裝置的狀態暫存器336a-336d來執行一輪詢方法。在某些實施當中,即使該快閃記憶體裝置位於一忙碌狀態,該快閃記憶體裝置也可接受一讀取狀態指令,如底下表3內所示:
在某些實施當中,可在晶片啟用信號(CE_)設定為一 邏輯低狀態同時寫入啟用信號(WE_)設定為一邏輯高狀態的情況下設定資料輪詢。在操作上,該主機(例如主機302)或該記憶體控制器(例如記憶體控制器330)可輸入一寫入/抹除忙碌信號來將一寫入/抹除操作初始化。該寫入/抹除忙碌信號可將該快閃記憶體裝置的狀態暫存器336a-336d設定為邏輯「1」。在此期間,該CPU(例如CPU 323)可讀取該快閃記憶體裝置的內容,同時進行該寫入(或抹除)操作。In some implementations, the wafer enable signal (CE_) can be set to one. Set data polling when the logic low state simultaneous write enable signal (WE_) is set to a logic high state. In operation, the host (e.g., host 302) or the memory controller (e.g., memory controller 330) can input a write/erase busy signal to initialize a write/erase operation. The write/erase busy signal can set the state registers 336a-336d of the flash memory device to logic "1". During this time, the CPU (e.g., CPU 323) can read the contents of the flash memory device while performing the write (or erase) operation.
雖然該快閃記憶體裝置接受來自該處理器或記憶體控制器330的讀取狀態指令,該處理器或記憶體控制器330會繼續輪詢,來偵測寫入或抹除完成、抹除整個寫入或抹除或抹除該快閃記憶體裝置,這可用該等輪詢結果超載該快閃記憶體裝置和該處理器或記憶體控制器330。Although the flash memory device accepts a read status command from the processor or memory controller 330, the processor or memory controller 330 continues to poll to detect write or erase completion, erase The flash memory device is either written or erased or erased, which can overload the flash memory device and the processor or memory controller 330 with the results of the polling.
如此在某些實施當中,記憶體控制器330可包含一可程式編輯計時器332,並且該可程式編輯計時器可用來決定輪詢之前(即是傳送一讀取狀態指令之前)的初始等待時間。尤其是,該初始等待時間可定義記憶體控制器330發出一狀態檢查至該快閃記憶體裝置之前所可等待的時間週期(即是在一讀取、程式編輯或抹除操作期間)。在某些實施當中,該初始等待時間可根據一或多項因素來決定,像是該等「tR」、「tPROG」和「tBERS」參數。Thus, in some implementations, the memory controller 330 can include a programmable edit timer 332, and the programmable edit timer can be used to determine the initial wait time prior to polling (ie, prior to transmitting a read status command). . In particular, the initial latency may define a period of time (i.e., during a read, program edit, or erase operation) that the memory controller 330 may wait before issuing a status check to the flash memory device. In some implementations, the initial wait time may be determined based on one or more factors, such as the "tR", "tPROG", and "tBERS" parameters.
在某些實施當中,在該初始等待時間結束上,記憶體控制器330開始發出一或多指令(例如讀取狀態指令「70h」)來檢查該快閃記憶體的狀態(例如備妥/忙碌、通過/失敗等等)。In some implementations, at the end of the initial wait time, the memory controller 330 begins issuing one or more instructions (eg, read status command "70h") to check the status of the flash memory (eg, ready/busy) , pass/fail, etc.).
在某些實施當中,該記憶體控制器也可包含一第二可程式編輯計時器334,其可用於控制每一指令(例如讀取狀態指令)之間的間隔。在某些實施當中,間隔的適當值可由該系統韌體決定(例如韌體324),並且這種決定係根據與電力和效能相關聯的一或多項參數(例如因為經常輪詢而增加效能,但是消耗更多電力)。In some implementations, the memory controller can also include a second programmable edit timer 334 that can be used to control the spacing between each instruction (e.g., read status instructions). In some implementations, the appropriate value of the interval may be determined by the system firmware (eg, firmware 324), and such determination is based on one or more parameters associated with power and performance (eg, increased efficiency due to frequent polling, But it consumes more power).
在某些實施當中,第二可程式編輯計時器324可控制每一狀態檢查或每一讀取狀態指令之間的精確週期。利用在發出該讀取狀態指令之前控制初始等待時間以及每一所發出讀取狀態時間的間隔,記憶體控制器330可即時偵測該快閃記憶體的忙碌/備妥情況。In some implementations, the second programmable edit timer 324 can control a precise period between each state check or each read state command. The memory controller 330 can instantly detect the busy/ready condition of the flash memory by controlling the initial wait time and the interval of each issued read state time before issuing the read status command.
此外,當認定一讀取狀態指令時,執行指令中記憶體控制器330和快閃記憶體裝置306a-306d伴隨的電力消耗會增加。進一步,若一特定通道用於傳送一或多READ狀態指令,該通道會受阻,避免下一個指令傳送至其他裝置(或延遲下一個指令的執行)。如此,利用控制每一所發出讀取狀態指令的間隔,如此可調整讀取狀態指令的數量。調節讀取狀態指令可以節省與記憶體控制器330和快閃記憶體裝置306a-306d相關聯的電力,如此強化記憶體控制器330和快閃記憶體裝置306a-306d(或固態磁碟機308)的功率效能。In addition, when a read status command is asserted, the power consumption associated with the memory controller 330 and the flash memory devices 306a-306d in the execution command may increase. Further, if a particular channel is used to transmit one or more READ state commands, the channel is blocked, preventing the next instruction from being transferred to other devices (or delaying execution of the next instruction). Thus, by controlling the interval at which each read status command is issued, the number of read status instructions can be adjusted in this manner. Adjusting the read status command may save power associated with memory controller 330 and flash memory devices 306a-306d, thus enhancing memory controller 330 and flash memory devices 306a-306d (or solid state disk drive 308). Power performance.
雖然上面說明屬於一讀取指令和一讀取狀態指令,吾人應該注意,精通此技術的人士應瞭解前述說明也可適用於程式操作。在這些實施當中,可根據上述輪詢處理來傳送並調節一程式狀態指令。While the above description pertains to a read command and a read status command, it should be noted that those skilled in the art will appreciate that the foregoing description is also applicable to program operations. In these implementations, a program status command can be transmitted and adjusted in accordance with the polling process described above.
第四圖顯示關於一快閃記憶體裝置的備妥/忙碌輸出信號「R/B_」之範例初始等待時間。如第四圖所示, 跨越從該尾部邊緣到備妥/忙碌輸出信號「R/B_」上升邊緣的時間週期「t3」(例如在一邏輯「0」狀態),可指出讀取資料的讀取時間(例如第二A圖顯示的「tR」)、程式編輯資料的程式編輯時間(例如第二B圖顯示的「tPRG」)或抹除單節資料的單節抹除時間(例如第二C圖顯示的「tBERS」)。The fourth graph shows an example initial wait time for a ready/busy output signal "R/B_" for a flash memory device. As shown in the fourth picture, The time period "t3" (for example, in a logic "0" state) from the trailing edge to the rising edge of the ready/busy output signal "R/B_" may indicate the read time of the read data (eg, second A) "tR" in the figure, program editing time of the program editing data (for example, "tPRG" in the second B picture) or single block erasing time in the erased block data (for example, "tBERS" in the second C picture) ).
在時間週期「t3」期間,可傳輸一或多個讀取狀態指令402、404和406來讀取該快閃記憶體裝置的狀態。在某些實施當中,第一讀取狀態指令402可在一初始等待時間「t1」之後傳送。在本質上,該初始等待時間控制何時發生狀態輪詢。在傳送第一讀取狀態指令402之後,可傳送一第二讀取狀態指令404。第二讀取狀態指令404可在一第一間隔時間「t2」經過之後傳送。在傳送第二讀取狀態指令404之後,可在第二時間間隔「t4」之後傳送一第三讀取狀態指令406。在某些實施當中,第一間隔時間「t2」和第二間隔時間「t4」可相同。在其他實施當中,第一間隔時間「t2」和第二間隔時間「t4」不同。During the time period "t3", one or more read status commands 402, 404, and 406 may be transmitted to read the status of the flash memory device. In some implementations, the first read status instruction 402 can be transmitted after an initial wait time "t1". In essence, this initial latency controls when state polling occurs. After transmitting the first read status instruction 402, a second read status instruction 404 can be transmitted. The second read status command 404 can be transmitted after a first interval time "t2" has elapsed. After transmitting the second read status command 404, a third read status command 406 can be transmitted after the second time interval "t4". In some implementations, the first interval "t2" and the second interval "t4" may be the same. In other implementations, the first interval time "t2" is different from the second interval time "t4".
在上面顯示的實施當中,可由記憶體控制器330的時脈產生器供應初始等待時間「t1」和第一間隔時間「t2」和第二間隔時間「t4」。另外,可由該快閃記憶體裝置的內部時脈供應初始等待時間「t1」和第一間隔時間「t2」和第二間隔時間「t4」。In the implementation shown above, the initial wait time "t1" and the first interval time "t2" and the second interval time "t4" may be supplied by the clock generator of the memory controller 330. Further, the initial waiting time "t1", the first interval time "t2", and the second interval time "t4" may be supplied from the internal clock of the flash memory device.
在此有一項優點,就是使用一讀取狀態指令來輪詢並控制何時發出狀態讀取指令包含避免不連貫讀取該快閃記憶體裝置的內部暫存器。這對於可避免舊資料的狀態讀取可避免錯誤指示處理器或記憶體控制器330來 說具有決定性。該處理器或記憶體控制器330可針對程式或抹除狀態輪詢,並且利用直接讀取狀態暫存器336a-336d內儲存的暫存器資料正確接收目前與更新的資料。An advantage here is that using a read status instruction to poll and control when a status read instruction is issued includes avoiding incoherent reading of the internal register of the flash memory device. This prevents the error indication processor or memory controller 330 from being able to avoid reading the status of the old data. Said to be decisive. The processor or memory controller 330 can poll for program or erase status and correctly receive current and updated data using the scratchpad data stored in the direct read status registers 336a-336d.
第五圖顯示發出一或多讀取狀態指令的範例處理500。處理500可例如由固態磁碟機300、固態磁碟機304或記憶體控制器330來執行。不過,也可使用其他設備、系統或系統組合來執行處理500。The fifth diagram shows an example process 500 for issuing one or more read status instructions. Process 500 can be performed, for example, by solid state disk drive 300, solid state drive 304, or memory controller 330. However, other devices, systems, or combinations of systems may be used to perform process 500.
處理500開始以認定一控制信號至一或多記憶體裝置為開始(502)。在某些實施當中,認定一控制信號可包含認定一讀取啟用、寫入啟用或晶片啟用(或晶片選擇)信號至一或多個快閃記憶體裝置。在某些實施當中,該等快閃記憶體裝置可包含NAND型記憶體裝置。Process 500 begins by asserting a control signal to one or more memory devices (502). In some implementations, asserting a control signal can include asserting a read enable, write enable, or wafer enable (or wafer select) signal to one or more flash memory devices. In some implementations, the flash memory devices can include NAND type memory devices.
然後,可決定一初始等待時間(504)。在某些實施當中,該初始等待時間可包含一個記憶體控制器(例如記憶體控制器330)在發出指令給該快閃記憶體裝置之前等待的時間週期(例如在一讀取、程式編輯或抹除操作期間)。An initial wait time (504) can then be determined. In some implementations, the initial wait time can include a time period (eg, in a read, program edit, or etc.) that a memory controller (eg, memory controller 330) waits before issuing an instruction to the flash memory device. During the erase operation).
根據該初始等待時間可發出一第一指令(506)。在某些實施當中,該記憶體控制器可在該初始等待時間之後發出第一指令。在這些實施當中,該第一指令可為一狀態檢查指令(例如一讀取狀態指令或一程式編輯狀態檢查指令)。A first command (506) can be issued based on the initial wait time. In some implementations, the memory controller can issue a first instruction after the initial wait time. In these implementations, the first instruction can be a status check instruction (eg, a read status instruction or a program edit status check instruction).
在某些實施當中,認定一控制信號可包含認定一讀取指令至一或多個記憶體裝置。在這些實施當中,發出一第一指令可包含根據該初始等待時間發出一讀取狀態指令。In some implementations, determining a control signal can include asserting a read command to one or more memory devices. In these implementations, issuing a first instruction can include issuing a read status instruction based on the initial wait time.
在其他實施當中,認定一控制信號可包含認定一程式編輯(或寫入)指令至一或多個記憶體裝置。在這些實施當中,發出一第一指令可包含根據該初始等待時間發出一程式編輯狀態指令。In other implementations, determining a control signal can include asserting a program edit (or write) command to one or more memory devices. In these implementations, issuing a first instruction can include issuing a program edit status instruction based on the initial wait time.
接下來,決定與該第一指令相關聯的第一間隔時間(508)。該第一間隔時間可關聯於二讀取狀態指令之間的間隔時間。例如:可在該初始等待時間之後傳送一第一讀取狀態指令。在傳送該第一讀取狀態指令之後,可傳送第二讀取狀態指令至快閃記憶體裝置。該第二讀取狀態指令可在該第一間隔時間經過之後傳送。在傳送該第二讀取狀態指令之後,可在該第二時間間隔之後傳送一第三讀取狀態指令。Next, a first interval time associated with the first instruction is determined (508). The first interval time can be associated with an interval between two read status instructions. For example, a first read status instruction can be transmitted after the initial wait time. After transmitting the first read status instruction, a second read status command can be transmitted to the flash memory device. The second read status instruction may be transmitted after the first interval time elapses. After transmitting the second read status instruction, a third read status instruction can be transmitted after the second time interval.
根據該第一間隔時間可發出一第二指令(510)。在某些實施當中,可如上述一般決定與該第二指令相關聯的一第二間隔時間。在這些實施當中,可關於該第二指令和一第三指令來決定該第二間隔時間。根據該第二間隔時間,可發出該第三指令。A second command (510) can be issued based on the first interval. In some implementations, a second interval time associated with the second instruction can be generally determined as described above. In these implementations, the second interval may be determined with respect to the second instruction and a third instruction. According to the second interval time, the third instruction can be issued.
在某些實施當中,操作502-510可用所列的順序執行、同時執行(例如由在一或多個處理器上執行的相同或不同程式或執行緒,實質上或非嚴肅)或以相反順序執行來達成所要的結果。在其他實施當中,操作502-510可用顯示的順序執行。另外,其中執行操作的順序可至少部分取決於執行處理500的實體。操作502-510進一步由相同或不同實體或系統來執行。In some implementations, operations 502-510 can be performed in the order listed, concurrently (eg, the same or different programs or threads executed on one or more processors, substantially or non-serious), or in reverse order. Execute to achieve the desired result. In other implementations, operations 502-510 can be performed in the order shown. Additionally, the order in which operations are performed may depend, at least in part, on the entity performing process 500. Operations 502-510 are further performed by the same or different entities or systems.
讀取循環時間與寫入循環時間Read cycle time and write cycle time
傳統固態儲存裝置運用多維度記憶體陣列系統,來 增加效能並讓容量最大化。不過,傳統固態系統一般並不會在一相同系統內運用不同種類的固態儲存裝置。例如:一傳統固態系統無法同時在相同系統內有效運用單層單元和多層單元裝置。根據範例,若不使用備妥/忙碌輸出信號「R/B_」並且只提供一單一計時器給SLC和MLC,這可能難以發現對於SLC和MLC來說工作起來最好的單一計時器之最佳設定(例如因為SLC和MLC具有不同的最佳「tR」、「tPROG」和「tBERS」週期)。如此,當選擇一小計時器用於最佳SLC效能,該計時器可能並不適合達成最大MLC效能(例如在耗電量方面)。類似地,若一大計時器用於達成最大MLC效能(例如降低耗電量),則可能無法即時偵測到SLC狀態,如此導致效能低落。Traditional solid-state storage devices use multi-dimensional memory array systems to Increase performance and maximize capacity. However, traditional solid state systems generally do not utilize different types of solid state storage devices in the same system. For example, a conventional solid-state system cannot effectively utilize single-layer units and multi-level unit devices in the same system at the same time. According to the example, if you do not use the ready/busy output signal "R/B_" and only provide a single timer to the SLC and MLC, it may be difficult to find the best single timer for the SLC and MLC. Settings (eg because SLC and MLC have different optimal "tR", "tPROG" and "tBERS" cycles). As such, when selecting a small timer for optimal SLC performance, the timer may not be suitable for achieving maximum MLC performance (eg, in terms of power consumption). Similarly, if a large timer is used to achieve maximum MLC performance (eg, reduced power consumption), the SLC state may not be detected immediately, which results in low performance.
雖然像是MLC裝置這類較慢裝置一般成本較低,並且可用來滿足傳統容量需求以及降低實施MLC裝置的儲存裝置總成本,MLC裝置可能因為像是參數衝突,而無法與像是SLC裝置這類快速裝置一起用於相同裝置上。例如:SLC裝置和MLC裝置通常需要不同的製造需求以及規格來用於資料存取(例如不同的時間參數)。Although slower devices such as MLC devices are generally less expensive and can be used to meet traditional capacity requirements and reduce the overall cost of storage devices implementing MLC devices, MLC devices may not be able to interact with devices like SLC because of parameter conflicts. Class fast devices are used together on the same device. For example, SLC devices and MLC devices typically require different manufacturing requirements and specifications for data access (eg, different time parameters).
例如:請回頭參閱第二A圖,若要執行一讀取操作,讀取啟用信號(RE_)可認可並在邏輯「1」與邏輯「0」之間觸發用於一預定數量循環(例如當該快閃記憶體裝置在資料傳輸區域204內操作時)。一單一循環可由讀取循環時間「tRC」的週期來定義,尤其是,讀取循環時間「tRC」可定義在自該快閃記憶體裝置讀取資料期間之讀取時間。For example, please refer back to Figure 2A. To perform a read operation, the read enable signal (RE_) can be recognized and triggered between a logic "1" and a logic "0" for a predetermined number of cycles (for example, when The flash memory device operates in the data transfer area 204). A single cycle can be defined by the cycle of the read cycle time "tRC". In particular, the read cycle time "tRC" can define the read time during reading of data from the flash memory device.
在某些實施當中,讀取循環時間「tRC」大約是50ns(例如針對MLC裝置)。尤其是,在顯示的範例中,讀取循環時間「tRC」可包含第一時序週期T1和第二時序週期T2。第一時序週期T1和第二時序週期T2可定義與每一讀取循環時間「tRC」相關聯的快閃存取時間。在某些實施當中,第一時序週期T1可跨越4*T的時期,其中T為160MHz或大約6.25ns。換言之,第一時序週期T1長度大約為25ns。在這些實施當中,第二時序週期T2也跨越4*T的時期或長度大約25ns。然後長度大約25ns的第一時序週期T1和大約25ns的第二時序週期T2應產生大約50ns的總讀取循環時間「tRC」。In some implementations, the read cycle time "tRC" is approximately 50 ns (eg, for MLC devices). In particular, in the example of display, the read cycle time "tRC" may include a first timing period T1 and a second timing period T2. The first timing period T1 and the second timing period T2 may define a fast flash fetch time associated with each read cycle time "tRC". In some implementations, the first timing period T1 can span a period of 4*T, where T is 160 MHz or approximately 6.25 ns. In other words, the first timing period T1 is approximately 25 ns in length. In these implementations, the second timing period T2 also spans a period of 4*T or a length of approximately 25 ns. Then, the first timing period T1 of about 25 ns in length and the second timing period T2 of about 25 ns should produce a total read cycle time "tRC" of about 50 ns.
在其他實施當中,讀取循環時間「tRC」大約是25ns(例如針對SLC裝置)。例如:第一時序週期T1可跨越2*T的時期,其中T為160MHz或大約6.25ns。換言之,第一時序週期T1長度大約為12.5ns。在某些實施當中,第二時序週期T2也跨越2*T的時期或長度大約12.5ns。然後長度大約12.5ns的第一時序週期T1和大約25ns的第二時序週期T2應產生大約25ns的總讀取循環時間「tRC」。In other implementations, the read cycle time "tRC" is approximately 25 ns (eg, for SLC devices). For example, the first timing period T1 may span a period of 2*T, where T is 160 MHz or approximately 6.25 ns. In other words, the first timing period T1 is approximately 12.5 ns in length. In some implementations, the second timing period T2 also spans a period of 2*T or a length of approximately 12.5 ns. Then, the first timing period T1 of about 12.5 ns in length and the second timing period T2 of about 25 ns should produce a total read cycle time "tRC" of about 25 ns.
讀取循環時間「tRC」不需要受限於上面顯示的時序週期,也可考慮其他讀取循環時間週期。例如:根據特定設計與應用,讀取循環時間「tRC」可在20ns的範圍內。The read cycle time "tRC" does not need to be limited by the timing cycle shown above, but other read cycle time periods can also be considered. For example, depending on the specific design and application, the read cycle time "tRC" can be in the range of 20 ns.
在某些實施當中,讀取循環時間「tRC」(和底下將討論的寫入循環時間「tWC」)可短於(例如快過)與該讀取啟用信號(或關於寫入循環時間「tWC」的寫入啟用信號)相關聯的循環時間。在這些實施當中,固態磁碟機系 統300可提供一SOC內部時脈,以便根據該讀取啟用信號和該寫入啟用信號產生讀取循環時間「tRC」和寫入循環時間「tWC」當成NAND快閃I/O介面信號。例如:若與一NAND快閃讀取啟用信號相關聯的低時間與高時間分別為10ns和15ns時,則該內部時脈可為200Mhz(5ns)。然後,第一時序週期T1的值可程式編輯來允許2T循環(例如5ns x 2=10ns),並且第二時序週期T2的值可程式編輯來允許3T循環(5ns x 3=15n)。In some implementations, the read cycle time "tRC" (and the write cycle time "tWC" discussed below) can be shorter (eg, faster than) and the read enable signal (or about the write cycle time "tWC" The write cycle associated with the enable signal. In these implementations, the solid state drive system The system 300 can provide an SOC internal clock to generate a read cycle time "tRC" and a write cycle time "tWC" as a NAND flash I/O interface signal according to the read enable signal and the write enable signal. For example, if the low time and high time associated with a NAND flash read enable signal are 10 ns and 15 ns, respectively, then the internal clock can be 200 Mhz (5 ns). Then, the value of the first timing period T1 can be programmed to allow 2T cycles (eg, 5 ns x 2 = 10 ns), and the value of the second timing period T2 can be programmed to allow 3T cycles (5 ns x 3 = 15 n).
請參閱第二B圖,若要執行一資料程式編輯操作,寫入啟用信號(WE_)可認可並在邏輯「1」與邏輯「0」之間觸發而用於一預定數量循環(例如當該快閃記憶體裝置在資料傳輸區域206內操作時)。一單一循環可由寫入循環時間「tWC」的週期來定義,尤其是,寫入循環時間「tWC」可定義在該快閃記憶體裝置寫入程式編輯資料期間之寫入時間。Please refer to the second B diagram. To perform a data program editing operation, the write enable signal (WE_) can be recognized and triggered between logic "1" and logic "0" for a predetermined number of cycles (for example, when When the flash memory device is operating in the data transfer area 206). A single cycle can be defined by the period of the write cycle time "tWC". In particular, the write cycle time "tWC" can define the write time during which the flash memory device writes the program edit data.
在某些實施當中,寫入循環時間「tWC」大約是50ns(例如針對MLC裝置)。尤其是,在顯示的範例中,讀取循環時間「tRC」可包含第一時序週期T1和第二時序週期T2。第一時序週期T1和第二時序週期T2可定義與每一寫入循環時間「tWC」相關聯的快閃存取時間。在某些實施當中,第一時序週期T1可跨越4*T的時期,其中T為160MHz或大約6.25ns。換言之,第一時序週期T1長度大約為25ns。在某些實施當中,第二時序週期T2也跨越4*T的時期或長度大約25ns。然後長度大約25ns的第一時序週期T1和大約25ns的第二時序週期T2應產生大約50ns的總寫入循環時間「tWC」。In some implementations, the write cycle time "tWC" is approximately 50 ns (eg, for MLC devices). In particular, in the example of display, the read cycle time "tRC" may include a first timing period T1 and a second timing period T2. The first timing period T1 and the second timing period T2 may define a fast flash fetch time associated with each write cycle time "tWC". In some implementations, the first timing period T1 can span a period of 4*T, where T is 160 MHz or approximately 6.25 ns. In other words, the first timing period T1 is approximately 25 ns in length. In some implementations, the second timing period T2 also spans a period of 4*T or a length of approximately 25 ns. Then, the first timing period T1 of about 25 ns in length and the second timing period T2 of about 25 ns should produce a total write cycle time "tWC" of about 50 ns.
在其他實施當中,寫入循環時間「tWC」大約是25 ns(例如針對SLC裝置)。例如:第一時序週期T1可跨越2*T的時期,其中T為160MHz或大約6.25ns。換言之,第一時序週期T1長度大約為12.5ns。在某些實施當中,第二時序週期T2也跨越2*T的時期或長度大約12.5ns。然後長度大約12.5ns的第一時序週期T1和大約25ns的第二時序週期T2應產生大約25ns的總寫入循環時間「tWC」。In other implementations, the write cycle time "tWC" is approximately 25 Ns (for example for SLC devices). For example, the first timing period T1 may span a period of 2*T, where T is 160 MHz or approximately 6.25 ns. In other words, the first timing period T1 is approximately 12.5 ns in length. In some implementations, the second timing period T2 also spans a period of 2*T or a length of approximately 12.5 ns. Then, the first timing period T1 of about 12.5 ns in length and the second timing period T2 of about 25 ns should produce a total write cycle time "tWC" of about 25 ns.
當然,寫入循環時間「tWC」不需要受限於上面顯示的時序週期,也可考慮其他寫入循環時間週期。例如:根據特定設計與應用,寫入循環時間「tWC」可在45ns的範圍內。Of course, the write cycle time "tWC" need not be limited to the timing cycle shown above, but other write cycle time periods may also be considered. For example, depending on the specific design and application, the write cycle time "tWC" can be in the range of 45 ns.
一般而言,讀取循環時間「tRC」和寫入循環時間「tWC」都可用來當成時序參數,用於決定該資料傳輸率的整體效能。利用適當調整讀取循環時間「tRC」和寫入循環時間「tWC」,與該快閃記憶體裝置相關聯的介面時間可受到控制,如此可混合使用SLC和MLC裝置。根據範例,在發出一READ指令時,固態磁碟機系統300可等待一內部緩衝器在第二A圖所示的「t4」週期之後備妥。此後,資料透過該NAND介面從該內部緩衝器移出至固態控制器308。然後移位頻率由讀取操作的「tRC」週期(或由程式編輯操作的「tWC」週期)來指定。如上面所討論,最大產能為「1/tRC」所賦予(例如40MHz用於「tRC」週期=25ns)。換言之,「tRC」週期(或「tWC」週期)最小化允許增加頻寬。因此,利用定義二不同時序參數(例如一個設置用於SLC裝置並且另一個設置用於MLC裝置,兩個相反來利用相同邏輯(時序參數)控制用於SLC和MLC裝置的時序介面),如此顯著改善效率。In general, the read cycle time "tRC" and the write cycle time "tWC" can be used as timing parameters to determine the overall performance of the data transfer rate. By appropriately adjusting the read cycle time "tRC" and the write cycle time "tWC", the interface time associated with the flash memory device can be controlled so that the SLC and MLC devices can be mixed. According to an example, when a READ command is issued, the solid state drive system 300 can wait for an internal buffer to be ready after the "t4" period shown in FIG. Thereafter, data is removed from the internal buffer through the NAND interface to the solid state controller 308. The shift frequency is then specified by the "tRC" period of the read operation (or the "tWC" period of the program edit operation). As discussed above, the maximum capacity is given by "1/tRC" (eg 40MHz for "tRC" cycle = 25ns). In other words, the "tRC" period (or "tWC" period) is minimized to allow for increased bandwidth. Therefore, with the definition of two different timing parameters (eg one setting for the SLC device and the other setting for the MLC device, two opposites using the same logic (timing parameters) to control the timing interface for the SLC and MLC devices), so significant Improve efficiency.
根據其他範例,一固態磁碟機可運用具有25ns讀取循環時間「tRC」和25ns寫入循環時間「tWC」的一第一快閃記憶體裝置、具有25ns讀取循環時間「tRC」和45ns寫入循環時間「tWC」的一第二快閃記憶體裝置、具有20ns讀取循環時間「tRC」和20ns寫入循環時間「tWC」的一第三快閃記憶體裝置以及具有50ns讀取循環時間「tRC」和50ns寫入循環時間「tWC」的一第四快閃記憶體裝置。在某些實施當中,因為在一單節抹除操作期間資料未移位入或出,所以一單節抹除操作不使用循環時間。According to other examples, a solid state disk drive can use a first flash memory device having a 25 ns read cycle time "tRC" and a 25 ns write cycle time "tWC" with a 25 ns read cycle time "tRC" and 45 ns. A second flash memory device having a cycle time "tWC", a third flash memory device having a 20 ns read cycle time "tRC" and a 20 ns write cycle time "tWC" and having a 50 ns read cycle Time "tRC" and a fourth flash memory device with a 50 ns write cycle time "tWC". In some implementations, a single block erase operation does not use cycle time because the data is not shifted into or out during a single erase operation.
第六圖顯示根據一寫入循環時間和一讀取循環時間用於狀態輪詢之範例處理600。處理600可例如由固態磁碟機系統300、固態磁碟機304或記憶體控制器330來執行。不過,也可使用其他設備、系統或系統組合來執行處理600。The sixth graph shows an example process 600 for status polling based on a write cycle time and a read cycle time. Process 600 can be performed, for example, by solid state disk drive system 300, solid state drive 304, or memory controller 330. However, process 600 can also be performed using other devices, systems, or combinations of systems.
處理600開始時控制複數個記憶體裝置,該裝置包含一第一組記憶體裝置和一第二組記憶體裝置(602)。在某些實施當中,該第一組記憶體裝置可包含單層單元裝置,而該第二組記憶體裝置可包含多層單元裝置。在其他實施當中,該第一組記憶體裝置可包含多層單元裝置,而該第二組記憶體裝置可包含單層單元裝置。Process 600 begins by controlling a plurality of memory devices, the device comprising a first set of memory devices and a second set of memory devices (602). In some implementations, the first set of memory devices can comprise a single layer unit device and the second set of memory devices can comprise a multi-level unit device. In other implementations, the first set of memory devices can include multi-level cell devices, and the second set of memory devices can include single-layer cell devices.
接下來,可決定一第一循環時間(604)。在某些實施當中,決定一第一循環時間可包含決定與一第一組記憶體裝置相關聯的第一循環時間。在這些實施當中,決定與該第一組記憶體裝置相關聯的第一循環時間可包含決定一第一時序參數(例如第二A圖顯示的「tRC」週期)和第二時序參數(例如第二B圖顯示的「tWC」週期), 該第一時序參數與該第二時序參數都關聯於該第一組記憶體裝置(例如單層單元裝置)的資料傳輸率。在某些實施當中,該第一循環時間可為一讀取循環時間,其關聯於一讀取操作,在此操作期間可讀取來自至少記憶體裝置之一的資料。在其他實施當中,該第一循環時間可為一程式編輯循環時間,其關聯於一程式編輯操作,在此操作期間可將資料程式編輯入至少記憶體裝置之一。Next, a first cycle time (604) can be determined. In some implementations, determining a first cycle time can include determining a first cycle time associated with a first set of memory devices. In these implementations, determining a first cycle time associated with the first set of memory devices can include determining a first timing parameter (eg, a "tRC" period of the second A-picture display) and a second timing parameter (eg, The second "B" shows the "tWC" period), The first timing parameter and the second timing parameter are both associated with a data transmission rate of the first set of memory devices (eg, single layer unit devices). In some implementations, the first cycle time can be a read cycle time associated with a read operation during which data from at least one of the memory devices can be read. In other implementations, the first cycle time can be a program edit cycle time associated with a program editing operation during which the data program can be edited into at least one of the memory devices.
此後,根據該第一循環時間發出一寫入指令(606)。在某些實施當中,根據該第一循環時間發出該第一指令至該第一組記憶體裝置。例如:可發出具有上升與下降邊緣對應至該第一循環時間的寫入啟用信號(WE_)。該寫入啟用信號(WE_)可在邏輯「0」與邏輯「1」之間觸發,同時已經進行一寫入操作。Thereafter, a write command (606) is issued based on the first cycle time. In some implementations, the first instruction is issued to the first set of memory devices based on the first cycle time. For example, a write enable signal (WE_) having a rising and falling edge corresponding to the first cycle time can be issued. The write enable signal (WE_) can be triggered between logic "0" and logic "1" while a write operation has been performed.
在發出一寫入指令之後,決定一第二循環時間(608)。在某些實施當中,決定一第二循環時間可包含決定與一第二組記憶體裝置相關聯的第二循環時間。該第二組記憶體裝置可與該第一組記憶體裝置不同。例如:該第一組記憶體裝置可包含單層單元裝置,而該第二組記憶體裝置可包含多層單元裝置。在某些實施當中,決定一第二循環時間可包含決定與該第一循環時間無關的第二循環時間。例如:與單層單元裝置相關聯的「tRC」或「tWC」週期可和與多層單元裝置相關聯的週期分開決定。在某些實施當中,「tRC」或「WC」週期可用於將一對應記憶體裝置的資料傳輸率最大化。After issuing a write command, a second cycle time (608) is determined. In some implementations, determining a second cycle time can include determining a second cycle time associated with a second set of memory devices. The second set of memory devices can be different than the first set of memory devices. For example, the first set of memory devices can comprise a single layer unit device and the second set of memory devices can comprise a multi-level unit device. In some implementations, determining a second cycle time can include determining a second cycle time that is independent of the first cycle time. For example, the "tRC" or "tWC" period associated with a single layer unit device can be determined separately from the period associated with the multi-level unit device. In some implementations, a "tRC" or "WC" cycle can be used to maximize the data transfer rate of a corresponding memory device.
在某些實施當中,可認可一控制信號(例如讀取啟用信號、寫入啟用信號或晶片啟用信號)至該第一或該第二組記憶體裝置之一,用於一預定數量的循環。在這些實 施當中,該預定數量的循環可包含與該第一循環時間相關聯的第一循環,該第一循環包含一第一時序週期(例如第二A圖和第二B圖顯示的第一時序週期「T1」)以及一第二時序週期(例如第二A圖和第二B圖顯示的第二時序週期「T2」)。在這些實施當中,該第一循環的第一時序週期與第二時序週期可包含相同或不同期間。In some implementations, a control signal (eg, a read enable signal, a write enable signal, or a wafer enable signal) can be asserted to one of the first or second set of memory devices for a predetermined number of cycles. In these realities The predetermined number of cycles may include a first cycle associated with the first cycle time, the first cycle including a first time period (eg, the first time shown in the second A picture and the second B picture) The sequence period "T1") and a second timing period (for example, the second timing period "T2" shown in the second A picture and the second B picture). In these implementations, the first timing cycle and the second timing cycle of the first cycle may include the same or different periods.
在某些實施當中,該預定數量的循環可包含與該第二循環時間相關聯的第二循環,該第二循環包含一第一時序週期(例如第二A圖和第二B圖顯示的第一時序週期「T1」)以及一第二時序週期(例如第二A圖和第二B圖顯示的第二時序週期「T2」)。在這些實施當中,該第二循環的第一時序週期與第二時序週期可包含相同或不同期間。In some implementations, the predetermined number of cycles can include a second cycle associated with the second cycle time, the second cycle including a first timing cycle (eg, the second A map and the second B graph display The first timing period "T1") and a second timing period (for example, the second timing period "T2" shown in the second A picture and the second B picture). In these implementations, the first timing period and the second timing period of the second cycle may include the same or different periods.
在某些實施當中,可決定一等待週期(例如第二A圖顯示的「tR」)。該等待週期可當成一等待時間,在此期間並無指令(例如讀取狀態或寫入狀態指令)發出至該第一組記憶體裝置或該第二組記憶體裝置。此後,該第一指令或該第二指令可發出至其對應的群組。In some implementations, a wait period (e.g., "tR" as shown in the second A-picture) may be determined. The wait period can be a wait time during which no instructions (e.g., read status or write status commands) are issued to the first set of memory devices or the second set of memory devices. Thereafter, the first instruction or the second instruction can be issued to its corresponding group.
在已經決定該第二循環時間之下,根據該第二循環時間發出一第二指令(610)。例如:可發出具有上升與下降邊緣對應至該第二循環時間的讀取啟用信號(RE_)。該讀取啟用信號(RE_)可在邏輯「0」與邏輯「1」之間觸發,同時已經進行一讀取操作。After the second cycle time has been determined, a second command (610) is issued based on the second cycle time. For example, a read enable signal (RE_) having a rising and falling edge corresponding to the second cycle time can be issued. The read enable signal (RE_) can be triggered between logic "0" and logic "1" while a read operation has been performed.
在某些實施當中,操作602-610可用所列的順序執行、同時執行(例如由在一或多個處理器上執行的相同或不同程式或執行緒,實質上或非嚴肅)或以相反順序執行來達成所要的結果。在其他實施當中,操作602-610可 用顯示的順序執行。另外,其中執行操作的順序可至少部分取決於執行處理600的實體。操作602-610進一步由相同或不同實體或系統來執行。In some implementations, operations 602-610 can be performed in the order listed, concurrently (eg, the same or different programs or threads executed on one or more processors, substantially or non-serious), or in reverse order. Execute to achieve the desired result. In other implementations, operations 602-610 can Execute in the order shown. Additionally, the order in which operations are performed may depend, at least in part, on the entity performing process 600. Operations 602-610 are further performed by the same or different entities or systems.
硬碟機的範例實施Example implementation of a hard disk drive
第七圖至第十二圖顯示所說明系統與技術的許多示範實施。此時請參閱第七圖,所說明系統與技術可在一硬碟機(HDD)700內實施。所說明系統與技術可在信號處理以及/或控制電路內實施,這通常在第七圖上以702表示。在某些實施中,HDD 700內的信號處理以及/或控制電路702以及/或其他電路(未顯示)可處理資料、執行編碼和/或加密、執行計算,以及將輸出至或接收自一磁性儲存媒體704的資料格式化。Figures 7 through 12 show many exemplary implementations of the illustrated systems and techniques. Referring now to Figure 7, the system and technology described can be implemented in a hard disk drive (HDD) 700. The illustrated systems and techniques can be implemented within signal processing and/or control circuitry, which is generally indicated at 702 on the seventh diagram. In some implementations, signal processing and/or control circuitry 702 and/or other circuitry (not shown) within HDD 700 can process data, perform encoding and/or encryption, perform computations, and output to or receive from a magnetic The data of the storage medium 704 is formatted.
HDD 700可與像是電腦的主機裝置(未顯示)、像是個人數位助理的行動計算裝置、行動電話、媒體或MP3播放器等等以及透過一或多有線或無線通訊鏈結706的其他裝置通訊。HDD 700可連接至記憶體708,像是隨機存取記憶體(RAM)、低處理負擔非揮發性記憶體,像是快閃記憶體、唯讀記憶體(ROM)以及/或其他合適的電子資料儲存裝置。The HDD 700 can be coupled to a host device such as a computer (not shown), a mobile computing device such as a personal digital assistant, a mobile phone, a media or MP3 player, etc., and other devices that communicate through one or more wired or wireless communication links 706. communication. The HDD 700 can be connected to a memory 708, such as a random access memory (RAM), low processing burden non-volatile memory such as flash memory, read only memory (ROM), and/or other suitable electronics. Data storage device.
此時請參閱第八圖,所說明系統與技術可在一數位多功能光碟機(DVD)800內實施。所說明系統與技術可在信號處理以及/或控制電路內實施,這一般在第八圖上以802表示,以及/或在DVD光碟機800的大量資料儲存裝置804內實施。DVD光碟機800內的信號處理以及/或控制電路802以及/或其他電路(未顯示)可處理資料、執行編碼和/或加密、執行計算,以及/或將讀取自 或寫入至光學儲存媒體806的資料格式化。在某些實施中,DVD光碟機800內的信號處理以及/或控制電路802以及/或其他電路(未顯示)也可執行其他功能,像是編碼和/或解碼以及DVD光碟機伴隨的任何其他信號處理功能。Referring now to Figure 8, the system and technology described can be implemented in a digital versatile compact disc drive (DVD) 800. The illustrated systems and techniques can be implemented in signal processing and/or control circuitry, generally indicated at 802 in the eighth diagram, and/or implemented in a plurality of data storage devices 804 of the DVD player 800. Signal processing and/or control circuitry 802 and/or other circuitry (not shown) within DVD player 800 may process data, perform encoding and/or encryption, perform calculations, and/or read from Or data formatted to the optical storage medium 806. In some implementations, signal processing and/or control circuitry 802 and/or other circuitry (not shown) within DVD player 800 can also perform other functions, such as encoding and/or decoding, and any other accompanying DVD drive. Signal processing function.
DVD光碟機800可透過一或多種有線或無線通訊鏈結810與輸出裝置(未顯示)通訊,像是電腦、電視或其他裝置。DVD光碟機800可與用非揮發性方式儲存資料的大量資料儲存裝置804通訊。大量資料儲存裝置804可包含一硬碟機(HDD)。該HDD具有第七圖顯示的組態。該HDD可為內含一或多個直徑大約1.8吋碟盤的迷你HDD。DVD光碟機800可連接至記憶體808,像是RAM、ROM、低處理負擔非揮發性記憶體,像是快閃記憶體以及/或其他合適的電子資料儲存裝置。The DVD player 800 can communicate with an output device (not shown) via one or more wired or wireless communication links 810, such as a computer, television or other device. The DVD player 800 can communicate with a plurality of data storage devices 804 that store data in a non-volatile manner. The mass data storage device 804 can include a hard disk drive (HDD). The HDD has the configuration shown in the seventh figure. The HDD can be a mini HDD containing one or more discs of approximately 1.8 inches in diameter. The DVD player 800 can be coupled to a memory 808, such as RAM, ROM, low processing burden non-volatile memory, such as flash memory and/or other suitable electronic data storage devices.
此時請參閱第九圖,所說明系統與技術可在一高傳真電視(HDTV)900內實施。所說明系統與技術可在信號處理以及/或控制電路,這一般在第九圖上以902表示、WLAN介面906以及/或在HDTV 900的大量資料儲存裝置910內實施。HDTV 900接收一有線或無線格式的HDTV輸入信號,並產生顯示器904的HDTV輸出信號。在某些實施中,HDTV 900內的信號處理以及/或控制電路902以及/或其他電路(未顯示)可處理資料、執行編碼和/或加密、執行計算、資料格式化以及/或執行需要的任何一種HDTV處理。Referring now to the ninth diagram, the illustrated system and technology can be implemented in a high-definition television (HDTV) 900. The illustrated systems and techniques may be implemented in signal processing and/or control circuitry, generally indicated at 902 on the ninth diagram, WLAN interface 906, and/or within a plurality of data storage devices 910 of HDTV 900. The HDTV 900 receives an HDTV input signal in a wired or wireless format and produces an HDTV output signal of the display 904. In some implementations, signal processing and/or control circuitry 902 and/or other circuitry (not shown) within HDTV 900 can process data, perform encoding and/or encryption, perform computations, data formatting, and/or perform as needed. Any kind of HDTV processing.
HDTV 900可與用一非揮發性方式,像是光學以及/或磁性儲存裝置來儲存資料的大量資料儲存裝置910通訊。至少一個HDD可具有第七圖顯示的組態,並且/或 至少一個DVD可具有第八圖顯示的組態。該HDD可為內含一或多個直徑大約1.8吋碟盤的迷你HDD。HDTV 900可連接至記憶體908,像是RAM、ROM、低處理負擔非揮發性記憶體,像是快閃記憶體以及/或其他合適的電子資料儲存裝置。HDTV 900也支援透過WLAN網路介面906與一WLAN連線。The HDTV 900 can communicate with a large number of data storage devices 910 that store data in a non-volatile manner, such as optical and/or magnetic storage devices. At least one HDD may have the configuration shown in the seventh diagram, and/or At least one DVD may have the configuration shown in the eighth diagram. The HDD can be a mini HDD containing one or more discs of approximately 1.8 inches in diameter. The HDTV 900 can be coupled to a memory 908, such as RAM, ROM, low processing burden non-volatile memory, such as flash memory and/or other suitable electronic data storage devices. The HDTV 900 also supports connection to a WLAN via the WLAN network interface 906.
此時請參閱第十圖,所說明系統與技術可在包含行動天線1002的行動電話1000內實施。所說明系統與技術可在信號處理以及/或控制電路,這一般在第十圖上以1004識別、一WLAN介面1010以及/或在行動電話1000的大量資料儲存裝置1006內實施。在某些實施當中,行動電話1000包含一麥克風1012、像是一揚聲器以及/或聲音輸出插座的聲音輸出1014、一顯示器1016以及/或輸入裝置1018,像是鍵盤、指示裝置、語音致動以及/或其它輸入裝置。行動電話1000內的信號處理以及/或控制電路1004以及/或其他電路(未顯示)可處理資料、執行編碼和/或加密、執行計算、將資料格式化以及/或執行其他行動電話功能。Referring now to the tenth diagram, the illustrated system and techniques can be implemented within a mobile telephone 1000 that includes a mobile antenna 1002. The illustrated systems and techniques can be implemented in signal processing and/or control circuitry, which is generally identified in FIG. 10 by 1004, a WLAN interface 1010, and/or within a plurality of data storage devices 1006 of the mobile telephone 1000. In some implementations, the mobile phone 1000 includes a microphone 1012, a sound output 1014 such as a speaker and/or a sound output socket, a display 1016, and/or an input device 1018, such as a keyboard, pointing device, voice actuation, and / or other input device. Signal processing and/or control circuitry 1004 and/or other circuitry (not shown) within mobile phone 1000 can process data, perform encoding and/or encryption, perform calculations, format data, and/or perform other mobile phone functions.
行動電話1000可與用一非揮發性方式,像是光學以及/或磁性儲存裝置,例如硬碟機HDD以及/或DVD來儲存資料的大量資料儲存裝置1006通訊。至少一個HDD可具有第七圖顯示的組態,並且/或至少一個DVD可具有第八圖顯示的組態。該HDD可為內含一或多個直徑大約1.8吋碟盤的迷你HDD。行動電話1000可連接至記憶體1008,像是RAM、ROM、低處理負擔非揮發性記憶體,像是快閃記憶體以及/或其他合適的電子資料儲存裝置。行動電話1000也支援透過一WLAN網路 介面1010與一WLAN連線。The mobile phone 1000 can communicate with a plurality of data storage devices 1006 that store data in a non-volatile manner, such as an optical and/or magnetic storage device, such as a hard disk drive HDD and/or a DVD. At least one HDD may have the configuration shown in the seventh diagram, and/or at least one DVD may have the configuration shown in the eighth diagram. The HDD can be a mini HDD containing one or more discs of approximately 1.8 inches in diameter. Mobile phone 1000 can be coupled to memory 1008, such as RAM, ROM, low processing burden non-volatile memory, such as flash memory and/or other suitable electronic data storage devices. Mobile Phone 1000 also supports a WLAN network The interface 1010 is connected to a WLAN.
此時請參閱第十一圖,所說明系統與技術可在機上盒1100內實施。所說明系統與技術可在信號處理以及/或控制電路,這一般在第十圖上以1102表示、一WLAN介面1108以及/或在機上盒1100的大量資料儲存裝置1104內實施。機上盒1100從來自像是廣播源的來源1112接收信號,並輸出適用於一顯示器1110的標準以及/或高傳真聲音/視訊信號,像是一電視以及/或監視器以及/或其他視訊以及/或聲音輸出裝置。機上盒1100內的信號處理以及/或控制電路1102以及/或其他電路(未顯示)可處理資料、執行編碼和/或加密、執行計算、將資料格式化以及/或執行任何其他機上盒功能。Referring now to Figure 11, the system and technology illustrated can be implemented within the set-top box 1100. The illustrated systems and techniques may be implemented in signal processing and/or control circuitry, generally indicated at 1102 in Figure 10, a WLAN interface 1108, and/or within a plurality of data storage devices 1104 of the set-top box 1100. The set-top box 1100 receives signals from a source 1112, such as a broadcast source, and outputs standard and/or high-fidelity sound/video signals suitable for a display 1110, such as a television and/or monitor and/or other video and / or sound output device. Signal processing and/or control circuitry 1102 and/or other circuitry (not shown) within set-top box 1100 can process data, perform encoding and/or encryption, perform calculations, format data, and/or execute any other set-top box Features.
機上盒1100可與用一非揮發性方式儲存資料的大量資料儲存裝置1104通訊。大量資料儲存裝置1104可包含光學以及/或磁性儲存裝置,像是硬碟機HDD以及/或DVD。至少一個HDD可具有第七圖顯示的組態,並且/或至少一個DVD光碟機可具有第八圖顯示的組態。該HDD可為內含一或多個直徑大約1.8吋碟盤的迷你HDD。機上盒1100可連接至記憶體1106,像是RAM、ROM、低處理負擔非揮發性記憶體,像是快閃記憶體以及/或其他合適的電子資料儲存裝置。機上盒1100也支援透過一WLAN網路介面1108與一WLAN連線。The set-top box 1100 can communicate with a plurality of data storage devices 1104 that store data in a non-volatile manner. The mass data storage device 1104 can include optical and/or magnetic storage devices such as a hard disk drive HDD and/or a DVD. At least one HDD may have the configuration shown in the seventh diagram, and/or at least one DVD player may have the configuration shown in the eighth diagram. The HDD can be a mini HDD containing one or more discs of approximately 1.8 inches in diameter. The set-top box 1100 can be connected to a memory 1106, such as a RAM, ROM, low-processing burden non-volatile memory, such as a flash memory and/or other suitable electronic data storage device. The set-top box 1100 also supports connection to a WLAN through a WLAN network interface 1108.
此時請參閱第十二圖,所說明系統與技術可在媒體播放機1200內實施。所說明系統與技術可在信號處理以及/或控制電路,這一般在第十二圖上以1202表示、一WLAN介面1208以及/或在一媒體播放機1200的大量資料儲存裝置1204內實施。在某些實施當中,媒體 播放機1200包含一顯示器1212以及/或一使用者輸入1214,像是一鍵盤、觸碰板等等。在某些實施當中,媒體播放機1200可運用一圖形使用者介面(GUI,“graphical user interface”),通常透過顯示器1212以及/或使用者輸入1214運用功能表、下拉式功能表、圖示以及/或指點介面。媒體播放機1200進一步包含聲音輸出1210,像是一揚聲器以及/或聲音輸出插座。媒體播放機1200內的信號處理以及/或控制電路1202以及/或其他電路(未顯示)可處理資料、執行編碼和/或加密、執行計算、將資料格式化以及/或執行任何其他媒體播放器功能。Referring now to the twelfth diagram, the illustrated system and techniques can be implemented within the media player 1200. The illustrated systems and techniques can be implemented in signal processing and/or control circuitry, generally indicated at 1202 in FIG. 12, a WLAN interface 1208, and/or within a plurality of data storage devices 1204 of a media player 1200. In some implementations, the media Player 1200 includes a display 1212 and/or a user input 1214, such as a keyboard, touch pad, and the like. In some implementations, the media player 1200 can utilize a graphical user interface (GUI), which is typically utilized by the display 1212 and/or user input 1214 to function menus, drop-down menus, icons, and / or pointing interface. The media player 1200 further includes a sound output 1210, such as a speaker and/or a sound output socket. Signal processing and/or control circuitry 1202 and/or other circuitry (not shown) within media player 1200 can process data, perform encoding and/or encryption, perform calculations, format data, and/or execute any other media player. Features.
媒體播放機1200可與用一非揮發性方式來儲存資料,像是壓縮聲音與/或視訊內容,的大量資料儲存裝置1204通訊。在某些實施當中,該等壓縮聲音檔包含符合MP3格式或其他合適的壓縮聲音與/或視訊格式之檔案。該大量資料儲存裝置可包含光學以及/或磁性儲存裝置,像是硬碟機HDD以及/或DVD。至少一個HDD可具有第七圖顯示的組態,並且/或至少一個DVD光碟機可具有第八圖顯示的組態。該HDD可為內含一或多個直徑大約1.8吋碟盤的迷你HDD。媒體播放機1200可連接至記憶體1206,像是RAM、ROM、低處理負擔非揮發性記憶體,像是快閃記憶體以及/或其他合適的電子資料儲存裝置。媒體播放機1200也支援透過一WLAN網路介面1208與一WLAN連線。仍舊考慮其他實施加上上列之說明。The media player 1200 can communicate with a plurality of data storage devices 1204 that store data, such as compressed sound and/or video content, in a non-volatile manner. In some implementations, the compressed sound files include files that conform to the MP3 format or other suitable compressed sound and/or video format. The mass data storage device can include optical and/or magnetic storage devices such as a hard disk drive HDD and/or a DVD. At least one HDD may have the configuration shown in the seventh diagram, and/or at least one DVD player may have the configuration shown in the eighth diagram. The HDD can be a mini HDD containing one or more discs of approximately 1.8 inches in diameter. Media player 1200 can be coupled to memory 1206, such as RAM, ROM, low processing burden non-volatile memory, such as flash memory and/or other suitable electronic data storage devices. The media player 1200 also supports connection to a WLAN via a WLAN network interface 1208. Other implementations are still considered plus the description above.
上面已經詳細說明一些具體實施例,並且可能還有許多修改。所公佈主張,包含本說明書內描述的功能操 作,可在電子電路、電腦硬體、韌體、軟體或這些的組合之中實施,像是本說明書內公佈的結構裝置及其結構同等品,包含潛在可操作來導致一或多資料處理設備執行所說明操作之程式(像是在電腦可讀取媒體內編碼的程式,其可為一記憶體裝置、一機器可讀取儲存基板或其他實體、機器可讀取媒體或這些之一或更多的組合)。Some specific embodiments have been described in detail above, and many modifications are possible. The claimed claims include the functional operations described in this manual. Can be implemented in electronic circuits, computer hardware, firmware, software, or a combination of these, such as the structural devices disclosed in this specification and their structural equivalents, including potentially operable to cause one or more data processing devices A program that performs the operations described (such as a program encoded in a computer readable medium, which may be a memory device, a machine readable storage substrate or other entity, machine readable medium, or one or more of these). More combinations).
「資料處理設備」涵括處理資料的所有設備、裝置和機器,包含可程式編輯處理器、電腦或多處理器或電腦的範例。除了硬體以外,設備可包含建立執行環境給電腦程式的程式碼,即是構成處理器韌體、一通訊協定堆疊、一資料庫管理系統、一作業系統或這些之一或多的組合之程式碼。"Data Processing Equipment" encompasses all equipment, devices and machines that process data, including examples of programmable editing processors, computers or multi-processors or computers. In addition to the hardware, the device may include a code for establishing an execution environment for the computer program, that is, a program that constitutes a processor firmware, a communication protocol stack, a database management system, an operating system, or a combination of one or more of these. code.
一程式(已知為一電腦程式、軟體、軟體應用程式、描述檔或程式碼)可用任何程式編輯語言形式撰寫,包含編譯或解譯語言或陳述式或程序語言,並且其可用任何形式佈署,包含成為一單機程式或成為一模組、組件、子常式或適合一計算環境內使用的其他單元。一程式並不需要對應至一檔案系統內的檔案。一程式可儲存在保有其他程式或資料的部分檔案內(例如一或多個儲存在標記語言文件內的描述檔)、在專屬於該程式的單一檔案內或在多個合作檔案內(例如儲存一或多個模組、子程式或部分程式碼的檔案)。一程式可佈署成為在一個地點或散佈在多個地點並利用通訊網路互連的電腦或多部電腦上執行。A program (known as a computer program, software, software application, description file or code) can be written in any programming language, including a compiled or interpreted language or a statement or programming language, and can be deployed in any form. , including becoming a stand-alone program or becoming a module, component, sub-routine or other unit suitable for use in a computing environment. A program does not need to correspond to a file in a file system. A program can be stored in a part of a file (such as one or more description files stored in a markup language file) that holds other programs or materials, in a single file that is specific to the program, or in multiple collaborative files (for example, storage) One or more modules, subprograms or partial code files). A program can be deployed on a computer or on multiple computers that are geographically dispersed or interconnected in multiple locations.
雖然本說明書內含許多細節,但不應該構成對於本申請專利範圍範疇的限制,而是屬於特定具體實施例的特色描述。本說明書內個別具體實施例範圍內的特定特 色也可在一單一具體實施例組合內實施。相反的,在一單一具體實施例範圍內說明的許多特色也可分散的多重組合或在任何合適的次組合內實施。再者,雖然上面以特定組合來說明特色並依此主張,不過來自所主張組合的一或多樣特色在某些情況下可組合實施,並且所主張組合可指向次組合或次組合的變化。The description contains many specifics, and should not be construed as limiting the scope of the invention. Specific features within the scope of individual embodiments within this specification Colors can also be implemented in a single embodiment combination. Conversely, many of the features that are described in the context of a single specific embodiment can also be practiced in the various combinations of the various embodiments. Moreover, while features have been described above in a particular combination and are claimed herein, one or more features from the claimed combination may be combined in some instances and the claimed combination may be directed to a sub-combination or sub-combination.
類似地,雖然用特定順序用圖式說明操作,不過並不應看待成需要以所顯示特定順序或依序來執行這些操作,也不應看待成需要執行所有說明的操作,而達成所要的結果。在特定環境中,多重工作與同時處理具有優點。再者,上述具體實施例內許多系統組件分開不應看待成在所有具體實施例內都需要分開。Similarly, although the operation is illustrated in a particular order, it should not be seen as requiring that the operations be performed in the particular order or sequence shown, or that all operations described are performed, and the desired result is achieved. . Multiple jobs and simultaneous processing have advantages in certain environments. Moreover, many of the system components in the above-described embodiments are not considered to be separate in all embodiments.
100‧‧‧記憶體陣列100‧‧‧ memory array
102‧‧‧分頁102‧‧‧page
104‧‧‧部分104‧‧‧Parts
106‧‧‧部分Section 106‧‧‧
108‧‧‧8位元深度108‧‧8 bit depth
110‧‧‧單節110‧‧‧ single section
112‧‧‧單一分頁112‧‧‧ single page
114‧‧‧第一部分114‧‧‧Part I
116‧‧‧第二部分116‧‧‧Part II
202‧‧‧區域202‧‧‧Area
204‧‧‧區域204‧‧‧Area
206‧‧‧區域206‧‧‧Area
208‧‧‧區域208‧‧‧ area
210‧‧‧區域210‧‧‧ Area
212‧‧‧區域212‧‧‧Area
214‧‧‧區域214‧‧‧Area
300‧‧‧固態磁碟機系統300‧‧‧Solid Disk System
302‧‧‧主機302‧‧‧Host
303‧‧‧匯流排303‧‧‧ busbar
304‧‧‧固態磁碟機304‧‧‧Solid Disk Drive
306a-306d‧‧‧快閃記憶體裝置306a-306d‧‧‧flash memory device
308‧‧‧固態控制器308‧‧‧Solid Controller
310‧‧‧主機介面310‧‧‧Host interface
312‧‧‧錯誤檢查碼模組312‧‧‧Error Check Code Module
314‧‧‧介面邏輯314‧‧‧Interface logic
316‧‧‧定序器316‧‧‧Sequencer
318‧‧‧格式化器318‧‧‧Formatter
323‧‧‧中央處理器單元323‧‧‧Central Processor Unit
324‧‧‧嵌入式韌體324‧‧‧ embedded firmware
326a-326d‧‧‧通道326a-326d‧‧‧ channel
328‧‧‧記憶體介面328‧‧‧ memory interface
330‧‧‧記憶體控制器330‧‧‧ memory controller
332‧‧‧可程式編輯計時器332‧‧‧Programmable editing timer
334‧‧‧第二可程式編輯計時器334‧‧‧Second programmable editing timer
336a-336d‧‧‧狀態暫存器336a-336d‧‧‧ state register
402‧‧‧讀取狀態指令402‧‧‧Read status command
404‧‧‧讀取狀態指令404‧‧‧Read status command
406‧‧‧讀取狀態指令406‧‧‧Read status command
500‧‧‧處理500‧‧‧Process
600‧‧‧處理600‧‧ ‧ treatment
700‧‧‧硬碟機700‧‧‧ Hard disk drive
702‧‧‧信號處理以及/或控制電路702‧‧‧Signal processing and / or control circuit
704‧‧‧磁性儲存媒體704‧‧‧Magnetic storage media
706‧‧‧有線或無線通訊鏈結706‧‧‧Wired or wireless communication link
708‧‧‧記憶體708‧‧‧ memory
800‧‧‧數位多功能光碟機800‧‧‧Digital versatile CD player
802‧‧‧信號處理以及/或控制電路802‧‧‧Signal processing and / or control circuits
804‧‧‧大量資料儲存裝置804‧‧‧Many data storage devices
806‧‧‧光學儲存媒體806‧‧‧Optical storage media
808‧‧‧記憶體808‧‧‧ memory
810‧‧‧有線或無線通訊鏈路810‧‧‧Wired or wireless communication link
900‧‧‧高傳真電視900‧‧‧High-definition television
902‧‧‧信號處理以及/或控制電路902‧‧‧Signal processing and / or control circuits
904‧‧‧顯示器904‧‧‧ display
906‧‧‧WLAN介面906‧‧‧WLAN interface
908‧‧‧記憶體908‧‧‧ memory
910‧‧‧大量資料儲存裝置910‧‧‧Many data storage devices
1000‧‧‧行動電話1000‧‧‧Mobile Phone
1002‧‧‧行動天線1002‧‧‧Mobile antenna
1004‧‧‧信號處理以及/或控制電路1004‧‧‧Signal processing and / or control circuits
1006‧‧‧大量資料儲存裝置1006‧‧‧Many data storage devices
1008‧‧‧記憶體1008‧‧‧ memory
1010‧‧‧WLAN介面1010‧‧‧WLAN interface
1012‧‧‧麥克風1012‧‧‧Microphone
1014‧‧‧聲音輸出1014‧‧‧Sound output
1016‧‧‧顯示器1016‧‧‧ display
1018‧‧‧輸入裝置1018‧‧‧ Input device
1100‧‧‧機上盒1100‧‧‧Set-top box
1102‧‧‧信號處理以及/或控制電路1102‧‧‧Signal processing and / or control circuits
1104‧‧‧大量資料儲存裝置1104‧‧‧Many data storage devices
1106‧‧‧記憶體1106‧‧‧ memory
1108‧‧‧WLAN介面1108‧‧‧WLAN interface
1110‧‧‧顯示器1110‧‧‧ display
1112‧‧‧來源1112‧‧‧Source
1200‧‧‧媒體播放機1200‧‧‧Media Player
1202‧‧‧信號處理以及/或控制電路1202‧‧‧Signal processing and / or control circuits
1204‧‧‧大量資料儲存裝置1204‧‧‧A large number of data storage devices
1206‧‧‧記憶體1206‧‧‧ memory
1208‧‧‧WLAN介面1208‧‧‧WLAN interface
1210‧‧‧聲音輸出1210‧‧‧Sound output
1212‧‧‧顯示器1212‧‧‧ display
1214‧‧‧使用者輸入1214‧‧‧User input
第一圖顯示範例記憶體陣列的方塊圖。The first figure shows a block diagram of an example memory array.
第二A圖顯示在一資料讀取操作期間與一範例NAND快閃介面內每一接腳相關聯之時序圖。Figure 2A shows a timing diagram associated with each pin within an exemplary NAND flash interface during a data read operation.
第二B圖顯示在一資料程式編輯操作期間與一NAND快閃介面內每一接腳相關聯之範例時序圖。The second B diagram shows an example timing diagram associated with each pin within a NAND flash interface during a data program editing operation.
第二C圖顯示在一單節抹除操作期間與一NAND快閃介面內每一接腳相關聯之範例時序圖。The second C diagram shows an example timing diagram associated with each pin within a NAND flash interface during a single erase operation.
第三圖顯示一範例固態磁碟機。The third figure shows an example solid state disk drive.
第四圖顯示關於一快閃記憶體裝置的備妥/忙碌輸出信號「R/B_」之範例初始等待時間。The fourth graph shows an example initial wait time for a ready/busy output signal "R/B_" for a flash memory device.
第五圖顯示發出一或多讀取狀態指令的範例處理。The fifth diagram shows an example process for issuing one or more read status instructions.
第六圖顯示根據一寫入循環時間和一讀取循環時間用於狀態輪詢之範例處理。The sixth graph shows an example process for status polling based on a write cycle time and a read cycle time.
第七圖至第十二圖顯示實施一硬碟機系統的許多範例電子系統。Figures 7 through 12 show many example electronic systems implementing a hard disk drive system.
300‧‧‧固態磁碟機系統300‧‧‧Solid Disk System
302‧‧‧主機302‧‧‧Host
303‧‧‧匯流排303‧‧‧ busbar
304‧‧‧固態磁碟機304‧‧‧Solid Disk Drive
306a-306d‧‧‧快閃記憶體裝置306a-306d‧‧‧flash memory device
308‧‧‧固態控制器308‧‧‧Solid Controller
310‧‧‧主機介面310‧‧‧Host interface
312‧‧‧錯誤檢查碼模組312‧‧‧Error Check Code Module
314‧‧‧介面邏輯314‧‧‧Interface logic
316‧‧‧定序器316‧‧‧Sequencer
318‧‧‧格式化器318‧‧‧Formatter
323‧‧‧中央處理器單元323‧‧‧Central Processor Unit
324‧‧‧嵌入式韌體324‧‧‧ embedded firmware
326a-326d‧‧‧通道326a-326d‧‧‧ channel
328‧‧‧記憶體介面328‧‧‧ memory interface
330‧‧‧記憶體控制器330‧‧‧ memory controller
332‧‧‧可程式編輯計時器332‧‧‧Programmable editing timer
334‧‧‧第二可程式編輯計時器334‧‧‧Second programmable editing timer
336a-336d‧‧‧狀態暫存器336a-336d‧‧‧ state register
Claims (14)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US97661607P | 2007-10-01 | 2007-10-01 | |
| US97662407P | 2007-10-01 | 2007-10-01 | |
| US12/241,000 US8438356B2 (en) | 2007-10-01 | 2008-09-29 | Flash memory controller |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200935436A TW200935436A (en) | 2009-08-16 |
| TWI500040B true TWI500040B (en) | 2015-09-11 |
Family
ID=40509677
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW097137662A TWI500040B (en) | 2007-10-01 | 2008-10-01 | Flash memory controller |
Country Status (3)
| Country | Link |
|---|---|
| US (3) | US8438356B2 (en) |
| TW (1) | TWI500040B (en) |
| WO (1) | WO2009046115A1 (en) |
Families Citing this family (65)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090172213A1 (en) * | 2007-12-31 | 2009-07-02 | Sowmiya Jayachandran | Command completion detection in a mass storage device |
| US8904082B1 (en) * | 2008-03-25 | 2014-12-02 | Cadence Design Systems, Inc. | Operation based polling in a memory system |
| US8762621B2 (en) | 2008-10-28 | 2014-06-24 | Micron Technology, Inc. | Logical unit operation |
| TW201017403A (en) * | 2008-10-28 | 2010-05-01 | Silicon Motion Inc | Access methods for memory devices and memory devices and machine readable medium thereof |
| US8825940B1 (en) | 2008-12-02 | 2014-09-02 | Siliconsystems, Inc. | Architecture for optimizing execution of storage access commands |
| US9176859B2 (en) * | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
| US8255615B1 (en) | 2009-01-08 | 2012-08-28 | Marvell International Ltd. | Flexible sequence design architecture for solid state memory controller |
| US10079048B2 (en) * | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
| US8291131B2 (en) * | 2009-07-06 | 2012-10-16 | Micron Technology, Inc. | Data transfer management |
| US20110102997A1 (en) * | 2009-11-02 | 2011-05-05 | Ocz Technology Group, Inc. | Mass storage device and method of accessing memory devices thereof |
| TWI413904B (en) * | 2010-03-03 | 2013-11-01 | Pixart Imaging Inc | Universal Serial Bus (USB) controller and its execution method |
| USRE49818E1 (en) * | 2010-05-13 | 2024-01-30 | Kioxia Corporation | Information processing method in a multi-level hierarchical memory system |
| EP2656216B1 (en) * | 2010-12-20 | 2018-12-19 | Marvell World Trade Ltd. | Device with descriptor scheduler and corresponding method and system |
| US20120167100A1 (en) * | 2010-12-23 | 2012-06-28 | Yan Li | Manual suspend and resume for non-volatile memory |
| KR101919990B1 (en) * | 2011-03-10 | 2018-11-19 | 삼성전자주식회사 | Data processing system and processing method for error correction code thereof |
| US8607003B2 (en) | 2011-07-15 | 2013-12-10 | International Business Machines Corporation | Memory access to a dual in-line memory module form factor flash memory |
| JP5524156B2 (en) * | 2011-09-15 | 2014-06-18 | 株式会社東芝 | Information processing apparatus and information processing method |
| US9336112B2 (en) * | 2012-06-19 | 2016-05-10 | Apple Inc. | Parallel status polling of multiple memory devices |
| US9582465B2 (en) | 2012-11-15 | 2017-02-28 | Elwha Llc | Flexible processors and flexible memory |
| US20140137119A1 (en) * | 2012-11-15 | 2014-05-15 | Elwha LLC, a limited liability corporation of the State of Delaware | Multi-core processing in memory |
| US9442854B2 (en) | 2012-11-15 | 2016-09-13 | Elwha Llc | Memory circuitry including computational circuitry for performing supplemental functions |
| US9335952B2 (en) * | 2013-03-01 | 2016-05-10 | Ocz Storage Solutions, Inc. | System and method for polling the status of memory devices |
| JP6160294B2 (en) * | 2013-06-24 | 2017-07-12 | 富士通株式会社 | Storage system, storage apparatus, and storage system control method |
| US9824004B2 (en) | 2013-10-04 | 2017-11-21 | Micron Technology, Inc. | Methods and apparatuses for requesting ready status information from a memory |
| TWI646537B (en) * | 2013-12-11 | 2019-01-01 | 美商愛德斯托科技有限公司 | Serial memory device alert of an external host to completion of an internally self-timed operation |
| US9852090B2 (en) * | 2013-12-11 | 2017-12-26 | Adesto Technologies Corporation | Serial memory device alert of an external host to completion of an internally self-timed operation |
| US10108372B2 (en) | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
| US9933980B2 (en) | 2014-02-24 | 2018-04-03 | Toshiba Memory Corporation | NAND raid controller for connection between an SSD controller and multiple non-volatile storage units |
| US20150261473A1 (en) * | 2014-03-11 | 2015-09-17 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
| KR102149768B1 (en) | 2014-04-29 | 2020-08-31 | 삼성전자주식회사 | Nonvolatile memory system |
| WO2015176040A1 (en) | 2014-05-15 | 2015-11-19 | Adesto Technologies Corporation | Memory devices and methods having instruction acknowledgement |
| US9922718B2 (en) | 2014-05-22 | 2018-03-20 | Seagate Technology Llc | Flash command that reports a count of cell program failures |
| KR102251810B1 (en) * | 2014-09-30 | 2021-05-13 | 삼성전자주식회사 | Memory Device, Memory System and Control Method for Memory Device |
| US9535607B2 (en) | 2015-02-12 | 2017-01-03 | SK Hynix Inc. | Semiconductor system performing status read for semiconductor device and operating method thereof |
| KR20170007958A (en) * | 2015-07-13 | 2017-01-23 | 에스케이하이닉스 주식회사 | Memory system |
| JP2017027479A (en) * | 2015-07-24 | 2017-02-02 | 富士通株式会社 | Data reading method and information processing system |
| US10073653B2 (en) | 2015-12-01 | 2018-09-11 | Alson Technology Limited | Solid state disk |
| US20170153961A1 (en) * | 2015-12-01 | 2017-06-01 | Avexir Technologies Corporation | Solid state disk |
| JP6538597B2 (en) * | 2016-03-14 | 2019-07-03 | 東芝メモリ株式会社 | Storage device |
| US10539989B1 (en) | 2016-03-15 | 2020-01-21 | Adesto Technologies Corporation | Memory device alert of completion of internally self-timed power-up and reset operations |
| US10649672B1 (en) * | 2016-03-31 | 2020-05-12 | EMC IP Holding Company LLC | Offloading device maintenance to an external processor in low-latency, non-volatile memory |
| US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
| CN107783727B (en) * | 2016-08-31 | 2022-01-14 | 华为技术有限公司 | Access method, device and system of memory device |
| JP2018041154A (en) * | 2016-09-05 | 2018-03-15 | 東芝メモリ株式会社 | Storage system and processing method |
| US10514854B2 (en) * | 2016-11-04 | 2019-12-24 | Microsoft Technology Licensing, Llc | Conditional authorization for isolated collections |
| US10924467B2 (en) | 2016-11-04 | 2021-02-16 | Microsoft Technology Licensing, Llc | Delegated authorization for isolated collections |
| KR102526608B1 (en) * | 2018-02-27 | 2023-05-02 | 에스케이하이닉스 주식회사 | Electronic device and operating method thereof |
| US10528269B2 (en) * | 2018-03-02 | 2020-01-07 | Western Digital Technologies, Inc. | Advanced flash scan algorithm |
| CN108595124A (en) * | 2018-04-27 | 2018-09-28 | 江苏华存电子科技有限公司 | A kind of management method promoting the parallel write-in school energy of more flash memories |
| US11366753B2 (en) * | 2018-07-31 | 2022-06-21 | Marvell Asia Pte Ltd | Controlling performance of a solid state drive |
| JP7159036B2 (en) | 2018-12-25 | 2022-10-24 | キオクシア株式会社 | memory device |
| US10949115B2 (en) | 2019-06-24 | 2021-03-16 | Western Digital Technologies, Inc. | Flash memory polling |
| JP7458740B2 (en) | 2019-10-21 | 2024-04-01 | キオクシア株式会社 | Memory system and control method |
| CN111078146B (en) * | 2019-12-13 | 2023-11-14 | 合肥兆芯电子有限公司 | Memory management method, memory storage device and memory control circuit unit |
| US11062761B1 (en) * | 2020-01-13 | 2021-07-13 | Infineon Technologies Ag | Digital address compensation for memory devices |
| JP2021111259A (en) | 2020-01-15 | 2021-08-02 | キオクシア株式会社 | Memory system and control method thereof |
| US11150841B2 (en) * | 2020-02-10 | 2021-10-19 | Western Digital Technologies, Inc. | NAND dropped command detection and recovery |
| JP2021174566A (en) * | 2020-04-27 | 2021-11-01 | キオクシア株式会社 | Semiconductor storage device |
| US11354041B2 (en) * | 2020-06-12 | 2022-06-07 | Western Digital Technologies, Inc. | Read latency reduction through command and polling overhead avoidance |
| US11775185B2 (en) * | 2020-09-17 | 2023-10-03 | Micron Technology, Inc. | Power budget arbitration for multiple concurrent access operations in a memory device |
| JP2023023980A (en) | 2021-08-06 | 2023-02-16 | キオクシア株式会社 | memory system |
| US11836384B2 (en) | 2022-03-10 | 2023-12-05 | Western Digital Technologies, Inc. | Automatic prediction timers adaptation |
| CN114780032A (en) * | 2022-04-22 | 2022-07-22 | 山东云海国创云计算装备产业创新中心有限公司 | A data reading method, device, equipment and storage medium |
| US12112165B2 (en) * | 2022-09-29 | 2024-10-08 | Macronix International Co., Ltd. | Managing status information of logic units |
| US12386738B1 (en) | 2024-03-15 | 2025-08-12 | Dell Products L.P. | Providing endurance to solid state device storage |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5892981A (en) * | 1996-10-10 | 1999-04-06 | Hewlett-Packard Company | Memory system and device |
| US5894485A (en) * | 1997-03-31 | 1999-04-13 | Emc Corporation | Disk array write protection at the sub-unit level |
| US6215703B1 (en) * | 1998-12-04 | 2001-04-10 | Intel Corporation | In order queue inactivity timer to improve DRAM arbiter operation |
| JP2003256273A (en) * | 2002-02-26 | 2003-09-10 | Nec Corp | Flash memory access circuit and flash memory access method |
| US6859856B2 (en) * | 2001-10-23 | 2005-02-22 | Flex P Industries Sdn. Bhd | Method and system for a compact flash memory controller |
| US20070174573A1 (en) * | 2002-02-07 | 2007-07-26 | Shigemasa Shiota | Nonvolatile memory system |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6065093A (en) * | 1998-05-15 | 2000-05-16 | International Business Machines Corporation | High bandwidth narrow I/O memory device with command stacking |
-
2008
- 2008-09-29 US US12/241,000 patent/US8438356B2/en active Active
- 2008-10-01 TW TW097137662A patent/TWI500040B/en not_active IP Right Cessation
- 2008-10-01 WO PCT/US2008/078462 patent/WO2009046115A1/en not_active Ceased
-
2013
- 2013-04-30 US US13/874,218 patent/US8645656B2/en active Active
-
2014
- 2014-01-07 US US14/149,733 patent/US9218284B2/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5892981A (en) * | 1996-10-10 | 1999-04-06 | Hewlett-Packard Company | Memory system and device |
| US5894485A (en) * | 1997-03-31 | 1999-04-13 | Emc Corporation | Disk array write protection at the sub-unit level |
| US6215703B1 (en) * | 1998-12-04 | 2001-04-10 | Intel Corporation | In order queue inactivity timer to improve DRAM arbiter operation |
| US6859856B2 (en) * | 2001-10-23 | 2005-02-22 | Flex P Industries Sdn. Bhd | Method and system for a compact flash memory controller |
| US20070174573A1 (en) * | 2002-02-07 | 2007-07-26 | Shigemasa Shiota | Nonvolatile memory system |
| JP2003256273A (en) * | 2002-02-26 | 2003-09-10 | Nec Corp | Flash memory access circuit and flash memory access method |
Also Published As
| Publication number | Publication date |
|---|---|
| US20140122786A1 (en) | 2014-05-01 |
| US20130290614A1 (en) | 2013-10-31 |
| US8645656B2 (en) | 2014-02-04 |
| US20090089492A1 (en) | 2009-04-02 |
| US9218284B2 (en) | 2015-12-22 |
| TW200935436A (en) | 2009-08-16 |
| US8438356B2 (en) | 2013-05-07 |
| WO2009046115A1 (en) | 2009-04-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI500040B (en) | Flash memory controller | |
| JP5360214B2 (en) | Data programming method for multi-plane flash memory, device and system using the same | |
| CN103971739B (en) | Storage system and its programmed method including non-volatile memory device | |
| US7243185B2 (en) | Flash memory system with a high-speed flash controller | |
| CN103137197B (en) | Semiconductor storage unit and its read method and data storage device | |
| US7916557B2 (en) | NAND interface | |
| JP2009510656A (en) | Multiple independent serial link memories | |
| US8869004B2 (en) | Memory storage device, memory controller thereof, and data transmission method thereof | |
| CN110413446B (en) | Data storage device and method of operation thereof | |
| CN113220220B (en) | Controller, operation method of controller and storage device comprising controller | |
| US11422708B2 (en) | Memory interface, data storage device including the same and operating method thereof | |
| CN110196823A (en) | Electronic device and its operating method | |
| CN109992202A (en) | Data storage device, method of operating the same, and data processing system including the same | |
| US12423251B2 (en) | Memory device, method for controlling memory device and memory system | |
| US20190220220A1 (en) | Data storage device, operating method thereof and nonvolatile memory device | |
| US10127984B2 (en) | Method for operating storage device determining wordlines for writing user data depending on reuse period | |
| US12315573B2 (en) | Method and apparatus to reduce power consumption of page buffer circuitry in a non-volatile memory device | |
| CN118245402A (en) | Bus interleaving protocol to improve the efficiency of multiple logical unit (LUN) operations | |
| US20250284404A1 (en) | Memory system and control method thereof, and electronic apparatus | |
| US20250298740A1 (en) | Memory device, operation method thereof, and memory system | |
| US20250149074A1 (en) | Memory device, control logic circuit, and method of operating thereof | |
| US20240152295A1 (en) | Peak power management with dynamic data path operation current budget management | |
| CN120636490A (en) | Memory operating method, memory, storage system and electronic system | |
| CN121148448A (en) | Memory device, nonvolatile memory device, and method of operating memory controller | |
| CN120540575A (en) | Storage system operation method, controller, storage system and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |