JP6882398B2 - メモリプロセッサを用いた多重処理システム及びその動作方法 - Google Patents

メモリプロセッサを用いた多重処理システム及びその動作方法 Download PDF

Info

Publication number
JP6882398B2
JP6882398B2 JP2019167463A JP2019167463A JP6882398B2 JP 6882398 B2 JP6882398 B2 JP 6882398B2 JP 2019167463 A JP2019167463 A JP 2019167463A JP 2019167463 A JP2019167463 A JP 2019167463A JP 6882398 B2 JP6882398 B2 JP 6882398B2
Authority
JP
Japan
Prior art keywords
calculation
processing
processing devices
main processor
work
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
JP2019167463A
Other languages
English (en)
Other versions
JP2020061133A (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.)
Powerchip Semiconductor Manufacturing Corp
Original Assignee
Powerchip Semiconductor Manufacturing Corp
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
Priority claimed from TW108110441A external-priority patent/TWI690848B/zh
Application filed by Powerchip Semiconductor Manufacturing Corp filed Critical Powerchip Semiconductor Manufacturing Corp
Publication of JP2020061133A publication Critical patent/JP2020061133A/ja
Application granted granted Critical
Publication of JP6882398B2 publication Critical patent/JP6882398B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Description

本開示は、処理アーキテクチャに関し、特に、メモリプロセッサを用いた多重処理アーキテクチャ及びその動作方法に関する。
様々な種類の大きなデータセットのために、大量のデータ、及びニューラルネットワークコンピューテーション、イーサリウムマイニング作業又はゲノム配列決定等の集約コンピューテーションの特徴を有するアプリケーションが続々と開発されるにつれ、中央演算処理装置(CPU)の処理性能に対する要求が高くなっている。しかしながら、現行のプロセッサの計算速度は、内蔵キャッシュユニットの大きさ、低キャッシュヒット率、及びメモリアクセス時間の制限により、効果的に上げることができない。
このことを鑑みて、計算速度を上げる一般的な方法は、例えばフィールドプログラマブルゲートアレイ(FPGA)アーキテクチャ、特定用途向け集積回路(ASIC)アーキテクチャ、又は画像処理装置(GPU)アーキテクチャ等を利用することにより、高い計算複雑性をもって計算作業を共有及び実行することである。しかしながら、上述の方法は、メモリアクセス時間の制限を克服することができず、処理回路の数が増加するにつれ、エネルギー消費も増加してしまう。従って、大きなデータに対して集約コンピューテーションを迅速に実行できる処理アークテクチャをどのように設計するかについての解決策の実施の形態が、以下に提供される。
本開示は、大きなデータセットに対して多重処理を効果的に実行可能なメモリプロセッサを用いた多重処理アーキテクチャ及びその動作方法を提供する。
本開示のメモリプロセッサを用いた多重処理アーキテクチャは、主プロセッサと、複数のメモリチップと、を備える。主プロセッサは、データインデックス機構を備える。メモリチップは、主プロセッサに接続される。メモリチップは、複数の処理装置と、複数のデータ保存領域と、を備える。処理装置及びデータ保存領域は、それぞれ、メモリチップに一対一で配置される。データ保存領域は、大データセットの複数の副データセットを共有するように構成される。主プロセッサは、メモリチップの処理装置の1つに対して計算作業を割り当て、処理装置の1つは、対応するデータ保存領域にアクセスして、副データセットの一部に従って計算作業を実行する。
本開示の実施の形態では、主プロセッサは、データインデックス機構を備える。主プロセッサは、データインデックス機構に従って、メモリチップの処理装置の1つに対して計算作業を割り当てることを決定する。
本開示の実施の形態では、主プロセッサは、さらに、ジョブキューを備える。主プロセッサは、ジョブキュー及びデータインデックス機構に従って、メモリチップの処理装置の少なくとも1つに対して複数の計算作業を連続的に割り当てる。
本開示の実施の形態では、各処理装置は、タスクキューを備え、処理装置の1つが1つ以上の計算作業を連続的に受け取った場合、1つ以上の計算作業は、処理装置の1つのタスクキューに連続的に配列され、それにより、処理装置の1つは、タスクキューに従って、計算作業を連続的に実行する。
本開示の実施の形態では、処理装置の1つは、計算作業に対応する特定の副データセットが、対応するデータ保存領域中の副データセットの一部に存在するかを検索し、計算作業に対応する特定の副データセットを継続して実行する。
本開示の実施の形態では、処理装置の1つが計算作業に成功した場合、それに対応して、処理装置の1つは、計算結果を主プロセッサへと戻し、主プロセッサは、別の計算作業を割り当てる。
本開示の実施の形態では、処理装置の1つが計算作業に失敗した場合、処理装置の1つは、計算作業を主プロセッサへと戻し、主プロセッサは、いずれかの処理装置が計算作業に成功するまで、計算作業を別の処理装置へと割り当て続ける。
本開示の実施の形態では、主プロセッサは、第1のチャンネルを介して、メモリチップと時分割通信する。
本開示の実施の形態では、処理装置は、それぞれ、複数の第2のチャンネルを介して、データ保存領域に一対一でアクセスし、第2のチャンネルの帯域幅は、第1のチャンネルの帯域幅よりも大きい。
本開示の実施の形態では、メモリチップの数は、最も大きなデータセットのデータ容量に応じて決定される。
本開示の実施の形態では、主プロセッサは、無線通信、ピアトゥピア通信、又はスロットによって、他の複数のメモリチップに接続され、複数のメモリチップの1つ及び別の複数のメモリチップに対して、計算作業を選択的に割り当てる。
本開示の実施の形態では、処理装置及び対応するデータ保存領域は、それぞれ、同じチップ又は異なるチップに一対一で配置される。
本開示の実施の形態では、主プロセッサは、処理装置に対して同じ計算イベントの複数の計算作業を割り当て、処理装置は、割り当てに従って計算作業を実行する。
本開示の実施の形態では、主プロセッサは、処理装置に対して複数の計算イベントの複数の計算作業を同時に割り当て、処理装置は、計算イベントの計算作業を個別に実行する。
本開示の実施の形態では、各処理装置は、それぞれ、論理動作装置を備える。
本開示のメモリプロセッサを用いた多重処理アーキテクチャの動作方法は、以下のステップを含む。主プロセッサは、複数のメモリチップの複数の処理装置の1つに、計算作業を割り当てる。1つの処理装置は、対応する複数のデータ保存領域の1つにアクセスし、大きなデータセットの複数の副データセットの一部を捕捉する。処理装置の1つは、副データセットの一部に従って、計算作業を実行する。
本開示の実施の形態では、主プロセッサがメモリチップの処理装置の1つに計算作業を割り当てるステップは、主プロセッサが、データインデックス機構に従って、メモリチップの1つの処理装置に計算作業を割り当てることを含む。
本開示の実施の形態では、主プロセッサがメモリチップの処理装置の1つに計算作業を割り当てるステップは、さらに、主プロセッサが、ジョブキュー及びデータインデックス機構に従って、メモリチップ処理装置の少なくとも1つに複数の計算作業を連続的に割り当てることを含む。
本開示の実施の形態では、動作方法は、さらに、処理装置の1つが1つ以上の計算作業を連続的に受け取った場合、処理装置の1つのタスクキューに1つ以上の計算作業を連続的に配列して、処理装置の1つがタスクキューに従って計算作業を連続的に実行するようにすることを含む。
本開示の実施の形態では、処理装置の1つが副データセットの一部に従って計算作業を実行するステップは、処理装置の1つが、計算作業に対応する特定の副データセットが対応するデータ保存領域の副データセットの一部に存在するかを検索して、特定の副データセットに従って計算作業を継続して実行することを含む。
本開示の実施の形態では、処理装置の1つが副データセットの一部に従って計算作業を実行するステップは、処理装置の1つが計算作業に成功した場合、それに対応して、処理装置の1つが計算結果を主プロセッサへと戻し、主プロセッサが別の計算作業を割り当てることを続けるステップを含む。
本開示の実施の形態では、処理装置の1つが副データセットの一部に従って計算作業を実行するステップは、処理装置の1つが計算作業に失敗した場合、処理装置の1つが計算作業を主プロセッサへと戻し、主プロセッサがいずれかの処理装置が計算作業に成功するまで計算作業を別の処理装置へと割り当て続けることを含む。
本開示の実施の形態では、主プロセッサは、第1のチャンネルを介して、メモリチップと時分割通信する。
本開示の実施の形態では、処理装置は、それぞれ、複数の第2のチャンネルを介して、データ保存領域に一対一でアクセスし、第2のチャンネルの帯域幅は、第1のチャンネルの帯域幅よりも大きい。
本開示の実施の形態では、メモリチップの数は、最も大きなデータセットのデータ容量に応じて決定される。
本開示の実施の形態では、主プロセッサは、無線通信、ピアトゥピア通信、又はスロットによって、他の複数のメモリチップに接続され、複数のメモリチップの1つ及び別の複数のメモリチップに対して、計算作業を選択的に割り当てる。
本開示の実施の形態では、処理装置及び対応するデータ保存領域は、それぞれ、同じチップ又は異なるチップに一対一で配置される。
本開示の実施の形態では、主プロセッサは、処理装置に対して同じ計算イベントの複数の計算作業を割り当て、処理装置は、割り当てに従って計算作業を実行する。
本開示の実施の形態では、主プロセッサは、処理装置に対して複数の計算イベントの複数の計算作業を同時に割り当て、処理装置は、計算イベントの計算作業を個別に実行する。
本開示の実施の形態では、各処理装置は、それぞれ、論理動作装置を備える。
総括すると、本開示のメモリプロセッサを用いた多重処理アーキテクチャ及びその動作方法は、それぞれ、メモリチップの処理装置によって、対応する計算作業を実行可能であり、大きなデータセットの効率的な多重処理動作を達成する。
上述の本開示の特徴及び利点への理解を容易にするために、実施の形態が図面と共に以下に詳細に説明される。
付される図面は、本開示のさらなる理解のために供され、本明細書に組み込まれ、その一部を構成する。図面は、本開示の実施の形態を図示し、説明と共に、本開示の原理を解説する。
図1は、本開示の実施の形態に係る、多重処理アーキテクチャの機能ブロック図である。
図2は、本開示の実施の形態に係る、多重処理アーキテクチャの概略動作図である。
図3は、本開示の実施の形態に係る、多重処理アーキテクチャの動作方法のフローチャートである。
図4は、本開示の別の実施の形態に係る、多重処理アーキテクチャの動作方法のフローチャートである。
本開示への理解をより容易にするために、実施の形態が例として以下に説明される。さらに、同一の参照番号を付される要素/ステップは、図面及び実施の形態において、同一又は同様の部品を表す。
図1は、本開示の実施の形態に係る、多重処理アーキテクチャの機能ブロック図である。図1を参照すると、多重処理アーキテクチャ100は、主プロセッサ110と、複数のメモリチップ120_1〜120_Nとを備え、Nは1以上の整数である。本実施の形態において、主プロセッサ110は、第1のチャンネルC1を介してメモリチップ120_1〜120_Nと接続され、メモリチップ120_1〜120_Nと時分割通信する。メモリチップ120_1〜120_Nは、複数の処理装置121_1〜121_Nと、複数のデータ保存領域122_1〜122_Nとを備える。処理装置121_1〜121_N及びデータ保存領域122_1〜122_Nは、それぞれ、メモリチップ120_1〜120_Nに一対一で配置される。しかしながら、実施の形態において、処理装置121_1〜121_N及びデータ保存領域122_1〜122_Nは、それぞれ、異なるメモリチップに配置されてもよく、図1のアーキテクチャには限定されない。
処理装置121_1〜121_Nは、それぞれ、複数の第2のチャンネルC2_1〜C2_Nを介して、データ保存領域122_1〜122_Nに一対一でアクセスする。第1のチャンネルC1及び第2のチャンネルC2_1〜C2_Nは、メモリバスであってよく、各第2のチャンネルC2_1〜C2_Nの帯域幅は、第1のチャンネルC1の帯域幅よりも大きくてよい。本実施の形態において、各第2のチャンネルC2_1〜C2_Nの帯域幅は、1024ビットであってよいが、本開示はこれに限定されない。実施の形態において、第1のチャンネルC1及び第2のチャンネルC2_1〜C2_Nの帯域幅は、多重処理アーキテクチャ100のデータ通信要求又はデータ保存領域122_1〜122_Nのデータ保存形式に応じて設計されてもよい。換言すれば、本実施の形態の処理装置121_1〜121_Nは、同一のチャンネルを共有する必要はなく、より大きな帯域幅を有する専用の第2のチャンネルC2_1〜C2_Nを介して、データ読み取り動作を個別に実行してよい。
処理装置121_1〜121_Nは、論理制御装置、論理動作装置、及びキャッシュ装置等の回路要素によって形成されるメモリ(PIM)アーキテクチャにおいて処理を実行してよく、単純な数学計算又は複雑なプログラム計算を実行してよい。処理装置121_1〜121_Nは、それぞれ、メモリチップ120_1〜120_Nの周辺回路領域と一体化していてよく、それにより、データ保存領域122_1〜122_Nは、それぞれ、専用メモリの制御装置及び専用の第2のチャンネルC2_1〜C2_Nによって直接アクセスされる。さらに、処理装置121_1〜121_Nは、例えばニューラルネットワークコンピューテーション、イーサリウムマイニング作業又はゲノム配列決定等の特定のコンピューテーションを実行するために、事前に設計されてよいが、本開示はこれに限定されない。
さらに、実施の形態において、主プロセッサ110は、無線通信、ピアトゥピア通信、又はスロットによって、別の複数のメモリチップに接続されて、複数のメモリチップ120_1〜120_Nの1つ及び別の複数のメモリチップに対して、計算作業を選択的に割り当ててよい。換言すれば、この実施の形態の多重処理アーキテクチャは、計算対象を柔軟に増加させる特徴を備える。
データ保存領域122_1〜122_Nは、大データセットの複数の副データセットを共有するように構成される。さらに、本実施の形態の各メモリチップ120_1〜120_Nは、ダイナミックランダムアクセスメモリ(DRAM)チップ又はDRAMチップのアーキテクチャを用いたチップであってよいが、本開示はこれに限定されない。従って、各データ保存領域122_1〜122_Nは、複数のメモリバンクを備え、大データセットの副データセットは、メモリバンクに分散して保存される。実施の形態において、メモリチップ120_1〜120_Nの数は、大データセットのデータ容量に応じて決定される。
具体的には、主プロセッサ110は、メモリチップ120_1〜120_Nの処理装置121_1〜121_Nの1つに、計算イベントの計算作業を割り当て、計算作業を受け取った処理装置121_1〜121_Nの1つは、対応するデータ保存領域122_1〜122_Nの1つにアクセスし、対応するデータ保存領域122_1〜122_Nに保存された副データセットの一部を捕捉する。その間、計算作業を受け取った処理装置121_1〜121_Nの1つは、副データセットの一部に従って計算作業を実行する。従って、本実施の形態の多重処理アーキテクチャ100は、メモリチップに配置された各処理装置によって計算作業をそれぞれ実行することで、複数の計算作業を同時に実行する。その間、本実施の形態の各処理装置121_1〜121_Nは、計算作業に対応する特定の副データセットを迅速に捕捉してよい。
本実施の形態において、処理装置121_1〜121_Nは、同じ計算イベントを実行するように構成されてよく、従って、主プロセッサ110は、処理装置121_1〜121_Nに対して、同じ計算イベントの複数の計算作業を割り当てる。しかしながら、実施の形態において、主プロセッサ110は、メモリチップ120_1〜120_Nの1つの処理装置121_1〜121_Nに対して、複数の計算イベントの複数の計算作業を割り当ててもよく、それにより、処理装置121_1〜121_Nは、異なる計算イベントの異なる計算作業を個別に実行する。
図2は、本開示の実施の形態に係る、多重処理アーキテクチャの概略動作図である。図2を参照すると、多重処理アーキテクチャ200は、主プロセッサ210と、複数のメモリチップ220_1〜220_Nとを備える。メモリチップ220_1〜220_Nは、複数の処理装置221_1〜221_Nと、複数のデータ保存領域222_1〜222_Nと、を備える。処理装置221_1〜221_N及びデータ保存領域222_1〜222_Nは、それぞれ、メモリチップ220_1〜220_Nに一対一で配置される。多重処理アーキテクチャ200の各要素は、図1に示される多重処理アーキテクチャ100と同様に接続されてよい。
本実施の形態において、多重処理アーキテクチャ200は、さらに、ジョブキュー211と、データインデックス機構212と、を備える。データインデックス機構212は、ルックアップテーブル(LUT)であってよいが、本開示はこれに限定されない。処理装置221_1〜221_Nは、さらに、タスクキュー223_1〜223_Nを備える。具体的には、主プロセッサ210がジョブキュー211に従って計算作業を捕捉した場合、主プロセッサ210は、データインデックス機構212に従って、メモリチップ220_1〜220_Nの1つに対応するタスクキュー223_1〜223_Nの1つに対して、計算作業を割り当てることを決定し、処理装置221_1〜221_Nの1つは、対応するタスクキュー223_1〜223_Nに従って計算作業を実行する。その間、処理装置221_1〜221_Nの1つは、計算作業に対応する特定の副データセットが対応するデータ保存領域に保存されているかを検索する。
計算作業に対応する副データセットが対応するデータ保存領域に保存されている場合、処理装置221_1〜221_Nの1つは、計算作業に対応する副データセットに従って、計算作業を実行する。処理装置221_1〜221_Nの1つが計算作業に成功した場合、それに対応して、処理装置221_1〜221_Nの1つは、計算結果を主プロセッサ210へと戻し、主プロセッサ210は、別の計算作業を割り当てる。あるいは、計算作業が数回実行された後に、計算作業に対応する副データセットが対応するデータ保存領域に保存されていない場合、処理装置221_1〜221_Nの1つは、計算作業を主プロセッサ210へと戻し、主プロセッサは、いずれかの処理装置221_1〜221_Nが計算作業に成功するまで計算作業を別の処理装置221_1〜221_Nへと割り当て続ける。
さらに、実施の形態において、ジョブキュー211が複数の計算作業を含む場合、主プロセッサ210は、ジョブキュー211及びデータインデックス機構212に従って、メモリチップ220_1〜220_Nの処理装置221_1〜221_Nの少なくとも1つに対して、複数の計算作業を連続的に割り当てる。また、処理装置221_1〜221_Nの1つが1つ以上の計算作業を連続的に受け取った場合、処理装置221_1〜221_Nの1つのタスクキュー223_1〜223_Nに1つ以上の計算作業が連続的に配列され、処理装置221_1〜221_Nの1つは、対応するタスクキュー223_1〜223_Nに従って計算作業を連続的に実行する。
実施の形態において、本開示の多重処理アーキテクチャ200は、イーサリウムマイニング動作に適用され、大データセットの有効非巡回グラフ(DAG)ファイルを有する複数のファイルページは、データ保存領域222_1〜222_Nに分散して保存されている。従って、各データ保存領域222_1〜222_Nは、ファイルページの一部を含む。例えば、主プロセッサ210がジョブキュー211に応じてトランザクションナンスに対応する計算作業(例えばSHA3動作)を捕捉した場合、主プロセッサ210は、データインデックス機構212を検索して対応するハッシュコードを決定し、そのハッシュコードをデータ保存領域222_2に保存する。従って、主プロセッサ210は、メモリチップ220_2の処理装置221_2に対応するハッシュ機能作業(ルックアップテーブル動作)を割り当てる。そのため、処理装置221_2は、データ保存領域222_2を読み取って対応するハッシュ機能作業を実行し、(マイニングが成功したことを示す)対応するハッシュコードを取得し、処理装置221_2は、マイニング成功についての結果を主プロセッサ210へと戻し、対応する報酬(例えばイーサリウムコイン)を受け取る。
この例では、処理装置221_2がハッシュ機能作業に成功した場合、それに対応して、処理装置221_2は、マイニングが成功した結果を主プロセッサ210へと戻し、主プロセッサ210は、別のトランザクションナンスに従って、別のハッシュ機能作業を割り当てる。あるいは、処理装置221_2がデータ保存領域222_2中のハッシュコードを継続して捕捉することに失敗した場合、処理装置221_2は、ハッシュ機能作業を主プロセッサ210へと戻し、主プロセッサは、いずれかの処理装置221_1〜221_Nがハッシュ機能作業に成功するまでハッシュ機能作業を別の処理装置221_1〜221_Nへと割り当て続ける。
その間、この例では、ジョブキュー211が複数のトランザクションナンスに対応する複数のハッシュ機能作業を含む場合、主プロセッサ210は、ジョブキュー211及びデータインデックス機構212に従って、メモリチップ220_1〜220_Nの処理装置221_1〜221_Nの少なくとも1つに対して、ハッシュ機能作業を連続的に割り当てる。また、処理装置221_1〜221_Nの1つが1つ以上のハッシュ機能作業を連続的に受け取った場合、処理装置221_1〜221_Nの1つがタスクキュー223_1〜223_Nに1つ以上のハッシュ機能作業が連続的に配列され、処理装置221_1〜221_Nの1つは、対応するタスクキュー223_1〜223_Nに従ってハッシュ機能作業を連続的に実行する。
換言すれば、この例では、各処理装置221_1〜221_Nは、各対応するタスクキュー223_1〜223_Nに従って、主プロセッサ210によって割り当てられる1つ以上のハッシュ機能作業を連続して実行してよく、各処理装置211_1〜211_Nは、データ読み取り動作(例えばルックアップテーブル動作)を迅速に実行してよい。従って、各処理装置221_1〜221_Nは、複数のイーサリウムマイニング動作を同時に実行して、マイニングの成功のスピードを上げることができる。換言すれば、本実施の形態の多重処理アーキテクチャは、処理装置211_1〜211_Nの多重の処理動作によって、最大並行度の処理性能を達成できる。
図3は、本開示の実施の形態に係る、多重処理アーキテクチャの動作方法のフローチャートである。図3を参照すると、図3に描かれる多重処理アーキテクチャの動作方法は、少なくとも、図2に描かれる多重処理アーキテクチャに適用されてよい。ステップS310において、主プロセッサ210は、ジョブキュー211及びデータインデックス機構212に従って、メモリチップ220_1〜220_Nの処理装置221_1〜221_N1つに計算作業を連続的に割り当てる。ステップS320において、割り当てられた処理装置221_1〜221_Nの1つは、計算作業を実行する。ステップS330において、割り当てられた処理装置221_1〜221_Nの1つは、計算作業が成功したかを判定する。計算作業に失敗した場合、ステップS340において、割り当てられた処理装置221_1〜221_Nの1つは、計算作業を主プロセッサ210へと戻し、主プロセッサは、計算作業を別の処理装置221_1〜221_Nへと再度割り当てる。ステップS330及び340は、いずれかの処理装置221_1〜221_Nが計算作業に成功するまで、繰り返し実行される。
あるいは、計算作業に成功した場合、ステップS350において、割り当てられた処理装置221_1〜221_Nの1つは、計算結果を主プロセッサ210へと戻し、主プロセッサ210は、ジョブキュー211の複数の計算作業が全て割り当てられた又は完了したかを判定する。全ての計算作業が割り当てられていない又は完了していない場合、主プロセッサ210は、ステップS310を再実行して、次の計算作業を割り当て続ける。全ての計算作業が割り当てられている又は完了している場合、主プロセッサ210は、作業割当動作を終了する。同様に、主プロセッサ210は、ジョブキュー211に従って、処理装置221_1〜221_Nに対して、複数の計算作業を割り当ててよく、ステップS310からS350の全てが各計算作業に対して実行される。従って、本実施の形態の多重処理アーキテクチャの動作方法は、多重処理を効果的に実行し、計算作業を迅速に完了することができる。
また、本実施の形態の多重処理アーキテクチャ200の他の回路要素についての特徴、技術説明、又は実装方法に関する十分な教示、提案、及び実装の説明は、図1及び図2に描かれる実施の形態に関する説明を参照して推察可能であり、ここでは繰り返されない。
図4は、本開示の別の実施の形態に係る、多重処理アーキテクチャの動作方法のフローチャートである。図4を参照すると、図4に描かれる多重処理アーキテクチャの動作方法は、少なくとも、図1に描かれる多重処理アーキテクチャに適用されてよい。ステップS410において、主プロセッサ110は、メモリチップ120_1〜120_Nの1つの処理装置121_1〜121_Nに、計算作業を割り当てる。ステップS420において、それに対応して、1つの処理装置121_1〜121_Nは、1つのデータ保存領域122_1〜122_Nにアクセスし、大データセットの複数の副データセットの一部を捕捉する。ステップ430において、1つの処理装置121_1〜121_Nは、副データセットの一部に従って、計算作業を実行する。従って、本実施の形態の多重処理アーキテクチャに動作方法は、メモリ内処理(PIM)を効果的及び迅速に実行できる。
また、本実施の形態の多重処理アーキテクチャ100の他の回路要素についての特徴、技術説明、又は実装方法に関する十分な教示、提案、及び実装の説明は、図1乃至図3に描かれる実施の形態に関する説明を参照して推察可能であり、ここでは繰り返されない。
上述に基づくと、本開示によって提供されるメモリプロセッサを用いた多重処理アーキテクチャ及びその動作方法は、メモリチップの処理装置によって対応する計算作業を実行すること、及び専用のバスを介して対応するデータ保存領域のデータを読み取ることが可能である。さらに、本開示の多重処理アーキテクチャのメモリチップの数は、大データセットのデータ容量に応じて及び任意に増やしてもよい。メモリチップの数を増やすことにより、本開示の多重処理アーキテクチャの計算能力も同様に強化される。従って、本開示によって提供されるメモリプロセッサを用いた多重処理アーキテクチャ及びその動作方法は、多重処理動作を効果的に達成し、大データセットコンピューテーションを迅速に実行することができる。さらに、本開示の多重処理アーキテクチャは、拡張可能性及び大規模化可能性の特徴を有する。
当業者にとって、本開示の要旨及び範囲から逸脱することなく、本開示の実施の形態の構造に対して様々な変形及び変更を行うことができる点が容易に理解される。上述を踏まえて、開示の特許権保護の範囲は、本開示の変形例及び変更例を含み、特許請求の範囲及びそれと均等な領域を基準として定められる。
本開示のメモリプロセッサを用いた多重処理アーキテクチャ及びメモリプロセッサを用いた多重処理アーキテクチャの動作方法は、メモリ装置及びその動作方法に適用可能である。
100、200 多重処理アーキテクチャ
110、210 主プロセッサ
120_1〜120_N、220_1〜220_N メモリチップ
121_1〜121_N、221_1〜221_N 処理装置
122_1〜122_N、222_1〜222_N データ保存領域
211 ジョブキュー
212 データインデックス機構
223_1〜223_N タスクキュー
C1 第1のチャンネル
C2_1〜C2_N 第2のチャンネル
S310、S320、S330、S340、S350、S410、S420、S430 ステップ

Claims (28)

  1. データインデックス機構を備える主プロセッサと、
    前記主プロセッサに接続され、複数の処理装置及び複数のデータ保存領域を備える複数のメモリチップであって、前記処理装置及び前記データ保存領域は、それぞれ、前記メモリチップに一対一で配置され、前記データ保存領域は、データセットの複数の副データセットを共有するように構成される、メモリチップと、を備え、
    前記主プロセッサは、前記メモリチップの前記処理装置の1つに対して、計算作業を割り当て、前記処理装置の1つは、対応する前記データ保存領域にアクセスして、前記副データセットの一部に従って計算作業を実行し、
    前記処理装置の前記1つが前記計算作業に失敗した場合、前記処理装置の前記1つは、前記計算作業を前記主プロセッサへと戻し、前記主プロセッサは、いずれかの前記処理装置の1つが前記計算作業に成功するまで、前記計算作業を別の前記処理装置へと割り当て続ける、
    メモリプロセッサを用いた多重処理システム
  2. 前記主プロセッサは、前記データインデックス機構を備え、前記主プロセッサは、前記データインデックス機構に従って、前記メモリチップの前記処理装置の前記1つに対して前記計算作業を割り当てることを決定する、
    請求項1の多重処理システム
  3. 前記主プロセッサは、さらに、ジョブキューを備え、主プロセッサは、前記ジョブキュー及び前記データインデックス機構に従って、前記メモリチップの前記処理装置の少なくとも1つに対して、複数の計算作業を連続的に割り当てる、
    請求項2の多重処理システム
  4. 各前記処理装置は、タスクキューを備え、前記処理装置の前記1つが1つ以上の計算作業を連続的に受け取った場合、前記1つ以上の計算作業は、前記処理装置の前記1つの前記タスクキューに連続的に配列され、それにより、前記処理装置の前記1つは、前記タスクキューに従って、前記計算作業を連続的に実行する、
    請求項3の多重処理システム
  5. 前記処理装置の前記1つは、前記計算作業に対応する特定の副データセットが、対応する前記データ保存領域中の前記副データセットの一部に存在するかを検索し、前記計算作業に対応する前記特定の副データセットを継続して実行する、
    請求項1乃至4のいずれかの多重処理システム
  6. 前記処理装置の前記1つが前記計算作業に成功した場合、それに対応して、前記処理装置の前記1つは、計算結果を前記主プロセッサへと戻し、前記主プロセッサは、別の計算作業を継続して割り当てる、
    請求項1乃至5のいずれかの多重処理システム
  7. 前記主プロセッサは、第1のチャンネルを介して、前記メモリチップと時分割通信する、
    請求項1乃至6のいずれかの多重処理システム
  8. 前記処理装置は、それぞれ、複数の第2のチャンネルを介して、前記データ保存領域に一対一でアクセスし、前記第2のチャンネルの帯域幅は、前記第1のチャンネルの帯域幅よりも大きい、
    請求項の多重処理システム
  9. 前記メモリチップの数は、前記データセットのデータ容量に応じて決定される、
    請求項1乃至のいずれかの多重処理システム
  10. 前記主プロセッサは、無線通信、ピアトゥピア通信、又はスロットによって、別の複数のメモリチップに接続され、前記複数のメモリチップの1つ及び別の複数のメモリチップに対して、前記計算作業を選択的に割り当てる、
    請求項1乃至9のいずれかの多重処理システム
  11. 前記処理装置及び対応する前記データ保存領域は、それぞれ、同じメモリチップ又は異なるメモリチップに一対一で配置される、
    請求項1乃至10のいずれかの多重処理システム
  12. 前記主プロセッサは、前記処理装置に対して、同じ計算イベントの複数の計算作業を割り当て、前記処理装置は、割り当てに従って前記計算作業を実行する、
    請求項1乃至11のいずれかの多重処理システム
  13. 前記主プロセッサは、前記処理装置に対して、複数の計算イベントの複数の計算作業を同時に割り当て、前記処理装置は、前記計算イベントの前記計算作業を個別に実行する、
    請求項1乃至12のいずれかの多重処理システム
  14. 前記各処理装置は、それぞれ、論理動作装置を備える、請求項1乃至13のいずれかの多重処理システム
  15. 主プロセッサによって、複数のメモリチップの複数の処理装置の1つに対して、計算作業を割り当て、
    前記処理装置の1つによって、対応して、複数のデータ保存領域の1つにアクセスして、データセットの複数の副データセットの一部を捕捉し、
    前記処理装置の1つによって、前記副データセットの一部に従って、計算作業を実行し、
    前記処理装置の1つによって前記副データセットの一部に従って前記計算作業を実行することは、
    前記処理装置の前記1つが前記計算作業に失敗した場合、前記処理装置の前記1つによって、前記計算作業を前記主プロセッサへと戻し、
    前記主プロセッサは、いずれかの前記処理装置の1つが前記計算作業に成功するまで、前記計算作業を別の前記処理装置へと割り当て続ける、
    メモリプロセッサを用いた多重処理アーキテクチャの動作方法。
  16. 前記主プロセッサによって前記メモリチップの前記処理装置の前記1つに対して前記計算作業を割り当てることは、
    前記主プロセッサによって、データインデックス機構に従って、前記メモリチップの前記処理装置の前記1つに対して前記計算作業を割り当てることを決定することを含む、
    請求項15の多重処理アーキテクチャの動作方法。
  17. 前記主プロセッサによって前記メモリチップの前記処理装置の前記1つに対して前記計算作業を割り当てることは、
    ジョブキュー及び前記データインデックス機構に従って、前記メモリチップの前記処理装置の少なくとも1つに対して、複数の計算作業を連続的に割り当てることを含む、
    請求項16の多重処理アーキテクチャの動作方法。
  18. さらに、前記処理装置の前記1つが1つ以上の計算作業を連続的に受け取った場合、前記1つ以上の計算作業は、前記処理装置のタスクキューに連続的に配列され、
    それにより、前記処理装置の前記1つは、前記タスクキューに従って、前記計算作業を連続的に実行する、
    請求項17の多重処理アーキテクチャの動作方法。
  19. 前記処理装置の1つによって前記副データセットの一部に従って前記計算作業を実行することは、
    前記処理装置の前記1つによって、前記計算作業に対応する特定の副データセットが、
    対応する前記データ保存領域中の前記副データセットの一部に存在するかを検索し、前記計算作業に対応する前記特定の副データセットを継続して実行することを含む、
    請求項15乃至18のいずれかの多重処理アーキテクチャの動作方法。
  20. 前記処理装置の1つによって前記副データセットの一部に従って前記計算作業を実行することは、
    前記処理装置の前記1つが前記計算作業に成功した場合、それに対応して、前記処理装置の前記1つによって、計算結果を前記主プロセッサへと戻し、前記主プロセッサは、別の計算作業を継続して割り当てることを含む、
    請求項15乃至19のいずれかの多重処理アーキテクチャ動作方法。
  21. 前記主プロセッサは、第1のチャンネルを介して、前記メモリチップと時分割通信する、
    請求項15乃至20のいずれかの多重処理アーキテクチャの動作方法。
  22. 前記処理装置は、それぞれ、複数の第2のチャンネルを介して、前記データ保存領域に一対一でアクセスし、前記第2のチャンネルの帯域幅は、前記第1のチャンネルの帯域幅よりも大きい、
    請求項21の多重処理アーキテクチャの動作方法。
  23. 前記メモリチップの数は、前記データセットのデータ容量に応じて決定される、
    請求項15乃至22のいずれかの多重処理アーキテクチャの動作方法。
  24. 前記主プロセッサは、無線通信、ピアトゥピア通信、又はスロットによって、別の複数のメモリチップに接続され、前記複数のメモリチップの1つ及び別の複数のメモリチップに対して、前記計算作業を選択的に割り当てる、
    請求項15乃至23のいずれかの多重処理アーキテクチャの動作方法。
  25. 前記処理装置及び対応する前記データ保存領域は、それぞれ、同じメモリチップ又は異なるメモリチップに一対一で配置される、
    請求項15乃至24のいずれかの多重処理アーキテクチャの動作方法。
  26. 前記主プロセッサは、前記処理装置に対して、同じ計算イベントの複数の計算作業を割り当て、前記処理装置は、割り当てに従って前記計算作業を実行する、
    請求項15乃至25のいずれかの多重処理アーキテクチャの動作方法。
  27. 前記主プロセッサは、前記処理装置に対して、複数の計算イベントの複数の計算作業を同時に割り当て、前記処理装置は、前記計算イベントの前記計算作業を個別に実行する、
    請求項15乃至26のいずれかの多重処理アーキテクチャの動作方法。
  28. 前記各処理装置は、それぞれ、論理動作装置を備える、請求項15乃至27のいずれかの多重処理アーキテクチャの動作方法
JP2019167463A 2018-10-11 2019-09-13 メモリプロセッサを用いた多重処理システム及びその動作方法 Active JP6882398B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862744140P 2018-10-11 2018-10-11
US62/744,140 2018-10-11
TW108110441 2019-03-26
TW108110441A TWI690848B (zh) 2018-10-11 2019-03-26 基於記憶體處理器的多處理架構及其操作方法

Publications (2)

Publication Number Publication Date
JP2020061133A JP2020061133A (ja) 2020-04-16
JP6882398B2 true JP6882398B2 (ja) 2021-06-02

Family

ID=70160745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019167463A Active JP6882398B2 (ja) 2018-10-11 2019-09-13 メモリプロセッサを用いた多重処理システム及びその動作方法

Country Status (2)

Country Link
US (1) US11436046B2 (ja)
JP (1) JP6882398B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7069455B2 (ja) * 2019-04-26 2022-05-18 株式会社アクセル 情報処理装置
KR20220077484A (ko) * 2020-12-02 2022-06-09 삼성전자주식회사 능동적 스케줄링 방법과 컴퓨팅 장치
CN116483013B (zh) * 2023-06-19 2023-09-05 成都实时技术股份有限公司 一种基于多通道采集器的高速信号采集系统及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031480A (ja) 2004-07-16 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP5084310B2 (ja) * 2007-03-16 2012-11-28 日本電気株式会社 複数プロセッサに分散されたデータを再配置可能なデータベースサーバ、再配置方法、およびプログラム
US8418181B1 (en) * 2009-06-02 2013-04-09 Amazon Technologies, Inc. Managing program execution based on data storage location
US8769541B2 (en) * 2009-12-31 2014-07-01 Facebook, Inc. Load balancing web service by rejecting connections
KR20150017526A (ko) * 2013-08-07 2015-02-17 삼성전자주식회사 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법
US9396795B1 (en) 2014-12-30 2016-07-19 The Regents Of The University Of Michigan Storage device supporting logical operations, methods and storage medium
US9983996B2 (en) * 2015-12-10 2018-05-29 Intel Corporation Technologies for managing cache memory in a distributed shared memory compute system
US20180115496A1 (en) 2016-10-21 2018-04-26 Advanced Micro Devices, Inc. Mechanisms to improve data locality for distributed gpus
US10073733B1 (en) 2017-09-01 2018-09-11 Purdue Research Foundation System and method for in-memory computing
US20190163493A1 (en) * 2017-11-30 2019-05-30 Western Digital Technologies, Inc. Methods, systems and devices for recovering from corruptions in data processing units
US10880071B2 (en) * 2018-02-23 2020-12-29 Samsung Electronics Co., Ltd. Programmable blockchain solid state drive and switch
CN108549696B (zh) 2018-04-16 2022-02-01 安徽工业大学 一种基于内存计算的时间序列数据相似性查询方法

Also Published As

Publication number Publication date
US11436046B2 (en) 2022-09-06
US20200117505A1 (en) 2020-04-16
JP2020061133A (ja) 2020-04-16

Similar Documents

Publication Publication Date Title
JP6882398B2 (ja) メモリプロセッサを用いた多重処理システム及びその動作方法
US8082400B1 (en) Partitioning a memory pool among plural computing nodes
JP2020529684A (ja) 低レイテンシ動作をサポートするssdアーキテクチャ
US20160092109A1 (en) Performance of de-clustered disk array
US11042412B2 (en) Memory allocation method and server
CN103218208A (zh) 用于实施成形的存储器访问操作的系统和方法
KR102635453B1 (ko) Gpu를 위한 피드백 기반 분할 작업 그룹 디스패치
US20210191765A1 (en) Method for static scheduling of artificial neural networks for a processor
CN103197916A (zh) 用于源操作数收集器高速缓存的方法和装置
JP3910573B2 (ja) 連続したメモリ・アドレスを提供する方法、システムおよびコンピュータ・ソフトウェア
CN103365631A (zh) 用于存储器访问的动态库模式寻址
CN102346682A (zh) 信息处理装置及信息处理方法
US9600187B2 (en) Virtual grouping of memory
KR20140013010A (ko) 메모리 셀들을 액세스하는 방법들, 메모리 요청들을 분배하는 방법, 시스템들, 및 메모리 제어기들
CN111158868A (zh) 计算系统及用于操作计算系统的方法
CN111045979B (zh) 基于存储器处理器的多处理架构及其操作方法
US20100153678A1 (en) Memory management apparatus and method
CN116401043A (zh) 一种计算任务的执行方法和相关设备
US8881163B2 (en) Kernel processor grouping
US20220276966A1 (en) Data processors
Morari et al. Efficient sorting on the tilera manycore architecture
Daoud et al. Processor allocation algorithm based on frame combing with memorization for 2d mesh cmps
US10488911B2 (en) Method and computing system of allocating registers
CN116483536B (zh) 数据调度方法、计算芯片及电子设备
Parsons Initial benchmarking of the Intel 3D-stacked MCDRAM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210127

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: 20210413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210506

R150 Certificate of patent or registration of utility model

Ref document number: 6882398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150