Bilgisayarlar ve Mikroişlemciler
Biraz bilgisayar tarihine değinelim, daha sonra mikroişlemcilere geçeceğiz.
Aslında abaküs'e kadar dayanıyor. Öncelikle matematikteki daha sonra fen
bilimlerinde ve teknolojideki gelişmeler ve yeni teknikler bizi şu anda
bulunduğumuz noktaya getirdi. İlk hesaplayıcılardan sonra Pascal ve Babbage'in
mekanik hesaplayıcıları gelmektedir. Elektronik devre elemanlarının
geliştirilmesi ve tüplü tranzistörlerin sayesinde ilk elektronik hesaplayıcılar,
yani modern bilgisayara giden yol açılmış oldu. 1936-1951 arasındaki bu donemde
1945 de ENIAC yapıldı. ENIAC ile işlemler soket bağlantılarının değiştirilmesi
ile yaptırılıyor idi. 70bin direnç, 10bin kondansatör, 18bin tüplü tranzistör ve
çalışırken harcanan 150-200 kilowatt enerjisi ile dev ama sadece dört işlem
yeteneği, çok yavaş çalışması, kablolarla programlamanın zorluğu ve çok sık
arıza yapmasıyla da hantal bir cihaz idi.
1948 yılında germanyum, 1954 de silisyum tranzistörler bulundu. Artık vakum
tüpleri yerini yarı iletken tranzistörler aldı. Mikroelektronik geliştikçe
tranzistörler küçüldü ve sonunda bunları tek bir devre parçasında birleştirme
fikri gelişti. Artık entegre devreler yani çipler karşımızda. Harcanan daha az
enerji, daha küçük devreler taşınabilir radyolar gibi ürünleri beraberinde
getirdi.
İntelin ilk ticari amaçlı işlemcisi 1971 yılının 4004 çipi idi. Dört bitlik
bir işlemci olup sadece hesap makinalarında kullanıldı. Bizi ilgilendiren 1978
yilinda üretilen 8086. Bu işlemci 8bitlik basit ve yavaş bir işlemcidir. Fakat şu
andaki Pentium 4 mimarisi bile geriye uyumlu olarak bu işlemciyi
desteklemektedir. Farkları hız, ek birçok komut ve yeni teknolojilerdir. Biz de
bu 8086 ile başlayan x86 komut setini programlıyor olacağız. Aşagıda bir
ilerleme yer almaktadır.
8086 -> 80186 -> 80286 -> 80386 -> 80486 -> Pentium -> Pentium Pro -> Pentium
!! -> Pentium !!! -> Pentium 4
İntel işlemciler 80386 den itibaren bazı yenilikler getirdiği için ( 32bit ve
multitasking işlemci ) artık bizim için temel teşkil etmektedir. Pentium 4
3000C işlemcisi için biraz açıklama yapalım: Mimari:Pentium 4 İşlemci çekirdek hızı:
3000Mhz (yani bir saniyede 3 milyar komut işler) C: Veriyolunun 800Mhz olduğu
anlamında. Klasik özellikler: 32bit işlemci, 64 bit veriyolu, 4Gbyte bellek
adresleme, Hypertreading teknolojisi ile çift işlemci gibi çalışma ve gelişmiş
mimari özellikleri ile tek döngüde iki işlem yapabilme özellikleri bulunuyor.
İşlemcimizin 32 bit olması ne demek? Öncelikle bit nedir? 1 byte bilgi tek
karakterden oluşur. Yani notepad içine yazdığınız tek bir 'A' harfi 1 byte yer
kaplar. 1 byte bilgisayarda 8 bit yani 8 tane '1' veya '0' dan oluşur.
binary 11111111 = decimal 255 eder. binary
01000001 = decimal 65 eder. Bu
değeri içinde saklayan bir 8bitlik saklayıcı 'A' harfini gösterir. Yani
matematiksel değerlerinin yanında bu 8 bitlik değerler ASCII karakter setine göre
belirli bir karaktere de denk gelmektedir.
İlk sayfada 0C85:0100 B402
MOV AH,02 şeklinde bir satır bulunuyor idi.
Buradaki B402 16lık sayı sistemindeki 2 byte bilgidir. Ve bu makina dili komutu
assembly olarak Mov ah,02 ye denktir. Bu komut ise ah registerine (işlemcideki
8bit saklayıcılardan biri) 02 hexadecimal değerini atar. İleride bit düzeyinde
işlemler de yapacağımız için 16 lık 10 luk ve 2 lik sayı sistemlerinin birbirine
dönüşümlerini bilmek zorundayız. Örnek bir binary-decimal dönüşümü aşağıdadır.
binary 01001110 için Decimal karşılığı=0*2^7+1*2^6+0*2^5+0*2^4+1*2^3+1*2^2+1*2^1+0*2^0=64+8+4+2=78
eder.
Daha önce de belirttiğimiz gibi işlemci sadece matematiksel değerlerden
anlar. İster kod isterse data olsun esas olan bitlerdir. 32 bit işlemciler 1
döngüde 32 bit yani 4 byte bilgiyi işleyebilme özelliğine sahiptir. Çarpma,
bölme, bellekten işlemciye veri alınması ve gönderilmesi gibi...
İşlemciler teknik özellikleri yanında iç frekansları ile de
karşılaştırılmaktadır. Pentium 3 1000Mhz bir işlemci saniyede 1 milyar işlem
yapar. Fakat işlemcide her komut aynı sürede tamamlanmaz. Bu komutun
karmaşıklığı ile alakalıdır. İşlemci içinde bir tür sinyal üreten saat bulunur.
Bu işlemcinin hızını tayin eder. İşlenecek olan komut saat darbesinin verilmesi
ile işlem görmeye başlar ve bir sonraki saat darbesine kadar tamamlanmak
zorundadır. İşlemcideki tüm komutlar için bu geçerlidir.
|