第1回 マイクロプロセッサの時代
マイクロプロセッサとは,コンピュータの CPU(および周辺回路)を1チップ化した集積回路であ る.このマイクロプロセッサを構成する最も細かい部分の動作の基本は,電子デバイスの持つ増幅作用 と非線形作用にある.一方,その働き全体を捉えれば,「記号を操作する機械」であり,「記号によって 組み立てられた機械」でもある.講義の第 1 回では,トランジスタ,IC,という半導体デバイスの動作 の基本と計算機械の基本を復習することで,人類が産み出した最も複雑な機械であるマイクロプロセッ サの大まかな姿をイメージしていただきたい.1-1 球,石,IC..
1-1-1 電子デバイスの役割 増幅とスイッチング コンピュータを組み立てている最小の部品である「論理回路」は,増幅とスイッチングという2つの機 能により働いているのである. 増幅とは,入力する信号のパワーを増大して出力すること
増幅しないと信号は次第に減衰し,雑音に埋もれてしまう
スイッチングON/OFF や,「しきい値動作」のこと
これらを組み合わせて,判断・計算などの機能を実現する.
1-1-2 真空管から LSI まで コンピュータを組み立てている論理回路には,電子の動きを利用する電子デバイスが使われている. 論理回路はリレーなどの電気・機械式素子を用いて作ることもできる.しかし,電子デバイスの方が, ずっと高速に動作できる.電子は軽く,少しのエネルギーで,その運動を制御できるからである. 真空管 コンピュータに用いられた電子デバイスのトップバッターが真空管である.内部を真空にしたガラ スの容器(バルブと呼ばれる)内に熱電子放出によって電子を発生させ,この動きを外部からの電圧 で制御することで増幅やスイッチングの機能を持たせることができる.Fig.1-1 に示すように電球を ひょろ長くしたような外形をしていて,「球(タマ)」と呼ばれていた.昔は,テレビやラジオの中の 回路は真空管で作られていたので,良く目にすることができた1. 真空管は,金属板(カソード)をヒータで熱して熱電子を放出させる.このため,ヒータ用の金属 線が消耗してしまうと動作しなくなる,消費電力が大きい,1つ1つの素子に内部を真空にしたバル ブを必要とするため装置が大型化する,などの問題点があった2. --- 1Fig. 1.1 いろいろな真空管 Fig. 1.2 昔のトランジスタ トランジスタ トランジスタは,半導体中の電子の運動を制御することで増幅やスイッチングの機能を持たせた素 子である.SONY が全部の素子をトランジスタにしたラジオを発売して会社の基礎を作ったことで, 増幅素子としての応用が,初めに注目された.しかし,トランジスタの発明者は,始めから,応用と して電話の交換機のための素子,つまりスイッチングの作用に着目していたという. トランジスタは,その昔は「石(イシ)」と呼ばれていた.「1 石ラジオ」とは,トランジスタを 1 個使ったラジオ(売り物ではなく自作の)のことであった. Fig. 1.3 初期の IC Fig. 1.4 マイクロプロセッサ IC,LSI IC(Integrated Circuit):
半導体のチップ(小片)上に複数のトランジスタや抵抗などを含む回路を一体化作製したもの
メリット:部品(素子)の個数が多くなっても,接続不良による故障の可能性が減り,
信頼性が大幅に向上
IC の集積度は向上し続け,CPU のような大規模な回路を1つの半導体チップで構成された LSI(Large
Scale Integration)に集積化できるまでになった.
マイクロプロセッサ
コンピュータの中心的な部品である CPU(Central Processing Unit)を 1 チッ
プの LSI として実現したもの
1
1-2 マイクロプロセッサの応用
マイクロプロセッサの応用分野は非常に広範囲にわたっている.「コンピュータの CPU」としての応 用と,「部品としての」応用に分けることができる. 1-2-1 汎用コンピュータの CPU現在使用されている「コンピュータ」のほとんどは,
CPU にマイクロプロセッサを使用している.
パーソナルコンピュータ,
エンジニアリングワークステーション(EWS)
日本国内では,「マイクロプロセッサを用いるコンピュータ」を「マイクロコンピュータ」と呼んで いたこともある.現在では,次の項で示す,「1チップコンピュータ」をマイクロコンピュータと呼ぶ ことが多い. 1-2-2 部品として様々な機器の中で使われている.
炊飯器や洗濯機,自動車,・・・ より大きなシステムの部品として機能
(もちろん,内部ではコンピュータとして動作している)
部品としての応用は,組み込み用途(embedded,エンベデッド)と呼ばれ,その開発には,パーソ ナルコンピュータなどの汎用コンピュータの用途とは異なる手法が使われている. 組み込み用途ではメモリやインタフェース回路も CPU と同一のチップに載せた「1チップコンピュ ータ」は「ワンチップマイコン」と呼ばれ,多く使用されている.1-3 復習「計算機基礎」
メモリ・ ユニット 入出力 ユニット 入出力機器 中央処理ユニット (CPU) 演算論理 ユニット 制 御 ユニット 3①コンピュータとはシンボルを操作する機械である.
②シンボルは2 値シンボル(ビット)の集まりとして表現される.
③現在,主流となっているのはフォン・ノイマン型のアーキテクチャである.
フォン・ノイマン型アーキテクチャの特徴:○プログラム内蔵 → 構造は変えずに様々な処理が可能
○逐次処理
→ 1 つ1 つ順番に処理
○バス接続
→ ハードウェアの拡張性
1-4 プロセッサの基本動作
現在のコンピュータは,「フォン・ノイマン型」のアーキテクチャに基づいている.プロセッサは番 地付けしたメモリに格納されている命令語を順に読みだして実行している. プロセッサの基本動作a)命令読みだし(instruction fetch)
b)命令実行(instruction execution)
を繰り返している
1-4-1 マイクロプロセッサの誕生
1971 Intel 4004 (以下 Intel を i と略記)ビジコン社との共同開発 1972 i8008 1974 i8080 MITS 社 最初の「マイコンキット」ALTAIR-8800 S100 バスと大きな電源,シャーシ (ボードコンピュータとしては Intel の SDK-80('73),SDK-85('76)) 1975 ビル・ゲイツの 8080 用 BASIC ALTAIR に搭載 Motorola 社 MC6800 1976 Zilog 社 Z-80 *i4004 は 2200 個の Tr を 12.0mm2 のチップに集積化していた.語長4ビット.マイクロコンピ ュータという名前は電卓の制御に必要な命令がそれより低いレベルの命令で作ることができる こと(microprogrammable)から名付けられた,という. *8ビットプロセッサは,開発時点で 5000Tr 程度の集積度であった. 汎用のコンピュータを作る場合,8bit(=1Byte)が最小の語長である.8bit で英数字の1文字を 表現できるからである.(漢字は1文字に2Byte 必要である) 4 5復習 ハードウェアの基礎 — 論理回路
マイクロプロセッサ(CPU)を中心に,メモリやインタフェース回路を,バスを介して接続することで, コンピュータが構成される.これらの,コンピュータを構成する要素のハードウェアの基礎を理解するこ とが,第2話と第3話の目的である.まず,ハードウェアの基礎である2値論理回路について復習する. 次に,組合せ論理回路の基礎である「デコーダ」と,記憶を持つ順序回路の最も原始的な形である「フリ ップフロップ」を例に,コンピュータの中の論理回路について考える.2値論理回路とゲート
ゲート回路
スイッチの組合せにより構成される,基本的な論理演算を行う回路.
2 入力のゲート回路は,数個のトランジスタから構成
組合せ論理回路と順序回路
複数のゲート回路を組合せることで様々な論理回路が構成される. 論理回路には2つの種類がある. 組合せ論理回路(Combinational Circuit) → 出力は現在の入力だけで定まる 順序回路(Sequential Circuit) → 出力は過去の入力にも依存する(“記憶”を持つ回路) ステートマシン(State Machine)とも呼ばれる組合せ論理回路(Combinational Logic Circuit)
入力の組合せで出力が定まる
→真理値表で入出力関係が決定される
組合せ論理回路の例 例1 AND-OR セレクタ1
C
=
のとき,
D
=
A
0
C
=
のとき,
D
=
B
6 7 A B C D例 2 デコーダ(Decoder) Enable 端子付き 1 対 4 デコーダ Fig. 1.6 2 対 4 デコーダとその内部回路 デコーダの中身の例 例題:この回路の真理値表を示せ E
A
1A
0 Q0 Q1 Q2 Q30 X X 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
2 進数
A
1A
0で指定される番号 n を持つ
出力
Qnが 1,その他の出力は 1 になる
デコーダと呼ばれる論理回路にはいろいろな種類がある.(特定の入力の組合せに特定の出力の組合せ を対応させる回路なので,組合せ論理回路は全てデコーダと呼んで良いことになる.) 応用例◎アドレスデコーダ
◎LED を 1 個選択して点灯させる回路
順序回路(Sequential Circuit)
,ステートマシン(State Machine)
「記憶」
(状態)を持つ
出力は入力だけでなく,状態に依存
状態遷移表,状態遷移図によって定義できる
3A
2A
E 1A
0A
CCV
3A
2A
E 1A
0A
CCV
デマルチプレクサとも呼ばれ,入力 A1A0 を2ビットの2進数と考えたとき,これと 同じ番号を持つ出力(n= A1A0)のみが1を 出力する回路である.制御入力 E が 0 のと きは4つの出力が全て 0 となる. この回路は,複数の回路ユニットの中か ら1つを選択したり,データを振り分けた りするなど,多くの用途を持つ.また,メ モリ IC 内部の番地選択にも同様の回路が 使われている.デコーダのような組合せ論 理回路の入出力関係は,入力の全ての組合 せに対する出力を表の形にした真理値表で 記述される. E A1 A0 Q0 Q1 Q2 Q3 E A1 A0 Q0 Q1 Q2 Q3 8E
=0 のときデコ
ーダとして動作
E=0 のとき動
作しない
#厳密には「ステートマシン」とは,内部の記憶素子で「状態」を表し,回路の動作を状態の遷移と してとらえる「考え方」のこと ステートマシンの出力:入力+状態の組合せ,または状態のみで定まる ミーリ・マシン:出力は「入力+状態」で定まる ムーア・マシン:出力は「状態」のみで定まる マイクロプロセッサは「大きなステートマシン」 最もシンプルなステートマシン「SR フリップフロップ」 ①NOT 回路(インバータ)をループに
Q
Q
Q
Q
1
0
1
0
0
1
0
1
(Q
,Q
)=(1,0)または(0,1)で安定し,その状態は電源が入っている間は保持される →1 ビットの記憶回路 しかし,これでは書き込みができない ②そこで,書き込み用入力を付加 ③上下対称に書き直すと, R Q Q S R Q Q S R Q Q S R Q Q S R S Q Q R S Q Q 正論理にすると, SR フリップフロップの動作 ⅰ) S =R=1,のとき状態を保持 ⅱ)SET:R=1 としたまま S を 1→0→1 とする ( Q , Q )=(1,0)になる ⅲ)RESET: S =1 のままRを 1→0→1 とする ( Q , Q )=(0,1)になる ⅳ) S =R=0 にはならないようにする(禁止入力) 正確には,「 S =R=0 の状態から同時に S =R=1 に戻すと,その後の状態は,どちらになるかわから ない」ということ. 状態遷移表St
S RSt
n+1 n+1 Q Qn+1 0 0 0 × × × ←不定 0 0 1 1 1 0 ←セット 0 1 0 0 0 1 ←リセット 0 1 1 0 0 1 ←保持 1 0 0 × × × ←不定 1 0 1 1 1 0 ←セット 1 1 0 0 0 1 ←リセット 1 1 1 1 1 0 ←保持 Fig. 1.7 0S
S
1 01/1 10/0 01/1 11/1 10/0 11/0 /Q R S 0S
S
1 01/1 10/0 01/1 11/1 10/0 11/0 /Q R S Q Q S Rこれが,フリップフロップ回路(FF)の中で
最も原始的な SR フリップフロップ
状態遷移図 S R Qn+1Qn+1回路動作の遅れとタイミング 組合せ論理回路もフィードバックを持つ回路も,入力を変化させてから,直ちに(遅れ時間ゼロで)出力が変化する わけではない.必ず出力の遅れや乱れがある.このような動的(ダイナミック)な特性を理解することは,論理回路を 設計する場合,非常に重要となる.このため,データブックなどでは Fig.1-8 に示すようなタイミングチャートで入出 力の動的な性質を示すことが多い. このタイミングチャートから,セット入力Sを 0 にしてからtsetup秒後に FF の出力 Q が 1 になることがわかる.ま た,出力を確実に変化させるためには,入力を最低 thold秒だけ 0 に保持する必要がある.このように論理回路では, 正しい出力信号を得るためには入力信号をある一定の時間保持しなければならない. Fig. 1.8 論理回路の遅れ時間 補足 フリップフロップにはいろいろな種類がある JK-FF. J K Qn+1 0 0 Qn ←保持 0 1 0 1 0 1 1 1 Qn ←反転 D-FF D CK Qn+1 0 0 ←読み込み 1 1 X 0 Qn ←保持 * ステートマシンの構成 ミーリー・マシン ムーア・マシン ミーリー・マシンとムーア・マシン,どちらを使ってもほぼ同じ機能の順序回路を作れるが,比較すると, タイミングチャートは概念図 であり,実際の電圧をオシロ スコープで観測すると,もっ と複雑な変化をしている. S R Q t setup t t hold K J Q Q K J Q Q R S Q Q CK R S Q Q CK K J Q Q CK K J Q Q CK D Q CK D Q CK クロック付 FF クロック入力(CK が 1 のときの (S,R)や(J,K)の値で状態変化 D Q D Q D Q 組み合 せ回路 状態記憶 回路 出力回路 状態遷移 回路 組み合 せ回路 D Q D Q D Q D Q D Q D Q 組み合 せ回路 状態記憶 回路 出力回路 状態遷移 回路 組み合 せ回路 D Q D Q D Q 組み合 せ回路 状態記憶 回路 出力回路 状態遷移 回路 組み合 せ回路 D Q D Q D Q D Q D Q D Q 組み合 せ回路 状態記憶 回路 出力回路 状態遷移 回路 組み合 せ回路 ミーリーマシン:入力も出力の決定に使われる →より一般的. ○ムーアマシンより少ない素子数で可能 ×非同期な入力のため不安定な動作になることも ムーアマシン:出力は状態のみの関数になる ○安定な動作 ×素子数が多くなる FF の用途 記憶:レジスタ,SRAM,ステートマシンの「記憶」 FF のことを“ラッチ”と呼ぶこともある
付録 論理回路の標準的な設計手順の例 ここでは,「紙と鉛筆を使った設計手順」を説明する。 Ⅰ. 組み合わせ論理回路 ⅰ)真理値表を作る ・・・設計データの入力・編集 ⅱ)真理値表から論理式を作る ⅲ)論理式を圧縮(簡単化)する ・・・最適化 ⅳ)論理式から論理回路の接続を決める ・・・回路合成 ⅲ)実際のゲートの配置と配線を決める ・・・配置配線 例:図のような入力 3bit,出力 2bit の組み合わせ論理回路を考える 2 I 1 I 0 I 1 O 0 O Fig. A1 設計する回路 ⅰ)真理値表を作る 2
I
I
1I
0O
1O
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 ⅱ)真理値表から論理式を作る 2I
I
1I
0O
1O
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1O
1= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅
I
2I I
1 0I
2I I
1 0I
2I I
1 0I
2I I
1 0 ⅲ)論理式を圧縮(簡単化)する 2I
00 01 11 10 0 0 0 1 0 1 0 1 1 1 ①:I
2⋅
I
0・・・I
1の値には無関係 ②:I I
⋅
・・・I
の値には無関係 標準積和形 ・出力が“1”となっているところを見つける ・そのときの入力が “1”ならば,そのまま, “0”ならば,否定して, 論理積(積項)を作る ・全ての積項の論理和を作る カルノーマップを使った論理圧縮 ・入力のビット値の組み合わせの表を作る このとき,Gray コード順に配置する ・隣接した“1”(または“0”)をまとめていく 寸法は,2, 4, 8,・・・ 1 0I I
① ② ③ “1”になっている ところの 入力の値により, 積項を作る 3 入力 AND を3 個,4 入力 OR を1 個使っ ている。NOT も必要。・・・ と続いていく。 簡単化された論理式から作った回路の図を示す。 Fig.A2 出力