JP6563642B2 - 内部ハードウェアフィルターを含むデータ保存装置とその作動方法 - Google Patents

内部ハードウェアフィルターを含むデータ保存装置とその作動方法 Download PDF

Info

Publication number
JP6563642B2
JP6563642B2 JP2014238759A JP2014238759A JP6563642B2 JP 6563642 B2 JP6563642 B2 JP 6563642B2 JP 2014238759 A JP2014238759 A JP 2014238759A JP 2014238759 A JP2014238759 A JP 2014238759A JP 6563642 B2 JP6563642 B2 JP 6563642B2
Authority
JP
Japan
Prior art keywords
data
storage device
memory
filtering
read
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2014238759A
Other languages
English (en)
Other versions
JP2015106413A (ja
Inventor
廣 勳 金
廣 勳 金
萬 根 徐
萬 根 徐
相 圭 鄭
相 圭 鄭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2015106413A publication Critical patent/JP2015106413A/ja
Application granted granted Critical
Publication of JP6563642B2 publication Critical patent/JP6563642B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

本発明の実施形態は、ビッグデータ(big data)フィルタリング方法に係り、より詳しくは、内蔵されたハードウェアフィルター(embedded hardware filter)を用いて、前記ビッグデータから所望のデータをフィルタリングできるデータ保存装置及びその作動方法に関する。
一般的なサーバとデータベースとを含むデータサーバシステムにおいて、ビッグデータは、関係型データベース(relational databases)やNoSQLデータベースに保存される。関係型データベースまたはNoSQLデータベースに保存されたビッグデータのうちの所望のデータは、SQL(Structured Query Language)または固有のクエリー(query)言語を用いて抽出される。
ビッグデータは、データベースからサーバのメインメモリに伝送され、サーバのプロセッサは、メインメモリに保存されたビッグデータから所望のデータを抽出する。しかし、サーバのメインメモリに保存されたビッグデータのうちの一部のみがサーバのプロセッサによって抽出されるので、データトラフィックの観点から見る時、サーバのプロセッサを用いて、ビッグデータのうちの所望のデータを抽出する方法は、効率性が低い。また、データベースは、ビッグデータをサーバに伝送しければならないので、サーバとデータベースとの間のデータトラフィックは減少しない。
本発明が解決しようとする技術的な課題は、補助記憶装置として使われるデータベースからメインメモリに伝送されるデータトラフィック(data traffic)を減少させるために、前記補助記憶装置に機能的に隣接して内蔵されたハードウェアフィルターを含むデータ保存装置、その作動方法、及び該装置を含むシステムを提供することにある。
本発明の実施形態によるホストを含むデータ処理システムに使われるデータ保存装置において、前記データ保存装置は、ビッグデータを保存するデータベースとして使われる第2メモリに保存された前記ビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、前記データ保存装置内の前記第2メモリに機能的に隣接して配され、前記リード命令から派生した第1リード命令に応答して、前記第2メモリから第1リードデータを受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第1リードデータをフィルタリングし、第1フィルタリングされたデータを生成する内部ハードウェアフィルターと、前記内部ハードウェアフィルターによって生成された前記第1フィルタリングされたデータを前記データ保存装置内の前記第2メモリから分離された第1メモリに保存し、前記リード命令に応答して、前記第1メモリに保存された前記第1フィルタリングされたデータを前記ホストに伝送するメモリコントローラと、を含む。
前記ホストコントローラは、前記フィルタリング命令に応答して、前記フィルタリング条件データを生成する。前記フィルタリング条件データは、SQLによって定義されたデータ構造を有するデータファイルとして表現される。前記ホストコントローラは、前記リード命令から前記第1リード命令を生成する。
前記第2メモリは、ヘッダ、行(row)方向に配列された複数の行数、及び複数の行オフセット(row offsets)の個数を含むデータベースレイアウト(database layout)を用いて、前記第1リードデータを保存し、前記複数の行オフセットのそれぞれは、前記複数の行のそれぞれに関連する。
前記フィルタリング命令は、クエリーを含み、前記データ保存装置は、前記クエリーに応答して、前記フィルタリング条件データを生成し、次いで、前記フィルタリング条件データを前記内部ハードウェアフィルターにプログラムするCPU(Central Processing Unit)をさらに含む。
前記クエリーは、SQLと固有(unique)クエリー言語のうちの何れか1つとして表現される。前記フィルタリング命令と前記リード命令は、前記ホストによって提供された1つの命令に結合される。
前記内部ハードウェアフィルターは、前記第1リードデータを受信し、バッファリングするデータバッファと、前記フィルタリング条件データに含まれた抽出条件データを用いて、前記第1リードデータから第1抽出データと第2抽出データとを抽出するデータ抽出器と、前記フィルタリング条件データに含まれたマッチングキーデータと前記第1抽出データとを比較し、前記マッチングキーデータと前記第1抽出データとの比較の結果によって、前記第2抽出データを前記第1フィルタリングされたデータとして出力するか否かを決定するデータ比較器と、を含む。
前記データ抽出器は、前記抽出条件データと前記第1リードデータのメタデータ(metadata)とに基づいて、前記第1リードデータの行に含まれた複数列(columns)をパージング(parsing、分類・解析)するためのパージングデータを生成するパージングデータ生成回路と、前記パージングデータに基づいて、前記第1リードデータの前記行から前記第1抽出データと前記第2抽出データとを抽出する抽出回路と、を含む。
前記データ比較器は、前記マッチングキーデータを保存するレジスタと、前記レジスタに保存された前記マッチングキーデータと前記第1抽出データとを比較し、マッチング(positive matching)比較信号またはノンマッチング(negative non−matching)比較信号を生成する比較器と、前記マッチング比較信号、ノンマッチング比較信号に応答して、前記第2抽出データを出力するか否かを決定する出力制御回路と、を含む。
本発明の他の実施形態によるホストを含むデータ処理システムに使われるデータ保存装置において、前記データ保存装置は、第1の二次メモリ(first secondary memory)と第2の二次メモリ(second secondary memory)とに保存されたビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、前記データ保存装置内の前記第1の二次メモリに機能的に隣接して配され、前記リード命令から派生した第1リード命令に応答して、前記第1の二次メモリからリードデータの第1部分(first portion)を受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第1部分をフィルタリングし、
フィルタリングされたデータの第1部分を生成する第1内部ハードウェアフィルターと、前記データ保存装置内の前記第2の二次メモリに機能的に隣接して配され、前記第1リード命令に応答して、前記第2の二次メモリからリードデータの第2部分(second portion)を受信し、前記フィルタリング条件データによって、前記第2部分をフィルタリングし、フィルタリングされたデータの第2部分を生成する第2内部ハードウェアフィルターと、前記第1部分と前記第2部分とを前記データ保存装置内の前記第1の二次メモリと前記第2の二次メモリとから分離された第1メモリに保存し、前記リード命令に応答して、前記第1メモリに保存された前記第1部分と前記第2部分とを前記ホストに伝送するメモリコントローラと、を含み、前記第1の二次メモリと前記第2の二次メモリは、前記ビッグデータを保存するデータベースとして選択的に提供される。
前記データ保存装置は、前記フィルタリング命令に基づいて制御シーケンスを生成する第1CPUと、前記制御シーケンスに基づいて前記フィルタリング条件データを生成する第2CPUと、をさらに含み、前記制御シーケンスは、前記第1の二次メモリからリードされるテーブルについての第1情報、前記テーブルに含まれた複数列のうちから抽出される複数列についての第2情報、及び前記テーブルから抽出される列値についての第3情報を含む。
前記データ保存装置は、ソリッドステートドライブ(Solid State Drive;SSD)を含み、前記第1の二次メモリは、フラッシュメモリであり、前記第1メモリは、DRAMであり得る。
前記第1内部ハードウェアフィルターは、前記第1部分に関連したフラグ(flag)を生成し、前記フラグは、前記第1部分が前記フィルタリング条件データによってフィルタリングされたデータであるか否かを指示する。
本発明の実施形態によるホストを含むデータ処理システムに使われるデータ保存装置の作動方法において、前記データ保存装置は、第2メモリ、第1メモリ、及び前記第2メモリと機能的に隣接して配された内部ハードウェアフィルターを含み、前記データ保存装置の作動方法は、前記内部ハードウェアフィルターが、前記第2メモリから出力されたリードデータを受信する段階と、前記内部ハードウェアフィルターに保存されたフィルタリング条件データを使って、前記リードデータをフィルタリングし、フィルタリングされたデータを生成する段階と、前記フィルタリングされたデータを前記第1メモリに保存する段階と、前記第1メモリに保存された前記フィルタリングされたデータを前記ホストに伝送する段階と、を含む。
前記データ保存装置の作動方法は、前記データ保存装置が、前記ホストから出力されたクエリーを受信する段階と、前記クエリーに応答して、前記内部ハードウェアフィルターに前記フィルタリング条件データをプログラムする段階と、をさらに含む。
前記データ保存装置の作動方法は、前記ホストから指示データとクエリーとを受信する段階と、前記指示データと前記クエリーとに応答して、前記フィルタリング条件データを前記内部ハードウェアフィルターにプログラムする段階と、をさらに含み、前記指示データは、前記リードデータが前記第2メモリにデータベースレイアウトにより保存される時、前記データベースレイアウトを指示する。
前記データベースレイアウトは、ヘッダ、行方向に配列された複数の行数、及び複数の行オフセットの個数を含み、前記複数の行オフセットのそれぞれは、前記複数の行のそれぞれに関連する。前記クエリーは、SQLと固有クエリー言語のうちの何れか1つとして表現される。
本発明の実施形態による補助記憶装置、内部ハードウェアフィルター、及び主記憶装置を内蔵するデータ保存装置は、前記補助記憶装置から前記主記憶装置に伝送されるデータトラフィックを最小化できる。
前記データ保存装置に内蔵された前記内部ハードウェアフィルターは、前記補助記憶装置に機能的に隣接してビッグデータをフィルタリングできるので、前記ビッグデータのトラフィックを減少できる。前記データ保存装置は、前記データ保存装置内部のデータトラフィックを減少できる。
前記データ保存装置は、前記内部ハードウェアフィルターを用いてビッグデータをフィルタリングし、フィルタリングされたデータをホスト(または、サーバ)に伝送できるので、前記データ保存装置と前記ホストとの間のデータトラフィックを減少できる。ホストは、前記データ保存装置によってフィルタリングされたデータを処理できるので、前記ホストのビッグデータ処理演算の負担が減少する。
本発明の一実施形態によるデータ処理システムのブロック図である。 図1のデータ処理システムにおいて使われるSQLの実施形態を示す。 データベースの種類を説明する実施形態を示す。 データベースの種類を説明する実施形態を示す。 図1に示した第1内部ハードウェアフィルターのブロック図である。 図5に示した比較器のブロック図である。 図1に示したデータ処理システムの作動を説明する一実施形態を示す。 図1に示したデータ処理システムの作動を説明する他の実施形態を示す。 本発明の他の実施形態によるデータ処理システムのブロック図である。 図9に示したデータ処理システムの作動を説明する一実施形態を示す。 図9に示したデータ処理システムの作動を説明する他の実施形態を示す。 本発明のさらに他の実施形態によるデータ処理システムのブロック図である。 図12に示したデータ処理システムの作動を説明する実施形態を示す。 本発明のさらに他の実施形態によるデータ処理システムのブロック図である。 図14に示したデータ処理システムの作動を説明する一実施形態を示す。 図14に示したデータ処理システムの作動を説明する他の実施形態を示す。 本発明の実施形態によるデータ処理システムの作動を説明するフローチャートである。 本発明の実施形態によるデータサーバシステムのブロック図である。
以下、添付した図面を参照して、本発明を詳しく説明する。
図1は、本発明の一実施形態によるデータ処理システムのブロック図である。図1を参照すれば、データ処理システム100Aは、ホスト200とデータ保存装置300Aとを含む。データ処理システム100Aは、データベース管理システム(DataBase Management System;DBMS)または関係型データベース管理システム(Relational DBMS;RDBMS)を意味する。前記DBMSは、列指向(column−oriented)DBMSまたは行指向(row−oriented)DBMSを含む。よく知られたDBMSは、MySQL、PostgreSQL、SQLite、Microsoft SQL Server、Microsoft Access、Oracle、SAP、dBASE、FoxPro、IBM DB2及びFilemakerProを含む。
ホスト200は、データ保存装置300Aの作動、例えば、ライト作動、リード作動、またはフィルタリング作動を制御する。データ保存装置300Aは、ホスト200から受信した多様な命令に応答して、ライト作動、リード作動、及び/またはフィルタリング作動を制御または実行する。例えば、ホスト200とデータ保存装置300Aは、SATA(Serial Advance Technology Attachment)、SAS(Serial Attached SCSI)またはPCIe(Peripheral Component Interconnect Express)を通じて通信する。
データ保存装置300Aは、バス301、第1補助記憶装置(auxiliary memory or secondary memory)310(第2メモリ)、第1内部ハードウェアフィルター330、第1メモリコントローラ350、主記憶装置(main memory or primary memory)370(第1メモリ)、及びホストコントローラ390を含む。
データ保存装置300Aは、一体型(all−in−one)データ保存装置として具現可能である。例えば、データ保存装置300Aは、ソリッドステートドライブ(Solid State Drive or Solid State Disk;SSD)、エンベデッドSSD(eSSD)またはハードディスクドライブ(Hard Disk Drive;HDD)として具現可能である。したがって、データ保存装置300Aが、SSDまたはeSSDとして具現される時、データ処理システム100Aは、SSDまたはeSSDを含むデータ処理システムとして具現可能である。
第1補助記憶装置310は、第1リード命令RCMD1に応答して、第1リードデータRDATA1を第1内部ハードウェアフィルター330に出力する。第1リードデータRDATA1は、ビッグデータであり得る。第1補助記憶装置310は、データベースの機能を行う。
第1補助記憶装置310は、複数の不揮発性(non−volatile)メモリセルを含む。前記複数の不揮発性メモリセルは、EEPROM(Electrically Erasable Programmable Read−Only Memory)、フラッシュ(flash)メモリ、MRAM(Magnetic RAM)、スピン伝達トルクMRAM(Spin−Transfer Torque MRAM)、Conductive Bridging RAM(CBRAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase Change RAM)、抵抗メモリ(Resistive RAM;RRAM(登録商標))、ナノチューブRRAM(登録商標)(Nanotube RRAM(登録商標))、ポリマーRAM(Polymer RAM;PoRAM)、ナノ浮遊ゲートメモリ(Nano Floating Gate Memory;NFGM)、ホログラフィックメモリ(holographic memory)、分子電子メモリ素子(molecular electronics memory device)、または絶縁抵抗変化メモリ(insulator resistance change memory)として具現可能である。フラッシュメモリは、NANDフラッシュメモリまたはNORフラッシュメモリとして具現可能である。例えば、第1補助記憶装置310は、NANDフラッシュアレイまたはNORフラッシュアレイとして具現可能である。
第1内部ハードウェアフィルター330は、第1リードデータRDATA1をフィルタリング条件データFCDによってフィルタリングし、第1フィルタリングされたデータ(filtered data)FDATA1をバス301に出力する。
第1内部ハードウェアフィルター330が、データ保存装置300Aの内部に具現されることによって、第1補助記憶装置310から主記憶装置370に伝送される第1フィルタリングされたデータFDATA1のトラフィック(traffic)が最小化される。第1内部ハードウェアフィルター330が、第1補助記憶装置310に機能的に隣接して、ビッグデータ、すなわち、第1リードデータRDATA1をフィルタリング(filtering)またはスキャニング(scanning)できるので、第1補助記憶装置310から主記憶装置370に伝送される前記ビッグデータのトラフィックが減少する。
データ保存装置300AがSSDとして具現され、第1補助記憶装置310がNANDフラッシュアレイとして具現される時、第1内部ハードウェアフィルター330が、前記NANDフラッシュアレイに機能的に隣接して具現されることによって、前記SSD内部のデータトラフィックは減少する。ここで、機能的に隣接(functionally adjacent)することは、データ保存装置300Aの第1構成要素(例えば、第1内部ハードウェアフィルター330)が、第2構成要素(例えば、第1補助記憶装置310)からデータを受信し、該受信されたデータを他のデータ処理装置によって処理される前に処理することを意味する。
フィルタリング条件データFCDは、ホスト200から出力されたフィルタリング命令FCMDに基づいて生成される。フィルタリング命令FCMDは、データベースから受信したビッグデータから派生した所望のデータの種類(type)、フォーム(form)、及び/または質(quality)を支援するか、または要請する少なくとも1つの命令及び/または少なくとも1つのクエリー(query)を含む。実施形態によって、フィルタリング命令FCMDは、ベンダー命令(vendor command)と定義される。
第1メモリコントローラ350は、第1内部ハードウェアフィルター330から出力された第1フィルタリングされたデータFDATA1をバス301を通じて受信し、該受信した第1フィルタリングされたデータFDATA1を主記憶装置370に保存し、主記憶装置370に保存された第1フィルタリングされたデータFDATA1をリードし、該リードした第1フィルタリングされたデータFDATA1をバス301を通じてホストコントローラ390に伝送する。
主記憶装置370は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、T−RAM(Thyristor RAM)、Z−RAM(Zero Capacitor RAM)、またはTTRAM(Twin Transistor RAM)として具現可能である。
ホスト200とデータ保存装置300Aは、ホストコントローラ390を通じてデータ及び/または命令を送受信する。ホストコントローラ390は、第1フィルタリングされたデータFDATA1を信号ライン201を通じてホスト200に伝送する。例えば、信号ライン201は、電気的信号ラインまたは光学的(optical)信号ラインとして具現可能である。信号ライン201は、1つまたはそれ以上の信号ラインを含む。
図2は、図1のデータ処理システムで使われるSQLの実施形態を示す。SQLは、RDBMSに保存されたデータを管理するために設計された特別な目的(special−purpose)のプログラミング言語である。
図2に示したSQLは、本発明の実施形態によるデータ処理システム300Aの作動を説明する一実施形態を示す。複数列名PID、NAME、及びCITYは、列リスト(column list)を意味し、PERSONSは、テーブル(table)を意味し、CITY=‘CITY1’は、列演算子値(column operator value)を意味する。
図3と図4は、データベースの種類を説明する実施形態を示す。図3と図4とを参照すれば、第1データベースに保存される第1データレイアウトDL1と第2データベースに保存される第2データレイアウトDL2は、互いに異なる。
例えば、ヘッダHEADER、複数の行ROW1乃至ROWN(Nは、自然数)の個数、及び複数の行オフセットOFF1乃至OFFNの個数と位置は、各データレイアウトDL1、DL2によって互いに異なる。データベースによって支援されるデータの種類は、第1データレイアウトDL1と第2データレイアウトDL2のそれぞれによって互いに異ならせて定義される。したがって、ホスト200は、データ保存装置300Aに保存されたデータに対するデータクエリーと共に互いに異なるデータベースの種類のそれぞれを区別できる少なくとも1つのデータ指示識別子をデータ保存装置300Aに伝送するか、データ保存装置300Aから受信する。また、行の増加方向と行オフセット(row offset)の増加方向は、各データレイアウトDL1、DL2によって互いに異なり、データベースから支援されるデータタイプも、各データレイアウトDL1、DL2によって異なる。したがって、ホスト200は、クエリーと共にデータベースの種類を区別するための指示データをデータ保存装置300Aに伝送する。
図5は、図1に示した第1内部ハードウェアフィルターのブロック図である。図1乃至図5を参照すれば、第1内部ハードウェアフィルター330は、データバッファ331、データ抽出器333、及びデータ比較器335を含む。
データバッファ331は、第1補助記憶装置310から出力された第1リードデータRDATA1をバッファリングする。例えば、データバッファ331は、ページデータ(page data)をバッファリングする。データバッファ331は、SRAMとして具現可能である。
データバッファ331は、データ抽出器333から出力された対応するアドレスに応答して、第1リードデータRDATA1に含まれたメタデータMDATAとデータDATAのそれぞれをデータ抽出器333に伝送する。前記対応するアドレスは、抽出条件データECDに関連する。すなわち、データ抽出器333は、第1リードデータRDATA1に含まれたメタデータMDATAとデータDATAのそれぞれを読み出す。例えば、メタデータMDATAは、ヘッダ、オフセット、及び/またはポインターを含む。
関係型データベースにおいて、データDATAは、行、レコード(record)またはタプル(tuple)と呼ばれる。前記関係型データベースにおいて、列は、フィールド(field)または属性(attribute)と呼ばれる。
データ抽出器333は、フィルタリング条件データFCDに含まれた抽出条件データECDを用いて、第1リードデータRDATA1から第1抽出データ(または、第1フィルタリングデータ)FD1と第2抽出データ(または、第2フィルタリングデータ)FD2とを抽出する。
データ抽出器333は、パージングデータ生成回路333−1と抽出回路333−3とを含む。パージングデータ生成回路333−1は、抽出条件データECDとメタデータMDATAとに基づいて、第1リードデータRDATA1のデータ、例えば、行に含まれた複数列をパージングするためのパージングデータPDATAを生成し、パージングデータPDATAを抽出回路333−3に伝送する。パージングデータ生成回路333−1は、抽出条件データECDを保存する機能を行う。
抽出条件データECDは、列を区分するためのデータとデータベースの種類(または、SQLの種類または固有なクエリー言語の種類)を区分するためのデータとを含む区分データTIFと、比較される対象となる列を抽出するための列抽出データQIFと、を含む。
抽出回路333−3は、パージングデータPDATAに基づいて、第1リードデータRDATA1の各行から第1抽出データFD1と第2抽出データFD2とを抽出する。データ比較器335は、フィルタリング条件データFCDに含まれたマッチングキーデータMKDと第1抽出データFD1とを互いに比較し、該比較の結果によって、第2抽出データFD2を第1フィルタリングされたデータFDATA1として出力するか否かを決定する。
データ比較器335は、レジスタ335−1、比較器335−3、及び出力制御回路335−5を含む。レジスタ335−1は、マッチングキーデータMKDを保存する。例えば、レジスタ335−1は、データバッファの機能を行えるSRAMとして具現可能である。
マッチングキーデータMKDは、データの種類(data type)を指示する種類指示データD_TYPE、演算子の種類を指示する演算子指示データC_TYPE、及び実際に抽出しようとするデータ(例えば、列値(column value))を指示する抽出指示データR_DATAを含む。演算子の種類は、同じ(equal(=))、同じではない(not equal(<>or !=))、より大きい(greater than(>))、より小さい(less than(<))、より大きいか同じ(greater than or equal(<=))、またはより小さいか同じ(less than or equal(<=))を含む。
比較器335−3は、レジスタ335−1から出力された基準データS_DATAと第1抽出データFD1とを互いに比較し、該比較の結果によって、比較信号CRSを生成する。基準データS_DATAは、マッチングキーデータMKDの一部または全部に基づいて生成される。
出力制御回路335−5は、比較信号CRSに応答して、第2抽出データFD2を出力するか否かを決定する。例えば、演算子指示データC_DATAが同じ(=)を表わすデータであり、基準データS_DATAに含まれた抽出指示データR_DATAと第1抽出データFD1とが同一である時、出力制御回路335−5は、第2抽出データFD2を第1フィルタリングされたデータFDATA1として出力する。それ以外の場合、出力制御回路335−5は、第2抽出データFD2を出力しない。
図6は、図5に示した比較器のブロック図を示す。図5と図6とを参照すれば、比較器335−3は、複数のデータタイプ比較器336−1乃至336−5とロジック回路336−6とを含む。
基準データS_DATAは、複数のデータタイプ比較器336−1乃至336−5のそれぞれを設定するためのデータである。基準データS_DATAは、種類指示データD_TYPE、演算子指示データC_TYPE及び/または抽出指示データR_DATAを含む。種類指示データD_TYPEは、データタイプのサイズ(size)に対するデータを含む。各データ種類比較器336−1乃至336−5は、抽出指示データR_DATAと第1抽出データFD1とを互いに比較し、該比較の結果によって、各比較信号CP1乃至CP5を生成する。
データの種類は、多様なデータの種類のそれぞれを識別するための分類である。例えば、前記データの種類は、整数(integers)、ブーリアン(Booleans)、文字(characters)、浮動少数点数(floating−point numbers)、及び文字数字列(alphanumeric strings)などを含む。
第1データ種類比較器336−1は、複数の整数を比較し、前記複数の整数は、抽出指示データR_DATAと第1抽出データFD1とを意味する。第2データ種類比較器336−2は、複数のブーリアンを比較し、前記複数のブーリアンは、抽出指示データR_DATAと第1抽出データFD1とを意味する。
第3データ種類比較器336−3は、複数の文字を比較し、前記複数の文字は、抽出指示データR_DATAと第1抽出データFD1とを意味する。第4データ種類比較器336−4は、複数の浮動少数点数を比較し、前記複数の浮動少数点数は、抽出指示データR_DATAと第1抽出データFD1とを意味する。第5データ種類比較器336−5は、複数の文字数字列を比較し、前記複数の文字数字列は、抽出指示データR_DATAと第1抽出データFD1とを意味する。
ロジック回路336−6は、各比較信号CP1乃至CP5を論理演算し、演算の結果によって、比較信号CRSを生成する。例えば、ロジック回路336−6は、XORゲートとして具現可能である。図6では、説明の便宜上、5つの比較器336−1乃至336−5を示すが、これは例示的なものに過ぎない。したがって、複数の比較器の個数は、比較器335−3において使われるデータの種類によって多様に変更可能である。
図7は、図1に示したデータ処理システムの作動を説明する一実施形態を示す。図2に示したSQLによって、第1フィルタリングされたデータFDATA1を出力するデータ保存装置300Aの作動は、図1乃至図7を参照して説明する。
図2に示したSQLによって、種類指示データD_TYPEは、複数の文字を表わし、演算子指示データC_TYPEは、同じ(=)を表わし、抽出指示データR_DATAは、列値CITY1を表わし、区分データTIFは、テーブルTAB1に含まれた複数列名PID、NAME、ADDRSSS、及びCITYのうちから抽出される各列名PID、NAME、及びCITYを区分するためのデータを含み、列抽出データQIFは、抽出しようとする列名CITYを表わす。この際、基準データS_DATAによって、複数の文字を比較するために、比較器335−3の第3データ種類比較器336−3が作動する。
フィルタリング条件データFCDは、図9のCPU303または図14のCPU303によって実行されるファームウェア(firmware)または応用プログラムプログラミングインターフェース(Application Programming Interface;API)によって第1内部ハードウェアフィルター330に設定またはプログラムされる。
前記ファームウェアまたは前記APIは、第1補助記憶装置310または別途の不揮発性メモリから主記憶装置370にロード(load)された後、CPU303によって実行可能である。例えば、前記ファームウェアまたは前記APIによって、フィルタリング条件データFCDの抽出条件データECDは、パージングデータ生成回路333−1にプログラムされ、フィルタリング条件データFCDのマッチングキーデータMKDは、レジスタ335−1にプログラムされる。
PERSONSという名称を有したテーブルTAB1は、第1リード命令RCMD1に基づいて第1補助記憶装置310から第1内部ハードウェアフィルター330に出力される。
第1リードデータRDATA1は、テーブルTAB1とテーブルTAB1に関連したメタデータとを含む。第1内部ハードウェアフィルター330のデータバッファ331は、複数列値PID1、NAME1、ADD1、及びCITY1を含む第1行REC1を第1補助記憶装置310から受信する。
データバッファ331は、対応するアドレスに応答して、第1行REC1に関連したメタデータMDATAをパージングデータ生成回路333−1に伝送し、第1行REC1、すなわち、データDATAを抽出回路333−3に伝送する。すなわち、パージングデータ生成回路333−1は、第1行REC1に関連したメタデータMDATAをデータバッファ331から読み出し、抽出回路333−3は、データDATAをデータバッファ331から読み出す。
パージングデータ生成回路333−1は、区分データTIFと列抽出データQIFとに基づいてパージングデータPDATAを抽出回路333−3に伝送する。例えば、パージングデータPDATAは、各列PID、NAME、及びCITYまたは各列値PID1、NAME1、及びCITYの開始位置または開始アドレスを含む。
抽出回路333−3は、パージングデータPDATAに基づいて、抽出しようとする列CITYに含まれた列値CITY1を第1抽出データFD1として比較器335−3に伝送する。また、抽出回路333−3は、パージングデータPDATAに基づいて、第1行REC1から複数列値PID1、NAME1、及びCITY1を含む第2抽出データFD2を抽出し、該抽出された第2抽出データFD2を出力制御回路335−5に出力する。
比較器335−3は、基準データS_DATAに含まれた列値CITY1と第1抽出データFD1に含まれた列値CITY1とを比較し、該比較の結果によって、一致を表わす比較信号CRSを出力する。出力制御回路335−5は、一致を表わす比較信号CRSに応答して、複数列値PID1、NAME1、及びCITY1を含む第2抽出データFD2を第1フィルタリングされたデータFDATA1としてバス301に出力する。
第1メモリコントローラ350は、複数列値PID1、NAME1、及びCITY1を含む行REC1’を主記憶装置370に保存する。引き続き、第1内部ハードウェアフィルター330のデータバッファ331は、複数列値PID2、NAME2、ADD2、及びCITY2を含む第2行REC2を第1補助記憶装置310から受信する。
データバッファ331は、対応するアドレスに応答して、第2行REC2に関連したメタデータMDATAをパージングデータ生成回路333−1に伝送し、第2行REC2、すなわち、データDATAを抽出回路333−3に伝送する。すなわち、パージングデータ生成回路333−1は、メタデータMDATAをデータバッファ331から読み出し、抽出回路333−3は、データDATAをデータバッファ331から読み出す。
パージングデータ生成回路333−1は、区分データTIFと列抽出データQIFとに基づいてパージングデータPDATAを抽出回路333−3に伝送する。例えば、パージングデータPDATAは、各列PID、NAME、及びCITYまたは各列値PID2、NAME2、及びCITY2の開始位置または開始アドレスを含む。
抽出回路333−3は、パージングデータPDATAに基づいて、抽出しようとする列CITYに含まれた列値CITY2を第1抽出データFD1として比較器335−3に伝送する。また、抽出回路333−3は、パージングデータPDATAに基づいて、第2行REC2から複数列値PID2、NAME2、及びCITY2を含む第2抽出データFD2を抽出し、該抽出された第2抽出データFD2を出力制御回路335−5に出力する。
比較器335−3は、基準データS_DATAに含まれた列値CITY1と第1抽出データFD1に含まれた列値CITY2とを比較し、該比較の結果によって、不一致を表わす比較信号CRSを出力する。出力制御回路335−5は、不一致を表わす比較信号CRSに応答して、複数列値PID2、NAME2、及びCITY2を含む第2抽出データFD2を出力しない。引き続き、第1内部ハードウェアフィルター330のデータバッファ331は、複数列値PID3、NAME3、ADD3、及びCITY1を含む第3行REC3を第1補助記憶装置310から受信する。
データバッファ331は、対応するアドレスに応答して、第3行REC3に関連したメタデータMDATAをパージングデータ生成回路333−1に伝送し、第3行REC3、すなわち、データDATAを抽出回路333−3に伝送する。すなわち、パージングデータ生成回路333−1は、メタデータMDATAをデータバッファ331から読み出し、抽出回路333−3は、データDATAをデータバッファ331から読み出す。
パージングデータ生成回路333−1は、区分データTIFと列抽出データQIFとに基づいてパージングデータPDATAを抽出回路333−3に伝送する。例えば、パージングデータPDATAは、各列PID、NAME、及びCITYまたは各列値PID3、NAME3、及びCITY1の開始位置または開始アドレスを含む。
抽出回路333−3は、パージングデータPDATAに基づいて、抽出しようとする列CITYに含まれた列値CITY1を第1抽出データFD1として比較器335−3に伝送する。また、抽出回路333−3は、パージングデータPDATAに基づいて、第3行REC3から複数列値PID3、NAME3、及びCITY1を含む第2抽出データFD2を抽出し、該抽出された第2抽出データFD2を出力制御回路335−5に出力する。
比較器335−3は、基準データS_DATAに含まれた列値CITY1と第1抽出データFD1に含まれた列値CITY1とを比較し、該比較の結果によって、一致を表わす比較信号CRSを出力する。出力制御回路335−5は、一致を表わす比較信号CRSに応答して、複数列値PID3、NAME3、及びCITY1を含む第2抽出データFD2を第1フィルタリングされたデータFDATA1としてバス301に出力する。
第1メモリコントローラ350は、複数列値PID3、NAME3、及びCITY1を含む行REC3’を主記憶装置370に保存する。すなわち、第1メモリコントローラ350は、複数列値PID3、NAME3、及びCITY1のそれぞれを複数列名PID、NAME、及びCITYのそれぞれに該当する列に保存する。引き続き、第1内部ハードウェアフィルター330のデータバッファ331は、複数列値PID4、NAME4、ADD4、及びCITY3を含む第4行REC4を第1補助記憶装置310から受信する。
データバッファ331は、対応するアドレスに応答して、第4行REC4に関連したメタデータMDATAをパージングデータ生成回路333−1に伝送し、第4行REC4、すなわち、データDATAを抽出回路333−3に伝送する。
パージングデータ生成回路333−1は、区分データTIFと列抽出データQIFとに基づいてパージングデータPDATAを抽出回路333−3に伝送する。例えば、パージングデータPDATAは、各列PID、NAME、及びCITYまたは各列値PID4、NAME4、及びCITY3の開始位置または開始アドレスを含む。
抽出回路333−3は、パージングデータPDATAに基づいて、抽出しようとする列CITYに含まれた列値CITY3を第1抽出データFD1として比較器335−3に伝送する。また、抽出回路333−3は、パージングデータPDATAに基づいて、第4行REC4から複数列値PID4、NAME4、及びCITY3を含む第2抽出データFD2を抽出し、該抽出された第2抽出データFD2を出力制御回路335−5に出力する。
比較器335−3は、基準データS_DATAに含まれた列値CITY1と第1抽出データFD1に含まれた列値CITY3とを比較し、該比較の結果によって、不一致を表わす比較信号CRSを出力する。出力制御回路335−5は、不一致を表わす比較信号CRSに応答して、複数列値PID4、NAME4、及びCITY3を含む第2抽出データFD2を出力しない。
第1メモリコントローラ350によって生成されたテーブルTAB2は、主記憶装置370に保存された後、第1メモリコントローラ350は、テーブルTAB2をリードし、該リードされたテーブルTAB2をバス301を通じてホストコントローラ390に伝送する。ホストコントローラ390は、図2のSQLによって列値CITY1を含むテーブルTAB2をホスト200に伝送する。図7に示すように、各列REC1乃至REC4は、データバッファ331に順次に保存された後、各列REC1乃至REC4は、データ抽出器333に順次に出力される。
図8は、図1に示したデータ処理システムの作動を説明する他の実施形態を示す。図8に示した固有のクエリー言語によって第1フィルタリングされたデータFDATA1を出力するデータ保存装置300Aの作動を、図1、図5、図6、及び図8を参照して説明する。固有のクエリー言語は、製造社またはエンジニアによって定義されたクエリー言語である。
図8に示した固有のクエリー言語によって、種類指示データD_TYPEは、複数の整数を表わし、演算子指示データC_TYPEは、同じ(=)を表わし、抽出指示データR_DATAは、列値(91.501.27.99)を表わし、区分データTIFは、テーブルTAB3に含まれた複数列名IP、Date、及びRequestのうちから抽出される各列名IP、Date、及びRequestを区分するためのデータを含み、列抽出データQIFは、抽出しようとする列名IPを表わす。この際、基準データS_DATAによって、複数の整数を比較するために、比較器335−3の第1データ種類比較器336−1が作動する。
フィルタリング条件データFCDは、CPU303によって実行されるファームウェアまたはAPIによって第1内部ハードウェアフィルター330にプログラムされる。例えば、フィルタリング条件データFCDの抽出条件データECDは、パージングデータ生成回路333−1にプログラムされ、フィルタリング条件データFCDのマッチングキーデータMKDは、レジスタ335−1にプログラムされる。
LOGという名称を有したテーブルTAB3は、第1リード命令RCMD1に基づいて第1補助記憶装置310から第1内部ハードウェアフィルター330に出力される。第1リード命令RCMD1は、ホスト200から出力されたリード命令RCMDに基づいて生成される。
第1リードデータRDATA1は、テーブルTAB3とテーブルTAB3に関連したメタデータとを含む。第1内部ハードウェアフィルター330のデータバッファ331は、複数列値(141.222.44.1、11/18/2013、及びGet/a.jpg)を含む第1行REC11を第1補助記憶装置310から受信する。
データバッファ331は、対応するアドレスに応答して、第1行REC11に関連したメタデータMDATAをパージングデータ生成回路333−1に伝送し、第1行REC11、すなわち、データDATAを抽出回路333−3に伝送する。
パージングデータ生成回路333−1は、区分データTIFと列抽出データQIFとに基づいてパージングデータPDATAを抽出回路333−3に伝送する。例えば、パージングデータPDATAは、各列IP、Date、及びRequestまたは各列値(141.222.44.1、11/18/2013、及びGet/a.jpg)の開始位置または開始アドレスを含む。
抽出回路333−3は、パージングデータPDATAに基づいて、抽出しようとする列IPに含まれた列値(141.222.44.1)を第1抽出データFD1として比較器335−3に伝送する。また、抽出回路333−3は、パージングデータPDATAに基づいて、第1行REC11から複数列値(141.222.44.1、11/18/2013、及びGet/a.jpg)を含む第2抽出データFD2を抽出し、該抽出した第2抽出データFD2を出力制御回路335−5に出力する。
比較器335−3は、基準データS_DATAに含まれた列値(91.501.27.99)と第1抽出データFD1に含まれた列値(141.222.44.1)とを比較し、該比較の結果によって、不一致を表わす比較信号CRSを出力する。出力制御回路335−5は、不一致を表わす比較信号CRSに応答して、複数列値(141.222.44.1、11/18/2013、及びGet/a.jpg)を含む第2抽出データFD2を出力しない。
引き続き、第1内部ハードウェアフィルター330のデータバッファ331は、複数列値(91.501.27.99、11/18/2013、及びGet/X.jpg)を含む第2行REC12を第1補助記憶装置310から受信する。
データバッファ331は、対応するアドレスに応答して、第2行REC12に関連したメタデータMDATAをパージングデータ生成回路333−1に伝送し、第2行REC12、すなわち、データDATAを抽出回路333−3に伝送する。
パージングデータ生成回路333−1は、区分データTIFと列抽出データQIFとに基づいてパージングデータPDATAを抽出回路333−3に伝送する。例えば、パージングデータPDATAは、各列IP、Date、及びRequestまたは各列値(91.501.27.99、11/18/2013、及びGet/X.jpg)の開始位置または開始アドレスを含む。
抽出回路333−3は、パージングデータPDATAに基づいて、抽出しようとする列IPに含まれた列値(91.501.27.99)を第1抽出データFD1として比較器335−3に伝送する。また、抽出回路333−3は、パージングデータPDATAに基づいて、第2行REC12から複数列値(91.501.27.99、11/18/2013、及びGet/X.jpg)を含む第2抽出データFD2を抽出し、該抽出した第2抽出データFD2を出力制御回路335−5に出力する。
比較器335−3は、基準データS_DATAに含まれた列値(91.501.27.99)と第1抽出データFD1に含まれた列値(91.501.27.99)とを比較し、該比較の結果によって、一致を表わす比較信号CRSを出力する。出力制御回路335−5は、一致を表わす比較信号CRSに応答して、複数列値(91.501.27.99、11/18/2013、及びGet/X.jpg)を含む第2抽出データFD2を第1フィルタリングされたデータFDATA1としてバス301に出力する。
第1メモリコントローラ350は、複数列値(91.501.27.99、11/18/2013、及びGet/X.jpg)を含む行を主記憶装置370に保存する。この際、第1メモリコントローラ350は、複数列値(91.501.27.99、11/18/2013、及びGet/X.jpg)のそれぞれが保存された複数列名IP、Data、及びRequestを生成し、複数列値(91.501.27.99、11/18/2013、及びGet/X.jpg)のそれぞれを複数列名IP、Data、及びRequestのそれぞれに該当する列に保存する。
複数列値(202.511.2.49、11/18/2013、及びGet/b.jpg)を含む第3行REC13に該当する第2抽出データFD2と複数列値(225.123.45.9、11/18/2013、及びGet/b.jpg)を含む第4行REC14に該当する第2抽出データFD2は、第1内部ハードウェアフィルター330によって出力されない。
図9は、本発明の他の実施形態によるデータ処理システムのブロック図である。図9を参照すれば、データ処理システム100Bは、ホスト200とデータ保存装置300Bとを含む。
ホスト200は、データ保存装置300Bの作動を制御する。CPU303と第2メモリコントローラ305とを除けば、図9のデータ保存装置300Bの構造と作動は、図1のデータ保存装置300Aの構造と作動と実質的に同一である。
ホスト200は、フィルタリング命令FCMDとリード命令RCMDとをデータ保存装置300Bに出力する。CPU303は、第2メモリコントローラ305、第1内部ハードウェアフィルター330、第1メモリコントローラ350、及びホストコントローラ390の作動を制御する。CPU303は、ホストコントローラ390とバス301とを通じてフィルタリング命令FCMDを受信し、フィルタリング命令FCMDを解釈し、該解釈の結果に基づいて、フィルタリング条件データFCDを生成し、フィルタリング条件データFCDをCPU303によって実行されるファームウェアまたはAPIを用いて第1内部ハードウェアフィルター330にプログラムする。CPU303は、ホスト200から出力されたリード命令RCMDに基づいて命令を生成し、該生成された命令を第2メモリコントローラ305に出力する。
第2メモリコントローラ305は、前記命令に応答して第1リード命令RCMD1を生成し、第1リード命令RCMD1を第1補助記憶装置310に伝送する。
第1補助記憶装置310は、第1リード命令RCMD1に応答して第1リードデータRDATA1を第1内部ハードウェアフィルター330に伝送する。第1補助記憶装置310がデータベースとして使われる時、前記データベースの種類(または、SQLの種類)を指示する指示データは、フィルタリング命令FCMDに含まれる。
実施形態によって、フィルタリング命令FCMDは、前記指示データとクエリーとを含みうる。他の実施形態によって、フィルタリング命令FCMDは、前記指示データ、クエリー、及びリード命令RCMDを含みうる。前記クエリーは、SQLまたは固有のクエリー言語である。実施形態によって、データ保存装置300Bは、別途のCPU303−1をさらに含みうる。
CPU303−1は、ホスト200から出力されたフィルタリング命令FCMDに基づいて制御シーケンスを生成する。例えば、前記制御シーケンスは、リードされるテーブルについての情報、前記テーブルに含まれた複数列のうちから抽出される複数列についての情報、及び抽出される列値についての情報を含む。前記制御シーケンスは、データベースの種類及び/またはSQLの種類をさらに含みうる。
CPU303は、前記制御シーケンスに基づいてフィルタリング条件データFCDを生成し、フィルタリング条件データFCDをCPU303によって実行されるファームウェアまたはAPIを用いて第1内部ハードウェアフィルター330に設定する。
図10は、図9に示したデータ処理システムの作動を説明する一実施形態を示す。フィルタリング命令FCMDが指示データとクエリーとを含む時のデータ処理システム100Bの作動は、図1乃至図10を参照して説明する。前記クエリーは、図2のSQLまたは図8の固有のクエリー言語である。
CPU303は、ホスト200から出力されたフィルタリング命令FCMDを受信し(ステップS110)、フィルタリング命令FCMDを解釈し、該解釈の結果によって、フィルタリング条件データFCDを生成し、フィルタリング条件データFCDを第1内部ハードウェアフィルター330に伝送する(ステップS112)。フィルタリング条件データFCDは、第1内部ハードウェアフィルター330にライトされる(ステップS114)。CPU303は、ホスト200から出力されたリード命令RCMDを受信し(ステップS116)、リード命令RCMDに基づいて命令を生成し、該生成された命令を第2メモリコントローラ305に伝送する。第2メモリコントローラ305は、前記命令に基づいて第1リード命令RCMD1を生成し、第1リード命令RCMD1を第1補助記憶装置310に伝送する(ステップS118)。
第1補助記憶装置310は、第2メモリコントローラ305から出力された第1リード命令RCMD1に基づいて第1リードデータRDATA1を第1内部ハードウェアフィルター330に伝送する(ステップS120)。上述したように、第1内部ハードウェアフィルター330は、第1リードデータRDATA1をフィルタリング条件データFCDによってフィルタリングし、第1フィルタリングされたデータFDATA1をバス301を通じて第1メモリコントローラ350に伝送し、第1メモリコントローラ350は、第1フィルタリングされたデータFDATA1を主記憶装置370にライトする(ステップS122)。
第1メモリコントローラ350は、主記憶装置370に保存された第1フィルタリングされたデータFDATA1をリードし、該リードされた第1フィルタリングされたデータFDATA1は、バス301とホストコントローラ390とを通じてホスト200に伝送される(ステップS124)。
図11は、図9に示したデータ処理システムの作動を説明する他の実施形態を示す。フィルタリング命令FCMDが指示データ、クエリー、及びリード命令RCMDを含む時のデータ処理システム100Bの作動は、図1乃至図9、及び図11を参照して説明する。前記クエリーは、図2のSQLまたは図8の固有のクエリー言語である。
CPU303は、リード命令RCMDを含むフィルタリング命令FCMDを受信し(ステップS210)、フィルタリング命令FCMDに含まれた前記指示データと前記クエリーとを解釈し、該解釈の結果によって、フィルタリング条件データFCDを生成し、フィルタリング条件データFCDを第1内部ハードウェアフィルター330に伝送する(ステップS212)。フィルタリング条件データFCDは、第1内部ハードウェアフィルター330にライトされる(ステップS214)。
CPU303が、リード命令RCMDに応答して生成された命令を第2メモリコントローラ305に伝送すれば、第2メモリコントローラ305は、前記命令に基づいて第1リード命令RCMD1を生成し、第1リード命令RCMD1を第1補助記憶装置310に伝送する(ステップS216)。
第1補助記憶装置310は、第2メモリコントローラ305から出力された第1リード命令RCMD1に基づいて第1リードデータRDATA1を第1内部ハードウェアフィルター330に伝送する(ステップS218)。上述したように、第1内部ハードウェアフィルター330は、第1リードデータRDATA1をフィルタリング条件データFCDによってフィルタリングし、第1フィルタリングされたデータFDATA1をバス301を通じて第1メモリコントローラ350に伝送し、第1メモリコントローラ350は、第1フィルタリングされたデータFDATA1を主記憶装置370にライトする(ステップS220)。
第1メモリコントローラ350は、主記憶装置370に保存された第1フィルタリングされたデータFDATA1をリードする。該リードされた第1フィルタリングされたデータFDATA1は、バス301とホストコントローラ390とを通じてホスト200に伝送される(ステップS222)。
図12は、本発明のさらに他の実施形態によるデータ処理システムのブロック図であり、図13は、図12に示したデータ処理システムの作動を説明する実施形態を示す。図12を参照すれば、データ処理システム100Cは、ホスト200とデータ保存装置300Cとを含む。
図13を参照すれば、PERSONSという1つのテーブルに保存されたデータは、2つの補助記憶装置310、310−1のそれぞれに分散されて保存される。すなわち、前記テーブルの一部に該当するテーブルTAB1は、第1補助記憶装置310に保存され、前記テーブルの残りの一部に該当するテーブルTAB11は、第2補助記憶装置310−1に保存される。各内部ハードウェアフィルターは、各チャネル(または、各補助記憶装置)ごとに存在する。
図12においては、説明の便宜上、2つの補助記憶装置310、310−1と2つの内部ハードウェアフィルター330、330−1とを示すが、本発明の実施形態によるフィルタリング方法が、これに限定されるものではない。したがって、本発明の実施形態によるフィルタリング方法は、3つ以上の補助記憶装置と3つ以上の内部ハードウェアフィルターとを含むデータ保存装置に適用可能である。
ホスト200は、データ保存装置300Cの作動を制御する。第2補助記憶装置310−1と第2内部ハードウェアフィルター330−1とを除けば、図12のデータ保存装置300Cの構造と作動は、図1のデータ保存装置300Aの構造と作動と実質的に同一である。
第1内部ハードウェアフィルター330の構造と作動は、第2内部ハードウェアフィルター330−1の構造と作動と実質的に同一である。ホスト200は、フィルタリング命令FCMDとリード命令RCMDとをデータ保存装置300Cに出力する。
フィルタリング命令FCMDに基づいて生成されたフィルタリング条件データFCDは、図14のCPU303によって実行されるファームウェアまたはAPIによって、各内部ハードウェアフィルター330、330−1に設定またはプログラムされる。
図1、図5、及び図7を参照して説明したように、第1補助記憶装置310は、第1リード命令RCMD1に応答して第1リードデータRDATA1を第1内部ハードウェアフィルター330に伝送する。
第1内部ハードウェアフィルター330は、第1リードデータRDATAをフィルタリング条件データFCDによってフィルタリングし、第1フィルタリングされたデータFDATA1をバス301に出力する。第1メモリコントローラ350は、各行REC1、REC3に相応する各行REC1’、REC3’を主記憶装置370に保存する。
第2補助記憶装置310−1は、第2リード命令RCMD2に応答して第2リードデータRDATA2を第2内部ハードウェアフィルター330−1に伝送する。第2内部ハードウェアフィルター330−1は、第2リードデータRDATA2をフィルタリング条件データFCDによってフィルタリングし、第2フィルタリングされたデータFDATA2をバス301に出力する。
第1メモリコントローラ350は、各行REC5、REC7に相応する各行REC5’、REC7’を主記憶装置370に保存する。第1メモリコントローラ350は、主記憶装置370に保存された各テーブルTAB2、TAB12に含まれた各行REC1’、REC3’、REC5’、及びREC7’をリードし、各行REC1’、REC3’、REC5’、及びREC7’を含むデータ、例えば、テーブルTAB13をバス301に伝送する。ホストコントローラ390は、第1フィルタリングされたデータFDATA1と第2フィルタリングされたデータFDATA2とを1つのテーブルTAB13としてホスト200に伝送する。
図14は、本発明のさらに他の実施形態によるデータ処理システムのブロック図である。図14を参照すれば、データ処理システム100Dは、ホスト200とデータ保存装置300Dとを含む。ホスト200は、データ保存装置300Dの作動を制御する。
CPU303と第2メモリコントローラ305とを除けば、図14のデータ保存装置300Dの構造と作動は、図12のデータ保存装置300Cの構造と作動と実質的に同一である。ホスト200は、フィルタリング命令FCMDとリード命令RCMDとをデータ保存装置300Dに出力する。上述したように、フィルタリング命令FCMDは、リード命令RCMDを含む。
CPU303は、第2メモリコントローラ305、第1内部ハードウェアフィルター330、第2内部ハードウェアフィルター330−1、第1メモリコントローラ350、及びホストコントローラ390の作動を制御する。CPU303は、ホストコントローラ390とバス301とを通じてフィルタリング命令FCMDを受信し、フィルタリング命令FCMDを解釈し、該解釈の結果に基づいて、フィルタリング条件データFCDを生成し、フィルタリング条件データFCDを各内部ハードウェアフィルター330、330−1にプログラムする。CPU303は、リード命令RCMDを解釈し、該解釈の結果に相応する命令を第2メモリコントローラ305に出力する。
第2メモリコントローラ305は、CPU303から出力された前記命令RCMDに応答して、第1リード命令RCMD1と第2リード命令RCMD2とを生成し、第1リード命令RCMD1を第1補助記憶装置310に伝送し、第2リード命令RCMD2を第2補助記憶装置310−1に伝送する。したがって、第1補助記憶装置310は、第1リード命令RCMD1に応答して第1リードデータRDATA1を第1内部ハードウェアフィルター330に伝送し、第2補助記憶装置310−1は、第2リード命令RCMD2に応答して第2リードデータRDATA2を第2内部ハードウェアフィルター330−1に伝送する。
CPU303は、内部メモリ304を含む。内部メモリ304は、SRAMとして具現可能である。CPU303は、内部メモリ304を用いて第1フィルタリングされたデータFDATA1と第2フィルタリングされたデータFDATA2とから必要なデータをフィルタリングする。これをCPU303による2次フィルタリングと言う。
ホストコントローラ390は、CPU303によって2次フィルタリングされたデータをホスト200に伝送する。上述したように、データ保存装置300Dは、別途のCPU303−1をさらに含みうる。
図15は、図14に示したデータ処理システムの作動を説明する一実施形態を示す。データベースとして使われる複数の補助記憶装置310、310−1にデータが保存される時、1つの行には、可変的な長さを有するデータを保存する。この場合、前記行は、複数の補助記憶装置310、310−1に分けて保存する。
図15に示したように、1つの行は、2つの補助記憶装置310、310−1に保存される。すなわち、前記行の一部に該当するデータ(A1A2A3)は、第1補助記憶装置310のテーブルTAB21に保存され、前記行の残りの一部に該当するデータ(B1B2B3)は、第2補助記憶装置310−1のテーブルTAB22に保存される。
第1内部ハードウェアフィルター330は、第1リードデータRDATA1をフィルタリング条件データFCDによってフィルタリングし、第1フィルタリングされたデータFDATA1を出力する。この際、第1内部ハードウェアフィルター330は、出力データが第1フィルタリングされたデータFDATA1であることを指示するフラグ(FLAG=1)を生成し、フラグ(FLAG=1)を第1フィルタリングされたデータFDATA1と共にバス301を通じて第1メモリコントローラ350に出力する。
第2内部ハードウェアフィルター330−1は、第2リードデータRDATA2をフィルタリング条件データFCDによってフィルタリングし、第2フィルタリングされた第2データFDATA2を出力する。この際、第2内部ハードウェアフィルター330−1は、出力データが第2フィルタリングされたデータFDATA2であることを指示するフラグ(FLAG=1)を生成し、フラグ(FLAG=1)を第2フィルタリングされたデータFDATA2と共にバス301を通じて第1メモリコントローラ350に出力する。したがって、ホスト200は、フラグ(FLAG=1)を用いてフィルタリングされたデータFDATA1及び/またはFDATA2を区別できる。
図16は、図14に示したデータ処理システムの作動を説明する他の実施形態を示す。図16に示したように、1つの行は、2つの補助記憶装置310、310−1に保存される。すなわち、前記行の一部に該当するデータ(A1A2A3−1)は、第1補助記憶装置310のテーブルTAB31に保存され、前記行の残りの一部に該当するデータ(A3−2)は、第2補助記憶装置310−1のテーブルTAB32に保存される。
第1内部ハードウェアフィルター330は、第1リードデータRDATA1をフィルタリングせず、そのまま出力する。この際、第1内部ハードウェアフィルター330は、出力データUFDATA1がフィルタリングされていないデータであることを指示するフラグ(FLAG=0)を生成し、フラグFLAGと出力データUFDATA1とを共にバス301を通じて第1メモリコントローラ350に出力する。第2内部ハードウェアフィルター330−1は、第2リードデータRDATA2をフィルタリングせず、そのまま出力する。この際、第2内部ハードウェアフィルター330−1は、出力データUFDATA2がフィルタリングされていないデータであることを指示するフラグ(FLAG=0)を生成し、フラグ(FLAG=0)と出力データUFDATA2とを共にバス301を通じて第1メモリコントローラ350に出力する。
図17は、本発明の実施形態によるデータ処理システムの作動を説明するフローチャートである。少なくとも1つの補助記憶装置310、310−1、主記憶装置370、及び少なくとも1つのハードウェアフィルター330、330−1を内蔵するデータ保存装置300A、300B、300C、または300D(集合的に(collectively)300)の作動方法は、図1乃至図17を参照して説明する。
少なくとも1つのハードウェアフィルター330、330−1にフィルタリング条件データFCDが設定またはプログラムされる(ステップS310)。フィルタリング条件データFCDは、フィルタリング命令FCMDに関連したデータである。フィルタリング条件データFCDは、CPU303によって、またはCPU303によって実行されるファームウェアまたはAPIによって、少なくとも1つのハードウェアフィルター330、330−1にプログラムされる。
少なくとも1つの補助記憶装置310、310−1は、該当するリード命令RCMD1及び/またはRCMD2を実行し(ステップS320)、該当するリードデータRDATA1及び/またはRDATA2を該当する内部ハードウェアフィルター330及び/または330−1に伝送する(ステップS330)。
少なくとも1つのハードウェアフィルター330、330−1は、フィルタリング条件データFCDを用いて、該当するリードデータRDATA1及び/またはRDATA2をフィルタリングし、該当するフィルタリングされたデータFDATA1及び/またはFDATA2をバス301と第1メモリコントローラ350とを通じて主記憶装置370に保存する(ステップS340)。
第1メモリコントローラ350は、主記憶装置370に保存された該当するフィルタリングされたデータFDATA1及び/またはFDATA2をバス301とホストコントローラ390とを通じてホスト200に伝送する(ステップS350)。
図18は、本発明の実施形態によるデータサーバシステムのブロック図である。図18を参照すれば、データサーバシステム400は、複数のクライアント401、複数のウェブサーバ410、・・・、412、複数のデータベースサーバ200−1、・・・、200−2、及び複数のデータベースDB1、・・・、DB2を含む。
データサーバシステム400は、サーチポータル(search portal)またはIDC(Internet Data Center)を意味する。複数のクライアント401は、ネットワークを通じて各ウェブサーバ410、・・・、412と通信する。複数のクライアント401のそれぞれは、PC(Personal Computer)、ラップトップコンピュータ(laptop computer)、スマートフォン、タブレット(tablet)PC、PDA(Personal Digital Assistant)、またはモバイルインターネット装置(Mobile Internet Device;MID)として具現可能である。
複数のウェブサーバ410、・・・、412のそれぞれは、ネットワーク414を通じて複数のデータベースサーバ200−1、・・・、200−2のそれぞれと通信する。複数のデータベースサーバ200−1、・・・、200−2のそれぞれは、ホスト200の機能を行う。
複数のデータベースサーバ200−1、・・・、200−2のそれぞれは、複数のデータベースDB1、・・・、DB2のそれぞれの作動を制御する。複数のデータベースサーバ200−1、・・・、200−2のそれぞれは、複数のデータベースDB1、・・・、DB2のそれぞれにアクセスする。各データベースDB1、・・・、DB2は、複数のデータ保存装置300を含む。複数のウェブサーバ410、・・・、412と複数のデータベースサーバ200−1、・・・、200−2は、ネットワークを通じて通信する。前記ネットワークは、有線ネットワーク、無線ネットワーク、インターネット、または移動電話ネットワークを含む。
本発明は、データ保存装置と、それを含むデータ処理システムとに利用されうる。
100A、100B、100C、100D データ処理システム
200 ホスト
300A、300B、300C、300D データ保存装置
310 第1補助記憶装置
310−1 第2補助記憶装置
330 第1内部ハードウェアフィルター
330−1 第2内部ハードウェアフィルター
333 データ抽出器
333−1 パージングデータ生成回路
333−3 抽出回路
335 データ比較器
335−1 レジスタ
335−3 比較器
335−5 出力制御回路
350 第1メモリコントローラ
370 主記憶装置
390 ホストコントローラ

Claims (13)

  1. ホストを含むデータ処理システムに使われる記憶装置であるデータ保存装置において、前記データ保存装置は、
    ビッグデータを保存するデータベースとして使われる第2メモリに保存された前記ビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、
    前記データ保存装置内の前記第2メモリに機能的に隣接して配され、前記リード命令から派生した第1リード命令に応答して、前記第2メモリから第1リードデータを受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第1リードデータをフィルタリングし、第1フィルタリングされたデータを生成する内部ハードウェアフィルターと、
    前記内部ハードウェアフィルターによって生成された前記第1フィルタリングされたデータを前記データ保存装置内の前記第2メモリから分離された第1メモリに保存し、前記リード命令に応答して、前記第1メモリに保存された前記第1フィルタリングされたデータを前記ホストに伝送するメモリコントローラと、
    を含み、
    前記内部ハードウェアフィルターは、
    前記第1リードデータを受信し、バッファリングするデータバッファと、
    前記フィルタリング条件データに含まれた抽出条件データを用いて、前記第1リードデータから第1抽出データと第2抽出データとを抽出するデータ抽出器と、
    前記フィルタリング条件データに含まれたマッチングキーデータと前記第1抽出データとを比較し、前記マッチングキーデータと前記第1抽出データとの比較の結果によって、前記第2抽出データを前記第1フィルタリングされたデータとして出力するか否かを決定するデータ比較器と、を含むことを特徴とするデータ保存装置。
  2. 前記ホストコントローラは、前記フィルタリング命令を受信して、前記フィルタリング命令を出力することを特徴とする請求項1に記載のデータ保存装置。
  3. 前記フィルタリング条件データは、SQLによって定義されたデータ構造を有するデータファイルとして表現されることを特徴とする請求項1に記載のデータ保存装置。
  4. 前記ホストコントローラは、前記リード命令から前記第1リード命令を生成することを特徴とする請求項1に記載のデータ保存装置。
  5. 前記第2メモリは、ヘッダ、行方向に配列された複数の行数、及び複数の行オフセットの個数を含むデータベースレイアウトを用いて、前記第1リードデータを保存し、前記複数の行オフセットのそれぞれは、前記複数の行のそれぞれに関連することを特徴とする請求項1に記載のデータ保存装置。
  6. 前記フィルタリング命令は、クエリー(query)を含み、前記データ保存装置は、前記クエリーに応答して、前記フィルタリング条件データを生成し、次いで、前記フィルタリング条件データを前記内部ハードウェアフィルターにプログラムするCPUをさらに含むことを特徴とする請求項1に記載のデータ保存装置。
  7. 前記クエリーは、SQLと固有クエリー言語のうちの何れか1つとして表現されることを特徴とする請求項6に記載のデータ保存装置。
  8. 前記フィルタリング命令と前記リード命令は、前記ホストによって提供された1つの命令に結合されることを特徴とする請求項6に記載のデータ保存装置。
  9. 前記データ抽出器は、
    前記抽出条件データと前記第1リードデータのメタデータとに基づいて、前記第1リードデータの行に含まれた複数列をパージングするためのパージングデータを生成するパージングデータ生成回路と、
    前記パージングデータに基づいて、前記第1リードデータの前記行から前記第1抽出データと前記第2抽出データとを抽出する抽出回路と、
    を含むことを特徴とする請求項に記載のデータ保存装置。
  10. 前記データ比較器は、
    前記マッチングキーデータを保存するレジスタと、
    前記レジスタに保存された前記マッチングキーデータと前記第1抽出データとを比較し、マッチング比較信号またはノンマッチング比較信号を生成する比較器と、
    前記マッチング比較信号、ノンマッチング比較信号に応答して、前記第2抽出データを出力するか否かを決定する出力制御回路と、
    を含むことを特徴とする請求項に記載のデータ保存装置。
  11. ホストを含むデータ処理システムに使われる記憶装置であるデータ保存装置において、前記データ保存装置は、
    第1の二次メモリと第2の二次メモリとに保存されたビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、
    前記データ保存装置内の前記第1の二次メモリに機能的に隣接して配され、前記リード命令から派生した第1リード命令に応答して、前記第1の二次メモリからリードデータの第1部分を受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第1部分をフィルタリングし、フィルタリングされたデータの第1部分を生成する第1内部ハードウェアフィルターと、
    前記データ保存装置内の前記第2の二次メモリに機能的に隣接して配され、前記第1リード命令に応答して、前記第2の二次メモリからリードデータの第2部分を受信し、前記フィルタリング条件データによって、前記第2部分をフィルタリングし、フィルタリングされたデータの第2部分を生成する第2内部ハードウェアフィルターと、
    前記フィルタリングされたデータの第1部分と前記フィルタリングされたデータの第2部分とを前記データ保存装置内の前記第1の二次メモリと前記第2の二次メモリとから分離された第1メモリに保存し、前記リード命令に応答して、前記第1メモリに保存された前記第1部分と前記第2部分とを前記ホストに伝送するメモリコントローラと、を含み、
    前記第1の二次メモリと前記第2の二次メモリは、前記ビッグデータを保存するデータベースとして選択的に提供され
    前記第1内部ハードウェアフィルターは、前記第1部分に関連したフラグを生成し、前記フラグは、前記第1部分が前記フィルタリング条件データによってフィルタリングされたデータであるか否かを指示し、
    前記フラグにより、前記ホストは、前記フィルタリングされたデータの第1部分と前記フィルタリングされたデータの第2部分を区別できる
    ことを特徴とするデータ保存装置。
  12. 前記データ保存装置は、
    前記フィルタリング命令に基づいて制御シーケンスを生成する第1CPUと、
    前記制御シーケンスに基づいて前記フィルタリング条件データを生成する第2CPUと、をさらに含み、
    前記制御シーケンスは、前記第1の二次メモリからリードされるテーブルについての第1情報、前記テーブルに含まれた複数列のうちから抽出される複数列についての第2情報、及び前記テーブルから抽出される列値についての第3情報を含むことを特徴とする請求項11に記載のデータ保存装置。
  13. 前記データ保存装置は、ソリッドステートドライブ(SSD)を含み、前記第1の二次メモリは、フラッシュメモリであり、前記第1メモリは、DRAMであることを特徴とする請求項11に記載のデータ保存装置。

JP2014238759A 2013-11-28 2014-11-26 内部ハードウェアフィルターを含むデータ保存装置とその作動方法 Active JP6563642B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0146351 2013-11-28
KR1020130146351A KR102103543B1 (ko) 2013-11-28 2013-11-28 내부 하드웨어 필터를 포함하는 일체형 데이터 저장 장치, 이의 동작 방법, 및 상기 데이터 저장 장치를 포함하는 시스템

Publications (2)

Publication Number Publication Date
JP2015106413A JP2015106413A (ja) 2015-06-08
JP6563642B2 true JP6563642B2 (ja) 2019-08-21

Family

ID=53183559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014238759A Active JP6563642B2 (ja) 2013-11-28 2014-11-26 内部ハードウェアフィルターを含むデータ保存装置とその作動方法

Country Status (4)

Country Link
US (1) US10210196B2 (ja)
JP (1) JP6563642B2 (ja)
KR (1) KR102103543B1 (ja)
CN (1) CN104679813B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448742B2 (en) * 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
KR102251811B1 (ko) * 2015-01-02 2021-05-13 삼성전자주식회사 하드웨어 필터를 포함하는 데이터 저장 장치 및 상기 데이터 저장 장치를 포함하는 데이터 처리 시스템
CN106649455B (zh) * 2016-09-24 2021-01-12 孙燕群 一种大数据开发的标准化系统归类、命令集系统
US11010431B2 (en) * 2016-12-30 2021-05-18 Samsung Electronics Co., Ltd. Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD
KR102444606B1 (ko) * 2017-08-28 2022-09-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107798111B (zh) * 2017-11-01 2021-04-06 四川长虹电器股份有限公司 一种分布式环境中大批量导出数据的方法
CN108958649B (zh) * 2018-05-17 2021-03-23 天津飞腾信息技术有限公司 一种用于存储系统的安全隔离方法及装置
CN108920410A (zh) * 2018-06-22 2018-11-30 华北理工大学 一种大数据处理装置及方法
CN109461811B (zh) * 2018-09-12 2020-02-21 华中科技大学 一种crs阻变存储器的混合可重配方法
CN113536075B (zh) * 2021-07-20 2024-06-04 锐掣(杭州)科技有限公司 数据提取方法、装置及存储介质
US20240106782A1 (en) * 2022-09-28 2024-03-28 Advanced Micro Devices, Inc. Filtered Responses of Memory Operation Messages
CN116028532A (zh) * 2023-03-24 2023-04-28 山东浪潮科学研究院有限公司 一种数据库数据过滤方法、装置、设备及存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55108030A (en) 1979-02-13 1980-08-19 Hitachi Ltd Data transfer control system
JPS60105060A (ja) 1983-11-12 1985-06-10 Nippon Telegr & Teleph Corp <Ntt> 内容検索処理方式
WO1990010912A1 (en) * 1989-03-14 1990-09-20 Kabushiki Kaisha Dainichi Data retrieval device and data editing apparatus using this device
JPH0424821A (ja) 1990-05-20 1992-01-28 Fujitsu Ltd 外部記憶装置
US6292844B1 (en) 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
KR100457694B1 (ko) 1998-08-26 2005-01-15 삼성전자주식회사 하드디스크 서보 정보 기록 장치 및 그 방법
JP4076415B2 (ja) 2002-09-19 2008-04-16 富士通株式会社 検索方法、検索装置、及びコンピュータプログラム
US7203691B2 (en) 2002-09-27 2007-04-10 Ncr Corp. System and method for retrieving information from a database
US7437666B2 (en) * 2003-10-22 2008-10-14 Intel Corporation Expression grouping and evaluation
KR100677491B1 (ko) * 2005-09-12 2007-02-02 엘지전자 주식회사 이동 통신 단말기의 사운드 연동 진동 강도 제어 장치
US20080189251A1 (en) 2006-08-25 2008-08-07 Jeremy Branscome Processing elements of a hardware accelerated reconfigurable processor for accelerating database operations and queries
US20080065590A1 (en) * 2006-09-07 2008-03-13 Microsoft Corporation Lightweight query processing over in-memory data structures
KR100854032B1 (ko) * 2007-02-09 2008-08-26 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
US7970919B1 (en) * 2007-08-13 2011-06-28 Duran Paul A Apparatus and system for object-based storage solid-state drive and method for configuring same
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US9223642B2 (en) * 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US8099528B2 (en) 2008-09-30 2012-01-17 Apple Inc. Data filtering using central DMA mechanism
TWI397071B (zh) 2008-12-31 2013-05-21 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
JP5999645B2 (ja) * 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US8782336B2 (en) * 2010-05-11 2014-07-15 Marvell World Trade Ltd. Hybrid storage system with control module embedded solid-state memory
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US8996851B2 (en) 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US9558247B2 (en) * 2010-08-31 2017-01-31 Samsung Electronics Co., Ltd. Storage device and stream filtering method thereof
US20120054420A1 (en) * 2010-08-31 2012-03-01 Jeonguk Kang Storage device and stream filtering method thereof
WO2012050935A2 (en) * 2010-09-28 2012-04-19 Fusion-Io, Inc. Apparatus, system, and method for data transformations within a data storage device
US10311105B2 (en) 2010-12-28 2019-06-04 Microsoft Technology Licensing, Llc Filtering queried data on data stores
WO2013022915A1 (en) * 2011-08-09 2013-02-14 Lsi Corporation I/o device and computing host interoperation
US9201825B1 (en) * 2011-11-02 2015-12-01 Marvell International Ltd. Data storage methods and apparatus
CN102929799B (zh) 2012-10-17 2016-04-13 北京西塔网络科技股份有限公司 数据采集存储方法及系统
US8792279B2 (en) * 2012-11-09 2014-07-29 Sandisk Technologies Inc. Architectures for data analytics using computational NAND memory
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9092321B2 (en) * 2013-07-24 2015-07-28 NXGN Data, Inc. System and method for performing efficient searches and queries in a storage node
US9146747B2 (en) * 2013-08-08 2015-09-29 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing configurable computational imaging pipeline
KR102213674B1 (ko) * 2014-02-17 2021-02-08 삼성전자주식회사 내부 하드웨어 필터를 포함하는 일체형 데이터 저장 장치와 이의 동작 방법
US10025824B2 (en) * 2015-05-27 2018-07-17 International Business Machines Corporation Filter optimizer for data streams

Also Published As

Publication number Publication date
US20150149490A1 (en) 2015-05-28
KR20150061945A (ko) 2015-06-05
CN104679813A (zh) 2015-06-03
CN104679813B (zh) 2019-05-31
US10210196B2 (en) 2019-02-19
JP2015106413A (ja) 2015-06-08
KR102103543B1 (ko) 2020-05-29

Similar Documents

Publication Publication Date Title
JP6563642B2 (ja) 内部ハードウェアフィルターを含むデータ保存装置とその作動方法
US10311048B2 (en) Full and partial materialization of data from an in-memory array to an on-disk page structure
JP6639420B2 (ja) フラッシュ最適化データ・レイアウトのための方法、フラッシュ最適化記憶のための装置、およびコンピュータ・プログラム
US9513811B2 (en) Materializing data from an in-memory array to an on-disk page structure
KR101972645B1 (ko) 클러스터링 저장 방법 및 장치
CN105117415B (zh) 一种优化的ssd数据更新方法
KR102564170B1 (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
US9367585B2 (en) Data storage and query method
WO2017041570A1 (zh) 向缓存写入数据的方法及装置
WO2013152678A1 (zh) 元数据查询方法和装置
JP2016536694A (ja) 自律的メモリ検索のための方法及びシステム
US20200117642A1 (en) Determining optimal data size for data deduplication operation
WO2017013701A1 (ja) 計算機システム及びデータベース管理方法
US20220027349A1 (en) Efficient indexed data structures for persistent memory
US20130254242A1 (en) Database processing device, database processing method, and recording medium
CN113867627B (zh) 一种存储系统性能优化方法及系统
US20180075116A1 (en) Information processing system, control device, and computer-readable recording medium having processing program recorded therein
US10013442B2 (en) Database value identifier hash map
WO2024032526A1 (zh) 一种数据检索处理方法和系统
KR102213674B1 (ko) 내부 하드웨어 필터를 포함하는 일체형 데이터 저장 장치와 이의 동작 방법
US10762139B1 (en) Method and system for managing a document search index
US10860577B2 (en) Search processing system and method for processing search requests involving data transfer amount unknown to host
US20220050807A1 (en) Prefix probe for cursor operations associated with a key-value database system
CN114896250A (zh) 一种键值分离的键值存储引擎索引优化方法及装置
KR102251811B1 (ko) 하드웨어 필터를 포함하는 데이터 저장 장치 및 상기 데이터 저장 장치를 포함하는 데이터 처리 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190725

R150 Certificate of patent or registration of utility model

Ref document number: 6563642

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250