TWI470426B - Memory management device and memory management method - Google Patents
Memory management device and memory management method Download PDFInfo
- Publication number
- TWI470426B TWI470426B TW100102651A TW100102651A TWI470426B TW I470426 B TWI470426 B TW I470426B TW 100102651 A TW100102651 A TW 100102651A TW 100102651 A TW100102651 A TW 100102651A TW I470426 B TWI470426 B TW I470426B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- address
- write
- information
- Prior art date
Links
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/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
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
在此說明之實施形態係一般關於管理對記憶體之存取的記憶體管理裝置及記憶體管理方法。
於先前之資訊處理裝置中,作為處理器的主記憶裝置(主記憶體),例如使用Dynamic Random Access Memory (DRAM)等之揮發性半導體記憶體。進而,在先前之資訊處理裝置,與揮發性半導體記憶體組合而使用次級記憶裝置。
在先前之資訊處理裝置,主記憶體為非揮發性的記憶裝置,故關閉電源時主記憶體的記憶內容會消失。為此,在先前之資訊處理裝置,每次開機時,需要開啟系統,必須從次級記憶裝置將程式或資料讀入主記憶體,到執行處理為止需要時間。
又,在先前之資訊處理裝置,關閉電源時不會保存主記憶體的記憶內容,故先前之資訊處理裝置沒有正確關機時,有資料、系統、程式被破壞的可能性。
以下,一邊參照圖面一邊針對各實施形態加以說明。再者,於以下說明中,針對省略或實質上相同功能及構成要素,附加相同符號,因應需要進行說明。
(第1實施形態)
於本實施形態中,記憶體管理裝置係具備判斷部、位址產生部、順序產生部、寫入控制部。判斷部係在從處理器被寫入至非揮發性半導體記憶體之資料產生時,判斷資料為被連續存取之序列式資料,或不是序列式資料之通常資料。位址產生部係在藉由判斷部判斷資料是通常資料時,以已產生之位址所示之位置與通常資料之寫入位置不重疊之方式,使第1寫入位址產生。位址產生部係在藉由判斷部判斷資料是序列式資料時,使表示用以序列式儲存序列式資料之寫入位置的第2寫入位址產生。順序產生部係產生表示已產生之寫入的先後之順序資訊。寫入控制部係在藉由位址產生部產生第1寫入位址時,對於第1寫入位址,將藉由順序產生部產生之順序資訊建立對應並寫入通常資料。寫入控制部係在藉由位址產生部產生第2寫入位址時,對於第2寫入位址,序列式寫入序列式資料。
關於本實施形態之具備記憶體管理裝置的資訊處理裝置,係作為主記憶裝置(主記憶體),使用非揮發性的半導體記憶體(非揮發性主記憶體)。資訊處理裝置係例如包含Micro Processing Unit(MPU)等之處理器與非揮發性主記憶體。
於本實施形態中,對於記憶體之存取係包含對於記憶體之讀出、寫入、消除中至少之一。
於本實施形態中,資料、程式或資料與程式的組合被存取,但是,以下,為了簡略說明,作為範例,說明主要資料被存取之狀況。
圖1係揭示關於本實施形態之資訊處理裝置的詳細構造之一例的區塊圖。
資訊處理裝置1係具備處理器2與非揮發性主記憶體3。處理器2係可對未圖示之外部的次級記憶裝置、外部存取裝置、I/O裝置等之各種裝置進行存取。再者,作為資訊處理裝置1的一部份,具備次級記憶裝置、外部存取裝置、I/O裝置等之裝置亦可。
作為非揮發性主記憶體3,係例如使用快閃記憶體。作為快閃記憶體,係例如可適用NAND型、NOR型等的快閃記憶體。又,作為非揮發性主記憶體3,使用PRAM(Phase change memory)、ReRAM(Resistive Random access memory)、MRAM(Magnetoresistive Random Access Memory)之非揮發性的半導體記憶體亦可。
於非揮發性主記憶體3內,包含核心程式7與作為主記憶體使用之資料部25,於資料部25係依每一條目包含順序資訊19、V旗標20、資料21或狀態資訊24、狀態資訊旗標22、MMU資訊23、S旗標26。資料部25的構造係於後詳述。
非揮發性主記憶體3之前述各種資料21,係例如從處理器2或未圖示之外部的次級記憶裝置、外部存取裝置、I/O裝置被儲存至非揮發性主記憶體3。
處理器2係具備至少1個運算核心(在此圖1的範例中為4個)91~94、快取記憶體10、寫入緩衝器11、記憶體管理單元(MMU)12。處理器2係進而具備狀態資訊生成部(例如PSW控制部)13、存取控制部14。
關於本實施形態之記憶體管理裝置201係具備記憶體管理單元12、存取控制部14。再者,記憶體管理裝置201係進而具備快取記憶體10、寫入緩衝器11等亦可。
運算核心91~94係一邊對於快取記憶體10、非揮發性主記憶體3進行存取,一邊執行程式。運算核心91~94係可平行作動。
快取記憶體10係以快取線單位來儲存運算核心91~94所存取的資料。快取記憶體10的線路大小係例如身為非揮發性主記憶體3之資料的寫入及讀取出尺寸之單位的頁面大小、頁面大小的複數倍、身為非揮發性主記憶體3之資料的消除單位的區塊大小、區塊大小的複數倍。區塊大小係頁面大小之複數倍的資料單位。
於快取記憶體10的輸出段設置有寫入緩衝器11。從快取記憶體10被寫入至非揮發性主記憶體3之寫入對象資料,係經由寫入緩衝器11,被寫入非揮發性主記憶體3。
寫入緩衝器11係蓄積來自快取記憶體10的寫入對象資料。被蓄積於寫入緩衝器11之寫入對象資料的大小成為為了對非揮發性主記憶體3進行寫入之有效率的大小時,此被蓄積之資料係被寫入非揮發性主記憶體3。
如前述般,於本實施形態中,將快取記憶體10的線路大小設為非揮發性主記憶體3的頁面大小、頁面大小的複數倍、區塊大小或區塊大小的複數倍。藉此,可使從快取記憶體10對非揮發性主記憶體3之資料的寫入等之處理效率化,可謀求硬體的削減。
記憶體管理單元12係以條目單位,管理將關於快取記憶體10及非揮發性主記憶體3的邏輯位址與物理位址建立關係之位址轉換資訊15、連續區塊旗標27、連續區塊數28。位址轉換資訊15係為了進行邏輯位址與物理位址之間的轉換所使用。
狀態資訊生成部13係以所定或因應需要之時機,求出表示處理器2之狀態及程式之狀態的狀態資訊(例如程式狀態用語:PSW)。於狀態資訊係包含為了復原處理器2之動作狀態所需之資訊,例如通用暫存器、控制暫存器、程式計數器等之資訊。例如,狀態資訊生成部13係每經過所定時間,產生狀態資訊。又,例如,狀態資訊生成部13係每於所定次數,從處理器2對非揮發性主記憶體3之寫入產生時,產生狀態資訊。進而,狀態資訊生成部13係在有來自作業系統60等的軟體之指示時,產生狀態資訊。
存取控制部14係控制從處理器2對非揮發性主記憶體3之資料的寫入及讀出,非揮發性主記憶體3之資料的消除等,處理器2與非揮發性主記憶體3之間之存取。於本實施形態中,對非揮發性主記憶體3的寫入及讀出係例如以頁面單位來進行,消除係例如以區塊單位來進行。但是,並不限定於此,利用其他資料大小來進行寫入、讀出、消除亦可。
於實施形態中,存取控制部14係具備位址產生部16、順序產生部17、寫入控制部18。
位址產生部16係在從處理器2對非揮發性主記憶體3之資料的寫入產生時,遵從所定規則,以已產生之位址所示之位置與寫入對象資料之寫入位置不重疊之方式,使寫入位址產生。
作為寫入位址的產生方法之範例,位址產生部16係從所定初始值依序使成為寫入目的的位址之值增加,而達到所定最終值(大於初始值)時,再次從所定初始值依序使成為寫入目的的位址之值增加。
又,作為寫入位址的產生方法之其他範例,位址產生部16係從所定初始值依序使成為寫入目的的位址之值減少,而達到所定最終值(小於初始值)時,再次從所定初始值依序使成為寫入目的的位址之值減少。
進而,作為寫入位址的產生方法之其他範例,位址產生部16係於第1輪中隔開數個空間(例如以所定間隔),依序使寫入目的的位址之值產生,於第2輪中在第1輪未進行寫入之未使用區域中依序使寫入目的的位址之值產生,以下相同,重複進行於第n輪中在第n-1輪為止未進行寫入之未使用區域中依序使寫入目的的位址之值產生的動作,在可利用之未使用區域成為所定值或所定比例以下時(例如,沒有可利用之未使用區域時),從前述第1輪再次重複相同動作。
進而,作為寫入位址的產生方法之其他範例,位址產生部16參照記憶體管理單元12的位址轉換資訊15,利用位址轉換資訊15作為寫入位址而選擇並產生未使用的位址(物理位址)。
藉由使用以上之寫入位址的產生方法,可進行已產生之位址所示之位置與寫入對象資料之寫入位置的重疊較少之寫入。藉由此位址產生部16的動作,執行追記式的寫入。在此,所謂追記式係追加寫入資料之方式。
順序產生部17係產生用以判斷寫入之先後的順序資訊。藉由使用此順序資訊,即使藉由追記式更新某資料之值的狀況,亦可求出此資料的最新值。於本實施形態中,順序產生部17係每於對非揮發性主記憶體3的寫入產生時,執行計算總數,作為順序資訊使用此計數值。利用將此順序資訊與寫入對象資料建立關係而儲存於非揮發性主記憶體3,例如在變數名等之識別資訊相同,非揮發性主記憶體3的複數條目有資料相關之寫入時,可判斷順序資訊較大之資料為最新的資料。
寫入控制部18係控制從處理器2對非揮發性主記憶體3之寫入。雖然於後詳述,但是非揮發性主記憶體3係以條目單位來管理資料。寫入控制部18係在寫入時,將寫入對象資料被寫入之條目的V(Valid)旗標20設為1。以使用此V旗標20,可判斷寫入對象的條目為有效或無效。又,寫入控制部18係即使非揮發性主記憶體3上之條目的V旗標20為1,在記憶體管理單元12判斷並未使用時,則消除儲存於此條目之資料,將V旗標20設為0。進而,寫入控制部18係在進行對此進行消除之條目的再次寫入時,除了進行再次寫入之外,將此條目的V旗標20設為1。
寫入控制部18判斷所定數或所定比例以上之條目的V旗標20成為1時(例如,所有V旗標20成為1時),則產生例外處理,藉由軟體進行非揮發性主記憶體3之不需要條目的清理,消除該當之不需要部份而將V旗標20設為0。
於本實施形態中,作業系統60係記憶於快取記憶體10與非揮發性主記憶體3中至少一方。運算核心91~94係執行作業系統60。被記憶於快取記憶體10與非揮發性主記憶體3中至少一方,藉由運算核心91~94執行之作業系統60係在從處理器2寫入至非揮發性主記憶體3之資料或程式產生時,判斷此寫入對象資料或程式是序列式資料或序列式程式,或是通常資料或通常程式。
序列式資料係連續被存取之一連串的資料,序列式程式係連續被執行之一連串的程式。
作為序列式資料,例如有串流資料(映像)、日誌資料等。關於串流資料,大多進行讀出,進行寫入之頻度較少。與此相反,日誌資料係持續進行寫入的資料,進行讀出之頻度較少。
串流資料及日誌資料的判別係藉由作業系統60進行,檔案之副檔名的檢測,或從應用程式叫出記憶體分配API(Application Program Interface)時,藉由指定資料種別來判別。再者,在可編輯串流資料之設定的狀況等,此串流資料係有作為序列式資料而不進行記憶體分配之狀況。
作為序列式資料之判別方法,作業系統60依據過去的存取履歷,檢測出被序列式存取之頻度較高的資料,將此被檢測出之資料判別為序列式資料亦可。
在判別序列式資料時,例如,作業系統60係對於位址轉換資訊15,將被檢測出之序列式資料所對應之條目的連續區塊旗標27,設為表示為序列式資料或序列式程式的旗標。在此,連續區塊旗標27係表示對應之條目是儲存序列式資料之區塊的條目之旗標。
通常資料及通常程式係分別不為序列式資料之資料及不為序列式資料之程式。
以下,針對序列式資料之狀況進行說明,但是,關於序列式程式也可與序列式資料相同處理。
又,在本實施形態中,以區塊單位來管理序列式資料之狀況為例進行說明,但是,例如以頁面單位等之其他大小來管理時也相同。
位址產生部16係在藉由作業系統60判斷被寫入之資料是通常資料時,以已產生之位址所示之位置與通常資料之寫入位置不重疊之方式,使寫入位址產生。又,位址產生部16係在藉由作業系統60判斷被寫入之資料是序列式資料時,使表示用以序列式儲存序列式資料之寫入位置的寫入位址產生。位址產生部16係以序列式資料被從區塊區域的開頭儲存之方式,使寫入位址產生。在此,區塊區域係儲存區塊單位之資料的記憶體之一區域。區塊區域係藉由以區塊單位儲存之資料的大小來決定之任意大小,例如,1MB程度。區塊單位係頁面大小之整數倍的單位。又,作為非揮發性主記憶體3而使用NAND型快閃記憶體時,例如,將本實施形態之區塊區域的區塊單位,設為NAND型快閃記憶體之資料的消除單位之所謂「區塊單位」亦可。
寫入控制部18係在對非揮發性主記憶體3之寫入對象資料的寫入時,於利用藉由位址產生部16產生之位址來指定的位置,寫入藉由順序產生部17產生之順序資訊(計數值)19、V旗標20「1」、寫入對象資料21、狀態資訊旗標22「0」、MMU資訊23、S旗標26「1」或「0」。
在此,狀態資訊旗標22係表示該當條目是否是用以狀態資訊之寫入的條目之資訊。在該當條目是狀態資訊的寫入時,於狀態資訊旗標22設定1,在該當條目不是狀態資訊的寫入時,則於狀態資訊旗標22設定0。
MMU資訊23係以MMU12管理之各種資訊,例如包含位址轉換資訊15、連續區塊旗標27、連續區塊數28。
寫入控制部18係在藉由狀態資訊生成部13產生新的狀態資訊時,對於非揮發性主記憶體3,進行已產生之狀態資訊24的寫入。在此狀態資訊24的寫入時,寫入控制部18係於利用藉由位址產生部16產生之位址所指定的位置,寫入藉由順序產生部17產生之順序資訊19、V旗標20「1」、狀態資訊24、狀態資訊旗標22「1」、MMU資訊23、S旗標26。
寫入控制部18係在藉由位址產生部16產生通常資料的寫入位址時,對於藉由已產生之寫入位址所指定的位置,將藉由順序產生部17產生之順序資訊建立對應並將通常資料寫入至非揮發性主記憶體3。
又,寫入控制部18係在藉由位址產生部16產生序列式資料的寫入位址時,對於已產生之寫入位址,將藉由順序產生部17產生之順序資訊建立對應並將序列式資料序列式寫入至非揮發性主記憶體3。
在此,寫入控制部18係依據序列式資料的寫入位址,從非揮發性主記憶體3的區塊區域之開頭連續寫入序列式資料。
寫入控制部18係無法連續儲存所有序列式資料時,則涵蓋複數區塊區域來寫入序列式資料,以此複數區塊區域成為連續配置之方式寫入。進而,以在複數區塊區域內序列式資料成為連續之方式寫入。
然後,寫入控制部18係在序列式資料從非揮發性主記憶體3之區塊區域的開頭被連續寫入時,將儲存此序列式資料之非揮發性主記憶體3的區塊區域作為S旗標26與1建立關係。寫入控制部18係於非揮發性主記憶體3中於複數區塊區域,序列式資料被連續寫入時,對於此序列式資料被連續寫入之非揮發性主記憶體3的複數區塊區域,將S旗標26「1」建立關係。
S旗標26係用以判斷被寫入至非揮發性主記憶體3之資料是否是序列式資料的資訊,為1時表示為序列式資料,為0時表示不是序列式資料。
存取控制部14係在處理器2從非揮發性主記憶體3讀取出通常資料時,依據記憶體管理單元12的位址轉換資訊15,將邏輯位址轉換為非揮發性主記憶體3的物理位址。然後,存取控制部14係依據物理位址,從非揮發性主記憶體3讀取出通常資料。
存取控制部14係在處理器2從非揮發性主記憶體3讀取出序列式資料時,依據記憶體管理單元12的位址轉換資訊15,將邏輯位址轉換為非揮發性主記憶體3的物理位址。此外,存取控制部14係依據位址轉換資訊15、連續區塊旗標27、連續區塊數28、非揮發性主記憶體3的S旗標26,依序讀取出於非揮發性主記憶體3中物理位址所示之位置被連續儲存之序列式資料。
以下,針對關於本實施形態之位址轉換資訊15所致之序列式資料的處理例,更詳細地說明。
如上所述,資訊處理裝置1係盡可能從區塊區域的開頭連續儲存序列式資料。
序列式資料從區塊區域的開頭涵蓋連續之複數區塊區域而被儲存時,該等複數連續之區塊區域相關之S旗標被設定為1。
序列式資料涵蓋連續之複數區塊區域而被儲存時,記憶體管理單元12係以儲存序列式資料之複數區塊區域單位,來管理序列式資料的位址轉換資訊15。又,作為其他管理方法,記憶體管理單元12係以頁面或區塊單位來管理序列式資料的位址轉換資訊15亦可。
例如,序列式資料涵蓋複數連續之區塊區域而被儲存時,記憶體管理單元12係以1個條目,來管理序列式資料的位址轉換資訊15,於此條目的連續區塊旗標27設定1,並且設定連續之區塊數(大小)。
在此,連續區塊旗標27係為了判斷存取轉換資訊15的條目是否是關於儲存序列式資料之複數區塊區域的條目之資訊所用的資訊。連續區塊旗標27係在1時,表示為序列式資料相關之條目,在0時,則表示為不是序列式資料之資料相關之條目。連續區塊數28係連續儲存序列式資料之區塊區域的數量。
又,於本實施形態中,存取控制部14係即使不使用連續區塊數28,例如,非揮發性主記憶體3之S旗標1連續為1之間,判斷序列式資料被儲存於連續之區塊區域亦可。但是,此時,即使從途中對序列式資料進行存取之狀況,也必須從初始回溯序列式資料。
如此,序列式資料被儲存於非揮發性主記憶體3的連續之複數區塊區域時,於位址轉換資訊15中,藉由以位址轉換資訊15的1個條目來管理儲存序列式資料之非揮發性主記憶體3的複數區塊區域,可減少位址轉換資訊15的使用量(條目數)。
存取控制部14係在於位址轉換資訊15中邏輯位址所示之條目的連續區塊旗標27為1時,則辨識為序列式資料相對之存取,依據連續區塊數28來辨識儲存存取對象的序列式資料之區塊區域數。
然後,存取控制部14係依據物理位址與連續區塊數28,依序讀取出被儲存於非揮發性主記憶體3的序列式資料。
於本實施形態中,存取控制部14係在連續儲存序列式資料之區塊區域相對之垃圾收集產生時,將成為此移動對象之連續的區塊區域之記憶內容,盡可能移動至連續之其他區塊區域。
圖2係揭示關於本實施形態之資訊處理裝置1的回寫之一例的流程圖。
快取記憶體10的資料係藉由運算核心91~94更新,故必須因應需要或定期將快取記憶體10的快取線回寫(write back)為非揮發性主記憶體3的條目。以下,針對本實施形態的資訊處理裝置1之回寫的處理工程進行說明。在本實施形態中,對非揮發性主記憶體3之快取線的寫入係如前述般為追記式。為此,在本實施形態的回寫中,快取記憶體10的快取線係被回寫為藉由位址產生部16產生之非揮發性主記憶體3的未使用之位址所示之位置。
執行回寫時,於步驟S1中,存取控制部14的位址產生部16係參照記憶體管理單元12,判斷已產生之位址是否未使用。
已產生之位址為使用中時,於步驟S2中,位址控制部14的位址產生部16係產生下個位址,處理回到前述步驟S1。藉此,現在使用中的頁面不會被新的頁面複寫。非揮發性主記憶體3之寫入對象的位址係到下個空著的條目之位址為止被跳過。再者,如步驟S1、S2,從開始回寫並不求出未使用的位址,而預先檢測出下個未使用的位址亦可。
已產生之位址並不是使用中時,於步驟S3中,寫入控制部18係將回寫對象的快取線,回寫至非揮發性主記憶體3之未使用且已產生之位址所示的位置。
此時,寫入控制部18係以表示回寫後的狀態之方式更新記憶體管理單元12的位址轉換資訊15,針對回寫對象的頁面,將包含現在之順序資訊19、記憶體管理單元12之位址轉換資訊15的MMU資訊23,寫入至非揮發性主記憶體3。又,寫入控制部18係將V旗標20設為1,將狀態資訊旗標22設為0,將S旗標26設為0,寫入至非揮發性主記憶體3。
藉此,順序資訊19、V旗標20、頁面21、狀態資訊旗標22、MMU資訊23、S旗標26被寫入至藉由已產生之位址所示之非揮發性主記憶體3的位置,執行回寫。
在前述步驟S3的寫入處理之後,存取控制部14的位址產生部16係於步驟S4中,產生新的位址,順序產生部17係產生新的順序資訊。
於將狀態資訊24寫入至非揮發性主記憶體3之狀況中,於快取記憶體10中存在有污染線時,首先,此污染線被回寫至非揮發性主記憶體3。所謂污染線係於主記憶體並未反映資料的內容,在主記憶體與快取記憶體之間,資料的內容並未整合之快取記憶體的快取線。
進而,於外部的次級記憶裝置、外部存取裝置、I/O裝置等的裝置中發生異常時,狀態資訊生成部13係藉由SYNC等的操作,將該等裝置設為可復原之狀態,之後產生狀態資訊24。然後,寫入控制部18係進行已產生之狀態資訊24的寫入處理。
圖3係揭示關於本實施形態之資訊處理裝置1的提取之一例的流程圖。
於步驟T1中,記憶體管理單元12係判斷存取對象的資料是否被儲存於快取記憶體10(是否是快取命中)。
在存取對象的資料被儲存於快取記憶體10時,於步驟T2中,運算核心91~94係載入快取記憶體10上的資料。
在存取對象的資料未被儲存於快取記憶體10時,於步驟T3中,記憶體管理單元12係判斷於記憶體管理單元12內,是否存在此存取對象的資料相關之位址轉換資訊15。
於記憶體管理單元12的位址轉換資訊15存在有存取對象資料的位址相關之條目時,於步驟T4中,記憶體管理單元12係參照位址轉換資訊15之存取對象資料的條目,將邏輯位址轉換成物理位址。
於記憶體管理單元12的位址轉換資訊15並不存在有存取對象資料的位址相關之條目時,於步驟T5中,執行例外處理。
執行例外處理時,於步驟T6中,存取控制部14係藉由軟體處理,將存取對象資料從例如次級記憶裝置4、外部存取裝置5、I/O裝置6等之裝置,載入至非揮發性主記憶體3。記憶體管理單元12係將載入後的條目設於位址轉換資訊15,進行位址轉換資訊15的更新。之後,處理轉移至步驟T4。
步驟T4之後,於步驟T7中,存取控制部14係讀取出被儲存於非揮發性主記憶體3之物理位址的位置之資料,並載入至快取記憶體10。又,存取控制部14係如有必要,直接將讀取出之資料饋入運算核心91~94。
圖4係揭示關於本實施形態之資訊處理裝置1的復原處理(再構築)之一例的流程圖。
例如,再次開啟資訊處理裝置1的電源時,處理器2係讀取出被儲存於非揮發性主記憶體3之核心程式7,並執行核心程式7而進行復原。核心程式7係藉由運算核心91~94中至少之一執行。以下,以於運算核心91中執行核心程式7之狀況為例進行說明。
於步驟U1中,執行核心程式7的運算核心91係依序讀取出被儲存於非揮發性主記憶體3之資料部25的條目。
然後,執行核心程式7的運算核心91係從V旗標20為「1」的條目中,求出順序資訊19為最新的條目,並求出此最新的條目之位址(最新的位址)。進而,執行核心程式7的運算核心91係從狀態資訊旗標22為「1」的條目中,求出順序資訊19為最新的條目之狀態資訊24(最新的狀態資訊),並求出順序資訊19為最新的條目之MMU資訊23(最新的MMU資訊)。
於步驟U2中,執行核心程式7的運算核心91係使位址產生部16產生對於V旗標20為「1」且順序資訊19為最新的條目之位址的下個位址。
執行核心程式7的運算核心91係使位址產生部17產生對於V旗標20為「1」且順序資訊19為最新的條目之順序資訊的下個順序資訊。
執行核心程式7的運算核心91係依據V旗標20為「1」且順序資訊19為最新的條目之MMU資訊23,復原記憶體管理單元12。
執行核心程式7的運算核心91係載入狀態資訊旗標22為「1」且順序資訊19為最新的狀態資訊24,並依據此載入之狀態資訊24,復原處理器2的狀態。
於步驟U3中,運算核心91係脫離核心程式7的執行,從被載入之狀態資訊24所示之狀態再次開始動作。
圖5係揭示關於本實施形態之資訊處理裝置1之記憶體管理單元12的條目登記處理之一例的流程圖。在此圖5中,以寫入對象是通常資料或序列式資料之狀況為例進行說明,但是,寫入對象是通常程式或序列式程式之狀況也相同。
於步驟V1中,記憶體管理單元12係依據作業系統60所致之判斷結果,判斷寫入對象資料是否是序列式資料。
寫入對象資料並不是序列式資料時,於步驟V2中,記憶體管理單元12係將存取轉換資訊15之新的條目的連續區塊旗標27設定為0,於步驟V3中,將新的條目分配至儲存通常資料之非揮發性主記憶體3的區域。之後,執行步驟V7。
寫入對象資料是序列式資料時,於步驟V4中,記憶體管理單元12係將存取轉換資訊15之新的條目的連續區塊旗標27設定為1,於步驟V5中,對於存取轉換資訊15之新的條目,設定從作業系統60接收之連續區塊數28,於步驟V6中,將新的條目分配至儲存序列式資料之非揮發性主記憶體3的區域。之後,執行步驟V7。
於步驟V7中,記憶體管理單元12係確保充分之區域,判斷分配是否正確進行。
在分配正確進行時,記憶體管理單元12的條目登記處理則結束。
在分配並未正確進行時,於步驟V8中,任一運算核心係執行軟體所致之例外處理,記憶體管理單元12係確保需要之條目,進行分配。之後,記憶體管理單元12的條目登記處理則結束。
於本實施形態中,資訊處理裝置1係分為儲存通常資料的通常資料儲存區域,與儲存序列式資料的序列式資料儲存區域亦可。
圖6係揭示關於區別通常資料儲存區域與序列式資料儲存區域之本實施形態的資訊處理裝置1之一例的區塊圖。
於資訊處理裝置1中,非揮發性主記憶體3係具備通常資料儲存區域29與序列式資料儲存區域30。通常資料儲存區域29與序列式資料儲存區域30係被分離,或被儲存於不同之記憶體單元。
例如,序列式資料儲存區域30之存取次數的上限少於通常資料儲存區域29之存取次數的上限時,序列式資料中表示從作業系統60等寫入頻度較少的序列式資料,係比寫入頻度較大之序列式資料更優先儲存於序列式資料儲存區域30亦可。
例如,將非揮發性主記憶體3分為MLC(Multi Level Cell)區域與SLC(Single Level Cell)區域,資料大小較大之序列式資料係比SLC區域更優先被分配至積體度高之MLC區域,通常資料係比MLC區域更優先被分配至積體度低之SLC區域。
例如,比較SLC型式的NAND型快閃記憶體與MLC型式的NAND型快閃記憶體時,SLC型式的NAND快閃記憶體係相較於MLC型式的NAND型快閃記憶體,存取速度較快,信賴性較高,但是,元件的積體度較低,不適合大容量化。相對於此,MLC型式的NAND快閃記憶體係相較於SLC型式的NAND型快閃記憶體,存取速度較慢,信賴性較低,但是,元件的積體度較高,適合大容量化。
再者,於本實施形態中,耐久性係例如代表對於寫入的耐久性。信賴性係代表資料讀出之資料的破損難以產生。
於本實施形態中,序列式資料是串流資料時,此序列式資料被改寫之次數或頻度少於通常資料被改寫之次數或頻度。在此,非揮發性主記憶體3中寫入次數接近上限寫入次數的區域(寫入次數沒有餘裕的區域)作為序列式資料儲存區域30使用,寫入次數到上限寫入次數為止還有餘裕的區域則作為通常資料儲存區域29使用亦可。例如,藉由作業系統60,進行非揮發性主記憶體3的各區域之寫入次數與上限寫入次數的比較,和通常資料儲存區域29與序列式資料儲存區域30的決定。
即使是序列式資料儲存區域30,寫入次數較少的區域(例如,寫入次數未滿所定數的區域或寫入次數未滿上限寫入次數之所定比例的區域)係變更為通常資料儲存區域29亦可。與此相反,即使是通常資料儲存區域29,寫入次數較多的區域(例如,寫入次數為所定數以上的區域或寫入次數為上限寫入次數之所定比例以上的區域)係變更為序列式資料儲存區域30亦可。
針對以上說明之關於本實施形態的資訊處理裝置1之效果進行說明。
在本實施形態中,將序列式資料或序列式程式對於非揮發性主記憶體3寫入時,以區塊單位來連續寫入序列式資料或序列式程式。藉此,可謀求對於被連續存取之序列式資料或序列式程式的存取效率之提升。
進而,在本實施形態中,以區塊區域來儲存序列式資料或序列式程式,記憶體管理單元12以區塊區域單位,來管理序列式資料或序列式程式的位址轉換資訊15。藉此,可減少記憶體管理單元12之位址轉換資訊的使用量。
如上所述,在本實施形態中,可提升序列式資料的存取效率及管理效率。
又,於本實施形態中,於管理對非揮發性半導體記憶體之存取的狀況中,不使硬體構造複雜化,而使動作高速化,可實現高信賴性。進而,於本實施形態中,可延長非揮發性半導體記憶體的壽命。
又,在先前之資訊處理裝置中,因為主記憶體使用揮發性記憶體,故每次再起動,必須載入作業系統60、程式、資料。相對於此,於關於本實施形態之資訊處理裝置1中,因為主記憶體使用非揮發性半導體記憶體,故即使在再起動之狀況中,必要之程式及資料被儲存於非揮發性主記憶體3,可削減或不需要程式開機程式、程式及資料的載入,可使資訊處理裝置1的處理高速化。亦即,在關於本實施形態之資訊處理裝置1中,處理器2的主記憶體使用非揮發性半導體記憶體,藉由將處理過程寫入至非揮發性主記憶體3,即使沒有備用電源,也可保持資訊處理裝置1的狀態。又,於資訊處理裝置1中,可高速化程式的起動。
進而,於關於本實施形態之資訊處理裝置1中,每於狀態資訊24的產生事件產生時,狀態資訊24則被儲存於非揮發性主記憶體3,故即使在電源突然被關閉之狀況中,也可讀取出最新的狀態資訊24而使處理器2的狀態復原成電源關閉前的狀態,可再次執行資訊處理裝置1的動作。
進而,於本實施形態中,將快取記憶體10的快取大小,與非揮發性主記憶體3的寫入大小、資料‧程式21及狀態資訊24的寫入大小設為一致或整數倍的關係。藉此,在快取記憶體10與非揮發性主記憶體3之間,不需轉換資料或程式的大小,可削減大小的轉換硬體量,可簡略化對於非揮發性主記憶體3的控制,可使資訊處理裝置1的處理效率化。
進而,於本實施形態中,如有必要,進行來自快取記憶體10之回寫的位元率控制(rate ocntrol)亦可。運算核心91~94係具備局部記憶體亦可,但是,於非揮發性主記憶體3係經由快取記憶體來進行存取。藉此,可使存取速度高速化。
進而,於本實施形態中,例如,作為非揮發性主記憶體3,使用NAND型快閃記憶體或NOR型快閃記憶體等時,不會進行先前進行之耗損平均(wear leveling)而可作為主記憶體來利用。
(第2實施形態)
於本實施形態中,針對第1實施形態的變形例進行說明。
於本實施形態中,儲存序列式資料的連續之複數區塊區域係不一定需要在實際之物理記憶媒體上連續配置,只要是可高效率且有效地序列式對資料存取及資料傳送的配置即可。
圖7係揭示具備可有效連續存取之複數記憶體單元的非揮發性主記憶體3之一例的區塊圖。
非揮發性主記憶體3係包含複數記憶體單元(記憶體晶片)31、32。在此圖7中,以儲存序列式資料之區塊區域數為4,記憶體單元為兩個之狀況為例進行說明,但是,儲存序列式資料之區塊區域數及記憶體單元為2以上即可。
在非揮發性主記憶體3包含複數記憶體單元31、32時,存取控制部14係並不是對於相同記憶體單元連續儲存序列式資料SD1~SD4,而是一邊切換儲存目的的記憶體單元31、32,一邊儲存序列式資料SD1~SD4。
例如,以第1記憶體單元31的第0區塊區域31-0、第2記憶體單元32的第0區塊區域32-0、第1記憶體單元31的第1區塊區域31-1、第2記憶體單元32的第1區塊區域32-1之順序,儲存序列式資料SD1~SD4。此時,可一邊對第1記憶體單元31的第0區塊區域31-0進行存取,一邊對第2記憶體單元32的第0區塊區域32-0進行存取,可使對第2記憶體單元32的第0區塊區域32-0之存取與對第1記憶體單元31的第0區塊區域31-0之存取重複(平行化),可高速進行資料存取。
圖8係揭示關於本實施形態之非揮發性主記憶體3的邏輯資料儲存位置與物理資料儲存位置的關係之第1例的區塊圖。
於序列式資料儲存區域30係在邏輯上連續之狀態下儲存有序列式資料SD1~SD4。然而,物理上,序列式資料SD1~SD4係一邊切換記憶體單元31、32一邊被儲存。
圖9係揭示關於本實施形態之非揮發性主記憶體3的邏輯資料儲存位置與物理資料儲存位置的關係之第2例的區塊圖。
於此圖9中,記憶體單元31係具備MLC區域31M與SLC區域31S。記憶體單元32係具備MLC區域32M與SLC區域32S。
於非揮發性主記憶體3中,通常資料係邏輯上被儲存於通常資料儲存區域29,但是,物理上被儲存於記憶體單元31、32的SLC區域31S、32S。
序列式資料係邏輯上被儲存於序列式資料儲存區域30,但是,物理上被儲存於記憶體單元31、32的MLC區域31M、32M。
圖10係揭示關於本實施形態之非揮發性主記憶體3的邏輯資料儲存位置與物理資料儲存位置的關係之第3例的區塊圖。在此圖10的關係中,組合前述圖8及圖9的關係。
於非揮發性主記憶體3中,通常資料係邏輯上被儲存於通常資料儲存區域29,但是,物理上被儲存於記憶體單元31、32的SLC區域31S、32S。
於序列式資料儲存區域30係在邏輯上連續之狀態下儲存有序列式資料SD1~SD4。物理上,序列式資料SD1~SD4係一邊切換記憶體單元31、32的MLC區域31M、32M,一邊分別以區塊區域31-0、32-0、31-1、32-1的順序儲存。
於本實施形態中,可使序列式資料的存取平行化,並可使其高速化。
(第3實施形態)
於本實施形態中,針對關於前述第1及第2實施形態之資訊處理裝置1的變形例,具有快取記憶體被分層化之構造的資訊處理裝置進行說明。
圖11係揭示關於本實施形態之資訊處理裝置的構造之一例的區塊圖。
資訊處理裝置33係具備至少1個處理器(在此圖11的範例中為4個)341~344、控制裝置35、非揮發性主記憶體3。
資訊處理裝置33係具備次級記憶裝置4、外部存取裝置5、I/O裝置6。於非揮發性主記憶體3係儲存核心程式7、作業系統60。處理器341~344及控制裝置35係執行作業系統60。處理器341~344係一邊對非揮發性主記憶體3的資料D1、D2進行存取,一邊執行程式P1、P2。
各個處理器341~344係分別具備1級快取(first level cache)記憶體361~364。處理器341~344係在1級快取記憶體361~364中產生快取未中時,將存取對象的位址發送至控制裝置35。
控制裝置35係具備2級快取記憶體10、寫入緩衝器11、狀態資訊生成部13、包含存取控制部14與記憶體管理單元12的記憶體管理裝置201。藉由此控制裝置35執行之例如回寫、提取、復原等之各種處理,係與前述第1實施形態之狀況相同。
再者,於本實施形態中,以由1級快取記憶體361~364與2級快取記憶體10所構成之兩分層之狀況為例進行說明,但是,即使快取記憶體的分層為3層以上,也可同樣適用控制裝置35。
於本實施形態中,處理器341~344係經由1級快取記憶體361~364、2級快取記憶體10,對非揮發性主記憶體3進行存取。藉此,可使處理器341~344所致之存取處理高速化。
(第4實施形態)
於本實施形態中,針對於關於前述第1乃至第3實施形態之資訊處理裝置1,具備寫入次數檢查部及異常檢測部之狀況進行說明。再者,於本實施形態中,針對於關於前述第1實施形態之資訊處理裝置1,具備寫入次數檢查部及異常檢測部之狀況進行說明,但是,關於第2及第3實施形態之資訊處理裝置等之其他形態的資訊處理裝置也可同樣適用。
圖12係揭示關於本實施形態之資訊處理裝置的構造之一例的區塊圖。
關於本實施形態之資訊處理裝置37的處理器38係具備記憶體管理裝置202。進而,記憶體管理裝置202係具備記憶體管理單元39、存取控制部43、異常檢測部46。
關於本實施形態之記憶體管理單元39係除了位址轉換資訊15之外,於每個非揮發性主記憶體3的區域(例如位址區域或區塊區域),具備表示寫入次數之寫入次數資訊40與Bad資訊41。
Bad資訊41係針對非揮發性主記憶體3之各區域,在寫入次數資訊40所示之寫入次數超過上限時,成為表示異常之值。再者,Bad資訊41係也被儲存於非揮發性主記憶體3的資料部42。
於本實施形態中,記憶體管理單元39係以非揮發性主記憶體3被寫入之時機,更新寫入次數資訊40(於寫入對象的區域或條目相關之寫入次數加上1)。
存取控制部43的寫入控制部44係將寫入次數資訊40與順序資訊19建立對應並儲存至非揮發性主記憶體3的該當區域。
於存取控制部43具備寫入次數檢查部45。寫入次數檢查部45係在對非揮發性主記憶體3的寫入時,檢查寫入目的之區域的寫入次數,在此寫入次數超過表示上限之所定值時或上限相對之所定比例時則產生例外處理。在例外處理中,起動軟體,藉由此軟體執行必要之處理。
例如,在此軟體所致之例外處理中,對於記憶體管理單元39與非揮發性主記憶體3,於寫入次數超過上限之區域的條目之Bad資訊41設定表示異常之值,不進行對寫入次數超過上限之條目的寫入。記憶體管理單元32係禁止對Bad資訊41表示異常之條目的寫入。
進而,關於本實施形態之資訊處理裝置37中,處理器38係具備異常檢測部46。作為異常檢測部46,例如使用ECC電路等。異常檢測部46係進行位元錯誤訂正、無法訂正錯誤檢測、例外產生。
在前述之寫入次數檢查部45中,設為寫入次數超過上限時無法使用,但是,即使寫入次數超過上限之前,也有產生位元錯誤之狀況。
為了對應此種錯誤,異常檢測部46係進行對於非揮發性主記憶體3之位元錯誤檢測。進而,異常檢測部46係在已產生之位元錯誤可訂正時進行訂正。然後,異常檢測部46係在產生無法訂正之位元錯誤時,產生例外處理,藉由軟體進行必要之處理。例如,藉由此軟體所致之例外處理,對於記憶體管理單元39與非揮發性主記憶體3,於無法訂正之錯誤產生之區域的條目之Bad資訊41設定表示異常之值,對於無法訂正的錯誤產生之條目不進行寫入。記憶體管理單元39係禁止對Bad資訊41表示異常之條目的寫入。
於以上說明之本實施形態中,對非揮發性主記憶體3的寫入產生異常時,可藉由軟體進行異常產生之區域的使用禁止、對使用者之交換指示等的適切處理。
於前述各實施形態中,進行來自快取記憶體之回寫的位元率控制亦可。
(第5實施形態)
於前述各實施形態中,非揮發性主記憶體3的儲存區域係例如因應程式、資料、狀態資訊等之被寫入的內容之種類而區分亦可。
圖13係揭示程式、資料、狀態資訊被分開儲存於複數資料部(儲存區域)之非揮發性主記憶體3之一例的區塊圖。
存取控制部14、43的位址產生部16係判別被寫入之內容是程式21a或資料21b又或狀態資訊24。然後,位址產生部16係在被寫入之內容是程式21a時,以寫入對象的程式21a被儲存於資料部(儲存區域)25A之方式使位址產生。存取控制部14、43係在被寫入之內容是資料21b時,以寫入對象的資料21b被儲存於資料部(儲存區域)25B之方式使位址產生。存取控制部14、43係在被寫入之內容是狀態資訊24時,以寫入對象的狀態資訊24被儲存於資料部(儲存區域)25C之方式使位址產生。各個被寫入之內容與順序資訊19、V旗標20、MMU資訊23建立關聯。
被寫入至資料部25A、25B的內容與S旗標26建立關聯。
再者,關於MMU資訊23,被儲存於其他儲存區域亦可。
(第6實施形態)
於本實施形態中,針對第1乃至第5實施形態的變形例進行說明。再者,以下針對前述第1實施形態的變形例進行說明,但是,關於前述第2乃至第5實施形態的變形例也相同。
圖14係揭示關於本實施形態之資訊處理裝置的構造之一例的區塊圖。
記憶體管理裝置201的存取控制部14係進而具備性能降低檢測部48。
核心程式7係具備性能降低抑制程式49。
於非揮發性主記憶體3中可寫入的區域(可寫入的條目數)變少時,有關於對於非揮發性主記憶體3之存取的性能降低之狀況。又,沒有可寫入的區域時,則無法持續處理。
性能降低檢測部48係檢測關於資訊處理裝置1中從處理器2對非揮發性主記憶體3的存取之性能降低是否發生。例如,性能降低檢測部48係在找尋寫入區域的時間超過設定值時、可寫入之條目數成為設定值或設定比例以下時又或產生兩個組合時,檢測出性能降低。
性能降低檢測部48係在關於從處理器2對非揮發性主記憶體3的存取之性能降低的發生被檢測出時,對處理器2發派例外指令。
處理器2係在產生例外指令時,執行核心程式7內的性能降低抑制程式49。
遵從此性能降低抑制程式49,處理器2係執行如垃圾收集等之抑制性能降低的處理。
性能降低抑制程式49係例如在檢索現在之非揮發性主記憶體3內,將被集中於複數條目中之一者集中為1個的處理,與在非揮發性主記憶體3內有效資料與未使用資料(被消除的資料)混合存在時,執行收集有效資料並再次配置的處理、將存取頻度較低的資料、重要度或優先度較低的資料、使用頻度較低的資料移動至其他記憶媒體而增加空白區域的處理等之各種處理或各種處理的組合。
於以上說明之本實施形態中,可防止因可寫入區域變少等的理由而資訊處理裝置1的性能降低之狀況。
利用將性能降低抑制程式49的處理與通常的處理平行執行,可將對通常的處理之影響抑制為最小限度。
又,利用具備進行性能降低抑制程式49之處理的專用處理器,可抑制因為例外處理而處理器2的能力降低之狀況。
前述各實施形態的控制係也可適用於將非揮發性半導體記憶體利用於非主記憶體之其他目的之狀況。
(第7實施形態)
於前述各實施形態中,作為主記憶體,利用非揮發性主記憶體3。
然而,作為主記憶體,利用混合性質相互不同之不同種的半導體記憶體之記憶體,來代替前述各實施形態之非揮發性主記憶體3亦可。
圖15係揭示關於本實施形態之包含混合記憶體的資訊處理裝置之一例的區塊圖。
圖16係揭示關於本實施形態之資訊處理裝置所使用的程式及資料之一例的區塊圖。
資訊處理裝置54係具備具備快取記憶體55之至少1個處理器56、記憶體管理裝置57、混合記憶體52。
處理器56係經由記憶體管理裝置57,連接於混合記憶體52。記憶體管理裝置57係例如具備具備與關於前述各實施形態之存取控制部14、43相同功能的存取控制部59。又,記憶體管理裝置57係具備記憶體管理單元12、39的功能。於本實施形態中,本實施形態57係具備位址產生部16、順序資訊產生部17、寫入控制部18。
混合記憶體52係組合複數種別的半導體記憶體所構成。在本實施形態中,混合記憶體52係具備揮發性半導體記憶體52a、非揮發性半導體記憶體58。進而,此非揮發性半導體記憶體58係具備非揮發性半導體記憶體52b、52c。
作為揮發性半導體記憶體52a,係例如利用DRAM,使用FPM-DRAM(Fast Page Mode Dynamic Random Access Memory)、EDO-DRAM(Extended Data Out Dynamic Random Access Memory)、SDRAM(Synchronous Dynamic Random Access Memory)等來代替DRAM亦可。如果可進行DRAM程度的高速隨機存取,且可存取上限次數並無實質上限制的話,採用MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)等之非揮發性隨機存取記憶體,來代替揮發性半導體記憶體52a亦可。
非揮發性半導體記憶體52b係例如SLC型式的NAND型快閃記憶體。非揮發性半導體記憶體52c係例如MLC型式的NAND型快閃記憶體。
再者,作為非揮發性半導體記憶體52b、52c,也可使用其他非揮發性半導體記憶體來代替NAND型快閃記憶體。
於本實施形態中,揮發性半導體記憶體52a係信賴性或耐久性高於非揮發性半導體記憶體52b,且存取次數的上限較多。又,非揮發性半導體記憶體52b係信賴性或耐久性高於非揮發性半導體記憶體52c,且存取次數的上限較多。
存取控制部59的位址產生部16係以揮發性半導體記憶體52a的存取次數或存取頻度高於非揮發性半導體記憶體52b的存取次數或存取頻度,非揮發性半導體記憶體52b的存取次數或存取頻度高於非揮發性半導體記憶體52c的存取次數或存取頻度之方式,選擇混合記憶體52之寫入目的的記憶體。
如此,寫入目的的記憶體係依據寫入對象資料的存取次數、存取頻度、重要度等的資訊,藉由位址產生部16選擇。
存取頻度係表示存取發生的頻度之值。存取頻度係例如依據製程的優先度、檔案的形式資訊、存取型式、ELF格式的片段等來決定。例如,媒體檔案相關之資料的寫入頻度係被設定為較低。例如,存取型式是以系統呼叫所指定之權限時,存取頻度被設定為較高,在存取型式是檔案的權限時,存取頻度被設定為較低。例如,以唯讀的區段所構成之片段相對的存取頻度中寫入頻度被設定為較低。於存取頻度有值不變化之靜態存取頻度,與值會因應存取狀況而變化之動態存取頻度的兩種類。動態存取頻度係為了有效進行資料配置而依據資料的存取次數所求出之值。作為動態存取頻度,例如可使用依據存取次數與時間相關之資訊所計算出之值。例如,動態存取頻度係每一單位時間的存取次數亦可。
重要度係表示資料之重要程度之值,有值不資料之靜態重要度,與值會因應存取狀況而變化之動態重要度的兩種類。靜態重要度係例如依據資料的種別(檔案形式)、藉由使用者設定之設定資訊來決定。動態重要度係依據存取時刻等來決定。例如,對於可執行檔案相關之資料,將靜態重要度設定為較高。例如,對於媒體檔案相關之資料,將靜態重要度設定為中間等級。例如,保存檔案的檔案夾是垃圾桶或信箱時,對於此檔案相關之資料,靜態重要度被設定為較低。例如,以與從最後存取時刻到現在為止的間隔成比例,寫入對象資料的動態重要度減少之方式設定。
資訊處理裝置54係執行作業系統60。此作業系統60係具備資料固有資訊管理部61、記憶體使用資訊管理部62。
資訊處理裝置54係藉由作業系統60的資料固有資訊管理部61,管理資料固有資訊631~63n。
資料固有資訊631~63n係針對各資料(程式等亦可)641~64n,包含存取頻度、存取次數、重要度中至少之一等的資料固有之資訊。
亦即,利用資訊處理裝置54處理之資料641~64n與其資料641~64n相對之資料固有資訊631~63n建立關係。於資料固有資訊631~63n包含各資料641~64n的存取頻度。資料固有資訊管理部61係在對於資料641~64n的寫入或讀出發生時,更新其資料641~64n的資料固有資訊631~63n。
再者,資料固有資訊631~63n係在從各資料641~64n分離之狀態下被管理亦可。
資訊處理裝置54係藉由作業系統60的記憶體使用資訊管理部62,管理記憶體使用資訊65。
記憶體使用資訊65係包含表示各記憶體52a~52c之使用量或使用率、各記憶體52a~52c的各區域之使用量或使用率等之記憶體52a~52c的使用狀況之資訊。例如,記憶體使用資訊65係包含各記憶體52a~52c之「存取次數/存取次數之上限」、各記憶體52a~52c的區域之「存取次數/存取次數之上限」、各記憶體52a~52c的「使用容量/全部容量」、各記憶體52a~52c之各區域的存取次數、存取頻度等。例如,執行對混合記憶體52的存取時,記憶體使用資訊管理部62係對於記憶體使用資訊65,更新被存取之記憶體的使用量或使用率、被存取之區域的使用量或使用率、存取次數、存取頻度等的資訊。於本實施形態中,記憶體使用資訊65係包含前述第4實施形態的寫入次數資訊40。
資訊處理裝置54係藉由作業系統60,管理記憶體固有資訊66。
記憶體固有資訊66係包含混合記憶體52之各記憶體52a~52c的存取次數之上限(壽命資訊、耐久性資訊)等之記憶體固有的資訊。
例如,存取控制部59的位址產生部16係依據表示藉由作業系統60所管理之資料與檔案的關係之資訊、資料固有資訊631~63n等,求出寫入對象資料的存取次數、存取頻度、重要度,並依據此寫入對象資料的存取次數、存取頻度、重要度來計算出寫入對向資料的評估值。此評估值係存取次數、存取頻度、重要度越高,則成為越大之值。然後,位址產生部16係依據寫入對象資料的評估值、記憶體使用資訊65、記憶體固有資訊66及在記憶體的選擇中所使用之記憶體選擇閾值,選擇寫入目的的記憶體。位址產生部16係越是評估值之值大的資料,越比非揮發性半導體記憶體52b優先選擇揮發性半導體記憶體52a,越比揮發性半導體記憶體52c優先選擇揮發性半導體記憶體52b。再者,於本實施形態中,記憶體選擇閾值係作為記憶體固有資訊66的一要素而預先設定亦可,依據記憶體使用資訊65等而動態計算出亦可。
存取產生部16係對於混合記憶體52之複數記憶體中被選擇之記憶體,產生在前述第1乃至第6實施形態中說明之用以進行追記式之寫入的位址。
針對記憶體管理裝置57所致之記憶體52a~52c的選擇更具體說明。
記憶體管理裝置57係在資料641的寫入時,調查寫入對象之資料641的資料固有資訊631、記憶體使用資訊65、記憶體固有資訊66,並作為寫入目的的記憶體,選擇揮發性半導體記憶體52a、非揮發性半導體記憶體52b、非揮發性半導體記憶體52c中寫入耐性還有餘裕之任一記憶體。藉由此選擇,可高性能且廉價地長時間使用大容量的記憶體。
例如,記憶體管理裝置57係依據寫入對象資料641的資料固有資訊631,在寫入對象資料641的存取頻度較高時作為寫入目的而選擇耐久性高之SLC型式的非揮發性半導體記憶體52b,在寫入對象資料641的存取頻度較低時作為寫入目的則選擇耐久性低之MLC型式的非揮發性半導體記憶體52c。藉此,可謀求混合記憶體52之成本、性能、存取速度及壽命的最適化。
例如,記憶體管理裝置57的存取控制部59係在寫入對象資料641為串流資料時,作為此串流資料的寫入目的,選擇例如MLC型式的NAND型快閃記憶體52c,並加以儲存。關於串流資料,因為有寫入頻度較小之傾向,即使將MLC型式的NAND型快閃記憶體52c使用於寫入目的,也可充分確保記憶體的性能。
然後,記憶體管理裝置57的存取控制部59係在SLC型式的非揮發性半導體記憶體52b與MLC型式的非揮發性半導體記憶體52c中任一被選擇時,如在前述各實施形態所說明般,進行位址的依序發派,在被發派之位址是未使用區域時,則對於此未使用區域執行儲存寫入對象資料641之追記式的寫入動作。藉此,可實現非揮發性半導體記憶體52b、52c內之存取次數的平順化。
針對藉由記憶體管理裝置57所使用之記憶體選擇閾值更具體說明。
於本實施形態中,基於依據存取次數、存取頻度、重要度而計算出之評估值,與記憶體選擇閾值,從混合記憶體52之不同機種的記憶體52a~52c中選擇寫入目的的記憶體。例如,記憶體選擇閾值係依據記憶體的使用率而變化。
使用率係作為「存取次數/存取次數之上限」亦可,作為「記憶體使用資訊之容量/記憶體之全部容量」亦可。
作業系統60係以揮發性半導體記憶體52a的使用率越高,則作為寫入目的,非揮發性半導體記憶體52比揮發性半導體記憶體52a更易於被選擇之方式,決定第1記憶體選擇閾值。
作業系統60係以非揮發性半導體記憶體52b的使用率越高,則作為寫入目的,非揮發性半導體記憶體52c比非揮發性半導體記憶體52b更易於被選擇之方式,決定第2記憶體選擇閾值。
然後,作業系統60及記憶體管理裝置57係依據評估值,與第1記憶體選擇閾值及第2記憶體選擇閾值的大小關係,選擇寫入目的的記憶體。
本實施形態的控制係也可適用於將混合記憶體52利用於非主記憶體之其他目的之狀況。
於以上說明之本實施形態中,依據資料的存取次數、存取頻度、重要度,分開使用揮發性半導體記憶體52a、SLC型式的非揮發性半導體記憶體52b、MLC型式的非揮發性半導體記憶體52c,藉此,可使在資訊處理裝置54中使用之主記憶體低成本化,可提升記憶容量,且達成長壽命化。
混合記憶體52係具備相較於揮發性半導體記憶體52a,較為廉價且大容量的非揮發性半導體記憶體52b、52c,故相較於單將揮發性半導體記憶體52a使用於主記憶體之狀況,可達成廉價且大容量化。
又,於本實施形態中,藉由在記憶體選擇之後進行追記式的寫入,可實現硬體資源的簡樸化。
於前述各實施形態中說明之各構成要素係可自由組合,也可自由分割。例如,存取控制部14、43與記憶體管理單元12、39也可組合。例如,記憶體管理單元12、狀態資訊產生部13、存取控制部13、43的功能係藉由運算核心91~94中至少之一實現亦可。作業系統60所致之是否為序列式資料的判斷功能係例如藉由存取控制部14等之硬體來實現亦可。位址產生部16、順序資訊產生部17、寫入控制部18係可自由組合。
已說明本發明之各實施形態,但是,該等實施形態係作為範例而揭示者,並未有限定發明範圍的意圖。該等新穎的實施形態係可在其他各種形態下實施,在不脫出發明要旨的範圍,可進行各種省略、置換、變更。此實施形態及其變形係包含於發明範圍及要旨,並且包含於申請專利範圍所記載之發明與其均等的範圍。
1,33,37,54...資訊處理裝置
2,341~344,38,56...處理器
3,58,52b,52c...非揮發性主記憶體
4...次級記憶裝置
5...外部存取裝置
6...I/O裝置
7...核心程式
10...快取記憶體
11...寫入緩衝器
12,39...記憶體管理單元
13...狀態資訊生成部
14,43...存取控制部
15...位址轉換資訊
16...位址產生部
17...順序產生部
18,44...寫入控制部
19...順序資料
20...V旗標
21...資料
21a,P1,P2...程式
21b,D1,D2,641~64n...資料
22...狀態資訊旗標
23...MMU資訊
24...狀態資訊
25,25A~C,42...資料部
26...S旗標
27...連續區塊旗標
28...連續區塊數
29...通常資料儲存區域
30...序列式資料儲存區域
31,32...記憶體單元
31-0~32-1...區塊區域
31M,32M...MLC區域
31S,32S...SLC區域
35...控制裝置
91~94...運算核心
201,202,57...記憶體管理裝置
361~364...1級快取記憶體
40...寫入次數資訊
41...Bad資訊
46...異常檢測部
48...性能降低檢測部
49...性能降低抑制程式
52...混合記憶體
52a...揮發性半導體記憶體
60...作業系統
61...資料固有資訊管理部
62...記憶體使用資訊管理部
631~63n...資料固有資訊
65...記憶體使用資訊
66...記憶體固有資訊
SD1~SD4...序列式資料
[圖1]圖1係揭示關於第1實施形態之資訊處理裝置的詳細構造之一例的區塊圖。
[圖2]圖2係揭示關於第1實施形態之資訊處理裝置的回寫之一例的流程圖。
[圖3]圖3係揭示關於第1實施形態之資訊處理裝置的提取之一例的流程圖。
[圖4]圖4係揭示關於第1實施形態之資訊處理裝置的復原處理之一例的流程圖。
[圖5]圖5係揭示關於第1實施形態之資訊處理裝置之記憶體管理單元的條目登記處理之一例的流程圖。
[圖6]圖6係揭示關於區別通常資料儲存區域與序列式資料儲存區域之第1實施形態的資訊處理裝置之一例的區塊圖。
[圖7]圖7係揭示關於第2實施形態之具備可有效連續存取之複數記憶體單元的非揮發性主記憶體之一例的區塊圖。
[圖8]圖8係揭示關於第2實施形態之非揮發性主記憶體的邏輯資料儲存位置與物理資料儲存位置的關係之第1例的區塊圖。
[圖9]圖9係揭示關於第2實施形態之非揮發性主記憶體的邏輯資料儲存位置與物理資料儲存位置的關係之第2例的區塊圖。
[圖10]圖10係揭示關於第2實施形態之非揮發性主記憶體的邏輯資料儲存位置與物理資料儲存位置的關係之第3例的區塊圖。
[圖11]圖11係揭示關於第3實施形態之資訊處理裝置的構造之一例的區塊圖。
[圖12]圖12係揭示關於第4實施形態之資訊處理裝置的構造之一例的區塊圖。
[圖13]圖13係揭示關於第5實施形態之程式、資料、狀態資訊被分開儲存於複數資料部(儲存區域)之非揮發性主記憶體之一例的區塊圖。
[圖14]圖14係揭示關於第6實施形態之資訊處理裝置的構造之一例的區塊圖。
[圖15]圖15係揭示關於第7實施形態之包含混合記憶體的資訊處理裝置之一例的區塊圖。
[圖16]圖16係揭示關於第7實施形態之資訊處理裝置所使用的程式及資料之一例的區塊圖。
1...資訊處理裝置
2...處理器
3...非揮發性主記憶體
7...核心程式
10...快取記憶體
11...寫入緩衝器
12...記憶體管理單元
13...狀態資訊生成部
14...存取控制部
15...位址轉換資訊
16...位址產生部
17...順序產生部
18...寫入控制部
19...順序資料
20...V旗標
21...資料
22...狀態資訊旗標
23...MMU資訊
24...狀態資訊
25...資料部
26...S旗標
27...連續區塊旗標
28...連續區塊數
60...作業系統
91~94...運算核心
201...記憶體管理裝置
Claims (16)
- 一種記憶體管理裝置,其特徵為具備:判斷部,係在從處理器被寫入至非揮發性半導體記憶體之資料產生時,判斷前述資料為被連續存取之序列式資料,或不是前述序列式資料之通常資料;位址產生部,係在藉由前述判斷部判斷前述資料是前述通常資料時,以已產生之位址所示之位置與前述通常資料之寫入位置不重疊之方式使第1寫入位址產生,在藉由前述判斷部判斷前述資料是前述序列式資料時,則使表示用以序列式儲存前述序列式資料之寫入位置的第2寫入位址產生;順序產生部,係產生表示已產生之寫入的先後之順序資訊;寫入控制部,係在藉由前述位址產生部而產生前述第1寫入位址時,對於前述第1寫入位址,將藉由前述順序產生部所產生之順序資訊建立對應而將前述通常資料加以寫入,在藉由前述位址產生部而產生前述第2寫入位址時,對於前述第2寫入位址,序列式寫入前述序列式資料;及記憶體管理單元,係將前述序列式資料相對之邏輯位址與物理位址與表示為前述序列式資料的旗標建立關聯並加以管理,進而,將前述序列式資料相對之前述邏輯位址與前述物理位址與前述序列式資料之連續數建立關聯並加以管理。
- 如申請專利範圍第1項所記載之記憶體管理裝置, 其中,前述位址產生部,係於用以儲存前述序列式資料之至少一個區塊區域的開頭,以儲存前述序列式資料的開頭之方式,產生前述第2寫入位址。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,前述寫入控制部,係將前述序列式資料,與表示為前述序列式資料的旗標建立關聯而寫入至前述非揮發性半導體記憶體。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,前述位址產生部,係在從前述處理器對前述非揮發性半導體記憶體之前述通常資料的寫入產生時,則序列式地產生位址,在前述被產生之位址為未使用時,作為前述第1寫入位址而選擇前述被產生之位址,在前述被產生之位址達到所定值時,則再次從初始值進行位址產生。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,前述寫入控制部,係將藉由前述處理器之狀態資訊生成部所生成之狀態資訊,與藉由前述順序產生部所產生之前述順序資訊建立關聯,並寫入至前述非揮發性半導體記憶體;更具備:復原部,係在前述處理器的復原時,依據前述順序資訊,從前述非揮發性半導體記憶體讀出最新的狀 態資訊,使用前述最新的狀態資訊來進行前述處理器的復原。
- 如申請專利範圍第5項所記載之記憶體管理裝置,其中,前述復原部,係藉由儲存於前述非揮發性半導體記憶體的程式被前述處理器執行而實現。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,前述寫入控制部,係將利用記憶體管理單元管理之記憶體管理資訊,與藉由前述順序產生部所產生之順序資訊建立關聯,並寫入至前述非揮發性半導體記憶體;更具備:復原部,係在前述處理器的復原時,依據前述順序資訊,從前述非揮發性半導體記憶體讀出最新的記憶體管理資訊,使用前述最新的記憶體管理資訊來進行前述處理器的復原。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,前述寫入控制部,係管理前述非揮發性半導體記憶體的區域相關之寫入次數資訊;進而具備:寫入次數檢查部,係禁止對於前述寫入次數資訊所示之寫入次數超過閾值的區域之寫入。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,更具備:異常檢測部,係進行對於前述非揮發性半導體記憶體 之錯誤的檢測,在錯誤可訂正時,訂正前述錯誤,在錯誤無法訂正時,則禁止對於前述錯誤產生的區域之寫入。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,前述非揮發性半導體記憶體,係包含複數種別的區域;前述位址產生部,係選擇前述非揮發性半導體記憶體之前述複數種別的區域中因應前述資料之種別的區域,在被選擇之前述區域內,進行寫入位址的選擇。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,具備:檢測部,係檢測出從前述處理器對前述非揮發性半導體記憶體之存取的性能降低;及性能降低抑制部,係在藉由前述檢測部檢測出性能降低時,執行垃圾收集處理。
- 如申請專利範圍第1項所記載之記憶體管理裝置,其中,管理對具備前述非揮發性半導體記憶體,與和前述非揮發性半導體記憶體種別不同之其他半導體記憶體的混合記憶體之存取;前述位址產生部,係以前述混合記憶體所具備之前述非揮發性半導體記憶體與前述其他半導體記憶體中,對信賴性或耐久性高之第1記憶體的存取次數或存取頻度,高於對信賴性或耐久性低之第2記憶體的存取次數或存取頻 度之方式,選擇記憶目的的記憶體。
- 一種記憶體管理方法,其特徵為具備:藉由記憶體管理裝置,在從處理器被寫入至非揮發性半導體記憶體之資料產生時,判斷前述資料為被連續存取之序列式資料,或不是前述序列式資料之通常資料的步驟;藉由前述記憶體管理裝置,在判斷前述資料是前述通常資料時,以已產生之位址所示之位置與前述通常資料之寫入位置不重疊之方式使第1寫入位址產生,在判斷前述資料是前述序列式資料時,則使表示用以序列式儲存前述序列式資料之寫入位置的第2寫入位址產生的步驟;藉由前述記憶體管理裝置,產生表示已產生之寫入的先後之順序資訊的步驟;藉由前述記憶體管理裝置,在產生前述第1寫入位址時,對於前述第1寫入位址,將已產生之順序資訊建立對應而將前述通常資料加以寫入,在產生前述第2寫入位址時,對於前述第2寫入位址,序列式寫入前述序列式資料的步驟;及藉由前述記憶體管理裝置,將前述序列式資料相對之邏輯位址與物理位址與表示為前述序列式資料的旗標建立關聯並加以管理,進而,將前述序列式資料相對之前述邏輯位址與前述物理位址與前述序列式資料之連續數建立關聯並加以管理的步驟。
- 如申請專利範圍第13項所記載之記憶體管理方 法,其中,產生前述第2寫入位址的步驟,係於用以儲存前述序列式資料之至少一個區塊區域的開頭,以儲存前述序列式資料的開頭之方式,產生前述第2寫入位址。
- 如申請專利範圍第13項所記載之記憶體管理方法,其中,前述序列式資料,係在前述序列式資料被寫入至前述非揮發性半導體記憶體時,與表示為前述序列式資料的旗標建立關聯並加以寫入。
- 如申請專利範圍第13項所記載之記憶體管理方法,其中,產生前述第1寫入位址的步驟,係在從前述處理器對前述非揮發性半導體記憶體之前述通常資料的寫入產生時,則序列式地產生位址,在前述被產生之位址為未使用時,作為前述第1寫入位址而選擇前述被產生之位址,在前述被產生之位址達到所定值時,則再次從初始值進行位址產生。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010015866A JP2011154547A (ja) | 2010-01-27 | 2010-01-27 | メモリ管理装置及びメモリ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201202926A TW201202926A (en) | 2012-01-16 |
TWI470426B true TWI470426B (zh) | 2015-01-21 |
Family
ID=44319162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100102651A TWI470426B (zh) | 2010-01-27 | 2011-01-25 | Memory management device and memory management method |
Country Status (5)
Country | Link |
---|---|
US (1) | US20130198437A1 (zh) |
JP (1) | JP2011154547A (zh) |
CN (1) | CN102667736B (zh) |
TW (1) | TWI470426B (zh) |
WO (1) | WO2011093170A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI417721B (zh) * | 2010-11-26 | 2013-12-01 | Etron Technology Inc | 衰減熱資料之方法 |
JP5687649B2 (ja) * | 2012-03-16 | 2015-03-18 | 株式会社東芝 | 半導体記憶装置の制御方法 |
TWI551987B (zh) * | 2012-03-15 | 2016-10-01 | 點序科技股份有限公司 | 快閃記憶體模組的位址對應方法 |
US9547594B2 (en) | 2013-03-15 | 2017-01-17 | Intel Corporation | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage |
US10248329B2 (en) * | 2014-04-08 | 2019-04-02 | Fujitsu Technology Solutions Intellectual Property Gmbh | Method of improving access to a main memory of a computer system, a corresponding computer system and a computer program product |
US20160103431A1 (en) * | 2014-10-14 | 2016-04-14 | Honeywell International, Inc. | System and method for point by point hot cutover of controllers and ios |
TWI604307B (zh) | 2014-10-31 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
JP6420139B2 (ja) * | 2014-12-26 | 2018-11-07 | シナプティクス・ジャパン合同会社 | 半導体デバイス |
JP6320318B2 (ja) * | 2015-02-17 | 2018-05-09 | 東芝メモリ株式会社 | 記憶装置及び記憶装置を含む情報処理システム |
US9760281B2 (en) * | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
CN105630404A (zh) * | 2015-04-02 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种使用mram的固态硬盘及读写方法 |
KR102450556B1 (ko) * | 2015-04-17 | 2022-10-04 | 삼성전자주식회사 | 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
US20170153842A1 (en) * | 2015-12-01 | 2017-06-01 | HGST Netherlands B.V. | Data allocation in hard drives |
JP2018049381A (ja) | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリ制御回路、メモリシステムおよびプロセッサシステム |
US9747106B1 (en) * | 2016-09-30 | 2017-08-29 | International Business Machines Corporation | Allocating multiple operand data areas of a computer instruction within a program buffer |
CN106681663A (zh) * | 2016-12-29 | 2017-05-17 | 记忆科技(深圳)有限公司 | 一种固态硬盘多流写入的方法 |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
US10552090B2 (en) | 2017-09-07 | 2020-02-04 | Pure Storage, Inc. | Solid state drives with multiple types of addressable memory |
US11593036B2 (en) * | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
WO2018231350A1 (en) | 2017-06-12 | 2018-12-20 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US10845866B2 (en) * | 2017-06-22 | 2020-11-24 | Micron Technology, Inc. | Non-volatile memory system or sub-system |
KR102398181B1 (ko) * | 2017-07-03 | 2022-05-17 | 삼성전자주식회사 | 쓰기 데이터를 위해 할당될 물리 어드레스를 미리 관리하는 스토리지 장치 |
US10401816B2 (en) | 2017-07-20 | 2019-09-03 | Honeywell International Inc. | Legacy control functions in newgen controllers alongside newgen control functions |
US10824367B2 (en) * | 2017-10-19 | 2020-11-03 | Seagate Technology Llc | Adaptive intrusion detection based on monitored data transfer commands |
KR20190056862A (ko) * | 2017-11-17 | 2019-05-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102549545B1 (ko) * | 2018-03-22 | 2023-06-29 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20200023758A (ko) * | 2018-08-27 | 2020-03-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN110968253B (zh) * | 2018-09-29 | 2023-06-06 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
WO2021016815A1 (zh) * | 2019-07-29 | 2021-02-04 | 深圳市大疆创新科技有限公司 | 数据包写入方法及装置、控制终端和可移动平台 |
US11269780B2 (en) | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11494311B2 (en) * | 2019-09-17 | 2022-11-08 | Micron Technology, Inc. | Page table hooks to memory types |
US11650742B2 (en) | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US10963396B1 (en) | 2019-09-17 | 2021-03-30 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
US11216364B2 (en) * | 2020-02-18 | 2022-01-04 | Micron Technology, Inc. | Sequential read optimization in a memory sub-system that programs sequentially |
US20220382478A1 (en) * | 2021-06-01 | 2022-12-01 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for page migration in memory systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003296177A (ja) * | 2002-04-03 | 2003-10-17 | Sony Corp | 記録装置および方法、記録媒体、並びにプログラム |
JP2006260468A (ja) * | 2005-03-18 | 2006-09-28 | Nec Electronics Corp | 半導体装置 |
JP2009048613A (ja) * | 2007-08-14 | 2009-03-05 | Samsung Electronics Co Ltd | ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法 |
JP2009512022A (ja) * | 2005-10-07 | 2009-03-19 | マイクロソフト コーポレーション | フラッシュメモリの管理 |
JP2009116601A (ja) * | 2007-11-06 | 2009-05-28 | Sony Corp | メモリ装置、メモリ管理方法、およびプログラム |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0546468A (ja) * | 1991-08-09 | 1993-02-26 | Toshiba Corp | メモリカード装置 |
US5897667A (en) * | 1993-11-16 | 1999-04-27 | Intel Corporation | Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner |
US5649102A (en) * | 1993-11-26 | 1997-07-15 | Hitachi, Ltd. | Distributed shared data management system for controlling structured shared data and for serializing access to shared data |
JPH08214248A (ja) * | 1995-01-31 | 1996-08-20 | Asahi Optical Co Ltd | スチルビデオカメラ |
US8171203B2 (en) * | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
US6311252B1 (en) * | 1997-06-30 | 2001-10-30 | Emc Corporation | Method and apparatus for moving data between storage levels of a hierarchically arranged data storage system |
JPH1131102A (ja) * | 1997-07-14 | 1999-02-02 | Toshiba Corp | データ記憶システム及び同システムに適用するアクセス制御方法 |
US6034891A (en) * | 1997-12-01 | 2000-03-07 | Micron Technology, Inc. | Multi-state flash memory defect management |
JPH11194899A (ja) * | 1997-12-26 | 1999-07-21 | Toshiba Corp | ディスク記憶システム及び同システムに適用するデータ更新方法 |
US7660941B2 (en) * | 2003-09-10 | 2010-02-09 | Super Talent Electronics, Inc. | Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories |
US7130962B2 (en) * | 2003-12-18 | 2006-10-31 | Intel Corporation | Writing cache lines on a disk drive |
JP4412722B2 (ja) * | 2004-07-28 | 2010-02-10 | 株式会社日立製作所 | リモートコピーシステム |
US7769974B2 (en) * | 2004-09-10 | 2010-08-03 | Microsoft Corporation | Increasing data locality of recently accessed resources |
JP2006099853A (ja) * | 2004-09-29 | 2006-04-13 | Hitachi Global Storage Technologies Netherlands Bv | 記録再生装置 |
US7873596B2 (en) * | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
JP2008530683A (ja) * | 2005-02-11 | 2008-08-07 | サンディスク アイエル リミテッド | Nandフラッシュメモリ・システム・アーキテクチャ |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
US7761766B2 (en) * | 2005-11-15 | 2010-07-20 | I365 Inc. | Methods and apparatus for modifying a backup data stream including logical partitions of data blocks to be provided to a fixed position delta reduction backup application |
US7617361B2 (en) * | 2006-03-29 | 2009-11-10 | International Business Machines Corporation | Configureable redundant array of independent disks |
US8601223B1 (en) * | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
US8543792B1 (en) * | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
JP4957283B2 (ja) * | 2007-02-21 | 2012-06-20 | セイコーエプソン株式会社 | メモリを制御するメモリコントローラ、メモリの制御方法。 |
US8037112B2 (en) * | 2007-04-23 | 2011-10-11 | Microsoft Corporation | Efficient access of flash databases |
KR101464338B1 (ko) * | 2007-10-25 | 2014-11-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 |
US7822731B1 (en) * | 2008-03-28 | 2010-10-26 | Emc Corporation | Techniques for management of information regarding a sequential stream |
KR101038167B1 (ko) * | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
KR101570179B1 (ko) * | 2008-12-08 | 2015-11-18 | 삼성전자주식회사 | 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템 |
JP2010165251A (ja) * | 2009-01-16 | 2010-07-29 | Toshiba Corp | 情報処理装置及びプロセッサ並びに情報処理方法 |
JP4719290B2 (ja) * | 2009-06-15 | 2011-07-06 | 東芝メモリシステムズ株式会社 | 情報処理システム |
US20110004720A1 (en) * | 2009-07-02 | 2011-01-06 | Chun-Ying Chiang | Method and apparatus for performing full range random writing on a non-volatile memory |
US20120159098A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Garbage collection and hotspots relief for a data deduplication chunk store |
-
2010
- 2010-01-27 JP JP2010015866A patent/JP2011154547A/ja active Pending
-
2011
- 2011-01-18 CN CN201180004861.1A patent/CN102667736B/zh not_active Expired - Fee Related
- 2011-01-18 WO PCT/JP2011/050738 patent/WO2011093170A1/ja active Application Filing
- 2011-01-25 TW TW100102651A patent/TWI470426B/zh not_active IP Right Cessation
-
2012
- 2012-07-27 US US13/560,206 patent/US20130198437A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003296177A (ja) * | 2002-04-03 | 2003-10-17 | Sony Corp | 記録装置および方法、記録媒体、並びにプログラム |
JP2006260468A (ja) * | 2005-03-18 | 2006-09-28 | Nec Electronics Corp | 半導体装置 |
JP2009512022A (ja) * | 2005-10-07 | 2009-03-19 | マイクロソフト コーポレーション | フラッシュメモリの管理 |
JP2009048613A (ja) * | 2007-08-14 | 2009-03-05 | Samsung Electronics Co Ltd | ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法 |
JP2009116601A (ja) * | 2007-11-06 | 2009-05-28 | Sony Corp | メモリ装置、メモリ管理方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
TW201202926A (en) | 2012-01-16 |
JP2011154547A (ja) | 2011-08-11 |
CN102667736A (zh) | 2012-09-12 |
US20130198437A1 (en) | 2013-08-01 |
CN102667736B (zh) | 2015-01-14 |
WO2011093170A1 (ja) | 2011-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI470426B (zh) | Memory management device and memory management method | |
US8255614B2 (en) | Information processing device that accesses memory, processor and memory management method | |
KR101494051B1 (ko) | 불휘발성 메모리 시스템들을 위한 위브 시퀀스 카운터 | |
KR101818578B1 (ko) | 비휘발성 메모리를 갖는 시스템을 위한 동적 및 정적 데이터의 처리 | |
JP5702348B2 (ja) | 不揮発性メモリを有するシステムの非正常シャットダウンの取り扱い | |
US9239785B2 (en) | Stochastic block allocation for improved wear leveling | |
US20110055464A1 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
US9830257B1 (en) | Fast saving of data during power interruption in data storage systems | |
US20150127889A1 (en) | Nonvolatile memory system | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
CN105786722B (zh) | 基于异构混合内存的nvm内存擦写控制方法和系统 | |
JP2016085677A (ja) | メモリ管理方法、メモリ管理プログラム及び情報処理装置 | |
JP5858081B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP6260395B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
US7996598B2 (en) | Memory management module | |
Lee et al. | A-PLR: accumulative backup of mapping information for power loss recovery | |
JP2007172066A (ja) | メモリコントローラ及びフラッシュメモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |