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ştirmesiyle 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ı.
Eskiden işlemci PC'nin en önemli parçasıyken bir PC'nin değerini belirleyen şeyin performans ve sunduğu imkanlar olduğunu düşünürsek artık en önemli parçalarından biri diyebiliyoruz. Çünkü bir PC'nin performansını grafik kartı, sabit disk, bellek gibi bileşenler de belirlediği gibi, özellikleri de kullanılan anakarta, multimedya donanımlarına ve çevre birimlerine bağlı. Bu yüzden hızlı bir işlemci ile yavaş bir sabit disk veya grafik kartı kullanmak veya yavaş bir işlemciyle hızlı bir grafik kartı veya sabit disk kullanmak pek anlamlı olmuyor. Donanımların birbirine ayak uydurduğu, başka bir donanımın işini görmesi için nispeten daha az süre beklediği sistemler dengeli sistemlerdir.
Tarihçe :
İşlemci yada diğer ismiyle CPU (central processing unit - merkezi işlem birimi) aslında bir yonga (chip) üzerine yerleştirilmiş bir hesap makinesinden başka bir şey değildir. İlk işlemci Intel 4004 1971 üretildiğinde çok güçlü değildi. Yapabildiği tek şey toplama ve çıkarmaydı ve bir kerede sadece 4 bit işlem yapabiliyordu. Fakat her şeyin bir chip üzerine sığdırılmış olması o zamanlar için gerçekten bir başarıydı. 4004'ün üretiminden önce mühendisler bilgisayarları çok sayıda chip ve parçaların birleşiminden yapabiliyorlardı. 4004 ilk taşınabilir elektronik hesap makinesine hayat verdi.
Ev bilgisayarları için kullanılan ilk işlemci Intel 8080'di.
1974 yılında üretilen bu işlemci 8bit'lik bir chipti. Fakat piyasalar asıl etki yapan işlemci yine Intel'in 8088 adlı işlemcisiydi ve bu işlemci 1979 yılında üretildi. IBM PC makinelere hayat veren bu işlemci tam olarak adını 1982 yılında duyurmaya başladı. Eğer bilgisayarlarla biraz ilgiliyseniz PC pazarının 8088'den 80286 oradan 80386, 80486, Pentium, Pentium II, Pentium III ve son olarak Pentium 4'e geçtiğini bilirsiniz. Bütün bu işlemciler Intel tarafından üretildi ve hepside temelde 8088 tasarımının geliştirilmesiyle ortaya çıktı. Günümüzde kullandığımız Pentium 4, 8088'lerdeki her hangi bir kodu çalıştırabilir fakat 5000 kez daha hızlıdır.
Aşağıdaki tablo Intel işlemciler arasında nasıl farklar olduğunu görmenize yardımcı olacak:
İsim
Tarih
Transistör
Mikron
Saat Hızı
Veri Genişliği
MIPS
8080
1974
6,000
6
2 MHz
8 bit
0,64
8088
1979
29,000
3
5 MHz
16 bit-8 bit
0,33
80286
1982
134,000
1,5
6 MHz
16 bit
1
80386
1985
275,000
1,5
16 MHz
32 bit
5
80486
1989
1,200,000
1
25 MHz
32 bit
20
Pentium
1993
3,100,000
0,8
60 MHz
32 bit-64 bit
100
Pentium II
1997
7,500,000
0,35
233 MHz
32 bit-64 bit
~300
Pentium III
1999
9,500,000
0,25
450 MHz
32 bit-64 bit
~510
Pentium IV
2000
42,000,000
0,18
1,5 MHz
32 bit-64 bit
~1,700
Tablo hakkında bilgi :
Tarih, işlemcinin ilk üretildiği tarihtir. Çoğu işlemcinin daha sonra daha hızlı versiyonları da çıkmıştır.
Mikron, yonga üzerindeki en küçük kablonun genişliğidir. Karşılaştırmak için insan saçının 100 mikron kalınlığında olduğunu söyleyebiliriz. Yonga üzerindeki kablo kalınlığı azaldıkça transistör sayısının arttığını görebiliriz.
Saat Hızı, yonganın ayarlanabildiği en yüksek saat hızıdır. Bir sonraki bölümde ayrıntılı olarak incelenecektir.
Veri Genişliği, işlemcinin ALU (arithmetic/logic unit - aritmetik/mantık birimi) biriminin genişliğidir. 8 bitlik bir ALU 2 adet 8 bitlik sayı üzerinde topla, çıkarma, çarpma, bölme yapabilirken, 32 bitlik bir ALU 32 bitlik 2 sayı üzerinde aynı işlemleri yapabilir. 8 bitlik bir ALU 32bitlik 2 sayı üzerinde 4 seferde işlem yaparken, 32 bitlik bir ALU aynı işlemi 1 kerede yapabilir. Genellikle dış veri yolu genişliği ALU veri genişliğiyle aynı olur. Fakat 8088 işlemciler 16 bit ALU' ya sahipken 8 bit veri yolları vardı. Modern Pentiumlar ise 32bit ALU' ya 64 bit veri yoluyla hizmet sunarlar.
MIPS, "millions of instructions per second" yani saniyede yapılan işlem miktarıdır ve işlemcinin performansı hakkında genel bir bilgi verebilir. Günümüzde işlemcilerde kullanılan farklı teknikler bu MIPS değerinin önemi azaltsa da, genel anlamda işlemci performansıyla ilgili bilgi verebilir.
Yonga, genellikle küçük, ince bir silikon parçası üzerine asitle oyularak yerleştirilen transistörlerin oluşturduğu bütünleşik devredir. Bir yonga 2-3 cm büyüklüğe milyonlarca transistör sığdırılarak üretilir.
Yukarıda ki tablodan saat hızıyla MIPS arasında bir bağlantı olduğunu görebilirsiniz. En yüksek saat hızı yonganın üretim teknolojisine bağlıdır. Ayrıca transistör sayısı ve MIPS arasında da bir bağlantı vardır. Örnek olarak 8088 işlemci 5 Mhz hızında çalıştığı halde 0.33 MIPS (yaklaşık olarak 15 saat turunda 1 işlem) yapabilmektedir. Günümüzde ise modern işlemciler yaklaşık olarak her saat turunda 2 işlem yapabilmektedir.
İşlemcilerin Yazılım Destekleri:
MMX: Intel'in geliştirdiği MMX'in açılımı Multimedya Uzantılarıdır (Multimedia Extensions) ve işlemcilere eklenen 57 multimedya komutuna verilen addır. AMD’ de bu komut setinin lisansını Intel'den almıştır. MMX işlemciler bazı genel multimedya operasyonlarını üstlenirler (örneğin, normalde ses kartı veya modemler tarafından yapılan dijital sinyal işleme). Ancak bu komut setinin kullanılabilmesi için MMX uyumlu yazılımların kullanılması gereklidir. MMX işlemcilere ekleneli uzun bir süre olmasına karşın, MMX destekli yazılımların beklendiği kadar çabuk artmadığı gözlenmiştir.
3DNow: 3 Boyutlu grafikler ile ilgili hesapların hızlandırılması için AMD işlemcilerde kullanılan komut setinin adıdır. Özellikle 3DNow! destekli oyunların sayısı hızla artmıştır. Ekran kartlarının da 3DNow! destekli sürücüleri olabilir.
SSE: Intel tarafından geliştirilip Pentium III işlemcilere uygulanan 70 adetlik yeni komut setidir. Yakında Celeron ve Pentium II işlemcilere de uygulanması beklenmektedir. SSE'nin açılımı "Strea-ming SIMD Extensions'dır (SIMD = Single Instruction Multiple Data). Mutlaka Türkçeleştirmek gerekirse "akıcı, tek komutla çoklu veri işleme uzantıları" diyebiliriz. Yani işlemciye bir komut verirsiniz bir çok veriyi bir amaca yönelik olarak işler. Grafik, resim, video, animasyon, 3 boyut işlemleri, ses tanıma öğelerine sahip, SSE destekli uygulamalarda ciddi bir performans artışı sağlar. Henüz çok yeni olduğundan piyasada SSE destekli yazılım çok sayıda değildir ama hızla yaygınlaşması beklenmektedir.
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. CISC İŞLEMCİLER:PC’ lerde günümüze kadar RAM’ların sınırlı ve pahalı olduğu 1960 ve 1970’li yıllarda geliştirilen CISC işlemci mimarisi kullanılmaktadır. Daha çok programların az bellek kullanımı gerektirdiği sistemlerde yer almakta ve az bellek kullanımı için kompleks komutların ve mimarinin oluşumunu ortaya çıkardı.
Mimarideki kompleksliğin artması işlemci performansında negatif oluşumların ortaya çıkmasına sebep oldu. Bununla birlikte programların yüklenmesinde ve çalıştırılmasında düşük bellek kullanımının hızlı olması mesele teşkil etmekteydi. 1980 ve 1990’lı yıllarda bellek ihtiyacının artması işlemci tasarımcılarının kararlarını gözden geçirmesine sebep oldu. Eskiden kullanılan bellekler 16-32 Kbayt iken yeni mimarilerde 8-16 Mbayt çıktı ve günümüz kişisel bilgisayarlarında bir standart halini aldı. ,
RISC İŞLEMCİLER :RISC işlemcili sistemlerde amaç, komut işlemcisinin mümkün olduğu kadar hızlı olmasıdır. Bunu başarmak için ana yol, işlemcinin çalıştırdığı komutların basitleştirilmesidir. Komutların basitleştirilmesi ve azaltılması işlemcinin uzun ve kompleks olandan daha hızlı çalışabilmesi demektir.
RISC mimarisi, aynı anda birden fazla komutun işlendiği tekniği içeren hattı (pipelining) ve süperskalar çalışmasının kullanımıyla yüksek bir performans sağladı.
Doğal olarak bu tasarım tekniği yüksek bellek ve çok ileri derleme teknolojisini gerektirdi. 1980’lerin ortasında bellek fiyatlarının ucuz olması yüksek performanslı işistasyonlarında RISC tabanlı işlemcilerin çok sık kullanılmasına sebep oldu. 1990’larda VLSI teknolojisinin gelişimiyle birlikte belleklerin eskiye nazaran daha ucuz oluşu ve makine diline bağımlılığı ortadan kaldıran ileri derleyicilerin çok yaygın olduğu sistemlerde ve hatta PC’ lerde yüksek performanslı RISC işlemciler kullanılmaya başlandı.
CRAY, IBM, DEC, HP, APPLE, ve SUN gibi süper bilgisayar, Çok büyük bilgisayar, büyük bilgisayar, işistasyonları ve PC’lerde kullanılmaktadır.
CISC ve RISC TABANLI İŞLEMCİLERDE KARŞILAŞTIRILMASI : CISC ve RISC tabanlı işlemcilerin karşılaştırılmasında iki önemli faktör farklılıklarını ortaya çıkarmada yeteridir.
HIZ: Genelde RISC çipleri, iş-hattı (pipelining) tekniği kullanarak eşit uzunlukta segmentlere bölünmüş komutları çalıştırmaktadır. İş-hattı tekniği komutların kademeli işlenmesini sağlar. Bu yüzden RISC’in bilgi işleme hızı CISC’den daha hızlı olur.RISC işlem cinsinde tüm komutlar 1 birim uzunlukta olup, iş-hattı tekniği ile işlenmektedir. Bu teknikte bazı komutlar hariç,her bir basamağında aynı işlemin uygulandığı birimlerden geçerler. İş hattı teknolojisini açıklamak için herhangi bir komutun işlenmesindeki adımlar ele alınırsa :
Komut kodu ve işlenecek veriler dahil bütün bilgilerin CPU’daki kaydedicilerin olduğu düşünülürse, birinci adımda yapılacak işin kaydedicide bulunan komut kodu çözülür, ikinci adımda üzerinde çalışacak veri (işlenen) kaydediciden alınıp getirilir, üçüncü adımda veri, komuta göre Aritmetik ve Mantık Biriminde işleme tabii tutulur ve dördüncü adımda sonuç kaydediciye yazılacaktır. Böylece bir komutun işlenmesi her bir basamak bir saat çevrimi gerektirirse, dört çevrimli (adımda) gerçekleşmiş olmakta ve bir adım bitmeden diğeri başlayamamaktadır.
İş-hattı tekniği ile çalışan işlemcilerde birinci adımda komut kodu çözülür, ikinci adımda birinci komutun üzerinde çalışacağı veri (işlenen) kaydediciden alınırken, sıradaki ikinci işlenecek olan komutun kodu çözülür. Üçüncü adımda ilk komutun görevi ALU’da yerine getirilirken, ikinci komutun işleyeceği işlenen alınıp getirilir. Bu anda sırada üçüncü komutun kodu çözülür ve işlem böylece devam eder.
İş-hattı tekniğinde çevrim zamanın düşmesi için komut kodlarının hızlı çözülmesi gereklidir. RISC mimarisinde tüm komutlar 1 birim uzunlukta oldukları için komut kodunu çözme işlemi kolaylaşır. Sistemde kullanılan kaydedicilerin simetrik bir yapıda olması, derleme işlemini kolaylaştırmaktadır. RISC işlemcilerde belleğe yalnız yükle ve depola komutlarıyla ulaşılır.
Bazı eski CISC mimarisinde de olmasına rağmen RISC mimarisinin sabit uzunluktaki basit komutlarla çalışması iş-hattı sistemini daha iyi kullanmasına sebep olmaktadır. Bu yüzden hesaplama oranlarının birinci öncelik arz ettiği yerlerde iş-istasyonları ve dağıtıcılarda çok tercih edilmektedir.
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 bulmayabilir. 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.
İşlemcinin Hızı : Bir işlemcinin hızını, kullanılan mikron teknolojisi, üretim teknikleri, kalıp boyutu ve proses kalitesi belirler. Ayrıca üretim sırasındaki koşullar, aynı banttan çıksa bile bir işlemcinin diğerinden hızlı olmasına yol açabilir. Ama sonuçta işlemci fabrikada son testlerden geçirilirken üzerine güvenli olarak çalışabileceği hız basılır. Işlemcinin hızı MHz cinsindendir. Bunu biraz temelden anlatmak gerekirse;
Her PC içinde, talimatların yerine getirilme hızını belirleyen ve çeşitli donanım aygıtları arasında senkronizasyonu sağlayan dahili bir saat vardır (bu saatin hızını normal saat ile karıştırmayın).
İşlemci, her bir talimatı belirli bir saat tıklamasında (saat döngüsünde) yerine getirir. Saat hızlıysa, işlemci saniyede daha fazla talimatı yerine getirir. 1 MHz, saniyede 1 milyon saat tıklamasına (döngüye) karşılık gelir. Yani, 400 MHz'lik bir işlemci, saniyede 400 milyon döngüyapar.
Bir işlemcinin MHz cinsinden hızı, anakartta kullanılan sistem veriyolu hızının belirli bir çarpanla çarpılması sonucu elde edilir. Örneğin 100 MHZ'lik anakartlarda 400 MHz'lik bir işlemci 4 çarpanını kullanarak 4x100=400 MHz'e erişir. Farklı işlemci serileri, aynı hıza sahip olsa da farklı mimarilere sahip olmaları nedeniyle aynı hızda olmazlar; yani saniyede yerine getirdikleri komut sayı farklıdır. Ayrıca "superscalar" mimariye sahip yeni işlemciler aynı anda birde fazla komutu yerine getirebilmektedir.
Nasıl Çalışır :
Mikroişlemciler, 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.
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.
Bir mikroişlemcili otomasyon sistemi için, mikroişlemcinin yanı sıra yardımcı elemanlara ihtiyaç duyulur. Bunlar :
Input (Giriş) birimi
Output (Çıkış) birimi
Memory (bellek) birimi
CPU, Giriş/Çıkış ve Bellek birimlerinin oluşturduğu sisteme mikrobilgisayar adı da verilir. Giriş/Çıkış ve Bellek elemanları mikrobilgisayar kartı üzerinde bir yerde CPU chip’inden bağımsız olarak yerleştirilmiş chip’lerden v elektronik devre elemanlarından oluşur. Aralarındaki iletişimler ise yollar aracılığı ile sağlanır (Adres bus, Data bus , Control bus).
Intel, Cyrix, AMD, Motorola, Zilog mikroişlemci üreticilerinden bir kaçıdır. Mikroişlemci-ler işleyebildikleri kelime uzunlukları ile anılırlar. Örneğin; farklı firmalar tarafından üretilen 8080A / 8085A, Z80, MC6800, 8 bitlik işlemciler olarak anılır, aynı aile ye üye işlemcilerdir.
Bir mikroişlemcinin yapısı tahmin edilebileceği üzere çok karmaşıktır. Bununla birlikte kullanıcı açısından aşağıdaki birimlerden meydana geldiği söylenebilir.
Birkaç bitlik bilgiyi tutan belirli sayıdaki kaydediciler (geçici saklama elemanları). Bu yazaçlar 8 bitlik (1 byte), 16 bitlik (2 byte) makine kodu, veri veya adres bilgisi saklarlar.
Mantıksal kararlar veren veya aritmetik işlemleri yapan “Aritmetik Mantık Birimi” (ALU – Aritmetic Logic Unit)
Hem mikroişlemcinin iç işlemesini hem de tüm dış mikrobilgisayar sisteminin işlemesini kontrol eden zamanlama ve kontrol devreleri. Bu devreler ALU ve kaydedicilerin çalışmasını, bellek I/O portlarına dışarıdan yapılan bilgi transferleri ile bu devreler program komutları tarafından belirlenen işlerin yerine getirmesini sağlar.