TW201905679A - 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法 - Google Patents

資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法

Info

Publication number
TW201905679A
TW201905679A TW106121978A TW106121978A TW201905679A TW 201905679 A TW201905679 A TW 201905679A TW 106121978 A TW106121978 A TW 106121978A TW 106121978 A TW106121978 A TW 106121978A TW 201905679 A TW201905679 A TW 201905679A
Authority
TW
Taiwan
Prior art keywords
instruction
command
queue
task switching
high priority
Prior art date
Application number
TW106121978A
Other languages
English (en)
Other versions
TWI640920B (zh
Inventor
陳書磊
張明宏
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW106121978A priority Critical patent/TWI640920B/zh
Priority to CN201710646528.XA priority patent/CN109213687B/zh
Priority to US15/938,413 priority patent/US10691342B2/en
Application granted granted Critical
Publication of TWI640920B publication Critical patent/TWI640920B/zh
Publication of TW201905679A publication Critical patent/TW201905679A/zh
Priority to US15/930,675 priority patent/US11157175B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

一種非揮發式記憶體最佳化操作方法。一資料儲存裝置包括複數個非揮發式記憶體以及複數個指令佇列。該等指令佇列一對一對應該等非揮發式記憶體。該等非揮發式記憶體之操作係共用一通道。資料儲存裝置採用任務切換機制以輪流地執行在同一通道上不同指令佇列中的操作指令。

Description

資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法
本發明係有關於非揮發式記憶體的最佳化操作。
資料儲存裝置所採用的非揮發式記憶體有多種形式-例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存。
非揮發式記憶體可以多通道(multiple channels)方式操作。一通道可允許複數個空間採交錯式操作(interleaved way)。該等空間可以晶片致動信號(chip enable signals)交錯致動。如何最佳化一通道所對應的不同空間的交錯式操作,為本技術領域一項重要課題。
根據本案一種實施方式所實現的一資料儲存裝置,包括複數個非揮發式記憶體以及複數個指令佇列。該等指 令佇列一對一對應該等非揮發式記憶體。該等非揮發式記憶體之操作係共用一通道。
一種實施方式中,該資料儲存裝置更包括一控制器,於各回合狀態輪詢之末檢查是否在該等指令佇列間切換。該控制器在進行一回合狀態輪詢之末,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換並執行所檢查到的高優先權指令。
一種實施方式中,該資料儲存裝置更包括一控制器,將任務切換指令附加在各非揮發式記憶體各段高優先權指令之後。該控制器在執行到上述任務切換指令時,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。該控制器在執行到上述任務切換指令時,若確定上述指令佇列中非當下存取者不指向高優先權指令,則更檢查上述指令佇列中非當下存取者是否指向狀態輪詢指令或數據傳輸指令,以進行指令佇列切換,執行所檢查到的狀態輪詢指令或數據傳輸指令。
一種實施方式中,該資料儲存裝置更包括一控制器,切割數據傳輸指令插入任務切換指令。該控制器在執行到上述任務切換指令時,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。
根據本案一種實施方式實現的一非揮發式記憶體操作方法,包括:以一通道操作複數個非揮發式記憶體;以及一對一對應該等非揮發式記憶體提供複數個指令佇列。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧控制晶片
102‧‧‧主機
104‧‧‧輸入/輸出介面
106‧‧‧輸入/輸出控制器
108‧‧‧中央處理單元
110‧‧‧快閃記憶體控制器
112‧‧‧DRAM控制器
CMD#1、CMD#2、CMD#3、CMD#4與CMD#5…CMD#8‧‧‧操作指令
CQ#1、CQ#2、CQ#3以及CQ#4‧‧‧指令佇列
DO’、DO#1、DO#2、DO#3、DO#4與DO#5…DO#8‧‧‧數據傳輸指令
Flash#1、Flash#2、Flash#3與Flash#4‧‧‧快閃記憶體
SP#1、SP#2、SP#3、SP#4與SP#5…SP#8‧‧‧狀態輪詢指令
t1、t2‧‧‧時間點
TS、TS#1、TS#2、TS#3、TS#4與TS#5…TS#8‧‧‧任務切換指令
第1圖為本發明資料儲存裝置;第2圖為本發明操作指令執行的流程圖;第3圖為複數個指令佇列的示意圖;第4A及4B圖為操作指令執行的時序圖;第5A及5B圖為操作指令執行的另一時序圖;以及第6圖為操作指令執行的示意圖。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等具有長時間資料保存之記憶體裝置。以下特別以快閃記憶體(Flash Memory)為例進行討論,但不限定應用於快閃記憶體領域。
現今資料儲存裝置常以快閃記憶體為儲存媒體,常用來實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD)...等產品。另外,有一種 應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子系統中。所述電子系統包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備、數據中心…等。電子系統的主要運算單元可視為操作所述資料儲存裝置的一主機。
快閃記憶體形式的儲存空間可以多通道(Multiple Channels)方式操作。單一通道對應複數個LUN(邏輯單元),且該等空間是在晶片致動信號(Chip Enable Signals)控制下交錯式共享該通道。傳統技術是令共享一通道的複數個LUN的快閃記憶體操作指令(以下簡稱操作指令)混和堆疊在單一指令佇列並依序執行。本案則是令一通道不同LUN的操作指令分開佇列至不同的指令佇列。分開佇列的操作指令可以交錯地執行,彼此互不影響,因此,操作指令的執行可以有效地被加速,資料儲存裝置的系統效能可以有效地提升。另外,為了能夠讓分開佇列的操作指令可以交錯地執行的目的,本發明導入任務切換(Task Switching)機制,讓工作中指令佇列從目前指令佇列切換至另一指令佇列,以執行另一佇列中的操作指令。
第1圖為方塊圖,圖解根據本案一種實施方式所實現的資料儲存裝置,其中採用快閃記憶體(Flash Memory)作為儲存媒體。為了方便說明,第1圖僅圖解單一通道藉晶片致動信號(Chip Enable Signals)交錯操作的複數個快閃記憶體空間Flash#1、Flash#2、Flash#3與Flash#4。該等快閃記憶體空間Flash#1、Flash#2、Flash#3與Flash#4可為不同的Dies(晶圓方 塊),也可為不同的LUN(邏輯單元)。指令佇列CQ#1、CQ#2、CQ#3以及CQ#4係一對一為快閃記憶體空間Flash#1、Flash#2、Flash#3與Flash#4規劃。一種實施方式中,指令佇列CQ#1、CQ#2、CQ#3以及CQ#4可以在儲存媒體,例如內建的SRAM或外接的DRAM,中切割出快閃記憶體空間Flash#1、Flash#2、Flash#3與Flash#4個別的專屬空間。或者,指令佇列CQ#1、CQ#2、CQ#3以及CQ#4可由分開的儲存裝置實現。
第1圖更圖解資料儲存裝置的控制晶片100,可依據主機102的外部指令而操作快閃記憶體空間Flash#1、Flash#2、Flash#3與Flash#4。資料儲存裝置更使用DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)作為資料緩衝器以加速資料的存取。控制晶片100包括輸入/輸出介面104、輸入/輸出控制器106、中央處理單元108、快閃記憶體控制器110以及DRAM控制器112。快閃記憶體控制器110較佳將指令佇列CQ#1、CQ#2、CQ#3以及CQ#4建立於控制晶片100所內建的SRAM中。另外,中央處理單元108與快閃記憶體控制器110較佳整合於同一晶片中,亦可分別獨立存在(不同的晶片)。
第2圖為本發明操作指令執行的流程圖。步驟S202,將外部指令轉譯成複數操作指令。主機102發出的外部指令係通過該輸入/輸出介面104及該輸入/輸出控制器106而傳送至該中央處理單元108。外部指令較佳是符合NVMe(NVM EXPRESS(Non-Volatile Memory Express,非揮發性記憶體快捷)、ATA(advanced technology attachment,先進技術附件)、 PATA(Parallel ATA,平行先進技術附件)、SATA(Serial ATA,序平行先進技術附件)、SCSI(Small Computer System Interface,小型電腦系統介面)、MMC(Multimedia Card,多媒體記憶卡)或UFS(Universal Flash Storage,通用快閃記憶體卡)等通信協定的指令。
步驟S204,將複數操作指令佇列至複數指令佇列。中央處理單元108將外部指令佇列依據優先權或執行的順序而進行排列,再傳送至快閃記憶體控制器110。快閃記憶體控制器110將外部指令轉譯成複數個操作指令後,例如,一筆外部指令可轉譯成三個操作指令,再將複數個操作指令堆疊至指令佇列CQ#1、CQ#2、CQ#3以及CQ#4,再由該快閃記憶體控制器110選取並執行,實現快閃記憶體空間Flash#1、Flash#2、Flash#3與Flash#4的單一通道操作。快閃記憶體控制器110更操作該DRAM控制器112以控制DRAM,以協助運作快閃記憶體空間Flash#1、Flash#2、Flash#3與Flash#4。
如何在複數個指令佇列中進行切換並執行佇列中的操作指令將決定資料儲存裝置的系統效能。本案揭露一種任務切換(task switching)機制以進行指令佇列的切換。任務切換機制可以使指令佇列CQ#1、CQ#2、CQ#3以及CQ#4輪流作為工作中指令佇列,以執行佇列中的操作指令。任務切換機制一種實施方式使用任務切換指令。當執行任務切換指令時,快閃記憶體控制器110依據選取條件而選取另一指令佇列並執行佇列中的操作指令。任務切換機制另一種實施方式則是由特定的操作指令來自動啟動任務切換,例如,執行狀態輪詢(status polling)指令後,或接收狀態輪詢指令的回應(例如:回應為忙碌)後,由快閃記憶體控制器110依據選取條件而自動選取另一指令佇列並執行佇列中的操作指令。在下述的說明中,將結合任務切換指令以及自動啟動任務切換以進行說明,但不以此為限。
另外,任務切換機制較佳與輪轉(Round Robin)機制或其他仲裁(arbitration)機制結合,較佳係依據指令佇列CQ的編號依序切換,或者,記錄曾經當過工作中指令佇列,並在這些有記錄的指令佇列中依序切換。另外,任務切換機制較佳結合優先權設定,例如,優先切換至佇列有高優先權的操作指令的指令佇列。
第3圖為本發明複數個指令佇列的示意圖。每一筆外部指令轉譯成複數個操作指令,依序佇列至指令佇列CQ#1、CQ#2、CQ#3以及CQ#4中,其中,操作指令更包括任務切換指令TS。例如:一筆資料讀取的外部指令轉譯成五筆操作指令,包括一筆操作指令CMD、一筆狀態輪巡指令SP、一筆資料傳輸指令DO以及二筆任務切換指令TS。
步驟S206,選取其中之一指令佇列。第4A及4B圖為操作指令執行的時序圖。為了簡化說明,指令佇列CQ#1、CQ#2、CQ#3以及CQ#4中分別僅佇列五個操作指令,操作指令CMD#1、CMD#2、CMD#3與CMD#4分別是資料頁讀取指令(或字元線讀取指令),並具有高優先權。其中,資料頁讀取指令包含複數子讀取指令以提供操作類別、位址資訊或操作結束等資訊,用以控制快閃記憶體Flash#1、Flash#2、Flash#3與Flash#4 的運作。任務切換指令TS#1、TS#2、TS#3與TS#4用於偵查指令佇列CQ#1、CQ#2、CQ#3以及CQ#4是否堆疊有操作指令,僅有一般優先權。由於快閃記憶體在收到資料頁讀取指令後,會進入忙碌(busy)狀態,並須一段時間才能將目標資料準備好。狀態輪巡指令SP#1、SP#2、SP#3與SP#4僅有一般優先權,用以判斷快閃記憶體目前的狀態。當目標資料準備完成後,快閃記憶體從忙碌狀態回到待命(ready)狀態,故如圖示,為了及早得知快閃記憶體的狀態,狀態輪巡指令SP#1、SP#2、SP#3與SP#4需反覆操作一段時間,直至快閃記憶體從忙碌狀態回到待命(ready)狀態。另外,每回合輪巡(下達狀態輪巡指令做狀態檢測、以及收到狀態回應)後都會啟動任務切換機制以偵查指令佇列CQ#1、CQ#2、CQ#3以及CQ#4是否堆疊有操作指令。資料傳輸指令DO#1、DO#2、DO#3與DO#4僅有一般優先權,安排在快閃記憶體進入待命狀態之後,用以讀取快閃記憶體所儲存的目標資料。一開始時僅有指令佇列CQ#1佇列有操作指令,故指令佇列CQ#1作為工作中指令佇列。
步驟S208,執行佇列的操作指令。第4A、4B圖為操作指令執行的示意圖,圖解指令佇列CQ#1、CQ#2、CQ#3以及CQ#4所佇列的操作指令的執行順序。首先,指令佇列CQ#1佇列的操作指令CMD#1第一個被選取執行,快閃記憶體Flash#1進入忙碌狀態。
步驟S210,判斷是否有高優先權的指令佇列中?如果是,則執行步驟S212:切換至佇列高優先權的指令之指令佇列;如果否,則執行步驟S214。操作指令CMD#1執行後,快 閃記憶體控制器110執行任務切換指令TS#1,檢查指令佇列CQ#2、CQ#3以及CQ#4是否有佇列高優先權的操作指令。此時指令佇列CQ#2及CQ#3尚未佇列任何操作指令而指令佇列CQ#4上佇列有高優先權的操作指令CMD#4,因此,改由指令佇列CQ#4作為工作中指令佇列,並於步驟S208中執行操作指令CMD#4,使快閃記憶體Flash#4進入忙碌狀態。
接著,執行任務切換指令TS#4並檢查到指令佇列CQ#1佇列有狀態輪詢指令SP#1,故改由指令佇列CQ#1作為工作中指令佇列,並執行狀態輪詢指令SP#1,檢查快閃記憶體Flash#1是否進入準備狀態,即是否可進行資料頁的資料傳輸(Data Out),此時,快閃記憶體Flash#1尚未進入準備狀態。
接著,快閃記憶體控制器110自動啟動任務切換,即執行步驟S210。由於沒有高優先權的指令佇列中,所以執行步驟S214:判斷是否有(一般優先權)指令佇列中?如果是則執行步驟S216:切換至另一個指令佇列。由於目前僅有指令佇列CQ#4有佇列指令,因此,改由指令佇列CQ#4作為工作中指令佇列,並執行佇列中的狀態輪詢指令SP#4,此時,快閃記憶體Flash#4尚未進入準備狀態。
接著,快閃記憶體控制器110自動啟動任務切換以切換至另一指令佇列。此時,佇列CQ#2上佇列有高優先權的操作指令CMD#2,因此,改由指令佇列CQ#2作為工作中指令佇列,並執行CMD#2,使快閃記憶體Flash#2進入忙碌狀態。
接著,執行任務切換指令TS#2。由於指令佇列CQ#3並未佇列有操作指令,因此改由指令佇列CQ#4作為工作中指 令佇列,執行指令佇列CQ#4的狀態輪詢指令SP#4,此時快閃記憶體Flash#4尚未進入準備狀態。
接著,快閃記憶體控制器110自動啟動任務切換以切換至指令佇列CQ#1,改由指令佇列CQ#1作為工作中指令佇列,並執行狀態輪詢指令SP#1,此時快閃記憶體Flash#1已進入準備狀態。
接著,快閃記憶體控制器110自動啟動任務切換並檢查到指令佇列CQ#3上佇列有高優先權的操作指令CMD#3,改由指令佇列CQ#3作為工作中指令佇列,並執行操作指令CMD#3,使快閃記憶體Flash#3進入忙碌狀態。
在執行狀態輪詢指令SP#1後仍執行啟動任務切換具有一項優點。由於資料傳輸時將獨佔通道的頻寬一段時間,如果能先執行其他操作指令,如上所述,先執行操作指令CMD#3,可間接節省快閃記憶體Flash#3置於忙碌狀態所需的時間,直接提升資料儲存裝置的系統效能。另外,在資料傳輸量較少,佔用通道頻寬時間較短的情況下,本發明亦保留彈性可在執行狀態輪詢指令後,不執行任務切換而直接進行資料傳輸,等資料傳輸過後再進行任務切換,以避免任務切換可能損耗的時間。
接著,執行任務切換指令TS#3並檢查到指令佇列CQ#4佇列有狀態輪詢指令SP#4,改由指令佇列CQ#4作為工作中指令佇列,並執行狀態輪詢指令SP#4,此時快閃記憶體Flash#4已進入準備狀態。
接著,快閃記憶體控制器110自動啟動任務切換並 檢查到指令佇列CQ#1佇列數據傳輸指令DO#1,改由指令佇列CQ#1作為工作中指令佇列,並執行數據傳輸指令DO#1。
接著,執行指令佇列CQ#1所佇列的最後一個操作指令:任務切換指令TS#1,並檢查到指令佇列CQ#2佇列有狀態輪詢指令SP#2,改由指令佇列CQ#2作為工作中指令佇列,並執行狀態輪詢指令SP#2。接著,檢查到指令佇列CQ#3佇列有狀態輪詢指令SP#3,改由指令佇列CQ#3作為工作中指令佇列,並執行狀態輪詢指令SP#3。接著,檢查到指令佇列CQ#4佇列有數據傳輸指令DO#4,改由指令佇列CQ#4作為工作中指令佇列,並執行數據傳輸指令DO#4。接著,執行指令佇列CQ#4所佇列的最後一個操作指令:任務切換指令TS#4。
執行任務切換指令TS#4並檢查到指令佇列CQ#2佇列有狀態輪詢指令SP#2,改由指令佇列CQ#2作為工作中指令佇列,並執行狀態輪詢指令SP#2,此時快閃記憶體Flash#2已進入準備狀態。
接著,快閃記憶體控制器110自動啟動任務切換並檢查到指令佇列CQ#3佇列狀態輪詢指令SP#3,改由指令佇列CQ#3作為工作中指令佇列,並執行狀態輪詢指令SP#3,此時快閃記憶體Flash#3已進入準備狀態。
接著,快閃記憶體控制器110自動啟動任務切換並檢查到指令佇列CQ#2佇列數據傳輸指令DO#2,改由指令佇列CQ#2作為工作中指令佇列,並執行數據傳輸指令DO#2。
接著,執行指令佇列CQ#2所佇列的最後一個操作指令:任務切換指令TS#2,並檢查到指令佇列CQ#3佇列數據 傳輸指令DO#3,改由指令佇列CQ#3作為工作中指令佇列,並執行數據傳輸指令DO#3。接著,執行指令佇列CQ#3所佇列的最後一個操作指令:任務切換指令TS#3。由於指令佇列CQ#2、CQ#3以及CQ#4未佇列任何操作指令,因此,結束本發明操作指令執行的流程。
第5A及5B圖為操作指令執行的另一時序圖,與第4A及4B圖為操作指令執行的時序圖相似,主要的差別乃在於快閃記憶體控制器110不會自動啟動任務切換而執行步驟S210或步驟S214,而是依據任務切換指令TS#1、TS#2、TS#3與TS#4以執行任務切換,即執行步驟S210或步驟S214。
另外,任務切換指令TS#1、TS#2、TS#3與TS#4為相同功能的指令,數據傳輸指令DO#1、DO#2、DO#3與DO#4為相同功能的指令,編號只是用以區別任務切換指令TS和數據傳輸指令DO與外部指令或操作指令CMD的關連性。
整理之,藉由分立提供的指令佇列CQ#1、CQ#2、CQ#3以及CQ#4,共用同一通道之複數個快閃記憶體Flash#1、Flash#2、Flash#3與Flash#4之操作被適當的交替進行。操作指令CMD#1、CMD#2、CMD#3與CMD#4得以優先進行,無須等待其任何快閃記憶體的狀態輪詢與數據傳輸完成才得以使用共用通道對快閃記憶體下操作指令,如此,不同快閃記憶體Flash#1、Flash#2、Flash#3與Flash#4能提早收到操作指令CMD#1、CMD#2、CMD#3與CMD#4開始其資料準備時間,並可以使得共用通道的數個快閃記憶體邏輯單元的資料準備時間與資料傳輸時間得以有效率重疊以達到最佳效能。另外,本 文中雖以快閃記憶體讀取指令為例,但本發明並不僅限於讀取指令,而是提供高度彈性,讓軔體得以將任何命令(例如寫入指令,擦除指令等)做為高優先權的操作指令。另外,軔體也能以任務切換指令TS自由安排切換指令佇列CQ的時機。
為了有效率地執行指令佇列CQ#1、CQ#2、CQ#3以及CQ#4所佇列的操作指令,較佳採用指標p#1、p#2、p#3以及p#4指向指令佇列CQ#1、CQ#2、CQ#3以及CQ#4中執行或待執行的操作指令,使快閃記憶體控制器110得以流暢的在不同指令佇列CQ#1、CQ#2、CQ#3以及CQ#4間切換取得操作指令。
更甚者,任務切換機制也可安排在數據傳輸中。第6圖圖解本案一種實施方式。快閃記憶體Flash#1、Flash#2、Flash#3與Flash#4預設的數據傳輸量為一個資料頁的大小,例如:16KB。則將此數據傳輸量分成複數等份,例如:4等份,則每一等份數據傳輸量為4KB。使用複數數據傳輸指令DO’,每一個數據傳輸指令DO’僅傳輸4KB的資料,並在每一數據傳輸指令DO’後執行任務切換指令TS。如此一來,即使某一快閃記憶體的數據傳輸量過大,其他快閃記憶體的資料頁讀取指令也有機會盡早執行,使快閃記憶體端及早準備完全。
一種實施方式中,快閃記憶體控制器110內包括狀態機,用於將任務切換指令之插入資料頁讀取指令或數據傳輸指令。狀態機更可設計在每回合狀態輪詢之末檢查其他指令佇列(是否指向資料頁讀取指令以優先執行之,或於沒檢查到資料頁讀取指令時也檢查是否指向狀態輪詢指令或數據傳輸指令以優先執行之)。所述狀態機更可負責該等指令佇列CQ#1、 CQ#2、CQ#3以及CQ#4之切換讀取。
其他採用上述概念操作非揮發式記憶體的技術都屬於本案所欲保護的範圍。基於以上技術內容,本案更可發展出非揮發式記憶體操作方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (29)

  1. 一種資料儲存裝置,包括:複數個非揮發式記憶體;以及複數個指令佇列,一對一對應該等非揮發式記憶體;其中,該等非揮發式記憶體之操作係共用一通道。
  2. 如申請專利範圍第1項所述之資料儲存裝置,更包括:一控制器,於各回合狀態輪詢之末檢查是否在該等指令佇列間切換。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中:該控制器在進行一回合狀態輪詢之末,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。
  4. 如申請專利範圍第1項所述之資料儲存裝置,更包括:一控制器,將任務切換指令附加在各非揮發式記憶體各段高優先權指令之後。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中:該控制器在執行到上述任務切換指令時,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。
  6. 如申請專利範圍第5項所述之資料儲存裝置,其中:該控制器在執行到上述任務切換指令時,若確定上述指令佇列中非當下存取者不指向高優先權指令,則更檢查上述指令佇列中非當下存取者是否指向狀態輪詢指令,以進行指令佇列切換,執行所檢查到的狀態輪詢指令。
  7. 如申請專利範圍第5項所述之資料儲存裝置,其中:該控制器在執行到上述任務切換指令時,若確定上述指令佇列中非當下存取者不指向高優先權指令,則更檢查上述指令佇列中非當下存取者是否指向數據傳輸指令,以進行指令佇列切換,執行所檢查到的數據傳輸指令。
  8. 如申請專利範圍第1項所述之資料儲存裝置,更包括:一控制器,切割數據傳輸指令插入任務切換指令。
  9. 如申請專利範圍第8項所述之資料儲存裝置,其中:該控制器在執行到上述任務切換指令時,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。
  10. 一種非揮發式記憶體操作方法,包括:以一通道操作複數個非揮發式記憶體;以及一對一對應該等非揮發式記憶體提供複數個指令佇列。
  11. 如申請專利範圍第10項所述之非揮發式記憶體操作方法,更包括:於各回合狀態輪詢之末檢查是否在該等指令佇列間切換。
  12. 如申請專利範圍第11項所述之非揮發式記憶體操作方法,更包括:在進行一回合狀態輪詢之末,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。
  13. 如申請專利範圍第10項所述之非揮發式記憶體操作方法,更包括: 將任務切換指令附加在各非揮發式記憶體各段高優先權指令之後。
  14. 如申請專利範圍第13項所述之非揮發式記憶體操作方法,更包括:在執行到上述任務切換指令時,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。
  15. 如申請專利範圍第14項所述之非揮發式記憶體操作方法,更包括:在執行到上述任務切換指令時,若確定上述指令佇列中非當下存取者不指向高優先權指令,則更檢查上述指令佇列中非當下存取者是否指向狀態輪詢指令,以進行指令佇列切換,執行所檢查到的狀態輪詢指令。
  16. 如申請專利範圍第14項所述之非揮發式記憶體操作方法,更包括:在執行到上述任務切換指令時,若確定上述指令佇列中非當下存取者不指向高優先權指令,則更檢查上述指令佇列中非當下存取者是否指向數據傳輸指令,以進行指令佇列切換,執行所檢查到的數據傳輸指令。
  17. 如申請專利範圍第10項所述之非揮發式記憶體操作方法,更包括:切割數據傳輸指令插入任務切換指令。
  18. 如申請專利範圍第17項所述之非揮發式記憶體操作方法,更包括: 在執行到上述任務切換指令時,檢查上述指令佇列中非當下存取者是否指向高優先權指令,以進行指令佇列切換,執行所檢查到的高優先權指令。
  19. 一種操作指令執行的方法,可用於操作一資料儲存媒體,包括:將複數外部指令轉譯成複數操作指令;將該些操作指令佇列至複數指令佇列;選取其中之一該些指令佇列作為一工作中指令佇列;執行該工作中指令佇列所佇列的其中之一該些操作指令;以及依據一選取條件以及一任務切換機制而選取另一該些指令佇列作為該工作中指令佇列。
  20. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該任務切換機制乃執行一任務切換指令。
  21. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該任務切換機制乃於其中之一該些操作指令執行後自動執行任務切換。
  22. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該選取條件為是否佇列有其中之一該些操作指令。
  23. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該選取條件為佇列中的其中之一該些操作指令是否具有高優先權。
  24. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該選取條件為佇列中的其中之一該些操作指令是否具 有高優先權。
  25. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該資料儲存媒體為一非揮發式記憶體。
  26. 如申請專利範圍第19項所述之操作指令執行的方法,更包括:記錄該工作中指令佇列的編號。
  27. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該些外部指令乃來自使用該資料儲存媒體的一資料儲存裝置之外部。
  28. 如申請專利範圍第19項所述之操作指令執行的方法,其中,該些指令佇列與該資料儲存媒體的複數儲存空間為一對一對應。
  29. 一種操作指令執行的方法,可用於操作一資料儲存媒體,包括:將複數操作指令佇列至複數指令佇列;選取其中之一該些指令佇列作為一工作中指令佇列;執行該工作中指令佇列所佇列的其中之一該些操作指令;以及依據一選取條件以及一任務切換機制而選取另一該些指令佇列作為該工作中指令佇列。
TW106121978A 2017-06-30 2017-06-30 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法 TWI640920B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW106121978A TWI640920B (zh) 2017-06-30 2017-06-30 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法
CN201710646528.XA CN109213687B (zh) 2017-06-30 2017-08-01 数据储存装置、存储器操作方法及操作指令执行方法
US15/938,413 US10691342B2 (en) 2017-06-30 2018-03-28 Data storage device, non-volatile memory operating method, and method for executing operational commands to operate a data storage medium
US15/930,675 US11157175B2 (en) 2017-06-30 2020-05-13 Data storage device, non-volatile memory operating method, and method for executing operational commands to operate a data storage medium via a shared channel and optimized by task switching commands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106121978A TWI640920B (zh) 2017-06-30 2017-06-30 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法

Publications (2)

Publication Number Publication Date
TWI640920B TWI640920B (zh) 2018-11-11
TW201905679A true TW201905679A (zh) 2019-02-01

Family

ID=64738714

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106121978A TWI640920B (zh) 2017-06-30 2017-06-30 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法

Country Status (3)

Country Link
US (2) US10691342B2 (zh)
CN (1) CN109213687B (zh)
TW (1) TWI640920B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528269B2 (en) 2018-03-02 2020-01-07 Western Digital Technologies, Inc. Advanced flash scan algorithm
US11182302B2 (en) 2019-06-06 2021-11-23 Macronix International Co., Ltd. Memory device, electronic device, and associated read method
JP7337006B2 (ja) 2020-03-03 2023-09-01 キオクシア株式会社 メモリシステムおよび制御方法
US11726713B2 (en) 2021-06-25 2023-08-15 Western Digital Technologies, Inc. Systems and methods for priority command data fetching management

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464180B1 (en) * 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US7062592B2 (en) * 2002-03-25 2006-06-13 Intel Corporation Selecting a queue for service in a queuing system
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US7701949B1 (en) * 2003-06-24 2010-04-20 Cisco Technology, Inc. System and method for switching high priority traffic with low latency
TWI385672B (zh) * 2008-11-05 2013-02-11 Lite On It Corp 儲存裝置之適應性多通道控制器及其方法
WO2012109677A2 (en) * 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
JP2012234363A (ja) * 2011-04-28 2012-11-29 Toshiba Corp メモリシステム
US8543758B2 (en) * 2011-05-31 2013-09-24 Micron Technology, Inc. Apparatus including memory channel control circuit and related methods for relaying commands to logical units
US9436634B2 (en) * 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
TWI507981B (zh) * 2013-07-05 2015-11-11 Phison Electronics Corp 指令執行方法、連接器與記憶體儲存裝置
JP6569374B2 (ja) * 2015-08-10 2019-09-04 富士通株式会社 スイッチ装置及びスイッチ装置の制御方法
TWI596612B (zh) * 2015-12-04 2017-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US10540116B2 (en) * 2017-02-16 2020-01-21 Toshiba Memory Corporation Method of scheduling requests to banks in a flash controller

Also Published As

Publication number Publication date
US11157175B2 (en) 2021-10-26
CN109213687B (zh) 2022-12-02
US10691342B2 (en) 2020-06-23
US20190004702A1 (en) 2019-01-03
TWI640920B (zh) 2018-11-11
US20200272330A1 (en) 2020-08-27
CN109213687A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
US10761772B2 (en) Memory system including a plurality of chips and a selectively-connecting bus
US9507533B2 (en) Command and data selection in storage controller systems
KR101702280B1 (ko) 명령어 큐잉
KR101284440B1 (ko) 커맨드 수정
US10108372B2 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
TWI640920B (zh) 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法
US11630766B2 (en) Memory system and operating method thereof
US10782915B2 (en) Device controller that schedules memory access to a host memory, and storage device including the same
US20160062883A1 (en) Data storage device and operating method thereof
US11360711B2 (en) Storage device temporarily suspending internal operation to provide short read response time for read request from host
US20150149741A1 (en) Storage System and Control Method Thereof
US9575887B2 (en) Memory device, information-processing device and information-processing method
US20190354483A1 (en) Controller and memory system including the same
US20190361627A1 (en) Memory device, control method thereof and recording medium
US10528360B2 (en) Storage device, information processing system, method of activating storage device and program
US11307798B2 (en) Storage device and method for performing macro command
US10268388B2 (en) Access control method, storage device, and system
KR20210025836A (ko) 메모리 컨트롤러, 이를 포함하는 저장 장치 및 메모리 컨트롤러의 동작 방법
CN109542336B (zh) 存储设备及其操作方法
TWI636363B (zh) 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器
KR20150050879A (ko) 반도체 메모리 장치, 메모리 시스템 및 그 동작 방법
CN109144907B (zh) 实现快速读取的方法及介质接口控制器
CN110032333B (zh) 存储器系统及其操作方法