JP2004206424A - Data processing device and data transfer method for data processing device - Google Patents
Data processing device and data transfer method for data processing device Download PDFInfo
- Publication number
- JP2004206424A JP2004206424A JP2002374868A JP2002374868A JP2004206424A JP 2004206424 A JP2004206424 A JP 2004206424A JP 2002374868 A JP2002374868 A JP 2002374868A JP 2002374868 A JP2002374868 A JP 2002374868A JP 2004206424 A JP2004206424 A JP 2004206424A
- Authority
- JP
- Japan
- Prior art keywords
- address
- page
- data
- management information
- real
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明はデータ処理装置及びデータ処理装置におけるデータ転送方法に係り、特に大量のデータを速やかに移動することのできるデータ処理装置及びデータ処理装置におけるデータ転送方法に関する。
【0002】
【従来の技術】
主記憶上でデータの移動処理を行うときは、通常データのコピー処理が行なわれる。この処理は移動するデータ量が少量である場合は問題とはならない。しかし、近年、主記憶容量の増大に伴い、主記憶上で扱うデータ量も増大している。移動するデータ量が増大すると主記憶間で行われる大量のデータのコピーに要する処理時間(CPU時間)が増大する。特にユーザプログラム等で作成された大量のデータの記録媒体への出力、タスク間でのデータ供用、あるいはジョブステップ間でのデータ共用の場合、システムにより共通領域や入出力用バッファにデータコピーが行なわれる。このデータコピーに要する処理時間はデータ量が増大するにつれて増大し、これらの処理にCPU処理時間が大幅に費やされることになる。
【0003】
【発明が解決しようとする課題】
ユーザプログラムが主記憶上に作成したデータをデータ管理を経由して、記録媒体に書き出すとき、オペレーティングシステム(OS)はユーザプログラムで作成したデータをバッファリング又はブロッキングした後、記録媒体への書き込みを開始するためのデータコピーを行う。しかし、バッファリング又はブロッキングするデータ量が大量になるにつれ、データコピー処理に大量のCPU時間を費やすことになる。
本発明は、これらの問題点に鑑みてなされたもので、ページ単位のデータ移動を行うことで、データのコピー処理にかかる処理時間(CPU時間)の短縮を図ることのできるデータ処理装置及びデータ処理装置におけるデータ転送方法を提供する。
【0004】
【課題を解決するための手段】
本発明は、上記の課題を解決するために次のような手段を採用した。
【0005】
仮想アドレスをもとに実メモリをアクセスするとき、アクセスする毎にアドレス変換手段を介して仮想アドレスをアドレス変換して実アドレスを求め、求めた実アドレスをもとに実メモリをアクセスするアドレス変換方式を用いたデータ処理装置であって、前記アドレス変換手段は、ページ管理情報を書き換えるページ管理情報書き換え手段を備え、該ページ情報書き換え手段はデータの異動元及び異動先を管理しているアドレス変換テーブル上のページ管理情報を書き換え、仮想空間上でページ単位のデータ移動を行う。
【0006】
【発明の実施の形態】
以下、本発明の実施形態を添付図面を参照しながら説明する。図1は、メモリアクセスの概要を説明する図である。プロセスa(101)が仮想アドレスを用いてバッファa(109)をアクセスするとき、アクセスするごとにアドレス変換部(112)を介して仮想アドレスをアドレス変換(107)し、実アドレス(108)を求め、実アドレスをもとにバッファaに対応する実メモリa(109)をアクセスする。プロセスb(102)も同様にバッファb(110)を仮想アドレスを用いてアクセスする場合、通常時はアドレス変換部(112)でアドレス変換(107)を行い、仮想アドレスを実アドレス(108)に変換した後、バッファbに対応する実メモリb(110)をアクセスする。
【0007】
アドレス変換部(112)で行うアドレス変換(107)は、OS(111)で行うこともできる。プロセスb(102)がバッファb(110)をアクセスする際、事前にOS内(111)でアドレス変換(105)を行ない、仮想アドレスを実アドレス(106)に変換した後、アドレス変換部(112)を用いたアドレス変換(107)を行うことなく、バッファbに対応する実メモリb(110)を直接アクセスすることができる。
【0008】
図2は、本発明によるデータ移動処理を適用した計算機を説明する図である。この例では、プロセスa(201)により加工、編集したデータを補助記憶装置(211)に出力するプログラムを備えている。
【0009】
プロセスa(201)が加工、編集したデータを出力(203)すると、実メモリa(212)へのブロッキング(データの一時記憶)が行なわれる。実メモリa(212)に対してブロッキングが行なわれる際、仮想アドレスのままでは主記憶装置にデータを書き込めないため、アドレス変換部(218)で仮想アドレスをアドレス変換(208)することによって、実アドレス(209)に変換し、この実アドレスを元に実メモリa(212)に対してデータのブロッキングを行なう。
【0010】
ブロッキングを行なうと、ブロッキング用のバッファが満杯となる。実際には満杯になった時点で補助記憶装置(211)に出力すれば良いが、補助記憶装置(211)のI/O時間(入出力時間)は低速であるため、直ぐにデータを出力することはスループットの低下に繋がる。このため、前記補助記憶装置(211)へのデータ出力を、バッファの満杯時点とは非同期で行うこととする。
【0011】
すなわち、前記バッファが満杯となってもプロセスa(201)のデータ出力処理を止めないことが必要である。データ出力処理を止めない方法として、ブロッキング用のバッファに常に空きがあるようにしておくことが必要である。このための方法として、ブロッキング用のバッファを複数面用意し、ブロッキング用バッファが満杯になった時点でバッファの交代(204)を行えばよい。バッファの交代(204)が行なわれた後に、満杯となったバッファを補助記憶装置(211)に出力するために、I/O制御(210)を非同期で動作させる。
【0012】
非同期で動作させる方法として、待ち状態になっているプロセスb(202)に起動通知(205)を行う。プロセスb(202)は、プロセスa(201)からの起動通知(205)を受信すると、受信した時点でプロセスb(202)を起動する。起動したプロセスb(202)は、起動通知(205)をうけた際、満杯となったバッファアドレスを受け取る。次いで、このアドレスから、I/O用バッファへのデータコピー(206)を行い、I/Oバッファ(214)を介して補助記憶装置(211)に対する出力要求(207)が発行される。入出力制御部(217)は、このI/O要求(207)をもとに、指定されたI/Oバッファ(214)のアドレスから、補助記憶装置(211)へ出力(210)を行なう。
【0013】
プロセスa(201)とプロセスb(202)は、非同期に動作し、インタフェースとしてバッファアドレスが使用される。プロセスb(202)は、受け取ったバッファアドレスの内容(213)がI/Oを発行するまでに破壊されないように、直ぐにI/Oバッファ(214)に移動させるために、データのコピー処理を行ない、出力データの保証を行う。このためには、I/Oバッファ(214)は複数面用意する場合が多い。また、プロセスa(201)では、データ出力処理で待ちが発生させないために、ブロッキング用のバッファ(212,213)を複数面用意する場合が多い。
【0014】
プロセスa(201)及びプロセスb(202)では共にバッファのコピー処理が実施される。プロセスa(201)ではバッファの交代(204)処理が該当し、プロセスb(202)では、バッファ(213)からI/Oバッファ(214)へのコピー(206)が該当する。前述のように、コピー処理ではコピーするデータ量が大量になるにつれて処理時間が長くなる。これは、CPU性能が向上しても主記憶装置へのアクセスに要するアクセス時間が大きいためである。
【0015】
図3は、仮想アドレスから実アドレスにアドレス変換する方法を説明する図である。仮想アドレス(302)から実アドレス(305)を求めるためには、セグメントテーブル(303)とページテーブル(304)を用いる。セグメントテーブル(303)は、主記憶上の大きな領域枠を管理するテーブルであり、各領域枠に対して一つのレコードからなる。セグメントテーブル(303)の先頭アドレスは、セグメントテーブル起点(301)からポイントされている。セグメントテーブル(303)内の個々のレコードは、セグメントテーブル(303)内の一つのレコードが管理している主記憶の大きな領域枠を更にページ単位で管理するページテーブル(304)の先頭アドレスを指す。
【0016】
ページテーブル(304)は、セグメントテーブル(303)と同様に複数のレコードから構成されており、一つのレコードは主記憶の1ページに対応する。仮想アドレス(302)は、アドレス自体がセグメントフィールド、ページフィールド、変位フィールドから構成される。セグメントフィールドはセグメントテーブル(303)内のカレントのレコード位置を示しており、ページフィールドは同様にページテーブル(304)のカレントのレコード位置を示す。変位フィールドは、ページ内のカレント位置を示す。
【0017】
ある仮想アドレス(302)から実アドレス(305)を求める場合、初めに仮想アドレス(302)をセグメントフィールド、ページフィールド、変位フィールドに分ける。次に、セグメントテーブル(303)のカレント位置を求めるために、セグメントフィールドをセグメントテーブル(303)のレコード長で倍数化(308)する。図3の例ではn倍(308)することになる。この後セグメントテーブル起点(301)の値を加算(309)ことにより、セグメントテーブル(303)のカレントなレコード位置(306)を求めることができる。 次に、ページテーブル(304)のカレントなレコード位置を決めるために、仮想アドレス(302)のページフィールドをページテーブル(304)のレコード長で倍数化(310)する。図3の例ではm倍(310)することになる。このm倍した値に、前述で求めたセグメントテーブル(303)のカレント位置の値(306)であるページテーブル起点を加算(311)することによりページテーブル(304)のカレントなレコード位置(307)を求めることができる。
【0018】
ページテーブル(304)のカレントなレコード位置(307)を求めたら、そのレコード内のページアドレス値(307)が、実ページのページ番号である。このページ番号に仮想アドレス(302)の変位フィールドを加算することにより実アドレス(305)を求めることができる。このように、仮想アドレス(302)から実アドレス(305)を求めることが可能なテーブル構造をアドレス変換テーブルと称する。
【0019】
図4は、アドレス変換テーブルのページ管理情報であるページテーブルの交換方法の概要を説明する図である。図4の例では4ページ分のバッファa(402)から4ページ分のバッファb(403)にデータコピー(404)が行なわれることを示している。従来の例であれば、移動元であるバッファa(402)内のデータを移動先であるバッファb(403)にコピー処理(404)を行うことでデータの移動が完了するが、この場合は前述のようにコピー処理(404)に使用されるCPU時間が増大する。
【0020】
本実施形態では、このコピー処理を削減しCPU時間の消費を抑えるために、バッファ間でのコピー(404)処理を行なわず、コピー処理と同等の効果を提供するものである。
【0021】
バッファ間でのコピー処理(404)を行なわずにデータの移動を行うためには、アドレス変換テーブルのページテーブル群(401)内で移動元バッファa(402)のページを管理しているページテーブル(405)と、移動先バッファb(403)のページを管理しているページテーブル(406)のページ管理情報を交換(407)することによりページの移動を完了させることができる。
【0022】
データの移動処理を開始するときには、移動元であるページテーブル(405)と移動先であるページテーブル(406)を互いに求める。互いのページテーブルが求まった後は、システムにより移動元バッファa(402)と移動先バッファb(403)が他タスクにより使用されないように排他制御を行なった後、移動元であるページテーブル(405)と移動先であるページテーブル(406)のページ管理情報の交換(407)を行う。これにより、コピー処理(404)を行なうことなくデータの移動を完了することができる。
【0023】
図5は、ページテーブルにおけるページ管理情報の交換方法を説明する図である。図5(a)はページテーブルの情報交換前を示しており、図5(b)はページテーブルの情報交換後を示している。
【0024】
図5(a)は、移動元ページa(503)を移動先ページb(504)に移動する前の状態を示しており、移動元ページa(503)はページテーブル(501)で管理されている。また、移動先ページb(504)は、ページテーブル(502)で管理されている。ページテーブルa(501)及びページテーブルb(502)は、ページの管理情報としてページ番号を格納する。すなわち、ページテーブルa(501)には移動元ページa(503)の実アドレスaのページ番号を格納し、ページテーブルb(502)には移動先ページb(504)の実アドレスbのページ番号を格納する。ページ番号は、主記憶上の全てのページに対してユニークに管理されている。このためページ番号が重複することはない。
【0025】
本実施形態におけるデータの移動の方法はページ管理情報であるページ番号のの相互交換(505)を行なうことにある。これにより、移動元ページa(503)を移動先ページb(504)にデータを移動するとき、データのコピーを行うのではなく、移動元ページa(503)を管理しているページテーブル(501)と移動先ページb(504)を管理しているページテーブル(502)の情報を入れ替える(505)ことのみによりデータの移動が完了することになる。
【0026】
図5(b)は前述の方法でページテーブルのページ番号を入れ替えた後の状態を示している。図に示すように、移動元と移動先のページテーブル(506,507)のページ番号を入れ替えたため、入れ替え前には移動元ページa(508)を管理していたページテーブルa(506)には移動先ページb(509)のページ番号が格納されることになる。また、入れ替え前には移動先ページb(509)を管理していたページテーブルb(507)には移動元ページa(508)のページ番号が格納されることになる。
【0027】
この方法によるデータの移動は、ページ番号の入れ替えのみで実現できる。このため、移動元ページa(508)と移動先ページb(509)の主記憶上の実アドレスは変更はない。すなわち、移動元ページa(508)を管理していたページテーブル(506)は、移動先ページb(509)のページテーブルとなる。このため、ページテーブルa(506)を経由してデータの存在する主記憶上のメモリを参照しようとすると、ページ番号の入れ替え前では移動元ページa(508)を参照するが、ページ番号の入れ替え後では移動先ページb(509)を参照することになる。これにより、データが存在している移動元ページa(508)と移動先ページb(509)間でコピー処理を行なう必要はなくなる。
【0028】
図6は、仮想アドレスからデータの存在する実アドレスへの参照経路を説明する図である。図6(a)は、ページテーブルの入れ替え前の実アドレスの参照経路を示しており、図6(b)は、ページテーブルの入れ替え後の実アドレスの参照経路を示している。
【0029】
図6(a)では、ある仮想アドレス(601)が実アドレスa(602)に対応している場合、アドレス変換の過程を辿ると、仮想アドレス(601)から該当するセグメントテーブル(604)を求め、セグメントテーブル(604)から該当するページテーブル(605)を求め、更に実アドレスa(602)を管理しているページテーブル(607)を求める。これらの情報をもとにアドレス変換を実施したのち、実アドレスを求め実アドレスa(602)を参照することになる。この過程を示したのが矢印(606)である。
【0030】
次に、本実施形態により、実アドレスa(602)のデータを実アドレスb(603)に(見かけ上)移動させるとする。この結果が図6(b)である。実アドレスa(609)を管理していたページテーブル(615)は、実アドレスb(610)を管理していたページテーブル(616)とページ番号を相互交換(614)したため、ページテーブル(615)の実ページ番号は実アドレスb(610)を示すことになる。このような状態で前述のアドレス変換の過程を辿ると、仮想アドレス(608)から該当するセグメントテーブル(611)を求め、セグメントテーブル(611)から該当するページテーブル(612)を求め、更に実アドレスaを管理するページテーブル(615)を求める。これらの情報からアドレス変換を実施する。ここで、前述と異なるのは参照するページテーブル(615)は同じ場所であるが、ページテーブル(615)のページ番号が異なることである。これはページ番号の相互交換(614)の結果である。このためアドレス変換の結果(613)、求まる実アドレスは実アドレスb(610)となる。このため、ページテーブルの相互交換(614)を実施した後には、仮想アドレス(608)は変わらず、実ページだけが入れ替わったように見えることになる。
【0031】
図7は、ページテーブルにおけるページ管理情報交換のためのパラメタ及び、ページテーブルにおけるページ管理情報交換のための命令語の形式を示したものである。図7(a)は、ページテーブルのページ管理情報の相互交換するためのパラメタ(701)であり、パラメタ(701)はページ管理情報の交換をソフトウェアで行う場合に用いる。
【0032】
ページテーブルを相互に交換するためには、バッファサイズ(702)、移動元バッファ先頭仮想アドレス(703)、移動先バッファ先頭仮想アドレス(704)が必要である。これらの情報を格納したパラメタ(701)によって、OS内部でページテーブルの相互交換の処理プログラムを呼び出すことによりページテーブルを相互に交換することができる。
【0033】
パラメタ(701)は、移動対象である仮想領域で連続したデータに対して1個用意する。バッファサイズ(702)は移動対象となるデータの総バイト数であり、その値はページ長の倍数値である。なお、バッファサイズ(702)はページ数であってもよい。ただし、この場合のページは仮想アドレスで連続した領域でなければならない。移動元バッファ先頭仮想アドレス(703)は、移動元の先頭仮想アドレスを指定し、移動先バッファ先頭仮想アドレス(704)は、移動先の先頭仮想アドレスを指定する。各々のアドレスは、ページ境界アドレスになっていなければならない。
【0034】
図7(b)は、ページテーブルの相互交換をハードウェアで実施するための命令語の形式を説明する図である。命令語は2種類用意し、命令語1(705)には、パラメタリストアドレス(706)のみを指定できるようにする。パラメタリストアドレスには、ソフトウェアで実施できるパラメタ(701)と同じ形式のインタフェースを用意し、このアドレスを指定する。
【0035】
命令語2(707)は、パラメタ(701)を準備できない場合に使用できるようにするものである。領域サイズ、移動元バッファ先頭アドレス、移動先バッファ先頭アドレスを汎用レジスタで指定できるようにする。アドレスは移動元アドレス、移動先アドレスの両方とも仮想アドレスを指定する。これらの命令語を発行することで、ハードウェア内部で(見かけ上の)データの移動が行なわれることになる。これらの方法を準備することで、ソフトウェアあるいはハードウェアのいずれの方法を用いてもデータ移動を実現することができる。
【0036】
図8は、データ移動処理を説明する図であり、データの移動を要求する処理プログラム側の処理フローを示している。まず、ステップ801において、データ移動を要求する処理プログラムは、処理対象の移動元バッファ(501)と移動先バッファ(502)のバッファの確認を行う。この確認は、移動対象である移動元(501)のバッファ長がページ長の倍数であるか、連続した領域であるか、あるいは移動先(502)のバッファサイズに収まるデータ量であるか等のページテーブルにおけるページ管理情報を相互交換するための事前確認である。ここでページ管理情報の相互交換の対象となるバッファが存在すればステップ809に進み、そうでなければ処理を終了する。
【0037】
次に、ステップ809以降において、相互交換の要求を発行する方法を決める。図7に示すように相互交換の要求を発行するする方法は3通り存在する。図8に示すフローでは、3通りの発行方法の何れかを選択するものとしている。まず、ステップ809において、相互交換に際してパラメタ(701)を使用するものとパラメタ(701)を使用しないもので2通りに分別が可能である。パラメタを使用する方法はパラメタ領域を準備することが可能な場合であり、パラメタを使用しない方法は、パラメタ領域を準備できない場合が該当する。ここで、パラメタ(701)領域を準備することが可能な場合はステップ802に進み、そうでない場合はステップ803に進む。
【0038】
ステップ802において、移動元(501)及び移動先(502)の仮想アドレスとサイズをパラメタ(701)に設定する。ステップ810において、相互交換要求を発行する方法として、ソフトウェアで相互交換する方法とハードウェアで相互交換するための命令語1(705)を発行する方法の何れかを選択する。ここで、ソフトウェアで相互交換の要求を発行するする方法を選択した場合はステップ804に進み、ハードウェアで相互交換するための命令語1(705)を発行する(805)方法を選択した場合はステップ805に進む。なお、前記ソフトウェアでページテーブルにおけるページ管理情報の相互交換の要求を発行する方法はソフトウェア内で特殊な制御を必要とするような場合に使用すると効果的である。また、ハードウェアで命令1(705)を使用して相互交換の要求を発行するする方法はソフトウェア内で特殊な制御は不要で純粋にデータ移動を目的とする場合に使用すると効果的である。ここで言う特殊な制御は、主にメモリ管理方式であるページテーブルをソフトウェア内で制御するプログラムを指す。ステップ804において、ソフトウエアによるページ管理情報の相互交換を要求する。ステップ805において、命令語1(705)を発行してハードウェアによる相互交換を要求する。
【0039】
前記ステップ809でパラメタ(701)を使用しない場合または使用できない場合は、ステップ803において、汎用レジスタに移動元(501)及び移動先(502)の仮想アドレスとサイズを設定し、ステップ806において、命令語2(707)を発行して相互交換の要求を行う。
【0040】
前記何れの相互交換の要求を発行する方法を用いても交換処理の完了報告が発せられる。ステップ807において、この完了報告を受信し、ページテーブルのページ管理情報の相互交換が正常に終了したか否かを確認する。正常に終了した場合、データ移動が完了し、移動前の移動元(501)バッファと移動先(502)バッファは、ページテーブルの管理情報が交換されて、図5(b)に示す状態が完成する。ステップ807において相互交換が正常に終了したことを確認した場合はステップ801に進み、そうでない場合はステップ808に進む。ステップ808において、処理を中断する。この際、エラー処理として、障害発生メッセージを出力する。また、異常終了時のダンプ出力等を行う。また、全ての対象バッファに対する処理が正常終了した場合は、処理を終了させる。
【0041】
図9は、ページテーブルにおけるページ管理情報の交換処理を説明する図である。交換処理は、図7で示すパラメタ(701)あるいは命令語2(707)のレジスタに格納した情報を元にして処理を行う。この処理はソフトウェアあるいはハードウェアの双方で行うことができる。
【0042】
まず、ステップ901において、前記パラメタ(701)からバッファサイズを求める。命令語2(707)を使用している場合は第1オペランドで指定された領域サイズの汎用レジスタから求めることができる。ステップ902において、求めたバッファサイズがページ長の整数倍であるか確認を行う。整数倍でない場合、ページ単位の情報交換ができないため、ステップ912においてエラー処理(処理を中断)する。ステップ903において、移動元仮想アドレスをパラメタから求める。命令語2(707)を使用している場合は第2オペランドで指定された移動元アドレスの汎用レジスタから求める。ステップ904において、求めた移動元仮想アドレスの妥当性を確認する。ここでは、指定された仮想アドレスに対する実ページが主記憶上に存在するか確認をする。もし、存在しなければ、指定された仮想アドレスは不当アドレスとなるため、ステップ912においてエラー処理する。ステップ904で移動元の仮想アドレスの妥当性チェックを完了すると、ステップ905において、移動元バッファを管理しているページテーブルの実アドレスを算出する。
【0043】
ステップ906において、移動先仮想アドレスをパラメタから求める。命令語2(707)を使用している場合は第3オペランドで指定された移動先アドレスの汎用レジスタから求める。ステップ907において、求めた移動先仮想アドレスの妥当性を確認する。ここでは、指定された仮想アドレスに対する実ページが主記憶上に存在するか確認をする。もし、存在しなければ、指定された仮想アドレスは不当アドレスとなるため、ステップ912においてエラー処理する。ステップ907で移動先の仮想アドレスの妥当性チェックが完了すると、ステップ908において、移動先バッファを管理しているページテーブルの実アドレスを算出する。全ての妥当性確認が終了したら、ステップ909において、相互交換時に他プロセスからバッファの参照が行なわれないようにするために、システム間ロックを確保する。ロックの確保ができたあとは、ステップ910において、交換対象のページを一時的に無効化し、この間にページテーブルの交換処理を行なった後、無効化したページを有効化する。ページテーブルの相互交換が完了したあとは、ステップ911において、確保していたシステム間ロックを解除して処理を終了する。
【0044】
以上説明したように、本実施形態によれば、アドレス変換テーブルのページテーブルにおけるページ管理情報のみを相互交換することで、1ページ単位のデータ移動が行われたのと同じ結果を得ることができる。これにより、従来であればコピーするデータ量が増大するにつれて増大することとなるCPU時間を大幅に削減することができる。
【0045】
【発明の効果】
以上説明したように本発明によれば、コピー処理にかかる処理時間(CPU時間)の短縮を図ることのできるデータ処理装置及びデータ処理装置におけるデータ転送方法を提供することができる。
【図面の簡単な説明】
【図1】メモリアクセスの概要を説明する図である。
【図2】データ移動処理を適用した計算機を説明する図である。
【図3】仮想アドレスから実アドレスにアドレス変換する方法を説明する図である。
【図4】アドレス変換テーブルのページ管理情報であるページテーブルの交換方法の概要を説明する図である。
【図5】ページテーブルにおけるページ管理情報の交換方法を説明する図である。
【図6】仮想アドレスからデータの存在する実アドレスへの参照経路を説明する図である。
【図7】データ移動処理を説明する図である。
【図8】ページテーブルにおけるページ管理情報の交換処理を説明する図である。
【図9】ページテーブルにおけるページ管理情報の交換処理を説明する図である。
【符号の説明】
111,216 OS
112,218 アドレス変換部
113,219 主記憶装置
114,215 計算機
211 補助記憶装置
301 セグメントテーブル起点
302,601,608 仮想アドレス
303,604,611 セグメントテーブル
304 ページテーブル
305 実アドレス
401 、605,612 ページテーブル群
405,406、607,609,615,616 ページテーブル
402 バッファa
403 バッファb
501,506 ページテーブルa
502,507 ページテーブルb
503,508 移動元ページa
504,509 移動先ページb[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data processing device and a data transfer method in the data processing device, and more particularly to a data processing device and a data transfer method in the data processing device capable of quickly moving a large amount of data.
[0002]
[Prior art]
When performing data movement processing on the main storage, normal data copy processing is performed. This process is not a problem when the amount of data to be moved is small. However, in recent years, with an increase in the main storage capacity, the amount of data handled on the main storage has also increased. When the amount of data to be moved increases, the processing time (CPU time) required for copying a large amount of data between main memories increases. Especially when a large amount of data created by a user program is output to a recording medium, data is used between tasks, or data is shared between job steps, data is copied to a common area or an input / output buffer by the system. It is. The processing time required for the data copy increases as the data amount increases, and the CPU processing time is significantly spent on these processes.
[0003]
[Problems to be solved by the invention]
When writing the data created on the main memory by the user program to the recording medium via the data management, the operating system (OS) buffers or blocks the data created by the user program, and then writes the data to the recording medium. Make a data copy to start. However, as the amount of data to be buffered or blocked increases, a large amount of CPU time is spent for data copy processing.
The present invention has been made in view of these problems, and a data processing apparatus and a data processing method capable of shortening the processing time (CPU time) required for data copy processing by performing data movement in page units. A data transfer method in a processing device is provided.
[0004]
[Means for Solving the Problems]
The present invention employs the following means in order to solve the above problems.
[0005]
When the real memory is accessed based on the virtual address, the address is converted by the address conversion means to obtain the real address every time the access is performed, and the real memory is accessed based on the obtained real address. A data processing apparatus using a method, wherein the address conversion means includes a page management information rewriting means for rewriting page management information, wherein the page information rewriting means manages a data transfer source and a transfer destination. The page management information on the table is rewritten, and data is moved in page units in the virtual space.
[0006]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. FIG. 1 is a diagram illustrating an overview of memory access. When the process a (101) accesses the buffer a (109) using the virtual address, the virtual address is translated (107) through the address translation unit (112) every time the buffer a (109) is accessed, and the real address (108) is converted. Then, the real memory a (109) corresponding to the buffer a is accessed based on the real address. Similarly, when the process b (102) accesses the buffer b (110) using the virtual address, the address conversion unit (112) performs the address conversion (107) in the normal state, and converts the virtual address to the real address (108). After the conversion, the real memory b (110) corresponding to the buffer b is accessed.
[0007]
The address conversion (107) performed by the address conversion unit (112) can also be performed by the OS (111). When the process b (102) accesses the buffer b (110), the address conversion (105) is performed in advance in the OS (111), the virtual address is converted to the real address (106), and then the address conversion unit (112) ), The real memory b (110) corresponding to the buffer b can be directly accessed without performing the address conversion (107).
[0008]
FIG. 2 is a diagram illustrating a computer to which the data movement processing according to the present invention is applied. In this example, a program for outputting data processed and edited by the process a (201) to the auxiliary storage device (211) is provided.
[0009]
When the process a (201) outputs the processed and edited data (203), blocking (temporary storage of data) in the real memory a (212) is performed. When blocking is performed on the real memory a (212), data cannot be written to the main storage device without changing the virtual address. Therefore, the virtual address is translated (208) by the address translation unit (218). The data is converted into an address (209), and data blocking is performed on the real memory a (212) based on the real address.
[0010]
When blocking is performed, the blocking buffer becomes full. Actually, it is sufficient to output the data to the auxiliary storage device (211) when it becomes full. However, since the I / O time (input / output time) of the auxiliary storage device (211) is low, data should be output immediately. Leads to a decrease in throughput. Therefore, data output to the auxiliary storage device (211) is performed asynchronously with the time when the buffer is full.
[0011]
That is, it is necessary not to stop the data output processing of the process a (201) even if the buffer becomes full. As a method of not stopping the data output process, it is necessary to always have a free space in the blocking buffer. As a method for this, a plurality of blocking buffers may be prepared, and when the blocking buffer becomes full, the buffer may be replaced (204). After the replacement of the buffer (204), the I / O control (210) is operated asynchronously in order to output the full buffer to the auxiliary storage device (211).
[0012]
As a method of operating asynchronously, a start notification (205) is sent to the process b (202) in a waiting state. Upon receiving the start notification (205) from the process a (201), the process b (202) starts the process b (202) at the time of receiving the start notification (205). The activated process b (202) receives the full buffer address when receiving the activation notification (205). Next, data is copied (206) from this address to the I / O buffer, and an output request (207) to the auxiliary storage device (211) is issued via the I / O buffer (214). Based on the I / O request (207), the input / output control unit (217) performs output (210) to the auxiliary storage device (211) from the specified address of the I / O buffer (214).
[0013]
Process a (201) and process b (202) operate asynchronously, and a buffer address is used as an interface. The process b (202) performs data copy processing so as to immediately move the contents (213) of the received buffer address to the I / O buffer (214) so as not to be destroyed before issuing the I / O. And the output data is guaranteed. For this purpose, a plurality of I / O buffers (214) are often prepared. Also, in the process a (201), a plurality of blocking buffers (212, 213) are often prepared in order to prevent waiting from occurring in the data output processing.
[0014]
In both the process a (201) and the process b (202), buffer copy processing is performed. The process a (201) corresponds to the process of changing the buffer (204), and the process b (202) corresponds to the copying (206) from the buffer (213) to the I / O buffer (214). As described above, in the copy processing, the processing time increases as the amount of data to be copied increases. This is because the access time required for accessing the main storage device is long even when the CPU performance is improved.
[0015]
FIG. 3 is a diagram illustrating a method of performing address conversion from a virtual address to a real address. To obtain the real address (305) from the virtual address (302), a segment table (303) and a page table (304) are used. The segment table (303) is a table for managing a large area frame on the main memory, and includes one record for each area frame. The start address of the segment table (303) is pointed from the segment table starting point (301). Each record in the segment table (303) indicates the head address of the page table (304) that further manages a large area frame of the main memory managed by one record in the segment table (303) in page units. .
[0016]
The page table (304) is composed of a plurality of records as in the segment table (303), and one record corresponds to one page of the main storage. The virtual address (302) itself includes a segment field, a page field, and a displacement field. The segment field indicates the current record position in the segment table (303), and the page field similarly indicates the current record position in the page table (304). The displacement field indicates the current position in the page.
[0017]
When obtaining the real address (305) from a certain virtual address (302), the virtual address (302) is first divided into a segment field, a page field, and a displacement field. Next, in order to obtain the current position of the segment table (303), the segment field is multiplied by the record length of the segment table (303) (308). In the example of FIG. 3, it is n times (308). Thereafter, the current record position (306) of the segment table (303) can be obtained by adding (309) the value of the segment table start point (301). Next, to determine the current record position of the page table (304), the page field of the virtual address (302) is multiplied (310) by the record length of the page table (304). In the example of FIG. 3, it is m times (310). By adding (311) the page table starting point which is the current position value (306) of the segment table (303) obtained above to the value multiplied by m, the current record position (307) of the page table (304) is obtained. Can be requested.
[0018]
When the current record position (307) of the page table (304) is obtained, the page address value (307) in the record is the page number of the real page. The real address (305) can be obtained by adding the displacement field of the virtual address (302) to this page number. The table structure that can obtain the real address (305) from the virtual address (302) is called an address conversion table.
[0019]
FIG. 4 is a diagram illustrating an outline of a method of exchanging a page table, which is page management information of the address conversion table. In the example of FIG. 4, data copy (404) is performed from buffer a (402) for four pages to buffer b (403) for four pages. In the case of the conventional example, the data transfer is completed by performing a copy process (404) of the data in the buffer a (402) as the transfer source to the buffer b (403) as the transfer destination. In this case, As described above, the CPU time used for the copy processing (404) increases.
[0020]
In the present embodiment, in order to reduce the copy process and suppress the consumption of CPU time, the copy (404) process between buffers is not performed, and the same effect as the copy process is provided.
[0021]
In order to move data without performing a copy process (404) between buffers, a page table managing the page of the source buffer a (402) in the page table group (401) of the address translation table By exchanging (407) and the page management information of the page table (406) managing the pages of the destination buffer b (403) (407), the page movement can be completed.
[0022]
When starting the data transfer process, the page table (405) as the transfer source and the page table (406) as the transfer destination are obtained from each other. After the mutual page tables are obtained, the system performs exclusive control so that the source buffer a (402) and the destination buffer b (403) are not used by other tasks, and then executes the source page table (405). ) And exchange (407) of the page management information of the page table (406) as the movement destination. Thus, the data transfer can be completed without performing the copy process (404).
[0023]
FIG. 5 is a diagram illustrating a method of exchanging page management information in the page table. FIG. 5A shows the page table before information exchange, and FIG. 5B shows the page table after information exchange.
[0024]
FIG. 5A shows a state before the source page a (503) is moved to the destination page b (504). The source page a (503) is managed by the page table (501). I have. The destination page b (504) is managed by the page table (502). The page table a (501) and the page table b (502) store page numbers as page management information. That is, the page number of the real address a of the source page a (503) is stored in the page table a (501), and the page number of the real address b of the destination page b (504) is stored in the page table b (502). Is stored. The page number is uniquely managed for all pages on the main memory. Therefore, the page numbers do not overlap.
[0025]
The method of moving data in this embodiment is to exchange (505) page numbers, which are page management information. Thus, when data is moved from the source page a (503) to the destination page b (504), the page table (501) managing the source page a (503) is used instead of copying the data. ) And the information of the page table (502) managing the destination page b (504) is replaced (505), thereby completing the data transfer.
[0026]
FIG. 5B shows a state after the page numbers of the page table are exchanged by the above-described method. As shown in the figure, since the page numbers of the source and destination page tables (506, 507) have been exchanged, the page table a (506) managing the source page a (508) before the exchange has The page number of the destination page b (509) is stored. Further, the page number of the source page a (508) is stored in the page table b (507) that manages the destination page b (509) before the replacement.
[0027]
Data movement by this method can be realized only by exchanging page numbers. Therefore, the real addresses on the main memory of the source page a (508) and the destination page b (509) are not changed. That is, the page table (506) managing the source page a (508) becomes the page table of the destination page b (509). Therefore, when the user tries to refer to the memory on the main memory where the data exists via the page table a (506), the source page a (508) is referenced before the page number is replaced, but the page number is replaced. Later, the destination page b (509) will be referred to. This eliminates the need to perform copy processing between the source page a (508) and the destination page b (509) where data exists.
[0028]
FIG. 6 is a diagram illustrating a reference path from a virtual address to a real address where data exists. FIG. 6A shows a reference path of the real address before the page table is replaced, and FIG. 6B shows a reference path of the real address after the page table is replaced.
[0029]
In FIG. 6A, when a certain virtual address (601) corresponds to the real address a (602), following the address translation process, a corresponding segment table (604) is obtained from the virtual address (601). , A corresponding page table (605) is obtained from the segment table (604), and a page table (607) managing the real address a (602) is obtained. After performing the address conversion based on these information, the real address is obtained and the real address a (602) is referred to. An arrow (606) shows this process.
[0030]
Next, according to the present embodiment, it is assumed that the data of the real address a (602) is moved (apparently) to the real address b (603). FIG. 6B shows the result. The page table (615) that manages the real address a (609) exchanges page numbers (614) with the page table (616) that manages the real address b (610), so the page table (615) The real page number indicates the real address b (610). By following the above-described address translation process in such a state, the corresponding segment table (611) is obtained from the virtual address (608), the corresponding page table (612) is obtained from the segment table (611), and the real address is further obtained. A page table (615) for managing a is obtained. Address conversion is performed from these pieces of information. Here, the difference from the above is that the page table (615) to be referred is at the same location, but the page number of the page table (615) is different. This is the result of the page number interchange (614). Therefore, the real address obtained as a result of the address conversion (613) is the real address b (610). For this reason, after the page tables are exchanged (614), the virtual address (608) does not change, and only the real pages appear to be replaced.
[0031]
FIG. 7 shows the parameters for exchanging page management information in the page table and the format of command words for exchanging page management information in the page table. FIG. 7A shows a parameter (701) for exchanging the page management information of the page table. The parameter (701) is used when exchanging the page management information by software.
[0032]
In order to exchange page tables with each other, a buffer size (702), a source virtual buffer start virtual address (703), and a destination buffer start virtual address (704) are required. The page table can be exchanged by calling the processing program for exchanging the page table inside the OS by using the parameter (701) storing the information.
[0033]
One parameter (701) is prepared for continuous data in the virtual area to be moved. The buffer size (702) is the total number of bytes of data to be moved, and its value is a multiple of the page length. Note that the buffer size (702) may be the number of pages. However, the page in this case must be a continuous area with virtual addresses. The source buffer top virtual address (703) specifies the source virtual address of the source, and the destination buffer top virtual address (704) specifies the destination virtual address of the destination. Each address must be a page boundary address.
[0034]
FIG. 7B is a diagram illustrating a format of a command word for implementing the exchange of page tables by hardware. Two types of instruction words are prepared, and only the parameter list address (706) can be specified for the instruction word 1 (705). For the parameter list address, an interface having the same format as the parameter (701) that can be implemented by software is prepared, and this address is specified.
[0035]
The instruction word 2 (707) is used when the parameter (701) cannot be prepared. The area size, the starting address of the source buffer, and the starting address of the destination buffer can be specified by the general-purpose register. The address specifies a virtual address for both the source address and the destination address. By issuing these instructions, data moves (apparently) within the hardware. By preparing these methods, data movement can be realized using either software or hardware methods.
[0036]
FIG. 8 is a diagram for explaining data movement processing, and shows a processing flow on the processing program side requesting data movement. First, in
[0037]
Next, in
[0038]
In
[0039]
If the parameter (701) is not used or cannot be used in
[0040]
Regardless of the method of issuing any of the mutual exchange requests, a completion report of the exchange processing is issued. In
[0041]
FIG. 9 is a diagram illustrating the process of exchanging page management information in the page table. The exchange process is performed based on the information stored in the register of the parameter (701) or the instruction word 2 (707) shown in FIG. This processing can be performed by both software and hardware.
[0042]
First, in
[0043]
In
[0044]
As described above, according to the present embodiment, by exchanging only the page management information in the page table of the address conversion table, the same result as when data is moved in units of one page can be obtained. . As a result, the CPU time, which conventionally increases as the amount of data to be copied increases, can be significantly reduced.
[0045]
【The invention's effect】
As described above, according to the present invention, it is possible to provide a data processing apparatus and a data transfer method in the data processing apparatus that can reduce the processing time (CPU time) required for the copy processing.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an outline of memory access.
FIG. 2 is a diagram illustrating a computer to which data movement processing is applied.
FIG. 3 is a diagram illustrating a method of performing address conversion from a virtual address to a real address.
FIG. 4 is a diagram illustrating an outline of a method of exchanging a page table which is page management information of an address conversion table.
FIG. 5 is a diagram illustrating a method of exchanging page management information in a page table.
FIG. 6 is a diagram illustrating a reference path from a virtual address to a real address where data exists.
FIG. 7 is a diagram illustrating data movement processing.
FIG. 8 is a diagram illustrating a process of exchanging page management information in a page table.
FIG. 9 is a diagram illustrating a process of exchanging page management information in a page table.
[Explanation of symbols]
111,216 OS
112,218 Address conversion unit
113, 219 Main storage device
114,215 Computer
211 Auxiliary storage device
301 Segment table origin
302, 601, 608 virtual address
303,604,611 segment table
304 page table
305 real address
401, 605, 612 Page table group
405, 406, 607, 609, 615, 616 Page Table
402 buffer a
403 buffer b
501, 506 Page table a
502, 507 Page table b
503,508 Source page a
504, 509 destination page b
Claims (5)
前記アドレス変換手段は、ページ管理情報を書き換えるページ管理情報書き換え手段を備え、該ページ情報書き換え手段はデータの異動元及び異動先を管理しているアドレス変換テーブル上のページ管理情報を書き換え、仮想空間上でページ単位のデータ移動を行うことを特徴とするデータ処理装置。When the real memory is accessed based on the virtual address, the address is converted by the address conversion means to obtain the real address every time the access is performed, and the real memory is accessed based on the obtained real address. A data processing device using the method,
The address translation means includes a page management information rewriting means for rewriting page management information. The page information rewriting means rewrites page management information on an address translation table which manages a transfer source and a transfer destination of data, and A data processing device for performing data movement in page units on the above.
前記アドレス変換手段は、ページ管理情報を書き換えるページ管理情報書き換え手段を備え、
該ページ管理情報書き換え手段は、データの異動元及び異動先を管理しているアドレス変換テーブル上のページ管理情報を書き換え、仮想空間上でページ単位のデータ移動を行うことを特徴とするデータ処理装置におけるデータ転送方法。When the real memory is accessed based on the virtual address, the address is converted by the address conversion means to obtain the real address every time the access is performed, and the real memory is accessed based on the obtained real address. A data transfer method in a data processing device using a method,
The address conversion means includes a page management information rewriting means for rewriting page management information,
A data processing apparatus, wherein the page management information rewriting means rewrites page management information on an address conversion table which manages a data transfer source and a transfer destination, and performs page-by-page data movement in a virtual space. Data transfer method.
ページ管理情報書き換え手段による処理は、異動元メモリ及び異動先メモリの容量を比較してページテーブル交換可能性を事前に確認するステップと、
メモリ内にパラメタ領域を準備することが可能か否かを判定し、準備可能な場合には、パラメタとして異動元メモリ先頭仮想アドレス及び異動先メモリ先頭仮想アドレス並びにサイズを設定するステップと、
ソフトウエアまたはハードウエアを用いてページテーブル内のページ管理情報を交換するステップを備えたことを特徴とするデータ処理装置におけるデータ転送方法。In the description of claim 2,
The processing by the page management information rewriting means includes a step of comparing the capacities of the transfer source memory and the transfer destination memory to confirm in advance the possibility of replacing the page table,
Determining whether it is possible to prepare a parameter area in the memory, and if so, setting the transfer source memory start virtual address, transfer destination memory start virtual address and size as parameters,
A data transfer method in a data processing device, comprising a step of exchanging page management information in a page table using software or hardware.
ページ管理情報書き換え手段による処理は、異動元メモリ及び異動先メモリの容量を比較してページテーブル交換可能性を事前に確認するステップと、
メモリ内にパラメタ領域を準備することが可能か否かを判定し、準備不可能な場合には、パラメタとして異動元メモリ先頭仮想アドレス及び異動先メモリ先頭仮想アドレス並びにサイズをレジスタに設定するステップと、
ページテーブル内のページ管理情報を交換する命令語を用いてページ管理情報を交換するステップを備えたことを特徴とするデータ処理装置におけるデータ転送方法。In the description of claim 2,
The processing by the page management information rewriting means includes a step of comparing the capacities of the transfer source memory and the transfer destination memory to confirm in advance the possibility of replacing the page table,
Determining whether it is possible to prepare a parameter area in the memory, and if not possible, setting a transfer source memory start virtual address, transfer destination memory start virtual address and size as parameters in a register; ,
A data transfer method in a data processing device, comprising a step of exchanging page management information using a command for exchanging page management information in a page table.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002374868A JP2004206424A (en) | 2002-12-25 | 2002-12-25 | Data processing device and data transfer method for data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002374868A JP2004206424A (en) | 2002-12-25 | 2002-12-25 | Data processing device and data transfer method for data processing device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004206424A true JP2004206424A (en) | 2004-07-22 |
Family
ID=32812758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002374868A Pending JP2004206424A (en) | 2002-12-25 | 2002-12-25 | Data processing device and data transfer method for data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004206424A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007264976A (en) * | 2006-03-28 | 2007-10-11 | Nec Corp | Computer system, data saving method and program |
JP2008525894A (en) * | 2004-12-22 | 2008-07-17 | インテル・コーポレーション | Media memory system |
JP2009301102A (en) * | 2008-06-10 | 2009-12-24 | Nec Corp | Memory system for using cache memory, its method, and its program |
JP5293974B2 (en) * | 2008-03-04 | 2013-09-18 | 日本電気株式会社 | Memory mapping method and memory system |
JP5293611B2 (en) * | 2007-12-12 | 2013-09-18 | 日本電気株式会社 | Memory relocation system |
US8667249B2 (en) | 2004-12-22 | 2014-03-04 | Intel Corporation | Systems and methods exchanging data between processors through concurrent shared memory |
JP2014119850A (en) * | 2012-12-14 | 2014-06-30 | Nec Commun Syst Ltd | Memory control device, base station device, memory control method, and program |
JP2015088069A (en) * | 2013-10-31 | 2015-05-07 | 富士通株式会社 | Information processing device, data transfer control method, and data transfer control program |
-
2002
- 2002-12-25 JP JP2002374868A patent/JP2004206424A/en active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667249B2 (en) | 2004-12-22 | 2014-03-04 | Intel Corporation | Systems and methods exchanging data between processors through concurrent shared memory |
JP2008525894A (en) * | 2004-12-22 | 2008-07-17 | インテル・コーポレーション | Media memory system |
JP2011253551A (en) * | 2004-12-22 | 2011-12-15 | Intel Corp | Media memory system |
US9122577B2 (en) | 2004-12-22 | 2015-09-01 | Intel Corporation | Systems and methods exchanging data between processors through concurrent shared memory |
US9563570B2 (en) | 2004-12-22 | 2017-02-07 | Intel Corporation | System and methods exchanging data between processors through concurrent shared memory |
US10102141B2 (en) | 2004-12-22 | 2018-10-16 | Intel Corporation | System and methods exchanging data between processors through concurrent shared memory |
US10691612B2 (en) | 2004-12-22 | 2020-06-23 | Intel Corporation | System and methods exchanging data between processors through concurrent shared memory |
JP2007264976A (en) * | 2006-03-28 | 2007-10-11 | Nec Corp | Computer system, data saving method and program |
JP5293611B2 (en) * | 2007-12-12 | 2013-09-18 | 日本電気株式会社 | Memory relocation system |
JP5293974B2 (en) * | 2008-03-04 | 2013-09-18 | 日本電気株式会社 | Memory mapping method and memory system |
JP2009301102A (en) * | 2008-06-10 | 2009-12-24 | Nec Corp | Memory system for using cache memory, its method, and its program |
JP2014119850A (en) * | 2012-12-14 | 2014-06-30 | Nec Commun Syst Ltd | Memory control device, base station device, memory control method, and program |
JP2015088069A (en) * | 2013-10-31 | 2015-05-07 | 富士通株式会社 | Information processing device, data transfer control method, and data transfer control program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1396792B1 (en) | Memory copy command specifying source and destination of data executed in the memory controller | |
US8627040B2 (en) | Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults | |
JP4248510B2 (en) | Computer system, disk device, and data update control method | |
JP2004227568A (en) | Communication link-attached persistent memory device | |
JP3889879B2 (en) | How to control virtual memory translation | |
US8650339B2 (en) | Control of data transfer | |
JPH0427580B2 (en) | ||
JP3872968B2 (en) | System and method for dynamically reallocating memory in a computer system | |
TW200400436A (en) | Method, apparatus, and computer program product for migrating data subject to access by input/output devices | |
JP2004206424A (en) | Data processing device and data transfer method for data processing device | |
JPH1173365A (en) | Method for optimizing data moving operation | |
JP3882461B2 (en) | Storage device system and backup acquisition method thereof | |
US7805572B2 (en) | Cache pollution avoidance | |
KR20190069134A (en) | Apparatus and method for file sharing between applications | |
JP4461089B2 (en) | Storage control apparatus and storage control method | |
JP4431492B2 (en) | Data transfer unit that supports multiple coherency granules | |
JP2006099802A (en) | Storage controller, and control method for cache memory | |
JP2007264751A (en) | Data transfer controller | |
JP4030951B2 (en) | Data duplication apparatus and method | |
JP2701739B2 (en) | Processor switching method | |
JP2001265653A (en) | Data processor | |
JP2002108704A (en) | Disk cache control system | |
TW200809597A (en) | Method and system for device to request and operate an external buffer provided from the host | |
JP2022135146A (en) | Storage device, cache memory writing program, and writing method | |
JPH11249937A (en) | Computer system |