TWI460588B - Memory management device and memory information processing device - Google Patents
Memory management device and memory information processing device Download PDFInfo
- Publication number
- TWI460588B TWI460588B TW099106706A TW99106706A TWI460588B TW I460588 B TWI460588 B TW I460588B TW 099106706 A TW099106706 A TW 099106706A TW 99106706 A TW99106706 A TW 99106706A TW I460588 B TWI460588 B TW I460588B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- volatile semiconductor
- semiconductor memory
- information
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
-
- 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/0653—Monitoring storage devices or systems
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/205—Hybrid memory, e.g. using both volatile and 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係關於一種管理對於記憶體之存取之記憶體管理裝置。
於先前之資訊處理裝置中,作為處理器之主記憶裝置(主記憶體),例如使用DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)等揮發性半導體記憶體。進而,先前之資訊處理裝置中,與揮發性半導體記憶體組合而將非揮發性半導體記憶體用作輔助記憶裝置。
於日本專利特開2008-242944公報(文獻1)中提出有一種綜合記憶體管理裝置。該綜合記憶體管理裝置中,作為相對於MPU(Micro Processor Unit,微處理機單元)之主記憶體,使用NAND(Not AND,反及)型快閃記憶體。進而,專利文獻1中,MPU之主快取記憶體、次要快取記憶體、作為主記憶體之NAND型快閃記憶體係於同一記憶體階層中進行處理。綜合記憶體管理裝置之快取控制器除了執行對於主快取記憶體及次要快取記憶體之記憶體管理以外,還執行對於主記憶體之記憶體管理。
日本專利特開平7-146820號公報(文獻2)中,揭示有採用快閃記憶體作為資訊處理裝置之主記憶裝置之技術。專利文獻2中,於系統之記憶體匯流排中,經由作為揮發性記憶體之快取記憶體,而連接有快閃記憶體。於快取記憶體中設置有位址陣列,該位址陣列對儲存於該快取記憶體中之資料之位址或存取履歷等資訊進行記錄。控制器參照存取目的地之位址,將快取記憶體或快閃記憶體之資料供給至記憶體匯流排,或者儲存記憶體匯流排之資料。
於日本專利特開2001-266580號公報(文獻3)中,揭示有可將種類不同之半導體記憶體裝置連接於共用之匯流排之發明。
該專利文獻3之半導體記憶體裝置包括隨機存取記憶體晶片、及包含上述隨機存取記憶體晶片之封包。上述封包具有將上述隨機存取記憶體晶片電性連結於外部裝置之複數個接腳。複數個接腳提供對於上述隨機存取記憶體、與電性刪除及可程式之非揮發性半導體記憶體共用之記憶體功能。上述複數個接腳之各個排列於非揮發性半導體記憶體之對應之接腳之位置。
本發明係提供一種可有效使用非揮發性半導體記憶體之記憶體管理裝置。
本發明之一態樣之記憶體管理裝置係對應來自處理器之寫入請求及讀出請求,控制對於包含非揮發性半導體記憶體及揮發性半導體記憶體之主儲存記憶體之寫入及讀出。記憶體管理裝置包括:著色資訊保持部,其係保持根據寫入至上述非揮發性半導體記憶體及上述揮發性半導體記憶體之至少一者中之寫入對象資料之資料特性而生成之著色資訊;以及寫入管理部,其係參照上述著色資訊,自上述非揮發性半導體記憶體及上述揮發性半導體記憶體決定寫入上述寫入對象資料之區域。
根據本發明,可提供一種能夠有效地使用非揮發性半導體記憶體之記憶體管理裝置。
以下,一面參照圖式一面對本發明之各實施形態進行說明。再者,於以下之說明中,對大致或實質相同之功能及構成要素附加相同符號,並視需要而進行說明。
(第1實施形態)
參照圖1,對本發明之第1實施形態之記憶體管理裝置1及資訊處理裝置100進行說明。圖1係表示本實施形態之記憶體管理裝置及資訊處理裝置之構成之一例之方塊圖。
資訊處理裝置100包括記憶體管理裝置1、混合主記憶體2、及處理器3a、3b、3c。
處理器3a、3b、3c例如為MPU(Micro Processor Unit,微處理機單元)或GPU(Graphic Processor Unit,繪圖處理單元)。處理器3a、3b、3c分別包括主快取記憶體4a、4b、4c與次要快取記憶體5a、5b、5c。處理器3a、3b、3c分別執行程序6a、6b、6c,並處理各種資料。處理器3a、3b、3c於執行程序6a、6b、6c時,藉由虛擬位址指定資料。
處理器3a、3b、3c於將資料(寫入對象資料)寫入至混合主記憶體2中之情形時,產生寫入請求。又,處理器3a、3b、3c於將資料(讀出對象資料)自混合主記憶體2中讀出之情形時,產生讀出請求。
處理器3a、3b、3c分別包括將虛擬位址轉換為MPU或GPU之實體位址(相對於混合主記憶體2之邏輯位址)之分頁表(未圖示)。處理器3a、3b、3c於將資料寫入至主快取記憶體4a、4b、4c、次要快取記憶體5a、5b、5c、或混合主記憶體2中之情形時,藉由分頁表將虛擬位址轉換為邏輯位址,並藉由邏輯位址指定寫入對象資料。同樣地,處理器3a、3b、3c於將資料自主快取記憶體4a、4b、4c、次要快取記憶體5a、5b、5c、或混合主記憶體2中讀出之情形時,藉由分頁表將虛擬位址轉換為邏輯位址,並藉由邏輯位址指定讀出對象資料。
再者,以下,將對於主快取記憶體4a、4b、4c、次要快取記憶體5a、5b、5c、或混合主記憶體2之寫入、讀出總稱而表達為「存取」。
記憶體管理裝置1係管理處理器3a、3b、3c對於混合主記憶體2之存取(寫入、讀出)。記憶體管理裝置1包括處理部15、工作記憶體16、及資訊記憶部17。記憶體管理裝置1將下述記憶體使用資訊11、記憶體固有資訊12、位址轉換資訊13、著色表14儲存於資訊記憶部17中。儲存於記憶體管理裝置1之資訊記憶部17中之著色表14亦可為儲存於非揮發性半導體記憶體9、10中之著色表14之一部分。例如,亦可將儲存於非揮發性半導體記憶體9、10中之著色表14中、頻繁使用之著色表14之資料儲存於記憶體管理裝置1之資訊記憶部17中。記憶體管理裝置1參照著色表14等,管理處理器3a、3b、3c對於混合主記憶體2之存取。關於詳細內容將於下文敍述。
混合主記憶體2包括第1記憶體、第2記憶體、及第3記憶體。第1記憶體之可存取之上限次數較第2記憶體更多。第2記憶體之可存取之上限次數較第3記憶體更多。此處所謂可存取之上限次數,係指統計上預想之期望值,需注意的是,並非指一直保證該關係。又,第1記憶體之資料傳輸速度(存取速度)亦可較第2記憶體更大。
本實施形態中,第1記憶體係作為揮發性半導體記憶體8。作為揮發性半導體記憶體8,例如,使用如DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)、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程度之高速隨機存取,且可存取之上限次數無實質性限制,則亦可採用MRAM(Magnetoresistive Random Access Memory,磁阻式隨機存取記憶體)、FeRAM(Ferroelectric Random Access Memory,鐵電式隨機存取記憶體)等非揮發性隨機存取記憶體。
第2記憶體係作為非揮發性半導體記憶體9。作為非揮發性半導體記憶體9,例如,使用SLC(Single Level Cell,單級單元)型NAND型快閃記憶體。SLC與MLC(Multi Level Cell,多級單元)相比較,讀出及寫入為高速,且可靠性高。然而,SLC與MLC相比較,位元成本高,且不趨向於大容量化。
第3記憶體係作為非揮發性半導體記憶體10。作為非揮發性半導體記憶體10,例如,使用MLC型NAND型快閃記憶體。MLC與SLC相比較,讀出及寫入為低速,且可靠性低。然而,MLC與SLC相比較,位元成本低,且趨向於大容量化。
再者,本實施形態中,非揮發性半導體記憶體9為SLC型NAND型快閃記憶體,非揮發性半導體記憶體10為MLC型NAND型快閃記憶體,例如,非揮發性半導體記憶體9可為2 bit/Cell之MLC型NAND型快閃記憶體,非揮發性半導體記憶體10可為3 bit/Cell之MLC型NAND型快閃記憶體。
所謂可靠性,係指自記憶裝置中讀出資料之情形時不易引起資料之缺損之程度(耐久性)。SLC之耐久性較MLC之耐久性更高。此處,所謂耐久性高,係指可存取之上限次數多,所謂耐久性低,係指可存取之上限次數少。
SLC可將1位元之資訊記憶於一個記憶胞中。另一方面,MLC可將2位元以上之資訊記憶於一個記憶胞中。即,本實施形態之混合主記憶體2中,關於耐久性,依順為揮發性記憶體8之耐久性第1高,非揮發性半導體記憶體9之耐久性第2高,非揮發性半導體記憶體10之耐久性第3高。
NAND型快閃記憶體等非揮發性半導體記憶體9、10,與揮發性半導體記憶體8相比較,可實現廉價且大容量化。作為非揮發性半導體記憶體9、10,例如亦可使用如NOR型快閃記憶體等般之其他種類之快閃記憶體、PRAM(Phase change memory,相變記憶體)、ReRAM(Resistive Random access memory,電阻式隨機存取記憶體),以代替NAND型快閃記憶體。
再者,亦可採用MLC作為第3記憶體,且採用可利用模擬SLC模式之MLC作為第2記憶體,該模擬SLC模式僅使用MLC之下位頁面進行資料寫入。於該情形時,可僅由共用之晶片構成第2記憶體與第3記憶體,從而於製造成本方面較為有利。
若對利用非揮發性半導體記憶體9、10作為主記憶體之情形、與利用非揮發性半導體記憶體9、10作為輔助記憶裝置之情形進行比較,則於使用非揮發性半導體記憶體9、10作為主記憶體之情形時對該非揮發性半導體記憶體9、10之存取頻率變高。於本實施形態中,實現包括將揮發性半導體記憶體8、SLC之非揮發性半導體記憶體9及MLC之非揮發性半導體記憶體10混合集成而作為主記憶體之混合主記憶體2之資訊處理裝置。混合主記憶體2係不同機種混合存在型之主記憶裝置,且藉由記憶體管理裝置1管理資料之配置。
於非揮發性半導體記憶體9、10之特定區域中,記憶有記憶體使用資訊11、記憶體固有資訊12、位址轉換資訊13、著色表14。
記憶體使用資訊11包含非揮發性半導體記憶體9、10之各頁面區域之寫入產生次數及讀出產生次數、各區塊區域之刪除次數、及使用中區域大小。
記憶體固有資訊12包含揮發性半導體記憶體8之記憶體大小、非揮發性半導體9、10之記憶體大小、非揮發性半導體記憶體9、10之頁面大小及區塊大小、及各區域之可存取之上限次數(可寫入之上限次數、可讀出之上限次數、可刪除之上限次數)。此處,所謂頁面大小,係指非揮發性半導體記憶體9、10之寫入、讀出之資料大小之單位。所謂區塊大小,係指非揮發性半導體記憶體9、10之資料刪除大小之單位。於非揮發性半導體記憶體9、10中,區塊大小大於頁面大小。
位址轉換資訊13係將由處理器3a、3b、3c所提供之邏輯位址轉換為與邏輯位址相對應之實體位址之資訊。關於位址轉換資訊13之詳細內容將於下文敍述。
著色表14係保持每個資料之著色資訊之表。著色資訊包含靜態色彩資訊與動態色彩資訊。詳細內容將於下文敍述。
其次,參照圖2,對本實施形態之記憶體管理裝置與作業系統進一步進行說明。圖2係表示本實施形態之記憶體管理裝置1及資訊處理裝置100之構成之一例之方塊圖。圖2中,圖1之處理器3a、3b、3c中以處理器3b為代表進行說明,其他處理器3a、3c亦相同。
作業系統27係藉由處理器3b執行。作業系統27由處理器3b所執行,且具有對儲存於資訊記憶部17中之著色表14進行存取之權限。
記憶體管理裝置1之處理部15包括位址管理部18、讀出管理部19、寫入管理部20、著色資訊管理部21、記憶體使用資訊管理部22、及再配置部23。進而,著色資訊管理部21包括存取頻率算出部24及動態色彩資訊管理部25。
處理部15根據記憶於資訊記憶部17中之資訊,於使用工作記憶體16之同時執行各種處理。
工作記憶體16例如用作緩衝器,且用作各種資料之轉換等之作業區域。
處理部15所包含之上述功能區塊,可作為硬體及軟體(例如作業系統27、韌體等)之任一者、或兩者之組合而實現。該等功能區塊作為硬體實現還是作為軟體實現,依賴於具體之實施形態、或資訊處理裝置100整體被規定之設計限制。本領域技術人員可針對具體之各實施形態,利用各種方法實現該等功能,而決定如此之實現係包含於本發明之範疇中。再者,關於以下說明中所使用之功能區塊亦相同。
位址管理部18對邏輯位址分配實體位址,並記憶於位址轉換資訊13中。藉此,處理部15藉由參照位址轉換資訊13,可獲取與邏輯位址相對應之實體位址。
讀出管理部19於處理器3a、3b、3c產生讀出請求之情形時,對混合主記憶體2管理讀出對象資料之讀出處理。
寫入管理部20於處理器3a、3b、3c產生寫入請求之情形時,對混合主記憶體2管理寫入對象資料之寫入處理。
著色資訊管理部21管理著色表14。
記憶體使用資訊管理部22管理混合主記憶體2之記憶體使用資訊11。
再配置部23與處理器3a、3b、3c之動作非同步地,根據著色表14中所包含之著色資訊,而進行配置於與任意之邏輯位址相對應之實體位址的資料之再配置。再配置部23例如根據下述動態色彩資訊,將非揮發性半導體記憶體10中所包含之資料中的讀出頻率、寫入頻率高之資料,定期性地再配置於非揮發性半導體記憶體9中。又,再配置部23例如根據動態色彩資訊,將非揮發性半導體記憶體9中所包含之資料中的讀出頻率、寫入頻率低之資料,定期性地再配置於非揮發性半導體記憶體10中。同樣地,再配置部23亦可於揮發性半導體記憶體8、非揮發性半導體記憶體9、10之間進行資料之再配置。下述寫入管理部20之寫入處理,係於每次產生資料之更新時,進行寫入目的地記憶體區域之判斷處理與寫入目的地區塊區域之判斷處理,藉此進行再配置。相對於此,再配置部23定期地進行資料之再配置。於再配置部23進行資料之再配置之情形時,寫入管理部20及讀出管理部19直至再配置結束為止不進行動作。再配置部23之動作開始之觸發,亦可為由開發者設定之週期、或可由用戶介面而設定之週期。又,於資訊處理裝置100成為停止狀態時再配置部23亦可動作。
存取頻率算出部24係根據著色表14中所包含之著色資訊,算出資料之存取頻率資訊(動態寫入頻率DW_color、動態讀出頻率DR_color)。
動態色彩資訊管理部25管理著色表14中所包含之動態色彩資訊。
其次,參照圖3,對本實施形態之混合主記憶體進行說明。圖3係表示本實施形態之混合主記憶體2之記憶體映像之一例之圖。
混合主記憶體2包括揮發性半導體記憶體8(DRAM區域)、非揮發性半導體記憶體9(SLC區域)、及非揮發性半導體記憶體10(2 bit/Cell區域、3 bit/Cell區域、4 bit/Cell區域)。2 bit/Cell區域、3 bit/Cell區域、4 bit/Cell區域構成MLC區域。將DRAM區域、SLC區域、2 bit/Cell區域、3 bit/Cell區域、4 bit/Cell區域總稱為記憶體區域。
揮發性半導體記憶體8例如包含128 MByte之DRAM區域。
非揮發性半導體記憶體9例如包含2 GByte之B區域與128 MByte之B冗餘區塊區域、2 GByte之C區域與128 MByte之C冗餘區塊區域。非揮發性半導體記憶體9之各記憶體區域係SLC型NAND型快閃記憶體。
非揮發性半導體記憶體10例如包含2 bit/Cell區域、3 bit/Cell區域、及4 bit/Cell區域,其中2 bit/Cell區域包含4 GByte之A區域與128 MByte之A冗餘區塊區域,3 bit/Cell區域包含4 GByte之D區域與128 MByte之D冗餘區塊區域,4 bit/Cell區域包含4 GByte之E區域與128 MByte之E冗餘區塊區域。非揮發性半導體記憶體10之各記憶體區域為MLC型NAND型快閃記憶體。如圖3所示,記憶體區域中分配有實體位址。
於混合主記憶體2為上述構成之情形時,記憶體固有資訊12包含:1)混合主記憶體2之記憶體空間內之揮發性半導體記憶體8(DRAM區域)之記憶體大小;2)混合主記憶體2之記憶體空間內之非揮發性半導體記憶體9、10之記憶體大小;3)構成混合主記憶體2之記憶體空間之NAND型快閃記憶體之區塊大小、頁面大小;4)作為非揮發性半導體記憶體9內之SLC區域(二元區域)而分配之記憶體空間資訊(包含可刪除之上限次數、可讀出之上限次數、可寫入之上限次數);5)分配於2 bit/Cell區域中之記憶體空間資訊(包含可刪除之上限次數、可讀出之上限次數、可寫入之上限次數);6)分配於3 bit/Cell區域中之記憶體空間資訊(包含可刪除之上限次數、可讀出之上限次數、可寫入之上限次數);7)分配於4 bit/Cell區域中之記憶體空間資訊(包含可刪除之上限次數、可讀出之上限次數)。
其次,參照圖4,對本實施形態之位址轉換資訊(位址轉換表)13進行說明。圖4係表示本實施形態之位址轉換資訊13之一例之圖。
位址轉換資訊13中,以表格形式管理邏輯位址、揮發性半導體記憶體8之實體位址、非揮發性半導體記憶體9、10之實體位址、有效/無效旗標。
位址轉換資訊13之各進入點(entry)中,註冊有邏輯位址、與該邏輯位址相對應之揮發性半導體記憶體8之實體位址與非揮發性半導體記憶體9、10之實體位址中之至少一個、及有效/無效旗標。
有效/無效旗標係表示各進入點是否有效之資訊。有效/無效旗標為1時表示有效,為0時表示無效。進入點之有效/無效旗標之初始值為0。有效/無效旗標為0之進入點係未映射有邏輯位址之進入點,或者,雖映射有邏輯位址但已被刪除之進入點。有效/無效旗標為1之進入點中,映射有邏輯位址,且於揮發性半導體記憶體8與非揮發性半導體記憶體9、10中之至少一者中,存在與邏輯位址相對應之實體位址。
再者,圖4所示之位址轉換資訊13之例中,以位址轉換資訊13之一個進入點管理邏輯位址、揮發性半導體記憶體8之實體位址、非揮發性半導體記憶體9、10之實體位址,例如,位址轉換資訊13中亦可管理邏輯位址與非揮發性半導體記憶體8之實體位址,邏輯位址與揮發性半導體記憶體9、10之實體位址亦可由其他標籤RAM(Random Access Memory,隨機存取記憶體)管理。於該情形時,當自邏輯位址向實體位址轉換時,首先,參照標籤RAM,於標籤RAM中並無與該邏輯位址相對應之實體位址之情形時,參照位址轉換資訊13。
其次,參照圖5,對本實施形態之著色表14進行說明。圖5係表示本實施形態之著色表14之一例之圖。
本實施形態中,對每個資料賦予著色資訊。被賦予著色資訊之資料之資料大小單位例如為讀出、寫入之最小單位。例如,讀出、寫入之最小單位為NAND型快閃記憶體之頁面大小。著色表14使著色資訊與每個資料相關聯,且以進入點為單位儲存著色資訊。著色表14之各進入點中附有索引。所謂索引係指根據邏輯位址而生成之值。若記憶體管理裝置1之讀出管理部19、寫入管理部20、著色資訊管理部21、再配置部23等被賦予指定資料之邏輯位址,則參照藉由與邏輯位址相對應之索引而管理之進入點,獲取資料之著色資訊。
著色資訊包含靜態色彩資訊、與動態色彩資訊。靜態色彩資訊係根據被賦予著色資訊之該資料之特性而生成之資訊,且係成為決定該資料之混合主記憶體2上之配置(寫入)區域之提示之提示資訊之一種。動態色彩資訊係包含資料之讀出與寫入之次數與頻率之至少一者之資訊。亦可使用動態色彩資訊作為提示資訊。
其次,參照圖6,對靜態色彩資訊進行說明。圖6係用以說明本實施形態之靜態色彩資訊之一例之圖。
靜態色彩資訊包含該資料之「重要度」、「讀出頻率、寫入頻率」、「資料壽命」中之至少一個資訊。圖6中所說明之讀出頻率與下述靜態讀出頻率相對應,寫入頻率與靜態寫入頻率相對應。
所謂「重要度」,係指根據資料之種類等,推測該資料之重要性而設定之值。
所謂「讀出頻率、寫入頻率」,係指根據資料之種類等,推測讀出或寫入該資料之頻率而設定之值。
所謂「資料壽命」,係指根據資料之種類等,推測該資料未被刪除而用作資料之期間(資料之壽命)而設定之值。
「重要度」、「讀出頻率、寫入頻率(讀寫頻率)」、「資料壽命」例如藉由保持於檔案系統中之檔案之特性、或主要由程式使用之區域之特性而推測。
所謂保持於檔案系統中之檔案之特性,係指藉由包含被賦予著色資訊之該資料的檔案資料的附加於檔案中之資料屬性而判斷之特性。附加於檔案中之資料屬性中包含檔案之標頭資訊、檔案名、檔案之位置、檔案管理資料(保持於inode中之資訊)等。例如,作為檔案之位置,於檔案位於檔案系統之垃圾箱之情形時,可預測該檔案中所包含之資料之特性為重要性低、讀出之頻率、寫入之頻率低、且資料之壽命短。根據該特性,推測該資料之著色資訊為寫入頻率低、讀出頻率低、資料之壽命短。
程式中暫時使用之區域之特性包括根據對被賦予著色資訊之該資料進行處理的程式之程式執行時之資料類別而判斷之特性、及根據程式檔案生成時之資料類別而判斷之特性。
所謂程式執行時之資料類別,例如係指於程式執行時,根據該資料映射於堆疊區域、堆區域、本文區域之哪一個區域而分類之資料類別。例如,可預測映射於堆疊區域、堆區域之資料之特性為寫入之頻率高、讀出之頻率高、重要性高、資料壽命短。根據該特性,可推測該資料之靜態著色資訊為寫入頻率高、讀出頻率高、重要度高、資料壽命短。例如,於映射本文區域之資料之特性為唯讀之資料,因而可預測為寫入之頻率低、讀出之頻率高、重要性高、資料之壽命長。根據該特性,可推測該資料之靜態著色資訊為寫入頻率高、讀出頻率高、重要度高、資料壽命長。
所謂程式檔案生成時之資料類別預測,係指於程式生成時,推測由該程式所處理之資料之重要度、讀寫頻率、資料壽命。
又,靜態色彩資訊亦可藉由用戶介面而由用戶直接設定。
其次,參照圖7,表示基於著色資訊之資料之寫入處理之一例。圖7係表示資料配置之處理之一例之流程圖。
如上述般,本實施形態中,混合主記憶體2包括揮發性半導體記憶體8、非揮發性半導體記憶體9、10。於將資料配置於混合主記憶體2之情形時,根據著色資訊,決定揮發性半導體記憶體8、非揮發性半導體記憶體9、10中之哪一個記憶體區域為配置目的地。
首先,於產生資料(寫入對象資料)之寫入請求之情形時,寫入管理部20參照被賦予至寫入對象資料之著色資訊(步驟S1)。
其次,寫入管理部20參照著色資訊之「資料壽命」,進行寫入對象資料之資料壽命之判斷(步驟S2)。
於判斷為寫入對象資料之資料壽命短之情形時(步驟S3),寫入管理部20選擇揮發性半導體記憶體8作為配置有寫入對象資料之記憶體區域(步驟S4),於揮發性半導體記憶體8中決定配置有寫入對象資料之記憶體區域(步驟S12)。
於判斷為寫入對象資料之資料壽命長之情形時(步驟S3),寫入管理部20參照寫入對象資料之著色資訊之「重要度」,進行寫入對象資料之重要度之判斷(步驟S5)。
於判斷為寫入對象資料之重要度高之情形時(步驟S6),寫入管理部20選擇耐久性(可靠性)高之非揮發性半導體記憶體9作為配置有寫入對象資料之記憶體區域(步驟S7)。進而,寫入管理部20根據寫入對象資料之著色資訊,進行是否將寫入對象資料快取至揮發性半導體記憶體8中(著色資訊之快取方式)之判斷(步驟S8),且於非揮發性半導體記憶體9中決定配置有寫入對象資料之記憶體區域(步驟S12)。
於判斷為寫入對象資料之重要度低之情形時(步驟S6),寫入管理部20選擇耐久性低之非揮發性半導體記憶體10作為配置有寫入對象資料之記憶體區域(步驟S9)。進而,寫入管理部20藉由寫入對象資料之著色資訊(動態色彩資訊、靜態色彩資訊),而進行寫入對象資料之讀出頻率、寫入頻率之判斷(步驟S10)。
於判斷為寫入對象資料之讀出頻率、寫入頻率高之情形時(步驟S11),寫入管理部20選擇非揮發性半導體記憶體9作為配置有寫入對象資料之記憶體區域(步驟S7)。進而,寫入管理部20根據寫入對象資料之著色資訊,進行是否將寫入對象資料快取至揮發性半導體記憶體8中(著色資訊之快取方式)之判斷(步驟S8),且於非揮發性半導體記憶體9中決定配置有寫入對象資料之記憶體區域(步驟S12)。
於判斷為寫入對象資料之讀出頻率、寫入頻率低之情形時(步驟S11),寫入管理部20根據寫入對象資料之著色資訊,進行是否將寫入對象資料快取至揮發性半導體記憶體8中(著色資訊之快取方式)之判斷(步驟S8),且於非揮發性半導體記憶體10中決定配置有寫入對象資料之記憶體區域(步驟S12)。
其次,參照圖8,對本實施形態之著色表14之構成例進行說明。圖8係表示本實施形態之著色表14之構成之一例之圖。圖8所示之著色表14中,對將圖5、圖6所示之著色資訊中特別是讀出頻率、寫入頻率、資料壽命用作著色資訊之情形進行說明。
再者,作為著色資訊,亦可使用「重要度」、「讀出頻率、寫入頻率」、「資料壽命」之任一個,或亦可將任意兩個組合使用,或亦可將全部組合使用。進而,亦可將圖6中未表示之其他著色資訊另外定義而使用。
著色表14係使著色資訊與每個資料相關聯,且以進入點為單位而保持之表。藉由著色表14使著色資訊相關聯之資料之資料大小,例如為讀出、寫入之最小之資料大小。例如,讀出、寫入之最小之資料大小為NAND型快閃記憶體之頁面大小。以下,使藉由著色表14而使著色資訊相關聯之資料之資料大小為頁面大小進行說明,但並不限定於此。
著色表14之各進入點中附有索引。
保持於著色表14中之著色資訊包含靜態色彩資訊、與動態色彩資訊。
所謂索引係指根據邏輯位址而生成之值。記憶體管理裝置1之讀出管理部19、寫入管理部20、著色資訊管理部21、再配置部23等,若被賦予指定資料之邏輯位址,則參照藉由與邏輯位址相對應之索引而管理之進入點,藉此獲取資料之著色資訊。
靜態色彩資訊包含表示靜態寫入頻率之值SW_color、表示靜態讀出頻率之SR_color、資料壽命SL_color、生成資料之時刻ST_color。
此處,所謂靜態寫入頻率SW_color,係指根據資料之種類等,推測寫入該資料之頻率而設定之值。所謂靜態讀出頻率SR_color,係指根據資料之種類等,推測讀出該資料之頻率而設定之值。例如,靜態寫入頻率SW_color,越為推測寫入頻率高之資料,越設定高之值。例如,靜態讀出頻率SR_color,越為推測讀出頻率高之資料,越設定高之值。
所謂資料壽命SL_color,係指根據資料之種類等,推測該資料未被刪除而用作資料之期間(資料之壽命)而設定之值。
靜態色彩資訊係藉由生成資料之程式(程序)靜態地預先決定之值。又,資訊處理裝置100中所執行之作業系統27,亦可根據資料之檔案副檔名或檔案標頭等預測靜態色彩資訊。
動態色彩資訊包含資料之寫入次數DWC_color、資料之讀出次數DRC_color。此處,所謂資料之寫入次數DWC_color,係指將該資料寫入至混合主記憶體2中之次數。所謂資料之讀出次數DRC_color,係指將該資料自混合主記憶體2中讀出之次數。動態色彩資訊管理部25藉由資料之寫入次數DWC_color,而針對每個資料管理將該資料寫入至混合主記憶體2中之次數。動態色彩資訊管理部25藉由資料讀出次數DRC_color,而針對每個資料管理將該資料自混合主記憶體2中讀出之次數。如上述般,混合主記憶體2用作主記憶體。因此,由處理器3a、3b、3c所處理之資料被寫入至混合主記憶體2中,且自混合主記憶體2中讀出。動態色彩資訊管理部25於每次寫入資料時,使該資料之寫入次數DWC_color遞增。又,動態色彩資訊管理部25於每次讀出資料時,使該資料之讀出次數DRC_color遞增。
如下述般,存取頻率算出部24根據資料之寫入次數DWC_color,算出動態寫入頻率DW_color。存取頻率算出部24根據資料之讀出次數DRC_color,算出動態讀出頻率DR_color。
所謂動態寫入頻率DW_color,係指表示將該資料寫入至混合主記憶體2中之頻率之值。所謂動態讀出頻率DR_Color,係指表示將該資料自混合主記憶體2中讀出之頻率之值。關於動態寫入頻率DW_color與動態讀出頻率DR_color之算出方法,將於下文敍述。
如下述般,若自處理器3a、3b、3c對混合主記憶體2產生寫入請求、讀出請求,則記憶體管理裝置1藉由參照著色資訊,而決定寫入區域、讀出方式等。
其次,參照圖9、圖10,對本實施形態之靜態色彩資訊進行說明。圖9係表示相對於各種資料之靜態色彩資訊(靜態寫入頻率SW_color、靜態讀出頻率SR_color、資料壽命SL_color)之設定之第1例之圖。圖10係表示相對於各種資料之靜態色彩資訊(靜態寫入頻率SW_co1or、靜態讀出頻率SR_color、資料壽命SL_color)之設定之第2例之圖。
核心之本文區域,通常讀出之頻率高、寫入之頻率低。將作業系統27自身動作之本文區域之靜態讀出頻率SR_color設定為5,將靜態寫入頻率SW_color設定為1。又,作業系統27被預測為核心之本文區域之資料壽命SL_color長(LONG)。
另一方面,核心之資料區域,通常讀出之頻率、寫入之頻率均高。由此,作業系統27針對核心之資料區域,將靜態讀出頻率SR_color設定為5,將靜態寫入頻率SW_color設定為5。
動態地確保於核心之資料區域中,若資料不需要則會被刪除,故而資料壽命SL_color短(SHORT)。
用戶程式之本文區域,通常與自所有程序中可重入地調用之核心相比較,讀出之頻率低。然而,於程序成為主動之狀態下核心同樣讀出之頻率變高。因此,於用戶程式之本文區域中,將靜態寫入頻率SW_color設定為1,將靜態讀出頻率SR_color設定為4。關於用戶程式之本文區域,資料壽命SL_color處於至其程式被卸載為止之期間,因此一般變長。由此,關於用戶程式之本文區域,將資料壽命SL_color設定為長(LONG)。
於程式中動態地確保之區域大致分為兩類。首先一類為隨著程式之執行結束而被廢棄之資料(包含堆疊區域)。該等資料之資料壽命SL_color短,讀出之頻率與寫入之頻率高。因此,關於隨著程式之執行結束而被廢棄之資料,將靜態讀出頻率SR_color設定為4,將靜態寫入頻率SW_color設定為4。另一個於程式中動態地確保之區域係程式中為了新檔案而生成之區域。藉由程式而生成之資料之資料壽命SL_color長,且讀出與寫入之頻率依賴於所生成之檔案之類別。
關於作為藉由程序而參照之檔案來處理之資料,將檔案之資料壽命SL_color設定為長。
例如對讀入檔案之副檔名以SYS、dll、DRV等所表示之系統檔案之情形進行說明。具有如此之副檔名之資料係於作業系統27執行各種處理之情形時所讀出之檔案。具有如此之副檔名之資料,於作業系統27安裝於混合主記憶體2上之情形時,若被寫入一次則之後幾乎不被更新。具有該等副檔名之檔案於檔案中雖然存取之頻率相對較高,但與程式(核心)之本文區域相比較,被預測為存取之頻率較低。因此,作業系統27將具有該等副檔名之資料之靜態寫入頻率SW_color設定為1,將靜態讀出頻率SR_color設定為3。該設定表示根據資料而預測之寫入之頻率極低,根據資料而預測之讀出之頻率較高。即,具有該等副檔名之資料被預測為於作業系統27之更新或安裝其他程式之情形時為可重寫數次之程度,且幾乎作為唯讀來處理。
使用編輯音訊檔案之程式之用戶較少。因此,例如,認為藉由MP3(Moving Picture Experts Group Audio Layer III,動態影像專家壓縮標準音訊層面3)等而壓縮之音樂資料之寫入之頻率較低。認為音樂資料之讀出之頻率較寫入之頻率高。因此,將藉由MP3等而壓縮之音樂資料之靜態寫入頻率SW_color設定為1,將靜態讀出頻率SW_color設定為2。
使用編輯動態影像之程式之用戶較少。因此,例如,認為藉由MPEG(Moving Picture Experts Group,動態影像專家小組)等而壓縮之動態影像資料之寫入之頻率較低。認為動態影像資料之讀出之頻率較寫入之頻率高。因此,將藉由MP3等而壓縮之動態影像資料之靜態寫入頻率SW_color設定為1,將靜態讀出頻率SW_color設定為2。
使用編輯本文資料之程式之用戶較多。因此,例如,認為本文檔案之寫入之頻率及讀出之頻率較高。因此,將本文檔案之靜態寫入頻率SW_color設定為3,將靜態讀出頻率SW_color設定為3。
使用網頁瀏覽器之用戶較多。因此,認為瀏覽器快取檔案之讀出之頻率及寫入之頻率為音樂資料或動態影像資料等之媒體檔案以上。因此,將瀏覽器快取檔案之靜態寫入頻率SW_color設定為1,將靜態讀出頻率SW_color設定為3。
例如,將配置於如垃圾箱等般之存取頻率較低之目錄的檔案之靜態寫入頻率SW_color設定為1,將靜態讀出頻率SW_color設定為1。
如副檔名以JPEG(Joint Photographic Experts Group,聯合照相專家群)代表般之照片資料、及如副檔名以MOV代表般之電影資料,若被寫入一次則可被再次寫入之情形較少。預測如此之照片資料及電影資料根據程式而存取之頻率較少。因此,作業系統27對照片資料及電影資料之靜態寫入頻率SW_color及靜態讀出頻率SR_color設定較小的值。
其次,參照圖11,對本實施形態之著色表14之生成處理進行說明。圖11係表示著色表14之生成處理之一例之流程圖。著色表14係於系統之初始啟動時生成。著色表14配置於非揮發性半導體記憶體9、10上之任意之區域。配置有著色表14之編號,亦可介意偶記憶體管理裝置1之安裝而決定。
於步驟T1中,資訊處理裝置100接通電源並啟動。
於步驟T2中,著色資訊管理部21將著色表14之基底位址轉換為邏輯位址,並生成關於各資料之索引。
於步驟T3中,著色資訊管理部21將著色表14之基底位址設置於資訊記憶部17中。資訊記憶部17例如包含暫存器。著色表14之基底位址例如設置於著色表暫存器中。
其次,參照圖12,對本實施形態之著色表14之進入點之生成處理進行說明。圖12係表示著色表14之進入點之生成處理之一例之流程圖。
處理器3a、3b、3c確保用於執行程序6a、6b、6c之邏輯位址空間上之區域。於確保邏輯位址空間上之區域之階段中,對已確保之邏輯位址之位址轉換資訊13之有效/無效旗標設為0。實體位址相對於邏輯位址之分配,係於程序6a、6b、6c對經確保之邏輯位址空間之範圍內之邏輯位址存取(讀出、寫入)之階段進行。若進行實體位址相對於邏輯位址之分配,則將相對於與該邏輯位址相對應之資料之靜態色彩資訊註冊於著色表14中,並且對該邏輯位址之位址轉換資訊13之有效/無效旗標設為1。
首先,藉由處理器3a、3b、3c所執行之程序6a、6b、6c,發出用以配置新資料之邏輯位址空間上之區域之確保請求(步驟U1)。邏輯位址空間上之未使用區域由作業系統27管理,邏輯位址藉由作業系統27而決定。(步驟U2)
其次,若藉由程序6a、6b、6c生成新資料,則作業系統27根據新生成之資料之種類等,生成靜態色彩資訊(步驟U3)。靜態色彩資訊係針對所生成之資料之每個頁面大小而生成。例如,於所生成之資料之資料大小大於頁面大小之情形時,將資料分割為頁面大小,並針對分割後之每個頁面大小而生成靜態色彩資訊。以下,假想寫入對象資料之資料大小為頁面大小之情形而進行說明,但並不限定於此。
其次,作業系統27根據設置於資訊記憶部17中之基底位址,並參照著色表14(步驟U4)。
其次,作業系統27將所生成之靜態色彩資訊註冊於附有與已確保之邏輯位址相對應之索引的著色表14之進入點(步驟U5)。
藉由處理器3a、3b、3c所執行之程序6a、6b、6c,於藉由作業系統27進行之邏輯位址空間之確保成功後,對已確保之邏輯位址空間發出讀出請求、或寫入請求。此時,位址管理部18決定相對於產生寫入之邏輯位址之實體位址,該處理於之後進行說明。
根據以上之處理,於藉由處理器3a、3b、3c執行程序6a、6b、6c,而生成新資料並將新資料寫入至混合主記憶體2中之情形時,對新生成之資料生成著色資訊,並註冊於著色表14之新進入點中。藉此,可將新資料寫入至混合主記憶體2中。
其次,參照圖13、圖14,對著色表14之進入點之對齊進行說明。圖13係表示著色表14之進入點之對齊之第1例之圖。圖14係表示著色表14之進入點之對齊之第2例之圖。
著色表14之進入點與資料之最少之讀寫大小(例如NAND型快閃記憶體之頁面大小)相對應,程序6a、6b、6c於將資料映射於邏輯位址空間時,並不負責與資料之最少之讀寫大小對齊並進行映射。因此,存在相對於著色表14之一個進入點對應複數個資料之可能性。
於如此之情形時,如圖13所示,作業系統27將與一個進入點相對應之複數個資料中、被預測為讀出頻率及寫入頻率最高之資料作為代表。
或者,如圖14所示,作業系統27將佔據一個進入點之資料之大小設為權重,且設定各資料之靜態寫入頻率SW_color、靜態讀出頻率SR_color之加權平均值。
藉由作業系統27預測由著色表14所表示之靜態寫入頻率SW_color與靜態讀出頻率SR_color是否由程式開發者埋入於作業系統27等之原始程式碼中。然而,亦有以與程式開發者意圖之情形不同之其他用途而使用檔案或照片資料之情形。一般而言,如照片資料等般之資料之存取幾乎為讀出,照片資料之內容可重寫之情形較少。然而,於加工照片資料之程式處理特定照片資料之情形時,有時加工中之照片資料被頻繁重寫。於如此之情形時,只要用戶可重寫著色表14之靜態寫入頻率SW_color與靜態讀出頻率SR_color,則可將特定檔案移動至更高速且重寫次數有富餘之區域。
為了實現如此之動作,較佳為,以使各資料之著色資訊於作業系統27之軟體上重寫之方式,而設計作業系統27之檔案系統。例如,較佳為,以若利用普通之瀏覽器打開檔案之屬性,則可於GUI(Graphics User Interface,圖形用戶介面)畫面上觀察到相當於著色表14之屬性的方式設計有資訊處理裝置100,且以用戶可於GUI上變更其初始資料之方式設計作業系統27。
其次,參照圖15,對根據動態色彩資訊與靜態色彩資訊而算出動態寫入頻率D W_color與動態讀出頻率D R_color之方法進行說明。圖15係表示根據動態色彩資訊與靜態色彩資訊而算出動態寫入頻率DW_color與動態讀出頻率DR_color之方法之一例之圖。於圖15中,橫軸為時間,縱軸為存取次數(讀出次數DWC_color、或寫入次數DRC_color)。
若於資料生成時刻生成新資料,則相對於新生成之資料生成著色資訊(包含資料生成時刻),並註冊於著色表14之新進入點,然後將資料寫入至混合主記憶體12中。資料生成時刻以後,藉由產生對於該資料之存取(讀出、寫入),隨著時間經過,而存取次數(寫入次數DWC_color、讀出次數DRC_color)增加。該存取次數之增加係藉由動態色彩資訊管理部25而進行。記憶體管理裝置1之存取頻率算出部24根據存取次數而算出動態寫入頻率DW_color、動態讀出頻率DR_color。
目前時刻中之該資料之寫入次數DWC_color、資料之讀出次數DRC_color可藉由參照著色表14而求出。目前時刻中之該動態寫入頻率DW_color藉由自資料生成時刻ST_color起至目前時刻為止之寫入次數DWC_color之時間平均(平均變化率α)而求出。又,目前時刻中之該動態讀出頻率DR_color藉由自資料生成時刻ST_color起至目前時刻為止之讀出次數DRC_color之時間平均(平均變化率α)而求出。藉此,根據動態色彩資訊(寫入次數DWC_color、讀出次數DRC_color),算出該資料之動態寫入頻率DW_color、與動態讀出頻率DR_color。
其次,根據已算出之動態寫入頻率DW_color、與動態讀出頻率DR_color,判斷對於該資料之存取之頻率之高低。存取頻率之高低之判斷,例如根據寫入有該資料之混合主記憶體2之記憶體固有資訊11、已算出之動態寫入頻率DW_color及動態讀出頻率DR_color而進行。
於圖15中,首先,設定「可存取之上限次數×權重1/資料壽命」作為式A之斜率,設定「可存取之上限次數×權重2/資料壽命」作為式B之斜率。此處,權重1>權重2。權重1、權重2可根據寫入算出動態寫入頻率DW_color、動態讀出頻率DR_color之該資料之混合主記憶體2而任意地設定。
於平均變化率α<式A之斜率成立之情形時,判斷為該資料之動態存取頻率高。
於式B之斜率<平均變化率α≦式A之斜率成立之情形時,判斷為該資料之動態存取頻率為中等。
於平均變化率α≦式B之斜率成立之情形時,判斷為該資料之動態存取頻率低。
其次,參照圖16,對自混合主記憶體2讀出資料之處理進行說明。圖16係表示資料之讀出處理之一例之流程圖。
首先,藉由處理器3a、3b、3c執行之程序6a、6b、6c產生資料(讀出對象資料)之讀出請求(步驟W1)。
其次,藉由處理器3a、3b、3c所包含之分頁表(未圖示),將指定讀出對象資料之虛擬位址轉換為邏輯位址(步驟W2)。
其次,讀出管理部19參照與位址轉換資訊13之讀出對象資料相對應之邏輯位址之進入點之有效/無效旗標(步驟W3)。
於位址轉換資訊13之有效/無效旗標為0時(步驟W3a),對於邏輯位址之寫入一次也不產生,因此資料不確定。於該情形時,讀出管理部19將相當於讀出請求大小之0資料讀出(步驟W8),並轉移至W10之處理。
於位址轉換資訊13之有效/無效旗標為1時(步驟W3a),對於邏輯位址之資料之寫入至少產生一次。於該情形時,讀出管理部19參照位址轉換資訊13,判斷與邏輯位址相對應之資料是否記憶於揮發性半導體記憶體8中(步驟W4)。
於讀出管理部19判斷為與邏輯位址相對應之資料記憶於揮發性半導體記憶體8中之情形時(步驟W4a),自揮發性半導體記憶體8進行讀出,因此處理轉移至步驟W10。
於讀出管理部19判斷為與邏輯位址相對應之資料未記憶於揮發性半導體記憶體8中之情形時(步驟W4a),參照著色表14,決定來自非揮發性半導體記憶體9、10之讀出對象資料之讀出方式(步驟W5)。關於讀出方式之決定處理將於下文敍述。
其次,讀出管理部19參照記憶有讀出對象資料之非揮發性半導體記憶體9、10之記憶體固有資訊11、記憶體使用資訊12,判斷是否需要讀出對象資料之移動(再寫入)(步驟W6)。
於讀出管理部19判斷為不需要讀出對象資料之移動之情形時(步驟W6a),轉移至步驟W9。
讀出管理部19在當判斷為需要進行讀出對象資料之移動之情形時(步驟W6a),將讀出對象資料向非揮發性半導體記憶體9、10之另一區域移動(步驟W7),其後,處理轉移至步驟W9。
於步驟W9中,記憶體使用資訊管理部22於自非揮發性記憶體區域進行讀出時,將記憶體使用資訊11之讀出次數遞增。於步驟W10中,動態色彩資訊管理部25於進行資料之讀出時,將著色表14之資料之讀出次數DRC_color遞增。於步驟W11中,讀出管理部19根據自邏輯位址與位址轉換資訊13而獲得之實體位址,進行資料之讀出。
其次,參照圖17,對資料之讀出方式之決定處理進行說明。圖17係表示資料之讀出方式之決定處理之一例之流程圖。讀出方式之決定處理係於自非揮發性半導體記憶體9、10之記憶體區域讀出資料時,判斷是否將揮發性半導體記憶體8之記憶體區域用作快取之處理。本處理相當於圖16之步驟W5。
如上述般,混合主記憶體2包括揮發性半導體記憶體8、及非揮發性半導體記憶體9、10。本實施形態中,亦可將揮發性半導體記憶體8之一部分用作快取記憶體。於自混合主記憶體2之非揮發性半導體記憶體9、10讀出資料之情形時,讀出頻率高之資料會被快取並讀出至揮發性半導體記憶體8中。另一方面,讀出頻率低之資料則不被快取至揮發性半導體記憶體8中,而自非揮發性半導體記憶體9、10直接讀出。
首先,讀出管理部19藉由參照著色表14,而參照讀出對象資料之靜態讀出頻率SR_color(步驟V1)。於靜態讀出頻率SR_color為大(例如,SR_color=5)之情形時(步驟V1a),將讀出對象資料自非揮發性半導體記憶體9、10快取至揮發性半導體記憶體8(DRAM區域)中,因此處理轉移至步驟V4。
讀出管理部19於讀出對象資料之靜態讀出頻率SR_color為小(例如,SR_color<=4)之情形時(步驟V1a),藉由參照位址轉換資訊13,確認已寫入讀出對象資料之區域(步驟V2),進而,存取頻率算出部24算出讀出對象資料之動態讀出頻率DR_color(步驟V3)。
讀出管理部19於相對於讀出對象資料之靜態讀出頻率SR_color與動態讀出頻率DR_color而「SR_color≧3或DR_color高」成立之情形時(步驟V3a),確認揮發性半導體記憶體8(DRAM區域)中是否存在寫入讀出對象資料之空白區域(步驟V4)。讀出管理部19於揮發性半導體記憶體8中存在空白區域之情形時(步驟V4a),將讀出對象資料自非揮發性半導體記憶體9、10快取至揮發性半導體記憶體8(DRAM區域)中(步驟V5)。讀出管理部19於揮發性記憶體8中無空白區域之情形時(步驟V4a),將記憶於揮發性半導體記憶體8中之資料寫回至非揮發性半導體記憶體9、10中,並將記憶於揮發性半導體記憶體8中之資料刪除,藉此確保空白區域(步驟V6)。寫回處理之後,讀出管理部19再次確認揮發性半導體記憶體8之空白區域(步驟V7)。於揮發性半導體記憶體8中存在空白區域之情形時(步驟V7a),處理轉移至步驟V5,於不存在空白區域之情形時(步驟V7a),處理轉移至步驟V8。
讀出管理部19於相對於讀出對象資料之靜態讀出頻率SR_color與動態讀出頻率DR_color而「SR_color≧3或DR_color高」不成立之情形時(步驟V3a),並不將讀出對象資料快取至揮發性半導體記憶體8中,而自非揮發性半導體記憶體9、10直接讀出(步驟V8)。
如上述般,藉由參照靜態讀出頻率SR_color、動態讀出頻率DR_color而決定讀出方式。
於該圖17中,未進行資料壽命SL_color之判斷。對該理由進行說明。如下述般,於寫入時,將資料壽命SL_color短之資料配置於揮發性半導體記憶體8中。因此,有效/無效旗標為1,表示資料壽命SL_color短之資料記憶於揮發性半導體記憶體8中。其結果為,於圖17中,不需要進行基於資料壽命SL_color之判斷。
其次,對資料之關於圖9、圖10所示之資料之讀出方式進行具體說明。圖9、圖10所示之資料係藉由按照圖17所說明之資料之讀出方式的決定處理之流程圖,以如下方式決定讀出方式。
首先,靜態讀出頻率SR_color設定為5、且靜態寫入頻率SW_color設定為1之核心之本文區域被推測為讀出之頻率高、寫入之頻率低。該核心之本文區域中之第1資料於作業系統27進行各種處理時被讀出,因此讀出次數變多,進而需要被高速地讀出。
記憶體管理裝置1對處理器3b之次要快取記憶體5b或主快取記憶體4b寫入自非揮發性半導體記憶體9、10所讀出之第1資料,同時並行地將所讀出之第1資料傳輸至混合主記憶體2內之揮發性半導體記憶體8之記憶體區域中。
於再次將相同之第1資料讀出之情形時,自處理器3b之次要快取記憶體5b或主快取記憶體4b上進行第1資料之讀出,或於未快取命中之情形時自混合主記憶體2之揮發性半導體記憶體8之記憶體區域進行第1資料之讀出。只要揮發性半導體記憶體8之記憶體區域不枯竭,則記憶於混合主記憶體2上之揮發性半導體記憶體8之記憶體區域中之第1資料會被保持於揮發性半導體記憶體8上直至電源斷開為止。
其次,靜態讀出頻率SR_color被設定指定為5、靜態寫入頻率SW_color被設定指定為5之核心之資料區域,係於每次系統(資訊處理裝置100)啟動時新生成並初始化之區域。因此,推測核心之資料區域中之第2資料壽命SL_color短。記憶體管理裝置1最初參照第2資料之壽命SL_color。只要揮發性半導體記憶體8之記憶體區域不枯竭,則第2資料存在於揮發性半導體記憶體8上,隨著電源斷開而自揮發性半導體記憶體8中刪除。
其次,靜態讀出頻率SR_color設定為4、靜態寫入頻率SW_color設定為1之用戶程式之區域,與自所有程序而可重入地調用之核心相比較,讀出之頻率低。用戶程式之區域中之第3資料配置於揮發性半導體記憶體8之記憶體區域中,但於混合主記憶體2之揮發性半導體記憶體8之記憶體區域被填滿(FULL)之情形時,則成為自揮發性半導體記憶體8上向非揮發性半導體記憶體9、10之記憶體區域寫回之對象。被寫回之第3資料之順序係根據著色表14之資訊而決定。於被寫回之情形時,按照讀出次數少之順序,第3資料自揮發性半導體記憶體8上轉移至非揮發性半導體記憶體9、10上。
藉由靜態寫入頻率SR_color設定為4、靜態讀出頻率SW_color設定為4之程式而動態地確保之區域中之第4資料中,被指定為資料壽命SL_color短之第4資料,與核心之資料區域同樣地,只要揮發性半導體記憶體8之記憶體區域不枯竭,則存在於揮發性半導體記憶體8上,且隨著電源斷開而自揮發性半導體記憶體8中刪除。
另一方面,資料壽命SL_color設定為長之第4資料係配置於揮發性半導體記憶體8之記憶體區域,但於混合主記憶體2之揮發性半導體記憶體8之記憶體區域被填滿之情形時,則成為自揮發性半導體記憶體8上向非揮發性半導體記憶體9、10之記憶體區域寫回之對象。
其次,對作為藉由程序而參照之檔案而被處理之資料進行說明。於上述圖10中,作為藉由程序而參照之檔案而被處理之資料之資料壽命SL_color均設定為長。
靜態寫入頻率SW_color設定為1、靜態讀出頻率SR_color設定為3之檔案類中所包含之第5資料,藉由作業系統27而推測為寫入之頻率極低、預測之讀出之頻率高。此時,記憶體管理裝置1將第5資料配置於揮發性半導體記憶體8之記憶體區域中,但於混合主記憶體2之揮發性半導體記憶體8之記憶體區域被填滿之情形時,則成為自揮發性半導體記憶體8上向非揮發性半導體記憶體9、10之記憶體區域寫回之對象。
靜態寫入頻率SW_color設定為1、靜態讀出頻率SR_coIor設定為2之檔案類中所包含之第6資料,係藉由作業系統27而推測為靜態寫入頻率SW_color極低,預測之靜態讀出頻率SR_color亦低。如此,記憶體管理裝置1於未判斷為靜態讀出頻率SR_color高之情形時,於讀出時不經由揮發性半導體記憶體8之快取,而直接存取至非揮發性半導體記憶體9、10。
靜態寫入頻率SW_color設定為1、靜態讀出頻率SR_color設定為1之檔案類中所包含之第7資料,係藉由作業系統27而推測為靜態寫入頻率SW_color極低、預測之靜態讀出頻率SR_color亦極低。如此,記憶體管理裝置1於未判斷為靜態讀出頻率高之情形時,於讀出時不經由揮發性半導體記憶體8之快取,而直接存取至非揮發性半導體記憶體9、10。
如上述般,讀出對象資料之讀出方式係根據讀出對象資料之著色資訊而決定。藉此,可使用與讀出對象資料之特性(靜態讀出頻率SR_color、靜態寫入頻率SW_color、資料壽命SL_color)一致之讀出方式,實現資料之讀出效率之提高。
其次,參照圖18,對於向混合主記憶體2之資料之寫入處理進行說明。圖18係表示資料之寫入處理之一例之流程圖。
首先,藉由處理器3a、3b、3c執行之程序6a、6b、6c產生資料(寫入對象資料)之寫入請求(步驟X1)。
其次,藉由處理器3a、3b、3c所包含之分頁表(未圖示),將指定寫入對象資料之虛擬位址轉換為邏輯位址(步驟X2)。
其次,寫入管理部20藉由參照著色表14,而決定混合主記憶體2中之寫入對象之記憶體區域(步驟X3)。關於寫入對象記憶體區域之選定將於下文敍述。
寫入管理部20判斷由步驟X3所選擇之寫入對象記憶體是否為揮發性半導體記憶體8(步驟X4)。判斷之結果為,於經選擇之寫入對象記憶體為揮發性半導體記憶體8之情形時(步驟X4a),執行步驟X7之處理,於寫入對象記憶體為非揮發性記憶體之情形時(步驟X4a),執行步驟X5之處理。
於步驟X5中,寫入管理部20參照記憶體使用資訊11與著色表14,決定非揮發性半導體記憶體9、10之記憶體區域中之寫入對象區塊區域。於步驟X6中,位址管理部18根據寫入對象區塊中之頁面之實體位址更新位址轉換資訊13。於非揮發性半導體記憶體9、10為NAND型快閃記憶體之情形時,未進行對於相同實體位址之覆寫,因此伴隨寫入之實體位址之更新為必需。
寫入管理部20決定寫入目的地實體位址之後,進行資料之寫入處理(步驟X7)。繼而,位址管理部18將位址轉換資訊13之有效/無效旗標設為1(步驟X8)。動態色彩資訊管理部25使著色表14之寫入次數DWC_color遞增(步驟X9),記憶體使用資訊管理部22使記憶體使用資訊11之寫入次數遞增(步驟X10)。
其次,參照圖19,對資料之寫入對象記憶體區域之決定處理進行說明。圖19係表示資料之寫入目的地區域之決定處理之一例之流程圖。
於步驟Y1中,寫入管理部20參照寫入對象資料之資料壽命SL_color。
於步驟Y2中,寫入管理部20判斷資料壽命SL_color較特定值長還是短。於資料壽命SL_color為特定值以上之情形時,處理轉移至步驟Y9。
於資料壽命較特定值短之情形時,於步驟Y3中,寫入管理部20確認DRAM區域之空白區域,於步驟Y4中,寫入管理部20判斷DRAM區域中是否存在空白區域。
於DRAM區域中存在空白區域之情形時,於步驟Y5中,寫入管理部20將寫入對象資料寫入至DRAM區域中。
於DRAM區域中無空白區域之情形時,於步驟Y6中,寫入管理部20執行自DRAM區域向其他非揮發性半導體記憶體之寫回處理。而且,於步驟Y7中,寫入管理部20確認DRAM區域之空白區域,於步驟Y8中,寫入管理部20判斷DRAM區域中是否存在空白區域。
於DRAM區域中存在空白區域之情形時,處理轉移至步驟Y5,寫入管理部20將寫入對象資料寫入至DRAM區域中。
於DRAM區域中無空白區域之情形時,處理轉移至步驟Y9。
於步驟Y9中,寫入管理部20參照由著色表14而管理之寫入對象資料之靜態寫入頻率SW_color。
於步驟Y10中,寫入管理部20判斷靜態寫入頻率SW_color是否設定為5(寫入對象資料之靜態寫入頻率SW_color是否高)。
於靜態寫入頻率SW_color設定為5之情形時,處理轉移至Y13,寫入管理部20選擇B區域作為寫入對象資料之寫入目的地。
於靜態寫入頻率SW_color設定為不為5之值(小於5之值)之情形時,於步驟Y11中,記憶體管理裝置1參照由著色表14而管理之寫入對象資料之靜態讀出頻率SR_color。
於步驟Y12中,寫入管理部20判斷靜態讀出頻率SR_color設定為1~5之哪一個值。
於該步驟Y12中靜態讀出頻率SR_color設定為5之情形時,於步驟Y13中,寫入管理部20選擇B區域作為寫入對象資料之寫入目的地。
於步驟Y12中靜態讀出頻率SR_color設定為4之情形時,於步驟Y14中,寫入管理部20選擇A區域作為寫入對象資料之寫入目的地。
於該步驟Y12中靜態讀出頻率SR_color設定為3之情形時,於步驟Y15中,寫入管理部20根據資料之著色資訊,算出資料之動態寫入頻率DW_color。其次,於步驟Y16中,寫入管理部20參照由著色表14而管理之寫入對象資料之靜態寫入頻率SW_color。
於步驟Y17中,寫入管理部20判斷「靜態寫入頻率SW_color是否為3以上,或者,資料之動態寫入頻率DW_color為高位準」是否成立。
於該步驟Y17中「SW_color是否為3以上,或者,資料之動態寫入頻率DW_color為高位準」不成立之情形時,處理轉移至步驟Y14,寫入管理部20選擇A區域。
於步驟Y17中「SW_color是否為3以上,或者,資料之動態寫入頻率DW_color為高位準」成立之情形時,處理轉移至步驟Y18,寫入管理部20選擇C區域。
於上述步驟Y12中靜態讀出頻率SR_color設定為2之情形時,於步驟Y19中,寫入管理部20根據資料之著色資訊,算出資料之動態寫入頻率DW_color。
於步驟Y20中,寫入管理部20參照由著色表14而管理之寫入對象資料之靜態寫入頻率SW_color。
於步驟Y21中,寫入管理部20判斷「SW_color是否為3以上,或者,已算出之動態寫入頻DW_color為高位準」是否成立。
於該步驟Y21中「SW_color是否為3以上,或者,已算出之動態寫入頻DW_color為高位準」成立之情形時,處理轉移至步驟Y18,寫入管理部20選擇C區域。
於步驟Y21中「SW_color是否為3以上,或者,已算出之動態寫入頻率DW_color為高位準」不成立之情形時,處理轉移至步驟Y22。
於步驟Y22中,寫入管理部20判斷「SW_color是否為2以上,或者,已算出之動態寫入頻率DW_color為中位準」是否成立。
於該步驟Y22中「SW_color是否為2以上,或者,已算出之動態寫入頻率DW_color為中位準」成立之情形時,處理轉移至步驟Y23,寫入管埋部20選擇D區域。
於步驟Y22中「SW_color是否為2以上,或者,已算出之動態寫入頻率DW_color為中位準」不成立之情形時,處理轉移至步驟Y24,寫入管理部20選擇E區域。
於上述步驟Y12中靜態讀出頻率SR_color設定為1之情形時,於步驟Y25中,寫入管理部20根據資料之著色資訊,算出資料之動態寫入頻率DW_color。
於步驟Y26中,寫入管理部20參照由著色表14而管理之寫入對象資料之靜態讀出頻率SW_color。其後,處理轉移至步驟Y21。
再者,圖19之例中,使用靜態色彩資訊與動態色彩資訊決定資料之寫入目的地區域,但是亦可僅使用靜態色彩資訊決定資料之寫入目的地區域。即,亦可挪用該圖19之例之流程圖之一部分,根據靜態色彩資訊決定資料之寫入目的地區域。
例如,作業系統27之開發者相對於讀出管理部19之資料讀出方式與寫入管理部20之資料寫入方式之安裝,進行如上述圖9及圖10所示之設定。
例如,推測SR_color設定為5、SW_color設定為1之核心之本文區域中之第1資料被讀出之次數多、被寫入之次數少。第1資料係根據上述圖17所示之讀出方式之決定動作,於系統運轉過程中被轉移至揮發性半導體記憶體8中而進行讀寫。因此,第1資料實際寫入至非揮發性半導體記憶體9、10中之頻率低。然而,第1資料之重要性高,因此,於該圖19中,寫入管理部20將第1資料寫入至作為SLC之非揮發性半導體記憶體9之B區域。
其次,SR_color設定為5、SW_color設定為5之核心之資料區域為資訊處理裝置100每次啟動時新生成並初始化之區域,因此推測核心之資料區域中之第2資料之資料壽命短。寫入管理部20最初參照第2資料之資料壽命SL_color。第2資料於資訊處理裝置100之運轉過程中必定存在於揮發性半導體記憶體8上,隨著電源斷開而自揮發性半導體記憶體8中刪除。因此,第2資料不會被寫入至非揮發性半導體記憶體9、10之記憶體區域中。
其次,SR_color設定為4、SW_color設定為1之用戶程式之區域與自所有程序可重入地調用之核心相比較,讀出頻率低。用戶程式之區域中之第3資料,僅於無法藉由上述圖16所示之讀出方式長期存取之情形時被寫入至非揮發性半導體記憶體9、10之記憶體區域中。因此,第3資料被寫入至非揮發性半導體記憶體9、10中之頻率低。第3資料與核心之本文區域中之資料相比較重要度低,因此圖19中被寫入至作為MLC區域之A區域中。
由SR_color設定為4、SW_color設定為4之程式動態地確保之區域中之第4資料中,資料壽命SL_color設定為短之第4資料,與核心之資料區域同樣地,於資訊處理裝置100運轉過程中必定存在於揮發性半導體記憶體8上。寫入管理部20最初參照資料壽命SL_color。第4資料於系統運轉過程中必定存在於揮發性半導體記憶體8上,隨著電源斷開而自揮發性半導體記憶體8中刪除,因此不會被寫入至非揮發性半導體記憶體9、10之記憶體區域中。
另一方面,資料壽命SL_color設定為長之第4資料配置於揮發性半導體記憶體8之記憶體區域中,但於混合主記憶體2之揮發性半導體記憶體8之記憶體區域被填滿之情形時,成為自揮發性半導體記憶體8上向非揮發性半導體記憶體9、10之記憶體區域寫回之對象。程式之本文區域中資料之重要度高,因此程式之本文區域中之資料被寫入至作為SLC之C區域。
其次對作為藉由程序而參照之檔案而被處理之資料進行說明。圖10中,藉由程序而參照之檔案之資料壽命SL_color均設定為長。
SW_color設定為1、SR_color設定為3之系統檔案類中之第5資料,係藉由作業系統27而推測為寫入頻率極低、預測之讀出頻率高。此時,寫入管理部20將第5資料配置於揮發性半導體記憶體8之記憶體區域中,但於混合主記憶體2之揮發性半導體記憶體8之記憶體區域被填滿之情形時,第5資料成為自揮發性半導體記憶體8上向非揮發性半導體記憶體9、10之記憶體區域寫回之對象。由於判斷為第5資料之寫入頻率低,故而寫入管理部20將第5資料向MLC區域配置。
SW_color設定為3、SR_color設定為3之檔案類,係藉由作業系統27而推測為寫入頻率極高、預測之讀出頻率亦高。因此,寫入管理部20將SW_color設定為3、SR_color設定為3之檔案類中之資料向SLC區域配置。
SW_color設定為1、SR_color設定為2之檔案類中所包含之第6資料,係藉由作業系統27而推測為寫入頻率極低、預測之讀出頻率亦低。第6資料被判斷為作為檔案之重要度亦低,因此寫入管理部20將第6資料向MLC區域配置。
SW_color設定為1、SR_color設定為1之檔案類中所包含之第7資料,係藉由作業系統27而推測為寫入頻率極低、預測之讀出頻率亦極低。關於第7資料,被判斷為作為檔案之重要度亦低,因此寫入管理部20將第7資料向MLC區域配置。
於藉由上述處理決定寫入對象之記憶體區域之情形時,寫入管理部20決定寫入目的地之實體位址。於該情形時,寫入管理部20參照著色表14,適當地選擇寫入目的地之實體位址,由此抑制損耗均衡演算法(wear leveling)之產生,減少不需要之刪除處理。
此處所謂損耗均衡演算法,例如,係指於區塊間進行資料之更換(更換),以將刪除次數最大之區塊、與刪除次數最小之區塊之刪除次數的差限制於特定臨限值以內。例如,NAND型快閃記憶體無法進行無刪除處理之資料覆寫,因此資料移動目的地必需為未使用之區塊,會產生本來記憶有資料之區塊之刪除處理。
其次,參照圖20,說明對於資料之寫入對象區塊之決定處理。圖20係用以說明對於資料之寫入對象區塊之決定處理之圖。
非揮發性半導體記憶體9、10以區塊單位進行資料之刪除。非揮發性半導體記憶體9、10之每個區塊區域之刪除次數EC可藉由參照記憶體使用資訊11而獲取。將刪除次數EC相對於區塊區域之刪除次數之上限值(可刪除上限次數)之比例設為消耗率。
於區塊區域之刪除次數EC達到該區塊區域之可刪除上限次數之情形時,消耗率為100%。於消耗率為100%之情形時,不進行對該區塊區域之資料之寫入。
於區塊區域之刪除次數EC接近該區塊區域之刪除次數之上限值之情形時(例如,90%),減少對該區塊區域之資料之寫入。寫入管理部20藉由參照著色表14,將寫入頻率(靜態寫入頻率SW_color、動態寫入頻率DW_color)低之寫入對象資料(例如,SW_color為1、DW_color為「中」)寫入至消耗率高之區塊區域(例如,消耗率小於90%)中。
另一方面,於區塊區域之刪除次數EC低於該區塊區域之刪除次數之上限值之情形時(例如,消耗率為10%),對該區塊區域之資料之寫入亦可較多。寫入管理部20藉由參照著色表14,將寫入頻率(靜態寫入頻率SW_color、動態寫入頻率DW_color)高之寫入對象資料(例如,SW_color為5、DW_color為「高」)寫入至消耗率低之區塊區域(例如,消耗率小於10)中。
如上述般,將寫入對象資料寫入之區塊區域係根據寫入對象資料之著色資訊、與區塊區域之消耗率決定。藉此,可選擇與寫入對象資料之特性(寫入頻率)符合之寫入對象區塊區域,從而可實現資料之可靠性之提高。又,如以下所說明般,可延長混合主記憶體之壽命。
其次,參照圖21至圖25,對根據寫入對象資料之著色資訊、記憶體使用資訊11、記憶體固有資訊12而決定寫入寫入對象資料之區塊區域之處理的詳細情況與效果進行說明。
圖21係表示非揮發性半導體記憶體9、10之任意區塊區域中之刪除次數的推移之一例之圖表。於該圖21中,縱軸表示刪除次數,橫軸表示時間。
隨著時間之經過,各區塊區域中之理想刪除次數發生變化。例如,使用NAND型快閃記憶體等非揮發性半導體記憶體9、10之資訊處理裝置1中,將來非揮發性半導體記憶體9、10會劣化,從而必需更換非揮發性半導體記憶體9、10。為了至記憶體更換期為止使用非揮發性半導體記憶體9、10之多個區塊區域,損耗均衡演算法之刪除次數之平均化為必需。圖21中,表示非揮發性半導體記憶體9、10之任意區塊區域中之刪除次數之推移。較佳為,於達到相對於區塊區域為期望之壽命之時間點,區塊區域之刪除次數達到可刪除之上限次數。
例如,為了使所有區塊區域依照圖21所示之刪除次數之推移,亦可於損耗均衡演算法中將相對於各區塊區域之刪除次數之差的臨限值設定得較小。
圖22係表示於損耗均衡演算法中將相對於刪除次數之差之臨限值設定得較小之情形時之變化之一例的圖表。
圖22中之虛線表示各區塊區域之刪除次數之差異之範圍。如圖22所示,藉由使臨限值變小,而各區塊區域之刪除次數之差異變小,損耗均衡演算法用之刪除處理之產生次數增加,其結果為,存在非揮發性半導體記憶體9、10整體之壽命變短之可能性。
寫入管理部20為了使刪除次數之分散減少,抑制損耗均衡演算法之刪除處理之產生次數,而於寫入資料時,進行基於記憶體使用資訊11、記憶體固有資訊12、著色表14之刪除區塊區域之選擇。
圖23係表示對應於刪除次數之區塊區域之分組之一例的圖表。
圖24係表示對應於刪除次數之區塊區域之分組之判斷基準的圖。
於本實施形態中,針對每個區塊區域進行刪除次數之分組。表示區塊區域之分組之結果之資訊係作為記憶體使用資訊11而保存。再者,表示區塊區域之分組之結果之資訊亦可作為記憶體固有資訊12而保存。
圖23之粗線表示最小之刪除次數之推移,虛線表示損耗均衡演算法之臨限值。如圖23所示,各區塊區域於損耗均衡演算法之臨限值之範圍內(差異之範圍內)而被分類為各個刪除次數之群組。
記憶體使用資訊管理部22於某區塊區域之資料被刪除、且可再次寫入時,根據圖24所示之判斷表,判斷該區塊區域屬於哪個群組,並記憶於記憶體使用資訊11中。
該圖24之判斷表中,所有區塊區域之刪除次數中之最小之刪除次數、與將該最小之刪除次數及用以判斷是否進行損耗均衡演算法之臨限值相加而得的值之間係以群組之數被分割。群組自被分割之範圍之下朝上,設定為h、g、f、e、d、c、b、a。而且,判斷表中設定有相對於各群組之上限之刪除次數與下限之刪除次數。
圖25係表示損耗均衡演算法中之區塊區域之檢索之一例的圖。
寫入管理部20根據著色表14之資訊,決定成為檢索寫入對象資料之區塊區域之基準之群組。例如,於寫入對象資料之存取頻率高之情形時,決定刪除次數少之群組,於寫入對象資料之存取頻率低之情形時,決定刪除次數多之群組。以下,以對於寫入對象資料而決定群組c而進行說明。
若決定成為檢索基準之寫入對象資料之群組c,則如圖25所示,寫入管理部20根據記憶體使用資訊11,檢索屬於已決定之寫入對象資料之群組c之區塊區域。
於屬於已決定之寫入對象資料之群組c之區塊區域存在之情形時,將該區塊區域決定為寫入對象資料之寫入目的地。
相對於此,於屬於已決定之寫入對象資料之群組c之區塊區域不存在之情形時,寫入管理部20檢索屬於已決定之寫入對象資料之群組c之附近的群組b之區塊區域。
於屬於已決定之寫入對象資料之附近群組b之區塊區域存在之情形時,將屬於該附近群組b之區塊區域選擇為寫入對象資料之寫入目的地。
於屬於已決定之寫入對象資料之附近群組b之區塊區域不存在之情形時,以下同樣地,直至決定區塊區域為止,進而對相對於寫入對象資料之群組c之另一附近群組d執行檢索。若藉由如此之檢索處理而決定寫入資料之區塊區域之實體位址,則寫入管理部20進行資料之寫入,位址管理部18更新位址轉換資訊13。
再者,寫入管理部20亦可使用其他區塊區域之檢索方法而決定寫入目的地之位址。例如,寫入管理部20利用以刪除次數為關鍵、以刪除區塊區域為節點之樹結構(B-Tree B+Tree RB-Tree等)來管理可寫入之區塊區域(刪除處理完畢),並保存於記憶體固有資訊12或記憶體使用資訊11中。寫入管理部20以成為基準之刪除次數為關鍵而檢索樹,並抽出最臨近之具有刪除次數之區塊區域。
若藉由任意之程序3b將資料刪除,則作業系統27將關於該資料之著色表14之內容刪除。位址管理部18於著色表14之內容被刪除時,將位址轉換資訊13中之刪除對象資料之邏輯位址所對應之實體位址刪除。
於資料存在於揮發性半導體記憶體8上之情形時,揮發性半導體記憶體8上之資料被刪除。
其次,參照圖26,對本實施形態之記憶體管理裝置1包含快取記憶體之構成進行說明。圖26係表示本實施形態之記憶體管理裝置1更包含快取記憶體之記憶體管理裝置之一例之方塊圖。再者,於該圖26中,處理器3a、3b、3c中以處理器3b為代表進行說明,關於其他處理器3a、3c亦相同。
記憶體管理裝置1更包含快取記憶體28。
處理器3b除可對主快取記憶體4b、次要快取記憶體5b進行存取以外,還可直接對快取記憶體28進行存取。
記憶體管理裝置28於主快取記憶體4b、次要快取記憶體5b、快取記憶體28之任一者中產生進頁面(page in)或出頁面(page out)之情形時,對混合主記憶體2進行存取。
根據圖27之例對記憶體管理裝置1、混合主記憶體2、處理器3a之安裝例進行說明。
圖27(A)係表示記憶體管理裝置1、混合主記憶體2、處理器3a之第1安裝例之方塊圖。圖27(A)中,對揮發性半導體記憶體8為DRAM、非揮發性半導體記憶體9、10為NAND型快閃記憶體之情形進行說明,但並不限定於此。
處理器3a包括記憶體控制器(MMU(Memory Management Unit,記憶體管理單元))3ma、主快取記憶體4a、及次要快取記憶體4b。記憶體管理裝置1包括DRAM控制器。處理器3a與記憶體管理裝置1形成於同一基板(例如,SoC(System on Chip,系統單晶片))上。
揮發性半導體記憶體8藉由記憶體管理裝置1所包含之DRAM控制器而控制。非揮發性半導體記憶體9、10藉由記憶體管理裝置1而控制。圖27(A)之安裝例中,搭載有揮發性半導體記憶體8之記憶體模組、與搭載有非揮發性半導體記憶體9、10之記憶體模組為不同模組。
圖27(B)係表示記憶體管理裝置1、混合主記憶體2、處理器3a之第1安裝例之方塊圖。圖27(B)中,對揮發性半導體記憶體8為DRAM、非揮發性半導體記憶體9、10為NAND型快閃記憶體之情形進行說明,但並不限定於此。關於與圖27(A)相同之構成,省略說明。
圖27(B)之例中,構成為記憶體管理裝置1自外部電性連接於搭載有處理器3a之晶片。又,構成為揮發性半導體記憶體8連接於記憶體管理裝置1。記憶體管理裝置1包括DRAM控制器(圖示省略)。
其次,參照圖28,對本實施形態之記憶體管理裝置1與資訊處理裝置100之其他構成態樣進行說明。圖1所示之記憶體管理裝置1與資訊處理裝置100中,關於資料之寫入次數DWC_color、讀出次數RWC_color之計數(遞增),係由記憶體管理裝置1之動態色彩資訊管理部25而管理。相對於此,圖28所示之記憶體管理裝置1與資訊處理裝置100中,關於資料之寫入次數DWC_color、讀出次數RWC_color之計數,係由處理器3a、3b、3c所包含之記憶體控制器(MMU)3ma、3mb、3mc而進行。於以下說明中,記憶體控制器3ma、3mb、3mc中以記憶體控制器3ma為代表進行說明,關於其他記憶體控制器3mb、3mc亦相同。
處理器3a所包含之記憶體控制器3ma包括進行關於資料之寫入次數DWC_color、讀出次數DRC_color之計數的計數器cta。進而,記憶體控制器3ma包含管理關於資料之寫入次數DWC_color、讀出次數DRC_color之計數資訊cia。
例如,於處理器3a對資料產生載入指令之情形時,計數器cta對針對該資料之讀出次數DRC_color進行計數(遞增),並更新計數資訊cia。又,例如,於處理器3a對資料產生儲存(store)指令之情形時,計數器cta對針對該資料之寫入次數DWC_color進行計數(遞增),並更新計數資訊cia。
藉由計數資訊cia而管理之關於資料之寫入次數DWC_color、讀出次數DRC_color,係定期地反映於關於該資料之記憶體管理裝置1之著色表14之寫入次數DWC_color、讀出次數DRC_color。
於該圖28之構成態樣中,獲得如下之效果。即,於相對於處理器3a之動作頻率為GHz等級而記憶體管理裝置1之動作頻率為MHz等級之情形時,考慮到記憶體管理裝置1中難以對由處理器3a所產生之寫入、讀出進行計數之情形。相對於此,於圖28之構成態樣之情形時,由處理器3a之計數器cta而對寫入、讀出進行計數,因此能夠對高動作頻率之讀出次數、寫入次數進行計數。
其次,參照圖29,對藉由複數個記憶體管理裝置1而管理複數個非揮發性半導體記憶體之構成進行說明。圖29係表示管理複數個非揮發性半導體記憶體之複數個記憶體管理裝置之一例之立體圖。
於圖29中,由一個記憶體管理裝置1、及複數個NAND型快閃記憶體29而形成一個記憶體模組30。圖29之例中,形成有3個記憶體模組30。
複數個非揮發性半導體記憶體29例如為NAND型快閃記憶體,且用作上述非揮發性半導體記憶體9、10。
記憶體管理裝置1管理對於屬於相同記憶體模組30之複數個非揮發性半導體記憶體29之存取。
進而,複數個記憶體模組30內所包含之複數個記憶體管理裝置1互相聯合而以一個記憶體管理裝置之方式動作。
記憶體模組30之記憶體管理裝置1包含相對於記憶體模組30內之複數個非揮發性半導體記憶體29之ECC(Error Checking and Correction,誤差核對與改正)功能及RAID(Redundant Array of Inexpensive Disks,廉價磁碟冗餘陣列)功能,並進行鏡像(mirroring)及分割(striping)。
各非揮發性半導體記憶體29即便於記憶體模組30通電中(動作中),亦可熱調換(更換)。於複數個非揮發性半導體記憶體29之各個上對應有按鈕31。
按鈕31包括警告輸出部(例如LED(Light Emitting Diode,發光二極體)等)。例如,於警告輸出部為第1顏色(綠色)之情形時,表示正常狀態,於為第2顏色(紅色)之情形時表示需要更換之狀態。
當按鈕31被按壓時,便對程序6a、6b、6c及作業系統27發送通知,於未產生存取等而卸下安全時,按鈕31變為第3顏色(藍色),與該按鈕31相對應之非揮發性半導體記憶體29可進行熱調換。
於執行熱調換時,按壓請求熱調換之按鈕31之後,於寫回結束之時間點,表示可更換之燈點亮,從而可進行非揮發性半導體記憶體29之更換。
記憶體管理裝置1之處理部15參照記憶於資訊記憶部17中之記憶體使用資訊11與記憶體固有資訊12,判斷各非揮發性半導體記憶體29之覆寫次數或讀出次數是否達到記憶體固有資訊12中所敍述之可存取之上限次數的特定比例。而且,於寫入次數或讀出次數達到可寫入之上限次數或可讀出之上限次數之特定比例之情形時,處理部15通知或警告更換記憶體。
於本實施形態中,於非揮發性半導體記憶體29之頁面大小或區塊大小較大之情形時,預載較為有效。
於進行預載之情形時,記憶體管理裝置1之處理部15參照與記憶於非揮發性半導體記憶體29中之資料相對應之著色資訊,將頻繁存取可能性高之資料事先預載於快取記憶體28中。
或者,處理部15將具有週期性之資料、且於特定時間存取可能性高之資料於該特定時間之前預載。
於本實施形態中,根據混合主記憶體2之各記憶體之耐久性決定資料之配置,可延長混合主記憶體2之壽命。又,可實現相對於混合主記憶體2之高速之存取。
於本實施形態中,根據混合主記憶體2之各記憶體之耐久性配置資料,因此可防止混合主記憶體2中之致命性資料缺損。
藉由使用本實施形態之記憶體管理裝置1及混合主記憶體2,可無需調換。
於本實施形態中,非揮發半導體記憶體9、10用作主記憶體。藉此,可使主記憶體之記憶容量大容量化,亦可不使用利用有硬碟或SSD(Solid State Disk,固態磁碟)之輔助記憶裝置。
於本實施形態中,因將非揮發性半導體記憶體9、10用作主記憶體,故而可使隨開即用高速化。
(第2實施形態)
作為電腦架構之基本類型之範紐曼型架構具有因CPU(Central Processing Unit,中央處理單元)之頻率與主記憶體之速度差而產生之被稱為範紐曼瓶頸的問題。先前,於將揮發性記憶體用於主記憶體之情形時,藉由將高速快取記憶體(SRAM(static random access memory,靜態隨機存取記憶體)等)設置於主記憶體與CPU芯之間,以緩和該問題。
近來,開發了使用較揮發性半導體記憶體低速之非揮發性半導體記憶體作為主記憶體之技術。於該情形時,上述問題更顯著地出現。因此,必需提高快取記憶體之命中率。
本實施形態中,於將非揮發性記憶體作為主記憶體之情形時,對可提高快取記憶體之命中率之記憶體管理裝置進行說明。
本實施形態中,將非揮發性半導體記憶體9、10用作主記憶體,將揮發性半導體主記憶體8之一部分用作快取記憶體。本實施形態中,對用作快取記憶體之揮發性半導體記憶體8進行說明。
圖30表示揮發性半導體記憶體(以下,亦僅稱為快取記憶體)8之實體位址空間。
於本實施形態中,快取記憶體8之實體位址空間被分為複數個區域(area)L0~L5。各區域不需要於實體位址空間上連續。關於各區域之大小,例如越上位之區域則實體位址空間設定得越大。進而,上位之區域可於鄰接之下位之區域擴展區域。各區域之最大擴展大小由區界ELM而管理。
上位區域之區域大小較大,因此該區域內之資料可長期保持之可能性高。另一方面,下位區域之區域大小較小,因此該區域內之資料僅可短期保持之可能性高。
於本實施形態中,於上位區域配置寫出優先度低之資料,於下位區域配置寫出優先度高之資料。例如,圖1之寫入管理部20進行該配置之處理。寫出優先度係使用著色資訊判斷。再者,所謂「寫出」係指自揮發性半導體記憶體8向非揮發性半導體記憶體9、10之資料之移動。
快取記憶體8具有快取標頭CHD。快取標頭CHD儲存各區域之管理資訊。即,快取標頭CHD中記憶有各區域之區界ELM、可用快取線列表FCL、及區域快取線列表ECL。
可用快取線列表FCL係管理快取記憶體8之空白區域之資料結構,並儲存作為與不屬於任一區域之快取線相對應之管理資訊之複數個節點。
區域快取線列表ECL係管理快取記憶體8之使用區域之資料結構,並針對每個區域而儲存從可用快取線列表FCL所獲取之節點。
快取標頭CHD之內容係藉由資訊處理裝置100之啟動時自非揮發性半導體記憶體讀入而初始化。又,資訊處理裝置100之結束時,快取標頭GHD之內容被退回至非揮發性半導體記憶體區域。
資訊處理裝置100之啟動時(冷啟動時),作業系統所設定之內容被記錄於快取標頭CHD中,並生成各區域之基本資訊。
再者,區界ELM可由用戶結合各自之系統之使用形態而設定,亦可設置用以實現其之介面。
關於可用快取線列表FCL、區域快取線列表ECL、及節點之詳細情況將於下文敍述。
如上述般,寫入至混合主記憶體2中之資料,具有作為決定混合主記憶體2上之配置(寫入)區域之提示資訊之著色資訊。因此,使用該著色資訊控制對於快取記憶體8之各區域之資料之寫入,藉此可提高快取之命中率。藉此,可實現對非揮發性半導體記憶體9、10之讀出之頻率之降低,且可保護非揮發性半導體記憶體9、10。
圖31(a)(b)、圖32(a)(b)表示表(CET)之例,該表(CET)表示上述著色表14之著色資訊、與圖30所示之快取記憶體8之各區域之對應關係。
圖31(a)係使讀出存取優先者,可提高讀出之命中率。具體而言,圖31(a)表示作為著色資訊之資料壽命SL_color、靜態讀出頻率資訊SR_color、動態讀出頻率DR_color、及揮發性半導體記憶體8之區域之對應關係。如圖31(a)所示,靜態讀出頻率資訊SR_color之值越大、且讀出頻率越高之資料,越配置於揮發性半導體記憶體8之上位之區域。即,於使讀出存取優先之情形時,參照靜態讀出頻率資訊SR_color與動態讀出頻率DR_color,將靜態讀出頻率資訊SR_color與動態讀出頻率DW_color配置於區域之大小較大之上位區域。上位區域之區域大小較大,因此該區域內之資料可長期保持之可能性高。因此,可提高讀出存取之快取命中率。
又,資料壽命為「S」之資料與其他著色資訊無關均配置於區域L5。例如,關於運算中途之資料等,資料之壽命短,因此寫入至非揮發性半導體記憶體9、10中之必要較低。然而,如此之資料存在多數。因此,如此之資料於快取記憶體8中,配置於最大大小之區域L5。
圖31(b)係使寫入存取優先者,且可提高寫入之命中率。具體而言,圖31(b)表示作為著色資訊之資料壽命SL_color、靜態寫入頻率資訊SW_color、動態寫入頻率資訊DW_color、及揮發性半導體記憶體8之區域之對應關係。即,於使寫入存取優先之情形時,參照靜態寫入頻率資訊SW_color與動態寫入頻率DW_color,將靜態寫入頻率資訊SR_color與動態寫入頻率SW_color配置於區域之大小較大之上位區域。藉此,可提高寫入存取之快取命中率。
又,資料壽命為「S」之資料,與圖31(a)同樣地配置於區域L5。
圖32(a)係考慮讀出頻率與寫入頻率之兩者,若讀出頻率與寫入頻率之至少一者高則可提高命中率。具體而言,表示作為著色資訊之資料壽命SL_color、靜態讀出頻率資訊SR_color之值與靜態寫入頻率資訊SW_color之值的和、及揮發性半導體記憶體8之區域之對應關係。
圖32(b)係圖32(a)之變形,係對讀出頻率與寫入頻率加權所得者,對讀出頻率與寫入頻率任意設定權重,且可提高命中率。與圖32(a)不同,將揮發性半導體記憶體8之區域對應於SR_color*W+SW_color*(1-W)之值。
於圖32(a)(b)中,資料壽命為「S」之資料與圖31(a)(b)同樣地配置於區域L5。
關於圖31(a)(b)、圖32(a)(b)所示之表示著色資訊與區域之關係之表CET,該等之中之一個例如記憶於資訊記憶部17中。
又,著色資訊與區域之關係並非限定於圖31(a)(b)、圖32(a)(b)所示之例者,可根據用戶之請求而變化。因此,為了具有擴展性,而將快取記憶體8之區域設定為能夠以上述方式擴展。
其次,參照圖33,對快取區域之管理方法之一例進行說明。圖33表示記憶於快取記憶體8之快取標頭CHD中之可用快取線列表FCL、區域快取線列表ECL之一例。
可用快取線列表FCL如上述般,係表示快取記憶體8之空白區域之資料結構,且包括與快取線相對應之複數個節點ND。各節點ND包括快取線之實體位址、所屬區域、更新旗標。
快取線與非揮發性半導體記憶體9、10之頁面大小(I/O大小)相對應。各節點ND記憶快取線之實體位址。
所屬區域為設定於快取記憶體中之區域L0~L5之任一者。
更新旗標係表示快取線之資料是否產生更新等之旗標。於該更新旗標為「0」之情形時,表示資料被刪除,或者,表示資料被寫入至揮發性半導體記憶體8中、且該已寫入之資料未被更新。
又,於更新旗標為「1」之情形時,表示快取線之資料被更新、且該資料之更新不反映於非揮發性半導體記憶體9、10。
該更新旗標例如藉由處理部15而控制。於將資料自非揮發性半導體記憶體9、10寫入至快取記憶體8中時,處理部15將所對應之更新旗標設為「0」,於該已寫入之資料於快取記憶體8中更新之情形時,處理部15將更新旗標設為「1」。又,於快取記憶體8之資料被刪除時,處理部15將所對應之更新旗標設為「0」,進而,於將快取記憶體8之資料之更新反映於非揮發性半導體記憶體9、10之情形時,處理部15將所對應之更新旗標設為「0」。
再者,更新旗標亦可不配置於各節點,例如參照表示記憶於資訊處理部17中之壞位元之欄之內容。
另一方面,區域快取線列表ECL如上述般,係管理快取記憶體8之使用區域之資料結構,與各區域中所包含之快取線相對應而儲存節點。即,於將自非揮發性半導體記憶體9、10讀出之資料寫入至快取記憶體8中之情形時,根據資料中所附之著色資訊搜尋可用快取線列表FCL之各節點之所屬區域,於為空白區域之情形時,獲取其節點,並將其配置於區域快取線列表ECL之對應之區域。例如,於寫入資料為應寫入至區域L5中之資料之情形時,搜尋可用快取線列表FCL之各節點,獲取區域L5或作為擴展區域之下位之區域L4~L0中之一個節點。該已獲取之節點係連接於與區域L5相對應之區域快取線列表ECL。
又,根據已獲取之節點之快取線實體位址,將資料寫入至快取記憶體8中。進而,將節點ND之更新旗標設定為「0」。
例如,區域快取線列表ECL係根據FIFO(First-in/First-Out,先進/先出)或LRU(Least Recently Used,最近最少使用)等演算法而管理。因此,例如,於與各區域相對應而從可用快取線列表FCL獲取節點之情形時,將已獲取之節點根據所設定之演算法而排序。
區域快取線列表ECL之例如位於開頭之節點相對應之快取線一直成為該區域之寫出對象。
又,區域快取線列表ECL中,與各區域相對應而配置之節點之數量藉由區界ELM而管理,且以使各區域之列表之長度不超過區界ELM之方式進行管理。
再者,圖33中,作為快取區域之管理方法,對使用快取標頭之軟體處理之管理進行了說明,亦可為使用由快取標籤管理快取線之構成之硬體之管理。
圖34表示例如處理部15之資料之寫入處理。即,圖34表示決定自非揮發性半導體記憶體9、10重新讀出資料、配置於快取記憶體8中之情形時之處理之流程。本實施形態中,使各區域之大小之長度可變,因此藉由區域是否可擴展,而至資料寫入為止之程序不同。
於圖34中,於將資料配置於快取記憶體8中之情形時,首先,決定快取記憶體8之資料配置區域(步驟S31)。即,根據圖31(a)(b)、圖32(a)(b)所示之對應關係,決定將所讀出之資料配置於快取記憶體8之哪個區域。
具體而言,根據自非揮發性半導體記憶體9、10讀出之資料中所附之著色資訊,參照例如圖31(a)所示之表CET。於資料中所附之著色資訊中,資料壽命為「L」、靜態讀出頻率資訊SR_color之值為「1」、讀出頻率為「高」之情形時,該資料配置於區域L0。又,於資料中所附之著色資訊中,資料壽命為「L」、SR_color之值為「4」、讀出頻率為「高」之情形時,該資料配置於區域L4。
其次,判別區域是否可擴展(步驟S32)。例如,可根據區域快取線列表之節點之數量,識別該區域之目前之大小。因此,該目前之大小、與快取標頭CHD中所記載之區界ELM之值得到比較。其結果為,於目前之大小小於區界ELM之值之情形時,判定為區域可擴展。
於區域為可擴展之情形時,判定可用快取線列表FCL中是否存在與該區域相對應之節點ND(步驟S33)。即,搜尋可用快取線列表FCL內之節點之所屬區域,判別所對應之區域是否存在。於該情形時,於資料為應寫入至區域L4之資料之情形時,區域L4可擴展至區域L3之一部分為止,因此搜尋區域L4與區域L3。
其結果為,於所對應之節點ND存在之情形時,從可用快取線列表獲取該節點ND(步驟S34)。
自該已獲取之節點ND獲取快取線之實體位址,並根據該實體位址,將自非揮發性半導體記憶體9、10讀出之資料寫入至快取記憶體8中(步驟S35)。
此後,更新快取標頭CHD(步驟S36)。即,將從可用快取線列表FCL獲取之節點ND移動至區域快取線列表ECL,將更新旗標設定為資料「0」。
其次,更新位址轉換表(步驟S37)。即,將與寫入至快取記憶體8中之資料相對應之非揮發性半導體記憶體9、10之實體位址寫入至位址轉換表。
另一方面,於步驟S33中,於判定為與可用快取線列表FCL相對應之節點ND不存在之情形時,自最下位區域起搜尋區域快取線列表ECL(步驟S38)。即,為了生成新節點ND,必需將快取記憶體8內之任一資料向非揮發性半導體記憶體9、10傳輸而生成可用區域。因此,搜尋圖33所示之區域快取線列表ECL之最下位區域L0至區域L5之所有區域。
例如,於自非揮發性半導體記憶體9、10讀出之資料為應寫入至區域L4之資料之情形時,區域L4可向下位區域之一部分擴展。因此,可獲取區域快取線列表ECL之下位區域之節點ND。
其次,判定是否可獲取節點ND(步驟S39)。其結果為,於可獲取節點ND之情形時,自該已獲取之節點ND獲取快取線之實體位址,並根據該實體位址,將快取記憶體8內之資料寫入至非揮發性半導體記憶體9、10中(步驟S40)。
此後,更新快取標頭CHD(步驟S41)。即,將與區域快取線列表ECL之節點ND相對應之資料寫入至非揮發性半導體記憶體9、10中,藉此生成可用之節點ND。將該節點ND移動至可用快取線列表FCL,並將更新旗標設定為資料「0」。
其次,控制轉移至上述步驟S33。於該情形時,可用快取線列表FCL中存在可用之節點ND,因此獲取該節點,將資料寫入至由該節點指定之實體位址(步驟S33~S35)。其次,更新快取標頭CHD及位址轉換表(步驟S36、S37)。
又,於步驟S32中,於判別為區域之擴展困難之情形時,搜尋區域快取線列表ELC之該區域之節點ND,獲取開頭節點ND(步驟S42)。該已獲取之節點ND為優先度低之區域之節點。
此後,與上述動作同樣地,自所獲取之節點獲取快取線之實體位址,並根據該實體位址,將揮發性半導體記憶體8之資料寫入至非揮發性半導體記憶體9、10中(步驟S40)。此後,更新快取標頭(步驟S41)。
進而,於上述步驟S39中,於搜尋區域快取線列表ECL之結果為無法獲取節點ND之情形時,無法使用快取記憶體8,因此將資料寫入至非揮發性半導體記憶體9、10(步驟S43)。此後,更新位址轉換表(步驟S37)。
圖35表示快取記憶體8之刪除動作之一例。快取記憶體8可藉由軟體而刪除。
如圖35所示,於發出記憶於快取記憶體8中之資料之刪除請求之情形時(步驟S51),搜尋各節點ND之更新旗標,檢測非揮發性半導體記憶體9、10中未被更新之資料(步驟S52)。即,例如檢測區域快取線列表ECL之更新旗標為資料「1」之節點。其結果為,於無資料「1」之更新旗標之情形時,處理結束。
又,於有資料「1」之更新旗標之情形時,根據其節點ND之快取線之實體位址,將快取記憶體8內之資料寫入至非揮發性半導體記憶體9、10中(步驟S53)。
此後,更新快取標頭CHD(步驟S54)。即,將區域快取線列表ECL之節點轉移至可用快取線列表FCL,將更新旗標設定為資料「0」。其次,控制轉移至步驟S52。重複如此之動作直至無資料「1」之更新旗標為止。
根據上述第2實施形態,根據資料中所附之著色資訊與快取記憶體8之區域之關係,將重要度高之資料記憶於揮發性半導體記憶體8之上位之區域。因此,可提高快取記憶體8之命中率。
又,因快取記憶體8之命中率較高,故而可減少對非揮發性半導體記憶體9、10之存取次數,從而可保護非揮發性半導體記憶體9、10。
而且,上位之區域中有擴展區域,因此直至擴展區域佔滿為止可寫入資料。於區域較小之情形時,即便重要度較高,存取不短暫之資料根據例如LRU之演算法而自快取記憶體8寫回之可能性亦較高。然而,可將上位區域擴展至下位區域為止,從而確保包含擴展區域在內之較廣區域,藉此亦可將存取較少之資料保存於快取記憶體內。因此,可提高快取記憶體8之命中率。
又,快取記憶體8中,針對每個著色資訊而將區域分為L0~L5。於作為上位之區域之例如區域L5記憶規定之大小以上的資料之情形時,可將區域擴展至較其下位之區域L4之一部分為止。又,於將資料寫入至擴展區域為止、而無法擴展區域之情形時,根據FIFO或LRU等演算法,將快取記憶體8之資料向非揮發性半導體記憶體9、10寫回。最下位之區域L0不具有擴展區域,因此於區域佔滿之情形時,根據FIFO或LRU等演算法進行寫回。因此,可將寫入頻率高之資料長期保存於快取記憶體8中。因此,可保護刪除次數存在限制之非揮發性半導體記憶體9、10。
(第3實施形態)
其次,使用圖36至圖42,對第3實施形態之記憶體管理裝置及其控制方法進行說明。本實施形態係上述第1實施形態之變形例。本實施形態關於可削減向非揮發性半導體記憶體(NAND型快閃記憶體)9、10之存取次數,且可延長記憶體壽命之一例。再者,於該說明中,省略與上述第1實施形態重複之部分之詳細的說明。
<位址轉換資訊之有效/無效旗標之真值>
首先,使用圖36,對上述圖4中之位址轉換資訊13所具有之表示非揮發性半導體記憶體9、10上之資料之有無的有效(valid)/無效(invalid)旗標之真值進行說明。
如圖所示,旗標之初始值為「0」。
旗標「0(無效)」表示所對應之邏輯位址未映射於非揮發性半導體記憶體9、10中,或者雖映射但成為刪除對象。
旗標「1(有效)」表示所對應之邏輯位址映射於非揮發性半導體記憶體9、10中之至少一者中。
再者,旗標「0(無效)」係當非揮發性半導體記憶體(NAND)9、10上所存在之區塊內之所有頁面為旗標「0(無效)」時,可將該區塊中所存在之所有資料刪除。只要區塊內存在一個旗標「1(有效)」之頁面,則該區塊仍無法刪除。
<有效/無效旗標之狀態過渡>
其次,使用圖37,對上述非揮發性半導體記憶體9、10之有效(valid)/無效(invalid)旗標之狀態過渡進行說明。
如圖所示,當映射於非揮發性半導體記憶體9、10中時,有效/無效旗標自旗標「0」至「1」進行狀態過渡。另一方面,於非揮發性半導體記憶體9、10上之資料成為刪除對象之情形時,自旗標「1」至「0」進行狀態過渡。
<1.記憶體釋放請求之處理流程>
其次,根據圖38對混合主記憶體2之記憶體釋放請求之處理流程進行說明。
(S001)
如圖所示,首先,步驟S001時,例如,處理器3a之作業系統OS(相當於第1實施形態之作業系統27)將揮發性半導體記憶體8之記憶體釋放請求(引數:邏輯位址)發送至記憶體管理裝置1中。
(S002)
繼而,步驟S002時,接收上述記憶體釋放請求之記憶體管理裝置1參照上述位址轉換資訊(位址轉換表)13,確認與記憶體釋放請求之引數之邏輯位址相對應的揮發性半導體記憶體8上之實體位址是否具有非不確定之值,又,調查非揮發性半導體記憶體9、10之有效/無效位元,確認相應之資料是否存在於揮發性半導體記憶體8上或非揮發性半導體記憶體9、10上。
即,於上述位址轉換資訊13中之非揮發性半導體記憶體9、10之有效/無效位元為「0」之情形時,記憶體管理裝置1判斷引數之邏輯位址未映射於非揮發性半導體記憶體9、10上,於非揮發性半導體記憶體9、10之有效/無效位元為「1」之情形時,記憶體管理裝置1判斷引數之邏輯位址映射於非揮發性半導體記憶體9、10上。
而且,記憶體管理裝置1於非揮發性半導體記憶體9、10之有效/無效位元為「1」之情形時,參照揮發性半導體記憶體8之實體位址及非揮發性半導體記憶體9、10之實體位址,確認該資料之揮發性半導體記憶體8上及非揮發性半導體記憶體9、10上之存在之有無,並進行以下之控制。
例1(該資料存在於DARAM8上及NAND9、10上)
(S003)
繼而,步驟S003時,於該資料存在於揮發性半導體記憶體8上及非揮發性半導體記憶體9、10上之任一者之情形時,記憶體管理裝置1相對於揮發性半導體記憶體8,將與有釋放請求之邏輯位址相對應之揮發性半導體記憶體8上之實體位址的資料刪除而形成明示性空白區域,並將揮發性半導體記憶體8之壞位元設為「0」。此處,所謂揮發性半導體記憶體8之上述壞位元,係指表示揮發性半導體記憶體8上之資料可覆寫之位元,例如,存在於揮發性半導體記憶體8之標頭區域等。
(S004)
繼而,步驟S004時,記憶體管理裝置1相對於非揮發性半導體記憶體9、10,將與有釋放請求之邏輯位址相對應之非揮發性半導體記憶體9、10上之實體位址的有效/無效位元設為「0」而無效化,使之為刪除對象。再者,此時,嚴密而言,實際上不對非揮發性半導體記憶體(NAND)9、10進行資料刪除動作,僅作為刪除對象而去除有效位元。
例2(該資料僅存在於DARAM8上)
(S005)
繼而,步驟S005時,於該資料僅存在於揮發性半導體記憶體8上之情形時,記憶體管理裝置1同樣地將與有釋放請求之邏輯位址相對應之揮發性半導體記憶體8上之實體位址的資料刪除而形成明示性空白區域,將揮發性半導體記憶體8之壞位元設為「0」。
再者,本例中,旨在藉由於揮發性半導體記憶體(DRAM)8中形成空白區域,而削減向非揮發性半導體記憶體(NAND)9、10之存取次數,無需考慮無僅指定於非揮發性半導體記憶體(NAND)9、10上之資料之情形(未被快取之情形)。於與有釋放請求之邏輯位址相對應之資料不存在於揮發性半導體記憶體8上、而僅存在於非揮發性半導體記憶體9、10上之情形時,僅將有效/無效位元設為「0」(無效化)。
<1-2.記憶體釋放請求之揮發性半導體記憶體8之明示性空白區域>
如上述般,本例之記憶體管理裝置1相對於包含揮發性半導體記憶體(第1記憶體)8與非揮發性半導體記憶體(第2記憶體)9、10之混合主記憶體2,自處理器3接收指定釋放位置之邏輯位址,參照位址轉換資訊13調查上述指定之邏輯位址、揮發性半導體記憶體(第1記憶體)8之實體位址、非揮發性半導體記憶體(第2記憶體)9、10之實體位址及該非揮發性半導體記憶體9、10上之實體位址中所存在的資料之有效/無效旗標,確認存在與有釋放請求之邏輯位址相對應之資料之實體位址。而且,若揮發性半導體記憶體(第1記憶體)8上存在對應之資料則將其刪除而形成明示性空白區域,只要非揮發性半導體記憶體(第2記憶體)9、10上亦存在對應之資料,則實際上不進行資料之刪除動作,將有效/無效旗標設為「0」,而無效化。換言之,相對於藉由記憶體釋放請求而指定之邏輯位址,於揮發性半導體記憶體(DRAM)8中形成明示性空白區域。
圖39係用以說明形成圖38中之記憶體之釋放請求時之揮發性半導體記憶體之明示性空白區域之圖。例如,如圖所示,於揮發性半導體記憶體(DRAM)8之記憶體空間上,於與藉由記憶體釋放請求而指定之邏輯位址相對應之實體位址xh,可形成經刪除之明示性空白區域FS0。
藉此,可減少揮發性半導體記憶體8之資料量,因此可減少向非揮發性半導體記憶體9、10之存取次數,且可延長非揮發性半導體記憶體9、10之記憶體壽命,在上述方面較為有利。
<2.記憶體獲得請求之處理流程>
其次,根據圖40對混合主記憶體2之記憶體獲得請求之處理流程進行說明。
(S011)
如圖所示,首先,步驟S011時,例如,處理器3a中之應用程式App將記憶體獲得請求發送至作業系統OS。
(S012)
繼而,步驟S012時,作業系統OS確保可用(任意)之邏輯位址之一部分。該階段中,尚未確保之邏輯位址未映射於揮發性半導體記憶體或非揮發性半導體記憶體上之實體位址,今後,有寫入請求則開始映射。此時,本例中,於以下所說明之資料讀出及資料寫入之前,可確保基於著色資訊(提示資訊)之記憶體區域。因此,於延長非揮發性半導體記憶體9、10之記憶體壽命之方面較為有利。
(S013(資料讀出請求))
繼而,步驟S013時,應用程式App對作業系統OS請求讀出(read)資料。
(S014)
繼而,步驟S014時,作業系統OS對記憶體管理裝置1請求讀出(read)資料。
於是,記憶體管理裝置1參照位址轉換資訊13,搜尋與有資料讀出(read)請求之邏輯位址相對應之進入點。
此處,只要映射,則送回與有資料讀出請求之邏輯位址相對應之揮發性半導體記憶體8上或非揮發性半導體記憶體9、10上之實體位址中所存在之資料。另一方面,於當前時間點仍未映射,不確定之值進入上述實體位址之情形時,代替上述情況而送回清零之資料。
關於詳細情況,將根據圖41所示之流程於下文敍述。
(S015(資料寫入請求))
繼而,步驟S015時,應用程式App對作業系統OS請求寫入(write)資料。
(S016)
繼而,步驟S016時,作業系統OS對記憶體管理裝置1請求寫入(write)資料。
於是,記憶體管理裝置1參照位址轉換資訊13,輸入相對於上述經確保之邏輯位址之映射結果(揮發性半導體記憶體上或非揮發性半導體記憶體上之實體位址)。此時,映射於非揮發性半導體記憶體9、10上之情形時,將表示非揮發性半導體記憶體9、10上之資料之有無之有效/無效位元設為「1」,而有效化。
關於詳細情況,將根據圖42所示之流程於下文敍述。
<2-1.記憶體資料讀取請求時之處理流程>
其次,根據圖41對上述步驟S014時之記憶體資料讀取請求之處理流程進行詳細說明。
(S201)
如圖所示,首先,步驟S201時,例如,處理器3a之應用程式App對作業系統OS進行讀出請求,作業系統OS對記憶體管理裝置1指定邏輯位址,並請求記憶體資料讀取。
(S202)
繼而,步驟S202時,接收到上述記憶體資料讀取請求之記憶體管理裝置1參照位址轉換資訊(表)13,判定揮發性半導體記憶體8上是否存在與邏輯位址相對應之資料。
(S203)
繼而,步驟S203時,於步驟S202時之判定中判定為揮發性半導體記憶體8上存在與邏輯位址相對應之資料之情形時(是),作業系統OS藉由記憶體管理裝置1,讀出與邏輯位址相對應之揮發性半導體記憶體8之實體位址上所存在之資料,結束(End)該動作。
(S204)
繼而,步驟S204時,於步驟S202時之判定中判定為揮發性半導體記憶體8上不存在與邏輯位址相對應之資料之情形時(否),記憶體管理裝置1再次參照位址轉換資訊(表)13,判定非揮發性半導體記憶體9、10上是否存在與邏輯位址相對應之資料。
(S205)
繼而,步驟S205時,於上述步驟S204時之判定中判定為非揮發性半導體記憶體9、10上存在對應之位址之情形時(是),作業系統OS藉由記憶體管理裝置1,讀出與邏輯位址相對應之記憶於非揮發性半導體記憶體9、10中之該資料。
(S206)
繼而,步驟S206時,作業系統OS藉由記憶體管理裝置1,將上述步驟S205時自非揮發性半導體記憶體9、10讀出之上述資料寫入至揮發性半導體記憶體8上。
(S207)
繼而,步驟S207時,記憶體管理裝置1設定位址轉換資訊13之該進入點之揮發性半導體記憶體8之實體位址,將位址轉換資訊13中之有效/無效位元設為「1」,將壞位元設為「0」,從而結束(End)。
(S208)
繼而,步驟S208時,於上述步驟S204時之判定中判定為非揮發性半導體記憶體9、10上不存在對應之位址之情形時(否),作業系統OS將記憶體管理裝置1清零之資料發送至處理器3a側,從而結束(End)。
此處,所謂上述「將清零之資料發送至處理器3a側」,本來只要揮發性及非揮發性半導體記憶體之至少任一者中存在資料,則發送與邏輯位址相對應之實體位址中所存在之資料之內容。然而,於該情形時,因尚未映射,而無相應之資料,故而實際上發送資料之內容係指代替上述情況而將由零填埋之相應大小之部分作為資料回復。
再者,此後,亦可將上述清零之資料寫入至揮發性半導體記憶體8上。
<2-2.記憶體資料寫入請求時之處理流程>
其次,根據圖42對上述步驟S016時之記憶體資料寫入請求時之處理流程進行詳細說明。
(S301)
如圖所示,首先,步驟S301時,例如處理器3a之應用程式App對作業系統OS請求寫出(write),作業系統OS對記憶體管理裝置1指定邏輯位址,請求記憶體資料寫入。
(S302)
繼而,步驟S302時,接收到上述記憶體資料寫入請求之記憶體管理裝置1參照位址轉換資訊(表)13,判定揮發性半導體記憶體8上是否存在與邏輯位址相對應之資料。
(S303)
繼而,步驟S303時,於步驟S302時之判定中判定為揮發性半導體記憶體8上存在與邏輯位址相對應之資料之情形時(是),作業系統OS藉由記憶體管理裝置1,將該資料寫入至與邏輯位址相對應之揮發性半導體記憶體8上之實體位址。
(S304)
繼而,步驟S304時,記憶體管理裝置1參照位址轉換資訊13,將與該位址相對應之揮發性半導體記憶體8之進入點之壞位元設為「1」(結束)。
(S305)
繼而,步驟S305時,於上述步驟S302時之判定中判定為揮發性半導體記憶體8上存在與邏輯位址相對應之資料之情形時(否),記憶體管理裝置1再次參照位址轉換資訊13,判定非揮發性半導體記憶體9、10上是否存在與邏輯位址相對應之資料。
(S306)
繼而,步驟S306時,於上述步驟S305時之判定中判定為非揮發性半導體記憶體9、10上存在與邏輯位址相對應之資料之情形時(是),作業系統OS藉由記憶體管理裝置1,讀出與邏輯位址相對應之非揮發性半導體記憶體9、10上之實體位址中所存在之資料。
(S307)
繼而,步驟S307時,於上述步驟S305時之判定中判定為非揮發性半導體記憶體9、10上不存在與邏輯位址相對應之資料之情形時(否),作業系統OS將記憶體管理裝置1清零之資料發送至處理器3a側,並進入下一步驟S308。
(S308)
繼而,步驟S308時,記憶體管理裝置1將自上述非揮發性半導體記憶體讀出之資料或清零之資料寫入至揮發性半導體記憶體8上。
(S309)
繼而,步驟S309時,記憶體管理裝置1設定位址轉換資訊(表)13之該進入點之揮發性半導體記憶體8之實體位址,將位址轉換資訊13中之有效/無效位元設為「1」,將壞位元設為「0」。
(S310)
繼而,步驟S310時,記憶體管理裝置1將更新之資料寫入至揮發性半導體記憶體8上,並結束該動作(結束)。
此處,如上述般,本例中,一次讀出存在於揮發性半導體記憶體8、非揮發性半導體記憶體9、10上之資料等之後,於揮發性半導體記憶體8上覆寫為更新之資料。此係為了防止於資料寫入時,若於非揮發性半導體記憶體9、10上覆寫則存取之次數增加(由於必需讀出+寫入)。
<2-3.作用效果>
如上述般,本例之記憶體管理裝置1中,於步驟S012時,自應用程式接收到上述記憶體獲得請求之作業系統OS確保可用之邏輯位址之一部分。其後,於產生寫入請求時,根據伴隨邏輯位址寫入次數等之著色資訊,確保揮發性半導體記憶體8或者非揮發性半導體記憶體9、10中適當者之記憶體區域。
進而,本例之記憶體管理裝置1於揮發性半導體記憶體8上形成明示性空白區域,因此應寫出至非揮發性半導體記憶體9、10之揮發性半導體記憶體8上之資料減少,可削減向可存取之次數存在限制之包含NAND型快閃記憶體之非揮發性半導體記憶體之存取次數。
因此,於可延長包含NAND型快閃記憶體之非揮發性半導體記憶體9、10之記憶體壽命之方面較為有利。
再者,本例中,已說明如圖4所示由共用之位址轉換表對作為快取記憶體之揮發性半導體記憶體8、與非揮發性半導體記憶體9、10進行管理,但並不限定於此,亦可將揮發性半導體記憶體8、與非揮發性半導體記憶體9、10分開管理。例如,揮發性半導體記憶體8亦可由快取標籤(表)而管理。又,快取標籤中亦可不必包含著色資訊。
(第4實施形態)
NAND型快閃記憶體一般而言用作輔助記憶裝置。於該情形時,記憶於NAND型快閃記憶體中之資料之大部分具有實體區塊大小以上之資料大小。因此,於將NAND型快閃記憶體用作輔助記憶裝置之情形時,一個區塊區域內包含刪除頻率不同之複數個資料之情況較為罕見。
相對於此,如上述般,於將NAND型快閃記憶體用作主記憶體之情形時,推測自NAND型快閃記憶體讀出之資料之大小及寫入至NAND型快閃記憶體中之資料之大小小於NAND型快閃記憶體之實體區塊大小的情況較多。
本實施形態係上述第1實施形態之變形例,對如下記憶體管理裝置1進行說明:將複數個寫入對象資料根據著色資訊而分類為複數個群組(色彩群組),將屬於相同群組之複數個寫入對象資料彙集,構成區塊大小之資料。
作為著色資訊,例如,可採用第1實施形態中所說明之靜態色彩資訊及動態色彩資訊之至少一個。作為靜態色彩資訊,例如,可採用「重要度」、「讀出頻率、寫入頻率」、「資料壽命」之至少一個。作為動態色彩資訊,例如,可採用資料之讀出及寫入之次數、資料之讀出及寫入之頻率的至少一個。
於本實施形態中,以非揮發性半導體記憶體9、10為NAND型快閃記憶體之情形為例進行了說明,但非揮發性半導體記憶體9、10之類別並不限定於此。此處,對於覆寫方式進行簡單說明。所謂覆寫方式,係指使用NAND型快閃記憶體之記憶體系統之寫入方式之一。
NAND型快閃記憶體中,相對於進行了一次寫入之頁面,只要不在將包含該頁面之區塊整體刪除之後,則無法進行再次寫入。換言之,NAND型快閃記憶體中,相對於相同之實體位址(NAND型快閃記憶體之實體位址,以下稱為NAND實體位址),只要不在刪除後則無法覆寫。
另一方面,覆寫方式中,邏輯位址(NAND型快閃記憶體之邏輯位址,以下稱為NAND邏輯位址)與NAND實體位址之對應關係藉由邏輯實體轉換表而管理,該等關係可動態地變更。於包含NAND型快閃記憶體之記憶體系統採用覆寫方式之情形時,以可自上層對任意之邏輯位址覆寫之方式而動作。
NAND型快閃記憶體之邏輯實體轉換表中,對區塊單位之NAND邏輯位址(以下,稱為NLBA)、與區塊單位之NAND實體位址(以下,稱為NPBA)之對應關係進行管理。NAND型快閃記憶體之邏輯實體轉換表係以區塊單位而管理,因此即便於僅更新區塊大小以下之大小、例如1頁面之資料之情形時,亦必需進行包含該資料之區塊整體之刪除處理。
具體而言,於更新與NLBA之一部分相對應之資料之情形時,對該NLBA分配新的NPBA。更新資料被寫入至與新的NPBA相對應之區域,此時,將儲存於舊NPBA中之未更新之資料複製(copy)至與新的NPBA相對應之區域。再者,亦可相對於一個NLBA分配複數個NPBA用於更換資料,於該等之間進行伴隨更新之資料更換。
本實施形態中,對基於作為著色資訊,例如,靜態寫入頻率SW_color,將寫入對象資料分組之情形進行說明。然而,亦可根據其他著色資訊,例如,靜態讀出頻率SR_color、動態寫入頻率DW_color、動態讀出頻率DW_color等之各種基準,進而複數個基準之組合將寫入對象資料分組。
於本實施形態中,用以將複數個寫入對象資料分組之管理大小小於NAND型快閃記憶體之區塊大小。例如,作為管理大小之一單位,使用與著色表14之管理單位相等之頁面。
圖43係表示本實施形態之記憶體管理裝置1之功能構成之主要部分之一例之方塊圖。著色資訊管理部21除了包含圖2所說明之存取頻率算出部24、動態色彩資訊管理部25,還包含群組值算出部201、預約列表管理部202。
又,記憶體管理裝置1包含寫入管理部20、儲存於資訊記憶部17中之著色表14、儲存於工作記憶體16中之預約列表32。關於記憶體管理裝置1中所包含之其他功能區塊與圖2所說明者相同,故而此處省略圖示及說明。
群組值算出部201參照著色表14,根據寫入對象資料之靜態寫入頻率SW_color而算出色彩群組值。色彩群組值係表示寫入對象資料屬於根據靜態寫入頻率SW_color而決定之色彩群組中之哪個色彩群組之值。色彩群組值係根據著色表14之著色資訊而算出,且表示寫入對象資料之分組結果。
群組值算出部201將每個資料之著色資訊作為輸入值,算出色彩群組值,該算出方法可進行各種變更。例如,群組值算出部201亦可將資料之靜態寫入頻率SW_color或動態寫入頻率DW_color直接用作色彩群組值。
於該情形時,群組值算出部201於靜態寫入頻率SW_color或動態寫入頻率DW_color之範圍較廣之情形時,以色彩群組之數量不會變得過多之方式而進行分組。又,例如,群組值算出部201亦可根據資料之靜態寫入頻率SW_color與動態寫入頻率DW_color中之至少一者,算出色彩群組值。
預約列表管理部202對表示相對於分配至各色彩群組之區塊之寫入對象資料之預約狀態的預約列表32進行管理。預約列表32例如記憶於工作記憶體16中,例如亦可記憶於資訊記憶部17等其他記憶部中。關於預約列表管理部202及預約列表32之詳細情況將於下文敍述。
寫入管理部20參照預約列表32,使將分配至預約節點之複數個寫入對象資料彙集而成之區塊大小之資料寫入至與非揮發性半導體記憶體9、10中之預約節點相對應的區塊。
此處使用圖44及圖45,對於向通常之NAND型快閃記憶體之寫入與本實施形態之記憶體管理裝置1的寫入之不同點進行說明。
圖44係表示未按照著色資訊將寫入對象資料分類之情形時之區塊大小之資料構成之一例之圖。
於採用覆寫方式之NAND型快閃記憶體中,即便於僅區塊內之資料之一部分更新之情形時,亦必需將該區塊整體刪除。因此,區塊之刪除頻率與區塊內之資料中存取頻率(例如,靜態寫入頻率SW_color)最高之資料成比例。
假如存取頻率極高之資料分散於各種區塊,則伴隨資料更新作業之區塊刪除頻繁發生,結果刪除頻率高之區塊數量增加,NAND型快閃記憶體之壽命變短。
相對於此,圖45係表示按照著色資訊將寫入對象資料分類之情形時之區塊大小之資料構成之一例之圖。
本實施形態中,如上述第1實施形態所說明般,可根據著色表14獲得著色資訊,因此可根據存取頻率(例如,靜態寫入頻率SW_color)將寫入對象資料分組。
群組值算出部201根據著色表14,將小於NAND型快閃記憶體之區塊大小之寫入對象資料分類為具有相同程度之存取頻率之色彩群組。
預約列表管理部202將屬於同一色彩群組之寫入對象資料以區塊大小彙集,並於區塊中封包化。
藉此,可使存取頻率高之資料彙集於一部分之區塊。而且,可使刪除頻率高之區塊之數量減少,從而可延長NAND型快閃記憶體之壽命。
圖46係表示本實施形態之位址轉換資訊13與非揮發性半導體記憶體9、10之實體位址空間,即NAND邏輯位址之關係之一例之圖。
位址轉換資訊13具有邏輯位址、揮發性半導體記憶體8之實體位址、非揮發性半導體記憶體9、10之實體位址(NAND邏輯位址)、有效/無效旗標作為項目。
於該位址轉換資訊13中,於資料儲存於揮發性半導體記憶體8中之情形時,與資料之邏輯位址相關聯,儲存有揮發性半導體記憶體8之實體位址。
於資料儲存於非揮發性半導體記憶體9、10中之情形時,與資料之邏輯位址相關聯,儲存有非揮發性半導體記憶體9、10之實體位址(NAND邏輯位址)。有效/無效旗標係表示各進入點是否有效之旗標。
首先,將色彩群組G2之寫入對象資料D1儲存於非揮發性半導體記憶體9、10中。於該情形時,相對於色彩群組G2之非揮發性半導體記憶體9、10之實體位址(NAND邏輯位址)區域被預約一個區塊。
進而,寫入對象資料D1之邏輯位址L1、對於色彩群組G2而預約之實體位址(NAND邏輯位址)區域中之任一實體位址(NAND邏輯位址)P1、表示有效之有效/無效旗標1儲存於位址轉換資訊13中。
其次,將色彩群組G4之寫入對象資料D2儲存於非揮發性半導體記憶體9、10中。於該情形時,對於色彩群組G4,預約非揮發性半導體記憶體9、10中之一個區塊之實體位址區域。
而且,寫入對象資料D2之邏輯位址、對於色彩群組G4而預約之實體位址區域中之任一實體位址Q1、表示有效之有效/無效旗標1儲存於位址轉換資訊13中。
此處,首先將儲存於非揮發性半導體記憶體9、10之實體位址空間中之寫入對象資料D1與屬於相同色彩群組G2之寫入對象資料D3儲存於非揮發性半導體記憶體9、10中。於該情形時,寫入對象資料D3之邏輯位址、對於色彩群組G2而預約之實體位址區域中之其他實體位址P2、表示有效之有效/無效旗標1儲存於位址轉換資訊13中。
圖47係表示非揮發性半導體記憶體9、10之邏輯實體轉換表(NAND邏輯實體轉換表)13a之一例之圖。NAND邏輯實體轉換表13a例如記憶於資訊記憶部17中。NAND邏輯實體轉換表13a表示NAND邏輯區塊位址NLBA、與NAND實體區塊位址NPBA之對應關係。
圖47中,例如,對NLBA0分配NPBA2,對NLBA1分配NPBA1,對NLBA2分配NPBA0。例如,NLBA0對應非揮發性半導體記憶體9、10之實體位址P1、P2...Pn。
圖48係表示預約列表32之一例之資料結構圖。
預約列表32對表示經預約之區塊區域單位之實體位址區域之預約節點321~326進行管理。該預約列表32係用以防止存取頻率高之資料與存取頻率低之資料包含於同一區塊中之管理區結構。預約節點例如為了與數量之增減靈活地對應,而由列表結構所管理。
各預約節點321~326包含分配至各預約節點之色彩群組值、預約實體位址(預約NAND邏輯位址)、空白區域大小。
預約實體位址係分配至預約節點之實體位址(NAND邏輯位址)區域中未使用且其次進行資料之配置之實體位址(NAND邏輯位址)。
空白區域大小表示分配至預約節點之實體位址(NAND邏輯位址)區域中未使用之區域之大小。
於邏輯位址空間上產生新資料之情形時,預約列表管理部202掃描預約列表32。其次,預約列表管理部202檢索具有與新資料之色彩群組值相同之色彩群組值、且空白區域大小大於新資料之大小之預約節點。
於檢索出預約節點之情形時,新資料之實體位址使用經檢索之預約節點之預約實體位址。
預約列表管理部202自分配至經檢索之預約節點之實體位址區域中,選擇未使用之位址區域,並更新經檢索之預約節點之預約實體位址。又,預約列表管理部202自空白區域大小削減新資料之大小,並進行經檢索之預約節點之空白區域大小之更新。
於未檢索出預約節點之情形時,預約列表管理部202確保區塊大小之新的實體位址區域,並對預約列表32增加新預約節點。預約列表管理部202對新預約節點之色彩群組值設定新資料之色彩群組值,對新預約節點之預約實體位址設定新確保之實體位址區域之未使用的實體位址,對新預約節點之空白區域大小設定新確保之實體位址區域之空白區域的大小。
圖49係表示本實施形態之群組值算出部201與預約列表管理部202之處理之一例之流程圖。
於步驟A1中,群組值算出部201算出寫入對象資料之色彩群組值。
於步驟A2中,預約列表管理部202根據寫入對象資料之色彩群組值,檢索預約列表32。
於步驟A3a、A3b中,預約列表管理部202判斷是否存在具有寫入對象資料之色彩群組值、且具有寫入對象資料之大小以上之空白區域之適當的預約節點。
於不存在適當的預約節點之情形時,於步驟A4中,預約列表管理部202參照記憶體使用資訊11、記憶體固有資訊12、著色表14,自實體位址(NAND邏輯位址)空間中預約區塊大小之新的實體位址區域。又,預約列表管理部202經由位址管理部18,使寫入對象資料之邏輯位址、與經預約之實體位址區域中之任一實體位址(例如開頭之實體位址)相關聯,而更新位址轉換資訊13。
於步驟A5中,預約列表管理部202對預約列表32追加經預約之一個區塊區域之預約節點,並對預約節點設定色彩群組值、預約位址、空白區域大小。然後,處理轉移至步驟A8a。
於存在適當的預約節點之情形時,於步驟A6中,預約列表管理部202將適當的預約節點之預約位址設為實體位址,並經由位址管理部18,使寫入對象資料之邏輯位址與實體位址相關聯,從而更新位址轉換資訊13。
於步驟A6中,預約列表管理部202更新適當的預約節點之預約位址、空白區域大小。然後,處理轉移至步驟A8a。
於步驟A8a、A8b中,預約列表管理部202判斷適當的預約節點之經更新之空白區域大小是否小於任意之大小。
於空白區域大小為任意之大小以上之情形時,處理結束。
於空白區域大小小於任意之大小之情形時,於步驟A9中,預約列表管理部202將該適當的預約節點自預約列表32中廢棄,從而處理結束。
圖50係表示本實施形態之位址轉換資訊13之狀態過渡之一例之圖。
於狀態1中,產生相對於邏輯位址「0x0010_0000」之資料,該邏輯位址「0x0010_0000」被註冊於位址轉換資訊13中。
群組值算出部201根據邏輯位址「0x0010_0000」且參照著色表14,算出相對於邏輯位址「0x0010_0000」之色彩群組值。預約列表管理部202根據色彩群組值,檢索預約列表32。
該例中,設為並無與色彩群組值相對應之預約節點(實體位址區域之範圍)。於未發現預約節點之情形時,預約列表管理部202根據記憶體使用資訊11、記憶體固有資訊12、著色表14,決定相對於邏輯位址「0x0010_0000」之實體位址「0x0030_0000」。
於狀態2中,與邏輯位址「0x0010_0000」相對應之實體位址「0x0030_0000」藉由位址管理部18而被註冊於位址轉換資訊13中。
群組值算出部201自實體位址「0x0030_0000」中預約相當於一個區塊區域之位址區域。
群組值算出部201將與該經預約之位址區域相對應之預約節點追加於預約列表32中。群組值算出部201對預約節點設定狀態1中所算出之色彩群組值。
於狀態3中,產生相對於邏輯位址「0x0030_0000」之新的資料,該邏輯位址「0x0030_0000」藉由位址管理部18而註冊於位址轉換資訊13中。
群組值算出部201根據邏輯位址「0x0030_0000」並參照著色表14,計算相對於邏輯位址「0x0030_0000」之色彩群組值。預約列表管理部202根據色彩群組值,檢索預約列表32。該例中,設為發現與色彩群組值相對應之預約節點。預約列表管理部202將經發現之預約節點之預約實體位址「0x0040_0000」決定為相對於邏輯位址「0x0030_0000」之實體位址。
於狀態4中,與邏輯位址「0x0030_0000」相對應之實體位址「0x0040_0000」藉由位址管理部18而註冊於位址轉換資訊13中。
以上所說明之本實施形態中,根據複數個寫入對象資料之著色資訊,藉由屬於存取頻率相同之群組之複數個寫入對象資料而構成區塊大小之資料。
因此,可使存取頻率高之資料彙集於特定之區塊中,因此於採用覆寫方式之記憶體管理裝置1中,可使刪除頻率高之區塊之數量減少,從而可延長非揮發性半導體記憶體9、10之壽命。
(第5實施形態)
一般而言,MPU將DRAM用作主記憶體。於如此之系統停機之情形時,主記憶體內之執行碼或資料等或程序之上下文被保存於輔助記憶裝置中。因此,於將系統再啟動時,必需經由I/O介面而自輔助記憶裝置將必要之執行碼或資料等再次載入至記憶體上。進而,亦再次進行各程式之初始化。因此,系統之啟動時間變長之情況較多。
為了解決該問題而提出有:(a)將主記憶體之記憶狀態或程序之上下文撤回至調換區域(與輔助記憶裝置意義相同),進行停機之方式(例如suspend to swap);(b)不完全關掉系統之電源,以不會自揮發性記憶體刪除資料之狀態而停止之方式(例如suspend to RAM)。
然而,於(a)之情形時,撤回至調換區域之執行碼或資料等之最佳化困難,與執行碼或資料等之大小成比例而啟動時間變長。
又,於(b)之情形時,因揮發性記憶體上存在資料,故而必需保持通電狀態。因此,存在長時間之停止困難之問題。
本實施形態中,對可縮短停機及啟動所需要之時間、考慮非揮發性記憶體之性質之可保管安全性高之資料的記憶體管理裝置進行說明。
<資訊處理裝置100之停機時之資料之移動>
第5實施形態關於將資訊處理裝置100停機時自揮發性半導體記憶體8向非揮發性半導體記憶體9、10之資料之移動。
於記憶體管理裝置1中,混合主記憶體2之記憶體映像如圖3所示。於資訊處理裝置100動作時,於揮發性半導體記憶體8(DRAM區域)中,存在藉由資料之讀出、寫入而快取之資料。於將資訊處理裝置100停機時,例如於揮發性半導體記憶體8中被更新、於非揮發性半導體記憶體9、10中未被更新之壞資料存在。因此,必需選擇壞資料,並傳輸至非揮發性半導體記憶體9、10。
圖51表示設置於資訊記憶部17中之揮發性半導體記憶體8之壞位元欄DBF之一例。該壞位元欄DBF各行與根據實體位址而設定之索引資訊相對應,且設定有表示其資料是否壞之旗標資料。旗標資料「0」表示與其進入點相對應之資料被刪除,或者,表示其資料被讀入至揮發性半導體記憶體8中且未被更新(同步),旗標資料「1」表示於揮發性半導體記憶體8中被更新、於非揮發性半導體記憶體9、10中未被更新(未同步)。即,與資料「1」之進入點相對應之資料必需於停機時向非揮發性半導體記憶體9、10傳輸,與資料「0」之進入點相對應之資料則無須向非揮發性半導體記憶體9、10傳輸。
記憶體管理裝置1於將自非揮發性半導體記憶體9、10讀出之資料寫入至揮發性半導體記憶體8中時,或自揮發性半導體記憶體8刪除資料時,及將揮發性半導體記憶體8內之資料之更新反映於非揮發性半導體記憶體9、10時之任一情形時,將對應之進入點之旗標資料設為「0」。
又,記憶體管理裝置1於揮發性半導體記憶體8上之資料被更新時,將對應之進入點之旗標資料設為「1」。
壞位元欄DBF之進入點數為將揮發性半導體記憶體8之大小除以I/O單位(快取線大小=頁面大小)所得之值。
圖52表示資訊處理裝置100停機時之處理之一例。該處理例如於處理部15中執行。
於資訊處理裝置100停機時,首先,算出於非揮發性半導體記憶體9、10中未被更新之資料之合計大小SA(步驟IS31)。即,搜尋壞位元欄DBF之進入點並檢測旗標資料為「1」之資料。將該經檢測之旗標資料為「1」之資料之大小合計,算出未更新資料大小SA。
如上述般,壞位元欄DBF之各進入點係針對非揮發性半導體記憶體之每個頁面大小而設定。因此,藉由計數旗標資料為「1」之數量,並將該計數值乘以頁面大小,可求出更新資料大小SA。
其次,算出非揮發性半導體記憶體之空白區域大小SB(步驟IS32)。本實施形態中,於停機時,於將揮發性半導體記憶體8之資料寫入至非揮發性半導體記憶體中之情形時,考慮存在寫入、讀出之高速化、及長期保管資料之可能性,將資料寫入至非揮發性半導體記憶體9之SLC區域。具體而言,優先地將資料寫入至圖3所示之SLC區域之例如B區域。
如上述般,記憶體管理裝置1根據著色表14之資訊,管理非揮發性半導體記憶體9、10之寫入。然而,本實施形態之停機處理無視該原則,例如維持高速及高可靠性而記憶資料,因此使資料優先地記憶於非揮發性半導體記憶體9之例如B區域。
因此,算出B區域之空白區域大小。空白區域大小之算出例如根據記憶體使用資訊11之內容而求出。
然後,將算出之未更新資料大小SA與B區域之空白區域大小SB進行比較(步驟IS33)。其結果為,於算出之未更新資料大小SA為B區域之空白區域大小SB以下之情形時,將揮發性半導體記憶體8之未更新之資料寫入至非揮發性半導體記憶體之B區域(步驟IS34)。其次,根據寫入至B區域,更新圖4所示之位址管理資訊(步驟IS35)。
另一方面,於步驟IS33中,於判斷為算出之未更新資料大小SA大於B區域之空白區域大小SB之情形時,執行通常之寫入處理。即,依照原則,參照著色表14而執行資料之寫入(步驟IS36)。然後,更新位址管理資訊(步驟IS37)。
根據本實施形態,於資訊記憶部17中設置壞位元欄DBF,藉由旗標資料而管理對揮發性半導體記憶體8之資料進行更新還是不進行更新,於資訊處理裝置100停機時,根據壞位元欄DBF之旗標資料,將揮發性半導體記憶體8之資料傳輸至非揮發性半導體記憶體9。因此,於停機時,可將未更新之資料確實地向非揮發性半導體記憶體9傳輸。
而且,於停機時,自揮發性半導體記憶體8輸出之未更新之資料被寫入至非揮發性半導體記憶體9之SLC區域。因此,可使寫入處理高速化,並且可相對於長期之保存而保持可靠性。
<資訊處理裝置100之啟動之高速化>
第5實施形態以資訊處理裝置100之啟動之高速化為目的。
例如,認為於動態影像播放機與瀏覽器已進行動作之狀態下,於停機時,瀏覽器動作之情形時,具有動態影像播放機繼而被排程之可能性高之優先度之情形時,只要在資訊處理裝置100啟動後,將優先度高之動態影像播放機之碼傳輸至揮發性半導體記憶體8,則可高速地動作。
對此,本實施形態以啟動之高速化為目的,對著色表14附加預看提示資訊,使用該預看提示資訊使資訊處理裝置100啟動。該預看提示資訊於停機時設定於著色表14中。即,作業系統27於停機程序中將預看提示資訊儲存於著色表14中,藉此可降低啟動時之記憶體存取之負擔,從而可高速地啟動。
圖53表示適用於本實施形態之著色表14之一例。相對於圖8所示之著色表14,對各進入點附加預看提示資訊之欄。該預看提示資訊為設置於靜態色彩資訊之欄中之例如旗標資料。該旗標資料表示於為「0」之情形時,於啟動時不預看與其進入點相對應之資料,於為「1」之情形時,於啟動時預看與其進入點相對應之資料。該旗標資料不限定於二元資料,亦可為多元資料。
作為該預看提示資訊之旗標資料,當資訊處理裝置100停機時,例如於作業系統27之停機程序中,設定於著色表14中。
圖54表示預看提示資訊之設定處理。該處理例如於處理部15中執行。
於資訊處理裝置100停機時,首先,對儲存有啟動所必需之碼資料之位址附加預看提示資訊(步驟IS41)。即,對著色表14之對應之進入點設定旗標資料「1」作為預看提示資訊。
然後,對優先度最高之程序之上下文附加預看提示資訊(步驟IS42)。即,對與著色表14之優先度最高之程序之上下文相對應的進入點設定旗標資料「1」作為預看提示資訊。作為優先度高之資料,例如有元件之初始化碼資料、或停機時優先度高之程序之上下文等。
再者,於即便為與優先度最高之程序相關聯,作為靜態色彩資訊之例如靜態讀出頻率(SR_color)低之資料之情形時,設定作為預看提示資訊之旗標資料「0」。例如映射有MPEG資料之位址空間與其相當,該位址空間以不進行預看之方式而設定。
其次,判別是否對所設定之大小之資料附加預看提示資訊(步驟IS43)。即,判別是否超過儲存有經預看之資料之揮發性半導體記憶體8之大小。揮發性半導體記憶體8之使用大小例如可由用戶設定。因此,判別是否超過所設定之大小。其結果為,於為所設定之大小以內之情形時,轉移至步驟IS42,進行上述動作。又,於判別之結果判別為超過所設定之大小之情形時,處理結束。於是,於停機時,對著色表14設定預看提示資訊。
於資訊處理裝置100啟動之情形時,資訊處理裝置100之啟動程序中一定存在要被執行之執行碼或讀入資料。作業系統27可獲知啟動之早期所執行之執行碼或資料區域。
於資訊處理裝置100之啟動時,使用設定於著色表14中之預看提示資訊,與啟動程序並行地,自非揮發性半導體記憶體向揮發性半導體記憶體傳輸資料。
圖55表示啟動時之作業系統27之處理。
首先,搜尋著色表14(步驟IS51),讀出進入點之作為預看提示資訊之旗標資料(步驟IS52)。其次,判別該旗標資料是否為「1」(步驟IS53)。其結果為,於旗標資料為「1」之情形時,將與其進入點相對應之資料自非揮發性半導體記憶體9、10讀出(步驟IS54)。即,優先於其他資料而將附加有預看提示資訊之資料自非揮發性半導體記憶體9、10傳輸至揮發性半導體記憶體8。
又,於步驟IS53之判別中,於旗標資料為「0」之情形時,並不讀出與其進入點相對應之資料。
然後,判別著色表14中是否存在下一進入點(步驟IS55)。其結果為,於存在下一進入點之情形時,控制轉移至步驟IS51,重複上述動作。又,於不存在下一進入點之情形時,處理結束。
再者,處理之結束條件不限定於不存在下一進入點之情形,於預先設定揮發性半導體記憶體8之啟動時之寫入大小,且達到該寫入大小之情形時,亦可進行設定以結束處理。藉此,可於揮發性半導體記憶體8中確保空容量。
根據本實施形態,於資訊處理裝置100停機時,啟動後,即對與執行可能性高之資料相對應之著色表之進入點附加預看提示資訊並啟動時,檢索該預看提示資訊並優先地將資料自非揮發性半導體記憶體9、10傳輸至揮發性半導體記憶體8。因此,可於讀出經常發生之啟動時降低負擔,且可高速地啟動資訊處理裝置100。
又,僅將優先度高之資料傳輸至揮發性半導體記憶體8,因此於停機時將存在於揮發性半導體記憶體8中之資料全部保存,與啟動時恢復之情形相比較,可整理揮發性半導體記憶體8之內容,且可使啟動後之執行處理高速化。
(第6實施形態)
於本實施形態中,對相對於上述第1實施形態之記憶體管理裝置1之著色表14之靜態色彩資訊之設定之具體例進行說明。
作業系統27相對於各資料,設定上述圖5及圖8所示之著色表14之靜態色彩資訊。
作為相對於著色表14之靜態色彩資訊之設定方法,例如,存在[1]基於檔案之副檔名或名稱之設定,[2]基於目錄之名稱之設定,[3]基於影子檔案之設定,[4]使用檔案系統之擴展屬性之設定,[5]基於軟體(例如,應用程式)或附加於資料(例如MPEG2等之動態影像壓縮資料)之檔案之標頭之設定,[6]基於虛擬位址空間之屬性資訊之設定,[7]基於動態鏈接程式庫之使用頻率之設定,[8]使用編譯程式之設定,[9]基於動態地生成之記憶體區域之設定,[10]使用分析器之設定等。以下,對於各設定方法進行說明。
[1]基於檔案之副檔名或名稱之設定
例如,作業系統27自用戶(包含程式開發者)接收使用核心命令行之檔案之副檔名與靜態色彩資訊之關係之設定。例如,於相對於副檔名「jpeg」「mpeg」設定靜態色彩資訊「1」「2」之情形時,作業系統27接收如「coloring_ext=jpeg:1,mpeg:2」之指令。
藉此,對作業系統27設定檔案之副檔名與靜態色彩資訊之關係。作業系統27根據與資料相對應之檔案(配置有資料之檔案)之副檔名,決定該資料之靜態色彩資訊,並設定於著色表14中。
再者,例如,作業系統27管理使資料與檔案相關聯之映射資料。
例如,作業系統27亦可參照使檔案之副檔名與靜態色彩資訊相關聯之表。
又,代替檔案之副檔名與靜態色彩資訊之關係,亦可設定檔案之名稱與靜態色彩資訊之關係。
[2]基於目錄之名稱之設定
例如,作業系統27自用戶接收使用核心命令行之目錄之名稱與靜態色彩資訊之關係之設定。例如,於對目錄「/tmp」「/var/log」指定靜態色彩資訊「3」「4」之情形時,作業系統27接收如「coloring_dir=/tmp:3,/var/log:4」之指令。
藉此,對作業系統27設定目錄之名稱與靜態色彩資訊之關係。作業系統27根據配置有與資料相對應之檔案之目錄之名稱,決定該資料之靜態色彩資訊,並設定於著色表14中。
再者,例如,作業系統27亦可參照使目錄之名稱與靜態色彩資訊相關聯之表。
[3]基於影子檔案之設定
靜態色彩資訊與檔案之關係,或者,靜態色彩資訊與目錄之關係亦可於檔案系統上由用戶各別地設定。
例如,用戶對某檔案生成影子檔案。影子檔案係將與該影子檔案相對應之檔案之副檔名改變而生成。例如,相對於檔案「.foo.ext」,於同一目錄內,生成影子檔案「.foo.ext.s_color」。
而且,用戶使靜態色彩資訊與檔案之關係保持於影子檔案中。例如,於影子檔案「.foo.ext.s_color」內,設定檔案「.foo.ext」之靜態色彩資訊。
作業系統27根據與資料相對應之檔案之影子檔案,決定該資料之靜態色彩資訊,並設定於著色表14中。
再者,亦可相對於目錄生成影子檔案,將靜態色彩資訊與目錄之關係保持於該影子檔案中。
[4]使用檔案系統之擴展屬性之設定
於檔案系統上由用戶設定之靜態色彩資訊與檔案之關係、靜態色彩資訊與目錄之關係,例如使用檔案系統之擴展屬性而設定。
所謂擴展屬性係指用戶用以將檔案系統未解釋之元資料與檔案或目錄繫結之功能。於與檔案或目錄繫結之元資料內,設定有檔案或目錄之靜態色彩資訊。
作業系統27根據與資料所對應之檔案繫結之元資料,決定該資料之靜態色彩資訊,並設定於著色表14中。
又,作業系統27根據與配置有資料之目錄繫結之元資料,決定該資料之靜態色彩資訊,並設定於著色表14中。
[5]基於軟體或資料之檔案中所附之標頭之設定
用戶將軟體檔案或資料檔案之標頭改變,將靜態色彩資訊設定於該檔案之標頭中。
作業系統27根據與資料相對應之檔案之標頭,決定該資料之靜態色彩資訊,並設定於著色表14中。
再者,亦可不改變檔案之標頭,而使用上述影子檔案或擴展屬性設定靜態色彩資訊。
亦可將應用程式之檔案分隔為複數個區段,針對每複數個區段而設定靜態色彩資訊。
生成使用於SSD之SATA供應商擴展指令,將資料及靜態色彩資訊交付給SSD,藉此亦可對SSD實現與記憶體管理裝置1相同之控制。
[6]基於虛擬位址空間之屬性資訊之設定
圖56係表示虛擬位址空間內之虛擬位址區域與屬性資訊之關係之一例之方塊圖。
應用程式使用虛擬位址空間J32內之虛擬位址區域J34a~J34f。
作業系統27包含虛擬記憶之功能。作業系統27使用與各虛擬位址區域J34a~J34f相對應之虛擬位址區域資料管理各虛擬位址區域J34a~J34f。資訊J33係關於虛擬位址空間J32之資訊,且包含虛擬位址區域資料。
相對於各虛擬位址區域J34a~J34f之虛擬位址區域資料具有包含開始位址、結束位址、第1屬性資訊、第2屬性資訊之資料結構。例如,虛擬位址區域資料係相對於一個程序而利用一個以上。
各虛擬位址區域資料之開始位址及結束位址表示對應之虛擬位址區域之開始位址及結束位址。
各虛擬位址區域資料之第1屬性資訊表示對應之虛擬位址區域為可讀出「r」、可寫入「w」、可執行「x」、還是佔有區域「p」或共有區域「s」。
各虛擬位址區域資料之第2屬性資訊表示對應之虛擬位址區域為堆區域、堆疊區域、檔案映像區域中之哪一個。
本實施形態中,選擇相對於虛擬位址區域J34a~J34f之虛擬位址區域資料中相對於虛擬位址區域J34c、J34d之虛擬位址區域資料J35c、J35d進行說明,其他虛擬位址區域資料亦具有相同之特徵。
虛擬位址區域J34c可讀出、可寫入、且為佔有區域,因此作業系統27將「r」「w」「p」儲存於虛擬位址區域資料J35c之第1屬性資訊中。
虛擬位址區域J34c為堆區域,因此作業系統27將表示堆區域之「1」儲存於虛擬位址區域資料J35c之第2屬性資訊中。
虛擬位址區域J34d可讀出、可執行、且為佔有區域,因此作業系統27將「r」「x」「p」儲存於虛擬位址區域資料J35d之第1屬性資訊中。
虛擬位址區域J34d為檔案映像區域,因此作業系統27將表示檔案映像區域之「4」儲存於虛擬位址區域資料J35d之第2屬性資訊中。
圖57係表示作業系統27之虛擬位址區域資料之第2屬性資訊之設定處理之一例之流程圖。
於步驟SE1中,作業系統27取出設定對象之虛擬位址區域。
於步驟SE2中,作業系統27對第2屬性資訊設定初始值「0」。
於步驟SE3中,作業系統27判斷虛擬位址區域是否為堆區域。
於虛擬位址區域為堆區域之情形時,於步驟SE4中,作業系統27對第2屬性資訊設定「1」。
於步驟SE5中,作業系統27判斷虛擬位址區域是否為堆疊區域。
於虛擬位址區域為堆疊區域之情形時,於步驟SE6中,作業系統27對第2屬性資訊設定「2」。
於步驟SE7中,作業系統27判斷虛擬位址區域是否為檔案映像區域。
於虛擬位址區域為檔案映像區域之情形時,於步驟SE8中,作業系統27對第2屬性資訊設定「4」。
於步驟SE9中,作業系統27判斷是否對其他虛擬位址區域進行第2屬性之設定。
於對其他虛擬位址區域設定第2屬性之情形時,處理轉移至步驟SE1。
於不對其他虛擬位址區域設定第2屬性之情形時,處理結束。
圖58係表示基於虛擬位址區域資料J35c之靜態色彩資訊之設定之一例之圖。
該圖58中,表示根據藉由作業系統27而管理之虛擬位址區域資料J35c,將配置於虛擬位址區域J34c中之資料之靜態色彩資訊設定於著色表14中之情形。
作業系統27根據虛擬位址區域資料J35c之第1屬性及第2屬性,生成相對於虛擬位址區域J34c之資料之靜態寫入頻率SW_color、靜態讀出頻率SR_color、資料壽命SL_color,並設定於著色表14中。
於虛擬位址區域J34c之資料藉由尋頁錯失而被分配至作為實記憶體之邏輯位址空間之情形時,作業系統27生成相對於虛擬位址區域J34c之資料之資料生成時刻ST_color,並設定於著色表14中。
再者,藉由記憶體管理裝置1,更新相對於虛擬位址區域J34c之資料之寫入次數、讀出次數。
[7]基於動態鏈接程式庫之使用頻率之設定
指令與程式庫具有依存關係。例如,若執行某指令,則使用依存於該指令之程式庫。
因此,該[7]之方法中,預先決定指令之得分,根據該指令之得分決定指令所使用(動態鏈接)之程式庫之得分。此處,得分為根據使用頻率而決定之值。例如,下述圖59及圖60之例中,使用頻率越高則得分之值越大。
相對於程式庫中所包含之資料之靜態寫入頻率SW_color、靜態讀出頻率SR_color係根據程式庫之得分而設定。再者,亦可使用動態地鏈接程式庫之動態鏈接器而求出得分。於該情形時,例如,各程式庫之得分於每次藉由動態鏈接器鏈接程式庫時增加。具體而言,於使用動態鏈接器之情形時,於最初之階段程式庫之得分被初始化為0,其後於每次鏈接時,該經鏈接之程式庫之得分增加。其結果為,鏈接之次數越多之程式庫則得分越大。
圖59係表示指令與程式庫之間之依存關係之一例之圖。
於該圖59中,指令係使用至少一個程式庫。指令之得分為預先設定。
程式庫之得分為使用該程式庫之指令或使用該程式庫之程式庫之得分的總和。
例如,指令「cp」之得分設定為「5」。指令「cp」使用程式庫「libacl.so.1」「libselenux.so.1」。
程式庫「libacl.so.1」「libselenux.so.1」之得分設定為使用該程式庫「libacl.so.1」「libselenux.so.1」之指令「cp」之得分「5」。
指令「bash」之得分設定為「10」。指令「bash」使用程式庫「libncurses.so.5」。
程式庫「libncurses.so.5」之得分設定為使用該程式庫「libncurses.so.5」之指令「bash」之得分「10」。
程式庫「libdl.so.2」係用於程式庫「libselenux.so.1」「libncurses.so.5」。
程式庫「libdl.so.2」設定為使用該程式庫「libdl.so.2」之程式庫「libselenux.so.1」「libncurses.so.5」之得分之總和「15」。
關於其他指令及程式庫亦根據相同之規則設定得分。
再者,各指令之得分之設定可變更。得分之繼承方法亦可進行各種變更。例如,於具有父程式庫向複數個子程式庫分支之依存關係之情形時(父程式庫選擇複數個子程式庫中之任一個而使用之情形時等),子程式庫之得分亦可為將父程式庫之得分除以子個數所得之值。又,例如,於父程式庫同時需要複數個子程式庫之情形時,亦可對子程式庫設定與父程式庫相同之得分。
圖60係表示指令之得分與程式庫之得分之一例的圖。該圖60中,表示根據上述圖59之依存關係而計算出之程式庫之得分。
圖61係表示基於指令之得分之程式庫之得分之其他算出例之圖。該圖61中,不使用程式庫間之依存關係,各程式庫之得分藉由使用該程式庫之指令之得分之總和而算出。
圖62係表示使用程式庫之得分之靜態色彩資訊之設定之一例之圖。
該圖62中,表示根據藉由作業系統27而管理之虛擬位址區域資料J35d,將配置於虛擬位址區域J34d中之資料之靜態色彩資訊設定於著色表14中之情形。
作業系統27根據虛擬位址區域資料J35d之第1屬性及第2屬性、及程式庫之得分,生成相對於虛擬位址區域J34d之資料之靜態寫入頻率SW_color、靜態讀出頻率SR_color、資料壽命SL_color,並設定於著色表14中。
於虛擬位址區域J34d之資料藉由尋頁錯失而分配至邏輯位址空間之情形時,作業系統27生成相對於虛擬位址區域J34d之資料之資料生成時刻ST_color,並設定於著色表14中。
再者,藉由記憶體管理裝置1,更新相對於虛擬位址區域J34d之資料之寫入次數、讀出次數。
[8]使用編譯程式之設定
編譯程式具有可預測變數之頻率(使用頻率)或函數之頻率之功能。
用戶根據藉由該編譯程式之功能而預測之變數之頻率或函數之頻率,對包含變數或函數之資料,設定靜態色彩資訊。藉此,可設定較檔案單位更細之靜態色彩資訊。
如圖63所示,編譯程式於編譯時,可將由用戶指定之變數或函數彙集於特定之區段。
用戶對藉由該編譯程式之功能而彙集之包含變數及函數之資料,設定靜態色彩資訊。藉此,可將具有相同程度之頻率之變數及函數彙集於相同寫入單位內。
圖64係表示使用編譯程式之靜態色彩資訊之設定之一例之圖。
用戶使用編譯程式,預測變數之頻率及函數之頻率,又,將經編譯之軟體區分為區段,針對區段而設定靜態色彩資訊。
例如,作業系統27相對於包含「exception handler(異常處置器)」之區段,設定靜態寫入頻率SW_color為「低」,設定靜態讀出頻率SR_color為「高」。
例如,作業系統27相對於包含「exception handler」之區段,設定靜態寫入頻率SW_color為「低」,設定靜態讀出頻率SR_color為「低」。
[9]基於動態地生成之記憶體區域之設定
用戶相對於動態地生成(確保‧開放)之記憶體區域,根據由下述分析器所獲得之使用頻率或予想之使用頻率,設定靜態色彩資訊。
藉此,可相對於配置於動態地生成之記憶體區域之資料,設定靜態色彩資訊。
圖65係表示基於動態地生成之記憶體區域之使用頻率之靜態色彩資訊之設定之一例之圖。
例如,作業系統27對配置於記憶體區域「kernel page table(核心分頁表)」之資料,設定靜態寫入頻率SW_color為「低」,設定靜態讀出頻率SR_color為「高」。
例如,作業系統27對配置於記憶體區域「kernel stack(核心堆疊)」之資料,設定靜態寫入頻率SW_color為「高」,設定靜態讀出頻率SR_color為「高」。
例如,作業系統27對配置於動態影像播放機之緩衝區域之資料,設定靜態寫入頻率SW_color為「高」,設定靜態讀出頻率SR_color為「高」。
作業系統27於記憶體區域之獲取時及開放時,直接更新著色表14。
關於相對於配置於應用程式之堆區域、堆疊區域之資料之靜態色彩資訊之設定,於上述第1實施形態中進行了說明,因此此處省略說明。
madvise()系統呼叫通知核心如何處理自位址addr開始之length位元組之記憶體區塊之頁面輸入輸出。若使用該系統呼叫,則可將如何處理經映射之記憶體或共有記憶體自應用程式傳達至核心,核心可對應其選擇預看或快取等之適當的方法。該系統呼叫亦可增加設定經指定之記憶體區域之靜態色彩資訊之功能。或者,亦可追加設定經指定之記憶體區域之靜態色彩資訊之新穎之系統呼叫。
[10]使用分析器之設定
分析器具有獲取應用程式之例如性能資訊之功能。該性能資訊中包含使用頻率等統計資訊。
用戶根據藉由分析器而生成之性能資訊,對於應用程式設定靜態色彩資訊。
藉此,並非根據事前預測之使用頻率設定靜態色彩資訊,而是根據實際之利用狀態設定靜態色彩資訊。
於以上所說明之本實施形態中,已說明靜態色彩資訊之設定方法。藉此,將記憶體管理裝置1所使用之靜態色彩資訊設定於著色表14中,並根據該靜態色彩資訊,可延長非揮發性半導體記憶體9、10之壽命。
(第7實施形態)
參照圖66,對本實施形態之記憶體管理裝置1、資訊處理裝置100、記憶體裝置H32a、H32b、H32c進行說明。圖66係表示本實施形態之記憶體管理裝置1、資訊處理裝置100及記憶體裝置H32a、H32b、H32c之構成之一例之方塊圖。關於與第1實施形態同一或同樣之構成,附加同一符號,並省略說明。再者,於圖66之說明中,圖1之處理器3a、3b、3c中以處理器3b為代表進行說明,關於其他處理器3a、3c亦相同。
記憶體管理裝置1所包含之處理部15包括記憶體使用資訊管理部22、連接檢測部H33、判斷部H34、通知部H35、更換控制部H36。記憶體管理裝置所包含之資訊記憶部17中,如上述般,儲存有記憶體使用資訊11、記憶體固有資訊12、位址轉換資訊13、著色表14。進而,記憶體管理裝置1之處理部15連接於複數個連接器部H44a、H44b、H44c。
記憶體裝置H32a、H32b、H32c分別包括:記憶體單元H37a、H37b、H37c;正常通知部H38a、H38b、H38c;警告通知部H39a、H39b、H39c;使用停止通知部H40a、H40b、H40c;以及連接操作部H41a、H41b、H41c。進而,記憶體裝置H32a、H32b、H32c分別包括連接器部H42a、H42b、H42c。於記憶體單元H37a、H37b、H37c中儲存有管理資訊H43a、H43b、H43c。關於管理資訊H43a、H43b、H43c之詳細情況將於下文敍述。
記憶體裝置H32a、H32b、H32c所包含之連接器部H42a、H42b、H42c分別連接於連接器部H44a、H44b、H44c。
其次,對記憶體管理裝置1之構成進行更詳細說明。於以下說明中,記憶體裝置H32a、H32b、H32c中以記憶體裝置H32a為代表進行說明,關於其他記憶體裝置H32b、H32c亦相同。
連接檢測部H33檢測記憶體管理裝置1與記憶體裝置H32a之連接。連接檢測部H33若自記憶體裝置H32a之連接操作部H41a接收下述「安裝通知」,則檢測到記憶體裝置H32a已電性連接於記憶體管理裝置1(檢測「連接狀態」)。又,連接檢測部H33若自記憶體裝置H32a之連接操作部H41a接收下述「卸下通知」,則檢測到記憶體裝置H32a與記憶體管理裝置1為電性非連接(檢測「卸下準備狀態」)。
判斷部H34根據記憶體使用資訊11,判斷記憶體裝置H32a之使用狀態。使用狀態例如包含「正常狀態」「警告狀態」「使用停止狀態」。判斷部H34例如定期地判斷記憶體裝置H32a之使用狀態。又,判斷部H34例如於每次產生對於記憶體裝置H32a之存取時,判斷記憶體裝置H32a之使用狀態。關於使用狀態之判斷方法將於下文敍述。
通知部H35根據藉由判斷部H34而判斷之使用狀態,對記憶體裝置H32a通知使用狀態。
若連接檢測部H33根據來自記憶體裝置H32a之連接操作部H41a之「安裝通知」而檢測「連接狀態」,則更換控制部H36將儲存於記憶體單元H37a中之管理資訊H43a中所包含之記憶體單元H37a之每個特定區域之刪除次數、寫入產生次數、讀出產生次數讀出,並儲存於記憶體使用資訊11中。又,若連接檢測部H33根據來自記憶體裝置H32a之連接操作部H41a之「卸下通知」而檢測「卸下準備狀態」,則更換控制部H36將儲存於資訊記憶部17中之記憶體使用資訊11中所包含之記憶體裝置H32a之每個特定區域之刪除次數、寫入產生次數、讀出產生次數讀出,並儲存於記憶體單元H37a之管理資訊H43a中。關於管理資訊H43a之詳細情況將於下文敍述。
例如,於記憶體裝置H32a為NAND型快閃記憶體之情形時,例如,刪除次數以區塊區域單位而管理,寫入產生次數、讀出產生次數以頁面區域單位而管理。
其次,對於記憶體裝置H32a、H32b、H32c之構成進行說明。
記憶體單元H37a為SLC型之NAND型快閃記憶體、或MLC型之NAND型快閃記憶體,相當於第1實施形態之非揮發性半導體記憶體9、10。又,記憶體單元H37a亦可為一部分之區域係SLC型之NAND型快閃記憶體(SLC區域)、除SLC區域以外之部分係MLC型之NAND型快閃記憶體(MLC區域)。於該情形時,SLC區域相當於非揮發性半導體記憶體9,MLC區域相當於非揮發性半導體記憶體10。
正常通知部H38a於自記憶體管理裝置1之通知部H35接收「正常狀態」之通知之情形時,顯示正常狀態。例如,正常通知部H38a係第1顏色(藍色)之發光體,且藉由點亮而顯示正常狀態。
警告通知部H39a於自記憶體管理裝置1之通知部H35接收到「警告狀態」之通知之情形時,顯示警告狀態。例如,警告通知部H39a係第2顏色(黃色)之發光體,藉由點亮而顯示警告狀態。
使用停止通知部H40a於自記憶體管理裝置1之通知部H35接收到「使用停止狀態」之通知之情形時,顯示停止狀態。例如,使用停止通知部H40a係第3顏色(紅色)之發光體,且藉由點亮而顯示使用停止狀態。
於記憶體裝置H32a與記憶體管理裝置1為電性非連接之情形時(卸下之情形時),連接操作部H41a將卸下之旨意(卸下通知)通知給記憶體管理裝置1。連接操作部H41a例如包含電性或機械性按鈕,於將記憶體裝置H32a卸下時,由用戶按下該按鈕,藉此將卸下通知向記憶體管理裝置1通知。
又,於記憶體裝置H32a電性連接於記憶體管理裝置1之情形時,連接操作部H41a將已連接之旨意(安裝通知)向記憶體管理裝置1通知。例如,於將記憶體裝置H32a電性連接於記憶體管理裝置1時,由用戶按下該按鈕,藉此將安裝通知向記憶體管理裝置1通知。
連接器部H42a連接於連接器部H44a,藉此使記憶體裝置H32a與記憶體管理裝置1電性連接。
其次,參照圖67對記憶體裝置H32a所具備之記憶體單元H37a之刪除次數之變化進行說明。圖67係表示記憶體單元H37a之刪除次數之變化之一例的圖表。橫軸為時間,縱軸為刪除次數。
本實施形態之記憶體裝置H32a之記憶體單元H37a自處理器3b接受存取(讀出、寫入、刪除)。因此,記憶體單元H37a之刪除次數、讀出產生次數、寫入產生次數會隨著使用時間而增加,於某時刻,刪除次數將達到記憶體單元H37a之可刪除之上限次數。若記憶體單元H32a之刪除次數達到可刪除之上限次數,則基於可靠性之觀點考量,不宜對記憶體單元H32a進行資料之寫入、讀出、刪除。
如上述般,記憶體管理裝置1藉由記憶體使用資訊11而管理非揮發性半導體記憶體9、10(記憶體裝置H32a)之刪除次數、讀出產生次數、寫入產生次數等。本實施形態中,如以下所示,記憶體管理裝置1根據記憶體使用資訊11,監視記憶體裝置H32a之使用狀態,於記憶體管理裝置H32a之刪除次數達到刪除產生上限次數之前,對記憶體裝置H32a發出警告。
參照圖68,對基於記憶體裝置H32a之刪除次數之記憶體裝置H32a之使用狀態的判斷進行說明。圖68係表示基於記憶體裝置H32a之刪除次數之記憶體裝置H32a之使用狀態之一例之圖表。橫軸為時間,縱軸為刪除次數。再者,關於寫入亦與刪除同樣地可用於記憶體裝置H32a之使用狀態之判斷。
圖68中虛線表示記憶體單元H37a之刪除次數之變化之例。實現表示相對於記憶體單元H37a之刪除次數之回歸曲線ΔtERASE(例如,一次回歸線)。根據該一次回歸線,預測自目前時刻起特定時間(警告期間)tERASEbefore
後之刪除次數ERASEalert
。於ERASEalert
超過可刪除之上限次數ERASEmax
之情形時,判斷記憶體單元H37a之使用狀態為「警告狀態」。於ERASEalert
不超過可刪除之上限次數ERASEmax
之情形時,判斷記憶體單元H37a之使用狀態為「正常狀態」。又,於目前時刻之刪除次數超過可刪除之上限次數ERASEmax
之情形時,判斷記憶體單元H37a之使用狀態為「使用停止狀態」。
再者,如上述般,於記憶體單元H37a為NAND型快閃記憶體之情形時,記憶體單元H37a之刪除次數以區塊區域單位而管理。記憶體單元H37a包含複數個區塊區域。記憶體單元H37a中所包含之複數個區塊區域間藉由損耗均衡演算法,而刪除次數之差異變小。因此,例如,將記憶體單元H37a中所包含之複數個區塊區域之各自之刪除次數之平均值設為記憶體單元H37a之刪除次數。又,例如,亦可將記憶體單元H37a中所包含之複數個區塊區域之最大之刪除次數設為記憶體單元H37a之刪除次數。關於讀出產生次數、寫入產生次數亦相同。
其次,參照圖69,對基於記憶體裝置H32a之讀出產生次數之記憶體裝置H32a之使用狀態的判斷進行說明。圖69係表示基於記憶體裝置H32a之讀出產生次數之記憶體裝置H32a之使用狀態之一例之圖表。橫軸為時間,縱軸為讀出產生次數。
圖69中,虛線表示記憶體單元H37a之讀出產生次數之變化之例。實線表示相對於記憶體單元H37a之讀出產生次數之回歸曲線ΔtREAD(例如,1次回歸線)。根據該一次回歸線,預測自目前時刻起特定時間(警告期間)tREADbefore
後之讀出產生次數READalert
。於READalert
超過可讀出之上限次數READmax
之情形時,判斷記憶體單元H37a之使用狀態為「警告狀態」。於READalert
不超過可讀出之上限次數READmax
之情形時,判斷記憶體單元H37a之使用狀態為「正常狀態」。又,於目前時刻之讀出產生次數超過可讀出之上限次數READmax
之情形時,判斷記憶體單元H37a之使用狀態為「使用停止狀態」。
其次,參照圖70,對根據記憶體裝置H32a之刪除次數將使用狀態通知給記憶體裝置H32a之處理之一例進行說明。圖70係表示根據記憶體裝置H32a之刪除次數將使用狀態通知給記憶體裝置H32a之處理之一例之流程圖。
於步驟HA1中,記憶體使用資訊管理部22讀出記憶體使用資訊11。
於步驟HA2中,記憶體使用資訊管理部22自記憶體使用資訊11讀出記憶體裝置H32a之目前時刻之刪除次數。
於步驟HA3中,判斷部H34根據目前之時刻、較目前更早之時刻、目前時刻之刪除次數、較目前更早之時刻之刪除次數、儲存於記憶體使用資訊11中之過去之ΔtERASE等,計算新的ΔtERASE。例如,判斷部H34根據刪除開始時刻、目前時刻、目前時刻之刪除次數,計算每單位時間之刪除次數ΔtERASE。
於步驟HA4中,判斷部H34判斷目前時刻之刪除次數是否為可刪除之上限次數ERASEmax
以下。
於目前時刻之刪除次數超過可刪除之上限次數ERASEmax
之情形時,於步驟HA5中,判斷部H34判斷記憶體裝置H32a為使用停止狀態,處理移動至步驟HA9。
於目前時刻之刪除次數為可刪除之上限次數ERASEmax
以下之情形時,於步驟HA6中,判斷部H34算出ΔtERASE×tERASEbefore
+目前時刻之刪除次數,並求出自目前時刻起tERASEbefore
經過後之刪除次數之預測值ERASEalert
。
於步驟HA7中,判斷部H34判斷預測值ERASEalert
是否為可刪除之上限次數ERASEmax
以下。
於預測值ERASEalert
超過可刪除之上限次數ERASEmax
之情形時,於步驟HA8中,判斷部H34對記憶體裝置H32a判斷為警告狀態,處理移動至步驟HA9。
於預測值ERASEalert
為可刪除之上限次數ERASEmax
以下之情形時,處理移動至步驟HA9。
於步驟HA9中,判斷部H34將目前時刻之刪除次數、ΔtERASE儲存於記憶體使用資訊11中,並進行更新。
如上述般,根據記憶體裝置H32a之刪除次數,將使用狀態通知給記憶體裝置H32a,藉此可於記憶體裝置H32a之使用狀態成為「使用停止狀態」之前,通知警告。
其次,參照圖71,對根據記憶體裝置H32a之讀出產生次數將使用狀態通知給記憶體裝置H32a之處理之一例進行說明。圖71係表示根據記憶體裝置H32a之讀出產生次數將使用狀態通知給記憶體裝置H32a之處理之一例的流程圖。
圖71之步驟HB1~HB9除判斷之對象為讀出產生次數之方面以外,與判斷之對象為刪除次數之上述圖70之步驟HA1~HA9相同,因此省略說明。
如上述般,根據記憶體裝置H32a之讀出產生次數,將使用狀態通知給記憶體裝置H32a,藉此可於記憶體裝置H32a之使用狀態成為「使用停止狀態」之前,通知警告。
於上述本實施形態中,於自目前時刻起特定時間tERASEbefore
、tREADbefore
後之預測之刪除次數ERASEalert
、READalert
超過可刪除之上限次數ERASEmax
、可讀出之上限次數READmax
之情形時,設為警告狀態。然而,上述判斷處理可進行各種變更。以下,對於本實施形態中之判斷處理之變形例進行說明。
例如,判斷部H34算出ΔtERASE。
判斷部H34根據目前時刻之刪除次數、ΔtERASE及ERASEmax
,求出刪除次數達到ERASEmax
時所預測之時間tERASEmax
。
判斷部H34自tERASEmax
減去tERASEbefore
,藉此求出應為警告狀態之時間tERASEalert
。
而且,判斷部H34於目前時刻成為應為警告狀態之時間tERASEalert
或超過之情形時,判斷為警告狀態。或者,判斷部H34根據刪除開始時刻、ΔtERASE及應發出警告之時間tERASEalert
,求出應為警告狀態之刪除次數ERASEalert
,於刪除次數成為應為警告狀態之刪除次數ERASEalert
以上之情形時,判斷為警告狀態。
再者,於代替刪除次數將讀出產生次數設為判斷之對象之情形時亦相同。
其次,參照圖72對儲存於記憶體裝置H32a中之管理資訊H43a進行說明。圖72係表示管理資訊H43a中所包含之資料之一例之圖。
管理資訊H43a包含記憶體裝置H32a之記憶體單元H37a之每個特定區域之刪除次數、關於刪除次數之回歸曲線△tERASE、可刪除之上限次數ERASEmax
、警告期間tERASEbefore
、刪除開始時刻。進而,管理資訊H43a包含記憶體裝置H32a之記憶體單元H37a之每個特定區域之讀出產生次數、關於讀出產生次數之回歸曲線ΔtREAD、可刪除之上限次數READmax
、警告期間tREADbefore
、讀出開始時刻。
刪除次數、讀出產生次數、回歸曲線ΔtERASE、ΔtREAD係由記憶體管理裝置1之記憶體使用資訊11而管理之資訊,如下述般,於自記憶體管理裝置1卸下記憶體裝置H32a時,儲存於管理資訊H43a中。
其次,參照圖73,對自記憶體裝置H32a電性連接於記憶體管理裝置1起至記憶體裝置H32a中開始存取為止之處理進行說明。圖73係表示自記憶體裝置H32a電性連接於記憶體管理裝置1起至記憶體裝置H32a中開始存取為止之處理之一例之流程圖。
首先,於步驟HC1中,記憶體管理裝置1之連接檢測部H33自記憶體裝置H32a接收「安裝通知」,藉此檢測到記憶體裝置H32a電性連接於記憶體管理裝置1(連接狀態)。
其次,於步驟HC2中判斷管理資訊H43a是否儲存於記憶體裝置H32a中。於儲存有管理資訊H43a之情形時,移動至步驟HC3。於未儲存管理資訊H43a之情形時,移動至步驟HC4。
於步驟HC3中,讀出管理資訊H43a中所包含之記憶體單元H37a之每個特定區域之刪除次數、寫入產生次數、讀出產生次數,並儲存於記憶體使用資訊11中。又,讀出管理資訊H43a中所包含之記憶體單元H37a之可刪除之上限次數ERASEmax
、可讀出之上限次數READmax
、警告期間tERASEbefore
、tREADbefore
,並儲存於記憶體固有資訊12中。
於步驟HC4中,新生成管理資訊H43a,並寫入至記憶體單元H37a中,於記憶體使用資訊11中,儲存每個特定區域之刪除次數、寫入產生次數、讀出產生次數之值作為「0」。
於步驟HC3或步驟HC4之處理之後,開始對於記憶體裝置H32a之存取。若產生相對於記憶體裝置H32a之存取,則如上述般,與記憶體裝置H32a相對應之記憶體使用資訊11之每個特定區域之刪除次數、寫入產生次數、讀出產生次數被更新。
其次,參照圖74,對記憶體管理裝置1自記憶體裝置H32a接收「卸下通知」起至記憶體裝置H32a可卸下為止之處理進行說明。圖74係表示記憶體管理裝置1自記憶體裝置H32a接收「卸下通知」起至記憶體裝置H32a可卸下為止之處理之一例之流程圖。
首先,於步驟HD1中,記憶體管理裝置1之連接檢測部H33自記憶體裝置H32a接收「卸下通知」。
其次,於步驟HD2中,記憶體管理裝置1之更換控制部H36將記憶於記憶體裝置H32a中之資料自記憶體裝置H32a讀出,並寫入至其他記憶體裝置(例如,記憶體裝置H32b)。
其次,於步驟HD3中,更換控制部H36將由記憶體使用資訊11而管理之記憶體裝置H32a之每個特定區域之寫入次數、讀出次數、刪除次數作為管理資訊H43a,而儲存於記憶體裝置H32a之記憶體單元H37a中。
其次,於步驟HD4中,記憶體管理裝置1之通知部H35通知記憶體裝置H32a可卸下。
如上述般,於記憶體裝置H32a之卸下時,將記憶體裝置H32a之每個特定區域之寫入次數、讀出次數、刪除次數作為管理資訊H43a,而儲存於記憶體裝置H32a之記憶體單元H37a中,其次,於記憶體裝置H32a之安裝時,讀出管理資訊H43a,藉此可獲取記憶體裝置H32a之使用資訊。
其次,參照圖75,對記憶體裝置之更換狀態進行說明。圖75係表示記憶體裝置之更換狀態之一例之圖。
該圖75之資訊處理裝置100包含處理器3b、記憶體管理裝置1、記憶體裝置H32a~H321。資訊處理裝置100將RAID之技術適用於記憶體裝置H32a~H321。進而,於本實施形態中,控制對於記憶體裝置H32a~H321之存取之記憶體管理裝置1作為硬體而與熱調換相對應。資訊處理裝置100為如伺服器裝置等之需要連續運轉之裝置。
記憶體裝置H32a~H32m之記憶體讀出次數及記憶體刪除次數存在上限,若壽命結束則需更換。各記憶體裝置H32a~H32m包含顯示部H45a~H45m。該圖75中,顯示部H45a~H45m於記憶體裝置H32a~H32m為正常狀態之情形時例如以綠色發光,於為警告狀態或使用停止狀態之情形時例如以紅色發光。
被安裝之記憶體裝置H32a~H321中分別有分配按鈕H46a~H461。
藉由將RAID之技術適用於記憶體管理裝置1,而即便於記憶體裝置H32a~H321中之一部分(圖75中為記憶體裝置H32k)成為警告狀態或使用停止狀態,亦可藉由剩餘之記憶體裝置H32a~H32j、H321而資訊處理裝置100正常運轉。而且,用戶可將成為警告狀態或使用停止狀態之記憶體裝置H32k卸下,使資訊處理裝置100保持運轉,並安裝替代之記憶體裝置H32m。
例如,若使用記憶體裝置H32k,且記憶體裝置H32k之讀出產生次數或刪除次數增加而接近可讀出之上限次數或可刪除之上限次數,則記憶體裝置H32k之顯示部H45k發出紅色光。於更換所安裝之記憶體裝置H32k之情形時,由用戶按下對應之按鈕H46k。若按下按鈕H46k,則將卸下通知發送至記憶體管理裝置1。若記憶體管理裝置1接收卸下通知,則執行記憶體裝置H32k之資料之撤回、記憶體裝置H32k之電源斷開等處理。
再者,於卸下對象之記憶體裝置H32k中僅記憶有重要度低於特定之臨限值之資料之情形時,亦可不使記憶體裝置H32k之資料撤回而立即更換。
若記憶體裝置H32k成為可卸下狀態,則用戶將記憶體裝置H32k卸下,並安裝新的記憶體裝置H32m。
例如,使用記憶體裝置H32k作為如伺服器裝置、個人電腦、遊戲機等資訊處理裝置100之主記憶裝置,即便記憶體裝置H32k成為警告狀態,該記憶體裝置H32k亦可例如作為CD-R(compact disk recordable,可記錄光碟)之替代之媒體、數位相機之照片記錄媒體而再利用。
於本實施形態中,為了使半新之記憶體裝置H32k可於其他資訊處理裝置中使用,而將該記憶體裝置H32k之管理資訊儲存於該記憶體裝置H32k中,進而,顯示部H45k包含於記憶體裝置H32k中。
顯示部H45a~H45m亦可使用電子墨水用之顯示部。例如,記憶體管理裝置1之判斷部H34根據記憶體使用資訊11及記憶體固有資訊12,求出對於各記憶體裝置H32a~H321之存取狀態(例如,「刪除次數/可刪除之上限次數」、「讀出產生次數/可讀出之上限次數」等)。記憶體管理裝置1之通知部H35根據對於各記憶體裝置H32a~H321之存取狀態,控制電子墨水用之顯示部H45a~H451之顯示。例如,顯示部H45a~H451以條形圖表示存取狀態。
電子墨水用之顯示部H45a~H451之顯示內容即便於記憶體裝置H32a~H321自記憶體管理裝置1卸下之情形時亦可維持。因此,用戶可於將記憶體裝置H32a~H321卸下後,參考該電子墨水用之顯示部H45a~H451之顯示內容,將記憶體裝置H32a~H321安裝於其他資訊處理裝置,而再利用。
其次,參照圖76,對記憶體裝置H32a之再利用進行說明。圖76係表示記憶體裝置H32a之再利用之一例之方塊圖。
例如,資訊處理裝置100為如伺服器裝置、個人電腦等對資料之記憶及存取請求高可靠性之裝置。
例如,資訊處理裝置100A為如數位相機、印表機、行動電話等對資料之記憶及存取請求較資訊處理裝置100更高之可靠性之裝置。
資訊處理裝置100中,被期望進行正常動作,因此於較發出警告之時序提前之時間點更換記憶體裝置H32a。
相對於此,資訊處理裝置100A中,即便於發出警告之後至產生使用停止通知為止亦可使用記憶體裝置H32a。
於資訊處理裝置100中對記憶體裝置H32a通知警告之情形時,用戶可將該記憶體裝置H32a自資訊處理裝置100卸下,將記憶體裝置H32a安裝於資訊處理裝置100A中並使用。如此有效地再利用記憶體裝置H32a。
其次,參照圖77,對根據著色資訊,自記憶體裝置H32a、H32b、H32c之中選擇寫入目的地,以使記憶體裝置H32a、H32b、H32c之警告時期不會於短期間內彙集之方法進行說明。
如圖77所示,寫入管理部20根據著色資訊,以將靜態色彩資訊高之資料或動態色彩資訊高之資料寫入至記憶體裝置H32a、H32b、H32c中之特定之記憶體裝置H32a之方式而進行控制。藉此,對於記憶體裝置H32a之存取之次數(刪除次數、讀出產生次數、寫入產生次數)與其他記憶體裝置H32b、H32c相比迅速增加。
藉此,可抑制特定之記憶體裝置H32a迅速成為警告狀態、警告時期於短期間內彙集,從而可防止如於短期間更換多個記憶體裝置般之作業負擔之增加。
於上述本實施形態中,可將存取次數存在上限之記憶體裝置H32a~H321簡單地安裝於記憶體管理裝置1中,進而,可簡單地卸下。
因此,可容易地進行資訊處理裝置100中所使用之記憶體裝置H32a~H321之狀態監視及維護。
於本實施形態中,可一邊使資訊處理裝置100連續運轉,一邊進行記憶體裝置H32a~H321之更換。
進而,於本實施形態中,可再利用相對於記憶體管理裝置1可裝卸之記憶體裝置H32a~H321。
於本實施形態中,可實現將記憶體裝置H32a~H321組合之高可靠性、高速、大容量之記憶裝置,可容易地更換記憶體裝置H32a~H321,且可提高資訊處理裝置100之運轉率。
(第8實施形態)
本實施形態係上述第1實施形態之變形例。本實施形態之記憶體管理裝置中,可將非揮發性半導體記憶體9、10中之SLC區域動態地切換為MLC區域,進而,可將MLC區域動態地切換為SLC區域。
於本實施形態中,所謂SLC區域,係指於非揮發性半導體記憶體9、10中用作SLC型之NAND型快閃記憶體之記憶體區域。又,所謂MLC區域,係指於非揮發性半導體記憶體9、10中用作MLC型之NAND型快閃記憶體之記憶體區域。
非揮發性半導體記憶體9、10中,既可為非揮發性半導體記憶體9、10之所有記憶體區域為SLC區域、或MLC區域,亦可為非揮發性半導體記憶體9、10之一部分之記憶體區域為SLC區域、不為SLC區域之記憶體區域為MLC區域。
非揮發性半導體記憶體9、10之記憶體區域為SLC區域還是MLC區域之資訊(以下,稱為「SLC/MLC區域資訊」),例如由記憶體固有資訊12而管理。例如,記憶體固有資訊12於非揮發性半導體記憶體9、10中,保持由實體位址而指定之記憶體區域為SLC區域還是MLC區域之資訊。再者,相對於各記憶體區域之SLC/MLC區域資訊由記憶體固有資訊12而管理,亦可由記憶體使用資訊11而管理。
圖78係表示本實施形態之記憶體管理裝置之構成之一例的圖。
記憶體管理裝置D32包含處理部D33、工作記憶體16、資訊記憶部17。
處理部D33包含消耗率算出部D34、切換判斷部D35、切換控制部D36。進而,處理部D33與上述第1實施形態之處理部15同樣地,包含位址管理部18、讀出管理部19、寫入管理部20、著色資訊管理部21、記憶體使用資訊管理部22、再配置部23,但圖78中省略該等。
本實施形態之記憶體管理裝置D32可根據非揮發性半導體記憶體9、10中之SLC區域之消耗率之資訊,將該SLC區域切換為MLC區域。進而,記憶體管理裝置D32可根據非揮發性半導體記憶體9、10中之MLC區域之消耗率資訊,將該MLC區域切換為SLC區域。此處,所謂消耗率係指寫入次數相對於記憶體區域之可寫入之上限次數之比例。
又,記憶體管理裝置D32可根據刪除次數相對於可刪除之上限次數之比例即刪除消耗率、讀出次數相對於可讀出之上限次數之比例即讀出消耗率,同樣地進行SLC區域與MLC區域之動態切換。進而,記憶體管理裝置D32亦可根據寫入消耗率、刪除消耗率、讀出消耗率中之至少2個,進行SLC與MLC之動態切換。
消耗率算出部D34參照記憶體使用資訊11與記憶體固有資訊12,根據記憶體區域之寫入次數與可寫入之上限次數,算出該記憶體區域之寫入消耗率。同樣地,消耗率算出部D34亦可參照記憶體使用資訊11與記憶體固有資訊12,算出讀出消耗率、刪除消耗率。寫入消耗率、讀出消粍率例如以頁面區域單位、或者區塊區域單位而算出。刪除消耗率例如以區塊區域單位而算出。
例如,於SLC區域、MLC區域為大於區塊區域之記憶體區域之情形時,針對SLC區域、MLC區域中所包含之每複數個區塊區域算出寫入消耗率。SLC區域、MLC區域中所包含之複數個區塊區域間,藉由損耗均衡演算法而寫入消耗率之不均變小。因此,例如,將SLC區域、MLC區域中所包含之複數個區塊區域之寫入消耗率之平均值設為該SLC區域、MLC區域之寫入消耗率。又,例如,亦可將SLC區域、MLC區域中所包含之複數個區塊區域之寫入消耗率中最大之寫入消耗率設為該SLC區域、MLC區域之寫入消耗率。關於讀出消耗率、刪除消耗率亦相同。
切換判斷部D35判斷SLC區域之寫入消耗率是否超過設定於該SLC區域中之寫入消耗率之臨限值(以下,稱為「SLC臨限值」)。又,切換判斷部D35判斷MLC區域之寫入消耗率是否超過設定於該MLC區域之寫入消耗率之臨限值(以下,稱為「MLC臨限值」)。各記憶體區域之SLC臨限值、MLC臨限值之資訊於記憶體固有資訊11中被管理。
於SLC區域之寫入消耗率超過SLC臨限值之情形時,切換控制部D36進行將該SLC區域切換為MLC區域之控制。又,於MLC區域之寫入消耗率超過MLC臨限值之情形時,切換控制部D36進行將該MLC區域切換為SLC區域之控制。進而,切換控制部D36根據SLC區域、MLC區域之切換,更新由記憶體固有資訊11而管理之「SLC/MLC區域資訊」。
又,於產生自SLC區域向MLC區域之切換之情形時,切換控制部D36進行將任一MLC區域切換為SLC區域之控制。又,於產生自MLC區域向SLC區域之切換之情形時,切換控制部D36進行將任一MLC區域切換為SLC區域之控制。藉此,於切換控制部D36之記憶體區域之切換前後以SLC區域與MLC區域之比例之變化減少之方式進行控制。再者,SLC區域與MLC區域之切換係藉由切換控制部D36對非揮發性半導體記憶體9、10,指定切換對象記憶體區域,並輸出指令而進行。
進而,於切換對象之記憶體區域中記憶有資料之情形時,切換控制部D36進行資料之移動,並根據該資料之移動而更新位址轉換資訊13。
又,根據切換控制部D36之SLC區域、MLC區域之切換,記憶體使用資訊管理部22更新經切換之記憶體區域之記憶體使用資訊11(寫入次數、刪除次數、讀出次數等)。
圖79係表示本實施形態之非揮發性半導體記憶體之動態切換之第1例之模式圖。圖79所示之非揮發性半導體記憶體291~294與非揮發性半導體記憶體9、10相對應,用作資訊處理裝置100之主記憶體。
圖79所示之例中,非揮發性半導體記憶體291~293之所有記憶體區域用作SLC區域(非揮發性半導體記憶體291~293為SLC型之NAND型快閃記憶體)。又,非揮發性半導體記憶體294之所有記憶體區域用作MLC區域(非揮發性半導體記憶體294為MLC型之NAND型快閃記憶體)。非揮發性半導體記憶體291~294例如為記憶卡。
如第1實施形態中所說明,對SLC型之非揮發性半導體記憶體291~293寫入存取頻率高之資料。因此,SLC型之非揮發性半導體記憶體291~293之寫入消耗率變高。另一方面,對MLC型之非揮發性半導體記憶體294寫入存取頻率低之資料。因此,MLC型之非揮發性半導體記憶體294之寫入消耗率變低。
若切換判斷部D35判斷為非揮發性半導體記憶體291之寫入消耗率超過非揮發性半導體記憶體291之SLC臨限值,則切換控制部D36將非揮發性半導體記憶體291自SLC型切換為MLC型。進而,切換控制部D36將寫入消耗率低之非揮發性半導體記憶體294自MLC型切換為SLC型。藉此,寫入消耗率高之非揮發性半導體記憶體291用作MLC型,並寫入有存取頻率低之資料。另一方面,寫入消耗率低之非揮發性半導體記憶體294用作SLC型,並寫入有存取頻率高之資料。對MLC型之非揮發性半導體記憶體291施加強力之ECC(Error-Correcting Code,誤差校正碼),藉此亦可延長MLC型之非揮發性半導體記憶體291之壽命(作為主記憶體之可使用之期間)。通常,若使用強力之ECC,則自非揮發性半導體記憶體之資料之讀出速度下降,但本實施例中,即便自MLC型之非揮發性半導體記憶體之讀出速度較低亦可,因此可使用強力之ECC。
進而,於非揮發性半導體記憶體291~294之寫入消耗率變高,作為主記憶體之使用變得困難之情形時,亦可將該非揮發性半導體記憶體291~294自資訊處理裝置100卸下,並用於CD-R用途等寫入之頻率低之應用程式。
圖80係表示本實施形態之非揮發性半導體記憶體之動態切換之第2例之模式圖。圖80所示之非揮發性半導體記憶體295與非揮發性半導體記憶體9、10相對應,用作資訊處理裝置100之主記憶體。
圖80所示之例中,非揮發性半導體記憶體295包含用作SLC區域之記憶體區域、與用作MLC區域之記憶體區域。
於圖80所示之例中,亦如圖79所示之例所說明,根據消耗率資訊,將SLC區域切換為MLC區域。藉此,可獲得與圖79所示之例相同之效果。
圖79、圖80中,對關於SLC區域,於寫入消耗率超過SLC臨限值之情形時,將該SLC區域切換為MLC區域之處理進行了說明,關於MLC區域,於寫入消耗率超過MLC臨限值之情形時,將該MLC區域切換為SLC區域之處理亦相同。
通常,MLC區域與SLC區域相比可寫入之上限次數設定得更低。因此,作為MLC區域即便於寫入消耗率超過MLC臨限值之情形時,藉由將該MLC區域切換為SLC區域,亦可將可寫入之上限次數設定得較高。例如,於MLC區域中寫入上限次數為1000次,SLC區域中寫入上限次數為10000次之情形時,MLC區域中,消耗率為80%達到MLC臨限值。藉由將該MLC區域切換為SLC區域,例如,作為SLC區域,進而,可進行2000次之寫入。藉由將該SLC區域如MLC區域般用作寫入存取頻率低之資料之記憶體區域,可進而延長該記憶體區域之壽命。
圖81係表示本實施形態之切換控制部D36之記憶體區域之切換控制之第1例的狀態過渡圖。再者,圖81中之各步驟OA1~OA5所說明之處理,於SLC區域與MLC區域之切換、資料之移動、資訊之更新正常進行之範圍內亦可變更其順序。
於步驟OA1中,非揮發性半導體記憶體之記憶體區域MA為SLC區域,非揮發性半導體記憶體之記憶體區域MB、MC、MD為MLC區域。記憶體區域MA、MB、MC中分別記憶有資料Da、Db、Dc。記憶體區域MD為撤回用之區域。
於該步驟OA1中,記憶體區域MA之寫入消耗率超過SLC臨限值。
於是,於步驟OA2中,切換控制部D36選擇MLC區域之記憶體區域MB、MC之任一者(圖81之例中為記憶體區域MB),並將經選擇之記憶體區域MB之資料Db移動至撤回用之記憶體區域MD。關於選擇MLC區域之記憶體區域MB、MC之哪一個,既可優先地選擇未記憶有資料之MLC區域之記憶體區域,亦可根據著色表14優先地選擇記憶有重要度低之資料之MLC區域之記憶體區域,亦可優先地選擇寫入消耗率、讀出消耗率、刪除消耗率低之MLC區域之記憶體區域。該選擇可進行各種變更。
又,作為記憶體區域MB之資料Db之移動目的地(撤回目的地),參照著色表14,資料Db中所包含之資料中存取頻率高之資料亦可撤回至SLC區域,資料Db中所包含之資料中存取頻率低之資料亦可撤回至MLC區域。
其次,於步驟OA3中,切換控制部D36將經選擇之MLC之記憶體MB切換為SLC,變更記憶體區域MB之SLC/MLC區域資訊。
其次,於步驟OA4中,切換控制部D36將切換對象之SLC之記憶體區域MA之資料Da移動至新切換為SLC之記憶體區域MB。
然後,於步驟OA5中,切換控制部D36將切換對象之SLC之記憶體區域MA切換為MLC,變更記憶體區域MA之SLC/MLC區域資訊。
再者,於上述各步驟中,伴隨資料之移動,更新位址轉換資訊13,使資料之移動目的地之實體位址、與該資料之邏輯位址對應。又,於伴隨資料之移動而產生資料之寫入、讀出、刪除之情形時,更新記憶體使用資訊11。
圖82係表示本實施形態之切換控制部D36之記憶體區域之切換控制的第2例之狀態過渡圖。再者,該圖82中之各步驟OB1~OB5所說明之處理,於SLC與MLC之切換、資料之移動、資訊之更新正常進行之範圍內亦可變更其順序。
於步驟OB1中,非揮發性半導體記憶體之記憶體區域MA為SLC,非揮發性半導體記憶體之記憶體區域MB、MC、MD為MLC。記憶體區域MA、MB、MC中分別記憶有資料Da、Db、Dc。記憶體區域MD為撤回區域。
於該步驟OB1中,記憶體區域MA之寫入消耗率超過SLC臨限值。
於是,於步驟OB2中,切換控制部D36將記憶體區域MA之資料Da移動至撤回用之記憶體區域MD。
其次,於步驟OB3中,切換控制部D36選擇MLC之記憶體區域MB、MC之任一個(圖82之例中為記憶體區域MB),將經選擇之記憶體區域MB之資料Db移動至撤回用之記憶體區域MD。
其次,於步驟OB4中,切換控制部D36將SLC之記憶體區域MA切換為MLC,將MLC之記憶體區域MB切換為SLC。進而,變更記憶體區域MA、MB之SLC/MLC區域資訊。
然後,於步驟OA5中,切換控制部D36將撤回用之記憶體區域MD之資料Da移動至已切換為SLC之記憶體區域MB,將撤回用之記憶體區域MD之資料Db移動至已切換為MLC之記憶體區域MA。
再者,於上述各步驟中,伴隨資料之移動,更新位址轉換資訊13,使資料之移動目的地之實體位址、與該資料之邏輯位址相對應。又,於伴隨資料之移動而產生資料之寫入、讀出、刪除之情形時,更新記憶體使用資訊11。
如上述般,於將SLC區域變更為MLC區域之後,如第1實施形態所示,參照著色表14,對SLC區域寫入(配置)存取頻率高之資料,對MLC區域寫入(配置)存取頻率低之資料。
於以上所說明之本實施形態中,可對應非揮發性半導體記憶體9、10之使用狀況,將SLC區域動態地切換為MLC區域,又,可將MLC區域動態地切換為SLC區域。藉由將SLC區域切換為MLC區域,可將寫入消耗率變高之SLC區域用作MLC區域。進而,藉由將MLC區域切換為SLC區域,可將寫入消耗率低之MLC區域用作SLC區域。藉此,可延長非揮發性半導體記憶體9、10之壽命,且可有效地使用非揮發性半導體記憶體9、10。
(第9實施形態)
本實施形態係上述第1實施形態之變形例。本實施形態中,對將擴展處理器3a、3b、3c所使用之位址空間之記憶體管理裝置進行說明。
圖83係表示本實施形態之記憶體管理裝置與位址空間之關係之一例之方塊圖。再者,於該圖83中,處理器3a、3b、3c中以處理器3b為代表進行說明,關於其他處理器3a、3c亦相同。
上述第1實施形態所說明之記憶體管理裝置1於記憶體之邏輯位址空間E32、與記憶體之實體位址空間E33之間,進行位址轉換,並決定資料之寫入目的地。
此處,記憶體之實體位址空間E33包含混合主記憶體2之實體位址空間。記憶體之實體位址空間E33亦可更包含其他記憶體之實體位址空間。
記憶體之邏輯位址空間E32與相對於處理器3b之處理器實體位址空間E34相對應。處理器實體位址空間E34上,例如,實現基於檔案系統E34a、E34b之資料管理。
處理器3b包含記憶體管理裝置E35。再者,處理器3b與記憶體管理裝置E35亦可不同之構造。
處理器3b執行複數個程序Pc1~Pcn。該等複數個程序Pc1~Pcn中,分別使用處理器邏輯位址空間PLA1~PLAn。例如,於處理器3b為CPU(Central Processing Unit)之情形時,處理器邏輯位址空間PLA1~PLAn為CPU邏輯位址空間。
處理器邏輯位址空間PLA1~PLAn分別具有記憶體視窗MW1~MWn。記憶體視窗MW1~MWn中映射(即,複製或映射)有處理器實體位址空間E34之一部分之資料。
藉此,處理器3b可於複數個程序Pc1~Pcn中並列地存取記憶體視窗MW1~MWn之資料,且可高速地執行複數個程序Pc1~Pcn。
即使處理器3b中可使用之位址空間之大小受到限制,處理器3b亦可使用記憶體視窗MW1~MWn,藉此使用可虛擬廣位址空間。
若於程序Pc1~Pcn中需要未映射於記憶體視窗MW1~MWn中之資料,則處理器3b更新記憶體視窗MW1~MWn之資料,藉此,重新將需要之資料映射於記憶體視窗MW1~MWn中。
處理器3b可將處理器實體位址空間E34經由記憶體視窗MW1~MWn而存取。
本實施形態之記憶體管理裝置E35具有與上述第1實施形態中所說明之記憶體管理裝置1相同之構成。於本實施形態中,記憶體管理裝置E35亦進而實現作為處理器3b之MMU之功能,記憶體管理裝置E35與處理器3b之MMU亦可為不同構造。
本實施形態之記憶體管理裝置E35之最大特徵在於:於處理器邏輯位址空間PLA1~PLAn、與處理器實體位址空間E34之間,進行位址轉換與資料之寫入目的地之決定。
記憶體管理裝置E35之資訊記憶部17記憶有記憶體使用資訊E36、記憶體固有資訊E37、著色表E38、位址轉換資訊E39。
記憶體管理裝置E35之處理部15一邊使用工作記憶體16,一邊參照或者更新資訊記憶部17之記憶體使用資訊E36、記憶體固有資訊E37、著色表E38、位址轉換資訊E39,執行與上述第1實施形態中所說明之處理相同之處理。
記憶體使用資訊E36例如包含處理器實體位址空間E34之各位址區域之寫入產生次數及讀出產生次數、各區塊區域之刪除次數。
表示處理器實體位址空間E34之各位址區域之使用狀態之記憶體使用資訊E36,例如,可根據由記憶體管理裝置1而管理之記憶體使用資訊11與位址轉換資訊13而算出。
記憶體固有資訊12例如包含處理器實體位址空間E34之各位址區域之記憶體類別(例如,是與揮發性半導體記憶體8相對應、與SLC之非揮發性半導體記憶體9相對應、還是與MLC之非揮發性半導體記憶體10相對應等)、揮發性半導體記憶體8之記憶體大小、非揮發性半導體記憶體9、10之記憶體大小、非揮發性半導體記憶體9、10之頁面大小及區塊大小、各位址區域之可存取之上限次數(可寫入之上限次數、可讀出之上限次數、可刪除之上限次數)。
表示處理器實體位址空間E34之各位址區域之固有資訊之記憶體固有資訊E37,例如,可根據由記憶體管理裝置1而管理之記憶體固有資訊12與位址轉換資訊13而算出。
著色表E38使處理器邏輯位址、與表示該處理器邏輯位址之資料之著色資訊相關聯。
位址轉換資訊E39係使處理器邏輯位址、與處理器實體位址相關聯之資訊。若記憶體視窗MW1~MWn被更新,則位址轉換資訊E39以表示其更新後之狀態之方式而被更新。
處理部15如上述第1實施形態中所說明,根據記憶體使用資訊E36、記憶體固有資訊E37、著色表E38、位址轉換資訊E39,於處理器邏輯位址空間PLA1~PLAn、與處理器實體位址空間E34之間,進行位址轉換與資料之寫入目的地之決定。
具體而言,例如,處理部15對資料之寫入頻率為0之讀出專用之資料,進行不執行自記憶體視窗MW1~MWn向處理器邏輯位址空間E34之寫回處理之控制。
例如,於資料為讀出及寫入之對象之類別之情形時,且記憶體視窗MW1~MWn之值與處理器實體位址空間E34之值不同之情形時(壞資料之情形時),處理部15將記憶體視窗MW1~MWn之值寫回至處理器邏輯位址空間E34。
例如,於資料為暫時使用之類別(temporary(暫時))之情形時,即便該資料為壞資料,處理部15亦不進行自記憶體視窗MW1~MWn向處理器邏輯位址空間E34之寫回。
例如,處理部15如上述第1實施形態中所說明,根據靜態寫入頻率SW_color、靜態讀出頻率SR_color、靜態刪除頻率SE_color、動態寫入頻率DW_color、動態讀出頻率DR_color、動態刪除頻率DE_color、資料類別,進行對於揮發性半導體記憶體8、非揮發性半導體記憶體9、10之資料之分配。
圖84係表示本實施形態之處理器3b與記憶體管理裝置E35之寫入動作之一例之流程圖。該圖84中,表示產生對於記憶體視窗MW1~MWn之資料之寫入,然後,產生分配至記憶體視窗MW1~MWn之處理器實體位址區域之變更之情形時之處理之一例。
於步驟EM1中,記憶體管理裝置E35將處理器實體位址區域之任一者初始地分配至記憶體視窗MW1~MWn,生成位址轉換資訊E39。於該時間點,分配至記憶體視窗MW1~MWn之處理器實體位址區域亦可為與揮發性半導體記憶體8之記憶體區域、SLC之非揮發性半導體記憶體9之記憶體區域、MLC之非揮發性半導體記憶體10之任一記憶體區域相對應者。
於步驟EM2中,處理器3b將資料寫入至記憶體視窗MW1~MWn。同時,記憶體管理裝置E35更新寫入對象資料之著色資訊(例如,寫入次數DWC_color、動態寫入頻率DW_color等)。
於步驟EM3中,於處理器3b將記憶體視窗MW1~MWn之資料寫入至處理器實體位址空間E34之情形時,記憶體管理裝置E35根據記憶體使用資訊E36、記憶體固有資訊E37、著色表E38、位址轉換資訊E39,決定對於處理器實體位址空間E34之寫入對象資料之寫入目的地,又,記憶體管理裝置E35更新記憶體使用資訊E36、位址轉換資訊E39。進而,記憶體管理裝置E35將寫入對象資料寫入至經決定之處理器實體位址區域。
例如,記憶體管理裝置E35決定將寫入對象資料寫入至揮發性半導體記憶體8之記憶體區域、SLC之非揮發性半導體記憶體9之記憶體區域、MLC之非揮發性半導體記憶體10之記憶體區域中的哪個記憶體區域。
於步驟EM4中,處理器3b使對於未分配至記憶體視窗MW1~MWn之其他處理器實體位址區域之資料之存取產生。
於步驟EM5中,記憶體管理裝置E35變更對於記憶體視窗MW1~MWn之處理器實體位址區域之分配,更新位址轉換資訊E39。再者。對於記憶體視窗MW1~MWn之處理器實體位址區域之分配變更例如藉由作業系統27之系統呼叫而進行。記憶體管理裝置E35中,進行基底位址之變更。實際上,處理器分頁表之進入點得到變更。
於該情形時,記憶體管理裝置E35進行對於變更前之記憶體視窗MW1~MWn之資料之寫回,並更新該資料之著色資訊、記憶體使用資訊E36。
於步驟EM6中,處理器3b使用儲存於變更後之記憶體視窗MW1~MWn中之資料。
於本實施形態中,即便於處理器3b之處理器邏輯位址空間PLA1~PLAn較小之情形時,亦可使用大於邏輯位址空間PLA1~PLAn之處理器實體位址空間E34,從而可擴展處理器3b之處理器實體位址空間E34。
於本實施形態中,可使用著色資訊,於記憶體視窗PLA1~PLAn、與處理器實體位址空間E34之間使資料有效地映射。
再者,本實施形態中,根據記憶體使用資訊E36、記憶體固有資訊E37、著色表E38之著色資訊,進行對於處理器實體位址空間E34之資料之寫入目的地之決定。然而,例如,亦可使用記憶體使用資訊E36、記憶體固有資訊E37、著色表E38中之至少一個,進行對於處理器實體位址空間E34之資料之寫入目的地之決定。
於本實施形態中,針對每複數個程序Pc1~Pcn,形成處理器邏輯位址空間PLA~PLn,於各者中使用記憶體視窗MW1~MWn。藉此,可並列地執行如對混合主記憶體2等之記憶體存取之動作,且可高速地執行複數個程序Pc1~Pcn。
(第10實施形態)
本實施形態係使上述第1實施形態之記憶體管理裝置1中所使用之著色資訊共有化、且將經共有化之著色資訊發送至資訊處理裝置100之資訊處理裝置(伺服器裝置)。
如上述般,於資訊處理裝置100中,若處理器3a、3b、3c藉由執行程序6a、6b、6c而生成新資料,則作業系統27根據新生成之資料之種類,生成靜態色彩資訊,並對該新生成資料賦予靜態色彩資訊。記憶體管理裝置1於將該資料寫入至非揮發性半導體記憶體9、10之情形時,參照該資料之靜態色彩資訊,決定寫入對象記憶體區域等,藉此可延長非揮發性半導體記憶體9、10之壽命。因此,藉由使包含靜態色彩資訊之著色資訊最佳化,而可實現非揮發性半導體記憶體9、10之進一步長壽命化。
本實施形態中,對使作業系統27生成靜態色彩資訊時所參照之設定檔資訊共有化之系統進行說明。藉由使設定檔資訊共有化,可實現著色資訊之最佳化。關於設定檔資訊將於下文敍述。
圖85係表示本實施形態之資訊處理裝置及網路系統之構成之一例的圖。
網路系統K32具有經由網路K35而將資訊處理裝置K33、設定檔生成終端K34、用戶終端100A、100B可通信地連接之構成。
網路K35例如為網際網路、LAN(Local Area Network,區域網路)等各種通信媒體,且可為無線亦可為有線。
對於設定檔生成終端K34之構成進行說明。設定檔生成終端K34例如為程式開發者或廠商之終端。設定檔生成終端K34包含設定部K34a、記憶裝置K34b、通信部K34c。
設定部K34a例如根據程式開發者等之設定操作,生成設定檔資訊K36,並儲存於記憶裝置K34b中。
記憶部K34b儲存藉由設定部K34a而生成之設定檔資訊K36。
通信部K34c經由網路K35而將儲存於記憶裝置K34b中之設定檔資訊K36發送至資訊處理裝置K33。
對於用戶終端100A、100B之構成進行說明。用戶終端100A、100B相當於上述第1實施形態之資訊處理裝置100,記憶體管理裝置1包含混合主記憶體2。用戶終端100A、100B所包含之記憶體管理裝置1之資訊記憶部17、混合主記憶體2中儲存有著色表14。
用戶終端100A、100B自動地或者依照用戶之指示,生成設定檔資訊K37、K38。關於設定檔資訊之生成之詳細情況將於下文敍述。用戶終端100A、100B經由網路K35而將設定檔資訊K37、K38發送至資訊處理裝置K33。
進而,用戶終端100A、100B自動地或者依照用戶之指示,自資訊處理裝置K33下載(接收)設定檔資訊。用戶端100A、100B之作業系統27於生成相對於資料之著色資訊時,參照經下載之設定檔資訊。用戶終端100A、100B之作業系統27根據設定檔資訊,生成相對於資料之靜態色彩資訊,並儲存於著色表14中。
對於資訊處理裝置K33之構成進行說明。資訊處理裝置K33包含通信部K33a、設定檔資訊管理部K33b、記憶裝置K33c。設定檔資訊管理部K33b既可藉由硬體而實現,亦可藉由軟體與處理器等硬體之協動而實現。
通信部K33a於設定檔生成終端K34、用戶終端100A、100B之間進行設定檔資訊K36~K38之發送接收。
設定檔資訊管理部K33b將經由通信部K33a而接收之設定檔資訊儲存於記憶裝置K33c中。又,設定檔資訊管理部K33b將設定檔資訊經由通信部K33a而發送至用戶終端100A、100B、設定檔生成終端K34。
記憶裝置K33c儲存設定檔資訊。進而,記憶裝置K33c儲存服務資料K40。關於服務資料K40將於下文敍述。
其次,對於設定檔資訊進行說明。如上述般,設定檔資訊係用戶終端100A、100B中之作業系統27對資料賦予(生成)靜態色彩資訊時所參照之資訊。
設定檔資訊例如為使資料識別資訊、著色資訊、生成者識別資訊相關聯之資訊。
資料識別資訊例如相當於上述第1實施形態之圖9及圖10之資料格式。作為資料識別資訊,使用如檔案之名稱、檔案之副檔名等檔案之識別資訊、檔案系統上配置有資料之位置(例如目錄)之資訊等。
著色資訊包含上述靜態色彩資訊。靜態色彩資訊為針對每個資料識別資訊而設定之值,例如,如上述第1實施形態之圖9及圖10般,包含靜態寫入頻率SW_color、靜態讀出頻率SR_color、資料壽命SL_color。
生成者識別資訊係用以識別設定檔資訊之生成者之資訊。生成者識別資訊為附加性資訊,且視需要而附加。
其次,對設定檔資訊之生成進行說明。
用戶終端100A、100B保有圖9、圖10所示之資料識別資訊與相對於該資料識別資訊之著色資訊。用戶終端100A、100B根據所保有之資料識別資訊與著色資訊生成設定檔資訊。
又,用戶終端100A、100B亦可根據藉由記憶體管理裝置1而管理之著色表14生成設定檔資訊。如上述般,著色表14以進入點單位管理根據指定資料之邏輯位址而生成之索引、與該資料之著色資訊。用戶終端100A、100B自該索引中指定藉由邏輯位址而指定之資料,並將該資料之資料識別資訊抽出。進而,用戶終端100A、100B算出該資料之靜態色彩資訊、與動態色彩資訊(例如動態寫入頻率DW_color、動態讀出頻率DR_color)。進而,若需要,則用戶終端100A、100B將動態色彩資訊變更為與靜態色彩資訊相同之資料格式。如上述般,靜態色彩資訊為如SW_color=5之資料格式,相對於此,動態色彩資訊為對於資料之實際之存取頻率,例如亦可設想為使用存取頻率之時間平均值。根據該動態色彩資訊之存取頻率或存取頻率之時間平均值之大小,執行向如DR_color=5般之資料格式之轉換。藉此,決定資料識別資訊、相對於該資料識別資訊之靜態色彩資訊、動態色彩資訊。用戶終端100A、100B根據包含該靜態色彩資訊、動態色彩資訊之著色資訊、資料識別資訊、生成者識別資訊,而生成設定檔資訊。
如此,藉由包含動態色彩資訊之著色資訊而生成設定檔資訊,藉此可將相對於資料之實際之存取頻率作為設定檔資訊提供給用戶終端100A、100B。藉此,可實現作業系統27對資料賦予之著色資訊之最佳化。
又,例如,開發新的應用程式之軟體廠商亦可使用設定檔生成終端K34,將新的應用程式專用之檔案相關之設定檔資訊K36註冊於資訊處理裝置K33中。
其次,對於服務資料K40進行說明。服務資料K40包含記憶於記憶裝置K33c中之各種設定檔資訊K36~K38之說明資料、各種廣告資料。
服務資料K40自資訊處理裝置K33發送至用戶終端100A、100B。例如,用戶終端100A、100B使用瀏覽器,顯示服務資料K40。
例如,於記憶於記憶裝置K33c中之複數個設定檔資訊中包含相同之資料識別資訊之情形時,用戶可參照服務資料K40之說明資料,決定所下載之設定檔資訊。
例如,藉由服務資料K40中包含設定檔資訊之廣告資料、資訊機器之廣告資料、非揮發性半導體記憶體之廣告資料等,可對研究設定檔資訊之下載、資訊機器之置換、非揮發性半導體記憶體之置換等的用戶推薦特定之產品。
又,例如,設定檔資訊管理部K33b亦可對記憶於記憶裝置K33c中之設定檔資訊K36~K38適用統計方法,將結果所獲得之設定檔資訊發送至用戶終端100A、100B。作為統計方法,例如可使用對於與相同資料識別資訊關聯之著色資訊而算出平均值,並求出中位值等方法。例如,設定檔資訊管理部K33b生成包含相對於與相同資料識別資訊關聯之複數個著色資訊之靜態寫入頻率SW_color之平均值或中位值、靜態讀出頻率SR_color之平均值或中位值、資料壽命SL_color之平均值或中位值、動態寫入頻率DW_color之平均值或中位值、動態讀出頻率DR_color之平均值或中位值的設定檔資訊,並將該生成之設定檔資訊發送至用戶終端100A、100B。
設定檔資訊管理部K33b對藉由用戶終端100A、100B之瀏覽器而下載設定檔資訊K36~K38之次數進行計數。設定檔資訊管理部K33b將各設定檔資訊K36~K38之下載次數乘以設定檔資訊K36~K38之每1次之下載費用,從而算出相對於各設定檔資訊K36~K38之生成者之報酬費用。然後,設定檔資訊管理部K33b對各設定檔資訊K36~K38之生成者識別資訊,生成分配報酬費用之報酬資訊,並將報酬資訊記憶於記憶裝置K33c中。
進而,設定檔資訊管理部K33b根據來自用戶終端100A、100B之下載請求,對指定下載請求源之識別資訊(例如用戶ID(identification,識別)等),生成分配經下載之設定檔資訊之每1次之使用費用的使用費用資訊,並將使用費用資訊記憶於記憶裝置K33c中。
圖86係表示本實施形態之設定檔資訊管理部K33b之處理之一例的流程圖。
於步驟C1中,設定檔資訊管理部K33b判斷是否自設定檔生成終端K34、用戶終端100A、100B之任一者接收設定檔資訊K36~K38之任一個。
於未接收設定檔資訊K36~K38之情形時,處理轉移至步驟C3。
於接收有設定檔資訊K36~K38之任一個之情形時,於步驟C2中,設定檔資訊管理部K33b將經接收之設定檔資訊記憶於記憶裝置K33c中。
於步驟C3中,設定檔資訊管理部K33b判斷是否自用戶終端100A、100B之任一者接收下載請求。
於未接收下載請求之情形時,處理轉移至步驟C6。
於接收有下載請求之情形時,於步驟C4中,設定檔資訊管理部K33b將與經接收之下載請求相對應之設定檔資訊自記憶裝置K33c讀出。
於步驟C5中,設定檔資訊管理部K33b將經讀出之設定檔資訊發送至下載請求之發送源之用戶終端。
於步驟C6中,設定檔資訊管理部K33b判斷處理是否結束。於處理未結束之情形時,處理返回至步驟C1。
圖87係表示本實施形態之用戶終端100A之設定檔資訊K37之上載處理之一例之流程圖。再者,關於用戶終端100B之上載處理亦與該圖87大致相同。
於步驟UL1中,用戶終端100A例如自動地或者依照用戶之指示,將相對於資料之資料識別資訊、於著色表14中與該資料相對應之著色資訊、生成者識別資訊進行組合,而生成設定檔資訊K37。
於步驟UL2中,用戶終端100A將所生成之設定檔資訊K37經由網路K35而發送至資訊處理裝置K33。
圖88係表示本實施形態之用戶終端100A之設定檔資訊之下載處理之一例之流程圖。再者,關於用戶終端100B之下載處理亦與該圖88大致相同,因此省略說明。
於步驟DL1中,用戶終端100A例如自動地或者依照用戶之指示,將包含資料識別資訊之下載請求經由網路K35而發送至資訊處理裝置K33。
於步驟DL2中,用戶終端100A自資訊處理裝置K33經由網路K35而接收設定檔資訊,作為對於下載請求之回復。
於步驟DL3中,用戶終端100A之作業系統27,於著色表14中,對於與所接收之設定檔資訊之資料識別資訊相對應之資料,儲存所接收之設定檔資訊中所包含之靜態色彩資訊。
於步驟DL4中,用戶終端100A之記憶體管理裝置1判斷所接收之設定檔資訊中是否包含動態色彩資訊。
於所接收之設定檔資訊中不包含動態色彩資訊之情形時,處理結束。
於所接收之設定檔資訊中包含動態色彩資訊之情形時,於步驟DL5中,記憶體管理裝置1於著色表14中,對於與所接收之設定檔資訊之資料識別資訊相對應之資料,儲存所接收之設定檔資訊中所包含之動態色彩資訊。
於以上所說明之本實施形態中,記憶體管理裝置1中所使用之著色資訊藉由廠商或用戶等之多數者而生成,且所生成之著色資訊為共有。
本實施形態中,可根據閱覽著色資訊之次數或下載次數,而對著色資訊之生成者支付費用。
於本實施形態中,資訊處理裝置K33之運營者可收集多個著色資訊,且可迅速地進行與著色資訊相關之各種服務。
藉由使用本實施形態之資訊處理裝置K33,可使著色資訊共有化,可使記憶體管理裝置1及混合主記憶體2之開發迅速化,且可使記憶體管理裝置1及混合主記憶體2得到普及。
(第11實施形態)
本實施形態係上述第1實施形態之變形例。於本實施形態中,說明對經由網路而連接之記憶體進行存取之記憶體管理裝置。
圖89係表示本實施形態之網路系統之一例之方塊圖。
網路系統N37包含資訊處理裝置N37A與資訊處理裝置N37B。資訊處理裝置N37A與資訊處理裝置N37B經由網路N38而連接。資訊處理裝置N37A與資訊處理裝置N37B具有同等之功能,因此以下對於資訊處理裝置N37A進行詳細說明。再者,網路系統N37亦可包含3台以上之資訊處理裝置。
資訊處理裝置N37A包含處理器3A、記憶體管理裝置N32A、揮發性半導體記憶體8A、非揮發性半導體記憶體9A、網路介面裝置N39A。
處理器3A經由記憶體管理裝置N32A而與揮發性半導體記憶體8A、非揮發性半導體記憶體9A、網路介面裝置N39A連接。
該處理器3A亦可於內部包含快取記憶體,圖89中省略說明。資訊處理裝置N37A亦可包含複數個處理器3A。
揮發性半導體記憶體8A與上述第1實施形態之揮發性半導體記憶體8相同。非揮發性半導體記憶體9A與上述第1實施形態之非揮發性半導體記憶體9或非揮發性半導體記憶體10相同。
於本實施之形態中,揮發性半導體記憶體8A與非揮發性半導體記憶體9A用作資訊處理裝置N37A之主記憶體。然而,揮發性半導體記憶體8A與非揮發性半導體記憶體9A,藉由記憶其他資訊處理裝置N37B之資料中對於資訊處理裝置N37A而言存取頻率高之資料或重要度高之資料,從而發揮作為資訊處理裝置N37A中之快取記憶體之功能。於該情形時,揮發性半導體記憶體8A用作資訊處理裝置N37A中之主快取記憶體,非揮發性半導體記憶體9A用作資訊處理裝置N37A中之次要快取記憶體。
網路介面裝置N39A經由網路N38,而與其他資訊處理裝置N37B之網路介面裝置N39A進行網路邏輯位址或資料之發送接收。
對於本實施形態之記憶體管理裝置N32A進行說明。圖90係表示本實施形態之記憶體管理裝置N32A之構成之一例之方塊圖。
記憶體管理裝置N32A之處理部N33A除了包含位址管理部18、讀出管理部19、寫入管理部20、著色資訊管理部21、記憶體使用資訊管理部22、再配置部23以外,還包含網路位址轉換部N34、通信部N35。
網路位址轉換部N34將處理器3A中所使用之短位址長度之邏輯位址(以下,稱為「處理器邏輯位址」)轉換為由網路而連接之複數個資訊處理裝置中所使用的長位址長度之邏輯位址(以下,稱為「網路邏輯位址」)。例如,該位址之轉換中,使用散列函數。再者,處理器邏輯位址為儲存於暫存器中之指標。
工作記憶體16中記憶有位址長度轉換表AT。網路位址轉換部N34參照位址長度轉換表AT,將處理器邏輯位址轉換為網路邏輯位址。
再者,位址長度轉換表AT係記憶於工作記憶體16中,但亦可記憶於資訊記憶部17中。
通信部N35使用網路介面裝置N39A,經由網路N38而發送及接收網路邏輯位址及由網路邏輯位址而指定之資料。
於本實施形態中,記憶體使用資訊11係表示網路系統N37整體(該圖90之例中,記憶體使用資訊11係表示揮發性半導體記憶體8A、非揮發性半導體記憶體9A、揮發性半導體記憶體8B、非揮發性半導體記憶體9B)之記憶體區域之使用狀態。
同樣地,記憶體固有資訊12係表示網路系統N37整體之記憶體區域之固有資訊。
位址轉換資訊13表示網路系統N37整體所使用之網路邏輯位址與實體位址之關係。
著色表14包含網路系統N37整體中之各資料之著色資訊。
於網路系統N37中,對所有資料附加唯一位址。於網路系統N37整體使用共用之網路邏輯位址空間之情形時,必要之位址之位元數例如如128位元等般變大。然而,於該網路系統N37中,處理器3A、3B之暫存器為32位元或64位元。於該情形時,必需將暫存器之位元數之處理器邏輯位址轉換為網路邏輯位址之位元數。記憶體管理裝置N32A、N32B所包含之網路位址轉換部N34執行該轉換處理。
對於網路系統N37之經由網路N38之資料讀出進行說明。
記憶體管理裝置N32A自處理器3A接收處理器邏輯位址,並將該處理器邏輯位址轉換為網路邏輯位址。然後,於與網路邏輯位址相對應之資料未記憶於資訊處理裝置N37A之記憶體(該圖90中為揮發性半導體記憶體8A與非揮發性半導體記憶體9A)之任一者之情形時,記憶體管理裝置N32A係將網路邏輯位址經由網路介面裝置N39A及網路N38而發送至其他資訊處理裝置N37B。
資訊處理裝置N37B之記憶體管理裝置N32B自資訊處理裝置N37A經由網路N38及網路介面裝置N39B,接收與網路邏輯位址相對應之資料。
於所接收之網路邏輯位址記憶於資訊處理裝置N37B之記憶體(該圖90中為揮發性半導體記憶體8B或非揮發性半導體記憶體9B)中之情形時,記憶體管理裝置N32B係根據位址轉換資訊13,將網路邏輯位址轉換為實體位址,並讀出資料。
記憶體管理裝置N32B將所讀出之資料經由網路介面裝置N39A、網路N38而發送至資訊處理裝置N37A。
資訊處理裝置N37A之記憶體管理裝置N32A自資訊處理裝置N37B經由網路N38及網路介面裝置N39A,接收所讀出之資料。
記憶體管理裝置N32A將所讀出之資料返回至處理器3A。
又,記憶體管理裝置N32A參照著色表14,於所讀出之資料之存取頻率或重要度為特定值以上之情形時,將該資料寫入至揮發性半導體記憶體8A或非揮發性半導體記憶體9A,並更新位址轉換資訊13。該寫入藉由與上述第1實施形態相同之方法而決定寫入目的地。
對於網路系統N37之經由網路N38之資料寫入進行說明。
記憶體管理裝置N32A自處理器3A接收處理器邏輯位址與寫入對象資料,並將該處理器邏輯位址轉換為網路邏輯位址。然後,於網路邏輯位址表示其他資訊處理裝置N37B之情形時,記憶體管理裝置N32A係將網路邏輯位址及寫入對象資料經由網路介面裝置N39A及網路N38,而發送至其他資訊處理裝置N37B。
資訊處理裝置N37B之記憶體管理裝置N32B自資訊處理裝置N37A經由網路N38及網路介面裝置N39B,接收網路邏輯位址及寫入對象資料。
記憶體管理裝置N32B根據位址轉換資訊13,將網路邏輯位址轉換為實體位址,並將寫入對象資料寫入至實體位址所示之記憶體區域。
對於上述圖89所示之網路系統N37中之資料D1之複製進行說明。
資訊處理裝置N37A之記憶體管理裝置N32A管理相對於揮發性半導體記憶體8A、非揮發性半導體記憶體9A、進而揮發性半導體記憶體8B、非揮發性半導體記憶體9B之記憶體使用資訊11及記憶體固有資訊12。
進而,記憶體管理裝置N32A由著色表14而管理儲存於揮發性半導體記憶體8A、非揮發性半導體記憶體9A、進而揮發性半導體記憶體8B、非揮發性半導體記憶體9B中之各資料之著色資訊。
記憶體管理裝置N32A根據記憶體使用資訊11、記憶體固有資訊12、著色表14,除了對於揮發性半導體記憶體8A及非揮發性半導體記憶體9A以外,亦對於經由網路N38而連接之揮發性半導體記憶體8B及非揮發性半導體記憶體9B,進行寫入目的地之決定,以延長非揮發性半導體記憶體9A、9B之壽命。
此處,資訊處理裝置N37A之記憶體管理裝置N32A,將自資訊處理裝置N37A對其他資訊處理裝置N37B之存取產生頻率高之本體的資料D1複製至資訊處理裝置N37A之揮發性半導體記憶體8A或非揮發性半導體記憶體9A,並作為資料D1c而記憶。例如,記憶體管理裝置N32A參照著色表14,將記憶於其他資訊處理裝置N37B中且存取頻率為特定位準以上之資料D1作為複製至資訊處理裝置N37A之揮發性半導體記憶體8A或非揮發性半導體記憶體9A中之資料D1c而記憶。
於較之對於其他資訊處理裝置N37B中之資料D1之存取頻率,而對於複製至資訊處理裝置N37A中之資料D1c的存取頻率大於特定位準以上之情形時,記憶體管理裝置N32A、N32B將複製至資訊處理裝置N37A中之資料D1c作為本體而管理。
進而,於資訊處理裝置N37A中,於產生向經複製之資料D1c之寫入之情形時,記憶體管理裝置N32A、N32B將資訊處理裝置N37A之資料D1c作為本體而管理。
如此,於將複製至資訊處理裝置N37A中之資料D1c作為本體而管理之情形時,資訊處理裝置N37B之資料D1維持原狀,可於資料D1、D1c間分配相互不同之位址(ID)。其他位址既可對原資料D1分配,亦可對經複製之資料D1c分配。
又,於資料D1c作為本體而管理之情形時,亦可刪除原資料D1。
記憶體管理裝置N32A、N32B中,以不會產生資料D1、D1c之衝突之方式,例如,產生對於用作快取之資料D1c之寫入之情形時,進行更新本體之資料D1等之管理。
圖91係表示本實施形態之處理器邏輯位址與網路邏輯位址之第1關係之方塊圖。
例如,處理器位址Pr1之上位位址P1u為32位元,下位位址P1d為32位元。
例如,網路邏輯位址N1之上位位址N1u與中位位址N1m之組合為128位元,下位位址N1d為32位元。
網路邏輯位址N1之上位位址N1u例如表示事業者,網路邏輯位址N1之中位位址N1m例如為處理器固有之值。網路邏輯位址N1之上位位址N1u與中位位址N1m係關係到網路之位址,例如,為IP(Internet Protocol,網際網路協定)位址、IPv4等。
網路邏輯位址N1之上位位址N1u與中位位址N1m之組合,藉由散列函數N40而轉換。藉由該轉換,求出位元數較網路邏輯位址N1之上位位址N1u與中位位址N1m更少之處理器邏輯位址Pr1之上位位址P1u。該處理器邏輯位址Pr1之上位位址P1u,用作自處理器邏輯位址Pr1向網路邏輯位址N1之轉換時之密鑰。
網路邏輯位址N1之下位位址N1d直接用作處理器邏輯位址Pr1之下位位址P1d。
於位址長度轉換表AT1中之處理器邏輯位址Pr1之上位位址P1u所示之位置,儲存有網路邏輯位址N1之上位位址N1u與中位位址N1m。
於將處理器邏輯位址Pr1轉換為網路邏輯位址N1之情形時,網路位址轉換部N34參照位址長度轉換表AT1中之處理器邏輯位址Pr1之上位位址P1u所示之位置,求出儲存於該位置中之網路邏輯位址N1之上位位址N1u及中位位址N1m。
然後,網路位址轉換部N34將處理器邏輯位址Pr1之下位位址P1d與所求出之網路邏輯位址N1之上位位址N1u及中位位址N1m組合,從而求出網路邏輯位址N1。
位址長度轉換表AT1中,對各進入點附加表示是否有效之位址長度轉換旗標。
網路位址轉換部N34於相對於位址長度轉換表AT1之進入點之註冊時,參照註冊目的地之位址長度轉換旗標。網路位址轉換部N34於位址長度轉換旗標無效之情形時,直接進行向進入點之註冊。網路位址轉換部N34於位址長度轉換旗標有效之情形時,執行例外處理。藉此,可防止向進入點之重複註冊。
圖92係表示本實施形態之處理器邏輯位址Pr2與網路邏輯位址N2之第2關係之方塊圖。
網路邏輯位址N2之中位位址N2m用於處理器邏輯位址Pr2之上位位址P2u。該處理器邏輯位址Pr2之上位位址P2u用作自處理器邏輯位址Pr2向網路邏輯位址N2之轉換時之密鑰。
網路邏輯位址N2之下位位址N2d直接用作處理器邏輯位址Pr2之下位位址P2d。
於位址長度轉換表AT2中之處理器邏輯位址Pr2之上位位址P2u所示之位置,儲存有網路邏輯位址N2之上位位址N2u與中位位址N2m。
於將處理器邏輯位址Pr2轉換為網路邏輯位址N2之情形時,網路位址轉換部N34參照位址長度轉換表AT2中之處理器邏輯位址Pr2之上位位址P2u所示之位置,求出儲存於該位置中之網路邏輯位址N2之上位位址N2u及中位位址N2m。
然後,網路位址轉換部N34將處理器邏輯位址Pr2之下位位址P2d與已求出之網路邏輯位址N2之上位位址N2u及中位位址N2m組合,求出網路邏輯位址N2。
圖93係表示本實施形態之處理器邏輯位址與網路邏輯位址之第3關係之方塊圖。
網路邏輯位址N3之中位位址N3m及下位位址N3d用於處理器邏輯位址Pr3之上位位址P3u及下位位址P3d。該處理器邏輯位址Pr3之上位位址P3u用作自處理器邏輯位址Pr3向網路邏輯位址N3之轉換時之密鑰。
於位址長度轉換表AT3中之處理器邏輯位址Pr3之上位位址P3u所示之位置,儲存有網路邏輯位址N3之上位位址N3u。
於將處理器邏輯位址Pr3轉換為網路邏輯位址N3之情形時,網路位址轉換部N34參照位址長度轉換表AT3中之處理器邏輯位址Pr3之上位位址P3u所示之位置,求出儲存於該位置中之網路邏輯位址N3之上位位址N3u。
然後,網路位址轉換部N34將處理器邏輯位址Pr3之上位位址P3u及下位位址P3d組合於與已求出之網路邏輯位址N3之上位位址N3u,求出網路邏輯位址N3。
圖94係表示本實施形態之處理器邏輯位址與網路邏輯位址之第4關係之方塊圖。
網路位址轉換部N34自網路邏輯位址N4之上位位址N4u與中位位址N4m之組合,以n位元間隔抽出值,並將該已抽出之值設為處理器邏輯位址Pr4之上位位址P4u。藉由該轉換,求出較網路邏輯位址N4之上位位址N4u與中位位址N4m位元數更少之處理器邏輯位址Pr4之上位位址P4u。該處理器邏輯位址Pr4之上位位址P4u用作自處理器邏輯位址Pr4向網路邏輯位址N4之轉換時之密鑰。
網路邏輯位址N4與處理器邏輯位址Pr4之其他關係、及自處理器邏輯位址Pr4向網路邏輯位址N4之轉換與上述圖91之情形相同,因此省略說明。
圖95係表示本實施形態之處理器邏輯位址與網路邏輯位址之第5關係之方塊圖。
網路位址轉換部N34將網路邏輯位址N5之上位位址N5u與中位位址N5m之組合除以值P(例如質數)所餘之值設為處理器邏輯位址Pr5之上位位址P5u。藉由該轉換,求出較網路邏輯位址N5之上位位址N5u與中位位址N5m位元數更少之處理器邏輯位址Pr5之上位位址P5u。該處理器邏輯位址Pr5之上位位址P5u用作自處理器邏輯位址Pr5向網路邏輯位址N5之轉換時之密鑰。
網路邏輯位址N5與處理器邏輯位址Pr5之其他關係、及自處理器邏輯位址Pr5向網路邏輯位址N5之轉換與上述圖91之情形相同,因此省略說明。
再者,網路位址轉換部N34亦可使用轉換表代替散列函數N40,將網路邏輯位址N1~N5之一部分轉換為處理器邏輯位址Pr1~Pr5之一部分,將該處理器邏輯位址Pr1~Pr5之一部分用作位址長度之轉換之密鑰。
又,網路位址轉換部N34亦可作成將網路邏輯位址N1~N5之一部分或全部註冊之表,使該表之位址為自處理器邏輯位址Pr1~Pr5向網路邏輯位址N1~N5之轉換所使用之密鑰。於該轉換方法中,複數個資訊處理裝置N37A、N37B之各個亦可管理表。更佳為,亦可於連接於網路N38之複數個資訊處理裝置N37A、N37B之間使表共有,資訊處理裝置N37A、N37B之各個將該表之複本局部地儲存於快取記憶體等中。
於上述位址之轉換中,網路邏輯位址N1~N5之下位位址N1d~N5d與處理器邏輯位址Pr1~Pr5之下位位址P1d~P5d未轉換而被使用,但亦可使該網路邏輯位址N1~N5之下位位址N1d~N5d與處理器邏輯位址Pr1~Pr5之下位位址P1d~P5d轉換。
圖96係表示本實施形態之網路系統N37之虛擬位址空間之一例之方塊圖。
於本實施形態中,網路系統N37之所有資料中分配有唯一網路邏輯位址,因此可於各資訊處理裝置N37A、N37B中形成共用之虛擬位址空間N41。
圖97係表示本實施形態之處理器邏輯位址與網路邏輯位址之構成之第1例之方塊圖。
處理器邏輯位址N42包含轉換密鑰、檔案位址及偏移。
網路位址轉換部N34將處理器邏輯位址N42轉換為網路邏輯位址N43。
網路邏輯位址N43包含處理器識別資訊(例如,事業者及資訊處理裝置之識別資訊)、檔案位址及偏移。
記憶體管理裝置N32A將網路邏輯位址N43經由網路N38而發送至記憶體管理裝置N32B。於是,記憶體管理裝置N32B讀出藉由該網路邏輯位址N43之檔案位址與偏移所指定之資料,並將其返回至記憶體管理裝置N32A。
圖98係表示本實施形態之處理器邏輯位址與網路邏輯位址之構成之第2例之方塊圖。
處理器邏輯位址N44包含轉換密鑰與偏移。
網路位址轉換部N34將處理器邏輯位址N44轉換為網路邏輯位址N45。
網路邏輯位址N45包含處理器識別資訊及檔案位址、偏移。
記憶體管理裝置N32A將網路邏輯位址N45經由網路N38而發送至記憶體管理裝置N32B。於是,記憶體管理裝置N32B讀出藉由該網路邏輯位址N45之檔案位址與偏移而指定之資料,並將其返回至記憶體管理裝置N32A。
圖99係表示本實施形態之處理器邏輯位址與網路邏輯位址之構成之第3例之方塊圖。
處理器邏輯位址N46包含轉換密鑰、檔案位址。
網路位址轉換部N34將處理器邏輯位址N46轉換為網路邏輯位址N47。
網路邏輯位址N47包含處理器識別資訊與檔案位址。
記憶體管理裝置N32A將網路邏輯位址N47經由網路N38而發送至記憶體管理裝置N32B。於是,記憶體管理裝置N32B讀出藉由該網路邏輯位址N47之檔案位址而指定之檔案資料,並將其返回至記憶體管理裝置N32A。
關於如上述般之位址轉換之技術性意義於以下進行說明。
例如,8位元CPU(Central Processing Unit)一般用作處理器3A。該8位元CPU之位元數包含8位元之暫存器。又,於一般使用之8位元CPU中,位址之位元數為16位元。
例如,16位元CPU包含16位元之暫存器。於一般使用之16位元CPU中,位址之位元數為20位元。
通用暫存器儲存數值與位址之任一者。因此,較理想的是數值之位元數與位址之位元數一致。然而,如上述般,有時暫存器之位元數與位址之位元數不一致。
現狀為64位元CPU正普及。64位元CPU可提供充分之運算精度。因此,暫存器之位元數超過64位元之必要性低。又,自CPU之加法器之進位處理之觀點考慮,認為CPU包含超過69位元之暫存器困難。
相對於此,認為增加位址之位元數之必要性高。作為其一例對單級存儲結構(SLS,Single Level Store)進行說明。
SLS中,對包含輔助記憶裝置之各種記憶裝置,分配虛擬位址。近年來,未經由網路而連接之局部之記憶裝置為Tbyte等級,因此虛擬位址之大小若為32位元則不足,若為64位元則足夠。
然而,於使用網路環境中所使用之例如(NAS(Network Attached Storage,網路附接儲存器))等記憶裝置之情形時,或者,於將位址分配至連接於網路之多個記憶裝置之情形時,必需使虛擬位址之大小如例如128位元等般大。
圖100係表示推算對記憶於連接於網路之多個機器中之資料進行存取所需之位址之位元數的計算之一例之圖。
如該圖100所示,若假設全世界之人們記憶某程度之資料,則藉由使用82位元之網路邏輯位址可對該等資料進行存取。
因此,如上述般,於網路系統N37中,根據與處理器3a、3b之暫存器之位元數相同的處理器邏輯位址,求出位元數更多之網路用之網路邏輯位址之意義較大。
例如,於本實施之形態中,網路邏輯位址設為128位元,藉此可對網路系統之所有資料分配位址。
於以上所說明之本實施形態中,可對網路系統N37中所使用之所有資料分配位址。
於本實施形態中,可於網路系統N37所包含之揮發性半導體記憶體8A及非揮發性半導體記憶體9A、揮發性半導體記憶體8B及非揮發性半導體記憶體9B之間,例如,藉由共用之方法而進行如位址轉換、寫入目的地決定等般之基本記憶體管理及記憶體存取。即,本實施形態之各資訊處理裝置N37A、N37B於存取方法、存取次數、存取頻率等之管理中,亦可不將自身裝置所包含之記憶體、與經由網路N38而連接之記憶體加以區別。
於本實施形態中,藉由資訊處理裝置N37A、N37B而存取之頻率高之資料係記憶於該裝置內,因此可防止由經由網路N38而發送接收所引起之存取延遲、由網路之切斷所引起之存取之失敗。
於本實施形態中,可將網路系統N37上之揮發性半導體記憶體8A及非揮發性半導體記憶體9A、揮發性半導體記憶體8B及非揮發性半導體記憶體9B用作主記憶體。進而,本實施形態之各資訊處理裝置N37A、N37B可將自身裝置內之記憶體用作記憶其他裝置中所記憶之資料之快取記憶體。
於本實施形態中,使用可較處理器3a、3b之暫存器之位元數更大之位元數之位址,可使用廣大之記憶體空間。
一般而言,未經由網路而進行之存取係進行向記憶裝置之讀取、寫入,經由網路而進行之存取係藉由Socket(通訊端)通信而進行。讀取及寫入、與Socket通信中,存取方法不同。又,經由網路之Web存取中,例如應用使用URL(Uniform Resource Locator,一致資源定位器)等之特別存取方法。相對於此,於本實施形態中,與是否經由網路進行存取無關,係根據網路邏輯位址進行對於記憶裝置之存取,且使用相同之存取方法。
於本實施形態中,位址長度轉換表AT、AT1~AT5中附加有位址長度轉換旗標,藉此可防止重複註冊。
上述各實施形態中所說明之各構成要素可自由組合,可自由分割。例如,可將各實施形態所示之任意功能區塊適當組合,又可適當分割。又,例如,可僅將各實施形態所示之流程圖之一部分之步驟抽出而實施,可將任意之步驟適當組合,又可適當分割。
本發明並非限定於上述實施形態,於實施階段中於不脫離其主旨之範圍內可進行各種變形。進而,上述實施形態中包含各種階段之發明,藉由所揭示之複數個構成要件中之適當組合可抽出各種發明。
1、D32、E35、N32A、N32B...記憶體管理裝置
2...混合主記憶體
3a、3b、3c、3A、3B...處理器
3ma、3mb、3mc...記憶體控制器
4a、4b、4c...主快取記憶體
5a、5b、5c...次要快取記憶體
6a、6b、6c...程序
8、8A、8B...揮發性半導體記憶體
9、9A、9B、10、29、291~295...非揮發性半導體記憶體
11、E36...記憶體使用資訊
12、E37...記憶體固有資訊
13、E39...位址轉換資訊
13a...NAND邏輯實體轉換表
14、E38...著色表
15、D33、N33A...處理部
16...工作記憶體
17...資訊記憶部
18...位址管理部
19...讀出管理部
20...寫入管理部
21...著色資訊管理部
22...記憶體使用資訊管理部
23...再配置部
24...存取頻率算出部
25...動態色彩資訊管理部
27...作業系統
28...快取記憶體
30...記憶體模組
31...按鈕
32...預約列表
100、100A、N37A、N37B...資訊處理裝置
100A、100B...用戶終端
201...群組值算出部
202...預約列表管理部
321~326...預約節點
AT、AT1、AT2、AT3...位址長度轉換表
cia...計數資訊
cta...計數器
CHD...快取標頭
D34...消耗率算出部
D35...切換判斷部
D36...切換控制部
D1、D1c、Da、Db、Dc...資料
DBF...壞位元欄
E32...記憶體之邏輯位址空間
E33...記憶體之實體位址空間
E34...處理器實體位址空間
E34a、E34b...檔案系統
ECL...區域快取線列表
ELM...區界
FCL...可用快取線列表
H32a~H32m...記憶體裝置
H33...連接檢測部
H34...判斷部
H35...通知部
H36...更換控制部
H37a、H37b、H37c...記憶體單元
H38a、H38b、H38c...正常通知部
H39a、H39b、H39c...警告通知部
H40a、H40b、H40c...使用停止通知部
H41a、H41b、H41c...連接操作部
H42a、H42b、H42c...連接器部
H43a、H43b、H43c...管理資訊
H44a、H44b、H44c...連接器部
H45a~H45m...顯示部
H46a~H46l...按鈕
J32、N41...虛擬位址空間
J33...資訊
J34a~J34f...虛擬位址區域
K32...網路系統
K33...資訊處理裝置
K33a、K34c、N35...通信部
K33b...設定檔資訊管理部
K33c、K34b...記憶裝置
K34...設定檔生成終端
K34a...設定部
K35、N38...網路
K36、K37、K38...設定檔資訊
K40...服務資料
MA、MB、MC、MD...記憶體區域
MW1~MWn...記憶體視窗
N1、N2、N3、N4、N5、N43、N45、N47...網路邏輯位址
N1u、N4u、N5u、...上位位址
P1u、P2u、P3u、P4u、P5u、N1m、N2m、N3m、N4m、N5m...中位位址
N1d、N2d、N3d、P1d、P3d...下位位址
N34...網路位址轉換部
N37...網路系統
N39A...網路介面裝置
N40...散列函數
ND...節點
OS...作業系統
Pc1~Pcn...程序
PLA1~PLAn...處理器邏輯位址空間
Pr1、Pr2、Pr3、Pr4、Pr5、N42、N44、N46...處理器邏輯位址
圖1係表示本發明之第1實施形態之記憶體管理裝置及資訊處理裝置之構成之一例之方塊圖。
圖2係表示第1實施形態之記憶體管理裝置及資訊處理裝置之構成之一例之方塊圖。
圖3係表示第1實施形態之混合主記憶體之記憶體映像之一例之圖。
圖4係表示第1實施形態之位址轉換資訊之一例之圖。
圖5係表示第1實施形態之著色表之一例之圖。
圖6係用以說明第1實施形態之靜態色彩資訊之一例之圖。
圖7係表示第1實施形態之資料配置之處理之一例之流程圖。
圖8係表示第1實施形態之著色表之構成之一例之圖。
圖9係表示相對於各種資料之靜態色彩資訊之設定之第1例之圖。
圖10係表示相對於各種資料之靜態色彩資訊之設定之第2例之圖。
圖11係表示第1實施形態之著色表之生成處理之一例之流程圖。
圖12係表示第1實施形態之著色表之進入點之生成處理之一例之流程圖。
圖13係表示著色表之進入點之對齊之第1例之圖。
圖14係表示著色表之進入點之對齊之第2例之圖。
圖15係表示根據動態色彩資訊與靜態色彩資訊而算出動態寫入頻率DW_color與動態讀出頻率DR_color之方法之一例之圖。
圖16係表示第1實施形態之資料之讀出處理之一例之流程圖。
圖17係表示第1實施形態之資料之讀出方式之決定處理之一例之流程圖。
圖18係表示第1實施形態之資料之寫入處理之一例之流程圖。
圖19係表示第1實施形態之資料之寫入目的地區域之決定處理之一例之流程圖。
圖20係用以對第1實施形態之相對於資料之寫入對象區塊之決定處理進行說明之圖。
圖21係表示非揮發性半導體記憶體之任意區塊區域中之刪除次數之推移之一例的圖表。
圖22係表示於損耗均衡演算法中將相對於刪除次數之差之臨限值設定得較小時之變化之一例的圖表。
圖23係表示與刪除次數相應之區塊區域之分組之一例之圖表。
圖24係表示與刪除次數相應之區塊區域之分組之判斷基準之圖。
圖25係表示損耗均衡演算法中之區塊區域之檢索之一例之圖。
圖26係表示包含快取記憶體之記憶體管理裝置之一例之方塊圖。
圖27(A)、(B)係表示記憶體管理裝置、混合主記憶體、處理器之安裝例之方塊圖。
圖28係表示第1實施形態之記憶體管理裝置與資訊處理裝置之其他構成態樣之一例之方塊圖。
圖29係表示管理複數個非揮發性半導體記憶體之複數個記憶體管理裝置之一例之立體圖。
圖30係表示第2實施形態之揮發性半導體記憶體之實體位址空間之一例之圖。
圖31(a)、(b)係表示著色資訊與揮發性半導體記憶體之區域之關係之一例之圖。
圖32(a)、(b)係表示著色資訊與揮發性半導體記憶體之區域之關係之其他例之圖。
圖33係表示用以管理第2實施形態之揮發性半導體記憶體之空白區域與使用區域之資料結構之一例之圖。
圖34係表示第2實施形態之揮發性半導體記憶體之寫入處理之一例之流程圖。
圖35係表示第2實施形態之揮發性半導體記憶體之刪除處理之一例之流程圖。
圖36係表示本發明之第3實施形態之位址轉換資訊中之非揮發性半導體記憶體的有效/無效旗標之真值之圖。
圖37係表示非揮發性半導體記憶體之有效/無效旗標之狀態過渡之圖。
圖38係表示第3實施形態之混合主記憶體之釋放請求時之處理之流程圖。
圖39係用以說明圖38中之記憶體之釋放請求時之揮發性半導體記憶體的明示性空白區域之形成之圖。
圖40係表示第3實施形態之混合主記憶體之獲得請求時之處理之流程圖。
圖41係表示圖40中之記憶體資料讀取請求時之處理之流程圖。
圖42係表示圖40中之記憶體資料寫入請求時之處理之流程圖。
圖43係表示本發明之第4實施形態之記憶體管理裝置之功能構成之主要部分之一例之方塊圖。
圖44係表示不以著色資訊對寫入對象資料進行分類時之區塊大小之資料構成之一例之圖。
圖45係表示以著色資訊對寫入對象資料進行分類時之區塊大小之資料構成之一例之圖。
圖46係表示第4實施形態之位址轉換資訊與非揮發性半導體記憶體之實體位址空間(NAND邏輯位址)之關係之一例之圖。
圖47係表示非揮發性半導體記憶體之邏輯實體轉換表(NAND邏輯實體轉換表)之一例之圖。
圖48係表示預約列表之一例之資料結構圖。
圖49係表示第4實施形態之群組值算出部與預約列表管理部之處理之一例之流程圖。
圖50係表示第4實施形態之位址轉換資訊之狀態過渡之一例之圖。
圖51係表示第5實施形態之壞位元欄之一例之圖。
圖52係表示第5實施形態之停機處理之一例之流程圖。
圖53係表示適用於第5實施形態之著色表之一例之圖。
圖54係表示第5實施形態之預看提示資訊之設定處理之流程圖。
圖55係表示第5實施形態之啟動時之作業系統之處理之一例之流程圖。
圖56係表示本發明之第6實施形態之虛擬位址空間內之虛擬位址區域與屬性資訊之關係之一例之方塊圖。
圖57係表示作業系統之虛擬位址區域資料之第2屬性資訊之設定處理之一例之流程圖。
圖58係表示基於虛擬位址區域資料之靜態色彩資訊之設定之一例之圖。
圖59係表示指令與程式庫之間之依存關係之一例之圖。
圖60係表示指令之得分與程式庫之得分之一例之圖。
圖61係表示基於指令之得分之程式庫之得分的其他算出例之圖。
圖62係表示使用有程式庫之得分之靜態色彩資訊之設定之一例之圖。
圖63係表示由編譯程式彙集之變數或函數之一例之圖。
圖64係表示使用有編譯程式之靜態色彩資訊之設定之一例之圖。
圖65係表示基於動態地生成之記憶體區域之使用頻率之靜態色彩資訊之設定之一例之圖。
圖66係表示本發明之第7實施形態之記憶體管理裝置、資訊處理裝置及記憶體裝置之構成之一例之方塊圖。
圖67係表示記憶體單元之刪除次數之變化之一例之圖表。
圖68係表示基於記憶體裝置之刪除次數之記憶體裝置之使用狀態之一例之圖表。
圖69係表示基於記憶體裝置之讀出產生次數之記憶體裝置之使用狀態之一例之圖表。
圖70係表示根據記憶體裝置之刪除次數,向記憶體裝置通知使用狀態之處理之一例之流程圖。
圖71係表示根據記憶體裝置之讀出產生次數,向記憶體裝置通知使用狀態之處理之一例之流程圖。
圖72係表示管理資訊中所包含之資料之一例之圖。
圖73係表示自記憶體管理裝置上電性連接有記憶體裝置起,直至對記憶體裝置開始進行存取為止之處理之一例之流程圖。
圖74係表示記憶體管理裝置自記憶體裝置接收卸下通知起,直至記憶體裝置可卸下為止之處理之一例之流程圖。
圖75係表示記憶體裝置之更換狀態之一例之圖。
圖76係表示記憶體裝置之再利用之一例之方塊圖。
圖77係表示根據著色資訊,以對特定之記憶體裝置之存取次數多於對其他記憶體裝置之存取次數之方式進行控制時的存取次數之變化之一例之圖表。
圖78係表示本發明之第8實施形態之記憶體管理裝置之構成之一例之圖。
圖79係表示第8實施形態之非揮發性半導體記憶體之動態切換之第1例之模式圖。
圖80係表示第8實施形態之非揮發性半導體記憶體之動態切換之第2例之模式圖。
圖81係表示第8實施形態之切換控制部之記憶體區域之切換控制之第1例之狀態過渡圖。
圖82係表示第8實施形態之切換控制部之記憶體區域之切換控制之第2例之狀態過渡圖。
圖83係表示本發明之第9實施形態之記憶體管理裝置與位址空間之關係之一例之方塊圖。
圖84係表示第9實施形態之處理器與記憶體管理裝置之寫入動作之一例之流程圖。
圖85係表示本發明之第10實施形態之資訊處理裝置及網路系統之構成之一例之圖。
圖86係表示第10實施形態之設定檔資訊管理部之處理之一例之流程圖。
圖87係表示第10實施形態之用戶終端之設定檔資訊之上載處理之一例之流程圖。
圖88係表示第10實施形態之用戶終端之設定檔資訊之下載處理之一例之流程圖。
圖89係表示本發明之第11實施形態之網路系統之一例之方塊圖。
圖90係表示第11實施形態之記憶體管理裝置之構成之一例之方塊圖。
圖91係表示第11實施形態之處理器邏輯位址與網路邏輯位址之第1關係之方塊圖。
圖92係表示第11實施形態之處理器邏輯位址與網路邏輯位址之第2關係之方塊圖。
圖93係表示第11實施形態之處理器邏輯位址與網路邏輯位址之第3關係之方塊圖。
圖94係表示第11實施形態之處理器邏輯位址與網路邏輯位址之第4關係之方塊圖。
圖95係表示第11實施形態之處理器邏輯位址與網路邏輯位址之第5關係之方塊圖。
圖96係表示第11實施形態之網路系統之虛擬位址空間之一例之方塊圖。
圖97係表示第11實施形態之處理器邏輯位址與網路邏輯位址之構成之第1例之方塊圖。
圖98係表示第11實施形態之處理器邏輯位址與網路邏輯位址之構成之第2例之方塊圖。
圖99係表示第11實施形態之處理器邏輯位址與網路邏輯位址之構成之第3例之方塊圖。
圖100係表示推算對連接於網路之多個機器中所儲存之資料進行存取所需之位址之位元數的計算之一例之圖。
1‧‧‧記憶體管理裝置
2‧‧‧混合主記憶體
3a、3b、3c‧‧‧處理器
4a、4b、4c‧‧‧主快取記憶體
5a、5b、5c‧‧‧次要快取記憶體
6a、6b、6c‧‧‧程序
8‧‧‧揮發性半導體記憶體
9、10‧‧‧非揮發性半導體記憶體
11‧‧‧記憶體使用資訊
12‧‧‧記憶體固有資訊
13‧‧‧位址轉換資訊
14‧‧‧著色表
15‧‧‧處理部
16‧‧‧工作記憶體
17‧‧‧資訊記憶部
100‧‧‧資訊處理裝置
Claims (21)
- 一種記憶體管理裝置,其係對應來自處理器之寫入請求及讀出請求,控制對於包含非揮發性半導體記憶體及揮發性半導體記憶體之主儲存記憶體之寫入及讀出者;且包括:著色資訊保持部,其係保持根據寫入至上述非揮發性半導體記憶體及上述揮發性半導體記憶體之至少一者中之寫入對象資料之資料特性而生成之著色資訊;及寫入管理部,其係參照上述著色資訊,自上述非揮發性半導體記憶體及上述揮發性半導體記憶體決定寫入上述寫入對象資料之區域。
- 如請求項1之記憶體管理裝置,其中上述著色資訊係包含根據上述寫入對象資料之資料特性而推測之存取頻率。
- 如請求項1之記憶體管理裝置,其中上述著色資訊係包含根據上述寫入對象資料之資料特性而推測之資料壽命。
- 如請求項1之記憶體管理裝置,其中上述著色資訊係包含根據上述寫入對象資料之資料特性而推測之重要度。
- 如請求項1之記憶體管理裝置,其中上述著色資訊係更包含對於上述寫入對象資料之存取次數。
- 如請求項1之記憶體管理裝置,其中 上述著色資訊係包含根據上述寫入對象資料之資料特性而推測之存取頻率、資料壽命、及重要度中之至少一者。
- 如請求項2之記憶體管理裝置,其中上述非揮發性半導體記憶體係包含第1區域與第2區域,上述寫入管理部係參照上述著色資訊,將根據上述資料而推測之存取頻率高之寫入對象資料寫入至上述第1區域,上述寫入管理部係參照上述著色資訊,將根據上述資料而推測之存取頻率低之寫入對象資料寫入至上述第2區域。
- 如請求項1之記憶體管理裝置,其中更包括讀出管理部,該讀出管理部係於將讀出對象資料自上述非揮發性半導體記憶體讀出之情形時,參照上述讀出對象資料之上述著色資訊,判斷是否將上述讀出對象資料快取至上述揮發性半導體記憶體。
- 如請求項1之記憶體管理裝置,其中上述非揮發性半導體記憶體為NAND型快閃記憶體,上述揮發性半導體記憶體為DRAM(動態隨機存取記憶體)。
- 如請求項6之記憶體管理裝置,其中根據上述寫入對象資料之上述資料特性而推測之上述存取頻率、上述資料壽命、及上述重要度中之至少一者 係根據上述寫入對象資料之檔案系統上之檔案特性、及對上述寫入對象資料進行處理的程式之程式執行時之資料類別之特性中之至少一者而決定。
- 如請求項6之記憶體管理裝置,其中根據上述寫入對象資料之上述資料特性而推測之上述存取頻率、上述資料壽命、及上述重要度中之至少一者係根據上述寫入對象資料之副檔名(extension)而決定。
- 如請求項6之記憶體管理裝置,其中根據上述寫入對象資料之上述資料特性而推測之上述存取頻率、上述資料壽命、及上述重要度中之至少一者係根據上述寫入對象資料之核心之配置區域而決定。
- 如請求項5之記憶體管理裝置,其中根據對上述寫入對象資料之存取次數算出對上述寫入對象資料之存取頻率;上述寫入管理部參照上述存取頻率而決定上述寫入對象資料之上述非揮發性半導體記憶體上之寫入區域。
- 如請求項13之記憶體管理裝置,其包括:再配置部,其係參照上述非揮發性半導體記憶體及上述揮發性半導體記憶體上之資料之上述存取次數或上述存取頻率,進行上述資料之再配置。
- 如請求項6之記憶體管理裝置,其中上述非揮發性半導體記憶體包含第1區域及第2區域,上述第2區域相較於上述第1區域可儲存多位元之資料;上述寫入管理部參照上述著色資訊,將根據上述資料 特性而推測之上述資料壽命短之寫入對象資料寫入至上述揮發性半導體記憶體;將根據上述資料特性而推測之上述資料壽命長且根據上述資料特性而推測之上述重要度高之寫入對象資料寫入至上述非揮發性半導體記憶體之上述第1區域;將根據上述資料特性而推測之上述資料壽命長且根據上述資料特性而推測之上述重要度低之寫入對象資料寫入至上述非揮發性半導體記憶體之上述第2區域。
- 如請求項6之記憶體管理裝置,其中上述著色資訊進一步包含對上述寫入對象資料之存取次數;上述非揮發性半導體記憶體包含第1區域及第2區域;上述寫入管理部參照根據對上述寫入對象資料之上述存取次數而算出之上述存取頻率,自上述第1區域及上述第2區域決定寫入上述寫入對象資料之上述區域。
- 如請求項1之記憶體管理裝置,其中上述寫入管理部根據上述著色資訊、及包含上述非揮發性半導體記憶體之每個特定區域之刪除次數之記憶體使用資訊而決定寫入區域,以抑制損耗均衡演算法對上述非揮發性半導體記憶體之刪除處理之產生次數。
- 一種記憶體用資訊處理裝置,其包括:處理器;作為主記憶體而使用之非揮發性半導體記憶體及揮發性半導體記憶體;及 記憶體管理部,其係對應來自上述處理器之寫入請求及讀出請求,控制對於上述非揮發性半導體記憶體及上述揮發性半導體記憶體之寫入及讀出;且上述記憶體管理部包含:著色資訊保持部,其係保持根據寫入至上述非揮發性半導體記憶體及上述揮發性半導體記憶體之至少一者中之寫入對象資料之資料特性而產生之著色資訊;及寫入管理部,其係參照上述著色資訊,自上述非揮發性半導體記憶體及上述揮發性半導體記憶體決定寫入上述寫入對象資料之區域。
- 如請求項18之記憶體用資訊處理裝置,其中上述著色資訊係包含根據上述寫入對象資料之上述資料特性而推測之存取頻率、資料壽命、及重要度中之至少一者。
- 如請求項18之記憶體用資訊處理裝置,其中上述記憶體管理部更包括讀出管理部,該讀出管理部係於將讀出對象資料自上述非揮發性半導體記憶體讀出之情形時,參照上述讀出對象資料之上述著色資訊,判斷是否將上述讀出對象資料快取至上述揮發性半導體記憶體。
- 如請求項18之記憶體用資訊處理裝置,其中上述著色資訊係更包含對於上述寫入對象資料之存取次數,上述存取次數係藉由上述處理器所包括之計數器來計數。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009169371A JP2011022933A (ja) | 2009-07-17 | 2009-07-17 | メモリ管理装置を含む情報処理装置及びメモリ管理方法 |
JP2010048339A JP2011186563A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置およびメモリ管理方法 |
JP2010048333A JP2011186557A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置及び方法 |
JP2010048334A JP2011186558A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置及び方法 |
JP2010048332A JP5322978B2 (ja) | 2010-03-04 | 2010-03-04 | 情報処理装置及び方法 |
JP2010048329A JP2011186554A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置及び方法 |
JP2010048328A JP2011186553A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置 |
JP2010048338A JP2011186562A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置及び方法 |
JP2010048335A JP2011186559A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置 |
JP2010048337A JP2011186561A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置 |
JP2010048331A JP2011186555A (ja) | 2010-03-04 | 2010-03-04 | メモリ管理装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201106157A TW201106157A (en) | 2011-02-16 |
TWI460588B true TWI460588B (zh) | 2014-11-11 |
Family
ID=43449209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099106706A TWI460588B (zh) | 2009-07-17 | 2010-03-08 | Memory management device and memory information processing device |
Country Status (6)
Country | Link |
---|---|
US (2) | US20120191900A1 (zh) |
EP (1) | EP2455865B1 (zh) |
KR (1) | KR20120068765A (zh) |
CN (1) | CN102473140B (zh) |
TW (1) | TWI460588B (zh) |
WO (1) | WO2011007599A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI602055B (zh) * | 2015-12-17 | 2017-10-11 | 華邦電子股份有限公司 | 半導體儲存裝置及其編程方法 |
TWI633436B (zh) * | 2015-05-21 | 2018-08-21 | 美商美光科技公司 | 記憶體中之轉譯後備緩衝器 |
TWI658405B (zh) * | 2017-03-17 | 2019-05-01 | 合肥兆芯電子有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI663542B (zh) * | 2016-09-20 | 2019-06-21 | 東芝記憶體股份有限公司 | Memory system |
TWI710900B (zh) * | 2015-11-13 | 2020-11-21 | 南韓商三星電子股份有限公司 | 儲存裝置及方法 |
TWI732414B (zh) * | 2019-01-29 | 2021-07-01 | 美商超捷公司 | 用於基於使用頻率而改變程式狀態分隔的記憶體構件及方法 |
Families Citing this family (293)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909614B2 (en) | 2010-03-29 | 2014-12-09 | Nec Corporation | Data access location selecting system, method, and program |
JP5532124B2 (ja) * | 2010-04-05 | 2014-06-25 | トヨタ自動車株式会社 | 車両の衝突判定装置 |
JP2012033001A (ja) | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置および情報処理方法 |
JP2012033047A (ja) | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
TWI490690B (zh) * | 2011-04-20 | 2015-07-01 | Taejin Infotech Co Ltd | 用於半導體儲存裝置的raid控制器 |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
CN103946812B (zh) | 2011-09-30 | 2017-06-09 | 英特尔公司 | 用于实现多级别存储器分级体系的设备和方法 |
CN104025060B (zh) | 2011-09-30 | 2017-06-27 | 英特尔公司 | 支持近存储器和远存储器访问的存储器通道 |
US9317429B2 (en) | 2011-09-30 | 2016-04-19 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
CN103946813B (zh) | 2011-09-30 | 2017-08-25 | 英特尔公司 | 基于使用统计量追踪的远存储器访问信号的生成 |
WO2013048430A1 (en) | 2011-09-30 | 2013-04-04 | Hewlett-Packard Development Company, L.P. | Authentication systems and methods |
WO2013048503A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
JP5860543B2 (ja) * | 2011-10-26 | 2016-02-16 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | ブートデータのロード |
JP2014530422A (ja) * | 2011-10-27 | 2014-11-17 | ▲ホア▼▲ウェイ▼技術有限公司 | バッファマッピングを制御するための方法およびバッファシステム |
JP5862408B2 (ja) * | 2012-03-27 | 2016-02-16 | 富士通株式会社 | エミュレーション装置、及びエミュレーションプログラム |
US9367439B2 (en) * | 2012-04-30 | 2016-06-14 | Oracle International Corporation | Physical memory usage prediction |
JP5735711B2 (ja) * | 2012-06-26 | 2015-06-17 | 東芝三菱電機産業システム株式会社 | データ収集装置及びデータ収集プログラム |
TWI454913B (zh) * | 2012-06-26 | 2014-10-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US10037271B1 (en) * | 2012-06-27 | 2018-07-31 | Teradata Us, Inc. | Data-temperature-based control of buffer cache memory in a database system |
KR101975406B1 (ko) | 2012-07-11 | 2019-05-07 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들 |
KR101975528B1 (ko) | 2012-07-17 | 2019-05-07 | 삼성전자주식회사 | 패스트 어레이 영역을 갖는 반도체 메모리 셀 어레이 및 그것을 포함하는 반도체 메모리 |
US9524248B2 (en) * | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
JP5788369B2 (ja) * | 2012-09-12 | 2015-09-30 | 株式会社東芝 | メモリシステム、コンピュータシステム、およびメモリ管理方法 |
CN103678143B (zh) * | 2012-09-25 | 2018-10-12 | 联想(北京)有限公司 | 文件存储方法、装置及电子设备 |
US20140095778A1 (en) * | 2012-09-28 | 2014-04-03 | Jaewoong Chung | Methods, systems and apparatus to cache code in non-volatile memory |
US20140101370A1 (en) | 2012-10-08 | 2014-04-10 | HGST Netherlands B.V. | Apparatus and method for low power low latency high capacity storage class memory |
TW201417102A (zh) | 2012-10-23 | 2014-05-01 | Ind Tech Res Inst | 電阻式記憶體裝置 |
US8984251B2 (en) * | 2012-12-04 | 2015-03-17 | Apple Inc. | Hinting of deleted data from host to storage device |
KR102011135B1 (ko) * | 2012-12-11 | 2019-08-14 | 삼성전자주식회사 | 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법 |
US9235528B2 (en) * | 2012-12-21 | 2016-01-12 | Advanced Micro Devices, Inc. | Write endurance management techniques in the logic layer of a stacked memory |
CN103902462B (zh) * | 2012-12-27 | 2018-03-09 | 华为技术有限公司 | 内存管理方法、内存管理装置及计算机 |
KR20150115752A (ko) * | 2013-01-31 | 2015-10-14 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 적응성 입도 로우 버퍼 캐시 |
TWI511035B (zh) * | 2013-03-08 | 2015-12-01 | Acer Inc | 動態調整快取層級方法 |
WO2014141411A1 (ja) | 2013-03-13 | 2014-09-18 | 株式会社日立製作所 | ストレージシステムおよびストレージシステム制御方法 |
JP2014206967A (ja) * | 2013-03-18 | 2014-10-30 | 株式会社Genusion | 記憶装置 |
CN104063182B (zh) * | 2013-03-20 | 2017-04-12 | 宏碁股份有限公司 | 动态调整快取层级方法 |
US9804972B2 (en) | 2013-03-28 | 2017-10-31 | Hewlett-Packard Enterprise Development LP | Regulating memory activation rates |
US11474706B2 (en) | 2013-04-30 | 2022-10-18 | Hewlett Packard Enterprise Development Lp | Memory access rate |
US9479466B1 (en) * | 2013-05-23 | 2016-10-25 | Kabam, Inc. | System and method for generating virtual space messages based on information in a users contact list |
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
JP5969130B2 (ja) * | 2013-07-18 | 2016-08-17 | 株式会社日立製作所 | 情報処理装置 |
US9898410B2 (en) * | 2013-09-10 | 2018-02-20 | Intel Corporation | Hybrid main memory using a fine-grain level of remapping |
US10013344B2 (en) | 2014-01-14 | 2018-07-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Enhanced SSD caching |
JP5950470B2 (ja) * | 2014-03-24 | 2016-07-13 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | バッファマッピングを制御するための方法およびバッファシステム |
KR102289919B1 (ko) * | 2014-04-15 | 2021-08-12 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법 |
CN105094686B (zh) | 2014-05-09 | 2018-04-10 | 华为技术有限公司 | 数据缓存方法、缓存和计算机系统 |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US12137140B2 (en) | 2014-06-04 | 2024-11-05 | Pure Storage, Inc. | Scale out storage platform having active failover |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US9817750B2 (en) * | 2014-07-03 | 2017-11-14 | Pure Storage, Inc. | Profile-dependent write placement of data into a non-volatile solid-state storage |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
CN104123264A (zh) * | 2014-08-01 | 2014-10-29 | 浪潮(北京)电子信息产业有限公司 | 一种基于异构融合架构的缓存管理方法及装置 |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US10061515B2 (en) * | 2014-09-11 | 2018-08-28 | Toshiba Memory Corporation | Information processing apparatus and memory system |
CN104252419B (zh) | 2014-09-16 | 2017-09-19 | 华为技术有限公司 | 一种内存分配的方法及装置 |
CN105573831B (zh) * | 2014-10-13 | 2019-11-26 | 龙芯中科技术有限公司 | 数据转移方法和装置 |
US9542122B2 (en) * | 2014-10-23 | 2017-01-10 | Seagate Technology Llc | Logical block addresses used for executing host commands |
WO2016088234A1 (ja) | 2014-12-04 | 2016-06-09 | 株式会社 東芝 | 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置 |
JP6107802B2 (ja) * | 2014-12-15 | 2017-04-05 | コニカミノルタ株式会社 | 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム |
KR102295208B1 (ko) | 2014-12-19 | 2021-09-01 | 삼성전자주식회사 | 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법 |
CN107533518B (zh) * | 2015-01-20 | 2020-09-18 | 乌尔特拉塔有限责任公司 | 用于容错对象存储器结构的分布式索引 |
US10255182B2 (en) | 2015-02-11 | 2019-04-09 | Samsung Electronics Co., Ltd. | Computing apparatus and method for cache management |
US10241909B2 (en) * | 2015-02-27 | 2019-03-26 | Hitachi, Ltd. | Non-volatile memory device |
US9870836B2 (en) | 2015-03-10 | 2018-01-16 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US10503445B2 (en) | 2015-03-23 | 2019-12-10 | Netapp, Inc. | Data structure store and data management |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
CN106294202A (zh) * | 2015-06-12 | 2017-01-04 | 联想(北京)有限公司 | 一种数据存储方法和装置 |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
CN106325764B (zh) * | 2015-07-08 | 2021-02-26 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
US11461010B2 (en) | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
US10509770B2 (en) * | 2015-07-13 | 2019-12-17 | Samsung Electronics Co., Ltd. | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US10656838B2 (en) | 2015-07-13 | 2020-05-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
JP6403162B2 (ja) * | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
US10108503B2 (en) * | 2015-08-24 | 2018-10-23 | Western Digital Technologies, Inc. | Methods and systems for updating a recovery sequence map |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
JP6538496B2 (ja) * | 2015-09-11 | 2019-07-03 | 東芝メモリ株式会社 | メモリシステム |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
CN107710140B (zh) * | 2015-11-27 | 2020-07-14 | 株式会社日立制作所 | 存储系统 |
WO2017095911A1 (en) * | 2015-12-01 | 2017-06-08 | Huang Yiren Ronnie | Method and apparatus for logically removing defective pages in non-volatile memory storage device |
JP2017107321A (ja) * | 2015-12-08 | 2017-06-15 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびデータアクセス制御プログラム |
KR102705306B1 (ko) * | 2015-12-10 | 2024-09-10 | 아스카바, 인크. | 블록 처리 저장 시스템 상에 저장된 데이터 및 오디오 데이터의 축소 |
JP6515799B2 (ja) * | 2015-12-18 | 2019-05-22 | 京セラドキュメントソリューションズ株式会社 | 電子機器及びメモリー寿命警告プログラム |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
GB2546731B (en) * | 2016-01-20 | 2019-02-20 | Advanced Risc Mach Ltd | Recording set indicator |
US10296264B2 (en) | 2016-02-09 | 2019-05-21 | Samsung Electronics Co., Ltd. | Automatic I/O stream selection for storage devices |
KR102652293B1 (ko) * | 2016-03-03 | 2024-03-29 | 에스케이하이닉스 주식회사 | 메모리 관리방법 |
JP6320439B2 (ja) | 2016-03-10 | 2018-05-09 | 株式会社東芝 | メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法 |
US10592171B2 (en) | 2016-03-16 | 2020-03-17 | Samsung Electronics Co., Ltd. | Multi-stream SSD QoS management |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US10866905B2 (en) | 2016-05-25 | 2020-12-15 | Samsung Electronics Co., Ltd. | Access parameter based multi-stream storage device access |
KR101754348B1 (ko) * | 2016-06-17 | 2017-07-06 | 고려대학교 산학협력단 | 정보 저장 테이블을 관리하는 분석 시스템 및 그의 제어 방법 |
CN107562367B (zh) * | 2016-07-01 | 2021-04-02 | 阿里巴巴集团控股有限公司 | 基于软件化存储系统读写数据的方法以及装置 |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US10628316B2 (en) | 2016-09-27 | 2020-04-21 | Spin Memory, Inc. | Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register |
US10437491B2 (en) | 2016-09-27 | 2019-10-08 | Spin Memory, Inc. | Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register |
US10437723B2 (en) | 2016-09-27 | 2019-10-08 | Spin Memory, Inc. | Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device |
US10546625B2 (en) | 2016-09-27 | 2020-01-28 | Spin Memory, Inc. | Method of optimizing write voltage based on error buffer occupancy |
US10460781B2 (en) | 2016-09-27 | 2019-10-29 | Spin Memory, Inc. | Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank |
US10360964B2 (en) | 2016-09-27 | 2019-07-23 | Spin Memory, Inc. | Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device |
US10366774B2 (en) | 2016-09-27 | 2019-07-30 | Spin Memory, Inc. | Device with dynamic redundancy registers |
US10446210B2 (en) | 2016-09-27 | 2019-10-15 | Spin Memory, Inc. | Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US10216417B2 (en) | 2016-10-26 | 2019-02-26 | Samsung Electronics Co., Ltd. | Method of consolidate data streams for multi-stream enabled SSDs |
TWI596541B (zh) * | 2016-11-30 | 2017-08-21 | 財團法人工業技術研究院 | 資料存取系統、資料存取裝置及資料存取方法 |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
JP6880769B2 (ja) * | 2017-01-24 | 2021-06-02 | 富士通株式会社 | 情報処理装置,制御プログラムおよび情報処理方法 |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
WO2018154669A1 (ja) | 2017-02-23 | 2018-08-30 | 株式会社日立製作所 | ストレージシステム |
US20180261281A1 (en) * | 2017-03-10 | 2018-09-13 | Micron Technology, Inc. | Methods for mitigating power loss events during operation of memory devices and memory devices employing the same |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
EP3588305A4 (en) * | 2017-04-07 | 2020-04-01 | Panasonic Intellectual Property Management Co., Ltd. | NON-VOLATILE STORAGE WITH INCREASED NUMBER OF USEFUL TIMES |
US10698808B2 (en) | 2017-04-25 | 2020-06-30 | Samsung Electronics Co., Ltd. | Garbage collection—automatic data placement |
US11048624B2 (en) | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US20180321855A1 (en) | 2017-05-03 | 2018-11-08 | Samsung Electronics Co., Ltd. | Multistreaming in heterogeneous environments |
CN107291381B (zh) * | 2017-05-18 | 2020-04-28 | 记忆科技(深圳)有限公司 | 一种固态硬盘动态加速区的实现方法及固态硬盘 |
CN107168654B (zh) * | 2017-05-26 | 2019-08-13 | 华中科技大学 | 一种基于数据对象热度的异构内存分配方法及系统 |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
CN107203477A (zh) * | 2017-06-16 | 2017-09-26 | 深圳市万普拉斯科技有限公司 | 内存分配方法、装置、电子设备及可读存储介质 |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
CN107506137A (zh) * | 2017-08-11 | 2017-12-22 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘写性能的方法 |
US10545685B2 (en) * | 2017-08-30 | 2020-01-28 | Micron Technology, Inc. | SLC cache management |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
JP7030463B2 (ja) | 2017-09-22 | 2022-03-07 | キオクシア株式会社 | メモリシステム |
US10866899B2 (en) * | 2017-10-02 | 2020-12-15 | Arm Ltd | Method and apparatus for control of a tiered memory system |
US10901907B2 (en) | 2017-10-19 | 2021-01-26 | Samsung Electronics Co., Ltd. | System and method for identifying hot data and stream in a solid-state drive |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
JP6805110B2 (ja) * | 2017-11-06 | 2020-12-23 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
JP7010667B2 (ja) | 2017-11-06 | 2022-01-26 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
TWI647567B (zh) * | 2017-12-13 | 2019-01-11 | 國立中正大學 | 使用記憶體位址定位冷熱存取區間之方法 |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
WO2019133233A1 (en) * | 2017-12-27 | 2019-07-04 | Spin Transfer Technologies, Inc. | A method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device |
US10831591B2 (en) | 2018-01-11 | 2020-11-10 | Commvault Systems, Inc. | Remedial action based on maintaining process awareness in data storage management |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11449256B2 (en) | 2018-05-15 | 2022-09-20 | Samsung Electronics Co., Ltd. | Method for accelerating image storing and retrieving differential latency storage devices based on access rates |
US10949087B2 (en) | 2018-05-15 | 2021-03-16 | Samsung Electronics Co., Ltd. | Method for rapid reference object storage format for chroma subsampled images |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
JP2020035128A (ja) * | 2018-08-29 | 2020-03-05 | キオクシア株式会社 | メモリシステム |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
KR20200044312A (ko) * | 2018-10-19 | 2020-04-29 | 삼성전자주식회사 | 반도체 장치 |
CN111078128B (zh) * | 2018-10-22 | 2023-05-16 | 浙江宇视科技有限公司 | 数据管理方法、装置及固态硬盘 |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
CN109684237B (zh) * | 2018-11-20 | 2021-06-01 | 华为技术有限公司 | 基于多核处理器的数据访问方法和装置 |
US11231873B2 (en) * | 2018-12-07 | 2022-01-25 | Intel Corporation | Apparatus and method for assigning velocities to write data |
JP7305340B2 (ja) * | 2018-12-11 | 2023-07-10 | キヤノン株式会社 | 情報処理装置 |
US20200192572A1 (en) | 2018-12-14 | 2020-06-18 | Commvault Systems, Inc. | Disk usage growth prediction system |
KR102717014B1 (ko) * | 2018-12-20 | 2024-10-15 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11010114B2 (en) * | 2018-12-31 | 2021-05-18 | Kyocera Document Solutions Inc. | Read/write direction-based memory bank control for imaging |
JP7219397B2 (ja) * | 2019-01-18 | 2023-02-08 | 富士通株式会社 | 情報処理装置、記憶制御装置および記憶制御プログラム |
US11194473B1 (en) * | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
DE102019102861B4 (de) | 2019-02-05 | 2024-10-10 | Hyperstone Gmbh | Verfahren und Vorrichtung zur Abschätzung der Abnutzung eines nicht-flüchtigen Informationsspeichers |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11113007B2 (en) * | 2019-05-13 | 2021-09-07 | Micron Technology, Inc. | Partial execution of a write command from a host system |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11074177B2 (en) * | 2019-06-19 | 2021-07-27 | Micron Technology, Inc. | Garbage collection adapted to host write activity |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11106595B2 (en) * | 2019-08-22 | 2021-08-31 | Micron Technology, Inc. | Hierarchical memory systems |
US10996975B2 (en) | 2019-08-22 | 2021-05-04 | Micron Technology, Inc. | Hierarchical memory systems |
US11327665B2 (en) * | 2019-09-20 | 2022-05-10 | International Business Machines Corporation | Managing data on volumes |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
CN110825662A (zh) * | 2019-11-04 | 2020-02-21 | 深圳芯邦科技股份有限公司 | 一种数据更新方法、系统及相关装置 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
CN113467706A (zh) * | 2020-03-30 | 2021-10-01 | 华为技术有限公司 | 一种固态硬盘管理方法及固态硬盘 |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
DE102020123220A1 (de) * | 2020-09-04 | 2022-03-10 | Harman Becker Automotive Systems Gmbh | Speichersystem, Verfahren zum Betrieb desselben |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US20210216452A1 (en) * | 2021-03-27 | 2021-07-15 | Intel Corporation | Two-level main memory hierarchy management |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
KR20220138759A (ko) * | 2021-04-06 | 2022-10-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
US12093547B2 (en) | 2021-04-15 | 2024-09-17 | Sk Hynix Nand Product Solutions Corp. | User configurable SLC memory size |
US20220391131A1 (en) * | 2021-06-04 | 2022-12-08 | Fujitsu Limited | Computer-readable recording medium, information processing device control method and information processing device |
US11755237B2 (en) * | 2021-08-31 | 2023-09-12 | Micron Technology, Inc. | Overwriting at a memory system |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
KR20230161864A (ko) | 2022-05-18 | 2023-11-28 | 창신 메모리 테크놀로지즈 아이엔씨 | 메모리 핫 플러그 방법 및 장치, 메모리 |
US12061551B2 (en) * | 2022-08-26 | 2024-08-13 | Micron Technology, Inc. | Telemetry-capable memory sub-system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020762B2 (en) * | 2002-12-24 | 2006-03-28 | Intel Corporation | Method and apparatus for determining a dynamic random access memory page management implementation |
TWI253564B (en) * | 2004-06-29 | 2006-04-21 | Integrated Circuit Solution In | Method of efficient data management with flash storage system |
US7174437B2 (en) * | 2003-10-16 | 2007-02-06 | Silicon Graphics, Inc. | Memory access management in a shared memory multi-processor system |
TWI294077B (en) * | 1999-07-09 | 2008-03-01 | Via Tech Inc | Memory-access management method and system for synchronous dynamic random-access memory of the like |
US7519792B2 (en) * | 2006-02-21 | 2009-04-14 | Intel Corporation | Memory region access management |
TWI312114B (en) * | 2004-01-20 | 2009-07-11 | Intel Corporatio | A method and apparatus to manage memory access requests |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07146820A (ja) | 1993-04-08 | 1995-06-06 | Hitachi Ltd | フラッシュメモリの制御方法及び、それを用いた情報処理装置 |
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
JP3270397B2 (ja) * | 1998-06-08 | 2002-04-02 | 松下電送システム株式会社 | データ格納装置 |
US7932911B2 (en) * | 1998-08-24 | 2011-04-26 | Microunity Systems Engineering, Inc. | Processor for executing switch and translate instructions requiring wide operands |
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
KR100383774B1 (ko) | 2000-01-26 | 2003-05-12 | 삼성전자주식회사 | 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템 |
JP4869466B2 (ja) * | 2000-02-24 | 2012-02-08 | 富士通セミコンダクター株式会社 | 記憶装置の制御方法、データ管理システム、記録媒体、及び記憶装置 |
JP4078010B2 (ja) * | 2000-03-03 | 2008-04-23 | 株式会社日立グローバルストレージテクノロジーズ | 磁気ディスク装置及び情報記録方法 |
US6807106B2 (en) * | 2001-12-14 | 2004-10-19 | Sandisk Corporation | Hybrid density memory card |
US6831865B2 (en) * | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
CN1751508A (zh) * | 2003-10-20 | 2006-03-22 | 松下电器产业株式会社 | 多媒体数据记录装置、监视系统、以及多媒体数据记录方法 |
US7032087B1 (en) * | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
US20050132128A1 (en) * | 2003-12-15 | 2005-06-16 | Jin-Yub Lee | Flash memory device and flash memory system including buffer memory |
US20080082736A1 (en) * | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
JP4066381B2 (ja) * | 2005-03-01 | 2008-03-26 | 三菱電機株式会社 | 車載電子制御装置 |
US7224604B2 (en) * | 2005-03-14 | 2007-05-29 | Sandisk Il Ltd. | Method of achieving wear leveling in flash memory using relative grades |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US7861122B2 (en) * | 2006-01-27 | 2010-12-28 | Apple Inc. | Monitoring health of non-volatile memory |
JP2007305210A (ja) * | 2006-05-10 | 2007-11-22 | Toshiba Corp | 半導体記憶装置 |
US20090132621A1 (en) * | 2006-07-28 | 2009-05-21 | Craig Jensen | Selecting storage location for file storage based on storage longevity and speed |
JP4839164B2 (ja) * | 2006-09-15 | 2011-12-21 | 株式会社日立製作所 | ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム |
KR100791325B1 (ko) * | 2006-10-27 | 2008-01-03 | 삼성전자주식회사 | 비휘발성 메모리를 관리하는 장치 및 방법 |
US7568068B2 (en) * | 2006-11-13 | 2009-07-28 | Hitachi Global Storage Technologies Netherlands B. V. | Disk drive with cache having volatile and nonvolatile memory |
US8122220B1 (en) * | 2006-12-20 | 2012-02-21 | Marvell International Ltd. | Memory usage in imaging devices |
JP5032172B2 (ja) | 2007-03-28 | 2012-09-26 | 株式会社東芝 | 統合メモリ管理装置及び方法並びにデータ処理システム |
US8135900B2 (en) | 2007-03-28 | 2012-03-13 | Kabushiki Kaisha Toshiba | Integrated memory management and memory management method |
US20090043831A1 (en) * | 2007-08-11 | 2009-02-12 | Mcm Portfolio Llc | Smart Solid State Drive And Method For Handling Critical Files |
KR101498673B1 (ko) * | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
JP2009087509A (ja) * | 2007-10-03 | 2009-04-23 | Toshiba Corp | 半導体記憶装置 |
US7849275B2 (en) * | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US20090144545A1 (en) * | 2007-11-29 | 2009-06-04 | International Business Machines Corporation | Computer system security using file system access pattern heuristics |
CN101521039B (zh) * | 2008-02-29 | 2012-05-23 | 群联电子股份有限公司 | 数据储存系统、控制器及方法 |
TWI416524B (zh) * | 2008-06-25 | 2013-11-21 | Silicon Motion Inc | 記憶體裝置和資料儲存方法 |
US8135907B2 (en) * | 2008-06-30 | 2012-03-13 | Oracle America, Inc. | Method and system for managing wear-level aware file systems |
US8082386B2 (en) * | 2008-10-21 | 2011-12-20 | Skymedi Corporation | Method of performing wear leveling with variable threshold |
US8283933B2 (en) | 2009-03-13 | 2012-10-09 | Qualcomm, Incorporated | Systems and methods for built in self test jitter measurement |
US8166232B2 (en) * | 2009-04-02 | 2012-04-24 | Hitachi, Ltd. | Metrics and management for flash memory storage life |
US8214621B2 (en) * | 2009-04-29 | 2012-07-03 | Microsoft Corporation | Storage optimization across media with differing capabilities |
US8327076B2 (en) * | 2009-05-13 | 2012-12-04 | Seagate Technology Llc | Systems and methods of tiered caching |
US8151137B2 (en) * | 2009-05-28 | 2012-04-03 | Lsi Corporation | Systems and methods for governing the life cycle of a solid state drive |
JP2012033002A (ja) | 2010-07-30 | 2012-02-16 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
JP2012033047A (ja) | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム |
JP2012033001A (ja) | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置および情報処理方法 |
-
2010
- 2010-03-08 TW TW099106706A patent/TWI460588B/zh active
- 2010-03-08 KR KR1020117029315A patent/KR20120068765A/ko not_active Application Discontinuation
- 2010-03-08 EP EP10799661.3A patent/EP2455865B1/en active Active
- 2010-03-08 WO PCT/JP2010/053817 patent/WO2011007599A1/ja active Application Filing
- 2010-03-08 CN CN201080031863.5A patent/CN102473140B/zh active Active
-
2012
- 2012-01-17 US US13/351,582 patent/US20120191900A1/en not_active Abandoned
-
2015
- 2015-11-11 US US14/938,589 patent/US10776007B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI294077B (en) * | 1999-07-09 | 2008-03-01 | Via Tech Inc | Memory-access management method and system for synchronous dynamic random-access memory of the like |
US7020762B2 (en) * | 2002-12-24 | 2006-03-28 | Intel Corporation | Method and apparatus for determining a dynamic random access memory page management implementation |
US7174437B2 (en) * | 2003-10-16 | 2007-02-06 | Silicon Graphics, Inc. | Memory access management in a shared memory multi-processor system |
TWI312114B (en) * | 2004-01-20 | 2009-07-11 | Intel Corporatio | A method and apparatus to manage memory access requests |
TWI253564B (en) * | 2004-06-29 | 2006-04-21 | Integrated Circuit Solution In | Method of efficient data management with flash storage system |
US7519792B2 (en) * | 2006-02-21 | 2009-04-14 | Intel Corporation | Memory region access management |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI633436B (zh) * | 2015-05-21 | 2018-08-21 | 美商美光科技公司 | 記憶體中之轉譯後備緩衝器 |
TWI710900B (zh) * | 2015-11-13 | 2020-11-21 | 南韓商三星電子股份有限公司 | 儲存裝置及方法 |
TWI602055B (zh) * | 2015-12-17 | 2017-10-11 | 華邦電子股份有限公司 | 半導體儲存裝置及其編程方法 |
TWI663542B (zh) * | 2016-09-20 | 2019-06-21 | 東芝記憶體股份有限公司 | Memory system |
TWI658405B (zh) * | 2017-03-17 | 2019-05-01 | 合肥兆芯電子有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI732414B (zh) * | 2019-01-29 | 2021-07-01 | 美商超捷公司 | 用於基於使用頻率而改變程式狀態分隔的記憶體構件及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201106157A (en) | 2011-02-16 |
US20120191900A1 (en) | 2012-07-26 |
EP2455865A4 (en) | 2014-12-10 |
CN102473140A (zh) | 2012-05-23 |
CN102473140B (zh) | 2015-05-13 |
EP2455865A1 (en) | 2012-05-23 |
US20160062660A1 (en) | 2016-03-03 |
KR20120068765A (ko) | 2012-06-27 |
EP2455865B1 (en) | 2020-03-04 |
US10776007B2 (en) | 2020-09-15 |
WO2011007599A1 (ja) | 2011-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI460588B (zh) | Memory management device and memory information processing device | |
TWI700586B (zh) | 計算機系統及儲存裝置之控制方法 | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
JP5607943B2 (ja) | メモリシステム及びその磨耗度管理方法 | |
TWI684098B (zh) | 記憶體系統及控制非揮發性記憶體之控制方法 | |
CN116909941A (zh) | 存储器系统及控制非易失性存储器的方法 | |
JP2011022933A (ja) | メモリ管理装置を含む情報処理装置及びメモリ管理方法 | |
JP2011186555A (ja) | メモリ管理装置及び方法 | |
JP2011186561A (ja) | メモリ管理装置 | |
JP2011186562A (ja) | メモリ管理装置及び方法 | |
JP2011186553A (ja) | メモリ管理装置 | |
JP2010066914A (ja) | 統合メモリ管理装置及びメモリ管理方法 | |
JP2011186563A (ja) | メモリ管理装置およびメモリ管理方法 | |
JP5322978B2 (ja) | 情報処理装置及び方法 | |
JP2011186558A (ja) | メモリ管理装置及び方法 | |
JP2011186554A (ja) | メモリ管理装置及び方法 | |
JP2011186559A (ja) | メモリ管理装置 | |
KR101618999B1 (ko) | 네트워크 부트 시스템 | |
JP2011186557A (ja) | メモリ管理装置及び方法 |