Motorola 6809
A Motorola 6809 a Motorola cég egy 8 bites, 16 bites jellemzőket is mutató mikroprocesszora. A processzort 1978-ban mutatták be; tervezői Terry Ritter és Joel Boney voltak. Ez nagy előrelépés volt mindkét elődjéhez, a Motorola 6800-as processzorhoz és a hozzá kapcsolódó MOS Technology 6502-höz képest.
Leírás
[szerkesztés]A processzorban jelentős fejlesztéseket vezettek be. Ezek közül a legfontosabb a regisztereket érintette: a 6809 továbbra is két 8 bites akkumulátor-regisztert használ (A és B regiszterek), ám ezek egyetlen 16 bites regiszterré kombinálhatók, ez a D regiszter. További regiszterei a két 16 bites indexregiszter (X, Y) és két 16 bites veremmutató (U és S). Az index- és veremregiszterek lehetővé tették fejlett címzési módok kialakítását. A programszámláló-relatív címzés használatával igen könnyűvé vált a pozíciófüggetlen kód létrehozása, míg a felhasználói veremmutató (U) elősegítette reentráns (újrahívható) kód írását. A 6809 volt az első mikroprocesszor, amely képes volt teljesen pozíciófüggetlen kód használatára, programozási trükkök alkalmazása nélkül.
A 6809 a forráskód szintjén kompatibilis a 6800-as processzorral, annak ellenére, hogy kevesebb utasítása van: 59 a 6800-as 78 utasításával szemben. (A forráskód-szintű kompatibilitás nem ugyanaz, mint a bináris kompatibilitás: itt a tárgyprogramot nem lehet azonnal futtatni az új processzoron; a 6800-as „régi” forráskódot az újabb architektúrához készült assembly fordítóprogrammal újra kell fordítani.) Egyes utasításokat általánosabb új utasítások váltottak fel, amelyeket az assembler egyenértékű utasításokra fordít, néhány utasítást egyenesen címzési módokkal helyettesít. Az utasításkészlet és hozzá tartozó regiszterkészlet nagymértékben ortogonális, emiatt a 6809-es (gépi kódú) programozása könnyebb, mint a 6800-asé vagy a 6502-esé.
Ebben az eszközben találkozhatunk a szorzó utasítás egyik első, processzoron belüli hardveres megvalósításával, emellett támogatja a teljes 16 bites aritmetikát, és egy különösen gyors megszakítási rendszerrel rendelkezik. A 6800-ashoz hasonlóan,[1] ez is tartalmaz egy nem dokumentált címsín-tesztutasítást, amelyet némileg ironikusan Halt and Catch Fire (HCF, megállás és öngyulladás)) néven emlegetnek.[2]
A 6809-es állapotgépe és vezérlő logikája, a korabeli processzorok többségétől eltérően, nem mikrokódolt vezérléssel, hanem egy nagy PLA-val és huzalozott aszinkron vezérlőegységgel lett megvalósítva – ami inkább a korai eszközökre és, részben, a RISC kialakításokra jellemző. A 6809 a kétfázisú órajel ciklusát közvetlenül alapvető gépi ciklusként használja.
Ez azt jelenti, hogy kevesebb órajelciklus esik egy utasításra, például a Z80-nal összehasonlítva; a Z80 magasabb felbontású állapotgépe azonban 3–5-ször magasabb órajelfrekvenciát enged meg anélkül, hogy gyorsabb memóriacsipekre lenne szüksége, ami az 1980-as években még korlátozó tényező volt. A Z80 lassabb csipeket is használhatott, mivel a Z80 két teljes (de rövid) órajelciklust egyesít egy az órajelhez képest viszonylag hosszú memóriahozzáférési periódussá, míg a sokkal inkább aszinkron 6809-ben a memóriahozzáférési idővel viszonylag rövid: változattól és sebességtől függően, tipikusan egy órajelciklus 60%-a elérhető a memóriahozzáférés számára (az adatlapok szerint).
A 6809-nek egy belső kétfázisú órajelgenerátora van (amely csak egy külső kristályt igényel), míg a 6809E változatnak külső órajelgenerátorra is szüksége van. Más változatok is megjelentek, például a 68A09(E) és 68B09(E); ezeknél a belső betű a processzor névleges órajelét jelöli.
Történet
[szerkesztés]A Motorola 6809 eredetileg 1 MHz, 1,5 MHz (68A09) és 2 MHz-es (68B09) órajelű változatokban készült. A Hitachi cég később gyorsabb változatokat is készített. A 6809-est néha úgy emlegetik, mint a Motorola 68000 processzorcsalád elvi elődjét, de ez nem így van. A 6809 és 68000 tervezési projektek részben párhuzamosan futottak, a processzorok architektúrája meglehetősen eltérő, és megvalósítási elveik is gyökeresen különböznek. A két kialakításban megfigyelhetők filozófiai hasonlóságok, például a nagy fokú ortogonalitás és rugalmas címzési módok az utasításkészletben, néhány szintaktikus elem és opkód-mnemonik hasonlósága az assembly nyelvekben, de a 6809 alapvetően a 6800 származéka miközben a 68000-es (68k) egy teljesen új kialakítás. A 68000-nek egy 8 bites adatbusszal készült változatát – a Motorola 68008-at – a jövőbeli 8 bites rendszerekben történő felhasználásra tervezték. A 6809-es jelzi az evolúció végét a Motorola 8 bites processzorainál. Egy mikrovezérlő-változatának, a kissé módosított utasításkészlettel készült 6811-esnek a gyártása nem is olyan régen, a 21. század második évtizedében szűnt meg, de szintetizálható IP magként továbbra is rendelkezésre áll.[3][4]
A 6809 tervezőcsapata úgy gondolta, hogy a jövőbeli rendszerintegrátorok ROM-okban terjeszthető, használatra kész kódot igényelnek az általános feladatok kezelésére. A Motorola hivatalos programozási kézikönyve[5] tartalmazza az assist09 program teljes listáját, ami egy monitorprogram, azaz miniatűr operációs rendszer, amelyet úgy terveztek, hogy ROM-ba lehessen égetni. Az ROM-kód egy másik példája lehet a bináris lebegőpontos aritmetika megvalósítása, ami általános követelmény sok rendszerben. Az elgondolás szerint a gyártó általános kód-modulokat kínál(t volna), amelyek a más gyártóktól származó kóddal együtt rendszerekbe integrálhatók, így elkerülhető lenne a házon belüli fejlesztés és lecsökkenne a piacra kerülési idő. Mivel a processzortervezők aligha képesek előrelátni egy bizonyos kód pontos memóriabeli elhelyezkedését egy jövőbeli rendszerben, a 6809-es tervezésénél az egyik tervezési cél a pozíciófüggetlen, újrahívható (re-entrant) kód támogatása volt, amely szabadon elhelyezhető bárhol a memóriatérképen. A pozíciófüggetlen kódolás lehetősége megvalósult, de a fenti elgondolás a gyakorlatban nem teljesült: a Motorola mindössze egyetlen ROM-ba helyezett szoftvermodult adott ki, az MC6839-es lebegőpontos ROM-ot. Ugyanakkor a tervezők döntései egy nagyon erős processzort eredményeztek, és lehetővé tették olyan fejlett operációs rendszerek kifejlesztését, mint az OS-9 és a UniFlex. Ezek többfelhasználós többfeladatos operációs rendszerek, amelyek kihasználják a 6809-es pozíciófüggetlen kódot és reentráns eljáráshívásokat támogató felépítését.
A Hitachi 6309 a 6809 egy továbbfejlesztett változata, amely további regiszterekkel és hozzáadott utasításokkal bővült, beleértve a blokk-mozgatást, további szorzóutasításokat és a hardveresen megvalósított osztást. A nem hivatalosan frissített Tandy Color Computer 3 számítógépekben használták, és egy OS-9 verzió is készült a 6309 bővített lehetőségeinek kihasználására: a NitrOS-9 rendszer.
Sem a Motorola, sem a Hitachi nem gyártja már a 6809 processzorokat vagy származékait. 6809-es magok VHDL leírásban beszerezhetők és FPGA-ba programozhatók; ezeket beágyazott processzorként használják és akár 40 MHz sebességet is elérhetnek. Néhány 6809-es opkód szintén tovább él a Freescale beágyazott processzoraiban. 2015-ben a Freescale engedélyezte a Rochester Electronics cég számára, hogy az újrakezdje az MC6809 gyártását, frissített cserealkatrészként és az eredeti alkatrészek másolataként. A Freescale átadta a Rochester Electronics számára az eredeti GDS2 fizikai tervezési adatbázist. 2015 végén a Rochester elkezdte az MC6809 csip gyártásának előkészítését; a termelés várhatóan 2016 júliusában kezdődik.
Miután a Motorola Freescale-re változtatta a nevét, a Freescale egyesült az NXP holland félvezetőgyártó vállalattal és a cég továbbra is kínál „legacy” 8 bites processzorokat.[3]
Alkalmazás
[szerkesztés]A 6809-est a Commodore kétprocesszoros SuperPET számítógépében alkalmazták, 68A09-es megtestesülésében az egyedi vektorgrafikus Vectrex otthoni videójáték-konzolban, és használták még a Milton Bradley Expansion (MBX) rendszerben, ami egy igen fejlett videójáték-konzol bővítés volt a TI-99/4A otthoni számítógéphez. A 6809E processzor szerepelt a TRS-80 Color Computer (CoCo), az Acorn System 2, 3 és 4 számítógépekben (ezekben a standard 6502 processzorok alternatívájaként), az Fujitsu FM-7, a Canon CX-1, a Dragon 32/64 (brit hobbiszámítógép-család) otthoni számítógépekben, az SWTPC (amerikai elektronikai cég), Gimix, Smoke Signal Broadcasting, stb. gyártók SS-50 sínrendszerű gépeiben, ezen kívül a Motorola saját EXORmacs és EXORset fejlesztőrendszereiben. Franciaországban a Thomson micro-informatique készített 6809E-en alapuló mikroszámítógép-sorozatot (TO7, TO7/70, TO8, TO8D, TO9, TO9Plus, MO5, MO6, MO5E és MO5NR).
Az otthoni számítógépek és játékkonzolok mellett, a 6809-et számos játékautomatában is felhasználták az 1980-as évek első felében. A Williams Electronics különösen termékeny felhasználója volt a processzornak, amelyeket játékautomata-sikerjátékokkal együtt telepítettek, mint például a Defender, Joust, Sinistar, és a Robotron: 2084. A Williams szintén felhasználta a processzort számos elektronikus pinball gépében; a 6809-es CPU alkotta a magját a sikeres Williams Pinball Controller alaplapnak. A KONAMI-1 egy módosított 6809 volt, amelyet a Konami használt különféle játékautomata-sorozatokban, például a The Simpsons gépekben.[6]
Az 1980-as években a 6809-es processzort közlekedési jelvezérlőkbe is beépítette több gyártó.[7]
A Microware szoftverfejlesztő cég fejlesztette a 6809 számára az eredeti OS-9 operációs rendszert (nem összetévesztendő az újabb Mac OS 9-cel), később ezt portolta a 68000-es és i386 mikroprocesszor-családokra is.
A Fairlight CMI (számítógépes hangszer) Series II sorozatának tagjai két 6809 CPU-t tartalmaznak és OS-9-et futtatnak, ezek hangszintetizátor-kártyái is 6809 processzort tartalmaznak. A 6809-est zenei szintetizátorokban más gyártók is előszeretettel használták, például az Oberheim (Xpander, Matrix 6/12/1000), PPG (Wave 2/2.2/2.3, Waveterm A) és Ensoniq (Mirage sampler, SDP-1, ESQ1, SQ80). Az utóbbiban a 6809E főprocesszorként szerepel. Az (E) verziót speciálisan azzal a céllal választották, hogy az szinkronizálja a mikroprocesszor órajelét a hangcsipéhez ezekben a gépekben (Ensoniq 5503 DOC); az ESQ1-ben és SQ80-ben a 68B09E processzor szerepe az, hogy dedikált döntési logikával kiegészítve fenntartsa az 1 MHz-es sínidőzítést a DOC csippel való kommunikáció alatt.
A Hitachi saját 6809-alapú gépeket készített, az MB6890 jelű típust és később az S1-est. Ezek elsősorban a japán piacra szánt gépek voltak, de néhányat exportáltak és értékesítettek Ausztráliában is. Ott az MB6890-et „Peach” néven forgalmazták, ez valószínűleg ironikus utalás az Apple II népszerűségére (gyümölcs – gyümölcs). Az S1 technikailag figyelemre méltó annyiban, hogy a 6809-es natív 64 KiB-os címzési tartományát teljes 1 MiB-ra kiterjesztő lapozó hardvert tartalmaz 4 KiB-os lapokkal. Ebben a SWTPC (amerikai elektronikai cég), Gimix és mások által gyártott gépekhez hasonlított. A TSC készített egy Unix-szerű operációs rendszert, a UniFlex-et, ami csak ezeken a gépeken futott. Az OS-9 Level II szintén kihasználta ezt a memóriakezelő infrastruktúrát. A korabeli 64 KiB-nál nagyobb memóriacímzéssel rendelkező egyéb számítógépek memóriakezelése a bankváltásra korlátozódott, ahol a 64 KiBos memória egy részét vagy akár az egészet egyszerűen felcserélték a memória egy másik részével.
Az első Macintosh prototípus, a Burrell Smith-féle wire-wrap huzalozású gép szintén 6809-es processzort tartalmazott.[8]
Mindezeken túl, a 6809 processzor az 1980-as évek közepétől kezdve még a 2000-es évek elején is használatban volt a Motorola SMARTNET és SMARTZONE „Trunked Central Controller” távolsági központi vezérlőiben (amelyeket ezért „6809-es vezérlő” néven is emlegettek). Ezeket a vezérlőket központi processzorként használja a Motorola több távolsági kétutas rádiókommunikációs rendszere. Ezek megbízható platform- és vezérlőként széles körben elfogadott eszközök voltak, ami a processzor további alkalmazására is hatással volt.
Technikai adatok
[szerkesztés]- 8 bites processzor
- 8 bites adatsín
- 16 bit széles címsín (64 KiB memória címezhető)
- két 8 bites adatregiszter (A és B), összefogható egy 16 bites adatregiszterré (D)
- két 16 bites veremmutató (S és U)
- két 16 bites indexregiszter (X és Y)
- egy 16 bites utasításszámláló (PC)
- megszakítások támogatása (interrupt)
- az első 8 bites mikroprocesszor 8 × 8 → 16 bites szorzás-utasítással
- 59 gépi utasítás
- közel 9000 tranzisztor
A processzor 40 lábú DIP / CERDIP és 44-lábú PLCC tokozásban került forgalomba.
Jegyzetek
[szerkesztés]- ↑ Wheeler, Gerry (1977. december 1.). „Undocumented M6800 Instructions” (angol nyelven). BYTE Magazine 2 (12), 46-47. o. (Hozzáférés: 2016. október 15.)
- ↑ John Bayko: Part VI: The 6809, extending the 680x (1977) (angol nyelven). Great Microprocessors of the Past and Present. The CPU Shack, 2005. „it included the undocumented HCF (Halt Catch Fire) instruction ...”
- ↑ a b http://www.nxp.com/products/microcontrollers-and-processors/more-processors/8-16-bit-mcus/8-bit-hc11-legacy:DRMCRHC11FAM
- ↑ http://www.design-reuse.com/sip/6811-68HC11-microcontroller-c-340/
- ↑ Motorola: MC6809-MC6809E Microprocessor Programming Manual (angol nyelven) (pdf) pp. 1/220. Motorola, 1983. május 1.
- ↑ Archivált másolat. [2012. október 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. október 16.)
- ↑ http://books.google.ca/books/about/Advanced_8_bit_microprocessor_MC6809.html?id=orNQAAAAMAAJ&redir_esc=y
- ↑ Hertzfeld, Andy: Good Earth. Folklore.org, 1980. október 1. (Hozzáférés: 2009. december 29.)
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a Motorola 6809 című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Ez a szócikk részben vagy egészben a Motorola 6809 című német Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
[szerkesztés]Olvasmányok
[szerkesztés]- MC6809 Datasheet; Motorola (Freescale); 36 oldal; 1983.
- MC6809E Datasheet; Motorola (Freescale); 34 oldal.
- MC6809-MC6809E 8-Bit Microprocessor Programming Manual; Motorola (Freescale); 220 oldal; 1981.
- 6809 Assembly Language Programming; Lance Leventhal; Osborne/McGraw-Hill; 579 oldal; 1981; ISBN 0-931988-35-7.
- The MC6809 Cookbook; Carl Warren; TAB Books; 1980 pages; ISBN 0-8306-9683-0.
- A Microprocessor for the Revolution: The 6809; Terry Ritter & Joel Boney; BYTE Publications; 1979.
- MC6809 microprocessor; Ian Powers; Microprocessors, Volume 2, Issue 3; July 1978; page 162; ISSN 0308-5953, doi:10.1016/0308-5953(78)90010-7.
További információk
[szerkesztés]- http://koti.mbnet.fi/~atjs/mc6809/ Archiválva 2016. január 24-i dátummal a Wayback Machine-ben – (Collection of 6809 instructions, emulators, tools, debuggers, disassemblers and assemblers) – eszközök a 6809-es programozásához
- The BYTE 6809 Articles (Jan–February 1979) Archiválva 2010. február 15-i dátummal a Wayback Machine-ben (PDF) – By Terry Ritter and Joel Boney, co-designers of the 6809; BYTE magazine reproductions by tim lindner
- news://comp.sys.m6809 – „Usenet newsgroup for 6809 enthusiasts” – hírcsoport
- 6809 Emulator based on the SWTPC 6809 system – emulátor
- Open source 6809 Emulator in JavaScript – emulátor
- Instruction set reference for 6809/6309 (PDF) – utasításkészlet áttekintés, Chris Lomont
- NitrOS-9 project – operációs rendszer
Kapcsolódó szócikkek
[szerkesztés]- Motorola 6800
- FLEX operációs rendszer