(57)【要約】【課題】データ転送前と転送後で転送元アドレスと転送先アドレスが同一の場合には、転送情報を転送情報配置領域に書き戻さないことによりデータ転送の高速化を図る。【解決手段】データ転送要因毎の転送情報先頭アドレスを保持する転送情報先頭アドレスレジスタと、前記転送情報先頭アドレスの位置に格納された転送情報を保持する転送情報レジスタと、前記転送情報レジスタの値を演算する演算回路と、前記演算回路を制御する演算量判定手段と、転送データを保持するデータレジスタと、マイコンの内部バスとのインターフェースを制御する内部バス制御手段とを有し、前記演算量判定結果を用いデータ転送後のアドレスを書き戻すか否かを判定し、書き戻す必要のないときは転送情報レジスタの転送元アドレスおよび転送先アドレスをメモリに書き戻すサイクルを行わない。【選択図】図１
2004021401.tif 000002
【特許請求の範囲】
【請求項１】
データ転送要因毎の転送情報先頭アドレスを保持する転送情報先頭アドレスレジスタと、前記転送情報先頭アドレスの位置に格納された転送情報を保持する転送情報レジスタと、前記転送情報レジスタの値を演算する演算回路と、前記演算回路を制御する演算量判定手段と、転送データを保持するデータレジスタと、マイコンの内部バスとのインターフェースを制御する内部バス制御手段とを有するとともに、転送元アドレスの演算が行われないときにはデータ転送後の転送元アドレスを書き戻すサイクルを、転送先アドレスの演算が行われないときにはデータ転送後の転送先アドレスを書き戻すサイクルを、それぞれ、行わないことを特徴とするデータ転送装置。
【請求項２】
データ転送要因毎の転送情報先頭アドレスを保持する転送情報先頭アドレスレジスタと、前記転送情報先頭アドレスの位置に格納された転送情報を保持する転送情報レジスタと、前記転送情報レジスタの値を演算する演算回路と、前記演算回路を制御する演算量判定手段と、転送データを保持するデータレジスタと、マイコンの内部バスとのインターフェースを制御する内部バス制御手段および前回のデータ転送要因と今回のデータ転送要因を比較する比較手段を有するとともに、前記比較結果が一致したとき前記転送情報先頭アドレスと前記転送情報の読み込みをスキップし前記転送情報レジスタの値を利用して転送処理を行うことを特徴とするデータ転送装置。
【請求項３】
中央処理装置とデータ転送装置が同一チップ上に集積されている請求項２記載のデータ転送装置。
【請求項４】
前記比較を抑止する手段を有し、前記中央処理装置が前記比較を禁止する信号を与えたときは、前回のデータ転送要因と今回のデータ転送要因を比較する比較手段の出力を抑止する請求項３記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送装置に係り、特に、複数の周辺処理装置から多数の割込み要求が発生し、その割込み要求によってデータ転送を行う場合、割込み要因毎の転送情報をメモリから読み込み、データ転送を行い、更新した転送情報をメモリに書き戻す手段を備えたデータ転送装置で、かつデータ転送サイクル数の低減を可能にする手段を備えたデータ転送処理装置に関する。
【０００２】
【従来の技術】
従来のデータ転送装置にあっては、特開平１−１２５６４４号において多数のデータ転送要求がある場合でも、少ないハードウエアでデータ転送を行うことができるデータ転送装置（ＤＴＣ：データトランスファコントローラ）が公知である。この従来例においては、少ないハードウエアでデータ転送を実現することが主題であり、データ転送のサイクル数を低減させるためのハードウエアについての配慮はなく、本来必要でないデータ転送のサイクルも行う設計になっていた。
【０００３】
近年、プリンタ機器などに搭載されるインターフェースの高速化が著しく、データ転送装置においてはデータ転送のサイクル数を低減する必要があった。
【０００４】
特開平１−１２５６４４号で提案された従来のデータ転送装置にあっては、今回転送しようとする転送要因が前回のものと同一であっても、前回用いた転送情報を利用することなく、今回のデータ転送情報を改めて始めから取得する構成となっている。そのため、データ転送の高速化といった面で、本来必要のない時間を費やすという問題に着目して、転送しようとするデータの転送要因が前回と今回とで同じ場合には、前回用いた既知の転送情報を再利用することによりデータ転送の高速化を図るように工夫されたデータ転送装置が特開２００１−１６００２５号で提案されている。
【０００５】
【発明が解決しようとする課題】
これらの従来のデータ転送装置にあっては、データ転送前とデータ転送後の転送元アドレスおよび転送先アドレスの値が同一であっても、転送情報の書き戻しを行う構成となっているため、本来必要のない時間を費やすという問題があった。
【０００６】
本発明の目的は、データ転送前とデータ転送後の転送元アドレスおよび転送先アドレスの値が同一であった場合には、同一であったアドレスの書き戻しを実行しないことによりデータ転送の高速化を図ることができるデータ転送装置を提供することである。
【０００７】
【課題を解決するための手段】
データ転送要因毎の転送情報先頭アドレスを保持する転送情報先頭アドレスレジスタと、前記転送情報先頭アドレスの位置に格納された転送情報を保持する転送情報レジスタと、前記転送情報レジスタの値を演算する演算回路と、前記演算回路を制御する演算量判定手段と、転送データを保持するデータレジスタと、マイコンの内部バスとのインターフェースを制御する内部バス制御手段とを有し、前記演算量判定結果を用いてデータ転送後のアドレスを書き戻すか否かを判定し、書き戻す必要のないときは転送情報レジスタの転送元アドレスおよび転送先アドレスをメモリに書き戻すサイクルを行わない。
【０００８】
このような構成としたことにより、転送情報レジスタの転送元アドレスおよび転送先アドレスがデータ転送前とデータ転送後で同一の場合に、転送情報書き戻しサイクル数を減らすことができるので、データ転送の高速化を図ることができる。
【０００９】
【発明の実施の形態】
以下、本発明の実施例について、図面を参照して説明する。
【００１０】
本発明のデータ転送装置（ＤＴＣ）１の実施例を示す図１を説明する前に、まず、図２に示すシングルチップマイコン５００の構成図を参照して、本発明のデータ転送装置１と他のシングルチップマイコン５００の構成要素との関係を簡単に説明する。
【００１１】
シングルチップマイコン５００は、内部バス５１０に接続された中央処理装置（ＣＰＵ）５０１と、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）５０２と、データ転送装置（ＤＴＣ）１と、ランダムアクセスメモリ（ＲＡＭ）５０４と、リードオンリメモリ（ＲＯＭ）５０５と、周辺バス５２０に接続されたシリアルデータ転送装置（ＳＣＩ）５０６と、タイマコントローラ（ＴＭＵ）５０７と、割込み制御装置（ＩＮＴ）２と、バスコントローラ（ＢＳＣ）５０３とから構成される。バスコントローラ５０３を介して外部メモリバス５３０が接続される。
【００１２】
割込み制御装置２は、シリアルデータ転送装置５０６からの割込み信号、タイマコントローラ５０７からの割込み信号およびマイコン外部からの複数の外部割込み信号等の割込み信号Ｌ５０を受けて、中央処理装置５０１、ダイレクトメモリアクセスコントローラ５０２およびデータ転送装置１のいずれかに転送要求を出力する。割り込み信号Ｌ５０による処理が終了したときには割込みをクリアする信号である割込みクリア信号Ｌ５１を、シリアルデータ転送装置５０６、タイマコントローラ５０７およびマイコン外部のそれぞれの割込み信号に対応して出力する。バスコントローラ５０３は、中央処理装置５０１、ダイレクトメモリアクセスコントローラ５０２およびデータ転送装置１からのバスリクエスト信号Ｌ５２を受けて内部バス５１０の占有に対する調停をして、バス使用許可信号Ｌ５３を出力する。
【００１３】
図７は本発明の一実施例の割込み制御装置を説明するブロック図である。この構成ブロック図を参照して、周辺デバイスおよび外部デバイスと接続される複数の割込み信号（割込み信号（１）〜割込み信号（ｎ））を受けてデータ転送装置１の起動制御を行う例を説明する。割込み制御装置（ＩＮＴ）２は、割込み信号（割込み信号（１）〜割込み信号（ｎ））が複数与えられた場合に、これらの優先順位を判定する判定回路（ＩＮＴ＿ＳＥＬ）２０と、その割込み信号に対応する割込みベクタ番号（ＤＴＣ＿ＶＥＣ）を発生する割込みベクタ番号生成回路（ＶＥＣ）２２と、その割込み信号に対応したデータ転送要求を出力するか否かを判定して、これに対応したデータ転送要求信号（ＤＴＣ＿ＲＥＱ）を発生するデータ転送要求信号生成回路（ＲＥＱ＿ＬＯＧＩＣ）２４と、さらに、割込み信号が与えられる毎に割込みベクタ番号を保持するベクタ番号保持回路（ＶＥＣ＿ＦＦ）２３と、次の割込み信号が与えられたときに、先に保持したベクタ番号と比較するベクタ番号比較回路（ＣＭＰ）２５を有し、前回と割込みベクタ番号が一致した場合にデータ転送装置１（ＤＴＣ）に対して転送情報リード抑止信号（ＤＴＣ＿ＳＫＩＰ）を発生する。データ転送装置１がデータ転送要求信号に対応した転送が終了したときに発生する割込みクリア信号（ＤＴＣ＿ＣＬＲ）を受け、割込みをクリアする割込みクリア信号（クリア信号（１）〜クリア信号（ｎ））を発生する割込みクリア回路２１（ＣＬＲ＿ＬＯＧＩＣ）を有する。割込みクリア回路２１の発生する信号は図２における割込みクリア信号Ｌ５１である。さらに、本実施例では、ＣＰＵにより制御可能な割込みベクタ番号の比較を抑止する比較抑止信号ＣＳＳがあり、ベクタ番号比較回路２５は比較を行うか否かを選択することが可能である。このような構成にすることにより、前回起動の後にベクタテーブルおよび転送情報を更新した場合に、今回の起動において更新したベクタテーブルおよび転送情報を読み込むことが可能になる。
【００１４】
次に、図１を参照してデータ転送装置１について説明する。データ転送装置１はデータ転送装置制御回路（ＤＴＣ＿ＣＴＬ）１０を備え、データ転送装置制御回路１０は以下のシーケンシャルな制御を行う。割込み制御装置２からデータ転送要求信号ＤＴＣ＿ＲＥＱが与えられた場合に、割込みベクタ番号ＤＴＣ＿ＶＥＣに従って転送情報先頭アドレス配置領域（ＡＤＲ＿ＡＲＥＡ）３に格納された転送情報の先頭アドレスをバスインタフェース回路（ＢＵＳ＿ＩＦ）１６を介して転送情報先頭アドレスレジスタ（ＡＤＲ＿ＲＥＧ）１５に読み込む。次に、この先頭アドレスに従って転送情報配置領域（ＩＮＦＯ＿ＡＲＥＡ）４に格納された転送情報の値をバスインタフェース回路１６を介して転送情報レジスタ回路（ＩＮＦＯ＿ＲＥＧ）１２に読み込む。転送情報レジスタ回路１２は、動作モードを示すモードレジスタ（ＭＲ＿ＲＥＧ）１２Ａ、転送元のアドレスを示す転送元アドレスレジスタ（ＳＡ＿ＲＥＧ）１２Ｂ、転送先のアドレスを示す転送先アドレスレジスタ（ＤＡ＿ＲＥＧ）１２Ｃおよび転送回数を示す転送回数レジスタ（ＣＲ＿ＲＥＧ）１２Ｄから構成され、転送元アドレスレジスタ１２Ｂに示されるアドレスの位置から、転送データ配置領域（ＤＴ＿ＡＲＥＡ）５にある転送データを、転送データレジスタ（ＤＴ＿ＲＥＧ）１４に読みこむ。
【００１５】
次に、転送先アドレスレジスタ１２Ｃに示されるアドレスの位置に転送データを転送データレジスタ１４から読み出す。次に、転送元アドレス１２Ｂと転送先アドレス１２Ｃは、モードレジスタ１２Ａに示されるデータ転送サイズを受けて演算量を制御する演算量判定回路１１の結果に従って演算される。転送回数を示す転送回数レジスタ１２Ｄの転送回数データは、データ転送回数分減算される。最後に、モードレジスタ１２Ａ、転送元アドレスレジスタ１２Ｂ、転送先アドレス１２Ｃおよび転送回数レジスタ１２Ｄで構成される転送情報レジスタ１２内の各レジスタの値を、バスインタフェース回路１６を介して、転送情報配置領域（ＩＮＦＯ−ＡＲＥＡ）４の転送情報先頭アドレスレジスタ１５で示される位置に書き戻す。この際、演算量判定回路１１の結果に従い、転送前と転送後で、転送元アドレス不変のとき転送元アドレスレジスタ１２Ｂの値を、転送先アドレス不変のとき転送先アドレスレジスタ１２Ｃの値を書き戻すサイクルをスキップする。ここで、ＡＤＲＢはアドレスバス、ＤＡＴＢはデータバスである。転送情報演算回路（ＡＤＤ）１３については後述する。
【００１６】
図３は本発明の一実施例の転送情報先頭アドレス配置領域と転送情報配置領域の関係を説明する図である。データ転送要因毎の、転送情報先頭アドレス配置領域（ＡＤＲ＿ＡＲＥＡ）３に格納された転送情報先頭アドレス（１）１０１，転送情報先頭アドレス（２）１０２，転送情報先頭アドレス（３）１０３，−−−と、転送情報配置領域（ＩＮＦＯ＿ＡＲＥＡ）４に格納された転送情報（１），転送情報（２），転送情報（３），−−−の配置例を示す。ここでは、転送情報先頭アドレスおよび転送情報はいずれも４バイトが割り当てられている例を示す。
【００１７】
各転送情報先頭アドレスは、複数のデータ転送要因毎に配置され、割込み要因毎に割り当てられた割込みベクタ番号ＤＴＣ＿ＶＥＣに従ってデータ転送装置１に読み込む。その先頭アドレスの示す位置を先頭に転送情報が配置される。
【００１８】
各転送情報は各転送情報先頭アドレスに対応して、モードレジスタＡ（ＭＲＡ）の領域２０１Ａ，２０２Ａ，２０３Ａ−−−と、モードレジスタＢ（ＭＲＢ）の領域２０１Ｂ，２０２Ｂ，２０３Ｂ−−−と、転送元アドレスＳＡを指定する領域２０１Ｃ，２０２Ｃ，２０３Ｃ−−−と、転送先アドレスＤＡを指定する領域２０１Ｄ，２０２Ｄ，２０３Ｄ−−−と、転送回数レジスタＣＲＡを指定する領域２０１Ｅ，２０２Ｅ，２０３Ｅ−−−と、転送回数レジスタＣＲＢを指定する領域２０１Ｆ，２０２Ｆ，２０３Ｆ−−−とで構成されている。
【００１９】
本実施例では１データ転送要因毎の先頭アドレスのサイズを４バイト有しているが、必要に応じてサイズを減らすことでメモリ使用量を減らすことができ、サイズを増やすことで広い配置領域に転送情報を配置することができる。また、本実施例では１転送要因の転送情報の配置は１２バイト有しているが、必要に応じてサイズを減らすことでメモリ使用量を減らすことができ、サイズを増やすことでデータ転送のモードとアドレス、および、転送回数を拡張することができる。
【００２０】
図４は、本発明の一実施例のデータ転送情報レジスタを説明する図である。モードレジスタ（ＭＲ＿ＲＥＧ）１２Ａ、転送元アドレスレジスタ（ＳＡ＿ＲＥＧ）１２Ｂ、転送先アドレスレジスタ（ＤＡ＿ＲＥＧ）１２Ｃおよび転送回数レジスタ（ＣＲ＿ＲＥＧ）１２Ｄの配置例を示す。
【００２１】
（１）転送モードレジスタ（ＭＲ＿ＲＥＧ）１２Ａ：
データ転送装置１の転送モードを指定するレジスタで、モードレジスタＡ（ＭＲＡ）とモードレジスタＢ（ＭＲＢ）で構成されている。転送モードレジスタ１２Ａは、転送情報配置領域（ＩＮＦＯ−ＡＲＥＡ）４から読み込んだ値を保持する。ここで、モードレジスタＡはデータ転送モード（ＭＤ１，ＭＤ０）、データ転送サイズ（ＳＺ１，ＳＺ０）および転送元アドレスモード（ＳＭ１，ＳＭ０）を保持する。また、モードレジスタＢはチェイン転送モード設定（ＣＨＮＥ，ＣＨＮＳ）、データ転送装置割り込み設定（ＤＩＳＥＬ）、ＤＴＣ転送モードセレクト（ＤＴＳ）、および転送先アドレスモード（ＤＭ１，ＤＭ０）を保持する。
【００２２】
（２）転送元アドレスレジスタ（ＳＡ＿ＲＥＧ）１２Ｂ：
転送元アドレスＳＡを指定するレジスタで、ＳＡ２３からＳＡ０の２４ビット幅で構成されている。転送元アドレスレジスタ１２Ｂは、転送情報配置領域５から読み込んだ値を保持すると共に、データ転送後に更新された値も保持する。
【００２３】
（３）転送先アドレスレジスタ（ＤＡ＿ＲＥＧ）１２Ｃ：
転送先アドレスＤＡを指定するレジスタで、ＤＡ２３からＤＡ０の２４ビット幅で構成されている。転送先アドレスレジスタ１２Ｃは、転送情報配置領域５から読み込んだ値を保持すると共に、データ転送後に更新された値も保持する。
【００２４】
（４）転送回数レジスタ（ＣＲ＿ＲＥＧ）１２Ｄ：
データ転送の回数を指定するレジスタで、転送回数レジスタ（ＣＲＡ）Ａと転送回数レジスタ（ＣＲＢ）Ｂで構成されている。それぞれ、ＣＲＡ１５からＣＲＡ０の１６ビット幅とＣＲＢ１５からＣＲＢ０の１６ビット幅とで構成されている。転送回数レジスタ１２Ｄは、転送情報配置領域４から読み込んだ値を保持する。さらに、１回のデータ転送を終了すると−１減算され、指定回の転送が終了すると０になる。
【００２５】
図５は、本発明の一実施例の転送元アドレスと転送先アドレスの演算量を判定する条件を説明する図である。演算量判定テーブル１１の内容に応じて、転送モードレジスタ１２Ａの転送元アドレスモード（ＳＭ１）１と転送元アドレスモード（ＳＭ０）０と転送先アドレスモード（ＤＭ１）１と転送先アドレスモード（ＤＭ０）０に従って、演算量の判定を行う。
【００２６】
転送元アドレスモードＳＭ１が０の場合、転送元アドレスモードは固定モード（ＳＡ＿ＦＩＸ）になり、転送元アドレスはデータ転送後に更新しない。転送元アドレスモードＳＭ１が１の場合、転送元アドレスモードは転送元アドレスモードＳＭ０に従い、ＳＭ０が０の場合には加算し、ＳＭ０が１の場合には減算する。データ転送サイズＳＺ１，ＳＺ０に従い、データ転送サイズＳＺ１が０でデータ転送サイズＳＺ０が０の場合にはバイトサイズ転送となって演算量は１になる。データ転送サイズＳＺ１が０でデータ転送サイズＳＺ１が１の場合にはワード（２バイト）サイズ転送となって演算量は２になる。データ転送サイズＳＺ１が１でデータ転送サイズＳＺ０が０の場合にはロングワード（４バイト）サイズ転送となって演算量は４になる。
【００２７】
転送先アドレスモードＤＭ１が０の場合、転送先アドレスモードは固定モード（ＤＡ＿ＦＩＸ）になり、転送先アドレスはデータ転送後に更新しない。転送先アドレスモードＤＭ１が１の場合、転送元アドレスモードはＤＭ０に従い、ＤＭ０が０の場合には加算し、ＤＭ０が１の場合には減算する。ＳＺ１とＳＺ０で示されるデータ転送サイズに従い、データ転送サイズＳＺ１が０でデータ転送サイズＳＺ０が０の場合にはバイトサイズ転送となって演算量は１になる。データ転送サイズＳＺ１が０でデータ転送サイズＳＺ１が１の場合にはワード（２バイト）サイズ転送となって演算量は２になる。データ転送サイズＳＺ１が１の場合にはロングワード（４バイト）サイズ転送となって、演算量は４になる。さらに、転送元アドレス固定モード信号ＳＡ＿ＦＩＸを受けて転送元アドレスの書き戻し処理をスキップし、転送先アドレス固定モード信号ＤＡ＿ＦＩＸを受けて転送先アドレスの書き戻しをスキップする。
【００２８】
図６は、本発明の一実施例の転送元と転送先および転送回数を演算する回路を説明する図である。転送情報演算回路（ＡＤＤ）１３は、演算データを受け取り、演算量判定回路１１の演算量判定信号の結果に従って演算し、出力制御（１）、出力制御（２）および出力制御（３）に制御され、出力する。
【００２９】
転送元アドレスと転送先アドレスの値を演算するときは、演算データが入力バッファ１３１Ｂで取り込まれ、演算量判定回路１１から与えられる演算量判定信号によってセレクタ１３１Ｊで選択されたレジスタ１３１Ｃ−１３１Ｈによって与えられるインクリメント値とが演算器１３１で演算され、出力制御バッファ１３１Ａによって出力される。
【００３０】
転送回数の値を演算するときは、演算データが入力バッファ１３２Ｂで取り込まれ、レジスタ１３２Ｃによって与えられるデクリメント値１と演算器１３２で１デクリメント演算され、出力バッファ１３２Ａによって出力される。
【００３１】
転送情報先頭アドレスの値を演算するときは、演算データが入力バッファ１３３Ｂで取り込まれ、レジスタ１３３Ｃによって与えられるインクリメント値４と演算器１３３で４インクリメント演算され、出力バッファ１３３Ａによって出力される。
【００３２】
出力制御（１）から（３）は、上記のいずれの演算を実行しているかに応じて与えられる。
【００３３】
図８は本発明の一実施例のデータ転送装置１（ＤＴＣ）の処理フローを説明するフローチャート図である。
【００３４】
Ｓ００１：前回の割込みベクタ番号と今回の割込みベクタ番号が同一か否かを比較し、転送情報先頭アドレスと転送情報を読み込むか否かを判定する。前回の割込みベクタ番号と今回の割込みベクタ番号が同一のとき、転送情報先頭アドレスと転送情報の読み込みをスキップし、データリードの処理（Ｓ００６）に遷移する。前回の割込みベクタ番号と今回の割込みベクタ番号が異なるとき、転送情報先頭アドレスリードの処理（Ｓ００２）に遷移する。
【００３５】
Ｓ００２：転送情報先頭アドレスをデータ転送装置１（ＤＴＣ）に読み込む。
【００３６】
Ｓ００３：図３に示す領域２０１ＡのＭＲＡの値を転送モードレジスタ１２Ａ（ＭＲ＿ＲＥＧ）に、領域２０１Ｃの転送元アドレスＳＡの値を転送元アドレスレジスタ１２Ｂ（ＳＡ＿ＲＥＧ）に読み込む。
【００３７】
Ｓ００４：図３に示す領域２０１ＢのＭＲＢの値を転送モードレジスタ１２Ａ（ＭＲ＿ＲＥＧ）に、領域２０１Ｄの転送先アドレスＤＡの値を転送先アドレスレジスタ１２Ｃ（ＤＡ＿ＲＥＧ）に読み込む。
【００３８】
Ｓ００５：図３に示す領域２０１Ｅの転送回数レジスタＣＲＡの値および領域２０１Ｆの転送回数レジスタＣＲＢの値を転送回数レジスタ１２Ｄ（ＣＲ＿ＲＥＧ）に読み込む。
【００３９】
Ｓ００６：転送元アドレスレジスタ１２Ｂ（ＳＡ＿ＲＥＧ）に示されるアドレスの位置から、図１に示す転送データ配置領域（ＤＴ＿ＡＲＥＡ）５にある転送データを、転送データレジスタ（ＤＴ＿ＲＥＧ）１４に読み込む。さらに、転送元アドレスレジスタ１２Ｂ（ＳＡ＿ＲＥＧ）の値を転送情報演算回路１３（ＡＤＤ）で演算する。
【００４０】
Ｓ００７：転送先アドレスレジスタ１２Ｃ（ＤＡ＿ＲＥＧ）に示されるアドレスの位置にデータレジスタ１４（ＤＴ＿ＲＥＧ）からデータを書き込む。さらに、転送先アドレスレジスタ１２Ｃ（ＤＡ＿ＲＥＧ）の値を転送情報演算回路１３（ＡＤＤ）で演算する。さらに、転送回数レジスタ１２Ｄ（ＣＲ＿ＲＥＧ）の値を転送情報演算回路１３（ＡＤＤ）で演算する。
【００４１】
Ｓ００８：転送元アドレスが転送前と転送後で不変か否かを判定し、不変の場合は、転送元アドレスライトバックＳ００９の処理をスキップし、不変でない場合は、転送元アドレスライトバックＳ００９の処理を行う。
【００４２】
Ｓ００９：転送元アドレスを転送情報先頭アドレスレジスタ１５（ＡＤＲ＿ＲＥＧ）に示されるアドレスの位置に書き戻す。
【００４３】
Ｓ０１０：転送先アドレスが転送前と転送後で不変か否かを判定し、不変の場合は、転送先アドレスライトバックＳ０１１の処理をスキップし、不変でない場合は、転送先アドレスライトバックＳ０１１の処理を行う。
【００４４】
Ｓ０１１：転送先アドレスを転送情報先頭アドレスレジスタ１５（ＡＤＲ＿ＲＥＧ）に示されるアドレスの位置に書き戻す。
【００４５】
Ｓ０１２：転送回数を転送情報先頭アドレスレジスタ１５（ＡＤＲ＿ＲＥＧ）に示されるアドレスの位置に書き戻す。
【００４６】
本発明のデータ転送装置１は、上述した手順で動作する。従来のデータ転送装置におけるタイミングチャートと、本発明による動作のタイミングチャートとを比較して以下説明する。
【００４７】
図９（Ａ）は、従来のデータ転送装置におけるタイミングチャートを、（Ｂ）はデータ転送の状況を示す図である。ここでは、データ転送装置で、（Ｂ）に示すように、転送元アドレスＳＡから転送先アドレスＤＡに、データＤＴをシリアルデータバッファ（１）からシリアルデータバッファ（２）へ転送する場合を示す。
【００４８】
（Ａ）に示すタイミングチャートにおいて、ＣＫＳは制御サイクルを示す波形、ＤＴＣ＿ＲＥＱはデータ転送要求信号生成回路（ＲＥＱ＿ＬＯＧＩＣ）２４が発生するデータ転送要求信号（ＤＴＣ＿ＲＥＱ）、ＤＡＴＢはデータバス上を動くデータである。データ転送要求信号（ＤＴＣ＿ＲＥＱ）が”１”になると転送情報先頭アドレスＡＤＲがリードされる（Ｓ００２）。次いで、転送元アドレスＳＡの値、転送先アドレスＤＡの値および転送回数レジスタＣＲの値がリードされる（Ｓ００３−Ｓ００５）。次いで、転送元のデータをリードし、これを転送先にライトする（Ｓ００６−Ｓ００７）。これでデータ転送が終わり、データ転送要求信号（ＤＴＣ＿ＲＥＱ）が”０”になると、転送元アドレス、転送先アドレスおよび転送回数をライトバックしてデータ転送処理が完了する（Ｓ００９，Ｓ０１１およびＳ０１２）。
【００４９】
このように、従来のデータ転送装置の転送制御では、転送前とデータ転送後で転送元アドレスと転送先アドレスが共に同一の場合でも、転送情報リードのサイクルで読み込んだ転送元アドレスと転送先アドレスの値と同一の値を転送情報ライトのサイクルで書き戻していた。
【００５０】
図１０（Ａ）は、本発明の一実施例の転送情報ライトサイクルのスキップを説明するタイミングチャートを、（Ｂ）はデータ転送の状況を示す図であり、転送元アドレスモードと転送先アドレスモードの両方が固定モード（ＳＡ＿ＦＩＸ＝１、ＤＡ＿ＦＩＸ＝１）で転送情報書き戻しのサイクルが１サイクルになったときのデータ転送の状況を示す図である。この例でも、データ転送装置で、（Ｂ）に示すように、転送元アドレスＳＡから転送先アドレスＤＡに、データＤＴをシリアルデータバッファ（１）からシリアルデータバッファ（２）へ転送するのは図９の場合と同じである。
【００５１】
転送元アドレスモードと転送先アドレスモードの両方が固定モード（ＳＡ＿ＦＩＸ＝１、ＤＡ＿ＦＩＸ＝１）の場合でも、転送の最初の周期で転送情報先頭アドレスＡＤＲがリードされ（Ｓ００２）、次いで、転送元アドレスＳＡの値、転送先アドレスＤＡの値および転送回数レジスタＣＲの値がリードされる（Ｓ００３−Ｓ００５）のは同じである。また、転送元のデータをリードし、これを転送先にライトする（Ｓ００６−Ｓ００７）操作が当然実行される。しかし、転送元アドレスモードと転送先アドレスモードの両方が固定モードであるので、転送元アドレスは転送前後で同一であり、これを比較するステップＳ００８はＹｅｓとなり、転送元アドレスのライトバック（Ｓ００９）はスキップされる。また、転送先アドレスも転送前後で同一であり、これを比較するステップＳ０１０もＹｅｓとなり、転送先アドレスのライトバック（Ｓ００１）もスキップされる。すなわち、転送情報ライトサイクルは転送回数レジスタ２０１Ｅ（ＣＲ＿ＲＥＧ）の値を書き戻すのみなので１サイクルで終了する。
【００５２】
図１１（Ａ）は、本発明の一実施例の転送情報先頭アドレスリードサイクルと転送情報リードサイクルのスキップを説明するタイミングチャートを、（Ｂ）はデータ転送の状況を示す図であり、第１の転送と第２、第３の転送のデータ転送起動要因（ベクタ番号）が同一の場合に、第２、第３の転送における転送情報先頭アドレスリードと転送情報リードのサイクルがスキップされるデータ転送の状況を示す図である。この例では、データ転送装置で、（Ｂ）に示すように、転送元アドレスＳＡ、ＳＡ＋４およびＳＡ＋８から転送先アドレスＤＡ、ＤＡ＋４およびＤＡ＋８に、データＤＴ１、ＤＴ２およびＤＴ３をメモリ（１）からメモリ（２）へ転送する。これを、それぞれ、第１の転送、第２の転送および第３の転送と呼んでいる。
【００５３】
この場合、第１の転送では、図９で説明した従来例と同様に、データ転送要求信号（ＤＴＣ＿ＲＥＱ）が”１”になると転送情報先頭アドレスＡＤＲがリードされる（Ｓ００２）。次いで、転送元アドレスＳＡの値、転送先アドレスＤＡの値および転送回数レジスタＣＲの値がリードされる（Ｓ００３−Ｓ００５）。次いで、転送元のデータをリードし、これを転送先にライトする（Ｓ００６−Ｓ００７）。これでデータ転送が終わり、データ転送要求信号（ＤＴＣ＿ＲＥＱ）が”０”になると、転送元アドレス、転送先アドレスおよび転送回数をライトバックしてデータ転送処理が完了する（Ｓ００９，Ｓ０１１およびＳ０１２）。
【００５４】
しかし、第２、第３の転送のデータ転送起動要因が同一であるので、図８におけるステップＳ００１の前回と今回でベクタ番号が同一かの判定がＹｅｓとなる。したがって、第２、第３の転送における転送情報先頭アドレスリードと転送情報リードのサイクル（Ｓ００２−Ｓ００５）がスキップされる。第２の転送のデータ転送装置起動要求（ＤＴＣ＿ＲＥＱ）がアサートされると同時に転送要因一致信号（ＤＴＣ＿ＳＫＩＰ）がアサートされた場合、第２の転送のベクタリードとデータ転送情報リードのサイクルがスキップされてデータ転送と転送情報ライトのみが行なわれる。さらに、第３の転送のデータ転送装置起動要求（ＤＴＣ＿ＲＥＱ）がアサートされると同時に転送要因一致信号（ＤＴＣ＿ＳＫＩＰ）がアサートされた場合、第３の転送のベクタリードとデータ転送情報リードのサイクルがスキップされてデータ転送と転送情報ライトのみが行なわれる。
【００５５】
【発明の効果】
以上に詳述したごとく、本発明によれば、本来必要のない処理をスキップすることができ、データ転送装置が内部バスを使用する頻度を少なくし，中央処理装置をストールする頻度を少なくすることが可能となり，情報処理の処理速度を向上することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施例のデータ転送装置を説明するブロック図。
【図２】本発明の一実施例のデータ転送装置を適用したシングルチップマイコンのブロック図。
【図３】本発明の一実施例の転送情報先頭アドレス配置領域と転送情報配置領域の関係を説明する図。
【図４】本発明の一実施例のデータ転送情報レジスタを説明する図。
【図５】本発明の一実施例の転送元アドレスと転送先アドレスの演算量を判定する条件を説明する図。
【図６】本発明の一実施例の転送元と転送先および転送回数を演算する回路を説明する図。
【図７】本発明の一実施例の割込み制御装置を説明するブロック図。
【図８】本発明の一実施例のデータ転送装置の処理フローを説明するフローチャート図。
【図９】（Ａ）は、従来のデータ転送装置におけるデータ転送を説明するタイミングチャートを、（Ｂ）はデータ転送の状況を示す図。
【図１０】（Ａ）は、本発明の一実施例の転送情報ライトサイクルのスキップを説明するタイミングチャートを、（Ｂ）はデータ転送の状況を示す図。
【図１１】本発明の一実施例の転送情報先頭アドレスリードサイクルと転送情報リードサイクルのスキップを説明するタイミングチャートを、（Ｂ）はデータ転送の状況を示す図。
【符号の説明】
１：データ転送装置、２：割込み制御装置、３：転送情報先頭アドレス配置領域、４：転送情報配置領域、５：転送データ配置領域、１０：データ転送装置制御回路、１１：演算量判定テーブル、１２：転送情報レジスタ回路、１２Ａ：モードレジスタ、１２Ｂ：転送元アドレスレジスタ、１２Ｃ：転送先アドレスレジスタ、１２Ｄ：転送回数レジスタ、ＣＳＳ：比較抑止信号、１３：転送情報演算回路、１３１、１３２、１３３：演算器、１３１Ｊ：演算量選択回路、１３１Ｃ、１３１Ｄ、１３１Ｅ、１３１Ｆ、１３１Ｇ、１３１Ｈ、１３２Ｃ、１３３Ｃ：演算量、１３１Ａ、１３２Ａ、１３３Ａ：出力バッファ、１３１Ｂ、１３２Ｂ、１３３Ｂ：入力バッファ、１４：転送データレジスタ、１５：転送情報先頭アドレスレジスタ、１６：バスインタフェース回路、５００：シングルチップマイコン、５０１：中央処理装置（ＣＰＵ）、５０２：ダイレクトメモリアクセスコントローラ、５０３：バスコントローラ、５０４：ランダムアクセスメモリ、５０５：リードオンリメモリ、５０６：シリアルデータ転送装置、５０７：タイマコントローラ、Ｌ５０：割込み信号、Ｌ５１：割込みクリア信号、Ｌ５２：バスリクエスト信号、Ｌ５３：バス使用許可信号、１０１、１０２、１０３：転送情報先頭アドレス、２０１Ａ、２０２Ａ、２０３Ａ：モードＡ、２０１Ｂ、２０２Ｂ、２０３Ｂ：モードＢ、２０１Ｃ、２０２Ｃ、２０３Ｃ：転送元アドレス、２０１Ｄ、２０２Ｄ、２０３Ｄ：転送先アドレス、２０１Ｅ、２０２Ｅ、２０３Ｅ：転送回数Ａ、２０１Ｆ、２０２Ｆ、２０３Ｆ：転送回数Ｂ、２０：優先順位判定回路、２１：割込みクリア回路、２２：割込みベクタ番号生成回路、２３：割込みベクタ番号保持回路、２４：データ転送要求信号生成回路、２５：割込みベクタ番号比較回路、Ｓ００１、Ｓ００２、Ｓ００３、Ｓ００４、Ｓ００５、Ｓ００６、Ｓ００７、Ｓ００８、Ｓ００９、Ｓ０１０、Ｓ０１１、Ｓ０１２：処理ステップ。
【図１】
2004021401.tif 000003
【図２】
2004021401.tif 000004
【図３】
2004021401.tif 000005
【図４】
2004021401.tif 000006
【図５】
2004021401.tif 000007
【図６】
2004021401.tif 000008
【図７】
2004021401.tif 000009
【図８】
2004021401.tif 000010
【図９】
2004021401.tif 000011
【図１０】
2004021401.tif 000012
【図１１】
2004021401.tif 000013