存儲系統以及控制方法與流程
存儲系統以及控制方法
1.本技術享受以日本特許申請2020-210149號(申請日:2020年12月18日)為基礎申請的優先權。本技術通過參照該基礎申請而包含基礎申請的全部內容。
技術領域
2.本發明的實施方式涉及對非易失性存儲器進行控制的存儲系統以及控制方法。
背景技術:
3.作為具備非易失性存儲器的存儲系統的一個例子,已知固態硬盤驅動器(solid state drive:ssd)。
4.某種ssd具備用于在從外部供給的電源停電等的非意圖的切斷時寫入途中的數據不會消失的失電保護(power loss protection:plp)功能。plp功能需要后備電源。后備電源的一個例子包括電容器。當檢測到電源電壓的降低時,plp功能進行工作,利用在電容器中所充有的電能量(以下簡稱為能量),寫入途中的數據和應該以非易失的方式存儲的數據被寫入到非易失性存儲器。
5.在plp功能工作時以外時,電容器的能量也會因自然放電而減少,因此,需要定期地對電容器進行充電。當電容器的充電定時與ssd的消耗電流大的定時重疊時,ssd的消耗電流會暫時性地變大,峰值電流會超過ssd的容許電流值。為了防止該狀況,需要減小ssd的消耗電流,但會犧牲ssd的性能。
6.這樣,在以往的具備plp功能的存儲系統中,難以兼顧峰值電流要求和性能要求。
技術實現要素:
7.本發明的一個實施方式的目的在于提供適當地對plp電容器的充電進行控制的存儲系統以及控制方法。
8.根據一個實施方式,存儲系統具備:非易失性存儲器;控制器,其向非易失性存儲器寫入數據,從非易失性存儲器讀出數據;以及電源電路。電源電路具備電容器。電源電路利用外部電源來至少向非易失性存儲器和控制器供給電源,在外部電源被切斷之后,利用電容器的能量來至少向非易失性存儲器和控制器供給電源。控制器在非易失性存儲器的消耗電流比第1電流小的情況下,對電源電路進行控制以使得對電容器進行充電。
附圖說明
9.圖1是表示包括實施方式涉及的存儲系統的信息處理系統的構成的一個例子的框圖。
10.圖2是表示電源電路的結構的一個例子的框圖。
11.圖3是表示電源電路內的升壓用的dc/dc轉換器和降壓用的dc/dc轉換器的結構的一個例子的電路圖。
12.圖4的(a)和圖4是(b)是表示通過外部電源電壓供給至ssd的消耗電流波形的一個
例子的圖。
13.圖5是表示節流(throttling)控制的電源電路內的升壓用的dc/dc轉換器和降壓用的dc/dc轉換器的概要的圖。
14.圖6是表示權重表所保存的權重的一個例子的圖。
15.圖7的(a)~(d)是表示因執行命令而nand芯片所消耗的電流波形與權重的關系的一個例子的圖。
16.圖8是表示進行節流控制的nand控制器的各個處理的一個例子的流程圖。
17.圖9是表示進行節流控制的nand需求管理器的處理的一個例子的流程圖。
18.圖10是表示進行plp電容器的充電控制的控制器的處理流程的一個例子的流程圖。
19.標號說明
20.12主機、14ssd、16nand存儲器、18控制器、22電源電路、24plp電容器、36nand需求管理器、38nand i/f電路、58dc/dc轉換器、60控制邏輯
具體實施方式
21.以下,參照附圖對實施方式進行說明。以下的說明是例示用于使實施方式的技術思想具體化的裝置、方法的說明,實施方式的技術思想并不限定于以下說明的構成要素的構造、形狀、配置、材質等。本領域技術人員能夠容易地想到的變形當然包含在公開的范圍內。為了使說明更加明確,有時也在附圖中使各要素的尺寸、厚度、平面尺寸或者形狀等相對于實際的實施形態進行變更來以示意的方式進行表示。有時也在多個附圖中包括相互的尺寸的關系、比率不同的要素。有時也在多個附圖中對所對應的要素賦予相同的參照數字而省略重復的說明。有時對幾個要素賦予多個名稱,但這些名稱的例子到底是例示,并不否定對這些要素賦予其他名稱。另外,關于未賦予多個名稱的要素,也并不否定賦予其他名稱。此外,在以下的說明中,“連接”不僅意味著直接連接,也意味著經由其他要素相連接。
22.以下,參照附圖對本實施方式進行詳細的說明。
23.(系統構成)
24.圖1是表示包括實施方式涉及的存儲系統的信息處理系統的構成的一個例子的框圖。存儲系統是構成為向非易失性存儲器寫入數據以及從非易失性存儲器讀出數據的儲存設備。在本技術中,存儲系統設為是ssd。非易失性存儲器的例子是nand型閃速存儲器、nor型閃速存儲器、mram(magneto-resistive random access memory,磁阻隨機訪問存儲器)、pram(phase change random access memory,相變隨機訪問存儲器)、reram(resistive random access memory,阻變隨機訪問存儲器)、feram(ferroelectric random access memory,鐵電隨機訪問存儲器)等。在本技術中,非易失性存儲器設為是nand型閃速存儲器(以下簡稱為nand存儲器)。
25.信息處理系統10包括主機設備(以下簡稱為主機)12和ssd14。
26.主機12是作為對ssd14進行訪問的外部設備的信息處理裝置。主機12也可以是將大量且多樣的數據保存于ssd14的服務器(儲存服務器)。主機12也可以是個人計算機。ssd14也可以是組裝于數據中心等服務器的面向商業用途的ssd。ssd14也可以是組裝于個人計算機的面向個人用途的ssd。
27.ssd14具備nand存儲器16、控制器18、dram(dynamic random access memory,動態隨機訪問存儲器)20、電源電路22、plp電容器24等。ssd14可以作為主機12的主儲存器(storage)來使用。ssd14既可以內置于主機12,也可以設置于主機12的外部,經由電纜或者網絡與主機12相連接。
28.控制器18按照從主機12發送的要求,向nand存儲器16寫入數據,或者從nand存儲器16讀出數據。進一步,控制器18按照從主機12發送的要求、從電源電路22發送的各種信息,生成對電源電路22所生成的電壓的值進行控制的控制信號。控制器18向電源電路22發送所生成的控制信號。由此,控制器18對向ssd14的各設備(例如nand存儲器16、控制器18、dram20)施加的多個電壓的生成進行控制。控制器18可以由如soc(system on a chip,片上系統)那樣的電路來構成。
29.dram20是易失性存儲器的一個例子。dram20例如是ddr3l(double data rate 3low voltage)標準的dram。也可以在dram20中設置有寫緩存、讀緩存、查表(lut)的高速緩存(cache)區域以及系統管理信息的保存區域。寫緩存是用于暫時性地保持要被寫入到nand存儲器16的數據的緩存區域。讀緩存是用于暫時性地保存從nand存儲器16讀出的數據的緩存區域。lut的高速緩存區域是對地址變換表(也稱為邏輯地址/物理地址變換表)進行高速緩存的區域。lut是管理主機12指定的各個邏輯地址與nand存儲器16的各個物理地址之間的對應的信息。系統管理信息的保存區域是保存在ssd14的動作中所使用的各種值、各種表等的區域。
30.作為易失性存儲器的dram20不僅可以設置在控制器18的外部,也可以設置在控制器18的內部。此外,作為易失性存儲器,也可以代替dram20而使用能夠更高速訪問的sram(static random access memory,靜態隨機訪問存儲器)。
31.nand存儲器16也可以包括多個(例如144個)nand芯片16-i(i=1~144)。各nand芯片16-i也可以包括存儲單元陣列,該存儲單元陣列包括呈矩陣狀配置的多個存儲單元。nand芯片16-i既可以是二維構造的存儲芯片,也可以是三維構造的存儲芯片。
32.存儲單元陣列包括多個塊。各個塊包括多個頁。塊作為最小的數據刪除動作的單位發揮功能。頁分別包括與同一字線連接的多個存儲單元。頁是數據寫入動作和數據讀出動作的最小單位。1頁的數據是寫入單位的數據或者讀出單位的數據,被保存于dram20。在寫入的情況下,從dram20讀出的1頁的寫入單位的數據被寫入于nand存儲器16。因此,在寫入途中外部電源非意圖地切斷了的情況下,當不存在后備電源時,dram20內的寫入途中的數據會丟失。在實施方式中,準備后備電源,能夠在外部電源的非意圖的切斷時,使用后備電源將dram20內的寫入途中的數據寫入到nand存儲器16。此外,也可以代替頁而將字線作為數據寫入動作或者數據讀出動作的單位。在該情況下,1條字線的數據為寫入單位的數據或者讀出單位的數據。
33.電源電路22根據從外部電源供給的單一或者多個外部電壓,生成ssd14的各設備所需要的多個電源電壓。外部電源也可以是主機12所具備的電源。此外,在圖1中未圖示電源線。電源電路22也可以由單一或者多個集成電路(integrated circuit:ic)構成。表示電源電路22的各種狀態的信息被按照預定的通信標準發送至控制器18。電源電路22與控制器18之間的通信標準例如也可以按照串行通信標準。串行通信標準的一個例子是i2c方式。在本技術中,電源電路22與控制器18之間的通信標準設為按照i2c方式。
34.控制器18按照從主機12發送的要求以及從電源電路22發送的各種信息,生成對電源電路22所生成的電源電壓的值進行控制的控制信號。控制器18向電源電路22發送所生成的控制信號。由此,向ssd14的各設備施加的多個電源電壓的生成由控制器18進行控制。對于電源電路22的詳細,將參照圖2和圖3在后面進行描述。
35.在電源電路22連接有后備電源用的plp電容器24。plp電容器24向電源電路22供給用于失電保護(power loss protection:plp)功能的能量,該失電保護對停電時等非意圖的外部電源的切斷時的寫入途中的數據進行保護。作為plp電容器24的例子,例如包括雙電層電容器、導電性高分子鋁電解電容器、導電性高分子鉭固體電解電容器。電源電路22在電源切斷后,使用plp電容器24的能量,對nand存儲器16、控制器18以及dram20供給一定時間的電源電壓。
36.plp電容器24的容量被設定為比目標容量稍多,該目標容量是能夠充入為了能夠在該一定時間內完成向nand存儲器16寫入途中的數據向nand存儲器16的寫入(實現plp功能)所需要的能量的容量。這是由于:若使plp電容器的容量具有余裕,則即使為由于溫度變化、經年劣化而電容器的容量稍微減少了,也能夠繼續實現plp功能。例如,要使得即使容量減少、只要其減少量為初始容量的30%以內、就也能夠實現plp功能,plp電容器的初始容量設為目標容量的大約1.43倍即可。
37.控制器18具備cpu32、主機接口(主機i/f)電路34、nand需求管理器36、nand接口(nand i/f)電路(也被稱為nand控制器)38、dram接口(dram i/f)電路40等。cpu32、主機i/f電路34、nand需求管理器36、nand i/f)電路38、dram i/f電路40與總線線路44連接。電源電路22也與總線線路44連接。
38.cpu32執行存儲于nand存儲器16的固件來實現各種功能。各種功能的例子包括plp電容器24的充電控制、通過電源電路22進行的電源電壓生成動作的控制。
39.主機12與主機i/f電路34電連接,nand存儲器16與nand i/f電路38電連接,dram20與dram i/f電路40電連接。
40.將主機12與ssd14電連接的主機i/f電路34遵循scsi(small computer system interface)、sas(serial attached scsi)、ata(at attachment)、sata(serial ata)、pcie(pci express)(
tm
)、ethernet(
tm
)、fibre channel、nvme(nvm express)(
tm
)、usb(universal serial bus)(
tm
)、uart(universal asynchronous receiver/transmitter)(
tm
)等的標準。
41.將控制器18與nand存儲器16相互電連接的nand i/f電路38遵循toggle ddr、onfi(open nand flash interface)等的標準。nand i/f電路38也可以包括多個(例如9個)nand控制器38-j(j=1~9)。各nand控制器38-j經由多個(例如2個)通道與nand存儲器16連接。nand存儲器16包括144個nand芯片16-i,因此,一個nand控制器38-j的1個通道對8個nand芯片進行交織(interleave)控制。即,nand i/f電路38經由多個(例如18個)通道與nand存儲器16連接。
42.nand需求管理器36是用于向nand i/f電路38發送從主機12發布的對nand存儲器16的要求的硬件。例如,nand需求管理器36在接受到從主機12發送來的讀要求、寫要求、擦除要求等的情況下,向nand控制器38-j發送與讀命令、寫命令、擦除命令等有關的命令發布要求。或者,nand需求管理器36在接受到從控制器38的固件、設備等發布的垃圾收集要
求、刷新要求、調試要求等的對于nand存儲器16的后臺處理的要求的情況下,向nand控制器38-j發送與垃圾收集命令、刷新命令、調試命令等有關的命令發布要求。
43.nand控制器38-j在從nand需求管理器36接受到命令發布要求的情況下,取得為了向nand芯片16-i發布命令所需要的信息,發布命令。nand控制器38-j例如從cpu32、nand需求管理器36例如取得物理地址、寫入數據來作為為了發布命令所需要的信息。nand控制器38-j向nand需求管理器36發送所發布的命令的執行結果來作為響應信息。nand需求管理器36接受從nand控制器38-j發布的響應信息,向要求源通知響應信息。
44.(電源電路22的結構)
45.圖2是表示電源電路22的結構的一個例子的框圖。電源電路22包括保險絲52、負載開關54、ldo(low dropout,低壓差)穩壓器56(regulator)、dc/dc轉換器58、控制邏輯60以及i2c i/f電路64。外部電源(未圖示)例如生成dc12v的外部電源電壓。與外部電源電壓相應的大小的電流以串聯的方式經由保險絲52和負載開關54而被供給至ldo(low dropout)穩壓器56和dc/dc轉換器58。此外,也可以為主機12具備外部電源,從主機12向電源電路22供給與外部電源電壓相應的電流。構成電源電路22的單一或者多個電路有時也被稱為電源管理ic(power management ic:pmic)。
46.保險絲52包括當流動一定電流以上的過電流時會熔斷的金屬保險絲來構成。當保險絲52熔斷時,只要不更換保險絲,外部電源電壓就不被向負載開關54施加。此外,保險絲52不限于金屬保險絲,也可以包括當檢測到過電流時成為非導通的電子保險絲來構成。
47.負載開關54是導通(on)/斷開(off)開關,通常是導通狀態。在導通狀態下,負載開關54輸出從所被施加的電壓減去壓差(dropout)電壓而得到的電壓。與保險絲52同樣地,負載開關54當流動一定電流以上的過電流時會成為斷開狀態。在斷開狀態下,負載開關54輸出0v。保險絲52被熔斷的過電流的值既可以比負載開關54從導通狀態變化為斷開狀態的過電流的值高,也可以比負載開關54從導通狀態變化為斷開狀態的過電流的值低,還也可以與負載開關54從導通狀態變化為斷開狀態的過電流的值相同。通過保險絲52和負載開關54,能雙重地防止向ldo穩壓器56、dc/dc轉換器58供給過電流。
48.ldo穩壓器56是輸出需要小電流的ssd14的設備的電源電壓的電路。dc/dc轉換器58是輸出需要大電流的ssd14的設備的電源電壓的電路。ldo穩壓器56、dc/dc轉換器58既可以作為分開的半導體部件來構成,也可以作為單一的半導體部件來構成。
49.ldo穩壓器56對負載開關54的輸出電壓進行降壓來生成電源電壓。例如從ldo穩壓器56輸出的電源電壓被供給至控制器18。
50.dc/dc轉換器58對負載開關54的輸出電壓進行升壓或者降壓來生成ssd14的各設備需要的多個電源電壓。dc/dc轉換器58由對多個電壓分別進行升壓或者降壓的多個dc/dc轉換單元構成。
51.升壓用的dc/dc轉換單元對負載開關54的輸出電壓進行升壓,將進行了升壓后的電壓作為充電電壓施加至plp電容器24。
52.降壓用的dc/dc轉換單元對負載開關54的輸出電壓進行降壓來生成多個電源電壓。多個電源電壓被施加于nand存儲器16、dram20以及控制器18。
53.雖未圖示,但對ssd14內部的溫度進行測定的溫度傳感器的輸出以及ssd14的各設備的過電流的檢測結果被輸入至控制邏輯60。與總線線路44連接的控制邏輯60經由i2c i/
f電路64按照i2c方式將所輸入的數據發送給控制器18,并且,經由i2c i/f電路64按照i2c方式接收從控制器18發送來的控制信號。
54.在檢測到電源電路22所生成的電源電壓根據ssd14的溫度而發生了變動的情況下,控制器18向電源電路22提供根據溫度對電源電路22所生成的電壓進行調整的控制信號。另外,控制器18在檢測到過電流的情況下,向電源電路22提供使施加于流動所檢測到的過電流的設備的電壓的生成停止的控制信號。控制邏輯60根據從控制器18發送的控制信號,向負載開關54、ldo穩壓器56、dc/dc轉換器58提供控制信號。
55.i2c i/f電路64與控制邏輯60以及控制器18的總線線路44連接,根據從控制邏輯60發送的控制信號,按照i2c方式與控制器18進行通信。
56.作為電壓轉換器的ldo穩壓器56、dc/dc轉換器58可以是公知的結構,但作為一個例子,將dc/dc轉換器58內的升壓用的dc/dc轉換單元58a和降壓用的dc/dc轉換單元58b的電路圖表示于圖3。
57.升壓用的dc/dc轉換單元58a對負載開關54的輸出電壓進行升壓,對plp電容器24進行充電。降壓用的dc/dc轉換單元58b輸入plp電容器24的放電電流,對plp電容器24的輸出電壓進行降壓,向ldo穩壓器56供給降壓電壓。
58.升壓用的dc/dc轉換單元58a包括串聯連接的電感器72和二極管74以及并聯連接的電容器76和電阻78。從輸入電壓產生的輸入電流被輸入到電感器72的一端。電感器72的另一端與二極管74的陽極端連接,并且,經由開關元件(sw元件)80而接地。二極管74的陰極端經由并聯連接的電容器76和電阻78而接地。電阻78的端子電壓被設為dc/dc轉換單元58a的輸出電壓,被施加于plp電容器24,plp電容器24被進行充電。
59.開關元件80包括mosfet(metal-oxide-semiconductor field-effect transistor,金屬氧化物半導體場效應晶體管)等來構成。在開關元件80的控制端連接有脈沖寬度調制電路(pwm電路)82。在plp電容器24被進行充電的期間,pwm電路82基于從控制邏輯60發送的控制信號,對開關元件80的導通或者斷開進行控制。在開關元件80導通的期間,輸入電壓被施加于電感器72,在電感器72中流動的電流增加。在開關元件80斷開的期間,二極管74成為正偏置,電感器72的電流減少,能量被充到電容器76,在電阻78的兩端間產生比輸入電壓高的電壓。
60.從pwm電路82輸出的脈沖信號的周期是一定的,開關元件80周期性地導通或者斷開。從dc/dc轉換單元58a輸出的電壓、即plp電容器24的充電電壓根據開關元件80的一個周期中的導通期間的比(也被稱為導通脈沖的占空比)而變化。
61.在規定了能夠施加于plp電容器24的上限的容許電壓的情況下,控制邏輯60對pwm電路82通知使得dc/dc轉換單元58a的輸出電壓成為容許電壓以下的占空比。在不對plp電容器24進行充電的期間中,pwm電路82總是輸出低電平的信號,因此,開關元件80總是斷開。
62.降壓用的dc/dc轉換單元58b包括在漏極端連接有plp電容器24的mosfet86。mosfet86是開關元件的一個例子。在mosfet86的柵極端連接有pwm電路84。pwm電路84基于從控制邏輯60發送的控制信號,對mosfet86的導通或者截止進行控制。mosfet86的源極端與二極管88的陰極端連接,并且,經由電感器90和電容器92的串聯電路而接地。二極管88的陽極端接地。電感器90與電容器92的連接點成為輸出端。
63.當mosfet86導通時,從plp電容器24的放電電流經由電感器90流至輸出端,電容器
92被進行充電。在效率為100%的理想的dc/dc轉換器的情況下,vin
×
iin=vout
×
iout(vin為輸入電壓,vout為輸出電壓,iin為輸入電流,iout為輸出電流),因此,在進行降壓的情況下,輸出電流需要比輸入電流大。因此,當mosfet86截止時,通過被充到了電容器92的能量,經由二極管88、電感器90從接地抽出電流,從輸出端輸出電流。
64.從pwm電路84輸出的脈沖信號的周期是一定的,mosfet86周期性地導通或者截止。從dc/dc轉換單元58b輸出的電壓根據mosfet86的占空比而變化。控制邏輯60對pwm電路84通知使得dc/dc轉換單元58b的輸出電壓成為與負載開關54的輸出電壓相同的占空比。
65.dc/dc轉換單元58b的輸出電壓代替負載開關54的輸出電壓而被施加于dc/dc轉換器58。通過dc/dc轉換器58的dc/dc轉換單元58b以外的降壓用的dc/dc轉換單元進行降壓,生成多個電源電壓。由此,在外部電源被切斷之后,在流動plp電容器24的放電電流的期間中,電源電路22能夠向nand存儲器16、控制器18以及dram20繼續供給電源電壓。
66.(ssd14的消耗電流)
67.圖4表示通過從外部電源向電源電路22供給的外部電源電壓而被供給至ssd14的消耗電流波形的一個例子。圖4的(a)表示由寫入動作產生的消耗電流的變化的一個例子。
68.如前述的那樣,每個通道連接有8個nand芯片(第1nand芯片~第8nand芯片),因此,ssd14在裝置整體上進行18通道
×
8交織=144交織動作。寫入動作通過nand i/f電路38對nand存儲器16發布數據輸入命令和編程命令來進行。來自主機12的寫入數據被保存于dram20。首先,nand i/f電路38向nand存儲器16發送數據輸入命令和dram20內的寫入數據。根據數據輸入命令,nand存儲器16向nand存儲器16內的數據緩存(寄存器)寫入寫入數據。接著,nand i/f電路38向nand存儲器16發送編程命令。根據編程命令,nand存儲器16將數據緩存內的寫入數據寫入到nand芯片16-i內的存儲單元。
69.在一次寫入動作中,首先進行對于各通道的第1nand芯片的數據輸入動作,寫入數據被寫入到nand存儲器16內的數據緩存。具體而言,首先進行對于第1通道的第1nand芯片的數據輸入動作,進行對于第2通道的第1nand芯片的數據輸入動作,以下同樣地進行對于第18通道的第1nand芯片的數據輸入動作。當通過數據輸入動作而寫入數據被寫入到nand存儲器16內的數據緩存后,編程動作的準備完成,進行對于各通道的第1nand芯片的編程動作。具體而言,首先進行對于第1通道的第1nand芯片的編程動作,進行對于第2通道的第1nand芯片的編程動作,以下同樣地進行對于第18通道的第1nand芯片的編程動作。
70.這樣,對于某通道的nand芯片的編程動作在時間上從對于該某通道的nand芯片的數據輸入動作發生延遲而被執行。因此,對于某通道的nand芯片的編程動作有時與對于與該某通道不同的通道的nand芯片的數據輸入動作同時地被執行。編程動作所需要的期間與數據輸入動作所需要的時間相比是相當長的。另外,編程動作被連續地執行,但存在不執行數據輸入動作的期間。因此,在寫入動作中被供給至ssd14的消耗電流在同時執行數據輸入動作和編程動作的t1期間和不執行數據輸入動作而僅執行編程動作的t2期間是不同的。t2期間的消耗電流比t1期間的消耗電流小。
71.圖4的(b)表示寫入期間和擦除期間的消耗電流的差異的一個例子。圖4的(a)和圖4的(b)的時間軸是不同的尺度。圖4的(a)的t1期間、t2期間的多個對包含于圖4的(b)的一個寫入期間。在nand存儲器16中,在對于存儲單元寫入數據的動作之前,存儲單元的數據被刪除(擦除)。擦除期間的消耗電流比寫入期間的消耗電流小。
72.這樣,ssd14的消耗電流根據所執行的命令的種類而變化。另外,即使是相同的命令,ssd14的消耗電流也會根據時間的經過而變化。因此,若能夠在ssd14的消耗電流小的期間中對plp電容器24進行充電,則能夠不降低ssd14的功能地降低峰值電流。
73.(節流控制)
74.作為對ssd14的消耗電力進行調整的方法,具有節流控制。節流控制是指通過對全部nand控制器38-j同時發布的命令的數量進行限制或者對定時進行控制來對ssd14的消耗電流進行調整。
75.圖5表示節流控制的概要。節流控制由nand需求管理器36和nand控制器38-j如以下那樣進行。nand需求管理器36向nand控制器38-j發送命令發布要求。nand控制器38-j當接收到命令發布要求時,向nand需求管理器36發送發布申請和權重信息wij(t)。在節流控制中,因nand芯片16-i執行命令而消耗的電流量被作為命令的權重來進行管理。如圖4所示,在命令執行期間中,消耗電流不是一定的,而是隨著時間的經過而變化。因此,權重信息wij(t)被表示為時間的函數。nand需求管理器36當接收到發布申請和權重信息wij(t)時,基于權重信息wij(t)的總計σwij(t)來判斷可否發布命令,向nand控制器38-j發送命令發布的允許/不允許信號。nand控制器38-j當接收到從nand需求管理器36發送來的允許信號時,發布命令。
76.nand控制器38-j包括執行中命令寄存器102、權重寄存器104、發布要求命令寄存器106、權重寄存器108以及權重表112。
77.權重表112存儲nand i/f電路38(nand控制器38-j)有可能對nand存儲器16發布的全部命令的權重w(t)。
78.圖6表示權重表112的一個例子。例如,對擦除命令設定有權重w1(t),對數據輸入命令設定有權重w2(t),對編程命令設定有權重w3(t),對讀命令設定有權重w4(t)。
79.圖7的(a)表示在1個nand芯片16-i中根據擦除命令執行的刪除動作中的消耗電流。圖7的(b)表示對擦除命令設定的權重w1(t)。刪除動作中的nand芯片單體的消耗電流在擦除期間中小,在核查(verify)期間中大,因此,擦除命令的權重w1(t)如以下那樣設定。
80.0<t≤t1(例如50)時,w1(t)=w13(例如300)
81.t1<t≤t2(例如200)時,w1(t)=w12(例如100)
82.t2<t≤t3(例如2000)時,w1(t)=w11(例如50)
83.t3<t≤t4(例如2200)時,w1(t)=w12
84.t4<t≤t5(例如4000)時,w1(t)=w11
85.t5<t≤t6(例如4200)時,w1(t)=w13
86.在此,t2<t≤t3的期間和t4<t≤t5的期間相當于擦除期間。
87.圖7的(c)表示1個nand芯片16-i中的通過編程命令而執行的寫入動作中的編程期間的消耗電流。圖7的(d)表示編程命令的權重w3(t)。編程期間的消耗電流大致一定,因此,編程命令的權重在0<t≤t7(例如3000)時被設定為w3(t)=w31(例如100)。
88.權重w(t)的時間t是將命令的執行開始時設為t=0的時間。命令的執行期間不同,因此,對命令設定的權重w(t)的時間t的上限、即時間長度根據命令而不同。
89.返回圖5的說明,nand需求管理器36在接受到從主機12發送來的對于nand芯片16-i的讀要求、寫要求、擦除要求等的情況下、或者在接受到從控制器38的固件、設備等發
布的對于nand芯片16-i的垃圾收集要求、刷新要求、調試要求等的對于nand存儲器16的后臺處理的要求的情況下,向連接有所對應的nand芯片16-i的nand控制器38-j發送命令發布要求。
90.nand控制器38-j當接收到從nand需求管理器36發送的命令發布要求時,生成所被要求的命令(以下稱為發布要求命令),將所生成的命令寫入到發布要求命令寄存器106。
91.nand控制器38-j在將發布要求命令寫入到發布要求命令寄存器106時,從權重表112讀出該發布要求命令的權重,將發布要求命令的權重wb(t)寫入到權重寄存器108。發布要求命令的權重wb(t)表示執行發布要求命令的1個nand芯片16-i在從發布要求命令的發布時到發布要求命令的執行結束的預定時刻為止的期間所消耗的電流的預測值的變化。
92.nand控制器38-j當接收到從nand需求管理器36發送來的命令發布的允許信號時,對nand芯片16發布保存于發布要求命令寄存器106的發布要求命令,將所發布的命令從發布要求命令寄存器106刪除,并且,寫入到執行中命令寄存器102。執行中命令寄存器102保存與nand控制器38-j連接的16個nand芯片16執行中的至少1個命令(以下稱為執行中命令)。
93.nand控制器38-j當將所發布的命令寫入到執行中命令寄存器102時,將所發布的命令的權重wb(t)從權重寄存器108刪除,并且,將權重wb(t)作為執行中命令的權重wa(t)寫入到權重寄存器104。權重寄存器104存儲保存于執行中命令寄存器102的至少1個執行中命令的權重wa1(t)、wa2(t)、
……
的權重合計σwa(t)(=wa1(t)+wa2(t)+
……
)。執行中命令的權重的權重合計σwa(t)表示從nand控制器38-j發布了的命令中的最新命令的發布時到執行結束的預定時刻為止的期間的消耗電流的預測值的變化。
94.發布要求命令的權重wb(t)的時間是將發布要求命令的發布時設為t=0的時間,執行中命令的權重合計σwa(t)的時間t是將最新命令的發布時設為t=0的時間。因此,nand控制器38-j將發布要求命令的權重wb(t)的時間t=0作為最新命令的發布時,將發布要求命令的權重wb(t)作為執行中命令的權重合計σwa(t),寫入到權重寄存器104。
95.nand控制器38-j與發布申請一起向nand需求管理器36發送的權重信息wij(t)是保存于權重寄存器104的權重合計σwa(t)與保存于權重寄存器108的wb(t)之和(wij(t)=σwa(t)+wb(t))。nand控制器38-j在向nand需求管理器36發送命令的發布申請時,求出權重信息wij(t)。nand控制器38-j將發布要求命令的權重wb(t)的時間t=0作為最新命令的發布時間,計算保存于權重寄存器104的權重合計σwa(t)與保存于權重寄存器108的wb(t)之和(wij(t)=σwa(t)+wb(t))。
96.nand需求管理器36包括存儲從全部nand控制器38-j發送來的權重信息wij(t)的合計(以下被稱為權重信息合計)σwij(t)的權重信息合計寄存器114、和存儲權重信息合計σwij(t)的容許值的容許值寄存器116。權重對應于消耗電流,因此,權重信息合計σwij(t)的容許值對應于ssd14的消耗電流的容許值。
97.nand需求管理器36每當接收到從某一nand控制器38-j發送來的權重信息wij(t)時,計算權重信息合計σwij(t),對保存于權重信息合計寄存器114的權重信息合計σwij(t)進行更新。
98.圖8是表示進行節流控制的nand控制器38-j的各個處理的一個例子的流程圖。圖9是表示進行節流控制的nand需求管理器36的處理的一個例子的流程圖。
99.nand控制器38-j在圖8的(s132)中判定是否接收到從nand需求管理器36發送來的命令發布要求。
100.nand控制器38-j反復執行s132的判定處理,直到接收到從nand需求管理器36發送來的命令發布要求。
101.在接收到從nand需求管理器36發送來的命令發布要求的情況下(s132:是),nand控制器38-j在s134中生成被要求了發布的命令,將所生成的命令寫入到發布要求命令寄存器106。
102.nand控制器38-j在s136中從權重表112讀出所生成的命令的權重w(t),將所讀出的權重w(t)作為發布要求命令的權重wb(t)寫入到權重寄存器108。當權重wb(t)被寫入到權重寄存器108時,權重信息wij(t)(=σwa(t)+wb(t))被進行更新。權重信息wij(t)表示與nand控制器38-j連接的16個nand芯片16各自在從發布要求命令的發布時到執行結束的預定時刻為止的期間所消耗的電流的合計的預測值。
103.nand控制器38-j在s138中向nand需求管理器36發送發布申請和權重信息wij(t)。發布申請是對nand需求管理器36詢問是否可以發布被要求了發布的命令的申請。
104.另一方面,nand需求管理器36在圖9的s162中判定是否接收到從任一nand控制器38-j發送來的發布申請和權重信息wij(t)。
105.nand需求管理器36反復執行s162的判定處理,直到接收到從任一nand控制器38-j發送來的發布申請和權重信息wij(t)。
106.nand需求管理器36當接收到從任一nand控制器38-j發送來的發布申請和權重信息wi(t)時(s162:是),在s164中,對保存于權重信息合計寄存器114的權重信息合計σwij(t)加上所接收到的權重信息wij(t)來對權重信息合計σwij(t)進行更新。權重信息合計σwij(t)表示與全部nand控制器38-j連接的144個nand芯片16-i各自在從發布要求命令的發布時到執行結束的預定時刻為止的期間所消耗的電流的合計的預測值。
107.nand需求管理器36在s166中判定在從發布要求命令的發布時到執行結束的預定時刻為止的期間、權重信息合計σwij(t)是否為保存于容許值寄存器116的容許值以下。
108.在判斷為了在從發布要求命令的發布時到執行結束的預定時刻為止的期間、權重信息合計σwij(t)為容許值以下的情況下(s166:是),能夠預測為即使進行發布申請涉及的命令的發布、ssd14的消耗電流也不會超過容許值,因此,nand需求管理器36在s168中向發送了發布申請的nand控制器38-j發送允許信號。
109.在判斷為了在從發布要求命令的發布時到執行結束的預定時刻為止的期間、權重信息合計σwij(tc)不為容許值以下的情況下(s166:否),能夠預測為當進行發布申請涉及的命令的發布時、ssd14的消耗電流無法保持為容許值以下,因此,nand需求管理器36在s170中向發送了發布申請的nand控制器38-j發送不允許信號。
110.nand需求管理器36通過執行s168或者s170,完成對于一個發布申請的處理,但nand需求管理器36在執行s168或者s170之后,再次執行s162的接收判定處理。
111.由此,nand需求管理器36在預測到ssd14的消耗電流會超過容許值的情況下,不允許命令的發布,因此,能防止ssd14的消耗電流超過容許值。
112.返回圖8的說明,nand控制器38-j在s138中向nand需求管理器36發送發布申請和權重信息wij(t)之后,在s140中判定是否接收到從nand需求管理器36發送來的允許信號。
113.在接收到不允許信號的情況下(s140:否),nand控制器38-j再次執行s132的命令發布要求的接收判定處理。
114.在接收到允許信號的情況下(s140:是),nand控制器38-j向nand芯片16-i發布對nand需求管理器36進行了發布申請的命令。具體而言,在s142中,nand控制器38-j從發布要求命令寄存器106讀出發布要求命令,向nand芯片16-i發送所讀出的命令,并且,將其寫入到執行中命令寄存器102。
115.nand控制器38-j在s144中從權重寄存器108讀出發布要求命令的權重wb(t),將所讀出的權重wb(t)作為執行中命令的權重wa(t)寫入到權重寄存器104。nand控制器38-j在s145中對保存于權重寄存器104的權重合計σwa(t)進行更新,清除保存于權重寄存器108的權重wb(t)。在該情況下,權重wb(t)成為0,但權重合計σwa(t)會相應地增加,因此,權重信息wij(t)不變化。
116.nand控制器38-j在s146中判定是否接收到從nand芯片16-i發送來的命令完成通知。
117.nand控制器38-j反復進行s146的判定處理,直到接收到來自nand芯片16-i的命令完成通知。
118.在接收到來自nand芯片16-i的命令完成通知的情況下(s146:是),nand控制器38-j在s148中向nand需求管理器36發送響應信息。響應信息是將nand需求管理器36要求了發布的命令的執行結果從nand控制器38-j回復給nand需求管理器36的信息。
119.nand控制器38-j在s150中從保存于權重寄存器104的權重合計σwa(t)減去執行完成了的命令的權重wa(t)。nand控制器38-j在s151中對權重合計σwa(t)進行更新,從執行中命令寄存器102刪除執行完成了的命令。
120.(plp電容器24的充電控制)
121.圖10是表示進行plp電容器24的充電控制的控制器18的處理流程的一個例子的流程圖。
122.cpu32與節流控制并行地,每隔一定時間時檢查是否執行plp電容器24的充電。cpu32具備對一定時間進行計數的計時器。cpu32在s212中判定在ssd14開始動作后從成為執行plp電容器24的充電的契機起是否經過了一定時間、或者從是否執行充電的上次檢查起是否經過了一定時間。一定期間被設定為短時間、例如數微秒。
123.在經過了一定時間的情況下(s212:是),cpu32在s214中對nand需求管理器36要求向cpu32發送權重信息合計的當前值σwij(tc)。cpu32在s216中接收從nand需求管理器36發送來的權重信息合計的當前值σwij(tc)。
124.cpu32在s218中判定權重信息合計的當前值σwij(tc)是否為閾值以下。閾值是用于為了使得在ssd14的總消耗電流小時對plp電容器24進行充電而判定總消耗電流是大、還是小的閾值。
125.在權重信息合計的當前值σwij(tc)為閾值以下的情況下(s218:是),ssd14的總消耗電流小,因此,也可以對plp電容器24進行充電。cpu32在s220中判定從上次充電開始起的經過時間是否為ta以下。
126.在從上次充電開始起的經過時間為ta以下的情況下(s220:是),從上次充電開始起未經過時間ta,plp電容器24蓄積有足以使plp功能工作的能量,能夠判斷為plp電容器24
不需要充電,因此,cpu32再次執行s212的一定時間經過的判定處理。
127.在從上次充電開始起的經過時間不為ta以下的情況下(s220:否),從上次充電開始起經過了時間ta,因此,能夠判斷為plp電容器24蓄積的能量因自然放電而減少了,因此,cpu32在s224中向電源電路22發送plp電容器24的充電要求。充電要求經由總線線路44、i2c i/f電路64而被發送至控制邏輯60。控制邏輯60當接收到充電要求時,對dc/dc轉換器58a的pwm電路82進行控制,使dc/dc轉換器58a的開關元件80導通或者斷開,開始plp電容器24的充電。
128.在向電源電路22發送了充電要求之后,cpu32再次執行s212的一定時間經過的判定處理。
129.在s218的判定中,在權重信息合計的當前值σwij(tc)不為閾值以下的情況下(s218:否),ssd14的總消耗電流大,因此,不對plp電容器24充電為好。但是,在plp電容器24的能量減少到了用于實現plp功能的能量以下的情況下,需要例外地對plp電容器24進行充電。
130.因此,在s218的判定中,在權重信息合計的當前值σwij(tc)不為閾值以下的情況下(s218:否),cpu32在s222中判定從上次充電完成起的經過時間是否為tb以下。tb是比ta長的時間。
131.在從上次充電完成起的經過時間為tb以下的情況下(s222:是),從上次充電完成起未經過時間tb,因此,能夠判斷為plp電容器24蓄積有能夠使plp功能工作的能量,因此,cpu32再次執行s212的一定時間經過的判定處理。
132.在從上次充電完成起的經過時間不為tb以下的情況下(s222:否),從上次充電完成起經過了時間tb,因此,plp電容器24的能量因自然放電而減少,能夠判斷為plp電容器24未蓄積有能夠使plp功能工作的能量,因此,cpu32在s224中向電源電路22發送plp電容器24的充電要求。即,plp電容器24的消耗電流大,但在plp電容器24的能量變為了用于實現plp功能的能量以下的情況下,例外地允許充電。
133.越是縮短在s212中使用于判定的計時器的一定期間,在s222的判定中成為“否”的可能性越低,即在ssd14的總消耗電流大時對plp電容器24進行充電的可能性變低。
134.根據實施方式涉及的存儲系統,命令執行期間的消耗電流的變化被作為時間函數來預先進行設定。控制器在發布命令之前,基于時間函數來預測發布了命令的情況下的消耗電流的變化。控制器在預測結果表示消耗電流小的情況下發布命令。控制器在預測結果表示消耗電流大的情況下不發布命令。控制器每隔一定時間而檢查消耗電流。控制器在消耗電流小的情況下定期地對plp電容器24進行充電。控制器在消耗電流大的情況下,以比消耗電流小的情況長的周期定期地對plp電容器24進行充電。
135.因此,能夠防止由于在消耗電流大的情下況對plp電容器24進行充電而ssd的消耗電流暫時性地變大、峰值電流超過ssd的容許電流值。由此,能夠兼顧峰值電流要求和性能要求。
136.根據實施方式,也可以提供存儲系統的控制方法。
137.此外,本發明并不保持不變地限定于上述實施方式,可以在實施階段中在不脫離其宗旨的范圍內對構成要素進行變形來具體化。另外,通過上述實施方式所公開的多個構成要素的適當的組合,能夠產生各種發明。例如,也可以從實施方式所示的全部構成要素刪
除幾個構成要素。進一步,也可以適當地組合不同的實施方式涉及的構成要素。
技術特征:
1.一種存儲系統,具備:非易失性存儲器;控制器,其向所述非易失性存儲器寫入數據,從所述非易失性存儲器讀出數據;以及電源電路,其具備電容器,利用外部電源來至少向所述非易失性存儲器和所述控制器供給電源,在所述外部電源被切斷之后,利用所述電容器的能量來至少向所述非易失性存儲器和所述控制器供給電源,所述控制器在所述非易失性存儲器的消耗電流比第1電流小的情況下,對所述電源電路進行控制以使得對所述電容器進行充電。2.根據權利要求1所述的存儲系統,所述控制器在所述非易失性存儲器的消耗電流比所述第1電流小的情況下,對所述電源電路進行控制以使得在從上次充電起經過了第1時間時對所述電容器進行充電。3.根據權利要求2所述的存儲系統,所述控制器在所述非易失性存儲器的消耗電流不比所述第1電流小的情況下,對所述電源電路進行控制以使得在從上次充電起經過了比所述第1時間長的第2時間時對所述電容器進行充電。4.根據權利要求1所述的存儲系統,所述控制器每隔一定時間而判定所述非易失性存儲器的消耗電流是否比第1電流小,在所述非易失性存儲器的消耗電流比第1電流小的情況下,對所述電源電路進行控制以使得對所述電容器進行充電。5.根據權利要求1所述的存儲系統,所述控制器在要向所述非易失性存儲器發布第1命令的情況下,當所述非易失性存儲器因所述非易失性存儲器執行至少一個第2命令而消耗的電流和所述非易失性存儲器因所述非易失性存儲器執行了所述第1命令而消耗的電流的合計比第2電流小時,發布所述第1命令。6.根據權利要求5所述的存儲系統,所述控制器,存儲包括所述第1命令和所述第2命令的多個命令與權重函數的對應關系,所述權重函數表示所述非易失性存儲器因所述多個命令的各個命令的執行而消耗的電流的時間變化,基于與所述非易失性存儲器正在執行的所述第2命令對應的權重函數和與所述第1命令對應的權重函數的合計,判定所述合計是否比第2電流小。7.一種控制方法,是存儲系統的控制方法,所述存儲系統具備:非易失性存儲器;和電源電路,其具備電容器,利用外部電源來至少向所述非易失性存儲器供給電源,在所述外部電源被切斷之后,利用所述電容器的能量來至少向所述非易失性存儲器供給電源,所述控制方法包括:在所述非易失性存儲器的消耗電流比第1電流小的情況下,對所述電源電路進行控制以使得對所述電容器進行充電。
技術總結
本發明的一個實施方式的目的在于提供適當地對PLP電容器的充電進行控制的存儲系統以及控制方法。根據一個實施方式,存儲系統具備:非易失性存儲器;控制器,其向非易失性存儲器寫入數據,從非易失性存儲器讀出數據;以及電源電路。電源電路具備電容器。電源電路利用外部電源來至少向非易失性存儲器和控制器供給電源,在外部電源被切斷之后,利用電容器的能量來至少向非易失性存儲器和控制器供給電源。控制器在非易失性存儲器的消耗電流比第1電流小的情況下,對電源電路進行控制以使得對電容器進行充電。器進行充電。器進行充電。
