新四季網

利用數據縮減在高性能直接附接非易失性存儲器上進行有效跨設備冗餘實現的製作方法

2024-03-09 14:09:15 2


本公開涉及計算跨設備冗餘數據。具體地,本公開描述了計算冗餘數據並將其存儲在預先指定的位置。更具體地,本公開涉及提供與數據和冗餘數據相關聯的單次提交保證。



背景技術:

高性能非易失性存儲器系統變得流行,成為傳統存儲層次的新級別。進一步地,試圖在電源故障的情況下實現冗餘方案的現有方法包括各種形式的獨立磁碟冗餘陣列(例如,raid5和raid6)或更多複雜方案(如糾刪碼),以便保護數據免遭單個或多個設備故障。但是,現有冗餘方案和設備故障方法要求兩次提交,一次針對數據,而另一次針對冗餘數據。這些現有方法不考慮冗餘數據是如何計算的,從而導致了成為性能瓶頸的雙提交。本公開通過提供一種用於利用單次提交實現跨設備冗餘方案的高度可靠系統,解決了與存儲設備中冗餘數據相關聯的問題。



技術實現要素:

本公開涉及用於利用單次提交實現跨設備冗餘方案的系統和方法。根據本公開主題的一個新穎方面,一種用於存儲和數據縮減的系統包括壓縮單元,所述壓縮單元具有用於壓縮數據的輸入和輸出,所述壓縮單元的所述輸入被耦合以用於接收數據流,所述壓縮單元壓縮所述數據流以產生數據顆粒;寫入頁分配單元,所述寫入頁分配單元具有用於向所述一個或多個存儲設備傳送數據顆粒並生成冗餘數據的輸入和輸出,所述寫入頁分配單元的所述輸入與所述壓縮單元的所述輸出耦合以用於接收數據顆粒,所述寫入頁分配單元的所述輸出與所述一個或多個存儲設備耦合;以及顆粒存儲器,所述顆粒存儲器用於臨時存儲數據且具有輸入和輸出,所述輸入與所述寫入頁分配單元耦合,所述輸出與所述一個或多個存儲設備耦合。所述系統還可以包括:加密單元,所述加密單元具有用於將所述數據進行編碼以產生編碼數據流的輸入和輸出,所述加密單元的所述輸入被耦合以用於接收所述數據流,所述加密單元的所述輸出與所述寫入頁分配單元的所述輸入耦合;分配邏輯,所述分配邏輯用於分析與所述顆粒存儲器相關聯的預定數據布局映射以標識所述顆粒存儲器的用於臨時存儲數據顆粒的存儲器段,所述分配邏輯與所述壓縮單元和所述顆粒存儲器耦合;數據隊列,所述數據隊列用於臨時存儲顆粒直至所述顆粒可以被存儲在所述顆粒存儲器中,所述數據隊列具有輸入和輸出,所述數據隊列的所述輸入與所述壓縮單元耦合,所述數據隊列的所述輸出與所述分配邏輯耦合;以及dma命令單元,所述dma命令單元用於將數據從所述顆粒存儲器直接傳送到所述一個或多個存儲設備。

通常,本公開中描述的主題的另一新穎方面可以通過多種方法實現,所述方法包括:由寫入頁分配單元接收分配數據顆粒的請求;響應於接收所述請求,由所述寫入頁分配單元執行對與顆粒存儲器相關聯的預定數據布局映射的分析以標識存儲器段;由所述寫入頁分配單元向所述存儲器段分配若干數據顆粒,同時計算與所述若干數據顆粒相關聯的冗餘數據;向所述顆粒存儲器的所述存儲器段中存儲所述若干數據顆粒和所述冗餘數據;由所述寫入頁分配單元判定是否已滿足與所述顆粒存儲器相關聯的存儲閾值;以及響應於滿足與所述顆粒存儲器相關聯的所述存儲閾值,向一個或多個存儲設備傳輸存儲在所述存儲器段中的數據顆粒和冗餘數據。

一個或多個這種方面的其他實施方式包括相應系統、裝置和電腦程式,所述電腦程式被配置成用於執行方法的動作並被編碼在計算機存儲設備上。

這些和其他實施方式均可以可選地包括一個或多個以下特徵。例如,操作進一步包括:由壓縮單元從客戶端設備接收數據流;以及由所述壓縮單元將所述數據流壓縮為多個數據顆粒;標識與所述預定數據布局映射相關聯的活動寫入頁;在所述預定數據布局映射的所述活動寫入頁中檢索與目前存儲的數據顆粒相關聯的指針;基於所述指針確定與所述活動寫入頁相關聯的不可用位置數據,所述不可用位置數據反映佔用的存儲空間;以及基於所述指針確定與所述預定數據布局映射的所述活動寫入頁相關聯的可用位置數據;向所述顆粒存儲器的一個或多個預先提供的存儲器緩衝器中存儲所述冗餘數據;以及基於傳入數據顆粒,計算所述一個或多個預先提供的存儲器緩衝器中每個存儲器緩衝器的有效位。操作進一步包括:針對與分配給所述存儲器段的所述若干數據顆粒相關聯的第一數據顆粒,記錄與所述預定數據布局映射相關聯的起始位置;以及基於所述分配所述若干數據顆粒,更新與所述顆粒存儲器相關聯的所述預定數據布局映射;跨多個存儲設備並行存儲所述數據顆粒和冗餘數據;生成用於向多個存儲設備傳輸數據顆粒和冗餘數據的模板;以及使用所述模板將數據顆粒和冗餘數據直接從所述顆粒存儲器傳送到所述多個存儲設備。其他特徵包括:其中,傳輸存儲在所述存儲器段中的數據顆粒和冗餘數據使用預先配置的模板;其中,所述模板至少包括與所述數據顆粒和冗餘數據相關聯的偏移和若干字節;其中,所述存儲閾值是32k字節;並且其中,所述顆粒大小是512位元組。額外的特徵包括:其中,向所述存儲器段分配所述若干數據顆粒與計算冗餘數據是同時執行的。

這些實施方式在許多方面都是特別有利的。例如,本文中所描述的技術可以用於利用單次提交實現跨設備冗餘方案。

應該理解的是,在本公開中使用的語言主要是為了可讀性和指導目的而被選擇的,而不是限制本文中所公開的主題的範圍。

附圖說明

以示例性而非限制性方式在附圖中展示本公開,在附圖中,類似號碼用於指示類似元件。

圖1是展示了根據本文中所描述技術的用於利用單次提交實現跨設備冗餘方案的示例系統的高級框圖。

圖2是展示了根據本文中所描述技術的存儲邏輯示例的框圖。

圖3是展示了根據本文中所描述技術的示例寫入頁分配單元的框圖。

圖4是展示了根據本文中所描述技術的示例數據通過寫入頁分配單元的框圖。

圖5是根據本文中所描述技術的用於實現跨設備冗餘方案的示例方法的流程圖。

圖6a和6b是根據本文中所描述技術的用於實現跨設備冗餘方案的另一示例方法的流程圖。

圖7是展示了根據本文中所描述技術的寫入頁分配單元所見的數據布局的示例圖形表示。

圖8是展示了根據本文中所描述技術的跨越多個後端存儲設備的設備列的示例圖形表示。

具體實施方式

以下描述了用於實現跨設備(或交叉驅動器)冗餘架構的系統和方法。具體地,在本公開中,以下描述了用於實現存儲設備(具體是快閃記憶體存儲設備)的跨設備(或交叉驅動器)冗餘的系統和方法。雖然本公開的系統和方法是在使用了快閃記憶體存儲的特定系統架構的背景下描述的,應該理解的是,所述系統和方法可以應用於硬體和其他具有類似屬性的存儲器設備的其他架構和組織。

本公開涉及基於寫入頁分配(wpa)單元的預定數據布局映射分配數據,以及計算跨設備冗餘數據。在一些實施例中,本公開描述了同時計算用於存儲應用的冗餘數據和分配。本公開與現有實施方式的區別在於解決了以下問題:計算冗餘數據、在預指定的位置存儲所述冗餘數據以及提供在突然電源故障時保證數據的數據提交。另外,所述wpa單元的存在允許針對寫入數據使用單次提交流程,這產生了性能和固件代碼複雜優勢。由此,本公開通過提供一種用於利用單次提交實現跨設備冗餘方案的高度可靠系統,解決了與存儲設備中冗餘數據相關聯的問題。

系統

圖1是展示了根據本文中所描述技術的用於利用單次提交實現跨設備冗餘方案的示例系統100的高級框圖。在描繪的實施例中,系統100可以包括存儲邏輯104、交換機106和一個或多個存儲設備110a、110b至110n。在展示的實施例中,存儲邏輯104與一個或多個存儲設備110a、110b至110n經由交換機106通信地耦合。但是,本公開並不局限於這種配置,可以採用各種不同的系統環境和配置,並且所述各種不同的系統環境和配置是在本公開的範圍內。其他實施例可以包括額外的或更少的部件。應該理解的是,圖1和其他圖是用於展示實施例的,並且參考號或標記後字母(例如「110a」)的指示是對由該特定參考標記指定的元件或部件的具體引用。如文中參考標號(例如「110」)沒有後跟字母,應該理解的是,這種參考標記是對包含該參考標記的元件或部件的不同實施例的總體參考。

在一些實施例中,存儲邏輯104提供跨設備冗餘方案。存儲邏輯104能夠提供計算功能、服務和/或資源以發送、接收、讀、寫入和變換來自系統100其他實體的數據。在一些實施例中,存儲邏輯104可以是計算設備,被配置成用於使存儲設備110的一部分或全部存儲空間可用。存儲邏輯104經由信號線120耦合至交換機106,用於與系統100的存儲設備110a-110n通信和合作。在其他實施例中,存儲邏輯104經由交換機106在存儲設備110之間傳輸數據。應該理解的是,可以以分布式架構或其他方式利用多個存儲邏輯單元104。為了本申請的目的,系統執行的系統配置和操作是在單個存儲邏輯104的背景下描述的。

交換機106可以是常規類型和有線,並且可具有多種不同配置。進一步地,交換機106可以包括太網卡、無限帶寬、pci-express交換機,和/或其他互聯數據路徑交換機,多個設備(例如,存儲設備110)可通過其進行通信。儘管圖1的示例展示了單個交換機106,但在實踐中,一個或多個交換機106可連接系統100的實體。

存儲設備110a、110b至110n可以包括非瞬態計算機可使用(例如可讀、可寫入等)介質,所述非瞬態計算機可使用介質可以是任何包含、存儲、傳達、傳播或傳輸由處理器處理或者與其結合處理的指令、數據、電腦程式、軟體、代碼例程等的非瞬態裝置或設備。在一些實施例中,存儲設備110a、110b至110n經由信號線126a、126b至126n通過交換機106與存儲邏輯104通信和合作。雖然本公開將存儲設備110視為閃速存儲器,應該理解的是,在一些實施例中,存儲設備110可以包括非瞬態存儲器,如動態隨機訪問存儲器(dram)設備、靜態隨機訪問存儲器(sram)設備或一些其他存儲器設備。

圖2是展示了根據本文中所描述技術的存儲邏輯104示例的框圖。存儲邏輯104是組合邏輯、固件、軟體、代碼或例程或其一些組合,用於實現跨設備冗餘方案。如在圖2中所描繪的,存儲邏輯104可以包括命令隊列單元208、壓縮單元210、加密單元212、計數器單元214、wpa單元216、模板直接存儲器訪問(dma)命令單元220和提交隊列單元222,上述部件可經由通信總線(未示出)電耦合和通信地耦合以相互合作和通信。這些部件208、210、212、216、220和222還被耦合以經由交換機106與系統100的其他實體(例如存儲設備110)進行通信。

在一個實施例中,命令隊列單元208、壓縮單元210、加密單元212、計數器單元214、wpa單元216、模板dma命令單元220和提交隊列單元222是用於執行以下描述的操作的硬體。在一些實施例中,命令隊列單元208、壓縮單元210、加密單元212、計數器單元214、wpa單元216、模板dma命令單元220和提交隊列單元222是可由處理器執行的指令集或包括在一個或多個定製處理器中的邏輯,以便提供其各自功能。在一些實施例中,命令隊列單元208、壓縮單元210、加密單元212、計數器單元214、wpa單元216、模板dma命令單元220和提交隊列單元222存儲在存儲器中,並且可由處理器訪問和執行,以便提供其各自功能。在進一步實施例中,命令隊列單元208、壓縮單元210、加密單元212、計數器單元214、wpa單元216、模板dma命令單元220和提交隊列單元222被適配成用於與處理器和系統100的其他部件合作和通信。單元、模塊、例程、特徵、屬性、方法和其他方面的特定命名和分割不是必需遵守的或者不是重要的,並且實現本發明或其特徵的機制可以有不同的名稱、分割和/或格式。

命令隊列單元208是用於接收來自一個或多個設備的數據和命令的緩衝器和軟體、代碼或例程。在一個實施例中,命令隊列單元208接收來自一個或多個設備的數據流(數據包),並將它們準備好以存儲在非易失性存儲設備(例如存儲設備110)中。在一些實施例中,命令隊列單元208接收傳入數據包並臨時將所述數據包存儲在存儲器緩衝器中。在進一步實施例中,命令隊列單元208接收4k數據塊並對其進行分配以存儲在一個或多個存儲設備110中。在其他實施例中,命令隊列單元208可以包括隊列調度,所述隊列調度對與多個設備相關聯的數據流的數據塊進行排隊,以便存儲邏輯104基於所述隊列調度中所述數據塊的對應位置處理所述數據塊。在一些實施例中,命令隊列單元208接收來自一個或多個設備的數據流,並且基於所述隊列調度,向壓縮單元210和/或存儲邏輯104的一個或多個其他部件傳輸所述數據流。

壓縮單元210是用於減少存儲數據所需存儲器量的邏輯、軟體、代碼或例程。在一個實施例中,壓縮單元210接收來自命令隊列單元208的數據流,並且將所述數據流壓縮為多個數據顆粒。在一些實施例中,壓縮單元210接收來自設備的數據流,將所述數據流壓縮為若干數據顆粒,並將所述若干數據顆粒臨時存儲在存儲器緩衝器中。在進一步實施例中,壓縮單元210接收數據塊,並且將每個數據塊壓縮為若干數據顆粒。數據顆粒可以表示最大壓縮粒度(例如,數據流的數據塊能夠被壓縮的最小數據大小)。

在一個實施例中,壓縮單元210對數據流、數據塊和/或數據包的壓縮可以基於相應數據流、數據塊和/或數據包的大小。例如,由壓縮單元210接收的數據流、數據塊和/或數據包可以是預定大小(例如,4k字節),並且壓縮單元210可以基於所述預定大小(4k字節)將所述數據流、數據塊和/或數據包壓縮為壓縮大小是512位元組的數據顆粒。在其他實施例中,壓縮單元210可以基於壓縮算法壓縮包括數據塊的數據流,所述壓縮算法例如但不限於是否編碼算法、去重複算法等。

在其他實施例中,壓縮單元210基於與數據塊相關聯的格式壓縮數據流的所述數據塊。例如,數據流的數據塊可以與某個格式相關聯,並且壓縮單元210基於所述格式將所述數據塊壓縮為預定段。在一些實施例中,壓縮單元210向存儲邏輯104的一個或多個部件傳輸分段的壓縮數據塊以在其上執行動作和/或功能。與數據塊相關聯的非限制性格式示例可以包括但不限於.doc、.pdf、.csv、.txt、.mp4、.jpeg、.png、.ppt等。在進一步實施例中,壓縮單元210基於與設備(例如wpa顆粒存儲器218、存儲設備110等)相關聯的約束壓縮數據流。約束可以基於與設備相關聯的存儲器(例如wpa顆粒存儲器218和存儲設備110)的大小,所述存儲器用於存儲若干數據顆粒、數據塊等。

在一個實施例中,響應於壓縮數據流,壓縮單元210可以向wpa單元216傳輸請求。與數據流相關聯的請求可以包括以下至少一種,但不限於,在存儲器緩衝器中臨時存儲所述數據流的請求、在存儲設備(例如存儲設備110)中存儲所述數據流的數據的請求、經由交換機106上傳所述數據流的數據的請求、修改所述數據流的數據的請求等。在一些實施例中,壓縮單元210在wpa單元集合中確定活動wpa單元,用於向所確定的活動wpa單元216傳輸壓縮數據流,以供進一步處理。由壓縮單元210確定活動wpa單元216可以基於所述集合中每個wpa單元接收的回覆消息來執行。在進一步實施例中,壓縮單元210基於與所述數據流的數據塊相關聯的格式(例如,數據類型)確定用於壓縮數據流的活動wpa單元。例如,可以向活動wpa單元指定格式(例如,數據類型),用於處理滿足所述格式的數據塊。在一個實施例中,壓縮單元210向不同的活動wpa單元傳輸數據流的壓縮數據塊(例如,數據顆粒)集合,以供進一步處理。例如,如在本文其他地方所描述的,壓縮單元210向第一活動wpa單元傳輸數據流的第一壓縮數據塊集合,並向第二活動wpa單元傳輸所述數據流的剩餘壓縮數據塊集合。在進一步實施例中,壓縮單元210確定wpa單元集合中的活動wpa單元,以供進一步基於與每個wpa單元相關聯的隊列調度處理壓縮數據流。例如,壓縮單元210可以使用所述隊列調度中的可用處理槽向wpa單元傳輸壓縮數據流。

在一個實施例中,壓縮單元210壓縮包括數據塊的數據流、確定活動wpa單元216以供進一步處理壓縮數據塊、向活動wpa單元216傳輸所述壓縮數據塊以及同時向wpa顆粒存儲器218的存儲器緩衝器傳輸所述壓縮數據塊。在進一步實施例中,壓縮單元210可以將壓縮數據流臨時存儲在存儲器緩衝器中(未示出),同時在向一個或多個wpa單元216傳輸所述壓縮數據流以執行其功能前,等待所述wpa單元216變得可用。

加密單元212是用於加密數據的邏輯、軟體、代碼或例程。在一個實施例中,加密單元212接收來自命令隊列單元208的數據流並加密所述數據流。在一些實施例中,加密單元212接收來自壓縮單元210的壓縮數據流並加密所述數據流。在進一步實施例中,加密單元212僅加密數據流的一部分和/或與數據流相關聯的數據塊集合。

在一個實施例中,響應於自命令隊列單元208接收的指令,加密單元212加密與數據流相關聯的數據塊和/或壓縮數據流。例如,如果用戶選擇加密與用戶財務相關聯的數據同時退出加密與通用數據文件(例如,提供給公眾的文件,如雜誌、報紙文章、圖片等)相關聯的數據,命令隊列單元208接收有關加密哪個文件的指令,並且向加密單元212提供所述指令。在進一步實施例中,加密單元212基於加密算法加密數據流和/或壓縮數據流。加密算法可以是用戶定義和/或已知加密算法,如但不限於,哈希算法、對稱鑰加密算法和/或公鑰加密算法。在其他實施例中,加密單元212可以向wpa顆粒存儲器218傳輸加密數據流和/或壓縮加密數據流,同時向存儲邏輯104的一個或多個部件傳輸加密/壓縮數據流以在其上執行動作和/或功能。

計數器單元214是用於指定與數據相關聯的計數的存儲寄存器或存儲器和邏輯或例程。在一個實施例中,計數器單元214追蹤/計算預先提供的存儲器緩衝器中每個存儲器緩衝器(例如,wpa顆粒存儲器218的每個邏輯存儲器緩衝器)的有效位(例如,計數)。在一些實施例中,計數器單元214通過追蹤、更新和修改與存儲器緩衝器相關聯的有效位來維護每個預先提供的存儲器緩衝器(存儲器的部分)的有效位表。在一些實施例中,計數器單元214與wpa單元216合作維護每個冗餘數據緩衝器的有效位,以便系統100能夠保證將使用有效且一致的數據構建提供的緩衝器(例如,wpa顆粒存儲器218的每個邏輯存儲器緩衝器)。

wpa單元216是用於分配傳入數據的邏輯、軟體、代碼或例程。wpa單元216可以包括wpa顆粒存儲器218和模板dma命令單元220。wpa顆粒存儲器218可以包括用於臨時存儲數據的存儲器緩衝器。在一個實施例中,wpa顆粒存儲器218臨時存儲數據流、數據塊和數據顆粒(例如,壓縮和/或壓縮/加密),並且存儲邏輯104的一個或多個部件生成與所述數據流和/或數據塊的冗餘數據。在一些實施例中,同時進行存儲所述數據流、數據塊或數據顆粒和生成所述冗餘數據。針對本申請的實施例,「同時」意味著以下各項中的任意項:1)在生成冗餘的同時存儲數據流、數據塊或數據顆粒,即幾乎同時開始和結束;2)存儲數據流、數據塊或數據顆粒的時間與生成冗餘的時間部分重疊;或3)生成冗餘數據的時間與存儲數據流、數據塊或數據顆粒中任一個的時間部分重疊。在其他實施例中,wpa單元216在wpa顆粒存儲器218中存儲數據顆粒,同時在存儲設備110中存儲數據流和冗餘數據。

在一個實施例中,wpa單元216接收與分配若干數據顆粒相關聯的請求。例如,wpa單元216接收與單元id和需要分配的壓縮數據流的若干數據顆粒相關聯的請求。單元id可以包括但不限於數據流的專用信息和用於由存儲邏輯104的一個或多個部件標識的信息,所述數據流存儲在所述存儲設備中。在其他實施例中,wpa單元216接收來自壓縮單元210的請求,所述請求與向wpa單元216分配壓縮數據流的若干數據顆粒相關聯。

在一個實施例中,wpa單元216接收來自加密單元212的加密數據流,並且向一個或多個存儲設備110和/或wpa顆粒存儲器218分配所述加密數據流。在進一步實施例中,wpa單元216接收來自加密單元212的壓縮和加密數據流,並且向一個或多個存儲設備110和/或wpa顆粒存儲器218分配所述壓縮和加密數據流。

在一個實施例中,響應於接收數據流(例如,壓縮數據流和/或加密數據流)和/或請求,wpa單元216與壓縮單元210合作執行對與wpa單元216相關聯的預定數據布局映射的分析。如參考圖7和8更加詳細描述的,預定數據布局映射可以包括信息,如但不限於,與所述預定數據布局映射相關聯的活動寫入頁的不可用位置數據和若干可用(不受限制)位置數據。例如,預定數據布局映射可以包括具有行和列的矩陣/表。所述預定數據布局映射的行可以指示存儲空間(例如,可用顆粒存儲位置或填充顆粒存儲位置),而所述預定數據布局映射的列可以反映一個或多個設備(例如,存儲設備110)。應該理解的是,所述預定數據布局映射的以上配置通過示例提供,並且多種進一步配置是被設想並可能的。

進一步地,分析與wpa單元216相關聯的預定數據布局映射可以包括,但不限於,基於所述預定數據布局映射的分析,確定用於若干數據顆粒中相應數據顆粒的活動寫入頁。而且,在一些實施例中,所述分析可以包括wpa單元216在預定數據布局映射的活動寫入頁中檢索與目前存儲的數據顆粒相關聯的指針。wpa單元216則可以基於所述指針確定與所述活動寫入頁相關聯的不可用位置數據和/或可用位置數據。例如,與目前存儲的數據顆粒相關聯的指針可以指示相應數據顆粒正佔用所述預定數據布局映射中的存儲空間(例如,數據塊)。在一些實施例中,如以下描述的,預定數據布局映射可以是用戶定義和/或基於處理約束定義的。

在一個實施例中,在執行預定數據布局映射分析之後,wpa單元216確定路由數據,所述路由數據與向預定數據布局映射中若干不受限制顆粒位置(例如,可用數據位置)分配若干數據顆粒(例如,壓縮數據流)的每個數據顆粒相關聯。在一些實施例中,wpa單元216確定路由數據,所述路由數據與基於分析與wpa單元216相關聯的預定數據布局映射,向若干不受限制數據位置中至少一個不受限制(可用數據)位置分配若干數據顆粒的每個數據顆粒相關聯。在一些實施例中,wpa單元216同時確定第一路由數據和第二路由數據,所述第一路由數據用於向預定數據布局映射中的位置分配每個數據顆粒,所述第二路由數據包括與異或和/或校驗保護(例如,計算冗餘數據)與壓縮數據流和/或加密/壓縮數據流相關聯的數據顆粒相關聯的信息。

如在本文其他地方所描述的,通過允許在從壓縮單元210向wpa顆粒存儲器218的wpa邏輯存儲器緩衝器傳送數據塊(數據顆粒)的同時生成冗餘數據,wpa單元216消除了雙提交要求。wpa單元216可以將若干數據顆粒的每個數據顆粒映射同時寫入至預定數據布局映射中(多個)不受限制顆粒位置,同時在寫入/傳送每個數據顆粒時,生成與每個數據顆粒相關聯的冗餘數據。然後,wpa單元216可以同時存儲、修改或更新預定數據布局映射中的冗餘數據。由wpa單元216映射可以包括包括,但不限於,預定數據布局映射中壓縮顆粒在邏輯塊和物理塊之間的映射。進一步地,物理位置可以包括,例如,原始快閃記憶體設備或管理快閃記憶體設備或管理快閃記憶體驅動器上的物理位置。在一些實施例中,wpa單元216通過使用校驗方案(如基於raid5或raid6或cauchyreedsolomon的糾刪碼)並行計算不同設備的冗餘數據,同時從壓縮單元210向wpa單元216傳輸若干數據顆粒。進一步地,一旦適當地計算並更新校驗數據(例如,冗餘數據),將保護(數據流)的壓縮用戶數據免遭故障。

在一個實施例中,wpa單元216記錄與所述預定數據布局映射相關聯的起始位置,用於與分配給wpa單元216的若干數據顆粒相關聯的第一數據顆粒。在一些實施例中,wpa單元216用所述第一數據顆粒的物理地址更新所述預定數據布局映射。在進一步實施例中,wpa單元216用存儲的相應數據顆粒(數據塊)的物理地址更新所述預定數據布局映射。例如,wpa單元216隨後基於所述分配所述一個或多個數據顆粒更新其相應預定數據布局映射。然後,wpa單元216顆粒可以向一個或多個存儲設備(例如,快閃記憶體設備或管理快閃記憶體驅動器)路由數據塊(例如,未壓縮、壓縮和/或加密數據塊)和冗餘數據。在一個實施例中,wpa單元216基於相應(活動)wpa單元216的預定數據布局映射的存儲器可用性(不可以/可用位置數據),分配若干數據顆粒的每個數據顆粒。

在一個實施例中,可以由wpa單元216分布計算與若干數據顆粒相關聯的冗餘數據,並按部分計算。在一些實施例中,wpa單元216計算數據塊(若干數據顆粒)的冗餘數據(校驗數據),同時通過對所述數據塊(例如,數據顆粒)執行異或(xor)函數,接收來自壓縮單元210的所述數據塊(若干數據顆粒)。在其他實施例中,wpa單元216在向存儲設備110傳送數據塊之前,計算所述數據塊的冗餘數據(校驗數據)。進一步地,在一些實施例中,wpa單元216可以在一個或多個存儲設備110之間分布/傳送部分和/或全部計算的冗餘數據(校驗數據),同時向相應存儲設備(或存儲驅動器)傳送數據塊。在進一步實施例中,wpa單元216向與冗餘數據存儲相關聯的預先提供的存儲器緩衝器傳輸完整冗餘/校驗數據,同時向與其他冗餘數據存儲相關聯的其他預先提供的存儲器緩衝器傳輸所述冗餘/校驗數據的部分。冗餘數據/校驗數據是計算值,用於在設備故障(例如,存儲設備110的電源故障)後重建數據塊,同時向存儲設備110寫入/傳送數據塊。

在一個實施例中,wpa單元216計算預先提供的存儲器緩衝器中每個存儲器緩衝器(例如,wpa顆粒存儲器218的每個邏輯存儲器緩衝器)的有效位。在一些實施例中,wpa單元216計算用於壓縮數據的第一組預先提供的存儲器緩衝器的有效位,並且並行計算與冗餘數據相關聯的第二組預先提供的存儲器緩衝器的有效位。這允許wpa單元216與存儲邏輯104的一個或多個其他部件合作,以在故障情況下提供系統100數據保證。在一些實施例中,wpa單元216可以執行故障設備的分析,並且基於存儲在存儲設備和/或wpa顆粒存儲器218的預先提供的存儲器緩衝器的冗餘數據的部分,重建(多個)數據塊。此外,wpa單元216與存儲邏輯104的一個或多個其他部件合作維護每個冗餘數據緩衝器的有效位,以便系統100能夠保證將使用有效且一致的數據構建提供的緩衝器(例如,wpa顆粒存儲器218的每個邏輯存儲器緩衝器)。在一個實施例中,如在本文其他地方所描述的,wpa單元216發布命令,以基於預先配置的模板向存儲設備110(後端非易失性存儲設備)傳送壓縮數據塊。

模板dma命令單元220是用於提供各種後端設備之間通信和操作靈活度的軟體、代碼、邏輯或例程。在一個實施例中,模板dma命令單元220接收來自wpa單元216的格式化dma命令,並向存儲設備110和/或後端設備(或管理驅動器)傳送來自wpa顆粒存儲器218的存儲器緩衝器的數據(例如,壓縮數據塊、冗餘數據塊等)。在一個實施例中,模板dma命令單元220接收用戶定義和配置的dma模板。例如,用戶通過客戶端設備102呈現的應用,使用軟體和/或任何其他軟體/硬體配置定義dma命令的模板。在一些實施例中,模板dma命令單元220向wpa單元216傳輸所述dma命令的模板,並且wpa單元216修改所述dma命令的模板。由wpa單元216修改所述dma命令的模板可以包括但不限於修改欄位,如sram偏移以使用、字節數以傳送、方向、將數據塊設為合適格式和將命令寫入至存儲設備110和/或後端設備(管理驅動器)的合適地址。

提交隊列單元222是用於對存儲數據進行排隊的軟體、代碼、邏輯或例程。在一個實施例中,提交隊列單元222接收數據(例如,32k數據塊)並臨時將所述數據存儲在存儲器緩衝器(未示出)中。例如,提交隊列單元222可以臨時將數據流存儲在存儲器緩衝器,同時在向一個或多個部件傳輸所述數據流以在其上執行動作和/或功能之前,等待所述一個或多個部件完成其他工作的處理。在一些實施例中,提交隊列單元222接收32k數據塊,並對所述32k數據塊進行分配以存儲在一個或多個存儲設備110中。在進一步實施例中,提交隊列單元222接收來自wpa顆粒存儲器218的數據流,並向存儲設備110傳輸所述數據流以進行存儲。

圖3是展示了根據本文中所描述技術的示例300寫入頁分配單元216的框圖。如在圖3中所描繪的,寫入頁分配單元216耦合在壓縮單元210和交換機106(未在圖3中描繪)之間。在此實施例中,寫入頁分配單元216包括:隊列302、分配邏輯304、wpa顆粒存儲器218和模板dma命令單元220。

在一個實施例中,壓縮單元210a經由信號線316與分配邏輯304通信地耦合。在一些實施例中,壓縮單元210a向分配邏輯304傳輸消息。所述消息可以包括,但不限於,指示用於自壓縮單元210a向wpa單元216的隊列302傳送的若干數據顆粒的請求。在一個實施例中,分配邏輯304向壓縮單元210a傳輸回復消息以確認所述請求。響應於傳輸所述消息和所述回復消息,壓縮單元210a經由信號線310向隊列302傳輸所述若干數據顆粒,以供進一步處理。

在一個實施例中,分配邏輯304經由信號線312在隊列302中檢索所述若干數據顆粒。在一些實施例中,分配邏輯304基於時間間隔檢索所述若干數據顆粒。例如,分配邏輯304第一次在隊列302中檢索所述若干數據顆粒的一部分,並且第二次在隊列302中檢索所述若干數據顆粒剩餘部分。在進一步實施例中,如在本文其他地方所描述的,響應於在隊列302中檢索數據顆粒,分配邏輯304經由信號線314向wpa顆粒存儲器218分配所述數據顆粒。在其他實施例中,分配邏輯304在向wpa顆粒存儲器218分配所述數據顆粒的同時,計算與所述數據顆粒的每個數據顆粒相關聯的冗餘數據,並將所述冗餘數據存儲在wpa顆粒存儲器218中。

在一些實施例中,分配邏輯304將數據顆粒分組成預定數據大小段,並且將所述預定數據大小段存儲在wpa顆粒存儲器218中。例如,分配邏輯304接收來自壓縮單元210a的512位元組數據顆粒,然後分配邏輯304分組並存儲傳入512位元組數據顆粒直至滿足預定數據大小段(例如,32k塊),並經由信號線120向存儲設備110b傳輸所述預定數據大小段。在進一步實施例中,wpa顆粒存儲器218可以包括,但不限於,反映與存儲設備110相關聯的存儲槽的預定數據大小段。在其他實施例中,模板dma命令單元220經由信號線120向存儲設備110b傳輸來自wpa顆粒存儲器218的所述預定數據大小段。

返回參照圖3,在一個實施例中,模板dma命令單元220起到直接存儲器訪問控制器的功能。模板dma命令單元220經由信號線318與分配邏輯304且經由信號線120與存儲設備110b通信地耦合。在一些實施例中,模板dma命令單元220經由信號線120向存儲設備110b傳送直接來自wpa顆粒存儲器218的數據顆粒和冗餘數據。在進一步實施例中,模板dma命令單元220經由信號線120傳送來自存儲設備110b的數據顆粒和冗餘數據,並將其存儲在wpa顆粒存儲器218中。在其他實施例中,模板dma命令單元220經由信號線120向相應存儲設備110傳送預定數據大小段(例如,包括多個數據顆粒的32k數據塊)和/或存儲在wpa顆粒存儲器218中的冗餘數據。

圖4是展示了根據本文中所描述技術的示例數據通過寫入頁分配單元216的框圖。如在圖4中所描繪的,該配置包括多個壓縮單元210a至210n、wpa單元216、wpa顆粒存儲器218和多個存儲設備110a至110n。

在一個實施例中,壓縮單元210a至210n接收數據塊。例如,壓縮單元210a至210n接收大小為4k字節的數據塊。在一個實施例中,壓縮單元210a-210n將所述數據塊自數據塊的(第一)大小(例如,4k字節數據大小)減少(壓縮)為若干數據顆粒。例如,壓縮單元210a-210n接收4k字節的數據塊。然後,壓縮單元210a-210n將第一數據大小(4k)的4k數據塊減少為具有第二數據大小(例如,512位元組)的若干數據顆粒。在進一步實施例中,壓縮單元210a-210n向wpa單元216傳輸具有數據大小的若干數據顆粒以在其上執行動作和/或功能。

返回參照圖4,wpa單元216接收來自壓縮單元210a至210n的若干數據顆粒,並且分配所述若干數據顆粒以存儲在wpa顆粒存儲器218中。在一個實施例中,如在本文其他地方所描述的,wpa單元216基於預定數據布局映射向wpa顆粒存儲器218分配若干數據顆粒。在一些實施例中,wpa單元216在向wpa顆粒存儲器218分配所述數據顆粒的同時,計算與所述數據顆粒的每個數據顆粒相關聯的冗餘數據,並將所述冗餘數據存儲在wpa顆粒存儲器218中。在一些實施例中,wpa單元216將數據顆粒分組成預定數據大小段,並且將所述預定數據大小段存儲在wpa顆粒存儲器218中。例如,wpa單元216接收來自壓縮單元210a-210n的512位元組數據顆粒,然後wpa單元216分組傳入512位元組數據顆粒並將所述512位元組數據顆粒存儲在wpa顆粒存儲器218中,直至滿足預定數據大小段(例如,32k塊數據塊)。一旦滿足預定數據大小段,wpa單元216向一個或多個存儲設備110a至110n傳輸所述預定數據大小段。

圖5是根據本文中所描述技術的用於實現跨設備冗餘方案的示例方法500的流程圖。方法500可以通過接收502分配若干數據顆粒的請求來開始。在一個實施例中,wpa單元216接收來自壓縮單元210的向wpa顆粒存儲器218分配若干數據顆粒的請求。在一些實施例中,壓縮單元210向wpa單元216傳輸請求消息。所述請求消息可以包括,但不限於,指示用於自壓縮單元210向wpa單元216的wpa顆粒存儲器218傳送的若干數據顆粒的信息。在一個實施例中,wpa單元216向壓縮單元210傳輸回復消息以同意所述請求。在一些實施例中,步驟502中執行的操作可以由wpa單元216與系統100的一個或多個其他部件協作執行。

然後,響應於接收所述請求,方法500繼續執行504對與wpa單元216相關聯的預定數據布局映射的分析。在一個實施例中,壓縮單元210與wpa單元216合作執行所述預定數據布局映射的分析。wpa單元216的預定數據布局映射可以包括數據,如但不限於,與所述預定數據布局映射相關聯的活動寫入頁的不可用位置數據和若干可用(不受限制)位置數據。然後,方法500可以繼續基於所述分析,分配或標識506所述若干數據顆粒以與wpa顆粒存儲器218相關聯,同時在分配期間計算與若干數據顆粒相關聯的冗餘數據。在一個實施例中,wpa單元216向wpa顆粒存儲器218分配所述數據顆粒,同時計算與所述數據顆粒相關聯的冗餘數據。在一些實施例中,該方法還可以在wpa顆粒存儲器218中同時存儲所述顆粒和所述冗餘數據。

然後,方法500可以前進至判定508是否達到與wpa顆粒存儲器218段相關聯的閾值。在一個實施例中,所述wpa顆粒存儲器218段包括若干數據顆粒和/或冗餘數據。在一些實施例中,wpa顆粒存儲器218接收數據顆粒,並且將所述數據顆粒存儲在wpa顆粒存儲器218(段)的預定數據大小段中。例如,wpa單元216接收來自壓縮單元210的512位元組數據顆粒,並將所述512位元組數據顆粒分組直至滿足(例如,32k字節塊)預定數據大小段(例如,閾值)。步驟508中執行的操作可以由wpa單元216與系統100的一個或多個其他部件協作執行。

然後,響應於滿足所述wpa顆粒存儲器218段的所述閾值,方法500可以繼續向一個或多個存儲設備110傳輸510存儲在所述wpa顆粒存儲器218段中的若干數據顆粒。在一個實施例中,模板dma命令單元220向一個或多個存儲設備110傳輸存儲在所述wpa顆粒存儲器218段中的若干數據顆粒。在傳輸所述段並且確定存儲後,將從wpa顆粒存儲器218刪除所述段,從而確保完全容錯阻止由於電源故障或設備故障產生的任何數據丟失。本領域技術人員將會認識到,以上描述的段和顆粒大小僅用於示例展示。段和顆粒的各種其他大小被視為在本發明的範圍內。

圖6a和6b是根據本文中所描述技術的用於實現跨設備冗餘方案的另一示例方法600的流程圖。方法600通過接收602數據塊開始。在一個實施例中,命令隊列單元208接收數據流,所述數據流包括一個或多個數據塊,並向壓縮單元210傳輸所述一個或多個數據塊。在一些實施例中,命令隊列單元208接收數據包,並向壓縮單元210傳輸所述數據包。在進一步實施例中,壓縮單元210接收來自一個或多個設備(未描繪)的數據塊。

然後,方法600可以繼續確定604所述數據塊的大小。在一個實施例中,命令隊列單元208接收數據流,所述數據流包括一個或多個數據塊,並確定每個數據塊的數據大小。例如,命令隊伍單元208接收來自一個或多個設備的數據塊,並確定每個數據塊的數據大小是4k字節。在一些實施例中,命令隊列單元208向壓縮單元210傳輸所述數據塊和標識每個數據塊的數據大小的相應元數據。步驟604中執行的操作可以由命令隊列單元208與壓縮單元210和/或系統100的一個或多個其他部件協作執行。

然後,方法600可以前進至基於所述數據塊的大小,將所述數據塊壓縮606為多個數據顆粒。在一個實施例中,壓縮單元210接收來自命令隊列單元208的數據塊和與每個數據塊相關聯的相應元數據,所述相應元數據標識相關聯的數據塊的數據大小。在一些實施例中,壓縮單元210基於每個數據塊的數據大小,將自命令隊列單元208接收到的所述數據塊壓縮為多個數據顆粒。應該理解的是,壓縮單元210可以基於各種不同因素將傳入數據塊壓縮為不同數量的顆粒,所述不同因素包括壓縮類型、輸入數據類型、壓縮特徵等。例如,壓縮單元210接收大小為4k的數據塊,然後壓縮單元210可以將所述數據塊壓縮為任何數量的512位元組數據顆粒。

然後,方法600可以繼續向隊列302中傳輸608所述若干數據顆粒。在一個實施例中,在將數據塊壓縮為若干數據顆粒後,壓縮單元210向wpa單元216的隊列302傳輸若干數據顆粒。在一些實施例中,隊列302可以呈隊列調度器的形式,並且壓縮單元210可以基於所述隊列調度器中的位置,向wpa單元216傳輸若干數據顆粒。步驟608中執行的操作可以由命令隊列單元208與壓縮單元210和/或系統100的一個或多個其他部件協作執行。

然後,方法600可以前進至從隊列302中檢索610所述若干數據顆粒。在一個實施例中,wpa單元216在隊列302中連續地檢索固定數量的數據顆粒。然後,方法600可以繼續通過執行對與wpa顆粒存儲器218相關聯的預定數據布局映射的分析,確定612在wpa顆粒存儲器218中用於存儲所述若干數據顆粒的位置。在一個實施例中,wpa單元216與壓縮單元210合作通過執行對與wpa顆粒存儲器218相關聯的預定數據布局映射的分析,確定在wpa顆粒存儲器218中用於存儲所述若干數據顆粒的位置。在一個實施例中,所述由wpa單元216執行的分析可以包括,但不限於,標識與預定數據布局映射相關聯的當前數據填充位置和若干不受限制顆粒位置(例如,未填充顆粒位置)。在一些實施例中,步驟612中執行的操作可以由wpa單元216與系統100的一個或多個其他部件協作執行。

然後,方法600可以繼續基於所述分析,向wpa顆粒存儲器218中的位置存儲614所述若干數據顆粒。然後,方法600可以繼續向wpa顆粒存儲器218中的所述位置存儲所述若干數據顆粒的同時,計算616與所述若干數據顆粒相關聯的冗餘數據。然後,方法600可以前進至向wpa顆粒存儲器218中的所述位置存儲618與所述若干數據顆粒相關聯的所述冗餘數據。

然後,方法600可以繼續判定620是否滿足與wpa顆粒存儲器218中所述位置相關聯的閾值,wpa顆粒存儲器218中所述位置包括所述若干數據顆粒和所述冗餘數據。如果不滿足與wpa顆粒存儲器218中所述位置相關聯的所述閾值,方法600可以返回至框614。否則,如果滿足與wpa顆粒存儲器218中所述位置相關聯的所述閾值,則方法600可以前進至向一個或多個存儲設備110傳輸622存儲在wpa顆粒存儲器218位置中的所述若干數據顆粒,並且方法600可以結束。

圖7是展示了根據本文中所描述技術的寫入頁分配單元216所見的數據布局的示例圖形表示。如在圖7中所描繪的,數據布局映射700可以包括報頭702、數據塊704和保留數據塊706。在一個實施例中,wpa單元216基於數據布局映射700,在多個設備之間並行寫入數據。例如,與數據布局映射700的數據塊704相關聯的位置可以對應於用於在一個或多個存儲設備110上存儲數據塊704的位置。在一些實施例中,數據塊704可以與自客戶端設備(例如,客戶端設備102)接收的用戶數據相關聯。用戶數據可以包括,但不限於,文檔、郵件、多媒體數據(例如,音頻、視頻、音頻和視頻組合)、圖形文件、定性數據、定量數據、應用等。在進一步實施例中,數據塊704與預定數據大小(例如,512位元組、4k字節、32k字節)相關聯。例如,如在本文其他地方所描述的,數據塊704可以表示由壓縮單元210壓縮的壓縮數據塊(512位元組數據顆粒)。

返回參照圖7的數據布局映射700,在一個實施例中,報頭702可以包括與列和/行的相應數據塊相關聯的信息,所述列和/行與信息數據布局映射700相關聯。例如,報頭702可以指示顆粒位置。參考數據布局映射700,顆粒位置可以指示數據塊的位置。例如,顆粒位置可以表示存儲設備110上數據塊的邏輯位置和物理存儲位置之間的映射。在一些實施例中,報頭702可以包括與數據布局映射700的數據塊704/706相關聯的額外預定義信息(例如,報頭s000、s100、s200等)。由報頭702提供的額外預定義信息的非限制性示例可以包括信息,如對特定存儲設備的引用id、用於所述特定存儲設備的信道的第一指示符和特定存儲設備中子信道的第二指示符。在進一步實施例中,報頭702可以與包括一個或多個驅動器單元的後端存儲設備110相關聯。

返回參照圖7的數據布局映射700,在一個實施例中,數據布局映射700描繪了保留數據塊706(例如,校驗行)。在一些實施例中,可以將每個保留數據塊706保留用於異或(raid)校驗顆粒條目。在進一步實施例中,如在本文其他地方所描述的,基於傳入壓縮數據塊(512位元組數據顆粒和/或32k字節數據段),修改和更新保留數據塊706。例如,隨著傳入壓縮數據顆粒的壓縮數據塊傳入數據布局映射700,讀和修改相應校驗顆粒(保留數據塊706的冗餘數據塊)以反映與所述壓縮數據塊相關聯的新數據。在一個實施例中,如在本文其他地方所描述的,一旦計算和更新相應數據塊704的校驗顆粒(保留數據塊),保護所述壓縮數據塊免遭設備故障(例如,存儲設備110)或電源故障。在一些實施例中,框(h0、h1和h2至h6)可以反映與特定數據塊相關聯的冗餘/校驗數據。在進一步實施例中,wpa單元216生成與數據塊相關聯的冗餘數據,所述冗餘數據可以被分為段且在s100-s020之間分布,用於在發生設備故障時重建所述數據塊。例如,h0可以是數據塊的完整(總)冗餘/校驗數據,而h1-h6可以包括所述數據塊的所述冗餘/校驗數據的部分。因此,響應於接收數據塊的設備(例如,s100)的設備故障,wpa單元216和/或系統100的其他部件可以使用存儲在不同設備/驅動器(s200-s020)上的冗餘/校驗數據重建與設備/驅動器故障相關聯的丟失數據塊。

圖8是展示了根據本文中所描述技術的展示了跨越多個後端存儲設備的設備列的800數據布局映射的示例圖形表示。如在圖8中所描繪的,數據布局映射800可以包括報頭802、數據塊804和冗餘數據塊806。在一個實施例中,系統100的一個或多個部件基於數據布局映射800,在多個設備(例如,存儲設備110a-110n)之間並行寫入數據。例如,與數據布局映射800的一個或多個數據塊804相關聯的一個或多個位置可以對應於用於在存儲設備110上存儲數據塊804的位置。在一些實施例中,數據塊804可以是特定數據大小。例如,如在本文其他地方所描述的,數據塊804可以表示由壓縮單元210壓縮(減少)為預定數據大小的壓縮數據塊(512位元組數據顆粒和/或32k數據段)。在未示出的進一步實施例中,所述多個設備可以形成單個後端設備單元(du)。

返回參照圖8的數據布局映射800,在一個實施例中,報頭802可以包括與列和/行的相應數據塊相關聯的信息,所述列和/行與信息數據布局映射800相關聯。例如,報頭802可以指示(例如,作為後端設備單元成員的存儲器設備和/或多個存儲器設備中的)顆粒位置。參考數據布局映射800,顆粒位置可以指示數據塊的位置。在一個實施例中,顆粒位置可以表示存儲設備110上數據塊的邏輯位置和物理存儲位置之間的映射。在一些實施例中,報頭802可以包括與數據布局映射800的數據塊804/806相關聯的額外預定義信息。由報頭802提供的額外信息的非限制性示例可以包括信息,如對特定存儲設備的引用id、用於所述特定存儲設備的信道的第一指示符和特定存儲設備中子信道的第二指示符。

在一些實施例中,報頭802可以與包括一個或多個驅動器單元的後端存儲設備相關聯。在一個實施例中,系統100的一個或多個部件可以基於設備類型(例如,單個存儲器後端單元、包括驅動器單元的後端單元),修改和更新與報頭802相關聯的信息。例如,與包括一個或多個驅動器單元的後端存儲設備相關聯的預定義信息可以包括信息,如但不限於,驅動器id、一個或多個驅動器內的段偏移和驅動器和/或數據布局映射的段中的扇區偏移。返回參照圖8的數據布局映射800,在一個實施例中,數據布局映射800描繪了冗餘數據塊806(例如,校驗行)。在一些實施例中,冗餘數據塊806的每個冗餘數據塊可以反映校驗顆粒條目。在進一步實施例中,如在本文其他地方所描述的,基於傳入壓縮數據塊,修改和更新冗餘數據塊806。例如,隨著壓縮數據塊(數據顆粒和/或32k數據段)被映射到(wpa單元216的)數據布局映射800,讀和修改相應校驗顆粒(冗餘數據塊806的冗餘數據塊)以反映與所述壓縮數據塊相關聯的新數據。在一個實施例中,如在本文其他地方所描述的,一旦計算和更新相應數據塊804的校驗顆粒(冗餘數據塊),保護所述壓縮數據塊免遭設備(例如,存儲設備110)電源故障。

以下描述了用於提供實現跨設備冗餘方案的高度可靠系統的系統和方法。在以上描述中,出於解釋的目的,闡述了許多具體的細節。然而,可能顯而易見的是,可以在沒有任何這些具體細節給定子集的情況下實踐所公開的技術。在其他實例中,以框圖的形式示出了結構和設備。例如,參考用戶界面和特定硬體,以上在一些實施方式中描述了所公開的技術。而且,以上所公開的技術主要針對在線服務;但是,所公開的技術適用於其他數據來源和其他數據類型(例如,回收如圖像、音頻、網頁等其他資源)。

本說明書中對「一個實施方式」或「實施方式」的引用意味著結合該實施方式所描述的具體特徵、結構、或特性包括在所公開技術的至少一個實施方式中。短語「在一個實施方式中」在本說明書中各地方的出現不一定全都引用相同的實施方式。

已經在對計算機存儲器內數據位的操作的處理和符號表示方面呈現了以上詳細描述的某些部分。通常,過程被認為是導致結果的自相一致的一序列步驟。這些步驟可以涉及物理量的物理操縱。這些量採用能夠被存儲、傳遞、組合、比較、以及以另外方式操縱的電或磁信號的形式。這些信號可以稱為呈比特、值、元素、符號、字符、術語、數字等形式。

這些和類似的術語與適當的物理量相關聯並且可以被視為應用於這些量的標記。如從現有討論中明顯看到,除非另外特別聲明,否則應認識到,貫穿本說明書,使用如「處理」或「運算」或「計算」或「確定」或「顯示」等術語的討論可以指計算機系統或類似電子計算設備的動作和過程,所述計算機系統或類似電子計算設備對表示為計算機系統的寄存器和存儲器的物理(電子)量的數據進行操縱並且將其轉換成類似地表示為計算機系統存儲器或寄存器或其他此類信息存儲、傳輸或顯示設備中的物理量的其他數據。

所公開的技術還可涉及一種用於執行本文中的操作的裝置。該裝置可以是為了所需目的而特別構造的,或者它可以包括通過存儲在計算機中的由電腦程式選擇性地激活或重新配置的通用計算機。這種電腦程式可以存儲在計算機可讀存儲介質中,例如但不限於任何類型的磁碟,包括軟磁碟、光碟、cd-rom、以及磁碟、只讀存儲器(rom)、隨機存取存儲器(ram)、eprom、eeprom、磁性或光學卡、包括usb密鑰且具有非易失性存儲器的快閃記憶體,或任何類型的適合於存儲電子指令並且連接到計算機系統總線上的介質。

所公開的技術可以採用完全硬體實施方式、完全軟體實施方式或包含硬體和軟體元件兩者的實施方式的形式。在一些實施方式中,通過軟體實現技術,所述軟體包括但不限於固件、駐留軟體、微代碼等。

進一步地,所公開的技術可以採用電腦程式產品的形式,可以從提供由計算機或任何指令執行系統使用或者與其結合使用的程序代碼的非瞬態計算機可使用或計算機可讀介質訪問所述電腦程式產品。為了本申請的目的,計算機可使用或者計算機可讀介質可以是任何包含、存儲、傳達、傳播或傳輸由指令執行系統、裝置或設備使用或者與其結合使用的程序的裝置。

適合於存儲和/或執行程序代碼的計算機系統或數據處理系統將包括至少一個處理器(例如,硬體處理器),所述處理器經由系統總線直接或間接耦合至存儲器元件。所述存儲器元件可以包括在實際執行程序代碼時採用的本地存儲器、大容量存儲器和高速緩衝存儲器,所述高速緩衝存儲器提供臨時存儲至少一些程序代碼,以便減少執行時必須在大容量存儲器中檢索代碼的次數。

輸入/輸出或i/o設備(包括但不限於鍵盤、顯示器、指點設備等)可以直接或通過介於其間的i/o控制器耦合至系統。

網絡適配器也可以耦合至系統,以使數據處理系統通過介於其間的私有或公共網絡耦合至其他數據處理系統或遠程印表機或存儲設備。數據機、纜線數據機和乙太網卡僅是少數當前可用的網絡適配器類型。

最後,本文呈現的處理器和顯示器可能不是固有地與任何特定計算機或其他裝置相關。各種通用系統可以與根據本文中的教導的程序一起使用,或者可以證明構建更加專用的裝置來執行所需的方法步驟是方便的。多種這些系統所需的結構將出現在以下描述中。此外,沒有引用任何具體的程式語言來描述所公開的技術。應認識到,各種程式語言可以用於實現如在本文中所描述的技術的教導。

出於說明和描述的目的,提供了先前的本技術實施方式描述。未旨在詳盡地展示或將本技術限制在所公開的確切形式。鑑於以上教導,可以做出許多修改和變更。本技術的範圍旨在不受此詳細說明的限制。可以以其他具體形式實現技術而不偏離其精神或必要特徵。同樣,模塊、例程、特徵、屬性、方法和其他方面的特定命名和分割不是必需遵守的或者不是重要的,並且實現本技術或其特徵的機制可以有不同的名稱、分割和/或格式。進一步地,本技術的模塊、例程、特徵、屬性、方法和其他方面可以被實現為軟體、硬體、固件、或任何三者的組合。另外,在部件(其示例是模塊)被實現為軟體的情況下,所述部件可以被實現為獨立的程序、更大程序的一部分、多個單獨的程序、靜態或動態連結庫、內核可加載模塊、設備驅動程序、和/或計算機編程現在已知或將來知曉的每一個和任何其他方式。另外,本技術絕不限於使用任何具體程式語言或者用於任何具體作業系統或環境的實現。因此,本技術的公開旨在說明而非旨在限制。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀