• Tidak ada hasil yang ditemukan

Pegembangan Kompiler Menggunakan Metoda Shift Instruction dan Smallest Schedule Instruction

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pegembangan Kompiler Menggunakan Metoda Shift Instruction dan Smallest Schedule Instruction"

Copied!
11
0
0

Teks penuh

(1)

Pegembangan Kompiler Menggunakan Metoda Shift Instruction dan Smallest Schedule Instruction

oleh

Eko Travada SP., ST., MT

Fakultas Ilmu Komputer Universitas Nasional Pasim

Abstrak

Kompiler adalah suatu proses yang mentranslasikan dari suatu bahasa sumber ke bahasa tujuan. Proses Kompilasi untuk komputer yang memiliki lebih dari satu prosesor memiliki perbedaan bila dibandingkan komputer yang berprosesor tunggal. Dengan prosesor berjumlah lebih dari satu maka harus dilakukan pembagian tugas untuk masing – masing prosesor yang tersedia agar dapat diproses lebih cepat. Pada makalah ini akan dibahas dua metode yang dapat digunakan untuk melakukan paralelisasi instruksi

squential menjadi instruksi paralel.

1. Pendahuluan

Kompiler adalah suatu proses mengubah dari bahasa sumber ke bahasa tujuan. Bahasa sumber dapat berupa bahasa pascal, bahasa assembly dan bahasa lain yang dalam penulisannya menggunakan bahasa yang familiar dengan kebiasaan manusia untuk berkomunikasi. Bahasa ini disebut dengan bahasa level tinggi, sedangkan bahasa yang dipahami oleh komputer adalah bahasa mesin atau bahasa level rendah. Saat ini proses kompilasi tidak hanya diartikan sebagai mengubah bahasa dari level tinggi ke level rendah, proses kompilasi adalah merubah suatu bentuk bahasa ke bentuk bahasa lain.

Pemrosesan secara paralel adalah suatu teknik untuk mempercepat proses dari suatu program. Program – program yang dikerjakan dengan satu prosesor disebut dengan program sekuensial. Program sekuensial juga dapat dikerjakan dengan prosesor lebih dari satu. Keuntungan yang didapat adalah peningkatan kecepatan proses bila dibandingkan dikerjakan dengan satu prosesor. Dalam paper ini akan dijelaskan metoda paralelisasi program.

Paper ini terbagi beberapa bagian , bagian satu satu menjelaskan progam kompilasi dari program sumber yang telah dimasukkan, bagian dua proses analisa ketergantungan data , bagian tiga menjelaskan paralelisasi menggunakan metoda Pergeseran intruksi dan , bagian empat menjelaskan paralelisasi mengunakan metoda penjadualan terkecil.

(2)

2. Kompiler

Kompiler terdiri dua bahasa yaitu bahasa sumber dan bahasa tujuan, gambar 1 compiler Source language Target Language

Gambar 2.1 Proses Kompilasi

Dari pengertian diatas maka sebuah kompilator akan membaca dalam bahasa sumber dan menerjemahkan bahasa sumber tadi ke dalam suatu bahasa lain yang disebut dengan bahasa sasaran. Dalam melakukan proses penerjemahan kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin diketemukan. Proses penerjemahan yang dilakukan oleh kompilator disebut proses kompilasi (compiling).

3. Tahap – tahap proses Kompilasi

Seperti telah dijelaskan diatas ada dua tahap proses kompilasi yaitu tahap analisis dan tahap sintesis.

3.1 Tahap analisis terdiri dari :

a) Analisis Leksikal , yaitu pembacaan sekilas (scanning) . Dalam kaitan ini aliran karakter yang membentuk program sumber dibaca dari kiri ke kanan dan dikelompokkan dalam apa yang disebut token yaitu barisan dari karakter yang dalam suatu kesatuan yang mempunyai arti tersendiri.

b) Analisa sintaktik atau analisa hirarki, yaitu dalam tahap ini karakter atau token yang diperoleh pada analisis leksikal disusun dan dikelompokkan dalam suatu hirarki tertentu yang secara keseluruhan mempunyai arti tertentu.

c) Analisis Semantik

Disini dilakukan pengecekan pada struktur akhir yang telah diperoleh dan diperiksa kesesuaianya dengan komponen program yang ada. d) Cycles Count

Menghitung Cycles Program Sequential yang terbentuk e) Register Analysis dependent

Mengecek Keterkaitan antara register yang ada di program sequential.

f) Count SpeedUp Of Program

Menghitung pertambahan kecepatan yang dihasilkan sesuai dengan mikroprosesor yang digunakan.

g) Create Comunication among processor

(3)

3.2 Tahap Sintesis

Program yang telah diparalelisasi diubah ke dalam format kode mesin yang dapat dipahami oleh mikroprosesor, tampak di gambar 2

Leksik analis Sintax Analisis Simbol Table Cancel If Speed Up = 1 Assembly Paralel Code Register Analitis Dependent Change Sequential Program to Paralel Program Source Assembly Code Sequential Semantik Analisis Cycles Count of sequential Program Count Speed Up Of paralel Programming

Gambar 2 , Tahapan Proses Kompiler Paralel

4. Analisa Ketergantungan Data

Suatu kemampuan untuk dapat mengeksekusi beberapa segment program secara paralel prosesing ditentukan oleh tidak ketergantungan atau kemandirian dengan segment yang lain. Kemandirian dari suatu statement ditentukan oleh ketergantungan antar data - data yang digunakan di setiap statement dalam program tersebut.

Metoda Depedence graph/grafik ketergantungan dapat digunakan untuk menggambarkan relasi ketergantungan data setiap statement dalam suatu program. Node dalam depedence graph mewakili statement dalam program, dan arah panah menunjukkan keterkaitan antar setiap node.

(4)

Analisa dari depedence graph menghasilkan kemungkinan dari program untuk dapat dieksekusi secara paralel. Notasi dari depedence graph tampak di gambar 3

Gambar 3 Notasi Simbol Depedence Graph Sebagai contoh diketahui program sebagai berikut :

S1 : Mov R1,A S2 : Add R2,R1 S3 : Mov @R1,R3 S4 : Mov 20h,@R1

Digambarkan dengan depedence graph sebagai berikut :

S2

S1

S3

S4

Gambar 4 Grafik ketergantungan

Dari gambar 4 terlihat bahwa S4 dapat dieksekusi setelah S1 dan S3 dieksekusi. S3 tergantung keluaran S1. S2 dapat dieksekusi setalah S1 dieksekusi dan antara S3 dan S2 antidepedence yaitu statement S2 dan S3 menggunakan register yang sama. Depedence graph memperlihatkan terlihat yang benar-benar tidak bergantung adalah proses S2 dan S4.

Misal diketahui tersedia dua buah prosesor P1 dan P2 dan dua buah instruksi dengan Input I1 dan I2 dan output O1 dan O2 dan keduanya independent, maka prosesor dapat dijalankan secara paralel dan disimbolkan dengan P1||P2.

Node mewakili

statement

Aliran Data antara setiap statement

Ketergantungan output antara setiap statement antidepedence/ bila antara input dan output di statement berikutnya menggunakan variabel yang sama

(5)

Maka bila diketahui ada 2 baris instruksi maka masukkannya adalah I1, I2 dan keluarannya O1,O2. maka kondisi Bernstein untuk menganalisa ketergantungan terpenuhi bila

         2 1 1 2 2 1 O O O I O I

5. Metode Shift Processor

Metoda ini adalah merupakan pengembangan dari teori depedence graph dan digabung dengan teori bernstein condition. Kemudian bila dari hasil analisa instruksi tersebut independen maka instruksi dipindahkan ke prosesor yang berikutnya. Bila instruksi yang terakhir berada di prosesor ke n dan n = total prosesor yang digunakan, dan bila instruksi berikutnya independen maka instruksi dipindah ke lokasi prosesor ke n-1. Metoda ini peletakkan instruksi yang independen akan digeser ke kanan bila tercapai prosesor terakhir maka instruksi akan digeser ke kiri. Metoda ini disebut dengan Shift Processor.

Dalam penerapannya shift processor dijabarkan dalam gambar berikut :

Start

End Scanner

Penentuan letak instruksi di prosesor ke- n dan

jadwal kerja di prosesor ke - n Definisikan keterkaitan antar instruksi di prosesor yang berbeda

(6)

• Proses Scan akan membaca Program sumber dari teks editor untuk dipilah menjadi token –token kemudian akan dipisahkan yang menjadi Opcode dan menjadi Operand

• Setelah dipilah dianalisa ketergantungan register – register bila bergantung diletakkan di prosesor ke n yang sama bila tidak bergantung dipindahkan ke prosesor n + 1 bila n + 1 < total prosesor yang digunakan, jika n + 1> total prosesor diletakkan di n -1

• Diatur jadwal kerja prosesor

• Definisikan keterkaitan instruksi di prosesor yang berbeda 6. Metoda Smallest Schedule

Metoda ini adalah merupakan pengembangan dari teori depedence graph dan digabung dengan teori bernstein condition. Kemudian bila dari hasil analisa instruksi tersebut independen maka instruksi dipindahkan ke prosesor yang memiliki jadwal kerja yang paling sedikit. Metoda ini ditambahkan algoritma pencarian jadwal terkecil dari n prosesor yang tersedia

Dalam penerapannya smallest Schedule dijabarkan dalam gambar berikut :

Start End Scanner Penentuan letak instruksi di prosesor ke- n Penjadwalan kerja tiap prosesor Definisikan keterkaitan antar instruksi di prosesor yang berbeda

(7)

Metode ini hampir serupa dengan shift prosesor hanya memiliki kelebihan dalam proses mengalokasikan intruksi, yaitu penempatannya di prosesor dengan jadwal yang paling sedikit.

Untuk menghitung pertambahan kecepatan digunakan hukum amdahl’s. dirumuskan dengan formula

) 1 ( 1 tan    n n Kecepa

7. Hasil - hasil Percobaan

Program yang dihasilkan diuji dengan tiga jenis program dengan 2 buah program yang memiliki memiliki instruksi yang sekuensial, dan satu jenis program yang dependent.

Percobaan 1

diketahui program sekuensail sebagai berikut :

Tabel 1 Contoh Program Sekuensial Instruksi Hasil MOV R1,#5 R1 <-- 5 MOV A,#6 A <-- 6 ADD A,R1 A = A + R1 / 5 + 6 = 11 MOV R2,A R2 <-- A / R2 <-- 11 MOV R3,#3 R3 <-- 3 MOV A,#4 A <-- 4 ADD A,R3 A = A + R3 / 4 + 3 = 7 ADD A,R2 A = A + R2/ 7 + 11 = 18

diparalelisasi dengan shift prosesor menghasilkan program sebagai berikut : Tabel 2 Hasil Paralelisasi dengan metoda Shift Processor

Jadwal Mikroprosesor 1 Mikroprosesor 2 0 R1 <-- 5 A <-- 6 1 R3 <-- 3 A = A + R1 = 11 2 R2 <-- A / 11 3 A <-- 4 4 A = A + R3 = 7 5 A = A + R2 = 18

(8)

Bila menggunakan program maka keluaran yang dihasilkan tampak di gambar 5

Gambar 5 Keluaran yang dihasilkan dengan Metoda Shift Processor Bila diproses dengan Smallest Schedule maka keluaran yang dihasilkan :

Tabel 4.3 Hasil Paralelisasi dengan metoda Smallest Schedule Jadwal Mikroprosesor 1 Mikroprosesor 2 0 R1 <-- 5 A <-- 6 1 R3 <-- 3 A = A + R1 = 11 2 A <-- 4 R2 <-- A / 11 3 A = A + R3 = 7 4 A = A + R2 = 7 + 11 = 18

Dijalankan dengan program dihasilkan :

Gambar 6 Keluaran yang dihasilkan dengan Smallest schedule

Dari hasil percobaan yang dilakukan didapat didapatkan bahwa kecepatan tidak akan bertambah bila ketergantungan antar instruksi demikian besarnya ditunjukkan dengan nilai alfa >0. Sedangkan bila alfa = 0, maka kecepatan yang didapat akan sempurna tampak di grafik 7a dan 7b.

(9)

Gambar 7.a Pertambahan kecepatan dengan metoda Shift Processor

Gambar 7b Pertambahan kecepatan dengan metoda Smallest Schedule

8. Kesimpulan

1. Program yang dirancang dapat melakukan proses paralelisasi dari program sumber sekuensial.

2. Kedua metode yang digunakan terbukti dapat melakukan proses paralelisasi dengan baik dan benar.

3. Dari hasil pengujian metoda pencarian prosesor dengan jadwal terkecil memiliki algoritma yang lebih baik dibuktikan dengan peningkatan kecepatan yang diperoleh lebih baik dari metode pergeseran instruksi antar mikroprosesor

SpeedUp Performance With Shift Processor

0 1 2 3 4 5 6 0 2 4 6 8 10 Number of Processor Sp e e d U p Percobaan 3, Alfa = 0 Percobaan 2 , alfa = 0,625 Percobaab 1, alfa = 0,692

SpeedUp PerFormance Smallest Schedule

0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 8 9 Number of Processor Sp e e d U p Percobaan 3, Alfa = 0 Percobaab 1, Alfa 0,625 Percobaab 2, alfa 0,692

(10)

4. Dari hasil proses simulasi program dapat dikathui Degree Of Paralelism

(DOP) dari suatu program sehingga dapat mengestimasi kemungkinan total mikroprosesor maksimum yang digunakan.

5. Untuk mendapat peningkatan kecepatan yang baik perlu dpilih jenis program yang memiliki sifat ketergantungan sangat minimal agar dapat tercapai kecepatan yang sempurna , dibuktikan dengan hukum Amdahl’s.

9. Saran – saran dan Pengembangan

1. Program yang dibuat telah mampu melakukan proses paralelisasi dengan baik , hanya instruksi – instruksi yang mampu dikenali masih terbatas pada fungsi aritmatika. Hal ini disebabkan setiap instruksi memiliki ketergantung yang unik antara tiap instruksinya sehingga perlu dikembangkan algoritma khusus untuk mengidentifikasi proses paralelisasi yang harus dilakukan disesuaikan dengan instruksi yang ada.

2. Dilakukan penelitian lebih lanjut untuk perancangan hardware mikroprosesor paralel agar dapat diketahui faktor-faktor tunda yang terjadi antara mikroprosesor keluarga MCS-51 dan antara mikroprosesor dan komponen lain. Dengan diketahuinya faktor delay

dapat diperhitungkan secara lebih akurat pertambahan kecepatanbahan bila dilakukan proses paralelisasi.

Daftar Pustaka

Kai Hwang(1993), Advanced Computer Architecture, McGraw-Hill Series in Computer Science

Dick Grune,Henri E.Bat,Ceriel J.H. Jscobs, Koen G. Langendoen(2001), Modern Compiler Design, John Willey & Sons, Ltd

Andrew S. Tanembaum(2002), Organisasi Komputer Terstruktur Jilid 2, Salemba Teknika & Person Education Asia Pte.Ltd

I. Scott Mackenzie (1995), The 8051 Microcontroler, Prenctice Hall

Kenneth J. Ayala (1998), The 8051 Microcontroler, West Publishing Company Paulus Sudaryo (2004), Pemrograman Berorientasi Objek menggunakan

Delphi, Andi

John Carrol, Darrel Long(1989), Theory Of Finite Automata, Prentice Hall International Edition.

Sumantri Slamet, Heru Suhartono(1993), Teknik Kompilasi, Elex Media Komputindo kelompok Gramedia Jakarta

Firrar Utdirartatmo(2001), Teori Bahasa dan Otomata, J&J Learning Jogjakarta Isabel Gonzales , Effective Design Method for Implementation of parallel Processing by Data Multiplexing Technique, C/Einstein,7 (PTM), 28760 Tres Cantos Madrid Spain

Marco Cantu(2001), Delphi 6, Sybex

Douglas V. Hall (1992), Microprocessors and Interfacing, McGrawHill International Edition

(11)

Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman(1988),Compilers Principles, Techniques, and tools , Addison Wesley Publishing Company

Hassan Gomaa (2000), Designing Concurrent, Distributed, and Real Time application with UML, Addison Wesley Publishing Company

Gambar

Gambar 2 , Tahapan Proses Kompiler Paralel  4.   Analisa Ketergantungan   Data
Gambar 3  Notasi Simbol Depedence Graph  Sebagai contoh diketahui program sebagai berikut :
Tabel 1  Contoh Program Sekuensial  Instruksi  Hasil  MOV R1,#5  R1 &lt;-- 5  MOV A,#6  A &lt;--  6  ADD A,R1  A = A + R1 / 5 + 6 = 11  MOV R2,A  R2 &lt;-- A  /  R2 &lt;-- 11  MOV R3,#3  R3 &lt;-- 3  MOV A,#4  A &lt;-- 4  ADD A,R3  A = A + R3 / 4 + 3 = 7
Gambar  5  Keluaran yang dihasilkan dengan  Metoda Shift Processor  Bila diproses dengan Smallest Schedule maka keluaran yang dihasilkan :
+2

Referensi

Dokumen terkait

Tujuan dari penelitian ini adalah untuk mengetahui kerapatan dan luas mangrove di daerah penangkapan ikan, mengetahui hasil tangkap nelayan di kawasan mangrove

Self-efficacy sebesar 2,453 dan p- value sebesar 0,019 maka H4 diterima.hasil dari perhitungan R2 diperoleh angka koefisien determinasi dengan adjusted squer sebesar 0,247

Perumusan masalah dalam penelitian ini adalah: “Apakah dimensi service quality yaitu reliability, responsiveness, assurance, emphaty dan tangibles mempunyai pengaruh

Laporan stok ini diambil dari master barang, jadi barang apa saja yang telah masuk dan barang apa saja yang telah keluar serta sisa barang. Admin dapat

Tahap persiapan o Menyusun 3 (tiga) modul pemberdayaan Komite Sekolah o Melaksanakan kegiatan TOT Fasiltator Pemberdayaan Komite Sekolah o Memilih dan mengirimkan

Semakin tinggi kerapatan gulma, maka semakin besar pula penekananya terhadap produksi tanaman dan semakin lama gulma tumbuh bersama dengan tanaman pokok maka semakin banyak

Hal ini menunjukkan adanya pengaruh penerapan atraumatic care terhadap respon kecemasan anak, dan menunjukkan ada perbedaan penerapan atraumatic care terhadap

Melalui Peraturan Komisi Pemilihan Umum (PKPU) Nomor 16 tahun 2017 tentang Penataan Daerah Pemilihan dan Alokasi Kursi Anggota DPRD Kab/Kota dalam Pemilu dijelaskan