JP2582520B2 - メモリと補助記憶装置間のデータ転送方法 - Google Patents

メモリと補助記憶装置間のデータ転送方法

Info

Publication number
JP2582520B2
JP2582520B2 JP5156443A JP15644393A JP2582520B2 JP 2582520 B2 JP2582520 B2 JP 2582520B2 JP 5156443 A JP5156443 A JP 5156443A JP 15644393 A JP15644393 A JP 15644393A JP 2582520 B2 JP2582520 B2 JP 2582520B2
Authority
JP
Japan
Prior art keywords
sector
storage device
intermediate buffer
sectors
page
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 - Lifetime
Application number
JP5156443A
Other languages
English (en)
Other versions
JPH06131259A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06131259A publication Critical patent/JPH06131259A/ja
Application granted granted Critical
Publication of JP2582520B2 publication Critical patent/JP2582520B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はページド・メモリ(page
d memory)を有するデータ処理システムの分野に関す
る。
【0002】
【従来の技術】ページングは仮想メモリをページと称さ
れる固定長ブロックとして管理する多くの仮想メモリ・
コンピュータ・システムにおいて使用される技術であ
る。ページド・メモリ環境をサポートするシステムの例
に、IBM OS/2 V2.0オペレーティング・シ
ステムがある。
【0003】データ記憶装置におけるページド主記憶装
置と補助記憶装置との間のデータ転送は直接メモリ・ア
クセス(DMA)により首尾よく実行される。この技術
はプロセッサからの対話を要せずに、データをDMA制
御装置により移動する。DMAオペレーションはプロセ
ッサにより開始されるが、データ転送においてはプロセ
ッサは必要とされない。DMA装置はDMA制御装置を
組込み、それによりデータを直接、ディスクから主記憶
装置へDMAにより転送する装置である。
【0004】ページド・メモリ環境は、そのデータ転送
をDMAに依存する装置に対し、ある問題を提供する。
大部分の現存のDMA装置は連続的な物理メモリを仮定
する。しかしながら、ページド環境においては、仮想ア
ドレス空間において連続的なI/Oバッファは、通常、
不連続な物理ページを含む。分散/集合(scatter-gath
er)I/Oは、データ・ブロックをそのページが物理的
に不連続であるバッファとの間で転送する機構である。
集合書込み(gather-write)オペレーションは、物理的
に不連続なI/Oバッファを補助記憶装置上の連続的な
セクタ領域に書込む。分散読出し(scatter-read)オペ
レーションは、補助記憶装置から物理的に不連続なバッ
ファに、連続的なセクタ領域を読出す。
【0005】分散/集合機能をサポートするDMA装置
には、データが転送される物理メモリ内のロケーション
を決定する分散/集合ハードウェアが含まれ、I/O要
求において指定される全てのデータを、直接、主記憶装
置にDMA転送できる。OS/2 V2.0では、連続
的仮想アドレスを不連続な物理アドレスにマップする分
散/集合リストがカーネルにより生成される。分散/集
合機能をサポートするDMA装置に関連するデバイス・
ドライバは、このリストを使用して、補助記憶装置と主
記憶装置との間で要求データをDMA転送する。分散/
集合機能を実施するDMA装置の例に、IBM PS/
2 SCSIアダプタがある。
【0006】
【発明が解決しようとする課題】分散/集合機能をサポ
ートしない周辺装置においては、補助記憶装置から主記
憶装置へのデータ転送のために、全I/O要求を中間バ
ッファに読出し、ここからこれらの要求をアプリケーシ
ョン・アドレス空間にコピーする機構が存在する。書込
みオペレーションでは、全I/O要求は中間バッファに
コピーされ、次に補助記憶装置に書込まれる。補助記憶
装置を最適に使用するために、通常、同時に3つのオペ
レーションが処理される。それらは(i)現実行中のI
/Oオペレーション、(ii)丁度実行を完了してステ
ータスを返却中のI/Oオペレーション、(iii)現
I/Oの完了時のために備えられるI/Oオペレーショ
ンである。これにより、補助記憶装置を最適に使用する
ためには、1ディスク当たり3つの中間バッファを用意
することが必要となり、各中間バッファは全I/Oオペ
レーションをバッファするために十分な長さを有する必
要がある。1ディスク当たり1つのバッファだけが割当
てられる場合には、直ちに1つのI/Oオペレーション
だけが実行可能となり、ディスクから主記憶装置へのデ
ータ転送レートを圧迫する。更に、プロセッサにより中
間バッファに或いは中間バッファからコピーされる大量
のデータのために、プロセッサのオーバヘッドは増加す
る。
【0007】OS/2 V2.0環境では、OS/2カ
ーネルがデバイス・ドライバからの情報により、その装
置が分散/集合機能をサポートせず、従って生成される
分散/集合リストが1つの入力だけしか含んでいないこ
とを認識する。
【0008】
【課題を解決するための手段】本発明はシステム・メモ
リがページ形式に配列され、補助記憶装置が分散/集合
機能をサポートしない従来システムの欠点を改善するも
のである。従って、本発明はその一側面として、主記憶
装置が物理アドレス空間及び仮想アドレス空間の両方に
おいてページに分割されるデータ処理システムにおけ
る、主記憶装置と補助記憶装置との間のデータ転送方法
を提供する。この方法はデータ処理システム内のプロセ
ッサ上で実行されるプログラムから、上記仮想アドレス
空間における少なくとも1セクタを含むデータ転送を要
求するステップ、各データ転送に対し、完全に物理ペー
ジ内に配置される要求セクタの識別、及び不連続な物理
ページ間の境界を横断するセクタの識別を決定するステ
ップ、及び物理ページ内に配置されるセクタに対して、
補助記憶装置と主記憶装置との間で直接DMAによりセ
クタを転送するステップ、及び上記境界を横断するセク
タに対して、各セクタを主記憶装置(読出し期間中)或
いは補助記憶装置(書込み期間中)のいずれかに、中間
バッファを介して転送するステップを含む。
【0009】主記憶装置から補助記憶装置へのデータ転
送期間(書込みオペレーション)において、不連続な物
理ページ間の境界を横断すると判断された各セクタに対
し、本方法は好適には、更にシステム・プロセッサの制
御の下で、セクタの一部をある物理ページから中間バッ
ファにコピーし、そのセクタの残りの部分を不連続な物
理ページからバッファにコピーするステップ、及びセク
タを中間主記憶装置から補助記憶装置にDMAにより転
送するステップを含む。
【0010】補助記憶装置から主記憶装置へのデータ転
送の期間(読出しオペレーション)において、不連続な
物理ページ間の境界を横断する各セクタに対し、本方法
はシステム・プロセッサの制御の下で、セクタを中間バ
ッファにDMAにより転送し、セクタの一部をある物理
ページの末尾にコピーし、そのセクタの残りの部分を不
連続なページの先頭にコピーするステップを含む。
【0011】従って本発明の技術を使用することによ
り、データ転送(I/O)要求が連続的ページ・セット
内に存在する時には、全てのデータはI/O要求により
指定されるアドレスで開始される主記憶装置内に直接D
MA転送される。
【0012】データ転送要求がセクタ境界上に整列して
配置され、多数の不連続な物理ページを横断する場合に
は、I/O要求は横断するページ数に等しい多数の小さ
な要求に分割され、各小要求に対応するデータが主記憶
装置と補助記憶装置との間で直接DMA転送される。
【0013】I/O要求が多数の不連続な物理ページを
横断し、セクタ境界上に整列して配置されない場合に
は、1ページ内に完全に含まれるセクタについては、主
記憶装置と補助記憶装置との間で直接DMA転送され、
ページ境界を横断するセクタについては、主記憶装置と
補助記憶装置との間を中間バッファを介して転送され
る。
【0014】本発明の第2の側面によれば、分散/集合
機能をサポートしない補助記憶装置において有効に使用
できるデータ処理システムが提供される。この処理シス
テムは、システム主記憶装置と補助記憶装置との間のデ
ータ転送時に、本発明の方法を実施する手段を含む。
【0015】
【実施例】OS/2オペレーティング・システムは多数
の機能的に相互接続されるコンポーネントにより構成さ
れ、これらのいくつかが図1に示される。OS/2構造
の中心にはOS/2カーネル10が存在し、これはスー
パバイザ特権を実行する制御プログラムを含む。カーネ
ルはデバイス・ドライバを使用して、システム・ハード
ウェアに接続される周辺装置を含むシステム・ハードウ
ェア資源をアクセスする。システム・プロセッサ(図示
せず)上で実行されるアプリケーション12は、OS/
2 APIを介して、OS/2カーネルにデータを要求
する。OS/2オペレーティング・システム、及びOS
/2デバイス・ドライバは、数多くの出版物により詳し
く述べられており、例えばDeitel及びKoganによる^TheD
esign of OS/2^(ISBN0-201-54889-5)などがある。
【0016】OS/2 V2.0はデバイス・マネージ
ャ14(DM)を有するモジュラ・ディスク・デバイス
・ドライバ・システムを含む。これはOS/2カーネル
にとっては、従来のデバイス・ドライバのように見える
が、アダプタ・デバイス・ドライバ(ADD)と称され
るモジュールが接続されるスタブである。その1つが図
1にディスク・デバイス・ドライバ16として示され、
これはディスク記憶装置18にI/Oコマンドを発行す
る。図1のディスク・デバイス・ドライバ及びディスク
記憶装置は、分散/集合機能を実施するハードウェアを
含まない。後の説明では、こうした装置を^非SG装置^
と称することにする。図1では単一の記憶装置だけが示
されるが、本発明の技術は、いくつかのディスク記憶装
置を含むディスク・サブシステムにおいても、同様に効
果的に使用できることが評価されよう。
【0017】OS/2 V2.0規定では、DMとAD
Dとの間にADDフィルタとして知られる追加モジュー
ルが配置され、これらは例えば暗号化などの付加価値機
能を実行するために提供される。図1の分散/集合型フ
ィルタ20はこうしたADDフィルタであり、下流に位
置する非分散/集合型ディスク・デバイス・ドライバが
あたかも分散/集合機能を有するように見せる働きをす
る。これが実施される様子を次に示す。
【0018】アプリケーションからの各I/O要求はデ
ィスクとアプリケーション・メモリとの間で転送される
セクタの総数を指定する。I/O要求はページ当たり4
Kに相当する複数のページに渡ることが可能であるが、
これは仮想アドレス空間においては連続的であっても、
物理的には必ずしも連続的でない。I/O要求が常にセ
クタ(512バイト)境界上で開始されることを保証で
きれば、分散/集合をエミュレートするジョブは、単に
デバイス・ドライバにより受信される各I/O要求を多
数の小要求に切り分け、調整されたディスク・アドレス
及び主記憶装置アドレスに配置するだけで済む。不幸に
もこうした事態は通常発生せず、I/O要求はページ内
の任意のバイトから開始される。一般に、I/O要求は
以下の3つのカテゴリの内の1つに属する。 1)全I/O要求が1ページ或いはそれ以上の連続ペー
ジ内で開始及び終了する。 2)全I/Oが連続ページのセット内に存在しないが、
セクタ境界上に整列して配置される。 3)I/O要求が連続ページのセット内に存在せず、且
つセクタ境界上に整列して配置されない。
【0019】分散/集合フィルタは要求をこれらのカテ
ゴリに従い、最も効率よく処理するアルゴリズムを実施
する。
【0020】第1のカテゴリに属するI/O要求に対
し、フィルタ・アルゴリズムは分散/集合リストから、
その要求が連続的物理ページを横断することを判断し、
従ってI/O要求を変更せずにディスク・デバイス・ド
ライバに受渡す。ディスク・デバイス・ドライバは記憶
装置に対し、データをディスクから、分散/集合リスト
内において指定される単一の物理アドレスから始まるア
プリケーション・メモリに直接DMA転送させる。
【0021】第2のカテゴリに属するI/O要求に対
し、OS/2ファイル・システムにより生成される分散
/集合リストは、その要求により横断されるページが物
理的に連続でないことを示す。I/O要求は分散/集合
フィルタにより、元のI/O要求により横断されるセク
タの数に等しい多数の小I/O要求に切り分けられる。
各ページ内のセクタは、各不連続な物理ページに対応し
て分散/集合リスト内に指定される開始物理アドレスに
或いはから、直接DMA転送される。こうして全てのデ
ータがアプリケーション・メモリとディスク記憶装置と
の間で、スループットを最適化するようにDMA転送さ
れる。分散/集合フィルタが存在しない場合には、第2
のタイプのI/O要求において、全要求を中間バッファ
にDMA転送し、その後、プロセッサによりバッファか
らアプリケーション・メモリにコピーすることが余儀な
くされる。非SG装置においてこうした分散/集合フィ
ルタを使用することにより、データ転送スピードを極め
て向上させ、その一方で、装置内に比較的高価な分散/
集合ハードウェアを装備することを回避できることは評
価に値するものであろう。
【0022】第3のカテゴリに属するI/O要求は、第
1及び第2のカテゴリのそれのようには直接的ではな
く、分散/集合フィルタによる、より多くの処理を必要
とする。
【0023】連続ページ・セット内に存在せず、セクタ
境界上に整列していないI/O読出し要求の処理につい
て、図1及び図2を参照しながら詳細に説明する。以下
に示す例では、アプリケーションにより要求される転送
は9セクタ長を有する。各々が512バイト長を有する
9個のディスク・セクタが、図2にセクタAからIとし
て示されている。
【0024】図2から理解されるように、アプリケーシ
ョンの仮想アドレス空間0−4095に相当する第1ペ
ージ(A1)は、物理アドレス28672−32767
(4Kバイト)にマップされる。従って、仮想アドレス
4000は物理アドレス32672に対応する。次に、
アプリケーションの仮想アドレス空間4096−819
1に相当する第2ページ(A2)は、物理アドレス16
384−20479(4Kバイト)にマップされる。ア
プリケーションの仮想アドレス空間8192−1228
7に相当する第3ページ(A3)は、物理アドレス49
152−53248(4Kバイト)にマップされる。従
って、仮想アドレス8608は物理アドレス49568
に対応する。仮想アドレスから物理アドレスへのマッピ
ングは、各I/O要求に対応してOS/2ファイル・シ
ステムにより生成される分散/集合リスト内に含まれ
る。本実施例の分散/集合リストを表1に示す。
【表1】 仮想アドレス 物理アドレス レングス(バイト) 4000 32672 96 4096 16384 4096 8192 49152 416
【0025】図2から理解されるように、セクタA及び
Iはページ境界を跨いでいる。これらの各セクタの最初
の96バイトは、あるページの終端にコピーされること
が必要であり、残りの416バイトは異なるページの先
頭にコピーされることが必要である。本発明のアルゴリ
ズムによれば、OS/2カーネルからデバイス・マネー
ジャを介して発生される各I/O要求30は、2つの異
なるタイプのI/O要求に切り分けられる。第1のタイ
プはページ内に総合的に収まるセクタに対応し、第2の
タイプはページ境界を横断する単一のセクタに対応す
る。I/O要求をこのように分割する目的は、アプリケ
ーション・メモリにDMA転送可能なI/O部分を、D
MA転送不可能なI/O部分と分離することである。
【0026】分散/集合リスト内で指定される各ページ
に対し、フィルタ内で実施される分散/集合アルゴリズ
ムは、ページ境界を横断することなく転送可能なセクタ
の最大数を決定する。単純な演算により論理ブロック・
アドレス及びこうした一連のセクタの数が計算される。
各一連のセクタに対し、フィルタは単一のI/O要求を
ディスク・デバイス・ドライバに発行し、デバイス・ド
ライバはそれに応答して、ディスク記憶装置にその要求
により指定されるデータを直接アプリケーション・メモ
リにDMA転送させる。本実施例では、セクタBからH
は完全に単一のページ内に含まれるために、フィルタは
7セクタI/O要求22をディスク・デバイス・ドライ
バに発行し、ディスク・デバイス・ドライバはセクタの
転送先のメモリの開始アドレスを指定する。これらの7
セクタはアプリケーションのアドレス空間に直接DMA
転送される。
【0027】不連続な物理ページ(セクタAに対応する
P1及びP2、及びセクタIに対応するP2及びP3)
を横断するセクタA及びIの各々に対して、フィルタは
2つの単一のセクタI/O要求24、26をディスク・
デバイス・ドライバに発行する。デバイス・ドライバに
より発行される各I/Oコマンド28は、セクタが転送
される中間バッファ100及び102のDMAアドレ
ス、及びディスク上におけるセクタのロケーションを指
定する。
【0028】デバイス・ドライバからのI/Oコマンド
に応答して、物理ページP1及びP2を横断するセクタ
Aは、512バイトのプライベート・バッファ100に
DMA転送される。システム・プロセッサは次にそのセ
クタの最初の96バイトを、ページP1内の物理アドレ
ス32762に対応する4000から始まるアプリケー
ション・アドレス空間にコピーする。残りの416バイ
トは、ページP2内の物理アドレス16384に対応す
る4096から始まるアプリケーション・アドレス空間
にコピーされる。
【0029】デバイス・ドライバからのI/Oコマンド
に応答して、物理ページP2及びP3を横断するセクタ
Iは、512バイトのプライベート・バッファ102に
DMA転送される。システム・プロセッサの制御によ
り、最初の96バイトが仮想アドレス8096(ページ
P2内の物理アドレス20479に対応)にコピーさ
れ、残りの416バイトは仮想アドレス8192(ペー
ジP3内の物理アドレス49152に対応)にコピーさ
れる。このようにして本実施例では、データの大半(7
セクタ)がDMAにより最も効率よく転送され、中間バ
ッファを介して転送されるのは2セクタだけに留まる。
【0030】より多くのページをカバーするI/O要求
に対しても、オペレーションの原則は同じである。I/
O要求は分散/集合フィルタにより、前述の異なる2つ
のタイプの多数の小要求に分割される。ページ内の複数
の連続セクタに関連するフィルタからの各I/O要求
は、メモリに直接DMA転送され、不連続なページ境界
を横断する単一のセクタに関連する各I/O要求は、中
間バッファを介して、主記憶装置と補助記憶装置との間
を転送される。
【0031】6ページをカバーし、5つの不連続な物理
境界を横断するアプリケーションからのI/O要求の例
について考えてみると、第1のタイプの6つのI/O要
求と、第2のタイプの5つのI/O要求がデバイス・ド
ライバに発行される(第1及び第6ページにおいて、少
なくとも1個の完全なセクタ及びページ境界を横断する
セクタが存在すると仮定する)。旧来の記憶装置のよう
に、記憶装置が同時に1つのI/Oコマンドだけしか処
理できない場合、512バイトの中間バッファを1個だ
け用意すれば足りる。しかしながら、記憶装置が同時に
3つのI/Oコマンド(現在実行中のI/Oコマンド、
丁度完了してステータスを返却中のI/Oコマンド、及
び現のI/Oの完了時のために準備されるI/Oコマン
ド)を処理可能な場合、各ディスクは1個の1Kバッフ
ァ(2セクタ)を永久に割当てることが必要である。分
散/集合機能をサポートせず、本発明の利点を所持しな
い装置では、大容量のバッファ(転送可能な最大長に匹
敵する)を永久的に割当てることが必要となろう。
【0032】本発明の技術を使用する書込みI/O要求
の処理について考えてみると、読出しオペレーションに
ついて説明したステップと実質的に反対のシーケンス・
ステップとなる。既述のものと同一の例を使用すると、
アプリケーションがディスク上のセクタAからIに書込
まれるページA1、A2及びA3内の9セクタを指定す
るI/O要求を発行する。対応する9セクタI/O要求
が、OS/2カーネルにより、デバイス・マネージャを
介して分散/集合フィルタに発行され、同時に分散/集
合リストがOS/2ファイル・システムにより生成され
る。分散/集合リストは表1で示されるものと同一の形
式を取る。フィルタはこのリストから、セクタに書込ま
れるデータが2つの不連続な物理ページ(P1及びP
2)内に位置することを判断し、セクタAを構成するP
1及びP2内のデータが、システム・プロセッサによ
り、バッファ100などの中間セクタ・バッファにコピ
ーされる。データは次にこのバッファからディスク上の
セクタAにDMA転送される。セクタIについても同様
に、セクタIを構成するデータがシステム・プロセッサ
により、P2及びP3からバッファ102にコピーさ
れ、次にディスク上のセクタIにDMA転送される。
【0033】本発明の実施例はOS/2 V2.0オペ
レーティング・システムに関して述べられてきたが、当
業者には、本発明の技術がページド・メモリ方式で動作
する他のシステム(例えばUNIX、MVS、VMな
ど)と、分散/集合ハードウェアを所持しない補助記憶
装置との間のデータ転送においても容易に使用できるこ
とが理解されよう。
【0034】
【発明の効果】以上説明したように、本発明の方法及び
装置によれば、主記憶装置がページ形式に配列され、接
続される補助記憶装置が分散/集合機能をサポートしな
い従来のシステムと比較して、データ転送レートが向上
し、プロセッサ・オーバヘッドが低減する。本発明の技
術は、先行読出しバッファを高速半導体メモリにより保
持するディスク・サブシステムに最適であり、1転送当
たりのディスク回転を喪失しないバック・ツー・バック
書込みオペレーションが可能となる。
【図面の簡単な説明】
【図1】本発明による分散/集合機能を提供するシステ
ムのブロック図である。
【図2】ディスクとアプリケーション・メモリとの間の
データ転送を示す図である。
【符号の説明】
10 OS/2カーネル 12 アプリケーション 14 デバイス・マネージャ 16 ディスク・デバイス 20 分散/集合フィルタ 22、24、26 セクタI/O要求 28 I/Oコマンド 30 I/O要求 100、102 中間バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ニコラス・シェイラー イギリス国エス・ピィ1 3ワイ・エ イ、ウィルトシャイア、サリスベリ、ス クール・レーン、ザ・オールド・スクー ル・ハウス(番地なし) (56)参考文献 特開 昭56−118161(JP,A) 実開 平3−54058(JP,U)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】第1の記憶装置が物理アドレス空間及び仮
    想アドレス空間の両方においてページに分割されるデー
    タ処理システムにおける上記第1の記憶装置と第2の記
    憶装置との間のデータ転送方法であって、 上記データ処理システム内のプロセッサ上で実行される
    プログラムから、上記仮想アドレス空間における複数の
    セクタを含むデータ転送を要求するステップと、 各データ転送に対して、完全に物理ページ内に配置され
    る要求セクタの識別、及び第1及び第2の不連続な物理
    ページ間の境界を横断するセクタの識別を決定するステ
    ップと、 物理ページ内に配置されるセクタに対して、第2の記憶
    装置と第1の記憶装置との間でDMAによりセクタを直
    接転送するステップと、 上記第1及び第2の不連続な物理ページ間の境界を横断
    するセクタに対して、各セクタを第1の記憶装置或いは
    第2の記憶装置に中間バッファを介して転送するステッ
    プと、 を含む方法。
  2. 【請求項2】上記第1の記憶装置から上記第2の記憶装
    置へのデータ転送期間中に、上記第1及び第2の不連続
    な物理ページ間の境界を横断すると判断される各セクタ
    に対し、 上記プロセッサの制御の下で、上記セクタの一部を上記
    第1の不連続な物理ページから中間バッファにコピー
    し、上記セクタの残りの部分を上記第2の不連続な物理
    ページから上記中間バッファにコピーするステップと、 上記セクタを上記中間バッファから上記第2の記憶装置
    にDMAにより転送するステップと、 を含む請求項1記載の方法。
  3. 【請求項3】上記第2の記憶装置から上記第1の記憶装
    置へのデータ転送期間中に、上記第1及び第2の不連続
    な物理ページ間の境界を横断する各セクタに対し、 上記プロセッサの制御の下で、上記セクタを中間バッフ
    ァにDMAにより転送し、上記セクタの一部を上記中間
    バッファから上記第1の不連続な物理ページの末尾にコ
    ピーし、上記セクタの残りの部分を上記中間バッファか
    ら上記第2の不連続なページの先頭にコピーするステッ
    プを含む請求項1記載の方法。
  4. 【請求項4】第1の記憶装置が物理アドレス空間及び仮
    想アドレス空間の両方においてページに分割されるデー
    タ処理システムにおける上記第1の記憶装置と第2の記
    憶装置との間のデータ転送装置であって、 上記データ処理システム内のプロセッサ上で実行される
    プログラムから、上記仮想アドレス空間における複数の
    セクタを含むデータ転送を要求する手段と、 各データ転送に対して、完全に物理ページ内に配置され
    る要求セクタの識別、及び第1及び第2の不連続な物理
    ページ間の境界を横断するセクタの識別を決定する手段
    と、 物理ページ内に配置されるセクタに対して、第2の記憶
    装置と第1の記憶装置との間でDMAによりセクタを直
    接転送する手段と、 上記第1及び第2の不連続な物理ページ間の境界を横断
    するセクタに対して、各セクタを第1の記憶装置或いは
    第2の記憶装置に中間バッファを介して転送する手段
    と、 を含む装置。
  5. 【請求項5】上記第1の記憶装置から上記第2の記憶装
    置へのデータ転送期間中に、上記第1及び第2の不連続
    な物理ページ間の境界を横断すると判断される各セクタ
    に対し、 上記プロセッサの制御の下で、上記セクタの一部を上記
    第1の不連続な物理ページから中間バッファにコピー
    し、上記セクタの残りの部分を上記第2の不連続な物理
    ページから上記中間バッファにコピーする手段と、 上記セクタを上記中間バッファから上記第2の記憶装置
    にDMAにより転送する手段と、 を含む請求項4記載の装置。
  6. 【請求項6】上記第2の記憶装置から上記第1の記憶装
    置へのデータ転送期間中に、上記第1及び第2の不連続
    な物理ページ間の境界を横断する各セクタに対し、 上記プロセッサの制御の下で、上記セクタを中間バッフ
    ァにDMAにより転送し、上記セクタの一部を上記中間
    バッファから上記第1の不連続な物理ページの末尾にコ
    ピーし、上記セクタの残りの部分を上記中間バッファか
    ら上記第2の不連続なページの先頭にコピーする手段を
    含む請求項4記載の装置。
JP5156443A 1992-09-21 1993-06-28 メモリと補助記憶装置間のデータ転送方法 Expired - Lifetime JP2582520B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9219949A GB2270780A (en) 1992-09-21 1992-09-21 Scatter-gather in data processing systems.
GB9219949.6 1992-09-21

Publications (2)

Publication Number Publication Date
JPH06131259A JPH06131259A (ja) 1994-05-13
JP2582520B2 true JP2582520B2 (ja) 1997-02-19

Family

ID=10722256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5156443A Expired - Lifetime JP2582520B2 (ja) 1992-09-21 1993-06-28 メモリと補助記憶装置間のデータ転送方法

Country Status (4)

Country Link
US (1) US5497476A (ja)
EP (1) EP0589664A1 (ja)
JP (1) JP2582520B2 (ja)
GB (1) GB2270780A (ja)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687392A (en) * 1994-05-11 1997-11-11 Microsoft Corporation System for allocating buffer to transfer data when user buffer is mapped to physical region that does not conform to physical addressing limitations of controller
US5813025A (en) * 1994-08-10 1998-09-22 Unisys Corporation System and method for providing variable sector-format operation to a disk access system
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5768628A (en) * 1995-04-14 1998-06-16 Nvidia Corporation Method for providing high quality audio by storing wave tables in system memory and having a DMA controller on the sound card for transferring the wave tables
JP3133004B2 (ja) * 1996-11-21 2001-02-05 株式会社日立製作所 ディスクアレイ装置およびその制御方法
US6105075A (en) * 1997-08-05 2000-08-15 Adaptec, Inc. Scatter gather memory system for a hardware accelerated command interpreter engine
US5931920A (en) * 1997-08-05 1999-08-03 Adaptec, Inc. Command interpreter system in an I/O controller
US6021462A (en) * 1997-08-29 2000-02-01 Apple Computer, Inc. Methods and apparatus for system memory efficient disk access to a raid system using stripe control information
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6862689B2 (en) 2001-04-12 2005-03-01 Stratus Technologies Bermuda Ltd. Method and apparatus for managing session information
US6791555B1 (en) * 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) * 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US7447795B2 (en) * 2001-04-11 2008-11-04 Chelsio Communications, Inc. Multi-purpose switching network interface controller
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
US6678754B1 (en) * 2001-07-30 2004-01-13 Lsi Logic Corporation Methods and structure for recursive scatter/gather lists
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7130932B1 (en) * 2002-07-08 2006-10-31 Adaptec, Inc. Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) * 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7102907B2 (en) * 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7219169B2 (en) * 2002-09-30 2007-05-15 Sun Microsystems, Inc. Composite DMA disk controller for efficient hardware-assisted data transfer operations
ES2221557B1 (es) * 2003-03-17 2005-10-01 Universitat Politecnica De Catalunya Dispositivo de recepcion doppler/delay y almacenamiento de señales gps.
US20070011398A1 (en) * 2003-05-26 2007-01-11 Koninklijke Philips Electronics N.V. Method and device for transferring data between a main memory and a storage device
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) * 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7389364B2 (en) * 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) * 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7310752B2 (en) * 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) * 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7330992B2 (en) * 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7181584B2 (en) * 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7257683B2 (en) * 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7213082B2 (en) 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) * 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) * 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7831745B1 (en) 2004-05-25 2010-11-09 Chelsio Communications, Inc. Scalable direct memory access using validation of host and scatter gather engine (SGE) generation indications
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
DE602005003987T2 (de) * 2004-07-23 2008-12-11 Stmicroelectronics S.A. Verfahren zur Programmierung einer System auf Chip DMA Steuerung, sowie ein System auf Chip dafür.
US7392331B2 (en) * 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US20060168407A1 (en) * 2005-01-26 2006-07-27 Micron Technology, Inc. Memory hub system and method having large virtual page size
US7277986B2 (en) * 2005-03-30 2007-10-02 Emc Corporation Sector-edge cache
US7647557B2 (en) * 2005-06-29 2010-01-12 Intel Corporation Techniques for shuffling video information
US7715436B1 (en) 2005-11-18 2010-05-11 Chelsio Communications, Inc. Method for UDP transmit protocol offload processing with traffic management
US7616563B1 (en) 2005-08-31 2009-11-10 Chelsio Communications, Inc. Method to implement an L4-L7 switch using split connections and an offloading NIC
US7724658B1 (en) 2005-08-31 2010-05-25 Chelsio Communications, Inc. Protocol offload transmit traffic management
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US7660264B1 (en) 2005-12-19 2010-02-09 Chelsio Communications, Inc. Method for traffic schedulign in intelligent network interface circuitry
US7760733B1 (en) 2005-10-13 2010-07-20 Chelsio Communications, Inc. Filtering ingress packets in network interface circuitry
US8935406B1 (en) 2007-04-16 2015-01-13 Chelsio Communications, Inc. Network adaptor configured for connection establishment offload
US7826350B1 (en) 2007-05-11 2010-11-02 Chelsio Communications, Inc. Intelligent network adaptor with adaptive direct data placement scheme
US8589587B1 (en) 2007-05-11 2013-11-19 Chelsio Communications, Inc. Protocol offload in intelligent network adaptor, including application level signalling
US8060644B1 (en) 2007-05-11 2011-11-15 Chelsio Communications, Inc. Intelligent network adaptor with end-to-end flow control
US7831720B1 (en) 2007-05-17 2010-11-09 Chelsio Communications, Inc. Full offload of stateful connections, with partial connection offload
JP4970141B2 (ja) * 2007-05-25 2012-07-04 株式会社東芝 情報再生装置および情報再生方法
US20110004732A1 (en) * 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US8219778B2 (en) * 2008-02-27 2012-07-10 Microchip Technology Incorporated Virtual memory interface
US8918559B2 (en) * 2011-06-06 2014-12-23 International Business Machines Corporation Partitioning of a variable length scatter gather list
US9195581B2 (en) * 2011-07-01 2015-11-24 Apple Inc. Techniques for moving data between memory types
US9047018B1 (en) * 2012-03-20 2015-06-02 Emc Corporation Method and system for zero-copy disk IO using sector unaligned buffers
US10049061B2 (en) 2012-11-12 2018-08-14 International Business Machines Corporation Active memory device gather, scatter, and filter
US11886365B2 (en) * 2020-09-14 2024-01-30 Apple Inc. DMA control circuit with quality of service indications

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56118161A (en) * 1980-02-25 1981-09-17 Hitachi Ltd Control device for external memory device
JPS63142416A (ja) * 1986-12-04 1988-06-14 Fujitsu Ltd 入出力制御方式
US5179667A (en) * 1988-09-14 1993-01-12 Silicon Graphics, Inc. Synchronized DRAM control apparatus using two different clock rates
US5251303A (en) * 1989-01-13 1993-10-05 International Business Machines Corporation System for DMA block data transfer based on linked control blocks
DE69132300T2 (de) * 1990-03-12 2000-11-30 Hewlett Packard Co Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
JP3054058U (ja) * 1998-05-14 1998-11-17 曾 憲 榮 固定具付義歯

Also Published As

Publication number Publication date
EP0589664A1 (en) 1994-03-30
JPH06131259A (ja) 1994-05-13
GB9219949D0 (en) 1992-11-04
GB2270780A (en) 1994-03-23
US5497476A (en) 1996-03-05

Similar Documents

Publication Publication Date Title
JP2582520B2 (ja) メモリと補助記憶装置間のデータ転送方法
JP4219602B2 (ja) 記憶制御装置および記憶制御装置の制御方法
JP3431972B2 (ja) 仮想ディスクシステム
US6205529B1 (en) Method and apparatus for defragmenting a storage device using a copy function in the device control logic
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US7020760B2 (en) Hybrid logical block virtualization system for a storage area network
US20150324297A1 (en) Exporting guest spatial locality to hypervisors
JP2000122902A (ja) ログ構造記憶先にデ―タを書き込む方法、媒体及びデ―タ記憶システム
US20060085663A1 (en) Method for keeping snapshot image in a storage system
JP2001166994A (ja) 早期データ転送完了を利用してデータ記憶装置性能を改善するデータ記憶装置および方法
JP2008135055A (ja) 計算機システムおよび二次記憶装置
JPH06110766A (ja) 分割格納ファイルシステムのディレクトリ構成方法および計算機システム
JP3111912B2 (ja) ディスクキャッシュ制御方式
JP2980326B2 (ja) ディスク制御装置
JP2001022614A (ja) 階層形記憶システム
JP2544039B2 (ja) ディスクドライブ並列操作方法
KR100648065B1 (ko) 입출력 가속 기술이 적용된 하드웨어용 파일 시스템 및 그파일 시스템에서의 데이터 처리 방법
JP3456234B2 (ja) ターゲット装置
JP3376316B2 (ja) ディスクアレイ装置及びそれに用いる高速通信方法並びにその制御プログラムを記録した記録媒体
JPH11184829A (ja) デバイス間データ転送装置及びその方法
JPH10307687A (ja) ディスクアレイ装置
JPH08339341A (ja) 主記憶ページ選択方法
JPH0477916A (ja) 磁気ディスク装置
JPH05225055A (ja) 情報処理装置
JPH0744444A (ja) 並列ファイル生成方法およびアクセス方法