特許第6805562号(P6805562)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧

<>
  • 特許6805562-データ処理システム 図000002
  • 特許6805562-データ処理システム 図000003
  • 特許6805562-データ処理システム 図000004
  • 特許6805562-データ処理システム 図000005
  • 特許6805562-データ処理システム 図000006
  • 特許6805562-データ処理システム 図000007
  • 特許6805562-データ処理システム 図000008
  • 特許6805562-データ処理システム 図000009
  • 特許6805562-データ処理システム 図000010
  • 特許6805562-データ処理システム 図000011
  • 特許6805562-データ処理システム 図000012
  • 特許6805562-データ処理システム 図000013
  • 特許6805562-データ処理システム 図000014
  • 特許6805562-データ処理システム 図000015
  • 特許6805562-データ処理システム 図000016
  • 特許6805562-データ処理システム 図000017
  • 特許6805562-データ処理システム 図000018
  • 特許6805562-データ処理システム 図000019
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6805562
(24)【登録日】2020年12月8日
(45)【発行日】2020年12月23日
(54)【発明の名称】データ処理システム
(51)【国際特許分類】
   G06F 13/36 20060101AFI20201214BHJP
   G06F 13/38 20060101ALI20201214BHJP
【FI】
   G06F13/36 310E
   G06F13/36 530A
   G06F13/38 330Z
【請求項の数】10
【全頁数】18
(21)【出願番号】特願2016-117940(P2016-117940)
(22)【出願日】2016年6月14日
(65)【公開番号】特開2017-224089(P2017-224089A)
(43)【公開日】2017年12月21日
【審査請求日】2018年7月25日
【前置審査】
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】特許業務法人 サトー国際特許事務所
(72)【発明者】
【氏名】村田 博幸
【審査官】 田名網 忠雄
(56)【参考文献】
【文献】 国際公開第2012/029215(WO,A1)
【文献】 特開2015−041281(JP,A)
【文献】 特開2009−069921(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/20−13/42
(57)【特許請求の範囲】
【請求項1】
読み込んだデータを処理する複数の演算プロセッサ(7)と、
システムバス(2)と、前記複数の演算プロセッサとの間でデータを転送するため、複数のメモリデバイス(11〜15,33,43,53,54)を備えるデータ転送部(6,32,42,52,62)とを備え、
前記データ転送部は、前記システムバスより入力されたデータにタイムスタンプを付与するタイムスタンプ付与部(22)と、
記演算プロセッサによるデータの処理が行われている処理時間を計時する処理時間計時部(23)と、
前記演算プロセッサにより処理されたデータを前記システムバスに出力する際に、前記タイムスタンプが付与された時点からの総経過時間を求めると、前記総経過時間が規定時間内か否かを判断し、その判断結果を前記データに付与する処理時間判定部(25)とを有し、
前記演算プロセッサの数がm(m≧2)個であり、
前記データ転送部は、システムバスよりデータが入力されるバス入力メモリ(11,33)と、
このバス入力メモリに入力されたデータを前記m個の演算プロセッサの何れかに読み込ませるため、前記データが転送されるm・n(n≧1)個のアレイメモリ(12)と、
前記アレイメモリを介して転送されたデータが入力され、前記m個の演算プロセッサがそれぞれ直接データを読み込むためのm個のプロセッサ入力メモリ(13)と、
このプロセッサ入力メモリ及び前記アレイメモリのそれぞれに配置され、対応するメモリにデータが入力されてから他のメモリに転送されるまでの経過時間を計時する経過時間計時部(23(I),23(A))と、
前記m個の演算プロセッサが出力したデータが、それぞれ直接書き込まれるm個のプロセッサ出力メモリ(14)と、
前記プロセッサ出力メモリに書き込まれたデータが入力され、前記データを前記システムバスに出力するバス出力メモリ(15,43,54,65)とを備え、
前記タイムスタンプ付与部(22(I))は、前記バス入力メモリに配置され、
記処理時間計時部(23(O))は、前記プロセッサ出力メモリに配置され、
前記処理時間判定部は、前記バス出力メモリに配置されており、前記総経過時間を、前記経過時間及び前記処理時間から求めるデータ処理システム。
【請求項2】
前記バス出力メモリは、前記m個のプロセッサ出力メモリの1つとしても機能する請求項1記載のデータ処理システム。
【請求項3】
前記プロセッサ入力メモリのそれぞれに直接接続されているm個のアレイメモリは、それぞれに接続されているプロセッサ入力メモリに処理待ちのデータが配置されていると、隣接するプロセッサ入力メモリに接続されているアレイメモリにデータを転送する請求項1又は2記載のデータ処理システム。
【請求項4】
前記データ転送部は、前記システムバスより入力されたデータを、前記バス入力メモリ からのデータ転送パスが最短となるプロセッサ入力メモリを優先させて転送し、
以降は、前記プロセッサ入力メモリに隣接する(m−1)個のプロセッサ入力メモリに順次データを転送し、
前記アレイメモリ間においてデータの転送先に競合が発生すると、プロセッサ入力メモ リへのパスが短い方のアレイメモリを優先して転送を行わせる請求項1から3の何れか一項に記載のデータ処理システム。
【請求項5】
前記データ転送部は、前記バス入力メモリと前記m個のプロセッサ入力メモリ(13(0),13(1),13(2))との間,及び前記バス入力メモリと、データ転送パスが最短となるプロセッサ入力メモリ(13(0))との間の同パス中に存在するアレイメモリとの間をそれぞれ直接接続する初期データ転送用バス(34)を備え、
前記バス入力メモリは、電源が投入された後に入力が開始された初期データを、前記初期データ転送用バスを介して、データ転送パスが最長となるプロセッサ入力メモリ(13(2))から順次前記パスが短くなるプロセッサ入力メモリ(13(1),13(0))に転送する請求項1から4の何れか一項に記載のデータ処理システム。
【請求項6】
前記バス出力メモリは、対応するデータに、前記総経過時間が前記規定時間を超えているか否かを示す情報を付与する請求項1から5の何れか一項に記載のデータ処理システム。
【請求項7】
前記バス出力メモリ(43)は、前記総経過時間が前記規定時間を超えていることで対応するデータが無効となったことに伴い、現在処理中の他のデータも無効になった際には、現在処理中のデータを保持している各メモリ及び演算プロセッサに無効であることを通知し、
前記通知を受信したメモリ及び演算プロセッサは現在保持中のデータの転送を中止し、その時点以降に前記バス入力メモリを介して入力されるデータについて転送を行う請求項6記載のデータ処理システム。
【請求項8】
前記バス出力メモリ(54)は、前記システムバスに出力されたデータが前記バス入力メモリに再度入力されるものである際に、前記データがシステムバスに出力されたことを前記バス入力メモリ(53)に対して通知し、
前記バス入力メモリは、前記通知があった時刻から前記データが再度入力されるまでの時間を計時し、その計時時間を規定時間と比較して前記データが無効か否かを判断し、無効と判断すると前記データの処理を中止する請求項1から7の何れか一項に記載のデータ処理システム。
【請求項9】
前記バス入力メモリに対して、前記システムバスを介してデータを入力するパスと、前記システムバスを介すことなくデータを入力するパスとを切替える入力セレクタ(73)と、
前記バス出力メモリから前記システムバスにデータを入力するパスと、前記システムバスを介すことなくデータを出力するパスとを切替える出力セレクタ(74)とを備える請求項1から8の何れか一項に記載のデータ処理システム。
【請求項10】
前記バス出力メモリ(65)は、前記規定時間と前記総経過時間との差である余力時間を通知し、
前記演算プロセッサに動作クロック信号を供給し、前記動作クロック信号の周波数を変更可能に構成されるクロック供給部(66)と、
前記バス出力メモリより通知された余力時間に応じて、前記周波数を低下させるように調整する処理時間調整部(64)とを備える請求項1から9の何れか一項に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムバスと複数の演算プロセッサとの間でデータを転送するデータ転送部を備えるデータ処理システムに関する。
【背景技術】
【0002】
近年、自動車の事故防止や自動運転化に向けて、走行環境を認識するための信号処理に適用するマルチプロセッサシステムの開発が盛んに行われている。特に、走行環境の認識に使用する画像データや点群データをリアルタイムで処理するためには、センサより出力されるリアルタイムの画像データ等を、複数のプロセッサに効率良く処理させる必要がある。
【0003】
このようなシステムを車両に搭載するためには、処理装置の性能やリソースがある程度限定される条件下において、高性能なリアルタイム処理を保証しなければならない。そのための具体的な要件としては、例えば、ミリ秒精度の時間管理や単位時間当たりの高い処理性能,組込み可能な低消費電力等がある。
【0004】
このようなシステムの一例として、特許文献1には以下のような技術が開示されている。システム中に存在する複数のルータを、メインルータとサブルータとの2つにクラス分けする。メインルータは、複数のサブルータを介して、次のメインルータか又は交信先のネットワークインタフェースに至るまでのルーティング計算を一括して行う。これにより、サブルータではルーティング計算を行う必要がなくなるため、パケットがサブルータを通過する際のレイテンシを短縮できると共に低コスト化を図っている。
【0005】
また、特許文献2には、以下のような技術が開示されている。分配された重さが異なるタスクに対する処理スループットがほぼ均等となるように構成された複数の処理ノード(PN1〜PN4)それぞれに、スケジューラ(SC0〜SC4)を設ける。スケジューラは、対応する処理ノードでタスク処理が完了すると、タスク完了メッセージを次のタスクを処理する他のスケジューラにメッセージネットワーク(10)を介して送信する。そして、スケジューラは、他のスケジューラからタスク完了メッセージを受信すると、対応する処理ノードにそのタスクの処理開始を指令する。すなわち、簡単なスケジュール管理プログラムをスケジューラにインストールすることで、マルチ処理ノードシステムにおけるリアルタイム処理及びパイプライン処理を実現している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第WO2010/137572号パンフレット
【特許文献2】特開2004−295494号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1のようなルーティングは、メインルータを経由することで低いレイテンシを保証するが、メインルータへのアクセスが集中するためことで競合が発生し、転送効率が低下するおそれがある。例えば予備ルータを設けることでアクセスの競合を低減できるが、処理性能の低下は避けられない。また、ネットワークオンチップのハードウェア資源は、トポロジの汎用性を確保する必要から実用上冗長な資源を持たざるを得ず、利用効率の低下を招き消費電力の低減が図れない。
【0008】
また、特許文献2のようなリアルタイム管理は、タスク管理スケジューラの割り込み制御により実施され、ホスト主導のタスク管理によるリアルタイム処理となる。そのため、例えばミリ秒精度の時間管理や時間制御が求められるシステムには適用できない。
【0009】
本発明は上記事情に鑑みてなされたものであり、その目的は、システムバスと複数のプロセッサとの間のデータ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できるデータ処理システムを提供することにある。
【課題を解決するための手段】
【0010】
請求項1記載のデータ処理システムによれば、システムバスと複数の演算プロセッサとの間で、複数のメモリデバイスを介してデータを転送するデータ転送部において、タイムスタンプ付与部がシステムバスより入力されたデータにタイムスタンプを付与し、経過時間計時部が、プロセッサ入力メモリ及びアレイメモリのそれぞれにデータが入力されてから他のメモリに転送されるまでの経過時間を計時する。また、処理時間計時部は、演算プロセッサによるデータの処理が行われている処理時間を計時し、処理時間判定部は、演算プロセッサにより処理されたデータをシステムバスに出力する際に、タイムスタンプが付与された時点からの総経過時間を、経過時間及び処理時間から求める。そして、総経過時間が規定時間内か否かを判断し、その判断結果を前記データに付与する。
【0011】
このように構成すれば、システムバスと複数の演算プロセッサとの間におけるデータ転送は、データ転送部が備える複数のメモリデバイスを介して行われるので、転送経路の選択を柔軟に行うことができる。そして、システムバスより入力されたデータが、データ転送部を経由して演算プロセッサに読み込まれ、データ処理が行われた後システムバスに出力されるまでの間に要した時間は、タイムスタンプが付与された時点からの総経過時間によって明確になる。更に、前記総経過時間が規定時間内か否かが判断されることで、リアルタイム処理におけるデータの有効性も明確となる。これにより、データ転送を効率化して、高い処理性能を維持しつつ高精度の時間管理及び低消費電力化を実現できる。
【0012】
そして、データ転送部においては、システムバスからバス入力メモリにデータが入力され、バス入力メモリに入力されたデータは、複数のアレイメモリの間で転送される。アレイメモリを介して転送されたデータは、複数のプロセッサ入力メモリを経て対応する演算プロセッサにより直接読み込まれる。各演算プロセッサが処理したデータは、それぞれに対応するプロセッサ出力メモリに直接書き込まれると、バス出力メモリを介してシステムバスに出力される。
【0013】
以上の一連のデータ転送処理において、タイムスタンプは、バス入力メモリに配置されるタイムスタンプ付与部によって入力されたデータに付与され、データ転送部におけるデータ転送に要した時間は、アレイメモリのそれぞれに配置される転送時間計時部によって計時される。また、演算プロセッサによるデータの処理時間は、プロセッサ入力メモリ及び同出力メモリに配置される処理時間計時部により計時され、処理時間の判定は、バス出力メモリに配置される処理時間判定部によって行われる。
【0014】
このように構成すれば、システムバスより入力されたデータは、バス入力メモリを経由した後、m×nの行列状に配置されている複数のアレイメモリ間を転送された後、プロセッサ入力メモリを経て対応する演算プロセッサに読み込まれる。これにより、データの転送経路を、複数のアレイメモリ間において柔軟に選択することが可能になる。また、総経過時間を求めるための経過時間やデータ処理時間の計時は、データ転送部を構成する各メモリの機能に応じてそれぞれのメモリで行われる。したがって、総経過時間を効率的に計時できる。
【0015】
請求項記載のデータ処理システムによれば、バス出力メモリをm個のプロセッサ出力メモリの1つとしても機能させる。このように、バス出力メモリを、例えばシステムバスに最も近い位置にある演算プロセッサに対応するプロセッサ出力メモリとしても機能させることでメモリデバイスの数を減らすことができ、データ転送をより効率的に行うことができる。
【0016】
請求項記載のデータ処理システムによれば、プロセッサ入力メモリのそれぞれに直接接続されている複数のアレイメモリは、自身に接続されているプロセッサ入力メモリに処理待ちのデータが配置されていると、隣接するプロセッサ入力メモリに接続されているアレイメモリにデータを転送する。これより、より早期に処理を行うことが可能な演算プロセッサにデータを処理させることができるので、待ちを発生させることなく効率的に処理できる。
【図面の簡単な説明】
【0017】
図1】第1実施形態であり、データ処理システムの構成を示す図
図2】1stメモリの内部構成を示す機能ブロック図
図3】Arryメモリの内部構成を示す機能ブロック図
図4】プロセッサINメモリの内部構成を示す機能ブロック図
図5】プロセッサOUTメモリの内部構成を示す機能ブロック図
図6】Lastメモリの内部構成を示す機能ブロック図
図7】動作タイミングチャート(その1)
図8】動作タイミングチャート(その2)
図9】動作タイミングチャート(その3)
図10】第2実施形態であり、データ処理システムの構成を示す図
図11】第3実施形態であり、データ処理システムの構成を示す図
図12】動作タイミングチャート
図13】第4実施形態であり、データ処理システムの構成を示す図
図14】動作タイミングチャート(その1)
図15】動作タイミングチャート(その2)
図16】第5実施形態であり、データ処理システムの構成を示す図
図17】動作タイミングチャート
図18】第6実施形態であり、データ処理システムの構成を示す図
【発明を実施するための形態】
【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で構成されるプロセッサでも良い。
画像処理以外のデータ処理や、車載以外の用途に適用しても良い。
【符号の説明】
【0071】
1 データ処理システム、2 システムバス、3 CPUホスト、4 イメージセンサ、5 ディスプレイ、6 データ転送部、7 DSP、11 1stメモリ、12 Arrayメモリ、12(1,1)〜12(2,3),13 プロセッサINメモリ、14 プロセッサOUTメモリ、15 Lastメモリ、22 ラベル付与機能部、23 タイマ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18