Motorola MC6809P
A Motorola 6809 egy 8-bites (ez vita témáját képezheti: egy 8/16-bites) mikroprocesszor, 1979-ben mutatták be. Jelentős előrelépés volt mind elődjéhez, a 6800-ashoz, mint a versenytárs MOS Technology 6502-eshez képest.
Leírása
A 6809-esben megjelenő jelentős fejlesztések között az első az volt, hogy a két akkumulátor (A és B) kombinálható volt egyetlen 16-bites regiszterré (D). Szintén jelentős volt a két 16-bites indexregiszter (X, Y) és a két 16-bites veremmutató (U, S). Az index- és veremregiszterek nagyon fejlett címzési módokat tettek lehetővé.
A 6809 forráskód-kompatibilis volt a 6800-assal, bár a 6800-asnak 78 utasítása volt a 6809-es mindössze 59 utasításával szemben. Néhány 6800-as utasítást általánosabb utasítások váltottak le, amelyeket az assembler ekvivalens kódokká fordított le, másokat meg az új címzésmódok helyettesítettek. Az utasításkészlet és a regiszterek használata nagymértékben ortogonális volt, és ez a 6809-es mikroprocesszort a kor egyik legkönnyebben programozható CPU-jává tette.
További újdonság volt a szorzás hardveres megvalósítása egy MPU segítségével, a teljes értékű 16-bites aritmetika és egy különösen gyors megszakítási rendszer. A 6809 nagy mértékben optimalizált volt, akár ötször gyorsabban is tudott dolgozni, mint a 6800-as sorozatú CPU-k. Akárcsak a 6800-asnak, ennek is megvolt a dokumentálatlan busz teszt utasítása, amivel némely memóriakontrollerek korlátait át lehetett lépni.
A 6809-es magas fokú optimalizáltsága az jelenti, hogy a kor többi processzorával ellentétben a 6809-es utasításai leginkább hardveresen kerültek megvalósításra, nem mikrokóddal. Ez a RISC processzorokkal válik majd általánossá, de csak a 90-es években. Ennek köszönhetően egy utasítás végrehajtása kevesebb órajelciklust igényelt. Például az "ADDA 63" utasítás három ciklusnyi időt igényelt, kettőt az utasítás lehívására, és egyet a végrehajtásra. A Zilog Z80-ason, ami a 6809-es egyik fő versenytársa volt, ez az utasítás 7 órajelciklust igényelt. Vagyis a Z80-asnak legalább dupla akkora órajel kellett ahhoz, hogy nagyjából egy teljesítményszinten legyen a 6809-essel. A Motorola 6809-es ezenkívül (a MOS Technology 6502-eshez hasonlóan) a memória eléréséhez is egy ciklusnyi időt igényelt. Egy szimpla memóriaolvasás a Z80-ason például minimum három ciklust igényelt.
A 6809-es CPU-nak belső órajelgenerátora volt (amihez azért szükségeltetett egy külső kristály), míg a 6809E-nek külső órajelre volt szüksége További variánsok a 68A09(E) és a 68B09(E); a belső betű a processzor maximális órajelét jelzi.
Története
Eredetileg 1 MHz-es, 1,5 MHz-es (68A09) és 2 MHz-es (68B09) sebességekkel készült. Később a Hitachi (és talán mások is) gyorsabb változatokat is készített. Időnként a 68000-es család előfutárának is tekintik, noha ez leginkább félreértés. A 6809 és a 68000 tervezése jobbára párhuzamosan haladt, és mindkét processzort 1979-ben mutatták be. Természetesen a tervezési filozófiájukban van egy csomó hasonlatosság (pl. a jelentős ortogonalitás és a flexibilis címzésmódok), az assembly szintaxisuk is mutat hasonlóságokat, de a 6809-es a 6800-as leszármazottja, míg a 68000-es egy teljesen új tervezésű CPU volt. Egy 8-bites adatbusszal bíró 68000-es változat (nevezetesen a 68008) volt arra hivatott, hogy a későbbi 8-bites alkalmazásokat kiszolgálja. Ezt figyelembe véve a 6809-es inkább evolúciós zsákutca volt.
A 6809-est tervező csapat úgy gondolta, hogy a jövő rendszerintegrátorai a ROM-ba helyezett, mintegy a "polcról levehető" programokat előnyben fogják részesíteni a mindennapi programozási rutinfeladatok végrehajtásához a házon belüli fejlesztéssel szemben. Erre egy példa lehet a bináris lebegőpontos aritmetika, ami a legtöbb rendszerben általános igény. Azért, hogy a piacra kerülést felgyorsíthassák - gondolták a 6809-es tervezői -, az általános kód modulokat inkább megvennék, mintsem kifejlesztenék, és így integrálnák egybe azokat más gyártók kódrészleteivel. Mivel egy CPU tervezője nemigen tudja azt garantálni, hogy hová kerül majd egy adott kódrészlet a memóriában, a 6809-es design-ja erősen összpontosított a pozíciófüggetlen, reentráns kódok támogatására, amelyek a memórián belül bárhol szabadon elhelyezhetőek. Ez a feltételezés azonban soha nem vált valóra: a Motorola egyetlen kiadott példa ROM-modulja az MC6839-s lebegőpontos ROM-volt. Mindazonáltal a döntés, amelyet a tervezőcsapat meghozott, nagyon erőteljes processzort eredményezett, és lehetővé tette fejlett operációs rendszerek, pl az OS-9 és az UniFlex kidolgozását, amelyek előnyt tudtak kovácsolni a 6809-es pozíciófüggetlen, reentráns természetéből.
A Commodore kétprocesszoros SuperPET gépe is 6809-esekre épült. A 68A09 az egyedülálló módon vektoros grafikát felvonultató Vectrex otthoni videokonzol lelke lett. A TRS-80 Color Computer-ben (CoCo) a 6809E-t használták ugyancsak az Acorn System 2, 3 és 4 gépekben (opcionális alternatívájaként a standard 6502-es CPU-nak), továbbá a CoCo brit klónjában, az egy időben itthon is kapható Dragon 32/64 házi számítógépekben. Franciaországban a Thomson egy sor mikroszámítógépbe építette be a 6809E-t: TO7, TO7/70, TO8, TO8D, TO9, TO9Plus, MO5, MO6, MO5E és MO5NR.
A házi számítógépek és konzolok mellett a 6809-es jónéhány játéktermi gépben is előfordult a 80-as évek elején és közepén. A Williams Electronics különösen nagy felhasználója volt a processzornak, amelyet olyan arcade sikerekben alkalmazott, mint a Defender, a Joust, a Sinistar és a Robotron: 2084. Jónéhány flipperben is használták, a sikeres Williams Pinball Controller lelke is a 6809-es volt.
A Microware szoftverfejlesztő cég dolgozta ki az eredeti OS-9 operációs rendszert (nem keverendő ösze a sokkal újabb Mac OS 9-cel) a 6809-esre, és később átvitte azt a 68000-esre és az i386 sorozatú processzorokra is.
A Hitachi 6309 egy további fejlesztéseket is tartalmazó CPU-változat volt, extra regiszterekkel és új utasításokkal, beleértve a blokkmozgató és további szorzási utasításokat, és hardveresen megvalósított osztást. Suba alatt upgrade-elték vele a CoCo 3 gépeket, és még az OS-9-nek is készült egy változata, ami kihasználta a 6309-es extra tulajdonságait: a NitrOS-9.
A Hitachi szintén elkészítette a maga 6809-alapú gépeit, az MB6890-et és később az S1-et. Ezek elsősorban a japán piac számára készültek, de néhányat exportáltak Ausztráliába is. Ott az MB6890 a "Peach" (Barack) nevet kapta, ami ironikus utalás volt az Apple II népszerűségére. Az S1 arról volt nevezetes, hogy lapozó hardvert tartalmazott, amivel a 6809-es natív 64 kilobájtos címtartományát 1 megabájtra terjesztette ki, 4 kilobájtos lapokat használva. Később más gyártók is kijöttek hasonló megoldásokkal. A TSC egy Unix-szerű operációs rendszert, a UniFlex-et fejlesztette ki, ami csak ilyen gépeken futott. Az OS-9 Level II szintén profitált ezekből a memóriakezelési képességekből. A kor legtöbb, 64 kilobájtnál nagyobb memóriát alkalmazó gépe arra volt kárhoztatva, hogy bankok váltásával oldja meg az extra memória elérését: ez sokszor azt jelentette, hogy a teljes 64 kilobájtot egyszerűen kicserélte a hardver egy másik 64 kilobájtos bankra.
A 6809-est és leszármazottait már sem a Motorola, sem a Hitachi nem gyártja, annak ellenére sem, hogy a 6809-es volt a legerőteljesebb általános célú 8-bites CPU. Nagyon sok újító jellegű megoldása volt, amiket azóta is másolnak. 6809-es magokat használnak VHDL-ekben, vagy beágyazott processzorként egészen 40 MHz sebességig. Néhány 6809 opkód tovább él a Freescale beágyazott processzorokban.

Súgó
A téma zárva.
















