TWI854078B - 用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體 - Google Patents
用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體 Download PDFInfo
- Publication number
- TWI854078B TWI854078B TW109145265A TW109145265A TWI854078B TW I854078 B TWI854078 B TW I854078B TW 109145265 A TW109145265 A TW 109145265A TW 109145265 A TW109145265 A TW 109145265A TW I854078 B TWI854078 B TW I854078B
- Authority
- TW
- Taiwan
- Prior art keywords
- stream
- memory channel
- data
- channel status
- status data
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/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/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/0656—Data buffering arrangements
-
- 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/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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Time-Division Multiplex Systems (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
一種用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體。該方法包括以下步驟:由儲存裝置的用以處理多個串流的串流資料寫入的控制器提供整體可用記憶通道狀態資料及針對該等串流中之一串流的串流適用記憶通道狀態資料;基於整體可用記憶通道狀態資料及針對該串流的串流適用記憶通道狀態資料,產生針對該串流的串流可用記憶通道狀態資料;依據針對該串流的串流可用記憶通道狀態資料選擇可用的記憶通道;就被選擇的可用的記憶通道,更新整體可用記憶通道狀態資料及更新針對該串流的串流適用記憶通道狀態資料。
Description
本發明係關於一種電子裝置,更特別的是關於一種用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體。
由於非揮發性儲存裝置儲存之資料在斷電後也不會消失,且具有省電與體積小的特性,故此非揮發性儲存裝置如基於快閃記憶體的儲存裝置大量地應用於電子裝置上。此外,非揮發性儲存裝置如固態儲存裝置(solid storage device,SSD)亦已逐漸成為桌上型電腦、筆記型電腦、伺服器之類的電腦系統中所配備的儲存裝置。
電子裝置(或稱主機)在執行應用程式以儲存文字、數據、照片、播放音訊或視訊等各種的資料時,往往在短時間內需要向儲存裝置(如SSD)提出大量資料寫入動作或資料讀取的請求。為了提高如SSD的儲存裝置的容量和性能,SSD中的記憶體晶片的數量和通道數量也逐漸增加。SSD控制器利用這些記憶體晶片,透過多通道和記憶體晶片交錯(interleaving)的頁讀取或寫入運作,實現高性能的輸入輸出運作。
然而,在實際的應用情景中,有多個應用程式同時或相近時間提出寫入大量資料的請求時,這些來自不同應用程式的欲寫入資料就會像隨機資料一樣,不規則地傳輸到SSD中。SSD控制器也只能依序地將接收到的資料分配至多個通道的記憶體晶片中儲存。上述多個應用程式中的某一個的欲寫入資料可能只能分配到多個通道中較少數的通道的記憶晶片中儲存。如此一來,當這些資料需要被讀取時,也只能從較少數的通道的記憶體晶片中讀取。由此可知,輸入輸出的運作的效率可能會下降。
實施方式提供了一種用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體,其可實現關於寫入運作的分配方式,可適用於處理來自主機的多個應用程式的串流(stream)的寫入運作,為這些串流中的至少一個串流的寫入運作進行個別的分配,從而有助於將該串流對應的寫入資料以較為均勻地分佈在儲存裝置的多個通道的記憶體晶片中儲存。藉此,有助於提高該串流的資料從該儲存裝置中讀取時的效能。
實施方式提供一種用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法,該方法包括以下步驟:(a)由該儲存裝置的用以處理多個串流的串流資料寫入的一控制器提供整體可用記憶通道狀態資料以及針對該等串流中之一串流的串流適用記憶通道狀態資料,其中該整體可用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為寫入串流資料之用,該串流適用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為針對該串流的寫入串流資料之用;(b)由該控制器基於該整體可用記憶通道狀態資料以
及針對該串流的串流適用記憶通道狀態資料,產生針對該串流的串流可用記憶通道狀態資料,其中針對該串流的串流可用記憶通道狀態資料表示該等記憶通道中的各個是否可用於被分配作為針對該串流的寫入串流資料之用;(c)由該控制器依據針對該串流的串流可用記憶通道狀態資料而選擇可用的記憶通道;(d)就該被選擇的可用的記憶通道,更新該整體可用記憶通道狀態資料以表示該被選擇的可用的記憶通道已被分配作為寫入串流資料之用;以及(e)就該被選擇的可用的記憶通道,更新針對該串流的串流適用記憶通道狀態資料以表示該被選擇的可用的記憶通道已被分配作為針對該串流的寫入串流資料之用。
於一些實施例中,該控制器用於分配該等記憶通道以進行該等串流的寫入串流資料,並提供針對該等串流分別提供個別的串流適用記憶通道狀態資料。
於一些實施例中,當該控制器針對該等串流的該等串流之該串流執行該步驟(b)至步驟(e)之後,該控制器針對該等串流的另一串流執行該步驟(b)至步驟(e)。
於一實施例中,在該步驟(e)之後,該方法更包括,發出針對該串流以及該被選擇的可用的記憶通道進行寫入運作的通知。
於一實施例中,該方法更包括,在該整體可用記憶通道狀態資料表示該等記憶通道中的各個已被分配作為寫入串流資料之用時,發出針對該等記憶通道進行寫入運作的通知。
實施方式又提供一種記錄媒體,其記錄用以讓一儲存裝置執行如上述多個實施例中任一個實施例所述之用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法的程式碼。
實施方式另外提供一種儲存裝置,包括:多個記憶體晶片;和一控制器。該控制器透過多個記憶通道耦接至該等記憶體晶片,用以處理多個串流的串流資料寫入,其中該控制器被配置為執行多個運作,該等運作包括:(a)提供整體可用記憶通道狀態資料以及針對一串流的串流適用記憶通道狀態資料,其中該整體可用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為寫入串流資料之用,該串流適用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為針對該串流的寫入串流資料之用;(b)基於該整體可用記憶通道狀態資料以及針對該串流的串流適用記憶通道狀態資料,產生針對該串流的串流可用記憶通道狀態資料,其中針對該串流的串流可用記憶通道狀態資料表示該等記憶通道中的各個是否可用於被分配作為針對該串流的寫入串流資料之用;(c)依據針對該串流的串流可用記憶通道狀態資料而選擇可用的記憶通道;(d)就該被選擇的可用的記憶通道,更新該整體可用記憶通道狀態資料以表示該被選擇的可用的記憶通道已被分配作為寫入串流資料之用;以及(e)就該被選擇的可用的記憶通道,更新針對該串流的串流適用記憶通道狀態資料以表示該被選擇的可用的記憶通道已被分配作為針對該串流的寫入串流資料之用。
於一實施例中,該控制器用於分配該等記憶通道以進行該等串流的寫入串流資料,並針對該等串流分別提供個別的串流適用記憶通道狀態資料。
於一實施例中,當該控制器針對該等串流的該串流執行該運作(b)至運作(e)之後,該控制器針對該等串流的另一串流執行該運作(b)至運作(e)。
於一實施例中,在該運作(e)之後,該等運作更包括,發出針對該串流以及該被選擇的可用的記憶通道進行寫入運作的通知。
於一實施例中,該等運作更包括,在該整體可用記憶通道狀態資料表示該等記憶通道中的各個已被分配作為寫入串流資料之用時,發出針對該等記憶通道進行寫入運作的通知。
藉此,上述實施方式提供了一種用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體,其可據以實現關於寫入運作的分配方式,可適用於處理來自主機的多個應用程式的串流的寫入運作,為這些串流中的至少一個串流的寫入運作進行個別的分配。
10:主機
100、300:控制器
110:處理單元
120:緩衝單元
130_1~130_N:記憶通道
140:記憶通道控制單元
150:主機介面單元
160:匯流排
200:記憶體
D1_1~D1_M、DN_1~DN_M:記憶體晶片
310:主機介面層
320:快閃記憶體轉換層
330:快閃記憶體介面層
S10~S50:步驟
S100~S210:步驟
GACD:整體可用記憶通道狀態資料
SSCD_S0、SSCD_S1~SSCD_SP:串流適用記憶通道狀態資料
SSCD_SX:串流適用記憶通道狀態資料
SACD_S0、SACD_S1:串流可用記憶通道狀態資料
SACD_SX:串流可用記憶通道狀態資料
OPN:資料運算
WB:寫入暫存器
WSA:寫入資料排列
圖1為儲存裝置的一實施例之示意方塊圖。
圖2為控制器的一實施例之示意方塊圖。
圖3為用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法的一實施例之示意流程圖。
圖4為圖3中步驟S10之一實施例之示意圖。
圖5為圖3中步驟S20之一實施例之示意圖。
圖6為圖3中步驟S30至步驟S50之一實施例之示意圖。
圖7為針對另一串流執行圖3中步驟S20之一實施例之示意圖。
圖8為針對另一串流執行圖3中步驟S30至步驟S50之一實施例之示意圖。
圖9為圖3的方法的另一實施例之示意圖。
圖10為基於圖3的方法的另一實施例之示意流程圖。
圖11為應用圖10的方法所得到的寫入資料排列示例的示意圖。
圖12為依據圖11的寫入資料排列示例由儲存裝置輸出某串流的資料時的示例的示意圖。
為充分瞭解本發明之目的、特徵及功效,茲藉由下述具體之實施例,並配合所附之圖式,對本發明做詳細說明,說明如後。
請參考圖1,其繪示本發明之儲存裝置的一實施例,圖1的儲存裝置可用以實現圖3的用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法或相關之實施例(其將於之後詳細說明,此處先暫時略過),可適用於處理來自主機的多個應用程式的串流(stream)的寫入運作,為這些串流中的至少一個串流的寫入運作進行個別的分配,從而有助於將該串流對應的寫入資料以較為均勻地分佈在儲存裝置的多個通道的記憶體晶片中儲存。以下關於圖1及圖2的示例為說明本發明實現時可適用的應用情景;誠然,本發明之實現並不受示例的限制。
如圖1所示,儲存裝置包括控制器100及記憶體200。控制器100包括處理單元110、緩衝單元120、複數個記憶通道130_1~130_N(如N為大於1的整數)及對應的記憶通道控制單元140。緩衝單元120可以利用揮發性記憶體或非揮發性記憶體來實現。記憶體200包括複數個記憶體晶片D1_1~D1_M至DN_1~DN_M(如N、M為大於1的整數)。舉例而言,記憶體晶片為快閃記憶體,譬如NOR型記憶體或NAND型記憶體,然而本發明的實現並不受此例子限制。
控制器100可藉由主機介面單元150與主機10通訊以接收來自主機10的讀取請求或寫入請求。控制器100就主機讀取請求或主機寫入請求而產生
對應的讀取命令或寫入命令,並將產生的對應的命令傳送至對應的記憶通道(如130_1~130_N)的記憶通道控制單元140。記憶通道控制單元140用以控制至少一記憶體晶片。例如,記憶通道控制單元140傳送資料讀取命令至某一記憶體晶片並將因此而讀取之資料傳送至控制器100中,譬如緩衝單元120中。控制器100將主機10所請求的資料傳送至主機10。又例如,記憶通道控制單元140依據資料寫入命令而將欲寫入之資料寫入至記憶體晶片中。當控制器100控制記憶體200的操作時,緩衝單元120可以儲存由控制器100和記憶體200來使用以用於諸如讀取操作、寫入操作、程式化操作和抹除操作的各種操作的資料。在圖1中,複數個記憶通道控制單元140以平行處理的方式運作讀取或寫入動作。此外,處理單元110可以透過匯流排160而與記憶通道(如130_1~130_N)電性耦接。然而,本發明之實現並不受上述例子限制。例如,前述各個記憶通道控制單元可以利用邏輯電路或可程式化電路來實現,或者以軟體方式來實現並且由處理單元110來執行。
主機介面單元150可以處理從主機10提供的命令和資料,以及可以透過諸如通用序列匯流排(USB)、多媒體卡(MMC)、周邊元件連接-快速(PCI-E)、串列連接SCSI(SAS)、串列高級技術連接(SATA)、並行高級技術連接(PATA)、小型電腦系統介面(SCSI)、增強小型磁片介面(ESDI)和集成驅動電路(IDE)、進階主機控制器介面(AHCI)、非揮發性記憶體主機控制器介面規範(Non-Volatile Memory express,NVMe)的各種介面協定中的至少一種來與主機10通信。
請同時參考圖1與圖2,其中圖2為控制器的一實施例之示意方塊圖。圖2呈現控制器300以韌體或軟體方式來實現時的架構。譬如,控制器300包含主機介面層310、快閃記憶體轉換層320、快閃記憶體介面層330。主機介面層310用以與主機10通訊並作為主機10與控制器300之介面。快閃記憶體轉換層320
用來進行對讀取、寫入、抹除操作的管理。快閃記憶體轉換層320更用以將邏輯位址(如邏輯區塊位址或邏輯頁位址)轉換為記憶體200之記憶體晶片(如D1_1~D1_M至DN_1~DN_M)所對應的實體位址(如實體區塊位址或實體頁位址)。快閃記憶體介面層330用於處理快閃記憶體轉換層320及記憶體200之通訊,譬如將命令自快閃記憶體轉換層320傳送至記憶體200。
圖2所示的控制器300可利用圖1的硬體架構來實現。快閃記憶體轉換層320在進行邏輯位址轉換為實體位址時需要參考及維護一位址映對表。由於位址映對表的資料量大,快閃記憶體轉換層320將位址映對表的部分區段儲存於快取中。當快取中沒有轉換所需的邏輯位址與實體位址的對應關係時,快閃記憶體轉換層320需要將快取中位址映對表的區段內容更新而產生映對表讀取命令。此外,在某些記憶體產品的應用場合中,例如是嵌入式多媒體卡(eMMC)或其他的記憶體產品,位址映對表係儲存於記憶體產品的記憶體中,且本發明並不受此例子限制。
控制器300控制針對記憶體200的各種操作,例如,寫入操作、讀取操作、程式化操作、抹除操作。例如,控制器可在主機10的寫入請求下產生寫入命令,並執行所產生的寫入命令。控制器可利用命令佇列以儲存主機寫入命令。控制器可依序處理儲存於命令佇列中的主機寫入命令以進行資料寫入動作。
此外,控制器300更可控制用於快閃記憶體轉換層320的韌體演算法。例如,控制器300可以實現包括垃圾收集(GC,garbage collection)、耗損平衡(WL,wear-leveling)、區塊收回(BC,block reclaim)及故障區塊(RBB,runtime bad block)之演算法。
以上圖1及圖2為說明本發明實現時可適用的應用情景,誠然,本發明之實現並不受上述示例限制。在實際的應用情景中,主機可能執行多個應用程式,這些應用程式可能同時或相近時間內提出寫入大量寫入資料的請求;這些寫入資料的請求就會像隨機資料一樣,不規則地傳輸到儲存裝置(如SSD)中,例如是儲存裝置的寫入暫存器(write buffer)中。為了讓這些串流中的至少一個串流的寫入運作進行個別的分配,從而有助於將該串流對應的寫入資料較為均勻地儲存在多個通道的記憶體晶片中,以下提出用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法的實施例。
請參考圖3,其為用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法的一實施例之示意流程圖。請參照圖1與3,圖3的方法之一實施例包括以下步驟S10至S50。其中引用了圖1中的元件作示例作輔助說明,然而該方法的實現並不受示例的限制。
如步驟S10所示,控制器100提供整體可用記憶通道狀態資料以及針對多個串流中之一串流的串流適用記憶通道狀態資料,其中該整體可用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為寫入串流資料之用,該串流適用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為針對該串流的寫入串流資料之用。
如步驟S20所示,控制器100基於該整體可用記憶通道狀態資料以及針對該串流的串流適用記憶通道狀態資料,產生針對該串流的串流可用記憶通道狀態資料,其中針對該串流的串流可用記憶通道狀態資料表示該等記憶通道中的各個是否可用於被分配作為針對該串流的寫入串流資料之用。
如步驟S30所示,控制器100依據針對該串流的串流可用記憶通道狀態資料而選擇可用的記憶通道。
如步驟S40所示,就該被選擇的可用的記憶通道,更新該整體可用記憶通道狀態資料,以表示該被選擇的可用的記憶通道已被分配作為寫入串流資料之用。
如步驟S50所示,就該被選擇的可用的記憶通道,更新針對該串流的串流適用記憶通道狀態資料,以表示該被選擇的可用的記憶通道已被分配作為針對該串流的寫入串流資料之用。
由以上步驟S10至S50可知,圖3的方法透過為這些串流中的至少一個串流的寫入運作進行個別的分配,從而有助於將該串流對應的寫入資料以較為均勻地分佈在儲存裝置的多個通道的記憶體晶片中儲存。
以下更進一步舉例說明上述圖3的方法的各種實現方式。
於一些實施例中,控制器100用於分配該等記憶通道以進行該等串流的寫入串流資料,在該步驟S10至步驟S50中的該串流為該等串流中之一個串流,控制器100針對該等串流分別提供個別的串流適用記憶通道狀態資料。舉例而言,在一些應用情景中,例如是允許主機將每個寫入運作與一串流作關聯,每個串流可視為一應用程式所對應的,在關於該串流的寫入運作的請求中會帶有相關的串流資訊,譬如是識別碼或任何合適的資訊來有助於儲存裝置的控制器辨別不同串流。例如,來自主機的寫入資料會伴隨對應的串流識別碼而儲存於儲存裝置的寫入暫存器中,某一串流的寫入資料可能來自同一檔案或應用程式,是屬於序列型資料(sequential data)。當多個應用程式同時傳輸不同串流的序列型資料至儲存裝置時,本實施例的儲存裝置的方法可被配置為對於這些串流中的
各個串流的序列型資料進行個別的分配,從而有助於將該等串流對應的序列型資料以較為均勻地分佈在儲存裝置的多個通道的記憶體晶片中儲存。
詳言之,請參考圖4,其為圖3中步驟S10之一實施例之示意圖。在圖4中,控制器提供兩種不同的狀態資料以有助於寫入運作的分配。第一種狀態資料為,整體可用記憶通道狀態資料(global available channel status data,GACD)。第二種狀態資料為,針對個別串流的串流適用記憶通道狀態資料(stream suitable channel status data,SSCD)。在圖4的實施例中,有P+1個串流(其中P為非零的正整數),控制器分別提供了串流0、1~P的串流適用記憶通道狀態資料(如以SSCD_S0、SSCD_S1~SSCD_SP來代表)。這些狀態資料例如可以用位元陣列(bitmap)、位元組、數值、字元、表格或任何合適的資料結構來表示。為了方便說明起見,在圖4或相關圖式及實施例中,舉例以位元陣列來表示這些狀態資料;誠然,本發明的實現並不受示例的限制。在圖4的實施例中,舉例以圖1的儲存裝置具有記憶通道0~7共計8個記憶通道為例,故整體可用記憶通道狀態資料(GACD)的8個位元由左至右來分別表示記憶通道0~7中的各個通道是否已被分配作為寫入串流資料之用,如以位元0表示該記憶通道不可用,位元1表示該記憶通道可用。又,串流適用記憶通道狀態資料SSCD_S0表示記憶通道0~7中的各個是否已被分配作為針對該串流0的寫入串流資料之用,如以位元0表示該記憶通道不適用,位元1表示該記憶通道適用。其中「該記憶通道適用」是指在本次分配過程中該記憶通道未被分配作為針對該串流0的寫入串流資料之用,若使用該記憶通道,則寫入資料會分配到之前並未使用的記憶通道,並未重覆使用同一記憶通道,故對於本次分配過程而言,該記憶通道是適用的;而「該記憶通道不適用」是指在本次分配過程之前(如前一次的分配過程中)已被分配作為針對該串流
0的寫入串流資料之用,故對於此次分配過程來說,若使用該記憶通道,則寫入資料會重覆使用同一記憶通道,故稱之為不適用。相似地,串流適用記憶通道狀態資料SSCD_S1表示記憶通道0~7中的各個是否已被分配作為針對該串流1的寫入串流資料之用;如此類推,串流適用記憶通道狀態資料SSCD_SP表示記憶通道0~7中的各個是否已被分配作為針對該串流P的寫入串流資料之用。
此外,就實際的應用情景來說,控制器100可能需要針對個別的串流分別執行依據圖3的方法的分配過程多次,從而處理處理多個串流的串流資料寫入。
請參考圖5,其為圖3中步驟S20之一實施例之示意圖。如圖5所示,由控制器100基於該整體可用記憶通道狀態資料(GACD)以及針對某一串流(如串流0)的串流適用記憶通道狀態資料(如SSCD_S0),產生針對該串流(如串流0)的串流可用記憶通道狀態資料(stream available channel status data,SACSD)(如以SACD_S0來表示)。針對串流0的串流可用記憶通道狀態資料SACD_S0表示記憶通道0~7中的各個是否可用於被分配作為針對串流0的寫入串流資料之用,如以位元0表示該記憶通道不可用,位元1表示該記憶通道可用。依據步驟S20,控制器100基於整體可用記憶通道狀態資料GACD與針對串流0的串流可用記憶通道狀態資料SSCD_S0進行一種資料運算OPN來產生針對串流0的串流可用記憶通道狀態資料SACD_S0。就以本實施例來說,資料運算OPN例如是「位元和」(bitwise AND)運算。如圖5所示,整體可用記憶通道狀態資料(GACD)為「01011001」,針對串流0的串流可用記憶通道狀態資料SSCD_S0為「00111001」,則串流可用記憶通道狀態資料SACD_S0為「00011001」。在一些實例中,資料運
算OPN可以實現為其他合適的位元的邏輯運算,位元所代表的意義亦可作相反的定義。故本發明的實現並不受示例的限制。
請參考圖6,其為圖3中步驟S30至步驟S50之一實施例之示意圖。依據步驟S30,控制器100依據針對串流0的串流可用記憶通道狀態資料SACD_S0而選擇可用的記憶通道。如圖6中所示,串流可用記憶通道狀態資料SACD_S0為「00011001」,這個示例表示在目前有記憶通道3、4、7可以用來寫入串流0的資料,控制器100可以選擇記憶通道3、4、7中至少一個或全部來寫入串流0的資料。在圖6的示例中,控制器100選擇了其中的位元3、4(如以虛線橢圓框示意),表示被選擇的可用的記憶通道為記憶通道3、4。控制器100據以對應地分配記憶通道3、4來儲存串流0的資料。依據步驟S40,控制器100就該被選擇的可用的記憶通道(如記憶通道3、4),更新該整體可用記憶通道狀態資料(GACD)以表示該被選擇的可用的記憶通道(如記憶通道3、4)已被分配作為寫入串流資料之用。在圖6的示例中,將整體可用記憶通道狀態資料(GACD)中對應於記憶通道3、4的位元設為位元0,則更新後整體可用記憶通道狀態資料(GACD)為「01000001」。另一方面,依據步驟S50,就該被選擇的可用的記憶通道(如記憶通道3、4),更新針對串流0的串流適用記憶通道狀態資料SSCD_S0,以表示該被選擇的可用的記憶通道已被分配作為針對串流0的寫入串流資料之用。在圖6的示例中,將串流適用記憶通道狀態資料SSCD_S0中對應於記憶通道3、4的位元設為位元0,則更新後串流適用記憶通道狀態資料SSCD_S0為「00100001」。
於一些實施例中,當控制器100針對該等串流的一串流執行該步驟(b)至步驟(e)之後,控制器100針對該等串流的另一串流執行該步驟(b)至步驟(e)。請參考圖7,其為針對另一串流(如串流1)執行圖3中步驟S20之一實施例之示
意圖。承上述圖4至圖6的示例,在圖7中示意,依據步驟S20,控制器100基於整體可用記憶通道狀態資料GACD與針對串流1的串流可用記憶通道狀態資料SSCD_S1進行前述資料運算OPN來產生針對串流1的串流可用記憶通道狀態資料SACD_S1。如圖7所示,整體可用記憶通道狀態資料(GACD)為「01000001」,針對串流1的串流可用記憶通道狀態資料SSCD_S1為「01000001」,則串流可用記憶通道狀態資料SACD_S1為「01000001」。
圖8為針對另一串流(如串流1)執行圖3中步驟S30至步驟S50之一實施例之示意圖。依據步驟S30,控制器100依據針對串流1的串流可用記憶通道狀態資料SACD_S1而選擇可用的記憶通道。如圖6中所示,串流可用記憶通道狀態資料SACD_S1為「01000001」,這個示例表示在目前有記憶通道1、7可以用來寫入串流1的資料,控制器100可以選擇記憶通道1、7中至少一個或全部來寫入串流1的資料。在圖7的示例中,控制器100選擇了其中的位元1、7(如以虛線橢圓框示意),表示被選擇的可用的記憶通道為記憶通道1、7。控制器100據以對應地分配記憶通道1、7來儲存串流1的資料。依據步驟S40,控制器100就該被選擇的可用的記憶通道(如記憶通道1、7),更新該整體可用記憶通道狀態資料(GACD)以表示該被選擇的可用的記憶通道(如記憶通道1、7)已被分配作為寫入串流資料之用。在圖7的示例中,將整體可用記憶通道狀態資料(GACD)中對應於記憶通道1、7的位元設為位元0,則更新後整體可用記憶通道狀態資料(GACD)為「00000000」。另一方面,依據步驟S50,就該被選擇的可用的記憶通道(如記憶通道1、7),更新針對串流1的串流適用記憶通道狀態資料SSCD_S1,以表示該被選擇的可用的記憶通道已被分配作為針對串流1的寫入串流資料之用。在圖7的
示例中,將串流適用記憶通道狀態資料SSCD_S1中對應於記憶通道1、7的位元設為位元0,則更新後串流適用記憶通道狀態資料SSCD_S1為「00000000」。
請參考圖9,其為圖3的方法的另一實施例之示意圖。承上述圖8的示例,如圖8所示,當針對一串流(如串流1)的串流適用記憶通道狀態資料(如SSCD_S1)的內容(如「00000000」)表示經過針對該串流的一輪的分配(如經過步驟S20~S50的一次或多次執行)以後,使得該串流的資料(至少部分)已被平均地分配至所有記憶通道時,如圖9所示,重置針對該串流(如串流1)的串流適用記憶通道狀態資料(如SSCD_S1)的內容,例如重置為「11111111」,以表示準備針對後續的串流1的資料透過重複步驟S20~S50繼續進行分配。在一些應用情景中,針對該串流的這一輪的分配完成後,串流1可能有新的寫入資料,或者目前針對該串流的這一輪的分配後,串流1的資料仍有尚未分配好的寫入資料。在另一些應用情景中,在重置該串流(如串流1)的串流適用記憶通道狀態資料(如SSCD_S1)的內容後,串流1可以被指派為代表另一應用程式的串流,或同一應用程式。
此外,如圖8所示,當整體可用記憶通道狀態資料(GACD)的內容(如「00000000」)表示經過針對該等記憶通道(如記憶通道0~7)及該等串流(即整體來說)的一輪的分配(如經過針對至少一個或以上的串流,執行步驟S20~S50的一次或多次)以後,使得至少一個串流的資料(至少部分)已被平均地分配至所有記憶通道時,如圖9所示,重置整體可用記憶通道狀態資料(GACD)的內容,例如重置為「11111111」,以表示準備針對後續存在的串流的資料透過重複步驟S20~S50繼續進行分配。在一些應用情景中,針對整體的這一輪的分配完成後,可能仍有串流(例如串流0、串流P)仍有寫入資料,或者針對整體的目前這一輪的分配後,有新的串流的資料。
於一些實施例中,在該步驟S50之後,可選地,該方法更包括,發出針對該串流以及該被選擇的可用的記憶通道進行寫入運作的通知。例如,控制器100可以被配置或程式化為,在更新針對一串流(如圖6的實施例示意的串流0)的串流適用記憶通道狀態資料(如SSCD_S0)以後,在控制器100中發出針對該串流(如串流0)以及該被選擇的可用的記憶通道(如記憶通道3、4)進行寫入運作的內部通知。舉例而言,請參考圖1及圖3,在控制器100中實現圖3中的快閃記憶體轉換層320時,閃記憶體轉換層320包含多個負責不同的功能的模組,例如基於圖3的方法的模組(如稱為「串流資料分配模組」)、資料寫入模組以及其他模組。對於本實施例來說,在更新串流0的串流適用記憶通道狀態資料SSCD_S0以後,在控制器100中串流資料分配模組發出針對串流0以及該被選擇的可用的記憶通道3、4進行寫入運作的內部的通知至資料寫入模組,啟動資料寫入模組進行相關的資料寫入運作。此外,控制器100可以被配置或程式化為,在更新針對另一串流(如圖8的實施例示意的串流1)的串流適用記憶通道狀態資料(如SSCD_S1)以後,也可在控制器100中發出針對該串流(如串流1)以及該被選擇的可用的記憶通道(如記憶通道1、7)進行寫入運作的內部的通知。
於一實施例中,可選地,該方法更包括,在該整體可用記憶通道狀態資料(GACD)(如為「00000000」)表示該等記憶通道中的各個已被分配作為寫入串流資料之用時,發出針對該等記憶通道進行寫入運作的通知。例如,控制器100可以被配置或程式化為,在整體可用記憶通道狀態資料(GACD)為「00000000」時,在控制器100中串流資料分配模組發出針對所有記憶通道進行寫入運作的內部通知至資料寫入模組,啟動資料寫入模組進行相關的資料寫入運作。
圖10為基於圖3的方法的另一實施例之示意流程圖。圖10的方法可應用於包括控制器100及記憶體200如圖1儲存裝置。控制器100透過多個記憶通道(如有N個)耦接至該等記憶體晶片(如每個記憶通道有M個,即共有NxM個記憶體晶片),用以處理多個串流的串流資料寫入。
如步驟S100所示,控制器100提供整體可用記憶通道狀態資料(GACD)以及針對多個串流中的至少一串流的串流適用記憶通道狀態資料(SSCD)。此兩種狀態的意義例如前述關於圖3的步驟S10的示例所述。舉例而言,如以位元陣列來表示上述兩種狀態資料,在初始化時,將整體可用記憶通道狀態資料(GACD)的所有位元設定為1,並將針對至少一串流的串流適用記憶通道狀態資料(SSCD)的所有位元設定為1。
如步驟S110所示,控制器100基於至少一判斷基準來決定是否要開始針對至少一串流而進行基於圖3的步驟S20~S50,從而執行關於寫入運作的分配方式,對於寫入暫存器(write buffer)中的串流資料進行分配。在本實施例中,此判斷基準是可選的或有彈性的,可依據實現時控制器100的排程策略(scheduling policy)而設計判斷基準,本發明的實現並不受此判斷基準的限制。在一些實施例中,該判斷基準可以是,寫入暫存器(write buffer)中的關於串流資料的數量是否大於或等於暫存器門檻值,其中關於串流資料的數量可以是指某一串流資料量的資料量、目前所有串流資料的總資料量、或串流的總數量或其他合適的參數)。譬如,當關於串流資料的數量(如串流的總數量)大於暫存器門檻值(如3)時,則步驟S110的判斷結果為是;若否,則判斷結果為否。此外,在另一實施例中,該判斷基準可以是,空閒時間(idle time)是否大於或等於時間門檻值。
若空閒時間大於或等於時間門檻值,則步驟S110的判斷結果為是;若否,則判斷結果為否。若步驟S110的判斷結果為是,則執行以下步驟。
如步驟S120所示,從多個串流中選擇一串流。如有P+1個串流(其中P為非零的正整數),從串流0~P中的選擇一個串流X(其中X>=0或X<=P)。在本實施例中,步驟S120的選擇串流的判斷基準是可選的或有彈性的,可依據實現時控制器100的排程策略而進行選擇。舉例而言,選擇串流的判斷基準可以基於關於串流的優先權(priority)、等待時間(waiting time)、資料量或其他相關的、合適的參數,或多個參數而確定。本發明的實現並不受此選擇串流的判斷基準的限制。
如步驟S130所示,控制器100基於整體可用記憶通道狀態資料(GACD)以及針對串流X的串流適用記憶通道狀態資料(如SSCD_SX),產生針對串流X的串流可用記憶通道狀態資料(如SACD_SX),其中針對串流X的串流可用記憶通道狀態資料SACD_SX表示N個記憶通道中的各個是否可用於被分配作為針對串流X的寫入串流資料之用。
如步驟S140所示,控制器100依據針對串流X的串流可用記憶通道狀態資料SACD_SX而選擇可用的記憶通道。舉例而言,請參考前述圖5或圖7的實施例。
如步驟S150所示,就步驟S140中的被選擇的可用的記憶通道,更新整體可用記憶通道狀態資料(GACD),以表示該被選擇的可用的記憶通道已被分配作為寫入串流資料之用;以及,相似地,更新針對該串流X的串流適用記憶通道狀態資料SSCD_SX,以表示該被選擇的可用的記憶通道已被分配作為針對
該串流的寫入串流資料之用。步驟S150是基於圖3的步驟S40及S50而進行的,舉例而言,請參考前述圖6或圖8的實施例。
如步驟S160所示,在該步驟S150之後,可選地,圖10的方法更可包括,發出針對串流X以及在步驟S140中被選擇的可用的記憶通道進行寫入運作的通知。舉例而言,請參考前述關於圖6或圖8的相關實施例。
如步驟S170所示,控制器100判斷針對串流X的串流適用記憶通道狀態資料SSCD_SX的內容是否表示串流X的資料(至少部分)已被平均地分配至所有記憶通道。若串流適用記憶通道狀態資料SSCD_SX的內容等於例如「00000000」時,則步驟S170的判斷結果為是;否則,則步驟S170的判斷結果為否。如果步驟S170的判斷結果為是,則執行步驟S180。如果步驟S170的判斷結果為否,則執行步驟S190。
如步驟S180所示,控制器100將針對串流X的串流適用記憶通道狀態資料SSCD_SX的內容重置,例如重置為「11111111」。請參考關於圖8及圖9的相關於重置狀態資料的實施例。
如步驟S190所示,控制器100判斷整體可用記憶通道狀態資料(GACD)的內容是否表示針對N記憶通道及至少一個被選擇的串流(可有是P+1串流的部分或全部)作整體性一輪的分配以後,使得被選擇的串流的資料已被平均地分配至所有記憶通道。例如,若整體可用記憶通道狀態資料(GACD)的內容等於例如「00000000」時,則步驟S190的判斷結果為是;否則,則步驟S190的判斷結果為否。如果步驟S190的判斷結果為是,則執行步驟S200。如果步驟S190的判斷結果為否,則從步驟S110開始,針對另一個被選擇的串流進行步驟S120及其後續的流程,以進行針對個別串流的寫入資料的分配。
如步驟S200所示,控制器100將整體可用記憶通道狀態資料(GACD)的內容重置,例如重置為「11111111」。請參考關於圖8及圖9的相關於重置狀態資料的實施例。
如步驟S210所示,可選地,在步驟S200以後,圖10的方法更包括,發出針對該等記憶通道進行寫入運作的通知。例如,控制器100可以被配置或程式化為,在控制器100中串流資料分配模組發出針對所有記憶通道進行寫入運作的內部通知至資料寫入模組,啟動資料寫入模組進行相關的資料寫入運作。舉例而言,請參考關於發出通知的實施例。
在上述圖10的方法的實施例中,步驟S160、S210是可選的,故於一些示例中,於步驟S150之後可以繼續執行步驟S170,及/或於步驟S200之後可以從步驟S110或S120開始,繼續執行後續的步驟以進行針對被選擇的串流的寫入資料的分配動作。
請參考圖11,其為應用圖10的儲存裝置的方法所得到的寫入資料排列示例的示意圖。如圖11上方橫向排列的多個格子示意,儲存裝置的寫入暫存器WB中有多個串流資料(如5個串流),其中每個格子中的符號,如「S1,0」代表串流1的第0個資料頁(page)(或稱串流1的資料頁0),如「S1,1」代表串流1的第1個資料頁(或稱串流1的資料頁1),如「SX,Y」代表串流X的第Y個資料頁(或稱串流X的資料頁Y),且X、Y為非負整數。圖11的下方的格子陣列(如7x4個格子)代表將圖10的儲存裝置的方法對於寫入暫存器WB的5個串流資料進行串流資料分配所得到的寫入資料排列WSA的示例的示意圖。在圖11中,寫入資料排列WSA的每一直行的格子分別對應到某一記憶通道(如記憶通道0~7中任一)中所提供的儲存位置,該等儲存位置以資料頁為單位,如最左側第一個直行代表記憶通道0所
提供的儲存位置0~3,從上至下分別儲存了串流1的資料頁0(S1,0)、串流3的資料頁3(S3,3)、串流2的資料頁3(S2,3)、串流4的資料頁3(S4,3),其他直行的格子所代表的意義可如此類推,故不再贅述。為了方便說明,圖11只顯示了每一個記憶通道所提供的儲存位置的一部分而已,此外,對於每一個記憶通道所提供的儲存位置可以利用一個或以上的記憶體晶片來實現。上述關於圖11的示例的說明只是為了說明圖10的儲存裝置的方法可以適用的配置的示例而已,本發明的實現並不受此示例限制。
請參考圖11,串流2有第0~7頁的寫入資料,故應用圖10的儲存裝置的方法於串流2,控制器100可以將串流2的第0~7頁的寫入資料平均地分配到記憶通道0~7之中,如寫入資料排列WSA中具有粗線方框的格子示意串流2的資料頁分配到記憶通道0~7的儲存位置中。請參考圖12,其為依據圖11的寫入資料分配排列的示例由儲存裝置輸出某串流(如串流2)的資料時的示例的示意圖。如圖12所示,寫入資料排列WSA中具有粗線方框的格子伴隨著向上的箭頭,這是示意串流2的多個資料頁可以分別同時由記憶通道0~7的儲存位置被讀取,由於是平行處理的緣故,可以獲得增強的讀取效率。另外,在圖11的示例中,串流3亦有第0~7頁的寫入資料,故也相似地能達成同樣的效果。
在實際的應用情景中,各個串流的總資料量都有差異,例如串流1有第0~5頁,串流4及串流5有第0~4頁,故應用圖10的儲存裝置的方法於所有的串流1~5以後,串流1、4、5中各個串流的資料頁也能夠平均地分配到不同記憶通道中。整體而言,串流的資料可以更為均勻地分配到記憶通道中合適的儲存位置,以提供更好的耐久性或提高性能,如可以獲得增強的讀取效率。
在一些實施例中,提供一種儲存裝置包括:多個記憶體晶片(如圖1中記憶體200所示)和控制器(如圖1的控制器100)。控制器透過多個記憶通道耦接至該等記憶體晶片,用以處理多個串流的串流資料寫入,其中控制器100被配置為執行多個運作,該等運作包括對應至圖3的控制方式中步驟S10~S50的運作。在一些實施例中,該儲存裝置更可被配置或被程式化為實現如上基於圖3的方法的多個實施例中的至少一個或其組合。該儲存裝置可以實現為固態儲存裝置(SSD)、通用快閃記憶體(UFS)、嵌入式多媒體卡(eMMC)或其他任何合適的儲存裝置或基於儲存裝置的產品。
此外,在上述關於儲存裝置的實施例(如圖1、圖2)中,處理單元110、記憶通道控制單元140、主機介面單元150中至少一者或其組合,係可以利用一個或多個電路來實現,如微控制器、處理器、或數位訊號處理器。或是可以基於使用硬體描述語言(HDL)或本領域技術人員所熟悉的數位電路的任何其他設計方法的技術進行設計,並且可以基於使用現場可程式邏輯閘陣列(field programmable gate array,FPGA)、或特定積體電路(application specific integrated circuit,ASIC)或複雜可編程邏輯器件(CPLD)之類的電路中之一個或多個電路來實現,亦可使用專屬的電路或模組來實現。再者,記憶通道控制單元亦可利用軟體方式如以行程、執行緒、程式模組或其他軟體方式來實現。然而,本發明之實現並不受此等例子所限制。此外,前述圖3的步驟S10~S50、圖4~圖9、或圖10中的步驟亦可利用硬體電路來加以實現,如邏輯電路或其他合適的數位電路來實現。
此外,在一些實施例中,提出一種非暫態的記錄媒體,其記錄用以讓一運算裝置(如前述圖1或2所示的儲存裝置),藉由儲存裝置中的控制器來執
行用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法之程式碼,其中方法包含依據圖3之方法的任一實施例或其組合。舉例而言,程式碼是一個或多個程式或程式模組,如用於實現依據圖3的步驟S10至S50、圖4~圖9、或圖10中的步驟,此等模組之程式碼係協同運作,且可以用任何適合的順序或平行而被執行。當運算裝置執行此程式碼時,能導致運算裝置執行基於圖3之用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法之一實施例。上述可讀取記錄媒體例如為靭體、ROM、RAM、記憶卡、光學式資訊儲存媒體、磁式資訊儲存媒體或其他任何種類的儲存媒體或記憶體,且本發明之實現方式並不受此例子限制。
藉此,上述實施方式提供了一種用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體,其可實現關於寫入運作的分配方式,可適用於處理來自主機的多個應用程式的串流的寫入運作,為這些串流中的至少一個串流的寫入運作進行個別的分配,從而有助於將該串流對應的寫入資料以較為均勻地分佈在儲存裝置的多個通道的記憶體晶片中儲存。藉此,有助於提高該串流的資料從該儲存裝置中讀取時的效能。
本發明在上文中已以較佳實施例揭露,然熟習本項技術者應理解的是,該實施例僅用於描繪本發明,而不應解讀為限制本發明之範圍。應注意的是,舉凡與該實施例等效之變化與置換,均應設為涵蓋於本發明之範疇內。因此,本發明之保護範圍當以申請專利範圍所界定者為準。
S10~S50:步驟
Claims (11)
- 一種用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法,該方法包括以下步驟:(a)由該儲存裝置的用以處理多個串流的串流資料寫入的一控制器提供整體可用記憶通道狀態資料以及針對該等串流中之一串流的串流適用記憶通道狀態資料,其中該整體可用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為寫入串流資料之用,該串流適用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為針對該串流的寫入串流資料之用;(b)由該控制器基於該整體可用記憶通道狀態資料以及針對該串流的串流適用記憶通道狀態資料,產生針對該串流的串流可用記憶通道狀態資料,其中針對該串流的串流可用記憶通道狀態資料表示該等記憶通道中的各個是否可用於被分配作為針對該串流的寫入串流資料之用;(c)由該控制器依據針對該串流的串流可用記憶通道狀態資料而選擇可用的記憶通道;(d)就該被選擇的可用的記憶通道,更新該整體可用記憶通道狀態資料,以表示該被選擇的可用的記憶通道已被分配作為寫入串流資料之用;以及(e)就該被選擇的可用的記憶通道,更新針對該串流的串流適用記憶通道狀態資料,以表示該被選擇的可用的記憶通道已被分配作為針對該串流的寫入串流資料之用。
- 如請求項1所述之方法,其中該控制器用於分配該等記憶通道以進行該等串流的寫入串流資料,並提供針對該等串流分別提供個別的串流適用記憶通道狀態資料。
- 如請求項2所述之方法,其中當該控制器針對該等串流的該串流執行該步驟(b)至步驟(e)之後,該控制器針對該等串流的另一串流執行該步驟(b)至步驟(e)。
- 如請求項1所述之方法,其中在該步驟(e)之後,該方法更包括,發出針對該串流以及該被選擇的可用的記憶通道進行寫入運作的通知。
- 如請求項1所述之方法,其中該方法更包括,在該整體可用記憶通道狀態資料表示該等記憶通道中的各個已被分配作為寫入串流資料之用時,發出針對該等記憶通道進行寫入運作的通知。
- 一種記錄媒體,其記錄用以讓一儲存裝置執行如請求項1至5中任一項所述之用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法的程式碼。
- 一種儲存裝置,包括:多個記憶體晶片;和一控制器,該控制器透過多個記憶通道耦接至該等記憶體晶片,用以處理多個串流的串流資料寫入,其中該控制器被配置為執行多個運作,該等運作包括:(a)提供整體可用記憶通道狀態資料以及針對該等串流中之一串流的串流適用記憶通道狀態資料,其中該整體可用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為寫入串流資料之用,該串流適用記憶通道狀態資料表示該等記憶通道中的各個是否已被分配作為針對該串流的寫入串流資料之用;(b)基於該整體可用記憶通道狀態資料以及針對該串流的串流適用記憶通道狀態資料,產生針對該串流的串流可用記憶通道狀態資料,其中針對該串流的串流可用記憶通道狀態資料表示該等記憶通道中的各個是否可用於被分配作為針對該串流的寫入串流資料之用; (c)依據針對該串流的串流可用記憶通道狀態資料而選擇可用的記憶通道;(d)就該被選擇的可用的記憶通道,更新該整體可用記憶通道狀態資料以表示該被選擇的可用的記憶通道已被分配作為寫入串流資料之用;以及(e)就該被選擇的可用的記憶通道,更新針對該串流的串流適用記憶通道狀態資料以表示該被選擇的可用的記憶通道已被分配作為針對該串流的寫入串流資料之用。
- 如請求項7所述之儲存裝置,其中該控制器用於分配該等記憶通道以進行該等串流的寫入串流資料,並針對該等串流分別提供個別的串流適用記憶通道狀態資料。
- 如請求項8所述之儲存裝置,其中當該控制器針對該等串流的該串流執行該運作(b)至運作(e)之後,該控制器針對該等串流的另一串流執行該運作(b)至運作(e)。
- 如請求項7所述之儲存裝置,其中在該運作(e)之後,該等運作更包括,發出針對該串流以及該被選擇的可用的記憶通道進行寫入運作的通知。
- 如請求項7所述之儲存裝置,其中該等運作更包括,在該整體可用記憶通道狀態資料表示該等記憶通道中的各個已被分配作為寫入串流資料之用時,發出針對該等記憶通道進行寫入運作的通知。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109145265A TWI854078B (zh) | 2020-12-21 | 2020-12-21 | 用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體 |
| US17/529,907 US11687275B2 (en) | 2020-12-21 | 2021-11-18 | Method for assigning plurality of channels of storage device for stream data writing, storage device and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109145265A TWI854078B (zh) | 2020-12-21 | 2020-12-21 | 用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202225987A TW202225987A (zh) | 2022-07-01 |
| TWI854078B true TWI854078B (zh) | 2024-09-01 |
Family
ID=82023468
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109145265A TWI854078B (zh) | 2020-12-21 | 2020-12-21 | 用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11687275B2 (zh) |
| TW (1) | TWI854078B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2024131387A (ja) | 2023-03-16 | 2024-09-30 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| TWI850095B (zh) * | 2023-09-01 | 2024-07-21 | 日商鎧俠股份有限公司 | 固態儲存裝置及其指令擷取方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200525362A (en) * | 2003-11-25 | 2005-08-01 | Intel Corp | Tracking progress of data streamer |
| TW201202924A (en) * | 2010-01-22 | 2012-01-16 | Synopsys Inc | Method and system for packet switch based logic replication |
| WO2019203915A1 (en) * | 2018-04-19 | 2019-10-24 | Western Digital Technologies, Inc. | Storage cache management |
| US20200081648A1 (en) * | 2018-09-06 | 2020-03-12 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
| US9760281B2 (en) | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
| US10032488B1 (en) | 2016-12-29 | 2018-07-24 | Sandisk Technologies Llc | System and method of managing data in a non-volatile memory having a staging sub-drive |
| US10101942B1 (en) | 2017-04-17 | 2018-10-16 | Sandisk Technologies Llc | System and method for hybrid push-pull data management in a non-volatile memory |
| US10452537B2 (en) | 2017-06-12 | 2019-10-22 | Western Digital Technologies, Inc. | System and method of direct write and mapping of data in a non-volatile memory having multiple sub-drives |
| US11481118B2 (en) | 2019-01-11 | 2022-10-25 | Marvell Asia Pte, Ltd. | Storage media programming with adaptive write buffer release |
| WO2020174428A2 (en) | 2019-02-26 | 2020-09-03 | Marvell Asia Pte, Ltd. | Cache management of logical-physical translation metadata |
| CN114691017A (zh) * | 2020-12-30 | 2022-07-01 | 爱思开海力士有限公司 | 用以分配存储设备的多个存储通道以进行串流数据写入的方法、存储设备及其存储介质 |
-
2020
- 2020-12-21 TW TW109145265A patent/TWI854078B/zh active
-
2021
- 2021-11-18 US US17/529,907 patent/US11687275B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200525362A (en) * | 2003-11-25 | 2005-08-01 | Intel Corp | Tracking progress of data streamer |
| TW201202924A (en) * | 2010-01-22 | 2012-01-16 | Synopsys Inc | Method and system for packet switch based logic replication |
| WO2019203915A1 (en) * | 2018-04-19 | 2019-10-24 | Western Digital Technologies, Inc. | Storage cache management |
| US20200081648A1 (en) * | 2018-09-06 | 2020-03-12 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
Also Published As
| Publication number | Publication date |
|---|---|
| US20220197543A1 (en) | 2022-06-23 |
| US11687275B2 (en) | 2023-06-27 |
| TW202225987A (zh) | 2022-07-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109213440B (zh) | 存储器系统、存储器控制器及其操作方法 | |
| TWI463317B (zh) | Memory device and control method thereof | |
| CN104471546B (zh) | 用于提高固态硬盘可靠性的有效的磁盘冗余阵列技法 | |
| CN113924545B (zh) | 基于存储器子系统中的媒体单元的可用性的预测性数据传输 | |
| US9666244B2 (en) | Dividing a storage procedure | |
| US10795827B2 (en) | Adaptive management of intermediate storage | |
| US20220374350A1 (en) | Apparatus and method and computer program product for handling flash physical-resource sets | |
| CN113168374A (zh) | 写入命令在分区命名空间中的保持 | |
| TWI864115B (zh) | 儲存裝置、儲存裝置的控制方法及記錄媒體 | |
| CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
| JP2008198206A (ja) | データ処理システム並びにその動作方法、データ処理装置、そしてデータ格納装置の動作方法 | |
| CN110032333A (zh) | 存储器系统及其操作方法 | |
| KR102387935B1 (ko) | 공용 메모리 영역 및 전용 메모리 영역을 포함하는 데이터 저장 장치 | |
| CN112306394A (zh) | 用于改进qos等待时间的方法和存储设备 | |
| CN106649144A (zh) | 数据储存设备及其操作方法 | |
| US11429314B2 (en) | Storage device, storage system and operating method thereof | |
| CN114063893A (zh) | 数据储存装置与数据处理方法 | |
| KR20220135786A (ko) | 메모리 시스템에 포함된 복수의 메모리 장치에서 수행되는 동작에 대해 스케줄링하는 장치 및 방법 | |
| TWI786288B (zh) | 儲存裝置、儲存裝置的控制方法及記錄媒體 | |
| CN110489056A (zh) | 控制器以及包括该控制器的存储器系统 | |
| TWI854078B (zh) | 用以分配儲存裝置的多個記憶通道以進行串流資料寫入的方法、儲存裝置及其記錄媒體 | |
| CN118901052A (zh) | 基于存储设备热负载的受控系统管理 | |
| CN114691017A (zh) | 用以分配存储设备的多个存储通道以进行串流数据写入的方法、存储设备及其存储介质 | |
| TWI805505B (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 | |
| CN118349164A (zh) | 支持多命名空间的存储装置及运行其的方法 |