Professional Documents
Culture Documents
ELAZI 2006
NDEKLER
1. GR 2. SAYI SSTEMLER VE BLGSAYAR ARTMET 3. MKROLEMC VE MKROBLGSAYARLAR 4. KAYITILAR VE HAFIZALAR 5. ARTMETK LOJK NTE 6. MOTOROLA 6802MKROLEMCSNN YAPISI VE KAYITILARI 7. MOTOROLA 6802 LE GEREKLETRLM MKROBLGSAYAR 8. ASSEMBLY DL KURALLARI 9. MC6802 MKROLEMCSNN KOMUT KMES VE ADRESLEME MODLARI 10. MOTOROLA 6802 ASSEMBLY UYGULAMALARI 11. MKROBLGSAYARLARDA GR/IKI LEM 12. UYGULAMA DEVRELER 13. MKROBLGSAYAR UYGULAMASI 13.1. Donanm Gereklemesi 13.2. letim Yazlmnn Oluturulmas 14. KAYNAKLAR 15. EKLER
1. GR
Mikroilemci, sakl bir komut dizisini ardl olarak yerine getirerek veri kabul edebilen ve bunlar ileyebilen oluur. Genel olarak bilgisayar ile iki ekilde ilgilenilir : 1. Yazlm (Software) : Bilgisayarn fiziksel paralarn iler hale getiren bileenlerdir. 2. Donanm (Hardware) : Bilgisayar oluturan fiziksel paralarn tmdr. Her ikisi de birbirinin tamamlaycsdr.Birisi olmazsa dieri de olmaz.Sistem ncelikli olarak tasarlanrken nce sistemi meydana getirecek elemanlar ,yani donanm paralar gz nne alnr.Daha sonra yazlm bu yapya baklarak yazlr.Yazlm,donanmn hangi ynteme gre nasl alacan gsteren bir sanal uygulamadr. Hangi zamanda hangi elemann devreye girerek zerindeki bilgiyi ilemesini salamaktadr. Basit bir bilgisayarn ana elemanlar ekil 1.1.de grlmektedir. Tm saysal bilgisayarlar ekilde gsterilen elemanlara sahiptirler. Bunlarn dndaki eleman ya da cihazlar seimliktir. saysal bir elektronik eleman olarak tanmlanabilir. Mikroilemci temelde mantk kaplar, flip-floplar, sayc ve saklayclar gibi standart saysal devrelerden
Adres yolu
CPU
Bellek
Giri/k
ekil 1.1: Genel Bilgisayar yaps Bilgisayar oluturan bu sistemdeki elamanlar; mikroilemci(CPU), bellek ve giri/k(G/) birimleridir. Mikroilemcinin ileyecei komutlar ve veriler geici veya kalc belleklerde tutulmaktadr. Bilgiyi oluturan komut ve veriler bellekte karmak veya farkl alanlarda tutulabilir.Yazan kiinin karakterini veya setii yolu gsteren eitli 3
algoritmalardan meydana gelen program ilemciyi kullanarak verilerin ilenmesini salar.Bilginin ilenmesi srasnda ortaya kabilecek ara deerler ,en sonunda sonular bellekte bir yerde depolanmak zorundadr.Btn bu yaplan ilemler bir hesaba dayanmaktadr.Bilgisayarn bilgiyi ilemedeki ana karar vericisi sistemin kalbi saylan mikroilemcidir.CPU tarafndan gerekletirilen iki temel ilem vardr.Birincisi komutlarn yorumlanarak doru bir srada gereklemesini salayan kontrol ilevi,dieri toplama,karma vb zel matematik ve mantk ilemlerinin gerekletirilmesini salayan icra ilevidir. Bilgisayarda altrlan yazlmlar kendi aralarnda ikiye ayrlr.Bunlar, programc
tarafndan yksek dzeyde yazlan programlardr ki insanlar tarafndan anlalabilir dzeydedir ve bu yazlan programlarn makine tarafndan anlalmasn salayan badatrc (interface) yazlmlardr ki iletim sistemi(OS) olarak anlrlar.Mikroilemci mantksal 0 ve 1 esasna gre altndan,verilen komutlarn da bu esasa dayanmas gerekmektedir.Ksaca saysal bilgisayarlarn kulland doal dile makine dili denir.Programc tarafndan yksek dzeyde yazlan programlar ancak yine insanlar tarafndan anlalabilir.Bu programlarn makine tarafndan anlalabilmesi iin derleyici,yorumlayc ve assembler gibi arac programlarn kullanlmas gerekir. Demek ki, yazlm denildiinde akla, iletim sistemi, st dzey diller vastasyla yazlan eitli uygulama programlar gelir. Bu diller; - Yksek seviyeli diller - Orta seviyeli diller - Dk seviyeli diller olmak zere snfa ayrlabilir.Bu yksek, orta, dk kelimelerinin anlam donanmn yazlma ne kadar yakn olduunu gsterir. Yksek seviyeli dillerin kontrol sistemlerinde kullanm zordur. Yksek seviyeli bir dilde yazlan program derleyici tarafndan derlendiinde bilgisayar bunu dk seviyeli dile (makina diline) evirerek anlar.Orta seviyeli dillerin (assembly) kontrol sistemlerinde kullanm uygundur. Assembly dilini kullanrken donanm bilmemiz zorunludur. rnein Intel 8085 ve Motorola 6800 mikroilemcilerinin assembly dilleri farkldr. nk donanmlar farkldr. Orta seviyeli diller makina dilinde, yani ikili say sistemi ile program yazma zor ve zahmetli bir itir. Bunun iin makina dilinin komutlar eklinde verilmesini salayan assembly diller gelitirilmitir. Assembly dilinde program yazmak makina diline gre daha kolay ve
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
anlalrdr. Fakat fazla miktarda komut ierir. Bunun iin anlama ve kullanm belli bir zaman alr. Assembly makinaya ynelik dillerdir. Programc kulland bilgisayarn donanmn ve adresleme tekniklerini ok iyi bilmelidir. Assembly programlar standart deildir. Ayn model olmayan her mikroilemcinin kendine zg assembly dili vardr. Programc bu dille makinayla en basit ekilde iletiim kurar. Assembly dilinde yazlan her program bellekte saklanrken veya ilenirken 0 veya 1ler formuna evrilmeye gerek duyar. Bu evirme ii programc tarafndan retici firmann databook kitabna baklarak elle veya bir assembler (Assembly derleyicisi) yardmyla yaplr. Tek tek komut kodu karlna baklarak ikili komut kodlar bulunuyorsa ve eer program ok uzun veya tekrarlamal ise ,kaynak program ama programa evirmek ok zor ve hata yapma pay yksek olacaktr. Bu gibi durumlarda iyi bir assembler program kullanlmaldr. Bazen programclar Assembly dili ile assembleri kartrmaktadrlar. Assembly dili, konuma dilinde emir eklindeki cmleden zenle seilerek alnm ve says genelde en fazla drt olabilen harflerden meydana gelen ve bir komut anlam ifade eden hatrlatclar ierir. Assembly dilinde program yazmak makine dilinde yazmaktan daha kolay ve takibi daha basittir. Fakat bu programn bellee konulmadan nce makine diline evrilmesi gereklidir,ite bu ii assembler denilen (bir nevi paket programda denilen) evirici program yapar.Bu evirme ilemine kaynak programn ama programa evrilmesi denir. Assembly dilinde yazlm bir programn ama programa evirmede en ok kullanlan yntem elle yaplan ilemdir.Bu yntemde her satrdaki hatrlatcya karlk gelen kodlar retici firma tarafndan yaynlanan databooka baklarak bulunur. Bylece ama program bulunmu olur. Assembly Dilinin Dezavantajlar Assembly dilinde bir program yazmak iin zerinde allan bilgisayarn zellikleri hakknda detayl bilgi sahibi olunmaldr. Mesela bunlar,bilgisayar mikroilemcisinde bulunan kaydediciler ve says,komut kmesi ve adresleme trleri gibi deiik zelliklerdir.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
Assembly dilinin dier bir mahsuru elastiki olmamasdr. Deiik firmalarca retilen her mikroilemcinin kendisine has bir programlama dili olmasdr.Bundan dolay bir mikroilemci iin yazlan bir assembly dilindeki program dier bir mikroilemcide almayabilir.
Assembly Dilinin Avantajlar Assembly dilinde program yazanlar,donanmn almasn ok iyi anlamak ve ona gre iyi programlar gelitirmek zorunda olduklarndan kendilerine birok kazanmlar salarlar.Yksek dzeyli dillerde program yazarken bilgisayar donanmnn grnmeyen baz yanlarna assembly dilinde sahip olunur. Assembly dilinde yazlan programlar yksek dzeyli dillerle yazlan programlara nazaran daha hzl ve kk boyutludur. Assembly dili,program byklnde ve alma hznda ideal optimizasyon salar. Dk seviyeli diller ise, makina dilleridir. Yine makinaya zg bir dildir. Bu dilde programlama ok zor, hata yapma oran ok yksek ve program kontrol etme imkan nerede ise yoktur. Assembly ve makina diline uygun uygulamalar : - Hesaplamalardan daha ok giri/k gerektiren uygulamalar - Gerek zaman denetimi ve uygulamalar - Fazla veri ilemesi gerekmeyen uygulamalar - Hzllk istene uygulamalar
2.2. Say Sistemleri kili say sistemi : {0,1} (0010 0011)2 = 1.20 + 1.21 + 0.22 + 0.23 +0.24 + 1.25 + 0.26 + 0.27 = 1 + 2 + 32 = (35)10
On altl say sistemi : {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} (23)16 = 3.160 + 2.161 = 3 + 32 = (35)10 (1AB3)16 = 3.160 + 11.161 + 10.162 + 1.163 = (6835)10 kili ve on altl say sistemleri arasnda dnm : kili say sadan itibaren drderli gruplara ayrlr, her bir grup on altl saynn bir basaman temsil eder. (0010 0011)2 = (23)16
2.3. Saylarn Hafzada Saklanmas Kullanmlarna bal olmak zere saylar hafzada saklamak iin yntem vardr. 1. Yntem : aret Mutlak Deer Gsterimi kili say sisteminde genel olarak en nemli bit (en soldaki bit) iaret gstermek iin kullanlr. Bu bit 1 ise say negatif, 0 ise say pozitiftir. 0011 1011 edilir. +3 0011 -3 1011 ---------------------0 1110 Bu gsterim aritmetik ilemlerde kullanlamaz. A/D ve D/A eviriciler, trigonometrik ve logaritmik tablolarn saklanmas iin kullanlr. 2. Yntem : Birim Tmlevi Gsterimi Bu gsterimde bir saynn negatifi; ilgili saynn tmlevidir. 0110 +6 ise 1001 -6 dr. +3 -3
Grlecei gibi bu gsterimde pozitif saynn negatifi, o saynn iaret biti deitirilerek elde
+6 0110 -6 1001 ---------------------0 1111 0 Matematikte 0 veya +0 gibi kavramlar olmad iin bu yntemde aritmetik ilemlerde kullanlamaz, 1. yntemin kullanld yerlerde kullanlr.
3. Yntem : kinin Tmlevi Gsterimi Bu yntemde bir saynn negatifi, o saynn birim (mantksal) tmlevine bir ekleyerek bulunur. 0110 +6 ise -6 1001 + 1 = 1010 +6 0110 -6 1010 ---------------------0 (1) 0000 0
Tek byte lk aritmetikte elde bayra dikkate alnmaz. Dolaysyla bu yntem saylarn hafzada saklanmas iin uygundur. rnek : (700)10 saysnn negatifi 999 700 = 299 +1 = (300)10 +700 700 -700 300 ----------------0 = (1) 000 -700
3. MKROLEMC VE MKROBLGSAYARLAR
A) BLGSAYAR MMARS Bilgisayar tanmlanmaktadr: ISA - Komut kmesi mimarisi HSA - Donanm sistem mimarisi ISA, bir bilgisayarn hesaplama karakteristiklerini belirleyen komut kmesinin tasarmdr. HSA; CPU, depolama ve G/ sistemlerinin dahil olduu alt sistem ve bunlarn balant ekilleridir. Komut kmesinin yazlm ve donanmla ilikisi ekil 3.1.de grlmektedir. mimarisi, komut kmesinin,donanm elamanlarnn ve sistem organizasyonunun dahil olduu bir bilgisayarn tasarmdr. Mimari iki farkl yaklamla
Yazlm
Komut Kmesi
Donanm
ekil 3.1.: Komut kmesinin yazlm ve donanmla ilikisi Bilgisayar sistemlerinde btn mesele,bu iki kavram yerli yerine oturtmaktr. Mimari bir kavram olarak HSAnn ne olduu ve hangi elemanlardan meydana geldii yukarda aklanmtr. ISA ise, programcnn bu elemanlara yn verecek program yazmas durumunda nasl bir kabul greceidir.Farkl irketler tarafndan retilen farkl bilgisayarlarn fiyat/performans asndan elbette farkl mimarileri olabilir. zel bilgisayar sistemleri(gnmzde bir eit oyun konsollar )iin programc kodlarn makinann dorudan zel donanmna gre yazmaktayd.Bylece bir makine iin yazlan program ayn firma
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
10
ne de dier makinasnda
alabilmekteydi. Mesela, A makinas iin yazlan bir oyun B makinasnda veya C makinasnda almayacaktr. Programc tarafndan yazlan kodlar donanm ama anahtar olarak dnlebilir (ekil 3.2..).
Yazlm
Yazlm
Donanm
Donanm
ekil 3.2.: Komut Kmesi mimarisinin yazlm ve donanmla ilikisi Programsal yaklam Bilgisayar sistemlerinde btn mesele sistemi meydana getiren tm elemanlarn bir komutla nasl devreye sokulacadr.Ufak tefek ayrcalklar olsa da birbirine benzer yapdaki bilgisayarlar iin farkl programlar yazmak olduka maliyetli olduundan ,programcnn yazd komutlarn her bilgisayar tarafndan alglanarak yrtlmesi esas hedeftir. Ortaya atlan ilk zm mikrokod yaklam daha sonralar iki standarttan biri olmutur. Donanm devreye sokacak z bilgilerin yani komut kmesinin yer ald bu yere (blgeye) mikrokod motoru denilmektedir. (ekil 3.3.). Buras,CPU iinde CPU olarak da ifade edilebilir.Programcnn yazd kodlar ilemcinin daha abuk anlayabilecei veya altrabilecei kk mikrokodlara dntren bu mikrokod motoru,ilemci ROM bellek vastasyla yerletirilmitir. Mikroprogram ve icra birimi tarafndan meydana gelen mikrokod ROMun grevi,zel komutlarn bir dizi kontrol sinyallerine evirerek sistem elemanlarnn denetlenmesini salar. Ayn zamanda, mikrokod CISC tipi ilemcilerdeki temel ilevi, alt dzey komut kmesiyle programcnn alt st dzey komutlar arasnda soyutlama dzeyi oluturmaktr.
11
Ana Bellek
CPU
Mikrokod ROM
n bellek
Kontrol Birimi
Kaydediciler
Kaydediciler
ekil 3.3.: Bir mikrokod ROMun sistemdeki yeri Mikroilemci reticileri,sistem tasarmnda iki ynl dnmek zorundadrlar. Birincisi,mimariyi meydana getiren elemanlarn ilevleri,ikincisi bu elemanlarn nasl devreye sokulacadr. Elemanlar devreye sokmak iin program yazmak gerekecektir.Bu iin bir yan; dier yan ise donanmdr.Donanmla tasarm mhendisleri ilgilenir.Fakat programc yle bir program yazmal ki,sistem tarafndan alglanarak doru zamanda doru eleman devreye sokulabilsin. Donanm mimarisini programcya aktaracak en iyi yol ona kullanabilecei komut kmesini hazr vermektir.Bilgisayar sisteminin donanmsal tm zelliklerini ieren sisteme komut kmesi mimarisi denildiine gre, programc bu kmeye bakarak veya bu kmeyi kullanabilen derleyicileri kullanarak hibir endieye gerek duymaz. Programcnn yazd bir komut iletildiinde, mikrokod ROM bu komutu okur ve sonra o komuta karlk gelen uygun mikrokodlar ykler ve altr. Donanmsal Yaklam Mikrokod kullanlarak ISA sisteminin yrtlmesinin balca sakncas balangta komutlarn dorudan altran sisteme gre yava olmasdr. Mikrokod, ISA tasarmclarna programcnn ara sra kulland her eit komutlarn komut kmesine eklenmesini ister. Daha ok komut demek daha fazla mikrokod, ekirdek bykl ve g demektir. ISA mimarisinin yaanan aksaklklarndan dolay daha sonralar ,komutlarn dorudan donanm elemanlar tarafndan yorumlanarak sistemin denetlendii dier bir mimari yaklamda donanmsal alma modelidir..Komutlarn anlalr standart bir boyuta getirilerek alld sisteme RISC modeli denilmektedir.Yani komutlarn donanmsal alma modeline sahip RISC tipi bilgisayarlarda, komut kmesindeki komutlarn says azaltlm ve her bir zel komutun boyutu drlmtr.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
12
B) MKROLEMC MMARS 1. CISC Bu mimari, programlanmas kolay ve etkin bellek kullanmn salayan tasarm felsefesinin bir rndr.Her ne kadar performans dklne sebep olsa ve ilemciyi daha karmak hale getirse de yazlm basitletirmektedir.
Yazlm
Derleme
Makina Dili
zme
Donanm
Mikro-kod
leme
Kaydediciler,ALU ve dierleri
ekil 3.4.:CISC tabanl bir ilemcinin alma biimi CISC mimarisinin karakteristik iki zelliinden birisi,deiken uzunluktaki
komutlar,dieri ise karmak komutlardr.Deiken ve karmak uzunluktaki komutlar bellek tasarrufu salar.Karmak komutlar iki ya da daha fazla komutu tek bir komut haline getirdikleri iin hem bellekten hem de programda yer almas gereken komut saysndan tasarruf salar.Karmak komut karmak mimariyi de beraberinde getirir.Mimarideki karmakln artmas,ilemci performansnda istenmeyen durumlarn ortaya kmasna neden olur.Ancak programlarn yklenmesinde ve altrlmasndaki dk bellek kullanm bu sorunu ortadan kaldrabilir. CISC mimarisi ok kademeli ileme modeline dayanmaktadr.lk kademe yksek dzeyli dilin yazld yerdir.Sonraki kademeyi makine dili oluturur ki yksek dzeyli dilin derlenmesi sonucu bir dizi komutlar makine diline evrilir.Bir sonraki kademede makine
13
diline evrilen komutlarn kodlar zlerek ,mikroilemcinin donanm birimlerini kontrol edebilen en basit ilenebilir kodlara (mikrokod) dntrlr.En alt kademede ise ilenebilir kodlar alan donanm araclyla gerekli grevler yerine getirilir.Bu durum ekil 10da grlmektedir. CISC Tasarmnn zellikleri: 80li yllara kadar karlan ipler kendine has tasarm yollarn takip ettiler. Bunlardan ou CISC tasarm kararlar denilen kurallara uydular. Bu iplerin hepsinin benzer komut kmeleri ve donanm mimarileri vardr. Komut kmeleri, Assembly dili programclarnn rahatl iin tasarlanrlar ve donanm tasarmlar olduka karktr. CISC Mimarisinin stnlkleri: CISC makinalar ilk geliim sralarnda bilgisayar performansn ykseltmek iin mevcut teknolojileri kullandlar. Mikroprogramlama, assembly dilinin yrtlmesi kadar kolaydr ve sistemdeki kontrol biriminden daha ucuzdur. Yeni komutlar ve mikrokod ROMa eklemenin kolayl tasarmclara CISC makinalarn geriye doru uyumlu yapmalarna izin verir.Yeni bir bilgisayar ayn programlar ilk bilgisayarlar gibi altrabilir nk,yeni bilgisayar nceki bilgisayarlarn komut kmlerini de ierecektir. Her bir komut daha yetenekli olmaya baladndan,verilen bir grevi yrtmek iin daha az komut kullanlr. Bu, nispeten yava ana bellein daha etkili kullanmn salar. Mikroprogram komut kmeleri, yksek seviyeli dillerin yaplarna benzer biimde yazlabildiinden,derleyici karmak olmak zorunda deildir. CISC Mimarisin Mahsurlar: lemci ailesinin ilk kuaklar genelde her yeni versiyon tarafndan kabullenilmitir. Bylece komut kodu ve ip donanm bilgisayarlarn her kuayla birlikte daha karmak hale gelmitir. Mmkn olduu kadar ok komut,mmkn olan en az zaman kaybyla bellee depolanabiliyor ve komutlar neredeyse her uzunlukta olabiliyor.Bunun anlam farkl komutlar farkl miktarda saat saat evrimi tutacaktr. (makinenin performansn drecektir).
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
14
ou zel gl komutlar geerliliklerini dorulamak iin yeteri kadar sk kullanlmyor.tipik kullanyor. bir programda mevcut komutlarn yaklak %20sini
Komutlar genellikle bayrak (durum) kodunu komuta bir yan etki olarak kurar.Bu ise ek saykllar yani bekleme demektir.Ayn zamanda,sradaki komutlar ilem yapmadan nceden bayrak bitlerinin mevcut durumunu bilmek durumundadr.bu da yine ek saykl demektir.Bayraklar kurmak zaman gibi,programlar takip eden komutun bayran durumunu deitirmeden nce bayrak bitlerini incelemek zorundadr.
2. RISC RICS Mimarisi, CISC mimarili ilemcilerin kt yanlarn piyasann tepkisi ve ona bir alternatif olarak,ilemci mimari tasarmlarnda sz sahibi olan IBM, Apple ve Motorola gibi firmalarca sistematik bir ekilde gelitirilmitir. (CISC, piyasa artlar dorultusunda ekillenen ve kendiliinden oluan bir sistemdir.) RISC felsefesinin taraftarlar,bilgisayar mimarisinin tam anlamyla bir elden geirmeye ihtiyac olduunu ve neredeyse btn geleneksel bilgisayarlarn mimari bakmdan birtakm eksikliklere sahip olduu ve eskidiini dnyorlard.Bilgisayarlarn gittike daha karmak hale getirildii ve hepsinin bir kenara braklp en batan yeniden balamak gerektii fikrindeydiler. RISC Mimarisinin zellikleri: RISC mimarisi ayn anda birden ok komutun birden fazla birimde ilendii i-hatt (pipelining) teknii ve sperskalar yaplarnn kullanmyla yksek bir performans salamtr. Daha nce deinildii gibi,bu tasarm teknii yksek bellek ve gelimi derleme teknolojisi gerektirmektedir. Bu mimari, kltlen komut kmesi ve azaltlan adresleme modlar says yannda aadaki zelliklere sahiptir: Bir evrimlik zamanda bir komut ileyebilme Ayn uzunluk ve sabit formatta komut kmesine sahip olma Ana bellee sadece load ve store komutlaryla eriim;operasyonlarn sadece kaydedici zerinde yaplmas Btn icra birimlerinin mikrokod kullanlmadan donanmsal almas Yksek seviyeli dilleri destekleme ok sayda kaydediciye sahip olmas
15
RISC Mimarisinin stnlkleri RISC tasarm olan bir ilemciyi kullanmak,karlatrlabilir bir CISC tasarmn kullanmaya gre pek ok avantaj salar. Hz: Azaltlm komut kmesi,kanal ve sperskalar tasarma izin verdiinden RISC ilemciler genellikle karlatrlabilir yani yar iletken teknolojisi ve ayn saat oranlar kullanlan CISC ilemcilerinin performansnn 2 veya 4 kat daha yksek performans gsterirler. Basit Donanm: RISC ilemcinin komut kmesi ok basit olduundan ok az ip uzay kullanrlar.Ekstra fonksiyonlar,bellek kontrol birimleri veya kayan noktal aritmetik birimleri de ayn ip zerine yerletirilir. Ksa Tasarm Zaman:RICS ilemciler CISC ilemcilere gre daha basit olduundan daha abuk tasarlanabilirler ve dier teknolojik gelimelerin avantajlarn CISC tasarmlarna gre daha abuk kabul edebilirler. RICS Mimarisinin Snrllklar CISC tasarm stratejisinden RICS tasarm stratejisine yaplan gei kendi problemlerini de beraberinde getirmitir. Donanm mhendisleri kodlar CISC ilemcisinden RISC ilemcisine aktarrken anahtar ilemleri gz nnde bulundurmak zorundadr.
CISC ve RISC Tabanl lemcilerin Karlatrlmas CISC ve RISC tabanl ilemcilerin karlatrlmasnda iki nemli faktr farkllklarn ortaya karmada yeterlidir. Hz: Genelde RISC ipleri kanal teknii kullanarak eit uzunlukta segmentlere blnm komutlar altrmaktadr. Kanal teknii komutlar kademeli olarak iler ki bu RISCin bilgi ilemini CISCden daha hzl yapmasn salar RISC ilemcisinde tm komutlar 1 birim uzunlukta olup kanal teknii ile ilenmektedir. Bu teknikte bazlar hari komutlar, her bir basamanda ayn ilemin uyguland birimlerden geerler. Kanal teknolojisini aklamak iin herhangi bir komutun ilenmesindeki admlar ele alnrsa: Komut kodu ve ilenecek veriler dahil btn bilgilerin MIBdeki kaydedicilerde olduu dnlrse, birinci admda yaplacak iin kaydedicide bulunan komut kodu zlr, ikinci admda zerinde allacak veri (ilenen) kaydediciden alnp getirilir, nc admda veri, komuta gre Aritmetik ve Mantk Biriminde ileme tabii tutulur ve drdnc admda da
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
16
sonu kaydediciye yazlacaktr. Bylece bir komutun ilemesi iin her bir basamak bir saat evrimi gerektirirse, drt evrimle (admda) gereklemi olmakta ve bir adm bitmeden dieri balayamamaktadr. Kanal teknii ile alan ilemcilerde birinci admda komut kodu zlr, ikinci admda birinci komutun zerinde alaca veri (ilenen) kaydediciden alnrken, sradaki ikinci ilenecek olan komutun kodu zlr. nc admda ilk komutun grevi ALUda yerine getirilirken, ikinci komutun ileyecei ilenen alnp getirilir. Bu anda sradaki nc komutun kodu zlr ve ilem bylece devam eder. Kanal (Pipeline) tekniinde evrim zamann dmesi iin komut kodlarnn hzl zlmesi gereklidir. RISC mimarisinde tm komutlar 1 birim uzunlukta olduklar iin komut kodunu zme ilemi kolaylar. Sistemde kullanlan kaydedicilerin simetrik bir yapda olmas, derleme ilemini kolaylatrmaktadr. RISC ilemcilerde bellee yalnz ykle ve depola komutlaryla ulalr. Baz eski CISC mimarisinde de olmasna ramen RISC mimarisinin sabit uzunluktaki basit komutlarla almas pipeline sistemini daha iyi kullanmasna sebep olmaktadr. Bu yzden hesaplama oranlarnn birinci ncelik arz ettii yerlerde i-istasyonlar ve datclarda ok tercih edilmektedir. Transistr says: CISC mimarisinde kullanlan transistor says RISCe nazaran daha fazladr. Transistr saysnn bir yerde ok olmas fazla yerleim alan ve ayrca fazla s demektir. Bundan dolay da fazla s retimi soutma olayn gndeme getirmektedir. CISC tabanl Pentium ilemcilerde kark s datcs veya soutma fanlar kullanlmaktadr. RISC mimarisindeki nemli stnlklere kar baz mahzurlar ortaya kmaktadr. RISC mimarisi, CISCin gl komutlarndan yoksundur ve ayn ilemi yapmak iin daha fazla komut ilenmesini gerektirir. Bundan dolay da RISCin bant genilii artar. Bu sistemde gl komutlarn yokluu ikinci bir yardmc ilemciyle ya da ilemci iinde oluturulacak ayr bir pipeline blmyle giderilebilir. Komut n-belleinin kullanlmas yksek komut alp getirme ilemini azaltmaktadr. RISC mimarisi dierine nazaran daha kompleks yazlmlara ihtiya duyar.
17
RISC (Hard-wired Control Unit) Hzl Ucuz Yeniden dizayn zor Daha az komut (instruction) Daha fazla saklayc bellek (register)
CISC (Microprogrammed Control Unit) Nispeten yava Pahal Esnek Daha fazla komut (instruction) Daha az saklayc bellek (register)
C) MKROBLGSAYAR MMARS 1. Princeton (Von Neumann) Yaps : - Program ve veri iin ortak hafza kullanr. - Yonga tasarm basittir. - Bir komutun yrtlmesi ok sayda saykl (cp) gerektirebilir.
8 bit
CPU
ekil 3.5.:Von Neumann Mimarisi 2. Harvard Yaps : - Program ve veri iin ayr ayr hafza kullanlr. - Komutlar bir saykl da (cp) yrtlr. - Dngler ve gecikmeler daha kolay ayarlanr.
Veri Bellei
8 bit
CPU
14 bit
Program Bellei
18
D) MKROLEMC PERFORMANSI Performans, verilen bir grevin gerekletirilmesi iin harcanan zamanla dorudan ilgili bir kavramdr. Birok mikroilemci sabit oranda alan bir saat (sabit frekansl saat sinyali) kullanlarak tasarlanr. Bylece, tasarmc onun frekansnn veya periyodunun oluturduu saat sinyalini referans alr. Mesela 100 nslik zaman periyodunda alan bir ilemcinin alma frekans 10 Mhz olacaktr. Frekans,f=1/t formlnden yola klarak bulunur. Performansa etki eden unsurlar unlardr: Verilen grevin yaplma zaman: Bunlar ilem zaman, cevap verme sresi ve gecikmeler oluturur. Belli bir zamanda belli bir iin yaplmas:Burada zaman ;hafta,gn,saat,dakika veya saniye olabilir.Sre ve bant genilii ile ifade edilir. Bir ilemcinin belli bir program altrmas iin harcad zaman aadaki formlle bulunur: CPU zaman = Program iin gerekli evrim says*Saat evrimi(periyot) Saat evrimine ilenmi komut says da eklenirse, komut bana den evrim says (CPI) kolayca bulunur.
Programn tamam iin harcanan saat evrimi says CPI= Programn ilenmi komut says(I)
Veya Harcanan saat evrim says=CPI*I Eer buradaki harcanan saat evrim says 1.formlde yerine konulacak olursa; CPU zaman=I*CPI*I olacaktr. Eer bu forml lm birimlerine sokularak yeniden dzenlenirse ortaya basit ve gerek sadelikte bir ilemci zaman kacaktr.
CPUzaman = komutlar Program * evrim Says Komutlar * Saniye evrim Says
Komut oranna gre performansn (P) bulunmas iin CPU zaman evrilirse;
19
P=
1 CPUzaman
1 I*CPI*I
Veya P= F I*CPI
Burada F, Tnin tersini gsteren saat frekansdr. P: MIPS (million instruction Per Second-milyon olarak saniyedeki komut says), I: Program altrmak iin gerekli olan komut says CPI: Her komut iin gerekli olan ortalama evrim says F: Saat frekans(oran) Uygulamalar Programlama dilleri Derleyici ISA Veri yollar Kontrol Fonsiyonel birimler Transistrler,kablolar,pinler Aylk cevaplar Saniyedeki kullanl operasyonlar MIPS veya MFLOP/S MB/s Miliwat,MIPS/mW C/s(saat oran)
ekil 3.7: Performansa etki eden faktrler ve bunlarla ilgili lmler Tm bu karakteristikler teknolojik zellikleri ile ilgilidir. Bir mikroilemcinin performans tek bana bir bilgisayarn performansn oluturamayacana gre, bu zellikte bir mikroilemcinin performansn tek bana oluturamazlar. Bunlara ek olarak mikroilemcinin performansna etki eden faktrler vardr. Bunlar; iletim sistemi, derleyici, ISA, organizasyon teknoloji,uygulama programlar ve buna benzer etkenlerdir. Performansa dorudan veya dolayl etki eden faktrler ekil 3.7te grlmektedir. E) MKROLEMC/MKROBLGSAYAR RETEN ETL FRMALAR Intel : 8085, 80286, 80386, 80486, 80586, PI, PII, PIII, PIV Motorola : 6500, 6502, 6800, 6802, 6809, 68000, .... Zilog : Z80, ... PIC, 16F84, 16F877,. Texas Ins, ..... gibi firmalar mikroilemci retmektedirler.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
20
F) MKROLEMC VE MKROBLGSAYAR YAPISI Bir mikroilemci; dahili hafza + kayt, kontrol nitesi ve aritmetik lojik nite den olumaktadr. Bir mikrobilgisayar ise; mikroilemci, harici hafza, giri ve k nitelerinden oluur.
Harici Hafza
Dahili Hafza+R
Giri nitesi
k nitesi
ekil-3.8. Bir Mikrobilgisayarn Yaps. Mikrobilgisayarn Elemanlar : 1. Giri niteleri : klavye (tu takm), programlar, sensrler....v.s. 2. Giri/k niteleri : Hem giri hem de k olarak kullanlan nitelerdir. Modemler, seri ve paralel portlar bunlara rnektir. 3. Harici (program) Hafzas : Programlarn yazld yerdir. Kk bilgisayarlarda (mikrobilgisayar) bu nite, EPROM, ROM, PROM veya EEPROM dur. Byk bilgisayarlarda hard disk ve disk, optik diskler (CD-ROM) kullanlmaktadr. Optik diskler hard disk ve disklere gre daha hzldr. Mikroilemcinin Elemanlar : 1. Zamanlama ve Kontrol nitesi : Bu ksm sistemin tm ileyiinden ve ilemin zamannda yaplmasndan sorumludur.Zamanlama ve kontrol birimi,bellekte program blmnde bulunan komut kodunun alnp getirilmesi,kodun zlmesi, ALU tarafndan ilenmesi ve sonucun alnp bellee geri konulmas iin gerekli olan kontrol sinyallerini retir.Bilgisayar sisteminde bulunan dahili ve harici btn elemanlar bu kontrol sinyalleri ile denetlenir.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
21
Algetir mekanizmas
Komut Kod zc
CPU elamanlarna
O1 O2
ekil 3.9.:Zamanlama ve kontrol birimin giri ve k sinyalleri Basit bir mikroilemcide bu blm deiik ilevi yerine getirir: Zamanlama kontrol:lemci harici saat sinyali reten bir birimden giri alan i-saat devresine sahiptir.Bu sinyal alnarak talebe gre zamanlama sinyallerine evrilerek sisteme datlr. Komut kod - zc:Bu devre komut kaydedicisinde (IR) tutulan komutlar yorumlar ve ALUya kaydedicilerle almas iin uygun sinyaller gnderir.(kastedilen zamanlama ve kesme sinyalleridir) Kesme mantk birimi:Bu birimde dier kontrol elemanlarna benzer.Gerekli durumlarda kesme sinyallerini alarak ilemciyi uyarr. 2. Dahili Hafza : Geici bilgilerin sakland yerdir. ok hzl alrlar. Kayt (Register) : Temel depolama elemanlar olan FF lardan oluurlar. 3. Aritmetik Lojik nitesi: Toplama, karma, artrma, azaltma, elde bitiyle toplama,arpma, blme, ve AND, OR, XOR, NOT, shift (kaydrc) mantk birimlerinden oluur. Bu ilemler assembly dilinin komutlar ile yaplr.
22
BUS, bilgi iletim hatt demektir.Bir mikroilemcinin ka bitlik bir mikroilemci olduunu DATA BUS ndaki bir says belirliyor. rnein intel 8080, motorola 6802, zilog Z80 sekiz bitlik mikroilemcilerdir.
Bir mikroilemcinin DATA BUS daki bit says ne kadar fazla ise o kadar fazla g harcayacaktr. PROGRAM HAFIZASI da DATA BUS n bit says kadar olmaldr. rnein DATA BUS sekiz bit ise PROGRAM HAFIZASI da sekiz bitliktir ve PROGRAM HAFIZASI ndaki her sekiz bitlik ksma bir adresle ulalr.
Gelimi mikroilemcilerin iinde, seri-paralel portlar, ROM, EPROM, DAC/ADC, timer, co-processor ...v.s. vardr. Bu tip mikroilemcilere 8051, motorola 6811 mikrodenetleyiciler (mikrobilgisayar) veya mikro kontrol ediciler (mikrocontrollers) denir. rnein; intel
23
DR
IR
ALU
HALT
CCR
Q1 R/W
MBR
24
G) MKROLEMCNN ALIMASI Bir mikroilemcinin almasnda ,kontrol birimi tarafndan yerine getirilen ve ekil 3.11de gsterilen temel iki ilem vardr. Komut okuma (fetch) ve komut yrtme (execute). Komut okuma,mikroilemcinin hafzadan bir ilem kodu (operation codeopcode) alp komut saklaycsna(Instruction Register IR) getirme ilemine denir. Komut saklaycsna gelen komut ile hangi ilemin yaplaca komut kod zcs tarafndan belirlenir.Gereken sinyalleme kontrol birimi tarafndan retilir.Eer komut ile belirlenen ilem iin,baz ilem verisine (operand) gerek var ise,bu veriler hafzadan okunur. Son olarak komutun yrtlmesi gerekletirilir. Bir komutun yrtlmesi bittikten sonra, benzeri ekilde; tekrar komut okuma ve yrtme ilemleri,sonsuz bir evrim iinde, bir durma (halt) komutu yrtlnceye kadar yaplr. Mikroilemcinin almasnn durduran bu komut ile ilemci bir nc duruma girer ve bu durumdan kabilmesi iin bir donanm sfrlamas (reset) gerekir.
Komut mikroilemcide
Yrtme (Execute)
Durma (Halt)
RESET
25
op-code 4F 5F
Program Hafzas
ekil-3.12. Program ykl bulunan hafza 1. Program sayac o anda alan komutun adresini zerine alr. PC =[0022] 2. Komut kayts, o anda alan komutu zerinde bulundurur. Ir = 4F 3. Kontrol nitesi bu komuta gre uygun elektronik sinyalleri uygun yere gndererek komutu altrr. 4F iin A akmlatrn sfrlayc iaret gnderir. 4. Daha sonra PC bir sonraki adrese geer ve ayn ilemler tekrarlanr.
26
4. KAYITILAR VE HAFIZALAR
A. Kaytlar Kaytlar, eitli zellikler kazandrlm ve lojik kaplarla uygun ekilde balanm flip-flop gurubudur. Her hcre bir FF tan oluur. n-bitlik kayt (register, yazma, kaydedici) n adet FF ierir ve n-bitlik ikili bilgiyi tutabilir. 1-bitlik Saklayc: Flip Flop : Bir saysal sistemin saklayabilecei en kk bilgi birimi, 1 veya 0 lojik deerlerine sahip bir ikili bilgi (binary) bilgi,veya bir bittir. Bir veri biti, flip-flop veya 1-bit saklayc (register) olarak adlandrlan bir elektronik devrede saklanr. bir flip-flop genel bir hafza hcresi olup alma gc kesilmedii ve d sinyaller ile durumu deimedii takdirde ,sresiz kalabilecei iki duruma sahiptir.En basit flip-flop tipi ekil 4.1 de gsterilen D tipi flip floptur. Bu flip-flop, bir veri girii ile iki ka, Q ve Q sahiptir. Q, k flip-flopun durumunu(state) Q ise, flip-flop durumunun tersini belirtir. Flip-Flopun D giriindeki lojik deer; saat (clock) sinyali CLK aktif olduunda, flip flopta saklanr.Eer saklanan deer 1e eit ise,(Q=1),flip-flop 1lendi (set) denir.Eer saklanan deer 0a eit ise,(Q=0),flip-flip 0land (clear veya reset )denir.
CLK:Saat girii Q:k Q:kn tersi SET:Asenkron 1leme girii CLR:Asenkron 0lama girii
27
load clear cp
FF
FF
FF
giri
ekil-4.2. 3 bitlik kayt Load (ykle) : Bu u aktif olunca (lojik-1) giriler ka aktarlr. Clear (Silme) : Bu u aktif olunca (lojik-1) klar silinir. Cp (clock puls) : Sistemin hzn belirler ve almasn salar. Yukarda 3 FF tan meydana gelmi bir kayt grlyor. Bu kaytnn giriine (0,0,1) uygulandnda load = 1 ise klar da (0,0,1) olur. Load = 0 olduu durumda girileri kaldrdmzda klar deimez. Decoder (kod zc) : n girii 2n k olarak verebilen saysal elaman olup, mikroilemcilerde ve hafza nitelerinde adres belirlemede, displayleri srmede, ...v.s. kullanlr. Ayrk deerli bilgiler saysal sistemlerde ikili kodlarla temsil edilir. Decoder ile, n bitlik ikili kod, 2n bamsz kodlanm bilgiyi temsil edebilme kapasitesine sahiptir. Kod zc n bitlik bir ikili bilgiyi maksimum 2n k hattna dntren bir bileimsel devredir. Giri k y 0 1 0 1 D0 1 0 0 0 D1 0 1 0 0 D2 0 0 1 0 D3 0 0 0 1 x 0 0 1 1
n giri
decoder
2n k
28
D0=x y z
D1=x y z
z
D2=x y z
D3=x y z
D4=x y z
D5=x y z D6=x y z
D7=x y z
ekil 4 .3.: 3x8 bir kod zc Problem : 2 adet 3x8 dekoder kullanarak 4x16 dekoderin blok diyagramn iziniz. Encoder (Kodlayc) : 2n girii n adet k olarak verebilen saysal elamandr. Giri 2n giri n k D0 1 0 0 0 D1 0 1 0 0 D2 0 0 1 0 D3 0 0 0 1 x 0 0 1 1 k y 0 1 0 1
encoder
29
Multiplexer (oklayc) : 2n girii n adet seme ucu vastasyla tek k olarak verebilen elemandr. Yani seme ucu vastasyla aktif hale gelen giri ucunu ka verir. Bir baka ifadeyle paralel gelen giri bilgilerini ka seri bilgi olarak aktarr. Multiplexer, bir sistemi zaman oullamal olarak kullanmay salar, seri bilgi aktarm, D/A dntrclerde ...v.s. kullanlr.
2n giri
Mux
Seme ular S0 S1 0 0 0 1 1 0 1 1
k F I0 I1 I2 I3
Demultiplexer (Tekleyici) : Tek girii n adet seme ucu vastasyla 2n k olarak verebilen elemandr. Giri F A A A A Seme ular S0 S1 0 0 0 1 1 0 1 1 k I1 I2 0 0 A 0 0 A 0 0
giri
DeMux
2n k
I0 A 0 0 0
I3 0 0 0 A
B. Hafzalar Bilgisayarlar, mikroilemciler ve daha bir ok cihaz, saysal verileri ve ikili kodlanm komutlar saklamak iin bellee gereksinim duyarlar. Hafzalar balca iki snfa ayrlmaktadr: ROM, RAM. Daha nceki derslerden de hatrlanaca gibi ROM larn avantaj kalc olmalardr. Bu besleme gc kesildiinde de verilerin ROM matrisi zerinde sakl kalmas demektir. Bu nedenle tekrar g verildiinde geerli veriler hazr bulunur. Ancak ROM larn bir dezavantaj vardr. Bir plak gibi bir kez programlandlar m saklanan verileri deitirmek ok zor, hatta imkanszdr. EPROM ve EEPROM lar silinip yazlabilir, fakat ok kolay olmayp zel devreler gerektirmekle birlikte, normal devre alma hznda yaplamaz.
30
HAFIZALAR
dinamik (ram,..)
ROM
ekil-4.4. Hafzalar
RAM (Random Access Memory, Rastgele eriimli bellek): Bir flip flop (FF), bir bitlik oku/yaz RAM bellektir. Genel olarak hafza birimi, bir gurup bilgi depolama hcresi ve bu hcrelere bilgi giri/kn salayacak elemanlardan oluan devredir. Hafza hcrelerinden herhangi birine, yani rastgele adrese istenildii zaman adresi kullanarak kolaylkla eriilebilir. Bu nedenle bu tr hafza birimlerine rastgele eriimli bellek denmitir. Hafza eleman ikili bilgileri szck (word) diye adlandrlan bit guruplar eklinde depolar. Hafza ile iletiim, veri giri/k, adres seme ve kontrol hatlar ile salanr. ekil4.5. de 2k adet n-bitlik (2kxn) bir RAM iin blok ema grlmektedir.
n-bit data giri/k 2k bit adres hatt Hafza Birimi (2k x n) oku/yaz
ekil-4.5. (2kxn)lik bir RAM iin blou.
rnek : 210x16 lk bir RAM. Ram 2 byte lik szck uzunluuna (veri hattna) ve 10 bit adres hattna sahiptir.
31
1023 1111111111
Bir RAM n adres bit says (A) u ekilde bulunur : A = log 2 R den hesaplanr. Burada ; R : Ram kapasitesidir. rnek : 1024 byte Ram iin; A = log 2 1024 = 10 bit adres ucu gereklidir. rnek : 16 bit adresi olan 1 MB lk bir RAM n szck uzunluu ka byte dir. Szck uzunluu = kapasite / adres = 1MB/216 = 220 / 216 = 16 bit veya 2 byte. rnek : 1 MB lk bir RAM n szck uzunluu 2 bytedir. Buna gre en az ka bitlik adres girii gereklidir. Adres hat says = A = log 2 1MB / 2byte = 16 bit. Oku (read) ve yaz (write) ilemi : RAM zerinde okuma ve yazma olmak zere iki ilem gerekletirilir. Yeni bir szcn RAM daki herhangi bir adrese yazlabilmesi iin srasyla aadaki ilemler gerekletirilir : 1- Bilginin yazlaca adres ikili say olarak adres hattna uygulanr. 2- Data bilgileri data giri hattna uygulanarak yukarda belirtilen adrese yazlr. 3- RAM n yaz girii aktif duruma getirilir. Benzer ekilde belirli bir adresteki bilginin okunmas aadaki gibi gerekletirilir : 1- Okunacak bilginin adresi adres hattna yerletirilir. 2- RAM n oku girii aktif duruma getirilir.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
32
Okuma / Yazma ilemi aadaki gibi zetlenebilir : Hafza anahtar (memory enable) 0 1 1 RAM n i yaps : ekil-4.7. de grld gibi hcrenin lojik diyagram kap ve bir adet FF dan olumasna ramen, entegre devre olarak retilen bipolar RAM larda bu grev iki adet transistor, diyot ve direnlerle yaplmaktadr. Dolaysyla entegre devre iindeki bir hcre sanld kadar fazla yer kaplamamaktadr. Burada hcrenin genel yapsnn anlalmas asndan lojik diyagram bu ekilde izildi.
Seme
Oku / Yaz X 0 1
Hafza ilemi Hafza kilitli, ilem yaplamaz. Yazma ilemi yaplr Okuma ilemi yaplr
Giri
BC Binary Cell
R/W oku/yaz
ekil-4.8. de toplam 12 adet hcreden oluan bir RAM grlmektedir. ki adet adres girii ile er bitlik szck uzunluuna sahip drt szce ulalabilmektedir. Yani RAM n kapasitesi; (22 x 3) den olumaktadr. rnein adres girileri yukardan aaya doru (10)2 olsun. Hafza anahtar lojik-1, R/W ise lojik-0 olursa ve data girileri de (010)2 olsun. Bu durumda dekoderin D2 k 1 olacak ve bu hattaki BC lerin seme ular 1 dier hatlardaki BC lerin seme ular O olacaktr. Dolaysyla sadece szck-2 hattndaki BC ler seilmi olacaktr. Oku/yaz girii lojik-0 olduu iin data girilerindeki bilgiler szck-2 hattndaki BC lere giri olarak uygulanacak ve (10)2 adresine (010)2 bilgisi yazlacaktr.
33
data girileri
D0
szck-0 BC BC BC
szck-1 BC szck-2 BC BC
BC
BC
BC
BC
RAM dizileri RAM lar entegre devre chipleri eklinde retildiklerinden birbirleriyle irtibatlandrlarak daha byk kapasiteye sahip hafza elemanlar oluturulabilir. ekil-4.9. de bir entegre devre RAM chip inin blok diyagram verilmitir. ekilde grld gibi 10-bitlik adres, 8-bitlik data giri/k mevcuttur. CS (chip select), chip seme iin kullanlr, R/W ise oku/yaz giriidir. CS girii lojik-1 ise bu chip ile ilem yaplabilir, lojik-0 ise bu chip aktif deildir.
1KBx8 RAM 8-bit DATA (8) data girii 10-bit ADR (10) adres girii chip seme CS oku/yaz R/W
8-bit data k
34
ekil-4.10. da grld zere yukardaki chipten 4 adet kullanlarak 4 KB lk RAM elde edilmitir.
adres hatlar 1-10 hatlar
11
0 1KBx8 RAM 0-1023 DATA ADRES CS R/W 1KBx8 RAM 1024-2047 DATA ADRES CS R/W 1KBx8 RAM 2048-3071 DATA ADRES CS R/W 1KBx8 RAM 3072-4095 DATA ADRES CS R/W 8-bit data k
oku/yaz
imdi de ayn chipten 2 adet kullanarak szck uzunluunu 8-bitten 16-bite karalm.
35
10-bit adres girii 1KBx8 RAM DATA chip seme oku/yaz ADRES CS R/W 1KBx8 RAM DATA ADRES CS R/W
8-bit
8-bit
16-bit data k
ekil-4.11. 1 KB x 16 bitlik RAM blok diyagram
ekilden anlalaca zere, bu ekilde balama ile adres biti saysnda herhangi bir deiiklik olmadan sadece ayn adresteki szck bit says 8-bitten 16-bite karlmtr. Problem : Bir entegre devre RAM chipi 1024x8 (1KBx8), 1KB lk kapasiteye sahiptir. a- Bu chipin adres ve data bit saysn bulunuz. b- 16KBx16 RAM oluturmak iin bu chipten ka tane kullanlmaldr. c- 16KBx16 RAM da adres ve data bit saylar nedir? d- 16KBx16 RAM bu chiplerden oluturmak iin nasl bir dekoder kullanlmal. e- 16KBx16 RAM n blok emasn iziniz. ROM (Read Only Memory Sadece Okunabilir Bellek): Bir salt oku bellek (ROM), hem kod zcnn, hem de VEYA kaplarnn bir tm devre klf iinde yer ald bir aygttr. ROM, karmak bileimsel devrelerin bir tm devre klf iinde gereklenmesinde veya ikili bir bilginin srekli saklanmasnda hafza eleman olarak kullanlr.
36
ROM esas olarak iinde ikili bilgilerin srekli sakland bir bellek (veya hafza) aygtdr. Saklanacak ikili bilgi tasarmc tarafndan belirlendikten sonra,bu bilgiyi temsil eden i balantlara ilikin desen (pattern) elemann iine yerletirilir. ROMlar belirli bir yap iin programlanabilen i elektronik sigortalarla donatlm olarak kullanma hazrdrlar.Desen bir kere oluturulduunda ROMu devrede alrken besleyen enerji kesilip yeniden gelse bile bu desen aygtn iinde aynen kalr. ROMa ilikin bir blok diyagram ekil 4.12de verilmitir.Bu ROM, n adet giri ve m adet k hattndan olumutur.Giri deikenlerinin oluturduu bit kombinezonlar adres,k hatlarndan oluan bit kombinezonlar ise szck diye adlandrlr.Szck bana bit says k hatt says olan mye eittir. Bir adres aslnda,n deikenli minterimlerden birini gsteren ikili bir saydr.n giri deikeniyle birbirinden bamsz 2 vardr.Bir k szc bir adres tarafndan seilebildiinden ve ROMda 2 adet adres farkl adres
olduundan 2 farkl szck vardr.Bu szckler birimde saklanr ve herhangi bir zamanda giri hatlarna uygulanan adres deerine bal olarak k ularndan elde edilebilir.Bir ROM szck says 2 ile,szck bana bit says ise m ile karakterize edilir.
n giri
2 x m ROM
m k
37
Minterim
Adres girileri
0 1 2 5x32 kod zc
A 0 A1 A2 A3 A4
31
128 sigorta
F 1
F 2
F 3
F 4
ekil 4.13.: Bir 32x4 ROMun lojik yaps Bir 32x8lik ROMu gz nne alalm.Birim her biri 8 bit olan 32 szce sahiptir.Bunun anlam,8 k hatt olduu ve birimde 32 farkl szck saklanddr.Bu szcklerden her biri k hattna uygulanabilir.stenen szckleri semek iin be giri hattndan yararlanlr.32x8 ROMda, 25=32 olduundan yalnzca 5 giri vardr ve be girile 32 adres veya minterim belirlenebilir.Her bir adres girii iin sadece bir szck seilebilir.Bylece giri adresi 00000 ise 0 numaral szck seilir ve bu szck k hattnda grlr.Giri adresi 11111 olduunda 31 numaral szck seilir ve k hattna uygulanr.Bunlarn arasndaki dier 30 adres dier 30 szc seebilir. rnek : Giriine uygulanan 3 bitlik bir saynn karesinin ikili karln knda verebilecek bileimsel devreyi bir ROM kullanarak gerekletirin. stenenleri gerekletirmek zere ilk adm, bileimsel devre iin doruluk tablosunun oluturulmasdr.
38
Giriler A2 0 0 0 0 1 1 1 1 A1 0 0 1 1 0 0 1 1 A0 0 1 0 1 0 1 0 1 B5 0 0 0 0 0 0 1 1 B4 0 0 0 0 1 1 0 1 B3 0 0 0 1 0 1 0 0
klar B2 0 0 1 0 0 0 1 0 B1 0 0 0 0 0 0 0 0 B0 0 1 0 1 0 1 0 1
Onlu 0 1 4 9 16 25 36 49
A2
A1
A0
A2 A1 A0 F1 0 0
8x4 ROM
F2 0 0 0 0 1 0 1
F3 0 0 0 1 0 0 0
F4 0 0 1 0 0 1 0
0 0 1 1 0 1 1
0 1 0 1 0 0 1
0 0 0 0 0 1 1
0 0 1
F3 F4 0
F1
F2
1 1
B5
B4
B3
B2
B1
B0
ekil 4.15. de bileimsel devreye ilikin doruluk tablosudur.ekil 4.15-bdeki doruluk tablosu ROMun programlanmas iin gerekli tm bilgileri verir ve blok diyagramnda gerekli tm balantlar gsterir.
39
PROM (Programmable ROM Programlanabilir ROM Bellek) : Programlanabilir-ROM lar temel olarak ROM lar ile ayn zelliklere sahiptir. Fakat zel bir programlayc donanm yardmyla sadece bir kere olmak artyla iine yazma ilemi yaplabilir. Yksek adetli retim yapmayan veya zaman iinde ayn rnn farkl modellerini retmek isteyen firmalar tarafndan tercih edilir. OTP (One Time Programmable Bir Kez Programlanabilir) ROM olarak da adlandrlan bu rnlerin birim fiyat ROM lara gre biraz daha yksek olmakla birlikte kazandrd esneklik nedeniyle avantajldr. Ancak retici firmann bu entegreleri programlamak iin zel bir donanma sahip olmas ve kullanlacak btn PROM larn bir eleman tarafndan programlanmas gerekmektedir. EPROM (Erasable PROM Silinebilir PROM Bellek): Mikroilemcili sistemlerde EPROMlar,sistemi kontrol eden ve ounlukla monitr olarak adlandrlan,deimeyen programlar ve sabitleri tutan hafza birimleridir.EPROMlar zellikle mikroilemcili sistem programlarnn gelitirilmesi aamasnda yararldr.Program gelitirmede,ikili program kodlar EPROMa yazlr ve daha sonra bu programlanm EPROM, devre iine yerletirilir ve sistem test edilir. Eer program deitirmek gerekiyorsa, EPROM kartlr, silinir ve tekrar programlanr.bu ilemler istenen sonular alnncaya kadar tekrar eder. EPROM ieriklerinin deimesi iin, EPROM,mikroilemcili sistemden alnarak zel bir kutu iinde ltraviyole a tutulur. EPROMun tekrar bir EPROM programlaycs tarafndan programlanabilmesi iin,penceresinden geen nlarn EPROMu tamamyla silmesi gerekir. ekil 4.16.da, 16Kx8 kapasiteli 27128A EPROMunun devre iinde almas srasndaki balantlar grlmektedir. EPROM sadece okunabilir bir hafza olduu iin, WE giriine sahip deildir. Okuma modunda,program baca PGM ve program giri gerilimi Vpp 5Vta tutulur. EPROM okuma ileminde, CE ve OE kontrol hatlar kullanlabilir. CE (Chip enable) girii, SRAMda bulunan CS giriiyle ayn greve sahiptir.Benzeri ekilde, OE girii de, EPROMun 3-durumlu k bufferlarn kontrol etmede kullanlr.
40
V cc
V cp
PGM
V cc
V cp
PGM
A A 13 0 14
0 8
A A 13 0 14 27128 16Kx8 0V 5V CE OE D 7 D 0
27128 16Kx8 CS RD CE OE
EEPROM ( Electrically Erasable PROM Elektriksel Silinebilir PROM Bellek): Buraya kadar anlatlan btn hafza trleri zel ortamlarda iine yazma ilemi yaplabilirken Eeprom larda bu durum daha deiik ve gelimi bir yapdadr. Genel olarak ROM ailesine ait olmakla birlikte mikroilemci tarafndan iine yazma yaplabilmesi zellii ile dier ROM lardan ayrlr. Eprom larda grlen UV k altnda silinebilme zellii, bu tr hafzalarda elektriksel olarak gerekletirilebilmektedir. Yani Mikroilemci elektronik devre kart zerinde bulunan bir Eproma bilgi yazabilmektedir. Bu bilgi, ROM tr hafzalarn elektrik kesintilerinden etkilenmeme zellii sayesinde unutulmamakta, dolaysyla cihazn almas esnasnda kullanlan, istendiinde deitirilebilen ve fakat silinmemesi istenen bilgilerin, eitli parametrelerin saklanmas iin ideal bir zm tekil etmektedir.
41
Bellek
Akmlatr
Geici Kaydedici
ALU
Bayraklar
ekil 5.1.: ALU almas ALUda gerekleen btn bu ilemler kontrol sinyalleri vastasyla Zamanlama ve Kontrol Biriminin gzetiminde ezamanl olarak yaplr. Mikroilemcinin temel elemanlarndan biridir. ALU iki paradan oluur : Aritmetik ve Lojik niteler. a) Aritmetik nite : Toplama, karma, artrma, azaltma gibi ilemleri yapar. b) Lojik nite : AND, OR, NOT gibi ilemleri gerekletirir.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
42
X Y
S1 0 0 1 1
S0 0 1 0 1
Z X+Y XY X andY X or Y
Tanm tablosu
S0 S1
ekil-5.2. Aritmetik lojik nite
P.T.
C=0
P.T.
C=1
F=A+ B A B = FF
F = A + 1 + B = A- B A B = FF
P.T.
C=0
P.T.
C=1
F=A-1
F=A
43
B=0
B=0
P.T.
C=0
P.T.
C=1
F=A
ekil-5.3. Toplayc ve karclar
F=A+1
S1 S 2 Ai
Ci elde
bit toplayc
Fi k
Bi
Ci+1 tama
ekil-5.4. Toplayc ve karc lojik diyagram.
Problem : Yukardaki devrenin tanm tablosunu karnz. 2. arpclar arpma ilemi iki ekilde yaplabilir. - Donanm ile arpma - Yazlm ile arpma
44
a b0 0 b1 a1
C3 C2
C1
C0
Yazlm ile arpma ilemi i-) Aada iaretsiz arpma ilemi iin yazlm algoritmas verilmitir.
Bala
A,
sonucunda nemli 4 bitlik sonucu, B kayts ise nemsiz 4 bitlik sonucu gstermektedir. B kayts arplan tutar. M kayts daima zerinde arpan
E
B[0] = 1 H
A=M+A
bulundurur. Bir toplayc A ile M yi toplar ve sonucu A ya yazar. Bir de bir bitlik F kayts vardr. Bu toplama sonucunda oluan elde bitini zerinde tutar. Elde biti (F) saa kaydrma iin seri giri olarak kullanlr. rnek : M 0101 0101 0101 0101 0101 0101 0101 F 0 0 0 0 0 0 0 A 0000 0000 0000 0101 0010 0111 0011 B 1100 0110 0011 0011 1001 1001 1100 say 4 3 2 2 1 1 0
F elde
H Say = 0 E DUR
Saa Kaydrma A B
Say = Say - 1
45
12 5 60
iii-) Sola Kaydrarak arpma ilemini Gerekletirme : 1 2 4 8 0001 0010 0100 1000
3. Blme i-) Saa Kaydrarak blme: 8 4 2 1 1000 0100 0010 0010 Saya 1 2 3 4
12 - 12 0
3 4
B) LOJK NTE
A B MUX 4x1
S2 0 0 1 S1 0 1 0 1 F A.B A+B A +B A
S1 S2
46
Adres tamponu H
Adres tamponu L
Program sayac L
Yn gsterge. H
Yn gsterge. L
ndeks kayts H
128 RAM/32stb
ndeks kayts L
ALU
Mikroilemci resetlendiinde veya enerji verildiinde adres k ilk anda; A0 = 0, A1......A15 = 1 olur. Yani FFFE dir. Bu adresteki bilgi otomotikmen program sayacna (PC) yklenir ve program sayacndaki bu yeni adres deerinden itibaren mikroilemci almasna balar. Yani; [FFFE] = 80 ve [FFFF] = 00 varsa bu deerler program sayacna yklenir PC = 8000. Artk [8000] adresindeki programa gre mikroilemci alr. Program sayac (program counter, PC) : Adres ucu kadar bite (16 bit) sahip kaytdr. O anda alacak olan komutun adresini zerinde bulundurur. Komut altrldktan sonra deerini bir artrr. Komut kayts (instruction register, Ir) : O anda alan komutu zerinde bulundurur. Komut kod zc (instruction decoder) : Komut kaytsndan gelen bilgileri, kontrol sinyalleri oluturacak ekilde kodlar.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
47
Akmlatr (accumulator, birike, A, B) : A ve B olmak zere iki tanedir. Data ucu kadar bite sahiptir (8 bit). ALU tarafndan kullanlrlar. Genelde o andaki datalar veya ilem sonularn zerinde bulundururlar. ndis kayts (index register, X) : 16 bitliktir. Kullanlacak gerek hafza yerini belirlemek iin bu kayt iindeki deer, komutla belirtilen adrese eklenir. Yn gstergeci (stack pointer, SP) : 16 bitliktir. Hafzadaki herhangi bir hcre adresini zerinde bulundurur. Herhangi bir dallanma alt programlara gitme ve kesme istekleri annda mikroilemcinin o andaki bilgilerini dn annda kullanmak zere saklamak gerekir. Bunun iinde geici olarak yn gstergecinin RAM zerinde gstermi olduu adresten geriye doru bir data yn oluturulur. SP ise bu data ynnn oluturulaca adres balangcn zerinde tutar. Yna son atlan bilgi ilk alnr. Ynn kapasitesine bal olarak ii ie dallanmalar yaplabilir. Eer ynn kapasitesi yetersiz ise yn tamas (stack overflow) problemi ortaya kar. Yndan bir okuma/yazma yaplacaksa, SPnin iaret etmi olduu hafza hcresinden okunur/yazlr. SPnin deeri mikroilemci tarafndan otomatik olarak arttrlr ya da azaltlr. Yn trleri: - LIFO (Last-In First-Out): Yna son atlan bilgi ilk alnr. - FIFO (First-In, First-Out) : Yna ilk atlan bilgi ilk alnr. Bir PUSH komutuyla veri, yna atlrken, PULL komutu ile veri yndan alnr.
Yn ok dzeyli kesmelerin kolayca gereklenmesini, snrsz sayda alt programn i ie geirilebilmesini ve birok veri ileme trlerinin basitletirilmesini salar.
48
Mikroilemcinin ana programdan alt programa gittii zaman ana programa geri dnecei adresi saklad adres gznn adresini ierir. Ana programdan alt programa gidildii zaman PC de o anda ana program komut satrnn adresi vardr.
Durum kod kayts (condition code register, CCR) : ALU ile birlikte alr. Bayrak kaydedicisi, btn mikroilemcilerde olduu gibi, tipine bal olarak 8-bit, 16-bit ve 32-bit olmak zere, bir ilemin sonunda sonucun ne olduunu kaydedici bitlerine yanstan bir bellek hcresini oluturur. Bu kaydediciye bayrak denmesinin sebebi, karar vermeye dayal komutlarn yrtlmesinde sonuca gre daha sonra ne yaplacan bit deiimiyle bu kaydedicinin 1-bitlik hcrelerine yanstmasdr. Kaydedicideki bitlerin mantksal 1 olmas bayrak kalkt, mantksal 0 olmas bayrak indi anlamndadr. Karlatrma ve aritmetik komutlarn ou bayraklara etki eder. MC6802 Mikroilemcisinin CCR kayts 8-bitlik olup, zerinde u bilgiler bulunur:
1 1 H I N Z V C
kullanlmyor
Z-biti : lem sonucu sfr ise bu bit lojik-1 olur. N-biti : lem sonucu negatif ise bu bit lojik-1 olur. H-yarm elde biti : Yaplan toplam ilemi sonucunda elde biti olumu ise bu bit lojik-1 olur. V-tama biti : Eer bir elde biti varsa ve daha sonra yaplan ilem sonucunda tekrar elde biti olumu ise bu bit lojik-1 olur. C- bor elde biti : Bir karma ileminde kan say karlan saydan byk ise bor alnr. Bu durumda bu bit lojik-1 olur. I-kesme biti : Bu bit lojik-o ise gelen IRQ kesme isteklerine izin verilir. Eer bu bit lojik-1 ise gelen IRQ kesme isteklerine izin verilmez.
49
6802 Mikroilemcisinin Kontrol Sinyalleri - IRQ (interrupt request) : kesme istei - Reset : al batan - Halt : duraklatma kesmesi - NMI (non-maskable interrupt) : maskelenmeyen kesme - R/W : oku/yaz - VMA (valid memory address) : geerli adres ucu - 3 durumlu kontrol - BA (BUS available) : yol kullanlabilir. - DATA BUS enable Halt : Bu u lojik-0 olduunda 6802 son komutunu (en son yapt ilemi) tamamlar ve almasn durdurur. Bu durumda adres yolu bir adresin komutunu gsterir. BA lojik-1 olur. VMA ucu ise lojik-0 olur. Eer kesme (halt) ilemi yaplmayacaksa, halt ucu +5 volta balanmaldr. R/W : Lojik-0 ise hafzaya yaz. Lojik-1 ise hafzadan oku manasndadr. Bir k ucu olup, hafza ve giri/k nitelerine yazmak ve okumak iin kullanlr. VMA : Adres hatlar zerindeki bilginin adres bilgisi olup olmadn belirlemeye yarar. Buda bir k ucu olup gerekli evre birimlerle balants yaplmaldr. evre birimler; hafza, giri/k nitesi ...v.s. olabilir. BA : Bu k data ve adres yollarnn mikroilemci dndaki kullanclar iin kullanmaya uygun olduunu belirler. rnein halt kesmesi gelince o andaki adresteki bilgilerin kullanlabileceini gsterir. Reset : Bu u lojik-0 yapldnda program FFFE ve FFFF adresindeki yazl olan adrese dallanr ve FFFE ile FFFF nin gsterdii adres mikroilemci programnn balang adresidir. Yani mikroilemci her almasnda bu adrese gre alacaktr. NMI : Bu u lojik-0 olunca mikroilemcinin o andaki bilgileri yn gstergeci vastasyla saklanr. NMI lojik-0 olunca kesme annda yaplmas gereken iler iin FFFC, FFFD adresinde belirtilen adresteki programa dallanr. O adresteki program bitince tekrar almasna kald yerden devam eder. Yani uca gelen kesme beklemeden devreye girer.
50
IRQ : CCR kaytsnda belirtilen kesme (I) biti ile denetlenir. Eer I biti sfr ise gelen kesme isteine cevap verilir. Bu bit lojik-1 ise kesme istei geersizdir. Bir kesme balamsa bir dier kesmeye izin vermemek iin bu bit lojik-1 yaplmaldr. Mikroilemcinin gerekli bilgileri yn gstergeci yardmyla saklanr ve sonra FFF8, FFF9 adreslerinde yazl olan adresteki programa dallanr. SWI : Dier kesmelerin aksine bir yazlm kesmesidir. Bu kesme geldiinde FFFA, FFFB adreslerinde belirtilen adresteki program altrr. ou mikrobilgisayarda bu kesme geldiinde monitr durdurucu ve ayn zamanda mikrobilgisayar duraklatma ilevini yapan bir program altrlr.
H L H L H L
51
Giri/k
Bunun blok emasn izmek istersek, CPU nun 16 bit adres hatlarn aadaki gibi datmamz mmkndr.
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
adres 13 bit
data 8 bit
6821 PIA
16 bit giri/k
52
27 serisi EPROMlarn numaralarna gre kapasiteleri ve gereksinim duyduklar adres hat says aada verilmitir : EPROM ADI 2708 2716 2732 2764 27128 27256 27512 EPROM KAPASTES 1 KB 2 KB 4 KB 8 KB 16 KB 32 KB 64 KB ADRES UCU SAYISI 10 11 12 13 14 15 16
- Giri / k nitesi olarak PIA (paralel giri/k) kullanlmtr. Kullanlan MC6821 PIA nn 2 adet 8 bitlik giri/k portu vardr. - MC6802 mikroilemcisinin 16 adres ucu vardr. Bunun 13 adetini 2764 Epromu iin, 2 tanesi de eprom ve PIA y seme ilemi iin kullanld. A15 = 1, A14 = 0 ise EPROM seilir. A15 = 0, A14 = 1 ise PIA seilir. - Seme ularnda dikkat edilmesi seilmesidir. - EPROM un herhangi bir hafza blgesinden bilgi okuyacaksak, A15 adres ucunu aktif yapacak ekilde adres vermeliyiz. gereken, herhangi bir anda sadece bir elemann
BFFF
ekil-7.3. EPROM seimi ve adresleri.
- PIA zerinden giri yada k ilemi yapacaksak, A14 uunu aktif yapacak ekilde bir adres vermeliyiz. rnein; 4000.
53
- MC6802 mikroilemcisinin ierisinde 128 byte lik bir RAM vardr. Bu RAM 0000H adresine yerletirilmitir. Yani 128 bytelik RAM n adres aral 0000-007F dir ve 7 adet adres ucu vardr. Bu RAM n ilk 32 bytelik ksm stand-by (stb) zellii vardr. Bu zellik; mikroilemcinin enerjisi kesilse bile dardan bir pil ...v.s. ile stb li ksm beslenerek zerindeki bilginin silinmesini engeller. Stb gerilimi 4.5 V + %10 dur. - MC6802 mikroilemcisinin iinde bir clock puls nitesi vardr. Bu nitenin almas iin ularna bir kristal osilatr balamak gerekir. Balanacak olan bu osilatrn frekans mikroilemcinin frekansnn 4 kat olmaldr. MC6802-1 Mhz iin 4Mhz lik, MC6802-2 Mhz iin 8Mhz lik bir kristal osilatr balanmaldr. - MC6802 mikroilemcisi 8 bit data bus, 16 bit adres ucu ile 74 assembly komuta sahip bir mikroilemcidir. rnek : Mikrobilgisayar devresi izimi. Elemanlar : MC6802-1Mhz CPU, MC6821 PIA, 1KB 2708 EPROM. CPU adres dalm :
54
seme ucu
CS0 8 bit data bus 10 bit adres bus CS2 D0 D7 A0 A1 RS0 RS1
8 bit A portu
R/W
CS1
- E dier niteler ile (PIA, EPROM, ..v.s.) senkronizasyonu salayan cp dir. - RS0, RS1 PIA nn iindeki kontrol kaytlarna (6 adet) etki ederek, PIA nn hangi
portunun giri/k olduunu belirler. - PIA y semek iin 3 tane u vardr : CS0 = 1, CS2 = 0, CS1 = 1 ise PIA seilir. - EPROM u semek iin 2 tane u vardr : QE ve CS = 0 ise EPROM seilir. - Yukardaki mikrobilgisayar devresinde :
A15 0 1
A14 1 X
55
- IRQ ve NMI kullanlmad zaman lojik-1 (+5V) ta balanmaldr. IRQ ise kesmeye izin verilmez.
1 , NMI
- Reset mikroilemciyi baa dndrr. PC yi programn balang adresine kurar. dt mikroilemcinin resetlenme sresidir. Mikrobilgisayar resetlendiinde; almaya balar.
V
adres bus
reset
+5V
dt
ekil-7.7. Reset erisi
- zel bir reset anahtar (ift ynl) kullanlarak mikrobilgisayar resetlendikten sonra C nin boalmas salanr. - Yukardaki mikrobilgisayar devresi resetlendiinde 16 bitlik adres ular FFFE olur. Dolaysyla 10 bit adres ucuna sahip EPROM un son adresi olan 3FE adresindeki data deerleri PC ye yklenerek (PC = [3FE, 3FF]) PC bu yeni bilgileri mikrobilgisayarn balang adresi olarak alp, belirtilen adresteki program altrr. Resetlenme durumunda A15 = 1, A14 = 1 olur. A15 = 1 olduu iin CS2 = 1 olduundan PIA seilmez, EPROM un CS = CS2 = 0 olduu iin EPROM seilir. Resetlenme durumunda bir hafza biriminin balangta seilmesine dikkat edilmelidir.
56
8. ASSEMBLY DL KURALLARI
Bir assembly satr su ekildedir :
Veri Alan
Aklayc Bilgi
Etiket kullanlmyorsa, komut bir stn ierden balanmaldr lk stunda * varsa bundan sonraki bilgilerin alama olduunu gsterir. Eer etiket varsa u kurallara uyulmaldr : Etiket 1 ile 6 karakter uzunlua sahip olabilir. lk karakter say ve rakam olmamaldr lk stundan balanlmaldr. Etiket program boyunca ayn isimden bir tane olmaldr. Bir etiket u durumlarda kullanlr. Herhangi bir artl dallanma komutu ile gidilecek yeri belirlemek. Herhangi bir artsz dallanma komutu ile gidilecek yeri belirlemek. Herhangi bir alt programa gitmek iin. Komut Alan Bu alanda ilgili mikroilemcinin assembly komutlar bulunabilir. Komut (assembly) CLR A CLR B Operasyonel kod (op-code) kilik sistemde 4F 5F 0100 1111 0101 1111
MC6802 mikroilemcisinin 74 komutu bulunmaktadr. Bu komutlar drt guruba ayrabiliriz. a- 8 bitlik kaytlar ile yaplan ilem komutlar ki ilemli aritmetik : ABA, ADD,... Tek ilemli aritmetik : CLR A, INC B, DEC A, ... Karlatrma ve test etme : CMP, BIT A, .... Kaydrma ve dndrme : ASL, ROR, ... Mantksal fonksiyonlar : EOR, AND, COM, .... Ykleme ve depolama ilemleri : LDA, STA, LDX, STS, Transfer : TAB, TBA,TXS, ...
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
57
b- Atlama ve dallanma komutlar artl dallanma : BNE, BEQ,.... artsz dallanma : BRA, JMP, .... Alt programlara gitme : BSR, JSR, ... Kesme ilemlerinde belirtilen yerlere gitme : WAI, ... c- ndis kayts ve yn gstericisi kontrol yapan komutlar indis kayts ile ilgili ilemler : LDX, INX, STX, DEX, CPX, ... Yn gstericisi ile ilgili ilemler : STS, LDS, INS, .... Transfer ilemleri : TSX, TXS, .... d- Durum kod kayts kontrol yapan komutlar Bit kontrol : CLI, SEI, CLC, .... Byte kontrol : TAP, TPA,
Veri Alan Adresleme modlarna gre bilginin girildii alanlardr. Bu blgedeki bilgilere gre komutlar 1, 2 veya 3 bytelik olmaktadr. Eer bir komut 2 veya 3 byteden olumakta ise 2. veya 2. ve 3. byteler bir ilem, bir adres veya adres elde etmekte kullanlacak bilgiyi ierir. Ksaca ilemler ve karakterler veya karakter dizileri bu blgede bulunabilir. Bu blgede bulunan bilgiler assembly derleyicisi tarafndan u ekilde anlalr :
Saylarn Temsili say $say sayH @say sayO sayQ %say sayB aretler # (diyes) +, -, *, /
Anlam Kendisinden sonra gelenin data olduunu gsterir ve immediate adreslemede kullanlr. Normal matematiksel ilemler iin kullanlr (st seviyeli programlama dillerinde : C, pascal, fortran, ...v.s.).
58
rnek : 60H ile 61H adresindeki bilgileri toplayp 62H adresine yazan bir assembly program yaznz. Assembly Dil LDA A 60H ADD A 61H STA A 62H Operasyonel kod 96 60 9B 61 97 62 Makine dili 1001 0110 0110 0000 1001 1011 0110 0001 1001 0111 0110 0010
Programn makine kodundaki halini anlamak olduka zordur. Hekzadesimal haldeki operasyonel kodlarnda kullanc tarafndan anlalmas zordur. Bu nedenlerden dolay daha anlalr olan assembly dili kullanlr. Daha sonra program EPROM a veya mikroilemciye verilirken operasyonel kodlara evrilerek verilir.
59
Bu adresleme modlar mikroilemciler iin temelde ayn olmasna ramen baz deiiklikler gsterir. 1. Annda adresleme Bu yntemde ilenecek olan bilgi, komutun 2. byte dnda yer alr. Annda adreslemeyi assembly dil yazlmnda belirlemek iin verinin nne # iareti konur.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
60
rnek : Assembly op-code yapt i ================================= LDA A #$25 LDX #$1000 LDA A #45 86 25 CE 10 00 86 45 A = 25H X = 1000H A = 45
PC
CPU A 25
86 25 Program Hafzas
2. ndisli adresleme ndis kayts kullanlarak adreslemenin yaplmasndan dolay, bu ynteme indisli adresleme yntemi denilmitir. Komuttan sonra gelen say indis kaytsndaki sayya eklenerek, gerek data adresi belirlenir. Belirlenen bu adresten data okunur veya yazlr. ndisli adresleme yntemini belirtmek iin komut ve datadan sonra x yazlr. rnek : Assembly op-code yapt i ================================= LDA A $05,X A6 05 A = [X+05]
X+05 210A PC CPU A 40 X 2105 40
A6 05 Program Hafzas
3. Dorudan adresleme Dorudan adresleme ynteminde komutun operasyonel kodundan sonra ilenecek olan verinin bulunduu adres yazlr. Bilindii zere 16 bitlik adresler 0000....FFFF arasndadr. Dorudan adreslemede adres 8 bit kullanlarak, 8 bitlik adreslere ulalrken fazladan yer kaplamamak iin 0000....00FF arasndaki adresler, 00....FF eklinde kullanlmaktadr. Yani dorudan adreslemede komuttan sonra gelen adres deeri bir bytedir.
61
rnek : Assembly op-code yapt i ================================= LDA A $70 LDX $70 96 70 DE 70 A = [0070] X = [0070,0071]
0070
CPU A
40
40
PC
96 70 Program Hafzas
4. Geniletilmi Adresleme Bu adresleme, dorudan adreslemenin geniletilmi bir ekli olup $0000.....$FFFF arasnda tm durumlara eriilmesini salar. Bu durumlar iki bytelik olduu iin geniletilmi adresleme komutlar 3 byteden oluur. rnek : Assembly op-code yapt i ================================= LDA A $45 LDX $8520 96 45 A = [0045] A = [0045] A = [8520] LDA A $0045 B6 0045 LDA A $8520 B6 85220
CPU A
8F
8520
8F
FE 8520 X = [8520,8521]
PC
B6 85 20 Program Hafzas
5. Anlalr adresleme Bu adreslemede ilenecek olan veri (data, bilgi) komutun kendisi ile birlikte verilir. Bylece ilenecek olan bilgi herhangi bir bellek blgesinde aranmaz. Bu ekilde 6802 mikroilemcisinde 25 komut vardr. rnek : Assembly op-code yapt i ================================= ABA CLC 1B 0C A=A+B C=0 62
6. Akmlatr adresleme Bu yntem akmlatrn ilenen bilgiyi ierdii, anlalr adreslemenin zel bir durumudur. 6802 mikroilemcisinde 13 tane komut bu yntemle adreslenebilmektedir. Bu adresleme dorudan komuttan sonraki A ve B harfleri ile A akmlatr veya B akmlatr eklinde tanmlanr. rnek : Assembly op-code yapt i ================================= CLR A COM A 4F 43 A acc. sil. A = A
7. Relatif Adresleme Sadece dallanma komutlarnda kullanlan bu adresleme trnde, ulalmas gereken adres program saycsnn o andaki ieriine bal olarak bulunur. Dallanma komutlar iki byte den oluur. Birinci byte ilem bytedir. kinci byte ise teleme (salnm, sapma, offset, dallanma) byte olup, program sayacna eklenir. Bir dallanma srasnda ileriye gidilebilecei gibi, geriye de gidilmesi gerekebilir.
Dolaysyla teleme says iaretli bir saydr. teleme says 8 bitlik bir say olup, bununla (00...FF) 256 durum ifade edilir. aret dikkate alnnca +127 ileriye (00...7F), -128 geriye (80...FF) gidilebilir. Fakat teleme says okunduunda PC dallanma komutunun olduu yerden 2 ilerisini gsterecei dnlecek olursa, +129 ileri 126 geri dallanlabilir. (PC + 2) 128 TELEME MKTARI (PC + 2) +127 - leri doru sapma
PC = 5008
PC PC +2 PC+2+Sapma Komut Sapma Komut
BEQ 15 Komut
H GOTO 500A
PC = 500A
Z=1
PC = 501F
Komut
Komut
E GOTO 501F
Program Hafzas
Program Hafzas
63
- Geriye doru sapma leri doru sapma yntemiyle ayn prensiplere sahip bu yntemde tek fark bal adresin negatif bir say olarak girilmesidir.
PC+2 -Sapma Komut
PC PC + 2
Adres op-code assembly ================================ A057 ----A058 ----A059 ----A05A ----A05B ----A05C ----A05D 20 BRA F9 A05E F9 A05F -----
Geriye doru sapma miktarn u ekilde de bulunabilir : Sapma komutundan itibaren FF den balayarak geriye doru saylr, FF, FE, FD, FC,.....F9... saplacak yere gelince durulur. Problem: Aadaki programda DNG1 ve DNG2 sapma miktarlarn 16 lk say sistemi tabannda veriniz. DNG1 CLR A INC A NOP CMP A #$10 BNE DNG1 BRA DNG2 DEC A NOP WAI
DNG2
64
B) RNEK PROGRAMLAR 1. Komut ADD A #$33 ADD A $33 ADD A $0133 ADD A $06,X ABA LDA B #$FF LDA B $55 STA A $1235 INC A LDX #$0011 LDX $50 JMP $0180 JMP $02,X DEX CMP A #$50 CMP $50 CMP A $0250 ADC A #$05 AND A #$1C Adresleme Modu Annda Dorudan Geniletilmi ndisli Anlalr Annda Dorudan Geniletilmi Akmlatr (Anlalr) Annda Dorudan Geniletilmi ndisli Anlalr Annda Dorudan Geniletilmi Annda Annda Operasyonel Kodu Yapt 8B 33 9B 33 BB 01 33 AB 06 1B C6 FF D6 55 B7 12 35 4C CE 00 11 DE 50 7E 01 80 6E 02 09 81 50 91 50 B1 02 50 89 05 84 1C A = A + 33 A = A + [33] A = A + [0133] A = A + [X + 06] A=A+B B = FF B = [55] [1235] = A A=A+1 X = 0011 X = [0050, 0051] [0180] adresine git [X + 02] adresine git X=X-1 A ile 50 i karlatrr A ile [0050] i karla. A ile [0250] i karla. A = A + C + 05 A = A x 1C 65
48 78 0D 80 76 00 4E 01 24
A sola kaydrlr [0D80] sola kaydrlr [004E] saa dndrlr 2 cp zaman geiktirir C = 0 ise xx kadar sapar
2. 55 adresinde CA says ve B akmlatrnde 13 says vardr. ADD B #$55 ADD B $55 Annda Dorudan CB 55 DB 55 B = B + 55 = 68 B=B+[0055]=13+CA=DD
3. Aadaki programn almas sonucunda A akmlatrnde hangi say vardr. LDA A #$22 STA A $01C3 LDX #$0123 ADD A $A0,X 86 22 B7 01C3 CE 01 23 AB A0 A = 22 [01C3] = A = 22 X = 0123 A=A+[X+A0]=22+[0123+A0]=22+[01C3]=22+22 = 44
4. 8000H adresine yerletirilmi bir PIA nn PA0 ucundan aadaki ekilde bir kare dalga alnmak isteniyor. Gerekli assembly program yaznz.
PA0 L-1 t 3 ms 4 ms
LDA A #$01 STA A $8000 LDX #$0000 xx INX NOP CPX #$00E7 BNE xx CLR A STA A $8000 LDX #$0000 yy INX NOP CPX #$0134 BNE yy BRA zz
zz
xx etiketindeki 3 mslik dngnn deeri, bu dng ierisinde bulunan komutlarnn alma srelerinden karlr : INX 4 + NOP 2 + CPX 3 + BNE 4 = 13 cp; CPU 1 Mhz ise 13cp = 13 s
xx dng miktar = 3ms/13 s = (231)10 =(00E7)16 Benzer ekilde 4ms lik yy dngsnn deeri : yy dngs miktar = 4 ms / 13 s = (308)10 = (0134)16
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
66
5. Kopyalama program : 1000H...2000H arasndaki bilgileri 3000H....4000H arasna kopyalayan bir assembly program yaznz. LDX #$1000 STX $80 LDX #$3000 STX $82 LDX $80 LDA A $00,X INX STX $80 LDX $82 STA A $00,X INX STX $82 CPX #$4001 BNE xx SWI CE 10 00 DF 80 CE 30 00 DF 82 DE 80 A6 00 08 DF 80 DE 82 A7 00 08 DF 82 8C 40 01 26 ED 3F X = 1000 [80] = X = 1000 X = 3000 [82] = X = 3000 X = [80] A = [X+00] X=X+1 [80] = X X = [82] [00 + X] = A X=X+1 [82] = X X 4001 durumu CCR ye setler. Z = 0 ise xx e dallanr Dur
xx
6. Aadaki programn almas sonucu durum kod kaytsndaki H ve V bitlerinin durumu nedir? LDA A #$E0 LDA B #$09 ABA TAP SWI 86 E0 C6 09 1B 06 3F A = E0 B = 09 A = A+B = E9 CCR = E9 H=1 V=0 CCR = 1 1 H I N Z V C CCR = 1 1 1 0 1 0 0 1
7. Bilindii zere SWI kesmesi IRQ, NMI kesmelerinin aksine bir yazlm kesmesidir ve birok mikrobilgisayarda mikroilemciyi durdurucu bir ilev yapmaktadr. Bir SWI yazlm kesmesi program yaznz. SWI kesmesi adresleri FFFA FFFB xx NOP BRA xx 01 20 FD Sonsuz dng
8. Aadaki programn almas sonucu indis kaytsnda hangi say vardr? LDS #$007F LDA A #$23 LDA B #$34 PSH A PSH B LDX $7E SWI 8E 00 7F 86 23 C6 34 36 37 DE 7E 3F SP = 007F A = 23 B = 34 [007F] = 23 [007E] = 34 X = [007E, 007F] =3423
67
9. ki tane iki byte lk sayy toplamak iin assembly program yaznz. Saylardan biri 80H ve 81H adreslerine, dieri ise 60H ve 61H ykleyiniz. LDA A $81 LDA B $61 ABA STA A $91 LDA A $60 ADC A $80 STA A $90 LDX $90 SWI 96 81 D6 61 1B 97 91 96 60 99 80 97 90 DE 90 3F A = [81] B = [61] A=A+B [91] = A A = [60] A = A + C + [80] [90] = A X = [0090,0091] adreslerinde sakldr. Sonucu indis kaytsna
10. Aadaki programn her komutunun almasndan sonra A birikecinde bulunan deeri yaznz. LDA A #$23 AND A #$F0 COM A NEG A DEC A INC A ORA A #$34 ASL A LSR A SUB A #$43 SWI A = 23 A = 20 A = DF A = 21 A = 20 A = 21 A = 35 A = 6A A = 35 A = F2
dev : 1. ki tane sekiz bitlik saynn arpmn yapan program. 2. Aada operasyonel kodlar verilen programn assembly dil karln yazarak ne i yaptn bulunuz? CE 00 00 DF 50 4F 5F 9B 51 D9 50 08 DF 50 8C 01 2C 26 F4 97 53 D7 52 3F
68
C) ALT PROGRAM
Ana program ------------------------------------------BSR / JSR --------------END
1. Alt programa giderken geri dnlecek adres deeri yna atlr. 2. Alt program kullanlacaksa yn gstergecinin (SP) balang adresini ana programn banda mutlaka vermeliyiz ve verilen bu adresin RAM zerinde olmasna dikkat edilmelidir.
rnek 0300H ....0600H adresleri arasna 02 yazan ve bir alt programda ise bunlar toplayarak sonucu 0800H adresine kayt eden bir assembly program operasyonel kodlaryla birlikte veriniz. LDS #$007F LDX #$0300 LDA A #$02 STA A $00,X INX CPX #$0601 BNE DONGU1 BSR DONGU2 SWI CLR A CLR B LDX #$0300 ADD A $00,X ADC B #$00 INX CPX #$0601 BNE DONGU3 STA A $0801 STA B $0800 RTS 8E 00 7F CE 03 00 86 02 A7 00 08 8C 06 01 26 F8 8D 01 3F 4F 5F CE 03 00 AB 00 C9 00 08 8C 06 01 26 F6 B7 08 01 F7 08 00 39
DONGU1
DONGU2 DONGU3
69
D) KESME ALT PROGRAMI 1. Kesme alt programna giderken geri dnlecek adres deeri yna atlr.
Ana program ----------------------------CLI WAI --------------END
2. Kesme
alt
program
kullanlacaksa
yn
gstergecinin (SP) balang adresini ana programn banda mutlaka vermeliyiz ve verilen bu adresin
[FFF8, FFF9]
RAM zerinde olmasna dikkat edilmelidir. 3. IRQ kesme alt program kullanlacak ise FFF8, FFF9 adreslerine IRQ kesme alt programnn balang adresi nceden yazlmaldr. 4. NMI kesme alt program kullanlacak ise FFFC, FFFD adreslerine NMI kesme alt programnn balang adresi nceden yazlmaldr. 5. IRQ kesmesi kullanlacak ise, CCR deki I biti 0 yaplmaldr. Bir IRQ kesmesi geldikten sonra, ikinci bir IRQ kesmesine izin vermemek iin I biti 1 yaplmaldr.
------------------------------------------RTI
rnek : Bir nceki alt program rneini IRQ kesme alt program ile yapnz. LDS #$007F LDX #$0300 LDA A #$02 STA A $00,X INX CPX #$0601 BNE DONGU1 CLI WAI SWI 8E 00 7F CE 03 00 86 02 A7 00 08 8C 06 01 26 F8 0E 3E 3F 4F 5F CE 03 00 AB 00 C9 00 08 8C 06 01 26 F6 B7 08 01 F7 08 00 3B 70
DONGU1
[FFF8, FFF9] CLR A CLR B LDX #$0300 DONGU2 ADD A $00,X ADC B #$00 INX CPX #$0601 BNE DONGU2 STA A $0801 STA B $0800 RTI
Reset E R/W A0 (RS0) A1 (RS1) IRQ A IRQ B CS2 CS1 CS0 D0.....D 7 MKROLEMCYE
PA0....PA7
MC6821 PIA
PB0....PB7 CB1 CB2 B Portu
SRC DEVRELERNE
MC6821 de 3 tane 8 bitlik kayt tipi vardr ; 1-) Veri kayts (Data Register saklar. 2-) Veri yn kayts (Data Direction Register DDRB de 0 giri, 1 DDRA, DDRB) : Bu kaytdaki her bir bit, buna karlk gelen veri kaytsndaki bitin giri yada k olduunu belirler. DDRA, k olarak tanmldr. CRA, CRB) : El skma (handshake) iin gerekli 3-) Kontrol kayts (Control Register (bulundurmaktadr). DRA, DRB) : Bu kayt giri yada ka ait veriyi
71
PIA CS sinyalleri ile seilmektedir. Seilme yapldktan sonra alt kaytdan (DRADRB, DDRA-DDRB, CRA-CRB) her birine ulalabilir. Alt kayt olmasna ramen, bunlar seen iki adres yolu (RS0-A0, RS1-A1) vardr. Bu iki yolla direk olarak sadece kontrol kaytlarna (CRA, CRB) ulalabilmektedir. Veri yn kaytlarna (DDRA, DDRB) ulaabilmek iin kontrol kaytsnn nolu biti (CRA2,CRB2) kullanlmaktadr ve bu bitin 0 olmas gerekmektedir. PIA nn programlanmas ile ilgili bilgiler ksaca u ekilde zetlenebilir :
CRA2 X 1 0 CRB2
RS1 0 0 0 RS1 1 1 1
RS0 1 0 0 RS0 1 0 0
X 1 0
Not : Kontrol kayts zerindeki dier bitler ise deiik amalarla kullanlmaktadr. Bu konu iin Mikroilemciler ve Saysal Sistemler-M.E.B. kaynandan temin edilebilir. Bu belirtilenlerin nda bir PIA nn istenilen grevi yerine getirmesi iin u ekilde bir sra takip edilerek hazrlanmaldr : 1- nce giri ve k yollar PIA ya bildirilir. 2- Kontrol yollarnn (CRA0....CRA7, CRB0....CRB7) grevleri seilir. rnek 1 : Bir mikrobilgisayarda kullanlan PIA E000 adresine yerletirilmitir. PIA nn A veri yollarn giri, B veri yollarn k olarak seilecek ekilde PIA y programlaynz. Daha sonra PIA nn A portundan veri okuyup, B portuna yaznz (k veriniz).
72
Assembly CLR A STA A $E001 STA A $E003 STA A $E000 COM A STA A $E002 LDA A #$04 STA A $E001 STA A $E003 LDA A $E000 STA A $E002 SWI
Op-Code 4F B7 E0 01 B7 E0 03 B7 E0 00 43 B7 E0 02 86 04 B7 E0 01 B7 E0 03 B6 E0 00 B7 E0 02 3F
Kullanc program
rnek 2 : Bir mikrobilgisayarda kullanlan PIA 8000 adresine yerletirilmitir. PIA ya 13 bit giri ve bit k yaplmak istenmektedir. PIA y programlaynz. Assembly CLR A STA A $8001 STA A $8003 STA A $8000 LDA A #$E0 STA A $8002 LDA A #$04 STA A $8001 STA A $8003 . . . SWI Op-Code 4F B7 80 01 B7 80 03 B7 80 00 86 E0 B7 80 02 86 04 B7 80 01 B7 80 03 Kullanc program 3F Yaplan programda PIA nn A portu ve B portunun nemsiz ilk be biti giri seilmi ve B portunun nemli ilk 3 biti k seilmitir. Not : Mikroilemci (ayn zamanda PIA) resetlendiin de PIA nn yn kaytlarnn (DDRA, DDRB) btn bitleri sfrlandndan A ve B portu giri olarak seilidir. 8000, 8002 adresleri DRA, DRB ye ynlendirilir. DDR lere yn bilgileri yklenir. 0 : giri, 1 : k Aklama 8000, 8002 adresleri DDRA, DDRB ye ynlendirilir.
73
B) ACIA (Asychronous Communication Interface Adapter) Asenkron olarak seri bilgi iletimi gerekletirir. 68 serisi ACIA MC6850 entegresidir. ACIA, bir mikroilemcinin veri hattndan ald paralel bilgiyi yazc, modem, gibi evre birimlere seri biimde olarak aktarabilen veya bu birimlerden ald seri biimdeki bilgiyi mikroilemcinin veri hatlarna paralel olarak verebilen eleman olup, UART (Universal Asynchronous Receiver Transmitter Evrensel Asenkron Alc Verici) olarak ta bilinir. Veri formatlama ve asenkron seri aralarn balanabilmesi iin kontrol sinyallerine sahiptir. Genel zelliklere ise aadaki ekilde gsterilmitir.
E RS R/W
MC6850 ACIA
ACIA veri anayoluna ait paralel veriyi uygun format ve hata kontrol ile seri olarak gnderebilmekte ve alabilmektedir. Drt tane kaytya sahiptir. ki kayt sadece okunabilir : Receiver (alc) ve Status (durum). Dier ikisi ise sadece yazlabilir : Transmitter (gnderici) ve Kontrol kaytlar. Bu kaytlara RS ve R/W sinyallerinin kombinasyonu ile ulalabilmektedir. RS 0 0 1 1 R/W 0 1 0 1 Seilen Kayt Kontrol Kayts Durum Kayts Gnderici Veri Kayts Alc Veri Kayts
74
C) SSDA (Synchoronous Serial Data Adapter Senkron Seri Veri Adaptr ) Senkron olarak seri bilgi iletimi iin kullanlr. 68 serisi olarak MC6852 mevcuttur. Bu birim birok bakmdan ACIA ya benzer. D) PTM (Programmable Timer Module Programlanabilen Zamanlayc Modl) Mikroilemcilerin endstriyel uygulamalarnda ok sk karlalan bir gereksinim belirli olaylar balatma, bitirme ve uygun aralklarla tekrarlamak iin sre lmektir. Bir baka gereksinim de belirli olaylar takip edip saymak ve belirli saylarda belirli baz ilemleri yapmaktr. Her iki ilem iinde mikroilemci kullanlabilir. rnein sre lmek iin mikroilemci, balama iareti ile birlikte bir dngye sokulur ve durma iaretinde dngden klr. Dng ka defa yrtlmse, bir dngy yrtmek iin gerekli sre o dngdeki komutlarn yrtme srelerinden bulunulabileceine gre, toplam sre de bulunabilir. Ayn ekilde olay saymak iin mikroilemci bir bekleme durumuna sokulabilir, her bir olayda retilen bir kesme, belirli bir saklaycnn ieriinin bir artrlmasn salayabilir. Fakat bu yntemlerin sakncas, mikroilemcinin bu ilemleri yapabilmesi iin zamannn byk bir ksmn ayrmas ve hatta baz durumlarda baka hibir i yapmamasdr. Dolaysyla sre lme ve olay sayma iin genellikle ayr bir donanm kullanlr. 68 serisinde bu amala kullanlabilecek MC6840 zamanlayc (timer) entegresi mevcuttur. Aadaki ekilde MC6840 verilmitir.
Reset E R/W RS0 RS1 RS2 IRQ CS0 CS1 O1 O2 D0.....D 7 MKROLEMCYE O3 SRC DEVRELERNE G1 C1 C2 C3
Clock girileri
MC6840 PTM
G2 G3
Gate girileri
Timer klar
75
MC6840 ta 3 tane 16 bit ikili sistemde saya ve bunlar kontrol eden kayts ile bir tane durum (status) kayts vardr. Kayt seici yollar RS0, RS1, RS2 ve R/W yollar ile kaytlara, sayalara ve tutuculara (latch) ulaabilmektedir. Zamanlaycnn (timer) ileyi ekli kontrol kaytsna yazlan veri ile ynlendirilmektedir. 6840 deiik uygulama alanlarnda kullanlacak ekilde tasarmlandrlmtr. Kontrol kaytsnn bitine (CRx3, CRx4, CRx5) kaydedilen veri aadaki alma yntemlerinden birini seer. CRx3 0 0 1 1 CRx4 X X 0 1 CRx5 0 1 X X Zamanlaycnn levi Srekli durum Tek darbe durumu Frekans karlatrma Darbe genilii karlatrma
Bu drt ynteme ek olarak, geride kalan dier kontrol kayts bitleri balama durumlarn deitirebilmek iin kullanlr.
76
ADC0804
DB7
1- ADC ye 10K ve 150 pF baladmzda ADC kendi cp sinin kendi retir. Eer cp yi dardan vereceksek bu elemanlar balamaya gerek yok, direk CLK IN ucuna CPU nun E ucunu balarz. 2- CB2 den L-0 WR ucuna gelince ADC okuduu analog bilgiyi dijitale evirmeye balar. Dntrme ilemi bitince CB1 re bir kesme bilgisi gnderir. 3- ADC 0804 0 ile 5 V aras bir analog giri almaya uygundur. rnek 1) Giri 0- 5 V aras ise; VIN(+) : Deien ucu balanr. VIN(-) : Giriin minimum deerine (0 V) balanr. VREF : Giriin orta deeri (2.5 V) verilir. rnek 2) Giri 3- 5 V aras ise; VIN(+) : Deien ucu balanr. VIN(-) : 3 V VREF : 4 V
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
MC6821 PIA
77
4- PIA nn CRB (kontrol kaytsnn) iindeki 5. bit 1 ise CB2 k olarak seilir. CRB deki 4. bit = 1 ise 3. bit = 0 CB2 = 0, 3. bit = 1 CB2 = 1 olur. CRB deki 0.bit = 1 ise CB1 in deimesi ile IRQ B sinyalini gndermeye izin verilir. B) PIA TU TAKIMI BALANTISI rnek : 4 x 4 Tu takmnn PIA ya balanmas
Satrlar
MC6821 PIA
Kolonlar
CPU IRQ IRQ A CA1
1- Balangta PA0...PA3 klarna srasyla sadece biri L-1 dierleri ise L-0 olarak verilir. Baslan tuun hangi satrda olduu bilinir. 2- PA4...PA7 girilerinden ise srekli bilgi okunur. Bylelikle baslan tuun hangi kolonda olduu tespit edilir. 3- PIA dan verilen bilgi ile alnan bilgi birletirildiinde baslan tuun kodu bulur. Yukardaki devredeki tularn kodlar ise : 11 12 14 18 21 22 24 28 41 42 44 48 81 82 84 88
Not : Donanm ile tu takmn gerekletirmek iin entegreler mevcuttur ; 74922 gibi.
brahim Trkolu: Frat niversitesi, Elektronik ve Bilgisayar Eitimi Blm 2006
78
dev : 4x3 lk tu takmn donanm ve yazlm olarak gerekletiriniz. C) DISPLAY PIA BALANTISI Displayler ortak anotlu ve ortak katotlu olmak zere iki eittir. Displayler PIA nn k portlarnn akm (6821 PIA da 1 mA) yetersiz olduu durumlarda tampon devreler zerinden PIA ya balanr. D) DAC PIA BALANTISI DAC; mikrobilgisayarda ki saysal bilgiyi PIA yoluyla darya analog bilgi olarak vermek iin kullanlr. E) PIA NIN OPTK ZOLASYONU Mikrobilgisayar dtaki kuvvetli akml devrelerin zararlarnda korumak iin k niteleri d devreler ile izole etmek iin opto-couppler eleman kullanlr.
79
80
14. KAYNAKLAR
1- Mikroilemciler ve Saysal Sistemler D.V. Hall, M.E.B. 2- Mikroilemciler ve Mikrobilgisayarlar E. Adal 3- Using Microprocessor and Microcomputers The 6800 Family Joseph 4- leri Elektronik Hafzalar . Kurtuldu 5- Mikroilemciler 1 S. Akbay 6- Mikroilemciler ve Bilgisayarlar H. Gmkaya, Alfa 7- Assembly Programlama Sanat M. F. Tanyeri 8- Assembly B. Bayburan 9- Saysal Tasarm Moris Mano
81
15. EKLER
1- MC6802 Mikroilemcisi iin Komut Kmesi 2- Mikrobilgisayar Donanm Devresinin Ak emas 3- Mikrobilgisayar Donanm Devresinin Bask Devre emas 4- Mikrobilgisayar Donanm Devresindeki Elamanlarn Pin Numaralar ve simleri
82
NOTLAR : A = Akmlatr A , B = Akmlatr B, * : Tanmlanmam kod, Adresleme Modlar : IMM=Annda, REL=Relatif, EXT=Geniletilmi, DIR=Dorudan, IND = ndisli
83
Bask Devre
84
85
4023 NAND
2764 EPROM
86
Laboratuvar Deneyleri
Deney 1. Motorola 8-Bit Mikroilemci Deney Setinin Tannmas Deney 2. Mikroilemci Programlamas Deney 3. Asembly Dil ile Programlama Deney 4. Lojiksel lemler Deney 5. Mikroilemci Mimarisinin Yazlm ile Kontrol Deney 6. Dallanma ve Dng Programlar Deney 7. Kaydrma ve Dndrme Komutlar Deney 8. Yn ve Altprogram lemleri Deney 9. Display Kontrol Deney 10. Klavye ve Display Arabirimleri Proje : CPU + PIA + EPROM dan olumu minimum mikrobilgisayar tasarm ve iletimi
87