Quarter/L (3) 32 bit CPU , RISC vs CISC

Quarter/LにはCD-ROM, Networkに加えて3番目の特徴として、当時、Intelから出荷されはじめていた32bit CPU (80386SX)が全モデル採用された。これにより外部のメモリー切り替え機構(EMS)をつかわずに1M byte 以上のメモリーを使うことができた。(仮想EMS)  ただし、当時の主力OSであった MS-DOSそのものは32bit モードそのものには対応していなかったので、仮想16bit モードでしか動作せず、32bit CPUとしての能力を完全には利用できなかった。

 

この図にあるように、MS-DOSが直接扱えるメモリー空間は、640KByte という最初のIBM-PCのハードウェア構成上設定された限界と、1MByte という 16bit CPUが直接アクセスできるメモリー空間の限界に制約されていた。 32bit CPUでハードウェアは1Mbyte 以上のメモリーを搭載できるようになったが、MS-DOSでその容量を利用するためには、EMM386や HIMEM.SYS などの追加モジュールで1Mbyteより上位にあるメモリーを1Mbyte 以下のアドレスに動的に割り当てて使用する、という複雑な処理が必要であった。

その後、Windows 3.1 (1993), Windows 95(1995)などで、32bitモードをOSやアプリケーションで利用できるようになっていくが、OSの根幹の部分にDOSを抱えていたので、様々な制限があった。この状態はずっと後に Winodws 2000 (2000), Windows XP(2001)などのWindows NT(1994)をベースにした32 bit native OSが出るまで継続した。

 

一方、この頃 80386で提供された、Intelの32bit 命令セット (IA-32)はその後ほぼ30年にわたり、様々な追加、改良(64bit 拡張、128bit ベクトル命令セット追加)が、されていまだに現役である。64bit拡張されたIA-32は現在のIntel Core processorの基本アーキテクチャとして全世界のWinodws PCおよびMacintoshの中で使われている。

IA-32 Registers

現在のIntel Core CPUのレジスタマップ http://slideplayer.com/slide/4929795/ より



この図は最新のCPUのレジスタ構成であるが、中央上部に AH/ALという二つの8bitレジスタがある。これは8bit CPUのIntel 8080の構成から引き継いだものである。最初の16bit CPU 8086では、これを踏襲して一つの16bit レジスタを二つの8bitレジスタとしても使うことができた。80386で8086のレジスタは32bit modeでは32bit に拡張されて動作するようになった。さらに、その後64bit,128bitまで拡張されて現在に至るが基本的な互換性は8086, 80386から維持されていて、これを現在では IA-32 アーキテクチャと呼んでいる。

なぜ IA-32という名称があるかといえば、IA-64というのが一応存在するからである。 IA-64は1990年代後半にIntelとHPが共同開発した80386とは互換性のない、2001年にItanium として発売された64bit CPUアーキテクチャーの名称である。1990年代後半はRISC CPU という少数の単純な構成の命令セットをもつCPUのほうが Intel 80386のように複雑な命令セットを持つ CISC CPUより性能が良い、という議論がされた時期であった。それに対抗すべく Intelは HPのRISC CPU (PRISM)の技術を利用した高性能CISC CPUを開発しようとItaniumを開発した。結果として、開発は大きく遅延し、IA-32との直接互換性の欠如(エミュレーションは可能)により市場には受け入れられなかった。


一方、IA-32はその後、命令を内部でRISC的なマイクロ命令に分解して多段パイプラインで高速実行するなどの手段により性能向上を図り、現在ではPCやサーバーに関しては CISC対RISCという軸で性能が議論されることはほとんどない。

当時 RISC派の有力メーカーはIBM (PowerPC), Sun (SPARC), MIPS (MIPS)などであった。Power PCはその後、MotorolaとAppleとの共同開発でMacのCPUとなった。MIPSは PlayStation などのゲーム機のCPUに使われ、SunのSPARC Workstation は Unixの世界の標準機であった。しかし、その後、これらの当時 Intelに対抗していた RISC陣営はほぼ挫折し、現在は Windows PC, Mac, ほとんどのサーバーは IntelのIA-32アーキテクチャーのCPUで動作している。

一方、当時はおもちゃのような性能の低いRISC CPUとみなされていたARMプロセッサはApple Newtonに採用されるなどして、徐々に低消費電力の用途の浸透していき、現在では、ほぼすべてのスマートホンのCPUはARM Coreのライセンスを受けた各社のチップである。また多くのデジタル家電、周辺機器のCPUとして圧倒的なシェアをもっている。また、最近では、低消費電力を利用してサーバーにも一部採用されている。 結果として1990年前後に開発されたIA-32とARM CPUが現代のほぼすべてのIT機器を動作させていることは興味深い。

 

Quarter/Lが採用した、最初の80386はClock 12MHz であり、現在最新のIntel Core i7はClock 4.2GHzのCPU Coreを4個搭載している。単純にクロック数とCPUの数の比率で計算すると1400倍高速になっている。半導体プロセスとしては 80386は1.5μmプロセス、27万ゲートで、Core i7 (Skylake)は14nm (0.014μm)プロセス、17.5億ゲートである。つまり素子のサイズは約10,000分の1になり、素子数は約10,000倍になっている。このような桁違いの性能のCPUが同一の命令セットで動作しているのである。これは現時点のIT業界最大の「レガシー」ではないだろうか。実際には当初 Wired Logicで実行されていた命令は、現在はMicro命令と多段Pipelineという全く異なるアーキテクチャーで動作している。

S_Intel-NG80386SX-25 (SAMPLE)

Intel 80386SX 初代Quarter/Lが採用した内部32bit 外部16bitのCPU http://www.cpu-world.com/CPUs/80386/ より

 

広告

Quarter/L (3) 32 bit CPU , RISC vs CISC」への1件のフィードバック

  1. ピンバック: NEWS(3) Motorola と Sun | Good Old Bits

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中