JP2005258509A - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JP2005258509A
JP2005258509A JP2004065035A JP2004065035A JP2005258509A JP 2005258509 A JP2005258509 A JP 2005258509A JP 2004065035 A JP2004065035 A JP 2004065035A JP 2004065035 A JP2004065035 A JP 2004065035A JP 2005258509 A JP2005258509 A JP 2005258509A
Authority
JP
Japan
Prior art keywords
descriptor
circuit
memory
dma
processor
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.)
Withdrawn
Application number
JP2004065035A
Other languages
English (en)
Inventor
Seisuke Obara
成介 小原
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 JP2004065035A priority Critical patent/JP2005258509A/ja
Publication of JP2005258509A publication Critical patent/JP2005258509A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】優先度の高いデータ転送がある場合でも、それ以前にプロセッサがDMA制御回路に対して出したディスクリプタが全て実行された後でないと優先度の高いデータ転送が行なわれない。
【解決手段】I/Oコントローラ4にDMA制御回路6を備え、プロセッサ1はメモリ3にそれぞれ異なる優先度の複数のディスクリプタ領域を設定し、DMA制御回路6にプロセッサ1がメモリ3に用意したディスクリプタをフェッチするディスクリプタフェッチ回路11と、ディスクリプタフェッチ回路11に対しDMA転送の指示情報を出力する複数組のDMA転送制御指示部30、31を備え、ディスクリプタフェッチ回路11は複数組のDMA転送制御指示部30、31の出力を基に優先度の高いディスクリプタを優先してフェッチする機能を有し、DMA制御回路6ではディスクリプタフェッチ回路11がフェッチしたディスクリプタに基づいてデータ転送制御を行う。
【選択図】 図1

Description

本発明は、ホストコンピュータに接続され、ディスク装置との間でデータ転送を行うストレージ装置に関するものである。特に、コンピュータシステムにおけるデータ転送の効率化を図ったDMA(Direct Memory Access)制御回路を有するストレージ装置に関し、更に詳細には、1つのDMA制御回路で優先度の異なるデータ転送制御を行うDMA制御回路を有するストレージ装置に関する。

(1) :従来例1の説明
図4は従来のシステム構成図、図5は従来のDMA制御回路、図6は従来のディスクリプタの一例、図7は従来のDMA制御回路がディスクリプタを読み出す仕組みを説明する図、図8は従来のDMA制御回路の制御シーケンス図、図9は従来のマルチプロセッサの説明図である。以下、図4乃至図9に基づいて従来例1を説明する。
(a) :構成の説明
従来、コンピュータシステムにおいて、メモリとメモリの間、又はメモリとI/Oデバイスの間のデータ転送を効率良く行うことは、コンピュータシステムの性能を高めるために重要な課題であるが、この課題を解決するための方法として、DMA(Direct Memory Access)制御回路が知られている。
これは、コンピュータのCPUが前記コンピュータシステム内のデータ転送を行う代わりに、DMA制御回路と呼ばれる専用のハードウェアが、CPU等のプロセッサからの命令に基づいてデータ転送を行う仕組みである。CPUからDMA制御回路に対する命令は、ディスクリプタと呼ばれ、メモリ上に用意した後、DMA制御回路が自身で読み出して参照する方法が広く用いられている。
図4にDMA制御回路が装備されたコンピュータシステムの一例を示す。この例は、ホストコンピュータ25に接続され、I/Oデバイス5との間でデータ転送を行うストレージ装置26の例である。
このストレージ装置26には、1つ又は複数のI/Oデバイス5と、ストレージ制御部27を有し、ストレージ制御部27には、各種制御を行うプロセッサ1(例えば、CPU)と、メモリ3と、該メモリ3の制御を行うメモリコントローラ2と、I/Oデバイス5の制御を行うI/Oコントローラ4を有し、該I/Oコントローラ4には専用のハードウェアにより、前記プロセッサからの命令に基づいてデータ転送を自動的に行うDMA制御回路6を備えている。
このように、メモリコントローラ2を中心にプロセッサ1、メモリ3、I/Oコントローラ4が接続され、I/Oコントローラ4はDMA制御回路6を装備する。また、I/Oコントローラ4には1つ又は複数のI/Oデバイス5が接続される。この図の例において、DMA制御回路6はメモリ3とI/Oデバイス5間でデータ転送を行う。
図5には、DMA制御回路6のブロック図が示されている。DMA制御回路6は、I/Oコントローラ4のメモリI/F部(メモリインタフェース部)7を通じてディスクリプタをメモリ3から読み出すディスクリプタフェッチ回路11、ディスクリプタフェッチ回路11からディスクリプタを受け取って一時的に保持するディスクリプタバッファ12、ディスクリプタを解析しデータ転送制御回路14へデータ転送指示を行うステートマシン13、ステートマシン13の指示を受けてメモリI/F部7とI/OデバイスI/F8を通じてデータ転送を行うデータ転送制御回路14を備えている。
図6にディスクリプタの一例が図示されている。この例ではディスクリプタは8バイト*3ワードの長さを持ち、コマンド、フラグ、転送バイト長、転送元アドレス、転送先アドレスから構成される。ここでフラグはDMAの様々な動作を制御するためのビットである。一例として、DMA制御回路6に対してデータ転送の終了後に割り込み(CPUへ終了報告をするための割り込み)を発生させるように指示する。
この場合、転送バイト長は、DMA制御回路6に対して、メモリやI/Oデバイス間で転送するデータ長を指示するためのフィールドである。転送元アドレスは、転送するためのデータを読み出すメモリ又はI/Oアドレスが指示される。転送先アドレスは、転送データを書き込むためのメモリ又はI/Oアドレスが指示される。
図7にDMA制御回路6がディスクリプタを読み出す仕組みを示している。DMA制御回路6は、ディスクリプタを参照するためのBASE、TOP、BTMの3つのレジスタを持つ。BASEレジスタ20は、CPU等のプロセッサ1がメモリ3上のどのアドレスにディスクリプタを配置するかを設定する。例えば、このレジスタに設定されたアドレスから1Mバイトの領域がディスクリプタ領域として設定される。
TOPレジスタ18は、CPU等のプロセッサ1がいくつディスクリプタを用意したかを示すポインタであり、図7では6つのディスクリプタが用意されているので、CPU等のプロセッサ1によって6つ進められている。BTMレジスタ19は、DMA制御回路6がいくつディスクリプタの処理を終えたかを示すポインタであり、図7では2つのディスクリプタが処理を完了しているので2つ進められている。
DMA制御回路6内では、TOPレジスタ18とBTMレジスタ19の値が比較回路16によって比較監視され、2つのレジスタの値が異なる時に、ディスクリプタフェッチ回路11がディスクリプタを読み出す。この時、ディスクリプタを読み出すメモリアドレスは、BASEレジスタ20とBTMレジスタ19の値を加算回路17により加算して得られる。
メモリ3から読み出されたディスクリプタはディスクリプタバッファ12に格納される。ディスクリプタフェッチ回路11は、ディスクリプタを読み出すとステートマシン13にディスクリプタの実行を要求する。ステートマシン13は、実行要求を受け取ると、ディスクリプタバッファ12内のディスクリプタを参照し、データ転送制御部14に要求されたデータ転送処理を実行させる。データ転送が終わると、BTMレジスタの値を+1(インクリメント)して、ディスクリプタの実行が終わったことを知らせる。
(b) :DMA制御回路の動作説明
次に、図8のシーケンスを参照しながらDMA制御回路の動作を説明する。なお、以下の説明では、前記プロセッサ1としてCPUを使用した場合について説明する。
動作(1) :CPU(プロセッサ1)がメモリ3上のディスクリプタで指定するアドレスに転送データを用意する。
動作(2) :CPUがメモリ3上の予め決められたアドレスに、図6に示したフォーマットによるライト転送のためのディスクリプタを用意する。
動作(3) :CPUがDMA制御回路6内のTOPポインタ(TOPレジスタ18の値)を更新することでDMA制御回路6を起動する。
動作(4) :DMA制御回路6はCPUからの起動を受けると、予め決められたアドレスからディスクリプタを読み出す。
動作(5) :DMA制御回路6は、読み出したディスクリプタを解析し、ディスクリプタ内に指定された転送元アドレスから、指定されたバイト数のデータを読み出す。データはメモリ3から読み出される場合もあるし、I/Oデバイスから読み出される場合もある。
動作(6) :ついで、DMA制御回路6は、読み出したデータを、ディスクリプタ内に指定された転送先アドレスに基づいてメモリ3又はI/Oデバイス5へ転送する。
動作(7) :DMA制御回路6は、データ転送が終了すると、BTMポインタ(BTMレジスタ19の値)を更新し、ディスクリプタ内のフラグの指示に従って、CPUに対して割り込みを行う。
上記のシーケンスから分かるように、CPUはディスクリプタを用意してDMA制御回路6を起動すると、割り込みによって通知が行なわれるまでのデータ転送が行なわれている時間は別の処理を行うことができる。これによってCPUはデータ転送という比較的単純な処理から開放されて、より複雑な処理に時間を割くことができ、システムの性能を向上させることができる。
(c) :マルチプロセッサシステムの説明
図9にはAシステムの装置とBシステムの装置とがあり、これらでマルチプロセッサシステムを構成している。そして、A組とB組のシステムには、それぞれ、CPU等のプロセッサ1と、メモリ3と、メモリコントローラ2と、I/Oコントローラ4とI/Oデバイス5が設けてある。なお、図9に示したA、B組のシステムは、それぞれ図4に示したシステムと同じ構成である。
(2) :従来例2
以下、特許文献1を従来例2として説明する。
従来例2は、チェーン式DMA方式及びそのためのDMAコントローラに関するものであり、ディスクリプタ領域を大きくせず、ディスクリプタの読み込み動作量も増大させずに柔軟なチェーンが行なえるようにすることを目的としたものである。
そして従来例2は、ディスクリプタ情報読み込み制御手段と、ディスクリプタ情報を記憶するレジスタ群とを備えるチェーン式DMAコントローラであって、レジスタ群は次のディスクリプタ情報の形式を規定するフォーマット指定情報を記憶するフォーマット指定レジスタを備え、ディスクリプタ読み込み制御手段は、フォーマット指定情報に従って次のディスクリプタ情報を読み込むように構成している。
特開平6−103225号公報

(1) :DMA制御回路はデータ転送をCPU等のプロセッサに代わって行なうことで、CPU等のプロセッサの負荷を下げ、システムの処理性能を高めるのに有効であるが、従来例1では、CPUからDMA制御回路への命令であるディスクリプタはメモリ上に連続して配置されていて、DMA制御回路はそれをCPUから与えられた順に処理する。
そのため、CPUからDMA制御回路に対して緊急で行ないたい(優先度の高い)データ転送がある場合でも、それ以前にCPUがDMA制御回路に対して出した命令(ディスクリプタ)が全て実行された後でないと、優先度の高いデータ転送が行なわれないという課題があった。これは特にDMAの負荷が重くCPUからの命令(ディスクリプタ)が処理されずに溜まってしまった場合に問題となる。
(2) :一例として、図9のようなマルチプロセッサシステムにおいて、DMA制御回路を使用してノード間のデータやメッセージの転送を行なう場合、普通メッセージ転送はデータ転送より高い優先度を求められる。また、メッセージ転送においても、エラー通知のような緊急メッセージ転送は普通処理のメッセード転送より高い優先度が求められる。
(3) :前記問題を解決する1つの方法として、DMA制御回路を複数用意してそれぞれ異なる優先度を割り当てることが考えられる。データ転送はCPUがより低い優先度のDMA制御回路に処理を割り当てて実行させ、メッセージ転送をより高い優先度のDMA制御回路に割り当てて実行させる。
必要であれば、緊急メッセージ転送は更に優先度の高いDMA制御回路に割り当てて実行させることで、緊急性の処理が優先度の低い処理を待つ間処理されずに放置されることを防ぐことができる。
しかし、この方法では、DMA制御回路を必要とされる優先度に合わせて複数持つ必要がある。優先度の高いDMA制御回路ほど使用頻度が低いのが普通なので、あまり使われない処理のために回路を持つことになり、コストとハードウェアの実装面で問題がある。すなわち、高価なハードウェアを有効に使えないので無駄である。
(4) :従来例2では、各ディスクリプタ情報が次のディスクリプタ情報の形式を規定するフォーマット指定情報を有するようにし、最初のディスクリプタ情報の読み込み以外は、読み込まれたフォーマット情報に従って次のディスクリプタ情報の読み込みを行うものである。このように従来例2は本発明と異なり、本発明の参考程度の技術にすぎない。
本発明は前記課題を解決し、プロセッサがメモリ上に複数のディスクリプタ領域を設定できるようにし、その内の一つをDMA制御回路に優先的に実行させることができるようにすることで優先度の高い処理が待たされることなく実行できるようにすることを目的とする。

本発明は前記の目的を達成するため、次のように構成した。
(1) :ホストコンピュータに接続され、ディスク装置との間でデータ転送を行うストレージ装置において、プロセッサ(例えば、CPU)と、メモリ(RAM等の書き込み可能なメモリ)と、前記ディスク装置(例えば、磁気ディスク装置)の制御を行うI/Oコントローラ(例えば、磁気ディスク制御装置)を有し、該I/Oコントローラには専用のハードウェアにより、前記プロセッサからの命令に基づき前記メモリとディスク装置間のデータ転送制御を行うDMA制御回路を備え、前記プロセッサは、前記メモリにそれぞれ異なる優先度の複数のディスクリプタ領域を設定する機能を有し、前記DMA制御回路には、前記プロセッサが前記メモリに用意したディスクリプタをフェッチするディスクリプタフェッチ回路と、前記ディスクリプタフェッチ回路に対し、DMA転送の指示情報を出力する複数組のDMA転送制御指示部を備え、前記ディスクリプタフェッチ回路は、前記複数組のDMA転送制御指示部の出力を基に、優先度の高いディスクリプタを優先してフェッチする機能を有し、前記DMA制御回路ではディスクリプタフェッチ回路がフェッチしたディスクリプタに基づいてデータ転送制御を行う機能を備えていることを特徴とする。
(2) :ホストコンピュータに接続され、ディスク装置との間でデータ転送を行うストレージ装置において、データを蓄積するためのディスク装置と、ストレージ装置の制御を行うストレージ制御部を有し、前記ストレージ制御部には、各種制御を行うプロセッサと、メモリと、該メモリの制御を行うメモリコントローラと、前記ディスク装置の制御を行うI/Oコントローラを有し、該I/Oコントローラには専用のハードウェアにより、前記プロセッサ命令に基づき前記メモリとディスク装置間のデータ転送制御を自動的に行うDMA制御回路を備え、前記プロセッサは、前記メモリコントローラを介して前記メモリにそれぞれ異なる優先度の複数のディスクリプタ領域を設定する機能を有し、前記DMA制御回路には、前記プロセッサが前記メモリに用意したディスクリプタをフェッチするディスクリプタフェッチ回路と、前記ディスクリプタフェッチ回路に対し、DMA転送の指示情報を出力する複数組のDMA転送制御指示部を備えると共に、前記ディスクリプタフェッチ回路により、前記メモリからフェッチしたディスクリプタを一時的に格納するディスクリプタバッファと、前記ディスクリプタバッファのディスクリプタを解析するステートマシンと、前記ステートマシンの解析結果に基づき、前記メモリとディスク装置の間でのデータ転送制御を行うデータ転送制御部とを備え、前記ディスクリプタフェッチ回路は、前記複数組のDMA転送制御指示部の出力を基に、優先度の高いディスクリプタから順にフェッチする機能を有し、前記データ転送制御部は、前記ディスクリプタフェッチ回路がフェッチしたディスクリプタに基づいて前記メモリとディスク装置の間でのデータ転送制御を行う機能を備えていることを特徴とする。
(3) :前記(1) 又は(2) のストレージ装置において、前記ディスクリプタフェッチ回路に、前記プロセッサがアービトレーション方法を選択するための情報を設定するアービトレーション方法選択レジスタと、固定優先度のアービトレーション方法を選択するための固定優先度アービトレーション回路と、重み付けした情報によりアービトレーションを選択するための重み付けラウンドロビンアービトレーション回路と、前記アービトレーション方法選択レジスタの情報に基づいて、前記固定優先度アービトレーション回路の出力と、前記重み付けラウンドロビンアービトレーション回路の出力の何れか一方の出力を選択し、選択した方の出力をフェッチ選択信号として出力するセレクタとを備え、前記ディスクリプタフェッチ回路は、前記セレクタから出力されたフェッチ選択信号に基いて前記メモリからディスクリプタをフェッチする機能を備えていることを特徴とする。
(4) :前記(1) 乃至(3) のいずれかのストレージ装置において、前記DMA転送制御指示部は、前記プロセッサがメモリ上に幾つディスクリプタを用意したかを示すポインタとして機能するTOPレジスタと、前記プロセッサがメモリ上のどのアドレスにディスクリプタを配置するかを設定するBASEレジスタと、DMA制御回路が幾つディスクリプタの処理を終えたかを示すポインタとして機能するBTMレジスタを備えると共に、前記TOPレジスタの値と前記BTMレジスタの値を比較して監視する比較回路と、前記BASEレジスタの値とBTMレジスタの値を加算する加算回路を備え、前記比較回路の出力と加算回路の出力をディスクリプタフェッチ回路へ出力する構成であり、前記TOPレジスタと、BASEレジスタと、BTMレジスタと、比較回路と、加算回路を含めて1組のDMA転送制御指示部を構成し、このDMA転送制御指示部の組を複数組備えていることを特徴とする。
(作用)
以下、図1に基づいて前記(1) 乃至(4) の作用を説明する。
(a) :前記(1) の作用
先ず、プロセッサ1がディスクリプタで指定するメモリ3上のアドレスに転送データを用意し、次いで、メモリ3上の予め決められたアドレスに、予め決められたフォーマットによるデータ転送のためのディスクリプタ領域を複数組(例えば、ディスクリプタ領域#0、ディスクリプタ領域#1等)を用意する。
次に、プロセッサ1は、DMA制御回路6内のポインタ(プロセッサ1がメモリ3上に幾つディスクリプタを用意したかを示すポインタ)を更新することでDMA制御回路6を起動する。DMA制御回路6はプロセッサ1からの起動を受けると、予め決められたメモリ3上のアドレスからディスクリプタを読み出す。
そして、DMA制御回路6は、読み出したディスクリプタを解析し、ディスクリプタ内に指定された転送アドレスから、指定されたバイト数のデータを読み出す。前記データはメモリ3から読み出される場合もあるし、ディスク装置28から読み出される場合もある。次いで、DMA制御回路6は読み出したデータを、ディスクリプタ内に指定された転送アドレスに基づいてメモリ3とディスク装置28間で転送する。
その後、DMA制御回路6はデータ転送が終了すると、ポインタ(DMA制御回路6が幾つディスクリプタの処理を終えたかを示すポインタ)を更新し、ディスクリプタ内のフラグの指示に従って、プロセッサ1に対して割り込みを行い、データ転送の終了を通知する。
上記のように、プロセッサ1はディスクリプタを用意してDMA制御回路6を起動すると、割り込みによって終了の通知が行なわれるまでのデータ転送が行なわれている時間は別の処理を行うことができる。これによってプロセッサ1はデータ転送という比較的単純な処理から開放されて、より複雑な処理に時間を割くことができ、システムの性能を向上させることができる。
この場合、プロセッサ1がメモリ3上に複数のディスクリプタ領域を設定できるようにし、その内の一つをDMA制御回路に優先的に実行させることができる。そのため、優先度の高い処理が待たされることなく実行できる。
(b) :前記(2) の作用
先ず、プロセッサ1がディスクリプタで指定するメモリ3上のアドレスに転送データを用意し、次いで、メモリ3上の予め決められたアドレスに、予め決められたフォーマットによるデータ転送のためのディスクリプタ領域を複数組(例えば、ディスクリプタ領域#0、ディスクリプタ領域#1等)を用意する。
次に、プロセッサ1はDMA制御回路6内のポインタ(プロセッサ1がメモリ3上に幾つディスクリプタを用意したかを示すポインタ)を更新することでDMA制御回路6を起動する。DMA制御回路6はプロセッサ1からの起動を受けると、予め決められたアドレスからディスクリプタを読み出し、ディスクリプタバッファ12へ一時格納する。
そして、DMA制御回路6のステートマシン13は、ディスクリプタバッファ12のディスクリプタを解析し、データ転送制御部14はディスクリプタ内に指定された転送アドレスから、指定されたバイト数のデータを読み出す。
この場合のデータはメモリ3から読み出される場合もあるし、ディスク装置28から読み出される場合もある。次いで、DMA制御回路6のデータ転送制御部14は読み出したデータを、ディスクリプタ内に指定された転送アドレスに基づいてメモリ3とディスク装置28間で転送する。
その後、DMA制御回路6は、データ転送が終了すると、ポインタ(DMA制御回路6が幾つディスクリプタの処理を終えたかを示すポインタ)を更新し、ディスクリプタ内のフラグの指示に従って、プロセッサ1に対して割り込みを行い、データ転送の終了を通知する。
上記のように、プロセッサ1がメモリ上に複数組のディスクリプタ領域を用意してDMA制御回路6を起動すると、割り込みによってデータ転送終了の通知が行なわれるまでのデータ転送が行なわれている時間は別の処理を行うことができる。これによってプロセッサ1はデータ転送という比較的単純な処理から開放されて、より複雑な処理に時間を割くことができ、システムの性能を向上させることができる。
この場合、プロセッサ1がメモリ3上に複数のディスクリプタ領域を設定できるようにしており、その内の一つをDMA制御回路に優先的に実行させることができる。そのため、優先度の高い処理が待たされることなく実行できる。
(c) :前記(3) の作用
前記(a) 又は(b) の作用を行う際、前記ディスクリプタフェッチ回路11は、内部のセレクタから出力されたフェッチ選択信号を基いて前記メモリ1からディスクリプタをフェッチする。
このようにして、前記ディスクリプタフェッチ回路11は、前記複数組のDMA転送制御指示部30、31等の出力を基に、優先度の高いディスクリプタを優先してフェッチする機能を実現でき、前記DMA制御回路6ではディスクリプタフェッチ回路11がフェッチしたディスクリプタに基づいて、前記(a) 又は(b) と同様なデータ転送制御を行うことができる。
この場合にも、前記(a) 又は(b) の作用と同様に、プロセッサ1がメモリ3上に複数組のディスクリプタ領域を設定できるので、その内の一つをDMA制御回路に優先的に実行させることができる。そのため、優先度の高い処理が待たされることなく実行できる。
(d) :前記(4) の作用
前記(1) 乃至(3) のいずれかの作用に加え、次のような作用がある。
プロセッサ1は、メモリ3上にディスクリプタを設定する場合、例えば、優先度の低い処理のためのディスクリプタをディスクリプタ領域#0へ、優先度の高い処理のためのディスクリプタはディスクリプタ領域#1へ配置し、それぞれのDMA転送指示部30、31等のTOPレジスタの値を、用意したディスクリプタの個数だけ進める。
DMA転送指示部30又は31内のTOPレジスタと、BTMレジスタはそれぞれ比較回路によって比較され、不一致の場合はディスクリプタフェッチ回路11へ読み出し要求が送られる。ディスクリプタフェッチ回路11は、例えば、第2の比較回路(例えば、#1)からの要求があれば第2の加算回路(例えば、#1)の出力するアドレスからディスクリプタを読み出し、前記要求がなく、第1の比較回路からの要求がある場合は、第1の加算回路(例えば、#0)の出力するアドレスからディスクリプタを読み出す。メモリ3から読み出されたディスクリプタはディスクリプタバッファ12へ格納される。
ディスクリプタフェッチ回路11は、ディスクリプタを読み出すとステートマシン13にディスクリプタの実行を要求する。ステートマシン13は、実行要求を受け取ると、ディスクリプタバッファ12内のディスクリプタを解析し、データ転送制御部14に、要求されたデータ転送処理を実行させる。データ転送処理が終わると、DMA転送指示部30又は31内のBTM#0レジスタ、又はBTM#1レジスタの値を+1して、ディスクリプタの実行が終わったことをプロセッサ1へ通知する。
この場合にも、前記(a) 又は(b) 又は(c) の作用と同様に、プロセッサ1がメモリ3上に複数のディスクリプタ領域を設定できるので、その内の一つをDMA制御回路6に優先的に実行させることができる。そのため、優先度の高い処理が待たされることなく実行できる。

本発明は、前記(1) 乃至(4) の構成により次のような効果がある。
(1) :1つのDMA制御回路が複数のディスクリプタ領域を指定でき、その内の1つを優先的に実行することで、優先度の高い処理が待たされることなく実行される。
(2) :1つのDMA制御回路が複数のディスクリプタ領域(制御部)を持つことにより、プロセッサ(CPU)はあたかも複数のDMA制御回路があるように、低優先度のデータ転送の間に高優先度のデータ転送を割り込ませて実行させることができ、従来例に見られた高優先度のデータ転送が長時間待たされることが無くなる。また、必要なハードウェアの量は複数のDMA制御回路を装備するのに比べて少なくて済み、コストと実装の面での優位性がある。
(3) :プロセッサがメモリ上に複数のディスクリプタ領域を設定できるようにし、その内の一つをDMA制御回路に優先的に実行させることができる。そのため、優先度の高い処理が待たされることなく実行できる。
以下、本発明を実施するための最良の形態について説明する。
§1:DMA制御回路等の概要説明
以下に説明するDMA制御回路の特徴は次の通りである。
(a) :メモリ上のディスクリプタを指すためのTOP、BTM、BASEの各レジスタと、比較器、加算器を含むDMA転送指示部の組を複数組持つ。
(b) :TOPレジスタはプロセッサがディスクリプタをメモリに用意したことをDMA制御回路に知らせるために書き、BTMレジスタはDMA制御回路がディスクリプタの実行を終了したことをプロセッサ(CPU)に知らせるために値を更新する。
(c) :TOP、BTM、BASEの各レジスタに対応してメモリ上にも複数のディスクリプタ領域があり、プロセッサはそれぞれ異なる優先度のデータ転送処理に対するディスクリプタを配置する。
(d) :各組のTOPとBTMのレジスタの値が一致しなければ実行すべきプロセッサから命令(ディスクリプタ)が存在する。この時ディスクリプタフェッチ回路がディスクリプタを読み出す必要があることを認識する。
(e) :ディスクリプタフェッチ回路は複数のディスクリプタ制御部によるディスクリプタ読み出し要求の間で、予め定めておいた優先順位(ハードウェアにより予め決めておく)に従って実行する。
(f) :データ転送回路は、ディスクリプタフェッチ回路が読み出した順にディスクリプタを実行する。
本発明では、1つのDMA制御回路が複数のディスクリプタ領域(制御部)を持つことにより、プロセッサ(CPU)はあたかも複数のDMA制御回路があるように、低優先度のデータ転送の間に高優先度のデータ転送を割り込ませて実行させることができ、従来例に見られた高優先度のデータ転送が長時間待たされることが無くなる。また、必要なハードウェアの量は複数のDMA制御回路を装備するのに比べて少なくて済み、コストと実装の面での優位性がある。
§2:具体例による説明
(1) :ストレージ装置の説明
図1はシステムの説明図である。図1に示したように、ストレージ装置26は、ホストコンピュータ25に接続され、ディスク装置28との間でデータ転送を行うものである。このストレージ装置26は、データを蓄積するためのディスク装置28(磁気ディスク装置等)と、ストレージ装置26の制御を行うストレージ制御部27を有する。
前記ストレージ制御部27には、各種制御を行うプロセッサ1(例えば、CPU)と、メモリ3と、該メモリ3の制御を行うメモリコントローラ2と、ディスク装置28の制御を行うI/Oコントローラ4を有し、該I/Oコントローラ4には専用のハードウェアにより、前記プロセッサからの命令に基づいてデータ転送を自動的に行うDMA制御回路6を備えている。
また、前記DMA制御回路には、メモリ3にプロセッサ1が用意したディスクリプタをフェッチするためのディスクリプタフェッチ回路11と、ディスクリプタフェッチ回路11に対し、DMA転送の指示情報を出力するDMA転送指示部30、31を複数組(図1の例では、DMA転送指示部が2個の例)備える。
また、ディスクリプタフェッチ回路11により、メモリ3からフェッチしたディスクリプタを一時的に格納するディスクリプタバッファ12と、ディスクリプタバッファ12のディスクリプタを解析するステートマシン13と、ディスクリプタバッファ12の解析結果に基づき、メモリ3とディスク装置28の間でデータ転送制御を行うデータ転送制御部14とを備えている。
そして、前記ディスクリプタフェッチ回路11は、複数組のDMA転送指示部30、31の出力を基に、優先度の高いディスクリプタから順にフェッチする機能を有し、前記データ転送制御部14は、ディスクリプタフェッチ回路11がフェッチしたディスクリプタに基づいてメモリ3とディスク装置28の間でのデータ転送制御を行う機能を備えている。
(2) :DMA制御回路の構成の説明
図2はDMA制御回路の説明図である。以下、図1、図2を参照しながらDMA制御回路の構成を説明する。
図1に示したDMA転送指示部30、31は、それぞれプロセッサ1がメモリ3上に幾つディスクリプタを用意したかを示すポインタとして機能するTOPレジスタと、プロセッサ1がメモリ3上のどのアドレスにディスクリプタを配置するかを設定するBASEレジスタと、DMA制御回路6が幾つディスクリプタの処理を終えたかを示すポインタとして機能するBTMレジスタを備えている。
また、図2に示したように、TOPレジスタの値とBTMレジスタの値を比較して監視する比較回路16と、BASEレジスタの値とBTMレジスタの値を加算する加算回路17を備え、比較回路16の出力と加算回路の出力をディスクリプタフェッチ回路11へ出力する構成であり、TOPレジスタと、BASEレジスタと、BTMレジスタと、比較回路16と、加算回路17を含めて1組のDMA転送指示部を構成し、このDMA転送指示部の組を複数組備えている。
なお、図2に示したDMA制御回路6の例では、0と1の2組のBASEレジスタ、TOPレジスタ、BTMレジスタを持ち、それぞれのレジスタによってメモリ3上に別々のアドレスをディスクリプタ領域として指定できるように構成されている。ここでは、BASEレジスタ#0で指定された領域をディスクリプタ領域#0、BASEレジスタ#1で指定された領域をディスクリプタ領域#1と呼ぶ。
図2の例では、TOPレジスタ#0、BTMレジスタ#0、BASEレジスタ#0、比較回路#0、加算回路#0を含めた回路は、図1に示したDMA転送指示部30を構成する。また、TOPレジスタ#1、BTMレジスタ#1、BASEレジスタ#1、比較回路#1、加算回路#1を含めた回路は、図1に示したDMA転送指示部31を構成する。
(3) :DMA制御回路の一部詳細構成の説明
図3はDMA制御回路の一部詳細構成の説明図である。図3に示したように、この例では、DMA制御回路6内のディスクリプタフェッチ回路11に、プロセッサ1がアービトレーション方法を選択するための情報を設定するアービトレーション方法選択レジスタ35と、固定優先度のアービトレーション方法を選択するための固定優先度アービトレーション回路37と、重み付けした情報によりアービトレーションを選択するための重み付けラウンドロビンアービトレーション回路38と、アービトレーション方法選択レジスタ35の情報に基づいて、固定優先度アービトレーション回路37の出力と、重み付けラウンドロビンアービトレーション回路38の出力の何れか一方の出力を選択し、選択した方の出力をフェッチ選択信号として出力するセレクタ36とを備え、ディスクリプタフェッチ回路11は、セレクタ36から出力されたフェッチ選択信号に基いてメモリ3からディスクリプタをフェッチする機能を備えている。
なお、図3では、固定優先度アービトレーション回路37と、重み付けラウンドロビンアービトレーション回路38には、それぞれ、前記比較回路16からの出力として、#0比較回路出力、#1比較回路出力、#2比較回路出力の各出力が取り込まれているが、これは、比較回路16が3個ある場合の例である。従って、図2のように比較回路16が2個の場合には、#0比較回路出力と、#1比較回路出力が取り込まれる。
また、比較回路出力は、例えば、0又は1の出力であり、固定優先度アービトレーション回路37では、これらの各出力に応じて固定的にフェッチ選択信号が出されるが、重み付けラウンドロビンアービトレーション回路38では、前記各比較回路出力に対して重み付けした値を取り込んでフェッチ選択信号が出される。
このようなハードウェアを備えれば、アービトレーション方法選択レジスタ35にプロセッサ1が0又は1の値をセットするだけで、それに合わせてセレクタ36が、固定優先度アービトレーション回路37か、又は重み付けラウンドロビンアービトレーション回路38の出力のいずれかを選択してフェッチ選択信号を出力する。従って、ディスクリプタフェッチ回路11では、プロセッサ1が選択した方のフェッチ選択信号によりディスクリプタの選択をすることができる。
(4) :ストレージ装置の動作の説明
以下、図1乃至図3に基づいてストレージ装置の動作を説明する。なお、図4、図5、図6に示した従来例の図は本発明でも同じなので、これらの図も参照しながらストレージ装置の動作を説明する。
ストレージ制御部27内のプロセッサ1(例えば、CPU)は、メモリ3上にディスクリプタを設定する場合、例えば、優先度の低い処理のためのディスクリプタをディスクリプタ領域#0へ、優先度の高い処理のためのディスクリプタはディスクリプタ領域#1へ配置し、それぞれのDMA転送指示部30、31等のTOPレジスタを用意したディスクリプタの個数だけ進める。
DMA転送指示部30又は31内のTOPレジスタと、BTMレジスタはそれぞれ比較回路16によって比較され、不一致の場合はディスクリプタフェッチ回路11へ読み出し要求が送られる。ディスクリプタフェッチ回路11は、比較回路16(例えば、#1)からの要求があれば加算回路17(例えば、#1)の出力するアドレスからディスクリプタを読み出し、前記要求がない場合は、加算回路17(例えば、#0)の出力するアドレスからディスクリプタを読み出す。メモリ3から読み出されたディスクリプタはディスクリプタバッファ12へ一時的に格納される。
ディスクリプタフェッチ回路11は、ディスクリプタを読み出すとステートマシン13にディスクリプタの実行を要求する。ステートマシン13は、実行要求を受け取ると、ディスクリプタバッファ12内のディスクリプタを解析し、データ転送制御部14に、要求されたデータ転送処理を実行させる。データ転送処理が終わると、DMA転送指示部30又は31内のBTMレジスタ#0、又はBTMレジスタ#1の値を+1して、ディスクリプタの実行が終わったことをプロセッサ1へ通知する。

本発明の実施の形態におけるシステムの説明図である。 実施の形態におけるDMA制御回路の説明図である。 実施の形態におけるDMA制御回路の一部詳細構成の説明図である。 従来のシステム構成図である。 従来のDMA制御回路である。 従来のディスクリプタの一例である。 従来のDMA制御回路がディスクリプタを読み出す仕組みを説明する図である。 従来のDMA制御回路の制御シーケンス図である。 従来のマルチプロセッサの説明図である。
符号の説明

1 プロセッサ(CPU等)
2 メモリコントローラ
3 メモリ
4 I/Oコントローラ
5 I/Oデバイス
6 DMA制御回路
7 メモリI/F(メモリインタフェース)
8 I/OデバイスI/F(入出力デバイスインタフェース)
11 ディスクリプタフェッチ回路
12 ディスクリプタバッファ
13 ステートマシン
14 データ転送制御回路
16 比較回路
17 加算回路
18 TOPレジスタ
19 BTMレジスタ
20 BASEレジスタ
25 ホストコンピュータ
26 ストレージ装置
27 ストレージ制御部
28 ディスク装置
30、31 DMA転送指示部
35 アービトレーション方法選択レジスタ
36 セレクタ
37 固定優先度アービトレーション回路
38 重み付けラウンドロビンアービトレーション回路

Claims (4)

  1. ホストコンピュータに接続され、ディスク装置との間でデータ転送を行うストレージ装置において、
    プロセッサと、メモリと、前記ディスク装置の制御を行うI/Oコントローラを有し、該I/Oコントローラには専用のハードウェアにより、前記プロセッサからの命令に基づき前記メモリとディスク装置間のデータ転送制御を行うDMA制御回路を備え、
    前記プロセッサは、前記メモリにそれぞれ異なる優先度の複数のディスクリプタ領域を設定する機能を有し、
    前記DMA制御回路には、前記プロセッサが前記メモリに用意したディスクリプタをフェッチするディスクリプタフェッチ回路と、
    前記ディスクリプタフェッチ回路に対し、DMA転送の指示情報を出力する複数組のDMA転送制御指示部を備え、
    前記ディスクリプタフェッチ回路は、前記複数組のDMA転送制御指示部の出力を基に、優先度の高いディスクリプタを優先してフェッチする機能を有し、前記DMA制御回路ではディスクリプタフェッチ回路がフェッチしたディスクリプタに基づいてデータ転送制御を行う機能を備えていることを特徴とするストレージ装置。
  2. ホストコンピュータに接続され、ディスク装置との間でデータ転送を行うストレージ装置において、
    データを蓄積するためのディスク装置と、
    ストレージ装置の制御を行うストレージ制御部を有し、
    前記ストレージ制御部には、各種制御を行うプロセッサと、メモリと、該メモリの制御を行うメモリコントローラと、前記ディスク装置の制御を行うI/Oコントローラを有し、該I/Oコントローラには専用のハードウェアにより、前記プロセッサ命令に基づき前記メモリとディスク装置間のデータ転送制御を自動的に行うDMA制御回路を備え、
    前記プロセッサは、前記メモリコントローラを介して前記メモリにそれぞれ異なる優先度の複数のディスクリプタ領域を設定する機能を有し、
    前記DMA制御回路には、
    前記プロセッサが前記メモリに用意したディスクリプタをフェッチするディスクリプタフェッチ回路と、
    前記ディスクリプタフェッチ回路に対し、DMA転送の指示情報を出力する複数組のDMA転送制御指示部を備えると共に、
    前記ディスクリプタフェッチ回路により、前記メモリからフェッチしたディスクリプタを一時的に格納するディスクリプタバッファと、
    前記ディスクリプタバッファのディスクリプタを解析するステートマシンと、
    前記ステートマシンの解析結果に基づき、前記メモリとディスク装置の間でのデータ転送制御を行うデータ転送制御部とを備え、
    前記ディスクリプタフェッチ回路は、前記複数組のDMA転送制御指示部の出力を基に、優先度の高いディスクリプタから順にフェッチする機能を有し、
    前記データ転送制御部は、前記ディスクリプタフェッチ回路がフェッチしたディスクリプタに基づいて前記メモリとディスク装置の間でのデータ転送制御を行う機能を備えていることを特徴とするストレージ装置。
  3. 前記ディスクリプタフェッチ回路に、
    前記プロセッサがアービトレーション方法を選択するための情報を設定するアービトレーション方法選択レジスタと、
    固定優先度のアービトレーション方法を選択するための固定優先度アービトレーション回路と、
    重み付けした情報によりアービトレーションを選択するための重み付けラウンドロビンアービトレーション回路と、
    前記アービトレーション方法選択レジスタの情報に基づいて、前記固定優先度アービトレーション回路の出力と、前記重み付けラウンドロビンアービトレーション回路の出力の何れか一方の出力を選択し、選択した方の出力をフェッチ選択信号として出力するセレクタとを備え、
    前記ディスクリプタフェッチ回路は、前記セレクタから出力されたフェッチ選択信号に基いて前記メモリからディスクリプタをフェッチする機能を備えていることを特徴とする請求項1又は2記載のストレージ装置。
  4. 前記DMA転送制御指示部は、
    前記プロセッサがメモリ上に幾つディスクリプタを用意したかを示すポインタとして機能するTOPレジスタと、前記プロセッサがメモリ上のどのアドレスにディスクリプタを配置するかを設定するBASEレジスタと、DMA制御回路が幾つディスクリプタの処理を終えたかを示すポインタとして機能するBTMレジスタを備えると共に、
    前記TOPレジスタの値と前記BTMレジスタの値を比較して監視する比較回路と、
    前記BASEレジスタの値とBTMレジスタの値を加算する加算回路を備え、前記比較回路の出力と加算回路の出力をディスクリプタフェッチ回路へ出力する構成であり、
    前記TOPレジスタと、BASEレジスタと、BTMレジスタと、比較回路と、加算回路を含めて1組のDMA転送制御指示部を構成し、このDMA転送制御指示部の組を複数組備えていることを特徴とする請求項1又は2又は3記載のストレージ装置。
JP2004065035A 2004-03-09 2004-03-09 ストレージ装置 Withdrawn JP2005258509A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004065035A JP2005258509A (ja) 2004-03-09 2004-03-09 ストレージ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004065035A JP2005258509A (ja) 2004-03-09 2004-03-09 ストレージ装置

Publications (1)

Publication Number Publication Date
JP2005258509A true JP2005258509A (ja) 2005-09-22

Family

ID=35084196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004065035A Withdrawn JP2005258509A (ja) 2004-03-09 2004-03-09 ストレージ装置

Country Status (1)

Country Link
JP (1) JP2005258509A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061220A (ja) * 2008-09-01 2010-03-18 Sony Computer Entertainment Inc データ転送装置、データ転送方法およびプロセッサ
JP2010191492A (ja) * 2009-02-16 2010-09-02 Ricoh Co Ltd データ転送制御装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
US8065448B2 (en) 2008-05-15 2011-11-22 Fuji Xerox Co., Ltd. DMA control system, printing apparatus, transfer instruction method and computer readable medium
US9921983B2 (en) 2013-10-29 2018-03-20 Socionext Inc. Direct memory access controller, control method thereof, and information processing system
WO2018135437A1 (ja) * 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 転送制御装置、転送装置、転送制御方法及び転送制御プログラム
JP2018129614A (ja) * 2017-02-07 2018-08-16 オムロン株式会社 制御装置および通信装置
US10353587B2 (en) 2014-07-24 2019-07-16 Samsung Electronics Co., Ltd. Data storage device and method of processing data thereof
JP2021141537A (ja) * 2020-03-09 2021-09-16 オムロン株式会社 通信制御機器および通信制御機器の制御方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065448B2 (en) 2008-05-15 2011-11-22 Fuji Xerox Co., Ltd. DMA control system, printing apparatus, transfer instruction method and computer readable medium
JP2010061220A (ja) * 2008-09-01 2010-03-18 Sony Computer Entertainment Inc データ転送装置、データ転送方法およびプロセッサ
US8719542B2 (en) 2008-09-01 2014-05-06 Sony Corporation Data transfer apparatus, data transfer method and processor
JP2010191492A (ja) * 2009-02-16 2010-09-02 Ricoh Co Ltd データ転送制御装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
US9921983B2 (en) 2013-10-29 2018-03-20 Socionext Inc. Direct memory access controller, control method thereof, and information processing system
US10353587B2 (en) 2014-07-24 2019-07-16 Samsung Electronics Co., Ltd. Data storage device and method of processing data thereof
JP2018116550A (ja) * 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 転送制御装置
WO2018135437A1 (ja) * 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 転送制御装置、転送装置、転送制御方法及び転送制御プログラム
US20200042476A1 (en) * 2017-01-19 2020-02-06 Nec Platforms, Ltd. Transfer control device, transfer device, transfer control method, and transfer control program
US11023399B2 (en) 2017-01-19 2021-06-01 Nec Platforms, Ltd. Transfer control device, transfer device, transfer control method, and transfer control program
JP2018129614A (ja) * 2017-02-07 2018-08-16 オムロン株式会社 制御装置および通信装置
JP2021141537A (ja) * 2020-03-09 2021-09-16 オムロン株式会社 通信制御機器および通信制御機器の制御方法
WO2021181875A1 (ja) * 2020-03-09 2021-09-16 オムロン株式会社 通信制御機器および通信制御機器の制御方法
JP7419889B2 (ja) 2020-03-09 2024-01-23 オムロン株式会社 通信制御機器および通信制御機器の制御方法

Similar Documents

Publication Publication Date Title
KR20210011451A (ko) 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링
JP2008047116A (ja) 入力/出力装置とメモリ間のデータ転送の融通性のある制御
US9703603B1 (en) System and method for executing accelerator call
US20070106879A1 (en) Semiconductor device
US20130036426A1 (en) Information processing device and task switching method
GB2431749A (en) DMA chain
JP2005258509A (ja) ストレージ装置
JP2008532167A (ja) 割込み制御器を有するデータ処理システム及び割込み制御方法
JP4855864B2 (ja) ダイレクトメモリアクセスコントローラ
JP5254710B2 (ja) データ転送装置、データ転送方法およびプロセッサ
JP2010128604A (ja) メモリシステム
US7254667B2 (en) Data transfer between an external data source and a memory associated with a data processor
JP4642531B2 (ja) データ要求のアービトレーション
JP2007272554A (ja) データ処理装置
US20050256998A1 (en) Bus bridge device
JP7225904B2 (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
US20080209085A1 (en) Semiconductor device and dma transfer method
WO2022257898A1 (zh) 一种任务调度的方法、系统和硬件任务调度器
JP5644197B2 (ja) コンピュータシステムおよび割込要求処理方法
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP5347544B2 (ja) 半導体集積回路
JP4198016B2 (ja) 情報処理装置およびその割り込み制御方法
JP6138482B2 (ja) 組み込みシステム
JPWO2018003244A1 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
JP2015215641A (ja) 情報処理装置,エミュレーションプログラム,及びエミュレーション方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605