(57)【特許請求の範囲】
【請求項１】
コピー処理の先頭に無条件でジャンプする無条件分岐命令コードを使用したコピー処理ルーチンを、コピー先領域の最終アドレスの次のアドレスから実装すると共に、コピー元の最終データの次アドレスにリターンサブルーチンコードを書き込み、前記コピー処理ルーチンを実行し、コピー終了後、引き続き次回のループで前記リターンサブルーチンコードが前記コピー処理ルーチンに上書きされ、この上書きされたリターンサブルーチンコードの実行により前記コピー処理を終了することを特徴とするメモリ間データコピー方法。
【請求項２】
コピー元データを同一メモリ上のアドレスにコピーすることを特徴とする請求項１に記載されたメモリ間データコピー方法。
【請求項３】
コピー元データを別のメモリ上のアドレスにコピーすることを特徴とする請求項１または２に記載されたメモリ間データコピー方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサー（以下ＭＰＵ）と、このＭＰＵ上で動作するプログラム、及びＲＡＭが搭載された電子機器において、ＲＡＭ上のデータを同じＲＡＭ上の別のアドレス、あるいは別の記憶領域にコピーする方法に関する。
【０００２】
【従来の技術】
ＲＡＭ上のデータを同じＲＡＭ上の別のアドレス、あるいは別の記憶領域にコピーする場合、特別なハードウェアによる仕組み（ＤＭＡ転送等）がない場合には、プログラムに従ったＭＰＵによるコピーを実行する方法が一般である。
【０００３】
図３は、従来の条件分岐コマンドによるコピー処理サブルーチンの処理手順を示すフローチャート図である。
このプログラムは、ステップＳ１でのコピーカウンタの初期化（コピー対象データのアドレス数をプリセットする）後、ステップＳ２でコピーカウンタの検定（カウンタの内容がゼロか否か）を行い、ステップＳ３でコピー元の特定アドレスデータのコピー処理（転送）を実行した後、ステップＳ４でコピーカウンタの更新（カウントダウン）を行うループを、カウンタの内容がゼロとなるまで実行し、ゼロの条件でステップＳ５に分岐してプログラムを終了する。
【０００４】
【発明が解決しようとする課題】
このような従来のコピー処理ルーチンでは、実際のコピー処理の他に、コピーカウンタの更新、検定（コピーの終了検定）のオーバーヘッドがデータ転送時間のボトルネックとなり、高速のコピー処理の障害要因となっている。
【０００５】
本発明は、連続した領域に格納されたデータ群のコピー処理において、従来のコピー処理に必要であったコピーカウンタのオーバーヘッドを無くし、転送時間を早めることが可能なメモリ間データコピー方法の提供を目的とする。
【０００６】
【課題を解決するための手段】
このような課題を達成するために、本発明のうち請求項１記載発明の特徴は、コピー処理の先頭に無条件でジャンプする無条件分岐命令コードを使用したコピー処理ルーチンを、コピー先領域の最終アドレスの次のアドレスから実装すると共に、コピー元の最終データの次アドレスにリターンサブルーチンコードを書き込み、前記コピー処理ルーチンを実行し、コピー終了後、引き続き次回のループで前記リターンサブルーチンコードが前記コピー処理ルーチンに上書きされ、この上書きされたリターンサブルーチンコードの実行により前記コピー処理を終了する点にある。
【０００９】
請求項２記載発明の特徴は、コピー元データを同一メモリ上のアドレスにコピーする点にある。
【００１０】
請求項３記載発明の特徴は、コピー元データを別のメモリ上のアドレスにコピーする点にある。
【００１１】
【発明の実施の形態】
以下本発明実施態様を、図面を用いて説明する。図１は本発明によるメモリ間データコピー方法の概要を説明する機能ブロック図である。１はＲＡＭ等のメモリ上のコピー元領域、２は同一ＲＡＭ上又は他のＲＡＭ上のコピー先領域である。
【００１２】
３は、コピー先領域１の最終アドレスの次のアドレスから実装されたコピー処理ルーチンプログラムであり、ループカウンタを持たず、コピー処理の先頭に無条件でジャンプする無条件分岐命令コードが使用されている。
【００１３】
４は、コピー元領域の最終データの次アドレスに書き込まれた、リターンサブルーチンコード（以下ＲＴＳ）であり、前記コピー処理ルーチンプログラム３がコピー処理ルーチンの見かけ上の最終データとして処理する。
【００１４】
５は、コピー処理ルーチンプログラム３における無条件分岐命令コードによるコピー処理ループの概念を示す機能ブロックであり、コピー元領域１のコピー終了後、引き続き次回のループで前記ＲＴＳが前記コピー処理ルーチンに上書きされ、この上書きされたＲＴＳの実行により前記コピー処理ルーチンが終了する。
【００１５】
図２は、コピー元領域１のデータを同一ＲＡＭ上のコピー先領域２のアドレスにコピーする場合のコピー処理手順を詳細に説明する機能ブロックである。Ｐ１は、コピー処理ルーチン３のプログラムＰ２実行に先立つ前処理であり、レジスタＲ０にコピー元の先頭アドレスを、レジスタＲ１にコピー先の先頭アドレスをセットする。
【００１６】
コピー先領域１の最終アドレスの次のアドレスから実装されたコピー処理ルーチンプログラム３のプログラムＰ２（MEM_COPY）の第１ステップは、NOP(NO OPERATION)命令であり、通常のコピーループでは何も実行されずにパスされる。
【００１７】
第２ステップ(MOV.L @R0+,R2)により、コピー元の先頭アドレスＲ０のデータを、バッファレジスタＲ２に転送した後レジスタＲ０のアドレスをインクリメントする。
第３ステップ(MOV.L R2+,@ R1+)により、バッファレジスタＲ２のデータをコピー先の先頭アドレスＲ１に転送した後レジスタＲ１のアドレスをインクリメントする。
【００１８】
第４ステップ(BRA MEM_COPY)により、第１ステップに無条件ジャンプして前記処理のループが無条件で繰り返され、コピー元領域の連続データがコピー先領域に順次連続的にコピーされる。
【００１９】
次に、機能ブロックＦ１で示すように、コピー元領域１の全データのコピー終了した後も、MEM_COPYルーチンは無条件分岐処理を続行し、次のループでコピー元領域の最終データの次アドレスに書き込まれた、ＲＴＳをコピーする。
【００２０】
ＲＴＳのコピー先は、コピー先領域１の最終アドレスの次のアドレス、即ちコピー処理ルーチンプログラム３のプログラムＰ２（MEM_COPY）の第１ステップに記載されている、NOP命令のアドレスであり、このNOP命令に上書きされる。
【００２１】
更に、機能ブロックＦ２で示すように、ＲＴＳの上書きコピー後、再度MEM_COPYルーチンにジャンプ（BRA実行）すると、コピーしたＲＴＳが実行され、無条件分岐のループ処理から抜け（リターン）る。
【００２２】
前記実施例では、コピー処理ルーチンにNOP 命令を入れ、NOP 命令部に対するＲＴＳの上書きを行う処理手順を示したが、NOP 命令自身もコピー処理のオーバーヘッドなるため、更に高速のコピー処理を実現するためにNOP 命令を省略することも可能である。この場合には、第２ステップ(MOV.L @R0+,R2)にＲＳＴコードが上書きされることになる。
【００２３】
【発明の効果】
以上説明したことから明らかなように、本発明によれば、連続した領域に格納されたデータ群のコピー処理において、従来のコピー処理に必要であったコピーカウンタのオーバーヘッドがなくなるため、メモリ間データコピー時間を短縮することが可能となる。
【図面の簡単な説明】
【図１】本発明によるメモリ間データコピー方法の概要を説明する機能ブロック図である。
【図２】コピー元領域のデータを同一ＲＡＭ上のコピー先領域のアドレスにコピーする場合のコピー処理手順を詳細に説明する機能ブロック図である。
【図３】従来の条件分岐コマンドによるコピー処理サブルーチンの処理手順を示すフローチャート図である。
【符号の説明】
１  コピー元領域
２  コピー先領域
３  コピー処理ルーチン
４  リターンサブルーチンコード（ＲＴＳ）
５  無条件分岐命令によるコピー処理ループ
【図１】
0004062481.tif 000002
【図２】
0004062481.tif 000003
【図３】
0004062481.tif 000004