Implementation of a packet classifier for a router on FPGA
Bir ağ yönlendiricisi için FPGA üzerinde paket sınıflandırıcı gerçeklemesi
- Tez No: 613332
- Danışmanlar: PROF. DR. MÜŞTAK ERHAN YALÇIN
- Tez Türü: Yüksek Lisans
- Konular: Elektrik ve Elektronik Mühendisliği, Electrical and Electronics Engineering
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2019
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Elektronik Mühendisliği Bilim Dalı
- Sayfa Sayısı: 143
Özet
Ağ sistemleri ön planda görülmeden insanların gündelik hayatlarının önemli bir parçasını oluşturmaktadır. Internete bağlanırken, şirkette çalışırken, ATM'den banka işlemleri yaparken ve benzeri bir çok durumda insanlar fark etmeden ağ sistemlerini kullanmaktadırlar. Teknik taraftan bakılırsa veri merkezleri ve bulut bilişim sistemlerinde yer alan bütün cihazlar birbirlerine ağ sistemlerinin yardımıyla bağlanmaktadırlar. Ağ altyapısı bu belirtilen haberleşme tiplerinde çok önemli bir rol oynamaktadır. Hub, Switch, Router ve Akıllı NIC cihazları bu altyapıdaki en çok bilinen ağ cihazlardır. Ağ Fonksiyonlarının Sanallaştırılması (NFV) sayesinde bu cihazlar büyük veri makineleri üzerinde bir sanal makine olarak da gerçeklenebilmektedir ve bu şekilde kullanım gün geçtikçe artmaktadır. Ancak her iki durumda da çok hızlı artan veri işleme talebini sadece işlemciler ile karşılamak mümkün gözükmemekte ve heterojen veri işleme mimarilerine ihtiyaç duyulmaktadır. Bu durumda donanım paket hızlandırıcıları kaçınılmaz bir hal almaktadır. Bu tez çalışmasında donanım temelli paket hızlandırıcılarına yönelik donanım \& yazılım ortak tasarım metodolojisini takip eden bir paket hızlandırıcısı tasarımı önerilmektedir. Tez çalışmasında bir paket sınıflandırıcı için donanımsal hızlandırıcı tasarımı ve ek olarak önerilen bu tasarımın Vivado üzerinde simulasyonları yapılmış ve daha sonra Xilinx firması tarafından üretilen Zynq Ultrascale+ MPSoC çipi üzerinde gerçeklemesi yapılmıştır. Bu gerçekleme için yine Xilinx üretimi ZCU102 geliştirme kartı kullanılmıştır. Dijital donanım tasarımı ile birlikte aynı zamanda gerçeklenen bu donanım hızlandırıcısını kontrol edecek bir yazılımın da tasarımı tez çalışmasında yapılmıştır. Bu yazılım Linux işletim sistemi üzerinde geliştirilmiştir. Bu sebeple Yocto dağıtım derleyici tabanlı Petalinux dağıtımı kullanılmıştır. Petalinux da yine Xilinx tarafından sağlanmaktadır. Bu çip üzerindeki işlemcilerde çalışacak Linux işletim sisteminin tüm parçaları Petalinux tarafından derlenerek yüklenebilir halde kullanıcıya sunulmaktadır. Userspace IO kernel modülü sayesinde geliştirilen donaım hızlandırıcılarına kernel seviyesinde herhangi bir sürücü yazmaya gerek kalmadan yönetim uygulması üzerinden doğrudan erişim sağlanabilmektedir. Bu ve diğer yazılım modülleri için de nesne yönelimli programlama mantığı ile C++ programlama dilinde kütüphaneler yönetim yazılımı için hazırlanmıştır. Son olarak donanım ve yazılımın birbirleriyle sorunsuz çalışmasını sağlayacak entegrasyon çalışması yapılmıştır. Bu tez çalışması esnasında ayrıca Xilinx firmasının ürettiği FPGA çiplerinin programlaması için gerekli olan geliştirme ortamlarının kurulması, FPGA üzerinde yüksek hızlı tasarım yapılması, System ILA kullanarak çalışma zamanında sinyallerin izlenmesi, Linux işletim sistemi temelleri, Linux derlemek için geleneksel yoldan farklı olarak Yocto temelli bir dağıtım derleyici ortamının kullanılması, yazılım ve donanım entegrasyonu, C++ ile kütüphane ve uygulama geliştirme, Windows işletim sistemi üzerinde Xilinx SDK ile Linux uygulaması geliştirme ve debug etme yetenekleri kazanılmıştır. Bu tez altı ana bölümden oluşmaktadır. İlk bölümde ağ sistemlerinin temelleri ve tezin yapılma amacı verilmiştir. Ağ sistemlerinin temelleri OSI modeli ve paket işleme akışı olmak üzere iki ana yapı halinde incelenmiştir. OSI modeline göre bir ağ sisteminin paketleri nasıl gönderip aldığı, bu paketler üzerinde hangi işlemleri yaptığı bu bölümde anlatılmıştır. İkinci bölümde ağ üzerinde akan paket yapısından ve OSI modeline göre oluşturulmuş katmanlı mimariden, ağ sistemine ait temel protokollerden, ağ sistemi içinde yer alan yardımcı cihazlardan ve bu cihazlardan özellikle Router ve Akılı NIC cihazlarının paketleri sınıflama yapılarından bahsedilmiştir. Ayrıca bu tezin geliştirilmesi esnasında kullanılacak hızlı arama algoritmalarının tanıtımı yapılmış olup, SRAM ve dağıtık RAM tabanlı TCAM çalışmaların bu bölümde verilmiştir. Bu şekilde tez için tasarımı yapılan paket hızlandırıcıların ve yönetim yazılımlarının anlaşılabilmesi için teorik altyapı oluşturulmuştur. Üçüncü bölümde önerilen paket hızlandırıcı tasarımı tüm detayları ile verilmiştir. Öncelikle donanım tasarımından bahsedilmiştir. Ayrıca bu tasarımı optimize etmek ve daha hızlı çalıştırabilmek için çeşitli öneriler sunulmuştur. Genel tasarım şemaları bu bölümde detaylı olarak verilmiştir. Ayrıca birden fazla işlemci çekirdeği üzerinde çalışan yönetim yazılımının temel parçaları, çalışma ilkeleri ve çok çekirdekli yapının birbiriyle konuşarak işlemlerini nasıl yerine getirdiğine ait akış diyagramları bu bölümde verilmiştir. Kullanıcı arayüzü tasarımı ve temel fonksiyonları yine bu bölüm içerisinde yer almaktadır. Dördüncü bölümde üçüncü bölümde önerilen paket hızlandırıcı tasarımının ZCU102 geliştirme kartı üzerinde gerçeklemesi verilmiştir. Önerilen mimarideki haberleşme ihtiyacının AXI Lite ve AXI Streaming protokolleri ile nasıl gerçeklendiği bu bölümde anlatılmaktadır. Paket hızlandırıcının iki farklı çalışma frekansına bölünerek sistemin perfomansının arttırılması yine bu bölüm içinde verilmektedir. Ayrıca donanım hızlandırıcılarının yazılım tasarımı, bu tasarımın alt kütüphanelere bölünerek C++ dilinde nesne tabanlı bir şekilde geliştirilmesi de açıklanmaktadır. Son olarak yazılım ve donanımın entegrasyonu yine bu bölüm içinde yapılmıştır. Beşinci bölümde yapılan donanım gerçeklemesine ait Vivado ortamında yapılan simulasyonlar ve sonuçları verilmektedir. Ayrıca SystemILA entegre lojik analizörü yardımıyla yönetim yazılımı ile birlikte yapılan deneyler, bu deneyler esnasında yapılan tablo konfigürasyonları ve kullanılan örnek veriler bu bölümde verilmiştir. Bu deneylere ait sonuçlar da deneyleriyle birlikte açıklanmaktadır. Son olarak sistemin gerçekleme sonrası kaynak tüketimi, zamanlama analizi ve güç tüketimi sonuçları da açıklanmıştır. Son olarak altıncı bölümde ise test sonuçlarından yola çıkılarak yapılan tez projesinin değerlendirmesi yapılmıştır. Performans analizleri yapılmış olup nasıl geliştirilebileceğine dair öneriler sunulmuştır. Gelecekte yapılacak geliştirmeler ve kullanım alanları da açıklanmıştır. Ekler bölümünde ise yönetim yazılımına ait kullanıcı komutlarının kullanım kılavuzu ve örnek komutlar verilerek kullanıcının kendi konfigürasyonunu oluşturması sağlanmıştır. Daha sonra beşinci bölümde yapılan konfigürasyonun detayları ve kullanılan komutlar verilmiştir. Son olarak kodu inceleyenlerin işlerini kolaylaştırmak amacıyla yazılıma ait sınıf diyagramları ve önemli veri yapıları verilmiştir. Tez çalışması içerisinde herhangi bir kod paylaşımı yapılmamıştır. Tez çalışmasına ait tüm tasarım proje dosyaları, simulasyon ve SystemILA sonuçları, oluşturulan IP bloklarının kodları ve yönetim yazılımında kullanılan kütüphaneler Gitlab üzerinden verilen bağlantıdan erişilebilir. Ayrıca Petalinux ile ilgili derleme bilgileri için iki adet video bu kütüphane içinde bulunmaktadır. Sonuç olarak bu tez çalışmasında yapılan geliştirmeler sonucunda 250 Mpps paket işleme performansı elde edilmiştir. Bu bilgi akacak veri miktarına dönüştürülürse yaklaşık 1.49 Tbps veri akışı, uygun veri kanalı geliştirmeleri ile bu tasarımla karşılanabilir. Tasarımın FPGA'ya sığması ve test edilebilirliği için veri akışı 16 Gbps olarak sınırlandırılmıştır. Ancak bu kapasite veri işleme zincirlerinin genişliği veya veri yolu genişliği arttırılarak kolayca arttırılabilir. Ayrıca bu tasarımdaki yapılar farklı tip ağ uygulamalarına kolaylıkla uyarlanabilir. Ayrıca geliştirilen yönetim yazılımı, donanıma işletim sistemi çekirdeğinin sistem çağrılarını atlayarak eriştiği ve çok işlemci çekirdeği içeren bir yapıda tasarlandığı için gelen kullanıcı ve protokol istekleri karşısında çok daha hızlı cevap verebilecektir.
Özet (Çeviri)
The network systems are the part of the daily life of the humankind while connecting to the internet, working in the company, making bank transactions on the ATM and so on. Besides, data centers and cloud devices are connected to each other using network systems. The network infrastructure plays a significant role at these communications. Hub, Switch, Router and Smart NIC are the well known network devices. Thanks to Network Function Virtualization (NFV), all the devices can be deployed as virtual machines working on the data center machines. However, processors cannot satisfy the huge data processing demand which are dramatically increasing day by day. That is why, for both cases, hardware packet acceleration is inevitable in order to satisfy the data processing demand. The proposed method for the hardware acceleration in this thesis provides a solution for this hardware packet acceleration necessities by following hardware \& software co-design methodology. In addition to proposing a hardware acceleration for packet classification, it is simulated on Vivado simulator and then implemented on Zynq Ultrascale+ MPSoC from Xilinx. The design is implemented on ZCU102 evaluation and development board from Xilinx. Besides, a management software is developed in order to maintain the management tasks of the hardware packet accelerator. In order to develop software parts of this thesis, Yocto distribution builder based Petalinux distribution is used. All the required parts of Linux OS is provided by Petalinux. Thanks to Userpace IO (UIO), the drivers of the hardware accelerators are developed in userspace instead of kernel. The C++ libraries are developed for the management application. At the end, software and hardware are integrated in order to work in harmony. This thesis consists of six chapters. In Chapter 1, the purpose of this thesis and the brief information about network systems can be found. Furthermore, the network processing flow is also included in this chapter. Chapter 2 examines the packet architecutres, fundamental network protocols and the network devices located in the network. The proposed design of the hardware accelerator for packet classification and its management software is given in Chapter 3. The implementation of the proposed design can be found in Chapter 4. Experiments and their results are inferred in Chapter 5. In the last chapter, conclusions are given. According to the implementation results of the proposed method, proposed architecture has no disappointing results when it is compared with the other works in the literature. Proposed design has 250 Mpps packet processing capability. It roughly has 1.49 Tbps throughput capacity with the proper data processing extensions. The data processing capacity is limited to 16 Gbps to observe the data flow on FPGA. The throughput can be maximized by increasing data chains or bus widths of the hardware accelerator. Besides, it can be easily adopted for different network applications with small modifications. Furthermore, despite running on Linux userpace, the management software provides direct access to the implemented hardware bypassing the Linux kernel using UIO. The multithreaded architecture provides small latency responses under user interface commands.
Benzer Tezler
- Hardware accelerators for high throughput packet classification in computer networks
Bilgisayar ağlarında yüksek veri hacimli paket sınıflandırması için donanım hızlandırıcıları
DOĞU ERKAN ARKADAŞ
Yüksek Lisans
İngilizce
2024
Elektrik ve Elektronik MühendisliğiOrta Doğu Teknik ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
PROF. DR. ŞENAN ECE SCHMİDT
- Yeni bir hata değişik delta ağ maddeli arttırılmış delta ağı (ADA)
Başlık çevirisi yok
M.EBRU KOLUSAYIN
Yüksek Lisans
Türkçe
1998
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiKontrol ve Bilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. MEHMET BÜLENT ÖRENCİK
- Performance analysis of reliable multicast protocols
Güvenilir çoklu yayılım protokollerinin performans analizi
COŞKUN ÇELİK
Yüksek Lisans
İngilizce
2004
Elektrik ve Elektronik MühendisliğiOrta Doğu Teknik ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
YRD. DOÇ. DR. CÜNEYT BAZLAMAÇCI
- Çok girişli çok çıkışlı (MIMO) sistemlerde kanal tahmini ve hat uyarlaması ile başarım iyileştirmesi
Performance improvement with channel prediction and link adaptation in multiple input multiple output (MIMO) systems
HALİL YİĞİT
Doktora
Türkçe
2010
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKocaeli ÜniversitesiElektronik-Bilgisayar Eğitimi Ana Bilim Dalı
DOÇ. DR. ADNAN KAVAK
- Bilgisayar ağları için saldırı tespit sistemi tasarımları ve FPGA ortamında gerçekleştirilmesi
Intrusion detection system designs for computer networks and their implementations in FPGA environment
TANER TUNCER
Doktora
Türkçe
2010
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolFırat ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
DOÇ. DR. YETKİN TATAR