(57)【特許請求の範囲】
【請求項１】
複数個のＤＳＰ（デジタル・シグナル・プロセッサ）と共有メモリとからなるマルチプロセッサ型の処理装置において、
複数個のＤＳＰと共有メモリとの間にハードウェア構成になるメモリアクセス調停回路を付設するとともに、各ＤＳＰのそれぞれにメモリアクセスコード発生用メモリを付設し、
各メモリアクセスコード発生用メモリは、命令取り出し(Fetch) サイクルにおいて各ＤＳＰから出力されたプログラムアドレスに対応したメモリアクセスコードを前記メモリアクセス調停回路に送出し、
メモリアクセス調停回路は、次の命令解読(Decode)サイクルにおいて各メモリアクセスコード発生用メモリから出力されたメモリアクセスコードを比較照合することによって予め定めた優先順位に従って共有メモリへのアクセス順序を決定し、続く命令実行(Execute) サイクル時に最も優先順位の高いＤＰＳを共有メモリに接続するように制御することを特徴とするマルチプロセッサ型処理装置における共有メモリアクセス方法。
【請求項２】
複数個のＤＳＰと、
該複数個のＤＳＰによってアクセスされる共有メモリと、
各ＤＳＰのそれぞれに付設され、命令取り出し(Fetch) サイクルにおいて各ＤＳＰから出力されたプログラムアドレスに対応したメモリアクセスコードを出力するメモリアクセスコード発生用メモリと、
前記複数個のＤＳＰと共有メモリとの間に付設され、命令解読(Decode)サイクルにおいて前記各メモリアクセスコード発生用メモリから出力されたメモリアクセスコードを比較照合することによって予め定めた優先順位に従って共有メモリへのアクセス順序を決定し、命令実行(Execute) サイクル時に最も優先順位の高いＤＳＰを共有メモリに接続するように制御するハードウェア構成になるメモリアクセス調停回路と、
を備えたことを特徴とするマルチプロセッサ型処理装置における共有メモリアクセス装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、共有メモリに記憶されたデータを複数のＤＳＰ（デジタル・シグナル・プロセッサ）で処理するマルチプロセッサ型の処理装置において、共有メモリに対するアクセスを高速化するマルチプロセッサ型処理装置における共有メモリアクセス方法とその装置に関するものである。
【０００２】
【従来の技術】
従来、多量のデータを高速で処理する場合に複数のＤＳＰと共有メモリから構成するマルチプロセッサ型の処理装置を採用した場合、柔軟性はあるものの、高速性を意識したプロセッサ制御が欠かせない。特に、メモリアクセスの競合は大きな問題となる。
【０００３】
このマルチプロセッサ型処理装置におけるメモリアクセスの競合問題は、基本的にはソフトウェアによる調停で対処できるが、ソフトウェア負荷が大きくなることから処理の高速性が期待できない。また、最近のＤＳＰはマルチプロセッシングを意識して内部にバス調停機能を持つものもあり、この機能を用いればソフトウェアはバス調停を意識することなくプログラムを組むことができる。しかし、この調停方法についても十分な最適化がなされているとは考えにくく、高速性への影響を免れ得ない。
【０００４】
【発明が解決しようとする課題】
本発明は、上記のような問題を解決するためになされたもので、柔軟性に優れたマルチプロセッサ型のアーキテクチャを採用し、マルチプロセッサ型の最も大きな問題であるメモリアクセスの競合問題については、ハードウェア構成になる専用のメモリアクセス調停回路を付設することにより、高速かつ柔軟性に富んだマルチプロセッサ型処理装置における共有メモリアクセス方法とその装置をバス調停機能を持たないＤＳＰによって提供することを目的とするものである。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、本発明の共有メモリアクセス方法は、複数個のＤＳＰ（デジタル・シグナル・プロセッサ）と共有メモリとからなるマルチプロセッサ型の処理装置において、複数個のＤＳＰと共有メモリとの間にハードウェア構成になるメモリアクセス調停回路を付設するとともに、各ＤＳＰのそれぞれにメモリアクセスコード発生用メモリを付設し、各メモリアクセスコード発生用メモリは、命令取り出し(Fetch) サイクルにおいて各ＤＳＰから出力されたプログラムアドレスに対応したメモリアクセスコードを前記メモリアクセス調停回路に送出し、メモリアクセス調停回路は、次の命令解読(Decode)サイクルにおいて各メモリアクセスコード発生用メモリから出力されたメモリアクセスコードを比較照合することによって予め定めた優先順位に従って共有メモリへのアクセス順序を決定し、続く命令実行(Execute) サイクル時に最も優先順位の高いＤＳＰを共有メモリに接続するようにしたものである。
【０００６】
また、本発明の共有メモリアクセス装置は、複数個のＤＳＰと、該複数個のＤＳＰによってアクセスされる共有メモリと、各ＤＳＰのそれぞれに付設され、命令取り出し(Fetch) サイクルにおいて各ＤＳＰから出力されたプログラムアドレスに対応したメモリアクセスコードを出力するメモリアクセスコード発生用メモリと、前記複数個のＤＳＰと共有メモリとの間に付設され、命令解読(Decode)サイクルにおいて前記各メモリアクセスコード発生用メモリから出力されたメモリアクセスコードを比較照合することによって予め定めた優先順位に従って共有メモリへのアクセス順序を決定し、命令実行(Execute) サイクル時に最も優先順位の高いＤＳＰを共有メモリに接続するように制御するハードウェア構成になるメモリアクセス調停回路とより構成したものである。
【０００７】
このような構成とした場合、次に述べる原理説明で明らかとなるように、ウェイト期間をまったく挟むことなしに各ＤＳＰにそれぞれの処理を実行させることができる。したがって、画像処理回路全体から見たとき，見掛け上、各命令実行(Execute) サイクルを１サイクル毎に次々と処理でき、極めて高速に処理を実行することができるものである。
【０００８】
以下、本発明の原理について詳細に説明するが、本発明の詳細な説明に入る前に、先ず従来のバス調停機能を持つＤＳＰによるマルチプロセッサ型の処理装置の問題点について述べる。
【０００９】
いま、例えば図３に示すように、ＤＳＰとして４個のＤＳＰを用い、この４個のＤＳＰ１〜ＤＳＰ４がｎサイクル目で同時に共有メモリにアクセスする場合を考える。ただし、ここでは各ＤＳＰがその内部にバス調停機能を備えており、若番号順にメモリアクセスの優先権が与えられているものとする。
【００１０】
図３に示すように、ＤＳＰ１が共有メモリにアクセスする期間は、ＤＳＰ１が共有バスを独占するため、他のＤＳＰ２〜ＤＳＰ４はその間“ウエイト１”状態となる。そして、次のｎ＋１サイクル目はＤＳＰによるバス調停期間のため“ウエイト２”状態となり、結局ＤＳＰ２はｎ＋２サイクル目で共有メモリにアクセスすることができる。同様に、ＤＳＰ３はｎ＋３サイクル目がバス調停期間となることから、ｎ＋４サイクル目で共有メモリにアクセスすることができる。
【００１１】
このように、従来のバス調停の場合、調停期間として１サイクル以上のウエイト期間が発生することになり、それだけ処理が遅れてしまう。
【００１２】
上記したバス調停の処理手順を観察すると、従来のマルチプロセッサ型の処理装置を用いた場合において処理が遅れる原因は、各ＤＳＰが共有メモリに実際にアクセスする段階で他のＤＳＰとの競合状態を判断して調停を行ない、１サイクル以上のウエイト期間を挟みながら処理を実行していくところに起因するものである。
【００１３】
そこで、本発明では、ＤＳＰ間の調停をソフトウェアや上記した従来のバス調停機能を用いるのではなく、ハードウェア構成になる専用のメモリアクセス調停回路を用い、各ＤＳＰの共有メモリに対するアクセス状態を命令実行(Execute) サイクル到達前に検出してその処理順位を判断することにより、ウエイト期間を挟むことなく連続的に処理を実行するようにしたものである。
【００１４】
【発明の実施の形態】
次に、図１および図２を参照して本発明の実施の形態について説明する。
なお、図１は本発明のマルチプロセッサ構成になる処理装置のブロック図、図２はその動作シーケンスであって、例えばＤＳＰを４個並列動作させることによりマルチプロセッサ構成とした場合の例を示すものである。
【００１５】
図１において、ＤＳＰ１〜４は４個のデジタル・シグナル・プロセッサ、１１1 〜１１4 は各ＤＳＰ１〜４に付設されたプログラムメモリ、１２1 〜１２4 は各ＤＳＰ１〜ＤＳＰ４に付設されたメモリアクセスコード発生用メモリ、１３はメモリアクセス調停回路、１４は６個のメモリチップ群で構成された共有メモリ、１５は共有メモリ１４に対してデータを書き込みあるいは読み出すための共有バス、１６は共有バスと各ＤＳＰ１〜ＤＳＰ４間を結ぶアドレス・バス／データ・バスである。
【００１６】
ＤＳＰ１〜ＤＳＰ４は、ウエイト制御端子１７1 〜１７4 を備えており、バス調停時、メモリアクセス調停回路１３はウエイト制御信号線１８を通じてウエイト制御端子１７1 〜１７4 にウエイト指令信号を送出するとともに、セレクト信号線１９1 〜１９6 を通じて共有メモリ１４を構成する各メモリチップ１〜６にセレクト信号を送るように構成されている。
【００１７】
次に、この図１の処理装置の処理動作を命令取り出し(Fetch) サイクル、命令解読(Decode)サイクル、命令実行(Execute) サイクルの各サイクル毎に説明する。
【００１８】
（１）命令取り出し（Fetch)サイクル
各ＤＳＰ１〜ＤＳＰ４から外部に出力されるプログラムアドレスにより、プログラムメモリ１１1 〜１１4 上のプログラム命令が各ＤＳＰ１〜ＤＳＰ４に読み込まれる。これに同期して、各メモリアクセスコード発生用メモリ１２1 〜１２4 は、上記プログラムアドレスに対応したメモリアクセスコードをメモリアクセス調停回路１３に出力する。
【００１９】
（２）命令解読（Decode）サイクル
各ＤＳＰ１〜ＤＳＰ４の内部では、読み込まれたプログラム命令が解読される。一方、メモリアクセス調停回路１３では、各メモリアクセスコード発生用メモリ１１1 〜１１4 から送られてきたメモリアクセスコードをアドレス情報として入力し、各ＤＳＰ間におけるメモリアクセスの競合状態を検出する．そして、競合が発生する場合は各ＤＳＰに予め付けられている優先順位に従って優先度の高いＤＳＰ、例えばＤＳＰ１が１つだけアクセス許可され、優先度の低い他のＤＳＰ２〜ＤＳＰ４には、アクセス禁止を示すウエイト制御信号が準備される。同時に、共有メモリ１４に対しては，アクセスを許可されたＤＳＰ１がアクセスするメモリチップを選択するためのセレクト信号が準備される。
【００２０】
（３）命令実行(Execute) サイクル
この命令実行(Execute) サイクルでは、メモリアクセス調停回路１３からメモリアクセスを許可されなかったＤＳＰ２〜ＤＳＰ４のウエイト制御端子１７2 〜１７4 に対してウエイト制御信号が出力される。同時に、アクセスを許可されたＤＳＰ１がアクセスするメモリチップを選択するためのセレクト信号がセレクト信号線１９1 〜１９6 を通じて共有メモリチップ１４に送出される。これにより、ＤＳＰ間の競合や遅延を発生させることなくＤＳＰ１から共有メモリ１４へのアクセスが速やかに実行され、アクセス許可を受けたＤＳＰはプログラム命令に記述されている処理に従って、アドレス・バス／データ・バス１６を通じて共有メモリ１４の指定のメモリチップから必要なデータを読み出し、あるいは必要なデータを書き込む。
【００２１】
以上の処理を命令取り出し（Fetch)サイクル、命令解読(Decode)サイクル、命令実行(Execute) サイクルの各サイクル毎に順次繰り返すことにより、４個のＤＳＰ１〜ＤＳＰ４は、図２に示すようなタイミングでそれぞれの処理を繰り返し実行していく。
【００２２】
ここで、各ＤＳＰのプログラム命令に着目すると、図２に示すように、各ＤＳＰの命令実行(Execute) サイクルは連続する３段のパイプライン構成となることから、それぞれの命令実行(Execute) サイクルにおけるプログラム命令は常に２サイクル前の命令取り出し(Fetch) サイクルで読み込まれていることになる。このことは、命令実行(Execute) サイクルで必要なメモリアクセス命令が命令取り出し(Fetch) サイクルの段階で事前に得られることを意味する。
【００２３】
このように、命令取り出し(Fetch) サイクルにおけるメモリアクセスコードを基に、命令解読（Decode）サイクルでメモリアクセス調停回路１３によりバス競合の調停準備を行ない、命令実行(Execute) サイクルにおいて各ＤＳＰのウエイト制御と共有メモリのセレクト制御を行なうことで、複数個のＤＳＰのメモリアクセス処理の競合を回避しながらパイプライン構成とすることができ、画像処理回路全体から見てウエイト時間のないメモリアクセスを達成することができる。この結果、極めて高速な画像処理を実現できるとともに、マルチプロセッサ構成の処理装置が本来的に有している処理の柔軟性も同時に実現させることができる。
【００２４】
ちなみに、図３に示した従来のバス調停では、優先度の最も低いＤＳＰ４は、優先度の最も高いＤＳＰ１が共有メモリにアクセスした後、６サイクル目で初めて共有メモリにアクセスできるのに対し、本発明による場合は、図２に示すように３サイクル目でアクセスすることができる。
【００２５】
次に、本発明をビデオフレームレートによる高速処理を必要とする画像処理に応用した場合の具体例について、図４および図５を参照して説明する。図４は本発明を移動体検知装置に応用した例を示すブロック図、図５はその動作シーケンスである。
【００２６】
図４において、１は検知対象とする高速道路や一般道路の路面を上方から俯瞰撮影するテレビ（ＴＶ）カメラ、２はテレビカメラ１から送られてくるビデオ信号をデジタル信号に変換するＡＤ変換器とパイプライン制御用のシーケンスコントローラ（ＳＥＱ）を一体に組み込んだＡＤ−ＳＥＱボード、３はテレビカメラ１で撮影される画像を基に背景差分処理（例えば、本出願人の特公平７−１１４４９４号公報に提案の処理）によって画像中から車両などの移動物体を抽出する背景差分処理ボード、４は背景差分処理結果を利用して所望の車両追跡処理を行なう車両追跡処理ボード、５は車両追跡処理結果を利用してさまざまな交通流を計測するホストＣＰＵボード、６はＣＲＴやプリンタなどの出力装置、７はキーボードなどの入力装置、８，９は入出力インターフェース（Ｉ／Ｏ）である。
【００２７】
前記背景差分処理ボード３および車両追跡処理ボード４は、それぞれ、前述した図１に示したＤＳＰを４個並列接続したマルチプロセッサ構成の画像処理回路とされており、これらボードの具体的な回路仕様を挙げると次の通りである。
【００２８】
（１）使用ＤＳＰ
ADSP-21020（ANALOG DEVICES社製）×４個
（２）システムクロック
２０ＭHz
（３）共有メモリ（画像メモリ）
メモリ1,2 → 512画素×512 画素×8 ｂit
メモリ3,4 → 512画素×512 画素×32ｂit
メモリ5,6 → 512画素×512 画素×8 ｂit
（４）システムバス
ＶＭＥバス準拠
（５）画像転送バス
パイプラインバス入力×１
パイプラインバス出力×１
ランダムバス×２
モニタバス×１
【００２９】
テレビカメラ１は、図６に示すように、検知対象とする路面に向けて、道路上所定高さ位置に固定配置されている。このテレビカメラ１による撮影画像の例を図７に示す。画像中の符号２０は走行車両である。
【００３０】
テレビカメラ１による撮影画像は、入出力インターフェース８を介してＡＤ−ＳＥＱボード２に送られる。ＡＤ−ＳＥＱボード２は、内蔵のＡＤ変換回路により入力してきた撮影画像をサンプリングして取り込み、このサンプリングした撮影画像をパイプラインバスを経由して次段の背景差分処理ボード３へ転送する（図５（ａ）参照）。背景差分処理ボード３は、図８に示すように、撮影画像から背景画像を減算する背景差分処理を行ない、撮影画像中から走行車両２０を抽出し、この差分画像をパイプラインバスを経由して次段の車両追跡処理ボード４へ転送する（図５（ｂ）参照）。
【００３１】
なお、この背景差分処理を行なう際に用いる背景画像としては、予め格納しておいた背景画像を固定的に用いてもよいが、最も好ましくは、本出願人の提案になる前述した特公平７−１１４４９４号の移動体検知装置で採用した背景画像生成手法を利用することが望ましい。この背景画像生成手法は、一定間隔毎にテレビカメラ１で撮影される撮影画像をデジタル濃度データに変換する手段と、該デジタル濃度データに変換された撮影画像と背景画像の対応する画素同志の濃度差分を求める手段と、該得られた濃度差分値に応じて背景画像への帰還濃度値を決定する手段と、該決定された帰還濃度値を背景画像へ帰還して加算する手段と、該加算後の画像を新たな背景画像として記憶する手段とを付設することにより実現できる。このような背景画像生成手法を採用した場合、気象条件や時間によって外界の状況が変化しても、常にその時点の状況に則した最適な背景画像を得ることができる。
【００３２】
車両追跡処理ボード４は、入力された差分画像から対象車両の検出を行ない、車両の移動軌跡から車両の追跡処理を行なう（図５（ｃ）参照）。そして、ホストＣＰＵボード５はこの結果を受け、個別車両の存在位置からさまざまな交通流、例えば、車両速度、通過車両台数、走行違反車などの計測項目を導出する（図５（ｄ）参照）。
【００３３】
各ボード間のバス接続には、パイプラインバスとランダムバス（２系統）があり、交通流計測のようにビデオフレームレートに追従する高速性が要求される場合は、図示したようにマルチプロセッサ型で構成されている背景差分処理ボード３と車両追跡処理ボード４自体のパイプライン結合することにより、図５に示すように各ボード間においてもパイプライン処理を実現することができ、システム全体としての高速性をさらに確保することができる。
【００３４】
一方、ランダムバスによる結合は、隣接ボード間の転送に限らず任意のボードへの転送が可能となり、柔軟性のあるシステムを構築する場合に有効である。さらに、その他のバスとして、演算結果をモニタ画面などに表示するための専用転送バスとしてモニタバス、各ボードをコントロールするためのコントロールバスを備えているので、交通流のリアルタイム監視に優れた効果を発揮する。
【００３５】
前記応用例における背景差分処理と車両追跡処理の処理時間の合計は１１２ｍｓとなるが、各ボード間をパイプラインバスにより結合し、各ボード間の処理も図５に示すようにパイプライン処理していることから、装置全体から見た繰り返しの処理周期は６６．６ｍｓとすることができた。したがって、テレビカメラ１のビデオフレームレートの２レームに１回の処理サイクルで交通状態の計測が可能となり、従来構成の移動体検知装置に比べて格段に高速化することができる。
【００３６】
なお、メモリアクセス調停回路１３における調停は、アドレス入力とデータ出力の組合せによって決定されるので、このすべての組合せを事前に求めてＲＯＭなどのメモリに書き込んでおき、調停時これを参照するようにすれば、メモリアクセス調停回路１３の回路構成を極めて簡素化することができる。
【００３７】
また、前記応用例の場合、差分背景処理によって走行車両などの移動体を抽出る移動体検知装置の場合を例に採って説明したが、テレビカメラなどの撮影手段で撮影した画像を基に所望の画像処理によって抽出する形式の装置であればいずれの目的の画像処理に対しても適用可能である。さらに、高速処理を必要とする画像処理以外の分野にも本発明の方法および装置を適用することが可能である。
【００３８】
【発明の効果】
以上説明したように、本発明によれば、複数個のＤＳＰと共有メモリを用いたマルチプロセッサ型の処理装置において、複数個のＤＳＰと共有メモリとの間にハードウェア構成になるメモリアクセス調停回路を付設することにより、それぞれのＤＳＰが命令実行サイクルに至る前にバス競合の調停を完了させ、ウェイト期間をまったく挟むことなしに各ＤＳＰに処理を実行させるようにしているので、極めて高速に処理を実行することができる。このため、高速で、かつ柔軟性に優れた共有メモリアクセス方法と装置を提供することができる。
【図面の簡単な説明】
【図１】図１は本発明のマルチプロセッサ構成になる処理装置のブロック図である。
【図２】図１の処理装置の動作シーケンスである。
【図３】バス調停機能を持つＤＳＰによる動作シーケンスである。
【図４】本発明を移動体検知装置に応用した例を示すブロック図である。
【図５】上記応用例の動作シーケンスである。
【図６】テレビカメラの設置状態を示す図である。
【図７】テレビカメラによる撮影画像の例を示す図である。
【図８】差分演算処理の説明図である。
【符号の説明】
１    テレビカメラ
２    ＡＤ−ＳＥＱボード
３    背景差分処理ボード
４    車両追跡処理ボード
５    ホストＣＰＵボード
６    出力装置
７    入力装置
８，９  入出力インターフェース
１１1 〜１１4   プログラムメモリ
１２1 〜１２4   メモリアクセスコード発生用メモリ
１３  メモリアクセス調停回路
１４  共有メモリ
１５  共有バス
１６  アドレス・バス／データ・バス
１７1 〜１７4   ウエイト制御端子
１８  ウエイト制御信号線
１９1 〜１９6   セレクト信号線
２０  走行車両
【図１】
0004445621.tif 000002
【図２】
0004445621.tif 000003
【図３】
0004445621.tif 000004
【図４】
0004445621.tif 000005
【図５】
0004445621.tif 000006
【図６】
0004445621.tif 000007
【図７】
0004445621.tif 000008
【図８】
0004445621.tif 000009