(57)【要約】【課題】物理的な回路規模を殆ど増やすこと無くブロックデータの転送効率を向上させる。【解決手段】データ転送制御装置（１０）は、デュアルアドレス転送においてリードデータを一時的に蓄えるバッファ領域として中央処理装置（３）によってもアクセス可能なランダムアクセスメモリ（６）を用いるから、データ転送制御装置はそれ自体で専用のＦＩＦＯバッファなどを持たなくてもよい。ランダムアクセスメモリに割当てるバッファ領域のエリアもしくはサイズは中央処理装置によってプログラマブルであるから、システム上必要に応じた容量を、また中央処理装置によるワーク領域との競合を避けて、バッファに割くことができる。【選択図】　　　　図１
2004029898.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置、データ転送制御装置、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリを１個の半導体チップに含むデータプロセッサであって、
前記データ転送制御装置は、転送元からのデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能とされ、
前記中央処理装置は前記データ転送制御に利用するランダムアクセスメモリのエリアをプログラマブルに指定可能であることを特徴とするデータプロセッサ。
【請求項２】
中央処理装置、データ転送制御装置、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリを１個の半導体チップに含むデータプロセッサであって、
前記データ転送制御装置は、転送元及び転送先アドレスを指定したデータ転送制御において、転送元に対するリードアドレスの指定に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトするバッファライトアドレスを指定し、転送先に対するライトアドレスの指定に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバッファリードアドレスを指定する、ことを特徴とするデータプロセッサ。
【請求項３】
前記転送元に対するリードアドレスのアドレス信号と前記転送先に対するライトアドレスのアドレス信号の伝達に用いる第１アドレス信号線と、前記バッファライトアドレスのアドレス信号と前記バッファリードアドレスのアドレス信号の伝達に用いる第２アドレス信号線とを別々に有することを特徴とする請求項２記載のデータプロセッサ。
【請求項４】
前記第１アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるバスであり、前記第２アドレス信号線は前記ランダムアクセスメモリに接続するバッファ用アドレスバスであることを特徴とする請求項３記載のデータプロセッサ。
【請求項５】
前記第１アドレス信号線はデータ転送制御装置用アドレスバスであり、前記第２アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるアドレスバスであることを特徴とする請求項３記載のデータプロセッサ。
【請求項６】
前記データ転送制御装置は、転送元から転送先へ複数回データ転送を行なうとき、転送元からデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能であることを特徴とする請求項２記載のデータプロセッサ。
【請求項７】
前記データ転送制御装置は、前記データ転送制御におけるデータ転送の繰返し回数を中央処理装置によりプログラマブルに指定可能とする第１制御レジスタ手段を有することを特徴とする請求項６記載のデータプロセッサ。
【請求項８】
前記データ転送制御装置は、前記データ転送制御に利用するランダムアクセスメモリのエリアを中央処理装置によりプログラマブルに指定可能とする第２制御レジスタ手段を有することを特徴とする請求項６又は７記載のデータプロセッサ。
【請求項９】
中央処理装置と、データ転送制御装置と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリと、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バスと、前記内部バスとは独立して前記バス制御回路と前記ランダムアクセスメモリを接続するバッファアドレスバスと、を１個の半導体チップに含むデータプロセッサであって、
前記データ転送制御装置は、カウンタ手段と、転送元及び転送先のアドレス信号を前記内部バスに出力する転送制御チャネルと、制御回路とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路にバッファアドレスバスを介するランダムアクセスメモリに対するアクセスを指示し、
前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて前記バッファアドレスバスにバッファアドレス信号を出力して、転送元に対する前記内部バスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記内部バスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう、ことを特徴とするデータプロセッサ。
【請求項１０】
中央処理装置と、データ転送制御装置と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリと、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バスと、前記内部バスとは独立して前記バス制御回路と前記データ転送制御装置を接続するＤＭＡ用アドレスバスと、を１個の半導体チップに含むデータプロセッサであって、
前記データ転送制御装置は、カウンタ手段と、転送元及び転送先のアドレス信号を前記ＤＭＡ用アドレスバスに出力する転送制御チャネルと、制御回路とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路に内部バスを介するランダムアクセスメモリに対するアクセスを指示し、
前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて内部バスにバッファアドレス信号を出力して、転送元に対する前記ＤＭＡ用アドレスバスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記ＤＭＡ用アドレスバスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう、ことを特徴とするデータプロセッサ。
【請求項１１】
中央処理装置、データバッファを持つ周辺回路、及びデータ転送制御装置を有し、
前記データ転送制御装置は前記周辺回路をデータ転送元とするデータ転送制御を行なうとき、前記周辺回路のバッファが保有するデータ数を確認して、そのデータ数を超えない範囲でデータ転送制御を行なうことを特徴とするデータプロセッサ。
【請求項１２】
中央処理装置、及びデータ転送制御装置を有し、
前記データ転送制御装置は、転送対象アドレスが奇数アドレスのとき、転送単位を最小のデータ数とし、
転送対象アドレスが偶数アドレスのとき、転送対象アドレスが転送単位のアドレスインターバルに一致しない状態に応答して転送単位のデータ数を小さくすることを特徴とするデータプロセッサ。
【請求項１３】
中央処理装置、及びデータ転送制御装置を有し、
前記データ転送制御装置は転送すべきデータ数を確認し、そのデータ数が転送単位のデータ数よりも小さくなったとき、データ転送の途中で、転送単位のデータ数の小さな転送単位に切換え制御することを特徴とするデータプロセッサ。
【請求項１４】
中央処理装置、及びデータ転送制御装置を有し、
前記データ転送制御装置は転送すべき残りのデータ数が転送単位のデータ数よりも少ないことを判別して割り込みを要求し、
前記中央処理装置はその割り込み要求に応答して、残りのデータ転送を、転送単位のデータ数の小さな転送単位に切換え制御することを特徴とするデータプロセッサ。
【請求項１５】
転送単位の切換え制御対象はデータ転送制御装置であることを特徴とする請求項１４記載のデータプロセッサ。
【請求項１６】
転送単位を切換えて中央処理装置が残りのデータ転送を制御することを特徴とする請求項１４記載のデータプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、中央処理装置とデータ転送制御装置を有するデータプロセッサに関し、特にデータのブロック転送（バースト転送）に適用して有効な技術に関する。
【０００２】
【従来の技術】
特開２００１−１５４９７７には、デュアルアドレスモードを有するデータ転送コントローラについて記載がある。これに記載されたデータ転送コントローラは、複数段のバッファとカウンタを有し、前記カウンタの計数動作に呼応してデータバスに対して先入れ・先出し形式でデータを入出力可能なデータバッファ回路を有する。データバッファ回路はバッファを複数段有するから、デュアルアドレスモードにおいて、バッファ段数を上限として、転送元アドレスから連続してデータを読み出してデータバッファ回路に蓄え、蓄えたデータを連続的に転送先アドレスにライトすることができる。デュアルアドレスモードにおいて読み出しと書き込みを交互に行わなくてもよい。したがって、ＳＤＲＡＭ（シンクロナスＤＲＡＭ）に代表されるようにロウアドレス共通のメモリセルをカラムアドレスを順番に切換えて連続アクセスするバーストアクセスのように連続的なデータ入出力動作が可能なデバイスに対するデータ転送効率を向上させることができる。
【０００３】
特開平３−１３４７５０にはＤＲＡＭコントローラに複数ワードデータを保持できるメモリを設け、シングルモードとページモードに対応可能にする技術が記載される。特開平１１−８５６７０にはバスコントローラの前段にＤＭＡＣを設け、ＤＭＡＣのバッファを不要にしたマイクロコンピュータについて記載がある。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来技術ではデータバッファ回路を特別に持たなければならないから、その分だけデータプロセッサの物理的な回路規模が増大する。データバッファに必要な記憶容量も適用システムに応じて相違され、汎用データプロセッサの場合には、無駄になる場合もあれば、足りない場合もある。ＳＤＲＡＭにおける最大バースト長のようなデータ入出力の連続データ数が多いデバイスを用いるシステムではデータ転送効率が左程上がらず、そのような連続データ数の少ないデバイスを用いるシステムではデータバッファ回路の一部の記憶領域が利用されずに無駄になる事態を生ずる。
【０００５】
本発明者はＤＭＡＣに対して更に検討を加えたところ、以下の問題点を見出した。第１に、ＵＳＢ（ユニバーサル・シリアル・バス）インタフェースをデータ転送対象とするとき、そのＦＩＦＯバッファのエンプティー状態を超えてＤＭＡＣがリードしようとすると、ＦＩＦＯバッファのアドレスポインタの値が破壊する虞のあることが明らかにされた。
【０００６】
第２に、転送対象アドレスが奇数アドレスのとき、或は転送すべきデータ数が奇数個であるとき、全てのデータ転送を最小単位であるバイト単位で行なうと、データ転送効率が悪化する、ということである。
【０００７】
本発明の目的は、物理的な回路規模を殆ど増やすこと無くブロックデータの転送効率を向上させることができるデータプロセッサを提供することにある。
【０００８】
本発明の別の目的は、ＤＭＡＣによる連続データ転送回数と周辺回路が許容する連続データ転送回数との矛盾を解消させることができるデータプロセッサを提供することにある。
【０００９】
本発明のその他の目的は、転送すべきデータ数と転送単位との間の矛盾への対応、更には奇数アドレスを転送先とするデータ転送への対応が可能なデータプロセッサを提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１１】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
〔１−１〕本発明に係るデータプロセッサは、中央処理装置（３）、データ転送制御装置（１０）、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリ（６）を１個の半導体チップに含む。前記データ転送制御装置は、転送元からのデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能とされる。前記中央処理装置は前記データ転送制御に利用するランダムアクセスメモリのエリアをプログラマブルに指定可能である。
【００１３】
上記より、デュアルアドレス転送においてリードデータを一時的に蓄えるバッファ領域として中央処理装置によってもアクセス可能なランダムアクセスメモリを用いるから、データ転送制御装置はそれ自体で専用のＦＩＦＯバッファなどを持たなくてもよい。そして、ランダムアクセスメモリに割当てるバッファ領域のエリアもしくはサイズは中央処理装置によってプログラマブルであるから、システム上必要に応じた容量を、また中央処理装置によるワーク領域との競合を避けて、バッファに割くことができる。
【００１４】
〔１−２〕異なった観点による本発明のデータプロセッサは、中央処理装置、データ転送制御装置、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリを１個の半導体チップに含む。前記データ転送制御装置は、転送元及び転送先アドレスを指定したデータ転送制御において、転送元に対するリードアドレスの指定に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトするバッファライトアドレスを指定し、転送先に対するライトアドレスの指定に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバッファリードアドレスを指定する。
【００１５】
上記より、デュアルアドレス転送においてリードデータを一時的に蓄えるバッファ領域として中央処理装置によってもアクセス可能なランダムアクセスメモリを用いるから、データ転送制御装置はそれ自体で専用のＦＩＦＯバッファなどを持たなくてもよい。
【００１６】
転送元又は転送先に対するアドレス指定とランダムアクセスメモリに対するバッファライトアドレス又はバッファリードアドレスの指定とを並行することは、双方のアドレス競合が回避されるということであり、例えば、前記転送元に対するリードアドレスのアドレス信号と前記転送先に対するライトアドレスのアドレス信号の伝達に用いる第１アドレス信号線と、前記バッファライトアドレスのアドレス信号と前記バッファリードアドレスのアドレス信号の伝達に用いる第２アドレス信号線とを別々に持つ。その第１の具体的な態様として、前記第１アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるバス（２Ａ）であり、前記第２アドレス信号線は前記ランダムアクセスメモリに接続するバッファ用アドレスバス（５０）である。この場合には、転送元アドレスと転送先アドレスはデータプロセッサの内外何れの組み合わせであってもよい。第２の具体的な態様として、前記第１アドレス信号線はデータ転送制御装置用アドレスバス（２６）であり、前記第２アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるアドレスバス（２Ａ）である。この場合には共通内部バス以外のバスに接続されている回路を転送元及び転送先の回路としなければならない。転送元又は転送先に対するアクセスアドレス信号とランダムアクセスメモリに対するバッファアクセスアドレス信号が共通内部バス上で競合するからである。
【００１７】
前記データ転送制御装置は、転送元から転送先へ複数回データ転送を行なうとき、転送元からデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能である。転送元や転送先の回路がバースト動作によるメモリ動作可能であれば、リードとライトを交互に行なわなくてもよく、データのブロック転送を効率化することができる。
【００１８】
前記データ転送制御装置は、前記データ転送制御におけるデータ転送の繰返し回数を中央処理装置によりプログラマブルに指定可能とする第１制御レジスタ手段（４０）、前記データ転送制御に利用するランダムアクセスメモリのエリアを中央処理装置によりプログラマブルに指定可能とする第２制御レジスタ手段（４１）を有することにより、データブロック転送の自由度が増す。
【００１９】
〔１−３〕更に具体的な一態様による本発明のデータプロセッサは、中央処理装置（３）と、データ転送制御装置（１０）と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリ（６）と、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路（９）と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バス（２）と、前記内部バスとは独立して前記バス制御回路と前記ランダムアクセスメモリを接続するバッファアドレスバス（５０）と、を１個の半導体チップに含む。前記データ転送制御装置は、カウンタ手段（３３）と、転送元及び転送先のアドレス信号を前記内部バスに出力する転送制御チャネル（３４）と、制御回路（３５）とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路にバッファアドレスバスを介するランダムアクセスメモリに対するアクセスを指示する。前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて前記バッファアドレスバスにバッファアドレス信号を出力して、転送元に対する前記内部バスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記内部バスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう。
【００２０】
更に具体的な他の態様による本発明のデータプロセッサは、中央処理装置と、データ転送制御装置と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリと、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バス（２）と、前記内部バスとは独立して前記バス制御回路と前記データ転送制御装置を接続するＤＭＡ用アドレスバス（２６）と、を１個の半導体チップに含む。前記データ転送制御装置は、カウンタ手段と、転送元及び転送先のアドレス信号を前記ＤＭＡ用アドレスバスに出力する転送制御チャネルと、制御回路とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路に内部バスを介するランダムアクセスメモリに対するアクセスを指示する。前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて内部バスにバッファアドレス信号を出力して、転送元に対する前記ＤＭＡ用アドレスバスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記ＤＭＡ用アドレスバスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう。
【００２１】
〔２〕本発明の別の観点によるデータプロセッサは、中央処理装置、データバッファを持つ周辺回路（１５）、及びデータ転送制御装置を有する。前記データ転送制御装置は前記周辺回路をデータ転送元とするデータ転送制御を行なうとき、前記周辺回路のバッファが保有するデータ数を確認して、そのデータ数を超えない範囲でデータ転送制御を行なう。
【００２２】
ＵＳＢインタフェースモジュールのように、そのＦＩＦＯバッファのエンプティー状態を超えてリードしようとすると、ＦＩＦＯバッファのアドレスポインタの値が破壊する虞のあるような周辺回路に着目したとき、上記手段を採用することにより、アドレスポインタ値が破壊する虞等を未然に防止することができる。
【００２３】
〔３〕本発明の更に別の観点によるデータプロセッサは、中央処理装置、及びデータ転送制御装置を有する。前記データ転送制御装置は、転送対象アドレスが奇数アドレスのとき、転送単位を最小のデータ数とし、転送対象アドレスが偶数アドレスのとき、転送対象アドレスが転送単位のアドレスインターバルに一致しない状態に応答して転送単位のデータ数を小さくする。更に同様の観点によるデータプロセッサは、中央処理装置、及びデータ転送制御装置を有し、前記データ転送制御装置は転送すべきデータ数を確認し、そのデータ数が転送単位のデータ数よりも小さくなったとき、データ転送の途中で、転送単位のデータ数の小さな転送単位に切換え制御する。
【００２４】
上記観点によるデータプロセッサによれば、転送対象アドレスが奇数アドレスのような中途半端なアドレスから始るとき、或は、転送すべきデータ個数が例えば奇数バイトのようなとき、全てのデータ転送を最小単位であるバイト単位で行なうことによってデータ転送効率が悪化する事態を阻止することができる。
【００２５】
〔４〕転送すべきデータ数が奇数個などのような半端に数になったときの別の対応とし、中央処理装置及びデータ転送制御装置を有するデータプロセッサにおいて、前記データ転送制御装置は転送すべき残りのデータ数が転送単位のデータ数よりも少ないことを判別して割り込みを要求し、前記中央処理装置はその割り込み要求に応答して、残りのデータ転送を、転送単位のデータ数が少ない転送単位に切換え制御する、という構成を採用してもよい。転送単位の切換え制御対象はデータ転送制御装置であってもよく、また、転送単位を切換えて中央処理装置が残りのデータ転送を制御してもよい。
【００２６】
【発明の実施の形態】
図２には本発明に係るデータプロセッサ１の全体が概略的に示される。同図に示されるデータプロセッサ１は、例えばＣＭＯＳ集積回路製造技術により単結晶シリコンのような１個の半導体基板（半導体チップ）に形成される。
【００２７】
データプロセッサ１は、内部バス２に接続された中央処理装置（ＣＰＵ）３、データトランスファコントローラ（ＤＴＣ）４、データ転送制御装置（ＤＭＡＣ）５、ＣＰＵ３の処理プログラムなどを格納するプログラムメモリであるリードオンリメモリ（ＲＯＭ）７、ＣＰＵ３の作業領域並びにデータの一時記憶に利用されるランダムアクセスメモリ（ＲＡＭ）６、除算器８、ダイナミックシフトユニット１１、及びバスコントローラ９を備える。前記バスコントローラ９には更に別のデータ転送制御装置（ＥＸＤＭＡＣ）１０接続される。
【００２８】
前記内部バス２はバスコントローラ９を介して周辺バス１２にインタフェースされ、周辺バス１２には、周辺回路として、前記割込みコントローラ１３、ウォッチドッグタイマ（ＷＤＴ）１４、ＵＳＢインタフェース回路１５、入出力ポート（ＰＲＴ）１６ａ〜１６ｎ、及びタイマカウンタ（ＴＭＲ）やシリアルコミュニケーションインタフェースコントローラ（ＳＣＩ）等のその他の周辺回路１７が接続される。データプロセッサ１はその他にクロック発生回路（ＣＰＧ）２０及びＰＬＬ回路等２１を有する。
【００２９】
前記内部バス２及び周辺バス１２は夫々、データバス、アドレスバス及びコントロールバス（制御信号バス）を含んでいる。前記周辺バス２は入出力ポート１６ａ〜１６ｃを介して外部バス２５とインタフェースされ、内部バス２はバスコントローラ９を介して周辺バス１２、更には前記入出力ポート１６ａ〜１６ｃを介して前記外部バス２５とインタフェース可能にされる。その他の入出力ポート１６ｄ〜１６ｎは周辺回路のための外部インタフェースバッファ等として機能される。
【００３０】
データプロセッサ１においてバスマスタモジュールは、前記ＣＰＵ３、ＤＴＣ４、ＤＭＡＣ５及びＥＸＤＭＡＣ１０である。前記ＣＰＵ３は、例えばＲＯＭ５から命令をフェッチし、取り込んだ命令を解読する命令制御部と、命令制御部による命令解読結果に従って汎用レジスタや算術論理演算器などを用いて演算処理を行なう実行部とを有する。ＤＭＡＣ５はＣＰＵ３により内部バス２を介してデータ転送条件が初期設定され、内蔵周辺回路などからのデータ転送要求に応答して、データ転送制御を行う。ＤＴＣ４は内蔵周辺回路などからのデータ転送要求に応答してデータ転送制御を行い、データ転送制御条件はＲＡＭ６などに格納されたポインタ構造の転送制御データを参照して取得する。前記ＥＸＤＭＡＣ１０は、特に制限されないが、データプロセッサ１の内外でメモリ間又はメモリと入出力回路間に行なうデータ転送、或はデータプロセッサ１の外部でメモリ間又はメモリと入出力回路間に行なうデータ転送を制御する回路として位置付けられる。データ転送制御条件はＣＰＵ３により内部バス２及び周辺バス１２を介して設定される。詳細は後述するが、ＥＸＤＭＡＣ１０によるデュアルアドレス転送制御にいおいて、転送元からのリードデータを一時的に蓄えるデータバッファとして前記ＲＡＭ６の一部が用いられる。要するに、ＥＸＤＭＡＣ１０は転送元からリードしたデータを内部に読み込むことを要しない。ＥＸＤＭＡＣ１０はデータ転送制御における転送元及び転送先を指定する為のアドレス信号はＤＭＡ専用アドレスバスとしてのアドレスバス２６からバスコントローラ９を経由して周辺バス１２や外部バス２５に伝達される。
【００３１】
データプロセッサ１にリセット信号が与えられると、ＣＰＵ３等のオンチップ回路モジュールはリセット状態とされる。このリセット信号によるリセット状態が解除されると、ＣＰＵ３は所定のスタートアドレスから命令をリードし、プログラムの実行を開始し、それに従って、例えば、ＲＡＭ６からデータをフェッチし、フェッチしたデータの演算処理を行い、処理結果に基づいて、ＵＳＢインタフェース回路１５を使用して外部との間のデータ入出力等を行って、各種の機器制御を行う。
【００３２】
図１にはＥＸＤＭＡＣ１０とバスコントローラ９の詳細が例示される。前記内部バス２として内部アドレスバス２Ａ及び内部データバス２Ｄが例示される。前記外部バス２５として外部アドレスバス２５Ａ及び外部データバス２５Ｄが例示され、そこには代表的に示された２個のＳＤＲＡＭ４５，４６が接続される。同図において周辺バス１２、入出力ポート１６ａ〜１６ｎ及びその他の一部の回路モジュールは図示が省略されている。
【００３３】
前記バスコントローラ９は、バスアービタ３０によりバスマスタモジュールであるＣＰＵ３、ＤＭＡＣ５、ＤＴＣ４、ＥＸＤＭＡＣ１０及び外部バスマスタとの間のバス権要求の競合に対する調停を行う。ＢＲＥＱ１、ＢＲＥＱ２、ＢＲＥＱ３はバス権要求信号、ＢＡＣＫ１，ＢＡＣＫ２，ＢＡＣＫ３，ＢＡＣＫ４はバス権承認信号である。外部バスマスタからのバス権要求信号及び承認信号は図示が省略されている。
【００３４】
前記バスアービタ３０は、ＣＰＵ３以外のバスマスタモジュール（ＤＴＣ４，ＤＭＡＣ５，ＥＸＤＭＡＣ１０）からのバス権要求信号（ＢＲＥＱ１、ＢＲＥＱ２，ＢＲＥＱ３）に対してバス権を選択的に与えるための調停を行う。バス権要求信号を出力したバスマスタモジュールは、バスアービタ３０からバス権承認信号（ＢＡＣＫ１、ＢＡＣＫ２，ＢＡＣＫ３の内の１つ）を受け、そして、バス権を取得してバスの使用を開始する。バスを使用していたバスマスタモジュールがバスの使用を終了した場合、上記バスアービタ３０は、それを監視して、上記ＣＰＵ３へバス権承認信号ＢＡＣＫ４を出力する。それによって、ＣＰＵ３がバス権を取得して、バスを利用したデータの処理を行う。このような制御は、バスアービタ３０が、ＣＰＵ３に優先的にバス権を与えることになるので、ＣＰＵ３による高速なデータ処理が可能となる。
【００３５】
一方、図示はされないが、バスーアービタ３０からＣＰＵ３に対してバス権要求信号を出力するように構成できる。この場合、チップ内に、ＣＰＵ３以外に他の中央処理装置（ＣＰＵ）が存在するようなマルチＣＰＵ構成の場合に有効である。すなわち、他の中央処理装置がバスアービタ３０に対してバス権要求信号を出力した場合、上記バスアービタ３０がＣＰＵ３にバス要求信号を出力して、ＣＰＵ３からバス権を解放させる。その後、上記バスアービタ３０が他の中央処理装置にバス権承認信号を出力してバス権を与える。他の中央処理装置のデータ処理が完了した場合、バスーアービタ３０はＣＰＵ３にバス権承認信号ＢＡＣＫ４を出力する。それによって、バス権がＣＰＵ３に戻される。この場合、他の中央処理装置にも選択的にバス権を与えることができるので、ＣＰＵ３のデータ処理と他の中央処理装置のデータ処理とを効率よく制御することができる。
【００３６】
調停により、バス権が与えられたバスマスタモジュールはアドレス信号やアクセス制御信号などのバスコマンドを出力する。バスコントローラ９はそのバスコマンドの内容に基づいて、アクセスサイクル数及びデータ幅等を決定してバスアクセス制御及びメモリアクセス制御等を行なう。前記バスアクセス制御及びメモリアクセス制御等のために、アドレスエリア毎にマッピングされるデバイスのアクセスデータサイズ及びアクセス速度の情報等がパワーオンリセット直後にＣＰＵ３により初期設定されており、内部アドレスバス２Ａ等から供給されるアクセスアドレスのエリアに応じて外部バス等に対するバス制御（デバイスアドレスの出力、データアクセスサイズ、ウェイトステート挿入等）を行う。
【００３７】
図１ではメモリアクセス制御を行なう回路として前記ＲＡＭ６に対するメモリアクセス制御回路３１が代表的に示される。メモリアクセス制御回路３１はバス権が承認された回路からのアクセス要求に応答して、ＲＡＭをアクセス制御する制御信号として、モジュール選択信号ＭＳｒ、アクセスサイズ信号ＡＳＺｒ、リード信号ＲＤｒ、及びライト信号ＷＴｒをＲＡＭ６に出力する。アドレス信号はアドレスバス２Ａを介して供給され、データはデータバス２Ｄに伝達される。
【００３８】
前記ＥＸＤＭＡＣ１０は、カウンタ３３、転送元と転送先のアドレス信号を前記ＤＭＡ専用アドレスバス２６に出力する転送制御チャネル３４、転送制御回路３５、及び制御レジスタ部３６とを有する。
【００３９】
制御レジスタ部３６は各種データ転送制御条件がＣＰＵ３によってプログラマブルに指定可能にされ、データブロック転送における転送回数が指定される転送回数レジスタ４０、ＲＡＭの複数エリアをエリア毎に内蔵メモリとして或はＥＸＤＭＡＣのデータバッファの何れとして利用するかが指定されるＲＡＭエリアコントロールレジスタ（ＲＡＭＡＣＲ）４１、ソーススタートアドレスレジスタ４２、及びディスティネーションスタートアドレスレジスタ４３等を有する。前記ＲＡＭエリアコントロールレジスタ４１は図３のレジスタフォーマットを有し、８ビットの制御情報ＲＡＭ０ＳＥＬ〜ＲＡＭ７ＳＥＬを有する。ＲＡＭの記憶容量が８Ｋバイトのとき、８ビットの制御情報ＲＡＭ０ＳＥＬ〜ＲＡＭ７ＳＥＬの夫々は、図４に例示されるように論理値“０”で対応するＲＡＭの１Ｋバイトエリアを内蔵ＲＡＭとして利用し、論理値“１”で対応するＲＡＭの１ＫバイトエリアをＥＸＤＭＡＣのデータバッファとして利用することを意味する。これにより、ＥＸＤＭＡＣのデータバッファとして利用可能なＲＡＭエリアの容量と配置はプログラマブルになる。
【００４０】
前記転送制御チャンネル３４は、夫々図示を省略する転送元アドレス（ソースアドレス）を指定するソースアドレスレジスタ、転送先アドレス（ディスティネーションアドレス）を指定するディスティネーションアドレスレジスタ、転送回数を計数する転送回数レジスタ、及びアドレス加算器等を有する。ソースアドレス（ディスティネーションアドレス）の初期値は周辺バス１２を介してＣＰＵ３により初期設定され、初期値のインクリメントは、前記加算器で直前のソースアドレス（又はディスティネーションアドレス）に前記カウンタ３０の計数値を加算することによって行われる。ソースアドレス（ディスティネーションアドレス）の初期値はＣＰＵ３によって制御レジスタ部３６のスタートアドレスレジスタに設定されてからソースアドレスレジスタ（ディスティネーションアドレスレジスタ）にロードされてもよい。
【００４１】
前記転送制御回路３５は、バスアービタ３０にバス権要求信号ＢＲＥＱ１をアサートし、それに応答してバス権承認信号ＢＡＣＫ１がアサートされることにより、バス権を獲得して、データ転送制御を開始する。これによりデータのブロック転送を行なうとき、前記転送制御回路３５は、転送制御チャネル３４に転送元及び転送先に対するアクセスアドレスを指定させ、これに並行してメモリアクセス制御回路３１にＲＡＭ６をデータバッファとして動作させ、転送元に対するデータリードに並行してそのリードデータを順次ＲＡＭ６にライトさせ、ＲＡＭ６にライトされたデータを順次リードして転送先に対するデータライトを実行させる。
【００４２】
即ち、上記データのブロック転送を制御するとき、転送制御回路３５は、転送制御チャネル３４によるアクセス動作に並行して、メモリアクセス制御回路３１にデータバッファイネーブル信号ＢＥＮをアサートして、内部バス２を経由してＲＡＭ６をバッファ動作させる指示を与える。ＲＡＭ６をどれだけバッファとして使用するかはバッファエリア情報ＢＥＲで指定される。バッファエリア情報ＢＥＲは、特に制限されないが、ＲＡＭエリアコントロールレジスタ４１の制御情報ＲＡＭ０ＳＥＬ〜ＲＡＭ７ＳＥＬとされる。バッファエリア情報ＢＥＲで指定されるエリアに対するアドレス指定はカウンタ３３の出力がバッファアドレスＢＡＤＲＳとしてメモリアクセス制御回路３１に与えられる。バッファとしてのＲＡＭアクセスに対するアクセスの種類は、バッファリード信号ＢＲＤ、バッファライト信号ＢＷＴ、バッファアクセスサイズ信号ＢＡＳＺによりメモリアクセス制御回路３１に与えられる。メモリアクセス制御回路３１は、転送制御回路３５から入力された前記バッファ制御信号ＢＥＲ，ＢＥＮ，ＢＷＴ，ＢＲＤを認識し、其れに応答してＲＡＭ６に前記メモリ制御信号ＭＳｒ，ＡＳＺｒ，ＲＤｒ，ＷＴｒを出力し、転送元及び転送先に対するアクセス制御に並行してＲＡＭ６をデータバッファとして動作させる。
【００４３】
例えば、転送制御チャネル３４を介して転送制御回路３５が転送元に対するリード動作を行なうとき、これに並行して転送制御回路３５は、転送元から内部データバス２Ｄを介してデータをリードする毎に、ＲＡＭ６をデータバッファとしてライと動作させる指示をメモリアクセス制御回路３１に与えて、繰返しリードデータをＲＡＭ６に格納させる。ＲＡＭ６に対するアドレス指定は、転送元に対するソースアドレスを更新するときに加算されるカウンタ３３のインクリメント又はディクリメントによる計数値をバッファアドレス信号ＢＡＤＲＳとして用いることにより同期される。メモリアクセス制御回路３１は、バッファエリア情報ＢＥＲで指定されるエリアの先頭アドレスを起点に、バッファアドレス信号ＢＡＤＲＳの値を順次加算することで、ＲＡＭ６に指定されたバッファエリアに対するアクセスアドレス信号をアドレスバス２Ａに出力させることができる。転送元に対するリード動作を所定回数行なった後、転送制御チャネル３４を介して転送制御回路３５が転送先に対するライト動作を行なうとき、これに並行して転送制御回路３５は、ＲＡＭ６のバッファ領域に格納されたデータを順次リードし、ライトすべきデータをデータバス２Ｄに出力させる。ＲＡＭ６に対するアクセスをリードからライトアクセスに切換えるときは、カウンタ３３は初期値に戻される。ＲＡＭ６に対するアドレス指定は、転送先に対するディスティネーションアドレスを更新するときに加算されるカウンタ３３のインクリメント又はディクリメントによる計数値をバッファアドレス信号ＢＡＤＲＳとして用いることにより同期される。メモリアクセス制御回路３１は、バッファエリア情報ＢＥＲで指定されるエリアの先頭アドレスを起点に、バッファアドレス信号ＢＡＤＲＳの値を順次加算することで、ＲＡＭ６に指定されたバッファエリアに対するアクセスアドレス信号をアドレスバス２Ａに出力させる。
【００４４】
図５にはＥＸＤＭＡＣ１０によるデータブロック転送制御によるアドレス信号とデータの流れが例示される。ここでは転送元をＳＤＲＡＭ４５、転送先をＳＤＲＡＭ４６とする。ＳＤＲＡＭ４５の転送元データはＤ０〜Ｄｎとされる。ＳＤＲＡＭ４５に対するソースリードアドレス信号はＳＡ０〜ＳＡｎであり、ＳＤＲＡＭ４６に対するディスティネーションアドレス信号はＤＡ０〜ＤＡｎである。ＲＡＭ６のデータバッファエリア６ＢＵＦに対するバッファアクセスアドレス信号はｂｕｆ０〜ｂｕｆｎであり、リードとライトで共通である。
【００４５】
前記ＲＡＭ６上におけるデータバッファエリア６ＢＵＦの大きさと配置は前記制御情報ＲＡＭ０ＳＥＬ〜ＲＡＭ７ＳＥＬの値によってプログラマブルに決定される。ＣＰＵ３のワーク領域と競合しない範囲でそのエリアと大きさを決定すればよい。データバッファが比較的大きければ、ブロックデータの転送に際して、転送元に対するリードの繰返し回数と転送先に対するライトの繰返し回数を最大限に多くすることができる。
【００４６】
図６には図５に例示されるデータブロック転送の動作タイミングが例示される。転送元に対するリード動作においてアドレスバス２Ａへのソースアドレス信号ＳＡ０〜ＳＡｎの出力とアドレスバス２６へのデータバッファエリア６ＢＵＦのライトアドレス信号ｂｕｆ０〜ｂｕｆｎの出力が並列化され、順次連続的にＲＡＭ６のデータバッファエリア６ＢＵＦに転送元からのリードデータＤ０〜Ｄｎが格納される。このとき、先頭のソースアドレスＳＡ０はＳＤＲＡＭ４５に対して実質的にローアドレスとカラムアドレスを指定し、後続のソースアドレスＳＡ１〜ＳＡｎはＳＤＲＡＭ４５に対して先頭と同一のローアドレスに対して実質的にカラムアドレスが相違されたアドレス信号とされる。したがって、ＳＤＲＡＭ４５は第２番目以降のソースアドレスに対するソースデータのリードアクセスではワード線選択の為の動作を要せず、先頭よりも短いサイクルで順次データのリードを繰返し行なうことができる。書き込みも同様であり、先頭のディスティネーションアドレスＤＡ０はＳＤＲＡＭ４６に対して実質的にローアドレスとカラムアドレスを指定し、後続のディスティネーションアドレスＤＡ１〜ＤＡｎはＳＤＲＡＭ４６に対して先頭と同一のローアドレスに対して実質的にカラムアドレスが相違されたアドレス信号とされる。したがって、ＳＤＲＡＭ４６は第２番目以降のディスティネーションアドレスに対するデータのライトアクセスではワード線選択の為の動作を要せず、先頭よりも短いサイクルで順次データのライトを繰返し行なうことができる。そのような短いサイクルによる転送元のリード動作と転送先のライト動作は、データバッファエリア６ＢＵＦの記憶容量が許す範囲で、転送回数を上限に連続させるのが、最も効率的である。この意味において、データバッファエリア６ＢＵＦの記憶容量はプログラマブルであるから、データプロセッサの適用システムに応じてデータバッファエリアに最適な記憶容量を設定することができるという、自由度が保証される。
【００４７】
図７には本発明に係るデータプロセッサの第２の例が示される。同図に示されるデータプロセッサ１Ａは、図１及び図２の構成に対し、転送制御チャネル３４はアクセスアドレス信号を内部バス２Ａに出力し、ＲＡＭ６のデータバッファエリア６ＢＵＦに対するアクセスアドレス信号はメモリ制御回路３１からバッファアクセス専用のアドレスバス（バッファアドレスバス）５０を介してＲＡＭ６に供給するように構成される点が相違される。要するに、ソースアドレス信号及びディスティネーションアドレス信号、更にはバッファアドレス信号の生成手法は図１の場合と同じであり、アドレス信号をＲＡＭ６に供給する経路が相違される。この例では、ＲＡＭ６はアドレス入力ポートを２個持っており、双方のアドレス入力ポートを並列に用いることはないから、排他的に何れか一方のアドレス入力ポートを内部に接続する入力選択回路を持てば良い。前記モジュール選択信号を２ビット用意し、その１ビットにアドレス入力ポートの選択機能を割当てればよい。データバッファイネーブル信号ＢＥＮによりバッファイネーブルが指示されたときメモリアクセス制御回路３１はアドレスバス５０からのアドレス入力を選択すればよい。その他の構成は図１と同様でありその詳細な説明は省略する。
【００４８】
図７のデータプロセッサ１Ａによれば、転送制御回路３５はデータのブロック転送を制御するとき、前記カウンタ３３の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バスコントローラ９にバッファアドレスバス５０を介するＲＡＭに対するアクセスを指示する。この指示を受けるバスコントローラ９のメモリ制御回路３１は、前記カウンタ３３の計数値を用いて前記バッファアドレスバス５０にバッファアドレス信号を出力して、転送元に対する前記内部バス２を用いたリード転送制御に並行して転送元からのリードデータを前記ＲＡＭ６のデータバッファエリア６ＢＵＦにライトする。更に、転送先に対する前記内部バス２を用いたライト転送制御に並行して転送先にライトすべきデータを前記データバッファエリア６ＢＵＦからデータバス２Ｄに出力させるバス制御を行なう。これにより、データブロック転送に際して図１のデータプロセッサ１と同様の効果を得ることができる。
【００４９】
図８には図１のデータプロセッサにおけるＥＸＤＭＡＣ１０とＵＳＢインタフェース回路１５との関係に着目した詳細が例示される。
【００５０】
前記ＵＳＢインタフェース回路１５はＦＩＦＯバッファ６０、ホストインタフェース回路６１、制御レジスタ６２、及びインタフェース制御回路６３を有する。ホストインタフェース回路６１はホスト装置６５との間におけるシリアルデータ入出力を制御する。入出力すべきデータはＦＩＦＯバッファ６０に一時的に蓄える。ＦＩＦＯバッファ６０のアクセス制御はバッファポインタ６６で行なう。バッファポインタ６６はリングカウンタとしてのリードアドレスポインタ及びライトアドレスポインタを有し、ＦＩＦＯ形式でデータリードとライトを行なう。インタフェース制御回路６３は内部バス６３とＥＸＤＭＡＣ１０に接続され、アドレスバス２Ａからのバスコマンドに応答して内部バス２との間でデータを入出力する際に、ＥＸＤＭＡＣ１０にデータ転送リクエスト信号ＤＲＥＱによりデータ転送を要求し、転送アクノリッジ信号ＤＡＣＫによる転送リクエストの承認を待って、入出力すべきデータをデータバス２Ｄに出力し又はデータバス２Ｄから入力する。ＥＸＤＭＡＣ１０はデータ転送リクエスト信号ＤＲＥＱによるデータ転送要求があると、バスコントローラ９にバス権用要求信号ＢＲＥＱ１によりバス権を要求し、バス権承認信号ＢＡＣＫ１にてバス権が与えられるのを待って、前記転送アクノリッジ信号ＤＡＣＫにより転送リクエストに対して承認する。ＥＸＤＭＡＣ１０はＵＳＢインタフェース回路１５に転送リクエストを承認すると、その転送リクエストに応答する転送アドレス信号を転送制御チャネル３４からバスコントローラ９に出力し、例えばＳＤＲＡＭ４５からＵＳＢインタフェース回路１５へ、或はその逆のデータ転送が開始される。このとき前述の如く、ＲＡＭ６の一部（データバッファエリア６ＢＵＦ）はＥＸＤＭＡＣ１０のデータバッファとして利用されることは前述の通りであり、その詳細についての説明は省略する。
【００５１】
ここで、前記ＥＸＤＭＡＣ１０は、ＵＳＢインタフェース回路１５をデータ転送元とするデータ転送制御を行なうとき、ＵＳＢインタフェース回路１５のＦＩＦＯバッファ６０が保有するデータ数を確認して、そのデータ数を超えない範囲でデータ転送制御を行なう。ここでデータ数とは、ＦＩＦＯバッファにおいてはデータのアクセス最小単位の倍数を意味し、ＥＸＤＭＡＣ１０においてはデータ転送最小単位に対する倍数即ち転送回数を意味する。以下の説明ではＥＸＤＭＡＣ１０におけるデータ転送単位はＦＩＦＯバッファにおけるデータのアクセス単位に等しいものとする。例えば前記転送単位とアクセス単位を転送最小単位及びアクセス最小単位であるバイト単位で把握し、前記データ数と転送回数は等しいものとして説明を行なう。例えば、転送制御回路３５の比較選択回路６７は、バッファポインタ６６により管理されているＦＩＦＯバッファ６０の記憶データ数と転送回数レジスタ４０の設定値を比較し、後者が前者を超える場合には前者を、それ以外の場合には後者をカウンタ３３の初期値としてプリセットする。転送制御回路３５はプリセットされた回数だけデータ転送を繰返すように制御する。
【００５２】
図９にはＵＳＢインタフェース回路からＳＤＲＡＭへのデータブロック転送の動作タイミングが例示される。バッファポインタ６６から得られるバッファ記憶データ数は“ｎ”、レジスタ４０に設定された転送回数の初期値は“ｎ＋α”とされる。比較選択回路６７が双方を比較し、カウンタ３３への初期値として“ｎ”をロードする。ＥＸＤＭＡＣ１０は転送元であるＵＳＢインタフェース回路１５に当該モジュールの選択を意味するアドレス信号ＥＰ１を供給し、それによってデータバス２Ｄに、ＦＩＦＯバッファ６０から順次データを出力させる。出力されたｎ個のデータＤ０〜Ｄｎ−１は前述のようにしてＲＡＭ６のデータバッファエリア６ＢＵＦに一時的に蓄えられる。結果として、ＦＩＦＯバッファに対するリード動作は其れが保持するデータ数を超えない。従って、ＵＳＢインタフェースモジュールのように、そのＦＩＦＯバッファのエンプティー状態を超えてリードしようとすると、ＦＩＦＯバッファのアドレスポインタの値が破壊する虞のあるような周辺回路において、アドレスポインタ値が破壊する虞等を未然に防止することができる。次に、ＥＸＤＭＡＣ１０は転送先であるＳＤＲＡＭ４５にディスティネーションアドレス信号ＤＡ０〜ＤＡｎ−１を供給するのと並行してＲＡＭ６のデータバッファエリア６ＢＵＦから前記データＤ０〜Ｄｎ−１をリードてデータバス２Ｄに乗せ、これによってデータＤ０〜Ｄｎ−１がＳＤＲＡＭ４５に格納される。
【００５３】
また、図８のＥＸＤＭＡＣ１０において、転送制御回路３５は、ＦＩＦＯバッファ６０が保有するデータ数に代表される転送すべきデータ数を確認して、そのデータ数がデータ転送単位よりも少なくなったとき、データ転送の途中で、転送単位のデータ数の少ない方の転送単位に切換え制御する。データ数の確認はバッファポインタ６６の値から、或はカウンタ３３の計数値に基づいて行なえばよい。転送単位は例えばロングワード（３２ビット）、ワード（１６ビット）、バイト（８ビット）である。転送単位を切換えると、カウンタ３３のインクリメント数、転送データのサイズ、ＲＡＭ６のデータバッファエリア６ＢＵＦに対するアクセスサイズなどが変更になる。
【００５４】
図１０には転送途中で転送単位を切換えてＵＳＢインタフェース回路からＳＤＲＡＭへデータブロック転送を行なうときの動作タイミングが例示される。バッファポインタ６６から得られるバッファ記憶データ数は“９”、レジスタ４０に設定された転送回数の初期値は“１２”とされる。比較選択回路６７が双方を比較し、カウンタ３３への初期値として“９”をロードする。ＥＸＤＭＡＣ１０は転送元であるＵＳＢインタフェース回路１５に当該モジュールの選択を意味するアドレス信号ＥＰ１を供給し、それによってデータバス２Ｄに、ＦＩＦＯバッファ６０から順次データを出力させる。転送サイズの初期値はロングワードである。転送制御回路３５は最初にロングワードデータＤ０１２３、次にロングワードデータＤ４５６７をデータバス２Ｄに出力させる。この時点でのＦＩＦＯバッファ６０の残りデータはＤ８の１個であり、転送制御回路３５がＦＩＦＯバッファ６０が保有するデータが転送単位（ロングワード）よりも小さくなったことを検出すると、其れに応じて、最後の転送単位のデータ数をバイトとして、当該データＤ８をデータバス２Ｄに出力する。順次出力されたデータＤ０１２３、Ｄ４５６７、Ｄ８は前述の通り順次ＲＡＭ６のデータバッファエリア６ＢＵＦに格納される。
【００５５】
転送先へのデータ転送制御では、最初の転送先アドレスは偶数アドレスＤＡ０である。従って、データ転送サイズは初期値のロングワードとされ、ＲＡＭ６から順次ロングワードデータＤ０１２３，Ｄ４５６７がデータバス２Ｄに出力され、転送先にライトされる。転送制御回路３５は転送すべきデータ数が転送単位であるロングワードよりも小さくなったことを検出すると、それに応じて、最後の転送単位のデータ数をバイトとして、当該データＤ８をＲＡＭ６からデータバス２Ｄに出力する。上述の如く、上記データ転送では転送元はメモリではなくＵＳＢのような入出力回路であるから転送元アドレスに対する偶奇の制御は不意用であるが、転送先はＳＤＲＡＭのようなメモリであるから転送先アドレスに対する偶奇を考慮している。
【００５６】
これにより、転送すべきデータ個数が例えば奇数バイトのようなとき、全てのデータ転送を最小単位であるバイト単位で行なうことを要せず、データ転送効率が悪化する事態を阻止することができる。
【００５７】
図１１には転送途中で転送単位を切換えてＵＳＢインタフェース回路からＳＤＲＡＭへデータブロック転送を行なうときの別の動作タイミングが例示される。図１１の例は、図１０に対して転送先アドレスが奇数アドレスから始っている点が相違する。転送元であるＵＳＢからのリード動作は図１０と同様であり、ロングワード、ロングワード、バイトの順にデータ転送単位が切換えられて、データＤ９〜Ｄ１７がＲＡＭ６のデータバッファエリア６ＢＵＦに一時的に蓄積される。
【００５８】
転送先へのデータ転送制御では、最初の転送先アドレスは奇数アドレスＤＡ９である。転送単位の初期値はロングワードである。データ転送制御回路３５は、転送対象アドレスが奇数アドレスであるから転送単位を最小のデータ数とし、転送先への最初の転送はバイトデータＤ９に対して行なう。この時点で次の転送先アドレスはＤＡ１０で偶数アドレスであるが、転送単位であるロングワードのアドレスインターバルに一致していない。即ち、そのアドレスインターバルに一致するアドレスはＤＡ０，ＤＡ４，ＤＡ８，ＤＡ１２等の４の倍数のアドレスである。これにより、データ転送制御回路３５は、その転送先アドレスに応じて転送単位のデータ数をワードに変更して、次の転送先アドレスＤＡ１０にワードデータをＤ１０−１１（Ｄ１０、Ｄ１１）を転送する。この次の転送先アドレスはＤＡ１２となり、偶数アドレスで且つ転送単位であるロングワードのアドレスインターバルに一致する。よって、データ転送制御回路３５は、今度は、転送単位のデータ数をロングワードに変更して、当該次の転送先アドレスＤＡ１２にロングワードデータをＤ１２−１５を転送する。最後はデータ数が“２”であるから、転送単位のデータ数をワードに変更し、最後の転送先アドレスＤＡ１６にワードデータをＤ１６−１７を転送する。
【００５９】
これにより、転送すべきデータ個数が例えば奇数バイトであって、転送先アドレスも奇数アドレスから始るようなときでも、全てのデータ転送を最小単位であるバイト単位で行なわずに済み、高いデータ転送効率を実現することが可能になる。
【００６０】
図１２にはブロックデータのメモリ間転送の例が示される。転送サイズ初期値はロングワードである。転送回数初期値は７、データブロックサイズは８であり、例えば転送回数初期値が優先され、カウンタ３３の初期値とされる。転送元アドドレスは偶数アドレスＳＡ０を起点とし、転送制御回路３５により、最初はロングワードでリードが行われ、残りデータ数に応じて、転送単位が順次ワード、バイトに変化される。転送元からのリードデータは前述と同様に準じＲＡＭ６のデータバッファエリア６ＢＵＦに一時的に蓄積される。転送先の先頭アドレスも偶数アドレスＤＡ０であり、転送制御回路３５により、ＲＡＭ６が一時的に保有する転送すべきデータは、最初はロングワードで転送先に転送され、残りデータ数に応じて、転送単位が順次ワード、バイトに変化される。
【００６１】
特にこの例では、データ転送単位を変更するとき、データ転送制御回路３５はＣＰＵ３に割込み信号ＩＲＱを出力することが可能である。前記制御レジスタ３６に割込みイネーブルビット（図示せず）が設けられ、セット状態のときに、前記割込み信号ＩＲＱを出力することができる。実際には割り込み信号ＩＲＱは割り込みコントローラ１３を介する。これによってＣＰＵ３は、割り込み処理プログラムで規定される処理を行なうことができる。例えば、データ転送単位を変更する為に、ＥＸＤＭＡＣ１０に対するデータ転送制御条件を設定変更する必要がある場合には、ＣＰＵ３がそれを行なうことができる。今までの説明ではそのような設定変更は転送制御回路３５の制御論理で行なっていた。このような制御をＣＰＵ３に任せることも可能であるということである。その場合には、バス権の移動、ＣＰＵ３の命令実行順序変更に伴う状態保存などの付帯処理が必要になることから、図１２に示すタイミングチャートにおいて、リードサイクル及びライトサイクルに前記付帯処理のためのサイクル（図示せず）が介在されることになる。更に、図示は省略するが、転送単位を変更するときＣＰＵ３が割り込みを受付けたとき、それ以降のデータ転送をＣＰＵ３が制御する選択も可能である。例えば、ＣＰＵ３は、必要なデータ転送制御情報をＥＸＤＭＡＣ１０等から取得し、続きのデータ転送をバイト単位で継続する。途中でデータ転送単位を変更すべき事象の発生が例外的であると位置付ける処理もしくはシステムにおいては、そのような事象の発生に応答してＣＰＵ３がエラー処理若しくは例外処理を行なうことを要する場合も想定される。このような場合にも対応可能になる。
【００６２】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６３】
例えば、データプロセッサが内蔵する回路モジュールは図２に限定されず適宜変更可能である。また、データプロセッサは複数のデータ転送制御装置を内蔵する構成に制限されない。本発明に係るデータ転送制御装置はデータプロセッサ内部の回路モジュール間のデータ転送も制御する機能を備えることは妨げられない。
【００６４】
本発明に係るデータプロセッサが備えるデータ転送制御装置は上記ＥＸＤＭＡＣと称した構成及びその称呼に限定されず適宜変更可能である。また、図３及び図４に基づいて説明したＲＡＭの容量及びＲＡＭエリアコントロールレジスタ４１のサイズは一例であり適宜変更可能である。
【００６５】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータのようなデータプロセッサに適用した場合について説明したが本発明はそれに限定されず、ＣＰＵやデータ転送制御装置等を含むシステムオンチップ形態の特定用途向けのデータプロセッサなどにも広く適用することができる。データプロセッサの語はマイクロコンピュータ、マイクロプロセッサ、或はデータ処理装置等と同義である。
【００６６】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００６７】
すなわち、物理的な回路規模を殆ど増やすこと無くブロックデータの転送効率を向上させることができる。
【００６８】
ＤＭＡＣによる連続データ転送回数と周辺回路が許容する連続データ転送回数との矛盾を解消させることができる。
【００６９】
転送すべきデータ数と転送単位との間の矛盾への対応、更には奇数アドレスを転送先とするデータ転送への対応が可能になる。
【図面の簡単な説明】
【図１】本発明に係るデータプロセッサのＥＸＤＭＡＣとバスコントローラの詳細がを例示するブロック図である。
【図２】本発明に係るデータプロセッサの全体を概略的に例示するブロック図である。
【図３】ＲＡＭエリアコントロールレジスタのレジスタフォーマット図である。
【図４】ＥＸＤＭＡＣのデータバッファとして利用可能なＲＡＭエリアの容量と配置を例示する説明図である。
【図５】ＥＸＤＭＡＣによるデータブロック転送制御によるアドレス信号とデータの流れを例示するブロック図である。
【図６】図５に例示されるデータブロック転送の動作タイミングを例示するタイミングチャートである。
【図７】本発明に係るデータプロセッサの第２の例を示すブロック図である。
【図８】図１のデータプロセッサにおけるＥＸＤＭＡＣとＵＳＢインタフェース回路との関係に着目した詳細を例示するブロック図である。
【図９】ＵＳＢインタフェース回路からＳＤＲＡＭへのデータブロック転送の動作タイミングを例示するタイミングチャートである。
【図１０】転送途中で転送単位を切換えてＵＳＢインタフェース回路からＳＤＲＡＭへデータブロック転送を行なうときの動作タイミングを例示するタイミングチャートである。
【図１１】転送途中で転送単位を切換えてＵＳＢインタフェース回路からＳＤＲＡＭへデータブロック転送を行なうときの別の動作タイミングを例示するタイミングチャートである。
【図１２】ブロックデータのメモリ間転送を動作を例示するタイミングチャートである。
【符号の説明】
１，１Ａ　データプロセッサ
２　内部バス
２Ａ　アドレスバス
２Ｄ　データバス
３　中央処理装置（ＣＰＵ）
６　ランダムアクセスメモリ（ＲＡＭ）
９　バスコントローラ
１０　データ転送制御装置（ＥＸＤＭＡＣ）
１２　周辺バス
１５　ＵＳＢインタフェース回路
２５　外部バス
２６　ＤＭＡ専用アドレスバス
３０　バスアービタ
３１　メモリアクセス制御回路
３３　カウンタ
３４　転送制御チャネル
３５　転送制御回路
３６　制御レジスタ部
４０　転送回数レジスタ
４１　ＲＡＭエリアコントロールレジスタ
ＢＥＮ　データバッファイネーブル信号
ＢＥＲ　バッファエリア情報
ＢＡＤＲＳ　バッファアドレス
ＳＡ０〜ＳＡｎ　ソースアドレス信号
ＤＡ０〜ＤＡｎ　ディスティネーションアドレス信号
Ｄ０〜Ｄｎ　転送データ
ｂｕｆ０〜ｂｕｆｎ　バッファアクセスアドレス信号
５０　バッファアドレスバス
６０　ＦＩＦＯバッファ
６１　ホストインタフェース回路
６３　インタフェース制御回路
６６　バッファポインタ
６７　比較選択回路
ＩＲＱ　割り込み信号
【図１】
2004029898.tif 000003
【図２】
2004029898.tif 000004
【図３】
2004029898.tif 000005
【図４】
2004029898.tif 000006
【図５】
2004029898.tif 000007
【図６】
2004029898.tif 000008
【図７】
2004029898.tif 000009
【図８】
2004029898.tif 000010
【図９】
2004029898.tif 000011
【図１０】
2004029898.tif 000012
【図１１】
2004029898.tif 000013
【図１２】
2004029898.tif 000014