(57)【要約】【課題】標準のバス上で動作可能であり、大容量の記憶用ハードウエアを必要としないダイレクトメモリアクセスコントローラ（ＤＭＡＣ）を開示する。【解決手段】本ＤＭＡＣ４０は発信元バスを介してデータ発信元１０からデータを受信し、宛先バスを介してデータ宛先２０に受信したデータを出力するように動作可能な読み出し／書き込みポート４７を含み、所定の数のクロック・パルスに応答して読み出し／書き込みポートを制御し、前記所定の数のクロック・パルスを受信すると受信したデータをデータ宛先に対して出力する。この動作に使われる制御信号とデータは標準バス３２上のチャネル３３、３４、３５を介して転送される。【選択図】図５
2005235216.tif 000002
【特許請求の範囲】
【請求項１】
データ発信元とデータ宛先との間のデータ転送を制御するダイレクト・メモリ・アクセス・コントローラであって、
発信元バスを介して前記データ発信元からデータを受信するとともに、宛先バスを介して前記データ宛先に対して前記受信したデータを出力する読み出し／書き込みポートを含むダイレクト・メモリ・アクセス・コントローラにおいて、
前記ダイレクト・メモリ・アクセス・コントローラは、所定の数のクロック・パルスに応答して前記読み出し／書き込みポートを制御し、前記ダイレクト・メモリ・アクセス・コントローラが前記所定の数のクロック・パルスを受信すると、前記受信したデータを出力するダイレクト・メモリ・アクセス・コントローラ。
【請求項２】
請求項１に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記クロック・パルスの所定の数は１であり、前記メモリアクセス・コントローラは、前記受信したデータを出力する前の前記１クロック・サイクル中に前記受信したデータを格納するレジスタを含む前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項３】
請求項１に記載のダイレクト・メモリ・アクセス・コントローラであって、前記クロック・パルスの所定の数は１であり、相互に並列に配置され、それぞれが前記格納した項目を出力する前のクロック・サイクル中に、前記受信したデータの項目を交互に格納するように動作可能な２つのレジスタを含む前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項４】
請求項１に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記クロック・パルスの所定の数はゼロであり、前記受信したデータが前記ダイレクト・メモリ・アクセス・コントローラの中に格納されないように、前記入力ポートは前記出力ポートに接続されている前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項５】
請求項４に記載のダイレクト・メモリ・アクセス・コントローラであって、前記入力ポートと前記出力ポートとの間に組み合わせ論理を更に含む前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項６】
請求項１に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記クロック・パルスの所定の数は２であり、前記メモリアクセス・コントローラは、受信したデータを出力する前の前記２つのクロック・サイクル中に前記受信したデータを格納する入力レジスタと出力レジスタとを含む前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項７】
請求項１に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記発信元バスと前記宛先バスは１つのバスを含み、前記データ発信元から前記読み出しチャネルへのデータ転送は前記読み出し経路から受信され、前記データ宛先へのデータ転送は、前記読み出し経路と関係なく前記書き込み経路へ出力されるように、前記１つのバスは、別々の読み出し経路と書き込み経路を含み、前記読み出し／書き込みポートは、前記読み出し経路からデータを読み出すように動作可能な読み出しチャネルと、前記書き込み経路にデータを書き込むように動作可能な読み出しチャネルとを有する１つのポートを含む前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項８】
請求項１に記載のダイレクト・メモリ・アクセス・コントローラであって、前記読み出し／書き込みポートは、前記バス上の制御経路に制御信号を出力するように動作可能な制御チャネルを更に含むダイレクト・メモリ・アクセス・コントローラにおいて、
前記データ発信元からの少なくとも１つのデータ転送を指定する発信元制御信号であって、前記読み出し／書き込みポートの前記制御チャネルは、前記受信した信号を受信する前に、前記バス上の前記制御経路を介して前記データ発信元に前記発信元制御信号を出力するように動作可能である前記発信元制御信号と、
前記データ宛先に前記少なくとも１つのデータ転送を指定する宛先制御信号であって、前記読み出し／書き込みポートの前記制御チャネルは、前記受信したデータが前記読み出し／書き込みポートで受信されているか否かに関係なく、前記バス上の前記制御経路を介して前記データ宛先に宛先制御信号を出力するように動作可能である前記宛先制御信号と、
の少なくとも１つを発生するように動作可能な制御論理を更に含む前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項９】
請求項８に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記少なくとも１つのデータ転送は、複数の連続アドレスからの一連のデータ転送を含み、前記制御論理は、前記データ発信元からの前記一連のデータ転送の各読み出しと各書き込みをそれぞれ制御する１つの読み出し制御信号と書き込み制御信号とを発生するように動作可能である前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項１０】
請求項９に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記１つの発信元制御信号は、最初に中央のアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記転送は、前記最初のアドレスからデータを送った後に続いて前記連続アドレスの前記最終アドレスからデータを送ることを包含する前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項１１】
請求項１０に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記制御論理は、前記宛先に対する前記一連のデータ転送の書き込みを制御する１つの宛先制御信号を発生するように動作可能である前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項１２】
請求項１に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記データ発信元と前記データ宛先は、それぞれメモリか周辺装置のいずれか１つを含む前記ダイレクト・メモリ・アクセス・コントローラ。
【請求項１３】
データ発信元とデータ宛先の間のデータ転送を制御するダイレクト・メモリ・アクセス制御方法であって、
読み出し／書き込みポートにおいて発信元バスを介し、前記データ発信元からデータを受信するステップと、
所定の数のクロック・パルスを検出するステップと、
前記検出された所定の数のクロック・パルスに応答して前記読み出し／書き込みポートを制御し、前記ダイレクト・メモリ・アクセス・コントローラが前記所定の数のクロック・パルスを受信すると、宛先バスを介し前記データ宛先に対して前記受信したデータを出力するステップと、
を含むダイレクト・メモリ・アクセス制御方法。
【請求項１４】
請求項１３に記載のダイレクト・メモリ・アクセス制御方法であって、前記クロック・パルスの所定の数はゼロであり、前記受信したデータを出力する前の前記１クロック・サイクル中に、前記受信したデータをレジスタに格納する更なるステップを含む前記ダイレクト・メモリ・アクセス制御方法。
【請求項１５】
請求項１３に記載のダイレクト・メモリ・アクセス制御方法において、前記クロック・パルスの所定の数は１であり、前記受信したデータは、ｎ個のデータ項目を含む前記方法であって、
（ｉ）１クロック・サイクル中に並列に配置された２つのレジスタの一方に前記受信したデータの最初のデータ項目を格納するステップと、
（ii）前記前のクロック・サイクル中に格納された前記データ項目を前記２つのレジスタの一方から出力して、後続クロック・サイクル中に前記２つのレジスタの他方に更なるデータ項目を格納することをｎ−１回実行するステップと、
（iii）更なる後続クロック・サイクル中に格納されたデータの最終データ項目を出力するステップと、
を更に含む前記ダイレクト・メモリ・アクセス制御方法。
【請求項１６】
請求項１３に記載のダイレクト・メモリ・アクセス制御方法において、前記クロック・パルスの所定の数はゼロであり、前記読み出し／書き込みポートは、前記データを受信すると、前記データを格納せずに出力するように制御される前記ダイレクト・メモリ・アクセス制御方法。
【請求項１７】
請求項１３に記載のダイレクト・メモリ・アクセス制御方法であって、前記クロック・パルスの所定の数は２であり、１クロック・サイクル中に前記受信したデータを入力レジスタに格納するステップと、前記受信したデータを出力する前の後続クロック・サイクル中に前記受信したデータを出力レジスタに格納するステップとを含む前記ダイレクト・メモリ・アクセス制御方法。
【請求項１８】
請求項１３に記載のダイレクト・メモリ・アクセス制御方法において、前記発信元バスと前記宛先バスは１つのバスを含み、前記１つのバスは別々の読み出し経路と書き込み経路を含み、前記読み出し／書き込みポートは、前記読み出し経路からデータを読み出すように動作可能な読み出しチャネルと、前記書き込み経路にデータを書き込むように動作可能な読み出しチャネルとを含む方法であって、前記読み出し経路を介し、前記データ発信元からデータ転送を受信する前記読み出しチャネルを制御するとともに、前記読み出し経路と関係なく、前記書き込み経路を介し、前記データ宛先に対して前記受信したデータを出力する前記書き込みチャネルを制御する前記ダイレクト・メモリ・アクセス制御方法。
【請求項１９】
請求項１３に記載のダイレクト・メモリ・アクセス制御方法であって、
前記データ発信元からの少なくとも１つのデータ転送を指定するとともに、前記受信したデータを受信する前に前記バス上の制御経路を介して前記データ発信元に前記発信元制御信号を出力する、前記読み出し／書き込みポートの制御チャネルを制御する発信元制御信号と、
前記データ宛先に対する少なくとも１つのデータ転送を指定するとともに、前記受信したデータが前記読み出し／書き込みポートで受信されているか否かに関係なく、前記バス上の前記制御経路を介して前記データ宛先に対して宛先制御信号を出力する前記読み出し／書き込みポートの制御チャネルを制御する前記宛先制御信号と、
の少なくとも１つを発生する更なるステップを含む前記ダイレクト・メモリ・アクセス制御方法。
【請求項２０】
請求項１９に記載のダイレクト・メモリ・アクセス制御方法において、前記少なくとも１つのデータ転送は、複数の連続したアドレスからの一連のデータ転送を含む方法であって、前記データ発信元からの前記一連のデータ転送の送信を制御する１つの発信元制御信号を発生する前記ダイレクト・メモリ・アクセス制御方法。
【請求項２１】
請求項２０に記載のダイレクト・メモリ・アクセス制御方法において、前記１つの発信元制御信号は、最初に中央のアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記転送は、前記最初のアドレスからデータを送った後に続いて前記連続アドレスの前記最終アドレスからデータを送ることを包含する前記ダイレクト・メモリ・アクセス制御方法。
【請求項２２】
請求項２０に記載のダイレクト・メモリ・アクセス制御方法であって、前記データ宛先に対する前記一連のデータ転送の書き込みを制御する１つの宛先制御信号を発生する前記ダイレクト・メモリ・アクセス制御方法。
【請求項２３】
請求項１３に記載のダイレクト・メモリ・アクセス制御方法において、前記データ発信元と前記データ宛先は、それぞれメモリと周辺装置とのいずれか１つを含む前記ダイレクト・メモリ・アクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関する。より詳細には、この発明は、ダイレクト・メモリ・アクセス制御の分野に関する。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
２つの方法のどちらか１つでメモリに対する直接アクセスを制御することが周知されているが、その２つともＤＭＡＣ、つまりダイレクト・メモリ・アクセス・コントローラを使用する。図１は、「フライ・バイ（fly-by）」ダイレクト・メモリ・アクセス・コントローラを示しているが、この中でメモリは、発信元１０から宛先２０へ配線で接続されたデータ接続３０を通過する。ＤＭＡＣ４０によりチャネル３５を介して送られる制御信号は、接続３０を通るデータの転送を制御する。このシステムの欠点は、発信元と宛先の間に特殊な接続が必要であって、このためシステムの柔軟性が欠けていることである。
【０００３】
発信元１０から宛先２０へデータを転送する代替的方法が図２に示されている。ここでバス５０は発信元をＤＭＡＣ４０に接続し、バス６０は宛先をＤＭＡＣ４０に接続する。データ信号と制御信号はバスを通過する。このシステムは標準のバスを使用するので、フライ・バイ・システムよりも柔軟性が高い。しかし、ＤＭＡＣ４０は、ＤＭＡＣ４０から送られるデータを一時的に蓄える、つまりバッファリングするＦＩＦＯバッファ内のレジスタ４２を含む。したがって、制御信号が発信元から送られると、データ・バースト（a burst of data）は、ＤＭＡＣ４０内のレジスタ４２の中に送られて格納される。また制御信号がＤＭＡＣ４０から宛先に送られ、データ・バーストが受信されていると、このデータ・バーストは、レジスタ４２から宛先２０に転送される。このＤＭＡＣ内でデータ・バーストをバッファリングすることは、ハードウエア的にも時間的にも費用がかかる。その上、状態マシン内の制御論理は、発信元からＦＩＦＯ、ＦＩＦＯから宛先へのデータの転送順序を制御することが要求される。
【課題を解決するための手段】
【０００４】
１つの態様から見ると、本発明は、データ発信元からデータ宛先までのデータ転送を制御するダイレクト・メモリ・アクセス・コントローラを提供しており、このダイレクト・メモリ・アクセス・コントローラは、発信元バスを介し、前記データ発信元からデータを受信し、宛先バスを介して前記データ宛先へ前記受信したデータを出力するように動作可能な読み出し／書き込みポートを含み、前記ダイレクト・メモリ・アクセス・コントローラは、所定の数のクロック・パルスに応答して前記読み出し／書き込みポートを制御し、所定の数のクロック・パルスを受信すると前記受信したデータを出力するように動作可能である。
【０００５】
本発明は、フライ・バイＤＭＡＣシステムが柔軟性に欠けていること、ＦＩＦＯレジスタ・バッファを有するＤＭＡＣシステムのハードウエア的および時間的オーバーヘッドが高いことに関する上記問題点を認識するとともに、これらの課題に対処する。本発明は、データ発信元からデータを受信し、所定の数のクロック・サイクルの後、データ宛先に出力するシステムを提供することによってこの課題に対処する。したがって、データが受信されると、受信したデータの量またはタイプと関係なく、単に所定の数のクロック・サイクルに応答してそのデータが送り出される。これにより、特殊なリンクを必要とせず標準のバス上で動作可能であるだけでなく、コントローラ内に大容量の記憶用ハードウエアを必要としないシステムが与えられる。この理由は、格納されるデータの量が、所定の数のクロック・サイクルに依存し、データ自体に依存しないからである。したがって、格納されるデータの量は予測可能であり、また選択した所定の数のクロック・サイクルに依存して或る程度選択できるので、そのデータ量の格納に必要なハードウエアを与えることができる。
【実施例】
【０００６】
いくつかの実施例における前記所定の数のクロック・パルスは１であり、前記メモリアクセス・コントローラは、前記１クロック・サイクル中に受信した前記データを出力する前に前記データを格納する１つのレジスタを含む。
【０００７】
ＤＭＡＣ内の１つのレジスタと１つのサイクル遅延により、ＤＭＡＣ内に非常に限定されたスペースを与えて要求されるハードウエアを節約しながら、ＤＭＡＣが設計ルール／設計制約を満足するようになる。
【０００８】
望ましくは、前記クロック・パルスの所定の数は１であり、前記メモリアクセス・コントローラは、相互に並列に配置され前記格納した項目を出力する前のクロック・サイクル中に前記受信したデータの項目を交互に格納するように動作可能な２つのレジスタを含む。
【０００９】
並列に配置されたバッファ・レジスタを備えることによって、レジスタのそれぞれに交互にデータ項目を格納することができ、同一クロック・サイクル中にバッファから書き込みバッファに読み込む必要がなくなった。この場合、データの通過遅延は依然として１クロック・サイクルだけであるが、いくつかの実施例においては制御論理を追加する必要がある。
【００１０】
いくつかの実施例における前記クロック・パルスの所定の数はゼロであり、前記受信したデータがダイレクト・メモリ・アクセス・コントローラの中に格納されないように、前記入力ポートは出力ポートに接続されている。
【００１１】
この場合、データは直接送られるので、データを格納するためのハードウエアはまったく不要である。この方法の弱点は、システムに固有の遅延により、ある場合はこのシステムを正確に機能させることは困難でありうる。
【００１２】
望ましくは、前記ＤＭＡＣは前記入力ポートと前記出力ポート間に組み合わせ論理を更に含む。
【００１３】
入力ポートと出力ポート間の組み合わせ論理を使用してシステム内に固有の遅延を補償することができ、ＤＭＡＣ内に記憶用レジスタが無くてもシステムが正しく機能するようになる。
【００１４】
いくつかの実施例における前記クロック・パルスの所定の数は２であり、前記メモリアクセス・コントローラは、受信したデータを出力する前の前記２つのクロック・サイクル中に前記受信したデータを格納するための入力レジスタと出力レジスタを含む。
【００１５】
非常に実用的な更なる実施例は、ＤＭＡＣ内に入力レジスタと出力レジスタを有するとともに、データの通過遅延に２クロック・サイクルを有することである。これにより、記憶装置とサイクル設計の制約との間に良好な妥協が生じる。
【００１６】
好適実施例における前記発信元バスと前記宛先バスは１つのバスを含み、前記データ発信元から前記読み出しチャネルへのデータ転送は前記読み出し経路から受信され、前記データ宛先へのデータ転送は、前記読み出し経路と関係なく前記書き込み経路へ出力されるように、前記１つのバスは、別々の読み出し経路と書き込み経路を含み、前記読み出し／書き込みポートは、前記読み出し経路からデータを読み出すように動作可能な読み出しチャネルと、前記書き込み経路にデータを書き込むように動作可能な書き込みチャネルとを有する１つのポートを含む。
【００１７】
別々の読み出し経路と書き込み経路を有する１つのバスを使用することによって、相互と関係なく読み出され書き込まれる発信元と宛先における柔軟性が非常に高まる。このため、各種サイズのデータ・バーストが、ＤＭＡＣ内の時間を保持する数組のクロック・サイクルだけで発信元から宛先へ転送されるようになる。
【００１８】
望ましくは、前記読み出し／書き込みポートは、前記バス上の制御経路に制御信号を出力するように動作可能な制御チャネルを更に含み、前記ダイレクト・メモリ・アクセス・コントローラは、前記データ発信元からの少なくとも１つのデータ転送を指定する発信元制御信号であって、前記読み出し／書き込みポートの前記制御チャネルは、前記受信した信号を受信する前に、前記バス上の前記制御経路を介して前記データ発信元に前記発信元制御信号を出力するように動作可能である前記発信元制御信号と、前記データ宛先に前記少なくとも１つのデータ転送を指定する宛先制御信号であって、前記読み出し／書き込みポートの前記制御チャネルは、前記受信したデータが前記読み出し／書き込みポートで受信されているか否かに関係なく、前記バス上の前記制御経路を介して前記データ宛先に前記宛先制御信号を出力するように動作可能である前記宛先制御信号との少なくとも１つを発生するように動作可能な制御論理を更に含む。
【００１９】
別々の制御チャネルを用意することは、発信元のデータ・バーストと宛先のデータ・バーストが独立に送り出されることを可能にするとともに、ある場合には、データ転送の前に、制御信号に対する遅延が無くてもデータ転送が発生することを可能にする。ほとんどの実施例の場合、発信元制御信号と宛先制御信号の双方が存在する。しかし、発信元または宛先の１つだけが存在するいくつかの実施例においては、その発信元制御信号または宛先制御信号に対する必要性は無く、制御信号無しで間に合うであろう。
【００２０】
都合の良いことに、前記少なくとも１つのデータ転送は、複数の連続アドレスからの一連のデータ転送を含み、前記制御論理は、前記データ発信元からの前記一連のデータ転送の各読み出しと各書き込みをそれぞれ制御する１つの読み出し制御信号と書き込み制御信号とを発生するように動作可能である。
【００２１】
制御信号を送る能力と、別々のチャネル上で別々にデータを読み出し、かつデータを書き込むことは、いくつかの実施例ではデータ・バーストの読み出し、または書き込みをするごとに１つの制御信号を送ることができ、転送の能率と速度を改善することができることを意味する。他の実施例におけるデータはバーストで送られず、データは一連の１項目のデータのように透過性である。
【００２２】
前記１つの制御信号は、第１のアドレスで始まる連続した一連のアドレスからの一連のデータ転送を制御することができるが、いくつかの実施例における前記１つの発信元制御信号は、最初に最重要なアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記１つの発信元制御信号は、最初に中央のアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記転送は、前記最初のアドレスからデータを送った後に続いて前記連続アドレスの前記最終アドレスからデータを送ることを包含する。
【００２３】
この１つの発信元制御信号は、続く１アドレスごとのデータの送信を制御することに限定されるのではなく、１組のアドレスの中央から最初のアドレスまでのデータを送ることができる。この動作によって、データが転送される方法に柔軟性が与えられる。更なる柔軟性は、データ系列が静的な増分の無いアドレス、または増分が均一でないアドレスから始まる他の実施例の中で与えられる。
【００２４】
望ましくは、前記制御論理は、前記宛先に対する前記一連のデータ転送の書き込みを制御する１つの宛先制御信号を発生するように動作可能である。
【００２５】
個々の制御信号によって一連のデータ転送内のデータ項目を制御することができるが、一連のデータ転送の全体が１つの信号によって制御されるならば、更に効率的になりうる。
【００２６】
いくつかの実施例における前記データ発信元と前記データ宛先は、それぞれメモリか周辺装置のいずれか１つを含む。
【００２７】
メモリや周辺装置のような、データプロセッサ内の各種ユニットの間でデータを転送することができる。
【００２８】
本発明の第２の態様は、データ発信元とデータ宛先の間のデータ転送を制御するダイレクト・メモリ・アクセス制御方法を提供しており、この方法は、読み出し／書き込みポートにおいて発信元バスを介し、前記データ発信元からデータを受信するステップと、所定の数のクロック・パルスを検出するステップと、前記検出された所定の数のクロック・パルスに応答して前記読み出し／書き込みポートを制御し、前記ダイレクト・メモリ・アクセス・コントローラが前記所定の数のクロック・パルスを受信すると、宛先バスを介し前記データ宛先に対して前記受信したデータを出力するステップとを含む。
【００２９】
望ましくは、前記クロック・パルスの所定の数は１であり、前記受信したデータはｎ個のデータ項目を含み、前記方法は、（ｉ）１クロック・サイクル中に並列に配置された２つのレジスタの一方に前記受信したデータの最初のデータ項目を格納するステップと、（ii）前記前のクロック・サイクル中に格納された前記データ項目を前記２つのレジスタの一方から出力して、後続クロック・サイクル中に前記２つのレジスタの他方に更なるデータ項目を格納することをｎ−１回実行するステップと、（iii）更なる後続クロック・サイクル中に格納されたデータの最終データ項目を出力するステップとを含む。
【００３０】
バッファ・レジスタを並列に配置することにより、データ項目を各レジスタに交互に格納することができ、同一クロック・サイクル中にバッファから書き込むこととバッファに読み出すことが不要になる。データ・バースト内のデータ項目の数に依存して、バーストが１データ項目を含む場合のゼロを含め、ステップ（ii）が何回でも実行される。
【００３１】
本発明の第３の態様は、コンピュータプログラム製品を提供する。データプロセッサ上で走行した場合データプロセッサを制御して、本発明の第２の態様による方法の各種ステップを遂行する。
【００３２】
上記の目的、特徴およびこの発明の利点は、添付の図面とともに読まれるべき例示的実施例の詳細な説明から明らかになるであろう。
【００３３】
（好適実施例の説明）
図３は、２つともに同じバス３２に接続されている発信元１０と宛先２０を示している。このデータ・バスは、相互と関係なく動作できる３つの別々のチャネルを有する。これら３つのチャネルは、読み出しチャネル３３、制御チャネル３４および書き込みチャネル３５である。この実施例において、発明者は、ＤＭＡＣにデータを転送する、つまり、ＤＭＡＣ４０によってデータが読み出されるチャネルを表す読み出しチャネルと、ＤＭＡＣ４０からデータが転送される、つまり、ＤＭＡＣ４０によって書き込まれるチャネルを表す書き込みチャネルという用語を使用している。発信元と宛先はともに、レジスタ、メモリまたはキャッシュを含むことができる。データ記憶位置を含む。これらはメモリやある種の周辺装置上に配置される。
【００３４】
ＤＭＡＣ、ダイレクト・メモリ・アクセス・コントローラ４０は、データアクセス命令１２に応答してデータ発信元１０とデータ宛先２０の間のデータ転送を制御する。ＤＭＡＣ４０は３つのチャネル、つまり、読み出しチャネル４７ａ、制御チャネル４７ｂおよび書き込みチャネル４７ｃを有する１つの読み出し／書き込みポート４７を含む。更にＤＭＡＣ４０は、読み出しチャネルで受信されたデータを、書き込みチャネルを介して出力する前に格納するレジスタ４５を含む。
【００３５】
ＤＭＡＣ４０によってデータアクセス命令１２が受信されると、ＤＭＡＣ４０は、バス３２の制御チャネル３４を介して読み出し／書き込みポート４７の制御チャネル４７ｂから発信元に対して制御信号を発行する。この制御信号は、データアクセス命令によって指示されたデータ・バーストが発信元から出力されることを制御する。またＤＭＡＣ４０は、制御チャネル４７ｂからバス３２の制御チャネル３４に宛先制御信号を発行する。この信号は宛先２０に送られる。この制御信号は、ＤＭＡＣが何らかのデータを受信する前に送られる。
【００３６】
したがって、発信元による発信元制御信号の受信に続いて、発信元１０からのデータが読み出しチャネル３３を介してＤＭＡＣの読み出し／書き込みポート４７の読み出しチャネル４７ａに送られる。データの１項目がＤＭＡＣ４０で受信されると、そのデータは、レジスタ４５の中に格納された後、次のクロック・サイクルで読み出し／書き込みポート４７の書き込みチャネル４７ｃを介して出力され、書き込みチャネル３５を介して宛先２０に出力される。このクロック・サイクル中に、データ・バーストの次のデータ項目が読み出しチャネル４７ａで受信され、レジスタ４５の中に格納される。したがって、この実施例においては、１データ項目を格納する１つのレジスタがあり、ＤＭＡＣは、そのデータが、１クロック・サイクル中にその１つのレジスタの中に格納された後送り出されるようにデータ転送を制御する。データ・バス上に読み出し／書き込みチャネルを別々に備えているため、この動作を実行することができる。
【００３７】
１つの制御信号に応答して転送されるデータ・バーストは、１つのデータ項目を含むことができるが、複数のデータ項目を含むこともできる。これらのデータ項目は、制御信号によって指示されて同時に発生するアドレスに配置され、２つのアドレス間におかれたアドレスに入っているデータが送られることになっている。この信号は発信元を制御して、任意のアドレスで始まった後、同時に発生したアドレスを進んで行くデータ項目を送信することができ、送られる第１のデータ項目が中間アドレスの１つからであった場合、その系列の最終アドレスから最初のアドレスまでを包含する。他の実施例におけるデータ系列は、静的（非増分型）アドレスか、または代替的に増分が均一ではない（データ領域の「縞模様（striping）」）アドレスから始まることができる。
【００３８】
図４は、図３ａによるＤＭＡＣのデータ転送のタイミング図を示している。図から判るように、ＤＭＡＣ４０は、最初のクロック・サイクルで発信元バーストの制御系列（control sequence）（「Ｓｏｕｒｃｅ」）を発行した後、若干後の時点、この例では次のクロック・サイクルで、宛先の制御系列（「Ｄｅｓｔ」）を発行する。これらの制御系列は、ＤＭＡＣの読み出し／書き込みポート４７の制御チャネル４７ｂ上で送り出され、バス３２の制御チャネル３４に沿って運ばれる。バス３２の読み出しチャネル３３上にデータ項目（１、２、３、４）を配置することによって発信元１０が発信元制御系列に応答すると、これらのデータ項目は、ＤＭＡＣ４０の入出力ポートの読み出しチャネル４７ａで受信される。これらのデータ項目は、１クロック・サイクル中にレジスタ４５に格納され、次のクロック・サイクルで書き込みチャネル３５に出力される。したがって、データ項目１は、１クロック・サイクルで受信され、次のクロック・サイクルで出力され、データ項目２は、次のクロック・サイクルで受信され、そのクロック・サイクルの次のクロック・サイクルで出力される。
【００３９】
図５は、図３に示すＤＭＡＣと同様なＤＭＡＣを示しているが、この場合、並列に配置された２つの記憶用レジスタがある。したがって、第１のデータ項目はレジスタ４５Ａに格納され、次のデータ項目はレジスタ４５Ｂに格納され、以下同様な動作が実行される。このようにすることによって、レジスタからの読み出しとレジスタに対する書き込みを同一クロック・サイクルで試行する場合に発生しうるタイミングの潜在的問題が回避される。ＤＭＡＣは、データアクセス命令１２を受信すると起動され、「周辺装置からのＤＭＡ要求」を受信すると、制御チャネル３４に沿って制御信号を送り出し、データの読み出しと書き込みを制御する。
【００４０】
図６は、図５のＤＭＡＣとの間のデータ信号と制御信号の転送を示すタイミング図を示している。この図において、ＲＤＡＴＡは読み出しデータ・バスである。ＲＶＡＬＩＤは、読み出しデータの発信元によって有効なデータがＲＤＡＴＡに駆動されるクロック・サイクルを表す。ＲＲＥＡＤＹは、データ宛先（この場合はＤＭＡＣ）によってＲＤＡＴＡからデータを受け取ることができるクロック・サイクルを表す。ＷＤＡＴＡは、データ書き込みバスである。ＷＶＡＬＩＤは、データ書き込みの発信元（この場合はＤＭＡＣ）によって有効なデータがＷＤＡＴＡに駆動されるクロック・サイクルを表す。ＷＲＥＡＤＹは、データ宛先によってＷＤＡＴＡからデータを受け取ることができるクロック・サイクルを表す。図５は、フライ・スルーＤＭＡの例示であり、ＤＭＡＣ４０は読み出し制御情報と書き込み制御情報の双方を発行するので、書き込みトランザクションを始める前の読み出しチャネルから書き込みチャネルまでの単純な導管（conduit）として動作する。バス・チャネルが独立しているため、この方法は１つのマスタ・ポートによって達成されることに注意されたい。
【００４１】
直通経路の組み合わせが許されない（つまり、ＷＲＥＡＤＹを直接ＲＲＥＡＤＹに接続できない）と仮定すると、前のデータが出て行ってしまい（clocked out）新しい着信データだけをレジスタに格納することによって帯域幅が犠牲にされることが無い限り、２つのレジスタバッファが必要とされる（この方法は、待ち合わせ時間ゼロのメモリからメモリへの転送ではデータごとに２サイクルかかることに注意されたい）。
【００４２】
メモリからメモリへの転送の場合、転送を始める前に周辺装置からのＤＭＡ要求をＤＭＡＣ４０が待ち合わせる必要は無い。したがって、ＤＭＡＣ４０がプログラム済みでありそのＤＭＡＣに「開始（ｓｔａｒｔ）」コマンドが発行されているとＤＭＡＣは、バスの使用を直ちに要求する。その要求が許可されると、最初のＤＭＡ読み出しバーストと最初のＤＭＡ書き込みバーストのアドレストランザクションは終了する。データ読み出しトランザクションが受信されると、それらのトランザクションは、１クロック・サイクル中の記憶機能を含む無非常に小さい内部バッファリングを通過して、データ書き込みトランザクションとして送信される。
【００４３】
メモリからメモリへの転送の場合、周辺装置からＤＭＡ要求が受信されるまで、ＤＭＡ書き込みアクセスは開始しない。
【００４４】
周辺装置からメモリへの転送の場合、チャネルは、バスを要求する前に第１に周辺装置からのＤＭＡ要求を待ち合わせる。その要求が許可されると、最初のＤＭＡ読み出しバーストと最初のＤＭＡ書き込みバーストのアドレストランザクションは終了する。
【００４５】
図７は、代替可能な実施例を示しており、この中には直列に配置された２つのレジスタ４５、４６があり、出力される前の２クロック・サイクル中にデータが格納される。データを格納するためには、任意の数のクロック・サイクルに対応して任意の数のレジスタがあっても良いことは明らかである。重要なことは、必要なレジスタの数はデータ・バーストのサイズに無関係なことである。換言すると、Ｎをデータが格納されるクロック・サイクルの数として、任意のペイロードに対してＮの深さのレジスタバンクが要求される。
【００４６】
図８は、バッファ・レジスタが無いＤＭＡＣ４０を示している。この実施例におけるデータ読み出しチャネルとデータ書き込みチャネルは、完全に組み合わせ論理４８によって接続される。したがって、データは、最小の遅延でＤＭＡＣを通過する。この方法は、低周波の動作に有用である。
【００４７】
図９は、２つの異なるバス３４とバス３６を使用する（servicing）ＤＭＡＣの例を示している。この場合、別々に発信元と宛先が配置されている読み出しチャネルと書き込みチャネルのある１つのバスがあるのではなく、発信元と宛先が異なるバスに配置されている。この方法が機能するためには、ＤＭＡＣ４０は、読み出しポート４１と書き込みポート４３の２つのポートを必要とする。レジスタ４５は、１クロック・サイクル中に発信元１０から入力されるデータを格納し、次のクロック・サイクルでそのデータを宛先２０に出力する。ＤＭＡＣ内に更なるレジスタを含み、必要に応じてもっと多くのクロック・サイクル中にデータを格納することが可能であることは明らかであろう。
【００４８】
したがって、フライ・スルーＤＭＡは、ＤＭＡ読み出しデータ転送とＤＭＡ書き込みデータ転送との間で少量のバッファリングを実行して、読み出しデータ転送と書き込みデータ転送を効果的に連続させることを意味している。したがって、読み出しバーストと書き込みバーストは同時に進行し、一方でバス待ち合わせ状態が起こると、他方でも待ち合わせ状態となる。
【００４９】
データ発信元とデータ宛先との間のデータ転送を制御するダイレクト・メモリ・アクセス・コントローラが開示されており、このコントローラは、バスの読み出し経路を介して前記データ発信元からデータを受信するように動作可能な読み出しチャネルと、バスの書き込み経路を介して前記データ宛先に前記受信したデータを出力するように動作可能な書き込みチャネルとを含む１つの読み出し／書き込みポートを含み、前記読み出しチャネルと書き込みチャネルは、相互と関係なくデータ読み出しとデータ書き込みを遂行する。
【００５０】
メモリアクセスから１つのバス上の独立なチャネルまでのデータを入力し出力するための１つのポートを有するダイレクト・メモリ・アクセス・コントローラを用意することは、異なるバス上に配置される発信元と宛先に対するデータの転送を制限しないという点でバスの待ち合わせ時間を短縮するが、同一データ・バス上に配置された発信元と宛先との間のデータ転送を可能にする。更にこの設計は、従来のＤＭＡ設計より少ないレジスタを必要とするので、動作に要求される電力は従来のＤＭＡよりも少ない。
【００５１】
データ発信元とデータ宛先との間のデータ転送を制御するダイレクト・メモリ・アクセス制御方法が開示されており、この方法は、１つの読み出し／書き込みポートの読み出しチャネルで、バス上の読み出し経路を介して前記データ発信元からデータを受信するステップと、前記１つの読み出し／書き込みポートの書き込みチャネルから前記データ宛先に対して前記バスの書き込み経路を介して前記受信したデータを出力するステップとを含み、前記読み出しチャネルと書き込みチャネルは、相互と関係なくデータ読み出しとデータ書き込みを遂行する。
【００５２】
本発明の特定の実施例を説明してきたが、本発明はそれに限定されるものではなく、本発明の範囲の中で多数の改造や追加を実行できることは明らかであろう。例えば、本発明の範囲を逸脱することなく、独立請求項の特徴と従属請求項の特徴との各種組み合わせをつくることができるであろう。
【図面の簡単な説明】
【００５３】
【図１】従来の技術によるフライ・バイ・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。
【図２】従来の技術によるダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。
【図３】本発明の実施例に従って、１つのレジスタを有する「フライ・スルー（fly -through）ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。
【図４】図３の実施例に従って、フライ・スルー・ダイレクト・メモリ・アクセス・コントローラを通過するデータの遅延を示すタイミング図を示す図である。
【図５】本発明の実施例に従って、並列に配置された２つのレジスタを有するフライ・スルー・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。
【図６】図５の実施例に従って、フライ・スルー・ダイレクト・メモリ・アクセス・コントローラを通過するデータの遅延を示すタイミング図を示す図である。
【図７】本発明の実施例に従って、直列に配置された２つのレジスタを有するフライ・スルー・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。
【図８】本発明の実施例に従って、レジスタを有しないフライ・スルー・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。
【図９】本発明の実施例に従って、発信元と宛先が異なるバス上にあるダイレクト・メモリ・アクセス・コントローラの更なる実施例を示す図である。
【符号の説明】
【００５４】
１０  発信元
１２  データアクセス命令
２０  宛先
３２  バス
３３  読み出しチャネル
３４  制御チャネル
３５  書き込みチャネル
４０  ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）
４１  読み出しポート
４３  書き込みポート
４５、４５Ａ、４５Ｂ、４６  レジスタ
４７  読み出し／書き込みポート
４７ａ  読み出しチャネル
４７ｂ  制御チャネル
４７ｃ  書き込みチャネル
４８  組み合わせ論理
【図１】
2005235216.tif 000003
【図２】
2005235216.tif 000004
【図３】
2005235216.tif 000005
【図４】
2005235216.tif 000006
【図５】
2005235216.tif 000007
【図６】
2005235216.tif 000008
【図７】
2005235216.tif 000009
【図８】
2005235216.tif 000010
【図９】
2005235216.tif 000011
【外国語明細書】
2005235216000001.pdf