スピン注入メモリ STT-RAM の可能性

 筆者が子供の頃には学校で (すくなくとも大学に行くまでは) 素粒子に付いて教わる機会が有りませんで、当時は独学で勉強しましたが、今はどうなのでしょう? 遅くとも中学校くらいで概要くらいは教えるべきだと思います、でなければ素粒子関連の技術と霊感商法の区別が出来ない一般人を大量生産してしまうからです。

 1985年に開催されたつくば万博を観に行った際、素粒子(或いは素粒子より更に小さい物)を子供の私でも理解出来る様に展示してあるだろうと勝手に期待していたので、会場で物質の最小単位が原子であるという説明を受けた時には希望に満ちた夢の世界に居たのに、突然崖の上から突き落とされたくらいに残念な思いをし、科学万博というイベントに限界を感じた事を今でも覚えています。

 本題に入りますが、スピン注入メモリの速度はDRAM以上SRAM未満と解釈しています。しかも不揮発です。経年劣化的な寿命は現時点ではDRAMより少し劣る程度で半永久と考えて良いと思います。Bit化けは同様に磁気反転で記憶するHDDのBit化け頻度と同程度ではないでしょうか?その様に推測しています。

 電子部品としては1Gbitのチップが製品化されつつある様で、256Mbit品は既にDDR3互換のチップが流通していて小容量DRAMの置き換えとしてSSDのキャッシュメモリ等に利用されていると思います。DRAMの様なリフレッシュ動作は不要なので省電力低発熱で、かつ不揮発な為にキャッシュ用途に適しているからです。

 1Gbitチップが8枚あれば1GBですから、下の写真の様に片面16枚+ECC用2枚、両面で36枚搭載したDIMMを作れば4GBのDIMMが作れます。写真は普通のDRAMを使った DDR3 ECC Registerd DIMM の1例ですから、写真自体はSTT-RAMではありませんが、STT-RAMの1GbitチップはDDR3/DDR4の互換チップですから写真と同じレイアウトが可能と思われ、DDR4互換の4GB DIMMの製品が(どこかの企業が政治的に潰さなければ)まもなく登場すると思われます。この写真の例ではチップ枚数は片面が主DRAM16枚+ECC用DRAM2枚+レジスタ1枚=片面19枚、両面で38枚です。仮にチップ1枚の卸価格が千円なら4GBのDIMMは3万8千円+数百円が原価ですね。
ECCREGISTERDDIMM.jpg

 磁気メモリを考えるには永久磁石の原理を知っておく必要が有りますが、永久磁石がなぜ磁石なのか?と言えば、私の理解では、
 1:素粒子にはスピンと呼ばれる特性が有り、常に一定方向に自転している。
 2:電子は荷電粒子なので上記の自転により電子単体で電磁石化している。
 3:永久磁石は何らかの方法で電子の自転の向きを一定方向に揃えた結晶。

 逆に言えば、(永久磁石ではない)普通の物質は電子のスピンの向きがバラバラで磁気が中和された状態に成っている。と理解していますが、ではなぜ物質中でスピンの向きが一定方向に”固定”されるのか?に付いては全く理解出来ていませんが微小質量でも光速で回転する為にジャイロ効果的なものが強烈なのかもしれません。しかし、それならどんな物質でも永久磁石化が出来そうですし、コイルの鉄芯などが磁化した後に元に戻ったりする現象の説明になりません。そもそも、なぜ電子は超電導物質の様に永久機関さながらにスピンし続け磁力線を放出し続けているのか?が理解出来ていませんので、その辺りの知識を深める必要が有りそうです。

 とは言え、この永久磁石の特性と、魚釣り等で利用される偏光メガネ(偏向メガネではない)の様に電子のスピンの向きを揃えるフィルタを組み合わせた素粒子レベルでの磁気メモリがスピン注入メモリ STT-RAM (もしくは ST-MRAM / STT-MRAM ) です。素材はレアメタルではなくスズとマンガンの様などこにでもある物が利用出来る様ですから、安価で大量に作れそうな気配が有ります。

 フィルタを通過してスピンの方向が一定の電子は、同様に一定の向きに固定された永久磁石内部で磁気的に大きく影響を受けて抵抗値が変化するという性質が容易に想像出来ると思いますが、その抵抗値を1個のトランジスタ(もしくはFET)で増幅した物を 1bit として読出しに使うのが STT-RAM の様で、構造的にDRAMと同じくらい微細化出来るだろう事が想像できると思います。逆に記憶する際には、電圧を上げて一定方向のスピンを持つ電子を強引に通過させて永久磁石部分に磁気反転を起させる=スピン注入動作という事の様です。フィルタの構造(スピン注入する際の電圧にフィルタが負けて劣化するケースや、エレクトロマイグレーションが起きる可能性など)により寿命が決まるのかもしれません。HDDはヘッドの物理移動と磁性体円盤の回転が直交したタイミングで特定bit(連続してセクタ全体)へのアクセスを行いますが、STT-RAMでは古典物理的には移動する物が無く、強いて言えば電子だけが移動するのですから速度面には圧倒的な差が有り、逆に集積密度はHDDと同等以上に高められる事が容易に想像出来ると思います。

 3D XPoint に比べても速度では STT-RAM の方が2桁以上早いのですから、残るは集積面での工場現場の熟練度です。1Gbitチップが登場し、積層してHBM化してCPUの隣に配置すれば、DRAM と NAND-SSD や 3D-XPoint が不要の産廃と化す可能性が有ります。

 AMD は Zen 世代のCPUをSoC化しています (どういう訳かコンシューマ向けのマザーにはチップセットが載っていますが、21号機のマザーボードの様にチップセットが無くても動くはずです) から、Zen と STT-RAM が有ればハイエンドPCがラズパイ並の名刺サイズに収まる可能性も有り得ます。但しハイエンドPC並の性能を出すには携帯端末では電力面で不利が有りますから携帯するには2GHz以下になるんでしょうね。
 
 
 
スポンサーサイト

EPoX 復活!?

 EPoX は台湾のマザーボードメーカーとして1995年に設立され、4年後の1999年には台湾株式市場に上場するまでの急成長を遂げた企業です。年代からして恐らくWin95から始まるITバブルの波に乗って急成長したのではないかと思いますが、同様にITバブル崩壊により消えていった企業でもあります。

 筆者も当時の1台 EPoX KP6-BS を所有しており、これは Dual Slot1 の440BXマザーという当時は鉄板とまで言われた盤石な構成ですが、VRMが焼損する事で有名(例1例2例3)になり、話題性の有った逸品?とも言えます(その為、常用するにはVRMの改造からスタートする事になります)。

 この様に話題性の有る EPoX ですが、会社自体は2000年代に入り経営状態が悪化した際に、給与未払いなどで大陸側の深浅工場と台湾側の本社が対立、その際に給与未払いぶんを盾に大陸側が工場の権利を取得、しかし商標権は台湾側が保持し続けた為に、大陸側は SUPoX という社名に変更して再生、大陸内での営業に限定して継続してきたという経緯の様です(台湾のWiki情報も参照下さい)。

 それが、最近、SUPoX側は、どうやら仮想通貨マイニングの波に乗って成長している様で、昨年(2017年)の年末までは SUPoX.cn サイトで運営されていた事を確認していますが、このサイトが最近閉鎖というか移転されて元々の EPoX.cn サイトを復活させた(引っ越した)様です。

 追記: SUPoX.cn サイトも復活した様です。

 仮想通貨の波に乗って得た利益で EPoX の商標権を買い取ったのか?それともドメイン名の期限切れを狙ってドメイン名だけ取得したのか?或いは全く別の理由で EPoX に戻したのか?それは未だ掴めていませんがHPを見ても判る通り今迄通りのゲーム色が残るものの、多くは仮想通貨マイニングを想像させる画像に成っています。なぜ SUPoX と EPoX を両サイトを残さなかったのか?は謎です。サイト内リンクは未だに 旧SUPoX.cn へのリンクに成っている所が散見されますので昨日今日 EPox に引っ越したばかりかもしれません。

 筆者的には EPoX として国際的に正式復活して欲しいですし、願わくば安価でちょっと危険な話題性のあるマザーボードを作り続けて欲しいです。例えばこれ、
20170726034553_52404.png
などは危険な香りがしますね、こちらのTyan製を正統派とするなら、これ↑はいかにも明らかに規格外の位置にゼーレの目玉の如くPCIeスロットが強引に乱立していて、どう見てもマイニング専用マザーです。但しBIOSTARのOEM品(もしくはパクリ)かもしれませんが・・・とは言え、同分野では他にも有る様で、例えばASUSも類似品を出しているので、マイナー(採掘者)の間ではゼーレの目玉が既に普通の事かもしれません。



 余談ですが・・・人民元は外貨への換金を度々規制されてきた経緯などが有り、必然的に仮想通貨への換金と海外への持ち出し需要が高まる構図が有りますが、日本は事情が異なります。仮想通貨で利益を出せるのは、それを商売に結び付けた側であって仮想通貨を高値で買わされている消費者ではない所に注意しなければなりません。パチンコやパチスロで利益を上げているのは台を生産しているメーカーや店舗を経営している店舗側で、その台や土地や店舗を買う金を出しているのは消費者側です。仮想通貨も同様に換金所の家賃や機材や人件費を払っているのは仮想通貨を高値で買わされている(買わされている自覚無しの)消費者です。御注意下さい。
 
 
 

メモリアクセスレイテンシ と 投機実行

例えば、こちらのツール(若干古いですが)を使うと概ねの実効レイテンシを簡易的に計測出来ます。

下記は一例として筆者の17号機(SandyBridge-EP)で上記ツールを使って計測したレイテンシ(レジスタは計測値ではありませんが通常1サイクルだと思いますので・・・)です。

 レジスタ : 1 clock ( 0.3ns )
 SRAM-L1 : 3.5 clock ( 1.2ns )
 SRAM-L2 : 11 clock ( 4ns )
 SRAM-L3 : 45 clock ( 17ns )
 DRAM  : 215 clock ( 80ns )

余談ですが、最近購入したi386用マザー で使える 30pin SIMM が 60ns ~ 80ns ですから、レイテンシの点でDRAMは30年以上停滞している事が判ります、Sandraでも同様の値を計測出来ます(が重たいツールのインストールや宣伝などが付属してきます)。Sandraでは「ベンチマーク」 → 「メモリーコントローラ」 → 「メモリーのレイテンシ」 → 「グローバルデータメモリ:完全なランダムアクセスパターン」を選択して計測すると上記のツールと概ね同じ値に成りました。

本題に戻って、一例として、下記の様なCPUID取得ルーチンを考えてみます。

 命令1 : レジスタEAXに定数を代入する
 命令2 : レジスタEAXに従ったCPUIDを取得する
 命令3 : レジスタEAXをメモリ上の値と比較する
 命令4 : 上記の結果が同じなら分岐
 命令5 : レジスタEAXと定数の論理積を計算する

たぶん、上記は1~2クロックで投機実行が終わるのではないかと思いますが、命令3の比較に使われるメモリ上の値を取込むまでの間は命令3以降の結果を確定出来ません。

具体的には、

 命令4の分岐予測に失敗する可能性
 命令5の論理積演算結果を破棄する可能性

が投機実行の時点では生じてしまいます。

運よくL1やL2にデータが有れば(パイプライン上で並列に取得出来れば)事実上レイテンシは無視出来るので即時結果を確定出来ますが、L3なら数十クロック、DRAMまで取りに行く場合は200クロックくらい待たされ、2クロック程度の簡単な処理の処理時間がレイテンシに依存して数百倍も掛る事になります。

レイテンシを待つ間にも命令6以降を並列して投機実行出来るかもしれませんが、命令4の分岐予測に失敗していた場合は、それらの投機実行結果も全て破棄して最初からやり直さなければなりません、その判断にもレイテンシの200クロックくらい待たされる事に成りますね。とは言え、最近は分岐の両方を同時に投機実行する様ですから、破棄してやり直す確率は低いのかもしれませんが結果を確定できない点はどうにもなりません。

DRAMのスペックが向上しているのはバースト転送速度が向上している = シーケンシャルアクセスが向上しているだけで、ランダムアクセス(レイテンシ)は向上していない様です。

これはもう主メモリやRAMと言うより、DRAM改めDSAM(Dynamic Sequential Access Memory)と捉えるか、外部記憶デバイス として捉えるべきなのかもしれません。L2までが主メモリ(RAM)で、DSAM(DRAM)はスワップストレージ、L3はスワップストレージ用キャッシュくらいの感覚で、スワップ読み込みで待たされている間は別のスレッドを処理する事に成りHyperThreadが・・・と、まるでOSのカーネル的な処理をCPU内部でという所につながってくるのですね。

人に例えるなら、

 SRAM = 暗算で即答
 DRAM = コーヒー飲みながら辞書を持ち出しネット検索して回答
 スワップ = 神保町まで古書を買いに行き読破研究してから回答

くらいの差でしょうか・・・
 
 

Meltdown に関係する投機的な実行に付いて

下図は筆者の自作機を構成するパーツ間の帯域を調査してボトルネックを見付ける目的(例えばこの記事リンク先は2015年になっていますが元々2012年10月頃の記事です、掲載順を変更する目的で2015年に変更しています)で5年前から書き始めたブロック図からCPUコア回りを抜き出して少し加工した物です。

CPUARCH11_20180218203812c49.png

Meltdownで話題に成った投機実行ですが、上図で言えば主にDecoder(デコーダ)とCache(キャッシュ)の部分で発生する問題です。図の通りP6系やK7系はデコーダが3個以上並列にあり、3命令以上を同一クロックサイクルで処理しますので、メモリの速度はCPU側の1クロックサイクルで3命令以上を引き出す帯域が必要になります。NetBurstの場合はデコーダは1個ですがトレースキャッシュにヒットした場合は2命令以上が並列になります(トレースキャッシュにミスした場合は最大1命令1サイクル)。

専門的には、フォン・ノイマン・ボトルネック(Von Neumann bottleneck)として半世紀前から知られていた事ですが、CPUを高速化しようとすると、プログラムやデータの読み込み回路がボトルネック(bottle - neck:瓶の口が細いと、中身を出し入れする時に口の部分が邪魔に成って液体の速度が遅くなる事の例え)に成るので、その対策として高速なメモリが演算装置近くに必要になります。

創業当初のIntelは元々は上記の様にして演算装置の近くで使われる事が期待されていた高速なSRAMメモリを製造する会社からスタートして、現在に至るまで主要製品としてSRAMを製造し続けています(現在はCPUに内蔵する形でSRAMを製造し、その速度で優位性を確保しています)、その為、今回のMeltdownは皮肉にも創業当時から得意とする専門分野での失敗でした。

このフォン・ノイマン・ボトルネックを解消する為に読み込まれたSRAMキャッシュ上のデータが盗用されてしまう抜け道が発見されたのが Intel 製P6以降のCPU全般で見付かったMeltdownで、AMD製では抜け道が塞がれていたという訳です。

投機実行とは、本来、順番に1個づつ実行されるべき命令を上記の通り高速化目的でとりあえず間違っている(かもしれない)事も命令の前後関係をある程度無視して同時多発的に実行してしまい、後で間違っていた命令は中断したり結果を破棄して、やり直す仕組みで高速化しているので、投機的な実行と呼ばれる様になりました。

この投機実行の間違いをわざと起して本来は読み込んではいけないデータをキャッシュに間違って先読みさせ、そのキャッシュを読み取るのが Meltdown です。AMD製のCPUでは防止策が機能していて騙されても問題が起きない様になっていましたが、Intel 製のCPUでは騙されるとパスワードでもなんでもキャッシュに(高速に)読み込んで晒してしまい、悪い人にも(高速に)お渡ししてしまうというのが今回のオチです。ちょっとイジワルな言い方になってしまいましたが・・・

Intelは、最近Vega世代のRadeonをCPUに統合する計画を発表した様ですが、そのうちGPUだけでなく AMD Zen のセカンドソース契約をして AMD Zen と同じ物を製造するセカンドソースCPUの製造会社になってしまうかもしれませんね・・・AMDはIntelのCPUと同じ物を作ってはいけないという契約を結んでいるらしいですが、逆の制限は無い様な事が何処かに書いてあったのでIntelは勝手にAMD Zenと同じ物を作っても良い権利を最初から持っているのかもしれませんが・・・それはちょっと酷い話しでもあるとも思います。

 
 

PCをネットに接続しないという選択

 今騒がれている Meltdown や Spectre もそうですが、ネットに接続しなければ影響が全く有りませんし、ネットに接続しなければ、そもそもウイルス対策ソフト等のセキュリティを気にする必要が全く有りません。NIC(LAN)をDISABLEしてUSBもKeyboard/Mouse以外は接続しない完全スタンドアロンです。

 「あたらなければどうという事は無い」

 初期の自作PCの時代にはNIC(LAN)はオプションでインターネットが未だ一般的ではなく、店頭販売されているソフトを購入して、箱に入っているメディア(フロッピーやCD-ROM、本当に初期の頃はカセットテープ)から直接アプリを起動する形式で、今でいえば Live CD と同じものに特定のアプリがインストール済みでOS起動と同時に自動でアプリが立ちあがる設定が行われた状態で販売されていました。例えば日本で当時一般的に利用されていたワープロソフトの一太郎はフロッピー起動のMS-DOSが組み込まれた状態での販売で、HDDへのインストールが必須になるのはVer5以降(Wiki情報)です。保守的思考とも言えるかもしれませんが、同様に、使いたいアプリを Live CD 化すれば最悪の場合感染しても再起動で復活します(但し、BIOSやFirmwareに感染した場合はBIOSやFirmwareを元に戻す必要あり)。また、いづれにしろWindows7のバックアップを Blu-ray にしておく予定です。

 ネットの用途を整理して、ネット接続が必要無いPCはネットから隔離、つまり鎖国です。出島となる機体ではネットに接続しつつも、家内LANは鎖国する事で貿易と防疫を同時にと言う事で、そもそも家内LANを廃棄にし完全スタンドアロン化する事も検討中です。

 完全スタンドアロンにしたPCの用途は、改造、動画編集・閲覧、ドキュメント編集、ゲーム、プログラミング、ベンチマーク(世代間の性能比較用)等で、恐らく32bit機(9号機以前)は全機スタンドアロン化し、64bit機も多くはスタンドアロン化するかもしれません。HD動画なら500MHz程度のPentiumIIIやCeleronでも充分閲覧可能です

 20号機が年初のWindowsUpdateによってBSODした為、クリーンインストールからやり直さねばならないのですが、WindowsUpdateを普通にしただけでBSODするって、Win98並の品質まで落ちたのか最近のWindowsは・・・と思ってしまいます。せめて各世代のCPUとチップセットで数機種、合計100台程度でWindowsUpdateが正常に機能するか試してから配布するくらいはやって欲しいものです。そのくらいの余力が数兆円の資産と言われる会社には有るはずですし、その程度の事なら0.001%以下の資産目減りも無いハズです。彼らにとっては簡単な事のハズですよ。
 ちなみにK8世代が年初のWindowsUpdateでBSODするのは知っていますがBull/PiledriverでBSODするのは筆者が1モジュール/1コア設定にしている事と関係あるのでしょうかね?
 
 
 
 
 
プロフィール

DualSocketTheWorld

Author:DualSocketTheWorld
自作を始めて二十数台目くらいになりますが、最初からデュアルソケット限定(始めた当時はデュアルスロット)で自作しており、近年になってAMD K6を試したくなりSocket7でK6-2+のシングル構成で組んだのがシングル初です(以降、Bull/nano/Ryzenと数台仮組レベルで組んでいます)。

シングルマザー(含:シングルソケットマルチコア)や4ソケット以上の自作は基本的にしませんし、メーカー製PCの改造も基本的にはしません(ノートPCのSSD化くらいはしますが・・・)

基本路線はワークステーションと呼ばれる分野での自作で、OSもWindows系であればProfesionalが主な対象に成ります。

ゲーマーの様なOverClockは行わず、WS路線としてハイエンドCPUとハイエンドGPUの組み合わせで定格或いはDownClockで発熱を抑えつつ、その時のアーキテクチャに置いて爆速かつ静音を目指し、30年以上の長期に渡り稼動状態をキープする事を目指します。

※基本的にリンクフリーです。どこでも自由にどうぞ。

※画像は時々変ります。

※お決まりの文章ですが、改造は個人の責任で行ってください。ここに記載された情報は間違いを含んでいる可能性が有り、それを元に製作や改造などをして失敗しても筆者は一切責任持てませんので悪しからず。

筆者略歴:
小学生時代にゴミ捨て場で拾ったジャンクテレビ数台を分解して部品を取り出し真空管アンプを自作、中学生時代にPC8801mkⅡsrでZ80アセンブラを始める。社会人になって初のプログラムは弾道計算、後に医療系・金融系プログラマ~SEを経て100~200人規模プロジェクトのジェネラルマネジャを数年経験、独立して起業。現在は不動産所得で半引退生活。
(人物特定を避ける目的で一部経歴を変更しています)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR