(58)【調査した分野】(Int.Cl.,DB名)
前記プロセッサ入力メモリのそれぞれに直接接続されているm個のアレイメモリは、それぞれに接続されているプロセッサ入力メモリに処理待ちのデータが配置されていると、隣接するプロセッサ入力メモリに接続されているアレイメモリにデータを転送する請求項1又は2記載のデータ処理システム。
前記データ転送部は、前記バス入力メモリと前記m個のプロセッサ入力メモリ(13(0),13(1),13(2))との間,及び前記バス入力メモリと、データ転送パスが最短となるプロセッサ入力メモリ(13(0))との間の同パス中に存在するアレイメモリとの間をそれぞれ直接接続する初期データ転送用バス(34)を備え、
前記バス入力メモリは、電源が投入された後に入力が開始された初期データを、前記初期データ転送用バスを介して、データ転送パスが最長となるプロセッサ入力メモリ(13(2))から順次前記パスが短くなるプロセッサ入力メモリ(13(1),13(0))に転送する請求項1から4の何れか一項に記載のデータ処理システム。
前記バス出力メモリ(54)は、前記システムバスに出力されたデータが前記バス入力メモリに再度入力されるものである際に、前記データがシステムバスに出力されたことを前記バス入力メモリ(53)に対して通知し、
前記バス入力メモリは、前記通知があった時刻から前記データが再度入力されるまでの時間を計時し、その計時時間を規定時間と比較して前記データが無効か否かを判断し、無効と判断すると前記データの処理を中止する請求項1から7の何れか一項に記載のデータ処理システム。
前記バス入力メモリに対して、前記システムバスを介してデータを入力するパスと、前記システムバスを介すことなくデータを入力するパスとを切替える入力セレクタ(73)と、
前記バス出力メモリから前記システムバスにデータを入力するパスと、前記システムバスを介すことなくデータを出力するパスとを切替える出力セレクタ(74)とを備える請求項1から8の何れか一項に記載のデータ処理システム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1のようなルーティングは、メインルータを経由することで低いレイテンシを保証するが、メインルータへのアクセスが集中するためことで競合が発生し、転送効率が低下するおそれがある。例えば予備ルータを設けることでアクセスの競合を低減できるが、処理性能の低下は避けられない。また、ネットワークオンチップのハードウェア資源は、トポロジの汎用性を確保する必要から実用上冗長な資源を持たざるを得ず、利用効率の低下を招き消費電力の低減が図れない。
【0008】
また、特許文献2のようなリアルタイム管理は、タスク管理スケジューラの割り込み制御により実施され、ホスト主導のタスク管理によるリアルタイム処理となる。そのため、例えばミリ秒精度の時間管理や時間制御が求められるシステムには適用できない。
【0009】
本発明は上記事情に鑑みてなされたものであり、その目的は、システムバスと複数のプロセッサとの間のデータ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できるデータ処理システムを提供することにある。
【課題を解決するための手段】
【0010】
請求項1記載のデータ処理システムによれば、システムバスと複数の演算プロセッサとの間で、複数のメモリデバイスを介してデータを転送するデータ転送部において、タイムスタンプ付与部がシステムバスより入力されたデータにタイムスタンプを付与し、経過時間計時部が、プロセッサ入力メモリ
及びアレイメモリのそれぞれにデータが入力されてから他のメモリに転送されるまでの経過時間を計
時する。また、処理時間計時部は、演算プロセッサによるデータの処理が行われている処理時間を計時し、処理時間判定部は、演算プロセッサにより処理されたデータをシステムバスに出力する際に、タイムスタンプが付与された時点からの総経過時間を、経過時
間及び処理時間から求める。そして、総経過時間が規定時間内か否かを判断し、その判断結果を前記データに付与する。
【0011】
このように構成すれば、システムバスと複数の演算プロセッサとの間におけるデータ転送は、データ転送部が備える複数のメモリデバイスを介して行われるので、転送経路の選択を柔軟に行うことができる。そして、システムバスより入力されたデータが、データ転送部を経由して演算プロセッサに読み込まれ、データ処理が行われた後システムバスに出力されるまでの間に要した時間は、タイムスタンプが付与された時点からの総経過時間によって明確になる。更に、前記総経過時間が規定時間内か否かが判断されることで、リアルタイム処理におけるデータの有効性も明確となる。これにより、データ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できる。
【0012】
そして、データ転送部においては、システムバスからバス入力メモリにデータが入力され、バス入力メモリに入力されたデータは、複数のアレイメモリの間で転送される。アレイメモリを介して転送されたデータは、複数のプロセッサ入力メモリを経て対応する演算プロセッサにより直接読み込まれる。各演算プロセッサが処理したデータは、それぞれに対応するプロセッサ出力メモリに直接書き込まれると、バス出力メモリを介してシステムバスに出力される。
【0013】
以上の一連のデータ転送処理において、タイムスタンプは、バス入力メモリに配置されるタイムスタンプ付与部によって入力されたデータに付与され、データ転送部におけるデータ転送に要した時間は、アレイメモリのそれぞれに配置される転送時間計時部によって計時される。また、演算プロセッサによるデータの処理時間は、プロセッサ入力メモリ及び同出力メモリに配置される処理時間計時部により計時され、処理時間の判定は、バス出力メモリに配置される処理時間判定部によって行われる。
【0014】
このように構成すれば、システムバスより入力されたデータは、バス入力メモリを経由した後、m×nの行列状に配置されている複数のアレイメモリ間を転送された後、プロセッサ入力メモリを経て対応する演算プロセッサに読み込まれる。これにより、データの転送経路を、複数のアレイメモリ間において柔軟に選択することが可能になる。また、総経過時間を求めるための
経過時間やデータ処理時間の計時は、データ転送部を構成する各メモリの機能に応じてそれぞれのメモリで行われる。したがって、総経過時間を効率的に計時できる。
【0015】
請求項
2記載のデータ処理システムによれば、バス出力メモリをm個のプロセッサ出力メモリの1つとしても機能させる。このように、バス出力メモリを、例えばシステムバスに最も近い位置にある演算プロセッサに対応するプロセッサ出力メモリとしても機能させることでメモリデバイスの数を減らすことができ、データ転送をより効率的に行うことができる。
【0016】
請求項
3記載のデータ処理システムによれば、プロセッサ入力メモリのそれぞれに直接接続されている複数のアレイメモリは、自身に接続されているプロセッサ入力メモリに処理待ちのデータが配置されていると、隣接するプロセッサ入力メモリに接続されているアレイメモリにデータを転送する。これより、より早期に処理を行うことが可能な演算プロセッサにデータを処理させることができるので、待ちを発生させることなく効率的に処理できる。
【発明を実施するための形態】
【0018】
(第1実施形態)
図1に示すように、本実施形態のデータ処理システム1は、例えば車両に搭載されて画像データを処理するシステムに適用される。システムバス2には、CPUホスト3,イメージセンサ4,ディスプレイ5及びデータ転送部6が接続されている。また、データ処理システム1は、複数例えば3つのDSP(Digital Signal Processor)7(0),7(1),7(2)を有しており、データ転送部6は、システムバス2とDSP7(0〜2)との間でデータを転送する。DSP7について、図中に示すI$は命令レジスタ,D$はデータレジスタ,I/Fはデータ転送部6との間でデータを転送するためのインターフェイスである。DSP7は、演算プロセッサに相当する。
【0019】
イメージセンサ4は、例えば車外の画像を撮像した画像データを出力し、DSP7は前記画像データを処理する。ディスプレイ5は車室内に配置されており、DSP7が処理した画像データを受信して表示させる。尚、イメージセンサ4には、例えばLIDAR(Laser Imaging Detection and Ranging)のように、レーザ反射により点群画像を取得するものも含むとする。
【0020】
データ転送部6は、複数個のメモリデバイスを有しており、それらは、1stメモリ11,6個のArrayメモリ12(0,0)〜12(1,2),3個のプロセッサINメモリ13(0〜2),2個のプロセッサOUTメモリ14(0,2)及びLastメモリ15である。尚、Lastメモリ15は、DSP7(2)のプロセッサOUTメモリとしての機能も備えている。以下、上記各メモリの機能を個別に説明する。
【0021】
<1stメモリ>
1stメモリ11には、システムバス2からのデータが直接入力される。
図2に示すように、1stメモリ11は、システムバス2から入力された複数のデータが先入れ先出しで格納されるデータバッファ21(1)と、データバッファ21(1)に格納されたデータに「ラベル」を付与するラベル付与機能部22(1)とを備えている。
【0022】
ラベル付与機能部22は、タイマ(又はカウンタ)23(1)を有しており、データバッファ21(1)に格納されたデータに、当該データが格納された時刻,所謂タイムスタンプを「ラベル」として付与する。つまり、前記データに対応するラベルの格納領域に時刻データを書き込む。以降、データ転送部6の内部において転送されるデータはここで付与されたラベルとセットになる。タイマ23(1)の計時精度は、少なくともミリ秒単位である。ラベル付与機能部22はタイムスタンプ付与部に相当し、タイマ23は転送時間計時部に相当する。
【0023】
また、1stメモリ11は、システムバス2からのデータが入力されて格納される際に、その書込み処理に伴うバス転送制御信号が入力される。バス転送制御信号とは、アドレスや転送タイプ,転送サイズなどである。そして、入力されたバス転送制御信号は、転送先のメモリブロックに、データと共に伝達される。
【0024】
<Arrayメモリ>
Arrayメモリ12は、1stメモリ11とプロセッサINメモリ13との間に配置されており、6個のメモリ12が3×2の行列状に配置されている。すなわち本実施形態では、m=3,n=2である。
図3に示すように、Arrayメモリ12は、1stメモリ11と同様のデータバッファ21(A)と、ラベル付与機能部22(A)とを備えている。但し、Arrayメモリ12には既にラベルが付与されたデータが入力されるので、ラベル付与機能部22(A)では、データバッファ21(A)に格納されたデータが他のメモリに転送されるまでの経過時間をタイマ23(A)により計時し、その経過時間をラベルに付与する。
【0025】
また、データ転送部6の各メモリデバイスは、何れもクロック同期によりデータを転送する。そして、Arrayメモリ12では、他のメモリ12等に転送すべきデータの入力がない「ブランク」の状態では、クロックゲーティング部24により、入力されるクロック信号の出力を停止させて低電力モードに移行する。
【0026】
<プロセッサINメモリ>
プロセッサINメモリ13は、Arrayメモリ12とDSP7との間に配置されており、
図4に示すように、同様のデータバッファ21(I)と、ラベル付与機能部22(I)とを備えている。プロセッサINメモリ13にはArrayメモリ12と同様に、既にラベルが付与されたデータが入力される。ラベル付与機能部22(I)では、データバッファ21(I)に格納されたデータが他のメモリに転送されるまでの経過時間をタイマ23(I)により計時し、その経過時間をラベルに付与する。各DSP7は、それぞれ対応するプロセッサINメモリ13からデータを直接読み込む。
【0027】
<プロセッサOUTメモリ>
プロセッサOUTメモリ14は、DSP7とArrayメモリ12との間に配置されており、
図5に示すように、データバッファ21(O)と、ラベル付与機能部22(O)とを備えている。データバッファ21(O)には、DSP7により処理されたデータが直接書き込まれる。ラベル付与機能部22(O)には、対応するプロセッサINメモリ13より、DSP7がデータを読み込んで処理を開始した時間が通知される。そして、タイマ23(O)は、上記の通知された時間からDSP7により処理されたデータが書き込まれるまでの時間を計時し、その計時時間をラベルに付与する。
【0028】
尚、プロセッサOUTメモリ14(1)には、プロセッサOUTメモリ14(0)に書き込まれたデータが転送されて入力される。また、プロセッサOUTメモリ14(2)に相当するLastメモリ15には、プロセッサOUTメモリ14(1)に書き込まれたデータが転送されて入力される。タイマ23(I)及び23(O)は、処理時間計時部に相当する。
【0029】
<Lastメモリ>
Lastメモリ15は、プロセッサOUTメモリ14(1)とシステムバス2との間に配置されており、前述のようにDSP7(2)に対応するプロセッサOUTメモリ14(2)としての機能も備えている。
図6に示すように、データバッファ21(L)には、DSP7(3)により処理されたデータが直接書き込まれると共に、プロセッサOUTメモリ14(1)に書き込まれたデータが転送されて入力される。
【0030】
ラベル付与機能部22(L)には、プロセッサINメモリ13(2)より、DSP7(2)がデータを読み込んで処理を開始した時間が通知される。そして、タイマ23(L)は、上記の通知された時間からDSP7(2)により処理されたデータが書き込まれるまでの時間を計時し、その計時時間をラベルに付与する。タイマ23(L)は処理時間計時部に相当する。
【0031】
Lastメモリ15は、データ転送部6において最後尾に位置するメモリであり、データバッファ21(L)に格納されたデータに付与されているラベルが示す時間は、ここまでのデータ転送に要した時間,つまり総経過時間である。リアルタイム判定部25は、前記総経過時間が、データ転送部6に入力されたデータをリアルタイム処理する時間として規定されている時間内であるか否かを判断する。その判断結果は、ラベル付与機能部22(L)を介して対応するデータのラベルとして付与される。リアルタイム判定部25は処理時間判定部に相当する。
【0032】
次に、本実施形態の作用について説明する。データ転送部6におけるデータ転送方向の原則は、全てのメモリに空きがある初期状態では、
図1中の上方向,左方向を優先してデータを書き込み、上方向,右方向を優先してデータを移動させる。そして、2つのメモリからの移動先が競合した場合には、上段のメモリを優先して転送させる。
【0033】
初期状態において、
図7に示すように、最初のデータ(0)がシステムバス2から1stメモリ11に入力される。この時、1stメモリ11のラベル付与機能部22(1)は、データ(0)をDSP7(0)に処理させるため、転送先ラベルを「DSP7(0)」として付与する。尚、入力されるデータを何れのDSP7に処理させるかは、例えばデータに付されているアドレスの値に応じて決定しても良い。
【0034】
また、タイマ23(1)は、データ(0)が入力された時刻をタイムラベルとして付与する。尚、
図7では説明を簡単にするため、データがシステムバス2から1stメモリ11に入力された時刻をmsオーダーの相対時刻「#0」と表している。また、
図7では、前記相対時刻を「ローカルタイムカウント」としている。ローカルタイムカウントは、1stメモリ11に入力されるデータ毎に固有の時刻である。一方、図中に示す「グローバルタイムカウント」は、システム上で共通して参照される時刻であり、これについては後述する。
【0035】
1stメモリ11は、データ(0)をArryメモリ12(0,0)に転送する。データ(0)は、ここからDSP7(0)に向けて、更にメモリ12(1,0)→メモリ13(0)に転送される。ここまでのメモリ間転送にそれぞれ2msを要したとすると、メモリ13(0)におけるタイムラベルは「#6」になる。以下、各メモリ間転送に要する時間は何れも2msとする。
【0036】
そこから、データ(0)は、DSP7(0)により読み込まれて処理される。例えばDSP7(0)は常時メモリ13(0)にアクセスしており、読み出したデータの値が初期値から変化した際に処理すべきデータを読み込んだことを認識して処理を開始する。或いは、メモリ13(0)が、宛先ラベルがDSP7(0)であるデータが入力された際に、DSP7(0)に割り込みを発生させてアクセスを開始させても良い。
【0037】
ここで、DSP7(0)が処理に要した時間が10msであるとすれば、メモリ14(0)で付与されるタイムラベルは「#18」となる。実際には、メモリ14(0)には、メモリ13(0)より処理の開始時刻であるタイムラベル「#6」が通知される。その通知時から、DSP7(0)によるデータの書き込みが行われた時点までの時刻「#12」がタイマ23(O)により計時されるので、結果として付与されるタイムラベルが上記のように「#18」となる。
【0038】
その後、データ(0)は、メモリ14(1)→メモリ(15)へと転送されるので、メモリ15で付与されるタイムラベルは「#22」となる。ここで、リアルタイム判定部25は、処理時間を判定する。例えば規定時間が25msであるとすれば、判定結果は「OK」となる。これが判定結果ラベルとして付与され、データ(0)はシステムバス2に出力される。すると、CPUホスト3は、データ(0)をラベルと共に読み込んで、判定結果ラベルを参照し、前記ラベルが「OK」であることを確認してデータ(0)を「有効」と判定する。
【0039】
また、データ(0)に続いて、データ(1)がシステムバス2から1stメモリ11に入力されると、ラベル付与機能部22(1)は、データ(1)をDSP7(1)に処理させるため、転送先ラベルを「DSP7(1)」として付与する。すると、データ(1)の転送経路は、例えば以下のようになる。
メモリ11→メモリ12(0,0)→メモリ12(1,0)→
メモリ12(1,1)→メモリ13(1)
したがって、メモリ13(1)で付与されるタイムラベルは「#8」となる。
【0040】
データ(1)は、DSP7(1)により読み込まれて処理され、その処理に要した時間が同じく10msであるとすれば、メモリ14(1)で付与されるタイムラベルは「#20」となる。その後、データ(1)はメモリ(15)に転送されるので、メモリ15で付与されるタイムラベルはやはり「#22」となる。したがって、リアルタイム判定部25の判定結果は「OK」となる。
【0041】
更に、データ(1)に続いて、データ(2)がシステムバス2から1stメモリ11に入力されると、ラベル付与機能部22(1)は、データ(2)の転送先ラベルを「DSP7(2)」として付与する。すると、データ(2)の転送経路は、例えば以下のようになる。
メモリ11→メモリ12(0,0)→メモリ12(1,0)→
メモリ12(1,1)→メモリ12(1,2)→メモリ13(2)
したがって、メモリ13(2)で付与されるタイムラベルは「#10」となる。
【0042】
データ(2)は、DSP7(2)により読み込まれて処理され、その処理に要した時間が10msであるとすれば、メモリ15で付与されるタイムラベルは「#22」となる。したがって、リアルタイム判定部25の判定結果は「OK」となる。尚、
図7及び
図8に示すでは、「グローバルタイムカウント」は使用していない。
【0043】
図8は、転送時間等の計時をダウンカウントで行う場合であり、メモリ11では初期値「#30」を付与し、そこから要した時間を順次減じて行く。Lastメモリ15におけるリアルタイム処理判定では、例えば残値が「#0」以上であれば「OK」とする。
【0044】
また、
図9は、タイムラベルを「グローバル」のみとする場合であり、メモリ11のラベル付与機能部22(1)において、データが入力されたされた際にタイマ23(1)が計時している時刻をタイムラベルとして付与する。この場合、Lastメモリ15は、メモリ11におけるタイマ23(1)の時刻データを参照可能となっており、前記時刻データとの差分値によってリアルタイム処理判定を行う。例えば、前記差分値が規定時間を超えていなければ「OK」と判定する。
【0045】
また、
図7〜
図9に示す例ではデータの転送先に競合が発生していないが、例えば、メモリ12(1,0)にDSP7(0)を宛先とするデータが入力された際に、メモリ13(0)に処理待ちのデータが存在する場合を想定する。この時、メモリ12(1,0)のラベル付与機能部22(A)は、メモリ13(1)に空きがあれば前記データの宛先をDSP7(1)に書き換えて、メモリ12(1,1)を介してメモリ13(1)に転送する。これにより、即時処理が可能なDSP7(1)にデータを処理させる。メモリ13に空きがあるか否かは、例えばメモリ13にセットされる「空きフラグ」の有無を参照して判断する。
【0046】
以上のように本実施形態によれば、システムバス2と複数のDSP7との間でデータを転送するデータ転送部6では、ラベル付与機能部22がシステムバス2より入力されたデータにタイムスタンプを付与し、タイマ23(A)がデータ転送時間を計時する。また、タイマ23(I,O)は、DSP7によるデータ処理時間を計時し、リアルタイム処理判定部25は、DSP7により処理されたデータをシステムバス2に出力する際に、タイムスタンプが付与された時点からの総経過時間を求める。そして、総経過時間が規定時間内か否かを判断し、その判断結果をラベルとして前記データに付与する。
【0047】
このように構成すれば、システムバス2と複数のDSP7との間におけるデータ転送は、データ転送部6が備える複数のメモリデバイスを介して行われるので、転送経路の選択を柔軟に行うことができる。そして、システムバス2より入力されたデータが、データ転送部6を経由してDSP7に読み込まれ、データ処理が行われた後システムバス2に出力されるまでの間に要した時間は、タイムスタンプが付与された時点からの総経過時間によって明確になる。更に、前記総経過時間が規定時間内か否かが判断されることで、リアルタイム処理におけるデータの有効性も明確となる。これにより、データ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できる。
【0048】
加えて、CPUホスト3は、データ転送部6を介してシステムバス2に出力されたデータが有効か否かを、当該データに付与されているラベルにより判定でき、「無効」であれば、直ちに新たなデータの処理を開始させるなどの対応が可能になる。したがって、リアルタイム性が重視される処理システムに好適である。
【0049】
この場合、データ転送部6では、システムバス2から1stメモリ11にデータが入力され、メモリ11に入力されたデータは、複数のArryメモリ12の間で転送される。メモリ12を介して転送されたデータは、複数のプロセッサINメモリ13を経て対応するDSP7により直接読み込まれる。各DSP7が処理したデータは、それぞれに対応するプロセッサOUTメモリ14に直接書き込まれると、Lastメモリ15を介してシステムバス2に出力される。
【0050】
このように構成すれば、データの転送経路を、複数のArryメモリ12の間で柔軟に選択することが可能になる。また、総経過時間を求めるためのデータ転送時間やデータ処理時間の計時は、データ転送部6を構成する各メモリの機能に応じてそれぞれのメモリで行われる。したがって、総経過時間を効率的に計時できる。そして、Lastメモリ15を、プロセッサOUTメモリ14(2)としても機能させることでメモリデバイスの数を減らすことができ、データをより効率的に転送することができる。
【0051】
また、Arryメモリ12(1,0),12(1,1)は、それぞれに接続されているプロセッサINメモリ13(0),13(1)に処理待ちのデータが配置されていると、データの宛先を変更して、それぞれに隣接するArryメモリ12(1,1),12(1,2)にデータを転送する。したがって、即時処理が可能なDSP7に早期に処理を開始させて効率を更に向上させることができる。
【0052】
また、データ転送部6は、システムバス2より入力されたデータを、1stメモリ11からのデータ転送パスが最短となるプロセッサINメモリ13(0)を優先させて転送し、メモリ13(0)に隣接するメモリ13(1),13(2)に順次データを転送する。そして、Arryメモリ12間でデータの転送先に競合が発生すると、メモリ13へのパスが短い方のメモリ12を優先して転送を行わせる。これらにより総じて、データ転送効率を一層向上させることができる。
【0053】
(第2実施形態)
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。
図10に示すように、第2実施形態のデータ処理システム31では、データ転送部32が1stメモリ11に代わる1stメモリ33を備えている。また、1stメモリ33と、メモリ12(1,0)及びメモリ13(0〜2)との間は、初期データ転送用バス34で接続されている。
【0054】
そして、1stメモリ33は、起動後の最初のデータ転送を、初期データ転送用バス34を利用して、図中に番号を付して示すように以下の順で行う。
13(2)→13(1)→13(0)→12(1,0)→12(0,0)
この場合、メモリ33は、上記の各メモリに対して書き込みを行うための制御信号を、それぞれ個別に出力する。
【0055】
また、メモリ33は、初期データ転送用バス34と、通常時に使用するメモリ12(0,0)のみにデータを転送するバスとを切り替えるセレクタと、初期データの転送数をカウントするためのカウンタとを備えている。これらは何れも図示しない。そして、初期データの転送数「4」までは初期データ転送用バス34を使用し、それ以後は通常時に使用するバス側に切り替えて転送を行う。
【0056】
以上のように第2実施形態によれば、データ転送部32は、メモリ33とメモリ12(1,0)及びメモリ13(0〜2)との間をそれぞれ直接接続する初期データ転送用バス34を備え、メモリ33は、電源が投入された後に入力が開始された初期データを、前記初期データ転送用バス34を介して、データ転送パスが最長となるメモリ13(2)から順次前記パスが短くなるメモリに転送する。このように構成すれば、初期データの転送に要する時間を短縮して処理効率を向上させることができる。
【0057】
(第3実施形態)
図11に示すように、第3実施形態のデータ処理システム41では、データ転送部42においてLastメモリ15に替わるLastメモリ43が、メモリ12〜14に対してデータの無効を通知する機能を備えている。例えば
図12に示すように、データ(0)〜(5)が、それぞれデータ転送部41における異なる転送フェイズにある場合に、処理後のデータ(0)がLastメモリ43に転送された時点で「無効」と判定されたとする。
【0058】
この場合、リアルタイム処理であることから、後続するその他のデータも全て無効になるとすると、Lastメモリ43がメモリ12〜14及びDSP7(2)に対してデータが無効になったことを通知する。すると、通知を受けたメモリ12〜14及びDSP7(2)は、図中にハッチングを付して示すようにその時点で保持しているデータの転送を中止して、以降に1stメモリ11を介して入力される新たなデータについて転送を行う。尚、DSP7に対する通知は、例えば割り込みを発生させて行うようにする。
【0059】
以上のように第3実施形態によれば、Lastメモリ43は自身が保持しているデータが無効となったことに伴い、現在処理中の他のデータも無効になった際には、その処理中のデータを保持しているDSP7及び各メモリ12〜14に無効であることを通知する。そして、前記通知を受信したDSP7及びメモリ12〜14は現在保持中のデータの転送を中止し、その時点以降にメモリ11を介して入力されるデータについて転送を行う。したがって、無効なデータが発生した際の処理効率を向上させることができる。
【0060】
(第4実施形態)
図13に示すように、第4実施形態のデータ処理システム51では、データ転送部52が、1stメモリ11に替わる1stメモリ53を備えている。そして、第3実施形態のLastメモリ43に替わるLastメモリ54は、1stメモリ53に対し、データをシステムバス2に出力した時刻を通知する機能を備えている。
【0061】
例えば
図14に示すように、データ転送部51において1stメモリ53からLastメモリ54までで行われる処理を「マルチプロセッサ・システム内処理」と称し、システムバス2を介してデータ転送部51が関わることなく行われる処理を「マルチプロセッサ・システム外処理」と称す。そして、それぞれのデータが「システム内処理」と「システム外処理」とを交互に、循環的に繰り返すものとする。
【0062】
この場合、上記の「システム内処理」と「システム外処理」とを循環的に繰り返すデータの同一性は、データに付されているアドレス又は「ラベル」で判断する。そして、1stメモリ53は、「システム内処理」を終了したデータが、それに続く「システム外処理」を経て再度データ転送部51に入力されるまでの時間を計時する。1stメモリ53は、「システム外処理」について規定時間との比較を行い、「システム外処理」を経たデータが有効か否かを判断する。データが有効であれば処理を継続し、無効であればその時点で処理を中止する。
【0063】
例えば
図15に示すように、データ(0)がフェイズ(4)の「システム外処理」を終了し、次のフェイズ(5)の「システム内処理」に移行しようとする際に「無効」と判定され、それに伴いデータ(1)も「無効」と判定されたとする。この場合、1stメモリ53は、データ(0)及び(1)の処理を中止して、データ(2)及び(3)の処理を継続する。この場合、1stメモリ53が例えばCPUホスト3に割り込みを発生させて、データ(0)及び(1)が無効になったことを通知しても良い。また、CPUホスト3に直接通知を行う以外に、例えばシステムバス2に共通レジスタやオンチップメモリを接続し、それらのレジスタやメモリにデータが無効になったことを通知するための書き込みを行っても良い。
【0064】
以上のように第4実施形態によれば、Lastメモリ54は、1stメモリ53に対し、データをシステムバス2に出力した時刻を通知する。1stメモリ53は、通知された時刻から前記データが再度入力されるまでの時間を計時して規定時間と比較し、前記データが無効と判断すると当該データの処理を中止する。したがって、「システム内処理」と「システム外処理」とを循環的に繰り返すデータについても有効性を判定し、処理効率を向上させることができる。
【0065】
(第5実施形態)
図16に示すように、第5実施形態のデータ処理システム61では、DSP7及びデータ転送部62にシステムクロック信号を供給するクロックジェネレータ63を備えている。クロックジェネレータ63は、システムバス2を介してCPUホスト64により制御され、クロック周波数が変更可能となっている。そして、データ転送部62におけるLastメモリ65は、CPUホスト64に対してデータ処理の「余力時間」を通知する。尚、余力時間の通知は、所定の長さを超える場合にのみ行うようにしても良い。CPUホスト64は処理時間調整部に相当する。
【0066】
図17に示すように、「余力時間」とは、規定時間と実際にデータ転送処理に要した時間との差である。余力時間は、例えば数10分〜1時間程度の周期毎に通知する。CPUホスト64は、通知された余力時間から、システムクロックの周波数を低下させることが可能と判断した際には、クロックジェネレータ63に対する設定を変更して周波数を低下させる。これにより電力消費を低減することができる。
【0067】
(第6実施形態)
図18に示すように、第6実施形態のデータ処理システム71では、データ転送部72において、1stメモリ53の入力側に入力セレクタ73が配置され、Lastメモリ54の出力側に出力セレクタ74が配置されている。入力セレクタ73は、1stメモリ53に対し、システムバス2からのデータを入力するか、イメージセンサ4が出力するデータを直接入力するかを選択する。出力セレクタ74は、Lastメモリ54からのデータをシステムバス2に出力するか、ディスプレイ5に直接出力するかを選択する。これらの選択切り替えは、CPUホスト75によって行われる。
【0068】
以上のように構成される第6実施形態によれば、各時点の処理状況に応じて、データをシステムバス2を介してデータ転送部72に入力するか、イメージセンサ4から直接入力するかを選択できる。また、データ転送部72からデータをシステムバス2に出力するか、ディスプレイ5に直接出力するかを選択できる。
【0069】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
各実施形態を、適宜組合わせて実施しても良い。
Arryメモリ12の数は、(3×3)以上でも良い。
データのアサインは、DSP7側の要求に応じて行っても良い。例えば、DSP7(0)〜7(2)の全てがデータを要求している際には、7(0)→7(1)→7(2)の優先順位で1stメモリ11がデータの宛先を指定する。
【0070】
プロセッサOUTメモリ14(2)を、別途設けても良い。
DSP7が2個又は4個以上あるシステムに適用しても良い。
演算プロセッサは、CPUやFPGAで構成されるプロセッサでも良い。
画像処理以外のデータ処理や、車載以外の用途に適用しても良い。