このごろ、夜間にフレッツの混み具合がひどくなっています。大容量転送をしなければ支障が出るレベルではありませんが、遅延もひどく、ntp の delay が通常の20ms弱から60ms超へとひどく遅延しています。

夜間になるとひどく遅延が大きくなり、時刻合わせに影響が出る。
夜間になるとひどく遅延が大きくなり、時刻合わせにミリ秒レベルの影響が出る。

このグラフは時刻合わせ(ntp)のモニターなのですが、時刻サーバまでの通信時間(緑)が毎晩大きくなり、時間のジッタ(不確定さ)(橙)も15~20msまで悪化しています。こんなに時刻が揺らいでしまっては、この時間帯は時刻サーバを無視したほうがマシです。

そこで、ネットワーク経由以外の時刻合わせを使う事にしました。GPS信号を受信し、シリアルポートのキャリア検出か、パラレルポートのACKに標準時パルスを入力してやれば、ネットワークの混雑でも悪化しない、正確な stratum 0 の ntpd サーバを作る事ができます。

と言うわけで工作。

GPSモジュールをUSBとパラレルポートに接続する回路の製作
GPSモジュールをUSBとパラレルポートに接続する回路の製作

黒いボックスがオールインワンのGPSモジュールです。こいつに電源を繋いで、データ入出力をUSBでサーバに取りこみます。ユニバーサル基板は高校生の時のストックを切って使いました。

GPS の制御・受信情報は、シリアル-USB 変換をして USB ポートから /dev/ttyUSB0 (Windows だと COM3)として入力します。同時に、USBから 5V-DC の電源をとります。電源電圧が、USBは5V、GPSモジュールは3.3Vと異なるので、レギュレータで変圧します。消費電力が小さいのでヒートシンクはいらないでしょう。定石通り、手持ちのキャパシタ(電解+セラミック)を適当にいれます。

パラレルポートへのパルス信号は、アメリカの標準時計。日本の時計と秒刻みのズレは無いものの、何かちょっと悔しいですね。このパルスで正確に割込を入れるため、カーネルレベルで強い割込のかかるパラレルポートの ACK# ピンを使いました(IRQ4)。このケーブルは脱着式にしたかったので、ノイズに強く高周波を通す Ethernet (cat.5e) ケーブルを転用。PoE 対応なので DC から100MHzまで結構何でも通しちゃう優れものの万能ケーブルで、しかも安価で手に入りやすい。

パルス出力は 2.8V と中途半端ですが、パラレルポートの TTL には High に判別されるのでTTL変換は使いません。タイミングが命なのにバッファを入れたくないかなと(でももっとタイミングがシビアなメモリはバッファが入ってますね)。LED直挿しなのはお許しを。

これが正確に1秒を刻みます。パラレルポートの ACK# はカーネルに強い割込をかけられるので、このパルスのタイミングを高精度(およそ数十ナノ秒)に取りこむことができます。USBでは無理な、レガシーデバイスが活躍する場面です。

あとは、この回路での遅延などを計測・調整すれば、最上位 stratum 0 の ntpd サーバのできあがりです。

この標準時を使い始めたあと、先ほどのネットワーク経由の時刻合わせを見てみると…

夜間に遅延がひどいntpd

遅延(緑)が大きくなるときは、上りより下りの遅延の方が悪化がひどく、ジッタ(橙)だけでなくオフセット(青)も大きく(10~20ミリ秒)ずれていることがわかりました。これはかなりひどいですね。簡易な GPS-NTPD でも、stratum 0 で 100ns、ネット越しの stratum 1 で、10ms の精度が安定して確保できます。

安定しているときのオフセットが 0 になるように、ローカルの PPS Delay を調整して追い込んでいけば、100ns 以下の精度が出ます。

サーバに手を入れたくない場合は、Raspberry Pi 等を使って、単独 ntpd サーバを作る事もできます。拠点間で時刻を正確に合わせたい場合や、マイナンバー関連で局所ネットワークがインターネットから切り離しているパソコンの時刻合わせなどに使えると思います。時刻の合わない端末がある方はご相談下さい。


Pokémon GO が wi-fi でハングアップしやすいかたへ。ダメで元々の解決するかも知れないヒント。

ルータの管理画面でファームウエアを最新にして、「バースト転送」「ひかりテレビ対応」のような必ずしも必要のない設定を off にしてみよう。

ルータが Linux な方は、net.ipv4.tcp_wmem の第1引数を、MTUの2~4倍ぐらいにしてみよう。


Ivy Bridge は、Core i7/5 3000番台ですが、この世代から、CPUパッケージ内部の冷却機構に変更がなされ、十分な放熱ができず、温度が足かせになる場合には性能が発揮できないケースもありました。
以前より荒技で解決する強者も居りましたが、弊社ではクラウドファウンディングに出資して、より安全な作業の出来る工具を調達しました。
結論から。3770K を 4.5GHz で利用時の温度です。以前は95℃近くまであがっていた(メーカが定める上限は105℃)フルロード時の温度が、80℃程度までに収まるようになりました。(太い赤線がTIM交換時です)3770KTIM

あまり皆さんに推奨できる方法ではありませんが、Ivy 世代で思わぬ発熱に泣いておられる方、ご相談下さい。ただし、当然ながら失敗もありますので、覚悟が必要です。

事もあろうに、作業に必死で写真を撮り忘れたのと、動画がピンぼけだったので、あまり写真が無いのですが。。。
ダイの乗った基板とヒートスプレッダを安全に分離
殻割り後のCPUダイとヒートスプレッダ。イソプロピルアルコールで古いTIM(グリス)をあらかた拭いた後です。周りの残った接着ゴムも綺麗にします。

再接着用治具

高性能グリス(今回は金属ベースのペースト)を塗布し、周囲に瞬間接着剤を塗布して、真上からヒートスプレッダを元の位置に慎重に戻します。固定場所がずれないように、専用の治具で固まるまで固定します。

詳しくは、一番上の PC Watch の記事ご覧下さい。