TWI668704B - 資料處理方法及使用所述方法的儲存控制器 - Google Patents
資料處理方法及使用所述方法的儲存控制器 Download PDFInfo
- Publication number
- TWI668704B TWI668704B TW107134658A TW107134658A TWI668704B TW I668704 B TWI668704 B TW I668704B TW 107134658 A TW107134658 A TW 107134658A TW 107134658 A TW107134658 A TW 107134658A TW I668704 B TWI668704 B TW I668704B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- write
- full
- buffer
- item
- Prior art date
Links
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/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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
Abstract
本發明提出一種資料處理方法及儲存控制器。資料處理方法包括:接收寫入指令對應的多個寫入扇區並將寫入扇區傳送到部分區塊緩衝器或滿區塊緩衝器;當對應第一區塊的寫入扇區被傳送到部分區塊緩衝器時,啟動對應第一區塊的計時器;當部分區塊緩衝器接收到對應第一區塊的第一寫入扇區,且第一寫入扇區與部分區塊緩衝器中對應第一區塊的寫入扇區形成滿的第一區塊時,第一區塊在計時器到期之前或到期時被傳送到滿區塊緩衝器;以及當計時器到期且滿的第一區塊還沒在部分區塊緩衝器中形成時,根據對應第一區塊的寫入扇區進行讀取修改寫入操作。
Description
本發明是有關於一種資料處理方法及使用所述方法的儲存控制器,且特別是有關於一種能夠減少讀取修改寫入(Read-Modify-Write,RMW)操作的執行次數的資料處理方法及使用所述方法的儲存控制器。
對於儲存裝置而言,內部資料緩衝器常在儲存控制器中使用以調節主機系統及儲存媒體之間的資料傳輸。內部資料緩衝器的單位大小(例如,區塊大小)通常是多個主機邏輯區塊大小。這是基於主機介面協定並能被檔案系統所利用。也就是說,從主機邏輯區塊位址(Logic Block Address,LBA)到內部區塊位址具有映射關係。舉例來說,主機的邏輯區塊大小可為512位元組且內部緩衝器的單位大小可為4千位元組(例如,一個單位對應一個區塊且一個區塊包括8個大小為512位元組的扇區)。
對於主機輸入輸出寫入指令的傳輸,可能會有最先的幾個主機邏輯區塊或最後的幾個主機邏輯區塊無法在儲存系統中形
成一個完整的內部區塊。在使用區塊大小作為邏輯轉實體映射表的儲存系統中,讀取修改寫入操作需要用於這種類型的部分區塊寫入。然而,讀取修改寫入操作花費很多系統資源且降低系統性能。此外,對於有些儲存媒體(例如,反及快閃記憶體),讀取修改寫入操作會減少儲存媒體的壽命。因此,如何減少儲存裝置中讀取修改寫入操作的執行次數,是本領域技術人員應致力的目標。
本發明提供一種資料處理方法及使用所述方法的儲存控制器,能夠減少讀取修改寫入操作的執行次數。
本發明提出一種資料處理方法,適用於儲存控制器。儲存控制器用於存取儲存媒體並耦接至主機系統。資料處理方法包括:接收寫入指令對應的多個寫入扇區並將寫入扇區傳送到部分區塊緩衝器或滿區塊緩衝器,其中寫入扇區對應至少一區塊;當對應第一區塊的寫入扇區被傳送到部分區塊緩衝器時,啟動對應第一區塊的計時器;當部分區塊緩衝器接收到對應第一區塊的至少一第一寫入扇區,且至少一第一寫入扇區與部分區塊緩衝器中對應第一區塊的寫入扇區形成滿的第一區塊時,第一區塊在計時器到期之前或在計時器到期時從部分區塊緩衝器被傳送到滿區塊緩衝器;以及當計時器到期且滿的第一區塊還沒在部分區塊緩衝器中形成時,根據對應第一區塊的寫入扇區進行讀取修改寫入操作。
在本發明的一實施例中,當滿區塊緩衝器接收到對應第二區塊的寫入扇區時,部分區塊緩衝器中對應第二區塊的寫入扇區被無效。
在本發明的一實施例中,當滿區塊緩衝器接收到對應第二區塊的寫入扇區時,對應第二區塊的讀取修改寫入操作被無效。
在本發明的一實施例中,當寫入扇區可形成滿區塊時,寫入扇區被傳送到滿區塊緩衝器;以及當寫入扇區無法形成滿區塊時,寫入扇區被傳送到部分區塊緩衝器。
在本發明的一實施例中,上述讀取修改寫入操作包括從儲存媒體取得至少一讀取扇區,並將對應第一區塊的寫入扇區與至少一讀取扇區傳送到滿區塊緩衝器。
在本發明的一實施例中,當至少一第一寫入扇區與部分區塊緩衝器中對應第一區塊的寫入扇區形成滿的第一區塊時,計時器被重置。
在本發明的一實施例中,當計時器到期並根據對應第一區塊的寫入扇區進行讀取修改寫入操作時,計時器被重置。
在本發明的一實施例中,當儲存控制器支援多個邏輯區塊位址大小時,區塊大小等於邏輯區塊位址大小的公倍數且扇區大小為邏輯區塊位址大小的公因數。
在本發明的一實施例中,上述滿區塊緩衝器及部分區塊緩衝器各包括多個項目(entry),每個項目的容量等於區塊大小且部分區塊緩衝器的每個項目對應一個計時器。
在本發明的一實施例中,當寫入扇區無法形成滿區塊且部分區塊緩衝器的每個項目都具有有效資料時,選擇計時器最接近到期的部分區塊緩衝器的項目的第一項目進行讀取修改寫入操作並無效第一項目。
在本發明的一實施例中,當滿的第一區塊在計時器到期之前形成且部分區塊緩衝器在計時器到期之前接收到對應第一區塊的第二寫入扇區,則將第二寫入扇區覆寫到部分區塊緩衝器中的滿的該第一區塊。
本發明提出一種儲存控制器,用於存取儲存媒體並耦接至主機系統。儲存控制器包括:部分區塊緩衝器;滿區塊緩衝器;寫入資料路由器,耦接到部分區塊緩衝器及滿區塊緩衝器;以及處理器,耦接到寫入資料路由器、部分區塊緩衝器及滿區塊緩衝器。寫入資料路由器接收寫入指令對應的多個寫入扇區並將寫入扇區傳送到部分區塊緩衝器或滿區塊緩衝器,其中寫入扇區對應至少一區塊。當對應第一區塊的寫入扇區被傳送到部分區塊緩衝器時,處理器啟動對應第一區塊的計時器。當部分區塊緩衝器接收到對應第一區塊的至少一第一寫入扇區,且至少一第一寫入扇區與部分區塊緩衝器中對應第一區塊的寫入扇區形成滿的第一區塊時,第一區塊在計時器到期之前或在計時器到期時從部分區塊緩衝器被傳送到滿區塊緩衝器。當計時器到期且滿的第一區塊還沒在部分區塊緩衝器中形成時,處理器根據對應第一區塊的寫入扇區進行讀取修改寫入操作。
在本發明的一實施例中,當滿區塊緩衝器接收到對應第二區塊的寫入扇區時,部分區塊緩衝器中對應第二區塊的寫入扇區被無效。
在本發明的一實施例中,當滿區塊緩衝器接收到對應第二區塊的寫入扇區時,對應第二區塊的讀取修改寫入操作被無效。
在本發明的一實施例中,當寫入扇區可形成滿區塊時,寫入扇區被傳送到滿區塊緩衝器;以及當寫入扇區無法形成滿區塊時,寫入扇區被傳送到部分區塊緩衝器。
在本發明的一實施例中,上述讀取修改寫入操作包括從儲存媒體取得至少一讀取扇區,並將對應第一區塊的寫入扇區與至少一讀取扇區傳送到滿區塊緩衝器。
在本發明的一實施例中,當至少一第一寫入扇區與部分區塊緩衝器中對應第一區塊的寫入扇區形成滿的第一區塊時,計時器被重置。
在本發明的一實施例中,當計時器到期並根據對應第一區塊的寫入扇區進行讀取修改寫入操作時,計時器被重置。
在本發明的一實施例中,當儲存控制器支援多個邏輯區塊位址大小時,區塊大小等於邏輯區塊位址大小的公倍數且扇區大小為邏輯區塊位址大小的公因數。
在本發明的一實施例中,上述滿區塊緩衝器及部分區塊緩衝器各包括多個項目(entry),每個項目的容量等於區塊大小且部分區塊緩衝器的每個項目對應一個計時器。
在本發明的一實施例中,當寫入扇區無法形成滿區塊且部分區塊緩衝器的每個項目都具有有效資料時,處理器選擇計時器最接近到期的部分區塊緩衝器的項目的第一項目進行讀取修改寫入操作並無效第一項目。
在本發明的一實施例中,當滿的第一區塊在計時器到期之前形成且部分區塊緩衝器在計時器到期之前接收到對應第一區塊的第二寫入扇區,則處理器將第二寫入扇區覆寫到部分區塊緩衝器中的滿的該第一區塊。
基於上述,本發明的資料處理方法及使用所述方法的儲存控制器可將無法形成滿區塊的寫入扇區傳送到部分區塊緩衝器,並將能夠形成滿區塊的寫入扇區傳送到滿區塊緩衝器。當部分區塊被傳送到部分區塊緩衝器時,計時器被啟動。當部分區塊緩衝器的中對應一個區塊的項目的空扇區在計時器到期之前被填滿時,處理器將填滿的區塊傳送到滿區塊緩衝器。當部分區塊緩衝器的中對應一個區塊的項目在計時器到期時還沒被填滿,則處理器對沒還被填滿的區塊進行讀取修改寫入操作。透過本發明的資料處理方法及使用所述方法的儲存控制器,可有效地減少讀取修改寫入操作的執行次數,從而節省系統資源並提高系統性能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100、200‧‧‧儲存裝置
110、210‧‧‧儲存控制器
120、220‧‧‧動態隨機存取記憶體
130、230‧‧‧儲存媒體
140、240‧‧‧資料輸入區塊
150‧‧‧區塊資料緩衝器
245‧‧‧寫入資料路由器
251‧‧‧部分區塊緩衝器
252‧‧‧滿區塊緩衝器
151、253、256‧‧‧項目
254‧‧‧計時器
255‧‧‧部分區塊緩衝器資訊表
257‧‧‧滿區塊緩衝器資訊表
258‧‧‧部分區塊緩衝器資訊檢查器
160、260‧‧‧媒體介面區塊
170、270‧‧‧讀取修改寫入區塊
180、181、280、281‧‧‧處理器
290‧‧‧主機系統
291‧‧‧主機記憶體
S301~S310‧‧‧部分區塊緩衝器處理流程的步驟
S401~S414‧‧‧滿區塊緩衝器處理流程的步驟
圖1為根據本發明一實施例的儲存控制器的方塊圖。
圖2為根據本發明另一實施例的儲存控制器的方塊圖。
圖3A為根據本發明一實施例的部分區塊緩衝器處理流程的流程圖。
圖3B為根據本發明另一實施例的部分區塊緩衝器處理流程的流程圖。
圖4為根據本發明一實施例的滿區塊緩衝器處理流程的流程圖。
圖5A及圖5B為根據本發明一實施例的資料處理方法的範例。
圖6A到圖6C為根據本發明一實施例的資料處理方法的另一範例。
圖1為根據本發明一實施例的儲存控制器的方塊圖。
請參照圖1,本發明的儲存裝置100包括儲存控制器110、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)120及多個儲存媒體130。儲存控制器110的資料輸入區塊140可從主機系統190的主機記憶體191接收寫入資料。寫入資料可被傳送到區塊資料緩衝器150。區塊資料緩衝器150可包括多個項目(entry)151,且每個項目可儲存滿的(full)區塊資料或不滿
(non-full)的區塊資料。滿的區塊資料包括了對應一個區塊的所有扇區資料。不滿的區塊資料則包括了一個區塊的部分扇區資料。當一個項目儲存滿的區塊資料時,此項目的區塊資料可被傳送到媒體介面區塊160並被寫入儲存媒體130。當一個項目儲存不滿的區塊資料時,不滿的區塊資料會被傳送到讀取修改寫入區塊170利用儲存媒體130中的一到多個扇區將區塊填滿後再回傳到區塊資料緩衝器150,最後才透過媒體介面區塊160寫入儲存媒體130。儲存媒體130可為可複寫式非揮發性記憶體模組(Rewritable Non-Volatile Memory Module)。處理器180負責主機系統190的輸入輸出指令的處理。除了處理器180之外,儲存控制器110還可包括一到多個處理器181,負責主機輸入輸出指令以外的指令的處理。
在本實施例中,只要一個項目151接收到不滿的區塊資料時,處理器180或處理器181就要進行一次讀取修改寫入操作。這會花費很多系統資源並降低系統性能。
圖2為根據本發明另一實施例的儲存控制器的方塊圖。
請參照圖2,圖2與圖1相同或類似的元件就不再贅述其功能。
當資料輸入區塊240接收到一個寫入指令對應的多個寫入扇區(或稱為寫入扇區對應的寫入資料)時,會根據寫入指令資訊對每個寫入扇區分派一個區塊號碼(Block Number,BN)、一個扇區號碼(Sector Number,SN)及一個滿區塊指標(Full Block
Indicator,FBI)。在一實施例中,具有同一個區塊號碼的多個寫入扇區可具有連續的扇區號碼,且滿區塊指標用來指示一個寫入扇區是否可與同一寫入指令中扇區號碼相鄰的寫入扇區形成一個滿區塊。例如,滿區塊指標為1的寫入扇區代表此寫入扇區可與同一寫入指令中扇區號碼相鄰的寫入扇區形成一個滿區塊,而滿區塊指標為0的寫入扇區代表此寫入扇區無法與同一寫入指令中扇區號碼相鄰的寫入扇區形成一個滿區塊。
當寫入指令對應的多個寫入扇區會被傳送到寫入資料路由器245之後,寫入資料路由器245會根據每個寫入扇區的滿區塊指標將寫入扇區傳送到部分區塊緩衝器251或滿區塊緩衝器252。例如,將滿區塊指標為0的寫入扇區傳送到部分區塊緩衝器(Partial Block Buffer,PBB)251並將滿區塊指標為1的寫入扇區傳送到滿區塊緩衝器(Full Block Buffer)252。
部分區塊緩衝器251可包括一到多個項目(Entry)253。在一實施例中,每個項目的容量等於區塊大小且每個項目所包含的每個單元的容量等於扇區大小。每個項目253可對應設置一個計時器254。
部分區塊緩衝器251還可包括一個部分區塊緩衝器資訊表(PBB Information Table,PIT)255,記錄每個項目253的區塊號碼(BN)、扇區有效位元(Sector Valid Bit,SVB)、佔用位元(Occupy Bit,OB)及有效位元(Valid Bit,VB)。區塊號碼代表一個項目253對應的區塊號碼。扇區有效位元代表一個項目253中的一個單元
是否儲存對應寫入扇區的有效資料。佔用位元代表一個項目253是否正在被使用。有效位元代表一個項目253是否還可接收來自寫入資料路由器245的寫入扇區資料。
當部分區塊緩衝器251從寫入資料路由器245接收到寫入扇區的傳輸請求時,部分區塊緩衝器251會查找部分區塊緩衝器資訊表255。當部分區塊緩衝器251的其中一個項目253的OB=1且VB=1且此項目253的BN與接收的寫入扇區的BN相同時,這個寫入扇區被寫入此項目253的一個單元且此單元的SVB被更新為1。當部分區塊緩衝器251沒有項目253能符合OB=1且VB=1且此項目253的BN與接收的寫入扇區的BN相同時,部分區塊緩衝器251選擇一個OB=0的項目253並將此項目的OB與VB設定為1,起始此項目253對應的計時器254,根據扇區資料更新BN及SVB並將此扇區寫入項目253中。
當一個項目253的所有單元的SVB=1且滿區塊緩衝器252準備要接收此項目253的資料時,此項目253對應的計時器254被重置,VB被設定為0並開始傳送滿區塊的項目資料到滿區塊緩衝器252。當滿區塊的項目資料傳送完成之後,將此項目253的OB與SVB設定為0。
當一個項目253對應的計時器254已經到期且讀取修改寫入區塊270準備要處理此項目253的資料時,此項目253對應的計時器254被重置,VB被設定為0並開始傳送此項目253的部分區塊資料到讀取修改寫入區塊270。當部分區塊資料傳送完成之
後,將此項目的OB與SVB設定為0。
滿區塊緩衝器252可包括滿區塊緩衝器資訊表(FBB Information Table,FIT)257及部分區塊緩衝器資訊檢查器(PBB Information Checker,PIC)258。滿區塊緩衝器252可包括一到多個項目256且每個項目256的大小等於區塊大小。滿區塊緩衝器資訊表257記錄每個項目256的BN、SVB、OB及VB,與部分區塊緩衝器資訊表255類似。
當滿區塊緩衝器252從寫入資料路由器245接收到寫入扇區的傳輸請求時,滿區塊緩衝器252會查找滿區塊緩衝器資訊表257。當滿區塊緩衝器252的其中一個項目256的OB=1且VB=1且此項目256的BN與接收的寫入扇區的BN相同時,這個寫入扇區被寫入此項目256的一個單元且此單元的SVB被更新為1。當滿區塊緩衝器252沒有項目256能符合OB=1且VB=1且此項目256的BN與接收的寫入扇區的BN相同時,滿區塊緩衝器252選擇一個OB=0的項目256並將此項目的OB與VB設定為1,並根據扇區資料更新BN及SVB並將此扇區寫入項目256中。
值得注意的是,當寫入扇區在滿區塊緩衝器252產生一個滿區塊,也就是一個項目256的全部SVB從0被更新為1時,滿區塊緩衝器252會通知讀取修改寫入區塊270,以將與此滿區塊的區塊號碼相同的扇區的讀取修改寫入程序無效。此外,滿區塊緩衝器252還會啟動部分區塊緩衝器資訊檢查器258去掃描部分區塊緩衝器251中的部分區塊緩衝器資訊表255以判斷是否有
OB=1且VB=1的項目253的BN與滿區塊的區塊號碼相同。若找找符合此條件的項目253,則無效此項目253並將此項目253的OB、SVB、VB都設定為0。
當滿區塊緩衝器252從部分區塊緩衝器251接收到滿區塊資料傳輸請求時,選擇一個OB=0的項目256將OB與VB設定為1,根據區塊資訊更新BN及SVB(全部為1),並將滿區塊寫到此項目256。同時,通知讀取修改寫入區塊270以將與此滿區塊的區塊號碼相同的扇區的讀取修改寫入程序無效。
當滿區塊緩衝器252從讀取修改寫入區塊270接收到滿區塊資料傳輸請求時,選擇一個OB=0的項目256將OB與VB設定為1,根據區塊資訊更新BN及SVB(全部為1),並將滿區塊寫到此項目256。讀取修改寫入區塊270會將從部分區塊緩衝器251來的部分區塊資料與從媒體介面區塊260來的部分區塊資料合併成一個滿區塊,並將合併的滿區塊傳送到滿區塊緩衝器252。
在一實施例中,媒體介面區塊260會從滿區塊緩衝器252接收滿區塊資料,並藉由將基於區塊(block-based)的資料轉換成具有媒體存取協定的格式(format of media accessing protocol)的資料,以將滿區塊資料寫入到儲存媒體230。媒體介面區塊260也會藉由將具有媒體存取協定的格式的資料轉換成基於扇區的資料,以將讀取資料傳送到讀取修改寫入區塊270來進行讀取修改寫入程序。
當媒體介面區塊260準備要處理滿區塊緩衝器252的一
個項目256的項目資料時,滿區塊緩衝器252將VB設定為0並開始傳送滿區塊項目資料到媒體介面區塊260,接著當資料傳輸完成時將OB及SVB設定為0。
在一實施例中,主機系統290所定義的邏輯區塊可被分割成一到多個扇區。也就是說,扇區大小可相同於邏輯區塊大小或邏輯區塊大小的幾分之一(integer divisor)。在儲存裝置200可支援多種邏輯區塊大小的情況下,若儲存裝置200只使用一組部分區塊緩衝器251及滿區塊緩衝器252,則可選擇多種邏輯區塊大小的公因數(例如,最大公因數)作為扇區大小;若儲存裝置200使用多組部分區塊緩衝器251及滿區塊緩衝器252,則每組部分區塊緩衝器251及滿區塊緩衝器252可定義不同的扇區大小。
在一實施例中,區塊大小可定義為相同或不同於儲存媒體230的存取單元大小。在儲存裝置200可支援多種邏輯區塊大小的情況下,若儲存裝置200只使用一組部分區塊緩衝器251及滿區塊緩衝器252,則可選擇多種邏輯區塊大小的公倍數(例如,最小公倍數)作為區塊大小;若儲存裝置200使用多組部分區塊緩衝器251及滿區塊緩衝器252,則每組部分區塊緩衝器251及滿區塊緩衝器252可定義不同的區塊大小。
在一實施例中,主機系統290發送的輸入輸出指令及對應的資料傳輸可藉由主機介面協定來達成。主機介面協定例如是快速非揮發性記憶體(Non-Volatile Memory Express,NVMe)、串行ATA(Serial Advanced Technology Attachment,SATA)、通用序列匯
流排(Universal Serial Bus,USB)、小型電腦系統介面(Small Computer System Interface,SCSI)或其他協定。
值得注意的是,當寫入資料路由器245有部分區塊資料要傳送到部分區塊緩衝器251但部分區塊緩衝器251沒有項目253能符合OB=1且VB=1且此項目253的BN與接收的寫入扇區的BN相同且部分區塊緩衝器251沒有OB=0的項目253時,儲存控制器210可根據一個預定規則選出一個OB=1的項目253進行讀取修改寫入操作,或是直接暫停部分區塊資料的傳輸直到有OB=0的項目253出現。在一實施例中,上述預定規則可為選出計時器最接近到期的項目253進行讀取修改寫入操作。當寫入資料路由器245有滿區塊資料要傳送到滿區塊緩衝器252但滿區塊緩衝器252沒有OB=0的項目256時,寫入資料路由器245可暫停滿區塊資料的傳輸直到有OB=0的項目256出現。
在一實施例中,寫入資料路由器245、部分區塊緩衝器資訊表255、滿區塊緩衝器資訊表257、部分區塊緩衝器資訊檢查器258可以韌體方式或以硬體電路方式實作。本發明不限定上述元件的實作方式。
圖3A為根據本發明一實施例的部分區塊緩衝器處理流程的流程圖。
在步驟S301中,儲存控制器處於閒置狀態。
在步驟S302中,判斷是否有資料傳輸請求。
若無資料傳輸請求,則回到步驟S301。若有資料傳輸請
求,在步驟S303中,查找部分區塊緩衝器資訊表。
在步驟S304中,判斷是否有VB=1的項目具有相同BN。具體來說,判斷是否有VB=1的PBB的項目與資料傳輸請求對應的寫入扇區具有相同BN。
若沒有VB=1的項目具有相同BN,則在步驟S305中,選擇一個OB=0的項目將OB及VB設定為1,啟動計時器,更新BN及SVB並將扇區資料寫入項目,並回到步驟S301。
若有VB=1的項目具有相同BN,在步驟S306中,將扇區資料寫入此項目並更新SVB。
在步驟S307中,判斷是否產生滿區塊。
若已經產生滿區塊,在步驟S308中,重置計時器,將VB設定為0,並將滿區塊傳送到FBB,並回到步驟S301。
若尚未產生滿區塊,在步驟S309中,判斷此項目的計時器是否到期。
若此項目的計時器還沒到期,回到步驟S301。
若此項目的計時器已經到期,在步驟S310中,重置計時器,將VB設定為0,並將部分區塊的項目資料傳送到讀取修改寫入區塊,並回到步驟S301。
圖3B為根據本發明另一實施例的部分區塊緩衝器處理流程的流程圖。
圖3B的各個步驟S301到S310的內容與圖3A的各個步驟S301到S310的內容相同,但圖3B的步驟S307到S310的執行
順序與圖3A的S307到S310的執行順序不同。具體來說,在圖3A中,在產生滿區塊(S307,是)或計時器到期(S309,是)的情況下,PBB都會被釋放(即,PBB的項目資料被傳送到FBB或讀取修改寫入區塊)。然而,在圖3B中,只有在計時器到期(S309,是)時PBB才會被釋放。也就是說,在圖3B中,即使有滿區塊在計時器到期之前產生,PBB也暫時不會被釋放,使得滿區塊中的扇區資料在計時器到期之前有機會被覆寫(overwritten)。
圖4為根據本發明一實施例的滿區塊緩衝器處理流程的流程圖。
在步驟S401中,儲存控制器處於閒置狀態。
在步驟S402中,判斷是否有資料傳輸請求。
若無資料傳輸請求,則回到步驟S401。若有資料傳輸請求,在步驟S403中,判斷資料傳輸請求是否從寫入資料路由器來。
若資料傳輸請求從寫入資料路由器來,在步驟S404中,判斷是否有VB=1的FBB項目具有相同BN。具體來說,判斷是否有VB=1的FBB的項目與資料傳輸請求對應的寫入扇區具有相同BN。
若沒有VB=1的項目具有相同BN,則在步驟S405中,選擇一個OB=0的項目將OB及VB設定為1,更新BN及SVB並將扇區資料寫入項目。
若有VB=1的項目具有相同BN,則在步驟S406中,將扇區資料寫入此項目並更新SVB。
在步驟S407中,判斷是否產生滿區塊。
若已經產生滿區塊,在步驟S408中,部分區塊緩衝器資訊檢查器掃描部分區塊緩衝器資訊表。
在步驟S409中,判斷判斷是否有VB=1的PBB項目具有相同BN。
若沒有VB=1的PBB項目具有相同BN,在步驟S410中,開始傳輸滿區塊項目資料到媒體介面區塊。
若有VB=1的PBB項目具有相同BN,在步驟S411中,無效具有相同BN的PBB項目並清除此PBB項目的OB、SVB及VB。
在步驟S412中,通知讀取修改寫入區塊來無效冗餘的讀取修改寫入操作。也就是無效具有相同BN的寫入扇區的讀取修改寫入操作。
若在S403中,若資料傳輸請求不是從寫入資料路由器來,則在步驟S413中,選擇一個OB=0的項目將OB及VB設定為1,更新BN及SVB並將滿區塊資料寫入項目。
在步驟S414中,判斷請求是否從PBB來。
若請求從PBB來,則進入步驟S412。
若請求不從PBB來,代表請求是從讀取修改寫入區塊來,則進入步驟S410。
圖5A及圖5B為根據本發明一實施例的資料處理方法的範例。
請參照圖5A及圖5B,假設區塊大小等於扇區大小的八倍且扇區大小等於邏輯區塊位址的大小。圖5A顯示了儲存控制器210接收寫入指令W1及W2,W1對應的SLBA(即,起始LBA)及ELBA(即,結束LBA)為8及14,W2對應的SLBA及ELBA為15及23。W1的LBA可被分為7個扇區,其中BN為1且SN為0到6。由於W1對應的LBA無法形成一個滿區塊,因此FBI全部被設定為0。W2的LBA可被分為9個扇區,其中LBA15的BN為1且SN為7,而剩餘LBA的BN為2且SN為0到7。由於W2對應的LBA16到LBA23可形成一個滿區塊,因此對應LBA16到LBA23的FBI被設定為1。
在圖5B的初始狀態(即,狀態0)中,PBB的SVB及PIT與FBB的SVB及FIT的欄位都為0。
在狀態(state)1中,寫入資料路由器245分派W1的資料到PBB的項目A並更新PIT。計時器(TMR)開始計時(Start)。
在狀態2中,PBB的項目A形成滿區塊因此將計時器重置(Rst)。寫入資料路由器245分派W2的資料到PBB的項目A及FBB項目P並更新FIT。
在狀態3中,由於PBB的項目A形成滿區塊,因此PBB的項目A的資料被傳送到FBB項目Q。在資料傳送過程中PBB的項目A的VB會被設定為0。
在狀態4中,FBB項目P的資料被傳送到媒體介面區塊260,且所有PBB項目A的資料已經傳送到FBB的項目Q。因此,
FBB的項目P的VB會被設定成0。PBB的項目A的OB會被設定成0以代表PBB的項目A已經不存在有效資料。
在狀態5中,所有FBB項目P的資料已經傳送到媒體介面區塊260,且FBB項目Q的資料被傳送到媒體介面區塊260。因此,FBB項目P的OB會被設定成0。FBB項目Q的VB會被設定成0。
在狀態6中,所有FBB項目Q的資料已經傳送到媒體介面區塊260。因此,FBB項目Q的OB會被設定成0。
在本範例中,若沒有採用部分區塊緩衝器251及滿區塊緩衝器252,在寫入W1的LBA8到LBA14及寫入W2的LBA15各需要執行一次讀取修改寫入操作。然而,在採用部分區塊緩衝器251及滿區塊緩衝器252的情況下,則不需要執行讀取修改寫入操作。也就是說,執行讀取修改寫入操作的次數可從2次降低為0次。
圖6A到圖6C為根據本發明一實施例的資料處理方法的另一範例。
請參照圖6A到圖6C,假設區塊大小等於扇區大小的八倍且扇區大小等於邏輯區塊位址的大小。圖6A顯示了儲存控制器210接收寫入指令W1及W2,W1對應的SLBA及ELBA為39及58,W2對應的SLBA及ELBA為54及63。填寫每個LBA對應的BN、SN、FBI的方法與圖5A類似,因此不再贅述。
在狀態(state)0中,PBB的SVB及PIT與FBB的SVB及
FIT的欄位都為0。
在狀態1中,寫入資料路由器245分派W1的資料到PBB項目A及B。寫入資料路由器245分派W1的資料到FBB項目P及Q。PIT及FIT被更新。
在狀態2中,寫入資料路由器245分派W2的資料到PBB項目C。寫入資料路由器245分派W2的資料到FBB項目R。由於PIC 258判斷PBB項目B的BN與FBB項目R的BN相同,因此PBB項目B會被無效,對應的OB及VB會被設定成0,且對應的計時器會被重置(Rst)。值得注意的是,在計時器(TMR)欄位的Run代表計時器已經開始且正在計時。
在狀態3中,FBB項目P對應區塊5的資料被傳送到媒體介面區塊260。由於PBB項目A的計時器到期(Exp),因此PBB項目A中對應區塊4的資料會被傳送到讀取修改寫入區塊270。PBB項目A的VB會被設定為0且PBB項目P的VB也被設定為0。
在狀態4中,所有PBB項目A對應區塊4的資料已經傳送到讀取修改寫入區塊270。所有FBB項目P對應區塊5的資料已經被傳送到媒體介面區塊260。FBB項目Q的資料被傳送到媒體介面區塊260。PBB項目A的OB會被設定為0且計時器會被重置。
在狀態5中,FBB項目P從讀取修改寫入區塊270接收到對應區塊4的資料。所有FBB項目Q對應區塊6的資料已經被
傳送到媒體介面區塊260。FBB項目R對應區塊7的資料被傳送到媒體介面區塊260。由於PBB項目C的計時器到期,因此PBB項目C中對應區塊6的資料會被傳送到讀取修改寫入區塊270。
在狀態6中,所有PBB項目C對應區塊6的資料已經傳送到讀取修改寫入區塊270。所有FBB項目R對應區塊7的資料已經被傳送到媒體介面區塊260。FBB項目P對應區塊4的資料被傳送到媒體介面區塊260。
在狀態7中,所有FBB項目P對應區塊4的資料已經被傳送到媒體介面區塊260。FBB項目R從讀取修改寫入區塊270接收到對應區塊6的資料。
在狀態8中,FBB項目R對應區塊6的資料被傳送到媒體介面區塊260。
在狀態9中,所有FBB項目R對應區塊6的資料已經被傳送到媒體介面區塊260。
在本範例中,若沒有採用部分區塊緩衝器251及滿區塊緩衝器252,在寫入W1的LBA39及LBA56到LBA58及寫入W2的LBA54到LBA55各需要執行一次讀取修改寫入操作,共三次讀取修改寫入操作。然而,在採用部分區塊緩衝器251及滿區塊緩衝器252的情況下,則只需要執行2次讀取修改寫入操作(即,對區塊4及區塊6執行讀取修改寫入操作)。也就是說,執行讀取修改寫入操作的次數可從3次降低為2次。
綜上所述,本發明的資料處理方法及使用所述方法的儲
存控制器可將無法形成滿區塊的寫入扇區傳送到部分區塊緩衝器,並將能夠形成滿區塊的寫入扇區傳送到滿區塊緩衝器。當部分區塊被傳送到部分區塊緩衝器時,計時器被啟動。當部分區塊緩衝器的中對應一個區塊的項目的空扇區在計時器到期之前被填滿時,處理器將填滿的區塊傳送到滿區塊緩衝器。當部分區塊緩衝器的中對應一個區塊的項目在計時器到期時還沒被填滿,則處理器對沒還被填滿的區塊進行讀取修改寫入操作。透過本發明的資料處理方法及使用所述方法的儲存控制器,可有效地減少讀取修改寫入操作的執行次數,從而節省系統資源並提高系統性能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
Claims (22)
- 一種資料處理方法,適用於一儲存控制器,該儲存控制器用於存取一儲存媒體並耦接至一主機系統,該資料處理方法包括:接收一寫入指令對應的多個寫入扇區並將該些寫入扇區傳送到一部分區塊緩衝器或一滿區塊緩衝器,其中該些寫入扇區對應至少一區塊;當對應一第一區塊的該些寫入扇區被傳送到該部分區塊緩衝器時,啟動對應該第一區塊的一計時器;當該部分區塊緩衝器接收到對應該第一區塊的至少一第一寫入扇區,且該至少一第一寫入扇區與該部分區塊緩衝器中對應該第一區塊的該些寫入扇區形成滿的該第一區塊時,該第一區塊在該計時器到期之前或在該計時器到期時從該部分區塊緩衝器被傳送到該滿區塊緩衝器;以及當該計時器到期且滿的該第一區塊還沒在該部分區塊緩衝器中形成時,根據對應該第一區塊的該些寫入扇區進行一讀取修改寫入操作。
- 如申請專利範圍第1項所述的資料處理方法,其中當該滿區塊緩衝器接收到對應一第二區塊的該些寫入扇區時,該部分區塊緩衝器中對應該第二區塊的該些寫入扇區被無效。
- 如申請專利範圍第1項所述的資料處理方法,其中當該滿區塊緩衝器接收到對應一第二區塊的該些寫入扇區時,對應該第二區塊的該讀取修改寫入操作被無效。
- 如申請專利範圍第1項所述的資料處理方法,其中當該些寫入扇區可形成滿區塊時,該些寫入扇區被傳送到該滿區塊緩衝器;以及當該些寫入扇區無法形成滿區塊時,該些寫入扇區被傳送到該部分區塊緩衝器。
- 如申請專利範圍第1項所述的資料處理方法,其中該讀取修改寫入操作包括從該儲存媒體取得至少一讀取扇區,並將對應該第一區塊的該些寫入扇區與該至少一讀取扇區傳送到該滿區塊緩衝器。
- 如申請專利範圍第1項所述的資料處理方法,其中當該至少一第一寫入扇區與該部分區塊緩衝器中對應該第一區塊的該些寫入扇區形成滿的該第一區塊時,該計時器被重置。
- 如申請專利範圍第1項所述的資料處理方法,其中當該計時器到期並根據對應該第一區塊的該些寫入扇區進行該讀取修改寫入操作時,該計時器被重置。
- 如申請專利範圍第1項所述的資料處理方法,其中當該儲存控制器支援多個邏輯區塊位址大小時,區塊大小等於該些邏輯區塊位址大小的公倍數且扇區大小為該些邏輯區塊位址大小的公因數。
- 如申請專利範圍第1項所述的資料處理方法,其中該滿區塊緩衝器及該部分區塊緩衝器各包括多個項目(entry),每個該些項目的容量等於區塊大小且該部分區塊緩衝器的每個該些項目對應一個該計時器。
- 如申請專利範圍第9項所述的資料處理方法,其中當該些寫入扇區無法形成滿區塊且該部分區塊緩衝器的每個該些項目都具有有效資料時,選擇該計時器最接近到期的該部分區塊緩衝器的該些項目的一第一項目進行該讀取修改寫入操作並無效該第一項目。
- 如申請專利範圍第1項所述的資料處理方法,其中當滿的該第一區塊在該計時器到期之前形成且該部分區塊緩衝器在該計時器到期之前接收到對應該第一區塊的一第二寫入扇區,則將該第二寫入扇區覆寫到該部分區塊緩衝器中的滿的該第一區塊。
- 一種儲存控制器,用於存取一儲存媒體並耦接至一主機系統,該儲存控制器包括:一部分區塊緩衝器;一滿區塊緩衝器;一寫入資料路由器,耦接到該部分區塊緩衝器及該滿區塊緩衝器;以及一處理器,耦接到該寫入資料路由器、該部分區塊緩衝器及該滿區塊緩衝器,其中該寫入資料路由器接收一寫入指令對應的多個寫入扇區並將該些寫入扇區傳送到一部分區塊緩衝器或一滿區塊緩衝器,其中該些寫入扇區對應至少一區塊;當對應一第一區塊的該些寫入扇區被傳送到該部分區塊緩衝器時,該處理器啟動對應該第一區塊的一計時器;當該部分區塊緩衝器接收到對應該第一區塊的至少一第一寫入扇區,且該至少一第一寫入扇區與該部分區塊緩衝器中對應該第一區塊的該些寫入扇區形成滿的該第一區塊時,該第一區塊在該計時器到期之前或在該計時器到期時從該部分區塊緩衝器被傳送到該滿區塊緩衝器;以及當該計時器到期且滿的該第一區塊還沒在該部分區塊緩衝器中形成時,該處理器根據對應該第一區塊的該些寫入扇區進行一讀取修改寫入操作。
- 如申請專利範圍第12項所述的儲存控制器,其中當該滿區塊緩衝器接收到對應一第二區塊的該些寫入扇區時,該部分區塊緩衝器中對應該第二區塊的該些寫入扇區被無效。
- 如申請專利範圍第12項所述的儲存控制器,其中當該滿區塊緩衝器接收到對應一第二區塊的該些寫入扇區時,對應該第二區塊的該讀取修改寫入操作被無效。
- 如申請專利範圍第12項所述的儲存控制器,其中當該些寫入扇區可形成滿區塊時,該些寫入扇區被傳送到該滿區塊緩衝器;以及當該些寫入扇區無法形成滿區塊時,該些寫入扇區被傳送到該部分區塊緩衝器。
- 如申請專利範圍第12項所述的儲存控制器,其中該讀取修改寫入操作包括從該儲存媒體取得至少一讀取扇區,並將對應該第一區塊的該些寫入扇區與該至少一讀取扇區傳送到該滿區塊緩衝器。
- 如申請專利範圍第12項所述的儲存控制器,其中當該至少一第一寫入扇區與該部分區塊緩衝器中對應該第一區塊的該些寫入扇區形成滿的該第一區塊時,該計時器被重置。
- 如申請專利範圍第12項所述的儲存控制器,其中當該計時器到期並根據對應該第一區塊的該些寫入扇區進行該讀取修改寫入操作時,該計時器被重置。
- 如申請專利範圍第12項所述的儲存控制器,其中當該儲存控制器支援多個邏輯區塊位址大小時,區塊大小等於該些邏輯區塊位址大小的公倍數且扇區大小為該些邏輯區塊位址大小的公因數。
- 如申請專利範圍第12項所述的儲存控制器,其中該滿區塊緩衝器及該部分區塊緩衝器各包括多個項目,每個該些項目的容量等於區塊大小且該部分區塊緩衝器的每個該些項目對應一個該計時器。
- 如申請專利範圍第20項所述的儲存控制器,其中當該些寫入扇區無法形成滿區塊且該部分區塊緩衝器的每個該些項目都具有有效資料時,該處理器選擇該計時器最接近到期的該部分區塊緩衝器的該些項目的一第一項目進行該讀取修改寫入操作並無效該第一項目。
- 如申請專利範圍第12項所述的儲存控制器,其中當滿的該第一區塊在該計時器到期之前形成且該部分區塊緩衝器在該計時器到期之前接收到對應該第一區塊的一第二寫入扇區,則該處理器將該第二寫入扇區覆寫到該部分區塊緩衝器中的滿的該第一區塊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107134658A TWI668704B (zh) | 2018-10-01 | 2018-10-01 | 資料處理方法及使用所述方法的儲存控制器 |
US16/192,826 US10635356B2 (en) | 2018-10-01 | 2018-11-16 | Data management method and storage controller using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107134658A TWI668704B (zh) | 2018-10-01 | 2018-10-01 | 資料處理方法及使用所述方法的儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI668704B true TWI668704B (zh) | 2019-08-11 |
TW202015044A TW202015044A (zh) | 2020-04-16 |
Family
ID=68316214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107134658A TWI668704B (zh) | 2018-10-01 | 2018-10-01 | 資料處理方法及使用所述方法的儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10635356B2 (zh) |
TW (1) | TWI668704B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045961A (zh) * | 2018-10-12 | 2020-04-21 | 深圳大心电子科技有限公司 | 数据处理方法及使用所述方法的存储控制器 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7184632B2 (ja) * | 2018-12-25 | 2022-12-06 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11630595B2 (en) * | 2019-03-27 | 2023-04-18 | Alibaba Group Holding Limited | Methods and systems of efficiently storing data |
KR20220106307A (ko) | 2021-01-22 | 2022-07-29 | 삼성전자주식회사 | 스토리지 장치 및 그 구동 방법 |
US11630605B1 (en) * | 2022-08-10 | 2023-04-18 | Recogni Inc. | Methods and systems for processing read-modify-write requests |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0475729A2 (en) * | 1990-09-14 | 1992-03-18 | Digital Equipment Corporation | Improved buffering for read-modify-write operation |
US5459842A (en) * | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
WO1996034329A1 (en) * | 1995-04-27 | 1996-10-31 | Emulex Corporation | Timer manager |
US6718444B1 (en) * | 2001-12-20 | 2004-04-06 | Advanced Micro Devices, Inc. | Read-modify-write for partial writes in a memory controller |
US6879341B1 (en) * | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
US20150121021A1 (en) * | 2013-10-24 | 2015-04-30 | Fujitsu Limited | Apparatus and method for controlling storage devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0425550B1 (en) * | 1988-06-30 | 1995-01-04 | Wang Laboratories, Inc. | Memory control unit |
US5717394A (en) * | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
US20030110344A1 (en) * | 1996-09-18 | 2003-06-12 | Andre Szczepanek | Communications systems, apparatus and methods |
ATE504446T1 (de) * | 2002-12-02 | 2011-04-15 | Silverbrook Res Pty Ltd | Totdüsenausgleich |
US20060143454A1 (en) * | 2004-05-27 | 2006-06-29 | Silverbrook Research Pty Ltd | Storage of multiple keys in memory |
-
2018
- 2018-10-01 TW TW107134658A patent/TWI668704B/zh active
- 2018-11-16 US US16/192,826 patent/US10635356B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0475729A2 (en) * | 1990-09-14 | 1992-03-18 | Digital Equipment Corporation | Improved buffering for read-modify-write operation |
US5459842A (en) * | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
WO1996034329A1 (en) * | 1995-04-27 | 1996-10-31 | Emulex Corporation | Timer manager |
US5659720A (en) * | 1995-04-27 | 1997-08-19 | Emulex Corporatioln | Computer control device for managing a timer array |
US6879341B1 (en) * | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
US6718444B1 (en) * | 2001-12-20 | 2004-04-06 | Advanced Micro Devices, Inc. | Read-modify-write for partial writes in a memory controller |
US20150121021A1 (en) * | 2013-10-24 | 2015-04-30 | Fujitsu Limited | Apparatus and method for controlling storage devices |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045961A (zh) * | 2018-10-12 | 2020-04-21 | 深圳大心电子科技有限公司 | 数据处理方法及使用所述方法的存储控制器 |
CN111045961B (zh) * | 2018-10-12 | 2023-10-20 | 深圳大心电子科技有限公司 | 数据处理方法及使用所述方法的存储控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20200104072A1 (en) | 2020-04-02 |
US10635356B2 (en) | 2020-04-28 |
TW202015044A (zh) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI668704B (zh) | 資料處理方法及使用所述方法的儲存控制器 | |
JP6832187B2 (ja) | データストレージサブシステムにおけるキャッシングのための方法およびシステム | |
US8924624B2 (en) | Information processing device | |
US10310764B2 (en) | Semiconductor memory device and storage apparatus comprising semiconductor memory device | |
US8825946B2 (en) | Memory system and data writing method | |
US20140372675A1 (en) | Information processing apparatus, control circuit, and control method | |
US10540096B2 (en) | Method and design for dynamic management of descriptors for SGL operation | |
TWI719654B (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
KR20130112210A (ko) | 메모리 시스템 및 그것의 페이지 교체 방법 | |
US20140372673A1 (en) | Information processing apparatus, control circuit, and control method | |
TW201835757A (zh) | 垃圾回收方法以及使用該方法的裝置 | |
TW202042065A (zh) | 資料儲存裝置及邏輯至物理位址映射表之載入方法 | |
US10459662B1 (en) | Write failure handling for a memory controller to non-volatile memory | |
CN113282234B (zh) | 存储装置、存储***、及其操作方法 | |
CN111045961B (zh) | 数据处理方法及使用所述方法的存储控制器 | |
US11436150B2 (en) | Method for processing page fault by processor | |
US10120819B2 (en) | System and method for cache memory line fill using interrupt indication | |
TWI844174B (zh) | 主機命令的邏輯位址區間搜索方法及裝置 | |
CN113448487A (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
TWI847003B (zh) | 儲存裝置及對邏輯區塊位址中的重疊進行檢查的方法 | |
US11853203B1 (en) | Systems and methods with variable size super blocks in zoned namespace devices | |
TW202422344A (zh) | 執行主機命令的方法及電腦程式產品及裝置 | |
TW202422345A (zh) | 主機命令的邏輯位址區間搜索方法及裝置 | |
JP6027479B2 (ja) | 半導体メモリ装置 | |
TW202416108A (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 |