![]() |
|
|||||||
| Kayıt ol | Yardım | Üye Listesi | Ajanda | Arama | Bugünki Mesajlar | Forumları Okundu Kabul Et |
| Bilgisayar Hakkında Genel Bilgiler Genel bilgisayar konularının yer aldığı bölüm. Bilgisayar ile ilgili her konu yer alabilir. |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
|
Junior Member
![]() Üyelik tarihi: May 2008
Mesajlar: 7
Tecrübe Puanı: 0
![]() |
Komut Kontrol Birimi (ICU,Instruction Control Unit)
Komut kontrol birimi (ICU), AMD Athlon işlemcisi için bir kontrol merkezidir. ICU aşağıdaki kaynakları kontrol etmektedir - merkezi uçuş dahili yeniden sıralanmış tampon, digit planlayıcısı ve kayar-nokta planlayıcısı. Dönüşte, ICU aşağıdaki fonksiyonlardan sorumludur - MacroOP gönderimi, MacroOP geri çekilmesi, kayıt ve bayrak bağımlı çözüm ve yeniden adlandırma, gerçekleştirme kaynak yönetimi, kesintiler, muafiyetler ve şube yanlış önceden belirlemeler. ICU, erken kod çözücülerden döngü başına üç MacroOP almakta olup bunları merkezleştirilmiş, sabit yayın yeniden sıralanmış tampona yerleştirmektedir. Bu tampon her birinde üç MacroOP bulunan 24 hat dahiline organize edilmiştir. Yeniden sıralanmış tampon, azami komut işleme süresi için (digit veya kayar-nokta olsun veya olmasın) en fazla 72 uçuştaki MacroOP'i ICU'nun izlemesi ve gözlemlemesine izin veriri. ICU eşzamanlı olarak, OP şeklinde son kod çözümü, yayınlama ve gerçekleştirme için yeniden sıralanmış tampondan hem digit hemde kayar-nokta planlayıcılarına çoklu MacroOP gönderebilir. Ek olarak, ICU muafiyetleri işleme alabilir ve MacroOPlerin geri çekilmesini yönetir. Integer Gerçekleştirme Birimi(IEU,Integer Execution Unit) Digit gerçekleştirme pipeline üç kendine has pipedan oluşmaktadır - 0, 1 ve 2. Her bir digit pipe bir digit gerçekleştirme birimi (IEU) ve bir adres oluşturma biriminden (AGU) oluşmaktadır. Digit gerçekleştirme pipeline, sayfa 205'deki Şekil 2 dahilinde gösterildiği şekilde, ICU'daki üç MacroOP gönderim pipeına karşılık gelmesi için organize edilmiştir. MacroOP programlayıcılarda OPlere bölünmüştür. OP, işlemcileri ya kayıt dosyasından veya sonuç taşıyıcılarından mevcut olduğunda yayınlanır. Integer Gerçekleştirme Birimi Opler, işlemcileri mevcut olduğunda gerçekleştirilir. Tek bir MacroOP'den OPler kullanım dışı olarak gerçekleştirilebilir. Ek olarak, özel bir digit pipe aynı zamanda değişik MacroOPlerden iki OP (IEU dahilinde bir ve AGU dahilinde bir) gerçekleştirilebilir. Üç IEU'nun her biri, her birinin mantık işlevini, aritmetik işlevi, koşullu işlevleri, bölünüm kademe işlevlerini, statü bayrak katmerleme ve şube çözünürlüklerini gerçekleştirildiği genel amaçlıdır. AGUlar yükler, depolar ve LEAlar için mantıksal adresleri hesaplamaktadır. Bir yük veya depolama birimi L1 veri önbelleğinden/önbelleğine verileri okumakta/yazmaktadır. Digit programlayıcı, verilen bir MacroOP için mevcut OPler gerçekleştirildiğinde ICU'a tamamlama statüsünü göndermektedir. Tüm digit işlemleri, çarpanların muafiyeti ile üç IEU'nun herhangi biri dahilinde muamele edilebilir. Çarpanlar, pipe 0'da pipelinena eklenmiş olan bir pipeline çekilmiş çarpan vasıtası ile muamele edilmektedir. Bakınız sayfa 205 Şekil 2. Çarpanlar sürekli olarak digit pipe 0'a yayınlamakta olup yayın mantığı, uygun zamanda yayınlamaktan OPlerin çarpılmamasını engelleyerek 0 ve 1 digit pipelarında çarpan için sonuç taşıyıcı baloncukları yaratmaktadır. Integer Planlayıcı Digit planlayıcı, üç digit gerçekleştirme konumu veya pipelarını besleyen üç geniş sıralama sistemini (bir rezervasyon istasyonu olarak da bilinen) temel almaktadır. Rezervasyon istasyonları, 18 digit MacroOP'lik toplam bir sırlama sistemi için altı giriş derinliğindedir. Her bir rezervasyon istasyonu MacroOPleri digitlara bölmekte olup istenildiği şekilde oluşturma OPlerine göndermektedir. Kayar-nokta Gerçekleştirme Birimi Kayar-nokta gerçekleştirme birimi (FPU), veri güzergahına ek olarak kendine has kullanım dışı kontrolüne sahip bir yardımcı işlemci olarak geliştirilmiştir. FPU x87 komutları için tüm kayıt işlemleri, tüm 3DNow! İşlemleri ve tüm MMX işlemlerini ele almaktadır. FPU, bir yığın yeniden adlandırma birimi, bir kayıt yeniden adlandırma birimi, bir programlayıcı, bir kayıt dosyası ve üç paralel gerçekleştirme biriminden oluşmaktadır. Şekil 3, FPU boyunca veri akışının bir blok diyagramını göstermektedir. Kayar-Nokta Gerçekleştirme Birimi Şekil 3 dahilinde gösterildiği şekilde, kayar-nokta mantığı superscalar x87, 3DNow! ve MMX işlemleri için pipelar veya üç ayrı gerçekleştirme konumunu kullanmaktadır. Üç pipe'ın ilki genelde ekleyici pipe (FADD) olarak bilinmekte olup 3DNow! eki, MMX ALU/dönüştürücüsü ve kayar-nokta ek gerçekleştirme birimlerini içermektedir. İkinci pipe çarpan (FMUL) olarak bilinmektedir. 3DNow!/MMX çarpanı/çift yönlü birim ve bir MMX ALU ve bir kayar-nokta çarpanı/böleni/kare kök biriminden oluşmaktadır. Üçüncü pipe, VectorPath sekanslarında kullanılan pek çok OP primitifleri ile kayar-nokta sabit yükleri (FLDZ, FLDPI, vs.), depolar, FLID ile ilgilenen kayar-nokta yük/depo (FSTORE) olarak bilinmektedir. Kayar-nokta Programlayıcısı AMD Athlon işlemci kayar-nokta mantığı, yüksek performanslı, tamamıyla pipeline döşenmiş, superscalar, kullanım dışı gerçekleştirme birimidir. Döngü başına üç x87 kayar-nokta, 3DNow! Veya MMX işlemlerinin karışımının herhangi birinin MacroOP'ini kabul etme yeteneğine haizdir. Kayar-nokta programlayıcısı kayıt yeniden adlandırması ile ilgilenmekte olup her birinin üç MacroOP'nin 12 hattı olarak organize edilmiş bir tahsis edilmiş 36 girişli programlayıcı tamponuna sahiptir. Aynı zamanda, OP yayını ve kullanım dışı gerçekleştirmeyi de işlemektedir. Floating-point programlayıcısı bir MacroOP'i geri çekmek için, FCOMI komutundan sonuçları karşılaştırmayı yönetmek için ve bir şube yanlış önceden belirlemeden sonuçları geri almak için ICU ile iletişime geçmektedir. Yük - Depolama Birimi (LSU) Yük depolama birimi (LSU), veri yükünü ve L1 veri önbelleğine ve eğer gerekli görülürse, L2 önbelleknin arka kısmına veya sistem hafızasına depo erişimini yönetmektedir. 44 girişli LSU, hem digit programlayıcısına hem de kayar-nokta programlayıcısına bir veri ara yüzü sağlamaktadır. İki sıradan oluşmaktadır - L1 önbellek yükü ve depo erişimi için bir 12 girişli sıra ve L2 önbellek veya sistem hafıza yükü ve depo erişimi için bir 32 girişli sıra. 12 girişli sıra, döngü başına azami iki L1 önbellek yükü ve iki L1 önbellek (32 bit) depo talep edebilir. 32 girişli sıra etkin olarak, 12 girişli sıra vasıtasıyla L1 önbellek sondasında kaçırılan talepleri tutmaktadır. Son olarak, LSU mimari yükler ve depo sıralama kurallarının saklanmasını sağlamaktadır (x86 mimari uyumluluk için bir şart). LSU Birimi AMD Athlon Sistem Taşıyıcısı AMD Athlon sistem taşıyıcısı, bir çift tek yönlü 13 bit adres ve kontrol kanalları ve bir çift yönlü 64 bit veri taşıyıcısından oluşan yüksek hızlı bir taşıyıcıdır. AMD Athlon sistem taşıyıcısı, düşük gerilim sallanımını, çoklu işlemi, saat ileri alma ve hızlı veri transferlerini desteklemektedir. Saat ileri alma tekniği, referans saatinin her iki köşesi üstünde veri teslimatı için kullanılmakta olup, bu yüzden, transfer hızını ikiye katlamaktadır. Dört girişli 64 bayt yazma tamponu BIU'a entegre edilmiştir. Yazma tamponu, tek bir büyük yazma döngüsüne çok yazımları birleştirerek taşıyıcı faydalanımını geliştirmektedir. AMD Athlon sistem taşıyıcısını kullanarak, AMD Athlon işlemcisi, saniyede 1.6 Gbayt'lık bir etkin veri işleme süresi üreten 200 MHz'de 64 bit veri taşıyıcı üstünde veri transfer edebilir. Dallanma tahmini İşlemcilerde tahminde bulunabilirler. İşlemcilerde dal tahmini tekniğini kullanarak büyük miktarlarda performans artışı sağlayabilmektedir. Örneğin işlemcinin belli benzer uygulamalarda hep yaptığı aynı rutin işler vardır. Bu noktada dal tahmini devreye girer. İşlemci belli register'larında (yazmaç) çeşitli işleri tutar. Daha önce yaptığı belli bir uygulamaya benzer bir program çalıştığı anda herhangi bir hesaplamasının sonucu için bu yazmaçlarına bakmaktadır. Eğer buna uygun bir tahmin girişi varsa o hesabın sonucu için bir tahmin yapar ve çalışmasına devam eder. Bu esnada hesapta hala işlenmektedir. Böylece bir hesabın sonucu ile başka bir hesap başlayacaksa sonraki işlem beklemeden işlenebilir. Bu esnada önceki hesap bitip sonucu ortaya çıkınca yapılan tahmin ile karşılaştırılır ve tahmin doğru ise önemli derecede zamandan tasarruf edilmiş olur. İşlemci yanılmışsa tahmin edilerek yapılmış işler silinir ve kalındığı yerden tekrar hesaplanmaya başlanır. Tahmin hadisesinin tutarlılığı, tahmin etmenin gerektiği yerde gerekli kayıt, tecrübe işlemcinin yazmaçlarında varsa %90-95 gibi başarı oranları elde edilebilir. Dolayısı ile dal tahmini çok önemli bir konudur. Ne kadar çok dal girişi varsa işlemcide o derece doğru tahminlerde bulunabilir. P3 kendi yazmaçlarında 512 adet dal tahmin girişi tutabilirken Athlon tam 2048 adet tutabilir. AMD dal tahmininde de Intel'e önemli derecede bir üstünlük sağlamıştır. FPU üniteleri AMD'nin Athlon’dan önceki bütün işlemcileri çok eleştirildi. Bunun sebebi FPU’dur. FPU'nun açılımı kayar-nokta unit(kayan nokta birimi)'dir. Bugün 3D oyunlar 3dmax gibi uygulamalar hep işlemciler üzerinde bu kısma yüklenirler çünkü bu uygulamalar ağırlıklı olarak kayan nokta hesaplamalarından oluşmaktadır. Dolayısı ile bir işlemcinin FPU birimi ne kadar güçlü ve hızlı olursa 3D uygulamalarda da o derece iyi bir performansa sahip olur. Athlon’dan önceki işlemcilerin eleştirilme sebebi K6'ların zayıf FPU birimleri idi. Hatta AMD'nin 3dnow! Teknolojisi, Intel'in yaptığı gibi ek yazmaçlardan oluşan ve K6'ların zayıf FPU birimini desteklemek için üretilmişti. Fakat bu avantajdan faydalanabilmek için uygulmanın 3dnow için uyarlanması gerekmekteydi. Yazılım üreticileri bu uygulama destekli programlar çıkarmayı düşünmediği için bu teknoloji destek göremedi. Fakat durum Athlon'un çıkması ile tamamen tersine döndü. Athlon'un FPU birimleri en az Intel'inkiler kadar güçlüdür ve avantajları da vardır.Athlon'un 3 adet FPU ve Integer birimi vardır, P3'ün ise sadece 1FPU ve 2 adet Integer birimi vardır. Pipeline ve Uygulama Birimi AMD Athlon™ işlemcisi, birbirinden bağımsız iki uygulama pipeline içerir. Bu pipeline’lardan birisi tam sayı işlemleri, diğeri ise floating- point işlemleri içindir. Tam sayı pipeline’ı x86 tam sayı işlemlerini idare ederken, floating-point pipeline’ı x87, 3DNow™ ve MMX ™ talimatlarının hepsini idare eder. Bu ek, bu iki pipeline’nın işleyişini ve fonksiyonelliğini tarif edecektir. Komut Alma ve Çözümleme Pipeline Aşamaları Şekil 5 ve Şekil 6, AMD Athlon İşlemcisinin komut alma ve çözümleme pipeline aşamalarını göstermektedir. Pipeline, komut alma işlemi için oluşan bir döngüden ve komutları düzenleme ve çözümleme için oluşan dört döngüden meydana gelir. Aşama 5’deki 3 port, komut kontrol ünitesine (ICU) iletmek için, döngü başına maksimum bant genişliğinin üç MakroOP olmasını sağlar. Komut Alma / Tarama / Align / Çözümleme Pipeline Donanımı En yaygın x86 komutlarının akışı, DirectPath pipeline aşamalarından geçer ve donanımlar tarafından çözümlenir. Mikrokod desteği gerektiren daha aza yaygın olan komutlar ise VectorPath üzerinden akar. DirectPath, her ne kadar yaygın x86 komutlarını çözümlese de, döngü 5’in sonundaki komut gönderme sırasını korumasını sağlayacak olan VectorPath komut bilgisini de barındırır. Komut Alma / Tarama / Align / Çözümleme Pipeline Aşamaları Döngü 1- KOMUT ALMA KOMUT ALMA pipeline aşaması, işlemci ön belleklerinden ya da sistem hafızasından alınacak olan bir sonraki x86 komut penceresinin adresini hesaplar. Döngü 2- TARAMA TARAMA işlemi, komutların başlangıç ve bitiş TARAMA işlemi, ALIGN1 (DÜZENLEME1) işlemine altı taneye kadar düzenlenmiş komut ( DirectPath ve VectorPath) gönderebilir. Ayrıca mikrokod motoruna (MENG), döngü başına bir tane VectorPath komutu iletebilir. Döngü 3 (DirectPath) – ALIGN1 Her 8-bit yastık bellek (quadword sıralaması) üç taneye kadar komut içerebileceğinden, ALIGN1 maksimum dokuz tane komuta, yada 24 komut biti kadar yastık belleğe kayıt edebilir. ALIGN1, döngü başına bir 8-bit yastık bellekten üç tane komutu ALIGN2’ye göndermeye çalışır. Döngü 3 (VectorPath) –MECTL Pipeline mikrokod motoru kontrolü (MECTL) aşaması, VectorPath komutları için mikrokod giriş noktaları oluşturur. Döngü 4 (DirectPath) – ALIGN2 ALIGN2, önek bitleri öncelik sırasına koyar, her komut için opcode’u, ModR/M ve SIB bitlerini belirler ve biriktirilen önek bilgileri EDEC işlemine yollar. Döngü 4 (VectorPath) – MEROM Mikrokod motoru ROM (MEROM) pipeline aşamasında, bir önceki MECTL döngüsünde oluşturulan giriş noktası MROM işleminin içine kaydedilip, TARAMA tarafından gönderilen komutları çözümleme için gerekli mikrokod çizgilerini elde etmek için kullanılır. Döngü 5 (DirectPath) – EDEC Erken çözümleme (EDEC) aşaması, DirectPath aşamasından (ALIGN2) ve VectorPath aşamasından (MEROM) gelen bilgileri MacroOP’lara çözümler. Ek olarak EDEC, kayıt göstergelerini, flag güncellemelerini, acil değerleri, displacementları ve diğer bilgileri belirler. Bu işlemden sonra EDEC, komut çözümleyicisi aşamasına (IDEC) göndermek için DirectPath’den yada VectorPath’den alınan MacroOP’ların arasından seçim yapar. Döngü 5 (VectorPath) –MEDEC / MESEQ Mikrokod motoru çözümlemesi aşaması (MEDEC) x86 komutları MacroOP’lara çevirir. Mikrokod motoru sıralayıcısı (MESEQ) ise MENG için sıralama kontrollerini (yeniden yönlendirmeler ve dışarıda bırakılanlar) gerçekleştirir. Döngü 6– IDEC/Yeniden İsimlendirme Komut çözümleyicisi (IDEC)/yeniden isimlendirme aşamasında, tamsayı ve floating-point MacroOP’ları pipeline içinde birbirinden ayrılır. Tamsayı MacroOP’ları bir sonraki döngünün içinde uygulamaya konmak için programlanır. Floating-point MacroOP’larının, kayıtlara bağlantılı kendi floating-point yığın operatörleri bulunmaktadır. Floating-point ve tamsayı MacroOP’larının tamamı, ICU biriminin içine yerleştirilir. Integer Pipeline Aşamaları Tamsayı uygulama pipeline’ı, programlama ve uygulama işlemleri için dört yada daha fazla aşamadan meydana gelir ve eğer gerek duyulursa işlemci ön belleklerindeki ve sistem hafızasındaki bilgilere erişimi gerektirir. Üç IEU ile bağlantılı olan üç tamsayı pipe’ı vardır. Tamsayı Uygulama Pipeline’ı Şekil 7 ve Şekil 8, ilerideki bölümlerde anlatılacak olan tamsayı uygulama kaynaklarını ve pipeline aşamalarını göstermektedir. Tamsayı Pipeline Aşamaları Döngü 7 – SCHED Programlayıcı pipeline aşamasında (SCHED), programlayıcı yastık bellekler, ICU yada IEU sonuç veriyolularından tamsayı operatörleri bekleyen MacroOP’lara sahip olabilirler.Bütün operatörler alındığı zaman, SCHED MacroOP’u uygulama için programlar ve OP’ları bir sonraki aşama olan EXEC işlemine dağıtır. Döngü 8 – EXEC Uygulama pipeline aşamasında (EXEC), OP ve ona bağlantılı operatörler bir tamsayı pipe’ı tarafından işlenir.( IEU yada AGU) Eğer adreslerin, işlemi tamamlamak için gerekli verilere ulaşılması için hesaplanmaları gerekiyorsa, OP bir sonraki aşamalara ilerler; ADDGEN ve DCACC. Döngü 9 – ADDGEN Adres oluşturma pipeline aşamasında (ADDGEN), taşınan yada depolanmış Op, veri ön bellek TLB’lerine ve ön belleğe yollanmak üzere bir lineer adres hesaplar. Döngü 10 – DCACC Veri ön bellek erişim pipeline aşamasında (DCACC), bir önceki aşamada oluşturulan adres, bilgi ön bellek düzenlerine ve TLB’lere erişim için kullanılır. Bu veri için programlayıcıda bekleyen herhangi bir OP veriye katılır ve EXEC aşamasına ilerler. (bütün diğer operatörlerin uygun olduğu varsayılarak.) Döngü 11 – RESP Cevap pipeline aşamasında veri ön belleği, veri durumunu ve doğruluk/yanlışlık durumunu DCACC işleminden istek yapmak için yanıt verir. Floating-Point Pipeline Aşamaları Floating-point ünitesi (FPU), veri yoluna ek olarak kendi hata ve bozulma kontrol mekanizması olan bir ek işlemci olarak oluşturulmuştur. FPU, x87 komutlarının bütün kayıt işlemleri ile bütün 3DNow! ve MMX işlemlerini idare eder. FPU, bir istif yeniden isimlendirme ünitesi, bir kayıt yeniden isimlendirme ünitesi, bir programlayıcı, bir kayıt dosyası ve üç paralel uygulama ünitesinden meydana gelir. Şekil 9, FPU üzerinden yapılan veri akışının blok diyagramını göstermektedir. Floating-Point Ünitesi Blok Diyagramı Floating-point pipeline aşamalarından 7-15, Şekil 10’da gösterilmektedir. Floating-point pipe ile Tamsayı pipe ayrımının Döngü 7’de olduğunun not dilmesi gerekmektedir. Floating-Point Pipeline Aşamalar Döngü 7 – STKREN Döngü 7’deki istif yeniden isimlendirme pipeline aşaması (STKREN), IDEC işleminden üç taneye kadar MacroOP alır ve istif bağlantılı kayıt etiketlerini sanal kayıt etiketlerine uygun olarak planlar. Döngü 8 – REGREN Döngü 8’deki kayıt yeniden isimlendirme pipeline aşaması (REGREN), kayıtların yeniden isimlendirilmesinden sorumludur. Bu aşamada sanal kayıt etiketleri, fiziksel kayıt etiketlerine uygun olarak dönüştürülür. Benzer olarak her hedef, yeni bir fiziksel kayıta atanır. Daha sonra MacroOP’lar 36-girişli FPU programlayıcısına gönderilir. Döngü 9 – SCHEDW Döngü 9’daki programlayıcı yazım pipeline aşaması (SCHEDW), döngü başına üçe kadar MacroOP kabul edebilir. Döngü 10 - SCHED Döngü 10’daki programlama pipeline aşaması (SCHED); FREG pipeline aşamasına, kayıt operatörlerini okuması için 36-girişli FPU programlayıcısından döngü başına üç taneye kadar MacroOP programlar. MacroOP’lar, operatörleri ve/veya etiketleri elde edildikten sonra iletilir. Döngü 11 – FREG Kayıt dosyası okuma pipeline aşaması (FREG), MacroOP’ların herhangi bir kayıt kaynak operatörünün floating-point kayıt dosyasını okur. Kayıt dosyası okunma işlemi, MacroOP’ların floating-point uygulama pipeline’larına yollanmasından önce tamamlanır. Döngü 12-15 – Floating-Point Uygulaması(FEXEC 1-4) FPU, üç mantıksal pipe sistemine sahiptir; FADD, FMUL ve FSTORE. Her üç pipe sistemi de birbiri ile bağlantılı birkaç uygulama ünitesine sahip olabilir. MMX uygulaması, FADD ve FMUL pipe sistemlerinin içindedir, fakat çarpanları kapsayan MMX komutları tamamen FMUL pipe sistemi ile sınırlandırılmıştır. FMUL pipe sistemi, uzun bekleme gerektiren işlemleri özel olarak destekler. DirectPath/VectorPath işlemleri FPU ünitesine döngü 6 sırasında yollanır, fakat döngü 7’deki ICU biriminden onay alana kadar işleme alınmazlar. Execution Unit Kaynakları Uygulama üniteleri iki çeşit kayıt değeri ile işlem yaparlar, operatörler ve sonuçlar. Bu bölümde açıklanacağı gibi üç operatör türü ve iki sonuç türü bulunmaktadır. Operatörler Üç tür operatör aşağıda belirtilmiştir:
ADD EAX, EBX ADD komutu iki veri kayıt operatörüne (EAX ve EBX) ve bir veri kayıt sonucuna (EAX) sahiptir. MOV EBX, [ ESP+4*ECX+8] ;Load Load komutu, iki adres kayıt operatörüne (Sırasıyla, taban olarak ESP ve ECX ve indeks kayıtları.) ve bir veri kayıt sonucuna (EBX) sahiptir. MOV [ESP+4*ECX+8], EAX ;Store Store komutu bir veri kayıt operatörüne (EAX) ve iki adres kayıt operatörüne (Sırasıyla, taban olarak ESP ve ECX ve indeks kayıtları.) sahiptir. LEA ESI, [ESP+4*ECX+8] LEA komutu adres kayıt operatörlerine (Sırasıyla, taban olarak ESP ve ECX ve indeks kayıtları) ve bir adres kayıt sonucuna (ESI) sahiptir. Integer Pipeline İşlemleri Tablo 5 Tamsayı pipeline’ı tarafından idare edilen işlemlerin türlerini veya kategorilerini göstermektedir. Tablo 6’da çözümleme türlerinin örnekleri bulunmaktadır. Tamsayı Pipeline İşlem Türleri Kategori Uygulama Ünitesi Tamsayı Hafıza Yükleme ve Depolama İşlemleri L/S Adres Üretim Operasyonları AGU Tamsayı Uygulama Ünitesi Operasyonları IEU Tamsayı Çarpım İşlemleri IMUL Tamsayı Çözümleme Türleri x86 Komutları Çözümleme Türü OPs MOV CX, [SP+4] DirectPath AGU, L/S ADD AX,BX DirectPath IEU CMP CX,[AX] VectorPath AGU,L/S,IEU JZ Addr DirectPath IEU Yukarıda gösterildiği gibi, MOV komutu DirectPath Çözümleyicisinde erken olarak çözümlenir ve iki OP’a ihtiyaç duyar – dolaylı adres için bir adres üretim operasyonu ve hafızadan bir kayıta veri yüklemesi. ADD komutu DirectPath çözümleyicisinde erken olarak çözümlenir ve üç IEU biriminin herhangi birisinde uygulanabilen tek bir OP gerektirir. CMP komutu VectorPath çözümleyicisinde erken olarak çözümlenir ve üç OP’a ihtiyaç duyar – dolaylı adres için bir adres üretim operasyonu, hafızadan veri yüklemesi ve IEU birimini kullanarak CX ile yapılan bir karşılaştırma. Son JZ komutu DirectPath çözümleyicisinde erken olarak çözümlenen basit bir operasyondur ve tek bir OP gerektirir. Bu tabloda gösterilmemiş olan load-op-store komutu vardır ve sadece bir tane MacroOP’a dönüştürülür.( bir AGU OP,Bir IEU OP ve bir L/S OP) Floating-Point Pipeline İşlemleri Floating-point uygulama üniteleri tarafından idare edilen işlemlerin türlerini veya kategorilerini göstermektedir. Tablo 6’da çözümleme türlerinin örnekleri bulunmaktadır. Floating-Point Pipeline İşlem Türleri Kategori Uygulama Ünitesi FPU/3DNow!/MMX yükleme/depolama veya Çeşitli İşlemler FSTORE FPU/3DNow!/MMX Çarpım İşlemleri FMUL FPU/3DNow!/MMX Aritmetik İşlemleri FADD Floating-Point Çözümleme Türleri x86 komutları Çözümleme Türü OPs FADD ST,ST(i) DirectPath FADD FSIN VectorPath various PFACC DirectPath FADD PFRSQRT DirectPath FMUL FADD kayıttan kayıta komutu floating-point programlayıcısına hedeflenmiş bir tek MacroOP üretir. Daha yaygın floating-point komutlarıyla karşılaştırıldığı zaman uzun uygulama zamanlı kompleks bir komut olduğu için FSIN bir VectorPath komutu olarak değerlendirilir. MMX PFACC komutu DirectPath tarafından çözümlenebilir ve floating-point mantığında aritmetik işlem uygulama pipeline’ına hedeflenmiş tek bir MacroOP üretir. PFACC komutuna oldukça benzeyen bir şekilde, 3DNow! için PFRSQRT komutu ile tek bir MacroOP erken olarak çözümlenir fakat çarpım işlemi uygulama pipeline’ına hedeflenir. Yükleme/Depolama Pipeline İşlemleri AMD Athlon işlemcisi, basit yükleme/depolama işlemlerini hafızaya gönderen herhangi bir komutu çözümleyebilir. Örnek olarak, aşağıdaki kod örneğini ele alalım: MOV AX,[EBX] ;1 load MacroOP PUSH EAX ;1 store MacroOP POP EAX ;1 load MacroOP ADD [EAX],EBX ;1 load/store and 1 IEU MacroOPs FSTP [EAX] ;1 store MacroOP MOVQ [EAX],MMO ;1 store MacroOP Yükleme/Depolama ünitesi (LSU), üç aşamalı veri ön bellek aramasından meydana gelir. Yükleme/Depolama Ünitesi Aşamaları Aşama 1 (Döngü 8) Aşama2 (Döngü 9) Aşama3 (Döngü 10) Adres Hesaplaması / LS1 Tarama Adresin Veri Ön Belleğine Taşınması Veri Ön Bellek Erişimi / LS2 Veri İlerlemesi Yükler ve Depolanan bilgiler, ilk olarak bir düzen içinde LS1 adı verilen 12-girişli derin rezervasyon sırasına gönderilir. LS1 , ön bellek alt sistemine girmek için bekleyen yükleri ve depolanan bilgileri tutar. LS1 tarafından veri ön belleğinin program sırası açısından araştırılması gereklidir ve yükler ve depolanan bilgiler, LS1 girişinde program sırasına göre gönderilmek üzere tahsis edilirler. AGU üniteleri adresleri program sırasına bağlı olarak hesaplayabilirler, bu nedenle LS1 adres yeniden düzenleme tamponu olara iş görür. Bir yük yada depolanan bilgi LS1 sırasından taranarak çıkartıldığı zaman (aşama 1), LS1 sırasından dışarı alınıp veri ön bellek araştırma pipeline’ının içine koyulur (aşama 2 ve aşama 3). Veri ön belleğine erişim için döngü başına ikiye kadar hafıza işlemi programlanabilir ( LS1’den taranarak çıkartılmış). LSU ünitesi aşağıdaki işlemleri idare edebilir:
Bu örnek tablolarda; x86 komutları, bir tamsayı uygulama pipeline’ı içindeki çözümleme pipe’ı, çözümleme türü, saat sayacı ve işlemcinin içinde gerçekleşen olayların bir tarifi gösterilmektedir. Çözümleme pipe’ı, kullanılan özel IEU ünitesini vermektedir. Çözümleme türü VectorPath (VP) yada DirectPath (DP) olarak belirtilmiştir. Aşağıdaki bilimsel adlandırma, belirli bir işlemin şu anki konumunu tarif etmek için kullanılmaktadır:
İşlemcinin rutin işleri arasında hep tekrarlanan bazı aynı hesaplamalar vardır. Bu hesaplamalar aynı zamandan birden çok veriyi işleyebilir. Dolayısı ile birçok veri aynı anda aynı tür hesaplanmaya ihtiyaç duymaktadır. SIMD açılımı Single Instruction Multiple Data'dır. Bu uygulama/işleme birçok komut olarak çevrilebilir. Bunun için işlemcinin işleyeceği verinin uygun SIMD girişine yazmaçlarında sahip olması gerekir. 3dnow! K6-2 ile tanıtılmıştır. MMX pentium MMX işlemciler ile, SSE ise P3 işlemciler ile tanıtılmıştır. Hepsinin amacı performans artışı sağlamaktır. MMX bu noktada 3D oyunlarda çok bir performans kazancı sağlayamadı çünkü FPU birimleri bu desteği içermiyordu. SSE bu konuda çok başarılı oldu fakat gene uygulamanın kendisi için optimize edilmiş olması koşuluyla. AMD Athlon'da 3dnow! ile tanıttığı 21 adet komuta 24 adet yeni komut daha ekledi. Bunların çoğu önbellek bellek ve işlemci üzerindeki veri akışını optimize etmeyi amaçlamaktadır. MP3 ve dolby digital decoding (dvd'leri çözmeye yardım amaçlı) kod çözümü evrelerine yardım etmeye yaramaktadır. Fakat Enhanced 3dnow!'dan 3d oyunlarda çok ekstra bir performans beklenmemelidir.İşlemcilerin özelliklerinin karşılaştırıldığı tabloda gerek Enhanced 3dnow'ın gerekse SSE'nin özellikleri görülebilir. AMD Thunderbird Mikroişlemcinin Pakaetlenmesi AMD - 751 492 pinli, 35 mm plastik ızgara rafı dahilinde paketlenmiştir (PBGA). |
|
|
|
![]() |
| Seçenekler | |
| Stil | |
|
|