專利名稱:存儲裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施方式涉及存儲裝置。
背景技術(shù):
作為保存數(shù)據(jù)的媒體,存在各種類型。作為這樣的媒體,例如有基于客戶機(jī)-服務(wù) 器模型的存儲裝置。在基于客戶機(jī)-服務(wù)器模型的、包含存儲裝置及主機(jī)裝置的存儲系統(tǒng)中,存在與其他的存儲系統(tǒng)不同之處。例如,基于客戶機(jī)-服務(wù)器模型的存儲裝置及主機(jī)裝置的任務(wù)分擔(dān),與不基于客戶機(jī)-服務(wù)器模型的存儲裝置及主機(jī)裝置的任務(wù)分擔(dān)不同。因而,主機(jī)裝置與存儲裝置之間的通信內(nèi)容,在基于客戶機(jī)-服務(wù)器模型的系統(tǒng)與不基于該模型的系統(tǒng)中也不同。存儲系統(tǒng)有時遵照特定的標(biāo)準(zhǔn)。例如,作為基于客戶機(jī)-服務(wù)器模型的存儲系統(tǒng),例如舉出UFS(Universal Flash Storage,通用閃存)存儲裝置及主機(jī)裝置。關(guān)于由標(biāo)準(zhǔn)規(guī)定的方面,存儲系統(tǒng)必須遵照規(guī)范。但是,也存在未由標(biāo)準(zhǔn)規(guī)定的方面,關(guān)于這樣的方面,能夠由存儲系統(tǒng)的設(shè)計(jì)者確定。關(guān)于這樣存在自由度的事項(xiàng),應(yīng)該確定得以適合于存儲系統(tǒng)的特性的形式實(shí)現(xiàn)優(yōu)選的性能。期望對于伴有這樣的自由度的事項(xiàng)進(jìn)行適合的確定,提供能夠?qū)崿F(xiàn)更高性能的存儲裝置。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施方式,提供能夠?qū)崿F(xiàn)更高性能的存儲裝置。實(shí)施方式所涉及的存儲裝置,包含以多個單元為寫入單位而寫入數(shù)據(jù)的非易失性的存儲器;以及控制器??刂破鲗τ趤碜灾鳈C(jī)裝置的、將分配了邏輯地址的寫入數(shù)據(jù)寫入存儲器的請求,對主機(jī)裝置請求對于寫入數(shù)據(jù)的分割出的部分、即寫入數(shù)據(jù)部分指定其大小地進(jìn)行發(fā)送。此外,控制器對寫入數(shù)據(jù)附加附加數(shù)據(jù)而寫入存儲器。寫入數(shù)據(jù)部分具有以該寫入數(shù)據(jù)部分與對應(yīng)的附加數(shù)據(jù)的總和大小在寫入單位的大小以下成為最大的方式確定的大小(長度,尺寸)或其整數(shù)倍的大小。根據(jù)本發(fā)明的實(shí)施方式,能夠提供能夠?qū)崿F(xiàn)更高性能的存儲裝置。
圖I表示存儲裝置與主機(jī)裝置之間的數(shù)據(jù)寫入時的通信的例子。圖2表示參考例的基于客戶機(jī)-服務(wù)器模型的存儲裝置與主機(jī)裝置之間的數(shù)據(jù)寫入時的通信的例子。圖3表示第I實(shí)施方式所涉及的存儲裝置的硬件上的結(jié)構(gòu)。
圖4是例示存儲器的電路圖。圖5是例示存儲空間的構(gòu)成的圖。圖6是表示存儲裝置被封裝起來的形態(tài)的例子。圖7表示第I實(shí)施方式所涉及的存儲裝置的功能塊。圖8表示包的例子。圖9表示邏輯地址與物理塊的變換表的例子。圖10是更詳細(xì)地表示第I實(shí)施方式所涉及的LU的功能框圖。圖11表示第I實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的狀況?!?br>
圖12例示寫入指令。圖13例示用于傳送請求的通信內(nèi)容。圖14例示用于數(shù)據(jù)傳送的通信內(nèi)容。圖15表示第2實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的狀況。圖16表示第3實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的前半部分的狀況。圖17表示第3實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的后半部分的狀況。圖18例示第I實(shí)施方式所涉及的I頁中的數(shù)據(jù)的中部。
具體實(shí)施例方式在實(shí)施方式的說明之前,關(guān)于參考例簡單地進(jìn)行說明。作為參考例,關(guān)于基于客戶機(jī)-服務(wù)器模型的存儲系統(tǒng)及不基于客戶機(jī)-服務(wù)器模型的存儲系統(tǒng)進(jìn)行說明。作為不基于客戶機(jī)-服務(wù)器模型的存儲系統(tǒng),取SD 卡及eMMC為例。圖I表示存儲裝置(SD 卡或eMMC)與主機(jī)裝置之間的數(shù)據(jù)寫入時的通信的例子。如圖I所示,主機(jī)裝置發(fā)布寫入指令,由此開始寫入。寫入指令包含分配給寫入數(shù)據(jù)的邏輯地址。邏輯地址對應(yīng)于寫入數(shù)據(jù)的開始位置。存儲裝置若接收到寫入指令,則返回響應(yīng)。主機(jī)裝置若接收到響應(yīng),則向存儲裝置傳送應(yīng)該寫入的數(shù)據(jù)(寫入數(shù)據(jù))。寫入數(shù)據(jù)被分割為多個寫入數(shù)據(jù)部分而傳送。寫入數(shù)據(jù)部分的大小,基于SD 卡或eMMC的標(biāo)準(zhǔn)而預(yù)先確定。存儲裝置在接收數(shù)據(jù)的期間,使用就緒/忙信號通知就緒狀態(tài)。存儲裝置,將接收的數(shù)據(jù)逐次寫入存儲裝置內(nèi)的存儲器。另一方面,若例如因存儲裝置的緩沖器存滿等原因而存儲裝置無法接收數(shù)據(jù),則存儲裝置對主機(jī)裝置通知忙狀態(tài)。在存儲裝置的忙狀態(tài)期間,主機(jī)裝置中斷數(shù)據(jù)的傳送。若忙狀態(tài)解除,則主機(jī)裝置進(jìn)而傳送寫入數(shù)據(jù)部分?jǐn)?shù)據(jù)。這樣,若接收到寫入數(shù)據(jù)的全體,則主機(jī)裝置發(fā)送寫入停止指令。存儲裝置若接收到寫入停止指令,則返回響應(yīng),從而寫入結(jié)束。這樣,數(shù)據(jù)的寫入位置由主機(jī)裝置指定,寫入數(shù)據(jù)部分的大小也由標(biāo)準(zhǔn)規(guī)定。SP,在參考例的存儲系統(tǒng)中,主機(jī)裝置具有數(shù)據(jù)傳送的主導(dǎo)權(quán),主機(jī)裝置對存儲裝置發(fā)出指示,存儲裝置遵從該指示。存儲裝置所具有的自由度小。圖2表示基于客戶機(jī)-服務(wù)器模型的存儲裝置與主機(jī)裝置之間的數(shù)據(jù)寫入時的通信的例子。如圖2所示,主機(jī)裝置發(fā)布寫入指令,由此開始寫入。寫入指令包含指定寫入的位置的邏輯地址和該寫入指令的對象寫入數(shù)據(jù)的大小的信息。若接收到寫入指令,則存儲裝置確定寫入數(shù)據(jù)的傳送請求的內(nèi)容。在傳送請求中,包含寫入數(shù)據(jù)之中的、存儲裝置期望從主機(jī)裝置傳送的部分的大小及偏移地址。偏移地址用于確定存儲裝置期望傳送的部分的位置。主機(jī)裝置若接收到傳送請求,則向存儲裝置傳送所請求的數(shù)據(jù)部分。存儲裝置執(zhí)行將接收到的數(shù)據(jù)部分寫入存儲器的工作、發(fā)送其他的數(shù)據(jù)部分的傳送請求的工作。該寫入和傳送請求持續(xù)至寫入數(shù)據(jù)全體被寫入為止。根據(jù)寫入數(shù)據(jù)全體的寫入的成功或失敗,存儲裝置向主機(jī)裝置發(fā)送相應(yīng)的響應(yīng)。這樣,在圖2的例子中,存儲裝置確定寫入數(shù)據(jù)部分,發(fā)送傳送請求。在其寫入中,存在由標(biāo)準(zhǔn)規(guī)定的事項(xiàng)和不由標(biāo)準(zhǔn)規(guī)定的事項(xiàng)。例如,由存儲裝置產(chǎn)生的傳送請求內(nèi)的偏移地址是順序的還是隨機(jī)的,在主機(jī)裝置中任意地設(shè)定,偏移地址的選擇必須遵照該設(shè)定。另一方面,例如由傳送請求指定的數(shù)據(jù)部分的大小有時并不在規(guī)范中規(guī)定。以下,關(guān)于基于這樣的知識而構(gòu)成的實(shí)施方式,參照附圖進(jìn)行說明。另外,在以下的說明中,關(guān)于具有大致相同的功能及結(jié)構(gòu)的構(gòu)成要素,賦予同一符號,并僅在必要的情況下進(jìn)行重復(fù)說明。此外,以下所示的各實(shí)施方式,是例示用于將該實(shí)施方式的技術(shù)思想具體化的裝置和/或方法的方式,實(shí)施方式的技術(shù)思想并不是要將構(gòu)成部件的材質(zhì)、形狀、構(gòu)造、配置等確定為下述的方式。實(shí)施方式的技術(shù)思想,在權(quán)利要求的范圍內(nèi)能夠加以各種變更。 (第I實(shí)施方式)圖3概略地表示第I實(shí)施方式所涉及的存儲裝置。圖3表示存儲裝置的硬件上的結(jié)構(gòu)。如圖3所示,存儲裝置(半導(dǎo)體存儲裝置)I構(gòu)成為能夠與主機(jī)裝置(以下有時簡稱為主機(jī))2通信。存儲裝置I與主機(jī)2以下述方式進(jìn)行通信,即至少對于來自主機(jī)2的寫入請求,存儲裝置I能夠指定寫入數(shù)據(jù)的部分的大小及位置。更具體地,存儲裝置I與主機(jī)2基于客戶機(jī)-服務(wù)器模型進(jìn)行通信。存儲裝置I作為目標(biāo)進(jìn)行工作,主機(jī)2作為發(fā)起方進(jìn)行工作。作為進(jìn)一步具體的例子,存儲裝置I是UFS存儲裝置,主機(jī)2是支持UFS存儲裝置的主機(jī)。存儲裝置I至少包括非易失性的半導(dǎo)體存儲器11和用于控制存儲器11的存儲器控制器12。存儲器11以包括多個位的特定的寫入單位進(jìn)行數(shù)據(jù)的寫入及讀出。進(jìn)而,存儲器11以包括多個寫入單位的擦除單位擦除數(shù)據(jù)。例如,存儲器11包括一個或多個NAND型閃存。在存儲器11為NAND型閃存的情況下,存儲器11以頁單位進(jìn)行數(shù)據(jù)的寫入及讀出。頁,如圖4所示,包括相連接的多個存儲單元的集合的存儲空間,被分配特有的物理地址。各存儲單元包括所謂層疊柵構(gòu)造的MOSFET (metal oxide semiconductor field effect transistor,金屬氧化物半導(dǎo)體場效應(yīng)晶體管)MT。各單元晶體管MT,其閾值電壓與蓄積于浮游柵電極FG的電子的數(shù)量相應(yīng)地變化,存儲與該閾值電壓的不同相應(yīng)的信息。單元晶體管MT其電流路徑(源/^fSD)彼此相互串聯(lián)連接而構(gòu)成NAND串,在NAND串的兩端連接選擇晶體管S1、S2。選擇晶體管S2的電流路徑的另一端連接于位線BL,選擇晶體管SI的電流路徑的另一端連接于源線SL。字線WLO WL63在WL方向延伸,連接于屬于相同行的多個單元晶體管MT的控制柵電極CG。單元晶體管MT設(shè)置于位線BL與字線WL的各交點(diǎn)處。選擇柵線SGD在WL方向延伸,連接于塊內(nèi)的全部選擇晶體管S2。選擇柵線SGS在WL方向延伸,連接于塊內(nèi)的全部選擇晶體管SI。與相同字線WL連接的多個存儲單元晶體管MT構(gòu)成頁。在存儲器11為NAND型閃存的情況下,也可以將存儲器11構(gòu)成為單元晶體管MT能夠取得2個以上的閾值電壓的不同狀態(tài)、即I個存儲單元能夠存儲多值(多位)。在這樣的能夠存儲多值的存儲器的情況下,對I條字線分配多個頁。存儲器11如圖5所示,具備包含多個存儲單元的存儲單元陣列91 ;和在與存儲單元之間進(jìn)行數(shù)據(jù)的輸入輸出的頁緩沖器92。頁緩沖器92保存I頁量的數(shù)據(jù)。在進(jìn)行向存儲器11的數(shù)據(jù)的寫入的情況下,存儲器控制器12與寫入指令一同向存儲器11發(fā)送表示寫入目的地的頁地址和I頁量的寫入數(shù)據(jù)。存儲器11將從存儲器控制器12接收到的寫入數(shù)據(jù)存儲于頁緩沖器92,并將頁緩沖器92內(nèi)的寫入數(shù)據(jù)向由頁地址指定的存儲單元寫入。若開始該向存儲單元的寫入工作,則存儲器11對存儲器控制器12輸出表示處于工作中的忙信號。在繼續(xù)寫入數(shù)據(jù)的情況下,在忙信號切換為就緒信號之后,對下一頁地址進(jìn)行與上述同樣的工作。在進(jìn)行從存儲器11的數(shù)據(jù)讀出的情況下,存儲器控制器12與讀出指令一同向存儲器11發(fā)送表示讀出目的地的頁地址。存儲器11從由頁地址指定的存儲單元向頁緩沖器92讀出I頁量的數(shù)據(jù)。若開始該從存儲單元的讀出工作,則存儲器11對存儲器控制器12輸出忙信號。然后,在忙信號切換為就緒信號之后,將存儲于頁緩沖器92的讀出數(shù)據(jù)輸出 至存儲器控制器12。在繼續(xù)讀出數(shù)據(jù)的情況下,對下一頁地址進(jìn)行與上述同樣的工作。此外,在存儲器11為NAND型閃存的情況下,存儲器11以塊單位進(jìn)行數(shù)據(jù)的擦除。各塊包含具有連續(xù)的物理地址的多個頁。在以下的說明中,為了方便,將寫入單位設(shè)定為頁,將擦除單位設(shè)定為塊。但是,存儲器11并不一定限于NAND型閃存。返回到圖3,存儲裝置I包含1/021、核心邏輯部22和1/023。1/021包含用于將存儲裝置I與主機(jī)2相連接的硬件上的結(jié)構(gòu)。在存儲裝置I為UFS存儲裝置的情況下,在存儲裝置I與主機(jī)2之間的信號中,包含RESET、REF_CLK、DOUT, D0UT_c、DIN、DIN_c、VCC,VCCQ, VCCQ2、VDDi, VDDi2、VDDi3。RESET、REF_CLK、DOUT, D0UT_c、DIN、DIN_c 在主機(jī) 2 與1/021之間通信。RESET是硬件復(fù)位信號。REF_CLK是參照時鐘。DOUT和D0UT_c形成差動信號對,是從主機(jī)2向存儲裝置I發(fā)送的信號。DIN和DIN_c形成差動信號對,是從存儲裝置I向主機(jī)2發(fā)送的信號。VCC、VCCQ, VCCQ2是供給于存儲器11及核心邏輯部22的電源電壓。VDDi、VDDi2、VDDi3供給于核心邏輯部22,是在核心邏輯部22內(nèi)設(shè)置電壓調(diào)節(jié)器時的輸入端子。核心邏輯部22是存儲器控制器12之中的除I/O之外的主要部分。1/023包含用于將存儲器控制器12與存儲器11相連接的硬件上的結(jié)構(gòu)。核心邏輯部22包含主機(jī)接口 31、緩沖器32、數(shù)據(jù)總線33、存儲器接口 34、緩沖器35、ECC電路36、控制總線41、CPU (central processing unit,中央處理單兀)42、ROM (read only memory,只讀存儲器)43、工作 RAM (random access memory,隨機(jī)存儲器)45、寄存器 46。1/021與主機(jī)接口 31連接。主機(jī)接口 31進(jìn)行存儲裝置I與主機(jī)2通信所需的處理。更具體地,主機(jī)接口 31遵照存儲裝置I和主機(jī)2都遵從的通信協(xié)議承擔(dān)存儲裝置I與主機(jī)2之間的通信。在存儲裝置I為UFS存儲裝置的情況下,例如主機(jī)接口 31為UFS接口。UFS接口對于物理層遵照M-PHY標(biāo)準(zhǔn),對于鏈路層遵照UniPro標(biāo)準(zhǔn)。主機(jī)接口 31與緩沖器32連接。緩沖器32經(jīng)由主機(jī)接口 31接收從主機(jī)2向存儲裝置I發(fā)送的數(shù)據(jù),并暫時保存之。此外,緩沖器32暫時保存從存儲裝置I經(jīng)由主機(jī)接口31向主機(jī)2發(fā)送的數(shù)據(jù)。緩沖器32與數(shù)據(jù)總線33連接。1/023與存儲器接口 34連接。存儲器接口 34進(jìn)行存儲器控制器12與存儲器11通信所需的處理。更具體地,存儲器接口 34以存儲器11可以識別的形式發(fā)送來自核心邏輯部22的指示。在存儲器11為NAND型閃存的情況下,存儲器接口 34為NAND型快閃接口。存儲器接口 34與緩沖器35連接。緩沖器35經(jīng)由存儲器接口 34接收從存儲器11向存儲器控制器12發(fā)送的數(shù)據(jù),并暫時保存之。此外,緩沖器35暫時保存從存儲器控制器12經(jīng)由存儲器接口 34向存儲器11發(fā)送的預(yù)定數(shù)據(jù)。緩沖器35與數(shù)據(jù)總線33連接。存儲器接口 34及緩沖器35與ECC(error correcting code,糾錯碼)電路36連接。ECC電路36與數(shù)據(jù)緩沖器35連接。ECC電路36經(jīng)由數(shù)據(jù)總線33接收來自主機(jī)2的寫入數(shù)據(jù),對寫入數(shù)據(jù)附加糾錯碼,并將附加了糾錯碼的寫入數(shù)據(jù)供給到緩沖器35。此外,ECC電路36經(jīng)由緩沖器35接收從存儲器11供給的數(shù)據(jù),對該數(shù)據(jù)使用糾錯碼進(jìn)行糾錯,并將進(jìn)行了糾錯的數(shù)據(jù)供給至數(shù)據(jù)總線33。在控制總線41上,連接著0 說2、1 0143、狀145、寄存器46。CPU42、R0M43、RAM45、寄存器46經(jīng)由控制總線41相互通信。CPU42管理存儲裝置I的全體的工作。CPU42按照存儲于R0M43的控制程序(指令)執(zhí)行預(yù)定的處理。CPU42按照控制程序、按照從主機(jī)2接 收的指令執(zhí)行對于存儲器11的預(yù)定處理。
R0M43存儲由CPU42控制的控制程序等。RAM45作為CPU42的工作區(qū)域而使用,暫時存儲CPU42的工作所需的變量等。寄存器46保存存儲裝置I的工作所需的各種值。此夕卜,寄存器46保存主機(jī)2對存儲裝置I進(jìn)行控制所需的各種值。在控制總線41上,連接著主機(jī)接口 31、緩沖器32、存儲器接口 34、緩沖器35。CPU42基于控制程序和/或來自主機(jī)2的指示,控制主機(jī)接口 31、緩沖器32、存儲器接口 34、緩沖器35。在存儲器控制器12中,也可以設(shè)置模擬電路51。存儲裝置I例如既可以是通過焊料安裝在印刷基板上的嵌入型,也可以是相對于設(shè)置于主機(jī)2的卡槽可以裝卸的可移動型。圖6表示封裝的形態(tài)的存儲裝置I的例子。如圖6所示,在印刷基板201上層疊有芯片狀的多個存儲器11。各存儲器11通過引線202連接于印刷基板201上的布線圖形(未圖示)。芯片狀的存儲器控制器12也設(shè)置于印刷基板201上,通過引線202連接于布線圖形。在印刷基板201的背面,設(shè)置有未圖示的外部端子(例如BGA (ball grid array,球柵陣列))。對于外部端子,分配圖3所示的信號(RESET、REF_CLK、DOUT, D0UT_c、DIN、DIN_c、VCC、VCCQ, VCCQ2、VDDi、VDDi2、VDDi3),經(jīng)由該外部端子在與存儲裝置I外部的主機(jī)2之間進(jìn)行信號的通信。印刷基板201、存儲器11、存儲器控制器12、引線202例如通過樹脂制的封裝203而封裝。接著,在圖7中示出存儲裝置I的結(jié)構(gòu)的另外的視點(diǎn)。更具體地,圖7表示存儲裝置I的邏輯結(jié)構(gòu)、即功能塊。各塊可以作為硬件、計(jì)算機(jī)軟件的任意一種或兩者的組合而實(shí)現(xiàn)。各功能塊作為硬件而實(shí)現(xiàn)還是作為軟件而實(shí)現(xiàn)依賴于對于具體的實(shí)施方式或系統(tǒng)整體所要求的設(shè)計(jì)限制。本領(lǐng)域技術(shù)人員在各具體的實(shí)施方式中能夠以各種方法實(shí)現(xiàn)這些功能,任一實(shí)現(xiàn)方法都包含于實(shí)施方式的范圍。此外,如以下的具體例那樣來區(qū)別各功能塊并不是必須的。例如,一部分功能也可以由與在以下的說明中所例示的功能塊不同的功能塊來執(zhí)行。進(jìn)而,也可以將例示的塊進(jìn)一步分割為詳細(xì)的功能子塊。通過哪一塊來確定,并不是限定實(shí)施方式的內(nèi)容。存儲裝置I包括目標(biāo)端口 61、路由器62、裝置管理器63、描述符64、屬性65、標(biāo)志66、多個LU (Logical unit,邏輯單元)67。目標(biāo)端口 61是用于將存儲裝置I與主機(jī)2可以通信地相連接的端口,例如對應(yīng)于主機(jī)接口 31。路由器62將從主機(jī)2接收的通信(任務(wù)、指令、數(shù)據(jù)、查詢等)路由至目的地的LU67。主機(jī)2通過以一個LU67為目的地的請求來請求指令的處理或任務(wù)管理功能。LU67彼此可以根據(jù)地址(例如LUN(logical unit number,邏輯單元號))來相互識別。LUN例如如圖8所示,可以包含于存儲裝置I與主機(jī)2之間的通信(包)。如圖8所示,包101包含LUN102和實(shí)體部103。LUN102例如可以包含于包101的包頭。實(shí)體部103包含包的功能所特有的內(nèi)容,例如指令、數(shù)據(jù)、各種參數(shù)等。各包的目的地的LU67根據(jù)LUN唯一地確定。在UFS存儲裝置中,存儲裝置I與主機(jī)2之間的包都包含包頭,在包頭內(nèi)描述了 LUN。路由器62將從主機(jī)2接收到的通信(任務(wù)、指令、數(shù)據(jù)、查詢),基于該通信中的LUN路由至目的地的LU67。此外,路由器62將來自多個LU67的以主機(jī)2為目的地的通信例如通過時分復(fù)用以適當(dāng)?shù)捻樞虬l(fā)送至目標(biāo)端口 61。路由器62例如通過CPU42、R0M43、寄存器46來實(shí)現(xiàn)。即,通過CPU42邊參照寄存器46中的值邊執(zhí)行R0M43中的程序,由此來實(shí)現(xiàn)。裝置管理器63進(jìn)行裝置級別的工作及配置的管理。在裝置級別的管理中,例如包·含存儲裝置I的電源管理、睡眠等的控制等。在裝置級別的配置中,包含保存描述符組等。裝置管理器63處理來自主機(jī)2的存儲裝置I的配置信息的變更及作為輸出請求的查詢請求那樣的指令。裝置管理器63例如通過CPU42、R0M43、寄存器46實(shí)現(xiàn)。S卩,通過CPU42,邊參照寄存器46中的值邊執(zhí)行R0M43中的程序,由此來實(shí)現(xiàn)。描述符64、屬性65、標(biāo)志66例如作為工作RAM45中的數(shù)據(jù)而實(shí)現(xiàn)。描述符64具有預(yù)先定義的格式的數(shù)據(jù)結(jié)構(gòu),用于描述關(guān)于存儲裝置I的某種特征。在描述符64中,例如包含訪問存儲裝置I所需的裝置類、子類、協(xié)議等。屬性65是表示對存儲裝置I提供的設(shè)定的可以變更或讀出專用的參數(shù)。在屬性65中,例如包含可以在存儲裝置I與主機(jī)2之間傳送的數(shù)據(jù)的最大值等。標(biāo)志66包括關(guān)于各種項(xiàng)目的擇一的邏輯值,例如通過“真”或“假”、或者“O”或“I”等來表示。各LU67例如通過存儲器11、存儲器接口 34、緩沖器35、ECC電路36、CPU42、R0M43、寄存器46實(shí)現(xiàn)。各LU67相互獨(dú)立,執(zhí)行來自主機(jī)2的處理。從而,各LU67利用存儲器11、接口 21、23、緩沖器35、ECC電路36、CPU42、R0M43、寄存器46等資源的一部分而實(shí)現(xiàn)。各LU如上所述從主機(jī)2通過確定一個LU的LUN而相互區(qū)別。來自主機(jī)2的指令通過所指定的LU67而執(zhí)行。各LU67包含裝置服務(wù)器71、任務(wù)管理器72、存儲區(qū)域73。存儲區(qū)域73包含存儲器11的存儲區(qū)域之中的一部分,實(shí)際存儲來自主機(jī)2的寫入數(shù)據(jù)。裝置服務(wù)器71及任務(wù)管理器72例如通過CPU42、R0M43、寄存器46實(shí)現(xiàn)。S卩,通過CPU42,邊參照寄存器46中的值邊執(zhí)行R0M43中的程序,由此來實(shí)現(xiàn)。裝置服務(wù)器71對從主機(jī)2接收的請求LU級別的處理的指令進(jìn)行解釋、執(zhí)行。在這樣的處理中,例如包含數(shù)據(jù)的寫入、讀出、擦除(刪除)等。LU67包含存儲區(qū)域73,所以裝置服務(wù)器71至少具有控制存儲區(qū)域73 (存儲器11)的功能。任務(wù)管理器72控制多個指令(任務(wù))的執(zhí)行順序,提供任務(wù)管理功能。如上所述,裝置服務(wù)器71進(jìn)行與存儲器11的控制有關(guān)的處理。在這樣的處理中,包含邏輯地址與物理地址的轉(zhuǎn)換。邏輯地址是由主機(jī)2對主機(jī)2所期望寫入存儲裝置I的數(shù)據(jù)分配的地址。物理地址如上所述是用于確定存儲器11的寫入?yún)^(qū)域(頁)或擦除區(qū)域(塊)的地址。裝置服務(wù)器71管理與自身對應(yīng)的存儲區(qū)域73所實(shí)現(xiàn)的數(shù)據(jù)的存儲狀態(tài)。所謂存儲狀態(tài)的管理,包含管理哪一物理地址的頁(或物理塊)保存哪一邏輯地址的數(shù)據(jù)的關(guān)系及哪一物理地址的頁(或物理塊)處于擦除狀態(tài)(任何都未寫入或保存無效數(shù)據(jù)的狀態(tài))。為了該管理,裝置服務(wù)器71例如保存邏輯地址-物理地址變換表(以下,有時簡稱為變換表)。作為變換的例子,例如如圖9所示,能夠?qū)⒎峙湓O(shè)定為塊。對各塊中的各頁,分配特有的邏輯地址偏移量。圖9表示存儲器11的寫入單位的大小為16kB、邏輯地址按每512B大小的數(shù)據(jù)進(jìn)行分配的例子。接著,參照圖10及圖11,關(guān)于數(shù)據(jù)寫入時的工作進(jìn)行說明。圖10是更詳細(xì)地表示第I實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的狀況的功能框圖。圖11表示第I實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的狀況。多個LU67之中的至少一個、典型為全部具有以下參照圖10所說明的結(jié)構(gòu)。如圖10所示,裝置服務(wù)器71包含管理部81、指令分析部82、傳送請求生成部83和存儲器控制部84。
管理部81管理裝置服務(wù)器71的全體。指令分析部82從主機(jī)2經(jīng)由路由器62接收指令。指令分析部82對所接收的指令進(jìn)行分析。指令控制部82若接收到寫入指令,則對傳送請求生成部83請求傳送請求的確定(生成)。該向傳送請求生成部83的請求,既可以由指令分析部82直接進(jìn)行,也可以由管理部81進(jìn)行。傳送請求生成部83若接收到請求,則基于寫入指令中所包含的寫入數(shù)據(jù)的大小及地址生成傳送請求。存儲器控制部84按照管理部81的指示,承擔(dān)對于存儲器11的所謂指示的發(fā)布。接著,參照圖11,關(guān)于數(shù)據(jù)寫入時的序列進(jìn)行說明。本例涉及對于一個LU67的數(shù)據(jù)寫入請求。因此,各通信都相當(dāng)于該一個LU67與主機(jī)2之間的通信(包(分組))。如圖11所示,寫入指令從主機(jī)2發(fā)送至存儲裝置I。寫入指令如圖12所示,至少包含LUN102、寫入指示111、地址112、寫入數(shù)據(jù)大小113。地址112是寫入數(shù)據(jù)的寫入位置(邏輯地址)。寫入數(shù)據(jù)大小113表示寫入數(shù)據(jù)的全體大小。在UFS存儲系統(tǒng)中,數(shù)據(jù)、指令、查詢等都通過包傳送。在存儲裝置I及主機(jī)2是UFS存儲系統(tǒng)的情況下,寫入指令相當(dāng)于指令傳送包(Command UPIU)。指令傳送包包含包頭(報(bào)頭),在包的實(shí)體部包含指令描述部,在指令描述部中存儲SCSI (small computersystem interface,小型計(jì)算機(jī)系統(tǒng)接口)指令。在SCSI指令中,包含寫入指令111、地址112、寫入數(shù)據(jù)大小113。寫入指令通過目的地的LU67中的指令分析部82接收。若所接收的指令是寫入指令,則指令分析部82直接或經(jīng)由管理部81向傳送請求生成部83請求傳送請求的生成。若接收到生成請求,則傳送請求生成部83考慮存儲器11的特性,具體地考慮寫入數(shù)據(jù)的邏輯地址及大小,來生成傳送請求。更具體地,首先,傳送請求生成部83參照寫入數(shù)據(jù)的邏輯地址,檢查寫入請求是否相當(dāng)于從寫入目的地的頁的開頭開始的寫入請求。在本例中,邏輯地址為0x0000,這相當(dāng)于從塊(即頁)的開頭開始的寫入請求。傳送請求生成部83若得知此情況,則對主機(jī)2請求寫入數(shù)據(jù)之中的等于I頁大小的部分的傳送。這是因?yàn)?,存儲?1由于以頁單位進(jìn)行數(shù)據(jù)寫入,所以若按寫入數(shù)據(jù)之中的與I頁相等的部分(寫入數(shù)據(jù)部分)接收數(shù)據(jù),則可高效地寫入數(shù)據(jù)。相反,若例如為頁的I. 5倍的大小等,則由于寫入數(shù)據(jù)部分的進(jìn)而一部分需要暫時存儲于緩沖器的原因,所以有可能降低數(shù)據(jù)寫入效率。這樣,如果寫入請求相當(dāng)于從寫入目的地的頁的開頭開始的寫入,則傳送請求生成部83從寫入數(shù)據(jù)全體的開頭請求頁大小部分的傳送。更具體地,若根據(jù)本例,則生成從邏輯地址0x0000開始的16kB大小的寫入數(shù)據(jù)部分的傳送請求。該傳送請求,如圖11所示,經(jīng)由管理部81、路由器62發(fā)送至主機(jī)2。另外,關(guān)于寫入請求不相當(dāng)于從頁的開頭開始的寫入請求的情況,在第2實(shí)施方式中進(jìn)行說明。傳送請求如圖13所示,包含LUN(包頭)102、傳送數(shù)據(jù)地址121、傳送數(shù)據(jù)大小122。傳送數(shù)據(jù)地址121表示LU67請求傳送的寫入數(shù)據(jù)部分的偏移地址。傳送數(shù)據(jù)大小122表示對應(yīng)的寫入數(shù)據(jù)部分的大小。在存儲裝置I及主機(jī)2為UFS存儲系統(tǒng)的情況下,傳送請求相當(dāng)于傳送請求包(Ready To Transfer UPIN,傳送就緒UPIN)。傳送請求包在包的實(shí)體部中表示LU67能夠進(jìn)行數(shù)據(jù)傳送的準(zhǔn)備,并且包含傳送數(shù)據(jù)地址121、傳送數(shù)據(jù)大小122。如圖11所示,主機(jī)2若接收到傳送請求,則發(fā)送與該傳送請求對應(yīng)的寫入數(shù)據(jù)部分。傳送數(shù)據(jù)如圖14所示,包含LUN(包頭)102、數(shù)據(jù)131。在存儲裝置I及主機(jī)2為UFS 存儲系統(tǒng)的情況下,數(shù)據(jù)傳送通過主機(jī)數(shù)據(jù)傳送包(Data Out UPIN)傳送。主機(jī)數(shù)據(jù)傳送包在包的實(shí)體部中包含應(yīng)該傳送的數(shù)據(jù)。來自主機(jī)2的寫入數(shù)據(jù)部分,在存儲裝置I中接收,更具體地,由發(fā)布了對應(yīng)的傳送請求的LU67接收。所接收的寫入數(shù)據(jù)部分通過存儲器控制部84的控制而寫入存儲區(qū)域73的適合的位置。接著,傳送請求生成部83生成下一傳送請求。該傳送請求請求寫入數(shù)據(jù)全體之中的最初的寫入數(shù)據(jù)部分后續(xù)的頁大小的部分的傳送。該第2個寫入數(shù)據(jù)部分相當(dāng)于從邏輯地址0x0020開始的16kB大小的寫入數(shù)據(jù)部分。傳送請求被發(fā)送至主機(jī)2。接著,對應(yīng)的數(shù)據(jù)部分以與參照第I個數(shù)據(jù)部分所說明的步驟同樣的步驟寫入存儲區(qū)域73。以下,反復(fù)同樣的處理。即,傳送請求生成部83生成第2個寫入數(shù)據(jù)部分后續(xù)的從邏輯地址0x0040開始的16kB大小的第3個寫入數(shù)據(jù)部分的傳送請求。與之相應(yīng)地,對應(yīng)的數(shù)據(jù)部分被寫入至存儲區(qū)域73。進(jìn)而,傳送請求生成部83生成第3個寫入數(shù)據(jù)部分后續(xù)的從邏輯地址0x0060開始的16kB大小的最后的寫入數(shù)據(jù)部分的傳送請求。與之相應(yīng)地,對應(yīng)的數(shù)據(jù)部分被寫入至存儲區(qū)域73。最后的寫入數(shù)據(jù)部分的大小也為16kB。這是因?yàn)椋瑢懭霐?shù)據(jù)的大小是頁大小的整數(shù)倍,并且寫入請求相當(dāng)于從頁的開頭開始的寫入請求。若最后的寫入數(shù)據(jù)部分的傳送請求的發(fā)送及寫入結(jié)束,則對應(yīng)的LU67的裝置服務(wù)器71 (更具體地為管理部81)向主機(jī)2發(fā)送寫入成功的內(nèi)容的響應(yīng)。如以上說明,第I實(shí)施方式所涉及的存儲裝置I具有對來自主機(jī)2的數(shù)據(jù)寫入請求確定應(yīng)該傳送的各寫入數(shù)據(jù)部分的大小的權(quán)限,并且請求頁大小的寫入數(shù)據(jù)部分的傳送。因此,一次傳送的寫入數(shù)據(jù)部分具有頁大小并且其開頭及結(jié)尾與寫入目的地的頁的開頭及結(jié)尾一致。于是,存儲裝置I能夠與將接收的寫入數(shù)據(jù)部分寫入存儲器11并行地,接收下一寫入數(shù)據(jù)部分。在數(shù)據(jù)的寫入中,存儲器成為忙狀態(tài),但是存儲器11以接收寫入數(shù)據(jù)為基礎(chǔ)。通過這樣的寫入序列,存儲器11可高效地進(jìn)行寫入。此外,在無論在寫入數(shù)據(jù)的部分是否已經(jīng)存儲有數(shù)據(jù)、對曾經(jīng)寫入了數(shù)據(jù)的頁均不擦除該數(shù)據(jù)地禁止再次寫入數(shù)據(jù)的存儲器中,在以存儲器的頁大小以上的單位進(jìn)行邏輯地址與物理地址的轉(zhuǎn)換的情況下,若為了不產(chǎn)生頁的部分寫入而從主機(jī)2不傳送寫入數(shù)據(jù)部分,則會降低寫入效率。例如,在邏輯地址與物理地址的變換中,從OxOOOO至OxOOlF的邏輯地址對應(yīng)于存儲器11 (頁大小16kB)的第I頁的物理地址,0x0020至0x003F的邏輯地址對應(yīng)于存儲器11的第2頁的物理地址。在此,若從主機(jī)傳送從邏輯地址0x0010開始的16kB大小的寫入數(shù)據(jù)部分,則邏輯地址0x0020至OxOOIF的數(shù)據(jù)存儲于第I頁的一半,邏輯地址0x0020至0x002F的數(shù)據(jù)存儲于第2頁的一半。此后,存儲裝置若從主機(jī)接收從邏輯地址0x0000開始的SkB大小的寫入數(shù)據(jù)部分,則由于向第I頁的再寫入被禁止,所以必須讀出存儲于第I頁的邏輯地址0x0010至OxOOlF的數(shù)據(jù),與從主機(jī)接收的邏輯地址0x0000至OxOOOF的寫入數(shù)據(jù)部分一起存儲于新的第3頁。該第3頁的寫入后,0x0000至OxOOIF的邏輯地址對應(yīng)于存儲器的第3頁的物理地址。這樣,若進(jìn)行頁的部分寫入,則在從主機(jī)接收到對于頁的未寫入部分的寫入請求時,存儲裝置必須將已寫入數(shù)據(jù)部分復(fù)制到新的頁。此外,在以存儲器的塊單位進(jìn)行邏輯地址與物理地址的轉(zhuǎn)換的情況下,由于必須以塊單位將已寫入數(shù)據(jù)復(fù)制到新的塊,所以寫入效率的降低更加顯著。另一方面,第I實(shí)施方式所涉及的存儲裝置I對主機(jī)2請求傳送的寫入數(shù)據(jù)部分具有頁大小,并且其邏輯地址的開頭對應(yīng)于頁的開頭的物理地址,結(jié)尾對應(yīng)于頁的結(jié)尾的物理地址。因此,不會產(chǎn)生頁的部分寫入,能夠避免與已寫入數(shù)據(jù)的復(fù)制相伴的寫入效率的 降低。此外,如上所述ECC電路36對寫入數(shù)據(jù)附加糾錯碼。具體地,ECC電路36將接收到的數(shù)據(jù)部分基于ECC電路36的特性等分割為特定大小的部分(成為實(shí)數(shù)據(jù)部分)。并且,ECC電路36按每實(shí)數(shù)據(jù)部分生成ECC,附加于對應(yīng)的實(shí)數(shù)據(jù)部分。即,實(shí)數(shù)據(jù)部分是用于ECC的處理單位。實(shí)數(shù)據(jù)部分、對應(yīng)的ECC及對應(yīng)的管理數(shù)據(jù)的組例如稱為幀等。從ECC電路36輸出幀。對應(yīng)于寫入數(shù)據(jù)的目的地的LU的裝置服務(wù)器71基于以該幀為對象的接收完畢的數(shù)據(jù)寫入請求,將來自ECC電路36的幀存儲于緩沖器35。若存儲于緩沖器35的幀的數(shù)量達(dá)到適當(dāng)?shù)臄?shù)量,則對應(yīng)的裝置服務(wù)器71將多個幀的組寫入對應(yīng)的存儲區(qū)域73。在此,存儲裝置I考慮幀的大小及各種必要的管理數(shù)據(jù)的大小,來確定寫入數(shù)據(jù)部分的大小。具體地,存儲裝置I請求以下述方式確定的大小的寫入數(shù)據(jù)部分,該方式使得將寫入數(shù)據(jù)部分與對應(yīng)于其的全部附加的數(shù)據(jù)(ECC、管理數(shù)據(jù))合起來的大小在頁以下成為最大。圖18例示第I實(shí)施方式所涉及的存儲裝置I生成的I頁中的數(shù)據(jù)的中部。即,存儲裝置I寫入頁的結(jié)果,請求如圖18所示確定的大小的寫入數(shù)據(jù)部分。如圖18所示,I幀包括實(shí)數(shù)據(jù)部分301、對應(yīng)的管理數(shù)據(jù)302、對應(yīng)的ECC303。圖18例示1024字節(jié)的實(shí)數(shù)據(jù)部分301、2字節(jié)的管理數(shù)據(jù)302、76字節(jié)的ECC303。進(jìn)而,在每I頁,有時包含管理數(shù)據(jù)306。對管理數(shù)據(jù)306也附加ECC307。管理數(shù)據(jù)306、ECC307的大小分別例如是8字節(jié)、76字節(jié)。存儲裝置I請求以下述方式確定的大小的寫入數(shù)據(jù)部分,該方式使得從頁大小除去了將包括寫入數(shù)據(jù)部分的多個實(shí)數(shù)據(jù)部分301與第I附加數(shù)據(jù)(例如ECC303、307及管理數(shù)據(jù)302、306)合起來的大小之后的未使用部308的大小,與實(shí)數(shù)據(jù)部分301和附加于該實(shí)數(shù)據(jù)部分的第2附加數(shù)據(jù)(例如ECC303及管理數(shù)據(jù)302)的大小相比小。通過使用這樣的大小的寫入數(shù)據(jù)部分,能夠最大限地利用頁。根據(jù)所采用的ECC的方式,來確定相當(dāng)于ECC處理單位的實(shí)數(shù)據(jù)部分301的大小。同樣,也確定管理數(shù)據(jù)302、ECC303、管理數(shù)據(jù)307的大小。因而,在頁大小以下最大的實(shí)數(shù)據(jù)部分301的個數(shù),依ECC處理單位的大小而定。有時將這樣的個數(shù)的實(shí)數(shù)據(jù)部分301全體的大小稱為最大總實(shí)數(shù)據(jù)部分大小。(第2實(shí)施方式)第2實(shí)施方式涉及寫入請求不相當(dāng)于從頁的開頭開始的寫入請求。第2實(shí)施方式所涉及的存儲裝置,具有與第I實(shí)施方式相同的硬件結(jié)構(gòu)(圖3)及功能塊(圖7)。以下,參照圖15,關(guān)于寫入序列,對于與第I實(shí)施方式不同的方面進(jìn)行說明。另一方面,需要注意的是,關(guān)于在第2實(shí)施方式的說明中未提及的方面,將第I實(shí)施方式的描述全部應(yīng)用于第2實(shí)施方式。圖15表示第2實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的狀況。如圖15所示,主機(jī)2所產(chǎn)生的寫入請求相當(dāng)于從某頁的中途開始的寫入。這通過寫入數(shù)據(jù)的邏輯地址為0x0010來表示(在此,在邏輯地址與物理地址的轉(zhuǎn)換中,從0x0000至OxOOlF的邏輯地址對應(yīng)于存 儲器11的I頁的物理地址)。另外,寫入數(shù)據(jù)的大小為64kB。指令分析部82分析接收到的寫入指令,識別出寫入請求相當(dāng)于從頁的中途開始的寫入。于是,指令分析部82從寫入數(shù)據(jù)的開頭請求相當(dāng)于直至寫入目的地的頁的結(jié)尾的大小的部分作為第I個寫入數(shù)據(jù)部分。即,在本例中,第I個寫入數(shù)據(jù)部分包括從寫入數(shù)據(jù)的開頭開始的SkB部分,更具體地,從邏輯地址0x0010開始,為8kB。傳送請求由主機(jī)2接收,與之相應(yīng)地,所請求的寫入數(shù)據(jù)部分由對應(yīng)的裝置服務(wù)器71接收。接著,將寫入數(shù)據(jù)部分寫入對應(yīng)的存儲區(qū)域72。接著,傳送請求生成部83生成第2個寫入數(shù)據(jù)部分的傳送請求。第I個寫入數(shù)據(jù)部分的結(jié)尾與寫入目的地的頁的結(jié)尾一致。因此,通過將其以下的各寫入數(shù)據(jù)部分設(shè)定為頁大小,來使各寫入數(shù)據(jù)部分的結(jié)尾與寫入目的地的頁的結(jié)尾一致。即,第2個寫入數(shù)據(jù)部分從邏輯地址0x0020開始,大小為16kB。這樣的寫入數(shù)據(jù)部分的傳送請求被發(fā)送至主機(jī)2,將對應(yīng)的寫入數(shù)據(jù)部分寫入至存儲區(qū)域72。接著,從邏輯地址0x0040開始的16kB大小的第3個數(shù)據(jù)寫入部分的傳送請求被發(fā)送至主機(jī)2,將對應(yīng)的寫入數(shù)據(jù)部分寫入至存儲區(qū)域72。進(jìn)而,從邏輯地址0x0060開始,16kB大小的第4個數(shù)據(jù)寫入部分的傳送請求被發(fā)送至主機(jī)2,將對應(yīng)的寫入數(shù)據(jù)部分寫入至存儲區(qū)域72。接著,進(jìn)行寫入數(shù)據(jù)之中的剩余部分的傳送請求及向存儲區(qū)域72的寫入。在本例中,最后的寫入數(shù)據(jù)部分從邏輯地址0x0080開始,為SkB大小。該數(shù)據(jù)部分的傳送請求被發(fā)送至主機(jī)2,將對應(yīng)的寫入數(shù)據(jù)部分寫入至存儲區(qū)域72。最后,寫入成功的內(nèi)容的響應(yīng)被發(fā)送至主機(jī)2。若將以上的寫入一般化,則成為如下所述。以下的“N(單位為字節(jié))”為頁大小。若從主機(jī)2接收到從地址Y (512字節(jié)單位)開始的X塊(I塊為512字節(jié))量的寫入請求,則在Integer (Y * 512/N)小于Integer ((Y+X-l) * 512/N)的情況下(這是寫入數(shù)據(jù)沒有收納于同一頁內(nèi)的情況),存儲裝置從寫入數(shù)據(jù)的開頭開始請求((IntegeHY * 512/N)+1)
*N)-Y * 512字節(jié)量作為第I個寫入數(shù)據(jù)部分。在此,“Integer(P)”(P是任意的數(shù)值)是提取P的整數(shù)部分的函數(shù)。存儲裝置I將第I個寫入數(shù)據(jù)部分寫入存儲區(qū)域72。接著,存儲裝置I從第I個寫入數(shù)據(jù)部分后續(xù)的部分的開頭開始各次連續(xù)地,進(jìn)行Integer ((Y+X-l)
*512/N)-Integer (Y -k 512/N)-I次N字節(jié)的寫入數(shù)據(jù)部分的向主機(jī)2的傳送請求及所傳送的寫入數(shù)據(jù)部分的寫入。最后,存儲裝置I進(jìn)行剩余的(Y+X) * 512-Integer((Y+X-1)
*512/N) * N字節(jié)的寫入數(shù)據(jù)部分的向主機(jī)2的傳送請求及所傳送的寫入數(shù)據(jù)部分的寫Ao ¢: Integer (Y * 512/N)與 Integer ((Y+X-l) * 512/N)為相同值的情況下(這是寫入數(shù)據(jù)收納在同一頁內(nèi)的情況),存儲裝置I從寫入數(shù)據(jù)的開頭請求X * 512字節(jié)量作為寫入數(shù)據(jù)部分,進(jìn)行所傳送的數(shù)據(jù)的寫入。雖然進(jìn)行了關(guān)于I塊為512字節(jié)的說明,但是以上的說明可以將值512設(shè)定為M而一般化。以上,如所說明,在第2實(shí)施方式所涉及的存儲裝置中,若接收到相當(dāng)于從頁的中途開始的寫入的請求,則首先請求相當(dāng)于直至寫入目的地的頁的結(jié)尾為止的大小部分作為第I個寫入數(shù)據(jù)部分。其后,存儲裝置請求頁大小的寫入數(shù)據(jù)部分的傳送。結(jié)果,即使是與從頁的中途開始的數(shù)據(jù)寫入對應(yīng)的請求,各寫入數(shù)據(jù)部分也具有頁大小,并且其開頭及結(jié)尾與寫入目的地的頁的開頭及結(jié)尾一致。結(jié)果,由于與第I實(shí)施方式相同的原理,存儲器11可聞效地進(jìn)行與入。在第2實(shí)施方式中,也能夠使用考慮了附加數(shù)據(jù)的大小的寫入數(shù)據(jù)部分。在第2實(shí)施方式中,寫入請求相當(dāng)于從頁的中途開始的寫入。因此,指令分析部82從寫入數(shù)據(jù)的開頭請求具有以在直至寫入目的地的頁的結(jié)尾為止的大小以下成為最大的方式確定的大小的第I個寫入數(shù)據(jù)部分。第2個及以后的寫入數(shù)據(jù)部分的大小與上述最大總實(shí)數(shù)據(jù)部分的大小相同?!?br>
(第3實(shí)施方式)第3實(shí)施方式涉及向2個LU的并行的數(shù)據(jù)寫入。第3實(shí)施方式所涉及的存儲裝置具有與第I實(shí)施方式相同的硬件結(jié)構(gòu)(圖3)及功能塊(圖7)。以下,參照圖16及圖17,關(guān)于寫入序列,對于與第I實(shí)施方式不同的方面進(jìn)行說明。另一方面,需要注意的是,關(guān)于在第3實(shí)施方式的說明中未提及的方面,第I實(shí)施方式的描述可全部應(yīng)用于第3實(shí)施方式。圖16及圖17表示第3實(shí)施方式所涉及的數(shù)據(jù)寫入時的通信的狀況。圖17是與圖16接續(xù)的部分。如圖16所示,主機(jī)2向LUNO的LU(第1LU)67發(fā)送將邏輯地址0x0010的寫入數(shù)據(jù)寫入至第1LU67的指令。該寫入指令與第2實(shí)施方式相同,相當(dāng)于從頁的中途開始的寫入請求。寫入數(shù)據(jù)的大小為64kB。接著,主機(jī)2向LUNl的LU(第2LU)67發(fā)送將邏輯地址0x0112的寫入數(shù)據(jù)寫入至第2LU67的指令。該寫入指令也相當(dāng)于從頁的中途開始的寫入請求。寫入數(shù)據(jù)的大小為64kB。以后,第1LU67與主機(jī)2之間的處理及第2LU67與主機(jī)2之間的處理并行地進(jìn)行。以下,取第1LU67與主機(jī)2之間的通信及第2LU67與主機(jī)2之間的通行交替地產(chǎn)生為例。但是,這樣交替地產(chǎn)生并不是必須的。第1LU67用的通信與第2LU67用的通信的順序由路由器62控制。第1LU67的指令分析部82與第2實(shí)施方式同樣,對所接收的寫入指令進(jìn)行分析,識別出寫入請求相當(dāng)于從頁的中途開始的寫入請求。于是,指令分析部82從寫入數(shù)據(jù)的開頭,請求相當(dāng)于直至寫入目的地的頁的結(jié)尾為止的大小的部分作為第I個寫入數(shù)據(jù)部分。即,在本例中,第1LU67用的第I個寫入數(shù)據(jù)部分從寫入數(shù)據(jù)的開頭開始包括SkB的部分,更具體地,從邏輯地址0x0010開始為8kB。傳送請求由主機(jī)2接收,與之相應(yīng)地,所請求的寫入部分由對應(yīng)的裝置服務(wù)器71接收。接著,將寫入數(shù)據(jù)部分寫入至第1LU67中的存儲區(qū)域73。此外,第2LU67的指令分析部82也識別出寫入請求請求從頁的中途開始的數(shù)據(jù)寫入。并且,指令分析部82從寫入數(shù)據(jù)的開頭,請求相當(dāng)于直至寫入目的地的頁的結(jié)尾為止的大小的部分作為第I個寫入數(shù)據(jù)部分。即,在本例中,第2LU67用的第I個寫入數(shù)據(jù)部分包括從寫入數(shù)據(jù)的開頭開始7kB的部分,更具體地,從邏輯地址0x0112開始為7kB。傳送請求由主機(jī)2接收,與之相應(yīng)地,所請求的寫入部分由對應(yīng)的裝置服務(wù)器71接收。接著,將寫入數(shù)據(jù)部分寫入至第2LU67中的存儲區(qū)域73。第1LU67的指令分析部82生成從第I個寫入數(shù)據(jù)部分后續(xù)的邏輯地址即從0x0020開始的16kB大小的第2個寫入數(shù)據(jù)部分的傳送請求。與之對應(yīng)地,將對應(yīng)的數(shù)據(jù)部分寫入至第1LU67中的存儲區(qū)域73。第2LU67的指令分析部82生成從第I個寫入數(shù)據(jù)部分后續(xù)的邏輯地址即從0x0120開始的16kB大小的第2個寫入數(shù)據(jù)部分的傳送請求。與之對應(yīng)地,將對應(yīng)的數(shù)據(jù)部分寫入至第2LU67中的存儲區(qū)域73。以下,同樣地,關(guān)于第1LU67用的第3個寫入數(shù)據(jù)部分、第2LU67用的第3個寫入數(shù)據(jù)部分、第1LU67用的第4個寫入數(shù)據(jù)部分、第2LU67用的第4個寫入數(shù)據(jù)部分,以該列舉的順序進(jìn)行傳送請求及寫入對。接著,進(jìn)行第1LU67用的寫入數(shù)據(jù)之中的剩余部分、即第4個寫入數(shù)據(jù)部分后續(xù)的部分的傳送請求及向存儲器11的寫入。在本例中,最后的寫入數(shù)據(jù)部分從邏輯地址0x0080 開始,大小為8kB。該數(shù)據(jù)部分的傳送請求被發(fā)送至主機(jī)2,將對應(yīng)的寫入數(shù)據(jù)部分寫入至存儲區(qū)域73。同樣地,進(jìn)行第2LU67用的寫入數(shù)據(jù)之中的剩余部分、即第4個寫入數(shù)據(jù)部分后續(xù)的部分的傳送請求及向存儲器11的寫入。在本例中,最后的寫入數(shù)據(jù)部分從邏輯地址0x0180開始,大小為9kB。該數(shù)據(jù)部分的傳送請求被發(fā)送至主機(jī)2,將對應(yīng)的寫入數(shù)據(jù)部分寫入至存儲區(qū)域73。最后,從第1LU67向主機(jī)2發(fā)送向第1LU67的寫入成功的內(nèi)容的響應(yīng),從第2LU67向主機(jī)2發(fā)送向第2LU67的寫入成功的內(nèi)容的響應(yīng).如以上所說明,第3實(shí)施方式所涉及的存儲裝置I按每LU與第2實(shí)施方式同樣地,若接收到相當(dāng)于從頁的中途開始的寫入的請求,則首先請求相當(dāng)于直至寫入目的地的頁的結(jié)尾為止的大小的部分作為第I個寫入數(shù)據(jù)部分。其后,存儲裝置I按每LU,請求頁大小的寫入數(shù)據(jù)部分的傳送。因此,即使對于針對2個以上LU的數(shù)據(jù)寫入請求,也由于與第I及第2實(shí)施方式相同的原理,可獲得與第I及第2實(shí)施方式相同的優(yōu)點(diǎn)。在第3實(shí)施方式中,也可應(yīng)用關(guān)于考慮了附加數(shù)據(jù)的大小的寫入數(shù)據(jù)部分的第I、第2實(shí)施方式用的描述。即,對于關(guān)于各LU的相當(dāng)于從頁的中途開始的寫入的寫入請求,以與第2實(shí)施方式相同的形式請求開頭的寫入數(shù)據(jù)部分。第2個及以后的寫入數(shù)據(jù)部分的大小與上述的最大總實(shí)數(shù)據(jù)部分的大小相同。此外,各實(shí)施方式并不限定于上述的形態(tài),在實(shí)施階段,可以在不脫離其主旨的范圍內(nèi)進(jìn)行各種變形。進(jìn)而,在上述實(shí)施方式中包含各種階段,通過所公開的多個構(gòu)成要件的適宜組合,能夠提取各種實(shí)施方式。即使從上述各實(shí)施方式所示的全部構(gòu)成要件刪除幾個構(gòu)成要件,也可提取刪除了該構(gòu)成要件后的構(gòu)成作為實(shí)施方式。例如,在上述的實(shí)施方式中,存儲裝置I向主機(jī)2請求傳送的寫入數(shù)據(jù)部分是存儲器11的I頁量的大小,但是該寫入數(shù)據(jù)部分的大小并不限于I頁量,而也可以是頁大小的整數(shù)倍。此外,在上述的實(shí)施方式中,在寫入請求不相當(dāng)于從頁的開頭開始的寫入請求的情況下,從寫入數(shù)據(jù)的開頭請求相當(dāng)于直至寫入目的地的頁的結(jié)尾為止的大小的部分作為第I個寫入數(shù)據(jù)部分,但是也可以將該相當(dāng)于寫入目的地的頁的結(jié)尾為止的大小的部分與其后續(xù)的頁大小(或者頁大小的整數(shù)倍)的數(shù)據(jù)合起來,作為第I個寫入數(shù)據(jù)部分而進(jìn)行請求。考慮了附加數(shù)據(jù)的情況也是相同的。即,寫入數(shù)據(jù)部分的大小也可以是最大總實(shí)數(shù)據(jù)部分大小的整數(shù)倍。進(jìn)而,響應(yīng)關(guān)于各LU的相當(dāng)于從頁的中途開始的寫入的寫入請求,第I個寫入數(shù)據(jù)部分也可以是以在從寫入數(shù)據(jù)的開頭至寫入目的地的頁的結(jié)尾為止的大小以下成為最大的方式確定的大小與其后續(xù)的一個或多個最大總實(shí)數(shù)據(jù)部分的大小之和。雖然描述了幾種實(shí)施方式,但是這些實(shí)施方式僅是作為例子而呈現(xiàn)的,而并不是要限定本發(fā)明的范圍。這些新的實(shí)施方式也可以以其他各種方式實(shí)施,在不脫離本發(fā)明的 主旨的范圍,可以進(jìn)行各種省略、置換和變形。這些實(shí)施方式和/或其變形包含于發(fā)明的范圍和/或主旨,并且包含于權(quán)利要求中記載的發(fā)明及其均等的范圍。
權(quán)利要求
1.一種存儲裝置,具備 非易失性的存儲器,其以多個單元作為寫入單位而寫入數(shù)據(jù);以及 控制器,其對于來自主機(jī)裝置的、將分配了邏輯地址的寫入數(shù)據(jù)寫入上述存儲器的請求,對上述主機(jī)裝置請求對于上述寫入數(shù)據(jù)的分割部分、即寫入數(shù)據(jù)部分指定其大小并進(jìn)行發(fā)送,并對寫入數(shù)據(jù)附加附加數(shù)據(jù)而寫入上述存儲器; 其中,上述寫入數(shù)據(jù)部分具有以該寫入數(shù)據(jù)部分與對應(yīng)的附加數(shù)據(jù)的總和的大小在上述寫入單位的大小以下成為最大的方式確定的大小或上述大小的整數(shù)倍。
2.根據(jù)權(quán)利要求I所述的存儲裝置,其中 上述附加數(shù)據(jù)包含用于對應(yīng)的寫入數(shù)據(jù)部分的管理數(shù)據(jù)及糾錯碼的至少一種。
3.根據(jù)權(quán)利要求2所述的存儲裝置,其中 上述控制器具備生成上述糾錯碼的糾錯碼電路; 上述糾錯碼電路按接收數(shù)據(jù)的每分割部分、即糾錯單位生成糾錯碼。
4.根據(jù)權(quán)利要求3所述的存儲裝置,其中 從上述寫入單位的大小減去上述寫入數(shù)據(jù)部分及對應(yīng)的附加數(shù)據(jù)的大小之后的部分的大小,小于等于上述糾錯單位與用于上述糾錯單位的附加數(shù)據(jù)的大小。
5.根據(jù)權(quán)利要求I所述的存儲裝置,其中 上述寫入數(shù)據(jù)部分具有以該寫入數(shù)據(jù)部分及對應(yīng)的附加數(shù)據(jù)的總和的大小在上述寫入單位以下成為最大的方式確定的大小。
6.根據(jù)權(quán)利要求I所述的存儲裝置,其中 上述存儲裝置是UFS存儲裝置。
7.根據(jù)權(quán)利要求I所述的存儲裝置,其中 上述存儲裝置包括第I邏輯單元及第2邏輯單元,該第I邏輯單元及第2邏輯單元分別包含上述控制器的功能的一部分和上述存儲器的存儲區(qū)域的一部分; 上述第I、第2邏輯單元相互獨(dú)立,將數(shù)據(jù)寫入對應(yīng)的自身的存儲區(qū)域,并且發(fā)送上述傳送請求。
8.根據(jù)權(quán)利要求I所述的存儲裝置,其中 上述控制器將上述寫入數(shù)據(jù)的分割部分、即多個寫入數(shù)據(jù)部分之中的開頭寫入數(shù)據(jù)部分設(shè)定為第I大小,將多個寫入數(shù)據(jù)部分之中的上述開頭寫入數(shù)據(jù)部分后續(xù)并且除最后的寫入數(shù)據(jù)部分之外的一個或多個寫入數(shù)據(jù)部分設(shè)定為上述第I大小以上的第2大小,將上述最后的寫入數(shù)據(jù)部分設(shè)定為上述第2大小以下的第3大小,而請求寫入數(shù)據(jù)部分的傳送。
9.根據(jù)權(quán)利要求8所述的存儲裝置,其中 上述第I大小以在寫入上述開頭寫入數(shù)據(jù)部分的寫入單位中的從寫入上述開頭寫入數(shù)據(jù)的位置到該寫入單位的結(jié)尾為止的大小以下成為最大的方式確定。
10.根據(jù)權(quán)利要求9所述的存儲裝置,其中 上述第2大小以上述寫入數(shù)據(jù)部分及對應(yīng)的附加數(shù)據(jù)的總和的大小在上述寫入單位的大小以下成為最大的方式確定。
11.根據(jù)權(quán)利要求8所述的存儲裝置,其中上述附加數(shù)據(jù)包含用于對應(yīng)的寫入數(shù)據(jù)部分的管理數(shù)據(jù)及糾錯碼中的至少一種。
12.根據(jù)權(quán)利要求11所述的存儲裝置,其中上述控制器具備生成上述糾錯碼的糾錯碼電路; 上述糾錯碼電路按接收數(shù)據(jù)的每分割部分、即糾錯單位生成糾錯碼。
13.根據(jù)權(quán)利要求8所述的存儲裝置,其中 上述存儲裝置是UFS存儲裝置。
14.根據(jù)權(quán)利要求8所述的存儲裝置,其中 上述存儲裝置包括第I邏輯單元及第2邏輯單元,該第I邏輯單元及第2邏輯單元分別包含上述控制器的功能的一部分和上述存儲器的存儲區(qū)域的一部分; 上述第I、第2邏輯單元相互獨(dú)立,將數(shù)據(jù)寫入對應(yīng)的自身的存儲區(qū)域,并且發(fā)送上述 傳送請求。
15.一種存儲裝置,具備 非易失性的存儲器,其以多個單元作為寫入單位而寫入數(shù)據(jù);以及 控制器,其對于來自主機(jī)裝置的、將分配了邏輯地址的寫入數(shù)據(jù)寫入上述存儲器的請求,對上述主機(jī)裝置請求對于上述寫入數(shù)據(jù)的分割部分、即寫入數(shù)據(jù)部分指定其大小并進(jìn)行發(fā)送; 其中,上述寫入數(shù)據(jù)部分具有上述寫入單位的大小的整數(shù)倍的大小。
16.根據(jù)權(quán)利要求15所述的存儲裝置,其中 上述控制器將上述寫入數(shù)據(jù)的分割部分、即多個寫入數(shù)據(jù)部分之中的開頭寫入數(shù)據(jù)部分設(shè)定為第I大小,將多個寫入數(shù)據(jù)部分之中的上述開頭寫入數(shù)據(jù)部分后續(xù)并且除最后的寫入數(shù)據(jù)部分之外的一個或多個寫入數(shù)據(jù)部分設(shè)定為上述第I大小以上的第2大小,將上述最后的寫入數(shù)據(jù)部分設(shè)定為上述第2大小以下的第3大小,而請求寫入數(shù)據(jù)部分的傳送。
17.根據(jù)權(quán)利要求16所述的存儲裝置,其中 上述控制器,若接收到從邏輯地址Y (M字節(jié)單位)開始的X塊(I塊為M字節(jié))量的寫入請求,則在Integer (Y -k M/N)小于Integer ((Y+X-l) -k M/N)的情況下,從上述寫入數(shù)據(jù)的開頭開始請求((Integer (Y * M/N) +1) * N)_Y * M 字節(jié)(其中,Integer (Υ/Ν)是 O 內(nèi)的Υ/Ν的整數(shù)部分)的第I寫入數(shù)據(jù)部分的傳送,并從上述第I寫入數(shù)據(jù)部分后續(xù)部分的開頭開始各次依次連續(xù)地,進(jìn)行Integer ((Y+X-l) * M/N) -Integer (Y * M/N) -I次N字節(jié)的第2寫入數(shù)據(jù)部分的傳送請求,并請求(Y+X) -k M-Integer ((Y+X-l) -k M/N) -k N字節(jié)的第3寫入數(shù)據(jù)部分的傳送。
18.根據(jù)權(quán)利要求15所述的存儲裝置,其中 上述存儲裝置包括第I邏輯單元及第2邏輯單元,該第I邏輯單元及第2邏輯單元分別包含上述控制器的功能的一部分和上述存儲器的存儲區(qū)域的一部分; 上述第I、第2邏輯單元相互獨(dú)立,將數(shù)據(jù)寫入對應(yīng)的自身的存儲區(qū)域,并且發(fā)送上述傳送請求。
19.根據(jù)權(quán)利要求15所述的存儲裝置,其中 上述寫入數(shù)據(jù)部分具有與上述寫入單位相同的大小, 在上述存儲器寫入的上述寫入數(shù)據(jù)部分的開頭及結(jié)尾與寫入了上述寫入數(shù)據(jù)部分的目的地的寫入單位的開頭及結(jié)尾一致。
全文摘要
本發(fā)明提供存儲裝置,具備以多個單元為寫入單位而寫入數(shù)據(jù)的非易失性的存儲器;以及控制器??刂破鲗τ趤碜灾鳈C(jī)裝置的、將分配了邏輯地址的寫入數(shù)據(jù)寫入存儲器的請求,對主機(jī)裝置請求對于寫入數(shù)據(jù)的分割部分、即寫入數(shù)據(jù)部分指定其大小并進(jìn)行發(fā)送。此外,控制器對寫入數(shù)據(jù)附加附加數(shù)據(jù)而寫入存儲器。寫入數(shù)據(jù)部分具有以該寫入數(shù)據(jù)部分與對應(yīng)的附加數(shù)據(jù)的總和的大小在寫入單位的大小以下成為最大的方式確定的大小或其整數(shù)倍的大小。
文檔編號G06F12/02GK102915274SQ20121007094
公開日2013年2月6日 申請日期2012年3月16日 優(yōu)先權(quán)日2011年8月1日
發(fā)明者白石敦 申請人:株式會社 東芝