M!MAR! YAPISAL ÖZELL!KLER!N BÜTÜNÜDÜR!
de"i!iklikler gösterir.
DONANIM ÖZELL!KLER! BELLEK B!R!M!YLE ÇALI"MA ÖZELL!KLER! ADRES YOLU / VER! YOLU ÖZELL!KLER! YARDIMCI !"LEMC! ÖZELL!KLER! KOMUTLARIN ÇALI"MA "EK!LLER! ÇALI"MA HIZI, SAAT HIZI … YAZILIM ÖZELL!KLER! PROGRAMLAMA MODEL! ADRESLEME MODLARI KOMUT KÜMES! …
Geli!en donanõm ve yazõlõm teknolojilerine ve yonga üreticisine ba"lõ olarak mikroi!lemcilerin
8. M!KRO!"LEMC! M!MAR!S!
Açõkça Paralel Komut !#leyen Bilgisayar (EPIC, Explicitly Parallel Instruction Computing)
Karma#õk Komut Kümeli Bilgisayar (CISC, Complex Instruction Set Computer)
!ndirgenmi# Komut Kümeli Bilgisayar (RISC, Reduced Instruction Set Computer)
2
#lk genel amaçlõ elektronik bilgisayar (ENIAC, Electronic Numerical Integrator and Calculator) Harvard mimarisi kullanõlarak üretilmi!tir. 1945
1943-Program ve veri belle$ini aynõ bellek alanõnda kullanma temeline dayanõr.
“Von Neumann” Mimarisi
“Harvard Mark 1” 1944
1930-!lk elektromekanik bilgisayarõn mimarisinde, program ve veri için aynõ anda çalõ#abilen birbirinden farklõ iki bellek alanõ kullanõr.
“Harvard” Mimarisi
Tablo 8-1 Intel Firmasõnõn Üretti"i Merkezi #!lem Birimlerinin Mimari Özellikleri
3
$ekil 8-1 Yõllara göre i!lemciler ve performanslarõ 4
5
Bazõ Intel !#lemcilerin !nternet Uygulamalarõ ve Sistem Performans Grafikleri Yanda görülen performans grafikleri, a!a"õda verilen ofis uygulamalarõ 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
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
-128 … +127 -32768 … +32767 -2,147,483,648 … +2,147,483,647
0 … 255 0 … 65535 0 … 4,294,967,295
±9.46 x 10-308, ±1.79 x 10308
±1.18 x 10-38, ±3.4 x 1038
- 8 … +7
0 …15
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 10308
Kelime Tipi Bit Yarõm Bayt (Nibble, 4-Bit) Bayt (Byte, 8-Bit) Kelime (Word, 16-Bit) Uzun Kelime (Long word, 32-Bit) Tek kesinlikli Kayan Noktalõ (32-Bit) Çift kesinlikli Kayan Noktalõ (64-Bit)
Tablo 8-2 #kili nümerik veri kelimeleri ve sõnõrlarõ Sõnõr De$erler !#aretsiz !#aretli 0,1 +,-
8.1.1. Veri Kelimeleri
Veri Kelimeleri , Komut Kodlarõ , Adresler
8.1. Bilgisayar Kelimeleri
6
Bellek Kelimesi !kili Onaltõlõk 10010110 96 01011110 5E 10010111 97 10001010 8A
8.1.3. Adresler
Açõklama Akümülatör yazmacõna yükle için i!lem kodu Yüklenecek i!lenen veri de"eri Akümülatör yazmacõnõ sakla için i!lem kodu #!lenen veri de"erinin saklanaca"õ adres
7
Mikroi!lemci donanõmõnda veya yazõlõmõnda, verilerin veya komut kodlarõnõn bellek biriminde bulundu"u yerin konumu, bulundu"u yer Adres olarak tanõmlanõr.
Bellek Adresi 0200 0201 0202 0203
6800 benzeri bir 8-Bit mikroi!lemci için i!lem kodu ve i!lenen adresler 8-Bit kelimeler !eklinde olabilir. Bu nedenle komutlar 1-bayt, 2-bayt veya 3-bayt biçimindedir.
4-Bit 16-Bit !#lem kodu !#lenenin veri de$eri veya adresi Bit 19 18 17 16 15 14 13 12 11 . . . . . . . 3 2 1 0
Komut kodlarõ ise aynõ veya de"i!ik mimari yapõdaki mikroi!lemcilerde de"i!ik biçimlerde, büyüklükte ve içerikte olmakla beraber çerçeve olarak benzer !ekildedir. Bir komut kodu i!lem kodu (Opcode) ve i!lenenin veri de"eri veya adresinden olu!ur. A!a"õda 20-Bit mikroi!lemci için komut kodlarõ ve adresler için bir örnek gösterilmi!tir.
8.1.2. Komut Kodlarõ
Sonra i#lem ve i#lenenlerle ilgili i#lemleri adõm adõm yapar.
Önce i#lem kodundan ne yapaca$õnõ çözer. E$er varsa bir sonraki a#amada ne yapaca$õnõ çözer.
Mikroi#lemci bir ba#langõç adresinden ba#layarak bellekteki komutlarõ okuyacak, çözecek ve çalõ#tõracaktõr.
Program RAM’da saklanõrsa daha sonra de$i#tirilebilir. E$er ROM’da saklanõrsa de$i#tirilemez kalõcõ olur.
Mikroi#lemci 8-Bitlik ise, komut kelimeleri 1-bayt, 2-bayt veya 3-bayt büyüklü$ünde sõralõ olarak bellekte saklanõr.
Mikroi#lemci programõ, mikroi#lemcinin adõm adõm ne yapaca$õnõ belirleyen komutlardan meydana gelir.
8.2. Mikroi#lemcinin Çalõ#masõ
8
8.3. Mikroi#lemcinin Basitle#tirilmi# Modeli
9
Akümülatör ve Veri Yazmaçlarõ Bunlar i!lenenlerden birini ve i!lem sonucunu tutan Akümülatör (A, Accumulator) #!lenenlerden di"erini tutan Veri Yazmacõ (DR, Data Register) 10
Mikroi#lemci Yazmaçlarõ Yürütülmekte olan programõn adresini tutan Program Sayõcõsõ (PC, Program Counter) Mikroi!lemci çalõ!õrken veri belle"indeki verinin adresini sa"layan Veri Adresi Yazmacõ (DAR, Data Address Register), Program belle"inden i!lem kodunu okuyan ve gerekli kontrol i!aretlerinin üretilmesini sa"layan Komut Yazmacõ (IR, Instruction Register)
Mikroi#lemci Yollar Mikroi!lemcinin içinde iç veri yolu ve iç adres yolu olmak üzere iki yol bulunur. Mikroi!lemciyi dõ! dünyaya ba"layan adres, veri ve kontrol yolu olmak üzere üç yol vardõr.
Tablo 8-4 Mikroi!lemci dilinde makine dili program Bellek Bellek Kõsa Komut Adresi Kelimesi Adõ Açõklama 0020 A6 LDA Akümülatöre (A) veri yükle, LDA için i#lem kodu 0021 50 X i#lenen 16-Bit adresinin büyük a$õrlõklõ 8-Biti 0022 01 küçük a$õrlõklõ 8-Biti 0023 BB ADD A nõn içeri$ine Y i#lenenini ekle için i#lem kodu 0024 50 Y i#lenen 16-Bit adresinin büyük a$õrlõklõ 8-Biti 0025 02 küçük a$õrlõklõ 8-Biti 0026 B7 STA Akümülatörü bellekte sakla, STA için i#lem kodu 0027 50 Z i#lenen 16-Bit adresinin büyük a$õrlõklõ 8-Biti 0028 03 küçük a$õrlõklõ 8-Biti 0029 3E HLT Dur için i#lem kodu
X + Y = Z i#lemi örnek alõnarak mikroi#lemcide bir programõn nasõl çalõ#õr?
8.4. Mikroi#lemcide Programõn Çalõ#masõ
11
! ve program durur (HLT).
12
! Son olarak A yazmacõndaki sonuç 5003H adresinde saklanõr (STA)
! Sonra 5002h adresindeki de$er A yazmacõna eklenir (ADD).
! önce 5001H adresindeki de$er A yazmacõna yüklenir (LDA).
Mikroi#lemcinin içyapõsõ dü#ünüldü$ünde bu i#lem gerçekle#tirilirken
program (5001H) + (5002H) = (5003H) #ekline dönü#ür.
bellek adresi kar#õlõk dü#ürülürse
! ve toplama sonucunun saklandõ$õ Z de$i#keni için 5003H gibi bir
! yine aynõ #ekilde Y de$i#keni için 5002H
saklandõ$õ 5001H gibi,
! Mikroi#lemcili bir sistemde, X de$i#keni yerine bu de$i#kenin
X + Y = Z #eklinde bir toplama i#lemini gerçekle#tiren program:
1. PC=0020H , R/W= “1” , “Bellekten Okuma (Read)”, (M) " IR , IR=A6H. 2. LDA komutu mikroi#lemcide çalõ#tõrõlmaya ba#lanõr.
$ekil 8-2 Mikroi!lemcinin 0020H adresinden i!lem kodunu yakalamasõ. __
13
__
3. PC +1 " PC. _ 4. PC=0021H , R/W=”1” , (M) " DARH , DARH=50H 5. PC +1 " PC. _ PC=0022H , R/W=”1” , (M) " DARL , DARL=01H , DAR=5001H. 6. LDA komutu çalõ#tõrõlõr. DAR=5001H " Adres yolu , R/W=”1” X=(5001H) , (M) " A , A=X.
$ekil 8-3 Mikroi!lemcinin 5001H adresinden i!lenen adresini yakalamasõ.
14
7. PC=0023H , R/W= “1” , (M) " IR , IR=BBH. ADD komutu mikroi#lemcide çalõ#tõrõlmaya ba#lanõr. 8. PC=0024H , R/W=”1” , (M) " DARH , DARH=50H 9. PC=0025H , R/W=”1” , (M) " DARL , DARL=02H , DAR=5002H. 10. ADD komutu çalõ#tõrõlõr. DAR=5002H " Adres yolu , R/W=”1” Y=(5002H) , (M) + A " A , A=X+Y.
$ekil 8-4 Y i!leneninin A yazmacõna eklenmesi __
15
16
11. PC=0026H , R/W= “1” , (M) " IR , IR=BBH. STA komutu mikroi#lemcide çalõ#tõrõlmaya ba#lanõr. 12. PC=0027H , R/W=”1” , (M) " DARH , DARH=50H 13. PC=0028H , R/W=”1” , (M) " DARL , DARL=03H , DAR=5003H. 14. STA komutu çalõ#tõrõlõr. DAR=5003H " Adres yolu , R/W=”0” “Belle$e Yazma (Write)”, Z=(5003H) , A " M , Z=X+Y. 15. PC=0029H , R/W= “1” , (M) " IR , IR=3EH. 16.HLT komutu çalõ#õr.
$ekil 8-5 Toplama sonucunun A yazmacõndan belle"e transferi __
$ekil 8-6 Motorola 6800 Mikroi!lemcisinin #ç Blok Diyagramõ
8.5.1. Motorola 6800 Mikroi#lemcisi
8.5. Mikroi#lemci Sistemlerinin Mimari Yapõlarõ
17
$ekil 8-7 Motorola 6802 Mikroi!lemcisinin #ç Blok Diyagramõ.
8.5.2. Motorola 6802 Mikroi#lemcisi
18
$ekil 8-8 Motorola 6801 Mikrobilgisayarõn #ç Blok Diyagramõ.
8.5.3. Motorola 6801 Mikrodenetleyicisi
19
$ekil 8-9 68HC11 Mikrodenetleyicinin Blok Diyagramõ.
8.5.4. Motorola 68HC11 Mikrodenetleyicisi
20
$ekil 8-10 68HC908GP32 Mikrodenetleyicinin Blok Diyagramõ.
8.5.5. Motorola 68HC08 Mikrodenetleyicisi
21
$ekil 8-11 Intel 8051 Mikrodenetleyicinin #ç Blok Diyagramõ.
8.5.6. Intel 8051 Mikrodenetleyicisi
22
$ekil 8-12 Intel 80286 Mikroi!lemcisinin #ç Blok Diyagramõ.
8.5.7. Intel 80286 !#lemci
23
$ekil 8-13 Microchip PIC16F876 Mikrodenetleyicinin #ç Blok Diyagramõ.
8.5.8. Microchip PIC Mikrodenetleyici
24
$ekil 8-14 Sayõsal i!aret i!leyici mimarisi için bir örnek
8.5.9. ADSP218x Sayõsal !#aret !#lemcisi
25
$ekil 8-15 Bellek ve Giri!/Çõkõ! Birimi Kontrol Uçlarõ Ayrõlmõ! Mikroi!lemci Mimarisi
8.5.10. Bellek ve Giri#/Çõkõ# Haritalõ Mimariler
26
$ekil 8-16 6800 ve 6802 Mikroi!lemcileri için Programlama Modeli.
8.6.1. 6800, 6802 Mikroi#lemcisinin Programlama Modeli
8.6. Mikroi#lemcilerin Programlama Modelleri
27
$ekil 8-17 6800 Mikroi!lemcisindeki ALU yapõsõnõn blok diyagramõ.
28
$ekil 8-18 6801 Mikroi!lemcisinin Programlama Modeli
8.6.2. 6801 Mikroi#lemcisinin Programlama Modeli
29
$ekil 8-19 68HC08 Ailesi Mikroi!lemcilerin Programlama Modeli
8.6.3. 68HC08 Mikroi#lemcisinin Programlama Modeli
30
$ekil 8-20 68HC11 Mikroi!lemcisinin Programlama Modeli
8.6.4. 68HC11 Mikroi#lemcisinin Programlama Modeli
31
$ekil 8-21 ADSP-218x Sayõsal #!aret #!lemcisinin programlama modeli
8.6.5. ADSP218x Sayõsal !#aret !#leyicisinin Programlama Modeli
32