BİLGİSAYAR MİMARİLERİNE YENİ YAKLAŞIM DERSİ AĞ İŞLEMCİ MİMARİLERİ Tuğba Akbal 504061533 Aralık 2007
İçerik Genel Bilgi Ağ İşlemcilerde Aşılması Gereken Sorunlar Ağ İşlemciler Neden Gereklidir? Ağ Uygulamalarının Özellikleri ve Esasları Ağ İşlemcilerde Aşılması Gereken Sorunlar Ağ İşlemcilerin Sahip Olması Gereken Özellikler Intel IXP Ailesi Intel IXP2400 Ağ İşlemci Mimarisi Yeni Nesil Ağ İşlemciler Sonuç Referanslar
Ön Bilgi Thread İplik Switch Anahtar Router Yönlendirici TLB(Translation Lookaside Buffer) Adres dönüşüm tamponu CMP(Chip MultiProcessing) Tek yongada çok işlemci SMT(Simultaneous MultiThreading ) Eşzamanlı çok iplikli ASIC(Application Specific Integrated Circuit ) Uygulamaya özel tümleşik devre
Ön Bilgi RISC(Reduced Instruction Set Computer) Azaltılmış komut kümeli bilgisayar TLP(Thread-Level Parallelism) İplik düzeyinde paralellik ILP(Instruction-Level Parallelism) Komut düzeyinde paralellik Branch/Data intensive Dallanma/Veri yoğun Deep packet classification Derin paket sınıflandırma Content aware İçerik bilinçli
Genel Bilgi Karmaşık ağ tabanlı uygulamalar Artan ağ trafiği yoğunluğu Ağ işlemcileri hızlanmalı Paket paralelliği ve bağımlılıkları Paketlerin sınıflandırılması Güvenlikle alakalı işler için özel tasarım Çok işlemcili Çok iplikli ortamlar
Genel Bilgi Genel amaçlı ağ işlemciler ağ işlemci mimariler: uygulamaya has Veri ve dallanma ağırlıklı Düzensiz Yüksek programlama yeteneği Uygulamalar gelişmekte Farklı protokoller Taşınabilir ağ araçları Yeni nesil saldırılarda güncelleme
Genel Bilgi Tasarımsal sorunlar Güvenlikle alakalı sorunlar Paket sınıflandırma Performans kritik bir iş QoS, URL karşılaştırma, saldırı tespiti Güvenlikle alakalı sorunlar Web anahtarları ve sunucularda hayati Yüksek CPU gerektirir
Ağ İşlemciler Neden Gereklidir? Yüksek performansla paket işleme Çok çeşitli ağ uygulamasını gerçekleme Etkin kaynak kullanımı Paket iletimi Artan istekleri karşılama Yüksek bant genişliği Düşük gecikme Yoğun veri
Ağ İşlemciler Neden Gereklidir? Paketleri iletmek için gerekli fonksiyonları gerçekleyen Gerçek zamanlı Paket işleme Paket saklama ve iletme Güvenlik Anahtarlama IP paket işleme
Ağ İşlemciler Neden Gereklidir? Paralel ve dağıtık İş hatları ile ve çok iplikli paket işleme Yüksek kapasite Esneklik Ölçeklenebilirlik Derin paket sınıflandırma Çalışma süresi ve maliyette etkinlik
Genel Görünüm Çok sayıda RISC çekirdekler Genel ağ işlemleri için atanmış donanımlar Yüksek hızda ana bellek ara yüzleri Yüksek hızda I/O ara yüzleri Genel amaçlı CPU için ara yüz
Ağ Mimarilerine 3 Farklı Yaklaşım Saf donanım: ayarlanabilir ASIC en iyi performans, az esneklik Saf yazılım: programlanabilir programlanabilme maksimuma çıkarılır Hibrit: programlanabilir ASIC şu anki gelişim bu yönde Performans artarken, esneklikte gerçeklenir Alışılmış ağ fonksiyonları donanımla kendi akışında gerçeklenir Saf yazılım yaklaşımından bile daha iyi ölçeklenebilir
Ağ Uygulamaları Esasları Genel amaçlı uygulamalara göre farklı Yönlendiriciler Temel anahtarlar WAN/LAN anahtarları URL yük dengeleyiciler VoIP ağ geçitleri Güvenlik duvarları Şifreleme uygulamaları içerir
Ağ Uygulamaları Esasları Gelen trafik paket başına baz alınır Paket başlığı Paket içeriği
Ağ Uygulamaları Esasları Örüntü Eşleştirme Mantıksal değer çıktıdır, aramada kullanılır Arama Bir anahtarla, spesifik girdi aranır Hesaplama Ağır hesaplama yetisi Veri Kotarma Paket başlığı değiştirme, TTL azaltma Kuyruk Yönetimi Paket iptali, saklanması, trafik yönlendirme Kontrol İşlemi Tablo güncellemeleri, istatistikler
Ağ Uygulamaları Genel Özellikleri İşlevlerine göre 3’e ayrılır: Veri yolu Yüksek performans gerektiren işler Veri iletimi, paket iletimi, sınıflandırılması, kuyruğa sokma ve zamanlama Paket iptal edilmemeli hızlı iletim Bağımlılık yoksa paralel işleme Kontrol yolu Daha az zaman kritik Daha az paralellik gerektiren işler Tablo idaresi, yönlendirme, sinyalleşme, politika yönetimi Yönetim yolu Sistemi başlangıç durumuna hazırlama/ayarlama ve yönetim protokolleri
Ağ Protokol Tabakaları 7 mantıksal tabaka söz konusu Fiziksel Veri bağı Ağ İletim Oturum Sunum Uygulama
Ağ Protokol Tabakaları Yönlendirici ya da anahtarlar gibi yüksek hız gerektiren ekipmanlarda İletim ve ağ tabakası fonksiyonlarını sistem adaptasyon tabakasına taşımak gereklidir Dış Ortam tabakasının Modülasyon ve demodülasyon gibi fiziksel tabaka fonksiyonlarını gerçekleştirmesi tercih edilmektedir
Yoğun Veri ve Yoğun Dallanma TL, ROUTE, DRR ve NAT gibi programlar Çok fazla komut Yönlendirme tablosunda gerçekleşen Veri ağırlıklı Ancak fazla dallanma (IPCHAINS/CRC 6)
Paket Paralelliği Paketler eşzamanlı ya da paralel işlenir Komut ve iplik düzeyinde Paket düzeyinde Gelen paketler, işlenenlerden bağımsız Bağımsız işletme birimlerinde eşzamanlı yürütme Çok sayıda RISC çekirdek tek işlemcide Paketler arası Her paketin işlenmesi boyunca Bir paketi işleme sokacak işler birbirinden bağımsız 2.tabakada kaynak ve varış MAC adres kotarması eşzamanlı
Paket Bağımlılığı Doğru işlem için gerekli senkronizasyon Paketlerin ardarda işlenmesi gerekince Paketler bağımlı olabilir/olmayabilir Statik kurallarla işlemekurallar değişmez, paketler bağımsız Aynı TCP bağlantısında paketlerTCP durum düzenlenmesi, paketler bağımlı Bağımlılık Trafik yönetim sayaçları, yönlendirme veya adres dönüşüm tablolarında
Aşılması Gereken Sorunlar Güvenlikle alakalı işler CPU yükü fazla Paket Sınıflandırma Veri yolu işlerinin ilk adımı Tek alanlı başlıkta tek bir alan: paket iletimi Çok alanlı başlıkta birçok alan: güvenlik duvarı, QoS uygulamaları Derin paket sınıflandırma paket başlık ve içeriği: sunucunun yük dengelemesi, saldırı tespiti, virüs tarama gibi içerik-bilinçli uygulamalar
İçerik Bilinçli Uygulama Örneği IP ve TCP ye ek olarak, uygulama verisi de incelenir Daha iyi yük dengeleme ve kaynak yönetimi, hızlı cevap
Ağ İşlemci Mimarileri Özellikleri Cep Bellek Tasarımı Hızlı paket sınıflandırma Veri yükü ağır paket içerikleri incelenir Sık bellek erişimi Yönlendirme tablosunda IP ile önek karşılaştırmaları Yönlendirme tablosunda hızlı arama Zamanda yöresellik gerekli Doğru cep bellek tasarımı gerekli
Ana Bellek Tasarımı Paketler burada tamponlanır Paket değiştirmede kullanılır SRAM/DRAM ile gerçeklenir Bant genişliği optimum seçilmeli(yüzlerce GB/s) Kapasite artmalı(GB’lar mertebesinde) Tasarım detaylı araştırma gerektirir
Çok İplikli Mimariler Bellek erişim gecikmelerini tolere eder Tek bir işlemciyi birçok iplik ortak kullanır Birçok ağ işlemcisi Çok sayıda işlemci çekirdeği Çok iplikli mimari kullanır Çekirdekler paralel koşturulur Zamanlama Yazılımla Donanımla sağlanır
Çok İplikli Mimariler Süperskaler Çok iplik desteği yoksa Iskada makine her saat çevriminde çalışmaz Tüm işlemci bekletilir İşlevsel birimler verimli kullanılmaz
Çok İplikli Mimariler Büyük İş Parçalı - Çok İplikli Her saat çevriminde yalnız bir komut alınır Kısa ve uzun süreli gecikmeleri gizler Ancak işlenmeye hazır komutların işlenmesi yavaşlatılır Çünkü diğer ipliklerden gelen komutlar işlenir Tamamen boş işlere yer verilmez Ancak bireysel saat çevrimlerinde uzun bekleme süreleri olabilir
Çok İplikli Mimariler Küçük İş Parçalı – Çok İplikli Iska var ve gecikme uzunsa, on an işleyen iplik değiştirilir İşlenmeye hazır iplikler yavaşlatılır Diğer ipliklerin işlenmesi uzun sürer Kısa süreli işlerde olumsuz Kısa süreli ama sık gecikmeler iş hattı başlama süresi uzar Tamamen boş durumda bekleme süresi uzar Her saat çevriminde boş kalma süresi uzar Her çevrimde sadece bir komut işlenir
Çok İplikli Mimariler SMT Tek çevrimde, birçok iplikten gelen birçok komut işlenir İş yüküne hassas Çok sayıda iplik, tek bir işlemcinin işlevsel birimlerini kullanır Çatışma yoksa, kaynak kullanımı maksimum olur Bağımlılık yoksa, paralellik sağlanır Donanım kaynakları dinamik alınır etkin kaynak kullanımı Donanım tasarımında maliyetli değişim yok Çok iplikli yapı Bellek gecikmelerini saklar Hızı arttırır
Çok İplikli Mimariler Temel süperskaler iş hatları değişmez Sistem kaynakları olan Bağımsız ipliklerin bağlamlarını saklayacak program sayaçları Komut kuyrukları Cep bellekler TLB’ler Dallanma öngörüleri iplikler tarafından paylaşılır
Çok İplikli Mimariler CMP Aynı birim üzerinde Tüm mimari kaynakları içeren Çok sayıda basit tek iplikli işlemciler Basit donanım kolay tasarım ve optimizasyon Donanım kaynakları statik olarak paylaştırılır Uygulama ipliklere bölünebilirse avantajlı Intel IXP2800 17 tane 32 bitlik bağımsız çok-iplikli mikro makine ile Intel Xscale çekirdeği IBM PowerNP 16 tane basitleştirilmiş RISC piko işlemci ve bir PowerPC çekirdek
Paket Bağımlılığına Çözümler Yazılımsal çözüm Kodda yazılım kilitleri Bağımlı paketin işi bitene dek kaldırılmaz Uygulanması zor kod büyük, kod analizi ve kilidi doğru yerleştirmek zor Ölümcül kilitlenmeler Donanımsal çözüm Performans düşebilir tüm paketler ihtiyaç olsun/olmasın ardarda işlenir Yazma ve okuma tabloları, aktif paket listesi, çatışma öngörü mantığı kavramsal bir donanım çözümüdür
Örneklerle Ağ İşlemcilerin Genel İhtiyaçları Yönlendiriciler En çok iş gören kısım Çok çeşitli ağ ara yüzlerinden paket alır İptal eder veya bir/birkaç ara yüze yollar Paketler birçok yönlendiriciden geçerek internette yollarını bulur Paketleri gerçekler Web Anahtarları Çeşitli parametre tabanlı farklı sunucu HTTP isteklerini karşılar Yüksek bant genişliği gerektirir Daha fazla durum içerir Bağlantıları gerçekler
Hızlı Yol – Yavaş Yol Kavramları Veri ve kontrol düzeylerinin farklı ihtiyaçları karşılanır Hızlı veya yavaş yola yönlendirirken Varış adresleri ve portları değerlendirilir İnceleme baz alınarak Minimum ya da normal işleme tabi tutulacak olan paketler hızlı yola Veri düzeyindeki işler Sıra dışı ya da karmaşık işlemlerden geçecek paketlerse yavaş yola Kontrol seviyesindeki işler
Hızlı Yol – Yavaş Yol Kavramları İşlenen paketler aynı ağ ara yüzüne ilerler Esneklik kazanılır Hızlı yol FPGA, ASIC, yardımcı işlemci veya bir başka CPU tarafından Yavaş yol bir CPU Basit ve zaman kritik uygulamaları donanım Karmaşık algoritmaları yazılım düzeyinde
Bir Ağ İşlemcisini Programlamak Genel amaçlı işlemcilerden çok farklı belli özellikler içerir Genel amaçlı uygulamalarda da kullanılabilir Daha az kod içerir Veriler arası daha az bağımlılık söz konusudur Paketler yönlendirme tablolarının durumlarını değiştirmez Bağımlılıklar Yönlendirme protokol paketleri İstisna ayarlama paketleri ile çözümlenir
Intel IXP Ailesi Mikro makine teknolojisi Xscale teknolojisi Sakla ve ilet mimarisi Yüksek paralel tasarım Yüksek hızda veri işleme Xscale teknolojisi Kontrol düzeyinde entegre uygulama işleme Veri yapılarını güncelleme ve yönetme Dış ortam ve anahtarlama aygıtlarını kurma ve denetleme Süper iş hattı teknolojisi sayesinde, çok aşamalı yüksek etkinlikte iş hattı sürme mimarisi
Intel IXP Ailesi IXA(Internet Exchange Architecture) yazılım taşınabilir tasarımı Kolay kod geliştirme ve yeniden kod kullanımı Modüler programlanabilir model: mikro makineler ve iplikler arasında en uygun uygulama bölmelenmesi Optimum mikro makine kütüphaneleri ve araçları Intel Xscale kaynak kod kütüphaneleri: birçok işlem ortamı arasında taşınılabilirlik Edge & Access-IXP2400 Core & Edge-IXP2800 CPE-IXP425
Intel IXP2400 Ağ İşlemci Mimarisi XScale çekirdek Saniyede 5.4 milyar işlem kapasitesi Yazboz bellek, DRAM ve SRAM denetleyiciler 4 er mikro makineden oluşan 2 küme Her mikro makine 8 izleğe kadar yürütebilir 16 KB komut saklayabilir Yerel bellekleri vardır
Yeni Nesil Ağ İşlemci Mimarileri Ağ uygulamaları için en iyi şekilde kullanılabilir Yüksek işlem gücüne sahip Yüksek iletim hızına sahip Programlanabilir Ölçeklenebilir olmalıdır
Sonuç Etkin yönlendirme tablosu cep tasarımı Etkin paket tampon tasarımı SMT ve CMP ye çok iplikli yapı entegresi ile paralellik sağlanabilir Temel mikro mimari olacaklar SMT kaynak kullanımı etkin, performans yüksek, yaygın CMP az yer kaplar, birden fazla tek iplikli işlemci çekirdeği, çok alt ipliğe bölünebilirse Gelecekteki ağ uygulamaları Dallanma ve veri yükü ağır Hesapsal yükü fazla olacaktır
REFERANSLAR [1] TKS LakshmiPriya, V.H. Prasad, D.Kannan, L.K. Singaram, G. Madhan, R.M. Sundaram, R.M. Prasad and R. Parthasarathi: Evaluating the Network Processor Architecture for Application-Awareness. By IEEE, 2007. [2] C. Ostler, K. S. Chatha and G. Konjevod: Approximation Algorithm for Process Mapping on Network Processor Architectures. By IEEE, 2007. [3] K. Yi and J. Gaudiot: Features of Future Network Processor Architectures, By IEEE, 2006. [4] V. Ramamurthi, J. McCollum, C. Ostler and K. S. Chatha: System Level Methodology for Programming CMP based Multi-threaded Network Processor Architectures. By IEEE, 2005. [5] L. Thiele, S. Chakraborty, M. Gries and S. Künzli: Design Space Exploration of Network Processor Architectures. By IEEE, 2002. [6] P. Crowley, M. E. Fiuczynski, J. Baer and B. N. Bershad: Characterizing Processor Architectures for Programmable Network Interfaces. By 2000 International Conference on Supercomputing, May, 2000. [7] X. Nie, L. Gazsi, F. Engel and G. Fettweis: A New Network Processor Architecture for High- speed Communications. By IEEE, 1999. [8] Y. Jun: Network Processors http://www.ecs.umass.edu/ece/wolf/courses/ECE697J/Fall2002/presentations/ECE697J-02-11- 12.pdf [9] M. Kohler: Network Processor Overview http://www.netrino.com/Articles/NetworkProcessors/index.php [10] Y. Lou: Network Processor Architecture and Applications http://faculty.uml.edu/yluo/Publications/CAR-seminar.pdf
TEŞEKKÜRLER SORULARINIZ?