JP4543086B2 - 一体化したdmaエンジンを用いて、高性能に揮発性ディスクドライブメモリへのアクセスを行うための装置および方法 - Google Patents

一体化したdmaエンジンを用いて、高性能に揮発性ディスクドライブメモリへのアクセスを行うための装置および方法 Download PDF

Info

Publication number
JP4543086B2
JP4543086B2 JP2007527817A JP2007527817A JP4543086B2 JP 4543086 B2 JP4543086 B2 JP 4543086B2 JP 2007527817 A JP2007527817 A JP 2007527817A JP 2007527817 A JP2007527817 A JP 2007527817A JP 4543086 B2 JP4543086 B2 JP 4543086B2
Authority
JP
Japan
Prior art keywords
dma
vdd
memory
access request
file
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.)
Expired - Fee Related
Application number
JP2007527817A
Other languages
English (en)
Other versions
JP2008502084A (ja
Inventor
ラワル、チェタン、ジェー
エム シャー、シュリカント
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2008502084A publication Critical patent/JP2008502084A/ja
Application granted granted Critical
Publication of JP4543086B2 publication Critical patent/JP4543086B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

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

Description

本発明の実施形態は概して集積回路およびコンピュータシステムのデザインに関する。より具体的には、一体化したDMA(ダイレクト・メモリ・アクセス)エンジンを用いて、高性能に揮発性ディスクドライブメモリへのアクセスを行うための装置および方法に関する。
RAMDISKは、揮発性システムメモリの一部分をプログラム制御下で大容量記憶デバイスとして使用するメモリ管理技術である。本明細書ではこのような大容量記憶デバイスとして使用される部分を「揮発性ディスクドライブ(VDD)メモリ」と呼ぶ。RAMDISKに対するオペレーティングシステム(OS)のファイル動作は、従来のハードディスクに対するOS動作よりも格段に早い。このため、RAMDISKを利用すると、最も頻繁に利用されるプログラムおよびファイルをRAMDISKに割り当てられたシステムメモリの一部に収納することによってシステム性能を大幅に向上させることができる。システムの電源を切ってしまうとRAMDISKに格納された情報は無くなるが、RAMDISKに基づいたメモリ管理技術は、通常のOSファイルフォーマットで一時的にデータを格納およびキャッシュするためには非常に有用である。通常RAMDISKは、頻繁に利用されるファイルをマスメディアストレージのプールからキャッシュするために、ウェブ/ファイルサーバで用いられている。
従来の方法では、RAMDISKを実現する為に利用されるドライバは完全にソフトウェアに組み込まれている。このため、プログラムまたはプロセスがRAMDISKに対してファイルの読み出し/書き込みを求めると、RAMDISKドライバが呼び出される。このドライバはまず、RAMDISK用に保護されたシステムメモリ内での位置に関して要求されたファイルがどのようにマッピングされているか特定する。ドライバはこの特定を完了すると、RAMDISKのメモリと要求を行ったプロセスのメモリとの間でデータ転送を実行する。この転送は通常CPUの助けを借りて実行され、ドライバはシステムメモリのRAMDISK部分にデータを要求することをCPUに指示する。
ここで、CPU(中央演算処理装置)はRAMDISKドライバについてデータ転送およびファイル管理機能を管理しなければならない。RAMDISKに基づいたメモリ管理技術は、従来のストレージドライブを利用するよりはるかに高速であるが、RAMDISKドライバがRAMDISKとアプリケーションの記憶位置の間でデータ転送を行うためには、数多くのCPUサイクルが費やされる。また、4ギガバイト(GB:32ビットアドレス)を超えるメモリについてRAMDISKを実現する場合、RAMDISKドライバはCPUのページアドレス拡張(PAE)モードを利用しなければならなかった。しかしPAEモードを利用すると、RAMDISKドライバだけでなくシステム内で実行されているすべてのプロセスに関してさらに性能が落ちてしまうという問題がある。
添付図面において本発明のさまざまな実施形態を示す。これらの図は本発明の例示を目的としたものであり、本発明を限定するものではない。以下に図面を簡単に説明する。
一実施形態に係る、仮想ディスクドライブ(VDD)に対する高性能アクセスを実現するための一体化DMAエンジンを有するDMAコントロールを備えるコンピュータシステムを示すブロック図である。
一実施形態に係る、図1に示したDMAコントローラをさらに詳細に示すブロック図である。
一実施形態に係る、DMAレジスタおよびチェーンディスクリプタのマッピングを示すブロック図である。
一実施形態に係る、DMAアクセスを用いて仮想ディスクドライブ内のデータブロックにアクセスするためのDMAディスクリプタセットにリンクしたリストのセットアップを示すブロック図である。
一実施形態に従って、VDDアクセス要求を検出した後に、続いて、図1に示したDMAコントローラを用いてダイレクトメモリアクセス(DMA)に基づき、VDDアクセス要求を実行する様子を示したブロック図である。
開示した技術を利用したデザインのシミュレーション、エミュレーションおよび製造を行うためのさまざまなデザイン表現またはデザインフォーマットを示すブロック図である。
一体化したDMA(ダイレクト・メモリ・アクセス)エンジンを用いて、高性能に揮発性ディスクドライブ(VDD)メモリへのアクセスを行うための装置および方法を説明する。一実施形態によると、そのような方法は揮発性システムメモリ内に実現されたVDDメモリに対するデータアクセス要求を検出することを含む。データアクセス要求が検出されると、VDDドライバは、VDDに対するデータアクセス要求を実行するべく、DMAデータ要求を発行するとしてもよい。従って一実施形態によると、揮発性システムメモリの割り当てられた一部分内に実現されたVDDメモリとの間でのデータ転送を担当するのはDMAエンジンに移される。DMAエンジンの例を挙げると、メモリコントローラハブ(MCH)に一体化したDMAエンジンなどがある。
本発明をさらに説明するべく以下の説明は、信号およびバスの論理的実施例、サイズおよび名称、システムの構成要素の種類および相関関係、ならびに論理的分割/一体化の選択などの具体的且つ詳細な記載内容を多く含む。しかし本発明はそういった具体的且つ詳細な記載なしでも実施できることは当業者には明らかである。また、制御構造およびゲートレベル回路については、本発明をあいまいにするのを避けるべく詳細な説明を省略している。本明細書の説明に基づけば当業者は不必要な実験を行うことなく適切な論理回路を実施することができる。
以下の説明では特定の用語を用いて本発明の特徴を説明する。例えば、「論理」という単語は1以上の機能を実行するように構成されたハードウェアおよび/またはソフトウェアを表す。「ハードウェア」の例を挙げると、これらに限定されないが、集積回路、有限ステートマシーンまたは組み合わせ論理がある。集積回路は、マイクロプロセッサ、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、マイクロコントローラなどのプロセッサの形態を取ることもある。
「ソフトウェア」の例を挙げると、アプリケーション、アプレット、ルーチンまたは一連の命令などの形態を取った実行可能コードがある。一実施形態によると、製品は複数の命令を格納した機械/コンピュータ可読媒体を備え、該命令はコンピュータ(またはそれ以外の電子デバイス)をプログラミングして一実施形態に係るプロセスを実行させる。機械/コンピュータ可読可能媒体の例を挙げると、これらに限定されないが、プログラム可能な電子回路、揮発性メモリ(例えば、ランダムアクセスメモリなど)および/または不揮発性メモリ(例えば、リードオンリーメモリ(ROM)、フラッシュメモリなど)を有する半導体メモリデバイス、フロッピーディスク、光ディスク(例えば、コンパクトディスクまたはデジタルビデオディスク(DVD)など)、ハードドライブディスク、テープなどがある。
<システム>
図1は、一実施形態に係る、VDDメモリ250に対する高性能なアクセスを実現するためのDMA(ダイレクト・メモリ・アクセス)コントローラ200を備えたコンピュータシステム100を示すブロック図である。同図によると、コンピュータシステム100はプロセッサ(CPU)102とチップセット130の間で情報をやり取りするためのプロセッサシステムバス(フロント・サイド・バス:FSB)104を備える。本明細書では、「チップセット」という単語は、所望のシステム機能を実行するべくCPU102に接続されたさまざまなデバイスをまとめて表す。
同図に示すように、チップセット130はグラフィックスコントローラ150に接続されたメモリコントローラハブ(MCH)110を有するとしてもよい。別の実施形態によれば、グラフィックスコントローラ150はMCHに一体化され、一実施形態ではMCH110が一体化グラフィクスMCH(GMCH)として動作する。同図に示すように、MCH110はシステムメモリバス142を介してメインメモリ140にも接続される。一実施形態によると、メインメモリ140の例には、これらに限定されないが、RAM(Random Access Memory)、DRAM(Dynamic RAM)、SRAM(Static RAM),SDRAM(Synchronous DRAM)、DDR−SDRAM(Double Data Rate SDRAM)、RDRAM(Rambus DRAM)などの高速且つ一時的にデータを格納することができるデバイスがある。
一実施形態によると、MCH110はCPU102内に一体化され、CPU102とメインメモリ140間の直接接続を可能にする。一実施形態によると、MCH110は、PCI−Exエンドポイント190(190−1〜190−N)とMCH110をPCI−Exリンク182(182−1〜182−N)を介して接続するための周辺機器インターコネクト(PCI)PCI−Express(PCI−Ex)ルートポート180(180−1〜180−N)を有する。同図に示すように、PCI−Exリンク182は、周辺エンドポイントデバイス190(190−1〜190−N)とMCH110の間で双方向通信を可能にするべく、例えばPCI Express基本仕様1.0a(2003年10月7日付けの正誤表)によって定義されるような2地点間リンクを提供するとしてもよい。
さらに図示されているように、チップセット130は入出力(I/O)コントローラハブ(ICH)120を有する。同図に示されているように、ICH120は1以上のUSB(Universal Serial Bus)スロット160とICH120を接続するためのUSBリンクまたはインターコネクト162を含むとしてもよい。さらに、SATA(Serial Advance Technology Attachment)172は、ハードディスクドライブデバイス(HDD)170とICH120を接続するとしてもよい。一実施形態によると、ICH120は、1以上のPCI/PCIxスロット164とICH120を接続するための古いPCI/PCIxリンク166を含むとしてもよい。一実施形態によると、システムBIOS106がコンピュータシステム100を初期化する。
図1に示すように、一実施形態によると、コンピュータシステム100はVDDドライバ260を備える。動作を説明すると、VDDドライバ260は、揮発性システムメモリ140の一部を保護して、VDDメモリ250として動作するように割り当てる。一実施形態によると、VDDメモリ250に割り当てられたメインメモリ140の一部は、コンピュータシステム100のカーネルオペレーティングシステム(OS)からは隠されている交換不可能なメモリである。本明細書で説明するように、VDDメモリ250はこれとは別にRAMDISKとも呼ばれる。RAMDISKとは、プログラム制御下で揮発性システムメモリの一部を大容量記憶デバイスとして機能するように割り当てるメモリ管理技術である。
一実施形態によると、VDDドライバ260は、VDDメモリ内でファイル動作を実行するためにDMAコントローラ200を用いる。従来の方法によると、デバイスドライバ(例えば、チップセット130に接続された周辺機器に対応するソフトウェア)によるメインメモリへのアクセスは、周辺機器用のメモリとの間でデータの読み出し動作または書き込み動作を開始させるためのバストランザクションをCPUが発行するという、プログラミングされた転送に基づいて実行される。これとは逆にDMAは、より進歩したアーキテクチャによって実現される機能であって、周辺機器とメインメモリの間でCPUが関与することなくデータ転送を直接行える。このように、システムのCPUはデータ転送には関与することがないので、コンピュータ動作を全体として高速化することができる。一実施形態によると、DMAコントローラ200は、図2に示すように、コンピュータシステム100内でDMA機能を実現している。
一実施形態によると、DMAコントローラは、複数のDMAチャネル214(214−1〜214−N)を提供するように構成された、一体化DMAエンジン210を有する。一実施形態によると、DMAコントローラ200は4つのDMAチャネルを提供し、各DMAチャネルは、システムメモリ140からチップセット130に接続されたさまざまな周辺機器に対して、もしくはシステムメモリ140内でデータ転送を行うべく、独立して利用できる。一実施形態によると、以下で詳述するが、DMAチャネルプログラミングインターフェースは、図3および図4に示されているようなメモリマップド内部レジスタセットおよびメインメモリ140に書き込まれたチェーンディスクリプタの組み合わせを介して、CPU102からアクセスできる。
一実施形態によると、DMAチャネル214間のアービトレーションは2段階で行われる。図示されているように各DMAチャネル214は、DMAコントローラ200の内部にあるアービタ(DMAアービタ212)に対して別々にバス要求/付与の対を有している。さらに図示されているように、DMAコントローラ200はMCH110内のメインアービタ(MCHアービタ220)に対して、単一の要求/付与の対を持っている。一実施形態によると、DMAアービタ212は厳密にラウンドロビン方式に基づき、DMAチャネルおよび要求元のデバイスに対してメインメモリ140へのアクセスを与える。一実施形態によると、DMAアービタ212は任意で、1つのDMAチャネルに関してある時点における優先指定を持つとしてもよい。このような構成とすることによって、競合する一連のDMAチャネルに基づき、通常の動作において均衡が取れた帯域幅性能を達成することができる。
ここで図1に戻ると、本明細書で説明しているように、チップセット130に接続されたバス上の各周辺機器または入出力カードは、本明細書において「バスエージェント」と呼ぶ。バスエージェントは一般的に対称エージェントと優先エージェントに分けられ、優先エージェントと対称エージェントがバス所有権において競合している場合、優先エージェントに所有権が付与される。このようなアービトレーションが必要なのは、普通バスエージェントが、トランザクション発行のためにバスを同時に駆動することは禁止されているからである。コンピュータシステム100のバスエージェントに対応付けられたデバイスドライバは、MCHに対してトランザクション要求232を発行するとしてもよい。優先順位制度に従って、図2に示すように、MCHアービタ220はDMA転送要求を発行するべくDMAチャネル214に対してアービトレーションを行う。
本明細書で説明するように、「トランザクション」という単語は1つのバスアクセス要求に関連するバス動作と定義される。一般的にトランザクションは、バスアービトレーションおよびトランザクションアドレスを伝播するための信号のアサートによって開始されるとしてもよい。インテル(登録商標)アーキテクチャ(IA)仕様で定義されているように、トランザクションはいくつかのフェーズを含み、各フェーズでは特定の種類の情報を送るための一連の特定の信号が利用される。このようなフェーズには少なくとも、(バス所有権に関する)アービトレーションフェーズ、要求フェーズ、応答フェーズおよびデータ転送フェーズが含まれるとしてもよい。
コンピュータシステム100のようなコンピュータシステム内でDMAアクセスを実現するためには、DMAアクセスを持つデバイスをバスマスタとして指定する必要がある。バスマスタはマイクロプロセッサまたは独立した入出力コントローラ(デバイスドライバ)内にあるプログラムであって、システムバスまたは入出力経路上のトラフィックを指揮する。動作を説明すると、バスマスタのデバイスドライバは、DMAのためにDMAデータ要求を発行するように指定または有効にされているメインメモリ140の一部の割り当てをOSに対して要求する。
図1に戻り、一実施形態によると、VDDドライバ260はバスマスタのステータスを与えられた1以上のDMAチャネルを制御する。このような構成により、VDDドライバ260はDMAコントローラ200に対してDMAアクセス要求を発行することができる。動作を説明すると、DMAアービタ212およびそれに続いてMCHアービタ220によるアービトレーションが行われた後、あるDMAチャネル214にアクセスが与えられVDDメモリ250に対してDMAアクセス要求を発行する。従って一実施形態によると、アプリケーションまたはプロセスが、VDDメモリ250内に格納されたファイルに対する読み出し/書き込みアクセスといったファイル動作の実行を要求する場合、OSはこのコールをVDDドライバ260に渡すとしてもよい。要求されたファイル動作をDMAエンジン210に実行させるため、一実施形態によると、例えば図3に図示してあるようにVDDドライバ260はチェーンディスクリプタをプログラミングする。
一実施形態によると、DMAコントローラ200は、チャネル毎のレジスタセットのすべてについてメモリマップド構成を持つレジスタを利用する。一実施形態によると、DMAコントローラ200に対応付けられたメモリマップドレジスタスペースは、例えばDMAチャネルをプログラミングしてDMA転送を開始させるのに必要なDMA構成レジスタ270にアクセスするためにVDDドライバ260が利用する、32ビットのメモリベースアドレスレジスタ(BAR)によって特定される。一実施形態によると、図3に示すように、各DMAチャネルは独立して動作できるよう、32ビットのメモリマップドレジスタを12個有する。
一実施形態によると、DMAレジスタ270のうち8個は、通常動作中にローカルメモリから新しいディスクリプタが取り出された場合に、チェーンディスクリプタ290のようなチェーンディスクリプタの対応するフィールドを元にして自動的に書き込まれる。メモリ290の対応するディスクリプタフィールドのフォーマットは、DMAチャネル固有のレジスタ270に対して定義されたフォーマットと同一である。DMAモード制御レジスタのDMAモードビットによって定義されるが、DMAコントローラ200が通常モードにある場合、チャネル制御272、チャネルステータス274、ネクストディスクリプタアドレス282−1およびネクストディスクリプタ上位アドレス282−2については、読み出し/書き込みアクセスが利用可能である。残りのレジスタは読み出しに限られ、DMAチャネルがローカルシステムメモリからチェーンディスクリプタを読み出すとチェーンディスクリプタ290が定義する新しい値が自動的に書き込まれる。
Figure 0004543086
図3に示すように、メモリマップドDMAレジスタ270には、上記の表1に説明されるチャネル制御レジスタ(CCR)272が含まれる。一実施形態によると、CCR272はDMAチャネルの総合的な動作環境を示している。一実施形態によると、デバイスドライバは、システムメモリのチェーンディスクリプタを初期化して、メモリ中の最初のDMAチェーンディスクリプタの記憶位置によってネクストアドレスレジスタ282(282−1、282−2)を更新した後に、CCR207を初期化する。一実施形態によると、CCR272は、DMAチャネル動作を変更するべく(例えば、停止、一時停止など)DMAチャネルがアクティブである場合に書き込まれるとしてもよい。
Figure 0004543086
一実施形態によると、チャネルステータスレジスタ(CSR)274はDMAチャネルのステータスを示すフラグを有する。一実施形態によると、DMAチャネルのカレントステータスを取得するとともに割り込みのソースを特定するべく、レジスタ274はVDDドライバ260によって読み出される。表2に説明しているように、CSR274内にあるフラグには、チャネルが使用中であることを示すチャネルアクティブフラグ、DMA転送が打ち切られたことを示すDMA打ち切り済み(DMABRT)フラグがある。さらに、CSR274のフラグには、設定された場合このチャネルの現在のDMA転送が停止されることを示すDMA停止(DSTP)ビットも含まれる。
一実施形態によると、DMA一時停止済み(DSUS)ビットが設定されるとDMA要求が一時的に停止されたことが示され、転送終了(EOT)はチャネルが少なくとも1つのディスクリプタについてDMAを完了したことを示し、チェーン終了(EOC)フラグは最後のディスクリプタまですべてのディスクリプタについてエラーの無いDMA転送が行われたことを表す。本明細書では、「アサート」、「設定」、「デアサート」といった用語はアクティブ・ロー信号またはアクティブ・ハイ信号であるデータ信号に関連するとしてもよい。このためこれらの単語は、信号と対応付けられる場合、アクティブ・ロー信号またはアクティブ・ハイ信号を要求または示唆するために交互に用いられる。
カレントディスクリプタアドレスレジスタ(CDAR)276(276−1、276−2)は、ローカルシステムメモリ内の現在のチェーンディスクリプタのアドレスの下位ビットおよび上位ビットを含む。一実施形態によると、CDAR276は電源オンまたはシステムリセットの場合にゼロにクリアされ、新しいブロックの転送が開始されるとネクストディスクリプタアドレスレジスタ(NDAR)の値が自動的に読み込まれる。一実施形態によると、CDAR276は通常動作中は読み出しに限られており、DMAディスクリプタチェーンを進むにつれて、DMAチャネルの進行状況を監視するべくソフトウェアによってポーリングされるとしてもよい。残りのDMAレジスタ270は、DMA転送が開始される前にVDDドライバ260がプログラミングするDMAチェーンディスクリプタ290に対応する。
一実施形態によると、VDDドライバ260は、ローカルシステムメモリ内に1以上のチェーンディスクリプタを構築することによってDMAチャネルを初期化する。図3および図4に図示するように、そのようなディスクリプタは、DMAデータの先頭記憶位置を示すソースアドレス292、DMA要求によってDMAデータを移動または転送する先を示すデスティネーションアドレス294、転送されるバイト数を示す転送カウント298、ならびにディスクリプタチェーンでの次のディスクリプタのアドレスを示すネクストディスクリプタアドレス296を含むとしてもよい。ディスクリプタチェーンの最後のディスクリプタのネクストディスクリプタアドレス296はゼロに設定される。
動作を説明すると、アプリケーションまたはプロセスによってファイル動作要求が発行されると、VDDドライバ260はOSからファイル動作要求を受け取る。この要求に基づき、VDDドライバ260はチェーンディスクリプタ290のさまざまな構成要素(ソースアドレス292、デスティネーションアドレス294、転送カウントなど)をプログラミングする。一実施形態によると、転送カウント298はDword(Double Word)単位で提供され、Dwordカウント298と呼んでもよい。チェーンディスクリプタのプログラミングが完了すると、VDDドライバ260は、DMAレジスタ270のネクストディスクリプタアドレスレジスタ286(NDAR)を更新する。
一実施形態によると、NDAR286は、VDDドライバ260によってプログラミングされたチェーンディスクリプタの位置を特定するために、DMAコントローラ200によって利用される。従って、メモリの先頭チェーンディスクリプタ290のアドレスがNDAR286にポピュレートされると、VDDドライバ260はチャネル制御レジスタ272内にあるDMA開始ビットを設定するとしてもよい(表1を参照のこと)。VDDドライバ260は、図4に示すように、VDDメモリ250への複数のブロック転送から成るチェーンをセットアップするとしてもよい。しかし、アプリケーションまたはプロセスからのファイル要求がVDD250からの単一ブロック転送に限定されている場合、VDDドライバ260はDMAチェーンディスクリプタ290−1のネクストディスクリプタアドレスフィールドをヌル(ゼロ)値に設定する。
図3に戻り、DMAレジスタ270のソースアドレスレジスタ(SAR)フィールド278およびデスティネーションアドレスレジスタ(DAR)フィールド280は、上位アドレスレジスタフィールド(278−2、280−2)も含む。一実施形態によると、上位アドレスレジスタフィールド(278−2、280−2)はDMAアクセス要求に関して36ビットまたは64ギガバイトのアドレス指定範囲を可能とするために設けられている。従って、揮発性システムメモリ140内のVDDメモリ250、つまりRAMDISKセットアップに対するアクセスについて、従来とは違い、DMAコントローラ200によれば、データ転送に関する32ビットのアドレス指定という限界を超えたアドレス指定が可能となる。従来の方法では、VDDメモリ250に対して4ギガバイト(GB)の限界を越えるアクセス要求を可能とするには、CPU102のページアドレス拡張(PAE)機能を利用する必要がある。
図5は、一実施形態に係る、DMAコントローラ200内に一体化されたDMAエンジン210を用いてVDDメモリ250内でファイル動作を実行するための方法300の概要を示す。図示するように、アプリケーションまたは実行中プログラムといったプロセス302がVDDメモリ250内に含まれるファイルに対してファイル動作または読み出し/書き込みを要求することがある。移行310において、プロセス302はVDDアクセス要求を発行する。そのようなアクセスを例えばOS304が検出すると、移行320において、VDDドライバ260にVDDアクセス要求を渡すことによって、OS304はこのコールをVDDドライバ260に渡す。
一実施形態によると、VDDドライバ260は、検出されたファイル動作要求または読み出し/書き込み要求の対象であるファイルを特定する。検出するとVDDドライバ260は、ファイル名およびファイル内のアクセス要求の対象になっているオフセットを、メインメモリ140内の物理アドレスに変換する。一実施形態によると、この変換は、VDDメモリ250に対してマッピングされたメインメモリ140内の物理アドレス範囲に基づいて実行される。ファイルに対する物理アドレスが特定されると、VDDドライバ260は、移行330に示すようにDMAコントローラ200に対してDMA読み出し/書き込み(R/W)アクセス要求を発行するべく、例えば図3および図4に示されているようにDMAチェーンディスクリプタをポピュレートすることによって、DMAソースアドレスおよびDMAデスティネーションアドレスならびに転送長をプログラミングするとしてもよい。
図4に示すように、VDD250に対するファイル動作またはデータアクセス要求に関連するデータブロックが複数ある場合、VDDドライバ260は、複数のVDDブロック転送から成るチェーンを生成するようにプログラミングを行うとしてもよい。続いてDMAコントローラ200のNDAR282を、図3に示すように、DMAコントローラ200がディスクリプタのチェーンをDMAレジスタ270にロードするようにポピュレートする。DMAコントローラ200はチャネル制御レジスタ272のDMA開始ビットが例えばVDDドライバ260によって設定されると、このような動作を実行する。続いて図2に図示されているDMAエンジン210が、移行340に示されているようにDMA R/Wを実行することによって、VDDメモリ250による少なくとも1つのDMAチェーンディスクリプタプログラムに従って、データアクセス要求またはファイル動作を実行する。
一実施形態によると、DMAエンジン210が転送を完了すると、DMAエンジンは移行350において、ファイル動作が完了して、VDD250とプロセス302に割り当てられたメモリの間でデータ転送が実行されたことを通知するべく、VDDドライバ260に対して割り込みを発行するとしてもよい。図示されているように、DMA転送が完了したという通知を移行350においてVDDドライバ260が受け取ると、VDDドライバ260はプロセス302に、要求されたVDDメモリ250を対象とするファイル動作または読み出し/書き込みアクセス要求が完了したことを通知するとしてもよい。一実施形態によると、VDDドライバ260は移行360において、DMA転送が完了したことをプロセス302に通知する。
この結果、一実施形態によると、VDDドライバ260を生成することによって、VDDメモリ250内のファイルデータへのアクセス処理は、例えば図1および図2に図示されている、DMAコントローラの一体化DMAエンジンによって肩代わりされる。このようにデータ転送の担当をCPU102からDMAコントローラ200に移すことによって、システム性能が全体的に改善され、従来とは異なって、VDDメモリ250に対するファイル動作を実行する場合に行われるデータ転送をCPU102が実行せずにすむように構成することができる。さらに、従来のRAMDISKドライバは32ビットというアドレス指定範囲の限界を超えるためにはCPUのページアドレス拡張(PAE)モードを利用する必要があり、PAEモードを利用した場合一般的にVDDドライバ260だけでなくシステム上のすべてのプロセスにおいて性能が低下するが、これとは異なり、VDDメモリのデータ転送の作業をDMAエンジン210に移すことによって、上述したように性能を犠牲にせずにすむ。
図6は、本明細書で開示された技術を用いたデザインのシミュレーション、エミュレーションおよび製造のための表現またはフォーマットを示したブロック図である。デザインを表すデータは数多くの方法でデザインを表現するとしてもよい。まず、シミュレーションで便利なように、デザインされたハードウェアの期待される動作をコンピュータ化したモデルを基本的に提供する、ハードウェア記述言語またはそれ以外の機能記述言語を用いてハードウェアを表現するとしてもよい。ハードウェアモデル410は、コンピュータメモリのような記憶媒体400に格納され、本当に意図されたように機能するのかどうか判断するために、ハードウェアモデルにテスト一組430を利用するシミュレーションソフトウェア420を用いてシミュレーションされるとしてもよい。実施形態によっては、シミュレーションソフトウェアが媒体に記録、取得または格納されない。
デザインをどのように表現するにしても、データを何らかの機械可読媒体に格納するとしてよい。機械可読媒体には、そのような情報を送信するべく変調または生成された光波または電波460、メモリ450、またはディスクのような磁気/光ストレージ440などがある。これらの媒体はいずれもデザイン情報を持ち運ぶことができる。「持ち運ぶ」という用語は(例えば、情報を持ち運ぶ機械可読媒体)このように、ストレージデバイスに格納された情報または搬送波にエンコードまたは変調された情報に用いられる。デザインまたはデザインの詳細を記述する一連のビットは(搬送波または格納媒体のような機械可読媒体において実施されると)それ自体で完成品となる製品として存在するか、さらなるデザインまたは製造を行うために別の人によって利用される。
別の実施形態
他の実施形態には異なるシステム構成が用いられることもあるのは明らかである。例えば、システム100が備えるCPU102は1つであったが、他の実施形態ではマルチプロセッサシステム(1以上のプロセッサは上述したCPU102と構成および動作について類似するプロセッサであってもよい)であっても、さまざまな実施形態に係る、一体化されたDMAメモリコントローラによるVDDメモリへのアクセスによって効果が得られるとしてもよい。ほかの実施形態では、さらに異なるタイプのシステムまたは異なるタイプのコンピュータシステムを利用されるとしてもよい。例を挙げると、サーバ、ワークステーション、デスクトップコンピュータシステム、ゲームシステム、埋め込み型コンピュータシステム、ブレードサーバなどがある。
実施形態および最良の形態を開示してきたが、本願の請求項によって定義される本発明の実施形態の範囲内にとどまる限り、開示された実施形態を変更および変形するとしてもよい。

Claims (21)

  1. プロセッサを有するシステムにおいて、VDDメモリ(揮発性ディスクドライブ)へのアクセスを行う方法であって、
    プロセスが、揮発性システムメモリ内に実現された前記VDDメモリに対するデータアクセス要求を発行する段階と、
    オペレーティングシステム(OS)が、前記データアクセス要求を検出する段階と、
    VDDドライバが、前記データアクセス要求を前記オペレーティングシステムから受け取り、前記VDDメモリに対して前記データアクセス要求を実行するべく、DMAコントローラに対して、DMAアクセス要求を発行する段階とを備え、
    前記DMAアクセス要求を発行する段階は、
    前記VDDドライバが、前記データアクセス要求に従って少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階と、
    前記VDDドライバが、前記VDDメモリ内のファイルに対する前記データアクセス要求を実行するべくDMAスタートコマンドを発行する段階とを有し、
    前記少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階は、
    前記データアクセス要求の対象である前記VDDメモリ内のファイルを特定する段階と、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算する段階と、
    前記VDDメモリ内のファイルについて、前記データアクセス要求のオフセットに基づいて、DMAソースアドレスを演算する段階と、
    前記データアクセス要求に基づいてDMAデスティネーションアドレスを演算する段階と、
    を含むVDDメモリへのアクセスを行う方法。
  2. 前記VDDメモリへのアクセスを行う方法は、
    前記プロセスが、前記VDDメモリ内ファイルに対する読み出し/書き込み要求をする段階と、
    前記オペレーティングシステム、前記プロセスによる前記VDDメモリ内ファイルに対する前記読み出し/書き込み要求を検出する段階と、
    前記オペレーティングシステムが、前記読み出し/書き込み要求を前記VDDドライバに渡す段階とを備える
    請求項1に記載の方法。
  3. 前記VDDメモリへのアクセスを行う方法は、
    前記データアクセス要求を検出する前に、
    前記VDDドライバが、前記揮発性システムメモリの一部分を保護する段階と、
    前記VDDドライバが、初期化中に、前記揮発性システムメモリの保護部分を前記VDDメモリとして動作するように割り当てる段階とを更に備える、
    請求項1又は2に記載の方法。
  4. 前記データアクセス要求を検出する段階は、
    前記VDDドライバが、前記オペレーティングシステムから、前記プロセスによって発行された、前記VDDメモリ内ファイルに対する読み出し/書き込み要求を受け取る段階を有する、
    請求項1から3のいずれかに記載の方法。
  5. 前記DMAスタートコマンドを発行する段階は、
    ローカルシステムメモリ内の前記少なくとも1つのDMAチェーンディスクリプタのアドレスでDMAレジスタのネクストディスクリプタアドレスレジスタを更新する段階と、
    前記VDDメモリ内ファイルに対する前記データアクセス要求をDMAエンジンに実行させるべく前記DMAレジスタのDMA開始ビットを設定する段階とを含む、
    請求項1から4のいずれかに記載の方法。
  6. 前記VDDメモリへのアクセスを行う方法は、
    前記DMAエンジンによって、前記ネクストディスクリプタアドレスレジスタ内に含まれるアドレスにあるDMAチェーンディスクリプタを取り出す段階と、
    前記データアクセス要求に従って前記VDDメモリ内ファイルにDMAデータを転送するべく、取り出された前記DMAチェーンディスクリプタに従ってDMA転送を実行する段階と、
    前記DMA転送が完了すると、前記DMAエンジンが、前記VDDドライバに対して割り込みを発行する段階とを更に備える、
    請求項5に記載の方法。
  7. 前記VDDメモリへのアクセスを行う方法は、
    前記DMAエンジンが前記データアクセス要求のDMA転送を完了すると、前記VDDドライバが、前記DMAエンジンから割り込みを受け取る段階と、
    前記VDDドライバが、前記データアクセス要求を発行した前記プロセスに、ファイル動作が完了したことを通知する段階とを更に備える、
    請求項5又は6に記載の方法。
  8. 前記VDDメモリのサイズは4ギガバイトより大きい
    請求項1から7のいずれかに記載の方法。
  9. プロセッサを有するシステムにおいて、VDDメモリ(揮発性ディスクドライブ)へのアクセスを実行させるプログラムであって、
    プロセスが、揮発性システムメモリ内に実現された前記VDDメモリに対するデータアクセス要求を発行する段階と、
    オペレーティングシステム(OS)が、前記データアクセス要求を検出する段階と、
    VDDドライバが、前記データアクセス要求を前記オペレーティングシステムから受け取り、前記VDDメモリに対して前記データアクセス要求を実行するべく、DMAコントローラに対して、DMAアクセス要求を発行する段階とを備え、
    前記DMAアクセス要求を発行する段階は、
    前記VDDドライバが、前記データアクセス要求に従って少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階と、
    前記VDDドライバが、前記VDDメモリ内のファイルに対する前記データアクセス要求を実行するべくDMAスタートコマンドを発行する段階とを有し、
    前記少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階は、
    前記データアクセス要求の対象である前記VDDメモリ内のファイルを特定する段階と、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算する段階と、
    前記VDDメモリ内のファイルについて、前記データアクセス要求のオフセットに基づいて、DMAソースアドレスを演算する段階と、
    前記データアクセス要求に基づいてDMAデスティネーションアドレスを演算する段階と、
    を含むプログラム。
  10. 前記DMAスタートコマンドを発行する段階は、
    ローカルシステムメモリ内の前記少なくとも1つのDMAチェーンディスクリプタのアドレスでDMAレジスタのネクストディスクリプタアドレスレジスタを更新する段階と、
    前記VDDメモリ内ファイルに対する前記データアクセス要求をDMAエンジンに実行させるべく前記DMAレジスタのDMA開始ビットを設定する段階とを含む、
    請求項9に記載のプログラム
  11. 前記DMAエンジンが前記データアクセス要求のDMA転送を完了すると、前記VDDドライバが、前記DMAエンジンから割り込みを受け取る段階と、
    前記VDDドライバが、前記データアクセス要求を発行した前記プロセスに、ファイル動作が完了したことを通知する段階とを更に備える、
    請求項10に記載のプログラム
  12. プロセッサを有するシステムにおいて、VDDメモリ(揮発性ディスクドライブ)へのアクセスを行う方法であって、
    プロセスが、揮発性システムメモリ内に実現された前記VDDメモリ内ファイルに対する読み出し/書き込み要求を発行する段階と、
    前記読み出し/書き込み要求を、オペレーティングシステム(OS)によって、検出する段階と、
    前記オペレーティングシステムが、前記読み出し/書き込み要求をVDDドライバに渡す段階と、
    前記VDDメモリ内ファイルに対して前記読み出し/書き込み要求を実行するべく、前記VDDドライバによって、DMAコントローラに対するDMAアクセス要求を発行する段階とを備え、
    前記DMAアクセス要求を発行する段階は、
    前記VDDドライバが、前記読み出し/書き込み要求に従って少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階と、
    前記VDDドライバが、前記VDDメモリ内のファイルに対する前記読み出し/書き込み要求を実行するべくDMAスタートコマンドを発行する段階と、
    を有するVDDメモリへのアクセスを行う方法。
  13. 前記少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階は、
    前記読み出し/書き込み要求の対象である前記VDDメモリ内のファイルを特定する段階と、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算する段階と、
    を含む請求項12に記載の方法。
  14. 前記DMAスタートコマンドを発行する段階は、
    ローカルシステムメモリ内の前記少なくとも1つのDMAチェーンディスクリプタのアドレスでDMAレジスタのネクストディスクリプタアドレスレジスタを更新する段階と、
    前記VDDメモリ内のファイルに対する前記読み出し/書き込み要求をDMAエンジンに実行させるべく前記DMAレジスタのDMA開始ビットを設定する段階とを含み、
    前記VDDメモリへのアクセスを行う方法は、
    前記DMAエンジンによって、前記ネクストディスクリプタアドレスレジスタ内に含まれるアドレスにあるDMAチェーンディスクリプタを取り出す段階と、
    前記読み出し/書き込み要求に従って前記VDDメモリ内ファイルからDMAデータを転送するべく、取り出された前記DMAチェーンディスクリプタに従ってDMA転送を実行する段階と、
    前記DMA転送が完了すると、前記DMAエンジンが、前記VDDドライバに対して割り込みを発行する段階
    更に備える請求項12に記載の方法。
  15. プロセッサを有するシステムにおいて、VDDメモリ(揮発性ディスクドライブ)へのアクセスを実行させるプログラムであって、
    プロセスが、揮発性システムメモリ内に実現された前記VDDメモリ内ファイルに対する読み出し/書き込み要求を発行する段階と、
    前記読み出し/書き込み要求を、オペレーティングシステム(OS)によって、検出する段階と、
    前記オペレーティングシステムが、前記読み出し/書き込み要求をVDDドライバに渡す段階と、
    前記VDDメモリ内ファイルに対して前記読み出し/書き込み要求を実行するべく、前記VDDドライバによって、DMAコントローラに対するDMAアクセス要求を発行する段階とを備え、
    前記DMAアクセス要求を発行する段階は、
    前記VDDドライバが、前記読み出し/書き込み要求に従って少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階と、
    前記VDDドライバが、前記VDDメモリ内のファイルに対する前記読み出し/書き込み要求を実行するべくDMAスタートコマンドを発行する段階とを有する、
    プログラム。
  16. 前記少なくとも1つのDMAチェーンディスクリプタの内容を埋める段階は、
    前記読み出し/書き込み要求の対象である前記VDDメモリ内のファイルを特定する段階と、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算する段階とを含む、
    請求項15に記載のプログラム
  17. 前記DMAスタートコマンドを発行する段階は、
    ローカルシステムメモリ内の前記少なくとも1つのDMAチェーンディスクリプタのアドレスでDMAレジスタのネクストディスクリプタアドレスレジスタを更新する段階と、
    前記VDDメモリ内のファイルに対する前記読み出し/書き込み要求をDMAエンジンに実行させるべく前記DMAレジスタのDMA開始ビットを設定する段階とを含み、
    前記DMAエンジンによって、前記ネクストディスクリプタアドレスレジスタ内に含まれるアドレスにあるDMAチェーンディスクリプタを取り出す段階と、
    前記読み出し/書き込み要求に従って前記VDDメモリ内ファイルからDMAデータを転送するべく、取り出された前記DMAチェーンディスクリプタに従ってDMA転送を実行する段階と、
    前記DMA転送が完了すると、前記DMAエンジンが、前記VDDドライバに対して割り込みを発行する段階と、
    に含む請求項15に記載のプログラム
  18. VDDメモリ(揮発性ディスクドライブ)を実現するべく割り当てられた一部分を有する揮発性システムメモリと、
    前記揮発性システムメモリに接続されたチップセットであって、前記揮発性システムメモリに対するDMA転送を実行するためのDMAエンジンを有するチップセットと、
    前記チップセットに接続された不揮発性システムメモリであって、前記VDDメモリに対するデータアクセス要求を検出し、前記DMAエンジンに前記VDDメモリに対する前記データアクセス要求を実行させるべく、前記チップセットにDMA要求を発行するためのVDDドライバを有する不揮発性システムメモリと、
    を備え、
    前記チップセットは、
    前記VDDメモリに対する前記データアクセス要求に従って、前記VDDドライバによってプログラムされる、少なくとも1つのDMAチェーンディスクリプタのアドレスを記憶するネクストディスクリプタアドレスレジスタを有するDMAコントローラを有し、
    前記DMAチェーンディスクリプタは、
    前記VDDメモリ内のファイルについて、前記データアクセス要求のオフセットに基づいて演算されたDMAソースアドレスと、
    前記データアクセス要求に基づいて演算されたDMAデスティネーションアドレスを含む、
    コンピュータシステム。
  19. 前記チップセットはさらに、DMAエンジンを一体化して含むメモリコントローラハブを有する
    請求項18に記載のコンピュータシステム。
  20. 前記チップセットはさらに、入出力コントローラハブを有する
    請求項18に記載のコンピュータシステム。
  21. 前記DMAコントローラはさらにチャネル制御レジスタを有し、
    当該チャネル制御レジスタは、前記DMAエンジンに前記DMAチェーンディスクリプタを読み込ませて、前記VDDメモリに対する前記データアクセス要求を実行させるためのDMA開始ビットを含む、
    請求項18から20のいずれかに記載のコンピュータシステム。
JP2007527817A 2004-06-30 2005-06-21 一体化したdmaエンジンを用いて、高性能に揮発性ディスクドライブメモリへのアクセスを行うための装置および方法 Expired - Fee Related JP4543086B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/882,073 US7484016B2 (en) 2004-06-30 2004-06-30 Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
PCT/US2005/022226 WO2006012196A2 (en) 2004-06-30 2005-06-21 An apparatus and method for high performance volatile disk drive memory access using an integrated dma engine

Publications (2)

Publication Number Publication Date
JP2008502084A JP2008502084A (ja) 2008-01-24
JP4543086B2 true JP4543086B2 (ja) 2010-09-15

Family

ID=34972868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007527817A Expired - Fee Related JP4543086B2 (ja) 2004-06-30 2005-06-21 一体化したdmaエンジンを用いて、高性能に揮発性ディスクドライブメモリへのアクセスを行うための装置および方法

Country Status (7)

Country Link
US (2) US7484016B2 (ja)
JP (1) JP4543086B2 (ja)
KR (1) KR100909119B1 (ja)
CN (1) CN100592271C (ja)
DE (1) DE112005001512B4 (ja)
TW (1) TWI278755B (ja)
WO (1) WO2006012196A2 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484016B2 (en) * 2004-06-30 2009-01-27 Intel Corporation Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
US7506098B2 (en) * 2006-06-08 2009-03-17 Bitmicro Networks, Inc. Optimized placement policy for solid state storage devices
JP2008071054A (ja) * 2006-09-13 2008-03-27 Ricoh Co Ltd データ転送制御方法、データ処理装置及び画像処理装置
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
JP5489182B2 (ja) 2008-09-18 2014-05-14 マーベル ワールド トレード リミテッド プリロードする方法及びコントローラ
KR101231055B1 (ko) * 2008-12-19 2013-02-07 한국전자통신연구원 프로세서의 메모리 제어신호를 이용한 디스크 시스템
US8095700B2 (en) * 2009-05-15 2012-01-10 Lsi Corporation Controller and method for statistical allocation of multichannel direct memory access bandwidth
US8260980B2 (en) * 2009-06-10 2012-09-04 Lsi Corporation Simultaneous intermediate proxy direct memory access
US8473661B2 (en) * 2009-08-14 2013-06-25 Cadence Design Systems, Inc. System and method for providing multi-process protection using direct memory mapped control registers
US8327039B2 (en) 2009-08-14 2012-12-04 Cadence Design Systems, Inc. Integrated DMA processor and PCI express switch for a hardware-based functional verification system
KR101685407B1 (ko) 2010-07-29 2016-12-13 삼성전자주식회사 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법
CN109088951A (zh) * 2011-01-05 2018-12-25 飞比特网络股份有限公司 存储卡装置
US8855194B2 (en) * 2011-05-09 2014-10-07 Texas Instruments Incorporated Updating non-shadow registers in video encoder
US8495259B2 (en) * 2011-05-24 2013-07-23 International Business Machines Corporation Implementing storage adapter performance optimization with hardware chains to select performance path
US8544029B2 (en) 2011-05-24 2013-09-24 International Business Machines Corporation Implementing storage adapter performance optimization with chained hardware operations minimizing hardware/firmware interactions
US8886881B2 (en) 2011-05-24 2014-11-11 International Business Machines Corporation Implementing storage adapter performance optimization with parity update footprint mirroring
US8656213B2 (en) 2011-05-24 2014-02-18 International Business Machines Corporation Implementing storage adapter performance optimization with chained hardware operations and error recovery firmware path
US8495258B2 (en) * 2011-05-24 2013-07-23 International Business Machines Corporation Implementing storage adapter performance optimization with hardware accelerators offloading firmware for buffer allocation and automatically DMA
US8868828B2 (en) 2011-05-24 2014-10-21 International Business Machines Corporation Implementing storage adapter performance optimization with cache data/directory mirroring
US8516164B2 (en) * 2011-05-24 2013-08-20 International Business Machines Corporation Implementing storage adapter performance optimization with enhanced hardware and software interface
US8793462B2 (en) 2011-05-24 2014-07-29 International Business Machines Corporation Implementing storage adapter performance optimization with enhanced resource pool allocation
CN102231142B (zh) * 2011-07-21 2013-12-11 浙江大学 一种带有仲裁器的多通道dma控制器
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
EP2795503A4 (en) * 2011-12-21 2015-08-26 Intel Corp SECURE DIRECT MEMORY ACCESS
WO2013101053A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Non-volatile ram disk
US9208002B2 (en) 2012-01-06 2015-12-08 International Business Machines Corporation Equalizing bandwidth for multiple requesters using a shared memory system
CN102841870B (zh) * 2012-08-10 2015-04-15 无锡众志和达数据计算股份有限公司 基于高速串行总线的通用dma结构及预读方法
US9092364B2 (en) 2012-10-04 2015-07-28 International Business Machines Corporation Implementing storage adapter performance control
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9430349B2 (en) * 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
US9213616B2 (en) * 2013-01-24 2015-12-15 Xcerra Corporation Automated test platform utilizing status register polling with temporal ID
US9459978B2 (en) * 2013-01-24 2016-10-04 Xcerra Corporation Automated test platform utilizing segmented data sequencers to provide time controlled test sequences to device under test
US9336108B2 (en) 2013-01-24 2016-05-10 Xcerra Corporation Scalable test platform
US9430348B2 (en) * 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
ES2687609T3 (es) * 2013-05-02 2018-10-26 Huawei Technologies Co., Ltd. Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
CN105518621B (zh) 2013-07-31 2019-09-17 马维尔国际贸易有限公司 将引导操作并行化的方法
US10275164B2 (en) * 2015-05-27 2019-04-30 Nutech Ventures Enforcing persistency for battery-backed mobile devices
EP3427435A1 (en) 2016-03-08 2019-01-16 Marvell World Trade Ltd. Methods and apparatus for secure device authentication
DE102016211768A1 (de) * 2016-06-29 2018-01-04 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung und Betriebsverfahren hierfür
FR3057969B1 (fr) * 2016-10-25 2019-11-01 Thales Systeme de pilotage deterministe du fonctionnement de moyens de transfert de donnees par acces direct a des moyens de memorisation
KR102447465B1 (ko) 2017-09-08 2022-09-27 삼성전자주식회사 호스트로부터의 읽기 요청에 대한 짧은 읽기 응답 시간을 제공하기 위해 내부 동작을 일시적으로 중단하는 스토리지 장치
KR20190090614A (ko) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN109189701B (zh) * 2018-08-20 2020-12-29 深圳忆联信息系统有限公司 一种针对嵌入式存储接口数据传输的方法及其系统
KR102382186B1 (ko) * 2018-10-10 2022-04-05 삼성전자주식회사 딥 러닝을 위한 고성능 컴퓨팅 시스템
KR102162151B1 (ko) 2018-11-20 2020-10-08 서문석 배기열 및 이중 송풍기를 이용한 발효장치
EP3938882A4 (en) * 2019-03-12 2022-12-07 Intel Corporation COMPUTE DATA STORAGE SYSTEMS
FR3094507A1 (fr) * 2019-03-29 2020-10-02 Stmicroelectronics (Grenoble 2) Sas Accès direct en mémoire
US20200266995A1 (en) * 2020-05-04 2020-08-20 Vinodh Gopal Managing state in accelerators
US20230359553A1 (en) * 2020-10-23 2023-11-09 Hewlett-Packard Development Company, L.P. Access to volatile memories
CN112506827A (zh) * 2020-11-12 2021-03-16 山东云海国创云计算装备产业创新中心有限公司 一种基于adma控制器的数据传输方法、装置及设备
CN116932451A (zh) * 2022-03-31 2023-10-24 华为技术有限公司 一种数据处理方法、主机及相关设备
US20230350820A1 (en) * 2022-04-28 2023-11-02 Infineon Technologies Ag Systems and methods for concurrent logging and event capture

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62119657A (ja) * 1985-11-20 1987-05-30 Fujitsu Ltd Dmaチエイン制御方式
JPS62157934A (ja) * 1985-12-28 1987-07-13 Casio Comput Co Ltd メモリ・アドレス方式
US5241508A (en) * 1991-04-03 1993-08-31 Peripheral Land, Inc. Nonvolatile ramdisk memory
JPH07225727A (ja) * 1994-02-14 1995-08-22 Fujitsu Ltd 計算機システム
US5713044A (en) * 1995-12-19 1998-01-27 Intel Corporation System for creating new group of chain descriptors by updating link value of last descriptor of group and rereading link value of the updating descriptor
WO1997034228A1 (fr) * 1996-03-13 1997-09-18 Hitachi, Ltd. Unite de traitement d'informations comportant une fonction permettant de supprimer les effractions, unite de commande de memoire et procede de traitement d'acces direct en memoire
US6012107A (en) * 1997-05-22 2000-01-04 Adaptec, Inc. Hardware control block delivery queues for host adapters and other devices with onboard processors
US6493811B1 (en) * 1998-01-26 2002-12-10 Computer Associated Think, Inc. Intelligent controller accessed through addressable virtual space
US6338119B1 (en) * 1999-03-31 2002-01-08 International Business Machines Corporation Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance
JP3824122B2 (ja) * 1999-04-12 2006-09-20 株式会社リコー Dma装置
US6757291B1 (en) * 2000-02-10 2004-06-29 Simpletech, Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
JP2001290661A (ja) * 2000-04-04 2001-10-19 Matsushita Commun Ind Co Ltd オペレーティングシステム制御装置及び制御方法並びにオペレーティングシステム制御プログラムを記録した記録媒体
US6889340B1 (en) * 2000-10-13 2005-05-03 Phoenix Technologies Ltd. Use of extra firmware flash ROM space as a diagnostic drive
US6745310B2 (en) * 2000-12-01 2004-06-01 Yan Chiew Chow Real time local and remote management of data files and directories and method of operating the same
JP2004005382A (ja) * 2002-03-29 2004-01-08 Fujitsu Ltd データ転送装置および方法
JP4317348B2 (ja) * 2002-05-15 2009-08-19 株式会社日立製作所 情報処理装置及び入出力方法並びにプログラム
US20040128416A1 (en) * 2002-12-11 2004-07-01 Tsvika Kurts Apparatus and method for address bus power control
US7111182B2 (en) * 2003-08-29 2006-09-19 Texas Instruments Incorporated Thread scheduling mechanisms for processor resource power management
DE102004004796B4 (de) 2004-01-30 2007-11-29 Infineon Technologies Ag Vorrichtung zur Datenübertragung zwischen Speichern
US7484016B2 (en) 2004-06-30 2009-01-27 Intel Corporation Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine

Also Published As

Publication number Publication date
US20060004946A1 (en) 2006-01-05
JP2008502084A (ja) 2008-01-24
CN1961300A (zh) 2007-05-09
US7484016B2 (en) 2009-01-27
US7769918B2 (en) 2010-08-03
WO2006012196A3 (en) 2006-05-04
TW200617684A (en) 2006-06-01
TWI278755B (en) 2007-04-11
CN100592271C (zh) 2010-02-24
DE112005001512B4 (de) 2012-09-27
KR20070024670A (ko) 2007-03-02
DE112005001512T5 (de) 2007-05-10
WO2006012196A2 (en) 2006-02-02
US20090138627A1 (en) 2009-05-28
KR100909119B1 (ko) 2009-07-23

Similar Documents

Publication Publication Date Title
JP4543086B2 (ja) 一体化したdmaエンジンを用いて、高性能に揮発性ディスクドライブメモリへのアクセスを行うための装置および方法
CN111177029B (zh) 用于管理软件定义的永久性存储器的系统及方法
US9256384B2 (en) Method and system for reducing write latency in a data storage system by using a command-push model
JP6329318B2 (ja) 情報処理装置
JP4928100B2 (ja) 改善されたデータ転送のためのコントローラ装置および方法
US10209922B2 (en) Communication via a memory interface
US20110219161A1 (en) System and method for providing address decode and virtual function (vf) migration support in a peripheral component interconnect express (pcie) multi-root input/output virtualization (iov) environment
JP2012508428A (ja) 単一のコマンドにより複数の非連続アドレス範囲の転送をキューイングするための方法及びシステム
US20140136738A1 (en) Emulated legacy bus operation over a bit-serial bus
JP5011584B2 (ja) ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート
US8677095B2 (en) System and method for optimal dynamic resource allocation in a storage system
US10866755B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
Marcus et al. The MPRACE framework: An open source stack for communication with custom FPGA-based accelerators
JP6703600B2 (ja) 計算機システム及びサーバ
US7600058B1 (en) Bypass method for efficient DMA disk I/O
US10437495B1 (en) Storage system with binding of host non-volatile memory to one or more storage devices
US20060277326A1 (en) Data transfer system and method
TW202240413A (zh) PCIe裝置及其操作方法
JP2009515254A (ja) 外部記憶装置をエンハンスするシステムおよび方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100126

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100303

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100326

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees