GRAFİK SİSTEMLERİ İÇİN FPGA CİHAZLARINDA ÇALIŞMAK ÜZERE TASARLANMIŞ MATRİS ÇARPIM MOTORU



Benzer belgeler
İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

Gömülü Sistemler. (Embedded Systems)

FPGA TABANLI ORTALAMA GÖRÜNTÜ FİLTRESİ TASARIMI FPGA BASED MEAN IMAGE FILTER DESIGN

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

DİZE EŞLEŞTİRME BAŞARIMINI İYİLEŞTİRMEK İÇİN FPGA TABANLI BİR DONANIM MODÜLÜ TASARIMI

İşletim Sistemlerine Giriş

2. SAHADA PROGRAMLANABİLİR KAPI DİZİLERİ (FPGA)

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

Dinamik Sistemlerin Yapay Sinir Ağları ile Düz ve Ters Modellenmesi

Yüzde tabanlı String Eşleme Problemi için yeni bir donanım modülü tasarımı. A hardware module design for percentage-based String Matching Problem

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

FPGA ile Gömülü Sistem Tasarımına Giriş

İşletim Sistemleri (Operating Systems)

DERS 5. Çok Değişkenli Fonksiyonlar, Kısmi Türevler

ISSN : Duzce-Turkey

Mikroişlemcili Sistemler ve Laboratuvarı

VHDL Kullanarak FPGA ile Yüksek Kapasiteli Tam Çıkarıcı Devre Tasarımı

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

İŞLEMCİ İşlemcilerin Temel Birimleri, İşlemcinin Çalışma Sistemi ve Komutlar, İşlemci ve Hafıza Arasındaki İlişki, İşlemci Teknolojileri, Modern

Uzaysal Görüntü İyileştirme/Filtreleme. Doç. Dr. Fevzi Karslı

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

1 (c) herhangi iki kompleks sayı olmak üzere

Bilgisayarların Gelişimi

Bilginin Görselleştirilmesi

LEVENSHTEIN MESAFE ALGORİTMASI İÇİN BİR DONANIM MODÜLÜ TASARIMI

FPGA ile Kablosuz Görüntü Aktarımı. Yusuf Onur Koçberber

BM-311 Bilgisayar Mimarisi

Sahada Programlanabilir Kapı Dizileri (FPGA) Sayısal CMOS Tümdevre Tasarımı Y. Fırat Kula

BÖLÜM Mikrodenetleyicisine Giriş

GÖMÜLÜ SİSTEMLER GÖMÜLÜ SİSTEMLER 1

30. Uzay çerçeve örnek çözümleri

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Bilgisayar Mimarisi Nedir?

T E M E L K AV R A M L A R. Öğr.Gör. Günay TEMÜR / Teknoloji F. / Bilgisayar Müh.

VHDL DONANIM TANIMLAMA DİLİD ve FPGA, CPLD DONANIMLARI. Yard. Doç. Dr. Özdemir ÇETİN

KENAR TETİKLEMELİ D FLİP-FLOP

ELEKTRONİK DEVRELERİN MODELLENMESİNDE YÜKSEK BAŞARIMLI BİLGİ TABANLI YAPAY SİNİR AĞLARININ KULLANIMI

Digital Design HDL. Dr. Cahit Karakuş, February-2018

Yrd.Doç.Dr. Celal Murat KANDEMİR

(Random-Access Memory)

KONU 8: SİMPLEKS TABLODA KARŞILAŞILAN BAZI DURUMLAR - II 8.1. İki Evreli Yöntem Standart biçime dönüştürülmüş min /max Z cx (8.1)

Donanımlar Hafta 1 Donanım

Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi. Buse Ustaoğlu Berna Örs Yalçın

Embedded(Gömülü)Sistem Nedir?

HDL Dilleri VHDL. Son olarak, spesifik ASIC teknolojisi için devrenin yerleşimi netlist tanımlamalarından gelen diğer araçlarla oluşturulmuş olunur.

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Görev Unvanı Alan Üniversite Yıl Prof. Dr. Elek.-Eln Müh. Çukurova Üniversitesi Eylül 2014

William Stallings Computer Organization and Architecture 9 th Edition

Bölüm 20 FBs-4A2D Analog Giriş/Çıkış Modülü

HSancak Nesne Tabanlı Programlama I Ders Notları

4. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Hacettepe Üniversitesi Bilgisayar Müh. Bölümü

MİKROİŞLEMCİ SİSTEMLERİ RAPOR-1 HAZIRLAYAN AD: MUSTAFA İHSAN SOYAD:ZENGİN NO:

STATICS. Equivalent Systems of Forces VECTOR MECHANICS FOR ENGINEERS: Seventh Edition CHAPTER. Ferdinand P. Beer E. Russell Johnston, Jr.

Bilgisayar Mimarisi ve Organizasyonu Giriş

80C51 Mikrodenetleyicilerinde Timer-Counter Yapılarının FPGA Mimarileri Kullanılarak Geliştirilmesi. Özdemir ÇETİN 1. Bölümü, Adapazarı

GAZİANTEP ÜNİVERSİTESİ

1. GİRİŞ 1.1. Giriş ve Çalışmanın Amacı

Windows Eski Sürümleri Bellek Yapısı

Dosya Saklama Ortamları (Devam) Kütük Organizasyonu 1

PORTLAR Bilgisayar: VERİ:

MİKROİŞLEMCİLER 1 Ders 1

Hacettepe Robot Topluluğu

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

STATİK MÜHENDİSLİK MEKANİĞİ. Behcet DAĞHAN. Behcet DAĞHAN. Behcet DAĞHAN. Behcet DAĞHAN

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

İŞ İSTASYONU SEÇİM REHBERİ

Bilgisayar Donanım 2010 BİLGİSAYAR

Bulanık Mantık Denetleyiciler

İletişim Protokolleri (Communication Protocols)

ALÇAK IF ALICI İÇİN (CCII) AKIM TAŞIYICILARLA GERÇEKLEŞTİRİLEN ÇOK FAZLI SÜZGEÇ KATI

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

FPGA Mimarisi. Bilgisayar Mimarisinde Yeni Yaklaşımlar. Mehmet AKTAŞ

MİKROİŞLEMCİ MİMARİLERİ

Saklayıcı (veya Yazmaç) (Register)

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

BİTİRME ÇALIŞMASI ARA RAPOR YAZIM KILAVUZU

MİKROİŞLEMCİLER. Mikroişlemcilerde Kullanılan Yeni Teknolojiler ve Mikroişlemcilerin Rakipleri

Gelişmiş Şifreleme Standardının - AES - FPGA Üzerinde Gerçeklenmesi

ANAHTARLI RELÜKTANS MOTORUN SAYISAL HIZ KONTROLÜ

Matrislerde Gauss Jordan Yöntemi ve Eşelon Matris Biçimlerinin Performans Ölçümü

Bilgisayara Giriş. Bilgisayarlar ilk geliştirilmeye başlandıklarından bugüne kadar geçen süre içerisinde oldukça değişmişlerdir.

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

Ders: MAT261 Konu: Matrisler, Denklem Sistemleri matrisi bulunuz. olmak üzere X = AX + B olacak şekilde bir X 1.

Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY DİSK Disket Monitör LCD LED Projeksiyon Klavye Mouse Mikrofon Tarayıcı

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI

DERS 6. Çok Değişkenli Fonksiyonlarda Maksimum Minimum

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

DÖRT ROTORLU HAVA ARACI İÇİN GERÇEK ZAMANDA BULANIK MANTIKLA KONTROLÖR TASARIMI

1. İŞLEMCİLER. İlk İşlemci

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Transkript:

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru GRAFİK SİSTEMLERİ İÇİN FPGA CİHAZLARINDA ÇALIŞMAK ÜZERE TASARLANMIŞ MATRİS ÇARPIM MOTORU İbrahim ŞAHİN 1 ve İsmail KOYUNCU 2 1 D.Ü. Teknik Eğitim Fakültesi, Elektronik ve Bilgisaar Eğitimi Bölümü, 8162, Düce. 2 D.Ü. Düce Meslek Yüksekokulu, Endüstriel Otomason Bölümü, 811, Düce. ÖZET Bilgisaar grafiklerinde sıklıkla kullanılan üç boutlu (3B) dönüşümlerde, animason sahnesindeki dönüşüme uğraan nesne saısı ve bu nesneleri tanımlamada kullanılan nokta saısı arttıkça dönüşümü hesaplamak için gereken CPU amanı katlanarak artmaktadır. Sonuçta, kısa bir animason filminin hesaplanması uun aman almakta ve eğer animason gerçek amanlı bir animason ise hesaplanması imkansı hale gelmektedir. Bu çalışmada, FPGA (Alan Programlanabilir Kapı Diileri) çiplerini kullanarak üç boutlu dönüşümleri hılandırmak için kesirli saı tabanlı donanım modülü tasarlanmıştır. Tasarlanan modül gerçek veri üerinde işlemler apılarak test edilmiş ve modülün ürettiği sonuçların doğrulanması apılmıştır. Modülün veri işleme hıı değişik bilgisaarlarla karşılaştırılmıştır. Karşılaştırma sonuçları göstermiştir ki, tasarlanan modül kullanılarak üç boutlu grafik dönüşümleri PC lere göre 4 kata kadar daha hılı gerçekleştirilebilmektedir. Anahtar Kelimeler FPGA, Bilgisaar Grafikleri, 3B Dönüşüm, Donanım Modülü. A MATRIX MULTIPLICATION ENGINE FOR GRAPHIC SYSTEMS DESIGNED TO RUN ON FPGA DEVICES ABSTRACT In Computer Graphics, as the number of objects in an animation scene and the number of vertices used to define each object increase, calculations of the three dimensional (3D) transformations require huge amount of CPU time. As a result, calculation of an animation scane could take a long time. Moreover, if it is a real time animation, it becomes impossible to calculate transformations in real time. In this stud, a floating point based hardware module has been designed to speed up three dimensional transformations using FPGA (Field Programmable Gate Arra) chips. The module was tested and functional verification of the module is done b comparing of results produced b module and the results generated b general purpose computers (PCs) for the same set of input data. Module s data processing speed was compared to various PCs. The results showed that using the module, 3D graphic transformations can be speeded up b factor of up to 4. Kewords FPGA, Computer Graphics, 3D Transformation, Hardware Module. 1. GİRİŞ Üç boutlu (3B) grafik dönüşümler, grafik paketlerinin ve grafik ugulama programlarının vageçilme parçalarıdır. Bu dönüşümler binlerce noktadan oluşan karmaşık şekillere ugulandığında, grafik programları işlemci gücünü önemli miktarda kullanmaktadır. Öellikle animason işlemlerinde, animason sahnesindeki nesne saısı ve bu nesneleri tanımlamada kullanılan nokta saısı arttıkça, animasonun hesaplanması saatler alabilmektedir. Örneğin tipik bir animason filminin bir sahnesinde onlarca grafik nesne bulunabilmekte ve nesneleri tanımlamak için ü binin üerinde nokta kullanılabilmektedir [1]. Böle bir 61

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru animason sahnesinin DVD standardına göre saniede 24 defa hesaplanması gerekmektedir. Bunun anlamı, sahnei tanımlamada kullanılan ü binin üerindeki noktanın eni değerlerinin saniede 24 defa hesaplanması gerektiğidir. Üç boutlu animasonda bir noktanın eni değerinin hesaplanabilmesi için 4x4 ile 4x1 lik iki matrisin çarpımının gerçekleştirilmesi sö konusudur. Yü bin noktalı bir sahnenin 1 sanielik animasonunda toplam 38.4 milon çarpma ve 28.8 milon toplama işleminin apılması gerekmektedir. Bu durumda genel amaçlı bilgisaarlar etersi kalmakta ve animasonun hesaplanması çok uun süreler almaktadır. Bu duruma çöüm olarak değişik aklaşımlar geliştirilmiştir [2]. Bu aklaşımlardan baıları; gelişmiş grafik kartlarının, grafik işlemler için tasarlanmış öel amaçlı bilgisaarların [3], daha hılı işlemcilerin a da paralel işlemcilerin kullanılması olarak öetlenebilir. Bu sunulan çöümlerin baı deavantajları bulunmaktadır. Örneğin süper bilgisaarlar oldukça malietlidirler. Normal bilgisaarlar, grafik işlemlerinin gerçekleştirilmesinde eterli performans gösterememektedirler. Öel olarak tasarlanan kartlarda ise herhangi bir tasarım vea üretim hatası telafi edilememekle birlikte eniden tasarım süreci oldukça uun aman kabına sebep olmaktadır. Bu çalışmada ukarıda saılan öntemlere bir alternatif olarak üç boutlu grafik dönüşümleri hılandırmak amacıla, FPGA çipleri üerinde çalışabilecek kesirli saı tabanlı bir donanım modülü tasarlanmıştır. Bölelikle 3B grafik dönüşümlerin, daha ucu ve daha hılı hesaplanması hedeflenmiştir. Tasarlanan modül, gerçek veri üerinde işlemler apılarak test edilmiş ve modülün ürettiği sonuçların doğrulanması apılmıştır. Anı veriler değişik öellikteki bilgisaarlarla da işlenerek modülün veri işleme hıı genel amaçlı bilgisaarlarla karşılaştırılmıştır. Makalenin ikinci bölümünde FPGA çipleri ve RC sistemler, bilgisaar grafikleri ile üç boutlu dönüşümler kısaca öetlenmiştir. Üçüncü bölümde, tasarlanan modül detalarıla anlatılmıştır. Dördüncü bölümde, apılan test çalışmaları ve bu çalışmalardan elde edilen sonuçlar sunulmuştur. Beşinci bölümde ise sonuçlar değerlendirilmiştir. 2. ÖN BİLGİ 2.1. FPGA Çipleri FPGA çipleri programlanabilir tümdevrelerdir. Tasarımcının ihtiacı olan mantıksal fonksionları gerçekleştirebilmesi amacıla, kullanıldığı erde programlanabilir olarak üretilirler. Kullanıcının tasarladığı mantıksal devree göre, mantıksal bloklar, aralarındaki bağlantılar ve giriş/çıkış blokları programlanır. Şekil 1 de genel apısı verilen FPGA çipi, programlanabilir üç bileşenden oluşur a. Yapılandırılabilir Mantıksal Bloklar (Configurable Logic Blocks (CLB)) CLB blokları, mantıksal fonksionların oluşturulabildiği Look-up table (LUT) ve Flip-Flop lardan oluşmaktadır. CLB, kullanıcının oluşturmak istediği mantıksal devre için fonksionel elemanlar sağlar. CLB mimarisinin esnekliği ve simetrisi, ugulamaların kolalıkla erleştirilmesine ve önlendirilmesine olanak tanır [4]. b. Giriş Çıkış Blokları (Input/Output Blocks (IOB)) IOB ler çipin iç sinal hatları ile çipin pinleri arasında programlanabilir bir arabirim sağlarlar. IOB ler saesinde FPGA pinleri giriş, çıkış a da çift önlü olarak programlanabilir. FPGA çipinin türüne göre bir çipteki IOB saısı (dolaısıla pin saısı) 1 li saılara ulaşabilmektedir. c. Ara Bağlantılar (Interconnections) Bu birimler hem CLB ler arasında hem de CLB ler ile IOB ler arasında bağlantıları apılandırmada kullanılırlar. Programlanabilir olduklarından çok esnek bir apıa sahiptirler. I/O Block Giriş Çıkış Blokları I/O Block I/O Block I/O Block Şekil 1. FPGA genel apısı [5]. Programlanabilir Mantıksal Bloklar Ara Kanallar (Bağlantılar) 2.2. FPGA Tabanlı Öel Amaçlı Bilgisaarlar FPGA tabanlı Öel Amaçlı Bilgisaarlar (FPGA-based Custom Computing Machines (F-CCMs)), donanım ve aılımı bir araa getiren öel veri işleme platformlarıdır [6]. Genellikle bir F-CCM (Reconfigurable Computing (RC) sistem olarak da bilinir) bir adet genel amaçlı bilgisaar ve bu bilgisaara bağlı üerinde bir a da daha fala FPGA ve hafıa çipleri bulunduran elektronik karttan oluşur [7, 8]. Bu sistemler genel amaçlı işlemcilerin sunduğu programlanabilme öelliği ile FPGA çiplerinin sağladığı hı avantajının bir araa getirildiği sistemlerdir [9]. Ugulama programları F- CCM lere uarlanırken, programın üksek işlemci gücü gerektiren bölümleri öel olarak tasarlanmış donanım modülü kullanılarak FPGA çipleri üerinde çalıştırılır ve bu saede programın daha hılı çalışması sağlanır. İi tasarlanmış bir F-CCM ve donanım modülü saesinde, ugulama programlarının oğun CPU gerektiren bölümlerini 1 kata kadar hılandırmak mümkündür [1, 5]. Hali haırda çeşitli grafik işleme algoritmaları ve optimiason algoritmaları dahil olmak üere bir çok algoritma F-CCM lere ugulanmış ve genel amaçlı bilgisaarlarla karşılaştırıldığında, F-CCM lerin şu ana kadar tespit edilen en düşük çalışma amanını verdiği görülmüştür [1, 11]. Birçok firma RC sistemlerde 62

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru kullanılmak üere FPGA kartları tasarlamış ve piasaa sunmuştur. Şekil 2 te RC sistemlerin genel apısı görülmektedir. Bu apıda n adet FPGA çipi ve bunlara ait erel hafıalar bulunur. FPGA kartı bilgisaar ile veri iletişimini bir PCI ara üü üerinden apar. vageçilme parçalarıdır. Nesneler üerinde genel olarak öteleme, döndürme ve ölçeklendirme olmak üere temel bir kaç değişik dönüşüm vea bunların kombinasonu ugulanır. Host PC PCI Araüü Hafıa 1 Hafıa 2 Hafıa n FPGA 1 FPGA 2 FGPA n Şekil 2. RC sistem genel apısı. FPGA kartlarının kullanımı ise şu şekildedir İlk olarak, daha önceden tasarlanmış donanım modülünün apılandırma (configuration) bilgileri PCI olu üerinden FGPA çiplerine üklenir. Ardından, ine PCI üerinden, işlenecek veri kart üerindeki erel hafıa ünitelerine aktarılır. Bu aşamadan sonra FPGA çiplerine öel bir başlat sinali gönderilerek, çiplerin hafıadaki verii işlemesi sağlanır. Çipler bu verileri işlerken, ana bilgisaar diğer işlerine devam eder. Çipler işlemi bitirince, bilgisaara bir kesme sinali göndererek işlenmiş verinin haır olduğunu bildirir. Son olarak bilgisaar ine PCI üerinden FPGA kartı üerindeki hafıalara erişerek işlenmiş verii alır [7]. FPGA erel hafıası ile bilgisaar hafıası arasında hılı veri iletişimini gerçekleştirmek için DMA (Direct Memor Access-Doğrudan Hafıa Erişimi) kullanır. 2.3. Bilgisaar Grafikleri ve Üç Boutlu Dönüşümler Grafik tasarımlar ve animasonlar için çeşitli grafik paketleri (API-Application Programming Interface- Ugulama Programlama Araüü) geliştirilmiştir. Bu paketler genellikle grafik işlemleri erine getirebilmek için birçok fonksion içerirler. Bu grafik paketlerinden en agın olarak bilinenleri OpenGL (Graphic Librar) ve Direct X tir. Paket ile gelen fonksionlara C/C++ başta olmak üere birçok programlama dilinden erişim mümkündür. Bu paketlerle animasonların oluşturulabilmesi için nesnelerin 2 vea 3 boutlu ortamda matematiksel olarak noktalar, çigiler ve üeler olarak modellenmesi gerekmektedir. Basit bir nesnei oluşturmak için ülerce nokta tanımlanması gerekmektedir. Şekil 3 te noktaların tanımlanarak birleştirilmesile oluşturulmuş çeşitli şekiller verilmiştir. Grafik paketlerinde nesneler tanımlanırken, nesne üerinde bulunan noktaların karteen koordinat sistemindeki üç boutlu koordinat değerlerile (x,, ) tanımlanırlar. Üç boutlu (3B) grafik dönüşümler, grafik paketlerinin ve grafik ugulama programlarının Şekil 3. Nesnelerin noktalarla oluşturulması [4]. Bu dönüşümlerden üç boutlu döndürme ve ölçeklendirme işlemleri 3x3 ile 3x1 matris çarpımı olarak gerçekleştirilir. Fakat öteleme işlemi diğer işlemler gibi doğrusal bir işlem olmadığından matris çarpımı şeklinde ifade edileme. Bu işlemi de doğrusal hale getirebilmek için karteen koordinat sisteminde (x,, ) olarak tanımlanan nokta değerleri homojen koordinat sistemine çevrilerek bütün grafik dönüşümleri standart 4x4 ile 4x1 matris çarpımı haline getirilir. Bu dönüşüm işlemi sırasında nokta x,, ile birlikte bir dördüncü değer olarak w ile (x,,, w) olarak ifade edilir ( w olmak kadıla). w değeri olarak genellikle 1 alınır. Aşağıda öteleme, döndürme ve ölçeklendirme işlemleri parametrik ve matris çarpımı notasonunda verilmiştir. Öteleme işleminde tx, t ve t üç boutlu ortamda nesnenin her bouttaki öteleme miktarını, döndürme işleminde θ nesnenin dönme açısını, ölçeklendirme işleminde ise sx, s ve s nesnenin her bir bouttaki ölçeklendirme katsaısını belirtir. P dönüşüme uğraan noktanın orijinal koordinatı, P ise eni koordinatıdır [1, 4, 13]. x 1 = 1 x = 1 P = T ( t, t, t ) P cosθ sinθ x 1 1 Öteleme P = R( θ ) P sinθ cosθ Döndürme tx x t t 1 1 1 x 1 1 63

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru P = S( s, s, s ) P x sx = 1 x s s Ölçeklendirme x 1 1 Yukarıdaki eşitliklerden de görüleceği üere dönüşüm işlemleri 4x4 ile 4x1 matris çarpımı halinde gerçekleştirilmektedir. Bunların dışında grafik paketlerinde, eğme (shearing), gölgelendirme (shadow) gibi dönüşümler ine 4x4 ile 4x1 matris çarpımı şeklinde gerçekleştirmektedir. Hatta bu dönüşümlerin kombinasonu da ine anı formatta olmaktadır. Bu şekillerden bir sahnede ülerce olabilir. Grafik paketleri bu matematiksel modeller üerinde ukarıda açıklanan grafik dönüşümleri ugulaarak animasonları oluşturur. Yani basit bir kamera hareketile ilgili bir animasonda, bütün nesnelerin sahnedeki eni görünümleri (nesneleri tanımlaan noktaların eni değerleri) bu dönüşümlerde verilen matris çarpımları olula hesaplanır. 3. ÜÇ BOYUTLU DÖNÜŞÜMLER İÇİN FPGA MODÜL TASARIMI Bu çalışmada kesirli saı tabanlı, üç boutlu homojen dönüşümler için FPGA sistemleri ile birlikte kullanılabilecek bir donanım modülü tasarlanmıştır. Modül sabit bir 4x4 matris ile bir dii 4x1 matris serisini çarparak eni bir dii 4x1 matris serisi oluşturacak şekilde düenlenmiştir. Modül -bit IEEE 754-1985 kesirli saı standardına ugun olarak bir donanım tanımlama dili olan VHDL de tasarlanmış ve Xilinx ISE 9.2 aracı kullanılarak değişik FPGA çipleri için sentelenmiştir. 3.1. Modülün Genel Yapısı Şekil 4 te tasarlanan modülün en üst sevie blok diagramı görülmektedir. Modül üerinde -bitlik veri giriş ve çıkış olları arı arı verilmiştir. Bunun sebebi modülün herhangi bir öel FPGA kartına göre tasarlanmamış olmasıdır. Modül kullanıcıları, kullanılacağı karta ugun bir hafıa ara üü aracılığıla veri giriş ve çıkış ollarını birleştirerek çift önlü tek bir veri olula hafıa ünitesine bağlantı apmalıdırlar. Modül -bitlik bir adres oluna sahiptir. Bu saede 4 GB lık bir hafıa alanını adresleme imkanı sunulmuştur. Reset, Basla ve Bitti sinalleri modül amanlaması ve modül ile modülün bağlı olduğu bilgisaar arasında senkroniasonu (hand-shaking) sağlamak için kullanılır. Hafıa ile senkroniasonu sağlamak ve veri okuma ama işlemlerini apabilmek için arıca hafıa kontrol sinalleri bulunmaktadır. Reset Başla Clock GirişYolu Matris Çarpım Modülü AdresYolu Bitti HafıaKontrolS ÇıkışYolu Şekil 4. Matris Çarpım modülü blok diagramı. Şekil 5 te matris çarpım modülünün ikinci sevie blok diagramı görülmektedir. Kontrol Ünitesi ve İşlem Ünitesi olmak üere, modül iki bölümde tasarlanmıştır. Kontrol Ünitesi gerekli amanlarda ihtiaç duulan kontrol sinallerini üreterek, hafıadan verilerin alınmasını, verilerin İşlem Ünitesi üerinde işlenerek sonuçların hafıaa geri aılmasını sağlar. İşlem Ünitesi ise kontrolörden aldığı sinallerle 4x4 ile 4x1 matris çarpımını apan donanımı içerir. Kontrol Ünitesi Kontrol Sinalleri GeriBesleme Sinalleri İşlem Ünitesi Şekil 5. Modülün ikinci sevie blok diagramı. Şekil 6 da İşlem Ünitesi nin blok diagramı görülmektedir. İşlem Ünitesi, Çekirdek ve Erişim Saaçları olmak üere iki bölüm olarak tasarlanmıştır. erişim kısmında üç adet saaç kullanılmıştır. NoktaSaacı (NS) dönüşüme uğraacak nokta saısının kontrolü içindir. Modül dönüşüm işlemine başlamadan önce, dönüşüme uğraacak nokta adedi bu aaca üklenir. Herbir nokta işlendikten sonra saacın değeri bir aaltılır. Saaca eklenen öel bir tasarım saesinde saaç içindeki değer sıfıra ulaştığında kontrol ünitesine Bitti sinali gönderilerek dönüşümün sonlanması sağlanır. KanakSaacı (KS) dönüşüme uğraacak noktaların hafıa adresini, HedefSaacı (HS) ise dönüşüm sonrasında oluşan eni nokta değerlerinin hafıada aılacağı adresi takip etmek için kullanılmıştır. Bu saaçların değeri dönüşüm işlemine başlamadan önce hafıadan okunur. Her bir nokta için x,, ve w olmak üere hafıada dört değer bulunduğundan, her bir noktanın işlenmesi sırasında KS ve HS nin değerleri dörder defa arttırılır. Bu bölümde er alan multiplexer, adres seçicidir. Kontrolörden gelen AdresSecici sinaline göre KS a da HS nin adres oluna aılmasını sağlar. Modül, dönüşüme uğraacak nokta değerlerini hafıadan alarak işledikten sonra ugun amanlama ile ürettiği sonuçları ine anı veri olu üerinden hafıa ünitesine göndermektedir. 64

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru Girişi NS KS HS Çekirdek Mux Bitti Adres Adres Seçici Şekil 6. İşlem Ünitesi blok diagramı. Satır Seçici 2 Girişi SR1 SR2 SR3 SR4 DR * Adım toplama ve çarpma üniteleri daha önceden tasarlanmış IEEE 754-1985 standardında işlem apan ünitelerdir. [5, 7, 8]. Bir dönüşüm işlemi 4 saat periodu bounca gerçekleşir. Dönüşüm işlemi sırasında her saat periodunda 4x4 dönüşüm matrisinin bir satırı ile 4x1 dönüşüme uğraan nokta matrisi çarpma ünitelerine gönderilir. 4 çarpma işlemi anı anda apılır ve çarpma sonuçları anı anda toplama ünitelerine ulaşır. Toplama ünitelerinde saılar toplandıktan sonra sıra ile hafıaa aılmak üere çıkışa gönderilirler. Sondaki gecikme ünitesi veri giriş çıkışının senkroniasonu için kullanılmıştır. 4x-bitlik SabitYaac lardan her birinin içinde 4 adet aaç bulunmakta ve herbiri içerisinde dönüşüm matrisinin bir sütunu tutulmaktadır. Şekil 8 de blok diagramı verilen SabitYaac ın çalışmasını her bir aaç için arı arı tasarlanmış 4-bitlik Oku ve SatirSecici sinalleri sağlamaktadır. Gelen verinin hangi aaca kadedileceğini Oku sinali, hangi aacın içindeki değerin çıkışa aktarılacağını ise SatirSecici sinali belirler. Oku 4 Girişi * Adım R1 R2 R3 R4 Mux * Adım * Adım + Adım + Adım + Adım Satır Seçici Şekil 8. SabitYaac blok diagramı. Dönüşüme uğraacak noktaların değerleri (x,,, w) her seferinde bir nokta olmak üere DeğişkenYaacı nda tutulur. Şekil 9 da DegiskenYaacı n blok diagramı görülmektedir. olundan gelen veriler 4-bitlik Oku sinali saesinde sıra ile R1...R4 aaçlarına aktarılırlar. DegiskenYaacı 4x = 128-bitlik veri çıkışına sahiptir. Bu saede aaçlarda tutulan 4 değer anı anda çıkışa aktarılabilmektedir. Girişi Gecikme Ünitesi R1 R2 R3 R4 Şekil 7. Modül çekirdek blok diagramı. Şekil 7 de çekirdeğin blok diagramı görülmektedir. Çekirdek, dört adet 4x-bitlik SabitYaac(SR1...SR4), bir adet 4x-bitlik DonusumYaac ı (DR), dört adet -bitlik kesirli saı çarpıcı ve üç adet -bitlik kesirli saı toplaıcıdan oluşmaktadır. -bitlik kesirli saı Şekil 9. DegiskenYaacı blok diagramı. 65

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru 3.2. Modül Kontrolörü ve Çalışması Şekil 1 da modül kontrolürünün çalışmasını gösteren durum diagramı verilmiştir. Kontrolör toplam 28 durum dan oluşan bir sonlu durum makinesi olarak tasarlanmıştır. Modül ilk çalışmaa başladığında Reset durum unda bekler. Bilgisaardan Basla sinalini aldığında, Reset durum undan çıkarak, hafıaa erişmek için sistem oluna istek sinali gönderir ve olun kendine tahsis edilmesini bekler. Yol tahsis edildikten Eğer SonucHair = 1 ise bu durum larda sonuç hafıaa aılır. Eğer SonucHair = ise durum lar boş geçilir. Bitti_D = 1 M_1 M_1 M_ M_11 L4 Reset Başla B_Bekle A1 A2 A16 A_N_S A_H_Y L17 L18 Bitti_D = Başla = 1 İşlem Döngüsü Başla = Mem_Bus_Grant = 1 Mem_Bus_Grant = -bitlik 16 adet Dönüşüm Matris lerinin okunması Nokta Saacı Ve Hedef Yaacı lerinin okunması D1 L3 D2 D3_L1 D4_L2 Eğer NS ise bu durum larda hafıadan okuma apılır. Eğer NS = ise bu durum larda hafiadan okuma apılma. bilgisini okur ve bunları, NS ve HS veri erişim saaçlarına kadeder. Bu işlemler toplam iki durum bounca apılır. Bu aşamadan sonra, modül bir döngüe girer ve döngünün her tekrarlanışında bir noktanın değerlerini hafıadan DegiskenYaacı na okur, SabitYaac ve DegiskenYaacı ndaki ugun elemanları ugun amanda çarpıp toplaarak eni değerleri hesaplar. Hesaplanan eni değerler, hafıada HedefSaacı nın gösterdiği ere aılır. Döngünün her tekrarlanışından sonra NoktaSaacı bir aaltılır. NoktaSaacı sıfıra ulaştığında ise modül döngüden çıkar. Kontrolör döngünün herbir tekrarlanışını on durum bounca gerçekleştirir. Döngüden çıkıldığında, kontrolör bilgisaara işlemin bittiğini belirtmek için bir kesme sinali gönderir ve bekleme konumuna geçer. Modül bekleme konumunda tekrar Reset sinali gelincee kadar kalır. Modül içinde kullanılan toplama ve çarpma üniteleri 8 periot kanallı olduğundan hafıadan okunan ilk değerin sonucu gecikme ünitesi ile birlikte toplam 3 saat darbesi sonra çıkışta görülmektedir. Gecikme ünitesi veri giriş çıkış işlemleri arasındaki senkroniasonun sağlanması için sonuçları 6 saat darbesi bounca bekletmekte kullanılır. Kontrolör işlem başladığı ilk 3 periot bounca çıkışa sonuç amasa da her 1 periotta bir veri setini hafıadan okur, okunan değerleri çarpma ve toplama ünitelerine işlenmek üere gönderir. Üniteler kanallı (pipelined) olarak tasarlandığından içlerinde anı anda 3 noktanın değerleri sıra ile işlerler. İlk 3 periottan sonra her 12 periotta bir noktanın değerleri hafıadan okunur, daha önceden okunmuş ve sonucu haır hale gelmiş başka bir noktanın değerleri hafıaa aılır. İşlenecek noktaların okunması bittiğinde (son noktanın değerleri hafıadan okunduktan sonra) kontrol ünitesi çarpma ve toplama üniteleri içinde kalan değerler hafıaa aılana kadar işleme devam eder. 4. DENEY DÜZENEKLERİ VE TEST SONUÇLARI Bu çalışmada tasarlanan modül, değişik FPGA çipleri için sentelenerek FPGA çip istatistikleri ve modülün aami saat frekansları incelenmiştir. Modülün belirlenen verii işleme süresi, ISE simülason programı [13] kullanılarak bulunmuş ve bu süre farklı PC lerin anı verii işleme süreleri ile karşılaştırılmıştır. SON Reset = Tablo 1. Denelerde kullanılan PC lerin öellikleri. Bitti = 1, Çıkış Sinali Şekil 1. Modül çekirdek blok diagramı. sonra, kontrolör hafıada h adresine giderek ilk önce dönüşüm matrisinin değerlerini hafıadan SabitYaac ta ugun erlere okur. Bu işlem, kontrolörde toplam 18 durum bounca apılır. Okunan bu değerler bütün noktaların dönüşümü tamamlanıncaa kadar bu aaçlar içinde tutulur. Modül, dönüşüm matrisini okuduktan sonra, hafıadan kaç tane noktanın okunacağı bilgisini ve hesaplanan eni değerlerin hafıada kadedileceği adres PC Adı CPU Hıı (GH) CPU Cache Bellek (KB) RAM (MB) Hafıa Tipi PC1 2.6 128 256 DDR 1 PC2 2. 248 512 DDR 2 PC3 1.73 248 512 DDR 2 CPU Türü Intel Cel. AMD Athl. Intel Pent. FSB BUS Hıı (MH) BUS Boutu (Bit) 4 667 64 533 Modülün çalışma performansını karşılaştırmak için konfigürasonları Tablo 1 de görülen üç adet bilgisaar seçilmiştir. Seçilen bu bilgisaarlardan PC-1 ve PC-3 tek 66

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru çekirdekli olup PC-2 çift çekirdekli AMD işlemcie sahiptir. Tablo 2 de verilen senteleme sonuçları göstermiştir ki, kullanılan slice register, LUTs saılarına göre seçilen FPGA çiplerine teorik olarak modülün beş adet kopasının anı anda sığması mümkündür. Fakat modülde bulunan IOB (giriş/çıkış pinleri) önünden düşünüldüğünde çipe iki adet modülün rahat bir şekilde erleştirilebileceği görülmektedir. Tablo 2. Modül FPGA çip istatistikleri. Hı Kaancı VIRTEX 4 Çipinin PClere Göre Hı Kaançları 3,5 3, 2,5 2, 1,5 1,,5, 1 1 1 1 1 Objelerdeki Nokta Saısı FPGA Çip Türü Slice Reg. Saısı / % LUTs Saısı / % Slice FFs Saısı / % Bounded IOBs Saısı / % Max Saat Hıı (MH) Virtex 4 4192 / 38 985 / 83 4422 / 4 152 / 47 2.49 Virtex 5 4188 / 14 55 / 17 6288 / 21 152 / 31 288.38 Modül veri işlemlerinin kontrolü için 1, 1, 1, 1 ve 1 noktası (vertex) olan nesne verileri oluşturulmuştur. Bu veriler kesirli saı formatında olup her bir nokta için x,, ve w olmak üere dört adet rastgele kesirli saı belirlenmiştir. Tablo 3. PC lerin kesirli saı türünde oluşturulan nesne nokta verilerini işleme süreleri. Nokta Saısı PC-1 (µs) PC-2 (µs) PC-3 (µs) 1 16.87 9.15 8.76 1 64.99 72.87 68.96 1 684.65 714.87 679.3 1 9374.62 7271.61 692.45 1 98939.94 77589.75 7163.72 Tablo 3 te PC lerin dene verilerini işleme süreleri verilmiştir. Burada verilen süreler verilerin hard diskten okunması için gerekli sürei değil, noktaların hafıadan okunması, dönüştürülmesi (matris çarpım işlemlerini) ve sonuçların hafıaa aılması için geçen sürei göstermektedir. Şekil 11 ve 12 de Virtex 4 ve Virtex 5 çiplerine göre sentelenmiş modülün çalışma süreleri, seçilen PC lerle karşılaştırılmıştır. Sonuçlar orumlanacak olursa Virtex 4 çipinde modül, PC-1 e göre aklaşık 1.2 ile 3 kat arasında, PC-2 e göre 1.3 ile 1.5 ve PC-3 e göre ise aklaşık 1.2 ile 1.5 kat arasında hı kaancı sağlandığı görülmektedir. Virtex 5 çipinde ise, PC-1 e göre aklaşık 1.8 ile 4.7 kat arasında, PC-2 e göre 2. ile 2.5 ve PC-3 göre ise aklaşık 1.9 ile 2.4 kat arasında hı kaancı sağlandığı görülmektedir. Daha önce de belirtildiği gibi verilen hı kaançları tek bir çip üerinde, tek bir modül çalıştırıldığında elde edilen sonuçlardır. Birden fala çip üerinde birden fala modül paralel olarak çalıştırıldığında hı kaançları katlanarak artacaktır. PC 1 / VIRTEX 4 PC 2 / VIRTEX 4 PC 3 / VIRTEX 4 Şekil 11. Virtex 4 FPGA çipine göre sentelenmiş modülün PC lerle karşılaştırılması. Hı Kaancı 5, 4,5 4, 3,5 3, 2,5 2, 1,5 1,,5, VIRTEX 5 Çipinin PClere Göre Hı Kaançları 1 1 1 1 1 Objelerdeki Nokta Saısı PC 1 / VIRTEX 5 PC 2 / VIRTEX 5 PC 3 / VIRTEX 5 Şekil 12. Virtex 5 FPGA çipine göre sentelenmiş modülün PC lerle karşılaştırılması. 5. SONUÇ Grafik ugulamaları ve animasonları oluşturulurken oğun olarak matris çarpımı işlemleri ve dönüşümleri apılmaktadır. Bu işlemler ve dönüşümler binlerce noktadan oluşan karmaşık şekillere ugulandığında kısa bir animason filminin hesaplanması saatler almaktadır. Eğer animason gerçek amanlı bir animason ise hesaplanması imkansı hale gelmektedir. Bu problemin çöümü için gelişmiş grafik kartları, grafik işlemler için tasarlanmış öel amaçlı tasarlanmış bilgisaarlar vea paralel işlemcili bilgisaarlar gibi değişik aklaşımlar geliştirilmiştir [2, 3]. Bu çalışma da ukarıda belirtilen aklaşımlara bir alternatif olarak, üç boutlu grafik dönüşümleri hılandırmak amacıla, FPGA çipleri üerinde çalışabilecek bir donanım modülü tasarlanmıştır. Bu aklaşımla 3B grafik dönüşümlerinde, paralel bilgisaarlara, süper bilgisaarlara hatta öel tasarlanmış grafik kartlarına göre daha düşük maliete sahip, normal bilgisaarlarla karşılaştırıldığında daha üksek performans gösteren ve çok kısa sürelerde defalarca tekrar programlanabilen daha esnek bir apı ortaa konulmuştur. Tasarlanan modül, gerçek veri üerinde işlemler apılarak test edilmiş ve ürettiği sonuçların doğrulanması apılmıştır. Modülün veri işleme hıı değişik bilgisaarlarla karşılaştırılmıştır. Karşılaştırmada kullanılan PC ler ortalama 2 GH 67

s. 61-68, 28 Üere Tasarlanmış Matris Çarpım Motoru civarında çalışmasına rağmen modul en fala 288 MH e çıkabilmektedir. Buna rağmen karşılaştırma sonuçlarına göre modül kullanılarak kesirli saı tabanlı üç boutlu grafik dönüşümleri PC lere göre 2 ile 4 kat arasında hılandırmanın mümkün olacağı görülmüştür. Hı kaançları tek bir FPGA üerinde tek bir modül çalıştırılarak tespit edilmiştir. Bir FPGA çipine birden fala modülün ugun şekilde erleştirilmesile a da birden fala FPGA çipinde modülün birden fala kopasını çalıştırılmasıla hı kaancının katlanarak artacağı düşünülmektedir. Bu modül FPGA çipleri için tasarlanmıştır. FPGA çiplerinin şu anki saat hıları aklaşık olarak 5MH civarındadır. Modüller ASIC olarak gerçekleştirildiğinde çok daha üksek saat hılarına ulaşılacağı için PC lere göre çok daha üksek hı kaançlarına ulaşmak mümkün olacaktır. KAYNAKÇA 1. Sridharan, K. and Pria, T.K. 27. A Hardware Accelerator and FPGA Realiation for Reduced Visibilit Graph Construction Using Efficient Bit Representations. IEEE Transactions on Industrial Electronics, Vol. 54, No. 3. 11. Kouncu, İ. and Şahin, İ. 27. Generic Fpga Modules for Integer 2D and 3D Transformations. 12th. Conference for Computer Aided Engineering and Sstem Modeling with Exhibition. Antala, Turke. 12. Çetin, A. 23. Bilgisaar Grafikleri. Seçkin Yaıncılık. 13. http// www.xilinx.com/. 28. 1. Hearn, D. and Baker M.P. 23. Computer Graphics with OpenGL 3E. Prentice Hall. 2. Bensaali, F., Amira, A., Uun, I.S. and Ahmedsaid, A. An FPGA Implementation of 3D Affine Transformations, IEEE International Conference on Electronics, Circuits and Sstems Proceedings. Sharjah, UAE. 3. http//www.sgi.com/. 27. 4. http//www.bilesim.com/. 24. 5. Sahin, I. 22. A Compilation Tool for Automated Mapping of Algorithms onto FPGA Based Custom Computing Machines. NC State Universit, Doktora Tei, Raleigh-USA. 6. Şahin, İ. ve Gloster, C.S. 25. Evaluation of Ic Phsical Design Optimiation Algorithms For Acceleration Using Fpga-Based Custom Computing Machines. İleri Teknolojiler Sempoumu, Kona. 7. Gloster, C. and Sahin, I. 21. Floating-Point Modules Targeted for Use with RC Compilation Tools, NASA Earth Science Technolog Conference (ESTC), College Park, MD. 8. Sahin, I., Gloster, C. and Doss, C. 2. Feasibilit of Floating-Point Arithmetic in Reconfigurable Computing Sstems, NASA Militar and Aerospace Applications of Programmable Devices and Technolog Conference, Washington, DC. 9. Rincon, F. and Teres, L. 1998. Reconfigurable Hardware Sstems. International Semiconductor Conference, vol. 1, pp. 45-54. 68