espyの日記: ハードウェア考現学 : PMOS → NMOS → CMOS の謎 1
今のロジックICは「CMOS型」… 回路が Nチャネル型MOS FETと Pチャネル型MOS FETで構成されている … が当たり前になっているが、その昔、NMOSまたはPMOSの片方しか使っていないデジタルICがたくさんあった。NMOS/PMOS LSIは、集積度が高められなかった時代の都合だとは思うが、果たしてどっちが良くてどう区別されていたのか?
'80年代、PC-8001などが出た頃の8bitパソコンのCPUはZ80やMC6809などのCPUが軒並みNMOS型だったし、私の自作したワンボード(資料(9))のZ80もNMOS型だった。2.5MHzクロックなのに、+5V電源, 200mAも消費した。(データシート値) 40ピンのICは触ると熱かった。
中学の頃、初めて買った電波新聞社のマイコンの本には、NECのTK-80と、東芝のTLCS-12A/EX5というボードマイコンの実寸大写真があった。東芝の方はCPUがPMOSだったと思う。
最初の4ビットマイコンと言われる i4004はPMOS型だったようである。また大人の科学のマイコンの原型、TMS1100もPMOS型。
つまり、PMOS全盛からいったんNMOS全盛に変わり、CMOSの時代になったということらしい。
NMOS FETは、入力(ゲート)にHighが入力されると、出力(ドレイン)を能動的にLowにする。ロジックICは HighとLowが必要だが、NMOS FETだけでは能動的にHighを出せないので、High出力はプルアップ抵抗で代用する。(資料(2),(7)) この構成ではLowを出力すると、プルアップ抵抗はただの負荷になるので、結果、LSIの消費電流は増える。
PMOS FETだけでICを構成する場合はこの逆で、つまり「能動的にHigh出力できる」「Lowはプルダウン抵抗でまかなう」となる。(資料(3)) 単に逆なので、この理屈だけで考えると PMOS/NMOSどっちでもいいじゃん、となりそうだ。
ところが、高速化・高集積化を進める点では、NMOS型の方が有利だった。(資料(5))
実際、CMOSロジックIC、CD4049UBのデータシートを見ると(資料(8))、出力がLow→Highへ変化する時間(tPLH)が60ns、High→Lowへ変化する時間(tPHL)が32nsで、NMOS FETがオンするスピードの方が速いことが分かる。
では、なぜ最初からNMOS ICを作らなかったのか。 ここまでの話で登場させた NMOS FETは、ゲート電圧を加えないときはドレイン-ソース間は全く導通しない、「エンハンスメント型」のFETだったが、初期のFETは「デプレッション型」だった。(資料(7)の図8)
先日図書館で読んだ資料によると、初期の頃はこのエンハンスメント型のNMOS FETを作り込むのが困難だったのだそうだ。
# これ以外にも、PMOSの方が動作温度範囲が広くて環境条件の厳しい組み込み機器に有利…という
# 説明を、学生の頃何かの本で読んだような記憶があるのだが、裏付けが取れなかった。
とりあえず、前からなんとなく疑問に思っていた事がようやく解決。
こんな知識は今知ってても何の役にも立たないが、講師役で話すようなとき、時間が余ったら披露したらハクが付くかもねぇ。(無駄? そうですか...)
[参考資料]
(1) PMOS logic (wikipedia)
(2) NMOS logic (wikipedia)
(3) CMOS論理回路(P-ch, N-ch ←→ スイッチ の模式図)
(4) CMOSデジタル回路
(5) なぜ、NMOSのほうがPMOSより小さい素子を実現することができるのですか?(教えてgoo)
(6) 半導体 基礎知識 FAQ(NEC)
(7) 専用プロセッサとしてのDSPの特徴 (NMOSとCMOSの解説あり)(@IT MONOist)
(8) CD4049UB CMOS Hex Inverting Buffer/Converter(Texas Instruments)
(9) Z80自作ワンボードマイコン(espilab)
P-MOSのLSIは1度だけ使ったことがありますね (スコア:2)
確か、昔は集積度を上げようとしたらP-MOSのほうが有利だったような気がしますよ。
動作速度はNMOSのほうが断然速いけど、集積度と消費電力ならPMOS有利という時代が、以前はあったはず。
P-MOSでLSIが製造されていたのは、そういう理由でしょう。LSIは最も集積度が高い回路の代名詞でしたから。
(VLSIやULSIが登場するのは、まだ先の話)
まだ子供だった頃に、P-MOSのマイクロプロセッサを搭載したカードゲームマシンを組んだことがあります。
マイナス側の電源を供給する必要があったようで、電池動作のシステムでしたが、
基板上にコイルと発振回路が載っていて、そこから負電源を作って供給していました。
変わった構成だなぁと子供ながらに思ってましたっけ。
-以下余談-
ま、初期のDRAMだって本当は3電源ぐらい必要だったのですけどね。
64kBitDRAMが製造されるようになってやっと、5V単一電源になったはず。 [rim.or.jp]
この、単一電源仕様DRAMは結構画期的だったと思います。
DRAMは呼吸(リフレッシュでコンデンサのチャージ)をする度にノイズを撒き散らして
電源ラインを不安定にするデバイスなので、当然ノイズ対策は重要なのですが、
3電源+グランドの4重配線を安定動作させるために井型にネットワーク組んで、
それぞれのDRAMに確実に供給する回路を組むことのメンド臭さときたらもう!!!
今みたいにDRAMチップ1コで1バイトとか2バイトを担当してた時代じゃないですからね、
DRAM1コで保持できるのはたった1ビットだったんですからね!
(8bitバスなら最低でも8コのDRAMがワンセットで必要になる)
確かに、そのへんの時代だと他でも多電源仕様のチップはあったわけなんですけど、
例えば8080Aは多電源仕様だったのだけどこれも使いにくかった。
今は無き「Dr.嶋さんのブログ」だったかにIntel社内で8080Aのバスについてどう考えられていたかが
書いてありましたが、「高い電圧でバスを強力にドライブすれば、動作速度を上げられるだろう」
という思想だったそうで、おかげで多電源だしTTLレベルとはかなり違うMOS特有の電位が出力されるため、
既存のTTLとのI/Fが大変。クロックも確か2相でしたよね。
(周辺に8224/8228といった専用チップ使ってCPUグループを構成するけど)
Intelをスピンアウトして作ったZ-80においては、このへんの使い勝手の悪さを、
新世代の電流ドライブ能力に優れたMOSトランジスタを採用したことで逃れることができたそうで、
気難しい信号レベルを要求されるのはクロック信号だけになって、これも8080A使ってた世代には画期的。
実はクロック入力もプルアップ抵抗1本でほぼ安定動作するし実害はほとんど無いのだけど、
そんな簡易実装方法が知れ渡ると厳密には仕様を満たしていないZ80ボードがゴロゴロ製造されることに…
[すんません、余談のほうが長くなりました(汗]