|
İşlemci (CPU)
Genel Yapı
Bir bilgisayarın en popüler ve en önemli
parçası işlemcidir. Kısaca CPU (Central Processing
Unit / Merkezi İşlem Birimi) olarak anılan işlemciler, adından
da anlaşılacağı üzere bir bilgisayardaki işlemleri yürüten ve
sonuçları gerekli yerlere gönderen elemandır.
1971 yılında Intel firmasının ilk defa
binlerce transistörü bir silikon çip üzerinde birleştirmesinle
bilgisayar çağında devrim gerçekleştirilmiş oldu. Bu şekilde daha
önce sadece büyük şirketlerin ve üniversitelerin kullanabildiği
bilgisayarlar iyice küçüldü ve evlere girmeye başladı.
Mikroişlemci ler, açma kapama anahtarı
gibi çalışan milyonlarca transistörden oluşmaktadır. Bu anahtarların
programlanma durumuna göre elektrik sinyalleri bunların üzerinden
akar. Bu sinyaller, bilgisayarın yaptığı tüm işleri toplama,
çıkarma, çarpma ve bölme gibi temel matematiksel işlemlere indirir.
İşlemci de bu işlemleri en basit sayma sistemi olan ikilik düzen
yani sadece 0 ve 1 sayılarını kullanarak yapar.
Mikroişlemciler her türlü işi ikilik
sayma sistemine dökmüştür. Mesela “Y” harfi ikilik sistemde
“1011001” ile ifade edilebildiği gibi kırmızı gibi bir renk de bunun
gibi ikilik tabandaki üç ayrı sayı grubu ile ifade edilir. Aynı
şekilde bir ses veya görüntü kaydı da yine buna benzer ikilik sayı
grupları ile ifade edilirler.
Bu sayı grupları üzerinde işlem yapmak
için işlemci içerisinde bir takım komut listesinden ibaret bir
program mevcuttur. Bu komutlar işlemciye iki sayının çıkarılması,
toplanması yönünde emir verebildiği gibi klavyeden girilen
tercihlere göre bir takım komut satırını atlayıp (şartlı dallanma -
conditional branch) diğer komut satırlarını icra etmeye devam
edebilir. Yani klavyeden bir soru karşısında gireceğimiz “E” (evet)
veya “H” (hayır) ifadelerine göre program belirli komut satırlarını
icra eder veya etmez. Temel olarak, mikroişlemcinin yaptığı iş,
bitler üzerinde işlem yapmak üzere komutları çalıştırmaktır.
Üniteler
İşlemci üzerinde komutları icra etme işini
uygulama ünite si (execution unit) ya da fonksiyon ünitesi (function
unit) adı verilen üniteler gerçekleştirir. Modern işlemcilerde
değişik komut türlerini işletmek üzere birden fazla fonksiyon
ünitesi bulunur. Çoğunlukla aritmetik/mantıksal ünite (arithmetic/logic
unit) olarak da anılan tamsayı (integer) üniteleri tam sayılar ile
ilgili işlemleri yapar. Kayan nokta ünitesi (FPU-Floating Point Unit)
ise 5,21 gibi küsuratlı sayılarla ilgili işlemleri yapar. Bir
mikroişlemcide ne kadar fazla fonksiyon ünitesi varsa aynı anda
çalışabilecek komut sayısı da o kadar artar.
Register seti
Register ler, işlem anında bir program
tarafından kullanılmakta olan sayıların saklandığı geçici hafıza
hücreleridir. Farklı komut ve register setlerine sahip olan
işlemciler birbirlerinin yazılımlarını çalıştıramazlar.
Mimari
Mikroişlemciler mimari (architecture)
olarak gruplara ayrılırlar. Ortak mimariye sahip olan işlemciler
aynı komutları tanımakta ve aynı yazılımları
çalıştırabilmektedirler.
En meşhur mikroişlemci mimari si
Intel’in x86 işlemcisidir. Intel ilk x86 tabanlı işlemcisini 8086
olarak 1978 yılında piyasaya sürdü. Daha sonraki yıllarda yeni nesil
x86 tabanlı işlemciler çıkarıldı. 286,386,486, Pentium ve Pentium
Pro olarak bu kuşakları görebilmekteyiz. Pentium II, Celeron,
Pentium III, Xeon ve Katmai, altıncı kuşak Pentium Pro’nun
varyasyonlarıdır.
Intel’in haricindeki diğer mimariler ise
şunlardır: Modern Machintosh’larda bulunan PowerPC, eski Mac’lerdeki
68oxo serisi, Digital ve Compaq’ın güçlü serverlerinde kullanılan
Alpha ailesi, Silicon Grahics’in Mips Rxooo serisi, Hawlett-Packard’ın
PARISC’i ve Sun Microsystems’e ait SPARC’tır.
Mimariler, ortaya çıktıkları dönemin
felsefesine göre dizayn edilirler. 1970’lerde veri saklama cihazları
ve hafıza bu güne göre çok kısıtlıydı. Bu kaynakları tasarruflu bir
şekilde kullanabilmek için Intel x86 tabanlı işlemcilerde CISC (Complex
Instruction Set Computing - Karmaşık komut seti ile hesaplama) diye
bilinen bir mimari kullandı. CISC’ın karakteristik iki özelliği,
değişken uzunluktaki komutlar ve karmaşık komutlardır. Değişken
uzunluktaki komutlar hafıza tasarrufu sağlar. Çünkü basit komutlar
karmaşık komutlardan daha kısadır. Karmaşık komutlar da iki ya da
daha fazla komutu tek bir komut haline getirdikleri için hem
hafızadan hem de programda yer alması gereken komut sayısından
tasarruf sağlar.
İlerleyen yıllarda CISC’in kısıtlamaları
ve hafızayı tasarruflu kullanmanın önemini yitirmesi neticesinde
CISC’a rakip olarak RISC (Reduced Instruction Set Computing -
daraltılmış komut seti ile hesaplama) ortaya çıktı.
RISC’ın komutlarının uzunluğu sabittir
(genelde de 32 bit’tir) ve her bir komut basit bir işlemi yerine
getirir. Bir RISC çipi bu iki karakteristik özelliği sayesinde,
fetch (komutu hafızadan taşıma), decode (komutun anlamını çözme) ve
komutu çalıştırma işlemlerini daha kolay bir şekilde yapabilir.
RISC’ın bir dezavantajı kodun uzamasıdır. Tüm komutlar gerek olsun
olmasın 32 bitliktir. Dolayısıyla RISC programları CISC
programlarından daha fazla hafıza gerektirebilirler. Buna rağmen
decode aşamasının CISC’e göre daha hızlı gerçekleşmesine ek olarak,
çoğu RISC komutları sabit bir zaman diliminde işlem görür. Bu da
superscalar pipelining teknolojisi kullanan modern işlemciler için
önemli bir özelliktir.
Pipelining
Pipelining , tıpkı bir fabrikadaki seri
üretim bandı gibi çalışır. Bir fonksiyon ünitesi, her komutun
işletilmesini aşamalarına ayırır. Basit bir pipeline’de beş ya da
altı aşama olabilir. Bir superpipeline’da ise 10 ya da daha fazla
aşama olabilir. Böyle bir pipeline’dan aynı anda birkaç komut birden
akabilir. Her komut da ayrı bir aşamada işlem görmekte olabilir.
Superscalar bir işlemcide her birisinin kendisine ait pipeline’ı
olan iki ya da daha fazla fonksiyon ünitesi yer alabilir. Böyle bir
işlemci birkaç komutu birden paralel olarak işletebilir.
RISC bu tekniğe daha da elverişlidir.
Çünkü basitleştirilmiş komutlar pipeline’lardan daha pürüzsüz bir
şekilde akarlar ve CISC komutlarının neden olabildiği tıkanmalara
maruz kalmazlar.
Cache
Cache , çalışmakta olan bir programa ait
komutların geçici olarak saklandığı bir hafızadır. Cache hafızalar,
işlemcinin komutları daha hızlı yüklemesini sağlayan yüksek hızlı
hafızalardır. Cache hafızlar, Level 1 (L1) ve Level 2 (L2) olmak
üzere ikiye ayrılırlar. İşlemci ihtiyaç duyduğu komutu ilk önce L1
cache hafızada arar. Eğer işlemcinin aradığı komut burada yoksa L2
cache hafızaya bakılır. Eğer burada da yoksa (cache miss durumu)
sırayla, RAM ve HDD üzerindeki sanal hafıza üzerinde arar. L1 cache
hafıza bunlar içerisinde en hızlı olanıdır ve genellikle işlemcinin
üzerine imal edilir. L2 cache hafıza ise L1 e göre daha yavaş
olmasına rağmen gene de hızı çok yüksektir. Bir kısım işlemcilerde (Celeronların
ilk nesillerinde olduğu gibi) L2 cache hafıza bulmayabilmektedir. Bu
durumda L1 cache hafızaya sığmayan komutlar L2 olmadığı için direkt
olarak daha yavaş olan RAM a yazılmakta ve işlemcinin performansı
düşmektedir. L2 cache hafıza genelde işlemcinin yakınındaki yüksek
hızlı hafıza çiplerinden oluşur. Bazı yeni işlemcilerde (Celeron
300A ve sonrası gibi) L2 cache hafıza işlemcinin içine monte
edilmiş ve daha hızlı erişim sağlanmıştır.
Dünden bugüne x86 işlemciler
8086/8088
Intel, 16 bitlik 8086 işlemcisini 1978
yılında piyasaya sürdü. Yüksek seviyeli programlama dillerine ve
daha etkin işletim sistemlerine sahip ilk işlemci olan 8086, IBM
uyumlu sistemlerin temelini oluşturdu. Arkasından çıkan 8088 işlemci
ile IBM ilk kişisel bilgisayarı (PC) piyasaya sürdü. Bu ilk PC’nin
16K hafizası, grafik özelliği olmayan ekranı ve bir teyp bandı
sürücüsü vardı.
Bu ilk işlemci dış veriyolu olarak 8
biti destekliyordu ve 4.77 MHz saat hızında çalışmaktaydı.
80286
Kısa bir süre sonra Intel, 80286
işlemcisini çıkartarak PC performansını yeni bir seviyeye yükseltti.
80286 işlemci 16 bit veriyolunu hem içte hem de dışta
kullanabiliyordu. Bu da kendinden önceki işlemcilerden çok daha
fazla ilgi görmesine sebep oldu ve artık PC’ler için daha güçlü
yazılımlar üretilmeye başlandı.
80386
Intel’in bir kuşak sonraki işlemcisi
olan 80386 işlemcisi PC dünyasına büyük değişiklikler getirdi. SX
ve DX modelleri olan bu işlemcinin en büyük özelliği 32 bit bir
işlemci olmasıydı. 286’lardaki veri yolunun iki katına çıkartılması
PC’lerde grafik işlemlerini artırdı. Ayrıca saat hızının 16 MHz’den
33 ve 40 MHz’e çıkartılması işlemleri daha da hızlandırdı.
i486
Intel Nisan 1989 yılında i486 işlemciyi
piyasaya sürdü. i486 işlemcisi entegre bir chiptir. Bu chip dört
farklı işlev grubunu (asıl CPU’yu, bir matematik yardımcı
işlemcisini, bir önbellek denetleyicisini ve DX/DX2 modellerinde bir
adet genel önbellek, DX4 modellerinde ise iki adet ayrık 8K
önbelleği) bir bileşende birleştirmektedir. i486 hem içten hem de
dıştan 32-bit yapı kullanır. Saat hızı olarak da 100 MHz’e
ulaşmıştır.
Pentium
i486 işlemcilerin hızla yaygınlaştığı
bir dönemde Intel P5 kod adıyla tasarladığı yeni işlemci ailesini
Pentium adıyla piyasaya sürdü. Dış veriyolu 64-bit iç veriyolu ise
256-bit olan bu işlemci iki adet ayrık 8K’lık önbelleğe sahiptir.
Pentium işlemci 486’lardan farklı olarak iki adet tamsayı
işlemcisine sahiptir. Kayan nokta işlemcisi de iyice
geliştirilmiştir. Ayrıca 486 işlemcilerde olmayan Branch Protection
(dallanma tahmini) teknolojisi kullanılmıştır. Bu teknoloji, program
sırasında işletilecek olan dallanma (jump) komutlarının dallanacağı
tahmin edilen kod kümelerinin daha hızlı erişilen bir ortama
kopyalayarak işlenmeye başlanmasına dayanır. Bu şekilde %25 oranında
performans artışı sağlanır.
Pentium işlemciler 0.28 mikronluk BICMOS
ve CMOS teknolojisi ile üretilmişlerdir. 60 MHz, 75 MHz, 90 MHz, 100
MHz, 120 MHz, 133 MHz, 166 MHz, 200 MHz ve 233 MHz saat hızında
üretilmişlerdir.
Pentium Pro
Pentium işlemcilerin yaklaşık iki katı
işlemci gücüne sahip olan bu işlemcilerde 5.5 - 6.1 milyon
arasında transistör kullanılmıştır. +2.9V besleme gerilimi ile
çalışan bu işlemci 166 MHz, 200 MHz, 233 MHz ve 266 MHz saat
hızlarında üretilmişlerdir. Bu işlemci daha çok server bilgisayarlar
için tasarlanmıştır ve x86 tabanındaki işlemciler için yazılmış tüm
yazılımları desteklemektedir. Pentium Pro öncelikle 32 bitlik
programlara ihtiyaç duyar. Bu sebeple işlemcinin tam performansla
çalışabilmesi için Windows NT gibi gerçek 32 bitlik işletim sistemi
kullanılmalıdır.
MMX Teknolojisi
Intel, 1997’nin başlarında Pentium MMX
işlemciyi piyasaya sürerek Pentium tasarımına yeni bir boyut
kazandırdı. Multi Media Extension’ın
kısaltılmışı olan MMX , Pentium işlemcisine 57 adet yeni komutun
eklenmesiyle oluşmuş bir işlemcidir. Yani birkaç komutun yaptığı
bazı işlemler tek komutta toplanmıştır. Single Instruction
- Multiple Data -SIMD (Tek Komut - Çoklu Veri)
teknolojisinin kullanıldığı bu işlemcilerde tek bir komutun
getirdiği bir çok işlem paralel olarak bir arada yapılabilmektedir.
Bu işlemcilerde multimedya için komut
setinin genişletilmesiyle birlikte L1 önbellek kapasitesi de 32 KB’a
yani iki katına çıkartılmıştır. İşlem performansı söz konusu
olduğunda MMX işlemcilerin verimliliği tartışılmaz. MMX
işlemcilerin hızlı olmasındaki en büyük faktör önbelleğin
büyüklüğüdür. Ayrıca MMX işlemcilerde besleme gerilimi 5V veya
3.2V’tan 2.8V’a düşürülerek işlemci çekirdeğindeki kayıp performans
düşürüldü. Bu sayede yüksek saat hızına rağmen işlemci daha az
ısınmaktadır.
Pentium II
MMX teknoloji ile yakaladığı performansı
Pentium Pro ile birleştiren Intel Pentium II işlemcileri piyasaya
sürdü. Pentium II işlemciler hem yapı olarak hem de fiziki olarak
önceki işlemcilerden farklılıklar taşımaktadır. Önceki işlemcilerde
Soket 7 yi kullanan Intel Pentium II ile birlikte SEC (Single Edge
Contact) adını verdiği ve Slot 1’e girecek yapıda bir dizayn
kullandı.
Pentium II ailesinin ilk modeli 233 MHz
hızında üretildi. Arkasından 266 MHz, 300 MHz ve 333 MHz modelleri
geldi. Intel bu aşamadan sonra 66 MHz’lik veri yolunun yanında 100
MHz’lik veri yolunu da kullanmaya başladı ve daha sonra çıkan
işlemciler 350 MHz, 400 MHz ve 450 MHz olarak çıktı.
Pentium II’lerin yapılarındaki ve
veriyolu hızlarındaki bu değişiklikler beraberinde anakartların da
çeşidini artırdı. 66 MHz veri yolunu kullanan Pentium II’ler için
440LX chip set kullanan anakartlar üretildi. Arkasından 100 MHz veri
yolu kullanan işlemciler için 440BX chip setli (aynı zamanda 66 MHz
veri yolunu da destekler) anakartlar üretildi.
Pentium II ailesinin son ferdi olan 450
MHz den sonra Pentium III’ler piyasaya sürüldü.
Celeron
Daha çok iş istasyonları ve CAD/CAM gibi
geniş uygulamalar için tasarlanan Pentium II’ler son kullanıcılar
için pahalı gelmekteydi. Bu durumu değerlendiren Intel, son
kullanıcılara yönelik yeni bir işlemci piyasaya sürdü. Celeron
ismini verdiği bu işlemcilerin Pentium II’den en büyük farkı L2 ön
belleğinin olmamasıydı.
Bu serinin ilk ferdi 266 MHz olarak
tasarlanmıştır. L2 ön belleği olmayan Celeronlar Pentium Pro ile
aynı performansı göstermektedir. 266 MHz işlemcinin arkasından yine
L2 önbelleği olmayan Celeron 300 üretildi.
İlk nesil Celeron işlemcilerin fiyatı
çok cazip olmasına rağmen önbellek gerektiren uygulamalarda yetersiz
kalması bu işlemcilere ilgiyi azalttı. Bu sırada Intel yine bir atak
yaparak 128KB L2 önbelleğe sahip Celeron 300A işlemcisini üretti.
Arkasından gelen 333 MHz, 366 MHz, 400 MHz, 433 MHz ve 466 MHz
işlemciler 128 KB önbellek geleneğini devam ettirdiler.
Celeron işlemciler 333 MHz’e kadar Slot-1
yapısında üretilirken (Şekil 3 ) bundan sonra Soket-370 yapısında
üretilmiştir.
Bu işlemciler 0.25 mikron CMOS
teknolojisi ile imal edilmişlerdir. Önbellek içermeyen Celeron
işlemcilerde 7.5 milyon transistör varken önbellek içeren
işlemcilerde 19 milyon transistör olduğunu görmekteyiz.
Celeron’ların içerdiği 128 KB önbellek
işlemcinin içerisindedir ve çekirdek ile aynı hızda çalışırlar. Bu,
Celeron işlemcilerin daha kolay overclock edilmelerini sağlar. Ancak
Pentium II’ler her zaman Celeron’lara göre daha üstündürler. Çünkü
daha önce de belirttiğimiz gibi Celeron’lar son kullanıcılar için,
Pentium II’ler ise daha kapsamlı işler için tasarlanmıştır.
Pentium III
Katmai olarak isimlendirilen çekirdekle
tasarlanan işlemci, beraberinde bir çok yenilikler de getirdi. Daha
önce MMX işlemcilerde gördüğümüz (fakat onlardan çok daha karışık)
şekilde 70 adet yeni komutla gelen bu işlemcinin asıl performansı
temel yapısındaki değişiklik olmadığı için hemen birden bire
bilgisayarımızda bir performans artışı gözlenememektedir. Intel,
Pentium III’te de Pentium Pro’dan beri iyileştirilerek
kullanılagelen çekirdek kısmı kullanılmıştır.
İşlemciye 70 adet yeni komut eklenmiş ve
bu komutları kullanan birimlerde değişiklikler yapılmıştır. Bu
komutlar MMX’teki gibi belli bir konuya mahsus komut değillerdir ve
üç ana başlık altında toplanırlar.
Intel’in SIMD (Single Instruction,
Multiple Data Parallelism - Çoklu Veri Paralelliği Sağlayan Tek
Çevrimli Komutlar) genişletmeleri olarak adlandırdığı bu komutlar
işlemci içinde farklı çalıştırma birimlerinde işletilirler. Bu
komutlardan ilk 50’si FPU (Floating Point Unit
- Matematik İşlem Birimi) içerisinde işlenir. Bu şekilde SIMD FPU
komutları normalde onlarca saat çevriminde halledilebilecek
32-bitlik çarpımları tek bir saat çevriminde yapabilmekte ve bu
komutlarda aynı anda 4 tanesi birden işletilebilmektedir. Bu sayede
3 boyutla ilgili hesapların yapılma süresi ve MPEG-1 ve MPEG-2
kodlarının çözümleri daha kısa zamanda yapılabilmektedir.
Bu komutlarla birlikte işlemciye
eklenmiş diğer yapısal bir değişiklik de 8 adet yeni registerdir. Bu
yeni register’lar işlemcide yeni SIMD FPU komutları tarafından
kullanılmak üzere yer alıyorlar. Register’lar 128-bit’lik bir
genişliğe sahiptir. Bu sayede birden çok (dörde kadar) FP ucu bir
register’a yüklenebiliyor ya da SIMD komutları bu register’larda
saklanabiliyor. Bu şekilde Intel, RISC işlemcilere göre en büyük
eksiklik olan register sayısının azlığını yavaş yavaş kapamaya
başladı.
Pentium III işlemcilere eklenen
komutlardan 12 tanesi “yeni medya” komutları olarak adlandırılarak
MMX ünitesince değerlendirilmektedir. Daha hızlı işlenen iki boyutlu
grafikler ile video oynatımı, MPEG çözümünde extra hız, codec’lerin
kullanılmasında kolaylık ve daha hızlı istatistiki bilgi
kullanılması mümkün olmaktadır.
Diğer 8 adet komut ise Pentium III’ün
dış dünya ile konuşmasını sağlayan bus kontrolörüne eklenmiştir. Bu
komutlar sayesinde daha büyük 3D veri tabanlarının kullanım hızını,
düzgün video akışını ve performansı düşüren hafıza ıskaları
konularında işlemler olur.
Daha
önce de bahsettiğimiz gibi Pentium II’nin önbelleği işlemci hızının
yarı hızında çalışmaktaydı. Bu durum Pentium III’de de devam
etmiştir ve bu durum performansı bir miktar düşürmektedir. Pentium
III’lerin yeni çıkan bazı modellerinde cache bellek 256 KB’a
düşürülmüş ve çekirdek içerisine konarak işlemci ile aynı hızda
çalışması sağlanmıştır. Bu modellerin sonuna “E” harfi
konmaktadır.Ayrıca normalde 100 MHz veriyolu hızında çalışan Pentium
III işlemcilerin yine yeni çıkan modelleri 133 MHz hızında
çalışmaktadır. Bu modellerin sonuna da “B” harfi eklenmektedir.
Mesela Pentium III 600EB işlemcisi 133 MHz hızında çalışan ve 256 KB
cache belleğe sahip bir işlemcidir.
|