Zilog Z80

Allikas: Vikipeedia
Jump to navigation Jump to search
Zilog Z80 Protsessor

Zilog Z80 on Zilogi 1970-ndate lõpul loodud 8-bitine neljanda põlvkonna mikroprotsessor. Peaaegu sama nimekuju Z-80 kasutas Zilogi loodud arvuti[1]. Võrreldes kolmanda ja teise põlvkonna protsessoritega, pakub Z80 efektiivsemat mälukasutust ja suuremat käskude läbilaskevõimet[2]. Protsessor on tarkvaraliselt kokkusobiv edasiarendus Intel 8080 protsessorist ning oli samuti mõeldud eelkõige manussüsteemides kasutamiseks. Kuni 1980-ndate keskpaigani oli Zilog Z80 koduarvutitel üks kõige laialdasemalt kasutusel olevaid protsessoreid. Protsessorit toodetakse ja müüakse tänapäevani[3].

Ajalugu[muuda | muuda lähteteksti]

Zilog Z80 loonud ettevõtte asutasid 1974. aasta lõpus Intelist lahkunud füüsik Federico Faggin ja elektrotehnik Ralph Ungermann. Faggin oli selleks ajaks oma töö jooksul Fairchild Semiconductor'is ja Intelis töötanud fundamentaalse transistorite ja pooljuhtide toomise tehnoloogia kallal. Samuti lõi ta mälude ja mikroprotsessorite loomise põhimetoodika ning juhtis Intel 4004 ja Intel 8080 loomist. Faggin-i ja Ungermann-iga liitus nende protsessorite transistorite tasandi juhtivdisainer Masatoshi Shima. Märtsiks 1976 oli Zilogis valmis Z80 protsessor koos selle juurde kuuluva assembleril põhineva arendussüsteemiga. Sama aasta juulis lasti protsessor ametlikult müüki. Järgneva aasta jooksul töötati välja ja lasti müüki palju Z80 jaoks disainitud tugikiipe.

Enne, kui Zilog aasta lõpuks oma tootmisüksuse valmis sai, tootsid esimesi protsessoreid Synertek ja Mostek, kuna neil oli piisav võimekus tootmaks kiipe, mis vajasid tööks vaid üht välist toitesisendit. Disaini kopeerisid ka erinevad Jaapani ja Nõukogude Liidu firmad.

Z80 käsustik oli loodud olema kahendsüsteemis kokkusobiv Inteli 8080 protsessoriga, et ilma muudatusi vajamata töötaks sellel enamlevinud rakendustarkvara, nagu näiteks CP/M operatsioonisüsteem ja Inteli PL/M kompilaator, ning selle genereeritud väljund. Masatoshi Shima disainis enamiku protsessori mikroarhitektuurist ning transistoritasandi elektroonikast. Zilogi tegevjuht Faggin oli ise tihedalt seotud protsessori elementide paigutamisega kiibi sees, tehes oma sõnul 80- tunniseid töönädalaid. Faggin on välja öelnud, et protsessori arendamise lõpuosas pidi ta endale lühinägelikkuse tekkimise tõttu prillid ostma[1].


Võrdlus Intel 8080-ga[muuda | muuda lähteteksti]

Zilog Z80-l oli mitmeid eeliseid Intel 8080 ees, näiteks:

  • Täiustatud käsustik ühebitise adresseerimisega, võimalus teha bittide nihutamist ja ümberpööramist ka mujal, kui akumulaatoris, programmi tsüklis jooksutamise võimalus, programmiloendurist lähtuvad hargnemised
  • Parem katkestuste süsteem
  • Üks ainus 5V toitesisend[2], samal ajal, kui Intel 8080 vajas -5 V +5 V ja +12 V sisendeid
  • Ühefaasiline taktsignaal
  • Sisseehitatud DRAM-i värskendamise loogika, mille jaoks muidu oleks vaja eraldiseisvat elektroonikat
  • Multipleksimata andme ja aadressisiin

Selle tulemusel võttis Z80 üle nii Intel 8080 kui ka selle järeltulija 8085 turuosa ning muutus kiiresti üheks populaarseimaks 8-bitiliseks protsessoriks. Aja jooksul täiendati protsessorit, muutes kõrgemaks võimalikku maksimaalset taktsignaali sagedust - originaalne Z80 toimis taktsagedusel 2.5 MHz, Z80A taktsagedus on 4MHz, the Z80B taktsagedus 6MHz, ja Z80H toimib taktsagedusel 8MHz.

Programmeerimine ja registrid[muuda | muuda lähteteksti]

Programmeerimismudel ja registrikomplekt on küllaltki levinud, kuna pärinevad Inteli protsessoriseerialt. Z80 lisas 16- bitilised IX ja IY registrid, mida peamiselt kasutatakse baasaadressi registritena, kui mõni käsk omab konstantset nihet, kuid on muuhulgas kasutatavad ka 16-bitiliste akumulaatoritena. Z80 muutis ka kõik teised 16-bitilised registrid laiatarberegistriteks, toetades korraga 16 biti mälust lugemist ja kirjutamist. Samuti on Intel 8080-ga kokkusobivad AF, BC, DE ja HL registrid jagatud Z80-s kahte komplekti, võimaldades protsessoril nende vahel kiirelt vahetada. See tuleb kasuks kõrge prioriteediga katkestuste kiireks teenindamiseks. Kuna protsessoril puudub sisemine programmimälu, siis tuleb programm kirjutada välisele mälukiibile. Enamik Z80 protsessoreid kasutavad arvutiseadmed on paigutanud programmimälu mäluruumi alumisse 32 KB (A15 = 0) ja RAM-i mäluruumi ülemisse 32 KB (A15 = 1).[4]

Registrid[muuda | muuda lähteteksti]

Z80 ja Intel 8080 ühised registrid

  • AF: 8-bitiline akumulaator (A) and lipubitid (F) - carry, zero, minus, paarsus/ületäitumine, half-carry (BCD jaoks), Liida/lahuta (N), samuti BCD jaoks
  • BC: 16-bitiline andme/aadressiregister, või kaks 8-bitilist registrit
  • DE: 16-bitiline andme/aadressiregister, või kaks 8-bitilist registrit
  • HL: 16-bitiline akkumulaator/aadressiregister, või kaks 8-bitilist registrit
  • SP: stack pointer, 16 bitiline
  • PC: programmiloendur, 16 bitiline

Z80 uued registrid

  • IX: 16-bitiline indeksi või baasregister 8 bitilistele nihetele, või kaks 8-bitilist registrit
  • IY: 16-bitiline indeksi või baasregister 8 bitilistele nihetele, või kaks 8-bitilist registrit
  • I: Katkestusvektorite baasregister, 8-bitiline
  • R: DRAM värskenduste loendur, 8 bitti (MSB-d ei loendata)
  • AF': alternatiivne akumulaator ja lipubitid (võetakse kasutusele ja loobutakse kasutamisest EX AF,AF' abil)
  • BC', DE'ja HL': alternatiivsed registrid (võetakse kasutusele ja loobutakse kasutamisest EXX abil)
  • Neli bitti katkestuste staatuse ja katkestuste režiimi jaoks

Assemblerkeel[muuda | muuda lähteteksti]

Z80 assemblerkeel sisaldab 158 erinevat käsku, sealhulgas kõiki 78 käsku, mis pärinevad Intel 8080A protsessorilt. Käsud saab jagada peamistesse gruppidesse eesmärgi järgi[5].

  • Andmete laadimise ja vahetamise käsud
  • Ploki kaupa ülekandmise ja otsimise käsud
  • Bitinihete ja roteerimise käsud
  • Bittide manipuleerimise käsud (Set, Reset, Test)
  • Hargnemise käsud
  • Sisend-/Väljundkäsud
  • Põhilised käsud protsessori enda juhtimiseks.

Näide Z80 jaoks kirjutatud assemblerprogrammist, mis laeb A registrisse väärtuse 22, laeb selle HL registrisse ja peatab protsessori töö.

1 LD a, 22
2 LD hl, a
3 HALT

Z80 jaoks mõeldi välja täiesti uued käskude tähistused, kuna Intel omab oma assemblerkeele mnemoonilistele tähistustele autoriõigust. Protsessori manuaalis on toodud välja ka kahendkoodis kõikide käskude esitamine, võimaldades soovi korral luua lülititega programmeeritavaid seadmeid.

Suurimad vahed Inteli süntaksiga on järgmised:

  • Kõikidele registritele ja registripaaridele viidatakse eranditult nende täisnimedega
  • Sulge kasutatakse järjepidevalt indikeerimaks "mälu sisu sellel aadressil", erandiks mõned hargnemiskäsud[6]
  • Kõik laadimis- ja salvestamiskäsud kasutavad sama nime, LD, ehk LOAD teised laialt levinud käsud, nagu ADD ja INC kasutavad sama nime, hoolimata aadressirežiimist või operandide suurusest. See on võimalik, kuna operandid ise sisaldavad piisavalt informatsiooni.[7]

Riistvara[muuda | muuda lähteteksti]

Originaalset Z80 protsessorit müüdi DIP 40 korpuses. Täna on müügil ka QFP korpusega kiibid. Kuigi protsessor toetab väliste dekodeerimisahelate olemasolul ka mitme Sisend-/Väljundseadmega korraga suhtlemist, on Zilog loonud erinevaid lisakiipe, mis mõeldud protsessori võimekuse laiendamiseks. Täiendavasse valikusse kuuluvad taimerite ja loendurite (CTC) kiip, jadaühenduse sisend-väljundkiip (SIO), otsemällupöörduskiip (DMA), paralleelühenduse sisend-/väljundkiip (PIO) ja 2x järjestikpordikiip (DART)[8]. Nagu ka Inteli 8080, 8085 ja 8086 protsessoritel, on ka Z80-l eraldi kontrollviigud ja aadressiruum sisend-/väljundseadmetega suhtlemiseks, ning kuigi osad protsessorit kasutavad seadmed kasutasid mällu kaardistatud sisend-/väljundseadmeid, kasutasid enamikud seda mõne lisakiibiga suhtlemiseks.

Protsessorist on toodetud nii NMOS, kui ka CMOS variante. NMOS võimaldas suure jõudlusega seadmeid luua madalate hindadega, ning CMOS kiibid olid võimekad, säilitades samas madala energiatarbe[2].

Kasutuskohad[muuda | muuda lähteteksti]

Z80 võeti kasutusele arvukates seadmetes, esimesed neist CP/M operatsioonisüsteemiga ja suunatud ärisektorisse, kuniks 1977 lasi RadioShack välja TRS-80 Model 1 arvuti, mis oli üks esimesi massiliselt kodutarbimiseks mõeldud arvuteid. Neist on laialdasemalt tuntud Heathkit H89, Osborne 1, Kaypro seeria, ning Epson QX-10 seadmed. Z80 protsessorit kasutasid ka kõik TRS-80 järgnevad mudelid 2-4, ning oli planeeritud ka viienda mudeli protessoriks. See arvuti aga tootmisesse ei jõudnud[9]. Teine laialdaselt tuntud Z80 protsessorit kasutav kodukasutuseks mõeldud arvuti oli Sinclair Research'i 1982 aastal välja lastud värvilise operatsioonisüsteemiga ZX Spectrum. ZX Spectrumi populaarsusest tulenevalt on selle tarkvara internetis arhiveeritud, ning vastavate rakenduste olemasolul ka tänapäeval originaalseadme peal käivitatav[10].

Arvutustehnika teed rajanud seadmete hulka, mis Z80 protsessoril toimisid, kuuluvad ka Amstrad CPC ja Commorde 128. Inteli 6502 arhitektuuri kasutavatel seadmetel oli võimalik Z80-t kasutada vastava laienduskaardi abil.

Protsessorit kasutati ka erinevates mängukonsoolides, näiteks Colecovision'i ja Sega Master System'i seadmetes. Z80 protsessorist tuletatud Sharp-i protsessorit kasutas originaalne GameBoy käeshoitav mängukonsool[11]. Street Fighter 2 arkaadversioon kasutas protsessorit helikaardina. Protsessorit on kasutatud ka sateliitidel[1].

Tänu oma lihtsusele on Zilog Z80 peale ehitatud erinevaid hobi- ja haridusfookusega projekte ka tänapäeval, peamiselt ise kokku joodetavate komplektide näol, nagu näiteks RC2014 arvuti, mis jooksutab Microsoft BASIC'ut[12].

Tänapäeval võib protsessorit leida veel ka mõningatest Texas Instruments'i kalkulaatoritest, kus suuremat arvutusvõimekust ei ole lihtsalt vaja[1]

Viited[muuda | muuda lähteteksti]