|

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. |