<<戻る

2004年10月19日

データモデルとは?

データモデルとは、オペレーティング環境でデータのサイズをどのようにするか決めることです。64bitマシンの業界標準はLP64と呼ばれます。Lはlong、Pはポインタを意味します。LP64の場合、long型とポインタが64bitになります。(Iは当然int型のことです。)

データ型 LP64 ILP64 LLP64 ILP32 LP32
char 8 8 8 8 8
short 16 16 16 16 16
_int32   32      
int 32 64 32 32 16
long 64 64 32 32 32
long long     64    
pointer 64 64 64 32 32

現在、一般家庭で利用されているパソコンは32bitCPUです。そのためデータモデルとしてILP32を利用しています。16bitCPUから32bitCPUに移行する際には、LP32からILP32に変化しました。このとき、C言語などはデータ型がマシン依存するため多くのプログラムで問題が発生しました。LP32とILP32のint型を確認してみてください。16bitから32bitに変化しています。この時代、将来はint型が64bitになるから、long型で実装しなさいという定説がありましたが、現在UNIXの業界標準としてLP64が採用されてしまいましたので、この定説は覆されました。Microsoft社はLLP64(=P64)を採用するようです。

 

参考資料

64-Bit Programming Models: Why LP64?

Getting Ready for 64-bit Windows