HN 日本語サマリー

← 一覧へ戻る
科学・技術

Zilog Z80 が50周年を迎える

The Zilog Z80 has turned 50 (goliath32.com)

271 pointsby st_goliath106 コメント

要約

1976年7月に発売されたZilog Z80プロセッサは、50周年を迎えました。この8ビットマイクロプロセッサは、多くの初期のパーソナルコンピュータや組み込みシステムで使用され、CP/MやMicrosoft BASICといったデファクトスタンダードのソフトウェア環境の基盤となりました。Z80は多くのクローンや派生アーキテクチャを生み出し、ゲームボーイのSharp LR35902にも使用されました。Zilogは最近までZ80ベースのマイクロコントローラを製造しており、その影響は産業用途で現在も続いています。

全文翻訳

Zilog Z80 が50周年を迎える ブログインデックスに戻る はじめに 執筆時点では、Zilog Z80プロセッサは公式に50年前、1976年7月に発売されました。これは、人類が最後に月面を歩いてから4年弱後、第二次世界大戦に数十年の近さ、そしてケネディ暗殺とベルリンの壁崩壊の中間点あたり、9/11から朝鮮戦争の方が近い時期です(ごめんなさい…)。 このプロセッサは非常に成功し、初期のパーソナルコンピュータ、ホーム&ホビーコンピュータを含む多くの8ビットマイクロコンピュータ、そして多くの組み込み、産業用途で使用されました。8080および8085(これらとはバイナリ互換性があります)と共に、8ビットマイクロのデファクトハードウェアスタンダードを作り出すのに貢献し、CP/MおよびMicrosoft BASICのデファクトソフトウェアスタンダードを可能にしました。Z80自体も長年にわたり多くのクローンや派生アーキテクチャを生み出し、特にオリジナルのGameBoyに使用されたSharp LR35902が有名です。Zilog自身は最終的に16ビットおよび32ビットの派生アーキテクチャのラインを放棄し、主に産業用途での継続的な使用のために、パイプライン化され高クロック化されたeZ80のようなZ80ベースのマイクロコントローラに戻りました。 私自身は、これらのホームコンピューティングの側面(前述のGameBoyを除く)を見るには若すぎますが、産業用途での広範な使用は、オリジナルのZ80がまだ現役であり、Zilogがわずか2年前に製造を中止したことを意味します。私がZ80に初めて触れたのは、10代後半で、電子機器会社のカタログを閲覧していたときでした。まだ販売されているのを見つけて驚きました。私は自分自身の小さなZ80コンピュータを設計し、学校の先生を説得して夜間に写真ラボを使わせてもらい、PCBをエッチングしました。私の元教師の何人かが私が何をしているのか興味を持ったため、古いホームコンピュータ、コンソールに関する多くの興味深い逸話や、CP/MとWordStarを実行し、「借りた」IBMターミナルに接続して論文を書いた、Tupperwareボックスに入ったDIYワイヤーラップコンピュータの話を聞くことになりました。時間が経つにつれて、埃っぽい引き出しから古いチップのいくつかをプレゼントされ、それらは私のDIYプロジェクトに組み込まれました。これには、MCS-85パーツの数個、Z80、8085、6502、6522の数個が含まれていました。この一連の経験は、システムエンジニアリングについて多くの興味深い教訓と、いくつかの予期せぬ教訓(信頼性の高い電源オンリセットは驚くほど難しい。リンカを書くことはアセンブラを書くことよりもはるかに難しい。コンパイラを書くことは実際にできることだ)を教えてくれました。いずれにせよ、それが私がZ80について回想することを許される主張です。当初は、私自身の経験に基づいた技術的な詳細に限定するつもりでしたが、派生元である8080と比較するうちに、コンピュータ歴史博物館のオーラルヒストリーパネルのうさぎ穴に深く入り込み、関係者がこれらのチップの開発に関するさらに多くの逸話を思い出しました。「ブログ記事を(再び)書いてみよう」という考えはすぐに範囲が膨らみました。 2200から8008へ かつて、Computer Terminal Corporation (CTC) は、個々のTTLチップから構築された8ビットプロセッサを搭載した新しいプログラマブルターミナル、Datapoint 2200を製造しました。当時、IntelはCTCにシフトレジスタとメモリチップを供給していました。TTLの多数のチップをカスタムICに置き換えるというアイデアが浮上し、最終的には8ビットCPU全体を単一チップに搭載することが検討されました。このタスクには、最終的に2つの異なる会社が契約されました:Texas InstrumentsとIntel。どちらの会社も期限内に設計を完了しませんでした。Intelがチップ(当初は体系的な命名規則に基づいて1201と名付けられた)を準備したとき、CTCはすでにTTL設計に基づいたターミナルを販売していました。CTCのエンジニアもチップのパフォーマンスに満足しておらず、次の世代のターミナル向けにアーキテクチャに変更を加えていました。TIは最終的に設計を中止しましたが、Intelはバージョンを成功裏に商業化し、8008(マーケティングによって改名された4004のように)となりました。 8008 アーキテクチャ 8008は7つのレジスタを持っています:A、B、C、D、E、H、L。ここでAは指定されたアキュムレータであり、他はオペランドまたはスクラッチとして使用できます。名前が示すように、HとLはメモリポインタの高位と低位を形成します。メモリへのアクセスは、HLが指すメモリバイトを表す8番目の疑似レジスタMを介して行われます。プロセッサは、条件付きジャンプ(コールとリターンを含む)を実行できるいくつかのフラグビットで、ALUの状態(キャリー、パリティ、ゼロ、サイン)を内部的に追跡します。プログラムカウンタPCは、ほとんど直接見えません。専用の関数コール&リターン命令がありますが、プロセッサは8レベルの深さの内部リターンアドレススタックを使用します。これには理由があり、Datapoint 2200は当初シリアルメモリを使用する予定であり、メモリ内のコールスタックはパフォーマンスのボトルネックになると考えられていました。メモリのアドレスは14ビット幅で、合計32のI/Oポートを持つ別のI/Oアドレス空間があります(アドレスは常に即時であり、オペコードにビットスタッフィングされます)。割り込み処理のために、アドレス空間の先頭にある8つのスロット(0x00、0x08、0x10、0x18、...、0x38)のいずれかに呼び出す特別な「リスタート」命令があります。スロットインデックスはRSTオペコード自体にビットスタッフィングされます。割り込みが発生すると、プロセッサは周辺機器にヒントを受け取ったことを信号し、データバスの現在の内容(RST命令であるべき)を盲目的に実行します。そこから、少し複雑になります。CPUはレジスタを保存できる汎用スタックを持っておらず、すべてのメモリアクセスはHLを必要としますが、割り込みハンドラでHLを上書きしたくありません。これを解決するための意図された方法は、I/Oバス上の外部ラッチを使用し、スクラッチレジスタとして機能させることでした。全体として、アーキテクチャはかなり単純で、約3500トランジスタを必要とし、DIP18パッケージを使用しました。アドレスとデータは多重化されており、外部ラッチングが必要でした。内部デコード/実行状態が公開されており、ラッチを駆動し、プロセッサが何をしようとしているのか(メモリの読み書き、またはI/Oバスへのアクセス)を判断するためにデコードする必要がありました。プロセッサは、2つの位相シフトされたクロック信号(500kHzで動作)、+5Vの正電源、および-9Vの負電源を必要としました。 8008から8080へ Datapoint 2200から派生した8008アーキテクチャの欠点は開発中に知られており、典型的なエンジニアリングのやり方で、開発が完了する前に、改善されたアーキテクチャのアイデアが飛び交っていました。4004プロジェクトから連れてこられたFederico Fagginは、改善版の開発を開始するように推進していましたが、経営陣はまず市場が2つのマイクロプロセッサにどう反応するかを見ることを主張しました。競合他社が最終的に開発中の8ビット設計を発表し、遅延によりIntelはリードタイムを合計9ヶ月失いました。プロジェクトが最終的に承認される前でさえ、Federico FagginはBusicomからMasatoshi Shimaを8080設計のために雇う承認を得ました。多くの点でCTCが8008の開発に関与したのと同様に、Busicomは当初電卓用のカスタムチップセットを求めて4004の開発に関与していました。デモンストレーションされた8008の潜在顧客からの批判やフィードバックも、8080の設計に影響を与え、早期にバイナリ互換性を設定しないことが決定されました。 8080 アーキテクチャ 8080は本質的に8008と同じレジスタセットを持っていますが、内部リターンアドレススタックをメモリ上に存在する外部スタックに置き換えました。