JP2021072107A - ストレージ周辺の階層的ソート加速のためのストレージシステム及び方法 - Google Patents
ストレージ周辺の階層的ソート加速のためのストレージシステム及び方法 Download PDFInfo
- Publication number
- JP2021072107A JP2021072107A JP2020171938A JP2020171938A JP2021072107A JP 2021072107 A JP2021072107 A JP 2021072107A JP 2020171938 A JP2020171938 A JP 2020171938A JP 2020171938 A JP2020171938 A JP 2020171938A JP 2021072107 A JP2021072107 A JP 2021072107A
- Authority
- JP
- Japan
- Prior art keywords
- array
- sort
- processing
- storage system
- reconfigurable
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001133 acceleration Effects 0.000 title abstract description 3
- 238000012545 processing Methods 0.000 claims abstract description 223
- 238000004891 communication Methods 0.000 claims abstract description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 41
- 239000007787 solid Substances 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 239000000872 buffer Substances 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 238000013403 standard screening design Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Advance Control (AREA)
- Logic Circuits (AREA)
Abstract
Description
前記入力データは、前記ホストコンピュータによって前記SSDからリードされて前記ホストコンピュータの1次メモリ(primary memory)にロード(load)され、前記FPGAの前記メモリは、前記ホストコンピュータの1次メモリから前記入力データを受信し得る。
前記ストレージシステムは、前記メモリと前記SSDとの間の直接相互接続(direct interconnect)を更に含み、前記FPGAは、前記直接相互接続を通じて前記SSDから前記メモリに前記入力データをリードする前記SSDに直接アクセスし得る。
前記FPGA及び前記SSDは、同一の回路ボード上に実装され得る。
前記FPGAは、前記SSDからデータをリードする場合、前記ホストコンピュータをバイパスするためにP2P(Point−to−Point)通信を使用する前記直接相互接続を通じて前記SSDにアクセスし得る。
前記メモリは、DRAM(Dynamic Random−Access Memory)を含み得る。
前記1つ以上の演算コンポーネントは、複数の処理エレメント(processing element)を含み、前記複数の処理エレメントの各々は、ソーティングアルゴリズムに基づいて前記入力データに対応する前記データエレメントの配列のセグメントをソートし得る。
前記複数の処理エレメントの各々は、ローカルコンパレータ及びローカルマージャーを含み、前記ローカルコンパレータ及び前記ローカルマージャーは、前記ソーティングアルゴリズムを使用して前記セグメントから部分的にソートされた配列を生成し得る。
前記1つ以上の演算コンポーネントは、前記複数の処理エレメントの各々の出力に接続された処理ユニット(processing unit)を更に含み、前記処理ユニットは、前記ソーティングアルゴリズムに基づいて前記複数の処理エレメントの前記出力をソートし得る。
前記処理ユニットは、グローバルコンパレータ及びグローバルマージャーを含み、前記グローバルコンパレータ及び前記グローバルマージャーは、前記ソーティングアルゴリズムを使用して、前記複数の処理エレメントによって前記部分的にソートされた配列から前記入力データの完全にソートされた配列を生成し得る。
前記ソーティングアルゴリズムは、バイトニックソートアルゴリズム(Bitonic sorting algorithm)であり得る。
前記再構成可能な処理装置は、前記データエレメントの配列のサイズに応じてランタイム(run−time)に多数の前記複数の処理エレメント及び前記処理ユニットを動的にインスタンス化し得る。
前記再構成可能な処理装置は、前記データエレメントの配列のサイズを識別し、1つ以上のしきい値と前記データエレメントの配列のサイズとを比較し、前記比較に基づいて、多数の前記複数の処理エレメント及び前記処理ユニットをインスタンス化し得る。
前記1つ以上の演算コンポーネントをインスタンス化するステップは、1つ以上のロジックブロック、及び前記FPGAのカーネルの1つ以上の相互接続を再構成するステップを含み得る。
前記方法は、少なくとも1つのローカルソート演算コンポーネント(local sort compute component)によって、前記データエレメントの配列の少なくとも1つのセグメントをソートするステップと、前記少なくとも1つのローカルソート演算コンポーネントによって、前記少なくとも1つセグメントのソートされた配列を生成するステップと、を更に含み、前記1つ以上の演算コンポーネントをインスタンス化するステップは、前記再構成可能な処理装置によって、前記少なくとも1つのローカルソート演算コンポーネントをインスタンス化するステップを含み得る。
前記方法は、複数のローカルソート演算コンポーネントの各々によって、前記データエレメントの配列の異なるセグメントをソートするステップと、前記複数のローカルソート演算コンポーネントの各々によって、対応するセグメントの部分的にソートされた配列を生成するステップと、を更に含み、前記1つ以上の演算コンポーネントをインスタンス化するステップは、前記再構成可能な処理装置によって、前記複数のローカルソート演算コンポーネントをインスタンス化するステップを含み得る。
前記方法は、グローバルソート演算コンポーネント(global sort compute component)によって、前記複数のローカルソート演算コンポーネントの各々によって生成された前記部分的にソートされた配列をソートするステップと、前記グローバルソート演算コンポーネントによって、前記部分的にソートされた配列のソートから前記データエレメントの配列に対応する完全にソートされた配列を生成するステップと、を更に含み、前記1つ以上の演算コンポーネントをインスタンス化するステップは、前記再構成可能な処理装置によって、前記複数のローカルソート演算コンポーネントの各々の出力に接続された前記グローバルソート演算コンポーネントをインスタンス化するステップを更に含み得る。
また、本発明によると、ソート演算の実行時間が短くなり、ソート演算によるエネルギー消費を減少させることができる。
また、本発明によると、ホストコンピュータによって課されたボトルネック現象(例えば、CPU利用率、及びPCIの帯域幅など)を減らすか又は除去することで、ソート演算の拡張性を向上させることができる。
102 ホストコンピュータ
104 ストレージ装置
104a SSD
106 再構成可能な処理装置
106a FPGA
108 ホストプロセッサ
110 ホストメモリ
112 ストレージインターフェース
114 再構成可能な処理メモリ
114a FPGA DRAM
116 再構成可能な処理アクセラレータ
116a FPGAアクセラレータ(ソートカーネル)
202 FPGAボード
204 インターフェース
206 BRAM
208 BRAMバッファ
210 演算コンポーネント
212 データリオーダラ(再整列器)
400 処理エレメント(PE)
402、504 コントローラ
404 ローカルコンパレータ
406 ローカルマージャー
450 バイトニックソート
500 処理ユニット
502 アービタ
506 アドレス変換器
508 グローバルコンパレータ
510 グローバルマージャー
702 直接相互接続
Claims (20)
- ソート演算に関連するデータエレメントの配列を格納するストレージ装置と、
前記ストレージ装置とホストコンピュータとの間の通信を可能にするストレージインターフェースと、
前記ストレージ装置に通信可能に接続された再構成可能な処理装置と、を備え、
前記再構成可能な処理装置は、
前記ストレージ装置からリードされ、前記ストレージ装置に格納された前記データエレメントの配列に対応する入力データを格納するメモリと、
前記ホストコンピュータから受信されたソートコマンドに応じて、前記メモリに格納された入力データに対する前記ソート演算を実行する1つ以上の演算コンポーネントを有するカーネルを含み、
前記再構成可能な処理装置は、前記ソート演算を加速化する前記1つ以上の演算コンポーネントを動的にインスタンス化することを特徴とするストレージシステム。 - 前記ストレージ装置は、SSD(Solid State Drive)を含み、
前記再構成可能な処理装置は、FPGA(Field Programmable Gate Array)を含むことを特徴とする請求項1に記載のストレージシステム。 - 前記入力データは、前記ホストコンピュータによって前記SSDからリードされて前記ホストコンピュータの1次メモリにロードされ、
前記FPGAの前記メモリは、前記ホストコンピュータの1次メモリから前記入力データを受信することを特徴とする請求項2に記載のストレージシステム。 - 前記メモリと前記SSDとの間の直接相互接続を更に含み、
前記FPGAは、前記直接相互接続を通じて前記SSDから前記メモリに前記入力データをリードする前記SSDに直接アクセスすることを特徴とする請求項2に記載のストレージシステム。 - 前記FPGA及び前記SSDは、同一の回路ボード上に実装されることを特徴とする請求項4に記載のストレージシステム。
- 前記FPGAは、前記SSDからデータをリードする場合、前記ホストコンピュータをバイパスするためにP2P(Point−to−Point)通信を使用する前記直接相互接続を通じて前記SSDにアクセスすることを特徴とする請求項4に記載のストレージシステム。
- 前記メモリは、DRAM(Dynamic Random Access Memory)を含むことを特徴とする請求項4に記載のストレージシステム。
- 前記1つ以上の演算コンポーネントは、複数の処理エレメントを含み、
前記複数の処理エレメントの各々は、ソーティングアルゴリズムに基づいて前記入力データに対応する前記データエレメントの配列のセグメントをソートすることを特徴とする請求項1に記載のストレージシステム。 - 前記複数の処理エレメントの各々は、ローカルコンパレータ及びローカルマージャーを含み、
前記ローカルコンパレータ及び前記ローカルマージャーは、前記ソーティングアルゴリズムを使用して前記セグメントから部分的にソートされた配列を生成することを特徴とする請求項8に記載のストレージシステム。 - 前記1つ以上の演算コンポーネントは、前記複数の処理エレメントの各々の出力に接続された処理ユニットを更に含み、
前記処理ユニットは、前記ソーティングアルゴリズムに基づいて前記複数の処理エレメントの出力をソートすることを特徴とする請求項9に記載のストレージシステム。 - 前記処理ユニットは、グローバルコンパレータ及びグローバルマージャーを含み、
前記グローバルコンパレータ及び前記グローバルマージャーは、前記ソーティングアルゴリズムを使用して、前記複数の処理エレメントによって前記部分的にソートされた配列から前記入力データの完全にソートされた配列を生成することを特徴とする請求項10に記載のストレージシステム。 - 前記ソーティングアルゴリズムは、バイトニック(Bitonic)ソーティングアルゴリズムであることを特徴とする請求項11に記載のストレージシステム。
- 前記再構成可能な処理装置は、前記データエレメントの配列のサイズに応じてランタイムに多数の前記複数の処理エレメント及び前記処理ユニットを動的にインスタンス化することを特徴とする請求項11に記載のストレージシステム。
- 前記再構成可能な処理装置は、
前記データエレメントの配列のサイズを識別し、
1つ以上のしきい値と前記データエレメントの配列のサイズとを比較し、
前記比較に基づいて、多数の前記複数の処理エレメント及び前記処理ユニットをインスタンス化することを特徴とする請求項13に記載のストレージシステム。 - ソート演算に関連するデータエレメントの配列を格納するストレージ装置、前記ストレージ装置とホストコンピュータとの間の通信を可能にするストレージインターフェース、及び前記ストレージ装置に通信可能に接続された再構成可能な処理装置を備えるストレージシステムのソート演算を動的にスケーリングする方法であって、
前記再構成可能な処理装置によって、前記ホストコンピュータからソートコマンドに関連するデータエレメントの配列のサイズを識別するステップと、
前記再構成可能な処理装置によって、前記配列のサイズと1つ以上のしきい値のサイズとを比較するステップと、
前記再構成可能な処理装置によって、前記ソート演算を加速化するために、前記比較に基づいて1つ以上の演算コンポーネントをインスタンス化するステップと、を有することを特徴とする方法。 - 前記ストレージ装置は、SSD(Solid State Drive)を含み、
前記再構成可能な処理装置は、FPGA(Field Programmable Gate Array)を含むことを特徴とする請求項15に記載の方法。 - 前記1つ以上の演算コンポーネントをインスタンス化するステップは、1つ以上のロジックブロック、及び前記FPGAのカーネルの1つ以上の相互接続を再構成するステップを含むことを特徴とする請求項16に記載の方法。
- 少なくとも1つのローカルソート演算コンポーネントによって、前記データエレメントの配列の少なくとも1つのセグメントをソートするステップと、
前記少なくとも1つのローカルソート演算コンポーネントによって、前記少なくとも1つのセグメントのソートされた配列を生成するステップと、を更に含み、
前記1つ以上の演算コンポーネントをインスタンス化するステップは、前記再構成可能な処理装置によって、前記少なくとも1つのローカルソート演算コンポーネントをインスタンス化するステップを含むことを特徴とする請求項16に記載の方法。 - 複数のローカルソート演算コンポーネントの各々によって、前記データエレメントの配列の異なるセグメントをソートするステップと、
前記複数のローカルソート演算コンポーネントの各々によって、対応するセグメントの部分的にソートされた配列を生成するステップと、を更に含み、
前記1つ以上の演算コンポーネントをインスタンス化するステップは、前記再構成可能な処理装置によって、前記複数のローカルソート演算コンポーネントをインスタンス化するステップを含むことを特徴とする請求項16に記載の方法。 - グローバルソート演算コンポーネントによって、前記複数のローカルソート演算コンポーネントの各々によって生成された前記部分的にソートされた配列をソートするステップと、
前記グローバルソート演算コンポーネントによって、前記部分的にソートされた配列のソートから前記データエレメントの配列に対応する完全にソートされた配列を生成するステップと、を更に含み、
前記1つ以上の演算コンポーネントをインスタンス化するステップは、前記再構成可能な処理装置によって、前記複数のローカルソート演算コンポーネントの各々の出力に接続された前記グローバルソート演算コンポーネントをインスタンス化するステップを更に含むことを特徴とする請求項19に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962927626P | 2019-10-29 | 2019-10-29 | |
US62/927,626 | 2019-10-29 | ||
US16/821,811 | 2020-03-17 | ||
US16/821,811 US11249651B2 (en) | 2019-10-29 | 2020-03-17 | System and method for hierarchical sort acceleration near storage |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021072107A true JP2021072107A (ja) | 2021-05-06 |
JP2021072107A5 JP2021072107A5 (ja) | 2023-09-29 |
JP7381429B2 JP7381429B2 (ja) | 2023-11-15 |
Family
ID=75585979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020171938A Active JP7381429B2 (ja) | 2019-10-29 | 2020-10-12 | ストレージ周辺の階層的ソート加速のためのストレージシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11249651B2 (ja) |
JP (1) | JP7381429B2 (ja) |
KR (1) | KR102663759B1 (ja) |
CN (1) | CN112749107B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995448B1 (en) * | 2018-02-08 | 2024-05-28 | Marvell Asia Pte Ltd | Method and apparatus for performing machine learning operations in parallel on machine learning hardware |
US11016801B1 (en) | 2018-05-22 | 2021-05-25 | Marvell Asia Pte, Ltd. | Architecture to support color scheme-based synchronization for machine learning |
US10997510B1 (en) | 2018-05-22 | 2021-05-04 | Marvell Asia Pte, Ltd. | Architecture to support tanh and sigmoid operations for inference acceleration in machine learning |
US11575916B2 (en) * | 2020-10-30 | 2023-02-07 | Advanced Micro Devices, Inc. | Top palette colors selection using sorting for palette mode in video encoding |
CN113900622B (zh) * | 2021-09-22 | 2022-04-08 | 中国科学院国家空间科学中心 | 一种基于fpga的数据信息快速排序方法、系统、设备及存储介质 |
CN115857805B (zh) * | 2022-11-30 | 2023-06-27 | 合肥腾芯微电子有限公司 | 人工智能可计算存储系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007524923A (ja) | 2003-05-23 | 2007-08-30 | ワシントン ユニヴァーシティー | Fpgaデバイスを使用するインテリジェントデータ記憶および処理 |
JP2005190047A (ja) | 2003-12-25 | 2005-07-14 | Hitachi Ltd | データソート機能を持つストレージシステム |
SG136862A1 (en) | 2006-04-21 | 2007-11-29 | Oce Tech Bv | Variable speed printing |
US8589867B2 (en) * | 2010-06-18 | 2013-11-19 | Microsoft Corporation | Compiler-generated invocation stubs for data parallel programming model |
US9495139B2 (en) | 2011-04-11 | 2016-11-15 | University Of Florida Research Foundation, Inc. | Elastic computing |
US9100012B1 (en) * | 2012-12-14 | 2015-08-04 | Altera Corporation | Adaptable programs using partial reconfiguration |
US9256535B2 (en) * | 2013-04-04 | 2016-02-09 | Advanced Micro Devices, Inc. | Conditional notification mechanism |
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US9619499B2 (en) * | 2013-08-07 | 2017-04-11 | International Business Machines Corporation | Hardware implementation of a tournament tree sort algorithm |
US9495418B2 (en) | 2013-08-07 | 2016-11-15 | International Business Machines Corporation | Scalable acceleration of database query operations |
US9251218B2 (en) | 2013-08-07 | 2016-02-02 | International Business Machines Corporation | Tunable hardware sort engine for performing composite sorting algorithms |
US20150149691A1 (en) | 2013-09-11 | 2015-05-28 | Glenn Austin Baxter | Directly Coupled Computing, Storage and Network Elements With Local Intelligence |
US10257095B2 (en) * | 2014-09-30 | 2019-04-09 | Nicira, Inc. | Dynamically adjusting load balancing |
US9904793B2 (en) * | 2015-03-23 | 2018-02-27 | Intel Corporation | Systems, methods, and apparatus to provide private information retrieval |
US9740511B2 (en) | 2015-06-04 | 2017-08-22 | Advanced Micro Devices, Inc. | Per-block sort for performance enhancement of parallel processors |
US10445232B2 (en) | 2015-07-14 | 2019-10-15 | Western Digital Technologies, Inc. | Determining control states for address mapping in non-volatile memories |
US10198264B2 (en) * | 2015-12-15 | 2019-02-05 | Intel Corporation | Sorting data and merging sorted data in an instruction set architecture |
WO2018089993A1 (en) * | 2016-11-14 | 2018-05-17 | Google Llc | Sorting for data-parallel computing devices |
US20190235863A1 (en) * | 2018-01-31 | 2019-08-01 | Qualcomm Incorporated | Sort instructions for reconfigurable computing cores |
US10915469B2 (en) * | 2018-03-09 | 2021-02-09 | Samsung Electronics Co., Ltd. | Method and apparatus for supporting a field programmable gate array (FPGA) based add-in-card (AIC) solid state drive (SSD) |
-
2020
- 2020-03-17 US US16/821,811 patent/US11249651B2/en active Active
- 2020-07-29 KR KR1020200094791A patent/KR102663759B1/ko active IP Right Grant
- 2020-10-12 JP JP2020171938A patent/JP7381429B2/ja active Active
- 2020-10-15 CN CN202011101690.1A patent/CN112749107B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US11249651B2 (en) | 2022-02-15 |
TW202117532A (zh) | 2021-05-01 |
JP7381429B2 (ja) | 2023-11-15 |
KR102663759B1 (ko) | 2024-05-09 |
US20210124500A1 (en) | 2021-04-29 |
CN112749107A (zh) | 2021-05-04 |
KR20210052188A (ko) | 2021-05-10 |
CN112749107B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7381429B2 (ja) | ストレージ周辺の階層的ソート加速のためのストレージシステム及び方法 | |
Zhang et al. | Boosting the performance of FPGA-based graph processor using hybrid memory cube: A case for breadth first search | |
Kim et al. | In-storage processing of database scans and joins | |
Jun et al. | Terabyte sort on FPGA-accelerated flash storage | |
EP4010793A1 (en) | Compiler flow logic for reconfigurable architectures | |
Qiao et al. | FANS: FPGA-accelerated near-storage sorting | |
Lee et al. | Smartsage: training large-scale graph neural networks using in-storage processing architectures | |
JP2021072107A5 (ja) | ||
US11675506B2 (en) | Storage device supporting multi-tenancy and operating method thereof | |
Chen et al. | Towards efficient allocation of graph convolutional networks on hybrid computation-in-memory architecture | |
Salamat et al. | NASCENT2: Generic near-storage sort accelerator for data analytics on SmartSSD | |
US11429299B2 (en) | System and method for managing conversion of low-locality data into high-locality data | |
Paul et al. | Energy-efficient hardware acceleration through computing in the memory | |
US20240061779A1 (en) | Hardware accelerator for hypergraph processing and operating method thereof | |
US11983141B2 (en) | System for executing an application on heterogeneous reconfigurable processors | |
HeydariGorji et al. | In-storage processing of I/O intensive applications on computational storage drives | |
TWI836132B (zh) | 儲存系統以及用於動態地擴縮儲存系統的排序操作的方法 | |
US20220374348A1 (en) | Hardware Acceleration | |
Jain et al. | Merge network for a non-von Neumann accumulate accelerator in a 3D chip | |
Kim et al. | FPGA Prototyping of Low-Precision Zero-Skipping Accelerator for Neural Networks | |
Li et al. | Efficient FPGA-based Sparse Matrix-Vector Multiplication with Data Reuse-aware Compression | |
US11442643B2 (en) | System and method for efficiently converting low-locality data into high-locality data | |
Balasubramonian | Making the case for feature-rich memory systems: The march toward specialized systems | |
Winkler et al. | FPGA processing of decision tree ensembles stored in external DRAM | |
Wang et al. | SH-GAT: Software-hardware co-design for accelerating graph attention networks on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230921 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230921 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230921 |
|
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: 20231017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231102 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7381429 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |