對(duì)相關(guān)申請(qǐng)的交叉引用
要求于2015年11月23日向韓國(guó)知識(shí)產(chǎn)權(quán)局提交的第10-2015-0164258號(hào)韓國(guó)專利申請(qǐng)的優(yōu)先權(quán),該韓國(guó)專利申請(qǐng)的全部?jī)?nèi)容通過引用合并于此。
在本文中所公開的發(fā)明構(gòu)思涉及一種電子設(shè)備,并且具體地,涉及一種存儲(chǔ)設(shè)備和存儲(chǔ)設(shè)備的操作方法。
背景技術(shù):
隨著對(duì)于使用諸如社交網(wǎng)絡(luò)服務(wù)(sns)的網(wǎng)絡(luò)的服務(wù)的使用增加,針對(duì)服務(wù)器設(shè)備管理至/來(lái)自網(wǎng)絡(luò)的請(qǐng)求和響應(yīng)的需求最近增加。在sns中,用戶可以是內(nèi)容消費(fèi)方和內(nèi)容供應(yīng)方兩者。當(dāng)由多個(gè)用戶消費(fèi)/提供內(nèi)容時(shí),服務(wù)器設(shè)備管理的內(nèi)容的量增加。
可以增加由sns使用的服務(wù)器設(shè)備的數(shù)量以管理增加的內(nèi)容。然而,服務(wù)器設(shè)備可能是非常昂貴的,并且增加服務(wù)器設(shè)備的數(shù)量可能需要巨大的費(fèi)用。因此,對(duì)于在不增加服務(wù)器設(shè)備的數(shù)量的情況下高效地處理增加的內(nèi)容的成本存在關(guān)注。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明構(gòu)思的實(shí)施例提供一種支持服務(wù)器設(shè)備的功能的存儲(chǔ)設(shè)備和存儲(chǔ)設(shè)備的操作方法。此外,本發(fā)明構(gòu)思的實(shí)施例提供一種在支持服務(wù)器設(shè)備的功能時(shí)提高操作速度的存儲(chǔ)設(shè)備以及存儲(chǔ)設(shè)備的操作方法。
本發(fā)明構(gòu)思的實(shí)施例提供一種存儲(chǔ)設(shè)備,包括:接口電路,被配置為與外部設(shè)備進(jìn)行通信;非易失性存儲(chǔ)器設(shè)備,形成多個(gè)分區(qū);以及處理電路,被配置為從接口電路接收寫入請(qǐng)求、鍵和值,根據(jù)所接收的鍵生成分區(qū)標(biāo)識(shí)符和排序標(biāo)識(shí)符,使用分區(qū)標(biāo)識(shí)符來(lái)選擇分區(qū)之一,以及使用與所選擇的分區(qū)相對(duì)應(yīng)的累積鍵的索引中所包括的排序標(biāo)識(shí)符來(lái)對(duì)索引進(jìn)行排序。
本發(fā)明構(gòu)思的實(shí)施例提供一種存儲(chǔ)設(shè)備,包括:接口電路,被配置為與外部設(shè)備進(jìn)行通信;非易失性存儲(chǔ)器設(shè)備,形成多個(gè)分區(qū);以及處理電路,被配置為從接口電路接收讀取請(qǐng)求和鍵,根據(jù)所接收的鍵生成分區(qū)標(biāo)識(shí)符和排序標(biāo)識(shí)符,使用分區(qū)標(biāo)識(shí)符來(lái)選擇分區(qū)之一,以及使用排序標(biāo)識(shí)符來(lái)搜索存儲(chǔ)在所選擇的分區(qū)中的索引。
本發(fā)明構(gòu)思的實(shí)施例提供一種包括非易失性存儲(chǔ)器設(shè)備的存儲(chǔ)設(shè)備的操作方法,該操作方法包括:在存儲(chǔ)設(shè)備處接收多個(gè)鍵和與鍵分別地相對(duì)應(yīng)的值;在存儲(chǔ)設(shè)備處生成包括與鍵分別地相對(duì)應(yīng)的多個(gè)排序標(biāo)識(shí)符的多個(gè)索引;在存儲(chǔ)設(shè)備處基于排序標(biāo)識(shí)符以第一塊大小為單位對(duì)索引進(jìn)行排序并且將所排序的索引存儲(chǔ)在非易失性存儲(chǔ)器設(shè)備中;以第二塊大小為單位將鍵和值存儲(chǔ)在非易失性存儲(chǔ)器設(shè)備中;以及當(dāng)在存儲(chǔ)設(shè)備處確定與特定鍵相對(duì)應(yīng)的值被請(qǐng)求時(shí),以第一塊大小為單位、使用與特定鍵相對(duì)應(yīng)的排序標(biāo)識(shí)符來(lái)搜索索引。
本發(fā)明構(gòu)思的實(shí)施例提供一種包括非易失性存儲(chǔ)器設(shè)備的存儲(chǔ)設(shè)備的操作方法。該操作方法可以包括在存儲(chǔ)設(shè)備處接收寫入請(qǐng)求和寫入數(shù)據(jù),以及在非易失性存儲(chǔ)器設(shè)備處寫入根據(jù)寫入數(shù)據(jù)生成的索引和寫入數(shù)據(jù)。可以以固定大小為單位在非易失性存儲(chǔ)器設(shè)備處寫入索引,并且索引可以包括以預(yù)先確定的周期定位的圖案(pattern)。圖案可以具有順序地增大或減小的值,并且可以按照所接收的寫入請(qǐng)求的次序?qū)懭霐?shù)據(jù)順序地寫入非易失性存儲(chǔ)器設(shè)備中。
本發(fā)明構(gòu)思的實(shí)施例提供:接口電路,被配置為與外部設(shè)備進(jìn)行通信;非易失性存儲(chǔ)器設(shè)備,形成多個(gè)分區(qū);以及處理電路,被配置為從接口電路接收存取請(qǐng)求和鍵,根據(jù)所接收的鍵生成分區(qū)標(biāo)識(shí)符和排序標(biāo)識(shí)符,使用分區(qū)標(biāo)識(shí)符來(lái)選擇分區(qū)之一,以及使用與所選擇的分區(qū)相對(duì)應(yīng)的累積鍵的索引中所包括的排序標(biāo)識(shí)符來(lái)對(duì)索引進(jìn)行排序,以及響應(yīng)于存取請(qǐng)求使用所生成的排序標(biāo)識(shí)符來(lái)搜索在所選擇的分區(qū)中所存儲(chǔ)的索引。存取請(qǐng)求可以是寫入請(qǐng)求或讀取請(qǐng)求。
附圖說明
根據(jù)參考下面附圖的以下描述,以上和其他對(duì)象和特征將變得明顯,其中,除非另外說明,否則貫穿各個(gè)附圖相同附圖標(biāo)記指代相同部件,并且在附圖中,
圖1圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的服務(wù)器設(shè)備的框圖;
圖2圖示出處理器基于鍵-值存儲(chǔ)來(lái)處理寫入請(qǐng)求的示例的圖;
圖3圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的服務(wù)器設(shè)備的框圖;
圖4圖示出主機(jī)和根據(jù)本發(fā)明構(gòu)思的實(shí)施例的服務(wù)器設(shè)備的存儲(chǔ)設(shè)備之一與彼此進(jìn)行通信的示例的流程圖;
圖5圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備的框圖;
圖6圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備的操作方法的流程圖;
圖7圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備的寫入方法的流程圖;
圖8圖示出其中標(biāo)識(shí)符計(jì)算器生成分區(qū)標(biāo)識(shí)符計(jì)算器和排序標(biāo)識(shí)符的示例的圖;
圖9圖示出對(duì)iab緩沖器和oab緩沖器進(jìn)行分區(qū)的示例的框圖;
圖10、圖11、圖12、圖13、圖14和圖15圖示出對(duì)象處理電路接收和處理對(duì)象的過程的圖;
圖16圖示出其中在非易失性存儲(chǔ)器設(shè)備的第k索引分區(qū)處寫入iab的示例;
圖17圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備的讀取方法的流程圖;
圖18圖示出其中iab搜索單元確定匹配的方法的流程圖;
圖19圖示出其中使用排序標(biāo)識(shí)符來(lái)執(zhí)行搜索操作的示例;
圖20圖示出其中在第k分區(qū)處寫入iab和oab的示例;
圖21和圖22圖示出使用iab緩沖器、oab緩沖器和非易失性存儲(chǔ)器設(shè)備的示例的圖;
圖23圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備的框圖;
圖24圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備被應(yīng)用至其的服務(wù)器系統(tǒng)的框圖;
圖25圖示出其中安裝有根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備的服務(wù)器設(shè)備的框圖;
圖26圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的非易失性存儲(chǔ)器設(shè)備的框圖;以及
圖27圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)塊的電路圖。
具體實(shí)施方式
現(xiàn)在將參考附圖更全面地描述本發(fā)明構(gòu)思的示例性實(shí)施例。
圖1圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的服務(wù)器設(shè)備10的框圖。參考圖1,服務(wù)器設(shè)備100包括處理器11、主存儲(chǔ)器12、調(diào)制解調(diào)器13和存儲(chǔ)設(shè)備14。
處理器11可以響應(yīng)于外部設(shè)備的請(qǐng)求來(lái)訪問存儲(chǔ)設(shè)備14。例如,處理器11可以響應(yīng)于外部設(shè)備的請(qǐng)求從存儲(chǔ)設(shè)備14讀取數(shù)據(jù),或在存儲(chǔ)設(shè)備14處寫入數(shù)據(jù)。處理器11可以執(zhí)行在存儲(chǔ)設(shè)備處14處寫入數(shù)據(jù)時(shí)完成的以及在從存儲(chǔ)設(shè)備14讀取數(shù)據(jù)時(shí)完成的算術(shù)和控制操作。處理器11可以使用主存儲(chǔ)器12作為工作存儲(chǔ)器、緩沖存儲(chǔ)器、高速緩存存儲(chǔ)器或者臨時(shí)存儲(chǔ)器。處理器11可以通過調(diào)制解調(diào)器13從外部設(shè)備接收請(qǐng)求或可以通過調(diào)制解調(diào)器13向外部設(shè)備傳送響應(yīng)。處理器11、主存儲(chǔ)器12和調(diào)制解調(diào)器13可以操作為存儲(chǔ)設(shè)備14的主機(jī)(host)。
可以基于邏輯地址(lba)可訪問存儲(chǔ)設(shè)備14。例如,可以由處理器11將邏輯地址指配給每個(gè)存儲(chǔ)設(shè)備14。可以通過指配的邏輯地址(基于lba)來(lái)區(qū)分每個(gè)存儲(chǔ)設(shè)備14的存儲(chǔ)空間。
例如,存儲(chǔ)設(shè)備14可以從處理器11接收邏輯地址和寫入數(shù)據(jù),并且可以在邏輯地址指示的存儲(chǔ)空間處將寫入數(shù)據(jù)寫入。存儲(chǔ)設(shè)備14可以從處理器11接收邏輯地址并且可以從邏輯地址指示的存儲(chǔ)空間讀取數(shù)據(jù)??梢韵蛱幚砥?1提供讀取的數(shù)據(jù)。
服務(wù)器設(shè)備10可以通過調(diào)制解調(diào)器13從外部設(shè)備接收寫入請(qǐng)求或讀取請(qǐng)求。可以基于鍵-值存儲(chǔ)來(lái)執(zhí)行寫入請(qǐng)求或讀取請(qǐng)求。
圖2圖示出處理器11基于鍵-值存儲(chǔ)來(lái)處理寫入請(qǐng)求的示例的圖。參考圖1和圖2,處理器11從外部設(shè)備接收包括鍵和值的寫入請(qǐng)求。值可以包括寫入數(shù)據(jù)。鍵可以是值的唯一標(biāo)識(shí)符。鍵和值的對(duì)可以稱作對(duì)象obj。
在寫入操作期間,可以請(qǐng)求處理器11在例如是以斜線標(biāo)記的部分的存儲(chǔ)設(shè)備14的邏輯地址區(qū)域lba_r處存儲(chǔ)鍵和值。
在讀取操作期間,處理器11可以從外部設(shè)備接收鍵并且可以使用鍵來(lái)讀取值。例如,當(dāng)在邏輯地址區(qū)域lba_r處存儲(chǔ)鍵和值時(shí),處理器11可以生成索引ind,其以表格形式指示在其處存儲(chǔ)鍵和值的區(qū)域的邏輯地址lba與識(shí)別符id_key之間的關(guān)系。識(shí)別符id_key可以是鍵,或根據(jù)鍵所生成的并且與鍵相關(guān)聯(lián)的信息。
如果生成了索引ind,則處理器11可以從索引之中搜索與鍵相對(duì)應(yīng)的索引,并且可以基于找到的索引來(lái)獲取在其處存儲(chǔ)鍵和值的邏輯地址lba。
就存儲(chǔ)設(shè)備14的可擴(kuò)展性而言,參考圖1和圖2所描述的服務(wù)器設(shè)備10可能受到限制。例如,如果服務(wù)器設(shè)備10中的存儲(chǔ)設(shè)備14的數(shù)量增加,則要被寫入存儲(chǔ)設(shè)備14處的對(duì)象obj的數(shù)量也可能增加,這還可能增加處理器11管理的索引的數(shù)量。也就是說,如果存儲(chǔ)設(shè)備14的數(shù)量增加,則處理器11管理增加數(shù)量的索引所需要的資源(例如,主存儲(chǔ)器12的容量或主存儲(chǔ)器12的數(shù)量)可能增加。也就是說,除添加存儲(chǔ)設(shè)備14所需要的費(fèi)用之外,服務(wù)器設(shè)備10中的存儲(chǔ)設(shè)備14中的增加可以引起擴(kuò)展主存儲(chǔ)器12所需要的費(fèi)用。為此理由,就存儲(chǔ)設(shè)備14的可擴(kuò)展性而言,使用基于lba的存儲(chǔ)設(shè)備的服務(wù)器設(shè)備10可能受到限制。
現(xiàn)在將描述不是基于邏輯塊尋址(lba)而是基于對(duì)象(obj)的存儲(chǔ)設(shè)備以及使用具有改善的可擴(kuò)展性的基于對(duì)象的存儲(chǔ)設(shè)備的服務(wù)器設(shè)備。
圖3圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的服務(wù)器設(shè)備100的框圖。參考圖3,服務(wù)器設(shè)備100包括處理器110、主存儲(chǔ)器120、調(diào)制解調(diào)器130和存儲(chǔ)設(shè)備140。
處理器110可以響應(yīng)于外部設(shè)備的請(qǐng)求來(lái)訪問存儲(chǔ)設(shè)備140。例如,處理器110可以響應(yīng)于來(lái)自外部設(shè)備的請(qǐng)求向存儲(chǔ)設(shè)備140寫入數(shù)據(jù)或從存儲(chǔ)設(shè)備140讀取數(shù)據(jù)。處理器110可以執(zhí)行在存儲(chǔ)設(shè)備140處寫入數(shù)據(jù)所伴隨的和通過從存儲(chǔ)設(shè)備140讀取數(shù)據(jù)所伴隨的算術(shù)和控制操作。
處理器110可以使用主存儲(chǔ)器120作為工作存儲(chǔ)器、緩沖存儲(chǔ)器或者高速緩存存儲(chǔ)器。主存儲(chǔ)器120可以例如包括:諸如但不限于靜態(tài)ram(sram)、動(dòng)態(tài)ram(dram)的易失性隨機(jī)存取存儲(chǔ)器或諸如相變r(jià)am(pram)、磁性ram(mram)、電阻式ram(rram)或鐵電ram(feram)等的非易失性存儲(chǔ)器中的至少一個(gè)。
處理器110通過調(diào)制解調(diào)器130可以從外部設(shè)備接收請(qǐng)求或可以向外部設(shè)備傳送響應(yīng)。調(diào)制解調(diào)器130可以基于以太網(wǎng)與外部設(shè)備進(jìn)行通信。調(diào)制解調(diào)器130可以例如基于諸如長(zhǎng)期演進(jìn)(lte)、wimax、全球移動(dòng)通信系統(tǒng)(gsm)、碼分多址(cdma)、藍(lán)牙、近場(chǎng)通信(nfc)、wi-fi、射頻識(shí)別(rfid)等的無(wú)線通信,或者諸如通用串行總線(usb)、sata、hsic、scsi、火線、外圍組件互聯(lián)(pci)、高速pci(pcie)、高速非易失性存儲(chǔ)器(nvme)、通用閃速存儲(chǔ)(ufs)、安全數(shù)字(sd)、sdio、通用異步收發(fā)器(uart)、串行外圍接口(spi)、高速spi(hs-spi)、rs232、內(nèi)部集成電路(i2c)、hs-i2c、集成芯片內(nèi)部聲音(i2s)、索尼/飛利浦?jǐn)?shù)字接口(s/pdif)、多媒體卡(mmc)、嵌入mmc(emmc)等的有線通信中的至少一個(gè)與外部設(shè)備進(jìn)行通信。
處理器110、主存儲(chǔ)器120和調(diào)制解調(diào)器130可以操作為存儲(chǔ)設(shè)備140的主機(jī)(host)。
與參考圖1和圖2所描述的存儲(chǔ)設(shè)備14不同,存儲(chǔ)設(shè)備140可以基于對(duì)象obj進(jìn)行操作。在從外部設(shè)備接收到包括鍵和值的寫入請(qǐng)求時(shí),處理器110可以向存儲(chǔ)設(shè)備140之一傳送包括鍵和值的寫入請(qǐng)求。在從外部設(shè)備接收包括鍵的讀取請(qǐng)求時(shí),處理器110可以向存儲(chǔ)設(shè)備140之一傳送包括鍵的讀取請(qǐng)求。
存儲(chǔ)設(shè)備140可以基于包括鍵和值的對(duì)象obj來(lái)執(zhí)行讀取和寫入操作。存儲(chǔ)設(shè)備140可以自動(dòng)地生成和管理指示鍵和邏輯地址lba之間的關(guān)系的索引。因此,在服務(wù)器設(shè)備100中的存儲(chǔ)設(shè)備140的數(shù)量增加的情況下,除了存儲(chǔ)設(shè)備140之外的服務(wù)器設(shè)備100的額外的資源的增加可能不是必要的,并且因此可以提高服務(wù)器設(shè)備的存儲(chǔ)設(shè)備140的可擴(kuò)展性。
圖4圖示出主機(jī)和根據(jù)本發(fā)明構(gòu)思的實(shí)施例的服務(wù)器設(shè)備100的存儲(chǔ)設(shè)備140之一與彼此進(jìn)行通信的示例的流程圖。參考圖3和圖4,在步驟s110中,主機(jī)向存儲(chǔ)設(shè)備140發(fā)送寫入請(qǐng)求set、鍵和值。在步驟s120中,存儲(chǔ)設(shè)備140響應(yīng)于寫入請(qǐng)求set來(lái)存儲(chǔ)鍵和值。
在步驟s130中,主機(jī)向存儲(chǔ)設(shè)備140發(fā)送讀取請(qǐng)求get和鍵。在步驟s140中,存儲(chǔ)設(shè)備140響應(yīng)于讀取請(qǐng)求get和鍵來(lái)讀取值。在步驟s150中,存儲(chǔ)設(shè)備140向主機(jī)發(fā)送讀取的值。
在步驟s160中,主機(jī)向存儲(chǔ)設(shè)備140發(fā)送刪除請(qǐng)求del和鍵。在步驟s170中,存儲(chǔ)設(shè)備140響應(yīng)于刪除請(qǐng)求del和鍵來(lái)刪除鍵和值。
如參考圖4所描述地,存儲(chǔ)設(shè)備140可以對(duì)基于在服務(wù)器設(shè)備100外部生成的鍵-值存儲(chǔ)的請(qǐng)求進(jìn)行處理。在這種情況下,可以減少主機(jī)的負(fù)載,并且因此可以提高存儲(chǔ)設(shè)備140的可擴(kuò)展性。
圖5示意性地圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140的框圖。參考圖4和圖5,存儲(chǔ)設(shè)備140包括接口電路210、對(duì)象處理電路220、控制電路270、隨機(jī)存取存儲(chǔ)器280和非易失性存儲(chǔ)器設(shè)備290。
接口電路210可以例如基于以太網(wǎng)與主機(jī)進(jìn)行通信。接口電路210可以包括負(fù)載分擔(dān)電路,其被配置為執(zhí)行基于tcp/ip的分組化/去分組化。例如,負(fù)載分擔(dān)電路可以是獨(dú)立的硬件電路,其被配置為在沒有諸如對(duì)象處理電路220的外部處理設(shè)備或任何其他核心電路的幫助的情況下執(zhí)行用于自動(dòng)地實(shí)現(xiàn)目的(object)的功能。與通過外部處理設(shè)備上的軟件驅(qū)動(dòng)的資源執(zhí)行功能相比較,負(fù)載分擔(dān)電路可以提供優(yōu)秀的操作速度。此外,如果使用了負(fù)載分擔(dān)電路,則可以在不消耗外部處理設(shè)備的資源的情況下容易地控制流,并且因此可以提高存儲(chǔ)設(shè)備140的操作速度。
接口電路210不限于基于以太網(wǎng)與主機(jī)進(jìn)行通信。在本發(fā)明構(gòu)思的實(shí)施例中,接口電路210可以例如基于諸如長(zhǎng)期演進(jìn)(lte)、wimax、全球移動(dòng)通信系統(tǒng)(gsm)、碼分多址(cdma)、藍(lán)牙、近場(chǎng)通信(nfc)、wi-fi、射頻識(shí)別(rfid)等的無(wú)線通信或者諸如通用串行總線(usb)、sata、hsic、scsi、火線、外圍組件互聯(lián)(pci)、高速pci(pcie)、高速非易失性存儲(chǔ)器(nvme)、通用閃速存儲(chǔ)(ufs)、安全數(shù)字(sd)、sdio、通用異步收發(fā)器(uart)、串行外圍接口(spi)、高速spi(hs-spi)、rs232、內(nèi)部集成電路(i2c)、hs-i2c、集成芯片內(nèi)部聲音(i2s)、索尼/飛利浦?jǐn)?shù)字接口(s/pdif)、多媒體卡(mmc)、嵌入mmc(emmc)等的有線通信中的至少一個(gè)與外部設(shè)備進(jìn)行通信。
對(duì)象處理電路220對(duì)通過接口電路210接收的基于obj的請(qǐng)求進(jìn)行處理。對(duì)象處理電路220將基于obj的請(qǐng)求轉(zhuǎn)換為基于lba的請(qǐng)求,并且向控制電路270發(fā)送轉(zhuǎn)換后的請(qǐng)求。對(duì)象處理電路220將從控制電路270接收的基于lba的響應(yīng)轉(zhuǎn)換為基于obj的響應(yīng)。對(duì)象處理電路220通過接口電路210輸出基于obj的響應(yīng)。
對(duì)象處理電路220包括請(qǐng)求控制部230和對(duì)象管理部240。請(qǐng)求控制部230可以被配置為對(duì)從主機(jī)接收的基于obj的請(qǐng)求進(jìn)行處理。例如,請(qǐng)求控制部230包括:寫入(set)處理器233,其控制對(duì)象管理部240,使得當(dāng)基于obj的請(qǐng)求是寫入請(qǐng)求set時(shí),對(duì)象管理部240執(zhí)行用于執(zhí)行寫入請(qǐng)求的總體操作;讀取(get)處理器231,其控制對(duì)象管理部240,使得當(dāng)基于obj的請(qǐng)求是讀取請(qǐng)求get時(shí),對(duì)象管理部240執(zhí)行用于執(zhí)行讀取請(qǐng)求的總體操作;以及刪除(del)處理器235,其控制對(duì)象管理部240,使得當(dāng)基于obj的請(qǐng)求是刪除請(qǐng)求del時(shí),對(duì)象管理部240執(zhí)行用于執(zhí)行刪除請(qǐng)求的總體操作。
在請(qǐng)求控制部230的控制之下,對(duì)象管理部240可以對(duì)鍵、或者鍵和值進(jìn)行處理。對(duì)象管理部240包括:索引陣列塊(iab)管理器250,被配置為根據(jù)鍵生成并且管理索引;以及對(duì)象陣列塊(oab)管理器260,被配置為管理鍵和值。
iab管理器250包括標(biāo)識(shí)符(id)計(jì)算器251、分區(qū)單元252、索引陣列塊(iab)搜索單元253、iab緩沖器254、iab取出單元255以及iab排序和清空(flush)單元256。
標(biāo)識(shí)符計(jì)算器251可以被配置為根據(jù)鍵生成一個(gè)或多個(gè)標(biāo)識(shí)符。分區(qū)單元252可以被配置為基于通過標(biāo)識(shí)符計(jì)算器251生成的至少一個(gè)第一標(biāo)識(shí)符來(lái)選擇非易失性存儲(chǔ)器設(shè)備290的分區(qū)pt_1至pt_n之一。iab搜索單元253可以被配置為從所選擇的分區(qū)中搜索通過標(biāo)識(shí)符計(jì)算器251生成的至少一個(gè)第二標(biāo)識(shí)符。iab緩沖器254可以被配置為存儲(chǔ)生成的索引。iab取出單元255可以被配置為響應(yīng)于讀取請(qǐng)求get(例如,可以向控制電路270請(qǐng)求iab)來(lái)從所選擇的分區(qū)中取出iab。如果在iab緩沖器254中累積的索引的大小達(dá)到塊大小,則iab排序和清空單元256可以基于通過標(biāo)識(shí)符計(jì)算器251生成的第二標(biāo)識(shí)符來(lái)對(duì)索引進(jìn)行排序或?qū)?zhǔn),并且可以將所排序的索引清空到控制電路270上。
oab管理器260包括對(duì)象陣列塊(oab)緩沖器261、oab取出單元264以及oab清空單元265。oab緩沖器261可以被配置為存儲(chǔ)從主機(jī)接收的包括鍵和值的對(duì)象。oab取出單元263可以被配置為向控制電路270請(qǐng)求與通過iab管理器250找到的地址相對(duì)應(yīng)的oab。如果在oab緩沖器261中累積的對(duì)象的大小達(dá)到塊大小,則oab清空單元265可以被配置為將累積對(duì)象作為oab清空到控制電路270上。
控制電路270可以被配置為從對(duì)象管理部240接收清空請(qǐng)求(或?qū)懭胝?qǐng)求)和取出請(qǐng)求(或讀取請(qǐng)求),上述請(qǐng)求基于邏輯地址lba??刂齐娐?70可以被配置為使用閃存轉(zhuǎn)換層271來(lái)將邏輯地址lba轉(zhuǎn)換為非易失性存儲(chǔ)器設(shè)備290的物理地址pba??刂齐娐?70可以基于物理地址pba來(lái)訪問非易失性存儲(chǔ)器設(shè)備290??刂齐娐?70可以使用隨機(jī)存取存儲(chǔ)器280作為工作存儲(chǔ)器、緩沖存儲(chǔ)器、高速緩存存儲(chǔ)器或者臨時(shí)存儲(chǔ)器。隨機(jī)存取存儲(chǔ)器280可以例如包括dram、sram、pram、mram、rram、feram等??刂齐娐?70可以將管理非易失性存儲(chǔ)器設(shè)備290,或?qū)⑦壿嫷刂穕ba轉(zhuǎn)換為物理地址pba所需要的數(shù)據(jù)存儲(chǔ)到隨機(jī)存取存儲(chǔ)器280中。
可以將非易失性存儲(chǔ)器設(shè)備290分區(qū)為兩個(gè)或更多分區(qū)pt_1至pt_n。例如,可以在非易失性存儲(chǔ)器設(shè)備290的邏輯地址區(qū)域lba_r上創(chuàng)建分區(qū)pt_1至pt_n。分區(qū)pt_1至pt_n可以包括索引分區(qū)ipt_1至ipt_n以及對(duì)象分區(qū)opt_1至opt_n??梢詫ab存儲(chǔ)在索引分區(qū)ipt_1至ipt_n中,并且可以將oab存儲(chǔ)在對(duì)象分區(qū)opt_1至opt_n中。非易失性存儲(chǔ)器設(shè)備290可以例如包括閃速存儲(chǔ)器設(shè)備、pram、mram、rram、feram等。
可以利用硬件、軟件或者硬件和軟件的組合來(lái)實(shí)施構(gòu)成存儲(chǔ)設(shè)備140的塊(例如,單元或部分)中的每個(gè)。以下將對(duì)構(gòu)成存儲(chǔ)設(shè)備140的塊的功能進(jìn)行詳細(xì)地描述。
圖6圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140的操作方法的流程圖。參考圖5和圖6,在步驟s210中,存儲(chǔ)設(shè)備140通過接口電路210接收鍵。在實(shí)施例中,如果鍵與寫入請(qǐng)求set相關(guān)聯(lián),則可以另外地接收值。如果鍵與讀取請(qǐng)求get或刪除請(qǐng)求del相關(guān)聯(lián),可以不接收值。
在步驟s220中,標(biāo)識(shí)符計(jì)算器251根據(jù)所接收的鍵來(lái)生成分區(qū)標(biāo)識(shí)符id_p和排序標(biāo)識(shí)符id_s。
在步驟s230中,分區(qū)單元252基于分區(qū)標(biāo)識(shí)符id_p來(lái)選擇非易失性存儲(chǔ)器設(shè)備290的分區(qū)pt_1至pt_n之一。
在步驟s240中,iab管理器250可以使用排序標(biāo)識(shí)符id_s來(lái)對(duì)索引(例如,iab)進(jìn)行排序,或可以使用排序標(biāo)識(shí)符id_s來(lái)搜索索引(例如,iab)。
除了分區(qū)標(biāo)識(shí)符id_p之外,根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140可以進(jìn)一步使用用于進(jìn)行排序和搜索的排序標(biāo)識(shí)符id_s。排序標(biāo)識(shí)符id_s可以使得易于寫入和搜索索引,并且因此可以提高存儲(chǔ)設(shè)備140的操作速度。
圖7圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140的寫入方法的流程圖。參考圖5和圖7,在步驟s310中,對(duì)象處理電路220通過接口電路210來(lái)接收寫入請(qǐng)求set、鍵和值。
之后,可以將控制流分割到iab管理器250和oab管理器260中??梢酝ㄟ^iab管理器250來(lái)執(zhí)行通過步驟編號(hào)s32x所標(biāo)記的左側(cè)控制流。可以通過oab管理器260來(lái)執(zhí)行通過步驟編號(hào)s33x所標(biāo)記的右側(cè)控制流。可以彼此獨(dú)立地執(zhí)行iab管理器250的控制流和oab管理器260的控制流。
iab管理器250的控制流如下。在步驟s321中,標(biāo)識(shí)符計(jì)算器251通過關(guān)于鍵執(zhí)行散列(hash)運(yùn)算(或函數(shù))來(lái)生成分區(qū)標(biāo)識(shí)符id_p和排序標(biāo)識(shí)符id_s。圖8圖示出其中標(biāo)識(shí)符計(jì)算器251生成分區(qū)標(biāo)識(shí)符id_p和排序標(biāo)識(shí)符id_s的示例。參考圖5和圖8,標(biāo)識(shí)符計(jì)算器251可以通過關(guān)于鍵執(zhí)行散列運(yùn)算(或函數(shù))——例如,md5散列運(yùn)算(或函數(shù))——來(lái)生成散列數(shù)據(jù)hd。標(biāo)識(shí)符計(jì)算器251可以選擇散列數(shù)據(jù)hd的一些比特作為分區(qū)標(biāo)識(shí)符id_p,并且選擇散列數(shù)據(jù)hd的一些比特作為排序標(biāo)識(shí)符id_s。排序標(biāo)識(shí)符id_s的大小可以大于分區(qū)標(biāo)識(shí)符id_p的大小并且可以小于鍵的大小。排序標(biāo)識(shí)符id_s可以包括分區(qū)標(biāo)識(shí)符id_p。然而,本發(fā)明構(gòu)思的其他實(shí)施例不限于此。
參考圖5和圖7,在步驟s322中,分區(qū)單元252選擇與分區(qū)標(biāo)識(shí)符id_p相對(duì)應(yīng)的分區(qū)。分區(qū)單元252可以以表格的形式管理非易失性存儲(chǔ)器設(shè)備290的分區(qū)pt_1至pt_n與分區(qū)標(biāo)識(shí)符id_p的比特圖案之間的關(guān)系。分區(qū)單元252可以基于分區(qū)標(biāo)識(shí)符id_p的比特圖案來(lái)選擇分區(qū)pt_1至pt_n之一??梢詫㈥P(guān)于所選擇的分區(qū)的信息發(fā)送到oab管理器260。
在步驟s323中,iab緩沖器254存儲(chǔ)包括對(duì)象邏輯地址lba_obj和排序標(biāo)識(shí)符id_s的索引。對(duì)象邏輯地址lba_obj可以是關(guān)于在其上要存儲(chǔ)包括鍵和值的對(duì)象obj的非易失性存儲(chǔ)器設(shè)備290的所選擇的分區(qū)的邏輯地址lba。例如,對(duì)象邏輯地址lab_obj可以由oab管理器260生成并且可以被發(fā)送到iab管理器250。作為另一個(gè)示例,可以由iab管理器250內(nèi)部地計(jì)算對(duì)象邏輯地址lba_obj。例如,可以在順序地增大或減小的邏輯地址lba處寫入oab。因?yàn)閛ab的大小是固定的,所以iab管理器250能夠計(jì)算在其處要寫入oab的對(duì)象邏輯地址obj_lba。
iab緩沖器254可以包括與非易失性存儲(chǔ)器設(shè)備290的分區(qū)pt_1至pt_n分別地相對(duì)應(yīng)的多個(gè)索引??梢詫⑸傻乃饕鎯?chǔ)在與所選擇的分區(qū)相對(duì)應(yīng)的索引緩沖器中。
在步驟s324中,iab排序和清空單元256確定在與所選擇的分區(qū)相對(duì)應(yīng)的索引緩沖器中累積的索引的大小是否達(dá)到塊大小。如果累積的索引的大小未達(dá)到塊大小,則可以終止iab管理器250的操作。如果累積的索引的大小達(dá)到塊大小,則在步驟s325中,iab排序和清空單元256可以使用排序標(biāo)識(shí)符id_s對(duì)索引緩沖器中的索引進(jìn)行排序(或?qū)?zhǔn))。例如,iab排序和清空單元256可以基于排序標(biāo)識(shí)符id_s的比特的值按照升序或降序?qū)λ饕M(jìn)行排序。在步驟s326中,iab排序和清空單元256將所排序的索引作為iab清空到控制電路270上。之后,在步驟s327中,可以在iab取出單元255中存儲(chǔ)或更新關(guān)于最新近地從所選擇的分區(qū)清空的iab的指針??刂齐娐?70可以響應(yīng)于清空請(qǐng)求來(lái)在所選擇的分區(qū)的所選擇的索引分區(qū)處寫入iab。
oab管理器260的控制流如下。在步驟s331中,oab緩沖器261存儲(chǔ)鍵和值。例如,可以將鍵和值存儲(chǔ)為作為日志結(jié)構(gòu)對(duì)而相關(guān)聯(lián)。例如,oab緩沖器261可以包括與非易失性存儲(chǔ)器設(shè)備290的分區(qū)pt_1至pt_n分別地相對(duì)應(yīng)的多個(gè)對(duì)象緩沖器。可以將對(duì)象obj存儲(chǔ)在與所選擇的分區(qū)相對(duì)應(yīng)的對(duì)象緩沖器中。
在步驟s332中,分配對(duì)象邏輯地址lba_obj,其指示其中要存儲(chǔ)的對(duì)象obj的所選擇的分區(qū)的位置。例如,可以從所選擇的分區(qū)的對(duì)象分區(qū)的邏輯地址中選擇對(duì)象邏輯地址lba_obj??梢詫?duì)象邏輯地址lba_obj發(fā)送到iab管理器250。
在步驟s333中,oab清空單元265確定在與所選擇的分區(qū)相對(duì)應(yīng)的oab緩沖器261的對(duì)象緩沖器中累積的對(duì)象的大小是否達(dá)到塊大小。如果累積對(duì)象的大小未達(dá)到塊大小,則可以終止oab管理器260的操作。如果累積對(duì)象的大小達(dá)到塊大小,則在步驟s334中,oab清空單元265將累積對(duì)象作為oab清空到控制電路270上??刂齐娐?70可以在所選擇的分區(qū)的所選擇的對(duì)象分區(qū)處寫入oab。
圖9是圖示出對(duì)iab緩沖器254和oab緩沖器261進(jìn)行分區(qū)的示例的框圖。參考圖5和圖9,隨著將通過邏輯地址識(shí)別的非易失性存儲(chǔ)器設(shè)備290的邏輯存儲(chǔ)空間分割為分區(qū)pt_1至pt_n,iab緩沖器254和oab緩沖器261可以類似地被分別地分割為索引緩沖器ibf_1至ibf_n和對(duì)象緩沖器obf_1至ofb_n。索引緩沖器ibf_1至ibf_n可以存儲(chǔ)要被寫入索引分區(qū)ipt_1至ipt_n處的索引。對(duì)象緩沖器obf_1至obf_n可以存儲(chǔ)要被寫入對(duì)象分區(qū)opt_1至opt_n處的對(duì)象。
圖10至圖15圖示出對(duì)象處理電路220接收和處理對(duì)象的過程的圖。在實(shí)施例中,在圖10至圖15中圖示出其中反復(fù)地接收關(guān)于第k(k是正整數(shù))分區(qū)pt_k的寫入請(qǐng)求的示例。也就是說,在圖10至15中,分區(qū)標(biāo)識(shí)符id_p可以指示第k分區(qū)pt_k。因?yàn)榉謪^(qū)標(biāo)識(shí)符id_p指示第k分區(qū)pt_k,所以在圖10至圖15中未圖示出與第k分區(qū)pt_k相關(guān)聯(lián)的第k索引緩沖器ibf_k和第k對(duì)象緩沖器obf_k之外的索引緩沖器和對(duì)象緩沖器。
參考圖5和圖10,可以接收包括第一鍵key1和第一值value1的第一對(duì)象obj1的寫入請(qǐng)求set。iab管理器250可以生成與第一鍵key1相關(guān)聯(lián)的第一索引ind1并且可以在第k索引緩沖器ibf_k中存儲(chǔ)第一索引ind1。在實(shí)施例中,第一索引ind1可以包括根據(jù)第一鍵key1生成的第一排序標(biāo)識(shí)符id_s1,以及第一對(duì)象邏輯地址lba_obj1。第一排序標(biāo)識(shí)符id_s1可以具有值“11”。第一對(duì)象邏輯地址lba_obj1可以是與其中要寫入第一對(duì)象obj1的位置相對(duì)應(yīng)的非易失性存儲(chǔ)器設(shè)備290的第k分區(qū)pt_k的第k對(duì)象分區(qū)opt_k的邏輯地址。在實(shí)施例中,第一索引ind1可以進(jìn)一步包括第一鍵key1的長(zhǎng)度信息l_key1(第一長(zhǎng)度信息)或第一對(duì)象obj1的長(zhǎng)度信息l_obj1(第二長(zhǎng)度信息)。當(dāng)根據(jù)讀取請(qǐng)求執(zhí)行搜索操作時(shí),長(zhǎng)度信息l_key1和長(zhǎng)度信息l_obj1可以用于提高準(zhǔn)確度。oab管理器260可以在第k對(duì)象緩沖器obf_k中存儲(chǔ)包括第一鍵key1和第一值value1的第一對(duì)象obj1。
參考圖5和圖11,可以接收包括第二鍵key2和第二值value2的第二對(duì)象obj2。oab管理器250可以在第k索引緩沖器ibf_k中存儲(chǔ)與第二鍵key2相關(guān)聯(lián)的第二索引ind2。第二索引ind2可以包括具有值“01”的第二排序標(biāo)識(shí)符id_s2、第二對(duì)象邏輯地址lba_obj2、第二鍵key2的長(zhǎng)度信息l_key2以及第二對(duì)象obj2的長(zhǎng)度信息l_obj2。oab管理器260可以在第k對(duì)象緩沖器obf_k中存儲(chǔ)第二鍵key2和第二值value2。
參考圖5和圖12,可以接收包括第三鍵key3和第三值value3的第三對(duì)象obj3。iab管理器250可以在第k索引緩沖器ibf_k中存儲(chǔ)與第三鍵key3相關(guān)聯(lián)的第三索引ind3。第三索引ind3可以包括具有值“00”的第三排序標(biāo)識(shí)符id_s3、第三對(duì)象邏輯地址lba_obj3、第三鍵key3的長(zhǎng)度信息l_key3以及第三對(duì)象obj3的長(zhǎng)度信息l_obj3。oab管理器260可以在第k對(duì)象緩沖器obf_k中存儲(chǔ)第三鍵key3和第三值value3。
參考圖5和圖13,可以接收包括第四鍵key4和第四值value4的第四對(duì)象obj4。iab管理器250可以在第k索引緩沖器ibf_k中存儲(chǔ)與第四鍵key4相關(guān)聯(lián)的第四索引ind4。第四索引ind4可以包括具有值“10”的第四排序標(biāo)識(shí)符id_s4、第四對(duì)象邏輯地址lba_obj4、第四鍵key4的長(zhǎng)度信息l_key4以及第四對(duì)象obj4的長(zhǎng)度信息l_obj4。oab管理器260可以在第k對(duì)象緩沖器obf_k中存儲(chǔ)第四鍵key4和第四值value4。
參考圖5和圖14,索引ind1至ind4的大小可以達(dá)到塊大小。iab排序和清空單元256可以基于排序索引id_s1至id_s4對(duì)索引ind1至ind4進(jìn)行排序,如圖14中所示。iab排序和清空單元256可以將鏈接l添加至所排序的索引ind1至ind4。在實(shí)施例中,在先前被清空的iab不存在于所選擇的第k索引分區(qū)ipt_k中的情況下,鏈接l可以指示第k索引分區(qū)ipt_k的起始邏輯地址或最終邏輯地址或空值(null)信息。在先前被清空的iab存在于所選擇的第k索引分區(qū)ipt_k中的情況下,鏈接l可以指示在第k索引分區(qū)ipt_k處最新近地清空或?qū)懭氲膇ab的起始邏輯地址或最終邏輯地址。之后,可以將被排序并且鏈接l所添加至其的索引ind1至ind4作為iab而清空。隨著iab最新近地被清空,可以在iab取出單元255中存儲(chǔ)或更新清空的iab的起始邏輯地址或最終邏輯地址。
參考圖5和圖15,可以接收包括第五鍵key5和第五值value5的第五對(duì)象obj5。iab管理器250可以在第k索引緩沖器ibf_k中存儲(chǔ)與第五鍵key5相關(guān)聯(lián)的第五索引ind5。第五索引ind5可以包括具有值“11”的第五排序標(biāo)識(shí)符id_s5、第五對(duì)象邏輯地址lba_obj5、第五鍵key5的長(zhǎng)度信息l_key5以及第五對(duì)象obj5的長(zhǎng)度信息l_obj5。
oab管理器260可以在第k對(duì)象緩沖器obf_k中存儲(chǔ)第五鍵key5和第五值value5。由于第五對(duì)象obj5被存儲(chǔ)在第k對(duì)象緩沖器obf_k中,所以累積對(duì)象obj1至obj5的大小可以達(dá)到塊大小。oab清空單元265可以將累積對(duì)象obj1至obj5作為oab而清空。
如上所述,可以彼此獨(dú)立地累積和清空iab和oab。如果累積的索引的大小達(dá)到iab的大小,則可以對(duì)索引進(jìn)行排序,可以將鏈接l添加到所排序的索引以及可以將鏈接l被添加至其的所排序的索引作為iab而清空。如果累積對(duì)象的大小達(dá)到oab的大小,則可以將對(duì)象作為oab而清空。在實(shí)施例中,可以考慮到適于關(guān)于非易失性存儲(chǔ)器設(shè)備290高效地執(zhí)行寫入和讀取操作的大小、用于iab緩沖器254的區(qū)域和成本、對(duì)索引進(jìn)行排序所花費(fèi)的時(shí)間、執(zhí)行搜索操作所花費(fèi)的時(shí)間等來(lái)確定iab的大小。在實(shí)施例中,可以考慮到適于關(guān)于非易失性存儲(chǔ)器設(shè)備290高效地執(zhí)行寫入和讀取操作的大小或用于oab緩沖器261的區(qū)域和成本來(lái)確定oab的大小。
如在圖10至15中所示,在對(duì)象obj1至obj5中,鍵key1至key5的大小可以是固定的,并且值value1至value5的大小可以是可變的。然而,在其他的實(shí)施例中,鍵key1至key5的大小和值value1至value5的大小全部都可以是可變的。
圖16圖示出其中在非易失性存儲(chǔ)器設(shè)備的第k索引分區(qū)ipt_k處寫入iab的示例。參考圖5和圖16,iab可以具有相同的大小。iab_1可以是首先被寫入第k索引分區(qū)ipt_k處的iab??梢栽趶牡趉索引分區(qū)ipt_k的起始邏輯地址或最終邏輯地址起的、地址增大或減小的方向上順序地寫入iab_1。當(dāng)iab_1被清空時(shí)所添加的鏈接l可以指示第k索引分區(qū)ipt_k的起始地址或最終地址,或可以具有空值。當(dāng)iab_1被清空時(shí),iab取出單元255可以存儲(chǔ)對(duì)在第k索引分區(qū)ipt_k處最新近地清空的iab_1進(jìn)行指示的指針(或地址)。
可以在第k索引分區(qū)ipt_k處寫入iab_1之后的iab_2??梢栽趶膇ab_1的起始邏輯地址或最終邏輯地址起的、地址增大或減小的方向上順序地寫入iab_2。添加到iab_2的鏈接l可以指示是先前的iab的iab_1的起始地址或最終地址。當(dāng)iab_2被清空時(shí),iab取出單元255可以存儲(chǔ)對(duì)在第k索引分區(qū)ipt_k處最新近地清空的iab_2進(jìn)行指示的指針(或地址)。
可以在第k索引分區(qū)ipt_k處寫入iab_2之后的iab_3??梢栽趶膇ab_2的起始邏輯地址或最終邏輯地址起的、地址增大或減小的方向上順序地寫入iab_3。添加到iab_3的鏈接l可以指示是先前的iab的iab_2的起始地址或最終地址。當(dāng)iab_3被清空時(shí),iab取出單元255可以存儲(chǔ)對(duì)在第k索引分區(qū)ipt_k處最新近地被清空的iab_3進(jìn)行指示的指針(或地址)。
可以在第k索引分區(qū)ipt_k處寫入iab_3之后的iab_4。iab_4可以被順序地寫入,鏈接l被添加,以及當(dāng)被清空時(shí)iab取出單元255可以以與以上關(guān)于iab_2和iab_3所述的方式類似的方式來(lái)存儲(chǔ)指針。
可以在第k索引分區(qū)ipt_k處寫入iab_4之后的iab_5。
如圖16中所示,可以以鏈接列表的形式管理iab??梢詫?duì)最新近地被清空的iab進(jìn)行指示的指針(或地址)存儲(chǔ)在iab取出單元255中。每個(gè)iab可以包括根據(jù)排序標(biāo)識(shí)符id_s所排序的索引。當(dāng)接收讀取請(qǐng)求get時(shí),iab取出單元255可以使用存儲(chǔ)的指針(或存儲(chǔ)的地址)來(lái)取出在所選擇的索引分區(qū)處最新近地清空的iab。如果從所取出的iab中找不到對(duì)應(yīng)于與讀取請(qǐng)求get相關(guān)聯(lián)的鍵的索引,則可以基于鏈接l來(lái)取出下一個(gè)iab。如上所述,可以通過在每個(gè)iab處使用排序標(biāo)識(shí)符id_s對(duì)索引進(jìn)行排序來(lái)加速關(guān)于索引的搜索操作。此外,因?yàn)閷⒎謪^(qū)的索引分割為多個(gè)iab,所以可以調(diào)整iab的大小,由此使調(diào)整搜索速度成為可能。此外,可以采用鏈接列表來(lái)管理多個(gè)iab,并且因此可以減少管理iab所需要的資源。
圖17圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140的讀取方法的流程圖。參考圖5和圖17,在步驟s410中,對(duì)象處理電路220通過接口電路210接收鍵。
在步驟s420中,標(biāo)識(shí)符計(jì)算器251通過關(guān)于鍵執(zhí)行散列運(yùn)算來(lái)生成分區(qū)標(biāo)識(shí)符id_p和排序標(biāo)識(shí)符id_s。
在步驟s430中,分區(qū)單元252基于分區(qū)標(biāo)識(shí)符id_p來(lái)選擇非易失性存儲(chǔ)器設(shè)備290的分區(qū)pt_1至pt_n之一。
在步驟s440中,iab取出單元255使用指示在所選擇的分區(qū)處最新近地取出的iab的指針(或地址)來(lái)取出最新近地取出的iab。例如,在所選擇的分區(qū)中,在如圖16中所示iab被寫入的情況下,iab取出單元255可以讀取iab_5。
在步驟s451中,iab搜索單元253在讀取的iab處使用排序標(biāo)識(shí)符id_s來(lái)搜索索引。例如,iab搜索單元253可以從讀取的iab的索引之中搜索包括根據(jù)鍵生成的排序標(biāo)識(shí)符id_s的索引。
然后,在步驟s453中,確定是否發(fā)生其中在讀取的iab處找到與鍵相關(guān)聯(lián)的索引的匹配。如果在讀取的iab處未找到與鍵相關(guān)聯(lián)的索引,則在步驟s453中確定不存在匹配。
如果在讀取的iab處未發(fā)生匹配,則在步驟s455中,iab取出單元255讀取通過讀取的iab的鏈接l所連接的下一個(gè)iab。例如,在所選擇的分區(qū)中,在如圖16中所示iab被寫入的情況下,iab取出單元255可以讀取iab_4??梢苑磸?fù)地執(zhí)行步驟s451、s453和s455,直到在所選擇的分區(qū)處發(fā)生匹配。
在步驟s453中確定在所選擇的分區(qū)處發(fā)生匹配時(shí),之后,在步驟s460中,對(duì)象處理電路220通過接口電路210向主機(jī)輸出與匹配的索引相對(duì)應(yīng)的對(duì)象obj作為讀取響應(yīng)。
圖18圖示出其中iab搜索單元253確定匹配的方法的流程圖。參考圖5和圖18,在步驟s510中,iab搜索單元253選擇在通過iab取出單元255讀取的iab處的初始位置的索引。
在步驟s520中,iab搜索單元253確定所選擇的索引的排序標(biāo)識(shí)符id_s是否與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s相同。如果所選擇的索引的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s不同,則處理流繼續(xù)到步驟s560。然而,如果所選擇的索引的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s相同,則在步驟s530中,oab取出單元263從所選擇的分區(qū)中讀取與所選擇的索引相對(duì)應(yīng)的對(duì)象obj。
在步驟s540中,iab搜索單元253將所讀取的對(duì)象obj的鍵與所接收的鍵相比較。如果所讀取的對(duì)象obj的鍵與所接收的鍵相同,則在步驟s550中,可以確定匹配。如果所讀取的對(duì)象obj的鍵與所接收的鍵不同,則過程繼續(xù)到步驟s560。
在步驟s560中,iab搜索單元253確定是否終止關(guān)于所選擇的iab的搜索操作。例如,如果要通過iab搜索單元253比較的下一個(gè)索引不存在,則可以確定搜索操作終止。之后,在步驟s570中,iab搜索單元253確定匹配不存在。如果如在步驟s560中所確定地,要通過iab搜索單元253比較的下一個(gè)索引存在,則可以確定搜索操作不終止。之后,在步驟s580中,iab搜索單元253選擇在所選擇的iab處的下一個(gè)索引,并且過程返回到步驟s520。
作為另一個(gè)示例,當(dāng)在步驟s520中選擇的索引的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符相同時(shí),可以使用鍵的長(zhǎng)度信息l_key和對(duì)象obj的長(zhǎng)度信息l_obj來(lái)額外地進(jìn)行比較。例如,iab搜索單元253可以將所接收的鍵的長(zhǎng)度與所選擇的索引的鍵的長(zhǎng)度信息l_key相比較。iab搜索單元253可以將所請(qǐng)求的對(duì)象的長(zhǎng)度與所選擇的索引的對(duì)象的長(zhǎng)度信息l_obj相比較。如果鍵的長(zhǎng)度與長(zhǎng)度信息l_key相同并且對(duì)象obj的長(zhǎng)度與長(zhǎng)度信息l_obj相同,則在步驟s530中,oab取出單元263讀取與所選擇的索引相對(duì)應(yīng)的對(duì)象obj。即使根據(jù)鍵生成的排序標(biāo)識(shí)符id_s與所選擇的索引的排序標(biāo)識(shí)符id_s相同,但是如果鍵的長(zhǎng)度與長(zhǎng)度信息l_key不同或?qū)ο髈bj的長(zhǎng)度與長(zhǎng)度信息l_obj不同,則可以不執(zhí)行步驟s530至s560。
圖19圖示出其中使用排序標(biāo)識(shí)符id_s來(lái)執(zhí)行搜索操作的示例。參考圖5、圖18和圖19,對(duì)一個(gè)iab進(jìn)行例示。分別地包括附圖標(biāo)記“1”至“32”的框可以分別地表示iab中所包括的索引。
如參考圖14所描述地,可以基于排序標(biāo)識(shí)符id_s對(duì)iab的索引1至32進(jìn)行排序或?qū)?zhǔn)。因此,iab搜索單元253可以使用排序標(biāo)識(shí)符id_s執(zhí)行二分搜索,由此顯著地減少搜索索引所消耗的資源。
在本發(fā)明構(gòu)思的實(shí)施例中,初始位置可以被設(shè)置在索引1至32的中間,借此索引16的位置可以是初始位置。如由附圖標(biāo)記①所表示地,可以將索引16的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s相比較。
可以假定,在從索引1至索引32的方向上——即,按照排序標(biāo)識(shí)符id_s的升序——來(lái)對(duì)索引1至32進(jìn)行排序。此外,可以假定,索引16的排序標(biāo)識(shí)符id_s的值小于根據(jù)鍵生成的排序標(biāo)識(shí)符id_s的值。根據(jù)這些假定,可以認(rèn)為每個(gè)均具有比索引16的值小的值的排序標(biāo)識(shí)符id_s的索引1至15與根據(jù)鍵生成的排序標(biāo)識(shí)符相同的概率不存在。因此,可以將索引1至16從比較中排除。
然后,可以基于二分搜索來(lái)選擇位于索引17至32的中間處的索引作為比較目標(biāo)。例如,可以選擇索引25作為比較目標(biāo)。如由附圖標(biāo)記②所表示地,可以將索引25的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s相比較。
此外,可以假定,索引25的排序標(biāo)識(shí)符id_s的值小于根據(jù)鍵生成的排序標(biāo)識(shí)符id_s的值。在該情況下,可以認(rèn)為每個(gè)均具有比索引25的值小的值的排序標(biāo)識(shí)符id_s的索引17至24與根據(jù)鍵生成的排序標(biāo)識(shí)符相同的概率不存在。因此,可以將索引17至25從比較中排除。
然后,可以基于二分搜索來(lái)選擇位于索引26至32的中間處的索引作為比較目標(biāo)。例如,可以選擇索引29作為比較目標(biāo)。如由附圖標(biāo)記③所表示地,可以將索引29的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s相比較。
此外,可以假定,索引29的排序標(biāo)識(shí)符id_s的值大于根據(jù)鍵生成的排序標(biāo)識(shí)符id_s的值。在該情況下,可以認(rèn)為每個(gè)均具有比索引29的值大的值的排序標(biāo)識(shí)符id_s的索引30至32與根據(jù)鍵生成的排序標(biāo)識(shí)符相同的概率不存在。因此,可以將索引29至32從比較中排除。
然后,可以基于二分搜索來(lái)選擇位于索引26至28的中間處的索引作為比較目標(biāo)。例如,可以選擇索引27作為比較目標(biāo)。如由附圖標(biāo)記④所表示地,可以將索引27的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s相比較。
在實(shí)施例中,可以假定,索引27的排序標(biāo)識(shí)符id_s的值小于根據(jù)鍵生成的排序標(biāo)識(shí)符id_s的值。在該情況下,可以認(rèn)為具有比索引27的值小的值的排序標(biāo)識(shí)符id_s的索引26與根據(jù)鍵生成的排序標(biāo)識(shí)符相同的概率不存在。因此,可以將索引26至27從比較中排除。
可以基于二分搜索選擇最后一個(gè)索引28作為比較目標(biāo)。如由附圖標(biāo)記⑤所表示地,可以將索引28的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符id_s相比較。
如果索引28的排序標(biāo)識(shí)符id_s與根據(jù)鍵生成的排序標(biāo)識(shí)符不同,則作為比較目標(biāo),可能不存在下一個(gè)索引。因此,然后可以確定在iab處未發(fā)生匹配,并且可以在下一個(gè)iab處執(zhí)行搜索操作。
如果在搜索iab時(shí)發(fā)生匹配,則可以暫停搜索操作,并且可以將對(duì)象obj的鍵與所接收的鍵相比較。如果對(duì)象obj的鍵與所接收的鍵不同,則可以重新開始被暫停的搜索操作。
通常,可以使用線性搜索方法,其中一一對(duì)應(yīng)地將讀取的對(duì)象obj的鍵與接收的鍵相比較。如果使用此類線性搜索,則在最壞的情況下,在搜索存儲(chǔ)n個(gè)對(duì)象的分區(qū)時(shí),可能執(zhí)行n次讀取操作和n次比較操作。
在使用根據(jù)本發(fā)明構(gòu)思的實(shí)施例的iab和排序標(biāo)識(shí)符id_s并且與m個(gè)對(duì)象相對(duì)應(yīng)的索引被包括在一個(gè)iab中的情況下,可以顯著地降低讀取頻率和比較頻率。例如,假定在執(zhí)行二分搜索時(shí)的最壞的情況下,所有比較操作中的每個(gè)均伴隨有對(duì)象讀取操作,在多個(gè)iab處執(zhí)行搜索操作以及在最后一個(gè)索引處發(fā)生匹配??梢匀缦旅娴牡仁?中所示出地來(lái)對(duì)讀取頻率進(jìn)行總結(jié)。
[等式1]
在實(shí)施例中,n可以是“163840”并且m可以是“16384”。根據(jù)等式1,與當(dāng)使用線性搜索時(shí)相比較,可以將讀取頻率改善(減少)大約1092次。讀取非易失性存儲(chǔ)器設(shè)備290所花費(fèi)的操作時(shí)間可以造成其壽命的降低。因此,如果讀取頻率降低,則可以提高存儲(chǔ)設(shè)備140的操作速度,并且可以延長(zhǎng)存儲(chǔ)設(shè)備140的壽命。
可以如下面的公式2中所示出地對(duì)比較頻率進(jìn)行總結(jié)。
[等式2]
根據(jù)等式2,與當(dāng)使用線性搜索時(shí)相比較,可以將比較頻率改善大約585次。比較頻率可以使對(duì)象處理電路220的操作時(shí)間成為必需。因此,如果比較頻率降低,則可以提高存儲(chǔ)設(shè)備140的操作速度。
圖20圖示出其中在第k分區(qū)pt_k處寫入iab和oab的示例。參考圖20,索引分區(qū)ipt_k和對(duì)象分區(qū)opt_k大小可以是可變的,不是固定的。在實(shí)施例中,可以從第k分區(qū)pt_k的起始邏輯地址lba_s起順序地寫入iab??梢詫懭雐ab的區(qū)域識(shí)別為索引分區(qū)ipt_k。可以從第k分區(qū)pt_k的最終邏輯地址lba_e起順序地寫入oab。可以將其中寫入oab的區(qū)域識(shí)別為對(duì)象分區(qū)ipt_k。
也就是說,索引分區(qū)ipt_k和對(duì)象分區(qū)opt_k可以分別地從第k分區(qū)pt_k的起始邏輯地址lba_s和最終邏輯地址lba_e起增長(zhǎng)(grow),并且可以占據(jù)第k分區(qū)pt_k的空閑空間。如果如圖20中所示出地來(lái)配置索引分區(qū)ipt_k和對(duì)象分區(qū)opt_k,則在因?yàn)樵谒饕謪^(qū)ipt_k處存在空閑空間但是對(duì)象分區(qū)otp_k沒有空間而不可能再寫入對(duì)象的情況下,或在因?yàn)樵趯?duì)象分區(qū)opt_k處存在空閑空間但是索引分區(qū)itp_k沒有空間而不可能再寫入對(duì)象的情況下,可以防止第k分區(qū)pt_k的存儲(chǔ)空間被浪費(fèi)。
在實(shí)施例中,可以根據(jù)存儲(chǔ)設(shè)備140的特性來(lái)調(diào)整iab的大小或oab的大小。例如,可以根據(jù)非易失性存儲(chǔ)器設(shè)備290的讀取單位或?qū)懭雴挝粊?lái)調(diào)整iab的大小或oab的大小。例如,隨著非易失性存儲(chǔ)器設(shè)備290的讀取單位或?qū)懭雴挝蛔兊酶螅琲ab的大小或oab的大小可以變得更大,或隨著非易失性存儲(chǔ)器設(shè)備290的讀取單位或?qū)懭雴挝蛔兊酶?,iab的大小或oab的大小可以變得更小。
例如,可以根據(jù)隨機(jī)存取存儲(chǔ)器280的容量來(lái)調(diào)整iab的大小或oab的大小。例如,隨著隨機(jī)存取存儲(chǔ)器280的容量變得更大,iab的大小或oab的大小可以變得更大,或隨著隨機(jī)存取存儲(chǔ)器280的容量變得更小,iab的大小或oab的大小可以變得更小。
例如,可以根據(jù)對(duì)象處理電路220的內(nèi)部存儲(chǔ)器的容量來(lái)調(diào)整iab的大小或oab的大小。例如,隨著對(duì)象處理電路220的iab緩沖器254的容量或其oab緩沖器261的容量變得更大,iab的大小或oab的大小可以變得更大,或隨著對(duì)象處理電路220的iab緩沖器254的容量或其oab緩沖器261的容量變得更小,iab的大小或oab的大小可以變得更小。
例如,可以根據(jù)來(lái)自外部主機(jī)設(shè)備的寫入請(qǐng)求或讀取請(qǐng)求的頻率來(lái)調(diào)整iab的大小或oab的大小。例如,隨著寫入請(qǐng)求或讀取請(qǐng)求的頻率增加,iab的大小或oab的大小可以減小,或隨著寫入請(qǐng)求或讀取請(qǐng)求的頻率降低,iab的大小或oab的大小可以減小或增大。
在實(shí)施例中,可以利用硬件來(lái)實(shí)施對(duì)象處理電路220的請(qǐng)求控制部230、對(duì)象管理部240、iab管理器250、標(biāo)識(shí)符計(jì)算器251、分區(qū)單元252、iab搜索單元253、iab緩沖器254、iab取出單元255、iab排序和清空單元256、oab管理器260、oab緩沖器261、oab取出單元263和oab清空單元265中的至少一個(gè)。例如,標(biāo)識(shí)符計(jì)算器251可以占據(jù)對(duì)象處理電路220的吞吐量的大約30%。如果利用硬件來(lái)實(shí)施占據(jù)許多吞吐量的組件,諸如標(biāo)識(shí)符計(jì)算器251,則可以顯著地提高對(duì)象處理電路220的操作速度。
本發(fā)明構(gòu)思的實(shí)施例被例示為每個(gè)iab具有指示剛剛在先前寫入的iab的鏈接l。然而,在其他的實(shí)施例中,每個(gè)iab可以不具有鏈接l。在實(shí)施例中,每個(gè)索引分區(qū)ipt_k可以具有給定范圍的邏輯地址lba,并且每個(gè)iab可以具有固定大小。因此,可以通過從當(dāng)前被訪問的iab的邏輯地址lba起移動(dòng)與每個(gè)iab的大小相對(duì)應(yīng)的邏輯地址lba來(lái)計(jì)算剛剛在先前寫入的iab的邏輯地址lba。
圖21和22圖示出其中使用iab緩沖器254、oab緩沖器261和非易失性存儲(chǔ)器設(shè)備290的示例的圖。參考圖21,可以將iab緩沖器254'分割為多個(gè)索引緩沖器ibf_1至ibf_n。索引緩沖器ibf_1至ibf_n可以分別地與非易失性存儲(chǔ)器設(shè)備290'的索引分區(qū)ipt_1至ipt_n相對(duì)應(yīng)。
oab緩沖器261'可以用作對(duì)象緩沖器obf。對(duì)象緩沖器obf可以與非易失性存儲(chǔ)器設(shè)備290'的對(duì)象分區(qū)opt相對(duì)應(yīng)。
在圖21中,可以以與參考圖1至圖20所描述的相同的方法來(lái)讀取和寫入iab??梢栽跊]有分區(qū)分離的情況下在一個(gè)對(duì)象緩沖器obf上累積oab,并且可以在一個(gè)對(duì)象分區(qū)opt處寫入oab。
參考圖22,可以將iab緩沖器254"分割為多個(gè)索引緩沖器ibf_1至ibf_n。索引緩沖器ibf_1至ibf_n可以分別地與非易失性存儲(chǔ)器設(shè)備290"的索引分區(qū)ipt_1至ipt_n相對(duì)應(yīng)。
可以將oab緩沖器261"分割為多個(gè)對(duì)象緩沖器obf_1至obf_m??梢詿o(wú)論索引緩沖器ibf_1至ibf_n如何地來(lái)配置對(duì)象緩沖器obf_1至obf_m。非易失性存儲(chǔ)器設(shè)備290"可以包括多個(gè)索引分區(qū)ipt_1至ipt_n和多個(gè)對(duì)象分區(qū)opt_1至opt_j。可以無(wú)論索引分區(qū)ipt_1至ipt_n、索引緩沖器ibf_1至ibf_n或者對(duì)象緩沖器obf_1至obf_m如何地來(lái)配置對(duì)象分區(qū)otp_1至opt_j。
在圖22中,可以以與參考圖1至圖20所描述的相同的方法來(lái)讀取和寫入iab??梢栽趯?duì)象緩沖器obf_1至obf_m上累積oab。對(duì)象緩沖器obf_1至obf_m可以與分別地被指配給oab管理器260的核心的寫入隊(duì)列相對(duì)應(yīng)。隨著對(duì)象分別地在對(duì)象緩沖器obf_1至obf_m上被累積,oab管理器260的核心可以使oab寫入請(qǐng)求入隊(duì)在寫入隊(duì)列中。
對(duì)象分區(qū)opt_1至opt_j的數(shù)量可以與并行地執(zhí)行寫入請(qǐng)求的線程的數(shù)量相對(duì)應(yīng)??梢圆⑿械靥幚黻P(guān)于對(duì)象分區(qū)opt_1至opt_j的寫入操作。
圖23圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140'的框圖。與圖5的存儲(chǔ)設(shè)備140相比較,圖23的存儲(chǔ)設(shè)備140'不包括控制電路和隨機(jī)存取存儲(chǔ)器。
圖23中的對(duì)象處理電路220被配置為生成非易失性存儲(chǔ)器設(shè)備290的物理地址pba,而不是邏輯地址lba。
在實(shí)施例中,存儲(chǔ)設(shè)備140'可以用作服務(wù)器設(shè)備的存儲(chǔ)裝置。在這種情況下,在存儲(chǔ)設(shè)備140'處寫入的數(shù)據(jù)可以長(zhǎng)時(shí)間不被更新并且可以僅被用于讀取操作。因此,可以能夠跳過諸如損耗均衡、無(wú)用單元收集等的用于閃速存儲(chǔ)器設(shè)備的后臺(tái)操作,并且對(duì)象處理電路220可以直接地訪問非易失性存儲(chǔ)器設(shè)備290的物理地址。
圖24圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140或140'被應(yīng)用至其的服務(wù)器系統(tǒng)的框圖。參考圖24,以太網(wǎng)交換機(jī)es1與服務(wù)器設(shè)備sd1至sdn相連接。服務(wù)器設(shè)備sd1至sdn中的每個(gè)可以包括應(yīng)用服務(wù)器設(shè)備、存儲(chǔ)服務(wù)器設(shè)備或高速緩存服務(wù)器設(shè)備。
以太網(wǎng)交換機(jī)es1直接地與存儲(chǔ)設(shè)備140相連接。存儲(chǔ)設(shè)備140可以通過以太網(wǎng)交換機(jī)es1用作服務(wù)器設(shè)備sd1至sdn的存儲(chǔ)裝置。例如,存儲(chǔ)設(shè)備140可以用作應(yīng)用服務(wù)器設(shè)備的存儲(chǔ)裝置。
以太網(wǎng)交換機(jī)es1還與存儲(chǔ)裝置集合ss1至ssm相連接。存儲(chǔ)裝置集合ss1至ssm中的每個(gè)包括多個(gè)存儲(chǔ)設(shè)備140和內(nèi)部以太網(wǎng)交換機(jī)es2。存儲(chǔ)裝置集合ss1至ssm內(nèi)的存儲(chǔ)設(shè)備140連接到相應(yīng)的內(nèi)部以太網(wǎng)交換機(jī)es2。內(nèi)部以太網(wǎng)交換機(jī)es2與以太網(wǎng)交換機(jī)es1相連接。存儲(chǔ)裝置集合ss1至ssm中的每個(gè)可以用作存儲(chǔ)服務(wù)器設(shè)備。
圖25圖示出其中安裝有根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)設(shè)備140或140'的服務(wù)器設(shè)備的框圖。參考圖25,服務(wù)器設(shè)備2000包括兩個(gè)或更多服務(wù)器支架2010。兩個(gè)或更多存儲(chǔ)設(shè)備140或140'被安裝在服務(wù)器支架2010中的每個(gè)中。
圖26圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的非易失性存儲(chǔ)器設(shè)備290的框圖。參考圖5和圖26,非易失性存儲(chǔ)器設(shè)備290包括存儲(chǔ)單元陣列291、行譯碼器電路293、頁(yè)面緩沖電路295、數(shù)據(jù)輸入/輸出電路297和控制邏輯電路299。
存儲(chǔ)單元陣列291包括每個(gè)均包括多個(gè)存儲(chǔ)單元的多個(gè)存儲(chǔ)塊blk1至blkz。每個(gè)存儲(chǔ)塊可以通過至少一個(gè)串選擇線ssl、多個(gè)字線wl和至少一個(gè)接地選擇線gsl連接到行譯碼器電路293。每個(gè)存儲(chǔ)塊可以通過多個(gè)位線bl連接到頁(yè)面緩沖電路295。存儲(chǔ)塊blk1至blkz可以共同地連接到多個(gè)位線bl。存儲(chǔ)塊blk1至blkz中的存儲(chǔ)單元可以具有相同的結(jié)構(gòu)。
行譯碼器電路293可以通過多個(gè)接地選擇線gsl、多個(gè)字線wl和多個(gè)串選擇線ssl連接到存儲(chǔ)單元陣列291。行譯碼器電路293可以根據(jù)控制邏輯電路299的控制進(jìn)行操作。行譯碼器電路293可以對(duì)通過輸入/輸出信道從控制電路270接收的地址進(jìn)行譯碼,并且可以基于譯碼的地址來(lái)控制要被施加到串選擇線ssl、字線wl和接地選擇線gsl的電壓。
頁(yè)面緩沖器295可以通過位線bl連接到存儲(chǔ)單元陣列291。頁(yè)面緩沖電路295可以在控制邏輯電路299的控制之下進(jìn)行操作。
數(shù)據(jù)輸入/輸出電路297可以通過數(shù)據(jù)線dl連接到頁(yè)面緩沖電路295。數(shù)據(jù)輸入/輸出電路297可以通過輸入/輸出信道向控制電路270(控制器)輸出由頁(yè)面緩沖電路295讀取的數(shù)據(jù),并且可以向頁(yè)緩沖電路295傳遞通過輸入/輸出信道從控制電路270接收的數(shù)據(jù)。
控制邏輯電路299可以通過輸入/輸出信道從控制電路270接收命令,并且可以通過控制信道從其接收控制信號(hào)。
圖27是圖示出根據(jù)本發(fā)明構(gòu)思的實(shí)施例的存儲(chǔ)塊blka的電路圖。參考圖27,存儲(chǔ)塊blka可以包括多個(gè)單元串cs11至cs21和cs12至cs22。多個(gè)單元串cs11至cs21和cs12至cs22可以排列為行和列的矩陣。
例如,沿著行方向排列的單元串cs11和cs12可以構(gòu)成第一行,而沿著行方向排列的單元串cs21和cs22可以構(gòu)成第二行。沿著列方向排列的單元串cs11和cs21可以構(gòu)成第一列,而沿著列方向排列的單元串cs12和cs22可以構(gòu)成第二列。
每個(gè)單元串可以包含多個(gè)單元晶體管。單元晶體管可以包括接地選擇晶體管gst、存儲(chǔ)單元mc1至mc6以及串選擇晶體管ssta和sstb??梢栽谂c在其上沿著行和列排列單元串cs11至cs21和cs12至cs22的平面(例如,存儲(chǔ)塊blka的基板上的平面)垂直的高度方向上堆疊每個(gè)單元串中的接地選擇晶體管gst、存儲(chǔ)單元mc1至mc6以及串選擇晶體管ssta和sstb。
每個(gè)單元晶體管可以是其閾值電壓根據(jù)在其絕緣層中所俘獲的電荷的量而改變的電荷俘獲類型單元晶體管。
最低的接地選擇晶體管gst可以共同地連接到公共源極線csl。
第一行中的單元串cs11和cs12的接地選擇晶體管gst的控制柵極可以共同地連接到接地選擇線gsl1,并且第二行中的單元串cs21和cs22的接地選擇晶體管gst的控制柵極可以共同地連接到接地選擇線gsl2。也就是說,不同的行中的單元串可以連接到不同的接地選擇線。
共同地連接到字線的是被放置在從基板(或接地選擇晶體管gst)起相同的高度(或次序)處的存儲(chǔ)單元的控制柵極。連接到不同的字線wl1至wl6的是被放置在不同的高度(或次序)處的存儲(chǔ)單元的控制柵極。例如,存儲(chǔ)單元mc1可以共同地連接到字線wl1。存儲(chǔ)單元mc2可以共同地連接到字線wl2。存儲(chǔ)單元mc3可以共同地連接到字線wl3。存儲(chǔ)單元mc4可以共同地連接到字線wl4。存儲(chǔ)單元mc5可以共同地連接到字線wl5。存儲(chǔ)單元mc6可以共同地連接到字線wl6。
也就是說,不同的行中的單元串可以連接到不同的串選擇線。相同的行中的單元串的具有相同的高度(或次序)的串選擇晶體管可以連接到相同的串選擇線。相同的行中的單元串的具有不同的高度(或次序)的串選擇晶體管可以連接到不同的串選擇線。
在示例性實(shí)施例中,相同的行中的單元串的串選擇晶體管可以共同地連接到串選擇線。例如,第一行中的單元串cs11和cs12的串選擇晶體管ssta和sstb可以共同地連接到串選擇線。第二行中的單元串cs21和cs22的串選擇晶體管ssta和sstb可以共同地連接到串選擇線。
單元串cs11至cs21和cs12至cs22的列可以分別地連接到不同的位線bl1和bl2。例如,單元串cs11和cs21的串選擇晶體管sstb可以共同地連接到位線bl1。單元串cs12和cs22的串選擇晶體管sstb可以共同地連接到位線bl2。
單元串cs11和cs12可以構(gòu)成第一平面。單元串cs21和cs22可以構(gòu)成第二平面。
在本發(fā)明構(gòu)思的實(shí)施例中,提供一種三維(3d)存儲(chǔ)器陣列。在具有安置在硅基板上的有源區(qū)域和與那些存儲(chǔ)單元的操作相關(guān)聯(lián)的電路的存儲(chǔ)單元陣列的一個(gè)或多個(gè)物理級(jí)中整體地形成3d存儲(chǔ)器陣列,而無(wú)論此類相關(guān)聯(lián)的電路是在此類基板之上還是在其內(nèi)。術(shù)語(yǔ)“整體地”意指陣列的每個(gè)級(jí)的層被直接地沉積在陣列的每個(gè)下級(jí)的層上。
在本發(fā)明構(gòu)思的實(shí)施例中,3d存儲(chǔ)器陣列包括被垂直地定向使得至少一個(gè)存儲(chǔ)單元位于另一個(gè)存儲(chǔ)單元之上的垂直nand串。至少一個(gè)存儲(chǔ)單元可以包括電荷俘獲層。每個(gè)垂直nand串可以包括位于存儲(chǔ)單元之上的至少一個(gè)選擇晶體管、具有與存儲(chǔ)單元相同的結(jié)構(gòu)并且與存儲(chǔ)單元一起整體地形成的至少一個(gè)選擇晶體管。
通過引用被合并于此的以下專利文獻(xiàn)——美國(guó)專利第7,679,133號(hào);第8,553,466號(hào);第8,654,587號(hào);第8,559,235號(hào);以及美國(guó)專利公開第2011/0233648號(hào)——描述了用于三維存儲(chǔ)器陣列的適當(dāng)?shù)呐渲?,其中,三維存儲(chǔ)器陣列被配置為多個(gè)級(jí),其中在級(jí)之間共享字線和/或位線。
根據(jù)本發(fā)明構(gòu)思的實(shí)施例,可以提供一種支持服務(wù)器設(shè)備的功能的存儲(chǔ)設(shè)備,以及操作存儲(chǔ)設(shè)備的方法。因此,可以減少服務(wù)器設(shè)備的負(fù)載,并且可以提高關(guān)于服務(wù)器設(shè)備的可擴(kuò)展性??梢酝ㄟ^僅僅添加與添加存儲(chǔ)設(shè)備相關(guān)聯(lián)的成本來(lái)擴(kuò)展服務(wù)器設(shè)備的資源和容量,由此使與當(dāng)替代地添加另外的服務(wù)器設(shè)備時(shí)相比,利用更少成本管理更多內(nèi)容成為可能。此外,可以提高存儲(chǔ)設(shè)備的操作速度。因此,可以提高包括存儲(chǔ)設(shè)備的服務(wù)器設(shè)備的操作速度。
雖然已經(jīng)參考示例性實(shí)施例描述了本發(fā)明構(gòu)思,但對(duì)本領(lǐng)域技術(shù)人員將明顯的是,在不背離本發(fā)明構(gòu)思的精神和范圍的情況下,可以進(jìn)行各種改變和修改。因此,應(yīng)當(dāng)理解,以上實(shí)施例不是限制性的,而是說明性的。