MOS Technology 6502 - MOS Technology 6502


z Wikipedie, otevřené encyklopedie
MOS Technology 6502
MOS 6502AD 4585 top.jpg
MOS 6502 procesor v DIP-40 plastovém obalu. Čtyřmístný kód data indikuje, že byla vyrobena v 45. týdnu roku 1985
produkoval 1975 ; Před 43 lety ( 1975 )
Společný výrobce (y)
Max. Procesor Taktovací frekvence 1 MHz až 3 MHz
instrukční sada MOS 6502
tranzistory 3510, 3218
Instrukce 56
šířka dat 8
šířka adresa 16
Balík (y)

MOS Technology 6502 (typicky „šedesát pět-nula-dva“ nebo „šest až pět-nula-dva“ ) je 8-bitový mikroprocesor , který byl navržen tak malým týmem vedeným Chuck rozšiřuje pro MOS Technology . Když byl zaveden v roce 1975, 6502 byl, se značným rozpětím, nejméně nákladné mikroprocesoru na trhu. To zpočátku prodával za méně než jednu šestinu nákladů konkurenčních návrhů z větších společností, jako je Motorola a Intel , a způsobil rychlý pokles cen napříč celým trhem procesoru. Spolu s Z80 , že vyvolala řadu projektů, které mělo za následekDomácí počítač revoluce ze začátku roku 1980.

Populární domácí herní konzole a počítače, jako Atari 2600 , Atari 8-bit family , Apple II , Nintendo Entertainment System , Commodore 64 , Atari Lynx , BBC Micro a jiné látky, použité 6502 nebo variací základního provedení. Brzy po 6502 úvodu, MOS Technology byla koupena přímo od Commodore International , která dál prodávat mikroprocesor a licence jiných výrobců. V prvních dnech 6502, to byla druhá ze zdrojů by Rockwell a Synertek a později povolil jiným společnostem. Ve své CMOS podobě, který byl vyvinut v západní Design Center , rodina 6502 pokračuje být široce používán v embedded systémech , s odhadovaným objemem výroby ve stovkách milionů.

Historie a použití

Počátky společnosti Motorola

Motorola 6800 Demonstrace deska postavená Chuck rozšiřuje a John Buchanan v roce 1974

6502 byl navržen mnoho stejných inženýrů, které navrhli Motorola 6800 mikroprocesoru rodinu. Motorola zahájili projekt 6800 mikroprocesoru v roce 1971 s Tomem Bennett jako hlavní architekt. Dispozice čip začala koncem roku 1972, první 6800 čipy byly vyrobeny v únoru 1974 a úplné rodina byla oficiálně vydána v listopadu 1974. John Buchanan byl návrhář 6800 čipu a Rod Orgill, který později dělal na 6501, ve spolupráci s Buchanan analýzy obvodů a rozložení čip. Bill Mensch připojila Motorola v červnu 1971 poté, co absolvoval University of Arizona (ve věku 26). Jeho první převod byl pomáhal definovat okrajové obvody pro rodinu 6800 a později byl hlavním designérem 6820 Peripheral Interface Adapter (PIA). Motorola inženýři mohl běžet analogové a digitální simulace na IBM 370-165 sálového počítače. Bennett najal Chuck rozšiřuje v roce 1973 dělat architektonické podpory práce na 6800 produktů z rodiny již probíhá. On přispěl v mnoha oblastech, včetně návrhu na 6850 ACIA (sériové rozhraní).

Cíloví zákazníci společnosti Motorola byly stanoveny elektroniky firmy jako Hewlett-Packard, Tektronix, TRW a Chrysler. V květnu 1972, Motorola inženýři začali návštěvou vybrané zákazníky a sdílet údaje o své navrhované 8-bitový mikroprocesor systém s ROM, RAM, paralelní a sériové rozhraní. Na začátku roku 1974, za předpokladu, že technické vzorky čipů tak, aby zákazníci mohli prototyp své návrhy. Motorola strategie „celková produktová řada“ se nezaměřuje na cenu mikroprocesoru, ale na snížení celkových nákladů návrhu zákazníka. Nabídli vývoj software na časový úsek počítače, „ EXORciser “ ladění systému, on-site školení a podpory inženýr pole aplikací. Oba Intel a Motorola zpočátku oznámil $ 360 cenu za jediného mikroprocesoru. (Dále jen IBM System / 360 mainframe byl dobře známý počítač v té době). Skutečná cena za množství produkce bylo mnohem méně. Motorola nabídla designu kit obsahující 6800 s šesti podpůrné čipy za $ 300 mm.

Rozprodávat, který by doprovázel lidi prodeje na návštěvách zákazníků, zjistil, že zákazníci byli odradí vysoké náklady na mikroprocesorové čipy. Snížit cenu, velikost Čip by musel zmenšit tak, aby více čipy by mohly být vyráběny na každé křemíkové destičce . Toho lze dosáhnout odstraněním nepodstatných funkcí v 6800 a používat novou technologii zhotovení, „vyčerpání-load“ MOS tranzistorů. Rozprodávat a ostatní členové týmu začali navrhovat design zlepšené funkce, redukuje mikroprocesoru velikosti. V té době, Motorola nové výrobě polovodičů zařízení ve městě Austin, Texas byl potíže produkující MOS čipy a v polovině roku 1974 byl začátek celoroční recese v polovodičovém průmyslu. Také, mnoho z Mesa, Arizona zaměstnanci byli nespokojen s nadcházející stěhování do Austinu. Vedení Motorola polovodičových výrobků divize byl zaplaven problémy a neprojevil zájem o low-cost návrhu mikroprocesoru rozprodávat své. Chuck rozšiřuje byl frustrován s vedením společnosti Motorola pro chybějící tuto novou příležitost. V listopadu 1975 rozhovoru, předseda společnosti Motorola, Robert Galvin, souhlasil. Řekl: „Nechtěli jsme zvolit správné lídry v divizi Semiconductor Products.“ Divize byla reorganizována a vedení vyměnit. Říká nová skupina viceprezident John Welty, „Organizace prodeje polovodičů ztratila svou citlivost na potřeby zákazníků a nemohl k rychlým rozhodnutím.“

Rozprodávat začal hledat zdroje financování tohoto nového projektu a našel malý polovodičové společnosti v Pensylvánii. V srpnu 1974, Chuck rozšiřuje, Bill Mensch, Rod Orgill, Harry Bawcum, Ray Hirt, Terry Holdtova a Wil Mathys opustil Motorola připojit MOS Technology . (Mike James připojil později.) Ze sedmnácti čipových návrhářů a uspořádání lidí na 6800 tým, sedm vlevo. Tam bylo 30 až 40 ostatní obchodníci, aplikační inženýři a systémoví inženýři na 6800 tým. Že prosince, Gary Daniels převedena do mikroprocesoru skupiny 6800. Tom Bennett nechtěl opustit oblast Phoenix tak Daniels převzal vývoje mikroprocesoru v Austinu. Jeho prvním projektem byl „vyčerpání-load“ verze 6800; Tento řez čipovou plochu téměř na polovinu a na dvojnásobek rychlosti. Čím rychleji díly byly k dispozici v červenci 1976. To bylo následováno v 6802, který přidal 128 bajtů RAM a on-chip hodiny oscilátor obvodu.

Stěhování do MOS Technology

1973 MOS Technology inzerátu zvýraznění své vlastní integrované funkce obvodu
MOS Technology MCS6501

MOS Technology byla založena v roce 1969 třemi manažery z General Instrument , Mort Jaffe, Don McLaughlin, a John Pavinen, vyrábět kov-oxid-polovodič (MOS) integrované obvody. Allen-Bradley , dodavatel elektronických součástek a průmyslové řízení, získala většinový podíl v roce 1970. Společnost navržen a vyroben na zakázku ICS pro zákazníky a vyvinuli řadu kalkulátor čipů.

Dne 19. srpna 1974, bývalí zaměstnanci společnosti Motorola přesunul do centrály MOS technologie je v Valley Forge, Pennsylvania. Cílem bylo navrhnout a vyrobit mikroprocesor s nízkými náklady pro vestavěné aplikace a zaměřit se co nejširší zákaznické základny. To by bylo možné pouze v případě, že mikroprocesor byl nízké náklady a v polovodičovém podnikání, velikost čip stanoví jako náklady. Cílem velikost požadované N-Channel „vyčerpání-load“ MOS tranzistorů , pokročilejší proces než kalkulátor čipy MOS technologie používané na. John Päivinen byl schopen mít výrobního procesu připravený do června 1975. Chuck rozšiřuje, Rod Orgill a Wil Mathys určený počáteční architektuře nových procesorů. Tam by byl dvěma mikroprocesory: 6501 by se zapojit do stejné zásuvky jako Motorola 6800, zatímco 6502 bude pracovat s 6800 rodinných periferií a mít on-chip hodiny oscilátor. Tyto procesory by neběží 6800 software, protože měli jinou sadu instrukcí, různé registry, a především různé adresování režimy. 09. 1975 článek v časopise EDN dává tento souhrn design:

Rodina MOS Technology 650X představuje vědomý pokus o osm bývalých zaměstnanců společnosti Motorola, kteří pracovali na vývoji systému 6800 uhasit díl, který by nahradil a překonat 6800, ještě pod cenou ji. S odstupem času získal na projektu 6800, tým MOS Technology čele Chuck rozšiřuje, učinil následující architektonické změny v procesoru Motorola ...

Druhý akumulátor „B“ se vynechá. 16-bit 6800 index registr s 8-bit offset v instrukci byl nahrazen dvěma 8-bit indexových registrů s 8-bit nebo 16-bit offset. Ovládání Třístavový byl vyřazen z adresové sběrnice výstupů. Hodiny generátor byl zařazen na čipu. Adresa autobus byl vždy aktivní, takže výstup VMA (platí-adresa paměti) byl vyřazen. Výraz „ 8080 se přidá -typ“ RDY signál pro jediný cyklus taktování.

Konstrukce čip vysoké úrovni musela být otočen do výkresů tranzistorů a propojení. Na MOS Technology, dále jen „layout“ Byl to velmi manuální proces provádí pomocí barevné tužky a pergamenu papírem. Dispozice se skládala z tisíců tvarů polygonu na šesti různých výkresech; jeden pro každou vrstvu procesu zhotovení polovodičů. Rod Orgill byl zodpovědný za 6501 designu; mu pomáhal John Buchanan společnosti Motorola na 6800. Bill Mensch udělal 6502; byl návrhář 6820 Peripheral Interface Adapter (PIA) na Motorola. Harry Bawcom, Mike James a Sydney-Anne Holt pomohl s rozložením.

Cílem velikost 6502 čipu byl 153 x 168 mils (3,9 x 4,3 mm) nebo na ploše 16,6 mm 2 . V té době by technická literatura uvádí, délka a šířka každého čipu v „mil“ (0,001 palce). Menší ploše čipu znamená více čipů na křemíkové desky a vyšší výtěžek za vady jsou obvykle náhodně, ale rovnoměrně rozptýleny v celé destiček oblasti. Takže čím více čipů na oplatku, tím menší je podíl vadných čipů k celkovému oplatka čipy. Původní 6800 čipy byly určeny jako 180 x 180 mil, ale rozložení byla dokončena na 212 x 212 mil (5,4 x 5,4 mm) nebo o ploše 29,0 mm 2 . První 6502 čipy byly 168 x 183 mils (4,3 x 4,7 mm) nebo na ploše 19,8 mm 2 . Instrukce Rotate Right (ROR) nefungovala v první křemíku, takže instrukce byla dočasně vynechat z publikovaných dokumentů, ale příští iterace návrhu snížil čip a pevně pokyn Otočit doprava, která pak byla zahrnuta do revidované dokumentaci ,

Představujeme 6501 a 6502

Úvodní reklama pro MOS Technology MCS6501 a MCS6502 mikroprocesory.

Mikroprocesor zavedení MOS technologie byla zcela odlišná od tradičního měsíce trvající uvedení produktu na trh. Premiéra nového integrovaného obvodu se obvykle používá pro interní testování a sdílet s vybranými zákazníky jako „vzorky inženýrství“. Tyto čipy mají často menší konstrukční závadu nebo dvě, které budou upravena před zahájením výroby. Chuck rozšiřuje cíl měl prodávat prvním běhu 6501 a 6502 žetony s účastníky na veletrhu Wescon v San Francisku počátkem 16. září 1975. rozprodávat byl velmi účinný mluvčí a mikroprocesory MOS Technology byly rozsáhle popsány v odborném tisku. Jedním z prvních byl přes celou stránku příběh o mikroprocesory MCS6501 a MCS6502 v 24.července 1975 vydání Electronics časopisu. Příběhy také běžel v EE Times (24. srpna 1975), EDN (20. září 1975), Electronic News (3. listopadu 1975), Byte (listopad 1975) a mikropočítačem Digest (listopad 1975). Reklamy na 6501 se objevil v několika publikacích první týden v srpnu 1975. 6501 bude na prodej Wescon za $ 20 každý. V září 1975 se reklamy zahrnoval oba 6501 a 6502 mikroprocesory. 6502 by tak stál pouze $ 25.

Když MOS Technology dorazil Wescon zjistili, že vystavovatelé nemohli prodat cokoliv na výstavní ploše. Pronajali Macarthur Suite v St. Francis Hotel a režie zákazníky tam nakupovat procesory. U sady, procesory byly skladovány ve velkých nádobách znamenat, že třísky jsou ve výrobě a jsou snadno dostupné. Zákazníci nevěděli spodní poloviny z každé nádoby obsahoval nefunkční čipy. Čipy byly $ 20 a $ 25, zatímco balíček dokumentace bylo dalších $. 10 Uživatelé byli vyzváni, aby kopie dokumentů, s nízkými náklady pro MOS Technology šířit informace o produktu. Zpracovatelé měli mít 56 instrukce, ale (ROR) instrukce Rotate Right nefungoval správně na těchto čipů, takže předběžné listech uvedeny jen 55 instrukcí. Přezkoumání v byte a EDN konstatoval nedostatek instrukce ROR. Příští revize rozložení pevné tento problém a května 1976 list uvedena 56 pokynů. Rozprodávat chtěl každý zájemce inženýra a nadšence mít přístup k čipy a dokumentace; Jiné společnosti vyrábějící polovodiče chtěl zabývat pouze „závažné“ zákazníky. Například Signetics se zavedením 2650 mikroprocesor a jeho reklamy požádal čtenáře, aby psát o své společnosti hlavičkový papír.

pinů rozdíly
Kolík 6800 6501 6502
2 Stůj připravený připravený
3 ∅1 (v) ∅1 (v) ∅1 (z)
5 Platný Memory Address Platný Memory Address NC
7 Bus k dispozici Bus k dispozici SYNC
36 Data Bus Enable Data Bus Enable NC
37 ∅2 (v) ∅2 (v) ∅0 (v)
38 NC NC Nastaven příznak přetečení
39 Three-State Control NC ∅2 (z)

Motorola soud

Května 1976 list vynechal 6501 mikroprocesor, který byl v srpnu 1975 verze.

6501/6502 Zavedení v tištěné podobě a na Wescon byl obrovský úspěch. Nevýhodou bylo, že rozsáhlé zprávy v tisku dostala Motorola pozornost. V říjnu 1975, Motorola zlevnili jediného 6800 mikroprocesoru od $ 175 až $. 69 Konstrukce systému kit $ 300 se snížil na $ 150 a nyní se přišlo s plošnými spoji. Dne 3. listopadu 1975, Motorola hledal příkaz u federálního soudu zastavit MOS technologie od výroby a prodeje mikroprocesoru produktů. Oni také podal žalobu prohlašovat porušení patentu a zpronevěru obchodního tajemství. Motorola tvrdí, že sedm bývalých zaměstnanců spojené MOS Technology vytvořit mikroprocesoru produkty této společnosti.

Motorola byl miliardy dolarů společnost s pravděpodobným případem a právníků. Dne 30. října 1974, Motorola podala řadu patentových přihlášek na rodině mikroprocesoru a bylo uděleno dvacet pět patentů. První se konal v červnu 1976 a druhý byl Bill Mensch dne 6. července 1976 o 6820 rozložení PIA třísky. Tyto patenty se týkalo 6800 autobus a jak periferní čipy interfacem s mikroprocesorem. Motorola začal dělat tranzistorů v roce 1950 a měl ve svém portfoliu polovodičových patentů. Allen-Bradley se rozhodl nebojovat tento případ a prodali svůj zájem o MOS Technology zpět k zakladatelům. Čtyři z bývalých inženýrů Motorola kteří byli uvedeni v obleku: Chuck rozšiřuje bude MATHYS, Bill Mensch a Rod Orgill. Všichni byli jmenováni vynálezce v 6800 patentových přihlášek. Během procesu zjišťování, Motorola zjistila, že jeden inženýr, Mike James, ignoroval rozprodávat instrukce a přinesl jeho 6800 projektovou dokumentaci k MOS Technology. V březnu roku 1976 se nyní nezávislé MOS Technology byla dojdou peníze a musel se spokojit případu. Shodli se na tom upustit 6501 procesor, zaplatit Motorola $ 200,000 a vrátit dokumenty, které Motorola namítli, byly důvěrné. Obě společnosti se dohodly na cross-licenční mikroprocesorových patentů. Že května Motorola snížil cenu jediného 6800 mikroprocesoru k $. 35 V listopadu Commodore získala MOS Technology.

Počítače a hry

S právní problémy za sebou, MOS byla stále ponechána s problémem dostat vývojáři zkusit své procesor, pobízet Chuck rozšiřuje navrhnout MDT-650 ( „Rozvoj terminálu mikropočítač“) jednodeskový počítač . Další skupina uvnitř společnosti navrhl KIM-1 , který byl prodáván semi-úplná a obrátil do použitelného systému s přidáním 3. strana počítačový terminál a kompaktní kazety disku. Ke svému úžasu, Kim-1 prodávají také k fandům a tinkerers, stejně jako inženýři, ke kterému to bylo cílené. Příbuzný Rockwell AIM 65 control / trénink vývojový systém / i dařilo. Tento software v AIM 65 byl založen na tom v MDT. Další zhruba podobný produkt byl Synertek SYM-1 .

Jeden z prvních „veřejný“ používá pro konstrukci byl Apple I mikropočítač , který byl zaveden v roce 1976. 6502 byl příští použitý v Commodore PET a Apple II , oba vydali v roce 1977. To bylo později použit v Atari 8-bit rodina a Acorn Atom domácích počítačů, tím BBC Micro , Commodore VIC-20 a další návrhy jak pro domácí počítače a podnikání, jako je Ohio vědu a Oričem . 6510 , přímý nástupce 6502 s digitální I / O port a s tri-state adresovou sběrnici, byl procesor používaný při nejprodávanějšího Commodore 64 domácího počítače. Commodore floppy disk drive je 1541 , měl procesor jeho vlastní, to taky byla 6502.

Další důležité použití rodu 6500 byl ve videohrách. První využívat designu procesoru byl Atari VCS, později přejmenována na Atari 2600 . VCS používá odnož 6502 nazvaný 6507 , který měl méně pinů a, jako výsledek, by se mohla týkat pouze 8  KB paměti. Miliony konzolí Atari bude prodán, z nichž každý má procesor MOS. Dalším významným použití bylo podle systému Nintendo Entertainment a Famicom . 6502 použitý v NES byl druhý zdroj verze od Ricoh , částečné systém-on-a-chip , který postrádal desetinnou binárně kódované režimu, ale přidá 22 paměťové mapované registry (a-die hardware) pro generování zvuku, joypad četba a sprite seznam DMA . Volal 2A03 v NTSC konzolách a 2A07 v PAL konzolí (rozdíl bytí dělič paměti poměr a vyhledávací tabulka pro zvukové vzorkové míry), tento procesor byl vyroben výhradně pro Nintendo . Atari Lynx používal 4MHZ verzi čipu, 65SC02.

V roce 1980, populární elektronický časopis Elektor / Elektuur používá procesor ve své rozvojové mikroprocesor desky Junior Computer .

Technický popis

6502 zapojení vývodů (40-pin DIP )
MOS 6502 registry
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (Bitová pozice)
Hlavními registry
  A ccumulator
registry index
  X X index
  Y Y index
0 0 0 0 0 0 0 1 SP S lepivost P ointer
programový čítač
PC P rogram C ounter
stavový registr
  N PROTI - B D Z C P procesoru vlajek

6502 je little-endian 8-bitový procesor s 16-bitovou adresovou sběrnicí . Původní verze byly vyrobeny za použití 8 um proces Čipová technologie s inzerovaný velikosti matrice 153 x 168 mil (3,9 x 4,3 mm) nebo na ploše 16,6 mm 2 .

Vnitřní logika běží při stejné rychlosti jako externí taktovací frekvence, ale přes pomalé rychlosti hodin (typicky v sousedství 1 až 2 MHz ), výkon 6502 byl konkurenceschopný s ostatními současné procesory s použitím podstatně rychlejší hodiny. Toto je částečně kvůli zjednodušující státní stroj zavedeném kombinační (clockless) logiky ve větší míře, než v mnoha jiných konstrukcí; Dvoufázový hodiny (přivádění dvou synchronizace na cyklus), čímž se může řídit celý stroj -cycle přímo. Typické instrukce může trvat půl tolik cyklů dokončit na 6502, než současných designech. Jako většina jednoduchých CPU éry, dynamický NMOS 6502 čip není sekvenovány mikrokódu ROM, ale používá PLA (které zaujímají asi 15 procent plochy čipu) pro instrukce dekódování a sekvenování. Jako většina osmibitových mikroprocesorů, čip se některé omezené překrývání načítání a provedení.

Taktovací frekvenci nízko moderované požadavek rychlosti paměti a periferních zařízení připojených k procesoru, protože pouze asi 50 procent z taktu byl dostupný pro přístup do paměti (díky asynchronní design, tento podíl významně lišil mezi čipu verze). To byl kritický v době, kdy dostupné paměti měla přístupové časy v rozmezí 250 - 450 ns . Původní NMOS 6502 byl minimalisticky navržen a účinně vyroben a proto levné, důležitým faktorem při získávání designem vítězí v cenově velmi citlivé na herní konzole a domácí počítač trzích.

Stejně jako jeho předchůdce je Motorola 6800 , 6502 má velmi málo registrů . Za tímto účelem je CPU obsahuje nulové-stránkový režim adresování, který používá jeden adresní bajt v instrukci namísto dvou potřebné k řešení plnou 64 KB paměti. To poskytuje rychlý přístup k prvních 256 bajtů paměti RAM pomocí kratších pokynů. Chuck rozšiřuje řekl v interview, že specifická záměrem bylo, aby tyto prvních 256 bajtů paměti RAM, které mají být použity jako registry.

registry

6502 registruje obsahovat jeden 8-bitový akumulační registr (A), dvě 8-bitových registrů indexů (X a Y), 7 procesor stavový příznak bitů (P), 8-bitový ukazatel zásobníku (S), a 16-bit programový čítač (PC). Adresní prostor Stoh je hardwired na stránce paměti $ 01 , tj rozsahu adres $ 0100 - $ 01FF ( 256 - 511 ). Přístup software do komína se provádí pomocí čtyř předpokládaných instrukcí, které se zabývají režimem, jejichž funkce jsou k tlačení nebo pop (pull) akumulátor nebo stav procesoru registr. Stejný zásobník se používá také pro volání podprogramů pomocí JSR (skok na podprogramu) a RTS (návrat z podprogramu) instrukce a pro přerušení manipulaci.

adresování

Čip používá index a zásobník účinně registruje několik režimů adresování , včetně rychle „přímé straně“ nebo „ zero strana režimu“, podobný tomu, který našel na PDP-8 , který přistupuje paměťových míst od adresy 0 až 255 s jednou 8-bitové adresy (šetří cyklus normálně potřebný k načtení vysoké pořadí bajt adresy) Co de za 6502 používá nulová strana, kolik kódu pro jiné procesory by se použít registry. U některých 6502 na bázi mikropočítače s operačním systému OS používá většina z nulové stránky, takže jen několik míst pro uživatele.

Adresování režimy zahrnují také naznačil (1 instrukce bajtu); absolutní (3 bajty); indexované absolutní (3 bajty); indexována nulové stránka (2 bajty); relativní (2 bajty); akumulátor (1); nepřímé, x a nepřímé, y (2); a okamžitá (2). Absolutní režim je režim pro všeobecné použití. Instrukce větvení pouze podepsané 8-bit posun vzhledem k pokynu po pobočky; číselná řada -128..127 proto se promítá do 128 bajtů dozadu a 127 bajtů vpřed z instrukce následující větve (což je 126 bytů dozadu a 129 bajtů dopředu od začátku instrukce větvení). Režim akumulátor využívá akumulátor jako efektivní adresy, a nepotřebuje žádné operand data. Okamžitý režim používá 8bitový doslovný operand.

nepřímé adresování

Nepřímé režimy jsou užitečné pro poli zpracování a jiné zacyklení. S 5/6 cyklu „(nepřímý), y“ režimu, 8-bitový registr Y se přidá do 16-bitové základní adresa pro čtení z nulové stránky, která se nachází u jednoho bajtu po operačním kódu. Registr Y je tedy index -register v tom smyslu, že se používá pro zastavení skutečnou index (jako protiklad k registru X v 6800, kde byla základní adresu přímo uložen a které okamžitě offset může být přidán). Zvyšování hodnoty indexový registr chodit pole byte-moudrý trvá jen dva další cykly. S méně často použitý „(nepřímý, x)“ režimu efektivní adresa pro provoz se nachází na nulovou adresu stránky vytvořeného přidáním druhého bajt instrukce k obsahu registru X.. Použitím indexovaných režimech strana nula účinně působí jako soubor až 128 další (i když velmi pomalu) adresových registrů.

6502 je schopen provést sčítání a odčítání v binárním nebo BCD . Umístěním procesor do režimu BCD s SED (set D vlajky) vede výuku v desítkové aritmetiky, v němž $ více než 99 $ 01 by vedla k $ 00 a carry (C) příznak je nastaven. V binárním režimu ( CLD , jasné D vlajky), stejná operace bude mít za následek $ 9A a carry flag právě zrušeno. Jiné než Atari BASIC režim BCD zřídka používán v domácí počítačové aplikace.

Podívejte se na Hello world! článek o jednoduchý, ale charakteristický příklad 6502 assembleru .

podrobné chování

Procesoru NMI (NMI), vstup je hrana citlivý , což znamená, že přerušení se spouští na sestupnou hranu signálu, spíše než jeho úroveň. Důsledkem této funkce je, že pevné, nebo přerušení obvodu není snadno podporován. Nicméně, toto také předejde vnořené NMI přerušení vyskytují dokud hardware dělá NMI vstup opět aktivní, často pod kontrolou NMI popisovač přerušení .

Současné tvrzení z NMI a IRQ (maskable) Hardware přerušení linky způsobí, že IRQ být ignorován. Nicméně, v případě, že IRQ zůstane tvrdil po servisu NMI, procesor bude okamžitě reagovat na IRQ, protože IRQ je hladina citlivý . Tak nějak vestavěnou prioritu přerušení byla založena v roce 6502 design.

„Break“ příznak procesoru je velmi odlišná od ostatních bitů vlajky. To nemá nastavení příznaku, resetování, nebo testování pokyny jeho vlastní, a není ovlivněn PHP a PLP pokyny. Existuje jen v zásobníku, kde BRK a PHP vždy napsat 1, zatímco IRQ a NMI vždy napsat 0.

Dále jen „SO“ vstupní pin, když tvrdil, nastaví stav přetečení bit procesoru (deaktivací to nevymaže bit přetečení, nicméně). To může být použit vysokorychlostní dotazování ovladače zařízení, které mohou dotazovat hardware jednou za tři cykly pomocí-Clear Branch-on-overflow ( BVC ) pokyn, který větví po sobě. Například, Commodore 1541 a další Commodore floppy disk disky používají tuto techniku k detekci bez odkladu, zda serializer je připraven přijmout nebo poskytnout další byte dat na disku. Je zřejmé, velká péče musí být použit v ovladači zařízení a souvisejícího návrhu systému, jako podvržený tvrzení bitu přepadového zrujnuje aritmetické zpracování.

Návod k jazykové Assembly

6502 assembleru výkaz se skládá z návodu třímístné mnemotechnická pomůcka , po němž následovala operandu v případě pokynu, který bere operand. Po sestavení, výsledný strojový kód se skládá z jednoho bajtu operační kód ( operačního kódu ), následovanou jedním nebo dvěma bajtů operandu, v případě, že instrukce byla sestavena s operand, tudíž 6502 strojové instrukce se liší v délce jedním až třemi bajtů. Operand je uložen v obvyklém 6502 je little-endian formátu . 65C816 , 16-bit CMOS verze 6502, také podporuje 24-bitové adresování, což vede k obsluze je sestaven s tříbytové operandy, také uspořádány v malé endian formátu.

Varianty a deriváty

Existovalo několik variant NMOS 6502:

  • Technologie MOS 6503 snížil adresování paměti schopnost (4 KB) a žádný vstup RDY, v DIP balíček 28-pin (s fází 1 (OUT), synchronizace, redundantní Vss, a tedy i vynechány kolíky 6502).
  • Technologie MOS 6504 snížil adresování paměti způsobilosti (8 KB), bez NMI, a žádný vstup RDY, v DIP balíček 28-pin (s fází 1 (OUT), SYNC, redundantní Vss, takže čepy 6502 také vynechány).
  • Technologie MOS 6505 snížil adresování paměti schopnost (4 KB) a ne NMI, v DIP balíček 28-pin (s fází 1 (OUT), synchronizace, redundantní Vss, a tedy i vynechány kolíky 6502).
  • Technologie MOS 6506 snížil adresování paměti způsobilosti (4 KB), bez NMI, a žádný vstup RDY, ale všechny 3 hodiny kolíky 6502 (tj výstupním hodiny 2-fáze), v DIP balíček 28-pin (s SYNC, redundantní Vss, a tedy i vynechány kolíky 6502).
  • Technologie MOS 6507 snížil adresování paměti schopnost (8 KB) a žádné přerušení, v DIP balíček 28-pin (s fází 1 (OUT), synchronizace, redundantní Vss, a tedy i vynechány kolíky 6502).
  • MOS Technology 6508 má zabudovaný-in 8-bitový vstup / výstupní port a 256 bajtů vnitřní statické paměti RAM.
  • Technologie MOS 6509 mohl adresovat až 1 MB paměti RAM as 16 bankami 64 kB a byl používán v Commodore CBM-II série.
  • MOS technologie 6510 má vestavěný 6-bit programovatelné vstupní / výstupní port, a byl použit v Commodore 64 .
  • Technologie MOS 6512 byla 6502 s hodinovým vstupem 2-fáze pro externí hodinového oscilátoru, namísto palubní hodinového oscilátoru.
  • Technologie MOS 6513 bylo z 6503 se vstupem hodinového 2 fází, jako je 6512.
  • Technologie MOS 6514 bylo z 6504 se vstupem hodinového 2 fází, jako je 6512.
  • Technologie MOS 6515 bylo z 6505 se vstupem hodinového 2 fází, jako je 6512.
  • Ricoh 2A03 byl 6502 varianta zahrnující zpracování zvuku jednotky a chybí režim BCD, který se používá v Nintendo Entertainment System .
  • 6502A byla 1,5 MHz čip uváděný v Asteroids Deluxe .
  • 6502B taktovaný na 1,79 MHz byl použit v časných Atari 8-bitových počítačů.
  • 6502C (Sally) byl uživatelsky 6502 čip použit v pozdějších Atari 8-bitových počítačů. Má zastavení signál na kolík 35 a druhý R / W na čepu 36 (ty kolík jsou N / C na standardní 6502).
  • 65C02 je CMOS verze NMOS 6502, který byl navržen Bill Mensch na západní Design centra , kde najdete spotřeba snížena energie, podpora mnohem vyšších taktovacích frekvencích, nové instrukce, nové adresování režimy některých stávajících pokynů a korekce NMOS errata , jako je JMP ($ xxFF) chyba.
  • CSG 65CE02 byl derivát CMOS vyvinutý Commodore polovodičová skupina (CSG), dříve MOS technologií.
  • Rockwell R65F11 (zaveden v roce 1983) a později R65F12 jsou lepší verze procesoru 6502-bázi, také včetně čipu nulové strana RAM, na čipu Forth jádra ROM, UART , atd.
  • GTE G65SC102 je software kompatibilní s 65C02, ale má trochu jiný pinout a oscilátor obvodu. BBC Mistr Turbo zahrnoval verzi 4 MHz tohoto procesoru na koprocesor kartu, která by mohla být také zakoupit samostatně a přidal se k Master 128.
  • Rockwell R65C00, R65C21 a R65C29 představoval dva rozšířené CMOS 6502s v jediném čipu, a R65C00 a R65C21 navíc obsahoval 2 kb masky programovatelné ROM.

6512, 6513, 6514, a 6515

Technologie MOS 6512, 6513, 6514 a 6515 každý spoléhat na externí hodiny, namísto použití vnitřní hodiny generátor, jako je 650x (např 6502). Tato částka byla použita s výhodou v některých provedeních, kde by mohly být hodiny spuštěny asymetricky, což zvyšuje celkový výkon procesoru.

6512 byl použit v BBC Micro B + 64 .

16-bitové deriváty

Western Design Center navržen av současné době produkuje W65C816S procesor, 16-bit, static-core nástupce 65C02 , s výrazně vylepšenými funkcemi. W65C816S je novější variantou 65C816, který byl jádrem Apple II GS počítači a byl základem 5A22 Ricoh procesor, který poháněl populární Super Nintendo Entertainment System . W65C816S obsahuje drobné vylepšení oproti 65C816, které dělají novější čip není exaktní hardware kompatibilní náhrada za starší jeden. V současné době k dispozici prostřednictvím distributorů elektroniky od listopadu 2017 W65C816S stojí asi US $ 8 (až pod US $ 6 hromadně) a jsou určeny pro provoz 14 MHz.

Western Design Center také navržen a produkoval 65C802 , který byl 65C816 jádro s adresovým prostorem 64 KB v pin kompatibilní obalu 65 (C) 02. 65C802 mohla být dodatečně do 6502 desky a bude fungovat jako 65C02 na power-up, pracující v „režimu emulace.“ Stejně jako u 65C816, dvou-posloupnost instrukcí by přepnutí 65C802 na „nativní režim“ operace, vystavovat jeho 16 bitů akumulátor a registrů indexů , stejně jako další 65C816 vylepšené funkce. 65C802 nebyl široce používán: nové vzory téměř vždy byly postaveny kolem 65C816, což vede k produkci 65C802 bude pozastavena.

32-bitové deriváty

65GZ032 navržený Gideon Zweijtzer je VHDL zdrojem jádro, které je kompatibilní s 6502 a rozšiřuje 8-bitové CPU 32-bit provedení. Je vybaven pipeline RISC , nové opcodes, přístup k 4 GByte lineární paměti, paměti stránkovaného a taktovaný na 33 MHz.

Příklad kódu

Vkládá 6502 assembleru zdrojový kód je pro podprogram s názvem TOLOWER, který kopíruje null-ukončena řetězec znaků z jednoho místa na druhé, převedení horní znaky malé písmeno na malými písmeny. Řetězec kopírované je „zdroj“ a řetězec, do kterého převedený zdroj je uložen je „cíl.“











0080

0080  00 04
0082  00 05

0600

0600  A0 00

0602  B1 80
0604  F0 11

0606  C9 41
0608  90 06

060A  C9 5B
060C  B0 02

060E  09 20

0610  91 82
0612  C8   
0613  D0 ED




0615  38   
0616  60

0617  91 82
0618  18   
0619  60

061A       
; TOLOWER:
;
;   Convert a null-terminated character string to all lower case.
;   Maximum string length is 255 characters, plus the null term-
;   inator.
;
; Parameters:
;
;   SRC - Source string address
;   DST - Destination string address
;
        ORG $0080
;
SRC     .WORD $0400     ;source string pointer ($40)
DST     .WORD $0500     ;destination string pointer ($42)
;
        ORG $0600       ;execution start address
;
TOLOWER LDY #$00        ;starting index
;
LOOP    LDA (SRC),Y     ;get from source string
        BEQ DONE        ;end of string
;
        CMP #'A'        ;if lower than UC alphabet...
        BCC SKIP        ;copy unchanged
;
        CMP #'Z'+1      ;if greater than UC alphabet...
        BCS SKIP        ;copy unchanged
;
        ORA #%00100000  ;convert to lower case
;
SKIP    STA (DST),Y     ;store to destination string
        INY             ;bump index
        BNE LOOP        ;next character
;
; NOTE: If .Y wraps the destination string will be left in an undefined
;  state.  We set carry to indicate this to the calling function.
;
        SEC             ;report string too long error &...
        RTS             ;return to caller
;
DONE    STA (DST),Y     ;terminate destination string
        CLC             ;report conversion completed &...
        RTS             ;return to caller
;
        .END

Chyby a vtípky

  • Nejčasnější revize 6502, jako jsou dodávány s některými KIM-1 počítačů, měl vážnou chybu v ROR (Otočit doprava paměti nebo akumulátoru) instrukce. Provoz ROR v těchto čipů je v podstatě pokyn ASL, která nemá vliv na carry bit ve stavovém registru. MOS opustil poučení z čipové dokumentace zcela z důvodu vady, slibovat, že ROR by se objevil na 6502 čipů od roku 1976. Naprostá většina 6502 čipů v existenci dnes nevykazují tuto chybu.
  • NMOS 6502 rodina má řadu neregulérních instrukcí , které se liší od jednoho výrobce čipu k příští. Dekódování instrukce 6502 je realizován v drátového hradlového pole (podobně jako u programovatelného logického ), který je definován pouze pro 151 256 dostupných operačních kódů . Zbývajících 105 trigger podivné a občas těžko předvídat akce, jako je shazovat procesoru, provádí dva platné pokyny za sebou, hrát podivné směsi ze dvou instrukcí, nebo prostě dělat vůbec nic. Eastern Dům Software vyvinul „Trap65“, což je zařízení, které připojený mezi procesorem a zásuvky pro převod (trap) neimplementovaný opcodes do BRK (software přerušení) pokynů. Někteří programátoři využívané Tato funkce slouží k prodloužení instrukce 6502 je nastaven tím, že poskytuje funkce pro nerealizovaných opcodes se speciálně písemného softwarem zadržena na BRK návod k jeho 0xFFFE vektoru. Všechna nedefinovaných opcodes byly nahrazeny NOP instrukcí na 65C02 , rozšířené CMOS verze 6502, i když s různou velikostí bajtů a lhůty pro provedení příkazu. V 65C802 / 65C816 , všech 256 opcodes provádět definované operace.
  • 6502 má paměť nepřímý skok instrukce, JMP (<address>) , je částečně přerušeno. Pokud <adresa> je hexadecimální xxFF (tj nějaké slovo končit FF ), procesor nebude skok na adresu uloženou v xxFF a xxFF + 1 jak se očekávalo, ale ten je definován xxFF a XX00 (například, JMP ( $ 10FF) skočí na adresu uloženou v 10FF a 1000, místo jednoho uloženého v 10FF a 1100). Tento defekt pokračovala přes celou NMOS linie, ale byl opraven derivátů CMOS.
  • NMOS 6502 je indexovány adresování přes hranice stránky bude dělat další čtení o neplatnou adresu. Tato charakteristika může způsobit náhodné problémy tím, že přístup k hardwaru, který působí na čtení, jako je například čištění časovače nebo IRQ vlajky, posílání I / O interface, atd. Tento defekt pokračovala přes celou NMOS linie, ale byl opraven derivátů CMOS, v který procesor dělá další čtení posledního návodu byte.
  • 6502 je pro čtení i zápis upravit instrukce vykonat čtení a zápisu dva cykly. První nemodifikovaná data, která byla přečtena stornováno, a pak modifikovaná data zapsána. Tato vlastnost může způsobit problémy s dvojím přístupu k hardware, který působí na zápis. Tato anomálie pokračovala přes celou NMOS linie, ale byla stanovena derivátů CMOS, ve kterých bude procesor udělat dvě čte a jeden cyklus zápisu. Dobrý programování praxe bude obecně se tomuto problému vyhnout tím, že provedením čtení / upravit pokyny / zápisu na hardwarových registrů.
  • N (výsledek negativní), V (znaménkový bit přetečení) a Z (vést nula) stavové příznaky jsou obecně význam při provádění aritmetických operací, když je procesor v BCD režimu, protože tyto příznaky odrážejí binární, ne BCD, výsledek. Toto omezení se odstraní ve derivátů CMOS. Proto se tato funkce může být použita pro odlišení procesor CMOS z NMOS verzí.
  • V případě, že procesor se stane být v režimu BCD Pokud hardwarové přerušení dojde, nebude-li se vrátit k binárním režimu. Tato vlastnost může mít za následek obskurní chyby v službu rutiny přerušení, pokud se nepodaří vyčistit režim BCD před provedením jakékoli aritmetické operace. Například, Commodore 64 ‚s kernal nebyl správně zpracovat tuto vlastnost procesoru, což vyžaduje, aby IRQ vypnuty nebo re-vectored během BCD matematických operací. Tento problém byl vyřešen v derivátech CMOS stejně.
  • 6502 instrukční sada obsahuje BRK (opcode 00 $), což je technicky software přerušení (podobně jako v duchu na SWI mnemotechnická pomůcka z 6800 a ARM procesory). BRK se nejčastěji používá k přerušení běhu programu a zahájit jazykovou stroj monitoru pro testování a ladění při vývoji softwaru. BRK mohl také být použit pro spuštění programu trase pomocí jednoduchého skoku tabulky (analogický ke způsobu, ve kterém 8086 a deriváty zpracovávat software přeruší číslo). Bohužel, v případě, že hardware přerušení dojde zároveň je procesor načítání instrukce BRK, NMOS verzí procesoru nepodaří realizovat BRK a místo toho postupovat, jako kdyby došlo jen hardwarové přerušení. Tato chyba byla opravena v provádění CMOS procesoru.
  • Při provádění JSR (skok do podprogramu) a RTS (návrat z podprogramu) instrukce, zpáteční adresu tlačil do stohu JSR je to poslední bajt JSR operandu (to znamená, že nejvýznamnější byte podprogramu adresy), spíše než na adresu následující instrukce. Důvodem je, že skutečná kopie (od pultě programu do zásobníku a pak vice versa) se koná před automatickým přírůstek pult programu, ke kterému dochází na konci každé instrukce. Tato vlastnost by zůstat bez povšimnutí, pokud kód zkoumal zpáteční adresu, aby bylo možné načíst parametry v kódu proudu (programovací 6502 idiom zdokumentována v ProDos 8 Technical Reference Manual ). Zůstává charakteristické 6502 derivátů k tomuto dni.

viz též

Citované práce

  • Bagnall, Brian (2010). Commodore, společnost na okraji (2 ed.). Winnipeg, Manitoba: Variant Press. ISBN  978-0-9738649-6-0 .
  • "Motorola 6800 Oral History Panel" Thomas H. Bennett, John Ekiss, William (Bill) Lattin, Jeff Lavell. Computer History Museum, 28.března 2008, moderátor: David Laws.
  • Rozhovor s Williamem Mensch Stanford a Silicon Valley Project, 9. října 1995. Přepis

Reference

Další čtení

externí odkazy

Tento článek vychází z materiálu odebraného z zdarma on-line slovník práce na počítači před 1. listopadem 2008 a začleněna v rámci „přelicencování“, pokud jde o GFDL , verze 1.3 nebo novější.