(57)【要約】  本発明は、アプリケーションレベルのソフトウェアが計算中のハードウェアから一時的な性能ブーストを明らかにリクエストできるようにする命令、プロセッサ、システムおよび方法を開示するものである。より詳細には、本発明は性能ブーストを達成するようプロセッサの動作周波数を高度に管理することに関する。本発明に係わるプロセッサは、ピーク時間が生じ得る場合に電子交換または同様なアプリケーションで実現できる。
2009526297.tif 000002
【特許請求の範囲】
【請求項１】
可変動作周波数を発生するための周波数発生ユニットと、
前記動作周波数を変更するための命令を含むメモリと、
ユーザー命令を受けるためのインターフェースとを備え、
ユーザーレベルのアプリケーションから送られたユーザー命令により、前記インターフェースを介し、前記動作周波数を変えるための命令を起動できるプロセッサ。
【請求項２】
前記動作周波数を最適にするよう、前記プロセッサの温度を測定するための温度センサを更に備えた、請求項１に記載のプロセッサ。
【請求項３】
前記周波数発生ユニットは、前記可変動作周波数を発生するよう異なる周波数を発生する２つ以上の周波数発生デバイスを備える、請求項１に記載のプロセッサ。
【請求項４】
前記周波数発生ユニットは、前記可変動作周波数を発生するよう、前記異なる周波数のうちの１つを選択するためのスイッチを更に備える、請求項３に記載のプロセッサ。
【請求項５】
前記周波数発生ユニットは、ある周波数を発生する周波数発生デバイスと、前記周波数を前記可変動作周波数に変えるための分周器とを備える、請求項１に記載のプロセッサ。
【請求項６】
前記周波数発生ユニットは、ある周波数を発生する周波数発生デバイスと、可変動作周波数を出力するよう前記周波数発生デバイスを直接制御するための制御手段とを備える、請求項１に記載のプロセッサ。
【請求項７】
請求項１に記載のプロセッサを備える電子デバイス。
【請求項８】
請求項１に記載のプロセッサを備える電子交換所。
【請求項９】
プロセッサのメモリ内に記憶されており、前記プロセッサ内の動作周波数を制御する命令であって、前記命令は、この命令に従って動作周波数を変えるようユーザーレベルのアプリケーションによって起動可能であることを特徴とする命令。
【請求項１０】
前記動作周波数の前記変更は、動作負荷の将来の増加を取り扱うよう、動作周波数を一時的に高めることである、請求項９に記載の命令。
【請求項１１】
前記命令はコマンド部分と、プロセッサ内の前記動作周波数を変えるためのデータを備えた数値部分とを含む、請求項９に記載の命令。
【請求項１２】
ユーザーの行為に基づき、プロセッサの性能を変えるよう、前記プロセッサの動作周波数の変更をリクエストするためのプログラム命令を備えた、取引のためのユーザーレベルのアプリケーション。
【請求項１３】
前記ユーザーレベルのアプリケーションは、
サーバーアプリケーションと、
ユーザーアプリケーションとを備えたアプリケーションの群から選択されたものである、請求項１２に記載のユーザーレベルのアプリケーション。
【請求項１４】
前記ユーザーレベルのアプリケーションは、
前記プロセッサにおける作業負荷の将来の増加の予測に基づき、前記プロセッサの動作周波数の増加をリクエストするように更にプログラムされている、請求項１２に記載の取引のためのユーザーレベルのアプリケーション。
【請求項１５】
作業負荷の将来の変更の予測に基づき、プロセッサの性能を高めるための方法であって、前記プロセッサは、メモリ内に記憶された命令を備えるようになっており、前記方法は、
ユーザーレベルのアプリケーションから、前記プロセッサの動作周波数を変更するためのユーザー命令を送るステップと、
前記ユーザー命令に基づき、前記メモリに記憶された命令を使用することにより、前記動作周波数を変更するステップとを備えた、プロセッサの性能を高めるための方法。
【請求項１６】
請求項１２に記載のコンピュータプログラム製品がロードされた、コンピュータで読み取り可能なデータキャリア。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、一般的にはコンピュータシステムおよび電子デバイスにおけるプロセッサの動作周波数の管理に関する。
【背景技術】
【０００２】
（発明の背景）
今日、コンピュータシステムには多くの異なるタイプが存在する。このシステムは、別々のコンピュータから、１つ以上のネットワークによって相互接続された分散型コンピュータシステムまでの種類が存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記システムおよびコンピュータにおけるより重要な問題のうちの１つは、これらシステムおよびコンピュータが、ある時点または別の時点でピーク時間が生じ、システムおよびコンピュータがこのピーク時間を処理することが困難な時間を有し得ることである。通常、システムは所定のレベルまでピーク時間を処理するように設計されている。この所定のレベルは、通常ハードウェアのコストに対して重みが定められたシステムにおける将来のトラヒックのシナリオの予測に基づいて定められている。従って、システムの能力を評価しようとするとき、システムにおける将来のトラヒックを過小評価する危険性があり、この結果、システムのシャットダウンが生じ得る。システムの能力が十分でない場合に生じる出来事の一例が、２００６年１月１８日に、東京証券取引所（ＴＳＥ）で生じた件である。「すべての取引の一時的な中断」（ＴＳＥニュース）なる論文によれば、証券取引所はシステムクラッシュを防止するために閉鎖されなければならなかった。
【０００４】
従って、システムの能力が不十分となる状況が生じ得る。この場合、システムは、例えばシステムを使用するユーザーによって送られるすべてのリクエストを処理できなくなったり、処理が困難となる時間が生じたり、または大量の情報を送ることが困難な時間が生じたりする。この結果、ユーザーは自分たちのリクエストが処理されるまで長時間待たなければならなかったり、このために極めて大きなフラストレーションを感じたり、またはより悪い場合には、システムクラッシュが制御不能となるのを防止するために、システムをシャットダウンしなければならない場合もあり得る。
【０００５】
このような状況は、特に金融取引システム（電子取引）で生じ得る。これらシステムは金融証券、エネルギー契約などの取引をしているトレーダーおよび／またはブローカーからの多くの取引価格の指定／注文を受ける。ピーク時間が生じ得るときの例として、取引開始前のオークションの時間、またはプロセッサが注文書の変更をしなければならいようなタスクが送られた場合、または情報が広まった場合、または、例えば政治的な声明やニュースにおける噂のような何か別のことが生じた場合、またはトレーダーから送られる取引可価格の指定／注文の増加の引き金を引くような出来事が生じた場合を挙げることができる。
【０００６】
大量の取引およびピーク時間が生じる他のアプリケーションとして、銀行システム、卸売システムおよびインターネットブローカーサービスがある。
【０００７】
コンピュータの性能を高める既知の１つの例は、プロセッサが通常の速度よりも高いクロック速度で静的に動作するように、プロセッサをハード配線することである。（このことは一般にオーバークロッキングと称されている。）このオーバークロッキングは、コンピュータシステムがより高い速度で連続的に動作させられるので、熱の問題を生じ、所定のレベルのセキュリティが必要とされる業務用システムには適当ではない。趣味人は、ゲームなどの性能を高めるために、自分たちのシステムを静的にオーバークロッキングすることが多い。このアプローチによる別の問題は、マニュアルでハード配線により実行するので、容易に周波数を下げることができないことである。
【０００８】
一部のコンピュータシステムは、エネルギーを節約し、熱および関連するノイズを低減するために、可変（クロック）速度を使用している。かかる技術の１つとして、インテル社のスピードステップ技術がある。しかしながらこの技術は、バッテリー電力を節約し、ノイズを低減するために、バッテリー給電式のラップトップコンピュータおよびオフィス用のデスクトップコンピュータに使用されている。これら例ではユーザーによるあるレベルの不活動状態を検出し、スーパーバイザーステート命令によりクロックをスローダウンするのは、オペレーティングシステムおよび／または「ＢＩＯＳ」である。
【０００９】
スーパーバイザーステート命令はオペレーティングシステムのために確保された「スーパーバイザーステート」または一部の同様なモードでしか実行できない命令である。
【００１０】
従って、オーバークロッキングは既知であり、ほとんどのコンピュータチップはメーカーが指定したレートよりも高いレートで動作し得る。しかしながら、上記技術は主に熱に関連する問題により故障の危険性を高めるだけでなく、プロセッサを静的にオーバークロックするのにコンピュータのマザーボードに対して物理的な変更を加える必要もある。
【００１１】
このように、今日のプロセッサの動作周波数を静的に高めることが知られている。すなわち、例えば不活動状態に起因し、プロセッサがクロック周波数を下げ、次に活動を経験したとき、ＯＳは動作周波数を高める。しかしながら、ＯＳはメーカーが指定する最大レートまで周波数をスピードアップするだけであり、また、その時期はメーカーが指定する時期だけであり、その後でしか作業負荷を増加できない。このことは、プロセッサの動作周波数を管理する上で極めて非効率的な方法である。その理由は、プロセッサがヘビーな作業負荷状況にあることを認識するまでしばらく時間がかかるからである。プロセッサの観点からすると、このことをプロセッサが認識するためにかかる時間は、かなり長くなり得る。
【００１２】
従って、プロセッサは極めて非効率的に管理されるので、この結果、プロセッサが実際にでき得る能力利用率と比較して、能力利用率が低くなる。
【００１３】
従って、本発明の目的は、上記問題の一部に対する少なくとも部分的な解決案を提供することにある。
【００１４】
本発明の別の目的は、プロセッサの能力利用率を高める解決案を提供することにある。
【００１５】
本発明の更に別の目的は、基礎となるハードウェアの働きを高める解決案を提供することにある。
【００１６】
本発明の更に別の目的は、アプリケーションレベルのソフトウェアが基礎となるハードウェアからの性能向上をリクエストできる解決案を提供することにある。
【００１７】
本発明の更に別の目的は、プロセッサの動作周波数を変える解決案を提供することにある。
【００１８】
本発明の更に別の目的は、ユーザーのために時間を節約できる解決案を提供することにある。
【００１９】
本発明の更に別の目的は、プロセッサの要求の実行をするための時間をカットできる解決案を提供することにある。
【００２０】
本発明の更に別の目的は、プロセッサの要求リクエストが到達する直前にプロセッサの動作周波数を高める解決案を提供することにある。
【００２１】
本発明の更に別の目的は、応答時間を短縮できる解決案を提供することにある。
【課題を解決するための手段】
【００２２】
本発明の第１の様相によれば、上記およびそれ以外の目的は、可変動作周波数を発生するための周波数発生ユニットと、
前記動作周波数を変更するための命令を含むメモリと、
ユーザー命令を受けるためのインターフェースとを備え、
ユーザーレベルのアプリケーションから送られたユーザー命令により、前記インターフェースを介し、前記動作周波数を変えるための命令を起動できるプロセッサによって達成される。
【００２３】
よって、プロセッサは、動作周波数を変えるためのユーザー命令をユーザーレベルアップリケーションからインターフェースを介して受信し、
このユーザー命令に基づきメモリ内に記憶されている命令を使用して動作周波数を変えるようにプログラムされている。
【００２４】
上記プロセッサは、ユーザーレベルのアプリケーションが直接性能の向上、例えばプロセッサの動作周波数の増加をリクエストできるという利点を有する。通常、ハードウェアオペレーションを開始したときのオペレーティングシステムは、次のようなプロセスを経過しなければならない。すなわちユーザーモードからＯＳモードに遷移し、ＯＳがハードウェアの命令を実行し、次に再びユーザーモードに戻るプロセスを経過しなければならない（これにはスケジューリングの決定とその他のプロセスの起こり得るディスパッチを必要とし得る）。これらステップを、オーバーヘッドコスト、例えば時間のコストおよびプロセッサパワーのコストなどと称すことができる。上記のような遷移プロセスは、コンピュータまたはコンピュータシステムをスローダウンさせる。従って、本発明に係わるプロセッサは、オーバーヘッドをカットでき、現在利用されていないプロセッサの能力を活用し、よって他のプロセッサと比較して、より高速の結果をもたらす。
【００２５】
ほとんどのコンピュータシステムに対し、ユーザーレベルのアプリケーションは、例えば作業負荷の変化に対して初期に警告するシステムのうちの最初のラインとなり得る。その理由は、ユーザーが実行されるべき異なるオペレーション／機能をリクエストするのはユーザーアプリケーション内であるからである。ユーザーレベルアプリケーションは、例えば既知のプロセッサに要求するオペレーション／機能がリクエストされたときに、いくつかの異なる方法でスピードアップをする必要性を検出しても良い。
【００２６】
ユーザーレベルアプリケーションがサーバーアプリケーションである場合、スピードアップの必要性は、例えば入力キューの増加によって検出できる。
【００２７】
従って、ユーザーによりプロセッサに要求するオペレーション／機能がリクエストされた場合、ユーザーレベルのアプリケーションはプロセッサに対し、スピードアップユーザー命令を送ることができ、このように動作周波数を高めることにより、作業負荷の将来の増加に対してプロセッサを準備させることができる。
【００２８】
ユーザーの行為に基づき、ユーザーアプリケーション内でユーザー命令をトリガーし、送ることが好ましい。ユーザーの行為は、ユーザーの行為に基づきインターフェースを介して直接的に、または間接的に、ユーザーが行い得る任意のタイプの行為でよい。例えばユーザーの行為は、取引行為、削除行為、修正行為、スクリーン更新行為、スピードアップ行為の直接リクエストであり得るが、これら行為のリストはすべてを網羅したものではなく、本明細書に述べなかった他の行為もこのリストに追加することができる。
【００２９】
一実施例では、リスト、例えば１０個のほとんどのプロセッサに要求する行為を含む「上位１０」（トップテン）のリストに属すユーザー行為により、ユーザー命令をトリガーし、送ることができる。従って、ユーザーがある行為を実行すると、システムはこの行為がリストに属すかどうかをチェックし、属す場合、システムはスピードアップユーザー命令を送る。このリストは、連続的に更新でき、システムからの統計に基づくことができる。従って、別の実施例では、本発明は、「上位１０」のリストを更新する自動学習機能を含むことができる。この上位１０のリストは、任意の数のプロセッサに要求する行為を含むことができ、よって行為の数は１０に限定されない。よってリストの範囲は、本発明を使用するコンテクストによって決定でき、この機能はアプリケーションソフトウェアによって制御されることが好ましい。
【００３０】
ユーザーの行為は、サーバーアプリケーションによって自動的に実行される行為でもよい。よってユーザーによりユーザーレベルアプリケーションから送られたタスクをサーバーが受信すると、サーバー上のサーバーアプリケーションはプロセッサの動作周波数の変更、例えばスピードアップリクエストをリクエストしても良い。
【００３１】
従って、ユーザーレベルのアプリケーションはサーバーアプリケーションでもある。しかしながらこの場合、サーバーに基づくユーザーレベルアプリケーションは、クライアントコンピュータからのデータを受信し、その後、そのデータがプロセッサに要求するタスクまたは命令を含むかどうかを見るために、データを分析するソフトウェア機能を有することが好ましく、データがそのようなタスクまたは命令を含む場合、サーバーに基づくユーザーレベルアプリケーションは作業負荷を取り扱うことになるプロセッサの動作周波数のスピードアップをリクエストしても良い。
【００３２】
プロセッサは温度に基づき、かつユーザー命令に基づき、動作周波数を最適にするために、プロセッサの温度を測定するための温度センサを含むことが好ましい。このように、プロセッサが温度に対して最適速度で動作するよう、動作周波数を制御することが可能である。
【００３３】
プロセッサは、スピードアップモードで実行された命令の数をカウントするためのカウンターを更に含むことができ、スピードアップモードで実行された命令の数が所定のスレッショルドに達すると、スピードアップモードはキャンセルされるか、または低下される。このように、スレッショルドはプロセッサを過熱させないような数値に好ましく設定されるので、温度の問題を回避できる。よってこのことは、熱検出の代替方法および／または相補的な方法となり得る。
【００３４】
従って、ユーザー命令が例えば最大ポテンシャルの９５％までの動作周波数のスピードアップを通常トリガーする場合、温度が原因で、増加量が潜在的な最大ポテンシャルの９０％までにしかならないように、動作周波数を最適化することが可能である。この最適化は、ある関数、例えば線形関数もしくは指数関数などに基づくことができる。従って、所定のスレッショルドの代わりにこれを達成するためにスピードアップの連続制御も可能である。
【００３５】
周波数発生ユニットは、可変動作周波数を発生するように異なる周波数を発生する２つ以上の周波数発生デバイスを含むことができる。この実施例では、周波数発生ユニットは、可変動作周波数を発生するよう、異なる周波数のうちの１つを選択するためのスイッチを備えることが好ましい。
【００３６】
周波数発生デバイスは、電流が加えられると一定の周波数で振動し、クロック周波数を発生する水晶発振子とすることができる。しかしながら、プロセッサ内で使用できるクロック周波数を発生できるものであれば、どんなデバイスも使用できる。
【００３７】
更に、この周波数発生ユニットは、ある周波数を発生する周波数発生デバイスと、この周波数を可変動作周波数に変えるための分周器（ｄｉｖｉｓｏｒ）とを含むことができる。本発明に係わる命令が分周比を変えることにより、動作周波数を変えるようになっていることが好ましい。
【００３８】
この分周比は、整数または浮動少数でよく、この数によって可変動作周波数を得るように分周器を制御できる。
【００３９】
周波数発生ユニットは、ある周波数を発生する周波数発生デバイスと、可変動作周波数を出力するよう、周波数発生デバイスを直接制御するための制御手段とを含むことができる。
【００４０】
例えば制御手段は、水晶発振子へ可変圧力を発生するデバイスまたは水晶発振子の温度変化を発生するデバイスとすることができ、このようにして水晶発振子の周波数を変えることができる。
【００４１】
プロセッサは、電子デバイス、例えばコンピュータ、サーバーまたはハンドヘルドのポータブルデバイス、例えばモバイル電話、パームパイロット、カメラまたはピーク期間中またはプロセッサに要求する命令に対して性能を高める必要がある他の任意の電子デバイスで実現できる。
【００４２】
かかる電子デバイスにはプロセッサに要求するタスクを実行するよう、基礎となるハードウェアの性能の向上をリクエストできるという利点がある。従って、電子デバイスはユーザーがリクエストしたプロセッサに要求するタスクを極めて早期の段階で識別できるので、ユーザーに対し、より高速に結果を送ることができる。
【００４３】
好ましい実施例では、ＯＭＸシステムズＣＬＩＣＫ（登録商標）、ＳＡＸＥＳＳ（登録商標）などの電子交換システムまたはＳＥＣＵＲ（登録商標）などの手形交換システムでプロセッサが使用される。
【００４４】
従って、本発明に係わるプロセッサを使用する電子交換所には、プロセッサに要求するリクエストを受信した場合／受信した時に、基礎となるハードウェアの性能の向上をリクエストできるという利点がある。かかるプロセッサに要求するリクエストの一例は、商社のためのすべての注文を削除するリクエスト、または電子交換環境で生じ得る他の任意のプロセッサに要求するリクエストである。
【００４５】
本発明の第２の様相によれば、上記目的は、プロセッサのメモリに記憶される、プロセッサにおける動作周波数を制御する命令であって、動作周波数を変えるためにユーザーレベルのアプリケーションによって起動できることを特徴とする命令を提供することによって達成できる。
【００４６】
従って、上記命令には追加コスト、例えば時間のコストなどの追加的コストを生じさせる無駄なステップのようなオーバーヘッドを直接劇的にカットできる解決案を提供できるという利点がある。従って、この命令は早期の段階でハードウェアの性能変化を要求することを可能にする。このように、現在使用されていない能力にアクセスすることができる。
【００４７】
クロック周波数を制御する際に、オペレーティングシステムによりこの命令を起動する必要はないので、例えばプロセッサの早期のスピードアップを達成することが可能である。
【００４８】
前記動作周波数の前記変更は、動作負荷の将来の増加を取り扱うよう、動作周波数を一時的に高めることである。しかしながら、動作周波数を下げてもよい。
【００４９】
プロセッサの利用率を最適化するように周波数を制御できる。従って、例えばユーザーレベルのアプリケーションから送られるリクエストに基づき、プロセッサの速度を決定しても良い。しかしながら、追加機能はプロセッサから発生される熱に基づいて、プロセッサの利用率を最適にすることも可能である。従って、温度を測定する手段を使用する必要性が生じる場合がある。よって、プロセッサの過熱を防止するために周波数をしばらくの間低下させ、このようにして熱を許容できるレベルに維持すると同時に、プロセッサを最大速度で動作させることができる。
【００５０】
本発明の第３の様相によれば、上記およびそれ以外の目的は、ユーザーの行為に基づき、プロセッサの性能を変えるよう、前記プロセッサの動作周波数の変更をリクエストするためのプログラム命令を備えた、取引のためのユーザーレベルのアプリケーションによっても達成できる。
【００５１】
上記ユーザーレベルのアプリケーションは、商品および／または金融証券を取引するための取引アプリケーション、例えばＣＬＩＣＫ  Ｔｒａｄｅ（登録商標）であることが好ましい。よって、コンピュータシステムのフロントエンド、例えばクライアントコンピュータにソフトウェアモジュールがインストールされる。
【００５２】
しかしながら、ユーザーレベルのアプリケーションは電子取引所内の任意のソフトウェアモジュール、例えばマッチングモジュールソフトウェアまたは他の任意のサーバーに基づくアプリケーションでもよい。従って、コンピュータシステムのバックエンドにソフトウェアモジュールがインストールされる。
【００５３】
ユーザーレベルのアプリケーションを使用することにより、ユーザーが取引する際に生じるユーザーの行為の一部の結果として、プロセッサに要求するタスクが電子交換所に送られることがある。かかるタスクがユーザーによって選択されると、取引のためのユーザーレベルアプリケーションはスピードアップリクエストを含む機能を選択し、この機能をタスクと共に送ることができ、このようにタスクをより高速で実行するよう、性能の向上を求めることができる。
【００５４】
本発明の第４の様相によれば、上記およびそれ以外の目的は、作業負荷の将来の変更の予測に基づき、プログラムの働きを高めるための方法であって、前記プロセッサは、メモリ内に記憶された命令を備えており、前記方法は、
ユーザーレベルのアプリケーションから、前記プロセッサの動作周波数を変更するためのユーザー命令を送るステップと、
前記ユーザー命令に基づき、前記メモリに記憶された命令を使用することにより、前記動作周波数を変更するステップとを備えた、プロセッサの性能を高めるための方法によっても達成できる。
【００５５】
上記方法には、プロセッサに要求するリクエストをより高速で実行するように、基礎となるハードウェアの性能の向上を要求できるという利点がある。
【００５６】
従って、アプリケーションがこの特定の命令を直接実行できるようにすると、オーバーヘッドを劇的にカットできる。通常、ユーザーモードのアプリケーションは合理性の理由からハードウェアの直接アクセスが防止されているが、命令が計算結果を変更しないこのような特殊な場合、命令がプロセッサの動作周波数を変えることによって結果をより高速で送り、よってアプリケーションプログラムがオペレーティングシステムの介入を受けることなく、直接この命令を安全に利用することができる。
【００５７】
このユーザーレベルのアプリケーションはコンピュータで読み取り可能なデータキャリアにロードされるコンピュータプログラム製品でもよいし、またはインターネットのようなネットワークを介してダウンロードできるコンピュータプログラム製品でもよい。
【００５８】
本発明は、達成される現在の最大値を越える、より高い絶対ピーク負荷値を可能にするシステムを設計するよう使用できる。システムは持続される負荷能力よりもかなり大きい短期間のピーク負荷を取り扱うことができるので、コンピュータシステムをかなり大きく設計しなくても、コスト効率を改善することもできる。
【００５９】
更に、コストのかかる取引に対する妥当な応答回数をコンピュータシステムが維持できるようにもする。
【００６０】
以下説明する実施例を参照すれば、本発明の上記およびそれ以外の様相が明らかとなろう。
【００６１】
これら図は、本発明の理解を容易にするように略図で作図することが好ましい。従って、同じ略図法で作図できる他の設計も、本明細書に暗黙に開示されている。
【実施例】
【００６２】
（好ましい実施例の説明）
本発明は、ＢＩＯＳ／オペレーティングシステム（ＯＳ）およびデバイスドライバーによるアクセスと異なり、アプリケーションレベルのソフトウェア（ＳＷ）により直接好ましくアクセスできる新規な２つのハードウェア命令を提案するものである。
【００６３】
ユーザーモード命令とは、オペレーティングシステムによるアシストがなくても、アプリケーションプロセスを直接実行できる命令のことである。通常、ハードウェアに関連する命令は、オペレーティングシステムに対して確保されたスーパーバイザーステートまたはある同様なモードでしか実行できない。従って、アプリケーションがハードウェアオペレーションを開始するには、通常次のプロセスを経過しなければならない。
−ユーザーモードからＯＳモードへ移行すること。
−ＯＳがハードウェアの命令を実行すること。
−ユーザーモードに戻るように移行すること。
（この移行をするには、スケジューリングの決定および他のプロセスの起こりうるディスパッチを必要とする場合がある。）
【００６４】
本発明に係わる最初の命令は、Ｓｐｅｅｄ＿Ｕｐ（ｘ％）であり、この命令は好ましくはできるだけ長い時間にわたって、最大可能なスピードアップのｘ％のスピードアップをすることをハードウェアに要求する。
【００６５】
この最大時間は、一般にＣＰＵまたは周辺チップの高くなった温度によって決定され、例えば一旦プリセットされた最大温度に達すると、スピードアップがキャンセルまたは低下される。最大時間は、スピードアップモードで実行された命令の数をカウントするカウンターによっても決定でき、スピードアップモードで実行された命令の数が所定のスレッショルドに達すると、スピードアップモードがキャンセルまたは低下される。
【００６６】
本発明に係わる第２の命令は、リセット命令、例えば通常の実行モードへ自発的にアプリケーションがリセットできるための手段としての、Ｓｐｅｅｄ＿Ｕｐ＿ｒｅｌｅａｓｅ（）であることが好ましい。
【００６７】
上記２つの命令は、ユーザーモード命令であることが好ましい。
【００６８】
マルチタスクを実行するマルチＣＰＵ（シンメトリーマルチ処理：Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉ−Ｐｒｏｃｅｓｓｉｎｇ−ＳＭＰ）環境では、任意のアプリケーションレベルのプロセスまたはスレッドが、Ｓｐｅｅｄ＿Ｕｐ（）をリクエストすることを認めるべきであると、まだ考えられている。通常、アプリケーションレベルのプロセスまたはスレッドは、Ｓｐｅｅｄ＿Ｕｐ＿Ｒｅｌｅａｓｅ（）をコールする前にＯＳおよび／またはＩ／Ｏのコールを発行することにより、ＣＰＵの制御を放棄すべきではない。しかしながら、熱限界、時間限界または他の限界に達するまで、このＣＰＵでディスパッチされるＯＳおよび／または他のスレッドにスピードアップ状態が適用される場合には、終了される前にオペレーティングシステムにより先取りされることが可能である。
【００６９】
引数％のＳｐｅｅｄ＿Ｕｐ（）の目的は、スピードアップがほぼ２倍長い時間で得られ、および／または次のリクエストがスピードアップされることができるという仮定のもとで、例えばちょうど５０％の可能なスピードアップをアプリケーションが自発的にリクエストできるようにすることにある。
【００７０】
例
次の例の組は電子有価証券取引の領域から生じたものであり、本発明はこれら領域だけに限定されるものでなく、この例は本発明を良好に利用できる例の説明上の組にすぎない。
【００７１】
この例の理解を容易にするために、まずいくつかの用語について定義する。
【００７２】
次の記載は、用語のリストであり、本明細書においてこれら用語をどのように理解すべきであるかを示したものである。
【００７３】
−注文：取引をするため、例えば特定の価格で所定量の特定の証券を売り買いするための命令である。これら注文は通常、投資家、例えば個人投資家または証券ブローカーから受ける。
【００７４】
−マーケットメーカー：例えば所定の証券のための取引システムにおける買値および売値（および量）の双方を維持するための、証券取引所のための取引システムのオペレータによって通常契約されるエンティティのことである。これには若干の制限が存在する。例えば買値と売値は所定のパーセントよりも大きく異なっていてはならない。
【００７５】
−取引価格指定（値付け）：１つ以上の証券に対する買値および売値の双方を含む取引システムまたは交換所に対する命令であり、通常、マーケットメーカーによって発行され、それらの性質（入札）に起因し、時間と共に変化する。
【００７６】
−ディーリング：ディーリングの両脚を構成する少なくとも２つの取引（１回の買い、１回の売り）を含む、注文および／または取引価格の指定が一致することである。
【００７７】
−注文書：すべての買い注文および売り注文だけでなく、すべての取引価格の指定を含む、取引システムまたは交換所における表またはリストのことであり、取引可能な各対象に対し、基本的には１つの注文書が存在する。
【００７８】
−オークション：ある時間インターバルの間に注文が発注書に記録されることが認められるが、所定の時間まで、またはある事象が生じるまで、一致がされない。
【００７９】
−外部事象：例えば中央銀行が金利を変更した場合、このことは、ほとんどすべてのアクティブなトレーダーが、市場における自らのポジションを再評価するようにさせる外部事象である。マーケットメーカーは、自らのすべての市場価格の指定を削除し、すぐに新しい価格を提出する可能性が最も高いが、通常のトレーダーは自分の注文をキャンセルし、異なる価格で新しい注文を提出する可能性がある。
【００８０】
−ワイルドカードの削除：この命令は、すべての注文書におけるすべての自らの注文を削除することを、参加ファームが求めるリクエストのことである。この削除は極めてコストのかかる取引である。その理由は、このユーザー／ファームにより注文に対するすべての注文書をサーチして、それらを削除することを直接意味するからである。このことは、市場情報システムはアクティブとなり、市場の新しい状態を一斉送信しなければならないことも意味する。
【００８１】
−ユーザーモードの命令：ユーザーモードの命令とは、オペレーティングシステムのアシストなしに、アプリケーションプロセスが直接実行できる命令のことである。通常、ハードウェアに関連する命令は、オペレーティングシステムに対して確保されたスーパーバイザーステートまたは一部の同様なモードでしか実行できない。従って、ユーザーモード命令はオペレーティングシステムのアシストなしに、ユーザーレベルのアプリケーションが直接実行できる命令のことである。
【００８２】
通常、ハードウェアに関連するほとんどの命令は、オペレーティングシステムに対して確保されたスーパーバイザーステートまたはある同様なモードでしか実行できない。従って、アプリケーションがハードウェアオペレーションを開始するには、通常次のプロセスを経過しなければならない。
−ユーザーモードからＯＳモードへ移行すること。
−ＯＳがハードウェアの命令を実行すること。
−ユーザーモードに戻るように移行すること。
（この移行をするには、スケジューリングの決定および他のプロセスの起こりうるディスパッチを必要とする場合がある。）
【００８３】
（本願では上記ステップをオーバーヘッドと称しても良い。）
【００８４】
従って、特定の命令をアプリケーションが直接実行できるようにすることにより、オーバーヘッドを劇的にカットできる。
【００８５】
通常、ユーザーモードのアプリケーションは、合理性の理由からハードウェアの直接アクセスが防止されているが、命令が計算結果を変更しないこのような特殊な場合、命令がプロセッサの動作周波数を変えることによって結果をより高速で送り、よってアプリケーションプログラムがオペレーティングシステムの介入を受けることなく、直接この命令を安全に利用することができる。
【００８６】
例１
外部事象によって、例えばマーケットメーカーがすべての注文書における自分のすべての取引価格の指定を削除することを要求させるような、このようなシナリオの考えの場合、注文書を維持するソフトウェアはＳｐｅｅｄ＿Ｕｐ（１００）関数をコールし、注文書を通して繰り返しを行い、一旦それが終了するとソフトウェアはＳｐｅｅｄ＿Ｕｐ＿Ｒｅｌｅａｓｅ（）をコールする。このオペレーションは、２０％短い絶対時間のうちに終了することが可能であり、このことは極めて重大な改良点となっている。
【００８７】
例えば熱の理由によって、ワイルドカード削除が終了する前にＳｐｅｅｄ＿Ｕｐ（）のステートがキャンセルされた場合でも、このことも有益な改良点となっている。
【００８８】
自動化された取引価格指定エンジンを使用するマーケットメーカーファームは、長くなった応答時間に極めて敏感である。実際にこれらファームは長くなった応答時間を、自らワイルドカード削除取引を発行させるような外部事象として取り扱うことができる。マーケットメーカーファーム１がワイルドカード削除を発行し、これによって応答時間が悪化した場合、このことは他のマーケットメーカーファームもワイルドカード削除取引を発行し、この問題を悪化させる。
【００８９】
例２
ある証券に対するオンラインオークションが行われる場合。この場合、注文と指定価格とを一致させるために、注文書をスキャンするのは、ＣＰＵに高度に結合されたジョブであり、よってＳｐｅｅｄ＿Ｕｐ（１００）と、その後にＳｐｅｅｄ＿Ｕｐ＿Ｒｅｌｅａｓｅ（）とを使用するのが理想的である。
【００９０】
例３
大取引量
一部の交換所において、注文書が巨大な数の「小口注文」（各注文は小さい取引額である）で満杯となる場合があり、急に巨大な参加者、例えば銀行が莫大な量の特定の証券を売り買いすることを決定し、よって１回のディーリングが何千もの取引を生むことがあり、この処理を終了させるためにＣＰＵに結合した作業のバーストを発生させることがある。このことも、Ｓｐｅｅｄ＿Ｕｐ（）／Ｓｐｅｅｄ＿Ｕｐ＿Ｒｅｓｅｔ（）に理想的に適している。
【００９１】
図１は、本発明に係わるシステムの一実施例の概観を示す。このシステムは、ＣＰＵ２と、命令１６を含むメモリ３と、分周器４および周波数発生器５を含む周波数発生ユニット６とを備える。更にこの図は、第１周波数Ｆ１、第２周波数Ｆ２およびＣＰＵから分周器に制御コマンドを送り、動作周波数Ｆ２を変えるための制御接続部７も示している。
【００９２】
命令１６は、コマンドと数値を含むことが好ましく、このコマンドは上記のようなＳｐｅｅｄ＿ＵｐまたはＳｐｅｅｄ＿Ｕｐ＿Ｒｅｌｅａｓｅタイプのものでよく、数値は本明細書で前にも説明した可能な最大速度のパーセントとしても良い。
【００９３】
図２は、クライアントコンピュータ８と、中央コンピュータ９とを備えた分散型コンピュータシステムを示す。クライアントコンピュータ８と中央コンピュータ９とは、任意のタイプのネットワーク、例えばインターネット、ＷＡＮ、ＬＡＮ、または例えばＰ２Ｐのような直接接続によって相互に接続できる。更に、例えばクライアントコンピュータ８がハンドヘルド電子デバイス、例えばパームパイロット、携帯電話またはポータブルコンピュータであるときには、無線接続も使用できる。この図は、星形ネットワークを示しているが、他の任意のタイプのネットワーク、例えばリング型ネットワークまたはバスネットワークも使用できる。更に、図２に示されていないノードを通して通信をルーティングしてもよい。クライアントコンピュータ８と中央コンピュータ９との間の接続を確立するのに、安全チャンネルが必要となる場合もある。
【００９４】
中央コンピュータ９は異なるタイプのサーバーアプリケーションを含むコンピュータとすることができる。本発明の一例として、中央コンピュータ９は、市場、製品、ユーザーおよび電子交換所を運用するのに必要な取引情報を更に含む共通データベースを備えた電子交換所を含む。更に、この中央コンピュータ９は、電子交換に必要な他のサブシステムも含むことができる。サブシステムの一部の例として、取引に関する情報を処理し、一斉送信する情報普及システム、交換所の中央注文書を管理する市場サブシステムなどを挙げることができる。電子交換の例として、ＯＭＸテクノロジー社によって製造されたＣＬＩＣＫ（登録商標）システムがある。
【００９５】
図３は、２つの部品、例えばモニタ１０と入力デバイス１１を有することが好ましいユーザーインターフェースを備えたクライアントコンピュータ８を示す。しかしながら、ユーザーインターフェースをタッチスクリーンとすることができ、この場合、一実施例では２つの部品は一体化されている。
【００９６】
モニタ１０は、情報をユーザーに提示できる任意のタイプのデバイス、例えばＬＣＤディスプレイ、プラズマスクリーンなどとすることができ、入力デバイス１１は任意のタイプの入力デバイス、例えばキーボード、マウス、ジョイスティックまたは例えば取引用に特別に設計されたキーボードでよい。上述の様にクライアントコンピュータは、ネットワークあるいは無線通信によって他の電子機器と通信できるモービルフォン、パームパイロットなどのあらゆる種類の電子機器であっても良い。
【００９７】
図４は、プロセッサ１２に接続された周波数発生ユニット６の一実施例を示す。周波数発生ユニット６は、周波数発生器５と、この周波数発生器５によって発生された周波数を変えるための分周器４とを備える。周波数発生器５は第１周波数Ｆ１を発生し、この周波数はプロセッサに送られる動作周波数Ｆ２に変更される。
【００９８】
図５は、プロセッサ１２に接続された周波数発生ユニット６の第２実施例を示す。この実施例では、周波数発生ユニット６は２つの周波数発生器５と、スイッチデバイス１３とを備えることが好ましい。各周波数発生器は、他の周波数発生器からの周波数、すなわち第１周波数Ｆ１および第２周波数Ｆ２と異なる周波数を発生することが好ましい。スイッチ１３はユーザーレベルのアプリケーションからの命令に基づき、最も適当な周波数を選択するように切り替えることができ、このようにして、プロセッサ１２に第３周波数Ｆ３（動作周波数）を送ることができる。
【００９９】
周波数発生器の数は、２つに限定されているわけではなく、任意の数の発生器も使用できる。更に別の実施例では、システム内に設置された分周器の場所に応じ、Ｆ１またはＦ２、またはＦ３のいずれか、またはそれらのすべてを変えることができるようにするラインの少なくとも１つに分周器を接続することもできる。
【０１００】
図６は、プロセッサ１２に、またはこのプロセッサの近く、例えばＣＰＵまたはマザーボードに温度センサ１４が接続された、本発明の第３実施例を示す。センサ１４は温度が許容限度内に留まるよう、プロセッサ１２の温度をモニタするように使用できる。
【０１０１】
温度はプロセッサ１２の動作周波数を増減することによって制御できる。しかしながら、プロセッサが空冷式である場合は空気流量を増減することにより、またはプロセッサが液冷式の場合には液体の流量を増減することにより、温度を制御することもできる。
【０１０２】
別の実施例では、本システムは本明細書で前に説明したように、プロセッサ１２が実行する命令の数をカウントするためのカウンター１５を備えることができる。
【０１０３】
これまでの説明では、「備えた」および「備える」なる用語は他の要素またはステップを排除するものではなく、「１つの」または「ある」なる用語は複数を排除するものではない。
【０１０４】
更に、「含む」または「含んだ」なる用語は、他の要素またはステップを排除するものではない。
【図面の簡単な説明】
【０１０５】
【図１】ＣＰＵと、分周器と、周波数発生ユニットとを備え、ＣＰＵが少なくとも１つの命令を含むメモリを有するシステムの概観を示す。
【図２】電子交換所と、例えば取引アプリケーションおよび／またはクリアリングアプリケーションを備えたクライアントコンピュータとを備えた中央コンピュータシステムを示す。
【図３】ユーザーが命令を実行できるように、ユーザーレベルのアプリケーションと、そのユーザーインターフェースとを備えたクライアントコンピュータを示す。
【図４】プロセッサに接続された周波数発生ユニットの第１実施例を示す。
【図５】周波数発生ユニットの第２実施例を示す。
【図６】温度センサを備えたシステムの一実施例を示す。
【図１】
2009526297.tif 000003
【図２】
2009526297.tif 000004
【図３】
2009526297.tif 000005
【図４】
2009526297.tif 000006
【図５】
2009526297.tif 000007
【図６】
2009526297.tif 000008
【国際調査報告】
2009526297.tif 000009
2009526297.tif 000010
2009526297.tif 000011