標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第1回]
なんと8ビットです。しかもTTLで!
☆☆☆ お話の途中ですが ☆☆☆
冒頭から、はやばやと、中断してしまって申し訳ありません。
じつは、…特別気にしないで、ごくフツーに「TTL」という単語を使ってきました。
74××、74LS、74HCまで総称して…。
私の頭の中では、それらは全部「TTL」で、4000番シリーズなどが「CMOS」。
74HCが、”High speed CMOS”の略だということは、当然言葉としても知っていましたし、CMOSとしての取扱いを当然のようにしてきました。
いいじゃないの、名前などどうだって。使い方さえ間違わなければ、それでいいの!
だったんですけれど…。
[第25回]まで書いてきて、「いやあ、これは、いかんわ。なんとかはっきりしておかんと…」ということになってしまいました。
いやぁ、モノを書くって、ホント、むつかしー、ですね。
正直なところ、黙って回路図を描いたりICをハンダゴテで基板にくっつけたりしてるのが一番好き。
説明書を書くのが一番嫌い。
という次第で遅まきながらも、見苦しくも、上のように見出しを訂正することにいたしました。
なんだ?そのTTLとか、LSとか、HCとかというのは…?そんなモノ、知らんぞ。
とおっしゃる方は、(ホントは、そんなことはどーだっていいことなので)気にしないで、どんどん読んでいってしまってください。
いやぁ、だめだ。気になって仕方がない。
とおっしゃる方は、先に[第25回]をお読みいただいてから、また、ここに戻ってきてくださいませ。
☆☆☆ 以上、筆者からひとこと、でした ☆☆☆ (2008.8.3追記)
いまどきふつうはFPGAなどを使うところでしょうけれど、なぜなのでしょう?
その理由については、のちほどするつもりですが、一口でいってしまえば、FPGAでは回路の中身がわからない。TTLのように実際にAND回路なりOR回路なりを目で見て確かめることができない。
それが一番の理由になると思います。この実際に目でみて確かめることができる、というのが重要なことだと思います。
さてさてしかし、TTLを使って、単なるモデル的なものではなくて、れっきとしたホンモノを作るとなると、これはハンパじゃありません。
いまどき何を酔狂な、と言われてしまいそうです。
本人はごくごくまじめなつもりなのですが…。
さすがにいきなり商品化するのはどうかなぁ、と思います。そこで、まずは情報を発信することから始めたい、と思います。
ということで、すみません。まだそのようなものをこれからつくりましょうか、という段階なのです。多分、商品化は、やっぱりムリなような気もします。結局企画倒れに終わってしまったとしても、個人的にはずっと以前からつくりたかったものですから、とにかく作り上げるだけはやってみるつもりです。
そういうわけで、まだこれこれの内容のこんなモノがある、という出来あがったものがあるわけではありません。これから作っていくわけですから、商品紹介とかカタログとかといった説明ではなく、そういったものを作り上げていく過程を紹介していくことになるかと思います。詳細な回路の技術的説明などは、もしもこのキットがなんらかの形で商品化できたときに、その説明書の中でしっかり盛り込んでいきたいと思います(回路図をきちんとしたかたちでまとめるだけでも、そうとうな作業量です。それにタイミングチャートなどをつけて解説を加えるとなると、とても1ヶ月や2ヶ月では出来そうにありません)。
逆に普通の説明書では書くことのない、製作の過程とか、試行錯誤のあれこれとか、いろいろウラのお話などを紹介しながらすすめていきたいと思います。
では、いざ、開始、です!よろしくお願いいたします!
2008.7.10開始!
2008.7.15加筆訂正
●TTLを使った組立キットで、何か面白いものはないだろうか?
当社も以前はマイコンボードの組立キットからスタートしたのですけれど、いつしか制御用のマイコンボードが主体になってしまいました。
いまどき実際にハンダゴテをにぎる人たち自体がぐっと減ってしまったようですね。時代の変化を感じます。
「トランジスタ技術」の広告もなんだかぐっと減って薄くなってしまったように思います。ことに、昔はいっぱい載っていたパーツ屋さんはほんとに数える程度。
ここ当地名古屋でも、昔は大須かいわいに、カトームセン、エイデンパーツ(ごめんなさい。エイデンパーツは確か柳橋のあたりでした)を筆頭にあちこちに小さなパーツ屋さんがありました。
日曜日ともなると狭い店内は人でごったがえし、通ることすらままならない、なんて今の若い人たちには想像もできないでしょうね。
秋葉原の向こうをはって、名古屋の「ラジオデパート」よろしくスタートした「アメヨコビル」も今ではアパレルに占領されてしまって昔日のおもかげはどこにもありません。
かって「明治は遠くなりにけり」という言葉がありましたが、ほんとうに「昭和は遠くなりにけり」という感があります。
最近あちこちで、「いまどきの人はものを作ろうとしない」という言葉をよく聞くようになりました。
Windows全盛の今日、はやるものといえばゲームばかり。それもみーんなバーチャル。ゲームに限りません。技術の世界にまで、「仮想世界」がひろがってきてしまいました。
いまどきわざわざハンダゴテをにぎって基板にTTLやら抵抗やらトランジスタやらを並べなくたって、全部パソコン上でバーチャルに体験できてしまうのだそうですけれど…。
確かに基本的な技術が理解できている本職の技術者などが実際に製作する前にパソコン上で回路のシミュレーションを行ってその回路の動作を確認する、ということなどは意義なりメリットなりがおおいにあることなのでしょうけれど、これから技術を学ぼうという人とか、趣味や教養として楽しみながら何かをつくってみたい、と考える人にとっては、バーチャルでは本当の技術は身につかない、あるいは本当の面白さはわからない、と思うのですが…。
それはそうだとしても、なにもいまさらCPUを作ったりしなくっても、たとえば定番の周波数カウンタとかデジタル時計などでもよいのでは?
それも、考えてみました。でも、それだって、いまどきは、わざわざTTLで作らなくったって、PICでできてしまうじゃないの、というあたりに落ち着いてしまいそうです。
地球温暖化が叫ばれる今日このごろなのですけれど、ある意味、非常に温度の低い世界を今生きているような気がします。
たしかに、デジタル時計あたりが手ごろなのでしょうけれど、もう少し、なんというか、こう、熱くなれるものがほしい。と思います。
「昔人間」なのでしょうかねぇ。やっぱりPICで時計を作ったりカウンタを作ったりしても、何か物足りないような気がします。
あくまで、実用として、効率なりコストなりを考えたならば、いまどきTTLでつくるよりも、やっぱりPICだ、ということになるのでしょうが、ほとんどの方は、実用というよりも、つまり「必要だから作る」のではなくて、いわば「趣味」なり「教養」として作ってみよう、ということになると思いますから、それなら、PICにソフトを書き込んでちょいちょいで出来た出来たというよりも、TTLを基板に並べて、ハンダゴテで組む方が楽しい、と私は思うのですけれど…。
そう、デジタル時計の組立キットもいい。いずれ企画してみようと思います。
しかし、個人的には、TTLで時計や周波数カウンタを作ってみたって、それじゃなんとも物足りない。今ひとつ気乗りがしない。
もう少し、こう、「やったぞー」と思えるものはないだろうか?
2008.7.10追記
2008.7.15加筆訂正
●コンピュータをつくろう!
今となっては、はるかな昔、私がまだ独身のころのお話です。
当時はIBM、富士通、NEC、東芝、日立、三菱電機といったそうそうたるメーカーが、大企業だけではなくて、中小企業にまで競ってコンピュータを売り込みはじめた時代でした。
たまたま当時私が在籍していたある会社でも、富士通の最新鋭コンピュータが導入され、給与などの事務計算はCOBOLを使い、技術計算にはFORTRANを使って、しかもなんと同時に3つまでの作業をこなせる、という、今では当たり前ですが、当時としては目をみはるような技術を目の当たりにして、なんとも興奮したものです。
プラモデル作りにも飽きてきたし、まあ、そんなトシでもないし、といった時期だったので、当然といえば当然、愚かといえばもちろん愚かのきわみで、「コンピュータを自作してみたい!」などと妄想するようになりました(ばかですよね)。
さっそく丸善だったかに行って、コンピュータの原理とかなんとかというようなもっともらしい本を買い込んできて、よーし、作るぞー!なんて、ひとり力んでいました。
いまから思うとどなたがお書きになったものか、ロジックの説明をなんとリレーを使って説明している(!)という、さすがに当時としても年代モノの解説書だったのですが、当時の私はまったくの電気オンチだったものですから、その解説をまともに信じて、「そうか、そうかAND回路というのは、こーいう風にリレーを並べて作るのか」などとわかったつもりになって、「しかし、すると、FORTRANが動くコンピュータを作るにはリレーがいったい何個あったらよいのだろう?」「これは、ひょっとすると、ちょっと個人ではムリなのでは…」などとまじめに心配したりしたものです。
いくら脳天気な私でもさすがに心配になって、当時職場でハムをやっていると聞いていた先輩に相談をしてみました。
「あのう、リレーでコンピュータを作るとすると、いったい幾ら位かかるのでしょうか?それって、小遣いでは、多分、ムリ、ですよね、やっぱり」
当時、富士通のシングルタスクの小型コンピュータの月額レンタル料が数十万円、前述のマルチタスクのそれは月額100万円ほどもすると聞いたように記憶しています。
さすがに先輩も言うべき言葉を失って、しばし無言、でした。
でも、実に誠実、まじめな方でしたので、親切に指導してくれました。
今はリレーなどではなくて、TTLという進んだモノがある。TTLは電流を食うが、省電力なCMOSというものもある。しかしそれを使ったとしても、コンピュータを作るのは、キミには悪いが、多分無理だと思う。
が、とにかく、まずはデジタル時計をTTLかCMOSで作ることから始めてみたらどうだろうか。
そうそう、いい雑誌があるから、君にはちょいと難しいとは思うけれど、読んでみたら。
CQ出版の「トランジスタ技術」でした。
この先輩と、そして、この雑誌との出会いがその後の私の人生を決めてしまうことになりました。
●マイクロプロセッサ[インテル8080]との出会い
この先輩の手取り足取りの指導もあって、なんとか「トランジスタ技術」の記事が幾分かでも理解できるようになりました。
自分で回路を考えて、OKIのCMOSゲートIC(4000番シリーズ)とトランジスタを使ってタイマーとAMラジオまでついたデジタル時計をつくるまでになりました。
そんなころ、「トランジスタ技術」にマイクロプロセッサを使った小型コンピュータ回路の製作記事なるものが載りました。インテルの8ビットCPU8080の記事でした。
これは衝撃的な記事でした。コンピュータが自作できる!!
なにか、全身の血が沸騰するような衝撃でした。
さっそく秋葉原のパーツ店の広告を調べてみると。
ありました!店頭価格1個1万円!
しかし…。さすがに、これは、ちょっと高い…。
それから、ほどなくして、「トランジスタ技術」掲載のパーツ店の広告で、特価CPUをみつけました。7000円!これは、安い!
ちょうど出張で東京に行く機会を逃さず、仕事などそっちのけで秋葉原に急行しました。
なにか田舎の駄菓子屋みたいな小さな店で、それも確か一日数時間しか開店しなかったように記憶しています。それなのになんとお客の多いこと!
しかし、こんな小さな店で、他店よりも3割も安いなんて、大丈夫か?おまけによくよく見るとインテルの製品ではないらしい。8080ではなくて9080だったか、そんな品名。今から思うと、確かメーカーはAMDだったようですけれど、そこはもう記憶も定かではありません。なんでもインテルのセカンドソースだとかで、それで安いのか!
お店の人の話では、いやあ、来年になれば、きっと5000円を切りますよ!
そのお店は「信越電機」といいました。今の「秋月電子」です。
どんな用件で出張したのか、まったく思い出せないのですけれど、そのときそこでその8080のセカンドソースを7000円で購入して帰ったことだけは、それこそ、ついこの間のことだったかのようにはっきりと覚えています。
当時としては画期的な製品だった8080でしたが、それでももちろんこのCPU単体では何もできず、少なくともCPUにクロックを供給する回路と、メモリなるものが必要であることくらいは事前に記事で理解していましたので(このことは当時の8080だけではなくて、今日のペンティアムでも概念としては同じです)、CPUといっしょにメモリも購入しました。メモリもCPUに劣らず高価なものでしたが、これも「信越電機」で特価品のメモリをみつけて購入しました(なんと、スタティックではなくて、数ミリ秒ごとにリフレッシュなる動作が必要な、ダイナミックメモリだったのです!)。
2008.7.10追記
2008.7.15加筆訂正
●ついにコンピュータ完成、か?
その後、「トランジスタ技術」の記事を参考に、悪戦苦闘の末、どうにか動くコンピュータ的(?)なものをとりあえずは完成させました。
メモリーはというと、もちろんROMなどという高級なものはなく、信越電機で購入した4Kビット×1だったか1Kビット×1だったかのダイナミックRAMを8個並べただけで、それにアドレスバスとデータバスに取り付けたトグルスイッチをパチパチさせながら1バイトずつ命令を書き込んでいくという、なんともローテクきわまりない「コンピュータ」の完成でした。
おまけにCPUクロックの回路もいいかげんなら、ダイナミックRAMのリフレッシュ回路もいいかげんなものでしたから、本当に動いているのやら、適当に暴走しているのやら、それすらも定かではないという、お粗末なシロモノでした。
勢い込んで作ってはみたものの、なんだ、こんなものか、これじゃあ、とてもFORTRANは走りそうにない(そりゃあ、当たり前でしょうよ)、てなわけでやがて押し入れの中のガラクタ箱の中に埋没する運命となってしまいました。
やっぱりコンピュータの自作なんて、夢物語なのさ、と、まあそんな次第で、コンピュータ自作熱もいつしかさめて、そのままごくフツーの人生を歩んでいけるはずだったのですけれど…。
●あの、TK80が!
私も人並みにトシをとって、人並みに結婚し、というわけで、ごくごく人並みな人生を歩きかけていたのですが、しばらくコンピュータから遠ざかっているうちに、世の中がやたら騒がしくなってきました。
NECがあの8080を使ったワンボードのコンピュータを売り出したそうな。それがまあ、たいそうな人気で、なんでも一台7〜8万円もするらしいというのに、中学生が現ナマを持って秋葉原に行って、それを買っていくんだそうな。などというニュースがテレビで報道されたりするようになりました。
NECのTK80の登場です。
ワンボードのコンピュータといったって、16進コードを入力するキーボードと、データを表示する7セグメントのLEDがついただけで、いまどきのパソコンとはおよそかけ離れたものでしたが、なんたってプログラムが組める!そこが電卓と一番違う!いよいよ個人の世界にもコンピュータ時代の到来か!などとマスコミがあおったせいもあったのでしょうか、ちょいとしたマイコンブームとなって、NECは各地にビットインなるショップを立ち上げるわ、I/O(アイオー)とかマイコンとかといったマニア向けの雑誌が相次いで創刊されるわ、で、せっかくおさまっていた私のコンピュータ熱にも再び火がついてしまいました。
そうはいっても結婚したての安サラリーマンに7〜8万円もするボードが買えるわけもなく、ビットインへ行って展示してある実物をさわってため息をつくのがせいぜいで、それでもせめて未練とは思いながら、別売していた、TK80の取扱説明書だけを購入して帰りました。
当時はなんともうれしい時代で、その取扱説明書には、なんと回路図がついていたのです!し、しかも、TK80のROMに書かれているモニタプログラムのリストまで(!)公開されているではありませんか!ご丁寧にもアセンブラのニモニックで書かれたソースリストとその16進コードまで、アドレスとともに表記されていたのです!
おおお!これならば!7万円出して買わずとも、作れる!TK80と同じものを作ってしまうことができる!
もちろんTK80と同じパーツを使えば、やはりそれなりの出費は避けて通れない。しかし、そこは、かっての電気オンチだったころの私ではない!ジャンク屋をあさったり、秋葉原の格安パーツ店の広告を目を皿のようにして調べたり、そして回路もなるべく安上がりになるように、余計な部分は省いてしまって、相当に安いけれどもTK80とほぼ同じ動作をするボードを、今度こそ本当に自作することに成功したのでした。
●そして、BASICが!おお!動いた!
そこからは、一気にマイコンボードの世界に埋没して行ってしまいました。
「トランジスタ技術」だけではなくて「I/O(アイ・オー)」には毎号マニアックな製作記事やらいろいろなプログラム(もちろんマシン語)が紹介されていました。一般のTVを利用して、そこに文字を表示するディスプレイインタフェース回路だとか、わずか2〜300バイトで整数演算しかできないものの、ちゃんと加減乗除やIFやGOTOまでそなえたれっきとした高級言語のソースプログラムリストまで紹介されました!確か、パロアルト版とか電通大版とかといわれていたようでした。BASICの登場です。
さっそく雑誌掲載のリスト通り、マシン語コードを打ち込んで、試してみたところ、おお!動いた!できた!できました!FORTRANにははるかに及ばないとは言うものの、でもなんとなくFORTRANに近いにおいのするBASICが、自作マイコンの上で動作したではありませんか!
やがて8080よりもシンプルな回路で動作し、マシン語コードレベルでは8080と完全な互換性を有しながら、さらに8080に倍加する豊富な命令をもったZ80がザイログ社から発売され、それを組み込んだそれこそ本物のパーソナルコンピュータが、NECからはPC8001として、シャープからはMZ80として売り出されることとなります。
かく言う私も、浮動小数点演算までできるオリジナルのBASICボードの製作へと没頭していくことになります…。が…。
2008.7.10追記
2008.7.15加筆訂正
●本当に作りたかったのは、こんなモノではなかったはず…
自作のオリジナルBASICを搭載した組み込み用Z80ボードを売り出したところ、なかなかに好評で、求めに応じていろいろな機能のボードを製作したり、ソフトをグレートアップしたりと、多忙をきわめる毎日で、以来ずっと、それこそ土曜は当然のこと日曜だって休めない、などという毎日の連続でした。
最初は趣味ではじめたはずのマイコンボードだったのですが、メシのタネになるにつれて、個人の好みなどとは関係なく、ひたすら顧客の求めに応じたものを製作するようになったのですけれど、まあ、それは当たり前といえば当たり前の話で、これで文句を言ったりしたら、それこそバチがあたるというものです。
いつしか気がついたら、不惑などはもう、忘れてしまったほどの、とうの昔に過ぎてしまって、今や老兵は語らず、ただ消え去るのみ、といったトシになってしまいました。
本当に、語らず、消え去ろうと、半ば本気で考えていたのですけれど、まてよ、何か、まだ、やり残したことがあったような…。
そう、そうなのです。ずっと、頭のすみのどこかにあった、そのひとことが。
昔、うんと若かったころに、本当に作りたかったのは、「こんなモノではなかったはず…」。
FORTRANは走らなかったけれど、その親類のようなBASICは自前のオリジナルでカラーグラフィックから倍精度浮動小数点演算までサポートするものを作り上げたわけですから、8ビットではあるけれど、パーソナルコンピュータを自分で作ってしまった、と言えないことはありません。確かに。CPUを除いては。です。
そう、つねにここはブラックボックスでした。
そのつねにブラックボックスであった、CPUこそがまさに作りたかった肝心かなめの部分だったことに、今ようやく思い至りました。
CPUがなければコンピュータもタダのハコ、に過ぎません。CPUこそが、コンピュータなのです。
●今こそ、CPUをつくろう!
そこで、今こそ、CPUを作ろう!というわけです。
でもなぜ、FPGAなどではなくて、TTLで、なのでしょう?
その答えは、最初のところでも少し書きました。
FPGAにせよ、CPLDにせよ、機能的にみれば、プログラム的に結合可能なTTLの集合体とみなすことができるでしょう。
でも、それは、16pinや18pinのあのTTLとはおよそ似ても似つかぬものです。
専用のライターソフトを使って、あそこをこう、ここをこう、と記述して、結果として8080やZ80と同じ動作をするものを作り上げたとしたとしても、それって、バーチャルとどこが違います?
いやいや、バーチャルなんかではなくて、ちゃんとほらこの通りZ80と同じ動作をしてるでしょう、といくら言ってみたところで、肝心のそのFPGAの中身は本当のところ、やっぱりブラックボックスなのではありませんか?
それにせっかく自前で作ったとしても、40pinが100pinとかなんとかに増えるだけで、やっぱり同じような外観の、LSIにすぎません。
個人的には、どうもそれでは面白くありません。
作るんだったら、やっぱりTTLでなくっちゃあ。
と思います。
2008.7.10追記
2008.7.11一部変更
2008.7.15加筆訂正
2008.8.3加筆訂正
次へ