鬼佬大哥大
  • / 18
  • 下載費用:30 金幣  

用于閃存的頁面分配.pdf

摘要
申請專利號:

CN201380070124.0

申請日:

2013.01.11

公開號:

CN104919433A

公開日:

2015.09.16

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/10申請日:20130111|||公開
IPC分類號: G06F12/10; G11C7/00 主分類號: G06F12/10
申請人: 英派爾科技開發有限公司
發明人: 馬旭東
地址: 美國特拉華州
優先權:
專利代理機構: 北京三友知識產權代理有限公司11127 代理人: 呂俊剛; 劉久亮
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201380070124.0

授權公告號:

||||||

法律狀態公告日:

2017.10.31|||2015.10.14|||2015.09.16

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本文描述了用于在閃存中分配頁面的技術。一些示例性技術可以接收多個數據元素和寫請求,以將多個數據元素寫入閃存。示例性技術可以基于相關性準則來識別數據元素的子集之間的相關性。示例性技術可以分配閃存的相鄰頁面,用于存儲數據元素的子集。示例性技術可以將數據元素的子集寫入所分配的頁面。

權利要求書

權利要求書
1.  一種用于在閃存中分配頁面的方法,該方法包括以下步驟:
接收多個數據元素和寫請求,以將所述多個數據元素寫入所述閃存;
基于相關性準則來識別所述數據元素的子集之間的相關性;
分配所述閃存的相鄰頁面,用于存儲所述數據元素的子集;以及
將所述數據元素的子集寫入所分配的頁面。

2.  根據權利要求1所述的方法,該方法還包括以下步驟:
接收一系列讀請求,以讀取所述數據元素的子集;以及
根據補償單元間干擾的聯合解碼決策,從所分配的頁面和與所分配的頁面相鄰的附加頁面讀取所述數據元素的子集。

3.  根據權利要求1所述的方法,其中,所述多個數據元素包括多個文件或文件段。

4.  根據權利要求1所述的方法,其中,基于所述相關性準則來識別所述數據元素的子集之間的相關性的步驟包括以下步驟:當所述數據元素的子集同時地、順序地或者在閾值時間量內被訪問時,確定所述數據元素的子集是相關的。

5.  根據權利要求4所述的方法,其中,當所述數據元素的子集同時地、順序地或者在閾值時間量內被訪問時確定所述數據元素的子集相關的步驟包括以下步驟:基于所述數據元素的子集的先前訪問的監測記錄來確定所述數據元素的子集是相關的。

6.  根據權利要求4所述的方法,其中,當所述數據元素的子集同時地、順序地或者在閾值時間量內被訪問時確定所述數據元素的子集相關的步驟包括以下步驟:基于啟發法確定所述數據元素的子集是相關的。

7.  根據權利要求4所述的方法,其中,當所述數據元素的子集同時地、順序地或者在閾值時間量內被訪問時確定所述數據元素的子集相關的步驟包括以下步驟:基于包含所述相關性的用戶輸入的用戶交互記錄來確定所述數據元素的子集是相關的。

8.  根據權利要求1所述的方法,其中,所述相鄰頁面包括字線內的鄰近頁面。

9.  根據權利要求1所述的方法,其中,所述相鄰頁面包括在多個字線之間的鄰近頁面。

10.  根據權利要求1所述的方法,其中,所述閃存包括NAND型閃存。

11.  根據權利要求1所述的方法,其中,所述閃存是單級型閃存。

12.  一種計算機可讀介質,該計算機可讀介質包括上面存儲的計算機可執行指令,所述計算機可執行指令在由計算機執行時,使得所述計算機:
接收多個數據元素和寫請求,以將所述多個數據元素寫入閃存;
基于相關性準則來識別所述數據元素的子集之間的相關性;
分配所述閃存的相鄰頁面,用于存儲所述數據元素的子集;并且
將所述數據元素的子集寫入所分配的頁面。

13.  根據權利要求12所述的計算機可讀介質,該計算機可讀介質還包括上面存儲的計算機可執行指令,所述計算機可執行指令在由所述計算機執行時,使得所述計算機:
接收一系列讀請求,以讀取所述數據元素的子集;并且
根據補償單元間干擾的聯合解碼決策,從所分配的頁面和與所分配的頁面相鄰的附加頁面讀取所述數據元素的子集。

14.  根據權利要求12所述的計算機可讀介質,其中,所述多個數據元素包括多個文件或文件段。

15.  根據權利要求12所述的計算機可讀介質,其中,為了基于所述相關性準則來識別所述數據元素的子集之間的相關性,所述計算機可執行指令還使得所述計算機在所述數據元素的子集同時地、順序地或者在閾值時間量內被訪問時,確定所述數據元素的子集是相關的。

16.  根據權利要求12所述的計算機可讀介質,其中,所述數據元素的子集包括超文本標記語言HTML文件和屬于單個網頁的圖像文件。

17.  根據權利要求12所述的計算機可讀介質,其中,所述數據元素的子集包括視頻的連續視頻幀。

18.  根據權利要求12所述的計算機可讀介質,其中,所述數據元素的子集包括:第一數據元素,其包括第一產品的信息;以及第二數據元素,其包括與所述第一產品相關的第二產品的信息。

19.  根據權利要求12所述的計算機可讀介質,其中,所述相鄰頁面包括字線內的鄰近頁面。

20.  一種計算裝置,該計算裝置包括:
閃存,其包括被布置為形成多個存儲頁面的多個存儲單元;以及
操作系統,其連接至所述閃存并且被配置為:
接收多個數據元素和寫請求,以將所述多個數據元素寫入所述閃存,
基于相關性準則來識別所述數據元素的子集之間的相關性,
分配所述閃存的相鄰頁面,用于存儲所述數據元素的子集,并且
將所述數據元素的子集寫入所分配的頁面。

21.  根據權利要求20所述的計算裝置,其中,所述操作系統還被配置為:
接收一系列讀請求,以讀取所述數據元素的子集;以及
根據補償單元間干擾的聯合解碼決策,從所分配的頁面和與所分配的頁面相鄰的附加頁面讀取所述數據元素的子集。

說明書

說明書用于閃存的頁面分配
背景技術
除非在此另行指出,否則本部分中描述的資料對于本申請中的權利要求而言不是現有技術,并且不通過被包括在本部分中而被認為是現有技術。
在閃存中,可以通過改變閃存內的一個或更多個存儲單元的閾值電壓電平來記錄信息。在寫操作期間,第一存儲單元的閾值電壓電平的修正可能導致對附近的第二存儲單元的閾值電壓電平的干擾。即,第二存儲單元的閾值電壓電平可能無意地改變,當對第二存儲單元進行解碼時,可能導致錯誤。這些干擾可以被稱為單元間干擾。
解決由單元間干擾導致的解碼錯誤的一些方法涉及聯合解碼決策的使用。在聯合解碼決策中,可以讀取所請求的存儲單元以及未請求的相鄰存儲單元的閾值電壓電平。聯合解碼決策可以利用相鄰存儲單元的閾值電壓電平,以便對所請求的存儲單元進行準確的解碼。特別是,相鄰存儲單元的閾值電壓電平可以用于補償對所請求的存儲單元的潛在干擾。然而,聯合解碼決策的實現可能導致使用針對閃存的傳統頁面分配方案的系統中的無效率。
發明內容
本發明總體上描述了用于在閃存中分配頁面的技術。一些示例性方法可以接收多個數據元素和寫請求,以將多個數據元素寫入閃存。示例性方法可以基于相關性準則來識別數據元素的子集之間的相關性。示例性方法可以分配閃存的相鄰頁面以用于存儲數據元素的子集。示例性方法可以將數據元素的子集寫入所分配的頁面。
本公開總體上還描述了一些計算機可讀介質,所述計算機可讀介質上存儲有計算機可執行指令,當所述計算機可執行指令由計算機執行時,使得該計算機執行用于在閃存中分配頁面的一個或更多個操作。一些示例性操作可以包括:接收多個數據元素和寫請求,以將多個數據元素寫入閃存。示例性操作可以包括:基于相關性準則,識別數據元素的子集之間的相關性。示例性操作可以包括:分配閃存的相鄰頁面,用于存儲數據元素的子集。示例性操作可以包括:將數據元素的子集寫入所分配的頁面中。
本公開總體上還描述適于在閃存中分配頁面的一些計算裝置。這些計算裝置可以包括閃存和操作系統。閃存可以包括被布置為形成多個存儲頁面的多個存儲單元。操作系統可以連接至閃存,并且可以被配置為執行一個或更多個操作。一些示例性操作可以包括:接收多個數據元素和寫請求,以將多個數據元素寫入閃存。示例性操作可以包括:基于相關性準則,識別數據元素的子集之間的相關性。示例性操作可以包括:分配閃存的相鄰頁面,用于存儲數據元素的子集。示例性操作可以包括:將數據元素的子集寫入所分配的頁面。
以上發明內容僅是示例性的,并且不旨在以任何方式進行限制。除了以上描述的說明性方面、實施方式和特征之外,進一步的方面、實施方式和特征將通過參照附圖和以下詳細說明而變得明顯。
附圖說明
本公開的以上和其它特征將從以下詳細說明、附圖和所附權利要求書而變得更加明顯。將理解,這些附圖僅示出根據本公開的多個實施方式,并且因此不被認為是對其范圍的限制,將參照附圖利用附加的具體內容和細節來描述本公開,附圖中:
圖1是示出適于在閃存中分配頁面的計算機的示例性架構的視圖;
圖2是示出閃存的存儲塊中的頁面的示例性布置的視圖;
圖3是示出適于在閃存中分配頁面的示例性處理的流程圖;
圖4是示出用于示例性計算系統的計算機硬件架構的框圖;以及
圖5是示出計算機程序產品的示意圖,該計算機程序產品包括用于在計算裝置上執行計算機處理的計算機程序;
所有附圖根據這里呈現的至少一些實施方式來布置。
具體實施方式
在本具體實施方式中,參照形成其一部分的附圖。在附圖中,除非上下文另行指出,否則類似的符號通常標識類似的組件。具體實施方式和附圖中描述的示例性實施方式不意味著是限制性的。在不脫離本文呈現的主題的精神或范圍的情況下,可以利用其它實施方式,并且可以進行其它改變。將容易理解,在此總體描述和在附圖中例示的本公開的方面可以按照各種不同的配置來布置、替換、組合、分離和設計,所有 布置在此被明確地考慮。
本公開總體上被描繪為尤其涉及適于實現用于閃存的頁面分配方案的技術。該技術可以適于識別高度相關的文件、文件段或其它數據元素。如這里使用的,高度相關的數據元素可以指同時地、順序地和/或在閾值時間量內被訪問的數據元素。這些技術可以適于在閃存中分配相鄰存儲頁面,用于存儲高度相關的數據元素。高度相關的數據元素可以被寫入所分配的相鄰存儲頁面。
閃存中存在的共同缺點是單元間干擾。單元間干擾可以指當寫入到期望的存儲單元時導致的對附近存儲單元的干擾。隨著閃存技術繼續演進,閃存中的各個存儲單元的幾何尺寸可能繼續縮小,并且存儲單元可以更緊密地布置在一起。這些進步可以允許在閃存上的相同面積內放置更多的存儲單元。結果,單元間干擾在未來的閃存中可能變得更差。
解決單元間干擾的一些方法可能涉及聯合解碼決策的使用。在傳統逐位解碼處理中,各個請求的存儲單元可以被獨立地解碼。然而,由于單元間干擾,導致從所請求的存儲單元獲取的解碼結果可能不正確。在聯合解碼決策中,可以使用相鄰的存儲單元,以便對所請求的存儲單元更準確地解碼。相鄰存儲單元是在幾何上彼此靠近的存儲單元。如果一個存儲頁面中的至少一個存儲單元與另一個存儲頁面中的至少一個存儲單元相鄰,則兩個存儲頁面被稱為鄰居或相鄰存儲頁面。相鄰存儲單元可以包括位于與所請求的存儲單元相同的頁面上的存儲單元以及位于相鄰頁面上的存儲單元。
傳統閃存在變為可用時,可以分配頁面。即,當請求頁面時,傳統閃存可以簡單地分配下一個空白(clean)頁面,而不考慮要存儲在閃存上的數據元素的特性。下一個空白頁面可以不是相鄰的或者甚至靠近前一頁面。結果,跨越多個頁面的高度相關的數據可以被存儲在非相鄰或遠處的頁面上。
當實現聯合解碼決策時,對應于高度相關的數據元素的各個請求的存儲單元的讀取可以包括未請求的相鄰存儲單元的讀取。相鄰存儲單元可以位于與包含所請求的存儲單元的頁面分離的頁面中。在總讀取速度、錯誤率、實現復雜性或者其組合方面,不包含所請求的存儲單元的多個頁面的讀取可能導致各種性能無效率。
這里描述的各種實施方式提供用于分配相鄰頁面,用于存儲高度相關的數據元素。通過將高度相關的數據元素存儲在相鄰頁面上,當實現聯合解碼決策時,不包含請求的存儲單元的頁面的數量可以充分減少。例如,第一讀請求和第二讀請求可以請 求高度相關的數據。讀取的給定頁面可以包括不是第一讀請求的一部分但是是用于另一個頁面上的存儲單元的聯合解碼決策的一部分的存儲單元。然而,給定頁面還可以包括作為第二讀請求的一部分的存儲單元(其可以相同或者可以不同)。結果,當實現聯合解碼決策時,與傳統頁面分配方法相比,用于存儲高度相關的數據元素的相鄰頁面的分配可以得到改進的性能效率。
圖1是示出根據這里呈現的至少一些實施方式布置的適于在閃存中分配頁面的計算機100的示例性架構的視圖。計算機100可以包括閃存102。閃存102可以是關于計算機100的內部存儲裝置或外部存儲裝置。閃存102可以是與非(“NAND”)型閃存或者或非(“NOR”)型閃存。閃存102還可以是單級單元型閃存或多級單元型閃存。還可以使用其它類型的閃存裝置。
圖1中示出閃存102的示例性內部構造的一部分。閃存102可以包括多個字線,包括第一字線104A、第二字線104B和第三字線104C(共同稱為字線104)。字線104有時通俗地稱為閃存102中的“行”。閃存102還可以包括多個位線,包括第一位線106A、第二位線106B、第三位線106C、第四位線106D和第五位線106E(共同稱為位線106)。位線106有時通俗地稱為閃存102中的“列”。
閃存102還可以包括多個存儲單元108A-108O(共同稱為存儲單元108)。各個存儲單元108可以布置在字線104中的一個和位線106中的一個的交叉處。各個存儲單元108可以包括布置在源極和漏極之間的溝道。浮置柵可以布置在溝道上,并且可以與溝道電分離。控制柵可以布置在浮置柵上,并且可以與浮置柵電分離。控制柵可以連接至字線104中的一個,并且源極和漏極可以連接至位線106中的一個。來自多個存儲單元的控制柵可以共享給定的字線,來自多個存儲單元的源極和漏極可以共享給定的位線。例如,存儲單元108A-108E的控制柵可以共享第一字線104A,存儲單元108A、108F、108K的源極和漏極可以共享第一位線106A。
各個存儲單元可以通過將電荷存儲在浮置柵上來編程。帶電浮置柵可以表示第一邏輯狀態(例如,邏輯“0”),并且不帶電浮置柵可以表示第二邏輯狀態(例如,邏輯“1”)。存儲單元可以通過將第一電壓(例如,負電壓)施加到對應位線并且將高于第一電壓的第二電壓(例如,正電壓)施加到對應字線來編程。在已知為隧道注入的整個處理中,對應于交叉位線和字線的浮置柵可以累積并且捕獲負電荷。浮置柵中累積的負電荷可以有效地增加存儲單元的閾值電壓電平。從而,通過讀取給定存儲單 元的閾值電壓電平,可以通過確定閾值電壓電平是否增加來對被編程到存儲單元中的邏輯狀態進行解碼。
由于寄生電容耦合效應,對期望存儲單元施加電壓可能無意地影響相鄰存儲單元的控制柵、源極和/或漏極的電壓電平。相鄰存儲單元可以包括與期望存儲單元直接相鄰的存儲單元和/或在距期望存儲單元一定閾值距離內的存儲單元。由寫入到期望存儲單元導致的對相鄰存儲單元的無意的效果可以被稱為單元間干擾。例如,寫入到存儲單元108H可能無意地影響存儲單元108B-108D、108G、108I、108L-108N中的一個或更多個的電壓電平。當讀取被無意地影響的存儲單元的閾值電壓電平時,由于單元間干擾,存儲單元的經解碼的邏輯狀態可能不正確(例如,應該被解碼為邏輯“1”的存儲單元可能被不正確地解碼為邏輯“0”)。
頁面可以指可以支持讀操作或寫操作的閃存102的最小區域。塊可以指可以支持擦除操作的閃存102的最小區域。頁面可以包括多個存儲單元。塊可以包括多個頁面。各個字線104可以包括一個或更多個頁面。在一些實施方式中,各個字線104可以對應于一個頁面。在一些其它實施方式中,各個字線104可以對應于兩個或更多個頁面。在一些其它實施方式中,其中,各個存儲單元可以存儲多個位,頁面可以指存儲在一組存儲單元中的多個位。例如,一個存儲頁面可以指一組存儲單元的最高有效位。在該情況下,存儲頁面可以被認為包含該組存儲單元。
計算機100可以被配置為執行操作系統110和應用112。應用112可以被配置為生成用于從閃存102讀取數據元素的讀請求或者用于將數據元素寫入閃存102的寫請求。操作系統110可以被配置為對閃存102執行讀操作,以實現讀請求。操作系統110還可以被配置為對閃存102執行寫操作,以實現寫請求。
當從閃存102讀取數據元素時,操作系統110可以被配置為實現聯合解碼決策。當實現聯合解碼決策時,操作系統110可以不僅讀取所請求的存儲單元的閾值電壓電平而且讀取與所請求的存儲單元相鄰的存儲單元的閾值電壓電平。聯合解碼決策可以利用相鄰存儲單元的閾值電壓電平來對所請求的存儲單元進行解碼,以便補償由相鄰存儲單元導致的可能干擾。
當操作系統110接收寫請求以將數據元素114寫入閃存102時,頁面分配模塊116可以被配置為確定兩個或更多個數據元素114之間的相關性。相關性可以利用監測記錄118、啟發法120和/或用戶交互記錄122來確定,如以下參照圖3更詳細地描 述的。可以利用相關性來形成兩個或更多個高度相關的數據元素的多個組。頁面分配模塊116可以被配置為分配閃存102的相鄰頁面,用于存儲各組高度相關的數據元素。頁面分配模塊116可以被實現在操作系統110、閃存控制器(未示出)或者能夠實現這里描述的頁面分配技術的一些其它軟件、硬件或固件中。
在說明性示例中,操作系統110可以接收識別要從閃存102讀取的多個存儲單元的一系列讀請求。當實現聯合解碼決策時,操作系統110可以被配置為不僅讀取所請求的存儲單元,而且讀取與所請求的存儲單元相鄰的未請求的存儲單元。一些相鄰存儲單元可以被包含在與所請求的存儲單元相同的頁面上。然而,一些其它相鄰存儲單元可以被包含在相鄰頁面中,這些相鄰頁面不包含該系列讀請求中識別的所請求的存儲單元。在總讀取速度、錯誤率、實現復雜性或其組合方面,不包含所請求的存儲單元的多個相鄰頁面的讀取可能導致各種性能無效率。
為了減少被讀取但是不包含所請求的存儲單元的獨特頁面的數量,頁面分配模塊116可以被配置為分配相鄰頁面以用于高度相關的數據元素。高度相關的數據元素可以指同時地、順序地或者在閾值時間量內被訪問的數據元素。例如,高度相關的數據元素可以指具有一些關系使得數據元素很可能經由該系列讀請求一起被訪問的數據元素。當高度相關的數據元素已被識別時,頁面分配模塊116可以被配置為在閃存102中分配相鄰頁面,用于存儲高度相關的數據元素。當閃存102中的相鄰頁面已被分配時,操作系統110可以將高度相關的數據元素寫入所分配的相鄰頁面。
當操作系統110接收到該系列讀請求時,操作系統110可以被配置為針對各個請求的存儲單元讀取包含所請求的存儲單元的頁面以及包含與所請求的存儲單元相鄰的未請求的存儲單元的相鄰頁面。該系列讀請求可以旨在讀取存儲在閃存102中的高度相關的數據元素。結果,被讀取用于一個讀請求的至少一些相鄰頁面可以包含用于另一個讀請求的所請求的存儲單元。從而,通過將高度相關的數據存儲在相鄰頁面上,更大數量的頁面可以包含用于滿足該系列讀請求的所請求的存儲單元和未請求的相鄰存儲單元這二者。因此,被讀取但是不包含該系列讀請求中識別的所請求的存儲單元的獨特頁面的數量可以充分減少。在一些實施方式中,操作系統110的讀操作可以最優化,使得在不同讀請求之間讀取的交疊頁面僅被讀取一次。
圖2是示出根據這里呈現的至少一些實施方式布置的閃存102的存儲塊200中的頁面的示例性布置的視圖。存儲塊200可以包括多個頁面,包括第一頁面202A、第 二頁面202B、第三頁面202C、第四頁面202D、第五頁面202E和第六頁面202F(共同稱為頁面202)。頁面202可以表示閃存102中的相鄰頁面。在一些實施方式中,各個頁面202可以表示閃存102中的字線104中的一個。在一些其它實施方式中,兩個或更多個頁面202可以被包括在閃存102中的字線104中的一個中。
傳統頁面分配機制可以響應于寫請求分配閃存102中可用的下一個空白頁面,而不考慮要被存儲在閃存中的數據元素的特性。例如,在傳統頁面分配機制中,高度相關的數據元素可以被存儲在第一頁面202A、第三頁面202C和第五頁面202E中。在本示例中,操作系統110可以接收用于包含在第一頁面202A、第三頁面202C和第五頁面202E中的高度相關的數據元素的一系列讀請求。響應于該系列讀請求,操作系統110可以被配置為讀取包含所請求的存儲單元的第一頁面202A、第三頁面202C和第五頁面202E。
當實現聯合解碼決策時,操作系統110還可以被配置為讀取相鄰存儲單元的閾值電壓電平,一些相鄰存儲單元可以被包含在相鄰頁面中。第二頁面202B可以與第一頁面202A相鄰。第四頁面202D可以與第三頁面202C相鄰。第六頁面202F可以與第五頁面202E相鄰。從而,操作系統110可以被配置為還讀取第二頁面202B、第四頁面202D和第六頁面202F。然而,因為這些頁面不是讀請求的一部分,所以第二頁面202B、第四頁面202D和第六頁面202F的讀取可能不是有效的。
根據各種實施方式,頁面分配模塊116可以被配置為將相同的高度相關的數據元素分配給相鄰頁面,諸如第一頁面202A、第二頁面202B和第三頁面202C。在該情況下,操作系統110可以接收一系列讀請求,用于被包含在第一頁面202A、第二頁面202B和第三頁面202C中的高度相關的數據元素。響應于該序列讀請求,操作系統110可以讀取第一頁面202A、第二頁面202B和第三頁面202C。
當實現聯合解碼決策時,操作系統110還可以讀取相鄰存儲單元的閾值電壓,一些相鄰存儲單元可以被包含在其它相鄰頁面中。第二頁面202B可以與第一頁面202A相鄰。第三頁面202C可以與第二頁面202B相鄰。第四頁面202D可以與第三頁面202C相鄰。這里,可以觀察到,一些相鄰頁面(例如,第二頁面202B和第三頁面202C)與被讀取并且包含所請求的存儲單元的頁面交疊。因而,交疊頁面可以一次被讀取,并且操作系統110可以被配置為還讀取第四頁面202D。與傳統頁面分配機制相比,通過利用頁面分配模塊116,在本示例中,被讀取的頁面的總數可以從六個 頁面減少到四個頁面。因而,頁面分配模塊116可以使得由操作系統110更有效地實現聯合解碼決策。
圖3是示出根據這里呈現的至少一些實施方式布置的適于在閃存中分配頁面的示例性處理300的流程圖。處理300可以包括如一個或更多個塊302-308所示的各種操作、功能或動作。
處理300可以開始于塊302(接收包括多個數據元素的寫請求),其中,頁面分配模塊116可以被配置為接收包括要被寫入閃存102中的多個數據元素(諸如數據元素114)的寫請求。例如,可以從應用112接收寫請求。數據元素可以包括文件、文件段或者數據的一些其它可區分單元。塊302之后可以是塊304。
在塊304(確定一組或更多組高度相關的數據元素)處,頁面分配模塊116可以被配置為識別多個數據元素中的兩個或更多個數據元素之間的各種相關性。可以利用這些相關性來形成多組高度相關的數據元素。如果數據元素被同時地、順序地或者在閾值時間量內訪問,則兩個或更多個數據元素可以高度相關。
在第一示例中,網頁可以包括超文本標記語言(“HTML”)文件和圖像文件。因為HTML文件和圖像文件可以被一起顯示在同一網頁內,所以HTML文件和圖像文件可以被認為高度相關。在第二示例中,視頻文件可以由多個視頻幀構成。各個視頻幀可以對應于視頻文件的文件段。因為當播放視頻文件時,文件段可以被順序地處理,所以對應于連續視頻幀的文件段可以被認為高度相關。在第三示例中,當電子商務網站顯示關于如由客戶請求的第一產品的信息時,電子商務網站還可以顯示與針對客戶的建議類似或對應的第二產品的信息。因為用于兩種產品的信息可以經由電子商務網站被同時顯示,所以關于第一產品的信息和關于第二產品的信息可以被認為高度相關。
在一些實施方式中,通過監測與數據元素的應用交互,數據元素可以被確定為高度相關。例如,應用112可以同時地、順序地或在閾值時間量內訪問(例如,讀和/或寫)特定數據元素。監測模塊124可以被配置為監測并記錄各個數據元素被應用112訪問的時間。各個數據元素的訪問時間可以被存儲在監測記錄118中。當操作系統110接收寫請求以將多個數據元素寫入閃存102時,頁面分配模塊116可以被配置為通過分析監測記錄118中的數據元素的訪問時間來識別數據元素的高度相關組。
在一些其它實施方式中,數據元素可以基于啟發法120被確定為高度相關。啟發 法可以指可以被應用以將特定數據元素識別為高度相關的預定規則。數據元素可以基于與各個數據元素關聯或者被包含在各個數據元素內的標識符(例如,文件名擴展、嵌入式元數據、外部元數據、文件頭等)來被相關聯或者區分。在一個示例中,數據結構可以被具體實現為橫跨多個頁面的數據元素。在這種情況下,啟發法120可以指定作為數據結構的一部分的數據元素高度相關。在另一個示例中,音頻文件可以被具體實現為橫跨多個頁面的多個數據元素。在這種情況下,啟發法120可以指定表示音頻文件中的連續音頻段的數據元素高度相關。
在另一些其它實施方式中,數據元素可以基于與應用的用戶交互而被確定為高度相關。例如,應用112可以使得用戶能夠將特定數據元素標記或高亮顯示為高度相關。用戶提供的相關性可以被存儲在用戶交互記錄122中。當操作系統110接收寫請求以將多個數據元素存儲到閃存102時,頁面分配模塊116可以被配置為利用存儲在用戶交互記錄122中的相關性來識別數據元素的高度相關組。
頁面分配模塊116可以被配置為利用監測記錄118、啟發法120和/或用戶交互記錄122來確定高度相關組。頁面分配模塊116還可以被配置為計算針對各組數據元素的相關性得分。較高相關性得分可以表示較高相關性,而較低相關性得分可以表示兩個或更多個數據元素之間的較少相關性。如果數據元素滿足最小相關性得分,則數據元素可以被認為高度相關。可以基于與監測記錄、啟發法120和/或用戶交互記錄122關聯的統計模型來確定相關性得分。統計模型可以指定一些特性或特性的組合可以與較高相關性得分相關,而一些其它特性或特性的其它組合可以與較低相關性得分關聯。塊304之后可以是塊306。
在塊306(將閃存中的相鄰頁面分配給各組高度相關的數據元素)處,頁面分配模塊116可以被配置為在可能時,將閃存102中的相鄰頁面分配給各組高度相關的數據元素。在一些實施方式中,相鄰頁面可以是閃存102內的鄰近頁面。例如,鄰近頁面可以具有連續存儲地址。在一些其它實施方式中,相鄰頁面可以是閃存102內的緊密鄰近(near-adjacent)頁面。在一些情況下,自由鄰近(free adjacent)頁面可能不可用,因此可以分配物理上更靠近的緊密鄰近頁面。塊306之后可以是塊308。
在塊308(將各組高度相關的數據元素寫入所分配的相鄰頁面)處,頁面分配模塊116可以被配置為將各組高度相關的數據元素寫入閃存102中的所分配的相鄰頁面。在塊308之后,處理300重復(例如,周期性地、連續地或者在需要時)或者終 止。
圖4是示出根據這里呈現的至少一些實施方式布置的用于示例性計算系統的計算機硬件架構的框圖。圖4包括計算機400,計算機400包括處理器410、存儲器420以及一個或更多個驅動器430。計算機400可以被實現為傳統計算機系統、嵌入式控制計算機、膝上型計算機、或服務器計算機、移動裝置、機頂盒、公用信息服務站、車輛信息系統、移動電話、專用機器或者其它硬件平臺。
驅動器430及其關聯計算機存儲介質提供計算機可讀指令、數據結構、程序模塊和用于計算機400的其它數據的存儲。驅動器430可以包括操作系統440、應用程序450、程序模塊460和數據庫480。操作系統540可以被配置為包括用于在閃存102中分配頁面的頁面分配模塊116。計算機400還包括用戶可以用來輸入命令和數據的用戶輸入裝置490。輸入裝置可以包括電子數字化器、麥克風、鍵盤和通常被稱為鼠標、軌跡球或觸摸板的指點裝置。其它輸入裝置可以包括操縱桿、游戲手柄、碟形衛星天線、掃描儀等。
這些和其它輸入裝置可以通過連接到系統總線的用戶輸入接口連接到處理器410,但是可以通過其它接口和總線結構(諸如并行端口、游戲端口或通用串行總線(“USB”))連接。諸如計算機400的計算機還可以包括諸如揚聲器的其它外圍輸出裝置,其可以通過輸出外圍接口494等連接。
計算機400可以利用到一個或更多個計算機(諸如,連接到網絡接口496的遠程計算機)的邏輯連接在聯網環境中工作。遠程計算機可以是個人計算機、服務器、路由器、網絡PC、對等裝置或其它公共網絡節點,并且可以包括以上關于計算機400描述的許多或所有元素。聯網環境在辦公室中是平常的,諸如企業廣域網(“WAN”)、局域網(“LAN”)、內聯網和互聯網。
當在LAN或WLAN聯網環境中使用時,計算機400可以通過網絡接口496或適配器連接至LAN。當在WAN聯網環境中使用時,計算機400通常包括用于通過WAN(諸如互聯網或網絡406)建立通信的調制解調器或其它手段。WAN可以包括互聯網、所示的網絡406、各種其它網絡或其任何組合。將理解,可以使用在計算機之間建立通信鏈路、環、網格、總線、云或網絡的其它機制。
根據一些實施方式,計算機400可以連接至聯網環境。計算機400可以包括與驅動器430或其它存儲裝置關聯的物理計算機可讀取存儲介質的一個或更多個實例。系 統總線可以使得處理器410能夠從計算機可讀存儲介質讀取代碼和/或數據,或者將代碼和/或數據讀出到計算機可讀存儲介質。介質可以表示存儲元件形式的設備,存儲元件可以利用任何合適技術(包括但不限于半導體、磁性材料、光學介質、電存儲器、電磁存儲器或任何其它這種存儲技術)實現。介質可以表示與存儲器420關聯的組件,其被表征為RAM、ROM、閃存或其它類型的易失性或非易失性存儲技術。介質還可以表示輔助存儲器,其被實現為存儲器驅動器430等。硬盤驅動器實現可以被表征為固態的,或者可以包括存儲磁性編碼信息的旋轉介質。
存儲介質可以包括一個或更多個程序模塊460。程序模塊460可以包括軟件指令,當軟件指令被加載到處理器410中并被執行時,將通用計算系統變換為專用計算系統。如貫穿本說明書詳細描述的,程序模塊460可以提供計算機400可以用來利用這里論述的組件、邏輯流和/或數據結構在整個系統或工作環境內參與的各種工具或技術。
處理器410可以由任意數量的晶體管或其它電路元件(其可以單獨或共同假設任意數量的狀態)來構造。更特別地,處理器410可以作為狀態機或有限狀態機工作。這種機器可以通過加載包含在程序模塊460內的可執行指令而被變換為第二機器或特定機器。這些計算機可執行指令可以通過指定處理器410如何在狀態之間轉換來變換處理器410,由此將構成處理器410的晶體管或其它電路元件從第一機器變換為第二機器。還可以通過從一個或更多個用戶輸入裝置490、網絡接口496、其它外圍設備、其它接口或者一個或更多個用戶或其它動作方接收輸入來變換機器的狀態。機器還可以變換各種輸出裝置(諸如打印機、揚聲器、視頻顯示器等)的狀態或各種物理特性。
對程序模塊460進行編碼還可以變換存儲介質的物理結構。在本說明書中的不同實現中,物理結構的特定變換可以取決于各種因素。這些因素的示例可以包括但不限于用于實現存儲介質的技術、存儲介質是被表征為主存儲器還是輔助存儲器等。例如,如果存儲介質被實現為基于半導體的存儲器,則當在其中對軟件編碼時,程序模塊460可以變換半導體存儲器420的物理狀態。例如,軟件可以變換構成半導體存儲器420的晶體管、電容器或其它分立電路元件的狀態。
作為另一個示例,存儲介質可以利用諸如驅動器430的磁性或光學技術來實現。在這些實現中,當在其中對軟件編碼時,程序模塊460可以變換磁性或光學介質的物 理狀態。這些變換可以包括改變給定磁性介質內的特定位置的磁性特性。這些變換還可以包括改變給定光學介質內的特定位置的物理特征或特性,以改變那些位置的光學特性。應該想到,在不脫離本說明書的范圍和精神的情況下,物理介質的各種其它變換是可能的。
圖5是示出根據這里呈現的至少一些實施方式布置的包括用于在計算裝置上執行計算機處理的計算機程序的計算機程序產品500的示意圖。示例性計算機程序產品的示例性實施方式利用信號承載介質502來提供,并且可以包括504中的至少一個指令:用于接收多個數據元素和寫請求以將多個數據元素寫入閃存的一個或更多個指令;用于基于相關性準則識別數據元素的子集之間的相關性的一個或更多個指令;用于分配閃存的相鄰頁面以存儲數據元素的子集的一個或更多個指令;或者用于將數據元素的子集寫入所分配的頁面的一個或更多個指令。在一些實施方式中,一個或更多個計算機程序產品500的信號承載介質502包括計算機可讀介質506、可記錄介質508和/或通信介質510。
雖然在結合操作系統和應用程序在計算機系統上的執行來執行的程序模塊的普通上下文中呈現這里描述的主題,但是本領域技術人員將認識到,可以結合其它類型的程序模塊來執行其它實現。通常,程序模塊包括例程、程序、組件、數據結構和執行特定任務或實現特定抽象數據類型的其它類型的結構。而且,本領域技術人員將想到,這里描述的主題可以利用其它計算機系統構造實現,包括手持裝置、多核處理器系統、基于微處理器的或可編程的消費電子裝置、微計算機、大型計算機等。
本發明不被本申請中描述的具體實施方式限制,這些實施方式旨在作為各個方面的例示。對于本領域的技術人員來說明顯的是,可以在不脫離本發明的精神和范圍的情況下進行許多修改和變型。除了這里列舉的那些外,對本領域的技術人員來說,根據上面的描述,本發明范圍內的功能等效的方法和裝置將是明顯的。這類修改和變形旨在落入所附權利要求書的范圍內。僅通過所附權利要求書的條款連同授權的所述權利要求的等同物的整個范圍來限制本發明。將要理解的是,本發明不限于特定的方法、試劑、化合物、組合物或生物系統,當然這些是可以改變的。還將理解的是,這里使用的詞項僅用于描述特定實施方式,不旨在進行限制。
關于在這里基本上任何復數和/或單數詞項的使用,本技術領域技術人員可以從復數轉化為單數和/或從單數轉化為復數以適合于上下文和/或應用。為了清楚起見, 可以在此明確地闡述各種單數/復數的置換。
本領域技術人員將理解的是,一般來說,這里所使用的措辭,特別是在所附權利要求(例如,所附權利要求的主體)中使用的措辭,通常旨在是“開放式”措辭(例如,措辭“包括”應被理解為“包括但不限于”,措辭“具有”應被理解為“至少具有”,措辭“包含”應被理解為“包含但不限于”等)。本領域技術人員將進一步理解的是,如果所引入的權利要求記載中的特定的數目是有意圖的,則這樣的意圖將在權利要求中明確地記載,并且在沒有這樣的記載時,不存在這樣的意圖。例如,作為對理解的輔助,下面所附的權利要求可以包含對“至少一個”和“一個或更多個”的引入性用語的使用,以引入權利要求記載。然而,即使當相同的權利要求包括引入性用語“一個或更多個”或者“至少一個”以及諸如“一”或“一個”的不定冠詞(例如,“一”和/或“一個”應被解釋為表示“至少一個”或“一個或更多個”)時,使用這樣的用語也不應被解釋為暗示由不定冠詞“一”或“一個”所引入的權利要求記載將包含這種所引入的權利要求記載的任何特定的權利要求限制到僅包含一個這樣的記載的實施方式;對于使用用于引入權利要求記載的定冠詞來說也是如此。另外,即使明確地記載了所引入的權利要求記載的特定數目,本領域技術人員將理解的是,這樣的記載也應該被理解為至少表示所記載的數目(例如,在沒有其它修飾的情況下,“兩個記載”的無修飾的記載表示至少兩個記載或者兩個或更多個記載)。此外,在使用與“A、B和C中的至少一個等”類似的常規表述的情況下,一般來說,這種結構旨在表示本領域技術人員將理解的該常規表述的含義(例如,“具有A、B和C中的至少一個的系統”將包括但不限于僅具有A的系統、僅具有B的系統、僅具有C的系統、具有A和B的系統、具有A和C的系統、具有B和C的系統和/或具有A、B和C的系統等)。在使用與“A、B或C中的至少一個等”類似的常規表述的情況下,一般來說,這種結構旨在表示本領域技術人員將理解的該常規表述的含義(例如,“具有A、B或C中的至少一個的系統”將包括但不限于僅具有A的系統、僅具有B的系統、僅具有C的系統、具有A和B的系統、具有A和C的系統、具有B和C的系統和/或具有A、B和C的系統等)。本領域技術人員將進一步理解的是,示出兩個或更多個另選措辭的幾乎任何轉折詞和/或短語,無論是在說明書、權利要求或附圖中,都應被理解為考慮可能包括措辭中的一個、措辭中的任一個或全部措辭。例如,短語“A或B”將被理解為可能包括“A”或“B”或“A和B”。
此外,當本發明的特征或方面被描述為馬庫什(Markush)組合的措辭時,本領域技術人員將認識到,本發明因此還可按照該馬庫什組合中任意獨立構件或構件的子組合來描述。
本領域技術人員應該理解,為了任何和所有目的,諸如就提供寫描述而言,本文公開的所有范圍也包括任何和所有可能的子范圍和其子范圍的組合。任何所列范圍可容易認為足以描述和使得相同范圍劃分為至少相同的兩份、三份、四份、五份、十份等。作為非限制示例,本文討論的每個范圍可容易劃分為下面的三分之一、中間的三分之一和上面的三分之一等。本領域技術人員應該理解,諸如“至多”、“至少”等的所有語言包括所列舉的數并指代可隨后如上所述劃分為多個子范圍的范圍。最終,本領域技術人員應該理解,一范圍包括每個獨立的構件。因此,例如,具有1-3個單元的組指具有1個、2個或3個單元的組。相似地,具有1-5個單元的組指具有1個、2個、3個、4個或5個單元的組,等。
雖然本文已公開了各個方面和實施方式,但是其它方面和實施方式對于本領域技術人員來說將是清楚的。本文公開的所述各個方面和實施方式是為了示出的目的而不旨在進行限制,隨后的權利要求指示了真實的范圍和精神。

關 鍵 詞:
用于 閃存 頁面 分配
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:用于閃存的頁面分配.pdf
鏈接地址:http://www.wwszu.club/p-6373635.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大