TW201814531A - 位元組可定址快閃式記憶體模組及其儲存資料的方法 - Google Patents

位元組可定址快閃式記憶體模組及其儲存資料的方法 Download PDF

Info

Publication number
TW201814531A
TW201814531A TW106126297A TW106126297A TW201814531A TW 201814531 A TW201814531 A TW 201814531A TW 106126297 A TW106126297 A TW 106126297A TW 106126297 A TW106126297 A TW 106126297A TW 201814531 A TW201814531 A TW 201814531A
Authority
TW
Taiwan
Prior art keywords
module
prefetch
mode
write
memory
Prior art date
Application number
TW106126297A
Other languages
English (en)
Other versions
TWI761360B (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 三星電子股份有限公司
Publication of TW201814531A publication Critical patent/TW201814531A/zh
Application granted granted Critical
Publication of TWI761360B publication Critical patent/TWI761360B/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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/1673Details of memory controller using buffers
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • 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/313In storage device
    • 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/6022Using a prefetch buffer or dedicated prefetch cache
    • 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/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

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

Abstract

一種將資料儲存於記憶體模組的方法,此記憶體模組包括模組內預取器、模組內預取緩衝器、記憶體和記憶體控制器。此方法包括:將位址資訊從模組內預取器發送至記憶體控制器和預取緩衝器;基於發送到記憶體控制器的位址資訊與發送到預取緩衝器的位址資訊的比對,判定預取精度;基於預取精度判定預取模式;及基於預取模式,將資料儲存於記憶體。

Description

位元組可定址快閃式記憶體模組
根據諸多實施例之一或多態樣,本發明整體而言係有關於一種改良式快閃式記憶體模組及其操作方法。
在記憶體儲存的領域中,進行大量記憶體存儲的資料中心都在尋求實現高容量、高性能、低功耗和低成本之道。由於相較於動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),快閃記憶體具有可以較低成本提供高容量和有效電力使用的特性,使得快閃記憶體成為資料中心的一種可行的候選方案。舉例來說,快閃記憶體可提供每個模組兆位元組(Terabytes,TB)級的儲存能力,這是相較於使用DRAM技術可以實現的10倍以上的儲存能力。此外,快閃記憶體使用較低的待機電源。
遺憾的是,快閃記憶體一般來講性能比DRAM差,耐久性(Endurance)也比DRAM更加有限。舉例來說,某些類型的快閃記憶體(例如:低延遲NAND型,又稱為LLNAND型或Z-NAND型快閃記憶體)在讀取或寫入操作時會有延遲發生,其時間遠比使用DRAM技術所達成的來的長了許多。再者,若要使LLNAND記憶體可定址,其存取粒度須為2KB或4KB(而非64B)。
本揭露實施例的諸多態樣涉及一種改良式快閃式記憶體模組,和其一種操作方法。
本發明的一實施例提出一種將資料儲存於記憶體模組的方法,其中所述記憶體模組包含模組內預取器、模組內預取緩衝器、記憶體和記憶體控制器,所述方法包含以下步驟:將一位址資訊自所述模組內預取器發送至所述記憶體控制器和所述預取緩衝器;基於發送至所述記憶體控制器的所述位址資訊與發送至所述預取緩衝器的所述位址資訊的比對,判定預取精度;基於所述預取模式,將所述資料儲存於所述記憶體。
上述方法可進一步包括:在所述模組內預取器的一位址歷史記錄表,接收所述位址資訊,及基於所述位址歷史記錄表,偵測存取型樣。
所述預取模式的判定包括:使用所述模組內預取器的預取模式暫存器,判定步幅、方向、粒度、預取時間和暫停時間其中至少一者。
所述步幅、方向、粒度、預取時間和暫停時間其中至少一者之判定可基於所述位址歷史記錄表中所儲存的位址歷史紀錄和所判定出的預取精度。
上述方法可進一步包括:基於所述步幅、方向和粒度,產生一預取位址。
上述方法可進一步包括:發送一請求至所述記憶體控制器,以基於所判定出的步幅、方向、粒度、預取時間和暫停時間其中至少一者,使用所述模組內預取器的預取排程器,觸發一預取操作。
上述方法可進一步包括:在所述記憶體模組中的一模組內寫入緩衝器和寫入控制器模組,接收所述位址資訊;及基於所述位址資訊,判定回寫模式和回寫時間其中至少一者。
所述回寫模式可包括:即時寫入模式,用以儘快地將資訊寫入所述記憶體,或聚合式寫入模式,用以將來自寫入緩衝器的多個方塊的資訊合併於對所述記憶體的單次寫入。
上述在所述模組內寫入緩衝器和寫入控制器模組接收所述位址資訊的步驟可包括:在寫入位址歷史記錄表接收所述位址資訊,且其中所述回寫模式和所述回寫時間其中至少一者之判定可進一步基於所述寫入位址歷史記錄表。
上述方法可進一步包括:將所判定出的回寫模式或所判定出的回寫時間發送至所述寫入緩衝器和寫入控制器模組的排程器;及基於所判定出的回寫模式或所判定出的回寫時間,利用所述排程器,將從寫入緩衝器至所述記憶體的寫入進行排程。
本發明的另一實施例提出一種記憶體模組其包括:記憶體控制器;模組內預取器,其用以將請求發送至所述記憶體控制器,以觸發預取操作;模組內預取緩衝器,其耦接所述模組內預取器,且經配置以自所述模組內預取器接收資料;模組內寫入緩衝器,其用以儲存欲寫入記憶體的資訊;及模組內寫入控制器,其用以將從所述模組內寫入緩衝器至所述記憶體的寫入進行排程。
所述模組內預取器可包括複數個預取模式暫存器,用以判定所述記憶體模組的預取模式,所述預取模式暫存器包括步幅暫存器、方向暫存器、粒度暫存器、預取時間暫存器和暫停時間暫存器其中至少一者。
所述步幅暫存器可經配置以判定連續預取模式、步幅預取模式或者自動預取模式,其中所述連續預取模式使得所述模組內預取器經配置以依序地對預取位址進行存取,所述步幅預取模式使得所述模組內預取器經配置以偏移的方式對預取位址進行存取,所述自動預取模式使得所述模組內預取器經配置以基於位址歷史紀錄和預取精度,對預取位址進行存取。而且,所述方向暫存器可經配置以判定漸增模式、漸減模式或者自動模式,其中所述漸增模式使得所述模組內預取器經配置以遞升順序來對預取位址進行存取,所述漸減模式使得所述模組內預取器經配置以遞減順序來對預取位址進行存取,所述自動模式使得所述模組內預取器經配置以遞減順序或遞升順序,基於所述位址歷史紀錄和預取精度,來對預取位址進行存取。還有,所述粒度暫存器可經配置以判定指定大小的固定粒度的一粒度,或者基於所述位址歷史紀錄和所述預取精度的粒度。而且,所述預取時間暫存器可經配置以判定連續預取模式、傳入請求模式、快取/預取失敗模式或者自動模式,其中所述連續預取模式使得所述模組內預取器經配置以連續地進行預取,所述傳入請求模式使得所述模組內預取器經配置以當有一傳入請求時,進行預取,所述快取/預取失敗模式使得模組內預取器經配置以僅在發生快取或預取錯誤時進行預取或者所述自動模式使得所述模組內預取器經配置以基於所述位址歷史紀錄和預取精度進行預取。此外,所述暫停時間暫存器可經配置以判定持續暫停模式、永不暫停模式、緩衝容量模式及自動模式,其中所述持續暫停模式使得所述模組內預取器被停用,所述永不暫停模式使得所述模組內預取器被持續啟用,所述緩衝容量模式使得所述模組內預取器經配置以當所述預取緩衝器已滿時即被暫停,且所述自動模式使得所述模組內預取器經配置以基於所述位址歷史紀錄和預取精度被暫停。
所述模組內預取器可包括預取排程器,用以根據自預取模式暫存器所接收的資訊,發送所述請求至所述記憶體控制器。
所述模組內寫入控制器可包括複數個寫入緩衝暫存器,其包括回寫模式暫存器和回寫時間暫存器。
所述回寫模式暫存器可經配置以判定即時寫入模式,使得所述模組內寫入緩衝器和寫入控制器模組經配置以儘快地將資訊寫入所述記憶體模組的記憶體;聚合式寫入模式,使得所述模組內寫入緩衝器和寫入控制器模組經配置以將多個獨立方塊的資訊合併於對記憶體的單次寫入中;或自動模式,使得所述記憶體模組經配置以利用寫入位址歷史記錄表,判定是否使用所述即時寫入模式或所述聚合式寫入模式。
當所述回寫模式暫存器判定了所述聚合式寫入模式時,所述回寫時間暫存器可經配置以基於時間、所述模組內寫入緩衝器的容量或基於資料持久性而定的優先順序,判定用以將資料寫入所述記憶體的一時間。
所述記憶體模組可進一步包括動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),用以啟用其與所述主機間的直接通訊,及作為所述記憶體模組的記憶體快取來進行操作,其中所述模組內預取緩衝器和所述的模組內寫入緩衝器為所述DRAM的組件。
本發明的另一實施例提出一種非揮發性雙列直插式記憶體模組(Non-Volatile Dual In-Line Memory Module,又稱NVDIMM型模組),包括記憶體、模組內預取緩衝器、模組內預取器和模組內寫入緩衝器和寫入控制器模組。其中模組內預取器用以判定步幅、方向、粒度、預取時間和暫停時間其中至少一者,及基於所述步幅、方向、粒度、預取時間和暫停時間其中至少一者產生一預取位址。其中模組內寫入緩衝器和寫入控制器模組,用以判定是否儘快地寫入記憶體,或者將獨立方塊的資料合併於對所述記憶體的單次寫入,及用以將對所述記憶體的寫入進行排程。
所述NVDIMM型模組可進一步包括記憶體控制器,其耦接所述記憶體,耦接所述模組內預取緩衝器,及耦接所述模組內預取器,其中所述記憶體控制器包括所述模組內寫入緩衝器和寫入控制器模組。
其他態樣將藉由以下所示的示範性實施例的實作而的描述如下或獲得相關教示。
根據諸多實施例的各態樣,本發明涉及一種改良式快閃式記憶體模組,並涉及其操作方法。
藉由參考以下實施例的詳細描述和附圖,可以更容易地理解本發明構思的特徵和其實現方法。在下文中,將參照附圖更詳細地描述示例性實施例,其中,在全文中相同或相似的參照編號代表相同或相似的元件。然而,本發明可以各種不同的行是體現,且不應被解釋為僅限於本文中所示的實施例中。再者,這些實施例被提供作為示例,使得本發明將是全面且完整,並向本領域技術人員充分地傳達本發明的態樣和特徵。基此,對本領域一般技術人員而言,針對完整理解本發明的態樣和特徵非必要的處理程序、元件和技術,則不會描述。除非另有說明,相同或相似的參照編號表示相同或相似的元件和書面說明,因此,不再重複贅述。在諸附圖中,為了清楚起見,可能誇示了層以及區域的大小以及相對大小。
應了解的是,儘管本文中可使用術語「第一」、「第二」、「第三」等來描述各種不同的部件、組件、區域、層及/或區段,但此等部件、組件、區域、層及/或區段不應受此等術語限制。此等術語僅用以區分一部件、組件、區域、層及/或區段與另一部件、組件、區域、層及/或區段。因此,可將下文所論述的第一部件、組件、區域、層或區段稱為第二部件、組件、區域、層或區段,而不偏離本發明之精神與範圍。
在本文中可以使用諸如「在...底下」、「在...下方」、「下部」、「在...之下」、「在...上方」、「上部」,等之類的空間相對術語來描述部件或特徵與其他部件或特徵之間的關係,如圖中所繪示。須了解的是,除了諸圖中所描繪的定向以外,所述空間相對術語意欲亦涵蓋在使用中或操作中的元件的不同定向。舉例而言,若翻轉諸圖中的元件,則描述為在其他部件或特徵「下方」、「底下」或「之下」的部件繼而將定向於其他部件或特徵的上方。因此,例示性術語「在...下方」和「在...之下」可涵蓋「在...下方」和「在...上方」兩種定向。元件可以其他方式定向(旋轉90度或在其他的定向),且本文中所使用的空間相對描述詞相應地作出解釋。
須了解的是,當一部件、層、區域或組件被描述為在另一部件、層、區域或組件「上」、「連接至」或「耦接」另一部件、層、區域或組件時,其可直接在所述另一部件、層、區域或組件上、直接連接至或耦接所述另一部件、層、區域或組件,或可存在一或多中介部件、層、區域或組件。此外,亦須了解的是,當一部件或層被描述為在兩部件或兩層「之間」時,期可為僅一部件或層在兩部件或兩層「之間」,可存在一或多中介部件或層。
本文中所使用的術語僅是出於描述特定實施例的目的,且不意欲限制所揭露的標的。如本文中所使用的單數形式「一個」意欲亦包含複數形式,除非上下文另有清楚指示。應進一步理解,術語「包括」在用於本說明書中時指定所敍述特徵、整體、步驟、操作、部件及/或組件的存在,但不排除一或多個其他特徵、整體、步驟、操作、部件、組件及/或其群組的存在或添加。如本文中所使用,術語「及/或」包括相關列出項目中的一個或多個項目的任意及所有組合。出現於一部建清單的表述語,如「至少一」等,其在修飾整份清單中的部件,而非修飾清單中的單一部件。
如本文中所使用的用語「實質上」、「大約」或類似用語係作為表示近似值的用語,而非用以表達程度,且旨在說明本領域一般技術人員認可的測量值或計算值中的隱含偏差。再者,在說明本發明諸實施例時使用「可能」一詞是指「本發明的一個或多個實施例」。如本文所使用的用語「使用」可被視為與術語用語「利用」同義。此外,用語「示例性」其意在於提及範例子或說明。
當某實施例可以不同方式實現時,可以與所描述的順序不同地執行特定處理程序。舉例來說,兩個被描述為連續的處理程序實質上可同時進行,或以不同於所描述的順序進行。
根據本文所述的實施例的電子或電氣裝置和/或任何其他相關裝置或組件可以利用任何合適的硬體、韌體(例如:特殊應用積體電路)、軟體或軟體、韌體和硬體的組合來實現。舉例來說,這些裝置的各種組件可形成於一積體電路(Integrated Circuit,IC)晶片上或分別行程於各IC晶片上。再者,這些裝置的各種組件可實現於可撓曲印刷電路膜、膠帶載具封裝(Tape Carrier Package,TCP)、印刷電路板(Printed Circuit Board,PCB)上,或者實現於基板上。此外,這些裝置的各種組件可為處理程序或線程(Thread),運行在一或多個處理器上、運行於一或多電算裝置之中、執行電腦程式指令和與其他組件交互作用,以執行本問中所描述的各種功能。上述的電腦程式指令可儲存於記憶體,其可實現於使用標準記憶體,例如隨機存取記憶體(Random Access Memoery,RAM)等的電算裝置中。上述的電腦程式指令亦可儲存於其他非暫時性電腦可讀取媒體中,例如光碟(CD-ROM)、隨身碟(Flash Drive)或類似裝置。亦即,本領域技術人員應該知道,各種電算裝置的功能可以被結合或整合到單一電算裝置中,或者特定電算裝置的功能可以分佈在一個或多個其他電算裝置,而不偏離本發明之精神與範圍。
除非另有定義,否則本文中所使用的所有術語(包含技術以及科學術語)具有與一般熟習所揭露標的所屬技術者通常所理解者相同的含義。應進一步理解的是,術語(諸如,常用字典中所定義的術語)應被解釋為具有與其在相關技術背景中的含義一致的含義,且不應以理想化或過度正式的意義來解釋,除非本文中明確地如此定義。
如以上所述,快閃式記憶體相較於動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),可具有某些的優點和缺點。使用快閃式記憶體時,可以看出,預取(Prefetching,即,將資料從主要記憶體傳輸至暫存裝置以供之後使用和快速存取),其可有益於某些應用程式(例如:若對應的存取型樣為可預期的型樣)。例如,將預取功能搭配受限玻爾茲曼機(Restricted Boltzmann Machine,簡稱為RBM)使用,或者搭配機器學習(例如,卷積神經網絡(Convolutional Neural Network)的完全連接層(Fully-connected Layer)),將可藉由允許對位於記憶體中共用實體列(Common Physical Row)上的數個資料字(Data Words)的快速存取,來減少延遲。舉例來說,對於取得所需資料時,若可以持續預取成功的話,則可利用預取來將讀取延遲降至為幾奈秒(Nanoseconds),其中所述讀取延遲可透過將預取緩衝器延遲(Prefetch Buffer Latency)、控制器延遲(Controller Latency)和網路協定耗費(Protocol Overhead)一起相加來計算。
基此,本發明諸多實施例提出一種快閃式(例如:低延遲NAND型,又稱為LLNAND型)記憶體模組的架構,可以位元組可定址的方式快速地進行存取,同時降低長時間存取延遲,並提升耐久性。進一步來說,所述快閃式記憶體模組可與較新的經改良記憶體介面協定配合使用。此外,本文中所述的架構可配合非揮發性雙列直插式記憶體模組(Non-Volatile Dual In-Line Memory Module,NVDIMM)(例如:NVDIMM-P LLNAND模組,其可將NAND和DRAM映射至記憶體位址空間)或其他任何事務式(Transaction-based)LLNAND模組(例如:Gen-Z LLNAND模組,其可能成為未來使用非同步記憶體協定(Synchronous Memory Protocol)的標準事務式模組)。
圖1為依據本發明之一實施例繪示快閃式記憶體模組構件的方塊示意圖。
請參考圖1,其繪示一種快閃式記憶體模組(例如:一種NVDIMM-P模組)100。儘管在此所描述的是一種NVDIMM型的模組,但是本發明其他實施例可包括不同類型的DIMM,或不同類型的快閃式記憶體模組。須注意的是,其中具有模組內預取器200和模組內預取緩衝器160(其例如位於上述模組100內),其可達成降低延遲。亦須注意的是,其中具有寫入控制器144和寫入緩衝器142(例如:如圖3中所示的模組內寫入緩衝器和寫入控制器模組300),其可啟用模組內寫入聚合(Coalescing),以增進模組100的耐久性(Endurance)。這些組件和特徵將參考圖2和圖3詳述如下。此外,應注意的是,儘管在本實施例中將寫入緩衝器142和預取緩衝器160表示為各自獨立的模組,但是,所述寫入緩衝器142和預取緩衝器160可為單一模組的其中一部分,或者位於各自獨立的晶片上。在其他實施例中,所述寫入緩衝器142和預取緩衝器160可為DRAM 110的DRAM緩衝區中各自獨立的邏輯子分區。
一位址匯流排(例如:行位址匯流排(Column Address Bus))170和一DQ匯流排180(例如:資料匯流排)提供記憶體介面,使得上述模組100和主機之間的可進行通訊。此外,所述模組100中包括前端DRAM 110,用以啟用其與主機的直接通訊,並作為一記憶體快取(Memory Cache)來操作。連接至DRAM 110的是資料緩衝器120,其作為可與主機連線的暫存裝置。還有一暫存時鐘驅動器(Registering Clock Driver,RCD)緩衝器130也與DRAM 110連接,其用於對與接收自主機的位址資訊(例如:行位址資訊)170所對應的資訊進行緩衝。
提出一種記憶體控制器(例如:LLNAND控制器)140,其作為記憶體/資料儲存器(例如:後端LLNAND資料儲存器)150的介面,其可提供足夠進行資料儲存的大容量記憶體。基此,若主機欲對儲存於後端LLNAND資料儲存裝置150的資料進行存取,其中所述後端LLNAND資料儲存裝置150可包括複數個LLNAND模組150a~150z,則此主機首先必須與LLNAND控制器140進行通訊。儘管在此所描述為LLNAND控制器140和對應的LLNAND資料儲存裝置150,但是,其他類型的記憶體控制器和快閃式記憶體的資料儲存裝置仍可與本發明諸多實施例搭配使用。
設置於LLNAND控制器140中的有寫入緩衝器142,其可暫存欲傳輸至後端LLNAND資料儲存裝置150的寫入資料,以及寫入控制器144,其可將何時以及如何將資料回寫(Write Back)至LLNAND資料儲存裝置150進行排程,此點將進一步參照圖3進行說明如下。設置於所述LLNAND控制器140中的還有快取控制器146。儘管主機可直接對DRAM 110進行存取,但是,在某些情況下,LLNAND控制器140的功能可作為主控器,其中LLNAND控制器140可使用其快取控制器146,以對DRAM 110進行存取;而非包含於主機內並且用於控制模組100的主控器。
所述模組100中也包括預取器200,其與預取緩衝器160將參照圖2進行說明。
圖2為依據本發明之一實施例繪示圖1之快閃式記憶體模組中預取器的構件的方塊示意圖。
請參考圖2,本實施例的模組內預取器200包括複數個預取模式暫存器210,其可令主機/主控器決定上述模組100將使用何種類型的預取模式。
第一種預取模式暫存器可稱為步幅暫存器210a。此步幅暫存器210a判定預取器200是否進行步幅預取作業(例如:預取從前一個位址偏移一些距離「S」的一個位址)、連續預取作業(例如:在連續預取模式中,連續地預取或以等於1的步幅距離「S」進行預取),或者進行自動預取模式,其由模組100基於位址歷史紀錄和預取精度230進行判定,其中位址歷史紀錄可儲存於預取器200中的一位址歷史記錄表220中,而預取精度230可藉由預取器200計算得出。基此,主機可指示是否採用連續預取或是步幅預取,使得模組100將繼續採用對應的預取型樣(Prefetching Pattern),直至主機更改步幅暫存器210a所表示的預取類型。或者,主機可藉由對步幅暫存器210a編程為對應於上述自動預取模式,讓模組100決定採用何種預取型樣。
第二種預取模式暫存器可稱為方向暫存器210b。此方向暫存器210b可指示這些預取位址將會以遞升順序(例如:遞升模式,其中預取位址對應於一正「S」的步幅距離)對這些預取位址進行存取,還是會以遞減順序(例如:遞減模式,其中預取位址對應於一負「S」的步幅距離)對這些預取位址進行存取。基此,當所述方向暫存器210b表示一種遞減順序時,主機將指示這些預取位址以遞減順序進行提取,且當方向暫存器210b表示一種遞升順序時,主機則將指示對這些預取位址以遞升順序預取進行提取。此外,所述方向暫存器210b可表示一種自動模式,使得這些預取位址進行存取的方向可由模組100來判定(例如:基於位址歷史紀錄220和所計算的預取精度230)。
第三種預取模式暫存器可稱為粒度暫存器210c。粒度暫存器210c可指示所述粒度為一種固定在4KB倍數的固定粒度、可指示一種固定在「N」的固定性粒度,其中「N」可為任意大小(例如:2KB),或者可指示使用自動模式,使得所述粒度可由模組100來判定(例如:基於位址歷史紀錄220和所計算的預取精度230)。
第四種預取模式暫存器可稱為預取時間暫存器210d。預取時間暫存器210d可判定何時模組100要進行預取。第一選項是,預取時間暫存器210d會在一連續預取模式中啟用連續預取,其中不論所計算的預取精度230為何,預取都會保持連續進行。第二選項是,預取時間暫存器210d可指示模組100自主機接收到傳入請求時進行預取。第三選項是,預取時間暫存器210d可指示僅在發生預取失敗(Prefetch Miss)或快取失敗(Cache Miss)時(例如:對應於模組100中DRAM 110的DRAM快取失敗發生時),才判定模組100進行預取。第四選項是,預取時間暫存器210d可啟用自動模式(例如:模組100可基於位址歷史紀錄220和所計算的預取精度230,判定何時進行預取)。
第五種預取模式暫存器可稱為暫停時間暫存器210e,其經配置以定義預取暫停時間。亦即,暫停時間暫存器210e可表示何時模組100應停止預取。舉例來說,第一選項是,所述主機/主控器可設定此暫停時間暫存器210e,使得預取被禁用,而因此不再進行預取(例如:將預取器200持續地暫停)。第二選項是,主機可設定暫停時間暫存器210e,使得預取不管在何種情況皆會進行(例如:預取器200永不暫停)。第三選項是,暫停時間暫存器210e可設定使得當預取緩衝器160(其可為一雙埠隨機存取記憶體,簡稱為2-port RAM)已滿,將預取操作暫停,而只要預取緩衝器160具有足夠的可用容量時,則將暫停取消。第四選項是,暫停時間暫存器210e可將暫停時間設定為一自動模式,以使模組100(例如:基於位址歷史紀錄220和所計算的預取精度230)判定暫停時間。
基此,利用上述的各種暫存器210,前述各預取選項可由主機判定,或者改由模組100判定。
預取器200可接收來自模組100的RCD緩衝器130且對應於位址資訊170的資訊。預取器200可包括解碼器240,其可對接收自RCD緩衝器130的資訊進行解碼,並將經解碼的位址資訊分別(例如:經由預取器緩衝排程器280)發送至LLNAND控制器140和預取緩衝器160。上述各經解碼的位址資訊(即,發送至LLNAND控制器140的經解碼位址資訊和發送至預取緩衝器160的經解碼位址資訊)可互相比對,以計算預取精度230。基此,所述預取精度可有效地作為回饋資訊,並發送至該預取緩衝器160,以令預取緩衝器160針對其預取策略/預取模式基於所計算的預取精度230來進行調整和改進。
基此,預取器200可利用自位址歷史記錄表220所取得的預取精度230和位址歷史紀錄,來偵測存取型樣。預取器200亦可利用步幅暫存器210a、方向暫存器210b和粒度暫存器210c的設定,來分別計算步幅250、方向252和粒度254,並藉此產生預取位址和粒度260,以將其發送給預取排程器270。
預取器200亦可使用預取精度230,搭配位址歷史紀錄220、預取時間暫存器210d和暫停時間暫存器210e的設定值,來計算預取時間256和計算預取暫停時間258。所述預取時間和預取暫停時間亦可發送至預取排程器270。基於步幅、方向、粒度、預取時間和暫停時間所對應的資訊,預取排程器270可將資訊以請求的形式發送至LLNAND控制器140,以觸發預取作業,並使LLNAND控制器140決定將自LLNAND資料儲存器所欲讀取的資訊為何。
此外,當偵測到一預取命中(Prefetch Hit)時,意即在預取緩衝器160中找到所需的資料時,預取器緩衝排程器280可僅直接對預取緩衝器160進行存取,藉此避免需要對LLNAND資料儲存裝置150進行存取來取得所需的資料。
上述預取位址亦會發送至預取器緩衝排程器280,其經配置以判定何時將自預取緩衝器160讀取和將自預取緩衝器160讀取的資訊為何。預取緩衝器160可依據64B的粒度進行存取,並可利用特定功能暫存器進行配置。須注意的是,預取緩衝器160可為上述實體預取模式暫存器210的一部分,並分開且獨立於上述LLNAND資料儲存裝置150。
圖3為依據本發明之一實施例繪示圖1之快閃式記憶體模組中模組內寫入緩衝器和寫入控制器模組的方塊示意圖。
請參考圖3,本實施例的模組內寫入緩衝器和寫入控制器模組300可具有兩組對應的寫入緩衝暫存器310。第一個寫入緩衝暫存器可稱為回寫模式暫存器310a,其經配置以定義回寫模式(Write Back Mode),而第二個寫入緩衝暫存器可稱為回寫時間暫存器310b,其經配置以定義回寫時間(Write Back Time)。
關於回寫模式暫存器310a,適於所述回寫模式的第一選項為允許即時寫入(Immediate Write),意即,每當資訊包含在寫入緩衝器142中時,LLNAND控制器140即儘快地將所述資訊回寫至LLNAND資料儲存裝置150。舉例來說,LLNAND控制器140可將64B的資訊有效地且即時地從寫入緩衝器142回寫至LLNAND資料儲存裝置150。儘管此即時寫入模式可提升寫入緩衝器142的可用性,但是,須注意的是,即使當寫入資訊僅包含64B,LLNAND還是需要2KB的寫入頻寬,所以寫入頻寬會被浪費,因此,其對於LLNAND資料儲存裝置150的耐久性會帶來負面影響。
回寫模式暫存器310a亦可選擇使用第二種選項來允許聚合式寫入(Coalesced Write)。儘管LLNAND資料儲存裝置150所用的粒度在2KB的範圍內,但是前端存取所需的粒度(例如:對DRAM 110的存取)僅需64B。基此,透過允許聚合式寫入,其將來自寫入緩衝器142的多個方塊的資訊合併,其中各資訊方塊由64B組成,藉此產生單次的LLNAND寫入(例如:大約2KB),而對LLNAND資料儲存裝置150的寫入總次數則可減少,藉此提升LLNAND資料儲存裝置150的耐久性並延長其使用壽命。基此,藉由所述聚合式寫入選項,可減少LLNAND的寫入頻寬總量的浪費。然而,寫入緩衝器142的可用性也會因此降低。亦即,因為在進行一次寫入前,可將多次64B的寫入進行排序和合併,因此,在將一64B的資訊方塊與足夠數量的其他資訊方塊聚合,並將其回寫至LLNAND資料儲存裝置150之前,此64B的資訊方塊會在寫入緩衝器142中,延長保留一段時間。
回寫模式暫存器310a所使用的第三選項可為自動模式,在此模式中,模組100可決定欲使用的回寫模式為何(例如:即時寫入模式或聚合式寫入模式)。舉例來說,所述模組100可利用模組內寫入緩衝器和寫入控制器模組中的寫入位址歷史記錄表350來判定一最佳回寫模式320是為即時寫入模式,還是聚合式寫入模式。
上述第二個暫存器可稱為回寫時間暫存器310b,其被用以配置回寫時間。所述回寫時間暫存器310b與上述的聚合式寫入模式一起配合使用。若所述回寫模式暫存器310a選擇使用上述聚合式寫入的選項,理論上,其可能要持續等待,而無法將資訊從寫入緩衝器142回寫至LLNAND資料儲存裝置150。基此,為了避免資料永遠無法回寫至LLNAND資料儲存裝置150的情況發生,利用回寫時間暫存器310b,在使用聚合式寫入選項的情況下,可使用一對應於最大等待時間的門檻時間或事件。
上述所判定出的回寫時間330可根據時間、寫入緩衝區142的容量/填滿程度或基於持久性而定的優先級來判定。由於NAND技術具有保存持久性數據的好處,所以回寫時間暫存器310b可藉由判定標記為持續取得優先權,或者通過寫入緩衝器142的資訊為需回寫至LLNAND資料儲存裝置150,藉此強制實施持久性(Persistency)。基此,並舉例來說,對於LLNAND資料儲存裝置150的回寫操作可以根據以下的情況的第一次發生來進行排程:當64B的資訊方塊已經停留在寫入緩衝器142中超過一段指定時間時;當寫入緩衝器142已達到一指定緩衝容量(例如:基於寫入緩衝器142在一緩衝容量模式之填滿程度的百分比),或者已根據持久性進指定回寫的優先順序時。
此外,須注意的是,在其他實施例中,所述預取緩衝器160和寫入緩衝器142其中之一或兩者可實作為模組100中DRAM 110的組件。進一步來說,須注意的是,在其他實施例中,所述寫入緩衝器142可與所述寫入控制器144各自獨立。在本實施例中,模組內寫入緩衝器和寫入控制器模組300包括寫入位址歷史記錄表350。基此,寫入緩衝器142可將寫入位址歷史記錄表350作為判定回寫模式320和回寫時間330的基礎。在判定完回寫模式320和回寫時間330之後,可將其對應的資訊饋入所述模組內寫入緩衝器和寫入控制器模組300中的排程器340。所述排程器340可利用此資訊來判定在寫入緩衝器142要將資訊回寫至LLNAND資料儲存裝置150時,何種資訊需被回寫至LLNAND資料儲存裝置150,以及所述資訊要回寫至LLNAND資料儲存裝置150的順序。
基此,上述諸多實施例提出一種快閃式記憶體模組,其足以進行大量的記憶體的儲存,同時又可基於根據位址歷史紀錄和預取精度所判定出的存取型樣,調整預取策略,以減少延遲,同時又藉由選擇性地基於寫入位址歷史紀錄,將對記憶體的寫入進行排程,藉此提升耐久性。
前述者是對示例性實施例的說明,且不應被視為對示例性實施例進行限制。儘管已闡述了一些示例性實施例,然而熟習此項技術者將易於領會,可在不實際上背離示例性實施例的新穎教示內容及優點的條件下在示例性實施例中作出諸多潤飾。因此,所有此類潤飾皆旨在包含於如在申請專利範圍中所界定的示例性實施例的範圍內。在申請專利範圍中,方式加功能(Means-Plus-Function)條款旨在涵蓋本文所述的用於執行所敍述功能的結構、且不僅涵蓋結構性等效形式而且亦涵蓋等效結構。因此,應理解,前述者是對示例性實施例的說明且不應被視為僅限於所揭露的具體實施例,且對所揭露示例性實施例所作的潤飾以及其他示例性實施例皆旨在包含於隨附申請專利範圍的範圍內。本發明概念是由以下申請專利範圍所界定,其中在本發明概念中欲包含申請專利範圍的等效範圍。
100‧‧‧快閃式記憶體模組
110‧‧‧動態存取記憶體動態隨機存取記憶體(DRAM)
120‧‧‧資料緩衝器
130‧‧‧暫存時鐘驅動器(RCD)緩衝器
140‧‧‧LLNAND控制器
142‧‧‧寫入緩衝器
144‧‧‧寫入控制器
146‧‧‧快取控制器
150、150a、150z‧‧‧LLNAND資料儲存裝置
160‧‧‧模組內預取緩衝器
170‧‧‧位址匯流排
180‧‧‧DQ匯流排
200‧‧‧模組內預取器
210‧‧‧預取模式暫存器
210a‧‧‧步幅暫存器
210b‧‧‧方向暫存器
210c‧‧‧粒度暫存器
210d‧‧‧預取時間暫存器
210e‧‧‧暫停時間暫存器
220‧‧‧位址歷史記錄
230‧‧‧預取精度
240‧‧‧解碼器
250‧‧‧步幅
252‧‧‧方向
254‧‧‧粒度
256‧‧‧預取時間
258‧‧‧預取暫停時間
260‧‧‧預取位址和粒度
270‧‧‧預取排程器
280‧‧‧預取器緩衝排程器
300‧‧‧模組內寫入緩衝器和寫入控制器模組
310‧‧‧寫入緩衝器暫存器寫入緩衝暫存器
310a‧‧‧回寫模式暫存器
310b‧‧‧回寫時間暫存器
320‧‧‧最佳回寫模式
330‧‧‧回寫時間
340‧‧‧排程器
350‧‧‧寫入位址歷史記錄表
作為本說明書一部份而包含的附圖繪示有目前優選的實施例,並且與上文給出的一般說明及下文給出的詳細說明一同用作解釋並教示本文中所述原理。圖1是習知的一種AAA的示意圖。 圖1為依據本發明之一實施例繪示快閃式記憶體模組構件的方塊示意圖。 圖2為依據本發明之一實施例繪示圖1之快閃式記憶體模組中預取器的構件的方塊示意圖。 圖3為依據本發明之一實施例繪示圖1之快閃式記憶體模組中模組內寫入緩衝器和寫入控制器模組的方塊示意圖。

Claims (20)

  1. 一種將資料儲存於一記憶體模組的方法,其中該記憶體模組包含一模組內預取器、一模組內預取緩衝器、一記憶體和一記憶體控制器,該方法包括: 將一位址資訊自該模組內預取器發送至該記憶體控制器和該預取緩衝器; 基於發送至該記憶體控制器的該位址資訊與發送至該預取緩衝器的該位址資訊的一比對,判定一預取精度; 基於該預取精度,判定一預取模式;及 基於該預取模式,將該資料儲存於該記憶體。
  2. 如申請專利範圍第1項所述的方法,進一步包括: 在該模組內預取器的一位址歷史記錄表,接收該位址資訊;及 基於該位址歷史記錄表,偵測一存取型樣。
  3. 如申請專利範圍第2項所述的方法,其中判定該預取模式的步驟包括:使用該模組內預取器的預取模式暫存器,判定步幅、方向、粒度、預取時間和暫停時間其中至少一者。
  4. 如申請專利範圍第3項所述的方法,其中該步幅、該方向、該粒度、該預取時間和該暫停時間其中至少一者之判定係基於該位址歷史記錄表中所儲存的位址歷史紀錄和所判定出的預取精度。
  5. 如申請專利範圍第3項所述的方法,進一步包括:基於該步幅、該方向和該粒度,產生一預取位址。
  6. 如申請專利範圍第3項所述的方法,進一步包括:發送一請求至該記憶體控制器,以基於所判定出的該步幅、該方向、該粒度、該預取時間和該暫停時間其中至少一者,使用該模組內預取器的一預取排程器,觸發一預取操作。
  7. 如申請專利範圍第1項所述的方法,進一步包括: 在該記憶體模組中的一模組內寫入緩衝器和寫入控制器模組,接收該位址資訊;及 基於該位址資訊,判定一回寫模式和一回寫時間其中至少一者。
  8. 如申請專利範圍第7項所述的方法,其中該回寫模式包括一即時寫入模式,用以儘快地將資訊寫入該記憶體,或一聚合式寫入模式,用以將來自一寫入緩衝器的多個方塊的資訊合併於對該記憶體的單次寫入。
  9. 如申請專利範圍第7項所述的方法,其中在該模組內寫入緩衝器和寫入控制器模組接收該位址資訊的步驟包括: 在一寫入位址歷史記錄表接收該位址資訊, 其中該回寫模式和該回寫時間其中至少一者之判定係進一步基於該寫入位址歷史記錄表。
  10. 如申請專利範圍第7項所述的方法,進一步包括: 將該所判定出的回寫模式或該所判定出的回寫時間發送至該寫入緩衝器和寫入控制器模組的一排程器;及 基於該所判定出的回寫模式或該所判定出的回寫時間,利用該排程器將從一寫入緩衝器至該記憶體的寫入進行排程。
  11. 一種記憶體模組,包括: 一記憶體控制器; 一模組內預取器,用以將請求發送至該記憶體控制器,以觸發一預取操作; 一模組內預取緩衝器,耦接該模組內預取器,且經配置以自該模組內預取器接收資料; 一模組內寫入緩衝器,用以儲存欲寫入記憶體的資訊;及 一模組內寫入控制器,用以將從該模組內寫入緩衝器至該記憶體的寫入進行排程。
  12. 如申請專利範圍第11項所述的記憶體模組,其中該模組內預取器包括複數個預取模式暫存器,用以判定該記憶體模組的一預取模式,該預取模式暫存器包括以下其中至少之一: 一步幅暫存器; 一方向暫存器; 一粒度暫存器; 一預取時間暫存器;及 一暫停時間暫存器。
  13. 如申請專利範圍第12項所述的記憶體模組, 其中該步幅暫存器經配置以判定一連續預取模式、一步幅預取模式或一自動預取模式,其中該連續預取模式使得該模組內預取器經配置以依序地對預取位址進行存取,該步幅預取模式使得該模組內預取器經配置以偏移的方式對預取位址進行存取,該自動預取模式使得該模組內預取器經配置以基於一位址歷史紀錄和一預取精度,對預取位址進行存取, 其中該方向暫存器經配置以判定一漸增模式、一漸減模式或者一自動模式,其中該漸增模式使得該模組內預取器經配置以一遞升順序來對預取位址進行存取,該漸減模式使得該模組內預取器經配置以一遞減順序來對預取位址進行存取,該自動模式使得該模組內預取器經配置以一遞減順序或一遞升順序,基於該位址歷史紀錄和預取精度,來對預取位址進行存取, 其中該粒度暫存器經配置以判定一指定大小的固定粒度的一粒度,或者基於該位址歷史紀錄和該預取精度的一粒度, 其中該預取時間暫存器經配置以判定一連續預取模式、一傳入請求模式、一快取/預取失敗模式或者一自動模式,其中該連續預取模式使得該模組內預取器經配置以連續地進行預取,該傳入請求模式使得該模組內預取器經配置以當有一傳入請求時,進行預取,該快取/預取失敗模式使得模組內預取器經配置以僅在發生快取或預取錯誤時進行預取,該自動模式使得該模組內預取器經配置以基於該位址歷史紀錄和該預取精度進行預取,及 其中該暫停時間暫存器經配置以判定一持續暫停模式、一永不暫停模式、一緩衝容量模式及一自動模式,其中該持續暫停模式使得該模組內預取器被停用,該永不暫停模式使得該模組內預取器被持續啟用,該緩衝容量模式使得該模組內預取器經配置以當該預取緩衝器已滿時即被暫停,且該自動模式使得該模組內預取器經配置以基於該位址歷史紀錄和該預取精度被暫停。
  14. 如申請專利範圍第12項所述的記憶體模組,其中該模組內預取器包括一預取排程器,用以根據自預取模式暫存器所接收的資訊,發送該些請求至該記憶體控制器。
  15. 如申請專利範圍第11項所述的記憶體模組,其中該模組內寫入控制器包括複數個寫入緩衝暫存器,其包括: 一回寫模式暫存器;及 一回寫時間暫存器。
  16. 如申請專利範圍第15項所述的記憶體模組,其中該回寫模式暫存器經配置以判定: 一即時寫入模式,使得該模組內寫入緩衝器和寫入控制器模組經配置以儘快地將資訊寫入該記憶體模組的記憶體; 一聚合式寫入模式,使得該模組內寫入緩衝器和寫入控制器模組經配置以將多個獨立方塊的資訊合併於對記憶體的單次寫入中;或 一自動模式,使得該記憶體模組經配置以利用一寫入位址歷史記錄表,判定是否使用該即時寫入模式或該聚合式寫入模式。
  17. 如申請專利範圍第16項所述的記憶體模組,其中當該回寫模式暫存器判定了該聚合式寫入模式時,該回寫時間暫存器經配置以基於時間、該模組內寫入緩衝器的一容量或基於資料持久性而定的優先順序,判定用以將資料寫入該記憶體的一時間。
  18. 如申請專利範圍第11項所述的記憶體模組,進一步包括一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),用以啟用其與該主機間的直接通訊,及作為該記憶體模組的一記憶體快取來進行操作, 其中該模組內預取緩衝器和該模組內寫入緩衝器為該DRAM的組件。
  19. 一種非揮發性雙列直插式記憶體模組(Non-Volatile Dual In-Line Memory Module,又稱NVDIMM型模組),包括: 記憶體; 一模組內預取緩衝器; 一模組內預取器,用以判定一步幅、一方向、一粒度、一預取時間和一暫停時間其中至少一者,及基於該步幅、該方向、該粒度、該預取時間和該暫停時間其中至少一者產生一預取位址;及 一模組內寫入緩衝器和寫入控制器模組,用以判定是否儘快地寫入該記憶體,或者將獨立方塊的資料合併於對該記憶體的單次寫入,及用以將對該記憶體的寫入進行排程。
  20. 如申請專利範圍第19項所述的NVDIMM型模組,進一步包括一記憶體控制器,該記憶體控制器耦接該記憶體、耦接該模組內預取緩衝器、及耦接該模組內預取器,其中該記憶體控制器包括該模組內寫入緩衝器和寫入控制器模組。
TW106126297A 2016-09-26 2017-08-04 位元組可定址快閃式記憶體模組及其儲存資料的方法 TWI761360B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662400048P 2016-09-26 2016-09-26
US62/400,048 2016-09-26
US15/349,949 US10866897B2 (en) 2016-09-26 2016-11-11 Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US15/349,949 2016-11-11

Publications (2)

Publication Number Publication Date
TW201814531A true TW201814531A (zh) 2018-04-16
TWI761360B TWI761360B (zh) 2022-04-21

Family

ID=61686251

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106126297A TWI761360B (zh) 2016-09-26 2017-08-04 位元組可定址快閃式記憶體模組及其儲存資料的方法

Country Status (5)

Country Link
US (1) US10866897B2 (zh)
JP (1) JP2018055683A (zh)
KR (1) KR102381449B1 (zh)
CN (1) CN107870873B (zh)
TW (1) TWI761360B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102353859B1 (ko) * 2017-11-01 2022-01-19 삼성전자주식회사 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US10929291B2 (en) * 2017-12-06 2021-02-23 MemRay Corporation Memory controlling device and computing device including the same
KR102101622B1 (ko) * 2017-12-06 2020-04-17 주식회사 멤레이 메모리 제어 장치 및 이를 포함하는 컴퓨팅 디바이스
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10713053B2 (en) 2018-04-06 2020-07-14 Intel Corporation Adaptive spatial access prefetcher apparatus and method
US11948073B2 (en) 2018-04-20 2024-04-02 Advanced Micro Devices, Inc. Machine learning inference engine scalability
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10691611B2 (en) 2018-07-13 2020-06-23 Micron Technology, Inc. Isolated performance domains in a memory system
KR20200015233A (ko) 2018-08-03 2020-02-12 삼성전자주식회사 불휘발성 메모리 장치들을 포함하는 반도체 메모리 모듈
TWI703566B (zh) * 2018-08-30 2020-09-01 大陸商合肥沛睿微電子股份有限公司 快閃記憶體控制器及相關的存取方法及電子裝置
TWI698874B (zh) * 2018-08-31 2020-07-11 大陸商合肥沛睿微電子股份有限公司 快閃記憶體控制器及相關的存取方法及電子裝置
CN110888588B (zh) * 2018-09-07 2023-09-01 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关的访问方法及电子装置
CN111104054B (zh) * 2018-10-29 2023-10-27 伊姆西Ip控股有限责任公司 管理输入/输出操作的方法、装置和计算机程序产品
US11769041B2 (en) 2018-10-31 2023-09-26 Advanced Micro Devices, Inc. Low latency long short-term memory inference with sequence interleaving
JP2020091930A (ja) 2018-12-07 2020-06-11 キオクシア株式会社 半導体記憶装置
CN111353575A (zh) * 2018-12-20 2020-06-30 超威半导体公司 用于卷积神经网络的图块化格式
JP7140972B2 (ja) * 2018-12-21 2022-09-22 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
CN111723918A (zh) 2019-03-18 2020-09-29 超威半导体公司 用于卷积内核的自动生成和调谐工具
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
CN110427332B (zh) * 2019-08-05 2021-08-20 上海兆芯集成电路有限公司 数据预取装置、数据预取方法及微处理器
CN110704107B (zh) * 2019-09-30 2022-03-22 上海兆芯集成电路有限公司 预取器、预取器的运作方法及处理器
US11231930B2 (en) * 2019-11-25 2022-01-25 Alibaba Group Holding Limited Methods and systems for fetching data for an accelerator
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11803311B2 (en) 2021-03-31 2023-10-31 Advanced Micro Devices, Inc. System and method for coalesced multicast data transfers over memory interfaces

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
JP2881049B2 (ja) * 1991-07-30 1999-04-12 株式会社日立製作所 プリフェッチバッファ
US5721860A (en) * 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US5699548A (en) * 1995-06-01 1997-12-16 Intel Corporation Method and apparatus for selecting a mode for updating external memory
US5941981A (en) * 1997-11-03 1999-08-24 Advanced Micro Devices, Inc. System for using a data history table to select among multiple data prefetch algorithms
US6532505B1 (en) * 1999-11-12 2003-03-11 Infineon Technologies Ag Universal resource access controller
US6496277B1 (en) * 1999-07-23 2002-12-17 Xerox Corporation Data flow control and storage facility for an image reproduction system
US6496905B1 (en) * 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
JP2001166989A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd プリフェッチ機構を有するメモリシステム及びその動作方法
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US20070233955A1 (en) 2000-01-06 2007-10-04 Super Talent Electronics Inc. Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces
US6880073B2 (en) * 2000-12-28 2005-04-12 International Business Machines Corporation Speculative execution of instructions and processes before completion of preceding barrier operations
US6499085B2 (en) * 2000-12-29 2002-12-24 Intel Corporation Method and system for servicing cache line in response to partial cache line request
US6571318B1 (en) * 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
JP3969009B2 (ja) * 2001-03-29 2007-08-29 株式会社日立製作所 ハードウェアプリフェッチシステム
US6801980B2 (en) * 2002-04-25 2004-10-05 International Business Machines Corporation Destructive-read random access memory system buffered with destructive-read memory cache
US6862223B1 (en) 2002-07-05 2005-03-01 Aplus Flash Technology, Inc. Monolithic, combo nonvolatile memory allowing byte, page and block write with no disturb and divided-well in the cell array using a unified cell structure and technology with a new scheme of decoder and layout
US6983356B2 (en) * 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
US6976147B1 (en) * 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7238218B2 (en) * 2004-04-06 2007-07-03 International Business Machines Corporation Memory prefetch method and system
US7472222B2 (en) * 2004-10-12 2008-12-30 Hitachi Global Storage Technologies Netherlands B.V. HDD having both DRAM and flash memory
US7743202B2 (en) * 2006-03-09 2010-06-22 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
CN101558390B (zh) * 2006-12-15 2014-06-18 密克罗奇普技术公司 用于微处理器的可配置高速缓冲存储器
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US20090006813A1 (en) * 2007-06-28 2009-01-01 Abhishek Singhal Data forwarding from system memory-side prefetcher
JP4829191B2 (ja) * 2007-08-30 2011-12-07 株式会社東芝 キャッシュシステム
US20090063895A1 (en) * 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
US8650364B2 (en) * 2008-05-28 2014-02-11 Vixs Systems, Inc. Processing system with linked-list based prefetch buffer and methods for use therewith
US8274829B2 (en) * 2008-06-09 2012-09-25 Aplus Flash Technology, Inc. Row-decoder and source-decoder structures suitable for erase in unit of page, sector and chip of a NOR-type flash operating below +/− 10V BVDS
US20110047313A1 (en) 2008-10-23 2011-02-24 Joseph Hui Memory area network for extended computer systems
US8019921B2 (en) * 2008-11-14 2011-09-13 GlobalFoundries, Inc. Intelligent memory buffer
CN102156628B (zh) * 2010-04-27 2014-04-02 威盛电子股份有限公司 微处理器、预取数据至微处理器的快取存储器阶层的方法
JP2012064158A (ja) * 2010-09-17 2012-03-29 Toshiba Corp メモリ管理装置及びメモリ管理方法
EP2761480A4 (en) * 2011-09-30 2015-06-24 Intel Corp APPARATUS AND METHOD FOR IMPLEMENTING MULTINIVE MEMORY HIERARCHY ON COMMON MEMORY CHANNELS
WO2013100988A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Retrieval of previously accessed data in a multi-core processor
US20140101370A1 (en) * 2012-10-08 2014-04-10 HGST Netherlands B.V. Apparatus and method for low power low latency high capacity storage class memory
US9058278B2 (en) * 2012-12-19 2015-06-16 Advanced Micro Devices, Inc. Tracking prefetcher accuracy and coverage
US9146928B1 (en) 2012-12-31 2015-09-29 Emc Corporation Techniques for storing metadata of a filesystem in persistent memory
US9384136B2 (en) * 2013-04-12 2016-07-05 International Business Machines Corporation Modification of prefetch depth based on high latency event
US9785545B2 (en) 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US10275171B2 (en) 2014-09-16 2019-04-30 Kove Ip, Llc Paging of external memory
US9704563B2 (en) 2014-12-08 2017-07-11 Intel Corporation Apparatus, method and system for performing successive writes to a bank of a dynamic random access memory
US9983997B2 (en) * 2015-07-24 2018-05-29 Futurewei Technologies, Inc. Event based pre-fetch caching storage controller
US10678459B2 (en) * 2015-08-06 2020-06-09 Rambus Inc. High performance, high capacity memory modules and systems
US10176090B2 (en) * 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems

Also Published As

Publication number Publication date
KR102381449B1 (ko) 2022-03-31
US20180089087A1 (en) 2018-03-29
CN107870873B (zh) 2023-08-08
US10866897B2 (en) 2020-12-15
TWI761360B (zh) 2022-04-21
CN107870873A (zh) 2018-04-03
JP2018055683A (ja) 2018-04-05
KR20180034193A (ko) 2018-04-04

Similar Documents

Publication Publication Date Title
TW201814531A (zh) 位元組可定址快閃式記憶體模組及其儲存資料的方法
US11074190B2 (en) Slot/sub-slot prefetch architecture for multiple memory requestors
US11822790B2 (en) Cache line data
US20190018809A1 (en) Memory channel that supports near memory and far memory access
US10642513B2 (en) Partially de-centralized latch management architectures for storage devices
US9135177B2 (en) Scheme to escalate requests with address conflicts
US10169242B2 (en) Heterogeneous package in DIMM
CN114175001B (zh) 存储器感知预取和高速缓存旁路系统和方法
US20190026220A1 (en) Storage device that stores latency information, processor and computing system
US11188256B2 (en) Enhanced read-ahead capability for storage devices
US20170109063A1 (en) Memory system
US8977817B2 (en) System cache with fine grain power management
US20170109277A1 (en) Memory system
US10877889B2 (en) Processor-side transaction context memory interface systems and methods
US11704249B2 (en) Frozen time cache for multi-host read operations
US11354246B2 (en) Memory-side transaction context memory interface systems and methods based on clock cycles and wires
EP3676715B1 (en) Cache buffer