JP2005235216A - ダイレクト・メモリ・アクセス制御 - Google Patents

ダイレクト・メモリ・アクセス制御 Download PDF

Info

Publication number
JP2005235216A
JP2005235216A JP2005040085A JP2005040085A JP2005235216A JP 2005235216 A JP2005235216 A JP 2005235216A JP 2005040085 A JP2005040085 A JP 2005040085A JP 2005040085 A JP2005040085 A JP 2005040085A JP 2005235216 A JP2005235216 A JP 2005235216A
Authority
JP
Japan
Prior art keywords
data
memory access
direct memory
read
destination
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.)
Abandoned
Application number
JP2005040085A
Other languages
English (en)
Inventor
Christopher E Wrigley
エドウィン リグレー クリストファー
Patrick G Mcglew
ジェラルド マックグレウ パトリック
Andrew Burdass
バーダス アンドリュー
Bruce James Mathewson
ジェームズ マシューソン ブルース
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2005235216A publication Critical patent/JP2005235216A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

【課題】標準のバス上で動作可能であり、大容量の記憶用ハードウエアを必要としないダイレクトメモリアクセスコントローラ(DMAC)を開示する。
【解決手段】本DMAC40は発信元バスを介してデータ発信元10からデータを受信し、宛先バスを介してデータ宛先20に受信したデータを出力するように動作可能な読み出し/書き込みポート47を含み、所定の数のクロック・パルスに応答して読み出し/書き込みポートを制御し、前記所定の数のクロック・パルスを受信すると受信したデータをデータ宛先に対して出力する。この動作に使われる制御信号とデータは標準バス32上のチャネル33、34、35を介して転送される。
【選択図】図5

Description

本発明は、データ処理システムに関する。より詳細には、この発明は、ダイレクト・メモリ・アクセス制御の分野に関する。
2つの方法のどちらか1つでメモリに対する直接アクセスを制御することが周知されているが、その2つともDMAC、つまりダイレクト・メモリ・アクセス・コントローラを使用する。図1は、「フライ・バイ(fly-by)」ダイレクト・メモリ・アクセス・コントローラを示しているが、この中でメモリは、発信元10から宛先20へ配線で接続されたデータ接続30を通過する。DMAC40によりチャネル35を介して送られる制御信号は、接続30を通るデータの転送を制御する。このシステムの欠点は、発信元と宛先の間に特殊な接続が必要であって、このためシステムの柔軟性が欠けていることである。
発信元10から宛先20へデータを転送する代替的方法が図2に示されている。ここでバス50は発信元をDMAC40に接続し、バス60は宛先をDMAC40に接続する。データ信号と制御信号はバスを通過する。このシステムは標準のバスを使用するので、フライ・バイ・システムよりも柔軟性が高い。しかし、DMAC40は、DMAC40から送られるデータを一時的に蓄える、つまりバッファリングするFIFOバッファ内のレジスタ42を含む。したがって、制御信号が発信元から送られると、データ・バースト(a burst of data)は、DMAC40内のレジスタ42の中に送られて格納される。また制御信号がDMAC40から宛先に送られ、データ・バーストが受信されていると、このデータ・バーストは、レジスタ42から宛先20に転送される。このDMAC内でデータ・バーストをバッファリングすることは、ハードウエア的にも時間的にも費用がかかる。その上、状態マシン内の制御論理は、発信元からFIFO、FIFOから宛先へのデータの転送順序を制御することが要求される。
1つの態様から見ると、本発明は、データ発信元からデータ宛先までのデータ転送を制御するダイレクト・メモリ・アクセス・コントローラを提供しており、このダイレクト・メモリ・アクセス・コントローラは、発信元バスを介し、前記データ発信元からデータを受信し、宛先バスを介して前記データ宛先へ前記受信したデータを出力するように動作可能な読み出し/書き込みポートを含み、前記ダイレクト・メモリ・アクセス・コントローラは、所定の数のクロック・パルスに応答して前記読み出し/書き込みポートを制御し、所定の数のクロック・パルスを受信すると前記受信したデータを出力するように動作可能である。
本発明は、フライ・バイDMACシステムが柔軟性に欠けていること、FIFOレジスタ・バッファを有するDMACシステムのハードウエア的および時間的オーバーヘッドが高いことに関する上記問題点を認識するとともに、これらの課題に対処する。本発明は、データ発信元からデータを受信し、所定の数のクロック・サイクルの後、データ宛先に出力するシステムを提供することによってこの課題に対処する。したがって、データが受信されると、受信したデータの量またはタイプと関係なく、単に所定の数のクロック・サイクルに応答してそのデータが送り出される。これにより、特殊なリンクを必要とせず標準のバス上で動作可能であるだけでなく、コントローラ内に大容量の記憶用ハードウエアを必要としないシステムが与えられる。この理由は、格納されるデータの量が、所定の数のクロック・サイクルに依存し、データ自体に依存しないからである。したがって、格納されるデータの量は予測可能であり、また選択した所定の数のクロック・サイクルに依存して或る程度選択できるので、そのデータ量の格納に必要なハードウエアを与えることができる。
いくつかの実施例における前記所定の数のクロック・パルスは1であり、前記メモリアクセス・コントローラは、前記1クロック・サイクル中に受信した前記データを出力する前に前記データを格納する1つのレジスタを含む。
DMAC内の1つのレジスタと1つのサイクル遅延により、DMAC内に非常に限定されたスペースを与えて要求されるハードウエアを節約しながら、DMACが設計ルール/設計制約を満足するようになる。
望ましくは、前記クロック・パルスの所定の数は1であり、前記メモリアクセス・コントローラは、相互に並列に配置され前記格納した項目を出力する前のクロック・サイクル中に前記受信したデータの項目を交互に格納するように動作可能な2つのレジスタを含む。
並列に配置されたバッファ・レジスタを備えることによって、レジスタのそれぞれに交互にデータ項目を格納することができ、同一クロック・サイクル中にバッファから書き込みバッファに読み込む必要がなくなった。この場合、データの通過遅延は依然として1クロック・サイクルだけであるが、いくつかの実施例においては制御論理を追加する必要がある。
いくつかの実施例における前記クロック・パルスの所定の数はゼロであり、前記受信したデータがダイレクト・メモリ・アクセス・コントローラの中に格納されないように、前記入力ポートは出力ポートに接続されている。
この場合、データは直接送られるので、データを格納するためのハードウエアはまったく不要である。この方法の弱点は、システムに固有の遅延により、ある場合はこのシステムを正確に機能させることは困難でありうる。
望ましくは、前記DMACは前記入力ポートと前記出力ポート間に組み合わせ論理を更に含む。
入力ポートと出力ポート間の組み合わせ論理を使用してシステム内に固有の遅延を補償することができ、DMAC内に記憶用レジスタが無くてもシステムが正しく機能するようになる。
いくつかの実施例における前記クロック・パルスの所定の数は2であり、前記メモリアクセス・コントローラは、受信したデータを出力する前の前記2つのクロック・サイクル中に前記受信したデータを格納するための入力レジスタと出力レジスタを含む。
非常に実用的な更なる実施例は、DMAC内に入力レジスタと出力レジスタを有するとともに、データの通過遅延に2クロック・サイクルを有することである。これにより、記憶装置とサイクル設計の制約との間に良好な妥協が生じる。
好適実施例における前記発信元バスと前記宛先バスは1つのバスを含み、前記データ発信元から前記読み出しチャネルへのデータ転送は前記読み出し経路から受信され、前記データ宛先へのデータ転送は、前記読み出し経路と関係なく前記書き込み経路へ出力されるように、前記1つのバスは、別々の読み出し経路と書き込み経路を含み、前記読み出し/書き込みポートは、前記読み出し経路からデータを読み出すように動作可能な読み出しチャネルと、前記書き込み経路にデータを書き込むように動作可能な書き込みチャネルとを有する1つのポートを含む。
別々の読み出し経路と書き込み経路を有する1つのバスを使用することによって、相互と関係なく読み出され書き込まれる発信元と宛先における柔軟性が非常に高まる。このため、各種サイズのデータ・バーストが、DMAC内の時間を保持する数組のクロック・サイクルだけで発信元から宛先へ転送されるようになる。
望ましくは、前記読み出し/書き込みポートは、前記バス上の制御経路に制御信号を出力するように動作可能な制御チャネルを更に含み、前記ダイレクト・メモリ・アクセス・コントローラは、前記データ発信元からの少なくとも1つのデータ転送を指定する発信元制御信号であって、前記読み出し/書き込みポートの前記制御チャネルは、前記受信した信号を受信する前に、前記バス上の前記制御経路を介して前記データ発信元に前記発信元制御信号を出力するように動作可能である前記発信元制御信号と、前記データ宛先に前記少なくとも1つのデータ転送を指定する宛先制御信号であって、前記読み出し/書き込みポートの前記制御チャネルは、前記受信したデータが前記読み出し/書き込みポートで受信されているか否かに関係なく、前記バス上の前記制御経路を介して前記データ宛先に前記宛先制御信号を出力するように動作可能である前記宛先制御信号との少なくとも1つを発生するように動作可能な制御論理を更に含む。
別々の制御チャネルを用意することは、発信元のデータ・バーストと宛先のデータ・バーストが独立に送り出されることを可能にするとともに、ある場合には、データ転送の前に、制御信号に対する遅延が無くてもデータ転送が発生することを可能にする。ほとんどの実施例の場合、発信元制御信号と宛先制御信号の双方が存在する。しかし、発信元または宛先の1つだけが存在するいくつかの実施例においては、その発信元制御信号または宛先制御信号に対する必要性は無く、制御信号無しで間に合うであろう。
都合の良いことに、前記少なくとも1つのデータ転送は、複数の連続アドレスからの一連のデータ転送を含み、前記制御論理は、前記データ発信元からの前記一連のデータ転送の各読み出しと各書き込みをそれぞれ制御する1つの読み出し制御信号と書き込み制御信号とを発生するように動作可能である。
制御信号を送る能力と、別々のチャネル上で別々にデータを読み出し、かつデータを書き込むことは、いくつかの実施例ではデータ・バーストの読み出し、または書き込みをするごとに1つの制御信号を送ることができ、転送の能率と速度を改善することができることを意味する。他の実施例におけるデータはバーストで送られず、データは一連の1項目のデータのように透過性である。
前記1つの制御信号は、第1のアドレスで始まる連続した一連のアドレスからの一連のデータ転送を制御することができるが、いくつかの実施例における前記1つの発信元制御信号は、最初に最重要なアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記1つの発信元制御信号は、最初に中央のアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記転送は、前記最初のアドレスからデータを送った後に続いて前記連続アドレスの前記最終アドレスからデータを送ることを包含する。
この1つの発信元制御信号は、続く1アドレスごとのデータの送信を制御することに限定されるのではなく、1組のアドレスの中央から最初のアドレスまでのデータを送ることができる。この動作によって、データが転送される方法に柔軟性が与えられる。更なる柔軟性は、データ系列が静的な増分の無いアドレス、または増分が均一でないアドレスから始まる他の実施例の中で与えられる。
望ましくは、前記制御論理は、前記宛先に対する前記一連のデータ転送の書き込みを制御する1つの宛先制御信号を発生するように動作可能である。
個々の制御信号によって一連のデータ転送内のデータ項目を制御することができるが、一連のデータ転送の全体が1つの信号によって制御されるならば、更に効率的になりうる。
いくつかの実施例における前記データ発信元と前記データ宛先は、それぞれメモリか周辺装置のいずれか1つを含む。
メモリや周辺装置のような、データプロセッサ内の各種ユニットの間でデータを転送することができる。
本発明の第2の態様は、データ発信元とデータ宛先の間のデータ転送を制御するダイレクト・メモリ・アクセス制御方法を提供しており、この方法は、読み出し/書き込みポートにおいて発信元バスを介し、前記データ発信元からデータを受信するステップと、所定の数のクロック・パルスを検出するステップと、前記検出された所定の数のクロック・パルスに応答して前記読み出し/書き込みポートを制御し、前記ダイレクト・メモリ・アクセス・コントローラが前記所定の数のクロック・パルスを受信すると、宛先バスを介し前記データ宛先に対して前記受信したデータを出力するステップとを含む。
望ましくは、前記クロック・パルスの所定の数は1であり、前記受信したデータはn個のデータ項目を含み、前記方法は、(i)1クロック・サイクル中に並列に配置された2つのレジスタの一方に前記受信したデータの最初のデータ項目を格納するステップと、(ii)前記前のクロック・サイクル中に格納された前記データ項目を前記2つのレジスタの一方から出力して、後続クロック・サイクル中に前記2つのレジスタの他方に更なるデータ項目を格納することをn−1回実行するステップと、(iii)更なる後続クロック・サイクル中に格納されたデータの最終データ項目を出力するステップとを含む。
バッファ・レジスタを並列に配置することにより、データ項目を各レジスタに交互に格納することができ、同一クロック・サイクル中にバッファから書き込むこととバッファに読み出すことが不要になる。データ・バースト内のデータ項目の数に依存して、バーストが1データ項目を含む場合のゼロを含め、ステップ(ii)が何回でも実行される。
本発明の第3の態様は、コンピュータプログラム製品を提供する。データプロセッサ上で走行した場合データプロセッサを制御して、本発明の第2の態様による方法の各種ステップを遂行する。
上記の目的、特徴およびこの発明の利点は、添付の図面とともに読まれるべき例示的実施例の詳細な説明から明らかになるであろう。
(好適実施例の説明)
図3は、2つともに同じバス32に接続されている発信元10と宛先20を示している。このデータ・バスは、相互と関係なく動作できる3つの別々のチャネルを有する。これら3つのチャネルは、読み出しチャネル33、制御チャネル34および書き込みチャネル35である。この実施例において、発明者は、DMACにデータを転送する、つまり、DMAC40によってデータが読み出されるチャネルを表す読み出しチャネルと、DMAC40からデータが転送される、つまり、DMAC40によって書き込まれるチャネルを表す書き込みチャネルという用語を使用している。発信元と宛先はともに、レジスタ、メモリまたはキャッシュを含むことができる。データ記憶位置を含む。これらはメモリやある種の周辺装置上に配置される。
DMAC、ダイレクト・メモリ・アクセス・コントローラ40は、データアクセス命令12に応答してデータ発信元10とデータ宛先20の間のデータ転送を制御する。DMAC40は3つのチャネル、つまり、読み出しチャネル47a、制御チャネル47bおよび書き込みチャネル47cを有する1つの読み出し/書き込みポート47を含む。更にDMAC40は、読み出しチャネルで受信されたデータを、書き込みチャネルを介して出力する前に格納するレジスタ45を含む。
DMAC40によってデータアクセス命令12が受信されると、DMAC40は、バス32の制御チャネル34を介して読み出し/書き込みポート47の制御チャネル47bから発信元に対して制御信号を発行する。この制御信号は、データアクセス命令によって指示されたデータ・バーストが発信元から出力されることを制御する。またDMAC40は、制御チャネル47bからバス32の制御チャネル34に宛先制御信号を発行する。この信号は宛先20に送られる。この制御信号は、DMACが何らかのデータを受信する前に送られる。
したがって、発信元による発信元制御信号の受信に続いて、発信元10からのデータが読み出しチャネル33を介してDMACの読み出し/書き込みポート47の読み出しチャネル47aに送られる。データの1項目がDMAC40で受信されると、そのデータは、レジスタ45の中に格納された後、次のクロック・サイクルで読み出し/書き込みポート47の書き込みチャネル47cを介して出力され、書き込みチャネル35を介して宛先20に出力される。このクロック・サイクル中に、データ・バーストの次のデータ項目が読み出しチャネル47aで受信され、レジスタ45の中に格納される。したがって、この実施例においては、1データ項目を格納する1つのレジスタがあり、DMACは、そのデータが、1クロック・サイクル中にその1つのレジスタの中に格納された後送り出されるようにデータ転送を制御する。データ・バス上に読み出し/書き込みチャネルを別々に備えているため、この動作を実行することができる。
1つの制御信号に応答して転送されるデータ・バーストは、1つのデータ項目を含むことができるが、複数のデータ項目を含むこともできる。これらのデータ項目は、制御信号によって指示されて同時に発生するアドレスに配置され、2つのアドレス間におかれたアドレスに入っているデータが送られることになっている。この信号は発信元を制御して、任意のアドレスで始まった後、同時に発生したアドレスを進んで行くデータ項目を送信することができ、送られる第1のデータ項目が中間アドレスの1つからであった場合、その系列の最終アドレスから最初のアドレスまでを包含する。他の実施例におけるデータ系列は、静的(非増分型)アドレスか、または代替的に増分が均一ではない(データ領域の「縞模様(striping)」)アドレスから始まることができる。
図4は、図3aによるDMACのデータ転送のタイミング図を示している。図から判るように、DMAC40は、最初のクロック・サイクルで発信元バーストの制御系列(control sequence)(「Source」)を発行した後、若干後の時点、この例では次のクロック・サイクルで、宛先の制御系列(「Dest」)を発行する。これらの制御系列は、DMACの読み出し/書き込みポート47の制御チャネル47b上で送り出され、バス32の制御チャネル34に沿って運ばれる。バス32の読み出しチャネル33上にデータ項目(1、2、3、4)を配置することによって発信元10が発信元制御系列に応答すると、これらのデータ項目は、DMAC40の入出力ポートの読み出しチャネル47aで受信される。これらのデータ項目は、1クロック・サイクル中にレジスタ45に格納され、次のクロック・サイクルで書き込みチャネル35に出力される。したがって、データ項目1は、1クロック・サイクルで受信され、次のクロック・サイクルで出力され、データ項目2は、次のクロック・サイクルで受信され、そのクロック・サイクルの次のクロック・サイクルで出力される。
図5は、図3に示すDMACと同様なDMACを示しているが、この場合、並列に配置された2つの記憶用レジスタがある。したがって、第1のデータ項目はレジスタ45Aに格納され、次のデータ項目はレジスタ45Bに格納され、以下同様な動作が実行される。このようにすることによって、レジスタからの読み出しとレジスタに対する書き込みを同一クロック・サイクルで試行する場合に発生しうるタイミングの潜在的問題が回避される。DMACは、データアクセス命令12を受信すると起動され、「周辺装置からのDMA要求」を受信すると、制御チャネル34に沿って制御信号を送り出し、データの読み出しと書き込みを制御する。
図6は、図5のDMACとの間のデータ信号と制御信号の転送を示すタイミング図を示している。この図において、RDATAは読み出しデータ・バスである。RVALIDは、読み出しデータの発信元によって有効なデータがRDATAに駆動されるクロック・サイクルを表す。RREADYは、データ宛先(この場合はDMAC)によってRDATAからデータを受け取ることができるクロック・サイクルを表す。WDATAは、データ書き込みバスである。WVALIDは、データ書き込みの発信元(この場合はDMAC)によって有効なデータがWDATAに駆動されるクロック・サイクルを表す。WREADYは、データ宛先によってWDATAからデータを受け取ることができるクロック・サイクルを表す。図5は、フライ・スルーDMAの例示であり、DMAC40は読み出し制御情報と書き込み制御情報の双方を発行するので、書き込みトランザクションを始める前の読み出しチャネルから書き込みチャネルまでの単純な導管(conduit)として動作する。バス・チャネルが独立しているため、この方法は1つのマスタ・ポートによって達成されることに注意されたい。
直通経路の組み合わせが許されない(つまり、WREADYを直接RREADYに接続できない)と仮定すると、前のデータが出て行ってしまい(clocked out)新しい着信データだけをレジスタに格納することによって帯域幅が犠牲にされることが無い限り、2つのレジスタバッファが必要とされる(この方法は、待ち合わせ時間ゼロのメモリからメモリへの転送ではデータごとに2サイクルかかることに注意されたい)。
メモリからメモリへの転送の場合、転送を始める前に周辺装置からのDMA要求をDMAC40が待ち合わせる必要は無い。したがって、DMAC40がプログラム済みでありそのDMACに「開始(start)」コマンドが発行されているとDMACは、バスの使用を直ちに要求する。その要求が許可されると、最初のDMA読み出しバーストと最初のDMA書き込みバーストのアドレストランザクションは終了する。データ読み出しトランザクションが受信されると、それらのトランザクションは、1クロック・サイクル中の記憶機能を含む無非常に小さい内部バッファリングを通過して、データ書き込みトランザクションとして送信される。
メモリからメモリへの転送の場合、周辺装置からDMA要求が受信されるまで、DMA書き込みアクセスは開始しない。
周辺装置からメモリへの転送の場合、チャネルは、バスを要求する前に第1に周辺装置からのDMA要求を待ち合わせる。その要求が許可されると、最初のDMA読み出しバーストと最初のDMA書き込みバーストのアドレストランザクションは終了する。
図7は、代替可能な実施例を示しており、この中には直列に配置された2つのレジスタ45、46があり、出力される前の2クロック・サイクル中にデータが格納される。データを格納するためには、任意の数のクロック・サイクルに対応して任意の数のレジスタがあっても良いことは明らかである。重要なことは、必要なレジスタの数はデータ・バーストのサイズに無関係なことである。換言すると、Nをデータが格納されるクロック・サイクルの数として、任意のペイロードに対してNの深さのレジスタバンクが要求される。
図8は、バッファ・レジスタが無いDMAC40を示している。この実施例におけるデータ読み出しチャネルとデータ書き込みチャネルは、完全に組み合わせ論理48によって接続される。したがって、データは、最小の遅延でDMACを通過する。この方法は、低周波の動作に有用である。
図9は、2つの異なるバス34とバス36を使用する(servicing)DMACの例を示している。この場合、別々に発信元と宛先が配置されている読み出しチャネルと書き込みチャネルのある1つのバスがあるのではなく、発信元と宛先が異なるバスに配置されている。この方法が機能するためには、DMAC40は、読み出しポート41と書き込みポート43の2つのポートを必要とする。レジスタ45は、1クロック・サイクル中に発信元10から入力されるデータを格納し、次のクロック・サイクルでそのデータを宛先20に出力する。DMAC内に更なるレジスタを含み、必要に応じてもっと多くのクロック・サイクル中にデータを格納することが可能であることは明らかであろう。
したがって、フライ・スルーDMAは、DMA読み出しデータ転送とDMA書き込みデータ転送との間で少量のバッファリングを実行して、読み出しデータ転送と書き込みデータ転送を効果的に連続させることを意味している。したがって、読み出しバーストと書き込みバーストは同時に進行し、一方でバス待ち合わせ状態が起こると、他方でも待ち合わせ状態となる。
データ発信元とデータ宛先との間のデータ転送を制御するダイレクト・メモリ・アクセス・コントローラが開示されており、このコントローラは、バスの読み出し経路を介して前記データ発信元からデータを受信するように動作可能な読み出しチャネルと、バスの書き込み経路を介して前記データ宛先に前記受信したデータを出力するように動作可能な書き込みチャネルとを含む1つの読み出し/書き込みポートを含み、前記読み出しチャネルと書き込みチャネルは、相互と関係なくデータ読み出しとデータ書き込みを遂行する。
メモリアクセスから1つのバス上の独立なチャネルまでのデータを入力し出力するための1つのポートを有するダイレクト・メモリ・アクセス・コントローラを用意することは、異なるバス上に配置される発信元と宛先に対するデータの転送を制限しないという点でバスの待ち合わせ時間を短縮するが、同一データ・バス上に配置された発信元と宛先との間のデータ転送を可能にする。更にこの設計は、従来のDMA設計より少ないレジスタを必要とするので、動作に要求される電力は従来のDMAよりも少ない。
データ発信元とデータ宛先との間のデータ転送を制御するダイレクト・メモリ・アクセス制御方法が開示されており、この方法は、1つの読み出し/書き込みポートの読み出しチャネルで、バス上の読み出し経路を介して前記データ発信元からデータを受信するステップと、前記1つの読み出し/書き込みポートの書き込みチャネルから前記データ宛先に対して前記バスの書き込み経路を介して前記受信したデータを出力するステップとを含み、前記読み出しチャネルと書き込みチャネルは、相互と関係なくデータ読み出しとデータ書き込みを遂行する。
本発明の特定の実施例を説明してきたが、本発明はそれに限定されるものではなく、本発明の範囲の中で多数の改造や追加を実行できることは明らかであろう。例えば、本発明の範囲を逸脱することなく、独立請求項の特徴と従属請求項の特徴との各種組み合わせをつくることができるであろう。
従来の技術によるフライ・バイ・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。 従来の技術によるダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。 本発明の実施例に従って、1つのレジスタを有する「フライ・スルー(fly -through)ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。 図3の実施例に従って、フライ・スルー・ダイレクト・メモリ・アクセス・コントローラを通過するデータの遅延を示すタイミング図を示す図である。 本発明の実施例に従って、並列に配置された2つのレジスタを有するフライ・スルー・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。 図5の実施例に従って、フライ・スルー・ダイレクト・メモリ・アクセス・コントローラを通過するデータの遅延を示すタイミング図を示す図である。 本発明の実施例に従って、直列に配置された2つのレジスタを有するフライ・スルー・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。 本発明の実施例に従って、レジスタを有しないフライ・スルー・ダイレクト・メモリ・アクセス・コントローラを模式的に示す図である。 本発明の実施例に従って、発信元と宛先が異なるバス上にあるダイレクト・メモリ・アクセス・コントローラの更なる実施例を示す図である。
符号の説明
10 発信元
12 データアクセス命令
20 宛先
32 バス
33 読み出しチャネル
34 制御チャネル
35 書き込みチャネル
40 ダイレクト・メモリ・アクセス・コントローラ(DMAC)
41 読み出しポート
43 書き込みポート
45、45A、45B、46 レジスタ
47 読み出し/書き込みポート
47a 読み出しチャネル
47b 制御チャネル
47c 書き込みチャネル
48 組み合わせ論理

Claims (23)

  1. データ発信元とデータ宛先との間のデータ転送を制御するダイレクト・メモリ・アクセス・コントローラであって、
    発信元バスを介して前記データ発信元からデータを受信するとともに、宛先バスを介して前記データ宛先に対して前記受信したデータを出力する読み出し/書き込みポートを含むダイレクト・メモリ・アクセス・コントローラにおいて、
    前記ダイレクト・メモリ・アクセス・コントローラは、所定の数のクロック・パルスに応答して前記読み出し/書き込みポートを制御し、前記ダイレクト・メモリ・アクセス・コントローラが前記所定の数のクロック・パルスを受信すると、前記受信したデータを出力するダイレクト・メモリ・アクセス・コントローラ。
  2. 請求項1に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記クロック・パルスの所定の数は1であり、前記メモリアクセス・コントローラは、前記受信したデータを出力する前の前記1クロック・サイクル中に前記受信したデータを格納するレジスタを含む前記ダイレクト・メモリ・アクセス・コントローラ。
  3. 請求項1に記載のダイレクト・メモリ・アクセス・コントローラであって、前記クロック・パルスの所定の数は1であり、相互に並列に配置され、それぞれが前記格納した項目を出力する前のクロック・サイクル中に、前記受信したデータの項目を交互に格納するように動作可能な2つのレジスタを含む前記ダイレクト・メモリ・アクセス・コントローラ。
  4. 請求項1に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記クロック・パルスの所定の数はゼロであり、前記受信したデータが前記ダイレクト・メモリ・アクセス・コントローラの中に格納されないように、前記入力ポートは前記出力ポートに接続されている前記ダイレクト・メモリ・アクセス・コントローラ。
  5. 請求項4に記載のダイレクト・メモリ・アクセス・コントローラであって、前記入力ポートと前記出力ポートとの間に組み合わせ論理を更に含む前記ダイレクト・メモリ・アクセス・コントローラ。
  6. 請求項1に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記クロック・パルスの所定の数は2であり、前記メモリアクセス・コントローラは、受信したデータを出力する前の前記2つのクロック・サイクル中に前記受信したデータを格納する入力レジスタと出力レジスタとを含む前記ダイレクト・メモリ・アクセス・コントローラ。
  7. 請求項1に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記発信元バスと前記宛先バスは1つのバスを含み、前記データ発信元から前記読み出しチャネルへのデータ転送は前記読み出し経路から受信され、前記データ宛先へのデータ転送は、前記読み出し経路と関係なく前記書き込み経路へ出力されるように、前記1つのバスは、別々の読み出し経路と書き込み経路を含み、前記読み出し/書き込みポートは、前記読み出し経路からデータを読み出すように動作可能な読み出しチャネルと、前記書き込み経路にデータを書き込むように動作可能な読み出しチャネルとを有する1つのポートを含む前記ダイレクト・メモリ・アクセス・コントローラ。
  8. 請求項1に記載のダイレクト・メモリ・アクセス・コントローラであって、前記読み出し/書き込みポートは、前記バス上の制御経路に制御信号を出力するように動作可能な制御チャネルを更に含むダイレクト・メモリ・アクセス・コントローラにおいて、
    前記データ発信元からの少なくとも1つのデータ転送を指定する発信元制御信号であって、前記読み出し/書き込みポートの前記制御チャネルは、前記受信した信号を受信する前に、前記バス上の前記制御経路を介して前記データ発信元に前記発信元制御信号を出力するように動作可能である前記発信元制御信号と、
    前記データ宛先に前記少なくとも1つのデータ転送を指定する宛先制御信号であって、前記読み出し/書き込みポートの前記制御チャネルは、前記受信したデータが前記読み出し/書き込みポートで受信されているか否かに関係なく、前記バス上の前記制御経路を介して前記データ宛先に宛先制御信号を出力するように動作可能である前記宛先制御信号と、
    の少なくとも1つを発生するように動作可能な制御論理を更に含む前記ダイレクト・メモリ・アクセス・コントローラ。
  9. 請求項8に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記少なくとも1つのデータ転送は、複数の連続アドレスからの一連のデータ転送を含み、前記制御論理は、前記データ発信元からの前記一連のデータ転送の各読み出しと各書き込みをそれぞれ制御する1つの読み出し制御信号と書き込み制御信号とを発生するように動作可能である前記ダイレクト・メモリ・アクセス・コントローラ。
  10. 請求項9に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記1つの発信元制御信号は、最初に中央のアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記転送は、前記最初のアドレスからデータを送った後に続いて前記連続アドレスの前記最終アドレスからデータを送ることを包含する前記ダイレクト・メモリ・アクセス・コントローラ。
  11. 請求項10に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記制御論理は、前記宛先に対する前記一連のデータ転送の書き込みを制御する1つの宛先制御信号を発生するように動作可能である前記ダイレクト・メモリ・アクセス・コントローラ。
  12. 請求項1に記載のダイレクト・メモリ・アクセス・コントローラにおいて、前記データ発信元と前記データ宛先は、それぞれメモリか周辺装置のいずれか1つを含む前記ダイレクト・メモリ・アクセス・コントローラ。
  13. データ発信元とデータ宛先の間のデータ転送を制御するダイレクト・メモリ・アクセス制御方法であって、
    読み出し/書き込みポートにおいて発信元バスを介し、前記データ発信元からデータを受信するステップと、
    所定の数のクロック・パルスを検出するステップと、
    前記検出された所定の数のクロック・パルスに応答して前記読み出し/書き込みポートを制御し、前記ダイレクト・メモリ・アクセス・コントローラが前記所定の数のクロック・パルスを受信すると、宛先バスを介し前記データ宛先に対して前記受信したデータを出力するステップと、
    を含むダイレクト・メモリ・アクセス制御方法。
  14. 請求項13に記載のダイレクト・メモリ・アクセス制御方法であって、前記クロック・パルスの所定の数はゼロであり、前記受信したデータを出力する前の前記1クロック・サイクル中に、前記受信したデータをレジスタに格納する更なるステップを含む前記ダイレクト・メモリ・アクセス制御方法。
  15. 請求項13に記載のダイレクト・メモリ・アクセス制御方法において、前記クロック・パルスの所定の数は1であり、前記受信したデータは、n個のデータ項目を含む前記方法であって、
    (i)1クロック・サイクル中に並列に配置された2つのレジスタの一方に前記受信したデータの最初のデータ項目を格納するステップと、
    (ii)前記前のクロック・サイクル中に格納された前記データ項目を前記2つのレジスタの一方から出力して、後続クロック・サイクル中に前記2つのレジスタの他方に更なるデータ項目を格納することをn−1回実行するステップと、
    (iii)更なる後続クロック・サイクル中に格納されたデータの最終データ項目を出力するステップと、
    を更に含む前記ダイレクト・メモリ・アクセス制御方法。
  16. 請求項13に記載のダイレクト・メモリ・アクセス制御方法において、前記クロック・パルスの所定の数はゼロであり、前記読み出し/書き込みポートは、前記データを受信すると、前記データを格納せずに出力するように制御される前記ダイレクト・メモリ・アクセス制御方法。
  17. 請求項13に記載のダイレクト・メモリ・アクセス制御方法であって、前記クロック・パルスの所定の数は2であり、1クロック・サイクル中に前記受信したデータを入力レジスタに格納するステップと、前記受信したデータを出力する前の後続クロック・サイクル中に前記受信したデータを出力レジスタに格納するステップとを含む前記ダイレクト・メモリ・アクセス制御方法。
  18. 請求項13に記載のダイレクト・メモリ・アクセス制御方法において、前記発信元バスと前記宛先バスは1つのバスを含み、前記1つのバスは別々の読み出し経路と書き込み経路を含み、前記読み出し/書き込みポートは、前記読み出し経路からデータを読み出すように動作可能な読み出しチャネルと、前記書き込み経路にデータを書き込むように動作可能な読み出しチャネルとを含む方法であって、前記読み出し経路を介し、前記データ発信元からデータ転送を受信する前記読み出しチャネルを制御するとともに、前記読み出し経路と関係なく、前記書き込み経路を介し、前記データ宛先に対して前記受信したデータを出力する前記書き込みチャネルを制御する前記ダイレクト・メモリ・アクセス制御方法。
  19. 請求項13に記載のダイレクト・メモリ・アクセス制御方法であって、
    前記データ発信元からの少なくとも1つのデータ転送を指定するとともに、前記受信したデータを受信する前に前記バス上の制御経路を介して前記データ発信元に前記発信元制御信号を出力する、前記読み出し/書き込みポートの制御チャネルを制御する発信元制御信号と、
    前記データ宛先に対する少なくとも1つのデータ転送を指定するとともに、前記受信したデータが前記読み出し/書き込みポートで受信されているか否かに関係なく、前記バス上の前記制御経路を介して前記データ宛先に対して宛先制御信号を出力する前記読み出し/書き込みポートの制御チャネルを制御する前記宛先制御信号と、
    の少なくとも1つを発生する更なるステップを含む前記ダイレクト・メモリ・アクセス制御方法。
  20. 請求項19に記載のダイレクト・メモリ・アクセス制御方法において、前記少なくとも1つのデータ転送は、複数の連続したアドレスからの一連のデータ転送を含む方法であって、前記データ発信元からの前記一連のデータ転送の送信を制御する1つの発信元制御信号を発生する前記ダイレクト・メモリ・アクセス制御方法。
  21. 請求項20に記載のダイレクト・メモリ・アクセス制御方法において、前記1つの発信元制御信号は、最初に中央のアドレスから転送される前記複数の連続したアドレスからの前記一連のデータ転送を制御し、前記転送は、前記最初のアドレスからデータを送った後に続いて前記連続アドレスの前記最終アドレスからデータを送ることを包含する前記ダイレクト・メモリ・アクセス制御方法。
  22. 請求項20に記載のダイレクト・メモリ・アクセス制御方法であって、前記データ宛先に対する前記一連のデータ転送の書き込みを制御する1つの宛先制御信号を発生する前記ダイレクト・メモリ・アクセス制御方法。
  23. 請求項13に記載のダイレクト・メモリ・アクセス制御方法において、前記データ発信元と前記データ宛先は、それぞれメモリと周辺装置とのいずれか1つを含む前記ダイレクト・メモリ・アクセス制御方法。
JP2005040085A 2004-02-18 2005-02-17 ダイレクト・メモリ・アクセス制御 Abandoned JP2005235216A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/779,807 US20050182863A1 (en) 2004-02-18 2004-02-18 Direct memory access control

Publications (1)

Publication Number Publication Date
JP2005235216A true JP2005235216A (ja) 2005-09-02

Family

ID=34377777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005040085A Abandoned JP2005235216A (ja) 2004-02-18 2005-02-17 ダイレクト・メモリ・アクセス制御

Country Status (3)

Country Link
US (1) US20050182863A1 (ja)
JP (1) JP2005235216A (ja)
GB (1) GB2411264B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4563829B2 (ja) * 2005-01-27 2010-10-13 富士通株式会社 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
US11755224B2 (en) * 2017-07-27 2023-09-12 EMC IP Holding Company LLC Storing data in slices of different sizes within different storage tiers

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1228677A (en) * 1984-06-21 1987-10-27 Cray Research, Inc. Peripheral interface system
JPH03156554A (ja) * 1989-11-14 1991-07-04 Hitachi Ltd データ転送制御方式
JPH05173932A (ja) * 1991-12-24 1993-07-13 Toshiba Corp データ転送装置
US5794070A (en) * 1993-06-30 1998-08-11 Intel Corporation Method and apparatus for fast DMA transfer on an industry standard architecture (ISA) bus
US5864716A (en) * 1994-01-07 1999-01-26 Cirrus Logic, Inc. Tagged data compression for parallel port interface
JPH08153060A (ja) * 1994-11-29 1996-06-11 Tec Corp 画像データ処理装置
US5826106A (en) * 1995-05-26 1998-10-20 National Semiconductor Corporation High performance multifunction direct memory access (DMA) controller
US5745684A (en) * 1995-11-06 1998-04-28 Sun Microsystems, Inc. Apparatus and method for providing a generic interface between a host system and an asynchronous transfer mode core functional block
JP2001154976A (ja) * 1999-11-25 2001-06-08 Canon Inc Dmaコントローラ及びその制御方法
JP4097377B2 (ja) * 2000-01-06 2008-06-11 ローム株式会社 マイクロコンピュータ
JP2002041445A (ja) * 2000-05-19 2002-02-08 Matsushita Electric Ind Co Ltd 高性能dmaコントローラ
JP3895610B2 (ja) * 2001-03-21 2007-03-22 株式会社リコー 画像形成装置および画像形成方法

Also Published As

Publication number Publication date
US20050182863A1 (en) 2005-08-18
GB2411264B (en) 2007-05-16
GB2411264A (en) 2005-08-24
GB0502655D0 (en) 2005-03-16

Similar Documents

Publication Publication Date Title
US6381664B1 (en) System for multisized bus coupling in a packet-switched computer system
JP4124491B2 (ja) 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ
KR100840140B1 (ko) 메모리 허브 메모리 모듈들을 사용하여 데이터 전송들을조직화하는 시스템 및 방법
US5577229A (en) Computer system and method for pipelined transfer of data between modules utilizing a shared memory and a pipeline having a plurality of registers
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
US6341318B1 (en) DMA data streaming
JP3598321B2 (ja) 異なる周波数で動作するバス間でやりとりされるバッファリングデータ
US6532525B1 (en) Method and apparatus for accessing memory
KR100881049B1 (ko) 복수의 어드레스 2 채널 버스 구조
US20020184453A1 (en) Data bus system including posted reads and writes
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
US5721841A (en) Adapter having data aligner including register being loaded to or from memory with an offset in accordance with predetermined network fragmentation parameters
US20050160202A1 (en) Direct memory access device
US6457121B1 (en) Method and apparatus for reordering data in X86 ordering
JP4812058B2 (ja) Fifo管理方法及びパイプラインプロセッサシステム
US6199118B1 (en) System and method for aligning an initial cache line of data read from an input/output device by a central processing unit
US6088744A (en) Multiport data buffer having multi level caching wherein each data port has a FIFO buffer coupled thereto
JP2005235216A (ja) ダイレクト・メモリ・アクセス制御
US20040230717A1 (en) Processing device
EP0690382B1 (en) Computer system with a multiplexed address bus and pipelined write operations
WO2004068362A1 (en) Processor array
JP4928683B2 (ja) データ処理装置
JP2642087B2 (ja) 主記憶装置間データ転送処理機構
EP1193606B1 (en) Apparatus and method for a host port interface unit in a digital signal processing unit
JPH07334453A (ja) メモリアクセスシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070302

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20080515