JP2006209448A - ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム - Google Patents

ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム Download PDF

Info

Publication number
JP2006209448A
JP2006209448A JP2005020383A JP2005020383A JP2006209448A JP 2006209448 A JP2006209448 A JP 2006209448A JP 2005020383 A JP2005020383 A JP 2005020383A JP 2005020383 A JP2005020383 A JP 2005020383A JP 2006209448 A JP2006209448 A JP 2006209448A
Authority
JP
Japan
Prior art keywords
information
data
memory access
direct memory
memory
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
JP2005020383A
Other languages
English (en)
Other versions
JP4563829B2 (ja
Inventor
Mitsumasa Haneda
光正 羽根田
Yuichi Ogawa
裕一 小川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005020383A priority Critical patent/JP4563829B2/ja
Priority to KR1020050038572A priority patent/KR100708266B1/ko
Priority to CNB2005100720592A priority patent/CN100388254C/zh
Priority to US11/237,666 priority patent/US7640375B2/en
Publication of JP2006209448A publication Critical patent/JP2006209448A/ja
Application granted granted Critical
Publication of JP4563829B2 publication Critical patent/JP4563829B2/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

Abstract

【課題】 情報処理システムにおいて、ダイレクトメモリアクセス(DMA)によるデータ転送の効率を向上させる。
【解決手段】 CPU11の制御プログラム12aは、データ32およびデータ32のDMA処理の制御に必要なディスクリプタ31をまとめて情報ブロック30としてメモリ12上に設定して(ステップ201)、DMAコントローラ13を起動する(ステップ202)。起動されたDMAコントローラ13は、メモリ12から情報ブロック30を読み出してディスクリプタ31を抽出し(ステップ204)、ディスクリプタ31を解析して、I/Oアドレス31a、転送データサイズ31b等の制御情報を認識し、目的のI/Oデバイス20にデータ32を転送する(ステップ205)。転送完了後、割り込みにて、CPU11に転送終了通知を行う(ステップ206)。
【選択図】図1

Description

本発明は、ダイレクトメモリアクセス制御技術、情報処理技術、プログラムに関し、特に、高速データ転送を必要とする情報処理システムにおけるダイレクトメモリアクセス(DMA:Direct Memory Access)技術等に適用して有効な技術に関する。
コンピュータシステムにおいて、メモリとメモリの間、またはメモリと入出力デバイス(I/Oデバイス)の間のデータ転送を効率よく行うことは、コンピュータシステムの性能を高めるために重要な課題であるが、この課題を解決するための方法としてDMAが知られている(例えば、特許文献1参照)。
I/Oデバイスは、メモリに対してデータを転送したり、メモリから転送されたデータを受け取る装置であり、記憶装置やインタフェース装置がこれに含まれる。また、DMAは、中央処理装置(CPU)がコンピュータシステム内のデータ転送を制御する代わりに、DMA制御回路と呼ばれる専用のハードウェアがCPUからの命令に基づいてデータ転送を制御する仕組みである。
この場合、CPU、メモリおよびDMA制御回路は、たとえばメモリハブを介して相互に接続され、CPU、メモリおよびDMA制御回路は、このメモリハブを介してデータの授受を行うことが考えられる。
CPUからDMA制御回路に発行される命令はディスクリプタと呼ばれ、CPUがディスクリプタをメモリ上に用意した後に、DMA制御回路がメモリからディスクリプタを自律的に読み出して参照する方法が広く用いられている。
すなわち、従来では、CPU配下のローカルのメモリにDMAで転送されるデータとは別にDMAの制御情報(転送元のアドレス、転送先のアドレス、転送サイズ等)が入っているディスクリプタが展開される。
そして、CPUによってDMAが起動されると、DMA制御回路は、先ずこのディスクリプタをリードして制御情報を解析し、転送元のアドレス(ローカルのメモリ)で特定されるデータを、ディスクリプタ指定のデータサイズ分、I/Oデバイスに転送する。
上述した動作シーケンスから分かるように、CPUは、ディスクリプタを用意してDMA制御回路を起動すると、割り込みによってDMAの終了通知が行われるまでのデータ転送が行われている間は、別の処理を行うことができる。これにより、CPUはデータ転送という比較的単純な処理から解放されて、より複雑な処理に時間を割くことができるので、システムの性能が向上する。
ところが、上述のように、ディスクリプタとデータを別々にメモリ上に用意する従来のDMA制御技術には、次のような技術的課題がある。
すなわち、上述の従来技術の場合、DMA制御回路がディスクリプタを読み出すための「ディスクリプタ・フェッチ」と、DMA転送対象のデータを読み出すための「データ・フェッチ」で2回のメモリリードが発生することになるが、どの様なインタフェースでも一般的にDMAで行うような長いデータ転送のリードをメモリハブを経由して行う場合はメモリハブでデータのプリフェッチを行う事等からデータ転送に伴うオーバヘッドが大きくなる。
なお、上述の特許文献1には、DMA処理装置の各機能を命令語に対応付け、DMA処理装置のプログラム格納領域に命令語より成る転送処理手続を外部から入力するようにし、入力された命令語に対応する機能に従って転送処理を行うようにすることで、DMA処理装置の機能をプログラムにて変更可能にする技術が開示されているが、上述の技術的課題については認識されていない。
特開平05−216808号公報
本発明の目的は、情報処理システムにおいて、DMAによるデータの転送効率を向上させることにある。
本発明の第1の観点は、処理装置からダイレクトメモリアクセス制御装置に与えられた制御情報に従って前記ダイレクトメモリアクセス制御装置がメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御方法であって、
前記処理装置が、前記制御情報および前記データからなる情報ブロックを前記メモリ上に設定するステップと、
前記処理装置から前記ダイレクトメモリアクセス制御装置に対して前記情報ブロックのアドレス情報を与えるステップと、
前記ダイレクトメモリアクセス制御装置が、前記アドレス情報に基づいて前記メモリから前記情報ブロックを読み出して前記制御情報を抽出するステップと、
前記ダイレクトメモリアクセス制御装置が、前記制御情報に基づいて前記情報ブロック内の前記データを前記入出力デバイスに転送するステップと、
を含むダイレクトメモリアクセス制御方法を提供する。
本発明の第2の観点は、第1の観点記載のダイレクトメモリアクセス制御方法において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むダイレクトメモリアクセス制御方法を提供する。
本発明の第3の観点は、処理装置から与えられた制御情報に従ってメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御装置であって、
前記制御情報および前記データを含む情報ブロックの前記メモリ上におけるアドレス情報が前記処理装置から設定されるアドレス設定手段と、
前記メモリから読み出され、前記制御情報を含む前記情報ブロックの一部が格納されるバッファと、
前記バッファ上の前記情報ブロックから前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データの前記入出力デバイスへの転送を実行するデータ転送制御手段と、
を含むダイレクトメモリアクセス制御装置を提供する。
本発明の第4の観点は、処理装置と、メモリと、前記処理装置から与えられる制御情報に基づいて、前記メモリ上のデータを入出力デバイスに転送するダイレクトメモリアクセス制御装置と、を含む情報処理システムであって、
前記処理装置は、前記制御情報および前記データを含む情報ブロックを前記メモリ上に設定する操作と、前記情報ブロックのアドレス情報を前記ダイレクトメモリアクセス制御装置に伝達する操作とを実行するための制御論理を含み、
前記ダイレクトメモリアクセス制御装置は、前記処理装置から伝達される前記アドレス情報に基づいて前記情報ブロックを前記メモリから読み出し、前記情報ブロックに含まれる前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データを前記入出力デバイスに転送するデータ転送制御手段を備えた
情報処理システムを提供する。
本発明の第5の観点は、メモリから入出力デバイスへのデータの転送処理が発生したとき、前記転送処理をダイレクトメモリアクセス制御装置に実行させる処理装置を制御するプログラムであって、
前記転送処理に必要な制御情報と前記データとを含む情報ブロックを前記メモリ上に設定する操作と、
前記情報ブロックのアドレス情報を与えて前記ダイレクトメモリアクセス制御装置を起動する操作と、
を前記処理装置に実行させるプログラムを提供する。
上記した本発明によれば、ダイレクトメモリアクセス制御装置は、転送対象のデータおよび当該データのDMA転送処理に必要な制御情報を、情報ブロックとしてまとめて一回のメモリアクセスにてメモリから取得することができ、制御情報とデータとを別々にアクセスする従来技術の場合に比較して、メモリアクセスの所要時間を短縮することができる。この結果、情報処理システムにおいて、DMAによるデータの転送効率を向上させることができる。
本発明によれば、情報処理システムにおいて、DMAによるデータの転送効率を向上させることができる。
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図1は、本発明の一実施の形態である情報処理システムの作用の一例を示すシーケンス図、図2は、本発明の一実施の形態である情報処理システムにおけるDMAにて用いられる情報ブロックの構成の一例を示す概念図、図3は、本発明の一実施の形態である情報処理システムの構成の一例を示すブロック図、図4は、本実施の形態の情報処理システムに含まれるDMAコントローラの構成の一例を示す概念図、図5は、本実施の形態のDMAコントローラの作用の一例を示すフローチャート、図6は、本実施の形態の情報処理システムの全体の作用の一例を示すシーケンス図、図7は、本実施の形態の情報処理システムにおけるCPUの動作の一例を示すフローチャートである。
図3に例示されるように、本実施の形態の情報処理システム10は、CPU(中央処理装置)11、メモリ12、DMAコントローラ13、メモリハブ14を含んでいる。
DMAコントローラ13は、入出力インタフェース15を介してI/Oデバイス20に接続されている。
メモリ12には、CPU11にて実行されるプログラムやデータが格納され、このプログラムをCPU11が実行することで、所望の情報処理が行われる。
また、メモリ12とI/Oデバイス20との間におけるデータ転送が必要な場合、後述のように、CPU11がDMAコントローラ13を制御することで、当該CPU11の代わりにDMAコントローラ13が当該データ転送を処理する。
以下では、CPU11の代わりにDMAコントローラ13がメモリ12とI/Oデバイス20との間で行うデータ転送処理をDMA(ダイレクトメモリアクセス)と記す。
本実施の形態の場合、メモリ12には、CPU11がDMAコントローラ13を制御してDMAを実行させるための制御プログラム12a(制御論理)が格納されている。この制御プログラム12aは、図6や図7に例示される処理をCPU11に行わせる。
本実施の形態の場合、制御プログラム12aは、図2に例示されるように、転送対象のデータ32と、当該データ32のDMA転送制御に必要な制御情報であるディスクリプタ31とが一体となった情報ブロック30をメモリ12上に生成する機能を備えている。
そして、この情報ブロック30のメモリ12上における格納領域の先頭アドレス(以下、情報ブロックアドレス30aと記す)をDMAコントローラ13に与えて、DMAを行わせる。
図4に例示されるように、本実施の形態のDMAコントローラ13は、メモリインタフェース13a、I/Oインタフェース13b、ディスクリプタフェッチ回路13c、ディスクリプタバッファ13d、ステートマシン回路13e、データ転送制御ブロック13g、およびDMA開始制御レジスタ13f、DMAアドレスポインタレジスタ13k(アドレス設定手段)を備えている。
メモリインタフェース13aはメモリハブ14に接続されている。I/Oインタフェース13bは入出力インタフェース15を介してI/Oデバイス20に接続されている。
DMA開始制御レジスタ13fには、CPU11からDMA起動コマンドが設定される。
DMAアドレスポインタレジスタ13kには、CPU11によって、メモリ12上における情報ブロック30の格納位置を示す情報ブロックアドレス30aが設定される。
ステートマシン回路13eは、DMA開始制御レジスタ13fに設定されたコマンドにて起動されると、DMAアドレスポインタレジスタ13kに設定された情報ブロックアドレス30aにて特定されるメモリ12の領域から情報ブロック30を読み出すように、DMAコントローラ13の全体を制御する。
ディスクリプタフェッチ回路13cは、メモリハブ14およびメモリインタフェース13aを通じてメモリ12から読み出される情報ブロック30のうち、ディスクリプタ31を含む情報ブロック30の先頭部分をディスクリプタバッファ13dに格納する。
ステートマシン回路13eは、ディスクリプタバッファ13dに格納された情報ブロック30に含まれるディスクリプタ31を抽出して解析し、データ転送制御ブロック13gにデータ転送を指示し、データ転送制御ブロック13gは、ステートマシン回路13eからの指示を受けて、メモリインタフェース13a(メモリ12)とI/Oインタフェース13b(I/Oデバイス20)との間におけるデータ転送を行う。
データ転送制御ブロック13gは、メモリ転送制御回路13h、データバッファ13i、およびI/Oデバイス転送制御回路13jを備える。
メモリ転送制御回路13hは、ステートマシン回路13eから起動され、メモリインタフェース13aを通じてメモリ12とデータバッファ13iの間でデータ転送を行う。
I/Oデバイス転送制御回路13jは、ステートマシン回路13eから起動され、I/Oインタフェース13bを通じてデータバッファ13iとI/Oデバイス20との間でデータ転送を行う。
本実施の形態の場合、ディスクリプタフェッチ回路13cは、メモリハブ14およびメモリインタフェース13aを通じてメモリ12からデータバッファ13iに読み出される情報ブロック30のうち、ディスクリプタ31を含む情報ブロック30の先頭部分をディスクリプタバッファ13dに格納する。
すなわち、情報ブロック30をメモリインタフェース13aを介してメモリ12からデータバッファ13iに読み出す際に、ディスクリプタ31を含む情報ブロック30の先頭部分は並行してディスクリプタフェッチ回路13cに格納される。
以下、本実施の形態の作用の一例について説明する。
図1に例示されるように、メモリ12上のデータを外部のI/Oデバイス20にDMA転送する場合、制御プログラム12aにて制御されるCPU11は、ディスクリプタ31およびデータ32からなる情報ブロック30を生成してメモリ12上に格納する(ステップ201)。
そして、メモリ12上における情報ブロック30の格納領域の先頭アドレスである情報ブロックアドレス30aをDMAアドレスポインタレジスタ13kに設定するとともに、DMA開始制御レジスタ13fにライトコマンド(メモリ12からI/Oデバイス20へのデータ転送命令)を書き込むことで、DMAコントローラ13を起動する(ステップ202)。
この起動を受けたDMAコントローラ13は、DMAアドレスポインタレジスタ13kに設定された情報ブロックアドレス30aに基づいて、メモリ12をアクセスして情報ブロック30を読み出す(ステップ203)。
そして、読み出された情報ブロック30からディスクリプタ31を抽出して解析し(ステップ204)、データ32を、I/Oアドレス31aで特定される目的のI/Oデバイス20に対して転送する(ステップ205)。
このデータ転送に際して、転送データサイズ31bで特定されるサイズのデータ32の転送処理が完了すると、たとえば、CPU11に対する割り込み処理にて、DMAの終了通知を行う(ステップ206)。
この時の、DMAコントローラ13の動作をより詳細に例示したものが図5のフローチャートである。
すなわち、DMAコントローラ13は、DMA開始制御レジスタ13fを監視しつつ待機し(ステップ101)、CPU11からDMA開始制御レジスタ13fにライトコマンドが書き込まれると、DMAアドレスポインタレジスタ13kから情報ブロックアドレス30aを読み出して(ステップ102)、この情報ブロックアドレス30aに基づいて、メモリ12から情報ブロック30を読み出す(ステップ103)。
この時、情報ブロック30は、データバッファ13iに読み込まれるとともに、情報ブロック30の先頭部分のディスクリプタ31は、並行してディスクリプタフェッチ回路13cによってディスクリプタバッファ13dに読み込まれる。
そして、ステートマシン回路13eは、ディスクリプタバッファ13dのディスクリプタ31を解析して、I/Oアドレス31aおよび転送データサイズ31b(M)の情報を特定し(ステップ104)、このI/Oアドレス31aおよび転送データサイズ31bに基づいて、データバッファ13iからI/Oアドレス31aにて特定される目的のI/Oデバイス20に対してデータ32の転送を実行しつつ(ステップ105、ステップ106)、転送サイズをチェックする(ステップ107)。
そして、転送済みの累積データサイズNが転送データサイズ31bで指定されたデータサイズMと等しくなった時に、割り込み等の方法でCPU11に対して転送終了通知を行う(ステップ108)。
なお、I/Oデバイス20からメモリ12へのDMAの場合には、図6の下側に例示されるような処理が行われる。
すなわち、CPU11は、メモリ12上に情報ブロック30の格納領域を確保し(ステップ211)、情報ブロック30のディスクリプタ31に送信元のI/Oデバイス20を特定する送信元アドレスおよび転送データサイズ31bを設定し、さらにDMAアドレスポインタレジスタ13kに情報ブロックアドレス30aを設定した後、DMA開始制御レジスタ13fにリードコマンド(I/Oデバイス20からメモリ12へのデータ転送命令)を設定してDMAコントローラ13を起動する(ステップ212)。
このDMA開始制御レジスタ13fへのリードコマンドの設定を契機に、DMAコントローラ13は、メモリ12から情報ブロック30のディスクリプタ31を読み出して(ステップ213)、解析し(ステップ214)、I/Oデバイス20からデータバッファ13iに転送データを読み出して(ステップ215)、メモリ12のデータ32の領域に書き込む(ステップ216)。
そして、転送が終了すると、割り込みによりCPU11に転送終了を通知する(ステップ217)。
上述のような、メモリ12からI/Oデバイス20へのデータ転送(ライト転送)処理、およびI/Oデバイス20からメモリ12へのデータ転送(リード転送)処理におけるCPU11の動作を図7のフローチャートに示す。
まず、ライト転送(メモリ12からI/Oデバイス20へのデータ転送)か否かを判別し(ステップ200)、ライト転送の場合には、メモリ12上に情報ブロック30を格納する(ステップ201a)。そして、情報ブロック30の中のディスクリプタ31の転送データサイズ31bに転送バイト長さ(M)を設定し(ステップ201b)、さらにI/Oアドレス31aには、転送先のI/Oデバイス20を特定するI/Oアドレス31aを設定する(ステップ201c)。
その後、DMAアドレスポインタレジスタ13kに情報ブロックアドレス30aを設定し(ステップ202a)、DMA開始制御レジスタ13fにライトコマンドを設定することでDMAコントローラ13を起動した後(ステップ202b)、別の処理に移行する(ステップ220)。
また、上述のステップ200で、ライト転送ではない(リード転送)と判定された場合には、メモリ12上に情報ブロック30を格納領域を確保する(ステップ211a)。そして、情報ブロック30の格納領域におけるディスクリプタ31の領域に転送データサイズ31bに転送バイト長さ(M)を設定し(ステップ211b)、さらにI/Oアドレス31aの領域には、転送先のI/Oデバイス20を特定するI/Oアドレス31aを設定する(ステップ211c)。
その後、DMAアドレスポインタレジスタ13kに情報ブロックアドレス30aを設定し(ステップ212a)、DMA開始制御レジスタ13fにライトコマンドを設定することでDMAコントローラ13を起動した後(ステップ202b)、別の処理に移行する(ステップ220)。
上述の別の処理の間に割り込み等により、DMAコントローラ13の側からDMA終了の通知を受けることは上述のとおりである。
以上説明したように、本実施の形態によれば、情報ブロック30の中に、データ32および当該データ32のDMA処理の制御に必要なディスクリプタ31をまとめた状態でメモリ12に格納し、DMAコントローラ13の側からメモリ12への一回の読み出しアクセスにてこの情報ブロック30を読み出すので、ディスクリプタ31とデータ32とを別個にメモリ12から読み出す場合のオーバーヘッドの発生が回避され、メモリ12からI/Oデバイス20へのDMA処理を短時間に効率よく実行することが可能になる。
情報処理システム10のDMAコントローラ13には、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等の記憶装置およびインタフェース装置の他に、別のDMAコントローラもI/Oデバイス20として接続することができる。
また、情報処理システム10の一例としては、ストレージ装置が挙げられる。ストレージ装置は、ホストコンピュータのような複数のアクセス装置により共用される記憶装置と、アクセス装置と記憶装置の間のデータ転送を制御するストレージ制御装置からなる。この場合、記憶装置がI/Oデバイス20に対応し、ストレージ制御装置が情報処理システム10に対応する。本発明をストレージ装置に適用することで、ストレージ制御装置から記憶装置へのDMAによるデータ転送が効率化される。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
(付記1) 処理装置からダイレクトメモリアクセス制御装置に与えられた制御情報に従って前記ダイレクトメモリアクセス制御装置がメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御方法であって、
前記処理装置が、前記制御情報および前記データからなる情報ブロックを前記メモリ上に設定するステップと、
前記処理装置から前記ダイレクトメモリアクセス制御装置に対して前記情報ブロックのアドレス情報を与えるステップと、
前記ダイレクトメモリアクセス制御装置が、前記アドレス情報に基づいて前記メモリから前記情報ブロックを読み出して前記制御情報を抽出するステップと、
前記ダイレクトメモリアクセス制御装置が、前記制御情報に基づいて前記情報ブロック内の前記データを前記入出力デバイスに転送するステップと、
を含むことを特徴とするダイレクトメモリアクセス制御方法。
(付記2)
付記1記載のダイレクトメモリアクセス制御方法において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするダイレクトメモリアクセス制御方法。
(付記3)
付記1記載のダイレクトメモリアクセス制御方法において、前記処理装置および前記メモリおよび前記ダイレクトメモリアクセス制御装置は、メモリハブを介して相互に情報の授受を行うことを特徴とするダイレクトメモリアクセス制御方法。
(付記4)
処理装置から与えられた制御情報に従ってメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御装置であって、
前記制御情報および前記データを含む情報ブロックの前記メモリ上におけるアドレス情報が前記処理装置から設定されるアドレス設定手段と、
前記メモリから読み出され、前記制御情報を含む前記情報ブロックの一部が格納されるバッファと、
前記バッファ上の前記情報ブロックから前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データの前記入出力デバイスへの転送を実行するデータ転送制御手段と、
を含むことを特徴とするダイレクトメモリアクセス制御装置。
(付記5)
付記4記載のダイレクトメモリアクセス制御装置において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするダイレクトメモリアクセス制御装置。
(付記6)
付記4記載のダイレクトメモリアクセス制御装置において、前記ダイレクトメモリアクセス制御装置は、メモリハブを介して前記処理装置および前記メモリに接続されていることを特徴とするダイレクトメモリアクセス制御装置。
(付記7)
処理装置と、メモリと、前記処理装置から与えられる制御情報に基づいて、前記メモリ上のデータを入出力デバイスに転送するダイレクトメモリアクセス制御装置と、を含む情報処理システムであって、
前記処理装置は、前記制御情報および前記データを含む情報ブロックを前記メモリ上に設定する操作と、前記情報ブロックのアドレス情報を前記ダイレクトメモリアクセス制御装置に伝達する操作とを実行するための制御論理を含み、
前記ダイレクトメモリアクセス制御装置は、前記処理装置から伝達される前記アドレス情報に基づいて前記情報ブロックを前記メモリから読み出し、前記情報ブロックに含まれる前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データを前記入出力デバイスに転送するデータ転送制御手段を備えた
ことを特徴とする情報処理システム。
(付記8)
付記7記載の情報処理システムにおいて、
前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とする情報処理システム。
(付記9)
付記7記載の情報処理システムにおいて、
前記処理装置および前記メモリおよび前記ダイレクトメモリアクセス制御装置が接続されるメモリハブをさらに備え、前記処理装置および前記メモリおよび前記ダイレクトメモリアクセス制御装置は前記メモリハブを介して相互に情報の授受を行うことを特徴とする情報処理システム。
(付記10)
メモリから入出力デバイスへのデータの転送処理が発生したとき、前記転送処理をダイレクトメモリアクセス制御装置に実行させる処理装置を制御するプログラムであって、
前記転送処理に必要な制御情報と前記データとを含む情報ブロックを前記メモリ上に設定する操作と、
前記情報ブロックのアドレス情報を与えて前記ダイレクトメモリアクセス制御装置を起動する操作と、
を前記処理装置に実行させることを特徴とするプログラム。
(付記11)
付記10記載のプログラムにおいて、
前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするプログラム。
本発明の一実施の形態である情報処理システムの作用の一例を示すシーケンス図である。 本発明の一実施の形態である情報処理システムにおけるDMAにて用いられる情報ブロックの構成の一例を示す概念図である。 本発明の一実施の形態である情報処理システムの構成の一例を示すブロック図である。 本発明の一実施の形態である情報処理システムに含まれるDMAコントローラの構成の一例を示す概念図である。 本発明の一実施の形態であるDMAコントローラの作用の一例を示すフローチャートである。 本発明の一実施の形態である情報処理システムの全体の作用の一例を示すシーケンス図である。 本発明の一実施の形態である情報処理システムにおけるCPUの動作の一例を示すフローチャートである。
符号の説明
10 情報処理システム
11 CPU
12 メモリ
12a 制御プログラム
13 DMAコントローラ
13a メモリインタフェース
13b I/Oインタフェース
13c ディスクリプタフェッチ回路
13d ディスクリプタバッファ
13e ステートマシン回路
13f DMA開始制御レジスタ
13g データ転送制御ブロック
13h メモリ転送制御回路
13i データバッファ
13j I/Oデバイス転送制御回路
13k DMAアドレスポインタレジスタ
14 メモリハブ
15 入出力インタフェース
20 I/Oデバイス
30 情報ブロック
30a 情報ブロックアドレス
31 ディスクリプタ
31a I/Oアドレス
31b 転送データサイズ(M)
32 データ

Claims (5)

  1. 処理装置からダイレクトメモリアクセス制御装置に与えられた制御情報に従って前記ダイレクトメモリアクセス制御装置がメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御方法であって、
    前記処理装置が、前記制御情報および前記データからなる情報ブロックを前記メモリ上に設定するステップと、
    前記処理装置から前記ダイレクトメモリアクセス制御装置に対して前記情報ブロックのアドレス情報を与えるステップと、
    前記ダイレクトメモリアクセス制御装置が、前記アドレス情報に基づいて前記メモリから前記情報ブロックを読み出して前記制御情報を抽出するステップと、
    前記ダイレクトメモリアクセス制御装置が、前記制御情報に基づいて前記情報ブロック内の前記データを前記入出力デバイスに転送するステップと、
    を含むことを特徴とするダイレクトメモリアクセス制御方法。
  2. 請求項1記載のダイレクトメモリアクセス制御方法において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするダイレクトメモリアクセス制御方法。
  3. 処理装置から与えられた制御情報に従ってメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御装置であって、
    前記制御情報および前記データを含む情報ブロックの前記メモリ上におけるアドレス情報が前記処理装置から設定されるアドレス設定手段と、
    前記メモリから読み出され、前記制御情報を含む前記情報ブロックの一部が格納されるバッファと、
    前記バッファ上の前記情報ブロックから前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データの前記入出力デバイスへの転送を実行するデータ転送制御手段と、
    を含むことを特徴とするダイレクトメモリアクセス制御装置。
  4. 処理装置と、メモリと、前記処理装置から与えられる制御情報に基づいて、前記メモリ上のデータを入出力デバイスに転送するダイレクトメモリアクセス制御装置と、を含む情報処理システムであって、
    前記処理装置は、前記制御情報および前記データを含む情報ブロックを前記メモリ上に設定する操作と、前記情報ブロックのアドレス情報を前記ダイレクトメモリアクセス制御装置に伝達する操作とを実行するための制御論理を含み、
    前記ダイレクトメモリアクセス制御装置は、前記処理装置から伝達される前記アドレス情報に基づいて前記情報ブロックを前記メモリから読み出し、前記情報ブロックに含まれる前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データを前記入出力デバイスに転送するデータ転送制御手段を備えた
    ことを特徴とする情報処理システム。
  5. メモリから入出力デバイスへのデータの転送処理が発生したとき、前記転送処理をダイレクトメモリアクセス制御装置に実行させる処理装置を制御するプログラムであって、
    前記転送処理に必要な制御情報と前記データとを含む情報ブロックを前記メモリ上に設定する操作と、
    前記情報ブロックのアドレス情報を与えて前記ダイレクトメモリアクセス制御装置を起動する操作と、
    を前記処理装置に実行させることを特徴とするプログラム。
JP2005020383A 2005-01-27 2005-01-27 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム Expired - Fee Related JP4563829B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005020383A JP4563829B2 (ja) 2005-01-27 2005-01-27 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
KR1020050038572A KR100708266B1 (ko) 2005-01-27 2005-05-09 다이렉트 메모리 액세스 제어 방법, 다이렉트 메모리액세스 제어 장치, 정보 처리 시스템, 프로그램을 기록한컴퓨터 판독 가능한 기록 매체
CNB2005100720592A CN100388254C (zh) 2005-01-27 2005-05-25 直接存储器存取控制方法、直接存储器存取控制器、信息处理系统
US11/237,666 US7640375B2 (en) 2005-01-27 2005-09-29 DMA controller, method, information processing system, and program for transferring information blocks comprising data and descriptors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005020383A JP4563829B2 (ja) 2005-01-27 2005-01-27 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム

Publications (2)

Publication Number Publication Date
JP2006209448A true JP2006209448A (ja) 2006-08-10
JP4563829B2 JP4563829B2 (ja) 2010-10-13

Family

ID=36698400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005020383A Expired - Fee Related JP4563829B2 (ja) 2005-01-27 2005-01-27 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム

Country Status (4)

Country Link
US (1) US7640375B2 (ja)
JP (1) JP4563829B2 (ja)
KR (1) KR100708266B1 (ja)
CN (1) CN100388254C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101029074B1 (ko) 2007-01-10 2011-04-18 삼성전자주식회사 호스트 컨트롤러에서의 디스크립터 추적 장치 및 그 추적방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4881140B2 (ja) * 2006-12-07 2012-02-22 キヤノン株式会社 データ転送装置、データ転送制御方法、およびデータ転送制御プログラム
KR20080105390A (ko) * 2007-05-30 2008-12-04 삼성전자주식회사 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
JP2010157129A (ja) 2008-12-27 2010-07-15 Toshiba Information Systems (Japan) Corp 半導体記憶装置
TWI465905B (zh) * 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法
JP2012128778A (ja) * 2010-12-17 2012-07-05 Sony Corp データ転送装置、メモリ制御装置、およびメモリシステム
US20140244922A1 (en) * 2012-01-20 2014-08-28 Kuljit S. Bains Multi-purpose register programming via per dram addressability mode
KR20150122825A (ko) * 2014-04-23 2015-11-03 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
DE102016205536A1 (de) * 2016-04-04 2017-10-05 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für eine einen Arbeitsspeicher aufweisende Recheneinheit
WO2019127507A1 (zh) * 2017-12-29 2019-07-04 深圳市大疆创新科技有限公司 数据处理方法、设备、dma控制器及计算机可读存储介质
WO2021196160A1 (zh) * 2020-04-03 2021-10-07 北京希姆计算科技有限公司 一种数据存储管理装置及处理核
CN113342721B (zh) * 2021-07-06 2022-09-23 无锡众星微系统技术有限公司 存储控制器dma设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05181786A (ja) * 1991-03-13 1993-07-23 Hitachi Ltd デ−タ転送方法
JP2002169767A (ja) * 2000-12-04 2002-06-14 Sony Corp データ転送方法、データ転送装置、通信インターフェース方法および通信インターフェース装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216808A (ja) 1992-01-31 1993-08-27 Mitsubishi Electric Corp データ処理装置
JPH06214939A (ja) * 1993-01-14 1994-08-05 Toshiba Corp Dmaコントローラ
US5835616A (en) * 1994-02-18 1998-11-10 University Of Central Florida Face detection using templates
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
KR100196333B1 (ko) * 1996-08-20 1999-06-15 윤종용 디엠에이 명령의 프리-로딩을 이용한 디엠에이 데이터 전송방법
US6035055A (en) * 1997-11-03 2000-03-07 Hewlett-Packard Company Digital image management system in a distributed data access network system
US6065071A (en) * 1998-03-26 2000-05-16 Nvidia Corporation Method and apparatus for trapping unimplemented operations in input/output devices
US6202106B1 (en) * 1998-09-09 2001-03-13 Xilinx, Inc. Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller
JP3206568B2 (ja) * 1998-10-28 2001-09-10 日本電気株式会社 Dma制御方法及び装置
US6715036B1 (en) * 2000-08-01 2004-03-30 International Business Machines Corporation Method, system, and data structures for transferring blocks of data from a storage device to a requesting application
KR100375233B1 (ko) * 2001-03-16 2003-03-08 삼성전자주식회사 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러
US7159048B2 (en) * 2001-12-10 2007-01-02 Emulex Design & Manufacturing Corporation Direct memory access (DMA) transfer buffer processor
KR100441884B1 (ko) * 2002-04-17 2004-07-27 한국전자통신연구원 패킷 처리 엔진과 메인 프로세서간에 고속 블록 데이터전송을 수행하는 네트워크 시스템 및 그것의 dma운영방법
US20040128407A1 (en) * 2002-12-31 2004-07-01 Bennett Joseph A. ATA device programming time
US20050182863A1 (en) * 2004-02-18 2005-08-18 Arm Limited, Direct memory access control
US7225278B1 (en) * 2004-04-15 2007-05-29 Xilinx, Inc. Method and apparatus for controlling direct access to memory circuitry
US7111092B1 (en) * 2004-04-16 2006-09-19 Cisco Technology, Inc. Buffer management technique for a hypertransport data path protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05181786A (ja) * 1991-03-13 1993-07-23 Hitachi Ltd デ−タ転送方法
JP2002169767A (ja) * 2000-12-04 2002-06-14 Sony Corp データ転送方法、データ転送装置、通信インターフェース方法および通信インターフェース装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101029074B1 (ko) 2007-01-10 2011-04-18 삼성전자주식회사 호스트 컨트롤러에서의 디스크립터 추적 장치 및 그 추적방법

Also Published As

Publication number Publication date
US7640375B2 (en) 2009-12-29
US20060168366A1 (en) 2006-07-27
KR20060087363A (ko) 2006-08-02
CN100388254C (zh) 2008-05-14
JP4563829B2 (ja) 2010-10-13
KR100708266B1 (ko) 2007-04-17
CN1811741A (zh) 2006-08-02

Similar Documents

Publication Publication Date Title
JP4563829B2 (ja) ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
JPH0731624B2 (ja) 非同期コプロセッサによるデータ移動方法および装置
WO2018040494A1 (zh) 一种扩展处理器指令集的方法及装置
JP4373255B2 (ja) ダイレクトメモリアクセス制御装置および方法
US20060190637A1 (en) Control apparatus, information processing apparatus, and data transferring method
KR20100088523A (ko) 디스크립터 전송 장치, i/o 컨트롤러, 및 디스크립터 전송 방법
KR100829788B1 (ko) 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP2004288147A (ja) シリアルメモリに対するxipシステム及びその方法
JP6222079B2 (ja) 計算機システム、その処理方法、及びプログラム
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2927751B2 (ja) 情報処理装置及び情報処理方法及びスケジューリング装置
JP6138482B2 (ja) 組み込みシステム
JP2011008824A (ja) 情報記憶装置、情報転送方法、情報転送システム、情報処理装置、並びに、プログラム
JP2524620B2 (ja) 入出力制御方法
JP2008198119A (ja) データ転送装置、データ転送システムおよびデータ転送方法
JP2009289238A (ja) データ処理システム及びストレージ制御方法
JP2002157090A (ja) 電子ディスク装置用シーズ制御回路
KR19990058631A (ko) 디엠에이 콘트롤러
JP2004118235A (ja) データ処理装置
JP2008065512A (ja) データ処理装置
JPH03158944A (ja) キャッシュ制御方式
JPH11353174A (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100526

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: 20100727

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: 20100729

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4563829

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees