技術(shù)領(lǐng)域
本發(fā)明構(gòu)思的實施例涉及一種數(shù)據(jù)存儲裝置,更具體地,涉及可以使用交換映射表將源區(qū)域的邏輯地址改變?yōu)槟繕?biāo)區(qū)域的邏輯地址以控制數(shù)據(jù)存儲裝置的持久性和性能的一種數(shù)據(jù)存儲裝置,以及包括該數(shù)據(jù)存儲裝置的一種數(shù)據(jù)處理系統(tǒng)。
背景技術(shù):
存儲器裝置用來存儲數(shù)據(jù),存儲器裝置的類型可以劃分成易失性存儲器裝置和非易失性存儲器裝置。閃存裝置是非易失性存儲器裝置,并且是其中通過一次操作擦除或編程多個存儲單元的電可擦除可編程只讀存儲器(EEPROM)的示例。例如,編程或讀取通過頁來執(zhí)行,擦除通過塊來執(zhí)行。塊可以包括多個頁。
閃存裝置可以包括多個閃存芯片。可以根據(jù)多個閃存芯片中的一個芯片來確定閃存裝置的總體持久性(或生命期)和性能。例如,當(dāng)多個閃存芯片中的一個磨損或性能降低時,包括多個閃存芯片的閃存裝置的總體持久性和性能會降低。
技術(shù)實現(xiàn)要素:
本發(fā)明構(gòu)思的示例實施例涉及一種數(shù)據(jù)存儲裝置,所述數(shù)據(jù)存儲裝置包括:第一多芯片組,包括第一易失性存儲器、第一非易失性存儲器以及被構(gòu)造為控制第一易失性存儲器和第一非易失性存儲器的第一核;第二多芯片組,包括第二易失性存儲器、第二非易失性存儲器以及被構(gòu)造為控制第二易失性存儲器和第二非易失性存儲器的第二核;以及控制器,連接到第一多芯片組和第二多芯片組,并且被構(gòu)造為使第一非易失性存儲器的第一存儲區(qū)域的第 一邏輯地址與第二非易失性存儲器的第二存儲區(qū)域的第二邏輯地址交換??刂破鞅粯?gòu)造為使存儲在第一存儲區(qū)域中的第一數(shù)據(jù)與存儲在第二存儲區(qū)域中的第二數(shù)據(jù)交換。
數(shù)據(jù)存儲裝置還包括存儲器,所述存儲器被構(gòu)造為存儲表,所述表包括通過控制器彼此交換的第一邏輯地址和第二邏輯地址??刂破鞅粯?gòu)造為從主機接收第一邏輯地址并且通過參考所述表將交換的第二邏輯地址發(fā)送到第二多芯片組。
根據(jù)一些示例性實施例,第一存儲區(qū)域是用于存儲用戶數(shù)據(jù)的區(qū)域,第二存儲區(qū)域是預(yù)留空間區(qū)域。
第一存儲區(qū)域的磨損計數(shù)大于第二存儲區(qū)域的磨損計數(shù)。磨損計數(shù)可以基于擦除計數(shù)、編程計數(shù)、讀取計數(shù)、壞塊發(fā)生數(shù)和/或讀取錯誤發(fā)生數(shù)。
根據(jù)一些示例性實施例,第一存儲區(qū)域是用于存儲熱數(shù)據(jù)和冷數(shù)據(jù)中的一種的區(qū)域,第二存儲區(qū)域是用于存儲熱數(shù)據(jù)和冷數(shù)據(jù)中的另一種的區(qū)域。
根據(jù)一些示例性實施例,第一易失性存儲器和第一核被包括在第一半導(dǎo)體封裝件中,第二易失性存儲器和第二核被包括在第二半導(dǎo)體封裝件中。根據(jù)一些示例性實施例,第一多芯片組和控制器實現(xiàn)在一個半導(dǎo)體封裝件中。半導(dǎo)體封裝件是嵌入式層疊封裝(ePOP)。
第一邏輯地址根據(jù)控制器的第一請求從第一核通過第一通道被發(fā)送到控制器,第二邏輯地址根據(jù)控制器的第二請求從第二核通過第二通道被發(fā)送到控制器。
根據(jù)一些示例性實施例,第一核被構(gòu)造為根據(jù)第一請求將第一非易失性存儲器中包括的每個存儲區(qū)域的磨損計數(shù)與參考磨損計數(shù)進行第一比較,并且根據(jù)第一比較的結(jié)果將第一存儲區(qū)域的第一邏輯地址通過第一通道發(fā)送到控制器。第二核被構(gòu)造為根據(jù)第二請求將第二非易失性存儲器中包括的每個存儲區(qū)域的磨損計數(shù)與參考磨損計數(shù)進行第二比較,并且根據(jù)第二比較的結(jié)果將第二存儲區(qū)域的第二邏輯地址通過第二通道發(fā)送到控制器,其中,第一存儲區(qū)域的第一磨損計數(shù)大于第二存儲區(qū)域的第二磨損計數(shù)。
根據(jù)一些示例性實施例,第一核被構(gòu)造為將第一非易失性存儲器中包括的每個存儲區(qū)域的磨損計數(shù)與參考磨損計數(shù)進行第一比較,并且根據(jù)第一比較的結(jié)果將第一存儲區(qū)域的第一邏輯地址通過第一通道發(fā)送到控制器。第二核被構(gòu)造為將第二非易失性存儲器中包括的每個存儲區(qū)域的磨損計數(shù)與參考 磨損計數(shù)進行第二比較,并且根據(jù)第二比較的結(jié)果將第二存儲區(qū)域的第二邏輯地址通過第二通道發(fā)送到控制器。第一存儲區(qū)域的第一磨損計數(shù)大于第二存儲區(qū)域的第二磨損計數(shù)。第一存儲區(qū)域和第二存儲區(qū)域中的每個是塊或頁。
第一易失性存儲器和第二易失性存儲器中的每個可以是動態(tài)隨機存取存儲器(DRAM),第一非易失性存儲器和第二非易失性存儲器中的每個可以是閃存,數(shù)據(jù)存儲裝置可以是固態(tài)硬盤(SSD)。
本發(fā)明構(gòu)思的示例實施例涉及一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括主機和連接到主機的數(shù)據(jù)存儲裝置。數(shù)據(jù)存儲裝置包括:第一多芯片組,包括第一易失性存儲器、第一非易失性存儲器以及被構(gòu)造為控制第一易失性存儲器和第一非易失性存儲器的第一核;第二多芯片組,包括第二易失性存儲器、第二非易失性存儲器以及被構(gòu)造為控制第二易失性存儲器和第二非易失性存儲器的第二核;以及控制器,連接到第一多芯片組和第二多芯片組,并且被構(gòu)造為使第一非易失性存儲器的第一存儲區(qū)域的第一邏輯地址與第二非易失性存儲器的第二存儲區(qū)域的第二邏輯地址交換。控制器被構(gòu)造為使存儲在第一存儲區(qū)域中的第一數(shù)據(jù)與存儲在第二存儲區(qū)域中的第二數(shù)據(jù)交換。
本發(fā)明構(gòu)思的示例實施例涉及一種數(shù)據(jù)存儲裝置,所述數(shù)據(jù)存儲裝置包括:第一橫向擴展存儲裝置,包括第一易失性存儲器、第一非易失性存儲器以及被構(gòu)造為控制第一易失性存儲器和第一非易失性存儲器的第一核;第二橫向擴展存儲裝置,包括第二易失性存儲器、第二非易失性存儲器以及被構(gòu)造為控制第二易失性存儲器和第二非易失性存儲器的第二核;橫向擴展控制器,連接到第一橫向擴展存儲裝置和第二橫向擴展存儲裝置,并且被構(gòu)造為:基于大于第二存儲區(qū)域的磨損計數(shù)的第一存儲區(qū)域的磨損計數(shù)而使第一非易失性存儲器的第一存儲區(qū)域的第一邏輯地址與第二非易失性存儲器的第二存儲區(qū)域的第二邏輯地址交換;以及存儲器,被構(gòu)造為存儲表,所述表包括通過橫向擴展控制器彼此交換的第一邏輯地址和第二邏輯地址。橫向擴展控制器可被構(gòu)造為使存儲在第一存儲區(qū)域中的第一數(shù)據(jù)與存儲在第二存儲區(qū)域中的第二數(shù)據(jù)交換。
附圖說明
通過結(jié)合附圖對實施例的以下描述,本總體發(fā)明構(gòu)思的這些和/或其它方面和優(yōu)點將變得明顯并更加容易理解,其中:
圖1是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖;
圖2是圖1中示出的數(shù)據(jù)存儲裝置的詳細的框圖;
圖3是示出圖2中示出的第一集群(cluster)的一些示例性實施例的框圖;
圖4是圖3中示出的第一橫向擴展(scale-out)裝置的示意圖;
圖5是圖4中示出的第一橫向擴展裝置的半導(dǎo)體封裝件的示例性實施例;
圖6是包括圖1中示出的控制器和第一橫向擴展存儲裝置的半導(dǎo)體封裝件的示例性實施例;
圖7是圖4中示出的第一橫向擴展控制器的框圖;
圖8A是示出圖1中示出的數(shù)據(jù)處理系統(tǒng)的操作的框圖;
圖8B是示出圖1中示出的數(shù)據(jù)處理系統(tǒng)執(zhí)行邏輯地址交換操作的操作的框圖;
圖9是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的交換映射表更新操作的流程圖;
圖10是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的交換映射表更新操作的流程圖;
圖11是用于邏輯地址交換操作的交換映射表的示例性實施例;
圖12是示出邏輯地址、物理地址和全局邏輯地址之間的關(guān)系的概念圖;
圖13是示出圖8B中示出的數(shù)據(jù)存儲裝置的數(shù)據(jù)交換操作的概念圖;
圖14是用于邏輯地址交換操作的交換映射表的另一個示例性實施例;
圖15是描述當(dāng)交換映射表被包括在橫向擴展存儲裝置中時數(shù)據(jù)存儲裝置的操作的概念圖;
圖16是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖;
圖17是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖;以及
圖18是示出圖8A或圖8B中示出的數(shù)據(jù)存儲裝置的操作的流程圖。
具體實施方式
現(xiàn)在將在下文中參照附圖更充分地描述本發(fā)明構(gòu)思,在附圖中示出了本發(fā)明的實施例。然而,本發(fā)明可以以許多不同的形式實現(xiàn)并不應(yīng)該被理解為 受限于這里闡述的實施例。相反,提供了這些實施例使得本公開將是徹底的且完整的,并將向本領(lǐng)域的技術(shù)人員充分地傳達本發(fā)明的范圍。在附圖中,為了清晰起見,會夸大層和區(qū)域的尺寸和相對尺寸。同樣的附圖標(biāo)記始終表示同樣的元件。
將理解的是,當(dāng)元件被稱為“連接”或“結(jié)合”到另一個元件時,該元件可以直接連接或結(jié)合到所述另一個元件或者可以存在中間元件。相反,當(dāng)元件被稱為“直接連接”或“直接結(jié)合”到另一元件時,不存在中間元件。如這里使用的,術(shù)語“和/或”包括一個或更多個相關(guān)列出項的任意和全部組合并且可以縮寫為“/”。
還將理解的是,盡管這里可以使用術(shù)語第一、第二等來描述各種元件,但是這些元件不應(yīng)該受這些術(shù)語的限制。這些術(shù)語僅用來將一個元件與另一個元件區(qū)分開。例如,在不脫離本公開的教導(dǎo)的情況下,第一信號可以被稱為第二信號,相似地,第二信號可以被稱為第一信號。
這里使用的術(shù)語僅出于描述特定實施例的目的,并不意圖對本發(fā)明進行限制。如這里所使用的,除非上下文另外明確指出,否則單數(shù)形式的“一個(種)(者)”和“所述(該)”也意圖包括復(fù)數(shù)形式。還將理解的是,當(dāng)在本說明書中使用術(shù)語“包含”和/或“包括”及其變型時,說明存在所陳述的特征、區(qū)域、整體、步驟、操作、元件和/或組件,但不排除存在或附加一個或多個其它特征、區(qū)域、整體、步驟、操作、元件、組件和/或它們的組。
除非另有定義,否則這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語)具有與本發(fā)明所屬領(lǐng)域的普通技術(shù)人員通常理解的含義相同的含義。還將理解的是,除非這里明確這樣定義,否則術(shù)語(例如,在通用的字典中定義的術(shù)語)應(yīng)該被解釋為具有與相關(guān)領(lǐng)域的環(huán)境和/或本發(fā)明中它們的意思一致的意思,而將不以理想的或過于形式化的含義來解釋。
提高諸如數(shù)據(jù)服務(wù)器的數(shù)據(jù)存儲裝置的數(shù)據(jù)處理能力的方法包括縱向擴展(scale-up)和橫向擴展(scale-out)。縱向擴展通過增大數(shù)據(jù)服務(wù)器本身的容量來提高數(shù)據(jù)服務(wù)器的數(shù)據(jù)處理能力,并且也被稱為垂直擴展。橫向擴展通過增大連接的數(shù)據(jù)服務(wù)器的數(shù)量來提高包括數(shù)據(jù)服務(wù)器的系統(tǒng)的數(shù)據(jù)處理能力,并且也被稱為水平擴展。
在具有縱向擴展結(jié)構(gòu)的數(shù)據(jù)存儲裝置中,當(dāng)數(shù)據(jù)存儲裝置中包括的非易失性存儲器裝置的數(shù)量增加時,用于控制非易失性存儲器裝置的控制器與非 易失性存儲器裝置之間實現(xiàn)的接口的負載電容(loading capacitance)會增大。因此,數(shù)據(jù)存儲裝置的數(shù)據(jù)處理速度會降低。因此,本說明書中描述的數(shù)據(jù)存儲裝置可以是具有橫向擴展結(jié)構(gòu)的數(shù)據(jù)存儲裝置。
具有橫向擴展結(jié)構(gòu)的數(shù)據(jù)存儲裝置可以使用橫向擴展存儲裝置、橫向擴展存儲裝置中包括的半導(dǎo)體芯片和/或代表值(在下文,被稱為“磨損計數(shù)”)(其可以表示半導(dǎo)體芯片的存儲單元陣列中包括的塊的持久性)來改變或交換(swap)邏輯地址或全局邏輯地址(global logical address)。
例如,磨損計數(shù)可以包括表示對應(yīng)的塊擦除了多少次的擦除計數(shù)、表示對應(yīng)的塊編程了多少次的編程計數(shù)、表示對應(yīng)的塊讀取了多少次的讀取計數(shù)、對應(yīng)的塊的壞塊發(fā)生數(shù)或?qū)?yīng)的塊的讀取錯誤發(fā)生數(shù);然而,磨損計數(shù)不限于此。這里,擦除計數(shù)可以被理解為包括編程-擦除(P/E)循環(huán)的概念。
此外,橫向擴展存儲裝置可以包括易失性存儲器、至少一個非易失性存儲器以及控制易失性存儲器和至少一個非易失性存儲器的橫向擴展控制器。當(dāng)易失性存儲器、至少一個非易失性存儲器和橫向擴展控制器中的每個以半導(dǎo)體芯片或半導(dǎo)體封裝件來實現(xiàn)時,橫向擴展存儲裝置可以被稱為多芯片組。橫向擴展控制器可以是核。
圖1是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的數(shù)據(jù)處理系統(tǒng)100的框圖。參照圖1,數(shù)據(jù)處理系統(tǒng)100可以包括主機200以及可以通過接口110發(fā)送命令和/或數(shù)據(jù)到主機200或者從主機200接收命令和/或數(shù)據(jù)的數(shù)據(jù)存儲裝置300。
當(dāng)數(shù)據(jù)存儲裝置300中包括的存儲器集群400的結(jié)構(gòu)具有圖2中示例性示出的結(jié)構(gòu)時,數(shù)據(jù)存儲裝置300可以實現(xiàn)為橫向擴展結(jié)構(gòu)。例如,數(shù)據(jù)處理系統(tǒng)100可以是存儲器系統(tǒng);然而,數(shù)據(jù)處理系統(tǒng)100不限于此。
根據(jù)一些示例性實施例,數(shù)據(jù)處理系統(tǒng)100可以實現(xiàn)為個人計算機(PC)、工作站、數(shù)據(jù)中心、互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)、存儲區(qū)域網(wǎng)絡(luò)(SAN)、網(wǎng)絡(luò)連接存儲(NAS)或移動計算裝置;然而,數(shù)據(jù)處理系統(tǒng)100不限于此。
包括存儲器集群400的移動計算裝置可以實現(xiàn)為膝上型計算機、移動電話、智能電話、平板PC、個人數(shù)字助理(PDA)、企業(yè)數(shù)字助理(EDA)、數(shù)字靜態(tài)照相機、數(shù)字視頻照相機、便攜式多媒體播放器(PMP)、個人導(dǎo)航設(shè)備或便攜式導(dǎo)航設(shè)備(PND)、手持式游戲機、移動互聯(lián)網(wǎng)設(shè)備(MID)、可穿戴式計算機、物聯(lián)網(wǎng)(IoT)設(shè)備、萬聯(lián)網(wǎng)(IoE)設(shè)備、無人機或電子書; 然而,它不限于此。
接口110可以實現(xiàn)為串行高級技術(shù)附件(SATA)接口、SATA express(SATAe)接口、串行連接小型計算機系統(tǒng)接口(SCSI)接口、外設(shè)組件互連快速(PCIe)接口、非易失性存儲快速(NVMe)接口、高級主機控制器接口(AHCI)接口或多媒體卡(MMC)接口;然而,它不限于此。根據(jù)一些示例性實施例,接口110可以傳輸電信號或光信號。
主機200可以通過接口110來控制數(shù)據(jù)存儲裝置300的數(shù)據(jù)處理操作(例如,寫入(或編程)操作或讀取操作)。主機200可以是主機控制器。
CPU 220和第一接口230可以通過總線架構(gòu)210彼此發(fā)送或接收數(shù)據(jù)。雖然包括總線架構(gòu)210、CPU 220和第一接口230的主機200示出在圖1中,但本發(fā)明構(gòu)思的技術(shù)理念不限于圖1中示出的主機200的框圖。
根據(jù)一些示例性實施例,主機200可以實現(xiàn)為集成電路(IC)、主板、片上系統(tǒng)(SoC)、應(yīng)用處理器(AP)、移動AP、網(wǎng)絡(luò)服務(wù)器、數(shù)據(jù)服務(wù)器或數(shù)據(jù)庫服務(wù)器;然而,它不限于此。例如,總線架構(gòu)210可以實現(xiàn)為高級微控制器總線架構(gòu)(AMBA)、高級高性能總線(AHB)、高級外設(shè)總線(APB)、高級可擴展接口(AXI)、高級系統(tǒng)總線(ASB)、AXI一致性擴展或它們的組合;然而,它不限于此。
CPU 220可以產(chǎn)生用于控制數(shù)據(jù)存儲裝置300的寫入操作的寫入請求或用于控制數(shù)據(jù)存儲裝置300的讀取操作的讀取請求。寫入請求可以包括寫入地址(例如,邏輯地址),讀取請求可以包括讀取地址(例如,邏輯地址)。例如,CPU 220可以包括一個或更多個核。請求可以是命令。
第一接口230可以改變將要發(fā)送到數(shù)據(jù)存儲裝置300的命令和/或數(shù)據(jù)的格式,并且通過接口110將具有改變的格式的命令和/或具有改變的格式的數(shù)據(jù)發(fā)送到數(shù)據(jù)存儲裝置300。
此外,第一接口230可以改變發(fā)送到數(shù)據(jù)存儲裝置300的響應(yīng)和/或數(shù)據(jù)的格式,并且通過總線架構(gòu)210將具有改變的格式的響應(yīng)和/或具有改變的格式的數(shù)據(jù)發(fā)送到CPU 220。根據(jù)一些示例性實施例,第一接口230可以包括用于發(fā)送或接收命令和/或數(shù)據(jù)的收發(fā)器。第一接口230的結(jié)構(gòu)和操作可以實現(xiàn)為與接口100的結(jié)構(gòu)和操作兼容。
數(shù)據(jù)存儲裝置300可以包括控制器310、緩沖器360、電源管理IC(PMIC)370和存儲器集群400。這里,存儲器集群400可以是一組存儲器裝置。此外, 存儲器集群400可以包括如圖2中示出的橫向擴展裝置和存儲器裝置。
數(shù)據(jù)存儲裝置300可以實現(xiàn)為閃存類存儲器裝置;然而,它不限于此。例如,數(shù)據(jù)存儲裝置300可以實現(xiàn)為固態(tài)驅(qū)動器或固態(tài)硬盤(SSD)、嵌入式SSD(eSSD)、通用閃存(UFS)、多媒體卡(MMC)、嵌入式MMC(eMMC)或管理型NAND;然而,它不限于此。例如,閃存類存儲器裝置可以實現(xiàn)為NAND型閃存裝置或NOR型閃存裝置。
閃存類存儲器裝置可以包括存儲單元陣列。存儲單元陣列可以包括多個存儲單元。例如,存儲單元陣列可以包括二維(2D)存儲單元陣列或三維(3D)存儲單元陣列。
3D存儲單元陣列以一個或更多個物理層級的存儲單元陣列整體地形成,其具有設(shè)置在硅基底上方的有源區(qū)域和與這些存儲單元的操作有關(guān)的電路,所述相關(guān)電路在所述基底上方或者在所述基底內(nèi)。術(shù)語“整體的”指各個層級的陣列的層直接放置在各個下層陣列的層上。在本發(fā)明構(gòu)思的實施例中,3D存儲器陣列包括垂直地取向使得至少一個存儲單元位于另一個存儲單元上方的垂直NAND串。所述至少一個存儲單元可以包括電荷陷阱層。
通過引用包含于此的下面的專利文件描述了用于三維存儲器陣列的合適的構(gòu)造,其中,三維存儲器陣列被構(gòu)造為多個層級,并且在層級之間共用字線和/或位線:第7,679,133號、第8,553,466號、第8,654,587號和第8,559,235號美國專利以及第2011/0233648號美國專利公開。
根據(jù)一些示例性實施例,數(shù)據(jù)存儲裝置300可以以硬盤驅(qū)動器(HDD)、相變RAM(PRAM)裝置、磁阻RAM(MRAM)裝置、自旋轉(zhuǎn)移矩MRAM(STT-MRAM)裝置、鐵電RAM(FRAM)裝置或電阻RAM(RRAM)裝置實現(xiàn);然而,它不限于此。
控制器310可以控制在主機200、緩沖器360和存儲器集群400之間發(fā)送或接收的命令和/或數(shù)據(jù)的傳輸或處理。根據(jù)一些示例性實施例,控制器310可以實現(xiàn)為IC、SoC或芯片組。
控制器310可以包括總線架構(gòu)311、內(nèi)部存儲器315、第二接口320、至少一個CPU 330和/或331、緩沖器控制器340和第三接口350。
總線架構(gòu)311可以實現(xiàn)為AMBA、AHB、APB、AXI、ASB、ACE或它們的組;然而,它不限于此。
內(nèi)部存儲器315可以存儲用于控制器310的操作的數(shù)據(jù)或者通過控制器 310執(zhí)行數(shù)據(jù)處理操作(例如,寫入操作或讀取操作)產(chǎn)生的數(shù)據(jù)。例如,內(nèi)部存儲器315可以存儲可由CPU 330和/或331執(zhí)行的第一閃存轉(zhuǎn)換層(FTL)代碼。FTL代碼可以被稱為FTL。例如,當(dāng)數(shù)據(jù)存儲裝置300啟動時,第一FTL代碼可以從存儲器集群400加載到內(nèi)部存儲器315,第一FTL代碼可以由CPU 330和/或331來執(zhí)行。
根據(jù)一些示例性實施例,內(nèi)部存儲器315可以實現(xiàn)為隨機存取存儲器(RAM)、動態(tài)RAM(DRAM)、靜態(tài)RAM(SRAM)、緩沖器、緩沖器存儲器、高速緩存或緊耦合存儲器(TCM);然而,內(nèi)部存儲器315的類型不限于此。
第二接口320可以改變將要發(fā)送到主機200的響應(yīng)和/或數(shù)據(jù)的格式,并且通過接口110將具有改變的格式的響應(yīng)和/或具有改變的格式的數(shù)據(jù)發(fā)送到主機200。此外,第二接口320可以接收從主機200發(fā)送的命令和/或數(shù)據(jù),改變接收的命令和/或接收的數(shù)據(jù)的格式,并且將具有改變的格式的命令和/或具有改變的格式的數(shù)據(jù)發(fā)送到至少一個CPU 330和/或331和/或發(fā)送到緩沖器控制器340。根據(jù)示例性實施例,第二接口320可以包括用于發(fā)送或接收信號和/或數(shù)據(jù)的收發(fā)器。
第二接口320的結(jié)構(gòu)和操作可以實現(xiàn)為與接口110的結(jié)構(gòu)和操作兼容。例如,第二接口320可以以SATA接口、SATAe接口、SAS接口、PCIe接口、NVMe接口、AHCI接口、MMC接口、NAND型閃存接口或NOR型閃存接口來實現(xiàn);然而,它不限于此。
一個或更多個CPU 330和/或331可以通過總線架構(gòu)311控制內(nèi)部存儲器315、第二接口320、緩沖器控制器340和第三接口350。CPU 330和331中的每個可以包括一個或更多個核。根據(jù)一些示例性實施例,一個或更多個CPU330和/或331可以控制PMIC 370。
例如,第一CPU 330可以通過第二接口320向主機200發(fā)送數(shù)據(jù)或從主機200接收數(shù)據(jù)。第二CPU 331可以通過第三接口350向存儲器集群400發(fā)送數(shù)據(jù)或從存儲器集群400接收數(shù)據(jù)。根據(jù)一些示例性實施例,第一CPU 330和第二CPU 331可以構(gòu)成多CPU。根據(jù)一些示例性實施例,第一CPU 330可以控制第二CPU 331;然而,它不限于此。
CPU 330和/或331可以產(chǎn)生用于將要被交換的邏輯地址的交換映射表,并且使用緩沖器控制器340將交換映射表存儲在緩沖器360中。
緩沖器控制器340可以在第一CPU 330或第二CPU 331的控制下將數(shù)據(jù)(或交換映射表)寫入緩沖器360中或者從緩沖器360讀取數(shù)據(jù)(或交換映射表)。緩沖器控制器340可以被稱為用于控制對緩沖器360的寫入操作和讀取操作的控制器或緩沖器管理器。
第三接口350可以根據(jù)第一CPU 330或第二CPU 331的控制通過多個主通道CHA、CHB、……、CHC之中的對應(yīng)的主通道,控制用于存儲器集群400的數(shù)據(jù)處理操作(例如,寫入操作或讀取操作)。
根據(jù)一些示例性實施例,第三接口350可以實現(xiàn)為SATA接口、SATAe接口、SAS接口、PCIe接口、NVMe接口、AHCI接口、MMC接口、NAND型閃存接口或NOR型閃存接口;然而,它不限于此。
例如,第三接口350可以包括糾錯碼(ECC)引擎(ECC engine,未示出)。ECC引擎可以糾正將要存儲在存儲器集群400中的數(shù)據(jù)或者從存儲器集群400輸出的數(shù)據(jù)中包括的錯誤。根據(jù)一些示例性實施例,ECC引擎可以實現(xiàn)在控制器310的內(nèi)部的任意地方。
緩沖器360可以根據(jù)緩沖器控制器340的控制寫入數(shù)據(jù)(或交換映射表)或讀取數(shù)據(jù)(或交換映射表)。根據(jù)一些示例性實施例,可以實現(xiàn)為易失性存儲器的緩沖器360可以實現(xiàn)為緩沖器存儲器、RAM、SRAM或DRAM;然而,它不限于此。
緩沖器360可以包括第一區(qū)域和第二區(qū)域,其中,第一區(qū)域存儲用于針對多個集群410、430、……、450的邏輯地址-物理地址轉(zhuǎn)換的映射表和/或交換映射表,第二區(qū)域執(zhí)行高速緩存功能;然而,它不限于此。
例如,由CPU 330和/或331執(zhí)行的第一FTL代碼可以使用存儲在第一區(qū)域中的映射表來執(zhí)行邏輯地址-物理地址轉(zhuǎn)換,或者可以使用存儲在第一區(qū)域中的交換映射表用目標(biāo)邏輯地址交換源邏輯地址。例如,映射表和交換映射表可以實現(xiàn)為一個映射表或不同的映射表。
根據(jù)一些示例性實施例,當(dāng)控制器310和緩沖器360中的每個實現(xiàn)為不同的半導(dǎo)體芯片時,控制器310和緩沖器360可以實現(xiàn)為一個封裝件,例如,層疊封裝(PoP)、多芯片封裝(MCP)或系統(tǒng)級封裝(SiP);然而,封裝件的類型不限于此。例如,包括緩沖器360的第一芯片可以通過堆疊球堆疊在包括控制器310的第二芯片上。
PMIC 370可以控制供應(yīng)到控制器310、緩沖器360和/或存儲器集群400 的操作電壓。例如,供應(yīng)到控制器310的第一操作電壓、供應(yīng)到緩沖器360的第二操作電壓和供應(yīng)到存儲器集群400的第三操作電壓可以彼此相同或不同。
存儲器集群400可以包括多個集群410、430、……、450。第一集群410可以連接到第一主通道CHA,第二集群430可以連接到第二主通道CHB,第三集群450可以連接到第三主通道CHC。將參照圖2至圖8B詳細地描述多個集群410、430、……、450中的每個集群的結(jié)構(gòu)。多個集群410、430、……、450中的每個集群的結(jié)構(gòu)可以基本彼此相同或相似。
本說明書中的主通道可以是存在于控制器310(即,第三接口350)與對應(yīng)的集群之間的獨立的數(shù)據(jù)路徑。數(shù)據(jù)路徑可以包括用于傳輸數(shù)據(jù)和/或控制信號的傳輸線。
路(way)可以是共享一個主通道的一個或更多個非易失性存儲器裝置的組。因此,多條路可以連接到一個主通道。非易失性存儲器裝置可以是裸片、存儲器裝置或半導(dǎo)體封裝件??刂破?10可以控制A個通道*B條路。此時,A和B中的每個是大于等于1的自然數(shù)。
圖2是圖1中示出的數(shù)據(jù)存儲裝置300的具體的框圖,圖3是示出圖2中示出的第一集群的一些示例性實施例的框圖。圖2中示出的數(shù)據(jù)存儲裝置300可以實現(xiàn)為具有橫向擴展結(jié)構(gòu)的數(shù)據(jù)存儲裝置。
第一集群410可以包括至少一個橫向擴展裝置和諸如NAND型閃存裝置NAND的至少一個非易失性存儲器裝置。其余的集群430至450中的每個可以包括至少一個橫向擴展裝置和諸如NAND型閃存裝置NAND的至少一個非易失性存儲器裝置。
參照圖1至圖3,因為集群410至450在結(jié)構(gòu)和操作上基本彼此相同或相似,所以代表性地描述第一集群410的結(jié)構(gòu)和操作。第一集群410可以包括多個橫向擴展存儲裝置410-1至410-4。盡管圖3中示出了四個橫向擴展存儲裝置410-1至410-4;然而,本發(fā)明構(gòu)思的技術(shù)理念不限于第一集群410中包括的多個橫向擴展存儲裝置410-1至410-4的數(shù)目。
第一集群410可以包括橫向擴展裝置410-1A、410-2A、……、410-4A和連接到橫向擴展裝置410-1A、410-2A、……、410-4A中的每個的NAND型閃存裝置NAND。第一橫向擴展存儲裝置410-1可以包括第一橫向擴展裝置410-1A和連接到第一橫向擴展裝置410-1A的非易失性存儲器裝置NAND。 第二橫向擴展存儲裝置410-2可以包括第二橫向擴展裝置410-2A和連接到第二橫向擴展裝置410-2A的非易失性存儲器裝置NAND。第四橫向擴展存儲裝置410-4可以包括第四橫向擴展裝置410-4A和連接到第四橫向擴展裝置410-4A的非易失性存儲器裝置NAND。例如,橫向擴展存儲裝置410-1、410-2、……、410-4中的每個可以是多芯片組。
橫向擴展裝置410-1A、410-2A、……、410-4A中的每個可以包括各自的橫向擴展控制器411-1、411-2、……、411-4和各自的緩沖器或易失性存儲器裝置413-1、413-2、……、413-4。橫向擴展控制器411-1、411-2、……、411-4在結(jié)構(gòu)上基本彼此相同或相似。
第一橫向擴展控制器411-1可以連接到第一主通道CHA、通道CH11至CH1m(其中,m是大于等于2的自然數(shù))和第一易失性存儲器裝置413-1。對應(yīng)的非易失性存儲器裝置NAND可以連接到通道CH11至CH1m中的每個。例如,非易失性存儲器裝置NAND中的每個可以是NAND型閃存或管理型NAND閃存裝置;然而,它不限于此。這里,每個通道可以是存在于第一橫向擴展控制器411-1與對應(yīng)的非易失性存儲器裝置NAND之間的獨立的數(shù)據(jù)路徑。
第一橫向擴展控制器411-1可以通過通道CH11至CH1m中的每個來控制每個非易失性存儲器裝置NAND的操作。例如,控制器310可以通過第一主通道CHA控制第一橫向擴展控制器411-1的操作。
第一易失性存儲器裝置413-1可以包括第一區(qū)域,第一區(qū)域用于存儲關(guān)于連接到通道CH11至CH1m中的每個的非易失性存儲器裝置NAND的邏輯地址-物理地址映射信息(或映射表)。此外,第一易失性存儲器裝置413-1還可以包括第二區(qū)域(或高速緩沖區(qū)域),第二區(qū)域(或高速緩沖區(qū)域)用于暫時存儲將要寫入至少一個非易失性存儲器裝置NAND的數(shù)據(jù)或者從至少一個非易失性存儲器裝置NAND輸出的數(shù)據(jù),其中,所述至少一個非易失性存儲器裝置NAND連接到通道CH11至CH1m中的每個。
例如,如圖7中示出的,由第一橫向擴展控制器411-1中包括的CPU 423-1或423-2執(zhí)行的第二FTL代碼可以使用存儲在第一易失性存儲器裝置413-1的第一區(qū)域中的映射表來執(zhí)行邏輯地址-物理地址轉(zhuǎn)換。第二FTL代碼可以從第一集群410中包括的非易失性存儲器裝置加載到內(nèi)部存儲器425并且由CPU 423-1或423-2來執(zhí)行。
第二橫向擴展控制器411-2可以連接到第一主通道CHA、通道CH21至CH2m和第二易失性存儲器裝置413-2。對應(yīng)的非易失性存儲器裝置NAND可以連接到通道CH21至CH2m中的每個。
第二橫向擴展控制器411-2可以通過通道CH21至CH2m中的每個來控制每個非易失性存儲器裝置NAND的操作。例如,控制器310可以通過主通道CHA控制第二橫向擴展控制器411-2的操作。
第二易失性存儲器裝置413-2可以包括第一區(qū)域,第一區(qū)域用于存儲關(guān)于連接到通道CH21至CH2m中的每個的非易失性存儲器裝置NAND的邏輯地址-物理地址映射信息(或映射表)。此外,第二易失性存儲器裝置413-2還可以包括第二區(qū)域(或高速緩沖區(qū)域),第二區(qū)域(或高速緩沖區(qū)域)用于暫時存儲將要寫入至少一個非易失性存儲器裝置NAND的數(shù)據(jù)或者從至少一個非易失性存儲器裝置NAND輸出的數(shù)據(jù),其中,所述至少一個非易失性存儲器裝置NAND連接到通道CH21至CH2m中的每個。
如圖7中示出的,當(dāng)?shù)谝粰M向擴展控制器411-1在結(jié)構(gòu)上與第二橫向擴展控制器411-2相同時,由第二橫向擴展控制器411-2中包括的CPU 423-1或423-2執(zhí)行的第三FTL代碼可以使用存儲在第二易失性存儲器裝置413-2的第一區(qū)域中的映射表來執(zhí)行邏輯地址-物理地址轉(zhuǎn)換。第三FTL代碼可以從第一集群410中包括的非易失性存儲器裝置加載到內(nèi)部存儲器425并且由CPU 423-1或423-2來執(zhí)行。
第四橫向擴展控制器411-4可以連接到第一主通道CHA、通道CH41至CH4m和第四易失性存儲器裝置413-4。對應(yīng)的非易失性存儲器裝置NAND可以連接到通道CH41至CH4m中的每個。
第四橫向擴展控制器411-4可以通過通道CH41至CH4m中的每個來控制每個非易失性存儲器裝置NAND的操作。例如,控制器310可以通過主通道CHA控制第四橫向擴展控制器411-4的操作。
第四易失性存儲器裝置413-4可以包括第一區(qū)域,第一區(qū)域用于存儲關(guān)于連接到通道CH41至CH4m中的每個的對應(yīng)的非易失性存儲器裝置NAND的邏輯地址-物理地址映射信息(或映射表)。此外,第四易失性存儲器裝置413-4還可以包括第二區(qū)域(或高速緩沖區(qū)域),第二區(qū)域(或高速緩沖區(qū)域)用于暫時存儲將要寫入對應(yīng)的非易失性存儲器裝置NAND的至少一個中的數(shù)據(jù)或者從對應(yīng)的非易失性存儲器裝置NAND的至少一個輸出的數(shù)據(jù),其中, 所述對應(yīng)的非易失性存儲器裝置NAND的至少一個連接到通道CH41至CH4m中的每個。
如圖7中示出的,當(dāng)?shù)谝粰M向擴展控制器411-1在結(jié)構(gòu)上與第四橫向擴展控制器411-4相同時,由第四橫向擴展控制器411-4中包括的CPU 423-1或423-2執(zhí)行的第五FTL代碼可以使用存儲在第四易失性存儲器裝置413-4的第一區(qū)域中的映射表來執(zhí)行邏輯地址-物理地址轉(zhuǎn)換。第五FTL代碼可以從第一集群410中包括的非易失性存儲器裝置加載到內(nèi)部存儲器425并且由CPU 423-1或423-2來執(zhí)行。
易失性存儲器裝置413-1至413-4中的每個可以是緩沖器或緩沖存儲器,并且可以實現(xiàn)為RAM、SRAM或DRAM;然而,它不限于此。
圖3中已示出橫向擴展存儲裝置410-1至410-4中的每個包括相同數(shù)目的通道;然而,根據(jù)一些示例性實施例,橫向擴展存儲裝置410-1至410-4中的每個中包括的通道的數(shù)目可以相互不同。
圖4是圖3中示出的第一橫向擴展裝置410-1A的示意圖,圖7是圖4中示出的第一橫向擴展控制器411-1的框圖。參照圖1至圖4以及圖7,因為橫向擴展控制器411-1至411-4在結(jié)構(gòu)和操作上基本彼此相同或相似,所以這里將代表性地描述第一橫向擴展控制器411-1的結(jié)構(gòu)和操作。
第一橫向擴展控制器411-1可以控制在控制器310、第一易失性存儲器裝置413-1與第一橫向擴展存儲裝置410-1中包括的非易失性存儲器裝置NAND之間發(fā)送或接收的命令和/或數(shù)據(jù)的傳輸。根據(jù)一些示例性實施例,第一橫向擴展控制器411-1可以實現(xiàn)為IC或SoC。
第一橫向擴展控制器411-1可以包括總線架構(gòu)420、第四接口421、至少一個CPU 423-1和/或423-2、內(nèi)部存儲器425、緩沖器控制器427和第五接口429??偩€架構(gòu)420可以實現(xiàn)為AMBA、AHB、APB、AXI、ASB、ACE或它們的組合;然而,它不限于此。
第四接口421可以改變將要發(fā)送到控制器310的響應(yīng)和/或數(shù)據(jù)的格式,并且通過第一主通道CHA將具有改變的格式的響應(yīng)和/或具有改變的格式的數(shù)據(jù)發(fā)送到控制器310。此外,第四接口421可以接收從控制器310發(fā)送的命令和/或數(shù)據(jù),改變接收的命令和/或數(shù)據(jù)的格式,并且將具有改變的格式的命令和/或具有改變的格式的數(shù)據(jù)發(fā)送到至少一個CPU 423-1和/或423-2和/或發(fā)送到緩沖器控制器427。根據(jù)一些示例性實施例,第四接口421可以包 括用于發(fā)送或接收信號和/或數(shù)據(jù)的收發(fā)器。
第四接口421的結(jié)構(gòu)和操作可以實現(xiàn)為與第三接口350的結(jié)構(gòu)和操作兼容。例如,第四接口421可以實現(xiàn)為SATA接口、SATAe接口、SAS接口、PCIe接口、NVMe接口、AHCI接口、MMC接口、NAND型閃存接口或NOR型閃存接口;然而,它不限于此。
根據(jù)一些示例性實施例,參照圖4和圖7,第四接口421可以連接到一個通道(或一個主通道)或一路。第一端子PT1是用于連接第一主通道CHA與第四接口421的端子,第三端子PT3是用于連接第一易失性存儲器裝置413-1與緩沖器控制器427的端子,第二端子PT2是用于連接第五接口429與一個或更多個通道CH11至CH1m的端子。端子可以是引腳或焊盤。
一個或更多個CPU 423-1和/或423-2可以通過總線架構(gòu)420控制第四接口421、內(nèi)部存儲器425、緩沖器控制器427和第五接口429。CPU 423-1和/或423-2中的每個可以包括一個或更多個核。
例如,第一CPU 423-1可以通過第一主通道CHA和第四接口421向第三接口350發(fā)送數(shù)據(jù)或從第三接口350接收數(shù)據(jù),第二CPU 423-2可以通過第五接口429向連接到通道CH11至CH1m中的每個的非易失性存儲器裝置NAND中的至少一個發(fā)送數(shù)據(jù)或從所述非易失性存儲器裝置NAND中的至少一個接收數(shù)據(jù)。根據(jù)一些示例性實施例,第一CPU 423-1和第二CPU 423-2可以構(gòu)成多CPU。根據(jù)一些示例性實施例,第一CPU 423-1可以控制第二CPU423-2。
內(nèi)部存儲器425可以存儲第一橫向擴展控制器411-1的操作所需的數(shù)據(jù)或者通過第一橫向擴展控制器411-1執(zhí)行數(shù)據(jù)處理操作(例如,寫入操作或讀取操作)產(chǎn)生的數(shù)據(jù)。例如,內(nèi)部存儲器425可以存儲可由CPU 423-1和/或423-2執(zhí)行的第二閃存轉(zhuǎn)換層(FTL)代碼。例如,當(dāng)數(shù)據(jù)存儲裝置300啟動時,第二FTL代碼可以從存儲器集群400中包括的非易失性存儲器加載到內(nèi)部存儲器425。根據(jù)一些示例性實施例,內(nèi)部存儲器425可以實現(xiàn)為RAM、DRAM、SRAM、緩沖器、緩沖器存儲器、高速緩存或TCM;然而,它不限于此。
緩沖器控制器427可以根據(jù)第一CPU 423-1或第二CPU 423-2的控制將數(shù)據(jù)寫入第一易失性存儲器裝置413-1中或者從第一易失性存儲器裝置413-1讀取數(shù)據(jù)。緩沖器控制器427可以被稱為可以控制對第一易失性存儲器裝置 413-1的寫入操作和讀取操作的控制器或緩沖器管理器。
第五接口429可以根據(jù)第一CPU 423-1和第二CPU 423-2的控制通過多個通道CH11至CH1m之中的對應(yīng)的通道,控制用于非易失性存儲器裝置NAND的數(shù)據(jù)處理操作。
參照圖4和圖7,多個通道和/或多路可以連接到第五接口429。根據(jù)一些示例性實施例,第五接口429可以實現(xiàn)為SATA接口、SATAe接口、SAS接口、PCIe接口、NVMe接口、AHCI接口、MMC接口、NAND型閃存接口或NOR型閃存接口;然而,它不限于此。例如,第五接口429可以包括與通道CH11至CH1m中的每個對應(yīng)的存儲器控制器429-1至429-m中的每個。例如,當(dāng)非易失性存儲器裝置NAND中的每個是NAND型閃存時,存儲器控制器429-1至429-m中的每個可以是閃存控制器。
第一易失性存儲器裝置413-1可以包括第一區(qū)域和第二區(qū)域,第一區(qū)域存儲用于第一橫向擴展存儲裝置410-1中包括的非易失性存儲器裝置NAND的邏輯地址-物理地址轉(zhuǎn)換的映射表,第二區(qū)域可以執(zhí)行高速緩存的功能;然而,第一易失性存儲器裝置413-1不限于此。例如,由CPU 423-1和/或CPU423-2執(zhí)行的第二FTL代碼可以使用存儲在第一區(qū)域中的映射表執(zhí)行邏輯地址-物理地址轉(zhuǎn)換。
當(dāng)參照圖3描述的非易失性存儲器裝置NAND的至少一個代替有第一橫向擴展裝置410-1A時,存儲器集群400的容量擴展能力可增大。
圖5是圖4中示出的第一橫向擴展裝置的半導(dǎo)體封裝件410-1A的示例性實施例。參照圖3至圖5,第一橫向擴展裝置410-1A可以實現(xiàn)為半導(dǎo)體封裝件。即,第一橫向擴展裝置410-1A可以包括均附著或安裝在半導(dǎo)體基底415上的第一橫向擴展控制器411-1和第一易失性存儲器裝置413-1。
例如,第一易失性存儲器裝置413-1可以以倒裝的結(jié)構(gòu)附著或安裝在半導(dǎo)體基底415上。此外,當(dāng)?shù)谝灰资源鎯ζ餮b置413-1通過粘接材料附著或安裝在半導(dǎo)體基底415上時,第一易失性存儲器裝置413-1可以通過鍵合線將電信號發(fā)送到半導(dǎo)體基底415或從半導(dǎo)體基底415接收電信號。即,第一橫向擴展控制器411-1可以通過半導(dǎo)體基底415向第一易失性存儲器裝置413-1發(fā)送命令和/或數(shù)據(jù)或者從第一易失性存儲器裝置413-1接收命令和/或數(shù)據(jù)。用于橫向擴展裝置410-1A至410-4A的半導(dǎo)體封裝件基本彼此相同或相似。
圖6是包括圖1中示出的控制器和第一橫向擴展存儲裝置的半導(dǎo)體封裝件300-1A的示例性實施例。圖6中示出的半導(dǎo)體封裝件300-1A可以實現(xiàn)為嵌入式層疊封裝(ePOP);然而,半導(dǎo)體封裝件300-1A的類型不限于此。
例如,半導(dǎo)體封裝件300-1A可以包括半導(dǎo)體基底415-1、設(shè)置在半導(dǎo)體基底415-1上方的第一封裝件PKG1和設(shè)置在第一封裝件PKG1上方的第二封裝件PKG2。第一封裝件PKG1可以通過第一凸點415-2附著或安裝在半導(dǎo)體基底415-1上,并且通過第一凸點415-2向半導(dǎo)體基底415-1發(fā)送電信號或從半導(dǎo)體基底415-1接收電信號。第二封裝件PKG2可以通過第二凸點415-3附著或安裝在第一封裝件PKG1上,并且通過第二凸點415-3向半導(dǎo)體基底415-1發(fā)送電信號或從半導(dǎo)體基底415-1接收電信號。第一封裝件PKG1可以包括控制器310。第二封裝件PKG2可以包括第一橫向擴展控制器411-1、第一易失性存儲器裝置413-1和至少一個NAND型閃存470。例如,當(dāng)橫向擴展存儲裝置410-2、……、410-4中的每個實現(xiàn)為各個封裝件并且附著或安裝在半導(dǎo)體基底415-1上時,控制器310可以通過半導(dǎo)體基底415-1控制橫向擴展存儲裝置410-2、……、410-4中的每個。
再次參照圖2、圖3和圖7,數(shù)據(jù)存儲裝置300包括控制器310和存儲器集群400,多個橫向擴展存儲裝置包括在存儲器集群400中,每個橫向擴展存儲裝置在結(jié)構(gòu)上與圖3中示出的第一橫向擴展存儲裝置410-1基本相同。
圖8A是示出圖1中示出的數(shù)據(jù)處理系統(tǒng)的操作的框圖。參照圖1、圖2、圖7和圖8A,數(shù)據(jù)處理系統(tǒng)100A可以包括主機200和數(shù)據(jù)存儲裝置300A,數(shù)據(jù)存儲裝置300A可以包括控制器310、緩沖器360和存儲器集群400。
存儲器集群400包括第一集群410和第二集群430,第一集群410包括第一橫向擴展存儲裝置410-1,第二集群430包括第二橫向擴展存儲裝置430-1,假設(shè)第一橫向擴展控制器411-1在結(jié)構(gòu)上與第二橫向擴展控制器411-2基本相同。
盡管包括第一橫向擴展存儲裝置410-1的第一集群410與包括第二橫向擴展存儲裝置430-1的第二集群430示例性地示出在圖8A中,但是本發(fā)明構(gòu)思的技術(shù)理念不限于集群410和430中的每個中包括的橫向擴展存儲裝置的數(shù)目。因此,第一集群410可以包括至少一個橫向擴展存儲裝置,第二集群430可以包括至少一個橫向擴展存儲裝置。
假設(shè)控制器310的CPU 330根據(jù)等式1來分配邏輯地址。例如,邏輯地 址可以是邏輯塊地址(LBA)或邏輯頁編號(LPN);然而,它不限于此。
GLPN=iLPN×X+NUM [等式1]
這里,GLPN表示全局邏輯頁編號,iLPN表示第i集群的局域邏輯頁編號,X表示數(shù)據(jù)存儲裝置300A中包括的集群(或多芯片組)的數(shù)目,NUM表示集群編號。在圖8A和圖8B中,假設(shè)X是二(2),第一集群410或第一橫向擴展存儲裝置410-1的NUM是零(0),第二集群430或第二橫向擴展存儲裝置430-1的NUM是一(1)。
另外,假設(shè)表361包括發(fā)送映射信息(在下文,被稱為“第一映射信息”),發(fā)送映射信息是關(guān)于將從主機200輸出的邏輯地址發(fā)送到集群410和430中的哪個。
根據(jù)一些示例性實施例,參照圖8A和圖12,當(dāng)主機200的CPU 220輸出全局邏輯地址(LA0=GLPN0)時,控制器310的CPU 330或由CPU 330執(zhí)行的第一FTL可以使用等式1和/或第一映射信息將全局邏輯地址LA0=GLPN0發(fā)送到與全局邏輯地址LA0=GLPN0對應(yīng)的第一集群410。
第一橫向擴展控制器411-1的CPU 423-1或由CPU 423-1執(zhí)行的第二FTL可以使用存儲在易失性存儲器413-1中的邏輯地址-物理地址映射表TB2將與全局邏輯地址LA0=GLPN0對應(yīng)的局域邏輯地址1LPN0轉(zhuǎn)換成物理地址1PPN0。例如,局域邏輯地址1LPN0可以是邏輯地址-物理地址映射表TB2的入口。
根據(jù)一些示例性實施例,參照圖8A和圖12,當(dāng)主機200的CPU 220輸出局域邏輯地址LA0=1LPN0時,控制器310的CPU 330或由CPU 330執(zhí)行的第一FTL可以使用等式1和/或第一映射信息將局域邏輯地址LA0=1LPN0發(fā)送到與局域邏輯地址LA0=1LPN0對應(yīng)的第一集群410。
第一橫向擴展控制器411-1的CPU 423-1或由CPU 423-1執(zhí)行的第二FTL可以使用存儲在易失性存儲器413-1中的邏輯地址-物理地址映射表TB2將局域邏輯地址1LPN0轉(zhuǎn)換成物理地址1PPN0。
根據(jù)一些示例性實施例,參照圖8A和圖12,當(dāng)主機200的CPU 220輸出全局邏輯地址LA100=GLPN201時,控制器310的CPU 330或由CPU 330執(zhí)行的第一FTL可以使用等式1和/或第一映射信息將全局邏輯地址LA100=GLPN201發(fā)送到與全局邏輯地址LA100=GLPN201對應(yīng)的第二集群430。
當(dāng)?shù)谝粰M向擴展控制器411-1在結(jié)構(gòu)上與第二橫向擴展控制器431-1基本相同時,第二橫向擴展控制器431-1的CPU 423-1或由CPU 423-1執(zhí)行的第三FTL可以使用存儲在易失性存儲器433-1中的邏輯地址-物理地址映射表TB3將與全局邏輯地址LA100=GLPN201對應(yīng)的局域邏輯地址2LPN100轉(zhuǎn)換成物理地址2PPN100。例如,局域邏輯地址2LPN100可以是邏輯地址-物理地址映射表TB3的入口。
根據(jù)一些示例性實施例,參照圖8A和圖12,當(dāng)主機200的CPU 220輸出局域邏輯地址LA100=2LPN100時,控制器310的CPU 330或由CPU 330執(zhí)行的第一FTL可以使用等式1和/或第一映射信息將局域邏輯地址LA100=2LPN100發(fā)送到與局域邏輯地址LA100=2LPN100對應(yīng)的第二集群430。
第二橫向擴展控制器431-1的CPU 423-1或由CPU 423-1執(zhí)行的第三FTL可以使用存儲在易失性存儲器433-1中的邏輯地址-物理地址映射表TB3將局域邏輯地址2LPN100轉(zhuǎn)換成物理地址2PPN100。
如圖12中示出的,第一集群410的全局邏輯地址可以分配為偶數(shù),而第二集群430的全局邏輯地址可以分配為奇數(shù);然而,它不限于此。
圖9是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的交換映射表更新操作的流程圖。參照圖1、圖2、圖8A和圖9,控制器310(例如,CPU 330和/或331)可以將第一請求REQ1發(fā)送到第一橫向擴展控制器(即,第一核)411-1(S101-1)。
例如,第一核411-1可以響應(yīng)于第一請求REQ1將第一核411-1管理的至少一個NAND型閃存裝置NAND的存儲單元陣列中包括的每個塊的磨損計數(shù)與參考磨損計數(shù)進行比較,基于比較的結(jié)果搜索計數(shù)大于參考磨損計數(shù)的塊,并且根據(jù)搜索的結(jié)果產(chǎn)生第一列表LIST1(S103-1)。第一核411-1可以將第一列表LIST1發(fā)送到控制器310(S105-1)。第一列表LIST1可以根據(jù)第一核411-1的控制,存儲在連接到第一核411-1的易失性存儲器裝置413-1和/或至少一個NAND型閃存裝置NAND中。
例如,當(dāng)與邏輯地址(LA0=GLPN0或LA0=1LPN0)對應(yīng)的第一存儲區(qū)域(例如,對應(yīng)于物理地址1PPN0的頁)的磨損計數(shù)大于參考磨損計數(shù)時,第一核411-1可以產(chǎn)生包括第一存儲區(qū)域的邏輯地址(LA0=GLPN0或LA0=1LPN0)的第一列表LIST1(S103-1),并且將第一列表LIST1發(fā)送到主 機200(S105-1)。
如上所述,第一存儲區(qū)域的磨損計數(shù)可以是擦除計數(shù)、編程計數(shù)、讀取計數(shù)、壞塊發(fā)生數(shù)或讀取錯誤發(fā)生數(shù);然而,它不限于此。
另外,第一核411-1可以響應(yīng)于第一請求REQ1確定第一存儲區(qū)域是否是存儲熱數(shù)據(jù)和冷數(shù)據(jù)中的一種的區(qū)域,根據(jù)確定的結(jié)果產(chǎn)生包括第一存儲區(qū)域的邏輯地址(LA0=GLPN0或LA0=1LPN0)的第一列表LIST1(S103-1),并且將第一列表LIST1發(fā)送到主機200(S105-1)。
控制器310(例如,CPU 330和/或331)可以將第二請求REQ2發(fā)送到第二橫向擴展控制器(即,第二核)431-1(S101-2)。
例如,第二核431-1響應(yīng)于第二請求REQ2將第二核431-1管理的至少一個NAND型閃存裝置NAND的存儲單元陣列中包括的每個塊的磨損計數(shù)與參考磨損計數(shù)進行比較,根據(jù)比較的結(jié)果搜索計數(shù)小于參考磨損計數(shù)的塊,并且根據(jù)搜索的結(jié)果產(chǎn)生第二列表LIST2(S103-2)。第二核431-1可以將第二列表LIST2發(fā)送到控制器310(S105-2)。
第二列表LIST2可以根據(jù)第二核431-1的控制,存儲在連接到第二核431-1的易失性存儲器裝置433-1和/或至少一個NAND型閃存裝置NAND中。
例如,當(dāng)與邏輯地址LA100=GLPN201或LA100=2LPN100對應(yīng)的第二存儲區(qū)域(例如,對應(yīng)于物理地址2PPN100的頁)的磨損計數(shù)小于參考磨損計數(shù)時,第二核431-1產(chǎn)生包括第二存儲區(qū)域的邏輯地址LA100=GLPN201或LA100=2LPN100的第二列表LIST2(S103-2),并且將第二列表LIST2發(fā)送到主機200(S105-2)。如上所述,第一存儲區(qū)域的磨損計數(shù)大于第二存儲區(qū)域的磨損計數(shù)。第二存儲區(qū)域的磨損計數(shù)可以是擦除計數(shù)、編程計數(shù)、讀取計數(shù)、壞塊發(fā)生數(shù)或讀取錯誤發(fā)生數(shù);然而,它不限于此。
另外,第二核431-1響應(yīng)于第二請求REQ2確定第二存儲區(qū)域是否是存儲熱數(shù)據(jù)和冷數(shù)據(jù)中的另一種的區(qū)域,根據(jù)確定的結(jié)果產(chǎn)生包括第二存儲區(qū)域的邏輯地址LA100=GLPN201或LA100=2LPN100的第二列表LIST2(S103-2),并且將第二列表LIST2發(fā)送到主機200(S105-2)。
步驟S101-1和S101-2、步驟S103-1和S103-2以及步驟S105-1和S105-2可以同時或以平行方式執(zhí)行。例如,步驟S101-1、步驟S103-1和步驟S105-1中的每個可以先于或遲于步驟S101-2、步驟S103-2和步驟S105-2中的每個來執(zhí)行。
控制器310的CPU 330可以接收第一列表LIST1和第二列表LIST2,基于列表LIST1和LIST2產(chǎn)生如圖11中示出的交換映射表TB1,并且將交換映射表TB1存儲在易失性存儲器360中(S107)。例如,交換映射表TB1可以是表TABLE1的至少一部分。
圖11是用于邏輯地址交換操作的交換映射表的示例性實施例。根據(jù)一些示例性實施例,交換映射表TB1可以包括源全局邏輯地址GPLN0=0和目標(biāo)全局邏輯地址GLPN201=201。根據(jù)一些示例性實施例,交換映射表TB1可以包括源局域邏輯地址1LPN0和目標(biāo)局域邏輯地址2LPN100。
圖10是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的交換映射表更新操作的流程圖。
在圖9中,核411-1響應(yīng)于從控制器310輸出的請求REQ1而產(chǎn)生列表LIST1并將列表LIST1發(fā)送到主機200,核431-1響應(yīng)于從控制器310輸出的請求REQ2而產(chǎn)生列表LIST2并將列表LIST2發(fā)送到主機200。然而,在圖10中,即使沒有來自控制器310的請求,核411-1和431-1中的每個也可以自動地或自發(fā)地產(chǎn)生列表LIST1和LIST2中的每個并將列表LIST1和LIST2中的每個發(fā)送到主機200。
例如,第一核411-1將第一核411-1管理的至少一個NAND型閃存裝置NAND的存儲單元陣列中包括的每個塊的磨損計數(shù)與參考磨損計數(shù)進行比較,根據(jù)比較的結(jié)果搜索計數(shù)大于參考磨損計數(shù)的塊,并且根據(jù)搜索的結(jié)果產(chǎn)生第一列表LIST1(S103-1A)。第一核411-1可以將第一列表LIST1發(fā)送到控制器310(S105-1A)。第一列表LIST1可以根據(jù)第一核411-1的控制,存儲在連接到第一核411-1的易失性存儲器裝置413-1和/或至少一個NAND型閃存裝置NAND中。
例如,當(dāng)與邏輯地址LA0=GLPN0或LA0=1LPN0對應(yīng)的第一存儲區(qū)域(例如,對應(yīng)于物理地址1PPN0的頁)的磨損計數(shù)大于參考磨損計數(shù)時,第一核411-1可以產(chǎn)生包括第一存儲區(qū)域的邏輯地址LA0=GLPN0或LA0=1LPN0的第一列表LIST1(S103-1A),并且將第一列表LIST1發(fā)送到主機200(S105-1A)。
此外,第一核411-1可以確定第一存儲區(qū)域是否是存儲熱數(shù)據(jù)和冷數(shù)據(jù)中的一種的區(qū)域,根據(jù)確定的結(jié)果產(chǎn)生包括第一存儲區(qū)域的邏輯地址LA0=GLPN0或LA0=1LPN0的第一列表LIST1(S103-1A),并且將第一列表 LIST1發(fā)送到主機200(S105-1A)。
例如,第二核431-1可以將第二核431-1管理的至少一個NAND型閃存裝置NAND的存儲單元陣列中包括的每個塊的磨損計數(shù)與參考磨損計數(shù)進行比較,根據(jù)比較的結(jié)果搜索計數(shù)小于參考磨損計數(shù)的塊,并且根據(jù)搜索的結(jié)果產(chǎn)生第二列表LIST2(S103-2A)。第二核431-1可以將第二列表LIST2發(fā)送到控制器310(S 105-2A)。
第二列表LIST2可以根據(jù)第二核431-1的控制,存儲在連接到第二核431-1的易失性存儲器裝置433-1和/或至少一個NAND型閃存裝置NAND中。
例如,當(dāng)與邏輯地址LA100=GLPN201或LA100=2LPN100對應(yīng)的第二存儲區(qū)域(例如,對應(yīng)于物理地址2PPN100的頁)的磨損計數(shù)小于參考磨損計數(shù)時,第二核431-1可產(chǎn)生包括第二存儲區(qū)域的邏輯地址LA100=GLPN201或LA100=2LPN100的第二列表LIST2(S103-2A),并且將第二列表LIST2發(fā)送到主機200(S105-2A)。第一存儲區(qū)域的磨損計數(shù)大于第二存儲區(qū)域的磨損計數(shù)。
此外,第二核431-1可以確定第二存儲區(qū)域是否是存儲熱數(shù)據(jù)和冷數(shù)據(jù)中的另一種的區(qū)域,根據(jù)確定的結(jié)果產(chǎn)生包括第二存儲區(qū)域的邏輯地址LA100=GLPN201或LA100=2LPN100的第二列表LIST2(S103-2A),并且將第二列表LIST2發(fā)送到主機200(S105-2A)。
步驟S 103-1A和S 103-2A以及步驟S105-1A和S105-2A可以同時或以平行方式執(zhí)行。例如,步驟S103-1A和步驟S105-1A中的每個可以先于或遲于步驟S103-2A和步驟S 105-2A中的每個來執(zhí)行。
圖8B是示出圖1中示出的數(shù)據(jù)處理系統(tǒng)執(zhí)行邏輯地址交換操作的操作的框圖。
參照圖8B至圖12,當(dāng)主機200的CPU 220輸出全局邏輯地址LA0=GLPN0時,對應(yīng)于交換后的全局邏輯地址LA100=GLPN201=201(其是使用圖11中示出的交換映射表TB1由全局邏輯地址LA0=GLPN0=0交換的),控制器310的CPU 330或由CPU 330執(zhí)行的第一FTL可以將交換后的全局邏輯地址LA100=GLPN201=201發(fā)送到第二集群430。
第二橫向擴展控制器431-1的CPU 423-1或由CPU 423-1執(zhí)行的第三FTL可以使用存儲在易失性存儲器433-1中的邏輯地址-物理地址映射表TB3將與交換的全局邏輯地址LA100=GLPN201=201對應(yīng)的局域邏輯地址2LPN100轉(zhuǎn) 換成物理地址2PPN100。
圖12是示出邏輯地址、物理地址和全局邏輯地址之間的關(guān)系的概念圖,圖13是描述圖8B中示出的數(shù)據(jù)存儲裝置的數(shù)據(jù)交換操作的概念圖。
參照圖8A至圖13,假設(shè)圖13中示出的第一存儲器映射NAND1表示由第一核411-1管理的至少一個NAND型閃存裝置NAND的總存儲器映射(totalmemory map),第二存儲器映射NAND2表示由第二核431-1管理的至少一個NAND型閃存裝置NAND的總存儲器映射。
在第一存儲器映射NAND1中,假設(shè)第一存儲器區(qū)域10包括第一預(yù)留空間(over-provisioning)區(qū)域12和第一用戶數(shù)據(jù)區(qū)域14,第一預(yù)留空間區(qū)域12包括塊OBlock#0至OBlock#3,第一用戶數(shù)據(jù)區(qū)域14包括塊Block#0至Block#3,塊OBlock#0至OBlock#3以及塊Block#0至Block#3中的每個包括頁Page#0至Page#127。
此外,在第二存儲器映射NAND2中,假設(shè)第二存儲器區(qū)域20包括第二預(yù)留空間區(qū)域22和第二用戶數(shù)據(jù)區(qū)域24,第二預(yù)留空間區(qū)域22包括塊OBlock#0至OBlock#3,第二用戶數(shù)據(jù)區(qū)域24包括塊Block#0至Block#3,塊OBlock#0至OBlock#3的每個包括頁OPage#0至OPage#127,塊Block#0至Block#3中的每個包括頁Page#0至Page#127。
再次參照圖12,假設(shè)映射表TB2的第一入口(entry)PA101是用于對第一存儲器區(qū)域10的第一用戶數(shù)據(jù)區(qū)域14進行邏輯地址-物理地址映射的入口,映射表TB2的第二入口PA103是用于對第一存儲器區(qū)域10的第一預(yù)留空間區(qū)域12進行邏輯地址-物理地址映射的入口。
此外,假設(shè)映射表TB3的第一入口PA201是用于對第二存儲器區(qū)域20的第二用戶數(shù)據(jù)區(qū)域24進行邏輯地址-物理地址映射的入口,映射表TB3的第二入口PA203是用于對第二存儲器區(qū)域20的第二預(yù)留空間區(qū)域22進行邏輯地址-物理地址映射的入口。邏輯地址LA0=GLPN0或LA0=1LPN0是與圖13的第一存儲器區(qū)域10的頁16對應(yīng)的地址,邏輯地址LA100=GLPN201或LA100=2LPN100是與圖13的第二存儲器區(qū)域20的頁26對應(yīng)的地址。
參照圖8B、圖12和圖13,當(dāng)邏輯地址LA0=GLPN0或LA0=1LPN0是用于編程(或?qū)懭?操作的邏輯地址時,控制器310可以將從主機200輸出的編程數(shù)據(jù)寫入第二存儲區(qū)域(例如,第二存儲器區(qū)域20)的第二用戶數(shù)據(jù)區(qū)域24的第一塊Block#0的第二頁Page#1或26中,第二頁Page#1或26由 與交換的邏輯地址LA100=GLPN201或LA100=2LPN100對應(yīng)的物理地址2PPN100指定。
即,控制器310可以將編程數(shù)據(jù)編入第二存儲器區(qū)域20的第二用戶數(shù)據(jù)區(qū)域24的第一塊Block#0的第二頁Page#1或26中,而不是第一存儲器區(qū)域10的第一用戶數(shù)據(jù)區(qū)域14的第一塊Block#0的第一頁Page#0或16中。
如CASE1中示出的,控制器310可以使存儲在第一存儲器區(qū)域10的第一用戶數(shù)據(jù)區(qū)域14的第一塊Block#0的第一頁Page#0或16中的第一數(shù)據(jù)與存儲在第二存儲器區(qū)域20的第二用戶數(shù)據(jù)區(qū)域24的第一塊Block#0的第二頁Page#1或26中的第二數(shù)據(jù)交換。因此,第二數(shù)據(jù)可以存儲在第一頁Page#0或16中,第一數(shù)據(jù)可以存儲在第二頁Page#1或26中。
當(dāng)邏輯地址LA0=GLPN0或LA0=1LPN0是用于讀取第一數(shù)據(jù)的邏輯地址時,控制器310可以將交換的邏輯地址LA100=GLPN201或LA100=2LPN100發(fā)送到第二核431-1。因此,第二核431-1可以將存儲在與交換的邏輯地址LA100=GLPN201或LA100=2LPN100對應(yīng)的第二頁Page#1或26中的第一數(shù)據(jù)發(fā)送到控制器310,控制器310可以將第一數(shù)據(jù)發(fā)送到主機200。
換言之,根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的數(shù)據(jù)存儲裝置300或300A可以使用圖11的交換映射表TB1將需要磨損平衡的數(shù)據(jù)的邏輯地址(例如,LA0)改變成或交換成另一個邏輯地址(例如,LA100)。因此,數(shù)據(jù)存儲裝置300或300A可以支持集群410與430之間或者橫向擴展存儲裝置410-1與430-1之間的全局磨損平衡。
如圖8A、圖8B及圖13中示出的,控制器310可以使第一橫向擴展存儲裝置410-1的磨損平衡源塊(例如,具有大磨損計數(shù)的塊)或磨損平衡源塊的存儲區(qū)域(例如,16)的邏輯地址(例如,LA0)與第二橫向擴展存儲裝置430-1的磨損平衡目標(biāo)塊(例如,具有小磨損計數(shù)的塊)或磨損平衡目標(biāo)塊的存儲區(qū)域(例如,26)的邏輯地址(例如,LA100)交換。因此,數(shù)據(jù)存儲裝置300或300A可以對集群410和430或者橫向擴展存儲裝置410-1和430-1執(zhí)行磨損平衡(即,全局磨損平衡)。
圖8B、圖12和圖13中示出的CASE2是用于描述使第一存儲器區(qū)域10的第一用戶數(shù)據(jù)區(qū)域14的第一存儲區(qū)域16的邏輯地址(LA0=GLPN0或LA0=1LPN0)與第二存儲器區(qū)域20的第二預(yù)留空間區(qū)域22的第三存儲區(qū)域 36的邏輯地址(LA101=GLPN203或LA101=2LPN101)進行映射、改變或交換的方法的概念圖。
控制器310可以將第一橫向擴展存儲裝置410-1的磨損平衡源塊(例如,具有大磨損計數(shù)的塊)或磨損平衡源塊的存儲區(qū)域(例如,16)的邏輯地址(例如,LA101)映射到第二橫向擴展存儲裝置430-1的隱藏目標(biāo)塊(例如,具有小磨損計數(shù)的塊)或隱藏目標(biāo)塊的存儲區(qū)域(例如,36)的邏輯地址(例如,LA0)上。例如,存儲區(qū)域(例如,36)可以存在于第二預(yù)留空間區(qū)域22中。
圖14是用于邏輯地址交換操作的交換映射表的示例性實施例。參照圖9、圖10和圖14,第一核411-1可以響應(yīng)于第一請求REQ1或自動地將第一核411-1管理的至少一個NAND型閃存裝置NAND的存儲單元陣列中包括的每個塊的磨損計數(shù)與參考磨損計數(shù)進行比較,根據(jù)比較的結(jié)果搜索計數(shù)大于參考磨損計數(shù)的塊,并且根據(jù)搜索的結(jié)果產(chǎn)生第一列表LIST1(S103-1或S103-1A)。第一核411-1可以將第一列表LIST1發(fā)送到控制器310(S105-1或S105-1A)。第一列表LIST1可以在第一核411-1的控制下存儲在連接到第一核411-1的易失性存儲器裝置413-1和/或至少一個NAND型閃存裝置NAND中。
第二核431-1可以響應(yīng)于第二請求REQ2或自動地將第二核431-1管理的至少一個NAND型閃存裝置NAND的第二預(yù)留空間區(qū)域22中包括的塊OBlock#0至OBlock#3的每個的磨損計數(shù)與參考磨損計數(shù)進行比較,根據(jù)比較的結(jié)果搜索計數(shù)小于參考磨損計數(shù)的塊,并且根據(jù)搜索的結(jié)果產(chǎn)生第二列表LIST2(S103-2或S103-2A)。第二核431-1可以將第二列表LIST2發(fā)送到控制器310(S105-2或S105-2A)。第二列表LIST2可以根據(jù)第二核431-1的控制,存儲在連接到第二核431-1的易失性存儲器433-1和/或至少一個NAND型閃存裝置NAND中。
控制器310的CPU 330可以接收第一列表LIST1和第二列表LIST2,基于列表LIST1和LIST2產(chǎn)生如圖14中示出的映射表TB4,并且將映射表TB4存儲在易失性存儲器360中(S107)。例如,映射表TB4可以是表TABLE1的至少一部分。
當(dāng)如CASE2中示出的,邏輯地址LA0=GLPN0或LA0=1LPN0是用于編程(或?qū)懭?操作的邏輯地址時,控制器310可以將從主機200輸出的編程 數(shù)據(jù)寫入第三存儲區(qū)域(例如,第二存儲器區(qū)域20)的第二預(yù)留空間區(qū)域22的第一塊Block#0的第一頁OPage#0或36中,第一頁OPage#0或36由與圖14中示出的邏輯地址LA101=GLPN203=203或LA101=2LPN101對應(yīng)的物理地址2PPN101指定。
即,控制器310可以將編程數(shù)據(jù)編入第二存儲器區(qū)域20的第三存儲區(qū)域OPage#0或36中,而不是第一存儲器區(qū)域10的第一存儲區(qū)域Page#0或16中。因此,第二存儲器區(qū)域20的有效頁會增加。
當(dāng)在數(shù)據(jù)存儲裝置300或300A中包括的集群410與430之間或在數(shù)據(jù)存儲裝置300或300A中包括的橫向擴展存儲裝置410-1與430-1之間出現(xiàn)性能上的不平衡時,控制器310可以控制預(yù)留空間區(qū)域12和22中每個的大小以便控制或消除性能上的不平衡。
例如,當(dāng)?shù)谝粰M向擴展存儲裝置410-1的性能相對地低于第二橫向擴展存儲裝置430-1的性能時,控制器310可以將存儲在第一存儲器區(qū)域10的第一存儲區(qū)域16中的冷數(shù)據(jù)移動或轉(zhuǎn)移到第二存儲器區(qū)域20的第三存儲區(qū)域36。因此,第一橫向擴展存儲裝置410-1的第一存儲器區(qū)域10的第一預(yù)留空間區(qū)域12會增加,可以提高第一橫向擴展存儲裝置410-1的性能。
作為另一個示例性實施例,當(dāng)?shù)谝粰M向擴展存儲裝置410-1的性能相對地低于第二橫向擴展存儲裝置430-1的性能時,控制器310可以使用核411-1和431-1將存儲在第一存儲器區(qū)域10的第一存儲區(qū)域16中的熱數(shù)據(jù)移動或轉(zhuǎn)移到第二存儲器區(qū)域20的第三存儲區(qū)域36。因此,第一橫向擴展存儲裝置410-1的工作負擔(dān)會分散到第二橫向擴展存儲裝置430-1,從而可以提高第一橫向擴展存儲裝置410-1的性能。
當(dāng)?shù)诙M向擴展存儲裝置430-1的性能相對地低于第一橫向擴展存儲裝置410-1的性能時,控制器310可以使用核411-1和431-1將存儲在第二存儲器區(qū)域20的第二用戶數(shù)據(jù)區(qū)域24中的冷數(shù)據(jù)或熱數(shù)據(jù)移動到第一存儲器區(qū)域10的第一預(yù)留空間區(qū)域12。
熱數(shù)據(jù)是由主機200或控制器310相對頻繁地存取的數(shù)據(jù),冷數(shù)據(jù)是由主機200或控制器310相對不頻繁地存取的數(shù)據(jù)。
如上所述,當(dāng)?shù)谝粰M向擴展存儲裝置410-1的性能和持久性(生命期或壽命)中的至少一者不同于第二橫向擴展存儲裝置430-1的性能和持久性中的至少一者時,控制器310可以使用參照圖11和圖14描述的映射表將用于 存儲熱數(shù)據(jù)的存儲區(qū)域的邏輯地址與用于存儲冷數(shù)據(jù)的存儲區(qū)域的邏輯地址交換,或者將熱數(shù)據(jù)與冷數(shù)據(jù)交換。在這種方法中,可以消除橫向擴展存儲裝置410-1與430-1之間在性能和/或持久性(生命期或壽命)上的差異。
圖15是描述當(dāng)交換映射表被包括在橫向擴展存儲裝置中時數(shù)據(jù)存儲裝置的操作的概念圖。如圖8A和圖8B中示出的,參照圖11和圖14描述的映射表TB1或TB4可以存儲在由控制器310使用的緩沖器360(例如,DRAM)中。每個映射表TB1或TB4可以是映射表TABLE1的一部分或全部。然而,參照圖11和圖14描述的映射表TB1或TB4可以存儲在由橫向擴展控制器411-1和431-1中的每個管理的易失性存儲器裝置413-1和433-1中的每個中。
在本說明書中,示出了映射表TB1至TB4中的每個存儲在映射表TB1至TB4中的每個的外部的易失性存儲器360、413-1或433-1中;然而,映射表TB1至TB4中的每個可以存儲在控制器310、411-1或431-1的內(nèi)部的易失性存儲器315或425中。
參照圖15,參照圖11和圖14描述的映射表(TB1或TB4,統(tǒng)稱“TABLE1”)可以存儲在易失性存儲器裝置413-1和433-1中。每個橫向擴展控制器(或核411-1和431-1中的每個)可以產(chǎn)生將要參照圖9或圖10描述的列表LIST1和LIST2中的每個,并且使用列表LIST1和LIST2中的每個將映射表TB1或TB4(統(tǒng)稱“TABLE1”)存儲在易失性存儲器裝置413-1和433-1中。
易失性存儲器裝置413-1可以存儲圖12中示出的邏輯地址-物理地址映射表TABLE2=TB2,易失性存儲器433-1可以存儲圖12中示出邏輯地址-物理地址映射表TABLE3=TB3。
例如,第一橫向擴展控制器411-1可以通過控制器310或?qū)S镁€將第一列表LIST1發(fā)送到第二橫向擴展控制器431-1。此外,第二橫向擴展控制器431-1可以通過控制器310或?qū)S镁€將第二列表LIST2發(fā)送到第一橫向擴展控制器411-1。
參照圖8B至圖15,當(dāng)邏輯地址LA0是用于編程(或?qū)懭?操作的邏輯地址時,控制器310可以通過第一主通道CHA將從主機200輸出的邏輯地址LA0和編程數(shù)據(jù)發(fā)送到第一橫向擴展控制器411-1。
第一橫向擴展控制器411-1可以使用存儲在易失性存儲器裝置413-1中的映射表TABLE1=TB1將邏輯地址LA0改變成交換的邏輯地址LA201=GLPN201或LA201=2LPN100,并且通過控制器310或?qū)S镁€將交換 的邏輯地址LA201=GLPN201或LA201=2LPN100輸出到第二橫向擴展控制器431-1。此時,第一橫向擴展控制器411-1可以通過控制器310或?qū)S镁€將從主機200輸出編程數(shù)據(jù)輸出到第二橫向擴展控制器431-1。
第二橫向擴展控制器431-1可以參考(或使用)存儲在易失性存儲器433-1中的映射表TB3將邏輯地址LA201=GLPN201或LA201=2LPN100轉(zhuǎn)換為物理地址2PPN100,并將從第一橫向擴展控制器411-1發(fā)送的編程數(shù)據(jù)編入與物理地址2PPN100對應(yīng)的第二存儲區(qū)域26中。
當(dāng)邏輯地址LA0是用于讀取操作的邏輯地址時,控制器310可以通過第一主通道CHA將從主機200輸出的邏輯地址LA0發(fā)送到第一橫向擴展控制器411-1。
第一橫向擴展控制器411-1可以通過控制器310或?qū)S镁€將與邏輯地址LA0對應(yīng)的交換的邏輯地址LA201=GLPN201或LA201=2LPN100輸出到第二橫向擴展控制器431-1。
第二橫向擴展控制器431-1可以參考(或使用)存儲在易失性存儲器433-1中的映射表TB3將邏輯地址LA201=GLPN201或LA201=2LPN100轉(zhuǎn)換成物理地址2PPN100,從與物理地址2PPN100對應(yīng)的第二存儲區(qū)域26讀取數(shù)據(jù),并通過第二主通道CHB將讀取的數(shù)據(jù)發(fā)送到控制器310。控制器310可以將從第二存儲區(qū)域26輸出的數(shù)據(jù)發(fā)送到主機200。
當(dāng)邏輯地址LA0是用于編程(或?qū)懭?操作的邏輯地址時,控制器310可以通過第一主通道CHA將從主機200輸出的邏輯地址LA0和編程數(shù)據(jù)發(fā)送到第一橫向擴展控制器411-1。
第一橫向擴展控制器411-1可以使用存儲在易失性存儲器裝置413-1中的映射表TABLE1=TB4將邏輯地址LA0改變成映射的邏輯地址LA203=GLPN203或LA203=2LPN101,并且通過控制器310或?qū)S镁€將邏輯地址LA203=GLPN203或LA203=2LPN101輸出到第二橫向擴展控制器431-1。此時,第一橫向擴展控制器411-1可以通過控制器310或?qū)S镁€將從主機200輸出的編程數(shù)據(jù)輸出到第二橫向擴展控制器431-1。
第二橫向擴展控制器431-1可以參考(或使用)存儲在易失性存儲器433-1中的映射表TB3將邏輯地址LA203=GLPN203或LA203=2LPN101轉(zhuǎn)換成物理地址2PPN101,并將從第一橫向擴展控制器411-1發(fā)送的編程數(shù)據(jù)編入與物理地址2PPN101對應(yīng)的第三存儲區(qū)域36中。
當(dāng)邏輯地址LA0是用于讀取操作的邏輯地址時,控制器310可以通過第一主通道CHA將從主機200輸出的邏輯地址LA0發(fā)送到第一橫向擴展控制器411-1。
第一橫向擴展控制器411-1可以使用存儲在易失性存儲器裝置413-1中的映射表TABLE1=TB4通過控制器310或?qū)S镁€將與邏輯地址LA0對應(yīng)的交換的邏輯地址LA203=GLPN203或LA203=2LPN101輸出到第二橫向擴展控制器431-1。
第二橫向擴展控制器431-1可以參考存儲在易失性存儲器433-1中的映射表TB3將邏輯地址LA203=GLPN203或LA203=2LPN101轉(zhuǎn)換成物理地址2PPN101,從與物理地址2PPN101對應(yīng)的第三存儲區(qū)域36讀取數(shù)據(jù),并通過第二主通道CHB將讀取的數(shù)據(jù)發(fā)送到控制器310。控制器310可以將從第三存儲區(qū)域36輸出的數(shù)據(jù)發(fā)送到主機200。
圖16是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖。參照圖1至圖16,數(shù)據(jù)處理系統(tǒng)100B可以包括主機200和DRAM-less數(shù)據(jù)存儲裝置300B。例如,數(shù)據(jù)處理系統(tǒng)100B可以實現(xiàn)為平板PC或eMMC。DRAM-less數(shù)據(jù)存儲裝置300B可以包括控制器310-1和存儲器集群400。
緩沖器控制器340-1不對外部緩沖器或外部DRAM執(zhí)行數(shù)據(jù)處理。在寫入操作或讀取操作期間,緩沖器控制器340-1可以使用內(nèi)部緩沖器341將數(shù)據(jù)發(fā)送到第二接口320或第三接口350。除了緩沖器控制器340-1的操作之外,圖16的控制器310-1在結(jié)構(gòu)和操作上與圖1的控制器310基本相同或基本相似,從而將省略對控制器310-1的具體描述。
圖17是示出根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖。參照圖1至圖17,數(shù)據(jù)處理系統(tǒng)500可以包括數(shù)據(jù)庫520、數(shù)據(jù)庫服務(wù)器530、第二網(wǎng)絡(luò)540和多個客戶計算機550和551。數(shù)據(jù)中心、互聯(lián)網(wǎng)數(shù)據(jù)中心或云數(shù)據(jù)中心510可以包括數(shù)據(jù)庫520和數(shù)據(jù)庫服務(wù)器530。
數(shù)據(jù)庫520可以包括多個數(shù)據(jù)存儲裝置300、300A或300B(統(tǒng)稱“300”)。多個數(shù)據(jù)存儲裝置300可以安裝在機架(rack)中。每個數(shù)據(jù)存儲裝置300的結(jié)構(gòu)和操作與參照圖1至圖16描述的數(shù)據(jù)存儲裝置300的結(jié)構(gòu)和操作基本相同或基本相似。
數(shù)據(jù)庫服務(wù)器530可以控制多個數(shù)據(jù)存儲裝置300中的每個的操作。例如,數(shù)據(jù)庫服務(wù)器530可以執(zhí)行圖1中示出的主機200的功能。數(shù)據(jù)庫服務(wù) 器530可以通過第一網(wǎng)絡(luò)535(例如,局域網(wǎng)(LAN))連接到第二無線網(wǎng)絡(luò)540(例如,互聯(lián)網(wǎng)或Wi-Fi)。多個客戶計算機550和551中的每個可以通過第二網(wǎng)絡(luò)540連接到數(shù)據(jù)庫服務(wù)器530。
圖18是示出圖8A或圖8B中示出的數(shù)據(jù)存儲裝置的操作的流程圖。參照圖8A至圖18,控制器310可以從主機200接收邏輯地址(S210)。當(dāng)邏輯地址是用于寫入操作的邏輯地址(S220中的“是”)時,控制器310可以從主機200接收數(shù)據(jù)DATA(S230)。
如圖8A中示出的,當(dāng)邏輯地址LA0和LA100中的每個不交換(S240中的“否”)時,橫向擴展控制器411-1和431-1中的每個可以將數(shù)據(jù)DATA的每個編入(或?qū)懭?與邏輯地址LA0和LA100中的每個對應(yīng)的每個區(qū)域中(S242)。然而,如圖8B中示出的,當(dāng)邏輯地址交換(S240中的“是”)時,橫向擴展控制器431-1可以使用映射表(圖11的TB1或圖14的TB4)將數(shù)據(jù)DATA編入與交換的邏輯地址對應(yīng)的區(qū)域中(例如,圖13的26或36中)(S244)。
當(dāng)從主機200輸出的邏輯地址是用于讀取操作的邏輯地址(S220中的“否”)時,控制器310可以確定邏輯地址是否交換(S250)。
如圖8A中示出的,當(dāng)邏輯地址LA0和LA100中的每個不交換(S250中的“否”)時,橫向擴展控制器411-1和431-1中的每個可以從與邏輯地址LA0和LA100中的每個對應(yīng)的每個區(qū)域讀取數(shù)據(jù),并且將數(shù)據(jù)輸出到控制器310(S252)。控制器310可以將數(shù)據(jù)輸出到主機200。
然而,如圖8B中示出的,當(dāng)邏輯地址交換(S250中“是”)時,橫向擴展控制器431-1可以使用映射表(圖11的TB1或圖14的TB4)從與交換的邏輯地址對應(yīng)的區(qū)域(例如,26或36)讀取數(shù)據(jù),并且將數(shù)據(jù)輸出到控制器310(S254)??刂破?10可以將數(shù)據(jù)輸出到主機200。
根據(jù)本發(fā)明構(gòu)思的一些示例性實施例的包括橫向擴展存儲裝置的數(shù)據(jù)存儲裝置的總體持久性(或生命期或壽命)和總體性能可以提高。
因為基于每個橫向擴展存儲裝置中包括的每個存儲器芯片的磨損計數(shù)或存儲器芯片中包括的每個塊的磨損,源塊的邏輯地址可以與目標(biāo)塊的邏輯地址交換,所以數(shù)據(jù)存儲裝置可以執(zhí)行橫向擴展存儲裝置中的全局磨損平衡。
因為基于每個橫向擴展存儲裝置中包括的每個存儲器芯片的磨損計數(shù)或存儲器芯片中包括的每個塊的磨損,源塊的邏輯地址可以與目標(biāo)塊的邏輯地 址交換,所以數(shù)據(jù)存儲裝置可以均勻地控制每個橫向擴展存儲裝置的性能和持久性(或生命期或壽命)。
雖然已經(jīng)示出并描述了給出的總體發(fā)明構(gòu)思的一些實施例,但本領(lǐng)域的技術(shù)人員將理解的是,在不脫離總體發(fā)明構(gòu)思的原理和精神的情況下,可以在這些實施例中做出改變,其中,總體發(fā)明構(gòu)思的范圍限定在所附權(quán)利要求及其等同物中。