The Institute of Electronics, Information and Communication Engineers


マイクロプロセッサの25年

電子情報通信学会誌Vol.82 No.10 pp.997-1017

嶋 正利

嶋 正利 正員 (株)トプス
E-mail:shima80z@green.ocn.ne.jp

25-Year History of Microprocessor.By Masatoshi SHIMA, Nonmember (TOPS Corporation, Tsukuba-shi, 305-0045 Japan).

ABSTRACT

世界初のマイクロプロセッサ 4004 は電卓・オフィス機器用 LSI を開発する過程で誕生した.マイクロプロセッサは,知的能力とコンピューティングパワーを提供するとともに,応用からの特異な要求を満たしつつコンピュータ技術を導入して驚異的な速度で発展した.マイクロプロセッサの歴史を通して,機能と性能と進化を決める要因の関係,マイクロプロセッサの誕生と発展,パソコンへの採用による大飛躍,RISC プロセッサの登場,コンピュータ技術の導入による高性能化,マイクロプロセッサがもたらした社会の変化などについて考察する.
キーワード:マイクロプロセッサ,歴史,CISC,RISC

1. まえがき

 新しい時代をもたらす「時代を切りひらく技術」は 10 年ごとに誕生してお り,システムを構築する技術は「時代を切りひらく技術」によって進化し続け ている.1951 年の接合型トランジスタの開発により「回路の時代」が登場し, 1961 年のシリコンプレーナ集積回路の開発により「論理の時代」へと発展した. 1971 年のマイクロプロセッサの開発(図1) により,集積回路で構築していたハードウェア論理回路網を駆逐しソフトウェ アで機能を実現する「プログラムの時代」をもたらした.1981 年の IBM パソ コンの登場による「OS と GUI の時代」を経て,1991 年の WWW の登場に よる「インターネットと言語の時代」へと進化した.
 マイクロプロセッサは段階的に発展してきた( 表2図3参照).第1期は 1971 年か らの6年間で,マイクロプロセッサの黎明期であり,世界初のマイクロプロセ ッサ 4004 に続いて,8 bit マイクロプロセッサ 8080(1974 年),6800(1974 年),Z 80(1976 年)などが次々と開発され,プロセッサとともにペリフェラ ルチップも開発されワンボードコンピュータが誕生した.使用可能なトランジ スタ数が極端に少なく,存在するコンピュータとは異なる新たなアーキテクチ ャを導入する必要があった.これらのプロセッサの成功により,マイクロプロ セッサはシステムユーザに認知されただけでなく,開発した半導体会社にも認 知された.第2期は 1977 年からの9年間で,コンピュータとしてのマイクロ プロセッサの発展時期であり,コンピュータ技術者がマイクロプロセッサの開 発に参加し,16 bit マイクロプロセッサ 8086(1978 年),Z 8000(1979 年), 68000(1979 年)が開発され,命令とシステムのアーキテクチャの戦いとなり, 80386(1985 年)の登場まで続いた.第3期は 1987 年からの9年間で, SPARC(1987 年)と 80486(1989 年)で始まったワークステーションとパ ソコン用プロセッサの性能競争であり,コンピュータで開発された性能向上技 術のプロセッサへの導入であった.性能競争は PentiumPro(1995 年)の登場 で更に激しくなった.第4期は 1995 年からのマルチメディア時代である. 1960 年代に登場したオブジェクト指向技術はマルチメディア時代のプロセッ サ開発において最適な考え方となった.オブジェクト指向技術の最も重要なこ とは,何に対して(Who),何を(What)するかが重要であって,どのように 実現する(How)かは自由であるということである.いろいろの命令アーキテ クチャやプロセッサアーキテクチャを自由に組み合わせてマルチメディア命令, マルチメディアプロセッサ,ゲーム用プロセッサが開発された.コンピュータ が 50 年かけて歩んだ道をマイクロプロセッサはわずか 25 年で駆け抜けてし まった.

2.マイクロプロセッサの誕生

世界初のマイクロプロセッサ 4004 は,ビジコンとインテルとの間で,電卓 や伝票発行機や銀行窓口端末機などのオフィス機器に使うストアードプログラ ム論理方式の 10 進コンピュータ用汎用 LSI を共同開発する過程で誕生した. ビジコンが提案した 10 進用コンピュータは,プログラムカウンタ,サブルー チン用アドレス待避レジスタ,1 本の8bit アドレスレジスタ,6 本の4bit 汎 用レジスタ,4 bit 直列型主演算器で構成されていた.1969 年8月に2進コン ピュータの基本アーキテクチャがインテルから提案された.図2の 16 本の4bit データレジスタまたは8 本の8bit アドレスレジスタとして使える汎用レジスタファイルと,プログラ ムカウンタと待避レジスタを一緒にしたスタックと,4 bit 並列型主演算器の三 つの箱であった.4004 とそのシステムの具体案が 12 月に完成し,1970 年4 月に設計を開始し,1971 年3月に開発に成功した.
 2 進コンピュータの採用に当たって,障害を取り除く六つの提案がなされた. 1 番目は,高性能化とメモリ使用量減少化のための 10 進補正命令とキーボー ド用コード変換命令であった.2 番目は,応用に使うメモリ使用量を半減させ るために電卓用言語であるマクロ命令をネイティブ命令に翻訳し実行するイン タプリタ機能と命令であった.パソコン用 BASIC 言語やインターネット用 JAVA 言語も,登場時にはインタプリタ方式を採用している.3 番目は,ハー ドウェア回路網を使って実時間で制御していた多くの入出力機器を,トラジス タ数の増加を伴う割込み制御機能を使わずに,低性能のプロセッサと少容量の メモリで,ソフトウェアで制御する方法であった.特定の入力端子の状態をセ ンスする条件分岐命令を用意し,インタプリタ機能にオペレーティングシステ ム的な機能を持たせ,外界の状態をセンスし,実時間で入出力機器を制御した. 4 番目は,LSI のみでのシステム構築であった(図2).4 bit のシステムバス を設け,時間分割して使い,最初の3クロックでアドレスを送出し,次の2ク ロックで命令を読み出し,最後の3クロックで命令を実行させた.5 番目はプ ロセッサに使用するトランジスタ数を減少させることであった.メモリアクセ ス命令をアドレス送出命令とデータ転送命令とに分割し,RAM と ROM へ命 令実行機能を分散させた.最後は,プログラマブルロジ ックアレー(PLA)で制御しやすい命令と命令形式の採用であった(表1)..アドレッシングには,データにはレジスタ間接アドレッシングを,分岐にはダイレクトアドレッシングを用意し,命令形式にはバイト可変長方式を採用した.これらにより,45 本の PLA と 185 ゲートの論理量で命令を解読し実行させることができた,総トランジスタ数は 2,300 であった.

3. 機能と性能と進化を決める要因の関係

  過去 28 年間で,マイクロプロセッサの命令アーキテクチャは4bit から 64 bit まで進化した.世界初のマイクロプロセッサ 4004 の性能は 750 kHz の動作周波数で 0.04 MIPS(Million Instruction Per Second)であった.パソ コンの高級機に使用されている 450 MHz 版 PentiumII(Xeon)と 4004 の 性能を単純に比較すると,マイクロプロセッサの性能向上は2万5千倍である. 平均して1世代で 4.5 倍,10 年で 100 倍の性能向上を達成した.マイクロプ ロセッサの性能向上に最も大きな貢献をしているのが半導体プロセスの発展で ある.平均すると3年から3年半で新世代の半導体プロセスが登場しており, それに歩調を合わせて新世代マイクロプロセッサが開発されている(図3). 4004 の誕生から 32 bit プロセッサ 80386(1985 年)までの 14 年間は, 命令アーキテクチャとプロセッサアーキテクチャの創造に優先度が置かれた. 命令アーキテクチャの開発とは,静的動作解析(プログラムサイズ)と動的動 作解析(性能)に基づき,最適化を図りつつ,命令,レジスタ構成,アドレッ シング,データ長,命令コードを決めることである.しかし,16 bit の時代ま では,チップ内のレジスタファイルと外部メモリの高価さが,命令アーキテク チャに大きな影響を与えた.1985 年までに開発されたいずれのプロセッサも, 命令方式には命令コードの高効率化のためバイトまたはワード可変長方式を採 用し,メモリアクセスと演算を同一命令に盛り込み,言語に適した命令やビジ ネス用命令などの複合化命令(Compound Instruction)を採用した,応用にお ける諸問題を複合化命令で解決したのが CISC(Complexed Instruction Set Computer)プロセッサであった.
  この時代までのメモリは遅く,メモリからの命令フェッチに長い時間を要し た.したがって,性能向上のためには,命令フェッチの回数を減らすことと, データのためのメモリへのアクセスを減少させることが必須であった.そのた めに,一つの命令で多くのことを行う複合化命令と多段アドレッシングとマル チプルレジスタを採用し,かつ,命令の実行をパイプライン処理的に次の命令 フェッチ時に行った.高速メモリが使えない時代には CISC プロセッサが選択 したアプローチは理にかなっている.
 マイクロプロセッサはフォン・ノイマン型計算機の宿命である逐次制御方式 を採用している.性能は,ある仕事の処理を実行したときの純然たるその仕事 のための処理時間で比較される.
処理時間=サイクルタイム×CPI×命令数
   開発の基本は右辺の三つの要因をいかに減らすかである.サイクルタイムの 減少はパイプライン技術と回路技術などを使い動作周波数の向上によりなされ る.命令の平均実行クロック数(CPI)の減少は,命令をよどみなく実行させる ことが重要であるので,一次キャッシュ,ランダム論理方式による命令実行制 御,パイプライン技術,複数の命令を並列処理するスーパスカラ技術,分岐予 測技術,命令やデータのプリフェッチ,データのメモリへの格納時のバッファ リングなどによって実現される.また,システムとしての性能は,プロセッサ とメモリ間のバスバンド幅に左右されるので,システムバス上の二次キャッシ ュ,パイプラインバス,バーストデータ転送,データバス幅などが重要となる. プログラムの命令ステップ数の減少は命令アーキテクチャとコンパイラの改良 や応用に特化した命令の追加によりなされる.
 広い意味でのアーキテクチャとは,「最適化を図りつつ,より多様な,より 大きな問題を,より高速に,より柔軟に,より使いやすく,より高い信頼度で 処理し,かつ安く製造することを可能にするコンピュータに関する構造・枠組 みや考え方・仕様」であるといえる.マイクロプロセッサの開発においては, 命令やプロセッサやシステムのアーキテクチャ,実現方法,動作周波数は,チ ップ面積,半導体プロセス,総トランジスタ数により大きな影響を受ける.し たがって,マイクロプロセッサの開発とは,応用分野の要求を満たしつつ,仕 様,半導体プロセス,論理方式,性能向上技術,回路方式,レイアウト方式, 消費電力,パッケージ,設計機器,開発期間,開発人数,開発費用との間での 最適化設計を行うことである(図4).いわば, 未完成の開発の連続であったともいえる.

4. 8080 の成功とプロセッサの発展

 キャラクタ操作に特化した第1世代8bit マイクロプロセッサ 8008 の命令 と性能を大改良し,アドレス空間を 64 KByte に拡大した第2世代のマイクロ プロセッサ 8080 は 1974 年に開発された.1960 年代後半に開発された DEC 社の傑作機であるミニコン PDP 11 では,8 本の汎用レジスタのすべて が,アキュムレータ,データレジスタ,アドレスレジスタとして使えた.しか し,8080 は,高効率命令コードが期待できるバイト可変長命令方式と,8008 で 導入したシングルアキュムレータ & マルチプルレジスタ方式を採用した.汎用 レジスタは,6 セットの8bit データレジスタまたは3セットの 16 bit データ レジスタやアドレスレジスタとして使えた.ただし,命令でアドレスレジスタ として直接に使えるのは1本だけで,他のレジスタをアドレスレジスタとして 使うときにはレジスタを交換する XCHG 命令を使う必要があった.4004 や 8008 では小容量のスタックそのものを内蔵したが,8080 では,サブルーチン や多重割込み時のネスティングレベルを無限大にするために,スタックを外部 メモリに設け,プロセッサにスタックのアドレスを指定するスタックポインタ を設けた.データメモリアクセス時のアドレッシングにはレジスタ間接を,分 岐時のアドレッシングにはダイレクトとレジスタ間接を採用し,アドレス計算 にも使える各種の 16 bit データ用演算命令を追加した.また,スタックをデー タ用にも使えるようにデータをスタックへ待避させる命令とスタックから復帰 させる命令を新設した.更に,メモリ間同士やメモリと入出力機器の間での高 速データ転送を実現するために,外部装置にシステムバスを開放するダイレク トメモリアクセス(DMA)機能を設け,命令も強化した(表2). 8080 は2 MHz の動作周波数と2相クロックを使用し,システムバスのメモリサイクルを 3クロックで構成した.
 8080 が完成し,1974 年の IEEE の ISSCC 学会で発表されるとものすご い反響があり,インテルもその反響を実感しマイクロプロセッサに本格的に取 り組み始めた.1973 年 10 月の第4次中東戦争から始まったオイルショック の影響はあったが,割込みコントローラ,タイマ,DMA コントローラ,シリ アル通信コントローラ,パラレル入出力ポートの大半の開発作業が 1975 年春 までに終了した.この早期の開発により 8080 ペリフェラルチップもデファク トスタンダードとなり,8088 が IBM パソコン ThePC に採用された要因の 一つとなった.
 8080 のアーキテクチャが現在の仕様に決まった背景の一つに,半導体メモリ の発展事情もあった.1972 年当時,各社とも4Kbit DRAM の開発に着手し たばかりで,マイクロプロセッサに使用できるメモリは1Kbit SRAM,2 Kbit PROM,1 KByte ROM などであった.RAM や PROM は非常に高価であっ たため,目標とした応用をキャッシュレジスタやプリンタなどの,ROM をプ ログラム用メモリに使うプログラム埋込み型応用(Embedded Application)と した.そのために,プログラムの主メモリ上での再配置性(リロケータビリテ ィ)は考慮されず,プログラムカウンタへの相対アドレッシングは採用してい ない.また,インテル系プロセッサは,DEC が提唱した,データを低いアドレ スからメモリへ配置するリトルエンディアンを採用した.一方,モトローラ系 プロセッサや RISC プロセッサは,IBM が提唱したビッグエンディアンを採 用した.しかし,最近は,モードで選択できるようになってきている.

5. 8 bit マイクロプロセッサの発展

 1974 年に開発された8bit マイクロプロセッサ 6800 は,2 アキュムレー タ & シングルレジスタ(アドレスレジスタとして使えるインデックスレジス タ)方式を採用した.8080 と異なり,bit や Byte のデータをテストする命令, ソフトウェア割込み命令,符号付き2進データのアリスメティックシフト命令, オーバフロー検出機能を用意し,アドレッシングにディスプレイスメント付き インデックスと相対アドレスを採用し,更に,特定のメモリ空間を入出力空間 として使うメモリマップド IO アドレッシングを導入した.内部レジスタの少 なさをカバーするために,8 bit値のダイレクトアドレッシングを設けて,最初 の 256 Byte の主メモリへアクセスした(表2) 6800 は1MHz の動作周波数 と2相クロックを使用し,システムバスのメモリサイクルを1クロックで実現 した.6800 系プロセッサはアップル社の初期のパソコンに使われた.
 8080 では4Kbit DRAM 用の高電圧 nMOS 半導体プロセスを使用したた めに電源に+12 V,+5 V,GND と−5 V が必要だった.当時は,半導体プロ セスや DRAM の開発技術者は大容量の信号線は高電圧を使って強力なトラン ジスタで駆動すべきだと主張し,一方,マイクロプロセッサ開発者は信号を高 電圧に上げること自体が罪悪だと主張した.Z 80 ではイオン注入技術を使って デプリーション負荷型低電圧 nMOS プロセスを使用した.高電圧動作のエン ハンスメント型 nMOS と比較して,速度・電力積は 15%,ゲート遅延時間は 20%,実装密度は 15% ほど向上することが期待できた.この新しい半導体プ ロセスを用いて,数種類の内部データバスを設ける代りに,大きな MOS スイ ッチにより一つだけの内部バスを多目的バスとして使う空間分割システムバス 方式(同時期に RCA 社の 1802-COSMAC プロセッサでも使用)を開発した. この方式により,アキュムレータとフラグを汎用レジスタファイル内に設置し, アドレスの送出,データバスからの命令の読込み,プログラムカウンタの更新, レジスタファイル内のアキュムレータとフラグの主演算回路(ALU)への送出, 演算結果をアキュムレータとフラグに格納することなどを,同一クロック内で, 並列して実行した.また,8 bit 構成の ALU を4bit 構成に変更し,強力な 命令や機能を追加した.
 Z 80 は,8080 を基本に,2 本のインデックスレジスタを新設し,ディスプ レイスメント付きインデックスアドレッシングと相対アドレッシングを追加し, 高速タスクスイッチのためにアキュムレータとフラグと汎用レジスタを2バン ク分用意し,豊富な 16 bit データ演算,ビット操作,アリスメティックシフト, 入出力デバイスとメモリ間やメモリとメモリ間のブロックデータ転送,特定の データを指定したメモリから見つけ出すメモリサーチなどの多くの命令を新設 した.ブロックデータ転送命令により,DMA 機能を使わずにフロッピーディ スクとメモリ間のデータ転送を行い,4 Kbit DRAM とフロッピーディスクを使 ったディスクオペレーティングシステム(DOS)時代に対処した(表2).ブロ ックデータ転送命令やレジスタを再定義するプリフィックス命令は 8086 に採 用された.Z 80 は初期のパソコンやゲームや高速プリンタなどに大量に使われ た.

6. 16 bit プロセッサから 32 bitプロセッサへ

より豊富な命令とより高性能とより大きなメモリ空間という応用からの要求 に対して,インテルの 8086(1978 年),ザイログの Z 8000(1979 年),モト ローラの 68000(1979 年)などの 16 bit マイクロプロセッサが開発された. マイクロプロセッサがいよいよ本格的にコンピュータらしくなる時代であった (表2).1973 年にゼロックスのパロアルト研究所で,初代 WYSWYG(What You See is What You Get)パソコンとなったマッキントッシュ誕生に大きな影 響を与えた Alto が開発された.しかし,1975 年当時は 16 Kbit DRAM が量 産体制に入ったばかりで,グラフィックス機器への応用は時期が早すぎ,8086 と Z 8000 は,メモリ空間の拡張にプログラムやデータを 64 KByte の大きさ で一つの論理的なブロックとして取り扱うセグメント方式を採用した(図5).8086 は,強力な Z 80 に対抗するため に,8080 とのソースプログラムでの互換性と,高効率なバイト可変長方式を採 用した.そのため,4 本の汎用レジスタと2本のインデックスレジスタしか搭 載できなく,使い方にも大きな制限が生じた.Z 8000 は 16 本の汎用レジスタ と 32 bit 演算命令を採用し,最後に登場した 68000 は 32 bit のリニアアド レス方式と 16 本のレジスタ(データ用に8本,アドレス用に8本)と 32 bit 演 算命令を採用した.アドレッシングを含む命令セットは,グラフィックス関連 を除いて,この時点で必要なものがほぼ出揃った.8086 は命令の実現にマイク ロプログラム方式を導入し命令のプリフェッチ機能を取り入れ,マイクロコー ドを知的財産権として保護した.68000 は,マイクロプログラムに加えて,一 段低いレベルのナノプログラム方式を採用した.Z 80 の対抗機として開発した 8bit データバス版 8088 が 1981 年に IBM のパソコン ThePC に採用さ れ,ThePC は 1982 年の「タイム」誌新年号の表紙を飾った.創刊号から 55 年目にして,初めて,新年号の表紙を人物ではなく,パソコンが飾った.表紙 のタイトルは「今年話題の機械」と銘打たれていた.
 最初の 32 bit マイクロプロセッサは,PASCAL を模範にして標準言語を求 めていた米国国防省が開発したプログラミング言語 Ada に最適化された,イン テルの 432(1982 年)であった.432 で開発された回路図とレイアウトを比 較するツール,RTL(Register Transfer Level)シミュレータ,RTL と論理図 を比較する CAD ツールは 8086 の開発期間を大幅に短縮した.1985 年に, 32 bit マイクロプロセッサ 80386 が開発された.8086 との互換性を維持し, レジスタと命令を 32 bit に拡張し,64 KByte のセグメントサイズの枠を取り 除き,32 bit のリニアアドレスを取り入れた.次なる機能の集積は,小さな物 理メモリを使って大きなプログラムを実行させる仮想メモリを実現するページ ング機能(図5)などのメモリ管理機能,セグメントで規定している領域以外 へのアクセスを禁止する保護機能,マルチタスクに必須なタスク切換機能など のプロセッサレベルの機能であった(図4). また,ページング機能は長さが一 定しないメモリブロックを一定のメモリ単位で取り扱い空きスペースを少なく させることもできる.80386 のページサイズは4KByte である.ページング 機能が実行される度に,リニアアドレスを物理アドレスに変換する過程で,ペ ージテーブルのページテーブルエントリー(PTE)に格納してあるアドレスに アクセスすると相当の時間がかかる.そこで最近参照した変換情報を連想メモ リに格納しておけば同じページにアクセスするときにはその変換情報を呼び出 してページ内オフセット値を加算して物理アドレスを高速に生成できる.その バッファが TLB(Translator Lookaside Buffer)である.80386 では TLB の エントリーが 32 本あり,命令とデータで共用している.Pentium になると, より多くのタスクをサポートするために,命令用に 32 本,データ用に 64 本 用意し,更に,大きなデータ領域をサポートするために4MByte のページ用エ ントリーが8本用意された.x 86 プロセッサ系の命令アーキテクチャの進展は 80386 で終了した.80486 と Pentium は高速版 80386 である.次なる命令 の追加は 12 年後の 1997 年の PentiumMMX におけるマルチメディア命令 である.1985 年にアルダス社がマッキントッシュ向けに DTP(Desk Top Publishing)用アプリケーション「ページメーカー」を開発し電子出版が始ま った.いよいよパソコンとGUI(Graphical User Interface)の時代が始まった.

7. RISC プロセッサの登場

コンピュータは誕生と同時に高性能化が要求された.最初は,浮動小数点演算 やストリングデータの処理などの複雑な機能が命令に盛り込まれ,次に,コン パイラがコンパイルしやすいようにかつコンパイラが生成するオブジェクトプ ログラムが速く動くように命令セットのアーキテクチャが改善された.続いて, 中間言語用や高級言語用アーキテクチャの導入が検討されたが普遍性がないと 判断された.1970 年代に入ると DEC の VAX や CISC プロセッサのような 複合化命令体系を持ったプロセッサが出現した.それらの複合化命令やメモリ 保護などの複雑な機能をマイクロプログラム技術でファームウェア化すること が始まった.やがて,高級言語が普及し,パイプライン制御技術も発展し,コ ストパフォーマンスが非常に重要となった.
 RISC プロセッサの萌芽は 1964 年に開発された CDC 社の CDC 6600 に 見られた.1975 年に登場したクレイ社の CRAY-1 ではコンパイラによる最適 化は意識しなかったが,既にパイプライン処理を指向していた.1975 年に開発 をスタートした IBM の 32 bit プロセッサ 801 は本格的な RISC プロセッ サの第1号となった.RISC プロセッサは高性能化への一つの手段であり,そ の本来の概念は1サイクル当り1命令の割合で実行できる非常に高速なクロッ クサイクルのプロセッサを作り出すことであった.したがって,アーキテクチ ャに対して以下の基本的な要求があった.(1)命令は1サイクル(クロック)で 実行.(2) 32 個の 32 bit レジスタ.(3)ロードストアアーキテクチャ.主メモ リ操作はメモリからデータ転送を行うロード命令とメモリへのデータ転送を行 うストア命令のみ.(4)加算命令のような主メモリ操作以外の操作はすべてレジ スタに対してのみ適用.レジスタに対する命令には3オペランドを採用.(5)す べての命令の長さは 32 bit の1語とする.(6)パイプラインの実現性に適して いること.パイプラインの各ステージがそこを通過するどの命令に対してもほ ぼ同種の操作を行う.ある操作だけが膨大な論理を必要とすると,それが性能 向上へのボトルネックになる恐れがある.2 段のパイプライン制御を採用.(7) コンパイラに最適化された命令体系と命令の実現.コンパイラとオブジェクト コードに有効な命令のみを採用する.ただし,一般ユーザには命令アーキテク チャを開放しない.(8)遅延ロード,遅延ストア,遅延分岐の採用.(9)クロック サイクルの高速化.(10)キャッシュメモリの搭載.
 CISC プロセッサと同等の仕事を行うためには,RISC プロセッサはより多 くの命令を実行する必要がある.その高い命令帯域幅を満たすために高動作周 波数で動作する ECL 回路と命令キャッシュを採用した.すべての RISC プロ セッサはこの IBM-801 から出発したといっても過言ではない.ただ,IBM の 失敗は自分の成功に価値を見いださなかったことである.IBM が RISC プロ セッサ界に,ROMP プロセッサ(1986 年)と POWER アーキテクチャ RS/6000(1990 年)を経て,PowerPC 601 で戻ってきたのは 10 数年後の 1993 年であった.歴史に「もし」は許されないが,過去 28 年間のマイクロ プロセッサの歴史においては最も価値ある「もし」である.
 IBM-801 の登場で刺激された RISC プロセッサの研究はカリフォルニア州 立大学 UC バークレーとシリコンバレーにあるスタンフォード大学に引き継 がれた.1980 年に,UC バークレーは,各プロシージャ間でのウィンドウを部 分的にオーバラップさせることにより各プロシージャ間のパラメータを渡す手 段と結果を時間のかかるメモリを介さずに受け取る手段であるレジスタウィン ドウの概念を導入した RISC プロセッサを開発した.そのアーキテクチャは後 にサンの SPARC(Scalable Processor ARChitecture)アーキテクチャとして 実用化された.一方,スタンフォード大学は,パイプライン制御とコンパイラ 技術にその特徴を際立たさせた MIPS(Microprocessor without Interlocked Pipeline Stage)アーキテクチャを開発した.それは MIPS 社の R 2000 とし て 1986 年に実用化された.16 MHz で 14 MIPS という 80386 の2倍の性 能であった.R 2000 が1クロック/1 命令方式を採用したのに対し,80386 は 命令と機能の追加に多くのトランジスタを使い2クロック/1 命令方式を採用 した.これが RISC プロセッサ対 CISC プロセッサ論争を起した原因であっ た.R 2000 では,遅延分岐や遅延ロードのスロットを設け,分岐命令やロード 命令後のスロットに必ず実行する命令を置いたり,ロード命令の直後ではその データを使用する命令を置かないといった命令のスケジューリングを,コンパ イラで行わせた.すなわち,高性能化への諸問題をパイプライン制御技術とコ ンパイラ技術に最適化された命令アーキテクチャで解決したのが RISC プロ セッサであった.遅延ロードはスーパスカラ技術を導入する際の足かせになる ので最近の高性能プロセッサでは使われなくなった.
 PowerPC や SPARC にはアドレッシングとしてディスプレイスメント付き インデックスやベースインデックスがあり,更に PowerPC ではその実効アド レスを指定したレジスタに格納するモードもある.MIPS や Alpha にはオフ セット付きベースしかない.また,RISC プロセッサに共通しているのは,サ ブルーチン用のスタックがないので,サブルーチン時に更新したプログラムカ ウンタを指定したレジスタに格納し,ソフトウェアでスタックを作り待避させ 復帰の前にスタックからレジスタに読み戻し,リターン時にそのレジスタの内 容をプログラムカウンタに格納している.この方式は高性能化において問題を 生じさせた.最近の RISC プロセッサには復帰アドレスを格納するスタックが 最大8セット用意されるようになった.28 年前のプロセッサの内蔵スタックを 思い出す.

8. ワークステーションの登場で性能競争が激化

 ワークステーションの特徴は,価値ある応用ソフトウェアを高速に動かす仕 組みをユーザに提供することであった.サンは,UNIX オペレーティングシス テム,それに添付されている C コンパイラ,68000 プロセッサ,LAN,GUI, VME システムバスなどの既存標準部品を採用し低価格化を図った.更に,IBM がパソコンビジネスに導入した周辺ボード会社やソフトウェア会社に特許使用 料を請求しないオープンアーキテクチャ構想にネットワークを追加したオープ ンシステムズネットワーク構想の導入により成功した.1989年 には 25 MHz で 30 MIPS という 80486(1989 年)の2倍の性能を持った SPARC-CY を 開発した.ここから,パソコン用 CISC プロセッサとワークステーション用 RISC プロセッサの性能と機能の競争が始まった.
 RISC プロセッサは,ワークステーションで成功すると,コンピュータで開 発された性能向上技術を導入すると同時に,RISC プロセッサ本来の縮小命令 という足かせを外し,科学技術計算向け命令(浮動小数点演算命令),ビジネス 向け命令,マルチメディア向け命令を次々と追加していった.MIPS(MIPS) と HP(PA-RISC)は,1991 年から 1992 年にかけて,パイプラインの段数 を増やしたスーパパイプライン技術を導入してサイクルタイムを減少させ動作 周波数を4倍にした.ワークステーション市場で成功しなかった MIPS 系プロ セッサは,動作周波数の向上だけになってしまったが,ゲーム用プロセッサや 制御用コントローラで大飛躍した.一方,モトローラ(88110),DEC(Alpha-21 x 64),サン(SPARC),インテル(Pentium),IBM(PowerPC),HP(PA) は,1991 年から 1994 年にかけて,スーパパイプライン技術を使って動作周 波数を2倍ほどに上げ,命令を並列処理するスーパスカラ技術を導入し命令実 行クロック数を半減させ,合計で4倍以上の性能向上を達成した.ただし,並 列実行できる命令は簡単または制限のある組合せであった.続いて,1994 年から,第2世代スーパスカラプロセッサの 時代が始まり,並列実行できる命令数と実行ユニット数を増やし,高度な性能 向上技術を取り入れ,更に,マルチメディア命令を追加した(表3).1996 年からは動作周波数の競走になっ た.
 RISC プロセッサのアプローチは制御用コントローラにも採用され,ARM 社から 1991 年に汎用レジスタを 16 本搭載した ARM6が開発され,そのプ ロセッサは世界中の半導体メーカーにライセンスされ市民権を得た.ところが, 32 bit 固定長命令のために命令コードの効率が悪かった.1993 年に入ると, 日立から,汎用レジスタを 16 本にし2オペランド方式を採用し,高効率が期 待できる 16 bit 固定長命令の 32 bit RISC コントローラが米国で発表され大 きな反響があった.その後に続くコントローラ用 32 bit RISC プロセッサでは 命令コード効率を考えてワード可変長命令形式を採用している.したがって, RISC プロセッサとはロードストアアーキテクチャと再定義すべきである.命 令コード縮小のために,命令の圧縮機能も制御用 PowerPC に搭載されるよう になった.

9. キャッシュによる高性能化

 システムの高性能化とは命令とデータをプロセッサによどみなく供給しプロ セッサを止めないことである.プロセッサの動作周波数に合わせるために外部 メモリの内容をキャッシングしてプロセッサの近くの高速メモリ(Cache Memory)に置く必要がある.プロセッサには命令バスとデータバスを分離した ハーバードアーキテクチャが採用され,一次キャッシュに命令用とデータ用の キャッシュを別々に用意し,ヒット率を上げるために容量を増やすとともにダ イレクトマップ方式ではなくセットアソシアティブ方式が採用され,動作周波 数の向上とともに容量は増大した.最初は,キャッシュにデータを書き込むと 同時に主メモリにもデータを書き込むライトスルー方式が使われた.次に,キ ャッシュだけにデータを書き込むライトバック方式に移行し,続いて,キャッ シュミスを起してもキャッシュを止めないノンブロッキング方式が採用され, 現在は,命令または予測に基づきデータを専用データキャッシュにプリフェッ チする機能,ストア命令時における一次キャッシュの入り口でのバッファリン グ機能,外部の二次キャッシュへの書込みを減少させるライトキャッシング機 能なども導入されている.更に,命令解読の迅速化のために,命令の部分的な 解読を行った後に解読情報とともに命令を格納するプリデコーデッドキャッシ ュが採用されている.
 最初にキャッシュを内蔵したプロセッサは 68020(1985 年)であった. 80486(1989 年)では,命令とデータで共用する8KByte のキャッシュを内 蔵すると同時に,システムバスのバスバンド幅を高くしキャッシュフィルの性 能を高めるために,プロセッサとメモリ間でのデータ転送を連続して行うバー ストデータ転送方式を採用し,アドレス情報を1回送出すると 16 Byte のデー タを4回に分けて4クロックでメモリから連続して読み込んだ.R 4000(1991 年)では,命令用とデータ用に別々のキャッシュを搭載し,命令やデータを主 メモリから読み込むときだけでなく,データを主メモリに書き込むときにもバ ーストデータ転送(最大で 16×64 bit)を行った.モトローラの 88110(1991 年)はマルチプロセッサ対応のスプリットトランザクションバスを導入した. この方式を採用すると,アドレス情報を含めたデータ転送要求パケットを送っ た後でバスを開放させ,他のプロセッサにバスの使用を許可させることができ る.また,異なるプロセッサ間同士でのキャッシュメモリの整合性を保つキャ ッシュコヒーレンシ機能もサポートしている.Pentium(1993 年)では,マル チプロセッサをサポートしないで,二次キャッシュに低速のSRAMが使えるよ うに使用中のメモリサイクルにオーバラップさせて次のアドレス情報を送出す るパイプラインバスを採用した.R 4000 SC(1992 年)やほとんどの第2世代 スーパスカラプロセッサには,より高い性能を達成するために,二次キャッシ ュ制御回路を内蔵している.キャッシュ専用データバスとして,R 4000 SC で は 128 bit の,PentiumPro(1995 年)では 64 bit のバスを用意している. サンの開発中の UltraSPARC-3 では 256 bit のキャッシュ用データバスを用 意し,パッケージも 1,000 ピンを超える時代に入った.ところが,プロセッサ の動作周波数を高くしていくと二次キャッシュをプロセッサの動作周波数で動 作させることが難しくなった.PentiumPro を改良した PentiumII(1997 年) では二次キャッシュバスの動作周波数をプロセッサの半分にして,同一パッケ ージに搭載していた二次キャッシュをモジュールへと移動させた.プロセッサ の性能は SPICE などの回路シミュレーション用プログラムが入っている性能 を計測する SPECfp 95 で比較すると,一次キャッシュの容量を倍増させても, 200 MHz-PentiumPro:6.0 SPECfp 95,233 MHz-PentiumII:5.91 SPECfp 95 となり,性能は同一動作周波数で最大 18% ほど低下してしまった.

10. スーパパイプラインによる高動作周波数化

RISC プロセッサの発展の過程で,まず,高動作周波数を実現するためにパイ プラインの段数を増やし各ステージの論理段数を少なくし動作周波数を高める スーパパイプライン技術が導入された(図6). 一般的なパイプラインでは,命令フェッチ(IF),命令解読(ID),命令実行 (EX),メモリアクセス(MA),結果のレジスタヘのライトバック(WB)で成 り立っている.DEC の Alpha 21064(1992 年)は7段のパイプラインで 150 MHz の動作周波数を実現した.Alpha プロセッサでは,回路を極端に簡単化 し高動作周波数に対応させようとして,8 bit や 16 bit のロードとストア命令 を取り除き,ダイレクトマップ方式の小容量の一次キャッシュを採用し,トラ ンジスタのチャネル幅が 25 cm もあるクロックドライバを使いクロックスキ ューを最小化した,究極の RISC プロセッサである.
1993 年に入ると Pentium に追いつかれてきたので,一次キャッシュの容量を 倍増させた275 MHz版 21064 A を開発し 66 MHz 版 Pentium の 2.5 倍 の性能を得た.更に次世代の 21164(1994 年)の開発に当たって動作周波数 を上げようとして問題に直面し,一次キャッシュの容量を元に戻しつつ2ポー ト方式を採用し,大容量でスループットの高い4ウェイセットアソシアティブ でライトバック方式のパイプラインで動作する 96 KByte の二次キャッシュを 搭載して,300 MHz 版 21164 で 133 MHz 版 Pentium の2倍の性能を保 つことができた(表3).現在開発中の 21364 では 1.5 MByte の二次キャッ シュを搭載し,その二次キャッシュをサポートするために高バスバンド幅が期 待できる DirectDRAM を主メモリに採用し 800 MHz で6GByte/s のバン ド幅を確保する予定である.HP の PA 8500 でも 1.5 MByte(命令に 0.5 MByte,データに1MByte)の一次キャッシュを搭載している.一方,低価格 パソコン用プロセッサでは 128 KByte 以上の二次キャッシュを搭載している. 高価格機パソコン用プロセッサとの違いは動作周波数だけとなった(表4).

11. 分岐予測により命令供給の効率化

 分岐予測機能は PowerPC 601(1993 年)から搭載された.一般的に,5〜6 命令に1回は分岐が生じるので,分岐予測は重要になった.予測が可能になる と命令フェッチを止め,分岐命令を解読し命令フェッチの流れを変え,プロセ ッサに命令を供給し続けることが可能となる.ただし,レジスタ間接分岐では 分岐することは分かっていても必ず同じ番地に分岐するとは限らない.80486 や第1世代の RISC プロセッサでは,分岐は常に成立しないという前提で命令 フェッチを行っていた.その場合の予測率は 40% ぐらいであった.Super SPARC では逆に分岐は常に成立するという前提で分岐予測を行い 50% の予 測率を得た.フェッチした命令列に分岐命令があると現在の命令フェッチを止 め分岐先から4命令分フェッチしバッファに貯え,分岐が成立したらバッファ の内容を命令デコーダに送った.条件が成立しなかった場合には元の命令フェ ッチを再開する.また,飛び先が後方にあれば分岐と判断すると予測率は 65% ほどになる.
 このほかに分岐予測には静的分岐予測と動的分岐予測がある.静的分岐予測 とはコンパイラがプログラムを解析し分岐予測を行いコンパイル時に命令に予 測された情報を埋め込む.予測率は 75% といわれている.この方法を最初に 採用したのが PowerPC 601 で,フェッチした命令列の分岐命令中の予測ビッ トを使ってSuperSPARC のような制御を行った.この方法は R 4x00 シリー ズにも採用された.予測率を更に向上させようとして動的分岐予測が導入され た.最初に動的分岐予測を採用したのは Pentium であった(表3).分岐した ときの物理アドレスを格納してある TAG,分岐履歴表(BHT:Branch History Table),分岐先アドレス用キャッシュ(BTAC)を合わせて分岐ターゲットバッ ファ(BTB:Branch Target Buffer)と呼んだ.分岐の度に分岐時のすべての 情報を BTB に格納する.命令フェッチ時のアドレスが BTB に格納されてい る物理アドレスと一致すると分岐命令が存在すると判断し分岐履歴表のヒスト リービットを参照して分岐の成立を予測する.履歴表のエントリー数を1K と し,過去の分岐履歴情報であるヒストリービットを1 bit で表現すると予測率は 約77%となり,2 bit だと約 82% となる.ただし,分岐履歴表には 512 (PentiumII 以降)の履歴しか登録できないので,パソコンでの応用がワープ ロや表計算ぐらいでは問題とならないが,マルチユーザ的な応用では最低2K ぐらいは必要となる.予測した分岐先の命令はフェッチしてくるが,それを実 行するという投機実行(Speculative Execution)は行っていない.投機実行を 最初に行ったのは PowerPC 604(1994 年)であった.
 32 bit 固定長命令のワークステーション用プロセッサでは,フェッチした命 令を解読できるので分岐履歴表だけを搭載して,分岐命令があるラインの次の ライン(通常4命令)までをバッファに一時的に格納しておいて,分岐が成立 しなかったときにはバッファに格納した命令を命令発行ユニットに直接送る方 法を採用している.現在開発中の UltraSPARC-3 では 16 K のエントリーを サポートしている.一方,PowerPC 604では,フルアソシアティブな 64 エン トリーのタグを含めた BTAC と 512 エントリーの2bit BHT を搭載した. 命令フェッチのステージでは,命令フェッチアドレスと BTAC 内のアドレスが 一致したら必ず分岐であるので分岐先アドレスを使って命令フェッチの流れを 変更する.一致していなくても命令デコードのステージで無条件分岐であれば 分岐と判断して修正を行う.命令の発行ステージでは,分岐履歴表を参照して 予測を行う.PowerPC では分岐によるペナルティーを低くするために分岐命令 は2段のパイプラインステージを使っている.

12. 第1世代スーパスカラプロセッサ

 スーパスカラ技術は,逐次命令を命令ユニットで並列に置き換えて,複数の 命令を複数の実行ユニットに発行して,並列に複数の命令を実行する技術であ る.最初に搭載したプロセッサはインテルの 32 bit コントローラ i960 CA (1990 年)であったが,一つのアドレス計算と一つの整数命令を実行しただけ だった.
 スーパスカラ技術に必要な実行ユニットには,命令の解読とスケジュールと 発行を行う命令ユニット,分岐予測機能を持った分岐ユニット,ロードストア ユニット,整数ユニット,浮動小数点ユニット,グラフィックス/マルチメデ ィアユニット,実行終了ユニットなどがある.どこまで細分化し,どのような 新規のユニットを搭載するかは目的により大きな違いがある.また,解読ビッ ト付き命令キャッシュやノンブロッキングデータキャッシュも必要なユニット である.命令を並列処理するときに必要な機能や制御方式がある.発行された 命令を一時的に貯えておくリザーベーションステーションと,何らかの処理を 行うときに順番を無視して処理を行うアウトオブオーダ(out of order)制御と, レジスタ数の制限を取り除くためにプログラミングモデルのレジスタをマッピ ングするリネームレジスタとその割当てを行うレジスタリネーミングと,分岐 予測に基づいた命令の投機実行制御などがある.PentiumPro では集中型リザ ベーションステーションを採用し,他のプロセッサでは各実行ユニットにリザ ベーションステーションを分散して配置している.アウトオブオーダ制御とい っても,命令発行時における制御,実行ユニット内における制御,実行終了時 における制御といろいろとある.また,順序どおりに行うことをインオーダ(in order)と呼び,順序を変更して行うことをリオーダ(dynamic reorder)ともア ウトオブエクゼキューション(out of execution)ともいう.
 マイクロプロセッサとしてスーパスカラ技術を最初に搭載したのはモトロー ラの 88110(1991 年)であった.不幸なことにチップは完成したがプロジェ クトはキャンセルされてしまった.しかし,そのシステムバスアーキテクチャ やスーパスカラ技術は IBM と共同で開発した PowerPC に引き継がれた. 88110 の実行ユニットには,三つの整数ユニット,三つの浮動小数点ユニット, 二つのグラフィックスユニット,一つのロードストアユニット,一つの分岐ユ ニットがあり,最大発行命令数は2で,シンメトリックと呼ばれ命令の組合せ に制限が非常に少なかった.グラフィックスユニットには3D 機能やマルチメ ディア命令も持たせていた.静的分岐予測やマルチプロセッサ対応システムバ スやノンブロッキングキャッシュを含んだスーパスカラ技術のすべてがこのプ ロセッサには搭載されていて,スーパスカラプロセッサのお手本となった.
 第一次世代スーパスカラプロセッサで最初に商用化されたのはマッキントッ シュに搭載された PowerPC 601(1993 年)で,実行ユニットとして整数と浮 動小数点と分岐があり,最大命令発行数も実行数も2であった(表3).21064 は, 実行ユニットとして,整数,浮動小数点,ロードストア/アドレス生成があり, 最大2命令を発行でき,二つの命令を並列に実行できる簡単なスーパスカラプ ロセッサであった.Pentium もスーパスカラ技術を使ったが,整数を二つまた は整数と浮動小数点を一つずつ2命令が同時に実行できる程度であったし,並 列実行できる命令の組合せに制限が多すぎた.PA-RISC は浮動小数点演算命令 の高性能化と外部キャッシュメモリに執着したプロセッサであった.一方, SuperSPARC には,実行ユニットとして,整数が一つ,浮動小数点が一つ,ロ ードストアが一つ,分岐が一つあり,最大3命令まで並列に実行できた.整数 ユニットには3個の演算回路があり,2 個を並列に,一つをシーケンシャルに 使うことができた.第1世代としては,88110 を除けば,SuperSPARC が最 もスーパスカラ的なプロセッサであった.

13. 第2世代スーパスカラプロセッサ

 第2世代スーパスカラプロセッサが1994年から登場してきた(表3と図7).実行ユニット数も発行できる命令数も増 え,発行する命令の制限も少なくなり,ありとあらゆる高性能化達成技術が導 入された.最初に登場したのが PowerPC 604(1994 年)であった.実行ユニ ットとして,整数が三つ,浮動小数点が一つ,ロードストアが一つ,分岐が一 つあり,最大6命令が並列実行された.各ユニットに命令をバッファリングす るリザベーションステーションが分散して配置されている.命令は四つずつ8 エントリーある命令キューに読み込まれ,下位の四つの命令が発行ユニットに 送られ解読されスケジュールされ,発行しようとする命令のソースオペランド が準備できていなくても命令順に4セットある命令発行バスを介して各実行ユ ニットのリザベーションステーションに命令を送出する(in order issue).発行 ユニットでは分岐予測に沿った命令も印を付けて発行する.受け取った実行ユ ニットではリソースの準備が整った命令から(out of order),必要であればレジ スタリネーミングしてレジスタを確保して,実行を開始する.実行を終了した 命令は6セットある実行終了バスを使って結果を終了ユニットに送出する.ロ ードストアユニットでも,必要があれば,キャッシュからの読出しや書込み順 序をリオーダ(reorder)して実行する.終了ユニットでは,命令を発行した順 番で終了していく.分岐予測が外れれば印を付けた命令の実行を無効にする. 性能は第1世代の2倍の性能を実現した.PowerPC 604 に続いて,二次キャッ シュを搭載し4命令実行可能な 21164(1995 年)と,マルチメディア命令を 搭載し4命令実行可能な UltraSPARC(1995 年)が出現し,性能は更に 60% 以上向上し,Pentium の2倍の性能を保ち RISC プロセッサの優位性を確保 した.

14. ペンティアムプロで性能向上が激化

 PentiumPro は最初 133 MHz 版として投入さる予定であったが性能が RISC プロセッサに追いつかず,150 MHz 版が 1995 年末に投入された.浮 動小数点演算性能は RISC プロセッサの半分ほどの性能しか実現できなかっ たが整数演算性能は RISC プロセッサと肩を並べるようになった.ここからは, 動作周波数の競走になった.
 PentiumPro は,最大で,x86 命令を三つ解読し5命令発行することができ た.命令ユニットで三つの解読器を使って,簡単な x86 命令は1対1でマイク ロ命令 μOP に置き換えられ,複雑な命令は最大四つの μOP に置き換えら れ,それ以上はマイクロ命令シーケンサで μOP が生成される.変換された最 大六つの μOP はリオーダバッファ(ROB)に送られ,40 本のレジスタを使 って x86 レジスタを物理レジスタへマッピングする(レジスタリネーミング). 次に,最大五つの μOP 命令が集中型リザベーションステーションへ発行され る.命令を受け取ったリザベーションステーションは実行ユニットの準備が整 って受け入れ状態を確認してから μOP を実行ユニットへ送り命令が実行さ れる.実行が終了すると結果はリザベーションステーションへ送り戻され命令 順に命令を完了させていく.命令の解読を除けば PentiumPro も RISC プロ セッサも同じように命令を実行している.
 Pentium プロセッサには 1997 年に整数用マルチメディア命令 MMX が 追加され PentiumMMX となり,PentiumPro にも MMX 命令が追加され評 判の悪かった 16 bit 演算を改良させ PentiumII となった.更に,1999 年に 浮動小数点用マルチメディア命令 SSE(Streaming SIMD Extention)を追加 して PentiumIII が登場した.PentiumPro のように x86 命令を RISC プロ セッサ風に実行させたのは互換機メーカーが最初であった.x86 互換機メーカ ーは4社ほどあり性能と価格を競い合っている.

15. 命令アーキテクチャの更なる進展

 1992 年に開発された Alpha 21064 と MIPS の R 4000 に 64 bit 命令 が導入された.1991 年に,プログラムの流れを分岐で乱すのを防ぐために,プ ログラムで指定した条件と一致した場合だけ実行する,メモリからデータを読 み込むコンディショナルロード命令(SPARC-V9)や,コンディショナルエ クゼキューション命令(ARM6)などが導入された.更に,1994 年に開発さ れた UltraSPARC で SIMD(Single Instruction Multiple Data)命令アーキ テクチャを使ってマルチメディア命令 VIS が追加された.整数用マルチメディ ア命令は PentiumMMX(1997 年)にも追加され,続いて,3 D グラフィッ クスやディジタルテレビにも使えるマルチメディア命令3DNOW !(1998 年) が AMD の x86 互換プロセッサ K 6-2 に追加され,更により強力なマルチメ ディア命令 AltiVec(1998 年)が PowerPC に追加された.並列度とデータ 精度を高めるためにマルチメディア命令用レジスタは,64 bit から 128 bit, そして 128×2 bit へと拡張された.内部バスも 128 bit へ拡張されつつ,レ ジスタ本数も 32 本追加された.SIMD 型ハードウェアでは1クロックで最大 16 組のデータを処理することが可能となった.3 D 用に浮動小数点演算も SIMD で実行されている.また,PowerPC プロセッサは,マッキントッシュ の MacOS でより高性能を発揮できるように,G 3(750)と G4プロセッサ へと改良された(表4).チップ面積も消費電力も Pentium 系プロセッサと比 較して小さい.マルチメディア命令が重要視されるといかによどみなくデータ を演算器に供給するかが問題となってきた.この問題を解決するために PentiumIII ではメモリストリーミングアーキテクチャと名付けたデータプリ フェッチ機能を搭載している.UltraSPARC-3 ではデータプリフェッチだけで なく,その機能を使った専用キャッシュも用意している.
 1990 年代後半に入るとゲーム機でも高性能で高品質な応用ソフトウェアに 対応するためにシステムに高性能化が必須となってきた(表4).パソコンやワ ークステーションではマルチメディア命令とスーパスカラ技術とグラフィック スチップで対応している.ところが,ゲーム機で必要とされるジオメトリ計算 やレンダリングにはマイクロプロセッサの10倍以上の性能が要求される.この ため,最近開発されたゲーム用プロセッサ(Play Station 2)は,パソコンの半 分ぐらいの性能を実現できる二つの整数ユニットと一つの浮動小数点ユニット を搭載し2命令を並列実行する MIPS プロセッサ,MPEG デコーダ用イメー ジプロセッシングユニット,コプロセッサとして動作するベクタプロセッサ, メインプロセッサと非同期で動作するベクタプロセッサなどで構成されている. ベクタプロセッサには合計で9個の浮動小数点乗算器と二つの浮動小数点除算 器があり,400 MHz 版 PentiumII の 10 倍以上の性能を実現している.

16. マイクロプロセッサの今後の発展


 シングル命令アーキテクチャのマイクロプロセッサは,4 bit マイクロプロセ ッサ 4004 から出発し,8 bit,16 bit,32bit,64 bit へと進化し,RISC プ ロセッサを登場させ,コンピュータから性能向上技術を導入し,マルチメディ ア命令や応用に特化した命令や機能を集積化しつつ,急激に発展した.現在開 発中の第3世代スーパスカラプロセッサ UltraSPARC-3(Alpha-21364)では, 動作周波数は 600 MHz(1000+MHz),パイプライン段数は最大 14 段,最 大命令発行数は 6,目標性能を 35 SPECint 95/60 SPECfp 95(70/120)とし, パソコン用プロセッサの2倍の性能を達成しようとしている.PA-8500 では1 億3千個のトランジスタの集積化を計画している.今後も性能と集積度は半導 体プロセスの発展とともに向上していくが,シングル命令型の終焉を見ている ような感じがする.パソコンの高性能化により,ワークステーションの高性能 とコストパフォーマンスという特徴は消滅しつつある.アプリケーション用サ ーバはほぼ消滅し,データベース用またはインターネット用サーバとなり,ク ライアントが使うシステムもワークステーションである必要はなくなった.ま た,保守コストがかかり信頼性の低い分散型小規模サーバに代ってメインフレ ームが集中型サーバとして復活してくる.
 未知の分野がまだ残っている.通信と言語とマルチプル命令アーキテクチャ の VLIW(Very Long Instruction Set)プロセッサ(図5)であり,その融合 である.VLIW プロセッサ TM-1000 は 1995 年にフィリップス社でマルチ メディアプロセッサとして開発された.C 言語などの高級言語で書かれたプロ グラムは,VLIW 命令アーキテクチャに対応するようにコンパイルされ,VLIW 命令として五つの命令スロットに供給され,最大五つの命令が並列に実行され る.各実行ユニットとして,整数,浮動小数点,ロードストア,分岐,マルチ メディアなどのユニットがある.現在は使えるシリコン面積の制限ですべての スロットがすべての命令を実行できるようにはなっていない.また,コンパイ ラと VLIW 命令アーキテクチャの協調技術は第1世代の開発段階と考えた方 がよいだろう.スーパスカラプロセッサでも3世代かかってやっと洗練されて きた.VLIW 技術も誕生から 10 年たたないと評価できない.インテルの Merced は第2世代 VLIW プロセッサとなるかもしれない.
 21 世紀の「時代を切りひらく技術」としてのプロセッサには,オブジェクト 指向技術,プロセッサインディペンデントな言語環境,分散処理 OS を基本と した応用に特化可能な新規なアーキテクチャが要求される.マイクロプロセッ サ誕生の原動力となったのは応用からの特異な要求と応用への最適化であった. 「応用分野の要求は発明の母であり,初めに応用ありき応用がすべてである」 といっても過言ではない.新規な応用にこそ貴重な原石があると信じつつ,そ の目的を満たすアイデアを創造し大事に育てることが開発技術者の義務であり 楽しみである.

17. マイクロプロセッサがもたらした社会の変化

 マイクロプロセッサは,その誕生と同時に,二つの顔を持つようになった. 知的能力とコンピューティングパワーであった.およそ人間の発明したもので, マイクロプロセッサほど短期間のうちに大きな影響を与えたものはほかに見当 たらない.
 マイクロプロセッサが提供する知的能力は,家庭電化製品,オフィス機器, 自動車,通信など,あらゆる分野に広範囲に大量に活用されている.18 世紀中 葉にイギリスで始まった動力による第一次産業革命は,人類の機械力学的能力 の限界を事実上なくした.次に,19 世紀中葉にアメリカで始まった電気による 第二次産業革命は,通信や放送や電化製品によって速度と快適さのある近代文 明を人類にもたらし,大規模なエレクトロニクス産業を築き上げた.そして, シリコン小片に乗った知的能力を持ったマイクロプロセッサによる第三次産業 革命は,新たなる文化を創造するための「知への道具」を人類にもたらした. マイクロプロセッサの誕生により,いかに品質を高くかつ安く物を作るかとい った生産という文明を重視した時代から,何を作るかといった創造という文化 を重要視する時代を登場させた.
 マイクロプロセッサはコンピュータ会社が独占していたコンピューティング パワーを創造に挑戦する若き開発者に解放し,パソコン,ワークステーション, ゲーム機を登場させ,ソフトウェア産業を大きく花開かせた.第二次大戦後に 日本が強力に押し進め高度成長をもたらした高度技術・大量生産という文明の 創造と発展にかげりが出ている.一方,米国はパソコンという文明の上に,マ イクロプロセッサ,オペレーティングシステム,アプリケーションソフトウェ ア,マルチメディアなどの文化を創造し発展させてきた.日本が今のまま生産 という文明を重要視しすぎると,日本が莫大な資金を投入して苦労して築き上 げた文明の上に,米国の文化を構築するような体制になってしまい,大きな付 加価値を日本が享受できなくなる.また,米国で開発された技術を重要視しす ぎると,翻訳された米国の文化が日本に浸透し,米国流の表現方法,思考方法, 仕事の進め方,価値観が主流となり,会社や社会のあり方までが変化し,日本 本来の文化が消滅してしまう恐れがある.


しま まさ とし
嶋  正 利(正員)
昭 42 東北大・理・化工卒.同年ビジコン入社.世界初のマイクロプロセッサ 4004 開発.1972 インテル入社.8080 マイクロプロセッサ開発.1975 ザイ ログ入社.Z 80 と Z 8000 を開発.現在,トプス社で分散処理プロセッサを開 発中.平 12-04 会津大学教授就任予定.平4工博(筑波大).1997 京都賞先端 技術部門受賞.1998 米国半導体生誕 50 周年記念“Inventor of MPU”受賞.


戻る