変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

パソコン

【ID-COOLING】 SILENCER-ITXのサンプル展示

COMPUTEXで展示が見送られたSILENCER-ITXが某ショップに展示されているらしい。
Core i7-5775Cとオプションの専用CPUクーラーの組み合わせたファンレスPCでゲームができるかもしれないPCケース。
夏場はファンレスPCに扇風機の風をあてて使用してもよいが、室温が急上昇し人間の方が先にクールダウンが必要になる。
※CPUにとって40℃なんて平熱領域でしかないが、人間には無理。
 
 



【ASRock】 N3150B-ITX

ここはASRock Q1900DC-ITXCeleron J1900)で動いている。
暫くは同型品が出そうもなかったのでそうしたんだけど・・・
N3150B-ITXCeleron N3150)が出るらしい。
N3700-ITXPentium N3700)もスグに出るらしい。
周波数的にCeleron N3150(1.6GHz、バースト時2.08GHz)
< Pentium N3700(1.6GHz、バースト時2.4GHz) となっているので・・・
< Celeron J1900(2GHz、バースト時2.42GHz)から買い替えるメリットは感じない。
そして、またしても、最大メモリ容量が8GB(ARK)なのか16GB(ASRock)なのかは謎である。
また、ARKでは3種類とも2コア構成のCPUモジュールで4コアということになっている。※過去の記事では2コア4スレッドだったり4コア4スレッドだったり混乱している。
BayTrail-DからBraswellになりTDPが4W減って6Wと低消費電力を優先したコアでしかもPentiumは4Kディスプレイにも対応してるっぽい。
今時分はPentiumの方が格上のハズだけど、コアの世代が違うと性格にも違いが出てスペック表の数値だけでは容易に比較できない面もあるが、J1900はCPUフィンに触っても発熱を感じないのでバッテリー稼働でもしない限り今のままでいいだろう。それにTDPが6Wでもしっかり発熱(アチチ)しないとも限らないのだから(大笑
いずれにしてもDC電源タイプは出ていないので今回は見送り。DC電源タイプのminiITXは組立が楽だが、ACアダプターの供給電力は40~120W程度なのでmini-ITXのUSB3でスマホを急速充電をするにはもACアダプターの電力が足りないかもしれない。amazonでコネクタ(内径2.5mm外形5.5mm)を探すと65W90W(何種類かあった)がある。DRAM1個+SSDなので30Wでよさおう、でもDRAM2個+HDD4個なら79W推奨なので90Wがいいかな?
 



Core i7-5775C

Core i7-5775Rはパッケージがマザボに直付けのBGA1364だったが、このLGA1150版がCore i7-5775Cらしい。とりあえず標準品質ならFFXIVも遊べるシロモノらしいので結構いけるのかもしれない。
Core i7-5775Rを搭載したnucタイプのパソコンが欲しかったのだが、値段が高く、またゲームをやってるとファンの音や排熱が気になるらしいので、断念した。
Core i7-5775Cでmini-ITXを狙った方が良いゲームPCになるかもしれない。
Core i7-5775R同様にL3キャッシュが他のCore-i7より2MB減っているが、パッケージの都合でIris Pro Graphics 6200のeDRAMの面積分だけ減らさなければならなかったのだろう。
それよりも、Core i7-4790Kよりシステムクロックが下がっているのが気になる。
コアがDevil’s CanyonからBroadwellになって若干性能がアップしているらしいから、ゲームするなら若干CPUの性能が下がっても、大幅にGPUの性能があがった方が好都合だろう。しかもTDPが88Wから65Wに下がっている。だが価格が5万円台と高目で、さらなるパワーアップをしようと高性能グラボを追加すると高価なIris Pro Graphics 6200を封印することになり、何んだか訳が判らないものになってしまいそうなので、潔く、PCケースの裏面に拡張スロットが無いものを選んだ方がいいかもしれない。
なので、高性能なグラボとM2タイプのSSDを使うなら、よそ見をせずに真っ直ぐLGA2011-v3の方を眺めていた方がいいハズだ。
でも、
拡張スロットがロープロファイルなので普通の高性能グラボを載せるのが難しいスリムPCケース
Pentium G3258とPentium G3258用のマザボ( AsRock Z97 Anniversary)を積んでいるけど、
なぜか?Core i7-5775Cがマザボの対応表に載ってる。※要BIOSアップデート:P1.50。
なので、Core i7-5775Cに載せ替えてみようか?と思わない訳でもない。
Pentium G3258のOCで涙を飲んだPCの載せ替え用CPUと考えれば・・・
なかなか良いシロモノなのかもしれない。
価格差も性能差も凄い。(大笑
多分CPUファンの回転数もかなり違うハズ。(大笑
VRMもいい音を立てるかもしれない。(大笑
まるで、AT86とGTX・・・orz



古いパソコンの電源が入らない

何気に前のメインパソのパソコンの電源スイッチを入れてもファンすら回らない。
マザボのメモリを挿し直すと動き出すのたが、ACケーブルを挿し直すとまた不調になってしまう。
どうやら本当の原因はマザボのコイン電池(CR2032とかCR2025)の寿命が尽きたせいらしい。
と云うのもマザボのセンサにコイン電池の電圧は含まれていないのでなかなか気が付かないのだ。
この電池の構造はリチウム電池(充電不可)で少しづつ電圧が下がっていくが結構粘り強く寿命が尽きる直前に一気に電圧が下がる特性があり、いつ切れるか予想が付かないのだ。だからセンサで監視しても無駄なのだろう。
ではなぜ電池が切れると起動しないのか?多分BIOS(UEFI)で設定内容を記憶したメモリの一部のデータが化け、起動できそうもない設定値になれば、無茶なオーバークロックと同じで、電源スイッチを入れてもファンすら回らないということになるのだろう。しかし、メモリを挿し直すことで、記憶したメモリの内容を無効化されてデフォルト設定になりやっと動き出すというあたりだろうか。今ならフラッシュメモリで十分なのだろうけど、マザボのRTC(時計)は動かし続けないといけないのでやはりボタン電池が必要だから、そのままになっているのかもしれない。※そこにコストをかける事にOKが出ないのだろう。
そう考えると、「オーバークロックをするつもりがないならオーバークロックできないマザボ」の方が安心して使えるのかもしれない。
マザボで使用する場合のボタン電池の寿命は2~5年だそうだ。古いマザボを使う時にはボタンの交換から始めた方がいいだろう。
ん?メインのパソも2年(2013年の3月頃~)たってるので、そろそろ電池の交換時期かもしれない。
 



プラットフォーム

Windows10をアプリのプラットフォームにしたくて、AndroidやiPhoneのアプリを簡単にWindows10用にポーティング(移植)することもできる様にするようだ。
既にWindowsとAndroidとiPhoneを一本の開発環境で設計できるものがある様なので、その開発環境のベンダーにAndroidとiPhoneからWindowsへポーティング(移植)ルールベースの様なものを作ってもらうのだろう。
WindowsのアプリからAndroidとiPhoneへのポーティングも用意してあれば、とりあえずWindows10で開発してもいいかな?と思うのだが、それは無いらしい。Windowsと Android、iOSとの垣根を取り払っても、Windowsに入ったら出られない!のでは、アリジゴクと同じだ。そこに足を踏み入れるげきではない。
そうなると、最初からどのターゲットへも移植ができる開発環境を選択すべきなのだろう。
判り切っていることだが、アプリのポーティングで重要なのは、どのターゲットでも同じ様な操作で同じ様な結果が得られることであり、アプリの中身が全く別のAPIやレイヤーで実装されていても、その違いを開発環境が綺麗に隠ぺいしてくれるなら、それに越したことは無い。
ところが、タ-ゲットのGUIの操作の違いによってアプリの操作が変わってしまうと複数のタ-ゲットを切り替えて同じアプリを使う場合は操作方法の違いが不便で仕方がない。少し違うが例えばFFXIVのWindows版とPS4版とVITAのリモートプレイの3モードでプレイしていたが、パッドのボタン配置やコマンド入力がちょっと違うだけで嫌な感じがするものだ。しかし、どれか1つのタ-ゲットでしか遊ばないプレイヤーも多いだろうから、そのターゲット風のべったりとしたボタンやキー操作にした方が大方のプレイヤーにはしっくり来るハズなので、全てノターゲットに対して開発環境を統一し大方のリソースを共通化しても、ターゲットごとに操作の最適化やカスタマイズ(例えばスクリーンショットの撮り方など)をしなければいけない!という事態は避けて通れないだろう。
そうなるとWPSや.NetのAPIなど詳細なコトは知らない方が良いが、Windowsでのデザイン手法や画面の中のレイアウトの特徴(特に制約)などはかなりキッチリ押さえておかないといけなくなるので、Windows PhoneとiPhoneとAndroidスマフォを3台持ちし日常的に「似てるけど・・・違う!」ことに慣れていないといけないのかもしれない。これにスマートウォッチも増える事になると、両腕に付けないといけない!
もし、Windows Watchが出たら、どうしようか?
とりあえず今の悩みはDOCOMOの新契約にすると月額料金が跳ね上がること。家族はモバイルデバイスを電話かカメラとして使うので、家族全員分をまとめても1GB/月にも満たない。ボク自身は仕事場のパソコンが直接ネットに繋がっていないのでスマフォやタブレットから日に何度もWEB検索しているが・・・それを含めても、1GB/月にも満たない。(爆
それにDOCOMOにしているのはイマドコサーチのプラットフォームとして使うためなのだ。じきに新契約に移行することを考えると、ボクのスマフォから家族の現在位置を確認できるなら、高価なLG Watch Urbane LTE と格安SIMのセットに切り替えれば、1年経てば安あがりになることは判っている。恐ろしいことにイマドコサーチの対象が何人でも1年で元が取れるのだ。そう判っているのに、なかなか踏み切れない!半分ぐらいは時計に向かって電話するのが恥ずかしいというのがある(笑。今のところ囲い込み策が成功している訳だが何かのハズミが付いて飛び出したら、もう柵の中に戻る意味は何もないだろう。
ヘッドセットを時計の文字盤の縁に固定できるスマートウォッチって出ないかな?



キャンセルのキャンセルはキャンセル?

概ね会話では、
キャンセル、キャンセルと2度云うのは
とても重要なコトだからであり、キャンセルを強調したのであるから、
キャンセル、キャンセル = キャンセル
である。
実は、画面の中のウインドウの右上の【×】も、元は『画面に数えるのも面倒なほど沢山開いてしまったウインドウをワンクリックで簡単にパパッと消せる様にした【簡易操作のキャンセル】ボタン』である。
このボタンが実装されるまでは
沢山開いてしまったフォルダ・ウインドウを閉じるには・・・
「ウインドウの「プルダウンメニュー」を開き「クローズ」メニューを選択してウインドウを閉じる」 × 「消したいウインドウの数」
という過酷な操作を行うか、「ログアウト」ボタンを押すかの二択となっていた。
今日のフォルダ・ウインドウも「何もメッセージを表示せずにすぐ閉じ」とても便利。空気の様にまるでウインドウズには最初から【×】存在していたかの様に思える。
だが、最初のウインドウズはタイリング・ウインドウ・デザインであり、うっかり【×】を押すと画面がヘンテコにタイリングされる厄介モノでしかなかったし、フォルダウインドウ=エクスプローラの窓の間をファイル・アイコンをマウスでドラッグするという発想も無かった。というかアイコンはクリックするボタンであって、ドラッグするものではなかった。
とは云え、色々操作するアプリケーションとなると、その場で閉じても困らないブラウザはともかく、MS-EXCELやMS-WORDの【×】を押した途端にウインドウが消えたりすると、何時間も推敲した原稿がパァーになるので不評であった。このため、【×】のデザインはそのままに、名前を変え『ウインドウのクローズ』機能に変更され、雨が吹き込んできたので窓を閉じる様に要求すると「ベランダに洗濯物を干したままですが、窓を閉めてもよろしいですか?」と、それとなく「失態を指摘する」確認メッセージ機能もオプションで付ける事が推奨されている。
GUI操作での簡易さをサポートする重要な機能に『UNDO』(俗称:運動)がある。
これは、「うっかりファイルを削除」しても『UNDO』と唱えれば「消えたファイルが復活する」便利すぎるものだ。
※ネットワーク越しには『UNDO』が使用できないので、ファイル・サーバー上のファイルは復元できないし、確認メッセージも出ない。
相対する機能に『ReDO』(和訳:やっぱり止めた=やり直し)がある。ReDO=UNDOのUNDO なのだが、ReDOのReDOには諸説があり、

  • ReDO+ReDO = フリダシに戻る = 何も無かったことにする。
  • ReDO+先のReDOをもう1回やる = ダメ出しする。
  • ReDOの後のReDOは無効(ボークと宣言されブザーが鳴る)
  • ・・・

この様にGUIにおいて【キャンセル】(否定演算・操作)は鬼門で、簡単なGUIのデザインですら難しいものになってしまうので、GUIにおいては否定的あるいは後ろ向きな行動を取らず前向き(あるいは前のめりになる)な姿勢が好ましいデザインである事をまず学ぶべきである。
と云うのも
押すとその場ですぐ自爆する自爆スイッチにはキャンセル機能を実装するのは非常に困難であり、キャンセルという用語は使うべきではないと思ってしまうかもしれない。
しかし、1TBのファイルの様な巨大すぎてUNDOができない場合には
「ファイルサイズが大きすぎるので復旧はできません。本当に消してもいいですか?(はい、いいえ)」
ではなく
「ずいぶんと大きなファイルだね!じゃ今から消すね!(OK、キャンセル)」
の様に「キャンセルのキャンセルが存在しないところ」で使った方が、ちゃんと意志の疎通が取れるのだから。(笑



Galaxy G6が日本で売れないワケ

スマフォも最初の頃は、オモチャ感覚で、カッコ良さや奇抜さ、つまりどれだけ目立つのか?が重要であった。
その感覚で考えれば、エッジ・ディスプレイは心を揺さぶるものがあるはずだ!
しかし、スマフォを何台か使い込んでくると、あのサービスが良い!あのゲームがしたい!というあたりが重要になってくるから、機種よりOSよりコンテンツ次第になってくる。
とりあえず日本では、そこそこバッテリーの持ちが良くなったこともあり、iPhone 6がよく売れているそうなので、サービスとかゲームとか色んなものがそっちになびいているだろう。その辺はiPhone 6の発売頃からずーーーっと続き、どのAndroidの新機種を突っ込んでもなかなか売れない状況が続いていた様に思える。そ、Androidの新機種は話題になっても、ドレも伸び悩み。
なぜなのか?機種によっては実質0円などの広告はあるものの・・・店頭のAndroidの本体価格はドレもとてもお高いのだ!
あまりの高さにiPhone 6の価格差が小さく見えてしまい、1回くらい背伸びしてiPhoneもいいかな?とやらかしてしまうのも仕方がないだろう。
※スマフォの契約が今月で24か月目、自分もその可能性が十分にあります。
そんなウッカリ者がずーっとiPhoneを気に入るのかどうかは、一般常識で考えれば、「気まぐれなんだから・・・全く判らない。」ハズ。
それに、家のテレビやレコーダが地デジになり、スマフォのアプリ同様にアップデートもままあるので、FLETSなどLANが必須な状況だから、スマフォのアプリもLANでアップデートすれば、月に1GBも使えば多い方だったりで、スマフォの新契約には全く向いていない層に入っている。
そんなこんなで、今後は、どちらかと云えばLTEが使える数万円のスマフォやタブレットが増えていくと思ってる。
iPhone 6もGalaxy G6も お高い機種を買うのは一回切り、だんだん伸びなくなるんじゃないかな?
もし、チャンスがあるとすれば「消費税10%」の直前かな?お高いだけに消費税も多いからね。
ps.
今のSO-04Eは、安かったから選択した。
そして、Gガイド番組表のアプリを入れているが、リモート録画予約は【Panasonic DIGA】しか選択できないので、ささっと番組表を観て・・・録画するのを忘れてた!となった番組は、改めてブラウザからGガイド・テレビ王国を呼出してSONY製のBDZ-EW500に指令を送ることになる。
そんなこんな【囲い込み策】に何度か振り回されると、
AndroidもiPhoneもPS-VITAもRassberyPiも同じだな!
と思うしかないのだった。



CPUのマルチコアやマルチスレッドはGUIならデフォ仕様

# top でこのブログサーバーの一瞬の動きを見てみると

top - 18:49:32 up 12:19,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 120 total,   2 running, 118 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1918224 total,   180528 free,   763520 used,   974176 buff/cache
KiB Swap:  2097148 total,  2018320 free,    78828 used.   978824 avail Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1422 mysql     20   0 1104484  95844   3696 S   0.7  5.0   1:30.00 mysqld
 5388 root      20   0  130032   1736   1172 R   0.7  0.1   0:00.08 top
  379 root      20   0       0      0      0 S   0.3  0.0   0:26.84 xfsaild/dm+
 5335 root      20   0       0      0      0 S   0.3  0.0   0:00.24 kworker/0:2
    1 root      20   0   56332   2452   1276 S   0.0  0.1   0:05.90 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.89 ksoftirqd/0
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:+
    7 root      rt   0       0      0      0 S   0.0  0.0   0:00.04 migration/0
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0
   10 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1
   11 root      20   0       0      0      0 S   0.0  0.0   0:17.52 rcu_sched
   12 root      20   0       0      0      0 R   0.0  0.0   0:13.39 rcuos/0
   13 root      20   0       0      0      0 S   0.0  0.0   0:09.46 rcuos/1
   14 root      rt   0       0      0      0 S   0.0  0.0   0:00.78 watchdog/0
   15 root      rt   0       0      0      0 S   0.0  0.0   0:00.75 watchdog/1
   16 root      rt   0       0      0      0 S   0.0  0.0   0:00.03 migration/1
   17 root      20   0       0      0      0 S   0.0  0.0   0:00.22 ksoftirqd/1
   19 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:+
   20 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 khelper
   21 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs
   22 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns
   23 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback
   24 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd
   25 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
   26 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kblockd
   27 root      20   0       0      0      0 S   0.0  0.0   0:00.01 khubd
   28 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 md
   31 root      20   0       0      0      0 S   0.0  0.0   0:00.02 khungtaskd
   32 root      20   0       0      0      0 S   0.0  0.0   0:03.83 kswapd0
   33 root      25   5       0      0      0 S   0.0  0.0   0:00.00 ksmd
   34 root      39  19       0      0      0 S   0.0  0.0   0:02.15 khugepaged
   35 root      20   0       0      0      0 S   0.0  0.0   0:00.00 fsnotify_m+
   36 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 crypto
   45 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kthrotld
   46 root      20   0       0      0      0 S   0.0  0.0   0:00.11 kworker/u4+
   47 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kmpath_rda+
   49 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kpsmoused
   69 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 deferwq
  115 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kauditd
  257 root      20   0       0      0      0 S   0.0  0.0   0:00.57 kworker/u4+
  258 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 ata_sff
  259 root      20   0       0      0      0 S   0.0  0.0   0:00.00 scsi_eh_0
  260 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 scsi_tmf_0
  261 root      20   0       0      0      0 S   0.0  0.0   0:00.00 scsi_eh_1
  262 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 scsi_tmf_1
  345 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kdmflush
  346 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
  353 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kdmflush
  354 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
  372 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 xfsalloc
  373 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 xfs_mru_ca+
※120個のプロセスが常駐し、同時に動いているのはたった2個だけ。

これはKVMホストからCPUを2個割り振っているため最大で2個になっているのだ。※J1900は2コア4スレッド構成。
本来は120個もCPUが必要なのか?と云えば、別に急がなくてもよい処理が多く、短い間隔で120分の2の比率で順に動作するだけで間に合っているのだ。
それでも、WEBのapacheやデータベースのmysqld の様に忙しいモノも混ざっているので、4~8個ぐらいCPUがあった方が応答性能があがるだろう。
スマフォやタブレットで使われてるAndroidもベースはLinuxなので、いつも1個のプロセスしか常駐していない訳では無いだろう。
本当に単純なことをさせるなら、
例えばスピーカーから50Hzの音を出すなら

10ms待ってからスピーカーの端子の電圧を0にする

10ms待ってからスピーカーの端子の電圧を1にする

フリダシに戻る

とか

フラグを0にする

インターバルタイマーを10msにセットする

フラグの内容をスピーカーの端子に送信

フラグの内容を反転する

など非常に簡単なプログラミングでできるが、いくつもの音源をミキシングするとなると、この手のプログラミングでは全く歯が立たない。
各音源のある程度の長さの出力結果を作成し、それをまとめ、インターバルタイマーで順次送信すればいいのだが、
各音源のある程度の長さの出力結果を作成する時間が希望する時間が インターバルタイマーの設定時間 を越えてしまうこともしばしば起きるだろう。そうなると、音切れが発生してしまう。
しかし、仕様書に

  • 各音源のある程度の長さの出力結果を作成する時間がインターバルタイマーの設定時間を越えそうなら、中断すること

と書いても、音源データ作成中にマメに残り時間をチェックしていたら、

残り時間を気にしている時間 >> 音源データ作成

になりかねないので、処理中断用のトリガ(割り込み)機能がCPUに必要になるだろう。
これ以外にもあれこれ音源プログラムを使うなら、予約したメモリをオーバーランして他の音源のデータを上書きしないような警報機とかも必要になるだろう。
な訳で、同様にGUIでリアルタイムに多少複雑なこと(時計を表示しながら電波強度も表示するなど)をしようとすると、タスク・スケジューリングは避けられないし、タスクを安全に使うには、割り込み機能や警報機能なども必須なものになっていく。
そうなると例え最大効率が80%でも4~8個分のCPUがあった方が高い負荷がかかったときに踏ん張りが効いてくると云うものだ。
数日ごとにアップデートを乱発するようなAndroidのアプリが多い。Wifiでアプリのアップデートをダウンロードしながら、ゲームができるくらいの性能がないと、ゲーム中にアプリのアップデートを検知しダウンロードが始まりハングアップしてしまっては、いつもゲームシステムに「回線切り逃げ」と判定されKO負けしてしまう。これを回避するには、それなりの余剰性能が必要になってしまう。
ただ、CPUの余剰性能だけでなく、RAMもそれなりに必要になるので、時々手持ちのスマフォやタブレットがハングアップになってしまう様なら、もっと高い性能のものに買い替えるしかないだろう。
ボクの場合、メモリ512MBの中華タブレットを持っていたが、これが毎日起動から30分ぐらいはAC電源接続のまま暖機運転(アプリのアップデートの確認)が必要だった。これを怠ると、タブレットの設定画面を呼び出すだけでアプリのアップデートと競合が起き確実にハングアップ。回復にはリセットするしかなので、諦めてNEXUS7に乗り換えた。
つまり、ただ持ち歩くだけで満足するならモリ512MBの中華タブレットでも十分、ハングアップも気を付けて扱えばよいならマルチコアなど不要だ。
しかし、度々のハングアップで愛想が尽きたなら買い替えていいだろう。



CPUとシステムクロックとIPC

CPUはシステムクロックが高いほど性能があがりやすい。それは大雑把にCPUが所定の命令を繰り返して処理しているからだが、それはいくつかの手順(フェーズ)に分けられる。

  1. フェッチ:メモリから命令を読む。
  2. エンコード:読み取った命令を回路の信号に変換して送り出す。この信号が届いた回路が動作する。
  3. ロード:所定のデータを読み込む。
  4. オペレーション:データに変更を加える。
  5. セーブ:所定の場所にデータを保存する。

これを単純に繰り返すと、手順が5段階も必要で、これではシステムクロックが5GHzでも、実質的なシステムのサイクルは1GHzになってしまう。しかも、手順の関連性が高く、順番通りに処理するしかないのだ。
だが、どこかの手順の間は他の手順でしか使わない回路はヒマしているのだから、次々と流れ作業を行う様に構成すれば、1つ1つの命令の結果が出てくるのは1GHz相当の時間が係るものの、5GHzで命令を読み取るので、ある程度の時間の間には5GHzで処理している様に見えるだろう。だがロードやセーブと同じ回路を使って毎回CPUの外のメモリから命令を読んでいたら、5手順のうち3手順で順番待ちが発生しせっかくのパイプラインも「たまにデータが流れていく」程度のシロモノになってしまう。パイプラインを効率的に回すにはどの手順からも手軽にアクセスできるメモリ(キャッシュ)が必要だ。いっそのことロードやセーブの手順もCPUの外のメモリはあまりアクセスせずキャッシュへのアクセスがフル回転するようにプログラミングすれば、パイプラインにはいつもデータが流れるだろう。また、処理時間が案外かかるオペレーションはパイプラインの列を増やしロードとセーブがよどみなく回る様にもできるだろう。そこまで工夫しても外部回路へのアクセス=CPUが処理した結果報告なので、低速な外部回路へのアクセスが無くなる訳では無く、1つのプログラムにCPUを独占させてもそうそう効率良く処理できないので、複数のプログラムを時分割処理をさせ順に外部回路へアクセスさせたり、CPUそのものを沢山集め複数のプログラムを並列処理させたりするのも手だ。
今のCPUはとりあえずそんな感じになっているし、CPUの種類や製造メーカーによってシステムクロックと処理速度の比率もバラバラで、「同じ系列のCPUならシステムクロックが速い方が処理速度が高そう」という目安にしかならないが、IPC(1クロックあたりに実行可能な命令数)とシステムクロックの掛け算をすればいいのかもしれない。
今時分のCPUのシステムクロック速度は停滞気味で、処理速度の向上はCPUの並列化が主な手段となっており、CPUを集合するクラスターの規模を越え、もっと巨大なクラウド(サーバーをたくさん集めたもので使っているサーバーがドレなのかは判らない)になりつつある。これは自前でサーバーを用意するなら予備機やバックアップも自前で用意しなければならないが、沢山のサーバーの塊であるクラウドなら、まだ未使用のサーバーがそれを兼ねることができるので、コストや手配の手間を低く抑えることができることが大きいのだが、それはひたすら規模拡大を突き進めている状況でありバブルな状態と云えるから、
いつかは「結局、高い買い物になってしまった。」という時がくるのだろう。



CHIP

Rasberry pi より小さい4cm × 6cm のボードに
Allwinner R8プロセッサ(Cortex-A8 コア1GHz+GPU)、512MBのメモリ、4GBのフラッシュメモリ、USB、コンポジットビデオ出力、Wifiを詰め込んだもの。
9ドルとローコストだからロースペックではあるけれど、GPIOポートがあるので、ロボットのコントローラとか、温度・湿度のセンサーを繋いで、Wifiでデータを飛ばすといった、Arduno と Rasberry pi のドッチにしようか?と悩みそうな分野に向いていそう。
またRasberry piならUSB-HDDを繋いで、ブログサーバーを作れるけど、何かと重いから・・・
CHIP×3台でapacheとmySQLとnfsを分担させてもいいかもしれない。(笑
Ardunoには専用の3Gシールド(モジュール)が販売されている(数万円ぐらい)ので、室内だけではなく、少し離れた場所でも使えそう。USB接続のようでRasberyPIでも使えるらしいから、CHIPでも使えるかも?
 
 




top