Dlaczego nie ' t WDC 65816 nie jest dostępny w “ zewnętrznie ” 16-bitowych wersjach?

Właściwie, o ile nie są dostępne aktualne notatki projektowe z WDC, pytanie jest naprawdę o jeden za długie w przypadku pola tytułowego: „Jakie dokładnie są wady posiadania wersji WDC 65816 z 16-bitową szyną danych i / lub niemultipleksowaną szyną adresową w porównaniu z korzyściami, jakie dają? ”

Wszystkie (inne niż soft¹) wersje WDC 65816, o którym wiem, że ma zewnętrzny interfejs z 8-bitową magistralą danych i 8 górnych bitów magistrali adresowej zmultipleksowanych na pinach magistrali danych. Zatem dla 16-bitowego dostępu do danych wymagane są dwa cykle (np. LDA z ustawionym bitem m) i logika zewnętrzna jest wymagana do zatrzaśnięcia pierwszych 8 bitów linii adresowych, co również może wprowadzić dodatkowe ograniczenia czasowe .

To pozwala chipowi zmieścić się w 40-pinowej obudowie, co wydaje się rozsądną opcją udostępnienia, ale to nie wyklucza również posiadania wersji w większym pakiecie. Cztery lata wcześniej Motorola 68000 została po raz pierwszy udostępniona w 64-pinowej obudowie DIP z oddzielnym 24-bitowym adresem i 16-bitową magistralą danych, więc technologia umożliwiająca to za rozsądną cenę była od dawna dostępna. Od tego czasu, oczywiście, wiele innych opakowań o dużej liczbie pinów stało się powszechnych, ale nawet teraz WDC nie oferuje nic większego niż pakiety 44-pinowe (PLCC i QFP).

Podobnie jak pakiet 40-pinowy wykluczają posiadanie pełnej 16-bitowej zewnętrznej szyny danych, jak to zrobił Intel 8086, z jej 16-bitową zewnętrzną szyną danych zmultipleksowaną na 20-bitowej zewnętrznej szynie adresowej. Nie musi to nawet oznaczać konieczności wyprodukowania oddzielnych 8- i 16-bitowych wersji magistrali danych: w 1990 roku Motorola zastąpiła MC68008 (68000 z 8-bitową zewnętrzną magistralą danych) MC68HC001, co pozwoliło na wybór zewnętrznej magistrali danych. szerokość po zresetowaniu.

Dlaczego więc brak, nawet do dziś, „pełnych 16-bitowych” zewnętrznych interfejsów, jakie oferują inni wczesni producenci 16-bitowych procesorów? Jakie wady różnych form pełnych 16-bitowych interfejsów zewnętrznych mi brakuje?


¹ To znaczy chipy, które można kupić z półki, w przeciwieństwie do rdzeni FPGA lub ASIC, które można zintegrować się z dowolnym pakietem.

Komentarze

Odpowiedź

65816 ma fizycznie 8-bitową jednostkę ALU, chociaż wiele rejestrów wewnętrznych ma teraz szerokość 16 bitów. W związku z tym wykonanie każdej operacji ALU w trybie 16-bitowym wymaga dodatkowego cyklu, co daje czas potrzebny na pobranie dodatkowych danych przez magistralę danych (co pozostaje bardzo proste w obsłudze).

Tam nie jest częścią rdzenia, w którym dostępna jest 16-bitowa magistrala danych, nawet w częściowo niestandardowych wersjach rdzenia 65816, które WDC nadal oferuje programistom systemów wbudowanych.

Oczywiście można zaprojektować nowy rdzeń z szerszą jednostką ALU i zewnętrzną szyną danych, a tym samym z wyższą wydajnością w operacjach 16-bitowych. Byłoby nawet możliwe wprowadzenie pipeliningu i buforowania w celu dalszej poprawy wydajności. Ale wynik byłby zgodny tylko z 65816 ISA; nie byłby to 65816. Byłby też większy, bardziej energochłonny, droższy (nie tylko ze względu na bardziej złożony pakiet wymagany do wyeksponowania szerszego autobusu) i znacznie mniej przyjazny hobbystom.

Komentarze

  • Zgodnie z arkuszem danych ( datasheets.chipdb.org/Western%20Design/w65c816s .pdf ), W65C816 ma pełną 16-bitową jednostkę ALU.
  • @StarCat Interesująca uwaga. Patrząc na czasy instrukcji, zastanawiam się, dlaczego mieliby się tym przejmować: wygląda na to, że rzeczywiście poradziliby sobie dobrze z 8-bitową jednostką ALU. (Nawet instrukcje takie jak INX to nadal dwa cykle). Być może twierdzą, że programista ' widzi to jako 16- bit ALU (tj. istnieją 16-bitowe instrukcje dodawania itp.), podobnie jak programista znajduje Z80 ' s 4 -bit ALU nie do odróżnienia od 8-bitowej jednostki ALU 8085 '?
  • 65816 ma 16-bitową jednostkę ALU. Jest to najbardziej widoczne podczas porównywania gałęzi, które działają tak samo w trybie natywnym, jak i emulacji (przesunięcie 8-bitowe), ale nie otrzymują żadnej kary za przekraczanie strony w trybie natywnym, podczas gdy nadal występuje to w emulacji (i na 65C02). Jest to również widoczne przy wszystkich bezpośrednich operacjach na stronach, obsługując również przekraczanie stron bez kary.DP w trybie emulacji dodatkowo pokazuje, że tutaj ALU po prostu ' obniżył ' do 8 bitów, tak jak DH robi to ' t musi być ustawione na zero, btu zostanie zignorowane.
  • @StarCat Pełny cudzysłów to: ” Pełna 16-bitowa jednostka ALU, Akumulatory, wskaźniki stosu i rejestry indeksu ” – co może być po prostu niezgrabnie napisane, ale wydaje się sugerować, że tylko rejestry mają szerokość 16 bitów. Jednak charakterystyka wydajności 16-bitowej jednostki ALU nie jest łatwa do zaobserwowania w tym CPU, ponieważ większość operandów (w tym adresy pamięci) musi być ładowana z pamięci 8 bitów naraz. Nawet jeśli pełna szerokość jednostki ALU jest używana do obliczeń trybu adresowania, zauważam, że jeśli DPR nie jest wyrównany do strony, dostęp w trybie bezpośrednim pobiera karę 1 cyklu, co jest zgodne z 8-bitową jednostką ALU.
  • @Raffzahn W przypadku indeksów 16-bitowych należy wykonać pełne 16-bitowe dodanie między adresem bazowym a przesunięciem indeksu. Wygląda na to, że nie można tego rozpocząć, dopóki adres bazowy nie zostanie całkowicie załadowany, prawdopodobnie z powodu braku rejestrów wewnętrznych. To, że dodanie 16 + 16 zajmuje dwa cykle, ale tylko jeden cykl dla dodania 16 + 8, pokazuje, że istnieje 8-bitowy sumator z propagacją przenoszenia górnego bajtu używaną do tego celu.

Odpowiedź

65816 jest pomyślany jako ścieżka aktualizacji dla obecnych klientów 6502. Utrzymanie 8-bitowej wersji było rozsądną decyzją z punktu widzenia użytkownika, ponieważ oferuje

  • Łatwa aktualizacja istniejących projektów
  • W pełni kompatybilny z istniejącym oprogramowaniem
  • Standard Pakiet 40-pinowy wymaga mniej otworów przelotowych i oferuje tańszą obsługę.
  • Do korzystania z rozszerzonego zakresu adresów potrzebny jest tylko jeden zatrzask
  • Potrzebne są tylko standardowe 8-bitowe komponenty zewnętrzne

Szczególnie te późniejsze są ważne ze względu na koszty. W przypadku produkcji liczy się każdy otwór, ponieważ czas wiercenia skraca się, a tym samym obniża koszty. W 1983 roku komponenty 16-bitowe (RAM / ROM) były raczej rzadkie i drogie. W przypadku konstrukcji 8-bitowej wiele standardowych (EP) układów ROM i RAM zostało zdefiniowanych tylko według potrzebnego rozmiaru, podczas gdy 16-bitowa magistrala danych zawsze wymaga co najmniej dwóch z każdego. W końcu to, który projekt w przeszłości był prototypem, nie jest wrażliwy na koszty. Seria 65xx zawsze była ukierunkowana na niskie koszty / aplikacje wbudowane. W rzeczywistości jej rynek docelowy był podobny do tego, jaki Intel przewidywał dla 8086, jako ścieżkę modernizacji dla 8080 / 85 użytkowników.

W przeciwieństwie do Intela, który zaprojektował 16-bitowy procesor i zapewnił zgodność 8-bitową (* 1), WDC pozostawało 8-bitowe, co miało sens przy projektowaniu procesora, ponieważ upraszczało rozwój ze względu na

  • Podstawowa struktura wewnętrzna mogła zostać zachowana z 65C02
  • Brak zmian w generowaniu podstawowego adresu
  • nie ma potrzeby dodawania 8/16 bitowego protokołu magistrali, aby uzyskać dostęp do bajtów w jednym słowie
  • brak potrzeby zarządzania kolejkami instrukcji

Idąc tą drogą, cały projekt był na tyle mały, że mógł być obsługiwany przez zasoby, które mogła zapewnić mała firma, taka jak WDC – bez wkładania przyszłość zagrożona.

Oprócz tego, że jest porównywalnie łatwy do stworzenia, przejście na magistralę 16-bitową nie przynosi tak dużych korzyści, jak można by przypuszczać na początku. W końcu wydajność w dużej mierze zależy od przepustowości pamięci, prawda? 8088 w porównaniu z 8086 jest tutaj świetnym punktem odniesienia, ponieważ oba używają dokładnie tego samego EU (Execution Unit; * 1), a różnią się tylko szerokością magistrali BIU ( Bus Interface Unit) wykorzystuje do uzyskania dostępu do pamięci. Podczas gdy teoretycznie 8086 powinien zapewniać około dwukrotnie wyższą wydajność dzięki podwojeniu przepustowości przy tej samej częstotliwości taktowania, wzrost wydajności w świecie rzeczywistym wynosi tylko około 30-40%. Jest to jeszcze bardziej niezwykłe, ponieważ BIU projekt działa całkiem dobrze, wykorzystując magistralę blisko 100% (* 2)

Więc chociaż podwojenie szerokości magistrali zawsze zapewni mniej niż dwukrotną prędkość, wystarczy podwoić częstotliwość zegara projektu bez żadnych niepewności. Do 1983 roku pamięć osiągnęła punkt, w którym łatwo było osiągnąć projekt w stylu 4 MHz 6500, czterokrotnie zwiększając przepustowość bez żadnych jitterów.

Podsumowując: pozostanie 8-bitowym zapewniało wiele korzyści w projektowaniu i dla użytkowników, jednocześnie unikając niepotrzebnego wysiłku i kosztów.

Wreszcie, jako efekt uboczny, 65802 może być dodatkowo utworzony, oferując spadek możliwości zastąpienia funkcji 16-bitowych w istniejących projektach 65C02.


* 1 – W większości krajów UE może być postrzegana jako „prawdziwy” rdzeń procesora 8086

* 2 – Wiele z tego wynika z dostępu jednobajtowego, ale także przez niewyrównane słowa pamięci i cele skoku, co spowolni działanie szyny 16-bitowej do 8-bitowej. I chociaż nowe oprogramowanie może to uwzględnić, istniejące już nie. Najgorszym przykładem może być tutaj Applesoft BASIC, gdzie prawie wszystkie wskaźniki na stronie zerowej znajdowały się pod nieparzystymi adresami. Dla 8-bitowych nikogo to nie obchodziło, 16-bitowe to zabójcze.

Odpowiedź

Zaleta 8-bitowej zewnętrznej magistrali danych i multipleksowania 8 pierwszych bitów magistrali adresowej w pierwsze wydanie 65816 wydaje się jasne. W rzeczywistości istniały dwie wersje układu: W65C816S, jak opisano w pytaniu, i W65C802. Według Wikipedii

[The] 65C802 … był wewnątrz identyczny z 65C816. Oba zostały wyprodukowane na tych samych liniach produkcyjnych i rozeszły się dopiero podczas ostatnich etapów metalizacji, kiedy chip był podłączany do zewnętrznych pinów. W 65C802 te piny miały ten sam układ, co oryginalny 6502, co pozwoliło na użycie ich jako zamiennika typu drop-in, jednocześnie pozwalając na użycie 16-bitowego przetwarzania procesora. Jednakże, ponieważ wykorzystywał oryginalny układ pinów, miał tylko 16 pinów adresujących i dlatego mógł uzyskać dostęp tylko do 64 kB pamięci zewnętrznej. Zwykle, gdy producenci sprzętu projektowali projekt od podstaw, używali 65C816 zamiast 65C802, co powodowało wycofanie tego ostatniego z produkcji.

Ale to nie wyjaśnia, dlaczego wszystkie wersje 65816 nadal korzystały z zewnętrznego 8-bitowego interfejsu nawet po wycofaniu 65802.

Odpowiedź

Myślę, że odpowiedź jest prosta: w dzisiejszych czasach taka wersja 65C816 nie jest potrzebna. Western Design Center (WDC), producent 65C816, skupia się na IP i IoT. Myślę, że „nowa 65C816” produkcja to swego rodzaju nostalgia za nimi. Weryfikacja chipów i pakietów nie ma jasnego uzasadnienia biznesowego, IMHO.

Kolejne pytanie brzmi: „dlaczego w latach 80. nie było 16-bitowej wersji magistrali danych?”. Rozsądne wyjaśnienie brzmi: była to sekwencja zdarzeń zewnętrznych. Rynek prawdopodobnie poruszał się szybciej niż oczekiwano WDC. W pierwszej połowie lat 80., kiedy wprowadzono 65C816, zainstalowano 8-bitową szynę danych. etter do systemów już zaprojektowanych dla chipa 6502, a rynek nie wymaga 16-bitowej magistrali danych. Później, gdy pojawiły się 16-bitowe urządzenia peryferyjne, producent 65C816 nie zaoferował na czas procesora „nowej generacji”, więc najwięksi klienci, tacy jak Apple (// GS) czy Nintendo (SNES), przeszli na lepsze, szybsze itd. , procesorów (Motorola, NEC MIPS,…) podczas projektowania nowej generacji ich sprzętu. Ten ruch spowodował, że „16-bitowa magistrala danych 65C816” stała się przestarzała przed jej utworzeniem.

Komentarze

  • Wydaje mi się, że Apple nigdy ” przeszedłem na lepsze, szybsze procesory „; IIgs był końcem linii dla Apple II i nadal używał ' 816 do 1992 roku. (Apple używał 68000 na Macu, ale decyzja została podjęta w pod koniec 1980 roku, na długo przed ' 816 rozpoczęciem rozwoju.) A Nintendo nie ' rozpoczęło rozwój SNES najwcześniej do 1988 roku, pięć lat po wydaniu ' 816.
  • To prawda, że Mac kontra II to różne rozwiązania. Ponadto, pomimo sukcesu Apple IIg, z zaledwie 1,25 mln jednostek, Apple nie był ich największym klientem. Liczby SNES wynoszą około 50 milionów, nie licząc klonów. W tym regionie jest też sporo innych wbudowanych aplikacji. Ogólnie rzecz biorąc, komputery stacjonarne były dla nas chyba najbardziej widocznym zastosowaniem 6502, ale w sumie są jednymi z najmniej ważnych. Nawet dodanie wszystkich Commodore, Apple, BBC itd. Skończy się na wykorzystaniu mniej niż 1% wszystkich rdzeni 65xxx, jakie kiedykolwiek zbudowano.

Odpowiedź

W65C265S , mikrokontroler oparty na 65816, ma odsłoniętą całą magistralę adresową 24b, z oddzielną magistralą danych 8b.

I żeby było jasne, „265S” to „nie” 65816. Jest bardzo, bardzo blisko. Ale bez względu na wbudowane urządzenia peryferyjne i logikę dekodowania, ma kilka różnych wektorów przerwań, które mogą spowodować, że „kod 265S będzie niekompatybilny z zestawem 65816”. Ze wszystkich praktycznych powodów „są identyczne pod względem oprogramowania, ale są pewne drobne różnice.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *