JPH09259033A - バッファ書き込み方法 - Google Patents
バッファ書き込み方法Info
- Publication number
- JPH09259033A JPH09259033A JP9026346A JP2634697A JPH09259033A JP H09259033 A JPH09259033 A JP H09259033A JP 9026346 A JP9026346 A JP 9026346A JP 2634697 A JP2634697 A JP 2634697A JP H09259033 A JPH09259033 A JP H09259033A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- pointer
- data block
- data
- address
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
て性能を改善したバッファが必要とされている。 【解決手段】書き込み処理がすでに終了し、書き込みポ
インタ106の指示するアドレスから新たなデータブロ
ックの書き込みが可能になっている状態で、新たなデー
タブロックが書き込みポインタ106と物理的終端10
4の間で使用可能なメモリより大きい場合、書き込みポ
インタは物理的始端102を指示するように変更され、
バッファ終端ポインタ110をデータブロック114の
終端を指示するように変更し、読み出し装置がブロック
114をすべて読み出すなどして十分な空きスペースが
できてから、物理的始端102から書き込みが行なわれ
る。
Description
出力システムに関し、より詳細にはメモリ内のデータバ
ッファの管理方法に関する。
あるいはデータ転送事象の発生時間の差の補償に用いら
れるソフトウエアプロシージャあるいはハードウエア装
置である。たとえば、コンピュータはディスクドライブ
へのデータの書き込みを行なわなければならない場合が
ある。コンピュータの転送速度がディスクドライブの転
送速度より高かったり、あるいはディスクドライブが適
正なトラックおよびセクターへのヘッドの位置決めとい
った電気機械的事象の発生を待たなければならない場合
がある。同様に、データバッファがコンピュータ内の独
立した処理の間あるいはコンピュータ間でのデータ転送
に用いられる場合がある。データバッファは別個の物理
的ハードウエア装置とすることもできるし、データ転送
の実行に使用するように一時的に確保される単なる記憶
領域とすることもできる。
ては、メインメモリは多数の処理によって共用される。
メインメモリの大きなブロックを各処理に専用とするの
は不経済である。多くのコンピュータシステムでは、こ
れを行なう代わりに仮想アドレシングが用いられ、ハー
ドウエアとソフトウエアの組み合わせによって仮想アド
レスが、ディスク等の周辺装置にいつでもマップするこ
とのできるアドレスあるいはメインメモリにアクセスす
るアドレスに変換される。仮想アドレスをメインメモリ
からディスクあるいは他の周辺装置にマップし直す一つ
の方法は、“最低使用頻度”に基づくものである。すな
わち、ある処理がメインメモリに割り当てられたある仮
想アドレスブロックを最近使用した場合、かかる仮想ア
ドレスはメインメモリにマップされ続ける。かかるアド
レスが使用されなければ、そのメインメモリ領域の内容
をディスクに書き込み、メインメモリを空けて異なる仮
想アドレスにある他の処理に使用できるようにすること
ができる。処理装置はディスク上のページに対応する仮
想アドレスを参照して(ページフォールト)ディスクか
らメインメモリへのページの移動を要求することができ
る。一般に、ページフォールトは性能にかなりの悪影響
を与える。
り、書き込み装置あるいは処理および読み出し装置ある
いは処理の両方に共用されるメモリ領域内に実施され
る。通常の実施態様では、始端アドレス、終端アドレ
ス、書き込みポインタ、および読み出しポインタがあ
る。最初、書き込みポインタおよび読み出しポインタは
始端アドレスにある。書き込み装置がリングバッファに
書き込みを行ない、書き込みポインタを新しく書き込ま
れたデータの終端に移動する。読み出し装置が読み出し
ポインタの指示するデータを読み出し、データの読み出
しにともなって読み出しポインタを移動させる。書き込
みポインタがリングの終端アドレスに達すると、書き込
みポインタは始端アドレスに移動する(“循環”)。書
き込みポインタが読み出しポインタに重ならないように
さまざまな防御手段が実施される。
に悪影響を与える2つの側面がある。第1の性能上の損
失は、データを終端アドレスから始端アドレスに循環さ
せることができるが、データを連続するブロックとして
送出するかあるいは読み出さなければならない場合があ
ることに起因する。書き込み装置は2つの別個のブロッ
クを書き込まなければならなくなることがある。同様
に、読み出し装置は2つの別個の読み出し動作、すなわ
ちデータブロックの始端アドレスからバッファの終端ア
ドレスまでの読み出し動作とバッファの始端アドレスか
らデータブロックの終端アドレスまでの読み出し動作を
実行しなければならない場合がある。さらに、読み出し
装置はその後連続するデータブロックを再構築しなけれ
ばならず、これら2つのデータ集合を連続するメモリあ
るいは一時割り当てメモリに入れるコピー動作が必要に
なる。第2の性能上の損失は仮想メモリのページフォー
ルトに起因する。リングバッファを仮想メモリ内で実施
する場合、このバッファは最近使用されなかった可能性
のあるバッファの新しい領域を繰り返し使用する。した
がって、ページフォールトの発生する可能性が高い。
トを低減することによって性能を改善したバッファが必
要とされている。
を低減し、読み出し装置による連続するデータブロック
の再構築の必要性を低減することによって性能を改善し
たバッファが提供される。短いデータブロックについて
は、このバッファは可能であればバッファの始めの部分
を高い頻度で再使用する。しかし、このバッファは必要
であれば長いデータブロックにも対応可能である。バッ
ファの始めの部分を頻繁に再使用すると、バッファ使用
中のページフォールトの発生が最小限になるため短いデ
ータブロックに対するバッファ性能が向上し、またバッ
ファの終端に近いメモリページが空いて他の処理がこれ
を連続的に使用しうる可能性を増大することによってシ
ステム性能が向上する。さらに、このバッファは転送さ
れるデータの量がバッファ全体の大きさを越えない限り
バッファ終端からバッファの始めにデータブロックを循
環させることがない。循環をなくすと、読み出し装置が
複数回の読み出しによって連続するデータブロックを再
構築する必要がなくなりバッファ性能が向上する。
インタに加えて、本発明のバッファはさらに第3のポイ
ンタおよびマーカを有する。必要な場合、この第3のポ
インタすなわちバッファ終端ポインタを用いてデータブ
ロックの終端が示される。可能な場合、このマーカを用
いてバッファメモリの使用がバッファの始めの数ページ
に制限される。
て使用するメモリ領域を示す。アドレスは矢印100に
示すように左から右に進んでいく。このバッファは物理
的始端アドレス(参照符号102)と物理的終端アドレ
ス(参照符号104)とを有する。本発明の目的上、物
理的始端102と物理的終端104とは定数である。書
き込みポインタ106と読み出しポインタ108とがあ
る。書き込みポインタ106は書き込み装置(図示せ
ず)によって制御される。読み出しポインタ108は読
み出し装置(図示せず)によって制御される。当初、書
き込みポインタ106および読み出しポインタ108は
いずれも物理的始端102を指示している。バッファ終
端ポインタ110およびマーカ112は本発明独自のも
のである。これらはいずれもさらに予備的な説明を行な
った後より詳細に説明する。図1Aに示すように、バッ
ファ終端ポインタ110は最初は“無限大(∞)”の値
(すなわち可能な最高アドレス値)に設定されている。
バッファ終端ポインタ110の値“無限大”は次に説明
するようないくつかの条件を示すのに用いられる。
に、本発明のバッファに対する以下の動作規則を明記し
ておく必要がある。 1.書き込むべきデータが物理的始端102と物理的終
端104との間で使用可能なメモリより長い場合、書き
込むべきデータブロックは総バッファサイズ(物理的終
端から物理的始端を引いた差)またはそれより小さいサ
イズのブロックに分割される。 2.データブロックの書き込みは書き込みポインタ10
6によるアドレスの指定後に書き込むべきブロック全体
を保持するに十分な連続する空きメモリがある場合にの
み開始される。 3.データブロックの書き込み後、書き込み装置ソフト
ウエアが書き込みポインタ106がマーカー112を越
えていると判定すると、書き込み装置はその物理的始端
102から次のデータブロックを書き込む。 4.書き込み装置のみが書き込みポインタ106を変更
することができる。 5.読み出し装置のみが読み出しポインタ108を変更
することができる。 6.書き込み装置はバッファ終端ポインタ110の値が
無限大(可能な最大アドレス)であるときにのみこれを
変更することができる。 7.読み出し装置はバッファ終端ポインタ110の値が
無限大(可能な最大アドレス)でないときにのみこれを
変更することができる。
ック114を有する図1Aのバッファ(メモリ領域)を
示す。図1Bにおいて、データブロック114は書き込
みポインタ106の指示するアドレスに書き込み装置に
よって書き込まれている(あるいは書き込み装置による
書き込みが終了している)ところである。書き込みポイ
ンタ106はデータブロック114の終端を示す。読み
出し装置が読み出しポインタ108の指示するアドレス
でデータブロック114の読み出しを行なっている。読
み出し装置は物理的始端102と読み出しポインタ10
8の間のデータをすでに読み出している。
ンタ106と物理的終端104の間で新しいデータブロ
ックの書き込みを継続することができる。しかし、2つ
の潜在的なリスクがある。第一に、最近使用されていな
い書き込みポインタ106を越えたアドレスへのアクセ
スを要求するとページフォールトの発生する可能性が高
くなる。第二に、バッファの始端にあるアドレスをしば
らく使用しないでいると、このバッファ始端のアドレス
がディスクにページアウトされて、後でこの物理的始端
102から書き込みを行なう際にページフォールトの発
生する可能性が高くなる。したがって、書き込み処理に
おいて新たなデータブロックの書き込み開始の前に読み
出しの終了を待たねばならなくなる場合があるとして
も、バッファの物理的始端102に近い部分のみを使用
することによって全体的な性能は改善される。本発明者
は短いデータブロックに対しては仮想メモリページフォ
ールトの問題から長いバッファより短いバッファの方が
高い性能を有することを発見した。しかし、長いデータ
ブロックがある場合、短いバッファは連続するデータブ
ロックを分解して再構築しなければならないため性能上
の問題が生じる可能性がある。本発明のバッファは短い
データブロック(マーカ112が比較的始端に近い)に
対処するために短く保たれていながら、長いデータブロ
ックがあってもこれを連続するブロックとして書き込む
ことができる(ポインタ102とポインタ104の間の
メモリが比較的大きい)ものである。
る“緩やかな”限界値として用いられる。これは厳格な
最大値ではなく、書き込みソフトウエアの使用すべきマ
ーカである。規則3に定めるように、データブロックの
書き込み後に書き込み装置ソフトウエアが書き込みポイ
ンタ106がマーカ112を越えていると判定すると、
書き込み装置は物理的始端102から次のデータブロッ
クの書き込みを行なう。その結果、バッファは物理的始
端102とマーカ112の間のメモリページを繰り返し
使用し、それによってバッファのこの部分におけるペー
ジフォールトの可能性が低くなる。さらに、バッファの
終端近くの使用頻度の低いページを他の処理が中断され
ることなく使用できる可能性が高くなる。しかし、必要
であれば、バッファにはマーカを越えるより長いブロッ
クを入れることができる。バッファ内のマーカの最適な
位置はシステムに応じて決まり、最適な性能が得られる
ように経験的に決定しなければならない。
ングバッファに比べて連続するデータブロックの再構築
に使用する読み出し装置の必要性を小さくすることであ
る。規則1に定めるように、本発明のバッファは、書き
込むべきデータブロックがバッファ全体より大きくない
限り(すなわち物理的始端102と物理的終端104の
間のメモリより大きくないかぎり)物理的終端104か
ら物理的始端102に循環するデータの書き込みを行な
わない。書き込むべきデータがバッファ全体より大きい
場合、書き込み動作に先だってそのブロックは小部分に
分割される。
了し、書き込みポインタ106の指示するアドレスから
新たなデータブロックの書き込みが可能になっているも
のと仮定する。本発明においては、図1Bに示す状態で
は、この書き込むべき新たなデータブロックが書き込み
ポインタ106と物理的終端104の間で使用可能なメ
モリより大きい場合、書き込みポインタは物理的始端1
02を指示するように変更される。同時に、バッファ終
端ポインタ110をデータブロック114の終端を指示
するように変更しなければならい。その後物理的始端1
02から書き込みが行なわれるが、この書き込みは読み
出しポインタ108によってこの新たなデータブロック
を書き込めるだけのスペースが空けられた後にのみ行な
われる。すなわち、この書き込むべき新たなデータブロ
ック全体に対する十分な空きスペースができるまで書き
込みは開始されない(規則2)。そのためには、読み出
し装置がブロック114をすべて読み出さなければなら
ない。
いて古いデータブロック116の読み出しが行なわれて
おり、バッファ終端ポインタ110はこの古いデータブ
ロック116の終端を指示している。新たなデータブロ
ック118の書き込みが行なわれており、書き込みポイ
ンタ106はこの新たなデータブロック118の終端を
指示している。古いデータブロック116はマーカ11
2を越えた位置で終わっているため、新たなデータブロ
ック118は物理的始端102で始まる(規則3)。図
1Cに示す状態では、書き込みポインタ106の指示す
る位置における新たなデータブロックの書き込みについ
て次の4つのケースを考察しなければならない。 ケース1:書き込むべき新たなデータブロックが書き込
みポインタ106と読み出しポインタ108の間の領域
に入る場合、ただちに書き込みを開始することができる
(注:データブロックにはブロック118と書き込むべ
き新たなブロックの間の境界を判定しうる長さ情報を含
めることができる)。 ケース2:ケース1ではないが、新たなデータブロック
が書き込みポインタ106とバッファ終端ポインタ11
0の間の領域に入る場合、読み出し装置は十分なスペー
スを空けるのを待って書き込みを行なわなければならな
い(規則2)。 ケース3:ケース1でもケース2でもないが、新たなデ
ータブロックが書き込みポインタ106と物理的終端1
04の間の領域に入る場合、書き込み装置は読み出し装
置が古いデータブロック116をすべて読み出すまで待
たなければならない。古いデータブロック116が読み
出された後、読み出し装置は読み出しポインタ108を
物理的始端102を指示するように変更しなければなら
ず(規則5)、同時に読み出し装置はバッファ終端ポイ
ンタ110を無限大を指示するように変更しなければな
らない(規則7)。その後、書き込み装置は次のブロッ
クの書き込みを開始することができる。 ケース4:新たなデータブロックが書き込みポインタ1
06と物理的終端104の間に入らない場合、新たなデ
ータブロックは物理的始端102に書き込まなければな
らない。したがって、書き込み装置は読み出し装置が古
いデータブロック116と新たなデータブロック118
の読み出しを完了するのを待たなければならない。読み
出し装置が新たなデータブロック118の読み出しを完
了し、読み出しポインタ108が書き込みポインタ10
6に等しくなった後、書き込み装置は書き込みポインタ
106を物理的始端102を指示するように移動させ
(規則4)、書き込みを開始することができる。
10)とこの第3のポインタの変更時期を管理するいく
つかの簡単な規則を追加することによって、ブロックが
バッファ全体より大きくない限りそのデータブロックを
循環させないバッファが提供されることに注意しなけれ
ばならない。
ーチャートである。図2の始めに、書き込み装置は新た
なデータブロックの書き込みが可能な状態である。この
新たなデータブロックがバッファより大きい場合(判断
200)、この新たなデータブロックはバッファに等し
いかそれより小さいサイズのブロックに分割される(2
02)。書き込みポインタの指示するアドレスがマーカ
の指示するアドレスを越えている場合(判断204)、
バッファ終端ポインタは書き込みポインタの指示するア
ドレスを指示するように変更され、書き込みポインタは
物理的始端を指示するように変更される(206)。バ
ッファ終端ポインタの値が無限大である場合(判断20
8)、書き込みポインタは図1Bに示すように読み出し
ポインタより大きいメモリアドレスを指示していなけれ
ばならない。新たなデータブロックが書き込みポインタ
の指示するアドレスと物理的終端の間に入る場合(判断
210)、書き込みを行なうことができる(228)。
書き込みポインタの値が無限大であり、新たなデータが
書き込みポインタの指示するアドレスと物理的終端の間
に入らない場合、書き込み装置は図1Cに示すように物
理的始端から開始しなければならない。バッファ終端ポ
インタは書き込みポインタの指示するアドレスを指示す
るように変更され、書き込みポインタ物理的始端を指示
するように変更される(212)。
場合、図1Cに示すような状態となる。新たなデータブ
ロックが書き込みポインタの指示するアドレスと読み出
しポインタの指示するアドレスの間に入る場合(判断2
14)、書き込みを行なうことができる(228)。新
たなデータブロックが書き込みポインタの指示するアド
レスとバッファ終端ポインタの間に入る場合(判断21
6)、書き込み装置は読み出し装置がそのブロック全体
を書き込めるだけのスペースを空けるまで待たねばなら
ない(218)。新たなデータブロックが書き込みポイ
ンタの指示するアドレスと物理的終端の間に入る場合
(判断220)、書き込み装置は読み出し装置がバッフ
ァ終端ポインタまで読み出しを行なうのを待ち、バッフ
ァ終端ポインタを無限大を指示するように変更し、読み
出しポインタを物理的始端を指示するように変更する
(222)。新たなデータが書き込みポインタの指示す
るアドレスと物理的終端の間に入らない場合(判断22
0)、書き込み装置はまず読み出し装置がバッファ終端
ポインタの指示するアドレスまでのデータの読み出しを
終了するのを待ち、その後読み出し装置がバッファ終端
ポインタを無限大に変更するのを待つ(224)。次
に、書き込み装置はバッファ終端ポインタを書き込みポ
インタの指示するアドレスを指示するように変更し、そ
の後書き込みポインタを物理的始端を指示するように変
更する(226)。読み出されていないデータがあるた
め書き込み装置はまだ書き込みを行なうことができな
い。次に、書き込み装置は読み出し装置がバッファ終端
ポインタの指示するアドレスまでのデータの読み出しを
継続し、バッファ終端ポインタを無限大に変更するのを
待つ(ブロック227)。その後、書き込み装置は新た
なデータブロックの書き込みを行なうことができる(2
28)。
ーチャートである。バッファ終端ポインタの値が無限大
である場合(判断300)、図1Bに示すような状態に
なり、読み出し装置は書き込みポインタまでのデータを
読み出すことができる(302)。バッファ終端ポイン
タの値が無限大以外である場合、図1Cに示すような状
態になる。読み出しポインタの指示するアドレスがバッ
ファ終端ポインタの指示するアドレスより小さい場合
(判断304)、読み出し装置はバッファ終端ポインタ
までのデータの読み出しを行なうことができる(30
6)。読み出しポインタの指示するアドレスがバッファ
終端ポインタの指示するアドレスに等しい場合、読み出
し装置は読み出しポインタを物理的始端を指示するよう
に変更し、同時にバッファ終端ポインタを無限大を指示
するように変更する(308)。
に示す状態から図1Cに示す状態への変化の間の書き込
み装置について考察する。書き込み装置はバッファ終端
ポインタ110を書き込みポインタ106の指示するア
ドレスを指示するように変更し、書き込みポインタ10
6を物理的始端102を指示するように変更しなければ
ならない。いずれかのポインタがまず変更され、かかる
変更の間に中断が生じると、読み出し装置が状態を誤解
する可能性がある。したがって、両方のポインタを1つ
の中断のない動作の中で変更しなければならない。書き
込み装置と読み出し装置は非同期であることが好適であ
る。書き込み装置が書き込みポインタをバッファの始端
を指示するように変更するとき、書き込み装置は常にこ
れを読み出し装置に知らせなければならない。同様に、
読み出し装置が読み出しポインタをバッファの始端を指
示するように変更するとき、読み出し装置は常にこれを
書き込み装置に知らせなければならない。図2の218
において、書き込み装置は読み出し装置がスペースを空
けるのを待っている。あるいはまた、書き込み装置がア
ドレス“X”までのスペースが必要であることを読み出
し装置に知らせ、読み出し装置が読み出しがアドレス
“X”を越えたことを知らせるようにすることもでき
る。
ファが終端まで空けられるのを待って始端での書き込み
を行なう必要がないという点で部分的にはリングバッフ
ァと同様に動作する。しかし、リングバッファと異な
り、バッファの終端から始端へのデータブロックの循環
が生じないため性能が向上する。さらに、上述したバッ
ファは、ページフォールトの発生を低減することによっ
て性能上の利点を提供し、同時にこのバッファは任意の
長さとすることによって必要であれば長いデータブロッ
クにも対処することができる。
のみ行なったものである。本発明はここに開示した態様
によって網羅あるいは限定されるものではなく、上述し
た原理に照らした他の修正や変更が可能である。上の実
施例は本発明の原理とその実際の応用を最もよく説明す
ることによって、当業者がその具体的用途に適したさま
ざまな実施態様およびさまざまな変更態様で本発明を最
もよく活用しうるように選択し、説明したものである。
特許請求の範囲には従来技術によって限定される場合を
除き本発明の他の代替実施例が含まれるものである。
が、以下、本発明の各実施態様の例を示す。
に書き込む方法であって、(a)前記バッファに読み出
されていないデータが存在することを判定するステップ
と、(b)前記データブロックを既存のデータの後に連
続するブロックとして前記バッファに入れることができ
ない場合、前記バッファに前記読み出されていないデー
タがまだ存在する状態で、前記データブロックを前記バ
ッファの始端において連続するブロックとして書き込む
ステップとを有することを特徴とする方法。
で、(b1)前記データブロックが前記バッファの始端
と前記読み出されていないデータとの間に入る場合ただ
ちに前記データブロックの書き込みを行なうステップを
有することを特徴とする実施態様1に記載の方法。
で、(b2)前記データブロックが前記既存のデータに
部分的に重なる場合、読み出し装置が前記既存のデータ
を部分的に読み出すのを待って前記データブロックの書
き込みを行なうステップを有することを特徴とする実施
態様1に記載の方法。
に書き込む方法であって、(a)前記バッファの始端に
読み出されていないデータが存在することを判定するス
テップと、(b)前記データブロックを前記既存のデー
タの後に連続するブロックとして前記バッファに入れる
ことができない場合、読み出し装置が前記既存のデータ
を完全に読み出すのを待って前記データブロックの書き
込みを行なうステップとからなることを特徴とする方
法。
に書き込む方法であって、(a)書き込みポインタがマ
ーカアドレスより大きいアドレスを指示しているかどう
かを判定するステップと、(b)前記書き込みポインタ
が前記マーカアドレスより大きいアドレスを指示してい
る場合、前記書き込みポインタを物理的バッファ始端ア
ドレスを指示するように変更するステップと、(c)前
記データブロックを前記書き込みポインタの示すアドレ
スに書き込むステップとを有することを特徴とする方
法。
(b)の後に、(b1)前記データブロックが前記書き
込みポインタの示すアドレスと物理的バッファ終端の間
に入るかどうかを判定するステップと、(b2)前記デ
ータブロックが前記書き込みポインタの示すアドレスと
前記物理的バッファ終端の間に入らない場合、前記書き
込みポインタを前記物理的バッファ始端を指示するよう
に変更するステップとを有することを特徴とする実施態
様5に記載の方法。
リページフォールトを低減し、読み出し装置による連続
するデータブロックの再構築の必要性を低減することに
よって性能を改善したバッファが提供される。
で、バッファ使用中のページフォールトの発生が最小限
になるため短いデータブロックに対するバッファ性能が
向上し、またバッファの終端に近いメモリページが空い
て他の処理がこれを連続的に使用しうる可能性を増大す
ることによってシステム性能が向上する。
で、読み出し装置が複数回の読み出しによって連続する
データブロックを再構築(コピーなど)する必要がなくな
りバッファ性能が向上する。
領域のブロック図である。
る図1Aのブロック図である。
タブロックがある図1Aのブロック図である。
である。
である。
Claims (1)
- 【請求項1】データブロックをバッファに書き込む方法
であって、 (a)前記バッファに読み出されていないデータが存在
することを判定するステップと、 (b)前記データブロックを既存のデータの後に連続す
るブロックとして前記バッファに入れることができない
場合、前記バッファに前記読み出されていないデータが
まだ存在する状態で、前記データブロックを前記バッフ
ァの始端において連続するブロックとして書き込むステ
ップとを有することを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US598,582 | 1984-04-10 | ||
US08/598,582 US5864713A (en) | 1996-02-12 | 1996-02-12 | Method for determining if data should be written at the beginning of a buffer depending on space available after unread data in the buffer |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09259033A true JPH09259033A (ja) | 1997-10-03 |
Family
ID=24396142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9026346A Pending JPH09259033A (ja) | 1996-02-12 | 1997-02-10 | バッファ書き込み方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5864713A (ja) |
JP (1) | JPH09259033A (ja) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189109B1 (en) | 1997-05-13 | 2001-02-13 | Micron Electronics, Inc. | Method of remote access and control of environmental conditions |
US6202160B1 (en) | 1997-05-13 | 2001-03-13 | Micron Electronics, Inc. | System for independent powering of a computer system |
US6304929B1 (en) | 1997-05-13 | 2001-10-16 | Micron Electronics, Inc. | Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals |
US6499073B1 (en) | 1997-05-13 | 2002-12-24 | Micron Electronics, Inc. | System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals |
US5892928A (en) | 1997-05-13 | 1999-04-06 | Micron Electronics, Inc. | Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver |
US6243773B1 (en) | 1997-05-13 | 2001-06-05 | Micron Electronics, Inc. | Configuration management system for hot adding and hot replacing devices |
US6163849A (en) | 1997-05-13 | 2000-12-19 | Micron Electronics, Inc. | Method of powering up or powering down a server to a maintenance state |
US6202111B1 (en) | 1997-05-13 | 2001-03-13 | Micron Electronics, Inc. | Method for the hot add of a network adapter on a system including a statically loaded adapter driver |
US6173346B1 (en) | 1997-05-13 | 2001-01-09 | Micron Electronics, Inc. | Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals |
US6247080B1 (en) | 1997-05-13 | 2001-06-12 | Micron Electronics, Inc. | Method for the hot add of devices |
US6324608B1 (en) * | 1997-05-13 | 2001-11-27 | Micron Electronics | Method for hot swapping of network components |
US6243838B1 (en) | 1997-05-13 | 2001-06-05 | Micron Electronics, Inc. | Method for automatically reporting a system failure in a server |
US6195717B1 (en) | 1997-05-13 | 2001-02-27 | Micron Electronics, Inc. | Method of expanding bus loading capacity |
US6418492B1 (en) | 1997-05-13 | 2002-07-09 | Micron Electronics | Method for computer implemented hot-swap and hot-add |
US6145098A (en) | 1997-05-13 | 2000-11-07 | Micron Electronics, Inc. | System for displaying system status |
US6249834B1 (en) | 1997-05-13 | 2001-06-19 | Micron Technology, Inc. | System for expanding PCI bus loading capacity |
US6269417B1 (en) | 1997-05-13 | 2001-07-31 | Micron Technology, Inc. | Method for determining and displaying the physical slot number of an expansion bus device |
US6338150B1 (en) | 1997-05-13 | 2002-01-08 | Micron Technology, Inc. | Diagnostic and managing distributed processor system |
US6249885B1 (en) | 1997-05-13 | 2001-06-19 | Karl S. Johnson | Method for managing environmental conditions of a distributed processor system |
US6170028B1 (en) | 1997-05-13 | 2001-01-02 | Micron Electronics, Inc. | Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals |
US6253334B1 (en) | 1997-05-13 | 2001-06-26 | Micron Electronics, Inc. | Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses |
US6282673B1 (en) * | 1997-05-13 | 2001-08-28 | Micron Technology, Inc. | Method of recording information system events |
US6269412B1 (en) | 1997-05-13 | 2001-07-31 | Micron Technology, Inc. | Apparatus for recording information system events |
US6249828B1 (en) | 1997-05-13 | 2001-06-19 | Micron Electronics, Inc. | Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver |
US6330690B1 (en) | 1997-05-13 | 2001-12-11 | Micron Electronics, Inc. | Method of resetting a server |
US6192434B1 (en) | 1997-05-13 | 2001-02-20 | Micron Electronics, Inc | System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals |
US6292905B1 (en) | 1997-05-13 | 2001-09-18 | Micron Technology, Inc. | Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure |
US6363497B1 (en) | 1997-05-13 | 2002-03-26 | Micron Technology, Inc. | System for clustering software applications |
US6179486B1 (en) | 1997-05-13 | 2001-01-30 | Micron Electronics, Inc. | Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver |
US6219734B1 (en) | 1997-05-13 | 2001-04-17 | Micron Electronics, Inc. | Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver |
US6272648B1 (en) * | 1997-05-13 | 2001-08-07 | Micron Electronics, Inc. | System for communicating a software-generated pulse waveform between two servers in a network |
US6260137B1 (en) * | 1997-09-12 | 2001-07-10 | Siemens Aktiengesellschaft | Data processing unit with digital signal processing capabilities |
US6263387B1 (en) | 1997-10-01 | 2001-07-17 | Micron Electronics, Inc. | System for automatically configuring a server after hot add of a device |
US6212585B1 (en) | 1997-10-01 | 2001-04-03 | Micron Electronics, Inc. | Method of automatically configuring a server after hot add of a device |
US6138179A (en) | 1997-10-01 | 2000-10-24 | Micron Electronics, Inc. | System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk |
US6199173B1 (en) | 1997-10-01 | 2001-03-06 | Micron Electronics, Inc. | Method for mapping environmental resources to memory for program access |
US6226035B1 (en) * | 1998-03-04 | 2001-05-01 | Cyclo Vision Technologies, Inc. | Adjustable imaging system with wide angle capability |
US6205503B1 (en) | 1998-07-17 | 2001-03-20 | Mallikarjunan Mahalingam | Method for the hot swap and add of input/output platforms and devices |
US6223234B1 (en) | 1998-07-17 | 2001-04-24 | Micron Electronics, Inc. | Apparatus for the hot swap and add of input/output platforms and devices |
US6308228B1 (en) * | 1998-11-23 | 2001-10-23 | Duke University | System and method of adaptive message pipelining |
US6425022B1 (en) * | 1999-06-11 | 2002-07-23 | Oak Technology, Inc. | System for reading blocks of different sizes by maintaining buffer page pointer when word count is not greater than guardband, and reset word count thereafter |
US7457894B2 (en) * | 2001-08-29 | 2008-11-25 | Nxp B.V. | Synchronization of non-sequential moving pointers |
US7444637B2 (en) * | 2003-02-18 | 2008-10-28 | Microsoft Corporation | Systems and methods for scheduling coprocessor resources in a computing system |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US7421694B2 (en) * | 2003-02-18 | 2008-09-02 | Microsoft Corporation | Systems and methods for enhancing performance of a coprocessor |
US6947051B2 (en) * | 2003-02-18 | 2005-09-20 | Microsoft Corporation | Video memory management |
DE102004055933A1 (de) * | 2004-11-19 | 2006-05-24 | Patent-Treuhand-Gesellschaft für elektrische Glühlampen mbH | Verfahren zur Vergabe von Kurzadressen in Beleuchtungsanlagen |
US8612643B2 (en) * | 2007-06-30 | 2013-12-17 | Microsoft Corporation | Interfaces for digital media processing |
US9003131B1 (en) * | 2013-03-27 | 2015-04-07 | Parallels IP Holdings GmbH | Method and system for maintaining context event logs without locking in virtual machine |
DE102020108101A1 (de) * | 2020-03-24 | 2021-09-30 | Pilz Gmbh & Co. Kg | Vorrichtung zur Speicherung von Daten in einem nichtflüchtigen Speicher |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5121114A (en) * | 1989-05-29 | 1992-06-09 | Sharp Corporation | Information processing apparatus having a specified-area confirming function |
US5159681A (en) * | 1989-08-11 | 1992-10-27 | Lexmark International, Inc. | Page printer memory allocation |
US5210749A (en) * | 1990-05-29 | 1993-05-11 | Advanced Micro Devices, Inc. | Configuration of srams as logical fifos for transmit and receive of packet data |
JPH06124223A (ja) * | 1991-03-28 | 1994-05-06 | Texas Instr Inc <Ti> | ディスクファイルシステムのログ装置および方法 |
US5426639A (en) * | 1991-11-29 | 1995-06-20 | At&T Corp. | Multiple virtual FIFO arrangement |
US5444853A (en) * | 1992-03-31 | 1995-08-22 | Seiko Epson Corporation | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's |
CA2072511A1 (en) * | 1992-06-26 | 1993-12-27 | Benedetto Angelo Notarianni | Data processing apparatus with dynamic memory allocation |
-
1996
- 1996-02-12 US US08/598,582 patent/US5864713A/en not_active Expired - Fee Related
-
1997
- 1997-02-10 JP JP9026346A patent/JPH09259033A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US5864713A (en) | 1999-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH09259033A (ja) | バッファ書き込み方法 | |
US9058254B2 (en) | Memory device | |
US6948033B2 (en) | Control method of the cache hierarchy | |
US6665747B1 (en) | Method and apparatus for interfacing with a secondary storage system | |
JPH04220738A (ja) | 高速書き込み方法 | |
KR20010050881A (ko) | 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치 | |
US6263408B1 (en) | Method and apparatus for implementing automatic cache variable update | |
JP4461089B2 (ja) | ストレージ制御装置およびストレージ制御方法 | |
JP3111912B2 (ja) | ディスクキャッシュ制御方式 | |
US7421536B2 (en) | Access control method, disk control unit and storage apparatus | |
JPH01159746A (ja) | ディスクキャッシュ制御方式 | |
KR100385238B1 (ko) | 그룹적응형세그먼트캐시버퍼구현방법 | |
US5678022A (en) | Storage control system with auxiliary storage and optimized process data length and gap to reduce track and cylinder switching | |
JP2973474B2 (ja) | 光磁気ディスク装置 | |
JPH0812643B2 (ja) | ページ退避/復元装置 | |
WO1994022134A1 (en) | Buffer control for data transfer within hard disk during idle periods | |
JPS59172186A (ja) | キヤツシユ・メモリ制御方式 | |
JPH11232037A (ja) | ディスクキャッシュライト機能を持った磁気ディスク装置 | |
JP2964504B2 (ja) | 文書処理装置 | |
JPS59146344A (ja) | 仮想スタツク先行制御方式 | |
JPH05100926A (ja) | 入出力管理方式 | |
JPS6243737A (ja) | 割り込み制御方式 | |
JPH0526216B2 (ja) | ||
JPH06290000A (ja) | ディスクコントローラ | |
JPS6175942A (ja) | デイスクキヤツシユ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051026 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20051101 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20051109 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060328 |