2017年4月17日月曜日

Intel CPUの殻割りとリキプロ化

今更ながら手持ちのCPU 2つを殻割り (delid)し、TIMをLIQUID PROに変えてみた。

動機

メインマシンの6700KでCPUに負荷を掛けるとパッケージ温度が70度Cを超えてしまい夏場の使用が不安である。

Shuttleのキューブ型ケースを利用しているのでCPUクーラーの交換は難しい。そこで、いわゆる「グリスバーガー」を解消すれば状況が改善とすると考えて殻割りすることにした。

定格運用でも、いわゆる「熱ダレ」(thermal throttling)が起き難くなることが期待できる。

使った物


対象CPU


  • Intel Core i5-3330
  • Intel Core i7-6700K

3330はoverclockできない(マザーボードもH61)ので殻割りする意味は余りないが、いきなり6700Kで作業するのが怖かったので練習がてらやってみた。

事前調査 (3770Kと6700Kについて)どちらもヒートスプレッダ内部にチップコンデンサ等が実装されていないので、難易度は低いと思う。

道具類


  • カッターナイフ (今回はその辺にあったものを利用したので刃は厚さ0.39mm。OLFAから壁紙カット用として販売されている0.2mmぐらいの薄い刃を勧める)
  • テレホンカード (厚さ0.27mm。ボロボロになるので使用済み、もしくは不要なポイントカードなどがあればそちらを勧める)
  • LIQUID PRO (液体金属。もしくはクマメタル)
  • ブラックシーラー (ゴム系接着剤。本来は車のボディの補修に使う物だが、殻割りする人々の間でも広く用いられている)
  • マスキングテープ (裏側の電極やチップコンデンサなどの保護のために利用。この用途にセロハンテープなどを使うと接着剤が残るのでNG。一方でゴミ取りには少々接着力不足)
  • 綿棒 (CPUグリスやダイに残ったTIMを掃除する、LIQUID PROを塗るなど)
  • 爪楊枝 (基盤やヒートスプレッダの内側に残った接着剤を擦り取ったり、ブラックシーラーを塗る時に使う)
  • ティッシュペーパー (手に入るならキムワイプとかの方が良いだろう。一応のためダイは綿棒で掃除した)
  • 燃料用アルコール (毒性の問題があるので無水エタノールを用いた方が良いが代用)
  • 金属板 (静電気でCPUを壊さないように作業場として利用。気休め)
  • エアダスター

作業を終えて、あったら良かったなと思ったもの:

  • 絶縁テープ (6700Kはヒートスプレッダ内の基盤に剥き出しの電極があるのでそこを覆う。注文したが届いていないので今回はブラックシーラーで代用)
  • セロハンテープ (ヒートスプレッダの位置を固定したり、飛び散った接着剤を掃除するのに便利。今回はマスキングテープで代用)

手順


  • CPUのヒートスプレッダの隅から基盤との間にカッターの刃を入れる
  • 或る程度入ったらテレホンカードやポイントカードを差し込んで接着剤を切っていく
  • TIMと接着剤を除去してLIQUID PRO (もしくはクマメタル)をダイの上に塗る
  • ヒートスプレッダの周囲にブラックシーラーを塗り元の位置に固定
  • 乾燥させて固定する
  • マザーボードに取り付けて動作確認

感想


  • 最初にカッターの刃を入れる時が一番緊張する。角度を間違えると基盤を傷付け故障の原因になるので入らなくても無理をしない
  • カッターだけでやる人もいるがテレホンカード類を用意した方が安全。或いは殻割り専用ツールを使う
  • 3330でも6700KでもTIMは完全に乾燥してボロボロになっていた。これは冷えない訳だ
  • ヒートスプレッダを綺麗に戻すのは結構難しいが、最初に写真を撮っておいてそれを参考にすると良いと思う。最終的には取り付けられれば問題ない
  • 本来なら或る程度乾燥の為に時間を置くべきだが、壊していないか確認したくなり早速取り付けてしまったが今の所問題なく動いている

結果


試しに負荷を掛けてみた。室温は23度C程度。CPU温度はpackage temperature。

i5-3330

マシン構成

  • OS: Microsoft Windows 10 (64bit)
  • CPU: Intel Core i5-3330
  • Mem: DDR3-1333 16GBtyes
  • GPU: HIS (AMD RX480)
  • HDD1: WD5000AAKX (500GBytes)
  • HDD2: WD30EZRX (3TBytes)
  • 適当なケースがなくバラック状態

主にゲーム用として使っているのでCINEBENCH、手持ちのゲームなどを試してみたが60度Cを超えない。

手持ちのソフトはCPUよりGPUパワーを必要とするタイトルばかりなので、AMD RX480がbottleneckになっている感じ。当然ながらCPU負荷も温度も上がらない

6700K


マシン構成

  • OS: Linux (Debian/Sid) w/ Linux kernel 4.10.10 (64bit)
  • CPU: Intel Core i7-6700K
  • Mem: DDR4
  • GPU: Onboard
  • SSD: SATA 512GBytes
  • HDD: WD 8TB

Linux machineで行う負荷の高い作業は:
  • Source codeからのbuild (Linux kernel, Mozilla Firefox, etc)
  • 3D graphics (iGPU)を多用するsoftware (Stellarium, Celestia, etc)
  • ffmpegなどによる動画encodingなど

※以下、PC内温度32度C
  • Linux kernel (v4.10.10)、Mozilla Firefox (55.0a1, 54.0a2)などをbuildして60度Cを超えない
  • Celestia, Stellariumなどを実行しても40度Cを超えない
  • ffmpegでのsoftware encoding (h264)では最大63度C。QSVを利用したtranscoding (h264, rescaling)なら40度Cを超えない

これからの展望


巷で話題のAMD Ryzenならソルダリングなのでこんな手間は必要ない。

利益率を上げる為に行われる製品の製造プロセスの見直しは必要だが、さすがにやってい良いことと悪いことがあると個人的には考えている。Intelは(せめてK付きとかは)ソルダリングに戻してほしいし、AMDにはこのままソルダリングで続けて欲しい。

2017年4月2日日曜日

NieR:Automata Original Soundtrackのヨコオタロウ氏のメッセージをshellとnkfでdecodeする

NieR:AutomataのOriginal Soundtrackに付属するブックレットに、ディレクターであるヨコオタロウ氏のメッセージが16進数で記載されており、(大抵の人間は)そのままでは読めない。

ネット上では既に多くの先人達が解読しており、URL等で使われる「パーセントエンコーディング」であると知られている。これをshell scriptとnkfを使ってdecodeしてみる。

なお、メッセージの内容については一切触れない。

実際の作業

* 写真を取る/スキャンする
* OCRで文字に変換
* 16進数文字列→日本語

最も面倒だったのがOCRで文字に変換する部分だった。写真の撮影のしかたが悪かったのもある。今回はGoogle driveにuploadしてOCRにかけ、目視で比較して修正するという方法を取らざるを得なかった。

一旦文字列になってしまえば後はnkfに掛けるだけである。

% echo '\n<16進数の文字列>' | fold -s2 | tr '\n' '=' | nkf -WwmQ

まず、foldで2文字ごとに区切る。次に、trで改行コードを'='に変換する。最後にnkfに文字列を渡してdecodeする。

参考URL

* [shell で4文字づつ切り出す方法 - Qiita](http://qiita.com/mapk0y/items/51e6765add9b79264714)
* [40.Linuxのコマンドから行うURLエンコード、URLデコード](http://www.garunimo.com/program/linux/linux40.xhtml)
* [パーセントエンコーディング - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0)