JP3063669B2 - 情報処理システム - Google Patents

情報処理システム

Info

Publication number
JP3063669B2
JP3063669B2 JP9086763A JP8676397A JP3063669B2 JP 3063669 B2 JP3063669 B2 JP 3063669B2 JP 9086763 A JP9086763 A JP 9086763A JP 8676397 A JP8676397 A JP 8676397A JP 3063669 B2 JP3063669 B2 JP 3063669B2
Authority
JP
Japan
Prior art keywords
sector
disk
driver program
address
disk driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP9086763A
Other languages
English (en)
Other versions
JPH10283120A (ja
Inventor
憲 梅田
昌史 虎渡
等 釜坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP9086763A priority Critical patent/JP3063669B2/ja
Publication of JPH10283120A publication Critical patent/JPH10283120A/ja
Application granted granted Critical
Publication of JP3063669B2 publication Critical patent/JP3063669B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、磁気ディスクや光
ディスク等のディスクと情報処理装置が接続された情報
処理システムに係り、データを書き込む際のシーク処理
時間を短縮して、書き込み処理のスループットを向上さ
せることができる情報処理システムに関する。
【0002】
【従来の技術】従来、ディスクのシーク時間を短縮し、
入出力処理のスループットを向上させるためのディスク
メモリデバイスのアクセス制御装置については、例えば
特開昭62−140135号公報で報告されたものが挙
げられる。この従来のアクセス制御装置は、ディスクの
シーク時間を短縮し、入出力処理のスループットを向上
するためのアルゴリズムとして論文等で発表されている
ショーテスト・シーク・タイム・ファースト(SST
F)を実現するハードウェアについて述べられたもので
ある。
【0003】この従来技術は、SSTFを要するBSD
Unix等で実現されている「エレベータシーキン
グ」に類似の内容であり、ディスクI/Oの要求をバッ
ファリングし、I/O対象セクタの物理的位置を基にリ
オーダリングすることで、各I/Oで発生するシークの
距離を小さくすることを目的としている。
【0004】
【発明が解決しようとする課題】従来の技術では、I/
O要求の発生頻度が小さい時、リオーダするだけの要求
がバッファされないため、その効果がなかった。また、
リオーダできる場合でも、必ずしもシーク処理が不要に
なるわけではないので、十分なI/Oスループットが得
られない場合が多い。
【0005】そこで、本発明は、ディスクI/O処理時
間の大半を占めるシーク処理を短縮して、レスポンスタ
イム並びI/Oスループットを向上させることができる
情報処理システムを提供することを目的とする。
【0006】
【課題を解決するための手段】請求項1記載の発明は、
アプリケーションプログラムと、アプリケーションプロ
グラムとやり取りするオペレーティングシステムと、オ
ペレーティングシステムとやり取りするディスクドライ
バプログラムと、ディスクドライバプログラムにより論
理セクタアドレス、物理セクタアドレス及びタイムスタ
ンプ値が設定されるアドレスマップと、ディスクドライ
バプログラムにより物理セクタアドレス及びビットが設
定されるフリービットマップと、ディスクドライバプロ
グラムにより最後にアクセスしたセクタの物理セクタア
ドレスが設定される最終アクセスセクタ位置保持レジス
タと、ディスクドライバプログラムによりタイムスタン
プ値が設定されるタイムスタンプ値保持レジスタとを有
する情報処理装置と、情報処理装置に接続されたディス
ク型記憶装置とから構成された情報処理システムにおい
て、ディスクドライバプログラムは、オペレーティング
システムからディスク型記憶装置の論理セクタアドレス
に対して書き込み処理が要求された場合、アドレスマッ
プからその論理セクタアドレスに対応する物理セクタア
ドレスを検索し、その検索した物理セクタアドレスに対
応するフリービットマップのエントリのビットをフリー
に設定し、ディスクドライバプログラムは、フリービッ
トマップから最終アクセスセクタ位置保持レジスタに設
定された最後にアクセスしたセクタの物理セクタアドレ
スに最も近い物理セクタアドレスの空きセクタを検索
し、検索した空きセクタに対応するフリービットマップ
の物理セクタアドレスのエントリのビットを使用中に設
定し、ディスクドライバプログラムは、書き込み処理が
要求されている論理セクタアドレスに対応するアドレス
マップのエントリに検索した空きセクタの物理セクタア
ドレスを設定し、ディスクドライバプログラムは、オペ
レーティングシステムから転送されたデータを、書き込
み処理が要求される論理セクタアドレスと、タイムスタ
ンプ値保持レジスタが保持するタイムスタンプ値ととも
に、検索した空きセクタに書き込み、ディスクドライバ
プログラムは、データを書き込んだディスク型記憶装置
の空きセクタの物理セクタアドレスを最終アクセスセク
タ位置保持レジスタに設定するとともに、タイムスタン
プ値保持レジスタのタイムスタンプ値をインクリメント
することを特徴とするものである。
【0007】請求項2記載の発明は、請求項1に記載の
発明において、アドレスマップの論理セクタアドレス数
に対応するオペレーティングシステムに提供するセクタ
数が、ディスク型記憶装置が実際に保存するセクタ数よ
りも小さくなるように設定することを特徴とするもので
ある。
【0008】請求項3記載の発明は、アプリケーション
プログラムと、アプリケーションプログラムとやり取り
するオペレーティングシステムと、オペレーティングシ
ステムとやり取りするディスクドライバプログラムと、
ディスクドライバプログラムにより論理セクタアドレ
ス、物理セクタアドレス及びタイムスタンプ値が設定さ
れるアドレスマップと、ディスクドライバプログラムに
よりセクタの物理的構成、物理セクタアドレス及びビッ
トが設定されるフリービットマップと、ディスクドライ
バプログラムにより最後にアクセスしたセクタの物理的
構成が設定される最終アクセスセクタ位置保持レジスタ
と、ディスクドライバプログラムによりタイムスタンプ
値が設定されるタイムスタンプ値保持レジスタとを有す
る情報処理装置と、情報処理装置に接続されたディスク
型記憶装置とから構成された情報処理システムにおい
て、ディスクドライバプログラムは、オペレーティング
システムからディスク型記憶装置の論理セクタアドレス
に対して書き込み処理が要求された場合、アドレスマッ
プからその論理セクタアドレスに対応する物理セクタア
ドレスを検索し、その検索した物理セクタアドレスに対
応するフリービットマップのエントリのビットをフリー
に設定し、ディスクドライバプログラムは、フリービッ
トマップから最終アクセスセクタ位置保持レジスタに設
定された最後にアクセスしたセクタの物理的構成に基づ
いて空きセクタを検索し、検索した空きセクタに対応す
るフリービットマップの物理セクタアドレスのエントリ
のビットを使用中に設定し、ディスクドライバプログラ
ムは、書き込み処理が要求されている論理セクタアドレ
スに対応するアドレスマップのエントリに検索した空き
セクタの物理セクタアドレスを設定し、ディスクドライ
バプログラムは、オペレーティングシステムから転送さ
れたデータを、書き込み処理が要求される論理セクタア
ドレスと、タイムスタンプ値保持レジスタが保持するタ
イムスタンプ値とともに、検索した空きセクタに書き込
み、ディスクドライバプログラムは、データを書き込ん
だディスク型記憶装置の空きセクタの物理セクタアドレ
スを最終アクセスセクタ位置保持レジスタに設定すると
ともに、タイムスタンプ値保持レジスタのタイムスタン
プ値をインクリメントすることを特徴とするものであ
る。
【0009】請求項4記載の発明は、請求項3に記載の
発明において、ディスクドライバプログラムは、最後に
アクセスしたセクタの物理的構成に基づいて空きセクタ
を検索する際、最後にアクセスしたセクタからの距離が
等しいセクタが最後にアクセスしたセクタから見て、外
周トラック上と内周トラック上の両方に検索された場
合、外周トラック上のセクタを選択することを特徴とす
るものである。
【0010】請求項5記載の発明は、請求項1〜4の何
れかに記載の発明において、ディスクドライバプログラ
ムは、検索した空きセクタに書き込み処理を行った後、
フリービットマップから書き込み処理を行ったセクタの
物理セクタアドレスに最も近い物理セクタアドレスの空
きセクタを検索し、ディスクドライバプログラムは、検
索した空きセクタにシーク処理を行うとともに、シーク
処理を行った空きセクタの物理セクタアドレスを最終ア
クセスセクタ位置保持レジスタに設定することを特徴と
するものである。
【0011】請求項6記載の発明は、請求項1〜5の何
れかに記載の発明において、オペレーティングシステム
とディスクドライバプログラム間にオペレーティングシ
ステムからの書き込み/読み込み処理要求を蓄積するキ
ューバッファを設け、ディスクドライバプログラムは、
キューバッファに書き込み処理要求が2つ以上蓄積され
ていると判断した場合、フリービットマップから最終ア
クセスセクタ位置保持レシスタに設定された物理セクタ
アドレスに最も近く、かつ書き込み処理要求数に応じた
連続した空きセクタを検索し、ディスクドライバプログ
ラムは、検索した連続空きセクタに対してキューバッフ
ァに蓄積された書き込み処理要求の処理をまとめて行う
ことを特徴とするものである。
【0012】請求項7記載の発明は、請求項6に記載の
発明システムにおいて、ディスクドライバプログラム
が、キューバッファに書き込み/読み込み要求が蓄積さ
れていない時、ディスク型記憶装置の各トラックに分散
するように空きセクタを再配置処理することを特徴とす
るものである。
【0013】請求項8記載の発明は、請求項7に記載の
発明において、ディスクドライバプログラムが、書き込
み処理の要求頻度に基づいて空きセクタの再配置処理を
行うことを特徴とするものである。
【0014】請求項9記載の発明は、請求項1〜8の何
れかに記載の発明において、ディスクドライバプログラ
ムは、オペレーティングシステムが動作を停止する時、
情報処理装置のアドレスマップとフリービットマップと
タイムスタンプ値保持レジスタの情報をディスク型記憶
装置に保存しておき、ディスクドライバプログラムは、
オペレーティングシステムが動作を開始した時、ディス
ク型記憶装置からアドレスマップとフリービットマップ
とタイムスタンプ値の情報を読み出して情報処理装置の
アドレスマップとフリービットマップとタイムスタンプ
値保持レジスタに設定することを特徴とするものであ
る。
【0015】請求項10記載の発明は、請求項1〜9の
何れかに記載の発明において、情報処理装置にバッファ
メモリを設け、ディスクドライバプログラムは、書き込
み処理要求されるオペレーティングシステムからの情報
をバッファメモリに書き込んでおき、ディスクドライバ
プログラムは、ディスク型記憶装置に書き込み処理要求
される情報が全て書き込まれていないと判断した場合、
バッファメモリから情報を読み出してディスク型記憶装
置に書き込むことを特徴とするものである。
【0016】請求項11記載の発明は、請求項1〜10
の何れかに記載の発明において、情報処理装置に接続さ
れるバッファディスク型記憶装置を設け、ディスクドラ
イバプログラムは、書き込み処理要求されるオペレーテ
ィングシステムからの情報をバッファディスク型記憶装
置に書き込んでおき、ディスクドライバプログラムは、
オペレーティングシステムが動作を開始した時、バッフ
ァディスク型記憶装置から情報を読み出して、ディスク
型記憶装置に書き込むことを特徴とするものである。
【0017】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。 実施の形態1.図1は本発明に係る実施の形態1の情報
処理システムの構成を示すブロック図である。図1にお
いて、1はCPU及びメモリ等から構成される情報処理
装置であり、2は情報処理装置1に接続されたディスク
型記憶装置(以下、単にディスクと記す。)であり、こ
のディスク2のヘッド数・シリンダ数・セクタ数、総セ
クタ数は、各々Nh・Nc・Ns、mとする。ディスク
2には、0から(m−1)の物理セクタアドレスを指定
してリード/ライト処理を指示できる。
【0018】3は情報処理装置1で動作するオペレーテ
ィングシステムであり、4はオペレーティングシステム
3とやり取りするアプリケーションプログラムである。
5〜9は各々フリービットマップ、アドレスマップ、デ
ィスクドライバプログラム、最終アクセスセクタ位置保
持レジスタ、タイムスタンプ値保持レジスタである。
【0019】フリービットマップ5は、ディスク2の使
用状況を示し、その各エントリは、ディスク2の物理セ
クタアドレス0〜(m−1)に対応している。オペレー
ティングシステム3がリード/ライト処理をディスク2
に要求する時は、その物理セクタアドレス0〜(m−
1)を直接指定せず、ディスクドライバプログラム7が
提供する論理セクタアドレス0〜(n−1)を指定す
る。
【0020】ディスクドライバプログラム7は、論理セ
クタアドレスから物理セクタアドレスへのマッピングを
行う際に、アドレスマップ6を利用する。アドレスマッ
プ6の各エントリは、論理セクタアドレス0〜(n−
1)に対応する。なお、論理セクタアドレスの上限とな
るnは、m>nとなる数である。
【0021】フリービットマップ5のエントリ数は、デ
ィスク2の総セクタ数mと等しくなる。また、アドレス
マップ6のエントリ数で、論理セクタアドレスの上限と
なるnは、m>nとなる数で、ディスク2の総セクタ数
mよりも小さくなる数である。更に、図2の拡張された
ディスク2上の1セクタのフォーマットに示すように、
ディスク2の記憶保持の単位である各セクタには、従来
記憶されたデータ部分に加え、論理セクタアドレスとタ
イムスタンプ値を記憶できるようにフィールドが追加さ
れる。
【0022】本発明を適用しない場合、オペレーティン
グシステム3は、アプリケーションプログラム4からデ
ィスクI/O処理が要求されると、ディスクI/Oをデ
ィスク2に直接要求する。本発明を適用する場合、オペ
レーティングシステム3は、アプリケーションプログラ
ム4からディスクI/O処理が要求されると、ディスク
ドライバプログラム7にディスクI/Oを要求する。デ
ィスクドライバプログラム7は、オペレーティングシス
テム3からディスクI/Oが要求されると、フリービッ
トマップ5、アドレスマップ6及び最終アクセスセクタ
位置保持レジスタ8を参照したうえで、変換したディス
クI/O要求をディスク2に転送する。この時のシーク
最適化処理により、ディスク2へのライト処理の性能が
向上する。以下、具体的に図面を用いて説明する。
【0023】ディスク2は、始めて使用される時、ディ
スクドライバプログラム7により初期化処理が行われて
から使用される。このディスクドライバプログラム7の
ディスク2の初期化処理によって、ディスク2の各セク
タのタイムスタンプフィールド(図2参照)には、初期
値としてタイムスタンプ値0が設定される。また、アド
レスマップ6の各エントリのタイムスタンプ値は、初期
値として0が設定される。
【0024】フリービットマップ5は、全てのエントリ
のビットがフリーで使用していないということで、1に
セットされる。最終アクセスセクタ位置保持レジスタ8
には、初期値0が設定され、タイムスタンプ値保持レジ
スタ9には、1が設定される。この初期化処理でディス
ク2が使用可能になる。初期化処理以降は、以下の手順
に従って、ディスク2のI/O処理並びにシステムの起
動時における再構成処理を行うことができる。
【0025】ディスク2に対するライト処理は、最後に
リードまたはライトによるアクセス処理を行ったセクタ
に近い位置にある空きセクタに対して行うものとする。
ここで空きセクタというのは、前述したディスク2の初
期化処理以降未だライトされていないセクタや、論理セ
クタアドレスXのデータがライトされたが、その後で他
の物理セクタアドレスに論理セクタアドレスXの新たな
データがライトされたため、ライトされたデータが不要
のものとなったフリービットマップ5で管理されている
セクタのことを言う。
【0026】最後にリードまたはライトによりアクセス
処理したセクタを判別できるように、リードまたはライ
トによるアクセス処理を行う度に、ディスクドライバプ
ログラム7は、そのアクセス処理したセクタの物理セク
タアドレスを最終アクセスセクタ位置保持レジスタ8に
設定し、次にライト処理が要求された時に備えるものと
する。
【0027】図3は図1に示すディスクドライバプログ
ラムのリード/ライト処理フローを示すフローチャート
である。オペレーティングシステム3からのI/O要求
待ちのディスクドライバプログラム7は、オペレーティ
ングシステム3からディスク2のセクタの論理セクタア
ドレスXに対してライト処理が要求されると(ステップ
S1,S2)、以下の処理を行う。
【0028】1.まず、ディスク2のセクタの論理セク
タアドレスXに以前書き込まれたデータは、ディスクド
ライバプログラム7にオペレーティングシステム3から
ディスク2の論理セクタアドレスXに対してライト処理
が要求されると、上書きされずに無効になる。このた
め、ディスクドライバプログラム7は、アドレスマップ
6からそのライト処理が要求される論理セクタアドレス
Xに対応する物理セクタアドレスを検索する(ステップ
S3)。ディスクドライバプログラム7は、アドレスマ
ップ6からそのライト処理が要求される論理セクタアド
レスXに対応する物理セクタアドレスを検索すると、そ
の検索した物理セクタアドレスに対応するフリービット
マップ5のエントリのビットを1にセットする(ステッ
プS4)。
【0029】2.次に、ディスクドライバプログラム7
は、フリービットマップ5から、最終アクセスセクタ位
置保持レジスタ8に設定された最後にアクセスしたセク
タの物理セクタアドレスの値に最も近い物理セクタアド
レスの空きセクタを検索する(ステップS5)。ディス
クドライバプログラム7は、フリービットマップ5から
検索した空きセクタの物理セクタアドレスのエントリの
ビットを0(使用中)にリセットする(ステップS
6)。更に、ディスクドライバプログラム7は、ライト
処理が要求されている論理セクタアドレスXに対応する
アドレスマップ6のエントリ中の物理セクタアドレスと
して、検索した空きセクタの物理セクタアドレスをセッ
トする(ステップS7)。
【0030】3.次に、ディスクドライバプログラム7
は、オペレーティングシステム3から転送されたデータ
を、書き込みが要求される論理セクタアドレス値Xと、
タイムスタンプ値保持レジスタ9が保持するタイムスタ
ンプ値Cとともに、検索したディスク2の空きセクタに
書き込む(ステップS8)。
【0031】4.次に、ディスクドライバプログラム7
は、データを書き込んだディスク2の空きセクタの物理
セクタアドレスを、最終アクセスセクタ位置保持レジス
タ8にセットした後、タイムスタンプ値保持レジスタ9
にC+1なる値をセットして、タイムスタンプ値をイン
クリメントする(ステップS9)。そして、ディスクド
ライバプログラム7は、オペレーティングシステム3に
ライト処理の完了を通知して(ステップS10)、ライ
ト処理を終了する。
【0032】オペレーティングシステム3からのI/O
要求待ちのディスクドライバプログラム7は、オペレー
ティングシステム3からディスク2のセクタの論理セク
タアドレスYに対してリード処理が要求されると(ステ
ップS1,S2)、以下の処理を行う。
【0033】1.ディスクドライバプログラム7は、オ
ペレーティングシステム7からディスク2のセクタの論
理セクタアドレスYに対してリード処理が要求されると
(ステップS2)、アドレスマップ6からリード処理が
要求される論理セクタアドレスYに対応する物理セクタ
アドレスを検索する(ステップS11)。
【0034】2.ディスクドライバプログラム7は、そ
の検索した物理セクタアドレスに対応するディスク2の
物理セクタからデータを読み取り(ステップS12)、
読み取ったデータをオペレーティングシステム3に転送
する(ステップS13)。ディスクドライバプログラム
7は、リード処理を行ったセクタの物理セクタアドレス
を最終アクセスセクタ位置保持レジスタ8にセットして
(ステップS14)、リード処理を終了する。
【0035】情報処理装置1のオペレーティングが終了
して、情報処理装置1の電源が切られると、メモリ上の
データが全て失われる。このため、フリービットマップ
5、アドレスマップ6、最終アクセスセクタ位置保持レ
ジスタ8、タイムスタンプ値保持レジスタ9の記憶内容
が失われる。そこで、情報処理装置1の電源が入れられ
た時、オペレーションを開始する前に、ディスク2に登
録されている全データ内容を全て読み出して、それらの
情報を再構成する必要がある。ディスクドライバプログ
ラム7は、ディスク2から読み出されたデータ内容を再
構成するために、以下の処理を行う。この処理を図4に
示すフローチャートを用いて説明する。図4は図1に示
すディスクドライバプログラムの再構成処理フローを示
すフローチャートである。
【0036】1.ディスクドライバプログラム7は、ア
ドレスマップ6のタイムスタンプフィールドのタイムス
タンプ値を全て0に初期化し、また、フリービットマッ
プ5の各エントリのビットも全て1にセットする。ディ
スクドライバプログラム7は、最終アクセスセクタ位置
保持レジスタ8の値を0に初期化し、タイムスタンプ値
保持レジスタ9の値も0に初期化する(ステップS2
1)。
【0037】2.ディスクドライバプログラム7は、デ
ィスク2の物理セクタアドレス0〜m−1までの各セク
タのセクタ内容を順次読み出していき、以降の処理を各
セクタについて行う(ステップS22)。
【0038】3.ディスクドライバプログラム7は、デ
ィスク2の物理セクタアドレス0〜m−1までの各セク
タに書き込まれたタイムスタンプ値と論理セクタアドレ
スを読み出す(図2参照)。ディスクドライバプログラ
ム7は、ディスク2のセクタから読み出したタイムスタ
ンプ値が1以上であるかを判断し、1以上であると判断
した場合(ステップS23)、そのセクタにはデータが
既に書き込まれており、有効なデータが書き込まれてい
る可能性がある。
【0039】そこで、ディスクドライバプログラム7
は、そのデータが既に書き込まれているセクタから読み
出した論理セクタアドレスに対応するアドレスマップ6
のエントリを検索し、検索したエントリ上のタイムスタ
ンプ値が0かを判断する(ステップS24)。ディスク
ドライバプログラム7は、ディスク2のセクタから読み
出したタイムスタンプ値が0であると判断した場合(ス
テップS23)、そのセクタにはデータが書き込まれて
いないので、ステップ30へ進む。
【0040】(イ)ディスクドライバプログラム7は、
検索したアドレスマップ6のエントリ上のタイムスタン
プ値が0であると判断した場合(ステップS24)、そ
の論理セクタアドレスに対応する物理セクタアドレスが
始めて検出されたことになるので、その物理セクタアド
レスとタイムスタンプ値をアドレスマップのエントリに
記録し(ステップS26)、物理セクタアドレスに対応
するフリービットマップのビットを0にリセットする
(ステップS27)。
【0041】(ロ)ディスクドライバプログラム7は、
検索したアドレスマップ6のエントリ上のタイムスタン
プ値が1以上であると判断した場合(ステップS2
4)、その論理セクタアドレスに対応する物理セクタア
ドレスが既に検出されていることになるので、その論理
セクタアドレスに対応するアドレスマップ6上のタイム
スタンプ値とディスク2のセクタから読み出したタイム
スタンプ値を比較する(ステップS25)。
【0042】ディスクドライバプログラム7は、ディス
ク2のセクタから読み出したタイムスタンプ値の方がア
ドレスマップ6上のタイムスタンプ値よりも大きいと判
断した場合(ステップS25)、ディスク2のタイムス
タンプ値がアドレスマップ6のタイムスタンプ値より後
に書き込まれた内容となるので、以前検出した物理セク
タを空きセクタにする。即ち、フリービットマップ5の
アドレスマップ6上の物理セクタアドレスで指定される
エントリのビットを1にセットする。
【0043】更に、ディスクドライバプログラム7は、
アドレスマップ6の物理セクタアドレスとタイムスタン
プ値をディスク2のセクタから読み出した値に変更する
(ステップS26)。ディスクドライバプログラム7
は、ディスク2のセクタから読み出したタイムスタンプ
値の方がアドレスマップ6上のタイムスタンプ値よりも
小さいと判断した場合(ステップS25)、読み出した
方が古いデータになるので、何も処理をせずにステップ
30へ進む。
【0044】(イ)または(ロ)の処理の後、ディスク
ドライバプログラム7は、ディスク2のセクタから読み
出したタイムスタンプ値とタイムスタンプ値保持レジス
タ8に保存されている値を比較し、ディスク2のセクタ
から読み出したタイムスタンプ値の方がタイムスタンプ
値保持レジスタ9の値よりも大きいと判断した場合(ス
テップS28)、タイムスタンプ値保持レジスタ9の値
をそのディスク2から読み出したタイムスタンプ値に更
新する(ステップS29)。
【0045】全セクタについて3の処理を終えた後、ス
テップS30において、ディスクドライバプログラム7
は、次の読み出し対象の物理セクタアドレスの物理セク
タが存在するかを判断し、存在すると判断した場合(ス
テップS30)、その存在したセクタの内容を読み出し
て(ステップS31)、ステップS23へ戻る。ディス
クドライバプログラム7は、次の読み出し対象の物理セ
クタが存在しないと判断した場合(ステップS30)、
処理を終了する。
【0046】このように、本実施の形態では、ディスク
ドライバプログラム7により、オペレーティングシステ
ム3からディスク2の論理セクタアドレスに対して書き
込み処理が要求された場合、アドレスマップ6からその
論理セクタアドレスに対応する物理セクタアドレスを検
索し、その検索した物理セクタアドレスに対応するフリ
ービットマップ5のエントリのビットをフリーに設定
し、ディスクドライバプログラム7により、フリービッ
トマップ5から最終アクセスセクタ位置保持レジスタ8
に設定された最後にアクセスしたセクタの物理セクタア
ドレスに最も近い物理セクタアドレスの空きセクタを検
索し、検索した空きセクタに対応するフリービットマッ
プの物理セクタアドレスのエントリのビットを使用中に
設定し、ディスクドライバプログラム7により、書き込
み処理が要求されている論理セクタアドレスに対応する
アドレスマップ6のエントリに検索した空きセクタの物
理セクタアドレスを設定し、ディスクドライバプログラ
ム7により、オペレーティングシステム3から転送され
たデータを、書き込み処理が要求される論理セクタアド
レスと、タイムスタンプ値保持レジスタ9が保持するタ
イムスタンプ値とともに、検索した空きセクタに書き込
み、ディスクドライバプログラム7により、データを書
き込んだディスク2の空きセクタの物理セクタアドレス
を最終アクセスセクタ位置保持レジスタ8に設定すると
ともに、タイムスタンプ値保持レジスタ9のタイムスタ
ンプ値をインクリメントするように構成している。この
ため、ディスク2のセクタにデータを書き込む際、最後
にアクセスしたセクタの最も近くの空きセクタについて
データを書き込むように構成したので、ディスク2に対
する書き込む処理を、現在のヘッド位置(最後にアクセ
スしたヘッド位置)に最も近い空きセクタに対して行う
ことができる。このため、データを書き込む際のシーク
処理時間を短縮することができるので、書き込み処理の
スループットを向上させることができる。
【0047】また、本実施の形態では、アドレスマップ
6の論理セクタ数に対応するオペレーティングシステム
に提供するセクタ数を、ディスク2が実際に保存するセ
クタ数よりも小さくなるように設定しているため、ディ
スク2に常に一定量の空きセクタを存在させることがで
きる。このため、ライト処理時に空きセクタを検索する
ときにより多くの空きセクタから最適なものを選択する
ことができる。例えば、オペレーティングシステム3が
見せかけのセクタ数nを全て使用している状態でも、使
用可能なセクタが(m−n)個存在し、ライト処理の際
に最も近い使用可能なセクタを効率よく検索することが
できる。
【0048】実施の形態2.実施の形態1では、シーク
処理を省略・短縮するために最も適した空きセクタ領域
を捜し出す時、最後にアクセスしたセクタの物理セクタ
アドレスに最も近い物理セクタアドレスを持つ空きセク
タを選択していた。本実施の形態では、物理セクタアド
レスの近さではなく、ディスク2の物理構造に応じた選
択方法を用いるものとする。本実施の形態は、実施の形
態1と同様な構成の情報処理装置を用いる。
【0049】図5は本発明に係る実施の形態2の情報処
理システムにおける最終アクセスセクタ位置保持レジス
タの構造を示す図である。まず、図5に示すように、最
終アクセスセクタ位置保持レジスタ11には、最後にア
クセスしたセクタの物理的構成を示すヘッド番号、シリ
ンダ番号、セクタ番号の対応関係(シリンダ番号:ヘッ
ド番号:セクタ番号)が保持される。ディスクI/Oの
際に指定する物理セクタ番号を物理的な位置に変更する
ためのアルゴリズムは、ディスク2の構造に依存する。
ディスク2のシリンダ番号、ヘッド番号、セクタ番号は
図6に示すように、一般的な式で得られるものとする。
【0050】次に、図7は本発明に係る実施の形態2の
情報処理システムにおけるフリービットマップの構造を
示す図である。フリービットマップ12には、セクタの
物理的構成を示すシリンダ番号、ヘッド番号、セクタ番
号の対応関係(シリンダ番号:ヘッド番号:セクタ番
号)、物理セクタアドレス及びビットが登録される。本
実施の形態の情報処理装置は、基本的な構成が実施の形
態1と同様であり、最終アクセスセクタ位置保持レジス
タ11及びフリービットマップ12に登録されるデータ
構造が異なる。
【0051】ディスクドライバプログラム7は、実施の
形態1と同様の処理を行うが、ライト処理の際に選択す
る空きセクタは、最終アクセスセクタと同一シリンダ番
号・同一ヘッド番号であるものを最優先とし、次に、同
一シリンダ番号であるものを優先する。それらの条件に
適する空きセクタが存在しない場合は、最もシリンダ番
号が近い空きセクタを優先するものとする。以下、具体
的に本実施の形態の処理フローをフローチャートを用い
て説明する。
【0052】図8、9は本発明に係る実施の形態2の情
報処理システムにおけるディスクドライバプログラムの
リード/ライト処理フローを示すフローチャートであ
る。オペレーティングシステム3からのI/O要求待ち
のディスクドライバプログラム7は、オペレーティング
システム3からディスク2のセクタの論理セクタアドレ
スXに対してライト処理が要求されると(ステップS4
1,S42)、以下の処理を行う。
【0053】1.まず、ディスク2のセクタの論理セク
タアドレスXに以前書き込まれたデータは、ディスクド
ライバプログラム7にオペレーティングシステム3から
ディスク2の論理セクタアドレスXに対してライト処理
が要求されると、上書きされずに無効になる。このた
め、ディスクドライバプログラム7は、アドレスマップ
6からそのライト処理が要求される論理セクタアドレス
Xに対応する物理セクタアドレスを検索する(ステップ
S43)。ディスクドライバプログラム7は、アドレス
マップ6からそのライト処理が要求される論理セクタア
ドレスXに対応する物理セクタアドレスを検索すると、
その検索した物理セクタアドレスに対応するフリービッ
トマップ5のエントリのビットを1にセットする(ステ
ップS44)。
【0054】2.次に、ディスクドライバプログラム7
は、フリービットマップ5から、最終アクセスセクタ位
置保持レジスタ8に設定された最後にアクセスしたセク
タの物理的構成に基づいて空きセクタを検索する(ステ
ップS45〜47)。まず、ディスクドライバプログラ
ム7は、フリービットマップ5から、最終アクセスセク
タ位置保持レジスタ11に設定された最後にアクセスし
たセクタのシリンダ番号及びヘッド番号と同一のシリン
ダ番号及びヘッド番号の空きセクタを検索してあった場
合(ステップS45)、ステップ48へ進み、なかった
場合(ステップS45)、ステップ46へ進む。
【0055】ディスクドライバプログラム7は、最終ア
クセスセクタ位置保持レジスタ11と同一のシリンダ番
号及びヘッド番号の空きセクタを検索した時、フリービ
ットマップ6から、最終アクセスセクタ位置保持レジス
タ11に設定された最後にアクセスしたセクタのシリン
ダ番号と同一のシリンダ番号の空きセクタを検索する
(ステップS46)。ディスクドライバプログラム7
は、検索してあった場合(ステップS46)、ステップ
S48へ進み、検索してなかった場合(ステップS4
6)、ステップS47へ進む。
【0056】ディスクドライバプログラム7は、最終ア
クセスセクタ位置保持レジスタ11と同一のシリンダ番
号の空きセクタを検索した時、フリービットマップ6か
ら、最終アクセスセクタ位置保持レジスタ12に設定さ
れた最後にアクセスしたセクタのシリンダ番号に最も近
いシリンダ番号の空きセクタを検索する(ステップS4
7)。ディスクドライバプログラム7は、検索してあっ
た場合(ステップS47)、ステップS48へ進み、検
索してなかった場合(ステップS47)、ステップS4
5へ戻る。
【0057】ディスクドライバプログラム7は、前述の
ように、フリービットマップ6から最終アクセスセクタ
位置保持レジスタ11に設定された最後にアクセスした
セクタの物理構成に基づいて空きセクタを検索した場合
(ステップS45〜47)、フリービットマップ5から
検索した空きセクタの物理セクタアドレスのエントリの
ビットを0(使用中)にリセットする(ステップS4
8)。更に、ディスクドライバプログラム7は、ライト
処理が要求されている論理セクタアドレスXに対応する
アドレスマップ6のエントリ中の物理セクタアドレスと
して、検索した空きセクタの物理セクタアドレスをセッ
トする(ステップS49)。
【0058】3.次に、ディスクドライバプログラム7
は、オペレーティングシステム3から転送されたデータ
を、書き込みが要求される論理セクタアドレス値Xと、
タイムスタンプ値保持レジスタ9が保持するタイムスタ
ンプ値Cとともに、検索したディスク2の空きセクタに
書き込む(ステップS50)。
【0059】4.次に、ディスクドライバプログラム7
は、データを書き込んだディスク2の空きセクタの物理
的構成のシリンダ番号、ヘッド番号及びセクタ番号の対
応関係を、最終アクセスセクタ位置保持レジスタ8にセ
ットした後、タイムスタンプ値保持レジスタ9にC+1
なる値をセットして、タイムスタンプ値をインクリメン
トする(ステップS51)。そして、ディスクドライバ
プログラム7は、オペレーティングシステム3にライト
処理の完了を通知して(ステップS52)、ライト処理
を終了する。
【0060】オペレーティングシステム3からのI/O
要求待ちのディスクドライバプログラム7は、オペレー
ティングシステム3からディスク2のセクタの論理セク
タアドレスYに対してリード処理が要求されると(ステ
ップS41,S42)、以下の処理を行う。
【0061】1.ディスクドライバプログラム7は、オ
ペレーティングシステム7からディスク2のセクタの論
理セクタアドレスYに対してリード処理が要求されると
(ステップS41,42)、アドレスマップ6からリー
ド処理が要求される論理セクタアドレスYに対応する物
理セクタアドレスを検索する(ステップS53)。
【0062】2.ディスクドライバプログラム7は、そ
の検索した物理セクタアドレスに対応するディスク2の
物理セクタからデータを読み取り(ステップS54)、
読み取ったデータをオペレーティングシステム3に転送
する(ステップS55)。ディスクドライバプログラム
7は、リード処理を行ったセクタの物理セクタアドレス
を最終アクセスセクタ位置保持レジスタ8にセットして
(ステップS56)、リード処理を終了する。なお、デ
ィスクドライバプログラム7の再構成処理は実施の形態
1と同様であるので、説明を省略する。
【0063】このように、本実施の形態では、ディスク
ドライバプログラム7により、オペレーティングシステ
ム3からディスク2の論理セクタアドレスに対して書き
込み処理が要求された場合、アドレスマップ6からその
論理セクタアドレスに対応する物理セクタアドレスを検
索し、その検索した物理セクタアドレスに対応するフリ
ービットマップ5のエントリのビットをフリーに設定
し、ディスクドライバプログラム7により、フリービッ
トマップ5から最終アクセスセクタ位置保持レジスタ8
に設定された最後にアクセスしたセクタのシリンダ番
号、ヘッド番号及びセクタ番号による物理的構成に基づ
いて空きセクタを検索し、検索した空きセクタに対応す
るフリービットマップの物理セクタアドレスのエントリ
のビットを使用中に設定し、ディスクドライバプログラ
ム7により、書き込み処理が要求されている論理セクタ
アドレスに対応するアドレスマップ6のエントリに検索
した空きセクタの物理セクタアドレスを設定し、ディス
クドライバプログラム7により、オペレーティングシス
テム3から転送されたデータを、書き込み処理が要求さ
れる論理セクタアドレスと、タイムスタンプ値保持レジ
スタ9が保持するタイムスタンプ値とともに、検索した
空きセクタに書き込み、ディスクドライバプログラム7
により、データを書き込んだディスク2の空きセクタの
物理的構成を最終アクセスセクタ位置保持レジスタ8に
設定するとともに、タイムスタンプ値保持レジスタ9の
タイムスタンプ値をインクリメントするように構成して
いる。このため、ディスク2のセクタにデータを書き込
む際、最後にアクセスしたセクタのシリンダ番号、ヘッ
ド番号及びセクタ番号による物理的構成に基づいて検索
した空きセクタについてデータを書き込むように構成し
たので、ディスク2に対する書き込む処理を、実施の形
態1の論理セクタアドレスで行う場合よりも効率よく行
うことができる。このため、実施の形態1の場合より
も、データを書き込む際のシーク処理時間をより短縮す
ることができるので、書き込み処理のスループットをさ
らに向上させることができる。
【0064】実施の形態3.本実施の形態は、実施の形
態2に適用させることができるので、図1を用いて説明
する。記録密度が高いディスク2には、ディスク2の外
周上のトラックと内周上のトラックでは、セクタ数が異
なる場合がある。これは、ディスク2の性質上、外周の
方がトラック長が大きいので、同じ線密度でも記録でき
るデータ量が大きくなるためである。この時、ディスク
2の角速度が一定であれば、外周上のセクタのリード・
ライトの方が、内周上のセクタでの処理よりも高速にな
る。本実施の形態では、ディスクドライバプログラム7
により、実施の形態2における最後にアクセスしたセク
タの物理的構成に基づいて空きセクタを検索する際、最
後にアクセスしたセクタからの距離が等しいセクタが最
後にアクセスしたセクタから見て、外周トラック上と内
周トラック上の両方に検索された場合、外周トラック上
のセクタを選択する。この外周トラック上のセクタの選
択は、実施の形態2において、セクタの物理的構成のシ
リンダ番号の差から選択する。
【0065】このように、本実施の形態では、ディスク
ドライバプログラム7により、最後にアクセスしたセク
タの物理的構成に基づいて空きセクタを検索する際、最
後にアクセスしたセクタからの距離が等しいセクタが最
後にアクセスしたセクタから見て、外周トラック上と内
周トラック上の両方に検索された場合、外周トラック上
のセクタを選択するように構成したため、外周上のセク
タの方がより高い性能でリード・ライトできるというデ
ィスク2の特性を考慮して空きセクタを選択することが
できる。このため、実施の形態2の場合よりも、より高
いスループットでライト処理できる機会を増やすことが
できる。
【0066】実施の形態4.実施の形態3におけるリー
ド処理・ライト処理に含まれているシーク処理を、オペ
レーティングシステムの要求に先んじて行う。即ち、リ
ード処理・ライト処理が行われる毎に、最終アクセスセ
クタ位置保持レジスタ8の値(直前にI/O処理を行っ
たセクタのアドレスになる)に最も近い空きセクタを検
索し、オペレーティングシステム3からのI/O要求を
待たずにそのセクタへのシーク処理を行うものとする。
以下、具体的にフローチャートを用いて説明する。
【0067】図10、11は本発明に係る実施の形態4
の情報処理システムにおけるディスクドライバプログラ
ムのリード/ライト処理フローを示すフローチャートで
ある。オペレーティングシステム3からのI/O要求待
ちのディスクドライバプログラム7は、オペレーティン
グシステム3からディスク2のセクタの論理セクタアド
レスXに対してライト処理が要求されると(ステップS
61,S62)、以下の処理を行う。
【0068】1.まず、ディスク2のセクタの論理セク
タアドレスXに以前書き込まれたデータは、ディスクド
ライバプログラム7にオペレーティングシステム3から
ディスク2の論理セクタアドレスXに対してライト処理
が要求されると、上書きされずに無効になる。このた
め、ディスクドライバプログラム7は、アドレスマップ
6からそのライト処理が要求される論理セクタアドレス
Xに対応する物理セクタアドレスを検索する(ステップ
S63)。ディスクドライバプログラム7は、アドレス
マップ6からそのライト処理が要求される論理セクタア
ドレスXに対応する物理セクタアドレスを検索すると、
その検索した物理セクタアドレスに対応するフリービッ
トマップ5のエントリのビットを1にセットする(ステ
ップS64)。
【0069】2.次に、ディスクドライバプログラム7
は、最終アクセスセクタ位置保持レジスタ8に設定され
た最後にアクセスしたセクタの物理セクタアドレスに該
当するフリービットマップ5のエントリのビットが1
(フリー)であるかを判断し、ビットが1であると判断
した場合(ステップS65)、そのフリービットマップ
5が示すビットが1だった空きセクタをライト処理に用
い(ステップS66)、ステップ68へ進む。ディスク
ドライバプログラム7は、フリービットマップ5のエン
トリのビットが0(使用中)であると判断した場合(ス
テップS65)、フリービットマップ5から最終アクセ
スセクタ位置保持レジスタ8の物理セクタアドレスに最
も近い物理セクタアドレスの空きセクタを検索して(ス
テップS67)、ステップS68へ進む。
【0070】ディスクドライバプログラム7は、フリー
ビットマップ5から検索した空きセクタの物理セクタア
ドレスのエントリのビットを0(使用中)にリセットす
る(ステップS68)。更に、ディスクドライバプログ
ラム7は、ライト処理が要求されている論理セクタアド
レスXに対応するアドレスマップ6のエントリ中の物理
セクタアドレスとして、検索した空きセクタの物理セク
タアドレスをセットする(ステップS69)。
【0071】3.次に、ディスクドライバプログラム7
は、オペレーティングシステム3から転送されたデータ
を、書き込みが要求される論理セクタアドレス値Xと、
タイムスタンプ値保持レジスタ9が保持するタイムスタ
ンプ値Cとともに、検索したディスク2の空きセクタに
書き込む(ステップS70)。
【0072】4.次に、ディスクドライバプログラム7
は、タイムスタンプ値保持レジスタ9にC+1なる値を
セットして、タイムスタンプ値をインクリメントした後
(ステップS71)、オペレーティングシステム3にラ
イト処理の完了を通知する(ステップS72)。ディス
クドライバプログラム7は、フリービットマップ5から
ライト処理を行ったセクタの物理セクタアドレスに最も
近い物理セクタアドレスの空きセクタを検索する(ステ
ップS73)。
【0073】ディスクドライバプログラム7は、検索し
た空きセクタにシーク処理を行った後、そのシーク処理
を行った空きセクタの物理セクタアドレスを最終アクセ
スセクタ位置保持レジスタ8に設定して(ステップS7
4)、ライト処理を終了し、ステップS61へ戻る。
【0074】オペレーティングシステム3からのI/O
要求待ちのディスクドライバプログラム7は、オペレー
ティングシステム3からディスク2のセクタの論理セク
タアドレスYに対してリード処理が要求されると(ステ
ップS61,S62)、以下の処理を行う。
【0075】1.ディスクドライバプログラム7は、オ
ペレーティングシステム7からディスク2のセクタの論
理セクタアドレスYに対してリード処理が要求されると
(ステップS62)、アドレスマップ6からリード処理
が要求される論理セクタアドレスYに対応する物理セク
タアドレスを検索する(ステップS75)。
【0076】2.ディスクドライバプログラム7は、そ
の検索した物理セクタアドレスに対応するディスク2の
物理セクタからデータを読み取り(ステップS76)、
読み取ったデータをオペレーティングシステム3に転送
する(ステップS77)。ディスクドライバプログラム
7は、フリービットマップ5からリード処理を行ったセ
クタの物理セクタアドレスに最も近い物理セクタアドレ
スの空きセクタを検索する(ステップS78)。
【0077】ディスクドライバプログラム7は、検索し
た空きセクタにシーク処理を行った後、そのシーク処理
を行った空きセクタの物理セクタアドレスを最終アクセ
スセクタ位置保持レジスタ8に設定して(ステップS7
9)、リード処理を終了し、ステップS61へ戻る。な
お、ディスクドライバプログラム7の再構成処理は実施
の形態1と同様であるので、説明を省略する。
【0078】このように、本実施の形態では、ディスク
ドライバプログラム7により、検索した空きセクタに書
き込み処理を行った後、フリービットマップ5から書き
込み処理を行ったセクタの物理セクタアドレスに最も近
い物理セクタアドレスの空きセクタを検索し、検索した
空きセクタにシーク処理を行い、このシーク処理を行っ
た空きセクタの物理セクタアドレスを最終アクセスセク
タ位置保持レジスタに設定するように構成したため、オ
ペレーティングシステム3から書き込み要求が来る前に
予め、検索した空きセクタにシーク処理を行うことがで
きる。このため、オペレーティングシステム3から書き
込み要求が来た時に、検索した空きセクタにシーク処理
を行うことなく、効率よく書き込みを行うことができる
ので、書き込み処理のレスポンス/スループットを向上
させることができる。
【0079】実施の形態5.図12は本発明に係る実施
の形態5の情報処理システムの構成を示すブロック図で
ある。図12において、図1と同一符号は同一又は相当
部分を示し、21はオペレーティングシステム3とディ
スクドライバプログラム7間に設けられ、オペレーティ
ングシステム3からのディスクI/O要求をキューイン
グするキューバッファである。このキューバッファ21
は、ディスク2のI/O処理中にオペレーティングシス
テム3から投入された新たなディスクI/O要求を保持
する。ディスクドライバプログラム7は、先行する処理
が終了した際に、キューバッファ21中の処理要求に対
して次の処理を行い、ディスク2に投入するI/O処理
を決定する。
【0080】ディスク2は、物理的に連続するセクタに
ライト処理を行う時、後続するセクタの処理では回転待
ち時間やシーク時間が生じないため、より高速に処理を
行えるという特性を持っている。そこで、ディスクドラ
イバプログラム7は、キューバッファ21の先頭がライ
ト処理の場合、キューバッファ21に含まれるライト処
理の数を調べ、フリービットマップ5の中から最終アク
セスセクタ位置保持レジスタ8の近傍を優先して、ライ
ト要求数以上に連続した空き領域を検出する。
【0081】ディスクドライバプログラム7は、キュー
バッファ21のライト要求数以上に連続した空き領域が
存在すれば、該当領域の先頭空きセクタをキューバッフ
ァ21中の先頭ライト要求のために用い、以降キューバ
ッファ21に存在するライト要求を、リード要求を飛び
越えて、連続してディスク2に投入するものとする。デ
ィスクドライバプログラム7は、キューバッファ21の
ライト要求数以上に連続した空き領域がない場合、前述
で示した実施の形態4と同様な処理を持って、キューバ
ッファ21中の先頭ライト処理を行う。以下、具体的に
フローチャートを用いて説明する。
【0082】図13〜図15は本発明に係る実施の形態
5の情報処理システムにおけるディスクドライバプログ
ラムのリード/ライト処理フローを示すフローチャート
である。ディスクドライバプログラム7は、キューバッ
ファ21に処理要求が蓄積されているか否かを判断し、
処理要求が蓄積されていると判断した場合(ステップS
81)、キューバッファ21に処理要求が到着するまで
処理を停止する(ステップS82)。
【0083】ディスクドライバプログラム7は、キュー
バッファ21に処理要求が蓄積されていると判断した場
合(ステップS81)、キューバッファ21にライト処
理が含まれているかを検索し、そのライト処理の個数を
nとし(ステップS83)、キューバッファ21に蓄積
されたライト処理の個数nが2以上か否かを判断する
(ステップS84)。ディスクドライバプログラム7
は、キューバッファ21のライト処理の個数nが2以上
でない(2よりも小さい)と判断した場合(ステップS
84)、キューバッファ21の先頭要求について後述す
る図14、15の処理を行い、キューから抜け出す(ス
テップS85)。
【0084】ディスクドライバプログラム7は、キュー
バッファ21のライト処理の個数nが2以上であると判
断した場合(ステップS84)、フリービットマップ5
の中から最終アクセスセクタ位置保持レジスタ8の値の
近傍を優先して、キューバッファ21のライト要求数n
が2以上の連続した空きセクタを検索する(ステップS
86)。ディスクドライバプログラム7は、フリービッ
トマップ5の中から該当する連続した空きセクタを検出
しない場合(ステップS87)、キューバッファ21の
先頭要求について後述する図14、15の処理を行い、
キューから抜け出す(ステップS88)。
【0085】ディスクドライバプログラム7は、フリー
ビットマップ5の中から該当する連続した空きセクタを
検出した場合(ステップS87)、最終アクセスセクタ
位置保持レジスタ8の値を検出した空きセクタの物理セ
クタアドレスに置き換える(ステップS89)。ディス
クドライバプログラム7は、キューバッファ21のライ
ト要求数nが0より大きいか否かを判断し、大きいと判
断した場合(ステップS90)、キューバッファ21中
のライト処理要求について後述する図14、15の処理
を行う。
【0086】その後、ディスクドライバプログラム7
は、キューから抜け出し、キューバッファ21のライト
要求数nから1引いて(ステップS92)、その値nが
0より大きいと判断した場合(ステップS90)、ステ
ップS91へ進み、0より小さいと判断した場合(ステ
ップS90)、ステップS81へ戻る。
【0087】ここで、ステップS85、S88、S91
におけるキューバッファ21の処理要求の処理について
説明する。ディスクドライバプログラム7は、ステップ
S85、S88、S91において、キューバッファ21
の先頭要求がライト処理で有るか否かを判断し、ライト
処理であると判断すると(ステップS101)、以下の
処理を行う。 1.まず、ディスク2のセクタの論理セクタアドレスX
に以前書き込まれたデータは、キューバッファ21の先
頭要求がライト処理であると、上書きされずに無効にな
る。このため、ディスクドライバプログラム7は、アド
レスマップ6からそのライト処理が要求される論理セク
タアドレスXに対応する物理セクタアドレスを検索する
(ステップS102)。ディスクドライバプログラム7
は、アドレスマップ6からそのライト処理が要求される
論理セクタアドレスXに対応する物理セクタアドレスを
検索すると、その検索した物理セクタアドレスに対応す
るフリービットマップ5のエントリのビットを1にセッ
トする(ステップS103)。
【0088】2.次に、ディスクドライバプログラム7
は、最終アクセスセクタ位置保持レジスタ8に設定され
た最後にアクセスしたセクタの物理セクタアドレスに該
当するフリービットマップ5のエントリのビットが1
(フリー)であるかを判断し、ビットが1であると判断
した場合(ステップS104)、そのフリービットマッ
プ5が示すビットが1だった空きセクタをライト処理に
用い(ステップS105)、ステップ107へ進む。デ
ィスクドライバプログラム7は、フリービットマップ5
のエントリのビットが0(使用中)であると判断した場
合(ステップS104)、フリービットマップ5から最
終アクセスセクタ位置保持レジスタ8の物理セクタアド
レスに最も近い物理セクタアドレスの空きセクタを検索
して(ステップS106)、ステップS107へ進む。
【0089】ディスクドライバプログラム7は、フリー
ビットマップ5から検索した空きセクタの物理セクタア
ドレスのエントリのビットを0(使用中)にリセットす
る(ステップS107)。更に、ディスクドライバプロ
グラム7は、ライト処理が要求されている論理セクタア
ドレスXに対応するアドレスマップ6のエントリ中の物
理セクタアドレスとして、検索した空きセクタの物理セ
クタアドレスをセットする(ステップS108)。
【0090】3.次に、ディスクドライバプログラム7
は、オペレーティングシステム3から転送されたデータ
を、書き込みが要求される論理セクタアドレス値Xと、
タイムスタンプ値保持レジスタ9が保持するタイムスタ
ンプ値Cとともに、検索したディスク2の空きセクタに
書き込む(ステップS109)。
【0091】4.次に、ディスクドライバプログラム7
は、タイムスタンプ値保持レジスタ9にC+1なる値を
セットして、タイムスタンプ値をインクリメントした後
(ステップS110)、オペレーティングシステム3に
ライト処理の完了を通知する(ステップS111)。デ
ィスクドライバプログラム7は、フリービットマップ5
からライト処理を行ったセクタの物理セクタアドレスに
最も近い物理セクタアドレスの空きセクタを検索する
(ステップS112)。
【0092】ディスクドライバプログラム7は、検索し
た空きセクタにシーク処理を行った後、そのシーク処理
を行った空きセクタの物理セクタアドレスを最終アクセ
スセクタ位置保持レジスタ8に設定して(ステップS1
13)、ライト処理を終了し、ステップS81へ戻る。
【0093】ディスクドライバプログラム7は、ステッ
プS85、S88、S89において、キューバッファ2
1の先頭要求がリード処理であると判断すると(ステッ
プS101)、以下の処理を行う。 1.ディスクドライバプログラム7は、オペレーティン
グシステム7からディスク2のセクタの論理セクタアド
レスYに対してリード処理が要求されると(ステップS
62)、アドレスマップ6からリード処理が要求される
論理セクタアドレスYに対応する物理セクタアドレスを
検索する(ステップS114)。
【0094】2.ディスクドライバプログラム7は、そ
の検索した物理セクタアドレスに対応するディスク2の
物理セクタからデータを読み取り(ステップS11
5)、読み取ったデータをオペレーティングシステム3
に転送する(ステップS116)。ディスクドライバプ
ログラム7は、フリービットマップ5からリード処理を
行ったセクタの物理セクタアドレスに最も近い物理セク
タアドレスの空きセクタを検索する(ステップS11
7)。
【0095】ディスクドライバプログラム7は、検索し
た空きセクタにシーク処理を行った後、そのシーク処理
を行った空きセクタの物理セクタアドレスを最終アクセ
スセクタ位置保持レジスタ8に設定して(ステップS1
18)、リード処理を終了し、ステップS81へ戻る。
なお、ディスクドライバプログラム7の再構成処理は実
施の形態1と同様であるので、説明を省略する。
【0096】このように、本実施の形態では、オペレー
ティングシステム3とディスクドライバプログラム7間
にオペレーティングシステム3からの書き込み/読み込
み処理要求を蓄積するキューバッファ21を設け、ディ
スクドライバプログラム7が、キューバッファ21に書
き込み処理要求が2つ以上蓄積されていると判断した場
合、フリービットマップ5から最終アクセスセクタ位置
保持レシスタ8に設定された物理セクタアドレスに最も
近く、かつ書き込み処理要求数に応じた連続した空きセ
クタを検索し、ディスクドライバプログラム7が、検索
した連続空きセクタに対してキューバッファ21のライ
ト処理要求の処理をまとめて行うように構成したため、
ライト処理のスループットを向上させることができる。
【0097】実施の形態6.図16は本発明に係る実施
の形態6の情報処理システムにおけるディスクの空きセ
クタの配置を示す図である。図16において、図12と
同一符号は同一又は相当部分を示し、31はディスク2
のトラックであり、32は各トラック31に配置された
空きセクタである。
【0098】実施の形態5においては、ディスク2上の
空きセクタが適度に分散されている方が、最終アクセス
セクタがどの位置であろうと、最近傍の空きセクタへの
距離が平均的に近くなるため、ライト処理のスループッ
トが向上する。そこで、本実施の形態において、ディス
クドライバプログラム7は、キューバッファ21にリー
ド/ライト要求が蓄積されていない時、その空き時間を
利用して、図16に示すように、ディスク2の各トラッ
ク31に分散するように空きセクタ32を再配置処理す
る。ここでは、最大(m−n)個ある空きセクタをトラ
ック数=シリンダ数Nc×ヘッド数Nhで割った個数の
空きセクタを、各トラック31に均一に割り当てる。
【0099】このように、本実施の形態では、ディスク
ドライバプログラム7により、キューバッファ21にリ
ード/ライト要求が蓄積されていない時、ディスク2の
各トラックに分散するように空きセクタを再配置するよ
うに構成したため、ライト処理する際のシーク距離を小
さくすることができる。このため、シーク時間を短縮す
ることができるので、ライト処理のレスポンス/スルー
プットを向上させることができる。
【0100】実施の形態7.図17,18は本発明に係
る実施の形態7の情報処理システムにおけるディスクの
空きセクタの配置を示す図である。図17,18におい
て、図16と同一符号は同一又は相当部分を示す。本実
施の形態では、実施の形態6において、ディスク2の各
トラック31に分散させる空きセクタ32の理想的な配
置を、計算機システムの管理者が次の中から選択できる
ように、ディスクドライバプログラム7の再配値プログ
ラムを変更する。ディスクドライバプログラム7は、計
算機システムの管理者から選択されるライト処理の要求
頻度に基づいて空きセクタ32の再配置処理を行う。以
下、具体的に説明する。
【0101】1.ディスクドライバプログラム7は、デ
ィスクI/Oにおいて、管理者からライト処理の割合が
高い旨の情報が設定されると、図17に示すように、デ
ィスク2の外周トラック31上に空きセクタ32を集中
させて配置するように再配置処理を行う。これにより、
ディスク2中に連続する空きセクタ32の領域を次の2
と3の場合よりも高くすることができるので、ライト処
理の性能を向上させることができる。
【0102】2.ディスクドライバプログラム7は、デ
ィスクI/Oにおいて、ライト処理の割合が比較的高い
旨の情報が設定されると、図18に示すように、各シリ
ンダグループ33(同一シリンダ番号を持つセクタの集
合)について一箇所、空きセクタ32を分配して配置す
るように再配置処理を行う。これにより、ディスク2中
に連続する空きセクタ32を次の3の場合よりも高くす
ることができるので、ライト処理の性能を向上させるこ
とができる。
【0103】3.ディスクドライバプログラム7は、前
述した1と2の場合よりもライト処理の割合が低い旨の
情報が設定されると、図16に示したように、各トラッ
ク31について一箇所の割合で空きセクタ32を分配し
て配置するように再配置処理を行う。これにより、各ト
ラック31について空きセクタ32が存在するので、リ
ード処理後のライト処理の時にシークを不要にすること
ができ、ライト処理の性能を向上させることができる。
【0104】このように、本実施の形態では、ディスク
ドライバプログラム7により、ライト処理の要求頻度に
基づいて空きセクタ32の再配置処理を行うように構成
したため、ライト処理の要求頻度に応じてディスク2の
各トラック31の最適な領域に空きセクタ32を配置す
ることができる。このため、ライト処理の性能を向上さ
せることができる。
【0105】実施の形態8.図19は本発明に係る実施
の形態8の情報処理システムのディスクの構成を示す図
である。図19において、図19において、41はディ
スクであり、42はディスク41の一定の保存領域であ
り、43〜46は保存領域42内に各々確保されたアド
レスマップ保存領域、フリービットマップ保存領域、タ
イムスタンプ値保存領域、有効フラグビット保存領域で
ある。
【0106】実施の形態1〜7では、情報処理装置1及
びディスク2の電源断の度に情報処理装置1のメモリ上
に構築したアドレスマップ6とフリービットマップ5,
12、タイムスタンプ値保持レジスタ9の内容が失われ
るため、実施の形態1で説明した再構築処理を行う必要
があった。そこで、本実施の形態では、この再構築処理
の時間を省略するために、図19に示すように、ディス
ク41上の一定の保存領域42を、アドレスマップ保存
領域43、フリービットマップ保存領域44、タイムス
タンプ値保存領域45及び有効フラグビット保存領域4
6のために確保する。
【0107】ディスクドライバプログラム7は、実施の
形態1で説明したようにディスク41の初期化が行われ
る時、この初期化処理の処理に加え、ディスク41に書
き込まれている内容は無効であると、ディスク41上の
有効フラグビットに0(無効)をセットする。
【0108】ディスクドライバプログラム7は、オペレ
ーティングシステム3がその動作を停止する時、情報処
理装置1のアドレスマップ6とフリービットマップ5,
12とタイムスタンプ値保持レジスタ9の内容を、ディ
スク41上の保存領域42内のアドレスマップ保存領域
44とフリービットマップ保存領域44とタイムスタン
プ値保存領域45に各々保存する。その後、ディスクド
ライバプログラム7は、ディスク41上の有効フラグビ
ット1を1(有効)にセットしてからオペレーティング
システム3を停止する。以降、I/O処理は、電源断ま
でオペレーティングシステム3が停止しているため、デ
ィスク41に対して行われない。
【0109】ディスクドライバプログラム7は、ディス
ク41及び情報処理装置1の電源が投入され、オペレー
ティングシステム3が動作を開始する時、以下の処理を
行う。1.ディスクドライバプログラム7は、最初にデ
ィスク41上の有効フラグビットが1(有効)か0(無
効)であるかをチェックし、有効フラグビットが1にセ
ットされている時、ディスク41のアドレスマップ保存
領域43とフリービットマップ保存領域44とタイムス
タンプ値保存領域45から、アドレスマップとフリービ
ットマップとタイムスタンプ値の情報を読み出して、情
報処理装置1のメモリ上のアドレスマップ6とフリービ
ットマップ5,12とタイムスタンプ値保持レジスタ9
にセットする。
【0110】ディスクドライバプログラム7は、有効フ
ラグビット1が0(無効)の場合、実施の形態1で説明
したように再構成処理を行う。2.次に、ディスクドラ
イバプログラム7は、ディスク41上の有効フラグビッ
ト1を0(無効)にリセットする。これ以降、ディスク
ドライバプログラム7は、オペレーティングシステム3
の要求に従って、ディスク41のI/O処理を行う。
【0111】このように、本実施の形態では、ディスク
ドライバプログラム7により、オペレーティングシステ
ム3が動作を停止する時、情報処理装置1のアドレスマ
ップ6とフリービットマップ5,12とタイムスタンプ
値保持レジスタ9の情報をディスク41に保存してお
き、ディスクドライバプログラム7により、オペレーテ
ィングシステム3が動作を開始した時、ディスク41か
らアドレスマップとフリービットマップとタイムスタン
プ値の情報を読み出して情報処理装置1のアドレスマッ
プ6とフリービットマップ5,12とタイムスタンプ値
保持レジスタ9に設定するように構成したため、オペレ
ーティングシステム3停止時に情報処理装置1のメモリ
上に構築した情報が失われても、停止時に予めその情報
がディスク41に保存され、オペレーティングシステム
3起動時にディスク41の情報が読み出されて情報処理
装置1のメモリ上に自動的に設定される。このため、オ
ペレーティングシステム3起動時に必要な処理を大幅に
簡略化することができるので、起動時間を短縮すること
ができる。
【0112】実施の形態9.本実施の形態では、実施の
形態1における論理アドレス・物理アドレス変換機構
を、通常のディスク2のライト処理高速化のための補助
装置として用いる。ある種のアプリケーションプログラ
ム4では、システムがいつ異常終了してもアプリケーシ
ョンプログラム4がライトしたデータが失われないよう
に同期書き込みを行うものがある。
【0113】同期書き込みとは、アプリケーションプロ
グラム4がライト処理を要求した後、オペレーティング
システム3がそれを受け付けるだけでなく、実際にディ
スク2に書き込まれるまでアプリケーションプログラム
4の実行を停止するような処理要求である。
【0114】そこで、本実施の形態では、実施の形態1
に準じるディスク機構を補助的に設け、バッファディス
クとして用いる。ライト処理を行う場合は、バッファデ
ィスクにまず書き込みを行い、バッファディスクへの書
き込みが完了した時点でアプリケーションプログラム4
の実行を再開する。その処理に並行してメモリ上のバッ
ファから最適化した順序で通常の主ディスク2に書き込
み処理を行い、主ディスク2への書き込み処理が完了し
た時点で、主ディスク2の書き込んだ内容に該当するバ
ッファディスク上の対応する領域を開放する。
【0115】図20は本発明に係る実施の形態9の情報
処理システムの構成を示すブロック図である。図20に
おいて、図1と同一符号は同一又は相当部分を示す。デ
ィスクドライバプログラム7は、ライト処理に関するオ
ペレーティングシステム3の振舞いを一部変更するた
め、オペレーティングシステム3の内部に構成される。
51はバッファメモリであり、52はバッファディスク
である。フリービットマップ5とバッファメモリ51
は、バッファディスク52の総セクタ数と同じ数のエン
トリが存在する。
【0116】アドレスマップ6のエントリ数は、主ディ
スク2の総セクタ数と等しい。オペレーティングシステ
ム3は、主ディスク2の総数n個のセクタに対して、I
/Oを行う。ディスクドライバプログラム7は、バッフ
ァディスク52を用いて書き込むべきデータを電源断に
絶える形でバッファリングし、書き込み処理終了をより
早くアプリケーションプログラム4に伝える。
【0117】図21は図20に示すバッファディスク5
2のセクタの構造を示す図、図22は図20に示す主デ
ィスクのセクタの構造を示す図である。ディスクドライ
バプログラム7は、バッファディスク52及び主ディス
ク2を始めて使用する時、次の初期化処理を行ってから
バッファディスク52と主ディスク2を使用する。
【0118】ディスクドライバプログラム7は、バッフ
ァディスク52の各セクタのタイムスタンプフィールド
に0を設定し、更に、保存領域53内の有効フラグビッ
ト保存領域54の有効フラグビットに1(有効)を設定
し、タイムスタンプ値保存領域55のタイムスタンプ値
に1を設定する。初期化処理以降、以下の手順に従って
I/O処理並びにシステムの起動時の処理を行う。
【0119】図23は図20に示す情報処理システムの
電源投入直後の処理フローを示すフローチャートであ
る。計算機システムに電源が投入され、オペレーション
を始動する時、以下の初期化処理を行う。 1.ディスクドライバプログラム7は、フリービットマ
ップ5のビットに全て1(フリー)をセットする(ステ
ップS121)。 2.ディスクドライバプログラム7は、アドレスマップ
6の物理セクタアドレスフィールドに全てセットし、ア
ドレスマップ6のタイムスタンプフィールドに全て0を
セットする(ステップS121)。3.ディスクドライ
バプログラム7は、タイムスタンプ値保持レジスタ9に
バッファディスク52から読み込んだタイムスタンプ値
をセットする(ステップS122)。
【0120】更に、ディスクドライバプログラム7は、
バッファディスク52の保存領域53の有効フラグビッ
ト保存領域54から正常終了フラグ値を読み出す(ステ
ップS123)。ディスクドライバプログラム7は、バ
ッファディスク52の有効フラグビット保存領域54か
ら読み出した正常終了フラグ値が1(有効)であると判
断した場合(ステップS124)、前回正常に終了して
いることを示しているので、即ち、後述する図24,2
5に示すI/O処理受付状態となる(ステップS12
5)。ディスクドライバプログラム7は、バッファディ
スク52の有効フラグビット保存領域54から読み出し
た正常終了フラグ値が0(無効)であると判断した場合
(ステップS124)、前回異常終了しているを示して
いるので、後述する図27,28に示す復旧処理を行
う。
【0121】図24,25は図20に示す情報処理シス
テムのライト処理/リード処理フローを示すフローチャ
ートである。I/O処理受付状態において、アプリケー
ションプログラム4から要求されたライト処理は、次の
ように処理される。 1.オペレーティングシステム3からのI/O要求待ち
のディスクドライバプログラム7は、オペレーティング
システム3からライト処理が要求されると(ステップS
132)、フリービットマップ5を検索し、エントリの
ビットに1(フリー)が設定されている空きセクタが有
るかを検索する(ステップS133)。
【0122】ディスクドライバプログラム7は、空きセ
クタがない場合、後述する処理により空きセクタが生成
されるまで待つ(ステップS134)。ディスクドライ
バプログラム7は、フリービットマップ5から最終アク
セスセクタ位置保持レジスタ8の値に最も近いビットに
1が設定されているエントリの空きセクタをを検索する
(ステップS135)。ディスクドライバプログラム7
は、空きセクタが検索された場合、フリービットマップ
5の該当するエントリのビットを0(使用中)にセット
する(ステップS136)。
【0123】2.ディスクドライバプログラム7は、探
し出した空きセクタに対応するバッファメモリ51にオ
ペレーティングシステム3からのデータ内容を書き込む
(ステップS137)。 3.ディスクドライバプログラム7は、ライト処理を要
求している論理セクタアドレスに対応するエントリの物
理セクタアドレスをアドレスマップ6から検索し、その
検索したエントリの物理セクタアドレスフィールドに、
フリービットマップ5の空きセクタの物理セクタアドレ
スをセットし、タイムスタンプ値保持レジスタ9の値を
その検索したアドレスマップ6のエントリのタイムスタ
ンプフィールドにセットする(ステップS138)。
【0124】4.ディスクドライバプログラム7は、フ
リービットマップ5の検索したエントリの空きセクタに
対応するバッファディスク52の空きセクタに、ライト
処理要求されている論理セクタアドレスとオペレーティ
ングシステム3からのデータと、現在のタイムスタンプ
値保持レジスタ9の値を書き込む(ステップS13
9)。 5.ディスクドライバプログラム7は、タイムスタンプ
値保持レジスタ9の値を1インクリメントする(ステッ
プS140)。 6.ディスクドライバプログラム7は、ライト処理が完
了した旨をオペレーティングシステム3に通知して(ス
テップS141)、ライト処理を終了する。
【0125】図26は図20に示すディスクドライバプ
ログラムのライト処理と並行して行う処理フローを示す
フローチャートである。以上のライト処理と並行して、
ディスクドライバプログラム7は、以下の処理を行う。 1.ディスクドライバプログラム7は、オペレーティン
グシステム3からのライト要求をバッファディスク52
に記憶するために、一定時間の経過を待つ(ステップS
151)。 2.ディスクドライバプログラム7は、アドレスマップ
6のエントリを論理セクタアドレスの0から昇順に調べ
ていき(ステップS152)、アドレスマップ6のエン
トリ中の論理セクタアドレスのエントリについて、タイ
ムスタンプ値として0より大きな数字がセットされてい
るか否かを判断し、0より大きな数字がセットされてい
ると判断した場合(ステップS153)、次の処理を行
う。
【0126】ディスクドライバプログラム7は、そのタ
イムスタンプ値して大きな数字がセットされていたエン
トリの論理セクタアドレスフィールドの値をAとし、物
理セクタアドレスフィールドの値をXとし、物理セクタ
アドレスXに対応するバッファメモリ51の内容を、主
ディスク2の論理セクタアドレスAに書き込む(ステッ
プS154)。
【0127】更に、ディスクドライバプログラム7は、
フリービットマップ5の物理セクタアドレスXのエント
リのビットを0にセットし、アドレスマップ6の論理セ
クタアドレスAのエントリのタイムスタンプ値を0にセ
ットする(ステップS155)。ディスクドライバプロ
グラム7は、論理セクタアドレスiに1を加えて(ステ
ップS156)、その値がアドレスマップ6の総エント
リ数−1よりも大きいか否かを判断し、大きかった場合
(ステップS157)、ステップS151へ戻り、小さ
かった場合(ステップS157)、ステップS153へ
戻る。ディスクドライバプログラム7は、このバッファ
メモリ51の内容を主ディスク2へ書き込む処理を、ア
ドレスマップ6の全エントリについて論理セクタアドレ
スの0から順番に行う。
【0128】I/O処理受付状態において、アプリケー
ションプログラム4から要求されたリード処理は、次の
ように処理される。以下、図24のフローチャートを用
いて説明する。 1.ディスクドライバプログラム7は、リードが要求さ
れているセクタの論理セクタアドレスをXとした場合
は、論理セクタアドレス=Xなるエントリをアドレスマ
ップ6から選択する。
【0129】2.ディスクドライバプログラム7は、ア
ドレスマップ6の論理セクタアドレスXに該当するエン
トリのタイムスタンプ値が0で有るか否かを判断し、タ
イムスタンプ値が0であると判断した場合(ステップS
142)、バッファメモリ51には該当するデータが保
持されておらず、主ディスク2に該当するデータが書き
込まれているので、該当するセクタのリード処理を主デ
ィスク2に要求する(ステップS143)。処理の終了
後、ディスクドライバプログラム7は、リード処理を要
求したデータを主ディスク2から読み出し、オペレーテ
ィングシステム3を経由して(ステップSS144)、
プリケーションプログラム4に渡す。
【0130】3.ディスクドライバプログラム7は、ア
ドレスマップ6の論理セクタアドレスXに該当するエン
トリのタイムスタンプ値が1以上である場合(ステップ
S142)、主ディスク2に該当するデータが未だ書き
込まれていないが、バッファメモリ51に該当するデー
タが保持されているので、アドレスマップ6のリード処
理が要求されている物理セクタアドレスフィールドの値
に対応するバッファメモリ51上のデータをオペレティ
ーングシステム3を経由してアプリケーションプログラ
ム4に渡す(ステップS145)。
【0131】ディスクドライバプログラム7は、オペレ
ーティングシステム3が停止する時、図26で説明した
バッファメモリ51の内容を主ディスク2に書き込む処
理を行い、主ディスク2に書き込むべきデータを全て書
き込む。更に、ディスクドライバプログラム7は、正常
終了した旨を示すため、バッファディスク52に残って
いるデータはないので、バッファディスク52上のタイ
ムスタンプ値保存領域55の正常終了フラグを1(有
効)にセットし、タイムスタンプ値保持レジスタ9の値
をバッファディスク52のタイムスタンプ値保存領域5
5に書き込む。
【0132】図27,28は図20に示すディスクドラ
イバプログラムの電源投入直後の復旧処理フローを示す
フローチャートである。ディスクドライバプログラム7
は、システムが起動し、バッファディスク52上の正常
終了フラグを確認した時にその値が0(無効)であった
場合、以下の処理により復旧を行う。 1.ディスクドライバプログラム7は、バッファディス
ク52の全セクタのセクタ内容を先頭(物理セクタアド
レス0)から読み出し(ステップS161)、アドレス
マップ6の再構成を行う。ディスクドライバプログラム
7は、バッファディスク52から読み出したタイムスタ
ンプ値が1以上か否かを判断し、1以上の場合(ステッ
プS162)、ステップS163へ進み、1以上でない
場合(ステップS162)、ステップS169へ進む。
【0133】ディスクドライバプログラム7は、バッフ
ァディスク52から読み出したタイムスタンプ値が1以
上で、かつそれに対応するアドレスマップ5中のエント
リのタイムスタンプ値が0か否かを判断し、対応するア
ドレスマップ6中のエントリのタイムスタンプ値が0で
あると判断した場合(ステップS163)、主ディスク
2から読み出したタイムスタンプ値とそのセクタの物理
セクタアドレスをアドレスマップ6の該当するエントリ
にセットする(ステップS164)。
【0134】ディスクドライバプログラム7は、対応す
るアドレスマップ6中のエントリのタイムスタンプ値が
1以上であると判断した場合(ステップS163)、対
応するアドレスマップ6のタイムスタンプ値と主ディス
ク2から読み出したタイムスタンプ値を比較し、アドレ
スマップ6のタイムスタンプ値が読み出したタイムスタ
ンプ値よりも小さいと判断した場合(ステップS16
5)、ステップS164へ進み、読み出したタイムスタ
ンプ値がアドレスマップ6のタイムスタンプ値よりも大
きいと判断した場合(ステップS165)、ステップS
169へ進む。
【0135】ディスクドライバプログラム7は、ステッ
プS164でタイムスタンプ値と物理セクタアドレスを
アドレスマップ6にセットした後、主ディスク2から読
み出したセクタの物理セクタアドレスに対応するフリー
ビットマップ5のエントリのビットを0(使用中)にセ
ットする(ステップS165)。ディスクドライバプロ
グラム7は、対象にしている物理セクタアドレス+1n
なるセクタが主ディスクに有るか否かを判断し、セクタ
が主ディスク2に有る場合(ステップS166)、その
セクタを主ディスク2から読み出してステップS162
に戻る。ディスクドライバプログラム7は、対象にして
いる物理セクタアドレス+1nなるセクタが主ディスク
2にないと判断した場合(ステップS166)、ステッ
プS169へ進む。
【0136】2.上記処理が全てのセクタについて行わ
れた後、ディスクドライバプログラム7は、アドレスマ
ップ6の全エントリを、論理セクタアドレスの0から昇
順に調べていき(ステップS169)、対応するアドレ
スマップ6のエントリのタイムスタンプ値が1以上であ
ると判断した場合(ステップS170)、バッファディ
スク52から主ディスク2に書き戻していないデータが
あるので、その論理セクタアドレスフィールドの示すセ
クタのデータを、バッファディスク52のセクタXから
主ディスク2のセクタiに書き戻す(ステップS17
1)。
【0137】ディスクドライバプログラム7は、主ディ
スク2のセクタiに1を加えて(ステップS172)、
その値がアドレスマップ6のエントリ数−1よりも大き
いか否かを判断し、大きいと判断した場合(ステップS
173)、ステップS174へ進み、小さいと判断した
場合(ステップS173)、ステップS170へ戻る。
このバッファディスク52の内容を主ディスク2に書き
込む処理は、アドレスマップ6の全てのエントリについ
て行う。
【0138】3.ディスクドライバプログラム7は、ア
ドレスマップ6の全てのエントリについて、最大のタイ
ムスタンプ値を検索し、その+1をタイムスタンプ値保
持レジスタ9にセットする(ステップS174)。 4.ディスクドライバプログラム7は、フリービットマ
ップ5のビットに全て1(フリー)をセットし(ステッ
プS174)、アドレスマップ6の物理セクタアドレス
フィールドに全て0をセットし、アドレスマップ6のタ
イムスタンプフィールドに全て0をセットして(ステッ
プS175)、復旧処理を終了する。 5.ディスクドライバプログラム7は、オペレーティン
グシステム3からのI/O処理待ち状態に入る。
【0139】このように、本実施の形態では、情報処理
装置1にバッファメモリ51を設け、ディスクドライバ
プログラム7により、ライト処理要求されるオペレーテ
ィングシステム3からの情報をバッファメモリ51に書
き込んでおき、ディスクドライバプログラム7により、
ディスク2にライト処理要求される情報が全て書き込ま
れていないと判断した場合、バッファメモリ51から情
報を読み出してディスク2に書き込むように構成するこ
とにより、ディスク2にライト処理要求される情報が全
て書き込まれていなくても、予め書き込んでおいたバッ
ファメモリ51から情報を読み出してディスク2に書き
込むことができる。
【0140】本実施の形態では、情報処理装置1に接続
されるバッファディスク52を設け、ディスクドライバ
プログラム7により、ライト処理要求されるオペレーテ
ィングシステム3からの情報をバッファディスク52に
書き込んでおき、ディスクドライバプログラム7によ
り、オペレーティングシステム3が動作を開始した時、
バッファディスク52から情報を読み出してディスク2
に書き込むように構成することにより、オペレーティン
グシステム3が停止してディスク2にライト処理要求さ
れるデータが全て書き込まれていなくても、オペレーテ
ィングシステム3を起動させた時、予め書き込んでおい
たバッファディスク52から情報を読み出してディスク
2に書き込むことができる。
【0141】本実施の形態では、データの書き込みを保
証する同期書き込みにおいて、シーク処理が不要か、あ
るいは短時間で済むバッファディスク52にまず書き込
むように構成したため、アプリケーションプログラム4
が停止を求められる時間を短縮することができる。ま
た、バッファメモリ51から主ディスク51にデータを
まとめて書き移す際には、より多くのI/O要求につい
てライト処理をまとめて行うことができるので、I/O
要求のソート処理等、シーク距離を短縮するための手法
を有効に働かすことができ、主ディスク2の書き込みス
ループットを向上させることができる。
【0142】なお、実施の形態9においては、実施の形
態7と同様の空きセクタの配置に近付けるべく、バッフ
ァディスク52に対する処理がない時に、その空き時間
を利用して空きセクタ再配置ルーチンを動作させるよう
に構成してもよい。。即ち、主ディスク2中の空きセク
タをより外周トラック上に再配置して構成してもよい。
この時、バッファディスク52への処理要求は、前述し
た復旧処理時以外全てライト処理であるため、I/O処
理が高速になる外周トラック上の連続する物理セクタア
ドレスに空きセクタを集中させ、連続してライト処理を
行うことができる。このため、ライト性能を向上させる
ことができる。
【0143】
【発明の効果】請求項1記載の発明によれば、ディスク
のセクタにデータを書き込む際、最後にアクセスしたセ
クタの最も近くの空きセクタについてデータを書き込む
ように構成することにより、ディスクに対する書き込む
処理を、現在のヘッド位置(最後にアクセスしたヘッド
位置)に最も近い空きセクタに対して行うことができる
ため、データを書き込む際のシーク処理時間を短縮する
ことができ、書き込み処理のスループットを向上させる
ことができるという効果がある。
【0144】請求項2記載の発明によれば、請求項1記
載の発明において、アドレスマップの論理セクタ数に対
応するオペレーティングシステムに提供するセクタ数
を、ディスクが実際に保存するセクタ数よりも小さくな
るように設定することにより、ディスクに常に一定量の
空きセクタを存在させることができるため、書き込み処
理時に空きセクタを検索するときにより多くの空きセク
タから最適なものを選択することができるという効果が
ある。
【0145】請求項3記載の発明では、ディスクのセク
タにデータを書き込む際、最後にアクセスしたセクタの
シリンダ番号、ヘッド番号及びセクタ番号による物理的
構成に基づいて検索した空きセクタについてデータを書
き込むように構成することにより、ディスクに対する書
き込む処理を、請求項1の論理セクタアドレスで行う場
合よりも効率よく行うことができるため、請求項1の場
合よりも、データを書き込む際のシーク処理時間をより
短縮することができ、書き込み処理のスループットをさ
らに向上させることができるという効果がある。
【0146】請求項4記載の発明によれば、請求項3記
載の発明において、ディスクドライバプログラムによ
り、最後にアクセスしたセクタの物理的構成に基づいて
空きセクタを検索する際、最後にアクセスしたセクタか
らの距離が等しいセクタが最後にアクセスしたセクタか
ら見て、外周トラック上と内周トラック上の両方に検索
された場合、外周トラック上のセクタを選択するように
構成することにより、外周上のセクタの方がより高い性
能でリード・ライトできるというディスクの特性を考慮
して空きセクタを選択することができるため、請求項3
の場合よりも、より高いスループットでライト処理でき
る機会を増やすことができるという効果がある。
【0147】請求項5記載の発明によれば、請求項1〜
4の何れかに記載の発明において、ディスクドライバプ
ログラムにより、検索した空きセクタに書き込み処理を
行った後、フリービットマップから書き込み処理を行っ
たセクタの物理セクタアドレスに最も近い物理セクタア
ドレスの空きセクタを検索し、検索した空きセクタにシ
ーク処理を行い、このシーク処理を行った空きセクタの
物理セクタアドレスを最終アクセスセクタ位置保持レジ
スタに設定するように構成することにより、オペレーテ
ィングシステムから書き込み要求が来る前に予め、検索
した空きセクタにシーク処理を行うことができるため、
オペレーティングシステムから書き込み要求が来た時
に、検索した空きセクタにシーク処理を行うことなく、
効率よく書き込みを行うことができ、書き込み処理のレ
スポンス/スループットを向上させることができるとい
う効果がある。
【0148】請求項6記載の発明によれば、請求項1〜
5の何れかに記載の発明において、オペレーティングシ
ステムとディスクドライバプログラム間にオペレーティ
ングシステムからの書き込み/読み込み処理要求を蓄積
するキューバッファを設け、ディスクドライバプログラ
ムが、キューバッファに書き込み処理要求が2つ以上蓄
積されていると判断した場合、フリービットマップから
最終アクセスセクタ位置保持レシスタに設定された物理
セクタアドレスに最も近く、かつ書き込み処理要求数に
応じた連続した空きセクタを検索し、ディスクドライバ
プログラム7が、検索した連続空きセクタに対してキュ
ーバッファのライト処理要求の処理をまとめて行うよう
に構成することにより、ライト処理のスループットを向
上させることができるという効果がある。
【0149】請求項7記載の発明によれば、請求項6に
記載の発明において、ディスクドライバプログラムによ
り、キューバッファにリード/ライト要求が蓄積されて
いない時、ディスク型記憶装置の各トラックに分散する
ように空きセクタを再配置するように構成することによ
り、ライト処理する際のシーク距離を小さくすることが
できるので、シーク時間を短縮することができ、ライト
処理のレスポンス/スループットを向上させることがで
きるという効果がある。
【0150】請求項8記載の発明によれば、請求項7記
載の発明において、ディスクドライバプログラムによ
り、ライト処理の要求頻度に基づいて空きセクタの再配
置処理を行うように構成することにより、ライト処理の
要求頻度に応じて各トラックの最適な領域に空きセクタ
を配置することができるので、ライト処理の性能を向上
させることができるという効果がある。
【0151】請求項9記載の発明によれば、請求項1〜
8の何れかに記載の発明において、ディスクドライバプ
ログラムにより、オペレーティングシステムが動作を停
止する時、情報処理装置のアドレスマップとフリービッ
トマップとタイムスタンプ値保持レジスタの情報をディ
スク型記憶装置に保存しておき、ディスクドライバプロ
グラムにより、オペレーティングシステムが動作を開始
した時、ディスク型記憶装置からアドレスマップとフリ
ービットマップとタイムスタンプ値の情報を読み出して
情報処理装置のアドレスマップとフリービットマップと
タイムスタンプ値保持レジスタに設定するように構成す
ることにより、オペレーティングシステム停止時に情報
処理装置のメモリ上に構築した情報が失われても、停止
時に予めその情報がディスク型記憶装置に保存され、オ
ペレーティングシステム起動時にディスク型記憶装置の
情報が読み出されて情報処理装置のメモリ上に自動的に
設定されるため、オペレーティングシステム起動時に必
要な処理を大幅に簡略化することができ、起動時間を短
縮することができるという効果がある。
【0152】請求項10記載の発明によれば、請求項1
〜9の何れかに記載の発明において、情報処理装置にバ
ッファメモリを設け、ディスクドライバプログラムによ
り、ライト処理要求されるオペレーティングシステムか
らの情報をバッファメモリに書き込んでおき、ディスク
ドライバプログラムにより、ディスク型記憶装置にライ
ト処理要求される情報が全て書き込まれていないと判断
した場合、バッファメモリから情報を読み出してディス
ク型記憶装置に書き込むように構成することにより、デ
ィスク型記憶装置にライト処理要求される情報が全て書
き込まれていなくても、予め書き込んでおいたバッファ
メモリから情報を読み出してディスク型記憶装置に書き
込むことができる。
【0153】請求項11記載の発明によれば、請求項1
〜10の何れかに記載の発明において、情報処理装置に
接続されるバッファディスク型記憶装置を設け、ディス
クドライバプログラムにより、ライト処理要求されるオ
ペレーティングシステムからの情報をバッファディスク
型記憶装置に書き込んでおき、ディスクドライバプログ
ラムにより、オペレーティングシステムが動作を開始し
た時、バッファディスク型記憶装置から情報を読み出し
てディスク型記憶装置に書き込むように構成することに
より、オペレーティングシステムが停止してディスク型
記憶装置にライト処理要求されるデータが全て書き込ま
れていなくても、オペレーティングシステムを起動させ
た時、予め書き込んでおいたバッファディスク型記憶装
置から情報を読み出してディスク型記憶装置に書き込む
ことができる。
【図面の簡単な説明】
【図1】 本発明に係る実施の形態1の情報処理システ
ムの構成を示すブロック図である。
【図2】 図1に示すディスクの1セクタのフォーマッ
トを示す図である。
【図3】 図1に示すディスクドライバプログラムのリ
ード/ライト処理フローを示すフローチャートである。
【図4】 図1に示すディスクドライバプログラムの再
構成処理フローを示すフローチャートである。
【図5】 本発明に係る実施の形態2の情報処理システ
ムにおける最終アクセスセクタ位置保持レジスタの構造
を示す図である。
【図6】 本発明に係る実施の形態2の情報処理システ
ムにおけるディスクのシリンダ番号、ヘッド番号及びセ
クタ番号の一般式を示す図である。
【図7】 本発明に係る実施の形態2の情報処理システ
ムにおけるフリービットマップの構造を示す図である。
【図8】 本発明に係る実施の形態2の情報処理システ
ムにおけるディスクドライバプログラムのリード/ライ
ト処理フローを示すフローチャートである。
【図9】 本発明に係る実施の形態2の情報処理システ
ムにおけるディスクドライバプログラムのリード/ライ
ト処理フローを示すフローチャートである。
【図10】 本発明に係る実施の形態4の情報処理シス
テムにおけるディスクドライバプログラムのリード/ラ
イト処理フローを示すフローチャートである。
【図11】 本発明に係る実施の形態4の情報処理シス
テムにおけるディスクドライバプログラムのリード/ラ
イト処理フローを示すフローチャートである。
【図12】 本発明に係る実施の形態5の情報処理シス
テムの構成を示すブロック図である。
【図13】 本発明に係る実施の形態5の情報処理シス
テムにおけるディスクドライバプログラムのリード/ラ
イト処理フローを示すフローチャートである。
【図14】 本発明に係る実施の形態5の情報処理シス
テムにおけるディスクドライバプログラムのリード/ラ
イト処理フローを示すフローチャートである。
【図15】 本発明に係る実施の形態5の情報処理シス
テムにおけるディスクドライバプログラムのリード/ラ
イト処理フローを示すフローチャートである。
【図16】 本発明に係る実施の形態6の情報処理シス
テムにおけるディスクの空きセクタの配置を示す図であ
る。
【図17】 本発明に係る実施の形態7の情報処理シス
テムにおけるディスクの空きセクタの配置を示す図であ
る。
【図18】 本発明に係る実施の形態7の情報処理シス
テムにおけるディスクの空きセクタの配置を示す図であ
る。
【図19】 本発明に係る実施の形態8の情報処理シス
テムにおけるディスクの構成を示す図である。
【図20】 本発明に係る実施の形態9の情報処理シス
テムの構成を示すブロック図である。
【図21】 図20に示すバッファディスクのセクタの
構造を示す図である。
【図22】 図20に示す主ディスクのセクタの構造を
示す図である。
【図23】 図20に示す情報処理システムの電源投入
直後の処理フローを示すフローチャートである。
【図24】 図20に示す情報処理システムのライト/
リード処理フローを示すフローチャートである。
【図25】 図20に示す情報処理システムのライト/
リード処理フローを示すフローチャートである。
【図26】 図20に示すディスクドライバプログラム
のライト処理と並行して行う処理フローを示すフローチ
ャートである。
【図27】 図20に示すディスクドライバプログラム
の電源投入直後の復旧処理フローを示すフローチャート
である。
【図28】 図20に示すディスクドライバプログラム
の電源投入直後の復旧処理フローを示すフローチャート
である。
【符号の説明】
1 情報処理装置、2,41 ディスク型記憶装置、3
オペレーティングシステム、4 アプリケーションプ
ログラム、5,12 フリービットマップ、6アドレス
マップ、7 ディスクドライバプログラム、8,11
最終アクセスセクタ位置保持レジスタ、9 タイムスタ
ンプ値保持レジスタ、21 キューバッファ、31 ト
ラック、32 空きセクタ、33 シリンダグループ、
42,53 保存領域、43 アドレスマップ保存領
域、44 フリービットマップ保存領域、45,55
タイムスタンプ値保存領域、46,54 有効フラグビ
ット保存領域、51 バッファメモリ、52 バッファ
ディスク。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−216593(JP,A) 特開 平7−295760(JP,A) 特開 平4−7630(JP,A) 特開 平2−165220(JP,A) 特開 昭61−160133(JP,A) 特開 平8−161229(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】 アプリケーションプログラムと、アプリ
    ケーションプログラムとやり取りするオペレーティング
    システムと、オペレーティングシステムとやり取りする
    ディスクドライバプログラムと、ディスクドライバプロ
    グラムにより論理セクタアドレス、物理セクタアドレス
    及びタイムスタンプ値が設定されるアドレスマップと、
    ディスクドライバプログラムにより物理セクタアドレス
    及びビットが設定されるフリービットマップと、ディス
    クドライバプログラムにより最後にアクセスしたセクタ
    の物理セクタアドレスが設定される最終アクセスセクタ
    位置保持レジスタと、ディスクドライバプログラムによ
    りタイムスタンプ値が設定されるタイムスタンプ値保持
    レジスタとを有する情報処理装置と、情報処理装置に接
    続されたディスク型記憶装置とから構成された情報処理
    システムにおいて、 ディスクドライバプログラムは、オペレーティングシス
    テムからディスク型記憶装置の論理セクタアドレスに対
    して書き込み処理が要求された場合、アドレスマップか
    らその論理セクタアドレスに対応する物理セクタアドレ
    スを検索し、その検索した物理セクタアドレスに対応す
    るフリービットマップのエントリのビットをフリーに設
    定し、 ディスクドライバプログラムは、フリービットマップか
    ら最終アクセスセクタ位置保持レジスタに設定された最
    後にアクセスしたセクタの物理セクタアドレスに最も近
    い物理セクタアドレスの空きセクタを検索し、検索した
    空きセクタに対応するフリービットマップの物理セクタ
    アドレスのエントリのビットを使用中に設定し、 ディスクドライバプログラムは、書き込み処理が要求さ
    れている論理セクタアドレスに対応するアドレスマップ
    のエントリに検索した空きセクタの物理セクタアドレス
    を設定し、 ディスクドライバプログラムは、オペレーティングシス
    テムから転送されたデータを、書き込み処理が要求され
    る論理セクタアドレスと、タイムスタンプ値保持レジス
    タが保持するタイムスタンプ値とともに、検索した空き
    セクタに書き込み、 ディスクドライバプログラムは、データを書き込んだデ
    ィスク型記憶装置の空きセクタの物理セクタアドレスを
    最終アクセスセクタ位置保持レジスタに設定するととも
    に、タイムスタンプ値保持レジスタのタイムスタンプ値
    をインクリメントすることを特徴とする情報処理システ
    ム。
  2. 【請求項2】 請求項1に記載の情報処理システムにお
    いて、アドレスマップの論理セクタアドレス数に対応す
    るオペレーティングシステムに提供するセクタ数は、デ
    ィスク型記憶装置が実際に保存するセクタ数よりも小さ
    くなるように設定することを特徴とする情報処理システ
    ム。
  3. 【請求項3】 アプリケーションプログラムと、アプリ
    ケーションプログラムとやり取りするオペレーティング
    システムと、オペレーティングシステムとやり取りする
    ディスクドライバプログラムと、ディスクドライバプロ
    グラムにより論理セクタアドレス、物理セクタアドレス
    及びタイムスタンプ値が設定されるアドレスマップと、
    ディスクドライバプログラムによりセクタの物理的構
    成、物理セクタアドレス及びビットが設定されるフリー
    ビットマップと、ディスクドライバプログラムにより最
    後にアクセスしたセクタの物理的構成が設定される最終
    アクセスセクタ位置保持レジスタと、ディスクドライバ
    プログラムによりタイムスタンプ値が設定されるタイム
    スタンプ値保持レジスタとを有する情報処理装置と、情
    報処理装置に接続されたディスク型記憶装置とから構成
    された情報処理システムにおいて、 ディスクドライバプログラムは、オペレーティングシス
    テムからディスク型記憶装置の論理セクタアドレスに対
    して書き込み処理が要求された場合、アドレスマップか
    らその論理セクタアドレスに対応する物理セクタアドレ
    スを検索し、その検索した物理セクタアドレスに対応す
    るフリービットマップのエントリのビットをフリーに設
    定し、 ディスクドライバプログラムは、フリービットマップか
    ら最終アクセスセクタ位置保持レジスタに設定された最
    後にアクセスしたセクタの物理的構成に基づいて空きセ
    クタを検索し、検索した空きセクタに対応するフリービ
    ットマップの物理セクタアドレスのエントリのビットを
    使用中に設定し、 ディスクドライバプログラムは、書き込み処理が要求さ
    れている論理セクタアドレスに対応するアドレスマップ
    のエントリに検索した空きセクタの物理セクタアドレス
    を設定し、 ディスクドライバプログラムは、オペレーティングシス
    テムから転送されたデータを、書き込み処理が要求され
    る論理セクタアドレスと、タイムスタンプ値保持レジス
    タが保持するタイムスタンプ値とともに、検索した空き
    セクタに書き込み、 ディスクドライバプログラムは、データを書き込んだデ
    ィスク型記憶装置の空きセクタの物理セクタアドレスを
    最終アクセスセクタ位置保持レジスタに設定するととも
    に、タイムスタンプ値保持レジスタのタイムスタンプ値
    をインクリメントすることを特徴とする情報処理装置。
  4. 【請求項4】 請求項3に記載の情報処理システムにお
    いて、ディスクドライバプログラムは、最後にアクセス
    したセクタの物理的構成に基づいて空きセクタを検索す
    る際、最後にアクセスしたセクタからの距離が等しいセ
    クタが最後にアクセスしたセクタから見て、外周トラッ
    ク上と内周トラック上の両方に検索された場合、外周ト
    ラック上のセクタを選択することを特徴とする情報処理
    システム。
  5. 【請求項5】 請求項1〜4の何れかに記載の情報処理
    システムにおいて、ディスクドライバプログラムは、検
    索した空きセクタに書き込み処理を行った後、フリービ
    ットマップから書き込み処理を行ったセクタの物理セク
    タアドレスに最も近い物理セクタアドレスの空きセクタ
    を検索し、 ディスクドライバプログラムは、検索した空きセクタに
    シーク処理を行うとともに、シーク処理を行った空きセ
    クタの物理セクタアドレスを最終アクセスセクタ位置保
    持レジスタに設定することを特徴とする情報処理システ
    ム。
  6. 【請求項6】 請求項1〜5の何れかに記載の情報処理
    システムにおいて、オペレーティングシステムとディス
    クドライバプログラム間にオペレーティングシステムか
    らの書き込み/読み込み処理要求を蓄積するキューバッ
    ファを設け、 ディスクドライバプログラムは、キューバッファに書き
    込み処理要求が2つ以上蓄積されていると判断した場
    合、フリービットマップから最終アクセスセクタ位置保
    持レシスタに設定された物理セクタアドレスに最も近
    く、かつ書き込み処理要求数に応じた連続した空きセク
    タを検索し、 ディスクドライバプログラムは、検索した連続空きセク
    タに対してキューバッファに蓄積された書き込み処理要
    求の処理をまとめて行うことを特徴とする情報処理シス
    テム。
  7. 【請求項7】 請求項6に記載の情報処理システムにお
    いて、ディスクドライバプログラムは、キューバッファ
    に書き込み/読み込み要求が蓄積されていない時、ディ
    スク型記憶装置の各トラックに分散するように空きセク
    タを再配置処理することを特徴とする情報処理システ
    ム。
  8. 【請求項8】 請求項7に記載の情報処理システムにお
    いて、ディスクドライバプログラムは、書き込み処理の
    要求頻度に基づいて空きセクタの再配置処理を行うこと
    を特徴とする情報処理システム。
  9. 【請求項9】 請求項1〜8の何れかに記載の情報処理
    システムにおいて、ディスクドライバプログラムは、オ
    ペレーティングシステムが動作を停止する時、情報処理
    装置のアドレスマップとフリービットマップとタイムス
    タンプ値保持レジスタの情報をディスク型記憶装置に保
    存しておき、 ディスクドライバプログラムは、オペレーティングシス
    テムが動作を開始した時、ディスク型記憶装置からアド
    レスマップとフリービットマップとタイムスタンプ値の
    情報を読み出して情報処理装置のアドレスマップとフリ
    ービットマップとタイムスタンプ値保持レジスタに設定
    することを特徴とする情報処理システム。
  10. 【請求項10】 請求項1〜9の何れかに記載の情報処
    理システムにおいて、情報処理装置にバッファメモリを
    設け、ディスクドライバプログラムは、書き込み処理要
    求されるオペレーティングシステムからの情報をバッフ
    ァメモリに書き込んでおき、 ディスクドライバプログラムは、ディスク型記憶装置に
    書き込み処理要求される情報が全て書き込まれていない
    と判断した場合、バッファメモリから情報を読み出して
    ディスク型記憶装置に書き込むことを特徴とする情報処
    理システム。
  11. 【請求項11】 請求項1〜10の何れかに記載の情報
    処理システムにおいて、情報処理装置に接続されるバッ
    ファディスク型記憶装置を設け、ディスクドライバプロ
    グラムは、書き込み処理要求されるオペレーティングシ
    ステムからの情報をバッファディスク型記憶装置に書き
    込んでおき、 ディスクドライバプログラムは、オペレーティングシス
    テムが動作を開始した時、バッファディスク型記憶装置
    から情報を読み出してディスク型記憶装置に書き込むこ
    とを特徴とする情報処理システム。
JP9086763A 1997-04-04 1997-04-04 情報処理システム Expired - Fee Related JP3063669B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9086763A JP3063669B2 (ja) 1997-04-04 1997-04-04 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9086763A JP3063669B2 (ja) 1997-04-04 1997-04-04 情報処理システム

Publications (2)

Publication Number Publication Date
JPH10283120A JPH10283120A (ja) 1998-10-23
JP3063669B2 true JP3063669B2 (ja) 2000-07-12

Family

ID=13895795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9086763A Expired - Fee Related JP3063669B2 (ja) 1997-04-04 1997-04-04 情報処理システム

Country Status (1)

Country Link
JP (1) JP3063669B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101424782B1 (ko) 2007-07-19 2014-08-04 삼성전자주식회사 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법

Also Published As

Publication number Publication date
JPH10283120A (ja) 1998-10-23

Similar Documents

Publication Publication Date Title
US5461721A (en) System for transferring data between I/O devices and main or expanded storage under dynamic control of independent indirect address words (IDAWs)
US7117309B2 (en) Method of detecting sequential workloads to increase host read throughput
US6172906B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
US5963983A (en) Method and apparatus for dynamically creating conversion tables to access a semiconductor memory device
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US20090132621A1 (en) Selecting storage location for file storage based on storage longevity and speed
US20100312955A1 (en) Memory system and method of managing the same
JPS6143742B2 (ja)
JPS6238731B2 (ja)
WO2005124530A2 (en) Method for controlling memory card and method for controlling nonvolatile semiconductor memory
EP0574692A1 (en) Allocation of dasd for storing computer data
JPH05216593A (ja) 間接アクセス記憶装置
US5619696A (en) Program cache apparatus which associates the physical address of a physical page with both the logical address in a program cache space and the logical address in a process space
US20240152454A1 (en) Cache management method, solid state drive controller and solid state drive
US7487298B2 (en) Disk array device, method for controlling the disk array device and storage system
JP2002123424A (ja) コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法
KR20020016513A (ko) 메모리 저장 장치 관리 시스템 및 방법, 프로그램 저장 장치
JPH0744324A (ja) 外部記憶装置への入出力制御方式
JPH1063551A (ja) 情報処理装置
US20020015252A1 (en) Method and apparatus for a disc drive adaptive file system
JP3063669B2 (ja) 情報処理システム
US6513142B1 (en) System and method for detecting of unchanged parity data
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法
US6487632B1 (en) Emulation technique for variable-length disk system to access data in a fixed-length disk system

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080512

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090512

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100512

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees