TW202405668A - 記憶體控制器和儲存裝置 - Google Patents

記憶體控制器和儲存裝置 Download PDF

Info

Publication number
TW202405668A
TW202405668A TW112127140A TW112127140A TW202405668A TW 202405668 A TW202405668 A TW 202405668A TW 112127140 A TW112127140 A TW 112127140A TW 112127140 A TW112127140 A TW 112127140A TW 202405668 A TW202405668 A TW 202405668A
Authority
TW
Taiwan
Prior art keywords
data
memory
host
storage device
information
Prior art date
Application number
TW112127140A
Other languages
English (en)
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 TW202405668A publication Critical patent/TW202405668A/zh

Links

Images

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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/0625Power saving in storage 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/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1204Bit line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry

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)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

數據編碼裝置可以包括:原始數據儲存器,被配置爲儲存位元的總數量爲2N的原始數據;先前數據儲存器,被配置爲儲存在原始數據之前輸出的先前數據;計數器,被配置爲對被包括在原始數據中的參考數據位元的數量進行計數;以及數據輸出電路,被配置爲:當被包括在原始數據中的參考數據位元的數量爲N時,根據與先前數據的比較結果反轉及輸出原始數據,並且當被包括在原始數據中的參考數據位元的數量不爲N時,根據被包括在原始數據中的參考數據位元的數量反轉及輸出原始數據。

Description

記憶體控制器和儲存裝置
本公開關於一種數據編碼裝置、記憶體控制器和儲存裝置。
諸如DRAM的揮發性記憶裝置在電源關閉時會丟失所有儲存的資訊,但非揮發性記憶裝置即使在電源關閉時也會保留資訊。因此,非揮發性記憶裝置被用於許多可攜式數位産品中。例如,在使用DRAM的個人電腦(PC)的情況中,在電源關閉時資訊被儲存在硬碟中。
然而,小型和輕型的可攜式産品可能無法使用硬碟,因爲硬碟的尺寸相對較大。據此,非揮發性記憶體產業在設計小尺寸的非揮發性記憶體方面變得非常競爭。並且,這種競爭已經轉化爲移動産品(例如,記憶卡、數位相機、語音/音頻記錄器、網路裝置、行動電話等)製造商之間日益激烈的競爭。
鑒於這些考慮,需要提供一種被認爲最適合非揮發性記憶體的記憶體控制器。特別地,需要一種記憶體控制器,其能夠提高包括非揮發性記憶體的儲存裝置的性能和電源效率,同時具有減小的尺寸。
本申請請求於2022年7月27日向韓國智慧財產局提交的申請號爲10-2022-0092853的韓國專利申請的優先權,其全部公開內容透過引用併入本文。
本公開的實施例提供一種能夠進一步提高儲存裝置的性能和電源效率並進一步減小面積的數據編碼裝置、記憶體控制器和儲存裝置。
根據本公開的實施例,一種數據編碼裝置可以包括:原始數據儲存器,被配置爲儲存具有位元的總數量爲2N的原始數據;先前數據儲存器,被配置爲儲存在原始數據之前輸出的先前數據;計數器,被配置爲對被包括在原始數據中的參考數據位元的數量進行計數;以及數據輸出電路,被配置爲:當被包括在原始數據中的參考數據位元的數量爲N時,根據與先前數據的比較結果反轉及輸出原始數據,並且當被包括在原始數據中的參考數據位元的數量不爲N時,根據被包括在原始數據中的參考數據位元的數量反轉及輸出原始數據。
根據本公開的實施例,一種記憶體控制器可以包括:主機介面,被配置爲從外部主機接收數據;以及記憶體介面,被配置爲將透過轉換接收到的數據而獲得的轉換數據提供給外部記憶裝置。記憶體介面可以被配置爲:接收具有位元的總數量爲2N的原始數據;當在原始數據中的參考數據位元的數量爲N時,根據與在原始數據之前輸出的先前數據的比較結果,反轉及輸出原始數據;並且當被包括在原始數據中的參考數據位元的數量不爲N時,根據被包括在原始數據中的參考數據位元的數量,透過反轉原始數據來輸出轉換數據。
根據本公開的實施例,一種儲存裝置可以包括:記憶裝置;以及記憶體控制器,被配置爲將透過轉換從外部主機接收到的數據而獲得的轉換數據提供給記憶裝置。記憶體控制器可以被配置爲:接收具有位元的總數量爲2N的原始數據;當被包括在原始數據中的參考數據位元的數量爲N時,根據與在原始數據之前輸出的先前數據的比較結果,反轉及輸出原始數據;並且當被包括在原始數據中的參考數據位元的數量不爲N時,根據被包括在原始數據中的參考數據位元的數量,透過反轉原始數據來輸出轉換數據。
根據本公開的實施例,一種用於操作記憶體控制器的方法可以包括:從外部主機接收具有位元的總數量爲2N的原始數據;當在原始數據中的參考數據位元的數量爲N時根據與在原始數據之前輸出的先前數據的比較結果,以及當被包括在原始數據中的參考數據位元的數量不爲N時根據被包括在原始數據中的參考數據位元的數量,透過選擇性地反轉來轉換原始數據;以及將經轉換的數據提供給記憶裝置。
根據本技術,提供了能夠進一步提高儲存裝置的性能和電源效率並進一步減小面積的數據編碼裝置、記憶體控制器和儲存裝置。
根據本說明書或申請中公開的概念的實施例的特定結構或功能的描述僅用於描述根據本公開的概念的實施例。根據本公開的概念的實施例可以以各種形式被實現,並且不應該被解釋爲被限制於本說明書或申請中描述的實施例。
圖1是說明可以包括記憶裝置100、泵電壓產生器200以及記憶體控制器1000的儲存裝置50的實施例的圖。
記憶體控制器1000可以包括主機介面1300、記憶體介面1100以及層轉換器1200。記憶體控制器1000可以控制儲存裝置50的整體操作。當電力被施加到儲存裝置50時,記憶體控制器1000可以運行韌體(FW)。當記憶裝置100爲快閃記憶體裝置時,記憶體控制器1000可以運行諸如快閃轉換層(FTL)的韌體,用於控制主機2000與記憶裝置100之間的溝通。
主機介面1300可以由對應於管理與主機2000的介面的主機介面層(HIL)的韌體及用於實施韌體的硬體所配置。主機介面1300可以與主機2000溝通。在實施例中,主機介面1300可以使用各種溝通方法中的至少一種與主機2000溝通。範例包括通用序列匯流排(USB)、序列先進技術附接(SATA)、串列SCSI(SAS)、高速晶片間(HSIC)、小型電腦系統介面(SCSI)、週邊組件互連(PCI)、高速PCI(PCIe)、高速非揮發性記憶體(NVMe)、通用快閃儲存(UFS)、安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存器型DIMM(RDIMM)、低負載DIMM(LRDIMM)。
主機介面1300可以將來自主機2000的請求提供給層轉換器1200。主機介面1300可以向主機2000提供執行從主機2000接收到的請求的結果。主機介面1300可以包括命令檢查器1310。在操作中,主機介面1300可以基於透過命令檢查器1310產生的資訊來處理來自主機2000的、對在記憶裝置100內的存取限制區域111的存取請求。
記憶體介面1100可以由對應於管理與記憶裝置100的介面的記憶體介面層(MIL)的韌體及用於實施韌體的硬體所配置。記憶體介面1100可以與記憶裝置100溝通。記憶體介面1100可以向記憶裝置100提供與從層轉換器1200接收到的請求相對應的命令。記憶體介面1100可以接收透過記憶裝置執行的命令的結果。
記憶體介面1100可以包括數據編碼器1110,數據編碼器1110可以基於先前儲存的演算法或編碼對從層轉換器1200接收到的數據進行編碼。經編碼的數據可以被提供給記憶裝置100。二者擇一地,數據可以透過對從記憶裝置100提供的數據進行解碼而被確定。
另外,記憶體介面1100可以包括錯誤校正器(即,錯誤檢查和校正(ECC)單元)1120。錯誤校正器1120可以根據先前儲存的錯誤校正碼對記憶裝置100執行錯誤校正操作。在實施例中,錯誤校正器1120可以包括ECC編碼器及ECC解碼器。錯誤校正器1120可以以預定的錯誤校正性能單元(error correction performance unit),例如,以組塊單元(chunk unit),執行錯誤位元校正。ECC編碼器可以對提供給記憶裝置100的數據執行錯誤校正編碼,以產生添加了奇偶位元的碼字。所述碼字可以被傳輸到並被儲存在記憶裝置100中。ECC編碼器可以以錯誤校正性能單元執行編碼。ECC解碼器可以對從記憶裝置100讀取的數據執行錯誤校正解碼,並根據執行結果確定錯誤校正解碼是否成功。ECC解碼器可以使用奇偶位元來校正數據的錯誤位元。當錯誤位元的數量等於或大於可校正的錯誤位元限制時,ECC解碼器可能無法校正錯誤位元,並且可能發生錯誤校正失敗(失敗)。
層轉換器1200可以由對應於管理主機介面層與記憶體介面層之間的轉換的轉換層(諸如FTL)的韌體及用於實施韌體的硬體所配置。層轉換器1200可以將被包括在來自主機2000的請求中的邏輯位址轉換爲實體位址。在實施例中,實體位址可以指示被包括在快閃記憶體裝置中的特定記憶體區域。
另外,記憶體控制器1000可以包括匯流排1600,匯流排1600被配置爲提供在記憶體控制器1000的組件之間的通道。這裡,組件中的每一個可以是區別的功能塊,其被配置爲執行特定功能。功能塊中的一個或多個可以包括智慧屬性(intelligent property, IP)塊。
記憶裝置100可以儲存數據並且可以響應於記憶體控制器1000的控制而操作。記憶裝置100可以包括記憶格陣列,記憶格陣列包括儲存數據的多個記憶格。記憶格陣列可以包括多個記憶塊,並且每個記憶塊可以包括多個記憶格。一個記憶塊可以包括多個頁面。在實施例中,頁面可以是用於將數據儲存在記憶裝置100中或讀取被儲存在記憶裝置100中的數據的單元。記憶塊可以是用於擦除數據的單元。
例如,記憶裝置100可以是雙倍數據速率及同步動態隨機存取記憶體(DDR SDRAM)、***低功率雙倍數據速率(LPDDR4)SDRAM、圖形雙倍數據速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus動態隨機存取記憶體(RDRAM)、NAND快閃記憶體、垂直NAND快閃記憶體、NOR快閃記憶體、電阻式隨機存取記憶體(RRAM)、相變化隨機記憶體(PRAM)、磁阻式隨機存取記憶體(MRAM)、鐵電式隨機存取記憶體(FRAM)、自旋轉移力矩隨機存取記憶體(STT-RAM)等。
在實施例中,記憶裝置100可以以三維陣列結構被實施。本公開不僅可以被應用於其電荷儲存層是由導電漂浮閘(FG)所配置的快閃記憶體裝置,而且還可以被應用於其電荷儲存層是由絕緣層所配置的電荷捕捉快閃記憶體(CTF)。在實施例中,被包括在記憶裝置100中的記憶格中的每一個可以被配置爲儲存一個數據位元的單層單元(SLC)。二者擇一地,被包括在記憶裝置100中的記憶格中的每一個可以被配置爲儲存兩個數據位元的多層單元(MLC)、儲存三個數據位元的三層單元(TLC)或能夠儲存四個數據位元的四層單元(QLC)。記憶裝置100被配置爲從記憶體控制器1000接收命令和位址並且存取在記憶格陣列中透過位址所選擇的區域。例如,記憶裝置100可以對透過所述位址所選擇的區域執行與所述命令相對應的操作。
例如,記憶裝置100可以執行寫入操作(編程操作)、讀取操作及擦除操作。在編程操作期間,記憶裝置100可以在透過位址所選擇的區域中編程數據。在讀取操作期間,記憶裝置100可以從透過位址所選擇的區域讀取數據。在擦除操作期間,記憶裝置100可以擦除被儲存在透過位址所選擇的區域中的數據。
記憶裝置100可以包括存取限制區域111,存取限制區域111可以是來自外部裝置或系統的存取被限制的區域。存取限制區域111可以在製造記憶裝置時被預先設置或者可以透過主機而被指定。此時,在存取限制區域111中,可以限制寫入及讀取兩者,或者可以僅限制寫入。
另外,失敗位元線資訊可以被儲存在記憶裝置100中。失敗位元線資訊可以包括關於在記憶裝置的製造期間執行的測試操作的失敗位元線的資訊。位址可以基於失敗位元線資訊而被分配給被包括在記憶裝置100中的位元線。
泵電壓產生器200可以向記憶裝置100供應泵電壓。泵電壓可以是透過泵送相對低的電壓而輸出的相對高的電壓。根據本公開的實施例的儲存裝置50的泵電壓產生器可以位於記憶裝置100的外部,而不是記憶裝置100的內部。
主機2000可以使用各種溝通方法中的至少一種與儲存裝置50溝通。範例包括通用序列匯流排(USB)、序列先進技術附接(SATA)、串列SCSI(SAS)、高速晶片間(HSIC)、小型電腦系統介面(SCSI)、週邊組件互連(PCI)、高速PCI(PCIe)、高速非揮發性記憶體(NVMe)、通用快閃儲存(UFS)、安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存器型DIMM(RDIMM)以及低負載DIMM(LRDIMM)。
儲存裝置50可以根據主機介面而被製造爲各種類型的儲存裝置中的任意一種,所述主機介面是與主機2000的溝通方法。例如,儲存裝置50可以被配置爲如下中的任意一種:SSD,MMC、eMMC、RS-MMC和微型MMC形式的多媒體卡,SD、迷你SD和微型SD形式的安全數位卡,通用序列匯流排(USB)儲存裝置,通用快閃儲存(UFS)裝置,個人電腦記憶卡國際協會(PCMCIA)卡型儲存裝置,週邊組件互連(PCI)卡型儲存裝置,高速PCI(PCI-E)卡型儲存裝置,緊凑型快閃記憶(CF)卡,智慧媒體卡或記憶棒。
儲存裝置50可以被製造爲各種類型的封裝中的任意一種。例如,儲存裝置50可被製造爲層疊式封裝(POP)、系統級封裝(SIP)、單晶片系統(SOC)、多晶片封裝(MCP)、板載晶片(COB)、晶圓級製造封裝(WFP)及晶圓級層疊式封裝(WSP)中的任意一種。
圖2是說明數據編碼器1110的實施例的圖,數據編碼器1110可以包括原始數據儲存器1111、計數器1112、先前數據儲存器1113以及數據輸出電路1114。
原始數據儲存器1111可以從外部來源接收原始數據Raw Data。原始數據的位元的總數量可以是2N。
計數器1112可以對被包括在原始數據中的參考數據位元的數量進行計數,原始數據被儲存在原始數據儲存器1111中。參考數據位元的電力消耗可以小於除了參考數據位元以外的位元的電力消耗。在實施例中,參考數據位元可以是低位準訊號。
先前數據儲存器1113可以儲存在原始數據之前輸出的先前數據。例如,先前數據可以指在原始數據之前被輸入到數據編碼裝置1100及從數據編碼裝置1100被輸出的數據。據此,數據輸出電路1114的輸出值可以被回授到先前數據儲存器1113的輸入端子。
數據輸出電路1114可以從原始數據儲存器1111接收原始數據並確定是否反轉原始數據。另外,根據是否反轉原始數據,數據輸出電路1114可以反轉或不反轉原始數據並且輸出原始數據。例如,可以基於對應於在被包括在原始數據中的位元之中的參考數據位元的位元的數量(或資訊)來確定是否反轉原始數據。
在實施例中,當原始數據的位元的總數量爲2N時,可以基於與在被包括在經編碼及輸出的數據(轉換數據)中的位元之中的參考數據位元相對應的位元的數量是否超過N來確定是否反轉數據。例如,當與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量小於N時,數據輸出電路1114可以反轉及輸出原始數據。當與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量大於N時,數據輸出電路1114可以不反轉原始數據及輸出原始數據。與參考數據位元相對應的位元的數量可以透過計數器1112來進行計數,並且可以將所計數的參考數據位元的數量提供給數據輸出電路1114。
當與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量是N時,數據輸出電路1114可以考慮到在當前原始數據之前輸出的先前數據來確定是否反轉數據。數據輸出電路1114可以從先前數據儲存器1113接收先前數據以確定是否反轉數據。在實施例中,數據輸出電路1114可以確定是否反轉當前原始數據,以便減少或最小化從先前數據到待被輸出的當前數據的位元轉換(例如,切換)。例如,根據實施例,數據輸出電路1114可以反轉或不反轉數據並且輸出數據,以通過輸出位元的選擇和切換的最小化的方向進一步降低電力消耗。
圖3至圖6是說明根據本公開的實施例和比較範例的數據編碼器的數據編碼過程的圖。更具體地,圖3、圖4和圖6說明根據本公開的實施例的數據編碼器的操作,以及圖5說明根據比較範例的數據編碼器的操作。
參照圖3,數據編碼器1110可以接收8位元的“01010111”作爲原始數據。此時,參考數據位元可以是0,其爲低位準訊號。因此,與被包括在原始數據中的參考數據位元相對應的位元的數量爲3。因此,由於與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量小於4(其爲位元的總數量的一半),因此數據編碼器1110可以確定反轉原始數據。據此,原始數據可以被反轉並輸出爲“10101000”。這裡,與被包括在輸出的轉換數據中的參考數據位元相對應的位元的數量是5,超過作爲位元的總數量的一半的4。另外,數據旗標訊號DBI可以是1,其是指示數據反轉的值。
參照圖4,數據編碼器1110可以接收8位元的“01010100”作爲原始數據。此時,參考數據位元可以是0,其爲低位準訊號。因此,與被包括在原始數據中的參考數據位元相對應的位元的數量爲5。因此,由於與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量超過4(其爲位元的總數量的一半),因此數據編碼器1110可以確定不反轉原始數據。據此,可以將原始數據原樣輸出爲“01010100”而不進行反轉。這裡,與被包括在輸出的轉換數據中的參考數據位元相對應的位元的數量是5,超過作爲位元的總數量的一半的4。另外,數據旗標訊號DBI可以是0,其是指示數據不反轉的值。
參照圖5,數據編碼器1110可以接收8位元的“01010101”作爲當前原始數據。此時,參考數據位元可以是0,其爲低位準訊號。因此,與被包括在原始數據中的參考數據位元相對應的位元的數量爲4。此時,當在不考慮先前輸出的數據的情況下確定是否反轉原始數據時,數據編碼器1110可以確定反轉原始數據,因爲與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量爲4(其爲位元的總數量的一半)或更大。據此,原始數據可以被反轉並輸出爲“01010101”(當前數據)。此時,由於先前輸出的數據(先前數據)是“10101010”,因此從先前數據到當前數據的切換可以是8位元。如圖5所示,當在不考慮先前輸出的數據的情況下確定是否反轉數據時,切換的比率會增加,於是可能導致不必要的電力消耗。
參照圖6,數據編碼器1110可以接收8位元的“01010101”作爲當前原始數據。此時,參考數據位元可以是0,其爲低位準訊號。因此,與被包括在原始數據中的參考數據位元相對應的位元的數量爲4。此時,根據本公開的實施例的數據編碼器1110在確定是否反轉數據時可以考慮先前輸出的數據。也就是說,由於與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量爲4(其爲位元的總數量的一半),因此無論是反轉還是不反轉,與在被包括在原始數據中的位元之中的參考數據位元相對應的位元的數量可以等於4。因此,在這種情況中,可以考慮到先前輸出的數據來確定是否反轉原始數據,並且可以確定是否反轉原始數據以便減少或者最小化從先前輸出的數據到當前輸出的數據的位元轉換。由於在圖6中先前輸出的數據(先前數據)爲“10101010”,因此當反轉當前輸入的原始數據時,切換位元爲8,並且當不反轉當前輸入的原始數據時,切換位元爲0。因此,根據本公開的實施例的數據編碼器1110可以確定不反轉原始數據。也就是說,當將根據本公開的實施例之根據圖6的數據編碼器1110輸出的轉換數據(當前數據)與圖5的數據進行比較時,參考數據位元的數量可以同爲4。然而,由於圖6的切換數量明顯少於圖5的切換數量,因此圖6在降低電力消耗方面可以是有優勢的。
圖7是說明根據本公開的實施例的處理針對儲存裝置的存取限制區域的命令的圖。
參照圖1和圖7,記憶裝置100可以包括存取限制區域111。存取限制區域111可以被預先設置或透過主機2000被指定,於是可以是存取被限制的區域。在存取限制區域111中,可以限制寫入操作及讀取操作兩者,或者可以僅限制寫入操作。
記憶體控制器1000可以從主機2000接收命令。在針對接收到的命令而檢查在命令檢查器1310中的命令之後,記憶體控制器1000可以將命令在記憶體控制器1000中的提交佇列1350中排隊。命令檢查器1310可以包括存取限制區域資訊儲存器1311。存取限制區域資訊儲存器1311可以包括關於存取限制區域111的資訊。例如,關於存取限制區域111的資訊可以與存取限制區域的位址相關。當從主機2000提供命令時,首先,命令檢查器1310可以基於關於被儲存在存取限制區域資訊儲存器1311中的存取限制區域111的資訊,檢查是否命令是請求存取存取限制區域111的命令。當來自主機2000的命令是請求存取存取限制區域111的命令時,命令檢查器1310可以產生指示相應命令是請求存取存取限制區域111的命令的資訊,並且可以將這樣的資訊提供給提交佇列1350。指示來自主機2000的命令是請求存取的命令的資訊可以以相應命令的報告編碼的形式提供。提交佇列1350可以不處理以及可以丟棄產生指示來自主機2000的命令是請求存取存取限制區域111的命令的資訊的命令,並且記憶體控制器1000可以向主機2000提供指示錯誤的響應。
圖8是說明根據本公開的實施例的關於被儲存在儲存裝置中的存取限制區域的資訊的範例。
參照圖7和圖8,關於被儲存在存取限制區域資訊儲存器1311中的存取限制區域111的資訊可以包括關於多個LUNs(邏輯單元號碼)中的每一個的存取限制區域的邏輯位址的資訊。在實施例中,可以針對一個LUN設置多個不連續的存取限制區域。對於一個LUN,以連續的邏輯位址實施的一個存取限制區域可以由一個監控器所配置,並且關於存取限制區域111的資訊可以以表格的形式被儲存,所述表格是多個監控器的集合。監控器中的每一個可以包括是否相應的監控器被檢查(ENABLE)、相應的LUN以及存取限制區域的起始邏輯位址(START LA)和最終邏輯位址(END LA)。也就是說,當記憶體控制器1000接收到命令時,命令檢查器1310可以檢查來自存取限制區域資訊儲存器1311所賦能的監控器的資訊,並且可以在監控器之中找到與接收到的命令的LUN相同的監控器。當監控器指示在具有與接收到的命令相同的LUN的監控器之中存在邏輯位址與命令的邏輯位址重疊時,命令檢查器1310可以確定相應命令是請求存取存取限制區域111的命令。
圖9是說明根據本公開的實施例的處理針對儲存裝置的存取限制區域的命令的過程的流程圖。
參照圖7和圖9,在操作S901中,記憶體控制器1000可以從主機2000接收命令。命令檢查器1310可以檢查被儲存在存取限制區域資訊儲存器1311中的表格中的賦能的監控器,並且可以在監控器之中找到具有與命令的LUN相同的LUN的監控器(操作S903)。此後,在操作S905中,命令檢查器1310可以將透過具有與命令的LUN相同的LUN的監控器指示的起始邏輯位址START LA和最終邏輯位址END LA與命令的邏輯位址進行比較。當作爲在操作S907中檢查的結果,透過監控器指示的邏輯位址的範圍與命令的邏輯位址的範圍重疊時(命中),指示相應命令命中存取限制區域的資訊(例如,指示相應命令是請求存取存取限制區域111的命令的資訊)可以以報告編碼的形式提供給提交佇列1350(操作S909)。
圖10是說明已經被提出的一種類型的記憶格陣列的圖。參照圖10,圖10的記憶格陣列110包括主區域、備用區域以及冗餘區域。根據主區域的測試結果為失敗的位元線可以用冗餘(Redundancy, Red.)區域的位元線代替。然而,圖10所示形式的記憶格陣列的缺點在於記憶格陣列的面積由於單獨的冗餘區域而增加。
圖11是說明根據本公開的實施例的儲存裝置的記憶格陣列110的圖。
參照圖11,記憶格陣列110可以僅包括主區域和備用區域而可以不包括冗餘區域。在這種情況中,透過錯誤校正器1120的錯誤校正操作可能無法在失敗位元線密集的區域中恰當地被執行。透過錯誤校正器1120的錯誤校正操作可以以預定的錯誤校正性能單元被執行,例如,以組塊單元。在透過錯誤校正器執行錯誤校正操作時,當錯誤位元的數量等於或大於可校正的錯誤位元限制時,錯誤校正器1120可能無法校正錯誤位元,並且可能發生錯誤校正失敗(失敗)。例如,當透過測試操作的失敗位元線集中在特定的錯誤校正性能單元中時,在錯誤校正性能單元中的錯誤位元的數量等於或大於可校正的錯誤位限制的可能性增加,於是發生錯誤校正失敗的可能性增加。因此,在圖11的記憶格陣列110的情況中,可以重新安排失敗位元線的位址。具體地,可以重新安排失敗位元線的位址,使得每個錯誤校正性能單元包括的失敗位元線的數量相同。例如,可以重新安排失敗位元線的位址,使得被包括在每個錯誤校正性能單元中的失敗位元線的數量相同,或者被包括在不同錯誤校正性能單元中的失敗位元線的數量之間的差不超過1。關於如上所述重新安排的位元線的位址的資訊可以被儲存在記憶格陣列110的部分區域中。記憶體控制器1000可以基於關於儲存的位元線的位址的資訊對記憶裝置100執行操作。
據此,隨著圖11的記憶格陣列110的冗餘區域被去除,記憶格陣列110的面積會減小,並且在對記憶格陣列110的錯誤校正操作期間發生錯誤校正失敗的可能性可能不會增加。
圖12是說明根據本公開的實施例的儲存裝置的泵電壓產生器的圖。
參照圖12,泵電壓產生器200可以在記憶體控制器1000的控制下接收輸入電壓VCC或參考(例如,接地)電壓GND。泵電壓產生器200可以基於這些輸入值產生泵電壓VPP,並且可以將泵電壓VPP供應給記憶裝置100。另外,泵電壓產生器200可以從記憶裝置100接收準備忙線訊號RBn,並且可以根據接收到的準備忙線訊號來確定是否產生泵電壓VPP。例如,在準備忙線訊號處於低位準的情況中(即,在準備忙線訊號指示記憶裝置處於忙碌狀態的情況中),所述情況表示記憶裝置中正在進行操作。因此,由於操作電壓將被用於記憶裝置,因此泵電壓產生器200可以產生泵電壓VPP,並將泵電壓VPP供應給記憶裝置100。另一方面,在準備忙線訊號處於高位準的情況中(例如,在準備忙線訊號指示記憶裝置處於準備狀態的情況中),由於操作電壓不能被用於記憶裝置,因此泵電壓產生器200可以不產生泵電壓,泵電壓產生器200的輸出被關閉,並且只有減小的或最小的電流流動在泵電壓產生器200中。也就是說,由於根據本公開的實施例的儲存裝置50的泵電壓產生器200位於記憶裝置100的外部,因此不會不必要地增加記憶裝置100的面積。另外,透過根據從記憶裝置100接收到的準備忙線訊號產生泵電壓,可以防止不必要地產生泵電壓(於是電流被洩漏,即使在不操作記憶裝置100的情況中)的問題。
圖13是說明根據本公開的實施例的儲存裝置50中的泵電壓產生器200和記憶裝置100的圖。參照圖1和圖13,儲存裝置50可以包括泵電壓產生器200以及記憶裝置100。
記憶裝置100可以包括記憶格陣列110、電壓產生器120、位址解碼器130、輸入/輸出電路140以及控制邏輯150。記憶格陣列110可以包括通過列線RL連接到位址解碼器130的多個記憶塊。記憶塊可以通過行線CL連接到輸入/輸出電路140。在實施例中,列線RL可以包括字元線、源極選擇線和汲極選擇線。在實施例中,行線CL可以包括位元線。此時,可以重新安排位元線的位址,使得每個錯誤校正性能單元均勻地包括測試操作為失敗的位元線Fail BLy。錯誤校正性能單元可以是錯誤校正器1120執行錯誤校正的預設單元。關於如上所述重新安排的位元線的位址的資訊可以被包括在記憶格陣列110中。
在實施例中,記憶格陣列110可以包括一個或多個記憶體晶粒。每個記憶體晶粒可以包括一個或多個平面,其包括一個或多個記憶塊。另外,被包括在記憶格陣列110中的多個記憶塊可以被分爲兩個或更多個超級塊的群組。超級塊可以是控制邏輯150管理被包括在記憶格陣列110中的多個記憶塊BLK的單元。一個超級塊可以是在記憶格陣列110中(a)同時地或在相同的時間執行讀取操作、寫入操作及/或類似操作,或者相互關聯地或與彼此有關地執行讀取操作、寫入操作及/或類似操作的一組記憶塊,(b)針對一個命令執行讀取操作、寫入操作及/或類似操作的一組記憶塊,或(c)相互關聯地執行或同時地執行讀取操作、寫入操作及/或類似操作的一組記憶塊。另外,從管理或操作的角度來看,在多個記憶塊之中,相互區分的一群記憶塊可以被稱爲超級塊。
多個記憶塊BLK1至BLKi中的每一個可以包括多個記憶格。在實施例中,多個記憶格可以是非揮發性記憶格。在多個記憶格之中被連接到相同的字元線的記憶格可以被定義爲一個實體頁面。因此,記憶格陣列可以包括多個實體頁面。記憶裝置100的記憶格中的每一個可以被配置爲儲存一個數據位元的單層單元(SLC)、儲存兩個數據位元的多層單元(MLC)、儲存三個數據位元的三層單元(TLC)或能夠儲存四個數據位元的四層單元(QLC)。
記憶格陣列110可以包括存取限制區域111。存取限制區域可以是外部存取被限制的區域。當記憶體控制器1000接收到請求存取存取限制區域111的命令時,記憶體控制器1000可以不處理所述命令。
在實施例中,電壓產生器120、位址解碼器130和輸入/輸出電路140可以共同被稱爲週邊電路。週邊電路可以在控制邏輯150的控制下驅動記憶格陣列110。週邊電路可以驅動記憶格陣列110以執行編程操作、讀取操作和擦除操作。
電壓產生器120被配置爲使用從泵電壓產生器200供應的泵電壓來產生多個操作電壓。電壓產生器120響應於控制邏輯150的控制進行操作。
作爲實施例,電壓產生器120可以透過調節從泵電壓產生器200供應的泵電壓來產生內部電源電壓。透過電壓產生器120產生的內部電源電壓被用作為記憶裝置100的操作電壓。
作爲實施例,電壓產生器120可以使用外部電源電壓或內部電源電壓來產生多個操作電壓。電壓產生器120可以被配置爲針對記憶裝置100產生各種電壓。例如,電壓產生器120可以產生多個擦除電壓、多個編程電壓、多個通過電壓、多個選擇讀取電壓以及多個未選擇讀取電壓。
多個產生的操作電壓可以透過位址解碼器130供應到記憶格陣列110。
位址解碼器130通過列線RL連接到記憶格陣列110。位址解碼器130被配置爲響應於控制邏輯150的控制進行操作。位址解碼器130可以從控制邏輯150接收位址ADDR,並且可以對接收到的位址ADDR之中的塊位址進行解碼。位址解碼器130根據經解碼的塊位址在記憶塊之中選擇至少一個記憶塊。位址解碼器130可以對接收到的位址ADDR之中的列位址進行解碼。位址解碼器130可以根據經解碼的列位址在所選擇的記憶塊的字元線之中選擇至少一條字元線。在實施例中,位址解碼器130可以對接收到的位址ADDR之中的行位址進行解碼。位址解碼器130可以根據經解碼的行位址將輸入/輸出電路140和記憶格陣列110相互連接。
在一個實施例中,位址解碼器130可以包括諸如列解碼器、行解碼器以及位址緩衝器的組件。
輸入/輸出電路140可以包括可以通過位元線連接到記憶格陣列110的多個頁面緩衝器。在編程操作期間,可以根據儲存在多個頁面緩衝器中的數據,將數據儲存在所選擇的記憶格中。通過輸入/輸出電路140輸入的數據可以是透過數據編碼器1110轉換的數據。
在讀取操作期間,可以通過位元線來感測儲存在所選擇的記憶格中的數據,並且可以將感測到的數據儲存在頁面緩衝器中。
控制邏輯150可以控制位址解碼器130、電壓產生器122以及輸入/輸出電路140。控制邏輯150可以響應於從外部裝置傳輸的命令CMD進行操作。控制邏輯150可以響應於命令CMD和位址ADDR來產生控制訊號以控制週邊電路。
泵電壓產生器200可以在記憶體控制器1000的控制下接收輸入電壓VCC或接地電壓GND,以及泵電壓產生器200可以基於這些輸入值產生泵電壓VPP並且向記憶裝置100供應泵電壓VPP。另外,泵電壓產生器200可以從記憶裝置100接收準備忙線訊號RBn,並且可以根據接收到的準備忙線訊號來確定是否產生泵電壓VPP。
圖14是說明根據本公開的實施例的基於匯流排的儲存裝置的圖。
參照圖14,儲存裝置可以包括多個功能塊。功能塊可以是例如智慧屬性(IP)塊。在一個實施例中,功能塊可以是主功能塊300或從功能塊400。
主功能塊300是產生命令的功能塊,並且從功能塊400是接收在主功能塊300中產生的命令的功能塊或者成爲在主功能塊300中產生的命令的目標的功能塊。也就是說,作爲用於產生命令的對象的功能塊可以是主功能塊300,並且成爲產生的命令的目標的功能塊可以是從功能塊400。因此,作爲主功能塊300的特定功能塊在某些情況中可以變成從功能塊400,並且作爲從功能塊400的特定功能塊在某些情況中可以變成主功能塊300。
匯流排1600可以用作仲裁器和解碼器,並且多個主功能塊300和多個從功能塊400可以連接到匯流排1600。更具體地,多個主功能塊300和多個從功能塊400可以通過匯流排介面1610連接到匯流排1600。
匯流排1600從在多個主功能塊300之中具有匯流排所有權的主功能塊接收位址資訊和控制資訊,並向從功能塊400傳輸數據處理準備請求。在從功能塊400中執行請求的數據處理之後,匯流排1600可以向相應的主功能塊300提供對請求的響應。
此時,匯流排1600可以根據預定標準,例如高級可擴充介面(AXI)協定標準,執行在多個主功能塊300與多個從功能塊400之間的溝通。爲了執行透過AXI協定支持的功能,功能塊中的每一個可以具有事務ID。然而,主功能塊300中的每一個的事務ID位元寬度和從功能塊400的事務ID位元寬度可能不匹配。
此時,各個匯流排介面1610可以包括可以臨時儲存連接的功能塊中的每一個的事務ID的ID緩衝器1620。可以將儲存在ID緩衝器1620中的每一個中的事務ID在ID緩衝器1620中轉換爲具有預設位元寬度並輸出。此時,從ID緩衝器1620輸出並通過匯流排用於溝通的ID被定義爲匯流排ID。通過ID緩衝器1620中的每一個輸出的所有匯流排ID可以具有相同的位元寬度。
圖15是說明根據本公開的實施例的使用儲存裝置的匯流排的溝通過程的圖。
參照圖15,主功能塊300可以輸出主功能塊300的事務ID以向從功能塊400傳輸請求。例如,主功能塊300的事務ID的位元寬度可以是4。從主功能塊300輸出的事務ID可以臨時儲存在匯流排介面1610被連接到主功能塊300上的ID緩衝器1620中。
儲存在ID緩衝器中的主功能塊300的事務ID可以被轉換爲具有預定位元寬度並且作爲匯流排ID輸出。例如,匯流排ID的預定位元寬度可以是6。匯流排ID可以通過匯流排1600被提供給從功能塊400。
從功能塊400可以輸出從功能塊400的事務ID,以便傳輸對主功能塊300的請求的響應。例如,從功能塊400的事務ID的位元寬度可以是3。自從功能塊400輸出的事務ID可以臨時儲存在匯流排介面1610被連接到從功能塊400上的ID緩衝器1620中。
儲存在ID緩衝器中的從功能塊400的事務ID可以被轉換爲具有預定位元寬度並且作爲匯流排ID輸出。例如,匯流排ID的預定位元寬度可以是6。所述匯流排ID可以通過匯流排1600被提供給主功能塊300。
通常,在通過匯流排1600的溝通中使用的匯流排ID的位元寬度可以根據主功能塊300的數量、主功能塊300的事務ID的位元寬度以及從功能塊400的事務ID的位元寬度而變化。由於根據本公開的實施例的儲存裝置50包括ID緩衝器組,以便在功能塊中的每一個連接到匯流排1600上,無論輸入的事務ID的位元寬度如何,所有輸出的匯流排ID的位元寬度在匯流排介面1610上都是相同的。因此,即使主功能塊300和從功能塊400的數量或事務ID的位元寬度不同,儲存裝置50也可以使用具有相同位元寬度的匯流排ID來執行溝通。
圖16是說明根據本公開的實施例的電子裝置10000的圖。參照圖16,根據本公開的實施例的電子裝置10000可以包括儲存裝置50以及主機2000。
儲存裝置50可以包括記憶裝置100以及記憶體控制器1000。記憶裝置100可以儲存數據並且可以響應於記憶體控制器1000的控制進行操作。記憶裝置100可以包括記憶格陣列,記憶格陣列包括儲存數據的多個記憶格。記憶格陣列可以包括多個記憶塊。每個記憶塊可以包括多個記憶格。一個記憶塊可以包括多個頁面。在實施例中,頁面可以是用於將數據儲存在記憶裝置100中或者讀取儲存在記憶裝置100中的數據的單元。記憶塊可以是用於擦除數據的單元。
記憶體控制器1000可以包括裝置統一記憶體(unified memory, UM)管理器1320。裝置UM管理器1320可以存取在主機2000的主機記憶體2100中的UM區域2120。裝置UM管理器1320可以向主機2000提供關於已經被存取或計劃被存取在UM區域2120中的特定位置的資訊,或者可以從主機2000接收關於在UM區域2120中的特定位置的資訊,接著基於所述資訊存取所述特定位置。在UM區域2120中的位置資訊可以是關於在UM區域2120中的位址的資訊。
主機2000可以包括主機記憶體2100以及主機控制器2200。主機記憶體2100可以包括僅透過主機控制器2200可存取的系統區域2110以及透過儲存裝置50可存取的UM區域2120。UM區域2120可以包括共享區域2121,共享區域2121可以是透過主機控制器2200和儲存裝置50兩者可存取的區域。除了共享區域2121以外的UM區域2120可以透過儲存裝置50存取,但不能透過主機控制器2200存取。UM區域2120可以用作一種緩衝記憶體。例如,在對儲存裝置的寫入操作或讀取操作期間可以將傳輸的數據臨時儲存在UM區域2120中。
主機控制器2200可以控制主機記憶體2100。主機控制器2200可以直接存取主機記憶體2100的系統區域2110和共享區域2121。主機控制器2200可以不直接存取除共享區域2121之外的UM區域2120,並且可以根據儲存裝置50的請求僅在除系統區域2110之外的UM區域2120與共享區域2121之間執行數據複製。主機控制器2200可以檢查是否共享區域2121中存在用於儲存數據的空區域。當主機控制器2200確定共享區域2121中存在用於儲存數據的空區域時,儲存裝置50可以優先使用共享區域2121作爲緩衝記憶體。當主機控制器2200確定共享區域2121中不存在用於儲存數據的空區域時,儲存裝置50可以使用除共享區域2121之外的UM區域2120作爲緩衝記憶體。主機控制器2200可以透過向儲存裝置50提供關於共享區域2121中的特定位置的資訊來請求儲存裝置50存取特定位置。在一個實施例中,主機控制器2200可以從儲存裝置50接收關於除共享區域2121之外的UM區域2120的特定位置的資訊,並在所述特定位置與系統區域2110之間執行數據複製。
圖17是說明根據本公開的實施例的電子裝置的操作的流程圖。
參照圖16和圖17,在操作S1701中,主機控制器2200可以檢查是否共享區域2121中存在用於儲存數據的空區域。當在操作S1703中由於共享區域2121中存在空區域而可以使用共享區域2121時,主機2000可以向儲存裝置50提供UM區域2120中的位置(操作S1705)。例如,主機2000可以向儲存裝置50提供共享區域2121中的位置資訊。另一方面,在操作S1703中由於共享區域2121中不存在空區域,因此不能使用共享區域2121,儲存裝置50可以向主機2000提供UM區域2120中的位置資訊(操作S1707)。例如,儲存裝置50可以向主機2000提供除共享區域2121之外的UM區域2120中的位置資訊。
圖18是說明根據本公開的實施例的儲存裝置50的圖。
參照圖18,儲存裝置50可以包括記憶裝置100、命令處理器1410以及命令管理器1330。命令管理器1330可以包括插槽1331以及服務質量(QoS)管理電路1332。在實施例中,命令管理器1330中可以包括多個插槽1331。多個插槽可以接收從主機2000輸入的命令。
QoS管理電路1332可以包括計數器電路1332a。在實施例中,QoS管理電路1332可以包括分別對應於多個插槽1331的多個計數器電路1332a。當命令被輸入到多個插槽1331中的任意一個時,可以激活相應的計數器電路1332a。當儲存裝置50向主機2000提供對應於命令的響應時,激活的計數器電路1332a可以被去激活。當儲存裝置50在時間超過預設時間之前未能向主機2000提供與命令相對應的響應時,QoS管理電路1332可以向命令處理器1410提供中斷訊號。例如,中斷訊號可以是請求命令處理器1410處理命令的訊號。
在實施例中,當儲存裝置50在時間超過預設時間之前未能向主機2000提供與命令相對應的響應時,指示命令狀態的資訊可以儲存在與輸入了命令的插槽相對應的位元映像中。例如,指示長時間未處理相應命令的資訊可以儲存在位元映像中。當所述資訊儲存在位元映像中時,QoS管理電路1332可以基於儲存在位元映像中的資訊向命令處理器1410輸出中斷訊號。
命令處理器1410可以根據預定優先權從多個插槽1331接收命令。當命令的處理被完成時,命令管理器1330可以被請求產生對命令的響應。當從QoS管理電路1332接收到中斷訊號時,命令處理器1410可以識別沒有正在處理與中斷訊號相對應的命令。據此,命令處理器1410可以識別並管理長時間未處理的命令。
可以根據命令處理器1410的命令處理結果來控制記憶裝置100。例如,可以根據命令處理器1410的命令處理結果將數據儲存在記憶裝置100中或者可以從記憶裝置讀取數據。
圖19是說明根據本公開的實施例的儲存裝置50的圖。
參照圖19,根據本公開的實施例的儲存裝置50可以包括記憶裝置100以及記憶體控制器1000。記憶裝置100可以透過記憶體控制器1000控制。
記憶體控制器1000可以包括描述符產生器1340、提交佇列1350、描述符緩衝器1361、描述符處理器1360以及中止處理器1370。描述符產生器1340可以基於從外部來源接收到的命令來產生描述符。例如,描述符產生器1340可以基於從記憶體控制器1000或記憶裝置100外部的主機2000接收到的命令來產生描述符。描述符產生器1340可以將產生的描述符儲存在提交佇列1350中。例如,提交佇列1350可以是記憶體控制器中的一種系統記憶體區域。
描述符緩衝器1361可以預取儲存在提交佇列1350中的描述符。描述符處理器1360可以根據預取來獲取儲存在描述符緩衝器1361中的描述符並且處理獲取的描述符。在圖19中,描述符緩衝器1361在描述符處理器1360的外部,但不限於此。例如,在一個實施例中,描述符緩衝器1361可以被包括在描述符處理器1360中。描述符處理器1360可以基於獲取的描述符來輸出數據封包。在實施例中,數據封包可以是協定資訊單元(Protocol Information Unit, PIU)。
中止處理器1370可以從外部來源接收關於中止目標命令的資訊。基於接收到的資訊,中止處理器1370可以在儲存在提交佇列1350或描述符緩衝器1361中的描述符之中搜索與中止目標命令相對應的描述符。當描述符被預取到描述符緩衝器1361中時,可以在描述符緩衝器1361中找到與中止目標命令相對應的描述符。在描述符被預取到描述符緩衝器1361中之前,可以在提交佇列1350中找到與中止目標命令相對應的描述符。中止處理器1370可以儲存指示與對應於中止目標命令的描述符相對應的命令被中止的資訊。這些資訊可以被儲存在描述符中的預設字段中。
如上所述,其中指示相應命令被中止的資訊的描述符可以在不透過描述符處理器1360處理的情況下被丟棄。因此,描述符處理器1360可以不產生或者可以不輸出與儲存了指示命令被中止的資訊的描述符相對應的數據封包。
例如,當接收到關於中止目標命令的資訊時,根據本公開的實施例的儲存裝置50的記憶體控制器1000透過查找中止目標命令本身而不重新安排(重新排序),透過查找與中止目標命令相對應的描述符僅儲存關於中止的資訊,並且不處理儲存了關於中止的資訊的描述符。
圖20是說明根據本公開的實施例的記憶體控制器的命令處理過程的流程圖。
參照圖19和圖20,在操作S2701中,記憶體控制器1000可以從外部來源接收命令。例如,可以從外部主機2000或記憶裝置100接收命令。在操作S2703中,記憶體控制器1000的描述符產生器1340可以基於接收到的命令產生描述符,並且在操作S2705中,描述符產生器1340可以將產生的描述符儲存在提交佇列1350中。
在操作S2707中,記憶體控制器1000的描述符緩衝器1361可以從提交佇列1350預取描述符。在操作S2709中,描述符處理器1360可以從描述符緩衝器1361獲取描述符,並且透過語法分析獲取的描述符來處理描述符。
在操作S2711中,描述符處理器1360可以檢查是否描述符的中止字段ABT指示中止。當描述符的中止字段ABT不指示中止時,描述符處理器1360在操作S2713中可以產生並輸出數據封包。當描述符的中止字段ABT指示中止時,描述符處理器1360在操作S2715中可以丟棄數據封包,而不產生數據封包。
當記憶體控制器1000的中止處理器1370在產生和處理描述符的過程中接收關於中止目標命令的資訊時,中止處理器1370在操作S2717中可以將中止資訊儲存在與中止目標命令相對應的描述符的中止字段ABT中。可以根據操作S2705從在提交佇列1350中排隊的描述符之中搜索與中止目標命令相對應的描述符,或者根據操作S2707將與中止目標命令相對應的描述符預取到描述符緩衝器1361中。
圖21是說明根據本公開的實施例的記憶體控制器的中止處理器處理中止目標命令的過程的圖。
參照圖19至圖21,圖20中描述了中止處理器1370在圖21中處理中止目標命令的相對於操作S2717的過程。
首先,在操作S2801中,中止處理器1370可以接收關於中止目標命令的資訊。據此,在操作S2803中,中止處理器1370可以搜索與中止目標命令相對應的描述符。可以從在提交佇列1350中排隊的描述符之中搜索中止目標命令或者可以將中止目標命令預取到描述符緩衝器1361中。
在操作S2805中,中止處理器1370可以儲存與對應於搜索到的中止目標命令的描述符的中止字段ABT相對應的命令是中止目標的資訊。據此,稍後,描述符處理器1360可以透過檢查描述符的中止字段ABT來確定是否進行處理。
圖22是說明根據本公開的實施例的電子裝置10000的圖。
參照圖22,根據本公開的實施例的電子裝置10000可以包括儲存裝置50以及主機2000。儲存裝置50可以包括記憶裝置100以及記憶體控制器1000。
記憶裝置100可以儲存數據並且可以響應於記憶體控制器1000的控制進行操作。記憶裝置100可以包括記憶格陣列,記憶格陣列包括儲存數據的多個記憶格。記憶格陣列可以包括多個記憶塊。每個記憶塊可以包括多個記憶格。一個記憶塊可以包括多個頁面。在實施例中,例如,頁面可以是用於將數據儲存在記憶裝置100中或者讀取儲存在記憶裝置100中的數據的單元。記憶塊可以是用於擦除數據的單元。
記憶體控制器1000可以包括主機介面1300、記憶體介面1100以及層轉換器1200。記憶體控制器1000可以控制儲存裝置50的全部操作。當向儲存裝置50供電時,記憶體控制器1000可以運行韌體(FW)。當記憶裝置100爲快閃記憶體裝置時,記憶體控制器1000可以運行諸如FTL的韌體,用於控制在主機2000與記憶裝置100之間的溝通。
主機介面1300可以由對應於管理與主機2000的介面的HIL的韌體及用於實施韌體的硬體所配置。主機介面1300可以與主機2000溝通。主機介面1300可以將從主機2000接收到的請求提供給層轉換器1200。主機介面1300可以向主機2000提供執行從主機2000接收到的請求的結果。
主機介面1300可以包括裝置UM管理器1320。裝置UM管理器1320可以存取在主機2000的主機記憶體2100中的UM區域2120。
記憶體介面1100可以由對應於管理與記憶裝置100的介面的MIL的韌體及用於實施韌體的硬體所配置。記憶體介面1100可以與記憶裝置100溝通,並且可以向記憶裝置100提供與從層轉換器1200接收到的請求相對應的命令。記憶體介面1100可以接收透過記憶裝置執行的命令的結果。
記憶體介面1100還可以包括裝置UM管理器1130。記憶體介面1100的裝置UM管理器1130可以根據需要直接存取在主機2000的主機記憶體2100中的UM區域2120而無需通過主機介面1300。
層轉換器1200可以由對應於管理在主機介面層與記憶體介面層之間的轉換的轉換層(諸如FTL)的韌體及用於實施韌體的硬體所配置。層轉換器1200可以將被包括在來自主機2000的請求中的邏輯位址轉換爲實體位址。在實施例中,實體位址可以是指示被包括在快閃記憶體裝置中的特定記憶體區域的位址。
另外,記憶體控制器1000可以包括匯流排1600,匯流排1600可以被配置爲在記憶體控制器1000的組件之間提供通道。
主機2000可以包括主機記憶體2100以及主機控制器2200。主機記憶體2100可以包括僅透過主機控制器2200可存取的系統區域2110以及透過儲存裝置50可存取的UM區域2120。UM區域2120可以用作一種緩衝記憶體。例如,在對儲存裝置的寫入操作或讀取操作期間可以將傳輸的數據臨時儲存在UM區域2120中。
主機控制器2200可以控制主機記憶體2100。另外,主機控制器2200可以與儲存裝置50溝通。
主機介面1300可以從主機2000接收寫入命令以及與寫入命令相對應的數據。記憶體介面1100可以響應於接收到的寫入命令將接收到的數據儲存在記憶裝置100中。當數據儲存在將數據儲存在記憶裝置100的過程中失敗時,主機介面1300可以再次從主機2000接收數據。此時,數據可以被儲存在主機2000中的UM區域2120中。主機介面1300可以在與寫入命令相對應的數據被儲存在記憶裝置100中之後向主機2000提供對寫入命令的響應。
在實施例中,主機介面1300可以提供請求主機2000再次提供數據的命令。作爲響應,主機2000可以再次向主機介面1300提供數據。此時,請求再次提供數據的命令可以包括關於在主機2000的主機記憶體2100中的位置的資訊,並且更具體地,可以包括關於在UM區域2120中的位置的資訊。
例如,在實施例中,當主機介面1300從主機2000接收寫入命令時,主機介面1300可以請求將加載到主機2000的主機記憶體2100中的系統區域2110中的數據複製到UM區域2120。此時,透過主機介面1300提供的複製請求可以包括關於在UM區域2120中的待從系統區域2110複製並儲存數據的特定位置的資訊。在另一個實施例中,當主機介面1300從主機2000接收寫入命令以及與寫入命令相對應的數據時,主機介面1300可以將接收到的數據備份在主機2000的主機記憶體2100中的UM區域2120中。據此,將待被儲存在記憶裝置100中的數據儲存在主機2000的主機記憶體2100中的UM區域2120中,並且即使數據儲存在記憶裝置100中失敗,主機介面1300也可以從在主機記憶體2100中的UM區域2120再次接收數據。另外,由於主機介面1300具有關於數據被儲存在UM區域2120中的位置的資訊,因此請求再次提供透過主機介面1300所提供的數據的命令可以包括關於在主機2000的主機記憶體2100中的位置的資訊,更具體地說,可以包括關於在UM區域2120中的位置的資訊。
在另一個實施例中,主機介面1300可以從主機2000接收在主機記憶體2100中的位址資訊。例如,在主機記憶體2100中的位址資訊可以是關於實體區域描述符表格(PRDT)的資訊或關於在主機記憶體2100中的實體位址的資訊。此時,在主機記憶體2100中的位址資訊可以透過主機2000通過命令提供給主機介面1300,或者可以透過主機介面1300直接從主機2000讀取。主機介面1300可以基於從主機2000接收到的在主機記憶體2100中的位址資訊直接獲得在主機記憶體2100中的數據。因此,當數據儲存在將數據儲存在記憶裝置100中的過程中失敗時,主機介面1300可以再次從在主機2000的主機記憶體2120中的UM區域2120直接獲取數據。
主機介面1300可以從主機2000接收讀取命令。記憶體介面1100可以響應於接收到的讀取命令從記憶裝置100讀取數據,並且可以將讀取的數據提供給在主機2000中的主機記憶體2100。也就是說,記憶體介面1100可以透過被包括在記憶體介面1100中的裝置UM管理器1130直接將數據提供給在主機記憶體2100中的UM區域2120,而無需通過主機介面1300。當數據儲存在將數據儲存在主機記憶體2100中的過程中失敗時,記憶體介面1100可以再次向主機記憶體2100提供數據。此時,可以將數據提供給在主機記憶體2100中的UM區域2120。在讀取的數據被儲存在主機記憶體2100中之後,主機介面1300可以向主機2000提供對讀取命令的響應。
在實施例中,記憶體介面1100可以將對應於讀取數據的標識資訊與讀取的數據一起提供給在主機2000中的主機記憶體2100。在實施例中,記憶體介面1100可以向主機記憶體2100提供包括讀取的數據的數據封包。數據封包的特定字段可以指示與讀取的數據相對應的標識資訊。例如,當讀取的數據以DATA IN PIU的形式提供給主機記憶體2100時,與讀取的數據相對應的標識資訊可以被儲存在DATA IN PIU中的數據緩衝偏移字段中。當數據儲存在將數據儲存在主機記憶體2100中的過程中失敗時,記憶體介面1100可以將數據連同讀取的數據以及與讀取的數據相對應的標識資訊再次提供給主機記憶體2100。
在另一個實施例中,主機介面1300可以從主機2000接收在主機記憶體2100中的位址資訊。例如,在主機記憶體2100中的位址資訊可以是關於PRDT的資訊或者關於在主機記憶體2100中的實體位址的資訊。此時,在主機記憶體2100中的位址資訊可以通過命令透過主機2000提供給主機介面1300,或者可以透過主機介面1300直接從主機2000讀取。記憶體介面1100可以基於透過主機介面1300從主機2000接收到的主機記憶體2100中的位址資訊直接將數據儲存在主機記憶體2100中。因此,當數據儲存在將數據儲存在主機記憶體2100中的過程中失敗時,記憶體介面1100可以直接將數據再次儲存在主機2000的主機記憶體2100中的UM區域2120中。
圖23是說明根據本公開的實施例的電子裝置10000的圖。
參照圖1、圖2、圖7、圖13、圖16、圖18、圖19、圖22和圖23,電子裝置10000可以包括主機2000以及儲存裝置50。
主機記憶體2100可以包括僅透過主機控制器2200可存取的系統區域2110以及透過儲存裝置50可存取的UM區域2120。UM區域2120可以包括共享區域2121。共享區域2121可以是透過主機控制器2200和儲存裝置50兩者可存取的區域。除了共享區域2121以外的UM區域2120只能透過儲存裝置50存取,而不能透過主機控制器2200存取。UM區域2120可以用作一種緩衝記憶體。例如,在對儲存裝置的寫入操作或讀取操作期間可以將傳輸的數據臨時儲存在UM區域2120中。
主機控制器2200可以控制主機記憶體2100,並且可以與儲存裝置50溝通。主機控制器2200可以控制主機記憶體2100,並且可以直接存取主機記憶體2100的系統區域2110和共享區域2121。主機控制器2200不能直接存取除共享區域2121之外的UM區域2120,並且可以根據儲存裝置50的請求僅在除系統區域2110之外的UM區域2120與共享區域2121之間執行數據複製。
主機控制器2200可以檢查是否在共享區域2121中存在用於儲存數據的空區域。當主機控制器2200確定在共享區域2121中存在用於儲存數據的空區域時,儲存裝置50可以優先使用共享區域2121作爲緩衝記憶體。當主機控制器2200確定在共享區域2121中不存在用於儲存數據的空區域時,儲存裝置50可以使用除共享區域2121之外的UM區域2120作爲緩衝記憶體。主機控制器2200可以透過向儲存裝置50提供關於在共享區域2121中的特定位置的資訊來請求儲存裝置50存取特定位置。二者擇一地,主機控制器2200可以從儲存裝置50接收關於除共享區域2121以外的UM區域2120的特定位置的資訊,並且在所述特定位置與系統區域2110之間執行數據複製。
儲存裝置50可以包括記憶體控制器1000、泵電壓產生器200以及記憶裝置100。記憶體控制器1000可以包括主機介面1300、記憶體介面1100以及層轉換器1200。記憶體控制器1000可以控制儲存裝置50的全部操作。當向儲存裝置50供電時,記憶體控制器1000可以運行韌體(FW)。當記憶裝置100爲快閃記憶體裝置時,記憶體控制器1000可以運行諸如FTL的韌體,用於控制在主機2000與記憶裝置100之間的溝通。韌體可以被儲存或被加載在內部記憶體1500的部分區域中,並且可以透過處理器1400運行。
主機介面1300可以由對應於管理與主機2000的介面的HIL的韌體及用於實施韌體的硬體所配置。主機介面1300可以與主機2000溝通。
記憶體介面1100可以由對應於管理與記憶裝置100的介面的MIL的韌體及用於實施韌體的硬體所配置。記憶體介面1100可以與記憶裝置100溝通,並且可以向記憶裝置100提供與從層轉換器1200接收到的請求相對應的命令。記憶體介面1100可以接收透過記憶裝置執行的命令的結果。
層轉換器1200可以由對應於管理在主機介面層與記憶體介面層之間的轉換的轉換層(諸如FTL)的韌體及用於實施韌體的硬體所配置。層轉換器1200可以將被包括在來自主機2000的請求中的邏輯位址轉換爲實體位址。在實施例中,實體位址可以是指示被包括在快閃記憶體裝置中的特定記憶體區域的位址。
另外,記憶體控制器1000可以包括匯流排1600,匯流排1600可以被配置爲在記憶體控制器1000的組件之間提供通道。
主機介面1300可以從主機2000接收命令,並且主機介面1300的命令檢查器1310可以檢查是否所述命令是請求存取存取限制區域111的命令。命令檢查器1310可以基於關於儲存在內部存取限制區域資訊儲存器1311中的存取限制區域的資訊來檢查命令。當來自主機2000的命令是請求存取存取限制區域的命令時,命令檢查器1310可以產生指示相應命令是請求存取存取限制區域的命令的資訊,並且將所述資訊提供給提交佇列1350。提交佇列1350可以是在記憶體控制器1000的內部記憶體1500中的部分區域。產生了指示來自主機2000的命令是請求存取存取限制區域的命令的資訊的命令可以不透過處理器1400處理並且可以被丟棄。
另外,當主機介面1300從主機2000接收命令時,所述命令可以被輸入到在主機介面1300的命令管理器1330中的多個插槽1331中的任意一個。當命令被輸入到插槽1331中的任意一個時,可以激活在QoS管理電路1332中與命令被輸入到的插槽1331相對應的計數器電路1332a。當儲存裝置50向主機2000提供與命令相對應的響應時,激活的計數器電路1331可以被去激活。當激活的計數器電路1331在時間超過預設時間之前未向主機2000提供與命令相對應的響應時,QoS管理電路1332可以向命令處理器1410提供請求處理命令的中斷訊號。
另外,當主機介面1300從主機2000接收命令時,在主機介面1300中的描述符產生器1340可以基於接收到的命令產生描述符。產生的描述符可以被儲存在提交佇列1350中,並且描述符緩衝器1361可以預取描述符。此時,當主機介面的中止處理器1370接收關於中止目標命令的資訊時,中止處理器1370可以搜索儲存在提交佇列1350或描述符緩衝器1361中的描述符,以找到與中止目標命令相對應的描述符。中止處理器1370可以儲存指示與對應於中止目標命令的描述符相對應的命令被中止的資訊。描述符處理器1360可以獲取、語法分析和處理來自描述符緩衝器1361的描述符。此時,可以不處理指示相應命令被中止的資訊的描述符。描述符處理器1360可以產生關於經處理的描述符的數據封包,並且向主機2000提供所述數據封包。
從主機介面1300接收數據的記憶體介面1100可以向記憶裝置100提供數據。此時,在記憶體介面1100中的錯誤校正器1120可以以錯誤校正性能單元對向記憶裝置100提供的數據執行錯誤校正編碼,並且可以產生添加了奇偶位元的碼字。另外,錯誤校正器1120可以對從記憶裝置100讀取的數據執行錯誤校正解碼,並且可以根據錯誤校正解碼的結果確定是否錯誤校正解碼是成功。錯誤校正器1120可以使用奇偶位元來校正數據的錯誤位元。當錯誤位元的數量等於或大於可校正的錯誤位元限制時,錯誤校正器1120可能無法校正錯誤位元,並且可能發生錯誤校正失敗(失敗)。
另外,在記憶體介面1100中的數據編碼器1110可以基於先前儲存的演算法或編碼對從層轉換器1200接收的數據進行編碼。可以向記憶裝置100提供經編碼的數據。二者擇一地,可以透過對從記憶裝置100提供的數據進行解碼來確定數據。數據編碼器1110可以包括原始數據儲存器1111、計數器1112、先前數據儲存器1113以及數據輸出電路1114。數據編碼器1110可以透過確定是否反轉當前輸入的原始數據Raw Data來輸出經反轉的或未反轉的轉換數據。例如,可以基於在當前輸入的原始數據的位元之中與參考數據位元相對應的位元的數量(或資訊)來確定是否反轉。當數據編碼器1110接收位元的數量爲2N的數據作爲原始數據時,數據編碼器1110可以反轉或不反轉數據並且輸出數據,使得在被包括在輸出數據(當前數據)中的位元之中與參考數據位元相對應的位元的數量超過N。當在被包括在原始數據中的位元之中與參考數據位元相對應的位元的數量是N時,數據編碼器1110可以考慮到透過轉換在當前原始數據輸入之前輸入的先前原始數據而輸出的先前數據來輸出數據。更詳細地,數據編碼器1110可以透過確定是否反轉當前原始數據來輸出數據,使得從先前數據到當前數據的位元轉換(即,切換)減少或最小化。
記憶裝置100可以包括記憶格陣列110、電壓產生器120、位址解碼器130、輸入/輸出電路140以及控制邏輯150。記憶格陣列110可以包括多個記憶塊。多個記憶塊可以通過列線RL連接到位址解碼器130。記憶塊可以通過行線CL連接到輸入/輸出電路140。在實施例中,列線RL可以包括字元線、源極選擇線和汲極選擇線。在實施例中,行線CL可以包括位元線。此時,可以重新安排位元線的位址,使得每個錯誤校正性能單元均勻地包括測試操作為失敗的位元線Fail BLy。關於如上所述重新安排的位元線的位址的資訊可以被包括在記憶格陣列110中。
記憶格陣列110可以包括存取限制區域111。存取限制區域111可以是外部存取被限制的區域。由於透過命令檢查器1310確定的命令為請求存取存取限制區域111的命令沒有透過記憶體控制器1000被處理,因此可以限制對存取限制區域111的存取。
在實施例中,電壓產生器120、位址解碼器130和輸入/輸出電路140可以共同被稱爲週邊電路。週邊電路可以在控制邏輯150的控制下驅動記憶格陣列110。週邊電路可以驅動記憶格陣列110,以執行編程操作、讀取操作以及擦除操作。
電壓產生器120被配置爲使用從泵電壓產生器200供應的泵電壓來產生多個操作電壓。電壓產生器120響應於控制邏輯150的控制進行操作。
多個產生的操作電壓可以透過位址解碼器130被供應到記憶格陣列110。
位址解碼器130通過列線RL連接到記憶格陣列110。位址解碼器130被配置爲響應於控制邏輯150的控制進行操作。位址解碼器130可以從控制邏輯150接收位址ADDR。位址解碼器130可以對接收到的位址ADDR之中的塊位址進行解碼。位址解碼器130根據經解碼的塊位址在記憶塊之中選擇至少一個記憶塊。位址解碼器130可以對接收到的位址ADDR之中的列位址進行解碼。位址解碼器130可以根據經解碼的列位址在選擇的記憶塊的字元線之中選擇至少一條字元線。在實施例中,位址解碼器130可以對接收到的位址ADDR之中的行位址進行解碼。位址解碼器130可以根據經解碼的行位址將輸入/輸出電路140和記憶格陣列110相互連接。例如,位址解碼器130可以包括諸如列解碼器、行解碼器以及位址緩衝器的組件。
輸入/輸出電路140可以包括可以通過位元線連接到記憶格陣列110的多個頁面緩衝器。在編程操作期間,可以根據儲存在多個頁面緩衝器中的數據,將數據儲存在選擇的記憶格中。通過輸入/輸出電路140輸入的數據可以是透過數據編碼器1110和錯誤校正器1120編碼的數據。
在讀取操作期間,可以通過位元線來感測儲存在選擇的記憶格中的數據,並且感測到的數據可以被儲存在頁面緩衝器中。
控制邏輯150可以控制位址解碼器130、電壓產生器120以及輸入/輸出電路140。控制邏輯150可以響應於從外部裝置傳輸的命令CMD進行操作。控制邏輯150可以響應於命令CMD和位址ADDR來產生控制訊號,以控制週邊電路。
泵電壓產生器200可以在記憶體控制器1000的控制下接收輸入電壓VCC或參考(例如,接地)電壓GND。泵電壓產生器200可以基於這些輸入值產生泵電壓VPP,並且將泵電壓VPP供應給電壓產生器120。另外,泵電壓產生器200可以從控制邏輯150接收準備忙線訊號RBn,並且可以根據接收到的準備忙線訊號來確定是否產生泵電壓VPP。
主機2000的UM區域2120可以透過主機介面1300的裝置UM管理器1320或記憶體介面1100的裝置UM管理器1130存取。另外,在UM區域2120中的共享區域2121可以透過主機介面1300的裝置UM管理器1320或記憶體介面1100的裝置UM管理器1130以及主機控制器2200存取。UM區域2120可以用作一種緩衝記憶體,並且在UM區域2120中的位置資訊可以透過主機控制器2200提供給儲存裝置50,或者可以透過主機介面1300的裝置UM管理器1320或記憶體介面1100的裝置UM管理器1130提供給主機2000。
當主機介面1300的裝置UM管理器1320或記憶體介面1100的裝置UM管理器1130提供在UM區域2120中的位置資訊時,那麽在實施例中,主機控制器2200可以將透過主機介面1300的裝置UM管理器1320或記憶體介面1100的裝置UM管理器1130提供的位置資訊轉換爲在UM區域2120中的位址,以存取UM區域2120。
在另一實施例中,由於記憶體控制器1000可以預先從主機2000接收UM區域2120的位址資訊,因此主機介面1300的裝置UM管理器1320或記憶體介面1100的裝置UM管理器1130可以向主機控制器2200提供在UM區域2120中的位址,並且主機控制器2200可以直接存取UM區域2120而無需額外的位址轉換。這裡,在UM區域2120中的位址可以透過被包括在由主機2000所提供的命令來向儲存裝置50提供,或者記憶體控制器1000可以透過直接讀取在UM區域2120中的位址來從主機2000獲得在UM區域2120中的位址。
在記憶體控制器1000中,描述符產生器1340、中止處理器1370、裝置UM管理器1320和1130等可以是透過在記憶體控制器1000中的處理器1400執行的功能配置。命令檢查器1310、命令管理器1330、描述符處理器1360等可以是在與處理器1400和內部記憶體1500不同的記憶體控制器1000中的單獨配置。
圖24是說明根據本公開的實施例的儲存裝置被應用在固態硬碟(SSD)系統3000的方塊圖。
參照圖24,SSD系統3000包括主機3100以及SSD 3200。SSD 3200通過訊號連接器3001與主機3100交換訊號,並且通過電源連接器3002接收電力。SSD 3200包括SSD控制器3210、多個快閃記憶體3221至322n、輔助電源供應器3230以及緩衝記憶體3240。
根據本公開的實施例,SSD控制器3210可以執行關於圖1、圖16、圖18、圖19、圖22或圖23描述的記憶體控制器1000的功能。
SSD控制器3210可以響應於從主機3100接收到的一個或多個訊號來控制多個快閃記憶體3221至322n。例如,一個或多個訊號可以是基於在主機3100與SSD 3200之間的介面。
輔助電源供應器3230通過電源連接器3002連接到主機3100。輔助電源供應器3230可以從主機3100接收電力並且可以充電。當來自主機3100的電力供應不平穩時,輔助電源供應器3230可以向SSD 3200提供電力。例如,輔助電源供應器3230可以位於SSD 3200中或者可以位於SSD 3200的外部。例如,輔助電源供應器3230可以位於主板上,並且可以向SSD 3200提供輔助電源。
緩衝記憶體3240作爲SSD 3200的緩衝記憶體進行操作。例如,緩衝記憶體3240可以臨時儲存從主機3100接收到的數據或從多個快閃記憶體3221至322n接收到的數據,或者可以臨時儲存快閃記憶體3221至322n的元數據(例如,映射表)。緩衝記憶體3240可以包括揮發性儲存器(例如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM),或諸如FRAM、ReRAM、STT-MRAM或PRAM的非揮發性記憶體。
圖25是說明根據本公開的實施例的儲存裝置被應用在用戶系統4000的方塊圖。
參照圖25,用戶系統4000包括應用處理器4100、記憶體模組4200、網路模組4300、儲存模組4400以及用戶介面4500。
應用處理器4100可以驅動被包括在用戶系統4000中的組件、作業系統(OS)、用戶程式等。例如,應用處理器4100可以包括控制被包括在用戶系統4000中的組件的控制器、介面、圖形引擎等。應用處理器4100可以被提供爲單晶片系統(SoC)。
記憶體模組4200作爲用戶系統4000的主記憶體、工作記憶體、緩衝記憶體或快取記憶體進行操作。記憶體模組4200可以包括揮發性隨機存取記憶體(例如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM),或諸如PRAM、ReRAM、MRAM和FRAM的非揮發性隨機存取記憶體。例如,應用處理器4100和記憶體模組4200可以基於層疊式封裝(POP)被封裝,並且被提供爲一個半導體封裝。
網路模組4300可以與外部裝置溝通。例如,網路模組4300可以支持諸如碼分多重存取(CDMA)、全球行動通訊系統(GSM)、寬頻CDMA(WCDMA)、CDMA-2000、時分多重存取(TDMA)、長期演進技術、全球互通微波存取(WiMAX)、無線區域網路(WLAN)、超寬頻(UWB)、藍牙和Wi-Fi的無綫溝通。例如,網路模組4300可以被包括在應用處理器4100中。
儲存模組4400可以儲存數據。例如,儲存模組4400可以儲存從應用處理器4100接收到的數據。二者擇一地,儲存模組4400可以將儲存在儲存模組4400中的數據發送到應用處理器4100。例如,可以利用諸如以下的非揮發性半導體記憶體元件來實施儲存模組4400:相變RAM(PRAM)、磁阻式RAM(MRAM)、電阻式RAM(RRAM)、NAND快閃、NOR快閃和三維NAND快閃。例如,儲存模組4400可以被提供爲諸如記憶卡的可移動儲存裝置(可移動驅動器)以及用戶系統4000的外部驅動器。
例如,儲存模組4400可以包括例如可以與參照圖1、圖16、圖18、圖19、圖22或圖23描述的記憶裝置100相同地操作的多個非揮發性記憶裝置。
用戶介面4500可以包括用於向應用處理器4100輸入數據或指令或者用於向外部裝置輸出數據的介面。例如,用戶介面4500可以包括諸如以下的用戶輸入介面:鍵盤、小鍵盤、按鈕、觸控面板、觸控螢幕、觸控板、觸控球、攝影機、麥克風、陀螺儀感測器、振動感測器和壓電元件。用戶介面4500可以包括諸如以下的用戶輸出介面:液晶顯示器(LCD)、有機發光二極體(OLED)顯示裝置、主動矩陣式有機發光二極體(AMOLED)顯示裝置、發光二極體(LED)、揚聲器和監控器。
本文中描述的方法、過程及/或操作可以透過待由計算機、處理器、控制器或其他訊號處理裝置運行的編碼或指令執行。所述計算機、處理器、控制器或其他訊號處理裝置可以是本文中描述的裝置或者是除本文中描述的元件之外的元件。因爲詳細描述了形成方法(或者計算機、處理器、控制器或其他訊號處理裝置的操作)的基礎的演算法,所以用於實施方法實施例的操作的編碼或指令可以將計算機、處理器、控制器或其他訊號處理裝置轉換爲用於執行本文中的方法的專用處理器。
而且,另一個實施例可以包括用於儲存上述編碼或指令的電腦可讀取記錄媒體,例如非暫時性電腦可讀取記錄媒體。電腦可讀取記錄媒體可以是可以可拆卸地或固定地耦接到計算機、處理器、控制器或其他訊號處理裝置的揮發性記憶體或非揮發性記憶體或者其他儲存裝置,計算機、處理器、控制器或其他訊號處理裝置用於運行用於執行本文中的方法實施例或設備實施例的操作的編碼或指令。
例如,本文中公開的實施例的控制器、處理器、裝置、模組、單元、多工器、產生器、邏輯器件(logic)、介面、編碼器、計數器、塊、管理器、電路、解碼器、驅動器、產生器以及其他訊號產生和訊號處理特徵(feature)可以在例如可以包括硬體、軟件或這兩者的非暫時性邏輯器件中實施。當至少部分地在硬體中實現時,控制器、處理器、裝置、模組、單元、多工器、產生器、邏輯器件、介面、編碼器、計數器、塊、管理器、電路、解碼器、驅動器、產生器以及其他訊號產生和訊號處理特徵可以是,例如包括但不限於應用特定積體電路、現場可程式邏輯閘陣列、邏輯閘的組合、單晶片系統、微處理器或者另一種類型的處理或控制電路的各種積體電路中的任意一種。
當至少部分地以軟體來實施時,控制器、處理器、裝置、模組、單元、多工器、產生器、邏輯器件、介面、編碼器、計數器、塊、管理器、電路、解碼器、驅動器以及其他訊號產生和訊號處理特徵可以包括例如記憶體或其他儲存裝置,用於儲存例如待透過計算機、處理器、微處理器、控制器或其他訊號處理裝置運行的編碼或指令。計算機、處理器、微處理器、控制器或其他訊號處理裝置可以是本文中描述的裝置,也可以是除本文中描述的元件之外的元件。因爲詳細描述了形成方法(或者計算機、處理器、微處理器、控制器或其他訊號處理裝置的操作)的基礎的演算法,所以用於實施方法實施例的操作的編碼或指令可以將計算機、處理器、控制器或其他訊號處理裝置轉換爲用於執行本文中描述的方法的專用處理器。
儘管出於說明目的已經描述各種實施例,但是對於本發明所屬技術領域中具有通常知識者將顯而易見的是,在不脫離所附申請專利範圍所限定的本發明的精神和範圍的情況下,可以進行各種改變和修改。可以組合實施例以形成其他實施例。
50:儲存裝置 100:記憶裝置 110:記憶格陣列 111:存取限制區域 120:電壓產生器 130:位址解碼器 140:輸入/輸出電路 150:控制邏輯 200:泵電壓產生器 300:主功能塊 400:從功能塊 1000:記憶體控制器 1100:記憶體介面 1110:數據編碼器 1111:原始數據儲存器 1112:計數器 1113:先前數據儲存器 1114:數據輸出電路 1120:錯誤校正器 1130:裝置UM管理器 1200:層轉換器 1300:主機介面 1310:命令檢查器 1311:存取限制區域資訊儲存器 1320:裝置UM管理器 1330:命令管理器 1331:插槽 1332:服務質量(QoS)管理電路 1332a:計數器電路 1340:描述符產生器 1350:提交佇列 1360:描述符處理器 1361:描述符緩衝器 1370:中止處理器 1400:處理器 1410:命令處理器 1500:內部記憶體 1600:匯流排 1610:匯流排介面 1620:ID緩衝器 2000:主機 2100:主機記憶體 2110:系統區域 2120:UM區域 2121:共享區域 2200:主機控制器 3000:固態硬碟(SSD)系統 3001:訊號連接器 3002:電源連接器 3100:主機 3200:固態硬碟 3210:SSD控制器 3221、3222、322n:快閃記憶體 3230:輔助電源供應器 3240:緩衝記憶體 4000:用戶系統 4100:應用處理器 4200:記憶體模組 4300:網路模組 4400:儲存模組 4500:用戶介面 10000:電子裝置 ABT:中止字段 ADDR:位址 BLK、BLK1、BLKi:記憶塊 CL:行線 CMD:命令 DBI:數據旗標訊號 END LA:最終邏輯位址 Fail BLy:失敗的位元線 GND:接地電壓 Raw Data:原始數據 RBn:準備忙線訊號 RL:列線 S901、S903、S905、S907、S909:操作 S1701、S1703、S1705、S1707:操作 S2701、S2703、S2705、S2707、S2709:操作 S2711、S2713、S2715、S2717:操作 S2801、S2803、S2805:操作 START LA:起始邏輯位址 VCC:輸入電壓 VPP:泵電壓
圖1說明儲存裝置的實施例。 圖2說明數據編碼器的實施例。 圖3至圖6說明根據本公開的實施例和根據比較範例的數據編碼器的數據編碼過程。 圖7說明用於處理針對儲存裝置的存取限制區域的命令的實施例。 圖8說明關於被儲存在儲存裝置中的存取限制區域的資訊的範例。 圖9說明處理針對儲存裝置的存取限制區域的命令的過程的實施例。 圖10說明已經被提出的一種類型的記憶格陣列。 圖11說明儲存裝置的記憶格陣列的實施例。 圖12說明儲存裝置的泵電壓產生器的實施例。 圖13說明在儲存裝置中的泵電壓產生器和記憶裝置的實施例。 圖14說明基於匯流排的儲存裝置的實施例。 圖15說明使用儲存裝置的匯流排的溝通過程的實施例。 圖16說明電子裝置的實施例。 圖17說明根據本公開的實施例的電子裝置的操作。 圖18說明儲存裝置的實施例。 圖19說明儲存裝置的實施例。 圖20說明記憶體控制器的命令處理過程的實施例。 圖21說明記憶體控制器的中止處理器處理中止目標命令的過程的實施例。 圖22說明電子裝置的實施例。 圖23說明電子裝置的實施例。 圖24說明包括儲存裝置的固態硬碟(SSD)系統的實施例。 圖25說明包括儲存裝置的用戶系統的實施例。
50:儲存裝置
100:記憶裝置
111:存取限制區域
200:泵電壓產生器
1000:記憶體控制器
1100:記憶體介面
1110:數據編碼器
1120:錯誤校正器
1200:層轉換器
1300:主機介面
1310:命令檢查器
1600:匯流排
2000:主機

Claims (22)

  1. 一種記憶體控制器,包括: 主機介面,被配置成從外部主機接收數據;以及 記憶體介面,被配置成將透過轉換接收到的數據而獲得的轉換數據提供給外部記憶裝置,其中所述記憶體介面被配置成: 接收具有位元的總數量爲2N的原始數據, 當在所述原始數據中的參考數據位元的數量爲N時,根據與在所述原始數據之前輸出的先前數據的比較結果,反轉及輸出所述原始數據,並且 當被包括在所述原始數據中的參考數據位元的數量不爲N時,根據被包括在所述原始數據中的參考數據位元的數量,透過反轉所述原始數據來輸出所述轉換數據。
  2. 如請求項1所述的記憶體控制器,其中,所述主機介面包括關於在記憶裝置內的存取限制區域的資訊。
  3. 如請求項2所述的記憶體控制器,其中,關於所述存取限制區域的資訊包括關於對於多個邏輯單元號碼(LUNs)中的每一個的存取限制區域的邏輯位址的資訊。
  4. 如請求項3所述的記憶體控制器,其中,所述主機介面基於關於所述存取限制區域的資訊來產生指示是否從所述外部主機接收到的命令是請求存取所述存取限制區域的命令的資訊。
  5. 一種儲存裝置,包括: 記憶裝置;以及 記憶體控制器,被配置成向所述記憶裝置提供透過轉換從外部主機接收到的數據而獲得的轉換數據, 其中,所述記憶體控制器被配置成: 接收具有位元的總數量爲2N的原始數據, 當被包括在所述原始數據中的參考數據位元的數量爲N時,根據與在所述原始數據之前輸出的先前數據的比較結果,反轉及輸出所述原始數據,並且 當被包括在所述原始數據中的參考數據位元的數量不爲N時,根據被包括在所述原始數據中的參考數據位元的數量,透過反轉所述原始數據來輸出所述轉換數據。
  6. 如請求項5所述的儲存裝置,其中,所述記憶體控制器以預定的錯誤校正性能單元對所述記憶裝置執行錯誤校正操作。
  7. 如請求項6所述的儲存裝置,其中,所述記憶裝置包括分別連接到多條位元線的記憶格。
  8. 如請求項7所述的儲存裝置,其中,所述記憶裝置包括失敗位元線資訊儲存器,被配置成儲存關於在所述多條位元線之中測試操作失敗的位元線的資訊。
  9. 如請求項8所述的儲存裝置,其中,關於失敗位元線的資訊包括關於所述多條位元線的位址的資訊,其中對於每個錯誤校正性能單元,所述失敗位元線的數量差不超過“1”。
  10. 如請求項8所述的儲存裝置,其中,關於失敗位元線的資訊包括關於對於每個錯誤校正性能單元包括相同數量的失敗位元線的所述多條位元線的位址的資訊。
  11. 如請求項9所述的儲存裝置,其中,所述記憶裝置包括: 記憶格陣列,包括所述記憶格,所述記憶格陣列被配置成將關於所述失敗位元線的資訊儲存在至少部分區域中; 週邊電路,通過所述多條位元線連接到所述記憶格;以及 位址解碼器,被配置成基於關於所述失敗位元線的資訊對位址進行解碼,並向所述週邊電路提供經解碼的位址。
  12. 如請求項5所述的儲存裝置,其中,所述記憶裝置包括存取被限制的存取限制區域。
  13. 如請求項12所述的儲存裝置,其中所述記憶體控制器包括關於在所述記憶裝置內的所述存取限制區域的資訊。
  14. 如請求項13所述的儲存裝置,其中,所述記憶體控制器基於關於所述存取限制區域的資訊,產生指示是否從所述外部主機接收到的命令是請求存取所述存取限制區域的命令的資訊。
  15. 如請求項5所述的儲存裝置,進一步包括: 泵電壓產生器,被配置成從外部向所述記憶裝置供應泵電壓。
  16. 如請求項15所述的儲存裝置,其中,所述泵電壓產生器從所述記憶裝置接收準備忙線訊號。
  17. 如請求項16所述的儲存裝置,其中,所述泵電壓產生器基於所述準備忙線訊號輸出所述泵電壓。
  18. 如請求項5所述的儲存裝置,進一步包括: 匯流排,數據通過所述匯流排在所述外部主機與所述記憶裝置之間移動;以及 多個功能塊,通過各自的匯流排介面連接到所述匯流排。
  19. 如請求項18所述的儲存裝置,其中,所述多個功能塊包括從功能塊及主功能塊,所述主功能塊被配置成當通過所述匯流排介面向所述從功能塊傳輸請求時,將匯流排ID與所述請求一起提供給所述從功能塊。
  20. 如請求項19所述的儲存裝置,其中,所述主功能塊及所述從功能塊在溝通所述數據時將所述匯流排ID與所述數據一起傳輸,所述數據與所述請求相對應。
  21. 如請求項18所述的儲存裝置,其中,所述匯流排介面包括ID緩衝器,被配置成: 分別儲存相應功能塊的事務ID,以及 將所述事務ID作爲具有預定位元寬度的匯流排ID輸出。
  22. 如請求項21所述的儲存裝置,其中,從所述ID緩衝器輸出的所有匯流排ID具有相同的位元寬度。
TW112127140A 2022-07-27 2023-07-20 記憶體控制器和儲存裝置 TW202405668A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0092853 2022-07-27
KR1020220092853A KR20240015247A (ko) 2022-07-27 2022-07-27 데이터 코딩 장치, 메모리 컨트롤러 및 스토리지 장치

Publications (1)

Publication Number Publication Date
TW202405668A true TW202405668A (zh) 2024-02-01

Family

ID=89508553

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112127140A TW202405668A (zh) 2022-07-27 2023-07-20 記憶體控制器和儲存裝置

Country Status (5)

Country Link
US (1) US20240038317A1 (zh)
KR (1) KR20240015247A (zh)
CN (1) CN117476063A (zh)
DE (1) DE102023110994A1 (zh)
TW (1) TW202405668A (zh)

Also Published As

Publication number Publication date
US20240038317A1 (en) 2024-02-01
KR20240015247A (ko) 2024-02-05
DE102023110994A1 (de) 2024-02-01
CN117476063A (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
TWI757371B (zh) 記憶體系統及其操作方法
US10769066B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
US11068206B2 (en) Data storage device for processing a sequential unmap entry by using trim instruction data and operating method thereof
US20190227931A1 (en) Data storage device and operating method thereof
TW201716980A (zh) 資料儲存設備及其操作方法
TW201816618A (zh) 記憶體系統及其操作方法
US10853254B2 (en) Memory system having a memory controller and a memory device having a page buffer
US11567685B2 (en) Storage controller and storage device including the same
US10922000B2 (en) Controller, operating method thereof, and memory system including the same
CN116107767A (zh) 包括多处理器的控制器及其操作方法
US20200125292A1 (en) Memory system and operating method thereof
US20200310981A1 (en) Controller, memory system and operating method thereof
US10599581B2 (en) Data storage device and operating method thereof
US11782638B2 (en) Storage device with improved read latency and operating method thereof
US20210397364A1 (en) Storage device and operating method thereof
US10528465B2 (en) Memory system and operating method thereof
US11609710B2 (en) Host, data storage device, data processing system and data processing method
CN112711377B (zh) 分布式存储***的存储节点及其操作方法
US20210397558A1 (en) Storage device and operating method thereof
US11232023B2 (en) Controller and memory system including the same
CN111309247B (zh) 存储器***及其操作方法
US11194512B2 (en) Data storage device which selectively performs a cache read or a normal read operation depending on work load and operating method thereof
TW202405668A (zh) 記憶體控制器和儲存裝置
CN111143255A (zh) 存储装置及其操作方法
US11537514B2 (en) Data storage device and operating method thereof