TW201917576A - 記憶體系統及其操作方法 - Google Patents

記憶體系統及其操作方法 Download PDF

Info

Publication number
TW201917576A
TW201917576A TW107117223A TW107117223A TW201917576A TW 201917576 A TW201917576 A TW 201917576A TW 107117223 A TW107117223 A TW 107117223A TW 107117223 A TW107117223 A TW 107117223A TW 201917576 A TW201917576 A TW 201917576A
Authority
TW
Taiwan
Prior art keywords
memory
workload
interface
host
flash memory
Prior art date
Application number
TW107117223A
Other languages
English (en)
Other versions
TWI765044B (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 TW201917576A publication Critical patent/TW201917576A/zh
Application granted granted Critical
Publication of TWI765044B publication Critical patent/TWI765044B/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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage 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/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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0653Monitoring storage devices or systems
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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
    • 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/7207Details relating to flash memory management management of metadata or control data

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)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本發明提供一種記憶體系統和該記憶體系統的操作方法。該方法包括:將第一緩衝區域分配給第一工作負載組;將第二緩衝區域分配給第二工作負載組;監控第一工作負載組延遲和第二工作負載組延遲;以及基於監控的結果動態地調整第一緩衝區域和第二緩衝區域中的每一個的記憶體空間。

Description

記憶體系統及其操作方法
本發明的各個實施例整體關於一種記憶體系統,且更特別地,關於一種被配置成監控主機介面和快閃記憶體介面的性能並基於該監控動態地分配緩衝記憶體的記憶體系統及該記憶體系統的操作方法。
通常的記憶體裝置可包括複數個記憶體區塊,記憶體區塊中的每一個可包括用於儲存資料的複數個記憶體單元。通常,可同時擦除包括在每一個記憶體區塊中的記憶體單元。
包括複數個記憶體裝置的記憶體系統是已知的。在這種記憶體系統中,可將包括在複數個記憶體裝置中的複數個記憶體區塊劃分成複數個超級區塊,每一個超級區塊包括兩個或更多個記憶體區塊。基於超級區塊的管理使得記憶體系統可以更有效地控制複數個記憶體區塊。
包括動態隨機存取記憶體(DRAM)的記憶體系統也是已知的,該動態隨機存取記憶體(DRAM)具有被分配用於主機介面中的工作負載處理的記憶體區域和被分配用於快閃記憶體介面中的工作負載處理的記憶體區域。在這種記憶體系統中,在主機介面和快閃記憶體介面中的工作負載處理性能可能取決於分配給其的各個記憶體區域的大小。
本發明的各個實施例關於一種能夠監控主機介面和快閃記憶體介面的性能並基於主機介面和快閃記憶體介面的性能在主機介面處理和快閃記憶體介面處理之間動態地重新分配緩衝記憶體的記憶體系統和方法。
本發明的一個實施例提供一種記憶體系統的操作方法,包括:將第一緩衝區域分配給第一工作負載組;將第二緩衝區域分配給第二工作負載組;監控第一工作負載組延遲和第二工作負載組延遲;以及基於監控的結果動態地調整第一緩衝區域和第二緩衝區域中的每一個的記憶體空間。
本發明的另一實施例提供一種記憶體系統,包括:主機介面,被配置成與主機通訊並處理從主機接收的主機工作負載;快閃記憶體介面,被配置成與非揮發性記憶體裝置通訊並使用非揮發性記憶體裝置來處理快閃記憶體工作負載;性能監控管理部分,被配置成監控處理主機工作負載和快閃記憶體工作負載的性能;以及緩衝記憶體,包括被分配用於處理主機工作負載的主機工作負載處理區域和被分配用於處理快閃記憶體工作負載的快閃記憶體工作負載處理區域。性能監控管理部分可基於對性能的監控結果來動態地分配主機工作負載處理區域的記憶體空間和快閃記憶體工作負載處理區域的記憶體空間。
本發明的另一實施例提供一種記憶體系統的操作方法,包括:設置透過主機介面處理第一工作負載的第一頻寬;設置透過快閃記憶體介面處理第二工作負載的第二頻寬;監控透過主機介面處理第一工作負載的服務品質(quality of service , QoS);以及基於監控的結果動態地改變第一頻寬和第二頻寬。
從下面結合圖式的描述中,本發明的這些和其它特徵與優點對於本發明所屬領域的普通技術人員將變得顯而易見。
相關申請案的交叉引用: 本申請案請求於2017年10月19日提交的申請號為10-2017-0135912的韓國專利申請案的優先權,其全部內容透過引用併入本文。
現將參照圖式在下文中更全面地描述本發明的示例性實施例;然而,應當注意的是,本發明可以不同的其它形式來實施,並且不應該被解釋為僅限於在此闡述的實施例。相反地,提供這些實施例以便本發明將是徹底且充分的,並且將示例性實施例的範圍全面地傳達給本發明所屬領域的技術人員。
在圖式中,為了說明清楚,可以誇大尺寸。將理解的是,當元件被稱為在兩個元件「之間」時,其可以是這兩個元件之間的唯一元件,或者也可存在一個或複數個中間元件。
在下文中,將參照圖式描述實施例。此處參照作為實施例(和中間結構)的示意圖的截面圖來描述實施例。這樣,將預期到由於例如製造技術和/或偏差而導致的圖示形狀的變化。因此,實施例不應被解釋為限於在此所示的區域的特定形狀,而是可包括例如由製造引起的形狀偏差。在圖式中,為清楚起見,可以誇大層和區域的長度和大小。圖式中相同的元件符號表示相同的元件。
諸如「第一」和「第二」的術語可用於描述各個部件,但其不應限制各個部件。這些術語僅用於區分部件與其它部件的目的。例如,在不脫離本發明的實質內容和範圍的情況下,第一部件可被稱為第二部件,並且第二部件可被稱為第一部件等。此外,「和/或」可包括所提及的部件中的任何一個或組合。
此外,只要在語句中沒有特別提及,則單數形式可包括複數形式。此外,在說明書中使用的「包括/包含」或「包括有/包含有」表示存在或添加一個或複數個部件、步驟、操作和元件。
此外,除非另有定義,否則本說明書中使用的包括技術術語和科學術語的所有術語具有與相關領域的技術人員通常理解的含義相同的含義。通常使用的字典中定義的術語應被解釋為具有與在相關技術的背景下解釋的含義相同的含義,並且除非在本說明書中另有明確定義,否則其不應被解釋為具有理想化或過於正式的含義。
還應注意的是,在本說明書中,「連接/耦接」不僅指一個部件直接地耦接另一部件,而且還指透過中間部件間接地耦接另一部件。另一方面,「直接連接/直接耦接」指一個部件直接地耦接另一部件而沒有中間部件。
圖1是示出根據本發明的實施例的記憶體系統1000的示圖。
參照圖1,記憶體系統1000可包括:即使在電力關閉時也保持所儲存的資料的非揮發性記憶體裝置1100、被配置成臨時儲存資料的緩衝記憶體裝置1300以及被配置成在主機2000的控制下控制非揮發性記憶體裝置1100和緩衝記憶體裝置1300的記憶體控制器1200。
主機2000可使用諸如以下的各種通訊方式中的至少一種與記憶體系統1000通訊:通用序列匯流排(universal serial bus, USB)、序列式AT附件(serial AT attachment, SATA)、序列式SCSI(serial attached SCSI, SAS)、高速晶片互連(high speed interchip, HSIC)、小型電腦系統介面(small computer system interface, SCSI)、週邊元件互連(peripheral component interconnection, PCI)、高速PCI(PCI express, PCIe)、高速非揮發性記憶體(nonvolatile memory express, NVMe)、通用快閃記憶體儲存(universal flash storage, UFS)、安全數位卡(secure digital, SD)、多媒體卡(multimedia card, MMC)、嵌入式MMC(embedded MMC, eMMC)、雙列直插式記憶體模組(dual in-line memory module, DIMM)、暫存式DIMM(registered DIMM, RDIMM)以及降低負載的DIMM(load reduced DIMM, LRDIMM)。
記憶體控制器1200可控制記憶體系統1000的全部操作,並且控制主機2000與非揮發性記憶體裝置1100之間的資料交換。例如,記憶體控制器1200可回應於主機2000的請求而控制非揮發性記憶體裝置1100編程或讀取資料。此外,記憶體控制器1200可控制非揮發性記憶體裝置1100,使得資訊被儲存在包括在非揮發性記憶體裝置1100中的主記憶體區塊和子記憶體區塊中,並且根據針對編程操作而載入的資料量對主記憶體區塊或子記憶體區塊執行編程操作。在實施例中,非揮發性記憶體裝置1100可包括快閃記憶體記憶體。
記憶體控制器1200可控制主機2000與緩衝記憶體裝置1300之間的資料交換,或者將用於控制非揮發性記憶體裝置1100的系統資料暫時儲存在緩衝記憶體裝置1300中。
緩衝記憶體裝置1300可作為記憶體控制器1200的操作記憶體、快取記憶體或緩衝記憶體。緩衝記憶體裝置1300可儲存待由記憶體控制器1200執行的代碼和命令。緩衝記憶體裝置1300可儲存待由記憶體控制器1200處理的資料。
記憶體控制器1200可將從主機2000輸入的資料臨時儲存在緩衝記憶體裝置1300中,然後將臨時儲存在緩衝記憶體裝置1300中的資料傳輸到非揮發性記憶體裝置1100並將其儲存在其中。此外,記憶體控制器1200可從主機2000接收資料和邏輯位址,並且將該邏輯位址轉換成表示資料將被實際儲存在非揮發性記憶體裝置1100中的區域的物理位址。記憶體控制器1200可將表示邏輯位址與物理位址之間的映射關係的邏輯到物理位址映射表儲存在緩衝記憶體裝置1300中。
在實施例中,緩衝記憶體裝置1300可包括雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous dynamic random-access memory, DDR SDRAM)、DDR4 SDRAM、低功率雙倍資料速率4(low power double data rate4, LPDDR4)SDRAM、圖形雙倍資料速率(graphics double data rate, GDDR)SDRAM、低功率DDR(low power DDR, LPDDR)或Rambus動態隨機存取記憶體(rambus dynamic random-access memory, RDRAM)。
圖2是示出圖1所示的記憶體控制器1200的示圖。
參照圖2,記憶體控制器1200可包括處理器710、記憶體緩衝器720、命令排隊部分730、主機介面740、緩衝器控制部分750、快閃記憶體介面760、緩衝記憶體裝置介面780和匯流排790。快閃記憶體介面760可包括錯誤校正碼(error correction code, ECC)電路7601和資料隨機性產生器7602。
匯流排790可提供記憶體控制器1200的部件之間的通道。
處理器710可控制記憶體控制器1200的全部操作,並且可執行邏輯操作。處理器710可透過主機介面740與外部主機2000通訊,並且透過快閃記憶體介面760與非揮發性記憶體裝置1100通訊。此外,處理器710可透過緩衝記憶體裝置介面780與緩衝記憶體裝置1300通訊。處理器710可透過緩衝器控制部分750來控制記憶體緩衝器720。處理器710可使用記憶體緩衝器720作為操作記憶體、快取記憶體或緩衝記憶體來控制記憶體系統1000的操作。
命令排隊部分730可對從主機2000輸入的複數個命令進行排隊。該操作被稱為多排隊操作。命令排隊部分730可依序地將排隊的命令傳輸到非揮發性記憶體裝置1100。命令排隊部分730可包括嵌入式SRAM(embedded static random-access memory, embedded SRAM)。例如,命令排隊部分730可被包括在處理器710中。可選地,命令排隊部分730可被包括在快閃記憶體介面760中。
記憶體緩衝器720可作為處理器710的操作記憶體、快取記憶體或緩衝記憶體。記憶體緩衝器720可儲存待由處理器710執行的代碼和命令。記憶體緩衝器720可儲存待由處理器710處理的資料。記憶體緩衝器720可包括嵌入式靜態RAM(嵌入式SRAM)或嵌入式動態RAM(嵌入式DRAM)。
主機介面740可在處理器710的控制下與外部主機2000進行通訊。主機介面740可使用諸如以下的各種通訊方式中的至少一種來執行通訊:通用序列匯流排(USB)、序列式AT附件(SATA)、序列式SCSI(SAS)、高速晶片互連(HSIC)、小型電腦系統介面(SCSI)、週邊元件互連(PCI)、高速PCI(PCIe)、高速非揮發性記憶體(NVMe)、通用快閃記憶體儲存(UFS)、安全數位卡(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存式DIMM(RDIMM)以及降低負載的DIMM(LRDIMM)。
緩衝器控制部分750可在處理器710的控制下控制記憶體緩衝器720。
快閃記憶體介面760可在處理器710的控制下與非揮發性記憶體裝置1100通訊。快閃記憶體介面760可透過通道與非揮發性記憶體裝置1100通訊命令、位址和資料。
例如,記憶體控制器1200可既不包括記憶體緩衝器720也不包括緩衝器控制部分750。
例如,處理器710可使用代碼來控制記憶體控制器1200的操作。處理器710可從設置在記憶體控制器1200中的非揮發性記憶體裝置(例如,唯讀記憶體)載入代碼。可選地,處理器710可透過快閃記憶體介面760從非揮發性記憶體裝置1100載入代碼。
快閃記憶體介面760可包括ECC電路7601。ECC電路7601可執行錯誤校正。ECC電路7601可基於待透過快閃記憶體介面760寫入非揮發性記憶體裝置1100中的資料來執行ECC編碼。ECC編碼的資料可透過快閃記憶體介面760傳輸到非揮發性記憶體裝置1100。ECC電路7601可對透過快閃記憶體介面760從非揮發性記憶體裝置1100接收的資料執行ECC解碼。
快閃記憶體介面760可包括資料隨機性產生器7602。資料隨機性產生器7602可對資料進行隨機化或對隨機化的資料進行去隨機化。資料隨機性產生器7602可對待透過快閃記憶體介面760寫入非揮發性記憶體裝置1100中的資料執行資料隨機化操作。隨機化的資料可透過快閃記憶體介面760傳輸到非揮發性記憶體裝置1100。資料隨機性產生器7602可對透過快閃記憶體介面760從非揮發性記憶體裝置1100接收的資料執行資料去隨機化操作。
例如,記憶體控制器1200的匯流排790可被劃分成控制匯流排和資料匯流排。資料匯流排可在記憶體控制器1200中傳輸資料。控制匯流排可在記憶體控制器1200中傳輸諸如命令和位址的控制資訊。資料匯流排和控制匯流排可彼此分開,並且可既不互相干擾也不互相影響。資料匯流排可耦接到主機介面740、緩衝器控制部分750、快閃記憶體介面760和緩衝記憶體裝置介面780。控制匯流排可耦接到主機介面740、處理器710、緩衝器控制部分750、快閃記憶體介面760和緩衝記憶體裝置介面780。
緩衝記憶體裝置介面780可在處理器710的控制下與緩衝記憶體裝置1300通訊。緩衝記憶體裝置介面780可透過通道與緩衝記憶體裝置1300通訊命令、位址和資料。
圖3是示出根據本發明的實施例的記憶體系統1000的示圖。圖3示出了包括記憶體控制器1200和透過複數個通道CH1~CHk耦接到記憶體控制器1200的複數個非揮發性記憶體裝置1100的記憶體系統1000。
參照圖3,記憶體控制器1200可透過通道CH1~CHk與非揮發性記憶體裝置1100通訊。記憶體控制器1200可包括複數個通道介面1201。通道CH1~CHk中的每一個可耦接到通道介面1201中對應的一個。例如,第一通道CH1可耦接到第一通道介面1201,第二通道CH2可耦接到第二通道介面1201,並且第k通道CHk可耦接到第k通道介面1201。通道CH1~CHk中的每一個可耦接到一個或複數個非揮發性記憶體裝置1100。耦接到不同通道的非揮發性記憶體裝置1100可彼此獨立地操作。例如,耦接到第一通道CH1的非揮發性記憶體裝置1100可獨立於耦接到第二通道CH2的非揮發性記憶體裝置1100進行操作。例如,記憶體控制器1200可透過第一通道CH1與耦接到第一通道CH1的非揮發性記憶體裝置1100通訊資料或命令,並且平行地,透過第二通道CH2與耦接到第二通道CH2的非揮發性記憶體裝置1100通訊資料或命令。
通道CH1~CHk中的每一個可耦接到複數個非揮發性記憶體裝置1100。耦接到每一個通道的非揮發性記憶體裝置1100可分別形成不同的路。例如,N個非揮發性記憶體裝置1100可耦接到每一個通道,並且每一個非揮發性記憶體裝置1100可形成一條不同的路。例如,第一至第N非揮發性記憶體裝置1100可耦接到第一通道CH1。第一非揮發性記憶體裝置1100可形成第一路Way1,第二非揮發性記憶體裝置1100可形成第二路Way2,並且第N非揮發性記憶體裝置1100可形成第N路WayN。可選地,與圖2的示例不同,兩個或更多個非揮發性記憶體裝置1100可形成單條路。
因為第一至第N非揮發性記憶體裝置1100共享第一通道CH1,所以耦接到第一通道CH1的第一至第N非揮發性記憶體裝置1100可接連地與記憶體控制器1200通訊資料或命令,而非同時平行地與記憶體控制器1200通訊資料或命令。換言之,當記憶體控制器1200透過第一通道CH1將資料發送到形成第一通道CH1的第一路Way1的第一非揮發性記憶體裝置1100時,形成第一通道CH1的第二路Way2至第N路WayN的第二至第N非揮發性記憶體裝置1100中的每一個不能透過第一通道CH1與記憶體控制器1200通訊資料或命令。換言之,當共享第一通道CH1的第一至第N非揮發性記憶體裝置1100中的任何一個佔用第一通道CH1時,耦接到第一通道CH1的其它非揮發性記憶體裝置1100不能使用第一通道CH1。
形成第一通道CH1的第一路Way1的第一非揮發性記憶體裝置1100和形成第二通道CH2的第一路Way1的第一非揮發性記憶體裝置1100可獨立地與記憶體控制器1200通訊。換言之,當記憶體控制器1200透過第一通道CH1和第一通道介面1201與形成第一通道CH1的第一路Way1的第一非揮發性記憶體裝置1100通訊資料時,同時地,記憶體控制器1200可透過第二通道CH2和第二通道介面1201與形成第二通道CH2的第一路Way1的第一非揮發性記憶體裝置1100通訊資料。
圖4是示出圖1所示的非揮發性記憶體裝置1100的示圖。
參照圖4,非揮發性記憶體裝置1100可包括被配置成儲存資料的記憶體單元陣列100。非揮發性記憶體裝置1100可包括週邊電路200,週邊電路200被配置成執行用於將資料儲存在記憶體單元陣列100中的編程操作、用於輸出所儲存的資料的讀取操作和用於擦除所儲存的資料的擦除操作。非揮發性記憶體裝置1100可包括被配置成在記憶體控制器(圖1的1200)的控制下控制週邊電路200的控制邏輯300。
記憶體單元陣列100可包括複數個記憶體區塊BLK1~BLKm(110;m為正整數)。區域線LL和位元線BL1~BLn(n為正整數)可耦接到記憶體區塊BLK1~BLKm(110)中的每一個。例如,區域線LL可包括第一選擇線、第二選擇線以及佈置在第一選擇線和第二選擇線之間的複數個字元線。此外,區域線LL可包括佈置在第一選擇線和字元線之間以及佈置在第二選擇線和字元線之間的虛擬線。此處,第一選擇線可以是源極選擇線,第二選擇線可以是汲極選擇線。例如,區域線LL可包括字元線、汲極選擇線、源極選擇線和源極線。區域線LL可進一步包括虛擬線。另外,區域線LL可進一步包括管線。區域線LL可耦接到記憶體區塊BLK1~BLKm(110)中的每一個。位元線BL1~BLn可共同耦接到記憶體區塊BLK1~BLKm(110)。記憶體區塊BLK1~BLKm(110)可實現為二維或三維結構。例如,在具有二維結構的記憶體區塊110中,記憶體單元可在平行於基底的方向上佈置。例如,在具有三維結構的記憶體區塊110中,記憶體單元可在垂直於基底的方向上堆疊。
週邊電路200可在控制邏輯300的控制下對所選擇的記憶體區塊110執行編程操作、讀取操作和擦除操作。例如,在控制邏輯300的控制下,週邊電路200可將驗證電壓和通過電壓提供給第一選擇線、第二選擇線和字元線,選擇性地使第一選擇線、第二選擇線和字元線放電,並且驗證耦接到字元線之中所選擇的字元線的記憶體單元。例如,週邊電路200可包括電壓產生電路210、行解碼器220、頁面緩衝器組230、列解碼器240、輸入/輸出電路250和感測電路260。
電壓產生電路210可回應於操作信號OP_CMD產生用於編程操作、讀取操作和擦除操作的各種操作電壓Vop。此外,電壓產生電路210可回應於操作信號OP_CMD選擇性地使區域線LL放電。例如,在控制邏輯300的控制下,電壓產生電路210可產生編程電壓、驗證電壓、通過電壓、開啟電壓、讀取電壓、擦除電壓、源極線電壓等。
行解碼器220可回應於行位址RADD將操作電壓Vop傳輸到與所選擇的記憶體區塊110耦接的區域線LL。
頁面緩衝器組230可包括耦接到位元線BL1~BLn的複數個頁面緩衝器PB1~PBn(231)。頁面緩衝器PB1~PBn(231)可回應於頁面緩衝器控制信號PBSIGNALS進行操作。例如,在讀取操作或驗證操作期間,頁面緩衝器PB1~PBn(231)可臨時儲存透過位元線BL1~BLn接收的資料,或者可感測位元線BL1~BLn的電壓或電流。
列解碼器240可回應於列位址CADD在輸入/輸出電路250和頁面緩衝器組230之間傳輸資料。例如,列解碼器240可透過資料線DL與頁面緩衝器231交換資料,或者可透過列線CL與輸入/輸出電路250交換資料。
輸入/輸出電路250可將從記憶體控制器(圖1的1200)接收的命令CMD或位址ADD傳輸到控制邏輯300,或者可與列解碼器240交換資料。
在讀取或驗證操作期間,感測電路260可回應於致能位元VRY_BIT<#>而產生參考電流,並且可將從頁面緩衝器組230接收到的感測電壓VPB與由參考電流產生的參考電壓進行比較,並輸出通過信號PASS或失敗信號FAIL。
控制邏輯300可回應於命令CMD和位址ADD來輸出操作信號OP_CMD、行位址RADD、頁面緩衝器控制信號PBSIGNALS和致能位元VRY_BIT<#>,從而控制週邊電路200。另外,控制邏輯300可回應於通過信號PASS或失敗信號FAIL來確定目標記憶體單元是已通過驗證操作還是未通過驗證操作。
在非揮發性記憶體裝置1100的操作中,每一個記憶體區塊110可以是擦除操作的基本單位。換言之,包括在每一個記憶體區塊110中的複數個記憶體單元可被同時擦除而非被選擇性地擦除。
圖5是示出圖4所示的記憶體區塊110的示圖。
參照圖5,在記憶體區塊110中,彼此平行佈置的複數個字元線可耦接在第一選擇線和第二選擇線之間。此處,第一選擇線可以是源極選擇線SSL,第二選擇線可以是汲極選擇線DSL。更詳細地,記憶體區塊110可包括耦接在位元線BL1~BLn與源極線SL之間的複數個串ST。位元線BL1~BLn可分別耦接到串ST,並且源極線SL可共同耦接到串ST。串ST可具有相同的配置;因此,將透過示例詳細描述耦接到第一位元線BL1的串ST。
串ST可包括彼此串聯耦接在源極線SL和第一位元線BL1之間的源極選擇電晶體SST、複數個記憶體單元F1~F16以及汲極選擇電晶體DST。每一個串ST中可包括至少一個源極選擇電晶體SST和至少一個汲極選擇電晶體DST,並且在每一個串ST中可包括比圖中所示的記憶體單元F1~F16的數量更多的記憶體單元。
源極選擇電晶體SST的源極可耦接到源極線SL,汲極選擇電晶體DST的汲極可耦接到第一位元線BL1。記憶體單元F1~F16可串聯耦接在源極選擇電晶體SST和汲極選擇電晶體DST之間。包括在不同串ST中的源極選擇電晶體SST的閘極可耦接到源極選擇線SSL,汲極選擇電晶體DST的閘極可耦接到汲極選擇線DSL,並且記憶體單元F1~F16的閘極可耦接到複數個字元線WL1~WL16。在包括在不同串ST中的記憶體單元中,耦接到每一個字元線的一組記憶體單元可被稱為物理頁面PPG。因此,包括在記憶體區塊110中的物理頁面PPG的數量可對應於字元線WL1~WL16的數量。
每一個記憶體單元可儲存1位元資料。該記憶體單元通常被稱為單層單元SLC。在這種情況下,每一個物理頁面PPG可儲存單個邏輯頁面LPG的資料。每一個邏輯頁面LPG的資料可包括與包括在單個物理頁面PPG中的單元的數量相對應的資料位元。每一個記憶體單元可儲存2位元或更多位元資料。該記憶體單元通常被稱為多層單元MLC。在這種情況下,每一個物理頁面PPG可儲存兩個或更多個邏輯頁面LPG的資料。
包括在每一個物理頁面PPG中的複數個記憶體單元可被同時編程。換言之,非揮發性記憶體裝置1100可基於物理頁面(PPG)執行編程操作。包括在每一個記憶體區塊中的複數個記憶體單元可被同時擦除。換言之,非揮發性記憶體裝置1100可基於記憶體區塊來執行擦除操作。例如,為了更新儲存在一個記憶體區塊110中的一些資料,可讀取儲存在記憶體區塊110中的全部資料,可改變全部資料中需要更新的資料,然後可將全部資料重新編程到另一記憶體區塊110。其原因在於,在每一個記憶體區塊110是非揮發性記憶體裝置1100的擦除操作的基本單位的情況下,不可能僅擦除儲存在記憶體區塊110中的一些資料並再次將新資料編程到其中。記憶體裝置的這種特性可能是使垃圾收集操作複雜化的因素之一。此外,當由於記憶體單元的使用劣化而導致包括在記憶體區塊110中的一些記憶體單元中發生錯誤時,相關聯的記憶體區塊110可被視為壞區塊,並且包括在該壞區塊中的所有記憶體單元不能被使用。
圖6是示出根據本發明的實施例的用於緩衝記憶體裝置1300的示例性配置的示圖。
參照圖6,緩衝記憶體裝置1300可包括物理-邏輯位址映射資訊儲存區域1301、主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。
例如,當從主機2000向記憶體系統1000輸入讀取命令和與讀取命令相對應的邏輯位址時,記憶體控制器1200的處理器710可從物理-邏輯位址映射資訊儲存區域1301讀取與邏輯位址相對應的物理位址。記憶體控制器1200的快閃記憶體介面760可基於從物理-邏輯位址映射資訊儲存區域1301讀出的物理位址而執行從非揮發性記憶體裝置1100讀取與讀取命令相對應的資料的操作,並將讀取資料臨時儲存在緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303中。
從主機2000輸入並由非揮發性記憶體裝置1100執行的一個或複數個命令可在圖2的命令排隊部分730中排隊。記憶體系統1000可從主機2000接收複數個命令,使它們在命令排隊部分730中排隊,並改變排隊的命令的處理順序。
快閃記憶體介面760可基於讀取命令和與邏輯位址相對應的物理位址從非揮發性記憶體裝置1100讀出讀取資料,並且可將讀取資料臨時儲存在緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303中。此處,如果快閃記憶體工作負載處理區域1303的記憶體容量不足,則處理器710可延遲將讀取命令輸入在非揮發性記憶體裝置1100中。換言之,在快閃記憶體工作負載處理區域1303中用於讀取命令處理的記憶體空間得到保證之前,處理器710可延遲讀取命令處理操作。也就是說,當快閃記憶體工作負載處理區域1303的記憶體空間不足時,增加對讀取命令處理的延遲。臨時儲存在緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303中的讀取資料可被傳輸到主機2000,並且之後從快閃記憶體工作負載處理區域1303擦除。已擦除的空間因此變得可用,並且可用於其它目的。換言之,在讀取資料已被傳輸到主機2000之後,可從快閃記憶體工作負載處理區域1303擦除讀取資料。然後,已擦除讀取資料的記憶體空間被分配用於新的工作負載。
因此,例如,如果快閃記憶體工作負載處理區域1303的記憶體容量相對較小,則用於待在非揮發性記憶體裝置1100中處理的工作負載的記憶體空間,例如在處理讀取命令時用於臨時儲存從非揮發性記憶體裝置1100讀出的資料的記憶體空間可能不足。因此,可能增加非揮發性記憶體裝置1100的工作負載處理的延遲。
另外,作為示例,當透過主機介面740從主機2000輸入編程命令、編程資料和與編程命令相對應的邏輯位址時,主機介面740可將邏輯位址傳輸到記憶體控制器1200的處理器710,並且處理器710可分配非揮發性記憶體裝置1100中用於儲存編程資料的記憶體區塊110,並且可將從主機介面740輸入的邏輯位址和分配的記憶體區塊110之間的物理-邏輯位址映射資訊儲存在物理-邏輯位址映射資訊儲存區域1301中。隨後,記憶體控制器1200的處理器710可基於物理位址執行將編程資料編程到非揮發性記憶體裝置1100的分配的記憶體區塊110的操作。
此處,主機介面740可將從主機2000輸入的編程資料臨時儲存在緩衝記憶體裝置1300的主機工作負載處理區域1302中。此後,臨時儲存在緩衝記憶體裝置1300的主機工作負載處理區域1302中的編程資料可被編程到非揮發性記憶體裝置1100,並且之後從主機工作負載處理區域1302中擦除。已擦除的空間因此得到釋放,並且可用於其它目的。換言之,在編程資料已被編程到非揮發性記憶體裝置1100之後,編程資料可以從主機工作負載處理區域1302中擦除。然後,已擦除編程資料的記憶體空間可被分配用於新的工作負載。此處,如果主機工作負載處理區域1302的記憶體容量相對較小,則用於待透過主機介面740處理的工作負載的記憶體空間,例如用於接收編程命令並臨時儲存編程資料的記憶體空間可能不足。因此,增加了透過主機介面740的工作負載處理的延遲。
在實施例中,物理-邏輯位址映射資訊儲存區域1301,主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303可包括在圖2的記憶體緩衝器720中。如上所述,記憶體緩衝器720可包括嵌入式SRAM。緩衝記憶體裝置1300和記憶體緩衝器720可統稱為緩衝記憶體。
圖7是示出根據本發明的實施例的處理器710的示例性配置的示圖。
參照圖7,記憶體控制器1200的處理器710可包括性能監控管理部分711和郵箱712。性能監控管理部分711可包括介面性能監控部分7111、動態緩衝器分配部分7112和介面頻寬控制部分7113。
介面性能監控部分7111可監控主機介面740處理從主機2000接收的主機工作負載的性能。主機工作負載可統稱為主機工作負載組。主機介面740處理主機工作負載的性能可透過監控處理主機工作負載所需的延遲來推斷。換言之,介面性能監控部分7111可監控主機介面740處理從主機接收的主機工作負載所需的延遲。
介面性能監控部分7111可監控主機2000請求的工作負載的服務品質(quality of service ,QoS)。主機2000請求的工作負載的QoS可表示針對各個工作負載所產生的延遲的平均值。在實施例中,由於針對各個工作負載所產生的延遲之中的一些大幅偏離的延遲,主機2000請求的工作負載的QoS可能顯著劣化。
為了提高主機2000請求的工作負載的QoS,記憶體系統1000預測針對各個工作負載將產生的延遲,並對它們進行管理以防止它們大幅偏離可預測的程度。
介面性能監控部分7111可監控快閃記憶體介面760透過非揮發性記憶體裝置1100處理與命令排隊部分730中排隊的命令相對應的快閃記憶體工作負載的性能。快閃記憶體工作負載可由快閃記憶體介面760透過非揮發性記憶體裝置1100來處理。快閃記憶體工作負載可統稱為快閃記憶體工作負載組。快閃記憶體介面760處理快閃記憶體工作負載的性能可透過監控處理快閃記憶體工作負載所需的延遲來推斷。換言之,介面性能監控部分7111可監控快閃記憶體介面760透過非揮發性記憶體裝置1100處理快閃記憶體工作負載所需的延遲。在與命令排隊部分730中排隊的命令相對應的快閃記憶體工作負載已透過非揮發性記憶體裝置1100被完全處理之後,可從命令排隊部分730中擦除對應的命令。換言之,介面性能監控部分7111可透過監控與命令排隊部分730中排隊或從命令排隊部分730中擦除的命令相對應的快閃記憶體工作負載來推斷快閃記憶體介面760的性能。
介面性能監控部分7111可監控待透過主機介面740處理的主機工作負載組的延遲和待透過快閃記憶體介面760處理的快閃記憶體工作負載組的延遲,並且計算兩種延遲的比率。主機工作負載組的延遲可以是形成主機工作負載組的複數個主機工作負載的延遲的平均值。快閃記憶體工作負載組的延遲可以是形成快閃記憶體工作負載組的複數個快閃記憶體工作負載的延遲的平均值。可透過將主機工作負載組的延遲除以快閃記憶體工作負載組的延遲來獲得該比率。例如,如果比率為1.2,則主機工作負載組的延遲是快閃記憶體工作負載組的延遲的1.2倍。在這種情況下,如參照圖6所述,記憶體系統1000可擴大緩衝記憶體裝置1300的主機工作負載處理區域1302並且還可相應地減少快閃記憶體工作負載處理區域1303,從而減少主機工作負載組的延遲,同時增加快閃記憶體工作負載組的延遲。
動態緩衝器分配部分7112可將初始值分配給緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303中的每一個。動態緩衝器分配部分7112可基於由介面性能監控部分7111監控並透過主機介面740處理的主機工作負載組的延遲和由介面性能監控部分7111監控並透過快閃記憶體介面760處理的快閃記憶體工作負載組的延遲兩者來動態地分配緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。換言之,動態緩衝器分配部分7112可基於主機介面740處理主機工作負載組並由介面性能監控部分7111監控的性能和快閃記憶體介面760處理快閃記憶體工作負載組並由介面性能監控部分7111監控的性能兩者來動態地分配緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。主機介面740處理主機工作負載組的性能可以是主機介面740處理包括在主機工作負載組中的各個主機工作負載的性能的平均值。類似地,快閃記憶體介面760處理快閃記憶體工作負載組的性能可以是快閃記憶體介面760處理包括在快閃記憶體工作負載組中的各個快閃記憶體工作負載的性能的平均值。
例如,當透過主機介面740處理的主機工作負載組的延遲比待透過快閃記憶體介面760處理的快閃記憶體工作負載組的延遲大第一參考值以上的量時,動態緩衝器分配部分7112可動態地將更多的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更少的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。相反地,當透過快閃記憶體介面760處理的快閃記憶體工作負載組的延遲比待透過主機介面740處理的主機工作負載組的延遲大第二參考值以上的量時,動態緩衝器分配部分7112可動態地將更少的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更多的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。
此外,當主機介面740處理主機工作負載組的性能比快閃記憶體介面760處理快閃記憶體工作負載組的性能大第一參考值以上的量時,動態緩衝器分配部分7112可動態地將更少的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更多的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。相反地,當快閃記憶體介面760處理快閃記憶體工作負載組的性能比主機介面740處理主機工作負載組的性能大第二參考值以上的量時,動態緩衝器分配部分7112可動態地將更多的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更少的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。
此外,當透過將透過主機介面740處理主機工作負載組的延遲除以透過快閃記憶體介面760處理快閃記憶體工作負載組的延遲所獲得的值,即主機工作負載組的延遲與快閃記憶體工作負載組的延遲的比率,等於或大於第一參考值時,動態緩衝器分配部分7112可動態地將更多的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更少的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。相反地,當透過將透過主機介面740處理主機工作負載組的延遲除以透過快閃記憶體介面760處理快閃記憶體工作負載組的延遲所獲得的值,即主機工作負載組的延遲與快閃記憶體工作負載組的延遲的比率,等於或小於第二參考值時,動態緩衝器分配部分7112可動態地將更少的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更多的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。第一參考值和第二參考值可被選擇為彼此不同。第一參考值和第二參考值可被選擇為相同,在這種情況下,當主機工作負載組的延遲與快閃記憶體工作負載組的延遲的比率小於參考值時,動態緩衝器分配部分7112可動態地將更少的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更多的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303,並且當主機工作負載組的延遲與快閃記憶體工作負載組的延遲的比率等於或大於參考值時,動態緩衝器分配部分7112可動態地將更多的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更少的記憶體空間分配給快閃記憶體工作負載處理區域1303。
動態緩衝器分配部分7112可基於由介面性能監控部分7111監控的主機2000請求的工作負載的QoS來動態地分配緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。例如,當由介面性能監控部分7111監控的QoS為參考值或更小的情況下,動態緩衝器分配部分7112可動態地將更少的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更多的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。
動態緩衝器分配部分7112可基於由介面性能監控部分7111監控的快閃記憶體介面760透過非揮發性記憶體裝置1100處理與命令排隊部分730中排隊的命令相對應的快閃記憶體工作負載的性能分配緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。例如,當由介面性能監控部分7111監控的處理與命令排隊部分730中排隊的命令相對應的快閃記憶體工作負載的性能等於參考值或更小時,動態緩衝器分配部分7112可動態地將更少的記憶體空間分配給緩衝記憶體裝置1300的主機工作負載處理區域1302並將更多的記憶體空間分配給緩衝記憶體裝置1300的快閃記憶體工作負載處理區域1303。
緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的總和可以是恆定的。換言之,動態緩衝器分配部分7112可基於由介面性能監控部分7111監控的主機介面740的性能和快閃記憶體介面760的性能,動態地對具有恆定大小的緩衝記憶體空間進行劃分並將劃分的記憶體空間分配給主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。也就是說,如果擴大了主機工作負載處理區域1302,則可減少快閃記憶體工作負載處理區域1303。相反地,如果減少了主機工作負載處理區域1302,則可擴大快閃記憶體工作負載處理區域1303。
介面頻寬控制部分7113可初始化主機介面740處理主機工作負載組的頻寬以及快閃記憶體介面760處理快閃記憶體工作負載組的頻寬。介面頻寬控制部分7113可基於由介面性能監控部分7111監控並透過主機介面740處理的主機工作負載組的延遲和由介面性能監控部分7111監控並透過快閃記憶體介面760處理的快閃記憶體工作負載組的延遲兩者來改變主機介面740用於處理主機工作負載組的操作頻寬和快閃記憶體介面760用於處理快閃記憶體工作負載組的操作頻寬。換言之,介面頻寬控制部分7113可基於主機介面740處理主機工作負載組並由介面性能監控部分7111監控的性能和快閃記憶體介面760處理快閃記憶體工作負載組並由介面性能監控部分7111監控的性能兩者來改變主機介面740用於處理主機工作負載組的操作頻寬和快閃記憶體介面760用於處理快閃記憶體工作負載組的操作頻寬。
例如,當透過主機介面740處理的主機工作負載組的延遲比待透過快閃記憶體介面760處理的快閃記憶體工作負載組的延遲大參考值以上的量時,介面頻寬控制部分7113可增加主機介面740用於處理主機工作負載組的操作頻寬,並且減少快閃記憶體介面760用於處理快閃記憶體工作負載組的操作頻寬。相反地,當待透過快閃記憶體介面760處理的快閃記憶體工作負載組的延遲比待透過主機介面740處理的主機工作負載組的延遲大參考值以上的量時,介面頻寬控制部分7113可減少主機介面740的操作頻寬並增加快閃記憶體介面760的操作頻寬。
此外,當主機介面740處理主機工作負載組的性能比快閃記憶體介面760處理快閃記憶體工作負載組的性能大參考值以上的量時,介面頻寬控制部分7113可減少主機介面740的操作頻寬並增加快閃記憶體介面760的操作頻寬。相反地,當快閃記憶體介面760處理快閃記憶體工作負載組的性能比主機介面740處理主機工作負載組的性能大參考值以上的量時,介面頻寬控制部分7113可增加主機介面740的操作頻寬並減少快閃記憶體介面760的操作頻寬。
此外,當透過將透過主機介面740處理主機工作負載組的延遲除以透過快閃記憶體介面760處理快閃記憶體工作負載組的延遲所獲得的值,即主機工作負載組的延遲與快閃記憶體工作負載組的延遲的比率,等於或大於第一參考值時,介面頻寬控制部分7113可增加主機介面740的操作頻寬並減少快閃記憶體介面760的操作頻寬。相反地,當透過將透過主機介面740處理主機工作負載組的延遲除以透過快閃記憶體介面760處理快閃記憶體工作負載組的延遲所獲得的值,即主機工作負載組的延遲與快閃記憶體工作負載組的延遲的比率,等於或小於第二參考值時,介面頻寬控制部分7113可減少主機介面740的操作頻寬並增加快閃記憶體介面760的操作頻寬。第一參考值和第二參考值可相同或不同。
介面頻寬控制部分7113可基於由介面性能監控部分7111監控的主機2000請求的工作負載的QoS來動態地改變主機介面740的操作頻寬和快閃記憶體介面760的操作頻寬。例如,當由介面性能監控部分7111監控的QoS等於參考值或更小時,介面頻寬控制部分7113可增加主機介面740的操作頻寬,並相對地減少快閃記憶體介面760的操作頻寬。
介面頻寬控制部分7113可基於快閃記憶體介面760透過非揮發性記憶體裝置1100處理與命令排隊部分730中排隊的命令相對應的快閃記憶體工作負載並由介面性能監控部分7111監控的性能來動態地改變主機介面740的操作頻寬和快閃記憶體介面760的操作頻寬。例如,當處理與命令排隊部分730中排隊的命令相對應的快閃記憶體工作負載並由介面性能監控部分7111監控的性能為參考值或更小時,介面頻寬控制部分7113可增加快閃記憶體介面760的操作頻寬並相對地減少主機介面740的操作頻寬。
介面頻寬控制部分7113可基於由動態緩衝器分配部分7112分配的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間來動態地改變主機介面740的操作頻寬和快閃記憶體介面760的操作頻寬。換言之,當動態緩衝器分配部分7112分配主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303使得主機工作負載處理區域1302的記憶體空間增加並且快閃記憶體工作負載處理區域1303的記憶體空間減少時,介面頻寬控制部分7113可增加快閃記憶體介面760的操作頻寬並相對地減少主機介面740的操作頻寬。相反地,當動態緩衝器分配部分7112分配主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303使得主機工作負載處理區域1302的記憶體空間減少並且快閃記憶體工作負載處理區域1303的記憶體空間增加時,介面頻寬控制部分7113可減少快閃記憶體介面760的操作頻寬並相對地增加主機介面740的操作頻寬。
在實施例中,動態緩衝器分配部分7112可基於由介面頻寬控制部分7113改變的主機介面740的頻寬和快閃記憶體介面760的頻寬來將記憶體空間分配給主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。換言之,當介面頻寬控制部分7113增加快閃記憶體介面760的頻寬並相對地減少主機介面740的頻寬時,動態緩衝器分配部分7112可將更多的記憶體空間分配給主機工作負載處理區域1302並將更少的記憶體空間分配給快閃記憶體工作負載處理區域1303。相反地,當介面頻寬控制部分7113減少快閃記憶體介面760的頻寬並相對地增加主機介面740的頻寬時,動態緩衝器分配部分7112可將更少的記憶體空間分配給主機工作負載處理區域1302並將更多的記憶體空間分配給快閃記憶體工作負載處理區域1303。
郵箱712可以是當處理器710與主機介面740或快閃記憶體介面760交換關於編程資料或讀取資料的資訊(即關於邏輯位址或資料是否有效的資訊)時待使用的記憶體空間。郵箱712可包括嵌入式SRAM。介面性能監控部分7111可使用透過郵箱712交換的資料或邏輯位址來監控主機介面740中處理的主機工作負載組的工作負載量或主機介面740的工作負載處理性能,以及監控快閃記憶體介面760中處理的快閃記憶體工作負載組的工作負載量或快閃記憶體介面760的工作負載處理性能。
圖8是根據本發明的實施例的動態性能控制方法的流程圖。
參照圖8,在步驟S801中,當在記憶體系統1000中開始動態性能控制操作時,初始化緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。在步驟S801中,可向主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303中的每一個分配初始記憶體空間。步驟S801可由動態緩衝器分配部分7112執行。
在步驟S802中,可初始化記憶體系統1000的主機介面740和快閃記憶體介面760中的每一個的頻寬。步驟S802可由介面頻寬控制部分7113執行。步驟S802可在步驟S801之後執行。可選地,步驟S802可在步驟S801之前執行。進一步可選地,可同時執行步驟S802和步驟S801。
在執行完步驟S801和步驟S802之後,在步驟S803中,可監控主機介面740和快閃記憶體介面760產生的與工作負載處理相關的延遲。步驟S803可由介面性能監控部分7111執行。在主機介面740和快閃記憶體介面760的工作負載處理中產生的延遲可以是主機介面740和快閃記憶體介面760的工作負載處理性能的指標。換言之,介面性能監控部分7111可使用在主機介面740和快閃記憶體介面760的工作負載處理中產生的延遲來預測主機介面740的性能和快閃記憶體介面760的性能。步驟S804可由介面性能監控部分7111執行。
此處,在步驟S804中,可確定主機介面740和快閃記憶體介面760的工作負載處理的延遲的比率是否等於或大於第一參考值。
如果主機介面740和快閃記憶體介面760的工作負載處理的延遲的比率為第一參考值或更大(步驟S804中為「是」),則在步驟S805中,可執行分配緩衝記憶體裝置1300的記憶體空間的操作,即可擴大緩衝記憶體裝置1300的主機工作負載處理區域1302,並且可減少快閃記憶體工作負載處理區域1303。主機介面740和快閃記憶體介面760的工作負載處理的延遲的比率可以是透過將主機介面740的工作負載處理的延遲除以快閃記憶體介面760的工作負載處理的延遲而獲得的值。步驟S805可由動態緩衝器分配部分7112執行。
如果主機介面740和快閃記憶體介面760的工作負載處理延遲的比率為第一參考值或更大(步驟S804中為「是」),則可改變主機介面740和快閃記憶體介面760的頻寬。換言之,在步驟S806中,基於在步驟S805中分配的緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間,或者透過給予主機介面740的工作負載以權重,可增加主機介面740用於處理主機工作負載組的頻寬,並且可相對地減少快閃記憶體介面760用於處理快閃記憶體工作負載組的頻寬。步驟S806可由介面頻寬控制部分7113執行。
無論主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間如何,都可基於步驟S804的監控結果來透過介面頻寬控制部分7113改變主機介面740和快閃記憶體介面760的頻寬。換言之,可平行地執行步驟S805和步驟S806,即分配緩衝記憶體裝置1300的記憶體空間的操作和改變主機介面740和快閃記憶體介面760的頻寬的操作。在實施例中,在執行步驟S805之前,即在執行分配緩衝記憶體裝置1300的記憶體空間的操作之前,可執行改變主機介面740和快閃記憶體介面760的頻寬的操作,即步驟806。
如果主機介面740和快閃記憶體介面760的工作負載處理延遲的比率小於第一參考值(步驟S804中為「否」),則在步驟S807中確定主機介面740和快閃記憶體介面760的工作負載處理延遲的比率是否等於或小於第二參考值。步驟S807可由介面性能監控部分7111執行。
如果主機介面740和快閃記憶體介面760的工作負載處理延遲的比率為第二參考值或更小(步驟S807中為「是」),則在步驟S808中分配緩衝記憶體裝置1300的記憶體空間。也就是說,在步驟S808中,可減少緩衝記憶體裝置1300的主機工作負載處理區域1302,並且擴大快閃記憶體工作負載處理區域1303。步驟S808可由動態緩衝器分配部分7112執行。
如果主機介面740和快閃記憶體介面760的工作負載處理延遲的比率為第二參考值或更小(步驟S807中為「是」),則可改變主機介面740和快閃記憶體介面760的頻寬。換言之,在步驟S809中,基於在步驟S808中重新分配的緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間,或者透過給予主機介面740的工作負載以權重,可減少主機介面740用於處理主機工作負載的頻寬,並且可增加快閃記憶體介面760用於處理快閃記憶體工作負載的頻寬。步驟S809可由介面頻寬控制部分7113執行。
無論主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間如何,都可基於步驟S807的結果來透過介面頻寬控制部分7113改變主機介面740和快閃記憶體介面760的頻寬。換言之,可平行地執行步驟S808和步驟S809,即分配緩衝記憶體裝置1300的記憶體空間的操作和改變主機介面740和快閃記憶體介面760的頻寬的操作。在實施例中,在執行分配緩衝記憶體裝置1300的記憶體空間的操作(即,步驟S808)之前,可執行改變主機介面740和快閃記憶體介面760的頻寬的操作(即,步驟S809)。
如果主機介面740和快閃記憶體介面760的工作負載處理延遲的比率大於第二參考值(步驟S807中為「否」),則可重複步驟S803而不執行步驟S808和步驟S809。
圖9是根據本發明的實施例的動態性能控制方法的流程圖。
參照圖9,在步驟S901中,當在記憶體系統1000中開始動態性能控制操作時,初始化緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303。在步驟S901中,可向主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303中的每一個分配初始記憶體空間。步驟S901可由動態緩衝器分配部分7112執行。
在步驟S902中,可初始化記憶體系統1000的主機介面740和快閃記憶體介面760中的每一個的頻寬。步驟S902可由介面頻寬控制部分7113執行。步驟S902可在步驟S901之後執行。可選地,步驟S902可在步驟S901之前執行。進一步可選地,可同時執行步驟S902和步驟S901。
在執行完步驟S901和步驟S902之後,在步驟S903中,可監控主機介面740中產生的工作負載處理QoS。步驟S903可由介面性能監控部分7111執行。主機介面740的工作負載處理的QoS可以是主機介面740的工作負載處理性能的指標。換言之,介面性能監控部分7111可透過監控主機介面740的工作負載處理的QoS來預測主機介面740的性能。步驟S904可由介面性能監控部分7111執行。
此處,在步驟S904中,可確定監控的主機介面740中的QoS是否為第一參考值或更小。
如果主機介面740中的QoS為第一參考值或更小(步驟S904中為「是」),則在步驟S905中,可執行重新分配緩衝記憶體裝置1300的記憶體空間的操作,即可擴大緩衝記憶體裝置1300的主機工作負載處理區域1302,並且可減少快閃記憶體工作負載處理區域1303。步驟S905可由動態緩衝器分配部分7112執行。
如果主機介面740中的QoS為第一參考值或更小(步驟S904中為「是」),則可改變主機介面740和快閃記憶體介面760的頻寬。換言之,在步驟S906中,基於在步驟S905中分配的緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間,或者透過給予主機介面740的工作負載以權重,可增加主機介面740用於處理主機工作負載的頻寬,並且可相對地減少快閃記憶體介面760用於處理快閃記憶體工作負載的頻寬。步驟S906可由介面頻寬控制部分7113執行。
無論主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間如何,都可基於步驟S904的結果來透過介面頻寬控制部分7113改變主機介面740和快閃記憶體介面760的頻寬。換言之,可平行地執行步驟S905和步驟S906,即分配緩衝記憶體裝置1300的記憶體空間的操作和改變主機介面740和快閃記憶體介面760的頻寬的操作。在實施例中,在執行分配緩衝記憶體裝置1300的記憶體空間的操作(即,步驟S905)之前,可執行改變主機介面740和快閃記憶體介面760的頻寬的操作(即,步驟S906)。
如果主機介面740中的QoS大於第一參考值(步驟S904中為「否」),則在步驟S907中,可確定在命令排隊部分730中排隊的命令的數量是否為第二參考值或更大。步驟S907可由介面性能監控部分7111執行。
如果在命令排隊部分730中排隊的命令的數量等於第二參考值或更大(步驟S907中為「是」),則在步驟S908中分配緩衝記憶體裝置1300的記憶體空間。也就是說,在步驟S908中,可減少緩衝記憶體裝置1300的主機工作負載處理區域1302,並且擴大快閃記憶體工作負載處理區域1303。步驟S908可由動態緩衝器分配部分7112執行。
如果在命令排隊部分730中排隊的命令的數量等於第二參考值或更大(步驟S907中為「是」),則可改變主機介面740和快閃記憶體介面760的頻寬。換言之,在步驟S909中,基於在步驟S908中重新分配的緩衝記憶體裝置1300的主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間,或者透過給予主機介面740的工作負載以權重,可減少主機介面740用於處理主機工作負載的頻寬,並且可增加快閃記憶體介面760用於處理快閃記憶體工作負載的頻寬。步驟S909可由介面頻寬控制部分7113執行。
無論主機工作負載處理區域1302和快閃記憶體工作負載處理區域1303的記憶體空間如何,都可基於步驟S907的結果來透過介面頻寬控制部分7113改變主機介面740和快閃記憶體介面760的頻寬。換言之,可平行地執行步驟S908和步驟S909,即分配緩衝記憶體裝置1300的記憶體空間的操作和改變主機介面740和快閃記憶體介面760的頻寬的操作。在實施例中,在執行步驟S908,即執行分配緩衝記憶體裝置1300的記憶體空間的操作之前,可執行步驟S909,即執行改變主機介面740和快閃記憶體介面760的頻寬的操作。
如果在命令排隊部分730中排隊的命令的數量小於第二參考值(步驟S907中為「否」),則可再次執行步驟S903而不執行步驟S908和步驟S909。
圖10是示出包括圖2所示的記憶體控制器1200的記憶體系統30000的示例的示圖。
參照圖10,記憶體系統30000可被實施在行動電話、智慧型手機、平板電腦、個人數位助理(PDA)或無線通訊裝置中。記憶體系統30000可包括非揮發性記憶體裝置1100和被配置成控制非揮發性記憶體裝置1100的操作的記憶體控制器1200。記憶體控制器1200可在處理器3100的控制下控制非揮發性記憶體裝置1100的資料存取操作,例如編程操作、擦除操作或讀取操作。
編程到非揮發性記憶體裝置1100的資料可在記憶體控制器1200的控制下透過顯示器3200傳輸。
無線電收發器3300可透過天線ANT發送和接收無線電信號。例如,無線電收發器3300可將透過天線ANT接收的無線電信號改變為可在處理器3100中處理的信號。因此,處理器3100可處理從無線電收發器3300輸出的信號,並將處理後的信號傳輸到記憶體控制器1200或顯示器3200。記憶體控制器1200可將由處理器3100處理的信號編程到非揮發性記憶體裝置1100。此外,無線電收發器3300可將從處理器3100輸出的信號改變為無線電信號,並且透過天線ANT將改變後的無線電信號輸出到外部裝置。輸入裝置3400可用於輸入用於控制處理器3100的操作的控制信號或待由處理器3100處理的資料。輸入裝置3400可被實施在諸如觸控板和電腦滑鼠的定點裝置、小鍵盤或鍵盤中。處理器3100可控制顯示器3200的操作,使得從記憶體控制器1200輸出的資料、從無線電收發器3300輸出的資料或從輸入裝置3400輸出的資料透過顯示器3200輸出。
在實施例中,能夠控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可被實施為處理器3100的一部分或與處理器3100分開設置的晶片。記憶體控制器1200可由圖8所示的記憶體控制器的示例來實施。
圖11是示出包括圖2所示的記憶體控制器1200的記憶體系統40000的示例的示圖。
參照圖11,記憶體系統40000可被實施在個人電腦(PC)、平板電腦、小筆電、電子閱讀器、個人數位助理(PDA)、便攜式多媒體播放器(PMP)、MP3播放器或MP4播放器中。
記憶體系統40000可包括非揮發性記憶體裝置1100和被配置成控制非揮發性記憶體裝置1100的資料處理操作的記憶體控制器1200。
處理器4100可根據從輸入裝置4200輸入的資料透過顯示器4300輸出儲存在非揮發性記憶體裝置1100中的資料。例如,輸入裝置4200可被實施在諸如觸控板或電腦滑鼠的定點裝置、小鍵盤或鍵盤中。
處理器4100可控制記憶體系統40000的整體操作,並且控制記憶體控制器1200的操作。在實施例中,能夠控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可被實施為處理器4100的一部分或與處理器4100分開設置的晶片。記憶體控制器1200可由圖8所示的記憶體控制器的示例來實施。
圖12是示出包括圖2所示的記憶體控制器1200的記憶體系統50000的示例的示圖。
參照圖12,記憶體系統50000可實施在例如數位相機、配備有數位相機的便攜式電話、配備有數位相機的智慧型手機或配備有數位相機的平板電腦的影像處理裝置中。
記憶體系統50000可包括非揮發性記憶體裝置1100和能夠控制非揮發性記憶體裝置1100的例如編程操作、擦除操作或讀取操作的資料處理操作的記憶體控制器1200。
記憶體系統50000的影像感測器5200可將光學影像轉換為數位信號。轉換後的數位信號可被傳輸到處理器5100或記憶體控制器1200。在處理器5100的控制下,轉換後的數位信號可透過顯示器5300傳輸或透過記憶體控制器1200而儲存在非揮發性記憶體裝置1100中。儲存在非揮發性記憶體裝置1100中的資料可在處理器5100或記憶體控制器1200的控制下透過顯示器5300傳輸。
在實施例中,能夠控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可被實施為處理器5100的一部分或與處理器5100分開設置的晶片。記憶體控制器1200可由圖8所示的記憶體控制器的示例來實施。
圖13是示出包括圖2所示的記憶體控制器1200的記憶體系統70000的示例的示圖。
參照圖13,記憶體系統70000可被實施在記憶卡或智慧卡中。記憶體系統70000可包括非揮發性記憶體裝置1100、記憶體控制器1200和卡介面7100。
記憶體控制器1200可控制非揮發性記憶體裝置1100和卡介面7100之間的資料交換。在實施例中,卡介面7100可以是安全數位(SD)卡介面或多媒體卡(MMC)介面,但不限於此。記憶體控制器1200可由圖8所示的記憶體控制器的示例來實施。
卡介面7100可根據主機60000的協定來將主機60000和記憶體控制器1200相互連接以進行資料交換。在實施例中,卡介面7100可支持通用序列匯流排(USB)協定和晶片互連(IC)-USB協定。此處,卡介面可指能夠支持主機60000使用的協定的硬體、安裝在硬體中的軟體或者信號傳輸方法。
當記憶體系統70000連接到諸如個人電腦、平板電腦、數位相機、數位音訊播放器、行動電話、控制台視訊遊戲硬體或數位機上盒的主機60000的主機介面6200時,主機介面6200可在微處理器6100的控制下透過卡介面7100和記憶體控制器1200與非揮發性記憶體裝置1100進行資料通訊。
根據本發明,在記憶體系統的操作中,可動態地分配有限的緩衝記憶體空間以增加主機介面和快閃記憶體介面中的工作負載處理性能,由此可提高記憶體系統的整體性能。
本文已經公開了實施例的示例,並且儘管使用了特定的術語,但是它們僅以一般的和描述性的意義來使用並理解,而不用於限制的目的。在一些情況下,從本申請案提交起,對於本領域普通技術人員而言顯而易見的是,除非另外明確指出,否則結合特定實施例描述的特徵、特性和/或元件可單獨使用或與結合其他實施例描述的特徵、特性和/或元件組合使用。因此,本領域技術人員將理解的是,在不脫離如申請專利範圍中闡述的本發明的實質和範圍的情況下,可進行形式和細節上的各種改變。
100‧‧‧記憶體單元陣列
110‧‧‧記憶體區塊
1000‧‧‧記憶體系統
1100‧‧‧非揮發性記憶體裝置
1200‧‧‧記憶體控制器
1201‧‧‧通道介面
1300‧‧‧緩衝記憶體裝置
1301‧‧‧物理-邏輯位址映射資訊儲存區域
1302‧‧‧主機工作負載處理區域
1303‧‧‧快閃記憶體工作負載處理區域
200‧‧‧週邊電路
2000‧‧‧主機
210‧‧‧電壓產生電路
220‧‧‧行解碼器
230‧‧‧頁面緩衝器組
231‧‧‧頁面緩衝器
240‧‧‧列解碼器
250‧‧‧輸入/輸出電路
260‧‧‧感測電路
300‧‧‧控制邏輯
3100‧‧‧處理器
3200‧‧‧顯示器
3300‧‧‧無線電收發器
3400‧‧‧輸入裝置
30000‧‧‧記憶體系統
4100‧‧‧處理器
4200‧‧‧輸入裝置
4300‧‧‧顯示器
40000‧‧‧記憶體系統
5100‧‧‧處理器
5200‧‧‧影像感測器
5300‧‧‧顯示器
50000‧‧‧記憶體系統
6100‧‧‧微處理器
6200‧‧‧主機介面
60000‧‧‧主機
710‧‧‧處理器
711‧‧‧性能監控管理部分
7111‧‧‧介面性能監控部分
7112‧‧‧動態緩衝器分配部分
7113‧‧‧介面頻寬控制部分
712‧‧‧郵箱
720‧‧‧記憶體緩衝器
730‧‧‧命令排隊部分
740‧‧‧主機介面
750‧‧‧緩衝器控制部分
760‧‧‧快閃記憶體介面
7601‧‧‧錯誤校正碼電路
7602‧‧‧資料隨機性產生器
780‧‧‧緩衝記憶體裝置介面
790‧‧‧匯流排
7100‧‧‧卡介面
70000‧‧‧記憶體系統
ADD‧‧‧位址
ANT‧‧‧天線
BL1~BLn‧‧‧位元線
BLK1~BLKm‧‧‧記憶體區塊
CADD‧‧‧列位址
CH1~CHk‧‧‧通道
CL‧‧‧列線
CMD‧‧‧命令
DATA‧‧‧數據
DL‧‧‧資料線
DSL‧‧‧汲極選擇線
DST‧‧‧汲極選擇電晶體
F1~F16‧‧‧記憶體單元
FAIL‧‧‧失敗信號
LL‧‧‧區域線
OP_CMD‧‧‧操作信號
PASS‧‧‧通過信號
PB1~PBn‧‧‧頁面緩衝器
PBSIGNALS‧‧‧頁面緩衝器控制信號
PPG‧‧‧物理頁面
RADD‧‧‧行位址
S801~S809‧‧‧步驟
S901~S909‧‧‧步驟
SL‧‧‧源極線
SSL‧‧‧源極選擇線
SST‧‧‧源極選擇電晶體
ST‧‧‧串
Vop‧‧‧操作電壓
VPB‧‧‧感測電壓
VRY_BIT<#>‧‧‧致能位元
WL1~WL16‧‧‧字元線
圖1是示出根據本發明的實施例的可操作地耦接到主機的記憶體系統的示圖。 圖2是示出圖1所示的記憶體系統中採用的記憶體控制器的示例性配置的示圖。 圖3是示出根據本發明的另一實施例的包括複數個非揮發性記憶體裝置的記憶體系統的示圖。 圖4是示出圖1所示的非揮發性記憶體裝置的示例性配置的示圖。 圖5是示出圖4所示的非揮發性記憶體裝置中採用的記憶體區塊的示例性配置的示圖。 圖6是示出根據本發明的實施例的緩衝記憶體裝置的示圖。 圖7是示出根據本發明的實施例的處理器的示圖。 圖8是根據本發明的實施例的動態性能控制方法的流程圖。 圖9是根據本發明的實施例的動態性能控制方法的流程圖。 圖10是示出根據本發明的實施例的包括圖2所示的記憶體控制器的記憶體系統的示圖。 圖11是示出根據本發明的實施例的包括圖2所示的記憶體控制器的記憶體系統的示圖。 圖12是示出根據本發明的實施例的包括圖2所示的記憶體控制器的記憶體系統的示圖。 圖13是示出根據本發明的實施例的包括圖2所示的記憶體控制器的記憶體系統的示圖。

Claims (20)

  1. 一種記憶體系統的操作方法,其包括: 將第一緩衝區域分配給第一工作負載組; 將第二緩衝區域分配給第二工作負載組; 監控第一工作負載組延遲和第二工作負載組延遲;以及 基於監控的結果動態地調整所述第一緩衝區域和所述第二緩衝區域中的每一個的記憶體空間。
  2. 如請求項1所述的方法,其中透過與主機通訊的主機介面來處理所述第一工作負載組,並且透過與非揮發性記憶體裝置通訊的快閃記憶體介面來處理所述第二工作負載組。
  3. 如請求項1所述的方法, 其中所述第一緩衝區域的記憶體空間和所述第二緩衝區域的記憶體空間之和是恆定的, 其中所述監控包括計算所述第一工作負載組的延遲和所述第二工作負載組的延遲的比率,並且 其中基於延遲的比率來執行所述第一緩衝區域和所述第二緩衝區域中的每一個的記憶體空間的動態調整。
  4. 如請求項1所述的方法,其進一步包括基於所述第一緩衝區域的記憶體空間和所述第二緩衝區域的記憶體空間來控制所述主機介面的頻寬和所述快閃記憶體介面的頻寬。
  5. 如請求項4所述的方法,其進一步包括當所述比率等於或大於參考值時,擴大所述第一緩衝區域並減少所述第二緩衝區域。
  6. 如請求項1所述的方法,其進一步包括: 監控所述主機介面中的服務品質(quality of service ,QoS);以及 基於所述QoS動態地調整所述第一緩衝區域的記憶體空間和所述第二緩衝區域的記憶體空間。
  7. 如請求項1所述的方法,其進一步包括: 監控命令排隊部分中排隊的命令的數量;以及 基於排隊的命令的數量來控制所述主機介面的頻寬和所述快閃記憶體介面的頻寬。
  8. 如請求項1所述的方法,其中所述第一緩衝區域和所述第二緩衝區域中的每一個包括動態隨機存取記憶體(dynamic random-access memory, DRAM)。
  9. 一種記憶體系統,其包括: 主機介面,被配置成與主機通訊,並且處理從所述主機接收的主機工作負載; 快閃記憶體介面,被配置成與非揮發性記憶體裝置通訊,並且使用所述非揮發性記憶體裝置來處理快閃記憶體工作負載; 性能監控管理部分,被配置成監控處理所述主機工作負載和所述快閃記憶體工作負載的性能;以及 緩衝記憶體,包括被分配用於處理所述主機工作負載的主機工作負載處理區域,以及被分配用於處理所述快閃記憶體工作負載的快閃記憶體工作負載處理區域, 其中所述性能監控管理部分基於所述性能的監控結果來動態地分配所述主機工作負載處理區域的記憶體空間和所述快閃記憶體工作負載處理區域的記憶體空間。
  10. 如請求項9所述的記憶體系統,其中所述性能監控管理部分基於所述性能的監控結果來動態地控制所述主機介面的頻寬和所述快閃記憶體介面的頻寬。
  11. 如請求項9所述的記憶體系統,其中所述性能監控管理部分被配置成監控所述主機工作負載產生的延遲和所述快閃記憶體工作負載產生的延遲。
  12. 如請求項11所述的記憶體系統,其中所述性能監控管理部分計算所述主機工作負載產生的延遲與所述快閃記憶體工作負載產生的延遲的比率,並且當所述比率為參考值或更大時,所述性能監控管理部分擴大所述主機工作負載處理區域的記憶體空間並減少所述快閃記憶體工作負載處理區域的記憶體空間。
  13. 如請求項12所述的記憶體系統,其中所述主機工作負載處理區域的記憶體空間和所述快閃記憶體工作負載處理區域的記憶體空間之和是恆定的。
  14. 如請求項9所述的記憶體系統,其中所述緩衝記憶體包括動態隨機存取記憶體(DRAM)。
  15. 如請求項9所述的記憶體系統,其中所述緩衝記憶體包括嵌入式靜態隨機存取記憶體(embedded static random-access memory, embedded SRAM)。
  16. 如請求項9所述的記憶體系統,其中所述性能監控管理部分被配置成監控所述主機介面中的服務品質(QoS)。
  17. 如請求項9所述的記憶體系統,其進一步包括被配置成對與所述快閃記憶體工作負載相對應的命令進行排隊的命令排隊部分。
  18. 如請求項9所述的記憶體系統,其中所述緩衝記憶體進一步包括被配置成儲存物理-邏輯位址映射資訊的物理-邏輯位址映射資訊儲存區域。
  19. 一種記憶體系統的操作方法,其包括: 設置透過主機介面處理第一工作負載的第一頻寬; 設置透過快閃記憶體介面處理第二工作負載的第二頻寬; 監控透過所述主機介面處理所述第一工作負載的服務品質(QoS);以及 基於監控的結果動態地改變所述第一頻寬和所述第二頻寬。
  20. 如請求項19所述的方法,其進一步包括: 分配用於處理所述第一工作負載的第一緩衝區域,並分配用於處理所述第二工作負載的第二緩衝區域;以及 基於所述第一頻寬或所述第二頻寬來改變所述第一緩衝區域的記憶體空間和所述第二緩衝區域的記憶體空間。
TW107117223A 2017-10-19 2018-05-21 記憶體系統及其操作方法 TWI765044B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020170135912A KR102417977B1 (ko) 2017-10-19 2017-10-19 메모리 시스템 및 그것의 동작 방법
KR10-2017-0135912 2017-10-19
??10-2017-0135912 2017-10-19

Publications (2)

Publication Number Publication Date
TW201917576A true TW201917576A (zh) 2019-05-01
TWI765044B TWI765044B (zh) 2022-05-21

Family

ID=66170592

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107117223A TWI765044B (zh) 2017-10-19 2018-05-21 記憶體系統及其操作方法

Country Status (4)

Country Link
US (1) US10956060B2 (zh)
KR (1) KR102417977B1 (zh)
CN (1) CN109683805B (zh)
TW (1) TWI765044B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI807936B (zh) * 2021-10-05 2023-07-01 慧榮科技股份有限公司 藉助於輔助設定管理來進行在預定通訊架構中的記憶體裝置的自動設定控制的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866747B2 (en) * 2019-02-10 2020-12-15 Hewlett Packard Enterprise Development Lp Securing a memory drive
CN110351595B (zh) * 2019-07-17 2023-08-18 北京百度网讯科技有限公司 一种缓冲处理方法、装置、设备和计算机存储介质
US11106365B1 (en) * 2020-02-10 2021-08-31 EMC IP Holding Company LLC Flow control of input/output (IO) in a synchronous replication session
US11061835B1 (en) 2020-02-12 2021-07-13 EMC IP Holding Company LLC Sensitivity matrix for system load indication and overload prevention
US11836077B2 (en) 2020-09-01 2023-12-05 Micron Technology, Inc. Dynamically tuning host performance booster thresholds
JP2022049405A (ja) 2020-09-16 2022-03-29 キオクシア株式会社 記憶装置および制御方法
US20220147279A1 (en) * 2020-11-06 2022-05-12 Seagate Technology Llc Heat management solid-state data storage system
KR20220149220A (ko) 2021-04-30 2022-11-08 삼성전자주식회사 메모리 장치
US20230064781A1 (en) * 2021-08-31 2023-03-02 Micron Technology, Inc. Dynamic buffer limit for at-risk data
KR102580946B1 (ko) * 2021-11-09 2023-09-21 삼성전자주식회사 버퍼 메모리의 할당 비율을 제어하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법
CN116107496A (zh) * 2021-11-09 2023-05-12 三星电子株式会社 存储器系统和操作存储器控制器的方法
JP2023137515A (ja) * 2022-03-18 2023-09-29 キオクシア株式会社 半導体記憶装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185641B1 (en) 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US6785752B2 (en) * 2001-03-23 2004-08-31 International Business Machines Corporation Method for dynamically adjusting buffer utilization ratios in a hard disk drive system
KR100498508B1 (ko) 2003-09-16 2005-07-01 삼성전자주식회사 데이터 전송시간을 감소시키는 듀얼 버퍼링(Dualbuffering) 메모리 시스템 및 이에 대한 제어방법
US7107403B2 (en) * 2003-09-30 2006-09-12 International Business Machines Corporation System and method for dynamically allocating cache space among different workload classes that can have different quality of service (QoS) requirements where the system and method may maintain a history of recently evicted pages for each class and may determine a future cache size for the class based on the history and the QoS requirements
US20050125563A1 (en) * 2003-12-09 2005-06-09 Douglas Chet R. Load balancing device communications
KR20140008745A (ko) * 2012-07-11 2014-01-22 삼성전자주식회사 자기 메모리 장치
KR101386013B1 (ko) * 2012-07-17 2014-04-16 주식회사 디에이아이오 하이브리드 스토리지 장치
US9208094B2 (en) 2013-08-06 2015-12-08 GlobalFoudries, Inc. Managing and sharing storage cache resources in a cluster environment
CN104375895B (zh) * 2013-08-13 2018-02-06 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
KR20150044370A (ko) * 2013-10-16 2015-04-24 삼성전자주식회사 이종 메모리들을 관리하는 시스템들
US9563369B2 (en) * 2014-04-14 2017-02-07 Microsoft Technology Licensing, Llc Fine-grained bandwidth provisioning in a memory controller
US9563382B2 (en) * 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US9971511B2 (en) * 2016-01-06 2018-05-15 Samsung Electronics Co., Ltd. Hybrid memory module and transaction-based memory interface
US10459636B2 (en) * 2017-03-24 2019-10-29 Sandisk Technologies Llc System and method for managing data in non-volatile memory systems having multiple mapping layers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI807936B (zh) * 2021-10-05 2023-07-01 慧榮科技股份有限公司 藉助於輔助設定管理來進行在預定通訊架構中的記憶體裝置的自動設定控制的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器
US11899974B2 (en) 2021-10-05 2024-02-13 Silicon Motion, Inc. Method and apparatus for performing automatic setting control of memory device in predetermined communications architecture with aid of auxiliary setting management

Also Published As

Publication number Publication date
CN109683805A (zh) 2019-04-26
KR102417977B1 (ko) 2022-07-07
KR20190043868A (ko) 2019-04-29
US20190121558A1 (en) 2019-04-25
CN109683805B (zh) 2022-06-07
US10956060B2 (en) 2021-03-23
TWI765044B (zh) 2022-05-21

Similar Documents

Publication Publication Date Title
TWI765044B (zh) 記憶體系統及其操作方法
TWI770218B (zh) 記憶體系統及其操作方法
TWI774830B (zh) 記憶體系統及其操作方法
KR102518884B1 (ko) 메모리 시스템 및 그것의 동작 방법
US11256614B2 (en) Memory controller for allocating logical address and method of operating the same
US10606758B2 (en) Memory system and method of operating the same
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
KR20190032809A (ko) 메모리 시스템 및 그것의 동작 방법
KR20190123090A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102578188B1 (ko) 메모리 컨트롤러 및 이의 동작 방법
US20190121727A1 (en) Memory system and method for operating the same
CN112905502A (zh) 存储装置及其操作方法
KR102479483B1 (ko) 메모리 시스템 및 이의 동작 방법
KR20190051564A (ko) 메모리 시스템 및 그것의 동작 방법
CN111913556A (zh) 储存装置及储存装置的操作方法
CN112306385A (zh) 存储器控制器及其操作方法
US20190258593A1 (en) Memory controller and operating method thereof
CN109933467B (zh) 存储器系统及其操作方法
CN109902031B (zh) 存储系统及其操作方法
KR20190112546A (ko) 메모리 시스템 및 그것의 동작 방법
KR20190088790A (ko) 메모리 시스템 및 그것의 동작 방법
KR20190030463A (ko) 메모리 시스템 및 그것의 동작 방법
CN117435125A (zh) 存储器控制器以及包括存储器控制器的存储器系统