專利名稱:多層控制多閃存裝置、存儲(chǔ)裝置和數(shù)據(jù)分割固態(tài)硬盤的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于存儲(chǔ)領(lǐng)域,尤其涉及多層控制多閃存裝置、存儲(chǔ)裝置和數(shù)據(jù)分割固態(tài)硬盤。
背景技術(shù):
個(gè)人計(jì)算機(jī)(Personal Computer, PC)和其他主機(jī)一般均采用硬盤驅(qū)動(dòng)器(Hard Disk Drive, HDD)等大容量存儲(chǔ)器存儲(chǔ)大量數(shù)據(jù),并通過按塊尋址(即讀或?qū)懙淖钚挝粸閹讉€(gè) 512字節(jié)扇區(qū)的一頁)的方式存取大容量存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)。基于閃存的固態(tài)硬盤(Solid State Drive, SSD)由于其內(nèi)部不存在任何機(jī)械部件,從而即使在高速移動(dòng)甚至伴隨翻轉(zhuǎn)傾 斜的情況下也不會(huì)影響到正常使用,而且在發(fā)生碰撞和震蕩時(shí)能夠?qū)?shù)據(jù)丟失的可能性降到 最小。因此基于閃存的固態(tài)硬盤將代替硬盤和光盤,成為優(yōu)選的大容量存儲(chǔ)介質(zhì)。
在基于閃存的固態(tài)硬盤中,閃存分為單層式存儲(chǔ)單元(Single-Level Cell, SIX)閃存 和多層式存儲(chǔ)單元(Multi-Level Cell, MLC)閃存。SLC閃存的每個(gè)存儲(chǔ)單元存儲(chǔ)一位元數(shù) 據(jù),其抹除塊大小可以是128K+4K字節(jié),而MLC閃存的每個(gè)存儲(chǔ)單元存儲(chǔ)兩位元或更多位元 的數(shù)據(jù),其抹除塊大小可以是256K+8K或更多字節(jié)。因此MLC閃存的密度可以比SLC閃存大 一倍或者以上。但MLC閃存的性能、穩(wěn)定性和耐用性較低。但由于在將數(shù)據(jù)寫入閃存時(shí),只 可以從1到0寫入,當(dāng)需要從0到1寫入時(shí),閃存需要一次抹除一塊,同時(shí)閃存的抹除次數(shù) 是有限的(一般為10, 000到1,000, 000次),當(dāng)閃存的抹除次數(shù)達(dá)到極限后,閃存將由于 磨損而變得不穩(wěn)定。
在大容量的固態(tài)硬盤中,可以使用多個(gè)帶單芯片閃存裝置的通道以允許并行存取,從而 提高固態(tài)硬盤的性能。在這種固態(tài)硬盤中,如果對(duì)多個(gè)單芯片閃存裝置中的非易失性閃存塊 寫入不均時(shí),可能造成單個(gè)單芯片閃存裝置的非易失性閃存塊由于抹除次數(shù)達(dá)到極限而被磨 損,導(dǎo)致整個(gè)固態(tài)硬盤不穩(wěn)定,從而縮短了固態(tài)硬盤的使用壽命。因此,需要一種將多個(gè)帶 單芯片閃存裝置的通道聚合為一個(gè)邏輯驅(qū)動(dòng)器,并對(duì)多個(gè)單芯片閃存裝置中的非易失性閃存 塊進(jìn)行平均讀寫的裝置,以延長固態(tài)硬盤的使用壽命。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種智能存儲(chǔ)開關(guān),旨在解決現(xiàn)有的固態(tài)硬盤使用壽命短的問
7題。
本發(fā)明是這樣實(shí)現(xiàn)的, 一種智能存儲(chǔ)開關(guān),其特征在于,所述智能存儲(chǔ)開關(guān)包括-上游接口,接收主機(jī)發(fā)送的命令、數(shù)據(jù)和地址信息并向主機(jī)返回響應(yīng)信息; 虛擬存儲(chǔ)處理器,與所述上游接口連接,將主機(jī)發(fā)送的地址映射到指定單芯片閃存裝
置以產(chǎn)生邏輯塊地址;
智能存儲(chǔ)事務(wù)管理器,與所述虛擬存儲(chǔ)處理器連接,管理來自主機(jī)的事務(wù); 虛擬存儲(chǔ)橋,與所述智能存儲(chǔ)事務(wù)管理器連接,并通過邏輯塊地址總線與單芯片閃存
裝置連接。
本發(fā)明的另一目的在于提供一種采用所述智能存儲(chǔ)開關(guān)控制的單芯片閃存裝置,包括 存儲(chǔ)數(shù)據(jù)的非易失性內(nèi)存塊和非易失性內(nèi)存控制器,所述非易失性內(nèi)存控制器包括 重新映射單元,將所述邏輯塊地址映射成物理塊地址;
平均讀寫單元,將來自所述虛擬存儲(chǔ)橋的數(shù)據(jù)分配到單芯片w存裝置中的多個(gè)非易失
性內(nèi)存塊中較少讀寫的非易失性內(nèi)存塊;
壞塊單元,追蹤單芯片閃存裝置中有缺陷的非易失性內(nèi)存塊。
本發(fā)明的另一目的在于提供一種采用所述智能存儲(chǔ)開關(guān)和一個(gè)或者多個(gè)所述單芯片閃 存裝置的固態(tài)硬盤。
在本發(fā)明中,在主機(jī)和多個(gè)單芯片閃存裝置之間設(shè)置一智能存儲(chǔ)開關(guān),通過該智能存儲(chǔ) 開關(guān)將閃存的多個(gè)通道聚合為一個(gè)邏輯驅(qū)動(dòng)器,同時(shí)將主機(jī)傳輸?shù)臄?shù)據(jù)平均分配至多個(gè)單芯 片閃存裝置,由每個(gè)單芯片閃存裝置進(jìn)一步將數(shù)據(jù)平均分配至多個(gè)非易失性閃存塊,從而延 長基于閃存的固態(tài)硬盤的使用壽命。
圖1是聚合和虛擬化多個(gè)閃存終結(jié)點(diǎn)的開關(guān)的方塊圖。
圖2A-D是閃存裝置的各種應(yīng)用環(huán)境示意圖。
圖3是本發(fā)明實(shí)施提供的智能存儲(chǔ)開關(guān)的結(jié)構(gòu)示意圖。
圖4是本發(fā)明實(shí)施提供的只帶一個(gè)單芯片閃存裝置的簡化智能存儲(chǔ)裝置的結(jié)構(gòu)圖。 圖5是本發(fā)明實(shí)施提供的一個(gè)用下游存儲(chǔ)總線與單芯片閃存裝置接口的智能存儲(chǔ)開關(guān)的 結(jié)構(gòu)示意圖。
圖6是本發(fā)明實(shí)施提供的一個(gè)四通道智能存儲(chǔ)開關(guān)的結(jié)構(gòu)示意圖。 圖7是智能存儲(chǔ)開關(guān)執(zhí)行的寫操作的流程圖。
8圖8是智能存儲(chǔ)開關(guān)執(zhí)行的讀操作的流程圖。
圖9是智能存儲(chǔ)開關(guān)執(zhí)行的啟動(dòng)程序的流程圖。
圖10是連接到智能存儲(chǔ)開關(guān)的主機(jī)執(zhí)行的啟動(dòng)程序的流程圖。
圖11是以集線器模式運(yùn)行的智能存儲(chǔ)開關(guān)的分組定時(shí)圖解。
圖12是開關(guān)模式下智能存儲(chǔ)開關(guān)進(jìn)行分組排序的定時(shí)圖解。
圖13A-B是智能存儲(chǔ)開關(guān)進(jìn)行分組重新排序的分組定時(shí)圖解。
圖14A-F顯示了閃存塊中存儲(chǔ)的數(shù)據(jù)的各種排列。
圖15突出顯示了使用智能存儲(chǔ)開關(guān)在兩個(gè)閃存通道之間進(jìn)行多通道存取。
圖16突出顯示了使用智能存儲(chǔ)開關(guān)和單芯片閃存裝置在兩個(gè)閃存通道之間進(jìn)行交錯(cuò)存儲(chǔ)。
圖17是多個(gè)閃存通道的忙碌處理的流程圖。
圖18是多個(gè)交錯(cuò)存儲(chǔ)閃存通道的忙碌處理的流程圖。
圖19A-B顯示了智能存儲(chǔ)開關(guān)存取多個(gè)通道的單芯片閃存裝置的定時(shí)脈沖波形。
圖20A-B顯示了智能存儲(chǔ)開關(guān)存取單芯片閃存裝置的一個(gè)交錯(cuò)存儲(chǔ)通道的定時(shí)脈沖波形。
圖21突出顯示了緊密耦合到單芯片閃存裝置所需分片大小的數(shù)據(jù)分割。
圖22顯示了一個(gè)單芯片閃存裝置中的兩個(gè)閃存顆粒。
圖23顯示了多個(gè)通道的雙顆粒雙層面單芯片閃存裝置。
圖24是每個(gè)使用數(shù)據(jù)分割的單芯片閃存裝置在生產(chǎn)過程中的啟動(dòng)流程圖。
圖25是使用數(shù)據(jù)分割的智能存儲(chǔ)開關(guān)的開機(jī)啟動(dòng)流程圖。
圖26突出顯示了一頁中只有一個(gè)扇區(qū)已更新的情況下的數(shù)據(jù)分割。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā) 明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用 于限定本發(fā)明。
在本發(fā)明實(shí)施例中,在主機(jī)和多個(gè)單芯片閃存裝置之間設(shè)置一智能存儲(chǔ)開關(guān),通過該智 能存儲(chǔ)開關(guān)將閃存的多個(gè)通道聚合為一個(gè)邏輯驅(qū)動(dòng)器,同時(shí)將主機(jī)傳輸?shù)臄?shù)據(jù)平均分配至多 個(gè)單芯片閃存裝置,由每個(gè)單芯片閃存裝置進(jìn)一步將數(shù)據(jù)平均分配至多個(gè)非易失性閃存塊, 從而延長基于閃存的固態(tài)硬盤的使用壽命。
9圖1是聚合和虛擬化多個(gè)閃存終結(jié)點(diǎn)的開關(guān)的方塊圖。
主機(jī)10的主機(jī)控制器12通過存儲(chǔ)總線18發(fā)送事務(wù)給智能存儲(chǔ)裝置40。智能存儲(chǔ)裝置 40中的智能存儲(chǔ)開關(guān)30通過存儲(chǔ)總線18接收主機(jī)10的事務(wù)并回應(yīng)主機(jī)。
模式邏輯26控制智能存儲(chǔ)開關(guān)30以單終結(jié)點(diǎn)模式或者集線器模式(也稱為多終結(jié)點(diǎn)模 式)運(yùn)行。如果模式選擇引腳29接地,模式邏輯26控制智能存儲(chǔ)開關(guān)30以單終結(jié)點(diǎn)模式 運(yùn)行,如果模式選擇引腳29未接地,模式邏輯26控制智能存儲(chǔ)開關(guān)30以集線器模式運(yùn)行。
在單終結(jié)點(diǎn)模式中,智能存儲(chǔ)開關(guān)30將所有下游的存儲(chǔ)閃存系統(tǒng)聚合成單個(gè)存儲(chǔ)終結(jié) 點(diǎn)(對(duì)主機(jī)10是可見的),并對(duì)主機(jī)控制器12隱藏關(guān)于實(shí)體閃存裝置的數(shù)量、大小、速度 和排列的詳情。主機(jī)10將看到一個(gè)具有一組屬性的內(nèi)存庫。報(bào)告給主機(jī)10的屬性可以由智 能存儲(chǔ)開關(guān)30中的事務(wù)管理器選擇,如最長的存取時(shí)間或所有正常內(nèi)存塊的總數(shù)。
對(duì)主機(jī)10,智能存儲(chǔ)開關(guān)30充當(dāng)存儲(chǔ)總線18上的事務(wù)的最后存儲(chǔ)終結(jié)點(diǎn)。智能存儲(chǔ)開 關(guān)30在隱藏存儲(chǔ)總線28上產(chǎn)生到單芯片閃存裝置22、 23、 24的存儲(chǔ)事務(wù)。單芯片閃存裝 置22、 23、 24通過隱藏存儲(chǔ)總線28回應(yīng)智能存儲(chǔ)開關(guān)30,并由智能存儲(chǔ)開關(guān)30充當(dāng)隱藏 存儲(chǔ)總線28上的主機(jī)。然后,智能存儲(chǔ)開關(guān)30充當(dāng)終結(jié)點(diǎn),將數(shù)據(jù)轉(zhuǎn)發(fā)到主機(jī)IO。因此, 當(dāng)模式邏輯26啟動(dòng)單終結(jié)點(diǎn)模式時(shí),單芯片閃存裝置22、 23、 24對(duì)主機(jī)10是隱藏的。每 個(gè)單芯片閃存裝置(22、 23或24)均有一個(gè)能夠執(zhí)行平均讀寫、壞塊更換、奇偶校驗(yàn)碼和/ 或糾錯(cuò)碼操作的閃存控制器。
由丁主機(jī)10將智能存儲(chǔ)丌關(guān)30視為存儲(chǔ)總線18的惟一終結(jié)點(diǎn),所以單芯片閃存裝置 22、 23、 24讀取或?qū)懭氲臄?shù)據(jù)全都在單個(gè)虛擬驅(qū)動(dòng)器上,如個(gè)人計(jì)算機(jī)上的E:盤。單芯片 閃存裝置22、 23、 24的詳情和復(fù)雜性對(duì)最終用戶是隱藏的。
在集線器模式中,智能存儲(chǔ)開關(guān)30充當(dāng)標(biāo)準(zhǔn)集線器,其將來自存儲(chǔ)總線18上的主機(jī)控 制器12的事務(wù),通過隱藏存儲(chǔ)總線28傳遞到單芯片閃存裝置22、 23、 24。然后,主機(jī)10 將單芯片閃存裝置22、 23、 24視為最后終結(jié)點(diǎn)。每個(gè)閃存終結(jié)點(diǎn)作為不同的盤,如E:盤、 F:盤、G:盤等。
模式邏輯26可以是硬件邏輯或者再編程的固件。智能存儲(chǔ)開關(guān)30可以是外置固態(tài)硬盤 (在個(gè)人計(jì)算機(jī)主板外部),或者是插入個(gè)人計(jì)算機(jī)主板上的插槽中的內(nèi)置SSD,或者可以 嵌入或永久連接到個(gè)人計(jì)算機(jī)主板。
圖2A-D示出了閃存裝置的各種應(yīng)用環(huán)境。其屮非易失性內(nèi)存裝置(NVMD)和單芯片閃 存裝置可以用如圖1所示的智能存儲(chǔ)裝置40,或者稍后顯示的使用智能存儲(chǔ)開關(guān)30的其他 實(shí)施例,或者智能存儲(chǔ)事務(wù)管理器36替換。
圖2A示出了主機(jī)上的單芯片閃存裝置的應(yīng)用。主機(jī)系統(tǒng)或個(gè)人計(jì)算機(jī)主板902通過接口總線發(fā)送命令、地址和數(shù)據(jù)到單芯片閃存裝置900上的輸入/輸出接口電路904。這些命令 控制處理部件908寫入、讀取或抹除閃存906的非易失性閃存塊。單芯片閃存裝置900可以 是塑料卡體(帶連接頭,以插入主機(jī)上的插槽中),或者可以直接安裝到主機(jī)主板上。單芯 片閃存裝置900可以是插入個(gè)人計(jì)算機(jī)主板上的插槽中的外置閃存模塊,或者可以直接連接 或嵌入到個(gè)人計(jì)算機(jī)主板上。
圖2B示出了集成到個(gè)人計(jì)算機(jī)主板912上的電子數(shù)據(jù)閃存系統(tǒng)。個(gè)人計(jì)算機(jī)主板912 中的主機(jī)系統(tǒng)或個(gè)人計(jì)算機(jī)主板902通過接口總線發(fā)送命令、地址和數(shù)據(jù)到閃存系統(tǒng)910 (主板912的一部分)上的輸入/輸出接口電路904。這些命令控制處理部件908寫入、讀取 或抹除閃存906的閃存塊。閃存系統(tǒng)910不需要連接頭或套管,因?yàn)樗苯蛹傻絺€(gè)人計(jì)算 機(jī)主板912上。非易失性內(nèi)存裝置915包括輸入/輸出接口電路904、處理部件908和閃存 906。
圖2C示出了閃存模塊中的電子數(shù)據(jù)閃存系統(tǒng)。個(gè)人計(jì)算機(jī)主板912中的主機(jī)系統(tǒng)或個(gè) 人計(jì)算機(jī)主板902通過接口總線發(fā)送命令、地址和數(shù)據(jù)到閃存模塊914上的輸入/輸出接口 電路904。這些命令控制處理部件908寫入、讀取或抹除閃存906的閃存塊。閃存模塊914 可以是安裝到個(gè)人計(jì)算機(jī)主板902上的印刷電路板組件(PCBA),或者是與插入個(gè)人計(jì)算機(jī) 主板上的插槽中的內(nèi)存模塊類似的模塊。非易失性內(nèi)存裝置915包括輸入/輸出接口電路 904、處理部件908和閃存906,或者非易失性內(nèi)存裝置915只包括閃存906,且閃存906與 具有輸入/輸出接口電路904和處理部件908的個(gè)人計(jì)算機(jī)主板902通信的連接。
圖2D示出了閃存卡讀卡器中的電子數(shù)據(jù)閃存系統(tǒng)。主機(jī)系統(tǒng)或個(gè)人計(jì)算機(jī)主板902通 過接口總線發(fā)送命令、地址和數(shù)據(jù)經(jīng)過卡體900上的讀卡器接口 921到單芯片閃存裝置923 (插入讀卡器)上的輸入/輸出接口電路9(M。這些命令控制處理部件908寫入、讀取或抹除 閃存906的閃存塊。單芯片閃存裝置923可以是具有輸入/輸出接口電路904、處理部件908 和閃存906的單個(gè)芯片或單個(gè)封裝。單芯片閃存裝置923可以裝在塑料外殼中(帶連接頭, 以插入主機(jī)上的插槽中)。
圖3示出了本發(fā)明第一實(shí)施例提供的智能存儲(chǔ)裝置的結(jié)構(gòu),為了便于說明,僅示出了與 本發(fā)明實(shí)施例相關(guān)的部分。
該智能存儲(chǔ)裝置包括智能存儲(chǔ)開關(guān)30和多個(gè)單芯片閃存裝置73。在本發(fā)明實(shí)施例中, 以包括兩個(gè)單芯片閃存裝置73為例進(jìn)行說明。
其中智能存儲(chǔ)開關(guān)30包括上游接口34、智能存儲(chǔ)事務(wù)管理器36、虛擬存儲(chǔ)處理器140 和虛擬存儲(chǔ)橋42、 43 (由于本實(shí)例中包括兩個(gè)單芯片閃存裝置,因此,虛擬存儲(chǔ)橋也包括兩 個(gè)虛擬存儲(chǔ)橋42、 43)。上游接口 34通過存儲(chǔ)總線18與主機(jī)10連接,其接收主機(jī)10發(fā)送的命令、數(shù)據(jù)和地址 信息,并向主機(jī)10返回響應(yīng)信息。
虛擬存儲(chǔ)處理器140將主機(jī)10發(fā)送的地址轉(zhuǎn)譯為邏輯塊地址(Logical Block Addressing, LBA)。然后通過邏輯塊地址總線28 (LBA總線)將映射得到的邏輯塊地址發(fā) 送到相應(yīng)的單芯片閃存裝置73。
智能存儲(chǔ)事務(wù)管理器36管理來自主機(jī)10的事務(wù)。智能事務(wù)管理器36可以對(duì)主機(jī)發(fā)送 的事務(wù)的分組進(jìn)行重新排序。 一個(gè)事務(wù)通??梢杂袔讉€(gè)分組,如用于啟動(dòng)內(nèi)存讀取的初始命 令分組、從內(nèi)存裝置回到主機(jī)的數(shù)據(jù)分組以及結(jié)束事務(wù)的應(yīng)答分組。通過智能存儲(chǔ)事務(wù)管理 器36對(duì)來自主機(jī)10的事務(wù)的分組重新進(jìn)行排序,從而可以在前一個(gè)事務(wù)完成前開始下一個(gè) 事務(wù)的分組。智能事務(wù)管理器36將來自主機(jī)的事務(wù)分組重新排序后,發(fā)送至相應(yīng)的單芯片 閃存裝置73。這樣,下一個(gè)事務(wù)將有更多的時(shí)間進(jìn)行內(nèi)存存取,因此通過對(duì)主機(jī)的事務(wù)分組 進(jìn)行重新排序,可以重疊事務(wù)。智能存儲(chǔ)事務(wù)管理器36還可以根據(jù)虛擬存儲(chǔ)處理器140映 射得到的邏輯塊地址,將主機(jī)發(fā)送的事務(wù)重疊和交錯(cuò)存儲(chǔ)到不同的單芯片閃存裝置73中, 從而提高數(shù)據(jù)吞吐量。例如,幾個(gè)輸入的主機(jī)事務(wù)的分組由虛擬緩沖橋32存儲(chǔ)在SDRAM緩 沖區(qū)60中或存儲(chǔ)在關(guān)聯(lián)的緩沖區(qū)(圖未示出)中。智能存儲(chǔ)事務(wù)管理器36檢査這些緩存中 的事務(wù)分組,并對(duì)這些事務(wù)分組進(jìn)行重新排序,再根據(jù)虛擬存儲(chǔ)處理器140映射得到的邏輯 塊地址,通過內(nèi)置總線38將重新排序后的事務(wù)分組發(fā)送到相應(yīng)的單芯片閃存裝置73中的非 易失性閃存塊中。
通過虛擬存儲(chǔ)橋43對(duì)第二個(gè)單芯片閃存裝置73內(nèi)存讀取開始的分組,可以重新排序在 通過虛擬存儲(chǔ)橋42對(duì)第一個(gè)單芯片閃存裝置73內(nèi)存讀取結(jié)束的分組之前,以使第二個(gè)單芯 片閃存裝置73的存取可以提前開始。
其中智能事務(wù)管理器36包括數(shù)據(jù)分割單元(圖未示出)、重新排序單元(圖未示出)、 平均讀寫單元(圖未示出)、壞塊單元(圖未示出)、交錯(cuò)存儲(chǔ)單元(圖未示出)。其中數(shù) 據(jù)分割單元將主機(jī)發(fā)送的數(shù)據(jù)分割成數(shù)據(jù)分片,這些數(shù)據(jù)分片將被分配到多個(gè)單芯片閃存裝 置73中的不同非易失性內(nèi)存塊68中。重新排序單元將主機(jī)發(fā)送的一系列事務(wù)重新排序,并 將操作按重新排序后的順序通過虛擬存儲(chǔ)橋發(fā)送到多個(gè)單芯片閃存裝置73。平均讀寫單兀將 主機(jī)發(fā)送的數(shù)據(jù)分配到單芯片閃存裝置中的多個(gè)非易失性內(nèi)存塊中較少讀寫的非易失性內(nèi) 存塊。壞塊單元追蹤單芯片閃存裝置中有缺陷的非易失性內(nèi)存塊,避免將主機(jī)發(fā)送的數(shù)據(jù)存
儲(chǔ)到有缺陷的非易失性內(nèi)存塊中。交錯(cuò)存儲(chǔ)單元耦合到虛擬存儲(chǔ)橋,將主機(jī)發(fā)送的數(shù)據(jù)交錯(cuò) 存儲(chǔ)到多個(gè)單芯片閃存裝置的多個(gè)非易失性內(nèi)存塊中。
智能存儲(chǔ)開關(guān)30通過虛擬存儲(chǔ)橋42、 43,經(jīng)邏輯塊地址總線28連接到下游的單芯片閃
12存裝置73。其中虛擬存儲(chǔ)橋42、 43是提供物理信號(hào)(例如驅(qū)動(dòng)和接收邏輯塊地址總線28的任何差動(dòng)數(shù)據(jù)線上的差動(dòng)信號(hào)、探測(cè)或產(chǎn)生分組啟動(dòng)或停止模式、檢查或產(chǎn)生校驗(yàn)和以及諸如插入或抽取裝置地址和分組類型與命令等更高級(jí)的功能)的協(xié)議橋。
在本發(fā)明另一實(shí)施例中,智能存儲(chǔ)開關(guān)30還包括虛擬緩沖橋32。智能存儲(chǔ)開關(guān)30通過內(nèi)置總線38使數(shù)據(jù)可以在虛擬緩沖橋32與虛擬存儲(chǔ)橋42、 43之間流動(dòng)。耦合到虛擬緩沖橋32的同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器60 (SDRAM緩沖區(qū))用于暫時(shí)存儲(chǔ)主機(jī)數(shù)據(jù)在電源中斷吋會(huì)丟失數(shù)據(jù)的易失性內(nèi)存中。該SDRM1緩沖區(qū)60可以是智能存儲(chǔ)開關(guān)30中的同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,也可以是位于主機(jī)主板中的SDRAM內(nèi)存模塊的存儲(chǔ)空間。當(dāng)SDRAM緩沖區(qū)60為位于主機(jī)主板中的SDRAM內(nèi)存模塊的存儲(chǔ)空間時(shí),由于主板上的SDRAM模塊容量通常較大,從而可以節(jié)約智能存儲(chǔ)開關(guān)30的成本。此外智能存儲(chǔ)開關(guān)30的功能可以嵌入到主機(jī)主板中,由于主機(jī)的CPU功能較強(qiáng)大,且位于主機(jī)主板中的SDRAM容量較大,因此,可以進(jìn)一步增加系統(tǒng)存儲(chǔ)效率。
在本發(fā)明另一實(shí)施例中,智能存儲(chǔ)開關(guān)30還包括奇偶發(fā)生器(圖未示出)。該奇偶發(fā)生器產(chǎn)生主機(jī)數(shù)據(jù)的檢錯(cuò)碼,檢錯(cuò)碼與主機(jī)發(fā)送的數(shù)據(jù)一起存儲(chǔ)。
在本發(fā)明另一實(shí)施例中,智能存儲(chǔ)開關(guān)30還包括耦合到智能存儲(chǔ)事務(wù)管理器36的模式邏輯(圖未示出)。該模式邏輯確定何時(shí)將智能存儲(chǔ)事務(wù)管理器36設(shè)為集線器模式,以及何時(shí)將智能存儲(chǔ)事務(wù)管理器36設(shè)為單終結(jié)點(diǎn)模式。當(dāng)模式邏輯為單終結(jié)點(diǎn)模式時(shí),智能存儲(chǔ)事務(wù)管理器36作為單個(gè)終結(jié)點(diǎn)回應(yīng)主機(jī)10,其向主機(jī)10報(bào)告多個(gè)單芯片閃存裝置73中所有非易失性閃存塊的總閃存容量,且智能存儲(chǔ)開關(guān)30促使主機(jī)10把多個(gè)單芯片閃存裝置73視為一個(gè)虛擬閃存裝置。
時(shí)鐘脈沖源62產(chǎn)生到SDRAM緩沖區(qū)60、智能存儲(chǔ)事務(wù)管理器36、虛擬存儲(chǔ)處理器140和智能存儲(chǔ)開關(guān)30中其他邏輯的時(shí)鐘脈沖。來自時(shí)鐘脈沖源62的時(shí)鐘脈沖也可以從智能存儲(chǔ)開關(guān)30發(fā)送到單芯片閃存裝置73,單芯片閃存裝置73有一個(gè)內(nèi)部時(shí)鐘脈沖源44,其產(chǎn)生的內(nèi)部時(shí)鐘脈沖CK—SR可同步單芯片閃存裝置73中非易失性內(nèi)存控制器76和非易失性內(nèi)存塊68之間的傳輸。從而,由在邏輯塊地址總線28上傳輸?shù)倪壿媺K地址(LBA)起始計(jì)算,物理塊和物理塊地址(PBA)的傳輸被重新定時(shí)。
單芯片閃存裝置73包括耦合到邏輯塊地址總線28的非易失性內(nèi)存控制器76和多塊非易失性內(nèi)存塊68。
其中非易失性內(nèi)存控制器76執(zhí)行邏輯塊地址到物理塊地址的重新映射,作為閃存轉(zhuǎn)換層功能的一部分,將邏輯塊地址總線28上收到的邏輯塊地址轉(zhuǎn)換為物理塊地址(實(shí)際的非易失性內(nèi)存塊在非易失性內(nèi)存塊68中的地址)。非易失性內(nèi)存控制器76可以執(zhí)行平均讀寫和壞塊重新映射以及其他較低層管理功能。其包括重新映射單元(圖未示出)、平均讀寫單元(圖未示出)和壞塊單元(圖未示出)。其中重新映射單元將通過邏輯塊地址總線28從虛擬存儲(chǔ)橋42或43接收到的邏輯塊地址轉(zhuǎn)譯為物理塊地址,以存儲(chǔ)單芯片閃存裝置73中的多塊非易失性內(nèi)存塊。平均讀寫單元將從虛擬存儲(chǔ)橋接收的數(shù)據(jù)分配至單芯片閃存裝置73中的多塊非易失內(nèi)存塊68,該非易失性內(nèi)存塊68為所有非易失性內(nèi)存塊中較少讀寫的塊。在本發(fā)明另一實(shí)施例中,非易失性內(nèi)存控制器76還包括局部時(shí)鐘脈沖源44。該局部吋
鐘脈沖源44產(chǎn)生局部時(shí)鐘脈沖,以定時(shí)提醒非易失性閃存控制器以及非易失性內(nèi)存接n。
該局部時(shí)鐘脈沖在多個(gè)單芯片閃存裝置的每個(gè)裝置中產(chǎn)生。
在本發(fā)明另一實(shí)施例中,單芯片閃存裝置73還由閃存模塊(圖未示出)構(gòu)成。所述閃存模塊以直接焊接的方式,通過連接頭和插槽實(shí)體安裝到主機(jī)主板匕或者嵌入到主機(jī)主板中。
在本發(fā)明另一實(shí)施例中,智能存儲(chǔ)裝置還包括LED控制器33。該LED控制器33控制發(fā)光二極管(LED)的照明,以向用戶指示單芯片閃存裝置73的運(yùn)行狀態(tài)。
圖4示出了本發(fā)明另一實(shí)施例提供的只帶一個(gè)單芯片閃存裝置的簡化智能存儲(chǔ)裝置的結(jié)構(gòu)。
該智能存儲(chǔ)裝置包括上游接口 34、虛擬存儲(chǔ)處理器140和單芯片閃存裝置73。其中主機(jī)10通過存儲(chǔ)總線18發(fā)送命令、數(shù)據(jù)和地址信息到存儲(chǔ)裝置942中的上游接口 34。
虛擬存儲(chǔ)處理器140將主機(jī)發(fā)送的地址重新映射,得到邏輯塊地址,并通過邏輯塊地址總線28將映射得到的邏輯塊地址、主機(jī)發(fā)送的命令和數(shù)據(jù)發(fā)送至單芯片閃存裝置73。由于簡化智能存儲(chǔ)裝置不包括智能存儲(chǔ)事務(wù)管理器,因此,在本發(fā)明實(shí)施例中,由上游接口 34驅(qū)動(dòng)邏輯塊地址總線28將映射得到的邏輯塊地址發(fā)送至單芯片閃存裝置73。時(shí)鐘脈沖源62定時(shí)提醒虛擬存儲(chǔ)處理器140和單芯片閃存裝置73中的局部時(shí)鐘脈沖源44,從而產(chǎn)生內(nèi)部時(shí)鐘脈沖CK—SR到非易失性內(nèi)存塊68。
單芯片閃存裝置73包括非易失性內(nèi)存控制器76和和非易失性內(nèi)存塊68。其中非易失性內(nèi)存控制器76包括重新映射單元(圖未示出)、平均讀寫單元72和壞塊單元70。其中重新映射單元可以根據(jù)壞塊單元70和平均讀寫單元72的輸出將邏輯塊地址重新映射為物理塊地址,以執(zhí)行非易失性內(nèi)存塊68的平均讀寫,并避開非易失性內(nèi)存塊68中的壞塊。CPU用非易失性內(nèi)存控制器76中的映像來執(zhí)行到物理塊地址的重新映射。其他糾錯(cuò)碼(ECC)的奇偶校驗(yàn)碼可以附加到數(shù)據(jù)中,并在數(shù)據(jù)讀取時(shí)檢査。RAM可以是易失性內(nèi)存,如SRAM或SDRAM。NV通道接口 78從非易失性內(nèi)存控制器76驅(qū)動(dòng)物理塊地址總線上的物理塊地址、數(shù)據(jù)和命令到非易失性內(nèi)存塊68。由于單芯片閃存裝置73內(nèi)部的非易失性內(nèi)存控制器76能夠在低層次執(zhí)行平均讀寫和壞塊更換的重新映射,所以存儲(chǔ)裝置942中不需要較高層重新映射單元。
圖5示出了本發(fā)明另一實(shí)施例提供的一個(gè)用下游存儲(chǔ)總線與單芯片閃存裝置接口的智能存儲(chǔ)裝置。其與圖3所示的通過邏輯塊地址總線28與單芯片閃存裝置73的邏輯塊地址接口不同,其在差動(dòng)串行分組總線27上使用差動(dòng)串行分組接口。虛擬存儲(chǔ)橋42、 43連接到驅(qū)動(dòng)差動(dòng)串行分組總線27的差動(dòng)串行分組接口 46、 47,該差動(dòng)串行分組接口 46、 47以及差動(dòng)串行分組總線27外置于智能存儲(chǔ)開關(guān)30,而不是如圖3所示的內(nèi)置。
在每個(gè)單芯片閃存裝置74中的非易失性內(nèi)存控制器76添加差動(dòng)串行分組接口電路66,以與差動(dòng)串行分組總線27接口。差動(dòng)串行分組總線27使用小電壓擺動(dòng)差動(dòng)信號(hào),而邏輯塊地址總線28 (有較多引腳的并行總線)使用較大電壓和較高耗電。
非易失性內(nèi)存控制器76內(nèi)部的時(shí)鐘脈沖源44不需要來自智能存儲(chǔ)開關(guān)30中的時(shí)鐘脈沖源62的外部輸入。該時(shí)鐘脈沖源62只定時(shí)提醒智能存儲(chǔ)開關(guān)30內(nèi)置組件如SR層緩沖區(qū)61。差動(dòng)串行分組總線27可以與傳輸數(shù)據(jù)內(nèi)嵌的時(shí)鐘脈沖同步。時(shí)鐘脈沖源可以從輸入數(shù)據(jù)抽取時(shí)鐘脈沖信息,和定時(shí)提醒輸出數(shù)據(jù)。它還提供時(shí)鐘脈沖給非易失性內(nèi)存塊68,以迸行同步接口。差動(dòng)串行分組總線27可以異步,以使非易失性內(nèi)存控制器76和智能存儲(chǔ)開關(guān)30具有不同的時(shí)鐘脈沖。具有異步時(shí)鐘脈沖特別有利,因?yàn)榕c內(nèi)置邏輯塊地址總線28(圖3)相比,外置差動(dòng)串行分組總線27上可能有干擾信號(hào)。
圖6顯示了一個(gè)四通道智能存儲(chǔ)開關(guān),同時(shí)顯示了智能存儲(chǔ)事務(wù)管理器的更多細(xì)節(jié)。虛擬存儲(chǔ)處理器140、接到SDRAM緩沖區(qū)60的虛擬緩沖橋32以及接到主機(jī)的上游接口 34,全都連接到智能存儲(chǔ)事務(wù)管理器36并如前面圖3說明那樣運(yùn)行。
連接到智能存儲(chǔ)事務(wù)管理器36中的多通道交錯(cuò)存儲(chǔ)路由邏輯534的四個(gè)虛擬存儲(chǔ)橋42,提供到四個(gè)單芯片閃存裝置950-953的四個(gè)通道。主機(jī)數(shù)據(jù)可以用路由邏輯534在四個(gè)通道和四個(gè)單芯片閃存裝置950-953之間交錯(cuò)存儲(chǔ),以提高性能。
來自上游接口34的主機(jī)數(shù)據(jù)由智能存儲(chǔ)事務(wù)管理器36中的重新排序單元516重新排序。例如,主機(jī)分組可以按不同于接收順序的順序處理,參見后面圖11-13所示的分組重新排序。這是很高層次的重新排序。
分割邏輯518可以將主機(jī)數(shù)據(jù)分割成分片,以寫入不同的實(shí)體裝置,如經(jīng)濟(jì)磁盤冗余陣列(RAID)。糾錯(cuò)碼邏輯520可以添加和檢查奇偶校驗(yàn)碼和糾錯(cuò)碼數(shù)據(jù),而SLV安裝程序521可以安裝新存儲(chǔ)邏輯巻(SLV)或恢復(fù)原SLV。 SLV邏輯巻可以分配到不同的實(shí)體閃存裝置,如本圖所示(單芯片閃存裝置950-953,編號(hào)分別為SLVW1、 #2、 #3和#4)。
虛擬化單元514虛擬化主機(jī)邏輯地址,并將單芯片閃存裝置950-953中的閃存連接成
15一個(gè)單元,以進(jìn)行高效的數(shù)據(jù)處理,如通過重新映射和錯(cuò)誤處理。重新映射可以由智能存儲(chǔ)事務(wù)管理器36用平均讀寫和壞塊監(jiān)測(cè)器526(監(jiān)視單芯片閃存裝置950-953中每個(gè)裝置的讀寫和壞塊程度)在高層次執(zhí)行。這個(gè)高層次的平均讀寫可以指示新塊到單芯片閃存裝置950-953中讀寫最少的裝置,如單芯片閃存裝置952,其讀寫為250,比其他單芯片閃存裝置上的讀寫500、 400和300較少。然后,單芯片閃存裝置952可以在單芯片閃存裝置952中的非易失性內(nèi)存塊68 (圖3)之間執(zhí)行更多低層次的平均讀寫。
因此,高層次平均讀寫確定讀寫最少的巻或單芯片閃存裝置,而所選的裝置在所選的單芯片閃存裝置中的非易失性內(nèi)存塊68 (圖3)之間執(zhí)行較低層次的平均讀寫,從而改善和優(yōu)化智能存儲(chǔ)裝置的讀寫效率。
終結(jié)點(diǎn)和集線器模式邏輯528促使智能存儲(chǔ)事務(wù)管理器36為丌關(guān)模式執(zhí)行終結(jié)點(diǎn)聚合,參見上面圖1的模式邏輯26說明。智能存儲(chǔ)事務(wù)管理器36可以用壞塊比例來決定分配新塊給單芯片閃存裝置950-953中的哪一個(gè)。壞塊比例較大的單芯片閃存裝置可以略過。少數(shù)不需要交錯(cuò)存儲(chǔ)的主機(jī)數(shù)據(jù)可以使用讀寫較少的單芯片閃存裝置,而較大量的主機(jī)數(shù)據(jù)可以在所有四個(gè)單芯片閃存裝置(包括讀寫較多的裝置)之間交錯(cuò)存儲(chǔ)。讀寫仍然減少,而交錯(cuò)存儲(chǔ)仍然用于提高較大多塊數(shù)據(jù)傳輸?shù)男阅堋?br>
圖7是智能存儲(chǔ)開關(guān)執(zhí)行的寫操作的流程圖。智能存儲(chǔ)開關(guān)30 (圖3)從主機(jī)接收命令分組,步驟960。這個(gè)命令分組包含主機(jī)的地址,它可以是邏輯地址(如包含邏輯塊地址的邏輯扇區(qū)地址(LSA)),或者是可用于查找邏輯塊地址。當(dāng)這個(gè)命令分組指示讀取時(shí),步驟962和步驟964失敗,且過程繼續(xù)圖8的讀取流程。
如果主機(jī)命令分組是為了可超高速緩存的寫入,步驟962,則智能存儲(chǔ)開關(guān)會(huì)比較主機(jī)地址和存儲(chǔ)在SDRAM60中的超高速緩存中的數(shù)據(jù)的地址,步驟966。如果主機(jī)正在寫入的地址的范圍和存儲(chǔ)在SDRAM超高速緩存中的數(shù)據(jù)的地址有任何重疊,步驟96S,則主機(jī)數(shù)據(jù)會(huì)立即被寫入SDRAM超高速緩存,并在收到主機(jī)的數(shù)據(jù)分組后,立即發(fā)送成功狀態(tài)到主機(jī),歩驟967。 SDRAM超高速緩存的激活旗標(biāo)設(shè)為指示超高速緩存中有需要輸出到閃存的有效數(shù)據(jù),并為SDRAM超高速緩存中的主機(jī)數(shù)據(jù)產(chǎn)生糾錯(cuò)碼,步驟972。
如果主機(jī)地址范圍與超高速緩存中的數(shù)據(jù)沒有重疊,步驟968,但主機(jī)地址范圍順序在已經(jīng)存儲(chǔ)在SDRAM超高速緩存中的一系列數(shù)據(jù)后面,步驟965,則把主機(jī)數(shù)據(jù)寫入SDRAM中已經(jīng)存儲(chǔ)在SDRAM中的數(shù)據(jù)的范圍后面,并發(fā)送成功狀態(tài)到主機(jī),步驟970。 SDRAM超高速緩存的激活旗標(biāo)設(shè)為指示超高速緩存中有需要輸出到閃存的有效數(shù)據(jù),并為SDRAM超高速緩存中的主機(jī)數(shù)據(jù)產(chǎn)生糾錯(cuò)碼,步驟972。可以將SDRAM超高速緩存中的數(shù)據(jù)輸出到閃存(標(biāo)準(zhǔn)后臺(tái)處理)。如果主機(jī)地址范圍與超高速緩存中的數(shù)據(jù)沒有重疊,步驟96S,并且主機(jī)地址范圍不順序在已經(jīng)存儲(chǔ)在SDRAM超高速緩存中的一系列數(shù)據(jù)后面,步驟965,則把主機(jī)數(shù)據(jù)寫入SDRAM中的任何可用空間,歩驟976。這樣可以盡可能把數(shù)據(jù)存儲(chǔ)到SDRAM超高速緩存中的連續(xù)塊中。如果超高速緩存的可用空間不夠,步驟974,則SDRAM輸出到閃存(后臺(tái)處理),步驟975,然后過程繼續(xù),即按照上述的步驟970,把主機(jī)數(shù)據(jù)寫入SDRAM(在步驟974中,3 SDRAM超高速緩存的可用空間足夠時(shí)也執(zhí)行步驟970這一動(dòng)作)。
如果主機(jī)命令不是可超高速緩存寫入,步驟962,但仍是寫入命令,步驟964,則為主機(jī)數(shù)據(jù)產(chǎn)生糾錯(cuò)碼,并將糾錯(cuò)碼直接存儲(chǔ)到閃存,步驟963。智能存儲(chǔ)開關(guān)30必須確定存儲(chǔ)主機(jī)數(shù)據(jù)的位置,因?yàn)橹鳈C(jī)數(shù)據(jù)可以重新映射和存儲(chǔ)到任何單芯片閃存裝置。
圖8是智能存儲(chǔ)開關(guān)執(zhí)行的讀操作的流程圖。如果這是讀命令分組且該命令分組指示讀取可超高速緩存,步驟980,則比較主機(jī)命令中的地址的范圍和已經(jīng)在超高速緩存中的數(shù)據(jù)的地址,步驟982。這個(gè)比較可以通過檢查超高速緩存標(biāo)志或使用超高速緩存目錄來執(zhí)行。當(dāng)所有被請(qǐng)求的讀取數(shù)據(jù)命中SDRAM超高速緩存時(shí),步驟984,則從超高速緩存讀取數(shù)據(jù)并把數(shù)據(jù)發(fā)送到主機(jī),步驟986。如果主機(jī)地址范圍中有部分地址命中超高速緩存,但主機(jī)的地址中的其他地址未命屮超高速緩存,步驟988,則從超高速緩存讀取重疊命中數(shù)據(jù),同時(shí)從閃存讀取非重疊請(qǐng)求數(shù)據(jù),步驟990, 992。然后,檢査奇偶校驗(yàn)碼或糾錯(cuò)碼并執(zhí)行糾正,步驟993。如果糾正失敗,傳回失敗狀態(tài)到主機(jī)。
如果主機(jī)命令不讀取超高速緩存,步驟980,或者所請(qǐng)求數(shù)據(jù)的部分或全部未命中超高速緩存,步驟984, 988,則從閃存讀取所請(qǐng)求的數(shù)據(jù),步驟992。智能存儲(chǔ)開關(guān)30用映像查找閃存中的請(qǐng)求數(shù)據(jù),并發(fā)送讀取請(qǐng)求到所識(shí)別的單芯片閃存裝置。
圖9是智能存儲(chǔ)開關(guān)執(zhí)行的啟動(dòng)程序的流程圖。當(dāng)加電或進(jìn)行重置時(shí),智能存儲(chǔ)開關(guān)30會(huì)取得并執(zhí)行啟動(dòng)程序,如存儲(chǔ)為固件或存儲(chǔ)在只讀存儲(chǔ)器(ROM)中的啟動(dòng)程序。智能存儲(chǔ)開關(guān)驅(qū)動(dòng)連接主機(jī)的就緒線成為非激活信號(hào)(即忙碌),并進(jìn)入等待狀態(tài),歩驟552。存儲(chǔ)處理器(如圖3的虛擬存儲(chǔ)處理器140),發(fā)送硬件產(chǎn)生的重置向量,以回應(yīng)丌機(jī)信號(hào),步驟554。然后,存儲(chǔ)處理器開始讀取ROM或其他非易失性內(nèi)存中的指令,步驟556。這些指令可以被視為智能存儲(chǔ)開關(guān)30的基本輸入輸出系統(tǒng)(BIOS) 。 BIOS中有某部分可以存儲(chǔ)在小型ROM中,其他部分存儲(chǔ)在單芯片閃存裝置73的閃存中。
由于BIOS指令由存儲(chǔ)處理器執(zhí)行,步驟558,智能存儲(chǔ)事務(wù)管理器36會(huì)發(fā)送信息到每個(gè)單芯片閃存裝置73,以獲得指明每個(gè)單芯片閃存裝置73的特征的回應(yīng),如它們的總?cè)萘?、定時(shí)、壞塊數(shù)、失敗計(jì)數(shù)器等。然后,智能存儲(chǔ)開關(guān)會(huì)向主機(jī)啟動(dòng)就緒信號(hào)并結(jié)束它的等待狀態(tài),步驟553。這就將控制權(quán)交回給主機(jī)。圖10是連接到智能存儲(chǔ)開關(guān)的主機(jī)執(zhí)行的啟動(dòng)程序的流程圖。當(dāng)主機(jī)系統(tǒng)準(zhǔn)備好啟動(dòng)它的外圍設(shè)備,以便它可以存取它的大容量存儲(chǔ)裝置如旋轉(zhuǎn)式硬盤和閃存固態(tài)硬盤時(shí),步驟562,它會(huì)檢查包含智能存儲(chǔ)開關(guān)30的固態(tài)存儲(chǔ)裝置是否就緒,步驟564。當(dāng)智能存儲(chǔ)開關(guān)還未啟動(dòng)它的就緒信號(hào)時(shí),主機(jī)會(huì)等待,步驟565,并繼續(xù)檢查固態(tài)存儲(chǔ)裝置是否就緒,步驟564。
在智能存儲(chǔ)開關(guān)完成圖9的啟動(dòng)程序后,它會(huì)向主機(jī)發(fā)出或啟動(dòng)就緒信號(hào),并傳遞過步驟564。主機(jī)可以發(fā)送狀態(tài)請(qǐng)求給智能存儲(chǔ)開關(guān),使智能存儲(chǔ)開關(guān)傳回它的狀態(tài)和特征,如總?cè)萘?、接口格式等,步驟566。智能存儲(chǔ)開關(guān)會(huì)總計(jì)或結(jié)合它控制的所有單芯片閃存裝置73的容量。
然后,主機(jī)會(huì)完成它的啟動(dòng)過程,歩驟568,并準(zhǔn)備好發(fā)送讀寫命令到智能存儲(chǔ)丌關(guān)。圖11是以集線器模式運(yùn)行的智能存儲(chǔ)丌關(guān)的分組定時(shí)圖解。主機(jī)IO上的協(xié)議傳輸軟件排定各個(gè)協(xié)議裝置在每個(gè)時(shí)幀的事務(wù)。主機(jī)10會(huì)發(fā)送直接存儲(chǔ)器存取(DMA)輸出(DMA—OUT)命令(非數(shù)據(jù))分組到位于終結(jié)點(diǎn)1的閃存裝置。智能存儲(chǔ)開關(guān)30將這個(gè)分組從主機(jī)10傳遞到終結(jié)點(diǎn)l,即圖3的第一個(gè)單芯片閃存裝置73。這個(gè)命令分組暗示一個(gè)將要寫到閃存塊的寫命令。
位于終結(jié)點(diǎn)1的單芯片閃存裝置73通過為DMA傳輸進(jìn)行設(shè)置來回應(yīng),并通過智能存儲(chǔ)開關(guān)30將激活的DMA (DMA Activate)傳回主機(jī)10,以指明它己經(jīng)準(zhǔn)備好讓DMA傳輸丌始。
接著,主機(jī)IO會(huì)發(fā)送一個(gè)或多個(gè)數(shù)據(jù)輸出分組到終結(jié)點(diǎn)1,把數(shù)據(jù)寫入單芯片閃存裝置73中的閃存塊中。智能存儲(chǔ)開關(guān)30用作集線器,并傳遞這個(gè)數(shù)據(jù)分組。然后,第一個(gè)單芯片閃存裝置73中的非易失性內(nèi)存控制器76將這個(gè)數(shù)據(jù)寫入它的非易失性內(nèi)存塊68中,并以狀態(tài)分組回應(yīng)主機(jī)10。智能存儲(chǔ)開關(guān)30會(huì)將這個(gè)狀態(tài)分組傳回主機(jī)10。
在收到終結(jié)點(diǎn)1的狀態(tài)分組后,主機(jī)10會(huì)產(chǎn)生第二個(gè)命令分組DMA輸入(DMA_IN),然后發(fā)送到終結(jié)點(diǎn)2。智能存儲(chǔ)開關(guān)30會(huì)傳遞此第二個(gè)命令分組到第二個(gè)單芯片閃存裝置73,即由命令分組尋址的第二個(gè)終結(jié)點(diǎn)。這個(gè)命令分組包含一個(gè)閃存讀命令以及開始讀取的地址和讀取長度,所以非易失性內(nèi)存控制器76會(huì)指示非易失性內(nèi)存塊68開始讀取所請(qǐng)求的數(shù)據(jù)。
在讀取時(shí)間過后,數(shù)據(jù)就準(zhǔn)備好被傳回主機(jī)10。第二個(gè)單芯片閃存裝置73中的非易失性內(nèi)存控制器76把讀取的數(shù)據(jù)打包成數(shù)據(jù)輸入分組。數(shù)據(jù)輸入分組通過智能存儲(chǔ)開關(guān)30被發(fā)送到主機(jī)10。第二個(gè)單芯片閃存裝置73中的非易失性內(nèi)存控制器76還會(huì)產(chǎn)生最后狀態(tài)分組,以指示讀命令的完成。智能存儲(chǔ)開關(guān)30會(huì)將狀態(tài)分組傳遞到主機(jī)10。
數(shù)據(jù)讀取的起始會(huì)延遲,直到前一個(gè)事務(wù)完成。主機(jī)為執(zhí)行寫入可以使用分割事務(wù),但
18是,由于主機(jī)軟件對(duì)終結(jié)點(diǎn)缺乏詳細(xì)了解,所以任何的分組重新排序都無甚效率。
圖12是以開關(guān)模式運(yùn)行的智能存儲(chǔ)開關(guān)30進(jìn)行分組排序的分組定時(shí)圖解。智能存儲(chǔ)開關(guān)30充當(dāng)主機(jī)10所見到的單個(gè)終結(jié)點(diǎn)。包含寫入閃存命令的第一個(gè)DMA輸出命令分組由主機(jī)10發(fā)送。智能存儲(chǔ)丌關(guān)30使用虛擬存儲(chǔ)處理器140或智能存儲(chǔ)事務(wù)管理器36 (圖3)中的其他邏輯所執(zhí)行的內(nèi)存管理技術(shù)的內(nèi)存映射表來決定寫入兩個(gè)單芯片閃存裝置73中的哪一個(gè)。然后,智能存儲(chǔ)開關(guān)30會(huì)產(chǎn)生另一個(gè)DMA輸出命令分組,并轉(zhuǎn)送到第一個(gè)單芯片閃存裝置73。
位于終結(jié)點(diǎn)1的單芯片閃存裝置73通過為DMA傳輸進(jìn)行設(shè)置來回應(yīng),并發(fā)送激活的DMA到智能存儲(chǔ)開關(guān)30,然后智能存儲(chǔ)開關(guān)30將激活的DMA傳回主機(jī)10,以指明它已經(jīng)準(zhǔn)備好讓DMA傳輸開始。
接著,主機(jī)10會(huì)發(fā)送一個(gè)或多個(gè)數(shù)據(jù)輸出分組到智能存儲(chǔ)開關(guān)30,智能存儲(chǔ)開關(guān)30會(huì)取得數(shù)據(jù)并形成一個(gè)或多個(gè)數(shù)據(jù)輸出分組,以發(fā)送到終結(jié)點(diǎn)l,并把數(shù)據(jù)寫入第一個(gè)單芯片閃存裝置73中的閃存塊中。智能存儲(chǔ)開關(guān)30充當(dāng)主機(jī)10的終結(jié)點(diǎn),并充3終結(jié)點(diǎn)1的主機(jī)。
第一個(gè)單芯片閃存裝置73屮的非易失性內(nèi)存控制器76接收這些數(shù)據(jù)分組,然后把這個(gè)數(shù)據(jù)寫入它的非易失性內(nèi)存塊68中,并以狀態(tài)分組回應(yīng)智能存儲(chǔ)開關(guān)30。智能存儲(chǔ)開關(guān)30會(huì)產(chǎn)生它自己的狀態(tài)分組,以發(fā)送到主機(jī)10。
在收到終結(jié)點(diǎn)1的狀態(tài)分組后,主機(jī)10會(huì)產(chǎn)生第二個(gè)命令分組DMA輸入,然后發(fā)送到終結(jié)點(diǎn)2。智能存儲(chǔ)丌關(guān)30會(huì)接收這個(gè)分組,查找數(shù)據(jù)的地址,并確定數(shù)據(jù)是存儲(chǔ)在第二個(gè)單芯片閃存裝置73中。智能存儲(chǔ)開關(guān)30產(chǎn)生另一個(gè)第二命令分組,然后發(fā)送到第二個(gè)單芯片閃存裝置73,即由主機(jī)的命令分組尋址的第二個(gè)終結(jié)點(diǎn)。這個(gè)命令分組包含一個(gè)閃存讀命令以及開始讀取的地址和讀取長度,所以非易失性內(nèi)存控制器76會(huì)指示非易失性內(nèi)存塊68開始讀取所請(qǐng)求的數(shù)據(jù)。
在讀取時(shí)間過后,數(shù)據(jù)就準(zhǔn)備好被傳回主機(jī)10。第二個(gè)單芯片閃存裝置73中的非易失性內(nèi)存控制器76把讀取的數(shù)據(jù)打包成一個(gè)或多個(gè)數(shù)據(jù)輸入分組。這些數(shù)據(jù)輸入分組被發(fā)送到智能存儲(chǔ)丌關(guān)30,然后智能存儲(chǔ)開關(guān)30會(huì)緩沖這些數(shù)據(jù)并形成其他數(shù)據(jù)輸入分組,以發(fā)送到主機(jī)10。第二個(gè)單芯片閃存裝置73中的非易失性內(nèi)存控制器76還會(huì)產(chǎn)生最后狀態(tài)分組,以指示讀命令的完成。狀態(tài)分組被發(fā)送到智能存儲(chǔ)開關(guān)30,然后智能存儲(chǔ)開關(guān)30會(huì)形成另
一個(gè)狀態(tài)分組,以發(fā)送到主機(jī)io。
圖13A-B是智能存儲(chǔ)開關(guān)進(jìn)行分組重新排序的分組定時(shí)圖解。智能存儲(chǔ)開關(guān)30的智能存儲(chǔ)事務(wù)管理器36中的重新排序單元516 (圖6)可以將分組重新排序(如圖13所示)以提高性能。
在集線器模式中,智能存儲(chǔ)開關(guān)30只是按同一順序從上游隊(duì)列復(fù)制分組到下游隊(duì)列(或 相反方向)。但是,在開關(guān)模式中,分組可以重新排序以提高性能。在本例中,第二個(gè)命令 分組會(huì)被重新排序在下游命令隊(duì)列中,以提前至回應(yīng)第一個(gè)命令分組的發(fā)送數(shù)據(jù)之前。
通過重新排序第二個(gè)命令分組在第一個(gè)數(shù)據(jù)輸出分組之前,讀取第二個(gè)單芯片閃存裝置 73中的閃存塊可以更早開始。這樣可以使讀取數(shù)據(jù)更早準(zhǔn)備好,以便第二個(gè)事務(wù)可以更快地 結(jié)束。利用這種分組重新排序,可以提高數(shù)據(jù)吞吐量。在實(shí)際系統(tǒng)中,讀取時(shí)間可以比這個(gè) 簡化圖所示的時(shí)間更長而成為更大的延遲,導(dǎo)致通過重新排序可以更顯著的減少延遲。
由于緩沖,來自智能存儲(chǔ)開關(guān)30的分組傳輸相對(duì)于分組接收的延遲可能比圖示的延遲 更嚴(yán)重。智能存儲(chǔ)開關(guān)30的轉(zhuǎn)移或延遲可能會(huì)發(fā)生(但圖中并未顯示以提高對(duì)基本概念的 清楚理解)。
主機(jī)發(fā)送包含DMA輸出1命令的第一個(gè)命令分組到裝置1。這個(gè)第一命令存儲(chǔ)在智能存 儲(chǔ)開關(guān)30的命令隊(duì)列中,然后智能存儲(chǔ)開關(guān)30會(huì)發(fā)送DMAJ)UT (1至1)命令到終結(jié)點(diǎn)1。 智能存儲(chǔ)開關(guān)30會(huì)產(chǎn)生激活的DMA1分組并傳回到主機(jī)10。主機(jī)10以包含寫入數(shù)據(jù)1 (存 儲(chǔ)在智能存儲(chǔ)開關(guān)30的SDRAM緩沖區(qū)中)的數(shù)據(jù)輸出分組回應(yīng)。在把數(shù)據(jù)存儲(chǔ)在SDRAM緩 沖區(qū)中后,智能存儲(chǔ)開關(guān)30會(huì)產(chǎn)生并發(fā)送狀態(tài)1分組到主機(jī)10,指明第一個(gè)DMA1傳輸已完 成,盡管還未將數(shù)據(jù)寫入閃存。
在收到第一個(gè)狀態(tài)分組后,主機(jī)以包含DMA輸入2讀命令的第二個(gè)命令分組開始第二個(gè) 事務(wù)。智能存儲(chǔ)開關(guān)30把這個(gè)命令放入它的命令隊(duì)列。由于讀命令比命令隊(duì)列中的第一個(gè) 寫命令的時(shí)序要求更嚴(yán)格,所以智能存儲(chǔ)開關(guān)30會(huì)對(duì)來自主機(jī)的第一個(gè)和第二個(gè)命令重新 排序。智能存儲(chǔ)開關(guān)30會(huì)從第二個(gè)命令分組查找主機(jī)地址,并確定第二個(gè)單芯片閃存裝置 73包含所請(qǐng)求的讀取數(shù)據(jù)。智能存儲(chǔ)開關(guān)30會(huì)產(chǎn)生DMA—IN (2至2)讀分組,然后提前(在 把第一個(gè)寫入數(shù)據(jù)1發(fā)送到第一個(gè)終結(jié)點(diǎn)前)發(fā)送到終結(jié)點(diǎn)2。
第二個(gè)閃存裝置可以提前開始讀取請(qǐng)求的數(shù)據(jù)2,并把它通過數(shù)據(jù)輸入分組(數(shù)據(jù)2至 2)傳回到智能存儲(chǔ)開關(guān)30,然后是發(fā)送結(jié)束第二個(gè)事務(wù)的第二個(gè)狀態(tài)2分組到智能存儲(chǔ)開 關(guān)30。智能存儲(chǔ)丌關(guān)30會(huì)緩沖數(shù)據(jù)2并將數(shù)據(jù)2輸入分組傳回到主機(jī),然后是發(fā)送結(jié)束第 二個(gè)事務(wù)的第二個(gè)狀態(tài)2分組到主機(jī)。
開始存取第二個(gè)閃存裝置的第二個(gè)命令分組(DMA輸入2)位于第一個(gè)數(shù)據(jù)輸出分組(數(shù) 據(jù)l至l)和來自第一個(gè)單芯片閃存裝置73的第一個(gè)狀態(tài)分組(發(fā)送狀態(tài)l)前面。這樣使 第二個(gè)閃存裝置的讀取更早開始。數(shù)據(jù)寫入第一個(gè)閃存裝置的實(shí)體完成雖然有點(diǎn)延遲,但這 通常不是嚴(yán)重的性能問題。圖13B顯示了更多來自主機(jī)由智能存儲(chǔ)開關(guān)30緩存的數(shù)據(jù)輸出分組(DMA輸出4、5、6)。 智能存儲(chǔ)開關(guān)30通過輪流的指定第一和第二個(gè)單芯片閃存裝置73接收數(shù)據(jù),來交錯(cuò)存儲(chǔ)這 些新主機(jī)數(shù)據(jù)。雖然實(shí)體閃存塊的寫入是很慢的,但智能存儲(chǔ)丌關(guān)30對(duì)主機(jī)10的[Hj應(yīng)很迅 速,在智能存儲(chǔ)開關(guān)30緩沖數(shù)據(jù)后立即回應(yīng)。
圖14A-F顯示閃存塊中存儲(chǔ)的數(shù)據(jù)的各種排列。分割邏輯518 (圖6)可以將來自主機(jī) 的數(shù)據(jù)分割成分片,并存儲(chǔ)在不同的單芯片閃存裝置73中,或者在一個(gè)單芯片閃存裝置73 中的不同非易失性內(nèi)存塊68中。主機(jī)的操作系統(tǒng)讀或?qū)憯?shù)據(jù)文件時(shí)用簇(如本例中的4K字 節(jié))作為地址跟蹤機(jī)制的單位。但是,真實(shí)的數(shù)據(jù)傳輸是基于扇區(qū)(512字節(jié))單位。為了 進(jìn)行兩層數(shù)據(jù)分割,智能存儲(chǔ)開關(guān)30在發(fā)出到實(shí)體閃存頁(編程單位)和塊(抹除單位) 時(shí)會(huì)考慮這一點(diǎn)。
在圖14A中,數(shù)據(jù)按傳統(tǒng)的線性方式排列。在本例中,總共存儲(chǔ)了M個(gè)N令牌數(shù)據(jù)項(xiàng)目 在不同的閃存存儲(chǔ)裝置上。從主機(jī)收到的數(shù)據(jù)序列是Sll、 S12、 S13、…、S1N,然后是S21、 S22、 S23、…、S2N,包括S麗是最后一個(gè)數(shù)據(jù)。在實(shí)際的系統(tǒng)中,邏輯塊地址(LBA)可能 不是從S11開始。例如,S13可能是第一個(gè)數(shù)據(jù)。最后一個(gè)數(shù)據(jù)可能不是以S顯結(jié)束。例如, SM3可能是最后一個(gè)數(shù)據(jù)。每個(gè)N令牌數(shù)據(jù)的大小是實(shí)體閃存存儲(chǔ)裝置中存儲(chǔ)數(shù)據(jù)的頁的四 倍,如4x2K、 4x4K、 4x8K等。每個(gè)N令牌的數(shù)據(jù)項(xiàng)目的詳情稍后會(huì)介紹。當(dāng)發(fā)生故障時(shí), 例如一個(gè)實(shí)體閃存芯片無法傳回?cái)?shù)據(jù),它的整個(gè)數(shù)據(jù)通常會(huì)丟失。然而,存儲(chǔ)在其他實(shí)體閃 存芯片上的其他數(shù)據(jù)還可以照讀無誤。
在圖14B中,數(shù)據(jù)被分割到N個(gè)閃存分段。每個(gè)N令牌數(shù)據(jù)項(xiàng)目分布和存儲(chǔ)在N個(gè)閃存 分段(終結(jié)點(diǎn))中。例如,第一個(gè)N令牌數(shù)據(jù)項(xiàng)目由令牌11、 12、 13、…1N組成。數(shù)據(jù) 項(xiàng)目的令牌ll存儲(chǔ)在分段l (終結(jié)點(diǎn)l)中,令牌12存儲(chǔ)在分段2中,…,令牌1N存儲(chǔ) 在分段N中。數(shù)據(jù)項(xiàng)目可以在填充所有分段之后,才開始填充下一輪。這些數(shù)據(jù)項(xiàng)目可以是 劃分為單個(gè)扇區(qū)或頁,或者是對(duì)齊的多個(gè)扇區(qū)或頁。
在圖14C中,多個(gè)包含奇偶校驗(yàn)碼的存儲(chǔ)分段執(zhí)行數(shù)據(jù)分割。閃存塊被分割為N+l個(gè)分 段。這N+1個(gè)分段的大小相同,奇偶校驗(yàn)碼分段足夠大,以保留其他N個(gè)分段的奇偶校驗(yàn)碼 或糾錯(cuò)碼(ECC)。
每個(gè)數(shù)據(jù)項(xiàng)目分為N部分,每部分存儲(chǔ)在N個(gè)分段中的不同分段上。數(shù)據(jù)項(xiàng)目的奇偶校 驗(yàn)碼或糾錯(cuò)碼存儲(chǔ)在奇偶校驗(yàn)碼分段中。例如,N令牌數(shù)據(jù)項(xiàng)目由令牌11、 12、 13、…1N 組成。數(shù)據(jù)項(xiàng)目的令牌11存儲(chǔ)在分段1中,令牌12存儲(chǔ)在分段2中,令牌13存儲(chǔ)在分段3 中,…,令牌N存儲(chǔ)在分段N中。奇偶校驗(yàn)碼或糾錯(cuò)碼作為令牌1P存儲(chǔ)在奇偶校驗(yàn)碼分段 中。在圖解中,每個(gè)數(shù)據(jù)項(xiàng)目作為垂直分片存儲(chǔ)在所有分段中。如果一個(gè)分段失效,大多數(shù) 數(shù)據(jù)項(xiàng)目的其他分段還保持完好,使得可以用奇偶校驗(yàn)碼或糾錯(cuò)碼分段恢復(fù)。
圖14D顯示了使用奇偶校驗(yàn)碼分段和糾錯(cuò)碼分段的其他備選數(shù)據(jù)分割排列。兩個(gè)分段維 度的糾錯(cuò)碼或奇偶校驗(yàn)碼有兩種不同的錯(cuò)誤檢測(cè)/糾正方法。 一個(gè)簡單的例子是, 一個(gè)維度 使用漢明碼(Hamming code),另一個(gè)維度使用羅門碼(Reed-Solomon code)法或BCH法。 兩個(gè)分段維度的奇偶校驗(yàn)碼和糾錯(cuò)碼可以在萬一任何兩個(gè)單芯片閃存裝置950 (圖6)在運(yùn) 行中途失敗時(shí)保護(hù)數(shù)據(jù)。接近失敗的單芯片閃存裝置950可以在失敗之前被更換,防止系統(tǒng) 發(fā)生故障。圖14E和14F與圖14C和14D類似,帶有奇偶校驗(yàn)碼分布在所有分段上,而不是 集中在一、兩個(gè)分段,以避免奇偶校驗(yàn)碼分段的頻繁使用。
錯(cuò)誤可以通過兩層錯(cuò)誤檢測(cè)和糾正來檢測(cè)和糾正。每個(gè)帶局部控制器的存儲(chǔ)分段(包括 奇偶校驗(yàn)碼分段)都有一個(gè)基于頁的糾錯(cuò)碼。在讀取分段頁時(shí),壞的位元可以根據(jù)糾錯(cuò)碼(如 羅門碼)的強(qiáng)度檢測(cè)和糾正。閃存存儲(chǔ)分段形成一個(gè)分片,并在其中一個(gè)分段上設(shè)奇偶校驗(yàn) 碼。假設(shè)有四個(gè)存儲(chǔ)分段F(l)、 F(2)、 F(3)、 F(4)和一個(gè)奇偶校驗(yàn)碼分段F(P)。這五個(gè)分 段形成存儲(chǔ)在F(P)上的偶校驗(yàn)。每個(gè)分段有它自己的獨(dú)立糾錯(cuò)碼,以在每個(gè)分段的局部層次 執(zhí)行第一層錯(cuò)誤檢測(cè)和糾正。如果第一層糾錯(cuò)碼無法執(zhí)行分段F(2)上的糾正,則F(l) 、F(3)、 F(4)和F(P)上的相應(yīng)分割令牌信息足以恢復(fù)F(2)上應(yīng)該有的令牌信息。兩層糾錯(cuò)碼可進(jìn)行 更完全的錯(cuò)誤檢測(cè)和糾正。
如圖14C-F所示,數(shù)據(jù)可以存儲(chǔ)在閃存分段中,其中額外的奇偶校驗(yàn)碼或糾錯(cuò)碼分段可 以有幾種排列方式,和以線性方式存儲(chǔ)在閃存分段中。此外,數(shù)據(jù)可以排列成提供冗余存儲(chǔ), 這與獨(dú)立磁盤冗余陣列(RAID)系統(tǒng)類似,以提高系統(tǒng)穩(wěn)定性。數(shù)據(jù)可以寫入兩個(gè)分段,并 可以從任何一個(gè)分段讀回。
圖15突出顯示了使用智能存儲(chǔ)開關(guān)在兩個(gè)閃存通道之間進(jìn)行多通道存取。智能存儲(chǔ)開 關(guān)30中的內(nèi)置總線連接到多個(gè)閃存通道接口 64、 64' 。 CPU82是處理器,如圖3中的虛擬 存儲(chǔ)處理器140,或者另一個(gè)接收和解碼通過內(nèi)置總線發(fā)送的請(qǐng)求的處理器。
單芯片閃存裝置73、 73'中每一個(gè)裝置的內(nèi)部都可能有多通道非易失性內(nèi)存塊68。 CPU 82發(fā)送一些請(qǐng)求到第一個(gè)閃存通道接口 64,以請(qǐng)求存儲(chǔ)在第一個(gè)單芯片閃存裝置73中的非 易失性內(nèi)存塊68中的數(shù)據(jù),而其他請(qǐng)求由CPU82發(fā)送到第二個(gè)閃存通道接口 64',以請(qǐng)求 存儲(chǔ)在第二個(gè)單芯片閃存裝置73'中的非易失性內(nèi)存塊68中的數(shù)據(jù)。
第一個(gè)閃存通道接口 64產(chǎn)生交錯(cuò)存儲(chǔ)的控制、數(shù)據(jù)以及選擇并啟用第一個(gè)單芯片閃存 裝置73的裝置選擇CS#1和地址#1。寫入數(shù)據(jù)在寫入非易失性內(nèi)存塊68之前,可以由單芯 片閃存裝置73緩存。第二個(gè)閃存通道接口64'產(chǎn)生交錯(cuò)存儲(chǔ)的控制、數(shù)據(jù)以及選擇并啟用
22第二個(gè)單芯片閃存裝置73,的裝置選擇CS#2和地址tt2。
時(shí)鐘脈沖源應(yīng)用于單芯片閃存裝置73、 73'。這個(gè)時(shí)鐘脈沖會(huì)同步閃存通道接口 64、 64'的數(shù)據(jù)傳輸。同步的總線傳輸通過這兩個(gè)通道執(zhí)行。整個(gè)塊(而不是頁)通過閃存通道 發(fā)送,邏輯塊地址(而不是物理塊地址)在來自智能存儲(chǔ)開關(guān)30的閃存通道中使用。但是, 物理塊地址在單芯片閃存裝置73中的非易失性內(nèi)存控制器76和非易失性內(nèi)存塊68之間使 用。
總統(tǒng)-管理者兩層式平均讀寫
平均讀寫在多個(gè)層次用總統(tǒng)-管理者兩層式方案處理。智能存儲(chǔ)開關(guān)30控制用于所有閃 存通道的所有單芯片閃存裝置73、 73'的總體電源政策。設(shè)在總統(tǒng)層的政策由非易失性內(nèi)存 控制器76在管理者層執(zhí)行于每個(gè)單芯片閃存裝置73、 73'中。例如,智能存儲(chǔ)開關(guān)30可以 通過指示單芯片閃存裝置73更積極的減少讀寫或者通過分配新塊給其他通道,來減少一個(gè) 通道將來的讀寫。
圖16突出顯示了使用智能存儲(chǔ)開關(guān)和單芯片閃存裝置在兩個(gè)閃存通道之間進(jìn)行交錯(cuò)存 儲(chǔ)。智能存儲(chǔ)開關(guān)30中的內(nèi)置總線連接到多個(gè)閃存通道接口 64、 64'以進(jìn)行奇和偶順序的 交錯(cuò)存儲(chǔ)。CPU 82是處理器,如圖3中的虛擬存儲(chǔ)處理器140,或者是另一個(gè)接收和解碼通 過內(nèi)置總線發(fā)送的請(qǐng)求的處理器。
單芯片閃存裝置73A-73D中每一個(gè)裝置的內(nèi)部都可能有多通道的非易失性內(nèi)存塊68。 CPU 82發(fā)送一些請(qǐng)求到第一個(gè)閃存通道接口 64以請(qǐng)求存儲(chǔ)在第一個(gè)和第二個(gè)單芯片閃存裝 置73A、 73B中的非易失性內(nèi)存塊68中的數(shù)據(jù),而其他請(qǐng)求由CPU 82發(fā)送到第二個(gè)閃存通 道接口 64'以請(qǐng)求存儲(chǔ)在第三個(gè)和第四個(gè)單芯片閃存裝置73C、 73D中的非易失性內(nèi)存塊68 中的數(shù)據(jù)。
第一個(gè)閃存通道接口 64產(chǎn)生交錯(cuò)存儲(chǔ)的控制、數(shù)據(jù)以及選擇并一次一個(gè)啟用第一個(gè)和 第二個(gè)單芯片閃存裝置73A、 73B的裝置選擇CSttl和地址ttl。第二個(gè)閃存通道接口 64'產(chǎn)生 交錯(cuò)存儲(chǔ)的控制、數(shù)據(jù)以及選擇并一次一個(gè)啟用第三個(gè)和第四個(gè)單芯片閃存裝置73C、 73D 的裝置選擇CStt2和地址#2。
使用兩個(gè)時(shí)鐘脈沖源。時(shí)鐘脈沖源#奇數(shù)驅(qū)動(dòng)第一個(gè)時(shí)鐘脈沖#奇數(shù)到第二個(gè)和第三個(gè)單 芯片閃存裝置73B、 73C,而時(shí)鐘脈沖源射禹數(shù)驅(qū)動(dòng)第二個(gè)時(shí)鐘脈沖ff偶數(shù)到第一個(gè)和第四個(gè)單 芯片閃存裝置73A、 73D。兩個(gè)時(shí)鐘脈沖在時(shí)間方面可以不重疊,使得可以在第一個(gè)通道中的 單芯片閃存裝置73A、 73B之間進(jìn)行選擇,或者在第二個(gè)通道屮的單芯片閃存裝置73C、 73D 之間進(jìn)行選擇。 一個(gè)時(shí)鐘脈沖源可以在另一個(gè)時(shí)鐘脈沖脈動(dòng)時(shí)停止。時(shí)鐘脈沖源也可以與交 錯(cuò)存儲(chǔ)選擇信號(hào)或地址位元配合使用。
23圖17是多閃存通道的忙碌處理的流程圖。如果單芯片閃存裝置73存在有多個(gè)通道(如 圖15所示),則所有單芯片閃存裝置使用獨(dú)立的命令和數(shù)據(jù)總線,步驟760。在收到命令后, 單芯片閃存裝置73向智能存儲(chǔ)開關(guān)30發(fā)出忙碌信號(hào),步驟762。就緒/非忙碌(R/B#)信號(hào) 可以是共用一條線,驅(qū)動(dòng)上升表示就緒(非忙碌),下降則表示未就緒(忙碌,單芯片閃存 裝置73 TH忙于處理命令)。R/Bfl可以是開泄極輸出信號(hào),允許一外部裝置把它下拉表示忙 碌(連線"或"功能),上拉電阻或弱驅(qū)動(dòng)器用于在沒有裝置向下拉時(shí)維持高位表示就緒。
忙碌2 (Busy2)表示另一個(gè)目標(biāo)也是忙于把數(shù)據(jù)編程到它的實(shí)體閃存介質(zhì)中。但是,總 線由于雙總線結(jié)構(gòu)而不會(huì)被占用。交錯(cuò)存儲(chǔ)方案用這個(gè)總線空閑機(jī)制來利用可用的總線。
具有較大數(shù)據(jù)容量的單芯片閃存裝置73使用它的專用總線接收來自智能存儲(chǔ)開關(guān)30的 命令,步驟764。智能存儲(chǔ)開關(guān)30可以首先發(fā)送命令到容量較大的裝置,然后再發(fā)送命令到 容量較小的裝置。邏輯塊地址總線28 (圖3)上的忙碌2 (Busy2)是由單芯片W存裝置73 發(fā)出的,步驟766。
智能存儲(chǔ)開關(guān)監(jiān)測(cè)來自每個(gè)單芯片閃存裝置73的就緒線,步驟768。如果沒有任何線發(fā) 出忙碌信號(hào),步驟770,則命令已經(jīng)完成。完成了寫入閃存,然后可以處理下一個(gè)主機(jī)命令, 步驟760。
如果所有單芯片閃存裝置73仍然忙碌,步驟772,智能存儲(chǔ)開關(guān)30不能發(fā)出另一個(gè)命 令,步驟774。智能存儲(chǔ)開關(guān)30會(huì)繼續(xù)監(jiān)測(cè)就緒線,步驟768。
當(dāng)其中一條就緒線指明其中一個(gè)單芯片閃存裝置73不再處于激活狀態(tài)或忙碌時(shí),步驟 772,智能存儲(chǔ)開關(guān)30可以在上拉電阻向上拉就緒線所需的時(shí)間之后,分配該單芯片閃存裝 置73給另一個(gè)新命令,步驟776。然后,智能存儲(chǔ)開關(guān)30會(huì)繼續(xù)監(jiān)測(cè)就緒線,步驟770。
圖18是多個(gè)交錯(cuò)存儲(chǔ)的閃存通道的忙碌處理的流程圖。當(dāng)多個(gè)單芯片閃存裝置73的多 個(gè)通道交錯(cuò)存儲(chǔ)時(shí)(如圖16所示), 一個(gè)交錯(cuò)存儲(chǔ)中的所有單芯片閃存裝置共用命令和數(shù) 據(jù)總線,步驟780。每個(gè)交錯(cuò)存儲(chǔ)中一次只可以有一個(gè)單芯片閃存裝置73通過共用的命令總 線接收一個(gè)命令。
在收到命令后,單芯片閃存裝置73向智能存儲(chǔ)丌關(guān)30發(fā)出忙碌1 (Busyl),步驟782。 步驟782中的忙碌1由第一個(gè)單芯片閃存裝置73產(chǎn)生,而步驟786中的忙碌2由第二個(gè)單 芯片閃存裝置73產(chǎn)生。忙碌1和忙碌2連接起來成為共用忙碌線信號(hào)。
其他的交錯(cuò)存儲(chǔ)(如圖16中的73C、 73D)中具有較低優(yōu)先順序或者較遲開始編程的單 芯片閃存裝置73,用它的專用總線來接收來自智能存儲(chǔ)開關(guān)30的命令,步驟784。智能存 儲(chǔ)開關(guān)30可以首先發(fā)送命令到第一個(gè)交錯(cuò)存儲(chǔ)的裝置73A、 73B中的一個(gè)裝置,然后再發(fā)送 命令到第二個(gè)交錯(cuò)存儲(chǔ)中的裝置73C、 73D。邏輯塊地址總線28 (圖3)上的忙碌2由單芯片閃存裝置73發(fā)出,步驟786。
智能存儲(chǔ)開關(guān)監(jiān)測(cè)來自每個(gè)單芯片閃存裝置73的就緒線,步驟788。如果沒有任何線發(fā) 出忙碌信號(hào),步驟790,則命令己經(jīng)完成。完成了寫入閃存,然后可以處理下一個(gè)主機(jī)命令, 步驟780。
如果所有單芯片閃存裝置73仍然忙碌,步驟792,智能存儲(chǔ)開關(guān)30不能發(fā)出另一個(gè)命 令,步驟794。智能存儲(chǔ)開關(guān)30會(huì)繼續(xù)監(jiān)測(cè)兩個(gè)交錯(cuò)存儲(chǔ)中的就緒線,步驟788。
當(dāng)其中一條就緒線指明其中一個(gè)單芯片閃存裝置73不再處于激活狀態(tài)或忙碌時(shí),步驟 792,智能存儲(chǔ)開關(guān)30可以分配該單芯片閃存裝置73給另一個(gè)新命令,步驟796。命令的優(yōu) 先次序會(huì)加以區(qū)分,并可能由智能存儲(chǔ)事務(wù)管理器36重新排序,以及分配到可用的裝置, 步驟798。同一個(gè)交錯(cuò)存儲(chǔ)中的其他裝置必須等到它們的交錯(cuò)存儲(chǔ)總線可用時(shí),步驟799。 然后,智能存儲(chǔ)開關(guān)30會(huì)繼續(xù)監(jiān)測(cè)就緒線,步驟790。
圖19A-B顯示了智能存儲(chǔ)開關(guān)存取多個(gè)多通道單芯片閃存裝置的定時(shí)脈沖波形。圖17 的流程和圖15的架構(gòu)與這個(gè)定時(shí)對(duì)應(yīng)。
由于兩個(gè)單芯片閃存裝置73各有它們自己專用的總線DQ (命令和數(shù)據(jù)共用),所以可 以同時(shí)被存取。在圖19A中,接到兩個(gè)單芯片閃存裝置的芯片啟動(dòng)CE1、 CE2信號(hào)下降被斷 定為低,以開始存取周期,獨(dú)立命令CMD1、 CMD2用獨(dú)立命令鎖存允許CLE1、 CLE2信號(hào)鎖存, 獨(dú)立邏輯塊地址DEV2 LBA和DEV1 LBA用獨(dú)立地址鎖存允許ALE1、 ALE2信號(hào)鎖存。來自主 機(jī)并由智能存儲(chǔ)開關(guān)30緩沖的寫入數(shù)據(jù)(DQ總線上的DEV2、 DEV1)用獨(dú)立數(shù)據(jù)選通DQS2、 DQS1信號(hào)鎖存到單芯片閃存裝置中。這兩個(gè)存取在定時(shí)期間90中同時(shí)發(fā)生。
在定時(shí)期間91中,兩個(gè)新命令CMD2、 CMD1用命令鎖存允許信號(hào)CLE2、 CLE1鎖存。這 些可以是命令或狀態(tài)分組。
忙碌期間92、 93過后在圖19B中之94期間,又有兩個(gè)命令被鎖存,而且它們之間有少 量的延遲偏移。在95期間,地址和數(shù)據(jù)被鎖存,并在96期間(忙碌期間97之前),發(fā)送 狀態(tài)或完成信息。
就緒信號(hào)下降,表示在92、 93、 97期間,單芯片閃存裝置73在忙碌,這時(shí),單芯片閃 存裝置73正在內(nèi)部寫入非易失性內(nèi)存塊68。
圖20A-B顯示了智能存儲(chǔ)開關(guān)存取多個(gè)多通道單芯片閃存裝置的一個(gè)交錯(cuò)存儲(chǔ)通道的定 時(shí)脈沖波形。圖18的流程和圖16的架構(gòu)與這個(gè)定時(shí)對(duì)應(yīng)。
由于一個(gè)交錯(cuò)存儲(chǔ)中的兩個(gè)單芯片閃存裝置73共用命令和數(shù)據(jù)總線,所以第一個(gè)交錯(cuò) 存儲(chǔ)中的兩個(gè)單芯片閃存裝置73A、 73B可以在不同的時(shí)間被存取。在圖20A中,到第一個(gè) 單芯片閃存裝置73A的芯片啟動(dòng)CE1下降被斷定為低,以開始裝置73A的存取周期,而芯片啟動(dòng)CE2保持高,以防止單芯片閃存裝置73B被存取。第一個(gè)命令CMD1用共用的命令鎖存 允許CLE鎖存,邏輯塊地址DEV1 LBA用共用的地址鎖存允許ALE信號(hào)鎖存。
來自主機(jī)并由智能存儲(chǔ)開關(guān)30緩沖的寫入數(shù)據(jù)(共用的DQ總線上的數(shù)據(jù)DEV1)用共用 的數(shù)據(jù)選通叫S鎖存到單芯片閃存裝置73A中。完成命令分組EX-CMD1在第一個(gè)單芯片W存 裝置73A的存取結(jié)束時(shí)發(fā)送,然后發(fā)送狀態(tài)分組ST1 。
也在圖20八中,當(dāng)數(shù)據(jù)DEV1被鎖存后,在周期的中間位置,接到第一個(gè)單芯片閃存裝 置73A的芯片啟動(dòng)CE1上升被斷定為高。然后,接到第二個(gè)單芯片閃存裝置73B的芯片啟動(dòng) CE2下降被斷定為低,以開始裝置73B的存取周期,而芯片啟動(dòng)CE1保持高,以防止單芯片 閃存裝置73A被存取。
發(fā)送第二個(gè)狀態(tài)分組ST2,然后第二個(gè)命令CMD2用共用的命令鎖存允許CLE鎖存,邏輯 塊地址DEV2 LBA用共用的地址鎖存允許ALE信號(hào)鎖存。
來自主機(jī)并由智能存儲(chǔ)開關(guān)30緩沖的寫入數(shù)據(jù)(共用的DQ總線上的數(shù)據(jù)DEV2)用共用 的數(shù)據(jù)選通DQS鎖存到單芯片閃存裝置73B中。在圖20B中,完成命令分組EX-CMD2在第二 個(gè)單芯片閃存裝置73B的存取結(jié)束時(shí)發(fā)送,然后發(fā)送它的狀態(tài)分組ST2。之后第二個(gè)芯片啟 動(dòng)CE2關(guān)閉,而第一個(gè)芯片啟動(dòng)CE1再次激活。在圖20B的其余部分,顯示了其他命令WCMD1、 WCMD2 (不傳輸數(shù)據(jù)塊)分別按順序被發(fā)送到單芯片閃存裝置73A、 73B。
Readyl (R/Blft)下降,表示第一個(gè)單芯片閃存裝置73A忙碌,這時(shí),它正在內(nèi)部寫入 非易失性內(nèi)存塊68。 Ready2 (R/B2#)下降,表示第二個(gè)單芯片閃存裝置73B忙碌,這時(shí), 它正在內(nèi)部寫入非易失性內(nèi)存塊68。組合就緒信號(hào)R/BH由ANDing (即同一個(gè)交錯(cuò)存儲(chǔ)中的 裝置73A、 73B的兩條就緒線)產(chǎn)生。這個(gè)組合就緒信號(hào)被發(fā)送到智能存儲(chǔ)開關(guān)30,并由它 監(jiān)測(cè)。
對(duì)于寫入特殊的主機(jī)扇區(qū),智能存儲(chǔ)開關(guān)30首先執(zhí)行讀過程,將有關(guān)的單芯片閃存裝 置中有關(guān)的頁存入它的易失性內(nèi)存,然后更新該有關(guān)的頁中的有關(guān)扇區(qū),再將己更新的有關(guān) 的頁傳回有關(guān)的單芯片閃存裝置。
圖21突出顯示了緊密耦合到單芯片閃存裝置所需分片大小的數(shù)據(jù)分割。圖3和其他圖 片中的單芯片閃存裝置73的每個(gè)封裝可以有兩個(gè)閃存顆粒,每個(gè)閃存顆粒有兩個(gè)層面。由 于每個(gè)封裝有兩個(gè)閃存顆粒以及每個(gè)閃存顆粒有兩個(gè)層面,可以通過利用閃存的兩層面命令 來提高閃存存取速度。如果每個(gè)層面可以存儲(chǔ)一頁數(shù)據(jù),分片大小可以設(shè)為四頁。因此,每 個(gè)通道寫入一個(gè)分片,每個(gè)通道有一個(gè)單芯片閃存裝置73 (其中有兩個(gè)閃存顆粒充當(dāng)非易失 性內(nèi)存塊68)。
分片深度等于通道的數(shù)量乘以分片大小,或者在本例中,N乘以4頁。帶8個(gè)單芯片閃n存裝置的8通道系統(tǒng)(每個(gè)通道有兩個(gè)閃存顆粒,每個(gè)閃存顆粒有兩個(gè)層面)有8x4或32 頁數(shù)據(jù),作為智能存儲(chǔ)開關(guān)30設(shè)定的分片深度。數(shù)據(jù)分割方法可以在閃存顆粒數(shù)量或?qū)用?增加或者頁面大小變化時(shí),根據(jù)LBA-NVMD(用邏輯塊地址存取的非易失性內(nèi)存裝置)的實(shí)體 閃存架構(gòu)而變化。分割大小可以隨閃存頁面大小的變化而變化,以達(dá)到最大效率。頁面對(duì)齊 的目的是避免局部和中心頁面大小的不匹配,以提高存取速度和改善平均讀寫。
在執(zhí)行閃存事務(wù)層功能時(shí),非易失性內(nèi)存控制器76會(huì)從智能存儲(chǔ)開關(guān)30接收邏輯扇區(qū) 地址(LSA),并將LSA轉(zhuǎn)譯成多層面閃存中的物理地址。
圖22顯示了一個(gè)單芯片閃存裝置中的兩個(gè)閃存顆粒。單芯片閃存裝置166包含非易失 性內(nèi)存控制器76,并可以代替單芯片閃存裝置73 (圖3)??偩€168連接到第一個(gè)閃存顆粒 160和第二個(gè)閃存顆粒161,它們可以是彼此堆棧在單芯片閃存裝置166的一個(gè)封裝中。
第一個(gè)閃存顆粒160有兩列實(shí)體存儲(chǔ)器152,其中每個(gè)存儲(chǔ)器由頁寄存器162寫入。第 一個(gè)層面154有一列實(shí)體存儲(chǔ)器152和一頁寄存器162,而第二個(gè)層面156有另一列實(shí)體存 儲(chǔ)器152和另一頁寄存器162。層面154和層面156可以在頁寄存器162被寫入后,立即執(zhí) 行重疊寫入閃存操作,以便將兩頁寫入第一個(gè)閃存顆粒160中的閃存。
第二個(gè)閃存顆粒161有兩列實(shí)體存儲(chǔ)器152,其中每個(gè)存儲(chǔ)器由頁寄存器162寫入。第 一個(gè)層面154有一列實(shí)體存儲(chǔ)器152和一頁寄存器162,而第二個(gè)層面156有另一列實(shí)體存 儲(chǔ)器152和另一頁寄存器162。層面154和層面156可以在頁寄存器162被寫入后,立即執(zhí) 行重疊寫入閃存操作,以便將兩頁寫入第二個(gè)閃存顆粒161中的閃存。
因此,單芯片閃存裝置166中的四個(gè)層面一次可以把四頁寫入閃存。非易失性內(nèi)存控制 器76中的流水線寄存器169在傳輸過程中暫時(shí)存儲(chǔ)數(shù)據(jù)。智能存儲(chǔ)開關(guān)30在發(fā)送頁面已對(duì) 齊的數(shù)據(jù)到指定的單芯片閃存裝置166 (或者圖3中裝置73)時(shí),把數(shù)據(jù)存儲(chǔ)于非易失性內(nèi) 存控制器76中的流水線寄存器169中。然后,非易失性內(nèi)存控制器76交替地將數(shù)據(jù)發(fā)送到 兩個(gè)閃存顆粒中的一個(gè)閃存顆粒中已尋址的閃存頁寄存器。在這個(gè)傳輸完成后,智能存儲(chǔ)開 關(guān)30可以發(fā)送更多數(shù)據(jù)。
圖23顯示了多個(gè)通道的雙顆粒雙層面單芯片閃存裝置。多通道非易失性內(nèi)存控制器76 可以驅(qū)動(dòng)8個(gè)通道的閃存,并可以成為智能存儲(chǔ)開關(guān)30的一部分(圖3)。每個(gè)通道有一個(gè) 單芯片閃存裝置166 (含第一個(gè)閃存顆粒160和第二個(gè)閃存顆粒161),每個(gè)閃存顆粒有兩 個(gè)層面。因此,每個(gè)通道一次可以寫入四頁。數(shù)據(jù)被分割成的每個(gè)分片大小是4頁,與每個(gè) 通道一次可以寫入的頁數(shù)匹配。
圖24是每個(gè)使用數(shù)據(jù)分割的單芯片閃存裝置的啟動(dòng)流程圖。如果單芯片閃存裝置的每 個(gè)通道有多個(gè)閃存顆粒,且每個(gè)閃存顆粒有多個(gè)層面(如圖21-23所示),在生產(chǎn)過程中加電或者配置變更時(shí),每個(gè)單芯片閃存裝置會(huì)執(zhí)行這個(gè)啟動(dòng)程序。
每個(gè)單芯片閃存裝置從智能存儲(chǔ)開關(guān)接收一個(gè)特殊的命令,歩驟190,促使單芯片閃存 裝置掃描搜尋壞塊并確定單芯片閃存裝置控制的壞塊的容量。
確定單芯片閃存裝置控制的所有閃存顆粒中所有閃存塊的最大可用容量,步驟192,以 及備用塊和其他系統(tǒng)資源的最小容量。發(fā)現(xiàn)的任何壞塊會(huì)從最大容量中減除。這些數(shù)值保留 給生產(chǎn)特殊命令使用,它們是可編程的數(shù)值,但用戶不能更改它們。
對(duì)于這個(gè)單芯片閃存裝置,從邏輯塊地址到物理塊地址的映射是在映射器或映射表中設(shè) 置,步驟194。壞塊會(huì)被略過, 一些空塊被保留供日后使用,以替換將來發(fā)現(xiàn)的壞塊。配置 信息存儲(chǔ)在單芯片閃存裝置中的配置寄存器中,步驟196,供智能存儲(chǔ)開關(guān)讀取。
圖25是使用數(shù)據(jù)分割的智能存儲(chǔ)開關(guān)的啟動(dòng)流程圖。如果單芯片閃存裝置的每個(gè)通道 有多個(gè)閃存顆粒,且每個(gè)閃存顆粒有多個(gè)層面(如圖21-23所示),在系統(tǒng)生產(chǎn)過程中加電 或者配置變更時(shí),智能存儲(chǔ)開關(guān)會(huì)執(zhí)行這個(gè)啟動(dòng)程序。
智能存儲(chǔ)開關(guān)通過讀取原始閃存塊,清點(diǎn)列舉所有單芯片閃存裝置,步驟186。獲得每 個(gè)裝置的壞塊比例、大小、每個(gè)裝置的閃存顆粒的堆棧以及每個(gè)閃存顆粒的層面數(shù)量。智能 存儲(chǔ)開關(guān)發(fā)送特殊命令到每個(gè)單芯片閃存裝置,步驟18S,并讀取每個(gè)單芯片閃存裝置上的 配置寄存器(如圖24中步驟196中的設(shè)置),步驟190。
對(duì)于在步驟186中清點(diǎn)列舉的每個(gè)單芯片閃存裝置,如果該裝置有多個(gè)層面N,步驟184, 和多個(gè)閃存顆粒M,歩驟178,則分片大小設(shè)為附M頁,步驟176。如果該裝置有多個(gè)層面N, 步驟184,但只有一個(gè)閃存顆粒,步驟178,則分片大小設(shè)為N頁,步驟174。
如果當(dāng)前的裝置只有一個(gè)層面,步驟184,和多個(gè)閃存顆粒M,步驟179,則分片大小設(shè) 為M頁,步驟177。如果該裝置只有一個(gè)層面,步驟184,和一個(gè)閃存顆粒,步驟179,則分 片大小設(shè)為l頁,步驟175。
如果還有更多單芯片閃存裝置,步驟180,則選擇下一個(gè)單芯片閃存裝置進(jìn)行配置,步 驟182,并為下一個(gè)單芯片閃存裝置從步驟184重復(fù)程序循環(huán)。在配置所有單芯片閃存裝置 后,程序結(jié)束。
圖26突Mi顯示了一頁中只有一個(gè)數(shù)據(jù)扇區(qū)更新時(shí)的數(shù)據(jù)分割。如果只寫入頁面021中 的扇區(qū)127,則讀取存儲(chǔ)在頁面021的閃存中的舊數(shù)據(jù)。舊數(shù)據(jù)會(huì)與扇區(qū)127中的新數(shù)據(jù)合 并,合并的數(shù)據(jù)存儲(chǔ)在流水線寄存器169 (圖22)中,稍后會(huì)被寫回閃存。
智能存儲(chǔ)開關(guān)30所用的全局平均讀寫方法
對(duì)于閃存裝置,幾乎所有介質(zhì)錯(cuò)誤都會(huì)在進(jìn)行抹除或?qū)懭霑r(shí)發(fā)生。閃存塊必須在抹除后 才能寫入,在抹除程序中,單芯片閃存裝置73本身會(huì)確保正在抹除的閃存塊中所有的位元
28已達(dá)到抹除完成狀態(tài)。
平均讀寫監(jiān)測(cè)器(WLM)是一個(gè)存儲(chǔ)巻安裝的公用程序,可對(duì)系統(tǒng)進(jìn)行預(yù)測(cè)性故障分析。 WLM嘗試檢測(cè)隨著時(shí)間的推進(jìn)而惡化并可能最終導(dǎo)致全面系統(tǒng)故障的問題。它可以用符合WLM 標(biāo)準(zhǔn)的SSD系統(tǒng)以及系統(tǒng)的BIOS包含的固件或者第三方公用程序提供的軟件來實(shí)施。
壞塊管理的第一階段涉及掃描所有單芯片閃存裝置73是否有被生產(chǎn)商標(biāo)記為有缺陷的 壞塊。這在系統(tǒng)設(shè)備第一次加電時(shí)進(jìn)行,需要幾分鐘時(shí)間。這個(gè)來自生產(chǎn)商的壞塊列表已寫 入為"健康量表"數(shù)據(jù)的一部分,并在每次閃存裝置啟動(dòng)或者格式化時(shí)使用。
第二階段是運(yùn)行用于狀態(tài)監(jiān)測(cè)以及壞塊管理的WLM公用程序軟件。通常,這個(gè)WLM公用 程序(用于穩(wěn)定性監(jiān)測(cè))將定期監(jiān)測(cè)和追蹤單芯片閃存裝置73上的抹除/寫入/讀取/比較周 期,并報(bào)告所遇到的任何錯(cuò)誤。它還能夠標(biāo)記含過多可能有磨損塊(超過所允許閥值)的特 定單芯片閃存裝置73。在這些情況下,會(huì)更換特定的單芯片閃存裝置73,以提高系統(tǒng)設(shè)備 的穩(wěn)定性以及延長使用壽命。
圖6中具有多個(gè)LBA-NVMD的閃存裝置的正常運(yùn)行過程中可能會(huì)遇到以下錯(cuò)誤。這里提 供了壞塊更換管理方案的幾個(gè)例子
(1) 抹除時(shí)遇到的錯(cuò)誤
如果某個(gè)塊無法抹除,非易失性內(nèi)存控制器76的控制器固件會(huì)執(zhí)行抹除重試程序。如 果在重試后故障仍然存在,則從環(huán)流中除去該塊,并把它添加到壞塊表(故障塊列表)中。 以后不會(huì)再用該塊。
(2) 寫入時(shí)遇到的錯(cuò)誤(也叫做編程錯(cuò)誤)
如果檢測(cè)到寫入故障,則指向該塊的所有數(shù)據(jù)會(huì)被重新遷移定位到單芯片閃存裝置73 中的另一個(gè)空塊中。發(fā)生故障的塊會(huì)從環(huán)流中除去,并添加到故障塊列表中。
(3) 讀取時(shí)遇到的可糾正(通過糾錯(cuò)碼)錯(cuò)誤
如果所需的糾正水平(糾正這個(gè)錯(cuò)誤所需的糾錯(cuò)碼位元數(shù)目)低于閥值水平,則糾正后
不進(jìn)行數(shù)據(jù)重新遷移定位。如果高于閥值水平,則將存儲(chǔ)在單芯片閃存裝置73中的數(shù)據(jù)移 到另一個(gè)塊,以避免讀取干擾。單芯片閃存裝置73中的這個(gè)特定閃存塊會(huì)被回收,并用作 空閑塊,供將來寫入。
(4) 讀取時(shí)遇到的不可糾正(糾錯(cuò)碼)錯(cuò)誤
這是不可恢復(fù)的情況。讀取錯(cuò)誤會(huì)被回報(bào)智能存儲(chǔ)開關(guān)30,中心糾錯(cuò)碼方案用于糾正這 種特定的不可恢復(fù)情況。單芯片閃存裝置73中有不可糾正(糾錯(cuò)碼)錯(cuò)誤的物理塊的塊地 址和該閃存裝置ID被記錄在每個(gè)單芯片閃存裝置73的"健康量表"中,智能存儲(chǔ)開關(guān)30 可讀取此量表。這些物理塊被回收作為空閑塊供將來使用。但是,如果同一個(gè)物理塊再發(fā)生不可糾正(糾錯(cuò)碼)錯(cuò)誤,則立即從環(huán)流中除去,并添加到故障塊列表中。
(5) 向智能存儲(chǔ)開關(guān)30報(bào)告壞塊
平均讀寫監(jiān)測(cè)器526 (WLM)的固件中內(nèi)置了主機(jī)系統(tǒng)可啟用的智能,以在指定通道上映 射出的塊的數(shù)量達(dá)到關(guān)鍵水平時(shí),或者需要糾錯(cuò)碼糾正的讀取數(shù)量超過每個(gè)單芯片LBA-NVMD 中的指定百分比閥值時(shí),報(bào)告這些事項(xiàng)。這個(gè)特性用于在任何用戶數(shù)據(jù)丟失或單芯片閃存裝 置完全失敗之前,發(fā)出即將發(fā)生故障的警告。
(6) 局部單芯片LBA-NVMD中使用的平均讀寫技術(shù).-
首先,平均讀寫過去是不在閃存卡或固態(tài)裝置中實(shí)施。不使用平均讀寫技術(shù)的閃存卡在 多個(gè)物理塊磨損成為壞塊并且所有用于更換壞塊的備用塊用完時(shí),會(huì)立即停止運(yùn)行,而不管 還剩下多少未使用的存儲(chǔ)空間。早期的閃存卡不使用平均讀寫技術(shù),因此在寫密集型應(yīng)用中 提早的失敗。
(6. 1)動(dòng)態(tài)平均讀寫只在動(dòng)態(tài)區(qū)或空閑區(qū)上運(yùn)行。使用動(dòng)態(tài)平均讀寫的系統(tǒng)不會(huì)涉及靜 態(tài)數(shù)據(jù)。在75%的存儲(chǔ)空間用于靜態(tài)數(shù)據(jù)的系統(tǒng)中,只有25%的存儲(chǔ)空間可用于平均讀寫。 靜態(tài)數(shù)據(jù)的例子包括主引導(dǎo)記錄(Master Boot Record, MBR)、文件描述符表、系統(tǒng)程序 等。這些是極少被修改的數(shù)據(jù)區(qū)。包含信息數(shù)據(jù)的其他數(shù)據(jù)區(qū)被視為動(dòng)態(tài)數(shù)據(jù)區(qū)。
使用這種動(dòng)態(tài)平均讀寫方法的閃存卡的壽命可以是沒有平均讀寫的閃存卡的25倍,但 它只是使用平均讀寫于整個(gè)存儲(chǔ)空間的閃存卡的四分之一。
(6.2)靜態(tài)平均讀寫演算法在整個(gè)系統(tǒng)中平均分配數(shù)據(jù),并搜索最少用的物理塊。在找 到后,它會(huì)將數(shù)據(jù)寫入這些位置。如果塊是空的,寫入會(huì)正常進(jìn)行。如果塊包含靜態(tài)數(shù)據(jù), 它會(huì)將該數(shù)據(jù)移到被更頻繁使用的位置,然后才寫入新的數(shù)據(jù)。使用靜態(tài)平均讀寫的存儲(chǔ)系 統(tǒng)的壽命可以比沒有平均讀寫的系統(tǒng)好100倍。 一個(gè)有75%的存儲(chǔ)空間包含靜態(tài)數(shù)據(jù)的系 統(tǒng),比實(shí)施動(dòng)態(tài)平均讀寫的系統(tǒng)好四倍。靜態(tài)平均讀寫的壽命更長,因?yàn)樗ㄟ^平均讀寫把 數(shù)據(jù)寫入存儲(chǔ)系統(tǒng)的所有的塊。靜態(tài)平均讀寫還有助于在讀干擾導(dǎo)致靜態(tài)數(shù)據(jù)丟失之前,刷 新靜態(tài)數(shù)據(jù)。這些數(shù)字僅用于舉例,實(shí)際的數(shù)值可能有所不同。
備選實(shí)施例
專利申請(qǐng)人還涵蓋了幾個(gè)不同的實(shí)施例。使用控制器的總統(tǒng)-管理者兩層設(shè)置,則智能 存儲(chǔ)開關(guān)30中的控制器可以比單層次控制平均讀寫、壞塊管理、重新映射、超高速緩存、 電源管理等所需的控制器簡單。由于較低層功能在每個(gè)單芯片閃存裝置73中的非易失性內(nèi) 存塊68中作為管理者層功能執(zhí)行,所以智能存儲(chǔ)開關(guān)30中的總統(tǒng)層功能可以簡化。智能存儲(chǔ)開關(guān)30中可以使用較便宜的硬件,如虛擬存儲(chǔ)處理器140或智能存儲(chǔ)事務(wù)管理器36使用 8051處理器,而不是較昂貴的處理器核心如高級(jí)RISC計(jì)算機(jī)(Advanced RISC Machine)ARM-9 CPU核心。
不同數(shù)量和設(shè)置的閃存塊可以連接到智能存儲(chǔ)開關(guān)??梢圆皇褂眠壿媺K地址總線28或 差動(dòng)串行分組總線(differential serial packet bus) 27,而是使用其他串行總線,如同 步雙倍數(shù)據(jù)速率(Double Data Kate, DDR)、差動(dòng)串行分組數(shù)據(jù)總線(differential serial packet data bus)、傳統(tǒng)閃存接口等。
模式邏輯可以只在加電時(shí)偵測(cè)某一個(gè)引腳的狀態(tài),而不是一直偵測(cè)一個(gè)專用引腳的狀 態(tài)??梢杂枚鄠€(gè)引腳的狀態(tài)的某一組合或序列來啟動(dòng)模式變更,或者內(nèi)部寄存器(如配置寄 存器)可以設(shè)置模式。多總線協(xié)議芯片可以用附加的個(gè)性化引腳來選擇要使用哪一個(gè)串行總 線接口,或者可以有可編程寄存器,以將模式設(shè)為集線器模式或開關(guān)模式。
事務(wù)管理器及其控制器和功能可以用多種方式實(shí)施。功能可以由CPU或其他處理器編程 和執(zhí)行,或者可以在專用硬件、固件或它們某些組合中實(shí)施。功能的許多分區(qū)可以被替換。
通過對(duì)多個(gè)單芯片閃存裝置使用奇偶校驗(yàn)碼/糾錯(cuò)碼,并將數(shù)據(jù)分段分配到多個(gè)非易失 性內(nèi)存塊中,可以大大提高總體系統(tǒng)的穩(wěn)定性。但是,可能仍需要使用帶DDR/SDRAM超高速 緩存的CPU引擎,以滿足復(fù)雜的糾錯(cuò)碼/奇偶校驗(yàn)碼的計(jì)算和產(chǎn)生所需要的計(jì)算能力。另一 個(gè)優(yōu)點(diǎn)是,即使一個(gè)閃存塊或單芯片閃存裝置損壞,數(shù)據(jù)也可以恢復(fù),或者智能存儲(chǔ)開關(guān)可 以啟動(dòng)"故障恢復(fù)(Fault Recovery)"或"自動(dòng)重建(Auto-Rebuild)"過程,以插入新 的單芯片閃存裝置,并恢復(fù)或重建丟失或損壞的數(shù)據(jù)??傮w系統(tǒng)容錯(cuò)能力p/大大提高。
可以換用更寬或更窄的數(shù)據(jù)總線和閃存芯片,例如帶16或32位元數(shù)據(jù)通道的數(shù)據(jù)總線 和閃存芯片。智能存儲(chǔ)開關(guān)內(nèi)部或外部可以使用備選的總線架構(gòu),例如帶嵌套或分段的總線。 智能存儲(chǔ)開關(guān)中可使用兩個(gè)或更多的內(nèi)置總線,以增加數(shù)據(jù)吞吐量。更復(fù)雜的開關(guān)結(jié)構(gòu)可以 取代內(nèi)置或外置總線。
數(shù)據(jù)分割可以用各種方式完成,奇偶校驗(yàn)碼和糾錯(cuò)碼(ECC)也是一樣。分組的重新排 序可以根據(jù)所用數(shù)據(jù)排列進(jìn)行調(diào)整,以防止重新排序重疊的內(nèi)存位置。智能開關(guān)可以與其他 組件集成,或者作為獨(dú)立的芯片。
可以添加更多流水線或臨時(shí)緩沖區(qū)和FIFO數(shù)據(jù)緩沖區(qū)。例如,智能存儲(chǔ)開關(guān)30中的主 機(jī)FIFO可以是智能存儲(chǔ)事務(wù)管理器36的一部分,或者可以存儲(chǔ)在SDRAM 60屮。每個(gè)通道 可以提供獨(dú)立的頁面緩沖區(qū)。如果單芯片閃存裝置73屮的非易失性內(nèi)存(NV MEM) 68有異 步接口,圖3和圖4中的CLK一SRC變?yōu)槭遣恍枰摹?br>
一個(gè)封裝、 一個(gè)芯片或一個(gè)多芯片封裝可以包含一個(gè)或多個(gè)多通道閃存和/或智能存儲(chǔ)開關(guān)。一個(gè)基于多層式存儲(chǔ)單元(MLC)的單芯片閃存裝置73可以有四個(gè)MLC閃存芯片(帶兩 個(gè)并行數(shù)據(jù)通道),但可以用不同的組合來形成其他單芯片閃存裝置73,例如四個(gè)、八個(gè)或 更多數(shù)據(jù)通道,或者八個(gè)、十六個(gè)或更多MLC芯片。單芯片W存裝置和通道可以采用鏈、分 支或隊(duì)列形式。例如, 一個(gè)包含4個(gè)單芯片閃存裝置73的分支可以作為鏈連接到智能存儲(chǔ) 開關(guān)30。可以用其他大小聚合或分割方案進(jìn)行不同的內(nèi)存存取??梢允褂瞄W存、氮化膜阱(S0N0S)閃存、相變存儲(chǔ)器(PCM)、鐵電體隨機(jī)存儲(chǔ)器(FRAM)、磁阻性隨機(jī)存儲(chǔ)器(MRAM)、 憶阻器(Memristor)、相變隨機(jī)存儲(chǔ)器(PRAM)、電阻式隨機(jī)存儲(chǔ)器(RRAM)、賽道存儲(chǔ) 器(Racetrack Memory)和納米隨機(jī)存儲(chǔ)器(NRAM)。主機(jī)可以是個(gè)人計(jì)算機(jī)主板或其他個(gè)人計(jì)算機(jī)平臺(tái)、移動(dòng)通信裝置、個(gè)人數(shù)字助理(PDA)、數(shù)碼相機(jī)、協(xié)聯(lián)裝置或其他裝置。主機(jī)總線或主機(jī)-裝置接口Bj"以是SATA、 PC丄E、 SD、 USB或其他主機(jī)總線,而單芯片閃存裝置73的內(nèi)置總線可以是PATA、使用多個(gè)SD/MMC 的多通道SSD、緊湊閃存卡(CF)、USB或其他并行接口。單芯片閃存裝置73可以封裝在TS0P、 BGA、 LGA、 C0B、 PIP、 S丄P、 CSP、 POP或多芯片封裝(MCP)等封裝中,并可以包含非易失性 內(nèi)存塊68,或者非易失性內(nèi)存塊68可以在獨(dú)立的閃存芯片中。內(nèi)置總線可以完全或部分共 用,或者可以是獨(dú)立的總線。SSD系統(tǒng)可以使用帶其他組件(如LED指示器、電容器、電阻 器等)的電路板。方向術(shù)語,如上方、下方、上、下、頂部、底部等,是相對(duì)的,可以隨系統(tǒng)或數(shù)據(jù)的旋 轉(zhuǎn)、翻轉(zhuǎn)等而變化。這些術(shù)語對(duì)描述裝置很有用,但不是絕對(duì)的限制。單芯片閃存裝置73可以是包含已封裝的控制器和閃存顆粒的單芯片封裝,該單芯片封 裝可以集成到PCBA上或者直接集成到主板上,以進(jìn)一步簡化裝配、降低生產(chǎn)成本和減小總 厚度。閃存芯片還可以與包含框架開放式閃存卡的其他實(shí)施例配合使用。并非只為閃存存儲(chǔ)使用智能存儲(chǔ)開關(guān)30,還可以添加其他特性。例如,音樂播放器可以 包含一個(gè)播放來自存儲(chǔ)在閃存中的MP3數(shù)據(jù)的音頻的控制器。裝置可以添加音頻插孔,以讓 用戶插入耳機(jī)聽音樂。裝置可以添加無線傳輸裝置(如藍(lán)牙傳輸裝置),以連接到無線耳機(jī), 而不使用音頻插孔。也可以添加紅外線傳輸裝置(如IrDA)。也可以添加與無線鼠標(biāo)、PDA、 鍵盤、打印機(jī)、數(shù)碼相機(jī)、MP3播放器或其他無線裝置通信的藍(lán)牙收發(fā)器。藍(lán)牙收發(fā)器可以 代替連接器,成為主連接器。藍(lán)牙適配器可以有連接器、射頻(RF)收發(fā)器、基頻控制器、 天線、閃存(EEPR0M)、調(diào)壓器、晶體、發(fā)光二極管(LED)、電阻器、電容器和電感器等。 這些組件可以安裝到PCB上,然后裝入塑料或金屬外殼中。發(fā)明背景部分可以包含關(guān)于發(fā)明的問題或環(huán)境的背景信息,而不是介紹其他人的現(xiàn)有技術(shù)。因此,在背景部分包含資料,并不表示專利申請(qǐng)人承認(rèn)現(xiàn)有技術(shù)。此處介紹的任何方法或過程是在機(jī)器實(shí)施或計(jì)算機(jī)實(shí)施的,希望由機(jī)器、計(jì)算機(jī)或其他 裝置執(zhí)行,而不是在沒有此類機(jī)器協(xié)助的情況下人工執(zhí)行。所產(chǎn)生的有形結(jié)果可以包括機(jī)器 產(chǎn)生的報(bào)告或者其他在顯示裝置(如計(jì)算機(jī)監(jiān)視器、投影裝置、音頻發(fā)生裝置和有關(guān)的媒體 裝置)上顯示的內(nèi)容,并可以包括也是機(jī)器產(chǎn)生的打印件。其他機(jī)器的由計(jì)算機(jī)控制是另一 種有形結(jié)果。所介紹的任何優(yōu)點(diǎn)和好處可能不適用于本發(fā)明的所有實(shí)施例。如果某個(gè)權(quán)利要求中敘述 "構(gòu)件"這個(gè)詞,表明專利申請(qǐng)人希望權(quán)利要求被歸入在35 USC Sect. 112,第6段。"構(gòu) 件"這個(gè)詞前面通常有一個(gè)包含一個(gè)或多個(gè)詞的標(biāo)簽。"構(gòu)件"這個(gè)詞前面的詞是希望方便 權(quán)利要求參照的標(biāo)簽,不是希望表達(dá)結(jié)構(gòu)限制。此類手段加功能的權(quán)利要求不僅涵蓋此處介 紹的執(zhí)行功能的結(jié)構(gòu)及其結(jié)構(gòu)等效物,而且涵蓋等效結(jié)構(gòu)。例如,雖然釘子和螺絲具有不同 的結(jié)構(gòu),但它們是等效結(jié)構(gòu),因?yàn)樗鼈兌紙?zhí)行緊固功能。不使用"構(gòu)件"這個(gè)詞的權(quán)利要求 不希望被歸入35 USC Sect. 112,第6段。信號(hào)通常是電子信號(hào),但也可能是光信號(hào),如可 以通過光纖線路傳輸?shù)男盘?hào)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原 則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。3權(quán)利要求
1、一種多層控制多閃存裝置,其特征在于,所述裝置包括智能存儲(chǔ)開關(guān)和多個(gè)單芯片閃存裝置,所述智能存儲(chǔ)開關(guān)包括與主機(jī)連接的上游接口,接收主機(jī)命令以存取非易失性內(nèi)存和接收主機(jī)數(shù)據(jù)及主機(jī)地址;智能存儲(chǔ)事務(wù)管理器,管理來自主機(jī)的事務(wù);虛擬存儲(chǔ)處理器,將主機(jī)地址映射到指定單芯片閃存裝置以產(chǎn)生邏輯塊地址,所述虛擬存儲(chǔ)處理器執(zhí)行第一層映射;在智能存儲(chǔ)事務(wù)管理器和邏輯塊地址總線之間的虛擬存儲(chǔ)橋;所述多個(gè)單芯片閃存裝置包含指定單芯片閃存裝置,其中每個(gè)裝置包括耦合到邏輯塊地址總線的非易失性內(nèi)存控制器,接收虛擬存儲(chǔ)處理器產(chǎn)生的邏輯塊地址以及來自虛擬存儲(chǔ)橋的主機(jī)數(shù)據(jù);在非易失性內(nèi)存控制器中的第二層映射器,將邏輯塊地址映射成物理塊地址;以及耦合到非易失性內(nèi)存控制器的非易失性內(nèi)存塊,用于存儲(chǔ)主機(jī)數(shù)據(jù)在第二層映射器產(chǎn)生的物理塊地址所標(biāo)識(shí)的內(nèi)存塊位置中。
2、 如權(quán)利要求l所述的多層控制多閃存裝置,其特征在于,所述智能存儲(chǔ)開關(guān)還包括 奇偶發(fā)生器,產(chǎn)生主機(jī)數(shù)據(jù)的檢錯(cuò)碼,而且檢錯(cuò)碼與主機(jī)數(shù)據(jù)一起存儲(chǔ)。
3、 如權(quán)利要求1所述的多層控制多閃存裝置,其特征在于,所述每個(gè)單芯片閃存裝置 還包括局部時(shí)鐘脈沖源,產(chǎn)生局部時(shí)鐘脈沖,以定時(shí)提醒非易失性內(nèi)存控制器以及與非易失性 內(nèi)存塊接口。
4、 如權(quán)利要求l所述的多層控制多閃存裝置,其特征在于,所述裝置還包括-易失性內(nèi)存緩沖區(qū),暫時(shí)存儲(chǔ)主機(jī)數(shù)據(jù)在電源中斷時(shí)會(huì)丟失數(shù)據(jù)的易失性內(nèi)存中; 所述多個(gè)單芯片閃存裝置中的非易失性內(nèi)存塊是在電源中斷時(shí)會(huì)保留數(shù)據(jù)的非易失性內(nèi)存;所述智能存儲(chǔ)開關(guān)還包括-虛擬緩沖橋,耦合在智能存儲(chǔ)事務(wù)管理器和易失性內(nèi)存緩沖區(qū)之間。
5、 如權(quán)利要求1所述的多層控制多閃存裝置,其特征在于,所述智能存儲(chǔ)事務(wù)管理器 還包括將主機(jī)數(shù)據(jù)分割成數(shù)據(jù)分片的數(shù)據(jù)分割單元,所述數(shù)據(jù)分片被分配到多個(gè)單芯片閃存裝置中的不同裝置。
6、 如權(quán)利要求l所述的多層控制多閃存裝置,其特征在于,所述智能存儲(chǔ)丌關(guān)還包括 耦合到智能存儲(chǔ)事務(wù)管理器的模式邏輯,所述模式邏輯確定何時(shí)將智能存儲(chǔ)事務(wù)管理器設(shè)為集線器模式,以及何時(shí)將智能存儲(chǔ)事務(wù)管理器設(shè)為開關(guān)模式;當(dāng)模式邏輯指示開關(guān)模式時(shí),智能存儲(chǔ)事務(wù)管理器作為單個(gè)終結(jié)點(diǎn)回應(yīng)主機(jī),其中智能 存儲(chǔ)事務(wù)管理器向主機(jī)報(bào)告所述多個(gè)單芯片閃存裝置中所有非易失性內(nèi)存塊的總計(jì)內(nèi)存容當(dāng)模式邏輯指示開關(guān)模式時(shí),智能存儲(chǔ)開關(guān)促使主機(jī)把所述多個(gè)單芯片閃存裝置視為一 個(gè)虛擬閃存裝置。
7、 如權(quán)利要求1所述的多層控制多閃存裝置,其特征在于,所述單芯片閃存裝置由閃 存模塊構(gòu)成,所述閃存模塊以直接焊接的方式,通過連接頭和插槽實(shí)體安裝到主機(jī)主板上, 或者嵌入主機(jī)主板中。
8、 如權(quán)利要求1所述的多層控制多閃存裝置,其特征在于,所述智能存儲(chǔ)事務(wù)管理器 還包括重新排序單元,將來自主機(jī)的一系列事務(wù)重新排序,以將操作按改變了的順序通過虛擬 存儲(chǔ)橋發(fā)送到所述多個(gè)單芯片閃存裝置。
9、 一種存儲(chǔ)裝置,其特征在于,所述裝置包括與主機(jī)連接的上游接口,接收主機(jī)命令以存取非易失性內(nèi)存和接收主機(jī)數(shù)據(jù)及主機(jī)地址;單芯片閃存裝置,具有多個(gè)閃存塊,所述閃存塊用于存儲(chǔ)主機(jī)數(shù)據(jù)在電源中斷時(shí)會(huì)保留 數(shù)據(jù)的非易失性固態(tài)內(nèi)存中;虛擬存儲(chǔ)處理器,分配主機(jī)命令到單芯片閃存裝置,所述虛擬存儲(chǔ)處理器還存儲(chǔ)從單芯 片閃存裝置獲得的屬性,屬性包括內(nèi)存容量,其中所述虛擬存儲(chǔ)處理器向主機(jī)報(bào)告總計(jì)內(nèi)存 容量;在單芯片閃存裝置中的低層控制器,其包括重新映射單元,將從上游接口收到的邏輯地址轉(zhuǎn)換為物理地址,以存取單芯片閃存裝置 中的多個(gè)閃存塊;平均讀寫單元,將新主機(jī)數(shù)據(jù)分配到單芯片閃存裝置中的多個(gè)閃存塊中較少讀寫的閃存 塊;以及壞塊單元,追蹤單芯片閃存裝置中有缺陷的閃存塊,該壞塊單元防止將新主機(jī)數(shù)據(jù)存儲(chǔ) 到正被追蹤的有缺陷的閃存塊中。
10、 如權(quán)利要求9所述的存儲(chǔ)裝置,其特征在于,所述單芯片閃存裝置由閃存模塊構(gòu)成, 所述閃存模塊以直接焊接的方式,通過連接頭和插槽實(shí)體安裝到主機(jī)主板上,或者嵌入主機(jī) 主板中。
11、 種帶智能丌關(guān)的多非易失性內(nèi)存系統(tǒng),其特征在于,所述系統(tǒng)包括 與主機(jī)連接的上游接口,接收主機(jī)命令以存取非易失性內(nèi)存和接收主機(jī)數(shù)據(jù)及主機(jī)地址;耦合到上游接口的智能存儲(chǔ)事務(wù)管理器,將主機(jī)次序的主機(jī)命令重新排列成一個(gè)重新排 序的操作系列;多個(gè)單芯片閃存裝置,其中每個(gè)裝置具有多個(gè)閃存塊,所述閃存塊用于存儲(chǔ)主機(jī)數(shù)據(jù)在 電源中斷時(shí)會(huì)保留數(shù)據(jù)的非易失性固態(tài)內(nèi)存中;虛擬存儲(chǔ)處理器,分配主機(jī)命令到多個(gè)單芯片閃存裝置中的指定裝置,該虛擬存儲(chǔ)處理器還存儲(chǔ)從多個(gè)單芯片閃存裝置中的每個(gè)裝置獲得的屬性,屬性包括內(nèi)存容量,其中該虛擬存儲(chǔ)處理器向主機(jī)報(bào)告總計(jì)內(nèi)存容量;虛擬存儲(chǔ)橋,耦合在智能存儲(chǔ)事務(wù)管理器和多個(gè)單芯片閃存裝置之間; 位于多個(gè)單芯片閃存裝置的每個(gè)裝置中的低層控制器,其包括重新映射單元,將從虛擬存儲(chǔ)橋收到的邏輯地址轉(zhuǎn)換為物理地址,以存取單芯片閃存裝 置中的多個(gè)閃存塊;平均讀寫單元,將新主機(jī)數(shù)據(jù)分配到單芯片閃存裝置中多個(gè)閃存塊中較少讀寫的閃存 塊;以及壞塊單元,追蹤單芯片閃存裝置中有缺陷的閃存塊,該壞塊單元防止將新主機(jī)數(shù)據(jù)存儲(chǔ) 到正被追蹤的有缺陷的閃存塊中。
12、如權(quán)利要求11所述的帶智能開關(guān)的多非易失性內(nèi)存系統(tǒng),其特征在于,所述智能 存儲(chǔ)事務(wù)管理器還包括讀寫監(jiān)測(cè)器,監(jiān)測(cè)多個(gè)單芯片閃存裝置報(bào)告的平均讀寫;存儲(chǔ)巻安裝程序,在單芯片閃存裝置報(bào)告超過閥值的高讀寫水平時(shí),由讀寫監(jiān)測(cè)器啟動(dòng), 以用替換單芯片閃存裝置來代替已具有高讀寫水平的單芯片閃存裝置。
13、如權(quán)利要求11所述的帶智能開關(guān)的多非易失性內(nèi)存系統(tǒng),其特征在于,所述智能 存儲(chǔ)事務(wù)管理器還包括將主機(jī)數(shù)據(jù)分割成數(shù)據(jù)分片的數(shù)據(jù)分割單元,所述數(shù)據(jù)分片被存儲(chǔ)到多個(gè)單芯片閃存裝 置屮的幾個(gè)裝置中;每個(gè)單芯片閃存裝置還包括一糾錯(cuò)碼單元,所述糾錯(cuò)碼單元將糾錯(cuò)碼附加到主機(jī)數(shù)據(jù),然后發(fā)送到多個(gè)單芯片閃存裝置中的指定裝置,以存儲(chǔ)到多個(gè)閃存塊中。
14、 如權(quán)利要求13所述的帶智能開關(guān)的多非易失性內(nèi)存系統(tǒng),其特征在于,所述系統(tǒng) 還包括暫時(shí)存儲(chǔ)主機(jī)數(shù)據(jù)的動(dòng)態(tài)隨機(jī)存儲(chǔ)器緩沖區(qū);在動(dòng)態(tài)隨機(jī)存儲(chǔ)器緩沖區(qū)和智能存儲(chǔ)事務(wù)管理器之間的虛擬緩沖橋。
15、 如權(quán)利要求11所述的帶智能開關(guān)的多非易失性內(nèi)存系統(tǒng),其特征在于,所述智能 存儲(chǔ)事務(wù)管理器還包括耦合到虛擬存儲(chǔ)橋的交錯(cuò)存儲(chǔ)單元,將主機(jī)數(shù)據(jù)交錯(cuò)存儲(chǔ)到多個(gè)單芯片閃存裝置的多個(gè) 交錯(cuò)存儲(chǔ)。
16、 如權(quán)利要求13所述的帶智能開關(guān)的多非易失性內(nèi)存系統(tǒng),其特征在于,所述單芯 片閃存裝置由閃存模塊構(gòu)成,所述閃存模塊以直接焊接的方式,通過連接頭和插槽實(shí)體安裝 到主機(jī)主板上,或者嵌入主機(jī)主板中。
17、 一種數(shù)據(jù)分割固態(tài)硬盤,其特征在于,所述固態(tài)硬盤包括易失性內(nèi)存緩沖區(qū)構(gòu)件,暫時(shí)存儲(chǔ)主機(jī)數(shù)據(jù)在電源中斷時(shí)會(huì)丟失數(shù)據(jù)的易失性內(nèi)存中;智能存儲(chǔ)開關(guān)構(gòu)件,開關(guān)發(fā)送主機(jī)命令到多個(gè)下游裝置,該智能存儲(chǔ)開關(guān)構(gòu)件包括耦合到主機(jī)的上游接口構(gòu)件,接收主機(jī)命令以存取閃存和接收主機(jī)數(shù)據(jù)及主機(jī)地址 智能存儲(chǔ)事務(wù)管理器構(gòu)件,管理來自主機(jī)的事務(wù);虛擬存儲(chǔ)處理器構(gòu)件,轉(zhuǎn)換主機(jī)地址到指定單芯片閃存裝置以產(chǎn)生邏輯塊地址,該虛擬 存儲(chǔ)處理器構(gòu)件執(zhí)行第一層地址映射;虛擬存儲(chǔ)橋構(gòu)件,在智能存儲(chǔ)事務(wù)管理器構(gòu)件和邏輯塊地址總線之間傳輸主機(jī)數(shù)據(jù)和邏 輯塊地址;虛擬緩沖橋構(gòu)件,耦合在智能存儲(chǔ)事務(wù)管理器構(gòu)件和易失性內(nèi)存緩沖區(qū)構(gòu)件之間; 重新排序構(gòu)件,將來自主機(jī)的一系列事務(wù)重新排序,以將操作按改變了的次序通過虛擬 存儲(chǔ)橋構(gòu)件發(fā)送;數(shù)據(jù)分割構(gòu)件,將主機(jī)數(shù)據(jù)分割成數(shù)據(jù)分片,然后分配到多個(gè)單芯片閃存裝置中的不同 裝置;多個(gè)單芯片閃存裝置,包括指定的單芯片閃存裝置,其中每個(gè)單芯片閃存裝置包括-控制閃存操作的低層控制器構(gòu)件,耦合到邏輯塊地址總線以接收智能存儲(chǔ)處理器構(gòu)件產(chǎn) 生的邏輯塊地址和來6虛擬存儲(chǔ)橋構(gòu)件的主機(jī)數(shù)據(jù);低層控制器構(gòu)件中的第二層映射構(gòu)件,將邏輯塊地址映射到物理塊地址;以及 耦合到低層控制器構(gòu)件的非易失性內(nèi)存塊,用于存儲(chǔ)主機(jī)數(shù)據(jù)在第二層映射構(gòu)件產(chǎn)生的物理塊地址所標(biāo)識(shí)的內(nèi)存塊位置中;其中多個(gè)單芯片閃存裝置中的非易失性內(nèi)存塊是在電源中斷時(shí)會(huì)保留數(shù)據(jù)的非易失性 內(nèi)存。
18、 如權(quán)利要求17所述的數(shù)據(jù)分割固態(tài)硬盤,其特征在于,所述低層控制器構(gòu)件還包括平均讀寫單元構(gòu)件,分配主機(jī)數(shù)據(jù)到非易失性內(nèi)存塊中較少讀寫的內(nèi)存塊,該較少讀寫 的內(nèi)存塊的讀寫數(shù)值低于其他內(nèi)存塊,該平均讀寫單元構(gòu)件檢查讀寫數(shù)值,以分配主機(jī)數(shù)據(jù) 到內(nèi)存塊;壞塊管理器構(gòu)件,非易失性內(nèi)存塊中具有一故障塊列表,促使平均讀寫單元構(gòu)件避免分 配主機(jī)數(shù)據(jù)到故障塊列表中的內(nèi)存塊。
19、 如權(quán)利要求18所述的數(shù)據(jù)分割固態(tài)硬盤,其特征在于,所述非易失性內(nèi)存塊包括 兩個(gè)堆棧在一起并可交錯(cuò)存取的閃存顆粒,其中每個(gè)閃存顆粒包括兩個(gè)可交錯(cuò)存取的層面;其中數(shù)據(jù)分割的分片大小等于每個(gè)通道四頁,并每個(gè)通道具有多個(gè)單芯片閃存裝置屮的 一個(gè)裝置,依上所述,主機(jī)數(shù)據(jù)分割的分片深度與多個(gè)單芯片閃存裝置匹配。
20、如權(quán)利要求17所述的數(shù)據(jù)分割固態(tài)硬盤,其特征在于,所述分片深度等于N乘以 一分片大小,其中N是多個(gè)單芯片閃存裝置的總數(shù),其中分片大小等于可以同時(shí)寫入多個(gè)單 芯片閃存裝置中的一個(gè)裝置的頁數(shù)。
21、如權(quán)利要求17所述的數(shù)據(jù)分割固態(tài)硬盤,其特征在于,所述單芯片閃存裝置由閃 存模塊構(gòu)成,所述閃存模塊以直接焊接的方式,通過連接頭和插槽實(shí)體安裝到主機(jī)主板上, 或者嵌入主機(jī)主板中。
全文摘要
本發(fā)明適用于存儲(chǔ)領(lǐng)域,提供了多層控制多閃存裝置、存儲(chǔ)裝置和數(shù)據(jù)分割固態(tài)硬盤,多層控制多閃存裝置包括智能存儲(chǔ)開關(guān)和多個(gè)單芯片閃存裝置,智能存儲(chǔ)開關(guān)包括上游接口,執(zhí)行第一層映射的智能存儲(chǔ)事務(wù)管理器,在智能存儲(chǔ)事務(wù)管理器和邏輯塊地址總線之間的虛擬存儲(chǔ)橋;多個(gè)單芯片閃存裝置包含指定單芯片閃存裝置,每個(gè)裝置包括耦合到邏輯塊地址總線的非易失性內(nèi)存控制器;在非易失性內(nèi)存控制器中的第二層映射器;以及耦合到非易失性內(nèi)存控制器的非易失性內(nèi)存塊。本發(fā)明可以將多個(gè)帶有單芯片閃存裝置的通道聚合為一個(gè)邏輯驅(qū)動(dòng)器,并將主機(jī)數(shù)據(jù)平均分配到多個(gè)單芯片閃存裝置的多個(gè)非易失性內(nèi)存塊,從而延長了基于閃存的固態(tài)硬盤的壽命。
文檔編號(hào)G06F3/06GK101644995SQ20091016587
公開日2010年2月10日 申請(qǐng)日期2009年8月4日 優(yōu)先權(quán)日2008年8月5日
發(fā)明者俞一康, 周圭璋, 李中和, 馬志剛 申請(qǐng)人:晶天電子(深圳)有限公司