容量の壁

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。NCA01711 (会話 | 投稿記録) による 2016年2月9日 (火) 14:21個人設定で未設定ならUTC)時点の版 (36.2.128.206 による ID:58539154 の版を取り消し 壁のサイズは32GiBです)であり、現在の版とは大きく異なる場合があります。

容量の壁(ようりょうのかべ)とは、主にハードディスクドライブ半導体メモリなど、コンピュータ内部の記憶装置に存在する、規格性能上の限界を指した概念である。年問題に比して壁問題とも言う。

これは突破する新たな技術の登場を待つ意味でもと呼ばれるが、壁に突き当たるケースとしては規格策定時点で想定していなかった大容量になるまで規格が現役として存続している、大容量化が想定以上のスピードで進んで壁を突破する新たな技術の開発が追いつかない、規格上は想定内だが複合的な要因が重なるなどがあげられる。

ハードディスク(大容量ストレージ)

大容量ストレージとしてのハードディスク(近年[いつ?]Flash SSDも)に対する容量の壁は、インターフェイス (ATA) 周辺や、ファイルシステムに起因する様々なものがある[1]

場合によっては、BIOSファームウェアデバイスドライバの制限またはバグにより容量の壁が生じ、最新版にアップデートすると制限を解消できる。制限容量以上のHDDを接続したことで誤動作する場合は、HDD側の設定により認識容量(見かけの容量)を減らすことで、制限容量までは扱えるようになる。

ハードディスクの容量表記にはSI接頭辞2進接頭辞の問題(換算値の違い、誤差)があり、壁問題としては厳密な容量の表記がされない慣習である。

32MiBの壁

MS-DOS バージョン3では、FAT16のサポートが追加されたにも関わらず、セクター数を16ビットで管理していたため、32MiBを超えるパーティションを扱えない。これはFAT12の制限と同じである。また、単一のファイルサイズの制限も32MiBまでである。

なおMS-DOSのバージョン3.3D(NEC版)では、見かけ上のセクタサイズを1KiB若しくは2KiBとすることで最大128MiBまでのパーティションを管理することができた。

504MiB(約528MB)の壁

IDE HDDのパラメータの制約
HDD側 BIOS側 小さい方
シリンダ番号 (C) 0 - 65535 0 - 1023 0 - 1023
ヘッド番号 (H) 0 - 15 0 - 254 0 - 15
セクタ番号 (S) 1 - 255 1 - 63 1 - 63
最大容量 128GB 7.8GB 504MB

ATA規格では、平成5年(1993年)ごろ問題になったのが約528MB(504MiB、512×1024×16×63 = 528,482,304バイト)の壁だった。これはIDE HDDとPCのBIOSの組み合わせにより生じる問題である。

  • HDDにアクセスする最小単位であるセクタを指定する(アドレッシング)には、シリンダ、ヘッダ、セクタをそれぞれ指定する必要があるが、各要素の最大値がHDDとBIOSで異なっている。これが原因で、それぞれの数値をより小さい一方にあわせる必要があり、HDDはC=65,536、H=16、S=255に対し、BIOSはC=1,024、H=255、S=63であり、実際に扱えたのはC=1,024、H=16、S=63(1,032,192セクタ、LBAでは20bit相当)で、それが壁となった。HDD側及びBIOS側だけを見ればもっと大きな容量のアドレッシングが可能で、理論上の最大値はHDD側が128GiB、BIOS側が7.875GiBだった。

2GiB/4GiBの壁

ボリュームサイズの制限と、ファイルサイズの制限がある。

ボリュームサイズの制限

ファイルシステムFAT16を用いた場合のボリュームサイズの最大値は、2GiB(NT系では4GiB)までとなる。最大クラスター(アロケーションユニット)総数は16ビットで、その内最大65,524までが領域として使用でき、クラスタサイズは最大32KiB(Windows NT系では64KiB)まで選択できることから求められる。ボリュームサイズはFAT32NTFSexFATなど他のファイル・システムへの移行により解決された。このボリュームサイズについては近年のフラッシュメモリでも同様である。

なおファイルシステムとは無関係に、一部のBIOSでは仕様によりボリュームサイズ2GB/4GBまでの容量の壁があった。例としては、BIOSが扱えるシリンダの最大値が4,096であることから、512×4096×16×63 = 2,113,929,216バイト(約1.96GiB)までしか認識できないケースがよく見受けられた。

ファイルサイズの制限

単一のファイルサイズの制限は、FAT16ファイルシステムで2GiB、FAT32では4GiB(マイナス1)までである。

4.7GBの容量を持つDVDや、数百GB以上のハードディスク、8 - 16GB以上のUSBメモリが一般化し、動画を中心とした大容量のデータを扱うようになって、この問題が顕在化してきた。

8GBの壁

IDEの拡張であるEIDE、さらにSCSI HDDでも「8GBの壁」といわれ、平成10年(1998年)頃までに発売されたPCに同様の問題があった。これは、PCのBIOSやSCSIコントローラに起因するものであり、HDD側には壁はない。

EIDE HDDやSCSI HDDでは、7.875GiB(約8.456GB、512×1024×256×63 = 8,455,716,864バイト、16,515,072セクタ、LBAでは24bit相当)を超える容量が認識されないという問題があった。これは「8GBの壁」といわれ、1998年頃までに発売されたPCではこの問題があり、Pentium II搭載以前のものに多い。

ただし、これはPCのBIOSのパラメータに起因する問題であり、HDD側にはやはりそのような壁はない。この8GBの壁は、BIOSのAPIレベルでLBA(28ビット)を導入したINT 13H Extensionによって、BIOS側で認識できる最大容量は127GiB(約137GB)に引き上げられた。これは、INT 13H Extension自身がサポートするLBAは64bitで[2]、当時のATA HDD規格でサポートするLBAが28bitだったためである。

BIOS側がCHSでアクセスしてきた場合に、7.875GiBを超えるEIDE HDDは7.875GiBのジオメトリを返答するようになっており、Cylinder head sector=1023/255/63と返す(ただし、ごく一部のHDDでは返さないことがあった)。BIOSから正常にアクセスできるのは、HDDの先頭から7.875GiBまでの領域のみだが、これにより、LBA非対応のBIOSのマシンに接続しても、とりあえず認識され使用できるようにはなっている。その為、BIOSに依存せずにデバイスドライバが直接コントロールするOS(Windows 2000/XPやLinuxなど)では、OSが起動してデバイスドライバのコントロールに切り替わった後は7.875GiBを越える領域にも正常にアクセス可能である。デバイスドライバが直接コントロールするようになるまではBIOSを介してアクセスする為、当該するHDDにOSを格納する場合には、BIOSにロードさせる範囲を先頭から7.875GiBまでの領域に収める必要がある。OSとデバイスドライバさえ対応していれば、48bit LBAのHDDも同様にして使用可能である。

この他に、一部のSCSIコントローラ[3]にLBA値を格納するレジスタが24ビットのものがあり、224以上のセクタ番号を扱えない。そのため、このようなコントローラで扱えるHDDの最大容量は8GiB(約8.4GB)までであるが、それを超える容量のHDDを接続した場合の挙動はコントローラではなくソフトウェアの実装に依存する。

32GiBの壁

これはWindows NT系で、FAT32によりフォーマットできるボリュームサイズが32GiBまでに制限されていたことによる(すでにフォーマットされた、32GiBを超える容量のボリュームにはアクセスできる)。なお、FAT32自体は、512バイト/セクターのとき、2TiBまでサポートする。

AWARD BIOS Version 4.5xには、LBAの実装バグにより、BIOSからは26bit分のLBAしか扱えず、「"32GBの壁"」と呼ばれていた。約32GiB(65,536×16×63×512=33,822,867,456バイト)を超えるHDDを接続するとマシンが起動しなくなる。修正されたBIOSを入手して、BIOSをアップデートする必要がある。HDDによっては、ジャンパピンの設定により約32GiBのHDDとして認識させることが可能な製品も存在する。なお、ATAカード経由でHDDを接続すればこの問題は回避できる。

127GiB(約137GB)の壁

ATA HDDではLBA導入後、しばらくはLBAのアドレス長が28ビットだったが、ATA/ATAPI-6で48bit LBAに拡張された。Maxtor(当時)がBigDriveと名付け、理論上は128PiB(約144PB)までのアドレッシングが可能となった。

48bit LBAに未対応の機器およびOSで、127GiB(約137GB)の壁として問題が起きた。おおよそ2002年以前に発売されたPCでこの壁がある。

2TiB(約2.2TB)の壁

ATAインターフェイスとしては128ペビバイトの管理が可能になったが、ハードディスクのMBRパーティションでは、1パーティションで管理できる総セクター数は32ビット(232 = 4,294,967,296セクタ)となり、総容量は2TiB(512×232 = 2,199,023,255,552バイト)までとなる。[4]

また、Windows内部では、大容量ストレージへのコマンド発行はSCSI CDB (Command Descriptor Block) に抽象化されており、10バイトCDB (32bit LBA) を用いるWindowsでは、総容量2TiB超のドライブ(パーティションではない)を扱えない。

ドライブおよびパーティションの双方で2TiB超を扱うためには、GPT(GUIDパーティションテーブル)、および64ビットLBA(Windowsの場合16バイトCDB)の双方をサポートするOSが必要となる。GPTはLBAを64ビット(8バイト)で管理するため、64ビットLBA下での制限は512×264 = 8ZiBとなる。

Windows XP(x86版)以前では、GPTと64ビットLBAはサポートされない。また、GUIDパーティションからシステムのブートをさせる場合、Windows Vista SP1/Windows 7/Windows Server 2008 x64(64ビット版)以降のOSが必要である(EFIでないとブートできない)。平成23年(2011年)現在、x86版(32ビット版)のWindowsは、GUIDパーティションからの起動に対応していない。

これらはBIOS、OS依存であり、Mac OS XLinuxFreeBSDSolarisなど各種のOSが既に最新版ではGPTに対応済みである。

平成22年(2010年)11月、2TiBを超える容量の3.5インチHDDが発売された[5]

なお、2TiBを超える容量に関して、ファイルシステム、OSによる制限が掛かる、あるいはスパンボリュームなど特定の機能により制限解除される場合や、特定のBIOSやコントローラ、デバイスドライバー等との非互換性[6]により利用できない場合もある。互換性のないシステムでは、例として、3TBのHDDが746GiBと認識されることがある[7][8]

BigSector

2TiBの壁とは直接の関係は無いが、米国の業界団体IDEMA[2]が平成18年(2006年)に、HDDの物理ディスクセクタサイズを512バイトから4KiBに拡張する事を提唱している[9]。このWEBサイトは、"BigSector"[3]と名付けられている。HDDの物理セクターサイズを4KiBに拡張する事に関して、HDDメーカー側は、エラー訂正に必要な総ビット数は、セクターサイズを拡張すると減少する、など、512バイト単位の非効率性などを主張している。

Advanced Format Technology

実際には、Western Digital社が平成21年(2009年)10月にAFT ("Advanced Format Technology") と名付けて4KiB/物理セクターのモデルを発売したものが初となる。

この初期のモデルでは、多くのPC/AT機を祖とするシステムが、慣習的に63セクタ目から、最初のパーティションが開始されることから、実際の取り扱いセクタをひとつずらすジャンパピンが設けられ、同様にWindowsXPでのパフォーマンス低下を抑制するための、調整ツールが頒布された。

LBAにより参照される論理ブロック (Logical Block) と物理セクター(1セクター512バイト)は伝統的に同一視されてきた。即ち、「物理セクターサイズ=512バイト」はMS-DOS時代から変わっておらず、既存のHDDコントローラー、ホストバスアダプタデバイスドライバー、BIOSやOS、さらにパーティションを直接操作するソフトウェアなどがこの前提で設計されている為、物理セクターサイズの変更はあらゆるコンポーネントとの非互換性が問題になる。

そこで、LBAの論理ブロックサイズ(論理セクターサイズ)は従来の512バイトから変更せずに、物理セクターサイズだけを4KiBに拡張する方法が取られた。すなわち、OSやコントローラー側とは従来通りLBAによる512バイト単位でデータのやり取りを行い、物理メディアとのやり取りは物理セクターサイズの4KiB単位で行う。これがAFT ("Advanced Format Technology") である。

Advanced Format TechnologyAFT (en) は、HDD側の物理セクターサイズが4KiBであっても、OS、コントローラーからはセクターサイズ512バイトのHDDとしてアクセスできるようにエミュレーションを行う。

デバイスの物理セクターサイズよりも小さい単位での書き込みの場合、ドライブ側でリード・モディファイ・ライトが行われる。そのため、特にパーティションの開始位置が4KiB単位の物理セクター境界からずれた場合に大きな性能低下を引き起こす。この性能低下は(殆どの製品が4KiB物理セクターである)Flash SSDでも起こる。

ATAによりHDDの論理セクターサイズおよび物理セクターサイズを知ることができるため、OS側で、物理セクター境界からずれた書き込みをしないように調整する(リード・モディファイ・ライト、RMWの回避処理)ことができる。ただし、HDD側が正しく通知すること、および前述のような調整機能を備えたOSを利用することの双方が必要である。初期のAFTのHDDには正しく論理・物理サイズを通知せず、論理・物理セクターサイズ=512バイトだけを通知するものもあった。また、2010年11月現在、WindowsではAFTのRMW回避処理はVista SP2 / 7 RTM 以降でパッチでしか提供されていない。

平成24年(2012年)10月、マイクロソフトはセクターサイズが4096バイトのHDDについての分類および同社によるサポートに関して下記のように発表している[10]

  • 4K native
    • 物理・論理セクターサイズとも4096バイトのもの。
    • Windows 8/2012でサポートする。
  • Advanced Format (512E)
    • 物理セクターサイズ4096バイト、論理セクターサイズ512バイトのもの。
    • Windows Vista/7/2008/2008 R2/2012/8でサポートする。それ以外のOS(XPなど)については言及がない。
  • 512 native
    • AFT以前の従来のHDD。
    • 現時点(即ち平成24年(2012年)10月)までのサポートに変化はない。

なお、サポート対象のHDDとOSの組み合わせであっても、サービスパックや修正パッチの適用が必要な場合があるので注意が必要である。

フラッシュメモリ

デジタルカメラなどに使われるメモリーカードはこれまでFAT32に未対応で、規格上の最大容量は2GBとなっていた。しかし、デジタルカメラの高画素化や動画機能の充実によって、上限が2GBでは十分でなくなってきたことにより、さらなる大容量化が迫られていた。ファイルフォーマットの改良の結果、平成18年(2006年)に上限は32GiBに改善されたことになるが、平成20年(2008年)には上限である32GiB製品が登場した。

SDメモリーカード

従来型SDメモリーカードは上限が2GBであったが、平成18年(2006年)1月に最大32GBまで使用できるSDHCカードの仕様が策定された[11]。その後2008年1月にはSDHCの上限となる32GBモデルが発売されたことで、2009年1月に最大2TBまで使用できるSDXCカードの仕様が策定された[12][13]。フォーマットは下位互換性があることからexFATを採用。

SD系カードがメモリーカードの規格の中でデファクトスタンダードとなったため、SDHC/SDXCカードへの期待や需要が高まる一方、事実上、SDHCで容量の壁である32GBに達してしまった。平成18年(2006年)6月から平成20年(2008年)1月の約1年半余りという短期間でSDHCが容量の壁に達することは当初予想されていなかった。SDXCはムーアの法則を大きく上回るペースで媒体の容量増加が顕著な昨今でも、最低でも5年間は容量の壁に達することはないとしている。

その他のメモリーカード

その他のメモリーカードでは、ファイルサイズ以外の問題から容量の壁に達する現象が起きている。

代表例がメモリースティックスマートメディアで、何れもFAT16の上限より低い128MBで容量の壁に当たってしまった。これらの原因は電気的仕様の問題で、これを解消すべくメモリースティック陣営は新規格となるメモリースティック PROを平成15年(2003年)1月に発表し、スマートメディア陣営もスマートメディアとは直接的な互換性のないxDピクチャーカードを2002年9月に発表した。

その後メモリースティック PROはSDHCと同様にFAT32の限界である32GBに達したことから、平成21年(2009年)1月に「高容量向け拡張フォーマット(仮称)」として発表し、同年8月に「メモリースティックXC」として仕様を公開した。しかし、平成25年(2013年)9月現在、具体的な製品発表は行われていない。

メモリ(半導体)

CPUの作業領域である半導体メモリが、ハードウェアやOSの開発時点で想定されていなかった容量まで大容量化することも珍しいことではない。その結果、CPU・OSその他から定められるプログラム上から扱える容量の上限に達してしまうことで壁と認識される。

かつて世界の各メーカーごとに独自設計のパーソナルコンピュータが市販されていた時代や、その中で統一規格化されたMSXパソコンで、単一機種向けの、メモリを物理的に増設する装置が販売されたり、ソフトウェアによる仮想的な方法でメモリ容量の壁を破る方法が見出されたケースもある。

80年代のパソコンや任天堂ゲームボーイで採用されていたプロセッサであるZ80とその互換CPUは本来64KiBのメモリ空間でデータとプログラムを共存させる必要があった。しかし、シャープX1では前半32KiBを内蔵ROMと切り替えたり、通常VRAMとして使用されているメモリ空間(Z80から見てI/Oバス)をRAMディスクとして使うなど、CPU周りのメモリの本来の制限を越えて利用される例もあった。

PC/AT互換機 16ビットから32ビット

8086

Intel 8086は20ビットのアドレスバスを持ち、アドレス空間は1MiBだったが、その内640KiBがメインメモリ用(コンベンショナルメモリ)、残りがメモリマップドI/O用とされた。しかし、すぐに640KiBの限界に達し、壁と認識されるようになる。また、後に1MiBもアドレス空間の壁として認識されるようになる。

この壁に対する手法として、まずはI/O用の領域に拡張メモリを割り当てることが試みられ、初期に出てきた手法にはBMSハードウェアEMSがあった。

80286

その後、16MiBのアドレス空間を使用可能なプロテクトモードを持つ80286がPC/AT互換機のCPUとして採用されるが、プロテクトモードに対応したオペレーティングシステムはOS/2や当時まだ普及していなかったWindowsなどしか存在せず、圧倒的に普及していたMS-DOSではわずかにHMAとして64KiBのメモリが使用可能になるのみだった。

ここまでの16ビット時代には、64KiBという壁があった。これはx86で1つのセグメントないしセレクタで扱えるメモリの上限で、メインメモリ・各種拡張メモリで64KiBを超える連続データの扱いは困難を伴った。

80386以降

CPU側の対応は80386で大きく進歩した。具体的にいうと、32ビットプロテクトモードで32ビットのアドレス空間が使用可能となった。32ビット全て使えば4GiBまで対応できる。

MS-DOS上でも、プロテクトモードの1形態である仮想86モードによるEMB/UMB (XMS) あるいはEMSによって1MiBを超えるメモリがもたらされたが、いずれも1MiBの壁の中での苦肉の策だった。これら640KiB以外のメモリは、デバイスドライバFEPの辞書を置いたり、RAMディスクやディスクのキャッシュに使うなど補助的な役目に使われることが中心だった。

そんな中、DOSエクステンダによる32ビットDOSアプリケーションやWindows 3.xなど1MiBの壁を克服したソフトウェア環境が徐々に登場してくる。しかし、本格的な普及はWindows 95Windows NTなど32ビットOSの普及を待たねばならなかった。

PC/AT互換機 32ビットから64ビット

CPU側

80386以降のIA-32アーキテクチャ(x86、32ビット)が一般的となった以降、CPUの64ビットアーキテクチャ導入が徐々に進められ、x64アーキテクチャ(x86-64。AMD64およびIntel 64)が普及している。PCで主流の64ビット環境、x86-64への移行はx86の16ビットから32ビットへの移行に比べれば緩やかである。

次のようなx86の制限(壁)の抜本的な解決として、x86-64への移行が進みつつある。

物理メモリの容量
当初のPAEPSE36では最大64GiBまでしか対応できなかったが、x86-64拡張の際に改定され32ビットx86であってもPSE36では1TiBまで、PAEでは同CPUをx86-64として動かした際と同じ物理アドレスまで拡張された。x86-64では、現在、48ビット物理アドレス拡張により256TiBまで対応している。
仮想アドレス空間の容量
x86の32ビット環境では、32ビットフラットアドレスを採用し、1プロセスアプリケーション)が扱えるアドレス空間(メモリ量)の限界は32ビットで表せる4GiBであることが一般的である。x86-64アーキテクチャでは48ビットで、256TiBまでのメモリを扱うことが出来る。x86-64アーキテクチャでは将来的には52ビット、4PiBまで考慮している。なお、64ビット論理アドレスは16エクサバイト。論理アドレスはレジスタアドレッシングの空間であり、仮想空間とは異なる。

OS側

OS、アプリケーション側の対応としては、x86-64対応のWindows(いわゆる「64ビット版」)で、サポートアドレス空間が16TiBに拡大されている[14][15]。最近では、Adobe Photoshop CS4[16]など、サーバ用途以外でも64ビット対応が進みつつある。

Linuxの32ビット版 (x86) では、ディストリビューションやカーネル、設定(コンフィギュレーション)によって対応がまちまちであり、1GiB・4GiB・64GiBの壁がある。64ビット版(x86-64ないしAMD64)ではこのような問題はない。

現時点での壁

以下、32ビット環境下で、壁を突破しようとする試みについて記述する。

物理メモリの壁
PAE(物理アドレス拡張)は、CPUの使用可能な物理メモリの量を増やす機構である。PSE(ページサイズ拡張)およびPSE36も同様の側面を持ち、これらによって32ビットx86で対応できる物理メモリの量は当初の4GiBから64GiB以上に拡張された。しかしマーケティング上の理由やOS側の実装上の理由により64GiB以上を使えるOSはごく僅かしか無い。
2GiBの壁
32ビットWindowsアプリケーションでは、1プロセスごとの4GiBのアドレス空間うち、カーネルが2GiBを予約しており、アプリケーションが自由に使用可能なのは2GiBである。この壁に達してくるとマイクロソフトは主に2つの対処手段を打ち出した。1つはアドレスウィンドウ化拡張 (AWE)[17]である。4GBを超えるメモリを部分部分で切り替えながら読み書きする方法であり、MS-DOSの頃のEMSのようだという意見もある[18]。もう1つは、4-Gigabyte Tuning (4GT) の導入である。カーネルとアプリケーションのアドレス空間の配分を通常の2GiB-2GiBから、1GiB-3GiBに変更する手法である[14]。カーネルリソースが減少するため、サーバー用途(特にWebサーバー)には安定性の面から向かないという欠点がある。なお、64ビットWindows上では、4GT対応32ビットアプリケーションは4GiBほぼすべてアプリケーションが使用可能である[15]
4GiBの壁
ハードウェアのPAE対応とは無関係に、Windows XP/Vista/7の32ビット版では、カーネルのメモリマネージャーが4GiB以上の物理メモリを使用できない。すなわち、プロセスの仮想メモリ空間としても、4GiB以上の物理メモリにはアクセスしない。これはデバイスドライバの互換性を確保するための制限である[19]。なお、Windows Server(2000と2003の一部)では同じ32ビット版でも制限が緩和されているが、対応したデバイスドライバが必須である。いずれにせよ、1プロセスのアプリケーション空間は前述の「2GiBの壁」が残る。
3GiBの壁
x86向けのデバイスドライバーは、4GiB内の物理アドレス空間のうち最初の方にあるメモリマップドI/O (MMIO) 用に割り当てられた空間を使用する。そのため、3GiB以上の物理メモリを搭載する場合、MMIO空間と干渉する場合がある。これは、該当部分のアドレスを回避するようにメモリの物理アドレス自体を変換するMemory Hole Remappingなどと呼ばれる手法で対処されている。Memory Hole Remappingはハードウェア(チップセット周辺)側の対応が必要であり、未対応のハードウェアでは物理メモリ容量がその分減少などする。またMemory Hole Remapping未対応のOSでこれを有効にすると互換性の問題からOSが停止する場合がある。また、上記「4GiBの壁」に該当するOSでは、Memory Hole Remapping対応とは無関係に、搭載された4GiBの容量のうちMMIO空間分が、プロセス用には利用できなくなる。未対応であればMMIO空間のメモリが見えなくなる。対応していても、これらのOSでは4GiBの壁を超えた部分にリマップされたメモリをプロセスに利用できない[20][21]

4GiBや3GiBの壁を超えたメインメモリを、ソフトウェア方式のRAMディスクとして活用する手法がある。これは、64ビット環境に切り替えずに、既存のハードウェア及びOSの環境の上で、4GiB/3GiBの壁のため利用できないメモリを有効活用する方法として、注目を浴びている[要出典]

その他の機種

PC/AT互換機以外にも、メインメモリの壁やそれを越える方法などが各種あった。PC-9800シリーズのものはPC/AT互換機のものと似ているので割愛する。その他にMacintoshの「8MiBの壁」やX68030の「12MiBの壁」などもあった。

Macintosh

Macintoshでは、主にIIシリーズ(SE/30含む、IIvi・IIvx除く)でこの壁が顕著だった。IIシリーズでは、多くの機種でメモリを32MiBまで(動作保証外で128MiBまで)搭載できたが、System 6.0.xまでで使用できるのは8MiBまでであった。これは、アドレッシングモードを24ビットしかサポートしないOSの問題であるが、一部機種ではSystem 7以降でも32ビットモードへの切り替えができないものがあった。これは機種搭載のROMの問題である。II・IIx・IIcxとSE/30で問題が起こり、それ以降のIIci・IIfx・IIsi(IIvi・IIvx含む)ではROMの内容が32ビットクリーンなためROMに起因する問題は起きない。なお除外したIIvi・IIvxではSystem 7.1以降でしか起動できないため、この壁はない。

その他の機種では、各機種の仕様によるものである。Portable・PowerBook 100では9MiBまで、LC・LCII・ClassicIIでは10MiBまで搭載でき、同容量がSystem 6.0.xから認識できる。

X68030

X68030では、メモリ・I/OマップをX68000と合わせるため、X68000と同様にI/OポートやVRAMを12MiB - 16MiBの範囲に配置した。そのため、メモリ空間が12MiBまでと16MiB以上で分断されてしまった(前述のMacは24ビットモードと32ビットモードを切り替えることによりメモリ・I/Oマップが変化する)。

今後懸念される容量の壁

脚注

  1. ^ [1] IDE ディスク容量の壁について
  2. ^ BIOS Enhanced Disk Drive Services (EDD) (PDF)
  3. ^ 富士通MB89352など
  4. ^ HDD側には2TiBの壁は存在せず、この壁は主にOS等に起因している。
  5. ^ http://pc.watch.impress.co.jp/docs/column/hirasawa/20101115_406951.html
  6. ^ http://support.microsoft.com/kb/981627/en-us
  7. ^ 3TBのHDDの容量例は3,000,592,982,016.000バイトで、これから2TiB(2,199,023,255,552バイト)をマイナスすると746.520GiB(801,569,726,464バイト)になる。このようなシステムでは、内部処理において、LBAが32ビット (2TiB) でオーバーフローを起こしている。
  8. ^ PC等ではアップデート等により対応できる場合があるが、ハードディスク録画機などの組み込み機器ではメーカーのサポート・アップデートにだけ依存する。
  9. ^ http://itpro.nikkeibp.co.jp/article/USNEWS/20060324/233190/
  10. ^ http://support.microsoft.com/kb/2510009/en-us
  11. ^ 4GB以上の容量を実現するSDカード上位規格「SDHC」”. Impress PC Watch (2006年1月9日). 2011年7月20日閲覧。
  12. ^ 笠原一輝 (2009年1月13日). “2TBの大容量と300MB/secの高速を実現するSDXC”. 2009 International CESレポート【SDXC編】. Impress PC Watch. 2009年1月24日閲覧。
  13. ^ SD Association (2009年1月7日). “SDXC SIGNALS NEW GENERATION OF REMOVABLE MEMORY WITH UP TO 2 TERABYTES OF STORAGE” (PDF) (英語). 出版社. 2009年1月24日閲覧。
  14. ^ a b メモリ サポートと Windows オペレーティング システム”. Windows Hardware Developer Central. マイクロソフト (2005年2月9日). 2009年1月24日閲覧。
  15. ^ a b Memory Limits for Windows Releases” (英語). MSDNライブラリ. マイクロソフト (2009年8月27日). 2009年9月2日閲覧。
  16. ^ Shankland, Stephen; 編集部、ラテックス・インターナショナル (2008年4月3日). “アドビ、次期「Photoshop」を64ビット化--ただしWindows限定”. CNET Japan. 2009年3月22日閲覧。
  17. ^ http://msdn.microsoft.com/en-us/library/aa366527.aspx Address Windowing Extensions
  18. ^ デジタルアドバンテージ (1999年10月26日). “11. Windows 2000 Serverの概要 (4) アプリケーションサービスとAdvanced Server”. 特集: Windows 2000とは何か?. @IT. 2009年1月24日閲覧。
  19. ^ Windows Vista または Windows XP Service Pack 2 で [システムのプロパティ ダイアログ ボックスおよびシステム情報ツールで表示される RAM のサイズが予想より小さい]”. サポート技術情報. マイクロソフト (2008年4月2日). 2008年3月26日閲覧。
  20. ^ 4 GB の RAM が搭載されている場合、Windows Vista の システム情報 ダイアログ ボックスで報告されるシステム メモリが予想より小さい”. サポート技術情報. マイクロソフト (2008年6月13日). 2008年2月13日閲覧。
  21. ^ Windows Vista SP1 では、システムに 4 GB のメモリが搭載されている場合、システム メモリ (RAM) が 4 GB と報告される”. サポート技術情報. マイクロソフト (2009年3月22日). 2009年2月13日閲覧。

関連項目