Bu giriş
bölümünde, önce, kitabın mikroişlemci tabanlı sistemlerin temel
kavramlarını ve uygulamalarını öğretmede takip ettiği yaklaşım ve genel
yapısı sunulacaktır. Sonra, Intel x86 Ailesinin kullanım alanları
hakkında kısa bir bilgi verilecektir. Daha sonra, kitapta yer alan
bölümler özet olarak sunulacaktır. Son olarak, kitapta yer alan önemli
program dosyalarının temin edilebileceği, ayrıca, çeşitli mikroişlemci/mikrodenetleyici
ve bilgisayarlar ile ilgili kaynakların verildiği, kitabın Internet
desteği hakkında bilgi sunulacaktır.
Kitabın Yaklaşımı ve Genel Yapısı
Bu kitap, Intel
mikroişlemcileri ile IBM PC mimarilerine bir giriş kitabı olarak
yazılmıştır. Ayrıca, mikroişlemci ve PC tabanlı elektronik sistemler ve
de PC ile kontrol ve veri toplama konuları da sunulmaktadır. Kitaptaki
konular genel olarak üçe ayrılmaktadır:
İlk üç bölümde mikroişlemcili sistemlerin temel
kavramları anlatılmaktadır. Bir mikroişlemci tabanlı sistem;
mikroişlemci, hafıza ve giriş/çıkış birimlerinden oluşan,
adreslenebilir saklayıcılar topluluğu olarak basit bir şekilde
modellenebilir. Bu modelde, işlemcinin içindeki saklayıcılar, iç
saklayıcılar ve dışındakiler (hafıza hücreleri ve giriş/çıkış
birimleri) dış saklayıcılar olarak belirtilebilir. Kitapta, bu
modelleme temel olarak alınmakta ve mikroişlemci tabanlı sistemlerin
temel kavramlarını sunmak için, Bölüm 2de, böyle bir sistemin en küçük
yapı taşları olan saklayıcılardan başlanmaktadır. Sonra, saklayıcıların
birleştirilmesiyle oluşan hafıza birimi sunulmaktadır. Daha sonra, bir
mikroişlemcili sistem için hafıza tasarımı anlatılmaktadır.
Bölüm 3te
mikroişlemci mimarisi ve çalışması detaylı bir şekilde öğretilmektedir.
Bu bölümde; Intel x86 çekirdeğini ve daha başka işlemcileri,
(Intel 8051, 8096, 80960 gibi mikrodenetleyiciler ve Zilog firmasının
Z80 mikroişlemcisi gibi işlemciler) mimari olarak etkileyen 8085A
mikroişlemcisi, 8-bitlik bir mikroişlemcinin yapısını ve çalışmasını
öğretmede örnek işlemci olarak kullanılmaktadır. Bu işlemcinin komut
kümesi tam olarak sunulmayıp, sadece mikroişlemci-hafıza
haberleşmesindeki iki komut (LDA ve STA) ve mikroişlemci-giriş/çıkış
cihazları haberleşmesinde kullanılan iki komut (IN ve OUT) ve bu
komutların yürütülmesindeki sinyalleme, detaylı olarak anlatılmaktadır.
Bölüm 2 ve Bölüm 3te anlatılan kavramların pek çoğu genel olup bilhassa
Intelin birçok işlemcisi için geçerlidir.
Bölüm 4ten başlayıp
Bölüm 10a kadar olan kısımlarda; Intelin x86 Ailesinin
özellikle 16-bit çekirdeğinin, donanım ve yazılım mimarisi, adresleme
modları, komut kümesi, programlanması ve uygulamaları ayrıntılı olarak
sunulmaktadır. Ayrıca 32-bit işlemciler olan 386 ve 486 mimarileri de
anlatılmaktadır.
Bölüm 11den itibaren IBM PC mimarisi, PC sistem yolları,
IBM PCde giriş/çıkış, ISA yolu ve bu yol için bir I/O kartının
tasarımı, PC ile kontrol ve veri toplama uygulamaları, Paralel Port,
seri veri haberleşmesi ve PC Seri Port ve son olarak Pentium
mikroişlemcileri sunulmaktadır.
Intel
x86 Mikroişlemci Ailesi
1978-79 yıllarında
üretilen ilk 8086/8088den başlayıp 286, 386, 486, Pentium, Pentium Pro,
Pentium MMX, Pentium II ve Pentium III mikroişlemcilerine uzanan geniş
bir ürün yelpazesine sahip olan Intel x86 mikroişlemci ailesi
tarihteki en başarılı mikroişlemci ailesi olmuştur. Bunda çeşitli
faktörler rol oynamıştır, fakat en büyük neden, şüphesiz 1981 yılındaki
ilk PCde IBM firmasının 8088 mikroişlemcisini seçmesi olmuştur. O
tarihten itibaren, IBM ve birçok başka firma bu işlemcileri PClerde
kullanmaktadır. PClerin dünyada yaygın olarak kullanılması, bu
işlemcilerin başarısında en büyük neden olmuştur.
Intel x86 ailesinin donanım ve yazılım mimarisinin
öğrenilmesi günümüzde özellikle aşağıdaki alanlar için önemlidir:
n Intel
mikroişlemcileri ile IBM PC mimarisini ve çalışmasını anlamak için x86
işlemcilerinin ve çevre birimlerinin bilinmesi gerekir.
n IBM
PC tabanlı kontrol ve veri toplama uygulamalarında, PCI ve ISA gibi PC
sistem yollarının, Paralel Port ve Seri Port gibi PC donanım yapılarının
ve birçok durumlarda da x86 donanım ve yazılım mimarisinin
bilinmesi gerekir.
n Intelin
gelişmiş mikrodenetleyicilerini (embedded işlemcilerini) öğrenmek için
x86 mimarisini bilmek gerekir.
n Bazı
elektronik sistem tasarımlarında gerekebilir. Eskiden 8086/8088 tabanlı
elektronik sistemler yaygın olmasına rağmen, günümüzde artık x86
işlemcileri genellikle bilgisayarlarda veya bazı özel uygulamalarda
kullanılmaktadır. Bunların yerine özel işlemciler veya
mikrodenetleyiciler kullanılır.
Kitaptaki Konular
Kitaptaki konular genel olarak üç kısma ayrılmaktadır.
Ayrıca kitabın sonunda ekler kısmı bulunmaktadır. Birinci kısımda
mikroişlemcili sistemlerin temel kavramları anlatılmakta ve Intel 8085
8-bit işlemcisi ile mikroişlemcilere genel bir giriş yapılmaktadır.
İkinci kısımda x86 ailesinin donanım ve yazılım mimarisi detaylı
olarak tanıtılmakta, x86 assembly dili programcılığı sunulmakta
ve program örnekleri verilmektedir. Üçüncü kısımda PC mimarisi
sunulmakta ve PC tabanlı kontrol ve veri toplama uygulamaları
verilmektedir. Ayrıca son bölümde Pentium mikroişlemcilerine bir giriş
yapılmaktadır. Dördüncü ekler kısmında, kitapta kullanılan sembollerin
listesi, Türkçe-İngilizce sözlük ve kaynaklar verilmektedir.
KISIM I:
MİKROİŞLEMCİLERE GİRİŞ
n Bölüm
1, Bilgisayarlar
ve Mikroişlemcilerde, bilgisayarların tarihçesi, bilgisayar ve
işlemci çeşitleri, Intel işlemcilerinin genel bir tarihçesi detaylı
olarak sunulmakta ve Motorola ailesi hakkında bilgi verilmektedir.
Ayrıca, bilgisayar tasarım yaklaşımları olan CISC ve RISC mimari
felsefeleri tanıtılmaktadır.
n Bölüm
2, Hafıza
Temelleri ve Hafıza Sistem Tasarımında, temel statik hafıza
kavramları, RAM ve EPROM hafızalar anlatılmaktadır. Ayrıca, 8-bit veri
yoluna sahip bir Intel işlemcisine yönelik hafıza sistem tasarımı
sunulmaktadır.
n Bölüm
3, Mikroişlemci
Mimarisi ve Çalışmasında, mikroişlemcili sistemlerin temel
kavramları, mikroişlemci mimarisi ve çalışması anlatılmaktadır. Ayrıca,
8-bit bir mikroişlemciye örnek olarak 8085A verilmekte, hafıza ve
giriş/çıkış birimleri üzerindeki çalışması, LDA, STA, IN ve OUT
komutlarıyla anlatılmaktadır. Bir mikroişlemcinin hafıza haritasına
giriş/çıkış birimlerinin yerleştirilmesi ve 8255A Programlanabilir Çevre
Arabirimiyle giriş/çıkış işlemi de bu bölümde sunulmaktadır.
KISIM II:
X86 MİKROİŞLEMCİ AİLESİ
n Bölüm
4, Intel
Ailesinin 16-Bit Mikroişlemcilerinde, 8086/8088 ve 80286
işlemcilerinin donanım yapısı detaylı olarak tanıtılmaktadır. Intel
Ailesinde görüntü hafıza donanım özelliği ilk 80286 ile başlamakta ve
daha sonraki işlemcilerde gelişerek devam etmektedir. Bu bölümde ayrıca,
80286nın 8086/8088den en önemli farklarından biri olan bu hafıza
yapısı tanıtılmaktadır.
n Bölüm
5, Intel Ailesinin 32-Bit Mikroişlemcilerinde,
Intelin ilk 32-bit mikroişlemcisi olan 80386 ile 80486 sunulmaktadır.
Her iki işlemcideki benzer korumalı mod çalışması, 80386 anlatılırken
detaylı olarak verilmektedir. 80486 mikroişlemcisinde, 80386dan farklı,
temel olarak, tümdevre üzerinde 80387 aritmetik yardımcı işlemcisi ile
8K byte cache hafıza bulunur. 80486 anlatılırken, 80386dan farklı bu ve
diğer gelişmiş donanım özellikleri sunulmaktadır.
n Bölüm
6, 16-bit x86 Çekirdeğinin Adresleme Modlarında,
bütün x86 işlemcilerinde bulunan, 16-bit çekirdeğin adresleme
modları, MOV komutu kullanılarak sunulmaktadır. Adresleme, mikroişlemci
içinde veya hafızada veri segment alanında bulunan bir verinin yerini
belirleme, program akışını JMP ve CALL gibi komutlarda değiştirme veya
yine hafızada özel bir alan olan yığında bir veriyi belirleme işlemidir.
n Bölüm
7, Veri Transfer Komutlarında,
mikroişlemci ile hafıza ve giriş/çıkış birimleri arasında veri
aktarımında kullanılan komutlar sunulmaktadır.
n Bölüm
8, Aritmetik ve Lojik Komutlarda,
8086/8088 komut kümesinde bulunan aritmetik ve lojik komutlar
tanıtılmaktadır. Aritmetik komutlar, toplama, çıkarma, çarpma, bölme,
karşılaştırma, tersleme, artırma ve azaltmadır. Lojik komutlar, AND, OR,
XOR, NOT, kaydırma, döndürme ve lojik karşılaştırmadır (TEST).
n Bölüm
9, Program Kontrol Komutlarında,
program çalışmasını yönlendiren ve program akışının değişmesini sağlayan
program kontrol komutları anlatılmaktadır. Program akışındaki
değişiklik, genellikle bir CMP veya TEST komutuyla yapılan bir testi
takip eden bir duruma bağlı dallanma komutuyla gerçekleştirilir. Bu
bölümde, dallanma (JMP), altprogram çağırma (CALL) ve dönme (RET),
kesmeler ve işlemci kontrol komutları açıklanmaktadır.
n Bölüm
10, 16-bit x86 Mimarisinin Programlanmasında,
Intel x86 Ailesinin bütün ürünlerinde çalışacak temel 16-bit
çekirdeğe yönelik program örnekleri sunulmaktadır.
KISIM III:
PC MİMARİSİ VE PC İLE KONTROL VE VERİ TOPLAMA
n Bölüm
11, IBM PC Mimarisine Girişte,
bir IBM PCde yer alan donanım yapıları genel olarak tanıtılmaktadır.
Bir PCnin ana kartındaki, mikroişlemci, hafıza ve birleşik tümdevreler
(Chipset) en temel elemanlardır. Ayrıca, ISA ve PCI gibi sistem uzantı
yolları, Paralel ve Seri Portlar, USB, AGP ve CMOS RAM ve Gerçek Zaman
Saati gibi çeşitli birimler bulunur. Kullanıcı ile arabiriminde, klavye
ile fare en yaygın giriş birimleri, monitor
ise en yaygın çıkış birimidir. Veri saklamada, disket, sabit disk ve
CD-ROM, PCnin standartları olmuştur.
n Bölüm
12, Temel PC Mimarileri ve Sistem Yolları: XT ve ATde,
günümüz PClerine kadar birçok özellikleri devam eden klasik PC
mimarisinin temelini oluşturan XT ve AT (ISA) mimarileri ve sistem
yolları, devre elemanları ve yol zamanlama diyagramlarıyla beraber
detaylı olarak sunulmaktadır.
n Bölüm
13, ISA Sonrası PC Sistem Yollarında,
PC ISA yolundan sonra çıkan sistem yolları kısaca tanıtılmaktadır. ISA
sistem yolundaki, yol genişliği ve yol hızı temel problemlerini
iyileştirmek için, daha sonra, sırasıyla EISA, VESA ve MCA yolları
geliştirilmiştir. Günümüz bilgisayarlarında artık bu yollar
bulunmamaktadır. Bunların yerine, PCI yolu vardır ve bu yol da bu
bölümde tanıtılmaktadır. ISA çok eski olmasına rağmen hala yeni
makinelerde olan ikinci sistem yoludur.
n Bölüm
14, IBM PC'de Giriş/Çıkışta,
PC tabanlı giriş/çıkış kavramları sunulmaktadır. Bir PC ile dış dünya
arasındaki iletişimde yaygın olarak kullanılan üç yöntem vardır. Bunlar:
ISA veya PCI yolunda bulunan bir kart ile yapılan giriş/çıkış, Paralel
Port ve Seri Port ile yapılan PC ile dış dünya haberleşmeleridir. Bu
bölümde ayrıca, PC portlarına erişimde kullanılan C ve Assembly dildeki
program komutları sunulmakta ve IBM PC giriş/çıkış haritası
tanıtılmaktadır.
n Bölüm
15, IBM PC Kesme Yapısında,
önce genel kesme kavramları sunulmaktadır. Daha sonra, x86
mikroişlemci ailesinin kesme yapısına bir giriş yapılmakta ve ardından
IBM PC kesme donanım ve yazılım yapısı anlatılmaktadır.
n Bölüm
16, ISA Yolu İçin Bir I/O Kartı Tasarımında,
günümüz PClerinde halen bulunan 16-bit ISA yolunun 8-bitlik kısmı için
bir I/O kartının tasarımı detaylı olarak sunulmaktadır. Bu kartta en
temel I/O devre elemanları, 8255A, 8254, DAC0830 ve ADC0808
kullanılmaktadır. Bu kartın yapısı, benzeri I/O kartların tipik
özelliklerini sunmaktadır. Bu bölümde anlatılan kartın bir benzeri
yapılabilir veya hazır bir PC I/O kartının çalışması, bu bölümde sunulan
bilgilerle daha iyi anlaşılabilir. Ayrıca, anlatılan bilgiler, bir
bilgisayar ile dış dünya arasındaki temel prensipleri sunduğu için,
yakın bir gelecekte ISA yolu ölse bile, sunulan prensipler daha uzun
yıllar yaşayacaktır.
n Bölüm
17, PC ile Kontrol ve Veri Toplama Uygulamalarında,
ISA yolunda bulunan bir PC I/O kartı ile yapılabilecek çeşitli kontrol
ve veri toplama uygulama örnekleri sunulmaktadır. Bu uygulamalarda,
Bölüm 16da tanıtılan PC I/O kartının devre elemanları ve I/O adresleri
kullanılmaktadır. Bununla beraber, bu uygulamalar benzeri 8-bit veya
16-bit PC I/O kartlarına uyarlanabilir. Verilen uygulamalarda amaç, bir
I/O kartı kullanan IBM PC tabanlı kontrol ve veri toplama
uygulamalarının, temel donanım ve yazılım prensiplerini sunmaktır.
n Bölüm
18, Paralel Portta,
Paralel Port tanıtılmakta ve ayrıca Paralel Port kullanılarak yapılan
çeşitli uygulamalar verilmektedir. IBM PClerde bulunan Paralel Port,
bilgisayarın yazıcıya olan bağlantısını sağlamasının yanında, PC ile dış
dünya arasında, en kolay bir iletişim yoludur. Bu yüzden bir çok pratik
uygulama PC Paralel Portunu kullanır.
n Bölüm
19, Seri Veri Haberleşmesi ve PC Seri Portunda,
seri veri haberleşmesinin temelleri sunulmakta ve PCdeki diğer bir dış
dünyaya açılma kapısı olan Seri Port anlatılmaktadır. Daha sonra, Seri
Port ile bazı uygulama örnekleri verilmektedir. Ayrıca, seri
haberleşmede kullanılan tümdevreler tanıtılmaktadır.
n Bölüm
20, Pentium Mikroişlemcilerinde,
ilk Pentiumdan Pentium IIIe kadar olan işlemcilerin mimari yapıları
genel hatlarıyla sunulmaktadır. Intel firmasının, 1993 yılında, 273-uçlu
bir PGA kılıfı kullanarak, 3.1 milyon transistörü bir silikon
tümdevresine yerleştirmeyi başarmasıyla yeni nesil x86 dönemi
başlamış oldu. Bu yeni mikroişlemci Pentium olarak adlandırıldı. 1993
yılında ilk çıkan Pentiumdan sonra, kısa bir süre içinde, bu
işlemcilerde önemli gelişmeler oldu. Bu işlemciyi sırasıyla, 1995te
Pentium Pro, 1997de Pentium MMX ve Pentium II ve 1999da Pentium III
işlemcileri takip etmiştir.
KISIM IV:
EKLER
n Ek
Ada kitapta
kullanılan sembollerin listesi verilmektedir.
n Ek
Bde kitaptaki
Türkçe teknik kelimeler ile bunlara karşı gelen İngilizce kelimeler
verilmektedir.
n Ek
Cde,
mikroişlemciler ve bilgisayarlar için klasik sayılabilecek
kaynaklar verilmektedir.
Kitabın Internet
Desteği
Bu kitapta yer
alan programların kaynak dosyaları Internet web adresimden alınabilir (http://www.gumuskaya.com).
Ayrıca, kitabın web sitesinde sürekli yenilenecek olan diğer sayfalarla,
bilgisayarlar, mikroişlemciler ve mikrodenetleyiciler hakkında bazı
önemli Internet kaynaklarının adresleri ve bu kaynakları tanıtıcı
bilgiler de sunulmaktadır.