(57)【特許請求の範囲】
【請求項１】
読み込んだデータを処理する複数の演算プロセッサ（７）と、
システムバス（２）と、前記複数の演算プロセッサとの間でデータを転送するため、複数のメモリデバイス（１１〜１５，３３，４３，５３，５４）を備えるデータ転送部（６，３２，４２，５２，６２）とを備え、
前記データ転送部は、前記システムバスより入力されたデータにタイムスタンプを付与するタイムスタンプ付与部（２２）と、
前記演算プロセッサによるデータの処理が行われている処理時間を計時する処理時間計時部（２３）と、
前記演算プロセッサにより処理されたデータを前記システムバスに出力する際に、前記タイムスタンプが付与された時点からの総経過時間を求めると、前記総経過時間が規定時間内か否かを判断し、その判断結果を前記データに付与する処理時間判定部（２５）とを有し、
前記演算プロセッサの数がｍ（ｍ≧２）個であり、
前記データ転送部は、システムバスよりデータが入力されるバス入力メモリ（１１，３３）と、
このバス入力メモリに入力されたデータを前記ｍ個の演算プロセッサの何れかに読み込ませるため、前記データが転送されるｍ・ｎ（ｎ≧１）個のアレイメモリ（１２）と、
前記アレイメモリを介して転送されたデータが入力され、前記ｍ個の演算プロセッサがそれぞれ直接データを読み込むためのｍ個のプロセッサ入力メモリ（１３）と、
このプロセッサ入力メモリ及び前記アレイメモリのそれぞれに配置され、対応するメモリにデータが入力されてから他のメモリに転送されるまでの経過時間を計時する経過時間計時部（２３（Ｉ），２３（Ａ））と、
前記ｍ個の演算プロセッサが出力したデータが、それぞれ直接書き込まれるｍ個のプロセッサ出力メモリ（１４）と、
前記プロセッサ出力メモリに書き込まれたデータが入力され、前記データを前記システムバスに出力するバス出力メモリ（１５，４３，５４，６５）とを備え、
前記タイムスタンプ付与部（２２（Ｉ））は、前記バス入力メモリに配置され、
前記処理時間計時部（２３（Ｏ））は、前記プロセッサ出力メモリに配置され、
前記処理時間判定部は、前記バス出力メモリに配置されており、前記総経過時間を、前記経過時間及び前記処理時間から求めるデータ処理システム。
【請求項２】
前記バス出力メモリは、前記ｍ個のプロセッサ出力メモリの１つとしても機能する請求項１記載のデータ処理システム。
【請求項３】
前記プロセッサ入力メモリのそれぞれに直接接続されているｍ個のアレイメモリは、それぞれに接続されているプロセッサ入力メモリに処理待ちのデータが配置されていると、隣接するプロセッサ入力メモリに接続されているアレイメモリにデータを転送する請求項１又は２記載のデータ処理システム。
【請求項４】
前記データ転送部は、前記システムバスより入力されたデータを、前記バス入力メモリ からのデータ転送パスが最短となるプロセッサ入力メモリを優先させて転送し、
以降は、前記プロセッサ入力メモリに隣接する（ｍ−１）個のプロセッサ入力メモリに順次データを転送し、
前記アレイメモリ間においてデータの転送先に競合が発生すると、プロセッサ入力メモ リへのパスが短い方のアレイメモリを優先して転送を行わせる請求項１から３の何れか一項に記載のデータ処理システム。
【請求項５】
前記データ転送部は、前記バス入力メモリと前記ｍ個のプロセッサ入力メモリ（１３（０），１３（１），１３（２））との間，及び前記バス入力メモリと、データ転送パスが最短となるプロセッサ入力メモリ（１３（０））との間の同パス中に存在するアレイメモリとの間をそれぞれ直接接続する初期データ転送用バス（３４）を備え、
前記バス入力メモリは、電源が投入された後に入力が開始された初期データを、前記初期データ転送用バスを介して、データ転送パスが最長となるプロセッサ入力メモリ（１３（２））から順次前記パスが短くなるプロセッサ入力メモリ（１３（１），１３（０））に転送する請求項１から４の何れか一項に記載のデータ処理システム。
【請求項６】
前記バス出力メモリは、対応するデータに、前記総経過時間が前記規定時間を超えているか否かを示す情報を付与する請求項１から５の何れか一項に記載のデータ処理システム。
【請求項７】
前記バス出力メモリ（４３）は、前記総経過時間が前記規定時間を超えていることで対応するデータが無効となったことに伴い、現在処理中の他のデータも無効になった際には、現在処理中のデータを保持している各メモリ及び演算プロセッサに無効であることを通知し、
前記通知を受信したメモリ及び演算プロセッサは現在保持中のデータの転送を中止し、その時点以降に前記バス入力メモリを介して入力されるデータについて転送を行う請求項６記載のデータ処理システム。
【請求項８】
前記バス出力メモリ（５４）は、前記システムバスに出力されたデータが前記バス入力メモリに再度入力されるものである際に、前記データがシステムバスに出力されたことを前記バス入力メモリ（５３）に対して通知し、
前記バス入力メモリは、前記通知があった時刻から前記データが再度入力されるまでの時間を計時し、その計時時間を規定時間と比較して前記データが無効か否かを判断し、無効と判断すると前記データの処理を中止する請求項１から７の何れか一項に記載のデータ処理システム。
【請求項９】
前記バス入力メモリに対して、前記システムバスを介してデータを入力するパスと、前記システムバスを介すことなくデータを入力するパスとを切替える入力セレクタ（７３）と、
前記バス出力メモリから前記システムバスにデータを入力するパスと、前記システムバスを介すことなくデータを出力するパスとを切替える出力セレクタ（７４）とを備える請求項１から８の何れか一項に記載のデータ処理システム。
【請求項１０】
前記バス出力メモリ（６５）は、前記規定時間と前記総経過時間との差である余力時間を通知し、
前記演算プロセッサに動作クロック信号を供給し、前記動作クロック信号の周波数を変更可能に構成されるクロック供給部（６６）と、
前記バス出力メモリより通知された余力時間に応じて、前記周波数を低下させるように調整する処理時間調整部（６４）とを備える請求項１から９の何れか一項に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムバスと複数の演算プロセッサとの間でデータを転送するデータ転送部を備えるデータ処理システムに関する。
【背景技術】
【０００２】
近年、自動車の事故防止や自動運転化に向けて、走行環境を認識するための信号処理に適用するマルチプロセッサシステムの開発が盛んに行われている。特に、走行環境の認識に使用する画像データや点群データをリアルタイムで処理するためには、センサより出力されるリアルタイムの画像データ等を、複数のプロセッサに効率良く処理させる必要がある。
【０００３】
このようなシステムを車両に搭載するためには、処理装置の性能やリソースがある程度限定される条件下において、高性能なリアルタイム処理を保証しなければならない。そのための具体的な要件としては、例えば、ミリ秒精度の時間管理や単位時間当たりの高い処理性能，組込み可能な低消費電力等がある。
【０００４】
このようなシステムの一例として、特許文献１には以下のような技術が開示されている。システム中に存在する複数のルータを、メインルータとサブルータとの２つにクラス分けする。メインルータは、複数のサブルータを介して、次のメインルータか又は交信先のネットワークインタフェースに至るまでのルーティング計算を一括して行う。これにより、サブルータではルーティング計算を行う必要がなくなるため、パケットがサブルータを通過する際のレイテンシを短縮できると共に低コスト化を図っている。
【０００５】
また、特許文献２には、以下のような技術が開示されている。分配された重さが異なるタスクに対する処理スループットがほぼ均等となるように構成された複数の処理ノード（ＰＮ１〜ＰＮ４）それぞれに、スケジューラ（ＳＣ０〜ＳＣ４）を設ける。スケジューラは、対応する処理ノードでタスク処理が完了すると、タスク完了メッセージを次のタスクを処理する他のスケジューラにメッセージネットワーク（１０）を介して送信する。そして、スケジューラは、他のスケジューラからタスク完了メッセージを受信すると、対応する処理ノードにそのタスクの処理開始を指令する。すなわち、簡単なスケジュール管理プログラムをスケジューラにインストールすることで、マルチ処理ノードシステムにおけるリアルタイム処理及びパイプライン処理を実現している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第ＷＯ２０１０／１３７５７２号パンフレット
【特許文献２】特開２００４−２９５４９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１のようなルーティングは、メインルータを経由することで低いレイテンシを保証するが、メインルータへのアクセスが集中するためことで競合が発生し、転送効率が低下するおそれがある。例えば予備ルータを設けることでアクセスの競合を低減できるが、処理性能の低下は避けられない。また、ネットワークオンチップのハードウェア資源は、トポロジの汎用性を確保する必要から実用上冗長な資源を持たざるを得ず、利用効率の低下を招き消費電力の低減が図れない。
【０００８】
また、特許文献２のようなリアルタイム管理は、タスク管理スケジューラの割り込み制御により実施され、ホスト主導のタスク管理によるリアルタイム処理となる。そのため、例えばミリ秒精度の時間管理や時間制御が求められるシステムには適用できない。
【０００９】
本発明は上記事情に鑑みてなされたものであり、その目的は、システムバスと複数のプロセッサとの間のデータ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できるデータ処理システムを提供することにある。
【課題を解決するための手段】
【００１０】
請求項１記載のデータ処理システムによれば、システムバスと複数の演算プロセッサとの間で、複数のメモリデバイスを介してデータを転送するデータ転送部において、タイムスタンプ付与部がシステムバスより入力されたデータにタイムスタンプを付与し、経過時間計時部が、プロセッサ入力メモリ及びアレイメモリのそれぞれにデータが入力されてから他のメモリに転送されるまでの経過時間を計時する。また、処理時間計時部は、演算プロセッサによるデータの処理が行われている処理時間を計時し、処理時間判定部は、演算プロセッサにより処理されたデータをシステムバスに出力する際に、タイムスタンプが付与された時点からの総経過時間を、経過時間及び処理時間から求める。そして、総経過時間が規定時間内か否かを判断し、その判断結果を前記データに付与する。
【００１１】
このように構成すれば、システムバスと複数の演算プロセッサとの間におけるデータ転送は、データ転送部が備える複数のメモリデバイスを介して行われるので、転送経路の選択を柔軟に行うことができる。そして、システムバスより入力されたデータが、データ転送部を経由して演算プロセッサに読み込まれ、データ処理が行われた後システムバスに出力されるまでの間に要した時間は、タイムスタンプが付与された時点からの総経過時間によって明確になる。更に、前記総経過時間が規定時間内か否かが判断されることで、リアルタイム処理におけるデータの有効性も明確となる。これにより、データ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できる。
【００１２】
そして、データ転送部においては、システムバスからバス入力メモリにデータが入力され、バス入力メモリに入力されたデータは、複数のアレイメモリの間で転送される。アレイメモリを介して転送されたデータは、複数のプロセッサ入力メモリを経て対応する演算プロセッサにより直接読み込まれる。各演算プロセッサが処理したデータは、それぞれに対応するプロセッサ出力メモリに直接書き込まれると、バス出力メモリを介してシステムバスに出力される。
【００１３】
以上の一連のデータ転送処理において、タイムスタンプは、バス入力メモリに配置されるタイムスタンプ付与部によって入力されたデータに付与され、データ転送部におけるデータ転送に要した時間は、アレイメモリのそれぞれに配置される転送時間計時部によって計時される。また、演算プロセッサによるデータの処理時間は、プロセッサ入力メモリ及び同出力メモリに配置される処理時間計時部により計時され、処理時間の判定は、バス出力メモリに配置される処理時間判定部によって行われる。
【００１４】
このように構成すれば、システムバスより入力されたデータは、バス入力メモリを経由した後、ｍ×ｎの行列状に配置されている複数のアレイメモリ間を転送された後、プロセッサ入力メモリを経て対応する演算プロセッサに読み込まれる。これにより、データの転送経路を、複数のアレイメモリ間において柔軟に選択することが可能になる。また、総経過時間を求めるための経過時間やデータ処理時間の計時は、データ転送部を構成する各メモリの機能に応じてそれぞれのメモリで行われる。したがって、総経過時間を効率的に計時できる。
【００１５】
請求項２記載のデータ処理システムによれば、バス出力メモリをｍ個のプロセッサ出力メモリの１つとしても機能させる。このように、バス出力メモリを、例えばシステムバスに最も近い位置にある演算プロセッサに対応するプロセッサ出力メモリとしても機能させることでメモリデバイスの数を減らすことができ、データ転送をより効率的に行うことができる。
【００１６】
請求項３記載のデータ処理システムによれば、プロセッサ入力メモリのそれぞれに直接接続されている複数のアレイメモリは、自身に接続されているプロセッサ入力メモリに処理待ちのデータが配置されていると、隣接するプロセッサ入力メモリに接続されているアレイメモリにデータを転送する。これより、より早期に処理を行うことが可能な演算プロセッサにデータを処理させることができるので、待ちを発生させることなく効率的に処理できる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態であり、データ処理システムの構成を示す図
【図２】１ｓｔメモリの内部構成を示す機能ブロック図
【図３】Ａｒｒｙメモリの内部構成を示す機能ブロック図
【図４】プロセッサＩＮメモリの内部構成を示す機能ブロック図
【図５】プロセッサＯＵＴメモリの内部構成を示す機能ブロック図
【図６】Ｌａｓｔメモリの内部構成を示す機能ブロック図
【図７】動作タイミングチャート（その１）
【図８】動作タイミングチャート（その２）
【図９】動作タイミングチャート（その３）
【図１０】第２実施形態であり、データ処理システムの構成を示す図
【図１１】第３実施形態であり、データ処理システムの構成を示す図
【図１２】動作タイミングチャート
【図１３】第４実施形態であり、データ処理システムの構成を示す図
【図１４】動作タイミングチャート（その１）
【図１５】動作タイミングチャート（その２）
【図１６】第５実施形態であり、データ処理システムの構成を示す図
【図１７】動作タイミングチャート
【図１８】第６実施形態であり、データ処理システムの構成を示す図
【発明を実施するための形態】
【００１８】
（第１実施形態）
図１に示すように、本実施形態のデータ処理システム１は、例えば車両に搭載されて画像データを処理するシステムに適用される。システムバス２には、ＣＰＵホスト３，イメージセンサ４，ディスプレイ５及びデータ転送部６が接続されている。また、データ処理システム１は、複数例えば３つのＤＳＰ（Digital Signal Processor）７（０），７（１），７（２）を有しており、データ転送部６は、システムバス２とＤＳＰ７（０〜２）との間でデータを転送する。ＤＳＰ７について、図中に示すＩ＄は命令レジスタ，Ｄ＄はデータレジスタ，Ｉ／Ｆはデータ転送部６との間でデータを転送するためのインターフェイスである。ＤＳＰ７は、演算プロセッサに相当する。
【００１９】
イメージセンサ４は、例えば車外の画像を撮像した画像データを出力し、ＤＳＰ７は前記画像データを処理する。ディスプレイ５は車室内に配置されており、ＤＳＰ７が処理した画像データを受信して表示させる。尚、イメージセンサ４には、例えばＬＩＤＡＲ（Laser Imaging Detection and Ranging）のように、レーザ反射により点群画像を取得するものも含むとする。
【００２０】
データ転送部６は、複数個のメモリデバイスを有しており、それらは、１ｓｔメモリ１１，６個のＡｒｒａｙメモリ１２（０，０）〜１２（１，２），３個のプロセッサＩＮメモリ１３（０〜２），２個のプロセッサＯＵＴメモリ１４（０，２）及びＬａｓｔメモリ１５である。尚、Ｌａｓｔメモリ１５は、ＤＳＰ７（２）のプロセッサＯＵＴメモリとしての機能も備えている。以下、上記各メモリの機能を個別に説明する。
【００２１】
＜１ｓｔメモリ＞
１ｓｔメモリ１１には、システムバス２からのデータが直接入力される。図２に示すように、１ｓｔメモリ１１は、システムバス２から入力された複数のデータが先入れ先出しで格納されるデータバッファ２１（１）と、データバッファ２１（１）に格納されたデータに「ラベル」を付与するラベル付与機能部２２（１）とを備えている。
【００２２】
ラベル付与機能部２２は、タイマ（又はカウンタ）２３（１）を有しており、データバッファ２１（１）に格納されたデータに、当該データが格納された時刻，所謂タイムスタンプを「ラベル」として付与する。つまり、前記データに対応するラベルの格納領域に時刻データを書き込む。以降、データ転送部６の内部において転送されるデータはここで付与されたラベルとセットになる。タイマ２３（１）の計時精度は、少なくともミリ秒単位である。ラベル付与機能部２２はタイムスタンプ付与部に相当し、タイマ２３は転送時間計時部に相当する。
【００２３】
また、１ｓｔメモリ１１は、システムバス２からのデータが入力されて格納される際に、その書込み処理に伴うバス転送制御信号が入力される。バス転送制御信号とは、アドレスや転送タイプ，転送サイズなどである。そして、入力されたバス転送制御信号は、転送先のメモリブロックに、データと共に伝達される。
【００２４】
＜Ａｒｒａｙメモリ＞
Ａｒｒａｙメモリ１２は、１ｓｔメモリ１１とプロセッサＩＮメモリ１３との間に配置されており、６個のメモリ１２が３×２の行列状に配置されている。すなわち本実施形態では、ｍ＝３，ｎ＝２である。図３に示すように、Ａｒｒａｙメモリ１２は、１ｓｔメモリ１１と同様のデータバッファ２１（Ａ）と、ラベル付与機能部２２（Ａ）とを備えている。但し、Ａｒｒａｙメモリ１２には既にラベルが付与されたデータが入力されるので、ラベル付与機能部２２（Ａ）では、データバッファ２１（Ａ）に格納されたデータが他のメモリに転送されるまでの経過時間をタイマ２３（Ａ）により計時し、その経過時間をラベルに付与する。
【００２５】
また、データ転送部６の各メモリデバイスは、何れもクロック同期によりデータを転送する。そして、Ａｒｒａｙメモリ１２では、他のメモリ１２等に転送すべきデータの入力がない「ブランク」の状態では、クロックゲーティング部２４により、入力されるクロック信号の出力を停止させて低電力モードに移行する。
【００２６】
＜プロセッサＩＮメモリ＞
プロセッサＩＮメモリ１３は、Ａｒｒａｙメモリ１２とＤＳＰ７との間に配置されており、図４に示すように、同様のデータバッファ２１（Ｉ）と、ラベル付与機能部２２（Ｉ）とを備えている。プロセッサＩＮメモリ１３にはＡｒｒａｙメモリ１２と同様に、既にラベルが付与されたデータが入力される。ラベル付与機能部２２（Ｉ）では、データバッファ２１（Ｉ）に格納されたデータが他のメモリに転送されるまでの経過時間をタイマ２３（Ｉ）により計時し、その経過時間をラベルに付与する。各ＤＳＰ７は、それぞれ対応するプロセッサＩＮメモリ１３からデータを直接読み込む。
【００２７】
＜プロセッサＯＵＴメモリ＞
プロセッサＯＵＴメモリ１４は、ＤＳＰ７とＡｒｒａｙメモリ１２との間に配置されており、図５に示すように、データバッファ２１（Ｏ）と、ラベル付与機能部２２（Ｏ）とを備えている。データバッファ２１（Ｏ）には、ＤＳＰ７により処理されたデータが直接書き込まれる。ラベル付与機能部２２（Ｏ）には、対応するプロセッサＩＮメモリ１３より、ＤＳＰ７がデータを読み込んで処理を開始した時間が通知される。そして、タイマ２３（Ｏ）は、上記の通知された時間からＤＳＰ７により処理されたデータが書き込まれるまでの時間を計時し、その計時時間をラベルに付与する。
【００２８】
尚、プロセッサＯＵＴメモリ１４（１）には、プロセッサＯＵＴメモリ１４（０）に書き込まれたデータが転送されて入力される。また、プロセッサＯＵＴメモリ１４（２）に相当するＬａｓｔメモリ１５には、プロセッサＯＵＴメモリ１４（１）に書き込まれたデータが転送されて入力される。タイマ２３（Ｉ）及び２３（Ｏ）は、処理時間計時部に相当する。
【００２９】
＜Ｌａｓｔメモリ＞
Ｌａｓｔメモリ１５は、プロセッサＯＵＴメモリ１４（１）とシステムバス２との間に配置されており、前述のようにＤＳＰ７（２）に対応するプロセッサＯＵＴメモリ１４（２）としての機能も備えている。図６に示すように、データバッファ２１（Ｌ）には、ＤＳＰ７（３）により処理されたデータが直接書き込まれると共に、プロセッサＯＵＴメモリ１４（１）に書き込まれたデータが転送されて入力される。
【００３０】
ラベル付与機能部２２（Ｌ）には、プロセッサＩＮメモリ１３（２）より、ＤＳＰ７（２）がデータを読み込んで処理を開始した時間が通知される。そして、タイマ２３（Ｌ）は、上記の通知された時間からＤＳＰ７（２）により処理されたデータが書き込まれるまでの時間を計時し、その計時時間をラベルに付与する。タイマ２３（Ｌ）は処理時間計時部に相当する。
【００３１】
Ｌａｓｔメモリ１５は、データ転送部６において最後尾に位置するメモリであり、データバッファ２１（Ｌ）に格納されたデータに付与されているラベルが示す時間は、ここまでのデータ転送に要した時間，つまり総経過時間である。リアルタイム判定部２５は、前記総経過時間が、データ転送部６に入力されたデータをリアルタイム処理する時間として規定されている時間内であるか否かを判断する。その判断結果は、ラベル付与機能部２２（Ｌ）を介して対応するデータのラベルとして付与される。リアルタイム判定部２５は処理時間判定部に相当する。
【００３２】
次に、本実施形態の作用について説明する。データ転送部６におけるデータ転送方向の原則は、全てのメモリに空きがある初期状態では、図１中の上方向，左方向を優先してデータを書き込み、上方向，右方向を優先してデータを移動させる。そして、２つのメモリからの移動先が競合した場合には、上段のメモリを優先して転送させる。
【００３３】
初期状態において、図７に示すように、最初のデータ（０）がシステムバス２から１ｓｔメモリ１１に入力される。この時、１ｓｔメモリ１１のラベル付与機能部２２（１）は、データ（０）をＤＳＰ７（０）に処理させるため、転送先ラベルを「ＤＳＰ７（０）」として付与する。尚、入力されるデータを何れのＤＳＰ７に処理させるかは、例えばデータに付されているアドレスの値に応じて決定しても良い。
【００３４】
また、タイマ２３（１）は、データ（０）が入力された時刻をタイムラベルとして付与する。尚、図７では説明を簡単にするため、データがシステムバス２から１ｓｔメモリ１１に入力された時刻をｍｓオーダーの相対時刻「＃０」と表している。また、図７では、前記相対時刻を「ローカルタイムカウント」としている。ローカルタイムカウントは、１ｓｔメモリ１１に入力されるデータ毎に固有の時刻である。一方、図中に示す「グローバルタイムカウント」は、システム上で共通して参照される時刻であり、これについては後述する。
【００３５】
１ｓｔメモリ１１は、データ（０）をＡｒｒｙメモリ１２（０，０）に転送する。データ（０）は、ここからＤＳＰ７（０）に向けて、更にメモリ１２（１，０）→メモリ１３（０）に転送される。ここまでのメモリ間転送にそれぞれ２ｍｓを要したとすると、メモリ１３（０）におけるタイムラベルは「＃６」になる。以下、各メモリ間転送に要する時間は何れも２ｍｓとする。
【００３６】
そこから、データ（０）は、ＤＳＰ７（０）により読み込まれて処理される。例えばＤＳＰ７（０）は常時メモリ１３（０）にアクセスしており、読み出したデータの値が初期値から変化した際に処理すべきデータを読み込んだことを認識して処理を開始する。或いは、メモリ１３（０）が、宛先ラベルがＤＳＰ７（０）であるデータが入力された際に、ＤＳＰ７（０）に割り込みを発生させてアクセスを開始させても良い。
【００３７】
ここで、ＤＳＰ７（０）が処理に要した時間が１０ｍｓであるとすれば、メモリ１４（０）で付与されるタイムラベルは「＃１８」となる。実際には、メモリ１４（０）には、メモリ１３（０）より処理の開始時刻であるタイムラベル「＃６」が通知される。その通知時から、ＤＳＰ７（０）によるデータの書き込みが行われた時点までの時刻「＃１２」がタイマ２３（Ｏ）により計時されるので、結果として付与されるタイムラベルが上記のように「＃１８」となる。
【００３８】
その後、データ（０）は、メモリ１４（１）→メモリ（１５）へと転送されるので、メモリ１５で付与されるタイムラベルは「＃２２」となる。ここで、リアルタイム判定部２５は、処理時間を判定する。例えば規定時間が２５ｍｓであるとすれば、判定結果は「ＯＫ」となる。これが判定結果ラベルとして付与され、データ（０）はシステムバス２に出力される。すると、ＣＰＵホスト３は、データ（０）をラベルと共に読み込んで、判定結果ラベルを参照し、前記ラベルが「ＯＫ」であることを確認してデータ（０）を「有効」と判定する。
【００３９】
また、データ（０）に続いて、データ（１）がシステムバス２から１ｓｔメモリ１１に入力されると、ラベル付与機能部２２（１）は、データ（１）をＤＳＰ７（１）に処理させるため、転送先ラベルを「ＤＳＰ７（１）」として付与する。すると、データ（１）の転送経路は、例えば以下のようになる。
メモリ１１→メモリ１２（０，０）→メモリ１２（１，０）→
メモリ１２（１，１）→メモリ１３（１）
したがって、メモリ１３（１）で付与されるタイムラベルは「＃８」となる。
【００４０】
データ（１）は、ＤＳＰ７（１）により読み込まれて処理され、その処理に要した時間が同じく１０ｍｓであるとすれば、メモリ１４（１）で付与されるタイムラベルは「＃２０」となる。その後、データ（１）はメモリ（１５）に転送されるので、メモリ１５で付与されるタイムラベルはやはり「＃２２」となる。したがって、リアルタイム判定部２５の判定結果は「ＯＫ」となる。
【００４１】
更に、データ（１）に続いて、データ（２）がシステムバス２から１ｓｔメモリ１１に入力されると、ラベル付与機能部２２（１）は、データ（２）の転送先ラベルを「ＤＳＰ７（２）」として付与する。すると、データ（２）の転送経路は、例えば以下のようになる。
メモリ１１→メモリ１２（０，０）→メモリ１２（１，０）→
メモリ１２（１，１）→メモリ１２（１，２）→メモリ１３（２）
したがって、メモリ１３（２）で付与されるタイムラベルは「＃１０」となる。
【００４２】
データ（２）は、ＤＳＰ７（２）により読み込まれて処理され、その処理に要した時間が１０ｍｓであるとすれば、メモリ１５で付与されるタイムラベルは「＃２２」となる。したがって、リアルタイム判定部２５の判定結果は「ＯＫ」となる。尚、図７及び図８に示すでは、「グローバルタイムカウント」は使用していない。
【００４３】
図８は、転送時間等の計時をダウンカウントで行う場合であり、メモリ１１では初期値「＃３０」を付与し、そこから要した時間を順次減じて行く。Ｌａｓｔメモリ１５におけるリアルタイム処理判定では、例えば残値が「＃０」以上であれば「ＯＫ」とする。
【００４４】
また、図９は、タイムラベルを「グローバル」のみとする場合であり、メモリ１１のラベル付与機能部２２（１）において、データが入力されたされた際にタイマ２３（１）が計時している時刻をタイムラベルとして付与する。この場合、Ｌａｓｔメモリ１５は、メモリ１１におけるタイマ２３（１）の時刻データを参照可能となっており、前記時刻データとの差分値によってリアルタイム処理判定を行う。例えば、前記差分値が規定時間を超えていなければ「ＯＫ」と判定する。
【００４５】
また、図７〜図９に示す例ではデータの転送先に競合が発生していないが、例えば、メモリ１２（１，０）にＤＳＰ７（０）を宛先とするデータが入力された際に、メモリ１３（０）に処理待ちのデータが存在する場合を想定する。この時、メモリ１２（１，０）のラベル付与機能部２２（Ａ）は、メモリ１３（１）に空きがあれば前記データの宛先をＤＳＰ７（１）に書き換えて、メモリ１２（１，１）を介してメモリ１３（１）に転送する。これにより、即時処理が可能なＤＳＰ７（１）にデータを処理させる。メモリ１３に空きがあるか否かは、例えばメモリ１３にセットされる「空きフラグ」の有無を参照して判断する。
【００４６】
以上のように本実施形態によれば、システムバス２と複数のＤＳＰ７との間でデータを転送するデータ転送部６では、ラベル付与機能部２２がシステムバス２より入力されたデータにタイムスタンプを付与し、タイマ２３（Ａ）がデータ転送時間を計時する。また、タイマ２３（Ｉ，Ｏ）は、ＤＳＰ７によるデータ処理時間を計時し、リアルタイム処理判定部２５は、ＤＳＰ７により処理されたデータをシステムバス２に出力する際に、タイムスタンプが付与された時点からの総経過時間を求める。そして、総経過時間が規定時間内か否かを判断し、その判断結果をラベルとして前記データに付与する。
【００４７】
このように構成すれば、システムバス２と複数のＤＳＰ７との間におけるデータ転送は、データ転送部６が備える複数のメモリデバイスを介して行われるので、転送経路の選択を柔軟に行うことができる。そして、システムバス２より入力されたデータが、データ転送部６を経由してＤＳＰ７に読み込まれ、データ処理が行われた後システムバス２に出力されるまでの間に要した時間は、タイムスタンプが付与された時点からの総経過時間によって明確になる。更に、前記総経過時間が規定時間内か否かが判断されることで、リアルタイム処理におけるデータの有効性も明確となる。これにより、データ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できる。
【００４８】
加えて、ＣＰＵホスト３は、データ転送部６を介してシステムバス２に出力されたデータが有効か否かを、当該データに付与されているラベルにより判定でき、「無効」であれば、直ちに新たなデータの処理を開始させるなどの対応が可能になる。したがって、リアルタイム性が重視される処理システムに好適である。
【００４９】
この場合、データ転送部６では、システムバス２から１ｓｔメモリ１１にデータが入力され、メモリ１１に入力されたデータは、複数のＡｒｒｙメモリ１２の間で転送される。メモリ１２を介して転送されたデータは、複数のプロセッサＩＮメモリ１３を経て対応するＤＳＰ７により直接読み込まれる。各ＤＳＰ７が処理したデータは、それぞれに対応するプロセッサＯＵＴメモリ１４に直接書き込まれると、Ｌａｓｔメモリ１５を介してシステムバス２に出力される。
【００５０】
このように構成すれば、データの転送経路を、複数のＡｒｒｙメモリ１２の間で柔軟に選択することが可能になる。また、総経過時間を求めるためのデータ転送時間やデータ処理時間の計時は、データ転送部６を構成する各メモリの機能に応じてそれぞれのメモリで行われる。したがって、総経過時間を効率的に計時できる。そして、Ｌａｓｔメモリ１５を、プロセッサＯＵＴメモリ１４（２）としても機能させることでメモリデバイスの数を減らすことができ、データをより効率的に転送することができる。
【００５１】
また、Ａｒｒｙメモリ１２（１，０），１２（１，１）は、それぞれに接続されているプロセッサＩＮメモリ１３（０），１３（１）に処理待ちのデータが配置されていると、データの宛先を変更して、それぞれに隣接するＡｒｒｙメモリ１２（１，１），１２（１，２）にデータを転送する。したがって、即時処理が可能なＤＳＰ７に早期に処理を開始させて効率を更に向上させることができる。
【００５２】
また、データ転送部６は、システムバス２より入力されたデータを、１ｓｔメモリ１１からのデータ転送パスが最短となるプロセッサＩＮメモリ１３（０）を優先させて転送し、メモリ１３（０）に隣接するメモリ１３（１），１３（２）に順次データを転送する。そして、Ａｒｒｙメモリ１２間でデータの転送先に競合が発生すると、メモリ１３へのパスが短い方のメモリ１２を優先して転送を行わせる。これらにより総じて、データ転送効率を一層向上させることができる。
【００５３】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図１０に示すように、第２実施形態のデータ処理システム３１では、データ転送部３２が１ｓｔメモリ１１に代わる１ｓｔメモリ３３を備えている。また、１ｓｔメモリ３３と、メモリ１２（１，０）及びメモリ１３（０〜２）との間は、初期データ転送用バス３４で接続されている。
【００５４】
そして、１ｓｔメモリ３３は、起動後の最初のデータ転送を、初期データ転送用バス３４を利用して、図中に番号を付して示すように以下の順で行う。
１３（２）→１３（１）→１３（０）→１２（１，０）→１２（０，０）
この場合、メモリ３３は、上記の各メモリに対して書き込みを行うための制御信号を、それぞれ個別に出力する。
【００５５】
また、メモリ３３は、初期データ転送用バス３４と、通常時に使用するメモリ１２（０，０）のみにデータを転送するバスとを切り替えるセレクタと、初期データの転送数をカウントするためのカウンタとを備えている。これらは何れも図示しない。そして、初期データの転送数「４」までは初期データ転送用バス３４を使用し、それ以後は通常時に使用するバス側に切り替えて転送を行う。
【００５６】
以上のように第２実施形態によれば、データ転送部３２は、メモリ３３とメモリ１２（１，０）及びメモリ１３（０〜２）との間をそれぞれ直接接続する初期データ転送用バス３４を備え、メモリ３３は、電源が投入された後に入力が開始された初期データを、前記初期データ転送用バス３４を介して、データ転送パスが最長となるメモリ１３（２）から順次前記パスが短くなるメモリに転送する。このように構成すれば、初期データの転送に要する時間を短縮して処理効率を向上させることができる。
【００５７】
（第３実施形態）
図１１に示すように、第３実施形態のデータ処理システム４１では、データ転送部４２においてＬａｓｔメモリ１５に替わるＬａｓｔメモリ４３が、メモリ１２〜１４に対してデータの無効を通知する機能を備えている。例えば図１２に示すように、データ（０）〜（５）が、それぞれデータ転送部４１における異なる転送フェイズにある場合に、処理後のデータ（０）がＬａｓｔメモリ４３に転送された時点で「無効」と判定されたとする。
【００５８】
この場合、リアルタイム処理であることから、後続するその他のデータも全て無効になるとすると、Ｌａｓｔメモリ４３がメモリ１２〜１４及びＤＳＰ７（２）に対してデータが無効になったことを通知する。すると、通知を受けたメモリ１２〜１４及びＤＳＰ７（２）は、図中にハッチングを付して示すようにその時点で保持しているデータの転送を中止して、以降に１ｓｔメモリ１１を介して入力される新たなデータについて転送を行う。尚、ＤＳＰ７に対する通知は、例えば割り込みを発生させて行うようにする。
【００５９】
以上のように第３実施形態によれば、Ｌａｓｔメモリ４３は自身が保持しているデータが無効となったことに伴い、現在処理中の他のデータも無効になった際には、その処理中のデータを保持しているＤＳＰ７及び各メモリ１２〜１４に無効であることを通知する。そして、前記通知を受信したＤＳＰ７及びメモリ１２〜１４は現在保持中のデータの転送を中止し、その時点以降にメモリ１１を介して入力されるデータについて転送を行う。したがって、無効なデータが発生した際の処理効率を向上させることができる。
【００６０】
（第４実施形態）
図１３に示すように、第４実施形態のデータ処理システム５１では、データ転送部５２が、１ｓｔメモリ１１に替わる１ｓｔメモリ５３を備えている。そして、第３実施形態のＬａｓｔメモリ４３に替わるＬａｓｔメモリ５４は、１ｓｔメモリ５３に対し、データをシステムバス２に出力した時刻を通知する機能を備えている。
【００６１】
例えば図１４に示すように、データ転送部５１において１ｓｔメモリ５３からＬａｓｔメモリ５４までで行われる処理を「マルチプロセッサ・システム内処理」と称し、システムバス２を介してデータ転送部５１が関わることなく行われる処理を「マルチプロセッサ・システム外処理」と称す。そして、それぞれのデータが「システム内処理」と「システム外処理」とを交互に、循環的に繰り返すものとする。
【００６２】
この場合、上記の「システム内処理」と「システム外処理」とを循環的に繰り返すデータの同一性は、データに付されているアドレス又は「ラベル」で判断する。そして、１ｓｔメモリ５３は、「システム内処理」を終了したデータが、それに続く「システム外処理」を経て再度データ転送部５１に入力されるまでの時間を計時する。１ｓｔメモリ５３は、「システム外処理」について規定時間との比較を行い、「システム外処理」を経たデータが有効か否かを判断する。データが有効であれば処理を継続し、無効であればその時点で処理を中止する。
【００６３】
例えば図１５に示すように、データ（０）がフェイズ（４）の「システム外処理」を終了し、次のフェイズ（５）の「システム内処理」に移行しようとする際に「無効」と判定され、それに伴いデータ（１）も「無効」と判定されたとする。この場合、１ｓｔメモリ５３は、データ（０）及び（１）の処理を中止して、データ（２）及び（３）の処理を継続する。この場合、１ｓｔメモリ５３が例えばＣＰＵホスト３に割り込みを発生させて、データ（０）及び（１）が無効になったことを通知しても良い。また、ＣＰＵホスト３に直接通知を行う以外に、例えばシステムバス２に共通レジスタやオンチップメモリを接続し、それらのレジスタやメモリにデータが無効になったことを通知するための書き込みを行っても良い。
【００６４】
以上のように第４実施形態によれば、Ｌａｓｔメモリ５４は、１ｓｔメモリ５３に対し、データをシステムバス２に出力した時刻を通知する。１ｓｔメモリ５３は、通知された時刻から前記データが再度入力されるまでの時間を計時して規定時間と比較し、前記データが無効と判断すると当該データの処理を中止する。したがって、「システム内処理」と「システム外処理」とを循環的に繰り返すデータについても有効性を判定し、処理効率を向上させることができる。
【００６５】
（第５実施形態）
図１６に示すように、第５実施形態のデータ処理システム６１では、ＤＳＰ７及びデータ転送部６２にシステムクロック信号を供給するクロックジェネレータ６３を備えている。クロックジェネレータ６３は、システムバス２を介してＣＰＵホスト６４により制御され、クロック周波数が変更可能となっている。そして、データ転送部６２におけるＬａｓｔメモリ６５は、ＣＰＵホスト６４に対してデータ処理の「余力時間」を通知する。尚、余力時間の通知は、所定の長さを超える場合にのみ行うようにしても良い。ＣＰＵホスト６４は処理時間調整部に相当する。
【００６６】
図１７に示すように、「余力時間」とは、規定時間と実際にデータ転送処理に要した時間との差である。余力時間は、例えば数１０分〜１時間程度の周期毎に通知する。ＣＰＵホスト６４は、通知された余力時間から、システムクロックの周波数を低下させることが可能と判断した際には、クロックジェネレータ６３に対する設定を変更して周波数を低下させる。これにより電力消費を低減することができる。
【００６７】
（第６実施形態）
図１８に示すように、第６実施形態のデータ処理システム７１では、データ転送部７２において、１ｓｔメモリ５３の入力側に入力セレクタ７３が配置され、Ｌａｓｔメモリ５４の出力側に出力セレクタ７４が配置されている。入力セレクタ７３は、１ｓｔメモリ５３に対し、システムバス２からのデータを入力するか、イメージセンサ４が出力するデータを直接入力するかを選択する。出力セレクタ７４は、Ｌａｓｔメモリ５４からのデータをシステムバス２に出力するか、ディスプレイ５に直接出力するかを選択する。これらの選択切り替えは、ＣＰＵホスト７５によって行われる。
【００６８】
以上のように構成される第６実施形態によれば、各時点の処理状況に応じて、データをシステムバス２を介してデータ転送部７２に入力するか、イメージセンサ４から直接入力するかを選択できる。また、データ転送部７２からデータをシステムバス２に出力するか、ディスプレイ５に直接出力するかを選択できる。
【００６９】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
各実施形態を、適宜組合わせて実施しても良い。
Ａｒｒｙメモリ１２の数は、（３×３）以上でも良い。
データのアサインは、ＤＳＰ７側の要求に応じて行っても良い。例えば、ＤＳＰ７（０）〜７（２）の全てがデータを要求している際には、７（０）→７（１）→７（２）の優先順位で１ｓｔメモリ１１がデータの宛先を指定する。
【００７０】
プロセッサＯＵＴメモリ１４（２）を、別途設けても良い。
ＤＳＰ７が２個又は４個以上あるシステムに適用しても良い。
演算プロセッサは、ＣＰＵやＦＰＧＡで構成されるプロセッサでも良い。
画像処理以外のデータ処理や、車載以外の用途に適用しても良い。
【符号の説明】
【００７１】
１  データ処理システム、２  システムバス、３  ＣＰＵホスト、４  イメージセンサ、５  ディスプレイ、６  データ転送部、７  ＤＳＰ、１１  １ｓｔメモリ、１２  Ａｒｒａｙメモリ、１２（１，１）〜１２（２，３），１３  プロセッサＩＮメモリ、１４  プロセッサＯＵＴメモリ、１５  Ｌａｓｔメモリ、２２  ラベル付与機能部、２３  タイマ。
【図１】
0006805562.tif 000002
【図２】
0006805562.tif 000003
【図３】
0006805562.tif 000004
【図４】
0006805562.tif 000005
【図５】
0006805562.tif 000006
【図６】
0006805562.tif 000007
【図７】
0006805562.tif 000008
【図８】
0006805562.tif 000009
【図９】
0006805562.tif 000010
【図１０】
0006805562.tif 000011
【図１１】
0006805562.tif 000012
【図１２】
0006805562.tif 000013
【図１３】
0006805562.tif 000014
【図１４】
0006805562.tif 000015
【図１５】
0006805562.tif 000016
【図１６】
0006805562.tif 000017
【図１７】
0006805562.tif 000018
【図１８】
0006805562.tif 000019