(57)【要約】【課題】外部デバイス側のリードアクセスのとき、ホストＣＰＵ側のリードアクセスをホールドし、取り込んだデータを直接ホストＣＰＵ側に転送するようにすると、ホストＣＰＵ側のバス占有時間が長くなる。【解決手段】ＤＭＡ要求信号ＤＲＥＱがアクティブでかつエンプティフラグＦＬＧがアクティブのとき、ＤＭＡリードアクセスを行って外部デバイス１３から読み込んだデータをデータバッファ２１に格納することで、ホストＣＰＵ１１からのＤＭＡ許可信号ＤＡＣＫを待たずに、外部デバイス１３からデータを先読みし、その後エンプティフラグＦＬＧがインアクティブのときホストＣＰＵ１１に対してリード要求を行い、ホストＣＰＵ１１からのリードに対してデータバッファ２１内のデータをホストＣＰＵ１１側に転送しかつエンプティフラグＦＬＧをアサートする。【選択図】　　　　図１
2004139361.tif 000002
【特許請求の範囲】
【請求項１】
ホストＣＰＵと、
前記ホストＣＰＵが搭載されたチップ外に設けられた外部デバイスと、
前記ホストＣＰＵ側と前記外部デバイス側との間に介在するＤＭＡ（ダイレクトメモリアクセス）インターフェイスとを備え、
前記ＤＭＡインターフェイスは、
データを一時的に格納するバッファと、
前記バッファが空であるか否かを示すエンプティフラグを生成するフラグ生成手段とを有し、
前記外部デバイスからのＤＭＡ要求信号がアクティブでかつ前記エンプティフラグがアクティブのとき、前記外部デバイスからデータを取り込んで前記バッファに格納し、前記エンプティフラグがインアクティブのとき前記ホストＣＰＵに対してリード要求を行い、前記ホストＣＰＵからのリードに対して前記バッファ内のデータを前記ホストＣＰＵ側に転送しかつ前記エンプティフラグをアサートする
ことを特徴とするダイレクトメモリアクセス装置。
【請求項２】
前記ＤＭＡ要求信号は、入力される期間に亘ってＤＭＡ要求を出すレベルタイプの信号である
ことを特徴とする請求項１記載のダイレクトメモリアクセス装置。
【請求項３】
前記ＤＭＡ要求信号は、入力されるタイミングでＤＭＡ要求を出すパルスタイプの信号である
ことを特徴とする請求項１記載のダイレクトメモリアクセス装置。
【請求項４】
前記ホストＣＰＵ側の動作クロックと前記ＤＭＡインターフェイス側の動作クロックとが非同期である
ことを特徴とする請求項１記載のダイレクトメモリアクセス装置。
【請求項５】
前記バッファおよび前記フラグ生成手段は、前記ＤＭＡインターフェイス側の動作クロックで動作する第１バッファおよび第１フラグ生成手段と、前記ホストＣＰＵ側の動作クロックで動作する第２バッファおよび第２フラグ生成手段とからなり、
前記ＤＭＡインターフェイスは、
前記外部デバイスからのＤＭＡ要求信号がアクティブでかつ前記第１フラグ生成手段で生成される第１エンプティフラグがアクティブのとき、前記外部デバイスからデータを取り込んで前記第１バッファに格納しかつ前記第１エンプティフラグをネゲートし、
前記第１エンプティフラグがインアクティブでかつ前記第２フラグ生成手段で生成される第２エンプティフラグがアクティブのとき、前記第１バッファから前記第２バッファに対してデータの転送を行い、前記第１エンプティフラグをアサートしかつ前記第２エンプティフラグをネゲートし、
前記ホストＣＰＵ側からリードがあったとき、前記第２バッファのデータを前記ホストＣＰＵ側に転送して前記第２エンプティフラグをネゲートする
ことを特徴とする請求項４記載のダイレクトメモリアクセス装置。
【請求項６】
前記ＤＭＡインターフェイスは、前記第１バッファから前記第２バッファに対してデータの転送を行った後、前記第１エンプティフラグをアサートしたら、前記外部デバイスからデータを取り込んで前記第１バッファに格納し、前記第２エンプティフラグがアクティブのとき、前記第１バッファから前記第２バッファに対してデータの転送を行う
ことを特徴とする請求項５記載のダイレクトメモリアクセス装置。
【請求項７】
前記ＤＭＡインターフェイスは、前記第２バッファのデータを前記ホストＣＰＵ側に転送した後、前記第１エンプティフラグがインアクティブでかつ第２エンプティフラグがアクティブのとき、前記第１バッファから前記第２バッファに対してデータの転送を行う
ことを特徴とする請求項５記載のダイレクトメモリアクセス装置。
【請求項８】
ホストＣＰＵと、前記ホストＣＰＵが搭載されたチップ外に設けられた外部デバイスと、前記ホストＣＰＵ側と前記外部デバイス側との間に介在し、データを一時的に格納するバッファおよび前記バッファが空であるか否かを示すエンプティフラグを生成するフラグ生成手段とを有するＤＭＡ（ダイレクトメモリアクセス）インターフェイスとを備えたダイレクトメモリアクセス装置の制御方法であって、
前記外部デバイスからのＤＭＡ要求信号がアクティブでかつ前記エンプティフラグがアクティブのとき、前記外部デバイスからデータを取り込んで前記バッファに格納し、
前記エンプティフラグがインアクティブのとき前記ホストＣＰＵに対してリード要求を行い、前記ホストＣＰＵからリードがあったとき前記バッファ内のデータを前記ホストＣＰＵ側に転送しかつ前記エンプティフラグをアサートする
ことを特徴とするダイレクトメモリアクセス装置の制御方法。
【請求項９】
前記ダイレクトメモリアクセス装置が、前記ホストＣＰＵ側の動作クロックと前記ＤＭＡインターフェイス側の動作クロックとが非同期で、前記バッファおよび前記フラグ生成手段が、前記ＤＭＡインターフェイス側の動作クロックで動作する第１バッファおよび第１フラグ生成手段と、前記ホストＣＰＵ側の動作クロックで動作する第２バッファおよび第２フラグ生成手段とからなる場合において、
前記外部デバイスからのＤＭＡ要求信号がアクティブでかつ前記第１フラグ生成手段で生成される第１エンプティフラグがアクティブのとき、前記外部デバイスからデータを取り込んで前記第１バッファに格納しかつ前記第１エンプティフラグをネゲートし、
次いで前記第１エンプティフラグがインアクティブでかつ前記第２フラグ生成手段で生成される第２エンプティフラグがアクティブのとき、前記第１バッファから前記第２バッファに対してデータの転送を行い、前記第１エンプティフラグをアサートしかつ前記第２エンプティフラグをネゲートし、
次いで前記第２エンプティフラグがインアクティブのとき前記ホストＣＰＵに対してリード要求を行い、前記ホストＣＰＵ側からリードがあったとき前記第２バッファのデータを前記ホストＣＰＵ側に転送して前記第２エンプティフラグをアサートする
ことを特徴とする請求項８記載のダイレクトメモリアクセス装置の制御方法。
【請求項１０】
前記第１バッファから前記第２バッファに対してデータの転送を行った後、前記第１エンプティフラグをアサートしたら、前記外部デバイスからデータを取り込んで前記第１バッファに格納し、前記第２エンプティフラグがアクティブのとき、前記第１バッファから前記第２バッファに対してデータの転送を行う
ことを特徴とする請求項９記載のダイレクトメモリアクセス装置の制御方法。
【請求項１１】
前記第２バッファのデータを前記ホストＣＰＵ側に転送した後、前記第１エンプティフラグがインアクティブでかつ第２エンプティフラグがアクティブのとき、前記第１バッファから前記第２バッファに対してデータの転送を行う
ことを特徴とする請求項９記載のダイレクトメモリアクセス装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ダイレクトメモリアクセス（ＤＭＡ）装置およびその制御方法に関し、特にホストＣＰＵ側と外部デバイス側との間に介在するＤＭＡインターフェイス（Ｉ／Ｆ）を備えたダイレクトメモリアクセス装置およびその制御方法に関する。
【０００２】
【従来の技術】
従来、図６に示すように、ホストＣＰＵ１０１およびＤＭＡコントローラ１９２を搭載したチップ外に外部デバイス１０３を有し、ホストＣＰＵ１０１側と外部デバイス１０３側との間に介在するＤＭＡインターフェイス１０４を介してデータ転送を行うダイレクトメモリアクセス装置では、外部デバイス１０３側のリードアクセスのとき、ホストＣＰＵ１０１側のリードアクセスをホールドし、外部デバイス１０３側から取り込んだデータを直接ホストＣＰＵ１０１側に転送していた（例えば、特許文献１参照）。図７に、その動作タイミングを示す。
【０００３】
【特許文献１】
特開平７−２１１１８号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来例に係るダイレクトメモリアクセス装置では、外部デバイス１０３側のリードアクセスの際に、ホストＣＰＵ１０１側のデータバス１０５を占有することになるため、外部デバイス１０３側のリードアクセスが終了するまで、ホストＣＰＵ１０１側のデータバス１０５を使用できないという課題があった。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、外部デバイス側のリードアクセスの際におけるホストＣＰＵ側のデータバスの占有時間を大幅に削減可能なダイレクトメモリアクセス装置およびその制御方法を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明では、ホストＣＰＵと、このホストＣＰＵが搭載されたチップ外に設けられた外部デバイスと、ホストＣＰＵ側と外部デバイス側との間に介在するＤＭＡインターフェイスとを備えたダイレクトメモリアクセス装置において、データを一時的に格納するバッファと当該バッファが空であるか否かを示すエンプティフラグを生成するフラグ生成手段とをＤＭＡインターフェイスに設け、外部デバイスからのＤＭＡ要求信号がアクティブでかつ前記エンプティフラグがアクティブのとき、外部デバイスからデータを取り込んで前記バッファに格納し、次いで前記エンプティフラグがインアクティブのときホストＣＰＵに対してリード要求を行い、ホストＣＰＵからリードがあったときバッファ内のデータをホストＣＰＵ側に転送しかつ前記エンプティフラグをアサートする。
【０００７】
外部デバイスのリードアクセスの際に、上記の処理を実行することにより、外部デバイス側のリードアクセスの際に、ホストＣＰＵからのＤＭＡ許可信号を待たずに、外部デバイスからデータを読み込んでバッファに格納する、即ち外部デバイスからデータを先読みすることができる。したがって、外部デバイス側のリードアクセスの際におけるホストＣＰＵ側のデータバスの占有時間を大幅に削減できる。また、データをあらかじめ先読みすることで、連続リードアクセス等の場合にデータの転送時間を短縮できる。
【０００８】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【０００９】
［第１実施形態］
図１は、本発明の第１実施形態に係るダイレクトメモリアクセス装置の構成例を示すブロック図である。図１から明らかなように、本実施形態に係るダイレクトメモリアクセス装置は、ホストＣＰＵ１１、ＤＭＡコントローラ１２、外部デバイス１３およびＤＭＡインターフェイス（Ｉ／Ｆ）１４を有する構成となっている。ここで、外部デバイス１３は、ホストＣＰＵ１１が搭載されたチップ外に設けられたメモリ回路である。
【００１０】
ＤＭＡインターフェイス１４は、データバッファ２１、エンプティ（Ｅｍｐｔｙ）フラグ生成部２２およびＤＭＡタイミング生成部２３を有する構成となっている。データバッファ２１は、外部デバイス１３側のリードアクセスの際に外部デバイス１３から読み込んだデータを一時的に格納するために設けられたものである。
【００１１】
エンプティフラグ生成部２２は、データバッファ２１が空（Ｅｍｐｔｙ）であるか否かを監視し、データバッファ２１が空のときにアクティブ（例えば、正論理のとき高レベル）となり、満（Ｆｕｌｌ）のときにインアクティブ（例えば、正論理のとき低レベル）となるエンプティフラグＦＬＧを生成する。ＤＭＡインターフェイス１４は、ＤＭＡコントローラ１２の制御の下に、ホストＣＰＵ１１側と外部デバイス１３側との間でＤＭＡデータ転送を行う際に、そのデータ転送に必要なタイミング信号を生成する。
【００１２】
ここで、ホストＣＰＵ１１側で用いる動作クロックとＤＭＡインターフェイス１４側で用いる動作クロックとは同期している。一例として、ホストＣＰＵ１１側およびＤＭＡインターフェイス１４側は共に同じ動作クロックＣＬＫを用いている。また、外部デバイス１３からＤＭＡインターフェイス１４に入力されるＤＭＡ要求信号ＤＲＥＱは、入力される期間に亘ってＤＭＡ要求を出すレベルタイプの信号、即ちレベル入力の信号となっている。
【００１３】
次に、上記構成の第１実施形態に係るダイレクトメモリアクセス装置におけるＤＭＡインターフェイス１４の動作について、図２のタイミングチャートを用いて説明する。
【００１４】
ＤＭＡインターフェイス１４は、外部デバイス１３から入力されるＤＭＡ要求信号ＤＲＥＱがアクティブでかつエンプティフラグ生成部２２で生成されるエンプティフラグＦＬＧがアクティブ、即ちデータバッファ２１が空になったとき、ホストＣＰＵ１１からのＤＭＡ許可信号ＤＡＣＫを待たずに、外部デバイス１３にＤＭＡ許可信号ＤＡＣＫを返して外部デバイス１３に対してリードアクセスを発生させ、外部デバイス１３からデータを取り込んでデータバッファ２１に格納する。
【００１５】
また、エンプティフラグＦＬＧがインアクティブ、即ちデータバッファ２１が満（Ｆｕｌｌ）のとき、ホストＣＰＵ１１に対してＤＭＡリード要求を行う。そして、ホストＣＰＵ１１側からデータのリードがあったとき、データバッファ２１内のデータをホストＣＰＵ１１側に転送しかつエンプティフラグＦＬＧをアサートする（アクティブにする）。
【００１６】
上述したように、ホストＣＰＵ１１側の動作クロックとＤＭＡインターフェイス１４側の動作クロックとが同期し、ＤＭＡ要求信号ＤＲＥＱがレベル入力のダイレクトメモリアクセス装置において、ＤＭＡ要求信号ＤＲＥＱがアクティブでかつエンプティフラグＦＬＧがアクティブのとき、ＤＭＡリードアクセスを行って外部デバイス１３から読み込んだデータをデータバッファ２１に格納し、エンプティフラグＦＬＧがインアクティブのときホストＣＰＵ１１に対してリード要求を行い、ホストＣＰＵ１１からのリードに対してデータバッファ２１内のデータをホストＣＰＵ１１側に転送しかつエンプティフラグＦＬＧをアサートすることで、ホストＣＰＵ１１からのＤＭＡ許可信号ＤＡＣＫを待たずに、外部デバイス１３からデータを先読みすることができるため、外部デバイス１３側のリードアクセスの際におけるホストＣＰＵ１１側のデータバス１５の占有時間を大幅に削減することができる。
【００１７】
また、外部デバイス１３のリードアクセスの際に、外部デバイス１３から取り込んだデータを直接ホストＣＰＵ１１へ転送するのではなく、ホストＣＰＵ１１からのＤＭＡ許可信号ＤＡＣＫを待たずに、外部デバイス１３にＤＭＡ許可信号ＤＡＣＫを返してデータをあらかじめ先読みする、即ち外部デバイス１３からデータを読み込んでデータバッファ２１に格納することにより、連続リードアクセス等の場合に、データの転送時間を短縮することができるという利点もある。
【００１８】
なお、本実施形態では、ホストＣＰＵ１１側の動作クロックとＤＭＡインターフェイス１４側の動作クロックとが同期したダイレクトメモリアクセス装置において、ＤＭＡ要求信号ＤＲＥＱがレベル入力の信号の場合を例に挙げて説明したが、ＤＭＡ要求信号ＤＲＥＱが入力されるタイミングでＤＭＡ要求を出すパルスタイプの信号、即ちパルス入力の信号の場合にも同様に適用可能である。
【００１９】
ホストＣＰＵ１１側の動作クロックとＤＭＡインターフェイス１４側の動作クロックとが同期したダイレクトメモリアクセス装置において、ＤＭＡ要求信号ＤＲＥＱがパルス入力の場には、図３のタイミングチャートに示すように、外部デバイス１３のリードアクセスは、エンプティフラグＦＬＧがアクティブのとき、データ要求信号ＤＲＥＱの立ち上がりタイミングにて起動する。ただし、エンプティフラグＦＬＧのみによる起動はない。
【００２０】
［第２実施形態］
図４は、本発明の第２実施形態に係るダイレクトメモリアクセス装置の構成例を示すブロック図であり、図中、図１と同等部分には同一符号を付して示している。
【００２１】
本実施形態に係るダイレクトメモリアクセス装置は、ホストＣＰＵ１１側の動作クロックとＤＭＡインターフェイス１４側の動作クロックとが非同期で、ＤＭＡ要求信号ＤＲＥＱがレベル入力となっている。ここでは、ＤＭＡインターフェイス１４側の動作クロックをＣＬＫ１、ホストＣＰＵ１１側の動作クロックをＣＬＫ２とする。ホストＣＰＵ１１側の動作クロックとＤＭＡインターフェイス１４側の動作クロックとが非同期であることに伴って、ＤＭＡインターフェイス１４は動作クロックをＣＬＫ１，ＣＬＫ２の双方に対してデータバッファ２１およびエンプティフラグ生成部２２をそれぞれ用意した構成を採っている。
【００２２】
すなわち、ＤＭＡインターフェイス１４は、データバッファ２１およびエンプティフラグ生成部２２として、ＤＭＡインターフェイス１４側の動作クロックＣＬＫ１で動作する第１データバッファ２１−１および第１エンプティフラグ生成部２２−１と、ホストＣＰＵ１１側の動作クロックＣＬＫ２で動作する第２データバッファ２１−２および第２エンプティフラグ生成部２２−２とを有する構成となっている。ＤＭＡインターフェイス１４以外の構成は、第１実施形態に係るダイレクトメモリアクセス装置の場合と同じである。
【００２３】
次に、上記構成の第２実施形態に係るダイレクトメモリアクセス装置におけるＤＭＡインターフェイス１４の動作について、図５のタイミングチャートを用いて説明する。
【００２４】
外部デバイス１５からのＤＭＡ要求信号ＤＲＥＱがアクティブでかつ第１エンプティフラグ生成部２２−１で生成される第１エンプティフラグＦＬＧ１がアクティブ、即ちデータバッファ２１−１が空になったとき、ホストＣＰＵ１１からのＤＭＡ許可信号ＤＡＣＫを待たずに、外部デバイス１３にＤＭＡ許可信号ＤＡＣＫを返して外部デバイス１３に対して外部デバイス１３に対してＤＭＡリードアクセスを発生させ、外部デバイス１３からデータを取り込んでデータバッファ２１−１に格納しかつ第１エンプティフラグＦＬＧをネゲートする（インアクティブにする）。
【００２５】
次いで、第１エンプティフラグＦＬＧ１がインアクティブでかつ第２エンプティフラグ生成部２２−２で生成される第２エンプティフラグＦＬＧ２がアクティブ、即ち第２エンプティフラグ生成部２２−２が空のとき、第１データバッファ２１−１から第２データバッファ２１−２に対してデータの転送を行い、第１エンプティフラグＦＬＧ１をアサートし（アクティブにし）かつ第２エンプティフラグＦＬＧ２をネゲートする。
【００２６】
第１データバッファ２１−１が空になり、第１エンプティフラグＦＬＧ１がアサートされたら、外部デバイス１３に対してリードアクセスを行う。このリードアクセスにより、外部デバイス１３からデータを取り込んでデータバッファ２１−１に格納し、第２エンプティフラグ生成部２２−２が空のとき、第１データバッファ２１−１から第２データバッファ２１−２に対してデータの転送を行う動作を繰り返す。
【００２７】
一方、第２エンプティフラグＦＬＧ２がインアクティブ、即ちＦｕｌｌのときホストＣＰＵ１１に対してリード要求を行い、ホストＣＰＵ１１側からリードがあったとき第２データバッファ２１−２のデータをホストＣＰＵ１１側に転送して第２エンプティフラグＦＬＧ２をアサートする。また、第２データバッファ２１−２のデータをホストＣＰＵ１１に転送した後、第１エンプティフラグＦＬＧ１がインアクティブでかつ第２エンプティフラグＦＬＧ２がアクティブのとき、第１データバッファ２１−１から第２データバッファ２１−２に対してデータの転送を行う。
【００２８】
上述したように、ＤＭＡインターフェイス１４は動作クロックをＣＬＫ１，ＣＬＫ２の双方に対してデータバッファ２１（２１−１，２１−２）およびエンプティフラグ生成部２２（２２−１，２２−２）をそれぞれ用意し、外部デバイス１３のリードアクセスの際に、ホストＣＰＵ１１からのＤＭＡ許可信号ＤＡＣＫを待たずに、外部デバイス１３からデータを先読みし、かつデータバッファ２１−１，２１−２で中継することにより、ホストＣＰＵ１１側の動作クロックとＤＭＡインターフェイス１４側の動作クロックとが非同期の場合であっても、同期の場合と同様に、外部デバイス１３側のリードアクセスの際におけるホストＣＰＵ１１側のデータバス１５の占有時間を大幅に削減することができるとともに、連続リードアクセス等の場合に、データの転送時間を短縮することができる。
【００２９】
【発明の効果】
以上説明したように、本発明によれば、外部デバイス側のリードアクセスの際に、ホストＣＰＵからのＤＭＡ許可信号を待たずに、外部デバイスからデータを先読みすることができるため、ホストＣＰＵ側のデータバスの占有時間を大幅に削減することができるとともに、連続リードアクセス等の場合にデータの転送時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るダイレクトメモリアクセス装置の構成例を示すブロック図である。
【図２】第１実施形態に係るダイレクトメモリアクセス装置におけるレベル入力の場合のタイミングチャートである。
【図３】第１実施形態に係るダイレクトメモリアクセス装置におけるパルス入力の場合のタイミングチャートである。
【図４】本発明の第２実施形態に係るダイレクトメモリアクセス装置の構成例を示すブロック図である。
【図５】第２実施形態に係るダイレクトメモリアクセス装置におけるレベル入力の場合のタイミングチャートである。
【図６】ダイレクトメモリアクセス装置の従来例を示すブロック図である。
【図７】従来例に係るダイレクトメモリアクセス装置のタイミングチャートである。
【符号の説明】
１１…ホストＣＰＵ、１２…ＤＭＡコントローラ、１３…外部デバイス、１４…ＤＭＡインターフェイス（Ｉ／Ｆ）、２１，２１−１，２１−２…データバッファ、２２，２２−１，２２−２…エンプティフラグ生成部、２３…ＤＭＡタイミング生成部
【図１】
2004139361.tif 000003
【図２】
2004139361.tif 000004
【図３】
2004139361.tif 000005
【図４】
2004139361.tif 000006
【図５】
2004139361.tif 000007
【図６】
2004139361.tif 000008
【図７】
2004139361.tif 000009