64bit 版 MATLAB で定義できる配列の最大要素数は、なぜ 2^63-1 ではなく 2^48-1 なのですか?
19 views (last 30 days)
Show older comments
MathWorks Support Team
on 2 Aug 2013
Edited: MathWorks Support Team
on 21 Apr 2021
32bit 版 MATLAB で定義できる配列(行列)の最大要素数は、2^31-1 ですが、これと同様に考えると、64 bit 版 MATLAB で定義できる配列の最大要素数は、2^63-1 と予想されますが、実際は、なぜ 2^48-1 という数値に制限されているか、教えてください。
Accepted Answer
MathWorks Support Team
on 21 Apr 2021
Edited: MathWorks Support Team
on 21 Apr 2021
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 Comments
More Answers (0)
Categories
Find more on C MEX ファイル アプリケーション in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!