Motorola 6809

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Motorola 6809E taktowana zegarem 1 MHz

Motorola 6809 to 8-bitowy mikroprocesor firmy Motorola wprowadzony na rynek w 1979. 6809 był technologicznie znaczniej bardziej zaawansowany niż jego poprzednik Motorola 6800 oraz późniejszy klon 6800 – MOS Technology 6502.

6809 jest uważany za jeden z najlepszych 8-bitowych procesorów, które były kiedykolwiek produkowane.

Opis[edytuj | edytuj kod]

Rejestry procesora Motorola 6809

Do najistotniejszych usprawnień zapoczątkowanych w 6809 zaliczyć należy wykorzystywanie dwóch 8-bitowych akumulatorów (A i B, które są łączone w jeden 16-bitowy rejestr D), dwa 16-bitowe rejestry indeksowe (X, Y) oraz dwa 16-bitowe wskaźniki stosu (U, S). Rejestry stosu i indeksowe umożliwiały zaawansowane tryby adresowania.

Procesor 6809 był kompatybilny z 6800 na poziomie kodu źródłowego, jednak ten ostatni miał 78 pozycyjną listę rozkazów procesora, natomiast 6809 miał 59 instrukcji. Niektóre instrukcje zostały zastąpione przez bardziej ogólne, natomiast asembler zamieniał je na odpowiedniki tych operacji. Inne instrukcje zostały zastąpione trybami adresowania. Zestaw instrukcji oraz rejestrów był wysoce ortogonalny, co sprawiało, że 6809 był łatwiejszy w programowaniu od pozostałych podobnych mikroprocesorów w tamtym czasie.

Innymi rozwiązaniami były: jedna z pierwszych sprzętowych implementacji instrukcji mnożenia w MPU, pełna arytmetyka 16-bitowa oraz zwłaszcza szybki system przerwań. Procesor 6809 był także niezwykle wydajny, ponad pięć razy szybszy od serii procesorów 6800, włączając w to nieudokumentowaną instrukcję testującą szynę adresową określaną jako HCF (Halt and Catch Fire).

Procesor 6809 wykazywał szczególną optymalizację wykonywania instrukcji porównywaną do architekury RISC. Potrzebował znacznie mniej cykli zegarowych do przetworzenia kolejnych instrukcji. Dla przykładu operacja "ADDA 63" potrzebuje trzech cykli zegarowych – dwóch na pobranie (ang. fetch) instrukcji oraz jednego do wykonania operacji; Procesor Zilog Z80, jeden z głównych konkurentów 6809, rozkaz "ADD A,63" wykonywał w siedem cykli zegarowych. Dlatego Z80 potrzebował przynajmniej dwukrotnie większej częstotliwości zegara taktującego, jeśli chciał się równać z wydajnością 6809. Oprócz tego, podobnie jak ich krewniacy (np. MOS Technology 6502), 8-bitowe procesory Motoroli potrzebowały jeden cykl zegarowy na dostęp do pamięci, w przeciwieństwie do wewnętrznego cyklu, tak jak to miało miejsce w pozostałych mikrokomputerach w tamtym czasie. Pojedyncza operacja odczytu z pamięci na Z80 dla przykładu wymagała minimum trzech cykli zegarowych.