In realtà, a meno che non siano disponibili vere e proprie note di progettazione da WDC, la domanda è davvero troppo lunga per il campo del titolo: “Quali sono, precisamente, gli svantaggi di avere una versione del WDC 65816 con bus dati a 16 bit e / o bus indirizzi non multiplex rispetto ai vantaggi che darebbero? “
Tutte le versioni (non soft¹) del WDC 65816 di cui sono a conoscenza hanno uninterfaccia esterna con un bus dati a 8 bit e gli 8 bit superiori del bus indirizzi multiplexati sui pin del bus dati. Pertanto, sono necessari due cicli per gli accessi ai dati a 16 bit (ad esempio, LDA
con il m
bit impostato) e la logica esterna è necessaria per agganciare gli 8 bit superiori delle linee di indirizzo che possono anche introdurre ulteriori vincoli temporali .
Questo permette al chip di adattarsi a un pacchetto a 40 pin, che sembra unopzione ragionevole da rendere disponibile, ma ciò non preclude anche di avere una versione in un pacchetto più grande. Quattro anni prima il Motorola 68000 era stato reso disponibile per la prima volta in un pacchetto DIP a 64 pin con indirizzo separato a 24 bit e bus dati a 16 bit, quindi la tecnologia per farlo a un costo ragionevole era disponibile da tempo. E da allora, ovviamente, molte altre confezioni ad alto numero di pin sono diventate comuni, ma anche adesso WDC non offre niente di più grande di pacchetti a 44 pin (PLCC e QFP).
Nemmeno un pacchetto a 40 pin escludere di avere un bus dati esterno a 16 bit completo, come ha fatto lIntel 8086, con il suo bus dati esterno a 16 bit multiplexato sul bus di indirizzi esterni a 20 bit. Ciò non significa nemmeno che debbano essere prodotte versioni separate del bus dati a 8 e 16 bit: nel 1990 Motorola sostituì lMC68008 (un 68000 con un bus dati esterno a 8 bit) con lMC68HC001, che consentiva la selezione del bus dati esterno larghezza al ripristino.
Allora perché la mancanza, ancora oggi, di interfacce esterne “complete a 16 bit”, come quelle offerte da altri primi fornitori di CPU a 16 bit? Quali svantaggi mi mancano le varie forme delle interfacce esterne complete a 16 bit?
¹Ad esempio, chip che puoi acquistare in pronta consegna, a differenza dei core FPGA o ASIC che puoi integra te stesso in qualsiasi pacchetto tu voglia.
Commenti
- Vedi anche retrocomputing.stackexchange.com / questions / 6124 / … , che pone effettivamente la stessa domanda da una prospettiva più generale piuttosto che specifica del processore
Risposta
Il 65816 ha fisicamente una ALU a 8 bit, sebbene molti dei registri interni siano ora larghi 16 bit. Occorre quindi un ciclo extra per eseguire ogni operazione ALU in modalità a 16 bit, e questo fornisce utilmente il tempo necessario per ottenere i dati extra sul bus dati (che rimane molto semplice da interfacciare).
Ecco non fa parte del core in cui è disponibile un bus dati a 16 bit per essere esposto, anche nelle versioni semi-personalizzate del core 65816 che WDC offre ancora per gli sviluppatori di sistemi embedded.
Lo farebbe ovviamente essere possibile progettare un nuovo core con un ALU più ampio e un bus dati esterno, e quindi con prestazioni più elevate su operazioni a 16 bit. Sarebbe anche possibile introdurre pipelining e caching per migliorare ulteriormente le prestazioni. Ma il risultato sarebbe solo 65816 compatibile ISA; non sarebbe un 65816. Sarebbe anche più grande, più assetato di energia, più costoso (non da ultimo a causa del pacchetto più complesso richiesto per esporre il bus più largo) e molto meno adatto agli hobbisti.
Commenti
- Secondo la sua scheda tecnica ( datasheets.chipdb.org/Western%20Design/w65c816s .pdf ), il W65C816 ha una ALU a 16 bit completa.
- @StarCat Punto interessante. Guardando i tempi delle istruzioni, mi chiedo perché si preoccuperebbero, però: sembra che potrebbero cavarsela bene con un ALU a 8 bit. (Anche istruzioni come
INX
sono ancora due cicli.) Forse stanno affermando che il ‘ punto di vista del programmatore è come un 16- bit ALU (cioè, ci sono istruzioni di aggiunta a 16 bit, ecc.), proprio come un programmatore trova Z80 ‘ s 4 -bit ALU indistinguibile dall8085 ‘ s ALU a 8 bit? - Il 65816 ha un ALU a 16 bit. Questo è più visibile quando si confrontano i rami, che funzionano allo stesso modo in modalità nativa e di emulazione (offset a 8 bit), ma non subiscono penalità per lincrocio di pagine in modalità nativa, mentre ciò si verifica ancora in emulazione (e sul 65C02). È anche visibile con tutte le operazioni di pagina diretta, gestendo anche lincrocio delle pagine senza penalità.DP in modalità di emulazione mostra inoltre che qui lALU ottiene semplicemente ‘ abbassato ‘ a 8 bit, come DH non ‘ non deve essere impostato a zero, btu viene ignorato.
- @StarCat La citazione completa è: ” ALU a 16 bit completa, Accumulatore, Stack Pointer e Index Registers ” – che può essere scritto in modo goffo, ma sembra implicare che solo i registri hanno una larghezza di 16 bit. Tuttavia, le caratteristiche di prestazione di una ALU a 16 bit non sono facilmente osservabili in questa CPU, perché la maggior parte degli operandi (inclusi gli indirizzi di memoria) deve essere caricata dalla memoria 8 bit alla volta. Anche se lintera larghezza dellALU viene utilizzata per i calcoli della modalità di indirizzamento, noto che se il DPR non è allineato alla pagina, gli accessi in modalità diretta subiscono una penalità di 1 ciclo che è coerente con una ALU a 8 bit.
- @Raffzahn Con gli indici a 16 bit, è necessario eseguire unaggiunta completa a 16 bit tra lindirizzo di base e loffset dellindice. Sembra che questo non possa essere avviato fino a quando lindirizzo di base non è stato completamente caricato, probabilmente a causa di una carenza di registri interni. Il fatto che siano necessari due cicli per unaggiunta di 16 + 16, ma solo un ciclo per unaggiunta di 16 + 8, mostra che a questo scopo viene utilizzato un sommatore a 8 bit con propagazione del carry byte superiore.
Risposta
Il 65816 è inteso come un percorso di aggiornamento per i clienti 6502 esistenti. Mantenerlo a 8 bit è stata una decisione sensata dal punto di vista dellutente in quanto offre
- Facile aggiornamento dei progetti esistenti
- Pienamente compatibile con il software esistente
- Standard Il pacchetto a 40 pin richiede meno fori passanti e offre una gestione più economica
- È necessario un solo latch per utilizzare lintervallo di indirizzi esteso
- Sono necessari solo componenti esterni standard a 8 bit
Soprattutto i successivi sono importanti per la considerazione dei costi. Per la produzione ogni foro conta, poiché il tempo di perforazione diminuisce e quindi il costo. Nel 1983 i componenti a 16 bit (RAM / ROM) erano piuttosto rari e costosi. Con un design a 8 bit, un numero di chip ROM e RAM standard (EP) sono stati definiti solo in base alle dimensioni necessarie, mentre un bus dati a 16 bit richiede sempre almeno due di ciascuno. Dopotutto, il design dopo lo stato del prototipo non è sensibile ai costi. La serie 65xx è sempre stata destinata a applicazioni embedded / a basso costo. In effetti, il suo mercato di riferimento era molto simile a quello che Intel aveva previsto per l8086 come percorso di aggiornamento per l8080 / 85 utenti.
A differenza di Intel, che ha progettato una CPU a 16 bit e ha reso compatibile 8 bit (* 1), WDC è rimasto a 8 bit, il che aveva senso per la progettazione della CPU in quanto semplificava lo sviluppo grazie
- La struttura interna di base potrebbe essere mantenuta dal 65C02
- Nessuna modifica nella generazione dellindirizzo di base
- Non è necessario aggiungere un protocollo bus a 8/16 bit per accedere ai byte in una parola
- non è necessaria la gestione delle code di istruzioni
Seguendo questa strada, lintero progetto è stato mantenuto abbastanza piccolo da essere gestito dalle risorse che una piccola azienda come WDC potrebbe fornire, senza mettere il suo futuro a rischio.
Oltre ad essere relativamente facile da creare, utilizzare un bus a 16 bit non guadagna quanto si potrebbe pensare allinizio. Dopotutto, le prestazioni riguardano soprattutto la larghezza di banda della memoria, non è vero? L8088 rispetto all8086 è un ottimo punto di riferimento qui, poiché entrambi utilizzano esattamente la stessa UE (unità di esecuzione; * 1) mentre differiscono solo per la larghezza del bus della BIU ( Bus Interface Unit) utilizza per accedere alla memoria. Mentre in teoria l8086 dovrebbe fornire circa il doppio delle prestazioni a causa del raddoppio della larghezza di banda alla stessa frequenza di clock, il guadagno di prestazioni nel mondo reale è solo del 30-40% circa. Questo è ancora più notevole come BIU il design funziona abbastanza bene quando si utilizza il bus vicino al 100% (* 2)
Quindi, mentre il raddoppio della larghezza del bus fornirà sempre meno del doppio della velocità, semplicemente raddoppiando la frequenza di clock di un progetto lo farà senza alcuna incertezza. Nel 1983 la memoria era arrivata al punto in cui un design in stile 6500 a 4 MHz era facile da ottenere, quadruplicando il thruput senza alcun jitter.
Conclusione: rimanere a 8 bit offriva molti vantaggi nel design e per gli utenti, evitando sforzi e costi inutili.
Ultimo ma non meno importante, come effetto collaterale, il 65802 potrebbe essere creato in aggiunta, offrendo un calo di sostituzione per utilizzare le funzionalità a 16 bit con i progetti 65C02 esistenti.
* 1 – Per la maggior parte delle parti lUE può essere vista come il “vero” core della CPU dell8086
* 2 – Gran parte di questo deriva dallaccesso a un byte, ma anche da parole di memoria non allineate e target di salto, che rallenteranno un bus a 16 bit fino a un funzionamento a 8 bit. E mentre il nuovo software potrebbe tenerne conto, quello esistente non lo farà. Un esempio del caso peggiore qui potrebbe essere Applesoft BASIC, dove quasi tutti puntatori in Zero Page come a indirizzi dispari. Per 8 bit non importava a nessuno, con 16 bit è mortale.
Risposta
Il vantaggio del bus dati esterno a 8 bit e del multiplexing degli 8 bit superiori del bus indirizzi nel la prima versione del 65816 sembra chiara. In realtà cerano due versioni del chip: il W65C816S come descritto nella domanda e il W65C802. Secondo Wikipedia ,
[Il] 65C802 … era identico allinterno di il 65C816. Entrambi sono stati prodotti sulle stesse linee di fabbricazione e si sono differenziati solo durante le ultime fasi di metallizzazione quando il chip era collegato ai pin esterni. Nel 65C802, quei pin avevano lo stesso layout del 6502 originale, che ne consentiva lutilizzo come sostituto drop-in pur consentendo di utilizzare lelaborazione a 16 bit della CPU. Tuttavia, poiché utilizzava il pinout originale, aveva solo 16 pin di indirizzamento e poteva quindi accedere solo a 64 kB di memoria esterna. In genere, quando i produttori di hardware progettavano un progetto da zero, utilizzavano il 65C816 anziché il 65C802, con il conseguente ritiro di questultimo dalla produzione.
Ma questo non spiega perché tutte le versioni del 65816 abbiano continuato a utilizzare linterfaccia esterna a 8 bit anche dopo che il 65802 è stato interrotto.
Answer
Immagino che la risposta sia semplice: al giorno doggi non è necessaria una tale versione del 65C816. Il Western Design Center (WDC), il produttore del 65C816, si concentra su IP e cose dellIoT. Immagino che la produzione del “nuovo 65C816” è una sorta di nostalgia per loro. La revisione di chip e pacchetti non ha un chiaro motivo di affari, IMHO.
Unaltra domanda è “perché non esisteva una versione del bus di dati a 16 bit negli anni 80?” La spiegazione ragionevole è: era una sequenza di eventi esterni. Il mercato probabilmente si muoveva più velocemente del previsto WDC. Nella prima metà degli anni 80, quando fu introdotto il 65C816, il bus dati a 8 bit montava b Meglio per i sistemi già progettati per il chip 6502 e il mercato non richiede un bus dati a 16 bit. Successivamente, quando sono diventate disponibili le periferiche a 16 bit, il produttore del 65C816 non ha offerto in tempo la CPU “next-gen”, quindi i clienti più grandi, come Apple (// GS) o Nintendo (SNES), sono passati alla migliore, più veloce, ecc. processori (Motorola, NEC MIPS, …) quando progettano una nuova generazione del loro hardware. Questa mossa ha reso obsoleto il “bus dati a 16 bit 65C816” prima della sua creazione.
Commenti
- Mi sembra che Apple non ” è passato a processori migliori e più veloci “; lIIgs era la fine della linea per lApple II e ha continuato a utilizzare ‘ 816 fino al 1992. (Apple ha utilizzato il 68000 nel Mac, ma la decisione è stata presa in fine del 1980, molto prima che ‘ 816 iniziasse lo sviluppo.) E Nintendo non ‘ ha avviato lo sviluppo di SNES fino al 1988 al più presto, cinque anni dopo il rilascio di ‘ 816.
- Vero, Mac e II sono sviluppi diversi. Inoltre, nonostante il successo dellApple IIgs, con solo 1,25 M di unità, Apple era ben lungi dallessere il loro più grande cliente. I numeri SNES sono intorno a 50 M, senza contare i cloni. E ci sono molte altre applicazioni incorporate in quella regione. In generale, i computer desktop sono stati forse luso più visibile del 6502 per noi, ma in totale sono tra i meno importanti. Anche laggiunta di tutti i Commodore, Apple, BBC e così via finirà per utilizzare solo meno dell1% di tutti i core 65xxx mai costruiti.
Risposta
Il W65C265S , un microcontrollore basato su 65816, ha lintero bus di indirizzi 24b esposto, con un bus dati 8b separato.
E, per essere chiari, “265S” non è “un 65816. È molto, molto vicino. Ma nonostante le periferiche di bordo e la logica di decodifica, ha alcuni diversi vettori di interrupt che potrebbero rendere “il codice 265S incompatibile con un box stock 65816. Per tutti gli scopi pratici sono identici da un software, ma ci sono alcune piccole differenze.