マイクロプロセッサはいくつかのコンポーネントで構成されており、それぞれが同じ/異なる「サイズ」を持っていることを読みました。しかし、私を本当に混乱させるのは、マイクロプロセッサの指定されたサイズを16ビット、32ビット、または64ビットとして決定するものです...
それは...ですか:
- ALUの容量は?
- データバスのサイズ?
- アドレスバスのサイズは?
- 上記の「最小公分母」?
- または私が今まで知らなかった他のいくつかの要因?
マイクロプロセッサはいくつかのコンポーネントで構成されており、それぞれが同じ/異なる「サイズ」を持っていることを読みました。しかし、私を本当に混乱させるのは、マイクロプロセッサの指定されたサイズを16ビット、32ビット、または64ビットとして決定するものです...
それは...ですか:
一般に、プロセッサのビットサイズは、その汎用レジスタのサイズです。これは多くの場合、メモリバスと場合によってはアドレスバスのサイズに対応しますが、必ずしもそうとは限りません。
たとえば、Intelは386SX(http://en.wikipedia.org/wiki/Intel_80386#The_i386SX_variant)と呼ばれる386チップのバージョンを販売しました。これは、内部的に32ビットレジスタを備えた386でしたが、16ビットデータバスしかありません。 。ほとんどの人は、チップが16ビットプロセッサではなく32ビットプロセッサであると考えていると思います。
私は行くと思います。従来、「サイズ」とはレジスタセットの幅(ビット数)を意味すると思います。「私の」最初のコンピューターでは、DEC PDP-8 / Eの単一レジスター(アキュムレーター)は12ビット幅で12ビットコンピューターでしたが、PDP-11ではレジスターは16ビット幅で16ビット幅でした。 -ビットコンピュータ。IBM 370とVAXには32ビットレジスタがあり、32ビットコンピュータでした。
80386以降、物事は困難になりました。動作モードに応じて、リアルモード8086、プロテクトモード(PM)80286、またはPM 80386として表示される場合があります。AMD64またはx86-64を使用する64ビットプロセッサでは、上記のすべてと64ビットがあります。午後。それで、彼らは何ですか?それは、その上で実行されているOSの基本的な動作モードに依存するはずです。Windows NT 2000、Windows XP-32、Vista-32 7-32は、プロセッサを32ビットにします。「64」が含まれるOSは、プロセッサを64ビットにします。
バスなどについて。x86プロセッサのアドレス+データには2つの物理バスがあり、メモリ+ i/oには2つの論理バスがあります。プロセッサの特別なピンは、操作がメモリかI / Oか、読み取りか書き込みかなどを決定します。8086/8088では、データバスとアドレスバスは同じピンA0-A15を共有し、D0-D15 / A0-A7とD0-D7を共有し、ビットA16-A19/A8-A19は厳密にアドレス指定されていました。80286では、それらは別々でしたが、80186/80188についてはよくわかりません。80286には、24本のアドレスと16本のデータラインがありました。80386と80486には、アドレスとデータ用にそれぞれ32個ありました。80386SXの外部構成は80286と同じでした。
この後、バスは複雑になります。プロセッサは内部で非常に高速に実行されるため、キャッシュをほぼ常に待機しており、キャッシュは多かれ少なかれ常に外部RAMを待機しています。データに対するキャッシュの飽くなき欲求を満たすために、外部メモリは、32ビットプロセッサで32アドレスラインで64データラインのPentiumおよびPentiumMMXから始まる64ビット幅のチャンクで配信を開始しました。
後のプロセッサでは、アドレスラインの数が36に増え、アドレス可能な外部メモリの合計が64GBになりました。プロセッサは内部で32ビットのままでした。
マルチコアプロセッサでは、データへの渇望がさらに顕著になるため、プロセッサにデータを詰め込むのを容易にするために、アドレスバスとデータバスのセットがいくつかある場合があります。デスクトッププロセッサには2つまたは3つ、サーバープロセッサには3つから4つあります。よくわかりませんが、128ビット幅のデータバスに切り替えたものもあると思います。
最新の64ビットプロセッサの場合、64のアドレスラインを使用することは現実的ではありません。これは、現在では不可能な最大160億ギガバイトのメモリを使用できるためです。一部のマザーボードは128GBを許可します。これは、プロセッサに少なくとも37のアドレスラインが必要であることを意味します。
ご覧のとおり、アドレスバスとデータバスは、プロセッササイズを決定するために実際には使用できなくなりました。彼らは実際には過去25(80386モード)年間はそうではありませんでした。
Cでは、int型はレジスタ幅と同等であると想定されています。AMD64では、64ビットintの必要性がそれほど高くないためではありません。ほとんどの場合、32ビットintはうまく機能します。ただし、AMD64上のCのポインターの幅は64ビットです。
通常、これはCPUがアドレス指定できるメモリ(2 ^ n)バイトの量を指します。通常はデータバスと同じですが、ハードウェアが複数のアクセスを行ってその量を取得する場合があるため、100%保証されるわけではありません。CPUレジスタのサイズに対応する場合もありますが、異なる場合もあります。