論

インターネットアーキテクチャ技術論文特集

文

割込みハンドラと高精度 PC によるソフトウェアタイムスタンプの精度改善
町澤 朗彦† a)

北口 善明†

Improvement of Software Timestamp Accuracy with Interrupt Handler andHigh Precision PC
Akihiko MACHIZAWA†a) and Yoshiaki KITAGUCHI†

あらまし ネットワーク計測では，タイムスタンプが重要な物差しとなっており，PC の汎用性，経済性，扱いやすさなどから，ソフトウェアタイムスタンプには利点が多いが，専用ハードウェアによるタイムスタンプに比べて，精度が劣るといわれてきた．本論文では，PC のソフトウェア及びハードウェアを詳細に解析し，GPS を基準とする専用ハードウェアタイムスタンプよりも高精度なソフトウェアタイムスタンプを非 RT Linux 上に実現した．できる限りネットワークに近い部分で PCC（Processor Cycle Counter）をタイムスタンプとして取得
し，リソース競合を防ぐためのシステムチューニング及びパケットフィルタを施している．これらの技術を組み合わせることにより，標準偏差 34 ns で，ネットワークの片道遅延を測定することができた．長期間にわたる精度の維持も，高精度 PC に高精度周波数源を外部接続することによって可能である．更に，ハードウェアコンポー
ネントのジッタ解析を行い，本手法が PC の能力をアーキテクチャの限界近くまで引き出していることを示した．
キーワード

タイムスタンプ，ネットワーク計測，PC アーキテクチャ，PC 時計

1. ま え が き

ツールが使われている．また，特別なハードウェアをネットワーク計測では，タイムスタンプが重要な物

るなど，ソフトウェアタイムスタンプには利点が多い．

必要とせず，安価なため，手軽に使用することができ差しとなっているが，これまで，PC のソフトウェア

Pásztor らは，ネットワークインタフェース（NIC）

によるタイムスタンプの精度は不十分として，DAGのデバイスドライバコードで PCC（Processor Cycle

project [1] などの専用ハードウェアが開発されてきCounter）を使うことにより，PC でも高精度なタイム

た．専用ハードウェアのタイムスタンプ精度は，GPS

スタンプを実現できることを示し，スレッド切換に伴を接続することにより 100 ns 程度となっている．しかう突発的な遅延増大を，リアルタイム OS（RT-Linux）

し，近年の PC の性能改善を背景に，PC によるソフを用いて低減し，1 マイクロ秒程度のタイムスタンプ

トウェアタイムスタンプの精度を改善するための研究

精度を実現しているが [2]，専用ハードウェアによるタが進められている．ソフトウェアタイムスタンプの利イムスタンプの精度よりも 1 けた以上性能が低い．こ用は，PC の汎用性により，パケットキャプチャやアク

れは，RT-Linux がスケジューリング精度を高めるた

ティブ計測でのパケット送出など様々な用途に広がっ

めに割込みを保留しているが，PC がパケットを受信ているが，帯域推定など，新たなアルゴリズムの開発する最初のステップは NIC からの割込みであり，割込も容易であり，多数のネットワーク計測ソフトウェア

み保留により精度が低下していると考えられる．しかも，PC に搭載されている水晶振動子の温度安定度が†

情報通信研究機構，小金井市

悪いため，長時間にわたる精度の維持も不可能である．

National Institute of Information and Communications

本論文では，パケット受信時に発生する CPU 割込み

Technology, 4–2–1 Nukui-Kitamachi, Koganei-shi, 184–8795の際の PCC をタイムスタンプとするとともに，カーJapana) E-mail: machi@nict.go.jp1678

電子情報通信学会論文誌 B Vol. J87–B

ネルとユーザランド間のプロセス切換時間に基づいた
No. 10 pp. 1678–1685 2004 年 10 月

論文／割込みハンドラと高精度 PC によるソフトウェアタイムスタンプの精度改善

パケットフィルタリングを用いることによって，ソフ

れを図 1 に示す．時刻 T1 に送信側（TX）PC のユー

トウェアタイムスタンプの精度を改善する手法についザランドで生成されたパケットは，時刻 T2 にカーネて提案する．割込みハンドラは，パケット到着後に最ル内の NIC デバイスドライバを経て送出される．一初に実行されるソフトウェアステップであり，「高精度方，受信側（RX）PC では，NIC にパケットが到着

タイムスタンプは，よりネットワークに近くで」の原

し，割込みハンドラが起動された時刻を T3，割込み則を実現している．また，水晶振動子の周波数変動の処理である NIC デバイスドライバを経た後，最終的問題を解決するために，我々が開発を進めている高精に，時刻 T4 にユーザランドに達する．従来，高精度度 PC [3] を用いている．高精度 PC は，マザーボー

なタイムスタンプを得るためには，送受信ともに NIC

ド上の水晶を，より高精度な発振子に置き換えることのデバイスドライバでタイムスタンプを取得してきたによって，長期間にわたって CPU の動作周波数を一が，パケット到着後に最初に実行されるソフトウェア

定に保つことができる．置き換える発振子の種類にステップは割込みハンドラであり，「高精度タイムス

よって，得られる精度は異なり，ネットワーク計測でタンプは，よりネットワークに近くで」の原則を実行

は，OCXO あるいは Rb 基準信号発生器などが適ししていない．

ている [4]．また，文献 [4] で用いている CPU の動作

な お ，図 1 に お い て ，S() は パ ケット 送 受 信 に

周波数評価では，2 台の PC のクロックずれを評価し

要 す る 時 間 経 過 を 区 間（segment）に 分 け て お り，ているが，本論文では，同手法を用いてソフトウェア

S(U > K) = T 2 − T 1 などを示し，U > K は，

タイムスタンプの精度を評価する．まず，2. で，ソフ

「ユーザランドからカーネル」を意味している．

トウェアタイムスタンプの精度を改善するための手法

一方，Linux 等のマルチユーザマルチタスク OS は，を提案し，3. において，提案手法の効果を実証する．

システムビジー状態におけるプロセス切換で待ち時

更に，4. では，得られたソフトウェアタイムスタンプ

間が生じ，突発的にタイムスタンプ精度が劣化する．

のジッタを，PC を構成している各ハードウェアコン
ポーネントごとに解析した．本手法を用いることによPásztor らは，RT-Linux を用いて突発的な遅延時間の増大を防いでいる [2]．RT-Linux では，予測不能なり，標準偏差 34 ns 精度のソフトウェアタイムスタン

割込みを保留してスケジューリング精度を高めている

プを実現することができた．これは，GPS を用いたが，割込み要求を保留することにより，突発的な遅延

ハードウェアタイムスタンプをしのぐ精度であり，今時間増大を防ぐことができても，逆に，システムアイ

後，様々な応用が期待される．

ドル時の割込み応答精度は低下してしまう．

なお，本論文で対象としているタイムスタンプは，また，上記以外にも，タイムスタンプとしての 64

UTS 等の標準時刻との間に，固定的なオフセットを有ビットのプロセッササイクルカウンタ（PCC），高精

しているが，ネットワーク計測では，多くの場合，固度 PC，不要プロセスの停止，ディスクキャッシュ頻度

定的なオフセットは問題とならず，変動成分が重要での低減，送信側では NIC デバイスドラバでのタイムあることが多い．

スタンプ取得，などもソフトウェアタイムスタンプを

2. ソフトウェアタイムスタンプ精度改善
手法

高精度化するために用いられている．

PentiumII 以降のインテルプロセッサには，Time

まず，従来手法をまとめ，次に従来法の欠点を克服するための改善手法を提案する．

2. 1 従 来 方 式
PC では NIC にパケットが到着すると，割込み要求を発生する．CPU は割込み要求を検知すると，直ちに OS（オペレーティングシステム）内の割込みハンドラ関数を呼び出し，割込み番号が NIC に割り当てられている番号であることを確認した後，NIC のデバイスドライバへジャンプする．さて，2 台の PC を
ネットワークケーブルで直結したときのパケットの流図 1 パケットの流れ
Fig. 1 Packets ﬂow.

1679

電子情報通信学会論文誌 2004/10 Vol. J87–B No. 10

Stamp Counter と呼ばれる 64 ビットの PCC が設けられ，RDTSC 命令により PCC を読み出すことができるようになっている．この，PCC は，電源投入時に 0 にリセットされ，CPU の 1 サイクルごとにカウントアップされるため，CPU の動作周波数の解像度

3. 性 能 評 価
本章では，提案手法の効果について評価する．まず，評価する測定系について述べた後，個々の技術についてジッタの改善度を計測した．次に，パケットサイ

で時を刻むことができる．さて，PCC 値 c から時刻t への変換は，時刻 t0 での PCC 値 c0 が与えられれ

ズ及びパケット送出間隔の影響を測定し，最後に，提ば，次式で求めることができる．

ハードウェアタイムスタンプの精度を比較する．

t = t0 + (c − c0 )/r(1)

案手法を使ったソフトウェアタイムスタンプの精度と3. 1 タイムスタンプ精度評価方法
本論文では，タイムスタンプの精度を評価するため

ただし，r は CPU の動作周波数である．しかし，式に，ネットワーク遅延が一定となるよう，2 台の PC(1) では，動作周波数を一定値としているが，実際のPC は数十 ppm 精度の水晶に駆動されており，時間をケーブルで直結し，一方のタイムスタンプをネット

経過とともに，周波数が変動してしまう．そこで，本

図 1 の接続そのものである．この場合，ネットワーク

論文では，長期にわたる精度を維持するために，PCC

上でジッタは生じないため，二つのタイムスタンプののもととなる 14.318 MHz の水晶を，高精度な振動子

時系列から最小二乗化法により求められた回帰直線かに置き換えた高精度 PC を用いる．

らの残差が PC 内部で発生したジッタとなる [4]．

2. 2 改善方式の提案

ワークを介して他方に送って比較する．この構成は，タイムスタンプは IPv4/UDP パケットのペイロー

本論文では，まず，「高精度タイムスタンプは，よりド（データ）部にデータを上書きする形で挿入する．

ネットワークに近くで」の原則を実行するために，パ

これは，4.1 で，NIC の送受信処理時間特性を切り分

ケット到着後，最初のソフトウェアステップである割

けて測定する際に，PC 間に挿入したハードウェアタ

込みハンドラでタイムスタンプ T 3 を取得する手法を

イムスタンパによるタイムスタンプ追加によって，パ提案する．したがって，本論文では，ネットワークのケットサイズが変化することを防ぐことを目的として遅延時間を，区間 S(K > K) = T 3 − T 2 となる．

いる．例えば RFC781 [5] では，IP ヘッダにタイムス

更に，本論文では，マルチタスク OS によるリソー

タンプを付与するオプションを規定しているが，タイス競合問題を回避するために，システムビジーを検知

ムスタンプの追加により，パケットサイズが長くなっすることによって，タイムスタンプの精度を推定し，てしまう．しかし，Prasad 等はパケットサイズが異な精度が確保できない場合には，当該パケットを破棄す

ると，ルータやスイッチなどの store-and-forward 型る手法を提案する．システムアイドルの状態では，プネットワークデバイスでは，バッファリング時間が異ロセス切換はスムーズに行われるため，パケットを送なることにより，遅延時間も変化してしまうことを指受信するユーザランドプロセスとカーネルプロセスと摘しているが [6]，Jin らは，PC のシステムパフォーの間の時間 S(U > K) 及び S(K > U ) は，ほぼ一定

マンスが帯域推定に及ぼす影響について解析しており，の短時間となる．このプロセス間時間を監視すること

ネットワークデバイスと同様のバッファリング時間がにより，システムビジーを推定する．システムビジー

遅延時間に影響を与えることを示している [7]．そこ

状態で得られたタイムスタンプは不正確となるため，

で，本論文では，ペイロード部のデータを上書きする

システムビジー状態に送受されたパケットは不適格パことにより，タイムスタンプ挿入に伴うパケットサイ

ケットとして除外（フィルタリング）する．

ズの変化を防いでいる．なお，ここでは IPv4/UDP

なお，本論文では，提案手法に加えて，タイムスタを用いているが，実際の応用にあたっては，提案手法

ンプとしての 64 ビットのプロセッササイクルカウン

を他のプロトコル（IPv6, TCP, ICMP, etc.）に容易

タ（PCC），高精度 PC，不要プロセスの停止，ディスに適用することが可能である．また，パケットキャプ

クキャッシュ頻度の低減，送信側では NIC デバイスドチャなどに際しては，IP パケットに乗せて伝送する必

ラバでのタイムスタンプ取得，なども併せて利用する．

要がないため，ペイロードデータを上書きすることなく，任意のパケットのキャプチャ時間のタイムスタン
プを得ることができる．

1680

論文／割込みハンドラと高精度 PC によるソフトウェアタイムスタンプの精度改善

計測に用いたパケットはペイロードサイズ 64 バイに比べると小さい．なお，図 2 では，分布の広がりを

ト，パケット間隔 10 ミリ秒で，100 秒間計測した．パ

見るために，それぞれのヒストグラムの立上りを x 軸

ケットサイズや送出間隔のタイムスタンプ精度への影の原点にそろえている．

響については，3.4 で考察する．また，使用した PC

次に，図 3 で，ネットワーク遅延計測に関し，受信の諸元を表 1 に示す．マザーボードに Supermicro

時に NIC のデバイスドライバでタイムスタンプを取

P4DPR-iG2（CPU: Intel Xeon 2.4 GHz, Chip set:Intel E7500）に高精度化の改造を施し [3]，外部から
Cs 原子時計により駆動し，オペレーティングシステ
ムには Linux 2.4.18 を用いている．また，ネットワー

得した場合と，割込みハンドラでタイムスタンプを取クインタフェースは，ジッタ特性（4.1 参照）を考慮

イバ間では 53 ns であるのに対し，受信時に割込みハ

し，送出側には，Intel Pro/1000 を用い，受信側にはンドラでタイムスタンプを取得することにより 34 ns

ADMtek AN983(B) を用いている．以後，特に断らまで低減することが可能である．

得した場合のジッタをヒストグラムにより比較する．
ただし，ヒストグラムのビン幅は 60 ns としている．
ジッタの標準偏差で比較すると，NIC のデバイスドラ

3. 3 システムチューニングとパケットフィルタリ

ない限り，同じ測定条件を用いる．

3. 2 割込みハンドラでのタイムスタンプの利用

ング

まず，図 2 で，ネットワーク遅延計測に関し，ユーLinux はマルチユーザマルチタスク OS であるため，ザランド内で PCC 値を取得した場合と，ネットワー

プロセス間で，リソースの競合が生じる．本測定でクインタフェースのデバイスドライバコード内で PCC

は，単に不要プロセスを止めるだけではなく，ディス

値を取得した場合のジッタをヒストグラムにより比較

クキャッシュのフラッシュ頻度を最大限低減させていする．ただし，ヒストグラムのビン幅は 16 ns としてる．しかし，他のプロセスを完全に停止させることはいる．ユーザランドではジッタが大きいだけではなく，できないため，極少数のパケットではあるが，他のプ

800 ns から 1000 ns 付近にかけて，セカンドピークがロセスの影響を受けたパケットは，見かけ上の大きな存在している．しかし，ジッタはたかだか 1000 ns 程

遅延が生じてしまう．このようなパケットは，不適格度であり，後述するリソース競合に伴う処理待ち時間

サンプルとして，フィルタリング処理により破棄する．

表 1 測定に用いた PC の諸元
Table 1 Speciﬁcation of the PC.
Mother board
CPU
Network controller #1
Network controller #2
Network controller #3
OS

図 2

Supermicro P4DPR-iG2Intel Xeon 2.4 GHz
Intel 82546EB drv e1000-5.2.16
ADMtek AN983(B) drv tulip-0.9.14
Intel 82550EY drv e100-2.1.19
linux 2.4.18

ユーザランドと NIC デバイスドライバコードでのタイムスタンプの比較
Fig. 2 Comparison of timestamping in userland and
NIC device driver code.

図 3 提案方式によるソフトウェアタイムスタンプのジッタ分布
Fig. 3 Jitter distribution of applied softwaretimestamping.

1681

電子情報通信学会論文誌 2004/10 Vol. J87–B No. 10

図 4 不適格データフィルタ処理を施さない時系列データ
Fig. 4 Raw data without nonapproved data ﬁltering.

図 5 パケットサイズ及び送出間隔に対するジッタ特性
Fig. 5 Jitter characteristics for packet size andinterval.

不適格サンプルも含めた，遅延ジッタの例を図 4 に示す．不適格サンプルの生起頻度は小さく，ヒストグ
ラムでは表現困難なため，全サンプルを時系列に表示する．この場合，不適格サンプルの割合は，全 10000
サンプルに対して，3 サンプル（0.03%）のみである．
他プロセスとのリソース競合は，カーネルとユーザランド間の切換時間にも影響するため，カーネルとユーザランドにおけるタイムスタンプの変動から
リソース競合をある程度，検出可能である．図 4 に，カーネルとユーザランド間のジッタも加えて表示している．図 4 の例では，S(K > K) で，大きなジッタが生じたときには，S(K > U ) でも，大きなジッタが生じていることが分かる．この特性を用いることにより，パケット受信時に，そのパケットの割込みハンド

図 6 提案手法によるソフトウェアタイムスタンプと DAG3システムの 24 時間継続計測時のジッタ分散比較（参考文献 [1] Fig. 1 を改編）
Fig. 6 Jitter distribution for 24-hour period: PC vs.
DAG3 (modiﬁed reference [1] Fig. 1).

ラでのタイムスタンプとユーザランドでのタイムスタンプの差が，一定値以上の場合，そのパケットのカー

3. 5 ハードウェアタイムスタンパとの精度比較

ネルタイムスタンプを不適格として取り除くフィルタ

本章で用いたすべての手法を利用することにより，処理を施す．今回は，図 2 により，平均遅延時間よりタイムスタンプのジッタは，図 6 のような分布となる．

2 マイクロ秒以上遅延時間の長いパケットを不適格と

外部周波数源にはコストを考慮して Cs 原子時計ではした．

なく，Rb 基準信号発生器を用いている．また，GPS3. 4 パケットサイズ及び送出間隔の影響を基準とする専用ハードウェア DAG3 のタイムスタ

ここで，用いるパケットのサイズ及びパケット間隔

ンプ精度（文献 [1] Fig. 1）と比較する．データは，毎の影響について検討する．パケット間隔を 0.13 ms か秒 1 パケットの頻度で 24 時間にわたり測定し，ヒスら 8 ms とした場合について，パケットサイズに対すトグラムのビン幅を 60 ns 幅としている．PC によるるジッタの変化を図 5 に示す．横軸にパケットサイ

タイムスタンプの精度は，GPS を利用したハードウェ

ズ，縦軸にジッタの標準偏差を表す．図 5 より，パアタイムスタンプよりも分散が小さく，高精度である

ケットサイズが 1500 バイトに近く，パケット間隔がことが分かる．

2 ms 以下で短くなるほど，精度が劣化することが分かる．しかし，1500 バイトサイズパケットのポート占有時間である 0.13 ms 間隔としても，ジッタの標準偏差は 130 ns 程度の精度を保っている．
1682

4. ハードウェアコンポーネントのジッタ
解析
本章では，PC を構成している各コンポーネントに論文／割込みハンドラと高精度 PC によるソフトウェアタイムスタンプの精度改善起因するジッタを解析し，前章で得られた精度が，ハードウェアアーキテクチャの限界近くまで達していることを示す．

ともに，必要に応じて，NIC を選択する必要がある．

4. 2 CPU 動作周波数
同一マザーボードで，BIOS の設定により，CPU 動

4. 1 NIC 依存性

作周波数のみを 800 MHz から 2400 MHz まで変化さ

送受信におけるジッタには NIC 依存性がある．本せた場合のジッタの変化を図 9 に示す．横軸には周波

節では，2 台の PC 間に，精度 11 ns のハードウェア

数の逆数をとり，1 クロック当りの時間としているたタイムスタンパ（注 1）を挟み込み，送信側 NIC デバイ

め，原点に近いほど高速 CPU となる．CPU での処理

スドライバコードとハードウェアタイムスタンパの時間は，動作周波数に反比例するため，高速な CPU

間及び，ハードウェアタイムスタンパと受信側割込み

ほどジッタが小さくなると，予想される．

ハンドラ間の遅延ジッタを測定した．精度 11 ns は，

図 9 より，送信時では右上りの直線にほぼ乗ってい

100Base-T のクロック 25 MHz に起因している．Intel
Pro/1000, Intel Pro/100 及び ADMtek AN983(B)について，図 7 に送信特性，図 8 に受信特性を示す．
上記 3 種の NIC では，送信は Intel Pro/1000，受信は ADMtek AN983(B) がそれぞれ最も分散が小さい

るが，受信時では CPU 動作周波数の効果はほとんどを読み出してから，パケットを送出するまでに，多数ことが分かる．なお，NIC の「まとめ割込み機能」は出すことができるため，ほとんどソフトウェアステッ

利用していない．このように，NIC によってジッタ特プを必要としないためであろう．

見られないことが分かる．これは，送信時では，PCCのソフトウェアステップを要するのに対し，受信時には，ハードウェア割込みが生じた直後に PCC を読み性が異なるため，ソフトウェアタイムスタンプを用い

さて，回帰直線を求め，図 9 に書き加えると，y 切片

る場合には，事前に使用する NIC の特性を測定するとは，CPU の動作周波数を無限大まで高速化し，CPU内での処理が瞬時に完了したとしても残る，CPU 以
外のコンポーネントで発生するジッタで，送信時で23.8 ns，受信時で 16.8 ns と考えることができる．
4. 3 CPU 動作周波数のスプレッドスペクトル
近年の PC では，EMI 対策のため，CPU や PCI バスなどの周波数を変動させ，漏れ電磁波のピークを分散させており，CPU 動作周波数の変動はタイムスタン
プ精度の劣化を伴う．本節では，本論文で用いている

PC に使用されている，ICS 932S200 クロックジェネ
レータによるスプレッドスペクトルの影響を解析する．
図 7 各種 NIC の送信時ジッタ分散特性
Fig. 7 Jitter distribution for each NIC at Tx.

図 9 CPU 動作周波数の影響
Fig. 9 Eﬀects of CPU frequency.
図 8 各種 NIC の受信時ジッタ分散特性
Fig. 8 Jitter distribution for each NIC at Rx.

（注 1）：現在，情報通信研究機構において開発中．

1683

電子情報通信学会論文誌 2004/10 Vol. J87–B No. 10

ICS 932S200 では，図 10 に示すように，50 kHz，0.5%の三角波による変調をかけているが，PCC の値
は，CPU 動作周波数の累積であるため，周波数変動に伴って誤差 ∆c(t) は周期 20 マイクロ秒で変動する．

 t

4. 4 内部バスの影響
PC は，CPU やメモリ等，多数のモジュールにより構成されており，本論文で用いた PC の各モジュールは，図 11 に示すように，チップセットを中心として，
クロックスピードの異なるバスによって相互に接続し∆c(t) =

4rfs ∆rξdξ(2)0ている．クロックスピードの異なるバスをまたがって
データが伝送されるときには，クロックの立上り（ま= 2rfs ∆rt2

(3)

たは，立下り）を待つために，受け側のバスのクロッ

誤差の最大 ∆cmax は，図 10 の斜線部の面積に相当

クスピードの逆数を幅とする一様分布の待ち時間が生する．この誤差を秒の単位に変換するには，式 (1) よじる．

り，r で除すればよい．平均周波数を r [Hz]，spread

spectrum による振幅を ∆r = 0.25 [%]，変調周波数を fs = 5 × 104 [Hz] とすれば，2r 1/4fs

µ=

1
2fb

(12)

分散 σb2 は，= ∆r/4fs(5)

σb2 = 2fb

= 12.5[ns](6)

4rfs ∆rtdt
0

4fs
r2

 1/4fs
0= 16fs3 ∆r 2

∆c(t)2 dt

 1/4fs

(7)

t dt

(8)

1
5 45 fs5

∆r 2
= 3 2
54 fs

(9)

1
12fb2

(14)

√

3
6fb

(15)

計算した結果を表 2 に示す．また，PC を接続している通信回線のデータキャリヤ周波数もバス周波数(10)と同様に，一様分布の待ち時間を生じる．本論文では 100Base-TX を用いているため，キャリヤ周波数したがって，標準偏差は，以下のとおりとなる．

√

5∆r= 2.80[ns]
40fs

(13)

で，与えられる．各バスでの待ち時間の標準偏差を0

1= 16fs3 ∆r 2

t2 dt

標準偏差 σb は，

σb =4

 1/2fb0=

一方，分散は，以下で与えられる．

σ=

ば，平均待ち時間 µ は，

(4)∆cmax =

σ2 =ここで，バスのクロックスピードを fb [Hz] とすれは 25 MHz である．この通信回線キャリヤ周波数と前節のスプレッドスペクトルにより生じる遅延ジッタも(11)

表 2 に加えて表示する．これらの遅延ジッタを加え合わせたトータルの遅延ジッタは，図 9 において，CPU

図 10 スプレッドスペクトルの影響
Fig. 10 Eﬀects of spread spectrum.

1684

図 11 PC アーキテクチャとバス構成
Fig. 11 PC architecture and BUS.

論文／割込みハンドラと高精度 PC によるソフトウェアタイムスタンプの精度改善
表 2 各バスにおけるクロック待ち時間による生じるジッ
タの標準偏差Table 2 Standard deviation of waiting time at BUS.
Bus
system bus
DDR memory bus
HI 2.0 bus
PCI-X bus
FastEthernet
Spread Spectrum
Total

Clock [MHz]400
200 × 2
66
100
25

σ [ns]
0.72
0.72
4.37
2.89
11.55
2.80
23.77

計測など遅延時間を測る場合には，時刻座標とのオフ
セットが一定であれば，その大きさは問題とはならな
い場合が多いが，用途によっては，時刻座標系とのオ
フセットの精度（時刻精度）が重要となる場合もあり，
時刻精度の向上も今後の課題である．
文
[1]

献

J. Micheel, I. Graham, and S. Donnelly, “Precisiontimestamping of network packets,” Proc. ACM IMW,
2001.

[2]

ing without GPS,” Proc. ACM SIGMETRICS 2002,

を無限大まで高速化した際の送信時のジッタに一致し，現在の PC ハードウェアアーキテクチャの限界と考え

pp.1–10, 2002.
[3]

ることができる．
しかし，信頼性を高めるために，ほかのチップセッ

Linux システムに標準のチューニングを施すことにより，GPS を利用したハードウェアタイムスタンプを超える，標準偏差 34 ns 精度のソフトウェアタイムス
タンプを実現し，ネットワークの片道遅延の変動を精密に測定することが可能となった．また，マルチタス

S. Nakagawa,Y.

Proc. INET2001, Stockholm, 2001.

5. む す び

イクルカウンタを取得し，非リアルタイムの通常のA. Machizawa,

synchronization device for internet monitoring tools,”[4]

面から詳細に解析し，割込みハンドラでプロセッササ

H. Okazawa,

Kitaguchi, T. Asami, and A. Ito, “Advanced NTP

トを用いた PC でも確認する必要がある．

PC システムをソフトウェア及びハードウェアの両A. Pásztor and D. Veitch, “PC based precision tim-

町澤朗彦，北口善明，岡沢治夫，中川晋一，“ネットワー
クを用いた CPU 動作周波数期間安定度の精密評価，”
DICOMO 2002 予稿集，pp.563–566, July 2002.

[5]

Z.-S. Su, “A speciﬁcation of the internet protocol (IP)timestamp option,” RFC781, 1981.

[6]

R.S. Prasad, C. Dovrolis, and B.A. Mah, “The effect of layer-2 switches on pathchar-like tools,” Proc.
ACM IMW 2002, pp.321–322, 2002.

[7]

G. Jin and B.L. Tierney, “System capability eﬀects
on algorithms for network bandwidth measurement,”
Proc. Internet Measurement Conference 2003 (IMC2003), pp.27–38, Miami, Oct. 2003.

（平成 16 年 1 月 9 日受付，5 月 7 日再受付）

ク OS で障害となる，リソース競合による影響を排除するフィルタ手法も提案した．ただし，PC は不要プ
ロセスを停止し，タイムスタンプ処理に専念しており，
多数プロセス実行下での提案フィルタ手法の効果は検討していない．更に，長期間の運用に対しても，高精度 PC を用いることによって，精度を維持することが可能である．コスト的にも，Rb 基準信号発生器及びPC の水晶置換え改造は，GPS 受信機より安価であり，GPS アンテナの設置問題も生じない．また，ハードウェアコンポーネントのジッタ解析を行い，本手法

町澤朗彦 （正員）昭 59 上智大・理工・電気電子卒．同年郵政省電波研究所（現情報通信研究機構）入所．平 6 科学技術庁に出向し，IMnet 立上げに参与．平 8〜11 Univ. Canterbury
客員研究員．平 15 JGN2 立上げに参与．
画像の高能率符号化，視覚情報処理，計算機ネットワークの研究に従事．日本認知科学会会員．

が PC の能力をアーキテクチャの限界近くまで引き出していることを示した．なお，PC の性能向上は今後も続くと考えられるが，本論文で提案した手法は，「できるだけネットワークの近くで」の原則に沿っており，高速化した PC 性能を十分に引き出すために，将来にわたり有効と考えられ，より高精度なタイムスタンプ
により，新なアプリケーションの開発が期待される．
また，本論文で改善したタイムスタンプは座標系がUTS 等の時刻座標にはのっていない．ネットワーク

北口

善明 （正員）平 7 新潟大・理・物理卒．平 9 同大大学院自然科学研究科博士前期課程了．同年（株）インテック入社．平 12 インテック・
ウェブ・アンド・ゲノム・インフォマティ
クス株式会社に転籍，現在に至る．平 12〜
16 通信・放送機構（現情報通信研究機構）

研究員．主として，ネットワーク運用と計測技術，IPv6 ネッ
トワークの研究開発に従事．情報処理学会会員．

1685