64bit 版 MATLAB で定義できる配列の最大要素数は、なぜ 2^63-1 ではなく 2^48-1 なのですか?

17 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 8 月 2 日
編集済み: MathWorks Support Team 2021 年 4 月 21 日
32bit 版 MATLAB で定義できる配列(行列)の最大要素数は、2^31-1 ですが、これと同様に考えると、64 bit 版 MATLAB で定義できる配列の最大要素数は、2^63-1 と予想されますが、実際は、なぜ 2^48-1 という数値に制限されているか、教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2021 年 4 月 21 日
編集済み: MathWorks Support Team 2021 年 4 月 21 日
64bit CPU と 64bit OS におけるメモリ操作にはいくつかの制限があるためです。
現在、AMD や Intel の 64bit プロセッサでは、アクセスできるメモリのアドレスは 64 bit ではなく、48bit に制限されています。
CPU における制限の詳細については、各社 HP などをご参照ください。
ただし、理論的な要素数の制限は、2^48-1 個ですが、その他のシステムのメモリの制限などによって、実際にはその値まで使用することはできません(8bit データに対しては、300TB が必要となります)。例えば、OS による制約では、64bit Windows ユーザは、8TB(=2^43) までのメモリしか使用できません。
Windows X64における制限の詳細は下記のURLをご覧ください。
・(参考)マイクロソフト サポート オンライン

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeC MEX ファイル アプリケーション についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!