JP2000357099A - Disk input/output method - Google Patents

Disk input/output method

Info

Publication number
JP2000357099A
JP2000357099A JP11167867A JP16786799A JP2000357099A JP 2000357099 A JP2000357099 A JP 2000357099A JP 11167867 A JP11167867 A JP 11167867A JP 16786799 A JP16786799 A JP 16786799A JP 2000357099 A JP2000357099 A JP 2000357099A
Authority
JP
Japan
Prior art keywords
disk
time
output
input
disk input
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
Application number
JP11167867A
Other languages
Japanese (ja)
Inventor
Shoji Kodama
昇司 児玉
Osamu Takeuchi
理 竹内
Takahiro Nakano
隆裕 中野
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11167867A priority Critical patent/JP2000357099A/en
Publication of JP2000357099A publication Critical patent/JP2000357099A/en
Pending legal-status Critical Current

Links

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

PROBLEM TO BE SOLVED: To shorten a response time by issuing a disk input/output process request when the start time of a disk input/output process is earlier than the start time when an application program which is being actuated is actuated next time. SOLUTION: A next stream reference interface 105 is used to check for which stream identifier a disk input/output scheduler 104 processes a disk input/ output process request in a next time slot. At this time, a disk input/output process start time reference interface is used to check the time when the disk input/output process request for the stream identifier to be inputted and outputted is processed. It is checked whether or not the checked time is later than the time when the application program 102 is started next time. When the start time of the disk input/output process is earlier, the application program determines data for which the input/output process request is made and issues a disk input/output process request.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、複数の連続メディ
ア・データをディスク装置などの情報記録装置に記録
し、その情報記録装置から同時に複数の連続メディア・
データを入出力するディスク入出力方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for recording a plurality of continuous media data on an information recording device such as a disk drive, and simultaneously outputting a plurality of continuous media data from the information recording device.
The present invention relates to a disk input / output method for inputting / outputting data.

【0002】[0002]

【従来の技術】ビデオ・オン・デマンド・サービスにお
けるビデオ・サーバなど、複数の連続メディア・データ
をディスク装置から同時に読み出し、読み出したデータ
を端末へ送信する装置においては、同時にサービスでき
る端末数の増加と端末からの要求に対する応答時間の短
縮が求められている。従来技術では、連続メディア・デ
ータを複数のディスク装置にストライプ状に記録し、い
つ、どの連続メディア・データに対するディスク入出力
処理を行うかを示したタイム・スロット・テーブルの位
相をディスク毎にシフトさせることによって、ディスク
入出力処理要求の発行からその処理が開始されるまでの
時間を短縮させる機能を提供している。
2. Description of the Related Art In a device for simultaneously reading a plurality of continuous media data from a disk device and transmitting the read data to a terminal, such as a video server in a video-on-demand service, the number of terminals that can be simultaneously serviced is increased. In addition, there is a demand for a reduction in response time to requests from terminals. In the conventional technology, continuous media data is recorded in stripes on a plurality of disk devices, and the phase of a time slot table indicating when and which disk input / output processing is to be performed for each continuous media data is shifted for each disk. By doing so, a function is provided to reduce the time from issuance of a disk input / output processing request to the start of the processing.

【0003】たとえば、この種の連続メディア・データ
の多重読み出し装置として、特開平7−123398号
公報に示されるようなビデオライブラリシステムがあ
る。このビデオライブラリシステムの構成図を図14に
示す。ビデオライブラリシステムは、連続メディア・デ
ータを圧縮して格納するディスク装置DK141(14
01)が、スイッチSW141(1402)を介して複
数のバッファ・メモリBM1401(1403)、…、
BM1432(1409)に接続されており、それらは
全て、制御装置CN141(1415)により制御され
る。
For example, there is a video library system as disclosed in Japanese Patent Application Laid-Open No. 7-123398 as a multiplex reading device of this type of continuous media data. FIG. 14 shows the configuration of this video library system. The video library system compresses and stores continuous media data in a disk device DK141 (14).
01) is transmitted through a plurality of buffer memories BM1401 (1403),... Via a switch SW141 (1402).
BM1432 (1409), all of which are controlled by the controller CN141 (1415).

【0004】この多重読み出し装置において、制御装置
CN141は図15に示すタイム・スロット・テーブル
を管理する。図14と図15による例では、端末TE1
401、…、TE1432に対してタイム・スロット
(1505)TS1501、…、TS1532を割り当
てている。制御装置CN141はタイム・スロットTS
1501でTE1401が再生している連続メディア・
データのセグメント(1タイム・スロットで読み出すデ
ータ単位)を読み出し、読み出されたセグメントはSW
141によってバッファBM1401に転送される。バ
ッファBM1401内のセグメントはデコーダDE14
01によってデコードされ、表示装置TV1401で映
し出される(1502)。同様にタイム・スロットTS
1502では、端末TE1402が再生している連続メ
ディア・データのセグメントを読み出し、読み出された
セグメントはSW141によってバッファBM1402
に転送される。バッファBM1402内のセグメントは
デコーダDE1402によってデコードされ、表示装置
TV1402で映し出される(1503)。これをタイ
ム・スロットTS1532まで行う。以上が多重読み出
し装置の1周期の動作であり、制御装置CN141はこ
れを繰り返す。
In this multiplex reading device, the control device CN141 manages a time slot table shown in FIG. In the example according to FIGS. 14 and 15, the terminal TE1
,.., TS1532 are assigned to 401,..., TE1432. The control device CN141 has a time slot TS
The continuous media that the TE 1401 is playing at 1501
A data segment (data unit to be read in one time slot) is read, and the read segment is SW
141 to the buffer BM 1401. The segment in the buffer BM1401 is the decoder DE14.
01 and is displayed on the display device TV 1401 (1502). Similarly, the time slot TS
At 1502, the segment of the continuous media data being reproduced by the terminal TE 1402 is read, and the read segment is stored in the buffer BM 1402 by the SW 141.
Is forwarded to The segments in the buffer BM1402 are decoded by the decoder DE1402 and displayed on the display device TV1402 (1503). This is performed up to time slot TS1532. The above is the operation of one cycle of the multiplex reading device, and the control device CN141 repeats this.

【0005】多重読み出し装置に端末TE1401、
…、TE1431がすでに接続しており、さらに端末T
E1432が新しく接続した場合、制御装置CN141
は端末TE1432にタイム・スロットを割り当てるた
め、まず空きタイム・スロットを探す。空きタイム・ス
ロットとは、そのタイム・スロットにおいてディスク装
置への入出力を行わない未割り当てのタイム・スロット
のことである。タイム・スロット・テーブルが32個の
タイム・スロットを持ち、ある時点で多重読み出し装置
に接続している端末数がn台であるとき、その時点での
空きタイム・スロット数は(32−n)個である。新し
く接続した端末TE1432が連続メディア・データの
再生を要求してから、それが再生されるまでの応答時間
は、空きタイム・スロット数が1個であり、かつ現在の
タイム・スロットから次の空きタイム・スロットまでの
タイム・スロット数がタイム・スロット・テーブル1周
期のタイム・スロット数と等しいときに最悪となる。
[0005] A terminal TE1401,
…, TE1431 is already connected and terminal T
When E1432 is newly connected, the control device CN141
In order to allocate a time slot to the terminal TE1432, it first searches for an empty time slot. An empty time slot is an unassigned time slot that does not perform input / output to the disk device in that time slot. When the time slot table has 32 time slots and the number of terminals connected to the multiplex reading apparatus at a certain time is n, the number of free time slots at that time is (32-n) Individual. The response time from when the newly connected terminal TE1432 requests playback of continuous media data to when it is played back is that the number of empty time slots is one and that the next idle time The worst case occurs when the number of time slots up to the time slot is equal to the number of time slots in one cycle of the time slot table.

【0006】この応答時間を短縮するために、従来の多
重読み出し装置では、以下の方法を用いていた。
In order to shorten the response time, the conventional multiplex reading apparatus uses the following method.

【0007】(1)連続メディア・データをストライプ
状に記録する。
(1) Continuous media data is recorded in a stripe form.

【0008】(2)ディスク毎にタイム・スロット・テ
ーブルを作成し、その位相をずらす。
(2) A time slot table is created for each disk and its phase is shifted.

【0009】(3)連続メディア・データの先頭数秒の
データをカットする。
(3) Data of the first few seconds of continuous media data is cut.

【0010】まず(1)として、多重読み出し装置のデ
ィスク数を複数にし、連続メディア・データをストライ
プ状に記録する。
First, as (1), the number of disks of the multiplex reading device is set to a plurality, and continuous media data is recorded in a stripe shape.

【0011】次に(2)として、そして各ディスク毎に
タイム・スロット・テーブルを作成する。同一の端末に
割り当てられた各ディスク毎のタイム・スロットが分散
するように、ディスク毎のタイム・スロット・テーブル
は互いに位相をシフトさせる。
Next, as (2), a time slot table is created for each disk. The time slot tables for each disk shift their phases relative to each other so that the time slots for each disk assigned to the same terminal are distributed.

【0012】ディスク装置が4台であるときの、多重読
み出し装置のタイミング・チャートを図16に示す。4
台のディスク装置はそれぞれタイム・スロット・テーブ
ルを有する。1台目のディスク装置のタイム・スロット
・テーブルをTST161(1601)、2台目のディ
スク装置のタイム・スロット・テーブルをTST162
(1602)、3台目ディスク装置のタイム・スロット
・テーブルをTST163(1603)、そして4台目
ディスク装置のタイム・スロット・テーブルをTST1
64(1604)とする。
FIG. 16 shows a timing chart of the multiplex reading device when there are four disk devices. 4
Each of the disk devices has a time slot table. The time slot table of the first disk device is TST161 (1601), and the time slot table of the second disk device is TST162.
(1602) The time slot table of the third disk device is TST163 (1603), and the time slot table of the fourth disk device is TST1.
64 (1604).

【0013】タイム・スロット・テーブルTST161
のタイム・スロットTS16101では、端末TE14
01が発行したディスク入出力処理要求を処理する。そ
れと同時にタイム・スロット・テーブルTST162の
タイム・スロットTS16225では、端末TE142
5が発行したディスク入出力処理要求を処理する。同様
に、タイム・スロット・テーブルTST163のタイム
・スロットTS16317では端末TE1417が、タ
イム・スロット・テーブルTSTのタイム・スロットT
S16409では端末TE1409が発行したディスク
入出力処理要求を処理する。続くタイム・スロット・テ
ーブルTST161のタイム・スロットTS16102
では、端末TE1402が発行したディスク入出力処理
要求を処理する。それと同時にタイム・スロット・テー
ブルTST162のタイム・スロットTS16226で
は端末TE1426が、タイム・スロット・テーブルT
ST163のタイム・スロットTS16318では端末
TE1418が、タイム・スロット・テーブルTST1
64のタイム・スロットTS16410では端末TE1
410が発行したディスク入出力処理要求を処理する。
以降それがタイム・スロット・テーブルに従って繰り返
される。処理されたディスク入出力要求は、各端末にお
いて再生される。再生の様子を図16中の1605から
1607に示した。
[0013] Time slot table TST161
In the time slot TS16101, the terminal TE14
01 processes the disk input / output processing request issued. At the same time, in the time slot TS16225 of the time slot table TST162, the terminal TE142
5 processes the disk input / output processing request issued. Similarly, in the time slot TS16317 of the time slot table TST163, the terminal TE1417 transmits the time slot T of the time slot table TST.
In S16409, the disk I / O processing request issued by the terminal TE1409 is processed. The following time slot TS16102 of the time slot table TST161
Then, a disk input / output processing request issued by the terminal TE1402 is processed. At the same time, in the time slot TS16226 of the time slot table TST162, the terminal TE1426 sets the time slot table T
In time slot TS16318 of ST163, terminal TE1418 receives time slot table TST1.
In 64 time slots TS16410, terminal TE1
The disk I / O processing request issued by 410 is processed.
Thereafter, it is repeated according to the time slot table. The processed disk input / output request is reproduced in each terminal. The state of reproduction is shown at 1605 to 1607 in FIG.

【0014】新しく接続された端末TE1432の応答
時間は、現在のタイム・スロットから空きタイム・スロ
ットまでの時間に等しい。このとき空きタイム・スロッ
トはディスク間で位相がずれているので、TE1432
用の空きタイム・スロットは8個のタイム・スロット毎
に訪れる。つまり端末TE1432が追加されたときの
最悪応答時間が、8個分のタイム・スロット以下にな
る。図15の例と比較すると応答時間は4分の1に短縮
する。
The response time of the newly connected terminal TE1432 is equal to the time from the current time slot to the free time slot. At this time, since the empty time slots are out of phase between the disks, TE1432
A free time slot for a visit is made every eight time slots. That is, the worst response time when the terminal TE1432 is added becomes equal to or less than eight time slots. The response time is reduced to a quarter as compared with the example of FIG.

【0015】しかし新しく接続された端末TE1432
が再生を始める連続メディア・データの先頭のデータ
が、上記で見つけた空きタイム・スロットに対応するデ
ィスク装置に存在するとは限らない。そこで(3)とし
て、連続メディア・データの先頭のデータから、空きタ
イム・スロットに対応するディスク装置に記録されてい
る部分までのデータをカットする。このカットした分、
連続メディア・データの再生を行うことはできないが、
逆に応答時間は早くなる。
However, the newly connected terminal TE1432
Does not always exist in the disk device corresponding to the empty time slot found above. Then, as (3), the data from the head data of the continuous media data to the portion recorded on the disk device corresponding to the empty time slot is cut. This cut,
You cannot play back continuous media data,
Conversely, the response time becomes faster.

【0016】[0016]

【発明が解決しようとする課題】前記従来技術は、タイ
ム・スロット・テーブルを用いた周期的なディスク入出
力処理において応答時間が長くなってしまうという問題
を解決し、応答時間を短縮することができる。しかしな
がら、オペレーティング・システムが連続メディア・デ
ータの多重読み出し機能を提供する場合、応答時間が増
加してしまうという問題を解決することができない。即
ち、従来技術を用いて、シングル・プロセッサの計算機
システム上で連続メディア・データの多重読み出し機能
を実現すると、アプリケーション・プログラムがディス
ク入出力処理要求を発行するタイミングと、オペレーテ
ィング・システムがその要求を処理するタイミングにず
れが生じ、結果として応答時間が増大してしまうという
問題がある。
The above prior art solves the problem that the response time becomes longer in the periodic disk input / output processing using the time slot table, and shortens the response time. it can. However, when the operating system provides a function of multiplex reading of continuous media data, the problem that response time increases cannot be solved. That is, by using the conventional technology, when a multiplex reading function of continuous media data is realized on a single processor computer system, the timing at which an application program issues a disk I / O processing request and the operating system There is a problem that a shift occurs in processing timing, and as a result, a response time increases.

【0017】このタイミングのずれの問題を、図17の
タイミング・チャートを用いて以下に示す。ただし簡単
のためにディスク装置数を1台とする。
The problem of this timing shift will be described below with reference to the timing chart of FIG. However, for simplicity, the number of disk devices is one.

【0018】まずプロセッサ上では4個のアプリケーシ
ョン・プログラムAP171、…、AP174が動作
し、それぞれ1個の連続メディア・データを読み出す。
制御装置は各アプリケーション・プログラム毎にタイム
・スロットTS171、…、TS174を割り当てる。
またオペレーティング・システムはアプリケーション・
プログラムのCPUスケジューリングを行う。図17中の
ST171がスケジューリング・テーブルの例である。
連続メディア・データを読み出すアプリケーション・プ
ログラムは、オペレーティング・システムによって、タ
イム・スロット・テーブルの周期と同じ周期で周期的に
起動する。そしてアプリケーション・プログラムは各周
期において一定量のセグメントを読み出す要求を発行す
る。図17のタイミング・チャートでは時刻T1にアプ
リケーションAP174が起動し、時刻TR1に連続メ
ディア・データの読み出し要求を発行する。次に時刻T
2にアプリケーション・プログラムAP173が起動
し、時刻TR2に連続メディア・データの読み出し要求
を発行する。同様にアプリケーション・プログラムAP
171まで続く。上記と平行して、制御装置は各アプリ
ケーション・プログラムからの読み出し要求をタイム・
スロット・テーブルに従って処理する。アプリケーショ
ン・プログラムAP174の要求はタイム・スロットT
S174で、アプリケーション・プログラムAP173
の要求はタイム・スロットTS173で、アプリケーシ
ョン・プログラムAP172の要求はタイム・スロット
TS172で、そしてアプリケーション・プログラムA
P171の要求は次の周期におけるタイム・スロットT
S171(1701)で処理される。
First, four application programs AP171,..., AP174 operate on the processor, and each read one piece of continuous media data.
The control device allocates time slots TS171,..., TS174 to each application program.
The operating system is the application
Performs CPU scheduling for the program. ST171 in FIG. 17 is an example of the scheduling table.
An application program that reads continuous media data is periodically started by the operating system at the same cycle as that of the time slot table. Then, the application program issues a request to read a certain number of segments in each cycle. In the timing chart of FIG. 17, the application AP 174 is activated at time T1, and issues a continuous media data read request at time TR1. Next, at time T
2 starts the application program AP173, and issues a read request for continuous media data at time TR2. Similarly, the application program AP
Continue to 171. In parallel with the above, the control device sends a read request from each application program in time
Process according to the slot table. The request of the application program AP174 is time slot T
In S174, the application program AP173
Is in time slot TS173, the request for application program AP172 is in time slot TS172, and the request for application program A is
The request of P171 is the time slot T in the next cycle.
The processing is performed in S171 (1701).

【0019】図17に、アプリケーション・プログラム
AP174に関する最悪応答時間WRT17AP174
を示した。アプリケーション・プログラムAP174が
例えばビデオ・サーバであった場合、端末からの連続メ
ディア・データのスキップ要求などが、アプリケーショ
ン・プログラムAP174がディスク入出力要求を発行
した直後である時刻T5に発行される可能性がある。こ
の場合、そのスキップ要求の発行は時刻TR6まで遅延
され、そのときの応答時間は最悪になる。
FIG. 17 shows the worst response time WRT17AP174 for the application program AP174.
showed that. When the application program AP 174 is, for example, a video server, a request for skipping continuous media data from a terminal may be issued at a time T5 immediately after the application program AP 174 issues a disk input / output request. There is. In this case, the issuance of the skip request is delayed until time TR6, and the response time at that time becomes the worst.

【0020】一方、図18に示したスケジューリング・
テーブルST181と図17の例と同じタイム・スロッ
ト・テーブルTST171の例における最悪応答時間
は、図17の例における最悪応答時間の約2分の1にな
る。その理由を以下に示す。図17の例では、応答時間
は2種類の待ち時間から生じる。第1の待ち時間は、ア
プリケーション・プログラムAP174が要求を出して
から、それが処理されるまでの待ち時間であり、最大で
約タイム・スロット・テーブル1周期分に相当する。第
2の待ち時間は、アプリケーション・プログラムがスケ
ジューリングされるまでの待ち時間であり、タイム・ス
ロット・テーブル1周期分に相当する。一方、図18の
例では、応答時間は1種類の待ち時間から生じる。それ
はアプリケーション・プログラムがスケジューリングさ
れるまでの待ち時間である。図17の場合の最悪応答時
間WRT17AP174が図18の場合の最悪応答時間
WRT18AP174より長くなる原因は、前者の応答
時間に、アプリケーション・プログラムが要求を出して
からそれが処理されるまでに待ち時間が生じるからであ
る。
On the other hand, the scheduling shown in FIG.
The worst response time in the example of the table ST181 and the same time slot table TST171 as in the example of FIG. 17 is about one half of the worst response time in the example of FIG. The reason is shown below. In the example of FIG. 17, the response time results from two types of waiting time. The first waiting time is a waiting time from when the application program AP 174 issues a request to when it is processed, and corresponds to a maximum of about one period of the time slot table. The second waiting time is a waiting time until the application program is scheduled, and corresponds to one cycle of the time slot table. On the other hand, in the example of FIG. 18, the response time is generated from one type of waiting time. It is the waiting time before an application program is scheduled. The reason why the worst response time WRT17AP 174 in FIG. 17 is longer than the worst response time WRT18AP 174 in FIG. 18 is that the waiting time from when an application program issues a request to when it is processed is due to the former response time. This is because it occurs.

【0021】上記の待ち時間は、図17と図18を比較
すれば分かるように、アプリケーション・プログラムの
スケジューリング・テーブルとディスク装置のタイム・
スロット・テーブルとの間の時間のずれによって生じ
る。図18のようにタイム・スロット・テーブルとスケ
ジューリング・テーブルの同期が取られているのに比
べ、図17では両者の同期が取られていない。そのため
タイム・スロット・テーブルとスケジューリング・テー
ブルの同期が取らないと、応答時間が増大してしまうと
いう課題があった。
As can be seen from the comparison between FIG. 17 and FIG. 18, the above-mentioned waiting time is based on the scheduling table of the application program and the time table of the disk drive.
Caused by a time lag between the slot table. While the time slot table and the scheduling table are synchronized as shown in FIG. 18, they are not synchronized in FIG. Therefore, if the time slot table and the scheduling table are not synchronized, the response time increases.

【0022】本発明の主たる目的は、ビデオライブラリ
システムなど特有のアプリケーションに特化しない、汎
用的な多重読み出しを提供する装置において、応答時間
の短縮を可能とすることにある。
A main object of the present invention is to make it possible to reduce the response time in an apparatus that provides general-purpose multiplex reading that is not specialized for a specific application such as a video library system.

【0023】[0023]

【課題を解決するための手段】上記課題を解決するため
に、本発明は、複数の連続メディア・データを記録する
複数のディスク装置を有し、いつ、どの連続メディア・
データに対するディスク入出力処理を行うかを示したタ
イム・スロット・テーブルを有し、そのタイム・スロッ
ト・テーブルに基づいてディスク入出力処理を行う計算
機システムにおいて、以下の手段を有する。
In order to solve the above-mentioned problems, the present invention comprises a plurality of disk devices for recording a plurality of continuous media data, and when and which continuous media is stored.
A computer system having a time slot table indicating whether to perform disk input / output processing on data and performing disk input / output processing based on the time slot table has the following means.

【0024】第1に、アプリケーション・プログラムは
連続メディア・データの識別子をディスク入出力スケジ
ューラに指定し、指定された連続メディア・データに対
するディスク入出力処理が、ディスク入出力スケジュー
ラによっていつ行われるかを計算する処理部を有し、そ
の開始時刻をアプリケーション・プログラムが参照する
手段を有する。
First, the application program specifies the identifier of the continuous media data to the disk input / output scheduler, and determines when the disk input / output processing for the specified continuous media data is performed by the disk input / output scheduler. It has a processing unit for calculating, and has means for the application program to refer to the start time.

【0025】第2に、起動中のアプリケーション・プロ
グラムが次に起動される時刻を計算する処理部を有し、
アプリケーション・プログラムがその起動時刻を参照す
る手段を有する。
Secondly, there is provided a processing unit for calculating the time at which the running application program is next started,
The application program has means for referring to the start time.

【0026】第3に、第1で参照した開始時刻と第2で
参照した起動時刻を比較する処理部を有し、第1で参照
した開始時刻の方が早い場合に、アプリケーション・プ
ログラムはディスク入出力処理要求を発行する手段を有
する。
Third, there is provided a processing unit for comparing the start time referred to in the first and the start time referred to in the second, and if the start time referred to in the first is earlier, It has means for issuing an input / output processing request.

【0027】[0027]

【発明の実施の形態】本発明の実施の形態を図1から図
13を用いて説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described with reference to FIGS.

【0028】本発明であるディスク入出力方法は計算機
システム上に実現される。計算機システムのハードウェ
ア構成を図12に示す。計算機システムはプログラムを
実行するプロセッサ(1201)とプログラムを一時的
に記録する主メモリ(1202)、連続メディア・デー
タを記録するための複数のディスク装置(108、12
05)、ディスク装置をコントロールするための入出力
コントローラ(1204)、CPUスケジューリングの契
機を与えるタイマ(110)から構成され、それらはバ
ス(1203)で接続されている。
The disk input / output method according to the present invention is realized on a computer system. FIG. 12 shows the hardware configuration of the computer system. The computer system includes a processor (1201) for executing a program, a main memory (1202) for temporarily recording the program, and a plurality of disk devices (108, 12) for recording continuous media data.
05), an input / output controller (1204) for controlling the disk device, and a timer (110) for giving a trigger for CPU scheduling, and these are connected by a bus (1203).

【0029】本発明のディスク入出力方法を実現するた
めのディスク入出力処理要求の処理の流れを図1に示
す。各処理の詳細は他の図を用いて後で説明する。
FIG. 1 shows a processing flow of a disk input / output processing request for realizing the disk input / output method of the present invention. Details of each process will be described later with reference to other drawings.

【0030】計算機システムには複数の連続メディア・
データ(109)を記録する1台のディスク装置(10
8)が接続され、それら連続メディア・データ(10
9)に対して周期的にディスク入出力処理要求を発行す
る複数のアプリケーション・プログラム(102)が存
在する。
The computer system includes a plurality of continuous media
One disk device (10) for recording data (109)
8) are connected and their continuous media data (10
There are a plurality of application programs (102) that periodically issue disk I / O processing requests to 9).

【0031】タイマ割り込みにより起動されるCPUスケ
ジューラ(101)はそれらアプリケーション・プログ
ラム(102)を周期的に起動する。CPUスケジューラ
は、それらアプリケーション・プログラム(102)と
同じ周期で起動する。同じ周期にするのは説明を簡単に
するためであり、これらは異なっていても良い。その場
合は、この実施の形態の説明の最後で述べる。
The CPU scheduler (101) started by the timer interrupt starts these application programs (102) periodically. The CPU scheduler starts at the same cycle as those application programs (102). The same period is used to simplify the description, and these may be different. In that case, it will be described at the end of the description of this embodiment.

【0032】アプリケーション・プログラム(102)
は、次ストリーム参照インタフェース(105)を用い
て、ディスク入出力処理要求の発行から処理されるまで
の待ち時間を最小化するように、ディスク入出力処理要
求を発行するタイミングを決定する。
Application program (102)
Determines the timing of issuing a disk I / O processing request using the next stream reference interface (105) so as to minimize the waiting time from issuance of the disk I / O processing request to processing.

【0033】またCPUスケジューラ(101)はディス
ク入出力スケジューラ(104)を周期的に起動する。
ディスク入出力スケジューラ(104)の起動周期はア
プリケーション・プログラム(102)の起動周期と等
しくする。このときのCPUのスケジューリング・テーブ
ルの例とスケジューリング・テーブルの例を図13に示
す。1タイム・スロット(1306)の時間内に、CPU
スケジューラは上記のアプリケーション・プログラム
(1301、…、1304)とディスク入出力スケジュ
ーラ(1305)を起動している。
The CPU scheduler (101) periodically starts the disk input / output scheduler (104).
The startup cycle of the disk input / output scheduler (104) is made equal to the startup cycle of the application program (102). FIG. 13 shows an example of the scheduling table of the CPU and an example of the scheduling table at this time. Within one time slot (1306), the CPU
The scheduler has activated the application programs (1301,..., 1304) and the disk input / output scheduler (1305).

【0034】ディスク入出力スケジューラ(104)は
後述するタイム・スロット・テーブル(107)に従っ
て、アプリケーション・プログラム(102)が発行し
たディスク入出力処理要求をディスク入出力処理プログ
ラム(106)に渡す。ディスク入出力処理プログラム
(106)は受け取ったディスク入出力処理要求を処理
する。
The disk input / output scheduler (104) passes the disk input / output processing request issued by the application program (102) to the disk input / output processing program (106) in accordance with a time slot table (107) described later. The disk input / output processing program (106) processes the received disk input / output processing request.

【0035】ディスク入出力スケジューラ(104)、
タイム・スロット・テーブル(107)、次ストリーム
参照インタフェース(105)、及びディスク入出力処
理プログラム(106)を含むディスク入出力処理に関
わるプログラム、データ、及びインタフェースを総称し
てディスク入出力モジュール(103)と呼ぶことにす
る。
A disk input / output scheduler (104),
The disk input / output module (103) collectively refers to programs, data, and interfaces related to disk input / output processing including the time slot table (107), the next stream reference interface (105), and the disk input / output processing program (106). ).

【0036】図2から図5を用いて、ディスク入出力モ
ジュール(103)が用いるデータについて説明する。
The data used by the disk input / output module (103) will be described with reference to FIGS.

【0037】図2はストリーム識別子管理テーブル(2
01)の例である。周期的にディスクから入出力が行わ
れる連続メディア・データにはストリーム識別子が割り
当てられる。ストリーム識別子が割り当て済みか否か
を、ストリーム識別子管理テーブル(201)の使用可
否フィールド(203)に記入する。あるストリーム識
別子が割り当て済みならば"使用中"と記入して、割り当
てられていなければ"未使用"と記入する。
FIG. 2 shows a stream identifier management table (2
01). Stream identifiers are assigned to continuous media data that is periodically input / output from the disk. Whether or not a stream identifier has been assigned is written in the availability field (203) of the stream identifier management table (201). If a stream identifier has been assigned, enter "in use"; if not, enter "unused".

【0038】図3はタイム・スロット・テーブル(10
7)の例である。ディスク入出力スケジューラ(10
4)が起動した時刻から、ディスク入出力スケジューラ
(104)が次に起動するまでの時間をタイム・スロッ
トと呼ぶことにする。ディスク入出力スケジューラ(1
04)が初めて起動した時のタイム・スロットの値を1
とする。ディスク入出力スケジューラ(104)が起動
する度にタイム・スロットの値は一つづつ増える。図2
の例ではタイム・スロットは1から8まで存在する。タ
イム・スロット8の次はタイム・スロット1に戻る。タ
イム・スロット・テーブル(107)には各タイム・ス
ロットでどのストリーム識別子に対するディスク入出力
処理要求を処理すべきかが書かれている。あるタイム・
スロットで処理すべきストリーム識別子が存在しない場
合は、タイム・スロット・テーブルの当該タイム・スロ
ットに対応するストリーム識別子フィールド(303)
にXと記入する。この実施の形態ではストリーム識別子
管理テーブル(201)のストリーム識別子の個数と、
タイム・スロット・テーブル(107)のタイム・スロ
ットの数は一致させる。
FIG. 3 shows the time slot table (10
7) is an example. Disk I / O scheduler (10
The time from the start time of 4) to the next start of the disk input / output scheduler (104) is called a time slot. Disk I / O scheduler (1
04) when the time slot is activated for the first time is set to 1
And Each time the disk input / output scheduler (104) is activated, the value of the time slot increases by one. FIG.
In the example, there are 1 to 8 time slots. After time slot 8, return to time slot 1. The time slot table (107) describes which stream identifier should be used to process a disk input / output processing request in each time slot. A certain time
If there is no stream identifier to be processed in the slot, the stream identifier field corresponding to the time slot in the time slot table (303)
Write X in In this embodiment, the number of stream identifiers in the stream identifier management table (201)
The number of time slots in the time slot table (107) is matched.

【0039】図4は次タイム・スロット管理変数(40
1)である。現在のタイム・スロットの次のタイム・ス
ロットの値が記録されている。
FIG. 4 shows a next time slot management variable (40).
1). The value of the time slot next to the current time slot is recorded.

【0040】図5はディスク入出力コマンド・リスト・
ヘッダ(501)の例である。アプリケーション・プロ
グラム(102)が発行したディスク入出力処理要求は
ディスク入出力スケジューラ(104)によって処理さ
れるまで、ディスク入出力コマンド・リスト・ヘッダ
(501)で待たされる。ディスク入出力処理要求はデ
ィスク入出力コマンド(504)に変換され、そのディ
スク入出力コマンド(504)がディスク入出力コマン
ド・リスト・ヘッダ(501)のディスク入出力コマン
ド・ポインタ(503)に接続される。図5の例ではデ
ィスク入出力処理要求は連続メディア・データ(10
9)に対するリード要求のみを考えている。このときデ
ィスク入出力コマンド(504)は3つのフィールドか
ら構成される。第1のフィールドはリード・アドレス
(505)である。リード・アドレス(505)とはリ
ードしたいデータが存在するディスク上の論理的なアド
レスのことである。第2のフィールドはリード・サイズ
(506)である。リード・サイズ(506)とはリー
ドしたいデータの大きさのことである。第3のフィール
ドは次コマンド・ポインタ(507)である。次コマン
ド・ポインタ(507)によって、複数のディスク入出
力コマンドをリスト状に接続する。このリストをディス
ク入出力コマンド・リスト(508)と呼ぶことにす
る。複数のディスク入出力コマンドはFIFO(Fir
st In First Out)順に処理される。新
しいディスク入出力コマンドはディスク入出力コマンド
・リスト(508)の最後尾に接続される。
FIG. 5 shows a disk input / output command list.
It is an example of a header (501). The disk I / O processing request issued by the application program (102) is held in the disk I / O command list header (501) until it is processed by the disk I / O scheduler (104). The disk input / output processing request is converted into a disk input / output command (504), and the disk input / output command (504) is connected to the disk input / output command pointer (503) of the disk input / output command list header (501). You. In the example of FIG. 5, the disk I / O processing request is continuous media data (10
Only the read request for 9) is considered. At this time, the disk input / output command (504) is composed of three fields. The first field is the read address (505). The read address (505) is a logical address on the disk where data to be read exists. The second field is the lead size (506). The read size (506) is the size of data to be read. The third field is the next command pointer (507). A plurality of disk input / output commands are connected in a list by the next command pointer (507). This list is called a disk input / output command list (508). A plurality of disk input / output commands are stored in a FIFO (File
st In First Out). The new disk I / O command is connected to the end of the disk I / O command list (508).

【0041】ディスク入出力スケジューラ(104)は
1タイム・スロットで1個のディスク入出力コマンドを
処理する。そのため1個のディスク入出力コマンド(5
04)のリード・サイズ(505)は、1タイム・スロ
ット内でその処理が完了できるような大きさでなければ
ならない。もしアプリケーション・プログラム(10
2)が発行したディスク入出力処理要求が、1タイム・
スロット内で処理が完了できない大きさならば、そのデ
ィスク入出力処理要求は複数のディスク入出力コマンド
に分割され、複数のタイム・スロットに渡って処理され
る。
The disk input / output scheduler (104) processes one disk input / output command in one time slot. Therefore, one disk I / O command (5
The read size (505) in 04) must be large enough to complete its processing within one time slot. If the application program (10
2) The disk I / O processing request issued by
If the processing cannot be completed in the slot, the disk I / O processing request is divided into a plurality of disk I / O commands and processed over a plurality of time slots.

【0042】図5の例ではディスク入出力処理要求はス
トリーム識別子(502)毎に分けて管理されている。
これは例であり、すべてのストリーム識別子に対するデ
ィスク入出力コマンドを一括して1本のリストで管理し
ても良い。この場合にはディスク入出力コマンドに、新
しいフィールドとしてストリーム識別子を入れれば良
い。
In the example of FIG. 5, disk input / output processing requests are managed separately for each stream identifier (502).
This is an example, and disk input / output commands for all stream identifiers may be managed collectively in one list. In this case, the stream input / output command may include the stream identifier as a new field.

【0043】図5のディスク入出力コマンド・リスト・
ヘッダ(501)にはストリーム識別子フィールド(5
02)の値でXというものが存在する。図3で説明した
ように、ストリーム識別子Xはそのタイム・スロット内
で処理すべき連続メディア・データ(109)が存在し
ないことを意味する。この場合、ディスク入出力スケジ
ューラ(104)は周期的なディスク入出力処理要求以
外のディスク入出力処理要求を処理する。これを非周期
的なディスク入出力処理要求と呼ぶことにする。非周期
的なディスク入出力処理要求はディスク入出力コマンド
に変換され、ディスク入出力コマンド・リスト・ヘッダ
(501)におけるストリーム識別子Xに対応するディ
スク入出力コマンド・リストに接続される。
The disk input / output command list shown in FIG.
The header (501) has a stream identifier field (5
X) exists in the value of 02). As described in FIG. 3, the stream identifier X means that there is no continuous media data (109) to be processed in that time slot. In this case, the disk input / output scheduler (104) processes disk input / output processing requests other than periodic disk input / output processing requests. This is called an aperiodic disk input / output processing request. The aperiodic disk input / output processing request is converted into a disk input / output command and connected to the disk input / output command list corresponding to the stream identifier X in the disk input / output command list header (501).

【0044】以上の説明では、ディスク入出力処理要求
としてリード要求のみを考えたが、ライト要求にも容易
に拡張できる。
In the above description, only a read request is considered as a disk input / output processing request, but it can be easily extended to a write request.

【0045】図6を用いてタイム・スロット・テーブル
と同期を取るための、アプリケーション・プログラム
(102)の動作例を説明する。図6の例では、アプリ
ケーション・プログラム(102)は1本の連続メディ
ア・データ(109)に対して、周期的にディスク入出
力処理要求を発行する。その際、アプリケーション・プ
ログラムがディスク入出力処理要求を発行するタイミン
グを、そのディスク入出力処理要求が処理されるタイム
・スロットに同期させるために、アプリケーション・プ
ログラムは後述する次ストリーム参照インタフェースを
用いる。
An example of the operation of the application program (102) for synchronizing with the time slot table will be described with reference to FIG. In the example of FIG. 6, the application program (102) periodically issues a disk input / output processing request for one piece of continuous media data (109). At this time, in order to synchronize the timing at which the application program issues the disk I / O processing request with the time slot in which the disk I / O processing request is processed, the application program uses the next stream reference interface described later.

【0046】まず初めにステップ602で、アプリケー
ション・プログラム(102)は周期的に入出力を行い
たい連続メディア・データ(109)をオープンする。
First, at step 602, the application program (102) periodically opens continuous media data (109) to be input / output.

【0047】次のステップ603で周期的入出力要求イ
ンタフェースを用いて、オープンした連続メディア・デ
ータ(109)に対するディスク入出力処理要求をディ
スク入出力スケジューラ(102)が周期的に処理する
ようディスク入出力モジュール(103)に対して依頼
する。周期的入出力要求インタフェースの詳細は後述す
る。周期的入出力要求インタフェースはアプリケーショ
ン・プログラム(102)にストリーム識別子を返す。
その値を変数自ストリーム識別子に記録する。もし変数
自ストリーム識別子の値がNULLならば(ステップ60
4)、ディスク入出力モジュールはこれ以上の連続メデ
ィア・データを周期的に処理できないことを意味する。
このときアプリケーション・プログラム(102)は処
理を終了する(ステップ605)。
In the next step 603, using the periodic input / output request interface, the disk input / output scheduler (102) periodically processes the disk input / output processing request for the opened continuous media data (109). Request to the output module (103). Details of the periodic input / output request interface will be described later. The periodic I / O request interface returns a stream identifier to the application program (102).
The value is recorded in the variable's own stream identifier. If the value of the variable's own stream identifier is NULL (step 60)
4) means that the disk input / output module cannot periodically process any more continuous media data.
At this time, the application program (102) ends the processing (step 605).

【0048】ステップ606で次ストリーム参照インタ
フェース(105)を用いて、次のタイム・スロットで
どのストリーム識別子に対するディスク入出力処理要求
を、ディスク入出力スケジューラ(104)が処理する
のかを調べる。次のタイム・スロットで処理されるスト
リーム識別子を変数次ストリーム識別子に保存する。次
ストリーム参照インタフェース(105)の詳細は後述
する。
In step 606, the disk input / output scheduler (104) checks the disk input / output processing request for which stream identifier in the next time slot using the next stream reference interface (105). The stream identifier processed in the next time slot is stored in a variable next stream identifier. Details of the next stream reference interface (105) will be described later.

【0049】ステップ607で変数次ストリーム識別子
の値と変数自ストリーム識別子の値を比較する。もし両
者が異なれば、アプリケーション・プログラムはディス
ク入出力処理要求を発行しても、その要求はディスク入
出力モジュールによって即座には処理されない。そこで
自ストリーム識別子を処理するタイム・スロットが回っ
て来るまで待機するために、まずCPUハンドオフを行う
(ステップ608)。CPUハンドオフとはアプリケーシ
ョン・プログラム自らが割り当てられたCPU時間の残り
を放棄するインタフェースである。もしOSにCPUハンド
オフのためのインタフェースが存在しない場合、アプリ
ケーション・プログラムは任意の処理で割り当てられた
CPU時間の残りを消費すれば良い。再びこのアプリケー
ション・プログラムが起動したときは、ステップ607
を繰り返す。
In step 607, the value of the variable next stream identifier is compared with the value of the variable own stream identifier. If they are different, even if the application program issues a disk I / O processing request, the request is not immediately processed by the disk I / O module. Then, in order to wait until a time slot for processing the own stream identifier comes around, CPU handoff is first performed (step 608). CPU handoff is an interface that relinquishes the rest of the CPU time allocated to the application program itself. If the OS does not have an interface for CPU handoff, the application program is allocated by arbitrary processing.
You just have to spend the rest of your CPU time. When this application program is started again, step 607 is executed.
repeat.

【0050】ステップ609で、アプリケーション・プ
ログラムは入出力処理要求を行いたいデータを決定し、
入出力処理要求インタフェースを用いてディスク入出力
処理要求をディスク入出力モジュール(103)に対し
て発行する。入出力処理要求インタフェースの詳細は後
述する。ディスク入出力スケジューラ(104)が次に
起動した際、ここで発行されたディスク入出力処理要求
がただちに処理される。ただしディスク入出力処理要求
を発行する際、ディスク入出力コマンド・リスト・ヘッ
ダ(501)の変数自ストリーム識別子が示すストリー
ム識別子に対するディスク入出力コマンド・リストは空
でなければならない。これ以降の説明ではそのリストが
空であった場合を想定して説明する。もし空でないなら
ば、本発明の目的である応答時間の短縮は達成できな
い。ステップ606、ステップ607そしてステップ6
09の手順に従ってディスク入出力処理要求を発行する
ことによって、ディスク入出力スケジューラがその要求
を処理するまでの時間、つまり発行したディスク入出力
処理要求に対する応答時間が短縮する。
At step 609, the application program determines the data for which an input / output processing request is to be made,
A disk input / output processing request is issued to the disk input / output module (103) using the input / output processing request interface. Details of the input / output processing request interface will be described later. When the disk input / output scheduler (104) starts next, the disk input / output processing request issued here is immediately processed. However, when issuing a disk input / output processing request, the disk input / output command list for the stream identifier indicated by the variable own stream identifier of the disk input / output command list header (501) must be empty. In the following description, it is assumed that the list is empty. If it is not empty, the reduction of response time, which is the object of the present invention, cannot be achieved. Step 606, Step 607 and Step 6
By issuing the disk I / O processing request according to the procedure of 09, the time until the disk I / O scheduler processes the request, that is, the response time to the issued disk I / O processing request is reduced.

【0051】ステップ610でCPUハンドオフを行う。
これはステップ609で発行したディスク入出力処理要
求の完了を待つためである。
At step 610, CPU handoff is performed.
This is to wait for completion of the disk input / output processing request issued in step 609.

【0052】ステップ611で入出力処理完了インタフ
ェースを用いて、ステップ609で発行したディスク入
出力処理要求が完了したか否かを確認する。もし完了し
ていなければ再度CPUハンドオフを行い(ステップ61
2)、ステップ609で発行したディスク入出力処理要
求の完了を待つ。この入出力処理完了インタフェースは
ディスク入出力処理プログラムに当該ディスク入出力処
理要求が完了したかを問い合わせるだけのものである。
At step 611, it is confirmed whether or not the disk input / output processing request issued at step 609 has been completed using the input / output processing completion interface. If not completed, CPU handoff is performed again (step 61).
2) Wait for completion of the disk input / output processing request issued in step 609. This I / O processing completion interface is only for inquiring of the disk I / O processing program whether the disk I / O processing request has been completed.

【0053】ステップ613で変数自ストリーム識別子
に対するすべての入出力が完了したかどうかを判断す
る。もし完了していなければ、次のディスク入出力処理
要求を発行するためにステップ606に戻る。
In step 613, it is determined whether or not all input / output for the variable's own stream identifier has been completed. If not, the process returns to step 606 to issue the next disk input / output processing request.

【0054】ステップ614で周期的入出力完了インタ
フェースを用いて、変数自ストリーム識別子が示すスト
リーム識別子に対する周期的な入出力が完了したこと
を、ディスク入出力モジュール(103)に知らせる。
この際アプリケーション・プログラム(102)は引数
としてストリーム識別子も合わせて指定する。周期的入
出力完了インタフェースの詳細は後述する。
In step 614, the disk input / output module (103) is notified that the periodic input / output for the stream identifier indicated by the variable's own stream identifier has been completed using the periodic input / output completion interface.
At this time, the application program (102) also specifies a stream identifier as an argument. Details of the periodic input / output completion interface will be described later.

【0055】ステップ615で連続メディア・データを
クローズする。
In step 615, the continuous media data is closed.

【0056】ステップ616でアプリケーション・プロ
グラムの処理は終了する。
At step 616, the processing of the application program ends.

【0057】図6の動作例では、アプリケーション・プ
ログラム(102)は1本の連続メディア・データ(1
09)に対して周期的にディスク入出力処理要求を発行
する。しかしアプリケーション・プログラム(102)
は複数の連続メディア・データを同時に扱うことも可能
である。この場合、アプリケーション・プログラムはス
テップ606とステップ607をすべてのストリーム識
別子に対して繰り返せば良い。
In the operation example shown in FIG. 6, the application program (102) is one piece of continuous media data (1
09), and periodically issues a disk input / output processing request. But the application program (102)
Can handle multiple continuous media data simultaneously. In this case, the application program may repeat steps 606 and 607 for all stream identifiers.

【0058】図7に周期的入出力要求インタフェースの
動作例を示す。
FIG. 7 shows an operation example of the periodic input / output request interface.

【0059】ステップ702でストリーム識別子管理テ
ーブル(201)から未使用のストリーム識別子を調べ
る。もしなければステップ706でインタフェースの呼
び出し側にストリーム識別子としてNULLを返す。これは
新しい連続メディア・データを周期的に処理するための
空きタイム・スロットが、タイム・スロット・テーブル
(107)に存在しないことを意味する。そして周期的
入出力要求インタフェースの処理を終了する(ステップ
707)。
At step 702, an unused stream identifier is checked from the stream identifier management table (201). If not, step 706 returns NULL as the stream identifier to the caller of the interface. This means that there are no free time slots in the time slot table (107) to periodically process new continuous media data. Then, the processing of the periodic input / output request interface ends (step 707).

【0060】ステップ703でストリーム識別子管理テ
ーブル(201)において、未使用のストリーム識別子
の使用可否フィールド(203)を使用中に変更する。
At step 703, the availability field (203) of the unused stream identifier in the stream identifier management table (201) is changed to "in use".

【0061】ステップ704でタイム・スロット・テー
ブル(107)からストリーム識別子がXとなっている
タイム・スロットを見つける。そしてそのタイム・スロ
ットのストリーム識別子フィールド(303)をステッ
プ703で割り当てたストリーム識別子に書き換える。
At step 704, a time slot whose stream identifier is X is found from the time slot table (107). Then, the stream identifier field (303) of the time slot is rewritten with the stream identifier assigned in step 703.

【0062】ステップ705でステップ703において
割り当てたストリーム識別子を周期的入出力要求インタ
フェースの返り値として、インタフェースの呼び出し側
に返す。
In step 705, the stream identifier assigned in step 703 is returned to the caller of the interface as a return value of the periodic input / output request interface.

【0063】ステップ707で周期的入出力要求インタ
フェースの処理を終了する。
In step 707, the processing of the periodic input / output request interface ends.

【0064】図8に周期的入出力完了インタフェースの
動作例を示す。
FIG. 8 shows an operation example of the periodic input / output completion interface.

【0065】ステップ802でタイム・スロット・テー
ブル(107)において、インタフェースの呼び出し側
が指定したストリーム識別子に対応するタイム・スロッ
トのストリーム識別子フィールド(303)をXに変更
する。
In step 802, the stream identifier field (303) of the time slot corresponding to the stream identifier specified by the caller of the interface is changed to X in the time slot table (107).

【0066】ステップ803でストリーム識別子管理テ
ーブル(201)において、インタフェースの呼び出し
側が指定したストリーム識別子に対応する使用可否フィ
ールド(203)を未使用に変更する。
In step 803, the usability field (203) corresponding to the stream identifier designated by the interface caller is changed to unused in the stream identifier management table (201).

【0067】ステップ804で周期的入出力完了インタ
フェースの処理を終了する。
In step 804, the processing of the periodic input / output completion interface ends.

【0068】図9に次ストリーム参照インタフェース
(105)の動作例を示す。
FIG. 9 shows an operation example of the next stream reference interface (105).

【0069】ステップ902でタイム・スロット・テー
ブル(107)において、次タイム・スロット管理変数
(401)が示すタイム・スロットに対応するストリー
ム識別子フィールド(303)の値を変数次ストリーム
識別子に記録する。
In step 902, in the time slot table (107), the value of the stream identifier field (303) corresponding to the time slot indicated by the next time slot management variable (401) is recorded in the variable next stream identifier.

【0070】ステップ903で変数次ストリーム識別子
の値をインタフェースの返り値として、インタフェース
の呼び出し側に返す。
In step 903, the value of the variable next stream identifier is returned to the interface caller as a return value of the interface.

【0071】ステップ904で次ストリーム参照インタ
フェース(105)の処理を終了する。
At step 904, the processing of the next stream reference interface (105) is completed.

【0072】図10に入出力処理要求インタフェースの
動作例を示す。
FIG. 10 shows an operation example of the input / output processing request interface.

【0073】ステップ1002でインタフェースの呼び
出し側が引数で指定したディスク入出力処理要求をディ
スク入出力コマンド(504)に変換する。当該ディス
ク入出力処理要求が1つのタイム・スロット内で処理で
きない場合は、ディスク入出力処理要求を複数のディス
ク入出力処理要求に分割し、それぞれをディスク入出力
コマンドに変換する。
In step 1002, the disk input / output processing request specified by the argument by the caller of the interface is converted into a disk input / output command (504). If the disk I / O processing request cannot be processed in one time slot, the disk I / O processing request is divided into a plurality of disk I / O processing requests, and each is converted into a disk I / O command.

【0074】ステップ1003でディスク入出力コマン
ド・リスト・ヘッダ(501)において、インタフェー
スの呼び出し側が引数で指定したストリーム識別子に対
応するディスク入出力コマンド・リストの最後尾に、ス
テップ1002で作成した1つ以上のディスク入出力コ
マンドを接続する。
In step 1003, in the disk input / output command list header (501), the one created in step 1002 is added to the end of the disk input / output command list corresponding to the stream identifier specified by the argument by the caller of the interface. The above disk I / O commands are connected.

【0075】ステップ1004で入出力処理要求インタ
フェースの処理を終える。
At step 1004, the processing of the input / output processing request interface ends.

【0076】図11にディスク入出力スケジューラ(1
04)の動作例を示す。
FIG. 11 shows a disk input / output scheduler (1).
04) shows an operation example.

【0077】ディスク入出力スケジューラ(104)は
CPUスケジューラ(101)により周期的に起動され
る。ディスク入出力スケジューラ(104)が初めて起
動される際はステップ1101から処理が開始する。2
回目の起動からはステップ1108の直後から処理が開
始する。
The disk input / output scheduler (104)
It is started periodically by the CPU scheduler (101). When the disk input / output scheduler (104) is activated for the first time, the process starts from step 1101. 2
The processing starts immediately after step 1108 from the first activation.

【0078】ステップ1102で次ストリーム参照イン
タフェース(105)を用いて、ディスク入出力スケジ
ューラ(104)が処理すべきストリーム識別子を得
る。それを変数次ストリーム識別子に記録する。
In step 1102, the stream identifier to be processed by the disk input / output scheduler (104) is obtained by using the next stream reference interface (105). It is recorded in the variable next stream identifier.

【0079】ステップ1103でディスク入出力コマン
ド・リスト・ヘッダ(501)において、変数次ストリ
ーム識別子が示すストリーム識別子に対応するディスク
入出力コマンド・リストに、処理すべきディスク入出力
コマンドが存在するかを調べる。存在しなければステッ
プ1105に処理が飛ぶ。
In step 1103, the disk input / output command list header (501) determines whether a disk input / output command to be processed exists in the disk input / output command list corresponding to the stream identifier indicated by the variable next stream identifier. Find out. If not, the process jumps to step 1105.

【0080】ステップ1104でディスク入出力コマン
ド・リスト・ヘッダ(501)において、変数次ストリ
ーム識別子が示すストリーム識別子に対応するディスク
入出力コマンド・リストの先頭のディスク入出力コマン
ドを取り出す。そしてそのディスク入出力コマンドをデ
ィスク入出力処理プログラム(106)に渡す。ディス
ク入出力処理プログラム(106)はディスク入出力ス
ケジューラ(104)がCPUハンドオフを行った後に、
渡されたディスク入出力コマンドを処理する。
At step 1104, the first disk input / output command of the disk input / output command list corresponding to the stream identifier indicated by the variable next stream identifier is extracted from the disk input / output command list header (501). Then, the disk input / output command is passed to the disk input / output processing program (106). After the disk input / output scheduler (104) performs the CPU handoff, the disk input / output processing program (106)
Process the passed disk I / O command.

【0081】ステップ1105で次タイム・スロット管
理変数(401)の値を一つ増やす。
At step 1105, the value of the next time slot management variable (401) is increased by one.

【0082】ステップ1106で次タイム・スロット管
理変数(401)の値がタイム・スロット・テーブル
(107)におけるタイム・スロットの最大値より大き
いかどうかを判断する。大きければステップ1107で
次タイム・スロット管理変数(401)の値を1に戻
す。
At step 1106, it is determined whether or not the value of the next time slot management variable (401) is larger than the maximum value of the time slot in the time slot table (107). If it is larger, the value of the next time slot management variable (401) is returned to 1 in step 1107.

【0083】ステップ1108でCPUハンドオフを行
う。
At step 1108, CPU handoff is performed.

【0084】以上でディスク入出力スケジューラ(10
4)の1周期内での処理が終了する。ディスク入出力ス
ケジューラ(104)自体は計算機システム内に常駐
し、周期的に起動する。
With the above, the disk input / output scheduler (10
The processing in one cycle of 4) is completed. The disk input / output scheduler (104) itself resides in the computer system and is started periodically.

【0085】上記の実施の形態で用いた次ストリーム参
照インタフェース(105)に関して、次の応用例を考
えることができる。
The following application example can be considered for the next stream reference interface (105) used in the above embodiment.

【0086】「ディスク入出力処理開始時刻参照インタ
フェース」これは、引き数で指定したストリーム識別子
に対するディスク入出力処理要求が、いつ処理されるか
を調べるインタフェースである。
"Disk input / output processing start time reference interface" This is an interface for checking when a disk input / output processing request for a stream identifier specified by an argument is processed.

【0087】ディスク入出力処理開始時刻参照インタフ
ェースを用いた場合、図6のアプリケーション・プログ
ラム(102)はディスク入出力処理開始時刻が近くな
った時にディスク入出力処理要求を発行すれば、あとは
上記の実施の形態と同様の方法で応答時間を短縮するこ
とができる。
When the disk input / output processing start time reference interface is used, the application program (102) in FIG. 6 issues a disk input / output processing request when the disk input / output processing start time is approaching. The response time can be reduced in the same manner as in the embodiment.

【0088】上記の実施の形態では、周期的に入出力を
行うすべてのアプリケーション・プログラム(102)
とディスク入出力スケジューラ(104)が同一の周期
で起動する場合を考えた。しかしそれらの周期がそれぞ
れ異なっている場合でも、図6のアプリケーション・プ
ログラム(102)の動作例を次のように変更すれば、
応答時間短縮の効果を得ることができる。
In the above embodiment, all of the application programs (102) that periodically perform input / output
And the disk input / output scheduler (104) are activated in the same cycle. However, even when the periods are different from each other, if the operation example of the application program (102) in FIG. 6 is changed as follows,
The effect of shortening the response time can be obtained.

【0089】ステップ606の代わりに次のステップ6
17を実行する。
Instead of step 606, the following step 6
Step 17 is executed.

【0090】ステップ617ディスク入出力処理開始時
刻参照インタフェースを用いて、入出力を行いたいスト
リーム識別子に対するディスク入出力処理要求が処理さ
れる時刻を調べる。
Step 617 Using the disk input / output processing start time reference interface, check the time at which the disk input / output processing request for the stream identifier to be input / output is processed.

【0091】次にステップ607の代わりにステップ6
18を実行する。
Next, instead of step 607, step 6
Step 18 is executed.

【0092】ステップ618該アプリケーション・プロ
グラム(102)が次に起動する時刻よりも、ステップ
617で調べた時刻の方が遅いかどうかを調べる。
Step 618 It is checked whether or not the time checked in step 617 is later than the time when the application program (102) is started next.

【0093】もしディスク入出力処理の開始時刻の方が
遅いならば、当該ストリーム識別子に対するディスク入
出力処理要求が処理されるまでの間にアプリケーション
・プログラム(102)は少なくとも1回は起動する。
そこでステップ608を実行する。そうでないならばス
テップ609を実行する。ただしステップ618を実現
するためには、アプリケーション・プログラム(10
2)の起動時刻を、アプリケーション・プログラム(1
02)が知るためのインタフェースが必要である。この
インタフェースは容易に実現できる。
If the start time of the disk input / output processing is later, the application program (102) is activated at least once before the disk input / output processing request for the stream identifier is processed.
Therefore, step 608 is executed. If not, step 609 is performed. However, in order to realize step 618, the application program (10
The start time of 2) is changed by the application program (1).
02) needs an interface to know. This interface is easy to implement.

【0094】上記の実施の形態では、タイム・スロット
・テーブル(107)における各ストリーム識別子フィ
ールド(303)の値は重複しなかった。しかし図7の
周期的入出力要求インタフェースにおけるステップ70
4のタイム・スロット・テーブル(107)の変更処理
を、ストリーム識別子が重複するように変更することも
可能である。この場合、そのストリーム識別子に対する
ディスク入出力処理要求は重複した分だけ処理される。
これは例えば動画などにおいてさまざまな再生速度を取
り扱うことに対応する。この場合も上記の実施の形態に
よって応答時間の短縮は可能である。ただし図7のステ
ップ703における未使用ストリーム識別子の割り当て
の際に、新しい周期的入出力要求が受け付け可能か否か
を判定しなければならない。ただしその前にアプリケー
ション・プログラム(102)は当該連続メディア・デ
ータの再生速度を、周期的入出力要求インタフェースの
呼び出し時に引数として指定する。受け付け可能か否か
を判定するアルゴリズムはCPUのスケジューリング問題
と同様に考えることができる。
In the above embodiment, the values of the stream identifier fields (303) in the time slot table (107) do not overlap. However, step 70 in the periodic I / O request interface of FIG.
4 can be changed so that the stream identifiers are duplicated. In this case, the disk input / output processing request for the stream identifier is processed only for the duplication.
This corresponds to handling various playback speeds in moving images, for example. Also in this case, the response time can be reduced by the above-described embodiment. However, at the time of assigning an unused stream identifier in step 703 of FIG. 7, it must be determined whether a new periodic input / output request can be accepted. However, before that, the application program (102) specifies the playback speed of the continuous media data as an argument when calling the periodic input / output request interface. The algorithm for determining whether or not it can be accepted can be considered in the same way as the CPU scheduling problem.

【0095】本発明の別の応用例として、ディスク装置
(108)の数が複数台になり、連続メディア・データ
(109)が複数のディスク装置にストライプ状に格納
される場合を考えることができる。この場合もタイム・
スロット・テーブル(107)をディスク装置台数分用
意し、その個数分の次タイム・スロット管理変数(40
1)を設ければ良い。次ストリーム参照インタフェース
(105)においては、アプリケーション・プログラム
(102)がディスク入出力処理要求を発行したいデー
タを引数として参照し、それが存在するディスクに対す
るタイム・スロット・テーブル(107)を調べる。図
6とは異なり、アプリケーション・プログラム(10
2)は次ストリーム参照インタフェース(105)を実
行する前に、ディスク入出力処理要求を発行したいデー
タを決定する。それ以外は上記の実施の形態と同様であ
る。
As another application example of the present invention, it is possible to consider a case where the number of disk devices (108) is plural and the continuous media data (109) is stored in stripes on a plurality of disk devices. . Again, time
The slot tables (107) are prepared for the number of disk devices, and the next time slot management variables (40
What is necessary is just to provide 1). In the next stream reference interface (105), the application program (102) refers to the data for which a disk input / output processing request is to be issued as an argument, and checks the time slot table (107) for the disk in which it exists. Unlike FIG. 6, the application program (10
2) Before executing the next stream reference interface (105), determine the data for which a disk input / output processing request is to be issued. Other than that, it is the same as the above embodiment.

【0096】[0096]

【発明の効果】本発明は、アプリケーション・プログラ
ムがディスク入出力処理要求を発行するタイミングと、
ディスク入出力スケジューラがそのディスク入出力処理
要求を処理するタイミングを同期させることで、ディス
ク入出力処理の応答時間を短縮することができる。
According to the present invention, the timing at which an application program issues a disk input / output processing request,
By synchronizing the timing at which the disk input / output scheduler processes the disk input / output processing request, the response time of the disk input / output processing can be reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】ディスク入出力方法を実現するためのディスク
入出力処理要求の処理の流れを示す図。
FIG. 1 is a diagram showing a processing flow of a disk input / output processing request for realizing a disk input / output method.

【図2】ストリーム識別子管理テーブルの例を示す図。FIG. 2 is a diagram showing an example of a stream identifier management table.

【図3】タイム・スロット・テーブルの例を示す図。FIG. 3 is a diagram showing an example of a time slot table.

【図4】次タイム・スロット管理変数を示す図。FIG. 4 is a diagram showing next time slot management variables.

【図5】ディスク入出力コマンド・リスト・ヘッダの例
を示す図。
FIG. 5 is a diagram showing an example of a disk input / output command list header.

【図6】アプリケーション・プログラムのフローチャー
ト。
FIG. 6 is a flowchart of an application program.

【図7】周期的入出力要求インタフェースのフローチャ
ート。
FIG. 7 is a flowchart of a periodic input / output request interface.

【図8】周期的入出力完了インタフェースのフローチャ
ート。
FIG. 8 is a flowchart of a periodic input / output completion interface.

【図9】次ストリーム参照インタフェースのフローチャ
ート。
FIG. 9 is a flowchart of a next stream reference interface.

【図10】入出力処理要求インタフェースのフローチャ
ート。
FIG. 10 is a flowchart of an input / output processing request interface.

【図11】ディスク入出力スケジューラのフローチャー
ト。
FIG. 11 is a flowchart of a disk input / output scheduler.

【図12】ハードウェア構成を示す図。FIG. 12 is a diagram showing a hardware configuration.

【図13】スケジューリング・テーブルとタイム・スロ
ット・テーブルの関係を示す図。
FIG. 13 is a diagram showing a relationship between a scheduling table and a time slot table.

【図14】従来のビデオライブラリシステムを示す図。FIG. 14 is a diagram showing a conventional video library system.

【図15】ディスク入出力のタイミング・チャートを示
す図。
FIG. 15 is a diagram showing a timing chart of disk input / output.

【図16】応答時間を短縮したディスク入出力のタイミ
ング・チャートを示す図。
FIG. 16 is a diagram showing a timing chart of disk input / output with reduced response time.

【図17】スケジューリング・テーブルとタイム・スロ
ット・テーブルの同期が取れていない例を示す図。
FIG. 17 is a diagram showing an example in which the scheduling table and the time slot table are not synchronized.

【図18】スケジューリング・テーブルとタイム・スロ
ット・テーブルの同期が取れている例を示す図。
FIG. 18 is a diagram showing an example in which a scheduling table and a time slot table are synchronized.

【符号の説明】[Explanation of symbols]

101…CPUスケジューラ、102…アプリケーション
・プログラム、104…ディスク入出力スケジューラ、
105…次ストリーム参照インタフェース、107…デ
ィスク入出力スケジューリング・テーブル、108…デ
ィスク、109…ストリーム・ファイル、201…スト
リーム識別子管理テーブル、401…次タイム・スロッ
ト管理変数、501…ディスク入出力コマンド・リスト
・ヘッダ、504…ディスク入出力コマンド、508…
ディスク入出力コマンド・リスト。
101: CPU scheduler, 102: application program, 104: disk input / output scheduler,
Reference numeral 105: next stream reference interface, 107: disk I / O scheduling table, 108: disk, 109: stream file, 201: stream identifier management table, 401: next time slot management variable, 501: disk I / O command list -Header, 504: Disk input / output command, 508 ...
Disk I / O command list.

フロントページの続き (72)発明者 中野 隆裕 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 Fターム(参考) 5B065 BA01 CE01 CH13 CH14 5B098 AA05 GA01 GA02 GB01 GB11 GC05 GD03 GD07 GD12 GD14 5C064 BA01 BB05 BC18 BD13 5D044 AB05 AB07 BC01 BC04 CC04 FG21 HL11 Continuation of the front page (72) Inventor Takahiro Nakano 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture F-term in Hitachi, Ltd. System Development Laboratory 5B065 BA01 CE01 CH13 CH14 5B098 AA05 GA01 GA02 GB01 GB11 GC05 GD03 GD07 GD12 GD14 5C064 BA01 BB05 BC18 BD13 5D044 AB05 AB07 BC01 BC04 CC04 FG21 HL11

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】複数の連続メディア・データが複数のディ
スク装置に記録され、いつ、どの連続メディア・データ
に対するディスク入出力処理を行うかを示したタイム・
スロット・テーブルを有し、そのタイム・スロット・テ
ーブルに基づいてディスク入出力処理要求を処理する計
算機システムにおいて、 アプリケーション・プログラムが連続メディア・データ
の識別子を指定し、該連続メディア・データに対するデ
ィスク入出力処理の開始時刻を計算する処理部を有し、 その開始時刻を該アプリケーション・プログラムが参照
する手段を有し、 アプリケーション・プログラムが次に起動する時刻を計
算する処理部を有し、 その起動時刻をアプリケーション・プログラムが参照す
る手段を有し、 該開始時刻と該起動時刻を比較する処理部を有し、 該開始時刻の方が早い場合にアプリケーション・プログ
ラムは該連続メディア・データに対するディスク入出力
処理要求を発行する手段を有することを特徴とするディ
スク入出力方法。
1. A plurality of continuous media data is recorded on a plurality of disk devices, and a time time indicating when and which continuous media data is to be subjected to disk input / output processing.
In a computer system having a slot table and processing a disk I / O processing request based on the time slot table, an application program specifies an identifier of continuous media data, and a disk input for the continuous media data is specified. A processing unit for calculating a start time of the output process; a means for referring to the start time by the application program; a processing unit for calculating a time at which the application program is next started; A means for referring to the time by the application program; and a processing unit for comparing the start time with the start time. If the start time is earlier, the application program inserts the disk into the continuous media data. Having means for issuing an output processing request. Disk input and output method.
JP11167867A 1999-06-15 1999-06-15 Disk input/output method Pending JP2000357099A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11167867A JP2000357099A (en) 1999-06-15 1999-06-15 Disk input/output method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11167867A JP2000357099A (en) 1999-06-15 1999-06-15 Disk input/output method

Publications (1)

Publication Number Publication Date
JP2000357099A true JP2000357099A (en) 2000-12-26

Family

ID=15857562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11167867A Pending JP2000357099A (en) 1999-06-15 1999-06-15 Disk input/output method

Country Status (1)

Country Link
JP (1) JP2000357099A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505490A (en) * 2009-10-26 2012-03-01 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー File I / O scheduling using instant chunking of data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505490A (en) * 2009-10-26 2012-03-01 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー File I / O scheduling using instant chunking of data

Similar Documents

Publication Publication Date Title
KR0163234B1 (en) Data streaming between peer subsystems of a computer system
EP0753820B1 (en) Multimedia playing apparatus utilizing synchronization of scenario-defined processing time points with playing of finite-time monomedia item
JP3563541B2 (en) Data storage device and data storage method
US7822952B2 (en) Context switching device
JP2001216279A (en) Method of interfacing, synchronizing and arbitrating plural processors using time division multiplex memory for real time system
JP2000357099A (en) Disk input/output method
JP3484056B2 (en) Data transfer device and data transfer system
US6292875B1 (en) Control device for storage device and method of accessing the storage device
JPH08147178A (en) Method and device for accessing shared resources
JP4285307B2 (en) Data processing apparatus and method
US6865635B1 (en) Access scheme for a collective resource using a plurality of states
JPH08202595A (en) File system
JP3024686B2 (en) Storage subsystem
JP4622871B2 (en) Data processing system, access control method, apparatus thereof, and program thereof
JPH06202894A (en) Shared memory control circuit
JPH0944438A (en) Multiplex processing method for synchronous type input/ output instruction
JP3416498B2 (en) Server device, control method therefor, and recording medium storing server device control program
JP2000231776A (en) Media server system
JP2024047740A (en) Electronic control device, vehicle control system, and task control method
JP2002175156A (en) Data storage array device and data access method
JPH07153268A (en) Information recorder
JPH09214869A (en) Method for real time multiplex read/write for moving image
JPH1049480A (en) Dma controller
JPH0887864A (en) File system
JPH0830399A (en) Data transmission system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040629

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070323

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070904