De ce nu este ' WDC 65816 disponibil în “ extern ” versiuni pe 16 biți?

De fapt, cu excepția cazului în care sunt disponibile note de proiectare reale de la WDC, întrebarea este cu adevărat una prea lungă pentru câmpul de titlu: „Care sunt, de fapt, dezavantajele de a avea o versiune a WDC 65816 cu o magistrală de date pe 16 biți și / sau o magistrală de adrese nemultiplexată în comparație cu avantajele pe care acestea le-ar oferi? „

Toate versiunile (non-soft¹) ale WDC 65816 despre care știu că am o interfață externă cu o magistrală de date pe 8 biți și primii 8 biți ai magistralei de adresă multiplexate pe pinii magistralei de date. Astfel, sunt necesare două cicluri pentru accesurile de date pe 16 biți (de exemplu, LDA cu setul de biți m) și este necesară logica externă pentru a bloca primii 8 biți ai liniilor de adresă, care, de asemenea, pot introduce constrângeri de sincronizare suplimentare .

Acest lucru permite cipului să se încadreze într-un pachet cu 40 de pini, ceea ce pare a fi o opțiune rezonabilă de pus la dispoziție, dar asta nu exclude, de asemenea, să aveți o versiune într-un pachet mai mare. Cu patru ani mai devreme, Motorola 68000 a fost disponibil pentru prima dată într-un pachet DIP cu 64 de pini, cu adrese separate de 24 de biți și autobuze de date pe 16 biți, astfel încât tehnologia pentru a face acest lucru la un cost rezonabil fusese disponibilă de mult timp. Și de atunci, desigur, multe alte ambalaje cu număr mare de pini au devenit obișnuite, totuși chiar și acum WDC nu oferă nimic mai mare decât pachetele cu 44 de pini (PLCC și QFP).

Nici un pachet cu 40 de pini împiedicați să aveți o magistrală de date externă completă pe 16 biți, așa cum a făcut Intel 8086, cu magistrala sa externă de date pe 16 biți multiplexată pe magistrala externă de adrese de 20 biți. Acest lucru nu trebuie să însemne nici măcar că trebuie fabricate versiuni separate de magistrală de date de 8 și 16 biți: în 1990 Motorola a înlocuit MC68008 (un 68000 cu o magistrală de date externă de 8 biți) cu MC68HC001, care a permis selectarea magistralei de date externe lățime la resetare.

Deci, de ce lipsa, chiar și astăzi, a interfețelor externe „complete pe 16 biți”, așa cum sunt oferite de alți furnizori de CPU pe 16 biți? Ce dezavantaje pentru diferitele forme ale interfețelor externe complete pe 16 biți îmi lipsesc?


De exemplu, cipurile pe care le puteți cumpăra de pe raft, spre deosebire de nucleele FPGA sau ASIC pe care le puteți integrează-te în orice pachet care îți place.

Comentarii

Răspuns

65816 are fizic o ALU pe 8 biți, deși multe dintre registrele interne au acum 16 biți lățime. Prin urmare, este nevoie de un ciclu suplimentar pentru a efectua fiecare operație ALU în modul pe 16 biți, iar acest lucru oferă în mod util timpul necesar pentru a obține date suplimentare prin magistrala de date (care rămâne foarte ușor de interfațat).

nu face parte din nucleul în care o magistrală de date pe 16 biți este disponibilă pentru a fi expusă, chiar și în versiunile semi-personalizate ale nucleului 65816 pe care WDC le oferă în continuare dezvoltatorilor de sisteme încorporate.

Sigur ar fi să fie posibil să proiectați un nou nucleu cu o ALU mai largă și o magistrală de date externă și, prin urmare, cu performanțe mai mari la operațiunile pe 16 biți. Ar fi chiar posibil să se introducă canalizarea și stocarea în cache pentru a îmbunătăți și mai mult performanța. Dar rezultatul ar fi doar 65816 compatibil ISA; nu ar fi un 65816. Ar fi, de asemenea, mai mare, mai înfometat de energie, mai scump (nu în ultimul rând datorită pachetului mai complex necesar pentru a expune autobuzul mai larg) și mult mai puțin prietenos pentru amatori.

Comentarii

  • Conform fișei sale tehnice ( datasheets.chipdb.org/Western%20Design/w65c816s .pdf ), W65C816 are un ALU complet pe 16 biți.
  • @StarCat Punct interesant. Privind momentele de instruire, mă întreb de ce s-ar deranja, totuși: se pare că ar putea într-adevăr să se descurce bine cu un ALU de 8 biți. (Chiar și instrucțiunile precum INX sunt încă două cicluri.) Poate afirmă că viziunea programatorului ‘ este 16- bit ALU (adică, există instrucțiuni de adăugare pe 16 biți etc.), la fel cum un programator găsește Z80 ‘ s 4 -BIT ALU nedistinguibil de 8085 ‘ ALU pe 8 biți?
  • 65816 are un ALU pe 16 biți. Acest lucru este cel mai vizibil atunci când se compară ramuri, care funcționează la fel în modul nativ, precum și în modul de emulare (offset de 8 biți), dar nu primesc nici o penalizare pentru trecerea paginilor în modul nativ, în timp ce acest lucru se întâmplă încă în emulare (și pe 65C02). Este la fel de vizibil cu toate operațiunile directe ale paginii, gestionând și trecerea paginilor fără penalizare.DP în modul de emulare arată în continuare că aici ALU pur și simplu devine ‘ redus ‘ la 8 biți, așa cum DH nu ‘ nu trebuie setat la zero, btu este ignorat.
  • @StarCat Cota completă este: ” ALU complet pe 16 biți, Acumulator, Stack Pointer și Index Registers ” – care ar putea fi doar greșit scris, dar pare să implice că doar registrele au o lățime de 16 biți. Cu toate acestea, caracteristicile de performanță ale unei ALU pe 16 biți nu sunt observate cu ușurință în acest procesor, deoarece majoritatea operanzilor (inclusiv adresele de memorie) trebuie încărcate din memorie cu 8 biți pe rând. Chiar dacă lățimea completă a ALU este utilizată pentru calculele modului de adresare, observ că dacă DPR nu este aliniat la pagină, accesele în modul Direct au o penalizare de 1 ciclu, care este în concordanță cu o ALU pe 8 biți.
  • @Raffzahn Cu indexuri pe 16 biți, trebuie adăugată o completare completă pe 16 biți între adresa de bază și compensarea indexului. Se pare că acest lucru nu poate fi pornit până când adresa de bază nu a fost complet încărcată, posibil din cauza lipsei de registre interne. Faptul că durează două cicluri pentru o adăugare de 16 + 16, dar numai un ciclu pentru o adăugare de 16 + 8, arată că există un sumator de 8 biți cu propagare a transportului de octeți superiori utilizată în acest scop.

Răspuns

65816 este conceput ca o cale de upgrade la 6502 clienți existenți. Păstrarea acestuia pe 8 biți a fost o decizie sensibilă din punctul de vedere al utilizatorului, deoarece oferă

  • Actualizarea ușoară a proiectelor existente
  • Complet compatibil cu software-ul existent
  • Standard Pachetul de 40 de pini are nevoie de mai puține găuri și oferă o manevrare mai ieftină
  • Este nevoie de un singur zăvor pentru a utiliza gama de adrese extinsă
  • Sunt necesare doar componente externe standard pe 8 biți

Mai ales cele ulterioare sunt importante pentru luarea în considerare a costurilor. Pentru fabricare, fiecare orificiu contează, deoarece scade în timp pentru a găuri și, prin urmare, costă. În 1983 componentele pe 16 biți (RAM / ROM) erau destul de rare și costisitoare. Cu un design pe 8 biți, un număr de cipuri standard (EP) ROM și RAM au fost definite doar în funcție de dimensiunea necesară, în timp ce o magistrală de date pe 16 biți necesită întotdeauna cel puțin două din fiecare. La urma urmei, care proiectează starea prototipului trecut nu este sensibil la costuri. Seria 65xx a fost întotdeauna vizată de aplicații cu costuri reduse / încorporate. De fapt, piața sa țintă a fost la fel ca Intel prevăzută pentru 8086 ca fiind o cale de actualizare pentru 8080 / 85 de utilizatori.

Spre deosebire de Intel, care a proiectat un procesor de 16 biți și a făcut compatibil 8 biți (* 1), WDC a rămas pe 8 biți, ceea ce avea sens pentru proiectarea procesorului, deoarece simplifica dezvoltarea datorată

  • Structura internă de bază ar putea fi păstrată de la 65C02
  • Nu există modificări în generarea adresei de bază
  • nu este nevoie să adăugați un protocol de magistrală 8/16 biți pentru a accesa octeți într-un cuvânt
  • nu este nevoie de gestionarea cozii de instrucțiuni

Mergând pe acel traseu, întregul proiect a fost păstrat suficient de mic pentru a putea fi gestionat de resurse pe care o companie mică precum WDC le-ar putea furniza – fără a pune viitorul la risc.

Pe lângă faptul că este relativ ușor de creat, autobuzul pe 16 biți nu câștigă atât cât se poate presupune la început. La urma urmei, performanța se referă mult la lățimea de bandă a memoriei, nu-i așa? 8088 față de 8086 este un punct de referință excelent aici, deoarece ambele folosesc exact aceeași UE (Execution Unit; * 1), în timp ce diferă doar în lățimea magistralei BIU Bus Interface Unit) se folosește pentru a accesa memoria. În timp ce, teoretic, 8086 ar trebui să furnizeze aproximativ dublul performanței datorită dublării lățimii de bandă la aceeași rată de ceas, câștigul de performanță din lumea reală este de aproximativ 30-40%. designul funcționează destul de bine în utilizarea autobuzului aproape de 100% (* 2)

Deci, în timp ce dublarea lățimii autobuzului va oferi întotdeauna mai puțin de dublul vitezei, simpla dublare a frecvenței de ceas a unui design va face acest lucru fără nicio incertitudine. Până în 1983, memoria ajunsese până la un punct în care un design de stil 6500 de 4 MHz era ușor de realizat, cvadruplând puterea fără nicio fluctuație.

Linia de fund: rămânerea pe 8 biți a oferit multe avantaje în design și pentru utilizatori, evitând în același timp eforturi și costuri inutile.

Nu în ultimul rând, ca efect secundar, 65802 ar putea fi creat în plus, oferind o reducere a înlocuirii pentru a utiliza caracteristicile pe 16 biți cu în designurile 65C02 existente.


* 1 – Pentru majoritatea părților, UE poate fi văzută ca nucleul CPU „real” al 8086

* 2 – O mare parte din aceasta se datorează accesului pe un singur octet, dar la fel prin cuvinte de memorie nealiniate și ținte de salt, care vor încetini o magistrală de 16 biți până la o operare de 8 biți. Și, deși noul software ar putea lua în considerare acest lucru, existentul nu. Un exemplu în cel mai rău caz aici poate fi Applesoft BASIC, erau aproape toți pointeri în Zero Page ca la adrese impare. Pentru 8 biți nimănui nu-i păsa, cu 16 biți este mortal.

Răspuns

Avantajul magistralei externe de date pe 8 biți și multiplexarea primilor 8 biți ai magistralei de adrese din prima versiune a modelului 65816 pare clară. De fapt, au existat două versiuni ale cipului: W65C816S așa cum este descris în întrebare și W65C802. Conform Wikipedia ,

[The] 65C802 … era identic în interiorul 65C816. Ambele au fost produse pe aceleași linii de fabricație și au divergut numai în ultimele etape de metalizare, când cipul era conectat la pinii externi. În 65C802, acei pini aveau același aspect ca și 6502 original, ceea ce îi permitea să fie folosit ca înlocuitor drop-in, permițând totuși procesarea pe 16 biți a procesorului. Cu toate acestea, deoarece folosea pinout-ul original, avea doar 16 pini de adresare și, prin urmare, putea accesa doar 64 kB de memorie externă. De obicei, atunci când producătorii de hardware au proiectat un proiect de la bază, au folosit 65C816 mai degrabă decât 65C802, rezultând ca acesta din urmă să fie retras din producție.

Dar acest lucru nu explică de ce toate versiunile 65816 au continuat să utilizeze interfața externă de 8 biți chiar și după ce 65802 a fost întreruptă.

Răspuns

Cred că răspunsul este simplu: în prezent nu este nevoie de o astfel de versiune de 65C816. Western Design Center (WDC), producătorul 65C816, se concentrează pe IP-uri și lucruri IoT. Cred că producția „noua 65C816” este un fel de nostalgie pentru ei. Revizuirea cipurilor și a pachetelor nu are un caz de afaceri clar, IMHO.

O altă întrebare este „de ce nu a existat o versiune a magistralei de date pe 16 biți în anii 80?” Explicația rezonabilă este: a fost o succesiune de evenimente externe. Piața s-a mișcat probabil mai repede decât se aștepta WDC. În prima jumătate a anilor 80, când a fost introdus 65C816, magistrala de date pe 8 biți etter la sistemele deja proiectate pentru cipul 6502 și piața nu necesită o magistrală de date de 16 biți. Mai târziu, când perifericele de 16 biți au devenit disponibile, producătorul 65C816 nu a oferit la timp procesorul „next-gen”, astfel încât cei mai mari clienți, precum Apple (// GS) sau Nintendo (SNES), s-au mutat în bine, mai repede etc. .procesoarele (Motorola, NEC MIPS, …) atunci când au proiectat o nouă generație de hardware. Această mișcare a făcut ca „magistrala de date pe 16 biți 65C816” să fie învechită înainte de propria creație.

Comentarii

  • Mi se pare că Apple nu a trecut la procesoare mai bune și mai rapide „; IIgs a fost sfârșitul liniei pentru Apple II și a continuat să folosească ‘ 816 până în 1992. (Apple a folosit 68000 în Mac, dar acea decizie a fost luată în sfârșitul anului 1980, cu mult înainte ca ‘ 816 să înceapă dezvoltarea.) Și Nintendo nu a început ‘ să înceapă dezvoltarea SNES până cel mai devreme în 1988, la cinci ani după lansarea ‘ 816.
  • Adevărat, Mac vs. II sunt evoluții diferite. De asemenea, în ciuda succesului Apple IIgs, cu doar 1,25 milioane de unități, Apple a fost departe de a fi cei mai mari clienți ai lor. Numerele SNES sunt în jur de 50 M, fără a lua în considerare clonele. Și există destul de multe alte aplicații încorporate în acea regiune. În general, computerele desktop au fost poate cea mai vizibilă utilizare a 6502 pentru noi, dar sunt în total printre cele mai puțin importante. Chiar și adăugând toate Commodore, Apple, BBC și așa mai departe va ajunge doar să folosească mai puțin de 1% din toate nucleele 65xxx construite vreodată.

Răspuns

W65C265S , un microcontroler bazat pe 65816, are expusă întreaga magistrală de adrese 24b, cu o magistrală de date separată de 8b.

Și, pentru a fi clar, „265S este„ nu ”un 65816. Este foarte, foarte aproape. Dar, fără a rezista perifericelor de la bord și logicii de decodare, are câțiva vectori de întrerupere diferiți care ar putea face ca „codul 265S să fie incompatibil cu un stoc de cutie 65816. În toate scopurile practice, acestea sunt identice cu cele software, dar există câteva diferențe minore.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *