公開的實施例一般地涉及儲存控制器系統,并且具體地涉及儲存系統中基于用電量的節流命令執行。
背景技術:
半導體儲存裝置通常被用于儲存和管理用于電子裝置的數據。傳統的非易失性數據儲存裝置在閃速存儲器的存儲器單元中將數據儲存為電氣值,其中閃速存儲器控制器一般地具有在儲存的多個存儲器通道之上管理數據業務的任務。
數據儲存裝置中的數據業務一般通過閃速命令的執行來進行。為促進該過程,通常用幫助優化在多個存儲器通道之上的命令執行的命令隊列來構建閃速存儲器控制器。但是,在多個存儲器通道之上并行執行的命令可能導致功率消耗中的尖峰(spike)。
技術實現要素:
在所附權利要求的范圍中的系統、方法和裝置的各種實現方式的每一個具有幾個方面,沒有其單獨的一個為這里所述的屬性負全部的責任。在不限制所附權利要求的范圍的情況下,在考慮本公開之后,并且特別是在考慮名稱為“具體實施方式”的章節之后,人們將理解各種實施方式的方面將如何被用于在非易失性存儲器系統中基于用電量節流命令執行。在一個方面中,對應于一組非易失性存儲器裝置的命令隊列中的命令的執行根據減少功率消耗的決定而被延遲。
附圖說明
使得本公開可以被更加詳細地理解,可以通過參考各種實現方式的特征而獲得具體的說明,其中的一些在附圖中示出。但是,附圖僅示出本公開的更加顯著的特征并且因此不應被認為是限制性的,因為該說明可能具有其他有效特征。
圖1是示出根據一些實施例的數據儲存系統的實現方式的框圖。
圖2是示出根據一些實施例的存儲器通道、用電量監控器和交錯等待邏輯(staggered wait logic)的實現方式的框圖。
圖3A是示出根據一些實施例的用電量監控器和交錯等待邏輯的實現方式的框圖。
圖3B是根據一些實施例的對應于多個存儲器通道的多個等待使能信號的預示性示意圖。
圖4是示出根據一些實施例的命令延遲模塊的操作的流程圖表示。
圖5A-5E示出了根據一些實施例的命令隊列中的命令的延遲執行的方法的流程圖表示。
根據慣例附圖中示出的各種特征可能未按比例繪制。相應地,為了清晰,各種特性的大小可以任意地擴大或減小。此外,一些附圖可能沒有繪制給定系統、方法或裝置的所有組件。最后,貫穿說明書和附圖,相似的參考標號可以被用于表示相似的特性。
具體實施方式
這里所述的各種實現方式包括系統、方法和/或裝置被用于基于用電量使能非易失性存儲器系統中的命令執行的節流。一些實現方式包括系統、方法和/或裝置以延遲命令隊列中的命令的執行。
更具體地,一些實現方式包括在非易失性存儲器系統中操作的方法,所述非易失性存儲器系統包括非易失性存儲器裝置的多個不同的組。方法還包括,根據減少由所述非易失性存儲器系統的功率消耗的確定,在相應等待時段期間延遲對應于非易失性存儲器裝置的所述不同的組的命令隊列中的命令的執行。在一些實現方式中,用于所述至少兩個不同的組中的非易失性存儲器裝置的第一不同的組的相應等待時段與用于所述至少兩個不同的組中的非易失性存儲器裝置的第二不同的組的所述相應等待時段至少部分非重疊。
在一些實施例中,所述非易失性存儲器裝置的多個不同的組的每一個包括存儲器通道和相應的通道控制器,并且對應于所述存儲器通道中的非易失性存儲器裝置的所述不同的組的命令隊列包括用于所述存儲器通道的命令隊列。
在一些實施例中,用于各個存儲器通道的通道控制器根據由所述通道控制器接收的外部信號來確定是否延遲用于所述各個存儲器通道的命令隊列中的命令的執行。
在一些實施例中,非易失性存儲器系統包括M個存儲器通道,其中M是大于1的整數,每個存儲器通道包含具有相應的命令隊列和等待時段的非易失性存儲器裝置的不同的組。
在一些實現方式中,用于M個存儲器通道的每個存儲器通道的等待時段根據對應于所述存儲器通道的優先級的占空比(duty cycle,或占空因數)。
在一些實現方式中,用于M個存儲器通道的每個存儲器通道的等待時段具有至少部分基于所述相應的存儲器通道的優先級的持續時間。
在一些實施例中,獲得對應于由子系統的功率消耗的功率測量,其中所述子系統包括所述非易失性存儲器裝置的多個不同的組。在一些實現方式中,功率測量是由子系統的瞬時功率消耗的測量。此外,在一些實現方式中,功率測量從所述非易失性存儲器系統的外部的裝置接收。在一些實現方式中,功率測量根據功率測量頻率獲得。
在一些實施例中,根據獲得的功率測量和一個或多個功率閾值作出減少由非易失性存儲器系統的功率消耗的決定。
在一些實施例中,在M個不同的交錯的開始時間處在M個存儲器通道的命令隊列中重新啟動命令的執行,其中M是大于1的整數。此外,在一些實現方式中,非易失性存儲器系統包括M個存儲器通道,每個存儲器通道包含具有相應的命令隊列的非易失性存儲器裝置的不同的組。在一些實現方式中,M個存儲器通道的每個存儲器通道還包括通道控制器,該通道控制器被配置為接收外部信號、并且根據所述外部信號延遲對應于所述存儲器通道的命令隊列中的命令的執行。在一些實現方式中,M個不同的交錯的開始時間的每一個對應于用于相應的存儲器通道的等待時段的結束,其中用于所述M個存儲器通道的等待時段具有對應于所述M個不同的開始時間的交錯的結束時間。
可選地,在一些實施例中,對于非易失性存儲器裝置的不同的組中的一個或多個,各個命令隊列中的延遲的命令的執行被占優(overridden)。在一些實現方式中,占優各個命令隊列中的延遲的命令的執行至少部分基于非易失性存儲器裝置的所述相應的不同的組的優先級。此外,在一些實現方式中,占優各個命令隊列中的延遲的命令的執行至少部分基于所述各個命令隊列中的命令的一個或多個的優先級。
在另一方面中,存儲器系統包括(a)非易失性存儲器裝置的多個不同的組;(b)執行延遲構件(means),對于所述非易失性存儲器裝置的多個不同的組中的至少兩個不同的組的每一個,用于在相應等待時段期間延遲對應于非易失性存儲器裝置的所述不同的組的命令隊列中的命令的執行;以及(c)構件,用于根據減少由所述存儲器系統的功率消耗的確定使能所述執行延遲構件,其中用于所述至少兩個不同的組中的非易失性存儲器裝置的第一不同的組的所述相應等待時段與用于所述至少兩個不同的組中的非易失性存儲器裝置的第二不同的組的所述相應等待時段至少部分非重疊。
在又一方面中,存儲器系統包括(a)非易失性存儲器裝置的多個不同的組;(b)多個通道控制器,每個通道控制器對應于所述非易失性存儲器裝置的多個不同的組的各個組,每個通道控制器被配置為在相應等待時段期間延遲對應于非易失性存儲器裝置的所述不同的組的命令隊列中的命令的執行;以及(c)設備,用于確定用于所述非易失性存儲器裝置的多個不同的組的每一個的等待時段,其中用于所述至少兩個不同的組中的非易失性存儲器裝置的第一不同的組的所述相應等待時段與用于所述至少兩個不同的組中的非易失性存儲器裝置的第二不同的組的所述相應等待時段至少部分非重疊。
在又一方面中,非瞬時性計算機可讀儲存介質儲存由儲存裝置的一個或多個處理器執行的一個或多個程序,該裝置具有多個控制器,所述一個或多個程序包括用于進行這里所述的任何一個方法的指令。
在這里描述許多細節以便于提供對在附圖中示出的示例實現方式的透徹理解。但是,可以不需要許多特定細節而實施一些實施例,并且權利要求的范圍僅由在權利要求中特別記述的那些特性和方面限制。此外,沒有以詳盡的細節描述已知的方法、組件和電路,以便不必要地混淆這里所述的實現方式的更加相關的方面。
圖1是示出根據一些實施例的數據儲存系統100的實現方式的框圖。盡管示出了一些示例特征,但是為了簡潔并且不至于混淆這里所公開的示例實現方式的更加顯著的方面而沒有示出各種其它特征。為此,作為非限制性示例,數據儲存系統100包括儲存裝置120(有時也被稱為信息儲存裝置或數據儲存裝置或存儲器裝置),其包括主機接口122、用電量監控器和交錯等待邏輯124、儲存控制器128、一個或多個非易失性存儲器(NVM)控制器130——諸如閃速控制器以及非易失性存儲器(例如,一個或多個NVM裝置140、142諸如——一個或多個閃速存儲器裝置),并被用于與計算機系統110連接。在一些實現方式中,儲存裝置120包括單個NVM裝置,而在其它實現方式中儲存裝置120包括多個NVM裝置。在一些實現方式中,NVM裝置140、142包括NAND-型閃速存儲器或NOR-型閃速存儲器。此外,在一些實現方式中,NVM控制器130是固態驅動(SSD)控制器。但是,可以根據多種實現方式的方面包括一個或多個其它類型的儲存介質。
計算機系統110通過數據連接101耦接到儲存裝置120。但是,在一些實現方式中,計算機系統110包括儲存裝置120作為組件和/或子系統。計算機系統110可以是任何合適的計算機裝置,諸如個人計算機、工作站、計算機服務器或任何其它計算裝置。計算機系統110有時被稱為主機或主機系統。在一些實現方式中,計算機系統110包括一個或多個處理器、一個或多個類型的存儲器,可選地包括顯示器和/或其它用戶接口組件,諸如鍵盤、觸摸屏、鼠標、觸控板、數碼相機和/或任何數量的補充裝置以添加功能。此外,在一些實現方式中,計算機系統110將在控制線111上的一個或多個主機命令(例如,讀取命令和/或寫入命令)發送到儲存裝置120。在一些實現方式中,計算機系統110是服務器系統——諸如數據中心中的服務器系統,并且不具有顯示器和其它用戶接口組件。
在一些實現方式中,儲存裝置120包括NVM裝置140、142——諸如閃速存儲器裝置(例如,NVM裝置140-1到140-n和NVM裝置142-1到142-k)以及NVM控制器130(例如,NVM控制器130-1到130-M)。另一方面來看,儲存裝置120包括M個存儲器通道,其每一個具有NVM控制器130和耦接到NVM控制器130的一組NVM裝置140或142,其中M是大于1的整數。但是,在一些實施例中,兩個或多個存儲器通道共享NVM控制器130。在任一示例中,每個存儲器通道具有其自己的不同的組的NVM裝置140或142。在非限制性示例中,在傳統的儲存裝置中的存儲器通道的數量為8、16或32。在另一非限制性示例中,每個存儲器通道的NVM裝置140或142的數量通常為8、16、32或64。此外,在一些實現方式中,NVM裝置140/142的數量在不同的存儲器通道中而不同。
在一些實現方式中,每個NVM控制器130包括一個或多個處理單元(有時也被稱為CPU或處理器或微處理器或微控制器),被配置為執行一個或多個程序(例如,儲存在NVM控制器130中的存儲器中)中的指令。在一些實現方式中,NVM控制器130的每個NVM控制器包括一個或多個處理單元(有時也被稱為CPU或處理器或微處理器或微控制器),被配置為執行一個或多個程序(例如,在NVM控制器130中)中的指令。在一些實施例中,一個或多個處理器由在NVM控制器130的功能中的,并且在一些情況中,超過NVM控制器130的功能的一個或多個組件共享。NVM裝置140、142通過連接耦接到NVM控制器130,該連接通常傳送除了數據以外的命令,并且除了將儲存在NVM裝置140、142中的數據值和從NVM裝置140、142讀取的數據值以外,可選地傳送元數據、誤差校正信息和/或其它信息。
在一些實施例中,儲存裝置120被配置為適用于諸如云計算的應用的企業貯存,或用于緩存儲存在(或將被儲存在)諸如硬盤驅動的二級儲存中的數據。在一些其它實施例中,儲存裝置120被配置以用于相對較小尺寸的應用——諸如個人閃速驅動或者個人、膝上型和平板計算機的硬盤替換。盡管閃速存儲器裝置和閃速控制器在這里被用作示例,在一些實施例中儲存裝置120包括(一個或多個)其它非易失性存儲器裝置和(一個或多個)相應的非易失性儲存控制器。
此外,在一些實現方式中,NVM控制器130的每一個包括一個或多個命令隊列150、命令延遲邏輯152和命令執行器154。
在一些實現方式中,各個NVM控制器130中的命令隊列150被用于保持命令等待由耦接到各個NVM控制器130的一組NVM裝置140或142執行。各個命令隊列150,當不為空時,包含一個或多個命令,該一個或多個命令對應于讀取、寫入和/或擦除操作以用于從相應組的NVM裝置(例如,NVM裝置140或142)讀取數據、將數據寫入到相應組的NVM裝置(例如,NVM裝置140或142)或者從相應組的NVM裝置(例如,NVM裝置140或142)擦除數據。在一些實現方式中,命令隊列150中的命令包括從計算機系統110接收的主機命令。一組NVM裝置140(例如,NVM裝置140-1到140-n)和相應的NVM控制器130(例如,NVM控制器130-1)的組合有時被稱為存儲器通道(例如,存儲器通道i,圖2)。儲存裝置120可以包括與不同的組的NVM裝置一樣多的存儲器通道,其中命令可以通過一組NVM控制器被并行地分派到NVM裝置。
命令延遲邏輯152耦接到命令隊列150,并且包括用于確定是否延遲一個或多個命令隊列150中的命令的執行的邏輯。在一些實現方式中,命令延遲邏輯152根據從用電量監控器和交錯等待邏輯124接收的一個或多個外部信號(例如,Ch 1延遲信號308,圖3A)延遲命令隊列150中的命令的執行。在一些實現方式中,各個存儲器通道中的命令延遲邏輯152通過由用于該存儲器通道的NVM控制器130執行的一個或多個程序中的一組指令實現。在一些實現方式中,各個存儲器通道中的130-M,命令執行器154將來自命令隊列150的命令分派到在該存儲器通道中的NVM裝置140或142,并且命令延遲邏輯152延遲將來自命令隊列150的命令分派到存儲器通道中的NVM裝置140或142。
在一些實現方式中,用電量監控器和交錯等待邏輯124耦接到NVM控制器130并且將一個或多個外部信號(例如,Ch 1延遲信號308,圖3A)提供到NVM控制器130。在一些實現方式中,用電量監控器和交錯等待邏輯124包括用于測量和監控由儲存裝置120或由儲存裝置120的子系統的功率消耗的電路(例如,功率監控器310和功率閾值比較模塊312,圖3A)。在一個示例中,其功率被監控的子系統包括儲存裝置120的所有的存儲器通道(例如,由NVM控制器控制的所有的NVM控制器130和所有的NVM裝置140、142),并且在另一示例中,其功率被監控的子系統包括儲存裝置120的存儲器通道中的所有的NVM裝置140、142,但是沒有NVM控制器130、儲存控制器128和主機接口122。在下面參考圖3A和3B描述用電量監控器和交錯等待邏輯124的各種實施例。
在一些實現方式中,命令執行器154被配置為延遲和/或重新啟動命令隊列150中的命令的執行。在一些實現方式中,延遲和/或重新啟動命令的執行根據命令延遲邏輯152的輸出。
在一些實現方式中,儲存裝置120還包括主機接口122、用電量監控器和交錯等待邏輯124和儲存控制器128的一個或多個。可選地,儲存裝置120包括為了簡潔并且不至于混淆這里所公開的示例實現方式的更加顯著的特征而沒有示出的各種額外的特征,并且特征的不同的布置是可能的。主機接口122通過數據連接101將接口提供到計算機系統110。
儲存控制器128耦接到主機接口122和NVM控制器130。在一些實現方式中,在寫入操作期間,儲存控制器128從計算機系統110通過主機接口122接收數據并且在讀取操作期間,儲存控制器128通過主機接口122將數據發送到計算機系統110。此外,主機接口122提供在儲存控制器128和計算機系統110之間通信所需要的額外的數據、信號、電壓和/或其它信息。在一些實現方式中,儲存控制器128和主機接口122使用定義的接口標準以用于通信——諸如雙數據率類型三同步動態隨機存取存儲器(DDR3)。在一些實現方式中,儲存控制器128和NVM控制器130使用定義的接口標準以用于通信,諸如序列高級技術附接(SATA)。在一些其它實施例中,儲存控制器128所使用與NVM控制器130通信的裝置接口是SAS(序列附接SCSI),或其它儲存接口。在一些實施例中,儲存控制器128包括一個或多個處理單元(有時也被稱為CPU或處理器或微處理器或微控制器)被配置為執行一個或多個程序中的指令(例如,在儲存控制器128中)。在一些實現方式中,一個或多個處理器由在儲存控制器128的功能中的,并且在一些情況中,超過儲存控制器128的功能的一個或多個組件共享。
圖2是示出根據一些實施例的存儲器通道、存儲器通道i和用電量監控器和交錯等待邏輯124的實現方式的框圖。在一些實施例中,存儲器通道i包括NVM控制器130-i、NVM裝置140-1到140-n、一個或多個處理器(有時也被稱為CPU或處理單元或微處理器或微控制器)202以用于執行儲存在存儲器206中的模塊、程序和/或指令,并且從而進行處理操作,存儲器206和一個或多個通信總線208用于互聯這些組件。但是,在一些其它實施例中,以下描述的如由(一個或多個)處理器202進行的一個或多個功能相反由儲存控制器128進行。
通信總線208可選地包括互連并且控制系統組件之間的通信的電路(有時被稱為芯片集)。用電量監控器和交錯等待邏輯124耦接到NVM控制器130,如在下面更加詳細地討論的。130-M
用電量監控器和交錯等待邏輯124耦接到NVM控制器130并且將控制信號(例如,Ch 1延遲信號308,圖3A)提供到NVM控制器130。控制信號在這里有時被稱為外部信號(從單個NVM控制器130的角度來說)或者命令執行延遲信號。在下面參考圖3A和3B描述用電量監控器和交錯等待邏輯124的各種實施例。
存儲器206包括高速隨機存取存儲器,諸如DRAM、SRAM、DDRRAM或其它隨機存取固態存儲器裝置,并且可以包括非易失性存儲器,諸如磁盤儲存裝置、光盤儲存裝置、閃速存儲器裝置或其它非易失性固態儲存裝置的一個或多個。存儲器206可選地包括位于遠離(一個或多個)處理器202的一個或多個儲存裝置。存儲器206,或可替換地在存儲器206中的(一個或多個)非易失性存儲器裝置,包括非瞬時性計算機可讀儲存介質。在一些實施例中,存儲器206或者存儲器206的計算機可讀儲存介質儲存以下程序、模塊和數據結構或其子集:
接口模塊210,其用于處理與儲存控制器128的通信;
命令隊列212,儲存對應于各種操作的命令(例如,讀取、寫入和擦除),當執行該命令時,對保持在NVM裝置140或142中的數據操作;在一些實施例中,各個存儲器通道具有多于一個命令隊列212;
命令延遲模塊214,其根據由用電量監控器和交錯等待邏輯124產生的一個或多個信號確定是否延遲一個或多個命令隊列(例如,命令隊列212)中的命令的執行;
命令執行模塊216,將來自一個或多個命令隊列(例如,命令隊列212)的命令分派到存儲器通道i中的NVM裝置140以用于執行;命令延遲模塊214確定何時推遲以及何時恢復命令執行模塊216的操作;以及
可選地,用于存儲器通道i的模式和/或配置設置218;例如,在一些實施例中,模式和/或配置設置218包括指示命令延遲是否被使能以用于存儲器通道i的設置(例如,稱為“命令延遲使能”的設置);在另一示例中,在一些實施例中,模式和/或配置設置218包括指示存儲器通道i是高優先級存儲器通道的設置(例如,稱為“高優先級通道”的設置),在該情況中,不使能用于存儲器通道i的命令延遲。在一些實施例中,根據從主機計算機110接收的命令設置模式和/或配置設置218中的一個或多個值。
在一些實施例中,存儲器206或者存儲器206的計算機可讀儲存介質還儲存用于配置NVM控制器130-i的配置模塊。在一些實施例中,當上電并且當重置時,配置模塊根據存儲器通道i的組件(例如,存儲器通道i中非易失性存儲器組件的類型)和/或儲存裝置120和/或包括儲存裝置120的數據儲存系統100的特征,自動地設置NVM控制器130-i的一個或多個配置參數的值。
上述標識的元件(element)的每一個可以被貯存在之前提到的存儲器裝置的一個或多個中,并且對應于用于進行上述功能的指令集。上述識別的模塊或程序(即,指令集)不一定實現為單獨的軟件程序、規程或模塊,并且從而這些模塊的各種子集可以被組合或者在各種實施例中另外地重新布置。在一些實施例中,存儲器206可以儲存以上識別的模塊和數據結構的子集。此外,存儲器206可以貯存以上未描述的額外的模塊和數據結構。在一些實施例中,在一些實施例中,儲存在存儲器206或者存儲器206的計算機可讀儲存介質中的程序、模塊和數據結構,提供用于實現通過各個存儲器通道i或者在各個存儲器通道i中進行的參考圖5A-5E在下面描述的方法的至少那些部分的指令。
盡管圖2示出了存儲器通道i,但是圖2相比于這里所述的實施例的結構性示意更傾向于作為可能出現在存儲器通道中的各種特性的功能性描述。實踐中,并且如由本領域普通技術人員識別的,單獨地示出的項目可以被組合并且一些項目可以分開。
盡管未在附圖中示出,在一些實施例中儲存控制器128包括一個或多個處理器(有時被稱為CPU,或微控制器)以及儲存由一個或多個處理器執行的一個或多個程序的存儲器。在一些實現方式中,這些程序、當由儲存控制器128的一個或多個處理器執行時,實現參考圖5A-5E在下面描述的方法的至少部分。在一些實施例中,由儲存控制器128的一個或多個處理器執行的一個或多個程序實現等待模式產生器302和/或通道延遲信號產生器304的一個或多個功能。
圖3A是示出根據一些實施例的用電量監控器和交錯等待邏輯124的實現方式的框圖。盡管示出了一些示例特征,但是為了簡潔并且不至于混淆這里所公開的示例實現方式的更加顯著的方面而沒有示出各種其它特征。為此,作為非限制性示例,用電量監控器和交錯等待邏輯124包括功率監控器310、功率閾值比較模塊312、等待模式產生器302和可選地包括通道延遲信號產生器304。在一些實施例中,外部信號由通道延遲信號產生器304產生,其每一個由各個存儲器通道的命令延遲模塊214(圖4)采樣以確定是否延遲用于該各個存儲器通道(例如,Ch 1)的命令隊列(例如,命令隊列150)中的命令的執行。
在一些實施例中,功率監控器310獲得對應于由儲存裝置120或儲存裝置120的子系統的功率消耗的功率測量(例如,功率測量311)。在以上描述了其功率被監控的子系統的示例。功率監控器310可選地使用電流傳感器、電流到電壓轉換器、二極管和/或其它無源或有源組件的一個或多個實現以測量儲存裝置120及其組件的電氣特征。可選地,功率監控器310是儲存裝置120的外部的裝置。此外,在一些實施例中,功率測量311是由子系統的瞬時功率消耗(例如,儲存裝置120的存儲器通道,包括存儲器通道的NVM控制器130和NVM裝置140、142)的測量。額外地和/或可替換地,功率消耗311是平均功率的測量,等于在預定的時間之上的由子系統的總功率消耗(例如,10秒時段的之上每秒消耗的平均功率)。在一些實現方式中,功率監控器310根據功率測量頻率獲得功率測量311(例如,每個1毫秒獲得功率測量311)。在一些實施例中,用電量監控器和交錯等待邏輯124的時間特征被配置為防止在延遲和重新啟動各個存儲器通道的命令隊列中的命令的執行150/212之間的快速的翻轉(toggling)。
在一些實施例中,功率閾值比較模塊312根據獲得的功率測量信號311和一個或多個功率閾值作出確定以減少功率消耗(例如,通過輸出或發布的功率超過閾值旗標(flag)313)。在一些實施例中,功率閾值是對在預定的時間段(例如,具有在0.25秒和10秒之間的預定的持續時間的時間段)期間由儲存裝置120或儲存裝置120的子系統的瞬時功率消耗或平均功率消耗的限制。具體地,在一些實施例中,功率閾值比較模塊312將一個或多個功率測量(例如,功率測量311)與一個或多個功率閾值比較,并且如果功率測量311超過功率閾值,則產生功率超過閾值旗標(flag)313。在一些實施例中,功率閾值比較模塊312還將第二控制信號314輸出到等待模式產生器302。在這樣的實施例中,控制信號314指定將由等待模式產生器302產生的等待使能信號的模式。例如,在一些實施例中,其中功率閾值比較模塊312將功率測量311與兩個或多個功率閾值比較,第二控制信號314對應于功率測量311超過的最高的功率閾值,并且由等待模式產生器302產生的等待使能信號模式還對應于由功率測量311超過的最高的功率閾值。在非限制性示例中,第二控制信號314確定在由等待模式產生器302產生的等待使能信號中的等待時段320(圖3B)的占空比,并且由第二控制信號314指定的占空比當由功率測量311超過更高的功率閾值時高于當功率測量311僅超過較低功率閾值時。
在一些實現方式中,功率監控器310和功率閾值比較模塊312實現在主機系統110中,儲存裝置120的外部,而等待模式產生器302實現在儲存裝置120中。在這樣的實現方式中,儲存裝置120接收由功率閾值比較模塊312產生的一個或多個控制信號(這里有時被稱為外部信號)——諸如功率超過閾值旗標313,以及可選的第二控制信號314。
等待模式產生器302產生等待使能信號306-1到306-M,并且在一些實施例中,等待模式產生器302耦接到通道延遲信號產生器304的一個或多個邏輯柵極。可替換地,等待模式產生器302耦接到在每一個存儲器通道中的命令延遲邏輯152或命令延遲模塊214,該存儲器通道被配置為基于由那些存儲器通道接收的一個或多個“外部”信號延遲相應的命令隊列中的命令的執行。在一些實施例中,等待模式產生器302是居于儲存控制器128中的電路。在一些其它實施例中,等待模式產生器302通過由儲存控制器128的一個或多個處理器執行的一個或多個程序中的一組指令實現。
在一些實現方式中,產生的等待使能信號306的每一個對應于各個存儲器通道(例如,Ch 1、Ch 2,等),并且因此還對應于該存儲器通道中的各個NVM控制器130和NVM裝置。等待使能信號的每一個在等待時段(例如,等待時段320,圖3B)期間具有預定的值(例如,邏輯1值)。等待時段是如果已經做出確定以減少由儲存裝置120的功率消耗(例如,因為已經確定功率測量311為超過功率閾值)、在該期間中相應的命令延遲模塊214延遲相應的命令隊列150中命令的執行的時間。在一些實施例中,在等待時段期間的命令延遲可以被具有預定的高優先級的命令隊列150中的命令占優。
在一些實施例中,產生等待使能信號使得儲存裝置120的存儲器通道(例如,Ch 1、Ch 2)具有交錯的開始時間(例如,322、326)。這個的示例在圖3B中示出。每個開始時間對應于用于相應的存儲器通道的等待時段的結束(例如,等待時段320、324)。換句話說,用于存儲器通道的等待時段具有對應于不同的開始時間的交錯的結束時間。開始時間(例如,開始時間322)是在其處命令延遲模塊(例如,命令延遲模塊214)重啟各個命令隊列(例如,命令隊列150)中的命令的執行的時間。
在一些實施例中,用于NVM裝置的第一不同的組(例如,第一存儲器通道中的NVM裝置)的相應等待時段(例如,等待時段320)與用于NVM裝置的第二不同的組(例如,第二存儲器通道中的NVM裝置)的相應等待時段(例如,等待時段324)至少部分非重疊。通過產生等待使能信號306使得相應等待時段(例如,等待時段320和324)部分非重疊,不同的存儲器通道的命令隊列中的命令的執行以交錯的方式延遲并且以交錯的方式恢復。因此,在多個存儲器通道之上管理功率消耗并且減少了功率消耗尖峰。
在一些實施例中,(命令執行被延遲的一組兩個或多個存儲器通道中的)命令執行被延遲的每個存儲器通道在與命令執行被延遲的其它存儲器通道不同的開始時間處恢復執行。在圖3B中示出的示例中,對于存儲器通道1的開始時間不同于對于存儲器通道2、3和4的開始時間。在一些其它實施例中,兩個或多個存儲器通道可以具有用于恢復的命令的執行的相同開始時間,而至少一個其它存儲器通道具有用于在它們的各個命令隊列中恢復命令的執行的不同開始時間。
在一些實施例中,用于每個存儲器通道的等待時段(例如,等待時段320)根據使得沒有一個存儲器通道在持久的等待狀態中的占空比而重復(即,(一個或多個)存儲器通道以輪轉(rotating)的方式保持在等待狀態中)。此外,在一些實施例中,用于每個存儲器通道的等待時段的占空比對應于存儲器通道的優先級(例如,具有高優先級的存儲器通道具有以低于用于具有低優先級的另一存儲器通道的等待時段的占空比的第一占空比而重復的等待時段)。例如,如果存儲器通道1被指定為高優先級存儲器通道,則等待時段320(具有10μs的持續時間,例如)重復,并且在其命令隊列150中的命令的執行每隔50μs被延遲一段等待時段,而用于被指定為低優先級存儲器通道的存儲器通道2的等待時段324,每隔20μs重復。在后一個示例中,存儲器通道1的等待時段具有20%的占空比,而存儲器通道2的等待時段具有50%的占空比。
在一些實現方式中,用于存儲器通道的等待時段(例如,等待時段320)具有至少部分基于相應的存儲器通道的優先級的持續時間(例如,如果存儲器通道是高優先級存儲器通道,則其相應的等待時段具有比另一較低優先級存儲器通道的等待時段更短的持續時間)。例如,高優先級存儲器通道1的等待時段320具有5μs的持續時間,而常規優先級存儲器通道2的等待時段324具有15μs的持續時間。實際上,更長的等待時段持續時間增加了延遲命令的執行的時間。在一些實施例中,相應的存儲器通道的等待時段的持續時間和占空比兩者至少部分基于相應的存儲器通道的優先級。例如,高優先級存儲器通道1具有以低占空比(例如,每50μs的5μs,這是10%的占空比)而重復的短的等待時段(例如,5μs),而常規優先級存儲器通道2具有以中等占空比(例如,每50μs的15μs,這是30%的占空比)而重復的較長的等待時段(例如,15μs),使得相比于用于存儲器通道2的,在存儲器通道1的命令隊列中可以連續地執行更多的命令,并且這樣命令的執行將延遲更短的時間段。
在一些實現方式中,相應的存儲器通道的等待時段和占空比根據由功率測量311超過的功率閾值來設置,其中該功率測量311由功率閾值比較模塊312確定。例如,如果存在兩個或多個預定的功率閾值(例如,功率閾值A=3200毫瓦,并且功率閾值B=3600毫瓦),并且功率測量311僅超過較低的功率閾值A(例如,功率測量311為3225毫瓦),則用于每個存儲器通道的等待使能信號的等待時段和占空相比于功率閾值A和B兩者被功率測量311超過的情況來說更小。因此,當兩者功率閾值被功率測量311超過時,命令執行相比于僅功率閾值的一個被超過時(例如,10%)將大幅度減少(例如,30%)。
在一些實施例中,基于存儲器通道的數量以及每個存儲器通道NVM裝置的數量確定功率閾值或閾值。例如,在一些實現方式中,使用每個通道200毫瓦的功率閾值,其中功率測量基于僅由NVM裝置而不是任何支持電路吸取的功率。在一些實施例中,諸如在儲存裝置之外進行功率測量的實施例,基于整個儲存裝置的功率消耗來確定功率閾值或閾值。在一些實現方式中,(多個)功率閾值的一個至少部分地基于由儲存裝置消耗的閑置功率(例如,由控制器和其它支持電路消耗的3.0到3.5瓦特、而沒有進行存儲器讀取、寫入和擦除操作)加上每個存儲器通道的功率消耗限制乘以存儲器通道的數量的總和。此外,在一些實現方式中,用于確定一個或多個的功率閾值的另一因素是主機系統110或其它系統可以提供到儲存裝置120的功率量的物理限制。在一些實施例中,主機系統110關于可以向儲存裝置120提供多少功率而具有尖峰功率限制和持續的功率限制兩者,并且在設置用于用電量監控器和交錯等待邏輯124的一個或多個功率閾值時考慮這些因素中的一個或兩者。此外,在一些實施例中,一個或多個功率閾值是固件可設置的,或者根據從主機系統110接收的一個或多個命令而被實現為由儲存控制器128儲存的值。
在一些實施例中,通道延遲信號產生器304根據減少功率消耗(例如,產生功率超過閾值旗標313)的確定和一個或多個產生的等待使能信號(例如,Ch 1等待使能306)來產生一個或多個外部信號308(例如,Ch 1延遲信號308-1、Ch 2延遲信號308-2、…Ch M延遲信號308-M)。更具體地,在一些實施例中,當等待使能信號(例如,Ch 1等待使能306)為高,并且功率閾值比較模塊312已經產生功率超過閾值旗標313(即,功率測量311超過預定的功率閾值)時,通道延遲信號產生器304用產生一個或多個外部信號的一個或多個“與”門來實現。因此,例如,當產生功率超過閾值旗標313時,產生Ch 1延遲信號308-1作為外部信號以用于延遲命令隊列150中的命令的執行(即,當Ch 1等待使能306-1在其等待時段320中時)。一個或多個外部信號由命令延遲模塊214(例如,圖4(400))采樣,并且一個或多個存儲器通道(例如,Ch 1)的命令隊列中的命令的執行(例如,命令隊列150)被相應地延遲。
在一些實施例中,功率超過閾值旗標313被產生,并且被直接提供到等待模式產生器302,其包含用于產生用于延遲命令的執行的一組通道延遲信號的邏輯,其中一個或多個外部信號由命令延遲模塊214采樣。在這些實施例中,不需要通道延遲信號產生器304。此外,在這些實施例中,如果儲存裝置120沒有做出減少功率消耗的確定(例如,因為功率測量311沒有被確定為超過功率閾值),則不由等待模式產生器302產生用于延遲命令的執行的外部信號。
在一些實現方式中,用電量監控器和交錯等待邏輯124的一些或全部包括一個或多個邏輯柵極、移位寄存器、時鐘、觸發器、反相器和/或其它邏輯元件,其中前述元件用晶體管和其它有源或無源電子組件來實現。
在一些實現方式中,通道延遲信號產生器304以由NVM控制器130執行的軟件來實現。更具體地,在一些實現方式中,用于各個存儲器通道的NVM控制器130接收來自等待模式產生器302的相應的等待使能信號,并且還接收功率超過閾值旗標313,并且執行一個或多個程序中的指令以組合這些信號并且從而產生用于該存儲器通道的延遲信號或者等同的控制值。
圖3B是根據一些實施例的對應于多個存儲器通道的多個等待使能信號的預示性示意圖。應注意的是,圖3B中示出的各種時間段的長度不一定成比例;在一些實現方式中,時間段的長度和等待時段的占空比可能實質上與圖3B中示出的不同。
如圖3B中所示,在一些實施例中,由等待模式產生器302產生的多個存儲器通道的等待使能信號306(例如,Ch 1等待使能306-1,Ch 2等待使能306-2),具有對應于用于相應的存儲器通道的等待時段的結束(例如,等待時段320、324)的交錯的開始時間(例如,322、326)。此外,如圖3B中所示,在一些實施例中,用于在NVM裝置的至少兩個不同的組中的NVM裝置140的第一不同的組的相應等待時段(例如,等待時段320)與用于在至少兩個不同的組中的NVM裝置的第二不同的組140的相應等待時段(例如,等待時段324)至少部分非重疊。
圖4是示出根據一些實施例的用于各個存儲器通道i的命令延遲模塊214的操作的流程圖表示。如在圖4中所示的,命令延遲模塊214根據由存儲器通道的控制器接收的一個或多個外部信號確定是否延遲用于各個存儲器通道i(例如,Ch 1)的命令隊列中的命令的執行(例如,命令隊列150)。
在一些實施例中,用于存儲器通道i的命令延遲模塊214采樣(400)通道i延遲信號308-i,這里有時被稱為外部信號,因為在一些實施例中,其由存儲器通道外部的通道延遲信號產生器304(圖3A)提供。在一些實現方式中,命令延遲模塊214采樣由等待模式產生器302產生的通道延遲信號(例如,在實現方式中,功率閾值比較模塊312的輸出由等待模式產生器302接收)。如上所述,在一些其它實施例中,在400采樣的通道i延遲信號308-i由與包括(或者執行)命令延遲模塊214的相同的NVM控制器執行的程序產生。但是,在那些實施例中,基于一個或多個外部信號——諸如通道i等待信號306-i和功率超過閾值旗標313產生通道i延遲信號308-i。
接著,在一些實施例中,命令延遲模塊214根據采樣的通道i延遲信號308-i來確定(402)延遲用于存儲器通道i的命令隊列中的命令的執行150當前是否被使能。在一些實施例中,該確定完全基于采樣的通道i延遲信號308-i(例如,是否采樣的通道i延遲信號308-I=真的確定)的狀態或值,而在其它實施例中,該確定基于采樣的通道i延遲信號308-i的狀態或值以及另一信號或(例如,功率超過閾值旗標313,或者用于存儲器通道的模式設置或者用于整個儲存裝置的模式設置)指示命令延遲特征是否被使能的值兩者。
如果在各個命令隊列中的命令的延遲執行當前沒有被使能(402-否),命令延遲模塊214則確定(404)用于各個存儲器通道的命令隊列150是否為空。如果各個命令隊列為空(404-是),則命令延遲模塊214繼續采樣(400)通道i延遲信號308-i。換句話說,如果各個命令隊列不為空(404-否),則執行各個命令隊列中的命令(406)(例如,通過命令執行器154,其將來自命令隊列的命令分派到命令被引導到的一個或多個NVM裝置)。
如果在各個命令隊列中的命令的延遲執行當前被使能(402-是),則命令延遲模塊214確定(408)是否占優各個命令隊列中的延遲的命令的執行。在一些實施例中,占優在各個命令隊列中的延遲的命令的執行至少部分基于相應的存儲器通道的優先級(例如,優先級設置),或者等同地,相應的存儲器通道中的非易失性存儲器裝置的不同的組的優先級。例如,如果存儲器通道1是高優先級存儲器通道,則命令延遲模塊214可以被配置為使得存儲器通道1的命令隊列中的命令不能被延遲,并且必須總是被無延遲地執行。應注意的是,存儲器通道可以被指定為高優先級存儲器通道,例如如果,在其命令隊列中的命令涉及在被認定為關鍵的用于數據上的操作。在一些實施例中,儲存裝置120被配置為根據從主機計算機系統110接收的命令(例如,配置設置命令)將一個或多個存儲器通道指定為高優先級存儲器通道。
在一些實現方式中,一個或多個高優先級指令或命令在命令隊列中的出現占優了在該命令隊列中的延遲的命令的執行。為利用該特征,主機系統110將一個或多個高優先級命令發送到儲存裝置120,其由儲存裝置120(例如,由儲存控制器128)放置在用于一個或多個存儲器通道的各個命令隊列中。在一些實現方式中,只要至少一個高優先級指令或命令出現在用于存儲器通道的各個命令隊列中,在該命令隊列中的命令的執行的任何延遲被占優。在一些實現方式中,在執行各個命令隊列中的較低優先級的指令或命令之前,首先執行任何高優先級指令或在各個命令隊列中的命令(例如,分派到一個或多個NVM裝置以用于執行)。
在一些實施例中,根據特定命令的命令類型的功率消耗進行特定命令的延遲執行。例如,在一些實施例中,儲存裝置120在執行讀取命令時相比于執行寫入命令或擦除命令消耗更少的功率。在該示例中,當“讀取”命令為各個存儲器通道的命令隊列150中的下一個命令時,用于該存儲器通道的NVM控制器130占優各個命令隊列中的延遲的命令的執行,使得即使使能命令延遲也能夠執行讀取命令(402-是)。
如果命令延遲模塊214占優(408-是)各個命令隊列中的延遲的命令的執行,則各個命令隊列中的命令的執行不被延遲,并且執行各個命令中的一個或多個命令(例如,通過命令執行器154或命令執行模塊216,其將(一個或多個)命令分派到一個或多個NVM裝置以用于執行)。在一些實施例中,當作出該確定時執行單個命令(408-是),并且然后過程在操作400處開始重復,以確定是否執行(在各個命令隊列中如果有)的下一命令。
換句話說,如果命令延遲模塊214不占優(408-否)一個或多個外部信號,則各個命令隊列中的命令的執行被延遲(410),并且命令延遲模塊214重復上述過程,從再次采樣(400)通道i延遲信號開始。
圖5A-5E示出了根據一些實施例的延遲至少存儲器通道的命令隊列中的命令的執行的方法500的流程圖表示。非易失性存儲器系統(例如,儲存裝置120,圖1),其包括非易失性存儲器裝置的多個不同的組(例如,NVM裝置140-1到140-n和NVM 142-1到142-k),協調并管理多個子系統組件以延遲對應于非易失性存儲器裝置的至少兩個不同的組的命令隊列中的命令的執行。
非易失性存儲器系統(例如,儲存裝置120),根據減少由非易失性存儲器系統的功率消耗的確定,并且對于非易失性存儲器裝置的多個不同的組中的至少兩個不同的組的每一個,在相應等待時段期間延遲(502)對應于非易失性存儲器裝置的不同的組的命令隊列中命令的執行。用于至少兩個不同的組中的非易失性存儲器裝置的第一不同的組的相應等待時段與用于至少兩個不同的組中的非易失性存儲器裝置的第二不同的組的相應等待時段至少部分非重疊(504)。在一些實現方式中,等待模式產生器302產生等待使能信號306(例如,Ch 1等待使能306-1,Ch 2等待使能306-2),每一個包括相應等待時段(例如,等待時段320、324,圖3B)。因為相應等待時段(例如,等待時段320和324)部分非重疊,所以命令隊列中的命令的執行(例如,命令隊列150)以交錯的方式延遲,并且在存儲器通道之上管理功率消耗以減少功率消耗尖峰。
在一些實施例中,非易失性存儲器裝置的多個不同的組的每一個包括存儲器通道(506),該存儲器通道還包括相應的通道控制器,并且對應于存儲器通道中的非易失性存儲器裝置的不同的組的命令隊列包括用于存儲器通道的命令隊列。
此外,在一些實施例中,用于各個存儲器通道的通道控制器(例如,存儲器通道i)根據由通道控制器接收的外部信號確定(508)是否延遲用于各個存儲器通道的命令隊列中的命令的執行。在一些實現方式中,上述外部信號是參考圖3A在上面描述的通道延遲信號308-i。在一些實現方式中,上述外部信號是指示超過一個或多個功率閾值的當前功率測量的信號(例如,功率超過閾值旗標313)。還參見關于示出命令延遲模塊的操作的流程圖表示的操作400和402在上面的討論。
在一些實施例中,非易失性存儲器系統(例如,儲存裝置120)包括M個存儲器通道(510),其中M是大于1的整數,每個存儲器通道包括具有相應的命令隊列和等待時段的非易失性存儲器裝置的不同的組。在一些實現方式中,用于M個存儲器通道的每個存儲器通道的等待時段根據對應于存儲器通道的優先級的占空比而重復(512)。因此,沒有一個存儲器通道在持久的等待狀態中。此外,在一些實施例中,占空比對應于存儲器通道的優先級(例如,具有高優先級的存儲器通道具有以低占空比的等待時段)。
在一些實現方式中,用于M個存儲器通道的每個存儲器通道的等待時段具有至少部分基于相應的存儲器通道的優先級的持續時間(514)。參考圖3A和3B在上面討論了這個的示例。在一些實施例中,相應的存儲器通道的等待時段(例如,等待時段320,圖3B)的持續時間和占空比兩者至少部分基于相應的存儲器通道的優先級。此外,在一些實現方式中,相應的存儲器通道的等待時段和占空比根據如由功率閾值比較模塊312確定的已經超過的一個或多個功率閾值而設置。
在一些實施例中,獲得對應于由子系統的功率消耗的功率測量(516),其中子系統包括非易失性存儲器裝置的多個不同的組。參考圖1在上面描述了這樣的子系統的示例。在一些實現方式中,對應于由子系統的功率消耗的功率測量由諸如參考圖3A在以上描述的用電量監控器和交錯等待邏輯124的用電量監控器獲得。
在一些實現方式中,功率測量是由子系統的瞬時功率消耗(518)的測量。額外地和/或可替換地,功率消耗311是由子系統的平均功率消耗的測量,等于在預定的時間之上的由子系統的總功率消耗(例如,10秒時段的之上每秒消耗的平均功率)。此外,在一些實現方式中,從非易失性存儲器系統的外部裝置接收功率測量(520)。此外,在一些實現方式中,根據功率測量頻率獲得功率測量(522)。
此外,在一些實施例中,根據獲得的功率測量和一個或多個功率閾值作出(524)減少由非易失性存儲器系統的功率消耗的確定。功率閾值比較模塊312根據獲得的功率測量信號311和一個或多個功率閾值(有時被稱為功率閾值)作出確定以減少功率消耗(例如,功率超過閾值旗標313)。在一些實施例中,功率閾值是對瞬時功率消耗的限制(例如,在由儲存裝置中的NVM裝置的3200毫瓦的尖峰功率消耗上的限制)、和/或對在等于在預定的時間之上的由子系統總功率消耗的平均功率的限制(例如,在10秒時段之上每秒平均消耗的3200毫瓦的限制)。具體地,在一些實施例中,功率閾值比較模塊312將一個或多個功率測量(例如,功率測量311)與一個或多個功率閾值比較,并且如果功率測量311超過功率閾值,則產生功率超過閾值旗標313。在一些實現方式中,如果功率測量311超過功率閾值,則功率閾值比較模塊312將功率超過閾值旗標313設置為第一預定的值(例如,“真”或1),并且如果功率測量311沒有超過功率閾值,則將功率超過閾值旗標313設置為第二預定的值(例如,“假”或0)。
在一些實施例中,在M個不同的交錯的開始時間處,在M個存儲器通道的命令隊列中重新啟動(526)命令的執行,其中M是大于1的整數。此外,在一些實現方式中,非易失性存儲器系統包括M個存儲器通道(528),每個存儲器通道包含具有相應的命令隊列的非易失性存儲器裝置的不同的組。在一些進一步實現方式中,M個存儲器通道的每個存儲器通道還包括通道控制器,該通道控制器被配置為(530)接收外部信號并且根據外部信號來延遲對應于存儲器通道的命令隊列中的命令的執行。在一些實現方式中,M個不同的交錯的開始時間的每一個對應于用于相應的存儲器通道的等待時段(532)的結束,其中用于M個存儲器通道的等待時段具有對應于M個不同的開始時間的不同的交錯的結束時間。
可選地,在一些實施例中,方法包括占優(534)對應于非易失性存儲器裝置的多個不同的組中的非易失性存儲器裝置的不同的組的各個命令隊列中的延遲的命令的執行。在一些實現方式中,占優各個命令隊列中的延遲的命令的執行至少部分基于非易失性存儲器裝置的相應的不同的組的優先級(536)。例如,如果各個存儲器通道是高優先級存儲器通道,則用于該存儲器通道的命令延遲模塊214被配置為繼續執行用于各個存儲器通道的命令隊列中的命令,而沒有延遲,即使當用于各個存儲器通道的通道延遲信號308指示延遲用于各個存儲器通道的命令隊列中的命令的執行150被使能時。對于基于存儲器通道優先級的占優延遲的命令的執行的進一步討論可以在上面參照圖4中的操作408找到。
此外,在一些實現方式中,占優各個命令隊列中的延遲的命令的執行至少部分基于各個命令隊列中的命令的一個或多個的優先級(538)。對基于各個命令隊列中的一個或多個命令的優先級占優延遲的命令的執行的進一步討論可以在上面參照圖4中的操作408找到。
在一些實現方式中,關于上述任何方法,儲存裝置包括(1)用于將儲存裝置耦接到主機系統的接口,(2)多個非易失性存儲器控制器,多個控制器的每個控制器被配置為延遲由控制器管理的一個或多個命令隊列中的命令的執行,以及(3)非易失性存儲器裝置的多個不同的組,每一個由非易失性存儲器控制器的相應的一個控制。
半導體存儲器裝置包括易失性存儲器裝置,諸如動態的隨機存取存儲器(“DRAM”)或靜態的隨機存取存儲器(“SRAM”)裝置;非易失性存儲器裝置——諸如電阻式隨機存取存儲器(“ReRAM”)、電可擦除可編程只讀存儲器(“EEPROM”)、閃速存儲器(也可以被認為是EEPROM的子集)、鐵電的隨機存取存儲器(“FRAM”)以及磁阻的隨機存取存儲器(“MRAM”);以及其他能夠貯存信息的半導體元件。此外,每種類型的存儲器裝置可以具有不同的配置。例如,閃速存儲器裝置可以配置在NAND或NOR配置中。
存儲器裝置可以由無源和/或有源元件或兩者構成。以非限制性示例的方式,無源半導體存儲器元件包括ReRAM裝置元件,其在一些實施例中包括電阻率切換貯存元件——諸如反熔絲、變相材料等,以及可選地控制元件——諸如二極管等。進一步以非限制性示例的方式,有源半導體存儲器元件包括EEPROM和閃速存儲器裝置元件,其在一些實施例中包括包含電荷貯存區域的元件——諸如浮置柵極、傳導的納米粒子或電荷貯存電介質材料。
多個存儲器元件可以被配置為使得它們串聯連接或者使得每個元件可被獨立地訪問。以非限制性示例的方式,在NAND裝置包含串聯連接的存儲器元件(例如,包含電荷儲存區的裝置)。例如,NAND存儲器陣列可以被配置為使得陣列由多個存儲器串構成,其中每個串由共享單個位線并作為一組存取的多個存儲器元件構成。相反,存儲器元件可以被配置為使得每個元件可被獨立地訪問,(例如NOR存儲器陣列)。本領域技術人員應明白,NAND和NOR存儲器配置是示例性的,并且可以以其它方式配置存儲器元件。
半導體存儲器元件包括在單個裝置中,諸如位于相同的襯底(例如,半導體襯底)中和/或之上或在單個裸芯中的存儲器元件,可以以二維或三維的方式分布,(諸如二維(2D)存儲器陣列結構或三維(3D)存儲器陣列結構)。
在二維存儲器結構中,半導體存儲器元件被布置在單個平面或者單個存儲器裝置級中。典型地,在二維存儲器結構中,存儲器元件位于基本上平行于支撐存儲器元件的襯底的主表面地延伸的平面中(例如,在x-z方向平面中)。襯底可以是在其上放置存儲器元件的材料層和/或在其中形成存儲器元件的晶片,或者它可以是在存儲器元件形成之后附接到存儲器元件的載體襯底。作為非限制性示例,襯底可以包括諸如硅的半導體。
存儲器元件可以布置在有序的陣列中的單個存儲器裝置級中——諸如在多個行和/或列中。但是,如由本領域技術人員所理解的,存儲器元件以不規則或者非正交的配置布置。存儲器元件的每一個具有兩個或多個電極或接觸線,包括位線和字線。
三維存儲器陣列被組織為使得存儲器元件占據多個平面或多個裝置級,在三維中形成結構(即,在x、y和z方向中,其中y方向基本上垂直于襯底的主表面,并且x和z方向基本上平行于襯底的主表面)。
作為非限制性示例,三維存儲器陣列結構中的每個平面可以物理地位于二維中(一個存儲器級),其中多個二維存儲器級形成三維存儲器陣列結構。作為另一非限制性示例,三維存儲器陣列可以被物理地結構化為多個垂直的列(例如,基本上垂直地延伸到襯底的主表面的列,在y方向中),該列在每個列中具有多個元件并且從而具有橫跨存儲器裝置的幾個垂直堆疊的平面的元件。列可以布置在二維配置中(例如,在x-z平面中),從而產生存儲器元件的三維布置。本領域技術人員將理解,存儲器元件在三維中的其它配置也將組成三維存儲器陣列。
以非限制性示例的方式,在三維NAND存儲器陣列中,存儲器元件可以連接在一起以在單個平面中形成NAND串,有時被稱為水平(例如,x-z)平面以便于討論。可替換地,存儲器元件可以連接在一起以延伸通過多個平行的平面。可以設想其它三維配置,其中一些NAND串在存儲器元件的單個平面(有時被稱為存儲器級)中包含存儲器元件,而其它串在延伸通過多個平行平面(有時被稱為平行存儲器級)的存儲器元件。三維存儲器陣列也可以設計在NOR配置中和在ReRAM配置中。
單片三維存儲器陣列是根據一系列制造操作在其中存儲器元件的多個平面(也被稱為多個存儲器級)形成在單個襯底之上和/或單個襯底中的陣列,該襯底諸如半導體晶片。在單片3D存儲器陣列中,材料層形成各個存儲器級——諸如最高的存儲器級,位于形成之下的存儲器級的材料層的頂上,但是在相同的單個襯底上。在一些實現方式中,單片3D存儲器陣列的鄰近存儲器級可選地共享至少一個材料層,而在其它實現方式中,鄰近的存儲器級具有將其分開的中間的材料層。
相反,二維存儲器陣列可以單獨地形成并且然后以混合的方式集成在一起以形成非單片3D存儲器裝置。例如,堆疊的存儲器已經通過在單獨的襯底上形成2D存儲器級并且在相互之上集成形成的2D存儲器級而構造。每個2D存儲器級的襯底可以在將其集成到3D存儲器裝置中之前變薄或者移除。由于個體存儲器級形成單獨的襯底上,產生的3D存儲器陣列不是單片三維存儲器陣列。
對于存儲器元件的適當操作以及與存儲器元件的適當通信通常需要相關聯的電路。該相關聯的電路可以在相同的襯底上作為存儲器陣列和/或在單獨的襯底上。作為非限制性示例,存儲器裝置可以具有用在存儲器元件的編程和讀取中的驅動器電路和控制電路。
此外,從2D存儲器陣列和3D存儲器陣列(單片或混合)中選擇的多于一個存儲器陣列可以單獨地形成并且然后封裝在一起以形成堆疊的芯片存儲器裝置。堆疊的芯片存儲器裝置包括多個平面或存儲器裝置的層,有時被稱為存儲器級。
術語“三維存儲器裝置”(或3D存儲器裝置)在這里被定義為意味著具有存儲器元件的多個層或多個級(例如,有時被稱為多個存儲器級)的存儲器裝置,包括以下的任一個:具有單片或非單片3D存儲器陣列的存儲器裝置,其一些非限制性示例如上所述;或兩個或多個2D和/或3D存儲器裝置,被封裝在一起以形成堆疊的芯片存儲器裝置,其一些非限制性示例如上所述。
本領域技術人員應認識到本發明或者這里所描述并要求的發明不限于這里所述的二維和三維示例性結構,而是占優適用于實現本發明或者在這里所述的發明以及由本領域技術人員理解的所有相關的存儲器結構。
應理解的是,盡管可能在這里使用術語“第一”、“第二”等描述各種元件,這些元件不應被這些術語限制。這些術語僅被用于將一個元件與另一區分。例如,第一接觸可以被叫做第二接觸,并且類似地,第二接觸可以被叫做第一接觸,而只要“第一接觸”的所有出現被一致地重新命名并且“第二接觸”所有出現被一致地重新命名,其改變說明的含義。第一接觸和第二接觸都是接觸,但是它們不是相同的接觸。
這里所使用的術語僅是為了描述特定實施例的目的并且不意欲限制權利要求。如在實施例的描述以及所附權利要求中所使用的,單數形式的“一”、“一個”和“所述”也意欲包括復數形式,除非上下文明確地另有說明。還應理解的是,如這里所使用的術語“和/或”指代并且包含相關聯的列出的項目的一個或多個的任何以及所有可能的組合。將進一步理解的是,術語“包含”和/或“包括”——當用在本說明書中時——指明出現所述的特征、整數、步驟、操作、元件和/或組件,但是不排除其它特征、整數、步驟、操作、元件、組件和/或其組合的一個或多個的出現或增加。
如這里所使用的,取決于上下文,術語“如果”可以解釋為意思是“當所述的先決條件為真時”或“在所述的先決條件為真時”或“響應于確定所述的先決條件為真”或“根據所述的先決條件為真的確定”或“響應于檢測到所述的先決條件為真”。類似地,取決于上下文,短語“如果確定[所述的先決條件為真]”或“如果[所述的先決條件為真]”或“當[所述的先決條件為真]時”可以解釋為意思是“當確定所述的先決條件為真時”或“響應于確定所述的先決條件為真”或“根據所述的先決條件為真的確定”或“在檢測到所述的先決條件為真時”或“響應于檢測到所述的先決條件為真”。
為了解釋的目的,已經參考特定實現方式描述了前述說明。但是,上述說明性討論不意欲是窮舉性的或者將權利要求限制到所公開的精確形式。鑒于上述教導,許多修改和變化是可能的。實現方式被選中并且描述以便于最好地解釋操作的原理和實際應用,以從而使本領域技術人員能夠實施。