TW201329858A - 分段式快取記憶體 - Google Patents

分段式快取記憶體 Download PDF

Info

Publication number
TW201329858A
TW201329858A TW101139719A TW101139719A TW201329858A TW 201329858 A TW201329858 A TW 201329858A TW 101139719 A TW101139719 A TW 101139719A TW 101139719 A TW101139719 A TW 101139719A TW 201329858 A TW201329858 A TW 201329858A
Authority
TW
Taiwan
Prior art keywords
software
segments
segment
volatile memory
pinning
Prior art date
Application number
TW101139719A
Other languages
English (en)
Other versions
TWI498811B (zh
Inventor
Fred Charles Thomas Iii
Walter A Gaspard
Chi W So
Original Assignee
Hewlett Packard Development Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201329858A publication Critical patent/TW201329858A/zh
Application granted granted Critical
Publication of TWI498811B publication Critical patent/TWI498811B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文中的實施例係有關於分割和釘連一用以儲存快取資訊的第一非揮發性記憶體。在一實施例中,該第一非揮發性記憶體係被劃分為多數區段。接著,多種軟體之一第一種軟體係被釘連至該等多數區段之一第一區段。該第一被釘連區段儲存與該第一種軟體相關聯之快取資訊。

Description

分段式快取記憶體 發明領域
本發明係關於分段式快取記憶體。
發明背景
一運算裝置可包括諸如一快閃記憶體之一快速儲存裝置,其具有一相對快速的存取時間。該快速儲存裝置可被使用來作為一快取記憶體,用以儲存經常被存取的資訊。然而,相較於諸如一硬式磁碟驅動器(HDD)之其他具有較慢存取時間的儲存裝置,快速儲存裝置的儲存單位價格可為相對昂貴的。
因此,該快速儲存裝置可能會有相對小的儲存容量。如果該快速儲存裝置的容量滿載的話,該運算裝置的性能會受影響。製造商被挑戰要更有效率地使用該快速儲存裝置,以改善該運算裝置的性能。
發明概要
本發明係提供一種用以分割一快取記憶體的方法,包含:將用以儲存快取資訊之一第一非揮發性記憶體劃分為多數區段;和將多種軟體之一第一種軟體釘連(pin)至該等多數區段之一第一區段,其中,該第一被釘連區段儲存與該第一種軟體相關聯之快取資訊。
本發明亦提供一種儲存指令之非暫態電腦可讀 取儲存媒體,該等指令如果被一裝置之一處理器執行的話,會致使該處理器去:將用以儲存快取資訊之一第一非揮發性記憶體分割成多數區段;以及將多種軟體之一第一種軟體釘連至該等多數區段之一第一區段,其中,該第一被釘連區段儲存與該第一種軟體相關聯之快取資訊。
本發明還提供一種裝置,包含:一第一非揮發性記憶體,用以儲存快取資訊;一分割模組,用以將該第一非揮發性記憶體劃分為多數區段;以及一釘連模組,用以將多種軟體之一第一種軟體釘連至該等多數區段之一第一區段,其中,該第一被釘連區段儲存與該第一種軟體相關聯之該快取資訊。
100‧‧‧裝置
110‧‧‧處理器
120‧‧‧分割模組
130‧‧‧釘連模組
140‧‧‧第一非揮發性記憶體
142-1‧‧‧第一區段
142-2‧‧‧第二區段
142-3‧‧‧第三區段
142-4‧‧‧第四區段
142-5‧‧‧第五區段
142-6‧‧‧第六區段
142-n‧‧‧第n區段
300‧‧‧裝置
310‧‧‧處理器
320‧‧‧儲存媒體
322‧‧‧分割指令
324‧‧‧釘連指令
400‧‧‧方法
410‧‧‧方塊
420‧‧‧方塊
500‧‧‧方法
510‧‧‧方塊
520‧‧‧方塊
530‧‧‧方塊
下文之詳細描述參考下列圖式,其中:圖1係一裝置之一範例方塊圖,該裝置具有包括多數區段之一第一非揮發性記憶體;圖2係圖1之該第一非揮發性記憶體的一範例方塊圖;圖3係一裝置之一範例方塊圖,該裝置包括用以分割和釘連一第一非揮發性記憶體的指令;圖4係一範例流程圖,其係關於一種用以分割和釘連一第一非揮發性記憶體的方法;以及圖5係另一範例流程圖,其係關於一種用以分割和釘連一第一非揮發性記憶體的方法。
較佳實施例之詳細說明
在下列敘述中特定細節係被提出,以提供對實施例之透徹理解。然而,在此技藝領域中具有通常知識者將理解的是,實施例可在沒有這些特定細節之下被實施。舉例而言,系統可被以方塊圖顯示,以避免實施例被不必要的細節混淆。在其他情況中,眾所周知的程序、結構和技巧可在缺乏不必要的細節下被呈現,以避免混淆實施例。
一運算裝置可包括諸如一快閃記憶體之一較快儲存裝置,外加諸如一硬式磁碟驅動器(HDD)之一較慢儲存裝置。相較於該較慢儲存裝置,該較快儲存裝置可具有一較低潛伏期(latency)。該運算裝置可藉由將例如快取資訊之較頻繁被存取的資訊儲存在該較快儲存裝置而非該較慢儲存裝置,來提高性能。舉例而言,該運算裝置可使用該較快儲存裝置來作為一快取記憶體,以儲存包括頻繁被存取的軟體碼和/或其資料之快取資訊。該運算裝置可立即(寫入(write-through))或者在一期間之後(寫回(write-back))將位於該較快儲存裝置之已更新的快取資訊寫入該較慢儲存裝置。例如,在該快取記憶體被清除後,該較快儲存裝置中的非暫時性檔案可被鏡像複製(mirror)到該較慢儲存裝置中。
然而,該較快儲存裝置可能沒有一個足夠大的儲存容量來儲存該運算裝置使用中的所有快取資訊。而且,如果該快取資訊不能從該較快儲存裝置被擷取的話,例如在一快取未中(cache miss),遺失的快取資訊可自該較慢儲 存裝置被擷取。因此,該較快儲存裝置之一儲存容量可間接地成為該運算裝置之性能的瓶頸。再者,由於該較快儲存裝置的每一記憶體單位價格通常比該較慢儲存裝置昂貴,該較快儲存裝置之儲存容量通常無法被提高。
此外,因為一第一應用程式係持續地被一使用者使用,其較多的快取資訊可填入該較快儲存裝置,使該第一應用程式的性能漸漸變得更有反應和/或更進步。舉例而言,該第一應用程式可逐漸更迅速地啟動或運作。然而,假如該使用者開始使用一第二應用程式,此反應性可能會因為該第二應用程式之快取資訊逐漸地填入該較快儲存裝置而消失。
況且,因為該較快儲存裝置之有限的儲存容量,該第一應用程式之快取資訊可被該第二應用程式之快取資訊覆寫。因此,萬一該使用者切換回該第一應用程式,該第一應用程式一開始可能會比從前較無反應。因而,一新啟動的應用程式可能不會立即有反應和/或當回到一先前使用的應用程式時,反應性可能會消失,因為要等待該較快儲存裝置被目前使用中的應用程式之快取資訊所填入。
實施例可允許諸如該第一應用程式之軟體能夠立即有反應或者於初始時較有反應,即使是該第一應用程式之一第一次存取,或即便有諸如該第二應用程式之另一個應用程式在該第一應用程式之多次存取間被大量地使用。舉例而言,在實施例中,該較快儲存裝置可被分割為多個區段。這些區段之至少一者,例如一第一區段,可被釘連 至(pinned)諸如該第一應用程式之一種軟體,以便僅儲存該種軟體之快取資訊。再者,該種軟體之快取資訊甚至可在該種軟體被存取之前,就填入被釘連至它的區段。
舉例而言,該第一應用程式可被釘連至該第一區段。因此,該第一應用程式之快取資訊的至少部份,例如用以啟動該第一應用程式之軟體碼,可在該第一應用程式被存取之前,就被儲存在該第一區段中。如此一來,即使在該使用者之首次存取時,第一應用程式可藉由啟動較快速而為較有反應者。該使用者可大量使用該第二應用程式,然後再切換回該第一應用程式。不過,該第一應用程式將會保時其反應,因為其快取資訊將被保留在該第一區段中。
現在參照圖式,圖1係具有一第一非揮發性記憶體140之一裝置100的一個範例方塊圖,該第一非揮發性記憶體140包括多數區段142-1到142-n。該裝置100之範例可包括一筆記型電腦、一桌上型電腦、一多功能系統、一平板運算裝置、一攜帶式讀取裝置、一無線電郵裝置、一行動電話和類似者。在圖1之實施例中,該裝置100包括一處理器110、一分割模組120、一釘連(pinning)模組130和該第一非揮發性記憶體140。該第一非揮發性記憶體140更包括該等多數區段142-1到142-n,其中n係大於一的自然數。
該處理器110可為一CPU、一GPU或者一微處理器,其係適用於自該第一非揮發性記憶體140和/或電子電路迴路擷取和執行指令,該等電子電路迴路係被組配來執 行描述於下之該等模組120、130的任何一者的功能。該第一非揮發性記憶體140可為一或更多非揮發性機器可讀取儲存媒體,例如即使沒供電時依舊能保留該被儲存資訊之電子、磁性、光學或其他實體儲存裝置。該第一非揮發性記憶體140的範例可包括一固態磁碟驅動器(SSD)或一快閃記憶體。
該等模組120、130之每一者可包括,例如,多個硬體裝置,其等包括用以實踐下文將描述之功能的電子電路迴路。附加或擇一地,每個模組可被實踐為編碼在諸如該第一非揮發性記憶體140之一機器可讀取儲存媒體中且可被該處理器110所執行的一系列指令。在實施例中,該等模組120、130之某些可被實踐為硬體裝置,而其他模組係被實踐為可執行的指令。舉例而言,該等模組120、130可被實踐為由一作業系統(OS)(未示)運行之一應用程式的部份,該作業系統係運行在該裝置100上。
該第一非揮發性記憶體140可被使用來作為一快取記憶體,用以儲存快取資訊。相較於該裝置100之一第二非揮發性記憶體(未示),該第一非揮發性記憶體140可具有一較低的潛伏期。該第二非揮發性記憶體可儲存該等多種軟體,例如第一和/或第二種軟體。該第二非揮發性記憶體可為一或更多非揮發性機器可讀取儲存媒體,例如即使沒供電時依舊能保留該被儲存資訊之電子、磁性、光學或其他實體儲存裝置。該第二非揮發性記憶體的範例可包括一固態磁碟驅動器(SSD)或一快閃記憶體。
該快取資訊可包括很可能被再度使用或經常使用的資訊,例如軟體指令和/或與其相關的資料,該等資料係例如元資料(metadata)和/或由該使用者或軟體所產生或修改過的資料。舉例而言,例如該作業系統、一應用程式、或網頁瀏覽器、或諸如該處理器110或其他記憶體之硬體等多種軟體之快取資訊可被儲存在該第一非揮發性記憶體140中,以對該快取資料有較快速的存取。
該分割模組120係被該第一非揮發性記憶體140劃分成該等多數區段142-1到142-n。區段142-1到142-n的數量以及該等區段142-1到142-n之每一者的尺寸可以是可變的。該釘連模組130可將多種軟體之一或更多者釘連至該等區段142-1到142-n之一或更多者。舉例而言,該釘連模組130可將該等多種軟體之該第一種軟體釘連至該等多數區段142-1到142-n之一第一區段142-1。
該釘連模組130亦可,例如,將該等多種軟體之該第二種軟體釘連至該等多數區段142-1到142-n之一第二區段142-2,該第二區段142-2用以儲存與該第二種軟體相關聯的快取資訊。該第二區段142-2可為該等多數區段142-1到142-n之尚未被釘連的任何一者。實施例可包括該等多數區段142-1到142-n之全部都被釘連者。然而,一般而言,該等多數區段142-1到142-n之一者,例如一第三區段142-3,可維持在未釘連狀態,以作為一個通用快取記憶體。一個範例第一非揮發性記憶體140將參照圖2作詳盡的說明於下。
釘連該等區段142-1到142-n之一者可涉及針對一特定用途將該被釘連區段之一記憶體空間保留或設為永久。因此,如果該第一種軟體係被釘連至第一區段142-1,則該第一被釘連區段142-1可儲存與該第一種軟體相關聯之快取資訊。再者,該第一被釘連區段142-1不能儲存任何與該第一種軟體不相關聯的快取資訊,例如與該第二種軟體相關聯的快取資訊。該等種類的軟體之範例可包括一作業系統、諸如一啟動、關閉或休眠程序之程序、一網頁瀏覽器、諸如一圖形編輯軟體或CAD程式編輯器之產能工具、一軟體架構、一使用者應用程式、一販售者應用程式和類似者之至少部份。
當諸如該第一種軟體之該等種類的軟體當中的一者係被釘連至諸如該第一區段142-1之等區段142-1到142-n當中的一者時,該釘連模組130可在該第一區段142-1中儲存例如檔案或邏輯區塊位址(LBA)的程式碼和/或與最常被使用之與該第一種軟體相關的資料。舉例而言,該程式碼可包括來源和/或運行時間碼,而該資料可包括元資料和/或使用者資料。此外,即使是在該第一種軟體被初次發動之前,諸如用以發動該第一種軟體的程式碼之該程式碼的至少某些可被儲存在該第一區段142-1中,以較迅速地發動該第一種軟體。在這種情況下,針對該第一種軟體之呼叫可從該第二非揮發性記憶體被指引至該第一非揮發性記憶體140。
再者,當該第一種軟體被發動和/或修改,以及 當該第一區段142-1被存取時,該第一區段142-1可被更新以該第一種軟體之該程式碼。擇一或附加地,該第一區段142-1可基於該第一種軟體之使用率被更新。該使用率可指在一特定期間內該種軟體被存取和/或修改的次數。舉例而言,假如該第一種軟體之使用率係大於一臨界使用率,則該釘連模組130可更新該第一區段142-1。該釘連模組130可藉由將被儲存在該第二非揮發性記憶體中之一更新版本的該第一種軟體的檔案或邏輯區塊位址推向該第一區段142-1以取代其先前版本,來更新該第一區段142-1。
雖然圖1僅描繪了單一種類的軟體被釘連至該等區段142-1到142-n之其中一者,然而實施例可包括不只一種軟體被釘連至該等區段142-1到142-n之其中一者。該等區段142-1到142-n之尺寸和數量,以及被釘連至該等區段142-1到142-n之其中任一者的該種軟體可由例如一販售者、一使用者和/或該等模組120和130判定。此外,在實施例中,該等區段142-1到142-n之尺寸、數量和釘連可為靜態或動態地改變。靜態一詞可指一固定或不能改變的條件。例如,被釘連至該靜態區段之該軟體的尺寸或種類不能被該使用者改變。該釘連模組130可基於該等軟體種類的使用率來判定該等軟體種類的何者要被釘連至該等區段142-1到142-n的何者。
在一範例中,該販售者可企圖確保裝置100能快速地啟動。因此,該販售者可創造該第一區段142-1,並靜態地將諸如該啟動程序之該作業系統程序釘連至該第一區 段142-1,以降低該裝置100之一啟動時間。由於該第一非揮發性記憶體140可在沒提供電力的情況下保留資訊,假如該裝置100沒電時,關於該啟動程序之該快取資訊將不會消失。
在另一範例中,該使用者可透過一圖形使用者介面(GUI)來改變該等區段142-1到142-n的尺寸,清除或新增該等區段142-1到142-n和/或改變哪種軟體要被釘連至該等區段142-1到142-n。該圖形使用者介面可運行在該裝置100之該作業系統上,並透過一應用程式介面(API)與該第一非揮發性記憶體140互動。
在又另一個範例中,該分割和/或釘連模組120和130可透過可適性演算法動態地改變該等區段142-1到142-n之尺寸、數量和/或釘連。舉例而言,該分割模組120可自動地縮小該等區段142-1到142-n之一較不常完全被填滿者的尺寸,或擴大該等區段142-1到142-n之另一較常完全被填滿者的尺寸。該種軟體之反應性可為被釘連至它的一區段之一尺寸的函數。該分割模組120亦可清除該等區段142-1到142-n中被釘連至不常被存取的軟體種類者,以擴大該等區段142-1到142-n中另一較常被存取者之尺寸。
該裝置100亦可包括單種軟體之多個實例。舉例來說,該裝置100可包括兩個網頁瀏覽器,例如Internet Explorer和Firefox。在此情況下,該種網頁瀏覽器軟體之所有實例的快取資訊可被指引到一個被釘連至該種網頁瀏覽器軟體的區段,例如一第三區段142-3。擇一地,該使用者、 該販售者和/或該釘連模組130可判定該種軟體之哪個實例將被釘連。例如,因為該使用者使用火狐多於Internet Explorer,該使用者可將火狐釘連至該第三區段142-3,而不將Internet Explorer釘連至該第三區段142-3。該釘連模組130可基於使用率來判斷該單一種軟體之哪個實例將被釘連。舉例來講,該釘連模組130可釘連具有最高使用率之該實例。
在一實施例中,該裝置100可包括一記憶體控制器(未示),其用以控制該第一非揮發性記憶體140和該第二非揮發性記憶體,例如假如該第一非揮發性記憶體140和該第二非揮發性記憶體係一混合驅動器之部分時。在此情況中,該等分割和釘連模組120和130可透過該作業系統與該記憶體控制器通信,以對該等區段142-1到142-n進行產生和釘連之至少一者。舉例而言,該等分割和釘連模組120和130可透過一SATA介面、一PATA介面、被標籤之短命令檔或其他混合驅動器通信機制來與該記憶體控制器通信。
如上註明者,與RAM不同的,即使該裝置100係在一電源關閉狀態中,該快取資訊仍將被保留在該第一非揮發性記憶體140。然而,該使用者和/或販售者不一定希望所有的快取資訊都被保留。舉例而言,該使用者和/或販售者可能希望諸如個人或私有的資訊之機密快取資訊和/或諸如該裝置100元件的暫時性內容資訊之非必要快取資訊等被清除。不過,該使用者和/或販售者仍可企圖保留其餘的快取資訊,例如該啟動程序的快取資訊,以使該 裝置100能較快速地啟動,或者關於該使用者應用程式,以使該使用者應用程式能較快速地發動和/或運行。
該裝置100可包括一清除模組(未示),其係用以在假如該作業系統之至少一者將進入一降低電力狀態而且該使用者選擇該等區段中之一或更多者要來清除時,個別地清除該等區段142-1到142-n其中一或更多者。該降低電力狀態之範例可包括該裝置100進入一關閉電力狀態、一冬眠狀態或一休眠狀態。舉例而言,該使用者和/或販售者可將該裝置100設定成自動地在進入該降低電力狀態前,清除該等區段142-1到142-n其中一或更多者。此外,該使用者可在該裝置100之運作期間透過例如該圖形使用者介面來清除該等區段142-1到142-n其中一或更多者。在該等區段142-1到142-n其中一或更多者已經被成功清除之後,該使用者可被通知。該清除模組將參照圖5被描述得更詳細於下。
關於該第一和/或第二區段142-1和142-2所描述之任何操作或性質也可適用到其他多數區段142-1到142-n之任何一者。因此,實施例可改善該等種類的軟體的一反應性,例如藉由透過降低該快取資訊之存取時間來減少一啟動或運轉時間。再者,該等區段142-1到142-n可允許此反應度在該種軟體之第一次啟動時發生和/或在不同種軟體之間切換時被維持。此外,該販售者能夠改善該裝置100出盒子(OBE)的性能。
圖2係圖1之該第一非揮發性記憶體140的一範例方塊圖。在此實施例中,該第一非揮發性記憶體140包括六 個區段142-1到142-6,例如,n是6。該第一區段142-1係被顯示為用以儲存有關於諸如一作業系統程序之一第一種軟體的快取資訊。該作業系統程序之範例可包括一啟動、冬眠、關閉或休眠程序。該第二區段142-2係被顯示為用以儲存有關於諸如一販售者應用程式之一第二種軟體的快取資訊。該販售者應用程式之範例可包括被預先安裝在該裝置100上的軟體,例如專屬軟體(proprietary software)或對該裝置100之一硬體組件為特定之軟體。
該第三區段142-3係被顯示為用以儲存有關於諸 如一網頁瀏覽器之一第三種軟體的快取資訊。網頁瀏覽器之範例可包括例如Internet Explorer、Firefox、Google Chrome、Safari、Opera等軟體。該第四區段142-4係被顯示為用以儲存有關於諸如一第一使用者應用程式之一第四種軟體的快取資訊,而該第五區段142-5係被顯示為用以儲存有關於諸如一第二使用者應用程式之一第五種軟體的快取資訊。該等第一和第二使用者應用程式之範例可包括任何種類的使用者安裝和/或非販售者應用程式,例如一圖形程式、一電動遊戲、多媒體軟體等等。
該第六區段142-6係被顯示為一通用快取記憶體, 任何快取資訊皆可被儲存在其中。該通用快取記憶體可依據一快取演算法運作,該快取演算法係例如最近最少使用(LRU)、最近最常使用(MRU)等等。因此,在此範例中,該等第一到第五區段142-1到142-5係被釘連而該第六區段142-6係維持未被釘連者。舉例而言,任何沒有被釘連至該 等第一到第五區段142-1到142-5的快取資訊可被儲存到該第六區段142-6。此外,萬一該等第一到第五區段142-1到142-5之任何一者被填滿的話,其額外或溢出的快取資訊即使沒有被釘連至該第六區段142-6,亦可被儲存到該第六區段142-6。例如,假如該第一或第二區段142-1或142-2變滿的話,與諸如該作業系統程序之該第一種軟體或諸如該販售者應用程式資訊之該第二種軟體相關聯的快取資訊可被儲存到該第六區段142-6。被釘連至該等區段142-1到142-5之其中一者的該快取資訊在除非該被釘連區段已滿時,是不會被存到該通用快取記憶體或第六區段142-6的,藉此減少該第一非揮發性記憶體140那部份的儲存容量被浪費或未被使用的可能性。
雖然圖2之該第一非揮發性記憶體140係被顯示 為具有六個區段142-1到142-6,然而該第一非揮發性記憶體140的實施例可具有比六個更多或者更少的區段。此外,該第一非揮發性記憶體140之該等區段的一尺寸和/或數量可取決於該第一非揮發性記憶體140的儲存容量。舉例來說,相較於該第一非揮發性記憶體140之一較小儲存容量的情況,針對一較大儲存容量可有較大尺寸和/或較多數量的區段。
圖3係一運算裝置300之一範例方塊圖,該運算裝 置300包括用以分割和釘連該第一非揮發性記憶體140的指令。在圖3之該實施例中,該運算裝置300包括一處理器310、該第一非揮發性記憶體140和一機器可讀取儲存媒體320。 該機器可讀取儲存媒體320更包括用以分割和釘連該第一非揮發性記憶體140的指令322和324。
該運算裝置300可為,例如,一晶片組、一筆記 型電腦、一平板運算裝置、一可攜式讀取裝置、一無線電郵裝置、一行動電話或任何可執行該等指令322和324之其他裝置。在某些實施例中,該運算裝置300可包括或被連接至附加的元件,例如記憶體、感應器、顯示器等等。舉例而言,該運算裝置300可包括一第二非揮發性記憶體(圖未示),其類似於圖1所描繪之該第二非揮發性記憶體。擇一地,該第二非揮發性記憶體可為該機器可讀取儲存媒體320之部份。
該處理器310可為至少一中央處理單元(CPU)、 至少一半導體式微處理器、至少一圖形處理單元(GPU)、其他適合擷取和執行被儲存在該機器可讀取儲存媒體320中的指令之硬體裝置或者其等之組合。該處理器310可獲取、解碼並執行指令322和324,以實施一第一非揮發性記憶體140之分割和釘連。作為擷取和執行指令之擇一選擇或額外部分地,該處理器310可包括至少一積體電路(IC)、其他控制邏輯、其他電子電路或其等的組合,該組合包括用以執行指令322和324之功能的數個電子組件。
該機器可讀取儲存媒體320可為任何電子、磁性、 光學或其他實體儲存裝置,其可包含或儲存可被執行的指令。因此,該機器可讀取儲存媒體320可為,例如,隨機存取記憶體(RAM)、一電子可抹除可規劃唯讀記憶體 (EEPROM)、一儲存驅動器、一光碟唯讀記憶體(CD-ROM)等等。如此,該機器可讀取儲存媒體320可為非暫態者。如詳細描述於下者,機器可讀取儲存媒體320可被編碼有一系列用以分割和釘連一第一非揮發性記憶體140之可被執行的指令。
再者,當被一處理器執行時(例如,透過該處理 器之一處理元件或多個處理元件),該等指令322和324可致使該處理器去執行程序,例如圖4或5之程序。舉例而言,該等分割指令322可被該處理器310執行來將該第一非揮發性記憶體140分割成多數區段。該等釘連指令324可被該處理器310執行來將多種軟體之一第一種軟體釘連至該等多數區段142-1至142-n之一第一區段142-1。該第一被釘連區段儲存與該第一種軟體相關聯之快取資訊。該等釘連指令324亦可被該處理器310執行來將該等多種軟體之一第二種軟體釘連至該等多數區段142-1至142-n之一第二區段142-2。 該第二被釘連區段儲存與該第二種軟體相關聯之快取資訊。
該機器可讀取儲存媒體320亦可包括指令(未示), 以在假若該第一區段為滿載時,將與該第一種軟體相關聯之資訊儲存到該等多數區段142-1至142-n之一第三區段142-3,並在該第二區段為滿載時,將與該第二種軟體相關聯之資訊儲存到該等多數區段142-1至142-n之該第三區段142-3。該裝置300之一操作將參照圖4和5被較為詳盡的描述。
圖4係用以分割和釘連一第一非揮發性記憶體 140的一個方法400之一範例流程圖。雖然該方法400之執行將參照該裝置100被描述於下,然而其他例如該裝置300之合適組件可被利用來執行該方法400。此外,用以執行該方法400之該等組件可分佈在多數裝置(例如,與輸入和輸出裝置相通信之一處理裝置)之中。在某些情節中,多個協調運作來執行該方法400之裝置可被視為一單一裝置。該方法400能以可被執行的指令之形式或以電子電路迴路之形式被實踐,該等指令係被儲存在例如儲存媒體320之一機器可讀取儲存媒體中。
在方塊410中,該裝置100將用以儲存快取資訊之 該第一非揮發性記憶體140分割成多數區段142-1至142-n。該裝置100最初可基於一販售者規格、一使用者命令和該第一非揮發性記憶體140之一尺寸之至少一者,在方塊410設定該等區段142-1至142-n之數量和尺寸。該等區段142-1至142-n之數量和尺寸的至少一者可基於該使用者命令和該等多種軟體之一使用模式中的至少一者,在方塊410動態地改變。
接著,在方塊420,該裝置100將多種軟體之一第 一種軟體釘連至該等多數區段142-1至142-n之一第一區段142-1。該第一被釘連區段142-1儲存與該第一種軟體相關聯之快取資訊。如上指明,該裝置100可在方塊420,基於該等多種軟體之一使用模式和一使用者命令之至少一者,動態地將該等多種軟體之一或更多者釘連至該等多數區段 142-1至142-n之一者。
譬如,該裝置100可將一第二種軟體釘連至該等 多數區段142-1至142-n之一第二區段142-2。在方塊420,該裝置100不能夠釘連該等多數區段142-1至142-n的全部,例如該等多數區段142-1至142-n之一第三區段142-3。再者,在方塊420,該裝置100可在假如該第一區段142-1為滿載時,將與該第一種軟體相關聯之該快取資訊儲存到該第三區段142-3,並在該第二區段142-2為滿載時,將與該第二種軟體相關聯之該快取資訊儲存到該第三區段142-3。
該裝置100亦可在方塊420判定被歸類為該第一 種軟體之第一和第二應用程式的一使用率,並基於所判定的使用率,動態地將該等第一和第二應用程式之一者釘連至該第一被釘連區段142-1。在方塊420,假如該第一種軟體係被變更和啟動之至少一者的話,該裝置100會更新該第一被釘連區段142-1。該裝置100至少執行下列一者:自該第一被釘連區段142-1啟動該第一種軟體,以及將針對該第一種軟體之呼叫指引至該第一被釘連區段142-1。
圖5係用以分割和釘連一第一非揮發性記憶體 140之一方法500的另一範例流程圖。雖然該方法500之執行將參照該裝置100被描述於下,然而其他例如該裝置300之合適組件可被利用來執行該方法500。此外,用以執行該方法500之該等組件可分佈在多數裝置(例如,與輸入和輸出裝置相通信之一處理裝置)之中。在某些情節中,多個協調運作來執行該方法500之裝置可被視為一單一裝置。該方法 500能以可被執行的指令之形式或以電子電路迴路之形式被實踐,該等指令係被儲存在例如儲存媒體320之一機器可讀取儲存媒體中。
圖5之方塊510可與圖4之方塊410類似,而圖5之 方塊520可與圖4之方塊420類似。譬如,在方塊510,該裝置100將用以儲存快取資訊之該第一非揮發性記憶體140分割成多數區段142-1至142-n。接著,在方塊520,該裝置100將多種軟體之一第一種軟體釘連至該等多數區段142-1至142-n之一第一區段142-1。該第一被釘連區段142-1儲存與該第一種軟體相關聯之快取資訊。在方塊530,假如下列情形之至少一者發生的話,該裝置100個別地清除該等多數區段142-1至142-n之一或更多者:該裝置140進入一降低動能狀態和一使用者選擇多數區段142-1至142-n之一或更多者要被清除。舉例而言,該裝置100之清除模組可接收來自該使用者之一命令,以立即清除該等多數區段142-1至142-n之一第一區段142-1和/或來自該裝置100之該作業系統之一命令,以在該裝置100進入該降低動能狀態之前清除該第一區段142-1。
然而,假如該第一非揮發性記憶體140包括一快 閃記憶體或SSD記憶體的話,該第一非揮發性記憶體140只能以不對應到該等多數區段142-1至142-n之定址結構的區塊為單位被清除。舉例而言,清除該等區塊之一可能只會清除該第一區段142-1的部份和/或清除該等多數區段142-1至142-n之第二區段142-2的部份。為了確保只有該第 一區段142-1被清除,該清除模組可與該第一非揮發性記憶體140之一快閃控制器(未示)通信。
該快閃控制器可保有一快閃檔案系統,其係被使 用來提供用以儲存、擷取和更新資料之程序,以及管理該第一非揮發性記憶體140之可用空間。舉例而言,由於該等區塊可能需要在被寫入前被明確地清除,因此該快閃控制器可在該裝置100閒置時清除未被使用的區塊,以節省時間。此外,該快閃控制器可將寫入動作均勻地分配在整個第一非揮發性記憶體140上,以降低或防止耗損均衡,其係發生在該等區塊之一者被重複地複寫而耗損時。
該清除模組可與該快閃控制器通信,以判定該等 多數區段142-1至142-n的映射和該第一非揮發性記憶體140的區塊之間的相互關係。而且,該清除模組可與該快閃控制器通信,以保留該等多數區段142-1至142-n之尚未被清除的快取資訊。舉例而言,假如清除該第一區段142-1也會清除到該第二區段142-2之至少一部分,例如假如該等第一和第二區段142-1和142-2共享同一區塊的部份,那麼該清除模組可與該快閃控制器通信,以首先將在該將被清除的區塊中之該第二區段142-2的快取資訊儲存至另外一個位置,例如至另一個記憶體區塊。擇一地,在該將被清除的區塊中之該第三區段142-3的快取資訊可被儲存至另外一個記憶體,例如該儲存媒體320或第二非揮發性記憶體。接著,該清除模組可與該快閃控制器通信,以藉由將儲存該第一區段142-1之快取資訊的一或更多區塊清除,來清除該第一區 段142-1。而後,該清除模組可指示該快閃控制器去將該第三區段142-3的快取資訊寫回去,取決於該第三區段142-3的快取資訊原本被儲存在哪裡。
再者,在方塊530,該清除模組可與該作業系統 通信,以將該裝置100進入該降低動能狀態的時間點延遲至該一或更多區段142-1至142-n的清除已完成之後。然而,如果在該裝置100進入該降低動能狀態之前,該等多數區段142-1至142-n之該一或更多者尚未清除完成的話,在該裝置100回復到諸如一電力開啟狀態之一高動能狀態時,該清除模組將會持續清除該等多數區段142-1至142-n之該一或更多者。此外,正在被清除之該等多數區段142-1至142-n之該一或更多者,直到該等多數區段142-1至142-n之該一或更多者被清除完成之前,無法用來儲存快取資訊。雖然實施例將上述程序描述為關於清除,實施例係不被限制於此。舉例而言,該裝置100亦可進行類似的程序,來針對該等區段142-1至142-n的至少一者作複寫和/或加密/解密。
依據前述,實施例提供一種方法和/或裝置,其 用以分割和釘連儲存快取資訊之一第一非揮發性記憶體。舉例而言,一第一種軟體的快取資訊可被釘連至該等多數區段之一第一區段。因此,在實施例中,該第一種軟體可為立即反應型或初期較為有反應型,即使是該第一種軟體之一第一次存取,或即使在該第一種軟體之多次存取之間有一第二種軟體係大量地被使用。
100‧‧‧裝置
110‧‧‧處理器
120‧‧‧分割模組
130‧‧‧釘連模組
140‧‧‧第一非揮發性記憶體
142-1‧‧‧第一區段
142-n‧‧‧第n區段

Claims (15)

  1. 一種用以分割一快取記憶體的方法,包含:將用以儲存快取資訊之一第一非揮發性記憶體劃分為多數區段;和將多種軟體之一第一種軟體釘連至該等多數區段之一第一區段,其中,該第一被釘連區段儲存與該第一種軟體相關聯之快取資訊。
  2. 如申請專利範圍第1項之方法,其中,該釘連步驟將該等多種軟體之一第二種軟體釘連至該等多數區段之一第二區段,以及該第二被釘連區段儲存與該第二種軟體相關聯之快取資訊。
  3. 如申請專利範圍第2項之方法,其中,該第一和第二種軟體係一應用程式種類和與一作業系統(OS)相關之一程序種類的至少一者,該應用程式係一網頁瀏覽器、一使用者應用程式和一販售者應用程式之至少一者,以及該程序係一啟動、冬眠、關閉和休眠程序之至少一者。
  4. 如申請專利範圍第3項之方法,其中,該釘連步驟不會釘連該等多數區段之一第三區段, 該釘連步驟在該第一區段為滿載時,將與該第一種軟體相關聯之該快取資訊儲存到該第三區段,以及該釘連步驟在該第二區段為滿載時,將與該第二種軟體相關聯之該快取資訊儲存到該第三區段。
  5. 如申請專利範圍第1項之方法,其中,該劃分步驟首先基於一販售者規格、一使用者命令和該第一非揮發性記憶體之至少一者,設定該等多數區段的數量和尺寸,該劃分步驟基於該使用者命令和該等多種軟體之一使用模式的至少一者,動態地改變該等多數區段之數量和尺寸之至少一者。
  6. 如申請專利範圍第1項之方法,其中,該釘連步驟基於該等多種軟體之一使用模式和一使用者命令之至少一者,動態地將該等多種軟體之一者釘連至該等多數區段之一者。
  7. 如申請專利範圍第1項之方法,其中,該釘連步驟判定被歸類為該第一種軟體之第一和第二應用程式的使用模式,以及該釘連步驟基於該所判定的使用模式去動態地將該等第一和第二應用程式之一者釘連至該第一被釘連區段。
  8. 如申請專利範圍第1項之方法,其中, 該釘連步驟在該第一種軟體係被變更或啟動之至少一者時,更新該第一被釘連區段,以及該釘連步驟執行下列動作之至少一者:從該第一被釘連區段啟動該第一種軟體,和將該第一種軟體之呼叫導引到到該第一被釘連區段。
  9. 如申請專利範圍第1項之方法,更包含:假如下列條件之至少一者成立的話,個別地清除該等多數區段之一或更多者:包括該第一非揮發性記憶體之一裝置將要進入一降低動能狀態,和一使用者選擇要清除該等多數區段之該一或更多者。
  10. 如申請專利範圍第9項之方法,其中,假如在該裝置進入該降低動能狀態前,該等多數區段之該一或更多者尚未清除完成的話,該清除步驟係在該裝置回復到一高動能狀態時,持續地清除該等多數區段之該一或更多者,以及直到該清除被完成前,將被清除之該等多數區段之該一或更多者係無法用來儲存該快取資訊。
  11. 一種儲存指令之非暫態電腦可讀取儲存媒體,該等指令如果被一裝置之一處理器執行的話會致使該處理器去:將用以儲存快取資訊之一第一非揮發性記憶體分割成多數區 段;以及將多種軟體之一第一種軟體釘連至該等多數區段之一第一區段,其中,該第一被釘連區段儲存與該第一種軟體相關聯之快取資訊。
  12. 如申請專利範圍第11項之非暫態電腦可讀取儲存媒體,更包含指令,如果其等被該處理器執行的話會致使該處理器去:將該等多種軟體之一第二種軟體釘連至該等多數區段之一第二區段,其中,該第二被釘連區段儲存與該第二種軟體相關聯之快取資訊,以及該等第一和第二種軟體之至少一者係基於一使用者命令、一販售者規格和一使用率之至少一者,而被選擇要被釘連。
  13. 如申請專利範圍第12項之非暫態電腦可讀取儲存媒體,更包含指令,如果其等被該處理器執行的話會致使該處理器去:假如該第一區段為滿載的話,將與該第一種軟體相關聯之資訊儲存到該等多數區段之一第三區段;以及假如該第二區段為滿載的話,將與該第二種軟體相關聯之資訊儲存到該第三區段。
  14. 一種裝置,包含: 一第一非揮發性記憶體,用以儲存快取資訊;一分割模組,用以將該第一非揮發性記憶體劃分為多數區段;以及一釘連模組,用以將多種軟體之一第一種軟體釘連至該等多數區段之一第一區段,其中,該第一被釘連區段儲存與該第一種軟體相關聯之快取資訊。
  15. 如申請專利範圍第14項之裝置,更包含:一第二非揮發性記憶體,用以儲存該第一種軟體;以及一記憶體控制器,用以控制該等第一和第二非揮發性記憶體,其中,該等分割和釘連模組透過一作業系統(OS)與該記憶體控制器通信,以執行下列動作之至少一者:產生和釘連該等多數區段。
TW101139719A 2011-10-26 2012-10-26 分段式快取記憶體 TWI498811B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/057913 WO2013062542A1 (en) 2011-10-26 2011-10-26 Segmented caches

Publications (2)

Publication Number Publication Date
TW201329858A true TW201329858A (zh) 2013-07-16
TWI498811B TWI498811B (zh) 2015-09-01

Family

ID=48168213

Family Applications (2)

Application Number Title Priority Date Filing Date
TW101139719A TWI498811B (zh) 2011-10-26 2012-10-26 分段式快取記憶體
TW104116810A TWI574203B (zh) 2011-10-26 2012-10-26 用以分割快取記憶體的方法及相關儲存媒體與裝置

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW104116810A TWI574203B (zh) 2011-10-26 2012-10-26 用以分割快取記憶體的方法及相關儲存媒體與裝置

Country Status (9)

Country Link
US (1) US9697115B2 (zh)
EP (1) EP2771795B1 (zh)
JP (1) JP2014534520A (zh)
KR (1) KR101842321B1 (zh)
CN (1) CN103999062A (zh)
BR (1) BR112014009920B1 (zh)
IN (1) IN2014CN02958A (zh)
TW (2) TWI498811B (zh)
WO (1) WO2013062542A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10613982B1 (en) 2012-01-06 2020-04-07 Seagate Technology Llc File-aware caching driver
US9268692B1 (en) * 2012-04-05 2016-02-23 Seagate Technology Llc User selectable caching
US9542324B1 (en) * 2012-04-05 2017-01-10 Seagate Technology Llc File associated pinning
US10185501B2 (en) * 2015-09-25 2019-01-22 Intel Corporation Method and apparatus for pinning memory pages in a multi-level system memory
US11165751B2 (en) * 2017-02-16 2021-11-02 Emerald Cactus Ventures, Inc. System and method for establishing simultaneous encrypted virtual private networks from a single computing device
US11165825B2 (en) * 2017-02-16 2021-11-02 Emerald Cactus Ventures, Inc. System and method for creating encrypted virtual private network hotspot
US11122013B2 (en) * 2017-02-16 2021-09-14 Emerald Cactus Ventures, Inc. System and method for encrypting data interactions delineated by zones
US20180336131A1 (en) * 2017-05-22 2018-11-22 Dell Products L.P. Optimizing Memory/Caching Relative to Application Profile
TWI649652B (zh) * 2017-12-29 2019-02-01 國科美國研究實驗室 Fast and safe data storage device and method

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0216654A (ja) 1988-07-05 1990-01-19 Hitachi Ltd キャッシュメモリ制御方法
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
EP0475639A3 (en) 1990-08-31 1992-06-03 Kawasaki Steel Corporation Hard disk emulator
JPH0511933A (ja) 1991-07-08 1993-01-22 Kawasaki Steel Corp ハードデイスクエミユレータ及びその固定キヤツシユエリア割付方法
JPH06282488A (ja) * 1993-03-25 1994-10-07 Mitsubishi Electric Corp キャッシュ記憶装置
JP3750163B2 (ja) 1995-10-16 2006-03-01 株式会社日立製作所 キャッシュディスク制御
JPH10154101A (ja) 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
JPH10333984A (ja) 1997-05-30 1998-12-18 Matsushita Electric Ind Co Ltd 記録再生装置
US20020112116A1 (en) * 2000-11-17 2002-08-15 Nelson Mark Edward Methods, systems, and computer program products for storing data in collections of tagged data pieces
US7089371B2 (en) 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a block of cache lines from memory
JP4095840B2 (ja) 2002-06-25 2008-06-04 株式会社日立製作所 キャッシュメモリ管理方法
JP2004118305A (ja) * 2002-09-24 2004-04-15 Sharp Corp キャッシュメモリ制御装置
KR100970933B1 (ko) 2003-07-26 2010-07-20 엘지전자 주식회사 오퍼레이팅 시스템의 고속 부팅장치 및 방법
JP4819369B2 (ja) * 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
US7620773B2 (en) 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
US20070005898A1 (en) 2005-06-30 2007-01-04 William Halleck Method, apparatus and system for task context cache replacement
KR100755702B1 (ko) 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법
US20080005462A1 (en) 2006-06-30 2008-01-03 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
KR101128234B1 (ko) 2006-08-23 2012-03-23 엘지전자 주식회사 메모리 접근 제어 장치 및 방법
US7554855B2 (en) 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
JP2008250718A (ja) 2007-03-30 2008-10-16 Toshiba Corp 不揮発性キャッシュメモリを用いた記憶装置とその制御方法
US7890691B2 (en) 2007-09-28 2011-02-15 Intel Corporation Memory cache sharing in hybrid hard disk
WO2009100149A1 (en) * 2008-02-10 2009-08-13 Rambus, Inc. Segmentation of flash memory for partial volatile storage
US7895374B2 (en) 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8214596B2 (en) * 2008-09-30 2012-07-03 Intel Corporation Apparatus and method for segmented cache utilization
US8407398B2 (en) 2008-10-01 2013-03-26 Lenovo (Singapore) Pte. Ltd. Cache mapping for solid state drives
US20100088459A1 (en) 2008-10-06 2010-04-08 Siamak Arya Improved Hybrid Drive
KR20140040870A (ko) 2009-07-07 2014-04-04 엘에스아이 코포레이션 계층화된 비휘발성 스토리지를 위한 시스템 및 방법

Also Published As

Publication number Publication date
KR20140091532A (ko) 2014-07-21
TW201546712A (zh) 2015-12-16
TWI574203B (zh) 2017-03-11
KR101842321B1 (ko) 2018-03-26
BR112014009920A2 (pt) 2017-04-25
JP2014534520A (ja) 2014-12-18
EP2771795B1 (en) 2016-06-01
TWI498811B (zh) 2015-09-01
CN103999062A (zh) 2014-08-20
EP2771795A4 (en) 2015-08-05
EP2771795A1 (en) 2014-09-03
US20140297937A1 (en) 2014-10-02
WO2013062542A8 (en) 2014-07-03
BR112014009920B1 (pt) 2021-06-15
WO2013062542A1 (en) 2013-05-02
IN2014CN02958A (zh) 2015-07-03
US9697115B2 (en) 2017-07-04

Similar Documents

Publication Publication Date Title
TWI498811B (zh) 分段式快取記憶體
US11372472B2 (en) System on chip for reducing wake-up time, method of operating same, and computer system including same
US6564286B2 (en) Non-volatile memory system for instant-on
US7594073B2 (en) Method and apparatus for caching memory content on a computing system to facilitate instant-on resuming from a hibernation state
JP5860543B2 (ja) ブートデータのロード
US20070038850A1 (en) System boot and resume time reduction method
US20080052477A1 (en) Controlling access to non-volatile memory
KR20110084403A (ko) 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법
US10635337B2 (en) Dynamic configuration of compressed virtual memory
JP2007219581A (ja) メモリコントローラおよびこれを搭載する電子機器
US20060294356A1 (en) Apparatus and method of an executable-in-place flash device
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
US20200133562A1 (en) Information processing device, controlling method and program
US20150317181A1 (en) Operating system switching method
Ryu et al. Fast Application Launch on Personal {Computing/Communication} Devices
JP5685070B2 (ja) 情報処理装置、およびプログラム
Lo et al. Optimizing swap space for improving process response after system resume
US20170153902A1 (en) System suspending method, system resuming method and computer system using the same
JP2001318744A (ja) 情報処理装置およびそのデータセーブ制御方法
TW201629778A (zh) 攜帶式電子裝置資料寫入方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees