Warum ist ' nicht das WDC 65816 verfügbar in “ extern ” 16-Bit-Versionen?

Sofern keine tatsächlichen Designnotizen von WDC verfügbar sind, ist die Frage für das Titelfeld wirklich zu lang: „Was genau sind die Nachteile? eine Version des WDC 65816 mit einem 16-Bit-Datenbus und / oder einem nicht gemultiplexten Adressbus im Vergleich zu den Vorteilen zu haben, die diese bieten würden? „

Alle (nicht soft¹) Versionen des WDC 65816, von denen ich weiß, dass sie eine externe Schnittstelle mit einem 8-Bit-Datenbus und den oberen 8 Bits des Adressbusses haben, die auf den Datenbus-Pins gemultiplext sind. Somit sind zwei Zyklen für 16-Bit-Datenzugriffe erforderlich (z. B. LDA mit gesetztem m -Bit) und externer Logik sind erforderlich, um die oberen 8 Bits der Adressleitungen zwischenzuspeichern, was ebenfalls zusätzliche Zeiteinschränkungen einführen kann

Dies ermöglicht es dem Chip, in ein 40-Pin-Gehäuse zu passen. Dies scheint eine vernünftige Option zu sein, schließt jedoch nicht aus, dass auch eine Version in einem größeren Gehäuse vorhanden ist. Vier Jahre zuvor wurde das Motorola 68000 erstmals in einem 64-poligen DIP-Paket mit separaten 24-Bit-Adress- und 16-Bit-Datenbussen angeboten. Die Technologie, um dies zu angemessenen Kosten zu tun, war also schon lange verfügbar. Und seitdem sind natürlich viele andere Verpackungen mit hoher Pin-Anzahl üblich geworden, doch selbst jetzt bietet WDC nichts Größeres als 44-Pin-Pakete (PLCC und QFP).

Auch ein 40-Pin-Paket nicht verhindern, dass ein vollständiger externer 16-Bit-Datenbus wie beim Intel 8086 vorhanden ist, dessen externer 16-Bit-Datenbus auf den externen 20-Bit-Adressbus gemultiplext wird. Dies muss nicht einmal bedeuten, dass separate 8- und 16-Bit-Datenbusversionen hergestellt werden müssen: 1990 ersetzte Motorola den MC68008 (einen 68000 mit einem externen 8-Bit-Datenbus) durch den MC68HC001, der die Auswahl eines externen Datenbusses ermöglichte Breite beim Zurücksetzen.

Warum fehlen bis heute externe „vollständige 16-Bit“ -Schnittstellen, wie sie von anderen frühen 16-Bit-CPU-Anbietern angeboten werden? Welche Nachteile für die verschiedenen Formen der vollständigen externen 16-Bit-Schnittstellen fehlen mir?


¹I., Chips, die Sie von der Stange kaufen können, im Gegensatz zu FPGA- oder ASIC-Kernen, die Sie können Integrieren Sie sich in ein beliebiges Paket.

Kommentare

Antwort

Der 65816 verfügt physisch über eine 8-Bit-ALU, obwohl viele der internen Register jetzt 16 Bit breit sind. Es dauert daher einen zusätzlichen Zyklus, um jede ALU-Operation im 16-Bit-Modus auszuführen, und dies gibt hilfreich die erforderliche Zeit, um die zusätzlichen Daten über den Datenbus zu erhalten (der sehr einfach zu verbinden bleibt).

Dort ist kein Teil des Kerns, in dem ein 16-Bit-Datenbus verfügbar ist, der verfügbar gemacht werden kann, selbst in den semi-benutzerdefinierten Versionen des 65816-Kerns, die WDC noch für Entwickler eingebetteter Systeme anbietet.

Dies wäre natürlich der Fall Es ist möglich, einen neuen Kern mit einer breiteren ALU und einem externen Datenbus und damit mit einer höheren Leistung bei 16-Bit-Operationen zu entwerfen. Es wäre sogar möglich, Pipelining und Caching einzuführen, um die Leistung weiter zu verbessern. Das Ergebnis wäre jedoch nur 65816 ISA-kompatibel. Es wäre kein 65816. Es wäre auch größer, leistungshungriger, teurer (nicht zuletzt aufgrund des komplexeren Pakets, das erforderlich ist, um den breiteren Bus freizulegen) und viel weniger hobbyfreundlich.

Kommentare

  • Laut Datenblatt ( datasheets.chipdb.org/Western%20Design/w65c816s .pdf ), der W65C816 verfügt über eine vollständige 16-Bit-ALU.
  • @StarCat Interessanter Punkt. Wenn ich mir die Unterrichtszeiten ansehe, frage ich mich, warum sie sich die Mühe machen sollten: Es sieht so aus, als könnten sie mit einer 8-Bit-ALU tatsächlich gut auskommen. (Sogar Anweisungen wie INX sind immer noch zwei Zyklen.) Vielleicht geben sie an, dass die Ansicht des Programmierers ‚ eine 16- ist. Bit-ALU (dh es gibt 16-Bit-Anweisungen zum Hinzufügen usw.), ähnlich wie ein Programmierer die Z80 ‚ s 4 findet -bit ALU nicht von der 8-Bit-ALU des 8085 ‚ zu unterscheiden?
  • Der 65816 verfügt über eine 16-Bit-ALU. Dies ist am deutlichsten sichtbar, wenn Zweige verglichen werden, die sowohl im nativen als auch im Emulationsmodus (8-Bit-Offset) gleich funktionieren, aber im nativen Modus keine Strafe für das Überqueren von Seiten erhalten, während dies in der Emulation (und auf dem 65C02) weiterhin auftritt. Es ist auch bei allen direkten Seitenoperationen sichtbar und behandelt das Überqueren von Seiten auch ohne Strafe.DP im Emulationsmodus zeigt weiter, dass hier die ALU einfach ‚ ‚ auf 8 Bit heruntergefahren wird, wie DH es nicht tut ‚ muss nicht auf Null gesetzt werden, BTU wird ignoriert.
  • @StarCat Das vollständige Anführungszeichen lautet: “ Vollständige 16-Bit-ALU, Akkumulator-, Stapelzeiger- und Indexregister “ – die möglicherweise nur ungeschickt geschrieben sind, aber zu implizieren scheinen, dass nur Register 16 Bit breit sind. Die Leistungsmerkmale einer 16-Bit-ALU sind in dieser CPU jedoch nicht leicht zu beobachten, da die meisten Operanden (einschließlich Speicheradressen) jeweils 8 Bit aus dem Speicher geladen werden müssen. Selbst wenn die volle Breite der ALU für Adressierungsmodusberechnungen verwendet wird, stelle ich fest, dass Direktmodus-Zugriffe eine 1-Zyklus-Strafe erfordern, die mit einer 8-Bit-ALU übereinstimmt, wenn der DPR nicht seitenausgerichtet ist.
  • @Raffzahn Bei 16-Bit-Indizes muss eine vollständige 16-Bit-Addition zwischen der Basisadresse und dem Indexoffset durchgeführt werden. Es scheint, dass dies nicht gestartet werden kann, bis die Basisadresse vollständig geladen wurde, möglicherweise aufgrund eines Mangels an internen Registern. Dass es dann zwei Zyklen für eine 16 + 16-Addition dauert, aber nur einen Zyklus für eine 16 + 8-Addition, zeigt, dass für diesen Zweck ein 8-Bit-Addierer mit Übertragungsausbreitung im oberen Byte verwendet wird.

Antwort

Der 65816 ist als Upgrade-Pfad für bestehende 6502-Kunden gedacht. 8 Bit beizubehalten war aus Anwendersicht eine vernünftige Entscheidung, da es

  • einfaches Upgrade vorhandener Designs bietet.
  • Vollständig kompatibel mit vorhandener Software
  • Standard Das 40-Pin-Gehäuse benötigt weniger Durchgangslöcher und bietet eine günstigere Handhabung.
  • Es wird nur ein einziger Latch benötigt, um den erweiterten Adressbereich zu nutzen.
  • Es werden nur externe 8-Bit-Standardkomponenten benötigt.

/ ul>

Insbesondere die späteren sind aus Kostengründen wichtig. Bei der Herstellung zählt jedes Loch, da die Bohrzeit und damit die Kosten sinken. 1983 waren 16-Bit-Komponenten (RAM / ROM) eher selten und teuer. Bei einem 8-Bit-Design wurde eine Anzahl von Standard- (EP-) ROM- und RAM-Chips nur nach der benötigten Größe definiert, während ein 16-Bit-Datenbus immer mindestens zwei von jedem benötigt. Schließlich ist das Design des früheren Prototypstatus nicht kostensensitiv. Die 65xx-Serie war immer auf kostengünstige / eingebettete Anwendungen ausgerichtet. Tatsächlich entsprach der Zielmarkt dem, den Intel für den 8086 als Upgrade-Pfad für den 8080 / vorstellte. 85 Benutzer.

Im Gegensatz zu Intel, das eine 16-Bit-CPU entwarf und 8-Bit-kompatibel machte (* 1), blieb WDC 8-Bit, was für das CPU-Design sinnvoll war, da es die Entwicklung aufgrund von

  • Die interne Grundstruktur konnte von 65C02 beibehalten werden.
  • Keine Änderungen bei der Generierung der Basisadresse
  • Keine Notwendigkeit, ein 8/16-Bit-Busprotokoll hinzuzufügen, um auf Bytes in einem Wort zuzugreifen / li>
  • Keine Notwendigkeit für die Verwaltung von Anweisungswarteschlangen
  • Auf diesem Weg wurde das gesamte Projekt so klein gehalten, dass es von Ressourcen verwaltet werden konnte, die ein kleines Unternehmen wie WDC bereitstellen konnte – ohne es zu setzen Zukunft in Gefahr.

    Abgesehen davon, dass es vergleichsweise einfach zu erstellen ist, gewinnt der 16-Bit-Bus nicht so viel, wie man zunächst annehmen könnte. Schließlich geht es bei der Leistung viel um die Speicherbandbreite, nicht wahr? Der 8088 vs. 8086 ist hier ein großartiger Benchmark, da beide genau dieselbe EU (Execution Unit; * 1) verwenden und sich nur in der Busbreite der BIU unterscheiden ( Bus Interface Unit) verwendet, um auf den Speicher zuzugreifen. Während der 8086 theoretisch etwa die doppelte Leistung liefern sollte, da die Bandbreite bei gleicher Taktrate verdoppelt wird, beträgt der reale Leistungsgewinn nur etwa 30-40%. Dies ist umso bemerkenswerter als die BIU Das Design funktioniert recht gut, wenn der Bus nahe 100% (* 2)

    verwendet wird. Während also die Verdoppelung der Busbreite immer weniger als die doppelte Geschwindigkeit liefert, wird dies einfach durch Verdoppelung der Taktfrequenz eines Designs erreicht 1983 war der Speicher so weit fortgeschritten, dass ein 4-MHz-Design im 6500-Stil leicht zu erreichen war und den Thruput ohne Jitter vervierfachte.

    Fazit: 8 Bit zu bleiben bot viele Vorteile im Design und für Benutzer, während unnötiger Aufwand und Kosten vermieden wurden.

    Last but not least könnte der 65802 als Nebeneffekt zusätzlich erstellt werden und einen Ersatz für die Verwendung von 16-Bit-Funktionen in vorhandenen 65C02-Designs bieten. P. >


    * 1 – In den meisten Teilen kann die EU als der „echte“ CPU-Kern des 8086 angesehen werden.

    * 2 – Ein Großteil davon ist auf den Einzelbyte-Zugriff zurückzuführen, aber auch durch nicht ausgerichtete Speicherwörter und Sprungziele, die einen 16-Bit-Bus auf 8-Bit-Betrieb verlangsamen. Und während neue Software dies berücksichtigen könnte, wird bestehende nicht. Ein Beispiel für den schlimmsten Fall könnte Applesoft BASIC sein, da fast alle Zeiger auf der Nullseite wie bei ungeraden Adressen waren. Für 8 Bit kümmerte sich niemand, mit 16 Bit ist es tödlich.

    Antwort

    Der Vorteil des externen 8-Bit-Datenbusses und das Multiplexen der oberen 8 Bits des Adressbusses in der Die erste Veröffentlichung des 65816 scheint klar zu sein. Es gab tatsächlich zwei Versionen des Chips: den W65C816S, wie in der Frage beschrieben, und den W65C802. Laut Wikipedia war

    [The] 65C802 … innen identisch mit der 65C816. Beide wurden auf denselben Fertigungslinien hergestellt und gingen nur während der letzten Metallisierungsstufen auseinander, als der Chip mit den externen Stiften verbunden wurde. Beim 65C802 hatten diese Pins das gleiche Layout wie beim ursprünglichen 6502, sodass er als Drop-In-Ersatz verwendet werden konnte, während die 16-Bit-Verarbeitung der CPU weiterhin verwendet werden konnte. Da es jedoch die ursprüngliche Pinbelegung verwendete, hatte es nur 16 Adressierungspins und konnte daher nur auf 64 kB externen Speicher zugreifen. Wenn Hardwarehersteller ein Projekt von Grund auf entwarfen, verwendeten sie normalerweise den 65C816 anstelle des 65C802, was dazu führte, dass letzterer aus der Produktion genommen wurde.

    Dies erklärt jedoch nicht, warum alle Versionen des 65816 die externe 8-Bit-Schnittstelle auch nach dem Auslaufen des 65802 weiterhin verwendeten.

    Antwort

    Ich denke, die Antwort ist einfach: Eine solche Version von 65C816 ist heutzutage nicht mehr erforderlich. Das Western Design Center (WDC), der Hersteller von 65C816, konzentriert sich auf IPs und IoT-Dinge. Ich denke, die „neue 65C816“ -Produktion ist eine Art Nostalgie für sie. Die Überarbeitung von Chips und Paketen hat meiner Meinung nach keinen klaren Geschäftsfall.

    Eine andere Frage lautet: „Warum gab es in den 80er Jahren keine 16-Bit-Datenbusversion?“ Die vernünftige Erklärung lautet: Es war eine Folge externer Ereignisse. Der Markt bewegte sich wahrscheinlich schneller als von WDC erwartet. In der ersten Hälfte der 80er Jahre, als 65C816 eingeführt wurde, passte der 8-Bit-Datenbus b Dies entspricht den Systemen, die bereits für den 6502-Chip entwickelt wurden, und der Markt verlangt keinen 16-Bit-Datenbus. Später, als 16-Bit-Peripheriegeräte verfügbar wurden, bot der 65C816-Hersteller die „Next-Gen“ -CPU nicht rechtzeitig an, sodass die größten Kunden wie Apple (// GS) oder Nintendo (SNES) besser, schneller usw. Prozessoren (Motorola, NEC MIPS, …) beim Entwurf einer neuen Generation ihrer Hardware. Dieser Schritt machte den „16-Bit-Datenbus 65C816“ vor seiner eigenen Erstellung überflüssig.

    Kommentare

    • Es scheint mir, dass Apple niemals “ wechselte zu besseren, schnelleren Prozessoren „; Das IIgs war das Ende der Reihe für das Apple II und es verwendete weiterhin das ‚ 816 bis 1992. (Apple verwendete das 68000 auf dem Mac, aber diese Entscheidung wurde in getroffen Ende 1980, lange bevor der ‚ 816 mit der Entwicklung begann.) Und Nintendo begann ‚ frühestens 1988 mit der Entwicklung des SNES. fünf Jahre nach der Veröffentlichung des ‚ 816.
    • Richtig, Mac vs. II sind unterschiedliche Entwicklungen. Auch trotz des Erfolgs der Apple IIgs mit nur 1,25 Millionen Einheiten war Apple weit davon entfernt, ihre größten Kunden zu sein. Die SNES-Zahlen liegen bei etwa 50 M, ohne Klone. In dieser Region gibt es noch einige andere eingebettete Anwendungen. Im Allgemeinen waren Desktop-Computer für uns vielleicht die sichtbarste Verwendung von 6502, aber sie gehören insgesamt zu den am wenigsten wichtigen. Selbst wenn Sie alle Commodore, Apple, BBC usw. hinzufügen, werden nur weniger als 1% aller jemals erstellten 65xxx-Kerne verwendet.

    Antwort

    Beim W65C265S , einem 65816-basierten Mikrocontroller, ist der gesamte 24b-Adressbus mit einem separaten 8b-Datenbus verfügbar.

    Und um klar zu sein, der „265S“ ist kein 65816. Er ist sehr, sehr nah. Ungeachtet der integrierten Peripheriegeräte und der Decodierungslogik gibt es einige verschiedene Interrupt-Vektoren, die dazu führen können, dass „265S-Code nicht mit einem Box-Bestand 65816 kompatibel ist. Für alle praktischen Zwecke sind sie mit Softwarezwecken identisch, es gibt jedoch einige geringfügige Unterschiede.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.