TW202316273A - 記憶體控制器及其操作方法 - Google Patents
記憶體控制器及其操作方法 Download PDFInfo
- Publication number
- TW202316273A TW202316273A TW111136414A TW111136414A TW202316273A TW 202316273 A TW202316273 A TW 202316273A TW 111136414 A TW111136414 A TW 111136414A TW 111136414 A TW111136414 A TW 111136414A TW 202316273 A TW202316273 A TW 202316273A
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- recommendation
- signal
- memory
- referral
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
- 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
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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/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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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
-
- 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/0658—Controller construction 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本技術係關於一種電子裝置。根據本技術,一種用於儲存裝置的記憶體控制器,該儲存裝置儲存與主機相關的資料,該主機與該儲存裝置通信,該記憶體控制器包括:推薦信號管理器,被配置為儲存多個推薦信號,多個推薦信號推薦啟動主機的記憶體區域,該記憶體區域中儲存映射資訊;以及主機控制器,被配置為根據提供給主機的推薦信號的數量是否小於閾值,向主機提供多個推薦信號中的至少一個推薦信號。
Description
所揭示的技術係關於一種電子裝置,並且更具體地,係關於一種記憶體控制器及其操作方法。
資料儲存裝置是諸如計算機或智慧型手機的主機裝置用來儲存資料的裝置。資料儲存裝置可以包括儲存資料的記憶體裝置和控制記憶體裝置的記憶體控制器。記憶體裝置可以被分類為揮發性記憶體裝置和非揮發性記憶體裝置。
揮發性記憶體裝置僅在裝置通電時保持其資料並且在斷電時丟失其資料。揮發性記憶體裝置的示例可以包括靜態隨機存取記憶體(SRAM)和動態隨機存取記憶體(DRAM)。
非揮發性記憶體裝置即使在沒有電源的情況下也保持所儲存的資料,因此在斷電時不丟失其資料。非揮發性記憶體裝置的示例包括只讀記憶體(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)和快閃記憶體。
相關申請案的交叉引用:
本專利文件請求於2021年10月5日提交的申請號為10-2021-0131603的韓國專利申請的優先權和權益,該韓國專利申請透過引用全部併入本文。
可以在一些實施例中實施所揭示的技術以提供可以提高性能的資料儲存裝置及其操作方法。
根據本發明的實施例,一種用於儲存裝置的記憶體控制器,該儲存裝置用於儲存與主機相關的資料,該主機與該儲存裝置通信,該記憶體控制器包括:推薦(recommendation)信號管理器,被配置為儲存多個推薦信號,多個推薦信號推薦啟動主機的記憶體區域以將映射資訊儲存在主機的記憶體區域中;以及主機控制器,被配置為根據提供給主機的推薦信號的數量是否小於閾值,向主機提供多個推薦信號中的至少一個推薦信號。
基於所揭示的技術的一些實施例,一種操作記憶體控制器的方法包括:生成儲存多個推薦信號的推薦信號隊列,多個推薦信號推薦啟動主機的記憶體區域以將映射資訊儲存在主機的記憶體區域中;計算提供給主機的推薦信號的數量;並且根據提供給主機的推薦信號的數量是否小於閾值,向主機提供多個推薦信號中的至少一個。
根據本技術,提供一種性能改善的儲存裝置及其操作方法。
本專利文件中揭示的某些實施例的特定結構特徵或功能是僅為了說明所揭示技術的某些實施方式的示例。
圖1是示出基於所揭示的技術的一些實施例的儲存裝置50的示例的示圖。在本專利文件中,術語“儲存裝置”可以用於表示資料儲存裝置。
參照圖1,儲存裝置50可以包括記憶體裝置100和控制記憶體裝置100的操作的記憶體控制器200。儲存裝置50可以是在諸如以下的主機300的控制下儲存資料的裝置:行動電話、智慧型手機、MP3播放器、筆記型電腦、桌上型電腦、遊戲機、TV、平板PC或車載資訊娛樂系統。
根據作為與主機300進行通信的方法的主機介面,儲存裝置50可以被製造為各種類型的儲存裝置中的一種。例如,儲存裝置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)。
記憶體裝置100可以儲存資料。記憶體裝置100在記憶體控制器200的控制下操作。記憶體裝置100可以包括記憶體單元陣列(未示出),該記憶體單元陣列包括儲存資料的多個記憶體單元。
記憶體單元中的每一個可以被配置為儲存一個資料位的單層單元(SLC)、儲存兩個資料位的多層單元(MLC)、儲存三個資料位的三層單元(TLC)或儲存四個資料位的四層單元(QLC)。
記憶體單元陣列(未示出)可以包括多個記憶體區塊。每個記憶體區塊可以包括多個記憶體單元。一個記憶體區塊可以包括多個頁面。在實施例中,頁面可以是對記憶體裝置100進行讀取或寫入(編程)操作的最小單位。記憶體區塊可以是擦除操作的最小單位。
在實施例中,記憶體裝置100可以是雙倍資料速率同步動態隨機存取記憶體(DDR SDRAM)、第四代低功率雙倍資料速率(LPDDR4)SDRAM、圖形雙倍資料速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus動態隨機存取記憶體(RDRAM)、NAND快閃記憶體、垂直NAND快閃記憶體、NOR快閃記憶體、電阻式隨機存取記憶體(RRAM)、相變隨機存取記憶體(PRAM)、磁阻隨機存取記憶體(MRAM)、鐵電隨機存取記憶體(FRAM)、自旋轉移力矩隨機存取記憶體(STT-RAM)等。在本說明書中,為了便於描述,假定記憶體裝置100是NAND快閃記憶體。
記憶體裝置100被配置為從記憶體控制器200接收命令CMD和位址ADDR並且存取記憶體單元陣列中的由該位址選擇的區域。記憶體裝置100可以對位址ADDR選擇的區域執行由命令CMD指示的操作。例如,記憶體裝置100可以執行寫入操作(編程操作)、讀取操作和擦除操作。在寫入操作期間,記憶體裝置100可以將資料編程到由位址ADDR選擇的區域中。在讀取操作期間,記憶體裝置100可以從由位址ADDR選擇的區域讀取資料。在擦除操作期間,記憶體裝置100可以擦除由位址ADDR選擇的區域中儲存的資料。
記憶體控制器200可以控制儲存裝置50的整體操作。
當向儲存裝置50施加電力時,記憶體控制器200可以運行韌體(FW)。當記憶體裝置100是快閃記憶體裝置時,韌體(FW)可以包括控制與主機300的通信的主機介面層(HIL)、控制或便於主機300和記憶體裝置100之間的通信的快閃轉換層(FTL)以及控制或便於記憶體裝置100與主機300之間的通信的閃存介面層(FIL)。
在實施例中,記憶體控制器200可以從主機300接收資料和邏輯塊位址(LBA)並且可以將LBA轉換為實體塊位址(PBA),實體塊位址(PBA)指示將要儲存記憶體裝置100中包括的資料的記憶體單元的位址。在本專利文件中,LBA和“邏輯位址”或“邏輯的位址”可以用來指示實際上不存在但映射到實體位址的虛擬位址,而PBA可以用來表示“實體位址。”
記憶體控制器200可以控制記憶體裝置100根據主機300的請求來執行編程操作、讀取操作或擦除操作。在寫入操作期間,記憶體控制器200可以向記憶體裝置100提供寫入命令、PBA和資料。在讀取操作期間,記憶體控制器200可以向記憶體裝置100提供讀取命令和PBA。在擦除操作期間,記憶體控制器200可以向記憶體裝置100提供擦除命令和PBA。
在實施例中,記憶體控制器200可以透過通道連接到記憶體裝置100。例如,記憶體控制器200可以透過將命令和位址經由通道提供到記憶體裝置100來控制記憶體裝置100執行寫入操作、讀取操作、擦除操作等。
在實施例中,記憶體控制器200可以不管來自主機300的請求,獨立地生成命令、位址和資料,並且將命令、位址和資料發送到記憶體裝置100。例如,記憶體控制器200可以向記憶體裝置100提供用於執行伴隨執行損耗均衡、讀取回收、垃圾收集等的讀取操作和寫入操作的命令、位址和資料。
在實施例中,記憶體控制器200可以控制至少兩個或更多個記憶體裝置100。在這種情況下,記憶體控制器200可以根據交錯法來控制記憶體裝置100以提高操作性能。交錯法可以是控制至少兩個記憶體裝置100的操作彼此重疊的方法。
在實施例中,記憶體裝置100可以儲存映射資訊。映射資訊可以指示主機300的邏輯位址和記憶體裝置100的實體位址之間的映射關係。另外,記憶體控制器200可以從記憶體裝置100讀取並且儲存一些映射資訊。記憶體控制器200可以在讀取操作期間透過使用儲存的映射資訊來獲得與主機的邏輯位址相對應的實體位址。
在實施例中,主機300和儲存裝置50可以使用主機性能增強器(HPB)技術來操作。這裡,HPB技術可以是將主機300的記憶體區域用作映射資訊的快取記憶體的技術。例如,HPB技術可以透過將主機300的記憶體區域用作儲存諸如FTL映射表的映射表的快取來增強儲存裝置50的讀取性能。
例如,當待讀取的邏輯位址被儲存在主機300的記憶體區域中時,主機300可以向儲存裝置50提供透過參考映射資訊而獲得的實體位址。在待由主機300讀取的邏輯位址儲存在記憶體區域中時,由於主機300可以直接執行針對映射資訊中包括的邏輯位址的實體位址搜索,因此可以提高儲存裝置50的性能。因此,為了提高讀取操作性能,儲存裝置50可以向主機300推薦儲存裝置50中儲存的映射資訊之中的包括預計主機300將經常讀取的邏輯位址的映射資訊。主機300可以回應於儲存裝置的推薦,向儲存裝置50提供對映射資訊的請求。儲存裝置50可以回應於主機300的請求,向主機300提供映射資訊。
參照圖3詳細描述了主機300和儲存裝置50使用HPB技術的操作。
在實施例中,記憶體控制器200包括推薦信號管理器210和主機控制器220。
推薦信號管理器210可以儲存多個推薦信號。這裡,推薦信號可以是提供給主機300以向主機300推薦映射資訊並且啟動主機300的、儲存推薦映射資訊的記憶體區域的資料。或者,推薦信號可以是提供給主機300以停用被啟動的記憶體區域的資料。
在實施例中,推薦信號管理器210可以生成儲存多個推薦信號的推薦信號隊列。推薦信號隊列可以是用於管理待提供給主機300的推薦信號的列表的結構。例如,推薦信號隊列可以按照先進先出(FIFO)的方式首先輸出推薦信號隊列中首先儲存的推薦信號。在實施例中,可以預設推薦信號隊列中能夠最大程度地儲存推薦信號的儲存容量,但不限於此。例如,可以不預設推薦信號隊列的儲存容量,並且每當生成推薦信號時,儲存容量會增加。
另外,推薦信號管理器210可以儲存提供給主機300的推薦信號的數量。在一些實施方式中,提供給主機300的推薦信號的數量可以指示在被提供給主機300之後尚未接收到回應的推薦信號的數量。每當推薦信號被提供給主機300時,推薦信號管理器210可以增加提供給主機300的推薦信號的數量。相反,當回應於推薦信號從主機300接收到對映射資訊的請求時,推薦信號管理器210可以減少提供給主機300的推薦信號的數量。
主機控制器220可以向主機300提供至少一個推薦信號。主機控制器220可以根據提供給主機300的推薦信號的數量是否小於閾值(例如,預設閾值)來向主機300提供推薦信號。在一些實施方式中,閾值可以指示可以提供給主機300的推薦信號的最大數量。隨著主機300中累積的推薦信號的數量增加,由於對需要從主機300提供到儲存裝置50的映射資訊的請求的數量增加,因此可能會出現瓶頸。因此,閾值可以是在主機300處理累積的推薦信號時可以防止這種瓶頸的值。
例如,當提供給主機300的推薦信號的數量小於預設閾值時,主機控制器220可以向主機300提供至少一個推薦信號。在這種情況下,主機控制器220可以向主機300提供至少一個推薦信號,直到提供給主機300的推薦信號的數量達到預設閾值為止。或者,當提供給主機300的推薦信號的數量等於或大於預設閾值時,主機控制器220可以將多個推薦信號保持在推薦信號隊列中。也就是說,主機控制器220可以不向主機300提供推薦信號,並且可以管理推薦信號隊列中的推薦信號,直到推薦信號的數量小於預設閾值為止。
另外,主機控制器220可以回應於提供給主機300的推薦信號,從主機300接收對待儲存在記憶體區域中的映射資訊的請求。這裡,對映射資訊的請求可以稱為“讀取緩衝器請求”。主機控制器220可以回應於對映射資訊的請求,向主機300提供映射資訊。
主機300可以使用諸如以下的各種通信方法中的至少一種與儲存裝置50通信:通用序列匯流排(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速晶片間(HSIC)、小型計算機系統介面(SCSI)、外圍組件互連(PCI)、高速PCI(PCIe)、高速非揮發性記憶體(NVMe)、通用閃存(UFS)、安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存式DIMM(RDIMM)以及低負載DIMM(LRDIMM)。
在實施例中,主機300可以包括用於儲存從儲存裝置50提供的映射資訊的映射資訊儲存區域310。參照圖2詳細描述了映射資訊儲存區域310。
圖2是示出基於所揭示的技術的一些實施例的映射資訊儲存區域的示例的示圖。
參照圖2,映射資訊儲存區域310可以包括多個記憶體區域。這裡,可以根據儲存裝置50的推薦信號來啟動或停用多個記憶體區域。啟動的記憶體區域可以儲存映射資訊。
例如,當從主機控制器220接收到針對記憶體區域1的推薦信號時,映射資訊儲存區域310可以啟動記憶體區域1。此後,映射資訊儲存區域310可以將從主機控制器220接收的映射資訊儲存在記憶體區域1中。當向儲存裝置50提供讀取請求時,映射資訊儲存區域310中儲存的映射資訊可以用於將邏輯位址轉換為實體位址。
圖3是示出基於所揭示的技術的一些實施例的主機和儲存裝置的示例操作的示圖。
參照圖3,在S201,儲存裝置50可以生成推薦信號。例如,儲存裝置50可以基於最近執行的讀取操作、映射資訊的讀取數量等來確定預計主機300將頻繁讀取的映射資訊。儲存裝置50可以生成用於啟動主機300的記憶體區域的推薦信號以將映射資訊儲存在主機300中。
在S203,儲存裝置50可以向主機300提供推薦信號。
在S205,主機300可以根據推薦信號來啟動記憶體區域。
在S207,主機300可以向儲存裝置50提供對映射資訊的請求。
在S209,儲存裝置50可以讀取所請求的映射資訊。
在S211,儲存裝置50可以向主機300提供映射資訊。
在S213,主機300可以將映射資訊儲存在啟動的記憶體區域中。
在S215,主機300可以向儲存裝置50提供讀取請求。這裡,主機300可以向儲存裝置50提供邏輯位址和與邏輯位址相對應的實體位址以及讀取請求。
在S217,儲存裝置50可以根據讀取請求執行讀取操作。
在其他實施方式中,儲存裝置50可以從主機300接收回應於推薦信號的對映射資訊的請求,然後向主機300提供另一推薦信號。也就是說,儲存裝置50可以以同步方式提供推薦信號。換言之,即使儲存裝置50在向主機300提供推薦信號之後生成另一個推薦信號,在儲存裝置50接收到對先前提供的推薦信號的回應之前,儲存裝置50也不會提供另一個推薦信號。另外,即使主機300接收到推薦信號,也可能存在根據主機300的調度主機300可能不會立即提供對推薦信號的回應的情況。在這種情況下,可能會出現儲存裝置50的性能下降的問題。
因此,在所揭示的技術的一些實施例中,可以透過向主機300提供至少一個推薦信號來提高儲存裝置50的性能。也就是說,無論是否接收到對提供給主機300的推薦信號的回應,儲存裝置50都可以透過不同步的方式向主機300提供一個或多個推薦信號。
圖4是示出基於所揭示的技術的一些實施例的推薦信號管理器的示例的示圖。
參照圖4,推薦信號管理器210可以包括推薦信號隊列生成器211和推薦信號數量儲存電路212。
推薦信號隊列生成器211可以生成儲存多個推薦信號的推薦信號隊列。
在實施例中,推薦信號隊列生成器211可以按照多個推薦信號的生成順序將多個推薦信號儲存在推薦信號隊列中。例如,當生成推薦信號時,推薦信號隊列生成器211可以將生成的推薦信號儲存在推薦信號隊列中。
在實施例中,在向主機300提供至少一個推薦信號之後,推薦信號隊列生成器211可以從推薦信號隊列中移除該至少一個推薦信號。換言之,推薦信號隊列生成器211可以從推薦信號隊列中移除已提供給主機300的推薦信號。
推薦信號數量儲存電路212可以儲存提供給主機300的推薦信號的數量。另外,推薦信號數量儲存電路212可以儲存可以提供給主機300的推薦信號的閾值。參照圖6詳細描述了推薦信號數量儲存電路212。
圖5是示出基於所揭示的技術的一些實施例的推薦信號隊列的示例的示圖。
參照圖5,推薦信號隊列可以儲存待提供給主機300的多個推薦信號。
推薦信號可以首先按照推薦信號的生成順序插入到推薦信號隊列中。另外,推薦信號可以按照推薦信號隊列中的推薦信號的隊列條目的順序輸出。在一種實施方式中,推薦信號越早插入推薦信號隊列中,推薦信號就可以越早從推薦信號隊列中輸出。在另一實施方式中,推薦信號隊列可以輸出最後插入的推薦信號。
另外,推薦信號隊列可以包括頭部索引資訊和尾部索引資訊。頭部索引可以指示推薦信號隊列中的輸出推薦信號的位置或位址。例如,當在主機控制器220的控制下輸出推薦信號時,推薦信號從推薦信號隊列中由頭部索引指示的位置輸出,然後頭部索引值增加一定的增量(例如,“1”)。另外,尾部索引可以指示推薦信號隊列中的儲存推薦信號的位置或位址。例如,當在主機控制器220的控制下儲存推薦信號時,推薦信號被儲存到推薦信號隊列中由尾部索引指示的位置或位址,然後尾部索引值增加一定的增量(例如,“1”)。
圖6是示出基於所揭示的技術的一些實施例的推薦信號數量儲存電路的示圖。
參照圖6,推薦信號數量儲存電路212可以儲存提供給主機300的推薦信號的數量#RCD和可以提供給主機300的推薦信號的閾值(圖6中的“閾值”)。
每當推薦信號被提供給主機300或從主機300接收到對推薦信號的回應時,推薦信號數量儲存電路212就會增加或減少提供給主機300的推薦信號的數量#RCD。
在實施例中,當推薦信號數量儲存電路212向主機300提供多個推薦信號中的任意一個時,推薦信號數量儲存電路212可以增加提供給主機300的推薦信號的數量#RCD。例如,每當推薦信號被提供給主機時,推薦信號數量儲存電路212可以增加提供給主機300的推薦信號的數量#RCD。
在實施例中,當從主機300接收到對待儲存在記憶體區域中的映射資訊的請求時,推薦信號數量儲存電路212可以減少提供給主機300的推薦信號的數量#RCD。也就是說,當從主機300接收到對推薦信號的回應時,推薦信號數量儲存電路212可以減少提供給主機300的推薦信號的數量#RCD。
圖7是示出基於所揭示的技術的一些實施例的將推薦信號儲存在推薦信號隊列中的示例操作的示圖。
在圖7中,提供給主機300的推薦信號的數量可以是i,並且提供給主機300的推薦信號的閾值(圖7中的“閾值”)可以是i。該示例示出主機300從儲存裝置50接收到與閾值相對應的推薦信號RCD。
參照圖7,當生成第0個推薦信號RCD 0時,推薦信號管理器210可以將第0個推薦信號RCD 0儲存在推薦信號隊列中。推薦信號管理器210可以在儲存第0個推薦信號RCD 0之後將尾部索引的值增加一定的增量(例如,“1”)。隨後生成的推薦信號可以儲存在推薦信號隊列中與索引1相對應的位置中。
由於提供給主機300的推薦信號的數量等於閾值,因此主機控制器220可以保持推薦信號隊列中儲存的第0個推薦信號RCD 0。第0個推薦信號RCD 0可以儲存在推薦信號隊列中,直到提供給主機300的推薦信號的數量小於閾值。
圖8是示出基於所揭示的技術的一些實施例的向主機提供推薦信號的示例操作的示圖。
在圖8中,提供給主機300的推薦信號的數量可以是i-1,並且提供給主機300的推薦信號的閾值可以是i。該示例表明提供給主機300的推薦信號的數量小於閾值。
參照圖8,推薦信號隊列可以儲存多個推薦信號RCD 0到RCD 9。另外,尾部索引的值可以是10。後續生成的推薦信號可以儲存在推薦信號隊列中與索引10相對應的位置。
由於提供給主機300的推薦信號的數量小於閾值,因此主機控制器220可以向主機300提供推薦信號。這裡,由於最後插入的推薦信號是第0推薦信號RCD 0,因此主機控制器220可以向主機300提供第0推薦信號RCD 0。推薦信號管理器210可以將頭部索引的值增加一定的增量(例如,“1”)。隨後輸出的推薦信號可以是推薦信號隊列中與索引1相對應的位置所儲存的推薦信號。
推薦信號管理器210可以從推薦信號隊列中移除第0個推薦信號RCD 0。另外,推薦信號管理器210可以增加提供給主機的推薦信號的數量。
當主機300回應多個推薦信號時會出現瓶頸。如上所述,在所揭示的技術的一些實施例中,可以透過向主機300提供有限數量的推薦信號來防止這種瓶頸。
另外,即使可以提供給主機300的推薦信號的數量有限,也可以在一些實施例中實施所揭示的技術以透過推薦信號隊列有效地向主機300提供推薦信號。
圖9是示出基於所揭示的技術的一些實施例的操作記憶體控制器的示例方法的流程圖。
圖9所示的方法可以例如由圖1所示的記憶體控制器200來執行。
參照圖9,在S901,記憶體控制器200可以生成推薦信號隊列。
在S903,記憶體控制器200可以將推薦信號儲存在推薦信號隊列中。當儲存多個推薦信號時,記憶體控制器200可以按照多個推薦信號的生成順序將多個推薦信號儲存在推薦信號隊列中。
在S905,記憶體控制器200可以計算提供給主機300的推薦信號的數量。
在S907,記憶體控制器200可以確定提供給主機300的推薦信號的數量是否小於預設閾值。
例如,當提供給主機300的推薦信號的數量小於預設閾值時,在S909,記憶體控制器200可以向主機提供推薦信號。例如,記憶體控制器200可以按照推薦信號隊列中儲存的推薦信號的隊列條目的順序向主機300提供至少一個推薦信號,直到提供給主機300的推薦信號的數量達到預設閾值為止。
在S911,記憶體控制器200可以從推薦信號隊列中移除已提供給主機300的推薦信號。
當根據S907的確定結果提供給主機300的推薦信號的數量等於或大於預設閾值時,記憶體控制器200可以結束該步驟。也就是說,記憶體控制器200可以將推薦信號隊列中儲存的推薦信號保持在儲存狀態。
圖10是示出基於所揭示的技術的一些實施例的計算提供給主機的推薦信號的數量的示例操作的流程圖。
圖10所示的方法可以例如由圖1所示的記憶體控制器200來執行。
參照圖10,在S1001,記憶體控制器200可以向主機300提供推薦信號。
在S1003,記憶體控制器200可以增加提供給主機300的推薦信號的數量。
圖11是示出基於所揭示的技術的一些實施例的計算提供給主機的推薦信號的數量的另一示例操作的流程圖。
圖11所示的方法可以例如由圖1所示的記憶體控制器200來執行。
參照圖11,在S1101,記憶體控制器200可以回應於推薦信號從主機300接收對映射資訊的請求。
在S1103,記憶體控制器200可以減少提供給主機300的推薦信號的數量。
圖12是示出基於所揭示的技術的一些實施例的操作記憶體控制器的示例方法的流程圖。
圖12所示的方法可以例如由圖1所示的記憶體控制器200來執行。
參照圖12,在S1201,記憶體控制器200可以生成推薦信號隊列。
在S1203,記憶體控制器200可以將推薦信號儲存在推薦信號隊列中。當儲存多個推薦信號時,記憶體控制器200可以按照多個推薦信號的生成順序將多個推薦信號儲存在推薦信號隊列中。
在S1205,記憶體控制器200可以不同步地向主機300提供至少一個推薦信號。例如,當提供給主機300的推薦信號的數量小於預設閾值時,記憶體控制器200可以向主機300提供至少一個推薦信號而不管是否接收到對相應推薦信號的回應。
在S1207,記憶體控制器200可以從推薦信號隊列中移除已提供給主機300的推薦信號。
圖13是示出圖1的記憶體裝置的示例的示圖。
參照圖13,記憶體裝置100可以包括記憶體單元陣列110、電壓生成器120、位址解碼器130、輸入/輸出電路140和控制邏輯150。
記憶體單元陣列110包括多個記憶體區塊BLK1至BLKi。多個記憶體區塊BLK1至BLKi透過行線RL連接到位址解碼器130。多個記憶體區塊BLK1至BLKi可以透過列線CL連接到輸入/輸出電路140。在實施例中,行線RL可以包括字元線、源極選擇線和汲極選擇線。在實施例中,列線CL可以包括位元線。
多個記憶體區塊BLK1至BLKi中的每一個包括多個記憶體單元。在實施例中,多個記憶體單元可以是非揮發性記憶體單元。多個記憶體單元之中連接到同一字元線的記憶體單元可以被定義為一個實體頁面。也就是說,記憶體單元陣列110可以包括多個實體頁面。記憶體裝置100中的記憶體單元中的每一個可以被配置為儲存一個資料位的單層單元(SLC)、儲存兩個資料位的多層單元(MLC)、儲存三個資料位的三層單元(TLC)或能夠儲存四個資料位的四層單元(QLC)。
在實施例中,電壓生成器120、位址解碼器130和輸入/輸出電路140可以共同被稱為外圍電路。外圍電路可以在控制邏輯150的控制下驅動記憶體單元陣列110。外圍電路可以驅動記憶體單元陣列110以執行編程操作、讀取操作和擦除操作。
電壓生成器120被配置為使用供應到記憶體裝置100的外部電源電壓來生成多個操作電壓Vop。電壓生成器120回應於控制邏輯150的控制而操作。
作為實施例,電壓生成器120可以透過調節外部電源電壓來生成內部電源電壓。由電壓生成器120生成的內部電源電壓用作記憶體裝置100的操作電壓。
作為實施例,電壓生成器120可以使用外部電源電壓或內部電源電壓來生成多個操作電壓。電壓生成器120可以被配置為生成記憶體裝置100中所需的各種電壓。例如,電壓生成器120可以生成多個擦除電壓、多個編程電壓、多個通過電壓、多個選擇讀取電壓和多個未選擇讀取電壓。
電壓生成器120可以包括接收內部電源電壓以生成具有各種電壓位準的多個操作電壓的多個泵浦電容器且可以透過回應於控制邏輯150的控制選擇性地啟動多個泵浦電容器來生成多個操作電壓。
生成的多個操作電壓可以透過位址解碼器130供應到記憶體單元陣列110。
位址解碼器130透過行線RL連接到記憶體單元陣列110。位址解碼器130被配置為回應於控制邏輯150的控制而操作。位址解碼器130可以從控制邏輯150接收位址ADDR。位址解碼器130可以對接收到的位址ADDR之中的塊位址進行解碼。位址解碼器130根據經解碼的塊位址在記憶體區塊BLK1至BLKi之中選擇至少一個記憶體區塊。位址解碼器130可以對接收到的位址ADDR之中的行位址進行解碼。位址解碼器130可以根據經解碼的行位址在所選擇的記憶體區塊的字元線之中選擇至少一條字元線。在實施例中,位址解碼器130可以對接收到的位址ADDR之中的列位址進行解碼。位址解碼器130可以根據經解碼的列位址將輸入/輸出電路140和記憶體單元陣列110相互連接。
在所揭示的技術的一些實施例中,在讀取操作期間,位址解碼器130可以將讀取電壓施加到所選擇的字元線,並且將位準高於讀取電壓的位準的讀取通過電壓施加到未選擇的字元線。
例如,位址解碼器130可以包括諸如行解碼器、列解碼器和位址緩衝器的組件。
輸入/輸出電路140可以包括多個頁面緩衝器。多個頁面緩衝器可以透過位元線連接到記憶體單元陣列110。在寫入操作期間,根據多個頁面緩衝器中儲存的資料,資料可以儲存在所選擇的記憶體單元中。
在讀取操作期間,可以透過位元線來感測所選擇的記憶體單元中儲存的資料,並且感測到的資料可以儲存在頁面緩衝器中。
控制邏輯150可以控制位址解碼器130、電壓生成器120以及輸入/輸出電路140。控制邏輯150可以回應於從外部裝置發送的命令CMD而操作。控制邏輯150可以回應於命令CMD和位址ADDR生成各種信號以控制外圍電路。
圖14是示出圖13的記憶體區塊中的任意一個的示例結構的示圖。
記憶體區塊BLKi是圖13的記憶體區塊BLK1至BLKi之中的任意一個記憶體區塊BLKi。
參照圖14,相互平行佈置的多條字元線可以連接在第一選擇線與第二選擇線之間。這裡,第一選擇線可以是源極選擇線SSL,而第二選擇線可以是汲極選擇線DSL。更具體地,記憶體區塊BLKi可以包括連接在位元線BL1至BLn與源極線SL之間的多個串ST。位元線BL1至BLn可以分別聯接到串ST,且源極線SL可以共同聯接到串ST。由於串ST可以被配置為彼此相同,因此將連接到第一位元線BL1的串ST作為示例進行具體描述。在本專利文件中,“串”可以用於指示串聯聯接的一組記憶體單元。在一些實施方式中,NAND串可以包括串聯聯接的一組快閃記憶體單元。
串ST可以包括源極選擇電晶體SST、多個記憶體單元MC1至MC16以及串聯連接在源極線SL與第一位元線BL1之間的汲極選擇電晶體DST。一個串ST可以包括至少一個或多個源極選擇電晶體SST和汲極選擇電晶體DST,並且可以包括多於圖中所示數量的記憶體單元MC1至MC16。
源極選擇電晶體SST的源極可以連接到源極線SL,而汲極選擇電晶體DST的汲極可以連接到第一位元線BL1。記憶體單元MC1至MC16可以串聯連接在源極選擇電晶體SST與汲極選擇電晶體DST之間。不同串ST中包括的源極選擇電晶體SST的閘極可以連接到源極選擇線SSL,汲極選擇電晶體DST的閘極可以連接到汲極選擇線DSL並且記憶體單元MC1至MC16的閘極可以連接到多條字元線WL1至WL16。不同串ST中包括的記憶體單元之中連接到同一字元線的一組記憶體單元可以被稱為頁面PG。因此,記憶體區塊BLKi可以包括字元線WL1至WL16的數量的頁面PG。
一個記憶體單元可以儲存一位資料。這一般稱為單層單元(SLC)。在這種情況下,一個實體頁面PG可以儲存一個邏輯頁面(LPG)資料。一個邏輯頁面(LPG)資料可以包括與一個實體頁面PG中包括的單元相同數量的資料位。
一個記憶體單元可以儲存兩位或多位資料。在這種情況下,一個實體頁面PPG可以儲存兩個或更多個邏輯頁面(LPG)資料。
圖15是示出圖1的記憶體控制器的示例的示圖。
圖1的記憶體控制器200可以具有與圖15的記憶體控制器1000相同的結構和技術特徵。
參照圖1和圖15,記憶體控制器1000可以包括處理器1010、RAM 1020、錯誤校正電路1030、ROM 1040、主機介面1050和閃存介面1060。
處理器1010可以控制記憶體控制器1000的整體操作。在實施例中,圖1的推薦信號管理器210和主機控制器220可以被實施為處理器1010的一個配置。因此,處理器1010可以同樣地執行參照圖1描述的推薦信號管理器210和主機控制器220的操作。
例如,處理器1010可以生成儲存多個推薦信號的推薦信號隊列。當提供給主機300的推薦信號的數量小於預設閾值時,處理器1010可以向主機300提供推薦信號隊列中儲存的一個或多個推薦信號。或者,當提供給主機300的推薦信號的數量等於或大於預設閾值時,處理器1010可以將推薦信號隊列中儲存的推薦信號保持在儲存狀態。
RAM 1020可以用作記憶體控制器1000的緩衝記憶體、快取記憶體、操作記憶體和其它記憶體。
錯誤校正電路1030可以執行錯誤校正。錯誤校正電路1030可以基於待透過閃存介面1060寫入記憶體裝置100的資料來執行錯誤校正編碼(ECC編碼)。經錯誤校正編碼的資料可以透過閃存介面1060傳送到記憶體裝置100。錯誤校正電路1030可以對透過閃存介面1060從記憶體裝置100接收的資料執行錯誤校正解碼(ECC解碼)。例如,錯誤校正電路1030可以作為閃存介面1060的組件包括在閃存介面1060中。
ROM 1040可以儲存以韌體的形式操作記憶體控制器1000所需的各種各樣的資訊。在實施例中,ROM 1040可以儲存多個推薦信號、提供給主機300的推薦信號的數量、可以提供給主機300的推薦信號的閾值。
記憶體控制器1000可以透過主機介面1050與外部裝置(例如,主機300、應用處理器等)通信。
記憶體控制器1000可以透過閃存介面1060與記憶體裝置100通信。記憶體控制器1000可以透過記憶體介面1060向記憶體裝置100發送命令、位址、控制信號等並且接收資料。例如,閃存介面1060可以包括NAND介面。
圖16是示出包括基於所揭示的技術的一些實施例實施的儲存裝置的儲存卡系統的示例的方塊圖。
參照圖16,儲存卡系統2000包括記憶體控制器2100、記憶體裝置2200和連接器2300。
記憶體控制器2100連接到記憶體裝置2200。記憶體控制器2100被配置為存取記憶體裝置2200。例如,記憶體控制器2100可以被配置為控制記憶體裝置2200的讀取操作、寫入操作、擦除操作和後臺操作。記憶體控制器2100被配置為提供記憶體裝置2200與主機之間的介面。記憶體控制器2100被配置為驅動用於控制記憶體裝置2200的韌體。記憶體控制器2100的結構和功能特徵可以與參照圖1描述的記憶體控制器200的結構和功能特徵相同。記憶體裝置2200的結構和功能特徵可以與參照圖1描述的記憶體裝置100的結構和功能特徵相同。
例如,記憶體控制器2100可以包括諸如隨機存取記憶體(RAM)、處理器、主機介面、記憶體介面和錯誤校正器的組件。
記憶體控制器2100可以透過連接器2300與外部裝置通信。記憶體控制器2100可以根據特定通信標準與外部裝置(例如,主機)通信。例如,記憶體控制器2100被配置為透過諸如以下的各種通信標準中的至少一種與外部裝置通信:通用序列匯流排(USB)、多媒體卡(MMC)、嵌入式MMC(eMMC)、外圍組件互連(PCI)、高速PCI(PCI-E)、高級技術附件(ATA)、串行ATA、並行ATA、小型計算機系統介面(SCSI)、增強型小型磁盤介面(ESDI)、電子集成驅動器(IDE)、火線、通用閃存(UFS)、Wi-Fi、藍牙以及NVMe。例如,連接器2300可以由上述各種通信標準中的至少一種來定義。
例如,記憶體裝置2200可以由諸如以下的各種非揮發性記憶體元件配置:電可擦除可編程ROM(EEPROM)、NAND快閃記憶體、NOR快閃記憶體、相變RAM(PRAM)、電阻式RAM(ReRAM)、鐵電RAM(FRAM)以及自旋轉移力矩磁性RAM(STT-MRAM)。
記憶體控制器2100和記憶體裝置2200可以集成到一個半導體裝置中來配置儲存卡。例如,記憶體控制器2100和記憶體裝置2200可以集成到一個半導體裝置中以配置諸如以下的儲存卡:PC卡(個人計算機儲存卡國際協會(PCMCIA))、緊湊式閃存卡(CF)、智能媒體卡(SM或SMC)、記憶條、多媒體卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)和通用閃存(UFS)。
圖17是示出包括基於所揭示的技術的一些實施例實施的儲存裝置的固態驅動器(SSD)系統的示例的方塊圖。
參照圖17,SSD系統3000包括主機3100和SSD 3200。SSD 3200透過信號連接器3001與主機3100交換信號並且透過電源連接器3002接收電力。SSD 3200包括SSD控制器3210、多個快閃記憶體3221至322n、輔助電源3230和緩衝記憶體3240。
在所揭示的技術的一些實施例中,SSD控制器3210可以執行參照圖1描述的記憶體控制器200的功能。
SSD控制器3210可以回應於從主機3100接收的信號,控制多個快閃記憶體3221至322n。例如,信號可以是基於主機3100和SSD 3200之間的介面的信號。例如,信號可以是由諸如以下介面中的至少一種定義的信號:通用序列匯流排(USB)、多媒體卡(MMC)、嵌入式MMC(eMMC)、外圍組件互連(PCI)、高速PCI(PCI-E)、高級技術附件(ATA)、串行ATA、並行ATA、小型計算機系統介面(SCSI)、增強型小型磁盤介面(ESDI)、電子集成驅動器(IDE)、火線、通用閃存(UFS)、Wi-Fi、藍牙以及NVMe。
輔助電源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的非揮發性記憶體。
圖18是示出包括基於所揭示的技術的一些實施例實施的儲存裝置的用戶系統的示例的方塊圖。
參照圖18,用戶系統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描述的記憶體裝置100同樣地操作。儲存模組4400可以與參照圖1描述的儲存裝置50同樣地操作。
用戶介面4500可以包括用於向應用處理器4100輸入資料或指令或者用於向外部裝置輸出資料的介面。例如,用戶介面4500可以包括諸如以下的用戶輸入介面:鍵盤、小鍵盤、按鈕、觸控面板、觸控屏、觸控板、觸控球、攝像機、麥克風、陀螺儀傳感器、振動傳感器和壓電元件。用戶介面4500可以包括諸如以下的用戶輸出介面:液晶顯示器(LCD)、有機發光二極體(OLED)顯示裝置、有源矩陣OLED(AMOLED)顯示裝置、LED、揚聲器和監控器。
儘管本專利文件包括許多細節,但是這些細節不應解釋為對任意所揭示的技術或可能要求保護的範圍的限制,而應解釋為對可能特定於所揭示的特定技術的特定實施例的特徵的描述。在不同實施例的背景下在本專利文件中描述的某些特徵也可以在單個實施例中以組合的形式實施。相反地,在單個實施例的背景下所描述的各種特徵也可以分別在多個實施例中實施或以任意合適的子組合實施。此外,儘管特徵如上可以被描述為以某些組合的方式發揮作用,甚至最初這樣要求保護,但是可以在某些情況下從所要求保護組合中去除該組合的一個或多個特徵,該所要求保護的組合可以指子組合或子組合的變體。
類似地,儘管在圖式中按特定順序描述了操作,但是這不應被理解為要求按所示的特定順序或按先後順序執行這些操作,或者執行所有示出的操作,以實現期望的結果。此外,在本專利文件中描述的實施例中各種系統組件的分離不應被理解為在所有實施例中都需要這種分離。
以上揭示的實施例和實施方式僅是示例;可以基於本專利文件中描述和說明的內容對所揭示的實施例和實施方式以及其他實施例和實施方式進行各種增強和改變。
50:儲存裝置
100:記憶體裝置
110:記憶體單元陣列
120:電壓生成器
130:位址解碼器
140:輸入/輸出電路
150:控制邏輯
200:記憶體控制器
210:推薦信號管理器
211:推薦信號隊列生成器
212:推薦信號數量儲存電路
220:主機控制器
300:主機
310:映射資訊儲存區域
1000:記憶體控制器
1010:處理器
1020:RAM
1030:錯誤校正電路
1040:ROM
1050:主機介面
1060:閃存介面
2000:儲存卡系統
2100:記憶體控制器
2200:記憶體裝置
2300:連接器
3000:SSD系統
3001:信號連接器
3002:電源連接器
3100:主機
3200:SSD
3210:SSD控制器
3221~322n:快閃記憶體
3230:輔助電源
3240:緩衝記憶體
4000:用戶系統
4100:應用處理器
4200:記憶體模組
4300:網絡模組
4400:儲存模組
4500:用戶介面
S201,S203,S205,S207,S209,S211,S213,S215,S217,S901,903,S905,S907,S909,S911,S1001,S1003,S1101,S1103,S1201,S1203,S1205,S1207:步驟
ADDR:位址
BL1~BLn:位元線
BLK1~BLKi:記憶體區塊
CL:列線
CMD:命令
DSL:汲極選擇線
DST:汲極選擇電晶體
MC1~MC16:記憶體單元
PG:頁面
RCD:推薦信號
RCD 0:第0個推薦信號
RL:行線
SL:源極線
SSL:源極選擇線
SST:源極選擇晶體管電晶體
ST:串
WL1~WL16:字元線
圖1是示出基於所揭示的技術的一些實施例的儲存裝置的示例的示圖。
圖2是示出基於所揭示的技術的一些實施例的映射資訊儲存區域的示例的示圖。
圖3是示出基於所揭示的技術的一些實施例的主機和儲存裝置的示例操作的示圖。
圖4是示出基於所揭示的技術的一些實施例的推薦信號管理器的示例的示圖。
圖5是示出基於所揭示的技術的一些實施例的推薦信號隊列的示例的示圖。
圖6是示出基於所揭示的技術的一些實施例的推薦信號數量儲存電路的示圖。
圖7是示出基於所揭示的技術的一些實施例的將推薦信號儲存在推薦信號隊列中的示例操作的示圖。
圖8是示出基於所揭示的技術的一些實施例的向主機提供推薦信號的示例操作的示圖。
圖9是示出基於所揭示的技術的一些實施例的操作記憶體控制器的示例方法的流程圖。
圖10是示出基於所揭示的技術的一些實施例的計算提供給主機的推薦信號的數量的示例操作的流程圖。
圖11是示出基於所揭示的技術的一些實施例的計算提供給主機的推薦信號的數量的另一示例操作的流程圖。
圖12是示出基於所揭示的技術的一些實施例的操作記憶體控制器的示例方法的流程圖。
圖13是示出圖1的記憶體裝置的示例的示圖。
圖14是示出圖13的記憶體區塊中的任意一個的示例結構的示圖。
圖15是示出圖1的記憶體控制器的示例的示圖。
圖16是示出包括基於所揭示的技術的一些實施例實施的儲存裝置的儲存卡系統的示例的方塊圖。
圖17是示出包括基於所揭示的技術的一些實施例實施的儲存裝置的固態驅動器(SSD)系統的示例的方塊圖。
圖18是示出包括基於所揭示的技術的一些實施例實施的儲存裝置的用戶系統的示例的方塊圖。
50:儲存裝置
100:記憶體裝置
200:記憶體控制器
210:推薦信號管理器
220:主機控制器
300:主機
310:映射資訊儲存區域
Claims (20)
- 一種記憶體控制器,所述記憶體控制器用於儲存裝置,所述儲存裝置用於儲存與主機相關的資料,所述主機與所述儲存裝置通信,所述記憶體控制器包括: 推薦信號管理器,儲存多個推薦信號,所述多個推薦信號推薦啟動所述主機的記憶體區域以將映射資訊儲存在所述主機的所述記憶體區域中;以及 主機控制器,根據提供給所述主機的推薦信號的數量是否小於閾值,向所述主機提供所述多個推薦信號中的至少一個推薦信號。
- 如請求項1所述的記憶體控制器,其中所述推薦信號管理器包括: 推薦信號隊列生成器,生成用於儲存所述多個推薦信號的推薦信號隊列;以及 推薦信號數量儲存電路,儲存提供給所述主機的所述推薦信號的數量。
- 如請求項2所述的記憶體控制器,其中所述推薦信號隊列包括指示所述推薦信號隊列中的、將輸出推薦信號的位置的頭部索引和指示所述推薦信號隊列中的、將儲存推薦信號的位置的尾部索引。
- 如請求項2所述的記憶體控制器,其中所述推薦信號隊列生成器按照所述多個推薦信號的生成順序將所述多個推薦信號儲存在所述推薦信號隊列中。
- 如請求項4所述的記憶體控制器,其中所述主機控制器按照在所述推薦信號隊列中儲存的所述多個推薦信號的隊列條目的順序向所述主機提供所述至少一個推薦信號。
- 如請求項2所述的記憶體控制器,其中在向所述主機提供所述至少一個推薦信號之後,所述推薦信號隊列生成器從所述推薦信號隊列中移除所述至少一個推薦信號。
- 如請求項2所述的記憶體控制器,其中所述推薦信號數量儲存電路在向所述主機發送所述多個推薦信號中的任意一個時增加提供給所述主機的所述推薦信號的數量。
- 如請求項2所述的記憶體控制器,其中所述推薦信號數量儲存電路在回應於提供給所述主機的推薦信號從所述主機接收到對待儲存在所述記憶體區域中的所述映射資訊的請求時,減少提供給所述主機的所述推薦信號的數量。
- 如請求項2所述的記憶體控制器,其中在提供給所述主機的所述推薦信號的數量等於或大於所述閾值的情況下,所述主機控制器將所述多個推薦信號保持在所述推薦信號隊列中。
- 如請求項1所述的記憶體控制器,其中在提供給所述主機的所述推薦信號的數量小於所述閾值的情況下,所述主機控制器向所述主機提供所述至少一個推薦信號。
- 如請求項10所述的記憶體控制器,其中所述主機控制器向所述主機提供所述至少一個推薦信號,直到提供給所述主機的所述推薦信號的數量達到所述閾值為止。
- 如請求項1所述的記憶體控制器,其中所述主機控制器回應於提供給所述主機的推薦信號,從所述主機接收對待儲存在所述記憶體區域中的所述映射資訊的請求,並且回應於所述請求向所述主機提供所述映射資訊。
- 一種操作記憶體控制器的方法,所述方法包括: 生成儲存多個推薦信號的推薦信號隊列,所述多個推薦信號推薦啟動主機的記憶體區域以將映射資訊儲存在所述主機的所述記憶體區域中; 計算提供給所述主機的推薦信號的數量;並且 根據提供給所述主機的所述推薦信號的數量是否小於閾值,向所述主機提供所述多個推薦信號中的至少一個推薦信號。
- 如請求項13所述的方法,進一步包括: 按照所述多個推薦信號的生成順序將所述多個推薦信號儲存在所述推薦信號隊列中。
- 如請求項14所述的方法,其中提供所述至少一個推薦信號包括按照所述推薦信號隊列中的隊列條目的順序向所述主機提供所述至少一個推薦信號。
- 如請求項13所述的方法,進一步包括: 在提供所述至少一個推薦信號之後,從所述推薦信號隊列中移除所述至少一個推薦信號。
- 如請求項13所述的方法,其中計算提供給所述主機的所述推薦信號的數量包括向所述主機提供所述多個推薦信號之中的任意一個推薦信號,然後增加提供給所述主機的所述推薦信號的數量。
- 如請求項13所述的方法,進一步包括: 回應於提供給所述主機的所述推薦信號,從所述主機接收對待儲存在所述記憶體區域中的所述映射資訊的請求, 其中計算提供給所述主機的所述推薦信號的數量包括在接收到對所述映射資訊的請求之後減少提供給所述主機的所述推薦信號的數量。
- 如請求項13所述的方法,其中提供所述至少一個推薦信號包括在提供給所述主機的所述推薦信號的數量小於所述閾值的情況下,向所述主機提供所述至少一個推薦信號。
- 如請求項19所述的方法,其中提供所述至少一個推薦信號包括向所述主機提供所述至少一個推薦信號,直到提供給所述主機的所述推薦信號的數量達到所述閾值為止。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210131603A KR20230048769A (ko) | 2021-10-05 | 2021-10-05 | 메모리 컨트롤러 및 그 동작 방법 |
KR10-2021-0131603 | 2021-10-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202316273A true TW202316273A (zh) | 2023-04-16 |
Family
ID=85570759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111136414A TW202316273A (zh) | 2021-10-05 | 2022-09-26 | 記憶體控制器及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230103797A1 (zh) |
KR (1) | KR20230048769A (zh) |
CN (1) | CN115933962A (zh) |
DE (1) | DE102022209147A1 (zh) |
TW (1) | TW202316273A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200122086A (ko) * | 2019-04-17 | 2020-10-27 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치 |
CN113900582B (zh) * | 2020-06-22 | 2024-08-16 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
KR20210157537A (ko) * | 2020-06-22 | 2021-12-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR20220027488A (ko) * | 2020-08-27 | 2022-03-08 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
-
2021
- 2021-10-05 KR KR1020210131603A patent/KR20230048769A/ko active Search and Examination
-
2022
- 2022-04-19 US US17/724,081 patent/US20230103797A1/en active Pending
- 2022-06-10 CN CN202210656508.1A patent/CN115933962A/zh not_active Withdrawn
- 2022-09-02 DE DE102022209147.7A patent/DE102022209147A1/de active Pending
- 2022-09-26 TW TW111136414A patent/TW202316273A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN115933962A (zh) | 2023-04-07 |
US20230103797A1 (en) | 2023-04-06 |
DE102022209147A1 (de) | 2023-04-06 |
KR20230048769A (ko) | 2023-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481272B2 (en) | Memory controller and method of operating the same | |
CN112905502A (zh) | 存储装置及其操作方法 | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
CN113721835A (zh) | 数据存储装置及其操作方法 | |
CN111208937B (zh) | 存储器控制器及其操作方法 | |
CN112783433A (zh) | 存储装置及其操作方法 | |
US11544184B2 (en) | Storage device and method of operating the same for processing a trim request of host | |
CN114443507A (zh) | 存储器系统及其操作方法 | |
KR20220113159A (ko) | 저장 장치 및 그 동작 방법 | |
KR20210090439A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN114077387A (zh) | 存储装置及其操作方法 | |
KR20230037240A (ko) | 호스트 장치, 메모리 컨트롤러 및 이를 포함하는 컴퓨팅 시스템 | |
CN114356209A (zh) | 存储装置及其操作方法 | |
CN114385071A (zh) | 存储装置及其操作方法 | |
CN114420179A (zh) | 存储装置及其操作方法 | |
US11625178B2 (en) | Storage device and method of operating the same | |
KR20230139233A (ko) | 메모리 컨트롤러 및 그것의 동작 방법 | |
KR20220170664A (ko) | 호스트 장치, 저장 장치 및 그 동작 방법 | |
KR20220167077A (ko) | 저장 장치 및 그 동작 방법 | |
CN113126895A (zh) | 存储装置及其操作方法 | |
TW202316273A (zh) | 記憶體控制器及其操作方法 | |
KR102565920B1 (ko) | 저장 장치 및 그 동작 방법 | |
TW202309891A (zh) | 儲存裝置及其操作方法 | |
KR20220157155A (ko) | 스토리지 장치 및 그 동작 방법 | |
KR20230038971A (ko) | 스토리지 장치 및 그 동작 방법 |