2. Geçen Derste Ne İşledik ?
Bilgisayar Mimarisi2
MİKROİŞLEMCİLERE GENEL BAKIŞ
MİKROİŞLEMCİYİ OLUŞTURAN BİRİMLER VE GÖREVLERİ
MİKRO İŞLEMLER VE KONTROL BİRİMİ
3. Bilgisayar Mimarisi3
Programlama Nedir Ve Türleri Nelerdir ?
Dallanma Yapıları Ve Çeşitleri
Kesmeler Ve Çeşitleri
Mikroişlemcilerin Programlanması
PIC Programlama
Bugün Konuşacaklarımız…
4. Programlama dili, yazılımcının bir algoritmayı ifade etmek
amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının
tektipleştirilmiş yoludur.
Bir programcı komutları yazmak için farklı programlama dilleri
kullanabilir.
Programlama dilleri, programcının bilgisayara hangi veri üzerinde
işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi
koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını
sağlar.
Şu ana kadar 2500'den fazla programlama dili yapılmıştır.
Bilgisayar Mimarisi4
PROGRAMLAMA DİLLERİ VE
ÖZELLİKLERİ
5. Bilgisayar Mimarisi5
Donanım ve yazılımın bir veya daha
fazla yapılandırması o programı
çalıştırmak için bir tür yol sağlar.
Programlama dili uygulamasında iki
yaklaşım vardır: Derleme
ve yorumlama.
Herhangi bir tekniği kullanarak bir
programlama dili uygulamak
mümkündür.
PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ (devamı…)
6. PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ (devamı…)
Bilgisayar Mimarisi6
Genellikle donanım üzerinde çalışanlar yazılım üzerinde
yorumlananlardan daha hızlıdır.
Yorumlanan programların performansını geliştirmek
için anında derleme programları kullanılır.
Derleyiciden gelen çıktı ya donanım tarafından ya da
yorumlayıcı diye adlandırılan programlar tarafından
çalıştırılır.
7. Programlama dilleri insanların algılamasına yakın olmasına
göre üç gruba ayrılır.
Alt seviye programlama dilleri: Makine koduna oldukça yakın
programlama dilleridir.Makina hakimiyeti oldukca
gelişmiştir.Bu programlama dillerini bilen kişilerin mikro
işlemciler hakkında bilgi sahibi olması gereklidir.(Assembly
programlama dili gibi)
Bilgisayar Mimarisi7
PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ (devamı…)
8. Orta seviye programlama dilleri: Oldukça esnek olan bu
diller hem üst hem alt seviye programlama yapabilirler. Alt
seviye dillere oranla biraz daha anlaşılırdır. (C programlama
dili gibi.)
Üst seviye programlama dilleri: Olay tabanlı programlama
dilleri olarak da adlandırılırlar yalnız bu programlama dilleri
sadece belirli fonksiyonlar etrafında çalışırlar ve
programlama hakimiyetini azaltırlar.
Bilgisayar Mimarisi8
PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ (devamı…)
9. Yüksek seviyeli programlama
dillerinde yazılan programın
çalışabilmesi için makine
diline çevrilmesi gerekir.
Bunun için program hangi
yüksek seviyeli dil ile
yazıldıysa o dilin derleyicisi
kullanılır.
Bilgisayar Mimarisi9
PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ (devamı…)
10. Böylece yüksek seviyeli
programlama dili ile yazılmış
olan kaynak program,
makine dilindeki amaç
programa dönüştürülür.
Kaynak programın içeriğinin
değiştirilmesi mümkündür,
ancak derlenmiş olan amaç
programın içeriğine
müdahale etme imkanı
yoktur.
Bilgisayar Mimarisi10
PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ (devamı…)
11. Bilgisayar Mimarisi11
Assembly Programlama Dili
Assembly dili alt seviye bir programlama dilidir ve
karmaşık programlar yazmak için kullanılır.
Assembly insanlar tarafından anlaşılması zor olan
makina dilinin sayısal ifadelerini, daha kolay anlaşılır ve
programlanabilir olan alfabetik ifadelerle değiştirip alt
seviyede programlama için bir ortam oluşturur.
12. Assembly dilinin özel kullanım alanları
Bilgisayar Mimarisi12
1. Bilgisayar sistemini yakından tanımak için,
2. Device driver (cihaz sürücüleri) yazmak için,
3. Chip’lere program yüklemek için (PIC, microcontroller
gibi...)
4. İşletim sistemlerinin yapımında (OS),
5. Virüs programları yazmak için,
6. Elektronik tablo’lama (Excel gibi) programlarında.
13. Bilgisayar Mimarisi13
Basic Programlama Dili
Basic (Beginner's All Purpose Symbolic Instruction
Code) dili 1964 yılında John Kemeny ve Thomas
Eugene Kurtz tarafından geliştirilmiş olup, eğitim amaçlı
bir programlama dilidir.
Mikrobilgisayarlar için ilk Basic uygulamasını Microsoft
'un kurucuları olan Paul Allen ve Bill Gates yazmıştır.
Öğrenmesi ve kullanımı kolay bir dil olan Basic dilinin
zamanla QBasic, Turbo Basic, Power Basic, BasicA,
Visual Basic, Visual Basic.Net gibi türevleri
geliştirilmiştir.
14. Bilgisayar Mimarisi14
C Programlama Dili
1970'lerin başında Ken Thompson ve Dennis Ritchie
tarafından UNIX İşletim Sistemi için 1972 yılında
geliştirilmiş bir C programlama dili, günümüzde
neredeyse tüm işletim sistemlerinde kullanılmaktadır.
Dünya'nın en çok kullanılan sistem programlama dilidir.
16. Bilgisayar Mimarisi16
C++ Programlama Dili
1980'lerin başlarında Bjarne Stroustrup tarafından
geliştirilen C 'yi kapsayan ve çok paradigmalı, yaygın
olarak kullanılan, genel amaçlı bir programlama dilidir.
Genel olarak her C programı aynı zamanda bir C++
programıdır, ama her C++ programı bir C programı
değildir.
17. Bilgisayar Mimarisi17
C++ Programlama Dili (devamı…)
C++'ı C 'den ayıran ve C++'ın nesne yönelimli bir dil
olmasına da olanak sağlayan en temel özellik,
sınıflardır.
Sınıflar sayesinde yeni veri türleri yaratılabilir ya da
varolan türlerden yenileri türetilebilir
18. Bilgisayar Mimarisi18
C# Programlama Dili
C# dili de C++ gibi bir C türevidir. C programlama
dilinde bir tamsayı değişkeni 1 attırmak için ++ soneki
kullanılır.
C++ dili adını, C diliyle Nesneye Yönelimli Programlama
yapabilmek için eklentiler (C With Classes) almıştır.
Benzer şekilde C++ diline yeni eklentiler
yapılarak ((C++)++) bir adım daha ileriye götürülmüş ve
tamamen nesneye yönelik tasarlanmış C# dilinin
isimlendirilmesinde, + karakterlerinin birbirlerine
yakınlaşmış hali ve bir melodi anahtarı olan C#
Major kullanılmıştır.
19. Bilgisayar Mimarisi19
Visual Basic Programlama Dili
Visual Basic, Microsoft tarafından, Basic programlama dili
üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne
tabanlı ve görsel bir programlama dilidir.Microsoft Visual Basic
dilinin değişik türevleri oluşturulmuştur:
VBA (Visual Basic for Applications); Microsoft Office gibi, değişik
yazılımlar içerisinde çalışabilecek yazılımlar geliştirilmesinde
kullanılır.
20. Bilgisayar Mimarisi20
Visual Basic Programlama Dili (devamı…)
VBScript ; Internet Explorer, ASP ve Windows Script Host
üstünde Visual Basic betikleri çalıştırılmasında kullanılan türevi.
Visual Basic.NET ; Visual Basic 6.0 Platformunun varisi olmakla
birlikte farklı bir yapıdır ve .NET Framework üzerinde çalışır ve
geriye doğru, Visual Basic 6.0 ve öncesi sürüm kodlarla
uyumsuzdur.
21. Bilgisayar Mimarisi21
Pascal Programlama Dili
Pascal programlama dili, bilgisayar bilimcisi Niklaus
Wirth tarafından 1970 'te yapısal programlamayı derleyiciler için
çok daha kolay hale getirmek amacıyla geliştirilmiştir.
Bir çok öğrenciye bilgisayar programlamayı öğreten ve çeşitli
versiyonları bugün hala yaygın olarak kullanılmaya devam eden
önemli programlama dillerinden biridir.
Adını matematikçi ve düşünür Blaise Pascal'dan alan
Pascal, Algol programlama dilinden türemiştir.
23. Bilgisayar Mimarisi23
Delphi Programlama Dili
Delphi programlama diline, özellikle nesne yönelimli
programlama anlayışıyla yapılandırılmış.
Turbo Pascal dilinin görsel sürümü denilebilir. Nesne, sınıf,
kalıtım, fonksiyon, aşırı yükleme gibi temel nesneye yönelim
programlama tekniklerini ve daha fazlasını içeren güçlü ve
esnek bir programlama dilidir.
24. Bilgisayar Mimarisi24
PIC Basic Pro Programlama Dili
PIC Basic Pro , Micro Engineering Labs firması tarafından PIC
mikrodenetleyicileri için geliştirilmiştir.
BASIC programlama dilinin kolay öğrenilebilme özelliğinden
dolayı dünyanın en çok kullanılan programlama dillerinden
biridir.
25. Mikroprogramlama25
ASSEMBLY DİLİ C DİLİ PASCAL DİLİ
# include<stdio.h>
main()
{
Printf(“merhaba C”);
}
Begin
Write(“merhaba pascal”);
End.
8 byte 8330 byte 95644 byte
Programlama Dilleri Arasında
Karşılaştırma
26. Dallanma (Branch) İşlemi
Bilgisayar Mimarisi26
JMP (jump) komutu ile belleğin bir bölümünden diğer bir
bölümüne program akışı yönlendirilebilir.
Dallanma işlemi direkt olarak yapılabileceği gibi belli bir
koşula göre de yapılabilir.
30. Bilgisayar Mimarisi30
Dallanma komutu, 16 bit bir saklayıcıyı operand olarak
kullanabilir. Bu tür dallanma, dolaylı dallanmadır ve saklayıcının
içindeki adres dallanma adresi olarak kullanılır.
Saklayıcının adresi IP’a (instruction process) alınır ve program
bu adresten itibaren yürütülür.
Aynı işlem indisli adresleme kullanılarak da gerçekleştirilebilir.
Doğrudan Dallanma
31. Koşullu Dallanma
Bilgisayar Mimarisi31
Şartlı dallanma komutlarının ilk harfi J ile başlar ve takip eden
1,2 yada 3 harf şartı gösterir.
Genele olarak JXXX şeklinde gösterilebilir.
Duruma bağlı olan dallanmalar; İşaret (Sign-S), Sıfır (Zero-Z),
Elde (Carry-C), Eşlik (Parity-P) ve taşma (Overflow-O)
bayraklarını test ederler.
Eğer test edilen durum doğru ise, program akışı dallanma
komutu ile belirtilen adresten devam eder.
Eğer durum yanlış ise, dallanma gerçekleşmez ve sıradaki
komut icra edilir.
33. ÖRNEK:
Bilgisayar Mimarisi33
MOV : Klavyeden karakter okur.
CMP : Girilen karakter 0 mı?
Karşılaştırır.
JNS : Sıfır olanan kadar döngü
devam etsin.
TABLE adresli yerden başlayan
bir dallanma tablosu yandaki
gibidir.
Her adres 2 Byte’tır.
34. ÖRNEK:
Bilgisayar Mimarisi34
CMP işleminin sonucunda
negatif bir değer elde
edileceği için S bayrağı
kurulur (S=1).
Bu durumda dallanma
gerçekleşmeyecek ve
program bir sonraki komutu
yürütecektir.
35. LOOP Komutu
Bilgisayar Mimarisi35
Loop komutu CX saklayıcısını azaltma ile duruma bağlı
dallanma işlemlerinin birleşimidir. Her seferinde CX saklayıcısı1
azaltılır. CX=0 olduğu durumda döngüden çıkılarak normal akış
sırası takip edilir.
MOV SI, OFFSET BLOCK1
MOV DI, OFFSET BLOCK2
MOV CX,100
TEKRAR:
LODSW; Block1’den veri okunmakta (DS:SI’in işaret ettiği
yerden)
ADD AX, ES:[DI]; Block2 verisi ile topla
STOSW; ES:[DI] ile belirtilen Block2 bölgesinde sakla.
LOOP TEKRAR
38. Donanımsal Kesmeler
Bilgisayar Mimarisi38
Yazılım kesmeleri programcı tarafından çağırılırken
donanım kesmeleri elektriksel yolla çağırılmaktadır.
Her mikro işlemcinin ve mikro denetleyicinin donanım
kesmesi için bir INT ucu vardır.
Bu INT ucu aktiflendiğinde (elektriksel olarak 5v gerilimle
uygulanması durumunda) mikro işlemci o anda
çalıştırılmakta olan koda ara verir ve başka bir kodu
uygulamaya başlar.
39. Donanımsal Kesmeler (devamı…)
Bilgisayar Mimarisi39
Yani bu tur kesmelerde kesmenin oluş mekanizması
dışsal ve elektriksel olaylara bağlıdır.
Bu yolla donanım kesmesi oluşturulmasına kesme
isteği « IRQ (interrupt request)» denir.
Örn: Klavye üzerindeki bir tuşa basılması. Böyle bir
durumda CPU, yapmakta olduğu işi bırakıp basılan
tuşun değerini değerlendirecektir.Bu tür kesmeler, 8259A
olarak isimlendirilen elektronik devre yardımıyla kontrol
altında tutulur.
41. İçsel Kesmeler
Bilgisayar Mimarisi41
Mikro işlemcinin bir makine kodunu çalıştırırken
problemle karşılaştığında kendi kendisini çağırdığı
kesmelerdir.
Diğer bir deyişle bazı geçersiz program sonuçlarının
elde edilmesi halinde CPU’nun kendisi tarafından
oluşturulmaktadır.
Örn:0 ile bölüm şeklindeki bir işlem sonucunda meydana
gelen meydana gelen kesme.
42. Yazılımsal Kesmeler
Bilgisayar Mimarisi42
Bu tür kesmeler, RAM veya ROM’da bulunan alt rutinlerin
çağrılmasıyla oluşturulur.
Programcı tarafından sık sık kullanılırlar.
Yazılım kesmelerinin normal fonksiyon çağırmalarından
işlevsel bir farkı yoktur.
Bunlar programcı tarafından yazılan INT makine komutuyla
koda dahil edilirler.
Kesme çağırma, uzak CALL komutuna benzer, çünkü geri
dönüş adresi (IP/CS) (instruction process /Code Segment)
ikilisine sırayla yerleştirilir.
43. Bilgisayar Mimarisi43
Kesme vektörü, mikroişlemci gerçek modda (real mode)
çalışırken, hafızanın ilk 1024 byte’lık alanında (00000h-
003FFh) saklı olan 4 byte’lık bir adrestir. Dolayısıyla 256
farklı kesme vektörü bulunur.
Her kesme vektörü, bir kesme hizmet programının adresini
oluşturan IP (instruction process) ve CS (Code Segment)
adresi içerir.
Yazılımsal Kesmeler (devamı…)
44. Bilgisayar Mimarisi44
İlk 32 kesme vektörü(0-31) 8086-80486 ve daha sonraki
işlemciler için ayrılmıştır. Geriye kalan kesme vektörleri (32-355)
kullanıcı içindir.
Ayrılmış olan vektörlerin bazıları, bölme hatası veya programın
yürütümü sırasında oluşan hatalar içindir.
Kod numaraları 32 ile 96 arasında yer alan kesmeler DOS
kesmelerdir.
Yazılımsal Kesmeler (devamı…)
46. Kesme Komutları
Bilgisayar Mimarisi46
3 farklı kesme komutu bulunmaktadır. Bunlar:
INT
INTO
INT3
Bu komutlar gerçek modda vektör tablosundan bir vektör okur
ve sonra da bu vektörle adreslenen kesme hizmet programını
çağırır.
Korumalı modda ise kesme açıklayıcı tablo (Interrrupt
Descriptor Table)’dan bir tanımlayıcı okur.
47. INT KOMUTU
Bilgisayar Mimarisi47
Programcının kullanımına sunulan 256 farklı kesme komutu
bulunmaktadır.
Kesme vektörünün adresi hesaplanırken, kesme tipi numarası
4 ile çarpılır.
Örn: 21h x4 = 84h ; Kesme 21’i kullandığımızda belleğin 1024
byte’ın içinden 132. sırada olan (84h) alana gidilecek burada 4
byte’lık adres ile belirtilen adrese gidilip kesme alt programı icra
edilecektir.
48. IRET
Bilgisayar Mimarisi48
IRET komutu ile aşağıdaki işlemler gerçekleştirilir.
• IP , CS , Flag registerinin eski değeri stack üzerinden pop
edilir.
• Korumalı moddaki karşılığı IRETD’dir.
49. INTO
Bilgisayar Mimarisi49
Taşma (Overflow) durumunda oluşan bir kesmedir.
Eğer Overflow=0 ise INTO komutu herhangi bir işleme neden
olmaz
Eğer Overflow=1 ise 4 numaralı kesmeyi çağırır.
Çalışma mantığı JO (Jump Overlow) komutu ile benzerlik
gösterir.
50. Bilgisayar Mimarisi50
Bu komutların kullanım amacı, mikroişlemcinin kesme
sinyallerine cevap vermesini veya vermemesini sağlamaktır.
CLI komutu kullanıldığında I=0 olur ve mikroişlemci
Maskelenemez kesmeler (Non-maskable Interrupts) olarak
isimlendirilen kesmelerin dışındaki hiçbir kesme isteğine
cevap vermeyecektir.
STI komutu kullanıldığında I=1 olur ve mikroişlemci tekrar
gelen kesme isteklerine cevap verecektir.
Temizle Kesme Ve Bayrak Kesme
(CLI ve STI)
51. Mikroişlemci, işlemci (bazen kısaltma olarak µP kullanılır)
ana işlem biriminin (CPU) fonksiyonlarını tek bir yarı iletken
tüm devrede birleştiren programlanabilir bir sayısal
elektronik bileşendir.
Mikroişlemci, ana işlem birimindeki kelime boyutunun (word
size) 32 bit ten 4 bit e düşürülmesiyle doğmuştur.
Kelime Boyutu:Örnek vererek açıklayacak olursak; Char
değişkeni 2 byte’tır.1 Byte 8 bit olduğundan Char
değişkenine 16 bit diyebiliriz.Char değişkeninin 4 bitlere
ayrılarak işlenmesidir.Makine dili için söyleyecek olursakda
01010100110 ‘lerin 4 ‘e ayrılarak işlenmesidir.
Bilgisayar Mimarisi51
Mikroişlemci Nedir?
52. Böylece, ana işlem biriminin mantıksal devrelerinin
transistörleri tek bir parçaya sığdırılabilmiştir.
Bir veya daha çok mikroişlemci, tipik olarak bir bilgisayar
sisteminde, gömülü sistemde ya da bir mobil cihazda ana
işlem birimi olarak görev yapmaktadır.
Bilgisayar Mimarisi52
Mikroişlemci Nedir? (devamı …)
53. Mikroişlemci temelde transistörlerden oluşan bir devre
elemanıdır.
Bunun dışında temel işlevi 0110101 üzerinde işlem yaparak
dijital sonuçlar üretmektedir.
Mikrodenetleyiciler ise mikroişlemciden farklı olarak birçok
parçadan oluşan (Ram,seri bağlantı portu vb.) sistemin
tümüne verilen isimdir.
Mikrodenetleyici bir sistemin içinde mikroişlemci bulunur.
Bilgisayar Mimarisi53
Mikroişlemci ve Mikrodenetleyici Arasındaki Fark
57. Bilgisayar Mimarisi57
Mikroişlemcilerin Tarihsel Gelişimi
Mikroişlemcilerin tarihi gelişimlerini bir kerede işleyebildikleri bit
sayısı referans alınarak dört grupta incelemek mümkündür.
8 bit Mikroişlemciler
16 bit Mikroişlemciler
32 bit Mikroişlemciler
64 bit Mikroişlemciler
58. Bilgisayar Mimarisi58
8‐Bit Mikroişlemciler
İlk mikroişlemci, Intel firması
tarafından 1971 yılında
üretilen 4 bitlik 4004
mikroişlemcisidir.
4004, 2300 transistöre, 108
kHz hızına, 0,06 MIPS
(Saniyede Milyon Komut -
Million of Instruction per
Second) gücüne, 4 bit kelime
uzunluğuna ve 640 Bayt
bellek kapasitesine sahipti.
59. Bilgisayar Mimarisi59
16‐Bit Mikroişlemciler
• İlk 16 bitlik mikroişlemci, 1978
yılında Intel firması tarafından
NMOS teknolojisi ile üretilen
8086 işlemcisidir.
• 8086 mikroişlemcisi, hem
dahili hem de harici veri
iletiminde 16 bit
kullanmaktaydı.
60. Bilgisayar Mimarisi60
İlk 32 bitlik mikroişlemciler 1984 yılında Motorolanın ürettiği 68020
ve 1985 yılında Intel’in ürettiği 80386 mikroişlemcileridir.
80386 işlemcisi veri ve adres bilgilerinin iletimi için 32 hattan oluşan
yol kullanıyordu ve haberleşme 32 bit olarak gerçekleştiriliyordu.
Intel tarafından geliştirilen 32-bitlik işlemciler IBM uyumlu PC’lerde,
Motorola tarafından geliştirilenler ise iş istasyonlarında kullanıldılar.
32‐Bit Mikroişlemciler
61. Bilgisayar Mimarisi61
64‐Bit Mikroişlemciler
İlk 64 bitlik mikroişlemciler, ‘IA-64’ veya ‘Itanium’ adı ile 1999 yılında
gündeme getirildi.
HP ve Intel’in ortak çalışması olarak sunulan ‘Itanium’, sunucu
sistemler için geliştirilmesi hedeflendi.
62. Bilgisayar Mimarisi62
Mikroişlemcili Sistemlerde Bulunan Birimler
Giriş Birimi (Input Unit)
Klavye (Keyboard)
Disket sürücü (Disk driver)
Optik okuyucu (Optic reader)
Analog – Dijital Çeviriciler (Analog – Digital Convertor -
ADC)
Harici bellek (External memory)
63. Bilgisayar Mimarisi63
Mikroişlemcili Sistemlerde Bulunan Birimler
Çıkış Birimi (Output Unit)
Çıkış birimi, mikroişlemcili sistemde ikili sayı şeklinde işlenen
bilgileri kullanıcıların anlayabileceği hale dönüştürmede
kullanılan elemanlardır.
Görüntüleme elemanları
Yazıcılar
Işık yayan diyotlar
Ses aygıtları
Dijital – Analog Çeviriciler
65. Bilgisayar Mimarisi65
Kontrol Birimi
• Mikroişlemcinin yaptığı işlemleri kontrol eden ve
iletişimi denetleyen birimdir.
• Mikroişlemci içinde ve dışında bulunan birimler
arasındaki veri iletişimini denetler ve ALU içerisindeki
işlemleri kontrol eder.
66. Bilgisayar Mimarisi66
Kontrol Birimi (devamı…)
• Mikroişlemci ile çevre birimlerinin eş zamanlı olarak
(synchronization) çalışması için gerekli sinyaller kontrol
birimi tarafından sağlanır.
• Komut okuma (fetch) ve komut işleme (execute)
işlemlerini yerine getirir
67. Bilgisayar Mimarisi67
Kaydediciler (Registers)
Mikroişlemcide verilerin işlenmesi sırasında, komutların verilerin
geçici olarak saklanması için kullanılan devrelerdir.
Kullanım amaçlarına göre kaydediciler 4’e ayrılır.
Veri kaydedicileri
Adres kaydedicileri
Kontrol kaydedicileri
Durum kaydedicileri
68. Bilgisayar Mimarisi68
Aritmetik ve Mantık Birimi (Aritmetic Logic Unit,
ALU)
•Veriler üzerinde aritmetik (toplama, çıkarma, çarpma, bölme),
mantıksal (VE, VEYA, DEĞİL vb.) veya karşılaştırma işlemleri
yapan devrelerdir.
70. Bilgisayar Mimarisi70
Mikroişlemcinin Çalışması
•Bir mikroişlemcinin çalışmasında, kontrol birimi tarafından
yerine getirilen temel iki işlem vardır.
•Komut okuma (fetch) ve komut yürütme (execute).
•Komut okuma,mikroişlemcinin hafızadan bir işlem kodu
(operation code-opcode) alıp komut saklayıcısına (Instruction
Register –IR) getirme işlemine denir.
•Komut saklayıcısına gelen komut ile hangi işlemin yapılacağı
komut kod çözücüsü tarafından belirlenir.
•Gereken sinyalleme kontrol birimi tarafından üretilir.
71. Bilgisayar Mimarisi71
Mikroişlemcinin Çalışması (devamı…)
•Eğer komut ile belirlenen işlem için,bazı işlem verisine
(operand) gerek var ise,bu veriler hafızadan okunur.
•Son olarak komutun yürütülmesi gerçekleştirilir.
•Bir komutun yürütülmesi bittikten sonra, benzeri şekilde; tekrar
komut okuma ve yürütme işlemleri,sonsuz bir çevrim içinde, bir
durma (halt) komutu yürütülünceye kadar yapılır.
73. Bilgisayar Mimarisi73
Bir Mikroişlemcinin Program Hafızasında Bulunan
Programın Çalıştırılması
1.Program sayacı o anda çalışan komutun adresini üzerine alır.
PC =[0022]
2.Komut kayıtçısı, o anda çalışan komutu üzerinde bulundurur.
Ir = 4F
3.Kontrol ünitesi bu komuta göre uygun elektronik sinyalleri
uygun yere göndererek komutu çalıştırır. 4F için A
akümülatörünü sıfırlayıcı işaret gönderir.
4.Daha sonra PC bir sonraki adrese geçer ve aynı işlemler
tekrarlanır.
75. Bilgisayar Mimarisi75
Raspberry Pi
Raspberry Pi Birleşik Krallık'ta Raspberry Pi Vakfı tarafından
okullarda bilgisayar bilimini öğretmek amacılığıyla
geliştirilmiş kredi kartı büyüklüğünde tek kartlı bir bilgisayardır.
PardusARM Sürümünün İlk Çalıştığı Modeldir.
Raspberry Pi, ARM1176JZF-S 700 MHz merkezi işlem
birimini içeren Broadcom BCM2835 mikroçipi üzerine kurulmuştur.
Sabit diske sahip değildir. Booting ve veri depolaması için SD
kart kullanır.
78. Bilgisayar Mimarisi78
MİKRODENETLEYİCİ
•Mikrodenetleyici (Microcontroller, MCU veya µC ),
işlemci (CPU), hafıza (RAM/ROM) ve giriş -çıkış (I/O
ports) birimlerinin tek bir entegre paketi içerisine
yerleştirilmesi ile gerçekleştirilmiş özel amaçlı bir
bilgisayardır.
•Günümüzde üretilen birçok mikro denetleyici, özellik ve
türlerine göre PWM, ADC, USB, USART, SPI gibi ara
birim ve özel amaçlı kaydedicilere de sahiptir.
79. Bilgisayar Mimarisi79
MİKRODENETLEYİCİ
•PWM(Pulse Width Modulation): Elektronik, sinyal işleme
veya kare dalga üretme işlemini gerçekleştirir.
•ADC(Analog Dijital Converter): Analog sinyalleri dijital
sinyallere dönüştürme işlemini gerçekleştirir.
•USB(Universal Serial Bus): USB dış donanımların bilgisayar
vb. cihazlarla ile bağlantı kurabilmesini sağlayan seri yapılı
bir bağlantı biçimidir.
•USART(Universal Synchronous Asynchronous Receiver
Transmitter): Veri karakterlerini Mikroişlemciden parelel
formatta alır ve sonra iletim için,sürekli bir seri veri dizisine
dönüştürülür.
•SPI(Serial Perihpheral Interface): Seri haberleşmeleri için
geliştirilmiş verimli haberleşme standartlarından biridir.
80. Bilgisayar Mimarisi80
MİKRODENETLEYİCİ
•Günümüzde entegre üretimi yapan birçok firma (Intel, Atmel,
Michrochip, National Semiconductor, Texas Instruments, vb.)
mikrodenetleyici üretmektedir.
•Mikrodenetleyiciler birbirlerinden sahip oldukları
üniteler(ADC, PWM, Zamanlayıcı, SPI, vb), giriş/çıkış bacak
sayıları, çalışma hızları, veri ve program yolu genişliği, bellek
kullanım şekilleri açılarından farklılıklar arz etmektedirler.
81. Mikrodenetleyici Kullanım Alanları
Mikrodenetleyici uygulama alanlarına
veya mikrodenetleyicilerin kullanıldığı
cihazlara örnek olarak; buzdolabı
evimizde kullandığımız çamaşır ve
bulaşık makineleri, mikrodalga fırın, TV,
video, vb cihazlar değil,
kullandığımız otomobildeki motor
kontrol ünitelerini, ABS fren
sistemlerini ve hız sabitleyicileri
(cruise control) ile birlikte modern
yaşamın parçası olarak gördüğümüz
dijital kameralarını, cep telefonlarını,
telefon ve faks cihazlarını, lazer
yazıcıları, fotokopileri, vb cihazları
sıralayabiliriz.
,
Bilgisayar Mimarisi81
82. ISIS
Mikroprogramlama82
ISIS elektronik devre çizimi gerçekleştirilirken ve
bunun yanında devrenin analizini de yapılabilen
bilgisayar destekli devre tasarım programıdır.
83. Mikrodenetleyici Seçimi
Günümüz de yaygın olarak kullanılan mikro denetleyiciler ve üretici firmaları
şunlardır;
– Motorola tarafından geliştirilen 68HC serisi.
– Atmel tarafından geliştirilen AVR serisi.
– Intel tarafından geliştirilen 8051 veya MSC-51 ailesi.
– Microchip firması tarafından geliştirilen PIC mikro denetleyici ailesi.
– Texas Instruments firması tarafından geliştirilen MSP430 ve ARM ailesi
Bilgisayar Mimarisi83
84. Farklı üreticiler tarafından üretilen mikro denetleyicilerin
çekirdekleri/mimarileri de farklı yapıda ve özellikte üretilmektedir.
Mikrodenetleyiciler arasında aşağıdaki farklar bulunabilir:
Mimari farkı: Harvard, Von Neuman.
Kelime genişliği: 4, 8, 16, 32, 64 bit.
Komut setleri: RISC, CISC komut işleme tekniği.
Kaydedici çeşitleri ve sayıları,
Bilgisayar Mimarisi84
Mikrodenetleyici Seçimi
85. Adresleme yöntemleri.
Kesme sayıları ve özellikleri.
Hız / güç / boyut özellikleri,
Çalışma frekansları
Gerekli çevresel birimler (USART,CAPTURE/COMPARE/PWM)
Programlama dilleri çeşitliliği(Basic, C, Pascal, Assembly, vs)
Bilgisayar Mimarisi85
Mikrodenetleyici Seçimi (devamı…)
86. Bir mikrodenetleyici genel olarak aşağıdaki birimlerden
oluşur:
1. Mikro işlemci
2. Bellek
3. Giriş/Çıkış birimi
Bilgisayar Mimarisi86
Mikrodenetleyici Temel Bileşenleri
89. Mikro denetleyicili Uygulama devresi bileşenleri
Bir PIC mikro denetleyici ile
uygulama gerçekleştirebilmek
için ;
• Besleme devresi,
• Reset sinyali,
• Osilatör devresi,
Bilgisayar Mimarisi89
90. • PIC, Microchip firması tarafından üretilen, Harvard mimarisine ve
RISC işlemcisine sahip bir mikro denetleyicidir.
•PIC kelimesi, “Peripheral Interface Controller- Çevresel Arabirim
Denetleyicisi” den türetilmiş olsada farklı kaynaklarda
“Programmable Interface Controller -Programlanabilir Arabirim
Denetleyicisi” veya “Programmable Intelligent Computer -
Programlanabilir Akıllı Bilgisayar” olarak adlandırılmıştır.
•PIC Mikro denetleyicilerinin birçok çeşidi vardır, veri yolu genişliği
baz alınarak PIC mikro denetleyicileri; 8-
bit(PIC10,PIC12,PIC16,PIC18), 16- bit(PIC24) ve 32-bit(PIC32)
olarak sınıflandırabiliriz.
Bilgisayar Mimarisi90
PIC DENETLEYİCİSİNE GENEL BAKIŞ
91. Bilgisayar Mimarisi91
“ PIC Üzerinde Çalışma “ videomuzu izleyelim.
İlgili video dosyasını izlemek ve indirmek için QR kodu, akıllı telefonlarınızdan taratınız.
92. Fiyatının ucuz olması;
Mantıksal işlemlerde performansının yüksek olması;
8, 16 ve 32 bitlik çeşitlerinin olması ;
Yüksek frekanslarda çalışabilme özelliği;
Bilgisayar Mimarisi92
PIC Denetleyicisinin Tercih Sebepleri
93. Uyku modunda (Sleep mode) 1μA gibi küçük bir akım çekmesi;
Yalnızca 2 kondansatör ve bir direnç ile çalışabilme özelliği;
Farklı bir çok dille (Basic, C,Pascal,Assembly)
programlanıp, derlenebilmesi
Harvard ve RISC mimarisine sahip olması; k-) Üretici firmanın başta
simülatör programı MPLAB olmak üzere birçok
kaynağı ücretsiz yayınlaması
6 pinden 80 pine kadar bir çok ürün çeşidinin olması
Bilgisayar Mimarisi93
PIC DENETLEYİCİSİNİN TERCİH SEBEPLERİ
(devamı…)
94. • RISC mimari ve aynı komut setine sahiptir.
• Digital I/O portları
• Power-on reset (Yenien başlatma-Anlık güç kesmek)
• Power-saving SLEEP mode (Uyku modu)
• Harici saat arabirimi
• RAM veri belleği
• EPROM veya Flash program belleği
Bilgisayar Mimarisi94
C MİKRODENETLEYİCİLER AŞAĞIDAKİ
ÖZELLİKLERE SAHİPTİR
95. Yüzlerce PIC Modelinden Hangisini
Seçeceksiniz?
Giriş / Çıkış port sayısı
Çevresel arabirim desteği (USART, USB, vb)
Program belleği kapasitesi
RAM kapasitesi
Çalışma hızı
Fiziksel boyutu
Maliyeti
Bilgisayar Mimarisi95
97. Bilgisayar Mimarisi97
Programlama Nedir Ve Türleri Nelerdir ?
Dallanma Yapıları Ve Çeşitleri
Kesmeler Ve Çeşitleri
Mikroişlemcilerin Programlanması
PIC Programlama
Bugün Neler Konuştuk…
98. Bilgisayar Mimarisi98
Akcayol, A. M. Bilgisayar mimarisi.
http://w3.gazi.edu.tr/~akcayol/files/CAL2Function.pdf
Microislemciler. (2015 19 Mart) InWikipedia, Özgür Ansiklopedi.
https://tr.wikipedia.org/wiki/microislemciler
http://www.mikroe.com
http://www.microchip.com
Kaynakça