実際、WDCからの実際のデザインノートが利用可能でない限り、質問はタイトルフィールドには長すぎます。「正確には、欠点は何ですか。 16ビットデータバスおよび/または非多重化アドレスバスを備えたバージョンのWDC65816を、それらがもたらす利点と比較して持つことのメリットは?」
WDCのすべての(非ソフト¹)バージョン私が知っている65816には、8ビットのデータバスとアドレスバスの上位8ビットがデータバスピンで多重化された外部インターフェイスがあります。したがって、16ビットのデータアクセスには2サイクルが必要です(例:mビットが設定されたdivid = “c619c4cdcd”>
と、アドレスラインの上位8ビットをラッチするための外部ロジックが必要です。これにより、追加のタイミング制約が発生する可能性もあります。 。
これにより、チップを40ピンパッケージに収めることができます。これは、利用可能にするための合理的なオプションのように見えますが、より大きなパッケージのバージョンも排除するものではありません。 4年前、モトローラ68000は、個別の24ビットアドレスと16ビットデータバスを備えた64ピンDIPパッケージで最初に利用可能になったため、これをリーズナブルなコストで実現するテクノロジーは長い間利用可能でした。そしてもちろん、それ以来、他の多くのピン数の多いパッケージが一般的になりましたが、今でもWDCは44ピン(PLCCおよびQFP)パッケージよりも大きいものを提供していません。
40ピンパッケージも提供していません。 Intel 8086のように、16ビットの外部データバスを20ビットの外部アドレスバスに多重化して、完全な16ビットの外部データバスを使用することはできません。これは、8ビットと16ビットのデータバスバージョンを別々に製造する必要があることを意味する必要はありません。1990年にMotorolaはMC68008(8ビット外部データバスを備えた68000)をMC68HC001に置き換え、外部データバスの選択を可能にしました。リセット時の幅。
では、他の初期の16ビットCPUベンダーが提供しているように、「フル16ビット」外部インターフェイスが今日でも不足しているのはなぜですか。さまざまな形式の完全な16ビット外部インターフェイスのどのような欠点が欠けていますか?
¹つまり、FPGAやASICコアとは対照的に、すぐに購入できるチップです。好きなパッケージに自分を統合します。
コメント
- retrocomputing.stackexchange.comも参照してください。 / questions / 6124 / … 。これは、プロセッサ固有の観点ではなく、より一般的な観点から同じ質問を効果的に行います。
回答
65816には物理的に8ビットのALUがありますが、内部レジスタの多くは16ビット幅になっています。したがって、16ビットモードで各ALU演算を実行するには追加のサイクルが必要であり、これにより、データバスを介して追加のデータを取得するために必要な時間が与えられます(インターフェイスは非常に簡単です)。
WDCが組み込みシステム開発者に提供している65816コアのセミカスタムバージョンであっても、16ビットデータバスを公開できるコアの一部ではありません。
もちろんです。より広いALUと外部データバスを備えた新しいコアを設計できるため、16ビット動作でより高いパフォーマンスを発揮します。パイプラインとキャッシングを導入して、パフォーマンスをさらに向上させることも可能です。ただし、結果は65816ISA互換になります。それは65816ではありません。また、より大きく、より多くの電力を消費し、より高価になり(特に、より広いバスを公開するために必要なより複雑なパッケージのため)、 愛好家にやさしくありません。
コメント
- データシートによると( datasheets.chipdb.org/Western%20Design/w65c816s .pdf )、W65C816には完全な16ビットALUがあります。
- @StarCat興味深い点。しかし、命令のタイミングを見ると、なぜわざわざ悩むのだろうかと思います。8ビットのALUで実際にうまくいくように見えます。 (
INX
のような命令でもまだ2サイクルです。)おそらく、プログラマーの’の見方は16ビットであると述べています。プログラマが Z80 ‘ s 4を見つけるのと同じように、ビットALU(つまり、16ビットの追加命令などがあります) -ビットALU は8085 ‘の8ビットALUと区別できませんか? - 65816には16ビットALUがあります。これは、ネイティブモードとエミュレーションモード(8ビットオフセット)で同じように機能するブランチを比較するときに最も顕著ですが、これはエミュレーション(および65C02)でも発生しますが、ネイティブモードでのページクロッシングに対するペナルティはありません。これは、すべての直接ページ操作でも同様に表示され、ペナルティなしでページクロッシングも処理します。エミュレーションモードのDPは、DHがiv id = “b99b3bb142]しないので、ここでALUが’を8ビットに単純に下げることをさらに示しています’ “>
ゼロに設定する必要はありません。btuは無視されます。
回答
65816は、既存の6502顧客へのアップグレードパスとして意図されています。 8ビットを維持することは、ユーザーの観点からは賢明な決断でした。
- 既存のデザインを簡単にアップグレードできます
- 既存のソフトウェアと完全に互換性があります
- 標準40ピンパッケージは貫通穴が少なくて済み、取り扱いが安価です
- 拡張アドレス範囲を使用するために必要なラッチは1つだけです
- 標準の8ビット外部コンポーネントのみが必要です
特に後者は、コストを考慮する上で重要です。穴を開けるのに時間がかかり、コストがかかるため、すべての穴を製造することが重要です。 1983年には、16ビットコンポーネント(RAM / ROM)はかなりまれで、高価でした。 8ビット設計では、必要なサイズだけで多数の標準(EP)ROMおよびRAMチップが定義されましたが、16ビットデータバスには常にそれぞれ少なくとも2つが必要です。結局のところ、過去のプロトタイプ状態の設計はコストに敏感ではありません。65xxシリーズは常に低コスト/組み込みアプリケーションを対象としていました。実際、そのターゲット市場は、8080 /のアップグレードパスとして8086で想定されていたIntelによく似ていました。 85ユーザー。
16ビットCPUを設計して8ビット互換(* 1)にしたIntelとは異なり、WDCは8ビットのままであり、開発が簡素化されたため、CPU設計に適していました。
- 基本的な内部構造は65C02から維持できます
- 基本的なアドレス生成に変更はありません
- ワード内のバイトにアクセスするために8/16ビットバスプロトコルを追加する必要はありません
- 命令キュー管理の必要はありません
そのルートをたどると、プロジェクト全体は、WDCのような小さな会社が提供できるリソースで処理できるほど小さく保たれました。将来のリスクがあります。
比較的簡単に作成できることに加えて、16ビットバスを使用しても、最初に想定したほどの利益は得られません。結局のところ、パフォーマンスはメモリ帯域幅に大きく影響しますね。8088と8086は、どちらもまったく同じEU(Execution Unit; * 1)を使用し、バス幅がBIU(BIU)だけ異なるため、ここでは優れたベンチマークです。バスインターフェイスユニット)はメモリへのアクセスに使用します。理論的には、8086は同じクロックレートで帯域幅を2倍にするため、約2倍のパフォーマンスを提供するはずですが、実際のパフォーマンスの向上は約30〜40%です。これはBIUとしてさらに注目に値します。デザインは100%に近いバスを利用するのに非常にうまく機能します(* 2)
したがって、バス幅を2倍にすると、常に2倍未満の速度が得られますが、デザインのクロック周波数を2倍にするだけでうまくいきます。不確実性はありません。1983年までに、メモリは4 MHz 6500スタイルの設計を容易に実現できるようになり、ジッタなしでスループットが4倍になりました。
結論:8ビットを維持することで、不要な労力とコストを回避しながら、設計とユーザーに多くの利点をもたらしました。
最後になりましたが、副作用として65802を追加で作成し、既存の65C02デザインで16ビット機能を使用するための代替品を提供することができます。
* 1-ほとんどの場合、EUは8086の「実際の」CPUコアと見なすことができます
* 2-これの多くはシングルバイトアクセスによるものですが、同様にアラインされていないメモリワードとジャンプターゲットによって、16ビットバスが8ビット動作に減速します。新しいソフトウェアはこれを考慮に入れることができますが、既存のソフトウェアは考慮しません。ここでの最悪の例はApplesoftBASICであり、ほとんどすべてのゼロページのポインタが奇数アドレスにありました。 8ビットの場合は誰も気にしませんが、16ビットの場合は致命的です。
回答
8ビット外部データバスの利点と、アドレスバスの上位8ビットの多重化65816の最初のリリースは明らかなようです。実際には、チップには2つのバージョンがありました。質問で説明したW65C816SとW65C802です。 ウィキペディアによると、
[The] 65C802 …内部は65C816。両方とも同じ製造ラインで製造され、チップが外部ピンに接続されていた最後のメタライゼーション段階でのみ分岐しました。 65C802では、これらのピンは元の6502と同じレイアウトでした。これにより、CPUの16ビット処理を使用しながら、ドロップインの代替として使用することができました。ただし、元のピン配置を使用したため、アドレス指定ピンは16個しかなく、したがって64kBの外部メモリにしかアクセスできませんでした。通常、ハードウェアメーカーがプロジェクトをゼロから設計する場合、65C802ではなく65C816を使用したため、後者は本番環境から削除されました。
しかし、これは、65802が廃止された後も65816のすべてのバージョンが外部8ビットインターフェイスを使用し続けた理由を説明していません。
回答
答えは簡単だと思います。現在、このようなバージョンの65C816は必要ありません。65C816の製造元であるWestern Design Center(WDC)は、IPとIoTに重点を置いています。「新しい65C816」の製品はチップとパッケージの改訂には明確なビジネスケースがありません、IMHO。
もう1つの質問は、「80年代に16ビットデータバスバージョンがなかった理由」です。合理的な説明は次のとおりです。それは一連の外部イベントでした。市場はおそらくWDCの予想よりも速く動いていました。80年代の前半、65C816が導入されたとき、8ビットデータバスはbに適合しました。すでに6502チップ用に設計されたシステムよりも優れており、市場は16ビットデータバスを要求していません。その後、16ビット周辺機器が利用可能になったとき、65C816メーカーは「次世代」CPUを間に合わなかったため、Apple(// GS)やNintendo(SNES)などの最大の顧客は、より優れた、より高速なものに移行しました。 。新世代のハードウェアを設計した場合のプロセッサ(Motorola、NEC MIPSなど)。この動きにより、「16ビットデータバス65C816」は独自に作成される前に廃止されました。
コメント
- Appleは決してより優れた高速プロセッサに移行しました”; IIgsはAppleIIのラインの終わりであり、1992年まで’ 816を使用し続けました(AppleはMacで68000を使用しましたが、その決定は1980年後半、’ 816が開発を開始するずっと前に。)そして任天堂は、早くても1988年までSNESの開発を開始しませんでした。’ ‘ 816のリリースから5年後。
- 確かに、MacとIIは異なる開発です。また、わずか125万台のApple IIgsの成功にもかかわらず、Appleは最大の顧客とはほど遠いものでした。 SNESの数はクローンを除いて約50Mです。そして、その地域には他にもかなりの数の組み込みアプリケーションがあります。一般的に、デスクトップコンピュータはおそらく私たちにとって6502の最も目に見える使用法でしたが、それらは全体として最も重要性の低いものの1つです。 Commodore、Apple、BBCなどをすべて追加しても、これまでに構築されたすべての65xxxコアの1%未満しか使用しません。
回答
65816ベースのマイクロコントローラーである W65C265S は、24bアドレスバス全体が公開されており、個別の8bデータバスがあります。
そして、明確にするために、「265Sは65816ではありません」。それは非常に非常に近いです。ただし、オンボードの周辺機器とデコードロジックに耐えることはできませんが、「265Sコードをボックスストック65816と互換性がない」可能性のあるいくつかの異なる割り込みベクトルがあります。