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.

Bir Cevap Yazın