TW202319927A - 記憶體系統及控制方法 - Google Patents
記憶體系統及控制方法 Download PDFInfo
- Publication number
- TW202319927A TW202319927A TW111115353A TW111115353A TW202319927A TW 202319927 A TW202319927 A TW 202319927A TW 111115353 A TW111115353 A TW 111115353A TW 111115353 A TW111115353 A TW 111115353A TW 202319927 A TW202319927 A TW 202319927A
- Authority
- TW
- Taiwan
- Prior art keywords
- aforementioned
- completion
- command
- host
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Bus Control (AREA)
- Programmable Controllers (AREA)
Abstract
實現一種能夠提升主機之I/O存取性能的記憶體系統以及控制方法。
記憶體系統之控制器,當在從代表第1I/O指令之完成的第1完成回應之對於主機之送訊起直到開始對於主機而送訊至少代表存在有應處理之第1完成回應一事的第1插斷為止的第1期間內,而被檢測出有與第2I/O指令相對應之第2程式化動作或者是第2感測動作之完成的情況時,係並不將第1插斷對於主機作送訊地,而等待與第2I/O指令相對應之第2資料寫入動作或者是第2資料讀出動作之完成。因應於檢測出了第2資料寫入動作或者是第2資料讀出動作之完成一事,控制器,係將代表第2I/O指令之完成的第2完成回應對於主機作送訊,並在將第2完成回應對於主機作了送訊之後,將第1插斷對於主機作送訊。
Description
本發明之實施形態,係有關於具備有非揮發性記憶體之記憶體系統及控制方法。
[關連申請案]
本申請案,係享受以日本專利申請2021-184923號(申請日:2021年11月12日)作為基礎申請之優先權。本申請案,係藉由參照此基礎申請案,而包含基礎申請案之所有的內容。
近年來,具備有非揮發性記憶體之記憶體系統係廣泛普及。作為此種記憶體系統之其中一者,具備有NAND型快閃記憶體之固態硬碟(SSD)係為周知。
記憶體系統之控制器,係對於從主機所收訊Input/Output(I/O)指令進行處理。若是I/O指令之處理完成,則控制器,係對於主機而送訊I/O指令之完成回應。之後,為了對於主機而通知「係存在有主機所應處理之完成回應」一事,控制器係對於主機送訊插斷(Interrupt)。
在NVM Express
TM(NVMe
TM)規格中,係規定有插斷合併(interrupt coalescing)。插斷合併,係為藉由使由控制器所送訊至主機處之插斷的次數減少,來減輕為了進行插斷以及完成回應之處理所需的主機之負擔減輕之功能。
然而,例如,若是進行像是「在完成回應之每特定次數之送訊時而對於主機送訊一次的插斷」一般之靜態控制,則依存於在控制器處之I/O指令之處理狀況,係會有導致主機之I/O存取性能降低的情形。
故而,係需要實現一種能夠提升主機之I/O存取性能之新穎的插斷之控制。
本發明之其中一個實施形態所欲解決之課題,係在於提供一種能夠使主機之I/O存取性能提升的記憶體系統以及控制方法。
若依據其中1個實施形態,則記憶體系統,係能夠與主機作連接。前述記憶體系統,係具備有:非揮發性記憶體,係包含有頁面緩衝和記憶體胞陣列;和控制器,係被與前述非揮發性記憶體作電性連接。前述控制器,係構成為實行與從前述主機所收訊的複數之I/O指令分別相對應的複數之資料寫入動作或資料讀出動作。前述複數之資料寫入動作之各者,係至少包含有進行從前述控制器而至前述頁面緩衝的寫入資料之傳輸之資料送入(data in)動作、和進行從前述頁面緩衝而至前述記憶體胞陣列之前述寫入資料的程式化之程式化動作。前述複數之資料讀出動作之各者,係至少包含有進行從前述記憶體胞陣列而至前述頁面緩衝之讀出資料的讀出之感測(sense)動作、和進行從前述頁面緩衝而至前述控制器的前述讀出資料之傳輸之資料送出(data out)動作。前述控制器,係因應於檢測出了與前述複數之I/O指令之中的第1I/O指令相對應之第1資料寫入動作或者是第1資料讀出動作之完成一事,而將代表前述第1I/O指令之完成的第1完成回應對於前述主機作送訊。當在從前述第1完成回應之對於前述主機之送訊起直到開始對於前述主機而送訊至少代表存在有應處理之前述第1完成回應一事的第1插斷為止的第1期間內,而被檢測出有與接續於前述第1I/O指令之第2I/O指令相對應之第2程式化動作或者是第2感測動作之完成的情況時,前述控制器,係並不將前述第1插斷對於前述主機作送訊地,而等待與前述第2I/O指令相對應之第2資料寫入動作或者是第2資料讀出動作之完成。因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,前述控制器,係將代表前述第2I/O指令之完成的第2完成回應對於前述主機作送訊,並在將前述第2完成回應對於前述主機作了送訊之後,將前述第1插斷對於前述主機作送訊。當在前述第1期間內而並未被檢測出有前述第2程式化動作或者是前述第2感測動作之完成的情況時,前述控制器,係將前述第1插斷對於前述主機作送訊,並因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將前述第2完成回應對於前述主機作送訊。
【圖示簡單說明】
[圖1]係為對於包含有實施形態的記憶體系統之資訊處理系統之構成例作展示之區塊圖。
[圖2]係為對於在實施形態之記憶體系統處所被實行的指令處理之程序作展示之圖。
[圖3]係為對於在比較例中所被實行的對於1個指令進行處理之動作與對於2個指令進行處理之動作作展示之序列圖。
[圖4]係為對於在比較例中所被實行的對於2個指令進行處理之動作與將2個指令之插斷作合併的動作作展示之序列圖。
[圖5]係為對於在實施形態之記憶體系統處所被實行的包含有將對於2個讀取指令的插斷作合併之處理之指令處理的程序作展示之序列圖。
[圖6]係為對於在實施形態之記憶體系統處所被實行的並不將對於2個讀取指令的插斷作合併之指令處理的程序作展示之序列圖。
[圖7]係為對於在實施形態之記憶體系統處所被實行的包含有將插斷合併作中斷之處理之指令處理的程序作展示之序列圖。
[圖8]係為對於在實施形態之記憶體系統處所被實行的包含有將對於2個寫入指令的插斷作合併之處理之指令處理的程序作展示之序列圖。
[圖9]係為對於在實施形態之記憶體系統處所被實行的並不將對於2個寫入指令的插斷作合併之指令處理的程序作展示之序列圖。
[圖10]係為對於在實施形態之記憶體系統處所被實行的將對於3個寫入指令的插斷作合併並進行處理之動作作展示之序列圖。
[圖11]係為對於在實施形態之記憶體系統處所被實行的包含有對於能夠「並不送訊插斷地而對於主機送訊完成回應」之次數作限制之處理之指令處理的程序作展示之序列圖。
[圖12]係為對於在實施形態之記憶體系統處所被實行的包含有對於能夠「並不送訊插斷地而對於主機送訊完成回應」之時間作限制之處理之指令處理的程序作展示之序列圖。
[圖13]係為對於在實施形態之記憶體系統處所被實行的對於2個指令進行處理之程序作展示之流程圖。
[圖14]係為對於在實施形態之記憶體系統處所被實行的將插斷合併作結束之處理之程序作展示之流程圖。
[圖15]係為對於在實施形態之記憶體系統處所被實行的將插斷合併作結束之處理之其他程序作展示之流程圖。
以下,參考圖面,針對實施形態作說明。
以下,係針對使實施形態之記憶體系統作為SSD而被實現的情況作考慮。圖1,係為對於包含有實施形態的記憶體系統之資訊處理系統1之構成例作展示之區塊圖。資訊處理系統1,係包含有主機(主機裝置)2與SSD3。
主機2,係為對於SSD3進行存取的資訊處理裝置(計算機裝置)。主機2,例如,係為個人電腦、伺服器電腦或者是攜帶終端。
SSD3,係為能夠與主機2作連接之儲存裝置。SSD3與主機2之間之通訊,係透過匯流排7而被實行。
匯流排7,係為將主機2與SSD3作連接之傳輸路徑。匯流排7,例如係為PCI express
TM(PCIe
TM)匯流排。PCIe匯流排,係為全雙重傳輸路徑。全雙重傳輸路徑,係包含有從主機2而對於SSD3送訊資料之傳輸路徑與從SSD3而對於主機2送訊資料之傳輸路徑的雙方。
作為用以將主機2與SSD3作連接的邏輯介面之規格,例如,係可使用NVMe規格。在NVMe規格之介面中,係使用包含有至少1個的提交佇列(SQ, Submission Queue)和被與此至少1個的提交佇列(SQ)相互附加有關連之完成佇列(CQ,Completion Queue)的對(pair)之佇列,來進行主機2與SSD3之間之通訊。此對之佇列,係被稱作提交佇列/完成佇列對(SQ/CQ對)。
提交佇列(SQ),係為為了對於SSD3發行指令所使用的佇列。完成佇列(CQ),係為為了從SSD3而收訊代表指令之完成的完成回應所使用的佇列。完成回應,係包含有代表完成了的指令之狀態之資訊。完成回應,係亦被稱作「指令完成」或者是「指令完成通知」。
接著,針對主機2之構成作說明。主機2,係包含有處理器101和記憶體102。
處理器101,例如係為中央處理單元(central processing unit, CPU)。處理器101,係實行從SSD3或者是被與主機2作連接之其他之儲存裝置而被載入至記憶體102中的軟體(主機軟體)。在主機軟體中,係包含有作業系統、檔案系統、應用程式等。
記憶體102,例如係為動態隨機存取記憶體(DRAM)。記憶體102之記憶區域的一部分,係為了儲存SQ/CQ對而被使用。
在主機2與SSD3之間之通訊中,係使用SQ/CQ對,來進行從主機2而至SSD3之指令之發行以及從SSD3而至主機2之完成回應之送訊。主機2與SSD3之間之指令、寫入資料(write data)、讀出資料(read data)、完成回應之傳輸,係透過匯流排7而被實行。
接著,針對SSD3之內部構成作說明。SSD3,係包含有控制器4、和非揮發性記憶體5。非揮發性記憶體5,例如係為NAND型快閃記憶體。以下,係將非揮發性記憶體5稱作NAND型快閃記憶體5。又,SSD3,係亦可更進而包含有隨機存取記憶體、例如動態隨機存取記憶體(DRAM)6。
控制器4,係為對於NAND型快閃記憶體5進行控制的記憶體控制器。控制器4,例如係為如同System-on-a-chip(SoC)一般之控制電路。控制器4之各部之功能,係可藉由專用硬體、實行程式之處理器、或者是此些之組合,來實現之。控制器4,係被與NAND型快閃記憶體5作電性連接。作為將控制器4與NAND型快閃記憶體5作連接之物理介面,例如,係使用有Toggle NAND快閃介面或開放NAND快閃介面(ONFI)。
控制器4,係構成為藉由對於從主機2所收訊的I/O指令進行處理,來實行針對NAND型快閃記憶體5之資料讀出動作或資料寫入動作。I/O指令,例如係為讀取指令或寫入指令。讀取指令,係為用以從NAND型快閃記憶體5而將資料讀出的指令。寫入指令,係為用以將資料寫入至NAND型快閃記憶體5中之指令。
NAND型快閃記憶體5,係為非揮發性記憶體。NAND型快閃記憶體5,係包含有記憶體胞陣列51和頁面緩衝52。記憶體胞陣列51,係包含有被配置為矩陣狀之複數之記憶體胞。NAND型快閃記憶體5,係可為2維構造之快閃記憶體,亦可為3維構造之快閃記憶體。
NAND型快閃記憶體5之記憶體胞陣列51,係包含有複數之區塊BLK0~BLKx-1。區塊BLK0~BLKx-1之各者,係包含複數之頁面(於此係為頁面P0~Py-1)。各頁面,係包含被與同一字元線作了連接的複數之記憶體胞。區塊BLK0~BLKx-1之各者,係身為將資料刪除的資料刪除動作之單位。頁面P0~Py-1之各者,係身為後述之程式化動作以及感測動作之單位。
頁面緩衝52,例如係藉由靜態RAM(SRAM)而被構成。頁面緩衝52,係將在控制器4與NAND型快閃記憶體5之間而被作傳輸之資料暫時性地作儲存。
在進行資料寫入動作時,從控制器4所收訊了的資料,係暫時性地被儲存在頁面緩衝52中,之後,被程式化至記憶體胞陣列51中。將「將從控制器4所收訊了的資料暫時性地儲存在頁面緩衝52中」之動作,稱作資料送入(data in)動作。又,將「將被暫時性地儲存在頁面緩衝52中之資料程式化至記憶體胞陣列51中」之動作,稱作程式化(program)動作。
在進行資料讀出動作時,從記憶體胞陣列51所讀出了的資料,係暫時性地被儲存在頁面緩衝52中,之後,被輸出至控制器4處。將「將從記憶體胞陣列51所讀出了的資料暫時性地儲存在頁面緩衝52中」之動作,稱作感測(sense)動作。又,將「將被暫時性地儲存在頁面緩衝52中之資料對於控制器4作輸出」之動作,稱作資料送出(data out)動作。
資料送入動作以及資料送出動作之各者,係為在控制器4與NAND型快閃記憶體5之間而將資料作傳輸之動作。程式化動作以及感測動作之各者,係為並不伴隨著在控制器4與NAND型快閃記憶體5之間之資料之傳輸地而伴隨有NAND型快閃記憶體5內之資料傳輸之動作。故而,對於NAND型快閃記憶體5所被實行的各I/O動作(資料寫入動作、資料讀出動作),係至少包含有「在控制器4與NAND型快閃記憶體5之間而將資料作傳輸之動作」和「並不伴隨著在控制器4與NAND型快閃記憶體5之間之資料之傳輸地而伴隨有NAND型快閃記憶體5內之資料傳輸之動作」。
DRAM6,係為揮發性記憶體。DRAM6之記憶區域之一部分,例如,係為了記憶邏輯物理位址轉換表(L2P表)31而被作使用。L2P表31,係儲存代表「邏輯位址之各者與NAND型快閃記憶體5之物理位址之各者之間的映射」之映射資訊。
接著,針對控制器4之內部構成進行說明。控制器4,係包含有主機介面(I/F)11、和CPU12、和直接記憶體存取控制器(DMAC)13、和靜態RAM(SRAM)14、和NAND介面(NAND I/F)15、和ECC(Error Correction Code)編碼/解碼部16、以及DRAM介面(DRAM I/F)17。此些之主機介面11、CPU12、DMAC13、SRAM14、NAND介面15、ECC編碼/解碼部16、DRAM介面17,係經由匯流排10而被相互作連接。
控制器4之構成要素之中的對於與主機2之間之通訊作控制的構成要素,係被稱作前端(front end, FE)。前端(FE),係包含有主機介面11。
又,控制器4之構成要素之中的對於與NAND型快閃記憶體5之間之通訊作控制的構成要素,係被稱作後端(back end, BE)。後端(BE),係包含有NAND介面15、和ECC編碼/解碼部16。
主機介面11,係為實行與主機2之間之通訊的主機介面電路。主機介面11,例如,係為PCIe控制器。或者是,當SSD3係為將網路介面控制器作內藏之構成的情況時,主機介面11,係亦可作為網路介面控制器之一部分而被實現。
主機介面11,係包含有仲裁(arbitration)機構。此仲裁機構,係為從主機2之複數之提交佇列而選擇指令所應被提取(fetch)之提交佇列的機構。仲裁機構,例如,係為循環(Round-Robin)仲裁機構、或者是加權循環(weighted Round-Robin)仲裁機構。
主機介面11,係針對各提交佇列(SQ)之每一者,而分別對於提交佇列標尾指標(SQTP)與提交佇列標頭指標(SQHP)作管理。進而,主機介面11,係針對各完成佇列(CQ)之每一者,而分別對於完成佇列標尾指標(CQTP)與完成佇列標頭指標(CQHP)作管理。
CPU12,係為處理器。CPU12,係對於主機介面11、DMAC13、SRAM14、NAND介面15、ECC編碼/解碼部16以及DRAM介面17進行控制。CPU12,係將被儲存於NAND型快閃記憶體5或者是未圖示之ROM中的控制程式(韌體)載入至SRAM14,之後藉由實行此韌體來進行各種之處理。另外,韌體,係亦可被載入至DRAM6上。
CPU12,係作為快閃記憶體轉換層(Flash Translation Layer, FTL),而實行被記憶在NAND型快閃記憶體5中之資料之管理以及在NAND型快閃記憶體5中所包含的區塊之管理。資料之管理,係包含有「代表邏輯位址之各者與物理位址之各者之間的對應關係之映射資訊」之管理。邏輯位址,係為為了對於SSD3進行存取而被主機2所使用的位址。邏輯位址,例如係為LBA(邏輯區塊位址,logical block address)。物理位址,係為代表在NAND型快閃記憶體5中所包含之物理性之記憶位置的位址。CPU12,係使用L2P表31,來對於邏輯位址之各者與物理位址之各者之間的映射作管理。在NAND型快閃記憶體5中所包含之區塊之管理,係包含有在NAND型快閃記憶體5中所包含之不良區塊(損壞區塊)之管理、損耗平均(wear leveling)、垃圾回收(garbage collection)。
DMAC13,係為實行直接記憶體存取之電路。DMAC15,係實行在主機2之記憶體102與SRAM14或者是DARM6之間的資料傳輸。
SRAM14,係為揮發性記憶體。SRAM14之記憶區域之一部分,例如,係被作為內部緩衝161來使用。內部緩衝161,係為將應在主機2與控制器4之間而被作傳輸之資料暫時性地作記憶之記憶區域。另外,係亦可使DRAM6之記憶區域之一部分被作為內部緩衝161來使用。
NAND介面15,係為對於NAND型快閃記憶體5作控制之電路。當NAND型快閃記憶體5係由複數之NAND型快閃記憶體晶粒所構成的情況時,NAND介面15,係亦可經由複數之通道(Ch)而與此些之NAND型快閃記憶體晶粒之各者作連接。
ECC編碼/解碼部16,在將資料對於NAND型快閃記憶體5作寫入時,係藉由將應寫入之資料作編碼,來對於此資料而將錯誤訂正碼(ECC)作為冗餘碼而作附加。在從NAND型快閃記憶體5而使資料被讀取時,ECC編碼/解碼部16,係使用被附加於被讀取了的資料處之ECC,來進行用以進行此資料之錯誤訂正的ECC解碼處理。
ECC編碼/解碼部16,係能夠實行錯誤訂正能力互為相異的複數等級之解碼處理。例如,複數等級之解碼處理,係亦可包含有使用某一錯誤訂正演算法之第1等級解碼處理、和使用其他之錯誤訂正演算法並且具有較第1等級解碼處理而更高的錯誤訂正能力之第2等級解碼處理、和使用又一其他之錯誤訂正演算法並且具有較第2等級解碼處理而更高的錯誤訂正能力之第3等級解碼處理。首先,針對讀取資料,第1等級解碼處理係被實行。在無法藉由第1等級解碼處理而將讀取資料之錯誤作訂正的情況時,第2等級解碼處理係被實行。在無法藉由第2等級解碼處理而將讀取資料之錯誤作訂正的情況時,第3等級解碼處理係被實行。
DRAM介面17,係為對於DRAM6作控制之電路。
接著,針對CPU12之功能構成作說明。CPU12,係包含有指令提取部121、指令處理部122以及插斷合併部123。指令提取部121、指令處理部122以及插斷合併部123之各者的一部分或全部,係亦可藉由控制器4內之專用硬體而被實現。例如,指令提取部121,係亦可藉由主機介面11而被實現。又,指令處理部122以及插斷合併部123之各者,係亦可藉由主機介面11而被實現。
指令提取部121,係經由主機介面11,而從主機2之提交佇列(SQ)來分別提取I/O指令。藉由此,係能夠從主機2而收訊複數之I/O指令。
指令處理部122,係對於NAND型快閃記憶體5,而下達「與從主機2所收訊的複數之I/O指令分別相互對應的複數之資料讀出動作或者是資料寫入動作的實行」之指示。針對NAND型快閃記憶體5之資料讀出動作或資料寫入動作的指示,係經由NAND介面15而被送訊至NAND型快閃記憶體5處。
又,指令處理部122,係將代表I/O指令之完成的完成回應,經由主機介面11而送訊至主機2處。於此情況,指令處理部122,係將完成回應,儲存在被與此I/O指令所被作提取的提交佇列(SQ)相互附加有關連性之完成佇列(CQ)中。
插斷合併部123,係實行將代表「應被處理之完成回應係存在於完成佇列(CQ)中」一事之數個的插斷作合併的控制。插斷合併部123,係與NAND介面15共同地,而對於在NAND型快閃記憶體5處所被實行的複數之資料寫入動作或資料讀出動作之各者的進度狀況作管理。又,插斷合併部123,係基於複數之資料寫入動作或資料讀出動作之各者的進度狀況,來對於插斷之合併作適應性的控制。
接著,針對I/O指令之處理的程序作說明。圖2,係為對於在實施形態之記憶體系統處所被實行的指令處理之程序作展示之圖。在圖2中,對於從「藉由主機2而使指令被發行」起直到「與此指令相對應之完成回應藉由主機2而被作處理」為止的程序作展示。
步驟1:
主機2,係將應對於SSD3作送訊之新的1個以上的指令,儲存在提交佇列(SQ)之1個以上的空閒SQ槽中。此些之1個以上之新的指令,係被儲存在從藉由提交佇列標尾指標(SQTP)之現在之值所展示之槽而開始之1個以上的空閒SQ槽中。被儲存在提交佇列(SQ)中之新的指令,係可為寫入指令,亦可為讀取指令,亦可為其他之指令。在圖2中,將被儲存於提交佇列(SQ)中之各指令,標記為「CMD」。
步驟2:
為了將「在提交佇列(SQ)中被儲存有新的1個以上的指令」一事對於SSD3之控制器4作通知,主機2,係對於與此提交佇列(SQ)相對應之SSD3內之提交佇列標尾門鈴暫存器進行寫入存取,而將與此提交佇列(SQ)相對應之提交佇列標尾指標(SQTP)之值作更新。提交佇列標尾指標(SQTP)之值,係被作與被儲存於提交佇列(SQ)中之新的指令之數量相對應之量的增數。此種提交佇列標尾指標(SQTP)之更新,係成為使控制器4開始被儲存於提交佇列(SQ)中之各指令之各別的處理之觸發(trigger)。
步驟3:
控制器4,係能夠根據提交佇列標尾指標(SQTP)之新的值與提交佇列標頭指標(SQHP)之值之間的差分,來辨識出被儲存在提交佇列(SQ)中之新的指令之數量。控制器4,係從提交佇列(SQ)而提取1個以上的任意之數量之指令。被作了提取之各指令,係被暫時性地儲存於控制器4內之內部緩衝161中。
步驟4:
控制器4,係以會使與此提交佇列(SQ)相對應之提交佇列標頭指標(SQHP)之值作與在步驟3處所提取了的指令之數量相對應之量之增加的方式,來將此提交佇列標頭指標(SQHP)之值作更新。
步驟5:
控制器4,係實行所提取了的各指令。此些之指令之被實行的順序,係並不被作限制,此些之指令,係亦能夠以與此些之指令所被提取的順序相異之順序來實行。在實行各指令之處理中,控制器4,係因應於需要,而進行從主機2之記憶體102而至控制器4之內部緩衝161之資料之傳輸或者是從內部緩衝161而至主機2之記憶體102之資料之傳輸。
步驟6:
若是某一指令之實行結束,則控制器4,首先,係對於與「被與被提取了此完成了的指令之提交佇列(SQ)相互附加有關連之完成佇列(CQ)」相對應的完成佇列標尾指標(CQTP)作更新,並使此完成佇列標尾指標(CQTP)之值作「1」的增加。
步驟7:
控制器4,係將對於此完成了的指令之狀態作展示之新的完成回應,儲存在此完成佇列(CQ)之下一個的空閒CQ槽中。在圖2中,係將被儲存於完成佇列(CQ)中之各個的完成回應標記為「CPL」。
步驟8:
控制器4,係將插斷對於主機2作送訊。控制器4,係將包含有「與在步驟7處而被儲存有完成回應的完成佇列(CQ)相對應之插斷向量」的插斷對於主機2作送訊,並將「新的完成回應被儲存至了完成佇列(CQ)中」一事對於主機2作通知。
步驟9:
主機2,係從藉由完成佇列標頭指標(CQHP)之現在之值而被展示的CQ槽,而取得完成回應,並對於所取得了的完成回應進行處理。
步驟10:
主機2,係對於與此完成佇列(CQ)相對應之SSD3內之完成佇列標頭門鈴暫存器進行寫入存取,而將完成佇列標頭指標(CQHP)之值作更新。完成佇列標頭指標(CQHP)之值,係被作與在步驟9處而被作了處理的完成回應之數量相對應之量的增數。
接著,針對指令處理的序列作說明。在本實施形態之指令處理的序列之說明之前,首先,針對比較例之指令處理之序列作說明。圖3,係為對於在比較例1中所被實行的對於1個指令進行處理之動作與在比較例2中所被實行的對於2個指令進行處理之動作作展示之序列圖。
在比較例1中,若是將1個的指令儲存在提交佇列(SQy)中,則主機,係將對應於提交佇列(SQy)之提交佇列標尾指標(SQTP)作"1"的增數(步驟S11)。
控制器,係根據SQHP之值與SQTP之現在之值之間的差分(=1),來辨識出在提交佇列(SQy)中係被儲存有1個的指令。控制器,係從提交佇列(SQy)而提取1個的指令(步驟S12)。
控制器,係開始與所提取了的指令相對應之處理。
若是所提取了的指令之處理完成,則控制器,係對於主機而送訊代表所提取了的指令之完成之完成回應,並儲存在主機之完成佇列(CQy)中(步驟S13)。
之後,控制器,係將包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷對於主機作送訊(步驟S14)。
因應於收訊了插斷一事,主機係開始前置處理。在前置處理中,主機,係取得在所收訊了的插斷中所包含之插斷向量。主機,係基於所取得了的插斷向量,來決定應處理之完成佇列。被與所取得了的插斷向量相互附加有關連性之1個以上的完成佇列(CQy),係被決定為應處理之完成佇列。主機,係從所決定了的1個以上的完成佇列(CQy),而探索尚未處理之全部的完成回應。主機,係從所決定了的1個以上的完成佇列(CQy),而取得所探索到的各完成回應。若是取得所探索到的各完成回應,則主機,係開始所取得了的各完成回應之處理。
主機,係將與之前為將被作了處理的完成回應作了儲存的完成佇列(CQy)相對應之完成佇列標頭指標(CQHP),作與作了處理的完成回應之數量(於此,係為1)相對應之量的增數(步驟S15)。
接著,針對在比較例2中之指令處理作說明。在比較例2中,2個的指令係藉由控制器而被平行地作處理。
若是將2個的指令儲存在提交佇列(SQy)中,則主機,係將對應於提交佇列(SQy)之提交佇列標尾指標(SQTP)作"2"的增數(步驟S21)。
控制器,係根據SQHP之值與SQTP之現在之值之間的差分(=2),來辨識出在提交佇列(SQy)中係被儲存有2個的指令。控制器,係從提交佇列(SQy)而提取2個的指令(步驟S22)。
控制器,係開始與所提取了的2個的指令相對應之2個的指令處理。之後,控制器,係將與2個的指令相對應之2個的指令處理平行地實行。
若是2個的指令之處理之其中一者完成,則控制器,係對於主機而送訊代表該指令之完成之完成回應,並儲存在完成佇列(CQy)中(步驟S23)。
之後,控制器,係將包含有「被與完成佇列(CQy)相對應之插斷向量」的插斷對於主機作送訊(步驟S24)。
因應於收訊了插斷一事,主機係開始前置處理。
於此,針對「在前置處理之實行中,2個的指令之中之另外一者的指令之處理係完成」的情況作考慮。若是另外一者之指令之處理完成,則控制器,係對於主機而送訊代表該指令之完成之完成回應,並儲存在完成佇列(CQy)中(步驟S25)。
之後,控制器,係將包含有「被與完成佇列(CQy)相對應之插斷向量」的插斷對於主機作送訊(步驟S26)。
於此,針對「在2個的指令處理間之完成時序之差係為較小」的情況作考慮。於此情況,主機,係能夠在1次的前置處理中而取得2個的完成回應。又,主機,係能夠將所取得了的2個的完成回應整批地作處理。
若是2個的完成回應之處理完成,則主機,係將與完成佇列(CQy)相對應之完成佇列標頭指標(CQHP),作與作了處理的完成回應之數量(=2)相對應之量的增數(步驟S27)。
圖4,係為對於在比較例3中所被實行的對於2個指令進行處理之動作與在比較例4中所被實行的對於2個指令進行處理之動作作展示之序列圖。
在比較例3中之步驟S31~步驟S34之動作,係與在圖3之比較例2中的步驟S21~步驟S24之動作相同。
在比較例3中,係針對「2個的指令處理間之完成時序之差係為較圖3之比較例2而更大」的情況作考慮。
具體而言,係針對在完成了「對於與其中一者之指令相對應之完成回應作探索」的前置處理之後,另外一者的指令之處理被完成的情況作考慮。若是另外一者之指令之處理完成,則控制器,係對於主機而送訊代表該指令之完成之完成回應,並儲存在完成佇列(CQy)中(步驟S35)。
之後,控制器,係將包含有「被與完成佇列(CQy)相對應之插斷向量」的插斷對於主機作送訊(步驟S36)。此時,主機係已正在實行對於在步驟S33處而被作了儲存的完成回應進行處理之完成回應處理。
若是此完成回應處理完成,則主機,係將與完成佇列(CQy)相對應之完成佇列標頭指標(CQHP),作與藉由此完成回應處理所作了處理的完成回應之數量(=1)相對應之量的增數(步驟S37)。
之後,主機,係再度實行前置處理以及完成回應處理。若是完成回應處理完成,則主機,係將與完成佇列(CQy)相對應之完成佇列標頭指標(CQHP),作與藉由此完成回應處理所作了處理的完成回應之數量(=1)相對應之量的增數(步驟S38)。
在比較例3中,由於2個的指令處理間之完成時序之差係為較圖3之比較例2而更大,因此,係並無法將對應於2個的指令之2個的完成回應整批地作處理。起因於此,主機,係成為實行2次的前置處理以及2次的完成回應處理。
比較例4,係為使2個的插斷被作了合併的情況之例。在比較例4中之步驟S41~步驟S43之動作,係與在比較例3中的步驟S31~步驟S33之動作相同。
在將代表其中一者之指令之完成的完成回應對於主機作送訊並儲存在完成佇列(CQy)中之後,控制器,係將包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷之送訊跳過(步驟S44)。
若是另外一者之指令之處理完成,則控制器,係對於主機而送訊代表該指令之完成之完成回應,並儲存在完成佇列(CQy)中(步驟S45)。
之後,控制器,係將包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷對於主機作送訊(步驟S46)。
因應於收訊了插斷一事,主機係開始前置處理。主機,係對於被儲存在與在所收訊了的插斷中所包含之插斷向量相對應之1個以上的完成佇列中之尚未處理之完成回應進行探索。藉由此,主機,係取得在步驟S43處而被儲存於完成佇列(CQy)中之完成回應、和在步驟S45處而被儲存於完成佇列(CQy)中之完成回應。
主機,若是完成前置處理,則係開始對於所取得了的2個的完成回應進行處理之完成回應處理。主機,係能夠將2個的完成回應整批地作處理。
之後,若是完成回應處理完成,則主機,係將與完成佇列(CQy)相對應之完成佇列標頭指標(CQHP),作與作了處理的完成回應之數量(=2)相對應之量的增數。
如此這般,控制器,係藉由將2個的插斷作合併,而能夠使主機將2個的完成回應整批地作處理。從主機之I/O存取性能的觀點而言,比較例4係較比較例3而更為優良。
然而,在比較例4之插斷合併中,控制器,係進行像是「在將完成回應作了特定次數之送訊之後,將插斷對於主機作1次的送訊」或者是「在從送訊最初之完成回應起而經過了特定時間之後,將插斷對於主機作1次的送訊」一般之控制。
因此,在比較例4之最糟糕的情況中,對應於第1個的指令之完成回應之處理,會被作相當於「對應於2個的指令之2個的指令處理的完成時序之差」之期間的等待。故而,當此完成時序之差係為非常大的情況時,從「從主機而被發行有第1個的指令」起直到「第1個的指令之完成回應處理被實行」為止的延遲係增加,起因於此,主機之I/O存取性能係會降低。又,當起因於此延遲之增加而導致由主機所致之下一個的指令發行之時序有所延遲的情況時,主機之I/O存取性能係會更進一步降低。
因此,在本實施形態中,控制器4,係基於在NAND型快閃記憶體5處所被實行的複數之資料寫入動作或資料讀出動作之各者的進度狀況,來如同下述一般地而對於插斷合併作適應性的控制。
控制器4,係對於NAND型快閃記憶體5,而下達「與從主機2所收訊的複數之I/O指令分別相互對應的複數之資料寫入動作或者是資料讀出動作的實行」之指示。控制器4,係對於在NAND型快閃記憶體5處所被實行的複數之資料寫入動作或資料讀出動作之各者的進度狀況作管理。在NAND型快閃記憶體5處所被實行的各資料寫入動作或資料讀出動作的進度狀況,例如係可藉由將讀取狀態指令對於NAND型快閃記憶體5作送訊一事,來進行管理。讀取狀態指令,係為用以確認NAND型快閃記憶體5是身為「正在實行程式化動作或者是感測動作之狀態(繁忙狀態)」還是「完成了程式化動作或者是感測動作之狀態(繁忙狀態)」之何者的指令。
因應於檢測出了與複數之I/O指令之中的第1I/O指令相對應之第1資料寫入動作或者是資料讀出動作之完成一事,控制器4,係將代表第1I/O指令之完成的第1完成回應對於主機2作送訊。控制器4,係因應於檢測出了程式化動作之完成一事,而將資料寫入動作視為完成。又,控制器4,係在資料送出動作之完成後,因應於將讀取資料對於主機2而作了送訊一事,而將資料讀出動作視為完成。
例如,當與第1I/O指令相對應之動作乃是資料讀出動作的情況時,若是在NAND型快閃記憶體5處所被實行的感測動作完成,則從NAND型快閃記憶體5之記憶體胞陣列51所被讀出的讀取資料,係被儲存在NAND型快閃記憶體5之頁面緩衝52中。故而,控制器4,係實行從NAND型快閃記憶體5之頁面緩衝52而取得讀取資料之資料送出動作。之後,控制器4,係在將所取得了的讀取資料對於主機2而作了送訊之後,對於主機2送訊第1完成回應。
又,例如,當與第1I/O指令相對應之動作乃是資料寫入動作的情況時,若是將寫入資料傳輸至NAND型快閃記憶體5處之資料送入動作完成,則寫入資料係被儲存在NAND型快閃記憶體5之頁面緩衝52中。若是藉由NAND型快閃記憶體5所被實行的程式化動作完成,則寫入資料,係被程式化至NAND型快閃記憶體5之記憶體胞陣列51中。控制器4,係在檢測出了程式化動作之完成之後,對於主機2送訊第1完成回應。
當在從檢測出與第1I/O指令相對應之資料寫入動作或者是資料讀出動作之完成起直到開始對於主機2而送訊代表存在有應處理之完成回應一事的插斷為止之期間內,而被檢測出有與接續於第1I/O指令之第2I/O指令相對應之第2程式化動作或者是感測動作之完成的情況時,控制器4,係實行插斷合併。亦即是,在將代表第1I/O指令之完成的第1完成回應對於主機2作了送訊之後,控制器4,係並不將對應於第1完成回應之插斷、亦即是並不將代表「係存在有應處理之完成回應(於此,係為第1完成回應)」一事之插斷對於主機2作送訊,而等待對應於第2I/O指令之資料寫入動作或者是資料讀出動作之完成。之後,因應於檢測出了與第2I/O指令相對應之資料寫入動作或者是資料讀出動作之完成一事,控制器4,係將代表第2I/O指令之完成的第2完成回應對於主機2作送訊。在將第2完成回應對於主機2而作了送訊之後,控制器4,係將對應於第1完成回應以及第2完成回應之插斷對於主機2作送訊。
係亦可被設定有「從完成回應之送訊起直到插斷之送訊為止」的限制時間。於此情況,控制器4,係亦能夠以「在直到從第1完成回應之送訊起所經過的時間到達限制時間為止的期間中,而檢測出有第2程式化動作或者是感測動作之完成」一事作為條件,來實行插斷合併。
另外,當在從第1完成回應之送訊起的限制時間內而並未被檢測出有第2程式化動作或者是感測動作之完成的情況時,控制器4,係並不實行插斷合併。亦即是,在將代表第1I/O指令之完成(亦即是,第1資料寫入動作或者是資料讀出動作之完成)的第1完成回應對於主機2作了送訊之後,因應於經過了限制時間一事,控制器4,係將插斷對於主機2作送訊。之後,因應於檢測出了第2I/O指令之完成(亦即是,第2資料寫入動作或者是資料讀出動作之完成)一事,控制器4,係將代表第2I/O指令之完成的第2完成回應對於主機2作送訊。
如此這般,控制器4,係基於「第1資料寫入動作或者是資料讀出動作」與「第2程式化動作或者是感測動作」之間之完成時序的偏差之大小,來自律性地決定是否要將插斷作合併。
之後,當在從檢測出第2資料寫入動作或者是資料讀出動作之完成起直到開始對於主機2而送訊插斷為止之期間內,而被檢測出有與接續於第2I/O指令之第3I/O指令相對應之第3程式化動作或者是感測動作之完成的情況時,控制器4,係再度實行插斷合併。亦即是,在將代表第2I/O指令之完成的第2完成回應對於主機2作了送訊之後,控制器4,係並不將對應於第2完成回應之插斷、亦即是並不將代表「係存在有應處理之完成回應(於此,係為第2完成回應)」一事之插斷對於主機2作送訊,而等待對應於第3I/O指令之資料寫入動作或者是資料讀出動作之完成。之後,因應於檢測出了與第3I/O指令相對應之資料寫入動作或者是資料讀出動作之完成一事,控制器4,係將代表第3I/O指令之完成的第3完成回應對於主機2作送訊。在將第3完成回應對於主機2而作了送訊之後,控制器4,係將對應於第2完成回應以及第3完成回應之插斷對於主機2作送訊。
另外,當在從第2完成回應之送訊起的限制時間內而並未被檢測出有第3程式化動作或者是感測動作之完成的情況時,控制器4,係並不實行插斷合併。亦即是,在將代表第2I/O指令之完成(亦即是,第2資料寫入動作或者是資料讀出動作之完成)的第2完成回應對於主機2作了送訊之後,因應於經過了限制時間一事,控制器4,係將插斷對於主機2作送訊。之後,因應於檢測出了第3I/O指令之完成(亦即是,第3資料寫入動作或者是資料讀出動作之完成)一事,控制器4,係將代表第3I/O指令之完成的第3完成回應對於主機2作送訊。
如此這般,控制器4,係基於「第2資料寫入動作或者是資料讀出動作」與「第3程式化動作或者是感測動作」之間之完成時序的偏差之大小,來自律性地決定是否要將插斷作合併。
另外,控制器4,係亦能夠以「在直到從第2完成回應之送訊起所經過的時間到達限制時間為止的期間中,而檢測出有第3程式化動作或者是感測動作之完成」一事作為條件,來實行插斷合併。
接著,針對包含有插斷合併之控制的指令處理之例作說明。圖5,係為對於在實施形態之記憶體系統處所被實行的包含有將對於2個讀取指令的插斷作合併之處理之指令處理的程序作展示之序列圖。
若是將2個的讀取指令(指令1、指令2)儲存在提交佇列(SQy)中,則主機2,係將對應於提交佇列(SQy)之提交佇列標尾指標(SQTP)作"2"的增數。控制器4之前端(FE),係從提交佇列(SQy)而提取指令1與指令2(步驟S501)。
控制器4之前端(FE),係對於控制器4之後端(BE),而要求與指令1相對應的資料讀出動作和與指令2相對應的資料讀出動作之實行(步驟S502)。
控制器4之後端(BE),係對於NAND型快閃記憶體5,而送訊用以將藉由指令1所被指定的讀取資料作讀出之感測指令、和用以將藉由指令2所被指定的讀取資料作讀出之感測指令(步驟S503)。各感測指令,係下達「用以從NAND型快閃記憶體5之記憶體胞陣列51而將讀取資料讀出至NAND型快閃記憶體5之頁面緩衝52處」的感測動作之實行之指示。藉由此,後端(BE),係對於NAND型快閃記憶體5,而下達對應於指令1之感測動作之實行和對應於指令2之感測動作之實行的指示。
當「藉由指令1而被指定的讀取資料所被作儲存之NAND型快閃記憶體晶粒」和「藉由指令2而被指定的讀取資料所被作儲存之NAND型快閃記憶體晶粒」係為互為相異之2個的晶粒的情況時,後端(BE),係對於此些之2個的晶粒之各者而送訊感測指令。當2個的晶粒為被與互為相異之通道作連接的情況時,後端(BE),係能夠對於2個的晶粒而同時送訊2個的感測指令。又,當2個的晶粒為被與相同之通道作連接的情況時,後端(BE),係能夠對於2個的晶粒而以分時方式來送訊2個的感測指令。
另一方面,當「藉由指令1而被指定的讀取資料所被作儲存之NAND型快閃記憶體晶粒」和「藉由指令2而被指定的讀取資料所被作儲存之NAND型快閃記憶體晶粒」係為相同之晶粒的情況時,後端(BE),係對於此晶粒而將2個的感測指令依序作送訊。
若是從控制器4而收訊對應於指令1之感測指令,則NAND型快閃記憶體5,係實行將藉由感測指令所被作了指定的讀取資料從記憶體胞陣列51而讀出至頁面緩衝52處之感測動作。在此感測動作中所需要的時間,係被稱作感測時間(tR)。
若是從控制器4而收訊對應於指令2之感測指令,則NAND型快閃記憶體5,係實行將藉由感測指令所被作了指定的讀取資料從記憶體胞陣列51而讀出至頁面緩衝52處之感測動作。
控制器4之後端(BE),係對於NAND型快閃記憶體5,而送訊用以對於對應於指令1之感測動作之進度狀況作確認的讀取狀態指令、和用以對於對應於指令2之感測動作之進度狀況作確認的讀取狀態指令(步驟S504)。當「正在實行對應於指令1之感測動作之NAND型快閃記憶體晶粒」和「正在實行對應於指令2之感測動作之NAND型快閃記憶體晶粒」係為互為相異之晶粒的情況時,讀取狀態指令係被對於此些之晶粒之各者而分別作送訊。另一方面,當「正在實行對應於指令1之感測動作之NAND型快閃記憶體晶粒」和「正在實行對應於指令2之感測動作之NAND型快閃記憶體晶粒」係為相同之晶粒的情況時,2個的讀取狀態指令係被對於此晶粒而依序作送訊。另外,於此情況,係亦可對於此晶粒而送訊1個的讀取狀態指令。
基於針對2個的讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令1之感測動作是否完成,並判定對應於指令2之感測動作是否完成。
於此,針對「對應於指令1之感測動作係完成(資料準備完成),但是對應於指令2之感測動作係為未完成(資料準備未完成)」的情況作考慮。
控制器4之後端(BE),係對於控制器4之前端(FE),而通知「對應於指令1之讀取資料之準備係完成」(步驟S505)。藉由此通知,前端(FE),係能夠將「對應於指令1之感測動作係為完成」一事檢測出來。
藉由指令1而被作了指定的讀取資料,係已被從NAND型快閃記憶體5之記憶體胞陣列51而傳輸至NAND型快閃記憶體5之頁面緩衝52處。故而,控制器4之後端(BE),係實行「用以從NAND型快閃記憶體5之頁面緩衝52而取得藉由指令1所被指定的讀取資料」之資料送出動作,並藉由此而從頁面緩衝52來取得藉由指令1所被指定的讀取資料(步驟S506)。在步驟S506處,控制器4,係將資料送出指令對於NAND型快閃記憶體5作送訊,而對於NAND型快閃記憶體5下達資料送出動作之實行的指示。藉由此,控制器4,係從NAND型快閃記憶體5之頁面緩衝52而取得藉由指令1所被指定的讀取資料。
若是取得藉由指令1所被指定的讀取資料,則控制器4之後端(BE),係將此讀取資料傳輸至控制器4之前端(FE)處(步驟S507)。於此情況,此讀取資料,係亦可經由內部緩衝161來從後端(BE)而被傳輸至前端(FE)處。
若是藉由指令1所被指定的讀取資料被從後端(BE)而作傳輸,則控制器4之前端(FE),係將藉由指令1所被指定的讀取資料傳輸至主機2處(步驟S508)。
之後,控制器4之前端(FE),係對於主機2而送訊代表指令1之完成之完成回應,並將完成回應儲存在被與「指令1所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S509)。
控制器4之後端(BE),係對於NAND型快閃記憶體5,而再度送訊用以對於對應於指令2之感測動作之進度狀況作確認的讀取狀態指令(步驟S510)。
基於針對讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令2之感測動作是否完成。
於此,針對「對應於指令2之感測動作係完成」的情況作考慮(資料準備完成)。
控制器4之後端(BE),係對於控制器4之前端(FE),而通知「對應於指令2之讀取資料之準備係完成」(步驟S511)。藉由此通知,前端(FE),係能夠將「對應於指令2之感測動作係為完成」一事檢測出來。
在將代表係存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事之插斷對於主機2作送訊之前,由於係收訊有代表對應於指令2之讀取資料之準備為完成一事的通知,因此,控制器4之前端(FE),係將此插斷之送訊、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷之送訊跳過(步驟S512)。
如此這般,當在從先行之指令1之完成回應的對於完成佇列(CQy)之儲存起直到開始插斷之送訊為止的期間中,被檢測出有對應於後續之指令2之感測動作之完成的情況時,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事的插斷之送訊跳過。
另外,係會有「先行之指令1之被作提取的提交佇列」與「後續之指令2之被作提取的提交佇列」係為相異之提交佇列的情況。於此情況,係可能會發生「被儲存有針對指令1之完成回應的完成佇列、和被儲存有針對指令2之完成回應的完成佇列,係被與相異之插斷向量相互附加有關連性」的情況。故而,當在從先行之指令1之完成回應之儲存起直到開始插斷之送訊為止的期間中,被檢測出有對應於後續之指令2之感測動作之完成的情況時,前端(FE),係亦可確認「被與被儲存有對應於指令1之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與應被儲存對應於指令2之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」是否身為相同之插斷向量。係亦可構成為:只有在此些之插斷向量係身為相同之插斷向量的情況時,前端(FE)會將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事的插斷之送訊跳過。
之後,控制器4之後端(BE),係實行「用以從NAND型快閃記憶體5之頁面緩衝52而取得藉由指令2所被指定的讀取資料」之資料送出動作,並藉由此而從頁面緩衝52來取得藉由指令2所被指定的讀取資料(步驟S513)。亦即是,在步驟S513處,後端(BE),係使NAND型快閃記憶體5實行對應於指令2之資料送出動作,並藉由此而從頁面緩衝52來取得藉由指令2所被指定的讀取資料。
若是取得藉由指令2所被指定的讀取資料,則控制器4之後端(BE),係將此讀取資料傳輸至控制器4之前端(FE)處(步驟S514)。
若是藉由指令2所被指定的讀取資料被從後端(BE)而作傳輸,則控制器4之前端(FE),係將藉由指令2所被指定的讀取資料傳輸至主機2處(步驟S515)。藉由此,對應於指令2之資料讀出動作係完成。
如此這般,當在從指令1之完成回應的對於完成佇列(CQy)之儲存起直到開始插斷之送訊為止的期間中,被檢測出有對應於後續之指令2之感測動作之完成的情況時,前端(FE),係並不將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事的插斷對於主機2作送訊,而等待對應於指令2之資料讀出動作之完成。
若是檢測出對應於指令2之資料讀出動作之完成,則控制器4之前端(FE),係對於主機2而送訊代表指令2之完成之完成回應,並將完成回應儲存在被與「指令2所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S516)。
在圖5中,係針對「被作了提取的指令係僅有指令1與指令2,而並不存在有接續於指令2之後的指令」的情況作考慮。故而,在將代表指令2之完成之完成回應對於主機2而作了送訊之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應以及代表指令2之完成的完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S517)。
收訊到此插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,藉由以主機2所實行之1次的插斷處理,對應於指令1之完成回應與對應於指令2之完成回應係被作處理。
圖6,係為對於在實施形態之記憶體系統處所被實行的並不將對於2個讀取指令的插斷作合併之指令處理的程序作展示之序列圖。
圖6之步驟S601~S609之處理,由於係與圖5之S501~S509之處理相同,因此於此係省略其說明。
在圖6中,係對於指令1與指令2之間之完成時序之偏移(更詳細而言,指令1之資料讀出動作之完成與指令2之感測動作之完成之間的時序之偏移)為大的情況作考慮。故而,在從先行之指令1之完成回應的儲存起直到開始插斷之送訊為止的期間中,係並未被檢測出有對應於後續之指令2之感測動作之完成。於此情況,控制器4之前端(FE),係並不將插斷合併。
亦即是,當在步驟S609而將代表指令1之完成之完成回應對於主機2而作了送訊之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事的插斷、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊(步驟S610)。
收訊到插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,對應於指令1之完成回應係藉由主機2而被作處理。
控制器4之後端(BE),在步驟S607之處理之後,係實行步驟S611~S614之處理。步驟S611~S614之處理,係與圖5之步驟S510~S511以及步驟S513~S514之處理相同。
若是藉由指令2所被指定的讀取資料被從後端(BE)而作傳輸,則控制器4之前端(FE),係將藉由指令2所被指定的讀取資料傳輸至主機2處(步驟S615)。
控制器4之前端(FE),係對於主機2而送訊代表指令2之完成之完成回應,並將完成回應儲存在被與「指令2所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S616)。
之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令2之完成之完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S617)。
收訊到插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,對應於指令2之完成回應係藉由主機2而被作處理。
接著,針對將插斷合併作中斷的處理進行說明。圖7,係為對於在實施形態之記憶體系統處所被實行的包含有將插斷合併作中斷之處理之指令處理的程序作展示之序列圖。
圖7之步驟S701~S706之處理,由於係與圖5之S501~S506之處理相同,因此於此係省略其說明。
若是從NAND型快閃記憶體5之頁面緩衝52而取得藉由指令1所被指定的讀取資料,則控制器4之後端(BE)之ECC編碼/解碼部16,係實行用以進行讀取資料之錯誤訂正的ECC解碼處理(步驟S707)。當藉由使用有在ECC解碼處理中所能夠實行的複數之解碼處理(第1等級解碼處理、第2等級解碼處理、第3等級解碼處理)之中之預先所決定了的特定之錯誤訂正演算法的第1解碼處理而成功地將讀取資料之錯誤作了訂正的情況時,後端(BE),係將ECC解碼處理為成功一事(亦即是在讀取資料中並不存在有錯誤一事)對於前端(FE)作通知(步驟S708)。第1解碼處理,係可為第1等級解碼處理、第2等級解碼處理或者是第3等級解碼處理之任一者。
後端(BE),係將讀取資料傳輸至控制器4之前端(FE)處(步驟S709)。
前端(FE),係將讀取資料傳輸至主機2處(步驟S710)。
之後,控制器4之前端(FE),係對於主機2而送訊代表指令1之完成之完成回應,並儲存在完成佇列(CQy)中(步驟S711)。
後端(BE),係對於NAND型快閃記憶體5,而再度送訊用以對於對應於指令2之感測動作之進度狀況作確認的讀取狀態指令(步驟S712)。
基於針對讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令2之感測動作是否完成。
於此,針對「對應於指令2之感測動作係完成」的情況作考慮(資料準備完成)。
後端(BE),係對於前端(FE),而通知「對應於指令2之資料之準備係完成」(步驟S713)。藉由此通知,前端(FE),係能夠將「對應於指令2之感測動作係為完成」一事檢測出來。
在將代表係存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事之插斷對於主機2作送訊之前,由於係收訊有代表對應於指令2之讀取資料之準備為完成一事的通知,因此,前端(FE),係將此插斷之送訊、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷之送訊跳過(步驟S714)。
後端(BE),係實行「用以從NAND型快閃記憶體5之頁面緩衝52而取得藉由指令2所被指定的讀取資料」之資料送出動作,並藉由此而從頁面緩衝52來取得藉由指令2所被指定的讀取資料(步驟S715)。
若是取得藉由指令2所被指定的讀取資料,則後端(BE)之ECC編碼/解碼部16,係實行用以進行讀取資料之錯誤訂正的ECC解碼處理(步驟S716)。當並無法藉由使用有預先所決定了的特定之錯誤訂正演算法的第1解碼處理而將讀取資料之錯誤作訂正的情況時,後端(BE),係將ECC解碼處理為失敗一事(亦即是在讀取資料中係存在有錯誤一事)對於前端(FE)作通知(步驟S717)。第1解碼處理,係可為第1等級解碼處理、第2等級解碼處理或者是第3等級解碼處理之任一者。
在收訊了此通知的情況時,前端(FE),係並不等待藉由ECC編碼/解碼部16所實行的解碼處理之完成地、亦即是並不等待「應送訊至主機2處之讀取資料被儲存至內部緩衝161中」地,而將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事的插斷、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊(步驟S718)。
收訊到此插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,對應於指令1之完成回應係藉由主機2而被作處理。
如此這般,當在從指令1之完成回應之儲存起直到開始插斷之送訊為止之期間內,而被檢測出「從記憶體胞陣列51而至頁面緩衝52的對應於指令2之讀取資料之讀出為完成」一事的情況時,控制器4,係並不將插斷對於主機2作送訊地,而實行用以進行讀取資料之錯誤訂正的解碼處理。而,當無法藉由使用有預先所決定了的特定之錯誤訂正演算法之第1解碼處理而將讀出資料之錯誤作訂正的情況時,控制器4,係將插斷對於主機2作送訊。
其結果,針對指令1之插斷之送訊雖然係一旦被作了跳過,但是,控制器4,在檢測出了「對應於指令2之資料的ECC解碼處理之失敗」的時間點處,係能夠將此插斷對於主機2作送訊。故而,係能夠防止起因於「等待應被送訊至主機2處之讀取資料被儲存於內部緩衝161中」一事所導致的對應於指令1之完成回應之處理的延遲。
接著,針對對於寫入指令之指令處理作說明。圖8,係為對於在實施形態之記憶體系統處所被實行的包含有將對於2個寫入指令的插斷作合併之處理之指令處理的程序作展示之序列圖。
若是將2個的寫入指令(指令1、指令2)儲存在提交佇列(SQy)中,則主機2,係將對應於提交佇列(SQy)之提交佇列標尾指標(SQTP)作"2"的增數。控制器4之前端(FE),係從提交佇列(SQy)而提取指令1與指令2(步驟S801)。
前端(FE),係將對應於指令1之寫入資料與對應於指令2之寫入資料從主機2之記憶體102而讀出,並儲存在內部緩衝161中(步驟S802)。
前端(FE),係對於控制器4之後端(BE),而要求與指令1相對應的資料寫入動作和與指令2相對應的資料寫入動作之實行(步驟S803)。
後端(BE),係將對應於指令1之寫入資料與對應於指令2之寫入資料從內部緩衝161而讀出(步驟S804)。
又,後端(BE),係實行將對應於指令1之寫入資料傳輸至NAND型快閃記憶體5之頁面緩衝52處之資料送入動作、和將對應於指令2之寫入資料傳輸至NAND型快閃記憶體5之頁面緩衝52處之資料送入動作(步驟S805)。
後端(BE),係對於NAND型快閃記憶體5,而送訊用以將對應於指令1之寫入資料程式化的程式化指令、和用以將對應於指令2之寫入資料程式化的程式化指令(步驟S806)。各程式化指令,係身為用以將被儲存在NAND型快閃記憶體5之頁面緩衝52中的寫入資料程式化至記憶體胞陣列51中之程式化指示。藉由此,後端(BE),係對於NAND型快閃記憶體5,而下達對應於指令1之程式化動作之實行和對應於指令2之程式化動作之實行的指示。
當「對應於指令1之寫入資料所應被作程式化之NAND型快閃記憶體晶粒」和「對應於指令2之寫入資料所應被作程式化之NAND型快閃記憶體晶粒」係為互為相異之2個的晶粒的情況時,後端(BE),係對於此些之2個的晶粒之各者而實行資料送入動作與程式化指令之送訊。當2個的晶粒為被與互為相異之通道作連接的情況時,後端(BE),係能夠對於2個的晶粒而同時實行2個的資料送入動作與程式化指令之送訊。又,當2個的晶粒為被與相同之通道作連接的情況時,後端(BE),係能夠將針對2個的晶粒之2個的資料送入動作與程式化指令之送訊以分時方式來實行。
另一方面,當「對應於指令1之寫入資料所應被作程式化之NAND型快閃記憶體晶粒」和「對應於指令2之寫入資料所應被作程式化之NAND型快閃記憶體晶粒」係為相同之晶粒的情況時,後端(BE),係依序實行針對此晶粒之2個的資料送入動作與程式化指令之送訊。
若是從控制器4而收訊對應於指令1之程式化指令,則NAND型快閃記憶體5,係實行將藉由對應於指令1之資料送入動作而被儲存至了頁面緩衝52中之寫入資料程式化至記憶體胞陣列51中的程式化動作。在程式化動作中所需要的時間,係被稱作程式化時間(tPROG)。
若是從控制器4而收訊對應於指令2之程式化指令,則NAND型快閃記憶體5,係實行將藉由對應於指令2之資料送入動作而被儲存至了頁面緩衝52中之寫入資料程式化至記憶體胞陣列51中的程式化動作。
後端(BE),係對於NAND型快閃記憶體5,而送訊用以對於對應於指令1之程式化動作之進度狀況作確認的讀取狀態指令、和用以對於對應於指令2之程式化動作之進度狀況作確認的讀取狀態指令(步驟S807)。當「正在實行對應於指令1之程式化動作之NAND型快閃記憶體晶粒」和「正在實行對應於指令2之程式化動作之NAND型快閃記憶體晶粒」係為互為相異之晶粒的情況時,讀取狀態指令係被對於此些之晶粒之各者而分別作送訊。另一方面,當「正在實行對應於指令1之程式化動作之NAND型快閃記憶體晶粒」和「正在實行對應於指令2之程式化動作之NAND型快閃記憶體晶粒」係為相同之晶粒的情況時,2個的讀取狀態指令係被對於此晶粒而依序作送訊。另外,於此情況,係亦可對於此晶粒而送訊1個的讀取狀態指令。
基於針對2個的讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令1之程式化動作是否完成,並判定對應於指令2之程式化動作是否完成。
於此,針對「對應於指令1之程式化動作係完成,但是對應於指令2之程式化動作係為未完成」的情況作考慮。
後端(BE),係對於前端(FE),而通知「對應於指令1之程式化動作係完成」(步驟S808)。藉由此通知,前端(FE),係能夠將「對應於指令1之程式化動作係為完成」一事檢測出來。
前端(FE),係對於主機2而送訊代表指令1之完成之完成回應,並將完成回應儲存在被與「指令1所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S809)。
後端(BE),係對於NAND型快閃記憶體5,而再度送訊用以對於對應於指令2之程式化動作之進度狀況作確認的讀取狀態指令(步驟S810)。
基於針對讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令2之程式化動作是否完成。
於此,針對「對應於指令2之程式化動作係完成」的情況作考慮。
後端(BE),係對於前端(FE),而通知「對應於指令2之程式化動作係完成」(步驟S811)。藉由此通知,前端(FE),係能夠將「對應於指令2之程式化動作係為完成」一事檢測出來。
在將代表係存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事之插斷對於主機2作送訊之前,由於係檢測到對應於指令2之程式化動作之完成,因此,前端(FE),係將此插斷之送訊、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷之送訊跳過(步驟S812)。
如此這般,當在從先行之指令1之完成回應的對於完成佇列(CQy)之儲存起直到開始插斷之送訊為止的期間中,被檢測出有對應於後續之指令2之程式化動作之完成的情況時,前端(FE),係將代表存在有應處理之完成回應指令(於此,係為對應於指令1之完成回應)一事的插斷之送訊跳過。具體而言,當在從先行之指令1之完成回應之儲存起直到開始插斷之送訊為止的期間中,被檢測出有對應於後續之指令2之程式化動作之完成的情況時,前端(FE),係確認「被與被儲存有對應於指令1之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與被儲存有對應於指令2之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」是否身為相同之插斷向量。係亦可構成為:只有在此些之插斷向量係身為相同之插斷向量的情況時,前端(FE)會將代表存在有應處理之完成回應指令(於此,係為對應於指令1之完成回應)一事的插斷之送訊跳過。
前端(FE),係對於主機2而送訊代表指令2之完成之完成回應,並將完成回應儲存在被與「指令2所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S813)。
在圖8中,係針對「被作了提取的指令係僅有指令1與指令2,而並不存在有接續於指令2之後的指令」的情況作考慮。故而,在將代表指令2之完成之完成回應對於主機2而作了送訊之後,前端(FE),係將代表存在有應處理之完成回應指令(於此,係為對應於指令1之完成回應以及對應於指令2之完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S814)。
收訊到此插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,藉由以主機2所實行之1次的插斷處理,對應於指令1之完成回應與對應於指令2之完成回應係被作處理。
圖9,係為對於在實施形態之記憶體系統處所被實行的並不將對於2個寫入指令的插斷作合併之指令處理的程序作展示之序列圖。
圖9之步驟S901~S909之處理,由於係與圖8之S801~S809之處理相同,因此於此係省略其說明。
在圖9中,係對於指令1與指令2之間之完成時序之偏移(更詳細而言,指令1之資料寫入動作之完成與指令2之程式化動作之完成之間的時序之偏移)為大的情況作考慮。故而,在從先行之指令1之完成回應的儲存起直到開始插斷之送訊為止的期間中,係並未被檢測出有對應於後續之指令2之程式化動作之完成。於此情況,前端(FE),係並不將插斷合併。
亦即是,當在步驟S909而將代表指令1之完成之完成回應對於主機2而作了送訊之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事的插斷、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊(步驟S910)。
收訊到插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,對應於指令1之完成回應係藉由主機2而被作處理。
後端(BE),在步驟S907之處理之後,係實行步驟S911~S912之處理。步驟S911~S912之處理,係與圖8之步驟S810~S811之處理相同。
若是從後端(BE)而被通知有對應於指令2之程式化動作之完成,則前端(FE),係對於主機2而送訊代表指令2之完成之完成回應,並將完成回應儲存在被與「指令2所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S913)。
之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令2之完成之完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S914)。
收訊到插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,對應於指令2之完成回應係藉由主機2而被作處理。
圖10,係為對於在實施形態之記憶體系統處所被實行的包含有將對於3個寫入指令的插斷作合併之處理之指令處理的程序作展示之序列圖。
若是將3個的寫入指令(指令1、指令2、指令3)儲存在提交佇列(SQy)中,則主機2,係將對應於提交佇列(SQy)之提交佇列標尾指標(SQTP)作"3"的增數。控制器4之前端(FE),係從提交佇列(SQy)而提取指令1與指令2以及指令3(步驟S1001)。
前端(FE),係將對應於指令1之寫入資料與對應於指令2之寫入資料以及對應於指令3之寫入資料從主機2之記憶體102而讀出,並儲存在內部緩衝161中(步驟S1002)。
前端(FE),係對於控制器4之後端(BE),而要求與指令1相對應的資料寫入動作和與指令2相對應的資料寫入動作以及與指令3相對應之資料寫入動作之實行(步驟S1003)。
後端(BE),係將對應於指令1之寫入資料與對應於指令2之寫入資料以及對應於指令3之寫入資料從內部緩衝161而讀出(步驟S1004)。
又,後端(BE),係實行將對應於指令1之寫入資料傳輸至NAND型快閃記憶體5之頁面緩衝52處之資料送入動作、和將對應於指令2之寫入資料傳輸至NAND型快閃記憶體5之頁面緩衝52處之資料送入動作、以及將對應於指令3之寫入資料傳輸至NAND型快閃記憶體5之頁面緩衝52處之資料送入動作(步驟S1005)。
後端(BE),係對於NAND型快閃記憶體5,而送訊用以將對應於指令1之寫入資料程式化的程式化指令、和用以將對應於指令2之寫入資料程式化的程式化指令、以及用以將對應於指令3之寫入資料程式化的程式化指令(步驟S1006)。各程式化指令,係身為用以將被儲存在NAND型快閃記憶體5之頁面緩衝52中的寫入資料程式化至記憶體胞陣列51中之程式化指示。
後端(BE),係對於NAND型快閃記憶體5,而送訊用以對於對應於指令1之程式化動作之進度狀況作確認的讀取狀態指令、和用以對於對應於指令2之程式化動作之進度狀況作確認的讀取狀態指令、以及用以對於對應於指令3之程式化動作之進度狀況作確認的讀取狀態指令(步驟S1007)。
基於針對3個的讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令1之程式化動作是否完成,並判定對應於指令2之程式化動作是否完成,並且判定對應於指令3之程式化動作是否完成。
於此,針對「對應於指令1之程式化動作係完成,但是對應於指令2之程式化動作與對應於指令3之程式化動作係為未完成」的情況作考慮。
後端(BE),係對於前端(FE),而通知「對應於指令1之程式化動作係完成」(步驟S1008)。藉由此通知,前端(FE),係能夠將「對應於指令1之程式化動作係為完成」一事檢測出來。
前端(FE),係對於主機2而送訊代表指令1之完成之完成回應,並將完成回應儲存在被與「指令1所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S1009)。
後端(BE),係對於NAND型快閃記憶體5,而再度送訊用以對於對應於指令2之程式化動作之進度狀況作確認的讀取狀態指令、和用以對於對應於指令3之程式化動作之進度狀況作確認的讀取狀態指令(步驟S1010)。
基於針對2個的讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令2之程式化動作是否完成,並判定對應於指令3之程式化動作是否完成。
於此,針對「對應於指令2之程式化動作係完成,但是對應於指令3之程式化動作係為未完成」的情況作考慮。
後端(BE),係對於前端(FE),而通知「對應於指令2之程式化動作係完成」(步驟S1011)。藉由此通知,前端(FE),係能夠將「對應於指令2之程式化動作係為完成」一事檢測出來。
在將代表係存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應)一事之插斷對於主機2作送訊之前,由於係檢測到對應於指令2之程式化動作之完成,因此,前端(FE),係將此插斷之送訊、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷之送訊跳過(步驟S1012)。
前端(FE),係對於主機2而送訊代表指令2之完成之完成回應,並將完成回應儲存在被與「指令2所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S1013)。
後端(BE),係對於NAND型快閃記憶體5,而再度送訊用以對於對應於指令3之程式化動作之進度狀況作確認的讀取狀態指令(步驟S1014)。
基於針對讀取狀態指令之從NAND型快閃記憶體5而來之回應,後端(BE),係判定對應於指令3之程式化動作是否完成。
於此,針對「對應於指令3之程式化動作係完成」的情況作考慮。
後端(BE),係對於前端(FE),而通知「對應於指令3之程式化動作係完成」(步驟S1015)。藉由此通知,前端(FE),係能夠將「對應於指令3之程式化動作係為完成」一事檢測出來。
在將代表係存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應以及代表指令2之完成之完成回應)一事之插斷對於主機2作送訊之前,由於係檢測到對應於指令3之程式化動作之完成,因此,前端(FE),係將此插斷之送訊、亦即是包含有「被與完成佇列(CQy)相互附加有關連性之插斷向量」的插斷之送訊跳過(步驟S1016)。
前端(FE),係對於主機2而送訊代表指令3之完成之完成回應,並將完成回應儲存在被與「指令3所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S1017)。
在圖10中,係針對「被作了提取的指令係僅有指令1~3,而並不存在有接續於指令3之後的指令」的情況作考慮。故而,在將代表指令3之完成之完成回應對於主機2而作了送訊之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應、代表指令2之完成之完成回應以及代表指令3之完成之完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S1018)。
收訊到此插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,藉由以主機2所實行之1次的插斷處理,對應於指令1~3之3個的完成回應係被作處理。
在以上之說明中,係針對「先行之指令係為讀取指令,後續之指令亦係為讀取指令」的情況時之插斷合併之控制與「先行之指令係為寫入指令、後續之指令亦為寫入指令」的情況時之插斷合併之控制,而作了說明。
當先行之指令係為讀取指令,而後續之指令係為寫入指令的情況時,控制器4,當在從先行之讀取指令之完成回應的儲存起直到開始插斷之送訊為止的期間中,而檢測出有對應於後續之寫入指令之程式化動作之完成的情況時,係實行插斷合併。
當先行之指令係為寫入指令,而後續之指令係為讀取指令的情況時,控制器4,當在從先行之寫入指令之完成回應的儲存起直到開始插斷之送訊為止的期間中,而檢測出有對應於後續之讀取指令之感測動作之完成的情況時,係實行插斷合併。
接著,針對對於「針對被連續地進行處理的複數之指令之插斷的合併被無限度地實行」的情形作防止之處理進行說明。
為了防止「插斷的合併被無限度地實行」,在控制器4處,係亦可被設定有「能夠並不送訊插斷地而對於主機2送訊完成回應的次數」之上限值、或者是「能夠並不送訊插斷地而對於主機2送訊完成回應的次數」之最大時間。
當「並不送訊插斷地而對於主機2送訊了完成回應」的次數為到達上限值的情況時,控制器4,係將插斷合併結束,並對於主機2而送訊插斷。若是對於主機2而送訊插斷,則「並不送訊插斷地而對於主機2送訊完成回應」的次數係被作重置(reset)。藉由此,控制器4,係再度開始插斷合併。
或者是,當從「並不送訊插斷地而對於主機2送訊完成回應」起的經過時間為到達最大時間的情況時,控制器4,係將插斷合併結束,並對於主機2而送訊插斷。若是對於主機2而送訊插斷,則代表經過時間之值係被作重置(reset)。藉由此,控制器4,係再度開始插斷合併。
首先,針對被設定有「能夠並不送訊插斷地而對於主機2送訊完成回應的次數」之上限值的情況作說明。圖11,係為對於在實施形態之記憶體系統處所被實行的包含有對於能夠「並不送訊插斷地而對於主機送訊完成回應」之次數作限制之處理之指令處理的程序作展示之序列圖。於此,針對上限值被設定為"2"的情況作說明。
在圖11中,係與圖10相同的,針對「從主機2而被提取了3個的寫入指令(指令1、指令2、指令3)」的情況作考慮。圖11之步驟S1101~S1115之處理,由於係與圖10之S1001~S1015之處理相同,因此於此係省略其說明。
在步驟S1101~S1115之處理中,在從對應於指令2之完成回應的儲存起直到開始插斷之送訊為止的期間中,對應於指令3之程式化動作係已完成。故而,係滿足將插斷作合併的條件。
然而,由於係在步驟S1109處將對應於指令1之完成回應對於主機2作送訊,並在步驟S1113處將對應於指令2之完成回應對於主機作送訊,因此,「並不送訊插斷地而對於主機2送訊完成回應」的次數,係到達上限值(於此,係為"2")。
故而,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應以及代表指令2之完成的完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S1116)。
收訊到此插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,藉由以主機2所實行之1次的插斷處理,對應於指令1~2之2個的完成回應係被作處理。
由於係已被通知有對應於指令3之程式化動作之完成,因此,前端(FE),係對於主機2而送訊代表指令3之完成之完成回應,並將完成回應儲存在被與「指令3所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S1117)。
控制器4,係再度開始插斷合併。例如,當在從對應於指令3之完成回應的儲存起直到開始插斷之送訊為止的期間中,被檢測出有對應於接續於指令3之指令4之程式化動作或者是感測動作之完成的情況時,前端(FE),係將插斷之送訊跳過,並將對應於指令4之完成回應對於主機2作送訊。另一方面,當在從對應於指令3之完成回應的儲存起直到開始插斷之送訊為止的期間中,並未被檢測出有對應於指令4之程式化動作或者是感測動作之完成的情況時,前端(FE),係將插斷對於主機2作送訊。
在圖11中,係針對「被作了提取的指令係僅有指令1~3,而並不存在有接續於指令3之後的指令4」的情況作考慮。故而,在將代表指令3之完成之完成回應對於主機2而作了送訊之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令3之完成之完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S1118)。
接著,針對被設定有「能夠並不送訊插斷地而對於主機2送訊完成回應」之最大時間的情況作說明。圖12,係為對於在實施形態之記憶體系統處所被實行的包含有對於能夠「並不送訊插斷地而對於主機2送訊完成回應」之時間作限制之處理之指令處理的程序作展示之序列圖。於此,係針對最大時間為t的情況作說明。
圖12之步驟S1201~S1209之處理,由於係與圖10之步驟S1001~S1009之處理相同,因此係省略其說明。
若是對於主機2而送訊代表指令1之完成之完成回應(步驟S1209),則控制器4,係使計時器(未圖示)開始,並開始從送訊完成回應起之經過時間的測定。
之後,控制器4,係實行步驟S1210~S1215之處理。步驟S1210~S1215之處理,由於係與圖10之步驟S1010~S1015之處理相同,因此係省略其說明。
於此,在從對應於指令2之完成回應的儲存起直到開始插斷之送訊為止的期間中,對應於指令3之程式化動作係已完成。故而,係滿足將插斷作合併的條件。
然而,經過時間係到達了最大時間t。故而,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令1之完成之完成回應以及代表指令2之完成的完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S1216)。
收訊到此插斷之主機2,係從被與在所收訊了的插斷中所包含之插斷向量相互附加有關連性之1以上的完成佇列,而取得尚未處理之所有的完成回應,並對於所取得了的完成回應之各者進行處理。故而,藉由以主機2所實行之1次的插斷處理,對應於指令1~2之2個的完成回應係被作處理。
由於係已被通知有對應於指令3之程式化動作之完成,因此,前端(FE),係對於主機2而送訊代表指令3之完成之完成回應,並將完成回應儲存在被與「指令3所被作了提取的提交佇列(SQy)」相互附加有關連性之完成佇列(CQy)中(步驟S1217)。
控制器4,係再度開始插斷合併。於此情況,在步驟S1217處,計時器係再度被開始。之後,例如,當在從對應於指令3之完成回應的儲存起直到開始插斷之送訊為止的期間中,被檢測出有對應於接續於指令3之指令4之程式化動作或者是感測動作之完成的情況時,前端(FE),係將插斷之送訊跳過,並將對應於指令4之完成回應對於主機2作送訊。另一方面,當在從對應於指令3之完成回應的儲存起直到開始插斷之送訊為止的期間中,並未被檢測出有對應於指令4之程式化動作或者是感測動作之完成的情況時,前端(FE),係將插斷對於主機2作送訊。
在圖12中,係針對「被作了提取的指令係僅有指令1~3,而並不存在有接續於指令3之後的指令4」的情況作考慮。故而,在將代表指令3之完成之完成回應對於主機2而作了送訊之後,前端(FE),係將代表存在有應處理之完成回應(於此,係為代表指令3之完成之完成回應)一事的插斷、亦即是包含有「對應於完成佇列(CQy)之插斷向量」的插斷,對於主機2作送訊(步驟S1218)。
接著,針對對於2個的指令作處理之程序作說明。圖13,係為對於在實施形態之記憶體系統處所被實行的對於2個指令進行處理之程序作展示之流程圖。於此,係針對「從主機2而僅收訊有2個的指令,而並未收訊接續於2個的指令之後之指令」的情況作考慮。
控制器4,係從主機2而收訊指令1以及指令2 (步驟S1301)。於此,指令1以及指令2之各者,係為I/O指令。指令1以及指令2之各者,係亦可為讀取指令或者是寫入指令之其中一者。
控制器4,係對於NAND型快閃記憶體5,而下達「對應於指令1之I/O動作、亦即是對應於指令1之資料寫入動作或者是資料讀出動作」之指示(步驟S1302)。若是指令1係為寫入指令,則控制器4,係對於NAND型快閃記憶體5而下達資料送入動作與程式化動作之實行的指示。又,若是指令1係為讀取指令,則控制器4,係對於NAND型快閃記憶體5而下達感測動作與資料送出動作之實行的指示。
控制器4,係對於NAND型快閃記憶體5,而下達「對應於指令2之I/O動作(資料寫入動作或者是資料讀出動作)」之實行的指示(步驟S1303)。
控制器4,係判定「與指令1以及指令2之中之其中1者的指令相對應之資料寫入動作或者是資料讀出動作是否為完成」(步驟S1304)。
當不論是與指令1以及指令2之何者的指令相對應之資料寫入動作或者是資料讀出動作均並未完成的情況時(步驟S1304,NO),控制器4,係等待與指令1以及指令2之中之其中1者的指令相對應之資料寫入動作或者是資料讀出動作之完成。
當與指令1以及指令2之中之其中1者的指令相對應之資料寫入動作或者是資料讀出動作為完成的情況時(步驟S1304,YES),控制器4,係將代表指令1以及指令2之中之其中1者的指令之完成的完成回應對於主機2作送訊(步驟S1305)。
控制器4,係在從代表此其中1者的指令之完成之完成回應的送訊起直到開始對應於此完成回應之插斷之送訊為止的期間中,判定與指令1以及指令2之中之另外1者的指令相對應之程式化動作或者是感測動作是否已完成(步驟S1306)。
當在從對應於其中1者之指令之完成回應之送訊的完成起直到開始與代表此其中1者之指令之完成的完成回應相對應之插斷之送訊為止的期間中,對應於另外1者之指令之程式化動作或感測動作為已完成的情況時(步驟S1306,YES),控制器4,係確認「被與被儲存有對應於其中1者之指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與對應於另外1者之指令之完成回應所應被儲存的完成佇列(CQ)相互附加有關連性之插斷向量」是否身為相同之插斷向量(步驟S1307)。
當「被與被儲存有對應於其中1者之指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與對應於另外1者之指令之完成回應所應被儲存的完成佇列(CQ)相互附加有關連性之插斷向量」係身為相同之插斷向量的情況時(步驟S1307,YES),控制器4,係決定實行插斷合併。於此情況,控制器4,係並不將包含有此相同之插斷向量之插斷對於主機2作送訊地,而在對應於另外1者之指令之資料寫入動作或者是資料讀出動作完成之後,將對應於另外1者之指令之完成回應對於主機2作送訊(步驟S1308)。
在將對應於另外1者之指令之完成回應對於主機2作了送訊之後,控制器4,係將包含有此相同之插斷向量之插斷對於主機2作送訊(步驟S1309)。
當「被與被儲存有對應於其中1者之指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與對應於另外1者之指令之完成回應所應被儲存的完成佇列(CQ)相互附加有關連性之插斷向量」係並非為相同之插斷向量的情況時(步驟S1307,NO),控制器4,係決定並不實行插斷合併。於此情況,控制器4,係將包含有「被與被儲存有對應於其中1者之指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊(步驟S1312)。
在將插斷對於主機2作了送訊之後,控制器4,係在對應於另外1者之指令之資料寫入動作或者是資料讀出動作完成之後,將對應於另外1者之指令之完成回應對於主機2作送訊(步驟S1308)。
在將對應於另外1者之指令之完成回應對於主機2作了送訊之後,控制器4,係將包含有「被與被儲存有對應於另外1者之指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊(步驟S1309)。
當在從對應於其中1者的指令之完成回應的送訊之完成起直到開始插斷之送訊為止的期間中,對應於另外1者之指令之程式化動作或者是感測動作並未完成的情況時(步驟S1306,NO),控制器4,係決定並不實行插斷合併。於此情況,控制器4,係將包含有「被與被儲存有對應於其中1者之指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊(步驟S1310)。
之後,控制器4,係判定「與另外1者的指令相對應之資料寫入動作或者是資料讀出動作是否為完成」(步驟S1311)。
當與另外1者的指令相對應之資料寫入動作或者是資料讀出動作並未完成的情況時(步驟S1311,NO),控制器4,係等待與另外1者的指令相對應之資料寫入動作或者是資料讀出動作之完成。
若是對應於另外1者之指令之資料寫入動作或者是資料讀出動作完成(步驟S1311,YES),則控制器4,係將對應於另外1者之指令之完成回應對於主機2作送訊(步驟S1308)。
在將對應於另外1者之指令之完成回應對於主機2作了送訊之後,控制器4,係將包含有「被與被儲存有對應於另外1者之指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊(步驟S1309)。
圖14,係為對於在實施形態之記憶體系統處所被實行的「當並不送訊插斷地而對於主機所送訊了的完成回應之數量為到達上限值的情況時,將插斷合併作結束之處理」之程序作展示之流程圖。
於此,針對「控制器4係從主機2而陸續收訊複數之指令,並對於NAND型快閃記憶體5而陸續下達「與所收訊了的複數之指令分別相互對應的複數之資料寫入動作或者是資料讀出動作的實行之指示」的情況作考慮。所收訊了的複數之指令之各者,係為I/O指令。
首先,控制器4,係判定「與最初所收訊了的指令相對應之資料寫入動作或者是資料讀出動作是否為完成」(步驟S1401)。
當與最初所收訊了的指令相對應之資料寫入動作或者是資料讀出動作並未完成的情況時(步驟S1401,NO),控制器4係等待,直到與最初所收訊了的指令相對應之資料寫入動作或者是資料讀出動作完成為止。
若是對應於最初所收訊了的指令之資料寫入動作或者是資料讀出動作為完成(步驟S1401,YES),則控制器4,係將對應於最初所收訊了的指令之完成回應對於主機2作送訊(步驟S1402)。
控制器4,係判定「無插斷地而將完成回應對於主機2作了送訊的次數」是否到達臨限值(上限次數)(步驟S1403)。
當並不送訊插斷地而對於主機2送訊了完成回應的次數並未到達臨限值的情況時(步驟S1403,NO),控制器4,係判定在從對應於最初所收訊了的指令之完成回應的送訊之完成起直到開始插斷之送訊為止的期間中,對應於下一個的指令之程式化動作或者是感測動作是否為已完成(步驟S1404)。
當在從對應於最初所收訊了的指令之完成回應的送訊之完成起直到開始插斷之送訊為止的期間中,對應於下一個的指令之程式化動作或者是感測動作並未完成的情況時(步驟S1404,NO),控制器4,係決定並不將插斷作合併。於此情況,由控制器4所致之處理,係前進至步驟S1407處,控制器4係將插斷對於主機2作送訊。在將插斷對於主機2作了送訊之後,控制器4之處理,係回到步驟S1401處,控制器4,係等待對應於下一個的指令之資料寫入動作或者是資料讀出動作之完成(步驟S1401)。若是對應於下一個的指令之資料寫入動作或者是資料讀出動作完成(步驟S1401,YES),則控制器4,係將對應於下一個的指令之完成回應對於主機2作送訊(步驟S1402)。之後,由控制器4所致之處理係前進至步驟S1403處。
當在從對應於最初所收訊了的指令之完成回應之送訊起直到開始插斷之送訊為止的期間中,對應於下一個的指令之資料寫入動作或者是資料讀出動作為已完成的情況時(步驟S1404,YES),控制器4,係確認「被與被儲存有對應於最初所收訊了的指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與對應於下一個的指令之完成回應所應被儲存的完成佇列(CQ)相互附加有關連性之插斷向量」是否身為相同之插斷向量(步驟S1405)。
當「被與被儲存有對應於最初所收訊了的指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與對應於下一個的指令之完成回應所應被儲存的完成佇列(CQ)相互附加有關連性之插斷向量」係並非為相同之插斷向量的情況時(步驟S1405,NO),控制器4,係決定並不將插斷作合併。於此情況,由控制器4所致之處理係前進至步驟S1410處。亦即是,控制器4,係將包含有「被與被儲存有對應於最初所收訊了的指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」的插斷,對於主機2作送訊。在對應於下一個的指令之資料寫入動作或者是資料讀出動作完成之後,控制器4,係將對應於此指令之完成回應對於主機2作送訊(步驟S1406)。之後,由控制器4所致之處理係回到步驟S1403處。
當「被與被儲存有對應於最初所收訊了的指令之完成回應的完成佇列(CQ)相互附加有關連性之插斷向量」和「被與對應於下一個的指令之完成回應所應被儲存的完成佇列(CQ)相互附加有關連性之插斷向量」係為相同之插斷向量的情況時(步驟S1405,YES),控制器4,係決定實行插斷合併。於此情況,控制器4,係並不送訊插斷地,而在對應於下一個的指令之資料寫入動作或者是資料讀出動作完成之後,將對應於此指令之完成回應對於主機2作送訊(步驟S1406)。之後,由控制器4所致之處理係回到步驟S1403處,控制器4,係判定「並不送訊插斷地而將完成回應對於主機2作了送訊的次數」是否到達臨限值。
當「並不送訊插斷地而將完成回應對於主機2作了送訊的次數」並未到達臨限值的情況時(步驟S1403,NO),控制器4,係更進而針對後續之指令而判定是否要實行插斷之合併。
如此這般,在「並不送訊插斷地而對於主機2送訊了完成回應的次數」尚未到達臨限值的期間中(步驟S1403,NO),只要實行插斷合併之條件有被滿足(步驟S1404,YES,步驟S1405,YES),則控制器4,係並不送訊插斷地,而反覆實行「將對應於資料寫入動作或者是資料讀出動作為已完成的指令之完成回應對於主機2作送訊」之處理。
若是「並不送訊插斷地而對於主機2送訊完成回應」之處理被反覆實行,則最後,「並不送訊插斷地而對於主機2送訊完成回應」的次數終究會到達臨限值(步驟S1403,YES)。於此情況,控制器4,係將插斷對於主機2作送訊(步驟S1407),並將插斷合併結束。
若是對於主機2而送訊插斷,則「並不送訊插斷地而對於主機2送訊完成回應」的次數係被作重置(reset)。故而,控制器4,係再度開始插斷合併。若是插斷合併再度被開始,則由控制器4所致之處理係回到步驟S1401處。亦即是,控制器4,係等待對應於下一個的指令之資料寫入動作或者是資料讀出動作之完成(步驟S1401)。若是對應於下一個的指令之資料寫入動作或者是資料讀出動作完成(步驟S1401,YES),則控制器4,係將對應於下一個的指令之完成回應對於主機2作送訊(步驟S1402)。之後,由控制器4所致之處理係前進至步驟S1403處。
圖15,係為對於在實施形態之記憶體系統處所被實行的「當從並不送訊插斷地而對於主機送訊完成回應起之經過時間為到達最大時間的情況時,將插斷合併作結束之處理」之程序作展示之流程圖。
圖15之處理,相較於在圖14中所作了說明之處理,係僅在使插斷合併結束的條件上有所不同。亦即是,圖15之步驟S1501、S1502、S1504~S1510,係與圖14之步驟S1401、S1402、S1404~S1410相同。在圖15之處理程序中,「能夠並不送訊插斷地而對於主機2送訊完成回應」之時間,係被限制於臨限值(最大時間)。
亦即是,在「從並不送訊插斷地而對於主機2送訊完成回應起的經過時間」尚未到達臨限值的期間中(步驟S1503,NO),只要實行插斷合併之條件有被滿足(步驟S1504,YES,步驟S1505,YES),則控制器4,係並不送訊插斷地,而反覆實行「將對應於資料寫入動作或者是資料讀出動作為已完成的指令之完成回應對於主機2作送訊」之處理。
若是「並不送訊插斷地而對於主機2送訊完成回應」之處理被反覆實行,則最後,「從並不送訊插斷地而對於主機2送訊完成回應起的經過時間」終究會到達臨限值(步驟S1503,YES)。於此情況,控制器4,係將插斷對於主機2作送訊(步驟S1507),並將插斷合併結束。
若是對於主機2而送訊插斷,則「從並不送訊插斷地而對於主機2送訊完成回應起的經過時間」係被作重置(reset)。故而,控制器4,係再度開始插斷合併。若是插斷合併再度被開始,則由控制器4所致之處理係回到步驟S1501處。亦即是,控制器4,係等待對應於下一個的指令之資料寫入動作或者是資料讀出動作之完成(步驟S1501)。若是對應於下一個的指令之資料寫入動作或者是資料讀出動作完成(步驟S1501,YES),則控制器4,係將對應於下一個的指令之完成回應對於主機2作送訊(步驟S1502)。之後,由控制器4所致之處理係前進至步驟S1503處。
如同以上所作了說明一般,若依據本實施形態,則控制器4,當在從代表第1I/O指令之完成的第1完成回應之對於主機2之送訊起直到開始對於主機2而送訊至少代表存在有應處理之第1完成回應一事的第1插斷為止的第1期間內,而被檢測出有與接續於第1I/O指令之第2I/O指令相對應之第2程式化動作或者是第2感測動作之完成的情況時,係實行插斷合併。於此情況,控制器4,係並不對於主機2送訊第1插斷地,而等待對應於第2I/O指令之第2資料寫入動作或者是第2資料讀出動作之完成。因應於檢測出了第2資料寫入動作或者是第2資料讀出動作之完成一事,控制器4,係將代表第2I/O指令之完成的第2完成回應對於主機2作送訊,並在將第2完成回應對於主機2作了送訊之後,將第1插斷對於主機2作送訊。由於係已將第1完成回應以及第2完成回應對於主機2而作了送訊,因此,主機2,係能夠將第1插斷,視為對應於第1完成回應以及第2完成回應之插斷來進行處理。換言之,第1插斷,係能夠代表「作為應處理之完成回應,而存在有第1完成回應和第2完成回應」。
另一方面,當在第1期間內而並未被檢測出有第2程式化動作或者是第2感測動作之完成的情況時,控制器4,係並不實行插斷合併。於此情況,控制器4,係將代表「存在有應處理之第1完成回應」一事的第1插斷對於主機2作送訊。之後,因應於檢測出了第2資料寫入動作或者是第2資料讀出動作之完成一事,控制器4,係將第2完成回應對於主機2作送訊。
如此這般,控制器4,係基於在NAND型快閃記憶體5處所被實行的複數之資料寫入動作或者是資料讀出動作之各者的進度狀況,來對於插斷之合併作適應性的控制。故而,係能夠防止「從將某一I/O指令之完成回應對於主機2作送訊起直到該完成回應藉由主機2而被作處理為止」的延遲之增加,並且能夠降低起因於插斷處理所導致的主機2之負擔(overhead)。故而,係成為能夠提升主機2之I/O存取性能。
雖係針對本發明之數種實施形態作了說明,但是,該些實施形態,係僅為作為例子所提示者,而並非為對於本發明之範圍作限定者。此些之新穎的實施形態,係可藉由其他之各種形態來實施,在不脫離發明之要旨的範圍內,係可進行各種之省略、置換、變更。此些之實施形態或其變形,係亦被包含於發明之範圍或要旨中,並且亦被包含在申請專利範圍中所記載的發明及其均等範圍內。
1:資訊處理系統
2:主機
3:SSD
4:控制器
5:NAND型快閃記憶體
6:DRAM
10:匯流排
11:主機介面
12:CPU
13:DMAC
14:SRAM
15:NAND介面
16:ECC編碼/解碼部
17:DRAM介面
121:指令提取部
122:指令處理部
123:插斷合併部
31:L2P表
161:內部緩衝
2:主機
4:控制器
5:NAND型快閃記憶體
FE:前端
BE:後端
Claims (11)
- 一種記憶體系統,係為能夠與主機作連接之記憶體系統,並具備有: 非揮發性記憶體,係包含有頁面緩衝與記憶體胞陣列;和 控制器,係被與前述非揮發性記憶體作電性連接,並構成為實行與從前述主機所收訊的複數之I/O指令分別相對應的複數之資料寫入動作或複數之資料讀出動作, 前述複數之資料寫入動作之各者,係至少包含有進行從前述控制器而至前述頁面緩衝的寫入資料之傳輸之資料送入(data in)動作、和進行從前述頁面緩衝而至前述記憶體胞陣列之前述寫入資料的程式化之程式化動作, 前述複數之資料讀出動作之各者,係至少包含有進行從前述記憶體胞陣列而至前述頁面緩衝之讀出資料的讀出之感測(sense)動作、和進行從前述頁面緩衝而至前述控制器的前述讀出資料之傳輸之資料送出(data out)動作, 前述控制器,係構成為: 因應於檢測出了與前述複數之I/O指令之中的第1I/O指令相對應之第1資料寫入動作或者是第1資料讀出動作之完成一事,而將代表前述第1I/O指令之完成的第1完成回應對於前述主機作送訊, 當在從前述第1完成回應之對於前述主機之送訊起直到開始對於前述主機而送訊至少代表存在有應處理之前述第1完成回應一事的第1插斷為止的第1期間內,而被檢測出有與接續於前述第1I/O指令之第2I/O指令相對應之第2程式化動作或者是第2感測動作之完成的情況時,係並不將前述第1插斷對於前述主機作送訊地,而等待與前述第2I/O指令相對應之第2資料寫入動作或者是第2資料讀出動作之完成,並因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將代表前述第2I/O指令之完成的第2完成回應對於前述主機作送訊,並且在將前述第2完成回應對於前述主機作了送訊之後,將前述第1插斷對於前述主機作送訊, 當在前述第1期間內,並未被檢測出有前述第2程式化動作或者是前述第2感測動作之完成的情況時,係將前述第1插斷對於前述主機作送訊,並因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將前述第2完成回應對於前述主機作送訊。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係構成為: 當在從前述第2完成回應之對於前述主機之送訊起直到開始對於前述主機而送訊至少代表存在有應處理之前述第2完成回應一事的第2插斷為止的第2期間內,而被檢測出有與接續於前述第2I/O指令之第3I/O指令相對應之第3程式化動作或者是第3感測動作之完成的情況時,係並不將前述第2插斷對於前述主機作送訊地,而等待與前述第3I/O指令相對應之第3資料寫入動作或者是第3資料讀出動作之完成,並因應於檢測出了前述第3資料寫入動作或者是前述第3資料讀出動作之完成一事,而將代表前述第3I/O指令之完成的第3完成回應對於前述主機作送訊,並且在將前述第3完成回應對於前述主機作了送訊之後,將前述第2插斷對於前述主機作送訊, 當在前述第2期間內,並未被檢測出有前述第3程式化動作或者是前述第3感測動作之完成的情況時,係將前述第2插斷對於前述主機作送訊,並因應於檢測出了前述第3資料寫入動作或者是前述第3資料讀出動作之完成一事,而將前述第3完成回應對於前述主機作送訊。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係更進而構成為: 當在前述第1期間內,而檢測出有前述第2程式化動作或者是前述第2感測動作之完成的情況時,係判定被與儲存有前述第1完成回應之前述主機之完成佇列相互附加有關連性之第1插斷向量(Interrupt vector)和被與應儲存前述第2完成回應之前述主機之完成佇列相互附加有關連性之第2插斷向量是否身為相同之插斷向量, 當前述第1插斷向量與前述第2插斷向量係為相同之插斷向量的情況時,並不將前述第1插斷對於前述主機作送訊地,而等待前述第2資料寫入動作或者是前述第2資料讀出動作之完成,並因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將前述第2完成回應對於前述主機作送訊,並且在將前述第2完成回應對於前述主機作了送訊之後,將前述第1插斷對於前述主機作送訊, 當前述第1插斷向量與前述第2插斷向量並非為相同之插斷向量的情況時,係將前述第1插斷對於前述主機作送訊,並在將前述第1插斷對於前述主機作了送訊之後,因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將前述第2完成回應對於前述主機作送訊。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係更進而構成為: 當起因於並不送訊前述第1插斷地而將前述第1完成回應與前述第2完成回應對於前述主機作了送訊一事,而導致並不送訊前述第1插斷地而使完成回應被送訊至前述主機處之次數到達了臨限值的情況時,係將前述第1插斷對於前述主機作送訊,並因應於檢測出了與接續於前述第2I/O指令之第3I/O指令相對應之第3資料寫入動作或者是第3資料讀出動作之完成一事,而將代表前述第3資料寫入動作或者是前述第3資料讀出動作之完成的第3完成回應對於前述主機作送訊, 當在從前述第3完成回應之對於前述主機之送訊起直到開始對於前述主機而送訊至少代表存在有應處理之前述第3完成回應一事的第3插斷為止的第3期間內,而被檢測出有與接續於前述第3I/O指令之第4I/O指令相對應之第4程式化動作或者是第4感測動作之完成的情況時,係並不將前述第3插斷對於前述主機作送訊地,而等待與前述第4I/O指令相對應之第4資料寫入動作或者是第4資料讀出動作之完成,並因應於檢測出了前述第4資料寫入動作或者是前述第4資料讀出動作之完成一事,而將代表前述第4I/O指令之完成的第4完成回應對於前述主機作送訊。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係更進而構成為: 當在並不送訊前述第1插斷地而將前述第1完成回應與前述第2完成回應對於前述主機作了送訊之後,從將前述第1完成回應送訊至前述主機處起的經過時間到達了臨限值的情況時,係將前述第1插斷對於前述主機作送訊,並因應於檢測出了與接續於前述第2I/O指令之第3I/O指令相對應之第3資料寫入動作或者是第3資料讀出動作之完成一事,而將代表前述第3資料寫入動作或者是前述第3資料讀出動作之完成的第3完成回應對於前述主機作送訊, 當在從前述第3完成回應之對於前述主機之送訊起直到開始對於前述主機而送訊至少代表存在有應處理之前述第3完成回應一事的第3插斷為止的第3期間內,而被檢測出有與接續於前述第3I/O指令之第4I/O指令相對應之第4程式化動作或者是第4感測動作之完成的情況時,係並不將前述第3插斷對於前述主機作送訊地,而等待與前述第4I/O指令相對應之第4資料寫入動作或者是第4資料讀出動作之完成,並因應於檢測出了前述第4資料寫入動作或者是前述第4資料讀出動作之完成一事,而將代表前述第4I/O指令之完成的第4完成回應對於前述主機作送訊。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係更進而構成為: 當在前述第1期間內,而檢測出有前述第2感測動作之完成的情況時,並不將前述第1插斷對於前述主機作送訊地,而使前述非揮發性記憶體實行與前述第2I/O指令相對應之資料送出動作,並實行用以進行藉由前述資料送出動作所取得的讀出資料之錯誤訂正之解碼處理, 當藉由在前述解碼處理中所被實行之使用有第1錯誤訂正演算法之第1解碼處理,而前述讀出資料之錯誤並未被作訂正的情況時,係將前述第1插斷對於前述主機作送訊。
- 如請求項1所記載之記憶體系統,其中, 前述複數之資料讀出動作之各者,係更進而包含有將藉由前述資料送出動作而被傳輸至了前述控制器處的前述讀出資料對於前述主機作送訊之動作。
- 如請求項1所記載之記憶體系統,其中, 前述複數之資料寫入動作之各者,係更進而包含有從前述主機而取得前述寫入資料之動作。
- 一種記憶體系統,係為能夠與主機作連接之記憶體系統,並具備有: 非揮發性記憶體,係包含有頁面緩衝與記憶體胞陣列;和 控制器,係被與前述非揮發性記憶體作電性連接,並構成為實行與從前述主機所收訊的複數之I/O指令分別相對應的複數之資料寫入動作或複數之資料讀出動作, 前述複數之資料寫入動作之各者,係至少包含有進行從前述控制器而至前述頁面緩衝的寫入資料之傳輸之資料送入(data in)動作、和進行從前述頁面緩衝而至前述記憶體胞陣列之前述寫入資料的程式化之程式化動作, 前述複數之資料讀出動作之各者,係至少包含有進行從前述記憶體胞陣列而至前述頁面緩衝之讀出資料的讀出之感測(sense)動作、和進行從前述頁面緩衝而至前述控制器的前述讀出資料之傳輸之資料送出(data out)動作, 前述控制器,係構成為: 因應於檢測出了與前述複數之I/O指令之中的第1I/O指令相對應之第1資料寫入動作或者是第1資料讀出動作之完成一事,而將代表前述第1I/O指令之完成的第1完成回應對於前述主機作送訊, 當在直到從前述第1完成回應之送訊起的經過時間到達限制時間為止的期間中,而被檢測出有與接續於前述第1I/O指令之第2I/O指令相對應之第2程式化動作或者是第2感測動作之完成的情況時,係並不將至少代表存在有應處理之前述第1完成回應一事之第1插斷對於前述主機作送訊地,而等待與前述第2I/O指令相對應之第2資料寫入動作或者是第2資料讀出動作之完成,並因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將代表前述第2I/O指令之完成的第2完成回應對於前述主機作送訊,並且在將前述第2完成回應對於前述主機作了送訊之後,將前述第1插斷對於前述主機作送訊, 當在直到前述經過時間到達前述限制時間為止的期間中,並未被檢測出有前述第2程式化動作或者是前述第2感測動作之完成的情況時,係將前述第1插斷對於前述主機作送訊,並因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將前述第2完成回應對於前述主機作送訊。
- 一種控制方法,係為對於包含有頁面緩衝與記憶體胞陣列之非揮發性記憶體進行控制之控制方法,並具備有: 實行與從主機所收訊的複數之I/O指令分別相對應的複數之資料寫入動作或者是複數之資料讀出動作之步驟,其中,前述複數之資料寫入動作之各者,係至少包含有進行從前述非揮發性記憶體之外部而至前述頁面緩衝的寫入資料之傳輸之資料送入(data in)動作、和進行從前述頁面緩衝而至前述記憶體胞陣列之前述寫入資料的程式化之程式化動作,前述複數之資料讀出動作之各者,係至少包含有進行從前述記憶體胞陣列而至前述頁面緩衝之讀出資料的讀出之感測(sense)動作、和進行從前述頁面緩衝而至前述非揮發性記憶體之外部的前述讀出資料之傳輸之資料送出(data out)動作;和 因應於檢測出了與前述複數之I/O指令之中的第1I/O指令相對應之第1資料寫入動作或者是第1資料讀出動作之完成一事,而將代表前述第1I/O指令之完成的第1完成回應對於前述主機作送訊之步驟;和 當在從前述第1完成回應之對於前述主機之送訊起直到開始對於前述主機而送訊至少代表存在有應處理之前述第1完成回應一事的第1插斷為止的第1期間內,而被檢測出有與接續於前述第1I/O指令之第2I/O指令相對應之第2程式化動作或者是第2感測動作之完成的情況時,並不將前述第1插斷對於前述主機作送訊地,而等待與前述第2I/O指令相對應之第2資料寫入動作或者是第2資料讀出動作之完成,並因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將代表前述第2I/O指令之完成的第2完成回應對於前述主機作送訊,並且在將前述第2完成回應對於前述主機作了送訊之後,將前述第1插斷對於前述主機作送訊之步驟;和 當在前述第1期間內,並未被檢測出有前述第2程式化動作或者是前述第2感測動作之完成的情況時,將前述第1插斷對於前述主機作送訊之步驟;和 因應於檢測出了前述第2資料寫入動作或者是前述第2資料讀出動作之完成一事,而將前述第2完成回應對於前述主機作送訊之步驟。
- 一種記憶體系統,係為能夠與主機作連接之記憶體系統,並具備有: 非揮發性記憶體;和 控制器,係被與前述非揮發性記憶體作電性連接,並構成為實行與從前述主機所收訊的I/O指令相對應之I/O動作, 前述I/O動作,係至少包含有:伴隨有前述主機與前述控制器之間之資料傳輸之第1動作、和伴隨有前述控制器與前述非揮發性記憶體之間之資料傳輸之第2動作、和並不伴隨著前述控制器與前述非揮發性記憶體之間之資料傳輸地而伴隨有前述非揮發性記憶體內之資料傳輸之第3動作, 前述控制器,係構成為: 因應於檢測出了與第1I/O指令相對應之第1I/O動作之完成一事,而將代表前述第1I/O指令之完成的第1完成回應對於前述主機作送訊, 當在從前述第1完成回應之對於前述主機之送訊起直到開始對於前述主機而送訊至少與前述第1完成回應相對應之第1插斷為止的第1期間內,而被檢測出有與第2I/O指令相對應之前述第3動作之完成的情況時,係並不將前述第1插斷對於前述主機作送訊地,而等待與前述第2I/O指令相對應之第2I/O動作之完成,並因應於檢測出了前述第2I/O動作之完成一事,而將代表前述第2I/O指令之完成的第2完成回應對於前述主機作送訊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021184923A JP2023072389A (ja) | 2021-11-12 | 2021-11-12 | メモリシステムおよび制御方法 |
JP2021-184923 | 2021-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202319927A true TW202319927A (zh) | 2023-05-16 |
TWI847127B TWI847127B (zh) | 2024-07-01 |
Family
ID=86305034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111115353A TWI847127B (zh) | 2021-11-12 | 2022-04-22 | 記憶體系統及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12019901B2 (zh) |
JP (1) | JP2023072389A (zh) |
CN (1) | CN116129963A (zh) |
TW (1) | TWI847127B (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012123600A (ja) * | 2010-12-08 | 2012-06-28 | Toshiba Corp | メモリシステム及びメモリコントローラ |
US9122515B2 (en) * | 2012-12-19 | 2015-09-01 | Dell Products L.P. | Completion notification for a storage device |
KR102287760B1 (ko) * | 2014-10-29 | 2021-08-09 | 삼성전자주식회사 | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 |
US20160124874A1 (en) | 2014-10-30 | 2016-05-05 | Sandisk Technologies Inc. | Method and apparatus for interrupt coalescing |
JP6765322B2 (ja) * | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP6709180B2 (ja) * | 2017-02-28 | 2020-06-10 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10466903B2 (en) | 2017-03-24 | 2019-11-05 | Western Digital Technologies, Inc. | System and method for dynamic and adaptive interrupt coalescing |
KR102443034B1 (ko) * | 2018-01-10 | 2022-09-14 | 삼성전자주식회사 | 메모리 장치 |
US10719267B2 (en) * | 2018-05-30 | 2020-07-21 | Western Digital Technologies, Inc. | Partial reset of memory controller |
JP2021056550A (ja) | 2019-09-26 | 2021-04-08 | キオクシア株式会社 | メモリシステム、メモリシステムの制御方法、および情報処理システム |
JP7408357B2 (ja) * | 2019-11-15 | 2024-01-05 | キオクシア株式会社 | メモリシステム及びその制御方法 |
JP2021111259A (ja) * | 2020-01-15 | 2021-08-02 | キオクシア株式会社 | メモリシステムとその制御方法 |
-
2021
- 2021-11-12 JP JP2021184923A patent/JP2023072389A/ja active Pending
-
2022
- 2022-04-22 TW TW111115353A patent/TWI847127B/zh active
- 2022-05-26 CN CN202210588212.0A patent/CN116129963A/zh active Pending
- 2022-06-16 US US17/842,030 patent/US12019901B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2023072389A (ja) | 2023-05-24 |
US12019901B2 (en) | 2024-06-25 |
TWI847127B (zh) | 2024-07-01 |
US20230153013A1 (en) | 2023-05-18 |
CN116129963A (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110770710B (zh) | 用于控制数据加速的装置和方法 | |
US11023167B2 (en) | Methods and apparatuses for executing a plurality of queued tasks in a memory | |
CN109213440B (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN109726163B (zh) | 一种基于spi的通信系统、方法、设备和储存介质 | |
JP5547741B2 (ja) | データをメモリ装置に再入力することなくページをプログラムするためのページバッファプログラムコマンド及び方法 | |
EP3133604B1 (en) | Method and device for fail-safe erase of flash memory | |
TWI787848B (zh) | 記憶體系統 | |
US20150261444A1 (en) | Memory system and information processing device | |
CN111108488A (zh) | 内存块回收方法和装置 | |
KR20180023311A (ko) | 데이터 저장 장치 | |
CN110109851A (zh) | 具有主机和存储器控制器的电子系统及其操作方法 | |
US20240296131A1 (en) | Storage controller managing completion timing, and operating method thereof | |
US10114774B2 (en) | Data transfer method, parallel processing device, and recording medium | |
US20180267715A1 (en) | Memory system, memory control device, and method of controlling memory system | |
US10613772B2 (en) | Methods and apparatuses for copying a data page in an unmanaged flash memory device | |
JP2023037883A (ja) | 情報処理装置 | |
US11366770B2 (en) | Storage controller managing completion timing, and operating method thereof | |
TW202319927A (zh) | 記憶體系統及控制方法 | |
TWI820426B (zh) | 記憶體系統及控制方法 | |
CN110874190A (zh) | 闪存控制器及方法 | |
WO2023102784A1 (zh) | 数据存取方法、装置、磁盘控制器、磁盘和数据存储系统 | |
US9459966B2 (en) | Storage control apparatus and storage system | |
JP7074020B2 (ja) | メモリコントローラ、及びメモリシステム | |
CN109935252B (zh) | 存储器装置及其操作方法 | |
US20170277475A1 (en) | Control device, storage device, and storage control method |