JPWO2020090009A1 - 演算処理装置及びその制御方法 - Google Patents

演算処理装置及びその制御方法 Download PDF

Info

Publication number
JPWO2020090009A1
JPWO2020090009A1 JP2020554648A JP2020554648A JPWO2020090009A1 JP WO2020090009 A1 JPWO2020090009 A1 JP WO2020090009A1 JP 2020554648 A JP2020554648 A JP 2020554648A JP 2020554648 A JP2020554648 A JP 2020554648A JP WO2020090009 A1 JPWO2020090009 A1 JP WO2020090009A1
Authority
JP
Japan
Prior art keywords
arithmetic processing
chain group
read
identifier
target
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
Application number
JP2020554648A
Other languages
English (en)
Other versions
JP7036226B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2020090009A1 publication Critical patent/JPWO2020090009A1/ja
Application granted granted Critical
Publication of JP7036226B2 publication Critical patent/JP7036226B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

それぞれ第1〜第3演算処理の対象である第1〜第3チェーン群において、第1演算処理後に連続して第2演算処理が実行される関係の、第1チェーン群を第1被判定チェーン群とし、第1演算処理後に、1以上の第3演算処理が実行された後に第2演算処理が実行される関係の、第1チェーン群に対して第3チェーン群を一定方式で計算したものを第2被判定チェーン群とし、第1又は第2被判定チェーン群が、第2演算処理の対象である第2チェーン群を包含するかを判定する判定回路(1221)と、第1及び第2被判定チェーン群が第2チェーン群を包含しない場合に、第2演算処理の識別子の初期化指示を生成する生成回路(1222)と、初期化指示が発行された場合に第2演算処理に対して初期化した識別子を獲得する一方、初期化指示が発行されなかった場合に第2演算処理に対して第1演算処理の識別子に連続する識別子を獲得する獲得回路(322)と、を備える。

Description

本発明は、演算処理装置及びその制御方法に関する。
主記憶装置及びMemory Access Controller(MAC)とコアのレジスタファイルとが1対多で結合されたマルチコア演算装置が存在する。
マルチコアアーキテクチャでは、各コアにレジスタファイルと演算実行部とが設けられ、指示部がメモリのデータ読み出し/書き込み(別言すれば、ロード/ストア)や演算実行等の命令をデコードし、各読み書き部が命令を発行する。
特開2001−175632号公報 特表2008−509493号公報
マルチコア演算装置の性能は、メモリデータ転送のスループットの大きさに依存する。しかしながら、先行するマルチキャストロード命令のメモリリードコンプリーション受信まで後続のマルチキャストロード命令の処理を待つ制御が行なわれる場合には、メモリデータのスループットが低下するおそれがある。
1つの側面では、本明細書に記載する技術は、マルチコアアーキテクチャにおいて、チェーン間の待ち合わせ時間を低減することにより、メモリデータのスループットを向上することを目的とする。
1つの側面において、演算処理装置は、複数のチェーンを構成するマルチコアを有する演算処理装置であって、前記複数のチェーンのうち第1の演算処理の対象である第1のチェーン群と、前記複数のチェーンのうち第2の演算処理の対象である第2のチェーン群と、前記複数のチェーンのうち第3の演算処理の対象である第3のチェーン群とにおいて、前記第1の演算処理の後に連続して前記第2の演算処理が実行される関係の、第1のチェーン群を第1の被判定チェーン群とし、前記第1の演算処理の後に、少なくとも1つ以上の第3の演算処理が実行された後に前記第2の演算処理が実行される関係の、第1のチェーン群に対して第3のチェーン群を一定の方式で計算を実施したものを第2の被判定チェーン群とし、前記複数のチェーンのうち前記第1又は第2の被判定チェーン群が、前記第2の演算処理の対象である前記第2のチェーン群を包含するかを判定する判定回路と、前記第1及び第2の被判定チェーン群のいずれもが前記第2のチェーン群を包含しない場合に、前記第2の演算処理の識別子を初期化する初期化指示を生成する生成回路と、前記初期化指示が発行された場合に前記第2の演算処理に対して初期化した識別子を獲得する一方、前記初期化指示が発行されなかった場合に前記第2の演算処理に対して前記第1の演算処理の識別子に連続する識別子を獲得する獲得回路と、を備える。
開示の演算処理装置によれば、マルチコアアーキテクチャにおいて、チェーン間の待ち合わせ時間を低減することにより、メモリデータのスループットを向上することができる。
関連例におけるアクセラレータの構成例を模式的に示すブロック図である。 関連例におけるアクセラレータの構成例およびメモリアクセス処理を説明するブロック図である。 図2に示したアクセラレータの書き込み部におけるメモリアクセス処理を説明するブロック図である。 図2に示したアクセラレータにおけるメモリアクセス処理を説明するフローチャートである。 図2に示したアクセラレータにおけるメモリアクセス処理を説明するフローチャートである。 図2に示したアクセラレータの読み書き部におけるマルチキャスト用REQIDの初期化処理を説明するフローチャートである。 図2に示したアクセラレータの指示部におけるロード命令の発行処理を説明するフローチャートである。 図2に示したアクセラレータの読み書き部におけるREQIDの獲得処理を説明するフローチャートである。 図2に示した関連例におけるマルチキャストロード処理におけるREQIDの使用状況を例示するテーブルである。 実施例における情報処理装置のハードウェア構成例を模式的に示すブロック図である。 図10に示したアクセラレータの構成例を模式的に示すブロック図である。 図11に示したアクセラレータにおけるリクエストパケットのフォーマットを示す図である。 図11に示したアクセラレータにおけるコンプリーションパケットのフォーマットを示す図である。 図11に示したアクセラレータにおけるメモリアクセス処理を説明するブロック図である。 図12に示したアクセラレータのマルチキャスト用REQIDの同期監視回路の構成例を示す図である。 図12に示したアクセラレータのマルチキャスト用REQIDの初期化信号生成回路の構成例を示す図である。 図12に示したアクセラレータのマルチキャスト用獲得回路の構成例を示す図である。 図11に示したアクセラレータの指示部におけるREQID初期化命令の発行処理を説明するフローチャートである。 図11に示したアクセラレータの読み書き部におけるREQIDの初期化処理を説明するフローチャートである。 図11に示したアクセラレータの指示部におけるロード命令の発行処理を説明するフローチャートである。 図11に示したアクセラレータの読み書き部におけるREQIDの獲得処理を説明するフローチャートである。 図11に示した実施例におけるマルチキャストロード処理におけるREQIDの使用状況を例示するテーブルである。
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。本実施形態は、その趣旨を逸脱しない範囲で種々変形して実施することができる。
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
以下、図中において、同一の符号を付した部分は同様の部分を示している。
〔A〕関連例
図1は、関連例におけるアクセラレータ600の構成例を模式的に示すブロック図である。
アクセラレータ600は、演算命令を処理し、MAC6,メモリ7及び複数(図示する例では、3つ)のコア8(「コア#0〜#2」)を備える。
MAC6は、各コア8によるメモリ7に対するアクセスを処理する。
メモリ7は、一次記録メモリあるいはワーキングメモリとして利用されてよい。
各コア8は、MAC6を介して、メモリ7に対するロード及びストアを実行する。各コア8は、指示部81,読み書き部82及び演算実行部83として機能すると共に、レジスタファイル84を記憶する。
レジスタファイル84は、メモリ7から取得されたデータを記憶する。演算実行部83は、レジスタファイル84に記憶されたデータを用いて演算を行なう。
指示部81は、ソフトウェアから送られたロード命令をデコードし、読み書き部82にロード命令の実行を指示する。
読み書き部82は、ロード命令をメモリアクセス単位に分割し、分割した各ロード命令にリクエストID(「REQID」と称されてもよい。)を載せてメモリリードリクエストをMAC6へ発行する。
図2は、図1とは異なる、アクセラレータ600におけるメモリアクセス処理を説明するブロック図であり、指示部81及び読み書き部82が各コアから独立して設けられる。図3は、図2に示したアクセラレータ600の読み書き部82におけるメモリアクセス処理を説明するブロック図である。
以下、図2及び図3を参照しながら、メモリアクセス処理を説明する。
指示部81は、ソフトウェアからの命令をデコードする(図2及び図3の符号A1参照)。
指示部81は、全対象チェーンの読み書き部82に、マルチキャストロード命令を発行する(図2及び図3の符号A2参照)。この際、指示部81は、全対象チェーンの読み書き部82に対象チェーンを通知する。
各読み書き部82の命令分割回路821における決定回路822は、対象命令が複数であるロード命令を受信したことにより、マルチキャストロード命令が発行されたと判断する。そして、命令分割回路821は、ロード命令を256バイト毎に分割する(図2及び図3の符号A3参照)。
読み書き部82のREQID管理回路823は、ユニキャスト用獲得回路824,マルチキャスト用獲得回路825及び獲得待ちバッファ826を備える。マルチキャスト用獲得回路825は、分割されたロード命令毎にREQIDとデータバッファ領域とを獲得する(図2及び図3の符号A4参照)。ここで、マルチキャスト用獲得回路825は、分割された1つ目のリクエストに対して、REQID=0を取得する。マルチキャスト用獲得回路825は、REQID=0が使用中の場合には、REQID=0が解放されるまで待機する。以降、マルチキャスト用獲得回路825は、REQIDが連番となるようにREQIDを取得する。
各読み書き部82は、メモリリードリクエスト発行担当の読み書き部82における獲得待ちバッファ826に対して、獲得したREQIDを通知する(図2及び図3の符号A5参照)。これにより、メモリリードリクエスト発行担当の読み書き部82は、各読み書き部82において獲得されたREQIDが統一されたことを認識できる。
メモリリードリクエスト発行担当の読み書き部82におけるメモリリクエスト生成回路827は、全ての対象チェーンの読み書き部82から獲得したREQIDを通知された後、MAC6のポート61における受信バッファ611に対して、メモリリードリクエストを発行する(図2及び図3の符号A6参照)。この際、dstフィールドにおいて、対象チェーンがビットマップによって指定される。
全ての対象チェーンの読み書き部82は、メモリリードリクエストの応答として、MAC6のポート61における送信バッファ612からメモリリードコンプリーションを受信し、付随するメモリリードデータをデータバッファ829に格納する(図2及び図3の符号A7)。
各読み書き部82のレジスタ制御リクエスト生成回路828は、データバッファ829からメモリリードデータを読み出し、コア8のレジスタファイル84へのライトリクエストと共に読み台したメモリリードデータを転送する(図2及び図3の符号A8参照)。
上述した符号A4〜A8によって示した処理は、分割された全てのリクエストに対して繰り返し実行される。
各読み書き部82は、符号A2において示したマルチキャストロード命令に対応する完了通知を指示部81に対して発行する(図2及び図3の符号A9参照)。
指示部81は、全ての対象チェーンの読み書き部82から完了通知を受け取り、命令の完了を認識する(図2及び図3の符号A10参照)。
上述した関連例におけるアクセラレータ600におけるメモリアクセス処理を図4及び図5におけるフローチャート(ステップS1〜S19)を参照しながら説明する。
図4において、指示部81は、命令をデコードして、対象チェーンの読み書き部82に命令を発行する(ステップS1)。
対象チェーンの読み書き部82は、対象チェーンが複数あるかを判定する(ステップS2)。
対象チェーンが複数ない場合には(ステップS2のNoルート参照)、ユニキャスト動作が実施される。
一方、対象チェーンが複数ある場合には(ステップS2のYesルート参照)、読み書き部82は、マルチキャスト用獲得回路825により、獲得したいREQIDが空いているかを判定する(ステップS3)。
獲得したいREQIDが空いていない場合には(ステップS3のNoルート参照)、ステップS3における処理が繰り返し実施される。
一方、獲得したいREQIDが空いている場合には(ステップS3のYesルート参照)、読み書き部82は、リクエスト担当の読み書き部82にREQIDが獲得できたことを通知する(ステップS4)。
読み書き部82は、自身がリクエスト担当の読み書き部82であるかを判定する(ステップS5)。
自身がリクエスト担当の読み書き部82でない場合には(ステップS5のNoルート参照)、処理はステップS9へ進む。
一方、自身がリクエスト担当の読み書き部82である場合には(ステップS5のYesルート参照)、読み書き部82は、全ての対象チェーンからREQIDの獲得通知が発行されたかを判定する(ステップS6)。
REQIDの獲得通知が発行されていない対象チェーンがある場合には(ステップS6のNoルート参照)、ステップS6における処理が繰り返し実施される。
一方、全ての対象チェーンからREQIDの獲得通知が発行された場合には(ステップS6のYesルート参照)、読み書き部82は、MAC6のポート61において受信バッファ611に空きがあるかを判定する(ステップS7)。
受信バッファ611に空きがない場合には(ステップS7のNoルート参照)、ステップS7における処理が繰り返し実施される。
一方、受信バッファ611に空きがある場合には(ステップS7のYesルート参照)、読み書き部82は、MAC6にマルチキャストリードリクエストを発行する(ステップS8)。ここで、マルチキャストリードの宛先は、全ての対象チェーンに設定される。
MAC6における処理は、図5のステップS11以降に示す。
読み書き部82は、分割した全てのリードリクエストを発行したかを判定する(ステップS9)。発行していないリードリクエストがある場合には(ステップS9のNoルート参照)、処理はステップS3へ戻る。
一方、分割した全てのリードリクエストを発行した場合には(ステップS9のYesルート参照)、読み書き部82は、指示部81からの後続の命令に対応するリクエストを発行する(ステップS10)。そして、処理は、ステップS2へ戻る。
図5において、MAC6は、マルチキャストリードリクエストを受信する(ステップS11)。
MAC6は、メモリリードを行なう(ステップS12)。
MAC6は、dstフィールドの読み書き部82に対して、リードデータを付加したコンプリーションを発行する(ステップS13)。
読み書き部82は、MAC6からコンプリーションを受信する(ステップS14)。
読み書き部82は、各コア8に対し、リードデータを付加したレジスタライトリクエストを発行する(ステップS15)。
読み書き部82は、REQID及びデータバッファ829を解放する(ステップS16)。
読み書き部82は、分割したリードリクエストに対応する、全てのレジスタライトリクエストを発行したか判定する(ステップS17)。
発行していないレジスタライトリクエストがある場合には(ステップS17のNoルート参照)、処理はステップS14へ戻る。
一方、全てのレジスタライトリクエストを発行した場合には(ステップS17のYesルート参照)、読み書き部82は、指示部81に自チェーンにおける命令の完了を通知する(ステップS18)。
指示部81は、全ての対象チェーンの読み書き部82から命令完了の通知を受信したかを判定する(ステップS19)。
命令完了の通知を受信していない対象チェーンがある場合には(ステップS19のNoルート参照)、ステップS19における処理が繰り返し実行される。
一方、全ての対象チェーンの読み書き部82から命令完了の通知を受信した場合には(ステップS19のYesルート参照)、指示部81は命令の完了を認識して、メモリアクセス処理は終了する。
次に、関連例におけるアクセラレータ600の読み書き部82におけるマルチキャスト用REQIDの初期化処理を、図6に示すフローチャート(ステップS21〜S25)に従って説明する。
読み書き部82は、1つの命令のN番目の分割を処理する(ステップS21)。
読み書き部82は、Nが1であるかを判定する(ステップS22)。
Nが1である場合には(ステップS22のYesルート参照)、読み書き部82は、マルチキャスト用獲得回路825を初期化する(ステップS23)。そして、処理はステップS25へ進む。
一方、Nが1でない場合には(ステップS22のNoルート参照)、マルチキャスト用獲得回路825を更新する(ステップS24)。
読み書き部82は、マルチキャストにおいて発行するREQIDを決定する(ステップS25)。そして、マルチキャスト用REQIDの初期化処理は終了する。
次に、関連例におけるアクセラレータ600の指示部81におけるロード命令の発行処理を、図7に示すフローチャート(ステップS31〜S32)に従って説明する。
指示部81は、ソフトウェアからのロード命令をデコードする(ステップS31)。
指示部81は、ロード命令及び対象チェーンを対象の読み書き部82に発行する(ステップS32)。そして、処理は図8のステップS41以降の読み書き部82における処理に引き継がれ、ロード命令の発行処理は終了する。
次に、関連例におけるアクセラレータ600の読み書き部82におけるREQIDの獲得処理を、図8に示すフローチャート(ステップS41〜S47)に従って説明する。
読み書き部82は、図7のステップS32に示した指示部81からの指示に応じて、ロード命令及び対象チェーンを受信する(ステップS41)。
読み書き部82は、対象チェーンが複数あるかを判定する(ステップS42)。
対象チェーンが複数ない場合には(ステップS42のNoルート参照)、ユニキャスト動作が実施される。
一方、対象チェーンが複数ある場合には(ステップS42のYesルート参照)、読み書き部82は、ロード命令の1番目の分割を処理中であるかを判定する(ステップS43)。
1番目の分割を処理中である場合には(ステップS43のYesルート参照)、読み書き部82は、マルチキャスト用獲得回路825を初期化する(ステップS44)。そして、処理は、ステップS46へ進む。
一方、1番目の分割を処理中でない場合には(ステップS43のNoルート参照)、読み書き部82は、マルチキャスト用獲得回路825を更新する(ステップS45)。
読み書き部82は、獲得したいREQIDが空いているかを判定する(ステップS46)。
獲得したいREQIDが空いていない場合には(ステップS46のNoルート参照)、ステップS46における処理が繰り返し実行される。
一方、獲得したいREQIDが空いている場合には(ステップS46のYesルート参照)、読み書き部82は、獲得したREQIDの待ち合わせ処理を行なう(ステップS47)。そして、REQIDの獲得処理は終了する。
図9は、図2に示した関連例におけるマルチキャストロード処理におけるREQIDの使用状況を例示するテーブルである。
マルチコア演算装置の性能は、メモリデータ転送のスループットの大きさに依存する。上述した関連例では、マルチキャストロード命令が頻発しないことを前提とされている。そのため、マルチキャストロード命令が連続して指示部81でデコードされ読み書き部82に発行される場合には、各読み書き部82は、1つ目のマルチキャストロード命令の実行によりマルチキャストに使用したリクエストID=0が解放されるまで、2つ目のマルチキャストロード命令を実行できない。
例えば、図9に示すマルチキャストロード命令「1」〜「4」が連続して発行される場合を想定する。マルチキャストロード命令「1」の対象チェーンは#0〜#7であり、マルチキャストロード命令「2」の対象チェーンは#0〜#7である。また、マルチキャストロード命令「3」の対象チェーンは#0〜#3であり、マルチキャストロード命令「3」の対象チェーンは#0〜#7である。なお、各マルチキャストロード命令のメモリアクセスサイズは1キロバイトである。
各読み書き部82がマルチキャストロード命令「1」を実行するにあたり、MAC6へのマルチキャストメモリリードは合計4回発行される。この際に使用されるリクエストIDは、順に0,1,2,3である。
次に、読み書き部82は、マルチキャストロード命令「1」を実行するにあたり、MAC6へのマルチキャストメモリリードは合計4回発行される。この際に、未使用のリクエストIDは4〜15であるがこれらのリクエストIDは使用できず、リクエストID=0が解放するまで(別言すれば、「リード1−01のコンプリーションを受信まで」)待ち、その後にリクエストID=0が使用される。リクエストID=1〜3についても、リクエストID=0と同様である。
このため、マルチキャストロード命令「1」及び「2」について、メモリリードリクエストを連続して発行できない。マルチキャストロード命令「3」及び「4」についても、マルチキャストロード命令「1」及び「2」と同様に、メモリリードリクエストを連続して発行することができない。
これにより、各読み書き部82間でリクエストIDを統一する処理のために、先行するマルチキャストロード命令のメモリリードのコンプリーションの受信まで後続のマルチキャストロード命令に対する処理が保留される。そして、メモリデータのスループットが低下してしまうおそれがある。
〔B〕実施形態の一例
〔B−1〕システム構成例
図10は、実施例における情報処理装置1のハードウェア構成例を模式的に示すブロック図である。
情報処理装置1は、図10に示すように、Central Processing Unit(CPU)10,Input/Output(I/O)コントローラ11,アクセラレータ12,ハードディスク13,I/Oデバイス14及びメモリ15を有する。
I/Oコントローラ11は、アクセラレータ12,ハードディスク13及びI/Oデバイス14に接続される。ここで、I/Oデバイス14は、アクセラレータ12及びハードディスク13以外のI/Oデバイスを指す。I/Oコントローラ11は、CPU10からの指示を受けて、アクセラレータ12,ハードディスク13及びI/Oデバイス14を制御する。そして、I/Oコントローラ11は、アクセラレータ12,ハードディスク13及びI/Oデバイス14とCPU10との通信を中継する。
演算処理装置であるCPU10は、I/Oコントローラ11及びメモリ15とバスで接続される。そして、CPU10は、メモリ15とデータの送受信が可能である。また、CPU10は、I/Oコントローラ11を介して、アクセラレータ12,ハードディスク13及びI/Oデバイス14とデータの送受信が可能である。
ハードディスク13は、Operating System(OS)や各種アプリケーションなどの様々なプログラムを格納する。
CPU10は、ハードディスク13からプログラムを読み出し、メモリ15上に展開して実行することで、OSや各種アプリケーションを動作させる。アプリケーションとしては、例えば、ディープラーニングなどを実行するアプリケーションがある。
さらに、CPU10は、アプリケーションを実行する際の特定の処理をアクセラレータ12に行なわせる。例えば、CPU10は、ディープラーニングなどにおける演算処理をアクセラレータ12に行なわせる。具体的には、CPU10により実行されるソフトウェアが、I/Oコントローラ11を介して演算に用いるデータとともに演算命令をアクセラレータ12へ送信する。
図11は、図10に示したアクセラレータ12の構成例を模式的に示すブロック図である。
アクセラレータ12は、MAC121,メモリ122,複数のコア123,指示部124及び読み書き部125を備える。
メモリ122は、一次記録メモリあるいはワーキングメモリとして利用されてよい。
MAC121は、各コア123によるメモリ7に対するアクセスを処理する。MAC121は、複数のポート1211(図11では「P#0〜#7」と表記。)を備える。
複数のコア123と1つの読み書き部125と1つのポート1211とは、図11において破線枠で示すチェーン#0〜#7毎に備えられる。図示する例では、各チェーンにおいて、7つのコア123が備えられる。例えば、チェーン#0にはコア#0−1〜#0−Nが備えられ、チェーン#1にはコア#1−1〜#1−Nが備えられ、チェーン#7にはコア#7−1〜#7−Nが備えられる。
各コア123は、読み書き部125及びMAC121を介して、メモリ122に対するロード及びストアを実行する。
指示部124は、ソフトウェアから送られたロード命令をデコードし、読み書き部125にロード命令の実行を指示する。
読み書き部125は、ロード命令をメモリアクセス単位に分割し、分割した各ロード命令にリクエストID(「REQID」と称してもよい。)を載せてメモリリードリクエストをMAC121へ発行する。
図11に示すように、搭載されるコア123の数が多い場合には、回路実装や配線性の観点から、メモリ122へのアクセスバスをコア123間で共有しリング状に繋げた構成が採用される場合がある。
ここで、同じメモリデータを複数のチェーンのコア群にロードする場合には、各読み書き部125がそれぞれ独立にメモリリードリクエストを発行すると、MAC121は同じメモリ領域をリクエストの数だけリードすることになる。この場合には、MAC121は同じ動作を繰り返すことになり、その間、後続命令の処理を待たせることになるため効率が悪い。そこで、命令は複数のチェーンを一度に指定したロード(「マルチキャストロード」と称してもよい。)命令がサポートされる。MAC121及び読み書き部125は、複数のチェーンを指定したメモリリード(「マルチキャストリードリクエスト」と称してよい。)をサポートする。
図12は、図11に示したアクセラレータ12におけるリクエストパケットのフォーマットを示す図である。
読み書き部125により生成されるマルチキャストリードリクエストは、図12に示すフォーマットを有する。マルチキャストリードリクエストは、リクエストの種別を示すopc、読み出したデータの送信先を示すdst、割り当てられたIDを示すREQID及びデータの読み出しアドレスを示すAddressが登録される。
例えば、opc、dst及びREQIDは、第1サイクルで送られる。そして、Addressは、第1サイクル及び第2サイクルで送られる。
図13は、図11に示したアクセラレータ12におけるコンプリーションパケットのフォーマットを示す図である。
読み書き部125により取得されるメモリリードリコンプリーションは、図13に示すフォーマットを有する。メモリリードコンプリーションにおける第1サイクルで送信される領域は、リクエストの種別を示すopc、応答の対象であるマルチキャストリードリクエストのIDを示すREQID及び応答のステータスであるStatus、並びに、リザーブ(rsv)の領域を有するヘッダが格納される。
図12に示したリクエストのdstフィールドには、コンプリーションが発行されるチェーンがビットマップにより指定される。図12及び図13に示したopcフィールドでは、メモリリード又はメモリライトのリクエストコンプリーションが判別される。図13に示したREQIDフィールドは、図12示したリクエストに対応するコンプリーションであり、同じ値が格納される。図12に示したAddressフィールドには、アクセスするアドレス値が格納される。
指示部124は、各読み書き部125にロード命令と共に対象チェーンの情報を通知する。
代表の読み書き部125は、MAC121へのメモリリードリクエストの発行の際にdstフィールドに対象チェーンをビットマップで指定する。メモリリードリクエストを受け取ったMAC121は、メモリ122からデータを取得し、dstフィールドで指定された全てのチェーンにコンプリーションを発行する。
図14は、図11に示したアクセラレータ12におけるメモリアクセス処理を説明するブロック図である。
指示部124は、ソフトウェアからの命令をデコードする。指示部124は、全対象チェーンの読み書き部125に、マルチキャストロード命令を発行する。この際、指示部124は、全対象チェーンの読み書き部125に対象チェーンを通知する。指示部124は、REQID初期化信号を読み書き部125へのインタフェース信号として、ロード命令と共に各読み書き部125に伝搬する。
指示部124は、同期監視回路1221及び初期化信号生成回路1222を備える。
図15は、図12に示したアクセラレータ12のマルチキャスト用REQIDの同期監視回路1221の構成例を示す図である。
アクセラレータ12においてチェーン#0〜#7が備えられる場合には、図15に示すように、同期監視回路1221は、28パターンの(X,Y)の組み合わせを入力される。
出力信号same_reqid_grp_XYも28パターンあり、図14に示したグループ表1220に格納される。load_validはロード命令のvalid信号であり、本回路の更新指示信号である。
同期監視回路1221において、マルチキャストロード命令に対してchain[X]及び[Y]が共に対象チェーンである場合に、same_reqid_grp_XY=1に更新される。chain[X]及び[Y]の一方を対象とするマルチキャストロード命令、又は、chain[X]及び[Y]の一方を対象とするシングルキャストロード命令の場合には、same_reqid_grp_XY=0に更新される。また、chain[X]及び[Y]が共に対象チェーンでない場合には、前の値が保持される。
same_reqid_grp_XY=1の場合に、chain[X]及び[Y]の読み書き部125が指示部124から最後に受信したロード命令は、同じマルチキャストロード命令であることを示す。
従って、図16を用いて後述されるmulticast_reqid_rst[7:0]により、既にchain[X]及び[Y]の読み書き部125では後述するマルチキャスト用獲得回路322が初期化済みであり、且つ、同じマルチキャストロード命令を処理していることから同じ数のREQIDが連番で使用される。そのため、次に同様のマルチキャストロード命令が処理される場合は、マルチキャスト用獲得回路322を初期化せずとも、同じREQIDを獲得できる状態であることを示す。つまり、same_reqid_grp_XY=1の場合には、マルチキャスト用獲得回路322が同期できていることを示す。
一方、same_reqid_grp_XY=0である場合に、chain[X]及び[Y]の読み書き部125が最後に受信したロード命令は、異なるマルチキャストロード命令又はシングルキャストロード命令であることを示す。つまり、same_reqid_grp_XY=0の場合には、マルチキャスト用獲得回路322が同期されていないことを示す。
別言すれば、同期監視回路1221は、複数のチェーンのうち第1又は第2の被判定チェーン群が、第2の演算処理の対象である第2のチェーン群を包含するかを判定する判定回路の一例である。第1の被判定チェーン群は、第1の演算処理の後に連続して第2の演算処理が実行される関係の、第1のチェーン群である。第2の被判定チェーン群は、第1の演算処理の後に、少なくとも1つ以上の第3の演算処理が実行された後に第2の演算処理が実行される関係の、第1のチェーン群に対して第3のチェーン群を一定の方式で計算を実施したものである。第1のチェーン群は複数のチェーンのうち第1の演算処理の対象であり、第2のチェーン群は複数のチェーンのうち第2の演算処理の対象であり、第3のチェーン群は複数のチェーンのうち第3の演算処理の対象である。
ここで、一定の方式とは、第1のチェーン群に対して第3のチェーン群を取り除く処理である。
図16は、図12に示したアクセラレータ12のマルチキャスト用REQIDの初期化信号生成回路1222の構成例を示す図である。
初期化信号生成回路1222は、図15に示したsame_reqid_grp_XYとマルチキャストロード発行対象のチェーンとを比較し、全ての対象チェーンにおける読み書き部125でマルチキャスト用のREQIDの同期がとれているかをチェックする。すなわち、初期化信号生成回路1222は、同期監視回路1221の出力について、same_reqid_grp_XY=1であるかをチェックする。
初期化信号生成回路1222は、対象チェーンのいずれかにおいてsame_reqid_grp_XY=0であれば、マルチキャスト用のREQIDの同期が取れていないと判断し、multicast_reqid_rst[Z]=1(Zは、マルチキャストロード発行対象のチェーン)とする。一方、初期化信号生成回路1222は、全ての対象チェーンにおいてsame_reqid_grp_XY=1であれば、multicast_reqid_rst[Z]=0とする。
別言すれば、初期化信号生成回路1222は、第1及び第2の被判定チェーン群のいずれもが第2のチェーン群を包含しない場合に、第2の演算処理の識別子を初期化する初期化指示を生成する生成回路の一例である。
図14に示すように、各読み書き部125の命令分割回路31における決定回路311は、対象命令が複数であるロード命令を受信したことにより、マルチキャストロード命令が発行されたと判断する。そして、命令分割回路31は、ロード命令を256バイト毎に分割する。
別言すれば、命令分割回路31は、第2の演算処理に関する命令を複数に分割する分割回路の一例である。
読み書き部125のREQID管理回路32は、ユニキャスト用獲得回路321,マルチキャスト用獲得回路322及び獲得待ちバッファ323を備える。マルチキャスト用獲得回路322は、分割されたロード命令毎にREQIDとデータバッファ領域とを獲得する。ここで、マルチキャスト用獲得回路322は、分割された1つ目のリクエストに対して、REQID=0を取得する。マルチキャスト用獲得回路322は、REQID=0が使用中の場合には、REQID=0が解放されるまで待機する。以降、マルチキャスト用獲得回路322は、REQIDが連番となるようにREQIDを取得する。
図17は、図12に示したアクセラレータ12のマルチキャスト用獲得回路322の構成例を示す図である。
上述した関連例においては、マルチキャストロード命令をメモリアクセス単位で分割する際に、分割した1つ目のリクエストにおいて初期化が実施されていた。
本実施例において、マルチキャスト用獲得回路322は、各読み書き部125に分配されたREQID初期化信号であるmulticast_reqid_rstを用いて、(div_1st_memrd & multicast_reqid_rst)=1の場合に初期化を実行する。
別言すれば、マルチキャスト用獲得回路322は、初期化指示が発行された場合に第2の演算処理に対して初期化した識別子を獲得する一方、初期化指示が発行されなかった場合に第2の演算処理に対して第1の演算処理の識別子に連続する識別子を獲得する獲得回路の一例である。
また、マルチキャスト用獲得回路322は、識別子の獲得対象が命令の1分割目でない場合に、獲得対象に対して直前の獲得対象の識別子に連続する識別子を獲得してよい。
図14に示すように、各読み書き部125のマルチキャスト用獲得回路322は、メモリリードリクエスト発行担当の読み書き部125における獲得待ちバッファ323に対して、獲得したREQIDを通知する。これにより、メモリリードリクエスト発行担当の読み書き部125は、各読み書き部125において獲得されたREQIDが統一されたことを認識できる。
別言すれば、マルチキャスト用獲得回路322は、獲得した識別子を複数の読み書き部125のうち他の読み書き部125に通知する獲得回路の一例である。
メモリリードリクエスト発行担当の読み書き部125におけるメモリリクエスト生成回路33は、全ての対象チェーンの読み書き部125から獲得したREQIDを通知された後、MAC121のポート1211における受信バッファ21に対して、メモリリードリクエストを発行する。この際、dstフィールドにおいて、対象チェーンがビットマップによって指定される。
全ての対象チェーンの読み書き部125は、メモリリードリクエストの応答として、MAC121のポート1211における送信バッファ22からメモリリードコンプリーションを受信し、付随するメモリリードデータをデータバッファ35に格納する。
各読み書き部125のレジスタ制御リクエスト生成回路34は、データバッファ35からメモリリードデータを読み出し、コア123のレジスタファイルへのライトリクエストと共に読み台したメモリリードデータを転送する。
各読み書き部125は、マルチキャストロード命令に対応する完了通知を指示部124に対して発行する。
指示部124は、全ての対象チェーンの読み書き部125から完了通知を受け取り、命令の完了を認識する。
〔B−2〕動作例
図11に示したアクセラレータ12の指示部124におけるREQID初期化命令の発行処理を、図18に示すフローチャート(ステップS51〜S55)に従って説明する。
同期監視回路1221は、REQID同期のためのグループ表1220を最新の状態に更新する(ステップS51)。
初期化信号生成回路1222は、グループ表1220において、発行するロード命令の全ての対象チェーンが包含されているかを判定する(ステップS52)。
全ての対象チェーンが包含されている場合には(ステップS52のYesルート参照)、初期化信号生成回路1222は、REQID初期化指示信号をde-assertする(ステップS53)。そして、処理はステップS55へ進む。
一方、包含されない対象チェーンがある場合には(ステップS52のNoルート参照)、初期化信号生成回路1222は、REQID初期化指示信号をassertする(ステップS54)。
初期化信号生成回路1222は、REQID初期化指示信号を読み書き部125に通知する。処理は図19のステップS61における読み書き部125の処理に引き継がれ、REQID初期化命令の発行処理は終了する。
次に、図11に示したアクセラレータ12の読み書き部125におけるマルチキャスト用REQIDの初期化処理を、図19に示すフローチャート(ステップS61〜S65)に従って説明する。
命令分割回路31は、図18のステップS55における指示部124からの送信に応じて、REQID初期化指示信号を受信する(ステップS61)。
マルチキャスト用獲得回路322は、REQID初期化指示信号が1であるかを判定する(ステップS62)。
REQID初期化指示信号が1である場合には(ステップS62のYesルート参照)、マルチキャスト用獲得回路322は、値を初期化される(ステップS63)。そして、処理はステップS65へ進む。
一方、REQID初期化指示信号が1でない場合には(ステップS62のNoルート参照)、マルチキャスト用獲得回路825は、値を更新又は保持させられる(ステップS64)。
決定回路311は、マルチキャストにおいて発行するREQIDを決定する(ステップS65)。そして、マルチキャスト用REQIDの初期化処理は終了する。
次に、図11に示したアクセラレータ12の指示部124におけるロード命令の発行処理を、図20に示すフローチャート(ステップS71〜S76)に従って説明する。
指示部124は、ソフトウェアからのロード命令をデコードする(ステップS71)。
初期化信号生成回路1222は、グループ表1220において、発行するロード命令の全ての対象チェーンが包含されているかを判定する(ステップS72)。
全ての対象チェーンが包含されている場合には(ステップS72のYesルート参照)、初期化信号生成回路1222は、REQID初期化指示信号をde-assertする(ステップS73)。そして、処理はステップS75へ進む。
一方、包含されない対象チェーンがある場合には(ステップS72のNoルート参照)、初期化信号生成回路1222は、REQID初期化指示信号をassertする(ステップS74)。
初期化信号生成回路1222は、ロード命令及び対象チェーンを対象の読み書き部125に通知する(ステップS75)。そして、処理は図21のステップS81以降の読み書き部125における処理に引き継がれる。
同期監視回路1221は、次回のロード命令の際に参照するために、REQID同期のためのグループ表1220を対象チェーンに基づいて更新する(ステップS76)。
次に、図11に示したアクセラレータ12の読み書き部125におけるREQIDの獲得処理を、図21に示すフローチャート(ステップS81〜S88)に従って説明する。
命令分割回路31は、図20のステップS75に示した指示部124からの通知に応じて、REQID初期化指示信号と共に、ロード命令及び対象チェーンを受信する(ステップS81)。
決定回路311は、対象チェーンが複数あるかを判定する(ステップS82)。
対象チェーンが複数ない場合には(ステップS82のNoルート参照)、ユニキャスト動作が実施される。
一方、対象チェーンが複数ある場合には(ステップS82のYesルート参照)、マルチキャスト用獲得回路322は、ロード命令の1番目の分割を処理中であるかを判定する(ステップS83)。
1番目の分割を処理中である場合には(ステップS83のYesルート参照)、マルチキャスト用獲得回路322は、REQID初期化指示信号が1であるかを判定する(ステップS84)。
REQID初期化指示信号が1でない場合には(ステップS84のNoルート参照)、処理はステップS86へ進む。
一方、REQID初期化指示信号が1である場合には、マルチキャスト用獲得回路322は、値を初期化される(ステップS85)。そして、処理は、ステップS87へ進む。
ステップS83において、1番目の分割を処理中でない場合には(ステップS83のNoルート参照)、マルチキャスト用獲得回路322は、値を更新される(ステップS86)。
マルチキャスト用獲得回路322は、獲得したいREQIDが空いているかを判定する(ステップS87)。
獲得したいREQIDが空いていない場合には(ステップS87のNoルート参照)、ステップS87における処理が繰り返し実行される。
一方、獲得したいREQIDが空いている場合には(ステップS87のYesルート参照)、マルチキャスト用獲得回路322は、獲得したREQIDの待ち合わせ処理を行なう(ステップS88)。そして、REQIDの獲得処理は終了する。
〔B−3〕効果
図22は、図11に示した実施例におけるマルチキャストロード処理におけるREQIDの使用状況を例示するテーブルである。
上述した実施例においては、マルチキャストロード命令を連続して処理する場合に、REQIDを初期化せずに連番で使用することができる。
図22に示す例では、マルチキャストロード命令「1」〜「4」の4つの命令が連続して発行されている。マルチキャストロード命令「1」,「2」及び「4」は対象がチェーン#0〜#7であり、マルチキャストロード命令「3」は対象がチェーン#0〜#3である。なお、マルチキャストロード命令「1」〜「4」のメモリアクセスサイズは、いずれも1キロバイトである。
マルチキャストロード命令「1」にとって、マルチキャストロード命令「2」は、ロード対象のチェーンがREQID同期のためのグループ表1220に包含されている。また、マルチキャストロード命令「2」とって、マルチキャストロード命令「3」は、ロード対象のチェーンがREQID同期のためのグループ表1220に包含されている。
一方、マルチキャストロード命令「3」にとって、マルチキャストロード命令「4」は、ロード対象のチェーンがREQID同期のためのグループ表1220に包含されていないため、REQIDがassertされて初期化されている。
これにより、図9に示した関連例におけるマルチキャストロード処理におけるREQIDの使用状況を例示するテーブルと比較して、REQIDの初期化を行なう機会が減少している。そして、使用中のREQIDの解放を待つ機会が低減し、MAC121に対するメモリリードリクエストを速やかに発行できるため、メモリデータバスのスループットの低減を防止できる。
上述した実施形態の一例におけるアクセラレータ12によれば、例えば、以下の作用効果を奏することができる。
同期監視回路1221は、複数のチェーンのうち第1又は第2の被判定チェーン群が、第2の演算処理の対象である第2のチェーン群を包含するかを判定する。第1の被判定チェーン群は、第1の演算処理の後に連続して第2の演算処理が実行される関係の、第1のチェーン群である。第2の被判定チェーン群は、第1の演算処理の後に、少なくとも1つ以上の第3の演算処理が実行された後に第2の演算処理が実行される関係の、第1のチェーン群に対して第3のチェーン群を一定の方式で計算を実施したものである。第1のチェーン群は複数のチェーンのうち第1の演算処理の対象であり、第2のチェーン群は複数のチェーンのうち第2の演算処理の対象であり、第3のチェーン群は複数のチェーンのうち第3の演算処理の対象である。初期化信号生成回路1222は、第1及び第2の被判定チェーン群のいずれもが第2のチェーン群を包含しない場合に、第2の演算処理の識別子を初期化する初期化指示を生成する。マルチキャスト用獲得回路322は、初期化指示が発行された場合に第2の演算処理に対して初期化した識別子を獲得する一方、初期化指示が発行されなかった場合に第2の演算処理に対して第1の演算処理の識別子に連続する識別子を獲得する。
これにより、マルチコアアーキテクチャにおいて、REQIDの初期化回数を減少させて、チェーン間の待ち合わせ時間を低減することにより、メモリデータのスループットを向上することができる。
マルチキャスト用獲得回路322は、獲得した識別子を複数の読み書き部125のうち他の読み書き部125に通知する。
これにより、メモリリードリクエスト発行担当の読み書き部125は、各読み書き部125において獲得されたREQIDが統一されたことを認識できる。
命令分割回路31は、第2の演算処理に関する命令を複数に分割する。マルチキャスト用獲得回路322は、識別子の獲得対象が命令の1分割目でない場合に、獲得対象に対して直前の獲得対象の識別子に連続する識別子を獲得する。
これにより、一連の命令については連続するREQIDを獲得することができる。
〔C〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
1 :情報処理装置
7,15,122:メモリ
8,123 :コア
10 :CPU
11 :I/Oコントローラ
12,600 :アクセラレータ
13 :ハードディスク
14 :I/Oデバイス
21,611 :受信バッファ
22,612 :送信バッファ
31,821 :命令分割回路
32,823 :REQID管理回路
33,827 :メモリリクエスト生成回路
34,828 :レジスタ制御リクエスト生成回路
35,829 :データバッファ
61,1211 :ポート
81,124 :指示部
82,125 :読み書き部
83 :演算実行部
84 :レジスタファイル
311,822 :決定回路
321,824 :ユニキャスト用獲得回路
322,825 :マルチキャスト用獲得回路
323,826 :獲得待ちバッファ
1220 :グループ表
1221 :同期監視回路
1222 :初期化信号生成回路

Claims (8)

  1. 複数のチェーンを構成するマルチコアを有する演算処理装置であって、
    前記複数のチェーンのうち第1の演算処理の対象である第1のチェーン群と、
    前記複数のチェーンのうち第2の演算処理の対象である第2のチェーン群と、
    前記複数のチェーンのうち第3の演算処理の対象である第3のチェーン群と、
    において、
    前記第1の演算処理の後に連続して前記第2の演算処理が実行される関係の、第1のチェーン群を第1の被判定チェーン群とし、
    前記第1の演算処理の後に、少なくとも1つ以上の第3の演算処理が実行された後に前記第2の演算処理が実行される関係の、第1のチェーン群に対して第3のチェーン群を一定の方式で計算を実施したものを第2の被判定チェーン群とし、
    前記複数のチェーンのうち前記第1又は第2の被判定チェーン群が、前記第2の演算処理の対象である前記第2のチェーン群を包含するかを判定する判定回路と、
    前記第1及び第2の被判定チェーン群のいずれもが前記第2のチェーン群を包含しない場合に、前記第2の演算処理の識別子を初期化する初期化指示を生成する生成回路と、
    前記初期化指示が発行された場合に前記第2の演算処理に対して初期化した識別子を獲得する一方、前記初期化指示が発行されなかった場合に前記第2の演算処理に対して前記第1の演算処理の識別子に連続する識別子を獲得する獲得回路と、
    を備える、演算処理装置。
  2. 前記一定の方式とは、前記第1のチェーン群に対して前記第3のチェーン群を取り除く処理である、
    請求項1に記載の演算処理装置。
  3. 前記獲得回路は、
    前記複数のチェーン毎に前記マルチコアからメモリへのデータの読み書き処理を中継する複数の読み書き部にそれぞれ備えられ、
    獲得した識別子を前記複数の読み書き部のうち他の読み書き部に通知する、
    請求項1又は2に記載の演算処理装置。
  4. 前記第2の演算処理に関する命令を複数に分割する分割回路を更に備え、
    前記獲得回路は、識別子の獲得対象が前記命令の1分割目でない場合に、前記獲得対象に対して直前の獲得対象の識別子に連続する識別子を獲得する、
    請求項1〜3のいずれか1項に記載の演算処理装置。
  5. 複数のチェーンを構成するマルチコアを有する演算処理装置の制御方法であって、
    前記複数のチェーンのうち第1の演算処理の対象である第1のチェーン群と、
    前記複数のチェーンのうち第2の演算処理の対象である第2のチェーン群と、
    前記複数のチェーンのうち第3の演算処理の対象である第3のチェーン群と、
    において、
    前記第1の演算処理の後に連続して前記第2の演算処理が実行される関係の、第1のチェーン群を第1の被判定チェーン群とし、
    前記第1の演算処理の後に、少なくとも1つ以上の第3の演算処理が実行された後に前記第2の演算処理が実行される関係の、第1のチェーン群に対して第3のチェーン群を一定の方式で計算を実施したものを第2の被判定チェーン群とし、
    前記複数のチェーンのうち前記第1又は第2の被判定チェーン群が、前記第2の演算処理の対象である前記第2のチェーン群を包含するかを判定し、
    前記第1及び第2の被判定チェーン群のいずれもが前記第2のチェーン群を包含しない場合に、前記第2の演算処理の識別子を初期化する初期化指示を生成し、
    前記初期化指示が発行された場合に前記第2の演算処理に対して初期化した識別子を獲得する一方、前記初期化指示が発行されなかった場合に前記第2の演算処理に対して前記第1の演算処理の識別子に連続する識別子を獲得する、
    演算処理装置の制御方法。
  6. 前記一定の方式とは、前記第1のチェーン群に対して前記第3のチェーン群を取り除く処理である、
    請求項5に記載の演算処理装置の制御方法。
  7. 前記複数のチェーン毎に前記マルチコアからメモリへのデータの読み書き処理を中継する複数の読み書き部のそれぞれによって識別子が獲得され、
    獲得した識別子を前記複数の読み書き部のうち他の読み書き部に通知する、
    請求項5又は6に記載の演算処理装置の制御方法。
  8. 前記第2の演算処理に関する命令を複数に分割し、
    識別子の獲得対象が前記命令の1分割目でない場合に、前記第2の演算処理に対して前記獲得対象に対して直前の獲得対象の識別子に連続する識別子を獲得する、
    請求項5〜7のいずれか1項に記載の演算処理装置の制御方法。
JP2020554648A 2018-10-30 2018-10-30 演算処理装置及びその制御方法 Active JP7036226B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/040345 WO2020090009A1 (ja) 2018-10-30 2018-10-30 演算処理装置及びその制御方法

Publications (2)

Publication Number Publication Date
JPWO2020090009A1 true JPWO2020090009A1 (ja) 2021-09-24
JP7036226B2 JP7036226B2 (ja) 2022-03-15

Family

ID=70462017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020554648A Active JP7036226B2 (ja) 2018-10-30 2018-10-30 演算処理装置及びその制御方法

Country Status (2)

Country Link
JP (1) JP7036226B2 (ja)
WO (1) WO2020090009A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175632A (ja) * 2000-10-10 2001-06-29 Hitachi Ltd マルチプロセッサシステム
WO2011121709A1 (ja) * 2010-03-29 2011-10-06 株式会社東芝 半導体装置
JP2017161954A (ja) * 2014-07-31 2017-09-14 三菱電機株式会社 データ処理システム及びデータ処理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175632A (ja) * 2000-10-10 2001-06-29 Hitachi Ltd マルチプロセッサシステム
WO2011121709A1 (ja) * 2010-03-29 2011-10-06 株式会社東芝 半導体装置
JP2017161954A (ja) * 2014-07-31 2017-09-14 三菱電機株式会社 データ処理システム及びデータ処理方法及びプログラム

Also Published As

Publication number Publication date
JP7036226B2 (ja) 2022-03-15
WO2020090009A1 (ja) 2020-05-07

Similar Documents

Publication Publication Date Title
US8769034B2 (en) Query performance data on parallel computer system having compute nodes
US7971029B2 (en) Barrier synchronization method, device, and multi-core processor
JP5460143B2 (ja) データ処理装置、データ処理方法およびプログラム
JPH1049507A (ja) 並列計算機
CN106688208A (zh) 利用机架规模架构中的池化存储器进行的网络通信
WO2019056771A1 (zh) 分布式存储系统升级管理的方法、装置及分布式存储系统
JP2006101525A (ja) データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ
JP2007207026A (ja) Dma転送装置
JP2021520578A (ja) タスクスケジューリング
US8416702B2 (en) Network switch, path setting method, and program
JP7036226B2 (ja) 演算処理装置及びその制御方法
US11842197B2 (en) System and methods for tag-based synchronization of tasks for machine learning operations
US9367329B2 (en) Initialization of multi-core processing system
US20140156896A1 (en) Advanced programmable interrupt controller identifier (apic id) assignment for a multi-core processing unit
WO2021036421A1 (zh) 多核架构的同步信号产生电路、芯片和同步方法及装置
JP2013196509A (ja) 情報処理装置及びその制御方法
JPH10149293A (ja) 割込みを処理するための方法および装置
JP2006139766A (ja) 情報処理装置
US10235225B2 (en) Data processing system having messaging
US20100325387A1 (en) Arithmetic processing apparatus, processing unit, arithmetic processing system, and arithmetic processing method
RU2571376C1 (ru) Способ и устройство для параллельной обработки цифровой информации в вычислительной системе
CN117951070B (zh) 交叉开关模块、多核互联芯片、事务处理方法及产品
US10268529B2 (en) Parallel processing apparatus and inter-node communication method
JPWO2020156797A5 (ja)
JP4388643B2 (ja) マルチチャンネル信号処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210311

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220214

R150 Certificate of patent or registration of utility model

Ref document number: 7036226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150