Pemanfaatan Bahasa Pendiskripsian Mesin ( Machine Description) pada teknologi kompilator arsitektur VLIW Debyo Saptonor,Joko Purnomot,Eri Prasetyo3 r'2JurusanTeknik Elektro, FakultasTeknologi Industri, UniversitasGunadarma 3J.r.usansi$tcm Komput€r,Fakultaslbnu {omputer, iJniversitas Gunadarma I 2
[email protected] [email protected],
[email protected].
Abstrak Arsitektur komputer berbasiskanprosesor Very Long Instruction Word (VLIW) adalah satu pilihan yang optimal dalam usahauntuk memperolehtingkat performansiyang"tinggi pada suatu peralatanaplikasi sistem embedded. . Efektifitas dari jenis-jenis prosesor ini tergantung dari kemampuan kompilatornya untuk menyediakanInstructionLevel Parallelism(ILP) dalamkode program. Penggunaankompilator VLIW yang bersifat retargetable dapat digunakan untuk mendislaipsikap prosesor taxgetyang diharapkan.Sepertikompilator VLIW yang digunakandalam analisis adalahOpenIMPACT yang diideshipsikan untuk prosesorDSP keluaranTexasInstrument(TI) denganmenggunakanMachine Description Languages(MDES). Analisis yang tepat sangatdiperlukan untuk menghasilkansuatu peralatanyang berkinerja tinggi, terutama analisispada kompilator yang menghasilkantingkat ILP yang tinggi padabeberapaaplikasi pengolatransinyal digital. Sebagaipembandingkinerja kompilator OpenIMPACT digunakankompilator VEX yang bekerja pada jenis arsistekturVLIW jugaHasil simulasi yang dilakukan menggunakanLsim menunjukkan bahwa kompilator OpenIMPACT dapat menghasilkanILP yang tinggi dibandingkanVEX C denganpengaturankonfigurasiperangkatkerasyang relatif sama.. Kata kunci:
l.
Kompilator VLIWretargetabte,ILP, MDES,OpenIMPACT, l/EX C
Pendahuluan
Saat ini perkembanganpenggunaantools untuk menggantikanperan perangkatkeras dalam bidang desain prosesor mulai meningkat pesat. Terutama dalam bidang sistem embedded yang memerlukan trade-off antara space, time, and energi Penggunaantools ini akan mengurangiperancangan yang lebih rumit padaperangkatkeraskarenasudah dilah*an oleh kompilator. Kompilator secara tradisional hanya mempunyai satu tujuan yaitu mempercepat suatu aplikasi running pada suatu prosesor. Dengan kata lain , hampir sebagian usaha untuk mendapatkan optimisasi kerja pada kompilator mempunyai satu dimensi yaitu cost function yang direpresentasikan dengan jumlah siklus yang diperlukan dalam mengeksekusi program (time execation). Dalam bidang embedded,ada beberapadimensi tambahan untuk meningkatkan kecepatan eksekusi yaitu : ukurankode (codesize) dan energi(energt). l3l
284
Salah satu cara untuk meningkatkandimensi time execution pada kompilator dengan menerapkan orientasi ILP ( ILP-oriented) pada bagian pembangkit kode antara (IR generator) seperti terlihat padagambar7 . Penerapanini akanberhasil jika kompilator dapat melakukandua hal, pertama predikasi eksekusi Qredicated uecution) yaitu sebuah cara untuk menghilangkan batasan performansi ditentukan dengan keputusan untuk sering mengkontrol pada prosesor berkemampuan yangkeduamampumengeloladan tinggi sedangkan menggunakanmemori yang tergantung informasi selamaproseskompilasi[3]. Saat ini sudah ada beberapa kompilator yang didesainuntuk orientasiILP dan dapatbekerja pada arsitektur VLIW. Dalam artikel ini, penulis akan membahaskompilatorOpenIMPACTyang bersifat retargetable dan VEX C yang diturunkan dari kelurgaprosesor HP/ST Lx (non retargetable)[2]. Pada kompilator umurnnya retargetable memerlukanbahasa pendiskripsianmesin untuk prosesor taxget yang diharapkan. OpenIMPACT
menggunakan HMDES pendiskripsiannya. [4].
ffi, '::ti'
v, tt o
AStC DSP
8.
t;iffi" RISC
sebagai
bahasa
Very HisrhveryLons TBH::3f' High
Iong
Long
Hish
sho'r
shorr
low-l\,lediumVery Shorr VeryShorl
Gambar l. perbandingankinerja custom VLIW denganteknologilainnya. Kedua jenis kompilator ini mampu melakukan customisedoriented pada prosesorVLIW ( castom VLfn wahupun pada kompilator OpenIMPACT terbatashanyapada3 hal yaitu ukuran file register( registerfile sbes), jumlah unit fungsional dan nilai untuk latensi operasi (operation latency values). PadagambarI terlihat bahwacustomVLIW cukup bagus dari performansi Qterformance), time to market, dantime to changefungsionality. 2.
MetodePenelitian
2.1 Kompilator OpenIMPACT OpenIMPACT adalah kompilator yang dapat didesain untuk berbagaitarget prosesor dan dapat menjalankan instruksi secara paralel dengan menggunakanILP. Padabagian front-endnyaakan menghasilkan keluaranberupakodeantaraatauyang dikenal sebagai Interrnediate Representatiorz(IR) Lcode. Kode Lcode ini mendiskripsikanperintahperintah instruksi (opcode) berupa kode assembly. Pembangkit kode ini bekerja bmelalui berberapa tahapyaitu : tahapl akanmenyeleksiopcodeLcode dengan melakukan penanganan operasi yang komplek sepertiMultiply Accumulate(MAC), tahap 2 akan melakukan proses penjadwalan dan optimisasimesinyang dependensidan terakhirtahap 3 akanmenghasilankode assembly. Kompilatorini mempunyaiarsitekrurdefaultseperti pada gambar 2 dimana pada bagian jalur merah dimungkinkan untuk melakukan customisasiuntuk arsitektur prosesor target yang diharapkan seperti jumlah fungsional unit yang digunakanantara lain unit memori, unit integer, unit branch dan unit floatingpoint.
Gambar2: Arsitektur defaultpadaOpenIMPACT Target prosesor yang bisa dihasilkan oleh kompilator ini dispesifikasikanmelalui bahasa pendiskripsian mesin yangterbagimenjadi3 bagian yaitu : bagian detail procesor seperti layout frame fungsi, aksesterhadapvariabel lokal, fungsi nilai kembalian register, register spesifik pada mesin padaseksiMspec,bagianpendiskripsimesin(Mdes) yang akan mendiskripsikankumpulan operasiyang mendukungarsitekturprosesor,lapisanfisik seperti unit fungsionalyang digunakandan tipe masingmasing operand dan terakhir register files yang mendukungtipe data yang didiskripsikandalam antarmukaRegisterAllocator. Informasi Mspecpertamakali digunakanoleh front end IMPACT untuk mensinteasLcode dari file sumberdalambahasaC. Mspecjuga menyimpan informasiyangbergunauntuk optimator.Kemudian bagian selanjutnyaadalah Mdes yang digunakan untuk bagian penjadwalan kompilator untuk menghasilkan tabelreservasiyang menyimpantrack penggunakan resourcefisik prosesor.BagianMdes ini dideskripsikan menggunakan bahasa pemrogramanberbasistext yang dikenal sebagai HMDES [6]. 2.1.1 Model pendiskripsian HMDES Informasi mengenai mesin diperlukan oleh kompilatoryangterbagiatas6 jenis informasiyang masing-masing informasi tersebut mempunyai stuktur hirarki tiap bagiannyayaitu : informasi register,informasiformat, informasi penggunaan resource,informasioperasi,informasi latensi,dan informasikompilatorkhusus. nformasi register berisi pendiskripsianjenis-jenis register yang digunakan dan overlapnya. pada bagianini dapatmenentukan kelasregister(register class) seperti caller, stack pointer,
frame pointer
atau
general purpose.Jenis-jenisregister yang digunakan oleh mesin dengan tiap-tiap register mempunyai kelas field, lebar, dan informasi overlap. Jenis-jenis register file yang menentukan secara fisik ( static atau rotate) dan logik ( konstan integer).
28s
Informasiformatberisi informasiyang menentukan operasiapa yang diijinkan. Terdapatpendiskripsian tipe field untuk satuoperand dan kompatibilitasnya dengantipe field lainnya.Sedangkan formatoperasi mendiskripsikan sebuah format yang terdiri beberapa tipe field yang valid unnrk operand sumber,tujuan, danpredicate. Informasi penggunaimresource mendiskripsikan latensi untuk operansumberdan tujuan. Terdapat5 bagian yang penting yaitu resource yang berisi resourcebaik fisik atau logik di dalammesinyang akan digunakan nanti dalam menentukan tabel reservasi, informasi penggunaanresource. unit resource,pilihan tabel, dantabel reservasi. Informasi latensi menentukan openm yang akan melakukanlatensidanjenis operasinya. Informasi operasi menentukanopcodeunhrk mesin dan gabungannya terhadap informasi format, resourcedan latensi. Terakhir, informasi kompilator khusus unhrk menyimpan informasi yang diperlukan oleh kompilator sepertipemetaanoperasi.
CREATESECTIONRegister_File REQUIREDnumber(INT); REQUIREDtype(INT); REQUIREDgpr(LlNK(Register)*); REQUIREDoutports(LlNK(Port)* ); REQUIREDinports(LlNK(Port)*); *); OPTIONALrotating(LlNK(Register) { l
Dd: Crh(Alrfrr\ t- .
l6-
J:b i l d ]u
Gambar 4: Arsitektur TI TMS320 C62X DSP
*T"-
2.2 Kompilator VEX C : Vliw EXample Model simulator VEX merupakan tools yang dapat digunakan untuk mendesain prosesor VLIW dengan kemudahan embedded untuk mengkombinasikan pengaturan lebar data, jumlah register dan unit firngsional yang digunakan dan penambahan set instruksi yang baru .Simulator ini diturunkan dari keluarga HP/ST Lx.
Gambar3. HubunganantarinformasipadaHMDES l
2.1.2DeskripsiMDES untuk targat prosesorTI DSP
J:
ll ,
i\
Untuk mendiskripskansuatu arsitekfur ke dalam bahasa ini diperlukan pemahanan mendasar mengenaipenulisanteksnya. Berikut ini contoh penulisanuntukregisterfiles padakeluargaTI .
!_i
-). ;,ilhrl
:
I
:
' i
::
r!
,,:,
)
-!il
'*
lJFl
I 2 3 4
il,
i
l€i
t- -
,T3 l
.q l
il ir
ld-tt I
I
CREATESECTIONResister REQUIREDtype(INT); { ) 286
iriti
i
-f= ixLi --
/* RegisterFiles*/ $def!integer_32 $deflinteger_64 $def !float_32 $def !float_64
;'nd .-i r
rll
il ii i
Gambar 5 : Arsitektur default pada VEX
l i-___j
ILPperformarf,e inlPCmetrics 4 r------.'
l'.,1 E l!.'qc.3T Gambar6 : Strukturkompilator dan simulator VEX
2.3 Model layer kompilator VLIW Berdasarkancara kerja kompilator VLIW seperti gambar 6 di bawah ini terlihat bahwa bagian pembangkit kode ( middle-end) akan melakukan orientasiILP dari keluaranfront-end.Kualitas suatu kompilator sangatditentukanpadabagianini t3l. o.;--1
C
--h;
Gambar8. Graftk ILP dalamukuranIPC Pada tabel berikut ini terlihat nilai simulasi total siklus dan IPC yang dihasilkan untuk tiap-tiap algoritrnayang dijalankan.
l
Tabel I : PengukuranILP berdasarkannilai IPC padakeduakompilator. Algoritma
_l-
-I
l.MrFtLuR) lit@ry6 r . I
{e
: i i i
b#tr tuot -'- -.T t. t. . OgsidM OgsidM
I |
*;-l*
4M d sry3Yn'h ' -l .''-l.'-
::::-J-::--------f I
'| . b f f i )
! I
.
Ady
-ffi--
Konvolusi Erodine
IDCT Median Sobel Wavelet
VEX C
OpenIMPACT
Tot cvc
IPC
Tot cyc
778r9
r.78
46009
3.85
6159 361379 2450 828070 45594
.30 2.54 1.26 1.23 1.7
27r8
3.30
299007 l9l3 3 10781 6555
3.89 2.05 2.64 1.6
IPC
sddsuF {tr|@d
hffi)l ; I ---------------t1l r ^ _ **-
^'T:g-bw
Gambar7 : Strukf,urlapisankompilator VLIW Untuk mendapatkantargetprosesoryang diharapkan diperlukan pendeskripsianmelalui tools HMDES dan akan diumpankanpada bagian back-end dari kompilator tersebut.
3. Hasil dan Pembahasan Setelah pendiskripsian dilakukan menggunakan tools HMDES, kompilator OpenIMPACT menjalankanbeberapaalgoritma pengolahansinyal digital yang ditulis menggunakan bahasa c. Pengujian dilakukan pada sistem operasi Linux denganprosesorIntel Core2 . PadaGambar8 terlihatbahwa ILP yangtinggi akan menghasilkan nilai IPC yangtinggi pula.
4. Kesimpulandan Saran PembuatanHMDES untuk target prosesorTI DSP telah dibuat dengan baik dan dijalankan pada kompilator OpenIMPACT. Hasil simulasi pada kompilator OpenIMPACTmenunjukkannilai IPC relatif lebih baik dibandinganmenggunakan VEX C sepertiterlihatpadagambar8 dantabel l. Pengujian kedua kompilator ini menggunakanparameter pengaturan variabel yang setara antara kedua kompilatormeskipunberbedatarget prosesoryang digunakan. Untuk mengetahui lebih baik hasil pengujian keduanya bisa ditingkatkan dengan membuattarget prosesorHP/ST Lx menggunakan HMDES dan dijalankan pada kompilator OpenIMPACT.
287
Daftar Pustaka: Brost Vincent,Fan Yang,Michel Paindavoine, and Nicolas Famrgia" "Multiple Modular VLIW ProcessorsBasedon FPGA", Journalof ElectronicImaging (SPIE), 16(2):110,AprilJune2007. t2l Faraboschi , G. Brown and al., LX: A technologt platform for castomizable VLIW embedded processing,Proc.ofthe 27th annual Intemational Symposium of Computer Architecture,2001. t3l Fisher JoshepA, Paolo Faraboschiand Cliff Young, Embedded Computing: A VLIW Approach to Architecture, Elsevier Morgan Kauftran, secondedition, 2005 t4l Gelato .org. Impact advanced compiler technologt,2009. Laboratories, Vq toolchain, l5l HP www.hpl.hp.com/downloads/vex/, 2008. t6l J.C Gyllenhaal,Wen mei Hwq and B.R.Rao. HMDES Yersion 2.0 Specification. Technical Report IMPACT-96-3, IMPACT Technical Repon,1996. I7) K. Parnell and R. Bryner., Comparing and ContrastingFPGA and MicroprosessorSystem DesignandDevelopment,Xilirtx,July 2004. t8l SaptonoDebyo,Vincent Brost, Fan Yang and Eri Prasetyo,Design spoce explorationfor a castomvliw architecture: Direct photo printer hordware setting using vex compiler, ln Proc. of the 4th LrternationalConferenceon SITIS 2008,November2008 tel SubramanianRajagopalanand SreerangaP. Rajan and SharadMalik, Modifiing a VLIW Compiler Framework to Implement an Optimizing Compilerfor a Fixed Point DSP, In Proc of 5 th International Workshop on Software and Compiler for Embedded Systems,200l. l l 0 l Texas Instrument, tms320c62xx CPU and Instruction Set Reference Guide, http :i/www.ti.corr/ tll
288