(57)【特許請求の範囲】
【請求項１】
要求信号によってダイレクトメモリアクセスによるデータ転送の要求を受けると、設定されている所定の転送回数のデータ転送を実行するＤＭＡコントローラと、
前記要求信号として、入力される第１の要求信号に基づく第２の要求信号を前記ＤＭＡコントローラに供給する制御回路と、
前記所定の転送回数のデータ転送中に前記第１の要求信号がインアクティブにされた場合に、転送アドレス及び残りの転送回数を取得する情報取得回路と、
前記情報取得回路により取得した前記転送アドレス及び前記残りの転送回数を、前記ＤＭＡコントローラが前記所定の転送回数のデータ転送を実行した後に前記ＤＭＡコントローラに設定する再設定回路と、を有し、
前記制御回路は、前記所定の転送回数のデータ転送中に前記第１の要求信号がインアクティブにされた場合に、前記第１の要求信号がインアクティブにされてから前記ＤＭＡコントローラが前記所定の転送回数のデータ転送を終了するまでは前記第２の要求信号をインアクティブにすることを特徴とする半導体装置。
【請求項２】
前記情報取得回路は、
前記第１の要求信号がインアクティブにされたときの転送アドレスを保持するアドレス保持回路と、
前記第１の要求信号がインアクティブにされてから前記所定の転送回数のデータ転送を終了するまでのデータの転送回数を計数するカウンタと、を有することを特徴とする請求項１記載の半導体装置。
【請求項３】
前記カウンタは、前記ＤＭＡコントローラから出力されるデータの書き込み又は読み出しを示す信号を用いて、データの転送回数を計数することを特徴とする請求項２記載の半導体装置。
【請求項４】
前記所定の転送回数のデータ転送中に前記第１の要求信号がインアクティブにされた場合に、前記ＤＭＡコントローラから前記データ転送に係るバスへの出力を停止させる出力制御回路を有することを特徴とする請求項１〜３の何れか１項に記載の半導体装置。
【請求項５】
前記出力制御回路は、前記所定の転送回数のデータ転送中に前記第１の要求信号がインアクティブにされた場合に、前記バスに対してデータ転送の終了に係る処理を行うことを特徴とする請求項４記載の半導体装置。
【請求項６】
前記出力制御回路は、前記所定の転送回数のデータ転送中に前記第１の要求信号がインアクティブにされた場合に、前記ＤＭＡコントローラが保持している前記バスのバス権を放棄する処理を行うことを特徴とする請求項４記載の半導体装置。
【請求項７】
ＤＭＡコントローラが要求信号によってダイレクトメモリアクセスによるデータ転送の要求を受けると、設定されている所定の転送回数のデータ転送を実行し、
要求信号のレベルによってダイレクトメモリアクセスによるデータ転送の要求を行う回路との間で実行され、
前記要求信号として、前記回路から入力される第１の要求信号に基づく第２の要求信号を前記ＤＭＡコントローラに供給し、
前記所定の転送回数のデータ転送中に前記第１の要求信号がインアクティブにされた場合に、転送アドレス及び残りの転送回数を取得し、
取得した前記転送アドレス及び前記残りの転送回数を、前記ＤＭＡコントローラが前記所定の転送回数のデータ転送を実行した後に前記ＤＭＡコントローラに再設定し、
前記所定の転送回数のデータ転送中に前記第１の要求信号がインアクティブにされた場合に、前記第１の要求信号がインアクティブにされてから前記ＤＭＡコントローラが前記所定の転送回数のデータ転送を終了するまでは前記第２の要求信号をインアクティブにすることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）によるデータ転送技術に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）を有する情報処理システムにおいて、ＣＰＵを介さずにリソース及びメモリ間等でデータ転送を行うダイレクトメモリアクセス（ＤＭＡ）は広く採用されている。ＤＭＡによるデータ転送（ＤＭＡ転送）は、ＤＭＡコントローラ（ＤＭＡＣ）により制御される。
【０００３】
ＤＭＡによるデータ転送モードには、例えばバースト転送モードがある。バースト転送モードは、１回の転送要求により予め設定した転送回数分のデータ転送を行うモードである。バースト転送モードでは、データリクエスト信号の立ち上がりエッジ（または立ち下がりエッジ）を検出してＤＭＡによるデータ転送動作が開始されると、その後のデータリクエスト信号のレベルにはかかわらず、設定されている転送回数のデータ転送が行われる。
【０００４】
また、ＤＭＡによるデータ転送には、データリクエスト信号がアクティブなレベルである期間においてデータ転送を行うものがある。このデータ転送では、データリクエスト信号がアクティブになるとＤＭＡによるデータ転送動作が開始されて、アクティブである期間中はデータ転送が継続して行われ、データリクエスト信号がインアクティブになることで転送動作が終了される。
【０００５】
また、下記特許文献１には、バースト転送の実行中において１回のデータ転送毎にその都度バス権を放棄してバスを解放することで、バスを長時間占有し続けることを抑制したＤＭＡコントローラが開示されている。また、下記特許文献２には、データリクエスト信号の立ち上がりエッジ（又は立ち下がりエッジ）を検出して１サイクルのパルスに変換し、そのパルス信号をリクエストキューとして蓄積し、蓄積されたキューに対応してＤＭＡコントローラによりデータ転送を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−２０８５４０号公報
【特許文献２】特開２００２−２６９０２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、バースト転送モードでデータ転送を行うＤＭＡコントローラは、ＤＭＡによるデータ転送動作を開始した後、設定されている転送回数のデータ転送を終了するまでデータリクエスト信号のレベルを確認しない。そのため、バースト転送モードでデータ転送を行うＤＭＡコントローラは、データリクエスト信号のレベルによってＤＭＡによるデータ転送を要求するモジュールに対して正常にデータを転送できない。これは、図７に一例を示すように、データリクエスト信号のレベルでＤＭＡによるデータ転送を要求するモジュールが、ＤＭＡコントローラに設定された転送回数のデータ転送を終了する前に、データリクエスト信号をインアクティブにしてしまう可能性があるからである。そして、ＤＭＡコントローラに設定された転送回数のデータ転送を終了する前に、データリクエスト信号がインアクティブになると、その後に転送されたデータは無効とされるからである。
【０００８】
図７において、データリクエストはモジュールから出力されるデータリクエスト信号であり、アクティブなレベルがハイレベル（ハイアクティブ）の信号である。また、モジュールへのＤＭＡ書込みは、モジュールに対するデータの書込みを示しており、ＤＭＡＣ転送回数は、バースト転送モードでのＤＭＡ転送動作における残りのデータ転送回数を示している。図７には、ＤＭＡコントローラに予め設定されているデータ転送回数が６回である場合を一例として示している。図７に示したように、時刻Ｔ７１において、データリクエスト信号のレベルによってＤＭＡによるデータ転送を要求するモジュールがデータリクエスト信号をインアクティブにすると、その後のモジュールへの書込みが無効となってしまう。このように、データリクエスト信号のレベルでＤＭＡによるデータ転送を要求するモジュールでは、ＤＭＡにおけるバースト転送モードを利用することができない。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、要求信号によってダイレクトメモリアクセスによるデータ転送の要求を受けるとバースト転送モードでデータ転送を行うＤＭＡコントローラと、入力される第１の要求信号に基づく第２の要求信号をＤＭＡコントローラに供給する制御回路と、バースト転送モードでのデータ転送中に第１の要求信号がインアクティブにされた場合にアドレス及び残りの転送回数を取得する情報取得回路と、取得したアドレス及び残りの転送回数をＤＭＡコントローラによるバースト転送モードでのデータ転送を実行した後にＤＭＡコントローラに設定する再設定回路とを有する半導体装置が提供される。制御回路は、バースト転送モードでのデータ転送中に第１の要求信号がインアクティブにされた場合に、第１の要求信号がインアクティブにされてからバースト転送モードでのデータ転送を終了するまでは第２の要求信号をインアクティブにする。
【発明の効果】
【００１０】
開示の半導体装置は、バースト転送モードでのデータ転送中に要求信号がインアクティブにされたときには、そのときのアドレス及び残りの転送回数をバースト転送モードでのデータ転送終了後に再設定してＤＭＡによるデータ転送の続きを実行させることができる。したがって、ＤＭＡによるデータ転送を要求するモジュールが要求信号のレベルによってデータ転送を要求するモジュールであっても、ＤＭＡにおけるバースト転送モードを利用したデータ転送を行うことが可能になる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態における半導体装置（ＤＭＡ転送補助回路）を有する情報処理システムの構成例を示す図である。
【図２】第１の実施形態におけるＤＭＡ転送補助回路の構成例を示す図である。
【図３】第１の実施形態におけるＤＭＡ転送動作の一例を示すタイミングチャートである。
【図４】第２の実施形態における半導体装置（ＤＭＡ転送補助回路）を有する情報処理システムの構成例を示す図である。
【図５】第２の実施形態におけるＤＭＡ転送補助回路の構成例を示す図である。
【図６】第２の実施形態におけるＤＭＡ転送動作の一例を示すタイミングチャートである。
【図７】転送されたデータが無効になる動作例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
【００１３】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１は、第１の実施形態における半導体装置（ＤＭＡ転送補助回路）を有する情報処理システムの構成例を示すブロック図である。図１において、１１はダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）コントローラ、１２はＤＭＡ転送補助回路、１３はモジュール、１４はメモリ（ＲＡＭ）、ＢＵＳはバスである。
【００１４】
なお、図１においては、ＤＭＡによるデータ転送動作に係る特徴的構成を図示しており、本実施形態における情報処理システムの構成がこれに限定されるものではない。例えば、本実施形態における情報処理システムが、図示しないＣＰＵを有することはいうまでもなく、また他のモジュール（リソース）等を有していても良い。
【００１５】
ＤＭＡコントローラ１１は、ＣＰＵを介さずに行うモジュール１３及びメモリ１４間等のＤＭＡによるデータ転送（ＤＭＡ転送）を制御する。ＤＭＡコントローラ１１は、入力されるデータリクエスト信号によってＤＭＡ転送の要求を受けると、バスＢＵＳを介したＤＭＡによるデータ転送動作を開始する。本実施形態では、ＤＭＡコントローラ１１は、データリクエスト信号の立ち上がりエッジを検出すると、その後のデータリクエスト信号のレベルにはかかわらず、予め設定されている転送回数分のデータ転送を行う、すなわちバースト転送モードでデータ転送を行う。
【００１６】
モジュール１３は、バスＢＵＳに接続されており、所定の機能を実現する回路を有する。本実施形態においてモジュール１３は、出力するデータリクエスト信号のレベルによってＤＭＡによるデータ転送を要求するモジュールであり、ＤＭＡによるデータ転送を要求するときにはデータリクエスト信号をアクティブ（ハイレベル）にする。メモリ１４は、各種のデータを記憶する。メモリ１４は、バスＢＵＳに接続されており、バスＢＵＳを介した外部からのデータの書き込みやデータの読み出しが行われる。
【００１７】
ＤＭＡ転送補助回路１２は、ＤＭＡコントローラ１１とバスＢＵＳとの間に設けられる。ＤＭＡ転送補助回路１２は、データリクエスト信号のレベルによってＤＭＡによるデータ転送を要求するモジュール１３に対する、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送を可能にするようＤＭＡによるデータ転送に係る各種の制御を行う。ＤＭＡ転送補助回路１２は、例えばモジュール１３からの要求に応じてＤＭＡによるデータ転送が行われるとき、ＤＭＡコントローラ１１とバスＢＵＳ等との間で入出力される各種信号を制御する。
【００１８】
図１に示すように、ＤＭＡ転送補助回路１２には、バス権要求信号ＢＲＱＰ、アドレスバスＡＤＤＰ、書き込みデータバスＷＤＴＰ、モジュール書き込み信号ＭＷＲＰ、及びＤＭＡ動作終了信号ＤＥＯＰがＤＭＡコントローラ１１から入力される。ＤＭＡコントローラ１１には、データリクエスト信号ＤＲＱＰ及びバス権獲得信号ＢＧＲＰがＤＭＡ転送補助回路１２から入力され、読み出しデータバスＲＤＴがバスＢＵＳを介して入力される。
【００１９】
また、ＤＭＡ転送補助回路１２は、バス権要求信号ＢＲＱ、アドレスバスＡＤＤ、書き込みデータバスＷＤＴ、モジュール書き込み信号ＭＷＲ、及びＤＭＡ動作終了信号ＤＥＯをバスＢＵＳに対して出力する。ＤＭＡ転送補助回路１２には、データリクエスト信号ＤＲＱがモジュール１３から入力され、バス権獲得信号ＢＧＲがバスＢＵＳを介して図示しないアービタ（調停回路）等から入力される。
【００２０】
ここで、本実施形態では、データリクエスト信号ＤＲＱ、ＤＲＱＰ、バス権要求信号ＢＲＱ、ＢＲＱＰ、バス権獲得信号ＢＧＲ、ＢＧＲＰ、及びＤＭＡ動作終了信号ＤＥＯ、ＤＥＯＰは、アクティブにされるときハイレベル（“Ｈ”）にされ、インアクティブ時はローレベル（“Ｌ”）とする。また、モジュール書き込み信号ＭＷＲ、ＭＷＲＰは、“Ｈ”のとき書き込み転送方向（モジュール１３又はメモリ１４等へのデータ書き込み）であるとし、“Ｌ”のとき読み出し転送方向（モジュール１３又はメモリ１４等からのデータ読み出し）であるとする。なお、モジュール１３及びメモリ１４は、アドレスバス、書き込みデータバス、読み出しデータバス、及び書き込み信号等を介してバスＢＵＳに接続されている。
【００２１】
図２は、ＤＭＡ転送補助回路１２の構成例を示す図である。ＤＭＡ転送補助回路１２は、データリクエスト信号制御回路２１、カウンタ２２、アドレス保持回路２４、再設定回路２５、及びバス出力信号制御回路２６を有する。
【００２２】
データリクエスト信号制御回路２１は、モジュール１３からデータリクエスト信号ＤＲＱが入力され、データリクエスト信号ＤＲＱＰをＤＭＡコントローラ１１に出力する。データリクエスト信号制御回路２１は、通常、入力されるデータリクエスト信号ＤＲＱと同じレベルのデータリクエスト信号ＤＲＱＰを出力する。すなわち、データリクエスト信号制御回路２１は、モジュール１３からのデータリクエスト信号ＤＲＱがアクティブ（“Ｈ”）になると、出力するデータリクエスト信号ＤＲＱＰをアクティブ（“Ｈ”）にする。また、データリクエスト信号制御回路２１は、モジュール１３からのデータリクエスト信号ＤＲＱがインアクティブ（“Ｌ”）になると、出力するデータリクエスト信号ＤＲＱＰをインアクティブ（“Ｌ”）にする。
【００２３】
ただし、データリクエスト信号制御回路２１は、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＱが“Ｌ”になると、バースト転送モードでのデータ転送が終了するまでデータリクエスト信号ＤＲＱＰを“Ｌ”に維持する。すなわち、データリクエスト信号制御回路２１は、バースト転送モードでのデータ転送が終了するまでの期間において、再びデータリクエスト信号ＤＲＱが“Ｈ”になっても出力するデータリクエスト信号ＤＲＱＰを“Ｈ”にしない。
【００２４】
なお、ＤＭＡによるバースト転送モードでのデータ転送の終了は、例えばＤＭＡコントローラ１１から出力されるＤＭＡ動作終了信号ＤＥＯＰを用いて検知するようにしても良い。また、例えば再設定回路２５から再設定動作を終了したことを示す信号を出力するようにして、その信号を用いてＤＭＡによるバースト転送モードでのデータ転送の終了を検知するようにしても良い。
【００２５】
カウンタ２２は、カウンタ回路２３を有し、そのカウンタ値Ｗ＿ＣＮＴを再設定回路２５に出力する。カウンタ２２は、データリクエスト信号制御回路２１からデータリクエスト信号ＤＲＱＰが入力されるとともに、ＤＭＡコントローラ１１からモジュール書き込み信号ＭＷＲＰ及びＤＭＡ動作終了信号ＤＥＯＰが入力される。カウンタ２２は、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＱが“Ｌ”になると、それからバースト転送モードでのデータ転送を終了するまでにＤＭＡコントローラ１１が書き込み（又は読み出し）を指示したデータの数をカウントする。
【００２６】
カウンタ２２は、例えば入力されるデータリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”に変化すると、モジュール書き込み信号ＭＷＲＰを参照してデータの書き込み（又は読み出し）が指示された回数をカウンタ回路２３によりカウントする。カウンタ回路２３は、初期値を０とし、データリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”になった後に、データの書き込み（又は読み出し）の指示が検知される毎に値が１ずつ増加される。そして、カウンタ２２は、入力されるＤＭＡ動作終了信号ＤＥＯＰが“Ｈ”になるとカウント動作を終了する。
【００２７】
アドレス保持回路２４は、データリクエスト信号制御回路２１からデータリクエスト信号ＤＲＱＰが入力されるとともに、ＤＭＡコントローラ１１からアドレスバスＡＤＤＰが入力される。アドレス保持回路２４は、入力されるデータリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”になってから最初のアドレス値（ライトアドレス又はリードアドレス）を保持し、保持したアドレス値を出力する。アドレス保持回路２４は、例えば入力されるデータリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”に変化したときに、アドレスバスＡＤＤＰより入力されるアドレス値を保持し、保持したアドレス値を再設定回路２５に出力する。
【００２８】
再設定回路２５は、カウンタ２２からカウンタ値Ｗ＿ＣＮＴが入力されるとともに、アドレス保持回路２４から保持されたアドレス値が入力され、それらに基づいてＤＭＡによるデータ転送に係るアドレス値及び転送回数をＤＭＡコントローラ１１に再設定する。再設定回路２５は、ＤＭＡコントローラ１１から入力されるＤＭＡ動作終了信号ＤＥＯＰが“Ｈ”になると、カウンタ２２及びアドレス保持回路２４から供給されるアドレス値及びカウンタ値をアドレス値及び転送回数としてＤＭＡコントローラ１１に設定する。
【００２９】
バス出力信号制御回路２６は、ＤＭＡコントローラ１１とバスＢＵＳとの間で授受される各信号を制御する。バス出力信号制御回路２６は、データリクエスト信号制御回路２１から入力されるデータリクエスト信号ＤＲＱＰが“Ｈ”の場合には、ＤＭＡコントローラ１１から入力される信号をそのままバスＢＵＳに出力し、バスＢＵＳから入力される信号をそのままＤＭＡコントローラ１１に出力する。すなわち、入力されるデータリクエスト信号ＤＲＱＰが“Ｈ”の場合には、ＤＭＡコントローラ１１から入力される信号ＭＷＲＰ、ＡＤＤＰ、ＤＥＯＰ、ＢＲＱＰ、ＷＤＴＰが、信号ＭＷＲ、ＡＤＤ、ＤＥＯ、ＢＲＱ、ＷＤＴとしてバスＢＵＳに対して出力される。同様に、バスＢＵＳより入力される信号ＢＧＲが、信号ＢＧＲＰとしてＤＭＡコントローラ１１に入力される。
【００３０】
また、バス出力信号制御回路２６は、入力されるデータリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”に変化すると、ＤＭＡコントローラ１１が保持しているバスＢＵＳのバス権を放す（放棄する）処理を行う。バス出力信号制御回路２６は、バス権を放した（放棄した）後、ＤＭＡコントローラ１１からバスＢＵＳへのアクセスを切断する。例えば、バス出力信号制御回路２６は、データリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”に変化すると、入力されるバス権要求信号ＢＲＱＰにかかわらず、バス権を放す（放棄する）ためにバス権要求信号ＢＲＱをインアクティブ（“Ｌ”）にする。そして、バス権を放す（放棄する）と、バス出力信号制御回路２６は、出力するＤＭＡ動作終了信号ＤＥＯを“Ｈ”にし、バスＢＵＳを介したＤＭＡによるデータ転送を終了する。
【００３１】
次に、第１の実施形態におけるＤＭＡによるデータ転送動作について説明する。
図３は、第１の実施形態におけるＤＭＡによるデータ転送動作の一例を示すタイミングチャートである。図３（Ａ）にはバスＢＵＳ上の信号に係る波形例を示し、図３（Ｂ）にはＤＭＡコントローラ１１及びＤＭＡ転送補助回路１２間の信号に係る波形例を示している。
【００３２】
図３（Ａ）において、ＤＲＱはデータリクエスト信号、ＢＲＱはバス権要求信号、ＢＧＲはバス権獲得信号、ＡＤＤはアドレスバス、ＷＤＴは書き込みデータバス、ＲＤＴは読み出しデータバス、ＭＷＲはモジュール書き込み信号、ＤＥＯはＤＭＡ動作終了信号である。データリクエスト信号ＤＲＱは、モジュール１３よりＤＭＡ転送補助回路１２に出力される。バス権要求信号ＢＲＱ、アドレスバスＡＤＤ、書き込みデータバスＷＤＴ、モジュール書き込み信号ＭＷＲ、及びＤＭＡ動作終了信号ＤＥＯは、ＤＭＡ転送補助回路１２よりバスＢＵＳに対して出力される。バス権獲得信号ＢＧＲはバスＢＵＳよりＤＭＡ転送補助回路１２に出力され、読み出しデータバスＲＤＴはバスＢＵＳよりＤＭＡコントローラ１１に出力される。
【００３３】
また、図３（Ｂ）において、ＤＲＱＰはデータリクエスト信号、ＢＲＱＰはバス権要求信号、ＢＧＲＰはバス権獲得信号、ＡＤＤＰはアドレスバス、ＷＤＴＰは書き込みデータバス、ＭＷＲＰはモジュール書き込み信号、ＤＥＯＰはＤＭＡ動作終了信号である。データリクエスト信号ＤＲＱＰ及びバス権獲得信号ＢＧＲＰは、ＤＭＡ転送補助回路１２よりＤＭＡコントローラ１１に出力される。バス権要求信号ＢＲＱＰ、アドレスバスＡＤＤＰ、書き込みデータバスＷＤＴＰ、モジュール書き込み信号ＭＷＲＰ、及びＤＭＡ動作終了信号ＤＥＯＰは、ＤＭＡコントローラ１１よりＤＭＡ転送補助回路１２に出力される。また、残転送回数は、ＤＭＡコントローラ１１内のレジスタ等に格納されているＤＭＡによるバースト転送モードでの残りのデータ転送回数を示しており、Ｗ＿ＣＮＴはＤＭＡ転送補助回路１２のカウンタ２２におけるカウンタ値を示している。
【００３４】
過去に要求したＤＭＡによるデータ転送が完了している状態で、モジュール１３が、データリクエスト信号ＤＲＱを“Ｈ”にすることによってＤＭＡによるデータ転送を要求する（時刻Ｔ１１）。データリクエスト信号ＤＲＱが“Ｈ”になると、ＤＭＡ転送補助回路１２のデータリクエスト信号制御回路２１は、ＤＭＡコントローラ１１に出力するデータリクエスト信号ＤＲＱＰを“Ｈ”にする。続いて、バスＢＵＳのバス権を獲得するためにＤＭＡコントローラ１１がバス権要求信号ＢＲＱＰを“Ｈ”にすると、ＤＭＡ転送補助回路１２のバス出力信号制御回路２６は、バスＢＵＳに対して出力するバス権要求信号ＢＲＱを“Ｈ”にする。
【００３５】
そして、バス権が獲得されるとバス権獲得信号ＢＧＲが“Ｈ”となり、それがＤＭＡ転送補助回路１２を介してバス権獲得信号ＢＧＲＰとして伝達され、ＤＭＡコントローラ１１は、バースト転送モードでのデータ転送を開始する（時刻Ｔ１２）。なお、本例では、ＤＭＡコントローラ１１に予め設定されているバースト転送モードでのデータ転送回数が６回であるとする。また、図３においてＳＡはデータ読み出しに係るアドレス（source address）を示し、ＤＡはデータ書き込みに係るアドレス（destination address）を示している。
【００３６】
ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送中に、モジュール１３がデータリクエスト信号ＤＲＱを“Ｈ”から“Ｌ”にすると、データリクエスト信号制御回路２１は、出力するデータリクエスト信号ＤＲＱＰを“Ｌ”にする（時刻Ｔ１３）。
【００３７】
データリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”になることで、バス出力信号制御回路２６は、ＤＭＡコントローラ１１が保持しているバスＢＵＳのバス権を放す処理を行う。この処理では、ＤＭＡコントローラ１１が実行しているバースト転送モードでのデータ転送の状態にかかわらず、バス出力信号制御回路２６は、バスＢＵＳに対して出力するバス権要求信号ＢＲＱを“Ｌ”にし、ＤＭＡ動作終了信号ＤＥＯを“Ｈ”にする（時刻Ｔ１４）。これにより、ＤＭＡコントローラ１１によるバスＢＵＳへの出力が停止される。
【００３８】
また、データリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”になったとき、ＤＭＡ転送補助回路１２のアドレス保持回路２４は、そのときのアドレスバスＡＤＤＰにおけるアドレスを保持する。それとともに、ＤＭＡ転送補助回路１２のカウンタ２２は、ＤＭＡコントローラ１１が書き込みを指示したデータの数のカウント動作を開始する。書き込みが指示されたデータの数は、モジュール書き込み信号ＭＷＲＰを参照してカウントし、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送が終了するまで、すなわちＤＭＡ動作終了信号ＤＥＯＰが“Ｈ”になるまで継続して行う。図３に示す例では、データリクエスト信号ＤＲＱＰが“Ｌ”になった後に３回書き込みが行われて（波形３１）、バースト転送モードでのデータ転送が終了しているので、カウンタ２２のカウンタ値Ｗ＿ＣＮＴは“３”となっている。
【００３９】
そして、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送が終了し、ＤＭＡ動作終了信号ＤＥＯＰが“Ｈ”になると、ＤＭＡ転送補助回路１２の再設定回路２５は、アドレス値及び転送回数をＤＭＡコントローラ１１に再設定する。再設定されるアドレス値はアドレス保持回路２４に保持されているアドレス値であり、転送回数はカウンタ２２のカウンタ値Ｗ＿ＣＮＴである。
【００４０】
ここで、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＱＰが“Ｈ”から“Ｌ”になると、バースト転送モードでのデータ転送が終了するまではデータリクエスト信号ＤＲＱＰは“Ｌ”に維持される。つまり、バースト転送モードでのデータ転送の終了前に、データリクエスト信号ＤＲＱが再び“Ｈ”となっても（時刻Ｔ１５）、データリクエスト信号ＤＲＱＰは“Ｌ”のままである。
【００４１】
その後、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送が終了してＤＭＡ動作終了信号ＤＥＯＰが“Ｈ”になると、データリクエスト信号ＤＲＱに応じたＤＭＡによるデータ転送が可能になる。図３に示す例では、時刻Ｔ１５においてデータリクエスト信号ＤＲＱが再び“Ｈ”となっているために、ＤＭＡ動作終了信号ＤＥＯＰが“Ｈ”になってすぐにデータリクエスト信号ＤＲＱＰが“Ｈ”になる。
【００４２】
そして、前述と同様にして、バス権要求信号ＢＲＱ（ＢＲＱＰ）によるバス権の要求、及びバス権獲得信号ＢＧＲ（ＢＧＲＰ）によるバス権の獲得の通知が行われて、ＤＭＡコントローラ１１によるデータ転送が開始される（時刻Ｔ１６）。これにより、データリクエスト信号ＤＲＱが“Ｈ”から“Ｌ”になることによってＤＭＡコントローラ１１によるバスＢＵＳへの出力が停止された後の残りのデータ転送（転送回数３回）が実行される。
【００４３】
第１の実施形態によれば、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送中に、データリクエスト信号ＤＲＱが“Ｈ”から“Ｌ”になると、バスＢＵＳのバス権を放棄する処理が行われる。また、データ転送に係るアドレスが保持されるとともに、バースト転送モードでのデータ転送終了までの転送回数がカウントされる。そして、ＤＭＡコントローラ１１によるバースト転送モードでのデータ転送が終了すると、保持されているアドレス及びカウントされた転送回数がＤＭＡコントローラ１１に設定され、データリクエスト信号ＤＲＱに応じてＤＭＡによるデータ転送が実行される。
【００４４】
これにより、バースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＱが“Ｈ”から“Ｌ”になっても、“Ｌ”になったタイミングからのデータを再送することができ、バースト転送モードを利用したデータ転送を行うことが可能になる。また、データリクエスト信号ＤＲＱが“Ｈ”から“Ｌ”になったときにＤＭＡコントローラ１１が保持しているバスＢＵＳのバス権を速やかに放棄することで、バスＢＵＳが不要に占有されることを防止し、バスＢＵＳにおける転送効率の向上を図ることができる。
【００４５】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
以下に説明する第２の実施形態は、一例としてＡＲＭ社のＡＭＢＡ規格でのＡＨＢバスを利用する情報処理システムに、半導体装置（ＤＭＡ転送補助回路）を適用したものである。図４は、第２の実施形態における半導体装置（ＤＭＡ転送補助回路）を有する情報処理システムの構成例を示すブロック図である。図４において、４１はＤＭＡコントローラ、４２はＤＭＡ転送補助回路、４３はモジュール、４４はメモリ（ＲＡＭ）、及びＡＨＢはＡＨＢバスである。
【００４６】
なお、図４においても、ＤＭＡによるデータ転送動作に係る特徴的構成を図示しており、本実施形態における情報処理システムの構成がこれに限定されるものではない。例えば、図示しないＣＰＵを有することはいうまでもなく、またＡＨＢバスに接続可能な他のモジュール（リソース）等を有していても良い。
【００４７】
ＤＭＡコントローラ４１、ＤＭＡ転送補助回路４２、モジュール４３、メモリ４４、及びＡＨＢバスＡＨＢは、第１の実施形態におけるＤＭＡコントローラ１１、ＤＭＡ転送補助回路１２、モジュール１３、メモリ１４、及びバスＢＵＳにそれぞれ対応する。また、各部４１〜４４、ＡＨＢが有する機能等も、第１の実施形態における各部１１〜１４、ＢＵＳが有する機能等と同様であるので、その説明は省略する。
【００４８】
ＤＭＡ転送補助回路４２には、バス権要求信号ＨＢＵＳＲＥＱ＿ＤＯ、転送タイプ信号ＨＴＲＡＮＳ＿ＤＯ、アドレスバスＨＡＤＤＲ＿ＤＯ、書き込みデータバスＨＷＤＡＴＡ＿ＤＯ、書き込み信号ＨＷＲＩＴＥ＿ＤＯ、及びデータ転送終了信号ＤＥＯＰ＿ＤＯがＤＭＡコントローラ４１から入力される。ＤＭＡコントローラ４１には、データリクエスト信号ＤＲＥＱ＿ＤＩ及びバス権獲得信号ＨＧＲＡＮＴ＿ＤＩがＤＭＡ転送補助回路４２から入力され、読み出しデータバスＨＲＤＡＴＡがバスＡＨＢを介して入力される。
【００４９】
また、ＤＭＡ転送補助回路４２は、バス権要求信号ＨＢＵＳＲＥＱ、転送タイプ信号ＨＴＲＡＮＳ、アドレスバスＨＡＤＤＲ、書き込みデータバスＨＷＤＡＴＡ、書き込み信号ＨＷＲＩＴＥ、及びデータ転送終了信号ＤＥＯＰをバスＡＨＢに対して出力する。ＤＭＡ転送補助回路４２には、データリクエスト信号ＤＲＥＱがモジュール４３から入力され、バス権獲得信号ＨＧＲＡＮＴがバスＡＨＢを介して図示しないアービタ（調停回路）等から入力される。
【００５０】
本実施形態では、データリクエスト信号ＤＲＥＱ、ＤＲＥＱ＿ＤＩ、バス権要求信号ＨＢＵＳＲＥＱ、ＨＢＵＳＲＥＱ＿ＤＯ、及びバス権獲得信号ＨＧＲＡＮＴ、ＨＧＲＡＮＴ＿ＤＩは、アクティブにされるとき“Ｈ”にされ、インアクティブ時は“Ｌ”とする。また、データ転送終了信号ＤＥＯＰ、ＤＥＯＰ＿ＤＯは、アクティブにされるとき“Ｈ”にされ、インアクティブ時は“Ｌ”とする。転送タイプ信号ＨＴＲＡＮＳ、ＨＴＲＡＮＳ＿ＤＯは、次に転送するデータがあるか否かを示す信号であり、次に転送するデータがある場合には第１の状態（「Ｎ」とする）にされ、次に転送するデータがない場合には第２の状態（「Ｉ」とする）にされる。書き込み信号ＨＷＲＩＴＥ、ＨＷＲＩＴＥ＿ＤＯは、“Ｈ”のとき書き込み転送方向（モジュール４３又はメモリ４４等へのデータ書き込み）であるとし、“Ｌ”のとき読み出し転送方向（モジュール４３又はメモリ４４等からのデータ読み出し）であるとする。なお、モジュール４３及びメモリ４４は、アドレスバス、書き込みデータバス、読み出しデータバス、及び書き込み信号等を介してバスＡＨＢに接続されている。
【００５１】
図５は、ＤＭＡ転送補助回路４２の構成例を示す図である。ＤＭＡ転送補助回路４２は、データリクエスト信号制御回路５１、カウンタ５２、アドレス保持回路５４、再設定回路５５、及びバス出力信号制御回路５６を有する。
【００５２】
データリクエスト信号制御回路５１は、モジュール４３から入力されるデータリクエスト信号ＤＲＥＱに基づいて、データリクエスト信号ＤＲＥＱ＿ＤＩをＤＭＡコントローラ４１に出力する。データリクエスト信号制御回路５１は、通常、入力されるデータリクエスト信号ＤＲＥＱと同じレベルのデータリクエスト信号ＤＲＥＱ＿ＤＩを出力する。ただし、データリクエスト信号制御回路５１は、ＤＭＡコントローラ４１によるバースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＥＱが“Ｌ”になると、バースト転送モードでのデータ転送終了までデータリクエスト信号ＤＲＥＱ＿ＤＩを“Ｌ”に維持する。なお、ＤＭＡによるバースト転送モードでのデータ転送終了は、例えば再設定回路５５から出力される再設定動作が終了したことを示す信号ＳＦを用いて検知すれば良い。
【００５３】
カウンタ５２は、カウンタ回路５３を有し、そのカウンタ値Ｗ＿ＣＮＴを再設定回路５５に出力する。カウンタ５２は、ＤＭＡコントローラ４１によるバースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＥＱが“Ｌ”になると、それからバースト転送モードでのデータ転送終了までにＤＭＡコントローラ４１が書き込み（又は読み出し）を指示したデータの数をカウントする。カウンタ５２は、例えば入力されるデータリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”から“Ｌ”に変化すると、書き込み信号ＨＷＲＩＴＥ＿ＤＯに基づいてデータの書き込み（又は読み出し）が指示された回数をカウンタ回路５３によりカウントする。カウンタ回路５３は、初期値を０とし、データリクエスト信号ＤＲＥＱ＿ＤＩが“Ｌ”に変化した後に、データの書き込み（又は読み出し）の指示が検知される毎に値が１ずつ増加される。そして、カウンタ５２は、入力されるデータ転送終了信号ＤＥＯＰ＿ＤＯが“Ｈ”になるとカウント動作を終了する。
【００５４】
アドレス保持回路５４は、データリクエスト信号制御回路５１より入力されるデータリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”から“Ｌ”になってから最初のアドレス値（ライトアドレス又はリードアドレス）を保持して出力する。アドレス保持回路５４は、例えば入力されるデータリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”から“Ｌ”に変化したときに、アドレスバスＨＡＤＤＲ＿ＤＯより入力されるアドレス値を保持し、保持したアドレス値を再設定回路５５に出力する。
【００５５】
再設定回路５５は、カウンタ５２からカウンタ値Ｗ＿ＣＮＴが入力されるとともに、アドレス保持回路５４から保持されたアドレス値が入力される。再設定回路５５は、ＤＭＡコントローラ４１から入力されるデータ転送終了信号ＤＥＯＰ＿ＤＯが“Ｈ”になると、カウンタ５２及びアドレス保持回路５４から供給されるアドレス値及びカウンタ値をアドレス値及び転送回数としてＤＭＡコントローラ４１に設定する。
【００５６】
バス出力信号制御回路５６は、ＤＭＡコントローラ４１とバスＡＨＢとの間で授受される各信号を制御する。バス出力信号制御回路５６は、入力されるデータリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”のとき、ＤＭＡコントローラ４１から入力される信号をそのままバスＡＨＢに出力し、バスＡＨＢから入力される信号をそのままＤＭＡコントローラ４１に出力する。すなわち、データリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”のとき、ＤＭＡコントローラ４１から入力される信号ＨＷＲＩＴＥ＿ＤＯ、ＨＡＤＤＲ＿ＤＯ、ＤＥＯＰ＿ＤＯが、信号ＨＷＲＩＴＥ、ＨＡＤＤＲ、ＤＥＯＰとしてバスＡＨＢに対して出力される。同様に、データリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”のとき、ＤＭＡコントローラ４１から入力される信号ＨＢＵＳＲＥＱ＿ＤＯ、ＨＴＲＡＮＳ＿ＤＯ、ＨＷＤＡＴＡ＿ＤＯが、信号ＨＢＵＳＲＥＱ、ＨＴＲＡＮＳ、ＨＷＤＡＴＡとしてバスＡＨＢに対して出力される。また、バスＡＨＢより入力される信号ＨＧＲＡＮＴが、信号ＨＧＲＡＮＴ＿ＤＩとしてＤＭＡコントローラ４１に入力される。
【００５７】
また、バス出力信号制御回路５６は、入力されるデータリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”から“Ｌ”に変化すると、ＤＭＡコントローラ４１が保持しているバスＡＨＢのバス権を放す（放棄する）処理を行う。バス出力信号制御回路５６は、バス権を放した（放棄した）後、ＤＭＡコントローラ４１からバスＡＨＢへのアクセスを切断する。例えば、バス出力信号制御回路５６は、データリクエスト信号ＤＲＥＱ＿ＤＩが“Ｈ”から“Ｌ”に変化すると、バス権を放す（放棄する）ためにバス権要求信号ＨＢＵＳＲＥＱを“Ｌ”にするとともに、転送タイプ信号ＨＴＲＡＮＳを第２の状態「Ｉ」にする。そして、バス権を放す（放棄する）と、バス出力信号制御回路５６は、出力するデータ転送終了信号ＤＥＯＰを“Ｈ”にし、バスＡＨＢを介したＤＭＡによるデータ転送を終了する。
【００５８】
図６は、第２の実施形態におけるＤＭＡによるデータ転送動作の一例を示すタイミングチャートである。図６においては、図４及び図５に示した信号名と同じ信号名を用いて各信号を示している。また、図６において、Ｄ＿ＣＮＴは、ＤＭＡコントローラ４１内のレジスタ等に格納されているＤＭＡによるバースト転送モードでの残りのデータ転送回数を示しており、Ｗ＿ＣＮＴはＤＭＡ転送補助回路４２のカウンタ５２におけるカウンタ値を示している。
【００５９】
図６においては、図３に示した第１の実施形態と同様の動作を例示している。すなわち、ＤＭＡコントローラ４１に予め設定されているバースト転送モードでのデータ転送回数が６回であり、バースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＥＱが“Ｌ”になった後に３回書き込みが行われる場合を一例として示している。図６に示す第２の実施形態におけるＤＭＡによるデータ転送動作と、図３に示した第１の実施形態での動作とは、第２の実施形態では次のデータがあるか否かを転送タイプ信号として出力する点が異なるが、基本的な動作は同様であるので詳細な説明は省略する。図６に示すタイミングチャートにおいて、時刻Ｔ６１、Ｔ６２、Ｔ６３、Ｔ６４は、図３に示した時刻Ｔ１１、Ｔ１３、Ｔ１５、Ｔ１６にそれぞれ対応する。
【００６０】
第２の実施形態によれば、第１の実施形態と同様に、ＤＭＡコントローラ４１によるバースト転送モードでのデータ転送中に、データリクエスト信号ＤＲＥＱが“Ｈ”から“Ｌ”になると、バスＡＨＢのバス権を放棄する処理が行われる。また、バースト転送モードでのデータ転送が終了すると、アドレス及び残りの転送回数がＤＭＡコントローラ４１に設定され、データリクエスト信号ＤＲＥＱに応じてＤＭＡによるデータ転送が実行される。したがって、バースト転送モードでのデータ転送中にデータリクエスト信号ＤＲＥＱが“Ｈ”から“Ｌ”になっても、“Ｌ”になったタイミングからのデータを再送することができ、バースト転送モードを利用したデータ転送を行うことが可能になる。また、データリクエスト信号ＤＲＥＱが“Ｈ”から“Ｌ”になったときにバスＡＨＢのバス権を速やかに放棄することで、バスＡＨＢが不要に占有されることを防止し、バスＡＨＢにおける転送効率の向上を図ることができる。
【００６１】
なお、前述した第１及び第２の実施形態では、ＤＭＡ転送におけるデータ書き込みに関して主に説明したが、データ読み出しについてもアドレスを保持するともに読み出し回数（転送回数）をカウントすれば良く、同様である。
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６２】
１１、４１  ＤＭＡコントローラ
１２、４２  ＤＭＡ転送補助回路
１３、４３  モジュール
１４、４４  メモリ（ＲＡＭ）
２１、５１  データリクエスト信号制御回路
２２、５２  カウンタ
２４、５４  アドレス保持回路
２５、５５  再設定回路
２６、５６  バス出力信号制御回路
ＢＵＳ、ＡＨＢ  バス
【図１】
0005648472.tif 000002
【図２】
0005648472.tif 000003
【図３】
0005648472.tif 000004
【図４】
0005648472.tif 000005
【図５】
0005648472.tif 000006
【図６】
0005648472.tif 000007
【図７】
0005648472.tif 000008