TWI631467B - 用於固態裝置之多個位址暫存器之設備及方法 - Google Patents
用於固態裝置之多個位址暫存器之設備及方法 Download PDFInfo
- Publication number
- TWI631467B TWI631467B TW106105443A TW106105443A TWI631467B TW I631467 B TWI631467 B TW I631467B TW 106105443 A TW106105443 A TW 106105443A TW 106105443 A TW106105443 A TW 106105443A TW I631467 B TWI631467 B TW I631467B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- ssd
- cache
- bar
- write
- Prior art date
Links
- 239000007787 solid Substances 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000015654 memory Effects 0.000 claims abstract description 243
- 238000013500 data storage Methods 0.000 claims abstract description 9
- 239000000872 buffer Substances 0.000 claims description 35
- 230000002093 peripheral effect Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 238000003491 array Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0656—Data buffering arrangements
-
- 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/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明包含與用於一固態裝置(SSD)之多個位址暫存器有關之設備、系統及方法。一種實例性設備包含:一控制器,其包含複數個基址暫存器(BAR),每一BAR包含一相同記憶體資源中用於資料儲存之相同位址;及一SSD,其包含相同記憶體資源。
Description
本發明一般而言係關於固態裝置,且更具體而言係關於用於一固態裝置之多個位址暫存器之設備及方法。
一組件介面電路可經由一邏輯連接(稱作一互連件或一鏈路)進行通信,該邏輯連接可在兩個埠之間提供一點對點通信通道,藉此允許兩個埠發送及/或接收請求(諸如組態讀取/寫入、I/O讀取/寫入、記憶體讀取/寫入以及其他請求)。舉例而言,在使用一高速周邊組件互連(PCIe)匯流排之一系統中,為使一PCIe周邊記憶體裝置可定址,該周邊記憶體裝置可首先被映射至該系統之一I/O埠位址空間或一記憶體映射位址空間中。系統之韌體、裝置驅動器及/或作業系統可將周邊記憶體裝置至一基址暫存器之映射程式化,以藉由將組態命令寫入至一PCIe控制器而告知周邊記憶體裝置其位址映射。
本發明包含與用於一固態裝置(SSD)之多個位址暫存器有關之設備及方法。一種實例性設備包含:一控制器,其包含複數個基址暫存器(BAR),每一BAR包含一相同記憶體資源中用於資料儲存之相同位址;及一SSD,其包含相同記憶體資源。 一種分散式計算架構可包含使用與分散式系統之分散式組件互連之一介面電路。舉例而言,一PCIe可係一串列電腦擴展電路(匯流排),其可提供優於(舉例而言) PCI、PCI-X及AGP (加速圖形埠)匯流排標準以及其他標準之改良。此等改良可包含較高系統匯流排輸送量、較低I/O接腳計數及一較小實體佔用面積、匯流排裝置之較佳效能縮放、更詳細之錯誤偵測及報告機制,及/或原生熱插撥功能性。為簡單起見,本文中所闡述之實施例參考PCIe。然而,如熟習此項技術者將瞭解,亦預期其他介面及/或互連系統(諸如PCI以及其他)。 PCIe匯流排(舉例而言)可係使用共用位址/資料線之一高速串列互連匯流排。因此,PCIe匯流排可不同於其匯流排拓撲中之其他PCI匯流排。舉例而言,一PCI可使用一共用並列匯流排架構,其中PCI主機與所有裝置共用一組共同位址/資料/控制線。由於此共用匯流排拓撲,因此對一PCI匯流排之存取在多個主裝置之情形下可被仲裁,且可限制於沿一單個方向一次一個主裝置。相比而言,一PCIe匯流排可係基於一點對點拓撲,該點對點拓撲具有將每一裝置連接至一根複合體(或主機)之單獨串列鏈路。 如本文中所闡述,一快取屬性係指用於將資料之一複本暫時地儲存於一儲存媒體(一或多個快取記憶體)中以用於藉由一處理器而執行之操作之若干個快取選項中之一者。在某些實施例中,該處理器可係一中央處理單元(CPU),如本文中所闡述。一或多個快取記憶體可比(舉例而言)一SSD之非揮發性記憶體中的資料之大容量儲存裝置更易於由處理器存取及/或處於處理器本端。快取屬性之實例包含寫入組合(WC)、寫入保護(WP)、寫回(WB)、直接寫入(WT)、繞過式寫入(WA)、強不可快取(UC)及/或不可快取(UC-)以及此項技術中已知之其他選項。 在(例如,一PCIe周邊記憶體裝置之)輔助記憶體之某些實施方案中,可存在一單個BAR至一整個實體記憶體資源區域之一對一映射,該整個實體記憶體資源區域可位於一SSD之非揮發性記憶體中,且該整個經映射區域可被指派相同快取屬性。因此,用於SSD映射之此一方法不區分用於位址映射之請求類型(例如,區分一讀取請求與一寫入請求以及其他類型之請求),且可能不包含不同快取性質(快取屬性),此乃因SSD在一個BAR中僅具有一種映射能力。此方法可將(舉例而言)讀取或寫入延時約束為偏向於各種請求類型當中用於對實體記憶體資源區域進行存取之一種請求類型。可使用(舉例而言) mmap對實體記憶體資源區域進行存取,其中mmap係可將檔案或裝置映射至記憶體中之一記憶體映射檔案I/O調用。 另外,由於自SSD存取(例如,在一讀取操作中)及/或經發送以供儲存於SSD中(例如,在一寫入操作中)之資料不可快取(UC及/或UC-)從而使得該資料不儲存於可易於由處理器存取及/或在處理器本端之一快取記憶體中,因此此等資料之處理速度可被減小。舉例而言,與結合圖1 (以及本文中其他位置)所展示及所闡述之介面(例如,PCIe)電路108之SSD 104相關聯之控制器120可不支援一快取記憶體一致性協定。在某些例項中,記憶體映射I/O暫存器或記憶體區域可按介面電路之一系統預設設定標記為不可快取,及/或該介面電路可不經組態以用於快取資料。 在其他可能性中,CPU處理器之快取記憶體控制器及/或一動態隨機存取記憶體(DRAM)控制器可經組態以結合CPU之處理器一起支援快取記憶體一致性協定。然而,未經組態以支援該一致性協定之一SSD控制器(例如,用於PCIe之SSD控制器)可致使SSD之一記憶體區域被標記為不可快取。當該SSD控制器不符合一CPU處理器之快取記憶體一致性協定時,SSD記憶體位址區域中之資料可被阻止被直接快取至處理器之快取記憶體中。此可限制SSD效能,此乃因存取SSD中之一區域可首先被複製至DRAM記憶體,且然後經由一可快取DRAM記憶體區域自該DRAM記憶體被複製至處理器之快取記憶體,而非被同時複製(舉例而言)至DRAM記憶體及處理器之快取記憶體兩者。此一介面電路可不經組態以達成供處理器在執行一操作(諸如一讀取操作類型或一寫入操作類型)期間使用之資料之直接快取。 本發明透過使用(舉例而言)用於相同(完全相同)實體記憶體資源之一讀取BAR (RD-BAR)及一獨立寫入BAR (WR-BAR)來解決對一介面電路108 (例如,一PCIe電路)之效能之此等潛在限制。舉例而言,同時地,實體記憶體資源之映射可針對一讀取請求設定為指派給RD-BAR之可快取屬性(例如,WP以及其他可能快取屬性),且映射可針對一寫入請求設定為指派給WR-BAR之一快取屬性(例如,WC以及其他可能快取屬性)。在各種實施例中,指派給RD-BAR之快取屬性可不同於指派給WR-BAR之快取屬性。 與其中資料係不可快取及/或其中一單個快取屬性偏向於一種請求類型之實施方案相比,本發明闡述相同實體記憶體資源取決於請求類型可用作(舉例而言) WP可快取的或用作WC不可快取的。快取屬性可取決於請求類型而選擇可藉由選擇性地耦合相同實體記憶體資源與多個(在此實例中係兩個) BAR而達成,每一BAR被指派有針對特定請求類型之一特定快取屬性。如此,快取記憶體可易於由處理器存取及/或處於處理器本端及/或每一快取記憶體與針對一特定操作之執行而選擇之一快取屬性相關聯可(舉例而言)減小與自輔助記憶體(例如,NAND快閃記憶體)擷取資料以供處理相關之此一操作之執行中之延時,以及其他益處。 如本文中所闡述,一讀取請求類型可係用於執行一讀取操作類型之一命令,該讀取操作類型可包含自實體記憶體資源擷取資料(例如,以供處理),且一寫入請求類型可係用於執行一寫入操作類型之一命令,該寫入操作類型可包含將待發送之資料累積及/或轉移至實體記憶體資源(例如,以供儲存)。讀取請求可與WP快取屬性相關聯地為可快取的(例如,使用與處理器相關聯之一階(L1)快取記憶體、二階(L2)快取記憶體、三階(L3)快取記憶體及/或四階(L4)快取記憶體以及其他類型之快取記憶體)。寫入請求可與WC快取屬性相關聯地為不可快取的(例如,使用與處理器相關聯之一緩衝器)且可被發送至一特定輔助記憶體SSD (例如,一PCIe電路中之一周邊記憶體裝置)以用於由該特定輔助記憶體SSD之控制器引導之一寫入操作(如結合圖3所闡述),而非(舉例而言)通過一更加間接之WC緩衝器到達DRAM再到達輔助記憶體SSD操作。寫入請求可與不可快取SSD記憶體之WC快取屬性一起執行,此乃因此可(舉例而言)減少一DRAM記憶體控制器接收之記憶體請求之數目及/或使資料寫入操作更加有利於SSD之寫入粒度,以及其他原因。 藉由區分請求類型,可將兩個(或更多)獨立快取屬性同時指派至相同實體記憶體資源。如本文中所闡述,多個BAR之實施方案可增加對實體記憶體資源之直接存取速度及/或對自實體記憶體資源擷取及/或經發送以儲存於實體記憶體資源中之資料之處理速度。 在本發明之以下詳細說明中,參考形成本發明之一部分且其中以圖解說明方式展示可如何實踐本發明之一或多項實施例之附圖。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下做出程序、電及/或結構改變。如本文中所使用,「若干個」一特定事物可係指此等事物中之一或多者(例如,若干個記憶體陣列可係指一或多個記憶體陣列)。「複數個」意欲指代多於一個此等事物。此外,措辭可(「can」及「may」)係以一許可意義(亦即,具有可能、能夠)而一非強制意義(亦即,必須)貫穿本申請案而使用。術語「包含」及其衍生詞意指「包含,但不限於」。術語「經耦合」及「耦合」意指直接地或間接地實體連接或用於存取及移動(傳輸)命令及/或資料,視內容脈絡而定。 本文中之各圖遵循其中第一個數字或前幾個數字對應於圖式之圖號且其餘數字識別圖式中之一元件或組件之一編號慣例。可藉由使用類似之數字來識別不同圖之間的類似元件或組件。舉例而言,在圖1中,110可指代元件「10」,且在圖2中,一類似元件可稱為210。如將瞭解,可添加、交換及/或消除本文中之各種實施例中所展示之元件以提供本發明之若干項額外實施例。另外,如將瞭解,各圖中所提供之元件之比例及相對尺度意欲圖解說明本發明之某些實施例且不應視為具有一限制意義。 圖1係根據本發明之若干項實施例之用於一SSD之多個位址暫存器之一系統之一方塊圖。如圖1中所圖解說明,系統100可包含一主機計算裝置102。在各種實施例中,主機計算裝置102可包含若干個組件,如本文中所闡述。系統100亦可包含藉由一匯流排106連接至主機計算裝置102之至少一個SSD 104。在各種實施例中,SSD 104可包含若干個組件,如本文中所闡述。在某些實施例中,主機計算裝置102及匯流排106可與至少一個SSD 104一起操作為一介面電路108 (例如,一PCIe電路),該至少一個SSD表示包含輔助記憶體之若干個記憶體裝置中之一者,如本文中所闡述。如本文中所使用,一主機計算裝置102、CPU 110、CPU 110內部之若干個快取記憶體112、CPU 110外部之若干個快取記憶體114、揮發性記憶體116、緩衝器117、SSD驅動器118、至少一個SSD 104、匯流排106、控制器120、複數個BAR 122、揮發性記憶體124及/或非揮發性記憶體126可單獨地或共同地視為一「設備」。 為清晰起見,系統100之說明已簡化為集中於與本發明具有特定相關性之特徵上。舉例而言,在各種實施例中,在(舉例而言)一PCIe電路之周邊記憶體裝置中可存在多於一個主機計算裝置102及/或操作為輔助記憶體之多於一個SSD 104。SSD 104之實體記憶體資源可係一3D XPoint陣列,一DRAM陣列、一SRAM陣列、一STT RAM陣列、一PCRAM陣列、一TRAM陣列、一RRAM陣列、一NAND快閃陣列及/或一NOR快閃陣列,舉例而言,在各種實施例中,該等陣列可以組合形式操作為實體記憶體資源之揮發性記憶體124及/或非揮發性記憶體126。此一實體記憶體資源可包含配置成由存取線(其可稱為字線或選擇線)耦合之列及由感測線(其可稱為資料線或數位線)耦合之行之記憶體單元。在某些實施例中,實體記憶體資源之複數個記憶體陣列可被分割,如本文中所闡述。 如本文中所闡述,一3D XPoint陣列意欲意指用於一SSD之記憶體單元之一個三維交叉點陣列,該3D XPoint陣列經組態以用於儲存非揮發性資料且用於減小資料存取及/或擷取之延時。相對於其他非揮發性記憶體(例如,NAND快閃記憶體),該延時可減小至接近使用揮發性記憶體(例如,DRAM記憶體)可達成之相對短延遲之一位準。 雖然本文中圖解說明一實體記憶體資源之一單個實施例(例如,如於圖2中之228處及圖3中之328處所展示及結合圖2中之228及圖3中之328所闡述之「SSD記憶體資源」),其在本文中可稱作一「相同」實體記憶體資源,但實施例並不限於此。舉例而言,圖1中於104處所展示及結合圖2及圖3中之對應元件符號所闡述之SSD可包含複數個記憶體陣列及/或若干類型之記憶體陣列(例如,一或多個DRAM陣列、一或多個NAND快閃陣列及/或一或多個3D XPoint陣列等)以及每一記憶體陣列之若干個子陣列。不管記憶體陣列之數目及/或記憶體陣列之類型如何,儲存於單個實體記憶體資源之SSD記憶體資源中之資料之位址在選擇性地耦合至相同實體記憶體資源之複數個BAR中可暫存為相同的(完全相同的)。在某些實例中,非揮發性記憶體126 (例如,NAND快閃陣列及/或3D XPoint陣列等)可係針對其相同位址可暫存於複數個BAR中的SSD記憶體資源中之輔助記憶體。舉例而言,在某些實施例中,揮發性記憶體124 (例如,DRAM)之位址可不暫存於BAR中。 在至少一項實施例中,主機計算裝置102可包含一CPU 110以命令(請求)及/或參與執行(經由一或多個處理器)各種操作,諸如本文中所闡述之讀取操作類型及寫入操作類型。除一L1快取記憶體以外,在各種實施例中,本發明亦可利用三個其他階快取記憶體(諸如L2、L3及/或L4)中之至少一者之組合。L1、L2、L3及/或L4快取記憶體各自可促進橋接位於一快速CPU 110與(例如,一PCIe周邊記憶體裝置之)一較慢輔助記憶體之間的一間隙。在某些實施例中,主機計算裝置102可包含作為CPU 110之一部分之若干個內部快取記憶體112。L1、L2及/或L3快取記憶體可構建至CPU (如內部快取記憶體112)中。在各種實施例中,一L2快取記憶體或一L3快取記憶體可係內部快取記憶體112階層中之一末階快取記憶體(LLC)。 另一選擇係或另外,主機計算裝置102可包含位於CPU 110外部之若干個外部快取記憶體114。內部及/或外部快取記憶體可組態為用以進行以下操作之記憶體:至少暫時地儲存自SSD 104之實體記憶體資源擷取以便由CPU 110在執行若干個操作(諸如本文中所闡述之讀取操作類型)時使用之資料。舉例而言,內部快取記憶體112中之一L1、L2及/或L3快取記憶體階層可儲存由CPU 110頻繁地及/或最近存取之資料。當在各別內部快取記憶體階層中未找到CPU 110所請求之資料時,可檢查外部快取記憶體114以判定所請求資料是否在其中被快取。在各種實施例中,外部快取記憶體114可包含各種類型之快取記憶體中之一或多者。外部快取記憶體114可促進用於改良電腦效能之一多階儲存策略。諸如L4之快取記憶體可位於CPU外部(如外部快取記憶體114),舉例而言,晶片外及/或構建於一母板中,以及其他位置。 若所請求資料未在外部快取記憶體114中被快取,則可將一記憶體存取請求發送至SSD驅動器118及/或SSD中之控制器120中之一或多者以自(舉例而言)非揮發性記憶體126擷取資料。在某些實施例中,主機計算裝置102可包含額外記憶體。額外記憶體可(舉例而言)係揮發性記憶體116,諸如DRAM以及其他類型之揮發性記憶體。 在某些實施例中,主機計算裝置102可包含作為CPU 110之一部分或位於CPU 110外部之若干個緩衝器117。緩衝器117可係經組態以進行以下操作之記憶體:累積(舉例而言)自CPU 110擷取之資料,且在執行若干個操作(諸如本文中所闡述之寫入操作類型)時將該資料轉移至SSD 104之實體記憶體資源。 如本文中所闡述,主機計算裝置102可包含一主要記憶體資源,該主要記憶體資源可包含內部快取記憶體112、外部快取記憶體114、緩衝器117及/或揮發性記憶體116。相比而言,SSD 104包含相同實體記憶體資源,該實體記憶體資源被視為一輔助記憶體資源,其可包含(舉例而言)揮發性記憶體124及/或非揮發性記憶體126之一組合,如本文中所闡述。 在各種實施例中,系統100可包含一SSD驅動器118。SSD驅動器118可經組態以結合安置於(舉例而言) SSD 104上之多個BAR 122一起執行至少本文中所闡述之功能。在某些實施例中,主機計算裝置102可包含SSD驅動器118,但實施例並不限於此。舉例而言,SSD 104之SSD驅動器118可安置於SSD 104自身上或系統100中之其他地方。在其中SSD驅動器118安置於主機計算裝置102上之實施例中,SSD驅動器118可選擇性地耦合至CPU 110且經由匯流排106選擇性地耦合至SSD 104。舉例而言,至少一個SSD驅動器118可經組態以選擇性地耦合至每一SSD 104 (例如,一PCIe電路之周邊記憶體裝置)中之一控制器120以提供與多個BAR 122、快取記憶體112、114、緩衝器117及/或快取屬性之使用有關之指令,如本文中所闡述。在某些實施例中,控制器120可包含用於其上安置有控制器120之SSD 104之BAR 122。另外,控制器120可經組態以控制對每一SSD 104之相同實體記憶體資源之存取,如本文中所闡述。 在至少一項實施例中,本發明可實施如下。SSD 104可包含用於定址SSD中之相同實體記憶體資源之兩個單獨BAR 122。在某些實施例中,兩個單獨BAR 122可定位於SSD之一控制器120上及/或與SSD之一控制器120相關聯地定位(安置於SSD之一控制器120上)。在各種實施例中,相同實體記憶體資源可包含非揮發性記憶體126 (例如,NAND快閃記憶體及/或3D XPoint記憶體以及其他類型之非揮發性記憶體)及(在某些實施例中)揮發性記憶體124 (例如,DRAM以及其他類型之揮發性記憶體)。 在系統初始化期間,用於相同實體資源之記憶體位址區域可暫存於多個BAR 122中。舉例而言,在初始化SSD時,相同輔助記憶體資源中用於資料儲存之相同位址可暫存於一SSD 104之一控制器120中之一第一BAR及一第二BAR中。針對一讀取請求而指派給一RD-BAR (例如,如於222-1處所展示及結合圖2所闡述)之一快取屬性可設定為WP可快取的(例如,在與CPU 110相關聯之內部快取記憶體112及/或外部快取記憶體114中)。針對一寫入請求而指派給一WR-BAR (例如,如於322-2處所展示及結合圖3所闡述)之一快取屬性可設定為WC以供與(舉例而言)關聯於CPU 110之一寫入組合緩衝器(例如,如圖3中之317處所展示)一起使用。 當請求一讀取操作時,SSD驅動器118可判定已發出一讀取請求且可使用RD-BAR 222-1之一位址來轉發用於執行該讀取操作之一命令。在其中(舉例而言)經由一使用者應用程式及/或一系統程式而請求一寫入操作之情況中,SSD驅動器118可判定已發出一寫入請求且可使用WR-BAR 322-2之一位址來轉發用於執行該寫入操作之一命令。. 由於自(舉例而言) SSD 104之非揮發性記憶體126擷取之用於一讀取操作類型之資料可在與CPU 110相關聯之一快取記憶體中(在內部快取記憶體112及/或外部快取記憶體114中)被快取,因此可改良資料之一處理速度。舉例而言,處理速度可接近將資料自揮發性記憶體(例如,安置於主機計算裝置102中之DRAM 116及/或安置於SSD 104上之DRAM 126)提供至處理器之一速度。對於一寫入操作類型而言,可使用與CPU 110相關聯之一WC緩衝器117來達成處理速度之類似改良。 圖2係圖解說明根據本發明之若干項實施例之讀取操作路徑之一圖式。在某些實施例中,圖2中所圖解說明之讀取操作路徑230可於一介面(例如,PCIe)電路(如圖1中之元件符號108所指示)中實施。因此,可(舉例而言)使用一主機計算裝置202及至少一個SSD 204 (如結合圖1中對應元件符號所闡述)來執行讀取操作路徑230之實施方案。 CPU 210可將用於執行一讀取操作類型之一請求231發出至SSD驅動器218。SSD驅動器218經組態以判定232請求231係用於執行讀取操作類型。此一判定可與指令一起被轉發233至CPU 210,使得與一特定SSD 204之控制器220相關聯之一RD-BAR 222-1經選擇242以供由CPU 210在對儲存於相同輔助記憶體資源228中之資料執行讀取操作類型時使用。在某些實施例中,與控制器220相關聯之RD-BAR 222-1可由裝置SSD驅動器218選擇。 特定SSD 204可包含與控制器220相關聯之一RD-BAR 222-1及一WR-BAR (圖2中未展示)兩者。然而,SSD驅動器218將所請求讀取操作指派給RD-BAR 222-1,RD-BAR 222-1包含設定為(舉例而言) WP可快取作為所指派快取屬性之經映射位址。使用SSD記憶體資源228之實體記憶體位址229之經映射位址244,可在來自相同輔助實體記憶體資源之一邏輯路徑248中擷取246資料。如本文中所使用,一WP快取屬性意欲意指一種用於與一處理器(諸如CPU 210)相關聯地快取資料之技術。WP快取屬性可控制快取記憶體,使得可不對資料執行寫入操作,但可以任何次序對所快取資料執行讀取操作或其部分。 在各種實施例中,所擷取資料可被發送至主機計算裝置202且至少暫時地儲存於一或多個內部快取記憶體212 (例如,L1、L2及/或L3快取記憶體)、位於CPU 210外部之一或多個快取記憶體214 (例如,L4快取記憶體)及/或主要記憶體資源之揮發性記憶體216 (例如,DRAM)中以供CPU 210在執行讀取操作類型期間使用。因此,主機計算裝置202中之主要記憶體資源之特定記憶體可經選擇以用於儲存自相同輔助記憶體資源轉移之資料值以供CPU 210使用。該主要記憶體資源(例如,內部快取記憶體212及/或外部快取記憶體214)可受一經啟用快取屬性(舉例而言WP)控制。 因此,如本文中所闡述,在各種實施例中,SSD驅動器218可經組態以自CPU 210接收用於執行一操作之一請求且判定所請求操作係(舉例而言)一讀取操作類型或是一寫入操作類型。SSD驅動器218可進一步經組態以視情況自複數個BAR選擇一BAR以供與所判定操作類型一起使用,且按複數種操作類型中之哪一類型被請求而決定,將該操作指派給一特定BAR。在各種實施例中,可給複數個BAR各自指派一不同快取屬性類型,其中每一BAR之不同快取屬性類型可對應於所請求之操作類型。 SSD驅動器218可進一步經組態以啟用一快取屬性以供選定BAR在執行所判定操作類型時使用。可將一經啟用快取屬性指派給一選定BAR且該經啟用快取屬性可不同於指派給一非選定BAR之一快取屬性。舉例而言,如圖2中所展示及結合圖2所闡述,一第一BAR (RD-BAR 222-1)可經選擇以用於一讀取操作類型且一經啟用快取屬性可係WP。如圖3中所展示及結合圖3所闡述,一第二BAR (WR-BAR 322-2)可經選擇以用於一寫入操作類型且經啟用快取屬性可係WC。 如此,SSD驅動器218可基於第一操作係一讀取操作類型而將第一操作選擇性地指派給第一BAR,且SSD驅動器218可基於第二操作係一寫入操作類型而將第二操作選擇性地指派給第二BAR。SSD驅動器218可啟用經選擇以用於一讀取操作類型之一第一快取屬性(例如,WP)以供在讀取操作中與第一BAR一起使用,且可啟用經選擇以用於一寫入操作類型之一第二快取屬性(例如,WC)以供在寫入操作中與第二BAR一起使用。供與第一BAR一起使用之第一快取屬性及供與第二BAR一起使用之第二快取屬性可係不同快取屬性類型。 如剛所闡述,複數個BAR可係選擇性地耦合至相同輔助記憶體資源之兩個BAR。然而,在各種實施例中,複數個BAR可係選擇性地耦合至一經分割相同輔助記憶體資源中之複數個分割區之多於兩個BAR。舉例而言,出於安全性等原因,可將相同輔助記憶體資源分割成用於將用於不同功能之資料之多個分割區(區域)。在此一情況中,與控制器220相關聯之兩個(或更多)不同BAR可選擇性地耦合至一第一分割區,且至少一個不同BAR可選擇性地耦合至其他分割區中之至少一者。在某些實施例中,當利用多於兩個BAR時,可指派多於兩個不同快取屬性。舉例而言,代替WP與WC或除WP與WC以外,亦可將諸如WB、WT、WA、UC及/或UC-等快取屬性指派給至少一個BAR。 圖3係圖解說明根據本發明之若干項實施例之一寫入操作路徑之一圖式。在某些實施例中,圖3中所圖解說明之寫入操作路徑340可在一介面(例如,PCIe)電路(如圖1中之元件符號108所指示)中實施。因此,可(舉例而言)使用一主機計算裝置302及至少一個SSD 304 (如結合圖1中之對應元件符號所闡述)來執行寫入操作路徑340之實施方案。 CPU 310可將用於執行(舉例而言)一寫入操作類型之一請求331發送至SSD驅動器318。SSD驅動器318經組態以判定332請求331係用於執行寫入操作類型。此一判定可與指令一起被轉發333至CPU 310,使得主機計算裝置302中之一緩衝器317經選擇334以用於累積及儲存將被轉移至相同輔助記憶體資源328之資料值以供CPU 310在執行寫入操作類型時使用。在某些實施例中,主機計算裝置302中之緩衝器317可由裝置SSD驅動器318選擇以供CPU 310用於轉移資料。 緩衝器317可係由一經啟用WC快取屬性控制之一WC緩衝器。如本文中所使用,一WC快取屬性意欲意指一種允許以叢發模式累積及釋放資料以轉移至相同實體記憶體資源而非將待寫入之資料即刻如此發送至相同實體記憶體資源之技術。當資料之量(位元)達到(舉例而言)一臨限值(諸如緩衝器317之資料容量、一頁資料、一完整資料檔案以及其他臨限值可能性)時,可自緩衝器317釋放資料。WC快取屬性可控制該WC緩衝器,使得讀取操作相對於寫入操作被排序。 自緩衝器317釋放資料之前、期間或之後,SSD驅動器318可判定資料被發送335至一特定輔助記憶體SSD 304 (例如,一PCIe電路中之一周邊記憶體裝置)以用於由該特定輔助記憶體SSD之控制器320引導之一寫入操作。特定SSD 304可包含與控制器320相關聯之一WR-BAR 322-1及一RD-BAR (圖3中未展示)兩者。然而,SSD驅動器318將所請求寫入操作指派給WR-BAR 322-1,WR-BAR 322-1包含設定為WC作為所指派快取屬性之經映射位址。使用SSD記憶體資源328 (例如,揮發性記憶體324及/或非揮發性記憶體326)之實體記憶體位址329之經映射位址336,資料可寫入自緩衝器317至SSD記憶體資源328之預期實體記憶體位址329之一邏輯路徑338中。 與其他周邊組件互連系統方法(例如,PCI、PCIe、PCI-X及AGP以及其他)相比,本發明可藉由將相對相同SSD資源之一讀取操作與一寫入操作解耦而提供益處。資料之寫入可不會大程度地影響一系統之效能,此乃因資料可僅係在一緩衝器及/或快取記憶體(舉例而言)已達到一臨限值且發送資料以使緩衝器及/或快取記憶體中有更多記憶體可用時被寫入。另外,當寫入資料到達SSD記憶體資源328時,該資料可首先被安置至SSD之內部揮發性記憶體324 (例如,一DRAM及/或一靜態隨機存取記憶體(SRAM))寫入緩衝器上,因此可有效地隱藏非揮發性記憶體326之延時。 相比而言,自SSD記憶體資源228讀取資料對系統效能可係較有影響的,此乃因CPU 210活動可被延遲直至所請求資料被擷取及遞送為止。在其他周邊組件互連系統方法中,讀取操作執行亦可被延遲,此乃因由於讀取操作與寫入操作共用單個BAR之位址空間,因此一寫入操作可防止讀取資料係可快取的。如此,改良讀取操作之速度及/或效率可提升此一系統之效能。因此,本發明闡述藉由為相同SSD實體記憶體資源提供至少兩個BAR而使得讀取操作能夠單獨地可快取,其中單獨BAR用於讀取及寫入操作。 雖然本文中已圖解說明及闡述特定實施例,但熟習此項技術者將瞭解,經計算以達成相同結果之一配置可替代所展示之特定實施例。本發明意欲涵蓋本發明之一或多項實施例之更改形式或變化形式。應理解,已以一說明性方式而非一限制性方式做出以上說明。在審閱以上說明後,熟習此項技術者旋即將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多項實施例之範疇包含其中使用以上結構及方法之其他應用。因此,本發明之一或多項實施例之範疇應參考隨附申請專利範圍連同授權此等申請專利範圍之等效內容之全部範圍來判定。 在前述實施方式中,出於簡化本發明之目的,將某些特徵一起集合於一單個實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比每一請求項中所明確陳述更多之特徵之一意圖。而是,如隨附申請專利範圍反映,發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將隨附申請專利範圍併入至實施方式中,其中每一請求項獨立地作為一單獨實施例。
100‧‧‧系統
102‧‧‧主機計算裝置
104‧‧‧固態裝置
106‧‧‧匯流排
108‧‧‧介面電路
110‧‧‧中央處理單元/快速中央處理單元
112‧‧‧快取記憶體/內部快取記憶體
114‧‧‧快取記憶體/外部快取記憶體
116‧‧‧揮發性記憶體/動態隨機存取記憶體
117‧‧‧緩衝器/寫入組合緩衝器
118‧‧‧固態裝置驅動器
120‧‧‧控制器
122‧‧‧基址暫存器
124‧‧‧揮發性記憶體
126‧‧‧非揮發性記憶體/動態隨機存取記憶體
202‧‧‧主機計算裝置
204‧‧‧固態裝置/特定固態裝置
210‧‧‧中央處理單元
212‧‧‧內部快取記憶體
214‧‧‧快取記憶體/外部快取記憶體
216‧‧‧揮發性記憶體
218‧‧‧固態裝置驅動器
220‧‧‧控制器
222-1‧‧‧讀取基址暫存器/第一基址暫存器
228‧‧‧輔助記憶體資源/固態裝置記憶體資源
229‧‧‧實體記憶體位址
230‧‧‧讀取操作路徑
231‧‧‧請求
244‧‧‧經映射位址
248‧‧‧邏輯路徑
302‧‧‧主機計算裝置
304‧‧‧特定輔助記憶體固態裝置/特定固態裝置/固態裝置
310‧‧‧中央處理單元
317‧‧‧緩衝器
318‧‧‧固態裝置驅動器
320‧‧‧控制器
322-2‧‧‧寫入基址暫存器/第二基址暫存器
324‧‧‧揮發性記憶體/內部揮發性記憶體
326‧‧‧非揮發性記憶體
328‧‧‧輔助記憶體資源/固態裝置記憶體資源
329‧‧‧實體記憶體位址/預期實體記憶體位址
331‧‧‧請求
336‧‧‧經映射位址
338‧‧‧邏輯路徑
340‧‧‧寫入操作路徑
102‧‧‧主機計算裝置
104‧‧‧固態裝置
106‧‧‧匯流排
108‧‧‧介面電路
110‧‧‧中央處理單元/快速中央處理單元
112‧‧‧快取記憶體/內部快取記憶體
114‧‧‧快取記憶體/外部快取記憶體
116‧‧‧揮發性記憶體/動態隨機存取記憶體
117‧‧‧緩衝器/寫入組合緩衝器
118‧‧‧固態裝置驅動器
120‧‧‧控制器
122‧‧‧基址暫存器
124‧‧‧揮發性記憶體
126‧‧‧非揮發性記憶體/動態隨機存取記憶體
202‧‧‧主機計算裝置
204‧‧‧固態裝置/特定固態裝置
210‧‧‧中央處理單元
212‧‧‧內部快取記憶體
214‧‧‧快取記憶體/外部快取記憶體
216‧‧‧揮發性記憶體
218‧‧‧固態裝置驅動器
220‧‧‧控制器
222-1‧‧‧讀取基址暫存器/第一基址暫存器
228‧‧‧輔助記憶體資源/固態裝置記憶體資源
229‧‧‧實體記憶體位址
230‧‧‧讀取操作路徑
231‧‧‧請求
244‧‧‧經映射位址
248‧‧‧邏輯路徑
302‧‧‧主機計算裝置
304‧‧‧特定輔助記憶體固態裝置/特定固態裝置/固態裝置
310‧‧‧中央處理單元
317‧‧‧緩衝器
318‧‧‧固態裝置驅動器
320‧‧‧控制器
322-2‧‧‧寫入基址暫存器/第二基址暫存器
324‧‧‧揮發性記憶體/內部揮發性記憶體
326‧‧‧非揮發性記憶體
328‧‧‧輔助記憶體資源/固態裝置記憶體資源
329‧‧‧實體記憶體位址/預期實體記憶體位址
331‧‧‧請求
336‧‧‧經映射位址
338‧‧‧邏輯路徑
340‧‧‧寫入操作路徑
圖1係根據本發明之若干項實施例之用於一固態裝置之多個位址暫存器之一系統之一方塊圖。 圖2係圖解說明根據本發明之若干項實施例之讀取操作路徑之一圖式。 圖3係圖解說明根據本發明之若干項實施例之一寫入操作路徑之一圖式。
Claims (24)
- 一種記憶體設備,其包括:一控制器,其包括複數個基址暫存器(base address registers;BAR),每一BAR包含一相同記憶體資源中用於資料儲存之相同位址;及一固態裝置(SSD),其包括該相同記憶體資源;且其中:一寫入操作被指派給具有一選定第一快取屬性之一第一BAR,以啟用該寫入操作之執行;在該寫入操作之執行期間,該寫入操作之資料值被指派用於在轉移至該SSD之前儲存至處於一處理器本端(local to a processor)之一特定緩衝器,其中該特定緩衝器受該選定第一快取屬性控制;一讀取操作被指派給具有一選定第二快取屬性之一第二BAR,以啟用該讀取操作之執行;及在該讀取操作之執行期間,該讀取操作之資料值被指派用於在自該SSD轉移之後儲存至處於該處理器本端之一特定快取記憶體,其中該特定快取記憶體受該選定第二快取屬性控制。
- 如請求項1之記憶體設備,其中該控制器經組態以按複數種操作類型中之哪一類型被請求而決定,將一操作指派給該複數個BAR中之一者。
- 如請求項1之記憶體設備,其中:該複數個BAR各自包括一不同快取屬性;且每一BAR之該不同快取屬性對應於所請求之一操作類型。
- 如請求項1之記憶體設備,其中該SSD包括作為一非揮發性記憶體資源之NAND快閃記憶體。
- 如請求項4之記憶體設備,其中該SSD進一步包括作為一揮發性記憶體資源之動態隨機存取記憶體(DRAM)。
- 如請求項1之記憶體設備,其中該SSD包括作為一非揮發性記憶體資源之3D XPoint記憶體。
- 如請求項1之記憶體設備,其中該控制器包括安置於該SSD上之該複數個BAR。
- 一種記憶體設備,其包括:一固態裝置(SSD)驅動器;及一控制器,其包括複數個基址暫存器(BAR),每一BAR包含一相同記憶體資源中用於資料儲存之相同位址,其中該控制器選擇性地耦合至該SSD驅動器,且其中:一寫入操作被指派給具有一選定第一快取屬性之一第一BAR,以啟用該寫入操作之執行;在該寫入操作之執行期間,該寫入操作之資料值被指派用於在轉移至該SSD之前儲存至處於一處理器本端之一特定緩衝器,其中該特定緩衝器受該選定第一快取屬性控制;一讀取操作被指派給具有一選定第二快取屬性之一第二BAR,以啟用該讀取操作之執行;及在該讀取操作之執行期間,該讀取操作之資料值被指派用於在自該SSD轉移之後儲存至處於該處理器本端之一特定快取記憶體,其中該特定快取記憶體受該選定第二快取屬性控制。
- 如請求項8之記憶體設備,其中該SSD驅動器經組態以:接收用於執行一操作之一請求;判定該所請求操作係該讀取操作或是該寫入操作;視情況自該複數個BAR選擇一BAR以供與該所判定操作類型一起使用;且啟用該選定第一快取屬性或該選定第二快取屬性以供該經指派BAR在執行該所判定操作時使用。
- 如請求項8之記憶體設備,其中:一經啟用快取屬性被指派給一選定BAR;且該經啟用快取屬性不同於指派給一非選定BAR之一快取屬性。
- 如請求項8之記憶體設備,其中該記憶體設備進一步包括一主機計算裝置,該主機計算裝置包括該處理器及一主要記憶體資源。
- 如請求項11之記憶體設備,其中該複數個BAR係選擇性地耦合至一相同輔助記憶體資源之兩個BAR。
- 如請求項8之記憶體設備,其中該記憶體設備進一步包括一SSD,其包括該相同記憶體資源,其中該複數個BAR選擇性地耦合至該相同記憶體資源。
- 一種用於記憶體操作之方法,其包括:對一輔助記憶體資源中用於資料儲存之位址進行映射,該映射針對一讀取操作請求設定為寫入保護作為一第一快取屬性;藉由對一第一基址暫存器(BAR)之指派而啟用所請求之讀取操作之執行,該第一BAR包含設定為該寫入保護第一快取屬性的該等經映射位址;在經啟用之該讀取操作之執行期間,將該讀取操作之資料值指派用於在自一固態裝置(SSD)轉移之後儲存至處於一主機處理器本端之一特定快取記憶體,其中該特定快取記憶體受該第一快取屬性控制;對一相同輔助記憶體資源中用於資料儲存之位址進行映射,該映射針對一寫入操作請求設定為寫入組合作為一第二快取屬性;藉由對一第二BAR之指派而啟用所請求之寫入操作之執行,該第二BAR包含設定為該寫入組合第二快取屬性的該等經映射位址;在經啟用之該寫入操作之執行期間,將該寫入操作之資料值指派用於在轉移至該SSD之前儲存至處於該主機處理器本端之一特定緩衝器,其中該特定緩衝器受該第二快取屬性控制。
- 如請求項14之方法,其中該方法進一步包括藉由一SSD驅動器而判定一所請求操作係該讀取操作請求或是該寫入操作請求。
- 如請求項14之方法,其中該方法進一步包括:藉由一SSD驅動器將所請求之該讀取操作指派給該第一BAR,該第一BAR包含設定為該寫入保護第一快取屬性的該等經映射位址;及藉由該SSD驅動器將所請求之該寫入操作指派給該第二BAR,該第二BAR包含設定為該寫入組合第二快取屬性的該等經映射位址。
- 如請求項14之方法,其中該方法進一步包括:藉由一SSD驅動器而啟用經指派用於所請求之該讀取操作的該寫入保護第一快取屬性,以供與包含該等經映射位址之該第一BAR一起使用;及藉由該SSD驅動器而啟用經指派用於所請求之該寫入操作的該寫入組合第二快取屬性,以供與包含該等經映射位址之該第二BAR一起使用;且其中供與該第一BAR一起使用之該第一快取屬性及供與該第二BAR一起使用之該第二快取屬性係不同快取屬性類型。
- 一種記憶體設備,其包括:一主機計算裝置,其包括一中央處理單元(CPU)及一主要記憶體資源;一固態裝置(SSD)驅動器,其選擇性地耦合至該CPU;一控制器,其包括複數個基址暫存器(BAR),每一BAR包含一相同輔助記憶體資源中用於資料儲存之相同位址,其中該控制器選擇性地耦合至該SSD驅動器;及一SSD,其包括該相同輔助記憶體資源,其中該複數個BAR選擇性地耦合至該相同輔助記憶體資源,且其中:一讀取操作被指派給具有一選定第一快取屬性之一第一BAR,以啟用該讀取操作之執行;在該讀取操作之執行期間,該主機計算裝置中之一特定快取記憶體經指派用於儲存自該相同輔助記憶體資源轉移之資料值,以供該CPU使用,其中該特定快取記憶體受該選定第一快取屬性控制;一寫入操作被指派給具有一選定第二快取屬性之一第二BAR,以啟用該寫入操作之執行;及在該寫入操作之執行期間,該主機計算裝置中之一特定緩衝器經指派供該CPU使用而用於儲存將被轉移至該相同輔助記憶體資源之資料值,其中該特定緩衝器受該選定第二快取屬性控制,其中該第一BAR之該選定第一快取屬性及該第二BAR之該選定第二快取屬性係不同快取屬性類型。
- 如請求項18之記憶體設備,其中一揮發性記憶體資源係該主要記憶體資源。
- 如請求項18之記憶體設備,其中非揮發性3D XPoint記憶體係該相同輔助記憶體資源。
- 如請求項18之記憶體設備,其中該設備進一步包括一高速周邊組件互連(PCIe)匯流排,其作為該主機計算裝置、該SSD驅動器、包括該相同輔助記憶體資源之一周邊SSD與該控制器之間的一通信介面以形成一PCIe電路。
- 如請求項18之記憶體設備,其中該SSD驅動器安置於該主機計算裝置上。
- 如請求項18之記憶體設備,其中:該主機計算裝置中之該特定快取記憶體經該SSD驅動器指派以用於儲存自該相同輔助記憶體資源轉移之資料值;且該特定快取記憶體受一經啟用第一快取屬性控制。
- 如請求項18之設備,其中:該主機計算裝置中之該特定緩衝器經該SSD驅動器指派以用於儲存將被轉移至該相同輔助記憶體資源之資料值;且該特定緩衝器受作為該第二快取屬性之一經啟用寫入組合控制。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/047,000 | 2016-02-18 | ||
US15/047,000 US10140057B2 (en) | 2016-02-18 | 2016-02-18 | Apparatuses and methods for multiple address registers for a solid state device |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201732616A TW201732616A (zh) | 2017-09-16 |
TWI631467B true TWI631467B (zh) | 2018-08-01 |
Family
ID=59626302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106105443A TWI631467B (zh) | 2016-02-18 | 2017-02-18 | 用於固態裝置之多個位址暫存器之設備及方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10140057B2 (zh) |
EP (1) | EP3417377B1 (zh) |
JP (1) | JP6890131B2 (zh) |
KR (1) | KR102142509B1 (zh) |
CN (1) | CN108701085B (zh) |
TW (1) | TWI631467B (zh) |
WO (1) | WO2017142785A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019046042A (ja) * | 2017-08-31 | 2019-03-22 | 富士通株式会社 | 伝送装置および伝送方法 |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US11030144B2 (en) * | 2018-12-14 | 2021-06-08 | Texas Instruments Incorporated | Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC) |
KR20220064230A (ko) | 2020-11-11 | 2022-05-18 | 삼성전자주식회사 | 다중 프로토콜에 기초하여 메모리에 액세스하기 위한 시스템, 장치 및 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070019637A1 (en) * | 2005-07-07 | 2007-01-25 | Boyd William T | Mechanism to virtualize all address spaces in shared I/O fabrics |
TW201303591A (zh) * | 2011-05-31 | 2013-01-16 | Micron Technology Inc | 包含記憶體系統控制器之裝置及相關方法 |
TW201415236A (zh) * | 2012-09-21 | 2014-04-16 | Plx Technology Inc | 具有邏輯裝置能力的pci快速開關 |
US20150317084A1 (en) * | 2014-04-30 | 2015-11-05 | Myeong-Eun Hwang | Storage device, computing system including the storage device, and method of operating the storage device |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535349A (en) * | 1994-06-09 | 1996-07-09 | Motorola, Inc. | Data processing system and method for providing chip selects to peripheral devices |
US6170047B1 (en) * | 1994-11-16 | 2001-01-02 | Interactive Silicon, Inc. | System and method for managing system memory and/or non-volatile memory using a memory controller with integrated compression and decompression capabilities |
KR100727919B1 (ko) * | 2003-02-03 | 2007-06-14 | 삼성전자주식회사 | 광정보 저장매체 |
US20060026371A1 (en) * | 2004-07-30 | 2006-02-02 | Chrysos George Z | Method and apparatus for implementing memory order models with order vectors |
US7752360B2 (en) | 2007-05-16 | 2010-07-06 | Nuova Systems, Inc. | Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus |
US9015446B2 (en) * | 2008-12-10 | 2015-04-21 | Nvidia Corporation | Chipset support for non-uniform memory access among heterogeneous processing units |
WO2011044154A1 (en) * | 2009-10-05 | 2011-04-14 | Marvell Semiconductor, Inc. | Data caching in non-volatile memory |
US8621113B2 (en) * | 2011-05-31 | 2013-12-31 | Micron Technology, Inc. | Apparatus including host bus adapter and serial attachment programming compliant device and related methods |
US8645594B2 (en) | 2012-06-29 | 2014-02-04 | Intel Corporation | Driver-assisted base address register mapping |
US9256384B2 (en) * | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
US9311266B2 (en) | 2013-06-14 | 2016-04-12 | National Instruments Corporation | Hidden base address register programming in peripheral component interconnect express buses |
US20160232103A1 (en) * | 2013-09-26 | 2016-08-11 | Mark A. Schmisseur | Block storage apertures to persistent memory |
EP3125126B1 (en) * | 2013-10-29 | 2020-01-01 | Huawei Technologies Co., Ltd. | Data processing system and data processing method |
KR20150124032A (ko) * | 2014-04-25 | 2015-11-05 | 에스케이하이닉스 주식회사 | 전자 장치 |
US10120832B2 (en) * | 2014-05-27 | 2018-11-06 | Mellanox Technologies, Ltd. | Direct access to local memory in a PCI-E device |
US9507722B2 (en) * | 2014-06-05 | 2016-11-29 | Sandisk Technologies Llc | Methods, systems, and computer readable media for solid state drive caching across a host bus |
-
2016
- 2016-02-18 US US15/047,000 patent/US10140057B2/en active Active
-
2017
- 2017-02-09 WO PCT/US2017/017170 patent/WO2017142785A1/en active Application Filing
- 2017-02-09 JP JP2018543174A patent/JP6890131B2/ja active Active
- 2017-02-09 EP EP17753662.0A patent/EP3417377B1/en active Active
- 2017-02-09 KR KR1020187026595A patent/KR102142509B1/ko active IP Right Grant
- 2017-02-09 CN CN201780012201.5A patent/CN108701085B/zh active Active
- 2017-02-18 TW TW106105443A patent/TWI631467B/zh active
-
2018
- 2018-10-30 US US16/174,631 patent/US10452313B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070019637A1 (en) * | 2005-07-07 | 2007-01-25 | Boyd William T | Mechanism to virtualize all address spaces in shared I/O fabrics |
TW201303591A (zh) * | 2011-05-31 | 2013-01-16 | Micron Technology Inc | 包含記憶體系統控制器之裝置及相關方法 |
TW201415236A (zh) * | 2012-09-21 | 2014-04-16 | Plx Technology Inc | 具有邏輯裝置能力的pci快速開關 |
US20150317084A1 (en) * | 2014-04-30 | 2015-11-05 | Myeong-Eun Hwang | Storage device, computing system including the storage device, and method of operating the storage device |
Also Published As
Publication number | Publication date |
---|---|
WO2017142785A1 (en) | 2017-08-24 |
EP3417377A1 (en) | 2018-12-26 |
EP3417377B1 (en) | 2024-04-03 |
EP3417377A4 (en) | 2020-03-25 |
CN108701085A (zh) | 2018-10-23 |
JP2019509554A (ja) | 2019-04-04 |
CN108701085B (zh) | 2022-06-21 |
US10452313B2 (en) | 2019-10-22 |
JP6890131B2 (ja) | 2021-06-18 |
KR20180105265A (ko) | 2018-09-27 |
US20170242623A1 (en) | 2017-08-24 |
US10140057B2 (en) | 2018-11-27 |
TW201732616A (zh) | 2017-09-16 |
US20190065104A1 (en) | 2019-02-28 |
KR102142509B1 (ko) | 2020-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896136B2 (en) | Storage system including secondary memory that predicts and prefetches data | |
TWI578156B (zh) | 非依電性隨機存取記憶磁碟 | |
US10866921B2 (en) | Apparatuses and methods for an operating system cache in a solid state device | |
US20190056886A1 (en) | Host managed solid state drivecaching using dynamic write acceleration | |
TWI631467B (zh) | 用於固態裝置之多個位址暫存器之設備及方法 | |
US9396141B2 (en) | Memory system and information processing device by which data is written and read in response to commands from a host | |
US11580029B2 (en) | Memory system, computing system, and methods thereof for cache invalidation with dummy address space | |
KR20090097671A (ko) | 스토리지 장치 및 컴퓨팅 시스템 | |
CN109164976B (zh) | 利用写缓存优化存储设备性能 | |
KR20220060548A (ko) | 데이터가 저장된 메모리 디바이스를 식별하기 위해 저장된 메타데이터 액세싱 | |
US20180314467A1 (en) | Storage device, computing system including the storage device, and method of operating the storage device | |
US9990283B2 (en) | Memory system | |
US10216685B1 (en) | Memory modules with nonvolatile storage and rapid, sustained transfer rates | |
JP6228523B2 (ja) | メモリ制御回路および半導体記憶装置 | |
KR20220050177A (ko) | 3단의 계층적 메모리 시스템 | |
CN114258534B (zh) | 阶层式存储器系统 | |
CN114341818B (zh) | 分级存储器设备 |