8 . M !K R O !" L E M C ! M !M A R !S !
Geli!en donanõm ve yazõlõm teknolojilerine ve yonga üreticisine ba"lõ olarak mikroi!lemciD O N A N IM Ö Z E L L !K L E R ! B E L L E K B !R !M !Y L E Ç A L I" M A Ö Z E L L !K L E R ! A D R E S Y O L U / V E R ! Y O L U Ö Z E L L !K L E R ! Y A R D IM C I !" L E M C ! Ö Z E L L !K L E R ! K O M U T L A R IN Ç A L I" M A " E K !L L E R ! Ç A L I" M A H IZ I, S A A T H IZ I … Y A Z IL IM Ö Z E L L !K L E R ! P R O G R A M L A M A M O D E L ! A D R E S L E M E M O D L A R I K O M U T K Ü M E S ! …
de"i!iklikler gösterir.M !M A R ! Y A P IS A L Ö Z E L L !K L E R !N B Ü T Ü N Ü D Ü
2
“ H a rv a rd ” M im a ri s i 1 9 3 0 -! lk e le k tr o m e k a n ik b il g is a ya rõ n m im a ri s in d e , p ro g ra m v e v e ri i ç in a yn õ a n d a ç a lõ #a b il e n b ir b ir in d e n f a rk lõ i k i b e ll e k a la nõ k u ll a nõ r. “Harvard Mark 1” 1944 “V o n N e u m a n n ” M im a ri s i 1 9 4 3 -P ro g ra m v e v e ri b e ll e$ in i a yn õ b e ll e k a la nõ n d a k u ll a n m a t e m e li n e d a ya nõ r. #lk genel amaçlõ elektronik bilgisayar (ENIAC, Electronic Numerical Integrator and Calculator) Harvard mimarisi kullanõlarak üretilmi!tir. 1945 !ndirgenmi # K o m u t K ü m e li B il g is a y a r (R IS C , R e d u c e d I n s tr u c ti o n S e t C o m p u te r) K a rm a #õ k K o m u t K ü m e li B il g is a y a r (C IS C , C o m p le x I n s tr u c ti o n S e t C o m p u te r) A çõ k ç a P a ra le l K o m u t !# le y e n B il g is a y a r (E P IC , E x p li c it ly P a ra ll e l In s tr u c ti o n C o m p u ti n g )
!ndirgenmi # K o m u t K ü m e li B il g is a y a r (R IS C , R e d u c e d I n s tr u c ti o n S e t C o m p u te r) K a rm a #õ k K o m u t K ü m e li B il g is a y a r (C IS C , C o m p le x I n s tr u c ti o n S e t C o m p u te r) A çõ k ç a P a ra le l K o m u t !# le y e n B il g is a y a r (E P IC , E x p li c it ly P a ra ll e l In s tr u c ti o n C o m p u ti n g )
Tablo 8-1 Intel Firmasõnõn Üretti"i Merkezi #!lem Birimlerinin Mimari Özellikleri
4
$ekil 8-1 Yõllara göre i!lemciler ve performanslarõ
Yanda görülen performans grafikleri, a!a"õda verilen #nternet uygulamalarõ kullanõlarak elde edilen ortalamalarõn ba"õl kar!õla!tõrmasõnõ verir. Internet Uygulaması: Adobe* After Effects* 5.5 Adobe* Photoshop* 7.01 Adobe* Premiere* 6.5 Discreet* 3ds max*5.1 Macromedia* Dreamweaver* MX Macromedia* Flash MX Microsoft* Windows Media* Encoder 9 Series Network Associates* McAfee* VirusScan* 7.0 WinZip Computing WinZip* 8.1 Bazõ Intel !#lemcilerin !nternet Uygulamalarõ ve Sistem Performans Grafikleri Yanda görülen performans grafikleri, a!a"õda verilen ofis uygulam kullanõlarak elde edilen ortalamalarõn ba"õl kar!õla!tõrmasõnõ verir Masaüstü Sistem Performansı: Ofis Uygulamaları: Adobe* Acrobat* 5.0.5 Microsoft* Access 2002 Microsoft* Excel 2002 Microsoft* Internet Explorer 6 Microsoft* Outlook* 2002 Microsoft* PowerPoint* 2002 Microsoft* Word 2002 Network Associates* McAfee* VirusScan* 7.0 ScanSoft* Dragon Naturally Speaking* 6 Pref WinZip Computing WinZip* 8.1
6
8 .1 . B il g is a y a r K e li m e le ri
Veri Kelimeleri , Komut Kodlarõ , Adresler8 .1 .1 . V e ri K e lim e le ri
Tablo 8-2 #kili nümerik veri kelimeleri ve sõnõrlarõ Sõnõr De$erler Kelime Tipi !#aretsiz!#aretli Bit0 , 1+ , - Yarõm Bayt (Nibble, 4-Bit) 0 …15- 8 … +7 Bayt (Byte, 8-Bit) 0 … 255-128 … +127 Kelime (Word, 16-Bit) 0 … 65535-32768 … +32767 Uzun Kelime (Long word, 32-Bit) 0 … 4,294,967,295-2,147,483,648 … +2,147,483,647 Tek kesinlikli Kayan Noktalõ (32-Bit) ±1.18 x 10-38 , ±3.4 x 1038 Çift kesinlikli Kayan Noktalõ (64-Bit) ±9.46 x 10-308 , ±1.79 x 10308 Tablo 8-3 QuickBASIC derleyicisi için veri tipleri ve sõnõrlarõ Veri Tipi Sõnõr De$erler Tek kesinlikli Kayan Noktalõ±1.4 x 10-45 , ±3.4 x 1038 Çift kesinlikli Kayan Noktalõ ±4.94 x 10-324 , ±1.79 x 103088 .1 .2 . K o m u t K o d la rõ
Komut kodlarõ ise aynõ veya de"i!ik mimari yapõdaki mikroi!lemcilerde de"i!ik biçimlerde, büyüklük ve içerikte olmakla beraber çerçeve olarak benzer !ekildedir. Bir komut kodu i!lem kodu (Opcode i!lenenin veri de"eriveyaadresindenolu!ur. A!a"õda 20-Bit mikroi!lemci için komut kodlarõ adresler için bir örnek gösterilmi!tir. 4-Bit !#lem kodu16-Bit !#lenenin veri de$eri veya adresi Bit 19 18 17 1615 14 13 12 11 . . . 3 2 1 0 6800 benzeri bir 8-Bit mikroi!lemci için i!lem kodu ve i!lenen adresler 8-Bit kelimeler !eklinde ola Bu nedenle komutlar 1-bayt, 2-bayt veya 3-bayt biçimindedir. Bellek Adresi Bellek Kelimesi !kili OnaltõlõkAçõklama 0200 020110010110 0101111096 5EAkümülatör yazmacõna yükle için i!lem kodu Yüklenecek i!lenen veri de"eri 0202 020310010111 1000101097 8AAkümülatör yazmacõnõ sakla için i!lem kodu #!lenen veri de"erinin saklanaca"õ adres8.1.3. Adresler M ik ro i! le m ci d o n a nõ m õn d a v e ya y a zõ lõm õn d a , ve ri le ri n v e ya k o m u t ko d la rõ nõ n b e b ir im in d e b u lu n d u " u y e ri n k o n u m u , b u lu n d u " u y e r A d re s o la ra k ta nõ m la nõ r.
8
8 .2 . M ik ro i# le m c in in Ç a lõ #m a sõ M ik ro i# le m c i p ro g ra m õ, mikroi #lemcinin ad õm a dõ m n e y a p a c a$ õn õ b e li rl e y e n k o m u tl a rd a n m e y d a n a g e li r. M ik ro i# le m c i 8 -B it li k i s e , k o m u t k e li m e le ri 1 -b a y t, 2 -b a y t v e y a 3 -b a y t b ü y ü k lü $ ü n d e s õr a lõ o la ra k b e ll e k te s a k la nõ r. Program RAM’da saklan õrsa daha sonra de $ i# ti ri le b il ir . E $ e r R O M ’d a s a k la nõ rs a d e $ i# ti ri le m e z k a lõc õ o lu r. M ik ro i# le m c i b ir b a #l a n gõ ç a d re s in d e n b a #l a y a ra k b e ll e k te k i komutlar õ o k u y a c a k , ç ö ze c e k v e ç a lõ #t õr a c a k tõ r. Ö n c e i #l e m k o d u n d a n n e y a p a c a$ õn õ ç ö ze r. E $ e r v a rs a b ir s o n ra k i a #a m a d a n e y a p a c a $õ nõ ç ö ze r. Sonra i# le m v e i# le n e n le rl e i lg il i i# le m le ri a dõ m a dõ m y a p a r.
8 .3 . M ik ro i# le m c in in B a s it le #t ir il m i# M o d e li
10
M ik ro i# le m c i Y o ll a r M ik ro i! le m ci n in iç in d e iç v e ri y o lu v e iç a d re s y o lu o lm a k ü ze re ik i y o l b u lu n u r. M ik ro i! le m ci yi d õ! d ü n ya ya b a " la ya n a d re s, v e ri v e k o n tr o l y o lu o lm a k ü ze re ü ç yo l v a rd õr . M ik ro i# le m c i Y a zm a ç la rõ Y ü rü tü lm e kt e o la n p ro g ra m õn a d re si n i t u ta n P ro g ra m S a yõ cõ sõ ( P C , P ro g ra m C o u n te r) M ik ro i! le m ci ç a lõ! õr ke n v e ri b e lle " in d e ki v e ri n in a d re si n i s a " la ya n V e ri A d re si Y a zm a cõ ( D A R , D a ta A d d re ss R e g is te r) , P ro g ra m b e lle " in d e n i! le m k o d u n u o ku ya n v e g e re kl i k o n tr o l i !a re tle ri n in ü re til m e si n i s a " la ya n K o m u t Y a zm a cõ ( IR , In st ru ct io n R e g is te r) A k ü m ü la tö r v e V e ri Y a zm a ç la rõ B u n la r i! le n e n le rd e n b ir in i v e i! le m s o n u cu n u t u ta n A kü m ü la tö r (A , A cc u m u la to r) #! le n e n le rd e n d i" e ri n i t u ta n V e ri Y a zm a cõ ( D R , D a ta R e g is te r)
8 .4 . M ik ro i# le m c id e P ro g ra m õn Ç a lõ #m a sõ X + Y = Z i# le m i ö rn e k a lõ n a ra k m ik ro i# le m c id e b ir p ro g ra m õn n a sõ l ç a lõ# õr?
Tablo 8-4 Mikroi!lemci dilinde makine dili program Bellek Adresi Bellek Kelimesi Kõsa Komut AdõAçõklama 0020 0021 0022A6 50 01
LDAAkümülatöre (A) veri yükle, LDA için i#lem kodu X i#lenen 16-Bit adresinin büyük a$õrlõklõ 8-Biti küçük a$õrlõklõ 8-Biti 0023 0024 0025
BB 50 02
ADDA nõn içeri$ine Y i#lenenini ekle için i#lem kodu Y i#lenen 16-Bit adresinin büyük a$õrlõklõ 8-Biti küçük a$õrlõklõ 8-Biti 0026 0027 0028
B7 50 03
STAAkümülatörü bellekte sakla, STA için i#lem kodu Z i#lenen 16-Bit adresinin büyük a$õrlõklõ 8-Biti küçük a$õrlõklõ 8-Biti 00293EHLTDur için i#lem kodu
12
X + Y = Z # e k li n d e b ir t o p la m a i# le m in i g e rç e k le #t ir e n p ro g ra m : ! M ik ro i# le m c il i b ir s is te m d e , X d e$ i# k e n i y e ri n e b u d e$ i# k e n in s a k la n dõ $õ 5 0 0 1 H g ib i, ! y in e a y nõ # e k il d e Y d e$ i# k e n i iç in 5 0 0 2 H ! v e t o p la m a s o n u c u n u n s a k la n dõ $õ Z d e$ i# k e n i iç in 5 0 0 3 H g ib i b ir b e lle k a d re s i k a r# õl õk d ü #ü rü lü rs e p ro g ra m ( 5 0 0 1 H ) + ( 5 0 0 2 H ) = ( 5 0 0 3 H ) #e k lin e d ö n ü #ü r. M ik ro i# le m c in in iç y a põ sõ d ü #ü n ü ld ü $ ü n d e b u i# le m g e rç e k le #t ir il ir k e n ! ö n c e 5 0 0 1 H a d re s in d e k i d e$ e r A y a zm a cõ n a y ü k le n ir ( L D A ). ! S o n ra 5 0 0 2 h a d re s in d e k i d e $ e r A y a zm a cõ n a e k le n ir ( A D D ). ! S o n o la ra k A y a zm a cõ n d a k i s o n u ç 5 0 0 3 H a d re s in d e s a k la nõ r (S T A ) ! v e p ro g ra m d u ru r (H L T ).
$ekil 8-2 Mikroi!lemcinin 0020H adresinden i!lem kodunu yakalamasõ. __
1 . P C = 0 0 2 0 H , R /W = “ 1 ” , “B e ll e k te n O k u m a ( R e a d )” , ( M ) " IR , IR = A 6 H . 2 . L D A k o m u tu m ik ro i# le m c id e ç a lõ #t õr õl m a y a b a #l a nõ r.
14
$ekil 8-3 Mikroi!lemcinin 5001H adresinden i!lenen adresini yakalamasõ. __
3 . P C + 1 " P C . _ 4 . P C = 0 0 2 1 H , R /W = ”1 ” , (M ) " D A R
H, DAR
H= 50 H 5 . P C + 1 " P C . _ P C = 0 0 2 2 H , R /W = ”1 ” , (M ) " D A R
L, DAR
L= 0 1 H , D A R = 5 0 0 1 H . 6 . L D A k o m u tu ç a lõ# tõ rõ lõr . D A R = 50 0 1 H " A d re s y o lu , R /W = ”1 ” X = (5 0 0 1 H ) , (M ) " A , A = X .
$ekil 8-4 Y i!leneninin A yazmacõna eklenmesi __
7 . P C = 0 0 2 3 H , R /W = “ 1 ” , (M ) " IR , IR = B B H . A D D k o m u tu m ik ro i# le m c id e ç a lõ #t õr õl m a y a b a #l a nõ r. 8 . P C = 0 0 2 4 H , R /W = ”1 ” , (M ) " D A R
H, DAR
H= 50 H 9 . P C = 0 0 2 5 H , R /W = ”1 ” , (M ) " D A R
L, DAR
L= 0 2 H , D A R = 5 0 0 2 H . 1 0 . A D D k o m u tu ç a lõ# tõ rõ lõr . D A R = 50 0 2 H " A d re s y o lu , R /W = ”1 ” Y = (5 0 0 2 H ) , (M ) + A " A , A = X + Y .
16
$ekil 8-5 Toplama sonucunun A yazmacõndan belle"e transferi __
1 1 . P C = 0 0 2 6 H , R /W = “ 1 ” , (M ) " IR , IR = B B H . S T A k o m u tu m ik ro i# le m c id e ç a lõ #t õr õl m a y a b a #l a nõ r. 1 2 . P C = 0 0 2 7 H , R /W = ”1 ” , (M ) " D A R
H, DAR
H= 50 H 1 3 . P C = 0 0 2 8 H , R /W = ”1 ” , (M ) " D A R
L, DAR
L= 0 3 H , D A R = 5 0 0 3 H . 1 4 . S T A k o m u tu ç a lõ# tõ rõ lõr . D A R = 50 0 3 H " A d re s y o lu , R/W=”0” “B e lle $ e Y az m a ( W ri te )” , Z = (5 0 0 3 H ) , A " M , Z = X + Y . 1 5 . P C = 0 0 2 9 H , R /W = “ 1 ” , (M ) " IR , IR = 3 E H . 1 6 . H L T k o m u tu ç a lõ# õr .
8 .5 . M ik ro i# le m c i S is te m le ri n in M im a ri Y a põ la rõ 8 .5 .1 . M o to ro la 6 8 0 0 M ik ro i# le m c is i
$ekil 8-6 Motorola 6800 Mikroi!lemcisinin #ç Blok Diyagramõ18
8 .5 .2 . M o to ro la 6 8 0 2 M ik ro i# le m c is i
$ekil 8-7 Motorola 6802 Mikroi!lemcisinin #ç Blok Diyagramõ.8 .5 .3 . M o to ro la 6 8 0 1 Mi krodenetley icisi
$ekil 8-8 Motorola 6801 Mikrobilgisayarõn #ç Blok Diyagramõ.20
8 .5 .4 . M o to ro la 6 8 H C 1 1 M ik ro d e n e tl e yi c is i
$ekil 8-9 68HC11 Mikrodenetleyicinin Blok Diyagramõ.8 .5 .5 . M o to ro la 6 8 H C 0 8 M ik ro d e n e tl e yi c is i
$ekil 8-10 68HC908GP32 Mikrodenetleyicinin Blok Diyagramõ.22
8 .5 .6 . I n te l 8 0 5 1 M ik ro d e n e tl e yi c is i
$ekil 8-11 Intel 8051 Mikrodenetleyicinin #ç Blok Diyagramõ.8.5.7. Intel 80286 !# le m ci
$ekil 8-12 Intel 80286 Mikroi!lemcisinin #ç Blok Diyagramõ.24
8 .5 .8 . M ic ro c h ip P IC M ik ro d e n e tl e yi c i
$ekil 8-13 Microchip PIC16F876 Mikrodenetleyicinin #ç Blok Diyagramõ.8 .5 .9 . A D S P 2 1 8 x S a yõ s a l !# a re t !# le m c is i
$ekil 8-14 Sayõsal i!aret i!leyici mimarisi için bir örnek26
8 .5 .1 0 . B e ll e k v e G ir i# /Ç õk õ# H a ri ta lõ M im a ri le r
$ekil 8-15 Bellek ve Giri!/Çõkõ! Birimi Kontrol Uçlarõ Ayrõlmõ! Mikroi!lemci Mimarisi8 .6 . M ik ro i# le m c il e ri n P ro g ra m la m a M o d e ll e ri 8.6.1. 6800, 6802 Mikroi #l e m c is in in P ro g ra m la m a M o d e li
$ekil 8-16 6800 ve 6802 Mikroi!lemcileri için Programlama Modeli.28
$ekil 8-17 6800 Mikroi!lemcisindeki ALU yapõsõnõn blok diyagramõ.
8 .6 .2 . 6 8 0 1 M ik ro i# le m c is in in P ro g ra m la m a M o d e li
$ekil 8-18 6801 Mikroi!lemcisinin Programlama Modeli30
8 .6 .3 . 6 8 H C 0 8 M ik ro i# le m c is in in P ro g ra m la m a M o d e li
$ekil 8-19 68HC08 Ailesi Mikroi!lemcilerin Programlama Modeli8 .6 .4 . 6 8 H C 1 1 M ik ro i# le m c is in in P ro g ra m la m a M o d e li
$ekil 8-20 68HC11 Mikroi!lemcisinin Programlama Modeli32