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
- Zobacz także retrocomputing.stackexchange.com / questions / 6124 / … , który w rzeczywistości zadaje to samo pytanie z bardziej ogólnej perspektywy, a nie specyficznej dla procesora
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.