JP5895840B2 - マルチプロセッサシステム、実行制御方法、実行制御プログラム - Google Patents

マルチプロセッサシステム、実行制御方法、実行制御プログラム Download PDF

Info

Publication number
JP5895840B2
JP5895840B2 JP2012517266A JP2012517266A JP5895840B2 JP 5895840 B2 JP5895840 B2 JP 5895840B2 JP 2012517266 A JP2012517266 A JP 2012517266A JP 2012517266 A JP2012517266 A JP 2012517266A JP 5895840 B2 JP5895840 B2 JP 5895840B2
Authority
JP
Japan
Prior art keywords
status
command
processing
execution control
sub
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
JP2012517266A
Other languages
English (en)
Other versions
JPWO2011148920A1 (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.)
NEC Corp
Original Assignee
NEC 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
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012517266A priority Critical patent/JP5895840B2/ja
Publication of JPWO2011148920A1 publication Critical patent/JPWO2011148920A1/ja
Application granted granted Critical
Publication of JP5895840B2 publication Critical patent/JP5895840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

本発明は、マルチプロセッサシステムの改良に関し、特に、並列実行制御処理の柔軟性、拡張性を損なわずに高速化を可能とするマルチプロセッサシステムに関する。
マルチプロセッサシステムは、主に、各プロセッサがホモジニアスで対称的(SMP:Symmetric Multiprocessing)な構成のものと、ヘテロジニアスで非対称(AMP:Asymmetric multiprocessing)な構成のものに分類できる。
ここで、後者のヘテロジニアスなマルチプロセッサシステムにおいては、通常、メインプロセッサ(main processor:MP)が他の複数のサブプロセッサを直接実行制御する制御方法が一般的であった。
これは、システム全体を管理して主要な処理を行うメインプロセッサが、機能分散された各サブプロセッサの起動制御も実施するものである。
このとき、各サブプロセッサの制御はメインプロセッサがアクセス権を持つシステムバスを用いて行い、各サブプロセッサからの処理完了通知は、各サブプロセッサから割り込み信号をそれぞれ入力した上でシステムバスを用いて各サブプロセッサの状態を確認する方法が用いられてきた。
このような制御方法により、システム全体の状態管理や各サブプロセッサの状態管理を一箇所に集約できるため、マルチプロセッサシステム全体の制御シーケンスの検討及び実装が容易となるという利点や、デバッグ用に可観測性も高いという利点があった。
しかしながら、この場合、近年のシステムLSIの大規模化、複雑化に伴って、処理負荷がメインプロセッサに集中するようになるため、処理が破綻するという問題があった。
この問題を解決するため、例えば、特許文献1に示されるような、並列実行専用の実行制御部を備える技術が関連技術として提案されている。
特許文献1に記載の関連技術は、少なくとも2つ以上のサブプロセッサをパイプライン的に並列動作させる制御機構を実装することで、メインプロセッサからの負荷分散と各サブプロセッサの並列実行による稼働率向上を可能とするものである。
ただし、該実行制御部は、完了通知信号の入力など接続されるサブプロセッサ数に依存した回路構成となる。この場合、近年のシステムLSIでは、複数のサブプロセッサ(IPコア)が1チップに集積されることが一般的であり、短TAT(Turn Around Time)でのシステムの拡張、すなわち、コア数の増加を求められる。従って、その度に実行制御部の回路構成や内部コマンドテーブルの容量を変更する必要が生じ、拡張性が低いという問題がある。また、3つ以上の複数の処理が依存関係にあるような複雑な実行制御処理は困難であり柔軟性が低いという問題もある。
また、他の関連技術として、特許文献2に示されるような、並列実行制御専用の実行制御回路に柔軟性や拡張性を向上させた技術が提案されている。
特許文献2に記載の関連技術は、実行制御回路内に、実行制御用プロセッサと、各サブプロセッサからの処理ステータスを確認するためのステータスバス入力手段、容量を可変にできるステータスFIFOとを備えることにより、実行制御処理の負荷分散化と拡張性および柔軟性の向上を同時に達成できるものである。
しかしながら、この場合、各サブプロセッサの実行制御処理を、実行制御用プロセッサ上のソフトウェア処理により行うため、1つの処理ステータスに対する実行制御処理に、例えば数十から数百サイクル程度の処理時間が必要という問題があった。
また、サブプロセッサ数の拡張や処理ステータス数の拡張がそのまま実行制御用プロセッサの処理量増加につながるため、当該プロセッサの処理破綻や実行制御回路の個数増加が必要となるリスクが高くなるという問題もあった。
また、他の関連技術として、特許文献3に示されるような、命令バッファと応答バッファを用いてメインプロセッサによるサブプロセッサの制御を高速化する技術が提案されている。
特許文献3に記載の関連技術は、アイドル状態のサブプロセッサが自発的に命令バッファをリードすることで、メインプロセッサはどのサブプロセッサがアイドル状態かを認識する必要はなく、サブプロセッサ制御の高速化を可能とするものである。
しかしながら、この場合、各々のサブプロセッサがいずれのタスクも処理可能なホモジニアスで対称的(SMP)な構成であるという前提があり、そもそも本発明にて対象としているヘテロジニアスで非対称(AMP)なマルチプロセッサシステムには適用できないという問題がある。
また、特許文献2に記載の関連技術と同様、やはりメインプロセッサによるソフトウェア処理となるため、1タスク分の実行制御処理に、高速化できても数十サイクルから数百サイクル程度は必要になるという問題がある。
特開2003−208412号公報 国際公開番号WO2010/016169A1号公報 特開平9−218859号公報
第1の課題は、マルチプロセッサシステムにおいて、各サブプロセッサの実行制御をメインプロセッサではなく専用の実行制御用プロセッサ(CP)を用いて実施する場合、その実行制御処理時間(レイテンシ)が問題となり、マルチプロセッサシステム全体の処理が破綻してしまうことである。
その理由は、近年の画像処理用システムLSIや通信処理用システムLSIなどの更なる高速化要求に伴って、各サブプロセッサ間における実行制御に要する処理時間の影響により、全体の処理が間に合わなくなる可能性が高くなるためである。特に、各サブプロセッサを順番に用いてパイプライン的にデータ処理していくようなデータ処理システムでは、その各サブプロセッサ処理間における時間オーバヘッドをどれだけ小さくできるかが今後は重要な課題となる。
ただし、例えば実行制御用プロセッサによる実行制御処理をそのまま専用ハードウェア化して高速化した場合には、第2の課題として後述する柔軟性や拡張性が低下するという問題が発生する。
第2の課題は、実行制御専用のハードウェアを実装した場合に、マルチプロセッサシステム全体の拡張性や柔軟性が低いことである。
その理由は、一般的に実行制御部のインタフェースや回路構成は、接続されるサブプロセッサ数や処理ステータス数に依存する構成となることが多いためである。つまり、システム拡張のためにサブプロセッサ数や処理ステータス数を増加させたい場合に、実行制御部自体のインタフェースやテーブル容量などの回路変更が必要となる。
また、3つ以上のサブプロセッサによる各処理がお互いに依存関係にあるような複雑な実行制御処理を、テーブル引きを含めた専用ハードウェアを用いて実現することは一般的に困難であるという問題もある。仮に複雑な回路構成を用いて実現できたとしても当該実行制御処理に特化した回路である場合は、柔軟性や拡張性が非常に低いという問題が生じる。
(発明の目的)
本発明の目的は、上述した課題を解決し、並列実行制御処理の柔軟性、拡張性を損なわずに高速化を可能とするマルチプロセッサシステムを提供することである。
本発明の第1のマルチプロセッサシステムは、1つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサと、各複数のサブプロセッサの各々の実行制御を行う実行制御回路とを備え、実行制御回路は、各複数のサブプロセッサのいずれかに対して、コマンドを出力するのコントロールバス出力手段と、各複数のサブプロセッサの各々から、複数のサブプロセッサの各々に対して発行されたコマンドの処理状態を示すステータス通知を入力するステータスバス入力手段と、複数のサブプロセッサ内の、第1コマンドを発行されたサブプロセッサから入力された、第1のコマンドの処理状態を示すステータス通知が動作シーケンス上で次に発行される第2のコマンドと1対1の依存関係にあか否かを判定する判定回路と、依存関係があると判定された場合に、コントロールバス出力手段に第2のコマンドを発行するステータスアクセラレータと、依存関係がないと判定された場合に、ステータス通知を格納するためのステータスFIFO制御部と、格納されたステータス通知を用いて所定の解析を行い、コントロールバス出力手段に第3のコマンドを発行する実行制御用プロセッサとを備える。
本発明の第1の実行制御方法は、1つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおけるサブプロセッサの実行制御方法であって、各複数のサブプロセッサの各々の実行制御を行う実行制御回路を備え、実行制御回路の判定回路が、複数のサブプロセッサ内の、第1コマンドを発行されたサブプロセッサから入力された、第1のコマンドの処理状態を示すステータス通知が動作シーケンス上で次に発行される第2のコマンドと1対1の依存関係にあか否かを判定し、依存関係があると判定された場合に、実行制御回路のステータスアクセラレータが、第2のコマンドを発行し、依存関係がないと判定された場合に、実行制御回路のステータスFIFO制御部がステータス通知を格納し、実行制御回路の実行制御用プロセッサが、格納されたステータス通知を用いて所定の解析を行い、第3のコマンドを発行する
本発明の第1の実行制御プログラムは、1つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおいて、各複数のサブプロセッサの各々の実行制御を行う実行制御回路に、実行制御回路の判定回路が、複数のサブプロセッサ内の、第1コマンドを発行されたサブプロセッサから入力された、第1のコマンドの処理状態を示すステータス通知が動作シーケンス上で次に発行される第2のコマンドと1対1の依存関係にあか否かを判定する機能と、依存関係があると判定された場合に、実行制御回路のステータスアクセラレータが、第2のコマンドを発行する機能と、依存関係がないと判定された場合に、実行制御回路のステータスFIFO制御部がステータス通知を格納する機能と、実行制御回路の実行制御用プロセッサが、格納されたステータス通知を用いて所定の解析を行い、第3のコマンドを発行する機能とを実行させる。
本発明によれば、並列実行制御処理の柔軟性、拡張性を損なわずに高速化を可能とするマルチプロセッサシステムを提供できる。
本発明の第1の実施の形態におけるマルチプロセッサシステムの構成を示す図である。 本発明で想定している各サブプロセッサの並列実行制御を行う処理フロー例を示す図である。 本発明で想定している動作シーケンスの例を示す図である。 本発明で想定している高速処理可能な動作シーケンスの例を示す図である。 本発明におけるメインプロセッサからのコマンド設定シーケンスを示す図である。 本発明におけるメインプロセッサへの割り込み通知シーケンスを示す図である。 本発明におけるサブプロセッサへのコマンド発行シーケンスを示す図である。 本発明におけるサブプロセッサからのステータス通知シーケンスを示す図である。 本発明におけるステータスアクセラレータによる実行制御処理シーケンスを示す図である。 本発明の第1の実施の形態におけるステータスデータのフォーマットを示す図である。 本発明の第1の実施の形態における判定回路の構成を示す図である。 本発明におけるステータスアクセラレータの構成を示す図である。 本発明の実施例1におけるデータ符号化/復号化処理システムを示す図である。 本発明の実施例1における動作シーケンスの例を示す図である。 本発明におけるFIFO制御回路構成を示す図である。 本発明におけるFIFOメモリ制御部のバス制御構成を示す図である。 本発明の第2の実施の形態におけるマルチプロセッサの構成を示す図である。 本発明の第2の実施の形態におけるステータスデータのフォーマットを示す図である。 本発明の第2の実施の形態における判定回路の構成を示す図である。 本発明の第3の実施の形態におけるマルチプロセッサの構成を示す図である。
次に、本発明の実施の形態について、図面を参照して詳細に説明する。なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
第1の実施の形態では、本発明におけるマルチプロセッサシステムとして、発明した実行制御回路をデータ符号化/復号化処理システムに応用した場合の実施例1などを用いてその基本構成と特徴、動作について詳説する。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
図1は、本発明の第1の実施の形態であるマルチプロセッサシステムの例として、複数のサブプロセッサを実行制御するための実行制御回路を実装した場合の全体構成を示す図である。
本発明におけるマルチプロセッサシステムは、メインプロセッサ側にメインプロセッサ(MP(CPU))10と、そのシステムバスであるCPUバス11、周辺ブロック(ペリフェラル)として割り込みコントローラ12が存在し、サブプロセッサ側に各サブプロセッサ(機能ブロック)30〜3nが存在する構成である。n(1以上の任意の自然数)はサブプロセッサの数を示している。
メインプロセッサ(MP(CPU))10は、CPUバス11を用いてサブプロセッサ側の実行制御を行い、割り込みコントローラ12に入力される割り込み信号を用いてサブプロセッサ側の状態を確認する。
第1の実施の形態では、メインプロセッサ(MP(CPU))10とサブプロセッサ(機能ブロック)30〜3nの間に、本発明である実行制御回路20を実装する。この実行制御回路20は、実行制御用プロセッサ(CP)21、メインプロセッサ(MP(CPU))10との入出力インタフェース(CPU I/F(Interface)、 INTR I/F)、サブプロセッサとの入出力インタフェースとしてコントロールバス42、ステータスバス52を備える。実行制御回路20内に、実行制御用プロセッサ(CP)21用のCP用命令メモリ22及びCP用データメモリ23を備えることも可能である。
ここで、INTR I/Fとは、割り込みインタフェースを意味する。
実行制御回路20と各サブプロセッサ(機能ブロック)30〜3nの間には、実行制御回路20がサブプロセッサ(機能ブロック)30〜3nを制御するためのコントロールバス制御回路40と、サブプロセッサ(機能ブロック)30〜3nが処理ステータスを実行制御回路20に通知するためのステータスバス制御回路50を備えている。
実行制御回路20における各サブプロセッサ(機能ブロック)30〜3nからの入力インタフェースは、割り込み信号のような専用線ではなく、ステータスバス52での入力とし、実行制御回路20とサブプロセッサ(機能ブロック)30〜3n間にステータスバス制御回路50を備えることで、実行制御回路20はサブプロセッサ数に依存しないハードウェア構成とする。
実行制御回路20内には、ステータスバス52入力用に判定回路24、ステータスアクセラレータ25、ステータスFIFO(First−In First−Out)制御部26を備えている。ステータスバス52から入力されるステータスデータは、そのステータス通知に関連する処理IDと処理ステータス値に、ステータスバス制御回路50上でサブプロセッサIDを付加した形式のデータフォーマットとする。
ここで、入力されたステータスデータは、判定回路24にて次に発行される処理コマンドと1対1の依存関係にある単純な処理ステータスであるかを判定でき、ステータスアクセラレータ25またはステータスFIFO制御部26に転送可能な構成とする。そして、ステータスアクセラレータ25は、単純な処理ステータスを入力した場合に、対応する処理コマンドを自動的に発行可能な構成とする。
また、各サブプロセッサ(機能ブロック)30〜3nに対するコマンド発行用に実行制御回路20からコントロールバス42を出力し、実行制御回路20とサブプロセッサ(機能ブロック)30〜3n間にコントロールバス制御回路40を備えることで、実行制御回路20の構成はサブプロセッサ数に依存しない構成とする。
ここで、実行制御回路20内では、実行制御用プロセッサ(CP)21からのアクセスとステータスアクセラレータ25からのアクセスをコマンド調停回路29にて調停して出力する。
実行制御回路20内のメインプロセッサ(MP(CPU))10側のインタフェースとしては、メインプロセッサ(MP(CPU))10からのコマンド入力用にコマンドFIFO制御部27を備え、メインプロセッサ(MP(CPU))10への割り込み要因通知用に割り込みFIFO制御部28を備える構成とする。
一般的な割り込み要因レジスタを実装する方法では要因数がレジスタ数依存となり拡張性が低いため、より柔軟性が高い割り込みFIFO制御部28を備えることとする。
ここで、ステータスFIFO制御部26、コマンドFIFO制御部27、割り込みFIFO制御部28等の各FIFOは、同一のメモリ等を用いて共有化することで、各々のFIFO段数を柔軟に変更可能な構成としても何ら問題はない。
各サブプロセッサ(機能ブロック)30〜3n側の構成は、実行制御回路20からのコマンドを受け付けるためのコマンド受信制御部43と、実行制御回路20に対して処理完了などのステータスを通知するためのステータス通知制御部53を備える構成である。
コマンド受信制御部43はコントロールバスのスレーブ(受け側)として接続され、取得したコマンドをサブプロセッサ内部に伝える機能を持つ。
ステータス通知制御部53は、ステータスバスのマスタ(送り側)として接続され、サブプロセッサからのステータス値を実行制御回路20に転送する機能を持つ。
(第1の実施の形態の動作の説明)
次に、本実施の形態の動作について、図1から図12を参照して詳細に説明する。
図2は、図1に示した実行制御回路20を用いて複数のサブプロセッサ(機能ブロック)30〜3nの並列実行制御を行う処理フローの例について示す図である。
(1)メインプロセッサ(MP(CPU))10は、サブプロセッサを動作させるためのパラメータ等が存在する場合、共有メモリ60など各サブプロセッサ(機能ブロック)30〜3nからアクセス可能な領域に該パラメータ等を書き込んでおく。ただし、本発明において本処理は必須の処理ではない。
(2)メインプロセッサ(MP(CPU))10はCPU I/Fを介して、実行制御回路20に複数のサブプロセッサ(機能ブロック)30〜3nを連動させる動作シーケンスを設定の後、コマンドFIFO制御部27を用いて動作シーケンス開始などのコマンド発行を行う。
(3)実行制御回路20は、コントロールバス42を用いて、メインプロセッサ(MP(CPU))10からの動作シーケンスにて指定されたタイミングでサブプロセッサ30(機能ブロック#0)に対して処理Aの起動をかける。
(4)サブプロセッサ30(機能ブロック#0)は、実行制御回路20からの起動コマンドに基づき、共有メモリ60から処理Aに必要なパラメータと入力データを取得する。
(5)サブプロセッサ30(機能ブロック#0)は、処理Aを実行する。必要に応じてサブプロセッサ30(機能ブロック#0)内のローカルメモリを使用する。
(6) サブプロセッサ30(機能ブロック#0)は、処理Aの結果データを共有メモリ60に格納する。
(7)サブプロセッサ30(機能ブロック#0)は、ステータスバス52を介して、実行制御回路20に処理A完了を通知する。
(8)実行制御回路20は、処理A完了を認識後、メインプロセッサ(MP(CPU))10から設定された動作シーケンスに従って、コントロールバス42を用いて、サブプロセッサ31(機能ブロック#1)に対して処理Bを起動する。
(9)サブプロセッサ31(機能ブロック#1)は、実行制御回路20からの起動コマンドに基づき、共有メモリ60から処理Bに必要なパラメータと入力データを取得する。
(10)サブプロセッサ31(機能ブロック#1)は処理Bを実行する。必要に応じてサブプロセッサ31(機能ブロック#1)内のローカルメモリを使用する。
(11)サブプロセッサ31(機能ブロック#1)は処理Bの結果データを共有メモリ60に格納する。
(12)サブプロセッサ31(機能ブロック#1)は、ステータスバス52を介して、実行制御回路20に処理B完了を通知する。
(13)実行制御回路20は、処理B完了を認識後、メインプロセッサ(MP(CPU))10から設定された動作シーケンスに従って、INTR I/Fを用いて、メインプロセッサ(MP(CPU))10に処理完了を割り込み信号によって通知する。
(14)メインプロセッサ(MP(CPU))10は、割り込みにて処理完了を認識後、必要に応じて共有メモリ60から処理結果データを取得する。
ただし、本発明における実行制御回路20では、前記(8)(図2の(8))に示した動作のように、サブプロセッサからのステータス通知(処理の完了)を受けて次のサブプロセッサにコマンド発行(処理の起動)を行う動作については、以下の場合の何れかを選択することが可能である。
・受信したステータスデータの全てまたは一部のビットを用いて判定回路24にて判定することにより、ステータスアクセラレータ25にて直接テーブル引きして次のコマンドを自動発行する(ハードウェア処理する)場合。
・ステータスFIFO制御部26経由で実行制御用プロセッサ(CP)21にてソフトウェア処理する場合。
ここで、図3及び図4は、図2で示した動作シーケンス(各サブプロセッサ処理の依存関係)の例を示す図である。
図3の例では、処理Aの出力データとしてデータ0とデータ1が存在し、処理Bはそのデータ0を入力データ、データ2を出力データとし、処理Cはそのデータ1を入力データ、データ3を出力データとし、処理Dは処理B、Cの出力であるデータ2とデータ3を入力データとする場合の例を示している。
図3の例の場合、実行制御回路20は、処理Aを実施するサブプロセッサからデータ0の書き込み完了というステータス通知を受信することで処理B起動のコマンド発行を行い、データ1の書き込み完了というステータス通知を受信することで処理C起動のコマンド発行を行う。
また、処理Bを実施するサブプロセッサからのデータ2の書き込み完了というステータス通知と処理Cを実施するサブプロセッサからのデータ3の書き込み完了というステータス通知の両方ともを受信することで処理D起動のコマンド発行を行う。
図4の例では、処理Eはデータ4を出力データとし、処理Fはそのデータ4のみが入力データであり、また、処理Fはデータ5を出力データとし、処理Gはそのデータ5のみが入力データであるような場合の例を示している。
図4の例の場合、処理E完了のステータス通知と処理F起動のコマンド発行がデータ4を介して1対1の関係になっている。また、同様に、処理F完了のステータス通知と処理G起動のコマンド発行もデータ5を介して1対1の関係になっている。
本発明における実行制御回路20では、サブプロセッサ間の連続した処理間における処理ステータスと次のコマンド発行との関係が、このように1対1の依存関係にあるような部分の実行制御処理については、判定回路24にて判定し、ステータスアクセラレータ25にて当該コマンドを自動発行する(ハードウェア処理する)ことが可能という特徴がある。
本発明では、図3及び図4に示したような動作シーケンスを、各処理を定義する構造体と各データを定義する構造体を相互にリンクさせた構造体群として定義した上でCP用データメモリ23上に格納する。そして、実行制御用プロセッサ(CP)21が、取得した各ステータス通知からどのデータに変化があったのか(どのデータに対する処理が行われたのか)、及び、どのサブプロセッサが稼働中なのか(処理完了したのか)を認識し、CP用データメモリ23上に格納された構造体群のリンク(処理とデータの依存関係)を解析することによって、次に動作可能な処理コマンドを各サブプロセッサ(機能ブロック)30〜3nに発行する。
具体的には、図3に示した各処理において、その処理用の入力データが揃っており、出力データの書き込み先が空いており、かつ、処理を行うためのサブプロセッサ(演算リソース)が処理を実施可能な(稼働中でない)状態の場合に、該当サブプロセッサに対して該当処理コマンドを発行する。
このような動作を実行制御回路20が行うことにより、図2に示したような処理フローを実現でき、また、パイプライン的に入力データが発生するような処理の場合は、一連の処理を各サブプロセッサ(機能ブロック)30〜3nにパイプライン的に並列実行させることも可能となる。
ただし、例えば図4に示したような、サブプロセッサ間における処理ステータスと次のコマンド発行との依存関係が1対1であるような単純な動作シーケンスの実行制御処理については、その構造体群をCP用データメモリ23上に格納するのではなく、ステータスアクセラレータ25内にその対応テーブルを格納しておくことで、当該実行制御処理を、実行制御用プロセッサ(CP)21によるソフトウェア処理ではなくステータスアクセラレータ25によるハードウェア処理により高速化することができる。
次いで、図5から図9までに、図2で示した各処理フローの動作例について示す。
図5は、図2の(2)に示したような、メインプロセッサ(MP(CPU))10から実行制御回路20に対してコマンドFIFO制御部27を用いてコマンド発行を行う動作例を示す図である。
(A)メインプロセッサ(MP(CPU))10からMPバス14を通してコマンドFIFO制御部27に所望のコマンドデータを書き込むことにより、実行制御回路20内の実行制御用プロセッサ(CP)21に割り込み信号が発生し、(B)実行制御用プロセッサ(CP)21はコマンドFIFO制御部27からコマンドデータを取得することができる。
図6は、図2の(13)に示したような、実行制御回路20からメインプロセッサ(MP(CPU))10に対して割り込みFIFO制御部28を用いて動作シーケンスの完了などを割り込み信号で通知する動作例を示す図である。
(A)実行制御用プロセッサ(CP)21からCPバス15を通して割り込みFIFO制御部28にシーケンス完了などの割り込み要因データを書き込むことにより、(B)割り込みコントローラ12等を介してメインプロセッサ(MP(CPU))10に割り込み信号が通知される。(C)メインプロセッサ(MP(CPU))10は割り込みFIFO制御部28からその要因データを順に取得し、どの動作シーケンスが完了したのか等を認識することができる。
図7は、図2の(3)及び(8)に示したような、実行制御用プロセッサ(CP)21から各サブプロセッサ(機能ブロック)30〜3nに対して処理起動コマンドを発行する動作の例を示す図である。ただし、当該処理起動コマンドが、図4に示したような関連する処理ステータスと1対1の依存関係にある処理起動コマンドの場合は、図9や後述するその動作説明を参照のこと。
(A)実行制御用プロセッサ(CP)21はコントロールバス42を介して、該当処理を担当するサブプロセッサ(機能ブロック)に対して処理ID(命令番号)等の必要パラメータを設定後、処理起動コマンドを発行する。
サブプロセッサ(機能ブロック)側は、コマンド受信制御回路43にて処理コマンドを取得すると、設定された必要パラメータ等をサブプロセッサ(機能ブロック)内に伝達し、処理ID(命令番号)等にて指定された処理を実行する。
コントロールバス制御回路42は、例えばシングルレイヤバス構成で実現され、実行制御回路20からのコントロールバスアクセスに対してアドレスデコードを行い、選択されたサブプロセッサとの間でバスアクセスを実現する。
図8は、図2の(7)及び(12)に示したような、各サブプロセッサ(機能ブロック)30〜3nから実行制御回路20に対してステータスを通知する場合の動作の例を示す図である。ただし、当該処理ステータスが、図4に示したような次に発行される処理コマンドと1対1の依存関係にある処理ステータスの場合は、図9や後述するその動作説明を参照のこと。
(A)各サブプロセッサ(機能ブロック)はステータス通知制御回路53を用いて所望のステータスデータ(処理IDとそのステータス値など)を転送出力し、通知されたステータスデータが実行制御回路20内の判定回路24を経由してステータスFIFO制御部26に格納されると、実行制御用プロセッサ(CP)21に対して割り込み信号が出力され、(B)実行制御用プロセッサ(CP)21はステータスFIFO制御部26から該当ステータスデータを取得する。
ステータスバス制御回路52は、例えばシングルレイヤバス構成で実現され、各サブプロセッサ(機能ブロック)30〜3nからのステータスバスアクセスに対してアクセス競合した場合は「ラウンドロビン方式」等を用いてアクセス調停を行い、選択されたサブプロセッサからのステータスバスアクセスを実行制御回路20に転送する。
図9は、図2の(7)と(8)、及び図4に示したような、各サブプロセッサ(機能ブロック)30〜3nから実行制御回路20に対して処理ステータスを通知し、その処理ステータスと1対1の依存関係にある処理コマンドを、該当するサブプロセッサ(機能ブロック)30〜3nに対して自動発行する場合の動作の例を示す図である。
(A)各サブプロセッサ(機能ブロック)はステータス通知制御回路53を用いて所望のステータスデータ(処理IDとそのステータス値など)を転送出力し、通知されたステータスデータが実行制御回路20内の判定回路24にて1対1の依存関係にある処理ステータスと判定されるとステータスアクセラレータ25に転送される。(B)ステータスアクセラレータ25は、転送された処理ステータス値を用いて予め設定されたコマンドテーブルをテーブル引きすることにより対応する処理コマンド(サブプロセッサIDや処理ID(命令番号)等)を取得し、当該サブプロセッサに対して処理ID(命令番号)等の設定や処理起動コマンドを自動発行する。サブプロセッサ側のコマンド受信制御回路43の動作や、コントロールバス制御回路42の動作は、図7と同様であるため上記図7の説明を参照のこと。
(ステータスデータのフォーマットの説明)
図10は、本実施の形態におけるステータスデータのデータフォーマットの例を示す図である。ステータスデータの転送はステータスバス52を介して行われる。各サブプロセッサ(機能ブロック)30〜3nは、例えば、ステータスバス52のアドレス信号として処理ID(命令番号)を、データ信号としてそのステータス値(入力データ読み込み完了、出力データ書き込み完了、処理完了などを示す値)を通知する。更にステータスバス制御回路50上でアドレス信号の上位ビット等を用いてサブプロセッサIDを付加した上で実行制御回路20に通知される。
ここで、本実施の形態における実行制御回路20の特徴として、ステータス値の任意のビット(例えば、図10の例の場合はビット[15])を用いて、各サブプロセッサは、当該ステータスが次に発行される処理コマンドと1対1の依存関係にあるかどうかを通知できる構成とする。
例として、ビット[15]が”’1’の場合は、次に発行される処理コマンドと1対1の依存関係にある単純な処理ステータスであることを示し、ビット[15]が’0’の場合は、それ以外の通常の処理ステータスであることを示す。
本実施の形態においては、単純な処理ステータスであるかどうかの判定を判定回路24にて実施し、単純な処理ステータスの場合は、当該ステータス値がステータスアクセラレータ25に転送される。そして、処理ステータス値またはその一部のビットがステータスアクセラレータ25にて対応する処理コマンドをテーブル引きする際に用いられる。
ここで、判定に用いるビットは、図10に示したビット[15]は例であるため、ビット[15]以外の他のビットであっても何ら問題はないし、また、ステータスデータ中の任意の複数のビットを判定ビットとして使用しても何ら問題はない。
また、通常の処理ステータスの場合は、本発明における実行制御回路20では、転送アドレス(処理ID)ごとにステータスレジスタを実装する構成ではなく、サブプロセッサID(機能ブロックコード)や処理ID(転送アドレス信号)、そのステータス値(転送データ信号)を1つのステータスデータとしてまとめたデータフォーマットで実行制御回路20内のステータスFIFO制御部26に格納する。
ステータスバス52とこのようなデータフォーマットにより、実行制御用プロセッサ(CP)21は、ステータスFIFO制御部26から1回ステータスデータを読み出すだけで、どのサブプロセッサのどの処理に対するどういうステータスか(サブプロセッサIDと処理IDとそのステータス値)を取得できるという利点がある。また、このようなデータフォーマットを用いることと、ステータスFIFOを他FIFOと共有化することにより、将来的なシステム拡張性を考慮した場合においても過度に余分なステータスレジスタの実装も不要であり、ステータスFIFO段数の変更で容易に対応可能であるという利点もある。
(判定回路24の動作の説明)
図11は、本実施の形態における判定回路24の構成例について示すものである。
ステータスバス52からステータスデータが入力されると、判定回路24はその処理ステータスが次の処理コマンドと1対1の依存関係にあり高速処理するかの判定を行う。
具体的には、例えば、本実施の形態においては、ステータスデータのビット[15]を判定ビットとした場合、そのビット[15]が’1’であるかを、判定回路24内に備える比較判定回路70を用いて判定する。
そして、次に発行される処理コマンドと1対1の依存関係にある単純な処理ステータスと判定された場合(ビット[15]が’1’の場合)は、ステータス値の残りのビット(例えばビット[14:0])をステータスアクセラレータ25に転送する(EN_1が有効)。
一方、単純ではなく通常の処理ステータスと判定された場合(ビット[15]が’0’の場合)は当該ステータスデータをステータスFIFO制御部26に転送する(EN_0が有効)。ここで、ビット[15]は例であるため、判定に用いるビットは、ビット[15]以外の他のビットであっても何ら問題はないし、また、ステータスデータ中の任意の複数のビットを用いて判定しても何ら問題はない。
また、判定回路24は、デバッグ用やテスト用のフラグ(制御レジスタ)等を用いて、判定結果に関わらず全てのステータスデータをステータスFIFO25に転送して実行制御用プロセッサ(CP)21による確認や実行制御処理を可能にしたり、1対1と判定された場合にステータスアクセラレータ25とステータスFIFO制御部26の両方に転送したりする機能を有することも特徴とする。
ここで、判定回路24は、専用ハードウェアにより実現されるが、判定にステータスデータのみを用いるため、サブプロセッサから通知されるステータスデータの値を変更することで、その機能を変更可能な柔軟性と拡張性の高い構成で実現できることも特徴である。
(ステータスアクセラレータ25の動作の説明)
図12は、本発明の実行制御回路20におけるステータスアクセラレータ25の構成例について示すものである。
ステータスアクセラレータ25は、判定回路24から入力された、次に発行される処理コマンドと1対1の関係にある処理ステータス値またはそれに相当するデータの一部をアドレスとして、対応する処理コマンドが格納されているコマンドテーブル71(メモリ)を読み出す。
コマンドテーブル71には、当該処理コマンドの発行先となるコマンドアドレスに対応するサブプロセッサID(機能ブロックコード)とコマンドデータに対応する処理ID(命令番号)等が格納されている。
ステータスアクセラレータ25内のコマンド出力コントローラ72は、読み出したコマンドアドレスとコマンドデータを用いて、該当処理コマンドを担当するサブプロセッサ(機能ブロック)に対して処理ID(命令番号)等の必要パラメータを設定後、処理起動コマンドを自動発行する。
ここで、ステータスアクセラレータ25内のコマンドテーブル71の値は、実行制御用プロセッサ(CP)21のブート動作時などシステムの初期動作時に、実行制御用プロセッサ(CP)21やメインプロセッサ(MP(CPU))10からCPバス15経由で書き込み可能な構成とする。
ステータスアクセラレータ25を、このようにコマンドテーブル71を用いた書き換え可能な構成とすることで、どの処理ステータスを単純な処理ステータスとして高速に処理すべきか、または、通常の処理ステータスとして実行制御用プロセッサ(CP)に処理させるか等、システムLSI開発後に柔軟に変更したり、拡張したりすることが可能という大きな利点がある。
また、処理コマンド発行時にステータスアクセラレータ25から出力されたコントロールバス42へのバスアクセスは、実行制御用プロセッサ(CP)21からのCPバス15経由でのアクセスと競合した場合は、コマンド調停回路29にてアクセス調停され、コントロールバス42に転送される。
コマンド調停回路29は、基本的にはステータスアクセラレータ25からのバスアクセスを常に優先としたアクセス調停を行う。ただし、1つの処理コマンド発行に複数回のバスアクセスが必要な場合は、その分だけは連続的にアクセス実行できるようなバスアクセス調停を実施する。
ここで、本発明におけるステータスアクセラレータ25は、専用ハードウェアにより実現されるが、その機能としてコマンドテーブル71のテーブル引きを用いるため、メインプロセッサや実行制御用プロセッサからそのコマンドテーブル71の値を変更することで、発行する処理コマンド等を任意に変更可能な柔軟性と拡張性の高い構成で実現できることも特徴である。すなわち、コマンドテーブル71の設定値は、実行制御用プロセッサの命令コード等と同等に扱えるという利点がある。
図13は、本実施の形態を、具体的なマルチプロセッサシステム例の1つとして、複数の符号化処理方式(符号化方式A、符号化方式B)に対応したデータ符号化/復号化処理システムに適用した場合の例を示した図である。
(構成の説明)
データ符号化/復号化処理システム全体を制御するメインプロセッサ(MP(CPU))10及びCPUバス11、割り込みコントローラ12、外部メモリコントローラ13等を備え、実際にデータ符号化/復号化処理を行うサブプロセッサ(機能ブロック)として31〜35のプロセッサ要素(FA1、 FA2、 FA3、 FA4、 FA5)を、LSI外部とのインタフェースを行うサブプロセッサ(機能ブロック)として36のプロセッサ要素(F6)を備える。
また、メインプロセッサ(MP(CPU))10と各サブプロセッサ31〜36の間に、本発明の特徴であるこれら複数のサブプロセッサ31〜36の並列実行制御を行うための実行制御回路20を実装し、実行制御回路20とサブプロセッサ31〜36との間に、コントロールバス制御回路40及びステータスバス制御回路50を備える。
各サブプロセッサ31〜36は、実行制御回路20からコントロールバス42を通してコマンドを受信するためのコマンド受信制御部43と、ステータスバス52を通して実行制御回路20にステータスを通知するためのステータス通知制御部53を備える。
各サブプロセッサ間におけるデータの転送はLSI内の共有メモリ60を介して行い、共有メモリ60はマルチバンク化されているため、メインプロセッサ(MP(CPU))10や各サブプロセッサ(機能ブロック)31〜36から異なるバンクの共有メモリに対しては並列にアクセスすることが可能である。また、各サブプロセッサ31〜36間におけるデータ転送は全てこの共有メモリ60を介して行うことで、異なるサブプロセッサ31〜36間における直接の通信手段は不要となる。すなわち、本実施例のようなマルチプロセッサ構成により、サブプロセッサ(機能ブロック)の再利用可能性の向上やシステム全体の拡張性向上が期待できる。
ここで、実施例1における実行制御回路20内において、図1に示したステータスFIFO制御部26、コマンドFIFO制御部27、割り込みFIFO制御部28など各FIFOの制御機能は専用のハードウェア回路26、27、28で実現する。しかし、FIFOの実体については、同一アドレス空間上のメモリ(FIFOメモリ)であるFIFOメモリ制御部61を用いて共有化し、制御レジスタ62内に各々のFIFOのベースアドレス、FIFO段数を設定するためのレジスタ等を備えることにより、各々のFIFO構成を可変にできる構成で実現する。
(動作の説明)
実施例1の動作について、図13から図16を用いて説明する。
図14は、符号化方式A及び符号化方式Bの各々のデータ符号化/復号化処理の動作シーケンスを示す図である。
符号化方式Aを処理する場合のデータ符号化/復号化処理システムでは、データ符号化処理の場合、メインプロセッサ(MP(CPU))10から実行制御回路20に対して符号化処理Aシーケンス実行のコマンドを発行すると、実行制御回路20は、図14に示したような符号化処理Aシーケンスを解析し、(A)メインプロセッサ(MP(CPU))10からの符号処理データA転送完了ステータスを受けて機能ブロック31へ符号化処理FA1起動コマンドを発行したり、(B)機能ブロック31からの符号化処理FA1完了ステータスを受けて機能ブロック32に符号化処理FA2起動コマンドを発行したり、(C)機能ブロック32からの符号化処理FA2完了ステータスを受けて機能ブロック36に符号化データ転送処理F6起動コマンドを発行したり、といった実行制御処理を行う。
このような実行制御処理により、メインプロセッサから次の符号処理データAが格納されることで、各機能ブロックの動作はパイプライン並列動作となる。
この時、図14に「1対1」と示すように、例えば、符号化処理FA1完了ステータスと符号化処理FA2起動コマンド間などはサブプロセッサ(機能ブロック)間における1対1の依存関係が成り立つ。このため、ステータスアクセラレータ25内のコマンドテーブル71に対応する処理コマンドを設定しておき、当該ステータスデータ中の判定ビットを1にすることで、ステータスアクセラレータ25による実行制御処理の高速化が可能となる。
復号化処理の場合、メインプロセッサ(MP(CPU))10から実行制御回路20に対して復号化処理Aシーケンス実行のコマンドを発行すると、実行制御回路20は、図14に示したような復号化処理Aシーケンスを解析し、(A)定常的、周期的に発生する機能ブロック36からの入力データ転送処理F7完了ステータスを受けて機能ブロック35へ復号化処理FA5起動コマンドを発行したり、(B)復号化処理FA5完了ステータスを受けて機能ブロック34へ復号化処理FA4起動コマンドを発行したり、(C)復号化処理FA4完了ステータスを受けて機能ブロック33へ復号化処理FA3コマンドを発行したり、(D)復号化処理FA3完了ステータスを受けてメインプロセッサ(MP(CPU))10へ復号化データ通知割り込みを発行するといった処理を実行する。
このような実行制御処理により、定常的、周期的に復号処理データDが転送されてくることで、各機能ブロックの動作はパイプライン並列動作となる。復号化処理時も同様に、図14に「1対1」と示される復号化処理FA5完了ステータスと符号化処理FA4起動コマンド間などはサブプロセッサ(機能ブロック)間における1対1の依存関係が成り立つため、ステータスアクセラレータ25による実行制御処理の高速化が可能である。
また、別の符号化方式Bのデータ符号化/復号化システムとして動作する場合も、データ符号化/復号化方式Aの場合と基本的な実行制御動作は同様である。この時、各サブプロセッサ(機能ブロック)31〜35は符号化方式A(FA1、FA2、FA3、FA4、FA5)、符号化方式B(FB1、FB2、FB3、FB4、FB5)のどちらの処理にも対応しており、実行制御回路20から指示される処理コマンド(処理ID)によって処理を選択実行する。実行制御回路20内に登録する動作シーケンスとしても、符号化方式Aの場合と符号化方式Bの場合の両方を実装する。
システム全体を符号化方式A処理用から符号化方式B処理用に、あるいは、符号化方式B処理用から符号化方式A処理用に切り替える場合は、メインプロセッサ(MP(CPU))10が該当する符号化方式用の動作シーケンスを実行(実行制御回路20にコマンド発行)することによって容易に切り替えることが可能である。
ここで、次に発行される処理コマンドと1対1の依存関係にある単純な処理ステータスの高速化処理についても、予め複数の動作シーケンス分をステータスアクセラレータ25内のコマンドテーブル71に設定しておくか、または、符号化方式を切り替えたタイミングでコマンドテーブル71の値も書き換えることで、柔軟に複数の動作シーケンスに対応できるという利点がある。
また、図13に示した構成では、メインプロセッサ(MP(CPU))10とサブプロセッサ31〜36間、異なるサブプロセッサ間の転送に共有メモリ60を利用する。
この場合、異なるサブプロセッサ間における直接の通信手段は不要となる上、処理に必要な処理パラメータ等も共有メモリ60に書き込んでおくことで、実行制御回路20から全てのサブプロセッサ31〜36に対しては、処理内容(処理ID)および必要に応じてその処理用のパラメータを格納している共有メモリアドレス(データポインタ)、起動コマンドだけを発行するという共通の制御で起動制御が可能となる。更に、本発明の特徴である実行制御回路20と、異なるサブプロセッサ間のデータ転送に共有メモリ60を用いることで、図14に示したような各サブプロセッサ(機能ブロック)の処理順序(実行順序)が異なるような複数の動作シーケンスにも柔軟に対応可能であるという大きな利点がある。
(FIFO共有化のための動作の説明)
FIFO共有化のための動作について、図15および図16を用いて説明する。図15は、FIFOの共有化の構成例について示す図である。
図1では論理的なブロック構成として、CPバス15及びMPバス14、ステータスバス52からそれぞれのFIFOにアクセスするためには、割り込みFIFO制御部28、ステータスFIFO制御部26、コマンドFIFO制御部27に対して直接アクセスするように示したが、FIFOを共有化する場合は、図15に示すように、FIFOメモリ制御部61へアクセスすることになる。
また、ステータスFIFO制御部26、コマンドFIFO制御部27、割り込みFIFO制御部28については、内部にFIFOの実体は存在せず、各FIFOの書き込みポインタ(WP)、読み出しポインタ(RP)、格納データ数(NUM)などの制御を行う。
したがって、ステータスFIFO制御部26、コマンドFIFO制御部27、割り込みFIFO制御部28は、それぞれ、書き込みポインタレジスタ、読み出しポインタレジスタ、格納データ数レジスタ、Full/Emptyフラグを示すステータスレジスタ、FIFOをクリアするためのクリアレジスタ(CLR)、FIFOに書き込みが生じた場合に発生するメインプロセッサ(MP(CPU))10や実行制御用プロセッサ(CP)21への割り込みをマスクするためのマスクレジスタ(MSK)等を備える。
制御レジスタ部62は、FIFO共有化のための設定レジスタである各FIFO分のベースアドレスレジスタ(BASE)、段数レジスタ(DEPTH)、データビット幅レジスタ(WIDTH)等を備える。
FIFOメモリ制御部61は、各FIFOの実体であるFIFO用メモリ(FIFO RAM)を備え、制御レジスタ部62からの各FIFOベースアドレス(BASE)や、ステータスFIFO制御部26、コマンドFIFO制御部27、割り込みFIFO制御部28からの各書き込みアドレスポインタ(WP)、各読み出しアドレスポインタ(RP)を用いてメモリアクセスのアドレス変換を行うアドレス変換回路(Address Conv.)を、CPバス15やMPバス14、判定回路24を経由したステータスバスそれぞれからのFIFOアクセス用に備える。
ステータスFIFO制御部26、コマンドFIFO制御部27、割り込みFIFO制御部28など各FIFO制御部の動作について図15を用いて説明する。
各FIFO制御部26、27、28は、制御レジスタ部62からの各FIFO段数信号(DEPTH)、各FIFOデータビット幅信号(WIDTH)や、FIFOメモリ制御部61からの各FIFOの書き込みイネーブル信号(WE)、読み出しイネーブル信号(RE)を用いて、各FIFOの書き込みアドレスポインタ(WP)と読み出しアドレスポインタ(RP)、格納データ数(NUM)などの制御を行う。また、この他に、FIFOステータスレジスタ機能やFIFOクリア機能、割り込みマスク機能などを備えていても何ら問題はない。
図16はFIFOメモリ制御部61のバス制御を示す図である。ステータスFIFO制御部26、コマンドFIFO制御部27、割り込みFIFO制御部28などの各FIFOについての実装は、1つのメモリ(FIFO用メモリ)を使用し、各FIFO領域およびFIFO段数については、ベースアドレスレジスタ(BASE)及びFIFO段数レジスタ(DEPTH)を用いて可変に設定することが可能である。
各FIFOに対してデータを書き込む場合、及び、各FIFOからデータを読み出す場合は、専用の「割り込みFIFO書き込みアドレス領域(INTWRITE)」「割り込みFIFO読み出しアドレス領域(INTREAD)」「ステータスFIFO読み出しアドレス領域(STATREAD)」「コマンドFIFO書き込みアドレス領域(CMDWRITE)」「コマンドFIFO読み出しアドレス領域(CMDREAD)」等のアドレスを使用してアクセスする。これらの領域にアクセスがあった場合は、それぞれ、各FIFOのベースアドレス(BASE)、書き込みアドレスポインタ(WADR(WP))、読み出しアドレスポインタ(RADR(RP))の値を用いて実際のFIFO用メモリに対するアドレスにアドレス変換処理を行う。
また、図16に示したFIFOメモリ制御部61では、各FIFOの実装に1つのFIFO用メモリ(FIFO RAM)を用いるため、CPバス15、MPバス14、ステータスバス52からのアクセス競合の調停も行う。
特にアクセス制御レジスタ等を用いずにハードウェア的にアクセス調停(アービトレーション)を実施し、調停方法は「ラウンドロビン方式」または「優先度がMPバス14>CPバス15>ステータスバスの順の固定優先度方式」などを用いる。
このように、制御レジスタ部62が各FIFOベースアドレスレジスタ(BASE)や段数設定レジスタ(DEPTH)、データビット幅レジスタ(WIDTH)を備え、各FIFO制御部25、26、27が書き込み/読み出しポインタや格納データ数などの制御機能を備え、FIFOメモリ制御部61が各FIFOアクセスのアドレス変換機能を備えることで、各FIFO(ステータスFIFO、コマンドFIFO、割り込みFIFO)の共有化が可能となり、各FIFO段数やデータビット幅を可変にすることも可能となる。結果として、拡張性や柔軟性が非常に高い実行制御回路20を実現できるという利点がある。なお、ステータスアクセラレータ25内のコマンドテーブル71も同様に、各FIFOと同一のメモリを用いて共有化する構成としても何ら問題はない。
上述したように、本発明によれば、各サブプロセッサからの処理ステータスを、次に発行される処理コマンドと1対1の依存関係にあるような単純な処理ステータスと、それ以外の通常の処理ステータスとに分類し、通知された処理ステータスがいずれに該当するかを実行制御回路内に判定回路(ステータスデコーダ)を備えることで判定可能である。
そして、1対1の依存関係にある単純な処理ステータスの場合は、実行制御回路内にステータスアクセラレータを備えることで、対応する処理コマンドを専用回路によるテーブル引きにより自動発行することが可能である。
したがって、単純な処理ステータスであるか否か等に応じて専用ハードウェア処理が可能となり、実行制御用プロセッサによるソフトウェア処理に比べて格段の高速化が可能である。また、2つ以上の処理ステータスが関係して1つの処理コマンドを発行するなど3つ以上の処理が依存関係にあるような通常の実行制御処理は、当該処理ステータスを判定回路を用いてステータスFIFOに転送可能なことにより、実行制御用プロセッサによるソフトウェア処理にて実現できるため、高い柔軟性も同時に実現可能という利点がある。
また、ステータスアクセラレータによるハードウェア的な実行制御処理と、ステータスFIFOと実行制御プロセッサ(CP)21によるソフトウェア的な実行制御処理は並列に実行可能なため、その分の負荷分散化による高速化も可能となる。
なお、ステータスアクセラレータ内のコマンド発行用のコマンドテーブルは、実行制御用プロセッサ(CP)21やメインプロセッサ(MP(CPU))10から設定可能な構成とするため、LSI開発後に仕様変更等により当該テーブルを変更したり拡張したりすることが容易であり、また、実行制御回路のインタフェースが接続されるサブプロセッサ数や処理ステータス数に依存しない構成のため、高速化と合わせて柔軟性や拡張性も非常に高いという利点がある。
(第1の実施の形態による効果)
次に本実施の形態の効果について説明する。本実施の形態によれば、以下のような効果が期待できる。
第1の効果は、マルチプロセッサシステムにおいて、メインプロセッサから実行制御回路に負荷分散化(オフロード化)した各サブプロセッサ実行制御機能を、高速化および更に負荷分散化できる。
その理由は、各サブプロセッサの並列実行制御するための実行制御回路を備え、サブプロセッサの実行順序を規定した動作シーケンスの中において、各サブプロセッサ間における処理ステータスと次に発行される処理コマンドとの依存関係が1対1である動作シーケンスの実行制御処理については、実行制御用プロセッサによるソフトウェア処理ではなく、ステータスアクセラレータによるハードウェア処理にて実現できるためである。
特に、関連技術ではハードウェア処理化することで柔軟性や拡張性が低下する場合が多かったが、本発明では,第2及び第3の効果として後述するシステム全体の高い柔軟性や拡張性を維持したままで、実行制御処理の高速化を実現できることは本発明における最も大きな効果である。
実行制御処理を実行制御用プロセッサでソフトウェア処理する場合は、ステータスFIFOからのステータスデータの読み出し、当該動作シーケンスの特定と解析、処理コマンドの発行まで全てプロセッサ処理で実現するため、数十サイクルから数百サイクル程度の処理サイクル数(レイテンシ)が想定される。一方、ステータスアクセラレータにてハードウェア処理する場合には、判定回路での判定からステータスアクセラレータでのテーブル引き、処理コマンドの発行まで全てハードウェアにて処理されるため、数サイクル程度(10サイクル以下)の処理サイクル数(レイテンシ)にて実現可能である。すなわち、実行制御用プロセッサによるソフトウェア処理の場合に比べて数倍から10倍以上の高速化が可能である。
更に、実施例1(図14の動作シーケンス例)で示したように、各サブプロセッサをパイプライン並列処理させるような実際のデータ処理システムにおいては、各サブプロセッサ間における処理ステータスと次に発行される処理コマンドとの関係は1対1である可能性が高くなるため、高速化効果が得られる可能性もより高くなるという利点もある。
また、実行制御用プロセッサによるソフトウェア処理と、ステータスアクセラレータによるハードウェア処理は並列に動作可能であるため、実行制御用プロセッサによる処理を想定していた単純な処理ステータス分の実行制御処理を、ステータスアクセラレータにて処理させることにより、実行制御用プロセッサの処理負荷を負荷分散させることも可能となる。
これは全ての実行制御処理を実行制御用プロセッサによって処理させる関連技術に比べて、実行制御プロセッサが処理破綻するリスクを大幅に減らすことができる。
第2の効果は、実行制御回路を備えた、柔軟性の高いマルチプロセッサシステムを提供できることである。特に、サブプロセッサ間にて処理ステータスと次に発行される処理コマンドとの依存関係が1対1であるような動作シーケンスの実行制御処理の高速化を、簡単なハードウェア回路の追加だけで高い柔軟性を維持したまま実現できることである。
その理由は、本発明では、実行制御回路の構成として、各サブプロセッサ間における実行制御処理については、その処理ステータスと次に発行される処理コマンドとの依存関係が1対1である場合には、簡単なテーブル引きにより実現されるステータスアクセラレータを用いて高速にハードウェア処理させるか、段数可変のステータスFIFOと実行制御用プロセッサを用いて柔軟にソフトウェア処理させるかを、例えば実行制御用プロセッサの処理負荷やコマンドテーブルの容量等に応じて各々の処理ステータスごとに柔軟に選択することができるためである。
特に、高速化する実行制御処理を、サブプロセッサ間における処理ステータスと次に発行される処理コマンドとの依存関係が1対1である動作シーケンスに限定することにより、複雑で専用のハードウェア構成ではなく、比較的簡単でかつ柔軟なテーブル引きを行うハードウェア回路(判定回路とステータスアクセラレータ)の追加のみで、柔軟性を維持したままでの高速化が可能という利点がある。
また、すなわち、本発明の実行制御回路における実行制御処理の高速化は、例えば前記特許文献2に示されるような高い柔軟性を持つ実行制御回路と、単純な判定回路の組み合わせのみで容易に実現できるものではなく、図3や図4および図14に示したように、処理ステータスと次に発行される処理コマンドとの依存関係が1対1であるという動作シーケンス中の特性を見出して、高速化可能かどうかの基準(判定のポイント)として活用していることに大きな特徴がある。
また、ステータスデータ中に判定ビットを設けるデータフォーマットとすることで、判定回路における判定機能を比較的簡単な比較判定回路にて実現可能であることを示した。
この場合、当該処理ステータスの実行制御処理をステータスアクセラレータにてハードウェア処理させるか、実行制御用プロセッサにてソフトウェア処理させるかに応じてステータスデータの値をサブプロセッサ側にて変更する必要があるものの、判定回路は非常に簡単なものを用いて実現可能という利点がある。
また、実施例1にて詳説したように、実行制御回路内のステータスFIFO、コマンドFIFO、割り込みFIFOを同一のメモリ上に共有化することで、LSI開発後に、動作シーケンスや実行制御用プロセッサの処理量に応じて各FIFOの段数等を柔軟に調整することができるという利点もある。
第3の効果は、実行制御回路を備えた、拡張性の高いマルチプロセッサシステムを提供できることである。特に、サブプロセッサ間にて処理ステータスと次に発行される処理コマンドとの依存関係が1対1であるような動作シーケンスの実行制御処理の高速化を、高い拡張性を維持したまま実現できることである。
その理由は、本発明では、実行制御回路の構成として、各サブプロセッサからのステータス通知の処理用に、図10に示したようなステータスデータのフォーマットと、段数可変のステータスFIFO、そして専用ハードウェア構成となるステータスアクセラレータも設定変更可能なコマンドテーブル等を用いて実現することにより、実行制御回路のハードウェア構成の変更なしにサブプロセッサ数や処理ステータス数の拡張等に対応可能であるためである。
特に、次に発行される処理コマンドとの依存関係が1対1であるような処理ステータスを拡張する場合には、処理サイクル数の少ないステータスアクセラレータにて処理可能なため、全体処理レイテンシや実行制御用プロセッサの処理負荷への影響なしに、ステータスアクセラレータ内のコマンドテーブル等の設定変更のみで拡張可能という利点もある。
また、実行制御回路のハードウェアは、基本的に実行制御用プロセッサと各インタフェース用の各FIFO、ステータス処理を高速化するために追加した簡単なハードウェア回路(判定回路とステータスアクセラレータ)のみで構成され、メインプロセッサ側のインタフェースであるコマンドFIFO、割り込みFIFOについても、他の各FIFOとの共有化により段数設定可能であるため、本発明における実行制御回路は様々なマルチプロセッサシステムに応用できる流用可能性も高いという利点がある。
(第2の実施の形態)
次に、本発明の第2の実施の形態について、図面を参照して詳細に説明する。以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
本実施の形態では、実行制御回路の判定回路におけるステータス判定に連想メモリ(CAM: Content Addressable Memory)を用いた場合の例について詳説する。
図17は、本発明の第2の実施の形態である、実行制御回路の判定回路におけるステータス判定に連想メモリ(CAM: Content Addressable Memory)を用いた場合のマルチプロセッサシステムの構成例を示す図である。
第1の実施の形態と同様、本発明におけるマルチプロセッサシステムは、メインプロセッサ側にメインプロセッサ(MP(CPU))10とそのCPUバス11、周辺ブロック(ペリフェラル)として割り込みコントローラ12などが存在し、サブプロセッサ側に各サブプロセッサ(機能ブロック)30〜3nが存在するような構成を想定している。メインプロセッサ(MP(CPU))10はCPUバス11を用いてサブプロセッサ側の実行制御を行い、割り込みコントローラ12に入力される割り込み信号を用いてサブプロセッサ側の状態を確認する。また、メインプロセッサ(MP(CPU))10とサブプロセッサ(機能ブロック)30〜3nの間に本発明である実行制御回路20を実装し、実行制御回路20は、第1の実施の形態と同様のインタフェース(CPU I/F、INTR I/F、コントロールバス42、ステータスバス52)を備える。
また、実行制御回路20と各サブプロセッサ(機能ブロック)30〜3nの間も、第1の実施の形態と同様、コントロールバス制御回路40とステータスバス制御回路50から構成される。各サブプロセッサ(機能ブロック)30〜3n側の構成としても、第1の実施の形態と同様、コマンド取得制御部43とステータス通知制御部53を備えている。
第2の実施の形態に特有の実行制御回路20内の構成として、処理ステータス値に判定ビットを設けることなく次に発行される処理コマンドと1対1の依存関係にあるかを判定可能なように、判定回路24に連想メモリ(ハッシュテーブル)を備えることを特徴とする。
更に、そのハッシュテーブルの内容を実行制御用プロセッサ(CP)21から設定可能なように、判定回路24はCPバス15からのアクセスインタフェースを備えることも特徴とする。また、第2の実施の形態では、コントロールバス42およびステータスバス52のアクセス状況をLSI外部で観測するためのバスモニタ出力回路63を備えることとする。
(第2の実施の形態の動作の説明)
次に、本実施の形態の動作について、図17から図19を参照して詳細に説明する。
実行制御回路20の基本的な動作、すなわち、図2に示した処理フローや図3及び図4に示した動作シーケンス、図5から図9に示した動作イメージについては第1の実施の形態と同様であるが、第2の実施の形態に特有の動作としては、判定回路24内に連想メモリ(ハッシュテーブル)を備え、その連想メモリ(ハッシュテーブル)を用いて、各サブプロセッサ(機能ブロック)30〜3nから通知された処理ステータスが次に発行される処理コマンドと1対1の関係にあるかの判定を実施することである。また、そのため、第1の実施の形態のようなステータスデータ中に判定ビットを設定することが不要となる点である。
図18は、第2の実施の形態におけるステータスデータのデータフォーマットの例を示す図である。
本実施の形態におけるステータスデータの基本的な構成は、図10に示した第1の実施の形態におけるデータフォーマットと同様であるが、次に発行される処理コマンドと1対1の依存関係にある単純な処理ステータスであるかを示す判定ビットが不要である点が異なる。
また、単純な処理ステータスの場合に、処理ステータス値またはその一部のビットをステータスアクセラレータ25にてテーブル引きする際にもそのアドレスとして使用されなくなるため、第1の実施の形態である図10のフォーマットに比べて、第2の実施の形態では、各サブプロセッサ(機能ブロック)30〜3nにより柔軟に処理ステータス値を割り当てることが可能である。
すなわち、ステータスアクセラレータ25によるハードウェア処理と実行制御用プロセッサ(CP)21によるソフトウェア処理との選択に、各サブプロセッサ側から通知するステータスデータの変更は不要であり、判定回路内の連想メモリ(ハッシュテーブル)やステータスアクセラレータ25内のコマンドテーブル71など実行制御回路内のテーブル設定変更のみでより柔軟に実現可能という利点がある。
図19は、本実施の形態における判定回路24の構成例を示す図である。第2の実施の形態における判定回路24では、内部に備える連想メモリ(CAM: Content Addressable Memory)73を用いて各サブプロセッサ(機能ブロック)30〜3nから通知された処理ステータスが次に発行される処理コマンドと1対1の依存関係にあるかを判定する。
判定回路24は、通知されたステータスデータ[31:0]をデータとして連想メモリ(CAM)73にアクセスを行い、データがヒットした場合(単純な処理ステータスの場合)は出力されるそのアドレスをステータスアクセラレータ25に転送し、ステータスアクセラレータ25ではそのアドレスを用いてコマンドテーブル71をテーブル引きすることで、ハードウェアで高速に実行制御処理を行う。
一方、連想メモリ(CAM)73にてヒットしなかった場合(通常の処理ステータスの場合)は、入力されたステータスデータをそのままステータスFIFO制御部26に転送し、実行制御用プロセッサ(CP)21によるソフトウェア処理にて当該ステータスの実行制御処理を行う。
ここで、実行制御用プロセッサ(CP)21は、ブート動作時などの初期動作時にCPバス15を用いて、図19に示した判定回路24内の連想メモリ(CAM)73と、図12に示したステータスアクセラレータ25内のコマンドテーブル71とに、各サブプロセッサ間にて1対1の依存関係にある高速処理すべきステータスデータ値と処理コマンドの値とを、各々のメモリの同一のアドレスにペアにして設定しておく。複数存在する場合は、アドレスを変更して設定することで対応可能である。
ただし、連想メモリ(CAM)73は、データを入力するとそのアドレスが出力されるというその特徴から、基本的には当該メモリ内を一度に全探索する必要がある。したがって、一般的には高速にアクセス可能な連想メモリ(CAM)73を用意するのは困難である。
そこで、本実施の形態では、ハッシュテーブル(メモリ)75と、その探索範囲を限定可能なアドレスカウンタ76とを用いることにより、比較的に高速アクセス可能な連想メモリ(CAM)73を実現することも特徴とする。
まず、ステータスバス52からステータスデータが通知された場合、例えばビットごとの排他的論理和(XOR)を計算するなどのハッシュ関数(ハッシュ値計算回路)74を用いてハッシュ値を求める。
次に、そのハッシュ値を基準アドレスとして、アドレスカウンタ76はハッシュテーブル(メモリ)75にアクセスを実施し、入力されたステータスデータと値が一致するか否かを比較回路77にて判定する。
値が一致した場合は、そのアクセスアドレスを連想メモリ(CAM)73の出力アドレスとし、次の処理コマンドと1対1の依存関係にある単純な処理ステータスとしてステータスアクセラレータ25に転送する。
値が一致しなかった場合は、実行制御用プロセッサ(CP)21から予め設定された「順方向探索数A」と「逆方向探索数B」の設定値を用いて、アドレスカウンタ76は「基準アドレス」から「基準アドレス+A」までと、「基準アドレス−1」から「基準アドレス−B」までとを順番にハッシュテーブル(メモリ)75にアクセスして再検索並びに再判定する。
−Bから+Aまでの範囲で全て一致しなかった場合は、次の処理コマンドと1対1の依存関係にはない通常の処理ステータスとなるため、当該ステータスデータをステータスFIFO制御部26に転送する。
ここで、実行制御用プロセッサ(CP)21は、予め、次の処理コマンドと1対1の依存関係にある単純なステータスデータについてはハッシュ値を計算し、そのハッシュ値をアドレスとしてハッシュテーブル75に当該ステータスデータを設定しておく。
また、ステータスアクセラレータ25内のコマンドテーブル71には、同じアドレスに対応する処理コマンドを設定する。複数のステータスデータが同一のハッシュ値を持つ場合には、そのハッシュ値を基準として前後の空いているアドレスに設定する。
その場合には、前記「順方向探索数A」と「逆方向探索数B」の制御レジスタに、そのステータスデータの位置まで探索可能なように値を設定しておく。
本実施の形態における判定回路24では、このように、単純なハッシュ計算機74とハッシュテーブル(メモリ)75、探索範囲を限定可能なアドレスカウンタ76とを備えることで、比較的簡単な回路構成で、高速にアクセス可能な連想メモリ(CAM)73を実現することが可能である。
更に、本発明におけるハッシュテーブル(メモリ)75に特有の特徴として、対象となる全データ分を格納する必要はなく、判定回路24やステータスアクセラレータ25の処理負荷に応じて、高速化すべき優先度が相対的に低い単純なステータスデータについては、ハッシュテーブル75へは格納せずにステータスFIFO制御部26経由で実行制御用プロセッサ(CP)21に処理させるなど、柔軟な構成を選択できるという利点もある。
また、図17に示した第2の実施の形態では、バスモニタ機能も有する。
バスモニタ出力回路63にて、実行制御回路20から各サブプロセッサ(機能ブロック)30〜3nへ処理開始などのコマンド発行を行うコントロールバス42と、各サブプロセッサ(機能ブロック)30〜3nから実行制御回路20に対して処理完了通知やエラー通知などを行うステータスバス52の2種類のシングルレイヤバスアクセスだけをLSI外部にモニタ出力することで、各サブプロセッサの処理実行に関するほとんど全ての状態(開始、終了など)を観測することが比較的容易に可能である。
このように観測容易性(デバッグ容易性)が比較的高いのは、ステータス通知に各サブプロセッサからの専用線や専用バスではなく、本発明の特徴であるステータスバス52とステータスバス制御回路50を用いることにより、実行制御回路20と各サブプロセッサ(機能ブロック)30〜3n間の通信を全て共通バス化できるためである。
(第2の実施の形態による効果)
次に本実施の形態の効果について説明する。
本実施の形態によれば、判定回路における判定機能を柔軟な連想メモリ(ハッシュテーブル)を用いた構成とすることで、第1の実施の形態に比べて少し複雑で規模の大きいハードウェアが必要となるものの、ステータスアクセラレータによるハードウェア処理と実行制御用プロセッサによるソフトウェア処理との選択に、各サブプロセッサ側から通知するステータスデータの変更は不要であり、判定回路内の連想メモリ(ハッシュテーブル)やステータスアクセラレータ内のコマンドテーブルなど実行制御回路内のテーブル設定変更のみでより柔軟に実現可能という利点がある。
また、本実施の形態によれば、バスモニタ出力装置を備えたことにより、デバッグ容易性、可観測性の高いマルチプロセッサシステムを実現できる。
その理由は、実行制御回路と各サブプロセッサ間のインタフェースはコントロールバスとステータスバスのみで構成され、各サブプロセッサへの処理内容(処理ID)と処理起動コマンドなどはコントロールバスを用いて転送され、各サブプロセッサからの処理完了などステータス通知はステータスバスを用いて転送されるため、この2種類のバスをLSI外部にバスモニタ出力することだけで、各サブプロセッサの処理実行に関するほとんど全ての動作状態(開始、終了など)を比較的容易に観測できるためである。
特に、各サブプロセッサからのステータス通知手段として、可観測性の低い専用線や専用バスではなく、可観測性の高いステータスバス構成にて実現していることにより、実行制御回路と各サブプロセッサ間の全ての通信を2種類のシングルレイヤバス上のみで観測することが可能である。
また、第1の実施の形態において実施例1に示したように、共有メモリを用いてサブプロセッサ間のデータ転送を実現する場合は、観測したい共有メモリバスを選択してLSI外部にモニタ出力することでサブプロセッサ間のデータ転送も観測することができる。
(第3の実施の形態)
本発明の第3の実施の形態について、図20を参照して詳細に説明する。図20において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
本実施の形態では、実行制御回路自体を複数備え、各サブプロセッサの実行制御処理を並列化する場合の例について詳説する。
図20は、本実施の形態である、実行制御回路20自体を複数備え、各サブプロセッサの実行制御処理を並列化する場合のマルチプロセッサシステムの構成例を示す図である。
第1及び第2の実施の形態と同様、本発明におけるマルチプロセッサシステムは、メインプロセッサ側にメインプロセッサ(MP(CPU))10とそのCPUバス11、周辺ブロック(ペリフェラル)として割り込みコントローラ12などが存在し、サブプロセッサ側に各サブプロセッサ(機能ブロック)30〜3nが存在するような構成を想定している。メメインプロセッサ(MP(CPU))10はCPUバス11を用いてサブプロセッサ側の実行制御を行い、割り込みコントローラ12に入力される割り込み信号を用いてサブプロセッサ側の状態を確認する。
第3の実施の形態に特有の構成として、メインプロセッサ(MP(CPU))10とサブプロセッサ(機能ブロック)30〜3nの間に本発明である実行制御回路20を複数個(20a、20b)実装し、実行制御処理を並列実行させることを特徴とする。
実行制御回路20a、20bの構成やインタフェースは、第1及び第2の実施の形態における実行制御回路20と同様のハードウェア構成およびインタフェース(CPU I/F、INTR I/F、 コントロールバス42、ステータスバス52)で実現可能である。
また、実行制御回路20a、20bと各サブプロセッサ(機能ブロック)30〜3nの間は、コントロールバス制御回路40とステータスバス制御回路50から構成される。
ただし、コントロールバス制御回路40とステータスバス制御回路50は、図20に示したように、2つの実行制御回路20a、20bで共有して1つずつだけ備える構成で実現しても良いし、複数の実行制御回路ごとにそれぞれコントロールバス制御回路40、ステータスバス制御回路50を備えていても何ら問題はない。
また、図20では、実行制御回路20が2つの場合の例を示しているが、3つ以上備えて並列動作させる場合でも何ら問題はない。メインプロセッサ側の割り込みコントローラ12のみ、実行制御回路20の実装数に依存して割り込み信号の入力本数が変更されるが、それ以外のブロックは、比較的構成変更が容易であるバス制御回路(CPUバス11、コントロールバス制御回路40、ステータスバス制御回路50)の変更だけで対応可能である。すなわち、実行制御回路20の内部構成およびインタフェースの変更は不要であり、システムに依存して変更となる可能性があるステータスアクセラレータ25にて高速化する処理ステータスの変更や各FIFOのFIFO段数などの変更についても本発明の特徴であるコマンドテーブル71等の書き換え機能や実施例1で示したFIFO共有化の機能を用いることで、ハードウェア構成を変更することなく対応可能である。
ここで、図20ではメインプロセッサ(MP(CPU))10は便宜的に1つで記載しているが、実行制御回路20と同様、複数のメインプロセッサ(MP(CPU))が存在しても何ら問題はない。
(第3の実施の形態の動作の説明)
次に、本実施の形態の動作について、詳細に説明する。
本実施の形態に特有の動作としては、本発明の特徴である実行制御回路を複数(図20の例では2個)備え、実行制御処理を並列動作および負荷分散することを特徴としている。
メインプロセッサ(MP(CPU))10から処理に必要な動作シーケンスを実行制御回路20a、20bに分散させて登録し、該当する動作シーケンスが登録されている実行制御回路に該当動作シーケンスの開始コマンドを発行する。
それぞれの実行制御回路に異なった動作シーケンスを実行させることによって、実行制御処理の並列化が可能となり、システム全体として更なる負荷分散が可能となる。
また、システム全体の処理負荷に応じて、サブプロセッサの個数も更に増加させることが可能となる。
サブプロセッサ(機能ブロック)30〜3n側の動作は基本的には第1及び第2の実施の形態と同様だが、2つの実行制御回路20a、20bの両方から制御されるサブプロセッサについては両方の実行制御回路に対して処理ステータスの通知を実施する必要がある。
一方の実行制御回路からしか制御されないサブプロセッサについては該当する実行制御回路のみに処理ステータスを通知する。本発明における実行制御回路20は、処理ステータスの実行制御処理に実行制御用プロセッサ(CP)21から設定変更可能なコマンドテーブル71やFIFO段数可変のステータスFIFOを用いているため、ステータス通知の変更にも柔軟に対応可能である。
コントロールバス制御回路40では、2つの実行制御回路20a、20bからのコントロールバスアクセスが競合した場合はラウンドロビン方式等でアクセス調停を行った上でアドレスデコードを行い、選択された実行制御部とサブプロセッサの間でコントロールバスアクセスを実現する。
ステータスバス制御回路50では、各サブプロセッサ(機能ブロック)30〜3nからのステータスバスアクセスが競合した場合はラウンドロビン方式等でアクセス調停を行った上でアドレスデコードを行い、該当サブプロセッサから選択された実行制御回路に対するステータスバスアクセスを実現する。
マルチプロセッサシステムとして、将来的にサブプロセッサ数が増加していくことが予測されるが、本実施の形態のように、実行制御回路20を複数個備えることによって、実行制御処理の負荷増大による処理破綻を防止できるという利点がある。
また、本発明である実行制御回路20を増加させる場合に、実行制御回路20自体のハードウェア構成やサブプロセッサ側のハードウェア構成を変更することなく実現可能であるという利点もある。
(第3の実施の形態による効果)
次に本実施の形態の効果について説明する。
本実施の形態によれば、第1の実施の形態比べ、実行制御回路自体を複数個実装することで、実行制御用プロセッサ(CP)やステータスアクセラレータの処理を更に負荷分散させることが可能である。今後、システムの大規模化に伴い、LSI内のサブプロセッサ数が増加することが予想されるが、本発明においては実行制御回路のハードウェア構成を変更することなく実装個数を増やすことができるため、高い拡張性を維持したまま更なる負荷分散が可能という効果もある。
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
(付記1)
1つまたは複数のメインプロセッサ及び複数のサブプロセッサと、
各サブプロセッサの実行制御を行う実行制御回路とを備え、
前記実行制御回路は、
各サブプロセッサの実行制御処理のための実行制御用プロセッサと、
各サブプロセッサのコマンド起動用のコントロールバス出力手段と、
各サブプロセッサからのステータス通知用のステータスバス入力手段と、
前記ステータス通知が動作シーケンス上で次に発行される処理コマンドと1対1の依存関係にあり高速処理するか否かを判定する判定回路と、
高速処理する場合に対応する処理起動コマンドを発行するステータスアクセラレータと、
前記実行制御用プロセッサを用いて前記ステータス通知を処理するためのステータスFIFO制御部と
を備えることを特徴とするマルチプロセッサシステム。
(付記2)
前記ステータスアクセラレータが、高速処理する場合にテーブル引きにより対応する処理起動コマンドを発行することを特徴とする付記1に記載のマルチプロセッサシステム。
(付記3)
前記実行制御回路が、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停するコマンド調停回路を備えることを特徴とする付記1又は付記2に記載のマルチプロセッサシステム。
(付記4)
前記ステータスアクセラレータが、
対応する処理コマンドのサブプロセッサIDと処理IDをペアにして格納するコマンドテーブルと、
対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
前記コマンド出力コントローラが、
前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサIDを持つサブプロセッサに対して、一緒に読み出した処理IDを含めて処理起動コマンドを発行することを特徴とする付記1から付記3の何れか1項に記載のマルチプロセッサシステム。
(付記5)
前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
前記判定回路が、
前記判定用のビット領域を用いて判定を行う比較判定回路と、
前記ステータスデータの全部または一部を、1対1の依存関係にあり且つ高速処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスFIFO制御部に転送する転送選択手段とを備えることを特徴とする付記1から付記4の何れか1項に記載のマルチプロセッサシステム。
(付記6)
前記判定回路が、
入力したステータスデータを用いてアクセスした場合、1対1の依存関係にある処理コマンドが存在する場合は前記コマンドテーブルのアドレスを出力することで判定を実現する連想メモリと、
前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスFIFO制御部に転送する転送選択手段とを備えることを特徴とする付記1から付記4の何れか1項に記載のマルチプロセッサシステム。
(付記7)
前記連想メモリが、
ステータスデータのハッシュ値計算回路と、
1対1の依存関係にあるステータスデータから計算されるハッシュ値をアドレスとして当該ステータスデータをデータとして格納するハッシュテーブルと、
同一のハッシュ値を持つステータスデータが複数存在する場合に最小限のアクセス回数で判定するためのアドレスカウンタとを備えることを特徴とする付記6に記載のマルチプロセッサシステム。
(付記8)
前記連想メモリの内容を、前記メインプロセッサまたは前記実行制御用プロセッサから設定変更可能であることを特徴とする付記6又は付記7に記載のマルチプロセッサシステム。
(付記9)
前記判定回路が、
前記メインプロセッサまたは前記実行制御用プロセッサから設定可能な制御レジスタの値により、前記判定した結果に関わらず、全てのステータスデータをステータスFIFO制御部に転送する手段を備えることを特徴とする付記1から付記8の何れか1項に記載のマルチプロセッサシステム。
(付記10)
前記実行制御回路から前記各サブプロセッサへの制御を行うコントロールバスのコントロールバス制御回路と、
前記各サブプロセッサから前記実行制御回路へのステータス通知を行うステータスバスのステータスバス制御回路とを備え、
前記ステータスバス制御回路は、
各サブプロセッサからのステータスバスのアクセス調停時にどのサブプロセッサからのステータス通知なのかを示すサブプロセッサIDを付加して前記実行制御回路にステータスバス転送する手段を備え、
前記ステータスFIFO制御部は、前記サブプロセッサID、処理ID、そのステータス値をまとめて格納する機構を備えることを特徴とする付記1から付記9の何れか1項に記載のマルチプロセッサシステム。
(付記11)
前記各サブプロセッサは、
前記コントロールバスからの処理起動コマンドを取得するためのコマンド受信制御手段と、
前記ステータスバスに対して処理ステータスを送信するためのステータス通知制御手段とを備え、
前記ステータスバスへのステータス通知データとして、前記処理起動コマンドで指定された処理IDとその処理IDに対応する処理ステータスを合わせて通知することを特徴とする付記1から付記10の何れか1項に記載のマルチプロセッサシステム。
(付記12)
前記実行制御回路は、
メインプロセッサとの通信用としてメインプロセッサからの動作シーケンスの設定およびコマンド入力用のコマンドFIFO制御部と、
メインプロセッサへの処理シーケンス完了など割り込み通知用の割り込みFIFO制御部と、
前記ステータスFIFO制御部と前記コマンドFIFO制御部、前記割り込みFIFO制御部の実体を同一アドレス空間上のメモリに共有化し、各々のFIFO段数を可変にするためのFIFOベースアドレス設定レジスタおよびFIFO段数設定レジスタと、
各FIFO制御部に対するアクセスが発生した場合に前記2つのFIFO設定レジスタの値を用いて実際のメモリアドレスに変換するアドレス変換手段とを備えることを特徴とする付記1から付記11の何れか1項に記載のマルチプロセッサシステム。
(付記13)
各サブプロセッサ間のデータ授受手段としてマルチバンク化された共有メモリを備え、
各サブプロセッサは、
入出力データの転送用に共有メモリインタフェースを備え、前記共有メモリインタフェースを介して入出力データの転送および処理パラメータの取得を行うことを特徴とする付記1から付記12の何れか1項に記載のマルチプロセッサシステム。
(付記14)
前記コントロールバスまたは前記ステータスバスをLSI外部にモニタ出力するバスモニタ出力回路を備えることを特徴とする付記1から付記13の何れか1項に記載のマルチプロセッサシステム。
(付記15)
前記実行制御回路を複数個備え、
実行制御処理を並列に行うことを特徴とする付記1から付記14の何れか1項に記載のマルチプロセッサシステム。
(付記16)
1つまたは複数のメインプロセッサ及び複数のサブプロセッサを備えるマルチプロセッサシステムにおけるサブプロセッサの実行制御方法であって、
各サブプロセッサの実行制御を行う実行制御回路を備え、
前記実行制御回路の判定回路が、各サブプロセッサからのステータス通知が動作シーケンス上で次に発行される処理コマンドと1対1の依存関係にあり高速処理するか否かを判定し、
高速処理する場合に、前記実行制御回路のステータスアクセラレータが、対応する処理起動コマンドを発行し、
前記実行制御回路のステータスFIFO制御部が、各サブプロセッサの実行制御処理のための実行制御用プロセッサを用いて前記ステータス通知を処理する
ことを特徴とする実行制御方法。
(付記17)
前記ステータスアクセラレータが、高速処理する場合にテーブル引きにより対応する処理起動コマンドを発行することを特徴とする付記16に記載の実行制御方法。
(付記18)
前記実行制御回路のコマンド調停回路が、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停することを特徴とする付記16又は付記17に記載の実行制御方法。
(付記19)
前記ステータスアクセラレータが、
対応する処理コマンドのサブプロセッサIDと処理IDをペアにして格納するコマンドテーブルと、
対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
前記コマンド出力コントローラが、
前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサIDを持つサブプロセッサに対して、一緒に読み出した処理IDを含めて処理起動コマンドを発行することを特徴とする付記16から付記18の何れか1項に記載の実行制御方法。
(付記20)
前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
前記判定回路が、
前記判定用のビット領域を用いて判定を行い、
前記ステータスデータの全部または一部を、1対1の依存関係にあり且つ高速処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスFIFO制御部に転送することを特徴とする付記16から付記19の何れか1項に記載の実行制御方法。
(付記21)
前記判定回路が、
入力したステータスデータを用いてアクセスした場合、連想メモリによって1対1の依存関係にある処理コマンドが存在する場合に前記コマンドテーブルのアドレスを出力することで判定を実現し、
前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスFIFO制御部に転送することを特徴とする付記16から付記19の何れか1項に記載の実行制御方法。
(付記22)
前記判定回路が、
前記メインプロセッサまたは前記実行制御用プロセッサから設定可能な制御レジスタの値により、前記判定した結果に関わらず、全てのステータスデータをステータスFIFO制御部に転送することを特徴とする付記16から付記21の何れか1項に記載の実行制御方法。
(付記23)
1つまたは複数のメインプロセッサ及び複数のサブプロセッサを備えるマルチプロセッサシステムにおいて、
各サブプロセッサの実行制御を行う実行制御回路に、
前記実行制御回路の判定回路が、各サブプロセッサからのステータス通知が動作シーケンス上で次に発行される処理コマンドと1対1の依存関係にあり高速処理するか否かを判定する機能と、
高速処理する場合に、前記実行制御回路のステータスアクセラレータが、対応する処理起動コマンドを発行する機能と、
前記実行制御回路のステータスFIFO制御部が、各サブプロセッサの実行制御処理のための実行制御用プロセッサを用いて前記ステータス通知を処理する機能と、を実行させることを特徴とする実行制御プログラム。
(付記24)
前記ステータスアクセラレータに、高速処理する場合にテーブル引きにより対応する処理起動コマンドを発行する機能を実行させることを特徴とする付記23に記載の実行制御プログラム。
(付記25)
前記実行制御回路のコマンド調停回路に、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停する機能を実行させることを特徴とする付記23又は付記24に記載の実行制御プログラム。
(付記26)
前記ステータスアクセラレータが、
対応する処理コマンドのサブプロセッサIDと処理IDをペアにして格納するコマンドテーブルと、
対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
前記コマンド出力コントローラに、
前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサIDを持つサブプロセッサに対して、一緒に読み出した処理IDを含めて処理起動コマンドを発行する機能を実行させることを特徴とする付記23から付記25の何れか1項に記載の実行制御プログラム。
(付記27)
前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
前記判定回路に、
前記判定用のビット領域を用いて判定を行い、
前記ステータスデータの全部または一部を、1対1の依存関係にあり且つ高速処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスFIFO制御部に転送する機能を実行させることを特徴とする付記23から付記26の何れか1項に記載の実行制御プログラム。
(付記28)
前記判定回路に、
入力したステータスデータを用いてアクセスした場合、連想メモリによって1対1の依存関係にある処理コマンドが存在する場合に前記コマンドテーブルのアドレスを出力することで判定を実現し、
前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスFIFO制御部に転送する機能を実行させることを特徴とする付記23から付記26の何れか1項に記載の実行制御プログラム。
(付記29)
前記判定回路に、
前記メインプロセッサまたは前記実行制御用プロセッサから設定可能な制御レジスタの値により、前記判定した結果に関わらず、全てのステータスデータをステータスFIFO制御部に転送する機能を実行させることを特徴とする付記23から付記28の何れか1項に記載の実行制御プログラム。
この出願は、2010年5月26日に出願された日本出願特願2010−120241を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (11)

  1. 1つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサと、
    各前記複数のサブプロセッサの各々の実行制御を行う実行制御回路とを備え、
    前記実行制御回路は、
    各前記複数のサブプロセッサのいずれかに対して、前記コマンドを出力するコントロールバス出力手段と、
    各前記複数のサブプロセッサの各々から、前記複数のサブプロセッサの各々に対して発行されたコマンドの処理状態を示すステータス通知を入力するステータスバス入力手段と、
    前記複数のサブプロセッサ内の、第1のコマンドを発行されたサブプロセッサから入力された、前記第1のコマンドの処理状態を示す前記ステータス通知が、動作シーケンス上で次に発行される第2のコマンドと1対1の依存関係にあるか否かを判定する判定回路と、
    前記依存関係があると判定された場合に、前記コントロールバス出力手段に前記第2のコマンドをハードウェア処理で発行するステータスアクセラレータと、
    前記依存関係がないと判定された場合に、前記ステータス通知を格納するためのステータスFIFO制御部と、
    前記格納されたステータス通知と前記ステータス通知に1対1対応ではない処理の依存関係の解析を行い、前記コントロールバス出力手段に解析結果の前記処理を実行するための第3のコマンドをソフトウェア処理で発行する実行制御用プロセッサと
    を備えることを特徴とするマルチプロセッサシステム。
  2. 前記ステータスアクセラレータが、処理する場合にテーブル引きにより対応する処理起動コマンドを発行することを特徴とする請求項1に記載のマルチプロセッサシステム。
  3. 前記解析は、
    処理されたデータの判別、前記複数のサブプロセッサの各々の前記コマンドの処理状態、及び前記コマンドによる処理とデータとの依存関係についての解析を含む
    ことを特徴とする請求項1記載のマルチプロセッサシステム。
  4. 前記実行制御回路が、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停するコマンド調停回路を備えることを特徴とする請求項1から請求項3の何れか1項に記載のマルチプロセッサシステム。
  5. 前記ステータスアクセラレータが、
    対応する処理コマンドのサブプロセッサIDと処理IDをペアにして格納するコマンドテーブルと、
    対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
    前記コマンド出力コントローラが、
    前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサIDを持つサブプロセッサに対して、一緒に読み出した処理IDを含めて処理起動コマンドを発行することを特徴とする請求項1から請求項4の何れか1項に記載のマルチプロセッサシステム。
  6. 前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
    前記判定回路が、
    前記判定用のビット領域を用いて判定を行う比較判定回路と、
    前記ステータスデータの全部または一部を、1対1の依存関係にあり且つ前記ステータスアクセラレータが処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスFIFO制御部に転送する転送選択手段とを備えることを特徴とする請求項1から請求項5の何れか1項に記載のマルチプロセッサシステム。
  7. 前記判定回路が、
    入力したステータスデータを用いてアクセスした場合、1対1の依存関係にある処理コマンドが存在する場合は前記コマンドテーブルのアドレスを出力することで判定を実現する連想メモリと、
    前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスFIFO制御部に転送する転送選択手段とを備えることを特徴とする請求項に記載のマルチプロセッサシステム。
  8. 前記連想メモリが、
    ステータスデータのハッシュ値計算回路と、
    1対1の依存関係にあるステータスデータから計算されるハッシュ値をアドレスとして当該ステータスデータをデータとして格納するハッシュテーブルと、
    同一のハッシュ値を持つステータスデータが複数存在する場合に前記ハッシュ値を基準アドレスとした所定のアドレス範囲内を探索するアドレスカウンタとを備えることを特徴とする請求項7に記載のマルチプロセッサシステム。
  9. 前記実行制御回路は、
    メインプロセッサとの通信用としてメインプロセッサからの動作シーケンスの設定およびコマンド入力用のコマンドFIFO制御部と、
    メインプロセッサへの処理シーケンス完了の割り込み通知用の割り込みFIFO制御部と、
    前記ステータスFIFO制御部と前記コマンドFIFO制御部、前記割り込みFIFO制御部の実体を同一アドレス空間上のメモリに共有化し、各々のFIFO段数を可変にするためのFIFOベースアドレス設定レジスタおよびFIFO段数設定レジスタと、
    各FIFO制御部に対するアクセスが発生した場合に前記2つのFIFO設定レジスタの値を用いて実際のメモリアドレスに変換するアドレス変換手段とを備えることを特徴とする請求項1から請求項8の何れか1項に記載のマルチプロセッサシステム。
  10. 1つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおけるサブプロセッサの実行制御方法であって、
    各前記複数のサブプロセッサの各々の実行制御を行う実行制御回路を備え、
    前記実行制御回路の判定回路が、前記複数のサブプロセッサ内の、第1のコマンドを発行されたサブプロセッサから入力された、前記第1のコマンドの処理状態を示すステータス通知が、動作シーケンス上で次に発行される第2のコマンドと1対1の依存関係にあるか否かを判定し、
    前記依存関係があると判定された場合に、前記実行制御回路のステータスアクセラレータが、前記第2のコマンドをハードウェア処理で発行し、
    前記依存関係がないと判定された場合に、前記実行制御回路のステータスFIFO制御部が、前記ステータス通知を格納し、
    前記実行制御回路の実行制御用プロセッサが、前記格納されたステータス通知と前記ステータス通知に1対1対応ではない処理の依存関係の解析を行い、解析結果の前記処理を実行するための第3のコマンドを発行する
    ことを特徴とする実行制御方法。
  11. 1つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおいて、
    各前記複数のサブプロセッサの各々の実行制御を行う実行制御回路に、
    前記実行制御回路の判定回路が、前記複数のサブプロセッサ内の、第1のコマンドを発行されたサブプロセッサから入力された、前記第1のコマンドの処理状態を示すステータス通知が、動作シーケンス上で次に発行される第2のコマンドと1対1の依存関係にあるか否かを判定する機能と、
    前記依存関係があると判定された場合に、前記実行制御回路のステータスアクセラレータが、前記第2のコマンドをハードウェア処理で発行する機能と、
    前記依存関係がないと判定された場合に、前記実行制御回路のステータスFIFO制御部が、前記ステータス通知を格納する機能と、
    前記実行制御回路の実行制御用プロセッサが、前記格納されたステータス通知と前記ステータス通知に1対1対応ではない処理の依存関係の解析を行い、解析結果の前記処理を実行するための第3のコマンドをソフトウェア処理で発行する機能と
    を実行させることを特徴とする実行制御プログラム。
JP2012517266A 2010-05-26 2011-05-24 マルチプロセッサシステム、実行制御方法、実行制御プログラム Active JP5895840B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012517266A JP5895840B2 (ja) 2010-05-26 2011-05-24 マルチプロセッサシステム、実行制御方法、実行制御プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010120241 2010-05-26
JP2010120241 2010-05-26
PCT/JP2011/061812 WO2011148920A1 (ja) 2010-05-26 2011-05-24 マルチプロセッサシステム、実行制御方法、実行制御プログラム
JP2012517266A JP5895840B2 (ja) 2010-05-26 2011-05-24 マルチプロセッサシステム、実行制御方法、実行制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2011148920A1 JPWO2011148920A1 (ja) 2013-07-25
JP5895840B2 true JP5895840B2 (ja) 2016-03-30

Family

ID=45003910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012517266A Active JP5895840B2 (ja) 2010-05-26 2011-05-24 マルチプロセッサシステム、実行制御方法、実行制御プログラム

Country Status (5)

Country Link
US (1) US9164951B2 (ja)
EP (1) EP2579164B1 (ja)
JP (1) JP5895840B2 (ja)
CN (1) CN102934102A (ja)
WO (1) WO2011148920A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5842206B2 (ja) 2012-01-27 2016-01-13 株式会社トプスシステムズ プロセッサ・コア、およびマルチコア・プロセッサ・システム
US9582287B2 (en) 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
FR3008207B1 (fr) * 2013-07-04 2016-12-02 M Et R Energies Unite et procede de regulation energetique d'un systeme de production et de consommation electrique
JP6244771B2 (ja) * 2013-09-24 2017-12-13 日本電気株式会社 情報処理システム、処理装置、分散処理方法、及び、プログラム
JP6297853B2 (ja) * 2014-02-18 2018-03-20 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム
KR20160003485A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 원격 함수 호출을 위한 자동 코드 생성
JP2018190137A (ja) * 2017-05-01 2018-11-29 富士通株式会社 伝送装置、電子機器、および起動制御方法
KR20190115811A (ko) * 2018-04-04 2019-10-14 에스케이하이닉스 주식회사 확장 메모리 카드를 포함하는 데이터 처리 시스템
CN110825514B (zh) * 2018-08-10 2023-05-23 昆仑芯(北京)科技有限公司 人工智能芯片以及用于人工智能芯片的指令执行方法
US10705993B2 (en) * 2018-11-19 2020-07-07 Xilinx, Inc. Programming and controlling compute units in an integrated circuit
CN111666106A (zh) * 2019-03-07 2020-09-15 慧与发展有限责任合伙企业 来自多个远程芯片的数据卸载加速
CN111930676B (zh) * 2020-09-17 2020-12-29 湖北芯擎科技有限公司 多处理器间的通信方法、装置、系统及存储介质
KR20220077484A (ko) 2020-12-02 2022-06-09 삼성전자주식회사 능동적 스케줄링 방법과 컴퓨팅 장치

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02273848A (ja) * 1989-04-14 1990-11-08 Nec Corp 入出力処理装置
JP2002163105A (ja) * 2000-11-29 2002-06-07 Nec Corp データ依存関係検出装置
JP2002207711A (ja) * 2001-01-11 2002-07-26 Nec Eng Ltd グラフィックス負荷分散処理装置
JP2003208412A (ja) * 2001-11-08 2003-07-25 Matsushita Electric Ind Co Ltd 回路群制御システム
JP2007200295A (ja) * 2006-01-26 2007-08-09 Internatl Business Mach Corp <Ibm> コマンド順序依存性を追跡する方法および装置
JP2007219816A (ja) * 2006-02-16 2007-08-30 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム
JP2008097084A (ja) * 2006-10-06 2008-04-24 Hitachi Ltd プロセッサ及びデータ転送ユニット
WO2010016169A1 (ja) * 2008-08-07 2010-02-11 日本電気株式会社 マルチプロセッサシステム及びその制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592664A (en) * 1991-07-29 1997-01-07 Borland International Inc. Database server system with methods for alerting clients of occurrence of database server events of interest to the clients
JPH09218859A (ja) 1996-02-07 1997-08-19 Oki Electric Ind Co Ltd マルチプロセッサ制御システム
JP4465598B2 (ja) * 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
JP2006099332A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP4425177B2 (ja) * 2005-05-20 2010-03-03 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、情報処理装置
WO2010001353A1 (en) * 2008-07-02 2010-01-07 Nxp B.V. A multiprocessor circuit using run-time task scheduling

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02273848A (ja) * 1989-04-14 1990-11-08 Nec Corp 入出力処理装置
JP2002163105A (ja) * 2000-11-29 2002-06-07 Nec Corp データ依存関係検出装置
JP2002207711A (ja) * 2001-01-11 2002-07-26 Nec Eng Ltd グラフィックス負荷分散処理装置
JP2003208412A (ja) * 2001-11-08 2003-07-25 Matsushita Electric Ind Co Ltd 回路群制御システム
JP2007200295A (ja) * 2006-01-26 2007-08-09 Internatl Business Mach Corp <Ibm> コマンド順序依存性を追跡する方法および装置
JP2007219816A (ja) * 2006-02-16 2007-08-30 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム
JP2008097084A (ja) * 2006-10-06 2008-04-24 Hitachi Ltd プロセッサ及びデータ転送ユニット
WO2010016169A1 (ja) * 2008-08-07 2010-02-11 日本電気株式会社 マルチプロセッサシステム及びその制御方法

Also Published As

Publication number Publication date
JPWO2011148920A1 (ja) 2013-07-25
US20130067201A1 (en) 2013-03-14
US9164951B2 (en) 2015-10-20
CN102934102A (zh) 2013-02-13
EP2579164B1 (en) 2021-01-06
WO2011148920A1 (ja) 2011-12-01
EP2579164A1 (en) 2013-04-10
EP2579164A4 (en) 2016-10-26

Similar Documents

Publication Publication Date Title
JP5895840B2 (ja) マルチプロセッサシステム、実行制御方法、実行制御プログラム
US8719455B2 (en) DMA-based acceleration of command push buffer between host and target devices
TWI498819B (zh) 執行成型記憶體存取作業的系統和方法
US9606808B2 (en) Method and system for resolving thread divergences
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
US9710306B2 (en) Methods and apparatus for auto-throttling encapsulated compute tasks
JP5498505B2 (ja) データバースト間の競合の解決
US8677045B2 (en) Transaction reordering system and method with protocol indifference
TWI533222B (zh) 處理任務的工作分配控制
CN102375800A (zh) 用于机器视觉算法的多处理器片上系统
KR20130127480A (ko) 이종 처리 디바이스의 동적 작업 분할
JP2007241918A (ja) プロセッサ装置
CN104094222A (zh) 到芯片外辅助执行单元的外部辅助执行单元接口
JP5578713B2 (ja) 情報処理装置
US20110265093A1 (en) Computer System and Program Product
US20120030430A1 (en) Cache control apparatus, and cache control method
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
US20240241836A1 (en) Parking threads in barrel processor for managing cache eviction requests
US20130024488A1 (en) Semiconductor device
US20130262812A1 (en) Hardware Managed Allocation and Deallocation Evaluation Circuit
CN117632256A (zh) 用于处置多元件处理器中的断点的装置及方法
US10713188B2 (en) Inter-process signaling system and method
US20230168898A1 (en) Methods and apparatus to schedule parallel instructions using hybrid cores
CN117632260A (zh) 给异步事件排队以便在桶式处理器中执行的线程接受
JP2005259051A (ja) プロセッシングユニットおよびその制御方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20131022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160215

R150 Certificate of patent or registration of utility model

Ref document number: 5895840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150