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