| 【発明の名称】 |
ディジタル信号処理装置 |
| 【発明者】 |
【氏名】渡部 隆弘
|
| 【要約】 |
【課題】マルチプロセッサ構成によるディジタル制御を行う場合、制御用のフィルタ係数を変更する場合に一括して高速に転送できるようにする。
【解決手段】複数のタスクに分割し処理するとともに実行中のタスク情報を出力する第1のプロセッサと、外部データバスに接続され、 外部にデータを送受信する複数のプロセッサと、上記第1のプロセッサの実行に用いるメモリと、上記第1のプロセッサ以外のプロセッサの上記メモリへの書き込みデータを格納し上記メモリへ転送するファーストイン・ファーストアウト方式のメモリ(以下、FIFOと記す)と、上記第1のプロセッサがいずれのタスクも実行していないことを検出した場合に上記FIFOから上記メモリへ転送を行う制御回路とを備えるようにした。 |
【特許請求の範囲】
【請求項1】 複数個のプロセッサから同一メモリ領域への書き込みが競合しないようにデータ転送を行うディジタル信号処理装置であって、ディジタルデータ処理を複数のタスクに分割して実行し、実行中のタスク情報を出力する第1のプロセッサと、外部データバスに接続され、外部にデータを送受信する複数のプロセッサと、上記第1のプロセッサの実行データを格納する格納部と、上記第1のプロセッサ以外の各プロセッサから出力される上記格納部への書き込みデータを一時格納するメモリと、該メモリから上記格納部へ処理データの転送を行う制御回路とを備えた、ことを特徴とするディジタル信号処理装置。 【請求項2】 請求項1記載のディジタル信号処理装置において、上記第1のプロセッサが処理を実行する際、上記複数のプロセッサがタスクを実行中の場合は、上記メモリ内にて書き込みを遅延させるものである、ことを特徴とするディジタル信号処理装置。 【請求項3】 請求項1記載のディジタル信号処理装置において、上記メモリは、ファーストイン・ファーストアウト方式のメモリである、ことを特徴とするディジタル信号処理装置。 【請求項4】 請求項1記載のディジタル信号処理装置において、上記制御回路は、上記第1のプロセッサが複数に分割された、いずれのタスクをも実行していないことを検出した場合に、処理データの転送を行うものである、ことを特徴とするディジタル信号処理装置。 【請求項5】 請求項1記載のディジタル信号処理装置において、上記複数のプロセッサは、上記制御回路の起動信号により上記第1のプロセッサの処理の開始を知った後、次の起動信号が出力されるまでに、上記メモリにデータを送出するものである、ことを特徴とするディジタル信号処理装置。 【請求項6】 請求項1記載のディジタル信号処理装置において、上記第1のプロセッサは、データを上記格納部へ書き込む際、上記メモリから上記格納部への書き込み無効を示し、書き込みを遅延させる無効ビットを出力するものである、ことを特徴とするディジタル信号処理装置。 【請求項7】 請求項6記載のディジタル信号処理装置において、上記無効ビットは、上記第1のプロセッサ以外のプロセッサが上記格納部へデータを出力中である場合に出力されるものである、ことを特徴とするディジタル信号処理装置。 【請求項8】 請求項1記載のディジタル信号処理装置において、上記第1のプロセッサが、上記タスク情報を出力し、一定期間のクロック数を格納するレジスタと、上記第1のプロセッサから各タスクへの書き込みデータ処理開始時にカウントを開始するカウンタとを備えた、ことを特徴とするディジタル信号処理装置。 【請求項9】 請求項8記載のディジタル信号処理装置において、上記クロック数を格納する期間は、上記第1のプロセッサが上記格納部へのアクセスを開始した時点から、アクセス終了までの期間である、ことを特徴とするディジタル信号処理装置。 【請求項10】 請求項8記載のディジタル信号処理装置において、上記第1のレジスタと上記カウンタの出力に基づき上記メモリから上記格納部への転送開始タイミングを検出する検出回路を備えた、ことを特徴とするディジタル信号処理装置。 【請求項11】 請求項1記載のディジタル信号処理装置において、上記制御回路は、上記第1のプロセッサにおける実行中の実行アドレスを示すアドレス情報と、上記第1のプロセッサ上で実行される実行アドレスを格納するアドレスレジスタと、上記アドレス情報と上記アドレスレジスタに設定されたアドレスとを入力し、該アドレスが一致した時点で上記メモリから上記格納部へデータの転送を行うものである、ことを特徴とするディジタル信号処理装置。 【請求項12】 請求項1または請求項10記載のディジタル信号処理装置において、上記制御回路は、第1のプロセッサのデータ処理の進行状況に関わらず、上記アドレス情報と上記アドレスレジスタに設定されたアドレスとを比較し、一致した場合に上記メモリから上記格納部へ転送を行うものである、ことを特徴とするディジタル信号処理装置。 【請求項13】 請求項1記載のディジタル信号処理装置において、上記第1のプロセッサは、データを上記格納部へ書き込む際、上記メモリから上記格納部への書き込み許可タイミングを示す許可ビットを出力するものである、ことを特徴とするディジタル信号処理装置。 【請求項14】 請求項13記載のディジタル信号処理装置において、上記許可ビットは、上記第1のプロセッサ以外の各プロセッサが上記格納部へのデータ出力終了後、出力されるものである、ことを特徴とするディジタル信号処理装置。 【請求項15】 請求項1記載のディジタル信号処理装置において、上記ディジタルデータ処理は、光ディスクドライブのサーボ制御装置におけるディジタルフィルタ処理に用いるものである、ことを特徴とするディジタル信号処理装置。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、ディジタル信号処理装置に関し、特に光ディスクドライブ等のサーボ制御装置に用いられ、サーボ制御をディジタル処理するディジタル信号処理装置に関するものである。 【0002】 【従来の技術】近年、ディジタル信号処理装置、特に光ディスクドライブのサーボ制御装置においては、その読みだし速度の高速化にともない光ディスクの回転速度が速くなるとともに、サーボ制御を行うディジタル信号処理プロセッサ(以下、DSPと記す)に高い処理能力が求められている。 【0003】従来はこのDSPに対する要求を解決するために、DSP単体の性能を上げるべく動作クロックの高速化や、パイプライン処理あるいは乗算器等の演算装置を複数実装し命令の実行の並列度を高めたり、さらに性能を高めるために複数のプロセッサを用いたマルチプロセッサシステムを構築し対応してきた。マルチプロセッサを用いたディジタル信号処理装置は特開平2一87257号公報に記載されたものが知られている。 【0004】図7は、従来のディジタル信号処理装置を説明するためのブロック図である。従来のディジタル信号処理装置70は、ローカルCPU602、RAM607、ROM608、タイマ609、シリアルコミュニケーションインタフェース(以下、SCIと記す)610、I/Oポート611、出力FIFO603、入力FIFO604、FIFOステータスレジスタ605、FIFO割り込み制御回路606等から構成されたシングルチップマイコン601と、メインCPU615とによって構成されている。 【0005】従来のディジタル信号処理装置70では、メインCPU615とローカルCPU602との間でデータ転送を行う場合、出力FIFO603および入力FIFO604を用いることで、片方のCPUの処理を待たずにFIFOの容量が一杯になるまでデータ転送をすることができた。 【0006】 【発明が解決しようとする課題】しかしながら、上記従来のディジタル信号処理装置では、メインCPU615がローカルCPU602のRAM607上の複数のデータを変更する場合、ローカルCPU602は出力FIFO603よりデータを取り込みローカルCPU602へ転送するという処理を繰り返す必要がある。 【0007】サーボ制御のフィルタ処理をローカルCPU602で行なわせる時、決められたサンプリング周期内で全ての処理を行わなければならない。そのため、メインCPU615がサーボ用フィルタ係数の一括変更等を行う場合、ローカルCPU602はフィルタ処理を行う前、あるいは行った後にFIFO603より自らデータを取り込まなければならないので、処理時間が長くなり、高速なサンプリング周期に対応した処理が困難となり、その結果、制御が十分に行えなくなるという課題を有していた。 【0008】本発明は、上記のような問題点を解決するためになされたものであり、複数個のプロセッサから同一メモリ領域への書き込みが競合しないようにデータ転送を行うディジタル信号処理装置を得ることを目的とする。 【0009】 【課題を解決するための手段】この発明(請求項1)に係るディジタル信号処理装置は、複数個のプロセッサから同一メモリ領域への書き込みが競合しないようにデータ転送を行うディジタル信号処理装置であって、ディジタルデータ処理を複数のタスクに分割して実行し、実行中のタスク情報を出力する第1のプロセッサと、外部データバスに接続され、外部にデータを送受信する複数のプロセッサと、 上記第1のプロセッサの実行データを格納する格納部と、上記第1のプロセッサ以外の各プロセッサから出力される上記格納部への書き込みデータを一時格納するメモリと、該メモリから上記格納部へ処理データの転送を行う制御回路とを備えたものである。 【0010】この発明(請求項2)は、請求項1記載のディジタル信号処理装置において、上記第1のプロセッサが処理を実行する際、上記複数のプロセッサがタスクを実行中の場合は、上記メモリ内にて書き込みを遅延させるものである。 【0011】この発明(請求項3)は、請求項1記載のディジタル信号処理装置において、上記メモリは、ファーストイン・ファーストアウト方式のメモリである。 【0012】この発明(請求項4)は、請求項1記載のディジタル信号処理装置において、上記制御回路は、上記第1のプロセッサが複数に分割された、いずれのタスクをも実行していないことを検出した場合に、処理データの転送を行うものである。 【0013】この発明(請求項5)は、請求項1記載のディジタル信号処理装置において、上記複数のプロセッサは、上記制御回路の起動信号により上記第1のプロセッサの処理の開始を知った後、次の起動信号が出力されるまでに、上記メモリにデータを送出するものである。 【0014】この発明(請求項6)は、請求項1記載のディジタル信号処理装置において、上記第1のプロセッサは、データを上記格納部へ書き込む際、上記メモリから上記格納部への書き込み無効を示し、書き込みを遅延させる無効ビットを出力するものである。 【0015】この発明(請求項7)は、請求項6記載のディジタル信号処理装置において、上記無効ビットは、上記第1のプロセッサ以外のプロセッサが上記格納部へデータを出力中である場合に出力されるものである。 【0016】この発明(請求項8)は、請求項1記載のディジタル信号処理装置において、上記第1のプロセッサが上記タスク情報を出力し、一定期間のクロック数を格納するレジスタと、上記第1のプロセッサから各タスクへの書き込みデータ処理開始時にカウントを開始するカウンタとを備えたものである。 【0017】この発明(請求項9)は、請求項8記載のディジタル信号処理装置において、上記クロック数を格納する期間は、上記第1のプロセッサが上記格納部へのアクセスを開始した時点から、アクセス終了までの期間である。 【0018】この発明(請求項10)は、請求項8記載のディジタル信号処理装置において、上記第1のレジスタと上記カウンタの出力に基づき上記メモリから上記格納部への転送開始タイミングを検出する検出回路を備えたものである。 【0019】この発明(請求項11)は、請求項1記載のディジタル信号処理装置において、上記制御回路は、上記第1のプロセッサにおける実行中の実行アドレスを示すアドレス情報と、上記第1のプロセッサ上で実行される実行アドレスを格納するアドレスレジスタと、上記アドレス情報と上記アドレスレジスタに設定されたアドレスとを入力し、該アドレスが一致した時点で上記メモリから上記格納部へデータの転送を行うものである。 【0020】この発明(請求項12)は、請求項1または請求項10記載のディジタル信号処理装置において、上記制御回路は、第1のプロセッサのデータ処理の進行状況に関わらず、上記アドレス情報と上記アドレスレジスタに設定されたアドレスとを比較し、一致した場合に上記メモリから上記格納部へ転送を行うものである。 【0021】この発明(請求項13)は、請求項1記載のディジタル信号処理装置において、上記第1のプロセッサは、データを上記格納部へ書き込む際、上記メモリから上記格納部への書き込み許可タイミングを示す許可ビットを出力するものである。 【0022】この発明(請求項14)は、請求項13記載のディジタル信号処理装置において、上記許可ビットは、上記第1のプロセッサ以外の各プロセッサが上記格納部へのデータ出力終了後、出力されるものである。 【0023】この発明(請求項15)は、請求項1記載のディジタル信号処理装置において、上記ディジタルデータ処理は、光ディスクドライブのサーボ制御装置におけるディジタルフィルタ処理に用いるものである。 【0024】 【発明の実施の形態】以下、本発明の実施の形態について図面を参照しながら説明する。 (実施の形態1)図1は本発明の実施の形態1におけるディジタル信号処理装置を説明するためのブロック図である。 【0025】図1に示すように、本実施の形態1のディジタル信号処理装置10は、第1のプロセッサ100と、第2のプロセッサ110と、上記第1のプロセッサの実行データを格納するローカルメモリ130と、セレクタ140と、上記第2のプロセッサ110から上記ローカルメモリ130への書き込みデータを一時格納し、該ローカルメモリ130へ転送するファーストイン・ファーストアウト方式のメモリ(以下、FIFOと記す)120と、ローカルメモリ130への書き込みを制御する制御回路150と、バス101とから構成されている。 【0026】次に、以上のように構成される本実施の形態1のディジタル信号処理装置の動作について説明する。第1のプロセッサ100はN個、この場合3個のタスクから構成される処理を実行し、一定周期で制御回路150より出力される起動信号151により処理を開始し実行可能なタスクを順番に実行し、実行可能な全タスクを実行し終わると処理を終了する。 【0027】以下、本実施の形態1を光ディスクドライブのサーボ制御、例えばフォーカス、トラッキング、スピンドルの各ディジタルフィルタ処理を、第1のプロセッサ100上でそれぞれ一つのタスクとして構成した場合について説明する。ここでは、3つのタスクをそれぞれフォーカス処理用のタスクをタスク1、トラッキング制御用のタスクをタスク2、スピンドルモータ制御用のタスクをタスク3とし、各タスクは、それぞれメモリ上の領域131(Task1)、領域132(Task2)、領域133(Task3)の各領域を使用し、各領域上に配置されてあるそれぞれのサーボ用フィルタ係数を用いて処理を行う。 【0028】ディジタルサーボ処理を行うために、以上の3つのタスクで構成される処理を決められた間隔、すなわちサンプリング周期で定期的に行う。この処理を定期的に行うために、制御回路150はタイマを内蔵し、サンプリング周期で第1のプロセッサ100の処理を開始させるために、サンプリング周期毎に第1のプロセッサ100に対して起動信号151を送出する。制御回路150から送出された起動信号151が第1のプロセッサ100に入力されると、3つのタスクとも実行可能である場合はタスク1、タスク2、タスク3と順番に切れ目無く実行し、タスク3を実行し終ると、再度制御回路150より起動信号151が入力されるまで第1のプロセッサ100の処理を停止する。第1のプロセッサ100は、いずれかのタスクを実行している間、タスク状態信号102にタスク番号を出力し、タスクを実行中であることを第1のプロセッサ100外部に通知する。 【0029】フォーカスフィルタ処理およびトラッキングフィルタ処理に関しては、起動信号151により毎回起動される必要がある。また、スピンドル処理に関しては、フォーカス、トラッキング処理に比較してサンプル周期は長くて良い。そのため、他の2つの処理に比較して起動信号151により毎回起動される必要はなく、例えば16回に1回の割合で実行されるものとする。従って、タスク3を実行する必要が無い場合は、起動信号151が第1のプロセッサ100に入力されると、第1のプロセッサ100に入力されるタスク1、タスク2と順番に実行し処理を終了する。第1のプロセッサ100は、いずれかのタスクを実行している場合は、そのことを制御回路150に通知するためにタスク状態信号102を出力する。各タスクを実行するかどうかは、第2のプロセッサ110が第1のプロセッサ100内のタスク制御レジスタを書き換えることで行う。 【0030】第2のプロセッサ110は、振動や偏芯等の外乱によりフォーカス制御用のフィルタの係数を変更する必要があると判断すると、ローカルメモリ130の領域131内にあるフィルタ係数を更新するために、バス101を通じてローカルメモリ130へ書き込みデータを送る。 【0031】制御回路150は、第2のプロセッサ110がローカルメモリ130へ書き込みを行うと、書き込みデータとアドレスとをFIFO120へ格納し、第1のプロセッサ100でタスクの実行中における書き込みかどうかをタスク状態信号102により判断する。タスクが実行中の場合は、FIFO120からローカルメモリ130への書き込みをセレクタ140により全タスクの処理が終了するまで遅らせ、全タスクの処理が終了した時点で、FIFO120内の全データをローカルメモリ130へ転送を行うよう制御する。従って、第1のプロセッサ100がタスク3の実行を終了した後、起動信号151が入力され再度第1のプロセッサ100が処理を開始するまでに、制御回路150がFIFO120上のデータを全てローカルメモリ130へ転送する必要があり、この転送に必要なクロック数を確保して第1のプロセッサ100の全タスクの実行を終了できるよう各タスクの実行クロック数を調整しておく。例えばタスク1、タスク2およびタスク3を実行し終えた後、FIFO120上のデータ転送に必要なクロック数を確保できない場合は、タスク3を実行する前に、FIFO120からローカルメモリ130への転送が行われないよう各タスクの実行クロック数を調整しておく。 【0032】このように、本実施の形態1のディジタル信号処理装置10では、第1のプロセッサ100と、第2のプロセッサ110と、FIFO120と、上記第1のプロセッサ100の実行データを格納するローカルメモリ130と、セレクタ140と、ローカルメモリ130への書き込みを制御する制御回路150と、バス101とを備え、書き込みデータを転送する第2のプロセッサ110がFIFO120へ書き込みデータを格納した後、書き込みデータの書き込みを行う第1のプロセッサ100のタスクの処理状態を確認し、タスクが処理中であればデータの書き込みを遅延するようにしたので、データの書き込みを行う第1のプロセッサの処理を増加させること無く、確実にデータ転送を行うことができる。 【0033】(実施の形態2)図2は本発明の実施の形態2におけるディジタル信号処理装置を説明するためのブロック図である。本実施の形態2のディジタル信号処理装置20は、上記実施の形態1のディジタル信号処理装置10の構成に加えて、第1のプロセッサ500から書き込み無効信号501を送出するように構成されている。 【0034】この実施の形態2のディジタル信号処理装置20におけるその他の構成は図1に示す実施の形態1のディジタル信号処理装置と同一となっている。 【0035】次に動作について説明する。第1のプロセッサ500からの命令内には、ローカルメモリ130へ書き込むデータが再度参照されないことを示す無効ビットを持つ。 【0036】例えば、第1のプロセッサ500が、以下のような命令列を実行する場合を考える。なお、A、B、C、D、Eは変数である。 【0037】 :命令(1) A = B + C命令(2) D = A + E:【0038】変数Aは、命令(1)で書き込みが行われ、命令(2)で参照されるが、以降の命令では参照されない。この場合、命令(1)の結果を直接命令(2)に受け渡すことができれば、命令(1)の結果、すなわち変数Aをメモリに格納する必要なはい。 【0039】次に、第1のプロセッサ500の動作についてより詳しく説明する。図3は本発明の実施の形態2における第1のプロセッサの演算回路を説明するためのブロック図である。 【0040】本実施の形態2における第1のプロセッサの演算回路30は、メモリ580と、レジスタ581と、セレクタ582および583と、算術論理演算回路(以下、ALUと記す)584と、制御回路585とから構成されている。 【0041】第1のプロセッサの演算回路30の動作について説明する。上記命令(1)を実行した場合、変数BおよびCがメモリ580より読み出され、セレクタ582および583を経由し、ALU584に入力され加算が行われる。ALU584の出力(加算の結果)は、メモリ580へ送られると同時にレジスタ581に格納される。次に命令(2)を実行すると、制御回路585は命令(1)の結果の格納先と、命令(2)の入力とが一致していることを検出すると、制御回路585でメモリ580から読み出したデータの代わりに、レジスタ581の出力を選択するよう制御する。このような演算回路30を構成することで、命令(2)以降において参照されることの無い命令(1)の演算結果をメモリ上に格納することは不要となる。 【0042】上記のような演算回路を持つ第1のプロセッサ500が、ローカルメモリ130への書き込み無効ビットがセットされた命令(1)を実行した場合、ローカルメモリ130への書き込み時に書き込み無効信号501が出力される。 【0043】書き込み無効信号501がローカルメモリ130への書き込み時に第1のプロセッサ500より出力された場合、制御回路550は、FIFO120上にデータが格納されていれば、FIFO120上のデータがいずれのタスクのメモリ領域への書き込みであるかを書き込みアドレスで判断し、第1のプロセッサ500の出力するタスク状態信号102のタスク番号に基づき、既に書き込み先のタスクの実行が終了していると判断した場合は、第1のプロセッサ500からの書き込み要求を無視し、FIFO120からローカルメモリ130へ転送を行うよう制御する。 【0044】例えば、第1のプロセッサ500の処理がタスク1、タスク2、タスク3の順番で実行されるよう設定されており、タスク状態信号102の出力がタスク2を示していれば、タスク1の実行が終了したことを確認できる。この場合、制御回路550はFIFO120上の先頭のデータがタスク1のメモリ領域131への書き込みであれば、書き込み無効信号501が出力された場合に、FIFO120の先頭のデータを領域131に書き込む。 【0045】このように、本実施の形態2のディジタル信号処理装置20では、上記実施の形態1のディジタル信号処理装置10に加えて、第1のプロセッサ500から書き込み無効信号501を送出するようにしたので、第1のプロセッサ500上の処理、即ち全てのタスクの実行が終了してから転送するFIFO120上のデータ数を削減することができる。 【0046】(実施の形態3)図4は本発明の実施の形態3におけるディジタル信号処理装置40の構成を説明するためのブロック図である。本実施の形態3のディジタル信号処理装置40は、上記実施の形態2のディジタル信号処理装置20に加えて、実行クロック数レジスタ260及び261が付加されている。 【0047】実行クロック数レジスタ260には、タスク1およびタスク2の実行に必要なクロック数と、タスク3がその実行を開始してから最後にローカルメモリ130上のデータにアクセスするまでのクロック数の総計が格納され、実行クロック数レジスタ261は、起動信号151が出力されてからのクロック数を格納するために用いられ、この起動信号151が出力される毎に初期化される。 【0048】この実施の形態3のディジタル信号処理装置40におけるその他の構成は図1に示す実施の形態1のディジタル信号処理装置10と同一となっている。 【0049】次に動作について説明する。第1のプロセッサ100は、起動信号151により実行された後、実行クロック数レジスタ260に設定されたクロック数を経過した時点で、ローカルメモリ130へのアクセスは行わなくなるとともに、次回の起動信号151による処理が開始されるまでに、FIFO120上のデータをローカルメモリ130に転送可能なクロック数が確保されているものとする。 【0050】制御回路250は、第1のプロセッサ100の出力するタスク状態信号102により、処理の終了が確認され、未転送のデータがFIFO120上にあれば、実行クロックレジスタ260と261とを比較し、実行クロック数レジスタ261の方が実行クロック数レジスタ260より小さければ、FIFO120上のデータをローカルメモリ130に転送可能と判断し、FIFO120、ローカルメモリ130およびセレクタ140を制御しFIFO120上のデータをローカルメモリ130へ転送する。 【0051】また、制御回路250は、第1のプロセッサ100の処理が終了しない場合でも、実行クロックレジスタ260と261との比較をし、実行クロック数レジスタ261と実行クロック数レジスタ260が一致した時点で、FIFO120上のデータをローカルメモリ130に転送を開始する。 【0052】このように、本実施の形態3のディジタル信号処理装置40では、上記実施の形態2のディジタル信号処理装置20に加えて、実行クロック数レジスタ260及び261を備えるようにしたので、第1のプロセッサ100のローカルメモリ130へのアクセスと、FIFO120上のデータの転送との競合を避け、第1のプロセッサ100から出力されるデータを途中で中断すること無く、確実にローカルメモリ130へ転送することができる。 【0053】(実施の形態4)図5は本発明の実施の形態4におけるディジタル信号処理装置50を説明するためのブロック図である。本実施の形態4のディジタル信号処理装置50は、上記実施の形態3のディジタル信号処理装置40に加えて、アドレスレジスタ360が付加され、実行クロックレジスタ260が省略されている。 【0054】この実施の形態4のディジタル信号処理装置50におけるその他の構成は図1に示す実施の形態1のディジタル信号処理装置10と同一となっている。 【0055】次に動作について説明する。まず、アドレスレジスタ360には、タスク3がその実行を開始してから最後にローカルメモリ130上のデータにアクセスする命令のアドレスが格納される。また、第1のプロセッサ300は、実行中の命令のアドレスをアドレスバス301により制御回路350に転送する。 【0056】第1のプロセッサ300は、起動信号151により実行を開始した後、アドレスレジスタ360に設定されたアドレスの命令を実行した時点で、ローカルメモリ130へのアクセスは行わなくなる。また、次回の起動信号151による処理が開始されるまでに、FIFO120上のデータをローカルメモリ130に転送可能な状態に待機されているものとする。 【0057】制御回路350は、第1のプロセッサ300のデータ処理が終了していない場合でも、アドレスレジスタ360とアドレスバス301とを比較し、一致した時点で、FIFO120上のデータをローカルメモリ130に転送を開始する。 【0058】また、制御回路350は、第1のプロセッサ300が出力する実行中の命令のアドレスにより、アドレスの変化が停止したことで上記データ処理の終了を確認する。未転送のデータがまだFIFO120上にあれば、FIFO120上のデータをローカルメモリ130に転送可能と判断し、FIFO120、ローカルメモリ130およびセレクタ140を制御しFIFO120上のデータをローカルメモリ130へ転送する。 【0059】このように、本実施の形態4のディジタル信号処理装置50では、上記実施の形態3のディジタル信号処理装置に加えて、アドレスレジスタ360を備えるようにしたので、第1のプロセッサ300のローカルメモリ130へのアクセスとFIFO120上のデータの転送との競合を避け、第1のプロセッサ300から出力されるデータを途中で中断すること無く、確実にローカルメモリ130へ転送することができる。 【0060】(実施の形態5)図6は本発明の実施の形態5におけるディジタル信号処理装置60を説明するためのブロック図である。本実施の形態5のディジタル信号処理装置60は、上記実施の形態4のディジタル信号処理装置50とは基本的には同一の構成であるが、アドレスレジスタ360と実行クロックレジスタ261が省略されいる。 【0061】次に動作について説明する。第1のプロセッサ400は、起動信号151により実行を開始した後、全ての処理を終了した時点、およびローカルメモリ130へのアクセスを終了した時点で、終了信号401を出力する。この終了信号401の生成回路は図6には図示されていないが、例えば、出力ポートへの書き込み、などにより実現される。 【0062】第1のプロセッサ400は終了信号401が出力された後、次回の起動信号151による処理が開始されるまでに、FIFO120上のデータをローカルメモリ130に転送可能な状態で待機されているものとする。 【0063】制御回路450は、第1のプロセッサ400が出力する終了信号401により第1のプロセッサ400の処理の終了を確認し、未転送のデータがまだFIFO120上にあれば、FIFO120上のデータをローカルメモリ130に転送可能と判断し、FIFO120、ローカルメモリ130およびセレクタ140を制御しFIFO120上のデータをローカルメモリ130へ転送する。 【0064】このように、本実施の形態5のディジタル信号処理装置60では、以上のような処理を行うことで、第1のプロセッサ400の命令でFIFO120上のデータの転送の禁止期間を指示することになり、ハードウェアの増加を抑えるとともに、書き込み禁止区間を短縮し、第1のプロセッサ400のローカルメモリ130へのアクセスとFIFO120上のデータの転送との競合を避け、第1のプロセッサ400から出力されるデータを途中で中断すること無く、ローカルメモリ130へ転送することができる。 【0065】なお、上述した説明において、本発明に係わるディジタル信号処理は光ディスクドライブのサーボ制御装置におけるディジタルフィルタ処理を行ったものとしたが、必ずしもこれに限定されるものではない。 【0066】 【発明の効果】以上のように本発明によれば、データの転送先のプロセッサが自らFIFOへアクセスし、データを取り込む代わりにデータ転送元のプロセッサがFIFOへデータを格納した後、データ転送先のプロセッサにおけるタスクの処理状態を確認するようにしたので、転送先となるメモリへのアクセスの競合を避け、データの転送先のプロセッサの処理を増加させること無く確実にデータ転送を行うことができる。さらに、転送先のプロセッサからメモリへ書き込まれるべきデータが再度参照されないことを示す無効ビットを命令内に持つことで、メモリへの競合を避けることができ、FIFOからメモリへの転送時間をさらに短縮することができる。 【0067】また、転送先のプロセッサ上でプロセッサが処理を開始した時点から最後にメモリへアクセスを行うまでのクロック数を保持するレジスタ、あるいはメモリへアクセスする最後の命令のアドレスを保持するレジスタ、または転送先のプロセッサが自ら終了タイミングを通知する機構を設けることで、転送先のプロセッサの処理の終了を待たずにメモリへの転送を開始できるようになり、転送時間を短縮することができる。
|
| 【出願人】 |
【識別番号】000005821 【氏名又は名称】松下電器産業株式会社
|
| 【出願日】 |
平成12年10月27日(2000.10.27) |
| 【代理人】 |
【識別番号】100081813 【弁理士】 【氏名又は名称】早瀬 憲一
|
| 【公開番号】 |
特開2002−132745(P2002−132745A) |
| 【公開日】 |
平成14年5月10日(2002.5.10) |
| 【出願番号】 |
特願2000−329301(P2000−329301) |
|