TW201918882A - 記憶體系統及其操作方法 - Google Patents
記憶體系統及其操作方法 Download PDFInfo
- Publication number
- TW201918882A TW201918882A TW107123295A TW107123295A TW201918882A TW 201918882 A TW201918882 A TW 201918882A TW 107123295 A TW107123295 A TW 107123295A TW 107123295 A TW107123295 A TW 107123295A TW 201918882 A TW201918882 A TW 201918882A
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- memory
- buffer
- address
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種系統及其操作方法。記憶體系統包括:控制器緩衝記憶體;主機介面,其被配置為從主機接收非線性主機實體位址和寫入資料;主機位址轉換部,其被配置為將非線性主機實體位址映射到線性虛擬位址;以及主機控制部,其被配置為根據線性虛擬位址將寫入資料緩衝在控制器緩衝記憶體中。
Description
本發明的各個實施例涉及一種記憶體系統及其操作方法。特別地,實施例涉及一種能夠將非線性主機實體位址轉換為線性虛擬位址並且將儲存在主機緩衝記憶體中的資料緩衝到控制器緩衝記憶體中的記憶體系統及其操作方法。
非揮發性記憶體裝置可以包括多個記憶塊。另外,記憶塊中的每一個可以包括多個記憶體單元,並且可以對一個記憶塊中的記憶體單元同時執行擦除操作。
當記憶體系統從主機接收寫入命令和邏輯位址時,記憶體系統可以分配對應於邏輯位址的實體位址,並且將資料寫入對應於實體位址的記憶體區域中。
記憶體系統可以將位址映射資訊臨時儲存在緩衝記憶體中,並且將儲存在緩衝記憶體中的位址映射資訊清除(flush)到非揮發性記憶體裝置。另外,當電源接通時,記憶體系統可以將儲存在非揮發性記憶體裝置中的位址映射資訊載入到緩衝記憶體。
本專利申請請求於2017年11月13日向韓國智慧財產權局提交的申請號為10-2017-0150660的韓國專利申請的優先權,其全部內容透過引用合併於此。
各個實施例涉及一種透過將非線性主機實體位址轉換為線性虛擬位址來高效地執行寫入操作和讀取操作的記憶體系統及其操作方法。
根據實施例,一種記憶體系統,其可以包括:控制器緩衝記憶體;主機介面,其被配置為從主機接收非線性主機實體位址和寫入資料;主機位址轉換部,其被配置為將非線性主機實體位址映射到線性虛擬位址;以及主機控制部,其被配置為根據線性虛擬位址將寫入資料緩衝在控制器緩衝記憶體中。
根據另一實施例,一種記憶體系統,其可以包括:控制器緩衝記憶體,其包括被配置為緩衝資料的多個控制器緩衝器單元;主機位址轉換部,其被配置為生成實體-虛擬位址映射表;以及主機控制部,其被配置為根據實體-虛擬位址映射表,將緩衝在控制器緩衝記憶體中的資料輸出到主機的主機緩衝記憶體,其中實體-虛擬位址映射表包括與主機緩衝記憶體中的多個主機緩衝器單元相對應的多個非線性主機緩衝器ID和與多個控制器緩衝器單元相對應的多個線性虛擬緩衝器ID。
根據另一實施例,一種記憶體系統的操作方法,其可以包括:從主機接收包括非線性主機實體位址的寫入命令;使用位址轉換部,將非線性主機實體位址映射到線性虛擬位址;根據非線性主機實體位址,從主機的主機緩衝記憶體中擷取寫入資料;以及根據線性虛擬位址,將寫入資料緩衝在控制器緩衝記憶體中。
根據另一實施例,一種記憶體系統,其可以包括:記憶體裝置;以及控制器,其被配置為:將非順序緩衝器位址轉換為順序緩衝器位址;將邏輯位址轉換為實體位址;根據順序緩衝器位址以順序方式緩衝資料;以及根據實體位址,控制記憶體裝置對資料執行操作,其中非順序緩衝器位址表示主機中的以非順序方式為資料分配的緩衝器空間,以及其中從緩衝空間提供資料以用於緩衝操作。
將參照所附圖式詳細地描述各個實施例。注意到,對“實施例”的參考不一定僅僅針對一個實施例,並且對“實施例”的不同參考不一定針對相同的實施例。在所附圖式中,為清楚起見,可能誇大部件的厚度和長度。在以下描述中,為了簡明起見,可以省略對已知技術的詳細描述,以免不必要地模糊本發明。在整個說明書和所附圖式中,相同的元件符號表示相同的元件。
還應注意的是,在本說明書中,“連接/聯接”指一個部件不僅直接聯接另一部件,而且還透過一個或多個中間部件間接聯接另一部件。另外,在整個說明書中,當闡述某個部件“包含”某個元件時,這並不排除其它元件;相反,除非另有說明或上下文需要,否則某個部件可以進一步包括一個或多個附加元件。
本文使用的術語的目的僅是描述特定實施例而不旨在限制本發明。
如本文使用的,單數形式可以包括複數形式並且反之亦然,除非上下文另有清楚地說明。
將進一步理解的是,當在該說明書中使用術語“包括”、“包括有”、“包含”和“包含有”時,它們指定闡述的元件的存在而不排除一個或多個其它元件的存在或增加。如本文使用的,術語“和/或”包括一個或多個相關所列項目的任何和所有組合。
在下文中,將參照所附圖式詳細地描述本發明的各個實施例。
圖1是示出根據實施例的記憶體系統1000的示圖。
參照圖1,記憶體系統1000可以包括即使在電力供應不足的情況下也不丟失儲存的資料的非揮發性記憶體裝置1100、用於臨時儲存資料的緩衝記憶體裝置1300以及回應於主機2000的控制來控制非揮發性記憶體裝置1100和緩衝記憶體裝置1300的記憶體控制器1200。
主機2000可以使用諸如以下的各種通信方法中的至少一種與記憶體系統1000通信:通用序列匯流排(USB)通信方法、串列AT附件(SATA)通信方法、串列SCSI(SAS)通信方法、高速片間(HSIC)通信方法、小型電腦系統介面(SCSI)通信方法、週邊元件互聯(PCI)通信方法、高速PCI(PCIe)通信方法、高速非揮發性記憶體(NVMe)通信方法、通用快閃記憶體(UFS)通信方法、安全數位(SD)通信方法、多媒體卡(MMC)通信方法、嵌入式MMC(eMMC)通信方法、雙列直插式記憶體模組(DIMM)通信方法、寄存式DIMM(RDIMM)通信方法和負載減少的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中的資料傳輸到非揮發性記憶體裝置1100以儲存資料。另外,記憶體控制器1200可以接收來自主機2000的資料和邏輯位址,並且將邏輯位址轉換為指示實際儲存資料的區域的實體位址。另外,記憶體控制器1200可以將配置邏輯位址與實體位址之間的映射關係的邏輯-實體位址映射表儲存在緩衝記憶體裝置1300中。
根據實施例,緩衝記憶體裝置1300可以包括雙倍資料速率同步動態隨機存取記憶體(DDR SDRAM)、低功耗雙倍資料速率4(LPDDR4)SDRAM、圖形雙倍資料速率(GDDR)SDRAM、低功率DDR(LPDDR)、或者Rambus動態隨機存取記憶體(RDRAM)。
雖然圖1示出包括在記憶體系統1000中的緩衝記憶體裝置1300,但是本公開不限於此。即,記憶體系統1000可以不包括緩衝記憶體裝置1300。相反,緩衝記憶體裝置1300可以被設置在記憶體系統1000的外部。
主機2000可以包括主機緩衝記憶體2100。例如,對於PCIe SSD,主機2000可以定義以特定形式設置的命令以描述操作。例如,讀取命令可以被配置為包括主機位址、邏輯位址LA和資料大小。在另一示例中,寫入命令可以被配置為包括主機位址、邏輯位址LA和資料大小。包括在寫入命令中的主機位址可以指示待寫入的資料被儲存在主機緩衝記憶體2100中的記憶體空間的位置。另外,包括在讀取命令中的主機位址可以指示讀取資料被儲存在主機緩衝記憶體中的記憶體空間的實體位置。主機位址可以被稱為主機實體位址。
主機2000可以透過邏輯位址LA指定待被寫入或讀取的資料的資料儲存空間的位置,並且同時可以確定待被寫入或讀取的資料的大小。待被寫入或讀取的資料的最小單位可以是例如512B或4KB。在製造記憶體系統1000之後,可以固定最小單位。資料大小可以限定為最小單位的N倍,其中N是自然數。例如,當最小單位是4KB時,資料大小可以被表示為一個4KB資料、兩個4KB資料、四個4KB資料等。例如,128KB可以被表示為32個4KB資料。換言之,對於寫入命令,當資料的邏輯位址LA是‘100’並且資料大小是最小單位,例如4KB時,資料大小可以被表示為‘寫入(主機位址,0x100,0)’。在另一示例中,對於寫入命令,當資料的邏輯位址LA是‘100’並且資料大小是最小單位的32倍時,例如128KB時,資料大小可以被表示為‘寫入(主機位址,0x100,31)’。
圖2是示出圖1中所示的記憶體控制器1200的示圖。
參照圖2,記憶體控制器1200可以包括處理器710、記憶體緩衝器720、錯誤校正碼(ECC)塊730、主機介面740、緩衝器控制電路750、非揮發性快閃記憶體介面760、資料隨機化發生器770、緩衝記憶體介面780和匯流排790。
匯流排790可以提供記憶體控制器1200的部件之間的通道。
處理器710可以控制記憶體控制器1200的全部操作並且可以執行邏輯操作。處理器710可以透過主機介面740與外部主機2000通信,並且還可以透過快閃記憶體介面760與非揮發性記憶體裝置1100通信。進一步地,處理器710可以透過緩衝記憶體介面780與緩衝記憶體裝置1300通信。進一步地,處理器710可以透過緩衝器控制電路750控制記憶體緩衝器720。處理器710可以透過使用記憶體緩衝器720作為操作記憶體、高速緩衝記憶體或緩衝記憶體來控制記憶體系統1000的操作。
處理器710可以排隊從主機2000輸入的多個命令。該操作被稱為多佇列。處理器710可以將多個排隊命令順序地傳遞到非揮發性記憶體裝置1100。
記憶體緩衝器720可以用來作為處理器710的操作記憶體、高速緩衝記憶體或緩衝記憶體。記憶體緩衝器720可以儲存由處理器710執行的代碼和命令。記憶體緩衝器720可以儲存由處理器710處理的資料。記憶體緩衝器720可以包括靜態RAM(SRAM)或動態RAM(DRAM)。
ECC塊730可以執行錯誤校正。ECC塊730可以基於透過快閃記憶體介面760而待被寫入到非揮發性記憶體裝置1100的資料來執行ECC編碼。經ECC編碼的資料可以透過快閃記憶體介面760而被傳遞到非揮發性記憶體裝置1100。ECC塊730可以基於透過快閃記憶體介面760而從非揮發性記憶體裝置1100接收的資料來執行ECC解碼。例如,ECC塊730可以作為快閃記憶體介面760的部件而被包括在快閃記憶體介面760中。
主機介面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/從非揮發性記憶體裝置1100接收命令、位址和資料。
雖然圖2示出包括在記憶體控制器1200中的記憶體緩衝器720和緩衝器控制電路750,但是本公開不限於此。即,記憶體控制器1200可以不包括記憶體緩衝器720和緩衝器控制電路750。根據系統設計,可以單獨提供這些部件中的一個或兩個。
處理器710可以使用代碼來控制記憶體控制器1200的操作。處理器710可以從設置在記憶體控制器1200中的非揮發性記憶體裝置(例如,唯讀記憶體)載入代碼。例如,處理器710可以透過快閃記憶體介面760從非揮發性記憶體裝置1100載入代碼。
資料隨機化發生器770可以使資料隨機化或者使隨機化的資料去隨機化。資料隨機化發生器770可以對透過快閃記憶體介面760而待被寫入至非揮發性記憶體裝置1100中的資料執行資料隨機化操作。經ECC編碼的資料可以透過快閃記憶體介面760被傳遞到非揮發性記憶體裝置1100。資料隨機化發生器770可以對透過快閃記憶體介面760而從非揮發性記憶體裝置1100接收的資料執行資料去隨機化。例如,資料隨機化發生器770可以作為快閃記憶體介面760的部件。
記憶體控制器1200的匯流排790可以被劃分成控制匯流排和資料匯流排。資料匯流排可以被配置成在記憶體控制器1200中傳輸資料,並且控制匯流排可以被配置成在記憶體控制器1200中傳輸諸如命令或位址的控制資訊。資料匯流排和控制匯流排可以彼此隔離,以便既不彼此干擾也不彼此影響。資料匯流排可以聯接到主機介面740、緩衝器控制電路750、ECC塊730、快閃記憶體介面760和緩衝記憶體介面780。控制匯流排可以聯接到主機介面740、處理器710、緩衝器控制電路750、快閃記憶體介面760和緩衝記憶體介面780。雖然圖2示出包括在記憶體控制器1200中的緩衝記憶體裝置,但是本公開不限於此。即,記憶體控制器1200可以不包括緩衝記憶體裝置780,其可以被單獨設置。
緩衝記憶體介面780可以在處理器710的控制下與緩衝記憶體裝置1300通信。緩衝記憶體裝置780可以透過通道將命令、位址和資料傳輸到緩衝記憶體裝置1300/從緩衝記憶體裝置1300接收命令、位址和資料。
記憶體系統1000可以從主機2000接收寫入命令、寫入資料和邏輯位址。記憶體控制器1200可以回應於寫入命令來分配儲存寫入資料的非揮發性記憶體裝置1100的實體儲存空間,即,記憶塊110或頁面。換言之,回應於寫入命令,記憶體控制器1200可以映射對應於邏輯位址的實體位址。實體位址可以被稱為快閃記憶體邏輯位址,使得實體位址可以與主機實體位址區分開。主機實體位址可以對應於非揮發性記憶體裝置1100的實體儲存空間,其中從主機2000接收的寫入資料被儲存在該實體儲存空間。
記憶體系統1000可以將邏輯位址和實體位址之間的上述映射資訊,即邏輯-實體位址映射資訊,儲存在非揮發性記憶體裝置1100的記憶塊110中。儲存邏輯-實體位址映射資訊的記憶塊110可以被稱為系統塊。
當記憶體系統1000被啟動時,儲存在非揮發性記憶體裝置1100中的邏輯-實體位址映射資訊可以被載入到緩衝記憶體裝置1300或記憶體緩衝器720。另外,記憶體系統1000可以從非揮發性記憶體裝置1100讀取邏輯-實體位址映射資訊,並將讀取的資訊儲存在緩衝記憶體裝置1300或記憶體緩衝器720中,以檢查儲存在非揮發性記憶體裝置1100中的邏輯-實體位址映射資訊。緩衝記憶體裝置1300和/或記憶體緩衝器720可以單獨地或統稱為“控制器緩衝記憶體”。
在另一示例中,當記憶體系統1000從主機2000接收寫入命令、寫入資料和邏輯位址時,記憶體控制器1200可以回應於寫入命令來分配其中儲存寫入資料的非揮發性記憶體裝置1100的實體儲存空間。換言之,回應於寫入命令,記憶體控制器1200可以映射對應於邏輯位址的實體位址並且利用新生成的邏輯位址和實體位址之間的映射資訊,即,邏輯-實體位址映射資訊,來更新緩衝記憶體裝置1300或記憶體緩衝器720。如上所述,指示非揮發性記憶體裝置1100中的資料儲存空間的實體位址可以被稱為快閃記憶體邏輯位址。
記憶體系統1000可以從主機2000接收讀取命令和邏輯位址。記憶體系統1000可以回應於讀取命令,從儲存在非揮發性記憶體裝置1100中的邏輯-實體位址映射資訊檢查對應於邏輯位址的實體位址,讀取儲存在與檢查到的實體位址相對應的記憶體區域中的資料,並且將讀取的資料輸出到主機2000。
處理器710可以包括主機控制部711、快閃記憶體控制部712和快閃記憶體轉換部713。
主機控制部711可以控制主機2000與主機介面740和控制器緩衝記憶體(即,記憶體緩衝器720或緩衝記憶體裝置1300)之間的資料傳遞。例如,主機控制部711可以控制將透過主機介面740從主機2000輸入的資料緩衝在記憶體緩衝器720或緩衝記憶體裝置1300中。在另一示例中,主機控制部711可以控制將緩衝在記憶體緩衝器720或緩衝記憶體裝置1300中的資料透過主機介面740輸出到主機2000。
例如,主機控制部711可以控制擷取儲存在主機2000的主機緩衝記憶體2100中的資料,並且將擷取的資料緩衝在控制器緩衝記憶體中。另外,主機控制部711可以控制將緩衝在控制器緩衝記憶體中的資料輸出到主機2000的主機緩衝記憶體2100。
在寫入操作期間,快閃記憶體控制部712可以控制將緩衝在記憶體緩衝器720或緩衝記憶體裝置1300中的資料傳遞到非揮發性記憶體裝置1100的操作。在另一示例中,在讀取操作期間,快閃記憶體控制部712可以控制將從非揮發性記憶體裝置1100讀取和輸出的資料緩衝到記憶體緩衝器720或緩衝記憶體裝置1300中。
在資料寫入操作期間,快閃記憶體轉換部713可以映射與從主機2000輸入的邏輯位址相對應的實體位址。資料可以被寫入至非揮發性記憶體裝置1100中的與映射的實體位址相對應的儲存空間中。快閃記憶體轉換部713可以在資料寫入操作期間檢查映射到從主機2000輸入的邏輯位址的實體位址,並且可以將該實體位址傳遞到快閃記憶體控制部712。快閃記憶體控制部712可以從非揮發性記憶體裝置1100中的與實體位址相對應的儲存空間讀取資料。指示非揮發性記憶體裝置1100中的儲存空間的實體位址可以被稱為快閃記憶體實體位址,其與主機實體位址不同。
圖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個不同的路徑。即,第一至第N記憶體裝置1100可以聯接到第一通道CH1。第一記憶體裝置1100可以配置第一路徑Way1,第二記憶體裝置1100可以配置第二路徑Way2,並且第N記憶體裝置1100可以配置第N路徑WayN。可選地,聯接到相同通道的兩個或更多個非揮發性記憶體裝置1100可以構成單個路徑。
由於聯接到CH1的第一到第N非揮發性記憶體裝置1100共用CH1,因此這些記憶體裝置可以與記憶體控制器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通信。換言之,在CH1的配置Way1的第一非揮發性記憶體裝置1100透過CH1和第一通道介面1201兩者與記憶體控制器1200交換資料的同時,記憶體控制器1200可以透過CH2和第二通道介面1201兩者與CH2的配置Way1的第一非揮發性記憶體裝置1100交換資料。
圖4是示出圖1所示的非揮發性記憶體裝置1100的示圖。
參照圖4,非揮發性記憶體裝置1100可以包括其中儲存資料的記憶體單元陣列100。非揮發性記憶體裝置1100可以包括週邊電路200,週邊電路200被配置為執行將資料儲存在記憶體單元陣列100中的編程操作、用於輸出儲存的資料的讀取操作以及用於擦除儲存的資料的擦除操作。非揮發性記憶體裝置1100可以包括控制邏輯300,控制邏輯300回應於圖1所示的記憶體控制器1200的控制來控制週邊電路200。
記憶體單元陣列100可以包括多個記憶塊BLK1至BLKm 110,其中m是正整數。局部線LL和位元線BL1至BLn可以聯接到記憶塊BLK1至BLKm110中的每一個,其中n是正整數。例如,局部線LL可以包括第一選擇線、第二選擇線以及佈置在第一選擇線和第二選擇線之間的多個字線。另外,局部線LL可以包括佈置在第一選擇線和字線之間和第二選擇線和字線之間的虛擬(dummy)線。第一選擇線可以是源極選擇線,並且第二選擇線可以是汲極選擇線。例如,局部線LL可以包括字線、汲極選擇線和源極選擇線以及源極線。例如,局部線LL可以進一步包括虛擬線。例如,局部線LL可以進一步包括管線。局部線LL可以分別聯接到記憶塊BLK1至BLKm 110,並且位線BL1到BLn可以共同聯接到記憶塊BLK1到BLKm 110。記憶塊BLK1至BLKm 110可以具有二維(2D)結構或三維(3D)結構。例如,在2D記憶塊110中,記憶體單元可以佈置為與基材平行。例如,在3D記憶塊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交換資料DATA。
在讀取操作或驗證操作期間,感測電路260可以回應於可允許位元VRY_BIT<#>生成參考電流,並且可以將從頁面緩衝器組230接收的感測電壓VPB與由參考電流生成的參考電壓進行比較,以輸出通過信號PASS或失敗信號FAIL。
回應於命令CMD和位址ADD,控制邏輯300可以輸出操作信號OP_CMD、列位址RADD、頁面緩衝器控制信號PBSIGNALS和可允許位元VRY_BIT <#>以控制週邊電路200。另外,控制邏輯300可以回應於通過信號PASS或失敗信號FAIL來確定驗證操作是通過還是失敗。
對於非揮發性記憶體裝置1100的操作,每個記憶塊110可以是擦除操作的單位。換言之,在單個記憶塊110中的多個記憶體單元可以被同時擦除,但是不可以被選擇性擦除。
圖5是示出圖4所示的多個記憶塊BLK1至BLKm 110之中的記憶塊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。如圖5所示,單個串ST可以包括至少一個源極選擇電晶體SST和至少一個汲極選擇電晶體DST,並且可以包括比記憶體單元F1至F16更多的記憶體單元。
源極選擇電晶體SST的源極可以聯接到源極線SL,並且汲極選擇電晶體DST的汲極可以聯接到第一位線BL1。記憶體單元F1至F16可以串聯地聯接在源極選擇電晶體SST和汲極選擇電晶體DST之間。在不同串ST中的源極選擇電晶體SST的閘極可以聯接到源極選擇線SSL,汲極選擇電晶體DST的閘極可以聯接到汲極選擇線DSL,並且記憶體單元F1至F16的閘極可以聯接到多個字線WL1至WL16。不同串ST中的記憶體單元之中的、聯接到相同字線的一組記憶體單元可以被稱為實體頁面PPG。因此,記憶塊110可以包括與字線WL1至WL16的數量一樣多的實體頁面PPG。
單個記憶體單元可以儲存一位元資料。這種記憶體單元通常被稱為單層單元(SLC)。其單個實體頁面PPG可以儲存與單個邏輯頁面LPG相對應的資料。與單個邏輯頁面LPG相對應的資料可以包括與在單個實體頁面PPG中的單元的數量一樣多的資料位元。此外,單個記憶體單元MC可以儲存兩位元或更多位元資料。這種單元通常被稱為“多層單元(MLC)”。其單個實體頁面PPG可以儲存與兩個或更多個邏輯頁面LPG相對應的資料。
當記憶體單元儲存2位元資料時,單個實體頁面PPG可以包括兩個頁面PG。一個頁面PG可以儲存一個邏輯頁面LPG的資料。根據資料,一個記憶體單元可以包括多個閾值電壓中的一個,並且一個實體頁面PPG中的多個頁面PG可以表示閾值電壓的差異。
在一個實體頁面PPG中的多個記憶體單元可以同時被編程。換言之,非揮發性記憶體裝置1100可以對每個實體頁面PPG執行編程操作。在單個記憶塊中的多個記憶體單元可以被同時擦除。換言之,非揮發性記憶體裝置1100可以對每個記憶塊110執行擦除操作。例如,為了更新儲存在一個記憶塊110中的資料的部分,可以讀取儲存在記憶塊110中的全部資料,可以改變待被更新的資料的部分,並且可以將全部資料編程至另一記憶塊110。
圖6是示出根據實施例的圖1中所示的主機緩衝記憶體2100的操作的詳細示圖。
參照圖6,主機緩衝記憶體2100可以包括多個主機緩衝器單元2101。例如,主機緩衝器單元2101可以具有能夠儲存512位元組或4KB的記憶體大小。例如,主機緩衝記憶體2100可以形成為DRAM。
實體緩衝器ID PBID可以被提供至主機緩衝記憶體2100中的多個主機緩衝器單元2101中的每一個。例如,當主機緩衝記憶體2100包括32個主機緩衝器單元2101時,32個主機緩衝器單元2101可以分別被提供1至32實體緩衝器ID PBID。實體緩衝器ID PBID可以是透過使用簡單的自然數來表示的主機實體位址HPA。
主機2000可以定義以特定形式設置的命令以描述操作。例如,讀取命令可以被配置為包括主機位址、邏輯位址LA和資料大小。讀取命令的主機位址可以指示將儲存透過記憶體系統1000的讀取操作輸出的資料的主機緩衝記憶體2100中的主機緩衝器單元2101。主機位址可以指示儲存了資料的主機緩衝記憶體2100的實體記憶體空間,或者將儲存資料的實體記憶體空間。主機位址可以被稱為主機實體位址HPA。
在另一示例中,寫入命令可以被配置為包括主機位址、邏輯位址LA和資料大小。寫入命令的主機位址可以指示儲存了待被寫入到記憶體系統1000中的資料的主機緩衝記憶體2100中的主機緩衝器單元2101。
主機2000可能無法執行單個大資料傳輸,即,單個主機位址可能不代表單個命令中的多個順序位址。主機2000可以以下這種方式管理主機緩衝記憶體2100:將主機緩衝記憶體2100分成多個主機緩衝器單元2101,並且分配多個主機緩衝器單元2101以用於以單個主機緩衝器單元2101為單位儲存或提取資料。換言之,單個主機位址可以對應於單個主機緩衝器單元2101。即,單個輸入/輸出進程可以對應於單個主機緩衝器單元2101。
例如,當主機緩衝器單元2101具有4KB的大小時,為了表達用於128KB資料的順序讀取命令或用於128KB資料的順序寫入命令,主機2000可以透過使用與總共32個主機緩衝器單元2101相對應的主機位址來表達相應的命令。主機緩衝器單元2101中的每一個可以包括關於主機緩衝記憶體2100的非線性位址,即,不連續和分散的位址。在該示例中,為了表達用於128KB資料的順序讀取命令或用於128KB資料的順序寫入命令,可以將32個主機緩衝器單元2101的指標(pointer)添加到命令。這可以被稱為實體區域頁面(physical region page, PRP)方法。當記憶體系統1000直接使用指示主機2000的主機緩衝記憶體2100中的實體儲存空間的主機位址時,除了上述PRP方法之外,可以透過使用分散-收集列表(scatter-gather list, SGL)方法將關於主機2000的位址傳遞到記憶體系統1000。
例如,在讀取命令或寫入命令中,為了表達讀取命令或寫入命令的128KB順序資料,指示PRP清單的32個指標可以被指定為主機位址欄位(field),其中PRP清單包括用於32個主機緩衝器單元2101的實體區域頁面(PRP),其中32個主機緩衝器單元2101中的每一個對應於128KB中的4KB資料。當記憶體系統1000處理相應的命令時,記憶體系統1000可以基於主機位址擷取PRP清單,並單獨地管理32個實體區域頁面PRP,即主機緩衝器單元2101的位址。
由於32個主機緩衝器單元2101的位址被表達為關於單個命令的清單,因此記憶體系統1000可以分析一個PRP位址,即,用於傳遞儲存在每個主機緩衝器單元2101中的4KB資料的主機實體位址HPA。對於寫入命令,該PRP位址可以用來作為源位址。另外,記憶體系統1000可以分析一個PRP位址,以便傳遞待被儲存在主機緩衝器單元2101中的每一個中的4KB資料。對於讀取命令,該PRP位址可以用來作為目標位址。對於主機2000,4KB的隨機位址可能使得難以在記憶體系統1000中線性地分配位址。因此,記憶體系統1000可能必須計算每個位址,這可能降低性能。
圖7是根據實施例的控制器緩衝記憶體的詳細示圖。
參照圖7,控制器緩衝記憶體,即,緩衝記憶體裝置1300和/或記憶體緩衝器720,可以包括多個控制器緩衝器單元1301。控制器緩衝器單元1301中的每一個可以包括記憶體空間,該記憶體空間儲存與主機緩衝器單元2101相同大小的資料。一個輸入/輸出進程可以對應於一個主機緩衝器單元2101,並且類似地,一個輸入/輸出進程可以對應於一個控制器緩衝器單元1301。
虛擬緩衝器ID VBID可以被提供至控制器緩衝記憶體中的多個控制器緩衝器單元1301中的每一個。例如,當控制器緩衝記憶體包括64個控制器緩衝單元1301時,1至64虛擬緩衝器ID VBID可以分別被提供至64個控制器緩衝器單元1301。虛擬緩衝器ID VBID可以表示虛擬位址VA,該虛擬位址VA透過使用簡單自然數指示控制器緩衝記憶體中的多個控制器緩衝器單元1301。
圖8是示出根據實施例的記憶體控制器1200的示圖。另外,圖9是示出根據實施例的位址映射方法的示圖。
參照圖8和圖9,除了圖2中描述的記憶體控制器1200所包括的部件之外,記憶體控制器1200可以進一步包括主機位址轉換部741。主機位址轉換部741可以將由主機2000提供的非線性主機實體位址映射到線性虛擬位址。非線性主機實體位址可以指不連續和分散的主機實體位址。線性虛擬位址可以指連續和順序增加的虛擬位址。
如上所述,當主機位址轉換部741將非線性主機實體位址映射到線性虛擬位址時,可以由起始位址和資料的大小來指定對應於資料的線性位址,並且主機2000可以不單獨地執行分段儲存(fragmentation)。另外,在管理主機緩衝器單元2101時,即,在可以例如4KB為單位管理資料時,可以不單獨地管理多個描述符或鏈表。因此,可以防止記憶體系統1000的性能降級。
例如,記憶體控制器1200可以包括主機位址轉換部741,並且主機2000的主機緩衝記憶體2100可以包括N個主機緩衝器單元2101,其中N是2或更大的自然數。主機緩衝記憶體2100的N個主機緩衝器單元2101中的每一個可以由主機實體位址HPA識別。主機實體位址HPA可以指主機緩衝記憶體2100的N個主機緩衝器單元2101中的每一個的實體位址。
N個主機緩衝器單元2101中的每一個可以在發出命令時被指定,被佔用預定時間,並且回應於處理命令的完成而被釋放。換言之,根據主機實體位址HPA,主機緩衝器單元2101中的每一個的請求和釋放可以完全隨機地執行。
當可以利用連續位址和用來作為起始位址的一個主機實體位址HPA來表示128KB資料時,可以非常高效地執行記憶體控制器1200的寫入操作和讀取操作。對與連續位址相對應的大量資料執行寫入操作或讀取操作的速率可以高於對由與隨機位址相對應的小資料組成的資料執行寫入操作或讀取操作的速率。換言之,當根據主機實體位址HPA的清單的配置,將資料表示為連續位址時,可以非常高效地執行記憶體控制器1200的寫入操作和讀取操作。
主機位址轉換部741可以將主機實體位址HPA轉換為虛擬位址VA。主機介面740從主機2000接收的命令可以包括主機實體位址HPA,並且主機位址轉換部741可以從命令來檢測主機實體位址HPA。另外,主機位址轉換部741可以為主機實體位址HPA分配虛擬位址VA,並將分配的虛擬位址VA傳遞到處理器710。可以為從主機2000輸入的命令分配起始虛擬位址VA。主機位址轉換部741可以將虛擬位址VA中的每一個分配給主機實體位址HPA中的相應一個。主機實體位址HPA可以是非線性的,即不連續的分散位址,並且虛擬位址VA可以是線性位址,即,連續且順序增加的位址。例如,利用簡單自然數表示虛擬位址的虛擬緩衝器ID VBID可以從‘1’開始並且針對實體區域頁面PRP的每個位址增加1。當虛擬緩衝器ID VBID到達最後的虛擬位址VA時,虛擬緩衝器ID VBID可以回滾到‘1’。換言之,主機位址轉換部741可以將從主機2000輸入的非線性主機實體位址HPA映射到線性虛擬位址VA。
當對4KB資料單位的寫入操作排序時,其中每個4KB資料對應於一個主機緩衝器單元2101,主機實體位址HPA可以是用於形成主機2000的主機緩衝記憶體2100的多個主機緩衝器單元2101的隨機實體位址。然而,儲存在實際主機緩衝記憶體2100中的多個4KB資料單元可以具有語義(semantic)或固有順序,其可以由虛擬位址VA表示。
例如,在寫入操作期間,當主機介面740從主機2000接收寫入命令並且回應于寫入命令時,主機介面740可以將儲存在主機緩衝記憶體2100中的待寫入的寫入資料載入到記憶體緩衝器720或緩衝記憶體裝置1300。當從主機2000輸入的寫入資料具有32KB的大小時,可以為寫入資料分配主機緩衝記憶體2100中的32KB的記憶體空間,即,八個4KB的主機緩衝器單元2101,並且這些主機緩衝器單元可以對應於八個實體緩衝器ID PBID。當在主機緩衝記憶體2100中分配的主機2000的八個實體區域頁面PRP,即,八個主機緩衝器單元2101是{4KBx7,4Kbx0,4Kbx1,4Kbx4,4Kbx2,4Kbx6,4Kbx5,4KBx3}時,八個實體緩衝器ID PBID可以被表達為{0x7,0x0,0x1,0x4,0x2,0x6,0x5,0x3}。例如,對應於八個實體緩衝器ID PBID的主機實體位址HPA可以是‘E000’。
當針對相應的寫入命令順序地對八個主機緩衝器單元2101進行編號時,寫入命令可以被定義為由從具有值7*4K的PRP開始的N個序列組成的操作。換言之,具有值7*4K的PRP可以對應於寫入命令的第一序列,具有值0*4K的PRP可以對應於寫入命令的第二序列,並且具有值1*4K的PRP可以對應於寫入命令的第三序列。當根據每個序列來順序地對每個PRP編號時,可以在記憶體緩衝器720或緩衝記憶體裝置1300中指定連續的緩衝空間。該序列編號可以是虛擬位址VA或虛擬位址ID VBID。因此,主機位址轉換部741可以生成和管理虛擬-實體位址映射表。例如,與具有值2的虛擬緩衝器ID VBID相對應的虛擬位址VA可以是‘2000’。
如上所述,針對從主機介面740傳遞的寫入命令,主機位址轉換部741可以排序和管理序列。當利用這些序列來檢測記憶體緩衝器720和緩衝記憶體裝置1300中的緩衝空間時,如果針對寫入命令,僅共用了關於記憶體緩衝器720或緩衝記憶體裝置1300中的第一緩衝空間的資訊,則主機介面740和處理器710可以獲得關於整個緩衝空間的資訊。
參照圖9,在非線性主機實體位址HPA被映射到線性虛擬位址VA的表中,主機2000的主機緩衝記憶體2100可以包括八個主機緩衝器單元2101。針對第一到第八主機緩衝器單元2101,實體緩衝器ID PBID可以對應於主機實體位址HPA,並且虛擬緩衝器ID VBID可以具有從1至16的值。當在時間t0處分配具有值8的實體緩衝器ID PBID時,可以分配具有值1的虛擬緩衝器ID VBID。當在時間t1處分配具有值1的實體緩衝器ID PBID時,可以分配具有值2的虛擬緩衝器ID VBID。主機實體位址HPA可以指示表示主機緩衝記憶體2100中的實際實體緩衝空間的實體位址。另外,虛擬位址VA可以指示表示記憶體緩衝器720或緩衝記憶體裝置1300中的實際實體緩衝空間的實體位址。
如上所述,透過將關於主機緩衝記憶體2100的非線性主機實體位址HPA映射到關於記憶體緩衝器720或緩衝記憶體裝置1300的線性虛擬位址VA,可以在記憶體系統1000中高效地執行寫入操作。換言之,記憶體系統1000可以透過使用順序編程演算法,利用緩衝在記憶體緩衝器720或緩衝記憶體裝置1300中的寫入資料,對非揮發性記憶體裝置1100中的由連續位址表示的頁面進行編程。因此,可以改善編程操作的執行。
圖10是示出根據實施例的透過映射線性虛擬位址的資料寫入和讀取方法的示圖。
參照圖10,寫入資料可以以分散的方式儲存在主機緩衝記憶體2100的多個主機緩衝器單元2101中。當主機2000向記憶體系統1000輸入寫入命令時,與儲存寫入資料的主機緩衝器單元2101相對應的主機實體位址HPA可以是非線性位址。例如,主機緩衝器單元2101中的每一個可以包括儲存4KB資料的記憶體空間,並且寫入資料可以是128KB。例如,128KB寫入資料可以以分散的方式被儲存在與具有值2、3、5、8、11、13、16、18、20、22、23、26、28、29、31和32的實體緩衝器ID PBID相對應的主機緩衝器單元2101中。
記憶體控制器1200的主機位址轉換部741可以將非線性主機實體位址HPA映射到線性虛擬位址VA。換言之,主機位址轉換部741可以將與儲存寫入資料的主機緩衝器單元2101相對應的不連續且分散的實體緩衝器ID PBID映射到連續的虛擬緩衝器ID VBID,並且可以生成或更新虛擬-實體位址映射表。
然後,記憶體控制器1200的主機控制部711可以基於非線性主機實體位址HPA或實體緩衝器ID PBID,來擷取儲存在主機緩衝記憶體2100的主機緩衝器單元2101中的寫入資料,並且可以基於線性虛擬位址VA或虛擬緩衝器ID VBID,將擷取的寫入資料緩衝在控制器緩衝記憶體(即,記憶體緩衝器720和/或緩衝記憶體裝置1300)的控制器緩衝器單元1301中。由於虛擬位址VA是線性位址,因此寫入資料可以緩衝在與順序的虛擬緩衝器ID VBID相對應的控制器緩衝器單元1301中。例如,以分散的方式儲存在與具有不連續且分散的值2、3、5、8、11、13、16、18、20、22、23、26、28、29、31和32的實體緩衝器ID PBID相對應的主機緩衝器單元2101中的寫入資料可以被緩衝在與具有連續的值1至16的虛擬緩衝器ID VBID相對應的十六個控制器緩衝器單元1301中。
記憶體系統1000可以利用儲存在控制器緩衝記憶體的控制器緩衝器單元1301中的寫入資料,對非揮發性記憶體裝置1100的記憶塊110執行編程操作。快閃記憶體轉換部713可以將從主機2000接收的邏輯位址映射到快閃記憶體實體位址,並且可以生成或更新邏輯-實體位址映射表。
快閃記憶體控制部712可以將儲存在控制器緩衝記憶體中的寫入資料編程到非揮發性記憶體裝置1100中的、與映射到從主機2000接收的邏輯位址的快閃記憶體實體位址相對應的頁面。由於儲存在控制器緩衝記憶體中的寫入資料是與連續位址相對應的大量資料,因此快閃記憶體控制部712可以透過使用順序編程演算法,將寫入資料編程在非揮發性記憶體裝置1100中的、由順序位址表示的頁面中。例如,與具有值1至4的VBID相對應的16KB寫入資料可以被儲存在第一頁面Page-1中,與具有值5至8的VBID相對應的16KB寫入資料可以被儲存在第二頁面Page-2中,與具有值9至12的VBID相對應的16KB寫入資料可以被儲存在第三頁面Page-3中,並且與具有值13至16的VBID相對應的16KB寫入資料可以被儲存在第四頁面Page-4中。
記憶體系統1000可以從主機2000接收用於讀取儲存在非揮發性記憶體裝置1100的第一頁面至第四頁面(Page1至Page4)中的資料的讀取命令。記憶體控制器1200的快閃記憶體轉換部713可以檢查映射到從主機2000輸入的邏輯位址的快閃記憶體實體位址,並且確認讀取資料被儲存在非揮發性記憶體裝置1100的Page1至Page4中。
快閃記憶體控制部712可以基於邏輯-實體位址映射資訊從非揮發性記憶體裝置1100的Page1至Page4讀取讀取資料,並且可以將讀取的資料緩衝在控制器緩衝記憶體中。快閃記憶體控制部712可以基於虛擬-實體位址映射表,在控制器緩衝記憶體中為讀取的資料分配16個控制器緩衝器單元1301。由於儲存在非揮發性記憶體裝置1100中的讀取資料是對應於順序位址的大量資料,因此快閃記憶體控制部712可以透過使用順序讀取演算法從非揮發性記憶體裝置1100讀取讀取資料,並且可以將讀取的資料緩衝在與順序虛擬緩衝器ID VBID相對應的16個控制器緩衝器單元1301中。
主機控制部711可以將讀取的資料從與順序虛擬緩衝器ID VBID相對應的16個控制器緩衝單元1301輸出到主機緩衝記憶體2100中的與分散位址相對應的主機緩衝器單元2101。
如上所述,透過將關於主機緩衝記憶體2100的非線性主機實體位址HPA映射到關於記憶體緩衝器720或緩衝記憶體裝置1300的線性虛擬位址VA,可以在記憶體系統1000中高效地執行寫入操作。換言之,記憶體系統1000可以透過使用順序編程演算法,利用緩衝在記憶體緩衝器720或緩衝記憶體裝置1300中的寫入資料,對非揮發性記憶體裝置1100中的、與連續位址相對應的頁面執行編程操作。因此,可以提高編程操作的執行。另外,記憶體系統1000可以透過使用順序讀取演算法,從非揮發性記憶體裝置1100中的、與順序位址相對應的頁面讀取資料,使得可以提高讀取操作的執行。
圖11是示出根據實施例的為輸入/輸出進程分配主機緩衝器單元的方法的示圖。圖12是示出根據實施例的為輸入/輸出進程分配虛擬位址的方法的示圖。
參照圖11,當生成多個輸入/輸出(IO)進程(IOP)時,主機2000可以為IO進程中的各個IO進程分配主機緩衝記憶體2100中的多個主機緩衝器單元2101中的一個。例如,當主機緩衝器單元2101中的每一個是4KB時,一個IO進程可以是關於4KB資料的單個寫入操作。在另一示例中,一個IO進程可以是關於4KB資料的單個讀取操作。
例如,主機緩衝記憶體2100可以具有32KB的大小,並且主機緩衝器單元2101可以具有4KB的大小。在該示例中,當進行用於32KB資料的請求,即,用於八個IO進程IOP#0到IOP#7的請求時,可以分別為八個IO進程分配八個主機緩衝器單元2101。分配的八個主機緩衝器單元2101可以用於八個IO進程,其可以是寫入或讀取操作,並且然後在完成八個IO進程IOP#0到IOP#7之後釋放八個主機緩衝器單元2101。換言之,與具有值1至8的實體緩衝器ID PBID相對應的八個主機緩衝器單元2101可以被分配用於八個IO進程,並且然後在八個IO進程IOP#0至IOP#7完成之後被釋放。
當在完成先前八個IO進程IOP#0至IOP#7之後,進行用於16KB資料的新請求,即用於四個IO進程IOP#8至IOP#11的請求時,可以分別為四個IO進程分配四個主機緩衝器單元2101。由於用於先前八個IO進程IOP#0至IOP#7的先前分配的八個主機緩衝器單元2101在先前八個IO進程IOP#0到IOP#7完成之後被釋放,所以可為當前四個IO進程IOP#8至IOP#11重新分配這八個主機緩衝器單元2101中的四個。例如,與具有值4、1、3和6的實體緩衝器ID PBID相對應的四個主機緩衝器單元2101可以被分配,並且然後在完成四個IO進程IOP#8到IOP#11之後被再次釋放。
例如,用於32KB資料的主機緩衝記憶體2100的實體位址可以是{E000,0,2000,8000,4000,C000,A000,6000},其可以被表示為{0x7, 0, 1, 4, 2, 6, 5, 3}作為實體緩衝器ID PBID。
參照圖12,將透過虛擬位址分配來描述上述操作。先前生成的八個IO進程可以被表達為一個起始虛擬位址或具有值1的一個起始虛擬緩衝器ID VBID以及順序跟隨起始虛擬位址或起始虛擬緩衝器ID VBID的七個虛擬位址或具有值2至8的七個虛擬緩衝器ID VBID。換言之,先前生成的八個IO進程可以被處理為一個IO進程IOP#0。換言之,與先前生成的八個IO進程相對應的一個IO進程IOP#0可以被表示為一個起始虛擬位址或具有值1的一個起始虛擬緩衝器ID VBID以及七個虛擬位址或具有值2至8的七個虛擬緩衝器ID VBID。另外,記憶體緩衝器720或緩衝記憶體裝置1300中的與IO進程IOP#0相對應的實體緩衝空間可以是{0,2000,4000,6000,8000,A000,C000,E000}。例如,記憶體緩衝器720和緩衝記憶體裝置1300可以具有64KB的大小。
隨後生成的四個IO進程可以被表達為一個起始虛擬位址或具有值9的一個起始虛擬緩衝器ID VBID以及順序跟隨起始虛擬位址或起始虛擬緩衝器ID VBID的三個虛擬位址或具有值10至12的三個虛擬緩衝器ID VBID。換言之,隨後生成的四個IO進程可以被處理為一個IO進程IOP#1。換言之,與隨後生成的四個IO進程相對應的一個IO進程IOP#1可以被表示為一個起始虛擬位址或具有值9的一個起始虛擬緩衝器ID VBID以及三個虛擬位址或具有值10至12的三個虛擬緩衝器ID VBID。另外,記憶體緩衝器720或緩衝記憶體裝置1300中的與IO進程IOP#1相對應的實體緩衝空間可以是{10000,12000,14000,16000}。
如上所述,多個IO進程可以被表達為一個起始虛擬位址或一個起始虛擬緩衝器ID VBID以及數個虛擬位址或數個虛擬緩衝器ID VBID,使得可以高效地生成或處理命令。
圖13是描述根據實施例的寫入操作的流程圖。
參照圖13,在寫入操作期間,在步驟S1301處,可以從主機2000接收包括非線性主機實體位址HPA、邏輯位址和寫入資料的大小的寫入命令。可以由記憶體控制器1200的主機介面740執行步驟S1301。隨後,在步驟S1302處,主機位址轉換部741可以將非線性主機實體位址HPA轉換為線性虛擬位址VA。線性虛擬位址VA可以被表達為起始虛擬位址VA和寫入資料的大小(即,與非線性主機實體位址HPA相對應的主機緩衝器單元2101的數量)。
在步驟S1302之後,在步驟S1303處,可以基於非線性主機實體位址HPA從主機2000的主機緩衝記憶體2100中的主機緩衝器單元2101擷取寫入資料。可以由記憶體控制器1200的主機控制部711執行步驟S1303。隨後,在步驟S1304處,基於線性虛擬位址VA,可以將擷取的寫入資料緩衝在控制器緩衝記憶體中的控制器緩衝器單元1301中。可以由記憶體控制器1200的主機控制部711執行步驟S1304。
在步驟S1305處,主機位址轉換部741可以生成或更新虛擬-實體位址映射表。可以在步驟S1302之後執行步驟S1305。例如,可以在步驟S1303和步驟S1304之前或與步驟S1303和步驟S1304並行地執行步驟S1305。虛擬-實體位址映射表可以包括非線性主機實體位址HPA與線性虛擬位址VA之間的映射資訊。
在步驟S1304之後,在步驟S1306處,主機2000可以釋放儲存寫入資料的主機緩衝記憶體2100中的主機緩衝器單元2101。可以在步驟S1304之後執行步驟S1306。例如,可以在步驟S1307至步驟S1310之前或之後執行步驟S1306,或者在另一示例中,可以與步驟S1307至步驟S1310並行地執行步驟S1306。
在步驟S1304之後,在步驟S1307處,可以將邏輯位址映射到快閃記憶體實體位址。可以由記憶體控制器1200的快閃記憶體轉換部713執行步驟S1307。另外,在步驟S1308處,快閃記憶體轉換部713可以生成或更新邏輯-實體位址映射表。邏輯-實體位址映射表可以包括快閃記憶體實體位址和從主機2000接收的邏輯位址之間的映射資訊。
在步驟S1307之後,在步驟S1309處,可以透過使用順序編程演算法,基於快閃記憶體實體位址,將緩衝在控制器緩衝記憶體1301中的寫入資料寫入到非揮發性記憶體裝置1100。可以由快閃記憶體控制部712控制步驟S1309。順序編程演算法可以是被設置為當待被編程的資料具有順序位址時,能夠實現比隨機編程更高效的操作的演算法。
在步驟S1309之後,在緩衝在控制器緩衝記憶體1301中的寫入資料被載入到非揮發性記憶體裝置1100的頁面緩衝器組230之後,可以在步驟S1310處,釋放控制器緩衝記憶體中的儲存寫入資料的控制器緩衝器單元1301。可以由快閃記憶體控制部712控制步驟S1310。隨後,寫入操作可以終止。
如上所述,透過將關於主機緩衝記憶體2100的非線性主機實體位址HPA映射到關於記憶體緩衝器720或緩衝記憶體裝置1300的線性虛擬位址VA,可以在記憶體系統1000中高效地執行寫入操作。換言之,記憶體系統1000可以透過使用順序編程演算法,利用緩衝在記憶體緩衝器720或緩衝記憶體裝置1300中的寫入資料,對非揮發性記憶體裝置1100中的與連續位址相對應的頁面執行編程操作。因此,可以提高編程操作的執行。
圖14是描述根據實施例的讀取操作的流程圖。
參照圖14,在讀取操作期間,在步驟S1401處,可以從主機2000接收包括非線性主機實體位址HPA、邏輯位址和讀取資料的大小的讀取命令。可以由記憶體控制器1200的主機介面740執行步驟S1401。在步驟S1401之後,在步驟S1402處,可以檢查基於邏輯-實體位址映射表而映射到從主機2000輸入的邏輯位址的快閃記憶體實體位址。可以由快閃記憶體轉換部713控制步驟S1402。邏輯-實體位址映射表可以包括在從主機2000接收的邏輯位址與指示非揮發性記憶體裝置1100中的儲存讀取資料的儲存空間的快閃記憶體實體位址之間的映射資訊。
在步驟S1402之後,在步驟S1403處,可以透過使用順序讀取演算法,基於快閃記憶體實體位址,讀取儲存在非揮發性記憶體裝置1100中的讀取資料。可以由快閃記憶體控制部712控制步驟S1403。順序讀取演算法可以是被設置為當待被讀取的資料具有順序位址時,能夠實現比隨機讀取更高效的讀取的演算法。
在步驟S1404處,可以檢查基於虛擬-實體位址映射表而映射到非線性主機實體位址HPA的虛擬位址VA。可以由主機位址轉換部741控制步驟S1404。可以在步驟S1402和步驟S1403之前或與步驟S1402和步驟S1403並行地執行步驟S1404。
在步驟S1403和步驟S1404之後,在步驟S1405處,基於虛擬位址VA,從非揮發性記憶體裝置1100讀取的讀取資料可以被緩衝在控制器緩衝記憶體中的控制器緩衝器單元1301中。可以由快閃記憶體控制部712控制步驟S1405。
在步驟S1405之後,可以基於虛擬-實體位址映射表,將緩衝在控制器緩衝記憶體中的控制器緩衝器單元1301中的讀取資料輸出到主機緩衝記憶體2100的主機緩衝器單元2101。可以由主機控制部711控制步驟S1406。
如上所述,由主機位址轉換部741生成或更新的虛擬-實體位址映射表可以被傳遞到主機控制部711或快閃記憶體控制部712。另外,關於由快閃記憶體轉換部713生成或更新的邏輯-實體位址映射表的資訊可以被傳遞到主機控制部711或快閃記憶體控制部712。
如上所述,透過將關於主機緩衝記憶體2100的非線性主機實體位址HPA映射到關於記憶體緩衝器720或緩衝記憶體裝置1300的線性虛擬位址VA,可以在記憶體系統1000中高效地執行讀取操作。換言之,透過使用順序讀取演算法,記憶體系統1000可以讀取儲存在非揮發性記憶體裝置1100中的與順序位址相對應的頁面中的資料,使得可以提高讀取操作的執行。
圖15是示出記憶體系統30000的實施例的示圖。
參照圖15,記憶體系統30000可以被實現為行動電話、智慧型電話、平板PC、個人數位助理(PDA)或無線通訊裝置。記憶體系統30000可以包括非揮發性記憶體裝置1100和控制非揮發性記憶體裝置1100的操作的記憶體控制器1200。回應於處理器3100的控制,記憶體控制器1200可以控制非揮發性記憶體裝置1100的資料訪問操作,例如,編程操作、擦除操作或讀取操作。
記憶體控制器1200可以控制透過顯示器3200輸出被編程到非揮發性記憶體裝置1100中的資料。
無線電收發器3300可以透過天線ANT交換無線電信號。例如,無線電收發器3300可以將透過天線ANT接收的無線電信號改變為可以由處理器3100處理的信號。因此,處理器3100可以處理從無線電收發器3300輸出的信號並且將處理的信號傳遞到記憶體控制器1200或顯示器3200。記憶體控制器1200可以將由處理器3100處理的信號編程到非揮發性記憶體裝置1100中。另外,無線電收發器3300可以將從處理器3100輸出的信號改變為無線電信號,並且透過天線ANT將無線電信號輸出到外部裝置。用於控制處理器3100的操作或待由處理器3100處理的資料的控制信號可以由輸入裝置3400輸入,並且輸入裝置3400可以包括諸如觸控板和電腦滑鼠的點擊裝置、小鍵盤或鍵盤。處理器3100可以控制顯示器3200的操作,使得從記憶體控制器1200輸出的資料、從無線電收發器3300輸出的資料或從輸入裝置3400輸出的資料透過顯示器3200輸出。
根據實施例,控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可以形成為處理器3100的部分,或者可以形成為獨立於處理器3100的晶片。進一步地,記憶體控制器1200可以根據圖2中示出的記憶體控制器1200來配置。
圖16是示出記憶體系統40000的實施例的示圖。
參照圖16,記憶體系統40000可以被實施為個人電腦(PC)、平板PC、電子書、電子閱讀器、個人數位助理(PDA)、可擕式多媒體播放機(PMP)、MP3播放機或MP4播放機。
記憶體系統40000可以包括非揮發性記憶體裝置1100和控制非揮發性記憶體裝置1100的操作的記憶體控制器1200。
處理器4100可以根據透過輸入裝置4200輸入的資料,透過顯示器4300輸出儲存在非揮發性記憶體裝置1100中的資料。輸入裝置4200的示例可以包括諸如觸控板或電腦滑鼠的點擊裝置、小鍵盤或鍵盤。
處理器4100可以控制記憶體系統40000的一般操作並且控制記憶體控制器1200的操作。根據實施例,控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可以形成為處理器4100的部分,或者可以形成為獨立於處理器4100的晶片。進一步地,記憶體控制器1200可以根據圖2中示出的記憶體控制器1200來配置。
圖17是示出記憶體系統50000的實施例的示圖。
參照圖17,記憶體系統50000可以被設置為影像處理裝置,例如數位相機,或者諸如行動電話、智慧型電話或平板PC的具有或能夠附著到數位相機的裝置。
記憶體系統50000可以包括非揮發性記憶體裝置1100和控制非揮發性記憶體裝置1100的例如編程操作、擦除操作或讀取操作的資料處理操作的記憶體控制器1200。
記憶體系統50000的圖像感測器5200可以將光學圖像轉換成數位信號,並且轉換後的數位信號可以被傳遞到處理器5100或記憶體控制器1200。回應於處理器5100的控制,轉換後的數位信號可以透過顯示器5300輸出或透過記憶體控制器1200儲存在半導體非揮發性記憶體裝置1100中。另外,處理器5100或記憶體控制器1200可以控制透過顯示器5300輸出儲存在非揮發性記憶體裝置1100中的資料。
根據實施例,控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可以形成為處理器5100的部分,或者可以形成為獨立於處理器5100的晶片。進一步地,記憶體控制器1200可以根據圖2中示出的記憶體控制器1200來配置。
圖18是示出記憶體系統70000的實施例的示圖。
參照圖18,記憶體系統70000可以包括記憶卡或智慧卡。記憶體系統70000可以包括非揮發性記憶體裝置1100、記憶體控制器1200和卡介面7100。
記憶體控制器1200可以控制半導體非揮發性記憶體裝置1100和卡介面7100之間的資料交換。在實施例中,卡介面7100可以是但不限於安全數位(SD)卡介面或多媒體卡(MMC)介面。進一步地,記憶體控制器1200可以根據圖2中示出的記憶體控制器1200來配置。
卡介面7100可以根據主機60000的協定來介面連接主機60000和記憶體控制器1200之間的資料交換。根據實施例,卡介面7100可以支援通用序列匯流排(USB)協定和晶片間(IC)-USB協議。卡介面可以指能夠支援由主機60000使用的協定的硬體、安裝在硬體中的軟體或者信號傳輸方法。
當記憶體系統70000連接到諸如PC、平板PC、數位相機、數位音訊播放機、行動電話、控制台視頻遊戲硬體或數位機上盒的主機60000的主機介面6200時,主機介面6200可以在微處理器6100的控制下,透過卡介面7100和記憶體控制器1200執行與非揮發性記憶體裝置1100的資料通信。
根據本公開的實施例,其與記憶體系統的操作相關聯,透過將非線性主機實體位址轉換為線性虛擬位址,可以提高寫入操作和讀取操作的執行。
對於本領域技術人員顯而易見的是,在不脫離本發明的精神或範圍的情況下,可以對本發明的上述實施例進行各種變型。因此,本發明旨在覆蓋所附請求項及其等同物的範圍內的所有這樣的變型。
100‧‧‧記憶體單元陣列
110‧‧‧記憶塊
200‧‧‧週邊電路
210‧‧‧電壓生成電路
220‧‧‧列解碼器
230‧‧‧頁面緩衝器組
231‧‧‧頁面緩衝器
240‧‧‧行解碼器
250‧‧‧輸入/輸出電路
260‧‧‧感測電路
300‧‧‧控制邏輯
710‧‧‧處理器
711‧‧‧主機控制部
712‧‧‧快閃記憶體控制部
713‧‧‧快閃記憶體轉換部
720‧‧‧記憶體緩衝器
730‧‧‧錯誤校正碼(ECC)塊
740‧‧‧主機介面
741‧‧‧主機位址轉換部
750‧‧‧緩衝器控制電路
760‧‧‧非揮發性快閃記憶體介面
770‧‧‧資料隨機化發生器
780‧‧‧緩衝記憶體介面
790‧‧‧匯流排
1000‧‧‧記憶體系統
1100‧‧‧非揮發性記憶體裝置
1200‧‧‧記憶體控制器
1201‧‧‧第一通道介面
1300‧‧‧緩衝記憶體裝置
1301‧‧‧控制器緩衝器單元
2000‧‧‧主機
2100‧‧‧主機緩衝記憶體
2101‧‧‧主機緩衝器單元
3100‧‧‧處理器
3200‧‧‧顯示器
3300‧‧‧無線電收發器
3400‧‧‧輸入裝置
4100‧‧‧處理器
4200‧‧‧輸入裝置
4300‧‧‧顯示器
5100‧‧‧處理器
5200‧‧‧圖像感測器
5300‧‧‧顯示器
6100‧‧‧微處理器
6200‧‧‧主機介面
7100‧‧‧卡介面
30000‧‧‧記憶體系統
40000‧‧‧記憶體系統
50000‧‧‧記憶體系統
60000‧‧‧主機
70000‧‧‧記憶體系統
S1301‧‧‧步驟
S1302‧‧‧步驟
S1303‧‧‧步驟
S1304‧‧‧步驟
S1305‧‧‧步驟
S1306‧‧‧步驟
S1307‧‧‧步驟
S1308‧‧‧步驟
S1309‧‧‧步驟
S1310‧‧‧步驟
S1401‧‧‧步驟
S1402‧‧‧步驟
S1403‧‧‧步驟
S1404‧‧‧步驟
S1405‧‧‧步驟
S1406‧‧‧步驟
ADD‧‧‧地址
ANT‧‧‧天線
BL‧‧‧位線
BLK‧‧‧記憶塊
CH‧‧‧通道
CL‧‧‧行線
CMD‧‧‧命令
DATA‧‧‧資料
DL‧‧‧資料線
DSL‧‧‧汲極選擇線
DST‧‧‧汲極選擇電晶體
FAIL‧‧‧失敗信號
HPA‧‧‧主機實體位址
IOP‧‧‧IO進程
LL‧‧‧局部線
OP_CMD‧‧‧操作信號
Page‧‧‧頁面
PASS‧‧‧通過信號
PB‧‧‧頁面緩衝器
PBID‧‧‧實體緩衝器ID
PBSIGNALS‧‧‧頁面緩衝器控制信號
PPG‧‧‧實體頁面
RADD‧‧‧列地址
SL‧‧‧源極線
SSL‧‧‧源極選擇線
ST‧‧‧串
VA‧‧‧虛擬位址
VBID‧‧‧虛擬緩衝器ID
Vop‧‧‧操作電壓
VPB‧‧‧感測電壓
VRY_BIT‧‧‧可允許位元
Way‧‧‧路徑
WL‧‧‧字線
結合所附圖式從下面的詳細描述中能更清晰地理解本公開的主題的上述和其他方面、特徵以及優點,其中: [圖1]是示出根據實施例的記憶體系統的示圖; [圖2]是示出圖1中所示的記憶體控制器的示圖; [圖3]是示出根據實施例的記憶體系統的示圖; [圖4]是示出圖1所示的非揮發性記憶體裝置的示圖; [圖5]是示出圖4所示的記憶塊的示圖; [圖6]是根據實施例的主機緩衝記憶體的操作的詳細示圖; [圖7]是示出根據實施例的控制器緩衝記憶體的操作的示圖; [圖8]是示出根據實施例的記憶體控制器的示圖; [圖9]是示出根據實施例的位址映射方法的示圖; [圖10]是示出根據實施例的透過線性虛擬位址映射的資料寫入和讀取方法的示圖; [圖11]是示出根據實施例的為輸入/輸出進程分配主機緩衝器單元的方法的示圖; [圖12]是示出根據實施例的為輸入/輸出進程分配虛擬位址的方法的示圖; [圖13]是描述根據實施例的寫入操作的流程圖; [圖14]是描述根據實施例的讀取操作的流程圖; [圖15至圖18]是示出根據本發明的一個或多個實施例的記憶體系統的各種示例的示圖。
Claims (20)
- 一種記憶體系統,其包括: 控制器緩衝記憶體; 主機介面,從主機接收非線性主機實體位址和寫入資料; 主機位址轉換部,將所述非線性主機實體位址映射到線性虛擬位址;以及 主機控制部,根據所述線性虛擬位址將所述寫入資料緩衝在所述控制器緩衝記憶體中。
- 如請求項1所述的記憶體系統,其中所述主機包括主機緩衝記憶體,所述主機緩衝記憶體包括儲存所述寫入資料的多個主機緩衝器單元,以及 所述非線性主機實體位址中的每一個對應於所述多個主機緩衝器單元中的一個。
- 如請求項2所述的記憶體系統,進一步包括: 非揮發性記憶體裝置; 快閃記憶體轉換部,將從所述主機接收的邏輯位址轉換為快閃記憶體實體位址;以及 快閃記憶體控制部,根據所述快閃記憶體實體位址,控制將緩衝在所述控制器緩衝記憶體中的寫入資料寫入到所述非揮發性記憶體裝置。
- 如請求項3所述的記憶體系統,其中所述快閃記憶體控制部根據順序編程演算法,將緩衝在所述控制器緩衝記憶體中的寫入資料寫入到所述非揮發性記憶體裝置。
- 如請求項2所述的記憶體系統,其中當最後的線性虛擬位址被映射後,所述主機位址轉換部返回到第一線性虛擬位址。
- 如請求項2所述的記憶體系統,其中所述多個主機緩衝器單元中的每一個對應於單個輸入/輸出進程。
- 如請求項6所述的記憶體系統,其中所述主機位址轉換部在所述線性虛擬位址中生成與多個輸入/輸出進程相對應的起始線性虛擬位址和一個或多個線性虛擬位址,以及 所述主機控制部根據所述起始線性虛擬位址和所述一個或多個線性虛擬位址,將所述寫入資料緩衝在所述控制器緩衝記憶體中。
- 如請求項3所述的記憶體系統,其中所述主機介面從所述主機接收寫入命令,以及 所述寫入命令包括所述非線性主機實體位址、所述邏輯位址和所述寫入資料的大小資訊。
- 如請求項2所述的記憶體系統,其中所述多個主機緩衝器單元中的每一個具有與所述控制器緩衝記憶體中的控制器緩衝器單元相同的大小。
- 一種記憶體系統,其包括: 控制器緩衝記憶體,其包括緩衝資料的多個控制器緩衝器單元; 主機位址轉換部,其生成實體-虛擬位址映射表;以及 主機控制部,其根據所述實體-虛擬位址映射表,將緩衝在所述控制器緩衝記憶體中的資料輸出到主機的主機緩衝記憶體, 其中所述實體-虛擬位址映射表包括與所述主機緩衝記憶體中的多個主機緩衝器單元相對應的多個非線性主機緩衝器ID和與所述多個控制器緩衝器單元相對應的多個線性虛擬緩衝器ID。
- 如請求項10所述的記憶體系統,其中所述主機位址轉換部在所述線性虛擬緩衝器ID中生成與多個輸入/輸出進程相對應的起始線性虛擬緩衝器ID和一個或多個線性虛擬緩衝器ID,以及 所述主機控制部根據所述起始線性虛擬緩衝器ID和所述一個或多個線性虛擬緩衝器ID,控制輸出緩衝在所述控制器緩衝記憶體中的資料。
- 如請求項10所述的記憶體系統,其中主機介面從主機接收讀取命令,以及 所述讀取命令包括主機實體位址、邏輯位址和所述資料的大小資訊。
- 如請求項12所述的記憶體系統,其進一步包括: 非揮發性記憶體裝置,儲存所述資料;以及 快閃記憶體控制部,控制根據順序讀取演算法從所述非揮發性記憶體裝置讀取所述資料並且將所述資料緩衝在所述控制器緩衝記憶體中。
- 如請求項13所述的記憶體系統,進一步包括快閃記憶體轉換部,所述快閃記憶體轉換部將所述邏輯位址轉換為快閃記憶體實體位址,以及 所述快閃記憶體控制部基於所述快閃記憶體實體位址從所述非揮發性記憶體裝置讀取所述資料。
- 如請求項10所述的記憶體系統,其中所述多個主機緩衝器單元中的每一個和所述多個控制器緩衝器單元中的每一個具有相同的大小。
- 一種記憶體系統的操作方法,所述方法包括: 從主機接收包括非線性主機實體位址的寫入命令; 使用位址轉換部,將所述非線性主機實體位址映射到線性虛擬位址; 根據所述非線性主機實體位址,從所述主機的主機緩衝記憶體中擷取寫入資料;並且 根據所述線性虛擬位址,將所述寫入資料緩衝在控制器緩衝記憶體中。
- 如請求項16所述的方法,其中所述主機緩衝記憶體包括儲存所述寫入資料的多個主機緩衝器單元,並且 所述多個主機緩衝器單元中的每一個對應於所述非線性主機實體位址中的一個。
- 如請求項17所述的方法,進一步包括: 在輸入/輸出進程中處理了儲存在所述多個主機緩衝器單元中的寫入資料之後,釋放所述多個主機緩衝器單元;並且 重新分配所釋放的多個主機緩衝器單元以用於新的輸入/輸出進程。
- 如請求項16所述的方法,其進一步包括根據順序編程演算法,將緩衝在所述控制器緩衝記憶體中的資料寫入到非揮發性記憶體裝置。
- 如請求項17所述的方法,其中所述多個主機緩衝器單元中的每一個對應於單個輸入/輸出進程。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??10-2017-0150660 | 2017-11-13 | ||
KR1020170150660A KR102565895B1 (ko) | 2017-11-13 | 2017-11-13 | 메모리 시스템 및 그것의 동작 방법 |
KR10-2017-0150660 | 2017-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201918882A true TW201918882A (zh) | 2019-05-16 |
TWI770218B TWI770218B (zh) | 2022-07-11 |
Family
ID=66432742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107123295A TWI770218B (zh) | 2017-11-13 | 2018-07-05 | 記憶體系統及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10678476B2 (zh) |
KR (1) | KR102565895B1 (zh) |
CN (1) | CN109783397B (zh) |
TW (1) | TWI770218B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI813455B (zh) * | 2022-09-28 | 2023-08-21 | 瑞昱半導體股份有限公司 | 位址轉換系統及位址轉換方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180041898A (ko) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI668569B (zh) * | 2018-03-14 | 2019-08-11 | 群聯電子股份有限公司 | 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 |
KR102605205B1 (ko) * | 2018-07-25 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 프로세싱 시스템 |
KR20210011198A (ko) * | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
CN110716886B (zh) * | 2019-09-29 | 2022-12-13 | 惠州市仲恺Tcl智融科技小额贷款股份有限公司 | 数据处理的方法、装置、存储介质以及终端 |
US11157212B2 (en) * | 2019-12-19 | 2021-10-26 | Seagate Technology, Llc | Virtual controller memory buffer |
US11347648B2 (en) * | 2020-06-26 | 2022-05-31 | Micron Technology, Inc. | Direct cache hit and transfer in a memory sub-system that programs sequentially |
CN115707342A (zh) * | 2021-06-15 | 2023-02-17 | 华为技术有限公司 | 存储控制方法及装置、存储方法及装置、电子设备及介质 |
US11782824B2 (en) * | 2022-02-08 | 2023-10-10 | Macronix International Co., Ltd. | Universal data path architecture for different data array |
US20240086071A1 (en) * | 2022-09-12 | 2024-03-14 | Western Digital Technologies, Inc. | Ssd use of host memory buffer for improved performance |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734858A (en) | 1994-10-24 | 1998-03-31 | Microsoft Corporation | Method and apparatus for simulating banked memory as a linear address space |
US7941799B2 (en) * | 2004-05-27 | 2011-05-10 | International Business Machines Corporation | Interpreting I/O operation requests from pageable guests without host intervention |
US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
WO2011044154A1 (en) * | 2009-10-05 | 2011-04-14 | Marvell Semiconductor, Inc. | Data caching in non-volatile memory |
KR101301840B1 (ko) | 2010-12-08 | 2013-08-29 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 처리 방법 |
US9164676B2 (en) * | 2011-11-30 | 2015-10-20 | International Business Machines Corporation | Storing multi-stream non-linear access patterns in a flash based file-system |
US9069658B2 (en) * | 2012-12-10 | 2015-06-30 | Google Inc. | Using a virtual to physical map for direct user space communication with a data storage device |
TWI506430B (zh) * | 2013-03-20 | 2015-11-01 | Phison Electronics Corp | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 |
WO2015114754A1 (ja) * | 2014-01-29 | 2015-08-06 | 株式会社日立製作所 | ストレージ装置 |
-
2017
- 2017-11-13 KR KR1020170150660A patent/KR102565895B1/ko active IP Right Grant
-
2018
- 2018-07-05 TW TW107123295A patent/TWI770218B/zh active
- 2018-07-06 US US16/028,605 patent/US10678476B2/en active Active
- 2018-08-02 CN CN201810871446.XA patent/CN109783397B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI813455B (zh) * | 2022-09-28 | 2023-08-21 | 瑞昱半導體股份有限公司 | 位址轉換系統及位址轉換方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI770218B (zh) | 2022-07-11 |
CN109783397A (zh) | 2019-05-21 |
KR102565895B1 (ko) | 2023-08-11 |
US20190146712A1 (en) | 2019-05-16 |
US10678476B2 (en) | 2020-06-09 |
KR20190054426A (ko) | 2019-05-22 |
CN109783397B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI770218B (zh) | 記憶體系統及其操作方法 | |
TWI782977B (zh) | 記憶體系統及其操作方法 | |
KR102518884B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US11455244B2 (en) | Zoned namespace limitation mitigation using sub block mode | |
CN109697024B (zh) | 存储器系统及其操作方法 | |
US20190138440A1 (en) | Memory system and operating method thereof | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
KR20190032809A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
TW201917582A (zh) | 記憶體系統及其操作方法 | |
US11210226B2 (en) | Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof | |
CN113703661A (zh) | 存储器控制器及其操作方法 | |
CN114443507A (zh) | 存储器系统及其操作方法 | |
CN112306385A (zh) | 存储器控制器及其操作方法 | |
US11360886B2 (en) | Storage device and operating method thereof | |
US20240231663A1 (en) | Storage device and method of operating the same | |
CN115588451A (zh) | 存储装置及其操作方法 | |
US10769060B2 (en) | Storage system and method of operating the same | |
CN113126895A (zh) | 存储装置及其操作方法 | |
CN112306386B (zh) | 存储装置及其操作方法 | |
US20240069782A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
TW202331533A (zh) | 儲存裝置及其操作方法 | |
TW202316273A (zh) | 記憶體控制器及其操作方法 | |
KR20220159269A (ko) | 스토리지 장치 및 그 동작 방법 | |
KR20220127067A (ko) | 저장 장치 및 그 동작 방법 | |
CN115617705A (zh) | 存储装置及其操作方法 |