JP4856503B2 - Todクロックをステアリングするためのシステムおよび方法 - Google Patents

Todクロックをステアリングするためのシステムおよび方法 Download PDF

Info

Publication number
JP4856503B2
JP4856503B2 JP2006243549A JP2006243549A JP4856503B2 JP 4856503 B2 JP4856503 B2 JP 4856503B2 JP 2006243549 A JP2006243549 A JP 2006243549A JP 2006243549 A JP2006243549 A JP 2006243549A JP 4856503 B2 JP4856503 B2 JP 4856503B2
Authority
JP
Japan
Prior art keywords
value
clock
tod
steering
tod clock
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
JP2006243549A
Other languages
English (en)
Other versions
JP2007080264A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007080264A publication Critical patent/JP2007080264A/ja
Application granted granted Critical
Publication of JP4856503B2 publication Critical patent/JP4856503B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)

Description

本発明は、一般にコンピュータ・システムにおけるタイミング信号に関し、とりわけ、拡張タイミング精度のためにコンピュータ・システムにおける時刻(TOD)クロックを調整するためのシステムおよび方法に関する。
コンピュータ・システムにおいてシステム整合性およびデータ・リカバリを提供するために、譲受人のインターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なzSeries(登録商標) eServer(登録商標)などのメインフレーム・サーバ・デバイスは、ユニバーサル・タイムスタンプの概念を使用する。データベース・レコードが更新されるたびに、リカバリ・レコードも作成される。リカバリ・レコードは、データベース・レコードがロックされていた間に取得されたタイムスタンプを含む。すべてのスレッドについてのすべてのリカバリ・レコード・データ・セットからのリカバリ・レコードがタイムスタンプを使用して順番にソートされる場合、リカバリ・レコード内の残りの情報はデータベース・レコードを回復させるのに十分である。このためには、シスプレックス内のすべてのTODクロックが同じ時刻を有する必要がある。
これまで、タイミング・ネットワーク内のTODクロックは、外部ボックスである9037シスプレックス・タイマによって同期化された。9037タイミング・ネットワーク内の各中央演算処理複合システム(CPC)は、そのTODクロックを9037からの信号にステップ実行(step)した。9037によってブロードキャストされるステッピング信号は、9037から各CPCへの特別なPoint−to−Pointリンク(外部時刻参照(ETR)リンク)を必要とした。ETRリンク上でのステッピング信号の正確な通信は、いかなる他の通信プロトコルとも異なる論理側の特別なプロトコルおよび物理信号レベルを必要とした。論理的に区分されたマシンの論理区画を同期化するためのETRオフセット値を実装する代表的なシステムについては、本願の所有者が所有する米国特許第6209106号に記載されている。
現在のクロック同期化ソリューションは、わずかに異なるレートでステップ実行されている(通常、距離的にかなり離れた)クロック(各クロックはローカル発振器を有する)の同期化に対処している。クロックの同期化のためのこれらのソリューションは、1)クロック間の相違(またはエラー)を検出するアクション、および2)エラーの関数として発振器の周波数またはステッピング・レートを調整するアクション、という2つのアクションを必要とする。
ステッピング信号を含まないタイミング・ソリューションを実装する、すなわち、タイミング情報がタイムスタンプおよび他のタイミング情報と共にメッセージによって送られるシステムの場合、各CPCは、オフセットを計算し、TODクロックを調整するためのアクションを実行することによって、そのTODクロックの調子を他の残りのCPCに合わせなければならない。これは、NTP(ネットワーク・タイミング・プロトコル)によって実行されるアクションと同様であり、相違点としては、NTPは通常、タイムスタンプが制御プログラムによって生成可能なソフトウェア層で実装されることである。しかしながら、eServer zSeries(登録商標)アーキテクチャは、TODクロックに関する非常に厳密な要件を有しており、何らかの問題のあるプログラムから見ても、すべてのタイムスタンプは異なるものでなければならず、たとえCPC内の異なるCPU上で実行しているプログラムから見た場合であっても、タイムスタンプは決して後退するものであってはならず、タイムスタンプは漸増するものでなければならない。新しいタイミング・ソリューションが必要とするTODクロックの調整を実行するためには、TODクロックのステッピング・レートは非常に微細な調整によって加速または減速させなければならず、これらの調整はCPC内のすべてのCPUによって同時に監視されなければならない。これは、TODクロックの右端のビットまでのステッピング・パルス間の時間が、CPU間のキャッシュ間転送時間と比較されるという事実により、重要である。したがって、1つのCPUから見ればTODを最低の値しか変更していないとみなされる場合でも、CPC内の他のCPUから見ればそのTODクロックは、もはやTODクロックのアーキテクチャ要件に合致しなくなっている可能性がある。
代替のソリューションは、TODステッピング・パルスを駆動している物理発振器のレートを調整することである。しかしながら、これには、1)このソリューションは旧式のマシンを改良できないこと、2)必要な(たとえば、100万分の2(ppm)より良い)確度を提供する技術が利用できないこと、3)こうした回路のテストが非常に困難であること、4)調整後の不連続性の問題(エラー後のクロックの再同期化)に対処していないこと、ならびに5)z/OSおよびTPF(トランザクション処理機構)以外のプラットフォームへの良好なインターフェースを提供していないこと、といういくつかの問題がある。
したがって、共通発振器ステッピング・パルスによってすべての物理クロックがすでに同期化されている、複数のCPCを有する緊密に結合された共有ストレージ・マルチプロセッシング環境において、TODクロックを調整するためのシステムおよび方法を提供することが強く望まれる。
米国特許第6209106号
本発明の一目的は、共通発振器ステッピング・パルスによってすべての物理クロックが同期化されている、緊密に結合された共有ストレージ・マルチプロセッシング環境(CPC)を有するメインフレーム・サーバ・アーキテクチャに、新規な時刻(TOD)クロックをステアリング(steering)する方法および装置を提供することである。
本発明によれば、TODクロックのステアリングにより、物理クロックをステップ実行する物理ハードウェア発振器を変更することなく、TODクロックの明白なステッピング・レートを変更するための手段が提供される。これは、論理TODクロック値を生成するために物理クロックに追加されるコンテンツを有する、TODオフセット・レジスタによって実施される。好ましくは、TODクロックの調整は、ハードウェア共有ストレージ内の共有場所によってデジタル方式で実行される。
したがって本発明によれば、共通発振器に対してステップ実行される操作を実行するための時間基準を提供する、物理クロックを有するコンピュータ・システム用の時刻(TOD)クロックをステアリングするための、システム、方法、およびコンピュータ・プログラムが提供される。この方法には、論理TODクロック値(Tb)を取得するために物理クロック値(Tr)値に追加されることになるTODクロック・オフセット値(d)を算出するステップが含まれ、論理TODクロック値は発振器のステッピング・レートを調整せずに調整することができる。
合計ステアリング・レートは、微(fine)ステアリング・レートおよび総(gross)ステアリング・レートという、2つの構成要素で構成される。微ステアリング・レートは、比較的長い期間にわたって安定しているローカル発振器内の不正確さを修正するために使用される。この値は、通常、ローカル発振器内の指定された許容範囲(典型的には、±2.0ppm)より小さくなる。総ステアリング・レートは、すべての他の影響に対する動的修正として使用され、外部時間ソースおよびタイミング・ネットワーク内の他のクロックと同期させる際に最も優勢である。
この新規な装置および方法は、たとえ特定のCPUが長期間遅延した場合でもクロック「ティック」が決して失われないように構築された数式を使用する。TODクロック・ステアリングの最も精密な細部であっても決定および考慮の対象とするために、たとえ第2の実行レベルにある問題のプログラムでも許可するために、インターフェースが提供される。これらのプログラムは、TODクロックがたとえば100万分の40でステアリングされている場合であっても、100万分の1の何分の1もの確度でタイミング情報を取得することができる。
さらに、本発明の装置および方法は、1)すべての物理クロックが共通発振器に対してステップ実行され、同期化されることを提供し、2)TODオフセット更新イベントの発生を示すためのハードウェア生成信号を提供する。一実施形態例では、これは、各CPU内の物理クロックのビット位置の「けた上げ(carry)」によってトリガすることが可能であり、3)現在のステアリング・パラメータをすべてのCPUに送信する。これは、好ましくは、ステアリング・パラメータを変更するために更新がインターロックされた共有ストレージと、オーバヘッドを最低にするためにすべてのプロセッサによる読み取り専用アクセスによって実施され、4)これがオフセットを更新し、厳密な瞬間に適用される、デジタル値を算出するための数式を実装する。この数式は、たとえCPUが長期間スリープ状態になっても値が失われないことを保証するものである。
当業者であれば、添付の図面と組み合わせて以下の詳細な説明を読むことで、本発明の目的、特徴、および利点が明らかとなろう。
本発明は、共通発振器ステッピング・パルスによってすべての物理クロックがすでに同期化された、緊密に結合された共有ストレージ・マルチプロセッシング環境(CPC)を有するメインフレーム・サーバ・アーキテクチャのための、時刻(TOD)クロック・ステアリングの方法および装置を対象とするものである。
図1は、本発明が実装されたシステム10を示す図である。システムは、CPU_1、CPU_2、・・・、CPU_Nとラベル表示された複数のCPUを有する、本明細書では中央演算処理複合システム(CPC)と呼ばれるzSeries(登録商標)eServerを含む。CPCはマスタ・クロック15を有し、各CPUはスレーブ物理クロック20a、20b、・・・、20nを有する。スレーブ物理クロックは、従来技術で周知の手段によってマスタ・クロックと同じ値に設定される。マスタ・クロック15およびすべてのスレーブ物理クロック20a、20b、・・・、20nは、発振器18によって生成された同じステッピング信号(「s」とラベル表示)によってステップ実行される。例示された一実施形態では、各CPUはスレーブ物理クロック(「Tr」とラベル表示)に加えて、オフセット・レジスタ(「d」とラベル表示)、基本マシン論理TODクロック(「Tb」とラベル表示)、命令アドレス・レジスタ(「IA」とラベル表示)、および16の汎用レジスタ(GR0〜GR15とラベル表示)も有する。図に示されるように、CPU_1、CPU_2、・・・、CPU_Nはそれぞれ、プログラムが利用可能な主ストレージ域26と、サブチャネル情報、CPU間通信、暗号バッファ・キュー、測定情報などに関して「隠れて(under the covers)」使用されるように区分けされた小さな部分であるハードウェア・ストレージ域27とを含む、共通ストレージ・デバイス25を共有する。
周知のように、CPCは、単一のCPC内に複数のシステム・イメージを確立することができる論理区分化に適合される。論理区分化(LPAR)構造28は図1に示されており、それぞれのシステム・イメージは、別々のコンピュータ・システムであるかのように動作可能であり、独立にリセットし、オペレーティング・システム(各論理区画によって異なる)がロードされ、異なるI/Oデバイスを使用する異なるソフトウェア・プログラムで動作することが可能であるものとして表されている。さらに、図2を参照しながらより詳細に説明するように、各区画はそれ独自の論理区画クロック「Tp」を有する。図1に示された各LPAR構造は、レジスタ(PSW、GR、FPRなど)、使用されるストレージ域、およびLPARのためのインターセプトに関する制御を指定するための、すべての情報を含む状態記述によって論理的に表される。LPAR専用システムの出現で、ハードウェア・ストレージ域27はLPARハイパーバイザに使用される共有ストレージの一部となった。さらに図1のシステムには、旧エピソード開始時刻(old.s)、旧エピソード基本オフセット(old.b)、旧エピソード微ステアリング(old.f)、旧エピソード総ステアリング(old.g)、新エピソード開始時刻(new.s)、新エピソード基本オフセット(new.b)、新エピソード微ステアリング(new.f)、および新エピソード総ステアリング(new.g)を含むが、これらに限定されることのない、クロック・ステアリング値を格納するための「TODクロック・ステアリング・レジスタ」を含むステアリング制御29も示されている。これらのクロック・ステアリング・レジスタ値について、図2に関して本明細書でさらに詳細に説明する。
本発明によれば、TODクロック・ステアリングは、物理クロックTrをステップ実行する物理ハードウェア発振器を変更することなく、TODクロックTbの明白なステッピング・レートを変更するための手段を提供する。これは、論理TODクロック値を生成するために物理クロックTrに追加される、TODオフセット・レジスタdによって実施される。
TODオフセット・レジスタdは、名目上、現在の合計ステアリング・レート「r」と呼ばれ、TODオフセット・レジスタのビット64〜95と位置合わせされた、32ビット符号付き値を追加することによって、マイクロ秒ごとに更新される、たとえばビット0〜95などのビットからなる。この追加では、TODオフセット・レジスタのビット位置0からのけた上げがあっても無視される。より高いかまたはより低いレゾリューションを有するモデルでは、TODオフセット・レジスタの変更レートがマイクロ秒ごとにrがビット位置64〜95に追加されたのと同じであるような周波数で、および適切に位置合わせされたrで、追加が実行される。
いくつかのサーバ(CPC)アーキテクチャでは、TODオフセット・レジスタdは64ビット未満とすることが可能であり、数式を使用して定期的に更新されることを理解されよう。この数式は公称レートと等価の結果を生成し、たとえマシンの動作が長期間中断される場合でも、更新が決して失われないように設計される。通常の動作では、プログラムから見て、その影響が均一なステッピング・レートと区別が付かないほどの十分な頻度で、更新が実行される。
本明細書でより詳細に説明するように、TODクロック・ステアリングには、機能コードおよびパラメータ・ブロックの指定を含む、半特権命令PERFORM TIMING FACILITY FUNCTION(PTFF)が含まれる。TODクロック・ステアリングには、論理区画用構造内に制御ビットを有する、解釈的な実行制御である「タイミング機構実行制御」も含まれる。第1のレベル状態記述内にあるこのビットが1の場合、その論理区画内のスーパーバイザ・プログラムは4つのPTFF制御機能のうちの3つをインターセプトなしに実行できる。
前述のようにTODクロック・ステアリングは、タイミング機構制御プログラムが、TODクロックの明白なステッピング・レートを調整できるようにする。ステッピング・レートは、244分の1の精度で、±約100万分の122(ppm)まで調整可能である(1日あたり約4.9ナノ秒)。ステッピング・レートは非破壊的様式で変更可能であり、すなわちアプリケーション・プログラムは、変更される場合、構成内でプログラムへのごくわずかな影響で実行可能である。
合計ステアリング・レートは、微ステアリング・レートおよび総ステアリング・レートという、2つの構成要素で構成される。微ステアリング・レートは、比較的長い期間にわたって安定しているローカル発振器内の不正確さを修正するために使用される。この値は通常、ローカル発振器の指定された許容範囲(典型的には、±2.0ppm)よりも小さくなり、変化はまれに(およそ1日に1回から1週間に1回)発生し、変化は小さい(典型的には、±0.2ppm)。
総ステアリング・レートは、すべての他の影響に対する動的修正として使用され、外部時間ソースおよびタイミング・ネットワーク内の他のクロックと同期させる際に最も優勢である。この値は、通常頻繁に(およそ1秒に1回から1分に1回)変更され、値は±10ppmより大きい範囲である可能性がある。
微ステアリング・レートおよび総ステアリング・レートは、タイミング機構制御プログラムによって様々な目的に使用されるが、クロック調整アルゴリズムではこれらの構成要素は交換可能なものとして取り扱われる。32ビットの微ステアリング・レート(f)が32ビットの総ステアリング・レート(g)に追加されて32ビットの現在の合計ステアリング・レート(r)が形成され、この追加では、ビット位置0からのけた上げがあったとしても無視される。TODクロック・ステアリングには、1)微ステアリング・レートの設定、2)総ステアリング・レートの設定、3)TODオフセットの調整、および4)TODオフセットの設定という、タイミング機構制御プログラムによって発行される4つの制御機能が含まれる。微ステアリング・レート設定および総ステアリング・レート設定の機能は、それぞれ微ステアリング・レートおよび総ステアリング・レートのレジスタ上で動作し、論理TODクロック内にいかなる不連続性も発生させることなく発行可能である。これらの機能は、タイミング機構制御プログラムのみが使用可能であるが、特別な許可があれば論理区画内で実行中のテスト・プログラムが使用することができる。
基本マシン・レベルで動作する場合、TODオフセット設定およびTODオフセット調整の機能は論理TODクロックTbを任意の値に設定することができるが、不連続性を伴う。これらの機能は、初期設定、テスト、および特別なエラー状況でのみタイミング機構制御プログラムによって使用されることを意図している。論理区画および仮想マシン・レベルで動作する場合、TODオフセット設定機能はスーパーバイザ状態で発行されるとインターセプトを発生させ、状態記述中のTODエポック差を要求された値に設定するための機能は、ハイパーバイザによってエミュレートすることができる。特別な許可を得て論理区画内で実行中のプログラムの場合、TODオフセット設定およびTODオフセット調整の機能は、異なるレジスタをターゲットとする。TODオフセット設定機能はハイパーバイザによってエミュレートされ、前述のようにTODエポック差で動作する。TODオフセット調整機能はTODオフセット・レジスタで動作し、インターセプトなしにマシンによって実行される。
TODクロック・ステアリングには、タイミング機構制御プログラムによってのみでなく、TODクロックの品質を決定するために問題プログラムによっても使用される可能性のある、いくつかの照会機能も含まれる。
図2は、ステアリングを含むTODクロック動作の概要を示す図である。TODクロック・ステアリングは、開始時刻(s)、基本オフセット(b)、およびステアリング・レート(r)の、3つの値によって実施される。これら3つの値を使用してTODオフセット(d)が算出され、これが物理クロック(Tr)に追加されて基本マシンTODクロック(Tb)を形成する。開始時刻(s)および基本オフセット(b)は64ビットの符号なし2進整数であり、TODクロックのビット0〜63と位置合わせされるとみなされる。ステアリング・レートは32ビットの符号付き2進固定小数点値であり、本発明の一実施形態に従って2−44倍にスケーリングされるとみなされる。以下の公式は、物理クロック(Tr)、現在開始時刻(s)、現在基本オフセット(b)、および現在合計ステアリング・レート(r)からの、TODオフセット(d)および基本マシンTODクロック(Tb)の導出を示す。
d=b+(Tr−s)・r・2−44
Tb=Tr+d
ステアリングは、図2に示されるように、論理区画TODクロック(Tp)および仮想マシンTODクロック(Tv)にも適用される。
動作時に、TODオフセット(d)は連続して計算されるのではなく、定期的に更新される。この更新は、本明細書ではTODオフセット更新イベントと呼ばれ、物理クロックのビット位置からのけた上げによってトリガされる。ビット位置はモデルによって異なるが、通常のステアリング・レートの場合、連続するTODオフセット更新イベントによってTODオフセット(d)用に算出された値間の差異がTODクロックのレゾリューションよりも少なくなるように選択される。
3つの値、s、b、およびrは、無制限に適用可能な線形ステアリング調整を定義する。これらの値が変更されずに適用される期間は、エピソードと呼ばれる。タイミング機構制御プログラムがステアリング・レートの変更を要求した場合は必ず、マシンは新しいエピソードが将来有効となるようにスケジューリングする。平滑な移行を提供するために、マシンは新しいエピソードの開始時刻が次のTODオフセット更新イベント時となるようにスケジューリングし、新しい値が有効になる時点でTODオフセットの値に不連続性がなくなるように新しい基本オフセットを算出する。
マシンは、新エピソード開始時刻(new.s)、新エピソード基本オフセット(new.b)、新エピソード微ステアリング・レート(new.f)、および新エピソード総ステアリング・レート(new.g)と呼ばれる特別なレジスタ内に新しい値を配置し、これら4つのレジスタの以前のコンテンツは、それぞれ旧エピソード開始時刻(old.s)、旧エピソード基本オフセット(old.b)、旧エピソード微ステアリング・レート(old.f)、および旧エピソード総ステアリング・レート(old.g)と呼ばれるレジスタ内に配置することによって保存される。マシンは、物理クロックが新エピソード開始時刻(new.s)に達するまで、旧エピソード用の値を使用し続け、その後、自動的に新しいエピソード用の値を使用するように切り替える。任意の特定時点で使用中のレジスタが、現在開始時刻(s)、現在基本オフセット(b)、および現在合計ステアリング・レート(r)と呼ばれる。これらはまとめて、現在エピソード・レジスタと呼ばれる。
図3は、TODクロック・ステアリング・レジスタおよびそれらの対応するビット値を要約した図である。すべてのTODクロック・ステアリング・レジスタのコンテンツは、電源オン・リセットによってゼロに初期設定される。
現在開始時刻(s)
マシンが旧エピソードで動作している場合、現在開始時刻は旧エピソード開始時刻(old.s)から取得され、新エピソードの場合は新エピソード開始時刻(new.s)から取得される。現在開始時刻(s)は64ビットの符号なし2進整数であり、TODクロックのビット0〜63と位置合わせされるものとみなされる。ステアリング調整の計算では、物理クロック(Tr)の値から現在開始時刻(s)を引いて、64ビット符号なし差(Tr−s)を形成する。この減算中、ビット位置0からの借り(またはけた上げ)は無視される。
現在基本オフセット(b)
マシンが旧エピソードで動作している場合、現在基本オフセットは旧エピソード基本オフセット(old.b)から取得され、新エピソードの場合は新エピソード基本オフセット(new.b)から取得される。現在基本オフセット(b)は64ビットの符号なし2進整数であり、TODクロックのビット0〜63と位置合わせされるものとみなされる。
現在ステアリング・レート(f、g、r)
マシンが旧エピソードで動作している場合、現在微ステアリング・レート(f)および現在総ステアリング・レート(g)は、それぞれ旧エピソードの微ステアリング・レート(old.f)および総ステアリング・レート(old.g)から取得され、新エピソードの場合は、それぞれ新エピソードの微ステアリング・レート(new.f)および総ステアリング・レート(new.g)から取得される。現在合計ステアリング・レート(r)は、現在微ステアリング・レート(f)と現在総ステアリング・レート(g)の合計から取得される。この加算では、ビット位置0からのけた上げがあっても無視される。現在合計ステアリング・レート(r)は32ビット符号付き2進固定小数点値であり、本発明の一実施形態に従って2−44倍にスケーリングされるとみなされる。32ビットの2進符号なし数として扱われる(r)の絶対値に64ビットの符号なし差(Tr−s)を掛けて、96ビットの符号なし2進積を形成し、これが44桁だけ右にシフトされて52ビットの中間結果が形成される。その後、左側に12のゼロが付加されて、64ビットの調整値が形成される。rがゼロの場合、現在基本オフセットがTODオフセットとして直接使用され、乗算は不要である。rが正の場合、調整値を現在基本オフセット(b)に加えてTODオフセット(d)が形成され、rが負の場合、現在基本オフセット(b)から調整値を引いてTODオフセット(d)が形成される。この加算(または減算)中に発生するけた上げ(または借り)は無視される。rが負の場合、単一のエピソード内でTODオフセット更新イベントが発生するたびに、マシンは、現在TODオフセット(d)を計算した後、プログラムから見て論理TODクロックが前進するように見えることを保証するのに十分な長さだけ遅延することによって、インターロックを提供する。
ステアリング・レートのビット0および31は、それぞれ−2−13および2−44のステアリング・レートを表すことを理解されたい。したがって、100万分の±122のステアリング・レート(1日あたり10.5秒)を、1日あたり4.9ナノ秒の精度で指定することができる。
TODオフセット(d)
TODオフセットは、TODクロックのビット0〜63と位置合わせされた64ビット値である。64ビットの符号なし2進値として扱われるTODオフセットのコンテンツが物理クロックに追加され、基本マシンTODクロックが取得される。この追加では、ビット位置0からのけた上げがあっても無視される。モデルによって、TODクロックのレゾリューションを超えたビットに対応するTODオフセットの右端のビットを実装せずに、ゼロとして扱うことができる。
PERFORM TIMING FACILITY FUNCTION
システムは、汎用レジスタ内の機能コードによって指定された、いくつかのタイミング機構機能を実装する。機能の結果、すなわち、要求された機能が実行されたこと、または要求された機能が使用不可であることを示すように、状況コードが設定される。他の汎用レジスタは、ストレージ内にパラメータ・ブロックのアドレスを含む。1)パラメータ・ブロック内に情報を配置するPTFF照会機能、および2)パラメータ・ブロックから取得した情報を使用するPTFF制御機能という、2タイプのPERFORM TIMING FACILITY FUNCTION(PTFF)機能が実装される。あるビット位置、たとえば汎用レジスタのビット位置57〜63は、機能コードを含む。図4は、割り当てられた機能コードを示す。他の汎用レジスタは、ストレージ内にパラメータ・ブロックの左端バイトの論理アドレスを含む。PERFORM TIMING FACILITY FUNCTIONの機能コードは、以下のように提供される。
Figure 0004856503
次に、本発明の実装に使用される機能を示す擬似コード・サブルーチンの例を示す。これらは、簡略にするためおよびこれらを呼び出す機能の共通部分を示すために、サブルーチンとして記載される。実装によって、共通サブルーチンではなく、機能を必要とする各ルーチン内でコードが複製される場合がある。
サブルーチンの説明では、本発明に従って実装されたハードウェア・レジスタに関する記号を示す図4を参照するが、そのサブセットは図1に示されている。図4では、接尾語r、b、p、およびvはそれぞれ、実、基本マシン、論理区画、および仮想マシンを表す。論理TODクロック・レジスタTbは、ハードウェア内には直接提供されないが、本明細書に記載された擬似ルーチンに記載されたようにシミュレートされる。クロック・コンパレータ・レジスタCCbは、ハードウェア・ストレージ域内に維持され、本明細書に記載された擬似コード・ルーチンに記載されたようにCCrを使用してシミュレートされる。CPUタイマのCTrおよびCTbは同じレジスタを実装するが、どちらの記号も、図4に示された2つの列内の他方のエントリとの整合性のために示される。TODクロック同期制御レジスタYb、基本マシンTODクロック同期制御は、SET CLOCK(SCK)命令を発行しているプログラムから見てクロックを制御する。したがって、LPARハイパーバイザがSCKを発行した場合、Ybが適用される。
次に、本明細書に記載された擬似ルーチンを説明する際に使用される他の記号を要約する。
[] ビット選択。たとえばTr[0:41]は、物理クロックのビット0〜41が使用されることを示す
abs(r) rの絶対値
‖ 連結。たとえば、Tv[0:57]‖pa6は、64ビット値を形成するために、仮想マシンTODクロックの58ビットが6ビット・プロセッサ・アドレスと連結されることを示す
0b111 3つの1ビットのフィールド
0b1111 4つの1ビットのフィールド
d TODオフセット・レジスタ(各CPUで実装される)
op2 SCK、STCK、STCKE、SCKC、STCKC、SPT、またはSTPTの第2オペランド
pa6 6ビットのプロセッサ・アドレス
pax プロセッサ・アドレスを含む40ビットの非ゼロ・フィールド
pr 基本マシンTODプログラム可能レジスタの16ビットの右半分
r 現在の合計ステアリング・レートを示す32ビットの符号付き2進整数
SDB ステアリング・インターフェース・データ・ブロック。SDBのコンテンツにはold.s、old.b、old.f、old.g、new.s、new.b、new.f、およびnew.gが含まれる。
t1 擬似コード・ルーチンの始めの、物理クロックの上位ビット(0:41または0:57)を含む64ビットのタイムスタンプ
t2 擬似コード・ルーチンの終わりの、物理クロックの上位ビット(0:41または0:57)を含む64ビットのタイムスタンプ(t2>t1の場合、ルーチンが結局は完了しなかったことを示すので、擬似コードはループする)
tcs ゲストの論理クロックが開始する場合のハイパーバイザ論理時間
v41 ビット位置41における1の64ビット値。したがって、TODクロック形式ではビット位置42からのけた上がりの時間値を表す
z(n) nゼロ・ビットのフィールド。たとえばz(8)はゼロの8ビット・フィールド
PTFF−QAF(使用可能機能照会)
PTFF−QAF(使用可能機能照会)機能は、他の機能の可用度を示す手段を提供する。PTFF−QAFの擬似コード記述は以下のように提供される。
Figure 0004856503
PTFF−QTO(TODオフセット照会)
この機能に使用されるパラメータ・ブロックは、直近のTODオフセット更新イベント時の物理クロックの値である64ビットの物理クロック値(pb.Tu)を含む値を戻す。戻される64ビットのTODオフセット値(pb.d)は、TODオフセット(d)の値を示す。戻される64ビットの論理TODオフセット値(pb.dl)は、Tc(現在レベルのCPU実行に関する論理TODクロック)を取得するためにTr(物理クロック)に追加される現在の値を示し、戻される64ビットのTODエポック差値(pb.ed)は、現在レベルのCPU実行に関するTODエポック差である。PTFF−QTOの擬似コード記述は以下のように提供される。
Figure 0004856503
PTFF−QSI(ステアリング情報照会)
この機能に使用されるパラメータ・ブロックは、直近のTODオフセット更新イベント時の物理クロックの値である64ビットの物理クロック値(pb.Tu)を含む値を戻す。残りのフィールドは、旧エピソードおよび新エピソードのレジスタの値である。PTFF−QSIの擬似コード記述は以下のように提供される。
Figure 0004856503
PTFF−QPT(物理クロック照会)
この機能に使用されるパラメータ・ブロックは、物理クロックの現在値である64ビットの物理クロック値(pb.Tr)を含む値を戻す。PTFF−QPTの擬似コード記述は以下のように提供される。
Figure 0004856503
PTFF−ATO(TODオフセット調整)
この機能に使用されるパラメータ・ブロックは、符号なし2進値として扱われ、次のエピソードの基本オフセットに追加される、64ビット値(pb.a)を提供する。この追加では、ビット位置0からのけた上げがあっても無視される。次のエピソードがすでにスケジューリングされており、まだアクティブになっていない場合、new.bがpb.aとnew.bとの合計に置き換えられ、他のアクションは実行されない。次のエピソードがスケジューリングされていない場合、新エピソード・レジスタは旧エピソード・レジスタ内に保存され、新エピソードがスケジューリングされる。新エピソード開始時刻(new.s)は、次のTODオフセット更新イベント時の物理クロックの値となる値に設定され、新エピソード基本オフセット(new.b)は、pb.aと、現在のステアリング・パラメータを使用して算出された、それと同じインスタント時のTODオフセットの値であったであろう値との合計に設定される。
ステアリング・レートはこの機能によって変更されず、新エピソードがスケジューリングされている場合、新エピソードの微ステアリングおよび総ステアリングのレートは現在の値と同じである。TODオフセット調整機能の実行は、TODオフセット・レジスタのコンテンツ全体が、構成内のすべてのCPUから見て一斉かつ同時に更新されるように見えるようにインターロックされる。しかしながら、構成内のCPUによる論理TODクロックへのアクセスは人為的に遅延されないため、大規模な符号なし調整値を追加すると負の変更の効果を及ぼす可能性があり、論理TODクロックが後退するように見える可能性がある。PTFF−ATOの擬似コード記述は以下のように提供される。
Figure 0004856503
PTFF−STO(TODオフセット設定)
この機能に使用されるパラメータ・ブロックは、TODオフセットを置き換える64ビット値(pb.d)を提供する。基本マシン・レベルで発行された場合、次のエピソードがすでにスケジューリングされており、まだアクティブでなければ、pb.dはnew.bを置き換え、他のアクションは実行されない。次のエピソードがスケジューリングされていない場合、新エピソード・レジスタは旧エピソード・レジスタ内に保存され、新エピソードがスケジューリングされる。新エピソード開始時刻(new.s)は、物理クロックが次のTODオフセット更新イベント時の物理クロックの値となる値に設定され、新エピソード基本オフセット(new.b)は、pb.dの値に設定される。ステアリング・レートはこの機能によって変更されず、新エピソードがスケジューリングされている場合、新エピソードの微ステアリングおよび総ステアリングのレートは現在の値と同じである。論理区画または仮想マシン・レベルで発行された場合、この機能はハイパーバイザによってシミュレート可能であり、CPU実行の現在のレベル(それぞれDpまたはDv)に関するTODエポック差で動作し、新エピソードはスケジューリングされず、変更は即時有効となる。TODオフセット設定機能の実行は、TODオフセット・レジスタのコンテンツ全体が、構成内のすべてのCPUから見て一斉かつ同時に更新されるように見えるようにインターロックされる。しかしながら、構成内のCPUによる論理TODクロックへのアクセスは人為的に遅延されないため、TODオフセットを小さな値に置き換えると、論理TODクロックが後退するように見える可能性がある。PTFF−STOの擬似コード記述は以下のように提供される。
Figure 0004856503
PTFF−SFS(微ステアリング・レート設定)
この機能に使用されるパラメータ・ブロックは、次のエピソードの微ステアリング・レートとなる32ビット値(pb.f)を提供する。次のエピソードが既にスケジューリングされており、まだアクティブになっていない場合、pb.fはnew.fを置き換え、他のアクションは実行されない。次のエピソードがスケジューリングされていない場合、新エピソード・レジスタは旧エピソード・レジスタ内に保存され、新エピソードがスケジューリングされる。新エピソード開始時刻(new.s)は次のTODオフセット更新イベント時に物理クロックの値となる値に設定され、新エピソード基本オフセット(new.b)は、現在のステアリング・パラメータを使用して算出された、それと同じインスタント時のTODオフセットの値となる値に設定される。新エピソード微ステアリング・レート(new.f)はpb.fに設定され、新エピソード総ステアリング・レートは現在値と同じである。新エピソードが有効になると、構成内のCPUによる論理TODクロックへのアクセスは、すべてのプログラムから見て論理TODクロックが一意であり、単調に増加しているように見えることを保証するようにインターロックされる。PTFF−SFSの擬似コード記述は以下のように提供される。
Figure 0004856503
PTFF−SGS(総ステアリング・レート設定)
この機能に使用されるパラメータ・ブロックは、次のエピソードの総ステアリング・レートとなる32ビット値(pb.g)を提供する。次のエピソードが既にスケジューリングされており、まだアクティブになっていない場合、pb.gはnew.gを置き換え、他のアクションは実行されない。
次のエピソードがスケジューリングされていない場合、新エピソード・レジスタは旧エピソード・レジスタ内に保存され、新エピソードがスケジューリングされる。新エピソード開始時刻(new.s)は次のTODオフセット更新イベント時に物理クロックの値となる値に設定され、新エピソード基本オフセット(new.b)は、現在のステアリング・パラメータを使用して算出された、それと同じインスタント時のTODオフセットの値となる値に設定される。新エピソード総ステアリング・レート(new.g)はpb.gに設定され、新エピソード微ステアリング・レートは現在値と同じである。新エピソードが有効になると、構成内のCPUによる論理TODクロックへのアクセスは、すべてのプログラムから見て論理TODクロックが一意であり、単調に増加しているように見えることを保証するようにインターロックされる。PTFF−SGSの擬似コード記述は以下のように提供される。
Figure 0004856503
TODクロック・ステアリング
本発明の一実施形態によれば、ステアリング・パラメータは、読み取り専用オペレーションによる書き込みアクセスを必要としないインターロック・メカニズムを使用して更新しなければならない。これは特に、TODオフセット更新イベント用に実装される。このイベントは、たとえば1024マイクロ秒ごとなど定期的にあらゆるCPUで同時に発生し、各CPUが情報のロックを試みるとオーバヘッドが極端に大きくなる。
概念上、現在の合計ステアリング・レート(r)のビット0:31は、マイクロ秒ごとに1回(すなわち、物理クロックのビット位置52からビット位置51へのけた上げが発生するごとに)、TODオフセット(d)への拡張のビット64:95に追加される。このアーキテクチャにより、結果として生じる効果が本質的に同じであれば、追加のために適切に位置合わせされた物理クロックの異なる位置からのけた上げを使用することによって、実装はこの更新をそれほど頻繁に実行しなくてもよくなる。具体的に言えば、このアーキテクチャでは、ビット位置はモデルによって異なるが、通常のステアリング・レートの場合、連続するTODオフセット更新イベントによってTODオフセット(d)用に算出された値間の差異がTODクロックのレゾリューションよりも少なくなるように選択される必要がある。
たとえば、TODクロック・レゾリューションがビット位置57にあり、TODオフセット更新イベントがビット位置41へのけた上げによってトリガされる場合、通常のステアリング・レートが16ppm未満であればアーキテクチャ要件に合致する。発振器が±2ppmとなるように指定された場合、通常のステアリング・レートは16ppmよりかなり小さいはずである。この例では、物理クロックのビット42からのけた上げが使用されるものと想定されるが、このビット位置からのけた上げは実装に応じて構成可能である。けた上げは、物理クロックのビット位置42からビット位置41へ、たとえば1024マイクロ秒ごとまたはほぼミリ秒ごとなど、定期的に伝搬される。ステアリング・パラメータの更新は、このけた上げ実行の周辺で実装される。
現在エピソード・パラメータ算出(ccep)への擬似コード・サブルーチン
このサブルーチンは、TODオフセット更新イベントおよびTODオフセット照会機能のための擬似コードによって呼び出される。このサブルーチンは、直近のTODオフセット更新イベント(t1)の時刻および時刻t1のオフセット(dc)を算出して戻す。さらにサブルーチンは、現在のエピソード・レジスタである、現在の開始時刻(s)、現在の基本オフセット(b)、現在の微ステアリング・レート(f)、現在の総ステアリング・レート(g)、および現在の合計ステアリング・レート(r)も戻す。
Figure 0004856503
新エピソード・パラメータ算出(cnep)への擬似コード・サブルーチン
このサブルーチンは、TODオフセット調整、TODオフセット設定、微ステアリング・レート設定、および総ステアリング・レート設置の、4つのPTFF制御機能すべての擬似コードによって呼び出される。サブルーチンは、新エピソードがアクティブかどうかをチェックする。現在時刻が新エピソード開始時刻(new.s)よりも前であれば、新エピソードはまだアクティブでなく(現在エピソードは旧エピソードである)、他のアクションは不要である。現在時刻がnew.sよりも後または同じであれば、新エピソードはアクティブであり(現在エピソードは新エピソードである)、現在エピソード・フィールド(new.s、new.b、new.f、およびnew.g)は旧エピソード・フィールド内に配置され、新開始時刻(new.s)および新基本オフセット(new.b)用に新しい値が算出される。サブルーチンはビット位置41における1の64ビット値である値v41を使用するので、TODクロック形式でのビット位置42からのけた上げの時間値を表す。
Figure 0004856503
基本マシン・クロック・コンパレータ更新(bmccu)のための擬似コード・サブルーチン
このサブルーチンは、TODオフセット更新イベント、基本マシンSET CLOCK COMPARATOR、および基本マシン・クロック・コンパレータ割り込みのための擬似コードによって呼び出される。ルーチンは、物理クロックおよび基本マシンTODクロックの異なるレートを補償するために、物理クロック・コンパレータを調整する。ルーチンは、現在の合計ステアリング・レート(r)が負の場合に対しても保護する。この場合、物理クロックは論理TODクロックよりも高速で実行され、物理クロック・コンパレータ割り込みが早期に発生する。ルーチンはこれを、基本マシンTODクロック値(Tb)と基本マシン・クロック・コンパレータ(CCb)とを比較することによってチェックする。Tb>CCbの場合、基本マシン・クロック・コンパレータ割り込みが実行されるはずであり、これは物理クロック・コンパレータをゼロに設定することで実施される。Tb=CCbおよび(Tb−d)=(CCb−d)の場合、折り返しはなく、物理クロック・コンパレータ値(CCr)は再計算される。Tb=CCbおよび(Tb−d)>(CCb−d)の場合、折り返しがある。物理クロック・コンパレータ値(CCr)はすべて1に設定される(擬似コード記述では−1として示される)。これによりエクスポージャ(exposure)が作成され、クロック・コンパレータ割り込みは今後も決して実行されないため、基本マシンTODクロックは基本マシン・クロック・コンパレータよりも大きくなる。
Figure 0004856503
TODオフセット更新イベントのための擬似コード
図5は、TODオフセット・レジスタを更新するための実装の詳細を示す図である。実装の一例では、物理クロックのビット位置42からビット位置41へのけた上げが伝搬されるごとに、いずれかの論理TODクロックを使用する前に、ハードウェア・ストレージ域内のステアリング・パラメータからTODオフセット・レジスタを更新しなければならない。次に、そのCPU内のTODオフセット・レジスタを更新するために構成内のあらゆるCPUで実行されるアクションを示す、擬似コード表現を提供する。
Figure 0004856503
基本マシン・クロック・コンパレータ割り込みのための擬似コード
このルーチンは、基本マシン・クロック・コンパレータ割り込みを実行する直前に実行される。このルーチンは、現在の合計ステアリング・レート(r)が負である場合に対して保護する。この場合、物理クロックは論理TODクロックよりも高速で実行され、物理クロック・コンパレータ割り込みが早期に発生する。割り込みがまだであれば、基本マシン・クロック・コンパレータ更新のためのサブルーチンが呼び出される。
Figure 0004856503
STORE CLOCK(STCK)、STORE CLOCK EXTENDED(STCKE)、SET CLOCK(SCK)、SET CLOCK COMPARATOR(SCKC)、SET CPU TIMER(SPT)、STORE CLOCK COMPARATOR(STCKC)、およびSTORE CPU TIMER(STPT)のタイミング命令を処理するためのコードを表す、以下の擬似コードが提供される。
Figure 0004856503
Figure 0004856503
Figure 0004856503
Figure 0004856503
Figure 0004856503
TODクロック同期化
CPUそれ自体が理解しているように、TODクロックのステアリングはTODクロック内に観察可能な不連続性を導入するものであってはならず、特に、クロックが後退しているように見える、あるいは1行に同じ値を2回生成してはならない。論理TODクロックが単調に増加しているように見えることを保証するために、以下でより詳細に説明するように、負のデルタを印加した後、CPUはTODクロックを使用して少なくともデルタ量だけ遅延しなければならない。
より困難な要件には、CPU間の対話が含まれる。すべてのCPUは、変更が正であるか負であるかにかかわらず、クロック・オフセット内の任意の変更の使用をほぼ同時に開始しなければならない。例では、たった1クロック・ティックの差であっても、同時に適用されなかった場合、問題プログラムによって検出されてしまうことがわかる。
ケース0に示されたような通常のオペレーションを使用して、最良ケースのCPU間クロック転送時間と呼ばれる値が定義される。ケース1およびケース2は、それぞれ、可能な最小の正デルタまたは負デルタの導入を示すものである。例では、正および負の変更が本質的に同じ問題を発生させること、および実質的なソリューションがすべてのCPUで更新を同時に認識することのみであることを示す。更新の同期化は、あらゆるCPUにまったく同時に新しい値の使用を開始するよう要求することによって解決される。この瞬間がTODオフセット更新イベントと呼ばれ、物理クロックの特定のビット位置からのけた上げが発生するとトリガされる。アーキテクチャは、選択されるビット位置がモデルによって異なることを提示している。一実施形態では、物理クロックのビット位置42からビット位置41へのけた上げが使用される。
単一CPUの場合のTODオフセット・レジスタへの負の変更
以下の図は、TODオフセット・レジスタへの負の変更の一例を示す。
Figure 0004856503
各行に、物理クロック、TODオフセット・レジスタ、および論理TODクロックの、ビット42〜57のスナップショットが示されている。スナップショットは、物理クロックがたとえばビット57などの特定のビット位置でティックするごとに取られる。
表に示された例では、図示されていない現在の合計ステアリング・レートが負の最大値であると想定されるため、ビット位置0が1で、その後はすべて0である。1行目(ティック番号0)は、ビット42からのけた上げが発生する直前の最後のティック時の物理クロックを示す。この桁上げによって、論理TODクロックが後退しているように見せるTODオフセット・レジスタ内に新しい値が導入されることになる。これをプログラムに気付かれないようにするために、マシンはティック番号9の後までいかなる論理TODクロック値も提供してはならない。この例では、TODオフセット・レジスタ用の新しい値は、ティック番号1のスナップショットが取られるまでにすでに適用されている。実際の実装では、TODオフセット・レジスタを更新するためのアクションには、これよりもかなりの時間がかかる可能性がある。表に示された例では、この更新にかかる時間が125ナノ秒(好ましい実施形態では約167 CPUサイクル)未満の場合、マシンはこのように長い時間が経過するまで、クロックの使用を遅延しなければならない。
複数CPUの場合のTODクロック同期化
一般性をそれほど喪失することなく、すべての複数CPUのTODクロック同期化障害は以下の単一のケースに簡略化することができる。
Figure 0004856503
60のCPUを備えたマシンでは、たとえばTODクロック値のビット58〜63がCPU番号に置き換えられるため、TODクロックのビット57が右端のステッピング・ビットとなる。TODクロックのビット57は、15.625ナノ秒ごとに増分するが、これは最良ケースのキャッシュ間転送時間(たとえば22〜24マシン・サイクル)よりもわずかに短いだけである。最も重大なケースは、第1のCPUが第2のCPUよりも大きいCPU番号を有する場合である。例ではこれを示すために、CPUiおよびCPUjのCPU番号がそれぞれ55および33(8進数)であるように選択されている。以下の表では、TODクロックのビット58〜60が時間の経過を示すように表されているが、これらのビットは物理クロックの一部ではない。
ケース0 − オフセット変更なし、障害なし:表1は、オフセットが変更されていないケースでのTODクロックの適切なオペレーションを示す。
Figure 0004856503
第1のCPUでのSTCKのストア部分の実行時間に、第1のCPUから第2のCPUへの最良ケースのCPU間キャッシュ間転送時間を加え、第2のCPUでのSTCKのLGおよびアクセス・クロック部分の実行時間を加えた合計が、最良ケースのCPU間クロック転送時間と呼ばれる。ケース0の場合、正しいオペレーションを保証するためには、最良ケースのCPU間クロック転送時間が少なくとも15.625ナノ秒でなければならない。これは、必要であれば、各CPUでのSTCKの実行時間を人為的に遅延させることで実施可能である。将来のハードウェアで必要となる確率の高い代替形態は、物理クロックのビット58〜63を実装することであり、マシンは、物理クロックのビット58〜63がこのCPUのCPU番号と一致するまで、CPU上のSTCKの実行を遅延させる。
ケース1 − 負のオフセット変更、障害あり:表2は、オフセットが15.625ナノ秒(好ましい実施形態での負のステアリング・レートで可能な最小の変更)だけ減じられた場合のTODクロックの同期障害を示すものであり、この変更は2つのCPUで同時に認識されない。(この障害は、アーキテクチャがすべてのCPUに新しい値の使用を同時に開始させる必要があり、アーキテクチャが従わない場合にのみ発生する。)この例では、障害は、CPU33が新しい値の使用を開始し、CPU55が依然として古い値を使用している場合に発生する。(新しい値の使用の一部として、CPU33はすでに、CPU自体から見て論理クロックが後退しているように見えないだけの長い期間遅延していることに留意されたい。)
Figure 0004856503
ケース1の場合に正しく動作させるためには、最良ケースのCPU間クロック転送時間を少なくとも15.625ナノ秒プラス変更の絶対量としなければならず、これは通常、好ましい実施形態のケースには当てはまらない。この例は、新しい値の使用を開始している2つのCPU間の時間が、最良ケースのCPU間クロック転送時間よりも長い場合、障害が発生する可能性があることを示す。古い値を使用しているCPUがまだ変更に気付いていないため、新しい値を使用しているCPUはすべてのCPUが新しいオフセットに変更するまでSTCKのそれぞれの実行を遅延させなければならなくなり、これは既知の固定持続時間でない限り非実用的であることがわかる。
ケース2 − 正のオフセット変更、障害あり:表3は、オフセットが15.625ナノ秒(好ましい実施形態での正のステアリング・レートで可能な最小の変更)だけ増加された場合のTODクロックの同期障害を示すものであり、この変更は2つのCPUで同時に認識されない。(この障害は、アーキテクチャがすべてのCPUに新しい値の使用を同時に開始させる必要があり、アーキテクチャが従わない場合にのみ発生する。)この例では、障害は、CPU55が新しい値の使用を開始し、CPU33が依然として古い値を使用している場合に発生する。
Figure 0004856503
ケース2の場合に正しく動作させるためには、最良ケースのCPU間クロック転送時間を少なくとも15.625ナノ秒プラス変更の絶対量としなければならず、これは通常、好ましい実施形態のケースには当てはまらない。この例は、新しい値の使用を開始している2つのCPU間の時間が、最良ケースのCPU間クロック転送時間よりも長い場合、障害が発生する可能性があることを示す。古い値を使用しているCPUがまだ変更に気付いていないため、新しい値を使用しているCPUはすべてのCPUが新しいオフセットに変更するまでSTCKのそれぞれの実行を遅延させなければならなくなり、これは既知の固定持続時間でない限り非実用的であることがわかる。
以上、本発明について、本発明の諸実施形態に従った方法、装置(システム)、およびコンピュータ・プログラムの図を参照しながら説明してきた。各図は、コンピュータ・プログラム命令によって実装可能であることを理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータのプロセッサ、特定用途向けコンピュータ、埋め込み型プロセッサ、またはマシンを生成するための他のプログラム可能データ処理装置に提供することが可能であり、その結果、コンピュータのプロセッサまたは他のプログラム可能データ処理装置を介して実行される命令が、本明細書に指定された機能を実装するための手段を作成する。
これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置に対して特定の様式で機能するように指示することができるコンピュータ読み取り可能メモリ内に格納することも可能であり、その結果、コンピュータ読み取り可能メモリ内に格納された命令が、本明細書に指定された機能を実装する命令手段を含む製品を製造する。
コンピュータ・プログラム命令は、コンピュータ読み取り可能または他のプログラム可能なデータ処理装置にロードして、コンピュータ・実装・プロセスを生成するために一連のオペレーション・ステップをコンピュータまたは他のプログラム可能装置上で実行させることが可能であり、その結果、コンピュータまたは他のプログラム可能装置上で実行された命令が、本明細書に指定された機能を実装するためのステップを提供する。
本明細書に開示された発明は、前述の目的を満たすように首尾良く計算されていることは明らかであるが、当業者であれば様々な修正形態および実施形態を考案可能であり、添付の特許請求の範囲が、本発明の趣旨および範囲内にあるこうした修正形態および実施形態をすべてカバーするように意図されていることを理解されたい。
本発明が実装されたシステム10を示す図である。 本発明の一実施形態に従ったTODクロック動作の概要を示す図である。 本発明の一実施形態に従って実装されたTODクロック・ステアリング・レジスタの要約を示す図である。 そのサブセットが図1に示された、本発明で実装されるハードウェア・レジスタを表す記号を示す図である。 TODオフセット・レジスタの更新の詳細な実装を示す図である。
符号の説明
10 システム
15 マスタ・クロック
18 発振器
20a CPU 1
20b CPU 2
20n CPU N
25 共有ストレージ
26 主ストレージ域
27 ハードウェア・ストレージ域
28 LPAR 1構造
LPAR 2構造
LPAR N構造
29 ステアリング制御

Claims (14)

  1. 共通発振器に対してステップ実行される操作を実行するための時間基準を提供する、物理クロックを有するコンピュータ・システム用の時刻(TOD)クロック・ステアリング装置であって、
    論理TODクロック値(Tb)を取得するために物理クロック値(Tr)値に追加されることになるTODクロック・オフセット値(d)を算出するための手段を有し、
    前記TODクロック・オフセット値(d)は、
    d=b+(Tr−s)・r
    に従って算出され、上式で(b)は(Tr)のビットと位置合わせされた基本オフセット値であり、(s)は(Tr)のビットと位置合わせされた現在の開始時刻値であり、(r)は現在のステアリング・レート値であって、前記s、b、およびrの値がTODクロック・ステアリング調整値を定義し、
    前記現在のd、s、b、およびrの値を保持するためのTODクロック・ステアリング・レジスタを有し、
    前記現在のステアリング・レート値rが微ステアリング・レート値(f)および総ステアリング・レート値(g)を有し、r=(f)+(g)であり、前記TODクロック・ステアリング・レジスタは前記gおよびrの値を保持するためのものであり、前記微ステアリング・レート値は前記発振器内の不正確さを修正するために確立され、前記総ステアリング・レート値は他のイベントに応答してステアリング値を動的に修正するために確立される、装置。
  2. 前記現在のステアリング・レート値rが約2−44倍にスケーリングされる、請求項1に記載の装置。
  3. 前記コンピュータ・システムは複数の処理ユニットを有し、複数の処理ユニットそれぞれが前記共通発振器に対してステップ実行および同期化される関連する物理クロックを有し、各処理ユニットが前記TODクロック・オフセット値(d)を保持するためのTODクロック・オフセット・レジスタを含み、各処理ユニットが論理TODクロック値を算出する、請求項1に記載の装置。
  4. 前記ステアリング・レート値rへの変更を要求するための制御命令を発行するための制御手段をさらに有し、前記制御機能が対応するTODクロック・ステアリング・レジスタ内に新しいs、b、f、およびgの値を入力する、請求項1に記載の装置。
  5. さらに前記制御手段が、対応するTODクロック・ステアリング・レジスタから前記s、b、f、およびgの値を取得するための照会命令を発行する、請求項4に記載の装置。
  6. 更新の同期化を実行可能にする手段をさらに有し、各処理ユニットが論理TODクロック値を算出し、各処理ユニットが新しい論理TODクロック値の使用を同時に開始する、請求項5に記載の装置。
  7. ステアリング・レートが前記論理TODクロックの負の方向のステアリングを可能にするものであり、前記装置が、それによって論理TODクロック値の変更が単調に増加するTODオフセット・レジスタへの負の変更の適用後、処理ユニットに関する新しい論理TODクロック値の使用を遅延させるための手段をさらに有し、前記手段が、CPUに少なくとも前記負の変更の量だけTODクロックの使用を遅延させなければならないように実行可能である、請求項1に記載の装置。
  8. 共通発振器に対してステップ実行される操作を実行するための時間基準を提供する、物理クロックを有するコンピュータ・システム用の時刻(TOD)クロックをステアリングする方法であって、
    論理TODクロック値(Tb)を取得するために物理クロック値(Tr)値に追加されることになるTODクロック・オフセット値(d)を算出するステップを有し、
    前記TODクロック・オフセット値(d)は、
    d=b+(Tr−s)・r
    に従って算出され、上式で(b)は(Tr)のビットと位置合わせされた基本オフセット値であり、(s)は(Tr)のビットと位置合わせされた現在の開始時刻値であり、(r)は現在のステアリング・レート値であって、前記s、b、およびrの値がTODクロック・ステアリング調整値を定義し、
    前記現在のd、s、b、およびrの値を保持するためのTODクロック・ステアリング・レジスタを提供するステップを有し、
    前記現在のステアリング・レート値rが微ステアリング・レート値(f)および総ステアリング・レート値(g)を有し、r=(f)+(g)であり、前記TODクロック・ステアリング・レジスタは前記gおよびrの値を保持するためのものであり、前記微ステアリング・レート値は前記発振器内の不正確さを修正するために確立され、前記総ステアリング・レート値は他のイベントに応答してステアリング値を動的に修正するために確立される、方法。
  9. 前記現在のステアリング・レート値rが約2−44倍にスケーリングされる、請求項8に記載の方法
  10. 前記コンピュータ・システムは複数の処理ユニットを有し、複数の処理ユニットそれぞれが前記共通発振器に対してステップ実行および同期化される関連する物理クロックを有し、各処理ユニットが前記TODクロック・オフセット値(d)を保持するためのTODクロック・オフセット・レジスタを含み、論理TODクロック値を算出する、請求項8に記載の方法。。
  11. 前記ステアリング・レート値rへの変更を要求するための制御命令を発行するステップをさらに有し、前記制御機能が対応するTODクロック・ステアリング・レジスタ内に新しいs、b、f、およびgの値を入力する、請求項8に記載の方法。
  12. 対応するTODクロック・ステアリング・レジスタから前記s、b、f、およびgの値を取得するための照会命令を発行するステップをさらに有する、請求項11に記載の方法。
  13. 更新の同期化を実行可能にするステップをさらに有し、各処理ユニットが論理TODクロック値を算出し、各処理ユニットが新しい論理TODクロック値の使用を同時に開始する、請求項12に記載の方法。
  14. ステアリング・レートが前記論理TODクロックの負の方向のステアリングを可能にするものであり、前記方法が、それによって論理TODクロック値の変更が単調に増加するTODオフセット・レジスタへの負の変更の適用後、処理ユニットに関する新しい論理TODクロック値の使用を遅延させるステップをさらに有し、前記ステップが、CPUに少なくとも前記負の変更の量だけTODクロックの使用を遅延させなければならないように実行可能である、請求項8に記載の方法。
JP2006243549A 2005-09-09 2006-09-08 Todクロックをステアリングするためのシステムおよび方法 Expired - Fee Related JP4856503B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/223886 2005-09-09
US11/223,886 US7356725B2 (en) 2005-09-09 2005-09-09 Method and apparatus for adjusting a time of day clock without adjusting the stepping rate of an oscillator

Publications (2)

Publication Number Publication Date
JP2007080264A JP2007080264A (ja) 2007-03-29
JP4856503B2 true JP4856503B2 (ja) 2012-01-18

Family

ID=37856700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006243549A Expired - Fee Related JP4856503B2 (ja) 2005-09-09 2006-09-08 Todクロックをステアリングするためのシステムおよび方法

Country Status (3)

Country Link
US (4) US7356725B2 (ja)
JP (1) JP4856503B2 (ja)
CN (1) CN100405251C (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356725B2 (en) 2005-09-09 2008-04-08 International Business Machines Corporation Method and apparatus for adjusting a time of day clock without adjusting the stepping rate of an oscillator
US7395448B2 (en) * 2006-07-26 2008-07-01 International Business Machines Corporation Directly obtaining by application programs information usable in determining clock accuracy
US20080033396A1 (en) * 2006-08-01 2008-02-07 Percutaneous Systems, Inc. Vascular sheaths and methods for their deployment
US7899894B2 (en) 2006-08-30 2011-03-01 International Business Machines Corporation Coordinated timing network configuration parameter update procedure
US7617410B2 (en) * 2006-09-15 2009-11-10 International Business Machines Corporation Simultaneously updating logical time of day (TOD) clocks for multiple cpus in response to detecting a carry at a pre-determined bit position of a physical clock
US7451339B2 (en) * 2006-09-15 2008-11-11 International Business Machines Corporation Pulse-per-second attachment for STP
US8055801B2 (en) * 2006-09-15 2011-11-08 International Business Machines Corporation Pulse-per-second attachment for STP
US7783913B2 (en) * 2007-01-31 2010-08-24 International Business Machines Corporation Facilitating recovery in a coordinated timing network
US7783736B2 (en) 2007-01-31 2010-08-24 International Business Machines Corporation Definition of an active stratum-1 server in a coordinated timing network
US7797414B2 (en) * 2007-01-31 2010-09-14 International Business Machines Corporation Establishing a logical path between servers in a coordinated timing network
US9112626B2 (en) * 2007-01-31 2015-08-18 International Business Machines Corporation Employing configuration information to determine the role of a server in a coordinated timing network
US7689718B2 (en) 2007-01-31 2010-03-30 International Business Machines Corporation Channel subsystem server time protocol commands and system therefor
US7895303B2 (en) * 2007-01-31 2011-02-22 International Business Machines Corporation Server time protocol control messages and methods
US20080256530A1 (en) * 2007-04-16 2008-10-16 William Joseph Armstrong System and Method for Determining Firmware Compatibility for Migrating Logical Partitions
US8140822B2 (en) * 2007-04-16 2012-03-20 International Business Machines Corporation System and method for maintaining page tables used during a logical partition migration
US8019962B2 (en) * 2007-04-16 2011-09-13 International Business Machines Corporation System and method for tracking the memory state of a migrating logical partition
US7849347B2 (en) * 2007-04-16 2010-12-07 International Business Machines Corporation System and method for updating a time-related state of a migrating logical partition
JP4861935B2 (ja) * 2007-09-04 2012-01-25 株式会社日立製作所 情報処理システム及び時刻管理方法
US8055931B2 (en) * 2007-10-12 2011-11-08 International Business Machines Corporation Method for switching between two redundant oscillator signals within an alignment element
GB2455009B (en) * 2008-01-22 2012-02-29 Ibm Time-of-day cycle count estimation
US7925916B2 (en) 2008-04-10 2011-04-12 International Business Machines Corporation Failsafe recovery facility in a coordinated timing network
US8416811B2 (en) * 2008-04-10 2013-04-09 International Business Machines Corporation Coordinated timing network having servers of different capabilities
CN101981530B (zh) * 2008-04-11 2012-12-12 飞思卡尔半导体公司 具有低功率模式和非低功率模式的微处理器,数据处理系统和计算机程序产品
US7873862B2 (en) * 2008-10-21 2011-01-18 International Business Machines Corporation Maintaining a primary time server as the current time server in response to failure of time code receivers of the primary time server
US8369186B2 (en) * 2009-01-09 2013-02-05 Primex Wireless, Inc. System and method of increasing battery life of a timekeeping device
US20100287402A1 (en) * 2009-05-11 2010-11-11 Electronics And Telecommunications Research Institute Timestamping apparatus and method
US8285915B2 (en) 2010-01-13 2012-10-09 International Business Machines Corporation Relocating page tables and data amongst memory modules in a virtualized environment
CN101873187A (zh) * 2010-05-25 2010-10-27 中兴通讯股份有限公司 时钟同步方法及系统
JP5423902B2 (ja) * 2010-11-05 2014-02-19 富士通株式会社 情報処理装置,情報処理装置の時刻設定方法,及び情報処理装置の時刻設定プログラム,並びに監視装置
US9414944B2 (en) 2010-11-11 2016-08-16 W. L. Gore & Associates, Inc. Deployment sleeve shortening mechanism
US9468547B2 (en) 2010-11-11 2016-10-18 W. L. Gore & Associates, Inc. Deployment of endoluminal devices
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
JP5764985B2 (ja) * 2011-03-11 2015-08-19 富士通株式会社 情報処理装置および時刻制御方法
GB2502540A (en) 2012-05-30 2013-12-04 Ibm Generating monotonically increasing time of day values in multiprocessors
US9104364B2 (en) 2012-11-15 2015-08-11 International Business Machines Corporation Generation and distribution of steered time interval pulse to a plurality of hardware components of the computing system
CN106406974B (zh) * 2015-07-30 2020-07-17 中兴通讯股份有限公司 一种用于虚拟机的高性能定时器实现方法、虚拟机
US9720441B1 (en) 2016-09-30 2017-08-01 International Business Machines Corporation Generating time-of-day values without causing execution stalls
US10423191B2 (en) * 2017-01-19 2019-09-24 International Business Machines Corporation Clock comparator sign control
CN110932839B (zh) 2018-09-20 2023-09-22 中兴通讯股份有限公司 一种网卡、时间同步方法、设备及计算机存储介质
CN111007352A (zh) * 2019-11-21 2020-04-14 国家电网有限公司 一种基于北斗授时技术在低压配电线路中读取准确事件时间的方法
US11097844B1 (en) 2020-03-18 2021-08-24 B/E Aerospace, Inc. Mobile self-vending beverage distribution system
US11564185B2 (en) 2020-04-17 2023-01-24 Rockwell Collins, Inc. Precise time synchronization for 4G automatic link establishment (ALE) stations
US11501380B1 (en) * 2020-07-01 2022-11-15 BlueOwl, LLC Systems and methods for parallelly validating a plurality of policies
US11461851B1 (en) 2020-07-14 2022-10-04 BlueOwl, LLC Systems and methods for determining validation times

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59221760A (ja) 1983-06-01 1984-12-13 Toshiba Corp 複合計算機の時刻管理装置
US5041798A (en) * 1990-06-12 1991-08-20 International Business Machines Corporation Time reference with proportional steering
US5636373A (en) * 1991-09-04 1997-06-03 International Business Machines Corporation System for synchronizing logical clock in logical partition of host processor with external time source by combining clock adjustment value with specific value of partition
JP3304593B2 (ja) 1994-02-28 2002-07-22 富士通株式会社 分散システムにおける時刻補正方法
DE4408488A1 (de) * 1994-03-14 1995-09-21 Bosch Gmbh Robert Verfahren zur zyklischen Übertragung von Daten zwischen mindestens zwei verteilt arbeitenden Steuergeräten
US5850157A (en) * 1996-11-07 1998-12-15 Intel Corporation Low voltage swing circuits for low power clock distribution and methods of using the same
US5802354A (en) * 1997-06-09 1998-09-01 International Business Machines Corporation Method and apparatus for synchronizing selected logical partitions of a partitioned information handling system to a test datesource
US6199169B1 (en) * 1998-03-31 2001-03-06 Compaq Computer Corporation System and method for synchronizing time across a computer cluster
US6209106B1 (en) * 1998-09-30 2001-03-27 International Business Machines Corporation Method and apparatus for synchronizing selected logical partitions of a partitioned information handling system to an external time reference
SE513899C2 (sv) * 1999-01-12 2000-11-20 Ericsson Telefon Ab L M Metod och arrangemang för synkronisering
US6199170B1 (en) * 1999-05-11 2001-03-06 Trimble Navigation Limited Method and apparatus for precise time synchronization
US6591370B1 (en) * 1999-12-23 2003-07-08 International Business Machines Corporation Multinode computer system with distributed clock synchronization system
US6763474B1 (en) * 2000-08-03 2004-07-13 International Business Machines Corporation System for synchronizing nodes in a heterogeneous computer system by using multistage frequency synthesizer to dynamically adjust clock frequency of the nodes
JP4233016B2 (ja) 2002-10-08 2009-03-04 東北パイオニア株式会社 発光表示パネルの駆動装置
US7155629B2 (en) * 2003-04-10 2006-12-26 International Business Machines Corporation Virtual real time clock maintenance in a logically partitioned computer system
US6826123B1 (en) * 2003-10-14 2004-11-30 International Business Machines Corporation Global recovery for time of day synchronization
US7356725B2 (en) * 2005-09-09 2008-04-08 International Business Machines Corporation Method and apparatus for adjusting a time of day clock without adjusting the stepping rate of an oscillator
US7454648B2 (en) * 2005-09-09 2008-11-18 International Business Machines Corporation System and method for calibrating a time of day clock in a computing system node provided in a multi-node network
US9851969B2 (en) * 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor

Also Published As

Publication number Publication date
CN1928769A (zh) 2007-03-14
US8438415B2 (en) 2013-05-07
US7681064B2 (en) 2010-03-16
US7356725B2 (en) 2008-04-08
US8135978B2 (en) 2012-03-13
CN100405251C (zh) 2008-07-23
US20080104440A1 (en) 2008-05-01
JP2007080264A (ja) 2007-03-29
US20070061605A1 (en) 2007-03-15
US20120173917A1 (en) 2012-07-05
US20090300401A1 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
JP4856503B2 (ja) Todクロックをステアリングするためのシステムおよび方法
US7617410B2 (en) Simultaneously updating logical time of day (TOD) clocks for multiple cpus in response to detecting a carry at a pre-determined bit position of a physical clock
JP5078274B2 (ja) 拡大縮小可能なマルチプロセッサコンピュータの効率的な仮想タイムベースのための方法、およびプログラム
JP5165871B2 (ja) Todクロックを較正するためのシステムおよび方法
US6832326B2 (en) Multiprocessor clock synchronization with adjustment based on measuring propagation delay between a processor and a plurality of processors
US5715438A (en) System and method for providing time base adjustment
WO2020057303A1 (zh) 网卡、时间同步方法和设备及计算机存储介质
JP3888637B2 (ja) 論理的に区分されたコンピュータ・システムにおける仮想リアルタイム・クロックの維持
US7058838B2 (en) System and method for synchronizing a plurality of processors in a multiprocessor computer platform employing a global clock counter
US5636373A (en) System for synchronizing logical clock in logical partition of host processor with external time source by combining clock adjustment value with specific value of partition
US11907754B2 (en) System to trigger time-dependent action
US9104364B2 (en) Generation and distribution of steered time interval pulse to a plurality of hardware components of the computing system
Neville-Neil Time is an illusion lunchtime doubly so
Okabe et al. Avoiding year 2038 problem on 32-bit linux by rewinding time on clock synchronization
US9746876B2 (en) Drift compensation for a real time clock circuit
US12019466B2 (en) Virtual precision time protocol clock devices for virtual nodes
EP4199385A1 (en) Clock synchronization method and device in distributed system, and system
CN114779883B (zh) 系统时钟同步方法、装置、系统及存储介质
KR100246546B1 (ko) 고속 병렬 컴퓨터에서의 시간 동기화 방법
Neville-Neil Time is an Illusion. Lunchtime doubly so.-Ford Prefect to Arthur Dent in" The Hitchhiker’s Guide to the Galaxy", by Douglas Adams
EP4078333A1 (en) Method and apparatus for synchronizing the time stamp counter
JPH02234262A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110926

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111018

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111028

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4856503

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees