TWI610187B - 用於自主記憶體搜尋之方法及系統 - Google Patents

用於自主記憶體搜尋之方法及系統 Download PDF

Info

Publication number
TWI610187B
TWI610187B TW103126970A TW103126970A TWI610187B TW I610187 B TWI610187 B TW I610187B TW 103126970 A TW103126970 A TW 103126970A TW 103126970 A TW103126970 A TW 103126970A TW I610187 B TWI610187 B TW I610187B
Authority
TW
Taiwan
Prior art keywords
search
memory
command
memory system
database
Prior art date
Application number
TW103126970A
Other languages
English (en)
Other versions
TW201518968A (zh
Inventor
肯尼斯M 柯維茲
西恩 艾樂
王宏育
亞明D 艾卡爾
Original Assignee
美光科技公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美光科技公司 filed Critical 美光科技公司
Publication of TW201518968A publication Critical patent/TW201518968A/zh
Application granted granted Critical
Publication of TWI610187B publication Critical patent/TWI610187B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/24569Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation 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之搜尋更有效率。
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‧‧‧請求先進先出(FIFC))緩衝區
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繪示具有多個記憶體系統之一系統之一方塊圖。
在以下詳細描述中,參考構成本發明之一部分之附圖,且在附圖中依繪示方式展示特定實施例。在圖式中,相同元件符號描述所有若干視圖中之實質上類似組件。可利用其他實施例且可在不背離本發明之範疇之情況下作出結構、邏輯及電性改變。因此,以下詳細描述不應被視為意指限制。
隨後,僅為繪示之目的而參考固態磁碟機(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)之一系統中,可使每記憶體系統之多個搜尋排入佇列。一資料集可駐留於一單一記憶體系統中或跨越多個記憶體系統且藉由一單一搜尋來搜尋整個資料集。
雖然本文已繪示及描述特定實施例,但一般技術者應瞭解,意在達成相同目的之任何配置可代替所展示之該等特定實施例。一般技術者將明白諸多調適。據此,本申請案意欲涵蓋任何調適或變動。
501‧‧‧剖析區塊
503‧‧‧請求先進先出(FIFO)緩衝區
505‧‧‧繼續緩衝區/未處理請求緩衝區
506‧‧‧獲得回應緩衝區/未處理請求緩衝區
507‧‧‧發送回應資訊區塊
508‧‧‧回應資訊先進先出(FIFO)緩衝區
509‧‧‧發送回應區塊
510‧‧‧回應先進先出(FIFO)緩衝區
511‧‧‧回應先進先出(FIFO)緩衝區
512‧‧‧搜尋處理執行緒
513‧‧‧回應緩衝區自由表

Claims (43)

  1. 一種方法,其包括:將一搜尋請求發出至被搜尋之一記憶體,其中該搜尋請求係由被傳輸至該記憶體之一寫入命令之一邏輯區塊位址欄位中所設定之一預定位元啟動,且其中該邏輯區塊位址欄位進一步包含指示用以啟動該搜尋請求之資訊的位元,使得該寫入命令中之該邏輯區塊位址欄位包含該預定位元及指示用以啟動該搜尋請求之該資訊的該等位元,而非(in place of)一邏輯區塊位址;從該記憶體接收儲存於該記憶體中之一資料庫的一搜尋已完成或搜尋結果已找到之一指示,儲存於該記憶體中之該資料庫的該搜尋係回應於啟動該搜尋請求之該資訊而啟動;當已找到該等搜尋結果時,回應於該指示而從該記憶體中之資料緩衝區擷取該等搜尋結果,並當該等資料緩衝區為清空時放棄(relinquishing)該等資料緩衝區以供該記憶體使用;及在根據該搜尋請求而由該記憶體執行該搜尋時,利用讀取或寫入命令存取該記憶體。
  2. 如請求項1之方法,其進一步包括:回應於用以啟動該搜尋請求之該資訊,從該記憶體接收該搜尋請求已被接收之一確認。
  3. 如請求項1之方法,其中從該記憶體接收對該搜尋請求作出回應之該搜尋已完成或該等搜尋結果已被找到之該指示包括:接收該搜尋已到達儲存於該記憶體中之該資料庫之一末尾的一指示。
  4. 如請求項1之方法,其中從該記憶體接收對該搜尋請求作出回應而執行之該搜尋已完成或該等搜尋結果已被找到之該指示包括:接收該記憶體中之該等資料緩衝區已滿之一指示。
  5. 如請求項1之方法,其中回應於該指示而從該記憶體檢索該等搜尋結果包括:將一讀取命令發出至該記憶體以引起該記憶體傳輸回該等搜尋結果。
  6. 如請求項1之方法,其進一步包括:將一讀取命令發出至該記憶體以對該記憶體指示一主機準備接收該等搜尋結果。
  7. 如請求項1之方法,其進一步包括:該記憶體接收軟體更新。
  8. 一種方法,其包括:將一第一命令傳輸至耦合於一主機的一記憶體系統,該第一命令包括搜尋儲存於該記憶體系統中之一資料庫之一搜尋請求之一指示,其中該指示包括該第一命令之一邏輯區塊位址欄位中所設定之一預定位元,該預定位元指示針對佇列搜尋準則及搜尋關鍵字之該搜尋請求,其中該搜尋請求之該等搜尋準則及該搜尋關鍵字儲存於該記憶體系統之一資料緩衝區中,且其中該第一命令中之該邏輯區塊位址欄位進一步包含指示用以執行該搜尋請求之資訊的位元,使得該第一命令中之該邏輯區塊位址欄位包含該預定位元及指示用以執行該搜尋請求之該資訊的該等位元,而非一邏輯區塊位址;在該記憶體系統因為該搜尋請求而執行一搜尋時,將讀取或寫入命令傳輸至該記憶體系統;將一第二命令傳輸至該記憶體系統,該第二命令包括對該記憶體系統之一指示,該指示說明該主機準備接受搜尋結果;將一第三命令傳輸至該記憶體系統以擷取該等搜尋結果;及自該記憶體系統接收與該搜尋相關聯之該記憶體系統之該資料緩衝區已放棄使用之一指示。
  9. 如請求項8之方法,其進一步包括:在傳輸該第二命令與傳輸該第三命令之間,從該記憶體系統接收一回應,該回應包括該記 憶體系統具有搜尋結果或該資料庫已被全部搜尋之一指示。
  10. 如請求項8之方法,其中該第一命令包括一小型電腦系統介面(SCSI)寫入命令,該第二命命令包括一SCSI讀取命令,且該第三命令包括一SCSI讀取命令。
  11. 如請求項8之方法,其中該等搜尋準則包括「等於」、「小於」、「大於」、「不等於」、「小於或等於」、「大於或等於」、「與(AND)」、「或(OR)」或「非(NOT)」之一或多者。
  12. 一種方法,其包括:使對應於記憶體中之一資料庫之複數個搜尋的複數個所接收之搜尋請求排入佇列,將該複數個所接收之搜尋請求佇列於該記憶體中之資料緩衝區中;自耦合於該記憶體之一主機接收一命令,該命令包括一邏輯區塊位址欄位,該邏輯區塊位址欄位具有指示用於執行被佇列於該等資料緩衝區中之該複數個所接收之搜尋請求之一請求的一位元,其中該命令中之該邏輯區塊位址欄位進一步包含指示用以執行該複數個所接收之搜尋請求之資訊的位元,使得該命令中之該邏輯區塊位址欄位不包含對應於該記憶體之一邏輯區塊位址;回應於該位元及用以執行該複數個所接收搜尋請求之該資訊而產生該資料庫之複數個搜尋,針對該複數個所接收之搜尋請求之各者而產生各自之搜尋;實質上平行地執行該資料庫之該複數個搜尋;自該主機接收讀取或寫入命令以啟動與該複數個搜尋並行之讀取或寫入操作;針對該複數個搜尋之各自者而自該記憶體傳輸該各自搜尋已完成或已產生搜尋結果之一指示;及 傳輸與該複數個搜尋相關聯之該等資料緩衝區已被放棄之一指示至該主機。
  13. 如請求項12之方法,其進一步包括:回應於一所接收之命令而將該等搜尋結果之一各自者傳輸至該主機。
  14. 如請求項12之方法,其中該複數個搜尋包括一各自搜尋關鍵字及各自搜尋準則。
  15. 一種方法,其包括:藉由一記憶體系統從一主機接收一第一命令,該第一命令包括搜尋該記憶體系統中之一資料庫之一搜尋請求之一指示,其中該指示包括該第一命令之一邏輯區塊位址欄位中所設定之一位元,該位元指示針對佇列搜尋準則及搜尋關鍵字之該搜尋請求,其中用於該搜尋請求之該等佇列搜尋準則及該搜尋關鍵字儲存於該記憶體系統之資料緩衝區中,且其中該第一命令中之該邏輯區塊位址欄位進一步包含指示用以執行該搜尋請求之資訊的位元,使得該第一命令中之該邏輯區塊位址欄位不包含對應於該記憶體系統之一邏輯區塊位址;藉由該記憶體系統從該主機接收一第二命令,該第二命令包括對該記憶體系統之一指示,該指示說明使該主機準備從該記憶體系統接受搜尋結果;回應於該位元及用以執行該搜尋請求之該資訊,使用該等佇列搜尋準則及該搜尋關鍵字執行該資料庫之至少一搜尋;與該至少一搜尋平行地自該主機接收讀取或寫入命令;在該等資料緩衝區中儲存該等搜尋結果;及藉由該記憶體系統從該主機接收一第三命令以自該記憶體系統擷取該等搜尋結果。
  16. 如請求項15之方法,其進一步包括:回應於該第三命令而將該 等資料緩衝區中之該資料傳輸至該主機。
  17. 如請求項15之方法,其進一步包括:解析該第一命令、該第二命令及該第三命令;使該第一命令在一搜尋請求緩衝區中排入佇列;將該第二命令及該第三命令之各自指示儲存於未處理請求緩衝區中;將搜尋結果之一指示儲存於一回應資訊緩衝區中;將該等搜尋結果儲存於一回應緩衝區中;回應於該第二命令之該指示及該等搜尋結果之該指示而將一資訊回應傳輸至該主機;及回應於該第三命令之該指示及該等搜尋結果之該指示而從該回應緩衝區傳輸該等搜尋結果。
  18. 如請求項17之方法,其進一步包括:在從該回應緩衝區傳輸該等搜尋結果之後,將一指示儲存於一回應緩衝區自由表中。
  19. 如請求項15之方法,其進一步包括:該記憶體系統建立一資料結構以儲存該等搜尋結果。
  20. 如請求項15之方法,其中該等搜尋結果含有來自一第一資料結構之資料且進一步含有回應於該第一資料結構之來自一第二資料結構之資料。
  21. 如請求項20之方法,其中建立該第二資料結構包括:基於存在於該第一資料結構及該第二資料結構兩者中之一特定欄位而建立該第二資料結構。
  22. 如請求項15之方法,其進一步包括:回應於該等搜尋結果中之其他記錄之一彙總功能而將一值指派給一記錄中之一欄位。
  23. 一種非暫時性電腦可讀儲存媒體,其儲存由一記憶體系統之處理電路執行用以執行一資料庫搜尋之操作的指令,用以執行該 資料庫搜尋之該等操作包含:將自該記憶體系統接收針對儲存於該記憶體系統中之一資料庫之搜尋的複數個搜尋請求排入佇列,將該複個搜尋請求佇列於該記憶體系統中之資料緩衝區中;自與該記憶體系統耦合之一主機接收一命令,該命令包含一邏輯區塊位址欄位,該邏輯區塊位址欄位具有指示用於執行被佇列於該等資料緩衝區中之該複數個搜尋請求之一請求的一位元,其中該命令中之該邏輯區塊位址欄位進一步包含指示用以執行該複數個搜尋請求之資訊的位元,使得該命令中之該邏輯區塊位址欄位不包含對應於該記憶體之一邏輯區塊位址;回應於該位元及用以執行該複數個搜尋請求項之該資訊而產生複數個搜尋,針對該複數個搜尋請求之各者而產生一各自搜尋;實質上平行地執行該複數個搜尋,該複數個搜尋與藉由自該主機所接收之讀取或寫入命令啟動之讀取或寫入操作平行執行;及針對各自搜尋自該記憶體系統傳輸該各自搜尋已完全搜尋該資料庫或已產生搜尋結果之一指示。
  24. 如請求項23之非暫時性電腦可讀儲存媒體,其中執行該搜尋之該等操作回應於指示一主機準備接收該等搜尋結果之一命令之接收而進一步傳輸針對各自搜尋之該指示。
  25. 如請求項24之非暫時性電腦可讀儲存媒體,其中執行該搜尋之該等操作回應於指示該等搜尋結果之一讀取之一命令而進一步傳輸該等搜尋結果。
  26. 如請求項25之非暫時性電腦可讀儲存媒體,其中執行該搜尋之該等操作將該等搜尋結果進一步儲存於一記憶體系統中之一緩 衝區中,直至接收指示該等搜尋結果之該讀取之該命令。
  27. 一種記憶體系統,其包括:一記憶體,其經組態以儲存一資料庫;及一控制器,其耦合至該記憶體,該控制器經組態以控制:接收一搜尋請求,並將對應於該資料庫之一搜尋的該搜尋請求佇列於該記憶體中之資料緩衝區中,回應於該搜尋請求及一所接收命令而產生該資料庫之該搜尋,該所接收命令包括一邏輯區塊位址欄位,該邏輯區塊位址欄位具有指示用於執行被佇列之該搜尋請求之一請求的一位元,其中該所接收命令中之該邏輯區塊位址欄位進一步包含指示用以執行該搜尋請求之資訊的位元,使得該所接收命令中之該邏輯區塊位址欄位不包含對應於該記憶體之一邏輯區塊位址,回應於該位元及該所佇列之搜尋請求,實質上平行地執行該資料庫之該搜尋、其他搜尋請求及其他記憶體操作,針對各搜尋而傳輸指示該各自搜尋已完成或已產生搜尋結果之一各自指示,及傳輸與該搜尋相關聯之該等資料緩衝區已被放棄之一指示。
  28. 如請求項27之記憶體系統,其中該控制器進一步經組態以控制:回應於從請求該等搜尋結果之一主機接收一命令而將包括該等搜尋結果之資料緩衝區傳輸至該主機;及在傳輸該等搜尋結果之後,設定該等資料緩衝區被清空之一指示。
  29. 如請求項27之記憶體系統,其中該資料庫包括一非結構化資料 集。
  30. 如請求項27之記憶體系統,其中該資料庫包括一結構化資料集。
  31. 如請求項27之記憶體系統,其中該記憶體系統包括一固態磁碟機且該記憶體包括非揮發性記憶體。
  32. 如請求項27之記憶體系統,其中該資料庫包括儲存於複數個記憶體系統中之一資料集,且該控制器進一步經組態以橫跨該複數個記憶體系統而控制該資料庫之該搜尋之執行。
  33. 如請求項27之記憶體系統,其中該控制器進一步經組態以將錯誤校正冗餘新增至該等搜尋結果。
  34. 如請求項27之記憶體系統,其中該控制器進一步經組態以控制搜尋結果之重複。
  35. 如請求項27之記憶體系統,其中該控制器進一步經組態以在該等搜尋結果之一或多個記錄之一欄位中建立一索引。
  36. 如請求項27之記憶體系統,其中該控制器進一步經組態以快取該等搜尋結果。
  37. 如請求項27之記憶體系統,其中該控制器進一步經組態以:接收指示該等搜尋結果已被接收之一命令;及回應於指示該等搜尋結果已被接收之該命令而清除與該等搜尋結果相關聯之記憶體。
  38. 如請求項27之記憶體系統,其中該控制器進一步經組態以對與該等搜尋結果相關聯之記憶體位置解除分配。
  39. 如請求項27之記憶體系統,其中該控制器進一步經組態以儲存與一資料結構格式有關之資訊。
  40. 如請求項39之記憶體系統,其中該資訊包括欄位描述、資料庫綱目、二元樹資訊或圖形結構。
  41. 如請求項27之記憶體系統,其中該控制器進一步經組態以給資料結構之儲存分配空間。
  42. 如請求項27之記憶體系統,其中該控制器進一步經組態以執行以下之一或多者:變更該資料庫之一狀態;建立該資料庫;在該資料庫內建立一表;將一第一記錄插入該資料庫中;刪除該資料庫中之一第二記錄;刪除該資料庫中之一表;及/或刪除該資料庫。
  43. 一種系統,其包括:複數個記憶體系統,各記憶體系統包括:一記憶體,其經組態以儲存一資料庫;及一控制器,其耦合至該記憶體,該控制器組態以控制:接收一搜尋請求,並將對應於該資料庫之一搜尋的該搜尋請求佇列於該記憶體中之資料緩衝區中,回應於該搜尋請求及一所接收命令而產生該資料庫之該搜尋,該所接收命令包括一邏輯區塊位址欄位,該邏輯區塊位址欄位具有指示用於執行被佇列之該搜尋請求之一請求的一位元,其中該所接收命令中之該邏輯區塊位址欄位進一步包含指示用以執行該搜尋請求之資訊的位元,使得該所接收命令中之該邏輯區塊位址欄位不包含對應於該記憶體之一邏輯區塊位址,回應於該位元及該所佇列之搜尋請求,實質上平行地執行該資料庫之該搜尋、其他搜尋請求及其他記憶體操作,針對各搜尋而傳輸指示該各自搜尋已完成或已產生搜尋結果之一各自指示,及傳輸與該搜尋相關聯之該等資料緩衝區已被放棄之一指示; 其中該複數個記憶體系統耦合在一起,使得一第一記憶體系統係至一第二記憶體系統之一用戶端,使得該搜尋請求通過該第一記憶體系統及該第二記憶體系統兩者而執行。
TW103126970A 2013-08-13 2014-08-06 用於自主記憶體搜尋之方法及系統 TWI610187B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/965,739 US9779138B2 (en) 2013-08-13 2013-08-13 Methods and systems for autonomous memory searching
US13/965,739 2013-08-13

Publications (2)

Publication Number Publication Date
TW201518968A TW201518968A (zh) 2015-05-16
TWI610187B true TWI610187B (zh) 2018-01-01

Family

ID=52467568

Family Applications (2)

Application Number Title Priority Date Filing Date
TW106141846A TWI664541B (zh) 2013-08-13 2014-08-06 用於自主記憶體搜尋之方法及系統
TW103126970A TWI610187B (zh) 2013-08-13 2014-08-06 用於自主記憶體搜尋之方法及系統

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW106141846A TWI664541B (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) TWI664541B (zh)
WO (1) WO2015023625A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (15)

* Cited by examiner, † Cited by third party
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
US11182284B2 (en) 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
KR20160083926A (ko) 2013-11-07 2016-07-12 넷리스트 인코포레이티드 하이브리드 메모리 모듈, 및 그를 동작시키는 시스템 및 방법
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 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
TWI664527B (zh) * 2018-03-20 2019-07-01 慧榮科技股份有限公司 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020108017A1 (en) * 2001-02-05 2002-08-08 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US20120203761A1 (en) * 2011-02-08 2012-08-09 International Business Machines Corporation Pattern matching accelerator

Family Cites Families (44)

* Cited by examiner, † Cited by third party
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
EP0657048B1 (de) 1993-06-30 1999-08-25 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
KR20030007447A (ko) 2000-03-03 2003-01-23 테너 네트워크스, 인크. 내부 프로세서 메모리 공간을 이용한 고속 데이터 처리
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
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
US10803066B2 (en) 2010-06-29 2020-10-13 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators
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 データ処理システム、データ処理装置、及びデータ処理方法
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020108017A1 (en) * 2001-02-05 2002-08-08 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US20120203761A1 (en) * 2011-02-08 2012-08-09 International Business Machines Corporation Pattern matching accelerator

Cited By (2)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
TW201518968A (zh) 2015-05-16
EP3033701B1 (en) 2020-05-27
CN105612518A (zh) 2016-05-25
EP3033701A1 (en) 2016-06-22
TWI664541B (zh) 2019-07-01
US20150052114A1 (en) 2015-02-19
EP3033701A4 (en) 2017-04-05
WO2015023625A1 (en) 2015-02-19
TW201810088A (zh) 2018-03-16
US9779138B2 (en) 2017-10-03
KR101868850B1 (ko) 2018-06-19
KR101927677B1 (ko) 2018-12-10
KR20160042122A (ko) 2016-04-18
US20170351737A1 (en) 2017-12-07
KR20180067729A (ko) 2018-06-20
JP6211196B2 (ja) 2017-10-11
JP2016536694A (ja) 2016-11-24
CN111221848A (zh) 2020-06-02
CN105612518B (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
TWI610187B (zh) 用於自主記憶體搜尋之方法及系統
US9846642B2 (en) Efficient key collision handling
US10402096B2 (en) Unaligned IO cache for inline compression optimization
JP2016536694A5 (zh)
WO2015166540A1 (ja) ストレージ装置とそのデータ処理方法及びストレージシステム
US20170124077A1 (en) Flash module provided with database operation unit, and storage device
EP3206128A1 (en) Data storage method, data storage apparatus, and storage device
WO2015145647A1 (ja) ストレージ装置とデータ処理方法及びストレージシステム
WO2017025039A1 (zh) 一种面向闪存存储的数据访问方法及其装置
JP6445049B2 (ja) ログの管理方法及び計算機システム
US9513829B1 (en) Transaction logging using round-robin block allocation and I/O size based partitions
US10921987B1 (en) Deduplication of large block aggregates using representative block digests
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
WO2015156000A1 (ja) 計算機システム、データの検査方法及び計算機
WO2015118865A1 (ja) 情報処理装置、情報処理システム及びデータアクセス方法
US9984112B1 (en) Dynamically adjustable transaction log
WO2016206070A1 (zh) 一种文件更新方法及存储设备
EP3995968B1 (en) A storage server, a method of operating the same storage server and a data center including the same storage server
CN110019092B (zh) 数据存储的方法、控制器和系统
JPWO2015141219A1 (ja) ストレージシステム、制御装置、データアクセス方法およびプログラム
US20240168877A1 (en) Solving submission queue entry overflow with an additional out-of-order submission queue entry
WO2018083751A1 (ja) インテリジェント・ストレージ・サブシステム