(57)【要約】      （修正有）【課題】      デバイスドライバ書き込み関数のコール回数ｎを減少させつつワードデータのバイト単位のデータ書き込み処理時間αを減少させる。【解決手段】ＰＣＩデバイスドライバ１０１がｎワードのデータ１１を共有メモリ領域１２に書き込むときは、デバイスドライバ書き込み関数が一度コールされ、ｎワードのデータの先頭アドレスがＰＣＩデバイスドライバに渡されてｍワード目データ１１１とされ、ｍワード目データがバイトデータ比較部の中でｍワード目上位バイト１１２とｍワード目下位バイト１１３に分けられ、それぞれの前回データとなっているｍ−１ワード目上位バイト１１４とｍ−１ワード目下位バイト１１５とでそれぞれ比較され、一致しなかったときだけバイトデータ書き込み部１１６へ書き込まれる。【選択図】図１
2006085417.tif 000002
【特許請求の範囲】
【請求項１】
ｎワードのデータがＰＣＩデバイスドライバによって書き込まれる共有メモリ領域を備えたＰＣＩデバイスにおいて、
前記ＰＣＩデバイスドライバがバイトデータ比較部とバイトデータ書き込み部を備え、
前記ＰＣＩデバイスドライバが前記ｎワードのデータを前記共有メモリ領域に書き込むときは、
デバイスドライバ書き込み関数が一度コールされ、
前記ｎワードのデータの先頭アドレスが前記ＰＣＩデバイスドライバに渡されてｍワード目データとされ、
そのｍワード目データが前記バイトデータ比較部の中でｍワード目上位バイトとｍワード目下位バイトに分けられ、
それぞれの前回データとなっているｍ−１ワード目上位バイトとｍ−１ワード目下位バイトとでそれぞれ比較され、
一致しなかったときだけ前記バイトデータ書き込み部へ書き込まれる、
ことを特徴とするＰＣＩデバイスドライバの書き込み方法。
【請求項２】
前記ｍワード目上位バイトと前記ｍ−１ワード目上位バイトが一致しなければ前記ｍワード目上位バイトのみが前記バイトデータ書き込み部へ書き込まれ、前記ｍワード目下位バイトと前記ｍ−１ワード目下位バイトのみが一致しなければ前記ｍワード目下位バイトが前記バイトデータ書き込み部へ書き込まれることを特徴とする請求項１に記載のＰＣＩデバイスドライバの書き込み方法。
【請求項３】
共有メモリ領域とともにＰＣＩデバイスに設けられ、ｎワードのデータを前記共有メモリに書き込むＰＣＩデバイスドライバにおいて、
前記ｎワードのデータの先頭アドレスが前記ＰＣＩデバイスドライバに渡されてｍワード目データとされると、そのｍワード目データをｍワード目上位バイトとｍワード目下位バイトに分けてそれぞれの前回データとなっているｍ−１ワード目上位バイトとｍ−１ワード目下位バイトとでそれぞれ比較するバイトデータ比較部と、
比較して一致しなかったときだけ前記バイトデータ書き込み部へ書き込むバイトデータ書き換え部と、
を備えたことを特徴とするＰＣＩデバイスドライバ。
【請求項４】
前記バイトデータ比較部は、前記ｍワード目上位バイトと前記ｍ−１ワード目上位バイトが一致しなければ前記ｍワード目上位バイトのみを前記バイトデータ書き込み部へ書き込み、前記ｍワード目下位バイトと前記ｍ−１ワード目下位バイトのみが一致しなければ前記ｍワード目下位バイトを前記バイトデータ書き込み部へ書き込む
ことを特徴とする請求項３に記載のＰＣＩデバイスドライバ。
【請求項５】
共有メモリ領域とともにＰＣＩデバイスに設けられ、ｎワードのデータを前記共有メモリに書き込むＰＣＩデバイスドライバにおいて、
前記ｎワードのデータの先頭アドレスが前記ＰＣＩデバイスドライバに渡されてｍワード目データとされると、そのｍワード目データをｍワード目上位バイトとｍワード目下位バイトに分けてそれぞれの前回データとなっているｍ−１ワード目上位バイトとｍ−１ワード目下位バイトとでそれぞれ比較するバイトデータ比較部と、
比較して一致した場合はｍワード目上位バイト部のみを前記バイトデータ書き込み部へ書き込むバイトデータ書き換え部と、
を備えたことを特徴とするＰＣＩデバイスドライバ。
【請求項６】
前記バイトデータ比較部は、前記ｍワード目上位バイトと前記ｍ−１ワード目上位バイトが一致し、同様に前記ｍワード目下位バイトと前記ｍ−１ワード目下位バイトが一致すれば前記ｍワード目上位バイトのみを前記バイトデータ書き込み部へ書き込む
ことを特徴とする請求項５に記載のＰＣＩデバイスドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣＩデバイスにあるメモリの領域のうち特定アドレスの共有メモリ領域へワードデータを連続して書き込むときの書き込み方法およびＰＣＩデバイスドライバに関する。  
【背景技術】
【０００２】
従来のＰＣＩデバイスドライバは、ｎワードのデータをＰＣＩデバイスにあるメモリの領域のうち特定アドレスの共有メモリ領域に書き込むときは、ワード毎にデバイスドライバ書き込み関数をコールしてからバイト単位で書き込む、という書き込み方がとられるのが一般的である（例えば特許文献１参照）。
【特許文献１】特開平１０−３４０１０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
そのような従来の書き込み方をすれば、共有メモリ領域は、書き込む毎に特定の数値でクリアされるということはなく、ｎワードのワードサイズのデータを連続して書き込むときは、ワードサイズのデータ毎にデバイスドライバ書き込み関数がコールされていた。そのときの書き込みに要する時間はバイト書き込み時間をα１とするとデータ書き込み処理時間αがα=α１×２となり、デバイスドライバ書き込み関数をコールする毎にＯＳによる一定の処理時間βがかかるため、同じ共有メモリ領域にｎワードのデータを連続して書き込むときは、デバイスドライバ書き込み関数がｎ回コールされて全データの書き込み処理時間γはγ＝（α＋β）×ｎとなっている。このためデータサイズが大きければ処理に時間がかかってシステムが低速化してしまい、高速性が求められるシステムとしては問題となっていた。そこで高速性が求められるシステムでは、処理時間γを減少させることが課題となっており、バイト書き込み時間α１とＯＳに依存する処理時間βを減少させることが難しいため、デバイスドライバコール回数ｎと書き込み処理時間αを減少させることが課題となっていた。
本発明はこのような課題に鑑みてなされたものであり、共有メモリ領域へｎワードのデータを連続して書き込む時にデバイスドライバ書き込み関数のコール回数ｎを減少させつつワードデータのバイト単位のデータ書き込み処理時間αを減少させることができる共有メモリ書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、ｎワードのデータがＰＣＩデバイスドライバによって書き込まれる共有メモリ領域を備えたＰＣＩデバイスにおいて、前記ＰＣＩデバイスドライバがバイトデータ比較部とバイトデータ書き込み部を備え、前記ＰＣＩデバイスドライバが前記ｎワードのデータを前記共有メモリ領域に書き込むときは、デバイスドライバ書き込み関数が一度コールされ、前記ｎワードのデータの先頭アドレスが前記ＰＣＩデバイスドライバに渡されて前記ｍワード目データとされ、そのｍワード目データが前記バイトデータ比較部の中でｍワード目上位バイトとｍワード目下位バイトに分けられ、それぞれの前回データとなっているｍ−１ワード目上位バイトとｍ−１ワード目下位バイトとでそれぞれ比較され、一致しなかったときだけ前記バイトデータ書き込み部へ書き込まれる、ことを特徴としている。
また請求項２に記載の発明は、前記ｍワード目上位バイトと前記ｍ−１ワード目上位バイトが一致しなければ前記ｍワード目上位バイトのみが前記バイトデータ書き込み部へ書き込まれ、前記ｍワード目下位バイトと前記ｍ−１ワード目下位バイトのみが一致しなければ前記ｍワード目下位バイトが前記バイトデータ書き込み部へ書き込まれることを特徴としている。
また、請求項３に記載の発明は、共有メモリ領域とともにＰＣＩデバイスに設けられ、ｎワードのデータを前記共有メモリに書き込むＰＣＩデバイスドライバにおいて、前記ｎワードのデータの先頭アドレスが前記ＰＣＩデバイスドライバに渡されてｍワード目データとされると、そのｍワード目データをｍワード目上位バイトとｍワード目下位バイトに分けてそれぞれの前回データとなっているｍ−１ワード目上位バイトとｍ−１ワード目下位バイトとでそれぞれ比較するバイトデータ比較部と、比較して一致しなかったときだけ前記バイトデータ書き込み部へ書き込むバイトデータ書き換え部と、を備えたことを特徴としている。
請求項４に記載の発明は、前記バイトデータ比較部は、前記ｍワード目上位バイトと前記ｍ−１ワード目上位バイトが一致しなければ前記ｍワード目上位バイトのみを前記バイトデータ書き込み部へ書き込み、前記ｍワード目下位バイトと前記ｍ−１ワード目下位バイトのみが一致しなければ前記ｍワード目下位バイトを前記バイトデータ書き込み部へ書き込むことを特徴としている。
また、請求項５に記載の発明は、共有メモリ領域とともにＰＣＩデバイスに設けられ、ｎワードのデータを前記共有メモリに書き込むＰＣＩデバイスドライバにおいて、前記ｎワードのデータの先頭アドレスが前記ＰＣＩデバイスドライバに渡されてｍワード目データとされると、そのｍワード目データをｍワード目上位バイトとｍワード目下位バイトに分けてそれぞれの前回データとなっているｍ−１ワード目上位バイトとｍ−１ワード目下位バイトとでそれぞれ比較するバイトデータ比較部と、比較して一致した場合に前記バイトデータ書き込み部へ書き込むバイトデータ書き換え部と、を備えたことを特徴としている。
請求項６に記載の発明は、前記バイトデータ比較部は、前記ｍワード目上位バイトと前記ｍ−１ワード目上位バイトが一致し、同様に前記ｍワード目下位バイトと前記ｍ−１ワード目下位バイトが一致した場合はなければ前記ｍワード目上位バイトを前記バイトデータ書き込み部へ書き込むことを特徴としている。
【発明の効果】
【０００５】
請求項１ないし６に記載の本発明によると、特定のアドレスに連続して書き込むときにＰＣＩデバイス共有メモリ領域がある特定の数値でクリアされることはなく、共有メモリ書き込みデバイスドライバコール回数ｎをｎ＝１に減少させることができる。そして前回書き込みワードデータと比較したときに、バイト単位で前回データと同一であれば、バイト単位のデータ書き込み処理時間合計αをα=α1に減少させることができ、全データの書き込み処理時間γを減少させることができるという効果がある。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図を参照して説明する。
【実施例】
【０００７】
図１は、本発明の方法を実施するデバイスドライバの構成を示すブロック図である。図において１１はｎワードのワードサイズのデータであり、１０１はＰＣＩデバイスドライバ、１１１はデータ１１のｍワード目データ、１１２はｍワード目データ１１１の上位バイト、１１３はｍワード目データ１１１の下位バイト、１１４はデータ１１のｍ−１ワード目上位バイト、１１５はデータ１１のｍ−１ワード目下位バイト、１１６はｍワード目上位バイト１１２から受け取ったｍワード目上位バイト１１２であって共有メモリ領域１２に書き込まれる書き込み上位バイト、１１７はｍワード目上位バイト１１２から受け取ったｍワード目下位バイト１１３であって共有メモリ領域１２に書き込まれる書き込み下位バイト、１２１はバイトデータ比較部、１３１はバイトデータ書き込み部、１２は書き込まれる共有メモリ領域である。
【０００８】
共有メモリ領域１２へ連続してデータ１１を書き込むときは、まず、図示しないデバイスドライバ書き込み関数が一度コールされるだけでデータ１１の先頭アドレスがＰＣＩデバイスドライバ１０１に渡され、渡された先頭アドレスの１ワードがｍワード目データ１１１となる。
このときＰＣＩデバイスドライバ１０１の内部では、１ワード単位で先頭アドレスをずらしたデータ１１のデータがｎ回分参照されることになるので、デバイスドライバコールは1回で済み、デバイスドライバコール回数ｎは１となる。ｍワード目データ１１１はバイトデータ比較部１２１でｍワード目上位バイト１１２とｍワード目下位バイト１１３に分けられ、それぞれの前回データとなっているｍ−１ワード目上位バイト１１４とｍ−１ワード目下位バイト１１５とでそれぞれ比較される。そして一致しなかったときだけバイトデータ書き込み部１３１へ書き込まれる。ｍワード目上位バイト１１２とｍ−１ワード目上位バイト１１４が一致しなければｍワード目上位バイト１１２が書き込み上位バイト１１６へ書き込まれ、ｍワード目下位バイト１１３とｍ−１ワード目下位バイト１１５が一致しなければｍワード目下位バイト１１３が書き込み下位バイト１１７へ書き込まれる。システム初期化後のｍ＝１のときのｍワード目データ１１１は、初期化後の状態では共有メモリ領域１２にどのようなデータが書かれているか不明であるため、ｍワード目データ１１１は無条件ですべて書き込まれる。そして、比較されたｍワード目上位バイト１１２とｍワード目下位バイト１１３がいずれも一致しているときは、共有メモリ領域にデバイスドライバからのアクセスがなければＰＣＩデバイスがデータを取得できないシステムになっているため、ｍワード目上位バイト１１２のみがバイトデータ書き込み部１３１へ渡される。
【０００９】
このためバイトデータ比較部１２１からバイトデータ書き込み部１３１へ渡されるのは、ｍワード目上位バイト１１２とｍワード目下位バイト１１３の両方か、ｍワード目上位バイト１１２のみか、ｍワード目下位バイト１１３のいずれかになる。
バイトデータ比較部１２１がバイトデータを比較した後は、ｍワード目上位バイト１１２とｍワード目下位バイト１１３がそれぞれｍ−１ワード目上位バイト１１４とｍ−１ワード目下位バイト１１５に格納され、同時にバイトデータ書き込み部１３１の書き込み上位バイト１１６と書き込み下位バイト１１７に書き込まれてこれらが共有メモリ領域１２に書き込まれる。
以上のことから、前回書き込みワードデータの上位バイトか下位バイトのいずれかが等しいか、もしくは、上下バイトとも等しい場合は、ワードデータのバイト単位のデータ書き込み処理時間合計αはα１と等しくなる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例を示すシステム構成図
【符号の説明】
【００１１】
１１  データ、                            １２  共有メモリ領域、
１０１  ＰＣＩデバイスドライバ、   １２１  バイトデータ比較部、
１３１  バイトデータ書き込み部
【図１】
2006085417.tif 000003