|
PENTIUM III ve PENTIUM 4 İŞLEMCİLER 1. PENTIUM III İŞLEMCİLER
Ş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.
Ş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.
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.
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:
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 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:
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:
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.
Ve işte diğer CPU'lara göre gelişmiş özellikleri:
2000'li yılların tüketici modeline göre bilgisayarlardan şu ihtiyaçları gelişmiş bir şekilde işlemesi istenecek:
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:
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:
2.1.1.
Intel NetBurst Mikro Mimarisi Pipeline'nın Görünüşü
Ö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:
Ön uç pek çok temel işlevi gerçekleştirmektedir:
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:
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:
İ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:
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 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:
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ı 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
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:
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ı Ş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:
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. 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
MMX komutları multimedya ve iletişim yazılımları için faydalıdır. 2.6.3.2. Streaming SIMD Genişlemeleri
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
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:
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:
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:
2.7.4. Yükler ve Depolar
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 belirlenmedile |