TW201810088A - 用於自主記憶體搜尋之方法及系統 - Google Patents
用於自主記憶體搜尋之方法及系統 Download PDFInfo
- Publication number
- TW201810088A TW201810088A TW106141846A TW106141846A TW201810088A TW 201810088 A TW201810088 A TW 201810088A TW 106141846 A TW106141846 A TW 106141846A TW 106141846 A TW106141846 A TW 106141846A TW 201810088 A TW201810088 A TW 201810088A
- Authority
- TW
- Taiwan
- Prior art keywords
- search
- memory
- search results
- memory device
- write command
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
方法及系統操作以接收用於在一記憶體系統中搜尋一資料庫之複數個搜尋請求。該等搜尋請求可儲存於一先進先出(FIFO)佇列中,且隨後可針對各搜尋請求而產生搜尋。可對該資料庫實質上平行地執行該複數個所得搜尋。當各個搜尋完成或各個搜尋已產生搜尋結果時,將一各自指示傳輸至一請求主機。
Description
記憶體裝置通常用作電腦或其他電子裝置中之內部半導體積體電路。存在諸多不同類型之記憶體,其包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)及非揮發性(例如快閃)記憶體。 諸多非揮發性記憶體裝置可經組合以製造可仿效一電腦系統中之一機械操作硬碟機之一固態磁碟機。歸因於缺乏活動部件,固態磁碟機可提供相較於機械硬碟機之更快存取及更高可靠性。 至少部分歸因於電腦系統之增強效能,記憶體及固態磁碟機製造者始終面臨增強其記憶體之效能以試圖與電腦系統效能增強保持同步之壓力。記憶體製造者增強記憶體效能之一方式係減少記憶體讀取/寫入次數。然而,記憶體技術之改進會妨礙該效力。增強記憶體效能之另一方式可為使記憶體及SSD之搜尋更有效率。
在以下詳細描述中,參考構成本發明之一部分之附圖,且在附圖中依繪示方式展示特定實施例。在圖式中,相同元件符號描述所有若干視圖中之實質上類似組件。可利用其他實施例且可在不背離本發明之範疇之情況下作出結構、邏輯及電性改變。因此,以下詳細描述不應被視為意指限制。 隨後,僅為繪示之目的而參考固態磁碟機(SSD)。如本文所揭示,自主記憶體搜尋操作可同樣適當應用於包含半導體記憶體、光學記憶體或磁性記憶體之任何類型之記憶體裝置或記憶體裝置群組。因此,本發明不限於SSD之搜尋。 隨後,亦參考結構化查詢語言及術語「MySQL」。如此項技術中所知,SQL係指經設計以管理一關聯式資料庫之一專用程序撰寫語言。術語「MySQL」係指作為一伺服器運行以提供至諸多資料庫之多使用者存取的一品牌關聯式資料庫管理系統。一MySQLTM
資料庫系統通常可特徵化為一結構化資料庫。因此,本文所參考之SQL及MySQLTM
資料庫僅用於繪示之目的。本文所揭示之自主記憶體搜尋方法之實施例可同樣適當應用於儲存結構化資料及非結構化資料兩者之其他類型之資料庫。例如,任何關鍵值儲存資料庫(例如一NoSQL資料庫)可使用自主記憶體搜尋方法。 如本文所使用,結構化資料可為組織成離散記錄(例如元素)之資料。該等記錄可由一或多個欄位組成。結構資料之一實例可為劃分成名字、地址及識別資訊之記錄。 如本文所使用,非結構化資料可為未組織成離散記錄(例如元素)之資料。非結構化資料之一實例可為來自一書籍之文字、一數位影像或人類語言之一數位表示。 圖1繪示可包含一主機130及一記憶體系統(例如SSD) 108之一資料庫系統之一實施例之一方塊圖。主機130可為一電腦系統或CPU。記憶體系統(例如SSD) 108可為一單一非揮發性記憶體裝置或組合成一單一單元(例如SSD)之複數個非揮發性記憶體裝置。 主機130可包括可提供資料庫系統中之不同資料庫功能之複數個用戶端(例如用戶端軟體、程式) 100。例如,此等用戶端100可包含資料庫備份常式(例如mysqldump常式)、表維護常式(例如mysqlcheck常式)、命令行介面常式(例如mysqlimport常式)及/或其他資料庫功能。 用戶端100與伺服器102通信。伺服器102可為一mysqld (MySQL伺服器)或某一其他類型之伺服器。伺服器102可為資料庫系統中之主程式,其管理儲存於用於用戶端100及一主機(例如中央處理單元、電腦、控制器)之記憶體系統108中之資料庫之存取。 一儲存引擎104在主機130之伺服器102與作業系統(OS)檔案系統協定106之間通信。儲存引擎104透過主機130之OS檔案系統106而將搜尋準則及搜尋關鍵字傳輸至記憶體108,且透過主機130之OS檔案系統106而從記憶體系統108回收對搜尋之回應。隨後討論搜尋準則及搜尋關鍵字。 一典型先前技術之儲存引擎可在記憶體中之一資料庫之一典型搜尋期間傳送來自該資料庫之大量原始資料。例如,在含有一表中之數千個記錄之一資料庫之一典型先前技術搜尋中,將該等記錄之大多數或全部從該記憶體讀取至CPU之主記憶體以由CPU處理。 用於自主記憶體搜尋之方法之儲存引擎104可將搜尋準則及搜尋關鍵字傳送至記憶體系統108,且僅回收由使用搜尋準則及搜尋關鍵字之一資料庫搜尋所致之搜尋結果。因此,儲存引擎104可不必剖析大量原始資料且CPU可不必使用寶貴時間來執行搜尋準則及搜尋關鍵字與原始資料之比較。此可導致使用自主記憶體搜尋之方法之系統之一效能改進。此亦可導致總電力節約、成本節約及外型尺寸優點。 記憶體系統108可包含可儲存待搜尋之一資料庫之任何類型之記憶體。圖2繪示一記憶體系統108 (例如SSD)之一實施例之一方塊圖。例如,複數個非揮發性記憶體裝置(例如快閃記憶體)可經組合以形成記憶體區塊203。記憶體系統108 (例如SSD)可具有耦合至記憶體區塊203以控制記憶體系統108 (例如SSD)之操作之一控制器(例如處理器) 201。根據圖4至圖6中所描述之協定及方法,控制器201可包括用於指導儲存引擎104之活動之一模組210 (例如韌體或軟體)。 圖3A繪示一資料庫儲存格式之一實施例之一圖式。在所繪示之實施例中,資料庫可儲存於一表狀格式300中。所繪示之表300包含一標頭301及「n」個記錄(例如記錄(0)至記錄(n-1))。各記錄可指向表300中之下一記錄,使得當表300由後一記錄更新時,前一記錄可經更新以指向該後一記錄。 標頭301可包含描述表300之欄位。例如,標頭301可包含表300中之數個記錄、各記錄之一長度、每記錄之欄位數及各欄位之一長度。其他實施例可包含標頭301中之額外描述資料。 各記錄(例如記錄(0)至記錄(n-1)) 303可包含待搜尋之資料之複數個欄位(例如欄位(0)至欄位(m-1))。各記錄303亦可包含針對下一記錄之一指標欄305。此指標欄305可為含有下一記錄之記憶體中之另一位置之一邏輯位址。因此,記錄在記憶體中無需依序定位。 各欄位(例如欄位(0)至欄位(m-1))可包括儲存欄位長度及欄位資料之一元素307。該欄位資料可包括待搜尋之實際資料309。 圖3B繪示一資料庫儲存格式之另一實施例。此實施例亦可呈一表狀格式310。然而,圖3A及圖3B之格式僅用於繪示之目的。本發明之實施例不受限於任何一格式(表狀或其他)。 表310包括一表標頭312及「n」個記錄群組(例如記錄群組(0)至記錄群組(n-1))。各記錄群組可指向表310之下一記錄群組,使得當表310由後一記錄群組更新時,前一記錄群組可經更新以指向該後一記錄群組。 標頭312可包含描述表310之欄位。例如,標頭312可包含數個記錄群組、記錄群組長度、記錄數目、每記錄之欄位數、欄位長度、第一記錄群組之一位址(例如邏輯位址、實體位址)及/或表之版本號碼。 各記錄群組(例如記錄群組(0)至記錄群組(n-1)) 314可包含「m」個記錄(例如記錄(0)至記錄(m-1))。各記錄群組314可包含針對下一記錄群組314之一指標320及用於各記錄群組314之記錄321以及記錄316之數目的一欄位。指標320可為含有下一記錄之記憶體中之另一位置之一邏輯位址。因此,記錄群組在記憶體中無需依序定位。 各記錄316可包含資料之「k」個欄位318 (例如欄位(0)至欄位(k-1))。各欄位318可包含待搜尋之實際資料。 圖4A及圖4B繪示主機與記憶體系統之間之通信之兩個實施例之協定流程圖。此等實施例僅用於繪示之目的,此係因為其他實施例可使用替代方法。 圖4A繪示自主記憶體搜尋之方法期間之主機(例如CPU、電腦) 130與記憶體系統108 (如先前參考圖1所描述)之間之通信之一實施例之一協定流程圖。在所繪示之實施例中,可由儲存引擎104發出三個命令以執行搜尋。例如,一寫入命令(例如小型電腦系統介面(SCSI)寫入命令)及接著兩個或兩個以上讀取命令可用於將搜尋關鍵字及搜尋標準轉移至記憶體系統108且檢索資料庫搜尋之結果。 記憶體系統108中之資料庫之搜尋可由一或多個搜尋關鍵字(例如型樣)、搜尋準則(例如比較準則)及待搜尋之資料集(例如資料庫)界定。可藉由比較搜尋關鍵字與作為一整體之資料集或資料之一系列子集而執行搜尋。當由搜尋準則限定之搜尋關鍵字之比較匹配資料集之至少一部分時,可進行一匹配。搜尋之結果可為無匹配、一個匹配、或複數個匹配。 搜尋準則可包含諸如「等於」、「小於」、「大於」、「不等於」、「小於或等於」或「大於或等於」之運算子。另外,任何邏輯運算子(諸如「與(AND)」、「或(OR)」、「非(NOT)」)及任何邏輯運算子之組合可單獨或與其他運算子組合地用於搜尋資料庫。 可由將一初始命令(例如SCSI寫入命令) 401發出至記憶體系統108之主機130啟動搜尋(例如,可由一儲存引擎 (諸如圖1之儲存引擎104)發出命令)。初始命令401可包含搜尋準則及搜尋關鍵字之一指示。 初始命令(例如SCSI寫入命令)中之搜尋準則及搜尋關鍵字之指示可為該命令之一特定欄位中所設定之一位元,其指示:由該命令隱含且與該命令相關聯之一緩衝區含有搜尋準則及搜尋關鍵字。例如,在一SCSI寫入命令中,輸入邏輯區塊位址(LBA)之一高階位元可經設定以指示該緩衝區中之佇列搜尋準則及搜尋關鍵字。 記憶體系統108接收初始命令401且讀取緩衝區中之佇列搜尋準則及搜尋關鍵字之指示。接著,記憶體系統108可將一確認402回復給主機130。該確認可被視為選用的,此係因為主機130僅可假定:記憶體系統108接收初始命令401。 接著,主機130 (例如儲存引擎)可將一第二命令(例如SCSI讀取) 403發出至記憶體系統108以指示準備接收搜尋結果。在無來自記憶體系統108之回應之情況下,第二命令403可保持未處理,直至記憶體系統108已完成搜尋或已填滿分配給搜尋結果之其內部緩衝區。一旦緩衝區已由搜尋結果填滿或搜尋到達資料庫之末尾,則記憶體系統108可將一回應(例如感測資料) 405發出至主機130以指示搜尋已完成。若存在且若搜尋已完成或緩衝區確實已滿且需要被讀取以清空緩衝區,則此回應(例如感測資料)405可指示從搜尋找到之結果之數目。 若來自記憶體系統108之回應405指示非零個搜尋結果,則主機130可回應於此指示而發出另一命令(例如SCSI讀取) 407以從記憶體系統緩衝區檢索結果。接著,記憶體系統108可發出可含有來自緩衝區之搜尋之結果的另一回應(例如感測資料) 409。 若來自主機130之第一讀取命令403之結果指示搜尋未完成,主機130可返回至此讀取步驟403且重複程序,直至指示來自記憶體系統108之搜尋已完成。 圖4B繪示自主記憶體搜尋之方法期間之主機(例如CPU、電腦) 130與記憶體系統108 (如先前參考圖1所描述)之間之通信之另一實施例之一協定流程圖。在所繪示之實施例中,可由儲存引擎104發出三個命令以執行搜尋。例如,一寫入命令(例如小型電腦系統介面(SCSI)寫入命令)及接著兩個或兩個以上讀取命令可用於將搜尋關鍵字及搜尋準則轉移至記憶體系統108且檢索資料庫搜尋之結果。 可由將一初始命令(例如SCSI寫入命令) 410發出至記憶體系統108之主機130啟動搜尋(例如,可由一儲存引擎(諸如圖1之儲存引擎104)發出命令)。初始命令410可包含搜尋準則及搜尋關鍵字之一指示。 初始命令(例如SCSI寫入命令)中之搜尋準則及搜尋關鍵字之指示可為該命令之一特定欄位中所設定之一位元,其指示:由該命令隱含且與該命令相關聯之一緩衝區含有搜尋準則及搜尋關鍵字。例如,在一SCSI寫入命令中,輸入邏輯區塊位址(LBA)之一高階位元可經設定以指示該緩衝區中之佇列搜尋準則及搜尋關鍵字。 記憶體系統108接收初始命令410且讀取緩衝區中之佇列搜尋準則及搜尋關鍵字之指示。接著,記憶體系統108可將一確認402回復給主機130。該確認可被視為選用的,此係因為主機130僅可假定:記憶體系統108接收初始命令410。 在無來自記憶體系統108之回應之情況下,初始命令410可保持未處理,直至記憶體系統108已完成搜尋或已填滿分配給搜尋結果之其內部緩衝區。一旦緩衝區已由搜尋結果填滿或搜尋到達資料庫之末尾,則記憶體系統108可將一回應(例如感測資料) 414發出至主機130以指示搜尋已完成。若存在且若搜尋已完成或緩衝區確實已滿且需要被讀取以清空緩衝區,則此回應(例如感測資料) 414可指示從搜尋找到結果之數目。 記憶體系統108可使用實際搜尋結果416 (例如感測資料)來跟進回應414,假定具有無零個搜尋結果。主機130可使用一命令418 (例如SCSI讀取命令)來確認搜尋結果之正確接收。 記憶體系統108可放棄與搜尋相關聯之緩衝區。此可被指示為從記憶體系統108至主機130之一回應(例如感測資料) 420。 在圖4A及圖4B中所繪示之協定流程圖期間,記憶體系統108仍可繼續正常操作。因此,記憶體系統108仍可對來自主機130之正常讀取命令及寫入命令作出回應。 圖5繪示用於自主記憶體搜尋之方法之一實施例之一功能方塊圖。可由記憶體系統108之控制器201執行此功能方塊圖之執行。 可從主機通過記憶體匯流排(例如序列先進附接技術(SATA))而接收命令(例如搜尋請求、讀取)。可由剖析區塊501檢查所接收之命令以判定命令之類型。 若所接收之命令係一搜尋請求(例如圖4之SCSI寫入命令401),則其可在請求先進先出(FIFO)緩衝區503中排入佇列以供搜尋處理執行緒512使用。緩衝區503可儲存搜尋關鍵字及搜尋準則。若所接收之命令被剖析區塊501判定為兩個隨後命令(例如圖4之SCSI讀取403及407)之一者,則此等命令之指示可儲存於兩個未處理請求緩衝區505及506之一者中。 連續緩衝區505可儲存第二命令(例如圖4中之SCSI讀取403)之一指示,一旦緩衝區已滿或搜尋已完成,則該指示請求記憶體系統作出回應。此緩衝區505耦合至發送回應資訊區塊507,使得當回應資訊FIFO 508含有指示搜尋完成(例如,回應FIFO 510、511已滿,整個資料庫已被搜尋)之資料時,發送回應資訊區塊507可封裝返回至主機之資訊回應(例如圖4中之回應405)以指示緩衝區已滿或整體資料庫已被搜尋。 獲得回應緩衝區506可儲存第三命令(例如圖4中之SCSI讀取407)之一指示,該指示請求來自記憶體系統之搜尋結果。此緩衝區508耦合至發送回應區塊509,使得當從主機接收第二命令(例如圖4中之SCSI讀取407)時,發送回應區塊509可封裝儲存於回應FIFO緩衝區510、511中之搜尋結果且通過記憶體匯流排而將資料發送至主機。一旦此等緩衝區510、511已被清空,則一指示可儲存於回應緩衝區自由表513中以對搜尋處理執行緒512指示:若搜尋仍在繼續,則執行緒512可繼續填充緩衝區510、511。 搜尋處理執行緒512各包括從主機接收之一單獨搜尋。可藉由使用多個不同搜尋處理執行緒512而實質上同時(例如實質上平行,部分或完全重疊)執行複數個單獨搜尋。 當從主機接收初始命令(例如圖4中之SCSI寫入401)時,可將搜尋準則及搜尋關鍵字轉送至搜尋處理執行緒512之一者。接著,該特定搜尋處理執行緒512可存取資料庫記錄表(例如圖3)以根據搜尋準則而比較搜尋關鍵字與所儲存之記錄。各搜尋處理執行緒512可執行具有不同搜尋準則及搜尋關鍵字之一單獨搜尋。 一旦搜尋處理執行緒512之一者已用來自搜尋之結果填滿緩衝區510、511或已搜尋整個資料庫(例如,搜尋已完成),則一完成指示可儲存於回應資訊FIFO 508中。此指示可包含對該指示所涉及之特定搜尋之一參考以及與緩衝區510、511確實已滿或搜尋已完成相關之資訊。接著,此指示可由發送回應資訊區塊507封裝且被發送至主機,如先前所討論。 圖5之功能區塊可為記憶體系統108之部分且由記憶體系統中之控制器201執行。功能區塊可為硬體模組與軟體/韌體模組之一組合。因此,多個搜尋處理執行緒512不僅實現複數個平行搜尋,且可由記憶體系統108執行完成此等搜尋之處理,此可減少主機130之工作負荷。 圖6A繪示用於自主記憶體搜尋之方法之一實施例之一流程圖。主機可將一命令(例如一SCSI寫入命令、搜尋要求)傳輸至記憶體系統以啟動搜尋(601)。此命令可包含與搜尋關鍵字及搜尋準則相關之一指示。主機可從記憶體系統接收搜尋請求已被接收之一確認(603)。 接著,主機可將一命令(例如一SCSI讀取命令)發送至記憶體系統以對記憶體系統指示:主機已準備接收來自搜尋請求之任何結果(605)。可從記憶體系統接收可指示搜尋已完成(例如,整個資料庫已被搜尋)或搜尋結果緩衝區已滿之一回應(607)。 接著,主機可將一命令(例如SCSI讀取命令)發送至記憶體系統以檢索記憶體系統可使用搜尋結果來對該命令作出回應之此等搜尋結果(609)。若記憶體系統已指示搜尋未完成(611),則從主機指示其準備接收搜尋結果(605)之點重複方法。若搜尋已完成,則方法完成(615)。 圖6B繪示用於自主記憶體搜尋之方法之另一實施例之一流程圖。在一選用之步驟中,可在一搜尋請求之前組態記憶體。例如,可設置轉移大小組態(例如,在發回至請求器或/啟動器之前之全部回應之大小),可設定最大/最小記錄及頁面大小(例如,所儲存之資料結構之大小及記憶體頁面之大小,可設定每實體頁面之記錄數,可設定多個區域之驅動之劃分、一些支援習知讀取及寫入及其他支援資料-結構感知操作,可設定壓縮之存在(例如啟用/停用、所使用之演算法),及/或可設定加密之存在(例如啟用/停用、所使用之演算法)。 主機可將一命令(例如SCSI寫入命令、搜尋請求)傳輸至記憶體系統以啟動搜尋(620)。此命令可包含與搜尋關鍵字及搜尋準則相關之一指示。主機可從記憶體系統接收搜尋請求已被接收之一確認(622)。 記憶體系統可將指示搜尋已完成或搜尋回應緩衝區已滿之一回應發出至主機(624)。記憶體系統可使用實際搜尋結果來跟進此回應626。接著,主機可確認結果之接收且確認結果被正確接收(628)。接著,記憶體系統可放棄與搜尋相關聯之搜尋結果緩衝區(630)。 在另一實施例中,記憶體系統傳輸及主機接收之步驟、搜尋結果存在(例如607及624)之指示可與實際結果被傳輸(例如609及626)之步驟組合。 雖然已從主機之觀點繪示圖6A及圖6B之實施例,但熟悉此項技術者應瞭解,此等實施例亦繪示由記憶體系統執行之程序。換言之,當主機從記憶體系統接收一回應時,熟悉此項技術者應瞭解,記憶體系統已傳輸該回應。 實施例可實施於包含圖2之記憶體203之硬體、韌體及/或軟體之一者或一組合中。實施例亦可實施為儲存於一電腦可讀儲存裝置上之指令,可由至少一處理器讀取及執行該等指令以執行本文所描述之操作。一電腦可讀儲存裝置可包含用於儲存呈可由一機器(例如一電腦)讀取之一形式之資訊的任何非暫時性機構。例如,一電腦可讀儲存裝置可包含唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體裝置及其他儲存裝置及媒體。在一些實施例中,一系統可包含一或多個處理器且可組態有儲存於一電腦可讀儲存裝置中之指令。 記憶體系統108之控制器201可識別被搜尋之資料結構格式(例如圖3A及圖3B中所揭示)。為使控制器201識別資料結構,軟體/韌體210已被寫入及/或被升級以包含與該資料結構相關聯之屬性。接著,控制器可剖析資料結構之個別欄位且因此執行涉及該特定資料結構之操作。例如,一特定資料結構可已被預先使用或與該資料結構有關之資訊可在實際使用該特定資料結構之前已預先儲存於由控制器201執行之軟體/韌體中。此資訊可包含在一資料庫表、一資料庫綱目、二元樹格式、一圖形結構或某一其他方式中之欄位描述以將資料結構格式通知記憶體系統。所有此資訊可為控制器之硬體/軟體之部分(或更新至控制器之韌體/軟體),使得當特定資料庫格式用於記憶體系統中時,控制器201知道預期會發生什麼。 作為其中控制器201可識別資料結構格式之此一操作之一實例,一使用者可指示一記憶體系統108搜尋位於位址0處之一資料庫中之一列表。記憶體系統之控制器可看到位址0且找到該列表之適當格式。控制器之韌體(或經由韌體升級而發送)包括允許控制器識別所儲存之資料結構之格式的所儲存之常式。若假定控制器在該處找到該列表之第一元素,則控制器即時識別該列表之結構(而非僅將其視為一般資料),其可看到具有一定意義之不同資料欄位(例如針對下一列表節點之一指標及所儲存之資料)且使該等不同資料欄位相關聯。由於該列表被搜尋,所以軟體/韌體可指示控制器剖析針對下一列表節點之該指標,跟隨其,且開始依相同方式處理下一列表節點。 記憶體系統108之控制器201可理解如何給尚未由記憶體系統使用之新資料結構之儲存分配空間。例如,控制器可管理記憶體陣列中之儲存且給一輸入命令分配該儲存之任何者。 記憶體系統108之控制器201可理解及接受命令(例如來自主機130)以變更資料庫之一狀態。換言之,控制器201可經組態以建立一資料庫,在該資料庫中建立一表,插入一記錄,刪除一記錄,或刪除該資料庫。當由主機130請求一特定資料集上之一索引時,控制器201可亦變更該資料庫之該狀態。 記憶體系統108之控制器201可控制記憶體系統108,使得一第一記憶體系統可充當至另一資料庫啟用記憶體系統之一用戶端。例如,若記憶體系統係一SSD,則具有一資料庫之一SSD可為至另一SSD之一用戶端且對來自具有一資料庫之另一SSD之命令作出回應。此可給一記憶體系統提供亦搜尋具有相同搜尋準則及搜尋關鍵字之其他記憶體系統之能力。 圖7繪示此一系統之一實例。主機130可耦合至複數個記憶體系統(例如SSD) 108、701、702且與該複數個記憶體系統通信,其中記憶體系統108、701、702之各者實質上類似。記憶體系統108、701、702不僅可與主機130通信,且可在其等之間通信,使得一記憶體系統701可為至另一記憶體系統108之一用戶端。 記憶體系統108之控制器201可亦具有取決於由控制器執行之韌體/軟體210之額外功能。由於控制器201並不僅受限於某些功能,所以此等功能僅用於繪示之目的。 例如,控制器201可具有可靠地接收及控制韌體/軟體210之更新之能力。此可用於更新控制器201之能力。控制器201可建立新資料結構以儲存搜尋結果,建立由多個輸入資料結構所致之新資料結構(例如MySQLTM
式運算,諸如接合、結合及其他資料調處操作),基於資料結構中之一共同欄位之一比較而建立新資料結構(例如,基於多個記錄中之一特定行中之等效資料之比較之MySQLTM
式接合),基於其他記錄之一彙總功能而將一值指派給一記錄中之一欄位(例如MySQLTM
式運算,諸如計數、求和、求平均值、求標準偏差及條件求和)。 控制器201可進一步具有將冗餘新增至一資料庫之記錄以能夠偵測錯誤(例如錯誤校正碼(EEC))之能力。例如,控制器201可在將資料儲存於記憶體中使得EEC儲存於該資料庫內時控制EEC之新增,或控制器201可在將搜尋結果傳輸至主機之前控制將EEC新增至搜尋結果。控制器201可亦複製記錄,使得可在當前記錄中偵測到錯誤時檢查額外記錄。 控制器201可進一步具有在資料庫之一或多個欄位中建立一索引以改良搜尋效能之能力。例如,控制器201可控制各記錄之一特定欄位中之一旗標之儲存,使得後一搜尋可僅尋找該旗標以判定該特定記錄是否符合搜尋關鍵字及搜尋準則。 控制器201可進一步具有控制記憶體系統之一快取區中之搜尋結果之儲存的能力。此快取區可為搜尋結果資料緩衝區或為用於記憶體系統之其他目的之另一快取區。 控制器201可進一步具有在已接收搜尋結果已被正確接收之一指示(例如寫入命令)時控制記憶體及/或搜尋結果資料緩衝區之清除的能力。控制器201可進一步控制用於儲存搜尋結果之記憶體位置(例如快取區、資料緩衝區、記憶體)之解除分配。 一設備可被界定為電路、一積體電路晶粒、一記憶體裝置、一記憶體陣列或一系統。 結論 用於自主記憶體搜尋之方法及設備之一或多項實施例可對一記憶體系統(例如SSD)之一資料庫中之一結構化或非結構化資料集執行一搜尋。可在無來自外部主機之干擾之情況下於該記憶體系統內完全執行該搜尋。可使一或多個搜尋請求在該記憶體系統中排入佇列。可實質上平行地處理多個搜尋。在具有多個記憶體系統(例如多個SSD)之一系統中,可使每記憶體系統之多個搜尋排入佇列。一資料集可駐留於一單一記憶體系統中或跨越多個記憶體系統且藉由一單一搜尋來搜尋整個資料集。 雖然本文已繪示及描述特定實施例,但一般技術者應瞭解,意在達成相同目的之任何配置可代替所展示之該等特定實施例。一般技術者將明白諸多調適。據此,本申請案意欲涵蓋任何調適或變動。
100‧‧‧用戶端
102‧‧‧伺服器
104‧‧‧儲存引擎
106‧‧‧作業系統(OS)檔案系統
108‧‧‧記憶體系統/固態磁碟機(SSD)
130‧‧‧主機
201‧‧‧控制器/處理器
203‧‧‧記憶體區塊
210‧‧‧模組/韌體/軟體
300‧‧‧表狀格式/表
301‧‧‧標頭
303‧‧‧記錄
305‧‧‧指標欄位
307‧‧‧元素
309‧‧‧實際欄位
310‧‧‧表狀格式/表
312‧‧‧表標頭
314‧‧‧記錄群組
316‧‧‧記錄
318‧‧‧欄位
320‧‧‧指標
321‧‧‧記錄
401‧‧‧初始命令/小型電腦系統介面(SCSI)寫入命令
402‧‧‧確認
403‧‧‧第二命令/第一讀取命令/讀取步驟/小型電腦系統介面(SCSI)讀取
405‧‧‧回應/感測資料
407‧‧‧命令/小型電腦系統介面(SCSI)讀取
409‧‧‧回應/感測資料
410‧‧‧初始命令/小型電腦系統介面(SCSI)寫入命令
412‧‧‧確認
414‧‧‧回應/感測資料
416‧‧‧實際搜尋結果
418‧‧‧命令
420‧‧‧回應/感測資料
501‧‧‧剖析區塊
503‧‧‧請求先進先出(FIFO)緩衝區
505‧‧‧繼續緩衝區/未處理請求緩衝區
506‧‧‧獲得回應緩衝區/未處理請求緩衝區
507‧‧‧發送回應資訊區塊
508‧‧‧回應資訊先進先出(FIFO)緩衝區
509‧‧‧發送回應區塊
510‧‧‧回應先進先出(FIFO)緩衝區
511‧‧‧回應先進先出(FIFO)緩衝區
512‧‧‧搜尋處理執行緒
513‧‧‧回應緩衝區自由表
601‧‧‧發送命令以啟動搜尋
603‧‧‧接收確認
605‧‧‧發送命令以指示準備接收搜尋結果
607‧‧‧接收搜尋結果已存在或搜尋已完成之指示
609‧‧‧發送命令以檢索結果且接收結果
611‧‧‧搜尋是否完成?
615‧‧‧方法完成
619‧‧‧組態記憶體
620‧‧‧發送命令以啟動搜尋
622‧‧‧接收確認
624‧‧‧接收具有搜尋結果或搜尋完成之指示之回應
626‧‧‧接收搜尋結果
628‧‧‧傳輸接收結果之確認
630‧‧‧記憶體系統放棄搜尋結果緩衝區
701‧‧‧記憶體系統/固態磁碟機(SSD)
702‧‧‧記憶體系統/固態磁碟機(SSD)
102‧‧‧伺服器
104‧‧‧儲存引擎
106‧‧‧作業系統(OS)檔案系統
108‧‧‧記憶體系統/固態磁碟機(SSD)
130‧‧‧主機
201‧‧‧控制器/處理器
203‧‧‧記憶體區塊
210‧‧‧模組/韌體/軟體
300‧‧‧表狀格式/表
301‧‧‧標頭
303‧‧‧記錄
305‧‧‧指標欄位
307‧‧‧元素
309‧‧‧實際欄位
310‧‧‧表狀格式/表
312‧‧‧表標頭
314‧‧‧記錄群組
316‧‧‧記錄
318‧‧‧欄位
320‧‧‧指標
321‧‧‧記錄
401‧‧‧初始命令/小型電腦系統介面(SCSI)寫入命令
402‧‧‧確認
403‧‧‧第二命令/第一讀取命令/讀取步驟/小型電腦系統介面(SCSI)讀取
405‧‧‧回應/感測資料
407‧‧‧命令/小型電腦系統介面(SCSI)讀取
409‧‧‧回應/感測資料
410‧‧‧初始命令/小型電腦系統介面(SCSI)寫入命令
412‧‧‧確認
414‧‧‧回應/感測資料
416‧‧‧實際搜尋結果
418‧‧‧命令
420‧‧‧回應/感測資料
501‧‧‧剖析區塊
503‧‧‧請求先進先出(FIFO)緩衝區
505‧‧‧繼續緩衝區/未處理請求緩衝區
506‧‧‧獲得回應緩衝區/未處理請求緩衝區
507‧‧‧發送回應資訊區塊
508‧‧‧回應資訊先進先出(FIFO)緩衝區
509‧‧‧發送回應區塊
510‧‧‧回應先進先出(FIFO)緩衝區
511‧‧‧回應先進先出(FIFO)緩衝區
512‧‧‧搜尋處理執行緒
513‧‧‧回應緩衝區自由表
601‧‧‧發送命令以啟動搜尋
603‧‧‧接收確認
605‧‧‧發送命令以指示準備接收搜尋結果
607‧‧‧接收搜尋結果已存在或搜尋已完成之指示
609‧‧‧發送命令以檢索結果且接收結果
611‧‧‧搜尋是否完成?
615‧‧‧方法完成
619‧‧‧組態記憶體
620‧‧‧發送命令以啟動搜尋
622‧‧‧接收確認
624‧‧‧接收具有搜尋結果或搜尋完成之指示之回應
626‧‧‧接收搜尋結果
628‧‧‧傳輸接收結果之確認
630‧‧‧記憶體系統放棄搜尋結果緩衝區
701‧‧‧記憶體系統/固態磁碟機(SSD)
702‧‧‧記憶體系統/固態磁碟機(SSD)
圖1繪示一資料庫儲存系統之一實施例之一方塊圖。 圖2繪示根據圖1之實施例之一記憶體系統之一實施例之一方塊圖。 圖3A及圖3B繪示資料庫儲存格式之實施例之圖式。 圖4A及圖4B繪示一主機與一記憶體之間之通信之實施例之協定流程圖。 圖5繪示用於自主記憶體搜尋之方法之一實施例之一功能方塊圖。 圖6A及圖6B繪示用於自主記憶體搜尋之方法之實施例之流程圖。 圖7繪示具有多個記憶體系統之一系統之一方塊圖。
501‧‧‧剖析區塊
503‧‧‧請求先進先出(FIFO)緩衝區
505‧‧‧繼續緩衝區/未處理請求緩衝區
506‧‧‧獲得回應緩衝區/未處理請求緩衝區
507‧‧‧發送回應資訊區塊
508‧‧‧回應資訊先進先出(FIFO)緩衝區
509‧‧‧發送回應區塊
510‧‧‧回應先進先出(FIFO)緩衝區
511‧‧‧回應先進先出(FIFO)緩衝區
512‧‧‧搜尋處理執行緒
513‧‧‧回應緩衝區自由表
Claims (32)
- 一種自主記憶體搜尋之方法,其由一記憶體裝置之一記憶體控制器執行,用以搜尋該記憶體裝置之一非揮發性(non-volatile)記憶體,該方法包括: 處理自一主機提供至該記憶體裝置之一寫入命令,其中該寫入命令被定址至該記憶體裝置且包含一搜尋請求,該搜尋請求由該寫入命令之一邏輯區塊位址欄位中之一預定位元所指示; 回應於該寫入命令啟動該記憶體之一搜尋,其中該寫入命令之該邏輯區塊位址欄位進一步包含指示用以啟動該搜尋之資訊的位元,使得該寫入命令中之該邏輯區塊位址欄位包含該預定位元及額外位元,而非(in place of)一邏輯區塊位址;及 獲得該記憶體之該搜尋之結果。
- 如請求項1之方法,其中該寫入命令包含一搜尋準則及一搜尋關鍵字的一指示。
- 如請求項2之方法,其中該搜尋準則包含「等於」、「小於」、「大於」、「不等於」、「小於或等於」、「大於或等於」、「及(AND)」、「或(OR)」或「非(NOT)」之一或多者。
- 如請求項1之方法,其中該邏輯區塊位址欄位中之該預定位元進一步指示搜尋資訊對該記憶體裝置為可用的以執行該搜尋請求。
- 如請求項1之方法,其中該等結果包含該搜尋已經完成或搜尋結果已經被發現的一指示,且其中當該等搜尋結果已經被發現,回應於該指示而自該記憶體提供該等搜尋結果。
- 如請求項5之方法,其中獲得該搜尋已經完成或該等搜尋結果已經被發現的該指示包括:獲得該搜尋已經達到儲存於該記憶體中之一資料庫之一末尾的一指示。
- 如請求項5之方法,其中獲得該搜尋已經完成或該等搜尋結果已經被發現的該指示包括:獲得用以提供該等搜尋結果之緩衝區已滿的一指示。
- 如請求項1之方法,其中自該記憶體提供該等搜尋結果包括:回應於對該記憶體裝置的一讀取命令而提供該等搜尋結果,該讀取命令引起該記憶體裝置傳輸回該等搜尋結果。
- 如請求項1之方法,其中自該記憶體提供該等搜尋結果包括:回應於對該記憶體發出之一命令而提供該等搜尋結果,該命令指示該主機準備接收該等搜尋結果。
- 如請求項9之方法,其中該寫入命令包含一小型電腦系統介面(SCSI)寫入命令,且其中指示該主機準備接收該等搜尋結果的該命令包含一SCSI讀取命令。
- 如請求項1之方法,其進一步包括: 對該主機傳輸該搜尋已經完成或搜尋結果已經被發現的一指示。
- 一種非揮發性裝置可讀取儲存媒體,其提供指令,當該等指令被一記憶體裝置之一記憶體控制器執行時,執行該記憶體裝置之一非揮發性記憶體的自主記憶體搜尋,其中該等指令引起該控制器執行下列操作: 處理自一主機傳輸至該記憶體裝置之一寫入命令,其中該寫入命令被定址至該記憶體裝置且包含一搜尋請求,該搜尋請求由該寫入命令之一邏輯區塊位址欄位中之一預定位元所指示; 回應於該寫入命令啟動該記憶體之一搜尋,其中該寫入命令之該邏輯區塊位址欄位進一步包含指示用以啟動該搜尋之資訊的位元,使得該寫入命令中之該邏輯區塊位址欄位包含該預定位元及額外位元,而非(in place of)一邏輯區塊位址;及 獲得該記憶體之該搜尋之結果,該等結果包含該搜尋已經完成或搜尋結果已經被發現的一指示。
- 如請求項12之儲存媒體,其中該寫入命令包含一搜尋準則及一搜尋關鍵字的一指示。
- 如請求項13之儲存媒體,其中該搜尋準則包含「等於」、「小於」、「大於」、「不等於」、「小於或等於」、「大於或等於」、「及(AND)」、「或(OR)」或「非(NOT)」之一或多者。
- 如請求項12之儲存媒體,其中當該等搜尋結果已經被發現,該等操作進一步包括回應於該指示而自該記憶體提供該等搜尋結果。
- 如請求項12之儲存媒體,其中獲得該搜尋已經完成或該等搜尋結果已經被發現的該指示包括:獲得該搜尋已經達到儲存於該記憶體中之一資料庫之一末尾的一指示。
- 如請求項12之儲存媒體,其中獲得該搜尋已經完成或該等搜尋結果已經被發現的該指示包括:獲得用以提供該等搜尋結果之緩衝區已滿的一指示。
- 如請求項12之儲存媒體,其中自該記憶體提供該等搜尋結果包括:回應於對該記憶體裝置的一讀取命令而提供該等搜尋結果,該讀取命令引起該記憶體裝置傳輸回該等搜尋結果。
- 如請求項12之儲存媒體,其中自該記憶體提供該等搜尋結果包括:回應於對該記憶體發出之一命令而提供該等搜尋結果,該命令指示該主機準備接收該等搜尋結果。
- 如請求項19之儲存媒體,其中該寫入命令包含一小型電腦系統介面(SCSI)寫入命令,且其中指示該主機準備接收該等搜尋結果的該命令包含一SCSI讀取命令。
- 如請求項12之儲存媒體,其進一步包括: 對該主機傳輸該搜尋已經完成或該等搜尋結果已經被發現的一指示。
- 一種記憶體裝置,其包括: 一非揮發性記憶體;及 一記憶體控制器,其可操作耦合至該非揮發性記憶體,該記憶體控制器用以執行下列操作: 處理自一主機傳輸至該記憶體裝置之一寫入命令,其中該寫入命令被定址至該記憶體裝置且包含一搜尋請求,該搜尋請求由該寫入命令之一邏輯區塊位址欄位中之一預定位元所指示; 回應於該寫入命令啟動該記憶體之一搜尋,其中該寫入命令之該邏輯區塊位址欄位進一步包含指示用以啟動該搜尋之資訊的位元,使得該寫入命令中之該邏輯區塊位址欄位包含該預定位元及額外位元,而非(in place of)一邏輯區塊位址;及 獲得該記憶體之該搜尋之結果。
- 如請求項22之記憶體裝置,其中該寫入命令包含一搜尋準則及一搜尋關鍵字的一指示。
- 如請求項23之記憶體裝置,其中該搜尋準則包含「等於」、「小於」、「大於」、「不等於」、「小於或等於」、「大於或等於」、「及(AND)」、「或(OR)」或「非(NOT)」之一或多者。
- 如請求項22之記憶體裝置,該等操作進一步包括: 獲得該搜尋已完成或搜尋結果已經被發現的指示;及 當該等搜尋結果已經被發現,回應於該指示而自該記憶體提供該等搜尋結果。
- 如請求項25之記憶體裝置,其中獲得該搜尋已經完成或該等搜尋結果已經被發現的該指示包括:獲得該搜尋已經達到儲存於該記憶體中之一資料庫之一末尾的一指示。
- 如請求項25之記憶體裝置,其中獲得該搜尋已經完成或該等搜尋結果已經被發現的該指示包括:獲得用以提供該等搜尋結果之緩衝區已滿的一指示。
- 如請求項22之記憶體裝置,其中自該記憶體提供該等搜尋結果包括:回應於對該記憶體裝置的一讀取命令而提供該等搜尋結果,該讀取命令引起該記憶體裝置傳輸回該等搜尋結果。
- 如請求項22之記憶體裝置,其中自該記憶體提供該等搜尋結果包括:回應於對該記憶體發出之一命令而提供該等搜尋結果,該命令指示該主機準備接收該等搜尋結果。
- 如請求項29之記憶體裝置,其中該寫入命令包含一小型電腦系統介面(SCSI)寫入命令,且其中指示該主機準備接收該等搜尋結果的該命令包含一SCSI讀取命令。
- 如請求項22之記憶體裝置,其進一步包括: 對該主機傳輸該搜尋已經完成或該等搜尋結果已經被發現的一指示。
- 如請求項22之記憶體裝置,其中該記憶體裝置係一固態硬碟,且其中該主機係一運算裝置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/965,739 | 2013-08-13 | ||
US13/965,739 US9779138B2 (en) | 2013-08-13 | 2013-08-13 | Methods and systems for autonomous memory searching |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201810088A true TW201810088A (zh) | 2018-03-16 |
TWI664541B TWI664541B (zh) | 2019-07-01 |
Family
ID=52467568
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103126970A TWI610187B (zh) | 2013-08-13 | 2014-08-06 | 用於自主記憶體搜尋之方法及系統 |
TW106141846A TWI664541B (zh) | 2013-08-13 | 2014-08-06 | 用於自主記憶體搜尋之方法及系統 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103126970A TWI610187B (zh) | 2013-08-13 | 2014-08-06 | 用於自主記憶體搜尋之方法及系統 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9779138B2 (zh) |
EP (1) | EP3033701B1 (zh) |
JP (1) | JP6211196B2 (zh) |
KR (2) | KR101868850B1 (zh) |
CN (2) | CN111221848A (zh) |
TW (2) | TWI610187B (zh) |
WO (1) | WO2015023625A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI664527B (zh) * | 2018-03-20 | 2019-07-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 |
US10778815B2 (en) | 2013-12-02 | 2020-09-15 | Micron Technology, Inc. | Methods and systems for parsing and executing instructions to retrieve data using autonomous memory |
US11586577B2 (en) | 2009-09-11 | 2023-02-21 | Micron Technology, Inc. | Autonomous memory architecture |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10198350B2 (en) | 2011-07-28 | 2019-02-05 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US10838646B2 (en) | 2011-07-28 | 2020-11-17 | Netlist, Inc. | Method and apparatus for presearching stored data |
US10380022B2 (en) | 2011-07-28 | 2019-08-13 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US10248328B2 (en) | 2013-11-07 | 2019-04-02 | Netlist, Inc. | Direct data move between DRAM and storage on a memory module |
WO2015070110A2 (en) | 2013-11-07 | 2015-05-14 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
US11182284B2 (en) | 2013-11-07 | 2021-11-23 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US9633074B1 (en) * | 2014-01-03 | 2017-04-25 | Amazon Technologies, Inc. | Querying data set tables in a non-transactional database |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
CN105988704B (zh) * | 2015-03-03 | 2020-10-02 | 上海触乐信息科技有限公司 | 高效的触摸屏文本输入系统及方法 |
US9927984B2 (en) * | 2015-10-14 | 2018-03-27 | Samsung Electronics Co., Ltd. | Electronic system with interface control mechanism and method of operation thereof |
KR20190023433A (ko) * | 2017-08-29 | 2019-03-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN110765156A (zh) * | 2018-07-09 | 2020-02-07 | 慧荣科技股份有限公司 | 链表搜索装置及方法 |
US10990323B2 (en) * | 2019-05-28 | 2021-04-27 | Silicon Motion, Inc. | Flash memory controller, memory device and method for accessing flash memory module |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5134711A (en) | 1988-05-13 | 1992-07-28 | At&T Bell Laboratories | Computer with intelligent memory system |
GB8816413D0 (en) | 1988-07-09 | 1988-08-17 | Int Computers Ltd | Data processing system |
GB9023096D0 (en) | 1990-10-24 | 1990-12-05 | Int Computers Ltd | Database search processor |
WO1995001604A1 (de) | 1993-06-30 | 1995-01-12 | Anton Gunzinger | Intelligentes kommunikations-system |
CA2145106C (en) | 1994-04-22 | 1999-08-24 | Abhaya Asthana | Intelligent memory-based input/output system |
JP3289101B2 (ja) * | 1996-01-25 | 2002-06-04 | 東京エレクトロン株式会社 | フラッシュ・ディスク・システムの初期化方法及び装置 |
KR100359414B1 (ko) * | 1996-01-25 | 2003-01-24 | 동경 엘렉트론 디바이스 주식회사 | 데이타독출/기록방법및그를이용한메모리제어장치및시스템 |
US5913217A (en) * | 1997-06-30 | 1999-06-15 | Microsoft Corporation | Generating and compressing universally unique identifiers (UUIDs) using counter having high-order bit to low-order bit |
US6105130A (en) | 1997-12-23 | 2000-08-15 | Adaptec, Inc. | Method for selectively booting from a desired peripheral device |
US6751606B1 (en) * | 1998-12-23 | 2004-06-15 | Microsoft Corporation | System for enhancing a query interface |
CN1437724A (zh) | 2000-03-03 | 2003-08-20 | 坦诺网络公司 | 使用内部处理器存储空间的高速数据处理 |
US6516380B2 (en) * | 2001-02-05 | 2003-02-04 | International Business Machines Corporation | System and method for a log-based non-volatile write cache in a storage controller |
US7581080B2 (en) | 2003-04-23 | 2009-08-25 | Micron Technology, Inc. | Method for manipulating data in a group of processing elements according to locally maintained counts |
GB2406399A (en) * | 2003-09-23 | 2005-03-30 | Ibm | Seaching within a computer network by entering a search term and optional URI into a web browser |
US7243200B2 (en) | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US7242216B1 (en) | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
US7634622B1 (en) | 2005-06-14 | 2009-12-15 | Consentry Networks, Inc. | Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory |
US20070165457A1 (en) | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
DE102006009027A1 (de) | 2006-02-27 | 2007-08-30 | Infineon Technologies Ag | Speicheranordnung |
TW200743991A (en) * | 2006-05-18 | 2007-12-01 | Realtek Semiconductor Corp | Data search method and apparatus thereof |
US7941579B2 (en) | 2006-06-30 | 2011-05-10 | Brother Kogyo Kabushiki Kaisha | Communication system for authenticating authority of host device for accessing storage medium set to periphery device |
US7657705B2 (en) * | 2006-09-27 | 2010-02-02 | Lsi Corporation | Method and apparatus of a RAID configuration module |
US8285707B2 (en) * | 2006-11-08 | 2012-10-09 | International Business Machines Corporation | Method of querying relational database management systems |
US9141670B2 (en) | 2007-08-27 | 2015-09-22 | Teradata Us, Inc. | Methods and systems for hardware acceleration of streamed database operations and queries based on multiple hardware accelerators |
US7895151B2 (en) | 2008-06-23 | 2011-02-22 | Teradata Us, Inc. | Fast bulk loading and incremental loading of data into a database |
US7623365B2 (en) | 2007-08-29 | 2009-11-24 | Micron Technology, Inc. | Memory device interface methods, apparatus, and systems |
US7913033B2 (en) | 2007-10-09 | 2011-03-22 | Micron Technology, Inc. | Non-volatile memory device having assignable network identification |
TWI346289B (en) | 2007-12-19 | 2011-08-01 | Ralink Technology Corp | Peripheral complying with sdio standard and method for managing sdio command |
US8493979B2 (en) | 2008-12-30 | 2013-07-23 | Intel Corporation | Single instruction processing of network packets |
US8549092B2 (en) | 2009-02-19 | 2013-10-01 | Micron Technology, Inc. | Memory network methods, apparatus, and systems |
TWI406130B (zh) * | 2009-03-10 | 2013-08-21 | Phison Electronics Corp | 資料處理系統、控制器及其搜尋特定記憶體區的方法 |
US8427952B1 (en) | 2009-03-24 | 2013-04-23 | Packet Plus, Inc. | Microcode engine for packet processing |
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
US9792307B2 (en) * | 2010-07-27 | 2017-10-17 | Oracle International Corporation | Enterprise-based searching of new and updated data |
US8930618B2 (en) | 2010-08-24 | 2015-01-06 | Futurewei Technologies, Inc. | Smart memory |
US10026458B2 (en) | 2010-10-21 | 2018-07-17 | Micron Technology, Inc. | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
JP2012159903A (ja) * | 2011-01-31 | 2012-08-23 | Fujitsu Semiconductor Ltd | データ処理システム、データ処理装置、及びデータ処理方法 |
US8478736B2 (en) * | 2011-02-08 | 2013-07-02 | International Business Machines Corporation | Pattern matching accelerator |
KR101306622B1 (ko) | 2011-06-22 | 2013-09-11 | 주식회사 에이디칩스 | 명령어 큐 제어장치 |
JP2013045378A (ja) | 2011-08-26 | 2013-03-04 | Fujitsu Ltd | ストレージ制御方法、情報処理装置およびプログラム |
US8775685B1 (en) | 2011-10-13 | 2014-07-08 | Xilinx, Inc. | Parallel processing of network packets |
US20130173655A1 (en) * | 2012-01-04 | 2013-07-04 | International Business Machines Corporation | Selective fetching of search results |
US9424202B2 (en) * | 2012-11-19 | 2016-08-23 | Smartfocus Holdings Limited | Database search facility |
US10089043B2 (en) | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Apparatus and methods for a distributed memory system including memory nodes |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
-
2013
- 2013-08-13 US US13/965,739 patent/US9779138B2/en active Active
-
2014
- 2014-08-06 TW TW103126970A patent/TWI610187B/zh active
- 2014-08-06 TW TW106141846A patent/TWI664541B/zh active
- 2014-08-12 KR KR1020167006563A patent/KR101868850B1/ko active IP Right Grant
- 2014-08-12 CN CN201911328989.8A patent/CN111221848A/zh not_active Withdrawn
- 2014-08-12 EP EP14836383.1A patent/EP3033701B1/en active Active
- 2014-08-12 KR KR1020187016637A patent/KR101927677B1/ko active IP Right Grant
- 2014-08-12 WO PCT/US2014/050624 patent/WO2015023625A1/en active Application Filing
- 2014-08-12 CN CN201480055911.2A patent/CN105612518B/zh active Active
- 2014-08-12 JP JP2016534782A patent/JP6211196B2/ja active Active
-
2017
- 2017-08-24 US US15/685,950 patent/US20170351737A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586577B2 (en) | 2009-09-11 | 2023-02-21 | Micron Technology, Inc. | Autonomous memory architecture |
US10778815B2 (en) | 2013-12-02 | 2020-09-15 | Micron Technology, Inc. | Methods and systems for parsing and executing instructions to retrieve data using autonomous memory |
TWI664527B (zh) * | 2018-03-20 | 2019-07-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 |
US10782901B2 (en) | 2018-03-20 | 2020-09-22 | Silicon Motion, Inc. | Method for performing initialization in a memory device, associated memory device and controller thereof, and associated electronic device |
Also Published As
Publication number | Publication date |
---|---|
US20170351737A1 (en) | 2017-12-07 |
EP3033701A4 (en) | 2017-04-05 |
US20150052114A1 (en) | 2015-02-19 |
WO2015023625A1 (en) | 2015-02-19 |
TW201518968A (zh) | 2015-05-16 |
EP3033701B1 (en) | 2020-05-27 |
CN105612518A (zh) | 2016-05-25 |
US9779138B2 (en) | 2017-10-03 |
JP6211196B2 (ja) | 2017-10-11 |
TWI610187B (zh) | 2018-01-01 |
JP2016536694A (ja) | 2016-11-24 |
KR20180067729A (ko) | 2018-06-20 |
KR101927677B1 (ko) | 2018-12-10 |
EP3033701A1 (en) | 2016-06-22 |
KR101868850B1 (ko) | 2018-06-19 |
TWI664541B (zh) | 2019-07-01 |
CN105612518B (zh) | 2020-01-14 |
CN111221848A (zh) | 2020-06-02 |
KR20160042122A (ko) | 2016-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI664541B (zh) | 用於自主記憶體搜尋之方法及系統 | |
US10795817B2 (en) | Cache coherence for file system interfaces | |
US9846642B2 (en) | Efficient key collision handling | |
US20180349396A1 (en) | Managing I/O Operations in a Storage Network | |
WO2015166540A1 (ja) | ストレージ装置とそのデータ処理方法及びストレージシステム | |
JP2016536694A5 (zh) | ||
WO2015162752A1 (ja) | データベース演算部を備えるフラッシュモジュール、及びストレージ装置 | |
WO2017025039A1 (zh) | 一种面向闪存存储的数据访问方法及其装置 | |
JP6445049B2 (ja) | ログの管理方法及び計算機システム | |
US9513829B1 (en) | Transaction logging using round-robin block allocation and I/O size based partitions | |
WO2015118865A1 (ja) | 情報処理装置、情報処理システム及びデータアクセス方法 | |
US10921987B1 (en) | Deduplication of large block aggregates using representative block digests | |
WO2015156000A1 (ja) | 計算機システム、データの検査方法及び計算機 | |
US9984112B1 (en) | Dynamically adjustable transaction log | |
EP3555774B1 (en) | Efficient database management system utilizing silo and manifest | |
US9483200B2 (en) | System and method for optical cold storage wherein plurality of first and second chunks are encoded and placed on different optical disks | |
WO2016206070A1 (zh) | 一种文件更新方法及存储设备 | |
JPWO2015141219A1 (ja) | ストレージシステム、制御装置、データアクセス方法およびプログラム | |
US20240168877A1 (en) | Solving submission queue entry overflow with an additional out-of-order submission queue entry | |
KR20170130180A (ko) | 비휘발성 메모리를 이용한 데이터처리 장치 및 방법 | |
WO2018083751A1 (ja) | インテリジェント・ストレージ・サブシステム | |
WO2017019129A1 (en) | Computing system cache |