(57)【特許請求の範囲】
【請求項１】
複数のプロセッサ（１１ａ〜１１ｄ）と、
複数の前記プロセッサが共有する共有メモリ（１２）と、
前記プロセッサが前記共有メモリにデータを書き込むために用いるバスであって、複数の前記プロセッサが共有するデータ書き込みバス（１３）と、
前記プロセッサが同期ポイントまでの処理を完了したことを示す書き込みフラグを記憶する記憶部であって、前記プロセッサが前記共有メモリよりも高速にアクセス可能であり、複数の前記プロセッサにそれぞれ対応付けて設けられた複数のフラグ記憶部（１５ａ〜１５ｄ）と、
前記フラグ記憶部に前記書き込みフラグを書き込むためのフラグ書き込みバス（１６）と、
を備え、
前記データ書き込みバスと前記フラグ書き込みバスが共通化されており、前記共有メモリにデータを書き込んだ後に前記フラグ記憶部に前記書き込みフラグを書き込むことを特徴とするデータ処理装置。
【請求項２】
前記共有メモリにデータを書き込む際に前記プロセッサが前記データ書き込みバスに出力する情報を記憶する情報記憶部（２２）をさらに備え、
前記プロセッサが前記データ書き込みバスに出力する情報と前記情報記憶部に記憶されている情報とが一致する場合に、前記フラグ記憶部に前記書き込みフラグが書き込まれることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記プロセッサは、前記共有メモリへのデータの書き込みを指令するデータ書き込み指令情報と、前記フラグ記憶部への書き込みフラグの書き込みを指令するフラグ書き込み指令情報とを連続して出力し、
前記プロセッサが連続して出力する前記データ書き込み指令情報および前記フラグ書き込み指令情報を監視する情報監視部（３４）をさらに備え、
前記情報監視部は、前記データ書き込み指令情報に続いて前記フラグ書き込み指令情報が得られると、前記データ書き込み指令情報を前記情報記憶部に記憶することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
自身が備える前記プロセッサによる前記共有メモリへのデータの書き込み要求を、他のデータ処理装置が備えるプロセッサによる前記共有メモリへのデータの書き込み要求よりも優先する優先部（４１）をさらに備えることを特徴とする請求項１から３の何れか１項に記載のデータ処理装置。
【請求項５】
前記フラグ記憶部に前記書き込みフラグが書き込まれた順番を記憶する処理順記憶部（５１ａ〜５１ｄ）をさらに備えることを特徴とする請求項１から４の何れか１項に記載のデータ処理装置。
【請求項６】
前記フラグ記憶部に前記書き込みフラグが書き込まれた時間を記憶する時間記憶部（６１ａ〜６１ｄ）をさらに備えることを特徴とする請求項１から５の何れか１項に記載のデータ処理装置。
【請求項７】
前記プロセッサが前記共有メモリにデータを書き込む前の状態であるのか書き込んだ後の状態であるのかを記憶する状態記憶部（７１）と、
前記フラグ記憶部への前記書き込みフラグの書き込みを許可する許可条件を記憶する条件記憶部（７２ａ〜７２ｄ）と、をさらに備え、
前記状態記憶部が記憶する前記プロセッサの状態と前記許可条件が一致する場合に、前記フラグ記憶部に前記書き込みフラグが書き込まれることを特徴とする請求項１に記載のデータ処理装置。
【請求項８】
前記プロセッサに、前記共有メモリへのアクセス権を付与するアクセス権付与部（８１）をさらに備え、
前記プロセッサは、前記アクセス権が付与されていることを条件に、前記共有メモリにデータを書き込むことが可能となることを特徴とする請求項１から７の何れか１項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを備えるデータ処理装置に関する。
【背景技術】
【０００２】
マルチプロセッサにより処理を並列的に効率良く実行するためには、プロセッサ間の同期処理、即ち、バリア同期処理や相互排他制御処理を高速で実現することが重要である。例えば特許文献１には、各プロセッサに、全プロセッサの同期待ち状態を保持するレジスタと、自身の同期待ち状態を他のプロセッサに通知するためのレジスタとを設けることにより、バリア同期処理の効率化を図るようにした技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１３７８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年では、複数のデータ処理装置を双方向スロテッドバスにより接続することで、ストリームデータ処理に適した構成を実現することが提案されている。この構成では、共有メモリへの書き込み処理と共有メモリからの読み出し処理において、それぞれ異なる経路を介してアクセスする。そのため、書き込み処理と読み込み処理との一貫性、いわゆるコヒーレンシを保つことが困難である。また、スロテッドバスは、遅延が生じ得るバスである。そのため、スロテッドバスによる遅延の影響により、共有メモリへのデータの書き込み処理が完了していないにも関わらずフラグが立って同期待ち状態となってしまう場合がある。そのため、他のプロセッサが同期ポイントまでの処理を完了する前に、例えば共有メモリへの書き込み処理を完了する前に、プロセッサが次の処理サイクルを開始してしまうおそれがある。このような場合には、正常なバリア同期処理を実現できない。
【０００５】
そこで、本発明は、プロセッサから共有メモリへの書き込み処理を遅延が生じ得るバスを介して行う場合であっても、共有メモリへの書き込み処理の完了前にプロセッサが同期待ち状態となることを回避でき、正常な同期処理を実現することができるデータ処理装置を提供する。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置によれば、共有メモリは複数のプロセッサにより共有される。フラグ記憶部は、プロセッサが同期ポイントまでの処理を完了したことを示す書き込みフラグを記憶するものであり、複数のフラグ記憶部が各プロセッサにそれぞれ対応付けて設けられている。プロセッサのフラグ記憶部に対するアクセス速度は、共有メモリに対するアクセス速度よりも高速である。データ書き込みバスは、プロセッサが共有メモリにデータを書き込むために用いるバスであって、複数のプロセッサが共有する。データ書き込みバスは、遅延が生じ得るバスである。フラグ書き込みバスは、フラグ記憶部に書き込みフラグを書き込むためのバスである。そして、データ処理装置によれば、データ書き込みバスとフラグ書き込みバスとが共通化されており、共有メモリにデータが書き込まれた後にフラグ記憶部に書き込みフラグが書き込まれる。
【０００７】
この構成によれば、プロセッサの同期ポイントまでの処理が完了する前に、例えば共有メモリにデータが書き込まれる前に、同期ポイントまでの処理が完了したことを示す書込みフラグが書き込まれてしまうことを回避できる。即ち、書き込みフラグは、共有メモリにデータが書き込まれた後に書き込まれる。よって、プロセッサから共有メモリへの書き込み処理を遅延が生じ得るデータ書き込みバスを介して行う場合であっても、共有メモリへの書き込み処理の完了前に、プロセッサが次の処理サイクルを開始してしまうことを回避でき、正常な同期処理を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【図２】データ処理装置の比較構成例を概略的に示すブロック図
【図３】比較構成例によるデータ書き込み処理とフラグ書き込み処理の前後関係を示すタイミングフロー図
【図４】本実施形態によるデータ書き込み処理とフラグ書き込み処理の前後関係を示すタイミングフロー図
【図５】第２実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【図６】フラグ書き込み情報先読み回路の構成例を概略的に示すブロック図
【図７】フラグ書き込み指令情報の出力が遅延する状態例を示す図
【図８】第３実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【図９】フラグ書き込み情報先読み回路の構成例を概略的に示すブロック図
【図１０】第４実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【図１１】第５実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【図１２】第６実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【図１３】第７実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【図１４】状態記憶部に記憶されるプロセッサの状態例を示す図
【図１５】条件記憶部に記憶される許可条件の一例を示す図
【図１６】第８実施形態に係るデータ処理装置の構成例を概略的に示すブロック図
【発明を実施するための形態】
【０００９】
以下、データ処理装置に係る複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に同一の要素には同一の符号を付し、説明を省略する。
（第１実施形態）
図１に例示するデータ処理装置１０は、複数、この場合、４つのプロセッサ１１ａ〜１１ｄと、共有メモリ１２と、データ書き込みバス１３と、データ読み込みバス１４と、複数、この場合、４つのフラグ記憶部１５ａ〜１５ｄと、フラグ書き込みバス１６と、を備える。プロセッサ１１ａ〜１１ｄは、データ書き込みバス１３を介した共有メモリ１２へのデータの書き込み処理、および、データ読み込みバス１４を介した共有メモリ１２からのデータの読み込み処理を行う。また、プロセッサ１１ａ〜１１ｄは、専用インタフェース１７ａ〜１７ｄを介してフラグ記憶部１５ａ〜１５ｄに対する書き込み処理および読み出し処理が可能となっている。
【００１０】
プロセッサ１１ａ〜１１ｄは、共有メモリ１２にデータを書き込む際には、書き込むデータそのものを出力するとともに、共有メモリ１２にデータを書き込むことを指令するデータ書き込み指令情報、フラグ記憶部１５ａ〜１５ｄに書き込みフラグを書き込むことを指令するフラグ書き込み指令情報などの各種情報を出力する。この場合、プロセッサ１１ａ〜１１ｄは、データ書き込み指令情報を出力した後にフラグ書き込み指令情報を出力する。プロセッサ１１ａ〜１１ｄのフラグ記憶部１５ａ〜１５ｄに対するアクセス速度は、プロセッサ１１ａ〜１１ｄの共有メモリ１２に対するアクセス速度よりも高速である。
【００１１】
共有メモリ１２は、複数のプロセッサ１１ａ〜１１ｄにより共有される。データ書き込みバス１３は、複数のプロセッサ１１ａ〜１１ｄが共有メモリ１２にデータを書き込むために用いるバスである。データ書き込みバス１３は、複数のプロセッサ１１ａ〜１１ｄにより共有されている。データ書き込みバス１３は、遅延が生じ得るバスの一例である。データ読み込みバス１４は、複数のプロセッサ１１ａ〜１１ｄが共有メモリ１２からデータを読み込むために用いるバスである。データ読み込みバス１４は、複数のプロセッサ１１ａ〜１１ｄにより共有されている。
【００１２】
フラグ記憶部１５ａ〜１５ｄは、プロセッサ１１ａ〜１１ｄが共有メモリ１２にデータを書き込んだことを示す書き込みフラグを記憶する記憶部である。フラグ記憶部１５ａ〜１５ｄは、例えばレジスタなどで構成される。フラグ記憶部１５ａ〜１５ｄは、複数のプロセッサ１１ａ〜１１ｄにそれぞれ対応付けて設けられている。書き込みフラグは、例えば同期条件に基づき予め設定された同期ポイントまでの処理が完了したことを示すフラグである。書き込みフラグが書き込まれたフラグ記憶部１５ａ〜１５ｄに対応するプロセッサ１１ａ〜１１ｄは、データ書き込み前状態から同期待ち状態に遷移する。データ書き込み前状態は、共有メモリ１２へのデータの書き込み処理を実行する前の状態であり、即ち、同期ポイントまでの処理が完了していない状態である。同期待ち状態は、共有メモリ１２へのデータの書き込み処理を完了した状態であり、即ち、同期ポイントまでの処理が完了し、次の処理サイクルを開始できる状態である。同期条件で指定された任意の全てのプロセッサ１１ａ〜１１ｄが同期待ち状態になると、つまり、同期条件で指定された各プロセッサ１１ａ〜１１ｄが全て同期ポイントまでの処理を完了すると、データ処理装置１０は、次の処理サイクルに移行する。
【００１３】
フラグ書き込みバス１６は、フラグ記憶部１５ａ〜１５ｄに書き込みフラグを書き込むためのバスである。データ処理装置１０は、データ書き込みバス１３とフラグ書き込みバス１６を共通化した構成である。この場合、データ書き込みバス１３およびフラグ書き込みバス１６は、プロセッサ１１ａ〜１１ｄから分岐点Ｐまでの間で共通化されている。そして、分岐点Ｐから分岐して、データ書き込みバス１３は共有メモリ１２に接続され、フラグ書き込みバス１６は、フラグ記憶部１５ａ〜１５ｄに接続されている。
【００１４】
図２に例示する構成では、データ書き込みバス１１３に共通化されたフラグ書き込みバスを備えていない。この構成において、プロセッサ１１１ａ〜１１１ｄは、フラグ記憶部１１５ａ〜１１５ｄへのフラグの書き込みを、専用インタフェース１１７ａ〜１１７ｄを介して行う。そのため、図３に例示するように、データ書き込みバス１１３に遅延が生じると、共通メモリ１１２へのデータの書き込みが完了する前にフラグ記憶部１１５ａ〜１１５ｄに書き込みフラグが書き込まれてしまう場合が生じる。
【００１５】
これに対して、データ処理装置１０によれば、データ書き込みバス１３とフラグ書き込みバス１６が共通化されており、図４に例示するように、プロセッサ１１ａ〜１１ｄは、データ書き込みバス１３に対し、データ書き込み指令情報を出力し、これに続いて、フラグ書き込み指令情報を出力する。即ち、共通化されたバス上に、データ書き込み指令情報が先に出力され、続いて、フラグ書き込み指令情報が出力される。従って、共有メモリ１２へのデータの書き込み処理が先に行われ、その後、該当するフラグ記憶部１５ａ〜１５ｄ、つまり、書き込み処理を行ったプロセッサに対応するフラグ記憶部１５ａ〜１５ｄへの書き込みフラグの書き込み処理が行われる。
【００１６】
データ処理装置１０によれば、共有メモリ１２にデータが書き込まれる前にフラグ記憶部１５ａ〜１５ｄに書き込みフラグが書き込まれること、つまり、プロセッサ１１ａ〜１１ｄが次の処理サイクルを開始可能な状態となってしまうことを回避できる。よって、プロセッサ１１ａ〜１１ｄから共有メモリ１２へのデータの書き込み処理を、遅延が生じ得るデータ書き込みバス１３を介して行う場合であっても、共有メモリ１２への書き込み処理の完了前にプロセッサ１１ａ〜１１ｄが同期待ち状態となることを回避でき、正常な同期処理を実現することができる。
【００１７】
（第２実施形態）
図５に例示するデータ処理装置２０は、専用回路の一例としてフラグ書き込み情報先読み回路２１ａ〜２１ｄを備える。以下、フラグ書き込み情報先読み回路２１ａ〜２１ｄを、単に先読み回路２１ａ〜２１ｄと称する。先読み回路２１ａ〜２１ｄは、複数のプロセッサ１１ａ〜１１ｄにそれぞれ対応付けて設けられている。また、専用インタフェース１７ａ〜１７ｄは、それぞれ分岐して先読み回路２１ａ〜２１ｄにも接続されている。次に、先読み回路２１ａ〜２１ｄの構成例について説明する。なお、先読み回路２１ａ〜２１ｄの構成は同じであるので、ここでは、プロセッサ１１ａに対応する先読み回路２１ａの構成について説明する。図６に例示するように、先読み回路２１ａは、情報記憶部２２および一致判定部２３を備える。情報記憶部２２および一致判定部２３は、ソフトウェアにより仮想的に実現してもよいし、ハードウェアにより実現してもよいし、ソフトウェアとハードウェアの組み合わせにより実現してもよい。
【００１８】
情報記憶部２２は、共有メモリ１２にデータを書き込む際にプロセッサ１１ａがデータ書き込みバス１３に出力する情報を記憶する。この場合、プロセッサ１１ａは、共有メモリ１２にデータを書き込む際に、共有メモリ１２におけるデータの書き込み先を指定するアドレス情報を出力する。このアドレス情報は、少なくとも、データ書き込み指令情報が出力された後に出力される。そして、情報記憶部２２は、専用インタフェース１７ａを介してプロセッサ１１ａからアドレス情報を取得し、記憶媒体に設けられた記憶領域２２ａに記憶する。
【００１９】
一致判定部２３は、判定処理部２３ａおよびフラグ書き込み処理部２３ｂを有する。一致判定部２３は、判定処理部２３ａにより、データ書き込みバス１３から得られるアドレス情報と、情報記憶部２２に記憶されているアドレス情報とが一致するか否かを判定する。そして、一致判定部２３は、両情報が一致する場合には、フラグ書き込み処理部２３ｂにより、フラグ記憶部１５ａに書き込みフラグを書き込む。
【００２０】
データ処理装置２０によれば、共有メモリ１２にデータを書き込む際にプロセッサ１１ａ〜１１ｄがデータ書き込みバス１３に出力する情報、この場合、アドレス情報を利用して、フラグ記憶部１５ａ〜１５ｄへの書き込みフラグの書き込みの可否を決定する。従って、フラグ書き込み指令情報を不要とすることができる。また、図７に例示するように、データ書き込み指令情報に続いてフラグ書き込み指令情報を出力する構成では、データ書き込み指令情報の出力後に例えば他のプロセッサからのデータ書き込み指令情報などが割り込んで、フラグ書き込み指令情報の出力が遅延する場合がある。データ処理装置２０によれば、フラグ書き込み指令情報によらずとも、書き込みフラグの書き込み処理を行うことができ、従って、割り込みによる遅延の影響を受けることがない。
【００２１】
（第３実施形態）
図８に例示するデータ処理装置３０は、専用回路の一例としてフラグ書き込み情報先読み回路３１ａ〜３１ｄを備える。以下、フラグ書き込み情報先読み回路３１ａ〜３１ｄを、単に先読み回路３１ａ〜３１ｄと称する。先読み回路３１ａ〜３１ｄは、複数のプロセッサ１１ａ〜１１ｄにそれぞれ対応付けて設けられている。次に、先読み回路３１ａ〜３１ｄの構成例について説明する。なお、先読み回路３１ａ〜３１ｄの構成は同じであるので、ここでは、プロセッサ１１ａに対応する先読み回路３１ａの構成について説明する。図９に例示するように、先読み回路３１ａは、情報記憶部３２、一致判定部３３、情報監視部３４を備える。情報記憶部３２、一致判定部３３、情報監視部３４は、ソフトウェアにより仮想的に実現してもよいし、ハードウェアにより実現してもよいし、ソフトウェアとハードウェアの組み合わせにより実現してもよい。情報記憶部３２および一致判定部３３の機能は、第２実施形態の情報記憶部２２および一致判定部２３と同じである。
【００２２】
情報監視部３４は、共有メモリ１２にデータを書き込む際にプロセッサ１１ａが連続して出力する書き込み指令［２］および書き込み指令［１］を監視する。この場合、情報監視部３４は、記憶媒体に設けられた記憶領域３４ａ，３４ｂを備える。情報監視部３４は、プロセッサ１１ａから先に得られる書き込み指令［２］、具体的には「データ書き込み指令情報」を記憶領域３４ａに記憶し、データ書き込み指令情報の後に得られる書き込み指令［１］、具体的には「フラグ書き込み指令情報」を記憶領域３４ｂに記憶する。なお、書き込み指令［１］，［２］が何れも「データ書き込み指令情報」である場合、つまり、「データ書き込み指令情報」が連続して出力される場合には、記憶領域３４ｂに「データ書き込み指令情報」が格納される。
【００２３】
情報監視部３４は、記憶領域３４ｂに記憶されている情報が「フラグ書き込み指令情報」であるか否かを判断する。そして、情報監視部３４は、記憶領域３４ｂに記憶されている情報が「フラグ書き込み指令情報」である場合には、その１つ前の書き込み情報である書き込み指令［２］、即ち、記憶領域３４ａに記憶されているデータ書き込み指令情報を情報記憶部３２に出力する。情報記憶部３２は、情報監視部３４から得られたデータ書き込み指令情報を記憶領域３２ａに記憶する。一致判定部３３は、判定処理部３３ａにより、データ書き込みバス１３から得られるデータ書き込み指令情報と、情報記憶部３２に記憶されているデータ書き込み指令情報とが一致するか否かを判定する。一致判定部３３は、両情報が一致する場合には、フラグ書き込み処理部３３ｂにより、フラグ記憶部１５ａに書き込みフラグを書き込む。
【００２４】
なお、本実施形態では、データ書き込み指令情報が一致するか否かを判定する構成を例示した。但し、データ処理装置３０は、その他の情報、例えば、データ書き込み指令情報を発行したプロセッサを特定する発行元情報、共有メモリ１２におけるデータの書き込み先を指定するアドレス情報などが一致するか否かに基づいて書き込みフラグの書き込みの可否を判定するように構成してもよい。
【００２５】
データ処理装置３０によれば、共有メモリ１２にデータを書き込む際にプロセッサ１１ａ〜１１ｄがデータ書き込みバス１３に連続的に出力する情報、この場合、データ書き込み指令情報およびフラグ書き込み指令情報を利用して、フラグ記憶部１５ａ〜１５ｄへの書き込みフラグの書き込みの可否を決定することができる。
【００２６】
（第４実施形態）
図１０に例示するデータ処理装置４０は、調停部４１を備える。調停部４１は、ソフトウェアにより実現してもよいし、ハードウェアにより実現してもよいし、ソフトウェアとハードウェアの組み合わせにより実現してもよい。調停部４１は、優先部の一例であり、この場合、データ書き込みバス１３に設けられている。調停部４１は、自身が備えるプロセッサ１１ａ〜１１ｄによる共有メモリ１２へのデータの書き込み要求と、他のデータ処理装置４０１，４０２が備えるプロセッサによる共有メモリ１２へのデータの書き込み要求とが競合した場合に、自装置からのデータ書き込み要求を他装置からのデータ書き込み要求よりも優先する。また、調停部４１は、自身が備えるプロセッサ１１ａ〜１１ｄによるフラグ記憶部１５ａ〜１５ｄへの書き込みフラグの書き込み要求と、他のデータ処理装置４０１，４０２が備えるプロセッサによるフラグ記憶部１５ａ〜１５ｄへの書き込みフラグの書き込み要求とが競合した場合に、自装置からのフラグ書き込み要求を他装置からのフラグ書き込み要求よりも優先する。
【００２７】
自装置のプロセッサ１１ａ〜１１ｄからの要求および他装置のプロセッサからの要求を含め、それぞれの要求を発生順に処理する場合には、自装置のデータ書き込み処理と自装置のフラグ書き込み処理との間の他装置からの要求が割り込む場合があり、遅延の要因となる。データ処理装置４０によれば、自装置からの要求を他装置からの要求よりも優先する。従って、自装置のデータ書き込み処理と自装置のフラグ書き込み処理との間に他装置からの要求が割り込むことを回避でき、遅延を起こすことなく処理の高速化を図ることができる。なお、調停部４１は、データ書き込みバス１３とは別体に設けてもよい。
【００２８】
（第５実施形態）
図１１に例示するデータ処理装置５０は、処理順記憶部５１ａ〜５１ｄを備える。処理順記憶部５１ａ〜５１ｄは、フラグ記憶部１５ａ〜１５ｄにそれぞれ対応付けて設けられている。また、処理順記憶部５１ａ〜５１ｄは、フラグ記憶部１５ａ〜１５ｄにそれぞれ併設されている。なお、処理順記憶部５１ａ〜５１ｄは、フラグ記憶部１５ａ〜１５ｄとは別個の記憶媒体に設けてもよい。処理順記憶部５１ａ〜５１ｄは、フラグ記憶部１５ａ〜１５ｄに書き込みフラグが書き込まれた順番を記憶する。
【００２９】
データ処理装置５０によれば、処理順記憶部５１ａ〜５１ｄに記憶されている順番情報に基づいて、プロセッサ１１ａ〜１１ｄのデータ書き込み処理が、それぞれ何番目に完了したのかを把握することができる。これにより、データ書き込み処理を速く完了できるプロセッサ１１ａ〜１１ｄを特定することができる。よって、例えば、次の処理サイクルにおいて、データ書き込み処理を速く完了できるプロセッサ１１ａ〜１１ｄに多くの処理を割り振ることにより、処理全体としての高速化を図ることができる。
【００３０】
（第６実施形態）
図１２に例示するデータ処理装置６０は、時間記憶部６１ａ〜６１ｄを備える。時間記憶部６１ａ〜６１ｄは、フラグ記憶部１５ａ〜１５ｄにそれぞれ対応付けて設けられている。また、時間記憶部６１ａ〜６１ｄは、フラグ記憶部１５ａ〜１５ｄにそれぞれ併設されている。なお、時間記憶部６１ａ〜６１ｄは、フラグ記憶部１５ａ〜１５ｄとは別個の記憶媒体に設けてもよい。時間記憶部６１ａ〜６１ｄは、フラグ記憶部１５ａ〜１５ｄに書き込みフラグが書き込まれた時間を記憶する。なお、データ処理装置６０は、時間を計測するための図示しないタイマを備える。時間記憶部６１ａ〜６１ｄは、タイマに基づき、フラグが書き込まれた時間を特定する。
【００３１】
データ処理装置６０によれば、時間記憶部６１ａ〜６１ｄに記憶されている時間情報に基づいて、プロセッサ１１ａ〜１１ｄのデータ書き込み処理が、それぞれ何番目に完了したのかを把握することができる。また、時間記憶部６１ａ〜６１ｄに記憶されている時間情報に基づいて、プロセッサ１１ａ〜１１ｄのデータ書き込み処理がどの程度速く完了したのかも把握することができる。これにより、データ書き込み処理を速く完了できるプロセッサ１１ａ〜１１ｄを一層正確に特定することができる。よって、例えば、次の処理サイクルにおいて、データ書き込み処理を速く完了できるプロセッサ１１ａ〜１１ｄに多くの処理を割り振ることにより、処理全体としての高速化を図ることができる。
【００３２】
（第７実施形態）
図１３に例示するデータ処理装置７０は、状態記憶部７１および複数の条件記憶部７２ａ〜７２ｄを備える。状態記憶部７１は、プロセッサ１１ａ〜１１ｄが共有メモリ１２にデータを書き込む前の状態であるのか書き込んだ後の状態であるのかを記憶する。即ち、図１４に例示するように、状態記憶部７１は、例えばデータ書き込みバス１３から得られるフラグ書き込み指令情報の有無に基づいて、プロセッサ１１ａ〜１１ｄの状態、つまり、データ書き込み前であるのか後であるのかを記憶する。なお、図１４では、データを書き込んだ後の状態を同期待ち状態として示している。
【００３３】
条件記憶部７２ａ〜７２ｄは、フラグ記憶部１５ａ〜１５ｄにそれぞれ対応付けて設けられている。図１５に例示するように、条件記憶部７２ａ〜７２ｄには、フラグ記憶部１５ａ〜１５ｄへの書き込みフラグの書き込みを許可するための許可条件が記憶されている。図１５に示す例では、プロセッサ１１ａが同期待ち状態、プロセッサ１１ｂがデータ書き込み前状態、プロセッサ１１ｃが同期待ち状態、プロセッサ１１ｄがデータ書き込み前状態である場合に、書き込みフラグの書き込みが許可される条件となっている。
【００３４】
データ処理装置７０は、状態記憶部７１に記憶されている各プロセッサ１１ａ〜１１ｄの実際の状態と条件記憶部７２ａ〜７２ｄにそれぞれ格納されている許可条件とが一致するか否かを判定する。そして、データ処理装置７０は、両情報が一致する場合に、該当するフラグ記憶部１５ａ〜１５ｄに書き込みフラグを書き込む。
【００３５】
データ処理装置７０によれば、フラグ書き込み指令情報が得られたら直ちにフラグ記憶部１５ａ〜１５ｄに書き込みフラグを書き込むのではなく、各プロセッサ１１ａ〜１１ｄの実際の状態が所定の許可条件に一致する場合に、書き込みフラグを書き込むようにした。これにより、自プロセッサの状態だけでなく他プロセッサの状態も加味した上で書き込みフラグを書き込むことができ、システム全体としてより正確なデータ書き込み処理を行うことができる。なお、許可条件は、固定としてもよいし、例えば処理内容や処理の進捗度などに応じて動的に変動させるようにしてもよい。
【００３６】
（第８実施形態）
図１６に例示するデータ処理装置８０は、アクセス権付与部８１を備える。アクセス権付与部８１は、プロセッサ１１ａ〜１１ｄに、共有メモリ１２へのアクセス権を排他的に付与する。アクセス権付与部８１は、ソフトウェアにより実現してもよいし、ハードウェアにより実現してもよいし、ソフトウェアとハードウェアの組み合わせにより実現してもよい。プロセッサ１１ａ〜１１ｄは、アクセス権付与部８１に対し、アクセス権の付与を要求する。プロセッサ１１ａ〜１１ｄから要求を受けたアクセス権付与部８１は、要求したプロセッサ１１ａ〜１１ｄのうちの何れか１つにアクセス権を付与する。
【００３７】
アクセス権の付与は、例えば最先に要求したプロセッサ１１ａ〜１１ｄに与えるようにしてもよいし、要求した複数のプロセッサ１１ａ〜１１ｄからランダムに選択して与えるようにしてもよいし、要求した複数のプロセッサ１１ａ〜１１ｄのうち最も処理が速いプロセッサに与えるようにしてもよい。プロセッサ１１ａ〜１１ｄは、アクセス権が付与されていることを条件に、共有メモリ１２にデータを書き込むことが可能となる。また、アクセス権が付与されていないプロセッサ１１ａ〜１１ｄは、共有メモリ１２へのデータの書き込み処理が不能となる。
【００３８】
データ処理装置８０によれば、共有メモリ１２にデータを書き込み可能なプロセッサ１１ａ〜１１ｄを排他的に制御することができる。従って、複数のプロセッサ１１ａ〜１１ｄが共有メモリ１２に同時にデータを書き込むことを回避でき、データの書き込み処理を一層正確に行うことができる。また、共有メモリ１２への読み書き処理、つまりメモリアクセスを排他的に制御できるので、読み込み処理と書き込み処理の順序を保障した処理が可能である。
【００３９】
（その他の実施形態）
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
プロセッサの数は適宜変更できる。また、プロセッサの数を変更した場合には、その数に応じてフラグ記憶部や専用回路などの周辺要素の数も適宜変更すればよい。また、上述した複数の実施形態を適宜組み合わせて実施してもよい。本実施形態に係るデータ処理装置は、ストリームデータを処理するストリームデータ処理装置などに適用可能である。
【符号の説明】
【００４０】
図面中、１０はデータ処理装置、１１ａ〜１１ｄはプロセッサ、１２は共有メモリ、１３はデータ書き込みバス、１５ａ〜１５ｄはフラグ記憶部、１６はフラグ書き込みバスを示す。
【図１】
0006519343.tif 000002
【図２】
0006519343.tif 000003
【図３】
0006519343.tif 000004
【図４】
0006519343.tif 000005
【図５】
0006519343.tif 000006
【図６】
0006519343.tif 000007
【図７】
0006519343.tif 000008
【図８】
0006519343.tif 000009
【図９】
0006519343.tif 000010
【図１０】
0006519343.tif 000011
【図１１】
0006519343.tif 000012
【図１２】
0006519343.tif 000013
【図１３】
0006519343.tif 000014
【図１４】
0006519343.tif 000015
【図１５】
0006519343.tif 000016
【図１６】
0006519343.tif 000017