TWI530791B - 用於改善外部計算裝置效能的調適性記憶體系統 - Google Patents

用於改善外部計算裝置效能的調適性記憶體系統 Download PDF

Info

Publication number
TWI530791B
TWI530791B TW103133323A TW103133323A TWI530791B TW I530791 B TWI530791 B TW I530791B TW 103133323 A TW103133323 A TW 103133323A TW 103133323 A TW103133323 A TW 103133323A TW I530791 B TWI530791 B TW I530791B
Authority
TW
Taiwan
Prior art keywords
memory
data
type
adaptive
sector
Prior art date
Application number
TW103133323A
Other languages
English (en)
Other versions
TW201523261A (zh
Inventor
費雪路易斯卡麥倫
R 賀里格史帝芬V
歐麥尼亞莫哈曼S
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 木比爾半導體股份有限公司
Publication of TW201523261A publication Critical patent/TW201523261A/zh
Application granted granted Critical
Publication of TWI530791B publication Critical patent/TWI530791B/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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • 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/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • 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/602Details relating to cache prefetching
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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

Description

用於改善外部計算裝置效能的調適性記憶體系統
本發明係關於一種用於改善一外部計算裝置效能的調適性記憶體系統。
現代計算裝置通常具備多個並且不同種類的內部記憶體組件,來支援不同的末端應用程式。這些記憶體組件及其相關特性為用於測量計算裝置效能的一些關鍵點。現代計算裝置通常可透過許多內建通訊通道加裝記憶體組件,像是PCI匯流排、Firewire連接埠、USB連接埠或特殊多媒體卡(MMC,“Multi-Media Card”)連接埠。所有這些內部與加裝記憶體組件都由揮發性或非揮發性記憶體或這兩者的組合所構成。Nand Flash與Nor Flash為常見的非揮發性記憶體種類。動態隨機存取記憶體(DRAM)以及靜態隨機存取記憶體(SRAM)通常為揮發性記憶體種類。記憶體種類可根據效能與密度來分類,像是SRAM這類高效能記憶體比較大、製造成本較高並且比較耗電。像是DRAM這類高密度記憶體更具成 本效益,但是用單一元件的存取時間或用頻寬來測量通常效能不佳,或記憶體內容傳輸至需要記憶體系統內含資料或指令的處理元件之傳輸速率不佳。
當這些現代記憶體系統運用在行動裝置內,像是膝上型PC、行動電話、PDA或任何其他許多超可攜式個人計算裝置,這些相關的消長現象特別關鍵。在這些裝置內,耗電量以及外型因素這些額外考量,使記憶體資源經過最佳配置並且部分利用也很重要。幸運的是,提高計算產品整合的等級可將多種記憶體封裝成單一完整記憶體系統封裝,這具備顯著改善記憶體資料傳輸與相關處理速度的特徵。
這種積體封裝特別有用的一項特定應用為快取記憶體系統。最現代具有積體快取系統的計算系統同時包括L1以及L2 SRAM快取。一般來說,處理器使用快取以降低從記憶體存取類似資料的平均時間。SRAM快取為低容量快速記憶體種類,用於從主記憶體位置儲存經常存取資料的副本。
當處理器嘗試從主記憶體位置讀取或寫入主記憶體位置時,會先檢查快取記憶體位置查看是否有之前儲存類似資料的副本。處理器利用將資料位址記憶體位置與快取比較,以了解是否有快取命中(資料存在於快取內),來達成此作業。若處理器未在快取內發現資料,則發生快取未命中,並且處理器必須以比較慢的資料擷取速率從較慢的主記憶體位置存取資料,像是硬碟或快閃記憶體。以某些方式增加快取命中率有其優點,如此降低存取較慢記憶體種類來順利找到存取資料之需求。
仍進一步來說,最現代的外掛快取記憶體系統包含快閃記憶體以及RAM記憶體,其中快取控制發生在外部計算裝置處理器上的關閉電路內。這種系統無效率,因為必須利用從外掛記憶體系統的快閃將資料繞送通過外部處理器匯流排到達外部計算裝置處理器,並且通過外部處理器匯流排到達外掛記憶體系統的RAM,來幫助快閃與RAM記憶體之間的傳輸。
本發明內容提供導入簡單形式中概念的選擇,在底下實施方式中有進一步說明。本發明內容並不在於識別所主張標的之關鍵特徵,也不在於用來幫助決定所主張標的之範疇。
鑒於先前技術記憶體系統的效率不佳,如先前技術章節內所討論,本申請案發明人創造出調適性記憶體裝置,其利用廉價的DRAM技術幫助快取擴充,同時允許直接在相同外掛記憶體系統的記憶體組件之間進行記憶體傳輸。另外,本發明具有可併入特殊快取演算法,來利用擴充後的快取與內部記憶體存取之優點。
根據本發明的一個具體實施例,提供調適性記憶體系統來改善外部計算裝置的效能。調適性記憶體系統包含一單一控制器;一第一記憶體種類(例如靜態隨機存取記憶體或SRAM);一第二記憶體種類(例如動態隨機存取記憶體或DRAM);一第三記憶體種類(例如快閃);一內部匯流排系統;以及一外部匯流排介面。該單一控制器經組態以:(i)使用該 內部匯流排系統與所有三記憶體種類通訊;(ii)使用該外部匯流排介面與該外部計算裝置通訊;以及(iii)將快取資料儲存指派配置至該第一記憶體種類內的一儲存空間,並且在判斷該第一記憶體種類內該儲存空間將滿之後,將快取資料儲存指派配置至該第二記憶體種類的一儲存空間。
根據本發明的一個態樣,第一和第二記憶體種類為明確的揮發性記憶體(例如SRAM和DRAM)並且第三記憶體種類為非揮發性(例如快閃),並且單一控制器另外經組態以關閉第一和第二記憶體種類中未寫入部分的電源,來減少耗電量。
根據本發明其他態樣,單一控制器可進一步經組態以從SRAM或快閃記憶體將快取資料傳輸至DRAM。若快取資料已存在於SRAM內,則快取資料會從SRAM傳輸至DRAM。若快取資料未存在於SRAM內,並且存在於快閃記憶體內,則從快閃記憶體內將快取資料傳輸至DRAM。
仍根據本發明其他態樣,單一控制器可另經組態以根據資料前瞻法將資料從快閃記憶體快取至SRAM和DRAM。
根據本發明的其他具體實施例,提供用於控制一調適性記憶體系統的方法,其中該調適性記憶體系統包含一單一控制器;一第一記憶體種類;一第二記憶體種類;一第三記憶體種類;一內部匯流排系統;以及一外部匯流排介面。該方法一般包含三個步驟:(i)使用該內部匯流排系統與所有三記憶體種類通訊;(ii)使用該外部匯流排介面與一外部計算 裝置通訊;以及(iii)將快取資料儲存指派配置至該第一記憶體種類內的一儲存空間,並且在判斷該第一記憶體種類內該儲存空間將滿之後,將快取資料儲存指派配置至該第二記憶體種類的一儲存空間。
仍根據本發明其他具體實施例,提供一包含一電腦可執行程式的電腦可讀取媒體,用於控制一調適性記憶體系統的一單一控制器之操作。該調適性記憶體系統另包含一第一記憶體種類;一第二記憶體種類;一第三記憶體種類;一內部匯流排系統;以及一外部匯流排介面。電腦可執行程式在執行時會導致該單一控制器執行一般包含三步驟的方法:(i)使用該內部匯流排系統與所有三記憶體種類通訊;(ii)使用該外部匯流排介面與一外部計算裝置通訊;以及(iii)將快取資料儲存指派配置至該第一記憶體種類內的一儲存空間,並且在判斷該第一記憶體種類內該儲存空間將滿之後,將快取資料儲存指派配置至該第二記憶體種類的一儲存空間。
根據本發明又一具體實施例,提供一包含一電腦可執行程式的電腦可讀取媒體,用於實施一調適性記憶體系統的一單一控制器之一資料前瞻快取法。該調適性記憶體系統另包含一第一記憶體種類;一第二記憶體種類;一第三記憶體種類;一內部匯流排系統;以及一外部匯流排介面。電腦可執行程式在執行時會導致該單一控制器執行一般包含四步驟的方法:(i)從在一外部計算裝置上運行的一應用程式獲取一扇區資料順序;(ii)將該獲取的扇區資料順序與複數個先前儲存的扇區資料順序做比較,判斷是否有高可能性匹配;(iii) 若判斷該獲取的扇區資料順序與複數個先前儲存的扇區資料順序有高可能性匹配,則以該判斷的高可能性匹配快取至少該第一記憶體種類;以及(iv)若判斷該獲取的扇區資料順序與複數個先前儲存的扇區資料順序未有高可能性匹配,則判斷是否可從該複數個先前儲存的扇區資料順序中選擇一最可能的扇區資料順序。
根據本發明的一個態樣,若可選擇一最可能的扇區資料順序,則將選擇之最可能的扇區資料順序快取至該第一記憶體種類內或該第二記憶體種類內;並且若無法選擇一最可能的扇區資料順序,則開始一快取資料訓練順序。
根據本發明的其他態樣,該快取資料訓練順序將該獲取的扇區資料順序儲存在該第一記憶體種類內或該第二記憶體種類內,而將該非揮發性副本順序儲存在該第三記憶體種類內。
仍根據本發明又一具體實施例,提供一種方法,用於實施一調適性記憶體系統的一單一控制器之一資料前瞻快取法。調適性記憶體系統包含一單一控制器;一第一記憶體種類;一第二記憶體種類;一第三記憶體種類;一內部匯流排系統;以及一外部匯流排介面。該方法一般包含四個步驟:(i)從在一外部計算裝置上運行的一應用程式獲取扇區資料順序;(ii)將該獲取的扇區資料順序與複數個先前儲存的扇區資料順序做比較,判斷是否有高可能性匹配;(iii)若判斷該獲取的扇區資料順序與複數個先前儲存的扇區資料順序有高可能性匹配,則將該判斷的高可能性匹配資料快取到至少該第一 記憶體種類;以及(iv)若判斷該獲取的扇區資料順序與複數個先前儲存的扇區資料順序未有高可能性匹配,則判斷是否可從該複數個先前儲存的扇區資料順序中選擇一最可能的扇區資料順序。
10‧‧‧調適性記憶體系統
12‧‧‧AMS控制器
14‧‧‧靜態隨機存取記憶體
16‧‧‧動態隨機存取記憶體
18‧‧‧快閃記憶體
20‧‧‧內部匯流排系統
22‧‧‧外部匯流排介面
24‧‧‧擴充DRAM匯流排
26‧‧‧擴充快閃匯流排
28‧‧‧擴充匯流排介面
30‧‧‧MCP記憶體裝置
32‧‧‧RAM記憶體組件
34‧‧‧RAM記憶體組件
36‧‧‧快閃記憶體組件
38‧‧‧RAM介面
39‧‧‧快閃介面
40‧‧‧外部計算裝置
42‧‧‧快閃控制器
44‧‧‧RAM控制器
46‧‧‧外部快閃匯流排
48‧‧‧RAM雙資料率匯流排
50‧‧‧AMS檔案系統分割
52‧‧‧FAT檔案系統分割
54‧‧‧內嵌式SRAM/DRAM/快閃可安裝檔案系統分割
56‧‧‧裝置組態分割
60‧‧‧AMS控制器
62‧‧‧SRAM
64‧‧‧開機碼資料區塊
66‧‧‧程式碼
68‧‧‧應用程式資料
70‧‧‧程式資料
72‧‧‧DRAM快取
74‧‧‧程式碼
76‧‧‧應用程式資料
78‧‧‧程式資料
80‧‧‧快閃
93‧‧‧扇區資料順序
113‧‧‧扇區資料順序
116‧‧‧扇區資料順序
122‧‧‧扇區資料順序
127‧‧‧應用程式扇區資料順序
136‧‧‧扇區資料順序
138‧‧‧AMS控制器
140‧‧‧SRAM內部記憶體介面
142‧‧‧DRAM DDR內部記憶體介面
144‧‧‧快閃內部記憶體介面
146‧‧‧RAM外部處理器介面
148‧‧‧DDR外部處理器介面
參考上述實施方式以及附圖,將會更清楚了解到本發明的上述態樣和許多伴隨的優點,其中:第1圖為根據本發明一個具體實施例的調適性記憶體系統(AMS,“Adaptive Memory System”)區塊圖:第2圖為說明根據先前技術傳統記憶體系統與外部計算裝置介面相接的區塊圖;第3圖為根據本發明一個具體實施例的AMS檔案系統分割之區塊圖;第4圖為說明根據本發明一個具體實施例在AMS記憶體組件與處理器之間利用AMS控制器幫助的詳細資料流程之區塊圖;第5圖為用於AMS控制器的狀態機械圖,說明根據本發明一個具體實施例在不同操作處理階段上的資料流轉變;第6圖為說明根據本發明一個具體實施例,用於填滿AMS SRAM以及DRAM快取部分的AMS控制器快取資料前瞻法之流程圖;第7圖為說明根據本發明一個具體實施例,與AMS控制器快取資料前瞻法相關的訓練順序之流程圖; 第8圖為說明根據本發明一個具體實施例,與AMS控制器快取資料前瞻法相關的調整順序之流程圖;第9圖為說明根據本發明一個具體實施例,AMS控制器的資料流與相關頻寬配置之區塊圖。
本發明係關於調適性記憶體系統(AMS),其包括揮發性與非揮發性記憶體組件以及控制器組件,該系統經組態以管理記憶體組件之間以及記憶體組件與外部計算裝置之間的資料傳輸。記憶體組件以及控制器組件,在此通稱為AMS組件,具體實施一種多晶片封裝積體電路(MCP,“Multi-Chip Package”),其可配置設計成可插拔至任何傳統個人計算裝置,像是桌上型PC、膝上型PC、行動電話、PDA或超行動PC。本發明進一步關於利用AMS控制器組件實施的資料傳輸控制法,其可提升和AMS與外部計算裝置之間資料傳輸相關的整體效能。
根據一個具體實施例,如第1圖內所說明,AMS 10包含多種AMS記憶體組件,包含:靜態隨機存取記憶體(SRAM)14、動態隨機存取記憶體(DRAM)16以及快閃記憶體18。吾人應瞭解,本具體實施例的記憶體組件種類僅為可在AMS內作用的記憶體種類之範例,並且本發明並不受限於本具體實施例內所使用的明確記憶體種類。AMS控制器組件(或簡稱為「控制器」)12經組態以透過內部匯流排系統20與SRAM、DRAM和快閃記憶體組件通訊,並且透過外部匯流排介面22與外部記算裝置(未顯示)通訊。此配置允許AMS控制器12 完全管理記憶體組件之間的資料流,與外部計算裝置無關。
在包括類似記憶體組件種類的傳統MCP記憶體裝置內,如第2圖內所示,快閃記憶體資料傳輸的控制發生在外部計算裝置上。例如:當應用程式在外部計算裝置上執行並且應用程式資料需要在MCP記憶體裝置30的快閃記憶體組件36與RAM記憶體組件32、34之間傳輸(例如當快取應用程式分頁資料時),外部計算裝置40的處理器使用積體快閃控制器42控制快閃資料的傳輸。在此系統內,可傳輸的快閃資料必須由外部計算裝置的處理器40從MCP記憶體裝置的快閃記憶體組件36繞送通過快閃介面39和外部快閃匯流排46,並且往回通過RAM雙資料率(DDR,“Double-data rate”)匯流排48和RAM介面38至MCP記憶體裝置的RAM記憶體組件32、34。此資料繞送法對於在相同MCP記憶體裝置上的非揮發性(例如快閃)與揮發性(例如RAM)記憶體組件之間傳輸(快取)而言沒有效率。
根據本發明許多具體實施例的AMS MCP技術,如第1圖內所說明的範例,借助於AMS快閃(18)與RAM(14、16)記憶體組件之間的直接記憶體存取(DMA,“Direct Memory Access”)改善這種無效率,而不需要使用到外部計算裝置的處理器。本發明的電路上AMS控制器12控制快閃記憶體組件18與RAM記憶體組件14、16之間的資料傳輸,如此快閃資料可透過內部匯流排系統20直接傳輸至所要的RAM記憶體組件位置14、16。因為此DMA資料傳輸控制法不需要使用到外部計算裝置的處理器,所以可有效減少使用 外部匯流排頻寬,其中該外部匯流排為AMS與外部計算裝置之間的匯流排。在此方式中,根據本發明的許多具體實施例,外部匯流排頻寬可以最佳化,讓外部計算裝置的處理器以更高速率從AMS記憶體組件讀取資料或將資料寫入AMS記憶體組件。進一步,相較於上面討論過的傳統傳輸法,AMS快閃記憶體組件18與AMS RAM記憶體組件14、16之間較短的實體DMA互連提供較低的寄生電容量。電路內過多的寄生電容量已知會在正常電路操作情況下降低頻寬、增強外界干擾的可能性並且增加耗電量。當資料在這些AMS記憶體組件之間重複傳輸時(例如當快取分頁資料時),本發明內達成的較短線路長度資料傳輸大幅節省電力。
將AMS記憶體組件資料傳輸控制與外部計算裝置處理器脫節的其他優點為,在出貨之前實際檔案管理功能性內嵌在AMS內。這讓外部計算裝置將AMS視為標準檔案系統。標準檔案系統可受到標準作業系統等級磁碟之支援,藉此免除在作業系統等級上維護特定快閃相關裝置磁碟之需求。AMS的自給式快閃驅動程式軟體包括在第3圖所示的AMS檔案系統分割50之內嵌式SRAM/DRAM/快閃可安裝檔案系統分割54內。具體實施例內說明其他AMS檔案系統分割,包含標準FAT檔案系統分割52以及內含開機分割以及快閃介面資料的裝置組態分割56。內嵌式快閃驅動程式軟體在與作業系統整合時並不需要進行額外的測試,此獨立的記憶體驅動程式控制具有讓AMS被幾乎所有作業系統都能認得的優點,而不需要在外部計算裝置上額外安裝特殊記憶體驅動 程式軟體。
AMS控制器12可另經組態以利用選擇性禁止電源流向AMS SRAM和DRAM揮發性記憶體組件14、16的部份,來將耗電量降至最低。這種省電技術較佳,如業界內所知,因為SRAM和DRAM揮發性記憶體種類需要耗電來維持或更新保存在其個別記憶體區域部分內的現有資料。為了將AMS內的耗電量降至最低,在本發明的許多示例性具體實施例內,控制器12監視RAM記憶體組件來偵測SRAM或DRAM 14、16部分何時沒有排定寫入並且不準備保存資料。在偵測到RAM未啟動的部分時,控制器12關閉未啟動的SRAM或DRAM 14、16部分電源,來降低耗電量。在此方式中,從AMS裝置內可省下可觀的電力,而不需要來自外部計算裝置處理器的任何輸入。
根據本發明的許多示例性具體實施例,像是第1圖內所見的AMS經組態以當成高速調適性快取來使用,其中部分SRAM 14當成L1和L2快取分割,並且部分DRAM 16當成L3快取分割。高速快取可與外部計算裝置的現有快取系統連接操作,以調適地增強資料儲存以及擷取用於組合的系統。AMS整合快取較佳用於資料傳輸以及關於運作的資料儲存,如:開機碼鏡射、程式資料、程式碼以及應用程式資料。用於這種功能的快取大小與等級會根據組態設定以及所需的效能度量動態配置。
開機碼鏡射與程式碼
開機碼從快閃18複製到SRAM快取14,以便迅速 啟動裝置處理器。這代表初次使用SRAM快取14。額外程式碼被識別為向快閃18請求的資料。根據配置的快取大小以及可用性,此額外程式碼可複製到SRAM或DRAM快取14、16。較佳是在DRAM快取16之前填滿SRAM快取14,因為需要持續更新DRAM資料,所以使用DRAM快取比使用SRAM快取更耗電。
詳細資料流與分割
第4圖說明根據本發明一個具體實施例在AMS記憶體組件與AMS控制器60之間傳輸資料。在此圖式中,快閃資料的分散區塊稱之為「分頁」。這些資料分頁一開始從快閃80傳輸至SRAM 62,如路徑P1所示。然後分頁分在一起並且透過路徑P2快取來建立開機碼資料區塊64,然後透過路徑P3傳輸至控制器60。針對初始程序或開機的部分,控制器60會將DRAM快取72經組態以允許包含DRAM存取的正常操作。然後控制器60使用透過路徑P5從SRAM快取62傳輸來的程式碼66來操作,該程式碼原來從快取80透過路徑P1傳送至SRAM資料分頁並透過路徑P4快取而來。當超出SRAM快取62的容量限制時,需要快取的額外程式碼分頁會透過路徑P6從SRAM快取62傳輸至DRAM快取72,或若判斷SRAM快取62已滿並且額外分頁並未存在於SRAM快取62內,則會透過路徑P7將分頁從快閃80直接傳輸至DRAM72。然後控制器60透過路徑P12存取來執行儲存在DRAM快取72內的程式碼74。
程式資料與應用程式資料
程式與應用程式資料從內部匯流排系統20(請參閱第1圖)填入AMS記憶體空間。如第4圖內所示,控制器60可使用路徑P10、P11、P14和P13存取SRAM或DRAM快取62、72內的應用程式資料或程式資料68、70、76和78之區塊。若要將應用程式資料委託至快閃80內,資訊分頁必須先在SRAM或DRAM快取62、72內組合。當已經確認內容,則控制器60指示要「委託」至快閃80的分頁。這由路徑P15「委託」以及路徑P16「委託」所指示。然後使用路徑P1將委託的分頁寫入快閃80。控制器60也可請求在SRAM與DRAM區塊68、76之間傳輸應用程式資料。依照請求,傳輸會排定時間並如路徑P8和P9所指示執行。
控制器邏輯與資料流
根據本發明許多示例性具體實施例,AMS控制器邏輯的演算功能經組態以執行下列:
1.用於動態配置部分SRAM和DRAM致力於快取分頁資料,並且根據啟發、預組態設定以及歷史記憶體存取資訊調整這種配置,這些配置儲存在快閃記憶體內。包含來自處理器請求從AMS記憶體組件讀取與將資料寫入至AMS記憶體組件的配置請求以及DMA傳輸請求。第5圖內顯示記憶體配置演算法的實施以及相關表格:底下的表1和表2。
2.使用第6-8圖內說明的資料前瞻法,用從其他記憶體區塊鏡射來的資料填入部分SRAM和DRAM快取。此資料配置使用可調整的資料匯流排寬,並發生在決定將耗電量降至最低的速率上。
3.用於將未寫入並且判斷不使用的部分揮發性SRAM和DRAM快取之電源關閉。一開始,這些記憶體組件標示為未寫入,並且每一記憶體部分都只有在請求用於快取資料時才開啟電源。
第5圖說明在靜態機器形式下的AMS控制器資料流圖式。表1列出對應的靜態定義並且表2列出與資料流圖式相關的對應靜態轉換。
AMS控制器資料前瞻快取法設計來預測外部計算裝置的處理器將起始什麼特定資料請求。屬於所預測資料請求的特定程式碼或資料可事先載入高速記憶體裝置內(即是將其快取),讓處理器提出請求類似程式碼或資料時可迅速擷取。
第6圖說明執行此資料前瞻法來用扇區資料順序填入部分AMS SRAM和DRAM快取14、16內。資料扇區為作業系統可定址的最小資料區塊,通常是512位元組。扇區資料順序93為用長度表現特徵的專屬扇區資料順序集合。本發明的前瞻快取法可用預測的快取資料順序預先載入部分L1和 L2 SRAM快取14以及部分L3 DRAM快取16,其在底下說明的區塊96、102內透過比較歷史快取資料與執行時間應用程式資料來選擇決定。
在應用程式在外部計算裝置上執行時,如區塊90、92內所示,所獲取的應用程式扇區資料93之順序與之前儲存的每一扇區資料之順序比較,如在區塊94、96內,以決定區塊98內可否發現高可能性匹配。底下將詳細說明發現高可能性匹配。若經過比較判斷每一儲存的順序都有這種高可能性匹配(在98上為是),則該之前儲存的順序匹配將用旗標標示為高可能性匹配,並且根據較佳SRAM快取是否準備填充,在區塊104內事先載入SRAM或DRAM快取。這種高可能性匹配的決定係根據高可能性閥值(或高可能性匹配(HPM,“High-probability match”)值),其會針對所獲取應用程式扇區資料93的特定順序與之前所儲存每一扇區資料的順序之間決定之差異值進行測量,如區塊94、100內所示。在一個具體實施例內,高可能性閥值係關於所獲取應用程式順序與之前儲存順序之間匹配順序扇區之百分比值(即是90-95%)。在這種具體實施例內,所決定的差異值也應關於百分比值,以幫助百分比比較。若任何之前儲存的扇區資料順序之所決定差異值小於高可能性閥值,並且也小於所獲取應用程式扇區資料相同順序的任何其他之前儲存扇區資料順序之所決定差異值(在98上為是),則決定之前儲存的扇區資料順序為與所獲取應用程式扇區資料93特定順序相關之高可能性匹配。
然而,若無法決定高可能性匹配(在區塊98上為 否),則因為沒有之前儲存的扇區資料順序具有低於高可能性閥值之所決定差異值,則在區塊102內將最低決定差異值與較低精確最可能順序閥值(或最可能順序匹配(MLSM,“Most-likely sequence match”)值)做比較。在一個具體實施例內,最可能順序閥值也關於所獲取應用程式順序與之前儲存順序之間匹配順序扇區之百分比值(即是70-75%)。在這種具體實施例內,所決定的差異值也應關於百分比值,以幫助百分比比較。當測量出最低決定差異值高於高可能性閥值,但是低於最可能順序閥值(在98上為否並且在102上為是),則判斷之前儲存的扇區資料順序為與所獲取的應用程式扇區資料特定順序相關之最可能順序匹配。在此情況下,當已判斷最可能順序匹配(在102上為是),則該相關的之前儲存順序匹配將用旗標標示為最可能順序匹配,並且根據較佳SRAM快取14是否準備填充,在區塊104內事先載入SRAM或DRAM快取內。
運用較低精確度最可能順序匹配,該順序可另用旗標標示重新調整,這將在底下參閱第8圖做說明。需要重新調整由識別為最可能順序匹配之順序的重複情況所特別指示,而這些順序最有可能是調整所需(即是扇區資料的重新排序)。
若無法決定最可能順序匹配(在102上為否),則因為並無之前儲存的扇區資料順序具有低於最可能順序閥值的所決定差異值,AMS控制器12會根據誤差決定的可能性,在區塊106內判斷是否應該儲存應用程式扇區資料的特定獲取 順序。若在區塊106上為否,則實施重新測試比較。若在區塊106上為是,則利用起始快取訓練順序將應用程式扇區資料的特定獲取順序應事先載入至快取內,這將在底下參閱第7圖詳細說明。
第7圖說明執行AMS控制器快取資料前瞻訓練順序,用從在外部計算裝置上執行的應用程式所獲取扇區資料113之特定順序填入部分AMS SRAM和DRAM快取14、16內,如區塊110、112內所示。在應用程式扇區資料順序完成載入、逾時或超出預定大小限制之後,如區塊114內所見,訓練順序會進程至順序資料縮減區塊118,然後在區塊120內快取資料儲存用於之前記錄的扇區資料順序116、122。在順序資料儲存120至揮發性SRAM 14或DRAM 16快取之時,AMS控制器另傳送用於快取指派的順序資料副本至非揮發性快閃,當成備份資料儲存裝置。藉由使用包括排序的扇區資料範圍之順序取代未排序的扇區資料順序,來實施區塊118內的資料縮減。此縮減建立更有效率的快取儲存以及擷取機制。
第8圖說明執行AMS控制器快取資料前瞻調整順序來調整部分AMS SRAM和DRAM快取14、16,如此將現有的已儲存扇區資料順序136與獲取的應用程式扇區資料順序127做比較,如區塊124、126、128和130內所示。接著在區塊132內將結果未排序的扇區資料順序調整成有排序的扇區資料順序,並且在區塊134內儲存當成有排序的順序136之範圍。若初次執行調整順序未有效淨化所有扇區資料順序的 排序,則將重複調整順序。
第9圖說明根據本發明一個具體實施例中AMS控制器的資料流與相關頻寬配置。在此具體實施例內,AMS控制器138包括SRAM內部記憶體介面140、DRAMDDR內部記憶體介面142和快閃內部記憶體介面144以及RAM外部處理器介面146和DDR外部處理器介面148。這些組合的控制器介面140、142、144、146和148具有顯著大於外部計算裝置處理器匯流排介面(未顯示)頻寬的總匯流排頻寬。這些超出的匯流排資料傳輸能力允許AMS控制器138直接在記憶體裝置(DMA)之間傳輸快取資料,並且同時允許外部計算裝置的處理器分別存取來自AMS記憶體組件的資料。此交錯資料傳輸的優點在於可讓AMS控制器138以增快的總資料傳輸率來操作。
每一AMS記憶體組件裝置種類(SRAM 14、DRAM 16和快閃18)的實體匯流排都可根據每一實施記憶體組件的特定大小與容量特性,經組態以相同基數或相同基數的倍數。第9圖顯示內部介面組件140、142和144的內部匯流排頻寬與外部處理器介面組件146、148之外部匯流排頻寬之間4:1差異的範例,其中N=4,並且相同的匯流排組態用於SRAM,其中L=4,並且用於快閃,其中M=4。
當外部計算裝置的處理器透過兩分開的內部資料匯流排B1和B2存取DRAM記憶體時,就可運用AMS控制器138超出的匯流排容量。此交錯存取允許由兩不同的內部DRAM資料匯流排B1、B2交互提供來自連續DRAM位址之 快取資料。此平行的DRAM資料傳輸允許以比內部匯流排還要快的資料傳輸率來操作DDR外部處理器匯流排。與此存取的同時,可使用資料匯流排B3、B4在快閃18與SRAM或DRAM記憶體裝置14、16之間發生DMA資料傳輸。
吾人應瞭解,由於實際內部與外部匯流排實施之間潛在設定與循環次數不同,因此實際匯流排頻寬差異與理論的4:1係數不同。內部匯流排支援多種匯流排傳輸通訊協定,如此有可能不會反映出外部處理器匯流排所使用相同的通訊協定。例如:DDR外部處理器通訊協定所使用的版本與設定可能與內部匯流排通訊協定所使用的不同。
如該技藝內所熟知,一種增加資料傳輸率(通常以每秒百萬位元組來測量)用於將資料寫入非揮發性記憶體(例如快閃)或從中讀取資料之方法為同時讀取或寫入資料至多個記憶體組件。運用這種平行資料傳輸法,可運用多個組件盡可能有效傳輸大資料區塊。
吾人進一步希望幫助計算裝置的作業系統盡可能具有小讀取-寫入資料單元大小。運用較小的最小單元大小(即是資料扇區,大約512位元組)避免在讀取或寫入較小件資料時非必要地浪費記憶體儲存空間。例如:當檔案目錄資訊用非常小件資訊編碼時。進一步,運用較小資料單元也可避免會磨損已知記錄媒體的非必要寫入操作。
不幸的是,達成更快速資料傳輸率與更小扇區大小的兩個目的通常互相衝突。因此想要一種增加資料傳輸率同時維持較小資料單元的裝置。此外,吾人想要同時達成耗電 量最低並且MCP組件之間互連最少。
如第9圖內所示,AMS控制器38包含多個非揮發性組件介面144(例如快閃介面)。這些多個介面幫助同時從多個非揮發性組件讀取或寫入其中,藉此增加讀取與寫入資料傳輸率至單一非揮發性裝置的多個組件。不幸的是,這會在儲存較小資料區塊時導入存在的缺點。若要克服此缺點,本發明的獨立非揮發性快閃介面144包含在單一讀取或寫入操作期間啟用每一個別快閃組件的特徵。多種達成此啟用或停用組件目標的技術可實現。第一項技術為使用個別啟用信號給每一非揮發性組件。此技術具有利用在已知讀取或寫入操作期間停用不使用裝置來將耗電量降至最低之優點。第二項技術為修改已知寫入操作期間使用的位址。
如技藝內所熟知,像是快閃這類非揮發性儲存裝置具有特定位址位置已知失效,如此無法用於儲存資訊。運用第二項技術,不想寫入的個別組件之位址位置會設定為已知失效的位置。超出的寫入操作並不會破壞有效儲存的資訊,因為此位址位置已經標示為失效,並且將無法從此位置擷取資訊。進一步不需要另外連接至組件,因為已經需要位址資訊來呈現至正常操作的組件。如此達成寫入至組件子集的目標,並不需要控制器與非揮發性儲存組件之間其他連接成本。
用於AMS的其他介面
如第1圖內所示,在本發明的一個具體實施例內,AMS MCP積體電路設計成包含一個擴充快閃匯流排26以及一個擴充DRAM匯流排24,與其他DRAM和快閃記憶體組 件耦合。如精通此技藝的人士所瞭解,其他DRAM和快閃記憶體組件應經組態以與現有AMS檔案系統分割50(請參閱第3圖)的內嵌式SRAM/DRAM/快閃可安裝檔案系統54內所呈現之現有驅動程式軟體一起運作。否則,其他DRAM或快閃記憶體組件應需要更新現有AMS記憶體組件驅動程式,如此可在安裝時避免無法預期的錯誤。
進一步來說,在本發明的一個具體實施例內,AMS MCP積體電路設計成包含一個擴充匯流排介面28(如第1圖內所示),藉此控制器可透過擴充匯流排與次要計算裝置通訊。為了方便與清晰起見,所以顯示擴充匯流排介面28獨立於擴充DRAM匯流排24與擴充快閃匯流排26之外,不過吾人應瞭解擴充匯流排介面28可經組態以併入擴充DRAM匯流排24或擴充快閃匯流排26,來減少AMS控制器接腳數量。擴充匯流排介面28有效允許AMS控制器同時與多個外部計算裝置通訊並傳輸儲存的資料。
如上述,吾人也應瞭解,本具體實施例的SRAM 14、DRAM 16和快閃18記憶體組件(說明於第1圖內)僅為可在AMS內作用的記憶體種類之範例,並且本發明並不受限於本具體實施例內所使用的明確記憶體種類。同時存在其他技術,其提供與上列記憶體種類類似的特性與功能性。例如:SRAM 14的實施應用虛擬SRAM(PSRAM,“Pseudo SRAM”)來取代、DRAM 16的實施應用一種零電容RAM(ZRAM,“Zero Capacitor RAM”)或用雙電晶體RAM(TTRAM,“Twin Transistor RAM”)來取代;以及快閃18的 實施應特別指定為NAND或NOR型快閃,或可用一種相位變更記憶體(PCM,“Phase Change Memory”,PRAM)來取代。請瞭解上面的替代記憶體組件種類清單並不完整,有許多其他變化可以實施,而仍舊允許本發明如上述來運作。
本發明具體實施例中專屬特性或特權主張定義如下附申請專利範圍。
60‧‧‧AMS控制器
62‧‧‧SRAM
64‧‧‧開機碼資料區塊
66‧‧‧程式碼
68‧‧‧應用程式資料
70‧‧‧程式資料
72‧‧‧DRAM快取
74‧‧‧程式碼
76‧‧‧應用程式資料
78‧‧‧程式資料
80‧‧‧快閃

Claims (35)

  1. 一種有形可觸及的電腦可讀取媒體,該電腦可讀取媒體上儲存有電腦可執行指令,該等電腦可執行指令在由一調適性記憶體系統的一單一控制器執行時,使該單一控制器執行用於實施一資料前瞻訓練順序(data look-ahead training sequence)的步驟;其中該調適性記憶體系統包含為一第一記憶體種類的一第一記憶體、為一第二記憶體種類的一第二記憶體、為一第三記憶體種類的一第三記憶體、一內部匯流排系統、以及一外部匯流排介面;且其中該等步驟包含以下步驟:從由一外部計算裝置執行的一應用程式,獲取一或更多個扇區資料順序(sequences of sector data);對該一或更多個扇區資料順序執行資料縮減,以產生經過縮減的順序資料;以及在該第一記憶體或該第二記憶體中儲存該等經過縮減的順序資料。
  2. 如請求項1所述之電腦可讀取媒體,其中該等步驟進一步包含以下步驟:將該順序資料的一副本,儲存至作為一備份資料儲存裝置的該第三記憶體。
  3. 如請求項1所述之電腦可讀取媒體,其中對該一或更多 個扇區資料順序執行資料縮減之步驟包含以下步驟:以包含經過排序之扇區資料範圍的順序,取代未經排序之扇區資料順序。
  4. 如請求項1所述之電腦可讀取媒體,其中執行資料縮減之步驟,係回應於判斷出該一或更多個扇區資料順序已完成載入、逾時或超出一預定大小限制而執行。
  5. 如請求項1所述之電腦可讀取媒體,其中該第一記憶體種類與該第二記憶體種類為揮發性記憶體種類,且其中該第三記憶體種類為一非揮發性記憶體種類。
  6. 如請求項5所述之電腦可讀取媒體,其中該第一記憶體種類為靜態隨機存取記憶體(SRAM)、該第二記憶體種類為動態隨機存取記憶體(DRAM)而該第三記憶體種類為快閃記憶體。
  7. 一種用於實施一調適性記憶體系統的一單一控制器的一資料前瞻訓練順序的方法;其中該調適性記憶體系統包含為一第一記憶體種類的一第一記憶體、為一第二記憶體種類的一第二記憶體、為一第三記憶體種類的一第三記憶體、一內部匯流排系統、以及一外部匯流排介面; 該方法包含以下步驟:從由一外部計算裝置執行的一應用程式,獲取一或更多個扇區資料順序;對該一或更多個扇區資料順序執行資料縮減,以產生經過縮減的順序資料;以及在該第一記憶體或該第二記憶體中,儲存該等經過縮減的順序資料。
  8. 如請求項7所述之方法,該方法進一步包含以下步驟:將該順序資料的一副本,儲存至作為一備份資料儲存裝置的該第三記憶體。
  9. 如請求項7所述之方法,其中對該一或更多個扇區資料順序執行資料縮減之步驟包含以下步驟:以包含經過排序之扇區資料範圍的順序,取代未經排序之扇區資料順序。
  10. 如請求項7所述之方法,其中執行資料縮減之步驟,係回應於判斷出該一或更多個扇區資料順序已完成載入、逾時或超出一預定大小限制而執行。
  11. 如請求項7所述之方法,其中該第一記憶體種類與該第 二記憶體種類為揮發性記憶體種類,且其中該第三記憶體種類為一非揮發性記憶體種類。
  12. 如請求項11所述之方法,其中該第一記憶體種類為靜態隨機存取記憶體(SRAM)、該第二記憶體種類為動態隨機存取記憶體(DRAM)而該第三記憶體種類為快閃記憶體。
  13. 一種調適性記憶體系統,該調適性記憶體系統包含為一第一記憶體種類的一第一記憶體、為一第二記憶體種類的一第二記憶體、為一第三記憶體種類的一第三記憶體、一內部匯流排系統、一外部匯流排介面、以及一單一控制器,其中該單一控制器經組態以執行用於實施一資料前瞻訓練順序的步驟;其中該等步驟包含:從由一外部計算裝置執行的一應用程式,獲取一或更多個扇區資料順序;對該一或更多個扇區資料順序執行資料縮減,以產生經過縮減的順序資料;以及在該第一記憶體或該第二記憶體中,儲存該等經過縮減的順序資料。
  14. 如請求項13所述之調適性記憶體系統,其中該等步驟進一步包含以下步驟:將該順序資料的一副本,儲存至作 為一備份資料儲存裝置的該第三記憶體。
  15. 如請求項13所述之調適性記憶體系統,其中對該一或更多個扇區資料順序執行資料縮減之步驟,包含以下步驟:以包含經過排序之扇區資料範圍的順序,取代未經排序之扇區資料順序。
  16. 如請求項13所述之調適性記憶體系統,其中執行資料縮減之步驟,係回應於判斷出該一或更多個扇區資料順序已完成載入、逾時或超出一預定大小限制而執行。
  17. 如請求項13所述之調適性記憶體系統,其中該第一記憶體種類與該第二記憶體種類為揮發性記憶體種類,且其中該第三記憶體種類為一非揮發性記憶體種類。
  18. 如請求項17所述之調適性記憶體系統,其中該第一記憶體種類為靜態隨機存取記憶體(SRAM)、該第二記憶體種類為動態隨機存取記憶體(DRAM)且該第三記憶體種類為快閃記憶體。
  19. 一種用於改善一外部計算裝置效能的調適性記憶體系統,其中該調適性記憶體系統包含: 一單一控制器;一第一記憶體種類;一第二記憶體種類;一第三記憶體種類;一內部匯流排系統;以及一外部匯流排介面;其中該單一控制器係經由該內部匯流排系統通訊耦合至該第一記憶體種類、該第二記憶體種類以及該第三記憶體種類:其中該單一控制器係經由該外部匯流排介面通訊耦合至該外部計算裝置;其中該單一控制器將該內部匯流排系統與該外部匯流排介面分開;以及其中該單一控制器經組態以:使用該內部匯流排系統與所有三記憶體種類進行通訊;以及使用該外部匯流排介面與該外部計算裝置進行通訊。
  20. 如請求項19所述之調適性記憶體系統,其中該第一記憶體種類為靜態隨機存取記憶體(SRAM)、該第二記憶體種類為動態隨機存取記憶體(DRAM)而該第三記憶體種類 為快閃記憶體。
  21. 如請求項20所述之調適性記憶體系統,其中該單一控制器另經組態以:從該SRAM或該快閃記憶體將快取資料傳輸至該DRAM;其中若該快取資料存在於該SRAM內,則從該SRAM傳輸該快取資料至該DRAM;以及其中若該快取資料未存在於該SRAM內,並且存在於該快閃記憶體內,則從該快閃記憶體傳輸該快取資料至該DRAM。
  22. 如請求項20所述之調適性記憶體系統,其中該單一控制器另經組態以:根據一資料前瞻架構(data look-ahead scheme),從該快閃記憶體快取資料至該SRAM和DRAM。
  23. 如請求項19所述之調適性記憶體系統,其中該第一和第二記憶體種類為不同的揮發性記憶體種類並且該第三記憶體種類為一非揮發性記憶體種類;以及其中該單一控制器另經組態以:將該第一和第二記憶體種類中尚未被寫入的部分的 電源關閉,以將耗電量降至最低。
  24. 如請求項19所述之調適性記憶體系統,其中該第一和第二記憶體種類為不同揮發性記憶體種類並且該第三記憶體種類為一非揮發性記憶體種類;以及其中該單一控制器另經組態以包含:至少一擴充記憶體匯流排,該至少一擴充記憶體匯流排用於與一外部記憶體進行通訊來擴充記憶體的可用容量。
  25. 如請求項19所述之調適性記憶體系統,其中該第一和第二記憶體種類為不同揮發性記憶體種類並且該第三記憶體種類為一非揮發性記憶體種類;以及其中該單一控制器另經組態以包含:至少一擴充記憶體介面,該至少一擴充記憶體介面用於與一次要外部計算裝置進行通訊。
  26. 如請求項19所述之調適性記憶體系統,其中該第一和第二記憶體種類為不同揮發性記憶體種類並且該第三記憶體種類為包括多個組件的一非揮發性記憶體種類;以及其中該單一控制器另經組態以:選擇性啟用該等多個組件之一或更多者;以及 選擇性停用該等多個組件之一或更多者。
  27. 如請求項26所述之調適性記憶體系統,其中該單一控制器經進一步組態以利用傳送啟用信號至該些欲啟用的組件,來選擇性啟用該等多個組件中之一或更多者。
  28. 如請求項26所述之調適性記憶體系統,其中該單一控制器經進一步組態以利用設定該些欲停用的組件之位址位置至已知失效的位址位置,來選擇性停用該等多個組件中之一或更多者。
  29. 如請求項19所述之調適性記憶體系統,其中該單一控制器經組態以藉由以下步驟實施一資料前瞻快取架構:從在一外部計算裝置上運行的一應用程式獲取一扇區資料順序,其中該扇區資料順序指示被要求資料的一扇區順序,且其中被要求資料的該扇區順序係被任意排序;將該獲取的扇區資料順序與複數個先前儲存的扇區資料順序做比較,判斷是否有高可能性匹配;若判斷該獲取的扇區資料順序與複數個先前儲存的扇區資料順序之間有高可能性匹配,則以該判斷的高可能性匹配快取至少該第一記憶體種類;以及 若判斷該獲取的扇區資料順序與複數個先前儲存的扇區資料順序未有高可能性匹配,則判斷是否可從該等複數個先前儲存的扇區資料順序中選擇一最可能的扇區資料順序。
  30. 如請求項29所述之調適性記憶體系統,其中該單一控制器另經組態以藉由以下步驟實施該資料前瞻快取架構:若可選擇一最可能的扇區資料順序,則將一所選擇之最可能的扇區資料順序快取至該第一記憶體種類內或該第二記憶體種類內;以及若無法選擇一最可能的扇區資料順序,則開始一快取資料訓練順序。
  31. 如請求項30所述之調適性記憶體系統,其中該快取資料訓練順序將該獲取的扇區資料順序儲存在該第一記憶體種類內或該第二記憶體種類內,而該順序的一非揮發性副本被儲存在該第三記憶體種類內。
  32. 如請求項19所述之調適性記憶體系統,其中該單一控制器另經組態以藉由以下步驟實施一資料前瞻訓練順序:從由一外部計算裝置執行的一應用程式,獲取一或更多個扇區資料順序; 對該一或更多個扇區資料順序執行資料縮減,以產生經過縮減的順序資料;以及在該第一記憶體或該第二記憶體中,儲存該等經過縮減的順序資料。
  33. 如請求項32所述之調適性記憶體系統,其中該單一控制器另經組態,以藉由將該順序資料的一副本儲存至作為一備份資料儲存裝置的該第三記憶體,來實施該資料前瞻訓練順序。
  34. 如請求項32所述之調適性記憶體系統,其中對該一或更多個扇區資料順序執行資料縮減包含:以包含經過排序之扇區資料範圍的順序,取代未經排序之扇區資料順序。
  35. 如請求項32所述之調適性記憶體系統,其中執行資料縮減,係回應於判斷出該一或更多個扇區資料順序已完成載入、逾時或超出一預定大小限制而執行。
TW103133323A 2007-01-10 2008-01-10 用於改善外部計算裝置效能的調適性記憶體系統 TWI530791B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US88437807P 2007-01-10 2007-01-10

Publications (2)

Publication Number Publication Date
TW201523261A TW201523261A (zh) 2015-06-16
TWI530791B true TWI530791B (zh) 2016-04-21

Family

ID=39609376

Family Applications (2)

Application Number Title Priority Date Filing Date
TW103133323A TWI530791B (zh) 2007-01-10 2008-01-10 用於改善外部計算裝置效能的調適性記憶體系統
TW097101051A TWI463321B (zh) 2007-01-10 2008-01-10 用於改善外部計算裝置效能的調適性記憶體系統

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW097101051A TWI463321B (zh) 2007-01-10 2008-01-10 用於改善外部計算裝置效能的調適性記憶體系統

Country Status (7)

Country Link
US (4) US8135933B2 (zh)
EP (1) EP2122473B1 (zh)
KR (1) KR101469512B1 (zh)
CN (1) CN101611387B (zh)
HK (1) HK1140031A1 (zh)
TW (2) TWI530791B (zh)
WO (1) WO2008086488A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831393B2 (en) 2018-02-08 2020-11-10 Micron Technology, Inc. Partial save of memory

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009026296A (ja) * 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
IL187044A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Fast secure boot implementation
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8533504B2 (en) * 2008-05-29 2013-09-10 International Business Machines Corporation Reducing power consumption during execution of an application on a plurality of compute nodes
US8195967B2 (en) * 2008-05-29 2012-06-05 International Business Machines Corporation Reducing power consumption during execution of an application on a plurality of compute nodes
US8095811B2 (en) * 2008-05-29 2012-01-10 International Business Machines Corporation Reducing power consumption while synchronizing a plurality of compute nodes during execution of a parallel application
US20090300399A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Profiling power consumption of a plurality of compute nodes while processing an application
US8458722B2 (en) 2008-06-09 2013-06-04 International Business Machines Corporation Thread selection according to predefined power characteristics during context switching on compute nodes
US8296590B2 (en) 2008-06-09 2012-10-23 International Business Machines Corporation Budget-based power consumption for application execution on a plurality of compute nodes
US8291427B2 (en) * 2008-06-09 2012-10-16 International Business Machines Corporation Scheduling applications for execution on a plurality of compute nodes of a parallel computer to manage temperature of the nodes during execution
US8250389B2 (en) * 2008-07-03 2012-08-21 International Business Machines Corporation Profiling an application for power consumption during execution on a plurality of compute nodes
US8069300B2 (en) 2008-09-30 2011-11-29 Micron Technology, Inc. Solid state storage device controller with expansion mode
JP2010165249A (ja) * 2009-01-16 2010-07-29 Sony Corp 情報処理装置、情報処理方法およびプログラム
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US20110128766A1 (en) * 2009-11-30 2011-06-02 Ward Parkinson Programmable Resistance Memory
US8914568B2 (en) 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
US8436720B2 (en) 2010-04-29 2013-05-07 International Business Machines Corporation Monitoring operating parameters in a distributed computing system with active messages
US8537618B2 (en) 2010-08-26 2013-09-17 Steven Jeffrey Grossman RAM memory device with NAND type interface
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
KR20120079682A (ko) * 2011-01-05 2012-07-13 삼성전자주식회사 디램 캐시를 포함하는 메모리 장치 및 이를 포함하는 시스템
US8725978B2 (en) 2011-06-30 2014-05-13 Red Hat, Inc. Using symbol information for categorization of dynamic memory allocations
US8719539B2 (en) * 2011-06-30 2014-05-06 Red Hat, Inc. Using heuristics for field types of a structure to categorize dynamic memory allocations
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US10096350B2 (en) * 2012-03-07 2018-10-09 Medtronic, Inc. Memory array with flash and random access memory and method therefor, reading data from the flash memory without storing the data in the random access memory
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US9317087B2 (en) 2012-04-26 2016-04-19 Ravindraraj Ramaraju Memory column drowsy control
US9026808B2 (en) * 2012-04-26 2015-05-05 Freescale Semiconductor, Inc. Memory with word level power gating
CN102722444A (zh) * 2012-05-23 2012-10-10 北京百纳威尔科技有限公司 扩展内部存储空间的方法、装置及终端
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US20130346673A1 (en) * 2012-06-25 2013-12-26 Yi-Chou Chen Method for improving flash memory storage device access
KR101975528B1 (ko) 2012-07-17 2019-05-07 삼성전자주식회사 패스트 어레이 영역을 갖는 반도체 메모리 셀 어레이 및 그것을 포함하는 반도체 메모리
US9128845B2 (en) 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
US9116820B2 (en) * 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US20140156252A1 (en) * 2012-11-30 2014-06-05 International Business Machines Corporation Hybrid platform-dependent simulation interface
CN103019624B (zh) * 2012-12-11 2015-07-15 清华大学 一种相变内存装置
CN103020551B (zh) * 2012-12-21 2015-12-02 清华大学 一种内存架构
WO2014107154A1 (en) * 2013-01-03 2014-07-10 Icelero Inc. System and method for host-processor communication over a bus
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9489204B2 (en) * 2013-03-15 2016-11-08 Qualcomm Incorporated Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process
GB2516435A (en) 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications
KR102070626B1 (ko) 2013-06-26 2020-01-30 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US10185515B2 (en) * 2013-09-03 2019-01-22 Qualcomm Incorporated Unified memory controller for heterogeneous memory on a multi-chip package
US9766823B2 (en) 2013-12-12 2017-09-19 Memory Technologies Llc Channel optimized storage modules
CN104166147A (zh) * 2014-01-08 2014-11-26 芜湖市振华戎科智能科技有限公司 基于北斗二和gps的双模芯片
US10191822B2 (en) * 2014-02-20 2019-01-29 Rambus Inc. High performance persistent memory
US9804979B2 (en) * 2014-12-29 2017-10-31 Sandisk Technologies Llc Ring bus architecture for use in a memory module
USD764620S1 (en) 2015-01-14 2016-08-23 Sig Sauer, Inc. Firearm
JP2016167215A (ja) 2015-03-10 2016-09-15 株式会社東芝 メモリ装置
US20180218317A1 (en) * 2015-03-25 2018-08-02 Joseph Marsh Ryan, III System and method for determining product movement using a sensor
US9720604B2 (en) 2015-08-06 2017-08-01 Sandisk Technologies Llc Block storage protocol to RAM bypass
CN106383775B (zh) * 2015-08-18 2019-03-08 上海景格科技股份有限公司 设备使用时间记录方法及其装置
TWI553478B (zh) * 2015-09-23 2016-10-11 瑞昱半導體股份有限公司 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置
US9904636B2 (en) * 2015-10-22 2018-02-27 John Boyd Modular ultra-wide internal bus mainframe processing units
US10430081B2 (en) * 2016-06-28 2019-10-01 Netapp, Inc. Methods for minimizing fragmentation in SSD within a storage system and devices thereof
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
KR102433549B1 (ko) 2017-11-17 2022-08-19 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
US11544168B2 (en) 2017-10-30 2023-01-03 SK Hynix Inc. Memory system
KR102414047B1 (ko) 2017-10-30 2022-06-29 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
KR20190085642A (ko) * 2018-01-11 2019-07-19 에스케이하이닉스 주식회사 메모리 시스템
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) * 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US11169920B2 (en) * 2018-09-17 2021-11-09 Micron Technology, Inc. Cache operations in a hybrid dual in-line memory module
JP2020047340A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 不揮発性メモリ及びメモリシステム
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US20210097184A1 (en) * 2019-09-27 2021-04-01 Advanced Micro Devices, Inc. Secure buffer for bootloader
CN111767508B (zh) * 2020-07-09 2024-02-23 地平线(上海)人工智能技术有限公司 计算机实现张量数据计算的方法、装置、介质和设备
KR20220053973A (ko) 2020-10-23 2022-05-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN116955241B (zh) * 2023-09-21 2024-01-05 杭州智灵瞳人工智能有限公司 兼容多类型存储介质的存储芯片
CN117519802A (zh) * 2024-01-08 2024-02-06 之江实验室 基于存算一体单元的数据处理装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459846A (en) * 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
EP0935255A2 (en) * 1989-04-13 1999-08-11 SanDisk Corporation Flash EEPROM system
JP2862948B2 (ja) * 1990-04-13 1999-03-03 三菱電機株式会社 半導体記憶装置
EP0552667B1 (en) * 1992-01-22 1999-04-21 Enhanced Memory Systems, Inc. Enhanced dram with embedded registers
JP3904244B2 (ja) * 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US6029224A (en) * 1995-06-07 2000-02-22 Lucent Technologies Inc. Self-contained memory apparatus having diverse types of memory and distributed control
US6230235B1 (en) * 1996-08-08 2001-05-08 Apache Systems, Inc. Address lookup DRAM aging
GB2317722B (en) * 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
US6212597B1 (en) 1997-07-28 2001-04-03 Neonet Lllc Apparatus for and method of architecturally enhancing the performance of a multi-port internally cached (AMPIC) DRAM array and like
US6336174B1 (en) * 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
JP3871853B2 (ja) 2000-05-26 2007-01-24 株式会社ルネサステクノロジ 半導体装置及びその動作方法
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
JP2003006041A (ja) 2001-06-20 2003-01-10 Hitachi Ltd 半導体装置
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
US7478031B2 (en) 2002-11-07 2009-01-13 Qst Holdings, Llc Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
WO2004049168A1 (ja) * 2002-11-28 2004-06-10 Renesas Technology Corp. メモリモジュール、メモリシステム、及び情報機器
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US20050050261A1 (en) * 2003-08-27 2005-03-03 Thomas Roehr High density flash memory with high speed cache data interface
US7657706B2 (en) * 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US20050220115A1 (en) 2004-04-06 2005-10-06 David Romano Method and apparatus for scheduling packets
US20060095622A1 (en) 2004-10-28 2006-05-04 Spansion, Llc System and method for improved memory performance in a mobile device
TWM286985U (en) * 2005-08-22 2006-02-01 Regulus Technologies Co Ltd Memory module with smart-type power-saving and fault-tolerance
US7376034B2 (en) * 2005-12-15 2008-05-20 Stec, Inc. Parallel data storage system
US20070143547A1 (en) * 2005-12-20 2007-06-21 Microsoft Corporation Predictive caching and lookup
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7996600B2 (en) * 2007-08-30 2011-08-09 Unity Semiconductor Corporation Memory emulation in an electronic organizer
US7802057B2 (en) * 2007-12-27 2010-09-21 Intel Corporation Priority aware selective cache allocation
US8108614B2 (en) * 2007-12-31 2012-01-31 Eric Sprangle Mechanism for effectively caching streaming and non-streaming data patterns
US8615499B2 (en) * 2012-01-27 2013-12-24 International Business Machines Corporation Estimating data reduction in storage systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831393B2 (en) 2018-02-08 2020-11-10 Micron Technology, Inc. Partial save of memory
TWI731302B (zh) * 2018-02-08 2021-06-21 美商美光科技公司 記憶體之部分儲存
US11579791B2 (en) 2018-02-08 2023-02-14 Micron Technology, Inc. Partial save of memory

Also Published As

Publication number Publication date
CN101611387A (zh) 2009-12-23
HK1140031A1 (en) 2010-09-30
EP2122473A2 (en) 2009-11-25
TWI463321B (zh) 2014-12-01
EP2122473B1 (en) 2012-12-05
US20120131269A1 (en) 2012-05-24
US20150074344A1 (en) 2015-03-12
US8504793B2 (en) 2013-08-06
US9424182B2 (en) 2016-08-23
US8135933B2 (en) 2012-03-13
CN101611387B (zh) 2013-03-13
KR20090108707A (ko) 2009-10-16
TW201523261A (zh) 2015-06-16
WO2008086488A3 (en) 2008-09-04
US8918618B2 (en) 2014-12-23
WO2008086488B1 (en) 2008-10-23
KR101469512B1 (ko) 2014-12-05
WO2008086488A2 (en) 2008-07-17
US20140013039A1 (en) 2014-01-09
EP2122473A4 (en) 2011-06-08
US20090024819A1 (en) 2009-01-22
TW200839519A (en) 2008-10-01

Similar Documents

Publication Publication Date Title
TWI530791B (zh) 用於改善外部計算裝置效能的調適性記憶體系統
CN111033477B (zh) 逻辑到物理映射
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
TWI457756B (zh) 記憶體系統及其操作方法
US20110231598A1 (en) Memory system and controller
US20150113212A1 (en) Information device equipped with cache memories, apparatus and program using the same device
CN107402889B (zh) 检索数据方法、存储数据方法和重复数据删除模块
JP2013137770A (ja) Lbaビットマップの使用
US8850115B2 (en) Memory package utilizing at least two types of memories
US20150032943A1 (en) Controller management of memory array of storage device using magnetic random access memory (mram)
US10846226B2 (en) System and method for prediction of random read commands in virtualized multi-queue memory systems
US20210056030A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines
KR20130063244A (ko) 비휘발성 메모리 시스템
US11010299B2 (en) System and method for performing discriminative predictive read
US10719445B1 (en) System and method for scaling a historical pattern matching data structure in a memory device
TWI755168B (zh) 用來產生基於主機的快取資訊或基於快閃記憶體的快取資訊以建立及最佳化二元樹的快閃記憶體控制器、方法及記憶裝置
US20050132117A1 (en) [card reader, and bridge controller and data transmission method thereof]
US20140281157A1 (en) Memory system, memory controller and method
US20240086071A1 (en) Ssd use of host memory buffer for improved performance
US20230359550A1 (en) File system integration into data mining model
KR20120120651A (ko) 저전력 하이브리드 스토리지 시스템 및 이를 이용한 데이터 처리방법
CN107807786B (zh) 存储装置及其资料映射方法
CN117908797A (zh) 一种ssd的转换层表的访问控制方法、装置及存储设备