JP2005316700A - データ転送方法および装置 - Google Patents

データ転送方法および装置 Download PDF

Info

Publication number
JP2005316700A
JP2005316700A JP2004133653A JP2004133653A JP2005316700A JP 2005316700 A JP2005316700 A JP 2005316700A JP 2004133653 A JP2004133653 A JP 2004133653A JP 2004133653 A JP2004133653 A JP 2004133653A JP 2005316700 A JP2005316700 A JP 2005316700A
Authority
JP
Japan
Prior art keywords
cpu
data
data transfer
intermediate buffer
peripheral device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004133653A
Other languages
English (en)
Inventor
Kunihiro Miura
邦博 三浦
Kenichi Satori
謙一 佐鳥
Takahiro Fukushige
貴広 福重
Toshinori Nakamura
俊紀 中村
Kensuke Hatsukawa
健介 初川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004133653A priority Critical patent/JP2005316700A/ja
Publication of JP2005316700A publication Critical patent/JP2005316700A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 CPUのバス接続構成に対し変更を伴うことなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供すること。
【解決手段】 ホストインタフェース14、周辺デバイスインタフェース16、中間バッファ15が存在するシステムにおいて、データ転送開始機能151が、ホストインタフェース14より出力される1単位データ転送終了信号を用いることにより、周辺デバイスインタフェース16へデータ転送開始信号を通知し、または周辺デバイスインタフェース16より出力される1単位データ転送終了信号を用いることにより、ホストインタフェース14へデータ転送開始信号を通知し、CPU11の介在をなくし、ホストコンピュータ13と外部メモリ17との間のデータ転送のアクセラレートを実現する。
【選択図】 図1

Description

本発明は、メインバスがデータ転送のために占有されてしまう状況を回避し、データ転送のためのCPU負荷を軽減できるデータ転送方法および装置に関する。
図7は、ホストコンピュータと外部メモリとの間で中間バッファを介しデータの転送を行う従来例1のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、CPU101、DMAコントローラ102、ホストコンピュータ103、ホストインタフェース104、中間バッファ105、周辺デバイスインタフェース106および外部メモリ107と、これらCPU101、DMAコントローラ102、ホストインタフェース104、中間バッファ105、周辺デバイスインタフェース106間を接続するCPUメインバス108とを備えている。
このデータ処理装置において、ホストインタフェース104から周辺デバイスインタフェース106へのデータ転送(外部メモリ107へのデータの書き込み)を行う際のデータ転送方法は、CPUメインバス108を経由してホストインタフェース104から中間バッファ105への転送を開始し(ステップS201)、次に、ホストインタフェース104から中間バッファ105への転送終了により、ホストインタフェース104から出力される割込信号をCPU101が認識し(ステップS202)、CPU101は、周辺デバイスインタフェース106に対し、中間バッファ105から周辺デバイスインタフェース106への転送を設定する(ステップS203)。
その後、データ転送が開始され(ステップS204)、外部メモリ107へのデータ格納終了を周辺デバイスインタフェース106より出力される割込信号によりCPU101が認識する(ステップS205)。このような手順により一連のデータ転送が終了する。
また、逆方向へのデータ転送(外部メモリ107からのデータの読み出し)は、先ず、CPU101が周辺デバイスインタフェース106に対し、外部メモリ107から周辺デバイスインタフェース106への転送を設定し、転送を開始する(ステップS206)。
次に、周辺デバイスインタフェース106から中間バッファ105への転送終了により、周辺デバイスインタフェース106より出力される割込信号をCPU101が認識し(ステップS207)、次に、CPU101は、ホストインタフェース104を経由し、ホストコンピュータ103に対し中間バッファ105からホストインタフェース104へのデータ準備済状態を通知し、その後、ホストコンピュータ103の読み出し要求に従い、転送を開始する(ステップS208)。
そして、CPU101は、ホストコンピュータ103による正常データ受信信号を受け取ることにより、データ転送を終了する(ステップS209)。
図8は、従来例2のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、CPU201、DMAコントローラ202、内部メモリ203、中間バッファ205、周辺デバイスコントローラ206および周辺デバイス207と、これらCPU201、DMAコントローラ202、内部メモリ203、中間バッファ205、周辺デバイスコントローラ206間を接続するCPUメインバス208を備えている。
このデータ処理装置において、周辺デバイス207に格納されたデータの変更を試みる場合、先ず、周辺デバイスコントローラ206を用いて周辺デバイス207より一単位(例えば512Byte)となるひとかたまりのデータの取得を行い、中間バッファ205に格納する。
その後、CPUメインバス208を経由し、中間バッファ205から内部メモリ203へDMAデータ転送を行い、前記データを内部メモリ203へ展開する。CPU201から内部メモリ203へはアクセスが可能であるため、内部メモリ203へアクセスしデータ参照、変更を行う。データ変更終了後、周辺デバイス207へデータを戻すには、これまでの手順を逆に踏むことにより格納を終了する。
このような中間バッファを介してホストコンピュータと外部メモリとの間でデータの転送を行う従来のデータ転送方法に対し、CPUがDMA転送開始コマンドを発行するだけで、周辺デバイスに関するデータ転送の制御は常時行わず、DMAコントローラのチャネルによりCPUメインバスとは別のCPUローカルバス上で周辺デバイス制御のデータ転送をDMA転送により高速に行い、CPUの負荷を最小限にし、周辺デバイスの制御処理を高速化する周辺デバイス制御データの転送方法がある(例えば、特許文献1参照)。
特許第3399776号公報
かかる従来のデータ転送方法および装置では、以下の短所が付随している。
この従来の特許文献1に開示されたデータ転送方法および装置は、周辺デバイスに対する制御用データに関するものであり、また、CPUにはCPUローカルバスとCPUメインバスが接続される構成であるなど、制御用データ転送のためのCPU負荷の軽減、メインバスがデータ転送のために占有されてしまう状況の回避実現のため従来のCPUバス接続構成に変更が伴うという課題があった。
また、このような特許文献1に開示された構成をとらない従来のデータ転送方法および装置では、CPU内部メモリ空間に特定データ(ALL1やALL0、F0F0h等)を準備したい場合、(準備したいデータサイズ)/ (CPUが内部メモリに1度でアクセスできるデータサイズ)回の書き込み作業が必要となる。例えば、準備したいデータが10Byte、CPUが内部メモリ203に1度でアクセスできるデータサイズ1Byteの場合、CPU201は10Byte÷1Byte=10回の書き込み作業が必要となる。この書き込み作業は、準備したいデータサイズの大きさに比例し、CPU201が内部メモリ203に1度でアクセスできるデータサイズに反比例し、その準備に必要となるCPU処理が増大するなど、周辺デバイス内のデータ変更、及び参照を行う機会毎に、CPUメインバスを経由したデータ転送が発生し、その結果、CPUメインバスを占有し、CPUが行う他の処理に遅延をもたらすという課題がある。
本発明は、このような事情に鑑みてなされたものであり、CPUのバス接続構成を変更することなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供することを目的とする。
上述の目的を達成するため、本発明にかかるデータ転送方法は、CPUメインバスによりCPUと接続された中間バッファ、ホストシステムを前記CPUメインバスへ接続するホストインタフェース、外部メモリを前記CPUメインバスへ接続する周辺デバイスインタフェースを備えたデータ処理装置において、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスを利用し、前記中間バッファのデータ転送開始機能により、前記中間バッファと前記ローカルバスを使用し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする。
また、上述の目的を達成するため、本発明にかかるデータ転送方法は、CPUメインバスによりCPUと接続されたCPU内部メモリ、中間バッファ、DMAコントローラおよび周辺デバイスインタフェースを有したデータ処理装置において、前記CPU内部メモリと前記中間バッファとの間へ設けられたローカルバスと、ローカルDMA転送を実現するローカルバスコントローラを利用し、ソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記CPU内部メモリへのアクセス回数を軽減することを特徴とする。
また、上述の目的を達成するため、本発明にかかるデータ処理装置は、CPUメインバスによりCPUと接続された中間バッファと、ホストシステムを前記CPUメインバスへ接続するホストインタフェースと、外部メモリを前記CPUメインバスへ接続する周辺デバイスインタフェースと、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記ホストシステムと前記外部メモリとの間の自動データ転送を、前記中間バッファと前記ローカルバスを使用し行う自動データ転送手段とを備えたことを特徴とする。
また、上述の目的を達成するため、本発明にかかるデータ処理装置は、CPUメインバスによりCPUと接続されたCPU内部メモリと中間バッファとの間へ設けられたローカルバスと、ローカルDMA転送を実現するローカルバスコントローラと、前記ローカルバスコントローラがソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、転送ソースデータを切り替えるソースデータ切替え手段とを備えたことを特徴とする。
本発明によれば、CPUメインバスによりCPUと接続された中間バッファ、ホストシステムを前記CPUメインバスへ接続するホストインタフェース、外部メモリを前記CPUメインバスへ接続する周辺デバイスインタフェースを備えたデータ処理装置において、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスを利用し、前記中間バッファのデータ転送開始機能により、前記中間バッファと前記ローカルバスを使用し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うようにしたので、CPUメインバス接続構成を変更することなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
本発明によれば、CPUメインバスによりCPUと接続されたCPU内部メモリ、中間バッファ、DMAコントローラおよび周辺デバイスインタフェースを有したデータ処理装置において、前記CPU内部メモリと前記中間バッファとの間へ設けられたローカルバスと、ローカルDMA転送を実現するローカルバスコントローラを利用し、ソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記CPU内部メモリへのアクセス回数を軽減するようにしたので、CPUメインバス接続構成を変更することなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
本発明によれば、CPUメインバスによりCPUと接続された中間バッファと、ホストシステムを前記CPUメインバスへ接続するホストインタフェースと、外部メモリを前記CPUメインバスへ接続する周辺デバイスインタフェースと、前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記ホストシステムと前記外部メモリとの間の自動データ転送を、前記中間バッファと前記ローカルバスを使用し行う自動データ転送手段とを備えるように構成したので、CPUメインバス接続構成を変更することなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
本発明によれば、CPUメインバスによりCPUと接続されたCPU内部メモリと中間バッファとの間へ設けられたローカルバスと、ローカルDMA転送を実現するローカルバスコントローラと、前記ローカルバスコントローラがソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、転送ソースデータを切り替えるソースデータ切替え手段とを備えるように構成したので、CPUメインバス接続構成を変更することなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できる効果がある。
CPUのバス接続構成に対し変更を伴うことなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、データ処理装置のホストインタフェースと中間バッファとの間、および前記中間バッファと周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記中間バッファを使用し、前記データ処理装置へ前記ホストインタフェースにより接続されたホストシステムと、前記周辺デバイスインタフェースにより接続された外部メモリとの間の自動データ転送を、前記中間バッファのデータ転送開始機能により行うことで実現した。
また、CPUのバス接続構成に対し変更を伴うことなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、データ処理装置のCPU内部メモリと中間バッファとの間へ設けられたローカルバスと、ローカルDMA転送を実現するローカルバスコントローラを利用し、ソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記CPU内部メモリへのアクセス回数を軽減することで実現した。
また、CPUのバス接続構成に対し変更を伴うことなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、データ処理装置のホストインタフェースと中間バッファとの間、および前記中間バッファと周辺デバイスインタフェースとの間へローカルバスを設け、前記データ処理装置へ前記ホストインタフェースにより接続されたホストシステムと、前記周辺デバイスインタフェースにより接続された外部メモリとの間の自動データ転送を、前記中間バッファのデータ転送開始機能により行うことで実現した。
また、CPUのバス接続構成に対し変更を伴うことなく、データ転送のためのCPU負荷を軽減し、メインバスがデータ転送のために占有されてしまう状況を回避できるデータ転送方法および装置を提供するという目的を、CPUメインバスによりCPUと接続されたCPU内部メモリと中間バッファとの間へローカルバスを設け、さらにローカルDMA転送を実現するローカルバスコントローラを設け、前記ローカルバスコントローラがソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、ソースデータ切替え手段により転送ソースデータを切り替えることで実現した。
図1は、この実施例1のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、CPU11、DMAコントローラ12、ホストコンピュータ13、ホストインタフェース14、中間バッファ15、周辺デバイスインタフェース16および外部メモリ17と、これらCPU11、DMAコントローラ12、ホストインタフェース14、中間バッファ15、周辺デバイスインタフェース16間を接続するCPUメインバス18と、ホストインタフェース14と中間バッファ15との間を接続したローカルバスLB1と、中間バッファ15と周辺デバイスインタフェース16との間を接続したローカルバスLB2とを備えている。
中間バッファ15は、ホストインタフェース14より出力される1単位データ転送終了信号をもとに、周辺デバイスインタフェース16へデータ転送開始信号を通知するデータ転送開始機能151を備えている。
図2は、この実施例1のデータ転送方法による外部メモリ17へのデータの書き込み動作を説明するための模式図である。また、図3は、同様に外部メモリ17からのデータの読み出し動作を説明するための模式図である。図2および図3において、図1と同一または相当の部分については同一の符号を付し説明を省略する。
この実施例1のデータ処理装置では、ホストインタフェース14、周辺デバイスインタフェース16、中間バッファ15が存在するシステムにおけるデータ転送において、割り込み信号認識を用いたCPU処理による介在なくホストコンピュータ13と外部メモリ17との間のデータ転送を実現し、ホストインタフェース14と周辺デバイスインタフェース16との間のデータ転送のアクセラレートを実現する。
また、アクセラレート転送の状況は、ステータスを示すステータスレジスタを実装することにより、CPU11は任意のタイミングで途中状況を随時把握することが出来る。予期せぬ転送中断発生の場合でも前記ステータスレジスタの確認を行うことにより、その後のデータの扱い(中間バッファ15に蓄積されたデータの転送の継続、またはデータの破棄等)をソフトウェアに依るCPU処理にて決定することが出来る。
また、中間バッファ15のデータサイズ、構成、および、同時にアクセラレート転送を制御するコントロール信号数の組み合わせにより、データ転送の高効率化の実現が可能である。
中間バッファ15が備えたデータ転送開始機能151は、ホストインタフェース14より出力される1単位データ転送終了信号を用いることにより、周辺デバイスインタフェース16へデータ転送開始信号を通知し、または周辺デバイスインタフェース16より出力される1単位データ転送終了信号を用いることにより、ホストインタフェース14へデータ転送開始信号を通知し、CPU11の介在なしにデータ転送を開始可能にする機能である。CPU11は、通常データ転送時にホストインタフェース14より通知されるデータ転送終了割込信号をマスクすることにより、データ転送の状況を認識することなく、他の処理を行うことが可能となる。外部メモリ17からのデータの読み出しの場合も同様である。
中間バッファ15は2面構成であり、1面の内部は、(1単位×4の構成)を3つ含んだ領域(符号P,O,Yで示す)構成となっている。中間バッファ15によるデータ転送アクセラレートは、多種の周辺デバイスの構造を踏まえ、データ格納ポインタをインクリメント制御することにより行う。インクリメントのタイミングは、ホストインタフェース14および周辺デバイスインタフェース16から出力される1単位データ転送終了出力信号を利用する。図2および図3では、アクセラレートモードの場合、連続4単位の自動転送処理を行う例を示しているが、システム構成や周辺デバイスの構造により、それ以上/以下への変更も可能である。
1面が(1単位データ×4の構成)を3つ、ここでは(512byte×4の構成)×3を持った構造となっているのは、アクセラレートコントロールを2本持つ場合に、アクセラレートデータ転送処理を一本実行中に、もう一本のアクセラレート設定をキューとして蓄えることを可能とし、データ転送の効率をより高めるためである。例えば、(1単位データ×4の構成)×2の状態で、領域Pを用いたアクセラレートデータ転送1、領域Oを用いたアクセラレートデータ転送2を行うことを考える。領域Pの中間バッファ15から外部メモリ17への書き込み転送で外部メモリ17への転送処理が失敗した場合、領域Pの中間バッファ15から外部メモリ17への転送を再度行う必要があり、その間ホスト側の転送は待たされることとなる。ここで3つ目の領域Yを実装している場合、この領域Yを用いて、ホストインタフェース14とのデータ転送を行うことが可能となる(領域Pを用いたデータ再転送と、ホストインタフェース14と中間バッファ15との間のデータ転送の同時化)。この3つ目の領域Yは、中間バッファ15と外部メモリ17との間の転送エラー時のデータバックアップ保持機能も備えている。
アクセラレートコントロールは、システム構成(外部デバイス数)により2本以上の実装も可能である。
先ず、図2を参照して外部メモリ17へのデータの書き込み動作について説明する。
ホストコンピュータ13から1単位データより大きいサイズのデータ書き込み転送要求が発生すると(ステップS1)、このデータ書き込み転送要求はCPU11へ送られ、またCPU11へデータサイズを通知する(ステップS2)。
次に、CPU11がアクセラレートの使用を判断し、中間バッファ15へは、データ転送に利用するバッファ領域をポインタにより指定するとともに、周辺デバイスインタフェース16へ外部アクセスの制御設定を行う(ステップS3)。
アクセラレート設定が終了後、ホストインタフェース14からの割り込み信号をマスクし、その後、データ要求を行う(ステップS4)。
この結果、ホストコンピュータ13よりローカルバスLB1を使用して中間バッファ15へ順次データが転送されてくる。
中間バッファ15はローカルバスLB1、LB2を使用して1単位データ受信毎に周辺デバイスインタフェース16への転送と、ホストインタフェース14へのデータ転送要求信号を発生し、CPU11の介在なしにホストコンピュータ13から外部メモリ17へのデータ転送を行う(ステップS5、ステップS6、ステップS7、ステップS8)。
この場合、アクセラレート転送の途中のステータスを示すレジスタを準備することにより、CPU11は状況を随時把握できる。ホスト側で送信中断が発生するなどの予期せぬ原因でアクセラレートデータ転送が途中で中断した場合でも、CPU11はステータスレジスタを確認することにより、中間バッファ15内に残されたデータの状況を確認し、判断し、その後の処理(CPU11による正常なデータ転送の継続、データの破棄など) を決定することが可能である。
この結果、CPU11へ割り込み信号を通知せず、データ転送を制御することによるデータ転送アクセラレートを実現し、ホストコンピュータ13から外部メモリ17へのデータ転送をCPU処理から独立させ、CPU処理能力を他の処理に有効活用できる。
なお、中間バッファ15は2面構成としているが、複数面での実現も可能である。また、中間バッファ15は、1面あたり、1単位データ×4つの構成を3つとしているが、多種の周辺デバイスの構造を踏まえたシステムの構築も可能である。
また、中間バッファ15は、2面構成にあわせ、アクセラレート制御を2本行なっているが、中間バッファ構成に合わせて複数制御を持つことにより、アクセラレートフローが一本実行中に、その他のアクセラレートをキューとして蓄え、データ転送の効率をより高めるシステム構成が可能である。
また、アクセラレート転送の途中ステータス(現在どこまでデータ転送が行われたか)を示すステータスレジスタを準備することにより、CPU11はデータ転送状況を随時把握できる。
ホスト側で送信中断が発生するなどの予期せぬ原因でアクセラレートデータ転送が途中で中断した場合でも、前記ステータスレジスタを確認し中間バッファ15内に残されたデータの状況を確認し、判断し、その後のCPU15による正常なデータの転送を継続する処理、またはデータの破棄などの処理をCPU側で決定することが可能となり、データ転送中断までのデータの活用の可否を決定できる。
次に、図3を参照して外部メモリ17からのデータの読み出し動作について説明する。
ホストコンピュータ13から1単位データより大きいサイズのデータ読み出し転送要求が発生すると(ステップS11)、このデータ読み出し転送要求はCPU11へ送られ、またCPU11へデータサイズが通知される(ステップS12)。
次に、CPU11がアクセラレートの使用を判断し、中間バッファ15へは、データ転送に利用するバッファ領域をポインタにより指定するとともに、周辺デバイスインタフェース16へは、外部アクセスの制御設定を行う(ステップS13)。
CPU11は、アクセラレート設定の終了後、ホストインタフェース14からの割り込み信号をマスクし、その後、データ要求を行う(ステップS14)。
この結果、外部メモリ17よりデータが読み出され、ローカルバスLB2を介して順次転送されてくる。中間バッファ15はローカルバスLB1、LB2を使用して1単位データ受信毎にホストインタフェース14への転送と、周辺デバイスインタフェース16へのデータ転送要求信号を発生し、CPU11の介在なしに外部メモリ17からのデータの読み出しとホストコンピュータ13へのデータ転送を行う(ステップS15、ステップS16、ステップS17、ステップS18)。
以上のように、この実施例1によれば、ホストインタフェース14からの割り込み信号をマスクすることで割り込み信号をCPU11へ通知せず、データ転送をCPU処理から独立させ、データ転送を制御することによるデータ転送アクセラレートを実現でき、CPU処理能力を他の処理に有効活用できるデータ転送方法および装置を提供できる効果がある。
図4は、この実施例2のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
このデータ処理装置は、CPU21、DMAコントローラ22、CPU内部メモリ23、中間バッファ25、周辺デバイスコントローラ(周辺デバイスインタフェース)26、周辺デバイス27、ホストインタフェース28、ホストコンピュータ29およびローカルバスコントローラ31と、これらCPU21、DMAコントローラ22、CPU内部メモリ23、中間バッファ25、周辺デバイスコントローラ26、ホストインタフェース28、ローカルバスコントローラ31間を接続するCPUメインバス30と、ローカルバスコントローラ31およびCPU内部メモリ23と中間バッファ15とを接続したローカルバスLB11と、中間バッファ25と周辺デバイスコントローラ26とを接続したローカルバスLB12と、中間バッファ25とホストインタフェース28とを接続したローカルバスLB13とを備えている。ローカルバスコントローラ31はソースデータ切替え機能(ソースデータ切替え手段)41を備えている。
中間バッファ25は、実施例1で説明したデータ転送開始機能(自動データ転送手段)151を備えている。
この実施例2のデータ処理装置は、ローカルバスLB11、LB12、LB13と、ローカルバスコントローラ31を備え、CPU21は、CPUメインバス30を経由して直接、中間バッファ25へのデータアクセスを可能とする。
ローカルDMA転送の開始は、ブロック動作設定レジスタ群の該当レジスタへの設定により開始し、転送終了は終了を示すステータスレジスタをチェックすることにより、CPU21はデータ転送終了を認識することが出来る。
ローカルバスコントローラ31は、ソースデータ切替え機能41により、ローカルバスLB11を利用したローカルDMA転送時、転送ソースデータを切り替えることが可能である。
このソースデータ切替え機能41の実行有無は、ソフトウェアプログラム上で切り替えを行うことを可能とし、ブロック動作設定レジスタ群の該当レジスタに設定することにより実現する。
このデータ処理装置においてデータ編集や参照作業を行う場合、周辺デバイス27から中間バッファ25へデータを取り出した後は、CPU21はCPUメインバス30を経由し中間バッファ25へ直接アクセスが可能であるため、データをCPUメモリ空間へ転送することなく、確認、編集が可能となる。例えば、DMA転送データサイズが512Byteであり、そのうちの1Byte分のデータのみ修正を行いたい場合、従来では、CPUメモリ空間へ512byteのデータをDMA転送した後、該当する1Byteの修正を行なっていたが、この実施例2では、DMA転送を行うことなく、直接中間バッファ中の該当1Byteを修正することにより、作業が終了する。この効果は、DMAデータ転送サイズの大きさに比例し、データの一部を編集、参照したい場合に、フロー所要時間の短縮の効果を発揮する。
また、CPUメモリ空間と中間バッファ25との間のデータ転送は、ローカルバスLB11経由のDMA転送を行うことにより、CPUメインバス30の占有率に依存せずにデータ転送を行うことが出来る。
CPU21はデータ転送終了を示すステータスレジスタにより転送終了を認識するため、ステータスが終了を示すまでは、他の処理にCPU能力を充てることが出来る。
データ転送終了をCPU21へ通知する手段には、ステータスレジスタをCPU21がチェックする方法、または、データ終了割り込み信号をCPU21へ通知する方法が考えられる。
ローカルDMAデータ転送の際、ソースデータは、ソフトウェアプログラム上で選択を行うことが可能である。
図5は、この実施例2のデータ処理装置においてソースデータをソフトウェアプログラム上で選択可能にする構成の一例を示すブロック図である。
通常は中間バッファ25上のデータをソースとしているが、ターゲットとなるCPUメモリ空間の特定領域に特定データ(例えばALL1等)を準備したい場合には、ソースデータの切り替え設定を用いる。すなわち、CPU21は、図5に示すソースデータ格納レジスタ(ソースデータ切替え手段)51へのデータ設定を行い、セレクタ(ソースデータ切替え手段)52によりソースデータを切り替え、ローカルDMAデータサイズ、およびスタート設定の処理を行うだけで良く、設定後は他の処理に移ることが出来る。CPU内部メモリ空間に特定データ(ALL1やALL0 F0F0h等)を準備する処理は、その準備データのサイズの大きさに比例するため、ソースデータを準備するCPU処理を軽減する効果を発揮する。
この結果、従来では、データ準備のためにCPU21がCPU内部メモリ23へアクセスする回数、つまり処理数は、(準備したいデータサイズ )/ (CPUが一回内部メモリにアクセスできるデータサイズ)回である。ソースデータ格納レジスタ51のサイズは、システム全体の検討段階でCPU21のアクセスサイズ、アクセスモード(Byte単位、Word単位、HalfWord単位、Quadlet単位等)に応じて決定することにより、システムとしての処理数を減らすことが可能である。
図6は、この実施例2のデータ処理装置において、ホストコンピュータ13から例えば外部メモリである周辺デバイス27へデータ転送アクセラレートを実現するデータ転送処理動作を示すフローチャートである。
このホストコンピュータ13と周辺デバイス27との間のデータ転送処理動作は、前記実施例1で説明したホストコンピュータ13と外部メモリ17との間のデータ転送処理形態と同様のものとなる。
図6に示すデータ転送処理では、CPU21は、ホストコンピュータ13から例えば外部メモリである周辺デバイス27へまとまったデータ書き込み要求があるか否か(ステップS21)、さらにそのデータサイズが例えば2KByte以上のまとまったデータサイズであるか否か(ステップS22)を判定している。
ホストコンピュータ13は例えば2KByteのまとまったデータ書き込みを行うときには、そのデータ書き込み要求やデータサイズをCPU21へ通知する。
CPU21は、ホストコンピュータ13からこのデータ書き込み要求があると、前記外部メモリへのデータ書き込み設定を行う。
このデータ書き込み設定は、中間バッファ25のアクセラレート転送設定(ステップS23)と外部メモリブロックのアクセラレート転送設定(ステップS24)である。中間バッファ25のアクセラレート転送設定では、データ転送に利用するバッファ領域をポインタにより指定する。また、外部メモリブロックのアクセラレート転送設定では、周辺デバイスコントローラ26に対し外部アクセスの制御設定を行う。これらアクセラレート転送設定が終了すると、CPU21は、ホストインタフェース26からの割り込み信号をマスクし、ホストコンピュータ29へ準備完了を通知する(ステップS25)。
この結果、ホストコンピュータ29から中間バッファ25へ順次データが転送される。このデータ転送では、中間バッファ25のデータ転送開始機能151が2KByteのまとまったデータの転送が終了するまで、1単位データ受信ごとに周辺デバイスコントローラ26への転送と、ホストコンピュータ29へ次のデータについての転送要求を行う。
CPU21はホストコンピュータ13から周辺デバイス27へ2KByteのまとまったデータの転送が終了したかを判定しており(ステップS26)、この2KByteのまとまったデータの転送が終了すると、CPU21はホストコンピュータ29へ2KByteのまとまったデータの書き込み完了を通知する(ステップS27)。
ステップS22において、データサイズが例えば2KByte以上のまとまったデータサイズではないと判定した場合には、中間バッファ25の転送設定(ステップS31)と外部メモリブロックの転送設定(ステップS32)を行う。
これら転送設定が終了すると、CPU21は、ホストコンピュータ29へ準備完了を通知する(ステップS33)。
この結果、中間バッファ25のデータ転送開始機能151によりホストコンピュータ29から中間バッファ25を介して周辺デバイス27へデータの転送が開始される。
CPU21はホストコンピュータ29から周辺デバイス27へデータの転送が終了したかを判定しており(ステップS34)、このデータの転送が終了すると、CPU21はホストコンピュータ29へデータの転送完了を通知する(ステップS35)。
以上のように、この実施例2においても、前記実施例1と同様な効果が得られるデータ転送方法および装置を提供できる。
また、ターゲットとなるCPUメモリ空間の特定領域にALL1などの特定データを準備したい場合、CPU21は、ローカルバスコントローラ31のソースデータ切替え機能41のソースデータ格納レジスタ51へデータ設定を行い、セレクタ52によりソースデータを切り替え、ローカルバスコントローラ31のローカルDMA転送のローカルDMAデータサイズ、およびスタート設定の処理を行うだけで実現でき、設定後は他の処理に移ることが出来るなど、ソースデータを準備するCPU処理を軽減できるデータ転送方法および装置を提供できる効果がある。
本発明の実施例1のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。 本発明の実施例1のデータ転送方法による外部メモリへのデータの書き込み動作を説明するための模式図である。 本発明の実施例1のデータ転送方法による外部メモリからのデータの読み出し動作を説明するための模式図である。 本発明の実施例2のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。 本発明の実施例2のデータ転送方法が適用されるデータ処理装置においてソースデータをソフトウェアプログラム上で選択可能にする構成の一例を示すブロック図である。 本発明の実施例2のデータ転送方法が適用されるデータ処理装置において、ホストコンピュータから周辺デバイスへデータ転送アクセラレートを実現するデータ転処理動作を示すフローチャートである。 従来例1のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。 従来例2のデータ転送方法が適用されるデータ処理装置の構成を示すブロック図である。
符号の説明
11,21……CPU、12,22……DMAコントローラ、13,29……ホストコンピュータ、14,28……ホストインタフェース、15,25……中間バッファ、16……周辺デバイスインタフェース、17……外部メモリ、18,30……CPUメインバス、23……CPU内部メモリ、26……周辺デバイスコントローラ、27……周辺デバイス、31……ローカルバスコントローラ、41……ソースデータ切替え機能(ソースデータ切替え手段)、51……ソースデータ格納レジスタ(ソースデータ切替え手段)、52……セレクタ(ソースデータ切替え手段)、LB1,LB2,LB3,LB11,LB12,LB13……ローカルバス、151……データ転送開始機能(自動データ転送手段)。

Claims (11)

  1. CPUメインバスによりCPUと接続された中間バッファ、ホストシステムを前記CPUメインバスへ接続するホストインタフェース、外部メモリを前記CPUメインバスへ接続する周辺デバイスインタフェースを備えたデータ処理装置におけるデータ転送方法であって、
    前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスを利用し、
    前記中間バッファのデータ転送開始機能により、前記中間バッファと前記ローカルバスを使用し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行う、
    ことを特徴とするデータ転送方法。
  2. 前記中間バッファのデータ転送開始機能は、前記ホストインタフェースまたは前記周辺デバイスインタフェースから出力される単位データ転送終了信号をもとに前記周辺デバイスインタフェースまたは前記ホストインタフェースへデータ転送開始信号を通知し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項1記載のデータ転送方法。
  3. 前記中間バッファのデータ転送開始機能は、前記ホストインタフェースまたは周辺デバイスインタフェースから出力される単位データ転送終了信号により制御されるポインタにより指定されるバッファ領域を介し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項2記載のデータ転送方法。
  4. 前記中間バッファと前記ローカルバスを使用した自動データ転送についての状態がステータスレジスタに設定され、前記CPUは前記ステータスレジスタの設定内容をもとに前記自動データ転送についての状態を判定することを特徴とする請求項1記載のデータ転送方法。
  5. CPUメインバスによりCPUと接続されたCPU内部メモリ、中間バッファ、DMAコントローラおよび周辺デバイスインタフェースを有したデータ処理装置における、前記CPU内部メモリと前記中間バッファとの間のデータ転送方法であって、
    前記CPU内部メモリと前記中間バッファとの間へ設けられたローカルバスと、ローカルDMA転送を実現するローカルバスコントローラを利用し、
    ソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、前記ローカルバスコントローラのソースデータ切替え機能により転送ソースデータを切り替え、前記CPU内部メモリへのアクセス回数を軽減する、
    ことを特徴とするデータ転送方法。
  6. 前記ローカルバスコントローラのソースデータ切替え機能は、前記CPUによるプログラム制御によりソースデータ格納レジスタに設定された切り替え用ソースデータへ転送ソースデータを切り替えることを特徴とする請求項5記載のデータ転送方法。
  7. CPUメインバスによりCPUと接続された中間バッファと、ホストシステムを前記CPUメインバスへ接続するホストインタフェースと、外部メモリを前記CPUメインバスへ接続する周辺デバイスインタフェースとを備えたデータ処理装置において、
    前記ホストインタフェースと前記中間バッファとの間、および前記中間バッファと前記周辺デバイスインタフェースとの間へ設けられたローカルバスと、前記ホストシステムと前記外部メモリとの間の自動データ転送を、前記中間バッファと前記ローカルバスを使用し行う自動データ転送手段と、
    を備えたことを特徴とするデータ処理装置。
  8. 前記自動データ転送手段は、前記ホストインタフェースまたは前記周辺デバイスインタフェースから出力される単位データ転送終了信号をもとに前記周辺デバイスインタフェースまたは前記ホストインタフェースへデータ転送開始信号を通知し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項7記載のデータ処理装置。
  9. 前記自動データ転送手段は、前記ホストインタフェースまたは周辺デバイスインタフェースから出力される単位データ転送終了信号により制御されるポインタにより指定されるバッファ領域を介し、前記ホストシステムと前記外部メモリとの間の自動データ転送を行うことを特徴とする請求項8記載のデータ処理装置。
  10. CPUメインバスによりCPUと接続されたCPU内部メモリ、中間バッファ、DMAコントローラおよび周辺デバイスインタフェースを有したデータ処理装置において、
    前記CPU内部メモリと前記中間バッファとの間へ設けられたローカルバスと、
    ローカルDMA転送を実現するローカルバスコントローラと、
    前記ローカルバスコントローラがソースデータを前記中間バッファから前記CPU内部メモリへ前記ローカルバスを介してローカルDMA転送する際、転送ソースデータを切り替えるソースデータ切替え手段と、
    を備えたことを特徴とするデータ処理装置。
  11. 前記ソースデータ切替え手段は、前記CPUによるプログラム制御によりソースデータ格納レジスタに設定された切り替え用ソースデータへ転送ソースデータを切り替えることを特徴とする請求項10記載のデータ処理装置。
JP2004133653A 2004-04-28 2004-04-28 データ転送方法および装置 Pending JP2005316700A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004133653A JP2005316700A (ja) 2004-04-28 2004-04-28 データ転送方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004133653A JP2005316700A (ja) 2004-04-28 2004-04-28 データ転送方法および装置

Publications (1)

Publication Number Publication Date
JP2005316700A true JP2005316700A (ja) 2005-11-10

Family

ID=35444063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004133653A Pending JP2005316700A (ja) 2004-04-28 2004-04-28 データ転送方法および装置

Country Status (1)

Country Link
JP (1) JP2005316700A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009817A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd 半導体装置及びデータ転送方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009817A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd 半導体装置及びデータ転送方法

Similar Documents

Publication Publication Date Title
US7725621B2 (en) Semiconductor device and data transfer method
JP2004171209A (ja) 共有メモリデータ転送装置
JPH01277928A (ja) 印刷装置
JP2004252960A (ja) メモリ制御装置
US20020026544A1 (en) DMA controller
JP2005275538A (ja) ダイレクトメモリアクセス制御装置および方法
US8386725B2 (en) USB host controller and controlling method for USB host controller
JP4829408B2 (ja) 画像処理方法及び画像処理装置
KR100348545B1 (ko) 통신 dma 장치
JP3803196B2 (ja) 情報処理装置、情報処理方法および記録媒体
JPH04363745A (ja) Dmaコントローラ
US20060047866A1 (en) Computer system having direct memory access controller
JP2005316700A (ja) データ転送方法および装置
JP2004227501A (ja) データ転送制御装置および方法
US7716392B2 (en) Computer system having an I/O module directly connected to a main storage for DMA transfer
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法
US20100153610A1 (en) Bus arbiter and bus system
JP2002215562A (ja) Dma制御装置及び方法
JP2007011884A (ja) データ転送装置
JP4560398B2 (ja) データ処理回路
JP2826780B2 (ja) データ転送方法
JP2008198119A (ja) データ転送装置、データ転送システムおよびデータ転送方法
JP2820054B2 (ja) バスインタフェース装置
JP2005128753A (ja) データ転送装置、データ転送方法
JP2003187583A (ja) 半導体記憶装置及び制御装置