[go: up one dir, main page]

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

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

Info

Publication number
JP2008502084A
JP2008502084A JP2007527817A JP2007527817A JP2008502084A JP 2008502084 A JP2008502084 A JP 2008502084A JP 2007527817 A JP2007527817 A JP 2007527817A JP 2007527817 A JP2007527817 A JP 2007527817A JP 2008502084 A JP2008502084 A JP 2008502084A
Authority
JP
Japan
Prior art keywords
dma
memory
access request
vdd
data access
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.)
Granted
Application number
JP2007527817A
Other languages
English (en)
Other versions
JP4543086B2 (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
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)

Abstract

【課題】一体化したDMAエンジンを用いて、高性能に揮発性ディスクドライブメモリアクセスを行うための装置および方法を提供する。
【解決手段】一体化したDMA(ダイレクト・メモリ・アクセス)エンジンを用いて、高性能に揮発性ディスクドライブ(VDD)メモリへのアクセスを行うための装置および方法が開示されている。一実施形態によると、そのような方法は揮発性システムメモリ内に実現されたVDDメモリに対するデータアクセス要求を検出することを含む。データアクセス要求が検出されると、VDDドライバは、VDDに対するデータアクセス要求を実行するべく、DMAデータ要求を発行するとしてもよい。従って一実施形態によると、揮発性システムメモリの割り当てられた一部分内に実現されたVDDメモリとの間でのデータ転送を担当するのはDMAエンジンに移される。DMAエンジンの例を挙げると、メモリコントローラハブ(MCH)に一体化したDMAエンジンなどがある。これ以外の実施形態も開示および請求される。
【選択図】なし

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 2008502084
図3に示すように、メモリマップドDMAレジスタ270には、上記の表1に説明されるチャネル制御レジスタ(CCR)272が含まれる。一実施形態によると、CCR272はDMAチャネルの総合的な動作環境を示している。一実施形態によると、デバイスドライバは、システムメモリのチェーンディスクリプタを初期化して、メモリ中の最初のDMAチェーンディスクリプタの記憶位置によってネクストアドレスレジスタ282(282−1、282−2)を更新した後に、CCR207を初期化する。一実施形態によると、CCR272は、DMAチャネル動作を変更するべく(例えば、停止、一時停止など)DMAチャネルがアクティブである場合に書き込まれるとしてもよい。
Figure 2008502084
一実施形態によると、チャネルステータスレジスタ(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 (30)

  1. 方法であって、
    揮発性システムメモリ内に実現された揮発性ディスクドライブ(VDD)メモリに対するデータアクセス要求を検出することと、
    前記VDDメモリに対して前記データアクセス要求を実行するべく、DMA(ダイレクト・メモリ・アクセス)データ要求を発行することと
    を含む方法。
  2. 前記方法はさらに、前記データアクセス要求を検出する前に、
    プロセスによって、前記VDDメモリ内に格納されたファイルに対する読み出し/書き込みアクセスを要求することと、
    オペレーティングシステム(OS)によって、前記プロセスによる前記VDDメモリ内に格納された前記ファイルに対する前記読み出し/書き込みアクセス要求を検出することと、
    前記読み出し/書き込みアクセス要求をVDDドライバに渡すことと
    を含む請求項1に記載の方法。
  3. 前記方法はさらに、前記データアクセス要求を検出する前に、
    前記揮発性システムメモリの一部分を保護することと、
    初期化中に、システムメモリの前記保護部分を前記VDDメモリとして動作するように割り当てることと
    を含む請求項1に記載の方法。
  4. 前記データアクセス要求を検出することは、
    オペレーティングシステムから、プロセスによって発行された、前記VDDメモリ内に格納されたファイルに対する読み出し/書き込みアクセス要求を受け取ること
    を含む請求項1に記載の方法。
  5. 前記DMAデータ要求を発行することは、
    前記データアクセス要求に従って少なくとも1つのDMAチェーンディスクリプタをポピュレートすることと、
    前記VDDメモリ内に格納されたファイルに対する前記データアクセス要求を実行するべくDMAスタートコマンドを発行することと
    を含む請求項1に記載の方法。
  6. 前記少なくとも1つのDMAチェーンディスクリプタをポピュレートすることは、
    前記データアクセス要求の対象である前記VDDメモリ内のファイルを特定することと、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算することと、
    前記VDDメモリ内に格納された前記ファイル内の前記データアクセス要求のオフセットに基づいて、DMAソースアドレスを演算することと、
    前記データアクセス要求に基づいてDMAデスティネーションアドレスを演算することと
    を含む請求項5に記載の方法。
  7. 前記DMAスタートコマンドを発行することは、
    ローカルシステムメモリ内の前記少なくとも1つのDMAチェーンディスクリプタのアドレスでDMAエンジンのネクストアドレスレジスタを更新することと、
    前記VDDメモリ内に格納された前記ファイルに対する前記データアクセス要求を前記DMAエンジンに実行させるべく前記DMAエンジンのスタートDMAビットを設定することと
    を含む請求項5に記載の方法。
  8. DMAエンジンによって、ネクストディスクリプタアドレスレジスタ内に含まれるアドレスにあるDMAチェーンディスクリプタを取り出すことと、
    前記データアクセス要求に従って前記VDDメモリ内に格納されたファイルにDMAデータを転送するべく、前記取り出されたDMAチェーンディスクリプタに従ってDMA転送を実行することと、
    前記DMA転送が完了すると、仮想ディスクドライブドライバに対して割り込みを発行することと
    をさらに含む請求項1に記載の方法。
  9. DMAエンジンが前記データアクセス要求のDMA転送を完了すると、前記DMAエンジンから割り込みを受け取ることと、
    前記データアクセス要求を発行したアプリケーションに、前記ファイル動作が完了したことを通知することと
    をさらに含む請求項1に記載の方法。
  10. 前記VDDメモリのサイズは4ギガバイトより大きい
    請求項1に記載の方法。
  11. 複数の命令を格納している機械可読媒体を備える製品であって、当該命令はシステムをプログラミングしてある方法を実行させるために利用され、当該方法は、
    揮発性システムメモリ内に実現された揮発性ディスクドライブ(VDD)メモリに対するデータアクセス要求を検出することと、
    前記VDDメモリに対して前記データアクセス要求を実行するべく、DMA(ダイレクト・メモリ・アクセス)データ要求を発行することとを含む
    製品。
  12. 前記DMAデータ要求を発行することは、
    前記データアクセス要求に従って少なくとも1つのDMAチェーンディスクリプタをポピュレートすることと、
    前記VDDメモリ内に格納されたファイルに対する前記データアクセス要求を実行するべくDMAスタートコマンドを発行することとを含む
    請求項11に記載の製品。
  13. 前記少なくとも1つのDMAチェーンディスクリプタをポピュレートすることは、
    前記データアクセス要求の対象である前記VDDメモリ内のファイルを特定することと、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算することと、
    前記VDDメモリ内に格納された前記ファイル内の前記データアクセス要求のオフセットに基づいて、DMAソースアドレスを演算することと、
    前記データアクセス要求に基づいてDMAデスティネーションアドレスを演算することとを含む
    請求項12に記載の製品。
  14. 前記DMAスタートコマンドを発行することは、
    ローカルシステムメモリ内の前記少なくとも1つのDMAチェーンディスクリプタのアドレスでDMAエンジンのネクストアドレスレジスタを更新することと、
    前記VDDメモリ内に格納された前記ファイルに対する前記データアクセス要求を前記DMAエンジンに実行させるべく前記DMAエンジンのスタートDMAビットを設定することとを含む
    請求項12に記載の製品。
  15. DMAエンジンが前記データアクセス要求のDMA転送を完了すると、前記DMAエンジンから割り込みを受け取ることと、
    前記データアクセス要求を発行したアプリケーションに、前記ファイル動作が完了したことを通知することとをさらに含む
    請求項11に記載の製品。
  16. 方法であって、
    揮発性システムメモリ内に実現された揮発性ディスクドライバ(VDD)メモリ内に格納されたファイルに対するプロセスの読み出し/書き込みアクセス要求を、オペレーティングシステム(OS)によって、検出することと、
    前記読み出し/書き込みアクセス要求をVDDドライバに渡すことと、
    前記VDDメモリ内に格納された前記ファイルに対して前記読み出し/書き込みアクセス要求を実行するべく、前記VDDドライバによって、DMA(ダイレクト・メモリ・アクセス)データ要求を発行することと
    を含む方法。
  17. 前記DMAデータ要求を発行することは、
    前記読み出し/書き込みアクセス要求に従って少なくとも1つのDMAチェーンディスクリプタをポピュレートすることと、
    前記VDDメモリ内に格納された前記ファイルに対する前記読み出し/書き込みアクセス要求を実行するべくDMAスタートコマンドを発行することと
    を含む請求項16に記載の方法。
  18. 前記少なくとも1つのDMAチェーンディスクリプタをポピュレートすることは、
    前記データアクセス要求の対象である前記仮想ディスクドライブ内の前記ファイルを特定することと、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算することと、
    前記VDDメモリ内に格納された前記ファイル内での前記読み出し/書き込みアクセス要求のオフセットに基づいて、DMAソースアドレスを演算することと、
    前記読み出し/書き込みアクセス要求に基づいてDMAデスティネーションアドレスを演算することと
    を含む請求項17に記載の方法。
  19. 前記少なくとも1つのDMAチェーンディスクリプタをポピュレートすることは、
    前記データアクセス要求の対象である前記VDDメモリ内のファイルを特定することと、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算することと
    を含む請求項17に記載の方法。
  20. DMAエンジンによって、ネクストディスクリプタアドレスレジスタ内に含まれるアドレスにあるDMAチェーンディスクリプタを取り出すことと、
    前記読み出し/書き込みアクセス要求に従って前記VDDメモリ内に格納された前記ファイルからDMAデータを転送するべく、前記取り出されたDMAチェーンディスクリプタに従ってDMA転送を実行することと、
    前記DMA転送が完了すると、前記仮想ディスクドライブドライバに対して割り込みを発行することと
    をさらに含む請求項16に記載の方法。
  21. 複数の命令を格納している機械可読媒体を備える製品であって、当該命令はシステムをプログラミングしてある方法を実行させるために利用され、当該方法は、
    揮発性システムメモリ内に実現された揮発性ディスクドライバ(VDD)メモリ内に格納されたファイルに対するプロセスの読み出し/書き込みアクセス要求を、オペレーティングシステム(OS)によって、検出することと、
    前記読み出し/書き込みアクセス要求をVDDドライバに渡すことと、
    前記VDDメモリ内に格納された前記ファイルに対して前記読み出し/書き込みアクセス要求を実行するべく、前記VDDドライバによって、DMA(ダイレクト・メモリ・アクセス)データ要求を発行することとを含む
    製品。
  22. 前記DMAデータ要求を発行することは、
    前記読み出し/書き込みアクセス要求に従って少なくとも1つのDMAチェーンディスクリプタをポピュレートすることと、
    前記VDDメモリ内に格納された前記ファイルに対する前記読み出し/書き込みアクセス要求を実行するべくDMAスタートコマンドを発行することとを含む
    請求項21に記載の製品。
  23. 前記少なくとも1つのDMAチェーンディスクリプタをポピュレートすることは、
    前記データアクセス要求の対象である前記仮想ディスクドライブ内の前記ファイルを特定することと、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算することと、
    前記VDDメモリ内に格納された前記ファイル内での前記読み出し/書き込みアクセス要求のオフセットに基づいて、DMAソースアドレスを演算することと、
    前記読み出し/書き込みアクセス要求に基づいてDMAデスティネーションアドレスを演算することとを含む
    請求項22に記載の製品。
  24. 前記少なくとも1つのDMAチェーンディスクリプタをポピュレートすることは、
    前記データアクセス要求の対象である前記VDDメモリ内のファイルを特定することと、
    前記揮発性システムメモリ内での前記ファイルの物理スタートアドレスを計算することとを含む
    請求項22に記載の製品。
  25. DMAエンジンによって、ネクストディスクリプタアドレスレジスタ内に含まれるアドレスにあるDMAチェーンディスクリプタを取り出すことと、
    前記読み出し/書き込みアクセス要求に従って前記VDDメモリ内に格納された前記ファイルからDMAデータを転送するべく、前記取り出されたDMAチェーンディスクリプタに従ってDMA転送を実行することと、
    前記DMA転送が完了すると、前記仮想ディスクドライブドライバに対して割り込みを発行することとをさらに含む
    請求項21に記載の製品。
  26. システムであって、
    揮発性ディスクドライブ(VDD)メモリを実現するべく割り当てられた一部分を有する揮発性システムメモリと、
    前記揮発性システムメモリに接続されたチップセットであって、前記揮発性システムメモリに対するDMA(ダイレクト・メモリ・アクセス)転送を実行するためのDMAエンジンを有するチップセットと、
    前記チップセットに接続された不揮発性システムメモリであって、前記仮想ディスクドライブに対するデータアクセス要求を検出し、前記DMAエンジンに前記VDDメモリに対する前記データアクセス要求を実行させるべく、前記チップセットにDMA要求を発行するためのVDDドライバを有する不揮発性システムメモリと
    を備えるシステム。
  27. 前記チップセットはさらに、一体化DMAエンジンを含むメモリコントローラハブを有する
    請求項26に記載のシステム。
  28. 前記チップセットはさらに、入出力コントローラハブを有する
    請求項26に記載のシステム。
  29. 前記チップセットはさらにDMAコントローラを有し、当該DMAコントローラは、前記VDDメモリに対する前記データアクセス要求を実行するために前記VDDドライバによってプログラミングされたDMAチェーンディスクリプタの物理アドレスを格納するためのネクストディスクリプタアドレスレジスタを少なくとも含む
    請求項26に記載のシステム。
  30. 前記DMAコントローラはさらにチャネル制御レジスタを有し、当該チャネル制御レジスタは、前記DMAエンジンに前記DMAチェーンディスクリプタを読み込ませて、前記VDDメモリに対する前記データアクセス要求を実行させるためのDMAスタートビットを含む
    請求項29に記載のシステム。
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 true JP2008502084A (ja) 2008-01-24
JP4543086B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071054A (ja) * 2006-09-13 2008-03-27 Ricoh Co Ltd データ転送制御方法、データ処理装置及び画像処理装置
JP2015519665A (ja) * 2013-05-02 2015-07-09 ▲ホア▼▲ウェイ▼技術有限公司 ペリフェラル・コンポーネント・インターコネクト・エクスプレス・エンドポイントデバイスにアクセスするためのコンピュータシステム、方法、および装置

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
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
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
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
KR101595043B1 (ko) 2008-09-18 2016-02-17 마벨 월드 트레이드 리미티드 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법
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 삼성전자주식회사 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법
EP2662775B1 (en) * 2011-01-05 2021-03-31 Freebit Co., Ltd. Memory card device
US8855194B2 (en) * 2011-05-09 2014-10-07 Texas Instruments Incorporated Updating non-shadow registers in video encoder
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
US8793462B2 (en) 2011-05-24 2014-07-29 International Business Machines Corporation Implementing storage adapter performance optimization with enhanced resource pool allocation
US8516164B2 (en) * 2011-05-24 2013-08-20 International Business Machines Corporation Implementing storage adapter performance optimization with enhanced hardware and software interface
US8868828B2 (en) 2011-05-24 2014-10-21 International Business Machines Corporation Implementing storage adapter performance optimization with cache data/directory mirroring
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
US8495259B2 (en) * 2011-05-24 2013-07-23 International Business Machines Corporation Implementing storage adapter performance optimization with hardware chains to select performance path
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
CN104040510B (zh) * 2011-12-21 2017-05-17 英特尔公司 具备安全的直接存储器访问的计算设备及相应方法
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
US9213616B2 (en) * 2013-01-24 2015-12-15 Xcerra Corporation Automated test platform utilizing status register polling with temporal ID
US9430348B2 (en) * 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
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
US9430349B2 (en) * 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
US9336108B2 (en) 2013-01-24 2016-05-10 Xcerra Corporation Scalable test platform
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
EP3028145A1 (en) 2013-07-31 2016-06-08 Marvell World Trade Ltd. Parallelizing boot operations
US10275164B2 (en) * 2015-05-27 2019-04-30 Nutech Ventures Enforcing persistency for battery-backed mobile devices
WO2017168228A1 (en) 2016-03-08 2017-10-05 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 Computational data storage systems
FR3094507A1 (fr) * 2019-03-29 2020-10-02 Stmicroelectronics (Grenoble 2) Sas Accès direct en mémoire
US12052370B2 (en) * 2020-05-04 2024-07-30 Intel Corporation Managing state in accelerators
WO2022086559A1 (en) * 2020-10-23 2022-04-28 Hewlett-Packard Development Company, L.P. Access to volatile memories
CN112506827A (zh) * 2020-11-12 2021-03-16 山东云海国创云计算装备产业创新中心有限公司 一种基于adma控制器的数据传输方法、装置及设备
US12260127B2 (en) 2020-12-23 2025-03-25 Intel Corporation Technologies for storage and processing for distributed file systems
CN116932451A (zh) * 2022-03-31 2023-10-24 华为技术有限公司 一种数据处理方法、主机及相关设备
US12072818B2 (en) * 2022-04-28 2024-08-27 Infineon Technologies Ag Systems and methods for concurrent logging and event capture
CN115756612A (zh) * 2022-11-24 2023-03-07 上海壁仞智能科技有限公司 计算装置、操作方法和机器可读存储介质

Citations (8)

* 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 メモリ・アドレス方式
JPH07225727A (ja) * 1994-02-14 1995-08-22 Fujitsu Ltd 計算機システム
JP2000298640A (ja) * 1999-04-12 2000-10-24 Ricoh Co Ltd Dma装置
JP2000305842A (ja) * 1999-03-31 2000-11-02 Internatl Business Mach Corp <Ibm> ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置
JP2001290661A (ja) * 2000-04-04 2001-10-19 Matsushita Commun Ind Co Ltd オペレーティングシステム制御装置及び制御方法並びにオペレーティングシステム制御プログラムを記録した記録媒体
JP2003330873A (ja) * 2002-05-15 2003-11-21 Hitachi Ltd 情報処理装置及び入出力方法並びにプログラム
WO2004053706A2 (en) * 2002-12-11 2004-06-24 Intel Corporation An apparatus and method for address bus power control

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241508A (en) * 1991-04-03 1993-08-31 Peripheral Land, Inc. Nonvolatile ramdisk memory
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
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
US6889340B1 (en) * 2000-10-13 2005-05-03 Phoenix Technologies Ltd. Use of extra firmware flash ROM space as a diagnostic drive
US20020069317A1 (en) * 2000-12-01 2002-06-06 Chow Yan Chiew E-RAID system and method of operating the same
CN1378148A (zh) * 2001-03-30 2002-11-06 深圳市中兴集成电路设计有限责任公司 一种直接存储器访问控制器及其控制方法
JP2004005382A (ja) * 2002-03-29 2004-01-08 Fujitsu Ltd データ転送装置および方法
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

Patent Citations (9)

* 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 メモリ・アドレス方式
JPH07225727A (ja) * 1994-02-14 1995-08-22 Fujitsu Ltd 計算機システム
JP2000305842A (ja) * 1999-03-31 2000-11-02 Internatl Business Mach Corp <Ibm> ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置
JP2000298640A (ja) * 1999-04-12 2000-10-24 Ricoh Co Ltd Dma装置
JP2001290661A (ja) * 2000-04-04 2001-10-19 Matsushita Commun Ind Co Ltd オペレーティングシステム制御装置及び制御方法並びにオペレーティングシステム制御プログラムを記録した記録媒体
JP2003330873A (ja) * 2002-05-15 2003-11-21 Hitachi Ltd 情報処理装置及び入出力方法並びにプログラム
WO2004053706A2 (en) * 2002-12-11 2004-06-24 Intel Corporation An apparatus and method for address bus power control
JP2006511897A (ja) * 2002-12-11 2006-04-06 インテル コーポレイション アドレスバス出力制御用の装置及び方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071054A (ja) * 2006-09-13 2008-03-27 Ricoh Co Ltd データ転送制御方法、データ処理装置及び画像処理装置
JP2015519665A (ja) * 2013-05-02 2015-07-09 ▲ホア▼▲ウェイ▼技術有限公司 ペリフェラル・コンポーネント・インターコネクト・エクスプレス・エンドポイントデバイスにアクセスするためのコンピュータシステム、方法、および装置
US9477632B2 (en) 2013-05-02 2016-10-25 Huawei Technologies Co., Ltd. Access proxy for accessing peripheral component interconnect express endpoint device, PCIe exchanger and computer system
US10025745B2 (en) 2013-05-02 2018-07-17 Huawei Technologies Co., Ltd. Computer system, method for accessing peripheral component interconnect express endpoint device, and apparatus

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4543086B2 (ja) 一体化したdmaエンジンを用いて、高性能に揮発性ディスクドライブメモリへのアクセスを行うための装置および方法
JP6329318B2 (ja) 情報処理装置
EP2763047A2 (en) Method and system for reducing write latency in a data storage system by using a command-push model
JP2012508428A (ja) 単一のコマンドにより複数の非連続アドレス範囲の転送をキューイングするための方法及びシステム
JP6703600B2 (ja) 計算機システム及びサーバ
TW200406680A (en) Method, system, and program for handling input/output commands
JP5011584B2 (ja) ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート
TW202240413A (zh) PCIe裝置及其操作方法
US8677095B2 (en) System and method for optimal dynamic resource allocation in a storage system
US20120221809A1 (en) Storage apparatus and data processing method of the same
CN115454902A (zh) 一种基于pcie接口的nvme通信系统及方法
US10866755B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
US7600058B1 (en) Bypass method for efficient DMA disk I/O
JP4972212B2 (ja) ブリッジ回路
US10437495B1 (en) Storage system with binding of host non-volatile memory to one or more storage devices
CN102945214B (zh) 基于io延迟时间分布优化中断处理任务的方法
Marcus et al. The MPRACE framework: An open source stack for communication with custom FPGA-based accelerators
JP2018113075A (ja) 情報処理装置
US20060277326A1 (en) Data transfer system and method
GB2367918A (en) Batch methods for accessing IDE task registers
CN121434117A (zh) NVMe SSD以及包括NVMe SSD的存储系统
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 Request for written amendment filed

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