現代PCの基礎知識(3):チップセットとメモリのあれこれ
はじめに
マザーボードには、プロセッサを搭載するためのソケットやバックパネルから外部の周辺デバイスを接続する端子の他にも、メモリやディスクを接続するためのインタフェース、拡張カードなどを搭載するためのスロットなどが用意されている。
今回は、これらを管理・制御するための集積回路であるチップセットとメモリについて紹介する。
プロセッサと周辺デバイスを繋ぐ要「チップセット」
マザーボードの中でも最も重要と言えるパーツがチップセットだ(図1)。
初期のPCでは、周辺デバイスとプロセッサを接続するための複数のチップを用いた電子回路をチップセットと呼んでいたが、現在のPCではLSI(Large-Scale Integration:大規模集積回路)として1チップにまとめられているものが大半で、その場合はチップ単体で機能するがチップセットと呼ばれている。
チップセットの主な役割には、メモリインタフェース、SATAに代表されるストレージとの接続、USBポートの提供、PCI Express(PCIe)に代表されるバスのサポートなどがある。
また、現在ではLANインタフェース(MAC)を内蔵したものも多く、サーバー用のチップセットの中には暗号処理機能(Quick Assist Technology)を内蔵したものもある。
かつてAMDのチップセットは比較的強力なビデオ機能を内蔵し、安価にゲーム用PCを組む場合に重宝されていたが、現在では同等以上のビデオ機能がプロセッサに内蔵されていることもあり、チップセットでのビデオサポートは主流ではなくなっている(サーバー用チップセットの中には内蔵しているものもある)。
また、昔のPCでは低速バスを担うサウスブリッジと高速バスを担うノースブリッジに分かれて、それぞれプロセッサメーカー製あるいはサードパーティー製のチップセットを用いたマザーボードも数多く作られていたが、現在では1つのチップセットにまとまっていることも多く、ほぼプロセッサメーカーが出荷するチップセットが使われている。
プロセッサとチップセットは専用のインタフェース(インテル:DMI、AMD:UMI)で接続される。2016年現在の主なチップセットを表1、表2に列挙する。
チップセット | 対応プロセッサ | PCIe/ストレージ/MAC/USB |
---|---|---|
Z170 | Skylake | 20レーンPCIe 3.0/6×SATA3.0/1×GbE/10×USB3.0+4×USB2.0 |
H170 | Skylake | 16レーンPCIe 3.0/6×SATA3.0/1×GbE/8×USB3.0+6×USB2.0 |
B150 | Skylake | 8レーンPCIe 3.0/6×SATA3.0/1×GbE/6×USB3.0+6×USB2.0 |
H110 | Skylake | 6レーンPCIe 2.0/4×SATA3.0/1×GbE/4×USB3.0+6×USB2.0 |
X99 | Haswell-E | 8レーンPCIe 2.0/10×SATA3.0/1×GbE/6×USB3.0+8×USB2.0 |
チップセット | 対応プロセッサ | PCIe/ストレージ/MAC/USB |
---|---|---|
990FX | FX | 42レーンPCIe 2.0/サウスブリッジによって異なる | 890FX | FX | 42レーンPCIe 2.0/サウスブリッジによって異なる |
A88X | APU | 32レーンPCIe 3.0/8xSATA3.0/-/4×USB3.0+10×USB2.0 |
A85X | APU | 32レーンPCIe 2.0/8×SATA3.0/1×GbE/4×USB3.0 |
SB850 (サウスブリッジ) |
FX | -/6×SATA3.0/1×GbE/14×USB2.0 |
見ての通り、チップセットによってサポートする周辺デバイスの数などが異なる。表でPCI Expressのレーン数が20レーン、42レーンなどと書かれているが、1スロットあたりのレーン数は最大16で、例えば990FXはx16のPCIeを2本とx4 PCIe 1本、x1 PCIe 2本、サウスブリッジとの接続用にx4 PCIeを用いて合計42レーンとなっている。これは仕様の上限でありマザーボードの種類によってはすべてが配線されているわけではないことに注意しておきたい。
それとは逆にチップセットで対応していないUSB 3.1については独自にLSIを載せて対応しているマザーボードもある。そういう意味では「チップセットは何か」についてはあまり細かく気にする必要はないだろう。
なお、表に列挙したチップセットについても書ききれない違い(例えばビデオカードを2枚挿して連携させることで性能向上するSLIもしくは「CrossFire」と呼ばれる機能の有無)があり、またAMDと比較してインテルは表に載せきれないほど様々なチップセットを用意している。サーバー向けとしても専用のものが用意されているので、詳細を確認したい場合はインテルであれば「Intel ARK」サイトあるいはアプリを、AMDであればWebサイトを参照いただきたい。
メモリスロットとメモリモジュール
皆さんの中には「メモリ」と聞けばSDカードやUSBメモリを連想する方もいるかもしれないが、ここでいうメモリはDRAM(Dynamic Random Access Memory))である。電源を切ると記憶していた内容を忘れてしまう不揮発性メモリを指す。
メモリは、マザーボード上のメモリスロット(DIMMソケットなどとも呼ばれる)に搭載する。組み込み用途のマザーボードにはメモリがオンボードで搭載されているものもあるが、一般的に入手が容易なマザーボードでは少なくとも1スロット、ATXマザーボードでは通常4スロット、ハイエンドおよびサーバー用マザーボードなどでは8スロット以上用意されているものもある(図2)。
搭載するメモリは、一般的にDIMMあるいはSO-DIMMと呼ばれている。DIMMはDual Inline Memory Moduleの略で、昔のPCではSIMM(DualでなくSingle)が使われていた。
一方のSO-DIMMのSOはSmall Outlineの略で、名前の通り通常のDIMMと比較して小型である。メモリ増設が可能なノートPCのメモリモジュールとして使われることがある(さらに小さいMicroDIMMというものもあるが、現在では主に組み込み用として使われるのみだ)。
しかし、超薄型の軽量ノートPCやタブレットPCではフットプリントや部品点数、重量などの関係でスロットが用意できず、メモリを増設できないケースが多い(スマートフォンのSoC(System-on-a-chip)のようにRAMを内蔵しているケースもある)。
DIMMとSO-DIMMの基本的な違いはサイズだが、メモリモジュール上に搭載できるメモリチップ数にも制約が出てくる。ATXマザーボードでは多くの製品でDIMMが採用されているが、Mini-ITXマザーボードではスペースの関係上、DIMMを採用していてもスロット数が少なく、SO-DIMMを搭載する製品もある。NUCなどの超小型PCでは物理的にDIMMが入らないためSO-DIMMが使われている(図3)。
メモリチップの規格いろいろ
完成品PCのカタログスペックを眺めていると、メモリの項目に容量以外の情報が書かれている>ことがあるが、これはメモリモジュールの仕様で、一部はメモリモジュールに搭載されているチップの仕様でもある。
DDR3あるいはDDR4などと記載されているのはメモリの規格で、どちらもSDRAM(Synchronous Dynamic RAM)の一種だ。大ざっぱな理解としてはDDR4がDDR3の2倍の転送速度を実現している点と、DDR3とDDR4は(それ以前のDDRやDDR2も)信号レベルで互換性がなく、またそれぞれのDIMMの物理的形状も微妙に異なるため、DDR3対応マザーボードにDDR4のDIMMを取り付けることはできない(逆も同様)ことを覚えておけば良い。
大まかには、2016年現在の現行品ではLGA 1151(Skylake)やLGA 2011-v3(Haswell-E、Haswell-EP、Broadwell-E)がDDR4で他はDDR3となる。
DDR4-2133のように後ろに付いた数字はメモリチップの規格を表しており、2133は最大動作周波数が2133MHzであることを意味する。また、その脇にPC4-17000などと書かれている場合もあるが、これはDIMMのモジュールとしての規格を表している。
PC4はDDR4であること、17000はモジュールのデータ転送速度(17GB/sec)を表す。パーツショップなどで価格表や製品一覧などを見ると、同じDDR4でもメーカー、容量の他にこの細かな規格が書かれていることが分かるだろう。
しかし、これはプロセッサのクロックのように単純に「速ければ速いほうがいい」といった自由な選択はできない点に注意が必要だ。マザーボードやプロセッサが対応しないメモリ規格の場合、物理的に載せることはできても動作が不安定、あるいはそもそもPCが起動すらしないということもある。
「OC(オーバークロック)に挑戦する」といった腕に覚えのある人は別として、慣れないうちは仕様に合ったメモリを選択するのが無難だろう。もちろん、マザーボードが対応するメモリ規格であれば「速ければ速いほうがいい」ことは言うまでもない(図4)。
NUCのような超小型PCの場合は前述のとおりSO-DIMMが使われるが、搭載可能メモリはDDR3Lと書かれていることがある。普通のDDR3との違いは動作電源電圧で、DDR3は1.5V、DDR3Lは1.35Vだ。「DDR3Lが必要」と書かれているマザーボードやベアボーンキットにDDR3のSO-DIMMを挿しても動かないので、注意してほしい。
また、サーバー用マザーボードの中にはECC付きのDIMMが必要な製品がある(と言うよりECCを要求するものが普通で、ECCなしのDIMMでも動くほうが珍しい)。
ECCはError-correcting codeの略で、エラーの訂正機能を意味する。一般的に入手が容易なDIMMあるいはSO-DIMMはパリティーチェックによりメモリのビット化けを検知できるが訂正はできない。
ECC付きのDIMMは訂正機能を持つことで信頼性を確保しているが、一般に高価なうえ、対応する(サーバー用)マザーボードと組み合わせて使う必要がある。24時間稼働で顧客データを扱うようなクリティカルな用途向けで、ソフトウェア開発用のPCで必要なものではない。
筆者は一度、うっかりECCなしのSO-DIMMを買ってしまい、載せる予定だったサーバー用Mini-ITXマザーボードも対応していなかったため、後日ECC付きのメモリを買い直したことがある(ECCなしのSO-DIMMは、後日超小型PC用として無事に使うことができた)。無駄な買い物にならないよう、皆さんも注意してほしい。
サーバー用のメモリにはECCの有無の他にunbuffered、registeredという違いがある。registerdなメモリはマザーボード上のコントローラとDIMM上のメモリチップをつなぐ制御線の途中に電気的な負荷を下げるためのレジスターと呼ばれるチップが挟み込まれている。unbufferedにはない。
これらの違いを明示する際は、前者をUDIMM、後者をRDIMMと表記するが、一般に売られているマザーボードの大半はUDIMMのみをサポートし、流通量も圧倒的に多い。またRDIMMは通常ECC付きで高価だが、店によってはUDIMMにunbufferedと表記せず、単にDIMMとして売られていることもある。うっかりRDIMMを買ってしまうことはないと思うが、単純に値段だけ見て「高いほうが良いメモリ」と思わないように気をつけよう。
なお、DIMMとSO-DIMMは物理的にサイズが違うため自明だが、DIMMでもDDR2、DDR3、DDR4では切り欠きの位置が異なり左右対称でないため、表裏逆に挿そうとした場合や物理的に違う規格のメモリは差し込めないようになっている(図5)。
メモリスロット数と最大搭載メモリ容量
マザーボードにあるDIMMあるいはSO-DIMMのスロット数は製品ごとにまちまちだ。ATXマザーボードでは4スロットの製品が多数だが、大抵はDIMMを1本あるいは2本だけ搭載しても動作する(中には偶数でないと動作しないものもある。正確にはマザーボードのマニュアルを参照してほしい)。
ここで、例えば16GBのメモリを搭載しようとするとき、4GBを4本、8GBを2本、16GBを1本という選択肢が考えられる。完成品PCでもBTO(Build to Order)でカスタマイズ可能な場合、DIMM1本当たりの容量と本数を選択できる。
DIMMを2本、あるいは4本単位で載せるとDual channelと呼ばれる2本同時(あるいはQuad channel:4本同時)にアクセスすることで理論上のアクセス速度が向上するため、実際にはさほど変わらなくても2本、4本挿すという人もいるだろう。また複数買っておくと、万一部品の故障が疑われる動作不良時にすぐに交換できるという利点もある。
一方、4スロットを全部一度に埋めると、その後の増設時により大容量のDIMMと差し替えて、もともと取り付けていたDIMMが浮いてしまうため、空きスロットを拡張用の予備として残しておくという考え方もある。DIMMの価格で決めてもいい。
1つ注意点があるとすれば、マザーボード毎に「どれだけのメモリを載せられるか」記載があり、通常はそれを超えるメモリを載せることはできない。具体的には「16GBが2本まで」と書かれているマザーボードに32GBを2本載せても、64GB全部が認識されない(場合がある)ということだ。購入に先立って、自分が載せたい容量を載せられるかよく確認しておこう。
どれだけメモリは必要か?
では、開発用PCにどれだけのメモリが必要かを考えてみると、実際にどのようなものを開発するのか、どのように開発するのかによって必要なメモリ容量は違ってくる。「全部まとめて最低これだけあれば良い」という具体的な数字1つにまとめられるものではない。
が、もしVirtualBoxやVMwareなどの仮想マシンを動かすのであれば、筆者の経験上少なくとも8GB以上はあったほうが良いという結論に至った(もちろん容量があればあるに越したことはない)。
なお、筆者のメイン開発マシンはECC付き8GB DIMM2枚を搭載し16GBで動作しているが、これは購入時の懐事情によるものと、Mini-ITXマザーボードに用意されているDIMMスロットが2本のみだったという理由によるものだ。仮想マシンをほぼ使わず、Linuxで小中規模のアプリケーション数個をビルド・テストするのみであれば十分にまかなえると思う。
OpenStackのような通常は複数ホストで動作する大規模アプリケーションを1台でいろいろやろうとすると、おそらくもっとメモリが必要だろう。あるいは開発(ビルド)とテストを別マシンで行うのであれば、開発マシンにはさほどメモリは必要ないというケースも考えられる。
まとめ
今回はチップセットとメモリについて、駆け足で紹介してきた。完成品PCを注文する場合は「メモリ容量をいくつにするか」くらいしか注目すべき点がないことも多いと思うが、容量不足を実感してきたときのメモリ増設の際に、本稿がいくらかでもお役に立てば幸いである。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 現代PCの基礎知識(6):ハードウェアの機能追加に欠かせない拡張スロット
- 現代PCの基礎知識(2):PCのシステム全体を支えるマザーボード
- 現代PCの基礎知識(5):ストレージがつながるホストインタフェース
- Shuttle、第10世代Coreプロセッサに対応した小型PCキット「DH470」「DH410」を発表
- 現代PCの基礎知識(13)デスクトップとの比較から考えるノートPCの選び方
- Xeon E7 v3のアーキテクチャ(前)
- Xeon初のSoC、マイクロサーバー向けプロセッサのアーキテクチャ(前)
- 現代PCの基礎知識(1):プロセッサにまつわるアレやコレ
- DDR2 SO-DIMMスロットに挿して利用できる「Raspberry Pi Compute Module 3」リリース
- 見せサバに使うパーツの調達と板金加工