Crouse (SE) İşlemciler

Crouse SE işlemcileri chipset bütünlüğü, düşük isi dağılımlı, verimli güç kullanımı, yüksek performans ve x86 uyumluluğunu birleştirerek büyüyen bir ihtiyacı karşıladı.

1. CROUSE İŞLEMCİSİNİN ORTAYA ÇIKIŞI

Santa Clara , Calif – Transmeta şirketi bugün yeni enerji verimi yüksek olan Crouse (TM) Special Embedded (Özel gömülü) işlemcilerini duyurdu. Bu işlemciler x86 gömülü uygulamalarının geniş bir dizisini işaret etmektedir. Bu uygulamalar endüstriyel otomasyonu, bilimsel araçları, yazar kasaları, satış terminal noktalarını, işlem kontrol ve ev otomasyonlarını içermektedir.Transmeta ayrıca bunun programını bos şirketlerine rehberlik için , gömülü işletim sistemi şirketleri için ve silikon malzeme üreticileri için Crouse SE işlemcilerine bağlı olarak verimi arttırmak amacıyla müşteri desteği sağlayacaklarına dair söz verdiler.

Gömülü sistemlerin ihtiyacı olan ve Crouse işlemcilerinin sağladığı özellikler ile devamlı büyüyen gereksinimleri (x86 uyumluluğu birleştirerek, yüksek performans, güç verimliliği, düşük ısı yayılımı ve chipset entegrasyonu) iyi bir şekilde karşıladı.Tercih edilen güç yönetim teknolojisini, dinamik olarak işlemci frekans ve voltajını, chip sıcaklığını gösterirken en uygun biçimde kullanan, güç kullanımı ve sıcaklığını minimum seviyede tutmaya yarayan LongRun (uzun çalisma) Crouse Se işlemcilerinde kullanılır.Gömülü sistem geliştiricileri küçük bir paket içinde soğutma fanına ihtiyaç duymadan, içine bir kuzey köprüsü entegre ederek x86 uyumluluğu ile hemen hemen 1Ghz üzerinde verim sağlayabiliyorlar.Crouse ürün ailesi günümüzün performans geliştiricileri ve x86 gömülü sistemleri için mükemmel bir çözümdür.

Crusoe SE işlemcileri tasarlandı ve uzun bir süre zarfında zor ortamlarda (chipin sıcaklığı 100 dereceye kadar çıkarılarak) test edildi.Crouse işlemcilerinin gelecek versiyonları çok yüksek sıcaklık aralıklarına gereksinim duyan uç uygulamalarda da kullanılabilecektir.Transmeta şirketi başkanı Dr. Matthew R. Perry .”Bizler hedef piyasamızı crouse işlemciler ile daha da büyütüyoruz. ” dedi.

Crouse Se işlemcilerinin kapsadığı maddeler:

  • Crouse SE parçaları 667 MHz, 800 MHz ve 933 MHz te kullanılır ve x86 gömülü uygulamalar için optimize edilmiştir.

  • Her bir işlemci standart yada daha düşük güç versiyonlarında kullanılabilir.

  • Fan kullanan sistemler akla getirildiğinde, güvenli bir şekilde azaltılmış işlem sıcaklıkların da fansız bir sistem dizaynını mümkün kılar.

  • Long Run (uzun çalışma) güç ve termal yönetimi gömülü sistemin performansını, güç tüketimini ve ısı dağılımını azalttığı sürece maksimumda tutar.

  • Upgrade edilen Code Morphing Software (CMS) x86 ile olan uyumluluğu tamamlamayı sürdürürken eş zamanlı olarak ta performans artısını maksimum etmeye çalışır.

  • Entegre edilen kuzey köprüsü yoğun tasarımlara izin vererek board boşluğunun azaltır.

  • Haftanın 7 günü ve günün 24 saati yüksek hız ve sıcaklıkta kritik görevli gömülü tasarımlar da yüksek güvenirlilik sağlar.

  • Uzatılmış Couse SE programı gömülü ürünün çalışma süresince ürüne destek verir.

1.1. Transmeta’nin gömülü kardeş programı

Gömülü sistem geliştiricileri ticarete ve teknik gereksinimlere, ürün operasyonları ve geçerli niteliklerin kompleks ve uzun süreler içinde çalışabilir olması ile transmeta diğer şirketlere meydan okuyor.Güvenirliliğine ek olarak, stratejik parçalara(örn: Crouse SE işlemcisine bile) uzun süreli destek sağlanıyor. Bu müşteriler güvenilir yapıdaki tamamlayıcı şirketlere gereksinim duyarlar ki; bu şirketler gömülü sistem ihtiyaçlarının çoğuna destek verir.


Sonuç olarak transmeta, temel destek servislerini ve müşterilerin gömülü uygulamaları için yararlı olacak parçalarını sağlamak amacı ile birçok iş arkadaşı ile beraber çalışmaktadır. Bu is arkadaşları bios şirketleri, gömülmüş işletim sistem şirketleri ve silikon parçaları sağlayan şirketlerdir. Bu iş arkadaşları aracılığı ile müşteriler donanım ve yazılım da (bu yazılımlar ve donanımlar Crouse SE işlemcileri ile birlikte kullanılarak daha kolay geliştirme ve daha hızlı pazarlama için test edilmiştir.)kendilerine geniş bir platform elde etmiş olurlar.

1.2. Teknik Özellikler

Birçok kez duyduğunuz gibi belki de ilk kez duyduğunuz; eğer geçmiş Crouse ‘lari incelediyseniz Crouse ilk basta yazılım ve donanımın karışımı olan bir işlemci gibi piyasada lanse edildi. Sunumları boyunca x86 işlemcilerinin donanımda yaptığı bir çok fonksiyonun transmeta da tekrarlandığı vurgulandı.Crouse bunu Code Morphing Software adi verilen kompleks bir yazılım ile yapar.Bu doğru fakat Transmetanin bunu atmasının yolu eğer iyi incelenmemiş ise önemsenmeyen bir yanılgıya sebep olabilir.Görüldüğü gibi her şey eninde sonunda donanımın içinde yapilmaktadir.hepsi bu .. aşağıdaki blok diyagrama bir göz atalım.bu diyagram x 86’nin 6’inci ve yedinci jenerasyonlarını göstermektedir.Aşağıdaki blok diyagram gerçek bir işlemcinin yollularını yansıtmamaktadır. Bu bloklar sadece fikir vermek amacıyla verilmiştir.

Modern x86 işlemcileri (K6,K7) yada Pentium 3 aslında x86 komutlarını bu şekilde çalıştırmaz.Bütün bu kod çevrimlerini yapmak için K7 ve Pentium 3’ ün oldukça kuvvetli kod çözücü donanıma ihtiyacı vardır. (yukarıdaki blok semada sol tarafta gösterilen bölüm)

Hemen hemen bütün işlemcilerin (x86,ppc,Alpha vb.) kodu, en iyi şekilde islemek ve en iyi şekilde kullanmak amacıyla diğer özel donanımları vardır. Bu kaliteli donanımlar çok yer kaplarlar ve güç gereksinimini artırırlar.

Mavi yerler silikonu, sari yerler ise yazılımı göstermektedir. Crouse ’ un mavi bölümleri daha küçüktür, çünkü bütün bu üstün dönüşümler,dallanma tahminleri ve diğer donanım uygulamaları donanımsal olarak ortadan kalkar ve yazılım içinde bu işlemler sürdürülür.Bütün bu fonksiyonlar eşzamanlı olarak özel programlar tarafından uygulama kodu olarak işlem görür.

Hayatta hiçbir şey boşuna değildir.Bu fonksiyonları yazılıma aktarmak işlemcinin bu fonksiyonları icra etmek zorunda olmadığını göstermez. Bu VLIW (Çok uzun komut kelimesi) merkezi dallanma tahmini ve kayıtların yeniden isimlendirilmesi işlemini yapar.K7 bunu yapmak için özel bir donanıma ihtiyaç duymaz.Crouse’un kendini donanıma adamasında ki eksiklik, yazılımın bu fonksiyonları icra ederken donanım kaynaklarını ve işlemcinin her devri x86 daki uygulama yazılımları ile paylaşmasından kaynaklanmaktadır.Aşağıdaki resim herşeyin nasıl ilerlediğini göstermektedir.

Resmin üzerindeki sari bloklar ön-son (dallanma tahmini, kaydedicilerin yeniden adlandırılması,komut programlaması vb.) işlemci fonksiyonlarını göstermektedir.Kırmızı bloklar ise OS ve uygulama yazılımını göstermektedir.Bütün bu bölgeler CPU merkezinde ayni ayna çalışmaktalar.Söylediğim gibi Crouse işlemcisi hala kaydedicileri yeniden isimlendiriyor, komutları yeniden sıralıyor, x86 komutlarını dahili komut formatına çeviriyor.Aynen diğer işlemcilerde olduğu gibi. O işlemi yapmak için su anda hiçbir adanmış donanım kullanmamaktadır.Bu fonksiyonların ayni donanım tarafından icra edilmesi yerine çarpıcılar, toplayıcılar çıkarıcılar,komut uygulamaları ele alınır.

Muhtemelen doğru tahmin edebilmişsinizdir , yazılım içinde olan tüm bu şeyler bir miktar yavaşlamaya neden olabilir. Yine de Transmeta mümkün olduğunca az cezaya uğrayarak ta olsa çok iyi bir çizgide ilerliyor.

1.3. ÇEKİRDEK

Bu noktada mevcut Crouse çekirdekleri üzerinde çok fazla bilgi olmamasına rağmen, bir parça spekülasyon yapacağım. Fakat üzülmeyin, spekülasyon yaptığımda ve emin olduğumda bunu belirtirim.

Crouse çekirdeği dört kapsamlı is yapar. VLIW uygulaması sayesinde her saat palsinde 4 işlem uygulamaya konulur. Bu uygulama motoru aşağıdaki üniteleri takip eder.

kayan noktalı hesaplamalarında kullanılır.Kayan noktalı işlemlerde tekil hassasiyetin gizli olup olmadığından emin degilsemde biliyorum ki iyi bir performans alabilmek için çift hassasiyetli kayan nokta kullanılmalı. Bu benim tahminim ama yanlışta olabilir.

Tamsayı Aritmetik Mantık Birimi (ALA #0, ALA #1 ): Bu ünite Aritmetik ve Mantıksal işlemleri yapar. Bu ünite tamsayı hesaplamalarını (ekleme,toplama,çarpma vb.) diğer fonksiyonlar kadar iyi yapar.Örneğin mantık fonksiyonları(ve,veya,değil vb.)

Yükleme/Depolama Ünitesi (LSU): Bu ünite hafıza girişlerini ele alır.Örneğin yükleme ve yedekleme gibi.Teknolojik dokümanlar söylemesele balkıda adres hesaplamalarda yapıyor olabilir.

Dallanma Ünitesi: Bu ünite dallanma komutlarının ele alındığı yerdir.

Transmeta teknoloji bilgi sayfalari Crouse’ un 64 tamsayi kaydedicilerine sahip oldugunu göstermektedir. Code Morphing yazilimi bu kaydedicilere yer tahsis eder. Bir kisminada x86 daki durumlarin korunmasi için yer gösterilirken, digerleri dahili iç idare fonksiyonlari olarak kullanilir. Örnegin kaydedicinin yeniden isimlendirilmesi gibi.

1.4. Atomlar ve Moleküller: Komut Formatlaması

Crouse’un dahili komut formati VLIW’ in komut uzunlugundan çok yada azdir.Tek islemler atomlar olarak adlandirilan uygulama ünitesine dogru yönlendirilir.Atomlar yaklasik olarak RISC oparasyonlariyla es anlamlidir. Bu atomlar moleküller adi verilen 64 veya 128 bitlik yiginlar halinde paketlenir. Moleküller EPIC lerde “yiginlar” veya MAJC’ lerde “paketler” olarak ifade edilir.128 bitlik bir yigin 4 atom içerir.Transmeta teknoloji dökümanlarindan alinan asagidaki diyagram nasil çalistigini görsel olarak anlamaniza yardim edecektir.

VLIW programi sadece bu moleküllerin bir listesidir ki bu moleküller uygulama ünitesindeki siraya göre icra edilir ve islemcinin içinden beslenir.Crouse’ un donanimi onlari yeniden siralamak için, gelecek komutlarin nereden gelecegini tahmin edecegini ve ya bu çesit isleri düsünmek zorunda degildir. Sadece komut motorunu mümkün oldugu kadar hizli bir biçimde komut yiginina odaklar.

1.5. VLIW vs. superscalar

Code Morphing’ e gidip detaylar üzerine tartismadan önce VLIW uygulamalari ile standart Superscalar uygulamalari arasindaki farki aydinlatma geregi hissettim. Ama bu kisa bir özet olacak çünkü bu konuyla ilgili detaylari daha önceki Sun’s MAJC ve vIntel’s IA-64, makalelerim de vermistim.

Geleneksel superscalar tasarimda yazilimi yazan kisi dizisel programi yüksek seviyeli bir dilde yazar ve makine koduna derler.Makine koduda ardisildir.Islemcinin komut listesi ve donanima sevk etmesi paralel çalisacak sekilde yeniden yerlestirmesi sarttir.

Programlayici ayrica kodu güvenlik için gözden geçirir ve isleme sokulmadan önce yeniden siralar. Sonuç olarak ardisil siralanmis olan kod aslinda paralel ve siradisi olarak islemci bunu alir ve icra eder.Kod içerikleri ile yapilan bütün bu hileler islemcinin bölümlerinde bir çok ise sebep olur ve saat palsi ve transistörlerin çalisma süreleri arttigi için islemcinin islem süresi artar.

Geleneksel VLIW makineleri bununla birlikte yazilimdaki paralelizmi ve yeniden siralamanin hepsini yapar.Intel’in IA64 gibi VLIW dizayni daha ileridir , yazilimin bir kismi bütün bu derlemeleri yapar.Derleyici, koddaki parelelizmi çikarir ve bagliliklari arar vb. ve VLIW çekirdegi mümkün olabildigince hizli bir sekilde optimize edilmis kodlari sirali bir sekilde üretir.

1.6. Code Morphing

Crouse bir VLIW makinesidir ve bir superscalar makine için derlenen kodlari çalistirir.Bunun tamamlanmasi ve belli bir uyum içerisinde programlanmasi her iki yaklasimin birleserek bir çesit olusturmasini saglar.Crouse Code Morphing yazilimi aslinda derlenmis x86 programini alir ve onu havada (deyimdir.CPU içinde Crouse’un anliyacagi formata sokma.) yeniden Crouse’ un yerel VLIW komut formatina derler.Yeni derleme, gelismis derleyici algoritmasini koddan paralelizmi açmak için kullanir, bagliliklari arar ve bütün bunlari VLIW derleyicisi yapar.

Zaten crouse diyagramina bir daha bakacak olursaniz sari bölgelerin Code Morphing katmanina bagli oldugunu göreceksiniz. Code Morphing katmani Crouse ‘ un yerel Vliw komut kümesine yazilmistir, bu katman islemci , bios ve isletim sistemi arasina oturtulmustur. Code Morphing yazilimi özel bir Rom’un içine yüklenmistir ve makine ilk açildiginda boot islemini bunun üzerinden yapar. Code Morphing katmani yüklendikten sonra , isletim sistemi ve uygulamalar bunun üzerinden yüklenir.

Ardisik olarak, x86 uygulamalari ve isletim siNsteminin kodlari Code Morphing katmaninin içine dogru beslenir. Code Morphing katmani X86 komutlarindan bir grup bütünü alarak ayni anda çevirme islemini saglar. Bu çeviri x86 kodunun büyük bir parçasindan olusur ve Crouse yerel VLIW koduna çevrilir. Bu çevirinin bir kez yapilmasi yeterlidir. Çünkü çeviriler özel bir çeviri önbelleginde (CACHE) saklanir. Bu yolla Crouse ona ihtiyaç duydugunda her seferinde çevirmek zorunda kalmaz ve çeviri önbelleginden onu alarak çalistirir. Çeviri önbelleginin uzunlugu boot sirasinda, ve eger ihtiyaç duyulursa isletim sistemi tarafindan ayarlanabilir.

Eger hersey Code Morphing ’ te olsaydi , gerçektende çok büyük bir teknoloji olurdu. Fakat yinede daha iyisi olabilir. Code Morphing yazilimi, çeviri kodunu hangi parçalarin en sik kullanildigini görmek için izler.Code bloklarini büyük bir çogunlugu birçok kez kullanilir Code Morphing derleyicisi bunlari uygun hale getirmek için çok zorlanir.

Crouse ‘un Code Morphing yazilimi sadece en sik kullanilan bloklarin kaydini tutmakla ve uygun biçime getirmekle kalmaz ayni zamanda en sik alinan dallanmalarin ve orada geçen kodlarin kaydinida tutar. Bu yolla Crouse’un dallanma tahmin algoritmasi dallanmanin nasil alinacagini ve hangi dallanmanin spekülatif olarak yerine getirlmeyecegini bilir.Eger bir dallanma özellikle bir yola veya baska bir seye gitmiyorsa Crouse spekülatif olarak her iki dallanmayida yerine getirmez.

Normal bir islemcide yapilan spekülatif uygulamalar ile aradaki farki görmek amaci ile yapilan karsilastirmada bilgimiz çerçevesinde donanim kisitlamalari (tampon gibi ve tablo büyüklükleri vb.) olan bu islemciye özel dallanmalar yükleyebilir ve onun geçmis tablosuna bu yüklemeler yapilabilir.
Yazilim içinde dallanma geçmislerinin Code Morphing‘ te saklanmasindan beri, uygulamanin daha genis kod penceresindeki tanim parçalari daha iyi kaydedilebilir ve bu nedenle girisler daha dogru sekilde yada özel bir dallanma alinabilir.

1.7. Yüksek Hizda Tutma

Transmetanin en büyük meydan okumalarindan biri Code Morphing yazilimiyla yüzyüze gelmesidir. Code Morphing yazilimi kabul edilebilir bir performansi sürdürmektedir.Yazilim ve donanimi bir araya getirebilmek için beraber tasarladilar.Bununla birlikte donanima özel bir fonksiyon ekleyerek Code Morphing yaziliminin hizini arttirabilirler.

X86 mimarisi isleme tarzinda, istisna olarak sira disi bir x86 kod uygulamayi denerken bir problem yaratabilir. Istisna meydana geldiginde bir komut bir seyler yapmayi dener ve probleme rast gelir. Bir X86 makinasinda bunlar oldugu zaman, istisnaya neden olan komut tamamlanmadan önce diger bütün alt komutlar isletilemez. iyi, eger siz sira disi komut uygulandiginda , siz bunun nasil meydana geldigini göreceksiniz.

Crouse ayni zamanda özel donanimlara sahiptir ki bu donanimlar ona spekülatif yüklemelerle yardim ederler. Crouse Yükle (LOAD) komutunu özel olan “yükle ve koru (Load-and-protected)” komutuna çevirir.Crouse sakla (STORE) komutunu “yükle-altinda-takma ad-saklamak (store-under-alias-mask)” komutuna dönüstürür.Bu komut üzerine yazilamaz bir korumali yükleme (LOAD) olup olmadigina emin olmak için bakar.Eger muhtemelen olmayan durumlar olursa ve Sakla  (STORE) komutu yüklenmis olan datanin üzerine yazmayi denediginde istisnai durum gerçeklesecek ve hata dogrulanacaktir.Bunlarin hepsinin bir sonucunda Crouse yeniden düzenlenebilir ki ihtiyaci da çünkü özel bir defter tutma yetenegine sahiptir ve bu ona hata yaptiginda kendini nasil onaracagini bildirir.

Crouse ‘ un komut listesine yaklasimi yukaridakinden farklidir.

1.8. Uzun çalisma (Long Run)

Baslangiçta da belirttigimiz gibi, Crouse düsük güç için dizayn edilmistir. Bunun nedeni, sunum esnasinda, sirket yeni adim olarak hizi ve verimi hesaba katarak en az performans kadar iyi bir çizgi yakalamasini istemistir. Benchmark’lar tasarimiciya yardim edecek araçlardir. Potansiyel müsteri girislerin de ürün bize tasarimin yararli yönlerini gösterir. Son günlerde bir çok islemci takiminin tasarimindaki birinci avantaji uygulama performansidir. Bu performansta benchmarklara çok is düser. Crouse’ un tasariminda ki en büyük amaç düsük güç tüketimidir. Standard benchmarklar bunu çok iyi yansitamazlar.Bugünün benchmarklarini Crouse üzerinde çalistirmak, matematik efendisine fizik testi vermeye benzer.Bunu yapmak problemleri ele almada ki donanimini arttiracaktir fakat ne için çalistirildigini göstermeyecektir.

Biraz da Crouse ’ un düsük güç gereksinimleri ve küçük kalip büyüklüklerinden konusacagim, fakat kesin rakamlar vermeyecegim. En yüksek çizgideki Crouse 700 MHZ bir islemcidir (0,18 micron islemciler), ki güçün 1 wattini önemsiz yere tüketmektedir.Bunu AMD ‘inin 700 MHZ K7 ‘leri ile karsilastirin (0,18 micron) ki AMD 34 wattini gereksiz yere tüketmektedir. Bayagi büyük bir fark. Ve Crouse mobil pazarini hedeflediginden beri, onun düsük güç tüketimi direk olarak

  • Uzun batarya ömrüne

  • Düsük hafiflik

  • Düsük fiyat ’ a dönüstü.

Bu özellikleri ile mobil pazari için ideal bir ürün halini aldi.Bu hos özellikleri ile , Crouse her çesit webpads,dizüstü bilgisayar, el bilgisayarlari ve diger tasinabilir aletlerle karsimiza çikagelebilir.

Simdi aletin fiziksel karakteristiklerinden,onun uzun süre verimli olarak çalisabilecegini görebilirsin.Transmeta bir veya iki adim daha öteye giderek, bununla birlikte, mümkün olabilen en asgari güç kulanimini yapacagindan emin. Eger animsadiysaniz, Intel ’ in geçenlerde ilan ettigi yeni teknoloji mobil chipler kendilerini kontrol ederek 100 MHZ geriye dönüse izin veriyordu. Crouse bu fikri alarak bir adim ileri götürdü, ve onu alip diger adimlara yöneldi.

Diger sir ise Crouse ’ un gücü muhafaza etmek için kuzey köprüsünü çipsete entegre ettiler, Bu chipset DDR VE SDRAM kontrollerini yaparak, islemci çekirdegi ölünceye kadar çalisacakti. Bu eklenen transistörler uzun bir çalisma saglayarak kapsamli sistemler için güçten tasarruf sagladilar.Bu entegrasyon grafik ve ses yeteneklerini arttirdi. Transmeta sisteme yeni degerler ekleyerek daha düsük güç tüketimini saglayana kadar arayislarini sürdürecek.

1.9. Aydinlatici Bilgiler

RISC (Reduced Instruction Set Computer): Azaltilmis komut kümeli bilgisayarlar. Bir çesit bilgisayar mimarisi

CISC (Complex Instruction Set Computer): Komplex komut kümeli bilgisayarlar. Bir çesit bilgisayar mimarisi

VLIW (Very Long Instructions word): Çok uzun komut kelimeli bilgisayarlar.EPIC mimarisi VLIW mimarisinin gelistirilmis bir modelidir.

Not: Daha Detayli bilgiler için Nurettin Topaloglu’nun X86 tabanli Mikroislemci mimarisi ve Assembly Dili adli kitabindan yararlanabilirsiniz.


Kaynaklar:

www.transmetazone.com

www.arstechnica.com

www.transmeta.com

Pentium III ve Pentium 4 İşlemciler

1. PENTIUM III İŞLEMCİLER

Yeni Coppermine serisi olarak adlandırılan PIII’lerin eski PIII’lerden farkı, Coppermine’larda silikon dilimlerinden daha fazla sayıda çipin elde edilmesine olanak tanıyan 0,18 mikron mimarinin kullanılmış olması. Bu mimarinin kullanılması sürecinde daha küçük, birbirlerine daha yakın devre bağlantıları ve transistörler kullanılıyor. Daha küçük çipler daha hızlı çalışıyor ve daha az ısı üretiyorlar. Bu üretim mimarisi, aynı zamanda 256 KB’lık bir Level 2 (L2) cache belleğin çip üzerinde kullanılmasına da imkan sağlıyor.L2 cache belleğin kritik bir rolü vardır: L2 cache sayesinde işlemci, sistem RAM’ine talep göndermek için daha yavaş olan sistem veri yolunu kullanmak zorunda kalmaz. Böylece verilerin daha hızlı bir şekilde işlenmesine imkan doğar. L2 cache bellek, ilgili uygulamanın ihtiyaç duyacağı verileri tutarak zaman kaybını azaltır. Coppermine PIII’lerin çip üzerindeki L2 cache belleği  (Intel’in deyimiyle Advanced Transfer Cache) işlemcinin saat frekansıyla aynı hızda çalışır. Eski Pentium PIII’lerde L2 cache bellek çip üzerinde değildi ve işlemci hızının yarısı hızında çalışıyordu. Daha hızlı bir cache bellek, özellikle bu bölgede fazla miktarda bilgi tutan uygulamaların çalışma hızını artırıyor.

PIII işlemcili bazı makineler 133 MHz’lik bir sistem veriyolunu kullanıyorlar. (Bu hız kullanılan mainboard ve RAM’in 133 MHz’i destekleyip desteklemediğine bağlı)  Intel’in, Coppermine’ların performansını yükseltmek için kullandığı tekniklerden biri “Advanced System Buffering”. Bu metod, işlemcinin sistem veriyolu üzerinden bir defada daha fazla talep gönderebilmesine olanak tanıyor. PIII-600 EB, 667 ve 733 ‘lük sistemler, 133 MHz’lik veriyolunu kullanırken, PIII 600E, 650 ve 700 tabanlı makineler de 100 MHz.lik standart veriyolunu kullanıyorlar. (E harfi, L2 cache belleğin çip üzerinde olduğunu belirtirken, B harfi de 133 MHz.’lik veriyolunu desteklediğini gösteriyor.)

 

Şekil 1.1: Intel Pentium III CPU’nun blok diyagramı

1.1. PIII XEON

Server lar için çok ideal bir işlemci olan PIII Xeon’un teknik özelliklerini kısaca özetleyelim:

Şekil 1.2: XEON işlemcisi

Kartuş üzerinde (On Cardridge) EEPROM: Bakım ve kurulum amacıyla verileri ve bu verilere ait parametreleri depoluyor.

Kartuş üzerinde (On Cardridge) Voltaj Regülatörü: Voltajı düzenleyerek kart üzerinde potansiyel hata noktası oluşturabilecek herhangi bir ek konnektöre ihtiyaç bırakmıyor.

Kartuş üzerinde (On Cardridge) Isı Algılayıcı: Isı miktarını algılayarak mükemmel bir sistem yönetimi sağlıyor.

System Management Interface (Sistem Yönetim Arayüzü): Sistem yönetim yazılımı sayesinde CPU’ya özgü işlem ve özelliklere doğrudan erişim sağlıyor.
Pasif Soğutucular: Server’larda en sık sorun oluşturan parçalardan olan fanların olmamasıyla sorunların azaltılması sağlanıyor.

Şekil 1.3: Xeon board ve server

Solda Pentium III Xeon’u destekleyen bir server mainboard ve sağda ise çift CPU ve mainboard’ın kullanıldığı bir server platformu görünüyor.

 

CPU Level 2 Cache Bellek Sistem Veriyolu Hızı    
PIII 533EB, 600EB, 667, 733 ve üstü 256 KB, çip üzerinde ve işlemciyle aynı hızda 133 MHz
PIII 500E, 550E, 600E, 650, 700 256 KB, çip üzerinde ve işlemciyle aynı hızda 100 MHz
PIII 500, 550 512 KB, çip üzerinde değil ve işlemcinin yarı hızında 100 MHz

Tablo 1.1: Pentium III çeşitleri ve özellikleri

 

2. INTEL PENTIUM 4 CPU

Intel, masaüstü PC’ler için ürettiği yüksek performanslı yeni CPU’su Pentium 4 ile işlemci piyasasını   yeniden kızıştıracağa benziyor. Intel, kaptırmış olduğu dünyanın en hızlı CPU ünvanını Pentium 4’te  1.4 GHz ile yeniden  yakalayacak.(Hatırlarsanız bu ünvan  1  GHz’lik CPU ile AMD firmasına aitti. Bu arada AMD’nin de boş durmayacağını hatırlatmakta fayda var.)

Intel NetBurst mikro mimarisinden faydalanan, Intel Pentium 4 işlemci, daha önceki Intel mikro mimari kuşaklarında piyasaya sürülmüş olan “out- of-order speculative execution (kullanım dışı spekülatif gerçekleştirme)” ve “super-scalar execution” gibi yeni özelliklerinin pek çoğuna geçerken yeni teknolojiler ve yetenekleri teslim eden tam bir işlemci yeni tasarımıdır. Bu yeniliklerin ve gelişimlerin pek çoğu, işlemci teknolojisi, işlem teknolojisi ve devre tasarımındaki gelişmeler ile mümkün hale getirmiş ve yüksek hacimli üretilebilir çözümlere daha önceden geçememiştir. Yeni mikro mimarinin özellikleri ve sonuçtaki kazançları aşağıdaki bölümlerde tanımlanmıştır.

 

Şekil 2.1: Intel Pentium 4 İşlemci ve işlemci fanı

 

Intel işlemcisi Pentium IV’ ü Kasım-2000 tarihinden itibaren üretmeye başladı. Intel için bu yeni işlemcinin önemi çok büyüktür. Intel 1995 yılından beri ilk defa yeni bir mimariyi kullanmaya başlamış ve bu mimariyi birtakım değişikliklerle geliştirmiştir. İşlemci mühendisleri, yeni ürünlerini geliştirirken, bilgisayar kullanıcılarının 2000’li yıllarda en fazla ihtiyaç duyabileceği alanlarda yüksek performans sunulmasını hedeflemişlerdi.

 

Şekil 2.2: Pentium 4 CPU ve Mainboard’a montaj yapılmış hali

 

Intel Pentium IV’ ü geliştirirken birçok faktörü göz önüne almıştır. Bugünün işlemcilerinde, yazılımların beklediği birçok şey vardır. İşlemcilerin üzerindeki yük, özellikle bazı tip uygulamalarda oldukça fazladır.öte yandan diğer bazı uygulamalarda ise işlemci gücünden çok sistemin diğer donanımlarının performansları da öne0m kazanıyor. Intel’de Pentium IV’ ü geliştirirken, daha çok yukarıda bahsedilen uygulama tiplerinden birincisi üzerine yoğunlaştığını söylemiştir. Yani Pentium IV’ ün amacı, 2000’li yıllarda mikro işlemcilerden yüksek hesaplama kapasitesi sunması bekleyen yazılımlarda yüksek performans sunmaktır.

PC’lerdeki en önemli parçalardan biri olan işlemciler, kullanılan birtakım uygulamaların doğrultusunda, bu uygulamaları çalıştıracak aynı zamanda da gerekli performansı sunmak amacıyla değişikliğe uğramıştır. Intel, 1995 yılında bu yeni işlemcisinin kullanacağı mimariyi geliştirmeye başladığı vakit, 2000’l i yıllarda hangi tip uygulamaların önemli olacağını öngörmüştü.

1995 yılında Intel, kullandığı mimari olan P6 mimarisini, Pentium Pro’lar ile tanıtmıştı. Firma Pentium IV’e kadar sürekli olarak bu mimariye küçük değişiklikler uyguladı fakat yeni bir mimari tanıtmadı. Pentium IV işlemci açısından çok önemlidir. Intel Pentium IV’e geçici bir işlemci olarak bakmıyor. Kullandığı NetBurst mimarisinin, 2000’li yıllarda daha birçok işlemcisinin temelini oluşturacağına inanıyor.Intel NetBurst için 5 yıl boyunca çalıştı. Amaçlanan tasarım hedefleri şunlardır:

  • Yüksek Mhz’lere rahatça ulaşabilmek ve bu sırada ısının sorun oluşturmaması

2000’li yıllarda popüler olacak olan Internet üzerinden ses ve görsel iletişim, 3D uygulamalar, dijital video ve ses işlenmesi, speech recognition (ses tanıması), multimedya uygulamaları, MP3 çözümü ve kodlanması, DVD oynatımı gibi uygulamalarda yüksek performans sunabilmektir.

 

Şekil 2.3: Intel Pentium4 CPU’nun blok diyagramı

 

Intel amaçlanan bu tasarım hedeflerine ulaşabilmek için radikal yaklaşımlar ve çözümler üretmiştir ve kullanılan mimari yeni baştan hazırlanmıştır. Pentium IV, Pentium3 ve Athlon’dan çok daha karmaşık bir işlemcidir. Bu gelişmelerin yanında yeni mimarinin bazı olumsuz etkilerinin hissedilmemesi için gerekli olan çalışmalarda yapılmıştır.Pentium 4 işlemci, Intel NetBurst mikro mimarisi, yeni bir mikro mimarinin ilk donanım gelişimidir. Bu mikro mimarinin anlaşılmasında okuyucuya yardımcı olması için, bu bölüm aşağıdakileri detaylı olarak incelemektedir:

  • Intel NetBurst mikro mimari tasarım faktörleri

  • Bu yeni mikro mimariyi oluşturan yapım blokları

  • Pentium 4 işlemcideki gelişimi temel alan bu mikro mimarinin anahtar işlevsel birimlerinin işletimi

Intel NetBurst mikro mimarisi, çok yüksek saat oranlarında hem integer hem de kayan-nokta için yüksek performans elde edilecek şekilde tasarlanmıştır. Aşağıdaki özelliklere sahiptir:

  • 1 GHZ’nin üzerinde yüksek saat oranları ve frekans baş odasını iyi halde tutmak için hiper pipelinelı teknoloji

  • Temel integer komutlarının gecikmesini azaltmak için hızlı gerçekleştirme motoru

  • 400 MHz Intel NetBurst mikro mimari sistem veriyoluna yüksek performanslı, dört pompalı veriyolu ara yüzü

  • Dallanma gecikmelerini kısaltmak için trace önbelleksinin gerçekleştirilmesi

  • 64 ve 128 baytlık önbellek hat boyutları

  • Donanım prefetch

  • Pipeline gecikmelerini asgariye indirmek için agresif dallanma önceden belirlemesi

  • Paralelliği mümkün kılmak için kullanım dışı spekülatif gerçekleştirme

  • Paralelliği mümkün kılmak için superscalar yayın

  • Kayıt isim boşluğu sınırlamalarından kaçınmak için donanım kayıt yeniden adlandırması.

PCSistem sizin için Pentium 4 CPU’nun özelliklerini araştırdı:İşte yeni kuşak işlem gücüne sahip Intel Pentium 4 CPU’nun diğer CPU’larda olmayan YENİ  özellikleri:

  • Görsel internet kavramı gözönünde tutularak eklenen 72 yeni komut….

  • 0.18 mikron mimarisi….

0,18  mikron mimarinin kullanılması yüksek bir performans artışı sağlıyor. çünkü bu mimarinin kullanılmasıyla  daha  küçük transistörler ve daha sık dokunmuş iletim hatları ortaya çıkmış. Bunun sonucunda da ortaya daha düşük voltajlar, daha  düşük  ısılar ve daha yüksek hızlar çıkıyor. 

  • 400 MHz.lik sistem veri yolunun kullanmasıyla RDRAM’ler geliyor…

  • Intel, Pentium 4 CPU’nun pipeline derinliğini tam 2 katına çıkararak 20 kademeye yükseltmiş…(Bu işlem CPU’nun performansını ve çıkış frekansını önemli ölçüde artırır.)

  • NetBurst Mikro Mimarisi. Bu mimarinin  kullanılmasıyla gelen yeni özellikler:

    • Hiper pipelined teknoloji

    • Hızlı İşlem Motoru

    • Tam 400 Mhz! veri yolu

    • Vee İşlem Takip önbelleği

Ve işte diğer CPU’lara göre gelişmiş özellikleri:

  • Gelişmiş dinamik komut işleme

  • Gelişmiş transfer önbelleği

  • Güçlendirilmiş floating point (kayan nokta) ve multimedya özellikleri

  • Streaming SIMD uzantıları

2000’li yılların tüketici modeline göre bilgisayarlardan şu  ihtiyaçları gelişmiş bir şekilde işlemesi istenecek:

  1. Gerçek zamanlı video şifreleme

  2. Video / fotoğraf düzenleme

  3. 3D yüksek yoğunlukta animasyonlar

  4. Konuşma tanıma 

  5. Video girişi

  6. IP üzerinde sesli iletişim

  7. Yazılım şifreleme

ve daha buna benzer birçok uygulama Bu uygulamalar gözönünde tutulduğunda yüksek performansın gerekliliği tartışılmaz oluyor tabii ki.Peki Pentium III ile  Pentium 4 arasında ne gibi farklar var? Şimdi de bunları görelim:

Şekil 2.4: Pentium III özellikleri

Yukarıdaki resimden de anlaşılacağı gibi Pentium III işlemci 133 Mhz sistem veriyolunu desteklemesine karşılık birçok yeni ve gelişmiş özellikle birlikte Pentium 4 CPU, tam 400 MHz’lik sistem veriyolunu kullanıyor.

 

Şekil 2.5: Pentium IV özellikleri

 

Pentium 4 CPU’yu destekleyecek mainboardlarda Intel 850 chip seti kullanılacak. Pentium 4’ün özelliklerini kısaca özetleyelim:

 

Yeni özellikler Sonuç
Hiper Pipeline Teknoloji İşlemcinin frekans ve performansını artırır.
Hızlı İşlem Motoru Yüksek işlem verimi ve daha az hata
İşlem takip önbelleği Daha etkin önbellek kullanımı
Geliştirilmiş özellikler Sonuç
Gelişmiş ve dinamik komut işleme yeteneği Daha etkin veri işleme
Gelişmiş transfer önbelleği İşlemci çekirdeğine veri transferi optimizasyonu
Güçlenmiş kayan nokta (floating point) mimarisi 3 boyutlu uygulamalarda daha iyi performans
128 Bit SIMD tamsayı Daha iyi video, ses, şifreleme ve görüntü işleme
128 Bit SIMD kayan nokta Daha hızlı tasarım,mühendislik ve finans uygulamaları

 

2.1. Intel NetBurst Mikro Mimarisin Tasarım Faktörleri

Intel NetBurst mikro mimarisinin tasarım hedefleri: (a) yüksek işlem oranlarında hem eski IA-32 kodu hem de tek komut, çoklu veri (SIMD) teknolojisini temel alan uygulamaları gerçekleştirmek; (b) yüksek saat oranlarında çalışmak ve daha yüksek performans ve saat oranlarını gelecekte ölçmek. Bu tasarım hedeflerine ulaşmak için, Intel NetBurst mikro mimarisi, Pentium Pro işlemci mikro mimarisi üzerinde pek çok ileri özelliğe ve gelişime sahiptir.Yüksek performans ve yüksek ölçülebilirlik saat oranlarını mümkün kılmak için Intel NetBurst mikro mimarisinin ana tasarım faktörleri aşağıdaki gibidir:

  • Nominal olarak sıralanmış işlemci saat frekansından bazılarının yavaş bazılarının ise hızlı olduğu, değişik saat oranlarında çalışan çipin değişik kısımları ile yüksek saat oranlarını mümkün kılmak için derin pipelinelı tasarım kullanmaktadır.

  • Pipeline, sıkça gerçekleştirilen komutların olağan durumu için optimizasyon vasıtasıyla yüksek performans sağlamaktadır. Bu, sıradan şartlarda (bir önbellek vuruşu gibi) en sıkça gerçekleştirilen komutların etkin bir şekilde kodlandığı ve sıkça karşılaşılan kod sekanslarının yüksek muamele ile işlemden geçirildiği kısa gecikmeli olarak gerçekleştirildiği anlamına gelmektedir.

  • Çökme cezalarını saklamak için pek çok teknik çalıştırmaktadır. Bunların arasında paralel gerçekleştirme, tamponlama ve spekülasyon bulunmaktadır. Dahası, Intel netBurst mikro mimarisi komutları dinamik ve kullanım dışı olarak gerçekleştirmekte olup bu sayede her bir kişisel komutun gerçekleştirilmesi için harcadığı zaman her zaman belirleyici değildir. özel bir kod sekansının performansı, o kod sekansına girildiğinde makinenin bulunduğu konuma bağlı olarak çeşitlilik gösterebilir.

2.1.1. Intel NetBurst Mikro Mimarisi Pipeline’nın Görünüşü

Intel NetBurst Mikro Mimarisi Pipeline’ı üç kısım içermektedir:

  • İn – order yayın ön ucu

  • Kullanım dışı superscalar gerçekleştirme odağı

  • İn – order çekilme birimi

Ön uç, kullanım dışı çekirdeğine program sırasında komutlar sağlamaktadır. IA-32 komutlarını yakalayıp kodlarını çözmektedir. Kodu çözülmüş IA – 32 komutları mikro işlemlere (µops) dönüştürülmektedir. ön ucun birincil işi asıl program sırasında gerçekleştirme çekirdeğine µops’nin sürekli bir akımını beslemektedir.çekirdek bundan sonra döngü başına çoklu µops yayınlayabilmekte ve agresif olarak µops yeniden sıralayabilmekte olup, bu sayede girdilerinin hazır ve gerçekleştirme kaynaklarının mümkün olduğu bu µopslar mümkün olduğunca kısa sürede gerçekleştirilebilir. Geri çekilme kısmı, µops gerçekleştirme nedenlerinin asıl program sırasına bağlı olarak işlenmesini ve uygun mimari bölümlerinin güncellenmesini sağlamaktadır.

 

Şekil 2.6: Intel NetBurst Mikro Mimarisi Pipeline blok diyagramı
2.1.1.1Ön Uç

Intel NetBurst mimarisinin ön ucu iki kısımdan oluşmaktadır:

  • Fetch/kod çözüm birimi

  • Gerçekleştirme trace önbelleksi.

Ön uç pek çok temel işlevi gerçekleştirmektedir:

  • Gerçekleştirilmesi düşünülen IA – 32 komutlarını önceden yakalar.

  • Halihazırda daha önceden yakalanmayan komutları yakalar

  • Karmaşık komutlar ve özel amaçlı kodlar için mikro kodlar yaratır.

  • Gerçekleştirme trace önbelleksinden kodları çözülmüş komutları teslim eder.

  • Yüksek derecede ileri algoritma kullanarak dallanma önceden belirler.

Intel NetBurst mimarisinin ön ucu, yüksek hızlı, pipelinelı mikro işlemcilerdeki olağan sorunların bazılarına yönlendirilmek üzere tasarlanmıştır. Bu sorunların iki tanesi gecikmelerin ana kaynaklarını teşkil etmektedir:

  • Hedeften yakalanan komutların kod çözüm zamanları

  • Dallanmalar veya dallanma hedefinin önbellek hatlarının ortasında olması dolayısıyla boşa harcanan kod çözüm bant genişliği

Gerçekleştirme önbellekleri bu sorunların her ikisini de kodu çözülmüş IA – 32 komutlarını depolayarak yönlendirir. Komutlar bir çevirme motoru tarafından yakalanıp kodları çözülür. çevirme motoru kodu çözülmüş komutu, gerçekleştirme Trace önbelleğinde depolanmış olan traces olarak adlandırılan µopsların sekanslarına yerleştirir. Gerçekleştirme Trace önbelleği, koddaki dallanmaların sonuçlarının aynı önbellek hattına entegre olduğu yerlerde program gerçekleştirme akışının güzergahında bu µopsleri depolamaktadır. Bu, önbellekten komut akış hızını artırmakta olup aşırı dallanmış ve hiçbir zaman gerçekleştirilmeyen komutları daha fazla depolamadığından tüm önbellek depolama boşluğunun daha iyi kullanımını sağlamaktadır. Gerçekleştirme Trace önbelleği, çekirdeğe saat başına 3 µops’a kadar teslim edebilir.Gerçekleştirme Trace önbelleği ve çevirme motoru, dallanma önceden belirleme donanımı ile işbirliği içindedir. Dallanma hedefleri, dallanma önceden belirleme mantığı kullanan lineer adreslerini temel alarak önceden belirlenir ve mümkün olduğunca çabuk yakalanır. Dallanma hedefleri, orada önbelleklenmişlerse gerçekleştirme Trace önbelleğinden yakalanır, aksi halde hafıza hiyerarşisinden yakalanırlar. çevirme motorunun dallanımı önceden belirleme bilgisi en fazla eğilimli güzergahlar boyunca trace oluşturmak için kullanılmıştır.

2.1.1.2. Kullanım Dışı çekirdek

Komutları kullanım dışı olarak çekirdeğin gerçekleştirme yeteneği paralelliği mümkün kılmanın anahtar faktörüdür. Bu özellik, diğer µops, bir ileri sürülmüş kaynak veya veri için beklerken eğer bir µops gecikmiş ise, program sırasında daha sonradan ortaya çıkanların bunun etrafında devam edebilmesi için işlemcinin komutları yeniden düzenlemesine izin vermektedir. İşlemci, µops akışını düz kılmak için pek çok tampon kullanmaktadır. Bu, tüm işlemci pipeline bir gecikme yaşadığında, bir tamponda daha önceden sıraya sokulmuş (örnek olarak ön uçta) µops gerçekleştirilmesiyle veya (örnek olarak, çekirdekte) paralel olarak gerçekleştirilen diğer işlemler vasıtasıyla gecikmelerin kapsanabileceğini vurgulamaktadır.Bu belgede tanımlanan gecikmeler bu çerçevede anlaşılmalıdır. çekirdek paralel gerçekleştirmeyi tesis etmek için tasarlanmıştır. Yayın portları vasıtasıyla döngü başına altı µops’a kadar gönderebilir. Döngü başına altı µops trace önbelleksini aşmış olup µop bant genişliğini geri çekmekte olduğuna dikkat ediniz. çekirdekteki daha yüksek bant genişliği 3 µops’dan daha büyük zirve patlamalarına ve değişik gerçekleştirme portlarına µops yayınlamada daha büyük esnekliğe izin vererek daha yüksek yayınlama oranlarının elde edilmesine izin vermektedir.çoğunluk gerçekleştirme birimleri, her bir döngüde yeni bir µop gerçekleştirerek başlayabilmektedir, bu sayede pek çok komut her bir pipeline için aynı anda uçuşta olabilir. Bir dizi aritmetik mantıksal birim (ALU) komutları döngü başına iki başlatabilir, ve pek çok kayar- nokta komutları iki döngü başına bir başlatabilir. Son olarak, µops, veri girdileri hazır ve kaynakları mevcut olduğunca gerçekleştirme, kullanım dışı başlatabilir.

2.1.1.3. Geri çekilme

Geri çekilme kısmı, gerçekleştirme çekirdeğinden gerçekleştirilmiş µops sonuçlarını alır ve sonuçları işler, bu sayede uygun mimari durum asıl program sırasına bağlı olarak güncellenir. Semantik olarak doğru gerçekleştirme için, IA – 32 komutlarının sonuçları geri çekilmeden önce asıl program sırasına sokulmalıdır. Komutlar geri çekildikçe muafiyetler doğabilir. Bu yüzden, muafiyetler spekülatif olarak oluşamaz, doğru sırada oluşurlar ve makine bir muafiyetten sonra doğru şekilde yeniden çalıştırılabilir.Bir µop tamamlandığında ve sonucunu varış noktasına yazdığında, geri çekilir. üç µops’a kadar döngü başına geri çekilebilir. Reorder Buffer (ROB) tamponların µopsu tamamladığı, mimari durumu sıraya güncellediği ve muafiyetlerin sıralanmasını yönettiği işlemcideki birimdir.Geri çekilme kısmı aynı zamanda dallanmalerin izlerini tutmakta olup güncellenmiş dallanma hedef bilgisini Dallanma Target Buffer (BTB)’e dallanma geçmişini güncellemek için gönderir.

2.1.1.4. Ön Uç Pipeline Detayı

Ön uç işlemi hakkındaki aşağıdaki bilgiler, ön yakalama, dallanma önceden belirleme ve gerçekleştirme trace önbellek işlemlerine bağlı olarak yazılıma ince ayar yapmak için faydalı olabilir.

2.1.1.5. Ön Yakalama

Intel NetBurst mikro mimarisi üç ön yakalama mekanizmasını desteklemektedir:

  • İlki, sadece bilgiler içindir.

  • İkincisi, sadece veriler içindir.

  • üçüncüsü ise kod ve veriler içindir.

İlk mekanizma, otomatik olarak komutları önceden yakalayan donanım komut yakalayıcısıdır. İkincisi, ön yakalama komutlarını kullanarak verileri önbelleklere yakalayan yazılım kontrollü bir mekanizmadır. üçüncüsü ise, otomatik olarak verileri ve komutları birleştirilmiş ikinci seviye önbelleğe yakalayan bir donanım mekanizmasıdır.

 

Şekil 2.7: Pentium IV’ ün iç yapısı

2.2. Sistem veriyolu

Intel geçtiğimiz iki sene boyunca sistem veriyolunda AMD’nin hep gerisinde kaldı. 133Mhz sistem veri yolu frekansında çalışan Pentium3’leri bile AMD’nin Duron işlemcisi ile, sistem veri yolunda da başa çıkamadı. çünkü Intel’in kullandığı GTL+ sistem veri yolu, AMD’nin kullandığı EV6 veri yolundan çok daha az gelişkin idi. Bu durum Pentium IV ile tersine döndü. Yeni Pentium IV AGTL+ veri yolunu kullanıyor. Bu veri yolunda bazı önemli modifikasyonlar yapılmıştır.

Pentium III’lerde sistem veri yollarının en hızlısı maksimum 1.06GB/s’lik bant genişliğine sahip iken, Pentium IV’te bu rakam tam 3.2 GB/s’ye çıkmaktadır. Pentium IV’ ün veri yolu Pentium III’ den daha da yavaş olan 100Mhz’te çalışmaktadır. Pentium IV’ ün veri yolu her saat çevriminde 4 adet veri transferi yapabilmektedir. Efektif çalışma frekansı da 400Mhz olmaktadır. Veri yolunun genişliği, Pentium III’lerdeki gibi 64 bittir. Hesaplanıldığında saniyede maksimum 3.2GB/s’lik bir bant genişliği elde edilir. Intel bu veri yoluna “Quad-Pumped” (4 kat pompalanmış, güçlendirilmiş) adını vermektedir.

AMD’nin geçtiğimiz senelerde sistem veri yolunda daha üstün olduğu bahsedilmişti. Firmanın kullandığı Alpha’nın EV6 veriyolu, hem Athlon hem de Duron’lar da saniyede maksimum 1.6 GB sunabilen bir sistem veri yoluna sahiptirler. Bu veriyolu da 100Mhz’te çalışmaktadır. Her çevrimde iki kere veri taşınır. Efektif çalışma frekansı 200Mhz olurken, bant genişliği de maksimum 1.6GB/s’dir. Gelecekte AMD bu veriyolunun çalışma frekansını 133Mhz’e çıkaracak çalışmalar içerisindedir. Bant genişliği de saniyede maksimum 2.1GB’a ulaşacaktır. Bu ekstra bant genişliğinden yeni çıkacak olan ve 133Mhz DDR veriyolu ile uyumlu olacak olan yeni AMD işlemciler faydalanabileceklerdir. Yakında AMD’nin 1Ghz üzerinde, 133Mhz DDR kullanan birkaç mikro işlemci tanıtması beklenilmektedir.Intel Pentium IV’ ün kullandığı sistem veriyolu gelecekte AMD’ nin gelecekte 133 Mhz’lik DDR veriyolundan bile çok daha yüksek bant genişliği sunmaktadır.

Intel, Pentium III’de sunduğundan %202 daha yüksek bant genişliğini sunan, neredeyse 3 misli daha yüksek bir bant genişliğini, Pentium IV’te bulunmaktadır. Pentium IV oldukça yüksek frekanslarda çalışan bir işlemcidir. Piyasadaki 1.4Ghz’lik işlemci, Pentium IV işlemcinin tüm potansiyelini temsil etmemektedir. 2001’in yaz aylarında 2Ghz’lik ve daha yüksek frekanslarda çalışan Pentium IV ‘ler de piyasaya sürülmek üzere hazırlıklar yapılmaktadır. L2 önbellek bant genişlikleri Pentium III de 10GB/s’ler civarında idi, Pentium IV’lerde 48 GB/s’ler seviyesindedir. Eğer veri, önbelleklerde bulunamazsa o zaman hafıza modüllerinden alınması gereklidir. Verinin hafıza modüllerinden alınması esnasında eğer veri gerekli hızda işlemciye ulaştırılamazsa, işlemcinin hiçbir hesaplama yapmaması ihtimali çok yüksektir. Yeni 3.2GB’lık veriyolu da eski 1.06GB/s’lik veriyoluna göre, veriyi çok daha çabuk bir şekilde işlemciye ulaştırabileceği için bu çok akılcı bir yaklaşımdır.

Daha hızlı veriyolunun ikinci bir avantajı da NetBurst mimarisinin dizayn hedefleri düşünüldüğünde ortaya çıkmaktadır. Pentium IV’ün hedef uygulamalarının çoğu (DVD, MP3, Video işleme, Internet üzerinden video gönderimi gibi) yüksek miktarlarda veri transferi gerektirirler. Dolayısı ile gerek hafıza gerekse sistem veri yollarının bu gibi uygulamaların emrine sunabileceği ekstra bant genişliği, oldukça fazla işe yaramaktadır. Intel’inde bu hedeflerini göz önünde tutarak 1.06 GB/s’lik veriyolunun yetersiz olacağına ve yeni 3.2GB/s’lik veriyolunu kullanılmasının daha uygun olacağına karar vermiştir. Pentium3, sadece %33’lük ekstra bant genişlikleri ile birlikte oldukça etkileyici performans artışları sağlayabilmektedir.

2.3. Pentium IV’ ün önbellekleri

Intel NetBurst mikro mimarisi, çip üstü önbelleğinin üç seviyesine kadar destekleyebilir. çip üstü önbelleklerin sadece iki seviyesi, masaüstü ortamı için bir ürün olan, Pentium 4 işlemcide geliştirilmektedir. İşlemcinin gerçekleştirme çekirdeğine en yakın seviye, birinci seviye, komutlar ve veriler için ayrı önbellekler içermektedir: ileri birinci seviye komut önbelleksi olan bir birinci seviye veri önbelleksi ve trace önbelleksi. Tüm diğer önbellek seviyeleri paylaşılmaktadır. önbellek hiyerarşisindeki seviyeler, seviye i’deki bir hattın seviye i+1’de de olduğu anlamına gelmediği gerçeği anlamına gelen, kapsayıcı değildir. Tüm önbellekler bir pseudo – LRU (en az kullanılan) değişim algoritması kullanmaktadır.

Bir ikinci seviye önbellek ıskası, hafıza alt sistemine sistem veriyolu ara yüzü boyunca bir işlem başlatır. Sistem veriyolu ara yüzü, ölçülebilir veriyolu saatinin hızını dmrt katına çıkaran etkin bir hız elde eden ölçülebilir bir veriyolu saati kullanarak desteklemektedir. Eğer veriyolu tıkanıklığı yok ise, hafızaya erişim için 6 – 12 veriyolu döngüsü ve işlemci dahilinde veriyoluna ve geri gidebilmek için 12 işlemci döngüsünün sırasında almaktadır. Her bir veriyolu döngüsü pek çok işlemci döngüsüne eşittir. İşlemci saat hızının ölçülebilir veriyolu saat hızına oranı veriyolu oranı olarak adlandırılmaktadır. örnek olarak, 100 MHz veriyolu için bir veriyolu döngüsü, bir 1.50 GHz işlemci üstünde 15 işlemci döngüsüne eşittir.

Bugüne kadar tüm işlemcilerde kullanılan önbellek belleklerde klasik L2 ve L1 önbellek konfigürasyonları mevcut idi. Intel bu kuralı Pentium IV ile değiştirdi. Pentium IV’ün L2 önbelleğinde herhangi bir yenilik söz konusu değil iken, L1 önbelleğinde büyük değişiklikler mevcuttur. özellikle dikkat edilmesi gereken Execution Trace önbellek konsepti çok önemlidir. Intel bu konsepti çok akıllıca kullanmıştır.

2.3.1. Geliştirilmiş Transfer önbelleği (Advanced Tranfer Cache)

Bu önbellek 0.18 mikron Coppermine Pentium III’lerden beri hayatlarımızda yerini almış durumdadır. L2 önbelleği konusunda Intel’in, AMD’ye karşı çok daha üstün durumda olduğu bir gerçektir. Pentium III’te oldukça başarılı bir iş çıkaran bu önbellek konsepti, Pentium IV’te de aynen korunmuştur.

Geliştirilmiş Transfer önbelleği ile kast edilen 256 bit veriyolu genişliğine sahip, düşük latency’li (veriyi L2 önbelleği de daha çabuk bulabiliyor) L2 önbelleği. Coppermine Pentium III’lerin, Athlon’lar karşısında düşük performans sunmamalarının en büyük sebeplerinden biri bu gelişkin L2 önbelleği konseptiydi. Bu gün kullanılan işlemcilerinin L2 önbelleklerinin bant genişliklerine göz atalım. Grafikte 1.4 ve 1.5Ghz’lik Pentium IV’lerin, 1Ghz’lik Pentium III’ün ve 1.2Ghz’lik AMD Thunderbird işlemcisinin L2 önbelleği belleklerinin sunduğu bant genişliklerini bulabileceksiniz. Thunderbird ve Pentium III’ün şu an için mevcut olan en hızlı versiyonları 1.2 ve 1Ghz’lik olduklarından dolayı, bunlara grafikte yer verildi.

Grafikten de görüldüğü gibi Pentium IV’lerin L2 önbelleklerinin sunduğu bant genişlikleri neredeyse saniyede 50GB’lara ulaşabilmektedir.1,2 Ghz’lik Thunderbird’ün L2 önbelleğinin bant genişliği, daha düşük frekansta çalışan 1 Ghz’lik Pentium III’den bile çok daha azdır. Hem AMD hem de Intel işlemci ile bütünleşik ve dolayısı ile işlemci ile aynı frekansta çalışan önbellekler kullanmasına rağmen, Intel işlemcilerinin veriyolu genişliği, AMD’nin işlemcilerinin 4 katıdır (Intel Pentium III ve Pentium IV’de 256 bit, AMD thunderbird’de 64 bit). Bu yüzden arada çok büyük farklar söz konusu olmaktadır. Pentium IV açısından L2 önbelleğinin bant genişliği işlemcinin veri ile yeteri kadar beslenmesi açısından çok önemlidir. Zaten bu yüzden Intel’de saniyede 40-50GB’lık bant genişliğine sahip olan L2 önbellekleri işlemcinin emrine sunmuştur.

 

Şekil 2.8: Mikroişlemcilerin bant genişliklerini gösteren grafik

L2 önbelleklerin performanslarının değerlendirilmesinde çok önemli olan bir hususta L2 önbelleklerin latency’sidir. Bu da aşağıda bulunan grafikte anlatılmaktadır.

 

Şekil 2.9: Mikroişlemcilerin latency değerleri

L2 önbellek Latency’lerde de Intel işlemcilerinin üstünlüğü vardır. Coppermine’lar ile L2 önbelleğinin üstünlüğü uzunca bir dönemdir Pentium III’ü, Athlon’a karşı başarılı bir şekilde korumayı başarabilmişti. Aynı konsept Pentium IV’ü de beslemek ile görevlidir. Hem Pentium III hem de Pentium IV, thunderbird’e göre önemli oranda daha düşük bir L2 önbellek latency değerine sahiptir. Latency, bir verinin bulunması için geçen süre demektir. Pentium III ve Pentium IV’ün L2 önbellekleri veriyi, Thunderbird’ün L2 önbelleklerine göre daha çabuk bulabiliyorlardır (7 saat çevrimine karşılık, 11 saat çevrimi). Aradaki 4 çevrimlik fark öyle küçümsenecek bir rakam değildir. Advanced Transfer önbellek denilen de budur. Pentium III’den buyana günümüzde olan bu konsept gerçekten çok gelişkindir. Intel nasıl sistem veriyolunun bant genişliğinin önemli oranda arttırdıysa aynı yöntemi Pentium IV’ün L2 önbelleği içinde uygulamıştır. Intel, her alanda Pentium IV’ün dizayn hedeflerine mümkün olduğunca iyi hizmet eden bir işlemci olmasına çalışmıştır. Esas radikal değişiklikler ise L1 önbelleklerinde olmuştur.

2.3.2. Execution Trace Önbelleği

Intel NetBurst mikro mimarinin ön ucu, saat başına bir komut azami oranında komutların kodlarını çözen tek bir kod çözücüye sahiptir. Karmaşık komutlar mikro kod ROM’un yardımını kullanmaktadır. Kod çözüm işlemi, takip eden bölümde gözden geçirilen Execution trace önbelleğine bağlıdır.

2.3.3. Execution Trace Önbelleği

 (TC), Intel NetBurst mikro mimarisinde birincil komut önbelleksidir. TC kodu çözülmüş IA – 32 komutları veya µops depolamaktadır. Bu, sıkça gerçekleştirilen kod üstüne kod çözüm maliyetlerini, template sınırlamaları ve bir dallanma yanlış belirleme üzerine komutların kodlarının çözümü için ek gecikme gibi, ortadan kaldırmaktadır.

Pentium IV’ün can alıcı noktası, klasik L1 önbellek konseptinin kullanılmadığı ve yerine daha verimli bir konseptin geldiği noktadır. Pentium IV’ ün L1 önbelleğinin instruction L1 önbelleği (işlemcinin uygulayacağı komutların bulunduğu) şuandaki kullanmış olduğumuz işlemcilerden çok daha farklıdır. Klasik işlemcilerde L1 önbellek ikiye ayrılır. Bunlar; instruction L1 önbellek (komutları saklayan) ve data L1 önbelleğidir (komutların işleyeceği verileri saklayan). Bu hem Pentium III’de hem de AMD Athlon mimarisinde de böyledir. örneğin Pentium III’ün hem komut L1 önbelleği hem de veri L1 önbelleği 16’şar KB’ tır. Athlon’da ise bu rakam 64’er KB’a yükselmektedir. Dolayısıyla Pentium III toplam 32 KB, Athlon ise 128 KB L1 önbelleğe sahiptir. Bu durumun Athlon açısından büyük bir avantaj olduğu test sonuçları ile doğrulamıştır.

Pentium 4 işlemci gelişiminde, TC 12K µops’a kadar tutabilir ve döngü başına üç µops’a kadar teslim edebilir. TC, gerçekleştirme çekirdeğinde gerçekleştirilmesi gereken µops tamamını tutmamaktadır. Bazı durumlarda, gerçekleştirme çekirdeği, trace önbelleksinde depolanmış olan µop traceleri yerine bir mikro kod akışını gerçekleştirmeye ihtiyaç duymaktadır.

Pentium 4 işlemci, sadece bir kaç komutun mikro kod ROM içermesi gerekirken en sıkça gerçekleştirilen IA – 32 komutlarının etkin ve sürekli olarak trace önbelleğinden gelmesi için optimize edilmiştir.

Şekil 2.10: Intel NetBurst Mikro Mimarisi Pipeline blok diyagramı

2.3.4. Trace Önbelleği

Pentium IV’ de farklı olan; Intel Pentium IV’ de bugüne kadar kullanılan klasik komut L1 önbelleğini kullanmış olmasıdır. Bunun yerine yeni geliştirdiği Trace önbellek konseptini kullanıyor olmadır. Her iki önbelleğin amacıda komutları, işlemcinin ihtiyaç duyduğu anda sunabilmektir. Buraya kadar her şey aynı olmasına rağmen asıl fark hem Athlon hem de Pentium III’ün aksine Pentium IV’ün L1 komut önbelleği (Trace önbelleği) çözümlenmiş komutları saklıyor olabilmesidir.

2.3.4.1. Bir İşlemci İçin Decoding’in Önemi

Bir işlemcinin işleyeceği komutlar, sistemin hafızasından gönderildiği anda, bu komutlar işlemcinin anlayacağı dilde değildir. Bu komutların işlemcinin anlayacağı dile dönüştürülmesi gerekir. Programcının kullandığı komutların, işlemcinin anlayabileceği komutlara dönüştürülmesi işlemine çözümleme/decoding denir. Bu çözümlemeden, işlemcimizin çözümleme üniteleri sorumludur.

Çözümleme işlemcinin en fazla zamanı harcadığı işlemlerden biridir. Dolayısı ile bir işlemcinin sadece hesaplama ünitelerinin güçlü olması, çözümleme üniteleri güçlü değilse yeterli değildir.

Örnek verecek olunursa Pentium III ve Athlon’ları ele alınabilir. Her ikisi de aynı anda üç ayrı komutu parçalamak/dönüştürmek ile uğraşabilir. Ama Athlon aynı anda üç kompleks kodu parçalayabilir. Pentium III ise kompleks kodlar karşısında Athlon kadar rahat davranamaz. Dolayısı ile Athlon’un kod üniteleri daha başarılıdır ve işlemciyi daha iyi beslemektedir. Bu da önemli bir avantajdır. Decoding işleminden sonra Pentium III ve AMD Athlon gibi daha klasik mimarilerde çözümlenmiş olan kodlar işlemciye ulaştırılır. Çözümlenmiş olan daha küçük kodlara (örneğin bir programın kullandığı kod, çözümlendikten sonra işlemcinin anlayacağı 3-4 veya 100’lerce küçük kod haline getirilir) dönüşümden sonra artık işlemcinin hesaplama üniteleri (FPU ve INT) bu kodları işlerler ve sonuçları gerekli olan yerlere kayıt ederler (Önce register/yazmaçlar ve daha sonra L1, L2 ve hafıza).

2.3.4.2. İşlemcinin Kod Çözümü

Pentium IV’de aynı AMD Athlon gibi aynı anda üç ayrı komutu parçalayabilmektedir. Fakat Pentium IV’ün sahip olduğu Trace önbellek sayesinde sahip olduğu çok önemli bir avantaj vardır. Decoding ile Trace önbelleği ilişkilendirecek olunursa farklar ortaya çıkar. Bu fark çözümlemede işlenecek olan kodlar instruction/komut L1 önbelleğinden alınıp çözümleniyor ve daha sonra işlemcinin hesaplama ünitelerine minik kodlar olarak gönderiliyordu. Aynı komut binlerce defa işlemciniz tarafından, değişik veriler ile işlenecektir. Dolayısı ile Pentium III ve Athlon gibi klasik işlemcilerde aynı komut binlerce defa çözümleme ünitelerinde çözümlenip, hesaplama ünitelerine gönderilecektir. Eğer aynı komutu bu kadar çok işleyecekse neden her defasında oldukça fazla zaman kaybına sebep olan decoding ünitelerini beklemek zorunda kalalım? Bunun yerine o komutu işlemcinin hafızasına Trace önbelleğinde tutmak ve ihtiyaç duyulduğu anda direkt olarak işlemci hesaplama ünitelerine, decoding safhası için zaman kaybedilmeden ulaştırılmaktadır. Böylece binlerce defa kod çözümlenmesi için beklemekten kurtulunmuş olunur.

Trace önbelleği, klasik işlemcilerdeki gibi komutların saklanmasından sorumludur. Fakat fark Trace önbelleğinin çözümlenmiş/decoding’ten geçmiş minik kodları saklıyor ve işlemci ihtiyaç duyduğu vakit direkt olarak hesaplama ünitelerine ulaştırıyor olmasıdır. Bu esnada Pentium III ve Athlon/Thunderbird’lerde olduğu gibi aynı kodun decoding/ çözümlenmesi için beklenmek zorunda kalınmamıştır. Bu durum da zaman olarak büyük kazançlar sağlamıştır. Trace önbellek konsepti çok başarılı konsepttir. Önümüzdeki yıllarda diğer üreticilerinde benzer çözümleri kullanmaya başlayacağını söylemek mümkündür.

Intel KB açısından Trace önbelleğin boyutu hakkında bilgi vermemektedir. Bunun yerine Trace önbelleğin 12000 minik kod (AMD de “MacroOps”, Intel de “Traces” denilmektedir) saklayabildiği bilgisini vermektedirler. Trace önbelleğin boyutu ile L2 önbelleğinin boyutunu hesaplanarak 96KB olduğu sanılmaktadır. Fakat bu işlemin doğruluğu bilinmemektedir. Dolayısı ile Pentium IV’ün hem Pentium III hem de AMD Athlon/Thunderbird’e göre hem daha verimli hem de daha büyük bir komut L1 önbelleğine sahip olduğu söylenebilir.

Şekil 2.11: Trace bellek
2.3.4.3. Trace önbelleği ile Dallanma Hedef Tamponu Arasındaki İlişki

Trace önbelleğinde saklanan minik kodlar, BTB (Branch Target Buffers, Dallanma Hedef Tamponu) yardımı ile seçilmektedir. Dolayısı ile Trace önbelleğinde en çok kullanılan ve işlemcinin en çok ihtiyaç duyabileceği kodların çözümlenmiş halleri olan minik kodların saklanması öncelik sahibidir. Dal Tahmini, işlemci bir hesaplamaya devam edecek iken, bir programın sonucunu bekliyor ise, tahmin ederek yoluna devam ediyor. Daha sonra tahmin yanlış ise sil baştan her şey yeniden başlıyor. Bunun Pentium IV için olumsuz bazı yanları mevcuttur.

Trace önbellek her saat çevrimi/döngüsünde üç ayrı minik kodu işlemcinin hesaplama ünitelerine gönderebilmektedir. Bu aşağı yukarı AMD Athlon mimarisi ile aynı özelliği göstermektedir. Yalnız aynı kodun sürekli olarak parçalanması gereken, NetBurst mimarisinin hedef aldığı uygulamalarda (MP3 çözümlenmesi, DVD deşifre edilmesi, 3D uygulamalar, Video işlemesi…) Pentium IV’ün Trace önbelleği kodları deşifre edilmiş/parçalanmış şekilde sakladığından dolayı, hem Athlon hem de Pentium3’e göre çok daha avantajlıdır. Diğer iki işlemcide her seferinde kodun parçalanması işlemini sil baştan yapmak zorundadırlar ve bu da büyük zaman kayıpları anlamına gelmektedir.

Pentium IV’ün trace önbellek gibi bir konsepte ihtiyacı vardır. çünkü işlemcinin hesaplama ünitelerinin sürekli olarak beslenebilmesi gereklidir. Pentium IV’ün esas hedefi olan uygulamalarda sürekli olarak benzer komutların uygulanması söz konusudur. Dolayısı ile neden her seferinde kod çözümü için zaman kaybedilsin ki? Trace önbelleğinin geliştirilmesinin diğer bir sebebi de, Pentium IV’ün yanlış dal tahmini esnasında, mimarisi yüzünden (daha büyük Pipeline’lar) ödeyeceği bedeli azaltmaktır.

2.3.5. L1 Data önbellek

Şekil 2.12: Grafikte L1 önbellek kapasiteleri görülmektedir.

Pentium IV’de komut L1 önbelleği olarak daha gelişkin Trace önbellek konseptinin nasıl kullanıldığından bahsedilmiştir. L1 data önbelleğinde de radikal değişiklikler, Pentium IV’ ün L1 data önbelleği konsept olarak, Athlon ve Pentium III ile aynıdır. Sadece 8KB’tır. Bu Pentium III’ün 16 KB’lık L1 data/veri önbelleğinden bile daha küçüktür. Athlon’un 64KB’lık L1 veri önbelleğinden ise çok daha küçüktür. Neden Intel sadece 8KB’lık bir L1 veri önbelleği kullanmıştır? Oldukça karmaşık ve büyük olan Pentium IV’ün, üretim maliyetlerini arttırmamak içindir. Pentium IV şu haliyle bile Pentium III’ün iki mislinden daha büyük bir işlemci merkezine sahip ve dolayısı ile oldukça maliyetli birde Trace önbelleğinin muhtemel 90-100KB’lık büyüklüğü gibi bir L1 veri önbellek işlemciyi çok daha pahalı hale getirebilirdi. Pentium IV’ ün bu küçük L1 veri önbelleğinin işlemcinin performansını olumsuz etkileyeceği açıktır. Gene de bu durumun etkisini Pentium IV’ün gelişkin L2 önbelleğinin çok yüksek bant genişlikleri biraz olsun azaltacaktır.

2.4. Dallanma Tahmini (Branch Prediction)

Dallanma önceden belirlemesi, pipelinelı işlemcinin performansı açısından çok önemlidir. Dallanma önceden belirleme, dallanma çıktısı belirgin olmadan çok önce işlemcinin komutları gerçekleştirmeye başlamasını sağlamaktadır. Dallanma gecikmesi, doğru önceden belirlemenin yokluğunda ödenen bir cezadır. Pentium IV işlemci için, doğru şekilde önceden belirlenen komut için dallanma gecikmesi sıfır saat döngüleri kadar az olabilir. Yanlış belirlenmiş dallanma için dallanma gecikmesi pek çok döngü olabilir; tipik olarak bu pipelinenın derinliğine denktir.

Intel NetBurst mikro mimarisindeki dallanma belirleme, şartlı veya şartsız aramalar ve geri dönüşler ve dolaylı dallanmalar dahil tüm yakındaki dallanmaları belirler. Uzak transferleri belirlemez, örnek olarak, uzak aramalar, işaretler ve yazılım kesintileri.

Ek olarak, pek çok mekanizma, alınan dallanmaların maliyetini düşürmede ve dallanmaların çok daha doğru olarak belirlenmesinde yardımcı olması için geliştirilmiştir:

  • Dallanma hedef tamponu (BTB) kullanan komutların lineer adreslerini temel alan dallanmaların hedefi ve yönünü dinamik olarak belirler.

  • Eğer herhangi bir dinamik önceden belirleme mümkün değilse veya geçerli değilse, hedefin ofsetini temel alan çıktıyı statik olarak önceden belirler: bir arka taraf dallanma alınacağı için önceden belirlenmiş, bir ön Dallanma alınmayacağı için belirlenmiş.

  • Geri dönüş adresleri 16 girişli geri dönüş adres yığınını kullanarak önceden belirlenmektedir.

  • Komutların traceleri Dallanma cezalarından kaçınmak için alınan dallanmaları önceden belirleme boyunca yaratılmıştır.

2.4.1. Statik Önceden Belirleyici

Dallanma komutunun kodu çözülünce, dallanma yönü (ileri veya geriye) bilinmektedir. Dallanma için BTB’ de herhangi bir geçerli girdi yoksa, statik önceden belirleyici dallanma yönünü temel alan bir önceden belirlemeyi gerçekleştirir. Statik önceden belirleme mekanizması, alındığı şekilde, loop kapatan dallanmalar gibi (negatif değişime sahip olanlar) arkaya doğru şartlı dallanmaları önceden belirler. İleri dallanmalar alınmamak için önceden belirlenir.

2.4.2. Dallanma Hedef Tamponu

Bir dallanma geçmişi mevcuttur, Pentium IV işlemci, önceden karşılaşılmış dallanmanın geçmişini temel alarak, Dallanma komutu kod çözümüne uğramadan önce bile Dallanma çıktısını önceden belirleyebilir. Bir komutun lineer adresini temel alan dallanmanın hedefi ve yönünü önceden belirlemek için bir dallanma geçmiş tablosu ve bir dallanma hedef tamponu (beraberce BTB olarak adlandırılan) kullanmaktadır. Dallanma geri çekildiğinde, BTB hedef adres ile güncellenir.

2.4.3. Geri Dönüş Yığın

Geri dönüşler her zaman alınır, ancak pek çok çağrı sahasından bir prosedür çağrıldığında tek bir önceden belirlenmiş hedef yeterli olmaz. Pentium 4 işlemci, bir dizi prosedür çağrısı için geri dönüş adresini önceden belirleyebilen bir Geri Dönüş Yığınına sahiptir. Bu, işlev çağrılarını içeren bir dönmesiz döngülerin kazancını artırmaktadır. Aynı zamanda, prosedür çağrı baş üstünün geri dönüş ceza kısmı azaltıldığından belirli prosedürleri sıraya sokmak için duyulan ihtiyacı hafifletmektedir.

Dallanmanın yön ve hedef adresi avans olarak doğru şekilde önceden belirlenmiş olsa bile, alınan bir dallanma, eğer dallanma hattı bitirmez ve hedef hattı başlatmazsa, kod çözümü bant genişliği, dallanmayı anında takip eden ve hedeften önce gerçekleşen komutlar için boşa harcanmış olduğundan, tipik bir işlemcide paralelliğin mümkünlüğünü düşürebilir. Dallanma önceden belirleyicisi, ön uçtan komut teslimini azami hale getirerek tek bir trace önbellek hattında bir arada varolması için bir dallanma ve hedefine izin vermektedir.

2.4.4. Dallanma İpuçlar

Pentium 4 işlemci, performanslarını geliştirmek için dallanma belirleme ve trace oluşum donanımına ipuçlarını yazılımın sağlamasına izin veren bir özelliğe sahiptir. Bu ipuçları şartlı dallanma komutlarına ön ekler şeklini alırlar. Bu ön ekler Pentium 4 öncesi işlemci gelişimleri için herhangi bir etkiye sahip değildirler. Dallanma ipuçları herhangi bir etkiyi temin etmemek olup işlevleri gelişimler boyunca çeşitlilik gösterebilir. Yinede, dallanma ipuçları mimari olarak görülebilir olduklarından ve aynı kod çoklu gelişimlerde çalışabildiğinden, tüm gelişimlere yardımcı olabilecekleri durumlarda sadece yerleştirilmelidirler.

Dallanma ipuçları çevirme motoru tarafından yorumlanmakta olup dallanma önceden belirleme ve trace inşa donanımına yardımcı olmaları için kullanılmaktadırlar. Sadece trace inşa zamanında kullanılmakta olup halihazırda inşa edilmiş traceler üstünde herhangi bir etkileri yoktur. Yönsel ipuçları, bir BTB önceden belirlemesinin mümkün olmadığı durumda statik (öne – alınan, arkaya – alınmayan) önceden belirlemeyi aşırı yüklemektedir. Dallanma ipuçları kod boyutunu hafifçe artırması sebebiyle, yönsel ipuçlarını sağlamak için tercih edilen yaklaşım kodun aşağıdaki şekilde ayarlanmasıdır:

  • Çok daha muhtemel olan ön dallanmaler alınmayan güzergahta olmalı; ve

  • Çok daha muhtemel olan geri dallanmaler alınan güzergahta olmalıdır. Trace inşa edildiğinde mevcut olan dallanma önceden belirleme bilgisi, kodun hangi güzergah veya trace boyunca alınacağını belirlemek için kullanıldığından, yönsel dallanma ipuçları en muhtemel güzergah boyunca tracelerin inşa edilmesine yardımcı olabilir.

2.4.5. Gerçekleştirme Çekirdek Detayı

Gerçekleştirme çekirdeği, en etkin şekilde en olağan durumları muamele ederek tüm performansı optimize etmek amacıyla tasarlanmıştır. Donanım, nadir çerçevede en az sık olan işlemler kapsamında, muhtemel en hızlı şekilde en sık çerçevedeki işlemleri gerçekleştirmek için tasarlanmıştır. çekirdeğin bazı kısımları, sıradan bir koşulun daha hızlı gerçekleştirmeye izin vermek amacıyla tutulduğu şeklinde kurgulayabilir. Eğer yapmazsa, makine oyalanabilir. Bunun bir örneği öne doğru depolamayla ilgilidir. Eğer bir yük bir depolamaya bağlı olmamaya başlarsa, yük hafızadan gerçek veri depolanana dek bekletilir ve daha sonra devam eder.

BTB, işlemcinin Dal Tahmini yaparken danıştığı Dallanma Target Buffer’dır. Dal Tahmini modern işlemcilerin hepsinin başvurduğu bir yöntemdir. Ofis uygulamaları gibi yazılımlarda Dal Tahminin neredeyse hiçbir faydası yok iken, sürekli aynı işi yapan 3D uygulamalar, MP3 çözümlemesi, DVD çözümlemesi, Ses ve Video işlenmesi gibi uygulamalarda Dal Tahmini resmen harikalar yaratmaktadır. İşlemcinin bir hesabın sonucu için beklemesine gerek bırakmadan, kendi tecrübelerini tuttuğu BTB benzeri, anı defterine bakıp, bir karar verir ve hesaplamaya devam eder. Eğer ki daha sonra hesaplanması beklenen işlemin sonucu bitince, tahminin doğru olduğu ortaya çıkarsa, büyük bir kazanç elde edilmiş olunur. O esnada işlemci boş beklemedi. Bunun yerine hesaba devam etti. Ama eğer ki tahmin yanlış ise yapılan tüm işlemler boşa gitmiş olur ve işlemcinin sil baştan işe başlaması gerekir. Bunun Pentium IV gibi işlemciler için dezavantajları vardır. Intel bunun için de önlemler almış ama dediğimiz gibi bazı dezavantajlar vardır.

Şekil 2.13: Dallanma tahmini giriş sayıları

2.4.6. Dallanma Tahmini Giriş Sayıları

Bu sorunun cevabı tamamen işlemciye bağımlıdır. İşlemcinin de BTB’ sine (veya mevcut işlemci mimarisi için ne deniyorsa) bağımlıdır. örneğin Pentium III’ün Dal Tahmini esnasında danışabileceği yazmaçları 512 girişi hafızada tutabilir. Athlon mimarisi bu konuda çok daha avantajlı ve 2048 girişi hafızada tutabilir. Pentium IV de ise tam 4096 girişi vardır. Ama aradaki farklar giriş sayıları ile doğru orantılı değildir. örneğin Pentium III bile tahminlerinde %90’lık bir başarı sağlayabilir. Bu oran Athlon’da biraz daha yüksek ve Pentium IV’te ise (Intel’e göre) %95’ler seviyesindedir. bu hususta %2-3 bile oldukça önemlidir.

Pentium IV’ün daha fazla girişi tutmasının bir sebebi vardır. Eğer ki yanlış bir dal tahmini olursa Pentium IV’ün ödeyeceği bedelin, Athlon ve Pentium III’e göre daha ağır olacaktır. Intel’de bunu istememektedir ve Pentium IV’ün mümkün olduğunca isabetli tahminler yapmasını istemektedir. Dal Tahmininde %100’lük bir başarılı, sadece Pentium IV için değil, hiçbir işlemci için söz konusu değildir.

Intel tarafından burada dizayn amaçlarına ulaşmak için kullandığı NetBurst mimarisinin, dezavantajlarını azaltmak için (Burada daha büyük pipeline’nın yanlış dal tahmininde ödediği bedel) bir önlem alınmıştır.

2.5. Hyper-Pipelined Teknolojisi

Şekil 2.14: Pentium IV’ün Pipelinelarının Görünümü

Pentium IV’ ün dizayn  amaçlarının başında “Yüksek çalışma frekanslarına ulaşmak ve bu frekanslarda stabil olarak çalışmak” vardır. Intel açısından diğer dizayn amaçlarından daha da önemli olan Hyper-Piplined teknolojisi üzerinde durmak gerekir. Neden Intel yüksek frekanslarda çalışmaya bu kadar önem vermektedir.

Bir işlemcinin performansını sadece çalışma frekansı belirlemez. Bunu bir örnek ile açıklayabiliriz.çok daha gelişmiş mimari üzerine inşa edilmiş bir İşleci’nin 400Mhz’lik versiyonu, daha az gelişkin bir mimari kullanan bir işlemcinin 600Mhz’lik modelinden çok daha yüksek performans sunabilir (Örneğin Duron ile Celeron). 600Mhz bir Duron, 600Mhz bir Celeron’dan çok daha yüksek performans sunmaktadır. Hatta daha pahalı olan Pentium3 600’e yakın bir performans sunmaktadır. Bunun sebebi işlemcinin kullandığı mimarilerde gizlidir. Duron’u eş hızda çalışan bir Celeron’dan daha yüksek performanslı kılan, kullandığı Athlon mimarisidir.

Son birkaç senede işlemciler müthiş bir atılım yaptı. 1996 yılında Pentium MMX’ler 100Mhz’lerde çalışırken, bundan 4 sene sonra 1.5Ghz’lik çalışma frekansları olan işlemcilerden bahsedilmektedir. İşlemci performansı çalışma frekanslarının artışından daha fazla artmıştır. çünkü kullanılan mimarilerde geliştirilmiştir. Son 4 sene içerisinde gerek işlemci üreticilerinin üretim teknolojilerinde yaptığı gelişmeler, gerekse mimarilerdeki değişiklikler ile 1Ghz’lere kadar nispeten rahatça ulaşılmıştır. Bundan sonraki işlemcilerin performansının gerçekleştirilmesi, bugünün işlemci mimarisi ile mümkün olmadığı gözükmektedir . Intel Pentium3 mimarisini 1.13Ghz’te çalıştırmayı denedi ve Pentium3 ise bunu reddetti. Bunun sebebi de 0.18 mikron teknolojisi ile üretilen Pentium3 mevcut P6 mimarisi ile 1Ghz’i aşmaya uygun değildi.

Intel Pentium IV piyasada olacağı vakit, Pentium3 ile 1 Ghz civarına ulaşacağını ve buradan sonrasında da Pentium III’ün mimarisi ile daha yüksek frekanslara ulaşmakta zorluk çekeceğinin farkındaydı ve yüksek frekanslara ulaşması gerekiyordu. Bunun için de daha yüksek frekanslara ulaşmanın birçok yolu vardır. Bunlardan biri de daha gelişkin üretim teknolojilerinin kullanılmasıdır. örnek olarak 0.25 mikron Pentium III 600Mhz civarında bir hıza sahipti, 0.18 mikron 1000Mhz’lere kadar ulaşabildi. 0.18 mikron ile daha gelişmiş üretim teknolojilerin ulaşmak çok daha zor olacaktı. örneğin 0.18’den 0.13 mikrona geçmek zor olduğundan, yüksek frekanslara ulaşabilmek için başka bir yol daha olmalıdır. Bu yol işlemcinin mimarisinin yüksek frekanslara ulaşabilecek şekilde yeniden tasarlanmasıdır. Bu yeni mimariye de NetBurst mimarisi denir. Intel’in Pentium IV üretiminde NetBurst mimarisini kullanmıştır. Pentium IV’ ün mimarisi yüksek frekanslara ulaşabilecek şekilde dizayn edilmiştir. Fakat bu mimari değişikliğinin bazı dezavantajları vardır.

2.5.1. Trace önbelleğindeki Pipeline’nın 5 adımı

İşlemcilerde Pipeline’ların var olduğu bilinmektedir. Bu Pipeline’ların birçok bölümü yani kısmı vardır. Pipeline yani üretim hattının her kısmının bir görevi vardır. örneğin bir kısım kod çözümü ile uğraşırken diğer kısımda kayan nokta birimleri üzerinde (FPU ünitesi) iş yaparlar. Bir üretim hattının ne kadar çok kısmı varsa, o üretim hattı da o kadar yüksek frekanslarda çalışabilir. örnek olarak Pentium ile Pentium2’leri ele alacak olursak, ilk Pentium’ların üretim hatlarının 5 kısmı vardı ve bu işlemciler ancak 233Mhz’lere kadar ulaşabildi. Pentium2 ve 3’lerde her üretim hattı 10 adet kısma sahip olan P6 mimarisi kullanıldı ve bu işlemciler 1000Mhz’lere kadar ulaşabildi. bunda daha gelişmiş üretim teknolojilerinin payı var olmasına rağmen P2’lerin üretim hatları Pentium’lar gibi sadece 5 kısımdan oluşsaydı 1000Mhz’ler, 600Mhz’ler ulaşmak mümkün olmayabilirdi. AMD’ de Athlon’da aynı metodu kullandı. Athlon ilk tanıtıldığı zaman “Yüksek frekanslar için tasarlandı” sloganı esasında kısım/stage sayısı arttırılmış üretim hatlarını temsil ediyordu. Pentium III’ün 10 kısımlı üretim hatları, Intel’in yüksek frekanslara ulaşılmasını engelliyordu. Intel’inde yeni işlemcisi Pentium IV’te daha da fazla kısım/stage kullanan üretim hatlarını kullanması gerekiyordu.

Şekil 2.15: Pentium III ve Pentium IV Mikroişlemcilerinin Pipeline Görünüşü

Pentium IV’ ün üretim hatları tam 20 kısımdan oluşmuştur. Bu rakam Pentium III’ün üretim hatlarının kısım sayısının iki katıdır. Böylece her kısım her saat çevriminde daha az iş yapmaktadır. Yani Pentium III ve Athlon her saat çevriminde Pentium IV’e göre daha fazla hesaplama yapmaktadır. Yani eş çalışma frekanslarında Athlon ve Pentium III, Pentium IV’ten daha yüksek performans sunabilirler. Eğer ki 1000Mhz’lik Pentium IV olsaydı, 1000Mhz’lik Pentium III ve Athlon’dan büyük olasılıkla daha düşük performansa sahip olurdu. Diğer bir dezavantajda, daha fazla  üretim hattına sahip olan işlemcilerin, yanlış dal tahminlerinde daha ağır bir sorunla karşılaşacaktır. Pentium IV’ün 20 kısımlı üretim hattı yüzünden karşılaşacağı sorun, Athlon ve Pentium III’e göre daha fazladır. Oluşacak sorun ile kast edilen, üretim hatlarının komple temizlenmesi (flush) ve tekrar doğru sonuca göre işlem yapılmasıdır. Yanlış bir tahmine göre işlem yapılması durumunda Pentium IV kendisini daha geç toplayabilecektir. Fakat Intel bu sorunları düşünerek, birtakım önlemler geliştirmiştir. Bu önlemler, çözümlenmiş kodları saklayan Trace önbellek ve daha gelişkin dal tahmini üniteleridir. Böylece hem Pentium IV’ün yanlış tahmin yapması zorlaştırılmış hem de yanlış bir tahmin esnasında kodun tekrar çözümlenmesine gerek kalmamıştır. Dolayısıyla Trace önbellek zaten büyük bir ihtimalle kodun çözümlenmiş halini saklamıştır. Diğer yandan Athlon ve Pentium III yanlış tahminde kendilerini daha çabuk toplayabiliyorlar fakat kodu tekrar çözmek için önemli oranda zaman kaybına uğrarlar.

Intel ana amacı olan yüksek frekanslarda çalışmaya başlamasıyla,işlemci 0.18 mikron ile rahatça 1500Mhz’te çalışabilmektedir. Buteknoloji ile 2000Mhz’e ulaşabileceğini göstermiştir. Dolayısı ile Intel daha fazla kısım/Stage sahibi üretim hatları ile dizayn amacına ulaşmış. Bunun olumsuz yönlerini de aldığı önlemler ile kapatmaya çalışmıştır.

2.5.2. Hızlı Gerçekleştirme üniteleri(Rapid Execution Engine)

Şekil 2.16: Hızlı Gerçekleştirme Üniteleri Görünümü

“Rapid Execution Engine”, Komutu hızlı şekilde çalıştıran/uygulayan motor/üniteler anlamına gelmektedir. Rapid execution engine için kısaca bir işlemcinin FPU ve INT ünitelerinden bahsedilmesi gerekir. INT üniteleri Integer yani tamsayı ünitelerini, FPU ise Floating Point yani kayan nokta ünitelerini gösterir.

INT ünitelerinin hesaplama kabiliyeti özellikle ofis uygulamalarında önemli iken, FPU ünitelerinin hesaplama gücü tüm 3D uygulamalar, DVD oynatımı, resim işleme, ses/video işleme gibi özelliklerde öne çıkar. Her iki uygulama tipi, esas yüklendiği birim haricinde diğer ünitelere de ihtiyaç duyar. Pentium IV’ün FPU ünitelerinin önemi büyüktür. En azından Intel’in dizayn öncelikleri açısından FPU ünitelerinin önemi büyüktür.

2.5.3. Komut Gecikmesi ve Süre

Superscalar, kullanım dışı çekirdeği, paralel olarak çoklu µops gerçekleştirebilen çoklu gerçekleştirme donanım kaynakları içermektedir. çekirdeğin mevcut paralelliğin kullanımını sağlama yeteneği aşağıdakiler ile geliştirilebilir:

  • 4 µops’den daha az kodu çözülebilen ve/veya kısa gecikmelere sahipIA – 32 komutlarının seçilmesi

  • Uzun bağımlı zincirlerin asgariye indirilmesi ve uzun komut gecikmelerini kapsayarak mümkün paralelliği korumak için IA – 32 komutlarını sıralamak

  • İşlemcilerinin hazır ve ilgili yayın portlarının ve gerçekleştirme birimlerinin ölçüm aletine ulaştıklarında serbest olmaları için komutları sıraya sokmak

Zaman çizelgesinin oluşturulması, komutların işlemci çekirdeğine sunulduğu ancak şeklinde etkilemesine rağmen, bağlıları ve kaynak zorlayıcıları nedeniyle bunların daha hızlı gerçekleştirilmesi veya geciktirilmesi için komutların yeniden sıralanması hiç değişmeyen makine konumuna yanıt veren gerçekleştirme çekirdeğidir.

Bazı gerçekleştirme birimleri, ardıl döngülerde µops gönderilemeyeceği ve sürenin döngü başına birden az olacağı şekilde pipelinelanmamıştır.

Her bir komut ile işbirliği içindeki µops sayısı, komutların yaratılması için seçim amacıyla bir temel sağlamaktadır. özellikle, mikro kod ROM’dan gerçekleştirilen µops ek baş üstü içermektedir. Pentium II ve Pentium III işlemcileri için, her bir IA – 32 komutu için µops sayısını dikkate almak ve (her birinde bir µop olan iki komut tarafından takip edilen dört µopslı komut) 4 – 1 – 1 sekansına dikkat etmek de dahil, kod çözücünün performansını optimize etmek çok önemliydi. Pentium 4 işlemcisinde, kod çözücü template bir yayın değildir. Bu yüzden, IA – 32 komutları için tam µop sayısının detaylı bir listesini kullanmaya artık ihtiyaç duyulmamaktadır.

2.5.4. Gerçekleştirme Birimleri ve Yayın Portları

Her bir döngüde, çekirdek dört yayın portundan bir veya daha fazlasına µops gönderebilir. Mikro mimari seviyesinde, depolama işlemleri iki kısma ayrılmıştır: depolama verileri ve depolama adres işlemleri. Yükleme ve depolama işlemlerini yapmak için ve çeşitli gerçekleştirme birimlerine µops gönderildiği dört portŞekil 4 dahilinde gösterilmiştir. Bazı portlar, o µop için gerçekleştirme birimi iki kat hızlı çalışmakta ve bu gerçekleştirme birimlerine “çift hızlı” denildiğinden, saat başına iki µops gönderebilirler.

Port 0. Döngünün ilk yarısında, port 0 ya bir kayar-nokta hareket µop (Kayar-nokta yığın hareketi, kayar-nokta değişim veya kayar-nokta depolama verisi dahil) veya bir aritmetik mantık birimini (ALU) gönderebilir. Döngünün ikinci yarısında, bir benzer ALU µop daha gönderebilir.

Port 1. Döngünün ilk yarısında, port 1 ya bir kayar-nokta gerçekleştirme µop (hareketler hariç tüm kayar-kayar işlemleri, tüm SIMD işlemleri) veya normal hızda integer (çarpma, geçiş ve dönme) µop veya bir ALU (aritmetik, mantık veya dallanma) µop gönderebilir. Döngünün ikinci yarısında, bir benzer ALU µop daha gönderebilir.

Port 2. Port 2 döngü başına bir yük işleminin gönderilmesini desteklemektedir.

Port 3.Port 3 döngü başına bir depolama adres işleminin gönderilmesini desteklemektedir.

Bu yüzden, toplam yayın bant genişliği döngü başına sıfırdan altı µops’e kadar çeşitlilik göstermektedir. Her bir pipeline pek çok gerçekleştirme birimi içermektedir. µops işlem tipine karşılık gelen pipeline’a gönderilmektedir. örnek olarak, bir integer aritmetik mantık birimi ve kayar – nokta gerçekleştirme birimleri (eklenen, çarpan ve bölen) bir pipeline paylaşır.

Hızlı Gerçekleştirme Birimi’nin FPU üniteleri ile ilgisi yoktur. Pentium IV’ ün ALU ünitelerinin yani INT ünitelerinin işlemcinin 2 misli hızında çalışır. Yani 1.4Ghz’lik Pentium IV’ün INT üniteleri 2.8Ghz’te, 1.5Ghz’lik olanın INT üniteleri ise 3Ghz’te çalışmaktadır. Daha fazla kısımlı üretim hatları her çevrimde daha az iş yaparlar. Intel’de üretim hatları 20 kısımdan oluşan Pentium IV’ün INT hesaplamalarında zayıf kalmaması için, ALU ünitelerini iki misli hızlı çalıştırmaktadır. Böylece daha fazla kısıma sahip olan üretim hatlarının etkisi azaltılmak istenmiştir.

2.5.5. Kayar-Nokta (FPU, Floating- Point Unit) Üniteleri

FPU üniteleri her işlemci açısından çok önemlidir. Bu ünitelerin hesaplama kapasitesi, direkt olarak 3D, Video/Ses işleme, bilimsel hesaplamalar, resim işleme, DVD izleme gibi birçok uygulamalardaki performansını etkiler. Bu uygulamalar güçlü FPU birimlerine ihtiyaç duyarlar.

AMD, Athlon ile FPU üniteleri bakımından Pentium III’e karşı avantajlı idi. Pentium III’ün 1 tane FPU ünitesine karşın, Athlon’un 3 tane FPU ünitesi vardı.Eş hızda çalışan AMD Athlon ile Pentium III arasında, FPU testlerinde de önemli bir fark oluşuyordu. Fakat fark3/1 oranında değildir. çünkü sadece FPU üniteleri de tek başına bu uygulamalardaki performansı belirleyemez. İşlemcinin diğer tüm birimleri de performans üzerinde önemli etkiye sahiptirler. Yapılan testlerde Athlon’un eş hızda çalışan bir Pentium III’den %10 daha yüksek bir FPU performansına sahiptir.

Şekil 2.17: FPU ve INT birim sayıları

Intel’in Pentium IV’üdizayn amacı, 3D uygulamaları, Video/ses işleme, bilimsel hesaplamalar, resim işleme, DVD izleme gibi uygulamalardır. Intel bu işlemcilerde çok güçlü FPU ünitelerini, NetBurst mimarisine katmamıştır. Pentium IV 2 adet FPU ünitesine sahiptir. AMD Athlon mimarisi 3 adet FPU ünitesi ile Pentium IV’e göre daha avantajlıdır.

Intel Pentium IV ile SSE2’yi piyasaya sürdü. Intel, yazılım üreticilerinden, programlarını SSE2’ye göre düzenlemelerini beklemektedir ve bu düzenleme ile Pentium IV çok yüksek bir FPU performansı sunacağını beklemektedirler. Eğer programcılar SSE2’ye göre bir düzenleme yaparlarsa Pentium IV’ün performansı artar. Fakat şu anda SSE2 yazılım desteği, çok az programlarda bulunduğundan Intel’in bu beklentisinin yakın bir gelecekte gerçekleşme ihtimali de yoktur.

2.6. SIMD Teknolojisi ve Streaming SIMD Extensions 2

İşlemci performansını artırmanın tek yolu, çok hesaplamaların tek bir komut ile yapılmasını sağlamak için pek çok hesaplamayı paralel olarak gerçekleştirmektir. Bu tip paralel gerçekleştirmenin elde edilmesinin yolu tek komut, çoklu veri (SIMD) hesaplama tekniğini kullanmaktır.

Şekil 2.18: SIMD blok diyagramı

2.6.1. SIMD Hesaplaması

Şekilde tipik bir SIMD hesaplaması görülmektedir. Burada iki set dört paketli veri elemanı (X1, X2, X3 ve X4ile Y1, Y2, Y3 ve Y4), veri elemanının her bir çifti (X1 ve Y1, X2 ve Y2, X3 ve Y3 ile X4 ve Y4) üstünde aynı işlemin gerçekleştirildiği, paralel olarak işletilmektedir. Dört paralel hesaplamanın sonuçları bir set dört paketli veri elemanıdır.

Şekil 18 dahilinde gösterilenler gibi SIMD hesaplamaları, Intel MMX teknolojili Intel IA-32 mimarisine girmektedir. Intel MMX teknolojisi, MMX kaydedicileri olarak adlandırılan sekiz 64 bitlik kaydedicinin bir setinde bulunan paketli bayt, Word ve doubleword integer üstünde gerçekleştirilecek SIMD hesaplamalarına izin vermektedir (bakınız Şekil 19).

Şekil 2.19: SIMD kaydedicileri

2.6.2. SIMD Kaydedicileri

Pentium III işlemcisi, Streaming SIMD Extensions (SSE)’ın piyasaya girmesiyle ilk SIMD hesaplama modelini genişletmiştir. Streaming SIMD Extensions, dört paketli single – komple kayar – nokta veri elemanı içeren işlemciler üstünde gerçekleştirilecek olan SIMD hesaplamalarına izin vermektedir. İşlemciler ya hafızada olabilir veya sekiz XMM kaydedicileri olarak adlandırılan 128-bit kaydedicilerin bir setinde olabilir. SSE aynı zamanda, ek 64 bitlik MMX komutları ile SIMD hesaplama yeteneği ile genişletilmiştir.

Pentium 4 işlemci, Streaming SIMD Extensions (SSE) 2’nin piyasaya girmesiyle SIMD hesaplama modelini daha da genişletmiştir. SSE2 genişlemeleri aynı zamanda hem hafızadaki hem de XMM kaydedicilerindeki işlemciler ile çalışmaktadır. SSE2, SIMD hesaplamalarını 128-bit paketli integer ve paketli double – presicision kayar – nokta veri elemanları üstünde çalışması için genişletmiştir. İki paketli double – presicision kayar – nokta veri elemanları üstünde veya 16 paketli bayt, 8 paketli Word, 4 doubleword ve 2 quadword integer üstünde çalışabilen SSE2’de 144 komut bulunmaktadır.

IA-32 SIMD teknolojisinin (Intel MMX teknolojisi, SSE genişlemeleri ve SSE2 genişlemeleri) tam bir seti, paketli 64- ve 128-bit integer ve single, double – komple kayar – nokta işlemciler üstünde işlemleri birleştirebilen algoritmaları geliştirme yeteneğini programcıya vermektedir.

Bu SIMD yeteneği, aşağıdaki özelliklere haiz 3D grafikleri, konuşmaların anlaşılması, görüntü işlemi, bilimsel ve diğer multimedya uygulamalarının performansını geliştirmektedir:

  • Doğal olarak paralel

  • Süzenli ve iyileştirici hafıza erişim güzergahları

  • Veriler üstünde gerçekleştirilmiş bölgeselleştirilmiş iyileştirme işlemleri

  • Veriden bağımsız kontrol akışı

IA-32 SIMD kayar – nokta komutları, Binary Kayar – nokta Aritmetiği için IEEE Standart 754’ü tamamıyla desteklemektedir. Tüm SIMD komutları tüm IA-32 gerçekleştirme modlarından erişebilirdir: korunmuş moda, gerçek adres modu ve Sanal 8086 modu.

SSE2 ve SSE genişlemeleri ve Intel MMX teknolojisi, IA-32 Intel mimarisindeki mimari genişlemelerdir. Tüm mevcut yazılım, bu teknolojilerle birlikte çalışan IA – 32 mikroişlemcileri üstünde modifikasyon olmaksızın doğru şekilde çalışmaya devam etmektedir. Mevcut yazılım, bu SIMD teknolojileri ile birlikte çalışan yeni uygulamaların varlığında aynı zamanda doğru olarak çalışmaya devam etmektedir. SSE ve SSE2 komut seti, önbellek kullanımı ve uygulama performansını geliştirebilen önbelleklenebilir ve hafıza sıralama komutunun bir setini piyasaya sunmuştur.

2.6.3. SIMD Teknolojilerinin Özeti

Aşağıdaki paragraflar, kronolojik sırayla IA-32 mimarisine eklenmiş olan üç SIMD teknolojisinin (MMX teknolojisi, SSE ve SSE2) yeni özelliklerini özetlemektedir.

2.6.3.1. MMX Teknolojisi
  • 64 bit MMX kaydedicilerini piyasaya sokmuştur

  • Paketli bayt, Word ve doubleword integer üstünde SIMD işlemleri için desteği piyasaya sunmuştur.

MMX komutları multimedya ve iletişim yazılımları için faydalıdır.

2.6.3.2. Streaming SIMD Genişlemeleri
  • 128-bit XMM kaydedicileri piyasaya sunmuştur.

  • Dört paketli single – komple kayar – nokta işlemcili 128-bit veri tipini piyasaya sunmuştur.

  • Veri prefetch komutlarını piyasaya sunmuştur.

  • Geçici olmayan depolama komutlarını ve diğer yetenekleri ve hafıza sıralama komutlarını piyasaya sunmuştur.

  • Ek 64-bit SIMD integer desteğini eklemektedir.

SSE komutları 3D geometrisi, 3D rendering, konuşmanın anlaşılması, video kodlama ve kod çözümü için faydalıdır.

2.6.3.3. Streaming SIMD Genişlemeleri 2
  • İki paketli double – komple kayar – nokta işlemcili 128 – bit veri tipini eklemektedir.

  • 16-bayt, 8-Word, 4-doubleword veya 2-quadword integer üstünde SIMD integer işlemi için 128 – bit veri tiplerini eklemektedir.

  • 64-bit integer işlemcileri üstünde SIMD aritmetiği için destek eklemektedir.

  • Yeni ve mevcut veri tipleri arasında dönüşüm için komutlar eklemektedir.

  • Veri karıştırma için desteği genişletmektedir.

  • Önbelleklenebilirlik ve hafıza sıralama işlemleri için desteği genişletmektedir.

SSE komutları 3D grafikler, bilimsel hesaplama, video kodlama / kod çözümü için faydalıdır.

SIMD komutları, Pentium MMX işlemciler ile 1996’da ilk kez kullanılmaya başlandı ve genelde INT ağırlıklı uygulamaları hızlandırmaya yaradığı için büyük bir popülarite kazanamadı. Kullanıcılar, 3D ağırlıklı uygulamaları da hızlandıran FPU komutlarını bekliyordu. Intel’de kullanıcı istekleri doğrultusunda Pentium III’ler ile birlikte SSE’leri kullandı. SSE aslında gereken yazılım desteği ile büyük işler başarabilir.Birkaç yıla kadar Pentium III-450Mhz ile P2-450Mhz karşılaştırılmıştı. özellikle PhotoShop’un SSE destekli versiyonunda Pentium III, P2 ile aynı çalışma frekansına sahip olmasına rağmen P2’den daha fazla performansının olduğunu gösterdi. 144 yeni komut içeren SSE2’de Pentium IV ile birlikte piyasalardaki yerini aldı.

Intel SSE2 komut seti ile Pentium IV’ün yüksek FPU performansı sunmasını planlamıştı. çünkü  SSE ve SSE2 gibi komut setleri, genelde sürekli olarak aynı tip komutları işleyen uygulamalarda yüksek performans sunmuştu. Fakat Intel,5 yıldır üzerinde çalıştığı mimarisinin başarısını, yazılım firmalarının desteğine fazlaca bağlanmış durumdadır. AMD firması da 2001 yılı içerisinde çıkaracağı işlemcilerinde SSE desteğine yer verebileceğini açıklamıştı . AMD’nin de böyle bir atılımı yapacak olması, belki de SSE veya SSE2’nin geleceğinin parlak olacağını gösteriyor.

SSE2 ile birlikte Pentium IV’ün 128 bit SIMD İnteger ve 128 bit SIMD Double-Komple Kayar-Nokta hesaplamalarını da yapabildiğini söyleyebiliriz.

2.7. INT üniteleri

INT ünitelerinde Pentium IV, Pentium III’den daha avantajlıdır. Pentium IV 3 adet (ikisi işlemcinin 2 misli hızında çalışan) INT ünitesine sahiptir. Bu rakamlar Athlon’da 3, Pentium III’de ise 2 idi. Dolayısı ile Pentium IV bu hususta, her iki işlemciden de daha gelişmiş ve daha yüksek INT (Tamsayı) performansı sunabilecektir.

2.7.1. Advanced Dynamic Execution

İşlemci eğer ki uygulamanın çalışması esnasında kod çözümü üniteleri veya Trace önbellek tarafından o esnada gerekli olan kod veya veri ile beslenemez ise, hemen sıradaki başka bir minik kodun hesaplanması ile uğraşmaya başlayabilir. Yani minik kodların işlenmesi esnasında programın sırasına uyma zorunluluğu yoktur ( Out of Order, speculative core). Bu sayede işlemci hesaplama ünitelerinin sürekli olarak işler durumda kalması sağlanır. Bu Pentium IV gibi yüksek frekanslarda çalışan işlemciler için oldukça önemli ve verimli bir özelliktir.

2.7.2. Veri Ön Yakalama

Pentium 4 işlemci verileri önceden yakalamak için iki mekanizmaya sahiptir: yazılım kontrollü önceden yakalama ve otomatik donanım önceden yakalama.

Yazılım kontrollü önceden yakalama, Streaming SIMD Genişlemeleri (SSE) komutları ile piyasaya giren dört önceden yakalama komutlarının kullanımını mümkün kılmıştır. Bu komutlar, önbellek hiyerarşisinin istenilen seviyelerine bir veri önbellek hattını taşımak için ipuçlarıdır. Yazılım kontrollü ön yakalama ön yakalama koduna eğilimli değildir. Bunun kullanımı, kodun paylaşıldığı yerde bir çoklu işlemci sistemindeki belirgin cezaları iyileştirebilir.

Yazılım kontrollü veri ön yakalaması, bazı durumlarda optimal kazançlar sağlayabilir ve diğer koşullarda faydalı olmayabilir. Yazılım kontrollü veri ön yakalamasından faydalanabilen durumlar aşağıdakilerdir:

  • Yazılımdaki hafıza erişim işlemlerinin güzergahları hafıza gecikmesini programlayıcıya saklama şansı verildiğinde

  • Makul bir seçimin, gerçekleştirilmekteki mevcut hattın uzağında yakalamak için ne kadar önbellek hattının yapılabileceğinde

  • Uygun tercih kullanılan ön yakalamanın tipi için alındığında. ön yakalamanın dört tipi, hem önbellek seviyelerinin güncellendiği şartlarda hem de verilen bir işlemci gelişimi için performans özellikleri gibi değişik davranışlara sahiptir. örnek olarak bir işlemci, sadece verileri işlemci çekirdeğine en yakın önbellek seviyesine geri döndürerek geçici olmayan bir ön yakalama geliştirebilir. Bu yaklaşım aşağıdaki etkilere sahip olabilir:

a)Diğer önbellek seviyelerinde geçici verilerin kesintisini asgariye indirgeme

b) Verileri tüm önbellek seviyelerine geri döndürdüğü bir normal yük ıskası ile karşılaştırıldığında gerçekleştirilmiş bant genişliğini artırabilecek çip dışı önbelleklere erişim ihtiyacından kaçınmak.

Yazılım kontrollü veri ön yakalamasından daha az faydalanmaya meyilli durumlar aşağıdaki gibidir:

  • Halihazırda bant genişliği sınırına sahip durumlarda, ön yakalama bant genişliği taleplerini artırmaya yönelir ve bu yüzden etkin olmaz.

  • Çok uzaktan ön yakalama, gerçekte gerçekleştirme için kullanımından önceki önbelleklerden önbelleklenmiş verilerin tahliyesine neden olabilir; yeterince uzak olmayan ön yakalamama hafıza ve gerçekleştirme geciktirmelerinin üstüne binme yeteneğini azaltabilir.

  • Ön yakalama, kullanılmakta olan o ön yakalamanın olasılığının düşük olduğu konumlarda yerleştirildiğinde sadece faydalı olabildiğinde. ön yakalamalar, işlemcideki kaynakları tüketirler ve çok fazla ön yakalamanın kullanılması etkinliklerini sınırlayabilir. Bunun örnekleri, döngü dışındaki bir referans için döngüdeki verilerin ön yakalanması, sıkça gerçekleştirilen ancak nadiren ön yakalamanın hedeflendiği referanstan önde yer alan, temel bir blokta ön yakalamayı içermektedir.

  • Otomatik donanım ön yakalaması, Pentium 4 işlemcisindeki yeni bir özelliktir. önbellek hatlarını, öncelikli referans güzergahları üstünde birleştirilmiş ikinci seviye önbelleğe getirebilir.

2.7.3. Donanım ve yazılım ön yakalamasının pros ve cons.

Yazılım ön yakalaması aşağıdaki özelliklere sahiptir:

  • Donanım ön yakalayıcısını tetiklemeyen düzensiz erişim güzergahlarını ele alır.

  • Yakalamaları başlatmadan önce donanım ön yakalamasının başlatma gecikmesinden kaçınır ve kısa sıraların ön yakalamasını ele alır.

  • Yeni koda eklenmelidir; mevcut uygulamalardan faydalanmaz.

  • Benzer şekilde, donanım ön yakalaması da aşağıdaki özelliklere sahiptir:

  • Mevcut uygulamalarla çalışır.

  • Düzenli erişim güzergahına ihtiyaç duyar. Donanım ön yakalaması tetiklenmeden ve yakalamaları başlatmaya başlamadan önce bir başlangıç cezasına sahiptir. Donanım ön yakalamasının gerçekte faydalanılmayan bir sıranın sonunun ötesinde veriler için bir talebi yaratıldığında kısa sıralar için daha büyük etkilere sahiptir. Yinede, yazılım ön yakalaması, bir sonraki sıradaki ilk veri için gecikmeyi gizlemek için yakalama bant genişliğini kullanarak bu durumları belirleyip ilgilenebilir. Ceza, uzun sıralar üzerinde amorti edilecek olursa, azalmaktadır.

  • Komut ve yayın port bant genişliği baş üstünden kaçınmaktadır.

2.7.4. Yükler ve Depolar

  • Pentium 4 işlemci, hafıza işlemlerinin gerçekleştirilmesini hızlandırmak için aşağıdaki teknikleri kullanmaktadır:

  • Yüklerin spekülatif gerçekleştirilmesi

  • Yükler ve depolara bağlı olarak yüklerin yeniden sıralanması

  • Çoklu diğerlerinden iyi ıskalar

  • Yazılımların tamponları

  • İlgili yüklere depolardan verilerin öne çıkarılması

Performans, makine vasıtasıyla sağlanan hafıza yayın bant genişliği ve tampon kaynaklarını aşmadan artırılabilir. Hafıza portunun rezervasyon istasyonlarından her bir döngüde bir yük ve bir depoya kadar yayınlanabilir. Rezervasyon istasyonlarına gönderilmesi amacıyla, o hafıza işlemi için mümkün bir tampon girişi olmalıdır. 48 yük tamponu ve 24 depo tamponu bulunmaktadır. Bu tamponlar, işlem tamamlanıp geri çekilip tahsisat dışı bırakılana kadar µop ve adres bilgisini tutmaktadır.

Pentium 4 işlemci, diğer komutlar ve birbirlerine bağlı olarak hafıza işlemleri kullanım dışının gerçekleştirilmesini mümkün kılmak için tasarlanmıştır. Yükler, tüm önde yer alan dallanmaler çözülene dek spekülatif olarak taşınabilir. Yinede, spekülatif yükler sayfa hatalarına neden olamazlar. Birbirlerine bağlı olarak yüklerin yeniden sıralanması, daha sonraki yüklerin tıkanmasından bir yük ıskasını uzak tutabilir. Değişik adreslere depolanma ve diğer yüklere bağlı olarak yüklerin yeniden sıralanması, girdileri hazır olur olmaz daha fazla işlemi gerçekleştirmek için makineye izin veren daha fazla paralelliğe izin verebilir. Hafızaya yazma, program doğruluğunu sağlamak için sürekli olarak program sırasında gerçekleştirilir.

Yük için bir önbellek ıskası, yayınlanmaktan ve tamamlanmaktan diğer yükleri uzak tutmaz. Pentium 4 işlemci, ya çip üstü önbellekler veya hafıza tarafından hizmet edilebilen dört mevcut yük ıskasına kadar desteklemektedir.

Depo tamponları, hafızaya ve/veya önbelleğe bir yazılım tamamlanana dek bekleme zorunluluğu olmaksızın işlemcinin komutları gerçekleştirmeye devam etmesine izin vererek performansı geliştirmektedir. Yazımlar genelde ilgili zincirler için kritik güzergah üstünde olmayıp bu sayede hafıza erişim veriyolu döngülerinin daha etkin kullanımı için yazılımları geciktirmek amacıyla sıkça faydalıdırlar.

2.7.5. Depolama

Yükler, aynı lineer adresten yüklemek için önceden belirlenmedilerse, programda daha önceden oluşan depolardan önce hareket ettirilebilir. Eğer aynı adresten okumak durumunda kalırlarsa, deponun verilerinin mümkün olmasını beklemek zorundadırlar. Yinede, öne depolama ile, hafıza hiyerarşisine yazma ve geri çekilme için beklemek zorunda değillerdir. Depodan gelen veriler, aşağıdaki şartlar karşılandığı sürece yüke doğrudan yönlendirilebilir:

  • Sekans: Yüke yönlendirilecek veriler, halihazırda gerçekleştirilmiş olan programsal olarak daha erken bir depo tarafından yaratılmıştır.

  • Boyut: Yüklenen baytlar depolanan baytların (aynı olan, uygun bir alt küme dahil) bir alt kümesi olmalıdır.

  • Sıralama: Depo bir önbellek hat sınırı etrafına yapışamaz ve yükün lineer adresi deponunkinin aynısı olmalıdır.

2.8. Pentium 4 mikroişlemcilerin paketlenmesi

Pentium 4 mikroişlemcilerde 423 pinli PGA paket teknolojisi kullanılmaktadır. Bu pakette yukarıdan aşağıya doğru işlemci silikonu, organik alan ızgara düzeni (organic land grid array, OLGA) ve pin taşıyıcı dağılımı görülmektedir. 423 pin için 423 pinlik soket ile kullanılabilir.

Şekil 2.20: Pentium IV İşlemcisinin Katmanları
Şekil 2.21: Pentium IV İşlemci Paketi
Şekil 2.22: Pentium IV İşlemcisinin Geçiş Aralıkları ve Girişleri
Şekil 2.24: Pentium IV İşlemcinin Etiketlenmesi
Şekil 2.25: Intel Pentium IV’ ün Pin çıkış Diyagramı (alttan görünüş)

2.8.1. İşlemcinin Kutulanma Özelliği

Intel Pentium IV İşlemci 423 Pinlik paket ile kutulanarak sunulur. Kutulanmış mikroişlemci soğutma sistemi ile birlikte satılır.

Şekil 2.26: Mekaniksel olarak kutulanmış Pentium IV mikroişlemci ve Soğutma Sistemi
Şekil 2.27: Pentium IV’de Kullanılan Fan Çeşitleri

2.9. Ana kartlar, kasalar, güç kaynakları

İlk Pentium IV destekli ana kart Intel Garibaldi idi. Şu ana kadar hem Asus hem de Gigabyte Pentium IV destekli ana kartlarını duyurdu. Bu ana kartların fiyatları, maliyetli i850 çip seti yüzünden çok yüksektir. Ayrıca Pentium IV işlemcilerin kullanılacağı sistemlerde yeni güç kaynaklarının da bulunması gerekiyor. Bu da maliyeti arttıran bir husustur. Tüm bunların üzerine işlemcinin pahalı fiyatı ve FPU ünitelerindeki durum eklenince Pentium IV’ün yakın bir gelecekte başarılı olması biraz şüpheli gözükebilir. Ancak 0.13 mikron teknolojisi, Rambus-DRAM’larda beklenen fiyat düşüşleri ile birlikte Pentium IV önümüzdeki yıl içerisinde daha büyük bir popülarite kazanabilir.

 

Şekil 2.28: Pentium IV Mikroişlemcinin Intel 850i Chipseti ile ilişkisi
Şekil 2.29: Power supply

 

Pentium IV Mikroişlencisi için Kullanılan Güç Kaynağı Pentium IV’ün harcadığı yüksek enerjiyi ATX güç aktarım kablosu karşılayamamaktadır. Bu sebeple ATX güç kaynaklarına fazladan bir kablo eklenmiş durumdadır. Bu yeni standart ATX 2.03 olarak adlandırılmaktadır.

 

Şekil 2.30: Pentium IV için hazırlanan ASUS P4T Anakartı
Şekil 2.31: Pentium IV için GIGABAYT GA-8TX Anakart

 

Değerlendirme Pentium IV’de Intel ana amaç olarak, yüksek Mhz’lere ulaşmak ve hedef uygulamalarda yüksek performans sunmayı benimsemiştir. İlk amaca fazlasıyla ulaşılmıştır. Bugünkü 0.18 mikron ile bile işlemci rahat rahat 1500Mhz’de çalışıyor. öte yandan bu ilk amacın elde edilmesi için kullanılan yöntemin dezavantajının kapatılması için Intel sayısız yeni teknoloji kullanmıştır. Yalnız FPU performansı konusunda Intel SSE2’ye biraz fazla umut bağlamıştır. Bu yüzden gerekli yazılım desteği işlemcinin başarısı üzerinde bire bir etkilidir. Bu yazılım desteği oluşana kadar, ilk testlerden de görüldüğü gibi işlemci kendisinden beklenen FPU performansını sunamayacak durumdadır. Pentium IV’ ün NetBurst mimarisi 2000’li yıllarda Intel’in birçok işlemcisinin kökeni olacaktır. Intel’de Pentium IV’ün ancak 2002 yılında popüler olmasını bekliyor.

Pentium IV’ü sadece bugünkü performansıyla değerlendirmek doğru değildir. Bu işlemci geleceğe yönelik fakat bahsedilen yazılım desteği oluşana kadar Athlon/Thunderbird ve Pentium III’ler hem çok daha ucuz fiyatları hem de tatminkar performansları ile daha iyi birer seçimdir. üstelik yakında her iki işlemcide DDR-SDRAM gibi yüksek bant genişliği sunan ve aynı zamanda ucuz olmayı başarabilen bir hafıza desteğine de kavuşacaklardır. Yani performansları da daha da artacaktır.

INTEL Mikroişlemcilerinin Tarihi

1. GİRİŞ

Bir mikroişlemci tüm devresi etrafında kurulu bilgisayar, mikrobilgisayar olarak adlandırılır. Bir mikrobilgisayarın mikroişlemcisi, I/O ve bellek birimleri, teknolojiye ve uygulamaya göre devamlı değişim göstermektedir. Günümüzde mikroişlemciler çoğunlukla bilgisayarlarda kullanılmaktadır. Teknolojinin gelişimi doğrultusunda, daha önce mikroişlemci tümdevresi dışında olan, pek çok I/O ve bellek alt birimleri, CPU üzerine taşınmıştır.

1978/1979 yıllarında üretilen ilk 8086/8088’den başlayıp 80286, 80386, 80486, Pentium, Pentium Pro, Pentium MMX, Pentium II, Pentium III ve Pentium IV mikroişlemcilerine uzanan geniş bir ürün yelpazesine sahip olan Intel x86 mikroişlemci ailesi tarihteki en başarılı mikroişlemci ailesi olmuştur. Bunda çeşitli faktörler rol almıştır, fakat en büyük neden, şüphesiz 1981 yılındaki ilk PC’de IBM firmasının 8088 mikroişlemcisini seçmesi olmuştur. O tarihten itibaren, IBM ve bir çok firma bu işlemcileri PC’lerde kullanmaktadır. PC’lerin dünyada yaygın olarak kullanılması , bu işlemcilerin başarısında en büyük neden olmuştur.

1.1. Intel X86 Mimarisi

Mikroişlemciler mimari yapılarına göre farklılık gösterir. Ortak bir mimariye sahip işlemciler, komutları tanıdıkları için, aynı programları çalıştırabilir. Bir mikroişlemcinin tanıdığı komutlar, yani komut kümesi o mikroişlemci mimarisinin en temel özelliklerinden biridir. Diğer önemli bir mimari özellik mikroişlemcinin dahili kaydedici kümesidir. Kaydediciler, mikroişlemcinin çalışması sırasında, geçici verilerin saklandığı bellek hücreleridir. Bu bellek hücreleri işlemcinin içindedir. Farklı komut ve kaydedici kümesine sahip mikroişlemciler genelde birbirlerinin programlarını çalıştıramazlar.

Günümüzde en popüler mikroişlemci mimarisi Intel x86 ailesine ait mimaridir. Bunda çok yaygın olarak kullanılan IBM PC’ler büyük bir rol oynamıştır. Intel x86 işlemcilerin, PC‘lerde ve ayrıca bir çok elektronik üründe çok yaygın olarak kullanılması, bu aileyi, endüstri ve eğitim için çok önemli bir konuma getirmiştir.

Bu ailenin ilk işlemcisi 1978 yılında üretilen 8086’dır. O zamanlardan günümüze, x86 işlemcileri önemli bir değişim gösterdi. Bu ailenin önemli kilometre taşları olan işlemciler sırasıyla şunlardır: 8086/8088, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium MMX, Pentium II, Pentium III ve Pentium IV işlemcileridir.

Bugün, mikroişlemci ve mikrodenetleyici üreten irili ufaklı pek çok firma bulunmaktadır. Bunların en önemlileri, Intel ve Motorola firmalarıdır. x86 ailesinin lokomotifini çeken Intel firması olmasına rağmen, günümüzde Intel dışında x86 mikroişlemcisi üreten, AMD, Cyrix, Centour ve Rise Tecnology gibi firmalar bulunmaktadır.

Intel x86 ailesinin dışında, diğer önemli mikroişlemci mimarilerinden bazıları şunlardır: Modern Macintosh‘larda bulunan Power PC, eski Mac’lerde bulunan 680×0 serisi, Digital ve Compact’ın güçlü makinelerinde kullanılan Alpha ailesi, Sun firmasının SPARC işlemcileri, Silicon Graphics’in MIPS RX000 serisi, HP’in PARISC’i önemli mimariler olarak sayılabilir. Bu mimarilerin hiç biri kendi aralarında ve aynı zamanda x86 ile uyumlu değildir.

1.2. Intel Ailesinin Gelişimi

Intel firması 1968 yılında bellek tümleşik devreleri yapmak üzere kuruldu. Üretecekleri bir hesap makinesi için CPU tümleşik devresi isteyen, hesap makinesi üreten bir firmanın talebi; ve yine üretecekleri bir terminal için özel bir tümleşik devre isteyen, diğer bir firmanın istediklerini karşılamak için, Intel firması 4004 (1971) ve 8008 (1972) CPU’larını üretti.

Mikroişlemciler ve mikrobilgisayarların sınıflandırılmasında en temel ölçü, mikroişlemcinin tümleşik devre üzerinde işlem yaptığı en uzun verinin bit sayısı, yani kelime uzunluğudur. 4-bit işlemci olan 4004 ve 8-bit işlemci olan 8008’den başlayarak, mikroişlemciler ve mikrobilgisayarlar için, 4-bit, 8-bit, 16-bit, 32-bit ve 64-bit gibi veri uzunluk standartları doğmuştur.

Intel, bu ilk müşterilerinden başkasının, 4004 ve 8008 tümleşik devrelerine ilgi göstereceklerini tahmin etmediği için, üretim hattını düşük kapasiteli tutmuştur. Fakat tahminlerin aksine, bu tümleşik devrelere çok büyük bir ilgi oldu. Bunun sonucu ve aynı zamanda 8008’in 16 KB’lık bellek limitini aşmak amacıyla, Intel firması 1974 yılında genel amaçlı 8080 CPU’sunu üretti. Birden bu tümleşik devreye büyük bir talep oldu ve kısa bir süre içinde 8080, 8-bit mikroişlemci endüstri standardı oldu. Intel, iki yıl sonra 1976’da gelişmiş bir 8080 işlemcisi olan 8085 piyasaya sürdü.

Intel 1978 yılında ilk 16-bit mikroişlemcisi olan 8086’yı üretti. 8086 daha önceki 8080/8085 ürününe bazı yönlerde benzemesine karşın, iki işlemci ailesi birbiri ile uyumlu değildi. Bir yıl sonra 1979’da üretilen, 8086’nın 8-bit veriyoluna sahip sürümü olan 8088, 1981 yılında üretilen IBM PC mikrobilgisayarlarının ilk işlemcisi olmuştur. Kısa sürede endüstrinin 16-bit mikroişlemci standardı olan 8086/8088, günümüze kadar uzanan pek çok ürünü ile x86 ailesi diye adlandırılan mikroişlemci ailesinin çekirdeği oldu.

Daha sonraki yıllarda x86 ailesinin diğer ürünleri, 80186/80188 ve 80286 üretildi. 80186 işlemcisi 8086’nın tümleşik devre üzeri çeşitli çevre birimlerine sahip olan sürümüdür. 80188 işlemcisi ise, 8-bit veriyoluna sahip bir 80186 işlemcisidir. Tasarımlarında fazla çevre birimi istemeyen 80186/80188 işlemcilerinin genelde değişmez bir programla, kontrol uygulamaları içinde yer alarak mikrodenetleyici gibi kullanılmaları amaçlanmıştır. Buna rağmen bu iki işlemci yaygın olarak kullanılmamıştır.

Uygulama çeşitlerine göre Intel mikroişlemcilerinin sınıflara ayrılması, 80186/80188 ve 8048/8051 işlemcilerinden sonra başlamıştır. Intel mikroişlemcilerinin gelişimi şekil 1.1 de gösterilmektedir.

8086/8088 işlemcilerinin 1 MB bellek ile sınırlı adres alanı, 1980’lerin ortalarına doğru bir çok uygulama için ciddi bir problem olmaya başlamıştı. Bu yüzden Intel, x86 çekirdeğinin bir üst uyumlu sürümü olan 80286 işlemcisini üretti. Bu işlemci, 16 MB’lık adres alanı ile beraber temel 8086/8088 komut kümesine sahipti. 80286, IBM PC/AT ve orta model PS/2 bilgisayarlarında kullanıldı ve daha önceki 8088 gibi büyük bir başarı kazandı.

Intel için bir sonraki adım, 1985 yılında üretilen, bir tümleşik devre üzerinde gerçek 32-bit CPU olan 80386DX oldu. 80286 gibi bu mikroişlemcide çok yaygın olarak kullanıldı. 1988 yılında, harici 16-bit veriyoluna sahip 80386SX işlemcisi üretildi.

80486, 80386’nın bir üst uyumlu modeliydi. Bütün 80386 programları, 80486 makinelerinde bir değişiklik yapılmadan çalışabilecekti. Bu iki işlemci arasındaki temel fark, 80486’nın 80386’nın özelliklerine ek olarak, yardımcı işlemcisi olan bir kayan nokta birimine(FPU), 8 KB önbelleğe (cache) ve bir bellek yönetim birimine tümleşik devre üzerinde sahip olmasıdır. Ayrıca bir 80486, 80386’dan çok daha hızlıdır.
1993 yılında piyasaya sürülen Pentium, temel mimari olarak çok farklı bir mikroişlemci olmayıp, Intel’in yaklaşık her 2-3 yılda ürettiği yeni bir x86 işlemcisidir. Bu yapı IA-32 (Intel Architecture-32) olarak belirtilen 80386/80486 ile başlayan 32-bit mimarinin bir uzantısıdır. 1993 yılından sonraki Pentium işlemcilerinin hızları artmış, üzerlerindeki önbellek yapıları değişmiş ve kapasiteleri artmış. Bazılarında tümleşik devre üzeri komut bazılarında multimedya desteği sağlanmıştır. Ayrıca, yeni Pentium mimari yapılarında, daha başka, ileri düzeyde, detay farklılıklar da vardır. Bütün bu farklılıklara rağmen, 1978 yılından başlayan 8086/8088 işlemcilerindeki x86 çekirdeği, bu işlemcilerde de bulunmaktadır. Yeni işlemcilerde çalışacak eski programların uyumluluğu için bu mimari gelişim, Intel’in bütün x86 işlemcilerinde sağlanmıştır.

Pentium işlemcisiyle x86 ailesinin veriyolu uzunluğu 64-bit olmuştur. Intel, Pentium ile RISC mimari tasarım kavramlarından olan superscalar mimariyi kullanmaya başladı. Pentium da aynı anda bir saatte, iki tane iş-hatlı tam sayı birimi iki komutu ve bir tane iş-hatlı FPU birimi de bir tane kayan nokta komutu yürütülebilmektedir. Diğer bir RISC mimari birimi olan dallanma tahmini donanım yapısı, JUMP ve CALL komutlarıyla yapılan dallanmalarda önemli zaman kazançları sağlayarak çalışma performansını artırır. Bu işlemcide ayrıca yürütme performansını önemli olarak etkileyen tümleşik devre üzerinde birinci seviye (L1) ayrı 8 KB kod ve 8 KB veri önbellekleri bulunur.

Pentium Pro 8086/8088, 80286, 80386, 80486 ve Pentium işlemcilerinden sonra gelen 6’ıncı nesil olduğu için, ilk çıkması sıralarında P6 kod adıyla anılmış ve önemli mimari ekler sunmuştur. P6 mimarisi dinamik yürütme teknolojisi olarak belirtilen ve çoklu dallanma tahmini, veri akış analizi ve tahmini yürütme olarak temel üç fonksiyonlu mimari yapıyı içermektedir. Pentium Pro’ya dört yeni adres hattı daha eklenerek adres yolu 36-bit yapıldı. Bu sayede doğrudan adreslenebilir adres alanı 4 GB‘tan 64 GB’a artırılmış oldu. Intel firması ilk kez 256 K, 512 K veya 1MB olabilen L2 önbelleğini Pentium Pro işlemcinin üzerine yerleştirdi. Pentium gibi Pentium Pro da 8 KB‘ı kod, 8 KB’ı veri için toplam 16 KB’lık L1 önbelleğine sahiptir.

Intel firması bir PC’ye DSP özelliği kazandırmak için MMX olarak adlandırılan bir teknolojiyi, Pentium işlemcilerine 1997’den itibaren koymaya başladı. MMX teknolojisi multimedya işlemleri için 57 tane yeni komut sunmaktadır.

Intel Pentium II işlemcisi , Pentium Pro ve MMX teknolojilerinin birleşimi ile üretildi. Bu işlemcide bulunan 32 KB (16 KB/16KB) L1 önbellek yoğun olarak kullanılan veriye hızlı erişim sağlar. Ayrıca tümleşik devre üzerinde 512 KB’tan başlayan L2 ön belleği bulunur. Intel daha ucuz PC’ler ve sunucu makineleri için piyasaya ucuz (celeron) ve pahalı (xeon) Pentium II tabanlı iki farklı mikroişlemci sundu. Bu piyasa yaklaşımı daha sonraki Pentium III ve daha sonraki ürünlerde de devam etmiştir.

Pentium III mikroişlemcisi 1999 yılının başında Intel tarafından piyasaya sunulmuştur. Pentium III ile gelen önemli bir yenilik, “Internet Streaming SIMD Extensions” olarak adlandırılan bir yapıdır. Bu mimari yapı ile, ileri görüntü işleme, 3D, ses ve video ses tanıma gibi uygulamalarda kullanılabilecek 70 tane yeni komut eklenmiştir. Pentium III ayrıca P6 mikromimarisini dinamik yürütme, çoklu dallanma tahmini, veri akışı analizi ve tahmini yürütme çok işlemli sistem yolu ve Intel MMX teknolojisini içerir. Pentium III, PC ve Internet hizmetleri ve ağ erişim güvenliği için planlanan yapı bloklarından ilki olan işlemci seri numarası sunar.

Pentium IV her şeyi hız için düşünülmüş. Pentium IV, Intel’in 1995‘ten beri tamamen yenilenmiş x86 mikroişlemcisidir.

Şekil 1.1: Intel mikroişlemcileri gelişimi

2. INTEL MİKROİŞLEMCİ AİLESİ

Intel gerçek bir mikroişlemci üretimine ilk olarak 8080 le başladıktan sonra 8086 da artık temeller atılmış ve bundan sonra piyasaya çıkacak olan işlemciler bu mantıkla üretilecektir.

2.1. Intel 8086 Mikroişlemcisi

8086 1978 yılında 29 bin transistör ve 40 pinli paketten oluşan ilk 16-bitlik Intel mikroişlemcisidir. Daha sonra bu işlemciyi 8088 mikroişlemcisi, 8087 matematik işlemcisi ve 8089 giriş/çıkış (I/O) işlemcisi takip etmiştir.

Şekil 2.1: Intel 8086 mikroişlemci mimarisi

Şekil 2.1 de x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi sunulmuştur. Mikroişlemci temel iki ayrı çalışma birimine sahiptir. Bu birimler: İcra birimi(EU) ve Veriyolu Bağdaştırma Birimi (BIU). EU komutları yorumlamakta ve yürütmektedir. BIU ise veriyolu işlemlerini gerçekleştirmektedir.

2.1.1. İcra birimi

EU, komut çözme ve komutları yürütme için bir kontrol birimine; aritmetik ve mantıksal işlemler için bir ALU’ya; genel amaçlı kaydedicilerde (AX, BX, CX, DX) ; işaretçi (SP,BP) ve indis (SI, DI) kaydedicileri ile bayraklar kaydedicisine sahiptir. EU içindeki kontrol birimi, makine dilindeki komutları yorumlamakta ve komutları yürütmek için gerekli işlemleri kontrol etmektedir. EU, komut byte’larını, BIU tarafından komut kuyruğuna yerleştirilme sırasıyla, komut kuyruğundan almaktadır. Eğer EU bellekten bir işleme ihtiyaç duyarsa veya bir sonucu bellekte saklamak isterse istenilen işlemi BIU ‘e yönlendirir. EU, işlem kodu okuma veya saklama işlemi için, BIU tarafından fiziksel adresi hesaplamada gerekenleri sağlamaktadır. ALU, işlemlerini, dahili veriyolu üzerinden, genel amaçlı kaydedicilerden, komut byte’larından, veya BIU‘dan almaktadır. ALU 8-bit veya 16-bit işlem yapma kapasitesine sahiptir.

2.1.2. Veriyolu bağdaştırma birimi

BIU, bütün harici veriyolu işlemlerini kontrol eden bir veriyolu kontrol birimine; EU için komut byte’larını tutan komut kuyruğuna; fiziksel bellek adresleri üretme için bir toplayıcıya; dört segment kaydedicisine (CS, SS, DS, ES); komut işaretçisine (IP) ve verileri geçici olarak saklamada kullanılan bazı dahili kaydedicilere sahiptir. BIU, bellek ve I/O işlemleri dahil, bütün harici veriyolu işlemlerini kontrol etmeden sorumludur. Tümleşik devre harici adres yolu, belli bir bellek hücresini veya I/O portunu seçmede kullanılır.

BIU, komut byte’larını okur ve onları EU için komut kuyruğuna yerleştirir. BIU en fazla 4 (8088 için) veya 6 (8086 için) byte komut kodunu önden okuyabilir. EU, bir veri okuma veya yazma işlemine ihtiyaç duymadığı veya program akışında bir dallanma olmadığı sürece, BIU komut byte’larını önden okuma için serbesttir. Bu şekilde komut önden okuma, BIU ve EU birimlerinin paralel çalışmasına imkan tanır. Bu sayede işlemcinin veri işlem hızı artar. Bu şekilde çalışan bilgisayar mimarisine iş-hatlı mimari denir.

2.1.3. 8086-8087 iletişimi

Bir 8086-8087 (ya da 8088-8087) sisteminde mikroişlemci ve CPU komutları eş zamanlı işlenebilir. Yani CPU bir komutu işlemekle meşgulken mikroişlemcide kendisi ile ilgili bir komutu işliyor olabilir. Ancak bazı işlemlerde mikroişlemcinin CPU ’ya yardımcı olması gerektiği için bu eş zamanlılık kısıtlıdır. Hem mikroişlemci hem de CPU komutları aynı veriyolundan aldıkları için ikisi arasında eşgüdüm sağlanması gerekir.

8086-8087 sistemlerinde her iki işlemcide veriyolu üzerinde gözüken komutu inceler. Bunu yapabilmek için her ikisinin de üzerinde aynı veriyolu bağdaştırma birimi (BIU) konmuştur. 8086, 8087 veriyolu arabirimine kendi öngetirme kuyruğunun durumuna ilişkin sinyaller yollayarak her iki işlemcinin de aynı komutu çözümlüyor olmasını güvenceye alır. Bütün CPU komutları 11011 bit dizisi ile başladığı için 8087’nin diğer komutları gözardı etmesi kolaydır. Aynı şekilde mikroişlemcide (belleğe erişim yapanlar dışındaki) tüm CPU komutlarını gözardı eder. Eğer veriyolundaki CPU komutu belleğe erişim yapan bir komut ise, mikroişlemci bellek adresinin en önemsiz byte’ını okur ve protokol gereği boş bir okuma yapar. Bu okuma, verinin veriyoluna çıkmasını sağlar ve 8087 bu değeri veriyolundan okur. Eğer adres bilgisi bir byte’tan daha uzunsa, 8087 veri yolunu 8086’dan devralır ve verinin kalan bölümünü bellekten kendisi okur. Daha sonra veriyolunun denetimini 8086’ya geri verir. İkisi de aynı eşgüdümlü veriyolunu kullandıkları için aynı hızla çalışmak zorundadır. Ayrıca CPU bir komutu işlemeyi bitirmeden mikroişlemcinin bir başka CPU komutunu çözümlemeye başlamasını engellemek gerekir. Bunun için şu yöntem kullanılır: Derleyici ve Çeviriciler her CPU komutundan önce bir WAIT komutu üretirler. Bu komut mikroişlemcinin TEST bacağı aktif olduğu sürece beklemesini sağlar. TEST bacağına da CPU’nun #BUSY bacağı bağlanmıştır. Dolayısıyla, mikroişlemci her CPU komutundan önce WAIT komutu aracılığıyla CPU’nun o anda işlem yapıp yapmadığını denetler. Eğer işlem yapıyorsa bitmesini bekler, yapmıyorsa da sıradaki CPU komutunu çözümlemeye girişir. Aynı şekilde belleğe yapılan işlemin sonucunu yazacak türden CPU komutlarının arkasına da bir WAIT komutu yerleştirilerek CPU ’ya sonucu belleğe yazması için zaman tanınmış olur. Böylece mikroişlemcinin erken davranıp henüz belleğe yazılmamış bir değeri okuması önlenir. CPU yazma işlemini de gerçekleştirdikten sonra da mikroişlemci bu değeri güvenle okuyabilir.

Ek bir tümleşik devre yardımıyla 8087, bir 80186 işlemciye de bağlanabilir. 80186 mikroişlemcisi 1982-1983 yıllarında üretilen bazı PC’lerde merkezi işlem birimi olarak kullanılmıştı ama 80286 kullanan AT’lerin ortaya çıkışıyla tüm önemlerini kaybettiler ve PC tarihinin derinliklerine gömüldüler artık sadece 80186’nın CMOS uyarlaması olan 80C186’lar denetim amaçlı uygulamalarda kullanılıyorlar. 80C186, Intel 387’nin dahili yapısı temel alınarak üretilen 80C187 CPU‘suna bağlanabiliyor.

2.2. Intel 80286 Mikroişlemcisi

8086/8088 mikroişlemcisinin halefi 80286’dır. Bu mikroişlemcinin kullanıcı açısından 8086/8088’e göre 3 temel üstünlüğü bulunmaktadır:

  • Birincisi gerçek (real) mod ile korumalı (protected) moda sahip olmasıdır. Donanım bellek yönetim sistemi sayesinde, bellekte birden çok programın güvenli bir şekilde çalışması mümkün hale gelmiştir.

  • İkincisi, 8086 gibi 8088’den farklı olarak 16-bit veriyoluna sahip olmasıdır. Bu da bellek-mikroişlemci arasındaki veri akış bant genişliğini iki katına çıkartır.

  • Üçüncüsü, daha hızlıdır ve daha yüksek saat hızında çalışabilir. Bu faktörler 80286 tabanlı bir sistemi 8088 tabanlı bir sisteme göre, 5-10 kat daha hızlı yapmaktadır.

Ayrıca, 80286 mikroişlemcisi yeni adresleme ve bellek koruma özelliklerini desteklemek için yeni ek komutlara sahiptir. Bu işlemci IBM PC/AT ve bazı PS/2 bilgisayarlarının ana mikroişlemcisi olmuştur.

80286 bu yüksek performansı, basitleştirilmiş hali şekil 2.2‘de görülen, içinde bulunan birbirinden bağımsız 4 fonksiyonel birim sayesinde sağlar. Veriyolu birimi CPU için gerektikçe, işlem kodu ve veri okuma/saklama gibi bütün veriyolu işlemlerini yerine getirir. CPU eğer yapacak başka bir işlemi yoksa, 6 byte’a kadar komutları önceden okur ve bunları komut birimine gönderir.

Komut birimi veriyolu birimi tarafından okunmuş ham verileri alır ve sonraki yürütme için kodunu çözer. Üç taneye kadar tam kodu çözülmüş komut, bu birimde bir anda bulunabilir. Kodu çözülmüş komutların CPU içinde hazır olarak bulunması CPU yürütme hızını artırır.

Şekil 2.2: Intel 80286 mikroişlemci mimarisi

İşletim birimi komut biriminden gelen komutları işler. Bazı komutlar adres içermektedir. Bu adresler daha sonraki işlemler için adres birimine verilir.

Adres birimi bütün adresleme ve görüntü bellek işlemlerini yerine getirir. (Görüntü bellek, bir programın fiziksel olarak sahip olduğu bellekten daha fazla bellek kullanabilmesini sağlayan bir tekniktir.Program parçalarının yürütme sırasında, gerektikçe, bellek ile disk arasında değiştirme prensibine dayanır. ). Adres biriminin çıkışı, okuma ve yazma adreslemesi için veriyolu birimine iletilir.

2.2.1. 80286/80287 iletişimi

80287’nin mikroişlemci arabirimi 8087’dekinden tümüyle farklıdır. Bir bellek yönetim birimi yardımıyla bellek koruması uygulayan 80286 tüm koruma birimini 80287’nin de üzerine koymak çok pahalı olacağı için farklı bir çözüm uygulanmıştır. Bu sistemlerde, CPU için bütün komutları ve verileri getirip götürme işini mikroişlemci yapar. Tüm bilgi F8h-FFh adresleri arasındaki I/O bölgesi üzerinden akar. Bu adreslere program aracılığıyla erişim mümkün olduğu için yanlış bir yazma işlemi yapılmamalıdır.

Yoksa CPU’nun tuttuğu bilgiler bozulabilir ve yanlış sonuçlarla karşılaşabilirsiniz. 80287 üzerinde işlemleri asıl gerçekleştiren birim 8087’deki ile aynı olduğu için bütün komutlar aynı sayıda saat çevrimi içerisinde işlenir. Ama 80286/80287 sisteminde I/O işlemleri çok fazla olduğu için aynı hızda çalışan bir 8086/8087 sisteminde daha yavaş çalışabilir.

Eski 80286 anakartlarının çoğu CPU işlemci hızını 2/3 ‘ü hızda çalıştıracak şekilde düzenlenmişti. Böylece mikroişlemciye daha yavaş ve daha ucuz bir CPU bağlanabiliyordu. 80286 her zaman beslendiği frekansı ikiye bölüp kullanırken 80287, CKM bacağı “yukarıda” (1) olduğu zaman CLK bacağında gözüken frekansı olduğu gibi kullanıyor, “aşağıda” (0) olduğunda ise bu frekansı 3’e bölerek kullanıyor. Bazı üreticiler bu özellikten yararlanarak 80286’nın daha hızlı CPU’larla da çalışabilmesini sağlayan arayuvalar geliştirdiler. CPU ve CPU yuvasının arasına yerleştirilen bu küçük arayuvaya CKM bacağını yukarıda tutup besleme frekansının bölünmemesini sağlıyor, CLK bacağına da daha hızlı bir frekans üreteci tarafından yeni CPU’nun çalışacağı frekans veriliyor. Böylece mikroişlemci 8 MHz’de çalışırken CPU’nuz 20 MHz gibi bir hızda çalışabiliyor. Ama bu çözüm sisteminizin performansını artırsa da tüm I/O’dan hala yavaş çalışan mikroişlemci üzerinden geçmesinden doğan darboğazı aşamıyor.

Bir 8086-8087 ilişkisini tarafların eşit haklara sahip olduğu bir ilişki olarak görebiliriz. Buna karşılık, bir 80286-80287 ilişkisi daha çok efendi-köle ilişkisini andırır. Bu eşgüdümlülüğü daha da kolaylaştırıyor çünkü CPU’nun bütün veri akışı mikroişlemci üzerinden geçiyor. Pek çok CPU komutunu CPU’ya iletmeden önce mikroişlemci otomatik olarak CPU’nun işlem yapıp yapmadığını denetler. Bu yüzden derleyici ya da çeviricilerin CPU komutlarından önce otomatik WAIT komutu üretmesine gerek yoktur. Ancak üretilmişse de bir zararı olmaz. Bununla beraber WAIT komutunun ikinci kullanım nedeni (CPU belleğe bir değer yazarken mikroişlemcinin beklemesi gerekliliği) hala geçerlidir.

2.3. Intel 80386 Mikroişlemcisi

İntel’in ilk 32-bit mikroişlemcisi 80386’dır. Bu mikroişlemci, diğer x86 işlemcileri gibi, 8086 ve 80286 programlarını hiçbir değişiklik olmadan çalıştırabilmektedir. Bu işlemcinin daha önceki 80286 mikroişlemcisine göre bir çok üstünlüğü bulunur. Bunlar:

  • İşlemcinin kaydedicileri ve aritmetik birimleri 32-bit genişliğindedir. Ayrıca, komut kümesi 32-bit adresleri ve verileri desteklemek için genişletilmiştir.

  • Mikroişlemciden ana belleğe giden, adres yolu ve veriyolu 32-bit’e genişletilmiştir. Bu sayede, komutlar, verileri iki kat hızında okuyabilmekte ve yazabilmektedir.

  • 4 GB‘a kadar fiziksel belleği adresleyebilmektedir(80286 da 16 MB). Diğer yandan, programlara 246 byte (64 terabyte) kadar görüntü bellek sağlayabilmektedir (80286 da 230 byte, 1 GB ).

  • Daha hızlı yürütme hızına sahiptir. Bir çok komutu yürütme zamanı azalmıştır.

  • Tümleşik devre üzerindeki bellek yönetim sistemi, sayfalı adreslemeyi destekler.

80386 da bulunan 32-bit adres yolu, 32-bit veriyolu ve çeşitli kontrol sinyalleri için, 80286 da kullanılan 68 uçlu tümleşik devre kılıfı çok küçüktü bu yüzden Intel daha büyük bir standarda gitti.

Dahili olarak, 80386, 80286 gibi daha yüksek performans için paralel çalışan bir çok fonksiyonel birime sahiptir. 80286’daki gibi 4 yerine, 8 tane alt birim içermektedir. 80386’daki daha fazla olan fonksiyonel bölünme, adres ve yürütme birimlerinde yapılmıştır.

Şekil 2.3: Intel 80386 mikroişlemci mimarisi

80386’nın tümleşik devre uçları, 80286’ya bazı yönlerden benzemektedir. Bellek erişimleri 32-bit kelimeler ile yapılıp, bellek adresleri, 4 byte sınırlara göre ayarlanmalıdır. Böylece CPU 0, 4, 8 gibi adreslerde bulunan kelimelere erişebilmekte, buna karşın, 1, 2 veya 3 gibi adreslerde olanlara erişememektedir. Bunun sonucu olarak, bütün bellek adresleri 4’ün katları şeklindedir. Bu yüzden, iki düşük değerli adres biti her zaman 0’dır ve A0 ve A1 bitleri tümleşik devre üzerinde yoktur.

Bununla beraber, bellekte 8-bit ve 16-bit veriler üzerinde işlem yapan komutlar bulunduğundan, bu problemi çözmek gerekmektedir. 8086 ve 80286 mikroişlemcilerinde BHE sinyali ile bu problem çözüldüğü gibi, 80386 da bu işlem için 4 sinyal BE3- BE0 sağlamaktadır. Bu sinyallerden her biri bir kelime içindeki 4 byte’dan hangisinin kullanılacağını belirtir.

Daha önceki işlemcilerde bulunan, LOCK ve READY kontrol sinyalleri değişmedi. Bununla beraber, 80386’ya yeni 3 veriyolu kontrol sinyali daha eklendi. Bu sinyaller ADS, BS16 ve NA sinyalleridir. ADS sinyali, adres yolunda geçerli bir adres olduğunu belirtir. Bellek bu sinyali gördüğü zaman adres ve kontrol yollarındaki sinyallerin geçerli olduğunu anlar ve çalışmaya başlar. BS16 bir giriş sinyali olup 80386’ya, sistemde 16-bit I/O tümleşik devrelerinin olduğunu belirtmekte kullanılır. 80386 bu sinyali gördüğü zaman, bir 32-bit veri aktarımını peşpeşe iki 16-bit aktarım şeklinde yapar. BS16 mikroişlemciyi yavaşlatmada kullanılmasına karşın NA sinyali hızlandırmada kullanılır. Bellek tümleşik devresi, o anki veriyol çevrimi için READY sinyalini pasif yapmadan, mikroişlemcinin NA girişini aktif yaparak, bir sonraki bellek adresini kabul etmek için hazır olduğunu 80386’ya bildirir. Bu özellik, CPU’nun o anki veriyolu çevrimini bitirmeden, bir sonraki veriyol çevrimine hazır olmasını başlatarak, iş-hattının hızını daha da artırır.

Intel, geleneksel olarak her yeni bir mikroişlemci tümleşik devresinde yapmış olduğu, veriyolu durum ve veriyolu kontrol sinyallerini yeniden tanımlamayı, 80386 mikroişlemcisinde de devam ettirdi, örneğin; daha önceki 80286 tasarımında 4 tane veriyolu durum sinyali bulunmaktaydı. Bu sinyaller, 16 farklı durum göstermesine karşın, sadece 7 durum anlamlıydı ve kullanılmaktaydı. Sonunda Intel’den bir mühendis şu gerçeği gördü: 7£23 yani 3 durum sinyali ile 7 sinyali belirtmek mümkündü. Bu büyük sinyalin neticesi 80386 için yeni durum sinyalleri Yaz/Oku, Veri/Kod ve Bellek/Giriş-Çıkış olarak belirlendi. Bu sinyallerin belirttikleri veriyolu durumları: Kod okuma, veri okuma, veri yazma, giriş-çıkış okuma, giriş-çıkış yazma, kabul ve durma dır.

80286 işlemcisinde bulunan diğer sinyaller, INTR, NMI, HOLD, HLDA, PEREQ, BUSY, ERROR ve RESET, 80386 da aynı fonksiyonlara sahiptir. 80386 yardımcı işlemci doğrudan erişebildiği için, 80286’daki PACK sinyali 80386 da bulunmaz.

2.3.1. 80386-80387 iletişimi

80386-80387 sistemlerinde bulunan mikroişlemci CPU arabirimi 80286-80287 sistemlerindekine çok benzemektedir. CPU’ya programların yanlışlıkla yazma yapılmasını önlemek için I/O alanı F8h-FFh’den 800000F8h-800000FFh alanına kaydırılmıştır. Arabirim performansı iyileştirilmiş ve 32-bit kullanıma açılmıştır. Yeni haliyle iletişim ek yükü 16-20 saat çevrimine indirilmiştir.

2.4. Intel 80486 Mikroişlemcisi

Intel’in 80386’dan sonraki ikinci 32-bit mimarisi 80486 işlemcisidir. Bu işlemcinin temel mimarisi 80386 ile aynıdır. 80386 da 300 bin olan transistör sayısı, 80486’da 1.2 milyona yükseltilmiştir. Bu artışın en önemli nedenleri, 80486’nın içine alınan FPU yardımcı işlemcisi ile 8 K önbellektir.

Bu mikroişlemci, diğer x86 işlemcileri gibi, 8086/8088, 80286 ve 80386 programlarını hiçbir değişiklik olamadan çalıştırabilmektedir. Bu işlemcinin daha önceki 80386 mikroişlemcisine göre farklılıkları özetle şunlardır:

  • Tüm devre üzerinden FPU aritmetik yardımcı işlemcisi

  • Tüm devre üzerinden 8 K Önbellek

  • Bellek okuma ve yazmalarında, eşlik hata kontrolü için kullanılabilen, tüm devre üzerinde bulunan eşlik sinyalleri.

  • Burst (patlama) olarak adlandırılan hızlı yol okuma/yazma çevrimleri

  • Beş aşamalı komut iş-hattı.

Şekil 2.4: Intel 80486 mikroişlemci mimarisi

80486 şekil 2.4‘te yer alan fonksiyonel birimleri içerir. Veriyolu birimi 80486 ve harici aygıtlar arasında fiziksel arabirim sağlar. Veriyolu arabirimi aşağıdaki fonksiyonel varlıkları içerir:

  • Adres Sürücüleri/Alıcıları: 80486 bir veriyolu çevrimini çalıştırdığı zaman, adres sürücü işlemcinin yerel-adres yolu üzerine sürer ve byte hatları mümkün kılar. Ön geçersiz çevrimler esnasında, A31:A4 adres bitleri adres alıcıları arasında işlemci yerel adresinden girer.

  • Tampon Belleğe Yaz: Bu dört tampon bellek veriyolu birimine yazma işlemlerine uygulamalarını tamamlamak için izin vererek, işlemciden dört yazma veriyolu çevrimini tamponlamaya izin verir.

  • Veriyolu Alıcısı: Yazma veriyolu çevrimi esnasında işlemcinin yerel veriyoluna veri girişi yapar. Okuma veriyolu çevrimi esnasında işlemcinin yerel veriyolu çevriminden işlemciye veri girişi yapar.

  • Veriyolu Boyut Kontrol Mantığı: Duyular, mikroişlemci 8-bit veya 16-bit aygıtlarla iletişim kurduğu an gerekli olduğu zaman çoklu veriyolu çevrimlerini otomatik olarak mikroişlemcinin çalıştırmasına sebep olur.

  • Veriyolu Kontrol İstek Sıralayıcısı: Patlama transferi esnasında adreslerin sırasını belirler.

  • Patlama Veriyolu Kontrol Mantığı: Patlama transferi uygulaması esnasında veriyollarını kontrol eder.

  • Önbellek Kontrol Mantığı: Harici önbellek kontrolcüye işlemcinin yerel veriyollarını bağlar.

  • Eşlik Üretimi/Mantık Kontrolü: Otomatik olarak mikroişlemci tarafından yazılan verinin üzerine elde üretir ve okuma veriyolu çevrimleri esnasında elde kontrol eder.

Önbellek birimi: 80486 mikroişlemci bir ön kontrolcü ve 8 K’lık hızlı erişimli statik RAM önbelleğini birleştirir. Ön kontrolcü tarafından kullanılan dizin yapısı dört veriyollu küme birleşmelidir.

Komut iş-hattı ve kod çözücü birimi üç temel bölüm içerir:

  • Önden getirici

  • 32 byte kod kuyruğu

  • Komut kod çözücüsü

80486 mikroişlemci komutları hızlı çözen ve uygulayan beş derinlikli iş-hattını birleştirir.

  • Komut önden getirme

  • Kademeli kod çözücü 1

  • Kademeli kod çözücü 2

  • Yürütme

  • Kaydedici geri yazma

Komut önden getirici; komutları 16 byte’lık bloklar halinde okur. Kod bloğu dahili ön bellek ve 32 byte ön getirim kuyruğunun her ikisinde okunur.

İki kademeli komut kod çözücüsü: Kademeli kod çözücü 1 esnasında, op-kod byte’ı çözülür, seçenekli mod R/M byte’ı kullanılan adresleme şeklini göstermeye yorumlanır ve seçenekli SIB adreslemenin şeklini açıkça belirtmeye kullanılır. Kademeli kod çözücü 2 esnasında, yer değişim adrese eklenir ve acil işlenenler hesaba alınır.

Uygulama birimi komutları yürütür.

Kaydedici geri yazma; komut çalıştırma tamamlanır ve gerekli ise sonuç geri hedef kaydediciye yazılır.

Kontrol birimi mikro-kod birim diye anılır. Kontrol birimi şu alt birimleri içerir:

  • Mikro-kod sıralayıcı

  • Mikro-kod kontrol ROM’u

Bu birim komut kelimelerini yorumlar ve mikro-kod komut kod çözücü birim tarafından beslenen noktalara giriş yapar. Dışlamaları, ara verme noktalarını ve kesmeleri ele alır. Ek olarak tam sayı ve kayan nokta sıralarını kontrol eder.

Kayan nokta birimi 80387 matematik işlemciye ek aynı komut kümesini çalıştırır. Veriyolu veya tam sayı uygulama birim ile mikro-kod ROM, komut kod çözme adres iş hattı veriyolu mantığını paylaşır.FPU iki alt birimden oluşur:

  • FPU

  • FPU kaydedici dosya

CRO’daki kontrol biti programcıya sayısal tanımlama, kayan nokta da hata tespit edildiği zaman, mikroişlemci tarafından kullanılan hata ele alma senaryosu seçmeye izin verir.

Veri yolu birimi aşağıdaki alt birimleri içerir:

  • Genel amaçlı kaydediciler

  • ALU

  • Fıçı kaydırıcı

  • Bayraklar

  • Durum bayrak bitleri sonuçları öncelikle komut tarafından uygulamaya yansıtır.

  • Bayrak kontrol bitleri programcıya mikroişlemcinin kesin işlemsel karakteristikleri girmesine izin verir.

Bellek yönetim birimi iki alt birim içerir:

  • Segmentasyon birimi segment ve ofsetten etkin ve lineer adresleri hesaplar.

  • Sayfalama birimi 80386 mikroişlemcinin sayfalama mekanizması ile aynı fonksiyonlara sahiptir fakat sistem performansını yükseltecek şekilde ayarlanmıştır.

2.5. Intel Pentium Mikroişlemcisi

Pentium, Intel x86 ailesinin beşinci nesil işlemcisi olarak 1993 yılında piyasaya sürüldü. Pentium’un, 80486’ya göre birçok gelişmiş özelliği bulunur. Bunlardan bazıları Daha geniş veriyolu (64-bit), iki tane tamsayı yürütme birimi,daha hızlı yeni tasarlanmış bir aritmetik işlemci birimi (FPU), gelişmiş önbellek (CACHE) yapısı ve dallanma tahmini mantık birimidir. Pentium FPU birimi tekrar tasarlanarak, bazı işlemlerde 80486’dakine göre on kat daha hızlıdır.

Şekil 2.5: Intel Pentium mikroişlemci mimarisi

Pentium’un temel özellikleri aşağıda özetlenmiştir.

  • 32-bit CPU , 64-bit veriyolu ,32-bit adres yolu(4 GB’lık adres alanı).

  • Superscalar mimari:Aynı anda bir saatte , iki tane iş-hatlı tamsayı birimi iki komutu ve bir tane iş-hatlı FPU birimi de bir tane kayan nokta komutu yürütebilmektedir.

  • Ayrı ayrı 8 KB kod ve 8 KB veri önbellekleri

  • 4 MB sayfalama, TLB’de veri bulma oranı artırmaktadır.

  • Dallanma tahmini donanım birimi.

  • Çok işlemcili çalışma için komutlar ve ikinci seviye önbellek için destek.

  • Dahili hata bulma özellikleri.

  • Güç yönetim özellikleri: Sistem yönetim modu ve saat kontrol.

  • Tümleşik devre üzerinde APIC denetleyicisi:Kesme yönetimi ve 8259 ile uyumluluk.

  • İlk Pentiumlar 0,8 Mikron, 5 Volt BICMOS teknolojisi ile 3,1 milyon transistör kullanılarak üretilmiştir. Daha sonra, 0,65 Mikron, 3,3 Volt teknolojisi ve daha çok transistör kullanılabilmiştir.

  • İlk Pentiumlar 60/66 MHz hızına sahipti. Daha sonraları, 75, 90, 100, 120, 133, 150, 166 ve 200 MHz gibi çok değişik çekirdek hızlarında üretildi. Bu işlemcilerin sistem yolu hızları ise 50, 60 ve 66 MHz’dir.

Pentium mikroişlemcisinin harici veriyolu 64-bit ve adres yolu 32-bit’tir. Daha önceki 32-bit veriyoluna sahip 80486 ve 80386 işlemcilerinin iki katı hızında, kod ve veri, Pentium CPU’suna okunabilmektedir. Bununla beraber, 386 ve 486 mikroişlemcileri ile aynı 32-bit kaydedicilerine sahiptir. Diğer bir deyişle, DEC firmasının Alpha tümleşik devresinde yaptığı gibi, Pentium saklayıcılarının uzunluğu 64-bite çıkarılmadı.

Pentium mikroişlemcisinin iç mimarisi şekil 2.5’te gösterilmiştir. Harici 64-bit uzunluğundaki veriyolundan, daha önceki işlemcilere göre iki kat verinin CPU’ya okunabilmesi için, Pentium içine üç yürütme birimi konmuştur. Bunlardan biri kayan nokta komutlarını yürütür, diğer ikisi ise tamsayı komutlarını yürütür. Bu donanım yapısı, aynı anda üç farklı komutun yürütülmesini mümkün kılar. Örneğin, bir yürütme sırasında, FADD ST, ST(2), MOV EAX, 10H ve MOV EBX, 25H komutları aynı anda çalışabilir. Çünkü, komutlar arsında bir bağımlılık yoktur. FADD ST, ST(2) komutu FPU işlemcisi tarafından yürütülürken, diğer MOV EAX, 10H komutu U-Pipe tarafından ve MOV EBX, 25H komutu V-Pipe tarafından yürütülebilir.

Pentium’un en önemli özelliği olan mimari yapısı, Superscalar olarak adlandırılır. Yukarıdaki örnekte olduğu gibi, Pentium’da bellekten komutlar okundukça bu üç birime gönderilir. Komutların farklı yürütme birimlerinde doğru olarak çalışabilmesi için, komut bağımlılıkları , donanım tarafından ele alınır.

Pentium’un bu üç farklı yürütme biriminden yararlanılabilmesi için, bu özeliği göz önüne alıp o şekilde kod üreten özel Pentium derleyicileri kullanılmalıdır. Bu derleyiciler, bir programdaki birbirine bağımlı ve bağımsız komutları bulabilmekte, gereken değişiklikleri yapmakta ve ona göre kod üretmektedir. Bu tür kod üretimi ile çalışma, programın yürütme hızında yüzde kırklara varan iyileştirme yapar. Bunun için Pentium’un yeni Superscalar özelliği avantajından yararlanan derleyici ve diğer uygulamalar kullanılmalıdır.

Üç ayrı yürütme birimini Pentium içine koyabilmek için çok sayıda transistör kullanıldı. Pentium ilk çıktığında 60/66 MHz hızına sahipti. Daha sonraları, kısa bir sürede, daha hızlı ürünler piyasaya sürüldü. Pentium’lar, 75, 90, 100, 120, 133, 150, 166 ve 200 MHz gibi bir çok değişik hızlarda üretildi.

APIC Pentium’un çok işlemcili ortamlarda kullanılabilecek ileri bir donanım özelliğidir. BTB dinamik dallanma tahmini mantığı tarafından kullanılır.

2.6. Intel Pentium Pro Mikroişlemcisi

Pentium Pro, 8086/8088, 80286, 80386, 80486 ve Pentium işlemcilerinden sonra gelen altıncı nesil olduğu için, ilk çıkması sıralarında P6 kod adıyla anılmıştır. İlk Pentium Pro 150 MHz hızında olup bu hızda 23 Watt güç tüketmekteydi. Daha sonraları Pentium Pro tümleşik devreleri daha yüksek hızlarda ve değişen güç tüketimlerinde üretildi.

Temel olarak Pentium Pro daha önceki beş nesil ile uyumludur. Yani 8086/8088, 80286, 80386, 80486 ve Pentium için olan yazılım, Pentium Pro’da çalışmaktadır. 80386, 80486 ve Pentium mikro işlemcileri ile aynı 32-bit kaydedicilere sahiptir. 5,5 milyon transistöre sahip Pentium Pro, daha önceki 3,3 milyon transistör ile üretilen Pentium’a göre bir çok üstünlüğe sahiptir.

Şekil 2.6: Intel Pentium Pro mikroişlemci mimarisi

Pentium Pro işlemcinin iç mimarisi şekil 2.6’da görülmektedir.

Pentium Pro’nun temel özellikleri aşağıda özetlenmektedir:

  • 32-bit CPU, 64-bit veriyolu, 36-bit adres yolu (64 GB adres alanı)

  • Beş fonksiyonel birimli Superscalar mimari:Aynı anda bir saatte, iki tane iş-hatlı tamsayı birimi iki komutu ve iki tane iş hatlı FPU birimi iki tane kayan nokta komutu yürütürken , diğer bir birimde bellek okuma veya yazma işlemi yapabilir.

  • Komutları sıra dışı yürütme özelliği vardır.

  • Ayrı ayrı 8 KB kod ve 8 KB önbellekleri vardır.

  • Tümleşik devre üzerinde(256K,512K ve 1M ) L2 önbelleği vardır.

  • 4 MB sayfalama, TLB’de veri bulma oranını arttırmaktadır.

  • Dallanma tahmini donanım birimi vardır.

  • Çok işlemcili çalışma için ve ikinci seviye önbellek için destek vermektedir.

  • Dahili hata bulma özellikleri vardır.

  • Güç yönetim özellikleri:Sistem yönetim modu ve saat kontrol.

  • Tümleşik devre üzerinde APIC denetleyicisi:Kesme yönetimi ve 8259 ile uyumluluk.

  • Pentium Pro 5,5 milyon transistör kullanılarak üretilmiştir.

  • Pentium Pro 150, 166, 180 ve 200 MHz gibi değişik çekirdek hızlarında üretilmiştir.

Başlangıcından beri CISC felsefesinde işlemciler üreten Intel firması, Pentium işlemcileri ile kullanmaya başladığı RISC kavramlarını, Pentium Pro devam ettirdi. Pentium Pro’da, CPU ‘ya getirilen bütün x86 komutları, yürütülmeden önce, daha küçük mikroişlemler olarak adlandırılan komutlara çevrilmektedir. Bu özellik önemli RISC kavramlarından biridir. Bununla beraber, bu yeni RISC özelliğinin yanında , Intel, CISC kavramlarından olan büyük ve karmaşık komut kümesini, eski x86 işlemcileriyle uyum için korumaktadır. Halbuki RISC makineleri küçük ve basit komut kümelerine sahiptir.

Pentium Pro’da derleyiciler tarafından üretilen x86 komutları, CPU içinde çalışması için mikro işlemlere çevrilir. Bu çevrilen komutlarda üç adresli format kullanılır. Yani komutlardaki ilk iki adres, iki kaynak için ve bir adres, hedef için kullanılır. Örneğin, ADD A, B,C gibi bir RISC komutunda, A ve B kaynak adreslerindeki veri toplanarak sonuç C’de saklanır. ADD AX, BX gibi bir x86 komutu düşünüldüğünde, ikinci kaynak bulunulmaz.

Pentium Pro mimarisinde kullanılan üç adresli komutlar, işlemcinin içinde kullanıcı tarafından erişilemeyen ve görülmeyen kaydedicilerin var olduğu anlamına gelir. Diğer bir deyişle, programcı veya bir derleyici düşünüldüğünde, klasik EAX, EBX, ECX gibi kaydediciler vardır ve Pentium Pro programcılarına görülebilir. Bu yapı, daha önceki X86 nesilleriyle uyumluluk sağlamaktadır.

Pentium Pro’ya eklenen ikinci L2 önbellek aynı silikon tümleşik devresi üzerinde değildir. Çünkü, 256 KB‘a kadar bir SRAM için yaklaşık 2 milyon transistörün ve 512 KB’a kadar olan SRAM için 4 milyon transistörün tek bir silikon tümleşik devresi üzerine yerleştirilmesi mümkün değildi. Bunu için CPU ve SRAM için iki ayrı silikon alanı kullanıldı. CPU özel bir önbellek veriyolu ile SRAM’a bağlandı. Bu önbellek veriyolu CPU hızındadır. Bu mimari, üretim maliyetini artırmasına karşın sistem performansını büyük ölçüde daha iyileştirmektedir.

Komut yürütmede Pentium Pro’da birbirinden bağımsız çalışabilen beş fonksiyonel birim bulunur. İki birim (FPU I ve FPU II ) kayan nokta komutları için, iki birim (INT I ve INT II) tamsayı komutları için , bir birimde (MIU) bellek arabirim komutları içindir.

2.7. Intel Pentium MMX Mikroişlemcisi

Sesli, görüntülü ve grafik özellikler içeren yüksek kaliteli multimedya uygulamaları çalıştırmak, çok hızlı ve karmaşık aritmetik işlemler gerektirir. Bu çeşit karmaşık işlemler normal olarak oldukça özel DSP tümleşik devreleriyle gerçekleştirilir. Bu özel işlemciler, 2D ve 3D grafikler, görüntü ve ses sıkıştırma, fax-modem, canlı resimli PC tabanlı telefon ve görüntü işleme gibi görevleri gerçekleştirmede kullanılır.
Bir PC’ye DSP özelliği eklemenin üç yaklaşımı vardır:

  1. Bilgisayarın anakartında, CPU ile beraber bir DSP işlemcisinin ortak kullanılması. Bu en iyi ve ideal bir yaklaşımdır. Çünkü, şu an piyasada çok güçlü DSP tümleşik devreleri bulunmaktadır. Bunda ana problem, Pc tasarımcıları tarafından takip edilecek, endüstri tarafından kabul edilmiş bir standardın olmayışıdır. Böyle bir standardın olmayışı, hem donanım hem de yazılımda uyumsuzluklara neden olur.

  2. DSP fonksiyonlarını taklit etmek için x86 işlemcisinin ve x87’in beraber kullanılması. Bu yöntem yavaştır ve performansı genellikle kabul edilemez ölçülerdedir.

  3. Bazı DSP fonksiyonlarını x86 mikroişlemcisine konulması. Bu yöntem uyumluluk ve tek bir yaklaşım gerektirmesine rağmen, piyasayı Intel’in tekeline bırakmaktadır. Bu yaklaşımın performansı, birinci yaklaşım kadar olamamasına rağmen, ikincisinden çok daha iyidir.

Şekil 2.7: Intel Pentium MMX mikroişlemci mimarisi

İntel firması bir PC’ye DSP özelliği kazandırmak için MMX olarak adlandırılan bir teknolojiyi, Pentium işlemcilerine 1997’den itibaren koymaya başladı. Bu yılda üretilen Pentium ve Pentium Pro işlemcileri MMX teknolojisi ile sınırlı DSP özelliği sunmaya başladı. MMX, örneğin, Teksas Instrument’ın 320x ailesinin işlemcileri gibi, DSP işlemcilerinde bulunan zengin komutlara sahip olmasına rağmen, bir çok DSP fonksiyonunu oldukça iyi yerine getirmektedir.

Pentium MMX’in temel özellikleri aşağıda özetlenmiştir:

  • MMX teknolojisi için destek: Multimedya işlemleri için 56 tane yeni komut.

  • 32-bit CPU, 64-bit veriyolu, 32-bit adres yolu (4 GB adres alanı).

  • Superscalar mimari: İki tane iş-hatlı tam sayı birimi, bir tane iş-hatlı FPU birimi, iş-hatlı MMX birimi.

  • Ayrı ayrı 16 KB kod ve 16 KB veri önbellekleri.

  • 4 MB sayfalama, TLB de veri bulma oranını artırmaktadır.

  • Dallanma tahmini donanım biriminin yapısı iyileştirilmiştir.

  • Çok işlemcili çalışma için komutlar ve ikinci seviye önbellek için destek.

  • Dahili hata bulma özelikleri.

  • EFLAGS saklayıcısında bulunan ID biti ile belirlenen ve CPUID komutu kullanılarak CPU tanıma özelliği.

  • Güç yönetim özellikleri: Sistem yönetim modu ve saat kontrol.

  • Tümleşik devre üzerinde APIC denetleyicisi: Kesme yönetimi ve 8259 ile uyumluluk.

  • Pentium MMX 4,5 milyon transistör içerir ve Intel‘in gelişmiş 0.35 mikron CMOS teknolojisi ile üretilmiştir. Bu teknoloji düşük gerilim ve yüksek yoğunluk sağlar.

  • Pentium MMX 166, 200 ve 233 MHz gibi değişik çekirdek hızlarında üretildi. Bu işlemcilerin sistem yolu hızları ise 66 MHz‘dir.

Pentium MMX işlemcisi Pentium işlemci ailesinde önemli bir gelişme olmuştur. İlk çıkan ürünler, 166, 200 ve 233 MHz frekanslarında çalışmış ve Intel’in MMX teknolojisini destekleyen ilk mikroişlemcileri olmuştur. Pentium MMX daha önceki Pentium işlemci ailesi ile, hem yazılım hem tümleşik devre uç uyumludur.

MMX teknolojisi SIMD tekniği tabanlıdır. MMX komutları olarak 57 tane yeni komut x86 komut kümesine eklendi. MMX teknolojisi günümüzdeki bir çok Pentium işlemcisinde olmasına rağmen, bunları destekleyen yazılımlar ve derleyiciler azdır.

İlk Pentium işlemcilerinde de bulunan, dinamik dallanma tahmini donanım yapısı, doğruluğu artıracak şekilde, Pentium MMX işlemcisinde daha iyileştirilmiştir. Ayrıca, Pentium MMX 4 taneye kadar kod sıralarını tutabilen, 4 tane ön okuma buffer’ı içerir. Pentium MMX’te iyileştirilen diğer donanım yapısı iş-hatlıdır.

2.8. Intel Pentium II Mikroişlemcisi

Intel Pentium II işlemcisi, Pentium Pro ve MMX teknolojilerinin birleşimi ile üretildi. Pentium II daha önceki işlemcilerle uyumludur. İlk Pentium II işlemciler 233 ve 266 MHz frekanslarında çalıştı. Daha sonraları 300, 333, 400, ve 450 MHz hızlarında Pentium II’ler üretildi. Pentium II’nin temel özellikleri aşağıda belirtilmektedir:

  • 32-Bit CPU, 64-bit veriyolu, 36-bit adres yolu (64 GB adres alanı).

  • Yüksek hızda CPU frekansları ve düşük güç tüketimleri için Inteller 0,25 mikron teknolojisi ile üretilmiştir. 7,5 milyondan fazla transistör kullanılmıştır.

  • MMX teknolojisi içerir.

  • DIB mimarisi, tek yollu işlemcilere göre, bant genişliğini ve performansını artırmaktadır.

  • 233 MHz’den 450 MHz’e kadar değişik hızlarda bulunmaktadır.

  • 450, 400 ve 350 MHz frekansta çalışan ürünler, sistem yol hızını 66 MHz’den 100 MHz’e artırarak, sistem bant genişliğini ve performansını daha iyileştirmektedir.

  • SEC olarak adlandırılan yeni kılıf teknolojisi, yüksek performans veri işleme ve veriyolu teknolojisi sağlar.

  • 32 K (16 K/16 K) L1 önbellek yoğun olarak kullanılan veriye hızlı erişimi sağlar.

  • 512 KB, 1 MB L2 önbellek.

  • 450, 400 ve 350 MHz frekansta çalışan ürünler, adreslenebilir bellek alanından 4 GB’a kadarını saklayabilme desteğine sahiptir.

  • Ölçeklenir sistemlerin 2 işlemciye ve 64 GB fiziksel belleğe genişleyebilmesini sağlar.

  • Sistem ve L2 önbellek veriyolları için, ECC hata analiz, düzeltme ve fonksiyonel fazlalık kontrolü veri bütünlüğü ve güvenirliği özellikleri içerir.

Şekil 2.8: Pentium II Mikroişlemci Mimarisi

Pentium II harici ve dahili mimarisi Pentium Pro ile MMX işlemcilerinin bir bileşimidir. Bununla beraber, bu işlemcinin mimarisinde eskilerine göre bazı yenilikler de bulunur. Örneğin, Pentium II SEC olarak adlandırılan yeni bir kılıfa sahiptir. Bu yeni kılıf Slot-1 olarak belirtilen sistem yuvasına takılır.

Pentium II, Pentium Pro ile başlayan, dinamik yürütme teknolojisi olarak adlandırılan ve aşağıda özetlenen P6 mikro mimari donanım yapısına sahiptir.

Çoklu dallanma tahmini: Dallanmalardaki program yürütme akışını tahmin ederek işlemcinin çalışmasını hızlandırır.

Veri akışı analizi: Komutlar arasındaki veri bağımlılıklarını analiz ederek komutların optimize olmuş ve yeniden sıralanmış görev sırasını üretir.

Tahmini yürütme: Bu optimize görev sırasına göre, tahmini komutları yürütür ve işlemcinin yürütme birimlerinin sürekli meşgul kalmasını sağlayarak genel perfomansı artırır.

Intel MMX teknolojisine sahip Pentium II yeni komutlar ve veri tipleri içerir. MMX teknolojisi, birçok multimedya ve haberleşme uygulamalarına kolay bir şekilde uygulanabilecek temel, genel amaçlı tamsayı komutlar sunar. Bu teknolojinin bazı temel özellikleri şunlardır:

  • SIMD tekniği.

  • 57 yeni komut.

  • 8 tane 64-bit genişliğinde MMX teknolojisi kaydedicisi.

  • 3 tane yeni veri tipi.

Pentium II işlemcisi 32-bit adres yolu ile 64 GB fiziksel ve 64 TB görüntü bellek alanlarına sahiptir. Intel Pentium II işlemcisinde, L1 önbellek boyu 16’dan 32K’ya arttırıldı. İlk çıkan Pentium II 512 KB L2 önbelleğine sahip olmasına rağmen, daha sonraları farklı boylarda L2 önbellekli işlemciler üretildi.

2.8.1. Intel Celeron Ve Xeon Mikroişlemcileri

Intel piyasaya ucuz ve pahalı Pentium II tabanlı iki mikroişlemci, Celeron ve Xeon’u sürdü. Bu işlemciler temel olarak Pentium II mimarisine sahip olmasına karşın bazı farklılıkları bulunur. Örneğin, Celeron’da ikinci seviye önbellek bulunmaz. Bu, işlemcinin performansını düşürmektedir. Celeron 1000 doların altında düşük fiyatlı bilgisayarlar için üretilmiştir.

Pentium II’deki önbellek işlemci hızının yarı hızında çalışmaktadır. Xeon’un Pentium II’den üstünlüğü, ikinci seviye ön belleğinin (L2 önbellek) işlemci hızında çalışmasıdır. Pentium II Slot-1 olarak adlandırılan bir ana kart bağlantısına sahiptir. Buna karşın Xeon Pentium ile slot uyumlu değildir. Xeon yüksek performanslı sunucu bilgisayarları için uygundur.

2.9. Intel Pentium III Mikroişlemcisi

Pentium III mikroişlemcisi 1999 yılının başında Intel tarafında piyasaya sürülmüştür. Pentium III ile gelen önemli bir yenilik, “SIMD” olarak adlandırılan bir yapıdır. Bu mimari yapı ile, ileri görüntü işleme, 3D, ses, video ve ses tanıma gibi uygulamalarda kullanılabilecek 70 tane yeni komut eklenmiştir. Pentium III ayrıca, P6 mikromimarisini (dinamik yürütme, çoklu dallanma tahmini, veri akışı analizi ve tahmini yürütme) çok işlemli sistem yolu ve MMX teknolojisini içerir. Pentium III’ün temel özellikleri aşağıda özetlenmektedir:

  • İlk ürünler 450 ve 500 MHz hızlarındadır. Bu işlemcilerin sistem yolu hızları ise 100 MHz ‘dir.

  • Yüksek hız CPU frekansları ve düşük güç tüketimleri için Intel’in 0.25 mikron teknolojisi ile üretilmiştir. 9,5 milyondan fazla transistör kullanılmıştır.

  • SIMD olarak adlandırılan bir yapı, 70 tane yeni komut ve MMX teknolojisi ile beraber ileri görüntü işleme, 3D, ses, video ve ses tanıma gibi uygulamalara önemli destek sağlar.

  • DIB mimarisi (sistem yolu ve önbellek yolu), tek yollu işlemcilere göre, bant genişliğini ve performansını artırmaktadır. Ayrıca, gelecek sistem teknolojileri için yüksek bant genişliği, performans ve ölçeklenebilirlik sağlar.

  • Pentium III işlemcisi Intel 440BX AGP setini kullanır.

  • PC güvenliği için planlanan yapı bloklarından ilki olan işlemci, seri numarası içerir.

  • Intel tarafından geliştirilen S.E.C.C.2 kılıf teknolojisi, yüksek performans veri işleme yol teknolojisi ve iyileştirilmiş koruma, gelecek yüksek performans işlemcileri için önemli bir yapı sağlar.

  • 32 K (16K/16K) L1 önbellek yoğun olarak kullanılan veriye hızlı erişim sağlar.

  • 512 K L2 önbellek.

  • Pentium III’ün hem 450 ve hem de 500 MHz ürünleri adreslenebilir bellek alanından 4 GB’ına kadarını saklayabilme desteğine sahiptir.

  • Ölçeklenir sistemlerin iki işlemciye ve 64 GB fiziksel belleğe kadar genişleyebilmesini sağlar.

  • Sistem ve L2 önbellek yolları için, ECC hata analiz düzenleme ve fonksiyonel fazlalık kontrolü veri bütünlüğü ve güvenirliği özellikleri içerir.

Pentium III ile ilk defa sunulan SIMD ekleri, 70 yeni komuttan oluşur ve tek komut çok veri (SIMD) kayan nokta ve SIMD tamsayı ve yedekleme kontrol komutlarıma sahiptir. SIMD eklerinden faydalanılacak teknolojilerinden bazıları ileri görüntü işleme, 3D, ses, video ve ses tanıma gibi uygulamalardır. Özellikle:

  • Önceden mümkün olmayan daha yüksek çözünürlüklü ve yüksek kaliteli resimler PC’lerde görüntülenebilecek ve işlenebilecektir.

  • Yüksek kalite ses MPEG2 video ve aynı anda MPEG2 işlemleri.

  • Ses tanıma için, daha yüksek doğruluk ve hızlı cevap zamanlarının yanında azaltılmış CPU kullanımı.

Pentium III’te önemli diğer yeni bir özellik, bellek yönetimi için sunulan komutlardır. Bu komutlar ile bir programcı istenilen verilerin L1, L2 önbelleklerinde veya ana bellekte olacağını belirleyebiliyor. Örneğin, büyüklüğü nedeniyle L1 önbelleğine sığmayan bir 3D nesnesi L2 önbelleğinde saklanıp üzerinde işlem yapılabilir.

Şekil 2.9: Intel Pentium III mikroişlemci mimarisi

Pentium III ayrıca, bir çok multimedya ve haberleşme uygulamalarında kullanılabilecek, 57 tane temel, genel amaçlı tam sayı komut ve 4 yeni veri tipi içeren Intel MMX teknolojisini içerir. Bu teknoloji SIMD tekniğini kullanır ve 8 tane 64-bit genişliğinde kaydedici içerir. Pentium III daha önceki Pentium Pro ile sunulan ve P6 mikromimari dinamik yürütme teknolojisi olarak belirtilen ve çoklu dallanma tahmini, veri akışı analizi ve tahmini yürütme olarak temel üç fonksiyonlu mimari yapıyı içermektedir.

Intel‘in planladığı PC güvenliği yapıtaşlarının ilki olan işlemci seri numarası, işlemci için bir elektronik seri numarası olup, sistem veya kullanıcının bilgisayar ağları veya uygulamalar tarafından tanınmasını mümkün kılar. İşlemci seri numarası sistem ve kullanıcı tanınmasının daha güçlü şekillerde gerektiği aşağıdaki gibi alanlarda kullanılabilir:

  • Güvenlik gerektiren uygulamalar: Yeni internet verilerine ve hizmetlerine güvenli erişim ve döküman aktarımı.

  • Yönetim uygulamaları: Sistem koruması, sistem yükleme ve ayar değişimi için uzak erişim.

  • Bilgi yönetim uygulamaları: Her türlü güvenli bilgi yönetim sistemleri ve ağları.

Pentium III, sistem yolu bant genişliğini çok yüksek tutacak şekilde aynı anda bir çok işlemi destekler. İki işlemciye kadar şeffaf yani hiçbir ek bağlantı ve yük gerektirmeyen bir destek sağlar. Bu, düşük fiyatlı, iki yollu simetrik çoklu işlemi mümkün kılar ve çok görevli işletim sistemleri ve uygulamaları için önemli bir performans artırımı sağlar.

2.10. Intel Pentium IV Mikroişlemcisi

Pentium IV NetBrust mimarisi kullanıyor. NetBrust “net’i hızlandıran, net’e ivme veren anlamına geliyor. Bugünün işlemcilerinde, yazılımların beklediği birçok şey var. Artık işlemcilerin üzerindeki yük özellikle bazı tip uygulamalarda oldukça fazla. Öte yandan diğer uygulamalarda da işlemci gücünden çok sistemin diğer donanımlarının performansları daha fazla önem kazanıyor. Intel’de Pentium IV’ü geliştirirken, daha çok yukarıda bahsedilen uygulama tiplerinden birincisi üzerine yoğunlaştığını söylüyor. Yani Pentium IV’ün amacı, 2000’li yıllarda mikro işlemcilerden yüksek hesaplama kapasitesi sunması bekleyen yazılımlarda yüksek performans sunmak.

Şekil 2.10: Intel Pentium IV mikroişlemci mimarisi

Intel Pentium IV ile birlikte, sistem veriyolları bant genişliğinde büyük bir atılım yaptı. Pentium III’lerde sistem veriyollarının en hızlısı maksimum 1.06GB/s’lik bant genişliğine sahip iken, Pentium IV’te bu rakam tam 3.2 GB/s’ye çıkıyor. Üstelik Pentium IV’ün veriyolu daha da yavaş olan 100Mhz’te çalışıyor. Pentium IV veriyolu her saat çevriminde 4 adet veri transferi yapabiliyor. Böylece efektif çalışma frekansında 400Mhz oluyor. Veriyolunun genişliği, Pentium III’lerdeki gibi gene 64-bit. Hesaplayınca saniyede maksimum 3.2GB/s’lik bir bant genişliği elde ediliyor. Intel bu veriyoluna “Quad-Pumped” (4 kat pompalanmış, güçlendirilmiş) diyor.

Daha hızlı veriyolunun ikinci bir avantajı da NetBurst mimarisinin dizayn hedefleri düşünülünce ortaya çıkıyor. Pentium IV’ün hedef uygulamalarının çoğu (DVD, MP3, Video işleme, Internet üzerinden video gönderimi…) yüksek miktarlarda veri transferi gerektirirler. Dolayısı ile gerek bellek gerekse sistem veriyollarının bu gibi uygulamaların emrine sunabileceği ekstra bant genişliği, oldukça fazla işe yarar. Intel’de hedeflerini göz önüne aldığı vakit 1.06GB/s’lik veriyolunun yetersiz olacağına ve yeni 3.2GB/s’lik veriyolunu kullanılmasının daha uygun olacağına karar vermiş.

Advanced Transfer Cache ile kast edilen 256-bit veriyolu genişliğine sahip, düşük latency’li (veriyi L2 cache’de daha çabuk bulabiliyor) L2 önbellek.

Pentium IV’ün L1 önbelleğinin komut L1 önbelleği (işlemcinin uygulayacağı komutların bulunduğu) bizim alıştığımızdan çok daha farklı. Klasik işlemcilerde L1 önbelleği ikiye ayrılır. Bunlar; komut L1 önbellek (komutları saklayan) ve veri L1 önbellek (komutların işleyeceği verileri saklayan). Pentium IV’ün L1 komut önbelleği (Trace cache) çözümlenmiş komutları saklıyor.

Trace cache, klasik işlemcilerdeki gibi komutların saklanmasından sorumlu. Fakat fark Trace cache’nin çözümlenmiş geçmiş mink kodları saklıyor ve işlemci ihtiyaç duyduğu vakit direkt olarak hesaplama ünitelerine ulaştırıyor. Bu esnada Pentium III ve Athlon/Thunderbird’lerde olduğu gibi döne döne aynı kodun çözümlenmesi için beklenmiyor. Büyük kazançlar sağlanıyor.

Trace cache’nin geliştirilmesinin diğer bir sebebi de, Pentium IV’ün yanlış dal tahmini esnasında, mimarisi yüzünden (daha büyük iş-hatları) ödeyeceği bedeli azaltmak.

2.10.1. BTB

BTB, işlemcinin Dal Tahmini yaparken danıştığı Branch Target Buffer. Dal Tahmini modern işlemcilerin hepsinin başvurduğu bir yöntem. Ofis uygulamaları gibi yazılımlarda Dal Tahminin neredeyse hiçbir faydası yok iken, sürekli aynı işi yapan 3D uygulamalar, MP3 çözümlemesi, DVD çözümlemesi, Ses ve Video işlenmesi gibi uygulamalarda Dal Tahmini resmen harikalar yaratıyor. İşlemcinin bir hesabın sonucu için beklemesine gerek bırakmadan, kendi tecrübelerini tuttuğu BTB benzeri, anı defterine bakıp, bir karar veriyor ve hesaplamaya devam ediyor. Eğer ki daha sonra hesaplanması beklenen işlemin sonucu bitince, tahminin doğru olduğu ortaya çıkarsa, büyük bir kazanç elde edilmiş olunuyor. Öyle ya o esnada işlemci oturup, boş boş beklemedi. Bunun yerine hesaba devam etti. Ama eğer ki tahmin yanlış ise yapılan tüm işlemler boşa gitmiş oluyor ve işlemcinin sil baştan işe başlaması gerekiyor.

İşlemcilerde iş-hatlarının olduğunu biliyoruz. İş-hattı yani üretim hattının her kısmının bir görevi vardır. Örneğin bir kısım kod çözümü ile uğraşırken diğer kısımda kayan nokta birimleri üzerinde (FPU ünitesi) iş yapar. Bir üretim hattının ne kadar çok kısmı varsa, o üretim hattı da o kadar yüksek frekanslarda çalışabilir. Örneğin Pentium ile Pentium II’leri ele alalım. İlk Pentium’ların üretim hatlarının 5 kısmı vardı ve bu işlemciler ancak 233 Mhz’lere kadar ulaşabildi. Pentium II ve III’lerde her üretim hattı 10 adet kısma sahip olan P6 mimarisi kullanıldı ve bu işlemciler 1000 Mhz’lere kadar ulaşabildi.

INT ünitelerinin hesaplama kabiliyeti özellikle ofis uygulamalarında önemli iken, FPU ünitelerinin hesaplama gücü tüm 3D uygulamalar, DVD oynatımı, resim işleme, ses/video işleme gibi özelliklere öne çıkar.

SSE2 ile birlikte Pentium IV’ün 128 bit SIMD Integer ve 128 bit SIMD Double-Precision Floating Point hesaplamalarını da yapabildiğini söyleyebiliriz.

İşlemci eğer ki uygulamanın çalışması esnasında kod çözümü üniteleri veya Trace cache tarafından o esnada gerekli olan kod veya veri ile beslenemezde, hemen sıradaki başka bir minik kodun hesaplanması ile uğraşmaya başlayabiliyor. Yani minik kodların işlenmesi esnasında programın sırasına uyma zorunluluğu yok (Teknik ismi ile, Out of Order, speculative core). Bu sayede işlemci hesaplama ünitelerinin sürekli olarak işler durumda kalması sağlanıyor. Bu Pentium IV gibi yüksek frekanslarda çalışan işlemciler için oldukça önemli ve verimli bir özellik.

3. DİĞER X86 ÜRETİCİLERİ

1978 ve 1979 yıllarında üretilen ilk 8086 ve 8088 mikroişlemcilerinden günümüze, x86 üretim hattı büyük değişiklikler geçirdi ve tarihteki en başarılı mikroişlemci ailesi oldu. Bunun önemli bir nedeni IBM PC ve PC uyumlu bilgisayarların başarısından kaynaklanmaktadır. IBM firması üreteceği ilk PC‘de 8088 mikroişlemcisini kullanmadaki tarihi kararını verirken, Intel doğru zamanda doğru yerde bulunuyordu. Günümüzde x86 pazarı büyük bir endüstri olmuş ve her yıl milyonlarca işlemci satılır hale gelmiştir.

X86 işlemcilerini büyük popülaritesi Intel’den başka firmaları da bu pazara sokmuş ve x86 uyumlu işlemciler üreten bir çok firma ortaya çıkmıştır. AMD, Cyrix, Centaur, IBM, TI, Siemens, Harris gibi firmalar x86 tümleşik devreleri üretme endüstrisine girmiştir. Günümüzde AMD, Cyrix ve Centaur hala aktif olarak yarışmaktadır.

Intel firmasının üretmiş olduğu Pentium işlemcisinden sonra, daha önceleri sayıları çok olan x86 üreticileri azalmaya başladı. Çünkü, Intel yeni işlemcilerindeki teknolojik gelişmeleri bir sır olarak sakladı ve ürünlerinin patent haklarını koyup x86 pazarında tekel olmak istedi. Aynı zamanda, ilk Pentium‘un çıkmasından kısa bir süre sonra Pentium üretim hattını genişletmeye başladı. 1993 yılındaki Pentium’da sonra, 1999 yılına kadar 6 yıl gibi kısa sayılacak bir zaman diliminde, Pentium Pro, Pentium MMX, Pentium II, Pentium III ve Pentium IV işlemcilerini çıkardı. Ayrıca, değişik özelliklerde Celeron, Xeon ve Mobil işlemcilerini sundu.

Intel yeni işlemcisini geliştirirken, diğer firmalar boş durmayıp Intel‘in genişleyip pazara hakim olmasını seyretmedi. AMD ilk firma içi x86 tasarımı olan K5 işlemcisini piyasaya sundu. Bununla beraber K5 geç bir üründü ve çok yavaştı. Bu başarısız ürünü telafi etmek için AMD Nexgen firmasını satın aldı. Nexgen x86 uyumlu Nx586 adındaki işlemciyi üretti. Bundan hemen sonra Nexgen Nx686’yı, yeni nesil işlemci çekirdeğinin tasarımını gerçekleştirdi. AMD Nx686 çekirdeğini kullandı ve başarılı olan K6 mikroişlemcisini üretti. AMD daha sonra bu işlemciye MMX ve diğer gelişmeleri eklemeye devam etti.

AMD firması K6II ve K6III ürünleri ile Intel‘in Pentium II ve Pentium III pazarından bir pay almaktadır. AMD ‘nin son ürünlerinden olan 450 MHz K6III işlemcisinin 500 MHz’lik Intel Pentium III işlemcisinden daha yüksek performans sağladığı söylenmektedir.

Yukarıda bahsedilen süre içinde Cyrix 6×86‘yı pazara sundu. 6×86 Pentium ile uç uyumluydu. Bu tümleşik devreye daha sonra MMX komutları eklendi. Cyrix pazardan daha büyük pay almak için bu ürünü geliştirmiştir.

Pentium döneminde yeni bir Intel rakibi daha ortaya çıktı. Centaur Technologies adındaki firma, hızlı, ucuz ve düşük güç tüketimi olan Pentium uyumlu bir tümleşik devre üretti. Bu firma daha düşük ve daha ucuz bir pazarı hedeflemektedir.

4. SONUÇ VE DEĞERLENDİRME

Bir mikroişlemciyi anlatmanın en iyi yolu, işlemcinin veriyolu ve adres yolu genişliğini söylemektir. Veriyolu; sinyalleri taşımak için tasarlanmış bağlantılar dizisidir.

Mikroişlemcinin yolu denildiğinde ilk akla gelen, veri göndermek ve almak için kullanılan tel kümesidir. Birim zamanda ne kadar çok sinyal gönderilebilirse, o kadar çok veri transfer edilebilir ve veriyolu o kadar hızlı olur.

Veriyolundan tamamen farklı olan adres yolu, verinin gönderileceği veya alınacağı bellek konumunu bildiren adresleme bilgisini taşıyan bir dizi telden oluşur. Veriyolunda olduğu gibi adres yolundaki her bir telde yalnızca tek bir bitlik bilgi taşır. Bu tek bit, söz konusu adresin tek bir basamağını oluşturur. Bu nedenle, tel sayısı arttıkça adreslenecek toplam bellek miktarı da artar. Adres yolunun genişliği, bir yonganın adresleyebileceği maksimum RAM miktarını belirler.

8086 da 16-bit olan veriyolu Pentium işlemcisiyle x86 ailesinin veriyolu uzunluğu 64-bite çıkarılmıştır. Intel, Pentium ile RISC mimarisi tasarım kavramlarından olan Superscalar mimariyi kullanmaya başladı. Pentium da aynı anda bir saatte, iki tane iş-hatlı tam sayı birimi iki komutu ve bir tane iş-hatlı FPU birimi de bir tane FPU komutu yürütebilmektedir.Bu işlemcide ayrıca yürütme performansının önemli olarak etkileyen tümleşik devre üzerinde birinci seviye (L1) ayrı 8 KB kod ve 8 KB veri önbelleği bulunur.

Pentium Pro, 8086/8088, 80286, 80386, 80486 ve Pentium işlemcilerinden sonra gelen 6’ıncı nesil olduğu için, ilk çıkması sırasında P6 kod adıyla anılmış ve önemli mimari ekler sunmuştur. P6 mimarisi dinamik yürütme teknolojisi olarak belirtilen ve çoklu dallanma tahmini, veri akışı analizi ve tahmini yürütme olarak üç temel fonksiyonlu mimari yapıyı içermektedir. Pentium Pro’ya 4 yeni adres hattı daha eklenerek adres yolu 36-bit yapıldı. Intel firması ilk kez 256 K, 512 K veya 1 MB olabilen L2 önbelleğini Pentium Pro işlemcisinin üzerine yerleştirdi.

Intel firması bir PC’ye DSP özelliği kazandırmak için MMX olarak adlandırılan bir teknolojiyi, Pentium işlemcilerine 1997’den itibaren koymaya başladı. MMX teknolojisi Multimedya işlemleri için 57 tane yeni komut sunmaktadır.

Intel Pentium II işlemcisi, Pentium Pro ve MMX teknolojilerinin birleşimi ile üretildi. Bu işlemcide bulunan 36 KB’lık L1 önbelleği yoğun olarak kullanılan veriye hızlı erişim sağlar. Ayrıca tümleşik devre üzerinde 512 KB’dan başlayan L2 önbelleği bulunur.

Pentium III mikroişlemcisi 1999 yılının başında Intel tarafından piyasaya sunulmuştur. Pentium III ile gelen önemli bir yenilik SIMD olarak adlandırılan bir yapıdır. Bu mimari yapı ile, ileri görüntü işleme, 3D, ses, video ve ses tanıma gibi uygulamalarda kullanılabilecek 70 tane yeni komut eklenmiştir. Pentium III ayrıca P6 mikromimarisini çok işlemli sistem yolu ve Intel MMX teknolojisini içerir.

Pentium IV, Intel’in 1995’ten beri ilk tamamen yenilenmiş x86 mikroişlemcisidir. Intel 1995’ten beri MMX, SSE, çip üzeri L2 kaşe bellek ve daha hızlı sistem veriyolları gibi pek çok gelişmeyi işlemcilerine ekledi. Fakat Pentium IV, gelecekteki pek çok çip’in temelini oluşturan gerçek bir yeni nesil tasarımdır. Pentium IV’ün sistem veriyolları 400 MHz’de çalışabilir. Bu durumda Pentium IV en hızlı Pentium III’ten yüzde 33 daha hızlı çekirdek frekansına ve 2 kat daha hızlı bir veriyoluna sahiptir.

Günümüzde x86 pazarı büyük bir endüstri olmuş ve her yıl milyonlarca işlemci satılmaktadır. X86 işlemcilerinin büyük popularitesi Intel’den başka firmaları da bu pazara sokmuş ve x86 uyumlu işlemciler üreten bir çok firma ortaya çıkmıştır. Günümüzde Intel’in yanında AMD, Cyrix ve Centaur hala aktif olarak yarışmaktadır.

AMD ve INTEL İşlemcilerinin Kod Adları

1. AMD İŞLEMCİLERİ

Şekil 1.1: AMD İşlemci

AMD ve Intel dünyadaki en büyük iki mikroişlemci üreticisidir. İçinde bulunduğumuz yıllarda işlemci piyasasında çok geniş bir ürün yelpazesiyle karşı karşıyayız. Üretici firmalar da her işlemciye farklı bir kod adı verirler. O kadar çok kod adı vardır ki bunların arasında kaybolmamak mümkün değil. İşte burada amaçlanan işlemcilerin kod adlarını ve özelliklerini belirlemektir. Kod adlarıyla birlikte işlemci aileleri, saat hızları, L1 ve L2 bellek kapasiteleri, imalat teknolojileri, üretim tarihleri, fiziksel arayüzleri gibi bilgiler verilecektir.

1.1. K5

AMD’nin ilk işlemcisi olan K5, Intel ile rekabet için tasarlanmıştır. Soket 5 platformunu kullanır. Tıpkı Cyrix 6×86’larda olduğu gibi AMD’de işlemcilerini isimlendirirken PR-rating (performance rating) kullanmıştır. PR-rating bir AMD işlemcinin performansının kaç Mhz’lik bir Intel işlemciye eşit olduğu gösteren bir yöntemdir. Bu işlemcide sistem veriyolu genişliği 50-66 Mhz’dir. İşlemcinin 24KB L1 belleği (8KB veri ve 16KB komut alanı) çekirdeğine yerleştirilmiştir. L2 bellek ise anakart üzerinde bulunmaktadır. Bu işlemcinin 4 versiyonu üretilmiştir. K5-PR90 modeli 0.6 mikron, K5-PR100, K5-PR120 ve K5-PR133 modelleri ise 0.35 mikron teknolojisi ile üretilmiştir.

1.2. K6

AMD bu işlemciyi Nisan 1997’de, Pentium II’den bir ay önce, piyasaya sürmüştür. Bu işlemci 0.35 mikron teknolojisi ile üretilmiştir (daha sonra 266 Mhz’lik K6’lar 0.25 mikron teknolojisi ile üretildi). Bu aileye mensup işlemciler 166-233 Mhz saat hızlarında çalışmaktadır. AMD tarafından satın alınan NexGen firmasının geliştirdiği, 686 işlemcisi temel alınarak tasarlanmıştır. L1 bellek miktarı 64KB’a artırılmıştır (32KB veri ve 32KB komut). İşlemciye MMX komut seti dahil edilmiştir. Daha sonraları 266 ve 300 Mhz saat hızında çalışan K6 Model 7 (mobil versiyon) modeli piyasaya sürülmüştür.

1.3. Little Foot

Little Foot kod adı verilen bu işlemci aslında 0.25 mikron teknolojisiyle üretilmiş bir K6 Model 7’dir. Soket 7 platformlarına uygun olarak üretilmiştir.

1.4. K6-2

Bu işlemci yeni K6 kuşağının ilk temsilcisidir. Mayıs 1998’de piyasaya sürülmüştür. Bu işlemciyi öncüllerinden ayıran ana özellikler işlemciye eklenen 3Dnow! komut seti ve 100 Mhz FSB hızıdır. İşlemci 64KB L1 bellekle donatılmıştır (32KB veri ve 32KB komut alanı). L2 bellek hala anakart üzerinde bulunmaktadır ve FSB hızında çalışmaktadır. K6-2 işlemcisinin iki modeli vardır. İlk model 266 (66×4), 300 (100×3), 333 (95×3,5), 350 (100×3.5) ve 366 (66×5.5) Mhz hızlarında, ikinci model ise 380, 400, 450 ve 475 Mhz saat hızlarında çalışmaktadır. İkinci modeli ilkinden ayıran özellik ise yeni bir çekirdek yapısı olan K6-III ile üretilmesidir.

1.5. Chompers

AMD K6 modeli üzerinde bazı geliştirmeler yapıp Chompers işlemcisini piyasaya sürdü. İşlemciyi farklı kılan özellik ise 3D uygulamaları için geliştirilmiş 3DNow! komut setinin çekirdeğe dahil edilmiş olmasıydı. Bu komut seti ile AMD K6-3D (Chompers) gerçekten müthiş bir performans sergiliyordu. Soket 7 ve Super 7 platformları için modelleri piyasaya sürüldü.

1.6. Sharptooth (K6-III)

Bu işlemcide AMD ilk kez L2 belleği işlemcinin çekirdeğine yerleştirmiştir. Bundan önceki işlemcilerde L2 bellek anakart üzerindeydi. Bu işlemci Soket 7 platformlarına uygun olarak tasarlanmıştır. Aslında bu işlemci çekirdeğine 256KB L2 bellek yerleştirilmiş K6-2’den başka bir şey değildir. L2 bellek işlemci ile aynı saat hızında çalışmaktadır. 64KB L1 bellek çekirdeğe dahil edilmiştir, 512KB-2MB arası L3 bellek istek doğrultusunda anakarta takılabilir. İşlemci Şubat 1999’da piyasaya sürülmüş olup 400 ve 450 Mhz’lik iki versiyona sahiptir.

1.7. K6-2+

Soket 7 platformu için üretilmiş işlemcilerden biri olan K6-2+’de 0.18 mikron teknolojisi kullanılmıştır. 128KB L2 bellek işlemci çekirdeğinde, işlemci saat hızında çalışmaktadır.

1.8. Argon

Bu K7 çekirdeğinin kod adıdır.

1.9. Corvette

Mobil Athlon’lara verilen kod adıdır. Daha sonraları Palamino olarak adlandırılmıştır.

1.10. K7 (Athlon)

AMD ilk kez bu işlemcisi ile Intel işlemcilerinin kopyalarını üretmekten vazgeçmiştir. O günün işlemcileri arasında 128KB ile (64KB veri ve 64KB komut) eşsiz bir L1 belleğe sahiptir. Aynı zamanda 512KB’lık L2 bellek işlemci saat hızının yarısı hızında çalışmaktadır. Sistem veri yolunda EV-6 protokolü kullanılmıştır. Böylece aynı protokolü kullanan Alpha işlemcileri ile platform uyumu sağlanmıştır. Bu, aynı anakartta Athlon ya da Alpha işlemcilerden birinin kullanılabilmesi anlamına geliyor. Sistem veri yolu hızı 200 Mhz olan işlemcinin gerçekte 400 Mhz’e kadar potansiyeli vardır. İşlemci çekirdeğine dahil edilmiş MMX komut seti K6-III’e göre daha gelişkindir. Slot A yapısını kullanan işlemci 500-850 Mhz arası hızlarda üretilmiştir.

1.11. Pluto

İlk Athlon K7, Pluto çekirdeği ile bir Slot A modelidir. 500 MHz ila 700 MHz hızlar arasında, 0.25 mikron teknolojisiyle üretilen bu işlemci 22 milyon transistör içeriyor. Ağustos 1999’da piyasaya sürülen bu işlemciden kısa bir süre sonra Orion çekirdeği geliştirilmiştir.

1.12. Orion

Pluto çekirdekli Athlon K7’nin üretilmesinden kısa bir süre sonra AMD 0.18 mikron teknolojisiyle daha iyisini yaparak daha küçük Orion çekirdeğini (K75) çıkardı. Bu modelle Slot A üzerinde 1000 MHz’e kadar hızlar mümkündür. 512 KB L2 önbellek işlemci modülü üzerinde harici olarak yer alır.

1.13. Thunderbird

Thunderbird, soket yapıya sahip bir Athlon işlemcidir. Orion çekirdekli Athlon K752’in aksine, Athlon’un Thunderbird modelinde çekirdekle aynı hızda çalışan bütünleşik 256 KB L2 önbellek bulunur. Thunderbird’ün iki temel versiyonu vardır: 100 MHz FSB ve 133 MHz FSB. İkincisi 900 MHz’den başlıyor. Bu versiyonlar kullanıcılar arasında “B” (100 MHz) ve “C” (133 MHz) takıları ile bilindiler. 1100 Mhz hızında üretilen ilk modeli 512KB, işlemciyle aynı saat frekansında çalışan tümleşik L2 belleğe sahiptir. du. Bu tarihte dar bütçeli PC kullanıcıları bile büyük ligde oynama fırsatı buldular. Bir süre sonra 1400 MHz’lük üst seviye Athlon işlemcinin aşırı ısındığı görüldü; 0.18 mikron’luk bu CPU 72.1 W güç tüketiyordu. Soket A platformu için üretilen bu işlemci 2000 yılının ikinci çeyreğinde piyasaya sürülmüştür.

1.14. Splitfire

Splitfire işlemcisi dar bütçeli tüketiciler içinuygun bir çözümdür. L2 belleği azaltılmış bir Athlon Thunderbird işlemciden başka bir şey değildir. Böylece ucuz ve performanslı bir işlemci piyasaya sürülmüş oldu. L2 bellek Splitfire işlemcisinde 64KB’a (32KB veri ve 32KB komut) düşürülmüştür. 64KB’lık L2 bellek işlemci çekirdeğiyle aynı saat frekansında çalışır. İşlemci L1 önbelleği 128KB olup çekirdek saat frekansıyla eş zamanlı çalışır. Bu işlemci de 2000 yılının ikinci çeyreğinde piyasaya sürülmüştür.

1.15. Camaro

Mobil Duron’lara Comaro kod adı verilmiştir.

1.16. Palamino

Thunderbird çekirdekli Athlon Palomino çekirdeği ile güncellendi. Bu modeller 1500+’dan 2100+ arası saat frekanslarında çalışacak şekilde imal edilmiştir. AMD aynı zamanda yeni ve işlemcinin saat hızını doğrudan yansıtmayan bir model numaralama sistemi getirdi. 0.18 mikron teknolojisiyle üretilen bu işlemcide transistör sayısı 37.5 milyona ulaşmıştır. Tabii Palamino’da yeni özellikler de vardır. İlk başlarda destekleyen anakart olmasa da termal diyot ilk kez işlemciye dahil edildi. AMD, Palomino çekirdeğinden itibaren işlemciye SSE eklentilerini getirdi. Önbellekte ise bir değişiklik yapılmadı.

1.17. Morgan

Morgan kod adlı Duron işlemcisinin 900 ile 1300 Mhz saat hızları arasında çalışan 5 modeli üretilmiştir (900, 1000, 1100, 1200 ve 1300 Mhz). Duron işlemcilerde kullanılan Splitfire çekirdeği bu modellerde yerini daha gelişmiş bir çekirdek olan Palamino çekirdeğine bırakır. Morgan işlemcisinde 128KB dahili L1 bellek ve 64KB dahili L2 önbellek işlemci saat frekansıyla eş zamanlı olarak çalışır. Morgan işlemcisini Splitfire’dan ayıran en önemli özellik ise SSE komut setinin desteklenmesidir. İşlemcide MMX, MMX+, SSE, 3DNow! ve 3DNow!+ komut setleri desteklenir. 0.18 mikron teknolojisiyle üretilen Morgan, Mayıs 2001 yılında piyasaya sürülmüştür. 100 Mhz FSB hızında çalışan işlemcide 25.18 milyon transistör bulunmaktadır.

1.18. Appaloosa

Morgan işlemcilerin üretim teknolojisinde değişiklik yapan AMD Appaloosa kod adı ile 0.13 mikronluk Duron işlemcisini piyasaya sürdü. İşlemcinin diğer özelliklerinde değişiklik yapılmadı.

1.19. Mustang

Mustang, Athlon işlemcisinin sunucu platformları için tasarlanmış bir versiyonudur.

1.20. Thoroughbred A

Thoroughbred A çekirdeği ile birlikte AMD Athlon’un devre genişliğini 0.13 mikrona indirdi. Maksimum güç tüketimi öncülüne yakındır. 1700+’den 2100’e kadar 5 farklı modeli üretilmiştir. Nisan 2002- Haziran 2002 arasında üretilen bu işlemci yerini daha sonra Thoroughbred B modeline bırakmıştır.

1.21. Thoroughbred B

AMD Thoroughbred ile baskıyı artırıyordu: Thoroughbred B, Thoroughbred Aversiyonuna kıyasla 7 değil 8 ara katman içermektedir. Ayrıca FSB hızında da bir fark vardır. XP 1700+’dan XP 2400+’a uzanan modeller 133 MHz FSB hızıyla çalışırken, XP 2600+ ve XP 2800+ 166 MHz’de çalışıyor. Burada bahsedilen son işlemci piyasaya sürülmedi ama örnekleri basına dağıtıldı.

Şekil 1.2: Throughbred ve bir Barton çekirdeği görülüyor.

1.22. Barton

AMD Athlon’un evrimindeki son aşamaya Barton çekirdeği ile ulaşıldı. Öncülüne göre L2 önbelleği iki katına çıkarılarak 512 KB yapılmıştır, saat hızı ise düşürüldü. İşlemciyi özel kılan bir şey de 333 Mhz (166×2) FSB hızında çalışmasıdır. Bu çekirdekte transistör sayısı 54.3 milyona ulaşmış ve güç tüketimi 74.3 W olmuştur. AMD, bir işlemci jenerasyonunda ilk kez işlemci performansını önceki modele (XP 2800+) göre düşürdü.

1.23. Hammer

AMD tarafından üretilen ilk 64 bit işlemcidir. AMD Hammer, 64-bitlik K8 ailesinin ilk x86-64 işlemcisidir. Bu işlemci gelecek nesilin masaüstü ve sunucu platformları için güçlü bir çözüm olarak sürekli geliştirilme aşamasındadır. İşlemci 64 bit olmasına rağmen 32 bitlik uygulamaları da rahatlıkla çalıştırmaktadır. Böylece geriye uyumluluk sağlanmıştır.

Bunların yanı sıra AMD firmasının gelecekle ilgili bazı planları da vardır. AMD’nin bir kaç yıl içinde üretmeyi planladığı bazı işlemcilerin beklenen özellikleri şöyledir.

1.24. Odessa

Bu işlemci mobil bir Athlon 64 olacak. 64 ve 32 bitlik uygulamalara uyumlu olacak bu işlemcinin üretimi 0.09 mikron teknolojisiyle yapılacak. Böylece AMD işlemcilerine daha fazla özellik ekleyebilecek.

1.25. San Diego

Athlon 64’ün masaüstü sistemler için tasarlanmış bir versiyonu olan bu işlemci tıpkı Odessa gibi 0.09 mikron teknolojisiyle üretilecek. 64 ve 32 bitlik uygulamalarla uyumlu olacak.

1.26. Athens

Bu işlemci de Odessa ve San Diego gibi 64 bitliktir. Sunucu sistemler için tasarlanan bu işlemcinin 2004’ün ilk çeyreğinde piyasaya sürülmesi bekleniyor.

2. INTEL İŞLEMCİLERİ

2.1. 486SX

Intel firmasının ürettiği ilk işlemcilerden biri olan 486SX işlemcisinin bir çok modeli mevcuttur. Bunlar sırasıyla 486SX (P23 kod adı ile anılır. Soket 1 yapısı kullanılmıştır), 486SX-SL Enhanced (P23S kod adı ile anılan bu işlemci Soket 1 platformu için üretilmiştir), 487SX (P23N, coprocessor eklenmiştir, Soket 1 platformu)

2.2. 486DX

486SX işlemcisini temel alan 486DX işlemcisinin farklı modelleri üretilmiştir. Bunların arasında 486DX (Soket 1 platformu), 486DX SL-enhanced (P4S kod adlı, Soket 1), 486DX2 (P24, Soket 1), 486DX2 SL-enhanced (P24S, Soket 1), 486DX2 (P24C kod adlı, Soket 3), 486DX4 (P24D, Soket 3), 486DXODP (P23T kod adlı, geliştirilmiş versiyon, Soket 3), 486DXODPR (P4T kod adlı, Overdrive teknolojisi, Soket 1,2,3 platformları), PODP5V (P24T, 486’lar için Pentium OverDrive teknolojisi, Soket 2,3), 486DX4 (P24CT kod adlı, 3,3 volt çekirdek gerilimi, Soket 2,3), UMC 5 DX (Amerika’da satışa sunulmayan bu işlemci U5D kod adı ile anılır, Soket 2,3 platformları için tasarlanmıştır), UMC 5

2.3. 80486DX4

P24C kod adlı bu işlemci Intel’in dördüncü kuşak işlemcilerinin temsilcilerinden biridir. Mart 1994’te piyasaya sürülen bu işlemcinin 75 ve 100 Mhz’l’k versiyonları üretilmiştir. İşlemci saat çarpanı 3 olan bu işlemci 25 ve 33 Mhz’lik veri yolunu kullanabilir. 0.6 mikron CMOS teknolojisi ile üretilmiştir ve 1.6 milyon transistör içerir. 32 bitlik işlemci 168 pinlik PGA seramik paketlere yerleştirilmiştir ve 3,3 volt çekirdek geriliminde çalışır. Saniyedeki maksimum veri aktarım kapasitesi 95.4 MB’tır. Aynı zamanda 4 GB bellek adresleme yeteneği olan işlemci 64KB L2 belleğe sahip olup bellek hızı veri yolu hızına eşittir. x86 komut seti desteklenir. 32 bit kaydedici, 1 adet tamsayı işlemcisi ve 1 adet kayar nokta işlemcisi çekirdeğe dahil edilmiştir. SX (Intel’in bu işlemcisi de Amerika’da satışa sunulmamıştır. Kod adı U5S olan bu işlemci Soket 1,2,3 platformları için tasarlanmıştır)

2.4. Pentium

P5 ailesinin ilk işlemcisi Mart 1993’te üretildi. İlk Pentium kuşağı P5 olarak bilinir (80501 adıyla da anılır). Bu işlemci 0.80 mikron teknolojisiyle üretilmiştir ve 60-66 Mhz FSB hızını destekler. İşlemci çekirdek gerilimi 5 volttur. Bu işlemcilerde çekirdek FSB hızında çalışır (60-66 Mhz). Sadece soket 4 platformuna uygun olarak tasarlanmıştır. Bu işlemci ailesinin bir sonraki temsilcisi olan P54 (80502), P5’ten bir yıl sonra piyasaya sürülmüştür. 0.50 mikron teknolojisiyle üretilen bu işlemci 3.3 volt gerilimde çalışır. Daha sonraları 0.35 mikron üretim teknolojisine geçilmiştir. 75 ile 200 Mhz arası hızlarda çalışan bu işlemci 16KB (8KB veri ve 8KB komut) L1 belleğe sahiptir.

2.5. Pentium Pro

İlk 6. nesil İntel işlemcisi olan Pentium Pro, zamanının oldukça devrimci bir yeniliğidir. Bu işlemcide İntel ilk kez, çekirdekle eş hızlı L2 belleği, işlemci çekirdeği ile birlikte paketlemiştir. 0.50 ve 0.35 mikron teknolojileri ile üretilmiş versiyonları mevcuttur. 0.35 mikron teknolojisi ile üretilen versiyonu L2 bellek miktarını artırmaya imkan sağlamıştır. Böylece işlemci 256, 512, 1024 ve 2048KB L2 ve 16KB L1 bellekle piyasaya sürülmüştür. İşlemci 150-200 Mhz saat hızlarında çalışmaktadır. 60-66 Mhz veri yolu hızını destekleyen bu işlemci sadece Soket 8 platformlarında çalışmaktadır. Pentium Pro, Pentium’un tüm komutlarını desteklemektedir (MMX desteklenmez) ve buna ek olarak cmov, fcomi gibi birkaç komut daha işlemciye eklenmiştir.

2.5.1. Pentium/MMX teknolojisi

Intel’in bir sonraki önemli adımı, 57 komutluk MMX komut setini dahil ettiği P55 işlemcisini üretmek olmuştur. 8 Ocak 1997’de piyasaya sürülen işlemcide 0.35 mikron üretim teknolojisi kullanılmıştır. Çekirdek gerilimi 2,8 volta düşürülmüştür. L1 bellek öncülünün iki katıdır (32KB). İşlemci soket 7 platformlar için tasarlanmış olup 166-233 Mhz saat hızlarında çalışır.

Şekil 2.1: Pentium MMX işlemci

2.6. Tillamook

Dizüstü bilgisayarlar için tasarlanan ilk Intel işlemcidir. 0.25 mikron üretim teknolojisine geçilmesiyle işlemci saat hızının artırılması ve çekirdek geriliminin azaltılması planlanmıştır. Böylece mobil bilgisayarlar masaüstü sistemlerin performansına ulaşabilecektir. İşlemci 32KB L1 bellek ve MMX komut setleri ile donatılmıştır. 133-266 Mhz hızlarda çalışan bu işlemci 60-66 Mhz veri yolu hızını destekler. 8 Ocak 1997’de piyasaya sürülmüştür.

2.7. Pentium II

P6/x86 ailesinin bu temsilcisi Mayıs 1997’de piyasaya sürülmüştür. Bu işlemci ailesine mensup farklı kullanıcı gereksinimlerine uygun üretilmiş bir çok model vardır. Orta çaplı bilgisayarlar için tasarlanmış Pentium II (Klamath, Deschutes, Katmai, vb.), düşük maliyetli sistemler için tasarlanan Celeron (Covington, Mendocino, Dixon, vb.), yoğun kullanımlar ve sunucu çözümleri için tasarlan Xeon (Xeon, Tanner, Cascades, vb.) bu ailenin birer üyesidir.

2.8. Kalamath

Pentium II ailesine mensup ilk işlemcidir. O an için daha gelişmiş üretim teknolojileri olmasına rağmen bu işlemci 0.35 mikron teknolojisi ile üretilmiştir. Bu yüzden işlemci saat hızı 300 Mhz’den fazla değildir. 233-300 Mhz hızlarında çalışan modelleri bulunan bu işlemci 66 Mhz sistem veri yolunu kullanır. Slot 1 yapıda üretilen işlemcide 512KB’lık L2 bellek işlemcinin yarı hızında çalışır. 32Kb’lık L1 belleğe sahip olup 2,8 volt çekirdek gerilimine ihtiyaç duyar. MMX komutlarını destekleyen işlemci 7 Mayıs 1997’de piyasaya sürülmüştür.

2.9. Deschutes

0.25 mikron teknolojisi ile üretilen işlemci 2 volt çekirdek geriliminde çalışır. Böylece Intel 266-450+ Mhz hızlarında çalışan işlemciler yapabilmiştir. 66 ve 100 Mhz sistem veri yolu kullanan modelleri vardır. L1 bellek 32KB ve L2 bellek 512KB’tır. İşlemci Slot 1 platformlar için tasarlanmıştır. 26 Ocak 1998’de piyasaya sürülmüştür.

2.10. Tonga

2 Nisan 1998’de piyasaya sürülen, mobil bilgisayarlar için tasarlanmış bu işlemcide Deschutes çekirdeği kullanılmıştır. 233-300 Mhz hızlarında çalışan işlemci 66 Mhz sistem veri yolunu destekler.

2.11. Katmai

Descuthes işlemcisinin halefi olan bu işlemciye SSE ve geliştirilmiş MMX komut setleri eklenmiştir. 0.25 mikron teknolojisi ile 450-600 Mhz saat hızlarında çalışacak modelleri üretilmiştir. 512KB L2 bellek ve 32KB L1 belleğe sahip olan bu işlemci, 100 Mhz sistem veri yolu kullanır.

2.12. Celeron

Bu işlemci Intel’in devrimci bir ürünüdür. Intel, ilk kez bu ürünle, düşük maliyetli sistemler için çalışmaya başlamıştır. Bu işlemcilerde L2 bellek ya çok azdır ya da hiç kullanılmamıştır. Bu ailenin üyelerini Covington, Mendocino, Dixon olarak sayabiliriz. İlk Celeron işlemcisi Nisan 1998’de piyasaya sürülmüştür. Soket 370 ve Slot 1 versiyonları üretilmiştir.

2.13. Covington

Celeron ailesinin ilk temsilcisidir. Çekirdekte Deschutes temel alınmıştır. 0.25 mikron teknolojisiyle üretilen bu işlemci 266-300 Mhz saat hızlarında çalışır. 32KB L1 bellek (16KB veri ve 16KB komut) olmasına rağmen L2 belleği yoktur. 15 Nisan 1998’de piyasaya sürülen bu işlemcide üretim maliyetini düşürmek amacıyla L2 bellek kullanılmamıştır. İşlemci çekirdeği 2 volt gerilimle çalışır. Slot 1 fiziksel arayüzü kullanılmıştır.

2.14. Mendocino

Celeron ailesinin devamı bu işlemciyle gelmiştir. Öncülü olan Covington’dan fartklı olarak işlemcide 128KB L2 bellek bulunur. İşlemci 300-533 Mhz saat hızlarında çalışır. Veri yolu olarak hala 66 Mhz kullanılır. 0.25 ve 0.22 mikron teknolojileri ile üretilen işlemcilerde L2 bellek çekirdekle eş hızlı olarak çalışır. 8 Ağustos 1998’de piyasaya sürülen işlemci 2 voltluk gerilime ihtiyaç duyar. Başlarda Slot 1 arayüzü ile üretilen işlemci (300A-433 Mhz’lik modeller) daha sonra Soket 370 arayüzünde üretilmiştir (300A-533 Mhz’lik modeller).

2.15. Dixon

Celeron ailesinin diğer bir üyesi olan Dixon 0.25 mikron teknolojisi ile üretilmiş bir mobil bilgisayar çözümüdür. 32KB L1 bellek ve tıpkı Mendocino’da olduğu gibi çekirdekle birlikte paketlenmiş 256KB L2 belleği vardır. Çekirdek hızı 300 ile 500 Mhz arasında değişir. 66 Mhz sistem veriyolu kullanır. Resmi sınıflandırmada göre mobil Pentium II olarak anılır.

2.16. Coppermine

Coppermine 0.18 mikron teknolojisiyle üretilmiş bir Pentium III’tür. 256KB L2 belleğe sahip işlemci 100 ve 133 Mhz sistem veri yollarında çalışabilir. 533-1000 Mhz saat frekanslarında üretilmiştir.

2.17. Coppermine (FC-PGA 370)

Bu işlemci Coppermine’ın ucuz bir versiyonudur. FlipChip PGA 370 tekniği ile Soket 370 platformlar için paketlenmiştir. Ancak Celeron’ların kullandığı Soket 370 ile uyumlu değildir. İşlemci 100 Mhz sistem veri yolu kullanır. FC-PGA Coppermine işlemcilerinin en düşük versiyonu 500 Mhz’liktir. 1,65 volt çekirdek gerilimine ihtiyaç duyar.

2.18. Coppermine 128K

Celeron işlemcilerin yeni versiyonları Coppermine 128K kod adı ile anılır. 566 Mhz’den başlayan bu işlemcilerde Coppermine çekirdeği kullanılır. Ancak L2 bellek 128KB’a düşürülmüştür. Bu işlemci Coppermine çekirdekli Pentium III işlemcisine yakın özellikler sergilemektedir. Aslında tek farkı L2 belleğinin azaltılmış olmasıdır. Celeron’larda SSE komut seti desteği ilk kez bu işlemcide görülür.

2.19. Tualatin

Intel’in bu işlemcisi 0.13 mikron teknolojisiyle üretilmiş Coppermine’dan başka birşey değildir. İşlemcide giriş/çıkış (I/O) gerilimi değiştirilmiştir. Soket 370 platformları için üretilmiştir.

2.20. Timna

Coppermine 128’in mobil platformlar için geliştirilmiş halidir. İşlemciye DRAM kontrolörü eklenmiştir.

2.21. Xeon

Tıpkı öcülünde olduğu gibi Xeon işlemcilerde L2 bellek çekirdekle aynı hızda çalışır. Sunucu platformları için tasarlanmış, Slot 2 yapısı kullanılan ilk işlemcidir. Çoklu işlemci desteği vardır. 0.25 mikron teknolojisi ile üretilen bu işlemcide Deschutes çekirdeği temel alınmıştır. 512, 1024 ve 2048KB’lık CSRAM L2 belleklere sahip modelleri üretilmiştir.

2.22. Tanner

Bir Pentium III Xeon işlemcisi olan Tanner 500 Mhz hızda çalışır. Diğer Xeon’larda olduğu gibi Tanner’de de 512, 1024, 2048KB’lık CSRAM L2 bellekli modeller mevcuttur. 32KB L1 belleğe sahiğ Tanner işlemcisi MMX ve SSE komutlarını destekler.

2.23. Cascades

0.18 mikron teknolojisi ile üretilen bu Pentium III Xeon, aslında bir sunucu Coppermine’dır. Çekirdekle birlikte paketlenmiş 256KB L2 belleğe sahiptir. 600 Mhz hızında çalışan bu işlemci 133 Mhz sistem veri yolu frekansını kullanır. Slot 2 platformları için tasarlanan bu işlemcinin ilk versiyonları sadece ikili işlemci desteğine sahiptir.

2.24. Willamette

Yeni teknolojileri beraberinde getiren bu işlemcide Quad-Pumped veri yolu mimarisi kullanılır. Böylece 100 Mhz’lik sistem veri yolu 400 Mhz’lik etki yaratır. 256KB L1 bellek ve 512KB L2 bellekle birlikte paketlenen çekirdek 0.18 mikron teknolojisi ile üretilmiştir. Intel, performansı artırmak amacıyla bu işlemciye icra birimleri ve çözücüler yerleştirmiştir. Kayar nokta işlemlerinde Coppermine çekirdekli bir işlemciden 5 kat daha fazla performans sergileyen bu işlemcinin üretiminde bir süre sonra 0.13 mikron teknolojisine geçilmiştir. Ayrıca işlemcide Soket 423 arayüzü kullanılır.

2.25. Northwood

0.13 mikron teknolojisi ile üretilen mobil bir Willamette işlemcisidir. 2001 yılı ilk çeyreğinde piyasaya sürülmüştür.

2.26. Foster

Aslında bir Intel Xeon (Pentium 4 sunucu versiyonu) işlemcisi olan Foster Socket 603 platformları için tasarlanmıştır. 0.18 mikron teknolojisiyler üretilen Foster’da daha sonra 0.13 mikron teknolojisine geçilmiş ve işlemci Gallatin olarak adlandırılmıştır.

2.27. Merced

Intel’in birinci nesil 64 bitlik işlemcisidir. Slot M platformları için tasarlanan işlemci üzerinde geliştirmeler yapan Intel McKinley kod adıyla yeni versiyonu piyasaya sürmüştür. 0.18 mikron teknolojisiyle üretilmiştir.

2.28. McKinley

Intel’in ikinci nesil 64 bitlik işlemcisi olan McKinley, Merced işlemcisinin takipçisidir. Bu işlemci de öncülü gibi 0.18 mikron teknolojisiyle üretilmiş ve Slot M platformuna uygun şekilde paketlenmiştir.

2.29. Madison

0.13 mikron teknolojisi ile üretilmiş McKinley işlemcisidir.

2.30. Deerfield

Intel Madison işlemcisinin ucuz bir versiyonudur. Slot M platformuna uygun paketlenmiştir.

AMD ve Intel firmalarının ürettikleri işlemci isimlerinin ortaya çıkışı

Peki AMD ve Intel, işlemcilerine bu isimleri koyarken nelerden esinleniyorlar. AMD’nin ürettiği işlemcilerin kod adlarına bakılacak olursa spor arabaların isimlerinin kullanıldığı farkedilir (Thunderbird, Mustang, Splitfire), daha sonra ilgileri atlara kaymış olmalı (Thoroughbred, Morgan, Appaloosa).

Intel ise üretim tesislerinin yakınlarında bulunan nehirlerin isimlerini işlemcilerine veriyor (Klamath, Deschutes, Drake, Merced).

AMD Thunderbird Mikroişlemci

Thunderbird, bir yeniden yapılanmanın ürünüdür. Intel gibi dev bir firmanın sahip olduğu bir pazarda AMD, ucuz ve düşük performanslı işlemcilerden, hesaplı ve yüksek performanslı işlemciler üretebilen bir firma haline geldi. Kendisini  yeniden yapılandırdı. Bu yeniden yapılanma sürecinde  AMD mühendisleri başarılı Athlon mimarisi için senelerdir çalışmaktadır. Sonuçta bugünün popüler işlemci üreten firması gerçektende adını hak etmeye başladı. AMD’yi (Advanced Micro Devices) gelişmiş mikroişlemci üreten bir firma olarak bahsede biliriz.Thunderbird, esasında üzerinde bazı ufak değişiklikler yapılmış bir Athlon mimarisinin bir ürünüdür. Yani eski SlotA Athlon’lar ile Thunderbird’ler arasında büyük bir fark yoktur.

Şekil 1.1: AMD Thunderbird Mikroişlemcinin görünümü

AMD’nin Athlon için özellikle slot-1 tipi soketlerle uyumlu bir dizayn kullanmasının tek sebebi bu işlemcilerin kullanılacağı anakartların üretim maliyetlerini düşürmektir. AMD’nin kullandığı slot-A slot-1’in ters çevrilmiş halidir ama bütün benzerlik buraya kadardır. Slotlarda elektriksel olarak ta uyum yoktur. Dolayısı ile Athlon işlemci kullanmaya karar veren kullanıcılar bu işlemciler için yeni bir anakart almaları gerekmektedir. Athlon işlemcileri ile uyumlu anakartlar, AMD’nin kendi ürettiği 750 çipsetini veya Via’nın KX çipsetini kullanmaktadırlar.

1. AMD THUNDERBIRD MİKROİŞLEMCİ MİKRO MİMARİSİ

Yeni AMD Athlon işlemci mikro mimari yaklaşımı, karmaşık x86 komutları yerine daha basit işletimleri (OP) işleyerek x86 komut setini geliştirmektedir. Bu OPler özellikle, düzenlenmiş komut alanları ve geniş bir kayıt seti, sabit uzunluktaki kodlamanın yüksek performanslı temellerini gözlemlerken x86 komutları için doğrudan desteği kapsaması için tasarlanmıştır. 1 ila 15 bayt uzunluklara sahip karmaşık x86 komutlarını yerine getirmek yerine AMD Athlon işlemci, x86 programlarında bulunan komut kodlama etkilerini sağlarken daha basit sabit uzunluklu OPleri gerçekleştirmektedir. AMD Athlon işlemcide kullanılan geliştirilmiş mikromimari daha yüksek işlemci çekirdeği performansını mümkün kılmakta olup daha ileri tasarımlar için öne doğru genişletilebilirliği teşvik etmektedir.

Şekil 1.2: AMD Thunderbird Mikroişlemci Mikro-mimarisi

1.1. Superscalar İşlemci

AMD Athlon işlemci, bir agresif, kullanım dışı, üç yollu superscalar x86 işlemcidir. Bir merkezi komut kontrol birimi (ICU) ve iki bağımsız komut planlayıcı ile – bir digit planlayıcı ve bir kayar-nokta planlayıcı–döngü başına üç x86 komutuna kadar taşıyabilir, şifresini çözebilir ve yayınlayabilir. Bu iki planlayıcı üç genel amaçlı digit gerçekleştirme birimi, üç adres oluşturma birimi (AGU) ve üç kayar-nokta / 3D Now! / MMX gerçekleştirme biriminden oluşan dokuz OP’e kadar eşzamanlı olarak yayınlayabilir. AMD Athlon, Sayfa 201’deki Şekil 1’de gösterildiği şekilde, digit programlayıcı ve IEUlardan oluşan digit gerçekleştirme pipeline doğru digit komutlarını hareket ettirmektedir. Kayar-nokta komutları, kayar-nokta programlayıcı ve x87 / 3D Now! / MMX gerçekleştirme noktalarından oluşan kayar-nokta gerçekleştirme pipeline tarafından muamele edilmektedir.

1.2. Sistem veri yolları

AMD’nin tüm işlemcileri EV6 sistem veriyolunu kullanıyorlar. EV6, 64 bit genişliğinde, 100Mhz’te çalışan, DDR bir veriyolu. DDR olması sayesinde efektif olarak 200Mhz’te çalışıyor. Bu da saniyede maksimum 1,6GB verinin sistem veriyolundan transfer edilebilmesi demek.

Şekil 1.3: İşlemcilerin Veriyolu Çalışma Frekansları ve Bant Genişlileri

AMD işlemcilerinin kullandığı gelişmiş EV6 veriyolunu kullanmasından dolayı yukarıdaki grafikten de görüldüğü üzere en hızlı veriyolunu kullanan 133Mhz FSB’lik Pentium 3’ler bile, Thunderbird’lere göre oldukça daha düşük bir sistem veriyolu bant genişliğine sahiptirler. Bu husus özellikle bol veri transferi gerektiren uygulamalarda önemli bir avantajdır. Yalnız Ev6 veriyolunun avantajı özellikle DDR-SDRAM destekli anakartlarda fark edilebilir.

Thunderbird, AMD’nin geliştirdiği 3Dnow! Teknolojsine sahiptir. Böylece kendisi için optimize edilmiş olan uygulamalarda büyük bir performans artışı sunabilecektir. Ancak  3Dnow! Desteğini kullanan bir uygulamaya  henüz yok. Dolayısı ile bu teknolojinin pratik hayatta bir fayda sunabilmesi için, yazılım geliştiricilerinden destek görmesi şarttır. İşlemci ayrıca MMX komut setlerini de destekliyor. Rakip Pentium 3’ler ise hem MMX hemde SSE komut setini desteklemektedir. AMD’nin 3Dnow! teknolojisinin rakibi olan SSE komut setinin desteği daha yaygındır fakat yine de her iki komut setini destekleyen yazılımların sayısı çok azdır.

AMD Athlon sistem veriyolu aşağıdaki özelliklere sahiptir:

  • Yüksek performanslı noktadan noktaya sistem veriyolu topolojisi

  • Yüksek hızlı transferler için kaynak senkronize saat tutulması

  • HSTL gibi düşük gerilimli sarkaç alıcı mantık sinyal seviyeleri

  • Üç 200 MHz bağımsız yüksek hızlı kanal:

    • 13 pimli işlemci talebi kanalı

    • 13 pimli sistem probe kanalı

    • 72 pint veri transfer kanalı (8 – bit ECC)

  • 200 MHz’de saniyede 1.6 Gigabayt zirve veri transfer oranları

  • Büyük 64 – bayt (kaşe hattı) veri patlama transferleri

  • Veri Tamponları:

    • Hafızaya yazma FIFO (MWF)

    • Hafızadan okuma FIFO (MRF)

    • PCI/APCI (AGP-PCI) yazma tamponu

    • PCI/APCI okuma tamponu

  • İşlem Kuyrukları:

    • Komut sırası (CQ)

    • Hafızaya yazma sırası (MWQ)

    • Hafızadan okuma sırası (MRQ)

    • Probe (snoop) sırası (PQ)

Hem Pentium serisi işlemcilerin hem de Athlon’un aynı 242 pinlik slot’u kullanırlar fakat bu benzerlik sadece görünümdedir. Athlon’u bugünkü bx çipsetli anakartlarda kullanılmamasının sebebi, iki işlemcinin farklı sistem veriyolu kullanmasıdır.

Celeron, P2 ve P3 ler GTL+ olarak bilinen sistem veriyolunu kullanır. Celeronlar, bu veriyolunu 66Mhz’te; P2 ve P3’lerde ise 100 veya 133 Mhz’te çalışmaktadır. Daha yüksek hızda çalışan veriyollarının farkı, aynı anda daha fazla veri taşıyabilmesindedir.Günlük uygulamalarda, ofis programlarında, internette sörf esnasında ve bugünkü oyunlarda bile 66Mhz’in taşıyabildiği veri miktarı yeterlidir. Geoforce  gibi GPU işlemciye sahip ekran kartları ile uyumlu oyunlar çıkınca 100 Mhz’lik sistem veri yolu hızı bile yetersiz kalacaktır. Dolayısı ile sistem veriyolu hızı bugüne kadar çok önemli gibi görünmese de yakın gelecekte sistem performanslarında dar boğaz oluşturabilecek önemli bir husus olacaktır. Çünkü büyük miktarlarda veri alınması esnasında kapasitesi yetersiz kalabilecektir. AMD Athlon işlemcilerinin kullanılacağı anakartlardaki sistem veriyolu için farklı bir politika izledi. Direkt olarak GTL+ gibi belli dezavantajları olan bir sistem veriyolunu kullanmak yerine Dijital firmasının üstün EV6 sistem veriyolunu tercih etti.

Normalde EV6 sistem veriyolu da 100 Mhz’te çalışır. Temel fark, bu veriyolunun her bir saat çevriminde iki defa kullanılması ile taşınabilen veri miktarının iki misline çıkarılmasıdır. Lx ve Bx çipsetleri ile donatılmış anakartlardaki AGP veriyolu da aynı şekilde işlemektedir. EV6’da aynen GTL+ gibi 64 bitlik bir veriyolu fakat her çevrimde 128bit(16 bayt) taşıyabilmektedir. Örneğin 100 Mhz sistem veriyolu hızında çalışan GTL+ sistem veriyolu saniyede 800Mb veri taşıyabilirken aynı hızda çalışan EV6 veriyolu 1.6GB veri taşıyabilir. Örnekte,  taşınması gereken veri miktarı dahi EV6 sistem veriyolunun en yavaş versiyonunun taşıyabileceği maksimum veri miktarına göre çok küçük kalmaktadır. Dolayısı ile AMD bu hususta da Intel’in önüne geçmeyi başarmıştır. İ820 çipsetinde de durum çok farklı değildir. Camino maksimum 133 Mhz’te çalışmak için üretilmiştir ve en fazla 1.06 GB/s’lik bir veri transferi yapabilir. Bu değer bile EV6 sistem veriyolunun 1.6 GB/s’lik değerine yaklaşmaktan çok uzaktır. EV6 sistem veriyolu 100 ila 200 Mhz arasında çalışmak üzere üretilmiştir. Eğer bu veriyolu 200 Mhz’te çalışırsa 3.2 GB/s’lik büyük bir veri transfer edebilme değerine ulaşılabilir. Bu da çok yüksek bir veri taşıyabilme kapasitesidir.

1.3. Örnek bir hesaplama ile yakın zamandaki bant genişliği ihtiyacı

Yakın zamanda sistemlerdeki en önemli sorun veri taşınması olacaktır. Bunu  AMD firması yapmış olduğu bir hesapla inceleyecek olursak;

Şekil 1.4: Sistem Veriyolunun Hesaplaması

Eğer 100 Mhz FSB kullanan bir işlemci kullanırsa sistem veriyolunda, veri taşıyabilme kapasitesi 800 MB/s’dir. AGP 2*, 100 Mhz’lik ana hafıza ve PCI veriyolu, gördüğünüz üzere maksimum 1,46 GB/s’lik bir veri transferi oluturabilir. Bu durumda Bx çipsetinin 800 MB’lık kapasitesi çok düşüktür. AMD’ye göre gelecekteki sistemler için bant genişliği ihtiyacı 3.2 GB/s’lik yüksek bir değer olduğunu beyan etmiştir. Dolayısı ile Intel’in GTL+ veriyolu, isterse 200 Mhz’te çalışsın gene de oldukça yetersizdir. Yeni i820 çipseti 133 Mhz’te çalışabilmektedir fakat ancak 1,03 Gb/s’lik bir maksimum bant genişliği kapasitesine sahiptir. Intel yakın bir zamanda daha gelişmiş bir veriyolu kullanmak zorunda kalacaktır. AMD’nin kullandığı EV6 veriyolu ise 200 Mhz’te gelecekteki 3.2 Gb/s’lik ihtiyacı bile karşılayabilir.

Bunlar maksimum bant genişliği ihtiyaçlarıdır. Normal kullanımda bunların 10’da birine bile ihtiyaç olmaz. Buradaki kadar veriye ihtiyaç duyan uygulamalar ancak 1-2 sene zarfında çıkabilecek, çok poligonlu ve detaylı 3D uygulamalar olacaktır.

Intel’in kullandığı GTL+ sistem veriyolunun en büyük sorunu çok işlemcili sistemlerde ortaya çıkmaktadır. Bunun sebebi GTL+’ın kaynakların paylaşıldığı bir sistem veriyolu olmasıdır. Yani 2 işlemcili bir sistemde 100 Mhz’te çalışan bir GTL+ veriyolu işlemci başına sadece 400 Mb’lık veri transferi sağlayabilir. Normal uygulamalarda tek işlemci için yeterli olan 800 Mb/s veri transferi değeri iki ve hatta 4 işlemcili server’larda yetersiz kalacaktır. EV6’nın üstünlüğü bu noktada devreye girer ve sistem üzerindeki her işlemci point to point protocol (noktadan noktaya protokolü) sayesinde eğer ki 100 Mhz’lik EV6 veriyolu kullanılıyorsa kendi 1.6GB/s’lik bağımsız veriyoluna sahip olur. Sonuç olarak EV6 GTL+ göre önemli derecede gelişmiş ve esnek bir veriyoludur. AMD bu noktada geleceğe yönelik bir veriyolunu athlon kullanıcılarının emrine sunmuştur. Bu veriyolu sayesinde ileriki yıllarda AMD Athlon temelli işlemciler kullanan sistemlerin hep yeterli veri iletimi kapasitesine sahip olacaklardır.

1.4. Sistem

Şekil 1.5: AMD Thunderbird Mikroişlemci Sistem veriyolu

AMD – 751 sistem kontrolörü, I/O işlemlerini, tek erişimli hafıza işlemlerini ve blok erişim hafıza işlemlerini gerçekleştirme yeteneğine sahiptir. AMD Athlon sistem veriyolu ayrı bir işlem veriyolu’dır. Ayrı bir işlem veriyolu, AMD – 751 sistem kontrolörünün görevleri çizelgelendirmesine izin vererek ve bu sayede kaynak gecikmeleri esnasında veriyolu serbest bırakan sistem süresini optimize etmektedir.

Sistem kontrolörü, konfigürasyon kayıtlarında tanımlandığı şekilde hafıza taleplerine ve konfigürasyon kayıt boşluğu dahilinde sadece I/O döngülerine yanıt vermektedir.

Sistem veriyolu üstündeki tüm zamanlama sistem saatinden türetilmiştir (SYSCLK).

1.5. İşlemci Ara Yüzü

AMD Athlon sistem veriyolu, saniye başına 1.6 Gigabayt transfer oranlı AMD Athlon işlemciyi destekleme yeteneğine sahip 72-bitlik, 200-MHz, noktadan noktaya, çiftleştirilmemiş, kaynak senkronize saatli veri transfer kanalı dahil, üç bağımsız yüksek hızlı kanaldan oluşmaktadır. Daha yüksek hızlardaki veri transferlerini elde etmek için, AMD Athlon sistem veriyolu açık drenajlı, HSTL benzeri bir sinyal seviyesi kullanmaktadır. PC kartı çoğalımı için kaynak senkronize saat ölçüm tazminleri daha yüksek hız transferlerini mümkün kılmayı geciktirmektedir.

AMD – 751 işlemci ara yüzü, işlemci komutlarına yanıt verir, probeları yayınlar ve işlemciye veya işlemciden dışarıya tüm veri hareketini kontrol eder.

1.6. Hafıza Kontrolörü

AMD 751 sistem kontrolörü, bir AMD Athlon işlemcisi için DRAM ara yüzü sağlayan ve 100 MHz’de PC-100 Rev. 1.0 SDRAM DIMM destekleyebilen bir hafıza talep düzenleyicili yüksek performanslı bir DRAm kontrolörü ile birlikte çalışmaktadır. Hafıza talep düzenleyicisi bir veri bir veri enine bağlantısı (crossbar) olarak hizmet etmekte olup, talep bağlantılarını belirlemekte ve hafıza taleplerinin çizelgesinin oluşturulmasını optimize etmektedir. Büyük çip üstü FIFOlar, talepleri çiftlerinden ayrıştırmak ve mutabakatı sağlamak için kullanılmıştır. Bu özellikler, optimum veriyolu ve hafıza bant genişliklerinin kullanımını tesis etmek için ayrı işlemli işlemci veriyolu ile birleşiktir. Hafıza kontrolörü, 768 Mbayt’lık bir toplama kadar, değişik kombinasyonlarda 100 MHz’de SDRAM’in üç slotuna kadar yönlendirebilir.

AMD – 751 sistem kontrolörü, aşağıdaki mutabakatları desteklemektedir:

  • PCI’dan ana hafızaya ile işlemciden ana hafızaya

  • AGP’den ana hafızaya ile işlemciden ana hafızaya

  • PCI’dan ana hafızaya veya AGP’den ana hafızaya ile İşlemciden PCI’a

PC – 100 Rev. 1.0 SDRAM DIMM, 100 MHz’de DRAM ile iç kontrolör veri tamponları arasında verilerin hızlı patlamasına izin vermektedir. DRAM kontrolörü, hafızaya 72 – bitlik bir veri güzergahını desteklemekte olup, veri bütünlüğü için double-bit hataları belirleyebilen ve single – bit hataları düzeltebilen hata düzeltme kodunu (ECC) desteklemek için konfigüre edilebilir. BIOS, kurulan hafızanın tipi ile program konfigürasyon kayıtlarını birbirine bağlı olarak belirlemelidir.

AMD – 751, aşağıda gösterilen SDRAM tiplerini desteklemektedir. 16 – Mbit teknolojisinde x32 DRAM konfigürasyonlarını desteklememektedir. AMD – 751 mantıksal olarak x4 konfigürasyonunu desteklemesine rağmen tamponlanmamış DIMMler ile tavsiye edilmemektedir.

1.7. Desteklenen SDRAM Organizasyonları

SDRAM Organizasyonu Bankalar Yönlendirme
16M x 4 2 10 x 11
16M x 8 2 9 x 11
16M x 16 2 8 x 11
16M x 32 Desteklenmemektedir
64M x 4 4 10 x 12
64M x 4 2 10 x 13
64M x 8 4 9 x 12
64M x 8 2 9 x 13
64M x 16 4 8 x 12
64M x 16 2 8 x 13
64M x 32 4 7 x 12
64M x 32 2 7 x 13
128M x 4 4 11 x 12
128M x 8 4 10 x 12
128M x 16 4 9 x 12
128M x 32 4 8 x 12

1.8. PCI Kontrolörü

AMD – 751 sistem kontrolörü PCI Yerel Veriyolu Şartnamesi, Rev. 2.2 ile uyumludur. Hem 3.3 V hem de 5 V’da çalışabilir ve 64 bitten 32 bite veri dönüşümünü sunabilmektedir. AMD 751 altı dış PCI yöneticisine kadar desteklemektedir.

AMD 751 iç mutabakatın çok yüksek bir derecesini geliştirmektedir. Yinede, tüm PCI’dan hafızaya işlemler, tanım olarak, tutarlı olup bu yüzden tüm işlemciler ile bağlantılı olmalıdır.

300 baytın üzerinde bir depolama içeren beş ayrı PCI FIFO mutabakatı tesis etmek için kullanılmıştır. Ek olarak, bir PCI yöneticisi için hafıza okumalarını gerçekleştirirken, AMD – 751 sekiz quadwordü önceden yakalamaktadır (bir AMD Athlon işlemci kaşe hattı).

İleri PCI veriyolu komutları, hafıza okuma hattı (MRL), hafıza okuma çoklu (MRM) ve hafıza yazma ve geçersiz kılma (MWI) gibi, veri süresini azamiye getirmektedir. AMD – 751 sistem kontrolörü, PCI başlatıcı okuma gecikmesi ve DRAM faydalanmasını asgariye indirmek için bir dizi teknik kullanmaktadır. Bu özelliklerin kombinasyonu PCI başlatıcısının tüm     133 Mbayt’lık bir patlama transfer oranını elde etmesine izin vermektedir. Ek olarak AMD – 751 bir PCI yönlendiricisi içermektedir.

1.9. Hızlandırılmış Grafik Portu (AGP)

Hızlandırılmış grafik portu (AGP) bir bilgisayar sistemi için alternatif bir ara yüzey veriyolu’dır. AGP, grafik kontrolörü ile hafıza kontrolörü arasında noktadan noktaya bir link sağlamaktadır. Hafızaya bu ek güzergah PCI veriyolu’tan 3D grafik trafik çıkarmakta olup, grafik adaptöründe gerekli görülen hafıza miktarını düşürüp grafik hafızasının bir kısmı gibi işlev görmesine izin vererek ana hafızaya özel bir erişim güzergahı sağlamaktadır. Tipik olarak, AGP adaptörü için tahsis edilmiş olan ana hafızanın bir kısmı, 3D görüntülerinin gerçekleştirilmesini geliştirmek için “dokuların” tutulmasında kullanılabilir.

AGP veriyolu, gerçekte ek yan bant sinyalleri ve komutlarını içeren standart PCI yerel veriyolu’ın bir genişlemesidir. PCI’a üç birincil gelişim pipelinelı hafıza talepleri, ayrı adresler ve veri veriyolularını ve verilerin AGP saatinin her iki köşesinde transfer edildiği double – pumped (2 x) AC zamanlama modunu içermektedir. Double pumping, 533 Mbayt/saniyeye kadar etkin bir veri transfer oranı yaratan 133 MHz kadar yüksek etkin transfer oranlarını mümkün kılmaktadır.

AGP veriyolu, PCI ile AGP transferlerini desteklemektedir. Genelde, A_FRAME# sinyali PCI transferlerini belirtmek için kullanılırken, yeni bir sinyal, PIPE# AGP transferlerini belirtmek için kullanılmaktadır. Bu belgede herhangi bir karşıklıktan kaçınmak amacıyla, sistem genişliğinde PCI veriyolu birincil PCI veriyolu olarak adlandırılmış olup AGP üstündeki Pcı gelişimi ya ikincil PCI veriyolu veya A-Pcı olarak adlandırılmıştır.

AMD – 751, hem 66 MHz hem de 133 MHz’de çalışan bir 32 – bit genişliğinde veri güzergahı sağlayan bir AGP 1.0 uyumlu ara yüzdür. AMD 751 16 mevcut AGP işlemini sıraya sokabilir.

MD – 751 sistem kontrolörü, AGP veriyolu üstünde bir PCI hedefi olarak işlev göstermektedir. AGP veriyolu AGP modunda çalıştığında, grafik kontrolörü AGP başlatıcısı olup hafıza kontrolörünü içeren AMD – 751, AGP hedefi gibi işlev görmektedir.

AMD – 751, tam özellikli grafik – adres yeniden haritalandırma tablosunu geliştirmektedir (GART). Tablo 2’de gösterildiği şekilde, bu GART gelişimi, dört tamamıyla işbirlikçi giriş içeren tablo yürüşlü mantıkta olağan bir dizin ve her bir ara yüzde münferit tablo kaşeleri ile dağıtılmaktadır.

1.10. GART Tablo – Önbellek Boyutları

Arayüz GART Tablo-Kaşe Boyutu/Organizasyon
AGP 16 giriş, tamamıyla işbirlikçi
PCI ve A-PCI 4 giriş, tamamıyla işbirlikçi
İşlemci 8 giriş, tamamıyla işbirlikçi

1.11. Sinyal tiplerinin ham gruplandırması

Ara Yüzey Grup Gerilimler
İşlemci OD Açık drenaj, 1.6 V2a kadar çıkarılmış
SDRAM LVTTL 3.3 V
PCI PCI 3.3 V, 5 V tolerans
AGP AGP 3.3 V

1.12. Saat Ölçümü

AMD – 751 sistem kontrolörü 100 MHz sistem saatini ve bir 33 – MHz PCI saatini kabul etmektedir. AMD – 751, bir sıfır gecikme tamponu vasıtasıyla 100 – MHz SDRAM’i oluşturup kullanmaktadır. 66 MHz AGP saati, şekil 3’de gösterildiği şekilde sistem saat jeneratörü tarafından sağlanmıştır. Bir silikon ve ana kart test edilebilirliği için (NAND ağacı) JTAG olmayan, kısmi tarama şeması kullanmaktadır.

2.  AMD THUNDERBIRD MİKROİŞLEMCİ ÖN BELLEKLERİ

AMD’ nin, işlemcilerinde kullandığı önbellek mantığı; L1 ve L2 ön bellekler olarak aşağıdaki konularda açıklanmıştır.

2.1. L1 ve L2 Önbellekler

AMD yeni işlemcisinde tam 128 Kb’lık bir L1 önbellek kullanılıyorken P3’lerin L1 önbelleği ise sadece 32 Kb boyutundadır. Athlon’un 4 misli büyük L1 önbelleği çok daha fazla program komutu ve verisini hafızasında tutabileceğinden dolayı çok önemli bir avantaja sahiptir. İşlemci işleyeceği verileri L1 önbelleğinde bulamazsa L2 önbelleği arar orada da bulamazsa bu verileri ana hafıza modüllerinden almak zorundadır (L3 önbellek kullanılmıyor ise, K6 işlemcilerinin kullanıldığı ana kartlar üzerinde vardı). Eğer ki işlemcinin çalışması esnasında ihtiyacı olabileceği program komutları veya verileri önbellek bellekler üzerinde bulunamazsa, bunların ana hafıza modüllerinden alınması çok büyük performans kayıplarına sebep olur. Bunun sebebi, verilerin ana hafızdan alınması için geçen süre L1 önbelleğinden alınması için geçen süreye oranla çok daha büyüktür. Athlon’un bu büyük L1 önbelleğinin avantajlarını hem ofis uygulamalarında hem de 3D oyunlarda görmek mümkündür. K6 serisi işlemcilerin 64Kb boyutunda bir L1 önbellek taşımaktadırlar. Bu yüzden K6’lar özellikle önbellek belleklere çok yüklenen ofis uygulamalarında çok iyi bir performansa sahiptiler. Intel, L1 önbelleğinin performans üzerindeki etkisi bu kadar büyük iken, bugüne kadar daha büyük bir L1 önbellek belleği işlemcilerinde sunmadı. Çok hızlı olan bu bellekler çok pahalıdır. Diğer işlemci üreticileri Intel’i sarsabilecek bir hamle yapamadığından dolayı böyle bir maliyet artırımına da gitmek istememişti. Dolayısı ile Athlon P3’lere göre tam 4 misli büyük önbellek belleği sayesinde çok önemli bir avantaja sahiptir. P2 işlemcilerin tamamı ve coppermine kod adlı seriden önceki bütün P3’ler 512 Kb’lık ve işlemcinin yarı hızında çalışan ayrışık bir L2 önbellek bellek ile donatılmışlardır. Örneğin bir P3-500’de 512 Kb’lık 250 Mhz’te çalışan bir L2 önbellek bellek bulunmaktadır. Athlon işlemcilerin yapısı çok esnektir. 512 Kb’tan tam 16Mb’a kadar L2 önbellek bellekler ile donatılabilir fakat bu direkt olarak da fiyata yansır. İlk satılan bütün athlon işlemcileri 512 Kb’lık L2 önbellek belleklere sahiptirler . Bu belleklerin çalışma hızları ise aynı P3’lerdeki gibi işlemci hızının yarısındadırlar. 800 Mhz civarındaki Athlon’larda ise bu durum biraz daha farklıdır. Bunlarda 512 KB boyutunda L2 önbelleğe sahiptirler fakat bunların L2 önbelleği işlemci hızının yarısından da daha düşük bir hızda çalışmaktadır. Çünkü Athlon’un L2 önbelleğinde eski P3 ve P2’ler gibi ayrışık ve diğer hafıza modülü üreten firmalardan alınmasından dolayıdır. Bu firmalar 300 Mhz üzerinde çalışan hafıza modülü üretmekte zorlanmaktadırlar. Haliyle 800 Mhz hızındaki bir Athlon’da 400 Mhz’lik olması gerekirken, bu hızda çalışan bir hafıza modülü üretilemediğinden elde en hızlısı ne varsa o kullanılmaktadır. Intel bu sebepten L2 önbelleklerini 0.18 mikron temelli işlemcilerinde, işlemci merkezi ile bütünleşik üretmektedir. Böylece artık dışarıdaki firmalardan hafıza modülü alınması sorunu da ortadan kalkmaktadır ve L2 önbelleklerde rahatça 800, 900 Mhz gibi süratlerde çalışabilmektedir. Yakın zamanda AMD’de bütünleşik L2 önbelleğe geçmek için hazırlıklarını sürdürmektedir. Athlon işlemci merkezi gerçekten çok güçlü ve işlemcinin çalışması esnasında veriyle beslenebilmesi çok önemlidir.

L1 önbellekte Athlon işlemcilerin avantajı vardır. Athlon işlemcinin merkezi çalışması esnasında 4 misli büyük L1 önbellek sayesinde daha fazla veriye daha çabuk ulaşabilir. Dolayısı ile L2 önbelleğe de daha az bakmak zorunda kalır. Bu da zaman kazancı olarak karşımıza çıkar. Buna rağmen Intel’de bütünleşik önbellek belleğe AMD’den evvel geçmenin avantajına sahiptir. 1000 Mhz’lik bir P3 işlemcinin merkezi L2 önbellek tarafından 1000 Mhz’lik bir çalışma hızıyla beslenirken, 1000 Mhz’lik bir Athlon 350-400 Mhz’lik bir L2 önbellek bellek ile beslenmek zorunda kalmaktadır.

L2 önbellek belleklerden en fazla veri taşıyabileni yeni 0.18 mikron P3’lerdir. En yakın rakibi olan Celeron’a bile büyük bir üstünlük kurmuş durumdadır. Yeni P3 işlemcilerin hızlı L2 önbelleği işlemci merkezini çok daha hızlı bir şekilde besleyebilir. Bu da direkt olarak performansı çok olumlu şekilde etkiler. Eski P3’lerde L2 önbellek 512 KB fakat bunların bant genişliği çok düşük olduğundan dolayı performans olarak yeni P3’lerin gerisinde kalmaktadırlar. Athlon’un L2 önbellek performansı bu işlemci için yeterli değildir.fakat Athlon işlemcisinin hesaplama kabiliyetinin çok yüksek olduğu biliniyor. Ama Athlon işlemcisi gerekli olan veriye yeterli hızda ulaşamazsa işlemci ne kadar hızlı olursa olsun, tüm performansını gösteremez. Athlon L2 önbelleğe P3’lere göre çok daha az ihtiyaç duyar. Çünkü işlemci bulmak istediği veriyi önce L1 önbellekte arar sonra eğer burada bulamazsa L2 önbelleğe bakar. L1 önbellek Athlon’da P3’ün tam 4 kat büyük olduğundan Athlon’un aradığı veriyi L1 önbelleğinde bulma olasılığını çok daha fazladır.

Her iki işlemcinin de önbellek belleklerde birbirlerine göre üstünlükleri var. Yanlız AMD bu yıl zarfında işlemci ile bütünleşik bir L2 önbellekli Athlon üretince, Intel’in işi gerçektende çok zor olacak.

2.1.1. Komut Önbelleği

AMD Atlon işlemcinin kullanım dışı gerçekleştirme motoru, çok geniş bir 64-K bayt L1 komut önbelleği içermektedir. L1 komut önbelleği bir 64-K bayt, çift yönlü, set birleştirici sıra olarak organize edilmiştir. Komut sırasındaki her bir hat 64 bayt uzunluğundadır. L1 komut önbelleği ile birlikte çalışan işlevler komut yükleri, komut ön yakalama, komut ön kod çözümü ve şube önceden belirlemedir. L1 komut önbelleğinde kaçırılan talepler L2 önbelleğinin arka tarafından veya sonradan taşıyıcı ara yüz birimi (BIU) kullanılarak yerel hafızadan yakalanır.

Komut önbelleği, (bir ön yakalama) 64 bayt’lık bir sonraki ardışık hat ve komutları içeren doğal olarak düzenlenmiş 64 bayt üstünde yakalayışlar yaratır. Program uzaysal yerelliğinin temeli veri yakalamayı çok etkin hale getirmekte olup gerekli verileri okuyan harcanan zamanın miktarından dolayı gerçekleştirme duruşlarını azaltmaktadır. Önbellek hattı değişimi en az son kullanılan (LRU) değişim algoritmasını temel almaktadır.

L1 komut önbelleği, birleşik iki katlı çevrim yana bak tampon (TLB) yapısına sahiptir. İlk seviye TLB tamamıyla birleştirici olup 24 girişi içermektedir (16 adet 4 Kbayt sayfalarını tasarlayan ve 8 adet 2 Mbayt ve 4 Mbayt sayfalarını tasarlayan). İkinci seviye TLB dört yönlü set birleştirici olup 4 Kbayt sayfaları tasarlayan 256 giriş içermektedir.

2.1.2. Veri Önbelleği

L1 veri önbelleği iki 64 bit port içermektedir. LRU değiştirme politikası kullanan yazmaya tahsisli ve geri yazmalı bir önbellektir. Veri önbelleği ve komut önbelleğinin her ikisi de çift yönlü ayar birleşimli ve boyut olarak 64 Kbayt’dır. Her bir bankanın 8 bayt genişliğinde olduğu 8 bankaya bölünmüştür. Ek olarak, bu önbellek MOESI (Modifiye, Hamili, Kapsam, Paylaşımlı ve Geçersiz) önbellek eş evrelilik protokolü ve veri paritesini desteklemektedir.

L1 veri önbelleği birleşik iki seviyeli TLB yapısına sahiptir. Birinci seviye TLB tam olarak birleşik olup 32 giriş (4 Kbayt sayfayı planlayan 24 ve 2 Mbayt veya 4 Mbayt sayfayı planlayan sekiz) içermektedir. İkinci seviye TLB dört yönlü ayar birleşik olup 4 Kbayt sayfalarını planlayabilen 256 girişe sahiptir.

2.1.3. L2 Önbellek Kontrolörü

AMD Athlon işlemci çok esnek bir kart üstü L2 kontrolörüne sahiptir. 8 Mbayt’lık sanayi standart SRAMlere kadar erişim için bağımsız bir arka taraf taşıyıcı kullanmaktadır. Daha büyük boyutlar kısmi bir etiketleme sistemi kullanırken 512 Kbayt önbellek için dolu çip üstü etiketleri bulunmaktadır. Ek olarak, iki seviyeli veri TLB yapısı bulunmaktadır. Birinci seviye TLB tamamıyla birleştirici olup 32 giriş (4 Kbayt sayfayı planlayan 24 ve 2 Mbayt veya 4 Mbayt sayfayı planlayan 8) içermektedir.

3. KOD ÇÖZÜMÜ ÜNİTELERİ

Öncelikle işlemciye herhangi bir yazılım tarafından bir emir gönderildiğinde  bu komut setinin parçalanıp daha basit hallere sokulması gerekir. Buradaki mantık insanoğlunun düşünme sistemine biraz ters düşer. Çünkü aynı anda insan sadece bir işle uğraşabilir. Fakat işlemciler aynı anda birçok işle uğraşabilir. Dolayısı ile karmaşık bir komutu parçalayıp işlemcinin birçok kısmında işletmek çok büyük zaman kazancı getirir. İşte bu noktada işlemcilerin decoding(kod çözme)birimleri devreye girer. P3’te aynı anda 3 komut parçalanabilir fakat P3 aynı anda 3 kompleks kodu çözemez. Athlon’da ise kodun ne derece karışık olup olmadığı önemli değildir. Athlon ayrıca 4’üncü bir kod çözücüyü de gerekirse devreye sokabilir. Yani Athlon işlemcinin kod çözümü üniteleri P3 göre daha gelişmiştir. Buda Athlon işlemcinin merkezinin veriyle daha rahat beslenebileceği anlamındadır. Aşağıdaki resimde Athlon işlemci mimarisini daha yakından görülmektedir.  Athlon’un dal-tahmini, kod çözümü ve L1 önbellek’sini işaretlenmiştir. Böylece bir işlemcinin yapısını da yakından imkanımız olacaktır.

Şekil 3.1: AMD Thunderbird Mikroişlemci İşlem Birimleri

3.1. Ön Kod Çözümü

Ön kod çözümü L1 komut önbelleği dolduğunda başlamaktadır. Ön kod çözümü bilgisi komut önbelleğinin yan tarafında yaratılmakta ve depolanmaktadır. Bu bilgi, değişken uzunluktaki x86 komutları arasındaki sınırları etkin biçimde tanımlamak için, VectorPath erken kod çözümü talimatlarından DirectPath ayırt etmek için ve her bir komutta opkod bayt’ını belirlemek için kullanılmaktadır. Ek olarak, ön kod çözümü mantık, CALL, RETURN ve kısa koşulsuz JMP gibi kod şubelerini fark eder. Bir şube fark edildiğinde, şubenin hedefinde ön kod çözümü başlar.

3.2. Şube Önceden Belirleme

Yakalama mantığı, komut önbelleği ile paralel olarak şube önceden belirleme tablosuna erişimi sağlar ve şube komutlarının yönünü önceden belirlemek için şube önceden belirleme tablosunda depolanan bilgileri kullanır.

AMD Athlon işlemcisi, şubeleri önceden belirleyip hızlandırmak amacıyla bir şube hedef adres tamponu (BTB), bir global geçmiş çift modlu sayaç (GHBC) tablosu ve bir geri dönüş adres yığını (RAS) donanımının kombinasyonlarını çalıştırmaktadır. Önceden belirlenen – alınan şubeler, hedef komuta komut yakalayıcı yeniden yönlendirmek için tek döngülük bir gecikmeye sadece maruz kalmaktadır. Yanlış önceden belirleme durumunda, asgari ceza on döngüdür.

BTB, şubenin önceden belirlenen hedef adresine her bir girişi yakalayan, 2048 girişli bir tablodur.

Ek olarak, AMD Athlon işlemci, yakın veya uzak bir çağrıdan geri dönüş adreslerini önceden belirlemek için 12 girişli bir geri dönüş adres yığını geliştirir. CALL yakalandığından, bir sonraki EIP geri dönüş yığınına itilir. Sonraki RET, yığının en üstüne önceden belirlenmiş bir geri dönüş adresini silmektedir.

3.3. Erken Kod Çözümü

DirectPath ve VectorPath kod çözücüler, MacroOP içine komutların önceden kod çözümünü uygulamaktadır. Bir MacroOP, bir veya daha fazla OP içeren sabit uzunluklu bir komuttur. Erken kod çözücülerin çıktıları tüm (DirectPath ve VectorPath) komutlarını program sırasında tutmaktadırlar. Erken kod çözümü, her bir güzergahtan döngü başına üç MacroOP üretmektedir. Her iki kod çözücünün çıktıları birlikte katmerli hale getirilmiş olup pipelinedaki bir sonraki kademeye, komut kontrol birimi, geçirilmiştir.

Hedef 16 bayt komut penceresi komut önbelleğinden elde edildiğinde, ön kod çözümü verisi hangi tip temel kod çözümünün DirectPath ve VectorPath oluşturduğunu belirlemek için incelenmiştir.

3.4. DirectPath Kod Çözücü

DirectPath komutlarının kodları, bir MacroOP içine ve sonuçta son yayınlama kademesindeki bir veya iki OP içine doğrudan çözülebilir. Bir DirectPath komutu, bir veya iki OP içine daha ileri bir şekilde kod çözülebilecek x86 komutları ile sınırlıdır. x86 komutunun uzunluğu DirectPath komutlarını belirlemez. Azami üç DirectPath x86 komutu verilmiş düzenli bir 8 bayt blok işgal edebilir. Bu yüzden, en fazla altı DirectPath x86 komutu DirectPath kod çözüm pipelinenın içine geçebilir.

3.5. VectorPath Kod Çözücü

İki veya daha fazla MacroOP’i gerekli kılan olağandışı x86 komutları VectorPath pipelinedan aşağı doğru devam etmektedir. MacroOPlerin sekansı MROM olarak da bilinen bir çip üstü ROM tarafından üretilmiştir. VectorPath kod çözücü döngü başına en fazla üç MacroOP üretebilir. Bir VectorPath komutunun kodunu çözmek, bir DirectPath komutunun eşzamanlı kod çözümünden koruyabilir.

4. KOMUT KONTROL BİRİMİ (ICU, INSTRUCTION CONTROL UNIT)

Komut kontrol birimi (ICU), AMD Athlon işlemcisi için bir kontrol merkezidir. ICU aşağıdaki kaynakları kontrol etmektedir – merkezi uçuş dahili yeniden sıralanmış tampon, digit planlayıcısı ve kayar-nokta planlayıcısı. Dönüşte, ICU aşağıdaki fonksiyonlardan sorumludur – MacroOP gönderimi, MacroOP geri çekilmesi, kayıt ve bayrak bağımlı çözüm ve yeniden adlandırma, gerçekleştirme kaynak yönetimi, kesintiler, muafiyetler ve şube yanlış önceden belirlemeler.

ICU, erken kod çözücülerden döngü başına üç MacroOP almakta olup bunları merkezleştirilmiş, sabit yayın yeniden sıralanmış tampona yerleştirmektedir. Bu tampon her birinde üç MacroOP bulunan 24 hat dahiline organize edilmiştir. Yeniden sıralanmış tampon, azami komut işleme süresi için (digit veya kayar-nokta olsun veya olmasın) en fazla 72 uçuştaki MacroOP’i ICU’nun izlemesi ve gözlemlemesine izin veriri. ICU eşzamanlı olarak, OP şeklinde son kod çözümü, yayınlama ve  gerçekleştirme için yeniden sıralanmış tampondan hem digit hemde kayar-nokta planlayıcılarına çoklu MacroOP gönderebilir. Ek olarak, ICU muafiyetleri işleme alabilir ve MacroOPlerin geri çekilmesini yönetir.

5. INTEGER GERÇEKLEŞTİRME BİRİMİ (IEU, INTEGER EXECUTION UNIT)

Digit gerçekleştirme pipeline üç kendine has pipedan oluşmaktadır – 0, 1 ve 2. Her bir digit pipe bir digit gerçekleştirme birimi (IEU) ve bir adres oluşturma biriminden (AGU) oluşmaktadır. Digit gerçekleştirme pipeline, sayfa 205’deki Şekil 2 dahilinde gösterildiği şekilde, ICU’daki üç MacroOP gönderim pipeına karşılık gelmesi için organize edilmiştir. MacroOP programlayıcılarda OPlere bölünmüştür. OP, işlemcileri ya kayıt dosyasından veya sonuç taşıyıcılarından mevcut olduğunda yayınlanır.

Şekil 5.1: Integer Gerçekleştirme Birimi

Opler, işlemcileri mevcut olduğunda gerçekleştirilir. Tek bir MacroOP’den OPler kullanım dışı olarak gerçekleştirilebilir. Ek olarak, özel bir digit pipe aynı zamanda değişik MacroOPlerden iki OP (IEU dahilinde bir ve AGU dahilinde bir) gerçekleştirilebilir.

Üç IEU’nun her biri, her birinin mantık işlevini, aritmetik işlevi, koşullu işlevleri, bölünüm kademe işlevlerini, statü bayrak katmerleme ve şube çözünürlüklerini gerçekleştirildiği genel amaçlıdır. AGUlar yükler, depolar ve LEAlar için mantıksal adresleri hesaplamaktadır. Bir yük veya depolama birimi L1 veri önbelleğinden/önbelleğine verileri okumakta/yazmaktadır. Digit programlayıcı, verilen bir MacroOP için mevcut OPler gerçekleştirildiğinde ICU’a tamamlama statüsünü göndermektedir.

Tüm digit işlemleri, çarpanların muafiyeti ile üç IEU’nun herhangi biri dahilinde muamele edilebilir. Çarpanlar, pipe 0’da pipelinena eklenmiş olan bir pipeline çekilmiş çarpan vasıtası ile muamele edilmektedir. Bakınız sayfa 205 Şekil 2. Çarpanlar sürekli olarak digit pipe 0’a yayınlamakta olup yayın mantığı, uygun zamanda yayınlamaktan OPlerin çarpılmamasını engelleyerek 0 ve 1 digit pipelarında çarpan için sonuç taşıyıcı baloncukları yaratmaktadır.

5.1. Integer Planlayıcı

Digit planlayıcı, üç digit gerçekleştirme konumu veya pipelarını besleyen üç geniş sıralama sistemini (bir rezervasyon istasyonu olarak da bilinen) temel almaktadır. Rezervasyon istasyonları, 18 digit MacroOP’lik toplam bir sırlama sistemi için altı giriş derinliğindedir. Her bir rezervasyon istasyonu MacroOPleri digitlara bölmekte olup istenildiği şekilde oluşturma OPlerine göndermektedir.

6. KAYAR-NOKTA GERÇEKLEŞTİRME BİRİMİ

Kayar-nokta gerçekleştirme birimi (FPU), veri güzergahına ek olarak kendine has kullanım dışı kontrolüne sahip bir yardımcı işlemci olarak geliştirilmiştir. FPU x87 komutları için tüm kayıt işlemleri, tüm 3DNow! İşlemleri ve tüm MMX işlemlerini ele almaktadır. FPU, bir yığın yeniden adlandırma birimi, bir kayıt yeniden adlandırma birimi, bir programlayıcı, bir kayıt dosyası ve üç paralel gerçekleştirme biriminden oluşmaktadır. Şekil 3, FPU boyunca veri akışının bir blok diyagramını göstermektedir.

Şekil 6.1: Kayar-Nokta Gerçekleştirme Birimi

Şekil 3 dahilinde gösterildiği şekilde, kayar-nokta mantığı superscalar x87, 3DNow! ve MMX işlemleri için pipelar veya üç ayrı gerçekleştirme konumunu kullanmaktadır. Üç pipe’ın ilki genelde ekleyici pipe (FADD) olarak bilinmekte olup 3DNow! eki, MMX ALU/dönüştürücüsü ve kayar-nokta ek gerçekleştirme birimlerini içermektedir. İkinci pipe çarpan (FMUL) olarak bilinmektedir. 3DNow!/MMX çarpanı/çift yönlü birim ve bir MMX ALU ve bir kayar-nokta çarpanı/böleni/kare kök biriminden oluşmaktadır. Üçüncü pipe, VectorPath sekanslarında kullanılan pek çok OP primitifleri ile kayar-nokta sabit yükleri (FLDZ, FLDPI, vs.), depolar, FLID ile ilgilenen kayar-nokta yük/depo (FSTORE) olarak bilinmektedir.

6.1. Kayar-nokta Programlayıcısı

AMD Athlon işlemci kayar-nokta mantığı, yüksek performanslı, tamamıyla pipeline döşenmiş, superscalar, kullanım dışı gerçekleştirme birimidir. Döngü başına üç x87 kayar-nokta, 3DNow! Veya MMX işlemlerinin karışımının herhangi birinin MacroOP’ini kabul etme yeteneğine haizdir.

Kayar-nokta programlayıcısı kayıt yeniden adlandırması ile ilgilenmekte olup her birinin üç MacroOP’nin 12 hattı olarak organize edilmiş bir tahsis edilmiş 36 girişli programlayıcı tamponuna sahiptir. Aynı zamanda, OP yayını ve kullanım dışı gerçekleştirmeyi de işlemektedir. Floating-point programlayıcısı bir MacroOP’i geri çekmek için, FCOMI komutundan sonuçları karşılaştırmayı yönetmek için ve bir şube yanlış önceden belirlemeden sonuçları geri almak için ICU ile iletişime geçmektedir.

7. YÜK – DEPOLAMA BİRİMİ (LSU)

Yük depolama birimi (LSU), veri yükünü ve L1 veri önbelleğine ve eğer gerekli görülürse, L2 önbelleknin arka kısmına veya sistem hafızasına depo erişimini yönetmektedir. 44 girişli LSU, hem digit programlayıcısına hem de kayar-nokta programlayıcısına bir veri ara yüzü sağlamaktadır. İki sıradan oluşmaktadır – L1 önbellek yükü ve depo erişimi için bir 12 girişli sıra ve L2 önbellek veya sistem hafıza yükü ve depo erişimi için bir 32 girişli sıra. 12 girişli sıra, döngü başına azami iki L1 önbellek yükü ve iki L1 önbellek (32 bit) depo talep edebilir. 32 girişli sıra etkin olarak, 12 girişli sıra vasıtasıyla L1 önbellek sondasında kaçırılan talepleri tutmaktadır. Son olarak, LSU mimari yükler ve depo sıralama kurallarının saklanmasını sağlamaktadır (x86 mimari uyumluluk için bir şart).

Şekil 7.1: LSU Birimi

8. AMD ATHLON SİSTEM TAŞIYICISI

AMD Athlon sistem taşıyıcısı, bir çift tek yönlü 13 bit adres ve kontrol kanalları ve bir çift yönlü 64 bit veri taşıyıcısından oluşan yüksek hızlı bir taşıyıcıdır. AMD Athlon sistem taşıyıcısı, düşük gerilim sallanımını, çoklu işlemi, saat ileri alma ve hızlı veri transferlerini desteklemektedir. Saat ileri alma tekniği, referans saatinin her iki köşesi üstünde veri teslimatı için kullanılmakta olup, bu yüzden, transfer hızını ikiye katlamaktadır. Dört girişli 64 bayt yazma tamponu BIU’a entegre edilmiştir. Yazma tamponu, tek bir büyük yazma döngüsüne çok yazımları birleştirerek taşıyıcı faydalanımını geliştirmektedir. AMD Athlon sistem taşıyıcısını kullanarak, AMD Athlon işlemcisi, saniyede 1.6 Gbayt’lık bir etkin veri işleme süresi üreten 200 MHz’de 64 bit veri taşıyıcı üstünde veri transfer edebilir.

8.1. Dallanma tahmini

İşlemcilerde  tahminde bulunabilirler. İşlemcilerde dal tahmini tekniğini kullanarak büyük miktarlarda performans artışı sağlayabilmektedir. Örneğin işlemcinin belli benzer uygulamalarda hep yaptığı aynı rutin işler vardır. Bu noktada dal tahmini devreye girer. İşlemci belli register’larında (yazmaç) çeşitli işleri tutar. Daha önce yaptığı belli bir uygulamaya benzer bir program çalıştığı anda herhangi bir hesaplamasının sonucu için bu yazmaçlarına bakmaktadır. Eğer buna uygun bir tahmin girişi varsa o hesabın sonucu için bir tahmin yapar ve çalışmasına devam eder. Bu esnada hesapta hala işlenmektedir. Böylece bir hesabın sonucu ile başka bir hesap başlayacaksa sonraki işlem beklemeden işlenebilir. Bu esnada önceki hesap bitip sonucu ortaya çıkınca yapılan tahmin ile karşılaştırılır ve tahmin doğru ise önemli derecede zamandan tasarruf edilmiş olur. İşlemci yanılmışsa tahmin edilerek yapılmış işler silinir ve kalındığı yerden tekrar hesaplanmaya başlanır. Tahmin hadisesinin tutarlılığı, tahmin etmenin gerektiği yerde gerekli kayıt, tecrübe işlemcinin yazmaçlarında varsa %90-95 gibi başarı oranları elde edilebilir. Dolayısı ile dal tahmini çok önemli bir konudur. Ne kadar çok dal girişi varsa işlemcide o derece doğru tahminlerde bulunabilir. P3 kendi yazmaçlarında 512 adet dal tahmin girişi tutabilirken Athlon tam 2048 adet tutabilir. AMD dal tahmininde de Intel’e önemli derecede bir üstünlük sağlamıştır.

8.2. FPU üniteleri

AMD’nin Athlon’dan önceki bütün işlemcileri çok eleştirildi. Bunun sebebi FPU’dur. FPU’nun açılımı kayar-nokta unit(kayan nokta birimi)’dir. Bugün 3D oyunlar 3dmax gibi uygulamalar hep işlemciler üzerinde bu kısma yüklenirler çünkü bu uygulamalar ağırlıklı olarak kayan nokta hesaplamalarından oluşmaktadır. Dolayısı ile bir işlemcinin FPU birimi ne kadar güçlü ve hızlı olursa 3D uygulamalarda da o derece iyi bir performansa sahip olur. Athlon’dan önceki işlemcilerin eleştirilme sebebi K6’ların zayıf FPU birimleri idi. Hatta AMD’nin 3dnow! Teknolojisi, Intel’in yaptığı gibi ek yazmaçlardan oluşan ve K6’ların zayıf FPU birimini desteklemek için üretilmişti. Fakat bu avantajdan faydalanabilmek için uygulmanın 3dnow için uyarlanması gerekmekteydi. Yazılım üreticileri bu uygulama destekli programlar çıkarmayı düşünmediği için bu teknoloji destek göremedi. Fakat durum Athlon’un çıkması ile tamamen tersine döndü. Athlon’un FPU birimleri en az Intel’inkiler kadar güçlüdür ve avantajları da vardır.Athlon’un 3 adet FPU ve Integer birimi vardır, P3’ün ise sadece 1FPU ve 2 adet Integer birimi vardır.

8.3. Pipeline ve Uygulama Birimi

AMD Athlon™ işlemcisi, birbirinden bağımsız iki uygulama pipeline içerir. Bu pipeline’lardan birisi tam sayı işlemleri, diğeri ise floating- point işlemleri içindir. Tam sayı pipeline’ı x86 tam sayı işlemlerini idare ederken, floating-point pipeline’ı x87, 3DNow™ ve MMX ™ talimatlarının hepsini idare eder. Bu ek, bu iki pipeline’nın işleyişini ve fonksiyonelliğini tarif edecektir.

8.4. Komut Alma ve Çözümleme Pipeline Aşamaları

Şekil 5 ve Şekil 6, AMD Athlon İşlemcisinin komut alma ve çözümleme pipeline aşamalarını göstermektedir. Pipeline, komut alma işlemi için oluşan bir döngüden ve komutları düzenleme ve çözümleme için oluşan dört döngüden meydana gelir. Aşama 5’deki 3 port, komut kontrol ünitesine (ICU) iletmek için, döngü başına maksimum bant genişliğinin üç MakroOP olmasını sağlar.

Şekil 8.1: Komut Alma / Tarama / Align / Çözümleme Pipeline Donanımı

En yaygın x86 komutlarının akışı, DirectPath pipeline aşamalarından geçer ve donanımlar tarafından çözümlenir. Mikrokod desteği gerektiren daha aza yaygın olan komutlar ise VectorPath üzerinden akar. DirectPath, her ne kadar yaygın x86 komutlarını çözümlese de, döngü 5’in sonundaki komut gönderme sırasını korumasını sağlayacak olan VectorPath komut bilgisini de barındırır.

Şekil 8.2: Komut Alma / Tarama / Align / Çözümleme Pipeline Aşamaları

Döngü 1- KOMUT ALMA

KOMUT ALMA pipeline aşaması, işlemci   ön belleklerinden ya da sistem hafızasından alınacak olan bir sonraki x86 komut penceresinin adresini hesaplar.

Döngü 2- TARAMA

ARAMA işlemi, komutların başlangıç ve bitiş TARAMA işlemi, ALIGN1 (DÜZENLEME1) işlemine altı taneye kadar düzenlenmiş komut ( DirectPath ve VectorPath) gönderebilir. Ayrıca mikrokod motoruna (MENG), döngü başına bir tane VectorPath komutu iletebilir.

Döngü 3 (DirectPath) – ALIGN1

Her 8-bit yastık bellek (quadword sıralaması) üç taneye kadar komut içerebileceğinden, ALIGN1 maksimum dokuz tane komuta, yada 24 komut biti kadar yastık belleğe kayıt edebilir. ALIGN1, döngü başına bir 8-bit yastık bellekten üç tane komutu ALIGN2’ye göndermeye çalışır.

Döngü 3 (VectorPath) –MECTL

Pipeline mikrokod motoru kontrolü (MECTL) aşaması, VectorPath komutları için mikrokod giriş noktaları oluşturur.

Döngü 4 (DirectPath) – ALIGN2    

ALIGN2, önek bitleri öncelik sırasına koyar, her komut için opcode’u, ModR/M ve SIB bitlerini belirler ve biriktirilen önek bilgileri EDEC işlemine yollar.

Döngü 4 (VectorPath) – MEROM

Mikrokod motoru ROM (MEROM) pipeline aşamasında, bir önceki MECTL döngüsünde oluşturulan giriş noktası MROM işleminin içine kaydedilip, TARAMA tarafından gönderilen komutları çözümleme için gerekli mikrokod çizgilerini elde etmek için kullanılır.

Döngü 5 (DirectPath) – EDEC 

Erken çözümleme (EDEC) aşaması, DirectPath aşamasından (ALIGN2) ve VectorPath aşamasından (MEROM) gelen bilgileri MacroOP’lara çözümler. Ek olarak EDEC, kayıt göstergelerini, flag güncellemelerini, acil değerleri, displacementları ve diğer bilgileri belirler. Bu işlemden sonra EDEC, komut çözümleyicisi aşamasına (IDEC) göndermek için DirectPath’den yada VectorPath’den alınan MacroOP’ların arasından seçim yapar.

Döngü 5 (VectorPath) –MEDEC / MESEQ 

Mikrokod motoru çözümlemesi aşaması (MEDEC) x86 komutları MacroOP’lara çevirir. Mikrokod motoru sıralayıcısı (MESEQ) ise MENG için sıralama kontrollerini (yeniden yönlendirmeler ve dışarıda bırakılanlar) gerçekleştirir.

Döngü 6– IDEC/Yeniden İsimlendirme Komut çözümleyicisi

(IDEC)/yeniden isimlendirme aşamasında, tamsayı ve floating-point MacroOP’ları pipeline içinde birbirinden ayrılır. Tamsayı MacroOP’ları bir sonraki döngünün içinde uygulamaya konmak için programlanır. Floating-point MacroOP’larının, kayıtlara bağlantılı kendi floating-point yığın operatörleri bulunmaktadır. Floating-point ve tamsayı MacroOP’larının tamamı, ICU biriminin içine yerleştirilir.

8.5. Integer Pipeline Aşamaları 

Tamsayı uygulama pipeline’ı, programlama ve uygulama işlemleri için dört yada daha fazla aşamadan meydana gelir ve eğer gerek duyulursa işlemci ön belleklerindeki ve sistem hafızasındaki bilgilere erişimi gerektirir. Üç IEU ile bağlantılı olan üç tamsayı pipe’ı vardır.

Şekil 8.3: Tamsayı Uygulama Pipeline’ı

Şekil 7 ve Şekil 8, ilerideki bölümlerde anlatılacak olan tamsayı uygulama kaynaklarını ve pipeline aşamalarını göstermektedir.

Şekil 8.4: Tamsayı Pipeline Aşamaları

Döngü 7 – SCHED

Programlayıcı pipeline aşamasında (SCHED), programlayıcı yastık bellekler, ICU yada IEU sonuç veriyolularından tamsayı operatörleri bekleyen MacroOP’lara sahip olabilirler.Bütün operatörler alındığı zaman,  SCHED MacroOP’u uygulama için programlar ve OP’ları bir sonraki aşama olan EXEC işlemine dağıtır.

Döngü 8 – EXEC

Uygulama pipeline aşamasında (EXEC), OP ve ona bağlantılı  operatörler bir tamsayı pipe’ı tarafından işlenir.( IEU yada AGU) Eğer adreslerin, işlemi tamamlamak için gerekli verilere ulaşılması için hesaplanmaları gerekiyorsa, OP bir sonraki aşamalara ilerler; ADDGEN ve DCACC.

Döngü 9 – ADDGEN

Adres oluşturma pipeline aşamasında (ADDGEN), taşınan yada depolanmış Op, veri ön bellek TLB’lerine ve ön belleğe yollanmak üzere bir lineer adres hesaplar.

Döngü 10 – DCACC 

Veri ön bellek erişim pipeline aşamasında (DCACC), bir önceki aşamada oluşturulan adres, bilgi ön bellek düzenlerine ve TLB’lere erişim için kullanılır. Bu veri için programlayıcıda bekleyen herhangi bir OP veriye katılır ve EXEC aşamasına ilerler. (bütün diğer operatörlerin uygun olduğu varsayılarak.)

Döngü 11 – RESP

Cevap pipeline aşamasında veri ön belleği, veri durumunu ve doğruluk/yanlışlık durumunu DCACC işleminden istek yapmak için yanıt verir.

8.6. Floating-Point Pipeline Aşamaları

Floating-point ünitesi (FPU), veri yoluna ek olarak kendi hata ve bozulma kontrol mekanizması olan bir ek işlemci olarak oluşturulmuştur. FPU, x87 komutlarının bütün kayıt işlemleri ile bütün 3DNow! ve MMX işlemlerini idare eder. FPU, bir istif yeniden isimlendirme ünitesi, bir kayıt yeniden isimlendirme ünitesi, bir programlayıcı, bir kayıt dosyası ve üç paralel uygulama ünitesinden meydana gelir. Şekil 9, FPU üzerinden yapılan veri akışının blok diyagramını göstermektedir.

Şekil 8.5: Floating-Point Ünitesi Blok Diyagramı

Floating-point pipeline aşamalarından 7-15, Şekil 10’da gösterilmektedir. Floating-point pipe ile Tamsayı pipe ayrımının Döngü 7’de olduğunun not dilmesi gerekmektedir.

Şekil 8.6: Floating-Point Pipeline Aşamalar

Döngü 7 – STKREN

Döngü 7’deki istif yeniden isimlendirme pipeline aşaması (STKREN), IDEC işleminden  üç taneye kadar MacroOP alır ve istif bağlantılı kayıt etiketlerini sanal kayıt etiketlerine uygun olarak planlar.

Döngü 8 – REGREN

Döngü 8’deki kayıt yeniden isimlendirme pipeline aşaması (REGREN), kayıtların yeniden isimlendirilmesinden sorumludur. Bu aşamada sanal kayıt etiketleri, fiziksel kayıt etiketlerine uygun olarak dönüştürülür. Benzer olarak her hedef, yeni bir fiziksel kayıta atanır. Daha sonra MacroOP’lar 36-girişli FPU programlayıcısına gönderilir.

Döngü 9 – SCHEDW

Döngü 9’daki programlayıcı yazım pipeline aşaması (SCHEDW), döngü başına üçe kadar MacroOP kabul edebilir.

Döngü 10 – SCHED

Döngü 10’daki programlama pipeline aşaması (SCHED); FREG pipeline aşamasına, kayıt operatörlerini okuması için 36-girişli FPU programlayıcısından döngü başına üç taneye kadar MacroOP programlar. MacroOP’lar, operatörleri  ve/veya etiketleri elde edildikten sonra iletilir.

Döngü 11 – FREG

Kayıt dosyası okuma pipeline aşaması (FREG), MacroOP’ların herhangi bir kayıt kaynak operatörünün floating-point kayıt dosyasını okur. Kayıt dosyası okunma işlemi, MacroOP’ların floating-point uygulama pipeline’larına yollanmasından önce tamamlanır.

Döngü 12-15 – Floating-Point Uygulaması(FEXEC 1-4)

FPU, üç mantıksal pipe sistemine sahiptir; FADD, FMUL ve FSTORE. Her üç pipe sistemi de birbiri ile bağlantılı birkaç uygulama ünitesine sahip olabilir. MMX uygulaması, FADD ve FMUL pipe sistemlerinin içindedir, fakat çarpanları kapsayan MMX komutları tamamen FMUL pipe sistemi ile sınırlandırılmıştır. FMUL pipe sistemi, uzun bekleme gerektiren işlemleri özel olarak destekler.

DirectPath/VectorPath işlemleri FPU ünitesine döngü 6 sırasında yollanır, fakat döngü 7’deki ICU biriminden onay alana kadar işleme alınmazlar.

8.7. Execution Unit Kaynakları

Uygulama üniteleri iki çeşit kayıt değeri ile işlem yaparlar, operatörler ve sonuçlar. Bu bölümde açıklanacağı gibi üç operatör türü ve iki sonuç türü bulunmaktadır. Operatörler Üç tür operatör aşağıda belirtilmiştir:

  • Adres kayıt operatörleri–yükleme ve depolama komutları için adres hesaplamalarında kullanılır.

  • Veri kayıt operatörleri – Kayıt komutları için kullanılır.

  • Depolanmış veri  kayıt Operatörleri- Hafıza depolaması için kullanılır.

Sonuçlar İki tür sonuç aşağıda belirtilmiştir:

  • Veri kayıt sonuçları – Yükleme veya kayıt komutları tarafından üretilirler.

  • Adres kayıt sonuçları – LEA yada PUSH komutları tarafından üretilirler.

Örnekler Aşağıdaki  örnekler operatör ve sonuç   tanımlarını açıklamaktadır.

ADD         EAX,   EBX

ADD komutu iki veri kayıt operatörüne (EAX ve EBX) ve bir veri kayıt sonucuna (EAX) sahiptir.

MOV        EBX, [ ESP+4*ECX+8]            ;Load

Load komutu,  iki adres kayıt operatörüne (Sırasıyla, taban olarak ESP ve ECX ve indeks kayıtları.) ve bir veri kayıt sonucuna (EBX) sahiptir.

mOV        [ESP+4*ECX+8], EAX            ;Store

Store komutu bir veri kayıt operatörüne (EAX) ve iki adres kayıt operatörüne (Sırasıyla, taban olarak ESP ve ECX ve indeks kayıtları.) sahiptir.

LEA          ESI, [ESP+4*ECX+8]

LEA komutu adres kayıt operatörlerine (Sırasıyla, taban olarak ESP ve ECX ve indeks kayıtları) ve bir adres kayıt sonucuna (ESI) sahiptir.

8.8. Integer Pipeline İşlemleri

Tablo 5 Tamsayı pipeline’ı tarafından idare edilen işlemlerin türlerini veya kategorilerini göstermektedir. Tablo 6’da çözümleme türlerinin örnekleri bulunmaktadır.

8.8.1. Tamsayı Pipeline İşlem Türleri

Kategori Uygulama Ünitesi
Tamsayı Hafıza Yükleme ve Depolama İşlemleri L/S
Adres Üretim Operasyonları AGU
Tamsayı Uygulama Ünitesi Operasyonları IEU
Tamsayı Çarpım İşlemleri IMUL

8.8.2. Tamsayı Çözümleme Türleri

x86 Komutları Çözümleme Türü OPs
MOV  CX, [SP+4] DirectPath AGU, L/S
ADD   AX,BX DirectPath IEU
CMP   CX,[AX] VectorPath AGU,L/S,IEU
JZ    Addr DirectPath IEU

Yukarıda gösterildiği gibi, MOV komutu DirectPath Çözümleyicisinde erken olarak çözümlenir ve iki OP’a ihtiyaç duyar – dolaylı adres için bir adres üretim operasyonu ve hafızadan bir kayıta veri yüklemesi. ADD komutu DirectPath çözümleyicisinde erken olarak çözümlenir ve üç IEU biriminin herhangi birisinde uygulanabilen tek bir OP gerektirir. CMP komutu VectorPath çözümleyicisinde erken olarak çözümlenir ve üç OP’a ihtiyaç duyar – dolaylı adres için bir adres üretim operasyonu, hafızadan veri yüklemesi ve IEU birimini kullanarak CX ile yapılan bir karşılaştırma. Son JZ komutu DirectPath çözümleyicisinde erken olarak çözümlenen basit bir operasyondur ve tek bir OP gerektirir. Bu tabloda gösterilmemiş olan load-op-store komutu vardır ve sadece bir tane MacroOP’a dönüştürülür.( bir AGU OP,Bir IEU OP ve bir L/S OP)

8.9. Floating-Point Pipeline İşlemleri

Floating-point uygulama üniteleri tarafından idare edilen işlemlerin türlerini veya kategorilerini göstermektedir. Tablo 6’da çözümleme türlerinin örnekleri bulunmaktadır.

8.9.1. Floating-Point Pipeline İşlem Türleri

Kategori Uygulama Ünitesi
FPU/3DNow!/MMX yükleme/depolama veya Çeşitli İşlemler FSTORE
FPU/3DNow!/MMX Çarpım İşlemleri FMUL
FPU/3DNow!/MMX Aritmetik İşlemleri FADD

8.9.2. Floating-Point Çözümleme Türleri

x86 komutları Çözümleme Türü OPs
FADD     ST,ST(i) DirectPath FADD
FSIN VectorPath various
PFACC DirectPath FADD
PFRSQRT DirectPath FMUL

FADD kayıttan kayıta komutu floating-point programlayıcısına hedeflenmiş bir tek MacroOP üretir. Daha yaygın floating-point komutlarıyla karşılaştırıldığı zaman uzun uygulama zamanlı kompleks bir komut olduğu için FSIN bir VectorPath komutu olarak değerlendirilir. MMX PFACC komutu DirectPath tarafından çözümlenebilir ve floating-point mantığında aritmetik işlem uygulama pipeline’ına hedeflenmiş tek bir MacroOP üretir. PFACC komutuna oldukça benzeyen bir şekilde, 3DNow! için PFRSQRT komutu ile tek bir MacroOP erken olarak çözümlenir fakat çarpım işlemi uygulama pipeline’ına hedeflenir.

8.10. Yükleme/Depolama Pipeline İşlemleri

AMD Athlon işlemcisi, basit yükleme/depolama işlemlerini hafızaya gönderen herhangi bir komutu çözümleyebilir. Örnek olarak, aşağıdaki kod örneğini ele alalım:

MOV

AX,[EBX]

;1 load MacroOP

PUSH

EAX

;1 store MacroOP

POP

EAX

;1 load MacroOP

ADD

[EAX],EBX

;1 load/store and 1 IEU MacroOPs

FSTP

[EAX]

;1 store MacroOP

MOVQ

[EAX],MMO

;1 store MacroOP

Yükleme/Depolama ünitesi (LSU), üç aşamalı veri ön bellek aramasından meydana gelir.

8.10.11. Yükleme/Depolama Ünitesi Aşamaları

Aşama 1 (Döngü 8) Aşama2 (Döngü 9) Aşama3 (Döngü 10)
Adres Hesaplaması / LS1 Tarama Adresin Veri Ön Belleğine Taşınması Veri Ön Bellek Erişimi / LS2 Veri İlerlemesi

Yükler ve Depolanan bilgiler, ilk olarak bir düzen içinde LS1 adı verilen 12-girişli derin rezervasyon sırasına gönderilir. LS1 , ön bellek alt sistemine girmek için bekleyen yükleri ve depolanan bilgileri tutar. LS1 tarafından veri ön belleğinin program sırası açısından araştırılması gereklidir ve  yükler ve depolanan bilgiler, LS1 girişinde program sırasına göre gönderilmek üzere tahsis edilirler. AGU üniteleri adresleri program sırasına bağlı olarak hesaplayabilirler, bu nedenle LS1 adres yeniden düzenleme tamponu olara iş görür.

Bir yük yada depolanan bilgi LS1 sırasından taranarak çıkartıldığı zaman (aşama 1), LS1 sırasından dışarı alınıp veri ön bellek araştırma pipeline’ının içine koyulur (aşama 2 ve aşama 3). Veri ön belleğine erişim için döngü başına ikiye kadar  hafıza işlemi  programlanabilir ( LS1’den taranarak çıkartılmış). LSU ünitesi aşağıdaki işlemleri idare edebilir:

  • Döngü başına iki 64-bit yük yada

  • Döngü başına bir 64-bit yük ve bir 64-bit depolanan bilgi yada

  • Döngü başına iki 32-bit depolanan yük

  • Kod Örnekleme Analizi

Tablo 8 ve Tablo 9’daki örnekler, çözümleme kısıtlamalarının, bağımlılıklarının ve uygulama kaynak kısıtlamalarının fonksiyonu olarak birkaç komut serisinin uygulama davranış şekillerini göstermektedir.

Bu örnek tablolarda; x86 komutları, bir tamsayı uygulama pipeline’ı içindeki çözümleme pipe’ı, çözümleme türü, saat sayacı ve işlemcinin içinde gerçekleşen olayların bir tarifi gösterilmektedir. Çözümleme pipe’ı, kullanılan özel IEU ünitesini vermektedir. Çözümleme türü VectorPath (VP) yada DirectPath (DP) olarak belirtilmiştir.

Aşağıdaki bilimsel adlandırma, belirli bir işlemin şu anki konumunu tarif etmek için kullanılmaktadır:

  • D-Yollama aşaması (ICU,rezervasyon istasyonu veya yükleme-depolama sırası (LS1) içinde tahsis edilmek.)

  • I-Dağıtım aşaması (AGU yada FU uygulaması için programlama işlemi)

  • E- Tamsayı Uygulama Ünitesi (IEU sayısı, çözümleme pipe’ına uygun olmalı)

  • &- Adres üretim Ünitesi ( AGU sayısı, çözümleme pipe’ına uygun olmalı)

  • M- Çarpan Uygulaması

  • S-Yükleme/Depolama pipe aşaması 1 (Yükleme/Depolama pipe’ı için programlama işlemi)

  • A-Yükleme/Depolama pipe aşaması 2 (Veri ön belleği/LS2 tampon erişiminin birinci aşaması)

  • $-Yükleme/Depolama pipe aşaması 3 (Veri ön belleği/LS2 tampon erişiminin ikinci aşaması)

8.11. Enhanced 3dnow!

İşlemcinin  rutin işleri arasında hep tekrarlanan bazı aynı hesaplamalar vardır. Bu hesaplamalar aynı zamandan birden çok veriyi işleyebilir. Dolayısı ile birçok veri aynı anda aynı tür hesaplanmaya ihtiyaç duymaktadır.  SIMD açılımı Single Instruction Multiple Data’dır. Bu uygulama/işleme birçok komut olarak çevrilebilir. Bunun için işlemcinin işleyeceği verinin uygun SIMD girişine yazmaçlarında sahip olması gerekir.

3dnow! K6-2 ile tanıtılmıştır. MMX pentium MMX işlemciler ile, SSE ise P3 işlemciler ile tanıtılmıştır. Hepsinin amacı performans artışı sağlamaktır. MMX bu noktada 3D oyunlarda çok bir performans kazancı sağlayamadı çünkü FPU birimleri bu desteği içermiyordu. SSE bu konuda çok başarılı oldu fakat gene uygulamanın kendisi için optimize edilmiş olması koşuluyla. AMD Athlon’da 3dnow! ile tanıttığı 21 adet komuta 24 adet yeni komut daha ekledi. Bunların çoğu önbellek bellek ve işlemci üzerindeki veri akışını optimize etmeyi amaçlamaktadır. MP3 ve dolby digital decoding (dvd’leri çözmeye yardım amaçlı) kod çözümü evrelerine yardım etmeye yaramaktadır. Fakat Enhanced 3dnow!’dan 3d oyunlarda çok ekstra bir performans beklenmemelidir.İşlemcilerin özelliklerinin karşılaştırıldığı tabloda gerek Enhanced 3dnow’ın gerekse SSE’nin özellikleri görülebilir.

9. AMD THUNDERBIRD MİKROİŞLEMCİSİNİN PAKETLENMESİ

AMD – 751 492 pinli, 35 mm plastik ızgara rafı dahilinde paketlenmiştir (PBGA).

Şekil 9.1: AMD Thunderbird Mikroişlemci İçin Kullanılan Soket A
Şekil 9.2: AMD Thunderbird Mikroişlemcinin pin detayı
Şekil 9.3: AMD Thunderbird Mikroişlemcinin Etiketlenmesi