TWI691838B - 電腦系統以及非揮發性記憶體的操作方法 - Google Patents
電腦系統以及非揮發性記憶體的操作方法 Download PDFInfo
- Publication number
- TWI691838B TWI691838B TW105111217A TW105111217A TWI691838B TW I691838 B TWI691838 B TW I691838B TW 105111217 A TW105111217 A TW 105111217A TW 105111217 A TW105111217 A TW 105111217A TW I691838 B TWI691838 B TW I691838B
- Authority
- TW
- Taiwan
- Prior art keywords
- address space
- address
- volatile memory
- access
- access mode
- Prior art date
Links
Images
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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
-
- 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- 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/30101—Special purpose 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明揭露一種使用非揮發性雙列直插記憶體模組
(NVDIMM)的系統及方法。所述非揮發性雙列直插記憶體模組可支援二或更多種存取模式。一種應用可規定哪種存取模式是所述應用所請求的位址空間所需的存取模式。非揮發性記憶體(NVM)管理器可將位址空間的位址遮罩及存取模式儲存於非揮發性記憶體控制暫存器中。當應用請求對位址進行讀取存取或寫入存取時,非揮發性記憶體管理器可將所請求位址與非揮發性記憶體控制暫存器中的位址遮罩進行比較,自與相匹配的位址遮罩對應的存取模式確定存取模式,並使用所述存取模式來滿足對位址的請求。
Description
本申請案主張於2015年7月13日提出申請的第62/192,028號的美國臨時專利申請案的權利,所述美國臨時專利申請案併入本案供參考。
本發明概念是有關於一種記憶體,且更具體而言,是有關於一種支援多種存取模式的非揮發性雙列直插記憶體模組(Non-Volatile Dual In-Line Memory Module,NVDIMM)。
非揮發性雙列直插記憶體模組(NVDIMM)以雙列直插記憶體模組(Dual In-Line Memory Module,DIMM)形狀因數(form factor)將非揮發性記憶體放置於記憶體通道中。但非揮發性雙列直插記憶體模組會引入在動態隨機存取記憶體(DRAM)中一般不會見到的新褶皺(wrinkle)。儘管雙列直插記憶體模組通常僅支援可按位元組定址的儲存器(儘管雙列直插記憶體模組可在作業
系統的幫助下支援可按區塊定址的儲存器),非揮發性雙列直插記憶體模組可支援可按位元組定址的儲存器或可按區塊定址的儲存器。
一種簡單的解決方案將是迫使非揮發性雙列直插記憶體模組僅使用一個定址模式:即,特定非揮發性雙列直插記憶體模組僅充當可按位元組定址的主記憶體/儲存器或充當可按區塊定址的儲存器,而非同時充當兩者。但此為過分簡單化的解決方案;而且即使作為過分簡單化的解決方案,此方式也並非在所有情況中均可行。
由於不同應用可具有不同記憶體需求,因此將非揮發性雙列直插記憶體模組限制為特定位址模式可致使資源利用欠佳。使用一種存取模式的一個非揮發性雙列直插記憶體模組可能會工作過度,而使用不同位址模式的另一非揮發性雙列直插記憶體模組則可能無法被充分利用。且此情景假設電腦系統包括多個非揮發性雙列直插記憶體模組。若電腦系統僅包括一個非揮發性雙列直插記憶體模組,則所述非揮發性雙列直插記憶體模組所未提供的存取模式可能完全不可用。
仍需提供容許在非揮發性雙列直插記憶體模組中使用多種存取模式的方式。
一種系統可包括非揮發性雙列直插記憶體模組及非揮發
性記憶體管理器。所述非揮發性記憶體管理器可能夠操作以在第一存取模式中在所述非揮發性雙列直插記憶體模組中為第一應用分配第一位址空間以及在第二存取模式中在所述非揮發性雙列直插記憶體模組中為第二應用分配第二位址空間,並將所述第一位址空間的至少第一位址遮罩儲存於非揮發性記憶體(NVM)控制暫存器中。所述第一位址遮罩與所述第一存取模式相關聯。
105:處理器/中央處理單元
110、115:非揮發性雙列直插記憶體模組(NVDIMM)/記憶體
120、125:雙列直插記憶體模組(DIMM)/記憶體
130:儲存器/儲存裝置
135:作業系統
140、145:虛擬機器
150:非揮發性記憶體(NVM)管理器/記憶體控制器
155:非揮發性記憶體(NVM)控制暫存器
205:電腦系統/機器
210:電腦
215:監視器
220:鍵盤
225:滑鼠
305、310、315:位址空間
405:分配邏輯
410:可按位元組定址邏輯
415:可按區塊定址邏輯
420:軟體
505、510、515:位址遮罩
520、525、530:存取模式
605:所請求位址
610、615、620:比較器
625:編碼器
630:多工器
635:存取模式
705、710、715、720、725:方塊
805、810:方塊
905、910:方塊
1005、1010、1015:方塊
1105、1110:方塊
1205、1210、1215、1220:方塊
1305:系統匯流排
1310:使用者介面
1315:輸入/輸出引擎
1320:網路連接器
1325:時鐘
圖1示出根據本發明概念的實施例,在記憶體通道上使用非揮發性雙列直插記憶體模組(NVDIMM)作為記憶體或儲存器的電腦系統。
圖2示出圖1所示電腦系統的外部特徵。
圖3示出被劃分成位址空間的圖1所示非揮發性雙列直插記憶體模組。
圖4示出與圖1所示非揮發性記憶體控制暫存器及圖1所示非揮發性雙列直插記憶體模組交互作用的圖1所示非揮發性記憶體(NVM)管理器。
圖5示出儲存16個不同位址遮罩及存取模式的圖1所示非揮發性記憶體控制暫存器。
圖6示出根據本發明概念的實施例,使用圖1所示非揮發性記憶體控制暫存器來確定所請求位址的存取模式的圖1所示非揮
發性記憶體管理器。
圖7示出根據本發明概念的實施例,在非揮發性雙列直插記憶體模組中為應用分配位址空間的程序的流程圖。
圖8示出根據本發明概念的實施例,非揮發性記憶體管理器確定供非揮發性雙列直插記憶體模組中的新分配位址空間使用的存取模式的程序的流程圖。
圖9示出根據本發明概念的實施例,非揮發性記憶體管理器將關於所分配位址空間的資訊儲存於非揮發性記憶體控制暫存器中的程序的流程圖。
圖10示出根據本發明概念的實施例,非揮發性記憶體管理器處置欲對非揮發性雙列直插記憶體模組中的位址進行存取的請求的程序的流程圖。
圖11示出根據本發明概念的第一實施例,非揮發性記憶體管理器確定所請求位址的存取模式的程序的流程圖。
圖12示出根據本發明概念的第二實施例,非揮發性記憶體管理器確定所請求位址的存取模式的程序的流程圖。
圖13示出如以上參照圖1至圖12所述可使用非揮發性雙列直插記憶體模組作為記憶體及/或儲存器的裝置。
現在將詳細參照本發明概念的實施例,所述實施例的實例說明於附圖中。在以下詳細說明中,闡述大量的具體細節,以
幫助徹底理解本發明概念。然而,應理解,此項技術中具有通常知識者可不使用該些具體細節來實踐本發明概念。在其他情形中,未對眾所習知的方法、程序、組件、電路、及網路予以詳細闡述,以免不必要地使實施例的態樣模糊不清。
應理解,儘管本文中可能使用用語「第一」、「第二」等來闡述各種元件,然而該些元件不應受限於該些用語。使用該些用語僅用於區分各個元件。舉例而言,第一模組可被稱為第二模組,且相似地,第二模組可被稱為第一模組,而此並不背離本發明概念的範圍。
本文中在闡述本發明概念時所使用的術語僅用於闡述特定實施例,而並非旨在限制本發明概念。除非上下文中清楚地另外指明,否則在對本發明概念及隨附申請專利範圍的說明中所使用的單數形式「一(a、an)」及「所述(the)」旨在亦包括複數形式。亦應理解,本文中所使用的用語「及/或(and/or)」指代並囊括相關列出項其中一或多個項的任意及所有可能組合。更應理解,當在本說明書中使用用語「包括(comprises及/或comprising)」時,是指明所陳述特徵、整數、步驟、操作、元件、及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件、及/或其群組的存在或添加。圖式所示組件及特徵未必按比例繪製。
本發明概念的實施例可包括具有可適性存取模式以及智慧分割機制的非揮發性雙列直插記憶體模組(NVDIMM)。為實作
所述智慧分割機制,非揮發性記憶體(NVM)管理器可包括硬體模組及/或軟體模組,所述硬體模組及/或軟體模組用以根據應用的請求而以可按位元組定址模式或可按區塊定址模式在非揮發性雙列直插記憶體模組中分配位址空間。非揮發性記憶體管理器可根據應用行為而在運行時間(runtime)將非揮發性雙列直插記憶體模組動態地分割成可按位元組定址部分及可按區塊定址部分。智慧分割機制可亦包括非揮發性記憶體控制暫存器,所述非揮發性記憶體控制暫存器可對哪些位址區間具有哪些存取模式進行儲存。
非揮發性記憶體管理器可接受對具有相關存取模式的非揮發性雙列直插記憶體模組位址空間的應用請求(應用可請求具有不同存取模式的多於一個位址空間)。非揮發性記憶體管理器可將例如與所請求位址空間及模式對應的位址遮罩及存取模式等資訊儲存於非揮發性記憶體控制暫存器中。
為處理對位址空間的讀取請求及寫入請求,非揮發性記憶體管理器可各別地或並列地檢查非揮發性記憶體控制暫存器中的位址遮罩。當找到位址空間及存取模式的匹配項時,非揮發性記憶體管理器可以所選擇存取模式對請求進行排程。
圖1示出根據本發明概念的實施例,在記憶體通道中使用非揮發性雙列直插記憶體模組(NVDIMM)的電腦系統。在圖1中,示出處理器105。處理器105可耦接至記憶體模組,例如非揮發性雙列直插記憶體模組110及115。處理器105亦可耦接至其
他記憶體模組,例如雙列直插記憶體模組120及125。在本發明概念的某些實施例中,所有記憶體模組可被等同地使用。在本發明概念的其他實施例中,雙列直插記憶體模組120及125可充當非揮發性雙列直插記憶體模組110及115的快取(cache)。本發明概念的其他實施例可以任意所需方式使用非揮發性雙列直插記憶體模組110及115、雙列直插記憶體模組120及125、以及其他記憶體及/或儲存裝置:例如,藉由以使裝置的特性最佳化的階層方式對不同記憶體及儲存裝置進行分層。
處理器105亦可耦接至儲存器130。儲存器130可為任何所需儲存器,包括例如硬碟驅動機(hard disk drive,HDD)、固態硬碟(Solid State Drive,SSD)、及/或其他非揮發性記憶體技術等技術。此外,儲存器130可包括以下不同儲存器類型的混合:例如,硬碟驅動機與固態硬碟二者。最後,儲存器130可以任何所需方式連接至處理器105,所述方式包括經由匯流排或藉由與外部儲存器之間的介面(例如通用序列匯流排(Universal Serial Bus,USB)介面)而直接連接。
處理器105可支援作業系統135的操作。作業系統135可為任何所需作業系統,且一次支援僅一個應用的操作或並列地支援任意數目的應用。此外,作業系統135可支援虛擬機器(virtual machine),作業系統135為每一虛擬機器提供完全使用所述電腦系統內的所有資源的外觀。在圖1中,示出由作業系統135支援的n個虛擬機器140至145。
作業系統135可包括非揮發性記憶體(NVM)管理器150。非揮發性記憶體管理器150可管控非揮發性雙列直插記憶體模組110及115內的位址空間的分配及對來自非揮發性雙列直插記憶體模組110及115內的位址空間的讀取請求/寫入請求的處理。支援非揮發性記憶體管理器150的操作的是非揮發性記憶體控制暫存器155,非揮發性記憶體控制暫存器155可儲存於處理器105中、或可儲存於記憶體控制器中、或者亦具有其他可能。如以下參照圖4至圖6所進一步闡述,非揮發性記憶體控制暫存器155可儲存與如何使用位址空間有關的資訊,包括例如位址遮罩及存取模式。位址遮罩可包括與位址空間中的所有位址中的最高有效位元(most significant bit)相匹配的特定位元圖案。存取模式可規定資料如何自非揮發性雙列直插記憶體模組中的位址進行讀取/對所述非揮發性雙列直插記憶體模組中的位址進行寫入。目前,讀取及寫入是利用可按位元組定址模式或可按區塊定址模式進行。鑒於目前僅存在兩種存取模式,存取模式可使用單個位元來表示。但若設計出附加存取模式,則儲存於非揮發性記憶體控制暫存器155中的存取模式可使用附加位元。
圖2示出圖1所示電腦系統的外部特徵。在圖2中,示出電腦系統205。電腦系統205被示出為包括電腦210、監視器215、鍵盤220、及滑鼠225。熟習此項技術者將認識到電腦系統205可包含有其他組件:例如,可包含其他輸入/輸出裝置,例如列印機。此外,電腦系統205可包括圖1中所示傳統內部組件,
例如中央處理單元105、非揮發性雙列直插記憶體模組110及115、雙列直插記憶體模組120及125、儲存器130等。儘管圖2中未示出,然而熟習此項技術者將認識到電腦系統205可包括其他內部組件,例如其他圖形卡、數據機等。此外,熟習此項技術者將認識到電腦系統205可直接地或藉由任意類型的網路(圖中未示出)而與其他電腦系統交互作用。最後,儘管圖2將電腦系統205示出為傳統桌上型電腦,然而熟習此項技術者將認識到電腦系統205可為任意類型的機器或計算裝置,包括例如膝上型電腦、平板電腦、個人數位助理(personal digital assistant,PDA)、或智慧型電話、或者亦具有其他可能。
圖3示出被劃分成多個位址空間的圖1所示非揮發性雙列直插記憶體模組110。在圖3中,示出非揮發性雙列直插記憶體模組110,但所述者同樣適用於圖1所示非揮發性雙列直插記憶體模組115。非揮發性雙列直插記憶體模組110被示出為劃分成16個位址空間,包括位址空間305、310、及315。每一位址空間305、310、及315可為非揮發性雙列直插記憶體模組110的為某一應用而分配的一部分。亦可設想將多個不同位址空間305、310、及315分配至同一應用(即,單個應用並非僅限於使用非揮發性雙列直插記憶體模組110中的單個位址空間305、310、及315)。此外,每一位址空間305、310、及315可使用任何存取模式:單個非揮發性雙列直插記憶體模組(例如非揮發性雙列直插記憶體模組110)內的位址空間305、310、及315、或者甚至單個應用所使用
的位址空間305、310、及315可使用任何所需存取模式。圖1所示非揮發性記憶體管理器150可負責規定位址空間305、310、及315在其因應於應用請求而被分配時的大小。
儘管圖3示出非揮發性雙列直插記憶體模組110被劃分成16個位址空間,然而非揮發性雙列直插記憶體模組110內所分配的位址空間的數目可大於16或小於16。此外,儘管圖3表示每一位址空間305至315為相同大小(即,每一位址空間305至315在非揮發性雙列直插記憶體模組110中包括相同數目的位址),然而位址空間305、310、及315可為任何所需大小,且僅受限於非揮發性雙列直插記憶體模組110本身的大小。舉例而言,位址空間305可能夠儲存僅8千位元組(8 KB)的資料,而位址空間310可能夠儲存48百萬位元組(48 MB)的資料。(另外,位址空間305、310、及315的該些所述大小亦僅為示例性的,而並非旨在暗示對非揮發性雙列直插記憶體模組110內的各別位址空間305、310、及315的大小進行任何限制)。
此外,圖1所示非揮發性記憶體管理器150亦可改變位址空間305、310、及315的大小。舉例而言,假設位址空間305最初被分配成儲存1百萬位元組的資料。在執行的同時,使用位址空間305的應用自圖1所示非揮發性記憶體管理器150中請求附加的記憶體及/或儲存器。圖1所示非揮發性記憶體管理器150可簡單地分配附加的位址空間310或315並將其指派給所述應用。但若應用所請求的附加記憶體及/或儲存器使用與位址空間
305相同的存取模式,且存在與位址空間305鄰近的可用位址(即,位址空間310尚未被分配),則圖1所示非揮發性記憶體管理器150可將位址空間305擴大至包括所述鄰近位址。
儘管以上實例闡述增大位址空間305、310、及315的大小,然而位址空間305、310、及315的大小可以相似方式縮小。若應用指示所述應用期望釋放某些不需要的記憶體及/或儲存器,則所述記憶體及/或儲存器可被視為未被圖1所示非揮發性記憶體管理器150分配並用於滿足後續對記憶體及/或儲存器的請求。
如以下參照圖5至圖6將進一步闡述,圖1所示非揮發性記憶體控制暫存器155可儲存每一位址空間305、310、及315的位址遮罩。該些位址遮罩可用於確定哪一位址空間305、310、及315包括特定位置。若位址空間305、310、及315如上所述被改變大小,則與位址空間305、310、及/或315相關聯的位址遮罩可被改變以反映新的被改變大小的位址空間305、310、及/或315。舉例而言,若位址空間305、310、及/或315被擴展,則相關聯的位址遮罩可包括較少的位元;若位址空間305、310、及/或315縮小,則相關聯的位址遮罩可包括附加位元。
位址遮罩中的位元的數目可影響位址空間305、310、及315的大小。舉例而言,假設單個位址包括64位元。若位址遮罩使用48個位元,則此時將使用16個(最低有效)位元來區分所述位址空間內的位址。此將意味著位址空間305、310、及315儲存65,536個位元(或8192個位元組)的資料。若應用欲請求將位
址空間305、310、及/或315擴展成儲存例如16,777,216個位元(或2,097,152個位元組),則此時位址遮罩可自48個位元減小至40個位元。
至於位址遮罩的長度可如何影響位址空間305、310、及/或315的大小,一個結果是使位址空間305、310、及315的大小變為二的冪。但是正是因為位址空間305、310、及315的大小為二的冪並不意味著必須使所述應用對整個位址空間305、310、及315進行存取,儘管位址空間305、310、及315中的應用無法存取的部分可能最終變得不可用。為避免具有不可用的記憶體及/或儲存器,若應用需要使用無法藉由將位址空間305、310、及315的大小擴展至二的冪而恰當地獲得的附加記憶體及/或儲存器,則可(與圖1所示非揮發性記憶體控制暫存器155中的附加表項一起)使用具有不同大小的不同位址空間305、310、及315。
圖4示出與圖1所示非揮發性記憶體控制暫存器155及圖1所示非揮發性雙列直插記憶體模組110交互作用的圖1所示非揮發性記憶體管理器150。在圖4中,非揮發性記憶體管理器150被示出為包括分配邏輯405、可按位元組定址邏輯410、可按區塊定址邏輯415、及軟體420。分配邏輯405可因應於來自應用的請求而為應用分配來自非揮發性雙列直插記憶體模組110的記憶體及/或儲存器的一部分作為圖3所示位址空間305、310、及/或315。可按位元組定址邏輯410可使用可按位元組定址存取模式在非揮發性雙列直插記憶體模組110中自圖3所示位址空間305、
310、及/或315存取位址,且可按區塊定址邏輯415可使用可按區塊定址存取模式在非揮發性雙列直插記憶體模組110中自圖3所示位址空間305、310、及/或315存取位址。最後,在本發明的某些實施例中,並非包括可按區塊定址邏輯415,而是軟體420可使用可按位元組定址邏輯410來模擬可按區塊定址邏輯415。亦即,本發明概念的某些實施例無需包括可按區塊定址邏輯415,乃因對記憶體及/或儲存器的區塊存取可由軟體420使用可按位元組定址邏輯410來模擬。
非揮發性記憶體管理器150將資料儲存至非揮發性記憶體控制暫存器155並自非揮發性記憶體控制暫存器155存取資料。當非揮發性記憶體管理器150使用分配邏輯405時,非揮發性記憶體管理器150可將位址遮罩及存取模式儲存於非揮發性記憶體控制暫存器155中。接著,當非揮發性記憶體管理器150接收到欲存取位址的請求時,非揮發性記憶體管理器150可使用儲存於非揮發性記憶體控制暫存器155中的位址遮罩及存取模式來確定當對所請求位址進行存取時該使用哪種存取模式。
圖5示出圖1所示示例性非揮發性記憶體控制暫存器155儲存16個不同位址遮罩及存取模式。在圖5中,非揮發性記憶體控制暫存器155被示出為包括位址遮罩505、位址遮罩510、等等、直至位址遮罩515、以及對應的存取模式520、存取模式525、等等、直至存取模式530。每一對位址遮罩與存取模式可與圖1所示非揮發性雙列直插記憶體模組110或115中的圖3所示位址空間
305、310、及/或315相關聯。
儘管圖5將非揮發性記憶體控制暫存器155示出為儲存16個位址遮罩及存取模式,然而此僅為實例。非揮發性記憶體控制暫存器155可儲存任意數目的位址遮罩及存取模式。此外,儘管圖5將位址遮罩示出為具有48個位元的長度且將存取模式示出為一個位元,然而該些大小亦為實例。位址遮罩505、510、及515可為任何所需大小,且可均具有不同大小。相似地,儘管僅需使用一個位元來區分兩種存取模式(可按位元組定址模式及可按區塊定址模式),然而若提供附加的存取模式,則存取模式520、525、及530可包括多於一個位元。
圖6示出根據本發明概念的實施例,圖1所示非揮發性記憶體管理器150可如何使用圖1所示非揮發性記憶體控制暫存器155來確定所請求位址的存取模式。在圖6中,所請求位址605可為應用所期望讀取或寫入的位址。比較器610、比較器615、等等、直至比較器620可接著將所請求位址605與位址遮罩505、510、及515進行比較以確定圖3所示位址空間305、310、或315中的哪一者包括所請求位址605。此比較可涉及進行檢查以查看哪一位址遮罩匹配所請求位址605中的最高有效位元。一旦辨識出正確的位址遮罩,編碼器625便可使用此資訊來產生控制訊號,以使多工器630選擇對應存取模式520、525、及530。此所選擇存取模式可被輸出為存取模式635。
圖7示出根據本發明概念的實施例,在非揮發性雙列直
插記憶體模組110及/或115中為應用分配位址空間的程序的流程圖。在圖7中,在方塊705處,圖1所示非揮發性記憶體管理器150可自應用接收請求以將非揮發性記憶體位址空間分配至所述應用。在方塊710處,圖1所示非揮發性記憶體管理器150可接收所請求位址空間的存取模式。在方塊715處,圖1所示非揮發性記憶體管理器150可在圖1所示非揮發性雙列直插記憶體模組110及/或115中辨識圖3所示可用位址空間305、310、及/或315。在方塊720處,圖1所示非揮發性記憶體管理器150可將圖3所示所辨識位址空間305、310、或315的位址遮罩及存取模式儲存於圖1所示非揮發性記憶體控制暫存器155中。最後,在方塊725處,圖1所示非揮發性記憶體管理器150可將圖3所示位址空間305、310、或315返送回發出請求的應用。
在圖7中(及以下其他流程圖中),示出本發明的一個實施例。但熟習此項技術者將認識到亦可藉由改變方塊的次序、藉由省略方塊、或藉由包括圖中未示出的鏈接而達成本發明的其他實施例。流程圖的所有此種變化均被視為本發明的實施例,而無論是否予以明確闡述。
圖8示出根據本發明概念的實施例,圖1所示非揮發性記憶體管理器150確定供非揮發性雙列直插記憶體模組110及/或115中的新分配位址空間使用的存取模式的程序的流程圖。圖8詳盡闡述圖7所示方塊710的操作。在圖8中,在方塊805處,圖1所示非揮發性記憶體管理器150可自應用接收對可按位元組定址
的位址空間的請求。作為另一選擇,在方塊810處,圖1所示非揮發性記憶體管理器150可自應用接收對可按區塊定址的位址空間的請求。
如上所述,本發明概念的實施例考量兩種存取模式:可按位元組定址模式及可按區塊定址模式。圖8反映該些實施例。但若引入附加存取模式,則圖8可被修改成反映附加存取模式的使用。
圖9示出根據本發明概念的實施例,圖1所示非揮發性記憶體管理器150將關於圖3所示所分配位址空間305、310、及315的資訊儲存於圖1所示非揮發性記憶體控制暫存器155中的程序的流程圖。圖9詳盡闡述圖7所示方塊720的操作。在圖9中,在方塊905處,圖1所示非揮發性記憶體管理器150可將圖3所示所有位址空間305、310、及315的位址遮罩及存取模式儲存於圖1所示非揮發性記憶體控制暫存器155中。作為另一選擇,在方塊910處,圖1所示非揮發性記憶體管理器150可僅儲存圖3所示不使用可按位元組定址存取模式的位址空間305、310、及315的位址遮罩及存儲模式。接著,若無法在圖1所示非揮發性記憶體控制暫存器155的位址遮罩中找到所請求位址(例如圖6所示所請求位址605),則圖3所示位址空間305、310、或315可被假設成使用可按位元組定址存取模式。換言之,對於圖1所示非揮發性記憶體控制暫存器155中未被遮罩的任何位址,可將可按位元組定址存取模式視為內定存取模式。
關於方塊910的兩點評論值得一提。第一,將可按位元組定址存取模式設為內定存取模式是一種選擇。但其他存取模式(例如可按區塊定址存取模式)可被視為內定存取模式一在此種情形中,可省略與可按區塊定址的位址空間相關聯的位址遮罩。第二,若非揮發性雙列直插記憶體模組110及/或115僅提供兩種存取模式(例如,可按位元組定址位址模式及可按區塊定址位址模式),則此時可自圖1所示非揮發性記憶體控制暫存器155中完全省略所述存取模式,乃因將位址遮罩儲存於圖1所示非揮發性記憶體控制暫存器155中本身會辨識適宜的存取模式。
圖10示出根據本發明概念的實施例,圖1所示非揮發性記憶體管理器150處置欲對圖1所示非揮發性雙列直插記憶體模組110及/或115中位址進行存取的請求的程序的流程圖。在圖10中,在方塊1005處,圖1所示非揮發性記憶體管理器150可自應用接收欲存取位址的請求。在方塊1010處,圖1所示非揮發性記憶體管理器150可自圖1所示非揮發性記憶體控制暫存器155中確定適宜於所請求位址的存取模式。圖1所示非揮發性記憶體管理器150可藉由(潛在地並列地)將所請求位址與儲存於圖1所示非揮發性記憶體控制暫存器155中的位址遮罩進行比較來完成此確定。當找到匹配項時,可自圖1所示非揮發性記憶體控制暫存器155中選擇對應存取模式作為所確定存取模式。
圖11示出根據本發明概念的第一實施例,圖1所示非揮發性記憶體管理器150確定圖6所示所請求位址605的存取模式
的程序的流程圖。圖11詳盡闡述圖10所示方塊1010的操作。在圖11中,在方塊1105處,圖1所示非揮發性記憶體管理器150可確定圖3所示位址空間305、310、或315使用可按位元組定址存取模式。作為另一選擇,在方塊1110處,圖1所示非揮發性記憶體管理器150可確定圖3所示位址空間305、310、或315使用可按區塊定址存取模式。此外,若非揮發性雙列直插記憶體模組110及/或115支援附加的存取模式,則圖11可被修改成反映如何確定其他存取模式。
圖12示出根據本發明概念的第二實施例,圖1所示非揮發性記憶體管理器150確定圖6所示所請求位址605的存取模式的程序的流程圖。圖12詳盡闡述圖10所示方塊1010的操作。在圖12中,在方塊1205處,圖1所示非揮發性記憶體管理器150可將所請求位址與圖1所示非揮發性記憶體控制暫存器155中的位址遮罩進行比較。在方塊1210處,圖1所示非揮發性記憶體管理器150可確定是否找到匹配項。若找到匹配項,則接著在方塊1215處,圖1所示非揮發性記憶體管理器150可確定所請求位址的存取模式為儲存於圖1所示非揮發性記憶體控制暫存器155中所儲存的與相匹配的位址遮罩對應的存取模式。否則,在方塊1220處,圖1所示非揮發性記憶體管理器150可確定存取模式將為可按位元組定址存取模式(或在可按位元組定址存取模式不是內定的情形中,則任意存取模式被規定為內定存取模式。)
以下論述旨在提供對可在其中實作本發明概念的某些態
樣的一或多個適合的機器的簡要總體說明。參照圖13,通常,一或多個機器205包括系統匯流排1305,系統匯流排1305附連有一或多個處理器105、記憶體110、115、120、及125(例如隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、或其他狀態保存媒體)、記憶體控制器150、儲存裝置130、使用者介面1310、及可利用輸入/輸出引擎1315來管控的輸入/輸出介面埠。一或多個機器205可亦包括網路連接器1320,網路連接器1320可為例如乙太網路(Ethernet)連接器。時鐘1325可用於協調連接至系統匯流排1305的各組件的操作。
所述一或多個機器可至少部分地藉由來自例如鍵盤、滑鼠等傳統輸入裝置的輸入以及藉由自另一機器接收的指令、與虛擬實境(virtual reality,VR)環境的交互作用、生物統計回饋、或其他輸入訊號而得到控制。本文中所使用的用語「機器」旨在廣泛囊括單個機器、虛擬機器、或由能夠在通訊上耦合於一起的多個機器、多個虛擬機器、或一起運作的多個裝置形成的系統。示例性機器包括:計算裝置,例如個人電腦、工作站、伺服器、可攜式電腦、手持裝置、電話、平板等;以及運輸裝置,例如私人或公共運輸(例如,汽車、火車、計程車等)。
所述一或多個機器可包括嵌式控制器,例如可程式化或非可程式化邏輯裝置或陣列、應用專用積體電路(Application Specific Integrated Circuit,ASIC)、嵌式電腦、智慧卡等。所述一或多個機器可利用與一或多個遠端機器的一或多個連接,例如經
由網路介面、數據機、或其他通訊耦合。機器可使用物理及/或邏輯網路(例如,內部網路、網際網路、局部區域網路、廣域網路等)相互連接。熟習此項技術者將理解,網路通訊可利用各種有線及/或無線短程或遠程載波及協定,包括射頻(radio frequency,RF)、衛星、微波、電氣及電子工程師學會(Institute of Electrical and Electronics Engineers,IEEE)802.11、藍芽®、光學、紅外、纜線、雷射等。
本發明概念的實施例可藉由參照或結合相關聯的資料來闡述,所述相關聯的資料包括當被機器存取時使得所述機器進行任務或定義抽象資料類型或低層階硬體配置(hardware context)的功能、程序、資料結構、應用程式等。相關聯的資料可儲存於例如揮發性及/或非揮發性記憶體(例如,隨機存取記憶體、唯讀記憶體等)中、或儲存於其他儲存裝置及其相關聯的儲存媒體(包括硬驅動機(hard drive)、軟碟、光學儲存器、磁帶、快閃記憶體、記憶條、數位視訊光碟、生物儲存器等)中。相關聯的資料可以封包、串列資料(serial data)、並列資料(parallel data)、傳播訊號(propagated signal)等的形式在傳輸環境(包括物理及/或邏輯網路)中遞送且可以壓縮或加密格式使用。相關聯的資料可用於分佈式環境中,並儲存於本地及/或遠端以供機器存取。
本發明概念的實施例可包括包含可由一或多個處理器執行的指令的有形的、非暫時性機器可讀取媒體,所述指令包括用以進行如本文所述本發明概念的要件的指令。
上文已參照所說明實施例闡述並說明瞭本發明概念的原理,應認識到,可在不背離該些原理的條件下在排列及細節上對所說明實施例進行潤飾,且所說明實施例可以任意所需方式加以組合。並且,儘管以上論述著重於特定實施例,然而預期存在其他構造。具體而言,儘管本文中使用例如「根據本發明概念的實施例」等表達或類似表達,然而該些片語意在大體提及實施例的可能性,而並非旨在將本發明概念限制為特定實施例構造。本文所使用的該些用語可提及能夠組合成其他實施例的相同或不同實施例。
上述說明性實施例不應被視為限制本發明概念。儘管已闡述少數實施例,然而熟習此項技術者將易於理解,可在實質上不背離本揭露內容的新穎教示內容及優點的條件下對該些實施例作出諸多潤飾。因此,所有此種潤飾皆旨在包含於如申請專利範圍中所界定的本發明概念的範圍內。
本發明的實施例可擴展至以下聲明,但並非僅限於此:
聲明1。本發明概念的實施例包括一種系統,所述系統包括:非揮發性雙列直插記憶體模組(NVDIMM);非揮發性記憶體(NVM)管理器,能夠操作以在第一存取模式中在所述非揮發性雙列直插記憶體模組中為第一應用分配第一位址空間以及在第二存取模式中在所述非揮發性雙列直插記憶體模組中為第二應用分配第二位址空間,並將所述第一位址空間的
至少第一位址遮罩儲存於非揮發性記憶體(NVM)控制暫存器中,第一位址遮罩與第一存取模式相關聯。
聲明2。本發明概念的實施例包括根據聲明1的系統,中所述第一存取模式不同於所述第二存取模式。
聲明3。本發明概念的實施例包括根據聲明1的系統,其中:所述第一存取模式包括可按區塊定址模式;且所述第二存取模式包括可按位元組定址模式。
聲明4。本發明概念的實施例包括根據聲明3的系統,其中:所述非揮發性記憶體控制暫存器能夠操作以儲存多個位址遮罩,所述多個位址遮罩中的每一者均與使用所述可按區塊定址模式的位址空間相關聯;且所述非揮發性記憶體管理器能夠操作以將無位址遮罩被儲存於非揮發性記憶體控制暫存器中的任何位址空間視為使用可按位元組定址模式的位址空間。
聲明5。本發明概念的實施例包括根據聲明3的系統,其中:所述非揮發性記憶體控制暫存器能夠操作以儲存多個位址遮罩,所述多個位址遮罩中的每一者均與使用可按位元組定址模式的位址空間相關聯;且所述非揮發性記憶體管理器能夠操作以將無位址遮罩被儲存
於非揮發性記憶體控制暫存器中的任何位址空間視為使用可按區塊定址模式的位址空間。
聲明6。本發明概念的實施例包括根據聲明3的系統,其中所述非揮發性記憶體控制暫存器能夠操作以儲存所述第二位址空間的第二位址遮罩,所述第二位址遮罩與所述第二存取模式相關聯。
聲明7。本發明概念的實施例包括根據聲明3的系統,其中所述非揮發性記憶體控制暫存器能夠操作以儲存16個位址遮罩及16種存取模式來支援所述非揮發性雙列直插記憶體模組中的16個位址空間,所述16個位址遮罩中的每一者的大小均為48個位元。
聲明8。本發明概念的實施例包括根據聲明3的系統,其中所述非揮發性記憶體管理器包括:分配邏輯,在可按位元組定址模式或可按區塊定址模式中在所述非揮發性雙列直插記憶體模組中分配所述位址空間。
聲明9。本發明概念的實施例包括根據聲明3的系統,其中所述非揮發性記憶體管理器包括:可按位元組定址邏輯,存取使用所述可按位元組定址模式的所述第一位址空間;以及軟體,模擬對使用所述可按區塊定址模式的所述第二位址空間的存取,所述軟體使用所述可按位元組定址邏輯。
聲明10。本發明概念的實施例包括根據聲明3的系統,
其中所述非揮發性記憶體管理器包括:可按位元組定址邏輯,存取使用所述可按位元組定址模式的所述第一位址空間;以及可按區塊定址邏輯,存取使用所述可按區塊定址模式的所述第二位址空間。
聲明11。本發明概念的實施例包括根據聲明3的系統,其中所述非揮發性記憶體管理器能夠操作以對所述非揮發性記憶體控制暫存器中的所有位址遮罩進行並列存取檢查並使用與相匹配的位址遮罩相關聯的存取模式對位址請求進行排程。
聲明12。本發明概念的實施例包括根據聲明3的系統,其中所述非揮發性記憶體控制暫存器能夠操作以使所述多個位址遮罩中的每一者與任意數目的存取模式中的一者相關聯。
聲明13。本發明概念的實施例包括根據聲明3的系統,所述系統更包括耦接至所述非揮發性雙列直插記憶體模組的處理器,所述處理器包括所述非揮發性記憶體控制暫存器。
聲明14。本發明概念的實施例包括根據聲明13的系統,所述系統更包括能夠在所述處理器上運行的作業系統,所述作業系統包括所述非揮發性記憶體管理器。
聲明15。本發明概念的實施例包括一種方法,所述方法包括:接收欲分配非揮發性雙列直插記憶體模組(NVDIMM)中的位址空間的請求;
接收所述所請求位址空間的存取模式,所述存取模式取自於包括至少兩種存取模式的集合;辨識所述非揮發性雙列直插記憶體模組中的位址空間;以及返送回所述位址空間作為所述所請求位址空間。
聲明16。本發明概念的實施例包括根據聲明15的方法,所述方法更包括將所述位址空間的位址遮罩及所述位址空間的所述存取模式儲存於非揮發性記憶體(NVM)控制暫存器中。
聲明17。本發明概念的實施例包括根據聲明16的方法,其中儲存所述位址空間的位址遮罩包括:若所述位址空間的所述存取模式是可按區塊定址模式,則僅儲存所述位址空間的位址遮罩。
聲明18。本發明概念的實施例包括根據聲明16的方法,其中儲存所述位址空間的位址遮罩包括:若所述位址空間的所述存取模式是可按位元組定址模式,則僅儲存所述位址空間的位址遮罩。
聲明19。本發明概念的實施例包括根據聲明15的方法,其中接收所述所請求位址空間的存取模式包括接收所述所請求位址空間的可按區塊定址模式。
聲明20。根據本發明概念的實施例包括根據聲明15的方法,其中接收所述所請求位址空間的存取模式包括接收所述所請求位址空間的可按位元組定址模式。
聲明21。本發明概念的實施例包括一種方法,所述方法
包括:接收欲自非揮發性雙列直插記憶體模組(NVDIMM)存取位址空間的請求;確定所述位址空間的存取模式;以及排程所述請求,以使用所述存取模式自所述非揮發性雙列直插記憶體模組存取所述位址空間。
聲明22。本發明概念的實施例包括根據聲明21的方法,其中確定所述位址空間的存取模式包括:確定所述位址空間的可按區塊定址模式。
聲明23。本發明概念的實施例包括根據聲明21的方法,其中確定所述位址空間的存取模式包括:確定所述位址空間的可按位元組定址模式。
聲明24。本發明概念的實施例包括根據聲明21的方法,其中確定所述位址空間的存取模式包括自處理器中的非揮發性記憶體(NVM)控制暫存器中確定所述存取模式。
聲明25。本發明概念的實施例包括根據聲明24的方法,其中自非揮發性記憶體控制暫存器中確定所述存取模式包括:嘗試將所述位址空間與所述非揮發性記憶體控制暫存器中的位址遮罩進行匹配;以及確定與所述非揮發性記憶體控制暫存器中與所述位址空間匹配的所述位址遮罩對應的所述存取模式。
聲明26。本發明概念的實施例包括根據聲明25的方法,
其中嘗試將所述位址空間與所述非揮發性記憶體控制暫存器中的位址遮罩進行匹配包括:將所述位址空間與所述非揮發性記憶體控制暫存器中的每一位址遮罩進行比較。
聲明27。本發明概念的實施例包括根據聲明26的方法,其中將所述位址空間與所述非揮發性記憶體控制暫存器中的每一位址遮罩進行比較包括:並列地將所述位址空間與所述非揮發性記憶體控制暫存器中的每一位址遮罩進行比較。
聲明28。本發明概念的實施例包括根據聲明25的方法,其中自非揮發性記憶體控制暫存器中確定所述存取模式更包括:若所述位址空間不與所述非揮發性記憶體控制暫存器中的位址遮罩相匹配,則確定所述存取模式為可按位元組定址模式。
聲明29。本發明概念的實施例包括根據聲明25的方法,其中自非揮發性記憶體控制暫存器中確定所述存取模式更包括:若所述位址空間不與所述非揮發性記憶體控制暫存器中的位址遮罩相匹配,則確定所述存取模式為可按區塊定址模式。
因此,考慮到對本文所述實施例的眾多種排列,此詳細說明及隨附材料旨在僅為說明性的,而不應被視為限制本發明的範圍。因此,所主張的本發明是可歸屬於以下申請專利範圍及其等效範圍的範圍及精神內的所有此種潤飾。
105:處理器
110、115:非揮發性雙列直插記憶體模組
120、125:雙列直插記憶體模組
130:儲存器
135:作業系統
140、145:虛擬機器
150:非揮發性記憶體管理器
155:非揮發性記憶體控制暫存器
Claims (27)
- 一種電腦系統,包括:非揮發性雙列直插記憶體模組;非揮發性記憶體管理器,能夠操作以在第一存取模式中在所述非揮發性雙列直插記憶體模組中為第一應用分配第一位址空間以及在第二存取模式中在所述非揮發性雙列直插記憶體模組中為第二應用分配第二位址空間,並將所述第一位址空間的至少第一位址遮罩儲存於非揮發性記憶體控制暫存器中,所述第一位址遮罩與所述第一存取模式相關聯,其中所述非揮發性雙列直插記憶體模組中的所述第一位址空間能夠因應於第一分配請求而使用所述第一存取模式進行分配以及因應於第二分配請求而使用所述第二存取模式進行分配,其中所述非揮發性記憶體控制暫存器不儲存使用所述第二存取模式進行分配的位址空間的位址遮罩,以及其中所述非揮發性記憶體管理器能夠操作以將位址遮罩未被儲存於所述非揮發性記憶體控制暫存器中的任何位址空間作為使用所述第二存取模式的位址空間來對待。
- 如申請專利範圍第1項所述的電腦系統,其中所述第一存取模式及所述第二存取模式分別取自於包括可按區塊定址模式及可按位元組定址模式的集合。
- 如申請專利範圍第2項所述的電腦系統,其中所述非揮發性記憶體管理器包括: 可按位元組定址邏輯,存取使用所述可按位元組定址模式的可按位元組定址位址空間;以及軟體,模擬對使用所述可按區塊定址模式的可按區塊定址位址空間的存取,所述軟體使用所述可按位元組定址邏輯。
- 如申請專利範圍第2項所述的電腦系統,其中所述非揮發性記憶體管理器包括:可按位元組定址邏輯,存取使用所述可按位元組定址模式的可按位元組定址位址空間;以及可按區塊定址邏輯,存取使用所述可按區塊定址模式的可按區塊定址位址空間。
- 如申請專利範圍第2項所述的電腦系統,其中所述非揮發性記憶體管理器能夠操作以對所述非揮發性記憶體控制暫存器中的所有位址遮罩進行並列存取檢查並使用與相匹配的位址遮罩相關聯的存取模式對位址請求進行排程。
- 如申請專利範圍第2項所述的電腦系統,更包括耦接至所述非揮發性雙列直插記憶體模組的處理器,所述處理器包括所述非揮發性記憶體控制暫存器。
- 如申請專利範圍第6項所述的電腦系統,更包括能夠在所述處理器上運行的作業系統,所述作業系統包括所述非揮發性記憶體管理器。
- 如申請專利範圍第1項所述的電腦系統,其中所述第一存取模式規定第一輸入/輸出請求如何自所述第一位址空間讀取資 料或寫入資料且所述第二存取模式規定第二輸入/輸出請求如何自所述第一位址空間讀取資料或寫入資料。
- 如申請專利範圍第1項所述的電腦系統,其中所述第一位址空間包括第一大小且所述第二位址空間包括第二大小,其中所述第一大小不同於所述第二大小。
- 一種非揮發性記憶體的操作方法,包括:接收欲分配非揮發性雙列直插記憶體模組中的位址空間的請求;接收所請求位址空間的存取模式,所述存取模式取自於包括至少兩種存取模式的集合;辨識所述非揮發性雙列直插記憶體模組中的位址空間;若所述存取模式不是第一存取模式,則將所述位址空間的位址遮罩及所述位址空間的所述存取模式儲存於非揮發性記憶體控制暫存器中;返送回所述位址空間作為所述所請求位址空間;以及將位址遮罩未被儲存於所述非揮發性記憶體控制暫存器中的任何位址空間作為使用所述第一存取模式的位址空間來對待。
- 如申請專利範圍第10項所述的非揮發性記憶體的操作方法,其中儲存所述位址空間的位址遮罩包括:若所述位址空間的所述存取模式是可按區塊定址模式,則儲存所述位址空間的位址遮罩。
- 如申請專利範圍第10項所述的非揮發性記憶體的操作方法,其中儲存所述位址空間的位址遮罩包括:若所述位址空間的所述存取模式是可按位元組定址模式,則儲存所述位址空間的所述位址遮罩。
- 如申請專利範圍第10項所述的非揮發性記憶體的操作方法,其中:接收欲分配非揮發性雙列直插記憶體模組中的位址空間的請求包括:自應用接收欲分配所述非揮發性雙列直插記憶體模組中的所述位址空間的所述請求;接收所述所請求位址空間的存取模式包括:自所述應用接收所述所請求位址空間的所述存取模式,所述存取模式是取自於包括至少兩種存取模式的集合;辨識所述非揮發性雙列直插記憶體模組中的位址空間包括:使用所述存取模式在所述非揮發性雙列直插記憶體模組中分配所述位址空間;以及返送回所述位址空間作為所述所請求位址空間包括:將所述位址空間作為所述所請求位址空間返送回所述應用,所述位址空間被設計成使用所述存取模式進行存取。
- 如申請專利範圍第10項所述的非揮發性記憶體的操作方法,其中所述位址空間能夠因應於第一分配請求而使用所述至少兩種存取模式中的所述第一存取模式進行分配以及因應於第二 分配請求而使用所述至少兩種存取模式中的第二存取模式進行分配。
- 如申請專利範圍第10項所述的非揮發性記憶體的操作方法,其中所述至少兩種存取模式中的每一種規定輸入/輸出請求如何自所述位址空間讀取資料或寫入資料。
- 如申請專利範圍第10項所述的非揮發性記憶體的操作方法,其中所述位址空間包括第一大小且所述非揮發性雙列直插記憶體模組中的第二位址空間包括第二大小,其中所述第一大小不同於所述第二大小。
- 一種非揮發性記憶體的操作方法,包括:接收欲自非揮發性雙列直插記憶體模組存取位址空間的請求;嘗試將所述位址空間與非揮發性記憶體控制暫存器中的位址遮罩進行匹配,其中所述非揮發性記憶體控制暫存器儲存與每一位址遮罩對應的存取模式;若所述位址空間與所述非揮發性記憶體控制暫存器中的位址遮罩不匹配,則確定所述位址空間的存取模式為第一存取模式;若所述位址空間與所述非揮發性記憶體控制暫存器中的位址遮罩匹配,則自所述非揮發性記憶體控制暫存器確定所述位址空間的所述存取模式為與匹配的所述位址遮罩對應的存取模式;以及排程所述請求,以使用所述存取模式自所述非揮發性雙列直 插記憶體模組存取所述位址空間,其中所述位址空間被設計成因應於第一分配請求而使用所述存取模式進行分配以及因應於第二分配請求而使用第二存取模式進行分配。
- 如申請專利範圍第17項所述的非揮發性記憶體的操作方法,其中確定所述位址空間的存取模式包括:確定所述存取模式為所述位址空間的可按區塊定址模式及可按位元組定址模式中的一者。
- 如申請專利範圍第17項所述的非揮發性記憶體的操作方法,其中自非揮發性記憶體控制暫存器確定所述位址空間的存取模式包括:自處理器中的所述非揮發性記憶體控制暫存器中確定所述存取模式。
- 如申請專利範圍第17項所述的非揮發性記憶體的操作方法,其中嘗試將所述位址空間與所述非揮發性記憶體控制暫存器中的位址遮罩進行匹配包括:將所述位址空間與所述非揮發性記憶體控制暫存器中的每一位址遮罩進行比較。
- 如申請專利範圍第20項所述的非揮發性記憶體的操作方法,其中將所述位址空間與所述非揮發性記憶體控制暫存器中的每一位址遮罩進行比較包括:並列地將所述位址空間與所述非揮發性記憶體控制暫存器中的每一位址遮罩進行比較。
- 如申請專利範圍第17項所述的非揮發性記憶體的操作方法,其中所述存取模式規定第一輸入/輸出請求如何自所述位址 空間讀取資料或寫入資料且所述第二存取模式規定第二輸入/輸出請求如何自所述位址空間讀取資料或寫入資料。
- 如申請專利範圍第17項所述的非揮發性記憶體的操作方法,其中所述位址空間包括第一大小且所述第二位址空間包括第二大小,其中所述第一大小不同於所述第二大小。
- 一種非揮發性記憶體的操作方法,包括:接收欲在非揮發性雙列直插記憶體模組中分配位址空間的請求;接收所請求位址空間的存取模式,所述存取模式是取自於恰好包括兩種存取模式的集合;辨識所述非揮發性雙列直插記憶體模組中的位址空間;若所述存取模式不是第一存取模式,則將所述位址空間的位址遮罩儲存於非揮發性記憶體控制暫存器中;返送回所述位址空間作為所述所請求位址空間,其中所述存取模式能夠因應於所述位址遮罩是否儲存於所述非揮發性記憶體控制暫存器中來被確定。
- 如申請專利範圍第24項所述的非揮發性記憶體的操作方法,其中儲存所述位址空間的位址遮罩包括:若所述位址空間的所述存取模式是可按區塊定址模式,則儲存所述位址空間的所述位址遮罩。
- 如申請專利範圍第24項所述的非揮發性記憶體的操作方法,其中儲存所述位址空間的位址遮罩包括:若所述位址空間 的所述存取模式是可按位元組定址模式,則儲存所述位址空間的所述位址遮罩。
- 如申請專利範圍第24項所述的非揮發性記憶體的操作方法,其中將所述位址空間的位址遮罩儲存於非揮發性記憶體控制暫存器中包括:將所述位址空間的所述位址遮罩及所述存取模式儲存於所述非揮發性記憶體控制暫存器中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562192028P | 2015-07-13 | 2015-07-13 | |
US62/192,028 | 2015-07-13 | ||
US14/957,568 | 2015-12-02 | ||
US14/957,568 US9886194B2 (en) | 2015-07-13 | 2015-12-02 | NVDIMM adaptive access mode and smart partition mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201706850A TW201706850A (zh) | 2017-02-16 |
TWI691838B true TWI691838B (zh) | 2020-04-21 |
Family
ID=57775804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105111217A TWI691838B (zh) | 2015-07-13 | 2016-04-11 | 電腦系統以及非揮發性記憶體的操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9886194B2 (zh) |
JP (1) | JP6744768B2 (zh) |
KR (1) | KR102363526B1 (zh) |
CN (1) | CN106354656B (zh) |
TW (1) | TWI691838B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018057039A1 (en) * | 2016-09-26 | 2018-03-29 | Hewlett-Packard Development Company, L. | Update memory management information to boot an electronic device from a reduced power mode |
US10025714B2 (en) * | 2016-09-30 | 2018-07-17 | Super Micro Computer, Inc. | Memory type range register with write-back cache strategy for NVDIMM memory locations |
KR20180061851A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템 |
KR102400102B1 (ko) * | 2017-05-11 | 2022-05-23 | 삼성전자주식회사 | 데이터 버퍼의 내부 데이터(dq) 터미네이션을 지원하는 메모리 시스템 |
TWI645295B (zh) * | 2017-06-20 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存方法 |
WO2019000456A1 (zh) * | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 传输数据掩码的方法、内存控制器、内存芯片和计算机系统 |
CN109791589B (zh) * | 2017-08-31 | 2021-07-16 | 华为技术有限公司 | 一种计算机内存数据加解密的方法及装置 |
US11194524B2 (en) | 2017-09-15 | 2021-12-07 | Qualcomm Incorporated | Apparatus and method for performing persistent write operations using a persistent write command |
US10782994B2 (en) * | 2017-12-19 | 2020-09-22 | Dell Products L.P. | Systems and methods for adaptive access of memory namespaces |
CN108255428B (zh) * | 2018-01-10 | 2020-07-24 | 联想(北京)有限公司 | 一种数据处理方法、装置及电子设备 |
US11042374B2 (en) | 2019-05-02 | 2021-06-22 | International Business Machines Corporation | Non-volatile dual in-line memory module storage |
US11113188B2 (en) | 2019-08-21 | 2021-09-07 | Microsoft Technology Licensing, Llc | Data preservation using memory aperture flush order |
US11314460B2 (en) * | 2019-09-13 | 2022-04-26 | Kioxia Corporation | Solid state drive supporting both byte addressable protocol and block addressable protocol |
US11003376B2 (en) * | 2019-09-13 | 2021-05-11 | Toshiba Memory Corporation | Reconfigurable SSD storage pool |
CN111753337B (zh) * | 2020-07-02 | 2023-02-21 | 上海电器科学研究所(集团)有限公司 | 一种储能电池管理系统意外断电soc处理方法 |
TWI818732B (zh) * | 2022-09-16 | 2023-10-11 | 新唐科技股份有限公司 | 記憶體裝置及其操作方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143396A1 (en) * | 2004-12-29 | 2006-06-29 | Mason Cabot | Method for programmer-controlled cache line eviction policy |
TW200945022A (en) * | 2008-03-17 | 2009-11-01 | Freescale Semiconductor Inc | Qualification of conditional debug instructions based on address |
US20120185640A1 (en) * | 2011-01-19 | 2012-07-19 | Mstar Semiconductor, Inc. | Controller and method for controlling memory and memory system |
TWI446171B (zh) * | 2006-09-28 | 2014-07-21 | Virident Systems Inc | 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置 |
US8880777B2 (en) * | 2009-01-23 | 2014-11-04 | Samsung Electronics Co., Ltd. | Complex memory device and I/O processing method using the same |
US8949486B1 (en) * | 2013-07-17 | 2015-02-03 | Mellanox Technologies Ltd. | Direct memory access to storage devices |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513337A (en) * | 1994-05-25 | 1996-04-30 | Intel Corporation | System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type |
KR19980033054A (ko) * | 1996-10-23 | 1998-07-25 | 윌리엄비.켐플러 | 프로그램 가능 메모리 액세스 |
US6496916B1 (en) * | 1998-04-17 | 2002-12-17 | Agere Systems Inc. | System for flexible memory paging in partitioning memory |
US6854043B2 (en) * | 2002-07-05 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | System and method for multi-modal memory controller system operation |
US20050251617A1 (en) | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
JP4515793B2 (ja) * | 2004-03-11 | 2010-08-04 | 株式会社東芝 | メモリカード装置およびメモリカード制御方法 |
US20060069849A1 (en) * | 2004-09-30 | 2006-03-30 | Rudelic John C | Methods and apparatus to update information in a memory |
JP4325685B2 (ja) * | 2007-02-21 | 2009-09-02 | セイコーエプソン株式会社 | メモリを制御するメモリコントローラ、メモリモジュール、メモリの制御方法、および、コンピュータ。 |
US20080250220A1 (en) * | 2007-04-06 | 2008-10-09 | Takafumi Ito | Memory system |
US8832408B2 (en) | 2007-10-30 | 2014-09-09 | Spansion Llc | Non-volatile memory array partitioning architecture and method to utilize single level cells and multi-level cells within the same memory |
EP2476079A4 (en) * | 2009-09-09 | 2013-07-03 | Fusion Io Inc | APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION |
US8239619B2 (en) * | 2010-07-09 | 2012-08-07 | Macronix International Co., Ltd. | Method and apparatus for high-speed byte-access in block-based flash memory |
WO2013048483A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Platform storage hierarchy with non-volatile random access memory having configurable partitions |
CN103197985B (zh) * | 2011-11-08 | 2018-07-13 | 索尼公司 | 存储控制装置 |
CN103514095B (zh) * | 2012-06-18 | 2016-08-03 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN102779096B (zh) * | 2012-07-11 | 2015-02-04 | 山东华芯半导体有限公司 | 一种基于页块面三维的闪存地址映射方法 |
US9098402B2 (en) * | 2012-12-21 | 2015-08-04 | Intel Corporation | Techniques to configure a solid state drive to operate in a storage mode or a memory mode |
US9135997B2 (en) * | 2013-01-18 | 2015-09-15 | Fujitsu Limited | System and method for filtering addresses |
JP6069031B2 (ja) * | 2013-03-04 | 2017-01-25 | 株式会社日立製作所 | 計算機及びメモリ管理方法 |
WO2015061971A1 (zh) * | 2013-10-29 | 2015-05-07 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
CN105917308B (zh) * | 2014-01-22 | 2019-02-12 | 惠普发展公司,有限责任合伙企业 | 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器 |
US20160253123A1 (en) * | 2014-03-19 | 2016-09-01 | Bruce Ledley Jacob | NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System |
CN110187832B (zh) * | 2014-05-21 | 2023-08-22 | 华为技术有限公司 | 一种数据操作的方法、设备和系统 |
US9396769B1 (en) * | 2015-02-11 | 2016-07-19 | Macronix International Co., Ltd. | Memory device and operating method of same |
US9645939B2 (en) * | 2015-06-26 | 2017-05-09 | Intel Corporation | Hardware apparatuses and methods for distributed durable and atomic transactions in non-volatile memory |
-
2015
- 2015-12-02 US US14/957,568 patent/US9886194B2/en active Active
-
2016
- 2016-04-06 KR KR1020160042453A patent/KR102363526B1/ko active IP Right Grant
- 2016-04-11 TW TW105111217A patent/TWI691838B/zh active
- 2016-06-21 JP JP2016122720A patent/JP6744768B2/ja active Active
- 2016-07-11 CN CN201610543231.6A patent/CN106354656B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143396A1 (en) * | 2004-12-29 | 2006-06-29 | Mason Cabot | Method for programmer-controlled cache line eviction policy |
TWI446171B (zh) * | 2006-09-28 | 2014-07-21 | Virident Systems Inc | 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置 |
TW200945022A (en) * | 2008-03-17 | 2009-11-01 | Freescale Semiconductor Inc | Qualification of conditional debug instructions based on address |
US8880777B2 (en) * | 2009-01-23 | 2014-11-04 | Samsung Electronics Co., Ltd. | Complex memory device and I/O processing method using the same |
US20120185640A1 (en) * | 2011-01-19 | 2012-07-19 | Mstar Semiconductor, Inc. | Controller and method for controlling memory and memory system |
US8949486B1 (en) * | 2013-07-17 | 2015-02-03 | Mellanox Technologies Ltd. | Direct memory access to storage devices |
Also Published As
Publication number | Publication date |
---|---|
TW201706850A (zh) | 2017-02-16 |
KR102363526B1 (ko) | 2022-02-16 |
CN106354656A (zh) | 2017-01-25 |
CN106354656B (zh) | 2021-05-11 |
US9886194B2 (en) | 2018-02-06 |
JP2017021789A (ja) | 2017-01-26 |
KR20170008141A (ko) | 2017-01-23 |
US20170017402A1 (en) | 2017-01-19 |
JP6744768B2 (ja) | 2020-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI691838B (zh) | 電腦系統以及非揮發性記憶體的操作方法 | |
US11042297B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
TWI718969B (zh) | 記憶體裝置、記憶體定址方法與包括非暫時性儲存媒體的物品 | |
US10235300B2 (en) | Memory system including memory device and operation method thereof | |
US20130326113A1 (en) | Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory | |
EP2946303B1 (en) | Systems and methods for accessing memory | |
TWI710905B (zh) | 資料儲存裝置及邏輯至物理位址映射表之載入方法 | |
US20170255565A1 (en) | Method and apparatus for providing a contiguously addressable memory region by remapping an address space | |
TW201830249A (zh) | 最大化可去重複記憶體的方法、記憶體系統和產品 | |
TW201837715A (zh) | 共享替換策略電腦快取系統,以及用於在讀取操作期間及在寫入操作期間管理電腦快取中的共享替換的方法 | |
US10503657B2 (en) | DIMM SSD Addressing performance techniques | |
US20120159024A1 (en) | Semiconductor apparatus | |
CN109643295B (zh) | 从发起者节点访问耦合到目标节点的存储器 | |
US20230229493A1 (en) | Electronic system, operating method thereof, and operating method of memory device | |
US20240176539A1 (en) | Novel data cache scheme for high performance flash memories |