專利名稱:用于動態(tài)控制非易失性存儲器中的操作的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及動態(tài)地控制非易失性存儲器(例如與非型(NAND)閃存)中的操作,以限制功率消耗。
背景技術(shù):
電子系統(tǒng)變得越來越復(fù)雜,并且包括越來越多的組件。同樣地,這些系統(tǒng)的功率需求被持續(xù)關(guān)注。特別地,由于一個系統(tǒng)中許多組件可能同時操作,所以系統(tǒng)將經(jīng)受功率或電流的峰值。當(dāng)各個系統(tǒng)組件并發(fā)地各自執(zhí)行高功率操作時,這種影響尤其明顯。關(guān)注功率消耗的系統(tǒng)的一個實(shí)例就是閃存系統(tǒng),其通常用于消費(fèi)性電子產(chǎn)品中的大容量存儲。在繁重的使用中,閃存系統(tǒng)可以經(jīng)歷高水平的功率事件,此處是指峰值功率事件。當(dāng)閃存中的每個管芯(die)被同時訪問時,峰值功率事件就可能發(fā)生。那些使用閃存系統(tǒng)的系統(tǒng)被設(shè)計成處理這樣的峰值功率事件(例如,維持充足的功率資源來滿足峰值功率事件的功率需求)。然而,峰值功率事件可能相對稀少,并且閃存系統(tǒng)的平均功率消耗大大小于峰值功耗。因此,結(jié)果是,即使高的功率消耗不總是必需的,這些系統(tǒng)仍被設(shè)計成具有高水平的功率儲備。
發(fā)明內(nèi)容
公開了用于非易失性存儲器(NVM)的限制功率消耗的系統(tǒng)和方法,其使用一隨時間分配許多并發(fā)NVM操作的功率限制方案。本發(fā)明提供了“電流消耗封頂(cap) “,其固定了 NVM電流消耗的上限,因此消除了峰值功率事件。在一實(shí)施例中,可以通過從多個系統(tǒng)來源中的至少一個來源接收適合作為調(diào)整電流閾值的因素使用的數(shù)據(jù),來限制NVM的功率消耗。該電流閾值可以小于NVM能消耗的峰值電流,并且可以基于接收的數(shù)據(jù)來調(diào)整電流閾值??梢允褂霉β氏拗品桨竵硐拗票粓?zhí)行的并發(fā)NVM操作的數(shù)量,以致NVM的累積電流消耗不超過被調(diào)整的電流閾值。在一實(shí)施例中, 功率限制方案可以是一個反應(yīng)性的功率限制方案,其使用由NVM提供的反饋數(shù)據(jù)來確定每個NVM操作何時完成。在另一個實(shí)施例中,功率限制方案可以是一個預(yù)測性的功率限制方案,其預(yù)測每個NVM操作將花多長時間完成。
本發(fā)明的上述及其它方面和優(yōu)勢在參考附圖的以下詳細(xì)說明上將變得更加明顯, 其中相同的參考特征在全文中指代相同的部件,并且其中圖1是根據(jù)本發(fā)明的各個實(shí)施例配置的電子設(shè)備的示意圖。圖2A是根據(jù)本發(fā)明的各個實(shí)施例配置的包括主機(jī)處理器和管理(managed)非易失性存儲器封裝的示例性系統(tǒng)的示意圖。圖2B是根據(jù)本發(fā)明的各個實(shí)施例配置的包括主機(jī)處理器和原始非易失性存儲器封裝的示例性系統(tǒng)的示意圖。
圖2C是根據(jù)本發(fā)明的各個實(shí)施例的示例NMV封裝的電流消耗輪廓圖的圖。圖3是根據(jù)本發(fā)明的各個實(shí)施例更詳細(xì)地示出了 NVM封裝的一部分的示例性的框圖。圖4A顯示了正被現(xiàn)有技術(shù)系統(tǒng)所控制的NVM封裝中所有管芯的示例性的累積電流消耗輪廓圖。圖4B顯示了正被根據(jù)本發(fā)明各個實(shí)施例的系統(tǒng)所控制的NVM封裝中所有管芯的示例性的累積電流消耗輪廓圖。圖5顯示了根據(jù)本發(fā)明的各個實(shí)施例的功率水平選擇電路的示例性的框圖。圖6-12顯示了根據(jù)本發(fā)明的各個實(shí)施例與功率限制方案相關(guān)的若干時序圖和流程圖。
具體實(shí)施例方式圖1是電子設(shè)備100的示意圖。在一些實(shí)施例中,電子設(shè)備100可以是或可以包括便攜式媒體播放器(例如,位于加利福尼亞州的Cupertino的Apple Inc.制造的iPod )、 蜂窩電話(例如Apple Inc.制造的iPhone )、口袋型個人計算機(jī)、個人數(shù)字助理(“PDA”)、 臺式計算機(jī)、筆記本型計算機(jī)和任何其它合適類型的電子設(shè)備。電子設(shè)備100可以包括片上系統(tǒng)(“SoC”)110、非易失性存儲器(“NVM”)120和功率水平選擇電路130。非易失性存儲器120可以包括基于浮柵或電荷捕獲技術(shù)的與非型閃存、或非(NOR)型閃存、可擦可編程只讀存儲器(“EPR0M”)、電可擦可編程只讀存儲器 (“EEPR0M”)、鐵電隨機(jī)存取存儲器(“FRAM”)、磁阻隨機(jī)存取存儲器(“MRAM”)、任何其它已知的或?qū)眍愋偷姆且资源鎯ζ骷夹g(shù)或者是它們的任何組合。NVM存儲器120可以包括一個或多個管芯,它們可以被組織成作為最小擦除單位的“塊”,并且被進(jìn)一步組織成作為最小可編程可讀單位的“頁”。在一些實(shí)施例中,NVM 120可以包括多個集成電路,其中, 每個集成電路可以具有多個塊。來源于相應(yīng)集成電路的塊(例如,具有相同位置或塊編號的塊)可以形成“超級塊”??梢允褂梦锢淼刂?例如,物理頁地址或物理塊地址)來尋址 NVM 120的每個存儲器位置(例如,頁或塊)。功率水平選擇電路130可以設(shè)置一個功率水平,該功率水平限制了 NVM 120所消耗的最大功率量或電流量。功率水平可以包括電壓水平、電流水平、或兩者。電路130可操作為基于任何數(shù)量的因素選擇功率水平。這些因素可以包括,例如,可從功率源獲得的功率 (例如,可獲得的電池功率)、設(shè)備100中各個組件(如SoC控制電路112)所要求的功率負(fù)載、以及設(shè)備100的溫度。雖然電路130被示出為示例性地與SoC 110和NVM 120相連接, 但應(yīng)理解電路130可以與設(shè)備100的任何組件相連接。以下關(guān)于圖5的說明提供電路130 的其它細(xì)節(jié)。和后面的圖和各個公開的實(shí)施例一樣,圖1有時可使用閃存技術(shù)的術(shù)語來描述。 但是,這并不意味是限制性的,并且任何其它類型的非易失性存儲器可以被替代實(shí)現(xiàn)。電子設(shè)備100可以包括其它組件,諸如圖1中為防止使附圖過分復(fù)雜化而沒有描述的電源或任何用戶輸入或輸出組件。片上系統(tǒng)110可以包括SoC控制電路112、存儲器114和NVM接口 118。SoC控制電路112可以控制SoC 110和SoC 110或設(shè)備100的其它組件的一般操作和功能。例如,響應(yīng)于用戶輸入和/或應(yīng)用或操作系統(tǒng)的指令,SoC控制電路112可以把讀或?qū)懙拿畎l(fā)給NVM接口 118,來從NVM 120獲取數(shù)據(jù)或者將數(shù)據(jù)存儲在NVM 120中。為清楚起見,SoC 控制電路112可能請求存儲或者獲取的數(shù)據(jù)可以被稱作“用戶數(shù)據(jù)”,雖然數(shù)據(jù)可能不直接與用戶或用戶應(yīng)用相關(guān)。此外,用戶數(shù)據(jù)可以是由SoC控制電路112產(chǎn)生或獲取的任何合適的數(shù)字信息序列(例如,通過應(yīng)用或操作系統(tǒng))。SoC控制電路112可以包括硬件、軟件和固件的任何組合,以及可操作以驅(qū)動電子設(shè)備100的功能的任何組件、電路或邏輯。例如,SoC控制電路112可以包括一個或多個在存儲于NVM 120或存儲器114中的軟件/固件控制下操作的處理器。存儲器114可以包括任何合適類型的易失性或非易失性存儲器,例如,動態(tài)隨機(jī)存取存儲器(“DRAM”)、同步動態(tài)隨機(jī)存取存儲器(“SDRAM”)、雙數(shù)據(jù)率(“DDR”)RAM、高速緩存存儲器、只讀存儲器(“ROM”),或它們的任何組合。存儲器114可以包括數(shù)據(jù)源,其可以臨時存儲用戶數(shù)據(jù)以供編程到非易失性存儲器120中或者從其讀取。在一些實(shí)施例中,存儲器114可以充當(dāng)被實(shí)現(xiàn)為SoC控制電路112的一部分的任何處理器的主存儲器。NVM接口 118可以包括被配置為充當(dāng)SoC控制電路112和NVM 120之間的接口或驅(qū)動器的任何硬件、軟件和/或固件的合適組合。對于包含在NVM接口 118中的任何軟件模塊,相應(yīng)程序代碼可以存儲在NVM 120或存儲器114中。NVM接口 118可以完成各種功能,其允許SoC控制電路112訪問NVM 120及管理 NVM 120的存儲器位置(例如,頁、塊、超級塊、集成電路)以及存儲在其中的數(shù)據(jù)(例如,用戶數(shù)據(jù))。例如,NVM接口 118可以解釋來自SoC控制電路112的讀或?qū)懨?,?zhí)行損耗均衡,以及產(chǎn)生與NVM 120的總線協(xié)議相兼容的讀和編程指令。雖然NVM接口 118和SoC控制電路112被示出為獨(dú)立的模塊,但這僅為了簡化發(fā)明實(shí)施例的描述。應(yīng)當(dāng)理解,這些模塊可以共享硬件組件、軟件組件、或兩者。例如,作為 SoC控制電路112的一部分來實(shí)施的處理器可以為NVM接口 118執(zhí)行基于軟件的存儲器驅(qū)動器。因此,SoC控制電路112和NVM接口 118的部分有時候共同被稱為“控制電路”。圖1示例了一電子設(shè)備,其中,NVM 120可以不具有其自己的控制器。在其它實(shí)施例中,電子設(shè)備100可以包括目標(biāo)設(shè)備,例如,閃存或SD卡,其包括NVM 120和NVM接口 118 的一些部分或全部(例如,以下討論的翻譯層)。在這些實(shí)施例中,SoC 110或SoC控制電路112可以充當(dāng)目標(biāo)設(shè)備的主機(jī)控制器。例如,作為主機(jī)控制器,SoC 110可以向目標(biāo)設(shè)備發(fā)出讀和寫請求。圖2A和2B是系統(tǒng)的示意圖,其是圖1的實(shí)施例100的各種實(shí)施例的例子。首先來看圖2A,系統(tǒng)200可以包括主機(jī)處理器210以及至少一個非易失性存儲器(“NVM”) 封裝220。主機(jī)處理器210和可選的NVM封裝220可以在任何合適的主機(jī)設(shè)備或系統(tǒng)中實(shí)現(xiàn),所述合適的主機(jī)設(shè)備或系統(tǒng)例如像便攜式媒體播放器(例如,位于加利福尼亞州的 Cupertino 的 Apple Inc.制造的 iPod )、蜂窩電話(例如,Apple Inc.制造的 iPhone )、 口袋型個人計算機(jī)、個人數(shù)字助理(“PDA”)、臺式計算機(jī)或筆記本型計算機(jī)。主機(jī)處理器210可以包括一個或多個目前可獲得或?qū)肀婚_發(fā)的處理器或微處理器。替代性地成附加地,主機(jī)處理器210可以包括能夠控制存儲器系統(tǒng)200的各種操作的任何其它組件或電路(例如,專用集成電路(“ASIC”)),或者與其它組件或電路共同工作。在基于處理器的實(shí)現(xiàn)中,主機(jī)處理器210可以運(yùn)行固件和軟件程序,這些程序被裝載到在主機(jī)上實(shí)現(xiàn)(未示出)的存儲器之中。存儲器可以包括任何合適類型的易失性存儲器 (例如,高速緩存存儲器或隨機(jī)存取存儲器(“RAM”),諸如雙數(shù)據(jù)率(“DDR”)RAM或靜態(tài) RAM( “SRAM”))。主機(jī)處理器210可以運(yùn)行NVM驅(qū)動器212,其可以提供特定廠商的指令和 /或特定技術(shù)的指令,這些指令能使主機(jī)處理器210為非易失性存儲器封裝220執(zhí)行各種存儲器管理和訪問功能。主機(jī)處理器210可以執(zhí)行(圖1中的)SoC 110的任何功能。主機(jī)處理器210還可以運(yùn)行功率封頂模塊214,其可以作為NVM驅(qū)動器212的一部分來執(zhí)行。功率封頂模塊214可以作為NVM封裝220的功耗控制器來操作,并且可以實(shí)現(xiàn)根據(jù)本發(fā)明的各個實(shí)施例的各個功率限制方案。通過控制被同時訪問的管芯224的數(shù)量, 這些功率限制方案可以使NVM封裝220所消耗的功率封頂。以下將更詳細(xì)地討論根據(jù)本發(fā)明的實(shí)施例的各個功率限制方案。NVM封裝220可以是球柵陣列(“BGA”)封裝或其它合適類型的集成電路(“IC”) 封裝。NVM封裝220可以是管理的NVM封裝。特別地,NVM封裝220可以包括與任何合適數(shù)量的NVM管芯2 相耦接的NVM控制器222。NVM控制器222可以包括處理器、微處理器或基于硬件的組件(例如,ASIC)的任何合適的組合,并且可以包括與主機(jī)處理器210相同的組件或不同的組件。NVM控制器222可以與NVM驅(qū)動器212 —起共享管理和/或訪問NVM 管芯224的物理存儲器位置的職能??商鎿Q地,NVM控制器222實(shí)質(zhì)上可以為NVM管芯2 執(zhí)行所有管理和訪問功能。因此,“管理NVM”可以稱作為一個包含控制器(例如,NVM控制器22 的存儲器設(shè)備或封裝,該控制器被配置成為非易失性存儲器(例如,NVM管芯224) 執(zhí)行至少一個存儲器管理功能。由NVM控制器222和/或主機(jī)處理器210所執(zhí)行的用于 NVM管芯2M的存儲器管理和訪問功能可以包括發(fā)出讀、寫或擦除指令,并執(zhí)行損耗均衡、 壞塊管理、垃圾回收、邏輯到物理地址映像、SLC或MLC編程判決,應(yīng)用錯誤校正或檢測以及用于安裝程序操作的數(shù)據(jù)隊(duì)列。NVM封裝220可以包括功率封頂模塊223,其可以被NVM控制器222運(yùn)行。功率封頂模塊223可以具有與功率封頂模塊214相同的操作能力。在一些實(shí)施例中,功率封頂模塊214和223兩者可以都被包括在系統(tǒng)200中。在本實(shí)施例中,根據(jù)本發(fā)明的一個實(shí)施例, 模塊214和223可以一起工作來實(shí)現(xiàn)功率限制方案。例如,模塊214可以作為主體運(yùn)行,且模塊223可以作為從屬運(yùn)行。在另一實(shí)施例中,系統(tǒng)200可以包括功率封頂模塊214,但不包括功率封頂模塊223。而在另一實(shí)施例中,系統(tǒng)200可以包括功率封頂模塊223,但不包括功率封頂模塊214。當(dāng)存儲器系統(tǒng)200斷電時,可以使用NVM管芯2M來存儲需要保留的信息。正如此處所使用的,且基于上下文,“非易失性存儲器”可以是存儲數(shù)據(jù)的NVM管芯,或者可以是包含NVM管芯的NVM封裝。現(xiàn)在參考圖2B,示出了系統(tǒng)250的示意圖,它是圖1的電子設(shè)備100的另一實(shí)施例的一個例子。系統(tǒng)250可以具有以上描述的與圖2A的系統(tǒng)200相關(guān)的任何特征和功能。 特別地,圖2B中描述的任何組件可以具有圖2A中相同名字組件的任何特征和功能,反之亦然。系統(tǒng)250可以包括主機(jī)處理器260和非易失性存儲器封裝270。和圖2A的存儲器系統(tǒng)200不同,NVM封裝270不包括嵌入的NVM控制器,因此NVM管芯274可以完全被主機(jī)處理器260管理(例如,經(jīng)由NVM驅(qū)動器沈幻。因此,非易失性存儲器封裝270可以稱作是“原始NVM”?!霸糔VM”可以是指被在NVM封裝的外部實(shí)現(xiàn)的主機(jī)控制器或處理器(例如,主機(jī)處理器沈0)完全管理的存儲器設(shè)備或封裝。主機(jī)處理器260可以執(zhí)行以上討論的與圖2A的主機(jī)處理器210和NVM控制器222相關(guān)的任何其它存儲器管理和訪問功能。另外,主機(jī)處理器260可以執(zhí)行(圖1的)SoC 110的任何功能。主機(jī)處理器260還可以運(yùn)行功率封頂模塊沈4,其可以作為NVM驅(qū)動器262的一部分來實(shí)現(xiàn)。功率封頂模塊264可以具有與(圖2A的)功率封頂模塊214相同的操作性能。繼續(xù)參考圖2A和圖2B兩者,NVM控制器222 (圖2A)和主機(jī)處理器260 (例如,經(jīng)由NVM驅(qū)動器沈2)(圖2B)可以各自體現(xiàn)以上討論的與圖1相關(guān)的SoC 110的特征和功能, 并且NVM管芯2M和274可以體現(xiàn)各自的功耗輪廓圖,該功耗輪廓圖可以使用本發(fā)明的各個實(shí)施例來確定。特別地,NVM管芯224(圖2A)和274(圖2B)可以分別具有峰值電流輪廓圖,其中,當(dāng)管芯在執(zhí)行其最強(qiáng)耗能的操作時產(chǎn)生最高的峰值。在閃存實(shí)施例中,這樣的強(qiáng)耗能操作的一個例子是傳感操作(例如,電流傳感操作),當(dāng)讀取存儲在存儲器單元中的數(shù)據(jù)時,可使用該傳感操作。例如,當(dāng)驗(yàn)證數(shù)據(jù)在編程之后被正確地存儲時,響應(yīng)于來自主機(jī)處理器和/或NVM控制器的讀取請求,可以執(zhí)行這樣的傳感操作。圖2C示出了示例性的電流消耗輪廓圖四0。電流消耗輪廓圖290給出了 NVM管芯(例如,NVM管芯2 或274中的一個)在驗(yàn)證型傳感操作期間的電流消耗的例子。具有若干峰值,包括峰值292和四4,電流消耗輪廓圖290示例了驗(yàn)證型傳感操作可以是多尖銳的峰值??梢蕴貏e關(guān)注這些驗(yàn)證型傳感操作,因?yàn)檫@些操作很可能同時跨越多個NVM管芯(例如,由于跨越多個管芯采用并行寫操作)出現(xiàn)。因此,如果不被NVM控制器222(圖 2A)或主機(jī)處理器沈0(圖2B)管理,則不同的NVM管芯的峰值可能重疊,且整個的電流總和可能將會高得不可接受。這個情況可伴隨其它類型的強(qiáng)耗能操作(例如擦除和編程操作) 發(fā)生。因此,當(dāng)管芯分別被同時訪問時(例如,通過編程、讀取、擦除或它們的組合),累積的電流消耗水平輪廓圖會比單個管芯要顯著高。圖3是依據(jù)本發(fā)明的實(shí)施例顯示NVM封裝的一部分的更多細(xì)節(jié)的示例性的框圖。 圖3顯示了在寫操作期間,數(shù)據(jù)如何從數(shù)據(jù)源310傳送到緩沖器320中,然后從緩沖器320 傳送到多個頁334中的一頁,頁334位于管芯330的塊332中。寫操作可以包括兩個部分 (1)緩沖操作,即,數(shù)據(jù)從數(shù)據(jù)源310到緩沖器320之中的傳送;和(2)編程操作,S卩,數(shù)據(jù)從緩沖器320到塊310之中的傳送。這兩個部分都可以具有時間組件和功耗組件。緩沖操作和完整執(zhí)行該緩沖操作所需的時間在此處稱作是Tbuff。編程操作和完整執(zhí)行該編程操作所需的時間在此處稱作是Tprog。寫操作的緩沖和編程部分示例在時序圖350中。圖350示出了一個寫操作,其開始時間為to,結(jié)束時間為tl。緩沖部分可以占用整個寫操作的相對較小的一部分,其開始于 to,結(jié)束于ti ;而編程部分可以占用寫操作的相對較大的一部分,其開始于ti,結(jié)束于tl。 圖表350還示例性地顯示了緩沖和編程部分的功率消耗。編程部分消耗了比緩沖部分大得多的功率。數(shù)據(jù)源310可以是表示任何數(shù)據(jù)來源的黑盒子。例如,數(shù)據(jù)源可以是數(shù)據(jù)總線,其向NVM封裝和從NVM封裝路由數(shù)據(jù)。數(shù)據(jù)源310可以從主機(jī)處理器接收數(shù)據(jù),主機(jī)處理器例如是圖2A和圖2B的主機(jī)處理器210或沈0。緩沖器320可以是任何合適的用于臨時存儲數(shù)據(jù)的結(jié)構(gòu)。例如,緩沖器320可以是寄存器??梢允褂镁彌_器320,因?yàn)樗芤员裙苄?30快得多的速率來接收和存儲數(shù)據(jù)。 因此,為了臨時和快速的存儲(在緩沖器320中),進(jìn)而為更多的數(shù)據(jù)傳輸空出數(shù)據(jù)線,緩沖器320使得NVM接口能夠向各個管芯派送數(shù)據(jù)。如果沒有緩沖器320,數(shù)據(jù)線將很繁忙直至所有數(shù)據(jù)被寫入管芯330。管芯330可以包括預(yù)定數(shù)量的物理塊332,且每個塊可以包括預(yù)定數(shù)量的頁334。 頁和塊表示管芯330之中存儲器單元的物理位置??梢允褂脤ぶ冯娐?未示出)來訪問頁或塊中的單元,該尋址電路與包含單元的NVM封裝相關(guān)。典型地,在任何給定的時間每個管芯只能有一個塊被訪問。在一些實(shí)施例中,一個管芯可以被分割成多個平面,其中,管芯的每個平面中的多個塊可以被同時訪問。在一些實(shí)施例中,來自兩個或更多個管芯的塊可以虛擬地連接在一起,以形成一個超級塊。作為超級塊而被虛擬連接的那些塊不需要位于每個管芯的相同行。實(shí)際上,可以從兩個或更多個管芯中隨機(jī)選擇多個塊來形成超級塊。在一些實(shí)施例中,可以從兩個或更多個平面中選擇多個塊,其中,每個平面中的多個塊可以被同時訪問。超級塊提供了操作的并行性,因此使得能夠在位于不同平面中的多個塊上并行地執(zhí)行編程、讀取和擦除操作。在另一實(shí)施例中,來自兩個或更多個管芯或平面的頁可以虛擬地連接在一起,以形成超級頁。 在NVM接口中被實(shí)現(xiàn)的翻譯層可以保持跟蹤超級塊或超級頁。反饋線340可以提供與管芯330和/或緩沖器320的操作相關(guān)的信息。例如,反饋線340可以提供反饋信息,諸如當(dāng)寫操作的緩沖部分和編程部分完成時,編程一頁所需的脈沖的數(shù)量、電壓信號、電壓范圍、或者與管芯300的操作相關(guān)的任何其它信息。應(yīng)理解, 寫操作的任何部分的時間和功率可以被分解給管芯、管芯區(qū)域、塊或頁(例如,較低的頁或較高的頁),并且任何這種信息都可以在反饋線340上提供。反饋線340中的信息可以被提供給NVM控制器(例如,NVM控制器22 和/或主機(jī)處理器,或者,更具體地,提供給功率封頂模塊??梢岳斫?,雖然圖3中討論的NVM操作與編程操作相關(guān),但是其它諸如讀取和擦除的NVM操作也可以展示類似的定時和功耗參數(shù)。例如,讀操作可以具有讀取部分和緩沖部分。讀取部分可以比緩沖部分消耗更多的功率,并且還可以需要更長的時間來執(zhí)行。圖4A示例性地顯示了被現(xiàn)有技術(shù)系統(tǒng)所控制的NVM封裝中所有管芯的累積電流消耗輪廓圖410。輪廓圖410是在一個不采用功率限制方案的系統(tǒng)中生成的。結(jié)果是,電流輪廓圖410可以包括峰值電流消耗的實(shí)例,正如峰值412和414所指示。因?yàn)檫@樣的現(xiàn)有技術(shù)系統(tǒng)允許峰值功率事件的發(fā)生,所以該系統(tǒng)必須被設(shè)計成能適應(yīng)這樣的事件。這為系統(tǒng)設(shè)置了不必要的設(shè)計束縛,從而強(qiáng)迫它處理到達(dá)峰值電流的NVM事件,并具有足夠地儲備功率來滿足峰值電流需求。此外,由于峰值電流事件相對稀少,故如圖所示,平均電流消耗在峰值電流之下。峰值電流和平均電流的這種差異將導(dǎo)致過度的電流開銷被分配給NVM 封裝。根據(jù)本發(fā)明的實(shí)施例克服了圖4A的缺陷。圖4B示例性地顯示了被根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)(例如,系統(tǒng)100、系統(tǒng)200或系統(tǒng)250)所控制的NVM封裝中所有管芯的累積電流消耗輪廓圖420。輪廓圖420是在一個使用功率限制或電流限制方案的系統(tǒng)中生成的。這個方案可以使電流消耗封頂,因此防止瞬間電流超過電流閾值。通過使電流封頂,不允許峰值422和4 瞬間消耗與若沒有電流閾值限制而將消耗的同樣多的電流。如圖所示,根據(jù)本發(fā)明的實(shí)施例,由于功率限制方案限制了并發(fā)NVM操作的數(shù)量,所以峰值422和4M可以變平。因此,將防止如果允許不受限制地操作則會超過該電流閾值的、具有并發(fā)操作負(fù)載的NVM事件像這樣被操作,并且將其隨時間分配,以確保電流消耗不會超出閾值。以下將結(jié)合圖6-12的說明更詳細(xì)地討論限制 NVM事件并發(fā)操作的技術(shù)。使用功率限制方案可以減少NVM封裝上的功率開銷負(fù)擔(dān)。這可使得系統(tǒng)能夠向系統(tǒng)中的其它組件分配功率資源,因?yàn)楸还β氏拗品桨冈O(shè)置的電流閾值能夠設(shè)置NVM封裝所牽引的最大功率。在一些實(shí)施例中,功率限制方案可以基于各個系統(tǒng)參數(shù)來改變電流閾值。 例如,如果諸如處理器的系統(tǒng)中的其它組件相對閑置,則可以增加NVM封裝的電流閾值,以允許附加的并發(fā)NVM操作。當(dāng)其它組件變得相對活躍時,則可以減少NVM的電流閾值。圖5顯示了功率水平選擇電路510的示例性框圖,功率水平選擇電路510操作成基于從功率供應(yīng)監(jiān)視電路512、負(fù)載監(jiān)視電路514、溫度監(jiān)視電路516接收的輸入以及NVM 功率消耗數(shù)據(jù)518,來提供和動態(tài)改變電流閾值。選擇電路510可以向NVM接口(例如,NVM 接口 118)或NVM封裝(例如,NVM120)提供電流閾值。功率供應(yīng)監(jiān)視電路512可以監(jiān)視系統(tǒng)內(nèi)可獲得的功率水平,并可以向功率水平選擇電路510提供其數(shù)據(jù)。例如,電路512可以監(jiān)視電池的能量水平。作為另一個例子,電路 512可以檢測系統(tǒng)是否正從如筆記本電腦或變壓器(power brick)的外部源接收電力。而且,當(dāng)系統(tǒng)正在接收外部電力時,電路可以向功率水平選擇電路指示有多少能量正在被接收(例如,從筆記本電腦接收500毫安或從變壓器接收1安培)。負(fù)載監(jiān)視電路514可以監(jiān)視系統(tǒng)內(nèi)各個組件(例如,處理器、存儲器、背光、LCD、用戶接口等)的實(shí)時的負(fù)載。電路 514還可以基于,例如,系統(tǒng)內(nèi)存在的命令隊(duì)列來預(yù)測組件的負(fù)載。溫度監(jiān)視電路516可以監(jiān)視系統(tǒng)的溫度。NVM功率消耗數(shù)據(jù)518可以指定有多少功率可以被NVM封裝消耗。NVM封裝的功率消耗解決從相對具體(例如,較高的頁的功率或電流消耗)到相對一般(例如,特定管芯的功率消耗)可以不同。使用這個數(shù)據(jù),選擇電路510可以確定對于給定的電流閾值,可以執(zhí)行多少個并發(fā)NVM操作。例如,數(shù)據(jù)518可以來源于NVM封裝廠商,或者來源于確定NVM 封裝功率消耗的測試。選擇電路510可以均衡其接收的數(shù)據(jù)并由此設(shè)置電流閾值。例如,如果供應(yīng)的功率位于預(yù)定的功率閾值之上,系統(tǒng)負(fù)載位于預(yù)定的負(fù)載閾值之下,且溫度位于預(yù)定的溫度閾值之下,則電路510可以選擇相對較高的電流閾值。作為另一個例子,如果供應(yīng)的功率位于預(yù)定的功率閾值之下,系統(tǒng)負(fù)載位于預(yù)定的負(fù)載閾值之上,且溫度位于預(yù)定的溫度閾值之下,則電路510可以選擇一個相對較低的電流閾值??梢岳斫?,這些例子僅僅是示例性的,并且電路510可以接收此處討論以外的額外輸入,這些輸入作為動態(tài)改變電流閾值的因素?,F(xiàn)在參考圖6-12,討論了限制NVM操作中功率消耗的若干技術(shù)。正如以上圖3中剛剛討論的,每種技術(shù)都與緩沖的時間和編程的時間相關(guān)。緩沖的時間此處將稱之為Tbuff, 編程的時間此處將稱之為Tprog。有些圖將包括對編號的管芯的參照。Tbuff和Tprog可以附上管芯編號(例如,Tprogl)來指示Tbuff和Tprog操作與哪個管芯相關(guān)聯(lián)。例如, Tprogl指的是管芯編號1的編程的時間。圖6顯示了示例性的理想化的沒有電流限制的時序圖610。時序圖610顯示了用號
11碼1和2標(biāo)注的兩個管芯的Tbuff和Tprog??梢岳斫猓喙苄究梢员伙@示,但為了避免使圖過分復(fù)雜化而被省略。如圖所示,NVM事件開始于Tbuffl,在它完成時,Tprogl和TbufT2 立即開始。在!"buff〗完成后,Tprog2開始。此時,電流消耗處于最高水平,因?yàn)門progl和 Tprog2兩者在進(jìn)行并發(fā)操作。當(dāng)Tprogl完成時,因?yàn)橹挥蠺prog2正被執(zhí)行,所以電流消耗下降。時序圖610是理想化的,因?yàn)樵贜VM操作上沒有限制電流閾值,因此允許管芯1和2 兩者的電流消耗堆積。依照本發(fā)明的實(shí)施例,圖7顯示了示例性的電流限制時序圖710。時序圖710可以固守一個電流閾值,從而有效地將并發(fā)管芯操作限制為僅一個管芯。如圖所示,NVM事件開始于Tbuffl,在它完成時,Tprogl和Tbuff2立即開始。與圖6相反,Tprog2直至Tbuff2 和Tprogl完成才開始。因此,延遲Tprog2的開始直至Tprogl完成,限制了電流消耗,從而固守了電流閾值。為比較起見,提供了(在理想化模式中操作的)Tprog2的虛線表示。圖8A顯示了依照本發(fā)明的實(shí)施例根據(jù)反應(yīng)性的功率限制方案來操作的示例性電流限制的時序圖810。在這個方案中,假設(shè)Tprog操作實(shí)際上在Tbuff操作完成后立即開始。這個方案使用反饋數(shù)據(jù)來為每個管芯控制TbufT和Tprog操作的派送(例如,開始)。 例如,反饋數(shù)據(jù)可以指定給定管芯的Tprog何時完成。因此,對于給定的電流閾值,知道有多少個并發(fā)的Tprog操作能被執(zhí)行。使用這個知識和反饋數(shù)據(jù),反應(yīng)性的功率限制方案可以為電流閾值派送盡可能多的并發(fā)操作。時序圖810開始于Hxiffl,接著是Tprogl。在Tprogl完成后,指示Tprogl完成的反饋數(shù)據(jù)被提供。在接收到該反饋數(shù)據(jù)后,反應(yīng)性的功率限制方案可以開始Tbuff2,其立即跟著Tprog2。雖然圖中未顯示,但在Tprogl完成后到Tbuff2的開始會有等待時間,這是由于具有與接收和處理反饋數(shù)據(jù)所花的時間相關(guān)聯(lián)的任何延遲。圖8B顯示了依照本發(fā)明的實(shí)施例的、可以被反應(yīng)性的功率限制方案執(zhí)行的示例性步驟流程圖。在步驟820處開始,接收電流閾值。提供反饋循環(huán),以顯示電流閾值可以基于系統(tǒng)中的各種因素改變。當(dāng)接收到不同的電流閾值時,功率限制方案可以考慮這種差異, 并按照需要進(jìn)行適當(dāng)?shù)母淖儭T诓襟E830,基于接收到的電流閾值確定可執(zhí)行的并發(fā)NVM操作的最大數(shù)量,即, Cmax0在步驟840,超越極限的排隊(duì)的并發(fā)NVM操作被接收,其并發(fā)操作將超過電流閾值。 在步驟850,第一組排隊(duì)的NVM操作被派送,第一組包括了不超過Cmax的操作數(shù)量。第一組可以考慮任何現(xiàn)有的被派送的那些還未報告Tprog完成的NVM。在步驟860,Tprog完成的反饋被監(jiān)視。正如步驟870中所指示,在檢測到一個Tprog已完成時,可以派送另一個排隊(duì)的NVM操作。在步驟880,確定是否存在任何附加的排隊(duì)NVM操作。如果確定為“是”,則過程可以循環(huán)回到步驟860??梢岳斫?,附加的NVM操作可以被接收,從而可以被添加到超過極限的排隊(duì)的NVM操作之中,由此進(jìn)一步保持了限制并發(fā)操作數(shù)量的需求。如果確定為“否”,則過程可以循環(huán)回到步驟820。圖9顯示了依照本發(fā)明的實(shí)施例的、根據(jù)流水線的反應(yīng)性的功率限制方案操作的示例性電流限制時序圖910。除了 Tbuff操作可以被流水線化外,這個方案和以上所討論的與圖8A和8B相關(guān)的反應(yīng)性的功率限制方案類似。然而,在TbufT操作完成后,Tprog操作不會緊接著立即自動開始。通過消除在其相應(yīng)的Tprog操作之前馬上立即執(zhí)行Tbuff操作的需求,這個方案可以增加NVM操作的吞吐量。也就是說,可以在第一個管芯的Tprog操作之前或期間執(zhí)行第二個管芯的TbufT操作。時序圖910開始于Tbuff 1,在Tbuffl完成后,Tprogl和Tbuff2都可以開始。在 Tprogl完成之前TbufT2完成其操作,但是流水線反應(yīng)性的方案不允許Tpr0g2開始直至接收到指示Tprogl已完成的反饋。在另一實(shí)施例中,Tbuffl和Tbuff2可以一起開始,但是 Tprog2不會開始直至Tprogl完成。圖IOA和IlA顯示了依照本發(fā)明的一個實(shí)施例的、根據(jù)預(yù)測性的功率限制方案來操作的示例性的有電流限制時序圖。預(yù)測性的功率限制方案可以預(yù)測每個NVM操作要花多長時間完成;并且因?yàn)橹缹τ诮o定的電流閾值可以執(zhí)行多少個并發(fā)Tprog操作,所以預(yù)測性的功率限制方案可以操作為派送盡可能多的并發(fā)操作。與反應(yīng)性的功率限制方案相反,預(yù)測性的功率限制方案不需要依靠反饋來確定下一個NVM操作何時能被派送。正如其名稱所暗示的,預(yù)測性的功率限制預(yù)測給定的NVM操作將何時結(jié)束,且在與該預(yù)測相關(guān)的時間段結(jié)束后派送NVM操作。NVM操作的預(yù)測可以包括兩個部分(1)緩沖時間預(yù)測,即Tbuff(p) ; (2)編程時間預(yù)測,即Tprog(ρ)。Tbuff(p)和Tprog(ρ)是實(shí)際的Tbuff和Tprog操作實(shí)際上花費(fèi)多長時間的預(yù)測。Tbuff(p)和Tpr0g(p)的選擇可以在保守型和進(jìn)取型之間有所不同。在其它實(shí)施例中,可以選擇特定上下文的預(yù)測(例如,用于編程較高頁的Tpr0g(p)可以比編程較低頁的要高)。而在另一實(shí)施例中,可以實(shí)現(xiàn)使用預(yù)測和反饋信息的混合方法?,F(xiàn)在參考圖10A,顯示了依照本發(fā)明的實(shí)施例的、根據(jù)保守的預(yù)測性的功率限制方案來操作的示例性電流限制時序圖1010。在一個實(shí)施例中,保守型的預(yù)測能夠確保對每個 NVM操作有充足的時間被分配,以致能相當(dāng)確信實(shí)際的Tbuff和Tprog時間比Tbuff (ρ)和 Tprog(ρ)要少。在另一實(shí)施例中,可以選擇保守型的預(yù)測,以確保Tbuff (ρ)大于Tprog。這些方法能夠提供安全網(wǎng)以防止,例如,Tprog的意外的延遲,但是要以預(yù)測比完成操作所實(shí)際需要的時間更多的時間為代價。因此,存在可減少并發(fā)NVM操作的吞吐量的預(yù)測開銷時間的潛在風(fēng)險。時序圖1010為兩個管芯顯示了預(yù)測性的定時參數(shù),并且由于選擇了保守型的預(yù)測性參數(shù),所以可做出假設(shè)=Tbuff完成要花比Tprog更長的時間。而實(shí)際上,相反的是正確的;Tprog通常要花比Tbuff更長的時間來完成。如圖所示,Tbuff(pl)和Tbuff (p2)被分配了比Tprog(pl)和Tprog(p2)更大的時間來完成?,F(xiàn)在參考圖IOA和圖10B,時序圖 1020顯示了兩個管芯根據(jù)保守的預(yù)測性的功率限制方案操作的實(shí)際定時參數(shù)。Tprog2的開始與Tbuff (p2)的完成斷開,但與Tprogl的完成不斷開。因此,通過確保Tbuff (p2)比 Tprogl更大,就沒有Tprogl和Tprog2之間的重疊,從而防止了 NVM操作的不期望的并發(fā)操作。圖IOC顯示了依照本發(fā)明的實(shí)施例的、實(shí)現(xiàn)保守型的預(yù)測性功率限制方案可采用的示例性步驟流程圖。在步驟1022開始,接收電流閾值。提供反饋循環(huán)以顯示電流閾值可以基于系統(tǒng)中的各種因素而改變。當(dāng)接收到不同的電流閾值時,預(yù)測性的功率限制方案可應(yīng)用與不同電流閾值相關(guān)的任何限制。在步驟1030,基于接收到的電流閾值確定可執(zhí)行的并發(fā)NVM操作最大數(shù)量,即,Cmax0在步驟1040,預(yù)測性的方案為NVM操作選擇預(yù)測性的定時參數(shù)。這些參數(shù)可以包括Tbuff (ρ)和Tprog (ρ),且可以統(tǒng)一地應(yīng)用到所有的NVM操作。例如,在一個實(shí)施例中, Tbuff (ρ)的持續(xù)時間可以比Tpr0g(p)的持續(xù)時間更大。為預(yù)測性的定時參數(shù)選擇的值可以源于任何合適的來源。例如,這些參數(shù)可以基于NVM封裝廠商說明書、Tprog和/或TbufT 的平均持續(xù)時間、或測試數(shù)據(jù)。在一些實(shí)施例中,為Tbuff(p)和Tpr0g(p)選擇的實(shí)際值可以基于每個NVM操作所要求的最大持續(xù)時間。與基于這些NVM操作的平均持續(xù)時間選擇實(shí)際值的方法相反,使用Tbuff (ρ)和Tpr0g(p)的最大持續(xù)時間可以防止先前派送的操作在下一個操作開始之前還沒有完成的情況。在步驟1045,超過極限的排隊(duì)的并發(fā)NVM操作被接收,如果允許所有同時操作,則其并發(fā)操作將超過電流閾值。為討論的簡單起見,假設(shè)排隊(duì)的NVM操作被接收,且至少一個 Tprog操作處在進(jìn)程中。在步驟1050,確定有多少個排隊(duì)的NVM操作能被派送,以致被派送的集合不會超過Cmax。該確定可以考慮任何在先被派送但仍然在預(yù)測性的定時參數(shù)(如 Tbuff(p))之內(nèi)的NVM操作。例如,假設(shè)對于選擇的電流閾值,可以執(zhí)行5個并發(fā)的NVM操作,并且一個在先被派送的NVM操作尚未完成,并且不推測其已完成,因?yàn)閷τ谠撛谙扰伤偷牟僮?,被預(yù)測的時間參數(shù)(例如,Tbuff (ρ))還未到期。在這個假設(shè)下進(jìn)行操作,派送的集合可以包括4個排隊(duì)的NVM操作??梢岳斫?,當(dāng)步驟1050或者隨后的任何步驟正被執(zhí)行時,可以向隊(duì)列添加附加的NVM操作。在步驟1055,與排隊(duì)的NVM操作的派送集合相關(guān)的TbufT(ρ)參數(shù)被附加到在先派送的NVM操作的TbufT(P)參數(shù)的末尾處。如果存在多于一個的在先派送的NVM操作, 則在先派送的NVM操作序列中的最后一個可以是斷開的NVM操作。換句話說,當(dāng)在先派送的NVM操作開始時,派送集合的Tbuff (ρ)參數(shù)可以開始。因此,用這種方式附加第一集合 Tbuff(p)參數(shù)確保在派送集合的Tprog開始之前,可以向在先派送的NVM操作的Tprog提供充足的時間以完成其操作。 在步驟1060,在派送集合的Tbuff (ρ)期間,在先派送的NVM操作被編程到NVM封裝的一頁中。在步驟1070,確定是否存在任何剩余的NVM操作隊(duì)列。如果“是”,則過程返回至步驟1050。如果“否”,則過程返回至步驟1022。圖IlA顯示了依照本發(fā)明的實(shí)施例的、根據(jù)進(jìn)取型的預(yù)測性的功率限制方案來操作的示例性電流限制時序圖1110。在一個實(shí)施例中,進(jìn)取型的方案可以假設(shè)Tbuff對每個 NVM操作來說實(shí)質(zhì)上是固定的,且Tprog可以基于一個或多個因素而改變。照這樣,進(jìn)取型的方案可以給Tbuff (ρ)附上一個常數(shù),如與緩沖操作典型相關(guān)的一個時間值;并且該方案可以為Tpr0g(p)使用預(yù)測時間的計算尺(sliding scale)。另外,只要該方案允許,Tbuff 操作就被流水線化并為Tprog操作做好準(zhǔn)備。并發(fā)的NVM操作Tprog的開始(如果沒有這個方案的限制,其將導(dǎo)致超過電流閾值的累積的功耗)可以位于在先派送的NVM操作的 Tprog (ρ)的結(jié)束處。這與保守型的預(yù)測性的方法相反,保守型的預(yù)測性的方法在Tbuff (ρ) 的結(jié)束時開始Tprog。Tprog(ρ)的計算尺提供了這個方案的進(jìn)取的方面。希望最小化Tprog(ρ),但不到實(shí)際Tprog操作超過Tpr0g(p)的程度。Tpr0g(p)可以基于任何數(shù)量的因素而變化。例如,Tprog(ρ)可以基于以下因素而變化電流閾值,數(shù)據(jù)是否正被編程至較低的頁或較高的頁,即將編程數(shù)據(jù)的管芯區(qū)域,超過極限的隊(duì)列中NVM操作的數(shù)量,或者它們的組合。例如,系統(tǒng)所消耗的電流可以基于是否正編程數(shù)據(jù)至較低或較高的頁而變化。由于較高的頁的編程通常要花費(fèi)比較低的頁的編程更長的時間。所以用于較高的頁的編程的電流消耗相應(yīng)地會更高。因此,可以給用于較高的頁的編程Tpr0g(p)派送一個比為較低的頁的編程更長的預(yù)測性的時間。時序圖1110顯示了在只允許一個并發(fā)NVM操作的電流閾值下操作的兩個管芯的預(yù)測性的Tbuff(p)和Tprog(p)。如圖所示,用來示例緩沖操作的Tbuff (pi)和Tbuff (p2) 可以被流水線化。Tpr0g(pl)在Tbuff(pl)之后立即開始,由于本例中只允許一個并發(fā)的 NVM操作,所以Tprog(p2)與預(yù)測的Tprog(pi)的結(jié)束處切斷?,F(xiàn)在參考圖IlA和圖IlB兩張圖,時序圖1120顯示了根據(jù)進(jìn)取型的預(yù)測性的功率限制方案操作的兩個管芯的實(shí)際的定時參數(shù)。Tprogl的開始與Tbuff(pl)的完成切斷,Tprog2的開始與Tprog(pl)的完成切斷。圖IlC和IlD分別顯示了依照本發(fā)明的實(shí)施例的、根據(jù)各自的進(jìn)取型的預(yù)測性的功率限制方案的另外的示例性時序圖1130和1140。時序圖1130和1140顯示了在只允許兩個并發(fā)NVM操作的電流閾值下操作的6個并發(fā)的NVM操作。另外,時序圖1130和1140顯示了預(yù)測的Tprog(p)在一個NVM操作與另一個NVM操作之間如何不同(基于任何合適的因素,如上面討論的那些)。例如,在時序圖1130中,分配給NVM操作1、3和5的Tprog(p) 要小于分配給NVM操作2、4和6的Tprog (ρ)。然而,如在時序圖1140中,分配給NVM操作 1、3和5的Tprog(ρ)時間要多于分配給NVM操作2、4和6的Tprog(ρ)。在時序圖1130和 1140中,每個接連的Tprog(ρ)操作都與在先Tprog(ρ)操作的結(jié)束切斷。圖IlE顯示了依照本發(fā)明的實(shí)施例的、由進(jìn)取型的預(yù)測性的功率限制方案所執(zhí)行的示例性步驟流程圖。這個流程圖在很多方面與以上關(guān)于圖IOC討論的的流程圖類似,但原則上的差異是Tprog操作在TProg(P)預(yù)測的結(jié)束處切斷。在步驟1142開始,給每個NVM操作分配用于編程參數(shù)(Tprog(ρ))的預(yù)測時間。這個參數(shù)可以基于以上所討論的各種因素而發(fā)生改變。在步驟1144,與每個NVM操作相關(guān)的數(shù)據(jù)被緩沖,以致于數(shù)據(jù)可緊接著立即用于編程。也就是說,多個NVM操作的數(shù)據(jù)可以存儲在多個各自的緩沖器中,但是存儲在那里的數(shù)據(jù)不會自動地編程進(jìn)入管芯的頁中。在步驟1146,在在先NVM操作的Tprog(p)結(jié)束時,初始化下一個NVM操作的編程操作的開始。例如,假設(shè)下一個編程操作是Tprog2,且在先編程操作Tprogl的預(yù)測 Tprog (pi)在時間tl結(jié)束。這假設(shè)編程操作Tprogl將在時間tl完成(tl是被Tprog (pi) 預(yù)測的)。因此,下一個編程操作Tprog2開始于時刻tl。另外,編程操作Tprog2的預(yù)測 Tprog(p2)也開始于時刻tl。在步驟1148,使用緩沖數(shù)據(jù)來執(zhí)行下一個NVM操作的編程部分。圖12顯示了依照本發(fā)明的實(shí)施例、可由系統(tǒng)利用功率限制方案實(shí)施的示例性步驟。在步驟1210開始,從多個來源接收適合用作調(diào)整電流閾值的因素的數(shù)據(jù)。來源可以包括各個監(jiān)視組件和與那些組件相關(guān)的條件的監(jiān)視電路(例如,圖5中的電路512、514和 516)。來源還可以包括指定系統(tǒng)各個組件的操作參數(shù)(例如,NVM封裝峰值功率消耗)的數(shù)據(jù)。電流閾值可以為NVM封裝設(shè)置最大電流消耗,盡管與閾值的設(shè)置相比,NVM封裝能夠消耗更多的功率。電流閾值可以小于能被NVM消耗的峰值電流。在步驟1220,可以基于接收的數(shù)據(jù)調(diào)整電流閾值。系統(tǒng)可以初始地設(shè)置電流閾值為最小的電流閾值水平。這個水平可以確保NVM封裝能滿足性能的最小閾值。如果接收的數(shù)據(jù)指示可以向NVM封裝提供額外的功率,則可以往上調(diào)整電流閾值,以利用額外的功率。 當(dāng)接收的數(shù)據(jù)指示不再有可獲得的額外的功率時,則可以相應(yīng)地往下調(diào)整電流閾值。提供了從步驟1220到步驟1210的反饋循環(huán),以顯示可以實(shí)時調(diào)整電流閾值。在步驟1230,使用功率限制方案來限制并發(fā)NVM操作的數(shù)量,以使累積的電流消耗不超過被調(diào)整的電流閾值。功率限制方案可以是此處所討論的功率限制方案中的任何一個(例如,反應(yīng)性的或預(yù)測性的功率限制方案中的一個)。在一些實(shí)施例中,系統(tǒng)可以在兩個或更多個功率限制方案之間進(jìn)行切換。應(yīng)當(dāng)理解,圖8B、10C、1 IE和12中的流程圖所包括的步驟僅僅是示例性的。在不背離本發(fā)明的范圍的情況下,可以刪除、修改或組合任何步驟,并且可以增加任何額外的步
馬聚ο在本公開的一個實(shí)施例中,提供了在包括具有多個管芯的非易失性存儲器(NVM) 的系統(tǒng)中實(shí)現(xiàn)的方法,該方法包括從多個系統(tǒng)來源中的至少一個接收適合用作調(diào)整電流閾值的因素的數(shù)據(jù),該電流閾值小于NVM能夠消耗的峰值電流;基于接收的數(shù)據(jù)調(diào)整電流閾值;使用功率限制方案來限制執(zhí)行的并發(fā)NVM操作的數(shù)量,使得NVM的累積的電流消耗不超過被調(diào)整的電流閾值。根據(jù)本實(shí)施例的一個方面,使用功率限制方案進(jìn)一步包括隨著時間分配并發(fā)的 NVM操作,以便NVM的累積的電流消耗不超過被調(diào)整的電流閾值。根據(jù)本實(shí)施例的一個方面,功率限制方案包括反應(yīng)性的功率限制方案,其使用由 NVM提供的反饋數(shù)據(jù)確定每個NVM操作何時完成。根據(jù)本實(shí)施例的一個方面,功率限制方案包括預(yù)測性的功率限制方案,其預(yù)測每個NVM操作將花多長時間完成。根據(jù)本實(shí)施例的一個方面,電流閾值被初始設(shè)置至一個滿足最小NVM性能水平的水平。根據(jù)本實(shí)施例的一個方面,調(diào)整包括當(dāng)接收的數(shù)據(jù)指示有額外的電流可獲得時, 就增加電流閾值;且當(dāng)接收的數(shù)據(jù)指示沒有額外的電流可獲得時,就降低電流閾值。在本公開的一個實(shí)施例中,提供了一種電子設(shè)備,其包括具有多個管芯的非易失性存儲器(NVM),其操作為執(zhí)行多個并發(fā)的NVM操作,每個NVM操作消耗固定量的電流;功率水平選擇電路,操作為基于從多個設(shè)備來源中的至少一個接收的數(shù)據(jù)來提供電流閾值, 該電流閾值小于NVM能夠消耗的峰值電流;和功率封頂電路,與NVM及功率水平選擇電路操作地通信,功率封頂電路操作為限制被執(zhí)行的并發(fā)NVM操作的數(shù)量,以便NVM的累積電流消耗不超過電流閾值。根據(jù)本實(shí)施例的一個方面,從由功率供應(yīng)監(jiān)視電路、負(fù)載監(jiān)視電路、溫度監(jiān)視電路、NVM數(shù)據(jù)源和它們的組合構(gòu)成的組中選擇多個設(shè)備來源。根據(jù)本實(shí)施例的一個方面,功率水平選擇電路操作為將電流閾值初始化地設(shè)置為滿足最小NVM性能水平的水平。根據(jù)本實(shí)施例的一個方面,功率水平選擇電路操作為當(dāng)接收的數(shù)據(jù)指示有額外的電流可獲得時,增加電流閾值;并且當(dāng)接收的數(shù)據(jù)指示沒有額外的電流可獲得時,降低電流閾值。根據(jù)本實(shí)施例的一個方面,功率封頂電路操作為隨著時間分配并發(fā)的NVM操作,以致NVM的累積的電流消耗不超過被調(diào)整的電流閾值。根據(jù)本實(shí)施例的一個方面,設(shè)備進(jìn)一步包括反饋線,其耦接在NVM和功率封頂電路之間,其中,功率封頂電路操作為通過反饋線使用由NVM提供的反饋數(shù)據(jù),以確定每個 NVM操作何時完成。根據(jù)本實(shí)施例的一個方面,功率封頂電路操作為預(yù)測每個NVM操作將花多長時間完成。根據(jù)本實(shí)施例的一個方面,NVM是與非型閃存NVM。在本公開的一個實(shí)施例中,提供了用于非易失性存儲器(NVM)的反應(yīng)性地限制功率消耗的方法,該方法包括接收電流閾值;基于該電流閾值確定能被執(zhí)行的并發(fā)NVM操作的最大數(shù)量;接收超過極限的排隊(duì)的并發(fā)NVM操作,所述排隊(duì)的并發(fā)NVM操作的并發(fā)操作將具有累積的超過電流閾值的電流消耗派送排隊(duì)的NVM操作的第一集合,該第一集合包括多個不超過最大數(shù)量的排隊(duì)的NVM操作;關(guān)于已完成的NVM操作監(jiān)視反饋數(shù)據(jù);并且當(dāng)監(jiān)視到一個已完成的NVM操作時,派送排隊(duì)的NVM操作中的另一個NVM操作。根據(jù)本實(shí)施例的一個方面,NVM操作包括緩沖部分和編程部分,其中,所述派送包括在緩沖部分被執(zhí)行后,緊接著立即執(zhí)行編程部分。根據(jù)本實(shí)施例的一個方面,NVM操作包括緩沖部分和編程部分,其中,派送包括 執(zhí)行緩沖部分;并延遲編程部分的執(zhí)行直至監(jiān)視到一個已完成的NVM操作。根據(jù)本實(shí)施例的一個方面,NVM是與非型閃存NVM,且電流閾值小于能被與非型閃存NVM消耗的峰值電流。根據(jù)本實(shí)施例的一個方面,該方法進(jìn)一步包括當(dāng)監(jiān)視到一個已完成的NVM操作時,就重復(fù)派送另一個排隊(duì)的NVM操作。在本公開的一個實(shí)施例中,提供了一種用于非易失性存儲器(NVM)的預(yù)測性的限制功率消耗的方法,所述NVM操作為執(zhí)行NVM操作,每個NVM操作包括緩沖部分和編程部分,且緩沖需要被完全執(zhí)行的時間為Tbuff,編程部分需要被完全執(zhí)行的時間為Tprog,該方法包括接收電流閾值;基于該電流閾值確定能被執(zhí)行的并發(fā)NVM操作的最大數(shù)量 ’為每個NVM操作分配預(yù)測性的定時參數(shù),該預(yù)測性的定時參數(shù)包括用于完全執(zhí)行NVM操作的緩沖部分的預(yù)測時間參數(shù)Tbuff(p),其中,Tbuff(p)比Tprog大;接收超過極限的排隊(duì)的并發(fā)NVM操作,該并發(fā)NVM操作的并發(fā)操作將具有累積的超過電流閾值的電流消耗確定有多少個排隊(duì)的NVM操作能作為被派送的NVM操作的下一個集合而被派送,以致于并發(fā)NVM操作的數(shù)量不超過最大數(shù)量;將下一個集合中每個NVM操作的TbufT(P)附加到在先被派送的 NVM操作的Tbuff (ρ)的結(jié)束處;并且在下一個集合的Tbuff (ρ)期間執(zhí)行在先被派送的NVM 操作的編程部分。根據(jù)本實(shí)施例的一個方面,方該法進(jìn)一步包括在下一個集合中的每個NVM操作的各自TbufT(P)結(jié)束時,執(zhí)行下一個集合中每個NVM操作的編程部分。根據(jù)本實(shí)施例的一個方面,所述確定進(jìn)一步包括將可以影響并發(fā)NVM操作的數(shù)量的在先被派送的NVM操作考慮為因素。根據(jù)本實(shí)施例的一個方面,電流閾值小于能被NVM消耗的峰值電流。根據(jù)本實(shí)施例的一個方面,在下一個集合的Tbuff(p)期間執(zhí)行在先被派送的NVM 操作的編程部分包括在在先被派送的NVM操作的TbufT(P)結(jié)束時,開始在先被派送NVM操作的編程部分。在本公開的一個實(shí)施例中,提供了一種用于非易失性存儲器(NVM)的預(yù)測性的限制功率消耗的方法,NVM操作為執(zhí)行NVM操作,每個NVM操作包括緩沖部分和編程部分,緩沖將被完全執(zhí)行需要的時間為Tbuff,編程部分將被完全執(zhí)行所需要的時間為Tprog,該方法包括為每個NVM操作分派預(yù)測定時參數(shù),該預(yù)測定時參數(shù)包括用于完全執(zhí)行NVM操作的編程部分的預(yù)測時間參數(shù)Tpr0g(p);緩沖與每個NVM操作相關(guān)的數(shù)據(jù),以致于該數(shù)據(jù)可緊接著立即用于NVM操作的編程部分;在在先NVM操作的Tprog(p)結(jié)束時,初始化下一個NVM 操作的編程操作的開始,其中,Tprog(ρ)大于Tprog ;以及使用緩沖的數(shù)據(jù)來執(zhí)行下一個操作的編程部分。根據(jù)本實(shí)施例的一個方面,該方法進(jìn)一步包括接收電流閾值;基于該電流閾值確定能被執(zhí)行的并發(fā)NVM操作的最大數(shù)量;接收超過極限的排隊(duì)的并發(fā)NVM操作,該并發(fā) NVM操作的并發(fā)操作將具有累積的超過電流閾值的電流消耗以及調(diào)整一個或多個排隊(duì)的 NVM操作的Tpr0g(p),以確保并發(fā)NVM操作的數(shù)量不超過最大數(shù)量。根據(jù)本實(shí)施例的一個方面,在先NVM操作的Tprog (ρ)是分派給下一個NVM操作的前一個NVM操作的Tprog (ρ)。根據(jù)本實(shí)施例的一個方面,分派給NVM操作的Tprog (ρ)的持續(xù)時間基于與NVM操作相關(guān)的數(shù)據(jù)是被編程到較高的頁還是較低的頁。在本公開的一個實(shí)施例中,提供了用于在非易失性存儲器中動態(tài)控制操作的裝置,該裝置包括用于執(zhí)行以上描述的任何方法中的每個步驟的部件。本發(fā)明所描述的實(shí)施例被呈現(xiàn)用于示例的目的而不是限制的目的。
權(quán)利要求
1.一種用于動態(tài)控制具有多個管芯的非易失性存儲器(NVM)中的操作的方法,該方法包括從多個系統(tǒng)來源中的至少一個來源接收適合用作調(diào)整電流閾值的因素的數(shù)據(jù),該電流閾值小于能被NVM消耗的峰值電流;基于接收的數(shù)據(jù)調(diào)整電流閾值;并且使用限制被執(zhí)行的并發(fā)NVM操作的數(shù)量的功率限制方案,以致NVM的累積電流消耗不超過被調(diào)整的電流閾值。
2.根據(jù)權(quán)利要求1所述的方法,其中,使用所述功率限制方案進(jìn)一步包括隨時間分配并發(fā)NVM操作,以致NVM的累積電流消耗不超過被調(diào)整的電流閾值。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述功率限制方案包括反應(yīng)性的功率限制方案, 該反應(yīng)性的功率限制方案使用由NVM提供的反饋數(shù)據(jù)來確定每個NVM操作何時完成。
4.根據(jù)權(quán)利要求1所述的方法,其中,功率限制方案包括預(yù)測性的功率限制方案,所述預(yù)測性的功率限制方案預(yù)測每個NVM操作將花多長時間完成。
5.根據(jù)權(quán)利要求1所述的方法,其中,電流閾值被初始地設(shè)置為實(shí)現(xiàn)最小NVM性能水平的水平。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述調(diào)整包括當(dāng)接收的數(shù)據(jù)指示有額外的電流可獲得時,增加電流閾值;以及當(dāng)接收的數(shù)據(jù)指示沒有額外的電流可獲得時,降低電流閾值。
7.一種電子設(shè)備,包括非易失性存儲器(NVM),具有多個管芯且操作為執(zhí)行多個并發(fā)的NVM操作,每個NVM操作消耗固定量的電流;功率水平選擇電路,操作為基于從多個設(shè)備來源中的至少一個來源接收的數(shù)據(jù)來提供電流閾值,該電流閾值小于NVM能消耗的峰值電流;和功率封頂電路,與NVM和功率水平選擇電路操作地通信,所述功率封頂電路操作為限制被執(zhí)行的并發(fā)NVM操作的數(shù)量,以致NVM的累積電流消耗不超過電流閾值。
8.根據(jù)權(quán)利要求7所述的電子設(shè)備,其中,從由以下各項(xiàng)構(gòu)成的組中選擇多個設(shè)備來源功率供應(yīng)監(jiān)視電路、負(fù)載監(jiān)視電路、溫度監(jiān)視電路、NVM數(shù)據(jù)源和上述各項(xiàng)的任何組合。
9.根據(jù)權(quán)利要求7所述的電子設(shè)備,其中,所述功率水平選擇電路操作為將電流閾值初始設(shè)置為實(shí)現(xiàn)最小NVM性能水平的水平。
10.根據(jù)權(quán)利要求7所述的電子設(shè)備,其中,所述功率水平選擇電路操作為當(dāng)接收的數(shù)據(jù)指示有額外的電流可獲得時,增加電流閾值,且當(dāng)接收的數(shù)據(jù)指示沒有額外的電流可獲得時,降低電流閾值。
11.根據(jù)權(quán)利要求7所述的電子設(shè)備,其中,所述功率封頂電路操作為隨時間分配并發(fā)NVM操作,以致NVM的累積電流消耗不超過被調(diào)整的電流閾值。
12.根據(jù)權(quán)利要求7所述的電子設(shè)備,進(jìn)一步包括耦接在NVM和功率封頂電路之間的反饋線,其中,所述功率封頂電路操作為通過反饋線使用由NVM提供的反饋數(shù)據(jù)來確定每個 NVM操作何時完成。
13.一種用于非易失性存儲器(NVM)的反應(yīng)性地限制功率消耗的方法,該方法包括接收電流閾值;基于該電流閾值確定能被執(zhí)行的并發(fā)NVM操作的最大數(shù)量;接收超過極限的排隊(duì)的并發(fā)NVM操作,該排隊(duì)的并發(fā)NVM操作的并發(fā)操作具有超過電流閾值的累積電流消耗;派送排隊(duì)的NVM操作隊(duì)列的第一集合,該第一集合包括不超過最大數(shù)量的多個排隊(duì)的 NVM操作;關(guān)于已完成的NVM操作監(jiān)視反饋數(shù)據(jù);以及當(dāng)監(jiān)視到一個已完成的NVM操作時,派送另一個排隊(duì)的NVM操作。
14.根據(jù)權(quán)利要求13所述的方法,其中,NVM操作包括緩沖部分和編程部分,其中,所述派送包括在緩沖部分被執(zhí)行后緊接著立即執(zhí)行編程部分。
15.根據(jù)權(quán)利要求13所述的方法,其中,NVM操作包括緩沖部分和編程部分,其中,所述派送包括執(zhí)行緩沖部分;以及延遲編程部分的執(zhí)行直至監(jiān)視到一個已完成的NVM操作。
16.根據(jù)權(quán)利要求13所述的方法,其中,NVM是與非型閃存NVM,且電流閾值小于與非型閃存NVM能消耗的峰值電流。
17.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括當(dāng)監(jiān)視到一個已完成的NVM操作時,就重復(fù)另一排隊(duì)的NVM操作的派送。
18.一種用于非易失性存儲器(NVM)的預(yù)測性的限制功率消耗的方法,NVM被操作為執(zhí)行NVM操作,每個NVM操作包括緩沖部分和編程部分,緩沖被完全執(zhí)行需要的時間為Tbuff, 編程部分被完全執(zhí)行需要的時間Tprog,該方法包括接收電流閾值;基于該電流閾值確定能被執(zhí)行的并發(fā)NVM操作的最大數(shù)量;為每個NVM操作分派預(yù)測定時參數(shù),該預(yù)測定時參數(shù)包括用于完全執(zhí)行NVM操作的緩沖部分的預(yù)測時間參數(shù)Tbuff (ρ),其中,Tbuff(p)比Tprog大;接收超過極限的排隊(duì)的并發(fā)NVM操作,該排隊(duì)的并發(fā)NVM操作的并發(fā)操作具有超過電流閾值的累積電流消耗;確定有多少個排隊(duì)的NVM操作能作為被派送的NVM操作的下一個集合而被派送,以致于并發(fā)NVM操作的數(shù)量不超過最大數(shù)量;將下一個集合中的每個NVM操作的TbufT (ρ)附加到在先被派送的NVM操作的 Tbuff(p)的結(jié)束處;以及在下一個集合的TbufT(P)期間執(zhí)行在先被派送的NVM操作的編程部分。
19.根據(jù)權(quán)利要求18所述的方法,進(jìn)一步包括在下一個集合中的每個NVM操作的各自的Tbuff (ρ)結(jié)束時,執(zhí)行下一個集合中的每個 NVM操作的編程部分。
20.根據(jù)權(quán)利要求18所述的方法,其中,所述確定進(jìn)一步包括將能夠影響并發(fā)NVM操作的數(shù)量的在先被派送的NVM操作考慮為因素。
21.根據(jù)權(quán)利要求18所述的方法,其中,電流閾值小于NVM能夠消耗的峰值電流。
22.根據(jù)權(quán)利要求18所述的方法,其中,在下一個集合的Tbuff(p)期間執(zhí)行在先被派送的NVM操作的編程部分包括在在先被派送的NVM操作的TbufT(P)結(jié)束時,起始在先被派送的NVM操作的編程部分的開始。
23.一種用于非易失性存儲器(NVM)的預(yù)測性的限制功率消耗的方法,NVM操作為執(zhí)行NVM操作,每個NVM操作包括緩沖部分和編程部分,緩沖將被完全執(zhí)行所需要的時間為 Tbuff,編程部分將被完全執(zhí)行所需要的時間為Tprog,該方法包括為每個NVM操作分派預(yù)測定時參數(shù),該預(yù)測定時參數(shù)包括用于完全執(zhí)行NVM操作的編程部分的預(yù)測時間參數(shù)Tpr0g(p);緩沖與每個NVM操作相關(guān)的數(shù)據(jù),以致于該數(shù)據(jù)可緊接著立即用于NVM操作的編程部分;在在先NVM操作的Tprog (ρ)結(jié)束時,初始化下一個NVM操作的編程操作的開始,其中, Tprog (ρ)大于 Tprog ;以及使用緩沖的數(shù)據(jù)來執(zhí)行下一個操作的編程部分。
24.根據(jù)權(quán)利要求23所述的方法,進(jìn)一步包括 接收電流閾值;基于該電流閾值確定能被執(zhí)行的并發(fā)NVM操作的最大數(shù)量;接收超過極限的排隊(duì)的并發(fā)NVM操作,該排隊(duì)的并發(fā)NVM操作的并發(fā)操作具有超過電流閾值的累積電流消耗以及調(diào)整一個或多個排隊(duì)的NVM操作的Tpr0g(p),以確保并發(fā)NVM操作的數(shù)量不超過最大數(shù)量。
25.根據(jù)權(quán)利要求23所述的方法,其中,在先NVM操作的Tprog(ρ)是分派給下一個NVM 操作的前一個NVM操作的Tprog (ρ)。
26.根據(jù)權(quán)利要求23所述的方法,其中,分派給NVM操作的Tpr0g(p)的持續(xù)時間基于與NVM操作相關(guān)的數(shù)據(jù)被編程到較高的頁還是較低的頁。
27.一種用于動態(tài)控制非易失性存儲器中的操作的設(shè)備,所述設(shè)備包括用于執(zhí)行如權(quán)利要求1-6和13-26中任何一項(xiàng)所述的方法中的每個步驟的裝置。
全文摘要
本發(fā)明公開了一種用于動態(tài)控制非易失性存儲器中的操作的方法和系統(tǒng)。公開了一種用于限制非易失性存儲器(NVM)的功率消耗的方法,該方法使用隨時間分配多個并發(fā)NVM操作的功率限制方案,該方法提供固定用于NVM的電流消耗的上限的“電流消耗封頂”,由此消除了峰值功率事件。在一個實(shí)施例中,可以通過從多個系統(tǒng)來源中的至少一個來源接收適合用作調(diào)整電流閾值的因素的數(shù)據(jù)來限制NVM的功率消耗。該電流閾值可以小于NVM能夠消耗的峰值電流并且可以基于接收的數(shù)據(jù)而被調(diào)整??墒褂孟拗票粓?zhí)行的并發(fā)NVM操作的數(shù)量的功率限制方案,以致NVM的累積電流消耗不超過被調(diào)整的電流閾值。
文檔編號G11C16/10GK102347078SQ201110267858
公開日2012年2月8日 申請日期2011年7月26日 優(yōu)先權(quán)日2010年7月26日
發(fā)明者A·卡普爾, H·費(fèi)尼斯, M·拜奧姆, V·科麥爾尼斯基 申請人:蘋果公司