ゼファーネットのロゴ

1970 年代のコンピューター: コンピューティングの一部分

日付:

HP-1000 および DEC VAX 11/730 とビデオ ゲームの Tempest および Battlezone との共通点は何ですか?あなたが思っている以上に。これらのマシンはすべて、当時の他の多くのマシンと同様に、AM2900 ファミリのビット スライス CPU を使用していました。

ビットスライス CPU は、1970 年代にしか存在し得なかった大成功を収めた製品でした。今日、コンピューター システムが必要な場合、多くの CPU があり、チップ上のシステム全体さえも選択できます。また、おそらくあなたが望むことを何でも実行できる小さなボードレベルのシステムを多数入手することもできます。 1960年代には、選択肢はまったくありませんでした。トランジスタ、真空管、リレー、あるいはおそらくは小規模な IC ゲートを使用して、ゲートを備えた回路基板を構築しました。次に、基板を配線しました。

現在入手できるような CPU チップを人々に提供できたら素晴らしいだろうということに気づくのに、天才は必要ありませんでした。問題は、当時の半導体技術ではそれが不可能であることです。少なくとも、大量のリソースがなければそれは不可能です。たとえば、14500 年に発売された Motorola MC1977B は XNUMX ビットのマイクロプロセッサで、用途はありましたが、誰にでも、すべてに使えるわけでもありませんでした。

回答

その答えは、できるだけ多くの CPU を 2900 つのチップ内で生産し、複数のチップを一緒に使用して CPU を構築できるようにすることでした。それはまさに AMD が AMXNUMX ファミリで行ったことです。よく考えてみるとCPUって何でしょうか?確かにバリエーションはありますが、基本的には、命令を保存する場所、データを保存する場所、命令を選択する何らかの方法、およびデータを操作する方法 (ALU (算術論理演算装置) など) があります。命令はデータをある場所から別の場所に移動し、I/O デバイスや ALU 演算などの状態を設定します。

<img decoding="async" data-attachment-id="665623" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/bcpu/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png" data-orig-size="785,551" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="bcpu" data-image-description data-image-caption="

AMD データブックからの基本的なビットスライス CPU

” data-medium-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=400″ data- large-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=785″ class=”size-サムネイル wp-image-665623″ src=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing.png” alt width=”250″ height=”175″ srcset=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png 785w、https://zephyrnet .com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=250,175 250w、https://zephyrnet.com/wp-content/uploads/ 2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=400,281 400w” size=”(max-width: 250px) 100vw, 250px”>

AMD データブックからの基本的なビットスライス CPU

確かに、これは単純化しすぎですが、ほとんどの従来の CPU を説明するために拡張することができます。 AMD チップは、チェーン接続できる 4 ビットのデータ パスを提供しました。ファミリ内の他のチップはメモリ (オプションで DMA を含む) を管理し、スライス間のブックキーピングを行うことができます。 8 つのスライスを備えた 24 ビット マシン、XNUMX つのスライスを備えた XNUMX ビット マシンなどを構築できます。

これにより、従来のチップを使用する場合よりも IC の数が少なくなっただけでなく、特に当時としては高速ではあるが NMOS や CMOS ほど高密度ではないバイポーラ ロジックも可能になりました。 AM2900 ファミリのようなチップを使用すると、柔軟な CPU を作成できます。これらはアプリケーションに適合し、他の方法を使用して実行できるものと比較して高速に実行されました。

マイクロコーディング

マイクロコードは多くの CPU で一般的であり、ビットスライス CPU も例外ではありませんでした。たとえば、各レジスタに個別の読み取りラインと書き込みラインがある非常に長いマイクロコード命令があるとします。 16 つのレジスタがある場合、それらのコントロールだけで 4 ビットになります。さらに、機能コード (21 ビット) と、条件コードを更新する必要があるかどうかを示すビットも含まれる場合があります。さて、各「命令」は 8 ビットです。これは、たとえば XNUMX ビット マシンでは必要以上に長いため、マイクロコードを実行する命令を定義します。

<img decoding="async" data-attachment-id="665630" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/pin2901/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png" data-orig-size="317,460" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="pin2901" data-image-description data-image-caption="

AM2901のピン配列

” data-medium-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=276″ data-large-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=317″ class=”size-thumbnail wp-image-665630″ src=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-1.png” alt width=”172″ height=”250″ srcset=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png 317w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=172,250 172w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=276,400 276w” sizes=”(max-width: 172px) 100vw, 172px”>

AM2901のピン配列

たとえば、レジ​​スタ A をレジスタ B に追加し、結果を B に残す命令には、3 つのマイクロコード ステップが含まれる場合があります。 1 つ目は、レジスタ A と B をデータ バスにゲートし、ALU に加算を行うコードをアサートします。次に、2 番目の命令は結果をデータバスに出力し、B レジスタにデータバスを読み取るよう命令します。最後のマイクロコード命令は、次の命令を読み取ってプログラムを続行するマイクロコードの主要部分にジャンプします。

これが通常のビットスライス CPU の設計方法です。 AM2909、AM2910、または AM2911 (マイクロプログラム シーケンサー) は、AM2901 チップのアレイにコマンドを供給するマイクロプログラム ストア ROM をアドレス指定します。 40 ピン AM2901 にはいくつかのバリエーション (AM2901B など) があり、それぞれに小型化と高速化を図るための技術改良が加えられています。

マイクロプログラム ストアは、命令のフェッチとその実行を調整します。おそらく、マイクロプログラムは実際のソフトウェアに比べて比較的小さいため、マイクロコードを含む ROM は実際のアプリケーションを含む ROM よりも小さい可能性があります。

協力

もちろん、チップを追加するだけですべてができるわけではありません。彼らは協力しなければなりません。たとえば、各チップにはオープンコレクタの F 出力があります。すべての F 出力をプルアップ抵抗で接続します。いずれかの CPU スライスの結果がゼロ以外の場合、F 出力がプルダウンされます。したがって、F 出力が High の場合、結果全体 (ビット数に関係なく) はゼロでなければなりません。

キャリーの扱いも問題あり。最初のスライスが 1111+0001 を加算した場合、答えは実際には 0000 ではなく、0000 + キャリーです。各 Cn+4 出力を次のチップの Cn 入力に接続してリップル キャリーを得ることができますが、これにより速度の低下が生じ、スライスを追加するとさらに悪化します。 AM2902 を使用して「先読み」してパフォーマンスを向上させることもできます。各 2902 は 16 つのスライスまたは 2902 ビットを処理できます。それ以上のことをしたい場合は、2902 つの AM64 を使用して、それぞれが 1975 つの CPU スライスを処理する最大 XNUMX つの AMXNUMX を先読みすることができます。おそらく、XNUMX ビットを超えたい場合は、このスキームをさらに拡張することも可能でしょう。ただし、XNUMX 年時点では、これほど大きなマシンを構築する上での最大の問題はなかったかもしれません。

シフトや掛け算にも協力が必要でした。シフト時に新しいビットのソースを決定するために、チェーンの両端でマルチプレクサを使用するのが一般的でした。それは必要なものに応じて異なります。

セミオーダーサービス

これは、ビット スライスの使用に関する興味深い点の 32 つです。必要なものだけをデザインできます。当面のタスクに 24 ビットが必要な場合、なぜ XNUMX ビット マシンを構築する必要があるのでしょうか?決して使用しない回転命令を有効にするためにマルチプレクサを使用する必要はありません。

最近では、私たちは構成要素を取り出して、それを問題に適合させます。 bitslice を使用すると、必要なものに正確に適合する CPU を作成できました。命令のフェッチ、乗算、バイトスワップなどのさまざまな操作を実行する方法については、多くのヒントがありました。 AM2900 データブック.

このデータブックには、AM2902 や、拡張可能なレジスタ、乗算器、除算、その他の特殊回路を搭載した 48 ピン AM2903「スーパースライス」など、必要なチップも示されています。

進化

AM2900 ファミリは非常に成功しました。オリジナルの AM2901 は、低電力ショットキーを使用する非常に大きなダイで開始され、80 ナノ秒で動作できました。 1978 年後の 2901 年までに、AM50B ダイのサイズは半分以下になり、1981 ナノ秒を処理できるようになりました。 2901 年までに、AM37C は内部で ECL を使用し、同じダイ上で 1979 ナノ秒を実行できるようになりました。 9511 年までには、浮動小数点コプロセッサ (AMDXNUMX) も入手できるようになりました。

これらは、サポートするには複数のチップが必要であり、2901 ビットを超える処理を行うには複数の AM2901 が必要なため、単純なデバイスでした。たとえば、オリジナルの AM540 には XNUMX 個のゲートしか搭載されていませんでした。しかし、それらはワークステーションや音楽シンセサイザーからビデオゲームに至るまで、あらゆるものに使われてきました。人気があったため、このデバイスには多くの二次供給業者が存在し、今でも新しい古い在庫を見つけることは可能です。ソ連製のコピーも作られた。

もっとビットスライス

AM2900 で作られた CPU の多くは独自開発または軍用でした。ただし、十分なドキュメントが含まれているものを見たい場合は、ここにあります Nova 1980 互換 CPU の実装に関する 1200 年の修士論文 テクノロジーを使用する — まあ、いずれにしても、テクノロジーの一部です。

AM2900 だけが街のゲームではありませんでした。 1974 年には、National Semiconductor の IMP と Intel の 3000 シリーズが利用可能になりました。さらに、Motorola、Texas Instruments、Fairchild、Raytheon などが同様のデバイスを製造しました。しかし、さまざまな理由から、ほとんどの人がビットスライス CPU を思い出すとき、AM2900 を思い浮かべます。実際、Nova CPU に関する修士論文には、他のビットスライス技術の表と、他のビットスライス技術を使用しなかった理由も記載されています。たとえば、一部のデバイスでは PMOS が使用されていましたが、これは低速でした。他の人は ECL を使用しました。ECL は、使いにくいという当然の評判のある高速テクノロジです。別の 論文 1976 年以降の製品には、AM2900 を選択するための同様のロジックがあります。

もっと欲しい?

[ケン・シリフ] AM2901のECLバリアントを分解しました。 そこにも 1980年の本 あなたは読むことができます。もあります Gopher サーバー上の大量のドキュメント (冗談じゃない)。あなたのブラウザが Gopher を処理できない場合は、それは私たちにとって驚くべきことではありませんが、多くのブラウザの 1 つを試してください。 Gopher プロキシ. 16 ビット コンピューターの設計例 特に一見の価値があります。もっと複雑な例が必要ですか?これは、ビットスライスで構築された超高速 8080 CPU です。もう終わり hackaday.io, [zpekic] は最近この 8080 を構築し、その上で小さな Basic を実行しました (信じられない場合はビデオを参照してください)。

[埋め込まれたコンテンツ]

Xerox Star 8010 は、 2900年のAM1981。費用は17,000ドル未満です!幸いなことに、それができます 必要に応じてエミュレートしてください。さらに言えば、次のようなことができます AM2900をエミュレートする Java を使用しますが、考えられるすべての設計で機能するとは限りません (ヒント: リリースからダウンロードしてください)。

スポット画像

最新のインテリジェンス

スポット画像