コンピュータ講座 応用編 会報トップへ戻る
本ページの内容をPDFファイルでダウンロードできます >> PDFダウンロード
「コンピュータ講座 応用編」でのご意見やご要望をお寄せください >> アンケート
第1回  |  第2回  |  第3回  |  第4回  |  第5回  |  第6回  |  第7回  |  第8回  |  第9回  |  第10回  |  第11回  |  第12回

第1回 CPUは数百本の足を持つトランジスタのかたまり

第一回目は、CPUを物理的・電気的な部品として解説します。パソコンに使用されるCPUの外観は、数百本の足(ソケットに挿すピン)を持ち、1億個を超えるトランジスタを集積したICで、VLSI(大規模集積回路)と呼ばれます。今回は、このCPUを外側から眺めて、物理的な仕組みや電気的な働きを説明します。


CPUの構造

CPUの解説の最初に、CPUの構造を概観します。そのために少し遠回りですが、ICの製造方法に触れておきます。

ICの製造方法

ICの材料にもっとも多く使われるのはシリコンです。土や砂の主成分であり入手しやすい事や、動作が安定していること、その絶縁膜が半導体に適しているという理由からです。
実際に材料として使われるのはシリコンが酸化物と結びついた珪石です。珪石をいくつかの工程を経て、高純度化(純度99.999999999、イレブンナインという)して単結晶シリコンを作ります。
高純度単結晶シリコンを円盤状にスライスしたのがシリコンウェーハです。ウェーハは直径5インチ(125mm)から12インチ(300mm)、素材時点での厚さは約700μm(CDの約半分)の円盤です。ウェーハの直径が大きければ大きいほど一度に作れるチップの数が増え、採算性が向上します。厚みは、製造工程を経て最終的に約半分の350μm程度まで研磨されます。
シリコンは、ふだんはほとんど絶縁体ですが、不純物を添加すると導体に近づきます。この性質を半導体といいます。シリコンウェーハに不純物を添加、絶縁膜の形成を繰り返し、各種部品を作ります。実際には写真印刷技術で、一括で1個1個が0.1μm以下のトランジスタやダイオード、コンデンサ、抵抗などの部品を形成します。

(1)1枚のシリコンウェーハ上に碁盤の目のように並べられて複数のチップが一度に作られます。

(2)ウェーハを1個1個のチップの大きさに、高速に回転するダイヤモンドカッターで切り出します。

(3)初めてチップの大きさになったものをダイといい、ダイをボンディングフレームと呼ばれる基板に接着します。

(4)ダイの端子とボンディングフレームを20〜60μmの微細な金の線を使って配線します。

(5)ダイとピンの配線が終わるとチップを機械的、化学的に保護するためにパッケージに封入します。

(6)この上に型番や製品名、ロゴなどを印刷して完成です。

CPUの外形構造

CPUもシリコン製ICの一種です。PentiumXEクラスでは、小さなダイの上に1億7千万個を超えるトランジスタが生成されています。ちなみに、世界最初のCPU4004の集積度は2300個でした。下図はCPUを分解したイメージ図です。

ダイ
シリコンウェーハから切り出されたCPU1個分の薄い基板。この基板の表面に、1億個を超える数のトランジスタがCPU回路を形成しています。

Pentium® 4 プロセッサ 600番台のダイ

デュアルコアのCPUでは、1つのダイに同じものが2個載っている。

ダイシング
ダイヤモンドカッターでウェーハを1個1個のチップの大きさに切り出すこと。
ボンディング
ワイヤボンディングともいい、ダイに形成された回路に信号や電源を入出力するためのボンディングパッドとボンディングフレームを結ぶ配線、または配線作業のことを言います。この配線には線径20〜60μmという極細で、ボンディングパッドとの結合性のよい金が用いられます。現在、ワイヤボンディングに代わる方法として、ダイの端子部分に直径20μm、高さ15μm程度のバンプ(コブ)を作って端子と外部端子に接続するフリップチップと呼ばれる方法も増えています。
また、ワイヤボンディングの前にダイをボンディングフレームに接着することをダイボンディングといいます。
パッケージ
ダイは指先に乗るほどの小さなもので、そのままでは配線や取り扱いが難しいため、ボンディングフレームというピンと接続された基板に載せられています。ダイとボンディングフレームは、ワイヤボンディングで配線され、さらにこれらを機械的、化学的に保護するために、モールド材で封止されます。 この作業をモールドといいます。
パッケージの名称は、ICの外形形状を表します。DIP、SIP、SOP、QFP・・・など多くの種類があり、それぞれに寸法、形状が異なります。
パッケージ上には品名や型番を印刷します。これをマーキングといいます。
ピン
パッケージの裏の端子。マザーボードのCPUソケットに差し込まれます。例えばPentiumXEに使用されるLG775パッケージの場合、ピンの数は775本で、まるで剣山のようにピンが並んでいます。1世代前のPentium4に使われていたSocket478はピン数が478本です。CPUの性能が上がるにつれ、ピン数は増え続けていますが、主に増えているのが、実は電源とアース(GND)です。これは、高速動作時の電源の安定供給のためと言われています。

CPUのパッケージ自体は、数cm角ですが、ダイとよばれる本当のチップ部分は案外小さいのです。電源や信号を入出力するためには接続用の端子が必要で、そのためのピンや放熱の事情から現状の大きさになっています。
実はチップが小さいことがCPUの高性能化に結びついています。CPUを高速化するには、クロックパルス幅(クロック周波数の逆数)を小さくして、さらに入力から出力までの距離を短くします。そこで、微細化技術により超小型化を図ることになります。CPU内部の最小加工寸法のことを製造プロセスルールといい、微細化の指標になります。PentiumXEは65nm、i4004は10μmですから、およそ150倍以上小さくなっています。クロックは前者が3.8GHz、後者は500kHzですから、開きは7600倍です。小さくなることは速くなることでもあります。
ところが、小さくなると発熱(消費電力)の問題も出てきます。発熱は以下の式で表せます。

消費電力=負荷容量×トランジスタ数×(電源電圧)2×クロック周波数

PentiumXEのトランジスタの数は、i4004の2万4千倍です。発熱量はクロック周波数とトランジスタの数に比例しますので、計算上はPentiumXEはi4004の1億8千万倍の熱を発することになります。これをロケットの噴射口と表現する学者もいるくらいです。微細化技術は同時に低消費電力への課題も伴っています。

※μm(マイクロメートル)は10-6m、100万分の1m。
※nm(ナノメートル)は10-9m、10億分の1mm。
※0.001mm(ミリメートル)=1μm=1000nm。

CPUは論理回路のかたまり

前述したCPUのダイに形成される極小のトランジスタや抵抗やコンデンサはダイの上に無数の論理回路を形成しています。プログラムに従って動作するコンピュータの計算を実行しているのがこの論理回路です。

論理回路とは

電気的な回路を使って論理的な演算を実現する回路です。論理演算には演算子(日常使用される「+」とか「−」、「÷」、「×」に相当するもの)として、検索でおなじみの「AND」、「OR」、「NOT」を使用します。「X AND Y」は「Z」というように、X、Yの値により出力されるZの値が一定のルールで決まるような機能を電子回路で実現するのが論理回路です。
次の回路は原始的なAND回路です。

スイッチ「X」「Y」両方がオンになったときだけ電球「L」が点灯します。

これは、「X AND Y」は「L」という論理式で表せます。
オンを「1」、オフを「0」とすると、下表のような組み合わせになります。「L」が結果です。

スイッチ 電球
X Y L
0

0

0
1

0

0
0

1

0
1

1

1

トランジスタはスイッチの働きをすることはすでに基礎編で説明しました。電球とスイッチの回路をトランジスタに置き換えると、下図のようになります。

Xに一定以上の電圧がかかるとトランジスタ1が導通します。Yも同様の働きをし、XとYの両方が導通するとLにはほぼ5Vの電圧が生じます。Lがオンになります。
Xが一定の電圧より低くなるとトランジスタ1は電気を通さず、Lは0Vになります。Lがオフになります。
X、Y、Lの関係は上の表と同じです。

論理回路には、「AND」を含めて次の表のような種類があります。それぞれの論理演算の結果と合わせてご覧ください。NOTだけは、1なら0、0なら1と値を反転する働きをしますので入力は1つだけです。NANDとNORは、ANDまたはORとこのNOTを組み合わせて、出力の値を反転させたものです。実際の回路には、作りやすく制御しやすいので、ANDやORよりもNANDやNORの方が多く使われています。

入力の状態 論理回路の種類と出力
X

Y

AND OR XOR NAND NOR
0 0 0 0 0 1 1
1 0 0 1 1 1 0
0 1 0 1 1 1 0
1 1 1 1 0 0 0

X NOT
1

0

0

1

論理回路で計算を実行する

CPUには、以上のようなトランジスタを使った論理回路がダイ上に無数に形成されています。おおざっぱにトランジスタ10個で1つの論理回路が作られるとすると、その他の回路を差し引いてPentiumXEクラスのCPUには数百万個の論理回路が載っていることになります。1個の論理回路では1か0の出力が得られるだけですが、これを数百万個集めて組み合わせるとできないことがないと言ってよいほど複雑な論理を実現できるようになります。
ここでは、簡単な組み合わせの一例として論理回路による1bitの数値計算をしてみましょう。
ここで使う数値は、日常生活で使う0から9までの数字を用いる10進数ではなく、0と1の組み合わせ、つまり2進数です。CPUも当然2進数で動作しています。
1bitの計算をする回路はつぎようになります。見慣れない記号は、論理回路や論理素子を表す電子回路図用の記号です。回路の説明が目的ではないので、ここでは入力X、Yと出力S、Cに注目しましょう。

他の論理素子の組み合わせでも同じ機能を実現することができます。

入力と出力の関係は以下の通りです。右端の列が演算を日常使い慣れた算術演算子に置き換えたものです。二進数で計算が成り立っているのがわかります。

入力 桁上がり 合計 算術演算子
を用いた表現
X

Y

C S

0

0

0

0

0+0=00
1+0=01
0+1=01
1+1=10

1

0

0

1

0

1

0

1

1

1

1

0

論理回路はこのようにして演算を実現します。

ところで、今ではCPUを使うのが当たり前の液晶表示やテレビゲーム、多機能なデジタル時計などは、CPUが一般的になる前は論理回路だけで作られていました。個別の論理IC(ロジックICともいいます。1個のICにNAND、NORなど1種類の論理回路が搭載されている)を組み合わせて、ゲームや時計の論理機能を実現します。従って回路はかなり複雑でした。やがて表示専用や時計専用などの専用ICが開発され、複雑さは解消されましたが、設計時に決めた動作のみで、プログラムを入れ替えて異なる動作をさせたり、機能を追加したりすることはできませんでした。ただ、こうしたハードウェアだけで論理を実現する回路は、スイッチオンで高速に一定の動作をさせたい場合に今でも使用されています。単機能個別の論理ICに代わって、CPLDやFPGA()と呼ばれる特殊なLSIが使用されます。大規模な論理回路を専用の言語で記述したプログラムを書き込んで使用するLSIです。コンピュータとよく似ていますが、基本的には論理回路ですから、決められた動作しかできませんが、1000〜10000個の論理素子を1個のLSIに作ることができますので、かなり複雑な動作が可能です。こうした素子は家電製品からコンピュータ周辺機器などに幅広く使用されています。

※FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)

CPU内部の機能ブロック構成

CPUはメモリを含め、ほとんどが論理回路で構成されています。論理回路は、機能ごとにいくつかのブロックにまとめられています。ダイ上のブロックごとの機能は次の図のようになっています。

バスインターフェース
メインメモリなどと命令やデータの入出力をするためのユニットです。処理するデータを伝送するデータバス、メインメモリ上のデータの場所を示すアドレスバス、制御情報を伝送するコントロールバスの三つのバスが接続され、外部とのデータの入出力はすべてこのユニットを経由して行なわれます。
キャッシュメモリ
CPU内部に設けられた高速・小容量のメモリ。高速なCPUと低速な外部メモリ(DRAM)の速度差を緩和するために使用頻度の高い命令やデータを蓄えて外部メモリへのアクセスを減らし、CPUの動作を高速化します。データと命令は別々になっています。
フェッチユニット
実行するべき命令をメインメモリから読み出す動作をフェッチと言います。フェッチした命令を少しの間、ためておくスペースがフェッチユニットです。最近のCPUは、効率的な命令の実行のために、あらかじめ少し先まで命令を読み込んでおくように作られています。その命令をここにためておきます。
デコーダ
フェッチユニットに保存された命令を解析する部分です。解析が行なわれると、ここから、データを、制御ユニットに送ったり、演算ユニットに送ったりします。
整数演算ユニット
CPUの中核である実行ユニットの一部です。デコーダで解釈された命令が制御ユニットにより引き渡され、様々な四則演算や論理演算などの処理を行ないます。
浮動小数点演算ユニット
FPU(Floating Point Unit)ともいう浮動小数点演算を行う部分です。FPUは、かつては外付けでコプロセッサと呼ばれていました。科学技術計算などの高精度な数値を求めるプログラムで威力を発揮します。コンピュータでは、整数だけを扱う場合と小数も含めて扱う場合とでは、計算の仕方が、全然ちがうので、2つの演算は、別の回路が組んであります。Intel486CPUから、CPU本体に内蔵されるようになりました。それ以前のIntel386までは外付けのコプロセッサでした。
制御ユニット
CPU内の全ユニットの進行を管理する部分です。命令に従ってメモリからデータを読み出したり、演算ユニットを制御して処理を実行させたり、レジスタの内容をメモリに書き込んだりします。

最近のCPUの機能ブロックの中で、もっとも面積を占めるのが実はキャッシュです。 キャッシュメモリを多段搭載するCPUが多く、通常は2段まで搭載しています。複数のキャッシュを搭載している場合にはCPUに近い位置からL1(レベル1)キャッシュ、L2(レベル2)キャッシュ・・・と呼びます。L1キャッシュはデータ用と命令用に分かれています。下表はPentiumの一部の機種のキャッシュ搭載状況です。L1キャッシュは、16KBがデータ用、12KBが命令コード用です。

キャッシュの搭載状況
CPU Pentium XE
955
(3.46GHz)
Pentium 4
650
(3.4GHz)
Pentium 4
550
(3.4GHz)
Pentium 4
Extreme Edition
3.40GHz
Xeon
3.20GHz
1M バイト L3 キャッシュ
コア数 デュアル シングル シングル シングル シングル
L1キャッシュ 16KB+12KB 16KB+12KB 16KB+12KB 8KB 8KB
L2キャッシュ 2MB×2 2MB 1MB 512KB 512KB
L3キャッシュ なし なし なし 2MB 1MB
プロセスルール 65nm 90nm 90nm 130nm 130nm
発表日 2006年1月16日 2005年2月22日 2004年6月22日 2004年6月22日 2003年10月7日

表右端のPentiumXEのようにL3キャッシュを搭載したものがありましたが、最近はL3キャッシュを搭載するよりもCPUに近いL1、L2キャッシュの容量を大きくする傾向にあります。CPUに近いキャッシュを増強した方が性能向上に有利です。表左端Pentium XE 955のようにCPUコアを複数個内蔵したCPUでは、コア数分のキャッシュを内蔵しています。しかし、キャッシュの容量拡大に伴ってCPUチップに占めるキャッシュの面積が大きくなっており、CPUに集積されるトランジスタの多くがこのキャッシュに使用されています。一例として、2MBのL2キャッシュを搭載するモバイル用CPU、Core Duo(開発コード、Yonah)の場合、1億5160万個のトランジスタが集積されていますが、そのうちの1億1300万個はL2キャッシュに使用されています。残りのトランジスタは3836万個で、これはPentium3クラスと大差ありません。

ノイマン型コンピュータの動作

最後にCPU内部の機能ブロックと動作を説明しておきましょう。 外部のメモリ(キャッシュを含む)にプログラムを置き、(1)命令フェッチ、(2)デコード、(3)実行の3つの動作を行う方式を「ストアドプログラム方式」(プログラム蓄積方式)と呼び、この方式のコンピュータをノイマン型といいます。プログラムをハードウェアから独立させてデータとして外部から与え、汎用のハードウェアで実行させる方式です。


ノイマン型コンピュータの構造と動作

ノイマン型コンピュータの命令実行サイクルは次の3つの動作で構成されます。

(1)命令フェッチ
外部メモリまたはキャッシュメモリからフェッチユニットに命令コード(インストラクション)を読み出し、プロセッサ内部のレジスタに転送します。

(2)デコード
フェッチされた命令の意味をデコーダで解釈します。

(3)実行
制御ユニットが浮動小数点演算ユニットや整数演算ユニットを動かして命令を実行します。

ノイマン型コンピュータは、アメリカの数学者、ジョン・フォン・ノイマン(John von Neumann)氏によって1946年に提案されました。このときに、ソフトウェア(プログラム)という概念も誕生したといわれています。ちなみに、世界最初のノイマン型コンピュータは1949年にイギリスで開発された「EDSAC」です。ノイマン氏自身が開発に携わっていたEDVACは、その後塵を拝しています。それまでのコンピュータは1つ1つの論理回路を配線し直してプログラム通りに組み合わせて使用していたのです。

今回はCPUの電気的な動作や物理的な構造の話です。わずか8〜10cm角のパッケージに1億個以上のトランジスタが詰め込まれているなどとはにわかには信じがたいものがあります。次回は、その1億個以上のトランジスタがデータを読み込んだ後、どのように動作して目的の処理を実行するか、CPUの論理的な構造を説明します。


【参照サイト】
基礎から学ぶコンピュータ(http://rryu.sakura.ne.jp/compfund/
基礎から学べるミニ講座(http://www.lec-jp.com/it/itsp/mini/ad_mini/ad_mini7.htm
階段スイッチや廊下のスイッチの謎(http://www.cc-net.or.jp/‾ken/news/reikai/0312/0312kairo.htm
IT用語辞典(http://e-words.jp/

【参考書籍】
馬場敬信『コンピュータのしくみを理解するための10章』株式会社技術評論社

ページの先頭へ
タイトル一覧
CPU編
第1回   CPUは数百本の足を持つトランジスタのかたまり
     
バス編
   
     
ディスク編
   
     
メディア編
   
     
ページの先頭へ
All Rights Reserved, Copyright(C) FUJITSUファミリ会