PAPER PIPELINE INSTRUKSI

dokumen-dokumen yang mirip
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu

Pipeline. Paper Organisasi Komputer

Pipeline pada x86. Sebagai contoh : Instruksi 1 : ADD AX,AX Instruksi 2 : ADD BX,CX

Organisasi Komputer II STMIK AUB SURAKARTA

Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3.

STRUKTUR CPU. Arsitektur Komputer

PERTEMUAN. 1. Organisasi Processor. 2. Organisasi Register

Sistem Operasi Pertemuan 1 Arsitektur Komputer. (Penyegaran) H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Diktat Kuliah - Pipeline

Meningkatkan Kinerja dengan Pipelining

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

Hanif Fakhrurroja, MT

CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM AND SUPERSCALAR PROCESSORS

STRUKTUR FUNGSI CPU. Menjelaskan tentang komponen utama CPU. Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register

Arsitektur Set Instruksi. Abdul Syukur

Organisasi Komputer. Candra Ahmadi, MT

PAPER MULTIPROCESSOR

Pertemuan Ke-9 PIPELINING

CENTRAL PROCESSING UNIT CPU

From M.R Zargham s book (Chapter 3.1)

Pertemuan 2 Organisasi Komputer II. Struktur & Fungsi CPU (I)

TUGAS MAKALAH STRUKTUR dan FUNGSI CPU GURU PEMBIMBING: IVAN ARIVANDI. Oleh: NOVY PUSPITA WARDANY

MATA KULIAH: PIPELINING PERTEMUAN 12

ARSITEKTUR DAN ORGANISASI KOMPUTER

>> KLASIFIKASI ARSITEKTURAL

Struktur Sistem Komputer

CPU PERKEMBANGAN ARSITEKTUR CPU. ( Central Processing Unit )

1 Tinjau Ulang Sistem Komputer

ORGANISASI KOMPUTER DASAR

Organisasi & Arsitektur Komputer

Organisasi Sistem Komputer

Dua komponen yang menjalankan proses dalam komputer, yaitu : Central Processing Unit (CPU) Memory Kedua komponen tersebut terletak pada Motherboard.

Organisasi dan Arsitektur Komputer : Perancangan Kinerja

Aditya Wikan Mahastama

Hanif Fakhrurroja, MT

Thread, SMP, dan Microkernel (P ( e P rtemuan ua ke-6) 6 Agustus 2014

Komponen-komponen Komputer

Struktur dan Fungsi Processor

Cara Kerja Processor. Primo riveral. Abstrak. Pendahuluan.

Materi 3. Komponen Mikrokomputer SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA

Disusun Oleh: Agenda. Terminologi Klasifikasi Flynn Komputer MIMD. Time Sharing Kesimpulan

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Sistem Operasi. Struktur Sistem Komputer. Adhitya Nugraha. Fasilkom 10/6/2014

Eksekusi instruksi Tipe R, LW-SW, Beq, dan Jump (Pertemuan ke-24)

Diktat Kuliah intel 8088

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Bus Sistem. Oky Dwi Nurhayati, ST, MT

Kumpulan instruksi lengkap yang dimengerti

Struktur dan Fungsi CPU. Ptputraastawa.wordpress.com

Organisasi & Arsitektur. Komputer. Org & Ars komp Klasifikasi Ars Komp Repr Data

Operasi Unit Kontrol. Arsitektur Komputer II. STMIK AUB Surakarta

Struktur Sistem Komputer

ARSITEKTUR KOMPUTER SET INSTRUKSI

Organisasi Komputer II STMIK-AUB SURAKARTA

ARSITEKTUR KOMPUTER. Satu CPU yang mengeksekusi instruksi satu persatu dan menjemput atau menyimpan data satu persatu.

Simple As Possible (SAP) - 1. Abdul Syukur

Bagian 2 STRUKTUR CPU

Unit Kendali (2) CONTROL UNIT. RegDst Branch. MemRead. MemToReg. Instruction (31-26) ALUOp MemWrite. ALUSrc. RegWrite

Arsitektur Komputer. Dua element utama pd sistem komputer konvensional: Memory Processor

Oleh: 1. Singgih Gunawan Setyadi ( ) 2. Handung Kusjayanto ( ) 3. Wahyu Isnawan ( )

Pipelining. EdyWin 1

Struktur CPU 3/23/2011

Karakteristik Instruksi Mesin

Oleh : Agus Priyanto, M.Kom

Mikrokontroller Berbasiskan RISC 8 bits

KLASIFIKASI ARSITEKTURAL

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS :

3. MODE PENGALAMATAN CHAERUL UMAM, S.KOM

Materi 6: Control Unit Operations

PETA MEMORI MIKROPROSESOR 8088

Eksekusi instruksi Tipe R, LW-SW, Beq, Jump, dan Model Pengalamatan (Pertemuan ke-24)

JAWABAN ORGANISASI KOMPUTER 7 Agustus 2004

William Stallings Computer Organization and Architecture

7.1 Pendahuluan. 7.2 Central Processing Unit (CPU)

Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi.

DCH1B3 Konfigurasi Perangkat Keras Komputer. Input/Output

ebook Fakultas Teknologi Industri Universitas Gunadarma 2013

SOAL UAS SISTEM KOMPUTER Kelas XI RPL & TKJ

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

Pertemuan Ke-12 RISC dan CISC

CONTROL UNIT. Putu Putra Astawa

Struktur Central Processing Unit Universitas Mercu Buana Yogyakarta

3. ALU. Tugas utama adalah melakukan semua perhitungan aritmatika dan melakukan keputusan dari suatu operasi logika.

Pertemuan ke - 5 Struktur CPU

Organisasi & Arsitektur Komputer

Arsitektur Komputer, Mikroprosesor dan Mikrokontroller. TTH2D3 Mikroprosesor

SATUAN ACARA PENGAJARAN

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

ORGANISASI DAN ARSITEKTUR KOMPUTER TUGAS KELOMPOK

Pertemuan ke 7 Mode Pengalamatan. Computer Organization Eko Budi Setiawan

PENDAHULUAN. -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date.

Organisasi & Arsitektur Komputer

PERTEMUAN 2 APLIKASI KOMPUTER. Sistem Operasi. Rangga Rinaldi, S.Kom, MM. Modul ke: Fakultas Desain dan Seni Kreatif. Program Studi Desain Produk

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

REVIEW EVOLUSI KOMPUTER

PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER CENTRAL PROCESSING UNIT

Hanif Fakhrurroja, MT

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088

PENDAHULUAN. Motivasi : -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date.

Transkripsi:

PAPER PIPELINE INSTRUKSI ARSITEKTUR DAN ORGANISASI KOMPUTER Dosen : Drs. Eko Polosoro, M.Eng, M.M Kelompok: Muhammad Akbar (1111601058) Rano Kurniawan (1111601074) Taufik Tirkaamiasa (1111601082) MAGISTER ILMU KOMPUTER UNIVERSITAS BUDI LUHUR JAKARTA 2012

PIPELINE I. Penjelasan Umum Teknologi pipeline yang digunakan pada komputer bertujuan untuk meningkatkan kinerja dari komputer. Secara sederhana, pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersamaan, tetapi dalam tahap yang berbeda serta dialirkan secara kontinu pada unit pemrosesan. Dengan cara ini, maka unit pemroses selalu bekerja. Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh microprocessor. Teknik pipeline yang diterapkan pada microprocessor dapat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini. Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik pipeline, ketika satu instruksi sedang diproses, maka instruksi yang berikutnya juga dapat diproses dalam satu waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut. Begitu seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1. Dengan penerapan pipeline pada microprocessor akan didapatkan peningkatan dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara paralel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang tidak menggunakan pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah k tahap.

Teknik pipeline ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga ketika diterapkan dapat berjalan dengan baik. Tiga kesulitan yang sering dihadapi ketika menggunakan teknik pipeline ini adalah: terjadinya penggunaan resource yang bersamaan, ketergantungan terhadap data, pengaturan jump ke suatu lokasi memory. Karena beberapa instruksi diproses secara bersamaan ada kemungkinan diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memory tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter. Dengan menerapkan teknik pipeline ini, akan ditemukan sejumlah perhatian yang khusus terhadap beberapa hal di atas, tetapi tetap akan menghasilkan peningkatan yang berarti dalam kinerja microprocessor. Ada kasus tertentu yang memang sangat tepat bila memanfaatkan pipeline ini, dan juga ada kasus lain yang mungkin tidak tepat bila menggunakan teknologi pipeline. Gambar 1.1 : Diagram Pewaktuan Pipeline

1.1 Konsep Pipeline Konsep pemrosesan pipeline dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu pabrik industri. Ambil contoh, suatu proses pembuatan sebuah mobil: anggaplah bahwa langkah-langkah tertentu di jalur perakitan adalah untuk memasang mesin, memasang kap mesin dan memasang roda (dalam urutan tersebut, dengan langkah arbitrary interstitial). Sebuah mobil di jalur perakitan hanya dapat memiliki salah satu dari tiga tahap yang dilakukan sekaligus. Setelah mobil memiliki mesin yang terpasang, bergerak ke bagian pemasangan kap, meninggalkan fasilitas pemasangan mesin yang tersedia untuk mobil berikutnya. Mobil pertama kemudian pindah ke pemasangan roda, mobil kedua masuk ke pemasangan kap dan mobil ketiga dimulai untuk pemasangan mesin. Jika instalasi mesin membutuhkan waktu 20 menit, instalasi kap mobil memakan waktu 5 menit dan instalasi roda membutuhkan waktu 10 menit, kemudian menyelesaikan semua tiga mobil ketika hanya satu mobil dapat dioperasikan sekaligus akan memakan waktu 105 menit. Di sisi lain, dengan menggunakan jalur perakitan, total waktu untuk menyelesaikan ketiga mobil adalah 75 menit. Pada titik ini, mobil selanjutnya akan datang dari jalur perakitan pada kenaikan 20 menit. II. Kelebihan dan Kekurangan Pipeline Pipeline tidak selalu berfungsi pada berbagai kasus, ada beberapa kelebihan dan kerugian dari pipeline. Berikut adalah kelebihan dan kekurangan pipeline: 2.1 Kelebihan ü Siklus waktu dalam processor berkurang, sehingga secara umum meningkatkan instruksi-isu dalam kebanyakan kasus. ü Kombinasi beberapa sirkuit seperti penambah atau pengganda dapat dibuah lebih cepat dengan menambahkan lebih banyak sirkuit. Jika pipeline digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih kompleks sirkuitnya.

Wait New Address Wait Instruction Instruction Result Fetch Execute Instruction Instruction Result 2.2 Kekurangan Fetch Execute ü Mencegah penundaan cabang (berlaku, setiap cabang yang tertunda) dan masalah dengan serial instruksi yang dijalankan secara bersamaan, akibatnya desain yang Discard lebih sederhana dan murah untuk produksi (diproduksi). ü Instruksi yang tersembunyi pada processor non pipelining tersebut sedikit lebih rendah daripada pipelining yang setara. Hal ini disebabkan oleh kenyataan bahwa harus ditambahkannya jalur extra pada jalur data dari processor pipeline. ü Processor non pipelining akan ada instruksi bandwidth yang stabil. Kinerja processor pipeline sangat sulit untuk diprediksi dan dapat bervariasi secara lebih luas di antara berbagai program. III. Instruksi Pipeline 3.1 Tahapan Pipeline ü Mengambil instruksi dan membufferkannya. ü Ketika tahapan yang kedua bebas, tahapan pertama mengirimkan instruksi yang di bufferkan tersebut. ü Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memory yang tidak dipakai untuk mengambil dan membufferkan instruksi berikutnya. Gambar 3.1.1 : Pandangan Sederhana Gambar 3.1.2 : Pandangan Rinci

Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan pada komponen tersebut. Sebagai contoh: Instruksi 1 : ADD AX, AX Instruksi 2 : ADD EX, CX Setelah CU menjemput Instruksi 1 dari memory (IF), CU akan menerjemahkan instruksi tersebut (ID). Pada saat menterjemahkan Instruksi 1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput Instruksi 2 pada saat ID menterjemahkan Instruksi 1. Demikian seterusnya pada saat CU menjalankan Instruksi 1 (EX), Instruksi 2 diterjemahkan (ID). Contoh pengerjaan instruksi tanpa pipeline: T = 1 2 3 4 5 6 7 8 9 10 ADD AX, IF DE IF DE EX AX ADD EX, CX IF DE IF DE EX Pada ilustrasi di atas, dijelaskan bahwa instruksi baru akan dijemput jika instruksi sebelumnya telah selesai dilaksanakan. Contoh pengerjaan instruksi dengan pipeline: T = 1 2 3 4 5 6 7 ADD AX, AX IF DE IF DE EX ADD EX, CX IF DE IF DE EX ADD DX, DX IF DE IF DE EX Pada ilustrasi di atas, dijelaskan bahwa instruksi baru akan dijemput/dipanggil setelah tahap IF menganggur (t2).

Dengan adanya pipeline, dua instruksi selesai dilaksanakan pada detik keenam, sedangkan kasus tanpa pipeline baru selesai pada detik kesepuluh. Dengan demikian telah terjadi percepatan sebanyak 1,67 x dari 10T menjadi hanya 6T. Sedangkan untuk pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2,14 dari 15T menjadi hanya 7T. Untuk kasus pipeline sendiri, 2 instruksi dapat dikerjakan dalam 6T (CPI = 3) dan instruksi dapat dikerjakan dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat dikerjakan dalam 8T (CPI = 2). Ini berarti untuk 100 instruksi akan dapat dikerjakan dalam 104T(CPI = 1,04). Pada kondisi ideal CPI akan berharga/bernilai 1. Dalam teknik pipeline, problem dibagi menjadi deretan yang harus dilaksanakan satu persatu setelah lainnya. Setiap tugas nantinya akan dieksekusi oleh proses atau processor yang berbeda. Gambar 3.1.3 : Proses Pipeline Gambar 3.1.4 : Pipeline untuk Penjumlahan Filter frekuensi menghilangkan frekuensi tertentu (katakan ƒ0, ƒ1, ƒ2, ƒ3, dan seterusnya) signal, ƒ(t)/signal dapat dilewati pipeline dari kiri. Gambar 3.1.5 : Pipeline untuk Filter Frekuensi

Pipeline dapat meningkatkan kecepatan untuk problem yang sekuensial, dalam tiga tipe komputasi: 1. Jika lebih dari satu instance dari problem yang akan dieksekusi. 2. Jika ada deretan item data yang harus di proses, masing-masing membutuhkan operasi ganda. 3. Jika informasi untuk memulai proses berikutnya dapat diberikan sebelum proses selesai melaksanakan operasi internalnya. 3.2 Diagram Ruang Waktu Pipeline Tipe 1 Gambar 3.2.1 : Diagram Ruang Waktu Pipeline Gambar 3.2.2 : Diagram Ruang Waktu Alternatif

3.3 Diagram Ruang Waktu Pipeline Tipe 2 Gambar 3.3.1 : Pemrosesan Pipeline 10 Elemen Data 3.4 Diagram Ruang Waktu Pipeline Tipe 3 Gambar 3.4.1 : Pemrosesan Pipeline, Informasi di pass sebelum proses selesai Jika jumlah tahap lebih besar dari jumlah processor dalam pipeline, kelompok tahap dapat di assign untuk tiap processor.

Gambar 3.4.2 : Partitioning Processes onto processors 3.5 Platform Komputasi untuk Aplikasi Pipeline Gambar 3.5.1 : Penjumlahan Pipeline Kode dasar untuk proses P i : recv (& accumulation, Pi - 1); accumulation = accumulation + number; send (& accumulation, Pi + 1); Kecuali untuk proses pertama P 0, yaitu: send (& number, P1); dan proses terakhir P n-1, yaitu: recv (& number, Pn 2); accumulation = accumulation + number; 3.6 Single Program Multiple Data (SPMD) Memungkinkan interleaving pemrograman secara parallel dan serial. SPMD memungkinkan user untuk mendefinisikan sebuah blok kode secara bersamaan pada beberapa proses. Variabel ditempatkan pada pemroses agar dimungkinkan untuk akses langsung ke nilai-nilai dari klien dengan referensi melalui objek komposit. If(process > 0){ recv (& accumulation, Pi 1); accumulation = accumulation + number;

}If(process < n 1) send (& accumulation, Pi + 1); Hasil akhir ada di proses terakhir. Selain penjumlahan, operasi aritmatika lainnya dapat dilakukan juga. Gambar 3.6.1 : Penjumlahan Angka Pipeline dengan Proses Master dan Konfigurasi Cincin Gambar 3.6.2 : Penjumlahan Angka Pipeline dengan akses langsung ke Proses Slave IV. Permasalahan di (dalam) Instruksi Pipelining Variasi Waktu: Tidak semua tahap memakan waktu yang sama. Ini berarti untuk mendapatkan kecepatan dalam instruksi pipelining sangat ditentukan oleh tahap yang paling lambat. Masalah ini sangat akut dalam memproses instruksi, sejak instruksi yang berbeda memiliki persyaratan operand waktu proses yang berbeda. Selain itu, diperlukan mekanisme sinkronisasi untuk memastikan bahwa data lewat dari stage ke stage hanya ketika kedua stage siap. Data Berbahaya (Data Hazards): Ketika beberapa instruksi di eksekusi secara parsial, masalah timbul jika mereka referensi data yang sama. Kita harus memastikan bahwa instruksi selanjutnya tidak berusaha untuk mengakses data lebih cepat dari instruksi sebelumnya, jika ini terjadi akan menyebabkan hasil yang salah. Sebagai contoh, instruksi N + 1 tidak

harus diperbolehkan untuk mengambil sebuah operand yang belum disimpan oleh instruksi N. Percabangan (Branch): Untuk mengambil instruksi berikutnya, kita harus tahu mana saja yang dibutuhkan, jika instruksi ini adalah cabang bersyarat (conditional branch) instruksi berikutnya mungkin tidak diketahui sampai saat diproses. Jeda/Interupsi (Interruptions) Interupsi membuat interupsi extra yang tidak terencana untuk masuk ke dalam aliran instruksi. Jeda (Interrupt) harus berperan antar instruksi, yaitu ketika satu instruksi telah selesai dan instruksi berikutnya belum dimulai. Dengan pipelining, instruksi berikutnya biasanya dimulai sebelum instruksi yang terlebih dahulu selesai. Semua masalah ini harus diselesaikan dalam konteks kebutuhan kita untuk mendapatkan kinerja dengan kecepatan tinggi. Jika kita tidak dapat mencapai kecepatan yang cukup, pipelining mungkin tidak sepadan.

Daftar Pustaka http://id.wikipedia.org/wiki/multipengolahan 19-05-2012. http://en.wikipedia.org/wiki/multiprocessing 19-05-2012. http://syahrie.files.wordpress.com/2009/01/multiprocessor.pdf 19-05-2012. http://amutiara.staff.gunadarma.ac.id/downloads/files/262/arkomppar1.pdf 19-05-2012.