JP4536361B2 - データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 - Google Patents
データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 Download PDFInfo
- Publication number
- JP4536361B2 JP4536361B2 JP2003400512A JP2003400512A JP4536361B2 JP 4536361 B2 JP4536361 B2 JP 4536361B2 JP 2003400512 A JP2003400512 A JP 2003400512A JP 2003400512 A JP2003400512 A JP 2003400512A JP 4536361 B2 JP4536361 B2 JP 4536361B2
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- information
- processor
- transfer information
- queue
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Description
図1は、本発明の一実施の形態であるコンピュータを示すブロック図である。
コンピュータ1は、CPU10、RAM20、記憶装置30、入力装置40、出力装置50、DMAコントローラ60、I/Oインタフェース70を備える。
図2は、データ転送情報の一例を示す図である。図2に示すように、データ転送情報は、転送ID欄201、転送方向欄202、ディスクアドレス欄203、転送長欄204を備える。
転送方向欄202には、記憶装置30とバッファメモリ71との間でデータが転送される方向を示す値が設定される。例えば、転送方向欄202に「0」が設定されているときは、バッファメモリ71に記憶されているデータが記憶装置30に転送される。転送方向欄202に「1」が設定されているときは、記憶装置30に記憶されているデータがバッファメモリ71に転送される。
ディスクアドレス欄203には、記憶装置30のアドレスが設定される。DMAコントローラ60は、記憶装置30のディスクアドレス欄203に記憶されているデータをバッファメモリ71に転送したり、バッファメモリ71に記憶されているデータを記憶装置30のディスクアドレス欄203から始まる記憶領域に転送したりする。
転送長欄204には、バッファメモリ71と記憶装置30との間で転送されるデータのデータ長が設定される。
図3は、本実施の形態における、バッファメモリ71と記憶装置30との間でのデータの転送処理の流れを示すフローチャートである。
ここで、第1のプロセッサ(CPU10)が既にキュー(非優先転送情報キュー21又は優先転送情報キュー22)に登録したデータ転送情報について、第1のプロセッサが、例えば、その内容を変更したり、キューから削除したりしたいという状況が考えられる。このとき、第2のプロセッサ(DMAコントローラ60)が、例えば、第1のプロセッサが変更している最中のデータ転送情報を読み出し、そのデータ転送情報に基づいてデータ転送処理を行ってしまうと、第1のプロセッサがそのデータ転送情報によって指示しようとする記憶領域とは異なる記憶領域間でのデータ転送処理が行われてしまうおそれがある。また、第2のプロセッサが、例えば、第1のプロセッサによってキューから削除されようとしているデータ転送情報に基づいてデータ転送処理を行ってしまうと、第2のプロセッサは無駄なデータ転送処理を行うことになってしまい、第2のプロセッサの処理効率のみならず、データ転送装置全体としてのデータ転送の効率も下げてしまうおそれがある。そのため、第1のプロセッサは、第2のプロセッサのデータ転送処理を一時中止させ、第1のプロセッサが変更や削除を行おうとしているデータ転送情報を第2のプロセッサが読み出すことがないようにする必要がある。ただし、第2のプロセッサがデータ転送処理を実行中にその実行中のデータ転送処理を中止してしまうと、再度そのデータ転送処理をやり直す必要があり、全体としてデータ転送にかかる処理時間が長くなってしまうおそれがある。そこで、本発明では、第2のプロセッサはデータ転送処理を完了した後に、レジスタ(アボートレジスタ62)に、データ転送処理を中止することを示すコマンドである中止コマンドが設定されていれば、後続のデータ転送処理を中止するようにしている。
CPU10は、DMAコントローラ60のアボートレジスタ62に所定の値を設定することにより、DMAコントローラ60のデータ転送処理を中止するように指示する。アボートレジスタ62に設定される値として、あるデータ転送情報に基づくデータ転送処理を終了した時点で処理を中止するように指示する中止コマンドと、実行中のデータ転送処理を即座に中止するように指示する強制終了コマンドとの2種類がある。中止コマンドとは、例えば、「0x0001」のような値である。また、強制終了コマンドとは、例えば、「0x0002」のような値である。
ここで、CPU10は、キュー(非優先転送情報キュー21又は優先転送情報キュー22)に登録されているデータ転送情報を削除する場合に、削除しようとしているデータ転送情報の転送長欄204に、データ転送処理を行わないことを示す値を設定するようにすることもできる。データ転送処理を行わないことを示す値とは、例えば「0」である。データ転送処理を行わないことを示す値として、例えば「−1」等の、通常データ長としては使われない値を用いるようにしてもよい。DMAコントローラ60は、優先転送情報キュー22又は非優先転送情報キュー21から読み出したデータ転送情報の転送長欄204に、このようなデータ転送処理を行わないことを示す値が設定されていると、データ転送処理を行わないようにすることができる。
次に、本発明を、記憶デバイス制御装置に適用した実施の形態を説明する。
図5は、本発明に係る第2の実施の形態として説明する情報処理システムの全体構成を示すブロック図である。
チャネル制御部210は、情報処理装置100から受信するデータ入出力要求に応じたデータ入出力の処理以外にも、下記のような処理を行うことがある。
チャネル制御部210は、例えば、記憶デバイス300の第1の論理ボリュームに記憶されているデータの保全性を高めるために、第1の論理ボリュームとは異なる第2の論理ボリュームに、第1の論理ボリュームに記憶されているデータの複製をコピーする処理(以下、ローカルコピー処理と称する)を行うことがある。
図7は、データ転送LSI500の構成を示すブロック図である。
データ転送LSI500は、DMA501、PCIインタフェース502、PCIインタフェース503、バッファ制御部504、キャッシュインタフェース505、データ転送情報フェッチ部506を備える。
PCIインタフェース503もPCIインタフェース502と同様、PCIバスに接続する。データ転送LSI500はPCIインタフェース503を介してマイクロプロセッサ211やローカルメモリ212と接続する。
なお、通信インタフェース213やマイクロプロセッサ211、ローカルメモリ212などとの接続を、同じPCIバスで接続するようにしてもよい。その場合、データ転送LSI500にはPCIインタフェースは少なくとも1つ存在すればよい。また、上記PCIインタフェース502及びPCIインタフェース503はPCIバス以外のバスを使用して外部の装置と接続するようにしてもよい。
図8は、データ転送LSI500がデータ転送に必要な情報であるデータ転送情報の詳細を示す表である。データ転送情報600は、マスク欄601、転送バイト数欄602、キャッシュアドレス欄603、CRC欄604、転送方向欄605、フラグ欄606、識別情報欄607、チェインフラグ欄608、RCRC欄609、バッファアドレス欄610、LRC欄611を備える。
マスク欄601には、当該データ転送情報600の所属する転送情報リストに属するデータ転送情報600のうち、データ転送LSI500が直前に処理をしたデータ転送情報600の各欄に設定されていた値を引き継ぐ目的として、当該データ転送情報600の各欄にコピーして利用する場合に、どの欄の値をコピーするかを示す情報が設定される。
転送バイト数欄602には、転送対象となるデータの長さが設定される。
キャッシュアドレス欄603には、データ転送LSI500がデータの転送を行う転送元あるいは転送先として利用する、キャッシュメモリ230上のアドレスが設定される。
LRC欄611には、当該データ転送情報600についての誤り検出符号が設定される。この誤り検出符号は、例えば、LRC手法によって計算されたLRC符号である。マイクロプロセッサ211は、データ転送情報600をローカルメモリ212上に書き込む基準となるアドレスを初期値として、マスク欄601、転送バイト数欄602、キャッシュアドレス欄603、CRC欄604、転送方向欄605、フラグ欄606、識別情報欄607、チェインフラグ欄608、RCRC欄609、及びバッファアドレス欄610の各欄の値を用いてLRC符号を計算する。
図9は、データ転送LSI500によるデータ転送が終了した際に、データ転送LSI500がローカルメモリ212に書き込む終了ステータス情報の一例を示す表である。本実施の形態では、データ転送LSI500は、転送情報リスト単位で終了ステータス情報を生成し、ローカルメモリ212に書き込むものとしている。
識別情報欄701には、データ転送LSI500が読み出したデータ転送情報600の識別情報欄607に設定されている識別情報がそのまま設定される。これにより、データ転送LSI500は終了ステータス情報700を転送情報リストと対応付ける。
終了ステータスコード欄702には、データ転送LSI500がデータを転送をどのように終了したかを示す値が設定される。本実施の形態では、終了ステータスコード欄702の第1ビットが「1」である場合、データ転送LSI500が、転送情報リストについてのデータ転送処理を正常に終了したことを示す。第2ビットが「1」である場合は、データ転送LSI500がマイクロプロセッサ211の強制終了コマンドによってデータ転送処理を強制終了したことを示す。第3ビットが「1」である場合は、データ転送LSI500がマイクロプロセッサ211からの中止コマンドによってデータ転送処理を中止していることを示す。第4ビットが「1」である場合は、データ転送LSI500がハードウェアのエラーによってデータ転送処理を中止したことを示す。
図10は、データ転送LSI500が備えるレジスタを示す図である。データ転送LSI500は、LPBAレジスタ801、LSBAレジスタ802、LSIBAレジスタ803、LNUMレジスタ804、SNUMレジスタ805、LIPレジスタ806、STPレジスタ807、LOPレジスタ808、POPレジスタ809、ABORTレジスタ810を備えている。
LSBAレジスタ802には、データ転送LSI500がローカルメモリ212に終了ステータス情報700を書き込むアドレスの基準となるアドレス(以下、ステータスベースアドレスと称する)が設定される。データ転送LSI500は、ステータスベースアドレスから順に終了ステータス情報700を書き込む。
LNUMレジスタ804には、1つの転送情報リストに設定可能なデータ転送情報600の数が設定される。
SNUMレジスタ805には、データ転送LSI500がローカルメモリ212上に終了ステータス700を書き込むことのできる数が設定される。
データ転送LSI500は、LIPレジスタ806及びLOPレジスタ808の内容を比較することにより、後続して処理すべき転送情報リストが存在するかどうかを調べることができる。
次に、本実施の形態による、転送情報リストを用いたデータ転送処理について、まずは転送情報リストが登録されるキューが1つの場合を説明する。図11は、転送情報リストを用いたデータ転送処理が行われる処理の流れを示すフローチャートである。
本実施の形態では、ローカルメモリ212上に、優先キューと非優先キューとの2つのキューが実現される。マイクロプロセッサ211は、優先度の高いデータ転送処理についての転送情報リストを優先キューに登録し、通常のデータ転送処理についての転送情報リストを非優先キューに登録する。
次に、データ転送LSI500が上記のようなデータ転送処理を中止する処理について説明する。
本実施の形態では、マイクロプロセッサ211がローカルメモリ212に書き込む単位を転送情報リスト単位としたが、データ転送情報単位とすることもできる。例えば、データ転送LSI500のLIPレジスタ804又はPRLIPレジスタ814を、ローカルメモリ212上に記憶されている複数のデータ転送情報600の何番目かを示す情報とし、マイクロプロセッサ211が連続する複数のデータ転送情報600を書き込んだ際に、その最後となるデータ転送情報600がローカルメモリ212上で何番目に書き込まれたデータ転送情報になったかを設定する。そして、データ転送LSI500は、非優先リストベースアドレス又は優先リストベースアドレスに、データ転送情報600のデータ長をLOPレジスタ808又はPRLOPレジスタ818に設定されている数分だけ加算し、ローカルメモリ212からデータ転送情報600を読み出すアドレスを求め、データ転送情報600を読み出すことができる。また、データ転送LSI500は、読み出したデータ転送情報600のチェインフラグ欄608が「1」である間、読み出すアドレスにデータ転送情報600のデータ長を足しながら、データ転送情報600を読み続けることができる。これにより、マイクロプロセッサ211からデータ転送LSI500に伝達されるデータ転送に関する情報は、転送情報リスト単位ではなくデータ転送情報600単位となり、可変長のデータ転送情報600の受け渡しをすることができる。
20 RAM 21 転送情報キュー
22 終了ステータスキュー 30 記憶装置
40 入力装置 50 出力装置
60 DMAコントローラ 61 スタートレジスタ
62 アボートレジスタ 70 I/Oインタフェース
71 バッファメモリ
100 情報処理装置 200 記憶デバイス制御装置
210 チャネル制御部 211 マイクロプロセッサ
212 ローカルメモリ 213 通信インタフェース
214 バッファメモリ 220 共有メモリ
230 キャッシュメモリ 240 ディスク制御部
300 記憶デバイス 400 ネットワーク
500 データ転送LSI500 600 データ転送情報
700 終了ステータス情報
Claims (7)
- 第1の記憶領域を特定する情報と第2の記憶領域を特定する情報とを含むデータ転送情報を格納する第1及び第2のキューを備えるメモリと、
前記データ転送情報を前記第1又は第2のキューに登録する第1のプロセッサと、
前記第1の記憶領域に記憶されているデータを前記第2の記憶領域に転送するデータ転送処理を行う第2のプロセッサと、
を備え、
前記第2のプロセッサは、前記第1のキューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、読み出した前記データ転送情報に後続する前記データ転送情報が前記第1のキューに登録されているかどうかを判断し、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されているときは、前記後続する前記データ転送情報を前記第1のキューから読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されていないときは、前記データ転送情報を前記第2のキューから読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記第1のプロセッサにより、前記データ転送処理の実行を制御するコマンドが設定されるレジスタであるアボートレジスタを有し、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに中止コマンドが設定されたことを検出すると、現在実行中のある前記データ転送情報に基づく前記データ転送処理が終了した時点でデータ転送処理を中止し、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに強制終了コマンドが設定されたことを検出すると現在実行中の前記データ転送処理を強制終了し、
前記第1のプロセッサは、前記アボートレジスタに前記中止コマンドを設定した後、所定時間内に前記第2のプロセッサがデータ転送処理を中止したことを確認できない場合に、前記アボートレジスタに前記強制終了コマンドを設定する
ことを特徴とするデータ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記第2のプロセッサは、前記アボートレジスタに再開コマンドが設定されたことを検出すると、中止していた前記前記データ転送処理を再開する
ことを特徴とするデータ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記第1のプロセッサが実行するタスクの識別情報であるタスク識別情報と、前記タスクに起因する前記データ転送処理の優先度とを対応付けて管理する優先度管理部を備え、
前記第1のプロセッサは、実行している前記タスクの前記タスク識別情報に対応する前記優先度を前記優先度管理部から取得し、取得した前記優先度に応じて、前記タスクに起因して実行される前記データ転送処理についてのデータ転送情報を登録する先となる前記キューを決定し、決定した前記キューに前記データ転送情報を登録すること、
を特徴とするデータ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記第1のプロセッサが実行する同一のタスクに起因して実行される前記データ転送処理についての前記データ転送情報が前記第2のキューに登録されている登録数を、前記タスクの前記タスク識別情報毎に記憶する登録数記憶部を備え、
前記第1のプロセッサは、前記第1又は第2のキューに登録しようとしている前記データ転送情報に対応する前記タスク以外の前記タスクに対応する前記登録数を前記登録数記憶部から取得し、取得した前記登録数に応じて、前記データ転送情報を登録する先となる前記キューを決定し、決定した前記キューに前記データ転送情報を登録すること、
を特徴とするデータ転送装置。 - 情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信し、受信したデータ入出力要求を記憶するバッファメモリを備える通信インタフェース部と、
前記記憶デバイスとの間でデータを授受する記憶デバイスインタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記記憶デバイスの記憶領域を特定する情報とを含むデータ転送情報を格納する第1及び第2のキューを備えるメモリと、
前記データ転送情報を前記第1又は第2のキューに登録する第1のプロセッサと、
前記バッファメモリと前記記憶デバイスとの間でデータを転送するデータ転送処理を行い、レジスタを備える第2のプロセッサと、
を備え、
前記第2のプロセッサは、前記第1のキューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、読み出した前記データ転送情報に後続する前記データ転送情報が前記第1のキューに登録されているかどうかを判断し、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されているときは、前記後続する前記データ転送情報を前記第1のキューから読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されていないときは、前記第2のキューから前記データ転送情報を読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記第1のプロセッサにより、前記データ転送処理の実行を制御するコマンドが設定されるレジスタであるアボートレジスタを有し、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに中止コマンドが設定されたことを検出すると、現在実行中のある前記データ転送情報に基づく前記データ転送処理が終了した時点でデータ転送処理を中止し、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに強制終了コマンドが設定されたことを検出すると現在実行中の前記データ転送処理を強制終了し、
前記第1のプロセッサは、前記アボートレジスタに前記中止コマンドを設定した後、所定時間内に前記第2のプロセッサがデータ転送処理を中止したことを確認できない場合に、前記アボートレジスタに前記強制終了コマンドを設定する
ことを特徴とする記憶デバイス制御装置。 - 情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
前記チャネル制御部と前記ディスク制御部との間で授受されるデータを記憶するキャッシュメモリと、
を備える記憶デバイス制御装置であって、
前記チャネル制御部は、
前記情報処理装置から前記データ入出力要求を受信し、受信した前記データ入出力要求を記憶するバッファメモリを備える通信インタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記キャッシュメモリの記憶領域を特定する情報とを含むデータ転送情報を格納する第1及び第2のキューを備えるメモリと、
前記データ転送情報を前記第1又は第2のキューに登録する第1のプロセッサと、
前記バッファメモリと前記キャッシュメモリとの間でデータを転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備え、
前記第2のプロセッサは、前記第1のキューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、読み出した前記データ転送情報に後続する前記データ転送情報が前記第1のキューに登録されているかどうかを判断し、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されているときは、前記後続する前記データ転送情報を前記第1のキューから読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されていないときは、前記データ転送情報を前記第2のキューから読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記第1のプロセッサにより、前記データ転送処理の実行を制御するコマンドが設定されるレジスタであるアボートレジスタを有し、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに中止コマンドが設定されたことを検出すると、現在実行中のある前記データ転送情報に基づく前記データ転送処理が終了した時点でデータ転送処理を中止し、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに強制終了コマンドが設定されたことを検出すると現在実行中の前記データ転送処理を強制終了し、
前記第1のプロセッサは、前記アボートレジスタに前記中止コマンドを設定した後、所定時間内に前記第2のプロセッサがデータ転送処理を中止したことを確認できない場合に、前記アボートレジスタに前記強制終了コマンドを設定する
ことを特徴とする記憶デバイス制御装置。 - 情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
前記チャネル制御部と前記ディスク制御部との間で授受されるデータを記憶するキャッシュメモリと、
を備え、
前記チャネル制御部は、
前記情報処理装置から前記データ入出力要求を受信し、受信した前記データ入出力要求を記憶するバッファメモリを備える通信インタフェース部と、
前記バッファメモリの記憶領域を特定する情報と、前記キャッシュメモリの記憶領域を特定する情報とを含むデータ転送情報を格納する第1及び第2のキューを備えるメモリと、
前記データ転送情報を前記第1又は第2のキューに登録する第1のプロセッサと、
前記バッファメモリと前記キャッシュメモリとの間でデータを転送するデータ転送処理を行い、レジスタを備える、第2のプロセッサと、
を備え、
前記第2のプロセッサが、前記第1のプロセッサにより、前記データ転送処理の実行を制御するコマンドが設定されるレジスタであるアボートレジスタを有する記憶デバイス制御装置の制御方法であって、
前記第2のプロセッサは、前記第1のキューに登録されている前記データ転送情報を読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、読み出した前記データ転送情報に後続する前記データ転送情報が前記第1のキューに登録されているかどうかを判断し、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されているときは、前記後続する前記データ転送情報を前記第1のキューから読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記後続する前記データ転送情報が前記第1のキューに登録されていないときは、前記データ転送情報を前記第2のキューから読み出し、読み出した前記データ転送情報に基づいて前記データ転送処理を行い、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに中止コマンドが設定されたことを検出すると、現在実行中のある前記データ転送情報に基づく前記データ転送処理が終了した時点でデータ転送処理を中止し、
前記第2のプロセッサは、前記データ転送処理の実行中に前記アボートレジスタに強制終了コマンドが設定されたことを検出すると現在実行中の前記データ転送処理を強制終了し、
前記第1のプロセッサは、前記アボートレジスタに前記中止コマンドを設定した後、所定時間内に前記第2のプロセッサがデータ転送処理を中止したことを確認できない場合に、前記アボートレジスタに前記強制終了コマンドを設定する
ことを特徴とする記憶デバイス制御装置の制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003400512A JP4536361B2 (ja) | 2003-11-28 | 2003-11-28 | データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 |
US10/883,895 US7337244B2 (en) | 2003-11-28 | 2004-07-02 | Data transfer apparatus, storage device control apparatus and control method using storage device control apparatus |
US11/649,108 US20070162658A1 (en) | 2003-11-28 | 2007-01-04 | Data transfer apparatus, storage device control apparatus and control method using storage device control apparatus |
US11/970,983 US20080109576A1 (en) | 2003-11-28 | 2008-01-08 | Data Transfer Apparatus, Storage Device Control Apparatus and Control Method Using Storage Device Control Apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003400512A JP4536361B2 (ja) | 2003-11-28 | 2003-11-28 | データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005165439A JP2005165439A (ja) | 2005-06-23 |
JP4536361B2 true JP4536361B2 (ja) | 2010-09-01 |
Family
ID=34616660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003400512A Expired - Fee Related JP4536361B2 (ja) | 2003-11-28 | 2003-11-28 | データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (3) | US7337244B2 (ja) |
JP (1) | JP4536361B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996782B2 (en) | 2012-03-23 | 2015-03-31 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100349150C (zh) * | 2005-06-06 | 2007-11-14 | 北京中星微电子有限公司 | 通过直接存储器访问控制器传输数据的系统及方法 |
JP4408126B2 (ja) * | 2006-12-13 | 2010-02-03 | 富士通株式会社 | 監視装置、半導体集積回路、および監視方法 |
EP1956484B1 (en) * | 2007-02-07 | 2011-10-19 | Robert Bosch Gmbh | Administration module, producer and consumer processor, arrangement thereof and method for inter-processor communication via a shared memory |
US8132088B2 (en) * | 2007-08-14 | 2012-03-06 | Hewlett-Packard Development Company, L.P. | Data formatting in data storage |
DE102008001548B4 (de) * | 2008-05-05 | 2017-03-02 | Robert Bosch Gmbh | Teilnehmerknoten eines Kommunikationssystems, Kommunikationssystem und Verfahren zum Übertragen einer Nachricht in dem Kommunikationssystem |
JP5593682B2 (ja) * | 2009-11-17 | 2014-09-24 | セイコーエプソン株式会社 | プリンター、プリンターの制御方法、及び、プログラム |
WO2011161768A1 (ja) * | 2010-06-22 | 2011-12-29 | 富士通株式会社 | データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム |
JP5644563B2 (ja) * | 2011-02-07 | 2014-12-24 | 住友電装株式会社 | コネクタ |
US9021146B2 (en) | 2011-08-30 | 2015-04-28 | Apple Inc. | High priority command queue for peripheral component |
US20130179614A1 (en) * | 2012-01-10 | 2013-07-11 | Diarmuid P. Ross | Command Abort to Reduce Latency in Flash Memory Access |
US8918680B2 (en) | 2012-01-23 | 2014-12-23 | Apple Inc. | Trace queue for peripheral component |
JP5729445B2 (ja) * | 2013-10-10 | 2015-06-03 | 富士通株式会社 | マルチプロセッサシステム、制御方法、および制御プログラム |
KR101446882B1 (ko) | 2013-10-29 | 2014-10-06 | 엘에스산전 주식회사 | Plc 통신모듈에서 메시지 처리방법 |
EP3296836B1 (en) * | 2015-07-22 | 2019-09-11 | Huawei Technologies Co., Ltd. | Computer device and data read-write method for computer device |
US9996262B1 (en) * | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
US10657087B2 (en) * | 2018-05-31 | 2020-05-19 | Toshiba Memory Corporation | Method of out of order processing of scatter gather lists |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002041445A (ja) * | 2000-05-19 | 2002-02-08 | Matsushita Electric Ind Co Ltd | 高性能dmaコントローラ |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02241191A (ja) | 1989-03-14 | 1990-09-25 | Nec Corp | コマンド待ち行列面切替え方式 |
JPH06103225A (ja) * | 1992-09-18 | 1994-04-15 | Fujitsu Ltd | チェーン式dma方式及びそのためのdmaコントローラ |
US5848432A (en) | 1993-08-05 | 1998-12-08 | Hitachi, Ltd. | Data processor with variable types of cache memories |
AU703750B2 (en) * | 1994-10-14 | 1999-04-01 | Compaq Computer Corporation | Easily programmable memory controller which can access different speed memory devices on different cycles |
JPH08249218A (ja) | 1995-03-15 | 1996-09-27 | Fujitsu Ltd | ファイル制御装置及びデータ書き込み方法 |
US5790794A (en) * | 1995-08-11 | 1998-08-04 | Symbios, Inc. | Video storage unit architecture |
US5761532A (en) * | 1995-12-29 | 1998-06-02 | Intel Corporation | Direct memory access controller with interface configured to generate wait states |
US5842038A (en) | 1996-10-10 | 1998-11-24 | Unisys Corporation | Optimized input/output memory access request system and method |
JP2988443B2 (ja) * | 1997-06-27 | 1999-12-13 | 日本電気株式会社 | データ転送方式 |
US6108743A (en) * | 1998-02-10 | 2000-08-22 | Intel Corporation | Technique for performing DMA including arbitration between a chained low priority DMA and high priority DMA occurring between two links in the chained low priority |
US6216199B1 (en) | 1999-08-04 | 2001-04-10 | Lsi Logic Corporation | Hardware mechanism for managing cache structures in a data storage system |
US6801958B2 (en) | 1999-12-15 | 2004-10-05 | Texas Instruments Incorporated | Method and system for data transfer |
US6574240B1 (en) * | 2000-01-19 | 2003-06-03 | Advanced Micro Devices, Inc. | Apparatus and method for implementing distributed layer 3 learning in a network switch |
US20020091826A1 (en) | 2000-10-13 | 2002-07-11 | Guillaume Comeau | Method and apparatus for interprocessor communication and peripheral sharing |
JP2003091497A (ja) | 2001-05-17 | 2003-03-28 | Matsushita Electric Ind Co Ltd | データ転送装置及びデータ転送方法 |
US7062591B2 (en) | 2001-09-28 | 2006-06-13 | Dot Hill Systems Corp. | Controller data sharing using a modular DMA architecture |
US7159048B2 (en) | 2001-12-10 | 2007-01-02 | Emulex Design & Manufacturing Corporation | Direct memory access (DMA) transfer buffer processor |
US6779084B2 (en) | 2002-01-23 | 2004-08-17 | Intel Corporation | Enqueue operations for multi-buffer packets |
JP3655266B2 (ja) * | 2002-07-16 | 2005-06-02 | 株式会社東芝 | 情報処理装置 |
EP1387279B1 (en) * | 2002-07-31 | 2008-05-14 | Texas Instruments Inc. | Cache coherency in a multi-processor system |
US7337275B2 (en) | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
JP4190859B2 (ja) * | 2002-10-28 | 2008-12-03 | 株式会社日立製作所 | 記憶装置の制御装置、及び記憶装置の制御装置の制御方法 |
US7028147B2 (en) | 2002-12-13 | 2006-04-11 | Sun Microsystems, Inc. | System and method for efficiently and reliably performing write cache mirroring |
US7219182B2 (en) | 2003-03-10 | 2007-05-15 | Marvell International Ltd. | Method and system for using an external bus controller in embedded disk controllers |
JP4401788B2 (ja) * | 2004-01-06 | 2010-01-20 | 株式会社日立製作所 | ストレージ制御装置 |
-
2003
- 2003-11-28 JP JP2003400512A patent/JP4536361B2/ja not_active Expired - Fee Related
-
2004
- 2004-07-02 US US10/883,895 patent/US7337244B2/en not_active Expired - Fee Related
-
2007
- 2007-01-04 US US11/649,108 patent/US20070162658A1/en not_active Abandoned
-
2008
- 2008-01-08 US US11/970,983 patent/US20080109576A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002041445A (ja) * | 2000-05-19 | 2002-02-08 | Matsushita Electric Ind Co Ltd | 高性能dmaコントローラ |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996782B2 (en) | 2012-03-23 | 2015-03-31 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
US9304691B2 (en) | 2012-03-23 | 2016-04-05 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
Also Published As
Publication number | Publication date |
---|---|
US20050120151A1 (en) | 2005-06-02 |
US7337244B2 (en) | 2008-02-26 |
JP2005165439A (ja) | 2005-06-23 |
US20080109576A1 (en) | 2008-05-08 |
US20070162658A1 (en) | 2007-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4536361B2 (ja) | データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 | |
US7016985B2 (en) | Method, system, and program for prioritizing input/output (I/O) requests submitted to a device driver | |
US6397293B2 (en) | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface | |
US6526477B1 (en) | Host-memory based raid system, device, and method | |
JP4401895B2 (ja) | 計算機システム、計算機及びそのプログラム。 | |
JP4756992B2 (ja) | ストレージシステム及び記憶制御方法 | |
US7395392B2 (en) | Storage system and storage control method | |
US7823008B2 (en) | Maintaining consistency in a remote copy data storage system | |
US20110251993A1 (en) | Asynchronous remote copy system and storage control method | |
US20110282963A1 (en) | Storage device and method of controlling storage device | |
JP2006139478A (ja) | ディスクアレイシステム | |
US6954835B1 (en) | Intercepting control of a host I/O process | |
US7143206B2 (en) | Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor | |
JP2005165619A (ja) | データ転送装置の制御方法、データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法、及びチャネルアダプタ。 | |
US6801954B1 (en) | Method and apparatus to concurrently operate on multiple data movement transactions in a disk array subsystem | |
US7287182B2 (en) | Method and apparatus for copying data of disk drive in disk array system | |
US6687801B1 (en) | Adaptive copy pending off mode | |
JP2006031335A (ja) | 情報処理システム及び方法 | |
US10248511B2 (en) | Storage system having multiple local and remote volumes and multiple journal volumes using dummy journals for sequence control | |
US20090216930A1 (en) | Information processing apparatus and control method thereof | |
US10719391B2 (en) | Storage system and storage control apparatus | |
JP3683831B2 (ja) | データ処理システムにおけるチャネル回復のためのチェックポイント指定方法、装置およびプログラム記録媒体 | |
JP2008041080A (ja) | 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ | |
JPH04324552A (ja) | センスデータ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061019 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091006 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091202 |
|
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: 20100615 |
|
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: 20100616 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |