JP5831316B2 - 並列処理装置 - Google Patents

並列処理装置 Download PDF

Info

Publication number
JP5831316B2
JP5831316B2 JP2012061920A JP2012061920A JP5831316B2 JP 5831316 B2 JP5831316 B2 JP 5831316B2 JP 2012061920 A JP2012061920 A JP 2012061920A JP 2012061920 A JP2012061920 A JP 2012061920A JP 5831316 B2 JP5831316 B2 JP 5831316B2
Authority
JP
Japan
Prior art keywords
command
address
management unit
unit
parallel processing
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.)
Expired - Fee Related
Application number
JP2012061920A
Other languages
English (en)
Other versions
JP2013196289A (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
Priority to JP2012061920A priority Critical patent/JP5831316B2/ja
Priority to EP12198462.9A priority patent/EP2642383B1/en
Priority to US13/722,494 priority patent/US9164883B2/en
Publication of JP2013196289A publication Critical patent/JP2013196289A/ja
Application granted granted Critical
Publication of JP5831316B2 publication Critical patent/JP5831316B2/ja
Expired - Fee Related 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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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 or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)

Description

本発明は、並列処理装置に関する。
データ駆動プログラムと制御駆動プログラムとを同一パイプライン上で命令単位に多重処理するデータ処理装置が知られている(例えば、特許文献1参照)。
また、キャッシュメモリ内でのデータ転送指示を複数の命令の組合せとして取得する演算処理装置が知られている(例えば、特許文献2参照)。
また、1命令毎に命令レジスタよりフェッチするか、もしくは複数の命令を同時に命令レジスタよりフェッチし、デコードされた複数の演算命令を実行するダイナミックなパイプライン制御が可能な汎用プロセッサが知られている(例えば、特許文献3参照)。
また、複数の計算機と、それらを接続する通信機構とから構成され、1つのジョブを複数のプロセスに分割して計算機に割り付ける構成を採って、各計算機が、自計算機で動作する1つ又は複数のプロセスの処理進行情報を通信機構を介して全計算機に放送していくとともに、通信機構を介して放送される処理進行情報に従って他計算機で動作するプロセスと同期をとりつつ割り付けられるプロセスを実行する並列計算機システムが知られている(例えば、特許文献4参照)。
特開2005−108086号公報 特開2006−313422号公報 特開平11−161491号公報 特開平10−83379号公報
コマンドを並列処理する複数の処理実行部と、複数の処理実行部にそれぞれ実行するコマンドを供給する管理部とを有する並列処理装置が考えられる。しかし、管理部がすべての処理実行部の管理を行うと、回路規模が大きくなってしまう課題がある。
本発明の目的は、小規模の構成で、コマンドを並列処理することができる並列処理装置を提供することである。
並列処理装置は、コマンドを実行する第1の処理実行部と、前記第1の処理実行部にコマンドの実行を指示する第1のアドレス管理部と、前記第1の処理実行部の実行と並列に、前記第1の処理実行部が実行するコマンドとは異なるコマンドを実行する第2の処理実行部と、前記第2の処理実行部にコマンドの実行を指示する第2のアドレス管理部と、各アドレスにシーケンスコマンドを格納し、並列処理開始のコマンドには並列処理開始ビットを対応付けて格納し、並列処理終了のコマンドには並列処理終了ビットを対応付けて格納するシーケンスコマンド格納メモリと、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドを前記シーケンスコマンド格納メモリから連続して読み出して前記第1のアドレス管理部及び前記第2のアドレス管理部に出力させる処理シーケンス管理部とを有し、前記第1のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第1の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第1の処理実行部に指示し、前記第2のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第2の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第2の処理実行部に指示する。
第1のアドレス管理部及び第2のアドレス管理部がコマンドを見つけるので、小規模の構成で、コマンドを並列処理することができる。
第1の実施形態による並列処理装置の構成例を示す図である。 図1のシーケンスコマンド格納メモリの記憶内容を示す図である。 図3(A)〜(C)は図1の並列処理装置の処理例を説明するための図である。 図4(A)〜(D)は図1の並列処理装置の処理例を説明するための図である。 図5(A)〜(C)は図1の並列処理装置の処理例を説明するための図である。 図6(A)及び(B)は図1の並列処理装置の処理例を説明するための図である。 図7(A)及び(B)は図1の並列処理装置の処理例を説明するための図である。 図8(A)及び(B)は図1の並列処理装置の処理例を説明するための図である。 図1の並列処理装置の処理例を説明するための図である。 第2の実施形態による並列処理装置の構成例を示す図である。
(第1の実施形態)
図1は、第1の実施形態による並列処理装置の構成例を示す図である。第1の処理実行部104aは、A処理のコマンドCMDaを実行する。第1のアドレス管理部101aは、第1の実行アドレス102a及び第1の最終アドレスフラグ103aを記憶し、第1の処理実行部104aにA処理のコマンドCMDaを供給し、第1の処理実行部104aに実行指示INSを供給することにより第1の処理実行部104aにコマンドCMDaの実行を指示する。第1の処理実行部104aは、コマンドCMDaの実行が終了すると、終了通知CMPを第1のアドレス管理部101aに出力する。
第2の処理実行部104bは、B処理のコマンドCMDbを実行する。第2のアドレス管理部101bは、第2の実行アドレス102b及び第2の最終アドレスフラグ103bを記憶し、第2の処理実行部104bにB処理のコマンドCMDbを供給し、第2の処理実行部104bに実行指示INSを供給することにより第2の処理実行部104bにコマンドCMDbの実行を指示する。第2の処理実行部104bは、コマンドCMDbの実行が終了すると、終了通知CMPを第2のアドレス管理部101bに出力する。
第3の処理実行部104cは、C処理のコマンドCMDcを実行する。第3のアドレス管理部101cは、第3の実行アドレス102c及び第3の最終アドレスフラグ103cを記憶し、第3の処理実行部104cにC処理のコマンドCMDcを供給し、第3の処理実行部104cに実行指示INSを供給することにより第3の処理実行部104cにコマンドCMDcの実行を指示する。第3の処理実行部104cは、コマンドCMDcの実行が終了すると、終了通知CMPを第3のアドレス管理部101cに出力する。
上記のように、第1の処理実行部104aはA処理のコマンドCMDaを実行し、第2の処理実行部104bはB処理のコマンドCMDbを実行し、第3の処理実行部104cはC処理のコマンドCMDcを実行する。例えば、A処理のコマンドCMDaは加算処理のコマンド、B処理のコマンドCMDbは乗算処理のコマンド、C処理のコマンドCMDcは乗算処理のコマンドである。コマンドCMDa、CMDb及びCMDcは、相互に異なるコマンドであり、種々の四則演算の組み合わせのコマンドでもよい。第1の処理実行部104a、第2の処理実行部104b及び第3の処理実行部104cは、相互に並列にコマンドを実行することができる。
図2は、図1のシーケンスコマンド格納メモリ114の記憶内容を示す図である。各アドレスADDにシーケンスのコマンドCMDを格納する。例えば、「1」番地のアドレスADDには、「A処理−1」のコマンドCMDが格納される。「2」番地のアドレスADDには、「A処理−2」のコマンドCMD及び並列処理開始ビットが格納される。「3」番地のアドレスADDには、「B処理−1」のコマンドCMDが格納される。「4」番地のアドレスADDには、「C処理−1」のコマンドCMDが格納される。「5」番地のアドレスADDには、「A処理−3」のコマンドCMDが格納される。「6」番地のアドレスADDには、「B処理−2」のコマンドCMDが格納される。「7」番地のアドレスADDには、「C処理−2」のコマンドCMDが格納される。「8」番地のアドレスADDには、「A処理−4」のコマンドCMD及び並列処理終了ビットが格納される。「9」番地のアドレスADDには、「B処理−3」のコマンドCMDが格納される。
第1の処理実行部104aは、アドレスADDの順に従い、「1」番地の「A処理−1」、「2」番地の「A処理−2」、「5」番地の「A処理−3」及び「8」番地の「A処理−4」のコマンドCMDを順に実行する必要がある。
第2の処理実行部104bは、アドレスADDの順に従い、「3」番地の「B処理−1」、「6」番地の「B処理−2」及び「9」番地の「B処理−3」のコマンドCMDを順に実行する必要がある。
第3の処理実行部104cは、アドレスADDの順に従い、「4」番地の「C処理−1」及び「7」番地の「C処理−2」のコマンドCMDを順に実行する必要がある。
シーケンスコマンド格納メモリ114は、並列処理開始のコマンドには並列処理開始ビットを対応付けて格納し、並列処理終了のコマンドには並列処理終了ビットを対応付けて格納する。例えば、並列処理開始ビットは、並列処理開始のコマンドである「2」番地の「A処理−2」のコマンドCMDに対応付けて格納される。並列処理終了ビットは、並列処理終了のコマンドである「8」番地の「A処理−4」のコマンドCMDに対応付けて格納される。これにより、「2」番地の「A処理−2」のコマンドCMDから「8」番地の「A処理−4」のコマンドCMDまでのシーケンスコマンドは、第1の処理実行部104a、第2の処理実行部104b及び第3の処理実行部104cにより並列処理される。並列処理開始ビットの「2」番地より前の「1」番地以前のコマンドCMD、及び並列処理終了ビットの「8」番地より後の「9」番地以降のコマンドCMDは、並列処理されず、アドレスADDの順に従って順に処理される。
図3(A)〜(C)、図4(A)〜(D)、図5(A)〜(C)、図6(A),(B)、図7(A),(B)、図8(A),(B)及び図9は、図1の並列処理装置の処理例を説明するための図である。以下、これらの図を参照しながら、図1の並列処理装置の処理例を説明する。
まず、処理シーケンス管理部111は、並列処理実行指示信号PAL1がローレベルであるので、最初のアドレスADDから順にアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。具体的には、処理シーケンス管理部111は、「1」番地のアドレスADDを出力する。シーケンスコマンド格納メモリ114は、「1」番地のアドレスADDを入力すると、「1」番地のアドレスADDに格納されている「A処理−1」のコマンドCMDを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、シーケンスコマンド格納メモリ114から並列処理開始ビット又は並列処理終了ビットを入力しないので、並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2をローレベルのままにする。
第1のアドレス管理部101aは、入力した「1」番地の「A処理−1」のコマンドCMDがA処理のコマンドCMDaのコードであると判定し、そのコマンドCMDをA処理のコマンドCMDaとして第1の処理実行部104aに供給し、実行指示INSを第1の処理実行部104aに供給することにより第1の処理実行部104aにコマンドCMDaの実行を指示する。すると、第1の処理実行部104aは、コマンドCMDaの実行を開始する。
第2のアドレス管理部101bは、入力した「1」番地の「A処理−1」のコマンドCMDがB処理のコマンドCMDbのコードではないと判定し、コマンド実行を第2の処理実行部104bに指示しない。同様に、第3のアドレス管理部101cは、入力した「1」番地の「A処理−1」のコマンドCMDがC処理のコマンドCMDcのコードではないと判定し、コマンド実行を第3の処理実行部104cに指示しない。
第1の処理実行部104aは、コマンドCMDaの実行を終了すると、終了通知CMPを第1のアドレス管理部101aに出力する。すると、第1のアドレス管理部101aは、ハイレベルの処理終了通知CMPAaを出力する。すると、論理和(OR)回路116は、ハイレベルの処理終了通知を出力する。
すると、処理シーケンス管理部111は、並列処理区間通知信号PAL2がローレベルであるので、アドレス制御部113によりアドレスADDをインクリメントし、「2」番地のアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。シーケンスコマンド格納メモリ114は、「2」番地のアドレスADDを入力すると、「2」番地のアドレスADDに格納されている「A処理−2」のコマンドCMD及び並列処理開始ビットを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、シーケンスコマンド格納メモリ114から並列処理開始ビットを入力すると、並列処理開始を認識し、ハイレベルの並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2を、処理シーケンス管理部111、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。
処理シーケンス管理部111内の並列処理区間保存部112は、並列処理区間通知信号PAL2がローレベルからハイレベルに変化すると、現在の「2」番地のアドレスADDが並列処理開始ビットのアドレスである旨を保存する。
処理シーケンス管理部111は、並列処理区間通知信号PAL2がローレベルであるときには、上記のように、1コマンドを読み出し、論理和回路116が出力する処理終了通知がハイレベルになると、次のコマンドCMDを読み出す。
これに対し、処理シーケンス管理部111は、並列処理区間通知信号PAL2がハイレベルになると、論理和回路116が出力する処理終了通知にかかわらずに、アドレス制御部113によりアドレスADDをインクリメントし、次の「3」番地のアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。シーケンスコマンド格納メモリ114は、「3」番地のアドレスADDを入力すると、「3」番地のアドレスADDに格納されている「B処理−1」のコマンドCMDを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、ハイレベルの並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2を維持する。
次に、処理シーケンス管理部111は、並列処理区間通知信号PAL2がハイレベルのままであるので、論理和回路116が出力する処理終了通知にかかわらずに、アドレス制御部113によりアドレスADDをインクリメントし、次の「4」番地のアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。シーケンスコマンド格納メモリ114は、「4」番地のアドレスADDを入力すると、「4」番地のアドレスADDに格納されている「C処理−1」のコマンドCMDを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、ハイレベルの並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2を維持する。
次に、処理シーケンス管理部111は、並列処理区間通知信号PAL2がハイレベルのままであるので、論理和回路116が出力する処理終了通知にかかわらずに、アドレス制御部113によりアドレスADDをインクリメントし、次の「5」番地のアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。シーケンスコマンド格納メモリ114は、「5」番地のアドレスADDを入力すると、「5」番地のアドレスADDに格納されている「A処理−3」のコマンドCMDを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、ハイレベルの並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2を維持する。
次に、処理シーケンス管理部111は、並列処理区間通知信号PAL2がハイレベルのままであるので、論理和回路116が出力する処理終了通知にかかわらずに、アドレス制御部113によりアドレスADDをインクリメントし、次の「6」番地のアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。シーケンスコマンド格納メモリ114は、「6」番地のアドレスADDを入力すると、「6」番地のアドレスADDに格納されている「B処理−2」のコマンドCMDを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、ハイレベルの並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2を維持する。
次に、処理シーケンス管理部111は、並列処理区間通知信号PAL2がハイレベルのままであるので、論理和回路116が出力する処理終了通知にかかわらずに、アドレス制御部113によりアドレスADDをインクリメントし、次の「7」番地のアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。シーケンスコマンド格納メモリ114は、「7」番地のアドレスADDを入力すると、「7」番地のアドレスADDに格納されている「C処理−2」のコマンドCMDを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、ハイレベルの並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2を維持する。
次に、処理シーケンス管理部111は、並列処理区間通知信号PAL2がハイレベルのままであるので、論理和回路116が出力する処理終了通知にかかわらずに、アドレス制御部113によりアドレスADDをインクリメントし、次の「8」番地のアドレスADDを、シーケンスコマンド格納メモリ114、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。シーケンスコマンド格納メモリ114は、「8」番地のアドレスADDを入力すると、「8」番地のアドレスADDに格納されている「A処理−4」のコマンドCMD及び並列処理終了ビットを、並列処理ビット抽出部115、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力する。並列処理ビット抽出部115は、シーケンスコマンド格納メモリ114から並列処理終了ビットを入力すると、並列処理区間通知信号PAL2をハイレベルからローレベルに変化させ、並列処理実行指示信号PAL1のハイレベルを維持する。
処理シーケンス管理部111内の並列処理区間保存部112は、並列処理区間通知信号PAL2がハイレベルからローレベルに変化すると、現在の「8」番地のアドレスADDが並列処理終了ビットのアドレスである旨を保存する。
処理シーケンス管理部111は、並列処理区間通知信号PAL2がローレベルになると、アドレスADDの出力を停止し、シーケンスコマンド格納メモリ114の読み出しも停止される。
上記のように、処理シーケンス管理部111は、「2」番地の並列処理開始ビットが存在するコマンドCMDから「8」番地の並列処理終了ビットが存在するコマンドCMDまでのシーケンスコマンドを連続してシーケンスコマンド格納メモリ114から読み出す。
次に、並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2がハイレベルである場合のアドレス管理部101a,101b,101cの処理を説明する。図3(A)に示すように、上記のように、「2」番地から「8」番地までのシーケンスコマンドが連続してシーケンスコマンド格納メモリ114から供給される。最終アドレスフラグ103a,103b,103cは、オフに初期化されている。
まず、図3(B)に示すように、「2」番地のコマンドCMD及び並列処理開始ビットが、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに供給される。
次に、図3(C)に示すように、第1のアドレス管理部101aは、供給された「2」番地の「A処理−2」のコマンドCMDがA処理のコマンドCMDaのコードであると判断し、「2」番地のアドレスADDを第1の実行アドレス102aとして記録し、「A処理−2」のコマンドCMDをA処理のコマンドCMDaとして第1の処理実行部104aに供給し、実行指示INSを第1の処理実行部104aに供給することによりコマンドCMDaの実行を指示する。すると、第1の処理実行部104aは、「A処理−2」のコマンドCMDaの実行を開始する。第1の実行アドレス102aは、第1の処理実行部104aが実行中のコマンドCMDのアドレスADDを示す。
第2のアドレス管理部101bは、供給された「2」番地の「A処理−2」のコマンドCMDがB処理のコマンドCMDbのコードではないと判断し、第2の処理実行部104bにコマンドCMDの実行を指示しない。
同様に、第3のアドレス管理部101cは、供給された「2」番地の「A処理−2」のコマンドCMDがC処理のコマンドCMDcのコードではないと判断し、第3の処理実行部104cにコマンドCMDの実行を指示しない。
次に、図4(A)に示すように、「3」番地のコマンドCMDが、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに供給される。
次に、図4(B)に示すように、第1のアドレス管理部101aは、第1の処理実行部104aが実行中であるので、供給された「3」番地のコマンドCMDを参照し、実行中である「2」番地の「A処理−2」のコマンドCMDが、「2」番地の並列処理開始ビットが存在するコマンドCMDから「8」番地の並列処理終了ビットが存在するコマンドCMDまでの中でA処理の最後のコマンドであるか否かを判断する。具体的には、「3」番地の「B処理−1」のコマンドCMDがA処理のコマンドCMDaのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第1の最終アドレスフラグ103aをオフのままにしておく。
第2のアドレス管理部101bは、供給された「3」番地の「B処理−1」のコマンドCMDがB処理のコマンドCMDbのコードであると判断し、「3」番地のアドレスADDを第2の実行アドレス102bとして記録し、「B処理−1」のコマンドCMDをB処理のコマンドCMDbとして第2の処理実行部104bに供給し、実行指示INSを第2の処理実行部104bに供給することによりコマンドCMDbの実行を指示する。すると、第2の処理実行部104bは、「B処理−1」のコマンドCMDbの実行を開始する。第2の実行アドレス102bは、第2の処理実行部104bが実行中のコマンドCMDのアドレスADDを示す。
第3のアドレス管理部101cは、供給された「3」番地の「B処理−1」のコマンドCMDがC処理のコマンドCMDcのコードではないと判断し、第3の処理実行部104cにコマンドCMDの実行を指示しない。
次に、図4(C)に示すように、「4」番地のコマンドCMDが、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに供給される。
次に、図4(D)に示すように、第1のアドレス管理部101aは、第1の処理実行部104aが実行中であるので、上記と同様に、「4」番地の「C処理−1」のコマンドCMDがA処理のコマンドCMDaのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第1の最終アドレスフラグ103aをオフのままにしておく。
同様に、第2のアドレス管理部101bは、第2の処理実行部104bが実行中であるので、上記と同様に、「4」番地の「C処理−1」のコマンドCMDがB処理のコマンドCMDbのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第2の最終アドレスフラグ103bをオフのままにしておく。
第3のアドレス管理部101cは、供給された「4」番地の「C処理−1」のコマンドCMDがC処理のコマンドCMDcのコードであると判断し、「4」番地のアドレスADDを第3の実行アドレス102cとして記録し、「C処理−1」のコマンドCMDをC処理のコマンドCMDcとして第3の処理実行部104cに供給し、実行指示INSを第3の処理実行部104cに供給することによりコマンドCMDcの実行を指示する。すると、第3の処理実行部104cは、「C処理−1」のコマンドCMDcの実行を開始する。第3の実行アドレス102cは、第3の処理実行部104cが実行中のコマンドCMDのアドレスADDを示す。
次に、図5(A)に示すように、「5」番地のコマンドCMDが、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに供給される。
次に、図5(B)に示すように、第1のアドレス管理部101aは、第1の処理実行部104aが実行中であるので、「5」番地の「A処理−3」のコマンドCMDがA処理のコマンドCMDaのコードであると判断し、並列処理終了フラグが存在する「8」番地のアドレスまでにA処理のコマンドが存在するので、第1の処理実行部104aが実行中のコマンドが最後のコマンドでないと判断し、第1の最終アドレスフラグ103aのオフを確定させる。
第2のアドレス管理部101bは、第2の処理実行部104bが実行中であるので、上記と同様に、「5」番地の「A処理−3」のコマンドCMDがB処理のコマンドCMDbのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第2の最終アドレスフラグ103bをオフのままにしておく。
同様に、第3のアドレス管理部101bは、第3の処理実行部104cが実行中であるので、「5」番地の「A処理−3」のコマンドCMDがC処理のコマンドCMDcのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第3の最終アドレスフラグ103cをオフのままにしておく。
次に、「6」番地のコマンドCMDが、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに供給され、上記と同様の処理が行われる。第2のアドレス管理部101bは、第2の処理実行部104bが実行中であるので、「6」番地の「B処理−2」のコマンドCMDがB処理のコマンドCMDbのコードであると判断し、並列処理終了フラグが存在する「8」番地のアドレスまでにB処理のコマンドが存在するので、第2の処理実行部104bが実行中のコマンドが最後のコマンドでないと判断し、第2の最終アドレスフラグ103bのオフを確定させる。
次に、「7」番地のコマンドCMDが、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに供給され、上記と同様の処理が行われる。第3のアドレス管理部101cは、第3の処理実行部104cが実行中であるので、「7」番地の「C処理−2」のコマンドCMDがC処理のコマンドCMDcのコードであると判断し、並列処理終了フラグが存在する「8」番地のアドレスまでにC処理のコマンドが存在するので、第3の処理実行部104cが実行中のコマンドが最後のコマンドでないと判断し、第3の最終アドレスフラグ103cのオフを確定させる。
次に、図5(C)に示すように、「8」番地のコマンドCMD及び並列処理終了ビットが、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに供給され、上記と同様の処理が行われる。第1のアドレス管理部101aは、上記のように、第1の処理実行部104aが実行中の「2」番地のコマンドが最後のコマンドでないので、第1の最終アドレスフラグ103aをオフのままにしておく。同様に、第2のアドレス管理部101bは、上記のように、第2の処理実行部104bが実行中の「3」番地のコマンドが最後のコマンドでないので、第2の最終アドレスフラグ103bをオフのままにしておく。同様に、第3のアドレス管理部101cは、上記のように、第3の処理実行部104cが実行中の「4」番地のコマンドが最後のコマンドでないので、第3の最終アドレスフラグ103cをオフのままにしておく。
これにより、3個の処理実行部104a,104b,104cの並列処理が行われる。その後、並列処理装置は、処理実行部104a,104b,104cのいずれかのコマンド実行が終了するまで待機する。
次に、図6(A)に示すように、第2の処理実行部104bは、コマンド実行を終了すると、終了通知CMPを第2のアドレス管理部101bに出力する。第2のアドレス管理部101bは、終了通知CMPを入力すると、ハイレベルの処理終了通知CMPAbを出力する。なお、第1の処理実行部104a及び第3の処理実行部104bは、コマンド実行中である。論理和回路116は、処理終了通知CMPAa、CMPAb及びCMPAcの論理和信号を出力する。この場合、論理和回路116は、ハイレベルの処理終了通知CMPAbを入力すると、ハイレベルの処理終了通知を処理シーケンス管理部111に出力する。すると、処理シーケンス管理部111は、並列処理区間保存部112が記録した並列処理開始ビットが存在する「2」番地から並列処理終了ビットが存在する「8」番地までのアドレスADDを、上記と同様に、再び連続して出力する。すると、それに対応し、シーケンスコマンド格納メモリ114は、上記と同様に、「2」番地のコマンドCMD(並列処理開始ビットを含む)から「8」番地のコマンドCMD(並列処理終了ビットを含む)までを連続して再び出力する。
第1のアドレス管理部101aは、第1の処理実行部104aがコマンド実行中であるので、新たなコマンド実行を指示しない。
第2のアドレス管理部101bは、第2の処理実行部104bから終了通知CMPを入力しているので、第2の実行アドレス102bの「3」番地より後のアドレスADDから順にコマンドを参照する。第2のアドレス管理部101bは、「4」番地の「C処理−1」のコマンドCMDがB処理のコマンドCMDbのコードではないと判断する。次に、第2のアドレス管理部101bは、「5」番地の「A処理−3」のコマンドCMDがB処理のコマンドCMDbのコードではないと判断する。次に、図6(B)に示すように、第2のアドレス管理部101bは、「6」番地の「B処理−2」のコマンドCMDがB処理のコマンドCMDbのコードであると判断し、「6」番地のアドレスADDを第2の実行アドレス102bとして記録し、「B処理−2」のコマンドCMDをB処理のコマンドCMDbとして第2の処理実行部104bに供給し、実行指示INSを第2の処理実行部104bに供給することによりコマンドCMDbの実行を指示する。すると、第2の処理実行部104bは、「B処理−2」のコマンドCMDbの実行を開始する。次に、第2のアドレス管理部101bは、第2の処理実行部104bが実行中であるので、上記と同様に、「7」番地の「C処理−2」のコマンドCMDがB処理のコマンドCMDbのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第2の最終アドレスフラグ103bをオフのままにしておく。次に、第2のアドレス管理部101bは、「8」番地の「A処理−4」のコマンドCMDがB処理のコマンドCMDbのコードではないと判断する。また、第2のアドレス管理部101bは、「8」番地の並列処理終了ビットを入力すると、第2の処理実行部104bが実行中の「6」番地のコマンドが最後のコマンドであると判断し、第2の最終アドレスフラグ103bをオンに書き換える。
第3のアドレス管理部101cは、第3の処理実行部104cがコマンド実行中であるので、新たなコマンド実行を指示しない。
これにより、3個の処理実行部104a,104b,104cの並列処理が行われる。その後、並列処理装置は、処理実行部104a,104b,104cのいずれかのコマンド実行が終了するまで待機する。
次に、図7(A)に示すように、第1の処理実行部104aは、コマンド実行を終了すると、終了通知CMPを第1のアドレス管理部101aに出力し、第3の処理実行部104cは、コマンド実行を終了すると、終了通知CMPを第3のアドレス管理部101cに出力する。なお、第2の処理実行部104bは、コマンド実行中である。第1のアドレス管理部101aは、終了通知CMPを入力すると、ハイレベルの処理終了通知CMPAaを出力する。第3のアドレス管理部101cは、終了通知CMPを入力すると、ハイレベルの処理終了通知CMPAcを出力する。論理和回路116は、ハイレベルの処理終了通知CMPAa及びCMPAcを入力すると、ハイレベルの処理終了通知を処理シーケンス管理部111に出力する。すると、処理シーケンス管理部111は、並列処理区間保存部112が記録した並列処理開始ビットが存在する「2」番地から並列処理終了ビットが存在する「8」番地までのアドレスADDを、上記と同様に、再び連続して出力する。すると、それに対応し、シーケンスコマンド格納メモリ114は、上記と同様に、「2」番地のコマンドCMD(並列処理開始ビットを含む)から「8」番地のコマンドCMD(並列処理終了ビットを含む)までを連続して再び出力する。
次に、第1のアドレス管理部101aは、第1の処理実行部104bから終了通知CMPを入力しているので、第1の実行アドレス102aの「2」番地より後のアドレスADDから順にコマンドを参照する。第1のアドレス管理部101aは、「3」番地の「B処理−1」のコマンドCMDがA処理のコマンドCMDaのコードではないと判断する。次に、第1のアドレス管理部101aは、「4」番地の「C処理−1」のコマンドCMDがA処理のコマンドCMDaのコードではないと判断する。次に、第1のアドレス管理部101aは、図7(B)に示すように、「5」番地の「A処理−3」のコマンドCMDがA処理のコマンドCMDaのコードであると判断し、「5」番地のアドレスADDを第1の実行アドレス102aとして記録し、「A処理−3」のコマンドCMDをA処理のコマンドCMDaとして第1の処理実行部104aに供給し、実行指示INSを第1の処理実行部104aに供給することによりコマンドCMDaの実行を指示する。すると、第1の処理実行部104aは、「A処理−3」のコマンドCMDaの実行を開始する。次に、第1のアドレス管理部101aは、第1の処理実行部104aが実行中であるので、上記と同様に、「6」番地の「B処理−2」のコマンドCMDがA処理のコマンドCMDaのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第1の最終アドレスフラグ103aをオフのままにしておく。次に、第1のアドレス管理部101aは、「7」番地の「C処理−2」のコマンドCMDがA処理のコマンドCMDaのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第1の最終アドレスフラグ103aをオフのままにしておく。次に、第1のアドレス管理部101aは、「8」番地の「A処理−4」のコマンドCMDがA処理のコマンドCMDaのコードであると判断し、並列処理終了フラグが存在する「8」番地のアドレスまでにA処理のコマンドが存在するので、第1の処理実行部104aが実行中のコマンドが最後のコマンドでないと判断し、第1の最終アドレスフラグ103aのオフを確定させる。
第2のアドレス管理部101bは、第2の処理実行部104bがコマンド実行中であるので、新たなコマンド実行を指示しない。
次に、第3のアドレス管理部101cは、第3の処理実行部104cから終了通知CMPを入力しているので、第3の実行アドレス102cの「4」番地より後のアドレスADDから順にコマンドを参照する。第3のアドレス管理部101cは、「5」番地の「A処理−3」のコマンドCMDがC処理のコマンドCMDcのコードではないと判断する。次に、第3のアドレス管理部101cは、「6」番地の「B処理−2」のコマンドCMDがC処理のコマンドCMDcのコードではないと判断する。次に、第3のアドレス管理部101cは、「7」番地の「C処理−2」のコマンドCMDがC処理のコマンドCMDcのコードであると判断し、「7」番地のアドレスADDを第3の実行アドレス102cとして記録し、「C処理−2」のコマンドCMDをC処理のコマンドCMDcとして第3の処理実行部104cに供給し、実行指示INSを第3の処理実行部104cに供給することによりコマンドCMDcの実行を指示する。すると、第3の処理実行部104cは、「C処理−2」のコマンドCMDcの実行を開始する。次に、第3のアドレス管理部101cは、第3の処理実行部104cが実行中であるので、上記と同様に、「8」番地の「A処理−4」のコマンドCMDがC処理のコマンドCMDcのコードではなく、かつその後に並列処理終了ビットが存在するので、第3の処理実行部104cが実行中の「C処理−2」のコマンドが最後のコマンドであると判断し、第3の最終アドレスフラグ103cをオフからオンに書き換える。
これにより、3個の処理実行部104a,104b,104cの並列処理が行われる。その後、並列処理装置は、処理実行部104a,104b,104cのいずれかのコマンド実行が終了するまで待機する。
次に、図8(A)に示すように、第1の処理実行部104aは、コマンド実行を終了すると、終了通知CMPを第1のアドレス管理部101aに出力し、第2の処理実行部104bは、コマンド実行を終了すると、終了通知CMPを第2のアドレス管理部101bに出力し、第3の処理実行部104cは、コマンド実行を終了すると、終了通知CMPを第3のアドレス管理部101cに出力する。第1のアドレス管理部101aは、終了通知CMPを入力すると、第1の最終アドレスフラグ103aがオフであるので、ハイレベルの処理終了通知CMPAaを出力する。第2のアドレス管理部101bは、終了通知CMPを入力すると、第2の最終アドレスフラグ103bがオンであるので、ハイレベルの最終処理終了通知CMPZbを出力し、第2の最終アドレスフラグ103bをオフに書き換える。第3のアドレス管理部101cは、終了通知CMPを入力すると、第2の最終アドレスフラグ103bがオンであるので、ハイレベルの最終処理終了通知CMPZcを出力し、第3の最終アドレスフラグ103cをオフに書き換える。論理和回路116は、ハイレベルの処理終了通知CMPAaを入力すると、ハイレベルの処理終了通知を処理シーケンス管理部111に出力する。すると、処理シーケンス管理部111は、並列処理区間保存部112が記録した並列処理開始ビットが存在する「2」番地から並列処理終了ビットが存在する「8」番地までのアドレスADDを、上記と同様に、再び連続して出力する。すると、それに対応し、シーケンスコマンド格納メモリ114は、上記と同様に、「2」番地のコマンドCMD(並列処理開始ビットを含む)から「8」番地のコマンドCMD(並列処理終了ビットを含む)までを連続して再び出力する。
なお、論理積(AND)回路117は、最終処理終了通知CMPZa、CMPZb及びCMPZcの論理積信号を出力する。この場合、最終処理終了通知CMPZb及びCMPZcがハイレベルであるが、最終処理終了通知CMPZaがローレベルであるので、論理積回路117は、ローレベルの最終処理終了通知を出力する。
次に、第1のアドレス管理部101aは、第1の処理実行部104aから終了通知CMPを入力しているので、第1の実行アドレス102cの「5」番地より後のアドレスADDから順にコマンドを参照する。第1のアドレス管理部101aは、「6」番地の「B処理−2」のコマンドCMDがA処理のコマンドCMDaのコードではないと判断する。次に、第1のアドレス管理部101aは、「7」番地の「C処理−2」のコマンドCMDがA処理のコマンドCMDaのコードではないと判断する。次に、図8(B)に示すように、第1のアドレス管理部101aは、「8」番地の「A処理−4」のコマンドCMDがA処理のコマンドCMDaのコードであると判断し、「8」番地のアドレスADDを第1の実行アドレス102aとして記録し、「A処理−4」のコマンドCMDをA処理のコマンドCMDaとして第1の処理実行部104aに供給し、実行指示INSを第1の処理実行部104aに供給することによりコマンドCMDaの実行を指示する。すると、第1の処理実行部104aは、「A処理−4」のコマンドCMDaの実行を開始する。次に、第1のアドレス管理部101aは、「8」番地の並列処理終了ビットを入力すると、第1の処理実行部104aが実行中の「A処理−4」のコマンドが最後のコマンドであると判断し、第1の最終アドレスフラグ103aをオフからオンに書き換える。
その後、並列処理装置は、第1の処理実行部104aのコマンド実行が終了するまで待機する。
次に、図9に示すように、第1の処理実行部104aは、コマンド実行を終了すると、終了通知CMPを第1のアドレス管理部101aに出力する。第1のアドレス管理部101aは、終了通知CMPを入力すると、第1の最終アドレスフラグ103aがオンであるので、ハイレベルの最終処理終了通知CMPZaを出力し、第1の最終アドレスフラグ103aをオフに書き換える。論理積回路117は、ハイレベルの最終処理終了通知CMPZa、CMPZb及びCMPZcを入力すると、ハイレベルの最終処理終了通知を並列処理ビット抽出部115に出力する。すると、並列処理ビット抽出部115は、ローレベルの並列処理実行指示信号PAL1を、処理シーケンス管理部111及びアドレス管理部101a,101b,101cに出力する。すると、処理シーケンス管理部111及びアドレス管理部101a,101b,101cは、並列処理の制御を終了し、上記の「1」番地のアドレスADDと同様の処理を行う。
すなわち、処理シーケンス管理部111は、並列処理実行指示信号PAL1がローレベルであるので、アドレス制御部113によりアドレスADDをインクリメントし、次の「9」番地のアドレスADDを出力する。シーケンスコマンド格納メモリ114は、「9」番地のアドレスADDを入力すると、「9」番地のアドレスADDに格納されている「B処理−3」のコマンドCMDを、並列処理ビット抽出部115及びアドレス管理部101a,101b,101cに出力する。並列処理ビット抽出部115は、シーケンスコマンド格納メモリ114から並列処理開始ビット又は並列処理終了ビットを入力しないので、並列処理実行指示信号PAL1及び並列処理区間通知信号PAL2をローレベルのままにする。
第1のアドレス管理部101aは、入力した「9」番地の「B処理−3」のコマンドCMDがA処理のコマンドCMDaのコードではないと判定し、コマンド実行を第1の処理実行部104aに指示しない。
第2のアドレス管理部101bは、入力した「9」番地の「B処理−3」のコマンドCMDがB処理のコマンドCMDbのコードであると判定し、そのコマンドCMDをB処理のコマンドCMDbとして第2の処理実行部104bに供給し、実行指示INSを第2の処理実行部104bに供給することにより第2の処理実行部104bにコマンドCMDbの実行を指示する。すると、第2の処理実行部104bは、コマンドCMDbの実行を開始する。
第3のアドレス管理部101cは、入力した「9」番地の「B処理−3」のコマンドCMDがC処理のコマンドCMDcのコードではないと判定し、コマンド実行を第3の処理実行部104cに指示しない。
第2の処理実行部104bは、コマンドCMDbの実行を終了すると、終了通知CMPを第2のアドレス管理部101bに出力する。すると、第2のアドレス管理部101bは、ハイレベルの処理終了通知CMPAbを出力する。すると、論理和回路116は、ハイレベルの処理終了通知を出力する。
すると、処理シーケンス管理部111は、並列処理実行指示信号PAL1がローレベルであるので、アドレス制御部113によりアドレスADDをインクリメントし、「10」番地のアドレスADDを出力する。シーケンスコマンド格納メモリ114は、「10」番地のアドレスADDを入力すると、「10」番地のアドレスADDに格納されているコマンドCMDを出力する。以下、上記と同様の処理を繰り返す。
なお、本実施形態では、アドレス管理部101a,101b,101c及び処理実行部104a,104b,104cの組みが3組存在する場合を例に説明したが、2組でもよいし、4組以上でもよい。アドレス管理部101a,101b,101c及び処理実行部104a,104b,104cの組みは2組以上あればよい。
以上のように、処理シーケンス管理部111は、並列処理実行指示信号PAL1がハイレベルのときには、「2」番地の並列処理開始ビットに対応付けられたコマンドから「8」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドをシーケンスコマンド格納メモリ114から連続して読み出して第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力させる。
第1のアドレス管理部101aは、シーケンスコマンド格納メモリ114から読み出されたシーケンスコマンドを先頭から順に参照し、第1の処理実行部104aが実行するコマンドを見つけるとそのコマンドの実行を第1の処理実行部104aに指示する。
第2のアドレス管理部101bは、シーケンスコマンド格納メモリ114から読み出されたシーケンスコマンドを先頭から順に参照し、第2の処理実行部104bが実行するコマンドを見つけるとそのコマンドの実行を第2の処理実行部104bに指示する。
第3のアドレス管理部101cは、シーケンスコマンド格納メモリ114から読み出されたシーケンスコマンドを先頭から順に参照し、第3の処理実行部104cが実行するコマンドを見つけるとそのコマンドの実行を第3の処理実行部104cに指示する。
処理シーケンス管理部111は、第1の処理実行部104a、第2の処理実行部104b又は第3の処理実行部104cがコマンドの実行を終了すると、論理和回路116からハイレベルの処理終了通知を入力し、再び、「2」番地の並列処理開始ビットに対応付けられたコマンドから「8」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドをシーケンスコマンド格納メモリ114から連続して読み出して第1のアドレス管理部104a、第2のアドレス管理部104b及び第3のアドレス管理部104cに出力させる。
第1のアドレス管理部101aは、第1の処理実行部104aのコマンドの実行が終了すると、その実行が終了したコマンドのアドレスより後のアドレスから順に、シーケンスコマンド格納メモリ114から読み出されたシーケンスコマンドを参照し、第1の処理実行部104aが実行するコマンドを見つけるとそのコマンドの実行を第1の処理実行部104aに指示する。
第2のアドレス管理部101bは、第2の処理実行部104bのコマンドの実行が終了すると、その実行が終了したコマンドのアドレスより後のアドレスから順に、シーケンスコマンド格納メモリ114から読み出されたシーケンスコマンドを参照し、第2の処理実行部104bが実行するコマンドを見つけるとそのコマンドの実行を第2の処理実行部104bに指示する。
第3のアドレス管理部101cは、第3の処理実行部104cのコマンドの実行が終了すると、その実行が終了したコマンドのアドレスより後のアドレスから順に、シーケンスコマンド格納メモリ114から読み出されたシーケンスコマンドを参照し、第3の処理実行部104cが実行するコマンドを見つけるとそのコマンドの実行を第3の処理実行部104cに指示する。
第1のアドレス管理部101aは、「2」番地の並列処理開始ビットに対応付けられたコマンドから「8」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、第1の処理実行部104aが実行する最後のコマンドの実行が終了すると、最後のコマンドの実行が終了した旨を示すハイレベルの最終処理終了通知CMPZaを出力する。
第2のアドレス管理部101bは、「2」番地の並列処理開始ビットに対応付けられたコマンドから「8」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、第2の処理実行部104bが実行する最後のコマンドの実行が終了すると、最後のコマンドの実行が終了した旨を示すハイレベルの最終処理終了通知CMPZbを出力する。
第3のアドレス管理部101cは、「2」番地の並列処理開始ビットに対応付けられたコマンドから「8」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、第3の処理実行部104cが実行する最後のコマンドの実行が終了すると、最後のコマンドの実行が終了した旨を示すハイレベルの最終処理終了通知CMPZcを出力する。
第1のアドレス管理部101aは、第1の処理実行部104aが最後のコマンドを実行中であるか否かを示す第1の最終アドレスフラグ103aを記憶する。第2のアドレス管理部101bは、第2の処理実行部104bが最後のコマンドを実行中であるか否かを示す第2の最終アドレスフラグ103bを記憶する。第3のアドレス管理部101cは、第3の処理実行部104cが最後のコマンドを実行中であるか否かを示す第3の最終アドレスフラグ103cを記憶する。
処理シーケンス管理部111は、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cからハイレベルの最終処理終了通知CMPZa、CMPZb及びCMPZcが出力されると、並列処理実行指示信号PAL1がローレベルになり、「8」番地の並列処理終了ビットに対応付けられたコマンドの次のアドレスの「9」番地のコマンドをシーケンスコマンド格納メモリ114から読み出して第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cに出力させる。
本実施形態によれば、第1のアドレス管理部101a、第2のアドレス管理部101b及び第3のアドレス管理部101cがそれぞれシーケンスコマンドから自己のコマンドを見つけるので、処理シーケンス管理部111を小型にできる。これにより、並列処理装置は、小規模の構成で、コマンドを並列処理することができる。
本実施形態では、処理実行部104a,104b,104cの実行のうちのどの実行が先に終了しても、処理シーケンス管理部111は同じ処理を繰り返すだけで対応できる。 また、上記では並列度が3の場合を例に説明したが、並列度の数は、処理実行部104a,104b,104cとアドレス管理部101a,101b,101cを必要数用意するだけで、変更することができる。また、アドレス管理部101a,101b,101cは、実行済みのコマンドのアドレス102a,102b,102cを基に次に受け付けるコマンドを判断するので、コマンド数に制限がない。また、本実施形態は、所定条件の下、処理速度(動作周波数)を速くすることも可能である。
(第2の実施形態)
図10は、第2の実施形態による並列処理装置の構成例を示す図である。図10の並列処理装置は、図1の並列処理装置に対して、コマンド定義表メモリ1001及びコマンドアサイン管理部1002が追加される。第1の実施形態では、第1の処理実行部104a、第2の処理実行部104b及び第3の処理実行部104cが実行する処理のコマンドが固定されていた。本実施形態では、第1の処理実行部104a、第2の処理実行部104b及び第3の処理実行部104cが実行する処理のコマンドを可変にするため、事前に処理のコマンドを割り当てることができる。以下、本実施形態が第1の実施形態と異なる点を説明する。
コマンド定義表メモリ1001は、コマンド定義表TBLを記憶する。コマンド定義表TBLは、コマンドID(識別子:Identifier)毎に、コマンドの内容、及びコマンドを割り当てる処理実行部104a,104b,104cの番号を記憶する。例えば、コマンドIDが「A」のコマンドは、コマンド内容が「演算」であり、第1の処理実行部104aに割り当てられる。コマンドIDが「B」のコマンドは、コマンド内容が「データ変換」であり、第2の処理実行部104bに割り当てられる。コマンドIDが「C」のコマンドは、コマンド内容が「通信処理」であり、第3の処理実行部104cに割り当てられる。
コマンドアサイン管理部1002は、例えば並列処理装置の初期化時に、定義表アドレスAD1をコマンド定義表メモリ1001に出力する。すると、コマンド定義表メモリ1001は、定義表アドレスAD1に記憶されているコマンド定義表TBLをコマンドアサイン管理部1002に出力する。コマンドアサイン管理部1002は、コマンド定義表TBLを基に、第1の処理実行部104aに割り当てられたコマンドのコマンドID1012を第1のアドレス管理部101aに出力し、第2の処理実行部104bに割り当てられたコマンドのコマンドID1012を第2のアドレス管理部101bに出力し、第3の処理実行部104cに割り当てられたコマンドのコマンドID1012を第3のアドレス管理部101cに出力する。また、コマンドアサイン管理部1002は、コマンド定義表TBLを基に、第1の処理実行部104aに割り当てられたコマンドのコンフィグレーション情報1011を第1の処理実行部104aに出力し、第2の処理実行部104bに割り当てられたコマンドのコンフィグレーション情報1011を第2の処理実行部104bに出力し、第3の処理実行部104cに割り当てられたコマンドコンフィグレーション情報1011を第3の処理実行部104cに出力する。その後、コマンドアサイン管理部1002は、アドレス管理部101a,101b,101c及び処理実行部104a,104b,104cに割り当て終了信号1013を出力する。
第1の処理実行部104aは、入力したコマンドコンフィグレーション情報1011を第1のコマンドコンフィグレーション情報1022aとして記憶し、第1のコマンドコンフィグレーション情報1022aの設定により、内部回路の接続等が制御され、割り当てられたコマンドCMD1の実行が可能になる。
第2の処理実行部104bは、入力したコマンドコンフィグレーション情報1011を第2のコマンドコンフィグレーション情報1022bとして記憶し、第2のコマンドコンフィグレーション情報1022bの設定により、内部回路の接続等が制御され、割り当てられたコマンドCMD2の実行が可能になる。
第3の処理実行部104cは、入力したコマンドコンフィグレーション情報1011を第3のコマンドコンフィグレーション情報1022cとして記憶し、第3のコマンドコンフィグレーション情報1022cの設定により、内部回路の接続等が制御され、割り当てられたコマンドCMD3の実行が可能になる。
第1のアドレス管理部101aは、第1のコマンドID保持部1021aを有する。第1のコマンドID保持部1021aは、コマンドアサイン管理部1002から入力したコマンドID1012を保持する。第1のアドレス管理部101aは、第1のコマンドID保持部1021aにより保持されたコマンドIDを参照することにより、入力したコマンドが第1の処理実行部104aが実行するコマンドCMD1か否かを判断することができる。第1のアドレス管理部101aは、入力したコマンドが第1の処理実行部104aが実行するコマンドCMD1である場合には、そのコマンドCMD1を第1の処理実行部104aに供給し、そのコマンドCMD1の実行を指示する。
第2のアドレス管理部101bは、第2のコマンドID保持部1021bを有する。第2のコマンドID保持部1021bは、コマンドアサイン管理部1002から入力したコマンドID1012を保持する。第2のアドレス管理部101bは、第2のコマンドID保持部1021bにより保持されたコマンドIDを参照することにより、入力したコマンドが第2の処理実行部104bが実行するコマンドCMD2か否かを判断することができる。第2のアドレス管理部101bは、入力したコマンドが第2の処理実行部104bが実行するコマンドCMD2である場合には、そのコマンドCMD2を第2の処理実行部104bに供給し、そのコマンドCMD2の実行を指示する。
第3のアドレス管理部101cは、第3のコマンドID保持部1021cを有する。第3のコマンドID保持部1021cは、コマンドアサイン管理部1002から入力したコマンドID1012を保持する。第3のアドレス管理部101cは、第3のコマンドID保持部1021cにより保持されたコマンドIDを参照することにより、入力したコマンドが第3の処理実行部104cが実行するコマンドCMD3か否かを判断することができる。第3のアドレス管理部101cは、入力したコマンドが第3の処理実行部104cが実行するコマンドCMD3である場合には、そのコマンドCMD3を第3の処理実行部104cに供給し、そのコマンドCMD3の実行を指示する。
以上のように、コマンドアサイン管理部1002は、第1の処理実行部104aが実行するコマンドを第1の処理実行部104a及び第1のアドレス管理部101aに対して割り当て、第2の処理実行部104bが実行するコマンドを第2の処理実行部104b及び第2のアドレス管理部101bに対して割り当て、第3の処理実行部104cが実行するコマンドを第3の処理実行部104c及び第3のアドレス管理部101cに対して割り当てる。上記の割り当て終了後、第1の実施形態と同様の処理を行うことができる。
本実施形態によれば、第1の処理実行部104a、第2の処理実行部104b及び第3の処理実行部104cが実行するコマンドを任意に割り当てることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101a 第1のアドレス管理部
101b 第2のアドレス管理部
101c 第3のアドレス管理部
102a 第1の実行アドレス
102b 第2の実行アドレス
102c 第3の実行アドレス
103a 第1の最終アドレスフラグ
103b 第2の最終アドレスフラグ
103c 第3の最終アドレスフラグ
104a 第1の処理実行部
104b 第2の処理実行部
104c 第3の処理実行部
111 処理シーケンス管理部
112 並列処理区間保存部
113 アドレス制御部
114 シーケンスコマンド格納メモリ
115 並列処理ビット抽出部
116 論理和回路
117 論理積回路

Claims (5)

  1. コマンドを実行する第1の処理実行部と、
    前記第1の処理実行部にコマンドの実行を指示する第1のアドレス管理部と、
    前記第1の処理実行部の実行と並列に、前記第1の処理実行部が実行するコマンドとは異なるコマンドを実行する第2の処理実行部と、
    前記第2の処理実行部にコマンドの実行を指示する第2のアドレス管理部と、
    各アドレスにシーケンスコマンドを格納し、並列処理開始のコマンドには並列処理開始ビットを対応付けて格納し、並列処理終了のコマンドには並列処理終了ビットを対応付けて格納するシーケンスコマンド格納メモリと、
    前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドを前記シーケンスコマンド格納メモリから連続して読み出して前記第1のアドレス管理部及び前記第2のアドレス管理部に出力させる処理シーケンス管理部とを有し、
    前記第1のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第1の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第1の処理実行部に指示し、
    前記第2のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第2の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第2の処理実行部に指示することを特徴とする並列処理装置。
  2. 前記第1のアドレス管理部は、前記第1の処理実行部が実行中のコマンドのアドレスを記憶し、
    前記第2のアドレス管理部は、前記第2の処理実行部が実行中のコマンドのアドレスを記憶し、
    前記処理シーケンス管理部は、少なくとも前記第1の処理実行部又は前記第2の処理実行部がコマンドの実行を終了すると、再び、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドを前記シーケンスコマンド格納メモリから連続して読み出して前記第1のアドレス管理部及び前記第2のアドレス管理部に出力させ、
    前記第1のアドレス管理部は、前記第1の処理実行部のコマンドの実行が終了すると、前記実行が終了したコマンドのアドレスより後のアドレスから順に、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを参照し、前記第1の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第1の処理実行部に指示し、
    前記第2のアドレス管理部は、前記第2の処理実行部のコマンドの実行が終了すると、前記実行が終了したコマンドのアドレスより後のアドレスから順に、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを参照し、前記第2の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第2の処理実行部に指示することを特徴とする請求項1記載の並列処理装置。
  3. 前記第1のアドレス管理部は、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、前記第1の処理実行部が実行する最後のコマンドの実行が終了すると、前記最後のコマンドの実行が終了した旨を出力し、
    前記第2のアドレス管理部は、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、前記第2の処理実行部が実行する最後のコマンドの実行が終了すると、前記最後のコマンドの実行が終了した旨を出力し、
    前記処理シーケンス管理部は、少なくとも前記第1のアドレス管理部及び前記第2のアドレス管理部から前記最後のコマンドの実行が終了した旨が出力されると、前記並列処理終了ビットに対応付けられたコマンドの次のアドレスのコマンドを前記シーケンスコマンド格納メモリから読み出して前記第1のアドレス管理部及び前記第2のアドレス管理部に出力させることを特徴とする請求項2記載の並列処理装置。
  4. 前記第1のアドレス管理部は、前記第1の処理実行部が前記最後のコマンドを実行中であるか否かを示す第1の最終アドレスフラグを記憶し、
    前記第2のアドレス管理部は、前記第2の処理実行部が前記最後のコマンドを実行中であるか否かを示す第2の最終アドレスフラグを記憶することを特徴とする請求項3記載の並列処理装置。
  5. さらに、前記第1の処理実行部が実行するコマンドを前記第1の処理実行部及び前記第1のアドレス管理部に対して割り当て、前記第2の処理実行部が実行するコマンドを前記第2の処理実行部及び前記第2のアドレス管理部に対して割り当てるコマンドアサイン管理部を有することを特徴とする請求項1〜4のいずれか1項に記載の並列処理装置。
JP2012061920A 2012-03-19 2012-03-19 並列処理装置 Expired - Fee Related JP5831316B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012061920A JP5831316B2 (ja) 2012-03-19 2012-03-19 並列処理装置
EP12198462.9A EP2642383B1 (en) 2012-03-19 2012-12-20 Parallel processing device
US13/722,494 US9164883B2 (en) 2012-03-19 2012-12-20 Parallel processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012061920A JP5831316B2 (ja) 2012-03-19 2012-03-19 並列処理装置

Publications (2)

Publication Number Publication Date
JP2013196289A JP2013196289A (ja) 2013-09-30
JP5831316B2 true JP5831316B2 (ja) 2015-12-09

Family

ID=47594411

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012061920A Expired - Fee Related JP5831316B2 (ja) 2012-03-19 2012-03-19 並列処理装置

Country Status (3)

Country Link
US (1) US9164883B2 (ja)
EP (1) EP2642383B1 (ja)
JP (1) JP5831316B2 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2211141A5 (ja) * 1972-12-14 1974-07-12 Honeywell Bull
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
JP3429631B2 (ja) 1996-09-09 2003-07-22 富士通株式会社 並列計算機システム
JPH10275080A (ja) * 1997-01-24 1998-10-13 Texas Instr Inc <Ti> マイクロプロセッサ
JPH11161491A (ja) 1997-11-27 1999-06-18 Oki Electric Ind Co Ltd 汎用プロセッサ
US7162620B2 (en) * 2002-03-13 2007-01-09 Sony Computer Entertainment Inc. Methods and apparatus for multi-processing execution of computer instructions
JP2005108086A (ja) 2003-10-01 2005-04-21 Handotai Rikougaku Kenkyu Center:Kk データ処理装置
AT501213B1 (de) * 2004-12-03 2006-10-15 On Demand Microelectronics Gmb Verfahren zum steuern der zyklischen zuführung von instruktionswörtern zu rechenelementen und datenverarbeitungseinrichtung mit einer solchen steuerung
JP4841861B2 (ja) 2005-05-06 2011-12-21 ルネサスエレクトロニクス株式会社 演算処理装置及びデータ転送処理の実行方法
US9632794B2 (en) * 2009-06-23 2017-04-25 Seiko Epson Corporation Subprocessor, integrated circuit device, and electronic apparatus

Also Published As

Publication number Publication date
US9164883B2 (en) 2015-10-20
EP2642383A3 (en) 2014-07-30
US20130246733A1 (en) 2013-09-19
EP2642383B1 (en) 2017-12-13
EP2642383A2 (en) 2013-09-25
JP2013196289A (ja) 2013-09-30

Similar Documents

Publication Publication Date Title
CN110678840B (zh) 张量寄存器文件
US9703603B1 (en) System and method for executing accelerator call
US9747132B2 (en) Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions
US11347563B2 (en) Computing system and method for operating computing system
JP5445669B2 (ja) マルチコアシステムおよび起動方法
JP2006313478A (ja) データ転送装置及び半導体集積回路装置
JP4921310B2 (ja) 命令ビット長削減方法
CN111913816B (zh) Gpgpu中簇的实现方法、装置、终端及介质
JP5831316B2 (ja) 並列処理装置
JP5355152B2 (ja) 動的再構成装置
JP2024501454A (ja) 高スループット及び低オーバーヘッドカーネルローンチのための圧縮されたコマンドパケット
US11677902B2 (en) Data processing method and related product
CN112540789B (zh) 一种指令处理装置、处理器及其处理方法
JP5641128B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
WO2016201699A1 (zh) 指令处理方法及设备
JP7080698B2 (ja) 情報処理装置
JP2016045703A (ja) 処理装置、処理装置の処理方法及びプログラム
JP5871298B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN104820574A (zh) 一种访问间接寻址寄存器的方法及电子设备
JP2010097356A (ja) 演算処理装置、それを搭載した通信装置および放送受信装置、ならびに情報処理装置
JP2008198148A (ja) プログラマブルコントローラ
TW201826114A (zh) 半導體裝置的處理器與其操作方法
JP5673322B2 (ja) ベクトル処理装置、システムおよびベクトル処理装置の動作方法
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP6323155B2 (ja) データ処理装置及びデータ処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150831

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151012

R150 Certificate of patent or registration of utility model

Ref document number: 5831316

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees