JPH11184829A - デバイス間データ転送装置及びその方法 - Google Patents

デバイス間データ転送装置及びその方法

Info

Publication number
JPH11184829A
JPH11184829A JP9327269A JP32726997A JPH11184829A JP H11184829 A JPH11184829 A JP H11184829A JP 9327269 A JP9327269 A JP 9327269A JP 32726997 A JP32726997 A JP 32726997A JP H11184829 A JPH11184829 A JP H11184829A
Authority
JP
Japan
Prior art keywords
address
data
memory
transfer
space
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
JP9327269A
Other languages
English (en)
Other versions
JP3371078B2 (ja
Inventor
Mitsunori Kori
光則 郡
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP32726997A priority Critical patent/JP3371078B2/ja
Publication of JPH11184829A publication Critical patent/JPH11184829A/ja
Application granted granted Critical
Publication of JP3371078B2 publication Critical patent/JP3371078B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 中央処理装置と主記憶装置の下に複数のデバ
イスが接続された情報処理手段システムにおいて、複数
のデバイス間でファイル単位の直接転送を実現する。 【解決手段】 上記主記憶装置上にアドレス変換テーブ
ル24を備え、物理アドレス空間23上に上記デバイス
のメモリ25を割り付け、この割り付けられたアドレス
を仮想アドレス空間20内のユーザ空間21にマッピン
グし、上記アドレス変換テーブル24により上記仮想ア
ドレス空間20と上記物理アドレス空間23とのアドレ
ス変換を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、バスに接続され
た複数のデバイスにおけるアドレスマッピングによるデ
バイス間のデータ直接転送に関するものである。
【0002】
【従来の技術】一般に、プロセッサを有する複数のデバ
イス間のデータ転送は、直接他のデバイスにできず、D
MA(Direct Memory Access)コントローラによりその
データを主記憶装置に送り、その後対象とするデバイス
のDMAコントローラによってそのデータを主記憶装置
から対象とするデバイスに転送していた。そのため、デ
バイス間のデータ転送には時間がかかっていた。また、
主記憶装置のデータ転送負荷が高くなるため、中央処理
装置と主記憶装置の間のデータ転送速度が低下すること
があった。
【0003】そこで、転送時間を短縮し、主記憶装置の
データ転送負荷を軽減するため、主記憶装置を経由せず
に入出力コントローラ(I/O controller)等の入出力プ
ロセッサ(I/O processor )の管理下でのデバイス間直
接転送を行う方法がある。このデータ転送は、入出力プ
ロセッサ上の特殊なモニタプログラムなどの管理下で行
われる。通常、入出力処理においては、ファイルの構造
及び主記憶装置上でのバッファリング制御についてはオ
ペレーティングシステムの管理下にあり、入出力プロセ
ッサは関知しない。入出力プロセッサは、オペレーティ
ングシステムによって変換された物理的なブロック番号
によって入出力を行う。しかし、入出力プロセッサは、
ファイルという論理的なデータの単位での入出力は行え
ない。
【0004】一般にファイルの構造及び主記憶装置上で
のバッファリング制御はオペレーティングシステム及び
ファイルシステムによって異なるため、入出力プロセッ
サがファイルの構造やバッファリングの動作に依存した
機能を持つと、特定のオペレーティングシステム及びフ
ァイルシステムに依存してしまい、オペレーティングシ
ステム又はファイルシステム変更のたびに入出力プロセ
ッサの機能を変更しなければならなくなる。更には、従
来のオペレーティングシステムと入出力プロセッサの機
能分担を大幅に変更する必要がある。以上が、入出力プ
ロセッサが、ファイルという論理的なデータの単位での
入出力を行わない理由である。
【0005】図9と図10は従来のデバイス間でデータ
の直接転送を行う場合の構成と仮想アドレス空間と物理
アドレス空間の状態を示したものである。1は中央処理
装置(CPU)、2は主記憶装置、4、4aは磁気ディ
スク装置、5、5aはディスクコントローラである。2
3は物理アドレス空間である。物理アドレス空間とはC
PUが物理的に直接アクセスできるアドレスの範囲をい
う。例えば、32ビットでアドレスを指定できるCPU
の物理アドレス空間は232≒4Gとなる。20は仮想ア
ドレス空間である。21はユーザ空間であり、仮想アド
レス空間20のうちユーザプログラム22が直接アクセ
スすることができる部分である。バッファ32は、ユー
ザプログラム22のデータ入出力エリアである。33は
仮想アドレス空間20の共通領域で、オペレーティング
システム自身が使うメモリ領域に用い、OSが使う以外
の領域はユーザごとに異なる仮想アドレス空間を割り当
てる。物理アドレス空間23に割り付けられたデバイス
上のメモリ25、25aが共通領域33のデバイス上の
メモリ26、26aの部分に対応付けられマッピングさ
れている。デバイス上のメモリ25、25aは、ディス
クコントローラ5、5a内のメモリ80、80aであ
る。メモリ80、80aは、CPUから直接アクセスで
きるメモリであり、オペレーティングシステムからの磁
気ディスク装置に対するリード命令やライト命令を受け
とるメモリである。物理アドレス空間23にはアドレス
変換テーブル24があり、CPUは仮想アドレス空間2
0にマッピングしたデバイス上のメモリ26、26aか
らデバイス上のメモリ25、25aへのアドレスへの変
換をアドレス変換テーブル24に従って行う。
【0006】オペレーティングシステムの使うメモリ領
域を共通領域33に割り当てておくと、システムコール
又は割り込み(interrupt )によってユーザプログラム
からオペレーティングシステムに制御が移る前に、どの
アドレス空間にいても共通の処理を行うことができる利
点がある。また、デバイス上のメモリ25、25aを共
通領域33に割り当てると、オペレーティングシステム
がデバイスを操作することが可能になる。例えば、オペ
レーティングシステムが、デバイス上のメモリ25、2
5aにファイルに対するリード命令を書き込むと、ディ
スクコントローラ5は、リード、命令を実行し、磁気デ
ィスク装置4に記憶されたファイルを主記憶装置2のバ
ッファ31へ転送する。次にオペレーティングシステム
がデバイス上のメモリ25、25aにファイルに対する
ライト命令を書き込むとディスクコントローラ5aはラ
イト命令を実行し、主記憶装置2のバッファ31のファ
イルを磁気ディスク装置4aへ記憶する。このように、
ファイル単位のデータ転送はオペレーティングシステム
がデバイスを操作することで可能になる。
【0007】従来のデバイス間で直接データ転送を行う
場合の仮想アドレス空間20と物理アドレス空間23の
状態は上記の様に構成されているので、入出力プロセッ
サはファイルの構造やバッファリングなどの動作につい
て知ることができないため、入出力プロセッサがファイ
ルという論理的な単位で入出力管理を行うことはできな
かった。一方、オペレーティングシステムのシステムコ
ールインタフェースのレベルでは、ファイル入出力の転
送元あるいは転送先はユーザ空間21にマッピングされ
た主記憶装置2であることが予定されており、転送元あ
るいは転送先のアドレスを仮想アドレスによって指定す
る。ところが、ユーザプログラム22が直接アクセスす
ることができるユーザ空間21上にはデバイス上のメモ
リ25に対応する仮想アドレスが存在しないのでデバイ
ス上のメモリを転送元あるいは転送先としたファイルの
入出力の起動は不可能であった。共通領域33には、デ
バイス上のメモリ25に対応する仮想アドレスが存在し
ているが、共通領域33は、オペレーティングシステム
が使用する領域であり、ユーザプログラム22が直接ア
クセスすることはできなかった。
【0008】
【発明が解決しようとする課題】従来のデバイス間デー
タ転送装置及びその方法は入出力プロセッサを用いてい
るので、データ転送が直接行えるのは、物理的なブロッ
ク単位であり、論理的なファイル単位又はレコード単位
での転送が不可能であるという問題点があった。
【0009】この発明は、上記のような課題を解決する
ためになされたものであり、論理的な単位(ファイル単
位又はレコード単位)での転送が可能で効率的なデバイ
ス間データ転送装置及びその方法を得ることを目的とす
る。
【0010】
【課題を解決するための手段】この発明に係るデバイス
間データ転送装置は、中央処理装置と主記憶装置と複数
のデバイスとが接続され、仮想アドレス空間のアドレス
を物理ドレス空間のアドレスへ変換するアドレス変換テ
ーブルを備え、上記複数のデバイス間でデータを転送す
るデバイス間データ転送装置において、物理アドレス空
間上に上記デバイス上のメモリを割り付けるメカニズム
と、この割り付けられたアドレスを仮想アドレス空間上
のユーザ空間にマッピングするメカニズムと、上記アド
レス変換テーブルにより上記ユーザ空間のアドレスを上
記物理アドレス空間のアドレスへ変換するメカニズム
と、変換したアドレスを転送先と転送元のいずれかのア
ドレスとしてデータを転送するメカニズムと、を備えた
ことを特徴とする。
【0011】上記デバイス間データ転送装置は、ディス
ク装置から他のデバイスへのデータ転送と他のデバイス
からディスク装置へのデータ転送とのいずれかを実行す
ることを特徴とする。
【0012】上記デバイスは、プロセッサとメモリから
構成され、そのメモリは物理的なブロック単位でデータ
を転送することを特徴とする。
【0013】上記割り付けるメカニズムは、物理アドレ
ス空間上のデバイス上のメモリの先頭アドレスをコンフ
ィグレーションテーブルに物理アドレスとして記憶する
メカニズムを備えたことを特徴とする。
【0014】上記マッピングするメカニズムは、ユーザ
空間にマッピングされたデバイス上のメモリのサイズを
コンフィグレーションテーブルにメモリサイズとして記
憶するメカニズムを備えたことを特徴とする。
【0015】上記変換するメカニズムは、上記コンフィ
グレーションテーブルの物理アドレスとメモリサイズで
示されたデバイスのメモリをデータが転送されるユーザ
空間上のバッファとみなすメカニズムを備えたことを特
徴とする。
【0016】上記転送するメカニズムは、上記転送元の
デバイスに対してユーザ空間上のバッファへ転送元のデ
バイスからデータを転送する要求を発行するメカニズム
を備えたことを特徴とする。
【0017】上記変換するメカニズムは、上記コンフィ
グレーションテーブルの物理アドレスとメモリサイズで
示されたデバイス上のメモリをデータが記憶されている
ユーザ空間上のバッファとみなすメカニズムを備えたこ
とを特徴とする。
【0018】上記転送するメカニズムは、上記転送先の
デバイスに対してユーザ空間上のバッファから転送先の
デバイスへデータを転送する要求を発行するメカニズム
を備えたことを特徴とする。
【0019】この発明に係るデバイス間データ転送方法
は、中央処理装置と主記憶装置と複数のデバイスとが接
続され、仮想アドレス空間のアドレスを物理ドレス空間
のアドレスへ変換するアドレス変換テーブルを備え、上
記複数のデバイス間でデータを転送するデバイス間デー
タ転送方法において、物理アドレス空間上に上記デバイ
ス上のメモリを割り付けるステップと、この割り付けら
れたアドレスを仮想アドレス空間上のユーザ空間にマッ
ピングするステップと、上記アドレス変換テーブルによ
り上記ユーザ空間のアドレスを上記物理アドレス空間の
アドレスへ変換するステップと、変換したアドレスを転
送先と転送元のいずれかのアドレスとしてデータを転送
するステップと、を備えたことを特徴とする。
【0020】上記デバイス間データ転送装置は、ディス
ク装置から他のデバイスへのデータ転送と他のデバイス
からディスク装置へのデータ転送とのいずれかを実行す
ることを特徴とする。
【0021】上記デバイスは、プロセッサとメモリから
構成され、そのメモリは物理的なブロック単位でデータ
を転送することを特徴とする。
【0022】上記割り付けるステップは、物理アドレス
空間上のデバイス上のメモリの先頭アドレスをコンフィ
グレーションテーブルに物理アドレスとして記憶するメ
カニズムを備えたことを特徴とする。
【0023】上記マッピングするステップは、ユーザ空
間にマッピングされたデバイス上のメモリのサイズをコ
ンフィグレーションテーブルにメモリサイズとして記憶
するメカニズムを備えたことを特徴とする。
【0024】上記変換するステップは、上記コンフィグ
レーションテーブルの物理アドレスとメモリサイズで示
されたデバイスのメモリをデータが転送されるユーザ空
間上のバッファとみなすステップを備えたことを特徴と
する。
【0025】上記転送するステップは、上記転送元のデ
バイスに対してユーザ空間上のバッファへ転送元のデバ
イスからデータを転送する要求を発行するステップを備
えたことを特徴とする。
【0026】上記変換するステップは、上記コンフィグ
レーションテーブルの物理アドレスとメモリサイズで示
されたデバイス上のメモリをデータが記憶されているユ
ーザ空間上のバッファとみなすステップを備えたことを
特徴とする。
【0027】上記転送するステップは、上記転送先のデ
バイスに対してユーザ空間上のバッファから転送先のデ
バイスへデータを転送する要求を発行するステップを備
えたことを特徴とする。
【0028】
【発明の実施の形態】実施の形態1.図1はこの発明の
一実施の形態であるデバイス間データ転送装置及びその
方法を実現するためのシステム構成図であり、1は中央
処理装置(CPU)でシステム全体の各装置の制御を担
当している。2は主記憶装置であり、この主記憶装置2
に格納されているオペレーティングシステムによりシス
テム全体のソフトウェアが制御されている。3はバス同
士を結合するバス結合装置で例えばブリッジが相当す
る。4は磁気ディスク装置で、ディスクコントローラ5
により制御されている。磁気ディスク装置4とディスク
コントローラ5によりひとつのデバイス6aを構成して
いる。6はマイクロプロセッサ7とそのメモリとしての
ローカルメモリ8を中心に構成されるデバイスである。
このデバイス6は、例えばボード型のコンピュータや入
出力制御装置が相当している。通常、上記デバイス6は
複数台接続されており、磁気ディスク装置4(あるデバ
イス6a)と各デバイス6の間のファイルの直接転送が
本実施の形態の趣旨である。
【0029】図2は本実施の形態におけるソフトウェア
の構成及びソフトウェアとデバイスとの関連を示した構
成図である。11はユーザプログラムであり、例えば財
務管理、在庫管理等の目的のためのデータ処理が目的で
ある。12はオペレーティングシステムであり、システ
ム全体の動作を制御している。13はデバイスドライバ
で、オペレーティングシステム12に組み込む形態とな
っており、デバイス6を管理している。デバイスドライ
バ13は、デバイス6の種別毎に、複数存在する。デバ
イス6には、コンフィグレーションテーブル14が含ま
れている。このコンフィグレーションテーブル14はそ
のデバイス6に関する固有の情報であり、図11に示す
ように、各デバイスに割り当てられた物理アドレス85
とメモリサイズ86を記憶するものである。その物理ア
ドレスとは、その物理アドレスにきた要求に対して対応
するためのものであり、その物理アドレスの値は、後述
するように、オペレーティングシステムや他の処理によ
って固定的ではなく任意にコンフィグレーションテーブ
ル14によって設定可能なものである。
【0030】図3は本実施の形態における仮想アドレス
空間と物理アドレス空間の状態を示したものである。2
1はユーザ空間で、ユーザプログラム22からアクセス
できる部分である。ユーザ空間21はユーザプログラム
22ごとに複数設定され、互いに相手を見ることができ
ず、セキュリティが保たれている。33は仮想アドレス
空間の共通領域であり、オペレーティングシステムが動
作しかつ使用する領域である。
【0031】23は物理アドレス空間である。物理アド
レス空間23にはアドレス変換テーブル24があり、主
記憶装置2上に格納されている。このアドレス変換テー
ブル24は、物理アドレスと仮想アドレス間の変換用テ
ーブルであり、この変換はオペレーティングシステム1
2中のメモリ管理部(Memory Manager)が管理してい
る。CPU1はこのアドレス変換テーブル24により、
ユーザプログラム22での使用アドレスから物理アドレ
ス空間23上のユーザプログラム27の部分にマッピン
グする。また、CPU1は、物理アドレス空間23上に
割り付けられたデバイス上のメモリ25、25aを仮想
アドレス空間20上のデバイス上のメモリ26、26a
の部分にマッピングを行う。デバイス上のメモリ25
は、デバイス6のローカルメモリ8であり、CPU1か
ら直接アクセスできるメモリである。デバイス上のメモ
リ25aは、ディスクコントローラ5のメモリ80であ
り、CPU1から直接アクセスできるメモリである。そ
の結果、ユーザプログラム22からデバイス上のメモリ
26の部分にマッピングされたデバイス上のメモリ25
(すなわちローカルメモリ8)をファイル入出力の転送
元あるいは転送先として指定してオペレーティングシス
テムにファイルの読み出しあるいは書き込みを指示する
ことが可能になり、デバイス6に対してのファイル単位
での直接転送が可能となる。
【0032】次に、動作について説明する。以下、転送
元あるいは転送先となるデバイス6、6aを転送先と転
送元を区別しない場合、単に対象デバイス6と呼ぶ。図
4はシステム全体の初期化処理の処理フローである。シ
ステムの起動時に、対象デバイス6のコンフィグレーシ
ョンテーブル14はデバイス6上の初期化機構92によ
って初期化される(ステップS1)。すなわち初期化機
構92は、コンフィグレーションテーブル14のメモリ
サイズ86に、ローカルメモリ8及びメモリ80のメモ
リサイズを設定する。このときはローカルメモリ8とメ
モリ80はまだ物理アドレス空間23に割付けられてい
ないので、物理アドレス空間23上の要求に対して応答
しないように設定されていることになる。
【0033】次にオペレーティングシステム12の起動
が行われ、対象デバイス6のデバイスドライバ13の初
期化部(Initializer )93が呼び出される。対象デバ
イス6のデバイスドライバ13の初期化部93はオペレ
ーティングシステム12に対して、対象デバイス6上の
ローカルメモリ8の物理アドレス空間23への割付を要
求する。オペレーティングシステム12は、対象デバイ
ス6のローカルメモリ8又はメモリ80のメモリサイズ
を物理メモリサイズの必要量として対象デバイス6のコ
ンフィグレーションテーブル14から得る(ステップS
2)。
【0034】オペレーティングシステム12は、物理ア
ドレス空間23の空き領域に、コンフィグレーションテ
ーブル14から得たサイズのメモリ領域を確保し、その
領域を対象デバイスの物理アドレスとして割付ける。こ
うして、物理アドレス空間23に、ローカルメモリ8用
のデバイス上のメモリ25と、メモリ80用のデバイス
上のメモリ25aが割付られたことになる。オペレーテ
ィングシステム12は割り付けた物理メモリ領域の先頭
アドレスを対象デバイス上のコンフィグレーションテー
ブル14に物理アドレス85として設定する。これによ
って、対象デバイス6はバス上の指定された物理アドレ
ス空間に対する読み出し、書き込み要求に対して応答す
るようになる(ステップS3)。対象デバイス6のデバ
イスドライバ13の初期化処理が完了する。
【0035】ユーザプログラム22が起動されると、ユ
ーザプログラム22はオペレーティングシステム12に
対して、入出力コントロール・システムコールなどを使
用して対象デバイス6のデバイスドライバ13の呼び出
しを要求し、対象デバイスのデバイス上のメモリ25,
25aの仮想アドレス空間20へのマッピングを要求す
る(ステップS4)。
【0036】オペレーティングシステム12は、対象デ
バイス6のデバイスドライバ13の入出力コントロール
処理手続95を呼び出して、入出力コントロール処理手
続95に対して対象デバイス6のデバイス上のメモリ2
5,25aの仮想アドレス空間20へのマッピングを要
求する。対象デバイスのデバイスドライバ13の入出力
コントロール処理手続95は、対象デバイス6のデバイ
スに割付けられている物理メモリの先頭アドレス(物理
アドレス85)とメモリサイズ86を対象デバイスのコ
ンフィグレーションテーブル14から得る(ステップS
5)。
【0037】対象デバイス6のデバイスドライバ13の
入出力コントロール処理手続95はその物理メモリの先
頭アドレス(物理アドレス85)とメモリサイズ86で
指定される領域の仮想アドレス空間20へのマッピング
をオペレーティングシステム12に要求する(ステップ
S6)。
【0038】オペレーティングシステム12は仮想アド
レス空間20に、指定されたメモリサイズの未使用領域
を見つける。オペレーティングシステム12は、デバイ
ス上のメモリ25をユーザ空間21にマッピングする。
オペレーティングシステム12は、デバイス上のメモリ
25aを共通領域33にマッピングする。オペレーティ
ングシステム12はこれらの仮想アドレス範囲と、物理
アドレス範囲の対応をアドレス変換テーブル24に追加
する。これによってユーザ空間上の及び共通領域上の仮
想アドレス範囲内のアドレスから物理アドレス範囲内の
アドレスへ変換することが可能になる。オペレーティン
グシステム12は割り付けられた仮想アドレスを対象デ
バイス6のデバイスドライバ13に返す。対象デバイス
6のデバイスドライバ13はユーザプログラム22に対
して、割り付けられた仮想アドレスと対象デバイス6上
の物理メモリのサイズを通知する(ステップS7)。
【0039】図5は磁気ディスク装置4にあるファイル
をデバイス6のローカルメモリ8へ転送する場合の処理
フローである。なお、説明の便宜上、ファイルは磁気デ
ィスク装置4上に存在すると仮定してあるが、前述した
ように、この磁気ディスク装置4とディスクコントロー
ラ5を含めて一つのデバイス6aととらえるとこによ
り、このファイル転送はデバイス6aからデバイス6へ
のデータ転送に相当することになる。なお、ここでいう
データ転送は、ファイル全体の転送でもよいし、ファイ
ルの一部分のデータ(レコード単位)の転送でもよい。
【0040】ユーザプログラム22はオペレーティング
システムに対してファイルのバッファへの読み出しを要
求する。この時、ユーザプログラム22は、初期化処理
でデバイス上のメモリ25に対して割り当てられた仮想
アドレスを転送先のバッファアドレスとして指定し、フ
ァイルからの読み出しデータサイズとしてデバイス上の
メモリ25のサイズを指定する。こうして、ユーザプロ
グラム22はデバイス上のメモリ26をバッファとみな
して動作することになる。次に、ユーザプログラム22
は、バッファキャッシュのバイパスを指定する(ステッ
プS11)。図6はファイルの読み出しの説明図であ
り、31は仮想アドレス空間上に設定したバッファで、
32は、主記憶装置2の一部であるバッファキャッシュ
である。通常はバッファキャッシュのバイパスを指定せ
ず、読み出したファイルを主記憶装置2上のバッファキ
ャッシュ32に転送する。その後、CPU1によってバ
ッファキャッシュ32上の内容がバッファ31にコピー
される。磁気ディスク装置4上には、物理ブロックとし
てブロック単位に番号が機械的に振られており、番号を
指定して読み出すことができる。今回の読み出しはデバ
イス間で直接データを転送する方式であり、CPU1及
び主記憶装置2に負荷がかからないようにするためバッ
ファキャッシュ32を通らずにバイパスしてバッファ3
1上に読み出している。
【0041】オペレーティングシステム12のファイル
システム管理部96は、転送先として指定されたファイ
ルの指定されたデータのオフセットをディスク上の物理
ブロック番号に変換する。ここで、オフセットとはファ
イルの先頭から何バイト目という位置である。ファイル
のディスク内部での形式は通常、非常に複雑なため、オ
ペレーティングシステム12はファイルの読み出し、書
き込みを要求されると、オフセットを物理ブロック番号
に変換してからディスクコントローラ5に読み出しを要
求する。
【0042】オペレーティングシステム12のメモリ管
理部91はアドレス変換テーブル24に従って、転送先
として指定された仮想アドレスを物理アドレスに変換す
る(ステップS12)。この結果得られる物理アドレス
は転送先となるデバイス6のローカルメモリ8に割り付
けられた物理アドレスとなる。
【0043】オペレーティングシステム12の入出力管
理部97は、当該ファイルの存在するディスクに対応す
るディスクコントローラ5のデバイスドライバ13に対
して、転送元として指定した物理ブロック番号にあるデ
ータを転送先として指定した物理アドレス領域に転送す
るように要求する(ステップS13)。この要求は、デ
バイス上のメモリ26aと指定して行われる。すなわ
ち、この要求は、ディスクコントローラ5のメモリ80
を指定してデバイスドライバ13に対して発行される。
【0044】ディスクコントローラ5のデバイスドライ
バ13は、オペレーティングシステム12の入出力管理
部97からの要求を受け、ディスクの指定された物理ブ
ロック番号から転送先として指定された物理アドレスへ
のデータ転送を、ディスクコントローラ5に対して要求
する。この要求は、リード命令として、ディスクコント
ローラ5のメモリ80に送られる。ディスクコントロー
ラ5は、指定された物理ブロックをディスクから読み出
し、ディスクコントローラ5内部のディスクバッファ9
9に格納する(ステップS14)。
【0045】ディスクコントローラ5は、転送先として
指定された物理アドレスをバス上に出し、書き込みを要
求する(ステップS15)。
【0046】デバイス6は、ディスクコントローラ5の
出した物理アドレスをデコードする。デバイス6は、デ
ータ転送先アドレスとしてデバイス6の物理アドレスが
指定されているため、ディスクコントローラ5の転送要
求に対して応答する(ステップS16)。
【0047】ディスクコントローラ5はデバイス6から
の応答を待って、ディスクバッファ99内に格納されて
いるデータをバス上に送り出す(ステップS17)。
【0048】対象デバイス6はディスクコントローラ5
の送りだすデータを受け取り、対象デバイス内のローカ
ルメモリ8に格納する。ディスクコントローラ5はデー
タの転送を終えると、データ転送の完了を通知する割り
込みをCPU1に対して送る。CPU1に対して送られ
た割り込みにより、ディスクコントローラ5のデバイス
ドライバ13は、操作の完了をオペレーティングシステ
ム12の入出力管理部97に通知する。オペレーティン
グシステム12の入出力管理部97はユーザプログラム
22に対してファイル入力操作の完了を通知する(ステ
ップS18)。
【0049】図7はデバイス6のローカルメモリ8から
磁気ディスク装置4にあるファイルへの書き込みの場合
の処理フローである。読み出しの場合と同様にファイル
は磁気ディスク装置4上に存在すると仮定する。
【0050】ユーザプログラム22はオペレーティング
システム12に対してバッファ内容のファイルへの書き
込みを要求する。この時、デバイス上のメモリ25に対
して割り当てられた仮想アドレスをバッファアドレスと
して指定し、ファイルへの書き込みデータサイズとして
デバイス6上のメモリ25のメモリサイズを指定する。
こうして、ユーザプログラム22は、デバイス上のメモ
リ26をバッファとみなして動作することになる。次
に、ユーザプログラム22はバッファキャッシュ32の
バイパスを指定する。オペレーティングシステム12の
ファイルシステム管理部96は、転送先として指定され
たファイルの指定されたオフセットをディスク上の物理
ブロック番号に変換する(ステップS21)。
【0051】オペレーティングシステム12のバッファ
キャッシュ管理部98は、バッファキャッシュ内にその
物理ブロックのデータが既に存在しているかどうかを調
べ、もし、存在していた場合は、データ転送により上書
きされてしまうデータなのでバッファキャッシュ32内
の当該ブロック内のデータを無効にする(ステップS2
2)。
【0052】オペレーティングシステム12のメモリ管
理部91はアドレス変換テーブル24に従って、転送元
として指定された仮想アドレスを物理アドレスに変換す
る(ステップS23)。この結果得られる物理アドレス
は転送元となるデバイス6のローカルメモリ8に割り付
けられた物理メモリの先頭アドレスとなる。
【0053】オペレーティングシステム12の入出力管
理部97は、当該ファイルの存在するディスクに対応す
るディスクコントローラ5のデバイスドライバ13に対
して、転送先として指定した物理ブロック番号に転送元
として指定した物理アドレス領域からデータを転送する
ように要求する(ステップS24)。この要求は、デバ
イス上のメモリ26を指定して行われる。すなわちこの
要求は、ディスクコントローラ5のメモリ80を指定し
て、デバイスドライバに対して発行される。
【0054】ディスクコントローラ5のデバイスドライ
バ13は、オペレーティングシステム12の入出力管理
部97からの要求を受けディスクの転送先として指定さ
れた物理ブロック番号へ転送主として指定した物理アド
レスからのデータ転送を、ディスクコントローラ5に対
して要求する(ステップS25)。この要求は、ライト
命令として、ディスクコントローラ5のメモリ80に送
られる。
【0055】ディスクコントローラ5は、転送元として
指定された物理アドレスをバス上に出し、読み出しを要
求する(ステップS26)。
【0056】対象デバイス6は、ディスクコントローラ
5の出したアドレスをデコードする。デバイス6は転送
元アドレスとしてデバイス6の物理アドレスが指定され
ているため、ディスクコントローラ5の転送要求に対し
て応答する(ステップS27)。
【0057】対象デバイス6は、デバイス6内のローカ
ルメモリ8の内容を物理アドレス順に読み出し、バス上
に送り出す(ステップS28)。
【0058】ディスクコントローラ5はデバイス6の送
り出すデータを受け取り、ディスクコントローラ5内の
ディスクバッファ99に格納する。ディスクコントロー
ラ5は、ディスクコントローラ5内部のディスクバッフ
ァ99に格納された内容をディスクの指定された物理ブ
ロックに書き込む。ディスクコントローラ5はデータの
転送を終えると、データ転送の完了を通知する割り込み
をCPU1に対して送る。CPU1に対して送られた割
り込みにより、ディスクコントローラ5のデバイスドラ
イバ13は、操作の完了をオペレーティングシステム1
2の入出力管理部97に通知する。オペレーティングシ
ステム12の入出力管理部97はユーザプログラム11
に対してファイル入力操作の完了を通知する(ステップ
S29)。
【0059】以上述べたように実施の形態1において
は、デバイス6上のローカルメモリ8を物理アドレス空
間に割り付けた上で仮想アドレス空間にマッピングする
ことにより、デバイス6上のローカルメモリ8をユーザ
プログラム22のバッファ31とみなしている。こうし
て、磁気ディスク装置4上のファイルを読み出して直接
デバイス6に格納したり、デバイス6から磁気ディスク
装置4に直接書き込むことが可能となる。
【0060】また、以上述べた直接転送は、図12に示
すように同一バス上でもよいし、図1に示したようにバ
ス結合装置などで結合された異なる階層のバスであって
もよく、メモリが同一物理アドレス空間内にあればよ
い。更には、図13に示すように、デバイス上のメモリ
25が同一のアドレス空間上の複数のアドレス領域に対
して同時にマッピングされていてもよい。また、図14
に示すように、デバイス上のメモリ25が異なるアドレ
ス空間上の複数のアドレス領域に対して同時にマッピン
グされていてもよい。データ入出力方式は同期方式でも
非同期方式でもよい。
【0061】実施の形態2.図8はこの発明のデバイス
間データ転送装置及びその方法の他の実施の形態を示す
システム構成図であり、図1におけるディスクコントロ
ーラ5と磁気ディスク装置4をデバイス6により置き換
えたものである。
【0062】一方のデバイス6から他方のデバイス6へ
の直接転送の場合は、実施の形態1における磁気ディス
ク装置4上のファイルの読み出し及び書き込みの場合と
同様に考えることができる。デバイス6のローカルメモ
リ8上には物理ブロックとしてブロック単位に番号が振
られており、ファイルに対してそれぞれの物理ブロック
が対応付けられている。転送したいファイル名を指定す
ることにより、マイクロプロセッサ7がディスクコント
ローラ5と同様に機能することにより、物理ブロック単
位に一方のデバイス6から他方のデバイス6へ直接転送
することにより指定したファイル全体が転送される。
【0063】
【発明の効果】この発明は、以上説明したように構成さ
れているので、オペレーティングシステム12がユーザ
プログラム22からの要求に対してデバイス上のメモリ
25をユーザ空間21にマッピングできるメカニズムを
有していればよく、オペレーティングシステム12の変
更が最小ですむという効果を奏する。
【0064】また、プロセッサのメモリを仮想アドレス
空間にマッピングするように構成したことにより、デバ
イス間における論理的な単位での直接転送が可能で効率
的なデバイス間直接転送方法が得られる。
【0065】また、ディスク装置から他のデバイスへの
転送又は他のデバイスからディスク装置への転送を可能
としたことにより、他のデバイスからディスク装置への
直接の読み出し書き込みができる。
【0066】さらに、デバイスはプロセッサとメモリか
ら構成され、そのメモリは転送するファイルと物理的な
ブロック単位で対応付けられているように構成したの
で、一方のデバイスから他方のデバイスへ直接転送でき
る。
【図面の簡単な説明】
【図1】 この発明の実施の形態1を示すシステム構成
図である。
【図2】 この発明の実施の形態1を示すソフトウェア
構成図である。
【図3】 この発明の実施の形態1を示すマッピングの
状態図である。
【図4】 この発明の実施の形態1を示す初期化処理の
フロー図である。
【図5】 この発明の実施の形態1を示すファイル読み
出しのフロー図である。
【図6】 この発明の実施の形態1を示すバッファの説
明図である。
【図7】 この発明の実施の形態1を示すファイル書き
込みのフロー図である。
【図8】 この発明の実施の形態2を示すシステム構成
図である。
【図9】 従来例のシステム構成図である。
【図10】 従来例のマッピングの状態図である。
【図11】 コンフィグレーションテーブルの構成図で
ある。
【図12】 この発明の他のシステム構成図である。
【図13】 この発明の他のマッピングの状態図であ
る。
【図14】 この発明の他のマッピングの状態図であ
る。
【符号の説明】
1 CPU(中央処理装置)、2 主記憶装置、6 デ
バイス、8 ローカルメモリ(メモリ)、20 仮想ア
ドレス空間、23 物理アドレス空間、24アドレス変
換テーブル。

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置と主記憶装置と複数のデバ
    イスとが接続され、仮想アドレス空間のアドレスを物理
    ドレス空間のアドレスへ変換するアドレス変換テーブル
    を備え、上記複数のデバイス間でデータを転送するデバ
    イス間データ転送装置において、 物理アドレス空間上に上記デバイス上のメモリを割り付
    けるメカニズムと、 この割り付けられたアドレスを仮想アドレス空間上のユ
    ーザ空間にマッピングするメカニズムと、 上記アドレス変換テーブルにより上記ユーザ空間のアド
    レスを上記物理アドレス空間のアドレスへ変換するメカ
    ニズムと、 変換したアドレスを転送先と転送元のいずれかのアドレ
    スとしてデータを転送するメカニズムと、を備えたこと
    を特徴とするデバイス間データ転送装置。
  2. 【請求項2】 上記デバイス間データ転送装置は、ディ
    スク装置から他のデバイスへのデータ転送と他のデバイ
    スからディスク装置へのデータ転送とのいずれかを実行
    することを特徴とする請求項1記載のデバイス間データ
    転送装置。
  3. 【請求項3】 上記デバイスは、プロセッサとメモリか
    ら構成され、そのメモリは物理的なブロック単位でデー
    タを転送することを特徴とする請求項1記載のデバイス
    間データ転送装置。
  4. 【請求項4】 上記割り付けるメカニズムは、物理アド
    レス空間上のデバイス上のメモリの先頭アドレスをコン
    フィグレーションテーブルに物理アドレスとして記憶す
    るメカニズムを備えた請求項1に記載のデバイス間デー
    タ転送装置。
  5. 【請求項5】 上記マッピングするメカニズムは、ユー
    ザ空間にマッピングされたデバイス上のメモリのサイズ
    をコンフィグレーションテーブルにメモリサイズとして
    記憶するメカニズムを備えた請求項4記載のデバイス間
    データ転送装置。
  6. 【請求項6】 上記変換するメカニズムは、上記コンフ
    ィグレーションテーブルの物理アドレスとメモリサイズ
    で示されたデバイスのメモリをデータが転送されるユー
    ザ空間上のバッファとみなすメカニズムを備えた請求項
    5記載のデバイス間データ転送装置。
  7. 【請求項7】 上記転送するメカニズムは、上記転送元
    のデバイスに対してユーザ空間上のバッファへ転送元の
    デバイスからデータを転送する要求を発行するメカニズ
    ムを備えた請求項6記載のデバイス間データ転送装置。
  8. 【請求項8】 上記変換するメカニズムは、上記コンフ
    ィグレーションテーブルの物理アドレスとメモリサイズ
    で示されたデバイス上のメモリをデータが記憶されてい
    るユーザ空間上のバッファとみなすメカニズムを備えた
    請求項5記載のデバイス間データ転送装置。
  9. 【請求項9】 上記転送するメカニズムは、上記転送先
    のデバイスに対してユーザ空間上のバッファから転送先
    のデバイスへデータを転送する要求を発行するメカニズ
    ムを備えた請求項8記載のデバイス間データ転送装置。
  10. 【請求項10】 中央処理装置と主記憶装置と複数のデ
    バイスとが接続され、仮想アドレス空間のアドレスを物
    理ドレス空間のアドレスへ変換するアドレス変換テーブ
    ルを備え、上記複数のデバイス間でデータを転送するデ
    バイス間データ転送方法において、 物理アドレス空間上に上記デバイス上のメモリを割り付
    けるステップと、 この割り付けられたアドレスを仮想アドレス空間上のユ
    ーザ空間にマッピングするステップと、 上記アドレス変換テーブルにより上記ユーザ空間のアド
    レスを上記物理アドレス空間のアドレスへ変換するステ
    ップと、 変換したアドレスを転送先と転送元のいずれかのアドレ
    スとしてデータを転送するステップと、を備えたことを
    特徴とするデバイス間データ転送方法。
  11. 【請求項11】 上記デバイス間データ転送装置は、デ
    ィスク装置から他のデバイスへのデータ転送と他のデバ
    イスからディスク装置へのデータ転送とのいずれかを実
    行することを特徴とする請求項10記載のデバイス間デ
    ータ転送方法。
  12. 【請求項12】 上記デバイスは、プロセッサとメモリ
    から構成され、そのメモリは物理的なブロック単位でデ
    ータを転送することを特徴とする請求項10記載のデバ
    イス間データ転送方法。
  13. 【請求項13】 上記割り付けるステップは、物理アド
    レス空間上のデバイス上のメモリの先頭アドレスをコン
    フィグレーションテーブルに物理アドレスとして記憶す
    るメカニズムを備えた請求項10に記載のデバイス間デ
    ータ転送方法。
  14. 【請求項14】 上記マッピングするステップは、ユー
    ザ空間にマッピングされたデバイス上のメモリのサイズ
    をコンフィグレーションテーブルにメモリサイズとして
    記憶するメカニズムを備えた請求項13記載のデバイス
    間データ転送方法。
  15. 【請求項15】 上記変換するステップは、上記コンフ
    ィグレーションテーブルの物理アドレスとメモリサイズ
    で示されたデバイスのメモリをデータが転送されるユー
    ザ空間上のバッファとみなすステップを備えた請求項1
    4記載のデバイス間データ転送方法。
  16. 【請求項16】 上記転送するステップは、上記転送元
    のデバイスに対してユーザ空間上のバッファへ転送元の
    デバイスからデータを転送する要求を発行するステップ
    を備えた請求項15記載のデバイス間データ転送方法。
  17. 【請求項17】 上記変換するステップは、上記コンフ
    ィグレーションテーブルの物理アドレスとメモリサイズ
    で示されたデバイス上のメモリをデータが記憶されてい
    るユーザ空間上のバッファとみなすステップを備えた請
    求項14記載のデバイス間データ転送方法。
  18. 【請求項18】 上記転送するステップは、上記転送先
    のデバイスに対してユーザ空間上のバッファから転送先
    のデバイスへデータを転送する要求を発行するステップ
    を備えた請求項17記載のデバイス間データ転送方法。
JP32726997A 1996-11-29 1997-11-28 デバイス間データ転送装置及びその方法 Expired - Lifetime JP3371078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32726997A JP3371078B2 (ja) 1996-11-29 1997-11-28 デバイス間データ転送装置及びその方法

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP31971996 1996-11-29
JP27835397 1997-10-13
JP9-278353 1997-10-13
JP8-319719 1997-10-13
JP32726997A JP3371078B2 (ja) 1996-11-29 1997-11-28 デバイス間データ転送装置及びその方法

Publications (2)

Publication Number Publication Date
JPH11184829A true JPH11184829A (ja) 1999-07-09
JP3371078B2 JP3371078B2 (ja) 2003-01-27

Family

ID=27336549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32726997A Expired - Lifetime JP3371078B2 (ja) 1996-11-29 1997-11-28 デバイス間データ転送装置及びその方法

Country Status (1)

Country Link
JP (1) JP3371078B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133657A (ja) * 2005-11-10 2007-05-31 Konica Minolta Opto Inc メモリ制御装置及びメモリ制御方法
JP2016170696A (ja) * 2015-03-13 2016-09-23 株式会社東芝 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
JP2020077402A (ja) * 2018-10-19 2020-05-21 イーソル株式会社 オペレーティングシステム及びメモリ割り当て方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133657A (ja) * 2005-11-10 2007-05-31 Konica Minolta Opto Inc メモリ制御装置及びメモリ制御方法
JP2016170696A (ja) * 2015-03-13 2016-09-23 株式会社東芝 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
JP2020077402A (ja) * 2018-10-19 2020-05-21 イーソル株式会社 オペレーティングシステム及びメモリ割り当て方法

Also Published As

Publication number Publication date
JP3371078B2 (ja) 2003-01-27

Similar Documents

Publication Publication Date Title
JP3431972B2 (ja) 仮想ディスクシステム
US5404478A (en) Method of managing a virtual storage for a multi-processor system
JP2868141B2 (ja) ディスクアレイ装置
US4984149A (en) Memory access control apparatus
US8370533B2 (en) Executing flash storage access requests
TW421744B (en) Method and apparatus to permit the boot of a shared memory buffer architecture employing an arbitrary operating system
US20020124138A1 (en) Internal copy for a storage controller
JPS62165250A (ja) 仮想記憶方法
US6092170A (en) Data transfer apparatus between devices
JPH06131259A (ja) メモリと補助記憶装置間のデータ転送方法
JP2561398B2 (ja) 二重化ディスク制御装置
TW200413917A (en) Method and system of managing virtualized physical memory in a multi-processor system
JPH0328943A (ja) オーバーレイ管理方法
JPH06202944A (ja) データ処理システムにおけるメモリの拡張方法及びシステム
JP3371078B2 (ja) デバイス間データ転送装置及びその方法
US6393498B1 (en) System for reducing processor workloads with memory remapping techniques
GB2221066A (en) Address translation for I/O controller
JP3579149B2 (ja) コンピュータシステム
JPS62257553A (ja) デイスク制御装置
JP3499938B2 (ja) 異種プロトコルの複数システム間の入出力装置共用システム
JP2733189B2 (ja) ディスクアレイ装置の入出力制御方法
JPH05250099A (ja) 高速ファイルアクセス制御方法および計算機システム
KR200216750Y1 (ko) 에스씨에스아이에서접근속도향상장치
KR910000590B1 (ko) 컴퓨터의 미러(Mirror) 디스크램 시스템
JPS6218074B2 (ja)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20021105

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040520

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

Free format text: PAYMENT UNTIL: 20071115

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20131115

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term