Motorola 6809 - Motorola 6809

Motorola 6809
Procesor Motorola 6809P 1 MHz, to zestaw masek C65P wyprodukowany w dziesiątym tygodniu 1992 r.
Informacje ogólne
Wystrzelony 1978 ; 43 lata temu ( 1978 )
Wspólni producenci
Wydajność
Szerokość danych 8
Szerokość adresu 16
Architektura i klasyfikacja
Zestaw instrukcji 6809
Instrukcje 59
Specyfikacje fizyczne
Tranzystory
Pakiet(y)

Motorola 6809 ( " sześćdziesiąt osiem-oh-dziewięć ") jest 8-bitowy mikroprocesor CPU z niektórych 16-bitowych funkcji. Został on zaprojektowany przez Motorola „s Terry Ritter i Joel Boney i wprowadzony w 1978 roku Chociaż źródło zgodna z wcześniejszymi Motorola 6800 , z 6809 oferowanych znaczących usprawnień nad nim i 8-bitowych contempories takich jak MOS Technologii 6502 , w tym instrukcji sprzętu mnożenia, 16-bitowe rejestry arytmetyczne, systemowe i stosowe użytkownika umożliwiające kod wtórny, ulepszone przerwania , kod niezależny od pozycji i architekturę ortogonalnego zestawu instrukcji z obszernym zestawem trybów adresowania.

Wśród najpotężniejszych 8-bitowych procesorów swojej epoki był też znacznie droższy. W 1980 roku 6809 w ilościach jednostkowych kosztował 37 USD w porównaniu z 9 USD za Zilog Z80 i 6 USD za 6502. Został wprowadzony na rynek, gdy na rynek wchodziła nowa generacja 16-bitowych procesorów, takich jak Intel 8086 i 32-bitowe. na horyzoncie pojawiły się projekty, w tym własny 68000 Motoroli . Nie była konkurencyjna w stosunku do nowszych konstrukcji i nie była konkurencyjna cenowo w stosunku do starszych.

6809 był używany w komputerach domowych TRS-80 Color Computer , Dragon 32/64 i Thomson MO/TO , konsoli do gier Vectrex i automatach z początku lat 80., w tym Star Wars , Defender , Robotron: 2084 , Joust i Gyruss . Seria II cyfrowej stacji roboczej Fairlight CMI i gra zręcznościowa Konami Time Pilot '84 używają dwóch procesorów 6809.

Hitachi był głównym użytkownikiem 6809, a później wyprodukował zaktualizowaną wersję jako Hitachi 6309 .

Historia

Matryca Motoroli 6809

6800 i 6502

Motorola 6800 został zaprojektowany początek w 1971 roku i wydany w roku 1974. W ujęciu ogólnym projektu, ma duże podobieństwo do innych procesorach, które zostały zaprojektowane od początku jako 8-bitowych wzorów, takich jak Intel 8080 . Początkowo był wytwarzany przy użyciu wczesnej logiki NMOS , która normalnie wymagała kilku różnych napięć zasilania . Kluczową cechą był podwajacz napięcia na chipie, który pozwalał na pracę przy pojedynczym zasilaniu +5 V, co stanowi dużą przewagę nad konkurentami, takimi jak Intel 8080, który wymagał -5, +5, -12 i uziemienia.

6800 został początkowo wyprodukowany przy użyciu ówczesnego procesu litografii kontaktowej . W tym procesie fotomaska jest umieszczana w bezpośrednim kontakcie z wafelkiem , naświetlana, a następnie zdejmowana. Istniała niewielka szansa, że ​​część materiału do wytrawiania pozostanie na wafelku podczas jego podnoszenia, powodując awarię przyszłych chipów ze wzorem maski. W przypadku złożonych projektów o wielu wzorach, takich jak procesor, doprowadziło to do awarii około 90% chipów podczas testowania. Aby zarobić na małej liczbie żetonów, które działały, ceny działających modeli musiały być dość wysokie, rzędu setek dolarów w małych ilościach. W rezultacie 6800 miał stosunkowo niską akceptację rynkową po wydaniu.

Wielu projektantów 6800 było przekonanych, że tańszy system będzie kluczem do powszechnej akceptacji. Wśród nich wyróżniał się Chuck Peddle , który był wysyłany na wycieczki sprzedażowe i widział, jak potencjalni klienci wielokrotnie odrzucali projekt jako zbyt drogi dla ich zamierzonych zastosowań. Rozpoczął projekt, aby wyprodukować znacznie mniej kosztowny projekt, ale kierownictwo Motoroli okazało się niezainteresowane i ostatecznie kazało mu przerwać prace nad tym. Peddle i wielu innych członków zespołu 6800 odeszli z Motoroli na rzecz technologii MOS i wprowadzili ten projekt w 1975 roku jako MOS Technology 6502 . W ilościach jednostkowych 6502 sprzedawano za 25 USD, podczas gdy 6800 początkowo miał na celu 360 USD, ale do tego momentu został obniżony do 295 USD.

Były trzy powody niskiego kosztu 6502. Jednym z nich było to, że projektanci usunęli wszelkie funkcje, które nie były absolutnie wymagane. Doprowadziło to do usunięcia jednego z dwóch akumulatorów i zastosowania mniejszych 8-bitowych rejestrów indeksowych , co skutkowało mniejszą ilością okablowania wewnętrznego. Kolejną zmianą było przejście na logikę NMOS z ładowaniem zubożającym , nową technikę, która wymagała tylko +5V. 6800 miał zewnętrznie tylko jeden pin +5 V, ale wewnętrznie miał wiele napięć, co wymagało poprowadzenia oddzielnych szyn zasilających wokół chipa. Te dwie zmiany pozwoliły 6502 na 16,6 mm 2 , w przeciwieństwie do 6800 29,0 mm 2 , co oznacza, że ​​z jednego wafla można wyprodukować dwa razy więcej żetonów. Wreszcie, firma MOS zastosowała nowy system litografii Micralign , który poprawił średnią wydajność z około 10% do 70%.

Wraz z wprowadzeniem modelu 6502 Motorola natychmiast obniżyła cenę modelu 6800 do 125 USD, ale pozostała ona niekonkurencyjna, a perspektywy sprzedaży zmętniały. Wprowadzenie Micralign do linii Motoroli pozwoliło na dalsze redukcje i do 1981 roku cena ówczesnego 6800P była nieco niższa niż jego odpowiednika 6502, przynajmniej w ilościach jednostkowych. Jednak do tego momentu 6502 sprzedał dziesiątki milionów sztuk, a 6800 został w dużej mierze zapomniany.

6809

Podczas gdy 6502 zaczął przejmować rynek 6800, Intel doświadczał tego samego problemu, gdy nowicjusz Zilog Z80 zaczął kraść sprzedaż Intelowi 8080 . Zarówno Motorola, jak i Intel rozpoczęły nowe cykle projektowe, aby przeskoczyć te projekty. Proces ten doprowadził Intela do rozpoczęcia projektowania serii 16-bitowych procesorów, które pojawiły się jako Intel 8086 w 1978 roku. Motorola również rozpoczęła projektowanie podobnego, high-endowego projektu, w ramach projektu MACSS. Kiedy przeprowadzili ankietę wśród swoich obecnych 6800 klientów, okazało się, że wielu z nich pozostało zainteresowanych projektami 8-bitowymi i nie byli skłonni płacić za projekt 16-bitowy dla swoich prostych potrzeb. Doprowadziło to do decyzji o wyprodukowaniu znacznie ulepszonych, ale kompatybilnych 8-bitowych projektów, które stały się 6809.

Analiza kodu 6800 wykazała, że ​​obciążenia i magazyny stanowiły zdecydowaną większość przez cały czas pod względem procesora, stanowiąc 39% wszystkich operacji w kodzie, który zbadali. Natomiast operacje matematyczne były stosunkowo rzadkie, zaledwie 2,8% kodu. Jednak dokładne zbadanie obciążeń i magazynów wykazało, że wiele z nich było połączonych z dodawaniem i odejmowaniem, ujawniając, że znaczna część tych operacji matematycznych była wykonywana na wartościach 16-bitowych. Doprowadziło to do decyzji o włączeniu do nowego projektu podstawowej matematyki 16-bitowej; ładować, przechowywać, dodawać i odejmować. Podobnie inkrementacje i dekrementacje stanowiły tylko 6,1% kodu, ale prawie zawsze występowały one w pętlach, w których każda z nich była wykonywana wiele razy. Doprowadziło to do dodania trybów post-inkrementacji i pre-dekrementacji przy użyciu rejestrów indeksowych .

Głównym celem nowego projektu była obsługa kodu niezależnego od pozycji . Rynek Motoroli obejmował głównie systemy wbudowane i podobne systemy jednozadaniowe, które często uruchamiały programy bardzo podobne do tych na innych platformach. Rozwój tych systemów często przybierał formę zbierania serii wstępnie zwiniętych podprogramów i łączenia ich ze sobą. Jednakże, ponieważ język asemblerowy jest ogólnie pisany zaczynając od "adresu bazowego", łączenie wcześniej napisanych modułów normalnie wymagało długiego procesu zmiany stałych (lub "równań"), które wskazywały na kluczowe lokalizacje w kodzie.

Pomysł Motoroli polegał na wyeliminowaniu tego zadania i uczynieniu koncepcji klocków znacznie bardziej praktycznym. Integratorzy systemów po prostu połączyliby gotowy kod w pamięciach ROM, aby obsłużyć typowe zadania. Biblioteki typowych procedur, takich jak arytmetyka zmiennoprzecinkowa , prymitywy graficzne, kompresja Lempel-Ziv itd., byłyby dostępne do licencjonowania, łączenia razem z niestandardowym kodem i wypalania na ROM.

W poprzednich projektach procesorów, w tym 6800, istniało kilka sposobów odwoływania się do lokalizacji pamięci. Niektóre z nich odnosiły się do bieżącej lokalizacji w pamięci lub do wartości w rejestrze indeksowym, podczas gdy inne były wartościami bezwzględnymi, 16-bitowymi wartościami odnoszącymi się do fizycznej lokalizacji w pamięci. Poprzedni styl umożliwia przenoszenie kodu, ponieważ adres, do którego się odwołuje, przeniesie się wraz z kodem. Bezwzględne lokalizacje nie; kod, który używa tego stylu adresowania, będzie musiał zostać ponownie skompilowany, jeśli się przeniesie. Aby rozwiązać ten problem, 6809 wypełnił swoje kody instrukcji, aby było więcej przypadków adresowania względnego tam, gdzie to możliwe.

Jako przykład, 6800 zawierał specjalny "bezpośredni" tryb adresowania, który był używany do zmniejszania i przyspieszania kodu; zamiast adresu pamięci mającego 16 bitów i tym samym wymagającego dwóch bajtów do przechowywania, adresy bezpośrednie miały tylko 8 bitów. Wadą było to, że mógł odnosić się tylko do pamięci w 256-bajtowym oknie, „strony bezpośredniej”, która normalnie znajdowała się na dole pamięci – 6502 określał to jako „adresowanie strony zerowej”. 6809 dodał nowy 8-bitowy rejestr DP dla „strony bezpośredniej”. Kod, który wcześniej musiał znajdować się na stronie zerowej, można teraz przenieść w dowolne miejsce w pamięci, o ile zmieniono DP, aby wskazywał na nową lokalizację.

Użycie DP rozwiązało problem odwoływania się do adresów w kodzie, ale dane są zazwyczaj zlokalizowane w pewnej odległości od kodu, poza pamięcią ROM. Aby rozwiązać problem łatwego odwoływania się do danych, pozostając niezależnym od pozycji, 6809 dodał wiele nowych trybów adresowania. Wśród nich było adresowanie względem licznika programu, które umożliwiało odniesienie się do dowolnej lokalizacji w pamięci poprzez jej lokalizację względem instrukcji. Dodatkowo stos był szerzej stosowany, aby program w pamięci ROM mógł odłożyć blok pamięci w pamięci RAM, ustawić SP jako podstawę bloku, a następnie odwoływać się do danych w nim za pomocą wartości względnych.

Aby jeszcze bardziej wspomóc ten typ dostępu, 6809 zmienił nazwę SP na U dla „użytkownika” i dodał drugi wskaźnik stosu, S, dla „systemu”. Pomysł polegał na tym, że programy użytkownika używałyby U, podczas gdy sam procesor używałby S do przechowywania danych podczas wywołań podprogramów . Umożliwiło to łatwe wywołanie kodu systemowego przez zmianę S bez wpływu na żaden inny uruchomiony program. Na przykład program wywołujący procedurę zmiennoprzecinkową w pamięci ROM umieściłby swoje dane na stosie U, a następnie wywołałby procedurę, która następnie mogłaby wykonać obliczenia przy użyciu danych na własnym prywatnym stosie wskazywanym przez S, a następnie powrócić, pozostawiając stos U nietknięty.

Innym ważnym powodem rozszerzonego dostępu do stosu była obsługa kodu reentrant, kodu, który może być wywoływany z różnych różnych programów jednocześnie bez troski o koordynację między nimi, lub który może rekursywnie wywoływać sam siebie. To znacznie ułatwia budowę systemów operacyjnych ; system operacyjny miał własny stos, a procesor mógł szybko przełączać się między aplikacją użytkownika a systemem operacyjnym, po prostu zmieniając używany wskaźnik stosu. Z tego samego powodu znacznie ułatwia to obsługę przerwań .

Innym ważnym dodatkiem do 6809 był jeden z najwcześniejszych dedykowanych multiplikatorów sprzętowych, który pobierał 8-bitowe liczby w akumulatorach A i B i dał wynik w postaci A+B, znanych pod wspólną nazwą D. Dodano również nowy styl szybkiego przerwania, który automatycznie zapisywał tylko licznik programu i rejestr kodu warunku przed wywołaniem kodu przerwania, podczas gdy oryginalny styl w 6800, teraz określany jako „normalny”, zapisał wszystkie rejestry i w ten sposób zabrał dodatkowe cykle przed wywołaniem kodu przerwania i nie tylko, aby rozwinąć stos przy wyjściu.

Akceptacja rynkowa

Duża część projektu została oparta na koncepcji rynkowej kodu blokowego. Jednak rynek wstępnie zwiniętych modułów ROM nigdy się nie zmaterializował: jedynym wydanym przez Motorolę przykładem był zmiennoprzecinkowy ROM MC6839. Branża jako całość rozwiązała problem integracji modułów kodu z osobnych źródeł za pomocą automatycznego relokowania linkerów i programów ładujących , co jest obecnie stosowanym rozwiązaniem. Jednak decyzje podjęte przez zespół projektowy umożliwiły wielu użytkownikom, wielozadaniowe systemy operacyjne, takie jak OS-9 i UniFlex .

Dodatkowe funkcje 6809 były kosztowne; procesor miał około 9000 tranzystorów w porównaniu do 4100 w 6800 lub 3500 w 6502. Chociaż ulepszenia procesu oznaczały, że można go było wyprodukować taniej niż oryginalny 6800, te same ulepszenia zostały zastosowane w innych projektach, a więc względny koszt pozostał taki sam. Tak było w praktyce; w 1981 roku 6809 sprzedawano w ilościach jednostkowych za około sześć razy więcej niż 6502. W przypadku tych systemów, które wymagały niektórych jego specjalnych funkcji, takich jak mnożnik sprzętowy, system mógł uzasadnić swoją cenę, ale w większości ról był przeoczone.

Kolejnym czynnikiem jego niskiego wykorzystania była obecność nowszych konstrukcji o znacznie wyższej wydajności. Wśród nich był Intel 8086 , wydany w tym samym roku, oraz jego tańsza wersja, Intel 8088 z 1979 roku. Wyczucie problemu można dostrzec w asemblerze Byte Sieve w porównaniu z innymi popularnymi projektami z epoki (zaczerpniętymi z 1981 i 1983):

Porównanie sit bajtowych
Edytor sekundy
6502 1 MHz 13,9
Z80 4 MHz 6,8
6809 2 MHz 5.1
8086 8 MHz 1,9
68000 8 MHz 0,49

Chociaż 6809 oferował poprawę wydajności w porównaniu z 6502 i Z80, poprawa nie była zgodna ze wzrostem ceny. Dla tych, dla których cena nie była najważniejsza, ale bezwzględna wydajność, nowe projekty przewyższały ją nawet o rząd wielkości .

Jeszcze przed wydaniem 6809, w 1976 roku Motorola uruchomiła własny projekt zaawansowanego procesora, znany wówczas jako Motorola Advanced Computer System on Silicon project lub MACSS. Chociaż było zbyt późno, aby zostać wybranym do projektu IBM PC , kiedy MACSS pojawił się jako Motorola 68000 w 1979 r., zainteresował się modelem 6809. Motorola wkrótce ogłosiła, że ​​ich przyszłe 8-bitowe systemy będą zasilane przez okrojone wersje 68000 zamiast dalszych ulepszonych wersji 6809.

Główne zastosowania

Komputer kolorowy TRS-80

Jego pierwszym poważnym zastosowaniem był komputer kolorowy TRS-80 , co stało się w dużej mierze przez przypadek. Motorola została poproszona o zaprojektowanie terminala komputerowego obsługującego kolory na potrzeby internetowego projektu pomocy rolniczej, systemu znanego jako „AgVision”. Tandy ( Radio Shack ) została sprowadzona jako partner detaliczny i sprzedawała je pod nazwą „VideoTex”, ale projekt został ostatecznie anulowany wkrótce po jego wprowadzeniu w 1980 roku. Następnie Tandy przerobiła projekt, aby wyprodukować komputer domowy , który stał się jeden z najbardziej znaczących projektów 6809 wygrywa.

SuperPET SP9000

Szukając taniej platformy programistycznej dla studentów informatyki , University of Waterloo opracował system, który połączył komputer na karcie 6809 z istniejącym Commodore PET , w tym wiele języków programowania i edytorów programów w pamięci ROM . Wynik został później odebrany przez Commodore, który sprzedał go jako SuperPET lub MicroMainframe w Europie. Były one stosunkowo popularne w połowie lat 80., zanim wprowadzenie rynku klonów komputerów PC przejęło rolę programistyczną dla większości użytkowników.

Inne popularne zastosowania komputerów domowych to Fujitsu FM-7 , Canon CX-1, Dragon 32/64 i seria Thomson TO7 . Był również dostępny jako opcja w komputerach Acorn System 2 , 3 i 4. Większość projektów autobusów SS-50 , które zostały zbudowane wokół 6800, miała również opcje dla 6809 lub przeszła wyłącznie na niego. Przykładami są maszyny firm SWTPC , Gimix, Smoke Signal Broadcasting itp. Motorola buduje również serię systemów rozwojowych EXORmacs i EXORset.

Hitachi wyprodukował własne maszyny oparte na 6809, MB6890, a później S1. Były one przeznaczone głównie na rynek japoński, ale niektóre były eksportowane i sprzedawane w Australii , gdzie MB6890 nazwano „Peach”, prawdopodobnie w odniesieniu do Apple II . S1 wyróżniał się tym, że zawierał sprzęt do stronicowania rozszerzający natywny 64- kilobajtowy zakres adresowania 6809 (64×2 10 bajtów ) do pełnego 1 megabajta (1×2 20 bajtów) na 4 KB stronach. Było to podobne do maszyn produkowanych przez SWTPC , Gimix i kilku innych dostawców. Firma TSC wyprodukowała podobny do Uniksa system operacyjny uniFlex, który działał tylko na takich maszynach. OS-9 Level II również skorzystał z takich możliwości zarządzania pamięcią. Większość innych komputerów z adresowaniem pamięci powyżej 64 KB była ograniczona do przełączania banków, gdzie większość, jeśli nie całe 64 KB, zostało po prostu zamienione na inną część pamięci, chociaż w przypadku 6809 Motorola zaoferowała własne MMU MC6829 mapowanie projektu 2 megabajty (2×2 20 bajtów ) na stronach 2 KB.

Domowa konsola do gier wideo Vectrex

6809 znalazł również zastosowanie w różnych systemach gier wideo . Wśród nich godne uwagi jest wcielenie 68A09, w unikalnej maszynie do domowych gier wideo Vectrex opartej na grafice wektorowej . Był również używany w systemie Milton Bradley Expansion (MBX) (konsola arkadowa do użytku z komputerem domowym Texas Instruments TI-99/4A oraz seria gier arkadowych , wydanych na początku do połowy lat 80. XX wieku. Williams Electronics był płodny użytkownik procesora, który został wykorzystany w Defender , Stargate , Joust , Robotron: 2084 , Sinistar i innych. Procesor 6809 stanowi rdzeń udanego kontrolera Williams Pinball . KONAMI-1 to zmodyfikowany 6809 używany przez Konami w Roc'n Liny , Gyruss oraz The Simpsons .

Seria II Fairlight CMI (komputerowy instrument muzyczny) wykorzystywała dwa procesory 6809 z systemem OS-9 , a także używała jednego procesora 6809 na kartę głosową. 6809 był często używany w syntezatorach muzycznych innych producentów, takich jak Oberheim (Xpander, Matrix 6/12/1000), PPG (Wave 2/2.2/2.3, Waveterm A) i Ensoniq (sampler Mirage, SDP-1, ESQ1, SQ80). Ten ostatni używał 6809E jako głównego procesora. Wersja (E) została wykorzystana do synchronizacji zegara mikroprocesora z układem dźwiękowym (Ensoniq 5503 DOC) w tych maszynach; w ESQ1 i SQ80 zastosowano 68B09E, wymagający dedykowanej logiki arbitra w celu zapewnienia taktowania magistrali 1 MHz podczas uzyskiwania dostępu do układu DOC.

W przeciwieństwie do wcześniejszych produktów Motoroli, 6809 nie znalazł szerokiego zastosowania w dziedzinie mikrokontrolerów . Był używany w sterownikach sygnalizacji świetlnej produkowanych w latach 80. przez kilku różnych producentów, a także w sterownikach centralnych SMARTNET i SMARTZONE firmy Motorola (tak nazwanych „kontrolerem 6809”). Kontrolery te były używane jako procesory centralne w wielu trankingowych systemach dwukierunkowej komunikacji radiowej Motoroli.

6809 był używany przez firmę Mitel jako główny procesor w swoim biurowym systemie telefonicznym SX20

Wersje

Motorola 6809 była pierwotnie produkowana w prędkościachMHz , 1,5 MHz (68A09) i 2 MHz (68B09). Szybsze wersje zostały wyprodukowane później przez Hitachi. Z niewielkimi ulepszeniami, 6809 oznacza koniec ewolucji 8-bitowych procesorów Motoroli; Motorola zamierzała, aby przyszłe 8-bitowe produkty były oparte na 8-bitowej wersji magistrali danych 68000 ( 68008 ). Wersja mikrokontrolera z nieco zmodyfikowanym zestawem instrukcji 6811 została wycofana dopiero w drugiej dekadzie XXI wieku.

Hitachi 6309 to udoskonalona wersja 6809 z dodatkowych rejestrów i dodatkowych instrukcji, w tym bloku ruchu, dodatkowe instrukcje mnożenia i dzielenia.

Spuścizna

Motorola wydzieliła swój dział mikroprocesorów w 2004 roku. Dział zmienił nazwę na Freescale, a następnie został przejęty przez NXP .

Ani Motorola, ani Hitachi nie produkują już procesorów 6809 ani ich pochodnych. 6809 rdzeni jest dostępnych w VHDL i można je zaprogramować w FPGA i używać jako wbudowany procesor o prędkości znamionowej do 40 MHz. Niektóre kody operacji 6809 są również obecne we wbudowanych procesorach Freescale . W 2015 roku firma Freescale upoważniła firmę Rochester Electronics do ponownego rozpoczęcia produkcji MC6809 jako zamiennika i kopii oryginalnego urządzenia NMOS. Firma Freescale dostarczyła Rochester oryginalną bazę danych projektu fizycznego GDSII . Pod koniec 2016 r. MC6809 firmy Rochester (w tym MC68A09 i MC68B09) jest w pełni kwalifikowany i dostępny w produkcji.

Australijski programista John Kent zsyntetyzował procesor Motorola 6809 w języku opisu sprzętu (HDL). Umożliwiło to użycie rdzenia 6809 przy znacznie wyższych częstotliwościach zegara niż w oryginalnym 6809. CoCo3FPGA Gary'ego Beckera obsługuje rdzeń Kent 6809 przy 25 MHz. Matchbox CoCo Rogera Taylora działa z częstotliwością 7,16 MHz. CoCoDEV Dave'a Philipsena działa z częstotliwością 25 MHz.

Opis

Ogólny projekt

Wewnętrzna konstrukcja 6809 jest bliższa prostszym, niezakodowanym procesorom. Podobnie jak większość mikroprocesorów 8-bitowych, implementacja 6809 jest maszyną poziomu transferu rejestru , wykorzystującą centralny PLA do implementacji dużej części dekodowania instrukcji, a także części sekwencjonowania.

Podobnie jak 6800 i 6502, 6809 używa zegara dwufazowego do bramkowania zatrzasków. Ten dwufazowy cykl zegara jest używany w tych procesorach jako pełny cykl maszyny . Proste instrukcje można wykonać w zaledwie dwóch lub trzech takich cyklach. 6809 ma wewnętrzny dwufazowy generator zegara (wymaga tylko zewnętrznego kryształu), podczas gdy 6809E potrzebuje zewnętrznego generatora zegara. Istnieją warianty takie jak 68A09(E) i 68B09(E); wewnętrzna litera wskazuje znamionową szybkość zegara procesora.

6800, 6502, system zegarowy 6809 różni się od innych procesorów tamtej epoki. Na przykład Z80 używa pojedynczego zegara zewnętrznego, a wewnętrzne kroki procesu instrukcji są kontynuowane przy każdym przejściu. Oznacza to, że zegar zewnętrzny na ogół działa znacznie szybciej; Konstrukcje 680x zwykle działały z częstotliwością 1 lub 2 MHz, podczas gdy Z80 zwykle działał z częstotliwością 2 lub 4. Wewnętrznie 680x konwertował wolniejszy zegar zewnętrzny na wewnętrzny harmonogram o wyższej częstotliwości, więc na podstawie instrukcji dla instrukcji działały mniej więcej dwa razy. szybko porównując zegary zewnętrzne.

Zaletą dostępu w stylu 680x było to, że dynamiczne układy pamięci RAM z tamtych czasów zwykle działały z częstotliwością 2 MHz. Ze względu na taktowanie cyklu, istniały okresy zegara wewnętrznego, w których magistrala pamięci była gwarantowana jako wolna. Umożliwiło to projektantowi komputerów przeplatać dostęp do pamięci między procesorem a urządzeniem zewnętrznym, powiedzmy kontrolerem bezpośredniego dostępu do pamięci lub częściej chipem graficznym . Uruchamiając oba układy z częstotliwością 1 MHz i ustawiając je jeden po drugim, mogą dzielić dostęp do pamięci bez dodatkowej złożoności lub obwodów. W zależności od wersji i stopnia szybkości około 40–60% pojedynczego cyklu zegara jest zwykle dostępne dla dostępu do pamięci w 6800, 6502 lub 6809.

Rejestry i instrukcje

6809 model programowania, pokazujący rejestry procesora

Oryginalny 6800 zawierał dwa 8-bitowe akumulatory , A i B, jeden 16-bitowy rejestr indeksowy , X, 16-bitowy licznik programu , PC, 16-bitowy wskaźnik stosu , SP i 8-bitowy rejestr stanu . 6809 dodał drugi rejestr indeksowy, Y, drugi wskaźnik stosu, U (podczas zmiany nazwy oryginalnego S) i umożliwił traktowanie rejestrów A i B jako pojedynczego 16-bitowego akumulatora, D. Dodał również kolejny 8-bitowy rejestr bitowy DP, aby ustawić adres bazowy strony bezpośredniej. Te dodatki były niewidoczne dla kodu 6800, a 6809 był w 100% zgodny ze źródłami wcześniejszego kodu.

Innym znaczącym dodatkiem było adresowanie względem licznika programu dla wszystkich instrukcji manipulacji danymi. Był to kluczowy dodatek do kodu niezależnego od pozycji , ponieważ pozwala na odnoszenie się do danych względem instrukcji i tak długo, jak istnieje wynikowa lokalizacja pamięci, instrukcje można swobodnie przenosić w pamięci. System zachował również swoje poprzednie tryby adresowania, chociaż w nowym języku asemblera to, co wcześniej było oddzielnymi instrukcjami, było teraz uważane za różne tryby adresowania w innych instrukcjach. Zmniejszyło to liczbę instrukcji z 78 6809 do 59 6809. Te nowe tryby miały te same kody operacji, co poprzednio oddzielna instrukcja, więc te zmiany były widoczne tylko dla programisty pracującego nad nowym kodem.

Zestaw instrukcji i uzupełnienie rejestru są wysoce ortogonalne , dzięki czemu 6809 jest łatwiejszy do zaprogramowania niż współczesne. Podobnie jak 6800, 6809 zawiera nieudokumentowaną instrukcję testu szyny adresowej, która została nazwana Halt and Catch Fire (HCF) .

Uwagi

Bibliografia

Cytaty

Bibliografia

Dalsza lektura

Arkusze danych i instrukcje
Książki
  • 6809 Programowanie w języku asemblera ; 1-sze wydanie; Lance Leventhal; 579 stron; 1981; ISBN  0-931988-35-7 . (archiwum)
  • Książka kucharska MC6809 ; 1-sze wydanie; Carla Warrena; 180 stron; 1980; ISBN  0-8306-9683-0 . (archiwum)
  • Zaawansowany 8-bitowy mikroprocesor: MC6809: jego oprogramowanie, sprzęt, architektura i techniki łączenia ; 1-sze wydanie; Roberta Simpsona; 274 strony; 1998; ISBN  978-9813083097
Czasopisma
  • Mikroprocesor dla rewolucji: 6809 ; Terry Ritter i Joel Boney (współprojektanci 6809); magazyn BYTE; Styczeń-Luty 1979. (archiwum)
  • mikroprocesor MC6809 ; Uprawnienia Iana; Mikroprocesory, tom 2, wydanie 3; lipiec 1978; strona 162; ISSN  0308-5953 , doi : 10.1016/0308-5953(78)90010-7 .
Karty referencyjne
  • Karta referencyjna MC6809 ; Motorola; 16 stron; 1981. (archiwum)
  • 6809/6309 Karta referencyjna ; Chrisa Lomonta; 10 stron; 2007. (archiwum)

Zewnętrzne linki

Symulatory / Emulatory
Tablice
FPGA