(57)【要約】 【課題】  単純な回路構成で、速度低下を抑制することができるデータ処理装置を提供する。【解決手段】  各機能モジュールが内部バス１０１に対してデータを転送開始する前に、書き込み側の機能モジュールは、直接後段の機能モジュールに対して処理内容を示す処理情報を送付する。内部バス１０１はモジュールのＷＤＭＡがデータ転送開始前に発行するダイレクトコマンドにより、転送先経路を決定し、ＲＤＭＡ（Read DMA）を自動的に起動させることで、ダイレクトにデータ転送させる。書き込み側の第１モジュール１０２は、大容量メモリに対してデータ転送しているかの如くデータ送信することができ、転送先の第６モジュール１０７は、大容量メモリからデータを読み出しているかの如くデータを受信することができる。【選択図】      図１
2009193282.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能モジュールを有し、各機能モジュールが内部バスに対してデータを転送開始する前に、書き込み側の機能モジュールは、直接後段の機能モジュールに対して処理内容を示す処理情報を送付することを特徴とするデータ処理装置。
【請求項２】
前記内部バスは、各機能モジュールが転送開始前に発行するダイレクトコマンドにより、転送先経路を決定することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記内部バスが決定する転送先経路は、バスマトリクスで形成され、ポートアドレスの書き換えで前記バスマトリクスの各スイッチを切り替え、転送先経路を決定することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記内部バスが前記転送先経路を決定した後に、書き込み側の機能モジュールから後段の機能モジュールに対して最小単位でデータを転送することを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記各機能モジュールは、固有のアドレスを所有することを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
所定の容量以上の記憶容量を有する大容量メモリを有し、
前記大容量メモリを介して前記書き込み側の機能モジュールから後段の機能モジュールにデータを転送するとき、データの転送開始前に、前記大容量メモリに送られた書き込み側の機能モジュールが送ったコマンドを解析することにより後段の機能モジュールを決定することを特徴とする請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各機能モジュール間でデータ転送を行うデータ処理装置に関する。
【背景技術】
【０００２】
画像処理モジュールの中には、画像処理部、圧縮部、伸張部、外部大容量メモリコントローラを複数有しており、画像処理部による画像処理結果の一部または全てを一旦大容量メモリに溜めながら、画像処理部に続く後処理を行っていたが、複数のマスタモジュールから大容量メモリへのアクセスが集中すると外部メモリへの帯域が圧迫し速度低下するという問題点がある。
【０００３】
そこで、各モジュールをダイレクトにデータ転送させる技術があるが、各モジュールにマスタとターゲットとを用意することになり、１つのモジュールにデータ転送用のコントローラを２種類持たせる必要があるため、設計をするには回路が複雑なるという問題点がある。
【０００４】
特許文献１には、機能モジュールと大容量メモリとの間を、ＤＭＡを用いてデータを転送する技術が示されている。
【０００５】
【特許文献１】特開２００２−３２８８８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、単純な回路構成で、速度低下を抑制することができるデータ処理装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、複数の機能モジュールを有し、各機能モジュールが内部バスに対してデータを転送開始する前に、書き込み側の機能モジュールは、直接後段の機能モジュールに対して処理内容を示す処理情報送付することを特徴とするデータ処理装置である。
【０００８】
また本発明は、前記内部バスは、各機能モジュールが転送開始前に発行するダイレクトコマンドにより、転送先経路を決定することを特徴とする。
【０００９】
また本発明は、前記内部バスが決定する転送先経路は、バスマトリクスで形成され、ポートアドレスの書き換えで前記バスマトリクスの各スイッチを切り替え、転送先経路を決定することを特徴とする。
【００１０】
また本発明は、前記内部バスが前記転送先経路を決定した後に、書き込み側の機能モジュールから後段の機能モジュールに対して最小単位でデータを転送することを特徴とする。
【００１１】
また本発明は、前記各機能モジュールは、固有のアドレスを所有することを特徴とする。
【００１２】
また本発明は、所定の容量以上の記憶容量を有する大容量メモリを有し、
前記大容量メモリを介して前記書き込み側の機能モジュールから後段の機能モジュールにデータを転送するとき、データの転送開始前に、前記大容量メモリに送られた書き込み側の機能モジュールが送ったコマンドを解析することにより後段の機能モジュールを決定することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、内部バスに対してデータを転送開始する前に、書き込み側の機能モジュールが、直接後段の機能モジュールに対して処理内容を示す処理情報を送付するので、各機能モジュール間を多くの配線でつなぐ必要がなくなり、単純な回路構成で速度低下の抑制を実現することができる。
【００１４】
また本発明によれば、前記内部バスは、各機能モジュールが転送開始前に発行するダイレクトコマンドにより、転送先経路を決定する。
【００１５】
これにより、ダイレクト転送する前に、内部バスに対して転送先経路の確保を行なうことができる。
【００１６】
また本発明によれば、前記内部バスが決定する転送先経路は、バスマトリクスで形成され、ポートアドレスの書き換えで前記バスマトリクスの各スイッチを切り替え、転送先経路を決定するので、ダイレクト転送において、内部バスのポートアドレスに対して書き込み側の機能モジュールがコマンドを発行することでデータ転送することができる。
【発明を実施するための最良の形態】
【００１７】
以下では、本発明の実施形態であるデータ処理装置の内部バスの動作について図１および図２を用いて説明する。なお、本発明のデータ処理装置は、画像データをその処理対象とし、スキャナで読み取った画像データの記憶装置への読み出し、書き込みや、画像処理モジュールへの転送、処理が施された画像データの後処理モジュールへの転送などに好適に用いられる。
【００１８】
本発明のデータ処理装置は、複数の機能モジュールを有し、各機能モジュールが内部バスを介して、ＣＰＵなどの制御部を介さずＤＭＡ（Direct Memory Access）方式によりデータのリード（読み出し）、ライト（書き込み）を行う。
【００１９】
図１は、本発明のデータ処理装置の構成を示すブロック図である。データ処理装置は、複数の機能モジュールである第１モジュール１０２〜第７モジュール１０８を備え、内部バス１０１によってこれらのモジュールがデータ送受信可能に接続されている。ローカルバスコントローラ１０９は、外部のデータ処理装置などとデータ通信を行うためのコントローラである。データ処理装置は、ＳＤＲＡＭコントローラ１１０を介して、外部大容量メモリ１１３とデータのリード、ライトを行う。
【００２０】
本発明のデータ処理装置では、各機能モジュールが内部バス１０１に対してデータを転送開始する前に、書き込み側の機能モジュールは、直接後段の機能モジュールに対して処理内容を示す処理情報を送付する。
【００２１】
ここで、書き込み側の機能モジュールを第１モジュール１０２とし、後段の転送先機能モジュールを第６モジュール１０７としてデータフローを説明する。
【００２２】
図２は、データ処理装置内でのバスデータフローを示す図である。
本発明では、第１モジュール１０２のＷＤＭＡ（Write DMA）は、データの転送開始前に、転送先の第６モジュール１０７に対して、予め転送しようとするデータの処理サイズ、処理内容を含むダイレクトコマンドを発行する。
【００２３】
ダイレクトコマンドを受信した第６モジュール１０７は、コマンドを解析して、データ読み込みのアクションを起こす。その後に、大容量高速メモリを介さずに直接データを転送する。
【００２４】
このとき、内部バス１０１はモジュールのＷＤＭＡがデータ転送開始前に発行するダイレクトコマンドにより、転送先経路を決定し、ＲＤＭＡ（Read DMA）を自動的に起動させることで、あたかもメモリ転送しかしていないかのような動作により、ダイレクトにデータ転送させることができる。
【００２５】
このようにすることで、前段書き込み側の第１モジュール１０２は、あたかも大容量メモリに対してデータ転送しているかの如くデータ送信することができ、後段転送先の第６モジュール１０７は、あたかも大容量メモリからデータを読み出しているかの如くデータを受信することができるため、各機能モジュール間を多くの配線でつなぐ必要がなくなり、単純な回路構成で速度低下の抑制を実現することができる。
【００２６】
本発明に対して一般的なターゲットアクセスでは、前段の書き込み側モジュールより一定量毎に、転送サイズが通知されるように構成されているシステムであるため、そのような転送のための回路を新たに設計する必要がある。さらに、画像データを処理する場合には、主走査、副走査サイズを別途設定する必要があるため、より複雑で回路規模を増大させることになる。
【００２７】
次に、各モジュールがデータを外部の大容量メモリ１１３から読み取る場合について説明する。
【００２８】
まず、ＣＰＵ（不図示）から大容量メモリ１１３の開始アドレス、連続するデータ容量をモジュールのレジスタ１１２に設定し、DMA_STARTコマンドを起動する。これにより、ＲＤＭＡコントローラを介して大容量メモリ１１３の開始アドレスとデータ容量（基本バースト）を、内部バス１０１にRDMA_CVLDコマンドを発行し、データを最小単位で読み出すことができる。
【００２９】
各ＤＭＡが所望する総サイズを読み取るには、最小単位のデータ読み取りを、レジスタ設定容量を全て繰り返し要求することで、読み取りが可能となる。
【００３０】
次に、各モジュールがデータを外部の大容量メモリ１１３へ書き込む場合について説明する。
【００３１】
まずＣＰＵから大容量メモリ１１３の開始アドレス・連続するデータ容量をレジスタ１１２に設定し、DMA_STARTコマンドを起動する。これにより、ＷＤＭＡコントローラを介して大容量メモリ１１３の開始アドレスとデータ容量（基本バースト）であるWDMA_CVLDコマンドと、書き込みデータそのものであるWDMA_CWDを内部バス１０１に発行し、データを最小単位で書き出すことができる。
【００３２】
各ＤＭＡが所望する総サイズを書き込むには、最小単位のデータ書き込みを、レジスタ設定容量を全て繰り返し要求することで、書き込みが可能となる。
【００３３】
本発明は、メモリを介さずにダイレクトにデータ転送する場合、簡単な回路構成で実現するために上記のＤＭＡ転送の特徴を最大限に活用する。
【００３４】
つまり、データをダイレクト転送するＷＤＭＡは、ダイレクト転送する前に、内部バス１０１に対して転送先経路を確保するとともに、転送先のサイズ容量およびDMA_STARTコマンドを自動起動させる。
【００３５】
このためにＲＤＭＡはダイレクトコマンド(RDMA_DCOM)によりサイズ容量を受け付け、ダイレクトコマンドを受信すると、自身のレジスタに受信したサイズをレジスタ設定し、自身のＤＭＡ起動をかける。
【００３６】
ＤＭＡ起動後の動作としては、RDMA_CVLDを発行しないことを除いて、メモリアクセスするのと同じ動作をする。
【００３７】
ＲＤＭＡは、ＦＩＦＯ（First in First out）１１１よりRDMA_DVLDコマンドと
RDMA_DRCVコマンドとを使用してRequest-Acknowledgeハンドシェイクしながらデータを受信するので、あたかもメモリからデータを読み出しているかのような動作になる。
【００３８】
ＷＤＭＡはデータ転送する前にダイレクトコマンドにより転送先経路の確保と相手先に設定するサイズ容量を通知する。
【００３９】
一旦転送先経路が確保された後は、ＷＤＭＡがあたかもメモリにデータを書き込んでいるかのような動作になる。メモリアクセス、ダイレクトアクセスにかかわらず、各ＷＤＭＡはダイレクトコマンドをＤＭＡが起動するたびに発行するようにすれば設計は統一化され簡略化される。
【００４０】
内部バス１０１は、ＷＤＭＡからダイレクトコマンドを受信すると、ダイレクトコマンドに含まれる転送先アドレスを読み取りの転送先経路を決定する。
【００４１】
ここで、転送先アドレスがメモリアクセスであれば、転送先経路をメモリアクセスするように設定し、その後に続くサイズ情報等は不要なので廃棄する。
【００４２】
転送先アドレスがポートアクセスのアドレスであれば、転送先経路を決定し、続くサイズ情報を転送先のＤＭＡにダイレクトコマンド( RDMA_DCOM）を使用して通知する。
【００４３】
データ転送の終了は、データ転送開始前に発行したサイズ情報分のデータを送信した時点で終了となるが、発行したサイズに満たない状態でデータ転送を終了したい場合がある。このような場合、前段のモジュールは終了コマンドを発行し転送データのサイズ変更があったことを、後段の転送先モジュールに通知することで速やかにＤＭＡを終了させることができる。後段の転送先モジュールは、終了コマンドを受け取ったときに、ＤＭＡのサイズ変更に対応すればよい。
【００４４】
図３は、本発明のデータ処理装置によって用いられるコマンドの例を示す図である。コマンドには、データ転送時に転送先のアドレスを設定するAccess Address１、データ転送時に転送先に処理内容を通知するAccess Message２，４、データ転送時に転送先に転送データのサイズ情報を通知するAccess Size３，５がある。
【００４５】
図４は、バスマトリクスの例を示す図である。内部バス１０１の転送先経路は、図４に示すようなバスマトリクスで形成される。このようなバスマトリクスを参照することにより、各機能モジュール間の転送先経路を決定する。図４では、上記の例のように、書き込み側の第１モジュール１０２から、転送先の第６モジュール１０７へのデータ転送経路を示している。図５に示すような内部バス１０１のポートアドレスの書き換えを行うことで、バスマトリクスの各スイッチを切り替えることができ、その結果転送先経路を確保することができる。
【００４６】
たとえば、書き込み側の第１モジュール１０２は、矢印が示す経路で、直接転送先の第６モジュール１０７に対して処理サイズや処理内容を通知するのに続いて、データをダイレクト転送することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明のデータ処理装置の構成を示すブロック図である。
【図２】データ処理装置内でのバスデータフローを示す図である。
【図３】本発明のデータ処理装置によって用いられるコマンドの例を示す図である。
【図４】バスマトリクスの例を示す図である。
【図５】内部バス１０１のポートアドレスの例を示す図である。
【符号の説明】
【００４８】
１０１  内部バス
１０２  第１モジュール
１０３  第２モジュール
１０４  第３モジュール
１０５  第４モジュール
１０６  第５モジュール
１０７  第６モジュール
１０８  第７モジュール
１０９  ローカルバスコントローラ
１１０  ＳＤＲＡＭコントローラ
１１３  外部大容量メモリ
【図１】
2009193282.tif 000003
【図２】
2009193282.tif 000004
【図３】
2009193282.tif 000005
【図４】
2009193282.tif 000006
【図５】
2009193282.tif 000007