(57)【要約】【課題】  ホストバスに接続されたホストＣＰＵとスレーブバスに接続された周辺装置間でデータのやり取りを行う場合、回路規模の増大を招くことなく効率良くデータ転送を行うこと。【解決手段】  本データ転送装置２００は、ホストバスとスレーブバスに接続されたバスブリッジ回路２１０と、ホストバスとスレーブバス間のデータ送受信を制御するデータ転送制御回路２２０と、を含み、前記データ転送制御回路２２０は、アドレス格納部２２２と、ホストバス又はスレーブバスから受け取ったデータを格納するバッファ２３０と、周辺装置からホストへの転送を行う場合には、バスブリッジ回路を介してスレーブバスからのデータを受信し、受信したデータをバッファに格納し、ホストバスからの受け取った要求アドレスと、アドレス格納部に格納されたアドレスとが一致しているか場合にはバッファに格納されているデータをバスブリッジ回路を介してホストバスに出力するように制御する回路２２６、２２４、２４０等を含むことを特徴とする。【選択図】      図１
2007072685.tif 000002
【特許請求の範囲】
【請求項１】
ホスト及びＤＭＡコントローラが接続されるホストバスと周辺装置が接続されるスレーブバスに接続され、ホストバスとスレーブバス間のデータの転送を行うデータ転送装置であって、
ホストバスとスレーブバスに接続され、ホストバスとスレーブバス間のデータの送受信を行うバスブリッジ回路と、
ホストバスとスレーブバス間のデータ送受信を制御するデータ転送制御回路と、を含み、
前記データ転送制御回路は、
周辺装置からホストへの転送の場合には転送元のアドレスが格納され、ホストバスからスレーブバスへの転送の場合には転送先のアドレスが格納されるアドレス格納部と、
前記バスブリッジ回路を介してホストバス又はスレーブバスから受け取ったデータを格納するバッファと、
周辺装置からホストへの転送を行う場合には、バスブリッジ回路を介してスレーブバスからのデータを受信し、受信したデータをバッファに格納し、
ホストバスからの受け取った要求アドレスと、アドレス格納部に格納されたアドレスとが一致しているか否か比較して、一致している場合にはバッファに格納されているデータをバスブリッジ回路を介してホストバスに出力するように制御する回路を含むことを特徴とするデータ転送装置。
【請求項２】
請求項１において、
前記データ転送制御回路は、
ホストから周辺装置への転送を行う場合には、バスブリッジ回路を介してホストバスからのデータを受信してバッファに格納し、バッファに格納されているデータをバスブリッジ回路を介してスレーブバスに出力するように制御する回路を含むことを特徴とするデータ転送装置。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記データ転送制御回路は、
転送データ数を特定するための転送データ数格納部を含み、
周辺装置からホストへの転送を行う場合には、転送データ数格納部に格納された転送データ数に達するまでバスブリッジ回路を介してスレーブバスからのデータを受信し、受信したデータをバッファに格納し、
ホストバスからの受け取った要求アドレスと、アドレス格納部に格納されたアドレスとが一致しているか否か比較して、一致している場合には転送データ数格納部に格納された転送データ数に達するまでバッファに格納されているデータをバスブリッジ回路を介してホストバスに出力するように制御する回路を含むことを特徴とするデータ転送装置。
【請求項４】
請求項３において、
前記データ転送制御回路は、
ホストから周辺装置への転送を行う場合には、転送データ数格納部に格納された転送データ数に達するまでバスブリッジ回路を介してホストバスからのデータを受信してバッファに格納し、転送データ数格納部に格納された転送データ数に達するまでバッファに格納されているデータをバスブリッジ回路を介してスレーブバスに出力するように制御する回路を含むことを特徴とするデータ転送装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記データ転送制御回路は、
周辺装置からホストへの転送の場合に、アドレス格納部に格納されている転送元アドレスをホストバスからの読み出しに応じて更新し、更新後のアドレスとホストバスからの受け取った要求アドレスとが一致しているか否か比較して、一致を示している場合にはバッファに格納されているデータをホストバスに出力するように制御する回路を含むことを特徴とするデータ転送装置。
【請求項６】
請求項１乃至５のいずれかに記載のデータ転送装置と、
データ転送装置に接続されたホストバスと、
データ転送装置に接続されたスレーブバスと、
ホストバスに接続されたＣＰＵと、
ホストバスに接続されたＤＭＡコントローラと、
スレーブバスに接続された周辺装置を含む情報処理装置であって、
前記ＣＰＵは、
周辺装置からのデータを受信する際には、ＤＭＡコントローラに対して、転送元アドレス、転送先アドレス、データ転送数を設定して、転送イネーブルの設定を行い、
データ転送装置のアドレス格納部に転送元アドレスを、転送データ数格納部に転送データ数を設定し、
ＤＭＡコントローラは、転送イネーブルの設定が行われるとＤＭＡを起動し、設定された転送元アドレス、転送先アドレス、データ転送数に基づきデータ転送装置のバッファに格納されているデータをホストバスを介してＤＭＡ転送することを特徴とする情報処理装置。
【請求項７】
請求項６において、
前記ＣＰＵは、
ホストから周辺装置へデータを送信する場合には、ＤＭＡコントローラに対して、転送元アドレス、転送先アドレス、データ転送数を設定して転送イネーブルの設定を行い、
データ転送装置のアドレス格納部に転送先アドレスを、転送データ数格納部に転送データ数を設定し、
ＤＭＡコントローラは、転送イネーブルの設定が行われるとＤＭＡを起動し、
設定された転送元アドレス、転送先アドレス、データ転送数に基づきデータをホストバスを介してデータ転送装置のバッファにＤＭＡ転送し、
データ転送装置に対するデータの送信が終了すると、ホストバスを開放することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置及び情報処理装置に関する。
【背景技術】
【０００２】
ホストバスに接続されたホストＣＰＵとスレーブバスに接続された周辺装置間でデータのやり取りを行う場合、データ転送を円滑に行う為に、バスブリッジがマスターとなってホストバスにアクセスする手段がある。
【０００３】
係る手段として、例えばバスブリッジにＤＭＡコントローラーを内蔵する場合や、スレーブバスに接続するデバイスがバスマスターになりホストバスまでアクセスする場合がある。
【特許文献１】特開平１−２０５３６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、バスブリッジにＤＭＡコントローラーを設けたり、ホストバスのマスタ機能を含めると、比較的ゲート数の多いバスブリッジとなり、回路規模増大を招く。
【０００５】
本発明は以上のような問題点に鑑みてなされたものであり、その目的とするところは、ホストバスに接続されたホストＣＰＵとスレーブバスに接続された周辺装置間でデータのやり取りを行う場合、回路規模の増大を招くことなく効率良くデータ転送を行うことができるデータ転送装置及び情報処理装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
（１）本発明は、
ホスト及びＤＭＡコントローラが接続されるホストバスと周辺装置が接続されるスレーブバスに接続され、ホストバスとスレーブバス間のデータの転送を行うデータ転送装置であって、
ホストバスとスレーブバスに接続され、ホストバスとスレーブバス間のデータの送受信を行うバスブリッジ回路と、
ホストバスとスレーブバス間のデータ送受信を制御するデータ転送制御回路と、を含み、
前記データ転送制御回路は、
周辺装置からホストへの転送の場合には転送元のアドレスが格納され、ホストバスからスレーブバスへの転送の場合には転送先のアドレスが格納されるアドレス格納部と、
前記バスブリッジ回路を介してホストバス又はスレーブバスから受け取ったデータを格納するバッファと、
周辺装置からホストへの転送を行う場合には、バスブリッジ回路を介してスレーブバスからのデータを受信し、受信したデータをバッファに格納し、
ホストバスからの受け取った要求アドレスと、アドレス格納部に格納されたアドレスとが一致しているか否か比較して、一致している場合にはバッファに格納されているデータをバスブリッジ回路を介してホストバスに出力するように制御する回路を含むことを特徴とする。
【０００７】
本発明によればバスブリッジに、アドレスレジスタ、データ数レジスタ、アドレス比較回路と、バスの能力に合わせてバッファと割込み発生機能を持たせるが、ＤＭＡコントローラー・バスマスター機能に比べるとゲート数は少なく、同等のデータ転送能力を見込める。また、ＤＭＡコントローラーのチャネルのプライオリティの設定と合わせて使用する事で、様々な性能のデバイスの転送能力に合わせることができるので、ホストバスの性能を損ねる事がなくなる。
【０００８】
本発明によればバスブリッジの機能を大幅に上げる事なく、ホストバス−スレーブバス問の効率のよいデータ転送が可能である。
【０００９】
従ってホストバスに接続されたホストＣＰＵとスレーブバスに接続された周辺装置間でデータのやり取りを行う場合、回路規模の増大を招くことなく効率良くデータ転送を行うことができるデータ転送装置を提供することができる。
【００１０】
（２）本発明のデータ転送装置は、
前記データ転送制御回路が、
ホストから周辺装置への転送を行う場合には、バスブリッジ回路を介してホストバスからのデータを受信してバッファに格納し、バッファに格納されているデータをバスブリッジ回路を介してスレーブバスに出力するように制御する回路を含むことを特徴とする。
【００１１】
（３）本発明のデータ転送装置は、
前記データ転送制御回路が、
転送データ数を特定するための転送データ数格納部を含み、
周辺装置からホストへの転送を行う場合には、転送データ数格納部に格納された転送データ数に達するまでバスブリッジ回路を介してスレーブバスからのデータを受信し、受信したデータをバッファに格納し、
ホストバスからの受け取った要求アドレスと、アドレス格納部に格納されたアドレスとが一致しているか否か比較して、一致している場合には転送データ数格納部に格納された転送データ数に達するまでバッファに格納されているデータをバスブリッジ回路を介してホストバスに出力するように制御する回路を含むことを特徴とする。
【００１２】
（４）本発明のデータ転送装置は、
前記データ転送制御回路が、
ホストから周辺装置への転送を行う場合には、転送データ数格納部に格納された転送データ数に達するまでバスブリッジ回路を介してホストバスからのデータを受信してバッファに格納し、転送データ数格納部に格納された転送データ数に達するまでバッファに格納されているデータをバスブリッジ回路を介してスレーブバスに出力する回路を含むことを特徴とする。
【００１３】
（５）本発明のデータ転送装置は、
前記データ転送制御回路が、
周辺装置からホストへの転送の場合に、アドレス格納部に格納されている転送元アドレスをホストバスからの読み出しに応じて更新し、更新後のアドレスとホストバスからの受け取った要求アドレスとが一致しているか否か比較して、一致を示している場合にはバッファに格納されているデータをホストバスに出力するように制御する回路を含むことを特徴とする。
【００１４】
本発明によればアドレス格納部に格納されている転送元アドレスをホストバスからの読み出しに応じて更新し、更新後のアドレスとホストバスからの受け取った要求アドレスとが一致しているか否か比較して、一致を示している場合にはバッファに格納されているデータをホストバスに出力するので、ＤＭＡからの要求と、他のスレーブバスへのアクセスとを混同せずにデータ転送を行うことができる。
【００１５】
（６）本発明は、
上記のいずれかに記載のデータ転送装置と、
データ転送装置に接続されたホストバスと、
データ転送装置に接続されたスレーブバスと、
ホストバスに接続されたＣＰＵと、
ホストバスに接続されたＤＭＡコントローラと、
スレーブバスに接続された周辺装置を含む情報処理装置であって、
前記ＣＰＵは、
周辺装置からのデータを受信する際には、ＤＭＡコントローラに対して、転送元アドレス、転送先アドレス、データ転送数を設定して、転送イネーブルの設定を行い、
データ転送装置のアドレス格納部に転送元アドレスを、転送データ数格納部に転送データ数を設定し、
ＤＭＡコントローラは、転送イネーブルの設定が行われるとＤＭＡを起動し、設定された転送元アドレス、転送先アドレス、データ転送数に基づきデータ転送装置のバッファに格納されているデータをホストバスを介してＤＭＡ転送することを特徴とする。
【００１６】
（７）本発明の情報処理装置は、
前記ＣＰＵが、
ホストから周辺装置へデータを送信する場合には、ＤＭＡコントローラに対して、転送元アドレス、転送先アドレス、データ転送数を設定して転送イネーブルの設定を行い、
データ転送装置のアドレス格納部に転送先アドレスを、転送データ数格納部に転送データ数を設定し、
ＤＭＡコントローラが、転送イネーブルの設定が行われるとＤＭＡを起動し、
設定された転送元アドレス、転送先アドレス、データ転送数に基づきデータをホストバスを介してデータ転送装置のバッファにＤＭＡ転送し、
データ転送装置に対するデータの送信が終了すると、ホストバスを開放することを特徴とする。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００１８】
図１は、本実施の形態のデータ転送装置について説明するための図である。なお、本実施形態の情報処理装置２００は、図１の構成要素（各部）を全て含む必要はなく、その一部を省略した構成としてもよい。
【００１９】
本実施の形態のデータ転送装置２００は、ホスト及びＤＭＡコントローラが接続されるホストバスと周辺装置が接続されるスレーブバスに接続され、ホストバスとスレーブバス間データの転送を行うデータ転送装置であって、バスブリッジ回路２１０、データ転送制御回路２２０とを含む。
【００２０】
バスブリッジ回路２１０は、ホストバスとスレーブバスに接続され、ホストバスとスレーブバス間のデータの送受信を行うもので、ホストバスインターフェイス２１２、ホストバス−スレーブバス変換部２１４、スレーブバスインターフェイス２１６を含む。
【００２１】
ホストバス−スレーブバス変換部２１４は、ホストからのアクセスをスレーブアクセスに変換する。
【００２２】
自動転送制御部２２０は、スタートアドレス格納レジスタ２２２、データバッファ２３０、データバッファ制御部２３２、転送データ数格納レジスタ２２４、アドレス比較器２２６、転送制御部２４０、スレーブバスデータ転送カウンター２４２、ホストバスデータ転送カウンター２４４を含み、ホストバスとスレーブバス間のデータ送受信を制御するデータ転送制御回路として機能する。
【００２３】
スタートアドレス格納レジスタ２２２は、スレーブからの自動転送を行う際のスタートアドレスが格納されるもので、周辺装置からホストへの転送の場合には転送元のアドレスが格納され、ホストバスからスレーブバスへの転送の場合には転送先のアドレスが格納されるアドレス格納部として機能する。
【００２４】
データバッファ２３０は、自動転送時のデータが格納され、バスブリッジ回路２１０を介してホストバス又はスレーブバスから受け取ったデータを格納するバッファとして機能する。
【００２５】
データバッファ制御部２３２は、ホストバス、スレーブバスの動作に同期をとってバッファを制御する。
【００２６】
転送データ数格納レジスタ２２４は、バッファを使用してのデータ転送数が設定され、転送データ数を特定するための転送データ数格納部として機能する。
【００２７】
アドレス比較器２２６は、スタートアドレス格納レジスタとホストバスから受け取ったアドレスを比較し、ホストバスからのアクセス発生信号を生成する。
【００２８】
転送制御部２４０は、ペリフェラルからのバスアクセス信号とホストバスアクセスからデータ転送を監視し、バッファ制御の為の制御信号を生成する。
【００２９】
スレーブバスデータ転送カウンター２４２は、スレーブバスの自動転送数をカウントする。
【００３０】
ホストバスデータ転送カウンター２４４は、ホストバスの自動転送数をカウントする。
【００３１】
自動転送制御部２２０は、周辺装置からホストへの転送を行う場合には（スレーブバスからホストバスへの転送要求を受信すると）、転送データ数格納部に格納された転送データ数に達するまでバスブリッジ回路を介してスレーブバスからのデータを受信し、受信したデータをバッファに格納し、ホストバスからの受け取った要求アドレスと、アドレス格納部に格納されたアドレスとが一致しているか否か比較して、一致を示している場合には転送データ数格納部に格納された転送データ数に達するまでバッファに格納されているデータをバスブリッジ回路を介してホストバスに出力するように制御するデータ転送制御回路として機能する。
【００３２】
また自動転送制御部２２０は、ホストから周辺装置への転送を行う場合には、転送データ数格納部に格納された転送データ数に達するまでバスブリッジ回路を介してホストバスからのデータを受信してバッファに格納し、転送データ数格納部に格納された転送データ数に達するまでバッファに格納されているデータをバスブリッジ回路を介してスレーブバスに出力するように制御する前記データ転送制御回路として機能するように構成してもよい。
【００３３】
また自動転送制御部２２０は、周辺装置からホストへの転送の場合に、アドレス格納部に格納されている転送元アドレスをホストバスからの読み出しに応じて更新し、更新後のアドレスとホストバスからの受け取った要求アドレスとが一致しているか否か比較して、一致を示している場合にはバッファに格納されているデータをホストバスに出力するように制御するデータ転送制御回路として機能するように構成してもよい。
【００３４】
１はホストバスアドレス信号であり、２はホストバスデータ信号であり、３はスレーブバスアドレス信号であり、４はスレーブバスデータ信号であり、５はバスブリッジ内部データバスであり、７は転送開始信号であり、８は周辺装置転送可信号であり、９はアドレス比較結果であり、１０は転送数出力であり、１１はホストバスデータ転送カウンター制御信号であり、１２はホストバスデータ転送カウント値出力であり、１３はスレーブバスデータ転送カウンター制御信号であり、１４はスレーブバスデータ転送カウンター値出力であり、１５は比較イネーブル信号であり、１６は周辺装置データ転送要求であり、１７はバッファライトポインター値であり、１８はバッファリードポインター値であり、１９はバッファライトタイミング信号である。
【００３５】
２０はアドレスインクリメントモード信号であり、ブリッジ部内にあるレジスタでアドレスインクリメントモード、固定モードの指定を行う。
【００３６】
２１はバスアクセス信号でホスト/スレーブのバスアクセスが発生していることを示す。
【００３７】
２２はバスアクセス要求信号であり、ペリフェラルからのバス転送要求を出力する。これにより、バスブリッジが自動的にペリフェラルにアクセスを開始する。
【００３８】
２３はホストバスコマンド信号であり、２４はスレーブバスコマンド信号であり、２５はスレーブバスアクセスタイミング信号であり、２６はホストバスアクセスタイミング信号である。
【００３９】
図２は、本実施の形態の情報処理装置について説明するための図である。なお、本実施形態の情報処理装置１００は、図２の構成要素（各部）を全て含む必要はなく、その一部を省略した構成としてもよい。
【００４０】
本実施の形態の情報処理装置２００は、データ転送装置２００と、データ転送装置２００に接続されたホストバス１１０と、データ転送装置２００に接続されたスレーブバス２と、ホストバス１１０に接続されたＣＰＵ１２０と、ホストバス１１０に接続されたＤＭＡコントローラ１３０と、ホストバス１１０に接続されたメモリ１４０と、ホストバス１１０に接続された割り込みコントローラ１６０、ホストバス１１０に接続されたシステム制御部１５０と、スレーブバス１７０に接続された周辺装置１８０−１（データ転送装置の機能を使用する周辺装置）、１８０−２（データ転送装置の機能を使用しない通常の周辺装置）を含む。
【００４１】
３は転送開始信号であり、４はデータ転送要求であり、５は周辺装置１の入出力信号であり、６周辺装置２の入出力信号であり、７は割込みコントローラーからの割込発生報告信号であり、８は転送終了を示す割込み信号である。
【００４２】
データ転送装置２００は、ホスト（ＣＰＵ）１２０及びＤＭＡコントローラ１３０が接続されるホストバス１１０と周辺装置１８０−１、１８０−２が接続されるスレーブバス１７０に接続され、ホストバス１１０とスレーブバス１７０間データの転送を行うデータ転送装置であって、例えば図１において説明したような構成及び機能を有する。
【００４３】
ここでＣＰＵ１２０は、周辺装置１８０−１、１８０−２からのデータを受信する際には、ＤＭＡコントローラに対して、転送元アドレス、転送先アドレス、データ転送数を設定して、転送イネーブルの設定を行い、データ転送装置２００のアドレス格納部に転送元アドレスを、転送データ数格納部に転送データ数を設定するようにしてもよい。
【００４４】
またＤＭＡコントローラ１３０は、転送イネーブルの設定が行われるとＤＭＡを起動し、設定された転送元アドレス、転送先アドレス、データ転送数に基づきデータ転送装置２００のバッファに格納されているデータをホストバス１１０を介してＤＭＡ転送するようにしてもよい。
【００４５】
またＣＰＵ１２０は、周辺装置１８０−１、１８０−２にデータを送信する場合には、ＤＭＡコントローラ１３０に対して、転送元アドレス、転送先アドレス、データ転送数を設定して転送イネーブルの設定を行い、データ転送装置２００のアドレス格納部に転送先アドレスを、転送データ数格納部に転送データ数を設定するようにしてもよい。
【００４６】
またＤＭＡコントローラ１３０は、転送イネーブルの設定が行われるとＤＭＡを起動し、設定された転送元アドレス、転送先アドレス、データ転送数に基づきデータをホストバス１１０を介してデータ転送装置２００のバッファにＤＭＡ転送し、データ転送装置２００に対するデータの送信が終了すると、ホストバスを開放するするようにしてもよい。
【００４７】
本実施の形態は２つのバス（ホストバス１１０／スレーブバス１７０）を持つ情報処理装置１００で、２つのバス１，２を接続するバスブリッジであるデータ転送装置２００とマスター側のバス１に接続するＤＭＡコントローラー１３０を連動させて、２つのバス間で効率のよいデータ転送を行うことができる。
【００４８】
スレーブ（周辺装置）からマスター（ホスト）の転送に関しては、スレーブ側でデータ転送要求に備えて、ＣＰＵ（ホスト）１２０はデータ転送装置２００内部２００のスタートアドレス格納レジスタ（アドレス格納部）に転送元アドレスを、転送データ数格納レジスタ（転送データ数格納部）に転送するデータ数を格納し、ＤＭＡコントローラー１３０には、同じアドレス（転送元アドレス）と転送するデータ数とデータ転送先のアドレスとホストバスのプライオリティを設定するようにしてもよい。
【００４９】
上記設定を行ったスレーブバス１７０上の周辺装置からの転送要求はデータ転送装置２００の入力となり、データ転送装置２００はＤＭＡコントローラー１３０に対して起動をかけ、データ転送装置２００はＤＭＡコントローラー１３０からのリクエストに関係なく、周辺装置１８０−１からのデータを読出し、データ転送装置２００内のバッファに格納する。
【００５０】
起動がかけられたＤＭＡコントローラー１３０はデータ転送装置２００へのアクセスを行い、データ転送装置２００は設定されたスタートアドレスと一致を判断し、一致した場合はデータ転送装置２００とＤＭＡコントローラ１３０が連動してデータ転送を行う処理がスタートしたと判断し、ＤＭＡコントローラー１３０にバッファ内のデータを送信する。データ転送装置２００は設定された転送データ数の転送が完了するまで周辺装置からのデータを読出す。
【００５１】
全てのデータの転送が終了すると、ＣＰＵ１２０は、データ転送装置２００からの終了割込みとＤＭＡコントローラー１３０からの終了割込みのふたつの終了信号から、対象となったデータ転送が終了した事を判断する。
【００５２】
ＣＰＵ１２０から周辺装置１８０−１への送信に関しては、ＤＭＡコントローラー１３０に転送元アドレスと転送先のデバイスのアドレスと転送データ数とバスプライオリティを設定し、データ転送装置２００には転送先のアドレスを設定し、ＣＰＵ１２０がＤＭＡコントローラー１３０に起動をかけるとＤＭＡ転送がスタートし、データ転送装置２００は設定したアドレスと一致する事を検出すると、データを一旦バッファに取り込みホストバス１１０の動作は終了させ、データ転送装置２００はバッファのデータを転送先に送信する。データ転送装置２００は全てのデータの転送が終了するとＣＰＵ１２０に割込みをかける。ＣＰＵはＤＭＡコントローラーとデータ転送装置２００からのふたつの終了の割込みからデータ転送が終了したと判断するようにしてもよい。
【００５３】
図３、図４は、スレーブからマスターの転送時の動作（周辺装置からのデータ受信動作）のフローチャートである。
【００５４】
ここでは周辺装置１の受信データをＤＭＡコントローラー（図２の１３０）によってメモリ（図２の１４０）の所定のエリアに格納する処理を想定する。周辺装置（図２の１８０−１)は一定間隔でパケット化されたデータを受信するものとする。パケット化されたデータの受信は、ある一定間隔で発生するものとする。
【００５５】
またＤＭＡコントローラーはオンデマンドのチャネルを持ち、本例ではこのチャネルを使用する。
【００５６】
まずＣＰＵ(図２の１２０)は、周辺装置１（図２の１８０−１)からのデータ受信に備えて、次の受信動作の為の設定を行う（ステップＳ１）。
【００５７】
（１）  ＤＭＡコントローラーに転送元アドレス(周辺装置１の受信データレジスタ)転送先アドレス(メモリのデータエリア)とデータ転送数を設定する。
【００５８】
（２）  データ転送装置のスタートアドレス格納レジスタに転送元アドレスを、転送データ数格納レジスタにデータ転送数を設定する。スタートアドレス格納レジスタに書込みが発生した事で、転送カウンター(図１の２４２、２４４）は共に０にリセットされる。
【００５９】
（３）  ＣＰＵはＤＭＡコントローラーに対して転送イネーブルを設定する。
【００６０】
次に周辺装置１は、データを受信するとデータ転送要求信号をオンにする（ステップＳ２）。
【００６１】
次に転送制御部（図１の２４０）は、バスアクセス要求信号（図１の２２）をホストバス−スレーブバス変換部（図１の２１４）に出力する。バスアクセス要求信号（図１の２２）は、ホストバスデータ転送カウンタ値＜転送データ数格納カウンタ値の条件下で周辺装置データ転送要求信号(図１の１６)がオンの場合、オンとなる（ステップＳ２）。
【００６２】
次にホストバス−スレーブバス変換部は、スタートアドレス格納レジスタをアドレスにしてスレーブバスのリードサイクルを実行する（ステップＳ４）。
【００６３】
次にスレーブバスアクセスが実行されるとデータ読み出しのタイミングでスレーブバスアクセス信号(図１の２５)がオンになり、タイミングがデータバッファ制御部(図１の２３２)と転送制御部（図１の２４０）に通知される（ステップＳ５）。
【００６４】
次にバッファにデータが書き込まれると共に、バッファライトポインターがインクリメントされる。転送制御部はスレーブバスデータ転送カウンタをインクリメントすると共に、転送開始信号（図１の７）をオンにし、ＤＭＡコントローラーに転送要求を行う。転送開始信号(図１の７)は、ホストバスデータ転送カウンタ値＜転送データ数格納カウンタ値が成立している時にオンとなる（ステップＳ６）。
【００６５】
次にＤＭＡコントローラーは、ＤＭＡを起動し、データ転送装置に対してのアクセスを行う（ステップＳ７）。
【００６６】
次にホストバスからのアドレスがスタートアドレス格納レジスタの値と比較器で比較され、比較結果がホストバス−スレーブバス変換部と転送制御部に通知される。一致した場合、アドレス比較結果信号(図１の９)がオンとなる（ステップＳ８）。
【００６７】
アドレス比較結果信号がオンの場合、ホストバス−スレーブバス変換部はスレーブバスに対してのアクセスを行わず、ホストバスアクセス信号(図１の２６)をオンにしてバッファから読み出したデータをホストバスに出力する（ステップＳ９）。
【００６８】
アクセス信号(図１の２６)によりバッファ制御部はリードポインタをインクリメントする。転送制御部はホストバスデータ転送カウンタをインクリメントする（ステップＳ１０）。
【００６９】
ＤＭＡコントローラーは、データを受け取りメモリに格納する。上記動作を繰り返し行い、パケット化されたデータ全てをメモリに転送する事ができる（ステップＳ１１）。
【００７０】
ホストバスデータカウンタ＝転送データ数格納レジスタ値となった場合、比較イネーブル信号(図１の１５)をオフにし、以降はアドレス比較はされず、転送が終了する（ステップＳ１２）。
【００７１】
周辺装置１の受信データレジスタのアドレスであるが、固定の場合とそうでない場合が考えられる。これを指定するためにホストバス−スレーブバス変換部(図１の２１４)内に設定レジスタを持つ事にし、この設定状態を示す信号をアドレスインクリメントモード信号とする。
【００７２】
アドレスインクリメントモード信号（図１の２０）がオンの場合は、ホストバスアクセスタイミング信号(図１の２６)によりホストバスのアクセスタイミングを認識し、スタートアドレス格納レジスタの値が１ワード分インクリメントするものとする。
【００７３】
周辺装置１内に受信用のメモリ等が存在する場合はインクリメントモードをオンにして使用するケースが考えられる。そうでない場合は、通常は受信データレジスタであり、この場合はアドレスは固定となる。
【００７４】
図５，６はマスターからスレーブの転送時の動作（周辺装置からのデータ送信動作）のフローチャート図である。
【００７５】
ここでは周辺装置１（図２の１８０−１）に対しての送信データをＤＭＡコントローラー（図２の１３０）によってメモリ（図２の１４０）の所定のエリアから周辺装置１に対して転送する処理を想定する。
【００７６】
周辺装置は一定間隔でデータを送信するものとする。データのパケット化は本例ではＣＰＵ（図２の１２０）が予め行っておくものとする。
【００７７】
ＤＭＡコントローラー（図２の１３０）はオンデマンドのチャネルを持ち、本例ではこのチャネルを使用する。
【００７８】
まずＣＰＵ（図２の１２０)は、送信データのパケットを生成した後、送信動作のため、次の設定を行う。
【００７９】
（１）  ＤＭＡコントローラーに転送先アドレス(周辺装置１の送信データレジスタ)転送元アドレス(メモリのデータエリア)とデータ転送数を設定する。
【００８０】
（２）  データ転送装置のスタートアドレス格納レジスタに転送先アドレスを、転送データ数格納レジスタにデータ転送数を設定する。スタートアドレス格納レジスタに書込みが発生した事で、転送カウンター(図１の２４２、２４４）は共に０にリセットされる。
【００８１】
（３）  ＣＰＵはＤＭＡコントローラーに対して転送イネーブルを設定する（ステップＳ２１）。
【００８２】
次に周辺装置への送信動作のモードの場合、周辺装置転送許可信号（図１の８）は送信可能の状態で常にオンであり、転送開始信号(図１の７)もオンとなる。この場合、ＤＭＡコントローラーに対してイネーブルが設定されると、ＤＭＡコントローラーは即座にデータ転送を開始する。ＤＭＡコントローラーは、メモリから読み出したデータをデータ転送装置に転送する（ステップＳ２２）。
【００８３】
次にホストバス−スレーブバス変換部は、アドレス比較器の出力である、アドレス比較結果(図１の９)がオンである為、データをバッファに格納し、ホストバスのアクセスを終了させる。バッファがフルになるまで、スレーブバスの動作に関係なくホストバスの動作は転送開始信号をオンにして行われる（ステップＳ２３）。
【００８４】
データバッファ制御部(図１の２３２)は、ホストバスアクセスタイミング信号(図１の２６)によりバッファを制御する。ライトポインターはインクリメントされる（ステップＳ２４）。
【００８５】
ホストバス−スレーブバス変換部は、スレーブバスに対してのライト動作を行う。バス変換部内には図示しないライトスレーブアドレスレジスタが存在し、スタートアドレス格納レジスタ(図１の２２２)の書込みと同時に同じ値が書き込まれる。ＣＰＵからはこのレジスタの存在は見えない。
【００８６】
スレーブアドレスレジスタの値がライト時のアドレスとしてスレーブアドレス信号(図１の３)に出力される。インクリメントモードの場合はアクセスする度に１ワード分インクリメントされる（ステップＳ２５）。
【００８７】
周辺装置はデータを受け取り、送信動作の為にデータを受け取れない状態が発生した場合は周辺装置転送許可信号(図１の８)をオフにする（ステップＳ２６）。周辺装置転送許可信号がオンであり、かつバッファに未転送のデータが存在する限り、バス変換部はバッファのデータを周辺装置に対して転送を続ける。
【００８８】
次にスレーブバスデータ転送カウンタは、スレーブバスの転送が行われるたびにインクリメントされる。ホストバスデータ転送カウンタは、ホストバスからの転送が発生するたびにインクリメントされる。スレーブバスデータ転送カウンタ＝転送データ数格納レジスタ値となった時点で転送終了となり、比較イネーブル信号(図１の１５)がオフになり、以降のアドレス比較は行われず、ホストバスの転送動作は終了する。スレーブバス動作はバッファに格納されたデータの転送が終了するまで、転送を行い、スレーブバスデータ転送カウンタ＝転送データ数格納レジスタ値となった時点で転送を終了する（ステップＳ２７）。
【００８９】
なお周辺装置への受信動作、送信動作の区別は、これを区別するレジスタがバス変換部に存在し、転送前にＣＰＵが設定するようにしてもよい。設定は例えば以下のようなの３動作モードの設定ができる。
【００９０】
NOUSE   ；  バッファを使用しない
TX      ；  周辺装置への送信
RX      ；  周辺装置からの受信
また自動転送処理部（データ転送制御回路）を複数もち、これに対応したＤＭＡのチャネルを持つ事により、周辺装置に対して複数の転送を並列に行う事が可能となる。
【００９１】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００９２】
【図１】本実施の形態のデータ転送装置の構成図。
【図２】本実施の形態の情報処理装置の構成図。
【図３】スレーブからマスターの転送時の動作のフローチャート。
【図４】スレーブからマスターの転送時の動作のフローチャート。
【図５】マスターからスレーブの転送時の動作のフローチャート。
【図６】マスターからスレーブの転送時の動作のフローチャート。
【符号の説明】
【００９３】
１００  情報処理装置、１１０  ホストバス、１２０  ＣＰＵ、１３０  ＤＭＡコントローラ、１４０  メモリ、１５０  システム制御部、１６０  割り込みコントローラ、１７０  スレーブバス、１８０−１  周辺装置、２００  データ転送装置、２１０  バスブリッジ回路、２１２  ホストバスインターフェース、２１４  ホストバス−スレーブバス変換部、２１６  スレーブバスインターフェース、２２０  自動転送処理部（転送制御処理部）、２２２  スタートアドレスレジスタ、２２４  転送データ数格納レジスタ、２２６  アドレス比較器、２３０  バッファ、２３２  データバッファ制御部、２４０  転送制御部、２４２  スレーブバスデータ転送カウンタ、２４４  ホストバスデータ転送カウンタ
【図１】
2007072685.tif 000003
【図２】
2007072685.tif 000004
【図３】
2007072685.tif 000005
【図４】
2007072685.tif 000006
【図５】
2007072685.tif 000007
【図６】
2007072685.tif 000008