TWI553478B - 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置 - Google Patents

能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置 Download PDF

Info

Publication number
TWI553478B
TWI553478B TW104131346A TW104131346A TWI553478B TW I553478 B TWI553478 B TW I553478B TW 104131346 A TW104131346 A TW 104131346A TW 104131346 A TW104131346 A TW 104131346A TW I553478 B TWI553478 B TW I553478B
Authority
TW
Taiwan
Prior art keywords
memory
cache
volatile
external
data
Prior art date
Application number
TW104131346A
Other languages
English (en)
Other versions
TW201712548A (zh
Inventor
陳政宇
簡志清
林旺聖
Original Assignee
瑞昱半導體股份有限公司
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 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW104131346A priority Critical patent/TWI553478B/zh
Priority to US15/273,083 priority patent/US20170083235A1/en
Application granted granted Critical
Publication of TWI553478B publication Critical patent/TWI553478B/zh
Publication of TW201712548A publication Critical patent/TW201712548A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-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/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

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)
  • Memory System Of A Hierarchy Structure (AREA)

Description

能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置
本發明是關於快取空間的管理,尤其是關於能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置。
有些儲存裝置為了加快資料存取速度會採用內建快取記憶體(例如隨機存取記憶體)來儲存快取資料表及/或快取資料以及儲存位址轉換表;有些為了成本考量會採用容量較小的內建快取記憶體或不採用任何內建快取記憶體。採用充足內建快取記憶體者會隨著儲存裝置的容量愈大而需要更多記憶體,此會造成更大的成本負擔;減少用量或不採用內建快取記憶體者會耗用較多運算資源於資料存取操作上,從而損失效能表現(此現象於隨機位址之存取操作時更加明顯)。另外,當儲存裝置是採用快閃記憶體做為儲存媒體時,由於快閃記憶體之抹除與寫入次數相對有限,缺少快取空間會造成此種儲存裝置的壽命減損。
以電腦系統為例,目前電腦系統是藉由邏輯區塊位址(Logical Block Address, LBA)來針對儲存裝置(例如固態硬碟(Solid State Drive, SSD))的資料進行定址,但儲存裝置除會基於不同的非揮發性儲存媒體類型與製作技術而有不同的資料存取之定址計算方式,也可能基於非揮發性媒體(例如快閃記憶體)的讀寫次數限制而無法直接使用LBA來進行定址。故儲存裝置在依據LBA進行資料存取操作時須先做位址轉換,以將電腦系統所認知的LBA轉換為儲存裝置中資料的實體位址(physical address),若每次資料存取操作都進行位址轉換(尤其考慮到某些資料常常被存取),資料存取效能會減損,因此目前技術通常將資料的實體位址與LBA的對應關係存為一快取資料表與一實體至邏輯位址轉換表(Physical to Logical Address Mapping Table)(其中該快取資料表之儲存內容包含LBA,而該實體至邏輯位址轉換表之儲存內容包含LBA與實體位址的對應關係),以避免儲存裝置於每次資料存取操作都須重建位址對應關係而造成延時性能損失。然而,如前所述,如欲儲存此實體至邏輯位址轉換表,儲存裝置需要一額外記憶體,此額外記憶體的大小會限制儲存裝置所能儲存的位址轉換表的大小,如缺少此額外記憶體或其容量不足,儲存裝置的資料存取性能會降低,但若準備容量充足的額外記憶體,儲存裝置的成本會增加。上述問題常使業者面臨兩難。
鑑於先前技術之不足,本發明之一目的在於提供能夠使用外部揮發性記憶體的裝置與方法、能夠釋放內部揮發性記憶體的裝置以及能夠提供快取空間的系統,以改善先前技術。
本發明揭露一種能夠使用外部揮發性記憶體的裝置,其一實施例包含:一儲存控制器,用來控制一非揮發性儲存媒體之資料存取,能夠依據一協定以及一驅動程式的至少其中之一與一外部裝置溝通,其中該外部裝置可支配一外部揮發性記憶體。所述儲存控制器能夠藉由執行下列步驟以在一外部快取模式下將該外部揮發性記憶體的至少一部分做為一快取記憶體:請求該外部裝置提供一需求記憶體;依據該外部裝置的回應判斷該外部裝置是否提供一分配記憶體;若判斷該外部裝置未提供該分配記憶體,操作於一無外部快取模式下;以及若判斷該外部裝置提供該分配記憶體,操作於該外部快取模式下,藉此將該分配記憶體做為該快取記憶體。。
本發明亦揭露一種能夠釋放內部揮發性記憶體的裝置,其一實施例包含:一揮發性記憶體;以及一儲存控制器。該儲存控制器能夠依據一驅動程式與一協定的至少其中之一與一外部裝置溝通,並能依據該驅動程式與該協定的至少其中之一釋放該揮發性記憶體的至少一部分給該外部裝置。該儲存控制器於釋放該揮發性記憶體的至少一部分後進一步執行下列步驟:依據該揮發性記憶體之未釋放的部分的容量建立一快取資訊表於該未釋放的部分裡,及/或依據該未釋放的部分的容量儲存快取資料於該未釋放的部分裡,其中該快取資訊表包含該快取資料於該未釋放的部分中的位址資訊。
有關本發明的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
以下說明內容之用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。
本發明之揭露內容包含能夠使用外部揮發性記憶體的裝置與方法、能夠釋放內部揮發性記憶體的裝置以及能夠提供快取空間的系統。該些裝置與系統之部分元件單獨而言可能為已知元件,在不影響發明之充分揭露及可實施性的前提下,以下說明對於個別已知元件的細節將予以節略;另外,該方法可以是軟體及/或韌體之形式,可藉由本發明之裝置或其等效裝置來執行。
請參閱圖1,其是本發明之能夠使用外部揮發性記憶體的裝置之一實施例的示意圖。如圖1所示,本實施例之裝置110(圖中標示為DEV)包含:一儲存控制器112(圖中標示為SC),用來控制一非揮發性儲存媒體120(圖中標示為NVM)之資料存取,能夠依據一協定以及一驅動程式的至少其中之一透過一已知傳輸介面130(例如遵守PCI-Express協定或SATA協定的介面等)與一外部裝置140(圖中標示為Host)溝通,上述協定或驅動程式形式上而言可藉由習知技術來實現,內容上則需包含代碼與程式碼的至少其中之一來對應儲存控制器112所能執行之步驟,實作上本領域人士可依本說明書之揭露、已知的規範(例如PCI-Express規範(像是PCI EXPRESS BASE SPECIFICATION, REVISION 3.0)及/或NVM-Express規範(像是NVM Express revision 1.2 specification)等)與已知的軟/韌體編撰方式來規劃與編寫該代碼及/或程式碼。外部裝置140例如是一個人電腦主機或一行動裝置主機,可支配一外部揮發性記憶體150(圖中標示為EVM)像是隨機存取記憶體,該記憶體150可以是一主機記憶體直接受外部裝置140支配(此時外部裝置140與記憶體150之溝通可透過一記憶體傳輸介面(未圖示)而無需取道介面130),或記憶體150是某一外部儲存裝置之記憶體透過前述協定與驅動程式的至少其中之一而釋放給外部裝置140來支配(此時外部裝置140與記憶體150之溝通可透過傳輸介面130),上述外部裝置140與記憶體150之溝通以虛線輔助表示,二虛線所代表的路徑之至少其中之一需存在。非揮發性儲存媒體120例如是快閃記憶體(像是NAND Flash),可包含於裝置110中(此時裝置110例如是儲存裝置)或獨立於裝置110外(此時裝置110例如是單純的儲存控制器)。
請參閱圖1與圖2,儲存控制器112能夠藉由執行下列步驟以在一外部快取模式下將外部揮發性記憶體150的至少一部分做為一快取記憶體(即後述的分配記憶體152(圖中標示為AM)): 步驟S210:請求外部裝置140提供一需求記憶體。控制器112可透過前述協定與驅動程式的至少其中之一來執行本步驟。 步驟S220:依據外部裝置140的回應判斷外部裝置140是否提供一分配記憶體152。分配記憶體152之容量不一定等於需求記憶體之容量,視外部裝置140所能支配的外部揮發性記憶體150的容量佐以前述協定及/或驅動程式的規劃而定。 步驟S230:若判斷外部裝置140未提供分配記憶體152,操作於一無外部快取模式下。當操作於此模式下,若有一內部揮發性記憶體可做為快取,儲存控制器112會將非揮發性儲存媒體120所儲存之資料的一部分做為快取資料,並將該快取資料及/或一快取資訊表(該快取資訊表包含一快取資料表及/或一實體至邏輯位址轉換表)儲存於該內部揮發性記憶體,其中快取資訊表包含該快取資料於該內部揮發性記憶體與非揮發性儲存媒體120的至少其中之一中的位址資訊;然而,若無此內部記憶體可供支配,儲存控制器112會於每次存取非揮發性儲存媒體120之資料時先做位址轉換再存取資料。 步驟S240:若判斷外部裝置140提供分配記憶體152,操作於該外部快取模式下,藉此將分配記憶體152做為快取記憶體。
承上所述,儲存控制器112可選擇性地於步驟S210中指明一記憶體需求容量,舉例來說,儲存控制器112可依據非揮發性儲存媒體120的容量來決定該記憶體需求容量,從而請求外部裝置140提供對應於該記憶體需求容量的記憶體,通常而言,當非揮發性儲存媒體120的容量愈大,該記憶體需求容量也愈大,以有足夠空間來儲存該非揮發性儲存媒體120之快取資訊表及/或快取資料。在步驟S210包含指明該記憶體需求容量的前提下,步驟S240可選擇性地包含下列步驟如圖3所示: 步驟S310:判斷分配記憶體152之容量是否小於所指明的記憶體需求容量。 步驟S320:若分配記憶體152之容量小於該記憶體需求容量,儲存一第一儲存量的第一快取資料及/或一第一快取資訊表(該第一快取資訊表包含一第一快取資料表及/或一第一實體至邏輯位址轉換表)於分配記憶體152,該第一快取資料原儲存於非揮發性儲存媒體120,該第一快取資訊表包含該第一快取資料於分配記憶體152與非揮發性儲存媒體120的至少其中之一中的位址資訊。當分配記憶體152之容量小於該記憶體需求容量,儲存控制器112只能儲存較少的快取資料及/或較小的快取資訊表於分配記憶體152中,且可能透過一預設規則來決定該快取資料與快取資訊表的內容。上述預設規則可以是依據一內建資料表選取指定資料以做為快取資料的規則,以及/或是依據一預定演算法(例如最近最少使用(Least Recently Used, LRU)演算法)來挑選資料以做為快取資料的規則,實作上該預設規則可以是任一現有快取資料挑選規則或一自定義的規則。 步驟S330:若分配記憶體152之容量不小於該記憶體需求容量,儲存一第二儲存量的第二快取資料及/或一第二快取資訊表(該第二快取資訊表包含一第二快取資料表及/或一第二實體至邏輯位址轉換表)於分配記憶體152,該第二快取資料原儲存於非揮發性儲存媒體120,該第二快取資訊表包含該第二快取資料於分配記憶體152與非揮發性儲存媒體120的至少其中之一中的位址資訊,且該第二儲存量大於該第一儲存量。當分配記憶體152之容量充足,儲存控制器112能夠儲存所需的所有快取資料及/或快取資訊表於分配記憶體152中,該些快取資料與快取資訊表的內容同樣可透過前述預設規則來決定。本實施例中,第二快取資訊表的資料量大於第一快取資料的資料量;然而,考量到資料的大小與連續性,第二快取資訊表的資料量也可能小於第一快取資訊表的資料量。
承上所述,當分配記憶體152及前述內部快取記憶體同時存在時,為彈性使用二者,步驟S240可選擇性地包含下列步驟:若分配記憶體之容量142小於前述記憶體需求容量,將該第一快取資訊表儲存於該內部揮發性記憶體與分配記憶體152的至少其中之一;以及若分配記憶體152之容量不小於該記憶體需求容量,將該第二快取資訊表儲存於該內部揮發性記憶體與分配記憶體152的至少其中之一。
另外,無論步驟S210是否包含指明該記憶體需求容量,步驟240可選擇性地包含下列步驟:依據分配記憶體152之容量以及前述預設規則將非揮發性儲存媒體120所儲存之資料的一部分做為快取資料,並儲存該快取資料及/或一快取資訊表於分配記憶體152,該快取資訊表包含該快取資料於分配記憶體152與非揮發性儲存媒體120的至少其中之一中的位址資訊。類似地,若分配記憶體152以及內部快取記憶體同時存在,步驟S240可選擇性地進一步包含:將該快取資訊表儲存於該內部揮發性記憶體與該分配記憶體的至少其中之一。
藉由前述作法,本發明之裝置110得以將外部揮發性記憶體150做為快取記憶體,從而在一主機(可以是外部裝置140或其它裝置)向本裝置110要求非揮發性儲存媒體120之儲存資料時,令儲存控制器112依一快取資訊表判斷該儲存資料是否為快取資料,若是,儲存控制器112可執行下列步驟:下達指令以要求外部揮發性記憶體150輸出該儲存資料至裝置110,再從裝置110將該儲存資料輸出至該主機;或藉由特製化的驅動程式,令外部揮發性記憶體150直接輸出該儲存資料至該主機。值得注意的是,儲存控制器112可於裝置110之啟動過程中或裝置110啟動完成後執行前揭步驟S210至步驟S240及其衍生步驟。
除前揭裝置外,本發明亦揭露一種能夠使用外部揮發性記憶體的方法,是由本發明之裝置或其等效裝置來執行,能夠在一外部快取模式下將一外部裝置可支配的一外部揮發性記憶體的至少一部分做為一快取記憶體,該方法之一實施例如圖4所示,包含下列步驟: 步驟S410:請求該外部裝置提供一需求記憶體。 步驟S420:依據該外部裝置的回應判斷該外部裝置是否提供一分配記憶體; 步驟S430:若判斷該外部裝置未提供該分配記憶體,操作於一無外部快取模式下;以及 步驟S440:若判斷該外部裝置提供該分配記憶體,操作於該外部快取模式下,藉此將該分配記憶體做為該快取記憶體。
由於本領域具有通常知識者能夠藉由前揭裝置實施例之揭露來推知本方法實施例的細節與變化,更明確地說,前揭裝置實施例之技術特徵均可合理應用於本方法實施例中,因此,在不影響本方法實施例之揭露要求與可實施性的前提下,重複及冗餘之說明在此予以節略。
前文提及外部揮發性記憶體可以是由某一外部儲存裝置透過協定與驅動程式的至少其中之一所釋放之記憶體。因此,本發明提出一種能夠釋放內部揮發性記憶體的裝置之一實施例如圖5所示,藉此使本領域人士得以明瞭與實施。圖5之裝置510(圖中標示為DEV1)包含:一揮發性記憶體512(圖中標示為IVM);以及一儲存控制器514(圖中標示為SC)。儲存控制器514能夠依據一驅動程式與一協定的至少其中之一透過一已知傳輸介面520與一外部裝置530(圖中標示為Host/DEV2)溝通,並能依據該驅動程式與該協定的至少其中之一釋放揮發性記憶體512的至少一部分給外部裝置530來支配,該驅動程式與協定形式上可藉由習知技術來實現,內容上則需包含代碼與程式碼的至少其中之一來對應儲存控制器514所能執行之步驟,實作上本領域人士可依本說明書之揭露、已知的規範(例如PCI-Express規範及/或NVM-Express規範等)與已知的軟/韌體編撰方式來規劃與編寫該代碼及/或程式碼,外部裝置530例如是一個人電腦主機、一行動裝置主機或一非揮發性儲存裝置,當外部裝置為主機時,會於取得記憶體512之至少一部分的支配權後,再透過上述驅動程式及/或協定將該支配權讓與另一儲存裝置(例如圖1之裝置110,此時該記憶體512的至少一部分相當於圖1的分配記憶體152)。另外,儲存控制器514可選擇性地於釋放揮發性記憶體512的至少一部分後執行下列步驟:依據揮發性記憶體512之未釋放的部分的容量建立一快取資訊表於該未釋放的部分裡及/或依據該未釋放的部分的容量儲存快取資料於該未釋放的部分裡,其中該快取資訊表包含該快取資料於該未釋放的部分與一非揮發性儲存媒體(未顯示)的至少其中之一中的位址資訊,該非揮發性儲存媒體例如是快閃記憶體,可包含於裝置510中或獨立於裝置510外,且前述快取資料原儲存於該非揮發性儲存媒體中。值得注意的是,儲存控制器514可於裝置510之啟動過程中或裝置510啟動完成後執行上述步驟及其衍生步驟。
類似地,由於本領域具有通常知識者能夠藉由前揭實施例之揭露內容來推知本實施例的細節與變化,更明確地說,前揭實施例之技術特徵均可合理應用於本實施例中,因此,在不影響本實施例之揭露要求與可實施性的前提下,重複及冗餘之說明在此予以節略。
除前揭裝置與方法外,本發明也提出一種能夠提供快取空間的系統的一實施例如圖6所示,圖6之系統600包含:一外部裝置610(圖中標示為Host),能夠直接或間接支配一外部揮發性記憶體620(圖中標示為EVM);以及一儲存裝置630(圖中標示為DEV)。儲存裝置630包含:一非揮發性儲存媒體632(圖中標示為NVM);以及一儲存控制器634(圖中標示為SC)。所述儲存控制器634用來控制非揮發性儲存媒體632之資料存取,能夠依據一協定以及一驅動程式的至少其中之一經由一已知傳輸介面640與外部裝置610溝通。儲存控制器634能夠藉由執行下列步驟以在一外部快取模式下將外部揮發性記憶體620的至少一部分做為一快取記憶體(即下述分配記憶體622(圖中標示為AM)):請求外部裝置610提供一需求記憶體;依據外部裝置610的回應判斷外部裝置610是否提供一分配記憶體622;若判斷外部裝置610未提供分配記憶體622,操作於一無外部快取模式下;以及若判斷外部裝置610提供分配記憶體622,操作於該外部快取模式下,藉此將分配記憶體622做為該快取記憶體。本實施例中,外部裝置610是一電腦主機,非揮發性儲存媒體622是快閃記憶體。
同樣地,由於本領域具有通常知識者能夠藉由前揭裝置與方法實施例之揭露內容來推知本系統實施例的細節與變化,更明確地說,前揭裝置與方法實施例之技術特徵均可合理應用於本系統實施例中,因此,在不影響本系統實施例之揭露要求與可實施性的前提下,重複及冗餘之說明在此予以節略。
綜上所述,本發明藉由提供能夠使用外部揮發性記憶體的裝置與方法、能夠釋放內部揮發性記憶體的裝置以及能夠提供快取空間的系統來平衡快取空間之成本與效能考量。對一般使用者而言,將個人電腦之系統記憶體做為儲存裝置之快取記憶體通常不會實質影響電腦系統原本效能,而會顯著提升儲存裝置的效能;而將其它裝置(例如某一儲存裝置)之記憶體做為採用本發明之儲存裝置的快取記憶體,可達到資源共享以及裝置使用效率與壽命的均一化或改善。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
110、DEV‧‧‧能夠使用外部揮發性記憶體的裝置 112、SC‧‧‧儲存控制器 120、NVM‧‧‧非揮發性儲存媒體 130‧‧‧傳輸介面 140、Host‧‧‧外部裝置 150、EVM‧‧‧外部揮發性記憶體 152、AM‧‧‧分配記憶體 S210~S240‧‧‧步驟 S310~S330‧‧‧步驟 S410~S440‧‧‧步驟 510、DEV1‧‧‧能夠釋放內部揮發性記憶體的裝置 512、IVM‧‧‧揮發性記憶體 514、SC‧‧‧儲存控制器 520‧‧‧傳輸介面 530、Host/DEV2‧‧‧外部裝置 600‧‧‧能夠提供快取空間的系統 610、Host‧‧‧外部裝置 620、EVM‧‧‧外部揮發性記憶體 622、AM‧‧‧分配記憶體 630、DEV‧‧‧儲存裝置 632、NVM‧‧‧非揮發性儲存媒體 634、SC‧‧‧儲存控制器 640‧‧‧傳輸介面
〔圖1〕為本發明之能夠使用外部揮發性記憶體的裝置之一實施例的示意圖; 〔圖2〕為圖1之儲存控制器所能執行之步驟的一實施例的示意圖; 〔圖3〕為圖2之步驟S240所包含之步驟之一實施例的示意圖; 〔圖4〕為本發明之能夠使用外部揮發性記憶體的方法之一實施例的示意圖; 〔圖5〕為本發明之能夠釋放內部揮發性記憶體的裝置之一實施例的示意圖;以及 〔圖6〕為本發明之能夠提供快取空間的系統之一實施例的示意圖。
110、DEV‧‧‧能夠使用外部揮發性記憶體的裝置
112、SC‧‧‧儲存控制器
120、NVM‧‧‧非揮發性儲存媒體
130‧‧‧傳輸介面
140、Host‧‧‧外部裝置
150、EVM‧‧‧外部揮發性記憶體
152、AM‧‧‧分配記憶體

Claims (10)

  1. 一種能夠使用外部揮發性記憶體的裝置,包含:一儲存控制器,用來控制一非揮發性儲存媒體之資料存取,能夠與一外部裝置溝通,其中該外部裝置可支配一外部揮發性記憶體,該儲存控制器能夠藉由執行下列步驟以在一外部快取模式下將該外部揮發性記憶體的至少一部分做為一快取記憶體:請求該外部裝置提供一需求記憶體;依據該外部裝置的回應判斷該外部裝置是否提供一分配記憶體;若判斷該外部裝置未提供該分配記憶體,操作於一無外部快取模式下;以及若判斷該外部裝置提供該分配記憶體,操作於該外部快取模式下,藉此將該分配記憶體做為該快取記憶體。
  2. 如申請專利範圍第1項所述之裝置,其中請求該外部裝置提供該需求記憶體之步驟包含:指明一記憶體需求容量;以及將該分配記憶體做為該快取記憶體之步驟包含:判斷該分配記憶體之容量是否小於該記憶體需求容量;若該分配記憶體之容量小於該記憶體需求容量,儲存一第一儲存量的第一快取資料及/或一第一快取資訊表於該分配記憶體,該第一快取資料原儲存於該非揮發性儲存媒體,該第一快取資訊表包含該第一快取資料於該 分配記憶體與該非揮發性儲存媒體的至少其中之一中的位址資訊;以及若該分配記憶體之容量不小於該記憶體需求容量,儲存一第二儲存量的第二快取資料及/或一第二快取資訊表於該分配記憶體,該第二快取資料原儲存於該非揮發性儲存媒體,該第二快取資訊表包含該第二快取資料於該分配記憶體與該非揮發性儲存媒體的至少其中之一中的位址資訊,且該第二儲存量大於該第一儲存量。
  3. 如申請專利範圍第2項所述之裝置,其中該第二快取資訊表之資料量大於該第一快取資料之資料量。
  4. 如申請專利範圍第2項所述之裝置,進一步包含一內部揮發性記憶體,其中將該分配記憶體做為該快取記憶體之步驟進一步包含:若該分配記憶體之容量小於該記憶體需求容量,將該第一快取資訊表儲存於該內部揮發性記憶體與該分配記憶體的至少其中之一;以及若該分配記憶體之容量不小於該記憶體需求容量,將該第二快取資訊表儲存於該內部揮發性記憶體與該分配記憶體的至少其中之一。
  5. 如申請專利範圍第1項所述之裝置,其中該儲存控制器依據該非揮發性儲存媒體的容量來請求該外部裝置提供該需求記憶體,並指明一記憶體需求容量。
  6. 如申請專利範圍第1項所述之裝置,其中將該分配記憶體做為該快取記憶體之步驟包含:依據該分配記憶體之容量以及一預設規則將該非揮發性儲存媒體所儲存之資料的一部分做為快取資料,並儲存該快取資 料及/或一快取資訊表於該分配記憶體,該快取資訊表包含該快取資料於該分配記憶體與該非揮發性儲存媒體的至少其中之一中的位址資訊。
  7. 如申請專利範圍第6項所述之裝置,進一步包含一內部揮發性記憶體,其中將該分配記憶體做為該快取記憶體之步驟進一步包含:將該快取資訊表儲存於該內部揮發性記憶體與該分配記憶體的至少其中之一。
  8. 如申請專利範圍第1項所述之裝置,其中該外部揮發性記憶體包含於該外部裝置與一儲存裝置的其中之一,當該外部揮發性記憶體包含於該儲存裝置時,該外部揮發性記憶體是由該儲存裝置釋放給該外部裝置。
  9. 一種能夠釋放內部揮發性記憶體的裝置,包含:一揮發性記憶體;以及一儲存控制器,能夠與一外部裝置溝通,並能釋放該揮發性記憶體的至少一部分給該外部裝置,該儲存控制器於釋放該揮發性記憶體的至少一部分後執行下列步驟:依據該揮發性記憶體之未釋放的部分的容量建立一快取資訊表於該未釋放的部分裡,及/或依據該未釋放的部分的容量儲存快取資料於該未釋放的部分裡,其中該快取資訊表包含該快取資料於該未釋放的部分中的位址資訊。
  10. 如申請專利範圍第9項所述之能夠釋放內部揮發性記憶體的裝置,進一步包含一非揮發性儲存媒體受該儲存控制器之控制,其中該快取資料原儲存於該非揮發性儲存媒體。
TW104131346A 2015-09-23 2015-09-23 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置 TWI553478B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104131346A TWI553478B (zh) 2015-09-23 2015-09-23 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置
US15/273,083 US20170083235A1 (en) 2015-09-23 2016-09-22 Device capable of using external volatile memory and device capable of releasing internal volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104131346A TWI553478B (zh) 2015-09-23 2015-09-23 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置

Publications (2)

Publication Number Publication Date
TWI553478B true TWI553478B (zh) 2016-10-11
TW201712548A TW201712548A (zh) 2017-04-01

Family

ID=57848258

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104131346A TWI553478B (zh) 2015-09-23 2015-09-23 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置

Country Status (2)

Country Link
US (1) US20170083235A1 (zh)
TW (1) TWI553478B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI755168B (zh) * 2020-03-17 2022-02-11 慧榮科技股份有限公司 用來產生基於主機的快取資訊或基於快閃記憶體的快取資訊以建立及最佳化二元樹的快閃記憶體控制器、方法及記憶裝置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10372353B2 (en) 2017-05-31 2019-08-06 Micron Technology, Inc. Apparatuses and methods to control memory operations on buffers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200719144A (en) * 2005-11-01 2007-05-16 Giga Byte Tech Co Ltd Method for setting up a non-volatility memory/ a non-volatility memory apparatus in the main memory and the PC core system using the same
TW201324148A (zh) * 2011-09-30 2013-06-16 Intel Corp 實施具有不同操作模式之多階記憶體階層的設備與方法
CN102760101B (zh) * 2012-05-22 2015-03-18 中国科学院计算技术研究所 一种基于ssd 的缓存管理方法及***
TW201523261A (zh) * 2007-01-10 2015-06-16 Mobile Semiconductor Corp 用於改善外部計算裝置效能的調適性記憶體系統

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411736B2 (en) * 2013-03-13 2016-08-09 Drobo, Inc. System and method for an accelerator cache based on memory availability and usage
US9575884B2 (en) * 2013-05-13 2017-02-21 Qualcomm Incorporated System and method for high performance and low cost flash translation layer
US9398728B2 (en) * 2013-12-11 2016-07-19 Hitachi, Ltd. Storage subsystem and method for controlling the same
US9563382B2 (en) * 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200719144A (en) * 2005-11-01 2007-05-16 Giga Byte Tech Co Ltd Method for setting up a non-volatility memory/ a non-volatility memory apparatus in the main memory and the PC core system using the same
TW201523261A (zh) * 2007-01-10 2015-06-16 Mobile Semiconductor Corp 用於改善外部計算裝置效能的調適性記憶體系統
TW201324148A (zh) * 2011-09-30 2013-06-16 Intel Corp 實施具有不同操作模式之多階記憶體階層的設備與方法
CN102760101B (zh) * 2012-05-22 2015-03-18 中国科学院计算技术研究所 一种基于ssd 的缓存管理方法及***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI755168B (zh) * 2020-03-17 2022-02-11 慧榮科技股份有限公司 用來產生基於主機的快取資訊或基於快閃記憶體的快取資訊以建立及最佳化二元樹的快閃記憶體控制器、方法及記憶裝置

Also Published As

Publication number Publication date
TW201712548A (zh) 2017-04-01
US20170083235A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
JP6796304B2 (ja) 最終レベルキャッシュシステム及び対応する方法
TWI704457B (zh) 用以存取異質記憶體組件的記憶體虛擬化
JP6190045B2 (ja) 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法
TWI578156B (zh) 非依電性隨機存取記憶磁碟
KR101625777B1 (ko) 휘발성 메모리 및 비휘발성 메모리 간의 코드 및 데이터 저장소들을 분산하기 위한 방법 및 장치
WO2017000658A1 (zh) 存储***、存储管理装置、存储器、混合存储装置及存储管理方法
TWI752620B (zh) 與記憶體類型相關的頁表
TWI752619B (zh) 存取儲存的元資料以識別儲存資料的記憶體裝置
JP2019008730A (ja) メモリシステム
JP7427081B2 (ja) メモリ名前空間へデータをバインドするためのメモリシステム
US10430329B2 (en) Quality of service aware storage class memory/NAND flash hybrid solid state drive
KR20220045216A (ko) 유형화된 메모리 액세스에 대한 유형화되지 않은 메모리 액세스의 맵핑
US20170255565A1 (en) Method and apparatus for providing a contiguously addressable memory region by remapping an address space
US9904622B2 (en) Control method for non-volatile memory and associated computer system
CN108139983B (zh) 用于在多级***存储器中固定存储器页面的方法和设备
TWI553478B (zh) 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置
JP2019083005A (ja) コンピューティング装置、プロセッサ、及び動作方法
KR20210043001A (ko) 하이브리드 메모리 시스템 인터페이스
CN106557271B (zh) 能够使用外部挥发性记忆体的装置以及能够释放内部挥发性记忆体的装置
TW202349214A (zh) 輸入/輸出裝置的位址變換預取出
TW201715531A (zh) 電腦系統及其檔案分配方法