TWI614671B - 減弱固態硬碟中之不均通道負載之效能衝擊的技術 - Google Patents
減弱固態硬碟中之不均通道負載之效能衝擊的技術 Download PDFInfo
- Publication number
- TWI614671B TWI614671B TW104127719A TW104127719A TWI614671B TW I614671 B TWI614671 B TW I614671B TW 104127719 A TW104127719 A TW 104127719A TW 104127719 A TW104127719 A TW 104127719A TW I614671 B TWI614671 B TW I614671B
- Authority
- TW
- Taiwan
- Prior art keywords
- read requests
- channels
- channel
- read
- determined
- Prior art date
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Computer Networks & Wireless Communication (AREA)
- Bus Control (AREA)
- Read Only Memory (AREA)
Abstract
所提供的是一種用於配置在耦接至主機的固態硬碟中之讀取請求的方法和系統。該固態硬碟中的一個仲裁器判定出在該固態硬碟中的多個通道中之何者是這多個通道中之受輕微負載通道。用於處理針對所判定出之該受輕微負載通道的一或多個讀取請求的資源受到配置,其中,該一或多個讀取請求已被從該主機接收。該一或多個讀取請求被置於所判定出之該受輕微負載通道中以作處理。在某些實施例中,該受輕微負載通道是該等多個通道中的受最輕微負載通道。
Description
本發明係有關減弱固態硬碟中之不均通道負載之效能衝擊的技術。
固態硬碟(solid state drive,SSD)是一種資料儲存裝置,其係使用積體電路集成作為記憶體來持續地儲存資料。許多類型的SSD係使用以NAND為基礎或以NOR為基礎的快閃記憶體,這些記憶體可在沒有電力的時候保有資料,是一種非依電性儲存技術。
係可使用通訊介面來將SSD耦接至具有處理器的主機系統。這樣的通訊介面可包括快速週邊組件互連(Peripheral Component Interconnect Express,PCIe)匯流排。PCIe的進一步細節可見2010年十一月10日由PCI-SIG所公開的標題為「快速週邊組件互連基礎規格第3.0修訂版(PCI Express Base Specification Revision 3.0)」之刊物。經由PCI匯流排通訊之SSD最大的優點就是效能提昇,這
樣的SSD被稱為PCIe SSD。
依據本發明之一實施例,係特地提出一種方法,其包含下列步驟:藉由在一個固態硬碟中的一個仲裁器,判定在該固態硬碟中的多個通道中之何者是相較於其他通道而言的受輕微負載通道;配置用於處理已自一個主機接收而來的一或多個讀取請求的資源,其中,該一或多個讀取請求係針對所判定出之該受輕微負載通道;以及將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理。
依據本發明之另一實施例,係特地提出一種設備,其包含:多個非依電性記憶體晶片;耦接至該等多個非依電性記憶體晶片的多個通道;以及用於控制該等多個通道的一個仲裁器,其中,該仲裁器可受操作來進行下列步驟:判定出該等多個通道中之何者是相較於其他通道而言的受輕微負載通道;配置用於處理已自一個主機接收而來的一或多個讀取請求的資源,其中,該一或多個讀取請求係針對所判定出之該受輕微負載通道;及將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理。
依據本發明之又一實施例,係特地提出一種系統,其包含:一個固態硬碟;一個顯示器;以及耦接至該固態硬碟及該顯示器的一個處理器,其中,該處理器會將多個讀取請求傳送至該固態硬碟,並且其中,該固態硬碟
會回應於該等多個讀取請求而進行操作,該等操作包含:判定出在該固態硬碟中的多個通道中之何者是相較於該固態硬碟中之其他通道而言的受輕微負載通道;配置用於處理從該等多個讀取請求中所選出的一或多個讀取請求的資源,其中,該一或多個讀取請求係針對所判定出之該受輕微負載通道;及將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理。
100‧‧‧運算環境
102、300‧‧‧固態硬碟
104‧‧‧主機
106‧‧‧PCIe匯流排
108‧‧‧仲裁器
110a~110n、302、304、306‧‧‧通道
112a~112p、114a~114q、116a~116r‧‧‧NAND晶片
200‧‧‧方塊圖
202‧‧‧進入佇列;進入佇列資料結構
204a~204n‧‧‧資料結構
206‧‧‧資源
308、316、320‧‧‧未了讀取;資料結構
310、312、314‧‧‧A讀取
318‧‧‧未了讀取請求;B讀取
322、324‧‧‧C讀取
326‧‧‧進入佇列
328、330、332、334、336、338、340、342、344、346、402、404‧‧‧讀取命令
500、600‧‧‧流程圖
502、504、506、508、509、510、512、514‧‧‧方塊;操作
505、507、509a、509b‧‧‧分枝
602~608‧‧‧方塊
700‧‧‧系統
702‧‧‧電路
704‧‧‧處理器
706‧‧‧記憶體
708‧‧‧儲存體
710‧‧‧規劃邏輯
712‧‧‧程式碼
714‧‧‧顯示器
716‧‧‧輸入裝置
現在請參看圖式,在這些圖式中,相似的參考號碼在以下各圖中係表示對應部份:圖1例示一個運算環境之方塊圖,在此運算環境中,一個固態硬碟經由一個PCIe匯流排而耦接至一個主機;圖2例示另一個方塊圖,其根據某些實施例而示出一個仲裁器如何將進入佇列中之讀取請求分配給固態硬碟之通道;圖3例示一個方塊圖,其根據某些實施例而示出在開始優先考慮受最輕微充填之通道和重新排序主機命令前之對於一個固態硬碟中之讀取請求的分配;圖4例示一個方塊圖,其根據某些實施例而示出在優先考慮受最輕微充填之通道和重新排序主機命令後之對於一個固態硬碟中之讀取請求的分配;圖5根據某些實施例而例示用於避免固態硬碟中之不均通道負載的一第一流程圖;圖6根據某些實施例而例示用於避免固態硬碟中之不
均通道負載的一第二流程圖;及圖7根據某些實施例而例示一個運算裝置之方塊圖。
在下面的說明中係有參考隨附圖式,這些隨附圖式形成本說明的一部分並例示出數個實施例。可以理解的是,亦可使用其他實施例,並且也可作出結構或操作上的變化。
因為實施於PCIe SSID中的通道之數量,所以增進PCIe SSID的效能可以說是首要的。例如,在某些實施例中,某些PCIe SSID可經由經擴充18通道設計而提供改良的內部帶寬。
在以PCIe為基礎的固態硬碟中,從主機到固態硬碟的PCIe匯流排可係具有高帶寬(例如每秒400億位元組)。以PCIe為基礎的固態硬碟可具有多個通道,當中,相較於PCIe匯流排之帶寬,各個通道可係具有相對較低的帶寬。例如,在具有18個通道的固態硬碟中,各個通道可係具有約為每秒2億位元組的帶寬。
在某些狀況中,耦接至各個通道的NAND晶片在數量上是一樣的,並且在這樣的狀況中,在來自主機的請求隨機而一致的事例中,通道負載大致上可說是平均的,也就是說,各個通道在一段時間中用來處理讀取請求的使用量大致上是一樣的。可以注意到,在許多情況中,大於95%的來自主機之對固態硬碟的請求可能會是讀取請
求,而小於5%的來自主機之對固態硬碟的請求可能會是寫入請求,將讀取請求恰當地分配至固態硬碟中之通道會是很重要的。
然而,在某些狀況中,在這些通道中的至少一個通道係有與其他通道不同數量的NAND晶片耦接至此通道。這樣一種情況可能會在NAND的數量不是通道之數量的倍數時發生。例如,若有18個通道,而NAND晶片的數量並不是18之倍數,那麼對這些通道當中的至少一個通道而言,就必須是有與其他通道相異之數量的NAND晶片耦接至此通道。在此種情況中,耦接至較大量NAND晶片的通道之負載可能會比耦接至較少量NAND晶片的通道要來得重。係假設固態硬碟中的各個NAND晶片在結構上均相同且均具有相同的儲存容量。
在通道負載不均的事例中,一些通道的積壓量可能會比其他通道重,並且PCIe匯流排在完成對主機之回覆之前可能會必須要等待積壓清除。
某些實施例提供即使是在通道中之至少一個通道有與其他通道相異之數量的NAND晶片耦接至此通道的情況下亦可避免通道負載不均的機制。這是藉由將針對受最輕微負載之通道的讀取請求優先加載至該受最輕微負載之通道、及藉由將在固態硬碟之佇列中等待執行的待定讀取情求處理重新排序來達成。由於資源是在讀取請求被加載至通道上時被分配,所以藉由將讀取請求加載至受最輕微負載之通道上,資源就只會在有需要的時候被使用,並
且會被有效地使用。因此,某些實施例係可改良SSD之效能。
圖1根據某些實施例而例示一個運算環境100之方塊圖,當中,一個固態硬碟102經由一個PCIe匯流排106而耦接至主機104。主機104可包含至少一個處理器。
在某些實施例中,在固態硬碟102中係有一個仲裁器108實施於韌體中。在其他實施例中,仲裁器108可係實施於硬體或軟體、惑是硬體、韌體或軟體的任何組合中。仲裁器108將經由PCIe匯流排106而接收到的來自主機104的讀取請求分配給固態硬碟102的多個通道110a、110b、……、110n中之一或多個通道。
在某些實施例中,通道110a……110n耦接至多個非依電性記憶體晶片,例如NAND晶片、NOR晶片或其他適合的非依電性記憶體晶片。在替代實施例中,亦可係使用其他類型的記憶體晶片,像是以相變記憶體(phase change memory,PCM)為基礎的晶片、三維交叉點記憶體、阻抗記憶體(resistive memory)、奈米線記憶體、鐵電電晶體隨機存取記憶體(ferro-electric transistor random access memory,FeTRAM)、併入了憶阻器(memristor)技術的磁阻隨機存取記憶體(magnetoresistive random access memory,MRAM)記憶體、自旋轉移扭矩磁阻隨機存取記憶體(spin transfer torque-MRAM,STT-MRAM)或其他合適的記憶體。
例如,在某些實施例中,通道110a耦接至
NAND晶片112a……112p,通道110b耦接至NAND晶片114a……114q,且通道110n耦接至NAND晶片114a……114r。各個NAND晶片112a……112p、114a……114q、114a……114r在結構上均是相同的。這多個通道110a……110n中有至少一個通道係有與其他通道相異之數量的NAND晶片耦接至此通道,因此,若來自主機104的讀取請求隨機且不均,則這多個通道110a……110n就可能會負載不均。
在某些實施例中,固態硬碟102可係能夠儲存幾兆位元組或更多的資料,並且在固態硬碟102中係可有各儲存數兆位元組或更多資料的NAND晶片112a……112p、114a……114q、116a……116r。PCIe匯流排106可具有為每秒40億位元組的最大帶寬(即資料載運容量)。在某些實施例中,這多個通道110a……110n之數量可係十八個,並且各個通道可具有為每秒2億位元組的最大帶寬。
在某些實施例中,仲裁器108依序逐一檢查這多個通道110a……110n,並且在檢查了所有的這多個通道110a……110n之後將針對通道的讀取請求加載至受最輕微負載的通道上,以增加在此受最輕微負載之通道上的負載,藉此意圖在這多個通道上進行均勻加載。
圖2例示固態硬碟102的另一個方塊圖200,其根據某些實施例而示出仲裁器108如何將進入佇列202中之讀取請求分配給固態硬碟102之通道110a……110n。
仲裁器108維持進入佇列202,進入佇列202儲存
經由PCIe匯流排106而從主機104接收而來的讀取請求。這些讀取請求依序抵達進入佇列202,並且這些讀取請求一開始是以跟這些讀取請求抵達進入佇列202的順序一樣的順序被維持。例如,第一個抵達的請求可能是針對儲存在與通道110b耦接的NAND晶片中的資料,而接下來抵達的第二個請求可能是針對儲存在與通道110a耦接的NAND晶片中的資料。在這樣一種情況中,首先抵達的請求是位在進入佇列202之首,而接下來抵達的那個請求是進入佇列202中的下一個元素。
仲裁器108亦維持各個通道110a……110b的資料結構,於此資料結構中保持有對於正受通道處理之未竟讀取請求的識別資料。例如,資料結構204a、204b……204n儲存有對於正受這多個通道110a、110b……110n處理的未竟讀取請求之識別資料。針對一個通道而言的未竟讀取請求是已經被載入到此通道中並且正受此通道處理(也就是說,耦接至此通道的NAND晶片正被使用來擷取對應於已被載入至此通道中之讀取請求的資料)的讀取情求。
固態硬碟102亦維持在讀取請求被載入至通道中時所使用的多個硬體、韌體或軟體資源,例如緩衝器、拴鎖器、記憶體、各種資料結構等等(如由參考標號206所示出的)。在某些實施例中,藉由在將讀取請求載入至受最輕微負載的通道上時保留資源,仲裁器108可防止資源在非必要的情況下被鎖閉。
因此,圖2例示出某些實施例,在這些實施例
中,仲裁器108維持讀取請求之進入佇列202,並亦維持對應於正受固態硬碟102之各個通道110a……110b處理的未竟讀取的資料結構204a……204n。
圖3例示一個方塊圖,其根據某些實施例而示出在開始優先考慮受最輕微充填之通道和重新排序主機命令前之對於一個示範固態硬碟300中之讀取請求的分配。受最輕微充填之通道與其他通道相比係有數量最少的讀取請求正受到此通道處理。
此示範固態硬碟300擁有三個通道:A通道302、B通道304以及C通道306。A通道302有藉由參考標號310、312、314所指出的未竟讀取308,也就是說,針對儲存在耦接至A通道302的NAND晶片中的資料,係有三個讀取請求(稱之為「A讀取」310、312、314)。B通道304有藉由參考標號318所指出的未竟讀取316,而C通道306有由參考標號322、324指涉的未竟讀取320。
讀取請求之進入佇列326有十個讀取命令328、330、332、334、336、338、340、342、344、346,當中,在進入佇列326之首的命令是「A讀取」命令328,而在進入佇列326之末的命令是「B讀取」命令346。
圖4例示一個方塊圖,其根據某些實施例而示出在優先考慮受最輕微充填之通道和重新排序主機命令後之對於示範固態硬碟300中之讀取請求的分配。
在某些實施例中,仲裁器108檢查(如於圖3中所示出的)讀取請求之進入佇列326以及如於資料結構308、
316、318中所示出的正受通道處理的未竟請求。仲裁器108接著將從(如於圖3中所示出的)讀取請求之進入佇列326中脫序選出的命令340、344(其係「B讀取」命令)載入至受最輕微負載的B通道304(在圖3中它只有未竟一個讀取請求318)。
圖4示出受最輕微負載的B通道304在已經載入命令340、344之後的情況。在圖4中,在正受B通道304處理的未竟讀取316中的參考標號402和404示出圖3之現在已經被載入到B通道304中以作處理的命令340、344。
因此,藉由將從讀取請求之進入佇列326中脫序選出的適當讀取請求載入至這三個通道302、304、306中之受最輕微負載者,通道302、304、306之負載變得較為平均。可以注意到,之前在進入佇列326中先於命令340的命令328、330、332、334、336、338均不可被載入至B通道304,因為命令328、330、332、334、336、338是針對經由A通道302或C通道306所取用之資料的讀取請求。亦可以注意到,因為仲裁器108只有一個,而通道有多個,所以仲裁器108會逐一檢查在通道302、304、306上的未竟請求308、316、320。通道302、304、306當然可在通道302、304、306完成對某些讀取請求之處理時通知仲裁器108,並且仲裁器108可根據由通道302、304、306所提供的這些資訊而持續追蹤通道302、304、306上之未竟讀取請求。
此外,當係藉由使用微控制器來實施仲裁器108
時,仲裁器108可係一個串聯化處理器。一個NAND晶片(例如NAND晶片112a)有一種固有特性,其只容許針對它自身的僅一個讀取請求。用於該NAND晶片的通道(例如通道110a)在到該NAND晶片的讀取請求完成之前係處於「繁忙」狀態。仲裁器108有責任在通道繁忙時不排程新的讀取。一旦通道不繁忙了,仲裁器108就需要將下一個命令分派至該NAND晶片。為了改善通道負載狀況,在某些實施例中,仲裁器108比「受沈重負載」的通道(也就是被用來處理相對較少的讀取請求的通道)更為頻繁地輪詢「受輕微負載」的通道(也就是被用來處理相對較少的讀取請求的通道),以使得被重新排序的讀取命令盡可能快地被分派至受輕微負載的通道。這是很重要的,因為完成新讀取命令的時間是100微秒的等級,而仲裁器108掃描所有18個通道並重新排序讀取命令所需的也是大約這麼多時間。
圖5根據某些實施例而例示用於避免固態硬碟中之不均通道負載的一第一流程圖500。圖5中所示之操作係可由在固態硬碟102內進行操作的仲裁器108進行。
控制流程始於方塊502,當中,仲裁器108判定在多個通道110a、110b……110n中之第一個通道110a上的讀取處理負載(也就是所使用的帶寬)。控制流程前進至方塊504,當中,仲裁器108判定在最後一個通道110n上的讀取處理負載是否已受到判定。若尚未受到判定(「否」分枝505),則仲裁器108判定在下一個通道上的讀取處理負載,並且此控制流程回到方塊504。可係藉由檢查用於未
竟讀取的資料結構204a……204n中之待定讀取請求之數量、或是藉由其他機制來判定讀取處理負載。
若在方塊504係作出在最後一個通道110n上的讀取處理負載已受判定這樣的判定(「是」分枝507),則控制流程前進到方塊508,當中,係判定出這多個通道中之何者具有最少的處理負載,並且具有最少處理負載的這個通道被稱為是X通道。
控制流程從方塊508前進到方塊509,當中,係作出對於X通道是繁忙還是不繁忙的判定,繁忙的通道無法處理被添加的讀取請求,而不繁忙的通道能夠處理被添加的讀取請求。對於X通道是繁忙還是不繁忙的判定是有需要的,因為耦接至X通道的一個NAND晶片具有只容許針對它本身的僅一個讀取請求這樣的一種固有特性。用於此NAND晶片的X通道在至該NAND晶片的讀取請求完成之前係處於「繁忙」狀態。
若在方塊509係判定出X通道並不繁忙(參考標號509a),則控制流程前進到方塊510,當中,仲裁器108選擇在「讀取請求之進入佇列」202中所聚積的針對X通道的一或多個讀取請求,以使得X通道的可用帶寬盡可能地接近完全使用狀態,而這樣的選擇可能會導致在「讀取請求之進入佇列」202中的待定請求被重新排序。仲裁器108(在方塊512)針對所選擇的該一或多個讀取請求分配資源,並將該一或多個讀取請求傳送至X通道以作處理。
若在方塊509係判定出X通道繁忙(參考標號
509b),則此處理程序會等待到X通道不繁忙之時。
在替代實施例中,係可取代判定具有最少處理負載的通道,而判定出受相對較輕微負載的通道(也就是在這多個通道中具有相對較低的處理負載的通道)。在某些實施例中,係可優先將讀取請求傳送至受相對較輕微負載的通道。請注意,在受輕微負載的通道還沒有被確認為「不繁忙」之前,仲裁器108並不對此受輕微負載的通道排程另一個讀取請求。
可以注意到,在進行操作502、504、505、506、507、508、510、512時,主機讀取請求也一邊持續在「讀取請求之進入佇列」資料結構202中聚積(方塊514)。
因此,圖5例示出用於選擇受最輕微負載之通道、及重新排序讀取請求之進入佇列中之佇列物件以選擇要載入到受最輕微負載之通道中的適當讀取請求的某些實施例。
圖6根據某些實施例而例示用於避免固態硬碟中之不均通道負載的一第二流程圖600。圖6中所示之操作係可由在固態硬碟102內進行操作的仲裁器108進行。
控制流程始於方塊602,當中,固態硬碟102經由PCIe匯流排106而接收來自主機104的多個讀取請求,其中,在該固態硬碟中的多個通道110a……110n都擁有一樣的帶寬。。雖然通道110a……110n可係擁有一樣的帶寬,但在實際的情況中,這些通道110a……110n當中的一或多個通道可能並沒有充分地使用其帶寬。
固態硬碟102中的仲裁器108(於方塊604)判定出在固態硬碟102中的多個通道110a……110n中之何者是受輕微負載通道(在某些實施例中,此受輕微負載通道是受最輕微負載的通道)。針對所判定出之受輕微負載通道的用來處理一或多個讀取請求的資源受到分配(於方塊608),在此,來自主機104的一或多個讀取請求已經被接收。
控制流程前進到方塊608,於此,該一或多個讀取請求被置於所判定出之受輕微負載通道以作處理。在將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理之後,所判定出之該受輕微負載通道在此處理期間內係以最大可能性接近完全使用狀態。
因此,圖1至圖6例示出用於藉由從進入佇列中脫序選擇讀取請求、並藉由將此脫序選擇結果載入至受相對較輕微負載或最輕微負載的通道中來避免固態硬碟中之通道的負載不均情形的某些實施例。
所描述的這些操作可係藉由使用標準規劃及(或)工程技術來產生軟體、韌體、硬體或是軟體、韌體及硬體中之任何組合的方法、設備或電腦程式產品來實施。所描述的這些操作可係以被維持在「電腦可讀取儲存媒體」中的程式碼來實施,而來自此電腦可讀取儲存媒體的程式碼係可由處理器讀取和執行。此電腦可讀取儲存媒體包括電子電路、儲存材料、無機材料、有機材料、生物材料、外罩、塗層和硬體等其中至少一者。電腦可讀取儲
存媒體可包含但不受限於磁性儲存媒體(例如硬碟驅動器、軟碟、磁帶等等)、光學儲存體(CD-ROM、DVD、光碟等等)、依電性和非依電性記憶體裝置(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、快閃記憶體、韌體、可規劃邏輯等等)、固態硬碟(SSD)等等。實施所描述的這些操作的程式碼可進一步係以實施於硬體裝置中的硬體邏輯來實施(例如,積體電路晶片、可規劃閘陣列(Programmable Gate Array,PGA)、特定應用積體電路(Application Specific Integrated Circuit,ASIC)等等)。更甚者,實施所描述的這些操作的程式碼可係以「傳輸信號」來實施,傳輸信號可經由空間或傳輸媒體而傳播,例如光纖、銅線等等。編有程式碼或邏輯的傳輸信號可進一步包含無線信號、衛星傳輸、無線電波、紅外線信號、藍牙(Bluetooth)等等。嵌在電腦可讀取儲存媒體上的程式碼可係以傳輸信號的方式被從發送站台或電腦發送至接收站台或電腦。電腦可讀取儲存媒體不僅包含傳輸信號。熟悉此技藝者可識出,係可對這樣的組態作出各種修改,並且所製造之產品包含本技術領域中之適當資訊載負媒體。
用來實行用於這些實施例之面向的電腦程式碼可係以任何一或多種程式設計語言之組合寫成。係可藉由電腦程式指令來實施流程圖和方塊圖之方塊。
圖7根據某些實施例而例示一個系統700之方塊圖,其包括主機104(此主機104包含至少一個處理器)也
包括固態硬碟102。例如,在某些實施例中,系統700可係具有包含於系統700中之主機104和固態硬碟102的一臺電腦(例如膝上型電腦、桌上型電腦、平板電腦、手機或任何其他適當運算裝置)。例如,在某些實施例中,系統700可係含有固態硬碟102的一臺膝上型電腦。
系統700可包括一個電路702,其在某些實施例中可包括至少一個處理器704。系統700可亦包括一個記憶體706(例如一個依電性記憶體裝置)以及儲存體708。儲存體708可包括固態硬碟102或其他裝置、或是包括非依電性記憶體裝置(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、快閃、韌體、可規劃邏輯等等)的裝置。儲存體708可亦包括磁碟驅動器、光碟驅動器、磁帶驅動器等等。儲存體708可包含內部儲存體裝置、附接式儲存體裝置以及(或是)可透過網路取用的儲存體裝置。系統700可包括一個規劃邏輯710,其含有程式碼712,程式碼712可被載入到記憶體706中,並可由處理器704或電路702執行。在某些實施例中,含有程式碼712的規劃邏輯710可係儲存在儲存體708中。在某些實施例中,規劃邏輯710可係實施於電路702中。因此,雖然圖7是把規劃邏輯710示為是與其他元件分離,但規劃邏輯710亦可係實施於記憶體706以及(或是)電路702中。系統700可亦包括一個顯示器714(例如液晶顯示器(liquid crystal display,LCD)、發光二極體(light emitting diode,LED)顯示器、陰極射線管(cathode ray tube,CRT)顯示器)、觸控螢幕顯示器、或
是任何其他適當的顯示器)。系統700可亦包括一或多個輸入裝置716,例如鍵盤、滑鼠、搖桿、觸控板或任何其他適當的輸入裝置。除了於圖7中所示出者以外,在系統700中亦可存有其他部件或裝置。
某些實施例可能係針對一種用於由人員或將電腦可讀取程式碼整合至運算系統中的自動處理來佈署運算指令的方法,當中,係使得與運算系統組合的該程式碼能夠進行所描述之實施例之操作。
除非有明白指出為其他情況,否則「一實施例」、「實施例」、「數個實施例」、「該實施例」、「該等實施例」、「一或多個實施例」、「一些實施例」以及「一個實施例」等詞語是指「一或多個(但不是所有的)實施例」。
除非有明白指出為其他情況,否則「包括」、「包含」、「具有」等詞語及這些詞語之變化係指「包括但不受限於」。
除非有明白指出為其他情況,否則在文中被逐一列舉的項目並不含有這些物件中之任何一者或所有者彼此互斥的意涵。
除非有明白指出為其他情況,否則「一」、「一個」以及「該」等詞語係指「一或多者」。
除非有明白指出是其他情況,否則彼此通訊的裝置並不一定要是連續地彼此通訊。此外,彼此通訊的裝置可係直接地或透過一或多個中間媒體而間接地通訊。
對於具有彼此通訊的數個部件的一個實施例之描寫並未暗示所有這些部件都是必須的。相反地,係描述各式選擇性部件以例示出諸多可能實施例。
此外,雖然可能已以連續順序的方式來描述處理程序步驟、方法步驟、演算法或其他諸如此類者,但這些處理程序、方法和演算法係可被組織成以其他順序作業。換言之,對於任何步驟次序或順序的描述並不一定表示這些步驟一定要以這樣的順序來進行。於本文中所描述的處理程序之步驟可係以任何實用的順序來進行。此外,某些步驟可以是同時進行的。
當於本文中描述單一個裝置或物品時,很明顯地,係可使用多於一個的裝置或物品(無論其是否有協作關係)來取代單一個裝置或物品。類似地,當於本文中描述多於一個的裝置或物品(無論其是否有協作關係)時,很明顯地,係可使用單一個裝置或物品來取代這多於一個的裝置或物品,或者是,係可使用其他數量的裝置或物品來取代所示數量的裝置或程式。一個裝置的功能以及(或是)特徵係可替代性地藉由並未被明白描述為是具有此種功能或特徵的一或多個其他裝置來體現。因此,其他實施例並不一定包括有該裝置本身。
可能已於圖式中例示出的至少某些操作示出以某種順序發生的某些事件。在替代實施例中,某些操作可係以不同的順序來進行、或是被改變、或被移除。此外,係可將一些步驟加入至於上文中所描述的邏輯,而仍然符
合所描述之實施例。另外,於本文中所描述的操作係可連續地發生,或可係並行地處理某些操作。更甚者,係可藉由單一個處理單元、或藉由分散的數個處理單元來進行操作。
於上文中之對於各種實施例的說明係為了例示和說明目的所呈獻。前文中之說明並未窮究、亦不受限於所揭露之具體形式。根據上文中之教示內容所作的許多修改和變化形式是有可能的。
範例
下面的範例係與進一步實施例有關。
範例1是一種方法,其中,在一個固態硬碟中的一個仲裁器判定出在該固態硬碟中的多個通道中之何者是相較於其他通道而言的受輕微負載通道。資源受到配置以處理針對所判定出之該受輕微負載通道的一或多個讀取請求,其中,該一或多個讀取請求係來自一個主機且已接收。該一或多個讀取請求被置於所判定出之該受輕微負載通道中以作處理。
在範例2中,請求項1之標的可包括:所判定出之該受輕微負載通道是該等多個通道中的受最輕微負載通道,其中,在將該一或多個讀取請求置於所判定出之該受最輕微負載通道中以作處理之後,所判定出之該受最輕微負載通道在處理過程中是以最大可能性接近完全使用狀態。
在範例3中,請求項1之標的可包括:該一或多個讀取請求係被包括在針對該等多個通道的多個讀取請求當中,其中,處理該等多個讀取請求的順序會由於將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理的動作而受到改變。
在範例4中,請求項3之標的可包括:對處理該等多個請求的該順序所作的改變會使針對所判定出之該受輕微負載通道的該一或多個讀取請求比其他請求更優先受到處理。
在範例5中,請求項1之標的可包括:該固態硬碟經由一個快速週邊組件互連(PCIe)匯流排而自該主機接收該一或多個讀取請求,其中,在該固態硬碟中的該等多個通道各具有相同的帶寬。
在範例6中,請求項5之標的可包括:該等多個通道之帶寬之總和等於該PCIe匯流排之帶寬。
在範例7中,請求項1之標的可包括:該等多個通道中之至少一個通道耦接至與該等多個通道中之其他通道不同數量的NAND晶片。
在範例8中,請求項1之標的可包括:若該一或多個讀取請求並未被置於所判定出之該受輕微負載通道中以作處理,則該固態硬碟上之讀取效能相較於所有通道均耦接至相同數量個NAND晶片的另一個固態硬碟而言會減少超過百分之十。
在範例9中,請求項1之標的可包括:對於用於
處理的該等資源之配置係在藉由該固態硬碟中之該仲裁器判定出在該固態硬碟中的該等多個通道中之何者是該受輕微負載通道之後進行。
在範例10中,請求項1之標的可包括:該仲裁器會比受相對較沈重負載通道更頻繁地輪詢受相對較輕微負載通道以將經重新排序的讀取請求優先分派至該等受相對較輕微負載通道。
在範例11中,請求項1之標的可包括:使該等多個通道各與維持正受該通道處理之未竟讀取的資料結構相關聯;以及,將已從該主機接收到的該一或多個讀取請求維持在用於自該主機接收而來之讀取請求的一個進入佇列中。
範例12是一種設備,其包含:多個非依電性記憶體晶片、耦接至該等多個非依電性記憶體晶片的多個通道、以及用於控制該等多個通道的一個仲裁器,其中,該仲裁器可受操作來進行下列步驟:判定出該等多個通道中之何者是相較於其他通道而言的受輕微負載通道;配置用於處理已自一個主機且接收而來的一或多個讀取請求的資源,其中,該一或多個讀取請求係針對所判定出之該受輕微負載通道;以及,將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理。
在範例13中,請求項12之標的可包括:該等非依電性記憶體晶片包含NAND晶片,其中,所判定出之該受輕微負載通道是該等多個通道中的受最輕微負載通道,
其中,在將該一或多個讀取請求置於所判定出之該受最輕微負載通道中以作處理之後,所判定出之該受最輕微負載通道在處理過程中是以最大可能性接近完全使用狀態。
在範例14中,請求項12之標的可包括:該一或多個讀取請求係被包括在針對該等多個通道的多個讀取請求當中,其中,處理該等多個讀取請求的順序會由於將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理的動作而受到改變。
在範例15中,請求項14之標的可包括:對處理該等多個請求的該順序所作的改變會使針對所判定出之該受輕微負載通道的該一或多個讀取請求比其他請求更優先受到處理。
在範例16中,請求項12之標的可包括:該設備經由一個快速週邊組件互連(PCIe)匯流排而自該主機接收該一或多個讀取請求,其中,該設備中之該等多個通道各具有相同的帶寬。
在範例17中,請求項16之標的可包括:該等多個通道之帶寬之總和等於該PCIe匯流排之帶寬。
在範例18中,請求項12之標的可包括:該等非依電性記憶體晶片包含NAND晶片,其中,該等多個通道中之至少一個通道耦接至與該等多個通道中之其他通道不同數量的NAND晶片。
在範例19中,請求項12之標的可包括可包括:該等非依電性記憶體晶片包含NAND晶片,其中,若該一
或多個讀取請求並未被置於所判定出之該受輕微負載通道中以作處理,則該設備上之讀取效能相較於所有通道均耦接至相同數量個NAND晶片的另一個設備而言會減少超過百分之十。
在範例20中,請求項12之標的可包括:對於用於處理的該等資源之配置係在藉由該設備中之該仲裁器判定出在該設備中的該等多個通道中之何者是該受輕微負載通道之後進行。
在範例21中,請求項12之標的可包括:該仲裁器會比受相對較沈重負載通道更頻繁地輪詢受相對較輕微負載通道以將經重新排序的讀取請求優先分派至該等受相對較輕微負載通道。
在範例22中,請求項12之標的可包括:使該等多個通道各與維持正受該通道處理之未竟讀取的資料結構相關聯;以及,將已從該主機接收到的該一或多個讀取請求維持在用於自該主機接收而來之讀取請求的一個進入佇列中。
範例23是一種系統,其包含一個固態硬碟、一個顯示器、以及耦接至該固態硬碟及該顯示器的一個處理器,其中,該處理器會將多個讀取請求傳送至該固態硬碟,並且其中,該固態硬碟會回應於該等多個讀取請求而進行操作,該等操作包含:判定出在該固態硬碟中的多個通道中之何者是相較於該固態硬碟中之其他通道而言的受輕微負載通道;配置用於處理從該等多個讀取請求中所選
出的一或多個讀取請求的資源,其中,該一或多個讀取請求係針對所判定出之該受輕微負載通道;將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理。
在範例24中,請求項23之標的進一步包含:該固態硬碟進一步包含包括NAND或NOR晶片的多個非依電性記憶體晶片,其中,該受輕微負載通道是該等多個通道中的受最輕微負載通道,並且其中,在將該一或多個讀取請求置於所判定出之該受最輕微負載通道中以作處理之後,所判定出之該受最輕微負載通道在處理過程中是以最大可能性接近完全使用狀態。
在範例25中,請求項23之標的進一步包含:處理該等多個讀取請求的順序會由於將該一或多個讀取請求置於所判定出之該受輕微負載通道中以作處理的動作而受到改變。
102‧‧‧固態硬碟
108‧‧‧仲裁器
110a~110n‧‧‧通道
200‧‧‧方塊圖
202‧‧‧進入佇列;進入佇列資料結構
204a~204n‧‧‧資料結構
206‧‧‧資源
Claims (25)
- 一種方法,其包含下列步驟:將多個讀取請求以一順序儲存在一個佇列中以等著被置入一個固態硬碟的多個通道中作處理,其中,該順序為該等多個讀取請求被從一個主機接收來的順序,並且其中,該等多個讀取請求各係針對該等多個通道中之一通道;藉由在該固態硬碟中的一個仲裁器,判定出該等多個通道中之何者是在該等通道當中之處理最少量讀取請求者;配置用於處理被包括在該等多個讀取請求中且係針對所判定出之該通道的一或多個讀取請求的資源;以及藉由該仲裁器,在將該等多個讀取請求中之其他讀取請求置入該等多個通道之前,將該一或多個讀取請求置入所判定出之該通道以進行對該一或多個讀取請求的處理,其中,該等其他讀取請求比該一或多個讀取請求更早被從該主機接收到。
- 如請求項1之方法,其中,處理該等多個讀取請求的順序會由於將該一或多個讀取請求置入所判定出之該通道以作處理的動作而受到改變。
- 如請求項2之方法,其中,對處理該等多個讀取請求的該順序所作的改變會使針對所判定出之該通道的該一 或多個讀取請求比該等其他讀取請求更優先受到處理。
- 如請求項1之方法,該方法進一步包含下列步驟:藉由該固態硬碟,經由一個快速週邊組件互連(PCIe)匯流排而自該主機接收該一或多個讀取請求,其中,在該固態硬碟中的該等多個通道各具有相同的帶寬。
- 如請求項1之方法,其中,該等多個通道中之至少一個通道耦接至與該等多個通道中之其他通道不同數量的NAND晶片。
- 如請求項1之方法,其中,對於用於處理該一或多個讀取請求的該等資源之配置係在藉由該固態硬碟中之該仲裁器判定出在該固態硬碟中的該等多個通道中之何者是在該等通道當中之處理最少量讀取請求者之後進行。
- 如請求項1之方法,其中,該仲裁器會比受相對較沈重負載通道更頻繁地輪詢受相對較輕微負載通道以將經重新排序的讀取請求優先分派至該等受相對較輕微負載通道。
- 如請求項1之方法,該方法進一步包含下列步驟:使該等多個通道各與維持正受該通道處理之未竟讀取的資料結構相關聯;以及將已從該主機接收到的該一或多個讀取請求維持在用於自該主機接收而來之讀取請求的一個進入佇列中。
- 如請求項1之方法,其中,係由於所判定出之該通道被判定為不處於繁忙狀態,而使該一或多個讀取請求由該仲裁器置入所判定出之該通道。
- 如請求項9之方法,其中,所判定出之該通道在耦接至所判定出之該通道的一個非依電性記憶體晶片完成一個讀取請求之前係處於繁忙狀態,並且其中,在該非依電性記憶體晶片完成對該一個讀取請求的處理之前,該非依電性記憶體晶片不容許該一個讀取請求以外的讀取請求進入該非依電性記憶體晶片。
- 一種設備,其包含:多個非依電性記憶體晶片;耦接至該等多個非依電性記憶體晶片的多個通道;以及用於控制該等多個通道的一個仲裁器,其中,該仲裁器可受操作來進行下列步驟:將多個讀取請求以一順序儲存在一個佇列中以等著被置入一個固態硬碟的多個通道中作處理,其中,該順序為該等多個讀取請求被從一個主機接收來的順序,並且其中,該等多個讀取請求各係針對該等多個通道中之一通道;判定出該等多個通道中之何者是在該等通道當中之處理最少量讀取請求者;配置用於處理被包括在該等多個讀取請求中且係針對所判定出之該通道的一或多個讀取請求 的資源;及在將該等多個讀取請求中之其他讀取請求置入該等多個通道之前,將該一或多個讀取請求置入所判定出之該通道以進行對該一或多個讀取請求的處理,其中,該等其他讀取請求比該一或多個讀取請求更早被從該主機接收到。
- 如請求項11之設備,其中,處理該等多個讀取請求的順序會由於將該一或多個讀取請求置入所判定出之該通道以作處理的動作而受到改變。
- 如請求項12之設備,其中,對處理該等多個讀取請求的該順序所作的改變會使針對所判定出之該通道的該一或多個讀取請求比該等其他讀取請求更優先受到處理。
- 如請求項11之設備,其中,該設備經由一個快速週邊組件互連(PCIe)匯流排而自該主機接收該一或多個讀取請求,其中,該等多個通道各具有相同的帶寬。
- 如請求項11之設備,其中,該等非依電性記憶體晶片包含NAND晶片,並且其中,該等多個通道中之至少一個通道耦接至與該等多個通道中之其他通道不同數量的NAND晶片。
- 如請求項11之設備,其中,對於用於處理該一或多個讀取請求的該等資源之配置係在藉由該仲裁器判定出該等多個通道中之何者是在該等通道當中之處理最少量讀取請求者之後進行。
- 如請求項11之設備,其中,該仲裁器會比受相對較沈重 負載通道更頻繁地輪詢受相對較輕微負載通道以將經重新排序的讀取請求優先分派至該等受相對較輕微負載通道。
- 如請求項11之設備,其中,該仲裁器進一步可受操作來進行下列步驟:使該等多個通道各與維持正受該通道處理之未竟讀取的資料結構相關聯;以及將已從該主機接收到的該一或多個讀取請求維持在用於自該主機接收而來之讀取請求的一個進入佇列中。
- 如請求項11之設備,其中,係由於所判定出之該通道被判定為不處於繁忙狀態,而使該一或多個讀取請求由該仲裁器置入所判定出之該通道。
- 如請求項19之設備,其中,所判定出之該通道在耦接至所判定出之該通道的一個非依電性記憶體晶片完成一個讀取請求之前係處於繁忙狀態,並且其中,在該非依電性記憶體晶片完成對該一個讀取請求的處理之前,該非依電性記憶體晶片不容許該一個讀取請求以外的讀取請求進入該非依電性記憶體晶片。
- 一種系統,其包含:一個固態硬碟;一個顯示器;以及耦接至該固態硬碟及該顯示器的一個處理器,其中,該處理器會將多個讀取請求傳送至該固態硬碟,並 且其中,該固態硬碟會回應於該等多個讀取請求而進行操作,該等操作包含:將多個讀取請求以一順序儲存在一個佇列中以等著被置入該固態硬碟的多個通道中作處理,其中,該順序為該等多個讀取請求被接收的順序,並且其中,該等多個讀取請求各係針對該等多個通道中之一通道;藉由該固態硬碟中的一個仲裁器,判定出該等多個通道中之何者是在該等多個通道當中之處理最少量讀取請求者;配置用於處理被包括在該等多個讀取請求中且係針對所判定出之該通道的一或多個讀取請求的資源;及藉由該仲裁器,在將該等多個讀取請求中之其他讀取請求置入該等多個通道之前,將該一或多個讀取請求置入所判定出之該通道以進行對該一或多個讀取請求的處理,其中,該等其他讀取請求比該一或多個讀取請求更早被接收到。
- 如請求項21之系統,其中,處理該等多個讀取請求的順序會由於將該一或多個讀取請求置入所判定出之該通道中以作處理的動作而受到改變。
- 如請求項21之系統,其中,係由於所判定出之該通道被判定為不處於繁忙狀態,而使該一或多個讀取請求由該仲裁器置入所判定出之該通道。
- 如請求項23之系統,其中,所判定出之該通道在耦接至所判定出之該通道的一個非依電性記憶體晶片完成一個讀取請求之前係處於繁忙狀態,並且其中,在該非依電性記憶體晶片完成對該一個讀取請求的處理之前,該非依電性記憶體晶片不容許該一個讀取請求以外的讀取請求進入該非依電性記憶體晶片。
- 如請求項21之系統,其中,該等多個通道中之至少一個通道耦接至與該等多個通道中之其他通道不同數量的NAND晶片。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/499,016 US20160092117A1 (en) | 2014-09-26 | 2014-09-26 | Reduction of performance impact of uneven channel loading in solid state drives |
| US14/499,016 | 2014-09-26 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201626206A TW201626206A (zh) | 2016-07-16 |
| TWI614671B true TWI614671B (zh) | 2018-02-11 |
Family
ID=55581773
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104127719A TWI614671B (zh) | 2014-09-26 | 2015-08-25 | 減弱固態硬碟中之不均通道負載之效能衝擊的技術 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20160092117A1 (zh) |
| KR (1) | KR20170038863A (zh) |
| CN (1) | CN106662984A (zh) |
| DE (1) | DE112015003568B4 (zh) |
| TW (1) | TWI614671B (zh) |
| WO (1) | WO2016048563A1 (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210182190A1 (en) * | 2016-07-22 | 2021-06-17 | Pure Storage, Inc. | Intelligent die aware storage device scheduler |
| US10528462B2 (en) | 2016-09-26 | 2020-01-07 | Intel Corporation | Storage device having improved write uniformity stability |
| KR102429904B1 (ko) * | 2017-09-08 | 2022-08-05 | 삼성전자주식회사 | PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템 |
| CN109683823B (zh) * | 2018-12-20 | 2022-02-11 | 湖南国科微电子股份有限公司 | 一种管理存储器多并发请求的方法及装置 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200602981A (en) * | 2004-03-31 | 2006-01-16 | Ignios Ltd | Resource management in a multicore architecture |
| TW201145029A (en) * | 2009-12-16 | 2011-12-16 | Intel Corp | Method to improve a solid state disk performance by using a programmable bus arbiter |
| US20120054423A1 (en) * | 2010-08-31 | 2012-03-01 | Qualcomm Incorporated | Load Balancing Scheme In Multiple Channel DRAM Systems |
| US20120303878A1 (en) * | 2011-05-26 | 2012-11-29 | International Business Machines Corporation | Method and Controller for Identifying a Unit in a Solid State Memory Device for Writing Data to |
| US20140189210A1 (en) * | 2012-12-31 | 2014-07-03 | Alan Welsh Sinclair | Memory system having an unequal number of memory die |
| US20140229658A1 (en) * | 2013-02-14 | 2014-08-14 | Lsi Corporation | Cache load balancing in storage controllers |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8949555B1 (en) * | 2007-08-30 | 2015-02-03 | Virident Systems, Inc. | Methods for sustained read and write performance with non-volatile memory |
| US8578127B2 (en) * | 2009-09-09 | 2013-11-05 | Fusion-Io, Inc. | Apparatus, system, and method for allocating storage |
| US8341300B1 (en) | 2007-08-30 | 2012-12-25 | Virident Systems, Inc. | Systems for sustained read and write performance with non-volatile memory |
| US9076528B2 (en) * | 2011-05-31 | 2015-07-07 | Micron Technology, Inc. | Apparatus including memory management control circuitry and related methods for allocation of a write block cluster |
| US9135192B2 (en) | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
| KR102020466B1 (ko) * | 2012-10-04 | 2019-09-10 | 에스케이하이닉스 주식회사 | 버퍼 메모리 장치를 포함하는 데이터 저장 장치 |
| CN103049216B (zh) * | 2012-12-07 | 2015-11-25 | 记忆科技(深圳)有限公司 | 固态硬盘及其数据处理方法、系统 |
-
2014
- 2014-09-26 US US14/499,016 patent/US20160092117A1/en not_active Abandoned
-
2015
- 2015-08-25 TW TW104127719A patent/TWI614671B/zh active
- 2015-08-26 WO PCT/US2015/047030 patent/WO2016048563A1/en not_active Ceased
- 2015-08-26 KR KR1020177005177A patent/KR20170038863A/ko not_active Ceased
- 2015-08-26 CN CN201580045606.XA patent/CN106662984A/zh active Pending
- 2015-08-26 DE DE112015003568.0T patent/DE112015003568B4/de active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200602981A (en) * | 2004-03-31 | 2006-01-16 | Ignios Ltd | Resource management in a multicore architecture |
| TW201145029A (en) * | 2009-12-16 | 2011-12-16 | Intel Corp | Method to improve a solid state disk performance by using a programmable bus arbiter |
| US20120054423A1 (en) * | 2010-08-31 | 2012-03-01 | Qualcomm Incorporated | Load Balancing Scheme In Multiple Channel DRAM Systems |
| US20120303878A1 (en) * | 2011-05-26 | 2012-11-29 | International Business Machines Corporation | Method and Controller for Identifying a Unit in a Solid State Memory Device for Writing Data to |
| US20140189210A1 (en) * | 2012-12-31 | 2014-07-03 | Alan Welsh Sinclair | Memory system having an unequal number of memory die |
| US20140229658A1 (en) * | 2013-02-14 | 2014-08-14 | Lsi Corporation | Cache load balancing in storage controllers |
Non-Patent Citations (1)
| Title |
|---|
| Jung, Myoungsoo, et al., Physically Addressed Queueing (PAQ): Improving Parallelism in Solid State Disks, IEEE, 2012, pages 404-415 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106662984A (zh) | 2017-05-10 |
| TW201626206A (zh) | 2016-07-16 |
| US20160092117A1 (en) | 2016-03-31 |
| DE112015003568B4 (de) | 2025-06-05 |
| KR20170038863A (ko) | 2017-04-07 |
| WO2016048563A1 (en) | 2016-03-31 |
| DE112015003568T5 (de) | 2017-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11467769B2 (en) | Managed fetching and execution of commands from submission queues | |
| US11061721B2 (en) | Task queues | |
| US10642500B2 (en) | Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues | |
| US10261695B2 (en) | Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues | |
| US9208116B2 (en) | Maintaining I/O priority and I/O sorting | |
| US20190073139A1 (en) | Storage device and controllers included in storage device | |
| CN110088723A (zh) | 用于对提交队列和完成队列进行处理并且做出仲裁的系统和方法 | |
| TWI614671B (zh) | 減弱固態硬碟中之不均通道負載之效能衝擊的技術 | |
| CN107885456A (zh) | 减少io命令访问nvm的冲突 | |
| US20140137128A1 (en) | Method of Scheduling Tasks for Memories and Memory System Thereof | |
| US9898334B1 (en) | Method and apparatus for scheduling processing tasks in a pipelined engine | |
| US11455186B2 (en) | Controller and memory system having the same | |
| CN107870866B (zh) | Io命令调度方法与nvm接口控制器 | |
| TWI852955B (zh) | 半導體裝置 | |
| CN110716691B (zh) | 调度方法、装置、闪存设备和系统 | |
| US20200301592A1 (en) | Data storage device idle time processing | |
| CN116136796A (zh) | 支持多主机的存储装置、其操作方法和存储系统 | |
| CN117555598A (zh) | 调度方法与装置 | |
| CN107885667B (zh) | 降低读命令处理延迟的方法与装置 | |
| US20230281115A1 (en) | Calendar based flash command scheduler for dynamic quality of service scheduling and bandwidth allocations | |
| CN107646107A (zh) | 用于控制存储器装置的存取的设备和方法 | |
| TW202011186A (zh) | 記憶體儲存裝置及其操作方法 | |
| US9052840B2 (en) | Accessing additional memory space with multiple processors | |
| CN110908790B (zh) | 存储器存储装置及其操作方法 | |
| KR102858676B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 |