JP5399094B2 - 補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体 - Google Patents
補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体 Download PDFInfo
- Publication number
- JP5399094B2 JP5399094B2 JP2009042985A JP2009042985A JP5399094B2 JP 5399094 B2 JP5399094 B2 JP 5399094B2 JP 2009042985 A JP2009042985 A JP 2009042985A JP 2009042985 A JP2009042985 A JP 2009042985A JP 5399094 B2 JP5399094 B2 JP 5399094B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- auxiliary storage
- filter driver
- storage device
- program
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 89
- 230000006870 function Effects 0.000 claims description 65
- 230000005540 biological transmission Effects 0.000 claims description 14
- 230000006266 hibernation Effects 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 115
- 230000008569 process Effects 0.000 description 98
- 238000007726 management method Methods 0.000 description 47
- 210000004027 cell Anatomy 0.000 description 45
- 238000010586 diagram Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241001479601 Iris tenax Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
Images
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明の目的は、書き込み制限を有する電子計算機の補助記憶装置の長寿命化を図ることである。
本発明の目的は、書き込み制限を有する電子計算機の補助記憶装置の同一アドレスへ、書き込みデータを書き込みする回数を低減し、補助記憶装置の延命を実現することである。
本発明の発明1の補助記憶装置用フィルタドライバ手段を備えた電子計算機は、入力デバイス(16,17)及び/又は出力デバイス、主記憶手段、並びに、補助記憶手段(25)を備え、オペレーティングシステム(11)によって制御されている電子計算機(1)において、前記補助記憶手段(25)へデータを書き込みする回数を減らすためのドライバ制御手段である補助記憶装置用フィルタドライバ手段であって、前記補助記憶装置用フィルタドライバ手段は、(A)前記補助記憶手段(25)へ前記データを書き込みする書き込みデータを取得する取得手段、(B)前記書き込みデータを、前記電子計算機(1)の主記憶手段のキャッシュ領域(71)に、キャッシュデータとして書き込む書き込み手段、及び、(C)前記キャッシュデータをまとめて前記補助記憶手段(25)の記録領域に書き込むフラッシュ手段からなり、
前記オペレーティングシステム(11)は、デバイス(22−27)を制御するためのデバイスドライバ(32−38)を備え、
前記電子計算機(1)は、複数の前記デバイス(22−27)それぞれを制御するための前記デバイスドライバ(32−38)からなるデバイスドライバ層(30)と、前記オペレーティングシステム(11)がカーネルモードで提供する基本プログラム(63)との間に位置するフィルタドライバ手段(50)を有し、
前記フィルタドライバ手段(50)は、前記オペレーティングシステム(11)の全ての命令を実行できる動作モードであるカーネルモードで動作し、かつ、
(i)前記デバイスドライバ(32−38)の共通の窓口となるとともに、前記基本プログラム(63)を通して行われる、前記デバイスドライバ(32−38)とアプリケーションプログラム(10)とのやり取りをまとめて行ない、
(ii)前記アプリケーションプログラム(10)から要求されたときに、前記複数のデバイス(22−27)の間、又は、前記アプリケーションプログラム(10)と前記デバイス(22−27)の間のデータの送受信を行ない、
(iii)前記アプリケーションプログラム(10)から前記電子計算機(1)の前記補助記憶装置(25)に記憶されているファイルへアクセスしようとするとき、前記オペレーティングシステム(10)が標準で備えているインターフェースを通して、前記アプリケーションプログラム(10)から出された前記ファイルへのアクセス要求を受信して、前記補助記憶装置(25)とのデータのやりとりを経由する共通インターフェース手段として前記電子計算機(1)を機能させるプログラムであり、
前記フィルタドライバ手段(50)は、
前記書き込みデータを取得し、前記キャッシュ領域(71)に前記キャッシュデータとして書き込みし、及び、前記キャッシュデータをまとめて前記補助記憶手段(25)の前記記録領域に書き込みし、
前記書き込みデータを分析して、前記書き込みが集中する前記記録領域の集中記録領域を、特定し、
前記集中記録領域に書き込みされる前記書き込みデータを、前記キャッシュ領域(71)に、前記キャッシュデータとして書き込みし、及び、
前記集中記録領域以外の前記記録領域に書き込みされる前記書き込みデータを、直接、前記記録領域に書き込みすることを特徴とする。
入力デバイス(16,17)及び/又は出力デバイス、主記憶手段、並びに、補助記憶手段(25)を備え、オペレーティングシステム(11)によって制御されている電子計算機(1)において、前記補助記憶手段(25)へデータを書き込みする回数を減らすためのドライバ制御手段として、前記電子計算機を機能させるドライバ制御プログラムである補助記憶装置用フィルタドライバプログラムであって、
前記オペレーティングシステム(11)は、デバイス(22−27)を制御するためのデバイスドライバ(32−38)を備え、
前記補助記憶装置用フィルタドライバプログラムは、
前記補助記憶手段(25)へ書き込みする前記書き込みデータを取得するステップ、前記書き込みデータを、前記電子計算機(1)の主記憶手段のキャッシュ領域(71)に、キャッシュデータとして書き込むステップ、及び、前記キャッシュデータをまとめて前記補助記憶手段(25)の記録領域に書き込みするステップからなり、
前記電子計算機(1)は、複数の前記デバイス(22−27)それぞれを制御するための前記デバイスドライバ(32−38)からなるデバイスドライバ層(30)と、前記オペレーティングシステム(11)がカーネルモードで提供する基本プログラム(63)との間に位置するフィルタドライバプログラム(50)を有し、
前記フィルタドライバプログラム(50)は、前記オペレーティングシステム(11)の全ての命令が実行できる動作モードであるカーネルモードで動作し、かつ、
(I)前記デバイスドライバ(32−38)の共通の窓口となるとともに、前記基本プログラム(63)を通して行われる、前記デバイスドライバ(32−38)とアプリケーションプログラム(10)とのやり取りをまとめて行ない、(II)前記アプリケーションプログラム(10)から要求されたときに、前記複数のデバイス(22−27)の間、又は、前記アプリケーションプログラム(10)と前記デバイス(22−27)の間のデータの送受信を行ない、(III)前記アプリケーションプログラム(10)から前記電子計算機(1)の前記補助記憶装置(25)に記憶されているファイルへアクセスしようとするとき、前記オペレーティングシステム(10)が標準で備えているインターフェースを通して、前記アプリケーションプログラム(10)から出された前記ファイルへのアクセス要求を受信して、前記補助記憶装置(25)とのデータのやりとりを経由する共通インターフェース手段として前記電子計算機(1)を機能させるプログラムであり、
前記フィルタドライバプログラム(50)は、
(A)前記補助記憶手段(25)へ書き込みする書き込みデータを取得するインターフェースステップ(51、51a)、
(B)前記書き込みデータを、前記電子計算機(1)の主記憶手段のキャッシュ領域(71)に、キャッシュデータとして書き込む書き込みステップ(57a)、及び、
(C)前記キャッシュデータをまとめて前記補助記憶手段(25)の前記記録領域に書き込みするフラッシュステップ(55a)
からなり、
また、前記フィルタドライバプログラム(50)は、
前記アプリケーションプログラム又は前記基本プログラムから、前記補助記憶手段(25)へのアクセス要求を受信する前記インターフェースステップと、
前記アクセス要求が前記書き込みデータを前記補助記憶手段(25)に書き込みする書き込み要求のとき、前記書き込みデータを前記キャッシュ領域(71)に前記キャッシュデータとして書き込みする書き込みステップ(57a)と、
前記アクセス要求が前記補助記憶手段(25)から前記データを読み込みする読み込み要求のとき、前記データを前記キャッシュ領域(71)及び/又は前記補助記憶手段(25)から取得する読み込みステップ(56a)と、
前記キャッシュデータをまとめて前記補助記憶手段(25)の前記記録領域に書き込むフラッシュステップ(55a)と、及び、
(D)前記アクセス要求を前記インターフェース手段(51、51a)から受信し、前記アクセス要求を分析して、前記アクセス要求が書き込み要求か読み込み要求かを判定し、
(E)前記アクセス要求が書き込み要求のとき、前記書き込ステップ(57a)を実行し、
(F)前記アクセス要求が読み込み要求のとき、前記読み込みステップ(56a)を実行し、及び、(G)前記フラッシュステップ(55a)を実行する制御ステップ(52、52a)と、及び、
下位のデバイスドライバ(37)とのインターフェースを提供するデバイスドライバ制御ステップ(40、40a)と
からなり、
前記書き込みステップ(57a)は、
前記書き込み要求から、オフセット、バッファデータ、データサイズを取得するステップと、
前記データサイズからキャッシュするセルのサイズを計算するステップと、
前記オフセットから、インディクスを計算するステップと、
前記補助記憶装置のデータがキャッシュされているか否かを管理するデータであるマップ(72)の中から、前記インディクスに該当するデータがあるかを検索するステップと、
前記検索で、前記インディクスが見つからないとき、前記キャッシュバッファ(71)の空き領域に前記書き込みデータを書き込みし、前記書き込み後、前記補助記憶装置の前記データがキャッシュされているか否かを管理するデータであるマップ(72)の中の前記位置に該当する値をセットするステップと、及び、
前記検索で、前記インディクスが見つかったとき、前記キャッシュバッファ(71)の中から前記インディクスに該当するセルに、前記書き込みデータを上書きするステップと
からなることを特徴とする。
本発明の発明12の補助記憶装置用フィルタドライバプログラムは、発明10の補助記憶装置用フィルタドライバプログラムにおいて、前記記録領域は、ファイルシステムのファイル管理をするための管理テーブル用の領域であることを特徴とする。
(I)前記キャッシュ領域がフルになったときに、
(II)定期的に、
(III)前記電子計算機がシャットダウンするとき、
(IV)前記オペレーティングシステムにログオンした利用者がログオフするとき、
(V)前記オペレーティングシステムがサスペンドになるとき、
(VI)前記オペレーティングシステムが休止になるとき、及び、
(VII)強制フラッシュコマンドのとき
の中から選択される1条件であることを特徴とする。
記憶装置用フィルタドライバプログラムの記録媒体。
本発明の補助記憶装置用フィルタドライバ手段を備えた電子計算機は、電子計算機の補助記憶装置の長寿命化を図ることができた。
本発明の補助記憶装置用フィルタドライバ手段を備えた電子計算機は、電子計算機の補助記憶装置への書き込み命令をフィルタリングして、同一アドレスへの書き込みデータをキャッシュし、キャッシュフル時等にまとめて電子計算機の補助記憶装置に実際に書き込むようにすることで、書き込み回数を低減することができ、その結果電子計算機の補助記憶装置の延命が実現できた。
本発明の補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体は、フィルタドライバ手段で書き込み回数及び稼動時間の統計情報をとることで、電子計算機の補助記憶装置の推定稼動時間残量を使用者に知らせることが可能となった。
当業者にとって、基本的で自明なことではあるが、誤解、誤解釈を招かないために、本明細書に用いる技術用語について簡単に定義する。「電子計算機」とは、入力装置、出力装置、主記憶装置、補助記憶装置、中央処理装置を備えたものをいう。「オペレーティングシステム」とは、電子計算機を制御し、動作させるための基本プログラムをいう。オペレーティングシステムのコンパイルされたソースコードは、基本的に、補助記憶装置に格納されていて、電子計算機に電源が投入されたとき、補助記憶装置から呼び出されて実行され、電子計算機を制御する。
オペレーティングシステムには、カーネルモードとユーザモードがある。カーネルモードは、電子計算機がエグゼクティブで動作するときの動作状態である。カーネルモードでは、オペレーティングシステムを操作するためのすべての命令が実行可能であり、仮に間違った命令を実行するとシステム全体に悪影響を及ぼしかねない。また、ユーザモードは、オペレーティングシステムの機能の内、アプリケーションプログラム等のユーザに対して完全に開放されているモードである。
図1は、本発明の補助記憶装置用フィルタドライバを備えた電子計算機1の実施の形態の概要を示す概要図である。図中には、電子計算機1上で動作するアプリケーションプログラム10、及び、ファイルシステムドライバ34、ディスクドライバ38、ミニポートドライバ37、キャッシュバッファ71、及び、電子計算機1の補助記憶装置であるディスク25を図示している。また、本発明のフィルタドライバ50、及びそのユーザインターフェースのためのユーティリティプログラム59を図示している。
本実施の形態おいて、フィルタドライバ50がキャッシュバッファ71にデータを書き込みできるようになった状態を、キャッシュ機能が有効になったという。また、キャッシュバッファ71にデータを書き込みするフィルタドライバ50の機能を止めた状態を、キャッシュ機能が無効、又は、キャッシュ機能が停止した状態と言う。キャッシュバッファ71の容量、言い換えると、キャッシュバッファ71に保存できるデータの最大サイズを、キャッシュバッファ71のキャッシュサイズである。
本発明のフィルタドライバ50は、任意のオペレーティングシステム11で動作可能であるが、マイクロソフト社が提供するオペレーティングシステムでWindows XP(登録商標)以後のオペレーティングシステムであることが好ましい。
本発明の実施の形態を理解しやすくするためには、まず、電子計算機1の構成例、オペレーティングシステム11、及び、フィルタドライバ50の概要をそれぞれ説明する。
図2は、本発明の実施の形態の電子計算機1の構成例を示すブロック図である。図2には、電子計算機1を構成するハードウェア、及び、電子計算機1上で動作するソフトウェアの概要を図示している。本実施の形態のオペレーティングシステム11は、マイクロソフト社のWindows XP(登録商標)である。しかし、このオペレーティングシステム11を制限するものではなく、同様な機能を実現できれば、オペレーティングシステムの種類は問わない。
− Inside Windows NT by Helen Custer (Microsoft Press, 1992)
− Inside the Windows NT File System by Helen Custer (Microsoft Press, 1994)
− Inside Microsoft Windows 2000, Third Edition by David A. Solomon, Mark E. Russinovich (Microsoft Press, 2000)。
デバイスドライバの基礎知識からその開発に関する知識ついての書籍一覧:
− Programming the Microsoft Windows Driver Model by Walter Oney (Microsoft Press, 1999)
− Programming the Microsoft Windows Driver Model, Second Edition by Walter Oney (Microsoft Press, 2002)。
− Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server 2003, Windows XP, and Windows 2000 by Mark E. Russinovich, David A. Solomon (Microsoft Press, 2005, ISBN 0-7356-1917-4)
− Developing Drivers With the Windows Driver Foundation (Pro Developer)
by Penny Orwick, Guy Smith (Microsoft Press, 2007, ISBN-13 978-0-7356-2374-3)
図3は、オペレーティングシステム11の構成要素の内の代表的なものを図示したものであり、オペレーティングシステム11と、本発明のフィルタドライバ50との関係を図示している。オペレーティングシステム11は、サブシステム61、エグゼクティブ63、マイクロカーネル62、デバイスドライバ30、ハードウェア抽象化層(HAL)64から構成される。サブシステム61は、オペレーティングシステム11のユーザモードで提供されるサービスである。
求(I/O要求)に変換するサービスと、ファイルシステムやネットワークドライバ等のシステムサービスを提供する。HAL64は、マイクロカーネル62、デバイスドライバ30、及びエグゼクティブ63をプラットフォーム固有のハードウェア機能から分離し抽象化するためのコード層である。
フィルタドライバ50は、デバイスドライバ30内の各インターフェースドライバ32〜36間のデータの送受信をカーネルモードで実現する。フィルタドライバ50は、アプリケーションプログラム10からデバイスドライバ30へアクセスするとき、また、デバイスドライバ30からアプリケーションプログラム10へデータを送信するときに、共通のインターフェースを提供する。フィルタドライバ50は、オペレーティングシステム11のカーネルモードで動作する。
本発明の実施の形態においては、フィルタドライバ50が、ディスクドライバ38とミニポートドライバ37との間のデータ通信の制御を行う。このデータ通信の制御の例は、SCSIリクエストの処理によって、説明する。図4は、SCSIリクエストを処理する動作を説明するための図である。I/Oマネージャ69は、フィルタドライバ50を介してデバイスドライバ30との通信を行うとき、「I/O Request Packet(以下、IRPという。詳しくは、後述説明する。)」と呼ばれる構造体を用いて行う。
ここまでに、データのやりとりがIRPを用いて行われていることを説明したが、ここで、IRPについて少し説明する。IRPの概念は、当業者にとっては、自明なことであるが、その概要を説明する。IRPは、アプリケーションプログラム10からアクセス要求(例えば、I/O要求。)が発生した際に、I/Oマネージャ69が作成する構造体である。IRPは、オブジェクトではなく、データのパケットで、その構造体は非常に複雑な形をとっている。
[コード1]
MdlAddress: ドライバがダイレクトI/Oを使用する際に要求元のバッファを表すMDLを指す。
Flags: このフィールドは、一般にファイルシステムにのみ関係し、フラグを示す。
AssociatedIrp.MasterIrp: アソシエイトIRPに関連付けられたマスターIRPへのポインタである。このフィールドは、ファイルシステムのような最上階層のドライバにのみ関連する。
AssociatedIrp.SystemBuffer: ドライバがバッファードI/Oを使用する際に非ページプールメモリにある中間バッファへのポインタを示す。
RequestorMode: I/O要求元の実行モード(ユーザーモードかカーネルモード)を示す。
Cancel,CancelIrql,CancelRoutine: 実行中のIRP処理を取り消す際に使用する。
UserBuffer: ドライバがニーザーI/Oを使用する際にデータバッファの仮想アドレスを入れる。
Tail.Overlay.DeviceQueueEntry: システムキューを使うドライバのIRPキュー処理のために使用する。
Tail.Overlay.ListEntry: ドライバがIRPを所有している間、このフィールドは次のIRPへのリンクに使う。
スタックロケーション502は、階層ドライバのそれぞれのドライバに対応している。スタックロケーション502は、IO_STACK_LOCATION構造体により次のコードのように定義される。次のコード2は、スタックロケーション502の構造体の例である。
MajorFunction: I/O要求に関連したIRP_MJ_READ, IRP_MJ_WRITE等のメジャーI/O機能コードを示す。
MinorFunction: I/O要求に関連したマイナーI/O機能コードを示す。Window 2000/XPドライバのPnP機能と電源管理によく使用される関数である。
Flags: I/O操作に特有の実行フラグを示し、このフラグは主にファイルシステムと関係する。
Parameters: このフィールドはメジャーI/Oコードによって定義されている共用体である。
DeviceObject: I/O要求の対象となるデバイスオブジェクトへのポインタである。
FileObject:I/O要求に関連するファイルオブジェクトへのポインタである。
図6は、マップ72とバッファ管理テーブル73の例を図示したものである。マップ72とバッファ管理テーブル73は、ディスク25と、キャッシュバッファ71に格納されているデータの関連付けを示すデータである。マップ72とバッファ管理テーブル73は、テーブル式のデータである。マップ72は、ディスク25の全体の記憶領域に関するもので、ディスク25のどの領域のデータが、キャッシュバッファ71に格納されているかを示すものである。
図7は、キャッシュバッファ71の構造例を示す図である。図8は、マップ72の構造例を示す図である。図9は、バッファ管理テーブル73の構造例を示す図である。
フラッシュ処理とは、本実施の形態では、キャッシュバッファ71にキャッシュされているデータをディスク25へ書き込む処理を言う。フラッシュ処理は、本実施の形態においては、次の表に示す条件で行われる。この表1の第1欄はフラッシュ処理の条件を示す、第2欄はフラッシュ処理の条件の説明である。
フィルタドライバ50は、ディスクドライバ38から、読み込み要求を受け取る場合の手順をここで説明する。フィルタドライバ50は、読み込み要求を受け取ると、要求された要求データが、どこにあるかを探す。要求データは、保留中の書き込みデータ100p、キャッシュバッファ71、又は、ディスク25に格納されている可能性がある。保留中のデータは、IRPキューによって管理される。IRPキューは、オペレーティングシステム11で用意されたIRPをシリアライズするために使用できる、ポインタのチェイン可を実現するための機構である。
以下、各モジュールの詳細な動作例をフローチャートで示し、説明する。
図12は、制御モジュール52aの動作概要を示すフローチャートである。まず、制御モジュール52aは、発行されたアクセス要求を受信する。制御モジュール52aは、ディスクドライバ38から、インターフェース部51aを介して、アクセス要求を受信する。制御モジュール52aは、フィルタドライバ50のキャッシュ機能が停止しているかを確認する(ステップ100)。フィルタドライバ50のキャッシュ機能が停止していると、読み込み要求又は書き込み要求のためのIRPは、フィルタドライバ50を通過して、下位のデバイスドライバ(例えば、ミニポートドライバ37。)へ送信される(ステップ108)。
図13は、書き込み処理モジュール57aの動作例の概要を示すフローチャートである。書き込み処理モジュール57aは、アクセス要求のIRP(図5(b)のParameters_xxxという部分)から、ディスク25のオフセット、バッファデータ、及び、データサイズを参照する(ステップ201)。このParameters_xxxメンバは共用体になっており、IRP_MJ_SCSIリクエストの場合は、そのリクエスト固有のパラメータが指定される。
ncell=データサイズ/na
i=H
n=0
図14は、読み込み処理モジュール56aの動作例を示すフローチャートである。IRPに指定されたオフセット、データサイズのデータをディスク25から読み込む(ステップ300)。この読み込まれたデータは、RAM上に、IRPに指定されたバッファに格納される。これは、読み込み要求に付随されている読み込み用バッファがそのままの形式ではアクセスできないため、これをアクセスしやすくするために、メモリにマップする処理である。
ncell=データサイズ/na
H=オフセット/na
n=0
図15は、フラッシュ処理モジュール55aの動作例の概要を示すフローチャートである。フラッシュ処理モジュール55aが実行されると、IRP作成モジュール59aを呼び出して実行する(400)。、IRP作成モジュール59aの例は、図17のフローチャートに図示している。その後、フラッシュ処理モジュール55aは、まず、フラッシュフラグをオンにする(ステップ401)。フラッシュフラグは、ディスクドライブ毎に存在するフィルタドライバ50のデバイスオブジェクトのデバイスエクステンション構造体に格納されており、ドライバ作成者が自由に設定できる構造体である。
ncell=UnitBufferPoint
フラッシュ回数ncellは、バッファ管理テーブル73内に格納されているキャッシュデータのセル数になる。フラッシュ処理は、セルごとに行われるので、フラッシュ回数は、フラッシュ処理される回数である。
図17には、IRP作成モジュール58aの動作概要を示すフローチャートである。IRP作成モジュール58aは、フィルタドライバ50のフラッシュ処理モジュール55aの処理開始時にから呼び出されて動作する。IRP作成モジュール58aは、動作を開始すると、IoGetNextIrpStackLocation関数で、下位のデバイスドライバ(例えば、ミニポートドライバ37。)のスタックロケーションを取得する(ステップ501)。
本実施の形態のオペレーティングシステム11の標準設計では、ディスクドライバ38とミニポートドライバ37の間のインターフェースが、SCSIリクエストで行われている。本発明のフィルタドライバ50は、図10に示すように、ディスクドライバ38から発行されたアクセス要求(例えば、SCSIリクエスト。)を、インターフェース部51aによって、受けとり、処理する。そして、フィルタドライバ50とミニポートドライバ37とのデータ送受信は、フィルタドライバ50が、ミニポートドライバ37向けのアクセス要求(例えば、SCSIリクエスト。)を発行し、デバイスドライバ制御部40aから、ミニポートドライバ37へ送信して行われる。
図16は、ユーティリティプログラム59の構成例を示すブロック図である。ユーティリティプログラム59は、GUI部59a及び、定期フラッシュ部59bから構成される。GUI部59aは、ユーザインターフェースのためのものである。定期フラッシュ部59bは、フィルタドライバ50を制御するためのものである。フィルタドライバ50とユーティリティプログラム59と間のインターフェースには、次の表3のAPI関数を用いる。
本発明は、フィルタドライバ50を制御するDeviceIoControlを提供する。前述のとおり、フィルタドライバ50のステータス取得、その制御は、ユーティリティプログラム59からDeviceIoControl関数を呼び出すことにより行う。DeviceIoControl関数は、ユーザモードのアプリケーションプログラムがデバイスを制御するために使うWinAPI関数である。DeviceIoControl関数は、比較的にデバイスを自由に取り扱う事ができる。
図18は、ユーティリティプログラム59の画面例である画面600を示す図である。画面600は、次の複数の領域からなる。領域601は、物理デバイスの選択を行うための領域で、ここで物理デバイスを選択する。図中には、物理デバイスが選択された例として「Disk01」になっている。ここで選択された物理デバイスは、本願発明の制御対象のディスク25になる。電子計算機1には、複数の補助記憶装置が内蔵又は、接続されているとき、そのどれか一つを選択する。
本発明のフィルタドライバ50は、ディスク50を物理デバイス毎、言い換えるとボリュームごとに、に制御する。ディスク25は、分割され、複数のパーティションになっていることがよくある。この場合は、パーティション毎に制御を行わない。
フィルタドライバ50は、図示しないが、初期化モジュール、ハードウェア制御モジュール、電源管理ハンドラな等のモジュールを備える。初期化モジュール(DriverEntry)は、フィルタドライバ50の起動後、一番最初に、呼び出されて動作するルーチンである。初期化モジュールは、フィルタドライバ50用のパラーメータの初期化、オペレーティングシステムのレジストリの読み込み等を行う。
レジストリ登録の例:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Driverware\Parameter\<デバイス固有キー>
次の表6は、レジストリに登録される値の例を示している。
フィルタドライバ50は、アクセス命令を分析して、ディスク25への書き込みが集中する領域を抽出する機能を有する。この分析により、アクセス命令が、ディスク25の同一の領域(同一アドレス)に繰り返し頻繁に書き込みする命令である場合は、この領域に書き込みする書き込みデータを取得し、上述のキャッシュバッファ71に書き込む。このとき、書き込みが集中しない書き込みは、キャッシュバッファ71にキャッシュしないで、ディスク25へ直接書き込む。
本発明の補助記憶装置用のフィルタドライバ50は、単独で、又は、ユーティリティプログラム59と一緒に、ソフトウェアとして販売されることができる。更に、本発明の補助記憶装置用のフィルタドライバ50は、単独で、又は、ユーティリティプログラム59と一緒に、記録媒体に記録されて、販売されることができる。
10…アプリケーションプログラム
11…オペレーティングシステム
13…ネットワーク
14…USBメモリ
16…キーボード
17…マウス
22…コネクタ
23…ネットワークカード
24…USBポート
25…ディスク
27…マウス
30…デバイスドライバ
32…インターフェースドライバ
33…ネットワークドライバ
34…ファイルシステムドライバ
35…キーボードドライバ
36…マウスドライバ
37…ミニポートドライバ
38…ディスクドライバ
40…
40…aデバイスドライバ制御部
42…インターフェース制御部
43…ネットワーク制御部
44…ファイルシステム制御部
45…入力装置制御部
50…フィルタドライバ
51…アプリケーションプログラムインターフェース部
51a…インターフェース部
52…制御部
52a…制御モジュール
53…ログ取得部
55a…フラッシュ処理モジュール
56a…読み込み処理モジュール
57a…書き込み処理モジュール
58…アプリケーションプラットフォームプログラム
59…ユーティリティプログラム
59a…GUI部
59b…定期フラッシュ部
60…ハードウェア
61…サブシステム
62…マイクロカーネル
63…エグゼクティブ
64…HAL
65…オブジェクトマネージャ
66…プロセスマネージャ
67…キャッシュマネージャ
68…メモリマネージャ
69…I/Oマネージャ
71…キャッシュバッファ
72…マップ
73…バッファ管理テーブル
100、100p…書き込みデータ
101、102、103…セル
500…IRP
501…ヘッダー
502…スタックロケーション
Claims (19)
- 入力デバイス(16,17)及び/又は出力デバイス、主記憶手段、並びに、補助記憶手段(25)を備え、オペレーティングシステム(11)によって制御されている電子計算機(1)において、前記補助記憶手段(25)へデータを書き込みする回数を減らすためのドライバ制御手段である補助記憶装置用フィルタドライバ手段であって、
前記補助記憶装置用フィルタドライバ手段は、
(A)前記補助記憶手段(25)へ前記データを書き込みする書き込みデータを取得する取得手段、
(B)前記書き込みデータを、前記電子計算機(1)の主記憶手段のキャッシュ領域(71)に、キャッシュデータとして書き込む書き込み手段、及び、
(C)前記キャッシュデータをまとめて前記補助記憶手段(25)の記録領域に書き込むフラッシュ手段
からなり、
前記オペレーティングシステム(11)は、デバイス(22−27)を制御するためのデバイスドライバ(32−38)を備え、
前記電子計算機(1)は、複数の前記デバイス(22−27)それぞれを制御するための前記デバイスドライバ(32−38)からなるデバイスドライバ層(30)と、前記オペレーティングシステム(11)がカーネルモードで提供する基本プログラム(63)との間に位置するフィルタドライバ手段(50)を有し、
前記フィルタドライバ手段(50)は、前記オペレーティングシステム(11)の全ての命令を実行できる動作モードであるカーネルモードで動作し、かつ、
(i)前記デバイスドライバ(32−38)の共通の窓口となるとともに、前記基本プログラム(63)を通して行われる、前記デバイスドライバ(32−38)とアプリケーションプログラム(10)とのやり取りをまとめて行ない、
(ii)前記アプリケーションプログラム(10)から要求されたときに、前記複数のデバイス(22−27)の間、又は、前記アプリケーションプログラム(10)と前記デバイス(22−27)の間のデータの送受信を行ない、
(iii)前記アプリケーションプログラム(10)から前記電子計算機(1)の前記補助記憶装置(25)に記憶されているファイルへアクセスしようとするとき、前記オペレーティングシステム(10)が標準で備えているインターフェースを通して、前記アプリケーションプログラム(10)から出された前記ファイルへのアクセス要求を受信して、前記補助記憶装置(25)とのデータのやりとりを経由する共通インターフェース手段として前記電子計算機(1)を機能させるプログラムであり、
前記フィルタドライバ手段(50)は、
前記書き込みデータを取得し、前記キャッシュ領域(71)に前記キャッシュデータとして書き込みし、及び、前記キャッシュデータをまとめて前記補助記憶手段(25)の前記記録領域に書き込みし、
前記書き込みデータを分析して、前記書き込みが集中する前記記録領域の集中記録領域を、特定し、
前記集中記録領域に書き込みされる前記書き込みデータを、前記キャッシュ領域(71)に、前記キャッシュデータとして書き込みし、及び、
前記集中記録領域以外の前記記録領域に書き込みされる前記書き込みデータを、直接、前記記録領域に書き込みする
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項1に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
前記オペレーティングシステム(11)は、前記補助記憶手段(25)に格納されているファイルの読み出し又は書き出しを管理するファイルシステムを備え、
前記オペレーティングシステム(11)は、前記ファイルシステムを制御するためのファイルシステムドライバ(34)を備え、
前記フィルタドライバ手段(50)は、
前記アプリケーションプログラム又は前記基本プログラムから、前記ファイルシステムドライバへのアクセス要求を受信するインターフェース手段(51、51a)と、
アクセス要求が前記書き込みデータを前記補助記憶手段(25)に書き込みする書き込み要求のとき、前記書き込みデータを前記キャッシュ領域(71)に前記キャッシュデータとして書き込みする書き込み処理手段(57a)と、
アクセス要求が前記補助記憶手段(25)からデータ読み込みする読み込み要求のとき、前記読み込みデータを前記キャッシュ領域(71)及び/又は前記補助記憶手段(25)から取得する読み込み処理手段(56a)と、
前記キャッシュデータをまとめて前記補助記憶手段(25)の前記記録領域に書き込むフラッシュ処理手段(55a)と、
前記アクセス要求を前記インターフェース手段(51、51a)から受信し、前記アクセス要求を分析して、前記アクセスが書き込み要求か読み込み要求かを判定し、書き込み処理手段(57a)、読み込み処理手段(56a)、及び、フラッシュ処理手段(55a)の内1以上を実行させる制御手段(52、52a)と、
下位のデバイスドライバとのインターフェースを提供するデバイスドライバ制御部(40、40a)と
からなることを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項2に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
前記フィルタドライバ手段(50)は、
前記補助記憶手段(25)からデータを読み込みするための、又は、前記補助記憶手段(25)にデータを書き込みするためのIRPを作成し、前記デバイスドライバ制御部(40、40a)を介して、前記下位デバイスドライバ(37)へ送信するIRP作成手段からなる
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項1に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
前記キャッシュデータをまとめて前記記録領域に書き込みするときのタイミングの条件は、
(I)前記キャッシュ領域がフルになったときに、
(II)定期的に、
(III)前記電子計算機がシャットダウンするとき、
(IV)前記オペレーティングシステムにログオンした利用者がログオフするとき、
(V)前記オペレーティングシステムがサスペンドになるとき、
(VI)前記オペレーティングシステムが休止になるとき、及び、
(VII)強制フラッシュコマンドのとき
の中から選択される1条件である
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項2に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
前記記録領域は、前記ファイルシステムのファイル管理をするための管理テーブル用の領域である
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項2に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
前記書き込みデータは、前記ファイルシステムのファイル管理をするための管理テーブルのデータである
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項1に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
フィルタドライバ手段(50)は、前記補助記憶装置(25)へ前記データを書き込みする書き込み回数、及び/又は、前記補助記憶装置(25)の稼動時間に関する統計情報を取得し、前記補助記憶装置(25)の推定稼動時間残量を計算し、前記アプリケーションプログラム(10)又は、前記オペレーティングシステム(11)に報告する報告手段を有する
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項1に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
前記補助記憶手段(25)は、不揮発性メモリである
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 請求項8に記載の補助記憶装置用フィルタドライバ手段を備えた電子計算機において、
前記不揮発性メモリは、フラッシュメモリである
ことを特徴とする補助記憶装置用フィルタドライバ手段を備えた電子計算機。 - 入力デバイス(16,17)及び/又は出力デバイス、主記憶手段、並びに、補助記憶手段(25)を備え、オペレーティングシステム(11)によって制御されている電子計算機(1)において、前記補助記憶手段(25)へデータを書き込みする回数を減らすためのドライバ制御手段として、前記電子計算機を機能させるドライバ制御プログラムである補助記憶装置用フィルタドライバプログラムであって、
前記オペレーティングシステム(11)は、デバイス(22−27)を制御するためのデバイスドライバ(32−38)を備え、
前記補助記憶装置用フィルタドライバプログラムは、
前記補助記憶手段(25)へ書き込みする前記書き込みデータを取得するステップ、
前記書き込みデータを、前記電子計算機(1)の主記憶手段のキャッシュ領域(71)に、キャッシュデータとして書き込むステップ、及び、
前記キャッシュデータをまとめて前記補助記憶手段(25)の記録領域に書き込みするステップ
からなり、
前記電子計算機(1)は、複数の前記デバイス(22−27)それぞれを制御するための前記デバイスドライバ(32−38)からなるデバイスドライバ層(30)と、前記オペレーティングシステム(11)がカーネルモードで提供する基本プログラム(63)との間に位置するフィルタドライバプログラム(50)を有し、
前記フィルタドライバプログラム(50)は、前記オペレーティングシステム(11)の全ての命令が実行できる動作モードであるカーネルモードで動作し、かつ、
(I)前記デバイスドライバ(32−38)の共通の窓口となるとともに、前記基本プログラム(63)を通して行われる、前記デバイスドライバ(32−38)とアプリケーションプログラム(10)とのやり取りをまとめて行ない、(II)前記アプリケーションプログラム(10)から要求されたときに、前記複数のデバイス(22−27)の間、又は、前記アプリケーションプログラム(10)と前記デバイス(22−27)の間のデータの送受信を行ない、(III)前記アプリケーションプログラム(10)から前記電子計算機(1)の前記補助記憶装置(25)に記憶されているファイルへアクセスしようとするとき、前記オペレーティングシステム(10)が標準で備えているインターフェースを通して、前記アプリケーションプログラム(10)から出された前記ファイルへのアクセス要求を受信して、前記補助記憶装置(25)とのデータのやりとりを経由する共通インターフェース手段として前記電子計算機(1)を機能させるプログラムであり、
前記フィルタドライバプログラム(50)は、
(A)前記補助記憶手段(25)へ書き込みする書き込みデータを取得するインターフェースステップ(51、51a)、
(B)前記書き込みデータを、前記電子計算機(1)の主記憶手段のキャッシュ領域(71)に、キャッシュデータとして書き込む書き込みステップ(57a)、及び、
(C)前記キャッシュデータをまとめて前記補助記憶手段(25)の前記記録領域に書き込みするフラッシュステップ(55a)
からなり、
また、前記フィルタドライバプログラム(50)は、
前記アプリケーションプログラム又は前記基本プログラムから、前記補助記憶手段(25)へのアクセス要求を受信する前記インターフェースステップと、
前記アクセス要求が前記書き込みデータを前記補助記憶手段(25)に書き込みする書き込み要求のとき、前記書き込みデータを前記キャッシュ領域(71)に前記キャッシュデータとして書き込みする書き込みステップ(57a)と、
前記アクセス要求が前記補助記憶手段(25)から前記データを読み込みする読み込み要求のとき、前記データを前記キャッシュ領域(71)及び/又は前記補助記憶手段(25)から取得する読み込みステップ(56a)と、
前記キャッシュデータをまとめて前記補助記憶手段(25)の前記記録領域に書き込むフラッシュステップ(55a)と、及び、
(D)前記アクセス要求を前記インターフェース手段(51、51a)から受信し、前記アクセス要求を分析して、前記アクセス要求が書き込み要求か読み込み要求かを判定し、
(E)前記アクセス要求が書き込み要求のとき、前記書き込ステップ(57a)を実行し、
(F)前記アクセス要求が読み込み要求のとき、前記読み込みステップ(56a)を実行し、及び、(G)前記フラッシュステップ(55a)を実行する制御ステップ(52、52a)と、及び、
下位のデバイスドライバ(37)とのインターフェースを提供するデバイスドライバ制御ステップ(40、40a)と
からなり、
前記書き込みステップ(57a)は、
前記書き込み要求から、オフセット、バッファデータ、データサイズを取得するステップと、
前記データサイズからキャッシュするセルのサイズを計算するステップと、
前記オフセットから、インディクスを計算するステップと、
前記補助記憶装置のデータがキャッシュされているか否かを管理するデータであるマップ(72)の中から、前記インディクスに該当するデータがあるかを検索するステップと、
前記検索で、前記インディクスが見つからないとき、前記キャッシュバッファ(71)の空き領域に前記書き込みデータを書き込みし、前記書き込み後、前記補助記憶装置の前記データがキャッシュされているか否かを管理するデータであるマップ(72)の中の前記位置に該当する値をセットするステップと、及び、
前記検索で、前記インディクスが見つかったとき、前記キャッシュバッファ(71)の中から前記インディクスに該当するセルに、前記書き込みデータを上書きするステップと
からなることを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記フィルタドライバプログラム(50)は、
前記補助記憶手段(25)からデータを読み込みするための、又は、前記補助記憶手段(25)にデータを書き込みするためのIRPを作成し、前記デバイスドライバ制御ステップ(40、40a)を介して、前記下位デバイスドライバ(37)へ送信するIRP作成ステップ(58a)からなる
ことを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記記録領域は、ファイルシステムのファイル管理をするための管理テーブル用の領域である
ことを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記書き込みデータは、ファイルシステムのファイル管理をするための管理テーブルのデータである
ことを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記キャッシュデータをまとめて前記記録領域に書き込みするときのタイミングの条件は、
(I)前記キャッシュ領域がフルになったときに、
(II)定期的に、
(III)前記電子計算機がシャットダウンするとき、
(IV)前記オペレーティングシステムにログオンした利用者がログオフするとき、
(V)前記オペレーティングシステムがサスペンドになるとき、
(VI)前記オペレーティングシステムが休止になるとき、及び、
(VII)強制フラッシュコマンドのとき
の中から選択される1条件である
ことを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記フィルタドライバプログラム(50)は、
前記補助記憶装置(25)へ前記データを書き込みする書き込み回数を取得するステップ、
前記補助記憶装置(25)の稼動時間に関する統計情報を取得するステップ、
前記補助記憶装置(25)の推定稼動時間残量を計算するステップ、及び、
前記アプリケーションプログラム(10)又は、前記オペレーティングシステム(11
)に、前記フィルタドライバプログラム(50)の状態を報告する報告ステップ
の内1以上のステップを有する
ことを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項11に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記書き込むフラッシュステップ(55a)は、
下位のデバイスドライバへ指示であるIRPを作成するために前記IRP作成ステップを実行するステップと、
前記キャッシュバッファ内の全データから前記補助記憶装置へ書き込むデータを計算するステップと、
前記キャッシュバッファのデータを管理するバッファ管理テーブル(73)から、前記書き込みデータの補助記憶装置上の位置を取得するステップと、
前記位置に、前記書き込みデータを書き込む命令を前記IRPに入れて、前記下位デバイスドライバへ送信するステップと、
前記書き込みテータを前記補助記憶装置に書き込みした後、前記補助記憶装置のデータがキャッシュされているか否かを管理するデータであるマップ(72)の中の前記位置に該当する値をリセットするステップと、
からなることを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記読み込みステップ(56a)は、
前記読み込み要求に指定されたデータを前記補助記憶装置(25)から読み込み、前記読み込み要求に指定されたバッファに格納するステップと、
前記読み込み要求に指定されたデータが格納されている前記補助記憶装置(25)のオフセットを、前記補助記憶装置のデータがキャッシュされているか否かを管理するデータであるマップ(72)及び/又は、前記キャッシュバッファのデータを管理するバッファ管理テーブル(73)の中のから検索するステップと、
前記検索で、前記オフセットが見つかったとき、前記キャッシュバッファ(71)の前記オフセットに該当するキャッシュデータを読み出すステップと、及び、
前記読み出したデータを、前記バッファの前記オフセットに対応するデータに上書きするステップと
からなることを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10に記載の補助記憶装置用フィルタドライバプログラムにおいて、
前記フィルタドライバプログラム(50)は、
(A)前記フィルタドライバプログラム(50)の動作、及び、又は前記オペレーティングシステム(11)の動作を記録するログ取得ステップ、(B)前記フィルタドライバプログラム(50)を初期値を設定する初期化ステップ、(C)前記電子計算機(1)の電源管理ハンドラからデータを取得する電源管理ステップ、及び、(D)前記電子計算機(1)に内蔵又は接続されている物理デバイスの確認、その初期化を行うハードウェア制御ステップの中から選択される1以上を有する
ことを特徴とする補助記憶装置用フィルタドライバプログラム。 - 請求項10乃至18の中から選択される1項に記載の補助記憶装置用フィルタドライバプログラムを記録した補助記憶装置用フィルタドライバプログラムの記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009042985A JP5399094B2 (ja) | 2009-02-25 | 2009-02-25 | 補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009042985A JP5399094B2 (ja) | 2009-02-25 | 2009-02-25 | 補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010198368A JP2010198368A (ja) | 2010-09-09 |
JP5399094B2 true JP5399094B2 (ja) | 2014-01-29 |
Family
ID=42823021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009042985A Active JP5399094B2 (ja) | 2009-02-25 | 2009-02-25 | 補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5399094B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130033230A (ko) | 2011-09-26 | 2013-04-03 | 삼성전자주식회사 | 하이브리드 메모리 장치, 이를 포함하는 시스템, 및 하이브리드 메모리장치의 데이터 기입 및 독출 방법 |
JP5853596B2 (ja) * | 2011-10-31 | 2016-02-09 | 沖電気工業株式会社 | 半導体ディスク寿命監視装置 |
JP6191232B2 (ja) * | 2013-05-16 | 2017-09-06 | 富士通株式会社 | 情報処理システム、情報処理方法、及び情報処理プログラム |
JP5976024B2 (ja) * | 2014-01-23 | 2016-08-23 | 三菱電機株式会社 | 再生装置、制御方法、及び制御プログラム |
US9495102B2 (en) * | 2014-07-31 | 2016-11-15 | Samsung Electronics Co., Ltd. | Input/output (I/O) interceptor that re-orders a plurality of write I/O into combined with I/O with intelligent flush control logic |
WO2017069773A1 (en) * | 2015-10-23 | 2017-04-27 | Hewlett-Packard Development Company, L.P. | Write commands filtering |
JP6773299B2 (ja) | 2016-06-10 | 2020-10-21 | 富士通コネクテッドテクノロジーズ株式会社 | データ書き込み制御装置、データ書き込み制御プログラムおよびデータ書き込み制御方法 |
JP6880769B2 (ja) * | 2017-01-24 | 2021-06-02 | 富士通株式会社 | 情報処理装置,制御プログラムおよび情報処理方法 |
JP6444475B1 (ja) * | 2017-11-28 | 2018-12-26 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
JP6443572B1 (ja) * | 2018-02-02 | 2018-12-26 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
US10824598B2 (en) * | 2018-08-07 | 2020-11-03 | Dell Products L.P. | Handling file commit and commit-delete operations in an overlay optimizer |
CN111651126B (zh) * | 2020-06-04 | 2023-05-16 | 重庆芯讯通无线科技有限公司 | 存储器的写操作方法、系统、电子设备和介质 |
KR102322408B1 (ko) * | 2020-12-07 | 2021-11-05 | 주식회사 샌즈랩 | 서버 자원을 이용한 악성 코드 탐지 및 치료가 가능한 사물 인터넷 장치 및 그 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07295866A (ja) * | 1994-04-20 | 1995-11-10 | Casio Comput Co Ltd | データ処理装置 |
JPH09259029A (ja) * | 1996-03-22 | 1997-10-03 | Nec Corp | Eepromを用いた記憶装置の制御方式 |
JP3557511B2 (ja) * | 1997-08-27 | 2004-08-25 | 沖電気工業株式会社 | 半導体ディスク装置の寿命算出方法 |
JP2003015928A (ja) * | 2001-07-04 | 2003-01-17 | Nec System Technologies Ltd | フラッシュメモリのデータ格納装置及びそれに用いるデータ格納方法 |
AU2003211375A1 (en) * | 2002-02-27 | 2003-09-09 | Science Park Corporation | Computer file system driver control method, program thereof, and program recording medium |
US6993603B2 (en) * | 2002-12-09 | 2006-01-31 | Microsoft Corporation | Managed file system filter model and architecture |
JP2006252535A (ja) * | 2005-02-09 | 2006-09-21 | Hitachi Ulsi Systems Co Ltd | 記憶装置 |
-
2009
- 2009-02-25 JP JP2009042985A patent/JP5399094B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010198368A (ja) | 2010-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5399094B2 (ja) | 補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体 | |
US11726661B2 (en) | Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device | |
CN104603750B (zh) | 使用bpram来布局和执行软件应用 | |
EP3118745B1 (en) | A heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device | |
CN104583948B (zh) | 使用bpram来布局和执行操作系统 | |
US8447915B2 (en) | Flash memory device for allocating physical blocks to logical blocks based on an erase count | |
US8230160B2 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
US8402234B2 (en) | Storage system and storage migration method | |
CN101452407B (zh) | 防止vmm系统中的uos使sos正在使用的设备断电的系统和方法 | |
US8326939B2 (en) | Storage system that transfers system information elements | |
US11340808B2 (en) | Latency-based storage in a hybrid memory system | |
JP2011513805A (ja) | 保存耐用年数および速度に基づいたファイル保存のための保存場所の選択 | |
JP2006018839A (ja) | 漸進的マージ方法及びそれを利用したメモリシステム | |
US20200409607A1 (en) | Hybrid memory system | |
US20080270698A1 (en) | Data migration including operation environment information of a host computer | |
TWI421686B (zh) | 資料存取方法與系統、儲存媒體控制器與儲存系統 | |
US11327892B2 (en) | Latency-based storage in a hybrid memory system | |
CN114303123A (zh) | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd | |
US11409451B2 (en) | Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device | |
US7921081B2 (en) | Managing a snapshot stored within a file system space for efficient detection of in-use blocks | |
KR20100121389A (ko) | 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치 | |
JP4567966B2 (ja) | エミュレーションシステムおよびエミュレーション方法 | |
JP2007128448A (ja) | ファイルシステム及びファイル情報処理方法 | |
WO2014091629A1 (ja) | 記憶装置の管理プログラム、電子装置及び記憶装置の管理方法 | |
JP2012014632A (ja) | データベース装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130501 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130917 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131023 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5399094 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |