(57)【要約】【課題】  ＣＰＵのバス接続構成に対し変更を伴うことなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供すること。【解決手段】  ホストインタフェース１４、周辺デバイスインタフェース１６、中間バッファ１５が存在するシステムにおいて、データ転送開始機能１５１が、ホストインタフェース１４より出力される１単位データ転送終了信号を用いることにより、周辺デバイスインタフェース１６へデータ転送開始信号を通知し、または周辺デバイスインタフェース１６より出力される１単位データ転送終了信号を用いることにより、ホストインタフェース１４へデータ転送開始信号を通知し、ＣＰＵ１１の介在をなくし、ホストコンピュータ１３と外部メモリ１７との間のデータ転送のアクセラレートを実現する。【選択図】      図１
2005316700.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵメインバスによりＣＰＵと接続された中間バッファ、ホストシステムを前記ＣＰＵメインバスへ接続するホストインタフェース、外部メモリを前記ＣＰＵメインバスへ接続する周辺デバイスインタフェースを備えたデータ処理装置におけるデータ転送方法であって、
前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスを利用し、
前記中間バッファのデータ転送開始機能により、前記中間バッファと前記ローカルバスを使用し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行う、
ことを特徴とするデータ転送方法。
【請求項２】
前記中間バッファのデータ転送開始機能は、前記ホストインタフェースまたは前記周辺デバイスインタフェースから出力される単位データ転送終了信号をもとに前記周辺デバイスインタフェースまたは前記ホストインタフェースへデータ転送開始信号を通知し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項１記載のデータ転送方法。
【請求項３】
前記中間バッファのデータ転送開始機能は、前記ホストインタフェースまたは周辺デバイスインタフェースから出力される単位データ転送終了信号により制御されるポインタにより指定されるバッファ領域を介し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項２記載のデータ転送方法。
【請求項４】
前記中間バッファと前記ローカルバスを使用した自動データ転送についての状態がステータスレジスタに設定され、前記ＣＰＵは前記ステータスレジスタの設定内容をもとに前記自動データ転送についての状態を判定することを特徴とする請求項１記載のデータ転送方法。
【請求項５】
ＣＰＵメインバスによりＣＰＵと接続されたＣＰＵ内部メモリ、中間バッファ、ＤＭＡコントローラおよび周辺デバイスインタフェースを有したデータ処理装置における、前記ＣＰＵ内部メモリと前記中間バッファとの間のデータ転送方法であって、
前記ＣＰＵ内部メモリと前記中間バッファとの間へ設けられたローカルバスと、ローカルＤＭＡ転送を実現するローカルバスコントローラを利用し、
ソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記ＣＰＵ内部メモリへのアクセス回数を軽減する、
ことを特徴とするデータ転送方法。
【請求項６】
前記ローカルバスコントローラのソースデータ切替え機能は、前記ＣＰＵによるプログラム制御によりソースデータ格納レジスタに設定された切り替え用ソースデータへ転送ソースデータを切り替えることを特徴とする請求項５記載のデータ転送方法。
【請求項７】
ＣＰＵメインバスによりＣＰＵと接続された中間バッファと、ホストシステムを前記ＣＰＵメインバスへ接続するホストインタフェースと、外部メモリを前記ＣＰＵメインバスへ接続する周辺デバイスインタフェースとを備えたデータ処理装置において、
前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記ホストシステムと前記外部メモリとの間の自動データ転送を、前記中間バッファと前記ローカルバスを使用し行う自動データ転送手段と、
を備えたことを特徴とするデータ処理装置。
【請求項８】
前記自動データ転送手段は、前記ホストインタフェースまたは前記周辺デバイスインタフェースから出力される単位データ転送終了信号をもとに前記周辺デバイスインタフェースまたは前記ホストインタフェースへデータ転送開始信号を通知し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項７記載のデータ処理装置。
【請求項９】
前記自動データ転送手段は、前記ホストインタフェースまたは周辺デバイスインタフェースから出力される単位データ転送終了信号により制御されるポインタにより指定されるバッファ領域を介し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項８記載のデータ処理装置。
【請求項１０】
ＣＰＵメインバスによりＣＰＵと接続されたＣＰＵ内部メモリ、中間バッファ、ＤＭＡコントローラおよび周辺デバイスインタフェースを有したデータ処理装置において、
前記ＣＰＵ内部メモリと前記中間バッファとの間へ設けられたローカルバスと、
ローカルＤＭＡ転送を実現するローカルバスコントローラと、
前記ローカルバスコントローラがソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、転送ソースデータを切り替えるソースデータ切替え手段と、
を備えたことを特徴とするデータ処理装置。
【請求項１１】
前記ソースデータ切替え手段は、前記ＣＰＵによるプログラム制御によりソースデータ格納レジスタに設定された切り替え用ソースデータへ転送ソースデータを切り替えることを特徴とする請求項１０記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メインバスがデータ転送のために占有されてしまう状況を回避し、データ転送のためのＣＰＵ負荷を軽減できるデータ転送方法および装置に関する。
【背景技術】
【０００２】
図７は、ホストコンピュータと外部メモリとの間で中間バッファを介しデータの転送を行う従来例１のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、ＣＰＵ１０１、ＤＭＡコントローラ１０２、ホストコンピュータ１０３、ホストインタフェース１０４、中間バッファ１０５、周辺デバイスインタフェース１０６および外部メモリ１０７と、これらＣＰＵ１０１、ＤＭＡコントローラ１０２、ホストインタフェース１０４、中間バッファ１０５、周辺デバイスインタフェース１０６間を接続するＣＰＵメインバス１０８とを備えている。
【０００３】
このデータ処理装置において、ホストインタフェース１０４から周辺デバイスインタフェース１０６へのデータ転送(外部メモリ１０７へのデータの書き込み)を行う際のデータ転送方法は、ＣＰＵメインバス１０８を経由してホストインタフェース１０４から中間バッファ１０５への転送を開始し（ステップＳ２０１）、次に、ホストインタフェース１０４から中間バッファ１０５への転送終了により、ホストインタフェース１０４から出力される割込信号をＣＰＵ１０１が認識し（ステップＳ２０２）、ＣＰＵ１０１は、周辺デバイスインタフェース１０６に対し、中間バッファ１０５から周辺デバイスインタフェース１０６への転送を設定する（ステップＳ２０３）。
その後、データ転送が開始され（ステップＳ２０４）、外部メモリ１０７へのデータ格納終了を周辺デバイスインタフェース１０６より出力される割込信号によりＣＰＵ１０１が認識する（ステップＳ２０５）。このような手順により一連のデータ転送が終了する。
【０００４】
また、逆方向へのデータ転送（外部メモリ１０７からのデータの読み出し）は、先ず、ＣＰＵ１０１が周辺デバイスインタフェース１０６に対し、外部メモリ１０７から周辺デバイスインタフェース１０６への転送を設定し、転送を開始する（ステップＳ２０６）。
次に、周辺デバイスインタフェース１０６から中間バッファ１０５への転送終了により、周辺デバイスインタフェース１０６より出力される割込信号をＣＰＵ１０１が認識し（ステップＳ２０７）、次に、ＣＰＵ１０１は、ホストインタフェース１０４を経由し、ホストコンピュータ１０３に対し中間バッファ１０５からホストインタフェース１０４へのデータ準備済状態を通知し、その後、ホストコンピュータ１０３の読み出し要求に従い、転送を開始する（ステップＳ２０８）。
そして、ＣＰＵ１０１は、ホストコンピュータ１０３による正常データ受信信号を受け取ることにより、データ転送を終了する（ステップＳ２０９）。
【０００５】
図８は、従来例２のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、ＣＰＵ２０１、ＤＭＡコントローラ２０２、内部メモリ２０３、中間バッファ２０５、周辺デバイスコントローラ２０６および周辺デバイス２０７と、これらＣＰＵ２０１、ＤＭＡコントローラ２０２、内部メモリ２０３、中間バッファ２０５、周辺デバイスコントローラ２０６間を接続するＣＰＵメインバス２０８を備えている。
【０００６】
このデータ処理装置において、周辺デバイス２０７に格納されたデータの変更を試みる場合、先ず、周辺デバイスコントローラ２０６を用いて周辺デバイス２０７より一単位（例えば５１２Ｂｙｔｅ）となるひとかたまりのデータの取得を行い、中間バッファ２０５に格納する。
その後、ＣＰＵメインバス２０８を経由し、中間バッファ２０５から内部メモリ２０３へＤＭＡデータ転送を行い、前記データを内部メモリ２０３へ展開する。ＣＰＵ２０１から内部メモリ２０３へはアクセスが可能であるため、内部メモリ２０３へアクセスしデータ参照、変更を行う。データ変更終了後、周辺デバイス２０７へデータを戻すには、これまでの手順を逆に踏むことにより格納を終了する。
【０００７】
このような中間バッファを介してホストコンピュータと外部メモリとの間でデータの転送を行う従来のデータ転送方法に対し、ＣＰＵがＤＭＡ転送開始コマンドを発行するだけで、周辺デバイスに関するデータ転送の制御は常時行わず、ＤＭＡコントローラのチャネルによりＣＰＵメインバスとは別のＣＰＵローカルバス上で周辺デバイス制御のデータ転送をＤＭＡ転送により高速に行い、ＣＰＵの負荷を最小限にし、周辺デバイスの制御処理を高速化する周辺デバイス制御データの転送方法がある（例えば、特許文献１参照）。
【特許文献１】特許第３３９９７７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
かかる従来のデータ転送方法および装置では、以下の短所が付随している。
この従来の特許文献１に開示されたデータ転送方法および装置は、周辺デバイスに対する制御用データに関するものであり、また、ＣＰＵにはＣＰＵローカルバスとＣＰＵメインバスが接続される構成であるなど、制御用データ転送のためのＣＰＵ負荷の軽減、メインバスがデータ転送のために占有されてしまう状況の回避実現のため従来のＣＰＵバス接続構成に変更が伴うという課題があった。
【０００９】
また、このような特許文献１に開示された構成をとらない従来のデータ転送方法および装置では、ＣＰＵ内部メモリ空間に特定データ（ＡＬＬ１やＡＬＬ０、Ｆ０Ｆ０ｈ等)を準備したい場合、（準備したいデータサイズ）／ （ＣＰＵが内部メモリに１度でアクセスできるデータサイズ）回の書き込み作業が必要となる。例えば、準備したいデータが１０Ｂｙｔｅ、ＣＰＵが内部メモリ２０３に１度でアクセスできるデータサイズ１Ｂｙｔｅの場合、ＣＰＵ２０１は１０Ｂｙｔｅ÷１Ｂｙｔｅ＝１０回の書き込み作業が必要となる。この書き込み作業は、準備したいデータサイズの大きさに比例し、ＣＰＵ２０１が内部メモリ２０３に１度でアクセスできるデータサイズに反比例し、その準備に必要となるＣＰＵ処理が増大するなど、周辺デバイス内のデータ変更、及び参照を行う機会毎に、ＣＰＵメインバスを経由したデータ転送が発生し、その結果、ＣＰＵメインバスを占有し、ＣＰＵが行う他の処理に遅延をもたらすという課題がある。
【００１０】
本発明は、このような事情に鑑みてなされたものであり、ＣＰＵのバス接続構成を変更することなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の目的を達成するため、本発明にかかるデータ転送方法は、ＣＰＵメインバスによりＣＰＵと接続された中間バッファ、ホストシステムを前記ＣＰＵメインバスへ接続するホストインタフェース、外部メモリを前記ＣＰＵメインバスへ接続する周辺デバイスインタフェースを備えたデータ処理装置において、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスを利用し、前記中間バッファのデータ転送開始機能により、前記中間バッファと前記ローカルバスを使用し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする。
【００１２】
また、上述の目的を達成するため、本発明にかかるデータ転送方法は、ＣＰＵメインバスによりＣＰＵと接続されたＣＰＵ内部メモリ、中間バッファ、ＤＭＡコントローラおよび周辺デバイスインタフェースを有したデータ処理装置において、前記ＣＰＵ内部メモリと前記中間バッファとの間へ設けられたローカルバスと、ローカルＤＭＡ転送を実現するローカルバスコントローラを利用し、ソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記ＣＰＵ内部メモリへのアクセス回数を軽減することを特徴とする。
【００１３】
また、上述の目的を達成するため、本発明にかかるデータ処理装置は、ＣＰＵメインバスによりＣＰＵと接続された中間バッファと、ホストシステムを前記ＣＰＵメインバスへ接続するホストインタフェースと、外部メモリを前記ＣＰＵメインバスへ接続する周辺デバイスインタフェースと、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記ホストシステムと前記外部メモリとの間の自動データ転送を、前記中間バッファと前記ローカルバスを使用し行う自動データ転送手段とを備えたことを特徴とする。
【００１４】
また、上述の目的を達成するため、本発明にかかるデータ処理装置は、ＣＰＵメインバスによりＣＰＵと接続されたＣＰＵ内部メモリと中間バッファとの間へ設けられたローカルバスと、ローカルＤＭＡ転送を実現するローカルバスコントローラと、前記ローカルバスコントローラがソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、転送ソースデータを切り替えるソースデータ切替え手段とを備えたことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ＣＰＵメインバスによりＣＰＵと接続された中間バッファ、ホストシステムを前記ＣＰＵメインバスへ接続するホストインタフェース、外部メモリを前記ＣＰＵメインバスへ接続する周辺デバイスインタフェースを備えたデータ処理装置において、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスを利用し、前記中間バッファのデータ転送開始機能により、前記中間バッファと前記ローカルバスを使用し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うようにしたので、ＣＰＵメインバス接続構成を変更することなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
【００１６】
本発明によれば、ＣＰＵメインバスによりＣＰＵと接続されたＣＰＵ内部メモリ、中間バッファ、ＤＭＡコントローラおよび周辺デバイスインタフェースを有したデータ処理装置において、前記ＣＰＵ内部メモリと前記中間バッファとの間へ設けられたローカルバスと、ローカルＤＭＡ転送を実現するローカルバスコントローラを利用し、ソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記ＣＰＵ内部メモリへのアクセス回数を軽減するようにしたので、ＣＰＵメインバス接続構成を変更することなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
【００１７】
本発明によれば、ＣＰＵメインバスによりＣＰＵと接続された中間バッファと、ホストシステムを前記ＣＰＵメインバスへ接続するホストインタフェースと、外部メモリを前記ＣＰＵメインバスへ接続する周辺デバイスインタフェースと、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記ホストシステムと前記外部メモリとの間の自動データ転送を、前記中間バッファと前記ローカルバスを使用し行う自動データ転送手段とを備えるように構成したので、ＣＰＵメインバス接続構成を変更することなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
【００１８】
本発明によれば、ＣＰＵメインバスによりＣＰＵと接続されたＣＰＵ内部メモリと中間バッファとの間へ設けられたローカルバスと、ローカルＤＭＡ転送を実現するローカルバスコントローラと、前記ローカルバスコントローラがソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、転送ソースデータを切り替えるソースデータ切替え手段とを備えるように構成したので、ＣＰＵメインバス接続構成を変更することなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
【発明を実施するための最良の形態】
【００１９】
ＣＰＵのバス接続構成に対し変更を伴うことなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、データ処理装置のホストインタフェースと中間バッファとの間、および前記中間バッファと周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記中間バッファを使用し、前記データ処理装置へ前記ホストインタフェースにより接続されたホストシステムと、前記周辺デバイスインタフェースにより接続された外部メモリとの間の自動データ転送を、前記中間バッファのデータ転送開始機能により行うことで実現した。
【００２０】
また、ＣＰＵのバス接続構成に対し変更を伴うことなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、データ処理装置のＣＰＵ内部メモリと中間バッファとの間へ設けられたローカルバスと、ローカルＤＭＡ転送を実現するローカルバスコントローラを利用し、ソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記ＣＰＵ内部メモリへのアクセス回数を軽減することで実現した。
【００２１】
また、ＣＰＵのバス接続構成に対し変更を伴うことなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、データ処理装置のホストインタフェースと中間バッファとの間、および前記中間バッファと周辺デバイスインタフェースとの間へローカルバスを設け、前記データ処理装置へ前記ホストインタフェースにより接続されたホストシステムと、前記周辺デバイスインタフェースにより接続された外部メモリとの間の自動データ転送を、前記中間バッファのデータ転送開始機能により行うことで実現した。
【００２２】
また、ＣＰＵのバス接続構成に対し変更を伴うことなく、データ転送のためのＣＰＵ負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、ＣＰＵメインバスによりＣＰＵと接続されたＣＰＵ内部メモリと中間バッファとの間へローカルバスを設け、さらにローカルＤＭＡ転送を実現するローカルバスコントローラを設け、前記ローカルバスコントローラがソースデータを前記中間バッファから前記ＣＰＵ内部メモリへ前記ローカルバスを介してローカルＤＭＡ転送する際、ソースデータ切替え手段により転送ソースデータを切り替えることで実現した。
【実施例１】
【００２３】
図１は、この実施例１のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、ＣＰＵ１１、ＤＭＡコントローラ１２、ホストコンピュータ１３、ホストインタフェース１４、中間バッファ１５、周辺デバイスインタフェース１６および外部メモリ１７と、これらＣＰＵ１１、ＤＭＡコントローラ１２、ホストインタフェース１４、中間バッファ１５、周辺デバイスインタフェース１６間を接続するＣＰＵメインバス１８と、ホストインタフェース１４と中間バッファ１５との間を接続したローカルバスＬＢ１と、中間バッファ１５と周辺デバイスインタフェース１６との間を接続したローカルバスＬＢ２とを備えている。
【００２４】
中間バッファ１５は、ホストインタフェース１４より出力される１単位データ転送終了信号をもとに、周辺デバイスインタフェース１６へデータ転送開始信号を通知するデータ転送開始機能１５１を備えている。
【００２５】
図２は、この実施例１のデータ転送方法による外部メモリ１７へのデータの書き込み動作を説明するための模式図である。また、図３は、同様に外部メモリ１７からのデータの読み出し動作を説明するための模式図である。図２および図３において、図１と同一または相当の部分については同一の符号を付し説明を省略する。
この実施例１のデータ処理装置では、ホストインタフェース１４、周辺デバイスインタフェース１６、中間バッファ１５が存在するシステムにおけるデータ転送において、割り込み信号認識を用いたＣＰＵ処理による介在なくホストコンピュータ１３と外部メモリ１７との間のデータ転送を実現し、ホストインタフェース１４と周辺デバイスインタフェース１６との間のデータ転送のアクセラレートを実現する。
【００２６】
また、アクセラレート転送の状況は、ステータスを示すステータスレジスタを実装することにより、ＣＰＵ１１は任意のタイミングで途中状況を随時把握することが出来る。予期せぬ転送中断発生の場合でも前記ステータスレジスタの確認を行うことにより、その後のデータの扱い(中間バッファ１５に蓄積されたデータの転送の継続、またはデータの破棄等)をソフトウェアに依るＣＰＵ処理にて決定することが出来る。
【００２７】
また、中間バッファ１５のデータサイズ、構成、および、同時にアクセラレート転送を制御するコントロール信号数の組み合わせにより、データ転送の高効率化の実現が可能である。
【００２８】
中間バッファ１５が備えたデータ転送開始機能１５１は、ホストインタフェース１４より出力される１単位データ転送終了信号を用いることにより、周辺デバイスインタフェース１６へデータ転送開始信号を通知し、または周辺デバイスインタフェース１６より出力される１単位データ転送終了信号を用いることにより、ホストインタフェース１４へデータ転送開始信号を通知し、ＣＰＵ１１の介在なしにデータ転送を開始可能にする機能である。ＣＰＵ１１は、通常データ転送時にホストインタフェース１４より通知されるデータ転送終了割込信号をマスクすることにより、データ転送の状況を認識することなく、他の処理を行うことが可能となる。外部メモリ１７からのデータの読み出しの場合も同様である。
【００２９】
中間バッファ１５は２面構成であり、１面の内部は、（１単位×４の構成）を３つ含んだ領域（符号Ｐ，Ｏ，Ｙで示す）構成となっている。中間バッファ１５によるデータ転送アクセラレートは、多種の周辺デバイスの構造を踏まえ、データ格納ポインタをインクリメント制御することにより行う。インクリメントのタイミングは、ホストインタフェース１４および周辺デバイスインタフェース１６から出力される１単位データ転送終了出力信号を利用する。図２および図３では、アクセラレートモードの場合、連続４単位の自動転送処理を行う例を示しているが、システム構成や周辺デバイスの構造により、それ以上/以下への変更も可能である。
【００３０】
１面が（１単位データ×４の構成）を３つ、ここでは（５１２ｂｙｔｅ×４の構成）×３を持った構造となっているのは、アクセラレートコントロールを２本持つ場合に、アクセラレートデータ転送処理を一本実行中に、もう一本のアクセラレート設定をキューとして蓄えることを可能とし、データ転送の効率をより高めるためである。例えば、（１単位データ×４の構成）×２の状態で、領域Ｐを用いたアクセラレートデータ転送１、領域Ｏを用いたアクセラレートデータ転送２を行うことを考える。領域Ｐの中間バッファ１５から外部メモリ１７への書き込み転送で外部メモリ１７への転送処理が失敗した場合、領域Ｐの中間バッファ１５から外部メモリ１７への転送を再度行う必要があり、その間ホスト側の転送は待たされることとなる。ここで３つ目の領域Ｙを実装している場合、この領域Ｙを用いて、ホストインタフェース１４とのデータ転送を行うことが可能となる（領域Ｐを用いたデータ再転送と、ホストインタフェース１４と中間バッファ１５との間のデータ転送の同時化)。この３つ目の領域Ｙは、中間バッファ１５と外部メモリ１７との間の転送エラー時のデータバックアップ保持機能も備えている。
アクセラレートコントロールは、システム構成(外部デバイス数)により２本以上の実装も可能である。
【００３１】
先ず、図２を参照して外部メモリ１７へのデータの書き込み動作について説明する。
ホストコンピュータ１３から１単位データより大きいサイズのデータ書き込み転送要求が発生すると（ステップＳ１）、このデータ書き込み転送要求はＣＰＵ１１へ送られ、またＣＰＵ１１へデータサイズを通知する（ステップＳ２）。
次に、ＣＰＵ１１がアクセラレートの使用を判断し、中間バッファ１５へは、データ転送に利用するバッファ領域をポインタにより指定するとともに、周辺デバイスインタフェース１６へ外部アクセスの制御設定を行う（ステップＳ３）。
アクセラレート設定が終了後、ホストインタフェース１４からの割り込み信号をマスクし、その後、データ要求を行う（ステップＳ４）。
この結果、ホストコンピュータ１３よりローカルバスＬＢ１を使用して中間バッファ１５へ順次データが転送されてくる。
中間バッファ１５はローカルバスＬＢ１、ＬＢ２を使用して１単位データ受信毎に周辺デバイスインタフェース１６への転送と、ホストインタフェース１４へのデータ転送要求信号を発生し、ＣＰＵ１１の介在なしにホストコンピュータ１３から外部メモリ１７へのデータ転送を行う（ステップＳ５、ステップＳ６、ステップＳ７、ステップＳ８）。
【００３２】
この場合、アクセラレート転送の途中のステータスを示すレジスタを準備することにより、ＣＰＵ１１は状況を随時把握できる。ホスト側で送信中断が発生するなどの予期せぬ原因でアクセラレートデータ転送が途中で中断した場合でも、ＣＰＵ１１はステータスレジスタを確認することにより、中間バッファ１５内に残されたデータの状況を確認し、判断し、その後の処理（ＣＰＵ１１による正常なデータ転送の継続、データの破棄など) を決定することが可能である。
この結果、ＣＰＵ１１へ割り込み信号を通知せず、データ転送を制御することによるデータ転送アクセラレートを実現し、ホストコンピュータ１３から外部メモリ１７へのデータ転送をＣＰＵ処理から独立させ、ＣＰＵ処理能力を他の処理に有効活用できる。
【００３３】
なお、中間バッファ１５は２面構成としているが、複数面での実現も可能である。また、中間バッファ１５は、１面あたり、1単位データ×4つの構成を３つとしているが、多種の周辺デバイスの構造を踏まえたシステムの構築も可能である。
また、中間バッファ１５は、２面構成にあわせ、アクセラレート制御を2本行なっているが、中間バッファ構成に合わせて複数制御を持つことにより、アクセラレートフローが一本実行中に、その他のアクセラレートをキューとして蓄え、データ転送の効率をより高めるシステム構成が可能である。
また、アクセラレート転送の途中ステータス（現在どこまでデータ転送が行われたか）を示すステータスレジスタを準備することにより、ＣＰＵ１１はデータ転送状況を随時把握できる。
ホスト側で送信中断が発生するなどの予期せぬ原因でアクセラレートデータ転送が途中で中断した場合でも、前記ステータスレジスタを確認し中間バッファ１５内に残されたデータの状況を確認し、判断し、その後のＣＰＵ１５による正常なデータの転送を継続する処理、またはデータの破棄などの処理をＣＰＵ側で決定することが可能となり、データ転送中断までのデータの活用の可否を決定できる。
【００３４】
次に、図３を参照して外部メモリ１７からのデータの読み出し動作について説明する。
ホストコンピュータ１３から１単位データより大きいサイズのデータ読み出し転送要求が発生すると（ステップＳ１１）、このデータ読み出し転送要求はＣＰＵ１１へ送られ、またＣＰＵ１１へデータサイズが通知される（ステップＳ１２）。
次に、ＣＰＵ１１がアクセラレートの使用を判断し、中間バッファ１５へは、データ転送に利用するバッファ領域をポインタにより指定するとともに、周辺デバイスインタフェース１６へは、外部アクセスの制御設定を行う（ステップＳ１３）。
ＣＰＵ１１は、アクセラレート設定の終了後、ホストインタフェース１４からの割り込み信号をマスクし、その後、データ要求を行う（ステップＳ１４）。
この結果、外部メモリ１７よりデータが読み出され、ローカルバスＬＢ２を介して順次転送されてくる。中間バッファ１５はローカルバスＬＢ１、ＬＢ２を使用して１単位データ受信毎にホストインタフェース１４への転送と、周辺デバイスインタフェース１６へのデータ転送要求信号を発生し、ＣＰＵ１１の介在なしに外部メモリ１７からのデータの読み出しとホストコンピュータ１３へのデータ転送を行う（ステップＳ１５、ステップＳ１６、ステップＳ１７、ステップＳ１８）。
【００３５】
以上のように、この実施例１によれば、ホストインタフェース１４からの割り込み信号をマスクすることで割り込み信号をＣＰＵ１１へ通知せず、データ転送をＣＰＵ処理から独立させ、データ転送を制御することによるデータ転送アクセラレートを実現でき、ＣＰＵ処理能力を他の処理に有効活用できるデータ転送方法および装置を提供できる効果がある。
【実施例２】
【００３６】
図４は、この実施例２のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、ＣＰＵ２１、ＤＭＡコントローラ２２、ＣＰＵ内部メモリ２３、中間バッファ２５、周辺デバイスコントローラ（周辺デバイスインタフェース）２６、周辺デバイス２７、ホストインタフェース２８、ホストコンピュータ２９およびローカルバスコントローラ３１と、これらＣＰＵ２１、ＤＭＡコントローラ２２、ＣＰＵ内部メモリ２３、中間バッファ２５、周辺デバイスコントローラ２６、ホストインタフェース２８、ローカルバスコントローラ３１間を接続するＣＰＵメインバス３０と、ローカルバスコントローラ３１およびＣＰＵ内部メモリ２３と中間バッファ１５とを接続したローカルバスＬＢ１１と、中間バッファ２５と周辺デバイスコントローラ２６とを接続したローカルバスＬＢ１２と、中間バッファ２５とホストインタフェース２８とを接続したローカルバスＬＢ１３とを備えている。ローカルバスコントローラ３１はソースデータ切替え機能（ソースデータ切替え手段）４１を備えている。
中間バッファ２５は、実施例１で説明したデータ転送開始機能（自動データ転送手段）１５１を備えている。
【００３７】
この実施例２のデータ処理装置は、ローカルバスＬＢ１１、ＬＢ１２、ＬＢ１３と、ローカルバスコントローラ３１を備え、ＣＰＵ２１は、ＣＰＵメインバス３０を経由して直接、中間バッファ２５へのデータアクセスを可能とする。
ローカルＤＭＡ転送の開始は、ブロック動作設定レジスタ群の該当レジスタへの設定により開始し、転送終了は終了を示すステータスレジスタをチェックすることにより、ＣＰＵ２１はデータ転送終了を認識することが出来る。
ローカルバスコントローラ３１は、ソースデータ切替え機能４１により、ローカルバスＬＢ１１を利用したローカルＤＭＡ転送時、転送ソースデータを切り替えることが可能である。
このソースデータ切替え機能４１の実行有無は、ソフトウェアプログラム上で切り替えを行うことを可能とし、ブロック動作設定レジスタ群の該当レジスタに設定することにより実現する。
【００３８】
このデータ処理装置においてデータ編集や参照作業を行う場合、周辺デバイス２７から中間バッファ２５へデータを取り出した後は、ＣＰＵ２１はＣＰＵメインバス３０を経由し中間バッファ２５へ直接アクセスが可能であるため、データをＣＰＵメモリ空間へ転送することなく、確認、編集が可能となる。例えば、ＤＭＡ転送データサイズが５１２Ｂｙｔｅであり、そのうちの１Ｂｙｔｅ分のデータのみ修正を行いたい場合、従来では、ＣＰＵメモリ空間へ５１２ｂｙｔｅのデータをＤＭＡ転送した後、該当する１Ｂｙｔｅの修正を行なっていたが、この実施例２では、ＤＭＡ転送を行うことなく、直接中間バッファ中の該当１Ｂｙｔｅを修正することにより、作業が終了する。この効果は、ＤＭＡデータ転送サイズの大きさに比例し、データの一部を編集、参照したい場合に、フロー所要時間の短縮の効果を発揮する。
【００３９】
また、ＣＰＵメモリ空間と中間バッファ２５との間のデータ転送は、ローカルバスＬＢ１１経由のＤＭＡ転送を行うことにより、ＣＰＵメインバス３０の占有率に依存せずにデータ転送を行うことが出来る。
ＣＰＵ２１はデータ転送終了を示すステータスレジスタにより転送終了を認識するため、ステータスが終了を示すまでは、他の処理にＣＰＵ能力を充てることが出来る。
データ転送終了をＣＰＵ２１へ通知する手段には、ステータスレジスタをＣＰＵ２１がチェックする方法、または、データ終了割り込み信号をＣＰＵ２１へ通知する方法が考えられる。
【００４０】
ローカルＤＭＡデータ転送の際、ソースデータは、ソフトウェアプログラム上で選択を行うことが可能である。
図５は、この実施例２のデータ処理装置においてソースデータをソフトウェアプログラム上で選択可能にする構成の一例を示すブロック図である。
通常は中間バッファ２５上のデータをソースとしているが、ターゲットとなるＣＰＵメモリ空間の特定領域に特定データ（例えばＡＬＬ１等）を準備したい場合には、ソースデータの切り替え設定を用いる。すなわち、ＣＰＵ２１は、図５に示すソースデータ格納レジスタ（ソースデータ切替え手段）５１へのデータ設定を行い、セレクタ（ソースデータ切替え手段）５２によりソースデータを切り替え、ローカルＤＭＡデータサイズ、およびスタート設定の処理を行うだけで良く、設定後は他の処理に移ることが出来る。ＣＰＵ内部メモリ空間に特定データ（ＡＬＬ１やＡＬＬ０  Ｆ０Ｆ０ｈ等）を準備する処理は、その準備データのサイズの大きさに比例するため、ソースデータを準備するＣＰＵ処理を軽減する効果を発揮する。
【００４１】
この結果、従来では、データ準備のためにＣＰＵ２１がＣＰＵ内部メモリ２３へアクセスする回数、つまり処理数は、（準備したいデータサイズ ）／ （ＣＰＵが一回内部メモリにアクセスできるデータサイズ）回である。ソースデータ格納レジスタ５１のサイズは、システム全体の検討段階でＣＰＵ２１のアクセスサイズ、アクセスモード（Ｂｙｔｅ単位、Ｗｏｒｄ単位、ＨａｌｆＷｏｒｄ単位、Ｑｕａｄｌｅｔ単位等）に応じて決定することにより、システムとしての処理数を減らすことが可能である。
【００４２】
図６は、この実施例２のデータ処理装置において、ホストコンピュータ１３から例えば外部メモリである周辺デバイス２７へデータ転送アクセラレートを実現するデータ転送処理動作を示すフローチャートである。
このホストコンピュータ１３と周辺デバイス２７との間のデータ転送処理動作は、前記実施例１で説明したホストコンピュータ１３と外部メモリ１７との間のデータ転送処理形態と同様のものとなる。
図６に示すデータ転送処理では、ＣＰＵ２１は、ホストコンピュータ１３から例えば外部メモリである周辺デバイス２７へまとまったデータ書き込み要求があるか否か（ステップＳ２１）、さらにそのデータサイズが例えば２ＫＢｙｔｅ以上のまとまったデータサイズであるか否か（ステップＳ２２）を判定している。
ホストコンピュータ１３は例えば２ＫＢｙｔｅのまとまったデータ書き込みを行うときには、そのデータ書き込み要求やデータサイズをＣＰＵ２１へ通知する。
ＣＰＵ２１は、ホストコンピュータ１３からこのデータ書き込み要求があると、前記外部メモリへのデータ書き込み設定を行う。
このデータ書き込み設定は、中間バッファ２５のアクセラレート転送設定（ステップＳ２３）と外部メモリブロックのアクセラレート転送設定（ステップＳ２４）である。中間バッファ２５のアクセラレート転送設定では、データ転送に利用するバッファ領域をポインタにより指定する。また、外部メモリブロックのアクセラレート転送設定では、周辺デバイスコントローラ２６に対し外部アクセスの制御設定を行う。これらアクセラレート転送設定が終了すると、ＣＰＵ２１は、ホストインタフェース２６からの割り込み信号をマスクし、ホストコンピュータ２９へ準備完了を通知する（ステップＳ２５）。
この結果、ホストコンピュータ２９から中間バッファ２５へ順次データが転送される。このデータ転送では、中間バッファ２５のデータ転送開始機能１５１が２ＫＢｙｔｅのまとまったデータの転送が終了するまで、１単位データ受信ごとに周辺デバイスコントローラ２６への転送と、ホストコンピュータ２９へ次のデータについての転送要求を行う。
ＣＰＵ２１はホストコンピュータ１３から周辺デバイス２７へ２ＫＢｙｔｅのまとまったデータの転送が終了したかを判定しており（ステップＳ２６）、この２ＫＢｙｔｅのまとまったデータの転送が終了すると、ＣＰＵ２１はホストコンピュータ２９へ２ＫＢｙｔｅのまとまったデータの書き込み完了を通知する（ステップＳ２７）。
【００４３】
ステップＳ２２において、データサイズが例えば２ＫＢｙｔｅ以上のまとまったデータサイズではないと判定した場合には、中間バッファ２５の転送設定（ステップＳ３１）と外部メモリブロックの転送設定（ステップＳ３２）を行う。
これら転送設定が終了すると、ＣＰＵ２１は、ホストコンピュータ２９へ準備完了を通知する（ステップＳ３３）。
この結果、中間バッファ２５のデータ転送開始機能１５１によりホストコンピュータ２９から中間バッファ２５を介して周辺デバイス２７へデータの転送が開始される。
ＣＰＵ２１はホストコンピュータ２９から周辺デバイス２７へデータの転送が終了したかを判定しており（ステップＳ３４）、このデータの転送が終了すると、ＣＰＵ２１はホストコンピュータ２９へデータの転送完了を通知する（ステップＳ３５）。
【００４４】
以上のように、この実施例２においても、前記実施例１と同様な効果が得られるデータ転送方法および装置を提供できる。
また、ターゲットとなるＣＰＵメモリ空間の特定領域にＡＬＬ１などの特定データを準備したい場合、ＣＰＵ２１は、ローカルバスコントローラ３１のソースデータ切替え機能４１のソースデータ格納レジスタ５１へデータ設定を行い、セレクタ５２によりソースデータを切り替え、ローカルバスコントローラ３１のローカルＤＭＡ転送のローカルＤＭＡデータサイズ、およびスタート設定の処理を行うだけで実現でき、設定後は他の処理に移ることが出来るなど、ソースデータを準備するＣＰＵ処理を軽減できるデータ転送方法および装置を提供できる効果がある。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施例１のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
【図２】本発明の実施例１のデータ転送方法による外部メモリへのデータの書き込み動作を説明するための模式図である。
【図３】本発明の実施例１のデータ転送方法による外部メモリからのデータの読み出し動作を説明するための模式図である。
【図４】本発明の実施例２のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
【図５】本発明の実施例２のデータ転送方法が適用されるデータ処理装置においてソースデータをソフトウェアプログラム上で選択可能にする構成の一例を示すブロック図である。
【図６】本発明の実施例２のデータ転送方法が適用されるデータ処理装置において、ホストコンピュータから周辺デバイスへデータ転送アクセラレートを実現するデータ転処理動作を示すフローチャートである。
【図７】従来例１のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
【図８】従来例２のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
【符号の説明】
【００４６】
１１，２１……ＣＰＵ、１２，２２……ＤＭＡコントローラ、１３，２９……ホストコンピュータ、１４，２８……ホストインタフェース、１５，２５……中間バッファ、１６……周辺デバイスインタフェース、１７……外部メモリ、１８，３０……ＣＰＵメインバス、２３……ＣＰＵ内部メモリ、２６……周辺デバイスコントローラ、２７……周辺デバイス、３１……ローカルバスコントローラ、４１……ソースデータ切替え機能（ソースデータ切替え手段）、５１……ソースデータ格納レジスタ（ソースデータ切替え手段）、５２……セレクタ（ソースデータ切替え手段）、ＬＢ１，ＬＢ２，ＬＢ３，ＬＢ１１，ＬＢ１２，ＬＢ１３……ローカルバス、１５１……データ転送開始機能（自動データ転送手段）。
【図１】
2005316700.tif 000003
【図２】
2005316700.tif 000004
【図３】
2005316700.tif 000005
【図４】
2005316700.tif 000006
【図５】
2005316700.tif 000007
【図６】
2005316700.tif 000008
【図７】
2005316700.tif 000009
【図８】
2005316700.tif 000010