Arsitektur Sistem Komputer Jilid II | Rozeff Pramana & Alena Uperiati UMRAH Press Gedung Rektorat Lantai III Kompleks Kampus Universitas Maritim Raja Ali Haji Jalan Dompak, Tanjungpinang, Provinsi Kepri 29111. Telp 0771-7001550 Fax. 0771-7038999 Email: umrahpress@gmail.com umrahpress@umrah.ac.id UMRAH Press Arsitektur Sistem Komputer Jilid II Rozeff Pramana Alena Uperiati Rozeff Pramana & Alena Uperiati Buku Ajar Arsitektur Sistem Komputer Jilid 2 Arsitektur Sistem Komputer Jilid 2 Rozeff Pramana & Alena Uperiati © Rozeff Pramana & Alena Uperiati, 2017 ix, 200 hlm, 15,5 cm x 23,5 cm Cetakan 1, November 2017 Hak Penerbitan pada UMRAH Press, Tanjungpinang Kantor: Kampus Universitas Maritim Raja Ali Haji, Gedung Rektorat Lantai III Jl. Dompak, Tanjungpinang - Kepulauan Riau 29111 Telp/Fax : (0771) 7001550 – (0771) 7038999, 4500091 E-mail : umrahpress@gmail.com / umrahpress@umrah.ac.id Hak cipta dilindungi Undang-Undang. Dilarang mengutip atau memperbanyak sebagian atau seluruh isi buku ini tanpa ijin tertulis dari Penerbit ISBN 978-602-6770-83-7 ii KATA PENGANTAR Puji Syukur kepada Allah SWT penulisan buku ini telah selesai dilaksanakan. Buku yang berada dihadapan anda ini merupakan buku ajar bagi dosen dan mahasiswa pada mata kuliah Arsitektur Sistem Komputer di Fakultas Teknik jurusan Teknik Elektro Universitas Maritim Raja Ali Haji. Buku ini merupakan buku jilid ke dua pada matakuliah yang sama. Buku ini menyajikan materi-materi perkuliahan yang dirancang agar pembacanya dapat dengan mudah memahami materi mata kuliah Arsitektur Sistem Komputer dan menjadi referensi bagi dosen serta mahasiswa dalam mempelajari tentang komputer. Setiap materi disajikan dengan penjelasan umum, definisi dan subsub materi yang dijelaskan secara sistematis dengan sumber referensi diambil dari berbagai literatur. Penyajian suatu materi dilengkapi dengan gambar-gambar, blok diagram, dan ilustrasi untuk memberikan pemahaman bagi pembaca. Semoga Buku ini menjadi referensi bagi civitas di Fakultas Teknik jurusan Teknik Elektro Universitas Maritim Raja Ali Haji khususnya, dan memberi wawasan baru dalam mempelajari komputer. Tanjungpinang, Oktober 2017 Penulis iii DAFTAR ISI KATA PENGANTAR ................................................... ii DAFTAR ISI ............................................................... ivv DAFTAR TABEL ........................................................ vii DAFTAR GAMBAR .................................................. viii BAB I PENDAHULUAN ......................................... 1 A. Informasi Mata Kuliah.......................................... 1 B. Deskripsi Mata Kuliah .......................................... 2 C. Rencana Kegiatan Program Pembelajaran dan Rencana Pembelajaran Semester ......................... 6 BAB II INPUT OUTPUT ........................................ 11 A. Standar Kompetensi dan Indikator ..................... 11 B. Materi ................................................................. 11 1. Pengertian dan Fungsi Peralatan Input Pada Komputer ......................................................... 11 2. Pengertian dan Fungsi Peralatan Output Pada Komputer ......................................................... 18 C. Rangkuman ......................................................... 23 D. Latihan Soal ........................................................ 26 BAB III SET–SET INSTRUKSI .............................. 27 A. Standar Kompetensi dan Indikator ..................... 27 B. Materi ................................................................. 27 1. Karakteristik dan Fungsi ................................. 27 2. Mode dan Bentuk Pengalamatan ..................... 54 C. Rangkuman ......................................................... 74 D. Latihan soal ........................................................ 77 BAB IV PARALEL PROSESOR ............................. 78 A. Standar Kompetensi dan Indikator ..................... 78 B. Materi ................................................................. 78 1. Pembahasan Awal ........................................... 78 2. Organisasi berbagai Prosesor .......................... 80 3. Organisasi Multiprosesor ................................ 92 4. Mainframe SMP ............................................ 100 iv 5. Cluster ........................................................... 106 6. Non Uniform Memory Access (NUMA) ...... 109 7. Komputasi Vektor ......................................... 113 C. Rangkuman ....................................................... 117 D. Latihan soal: ..................................................... 119 BAB V PENGANTAR ARSITEKTUR RISC ..... 120 A. Standar Kompetensi dan Indikator ................... 120 B. Materi ............................................................... 120 1. Pembahasan Awal ......................................... 120 2. Reduced Instruction Set Computing (RISC) . 121 3. Pendekatan RISC ........................................... 127 4. Prospek Arsitektur RISC di Masa Mendatang150 C. Rangkuman ....................................................... 152 D. Latihan soal: ..................................................... 154 BAB VI ARSITEKTUR KOMPUTER CISC........................ 155 A. Standar Kompetensi dan Indikator ................... 155 B. Materi ............................................................... 155 1. Definisi .......................................................... 155 2. Karakteristik desain CISC ............................. 159 3. Arsitektur Hardware ...................................... 161 4. Mesin CISC Ideal .......................................... 162 5. Realistis mesin CISC ..................................... 163 6. Persamaan Kinerja CISC Classic .................. 163 7. Pendekatan CISC ........................................... 166 8. Implementasi ................................................. 167 9. Karakteristik CISC versus RISC ................... 170 10. Perbedaan karakteristik CISC dan RISC serta Superscalar .................................................... 174 C. Rangkuman ....................................................... 175 D. Latihan Soal: ..................................................... 177 BAB VII PIPELINE .................................................. 178 A. Standar Kompetensi dan Indikator ................... 178 B. Materi ............................................................... 178 1. Pembahasan Awal ......................................... 178 v 2. Kategori Pipeline ........................................... 181 3. Metode kerja Pipeline .................................... 185 4. Permasalahan Pipeline ................................... 191 C. Rangkuman ..................................................... 1977 D. Latihan Soal: ..................................................... 200 Daftar Pustaka ........................................................... 201 Glosarium ................................................................... 202 Indeks ..................................................................... 204 Profil Penulis .............................................................. 210 vi DAFTAR TABEL Tabel 1 Three Address Instruction ....................................... 38 Tabel 2 One Address Instruction .......................................... 38 Tabel 3 Two Address Instruction ......................................... 39 Tabel 4 operasi-operasi set instruksi .................................... 44 Tabel 5 Operasi Logika pada data Boolean atau biner ......... 48 Tabel 6 Mode Pengalamatan ................................................ 62 Tabel 7 Tabel frekuensi dinamis relatif berbobot dari operasioperasi HLL .......................................................... 132 Tabel 8 Tabel Presentase Dinamis Operand-operand......... 132 Tabel 9 Memori ke memori dan Register ke memori ......... 142 Tabel 10 Karakteristik dari beberapa Prosesor CISC, RISC, dan Superskalar .................................................... 146 Tabel 11 Perbedaan CISC dan RISC .................................. 173 Tabel 12 Pelaksanaan intruksi ............................................ 186 vii DAFTAR GAMBAR Gambar 1 Keyboard ...................................................................... 12 Gambar 2 Mouse ........................................................................... 13 Gambar 3 Joystick (Sumber: https://google.com) ......................... 13 Gambar 4 Scanner (Sumber: https://google.com) ......................... 14 Gambar 5 Touch pad ..................................................................... 14 Gambar 6 Track ball (Sumber: https://google.com) ...................... 15 Gambar 7 Light pen (Sumber: https://google.com)....................... 15 Gambar 8 Camera digital (Sumber: https://google.com) .............. 16 Gambar 9 Handy cam (Sumber: https://google.com) .................... 16 Gambar 10 Webcam ...................................................................... 17 Gambar 11 Microphone and headphone (Sumber: https://google.com)...................................................... 17 Gambar 12 Graphics pads(Sumber: https://google.com) .............. 18 Gambar 13 Barcode (Sumber: https://google.com) ....................... 18 Gambar 14 Printer (Sumber: https://google.com) ......................... 20 Gambar 15 Monitor (Sumber: https://google.com) ....................... 20 Gambar 16 LCD proyektor (Sumber: https://google.com) ........... 21 Gambar 17 Speaker (Sumber: https://google.com) ....................... 22 Gambar 18 Plotter (Sumber: https://google.com) ......................... 22 Gambar 19 Elemen-elemen set instruksi ....................................... 30 Gambar 20 Gambar Bentuk instruksi ............................................ 33 Gambar 21 Mode-mode Pengalamatan ......................................... 63 Gambar 22 Taksonomi Arsitektur Paralel Prosesor ...................... 86 Gambar 23 Arus instruksi ke sebuah PU....................................... 87 Gambar 24 Arus instruksi tunggal ke PU multiple ....................... 87 Gambar 25 MIMD share memori dan MIMD distributed memori 89 Gambar 26 Unit control pusat ....................................................... 94 Gambar 27 Organisasi Multiprosesor Simetris ............................. 96 Gambar 28 Memori Multiport ....................................................... 97 Gambar 29 Gambaran seluruh organisasi SMP S/390 ................ 101 Gambar 30 Konfigurasi Cluster .................................................. 108 Gambar 31 organisasi CC-NUMA .............................................. 111 viii Gambar 32 Operasi vektor .......................................................... 114 Gambar 33 Taksonomi organisasi komputer............................... 115 Gambar 34 RISC CISC ............................................................... 130 Gambar 35 Pewaktuan set instruksi tanpa menggunakan pipelining, rancangan pipelining dua tahap, dua akses memori per langkah, dan pipelining empat tahap ......................... 147 Gambar 36 Transfer register-logika ............................................ 168 Gambar 37 Penafsir microcode melakukan cabang bersyarat..... 170 Gambar 38 Tahapan Pipeline ...................................................... 181 Gambar 39 4-segmen arithmetic pipeline ................................... 182 Gambar 40 5-segmen instruction pipeline .................................. 182 Gambar 41 Mikroprosesor .......................................................... 183 Gambar 42 Metode kerja pipeline ............................................... 185 Gambar 43 Permasalahan pipeline .............................................. 191 ix BAB I PENDAHULUAN A. Informasi Mata Kuliah 1. Nama Mata Kuliah : Arsitektur Sistem Komputer 2. Bobot Kredit : 3 SKS 3. Program Studi : Teknik Elektro 4. Kode Mata Kuliah : TE-1114 5. Status Mata Kuliah/Semester : Wajib / III 6. Prasyarat :- 7. Bentuk Pengajaran : Ceramah, diskusi, tanya jawab, tugas, praktikum 8 Penilaian : a. Absensi 10% b. Tugas dan Kuis 30% c. UTS 30% d. UAS 30% 9 Jumlah Pertemuan : 16 kali pertemuan (termasuk UTS dan UAS) 10 Masa Perkuliahan : 150 menit tatap muka di kelas perminggu 11 Dosen Pengajar : Rozeff Pramana, ST., MT 12 Tujuan Mata Kuliah : Setelah mengikuti mata kuliah Arsitektur Komputer, mahasiswa dapat mengetahui dengan jelas tentang penggolongan komputer dan evolusinya, cara kerja dasar komputer, bagian- bagian dari komputer, fungsi CPU, proses kerja pada CPU, komponen- komponen CPU, aplikasiaplikaksi pada organisasi Input/Output dan peripheral, jenisjenis memori komputer serta aplikasinya, sistem Bus, set instruksi, prosesor paralel, arsitektur RISC dan CISC serta Pipeline pada komputer. B. Deskripsi Mata Kuliah Kata komputer berasal dari bahasa latin yaitu “computare” yang artinya berhitung. Secara definisi komputer diterjemahkan sebagai sekumpulan alat elektronika yang saling bekerjasama, dapat menerima data (input), mengolah data (proses) dan memberikan informasi (output) serta terkoordinasi dibawah kontrol program yang tersimpan pada memorinya. Pada matakuliah ini akan di bahas tentang penggolongan komputer, konsep dasar dan kinerja komputer, perangkat Input/ Output, CPU, memori, sistem Bus, set instruksi, prosesor paralel, arsitektur RISC dan CISC serta Pipeline pada komputer. 2 Standar Kompetensi 1. Mampu menjelaskan dan menganalisa perangkatperangkat I/O 2. Mampu menjelaskan dan mendeskripsikan fungsi set instruksi, mode dan pengalamatan 3. Mampu mengaplikasikan paralel prosesor secara umum 4. Mampu menganalisa perbandingan komputer RISC dan CISC serta aplikasi penggunaannya 5. Memahami teknologi dan aplikasi CISC komputer dan penggunaannya 6. Dapat mengaplikasikan dan berinovasi dalam penggunaan Pipeline Pokok Bahasan Dan Sub Pokok Bahasan No. 1. Pokok Bahasan Input/Output Sub Pokok Bahasan 1. 2. 2. Set instruksi, karakteristik dan fungsi; Mode dan pengalamatan 1. 2. 3. 4. 5. 6. 7. 8. 9. Peralatan dan fungsi perangkat input pada komputer Jenis-jenis perangkat input pada komputer Karakteristik instruksi Jenis-jenis instruksi Pemrosesan instruksi Instruction fetch Instruction execute Pengalamatan Bentuk-bentuk instruksi Jenis operasi Cycle time 3 3. Parallel Processor 1. 2. 3. 4. 5. 4. Register transfer, RISC dan CISC 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 5. Pipelining 12. 13. 14. 15. 1. 2. 3. 4. 5. Organisasi berbagai prosesor Multiprosesor simetris Koherensi Cache dan protokol Mesi Cluster Non Uniform Memory Access (NUMA) Sejarah Konsep Arsitektur RISC. Elemen penting dan ciri-ciri. Arah perkemba-ngan prosesor RISC. Eksekusi Instruksi Transfer Bus dan Memori Definisi CISC. Konsep CISC. Arsitektur CISC. Ciri-ciri prosesor CISC Aspek komputasi dalam merancang RISC. Chip-chip RISC. Prospek arsitektur RISC. Deskripsi transfer register. Bahasa transfer register Pengertian Pipelining. Kategori Pipeline. Arithmetic pipeline Instruction pipeline Pipeline pada mikroprosesor 4 Daftar Pustaka 1. Albert Paul Malvino, “Elektronika Komputer Digital’, edisi kedua, Penerbit Erlangga 1996. 2. Andrew S. Tanenbaum, “Organisasi Komputer Tersetruktur”, edisi Bahasa Indonesia, edisi pertama, jilid 2, Penerbit Salemba Teknika, 2002. 3. M. Morris Mano, “Computer System Architecture”, third edition, Prentice Hall International, 1993. 4. Prof. Dr. Jogiyanto H.M, M.B.A., Akt, “Pengenalan komputer”, penerbit Andi, 2005. 5. Syahrul, “Organisasi dan Arsitektur Komputer”, Penerbit Andi Yogyakarta, 2010. 6. William Stalling, Komputer”, edisi “Organisasi bahasa dan Indonesia, Arsitektur Jilid I, Prenhallindo, 1998. 7. William Stalling, “Organisasi dan Arsitektur Komputer”, edisi bahasa Indonesia, Jilid II, edisi 6, PT. Indeks, Kelompok Gramedia, 1998. 5 C. Rencana Kegiatan Program Pembelajaran dan Rencana Pembelajaran Semester Mata Kuliah Arsitektur Komputer Kode MK TE-1114 SK S 3 Semester Dosen Pengampu 3/ Ganjil Rozeff Pramana, ST, MT Deskripsi Mata Kuliah Komputer berasal dari bahasa latin yaitu “computare” yang artinya berhitung. Secara definisi komputer diterjemahkan sebagai sekumpulan alat elektronika yang saling bekerjasama, dapat menerima data (input), mengolah data (proses) dan memberikan informasi (output) serta terkoordinasi dibawah kontrol program yang tersimpan pada memorinya. Pada matakuliah ini akan di bahas tentang penggolongan komputer, konsep dasar dan kinerja komputer, perangkat Input/ Output, CPU, memori, sistem Bus, Set Instruksi, Prosesor Paralel, Arsitektur RISC dan CISC serta Pipeline pada komputer. 1. Mampu Standar Kompetensi menjelaskan dan menganalisa perangkat- perangkat I/O 2. Mampu menjelaskan dan mendeskripsikan fungsi set instruksi, mode dan pengalamatan 3. Memahami dan mampu mengaplikasikan paralel prosesor 6 secara umum 4. Memahami dan mampu menganalisa perbandingan komputer RISC dan CISC serta aplikasi penggunaannya 5. Memahami teknologi dan aplikasi RISC dan CISC komputer dan penggunaannya 6. Dapat mengaplikasikan dan berinovasi dalam penggunaan Pipeline Perte muan ke- 9 Capaian Pokok dan pembelajaran sub pokok bahasan Mahasiswa 1. Peralatan EstiDaftar masi Pustak Wak- a tu (menit) dan 150 dapat fungsi perangkat memaparka input n perangkat- komputer perangkat pada 2. Jenis-jenis Input / perangkat input Output pada pada komputer komputer 10 Mahasiswa dapat 1. Karakteristik 150 instruksi menganalisa 2. Jenispemprosesa n Set jenisinstruksi. 3. Pemrosesan 7 instruksi instruksi. pada 4. Instruction fetch. komputer. 5. Instruction execute. 11 Mahasiswa 1. Pengalamatan. dapat 2. Bentuk-bentuk menganalisi instruksi. s hubungan 3. Jenis operasi. dari mode 4. Cycle time 150 dan bentuk pengalamata n 12 Mahasiswa 1. Organisasi dapat berbagai menjelaskan prosesor kategori sistem komputer 2. Multiprosesor simetris 3. Koherensi Cache dan dan keterkaitann Mesi nya antara 4. Cluster satu dengan 5. Non lain 150 protokol Uniform Memory Access (NUMA) 8 13 Mahasiswa 1. Sejarah dapat 2. Konsep menjelaskan Arsitektur RISC. penggunaan 3. Elemen penting teknologi RISC dan ciri-ciri. 4. Arah perkemba- dibanding ngan teknologi RISC. yang ada 5. Eksekusi sebelumnya 14 150 Mahasiswa dapat prosesor Instruksi 1. Transfer Bus dan 75 Memori menjelaskan 2. Definisi CISC penggunaan 3. Konsep CISC teknologi 4. Arsitektur CISC CISC 5. Ciri-ciri prosesor dibanding CISC. teknologi yang ada sebelumnya 14 Mahasiswa 1. Aspek komputasi dapat dalam menjelaskan merancang RISC perbedaan 75 2. Chip-chip RISC 9 antara teknologi RISC dan CISC. 3. Prospek arsitektur RISC 4. Deskripsi transfer register 5. Bahasa transfer register. 15 Mahasiswa dapat menghitung jumlah set instruksi 1. Pengertian Pipelining 2. Kategori Pipeline 3. Arithmetic yang masuk pipeline pada suatu 4. Instruction pipelining pipeline dan dapat 5. Pipeline mengkreasi 150 pada mikroprosesor kannya dengan kategori pipeline lain 16 UAS 10 BAB II INPUT OUTPUT A. Standar Kompetensi dan Indikator Standar Kompetensi Mampu menjelaskan dan menganalisa perangkat-perangkat I/O pada komputer Indikator Setelah mengikuti perkuliahan mahasiswa diharapkan dapat memaparkan perangkat-perangkat Input / Output pada komputer. B. Materi 1. Pengertian dan Fungsi Peralatan Input Pada Komputer Peralatan input pada komputer adalah perangkat yang memberikan perintah langsung atau data ke peralatan proses yang ada pada komputer untuk diproses kemudian dikeluarkan berupa informasi kepada pengguna. Peralatan input merupakan bagian komputer yang mempunyai peranan yang sangat penting karena langsung berhubungan dengan user atau pengguna komputer. Berikut adalah macam-macam peralatan input pada komputer dan fungsi masing-masing komponen tersebut: a. Keyboard Merupakan peralatan input pada komputer yang berfungsi untuk memasukan data atau perintah berupa angka, huruf maupun symbol. Keyboard merupakan perangkat input yang umum terdapat pada suatu Komputer. Keyboard disebut juga papan ketik pada komputer yang terdiri dari susunan huruf A s/d Z dan angka 0 s/d 9 dan ada beberapa simbol seperti titik dua, koma, titik dan lain-lain, juga terdapat tobol sortcut yang memudahkan kita untuk mengoperasikan komputer. Terdapat berbagai macam jenis dan ukuran keyboard, dan untuk konektifitasnya pada komputer dapat dilakukan dengan kabel maupun nirkabel. Gambar 1 Keyboard b. Mouse Mouse adalah peralatan input pada komputer yang berfungsi untuk menggerakan pointer pada layar monitor. Mouse sangat berguna untuk sistem operasi yang berbasis 12 grafis. Seperti halnya keyboard, konektifitas Mouse dengan komputer dapat dilakukan dengan kabel maupun nirkabel. Gambar 2 Mouse c. Joy Stick Joy Stick adalah alat input yang digunakan untuk memasukan perintah untuk menggerakan permainan pada komputer maupun suatu instrumen. Gambar 3 Joystick (Sumber: https://google.com) d. Scanner Scanner adalah alat input yang mempunyai fungsi hampir mirip dengan mesin foto copy, akan tetapi dengan scanner data dapat diubah dalam bentuk file sehingga dapat disimpan ke dalam harddisk komputer. 13 Gambar 4 Scanner (Sumber: https://google.com) e. Touch Pad Perangkat yang berfungsi sebagai penggerak kursor pada monitor melalui stimulasi gerakan jari yang menyentuh touchpad tersebut. Gambar 5 Touch pad f. Track Ball Mensimulasikan pergerakan vertikal mouse, sehingga pengguna tidak perlu menggerakkan mouse berulang kali untuk dapat menaikkan atau menurunkan layar. 14 Gambar 6 Track ball (Sumber: https://google.com) g. Light Pen Perangkat yang berbentuk pena yang dipergunakan pada layar monitor jenis touchscreen untuk memodifikasi atau mendesain gambar secara langsung pada layar monitor. Gambar 7 Light pen (Sumber: https://google.com) h. Camera digital Perangakat sejenis kamera yang dapat menangkap obyek gambar dan dapat menampilkannya ke layar komputer untuk diproses lebih lanjut. 15 Gambar 8 Camera digital (Sumber: https://google.com) i. Handy cam Perangkat perekam gambar/ video yang dapat ditampilkan ke layar monitor untuk diproses lebih lanjut. Gambar 9 Handy cam (Sumber: https://google.com) j. Webcam Perangakat komputer yang digunakan untuk konferensi video jarak jauh atau sebagai kamera pemantau. Webcam ada yang terintegrasi langsung pada suatu komputer dan ada yang terpisah. 16 Gambar 10 Webcam k. Microphone and headphone Microphone berfungsi untuk merekam suara yang akan disimpan dalam memori komputer, selain itu kita juga dapat berbicara dengan orang lain pada saat chatting. Headphone berfungsi untuk mendengarkan suara. Gambar 11 Microphone and headphone (Sumber: https://google.com) l. Graphics Pads Perangkat yang biasa digunakan untuk mempermudah menggambar suatu objek pada monitor sebagai pengganti kertas. 17 Gambar 12 Graphics pads(Sumber: https://google.com) m. Barcode Berfungsi untuk membaca suatu kode yang berbentuk kotak-kotak atau garis-garis tebal vertikal dan mengubahnya menjadi informasi. Gambar 13 Barcode (Sumber: https://google.com) 2. Pengertian dan Fungsi Peralatan Output Pada Komputer Peralatan Output pada komputer merupakan komponen komputer yang berfungsi menghasilkan informasi yang diperoleh dari hasil proses dari peralatan proses komputer. 18 Output hasil proses dari komputer digolongkan menjadi 4 bentuk yaitu: huruf, gambar, suara dan video. Peralatan output akan menghasilkan informasi untuk manusia sehingga bisa dibaca, dilihat, didengar dan dipahami. Komputer akan memproses informasi dari peralatan input komputer kemudian menampilkan hasil proses dalam bentuk informasi ke pengguna komputer (manusia). Peralatan output sendiri sangat penting karena akan memberikan informasi secara langsung ke pengguna. Perangkat output juga menjadi suatu keharusan dalam sistem komputer meskipun beberapa peralatan output komputer tersebut dalam kategori periperal komputer (perangkat tambahan komputer). Macam-macam dan fungsi peralatan output komputer : a. Printer Printer merupakan peralatan output pada komputer yang berfungsi mencetak hasil dari proses komputer ke dalam media kertas. Hasil cetakan dari printer dapat berupa gambar maupun tulisan. Printer merupakan komponen komputer yang digolongkan ke dalam peripheral membantu kerja yang sangat manusia. penting untuk Berdasarkan media cetaknya printer ada beberapa macam, yaitu: printer 19 inkjet, printer laserjet dan printer dotmatrik. Konektifitas Printer dengan komputer juga dapat dilakukan dengan kabel maupun nirkabel. Gambar 14 Printer (Sumber: https://google.com) b. Monitor Monitor merupakan peralatan output pada komputer yang berfungsi untuk menampilkan grafik atau gambar yang telah diproses oleh bagian pemproses sehingga informasi dapat diterima oleh manusia. Gambar 15 Monitor (Sumber: https://google.com) 20 c. LCD Proyektor LCD Proyektor mempunyai fungsi sama dengan monitor, akan tetapi pada LCD Proyektor gambar ditampilkan pada screen ekternal dan dapat diatur ukurannya. Sehingga, dapat dilihat oleh lebih dari 1 orang. Gambar 16 LCD proyektor (Sumber: https://google.com) d. Speaker Speaker adalah peralatan output pada komputer yang berfungsi untuk mengeluarkan output berupa suara. Speaker akan terhubung dengan soundcard pada komputer agar bisa menerima hasil proses berupa suara dari komputer. 21 Gambar 17 Speaker (Sumber: https://google.com) e. Plotter Perangkat yang digunakan untuk mencetak gambar ukuran yang cukup besar, seperti gambar mesin dan konstruksi bangunan. Gambar 18 Plotter (Sumber: https://google.com) 22 C. Rangkuman 1. Peralatan input pada komputer adalah perangkat yang memberikan perintah langsung atau data ke peralatan proses yang ada pada komputer untuk diproses kemudian dikeluarkan berupa informasi kepada pengguna. 2. Beberapa jenis peralatan input, antara lain: a. Keyboard Merupakan peralatan input pada komputer yang berfungsi untuk memasukan data atau perintah berupa angka, huruf maupun symbol. b. Mouse adalah peralatan input pada komputer yang berfungsi untuk menggerakan pointer pada layar monitor. c. Joy Stick adalah alat input yang digunakan untuk memasukan perintah untuk menggerakan permainan pada komputer maupun suatu instrumen. d. Scanner adalah alat input yang mempunyai fungsi hampir mirip dengan mesin foto copy, akan tetapi dengan scanner data dapat diubah dalam bentuk file sehingga dapat disimpan ke dalam harddisk komputer. e. Touchpad adalah perangkat yang berfungsi sebagai penggerak kursor pada monitor melalui stimulasi gerakan jari yang menyentuh touchpad tersebut. 23 f. Trackball mensimulasikan pergerakan vertikal mouse, sehingga pengguna tidak perlu menggerakkan mouse berulang kali untuk dapat menaikkan atau menurunkan layar. g. Light Pen merupakan perangkat yang berbentuk pena yang dipergunakan pada layar monitor jenis touchscreen untuk memodifikasi atau mendesain gambar secara langsung pada layar monitor. h. Camera digital yaitu perangakat sejenis kamera yang dapat menangkap obyek gambar dan dapat menampilkannya ke layar komputer untuk diproses lebih lanjut. i. Handy cam adalah perangkat perekam gambar/ video yang dapat ditampilkan ke layar monitor untuk diproses lebih lanjut. j. Webcam merupakan perangakat komputer yang digunakan untuk konferensi video jarak jauh atau sebagai kamera pemantau. Webcam ada yang terintegrasi langsung pada suatu komputer dan ada yang terpisah. k. Microphone berfungsi untuk merekam suara yang akan disimpan dalam memori komputer, selain itu kita juga dapat berbicara dengan orang lain pada saat chatting. Headphone berfungsi untuk mendengarkan suara l. Graphics Pads adalah perangkat yang biasa digunakan untuk mempermudah menggambar suatu objek pada monitor sebagai pengganti kertas. 24 m. Barcode berfungsi untuk membaca suatu kode yang berbentuk kotak-kotak atau garis-garis tebal vertikal dan mengubahnya menjadi informasi. 3. Peralatan Output pada komputer merupakan komponen komputer yang berfungsi menghasilkan informasi yang diperoleh dari hasil proses dari peralatan proses komputer. 4. Beberapa jenis peralatan output, antara lain: a. Printer merupakan peralatan output pada komputer yang berfungsi mencetak hasil dari proses komputer ke dalam media kertas. b. Monitor merupakan peralatan output pada komputer yang berfungsi untuk menampilkan grafik atau gambar yang telah diproses oleh bagian pemproses sehingga informasi dapat diterima oleh manusia. c. LCD Proyektor mempunyai fungsi sama dengan monitor, akan tetapi pada LCD Proyektor gambar ditampilkan pada screen ekternal dan dapat diatur ukurannya d. Speaker adalah peralatan output pada komputer yang berfungsi untuk mengeluarkan output berupa suara. e. Plotter perangkat yang digunakan untuk mencetak gambar ukuran yang cukup besar, seperti gambar mesin dan konstruksi bangunan. 25 D. Latihan Soal 1. Apa yang anda ketahui mengenai peralatan input dan output? 2. Sebutkan 3 contoh peralatan input dan output beserta fungsinya! 3. Jelaskan bagaimana suatu inputan dapat diproses oleh computer hingga dikeluarkan berupa informasi kepada pengguna. 26 BAB III SET–SET INSTRUKSI A. Standar Kompetensi dan Indikator Standar Kompetensi Mampu menjelaskan dan mendeskripsikan fungsi set instruksi, mode dan pengalamatan Indikator Mahasiswa dapat menganalisis hubungan dari mode dan bentuk pengalamatan. B. Materi 1. Karakteristik dan Fungsi Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set). Dua bagian utama Arsitektur Komputer: Instruction-Set Architecture (ISA) / Arsitektur Set Instruksi ISA meliputi spesifikasi yang menentukan bagaimana programmer bahasa mesin akan berinteraksi dengan komputer. ISA menentukan sifat komputasional komputer. Hardware-System Architecture (HSA) / Arsitektur Sistem Hardware HSA berkaitan dengan subsistem hardware utama komputer (CPU, sistem memori dan IO). HSA mencakup desain logis dan organisasi arus data dari subsistem. Instruction Set Architecture (ISA) atau disebut juga dengan Set Instruksi /Instruction Set merupakan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, set instruksi ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada). ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya dalam sebuah desain prosesor tertentu. ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik 28 desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya. Ketika mendesain mikroarsitektur, para desainer menggunakan Register Transfer Language (RTL) untuk 29 mendefinisikan operasi dari setiap instruksi yang terdapat dalam ISA. Karakteristik-Karakteristik Instruksi Mesin Operasi CPU ditentukan oleh instruksi yang dieksekusinya. Instruksi-instruksi ini di sebut sebagai instruksi mesin (machine komputer (Computer Instructions) Instructions). Set atau instruksi instruksi dari instruksi-instruksi yang berbeda yang dapat dieksekusi oleh CPU dikenal sebagai set instruksi CPU. Elemen-elemen Instruksi Mesin (set instruksi) Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi. Gambar berikut menunjukkan langkah-langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin. Gambar 19 Elemen-elemen set instruksi 30 Elemen-elemen tersebut adalah : Operation Code (opcode) : Menentukan operasi yang akan dilaksanakan. Operasi ini dispesifikasikan oleh sebuah kode biner, dikenal sebagai kode operasi atau opcode. Source Operand Reference : Merupakan input bagi operasi yang akan dilaksanakan. Operasi dapat melibatkan satu atau lebih operand sumber, operand merupakan input bagi operasi. Result Operand Reference : Merupakan hasil dari operasi yang dilaksanakan. Next instruction Reference : Memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah menyelesaikan eksekusi suatu instruksi. Instruksi yang akan diambil berikut berada di memori utama atau pada sistem memori virtual. Akan lebih baik bila berada di memori utama/memori sekunder (disk). Umumnya instruksi yang akan segera diambil selanjutnya berada setelah instruksi saat itu. Source Operand dan Result Operand dapat berupa salah satu dari tiga jenis berikut ini: 31 1. Main or Virtual Memory Dengan adanya acuan instruksi berikutnya, maka alamat memori utama /memori virtual harus diketahui. 2. CPU Register Dengan suatu pengecualian yang jarang terjadi, CPU terdiri dari sebuah register atau lebih yang dapat diacu oleh instruksi-instruksi mesin. Bila hanya terdapat sebuah register, maka acuan ke instruksi tersebut dapat berbentuk implisit. Jika terdapat lebih dari satu register, maka setiap register diberi nomor yang unik dan instruksi harus terdiri dari nomor register yang dimaksud. 3. I/O Device Instruksi harus menspesifikasikan modul I/O dan perangkat yang diperlukan oleh operasi. Jika digunakan I/O memori terpetakan, maka perangkat ini merupakan memori utama /memori virtual. Representasi Instruksi Pada komputer instruksi direpresentasikan oleh sekumpulan bit yang dibagi dalam beberapa bidang yang berkaitan dengan elemen-elemen yang akan memuat instruksi. 32 Gambar 20 Gambar Bentuk instruksi Pada sebagian set instruksi bisa digunakan lebih dari satu bentuk. Selama berlangsungnya eksekusi instruksi, instruksi dibaca ke dalam register instruksi (IR) yang terdapat dalam CPU. Untuk melakukan operasi yang diperlukan, CPU harus dapat mengeluarkan data dari berbagai bidang instruksi. Opcodes direpresentasikan dalam bentuk singkatan yang disebut mnemonics, yang menunjukkan operasi yang akan dilaksanakan. Contoh dari mnemonics adalah : - ADD Add (penambahkan) - DIV Divide (pembagian) - SUB Subtract (pengurangan) - LOAD Load data from memory - MPY Multiply (perkalian) - STOR Store data to memory 33 Operand juga direpresentasikan secara simbolik, contoh; ADD R,Y ---> yang berarti tambahkan nilai pada lokasi Y ke isi register R. Operasi dilakukan terhadap isi alamat, bukan terhadap alamatnya. Sehingga memungkinkan menulis bahasa mesin dalam bentuk simbol. Setiap opcode simbolik memiliki representasi biner yang tepat dan pemogram dapat menetapkan masing-masing operand simbolik. Sebuah program yang sederhana akan menerima input simbol ini kemudian mengkonversikan opcode dan acuan operand/ Operand Reference tersebut menjadi bentuk biner dan akhirnya membentuk instruksi mesin. Jenis-jenis Instruksi Suatu instruksi yang dapat diekspresikan dalam bahasa BASIC atau FORTRAN seperti berikut : X=X+Y Pernyataan ini menginstruksikan komputer untuk menambahkan nilai yang tersimpan di Y ke nilai yang tersimpan di X, dan menyimpan hasilnya di X. Bagaimana hal ini dapat dilakukan dengan instruksi mesin? Kita anggap bahwa variabel X dan Y berkorespodensi dengan lokasi 513 34 dan 514. Jika kita mengasumsikan set instruksi mesin yang sederhana, maka operasi ini dapat dilakukan dengan tiga buah instruksi : 1. Muatkan sebuah register dengan isi lokasi memori 513. 2. Tambahkan isi lokasi memori 514 ke register. 3. Simpan isi register di lokasi memori 513. Bahasa tingkat tinggi mengekspresikan operas-operasi dalam bentuk aljabar yang singkat yaitu dengan variabelvariabel. Sedangkan bahasa mesin mengekspresikan operasi dalam bentuk dasar yang meliputi perpindahan data dari register dan ke register. Suatu komputer harus memiliki set instruksi yang memungkinkan pengguna untuk memformulasikan pengolahan data. Agar dapat dieksekusi setiap program yang ditulis dalam bahasa program tingkat tinggi harus diterjemahkan ke dalam bahasa mesin. Set instruksi mesin harus dapat mengekspresikan setiap instruksi bahasa tingkat tinggi. Jenis-jenis instruksi dapat digolongkan menjadi : Data Processing, instruksi-instruksi aritmatika dan logika. Data Storage, instruksi-instruksi memori. 35 Data Movement, instruksi I/O Control, instruksi pemeriksaan dan percabangan. Instruksi aritmatika memiliki kemampuan komputasi untuk pengolahan data numerik. Sedangkan instruksi logika atau bolean beroperasi terhadap bit-bit word sebagai bit, sehingga instruksi-instruksi ini memiliki kemampuan untuk pengolahan data lain yang akan digunakan oleh pengguna. Operasi tersebut dilakukan bagi data yang terdapat pada register-register CPU. Sehingga harus ada instruksi-instruksi memori untuk memindahkan data yang terdapat dalam memori dan register. Instruksi I/O diperlukan untuk memindahkan program dan data ke dalam memori dan mengembalikan hasil komputasi kepada pengguna. Instruksi pengujian digunakan untuk menguji/memeriksa nilai word data dan status komputasi. Sedangkan instruksi percabangan digunakan untuk mencabangkan ke set instruksi yang lain. Jumlah Alamat Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya. 36 Instruksi aritmatika dan logika memerlukan jumlah operand yang banyak. Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi : 1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat instruksi berikutnya) Instruksi empat alamat sangat jarang ditemukan, sebagian besar CPU merupakan variasi satu, dua atau tiga alamat dengan alamat instruksi berikutnya merupakan implisit. 2. Tiga Alamat (dua operand, satu hasil) Format tiga alamat tidak umum digunakan karena instruksi-instruksi memerlukan bentuk instruksi yang relatif lebih panjang untuk menampung acuan-acuan tiga alamat. 3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand) Bentuk dua alamat mengurangi kebutuhan ruang akan tetapi menimbulkan kesulitan. Untuk menghindarkan nilai suatu operand, instruksi MOVE digunakan untuk memindahkan sebuah nilai ke sebuah lokasi hasil atau lokasi sementara sebelum operasi dilakukan. 37 4. Satu Alamat (menggunakan accumulator untuk menyimpan operand dan hasilnya) Instruksi ini adalah instruksi yang lebih sederhana. Agar alamat ini dapat berfungsi, alamat kedua perlu diimplisitkan. Hal ini sangat umum pada mesin-mesin lama dengan mengimplementasikan alamat sebagai register CPU (akumulator/AC). Instruksi untuk menghitung persamaan: Y = (A – B) / (C + D * E) Tabel 1 Three Address Instruction Instruksi Komentar SUB Y,A,B Y <--- A - B MPY T,D,E T <--- D x T ADD T,T,C T <--- T + C DIV Y,Y,T Y <--- Y : T Tabel 2 One Address Instruction Instruksi Komentar LOAD D AC <--- D MPY E AC <--- AC x E ADD C AC <--- AC + C STOR Y Y <--- AC LOAD A AC <--- A SUB B AC <--- AC – B DIV Y AC <--- AC : Y STOR Y Y <--- AC 38 Tabel 3 Two Address Instruction Instruksi Komentar MOVE Y,A Y <--- A SUB Y,B Y <--- Y – B MOVE T,D T <--- D MPY T,E T <--- T x E ADD T,C T <--- T + C DIV Y,T Y <--- Y : T Jumlah alamat per instruksi di tentukan rancangan dasarnya. Alamat per instruksi yang lebih sedikit akan menghasilkan instruksi yang lebih primitif dan memerlukan CPU yang kurang kompleks. Instruksi seperti ini juga menghasilkan instruksi yang lebih pendek. Program yang jumlah instruksi lebih banyak, secara umum akan menghasilkan waktu eksekusi yang lebih panjang dan akan lebih panjang lagi bila programnya lebih kompleks. Rancangan Set Instruksi Rancangan set instruksi mempengaruhi banyak aspek pada sistem komputer. Rancangan set instruksi sangat kompleks. Set instruksi menentukan banyak implementasi CPU. Set instruksi merupakan alat bagi pemrogram untuk mengkontrol CPU. 39 Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah: 1. Kelengkapan set instruksi 2. Ortogonalitas (sifat independensi instruksi) 3. Kompatibilitas : - source code compatibility - Object code Compatibility Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut : a. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya b. Data Types: tipe/jenis data yang dapat olah. c. Instruction Format: panjangnya, banyaknya alamat, dan sebagainya. d. Register: Banyaknya register yang dapat digunakan. e. Addressing: Mode pengalamatan untuk operand. Masalah-masalah ini saling berkaitan dan harus diperhatikan dalam merancang set instruksi. Jenis-jenis OPERAND Instruksi mesin mengoperasikan data. Kategori data umum yang sangat penting adalah : 40 • Alamat • Bilangan • Karakter • Data logika Alamat adalah sebuah bentuk data. Umumnya untuk menentukan alamat memori utama/memori virtual sebagian kalkulasi harus dilakukan terhadap acuan operand/operand reference di dalam sebuah instruksi. Dalam konteks ini alamat dapat dianggap sebagai integer tidak bertanda. Semua bahasa mesin memiliki jenis data numerik. Bahkan untuk data non numerik, bilangan digunakan sebagai penghitung lebar bidang dan lain-lain. Perbedaan antara bilangan yang digunakan dalam matematika dengan bilangan yang tersimpan dalam komputer bahwa jumlah bilangan yang digunakan dalam komputer sangat terbatas. Ini disebabkan pertama, besarnya keterbatasan terhadap bilangan yang dapat direpresentasikan pada mesin dan kedua, dalam bilangan titik mengambang terdapat keterbatasan dalam hal ketelitian. Jadi pemrogram dihadapkan dengan konsekuensi pembulatan, overflow dan underflow. Tiga jenis data numerik yang terdapat pada komputer adalah : 41 1. Integer /titik tetap. 2. Titik mengambang. 3. Desimal. Operasi internal komputer menggunakan operasi biner, namun pengguna sistem lebih mudah memahami bilangan desimal. Dengan demikian terdapat suatu kebutuhan untuk mengubah bentuk dari desimal menjadi biner pada input dan dari biner menjadi desimal pada output. Representasi yang umum untuk hal tersebut adalah dengan packed decimal. Dengan packed decimal setiap digit desimal direpresentasikan dengan sebuah kode 4 bit, menjadi ; 0= 0000, 1=0001,...9=1001. Kode ini tidak efisien karena hanya dapat memanfaatkan 10 nilai dari 16 buah nilai 4 bit yang dapat digunakan. Untuk membuat bilangan, kode-kode 4 bit tersebut digabungkan dalam kelipatan 8 bit. Jelas kode ini kurang ringkas namun dapat menghindari terjadinya overhead konversi. Bilangan negatif dapat direpresentasikan dengan melibatkan 4 bit digit tanda pada ujung kiri atau kanan digit-digit packed decimal. Misalnya kode 1111 dapat diartikan sebagai tanda minus. String-string Karakter atau teks adalah bentuk data yang umum. Teks dalam bentuk karakter tidak mudah disimpan atau dikirimkan oleh sistem pengolahan data atau sistem 42 komunikasi. Dengan demikian sejumlah kode digunakan untuk merepresentasikan karakter dengan memakai rangkaian bit. Kode karakter yang umum dipakai didalam kode IRA (International Reference Alphabet), merujuk ke Amerika Serikat adalah kode ASCII (American Standard Code for Information Interchange). IRA setiap karakternya direpresentasikan dengan pola 7 bit yang unik, sehingga terdapat 128 karakter. Untuk karakter ASCII hampir selalu dapat disimpan dan ditransmisikan dengan menggunakan 8 bit per karakter. Bit kedelapan dapat diset nol atau digunakan sebagai bit paritas untuk deteksi kesalahan. Umumnya setiap word atau unit lainnya yang dapat dialamati (byte, halfword) diperlakukan sebagai unit data. Sering kali berguna untuk mempertimbangkan satuan n-bit sebagai n butir data 1-bit, yang masing-masing memliki nilai 0 atau 1. Apabila data dipandang seperti itu, maka data tersebut dipandang sebagai data logika. Terdapat dua keuntungan dibandingkan cara pandang berorientasi bit. Pertama, kadang-kadang kita perlu menyimpan butir array Boolean atau data biner yang hanya dapat mengambil satu nilai, 1 atau 0. Dengan data logika penyimpanan data dalam memori dapat lebih efisien. Kedua, terdapat suatu kebiasaan pada saat akan memanipulasi bit-bit data. Perlu diingat 43 kadang data yang sama diperlukan sebagai data logika/data numerik/teks. Jenis-jenis Operasi Jumlah opcode suatu mesin akan sangat berbeda dengan jumlah opcode mesin lainnya. Akan tetapi jenis operasi pada semua mesin memiliki kesamaan. Penggolongan jenis operasi yang umum adalah : Data Transfer - I/O Aritmatic - System control Logical - Transfer control Convension Tabel berikut ini menampilkan operasi-operasi set instruksi yang umum. Tabel 4 operasi-operasi set instruksi Tipe Data Transfer Nama Operasi Move (transfer) Load Exchange Clear/reset Set Push Pop (pull) Arithmetic Add Subtract Multiply Devide Absolute Deskripsi Transfer word/blok dari source ke destination Transfer word dari external memory ke processor Swap content dari source dengan destination Transfer word 0 ke destination Transfer word 1 ke destination Transfer word dari source ke bagian atas stack Transfer word dari bagian atas stack ke destination Computer sum of two operands Compute difference of two operands Compute product of two operands Compute quotient of two operands Replace operand by its abs value 44 Logical Negate Increment Decrment AND OR NOT Exclusive-OR Shift Rotate No Operation Input-Output Input(read) Output Start IO Test IO Conversion Translate Convert System Control OSCALL Transfer of Control Jump (Branch) Jump Conditional Jump Subroutine call, Branch and Link Return Execute Skip Skip Conditional Test Compare Change sign of operand Add 1 to operand Substract 1 from operand Perform the specified logical operation bitwise Left-(right) shift operand introducting constants at end Left-(right) shift operand No operation is performed, but program execution continues Transfer data from specified IO port or device to destination, e.g., main memory or processor register Transfer data from specified source to IO port or device Transfer instruction to IO to initiate IO operation Transfer status information from IO system to specified destination Translate values in a section of Memory based on a table of correspondences Convert the contents of a word from one form to another (e.g., packed decimal to binary) Causes an interrupt, which passes control to operating system around closed path Unconditional transfer, load PC with specified address Test specified condition; depending on condition, either load PC with specified address or else d nothing Place current program control information (PC, status register, etc.) in known location, e.g., top of static; jump to specified address Replace contents of PC, status register, etc. with information from known location, e.g., from top stack Fetch operand from specified location and execute as instruction; note that PC is not modified. Increment PC to skip the next instruction Test specified condition; depen-ding on outcome, either increment PC or else do nothing Test specified condition; set flag(s) based on outcome Make logical or arithmetic comparison of two or more operands; set flag(s) based on outcome 45 Set Control Variables Halt Wait (hold) Large class of instruction to set controls for protection purposes, interrupt handling, timer control, etc. (often privillaged instructions) Stop program execution Stop program execution; test a specified condition continuously; when the condition is satisfied, resume execution Data Transfer Data transfer adalah jenis instruksi mesin yang paling signifikan. Instruksi transfer data harus menetapkan segala sesuatu. Pertama, menetapkan lokasi operand sumber dan operand tujuan. Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas dari stack. Kedua, menetapkan panjang data yang akan dipindahkan. Ketiga, menetapkan mode pengalamatan setiap operand. Dalam hal tindakan CPU, mungkin operasi transfer data merupakan jenis operasi yang paling sederhana. Apabila sumber dan tujuannya merupakan register, maka CPU cukup melakukan perpindahan data dari register yang satu ke register yang lainnya saja. Hal tersebut merupakan operasi internal bagi CPU. Apabila sebuah atau dua operand berada didalam memori, maka CPU harus melakukan sebagian atau seluruh tindakan berikut : 1. Menghitung alamat memori, yang didasarkan mode alamat. 46 2. Apabila alamat mengacu ke memori virtual, terjemahkan dari alamat memori virtual ke memori actual/sebenarnya. 3. Menentukan apakah butir alamat berada dalam cache. 4. Bila tidak ada dalam cache, terbitkan perintah ke modul memori. Aritmatic Sebagian besar mesin memberikan operasi aritmatika dasar seperti penambahan, pengurangan, perkalian dan pembagian. Operasi-operasi ini selalu tersedia bagi bilanganbilangan integer bertanda (titik tetap). Sering kali operasioperasi tersebut disediakan juga bagi bilangan-bilangan titik mengambang dan packed decimal. Operasi-operasi lainnya meliputi bermacam-macam instruksi operand tunggal, misalnya ; Absolute; mengambil nilai mutlak operand. Negate ; membalik/negasi operand. Increment ; menambah operand dengan 1. Decrement ; mengurangi operand dengan 1. 47 Eksekusi sebuah instruksi operand dapat melibatkan operasi pemindahan data untuk meletakkan operand bagi input ALU, dan menyampaikan output ALU. Tindakan CPU untuk melakukan operasi Aritmatik : 1. Transfer data sebelum atau sesudah. 2. Melakukan fungsi dalam ALU. 3. Menset kode-kode kondisi dan flag. Logical Sebagian mesin menyediakan bermacam-macam operasi untuk memanipulasi bit suatu word atau unit-unit lainnya yang dapat dialamati, sering kali hal ini disebut “bit twiddling”. Operasi-operasi tersebut berdasarkan pada operasi Boolean. Beberapa operasi logika dasar dapat dilakukan pada data Boolean atau biner seperti tabel berikut. Tabel 5 Operasi Logika pada data Boolean atau biner P Q 0 0 0 1 P P P P NOT AND OR XOR = P Q Q Q Q 1 0 0 0 1 1 0 1 1 0 48 1 0 0 0 1 1 0 1 1 0 1 1 0 1 Operasi NOT meng-inversi sebuah bit. AND, OR dan Exclusive-OR (XOR) adalah fungsi logika yang paling umum pada dua operand. Operasi-operasi logika tersebut dapat diimplementasikan secara bit terhadap unit data logika n-bit. Jadi bila dua register terdiri dari : R1 = 10100101 R2 = 00001111 Maka, R1 AND R2 = 00000101 Dengan demikian operasi AND dapat digunakan sebagai penyaring yang memilih bit-bit tertentu dalam sebuah word dan me-nol-kan bit-bit lain. Contoh yang lain ; R1 = 10100101 R2 = 11111111 Maka, R1 XOR R2 = 01011010 Dengan di-setnya sebauh word semuanya ke 1, maka operasi XOR menginversikan seluruh bit dalam word-word lainnya (komplemen 1). Selain operasi logika secara bit, mesin juga memilikifungsi pergeseran dan rotasi. 49 0 ... Pergeseran Logika Kanan ... Pergeseran Logika Kiri Pada pergeseran logis, bit-bit dapa sebuah word digeser kesebelah kiri atau kanan. Pada satu sisi bit yang digeser akan keluar atau hilang. Pada sisi lainnya bilangan 0 akan digeser kedalam. Pergeseran logika sangat berguna terutama untuk mengisolasi bidang-bidang didalam word. Bilangan-bilangan 0 suatu word yang digeser ke dalam menggantikan informasi yang tidak diinginkan digeser keluar pada sisi lainnya. 0 S Pergeseran Aritmatika Kanan ... S Pergeseran Aritmatika Kiri ... 50 Operasi pergeseran aritmatika seperti gambar diatas, memperlakukan data sebagai integer bertanda dan tidak bertanda akan menggeser bit tanda. Pada pergeseran aritmatika kanan, bit tanda diisi ke posisi bit sebelah kanan. Pada bilangan-bilangan dalam notasi komplemen dua, pergeseran kiri atau kanan masing-masing berhubungan dengan perkalian atau pembagian dengan 2, dengan syarat tidak terdapat overflow. Jika terjadi overflow pergeseran aritmatika dan logika kiri akan menghasilkan hasil yang berbeda, namun aritmatika kiri menyimpan tanda dari bilangan tersebut. Karena kemungkinan terjadinya overflow, banyak prosesor tidak memasukkan instruksi ini. ... Rotasi Kanan ... Rotasi Kiri Operasi rotasi menjada semua bit yang sedang dioperasikan. Salah satu fungsi rotasi adalah untuk membawa 51 seluruh bit secara berurutan ke bit yang paling kiri, bit-bit tersebut dapat didefinisikan dengan pemeriksaan tanda dari datanya. Seperti halnya pada operasi aritmatika dan operasi logika, melibatkan aktivitas ALU dan dapat melibatkan operasi pemindahan data. 1. Konversi Instruksi konversi adalah instruksi yang mengubah bentuk atau instruksi yang beroperasi terhadap bentuk data. Contohnya pengubahan bilangan desimal menjadi bilangan biner. 2. Input/Output Terdapat bermacam-macam pendekatan termasuk diantaranya isolasi I/O terprogram, memori terpetakan I/O terprogram. DMA dan penggunaan prosesor I/O. banyak implementasi yang hanya memberikan sedikit instruksi I/O, dengan aksi-aksi tertentu yang ditentukan oleh parameter, kode atau instruksi word tertentu. 3. Kontrol Sistem Instruksi-instruksi kontrol sistem umumnya merupakan instruksi khusus yang hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang 52 mengeksekusi program yang berada dalam area memori khusus. Instruksi-instruksi ini digunakan dalam sistem operasi. 4. Transfer kontrol Operasi transfer kontrol yang paling umum pada set-set instruksi terdiri dari : - Branch (percabangan) - Subroutine call (panggilan subrutin) - Skip (lewati) Ada beberapa alasan diperlukannya operasi transfer kontrol : 1. Mengeksekusi instruksi lebih dari satu kali atau bahkan lebih dari ribuan kali merupakan hal yang mendasar. Oleh karena itu diperlukan ribuan/jutaan instruksi untuk mengimplementasikan suatu aplikasi. Tidak dapat dibayangkan bila setiap instruksi ditulis secara terpisah. Bila suatu tabel atau daftar akan diproses, maka diperlukan program pengulang. Sebuah rangkaian instruksi dieksekusi secara berulang untuk memproses seluruh data. 53 2. Secara virtual sebuah program melibatkan pengambilan keputusan. Kita berharap komputer melakukan sesuatu apabila terdapat sebuah persyaratan dan melakukan sesuatu yang lain bagi persyaratan yang lainnya. Misalnya sebuah instruksi menghitung akar kuadrat sebuah bilangan. Pada awalnya tanda bilangan akan diperiksa. Bila bilangannya negatif, maka komputasi tidak akan dilakukan, namun akan dilaporkan keadaan error. 3. Menyelesaikan program komputer berukuran besar atau bahkan berukuran sedang secara benar merupakan tugas yang sangat sulit. Maka akan sangat membantu apabila terdapat mekanisme untuk memecah tugas tersebut menjadi bagian-bagian kecil yang dapat diselesaikan satu per satu. 2. Mode dan Bentuk Pengalamatan Bidang alamat atau bidang pada bentuk instruksi yg umum adalah relatif kecil. Kita dapat mengambil acuan cakupan yang besar tentang lokasi memori utama atau untuk beberapa sistem. Untuk mencapai ini berbagai teknik pengalamatan dilakukan. Semua teknik tersebut melibatkan tarik-menarik antara cakupan alamat dan fleksibilitas 54 pengalamatan di satu sisi, dan jumlah acuan memori dan kompleksitas kalkulasi alamat pada sisi lain. Teknik pengalamatan yang umum adalah : a. Segera Langsung Tidak Langsung Register Register tidak langsung Pengganti Stack Pengalamatan Segera Pengalamatan ini adalah bentuk pengalamatan yang paling sederhana, dimana operand benar-benar diberikan pada instruksi : OPERAND = A Mode ini dapat digunakan untuk mendefinisikan dan menggunakan nilai awal variabel tetap atau yang diset. Secara umum bilangan akan disimpan dalam bentuk komplemen dua, bit paling kiri bidang operand digunakan sebagai bit tanda. Ketika operand terisi dalam register data, bit tanda diperluas ke kiri sepenuhnya ukuran word data. 55 Keuntungan pengalamatan segera adalah tidak ada acuan memori selain dari pengambilan instruksi yang diperlukan untuk memperoleh operand, sehingga menghemat satu memori/siklus cache dalam siklus instruksi. Kerugiannya adalah ukuran bilangannya terbatas pada ukuran bidang alamat yang sama, dalam kebanyakan set instruksi lebih kecil dibandingkan dengan panjang word. b. Pengalamatan Langsung Adalah pengalamatan yang sederhana dimana bidang alamat terdiri dari alamat efektif operand : EA = A Teknik ini umum digunakan pada generasi awal komputer. Teknik ini memerlukan hanya satu acuan memori dan tidak ada kalkulasi khusus. Pembatasan yang jelas adalah bahwa teknik ini memberikan hanya sebuah ruang alamat terbatas. c. Pengalamatan Tidak langsung Panjang bidang alamat pada umumnya kurang dari panjang word sehingga membatasi cakupan alamat. Penyelesaiannya adalah mempunyai bidang alamat yang mengacu pada alamat word dalam memori, yang pada gilirannya terdiri dari 56 sepanjang alamat operand. Pengalamatan ini dikenal dengan pengalamatan tidak langsung : EA = (A) Tanda kurung di gunakan untuk diinterpretasikan sebagai arti yang terdiri dari. Keuntungan yang jelas nyata dari pendekatan ini adalah bahwa untuk panjang word N, suatu ruang alamat 2N kini tersedia. Kerugiannya adalah bahwa eksekusi instruksi memerlukan dua acuan memori untuk mengambil operand tersebut; satu untuk mendapatkan alamatnya dan kedua untuk mendapatkan nilainya. Meskipun jumlah word yang dapat dialamatikini sama dengan 2N, jumlah alamat efektif berbeda yang dapat diacu pada sembarang waktu yang dibatasi pada 2 K, dimana K adalahpanjang bidang alamat. d. Pengalamatan Register Pengalamatan register sama dengan pengalamatan langsung. Perbedaannya adalah bidang alamat mengacu pada register dari pada sebagai alamat memori utama : EA = R 57 Secara umum bidang alamat yang mengacu pada register akan mempunyai 3-5 bit, sehingga total register bertujuan umum dapat diacu dari 8 sampai 32. Keuntungan pengalamatan register : 1. Memerlukan bidang alamat yang kecil dalam instruksi. 2. Tidak diperlukan acuan memori, karena waktu akses memori untuk register internal bagi CPU sangat sedikit dibanding dengan alamat memori utama. Kerugian pengalamatan register adalah ruang alamat sangat dibatasi. Jika pengalamatan register digunakan secara penuh dalam set instruksi, maka hal ini mengimplementasikan bahwa register CPU akan digunakan secara penuh. Karena terbatasnya beberapa bilangan register dibandingkan lokasi memori utama, penggunaannya pada mode ini membuat pengertiannya hanya jika register bekerja secara efisien. Jika setiap operand dibawa ke dalam register memori utama, beroperasi sekali, maka kembali ke memori utama, maka langkah antara tidak perlu ditambahkan. Jika operand pada register sisanya yang digunakan untuk berbagai operasi, maka penyimpanan riil dicapai. Hal ini sampai ke pemrogram 58 untuk memutuskan nilai-nilai mana yang harus berada dalam register dan yang harus disimpan pada memori utama. e. Pengalamatan Register tidak langsung Pengalamatan register tidak langsung dapat disamakan dengan pengalamatan tidak langsung. Perbedaannya adalah apakah bidang alamat mengacu ke lokasi memori atau register. Jadi untuk alamat register tidak langsung: EA = (R). Keuntungan dan pembatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung. Pada kedua kasus, pembatasan ruang alamat dari bidang alamat diatasi dengan pemberian bidang tersebut mengacu pada lokasi panjang word yang berisi alamat. Sebagai tambahan, register pengalamatan tidak langsung menggunakan satu lebih sedikit acuan memori dibanding pengalamatan tidak langsung. f. Pengalamatan Pengganti Mode pengalamatan yang sangat handal diperoleh dengan langsung mengkombinasikan dan register kemampuan pengalamatan pengalamatan tidak langsung. Mekanisme ini adalah sebagai pengalamatan pengganti : 59 EA = A+(R) Pengalamatan pengganti memerlukan instruksi yang mempunyai dua bidang alamat yang salah satunya eksplisit. Nilainya terdiri dari satu bidang alamat (nilai = A) digunakan secara langsung. Bidang alamat yang lain, atau opcode yang ditujukan pada acuan implisit, mengacu pada register yang terdiri dari penambahan ke A untuk menghasilkan alamat efektif. Ada 3 penggunaan umum terhadap pengalamatan pengganti : 1. Pengalamatan relatif. 2. Pengalamatan register dasar. 3. Peng-indeks-an Pada pengalamatan relatif, register diacu secara implisit adalah pencacah program (PC). Alamat instruksi tertentu ditambahkan ke bidang alamat untuk menghasilkan EA. Secara umum bidang alamat diperlakukan sebagai bilangan komplemen dua untuk operasi ini. Jadi alamat efektif merupakan penggantian relatif dengan alamat instruksi tersebut. 60 Pengalamatan register dasar adalah register yang diacu berisi alamat memori dan bidang alamat berisi penggantian dari alamat tersebut. Acuan register dapat berupa eksplisit atau implisit. Pengalamatan register dasar juga memanfaatkan lokalitas acuan memori. Pada peng-indeks-an, acuan bidang alamat suatu alamat memori utama, dan register yang diacu berisi penggantian positif dari alamat tersebut. Penggunaannya hanya kebalikan dari interpretasi untuk pengalamatan register dasar. Bidang alamat dianggap sebagai alamat memori dalam peng-indeksan, secara umum terdiri dari lebih banyak bit dibanding dengan bidang alamat pada instruksi register dasar yang dapat diperbandingkan. Penggunaan pengindek-an yang penting adalah memberikan mekanisme yang efisien untuk pembentukan operasi yang berulang-ulang. g. Pengalamatan Stack Stack adalah sekumpulan elemen yang berurutan, hanya satu elemen saja yang dapat diakses pada suatu saat. Titik akses disebut sebagai puncak (top) stack. Elemen hanya dapat ditambahkan atau dihapus dari puncak stack. Stack dikenal juga dengan antrian last-in-first-out (LIFO). 61 Stack merupakan blok lokasi yang dipesan. Materi ditambahkan ke puncak stack sehingga disetiap waktu blok secara parsial diisi. Mode pengalamatan stack merupakan bentuk implikasi pengalamatan. Instruksi-instruksi mesin tidak perlu meliputi acuan memori tetapi secara implisit beroperasi diatas stack tersebut. Tabel 6 Mode Pengalamatan 62 Gambar 21 Mode-mode Pengalamatan Bentuk-bentuk instruksi Suatu bentuk instruksi mendefinisikan layout bit instruksi dalam kaitannya dengan bagian utamanya. Suatu bentuk instruksi harus meliputi sebuah opcode dan secara 63 implisit /eksplisit, operand nol atau lebih. Masing-masing operand eksplisit diacu dengan menggunakan salah satu mode pengalamatan. Secara implisit/eksplisit, bentuk harus mengindikasikan adanya mode pengalamatan untuk masingmasing operand. Untuk kebanyakan set instruksi digunakan bentuk instruksi lebih dari satu. Panjang Instruksi Hal yang mendasar dalam merancang adalah panjang bentuk instruksi. Karena dipengaruhi oleh kapasitas memori, organisasi memori, struktur bus, kompleksitas CPU dan kecepatan CPU. Keputusan ini akan menentukan kesempurnaan dan fleksibilitas dari mesin. Kerugiannya adalah antara keinginan untuk repertoir instruksi yang handal dan kebutuhan untuk menyimpan ruang. Pemrogram menginginkan opcode yang lebih, operand yang lebih, mode pengalamatan yang lebih dan cakupan alamat yang lebih besar. Opcode dan operand yang lebih membuat lebih mudah bagi pemrogram karena program yang lebih pendek dapat ditulis untuk memenuhi tugas yang diberikan. Dengan cara yang sama, mode pengalamatan yang lebih memberikan fleksibilitas lebih besar bagi pemrogram dalam pengimplementasian fungsi tertentu. 64 Opcode, operand, mode pengalamatan dan cakupan alamat memerlukan bit dan mendorong dalam arah yang panjang instruksinya lebih panjang. Instruksi yang lebih panjang bisa saja tidak digunakan. Seperti sebuah instruksi 64 bit menduduki dua kali lebih ruang instruksi 32 bit, tetapi manfaatnya kurang dari dua kali. Selain kekurangan yang mendasar ini, terdapat pertimbangan lain. Salah satu panjang instruksi harus sama dengan panjang transfer memori (pada sistem bus, panjang bus data) atau panjang instruksi harus berbeda. Cara lainnya, kita tidak akan mendapatkan kesatuan bilangan instruksi selama siklus pengambilan. Sebuah pertimbangan yang terkait adalah kelajuan transfer memori. Kelajuan ini belum mengikuti peningkatan kecepatan prosesor. Sehingga memori dapat menjadi suatu penghambat jika prosesor dapat mengeksekusi instruksi lebih cepat dari pada memori dapat mengambilnya. Satu solusi untuk masalah ini adalah dengan menggunakan memori cache, cara lain adalah dengan menggunakan instruksi yang lebih pendek. Sehingga instruksi 16 bit dapat diambil dua kali kecepatan instruksi 32 bit tetapi mungkin dapat dieksekusi lebih lambat dari dua kali. Panjang instruksi seharusnya terdiri dari berbagai panjang karakter yang umumnya adalah 8 bit. 65 Alokasi Bit Untuk panjang instruksi yang diberikan terdapat kerugian antara banyaknya opcode dan kemampuan pengalamatan. Opcode yang lebih jelas berarti bit yang lebih banyak dalam bidang opcode. Untuk bentuk instruksi dari panjang yang diberikan, ini mengurangi banyaknya bit yang tersedia untuk pengalamatan. Terdapat satu perbaikan yang menarik terhadap kerugian ini, dan itu digunakan opcode panjang variabel. Pada pendekatan ini terdapat panjang opcode minimum, tetapi untuk beberapa opcode, operasi tambahan mungkin dispesifikasikan dengan menggunakan bit tambahan pada instruksi. Untuk instruksi panjang tetap, hal ini meninggalkan lebih sedikit bit untuk pengalamatan. Sehingga fitur ini digunakan untuk instruksi yang memerlukan lebih sedikit operand/ sedikit lebih andal pengalamatan. Faktor saling berhubungan berikut menentukan penggunaan pengalamatan bit : Jumlah mode pengalamatan : Mode pengalamatan dapat diindikasikan secara implisit. Contoh ; opcode tertentu mungkin selalu meminta untuk peng-indeksan. Pada kasus yang lain mode pengalamatan harus eksplisit dan satu atau lebih bit mode akan diperlukan. 66 Jumlah operand : alamat yang sedikit dapat dibuat bagi program lebih panjang. Instruksi umum pada mesin saat ini memberikan dua operand. Masingmasing alamat operand pada instruksi mungkin memerlukan indikator mode, atau penggunaan indikator mode dapat dibatasi pada hanya satu bidang alamat saja. Register versus memori : sebuah mesin harus mempunyai register sehingga data dapat dibawa ke dalam CPU. Dengan register tunggal terlihat oleh pengguna (yg umum disebut akumulator), satu alamat operand adalah implisit dan menggunakan bukan bit instruksi. Bagaimanapun pemrograman register tunggal memerlukan banyak instruksi. Sama dengan berbagai register, hanya sedikit bit yang diperlukan untuk menspesifikasikan register. Semakin register tersebut dapat digunakan untuk acuan operand, lebih sedikit bit yang diperlukan. Sejumlah penelitian mengindikasikan bahwa total register yang terlihat oleh pengguna adalah 8-32. Sedangakan untuk arsitektur yang kontemporervmempunyai sedikitnya 32 register. 67 Jumlah set register : Mesin yang paling kontemporer mempunyai satu register bertujuan umum, pada umumnya dengan 32 register atau lebih dalam satu set. Register ini untuk menyimpan data dan alamat untuk pengalamatan penggantian. Beberapa arsitektur (pentium), mempunyai dua set khusus atau lebih. Keuntungan dengan pendekatan ini, untuk bilangan register tetap pemisahan fungsional memerlukan lebih sedikit bit untuk digunakan dalam instruksi tersebut. Contohnya; dengan dua set 8 register, hanya diperlukan 3 bit untuk mengidentifikasi register, opcode secara implisit akan menentukan set register yang diacu. Cakupan alamat : Untuk alamat yang mengacu memori, cakupan alamat yang dapat diacu dihubungkan dengan jumlah bit alamat. Karena pembebanan ini sebuah pembatasan, pengalamatan langsung jarang digunakan. Pada pengalamatan penggantian, cakupan dibuka sampai ke panjang register alamat. Meski demikian , hal ini masih mengizinkan penggantian yang agak besar dari alamat register, yang memerlukan secara relatif sejumlah besar bit alamat pada instruksi. 68 Granularitas alamat : Untuk alamat yang mengacu pada memori daripada register, faktor lainnya adalah granularitas pengalamatan. Pada sistem dengan word 16 atau 32 bit, alamat dapat mengacu word atau byte pada pilihan perancang. Hal ini membuat perancang berhadapan dengan sejumlah besar faktor untuk mempertimbangkan dan menyeimbangkan. Penggunaan set asumsi konsistens, tidak ada perbedaan penting dalam ruang kode atau waktu eksekusi. PDP-8 PDP-8 adalah salah satu rancangan instruksi paling sederhana untuk komputer bertujuan umum. PDP-8 menggunakan instruksi 12 bit dan beroperasi pada word 12 bit. Terdapat suatu register bertujuam umum tunggal, yaitu pengalamatan akumulator. tidak PDP-8 langsung, mendukung pengalamatan penggantidan peng-indeks-an. Bentuk instruksinya juga efisien. Dengan menggunakan opcode perluasan, mendukung kira-kira 35 instruksi. Dengan batasan panjang instruksi 12-bit. 69 PDP-10 PDP-10 dirancang untuk sistem berbagi waktu skala besar dengan penekanan pada membuat sistem mudah bagi program. Hal ini berbeda jauh dengan set instruksi PDP-8. Diantara prinsip rancangan yang telah dilakukan pada perancangan set instruksi adalah: 1. Orthogonalitas Merupakan prinsip dengan dua variabel independen satu dengan lainnya. Dalam konteks set instruksi, istilah ini mengindikasikan bahwa elemen-elemen instruksi lain tidak terikat pada opcode. Perancang PDP-10 menggunakan istilah untuk menguraikan fakta bahwa alamat selalu dihitung dengan cara yang sama, tidak terikat pada opcode. Ini berlawanan dengan mesin lainnya dimana mode alamat kadang-kadang tergantung secara implisit pada operator yang sedang digunakan. 2. Kelengkapan Masing-masing jenis data aritmatika mempunyai set operasi lengkap dan identik. 70 Pengalamatan langsung, Basis ditambah pengalamatan penggantian tempat dimana organisasi memori membebankan pada pemrogram, dihindar menuju ke pengalamatan langsung. PDP-10 mempunyai panjang word 36 bit dan panjang instruksi 36 bit. Tidak perlu melakukan apapun untuk mendapatkan opcode yang lebih, bidang opcode 9 bit sudah lebih dari cukup. Bidang alamat 18 bit sehingga pengalamatan dilakukan secara langsung. Kapasitas memori lebih besar dari 218 yang diberikan indirection. Peng-indeksan diberikan untuk manipulasi tabel danprogram secara berulang dengan bidang operand 18 bit. Instruksi-instruksi panjang variabel Pengalamatan dapat lebih fleksibel dengan berbagai macam kombinasi register dan acuan memori ditambah mode pengalamatan. Dengan instruksi panjang variabel, variasi banyak ini dapat diberikan secara efisien dan lengkap. Biaya prinsip besar instruksi panjang variabel adalah suatu peningkatan dalam kompleksitas CPU. Turunnya harga perangkat keras, penggunaan pemrograman mikro dan peningkatan rancangan umum CPU dalam mempunyai pemahaman semua prinsip-prinsip dukungan dalam 71 penurunan biaya. Penggunaan instruksi panjang variabel tidak membuang keinginannya terhadap pembuatan semua panjang instruksi secara integral berhubungan dengan panjang word. Karena CPU tidak mengetahui panjang instruksi berikutnya untuk diambil, strategi umumnya adalah mengambil sejumlah byte atau word sama dengan sedikitnya instruksi yang mungkin terpanjang. Artinya bahwa kadangkadang diambil berbagai perintah. PDP-11 PDP-11 dirancang untuk memberikan set instruksi yang handal dan fleksibel dalam batasan komputer mini 16 bit. Rancangan PDP-11 menjalankan set 8 register bertujuan umum 16 bit. Dua register ini mempunyai arti tambahan; satu digunakan sebagai pointer stack untuk operasi stack tujuan khusus, dan salah satunya digunakan sebagai pencacah program yang terdiri dari alamat instruksi berikutnya. Instruksi-instruksi PDP-11 pada umumnya satu word (16 bit) panjang. Untuk beberapa instruksi, satu atau dua alamat memori ditambahkan sehingga instruksi 32 bit dan 48 bit manjedi bagian repertoir. Hal ini 72 memberikan fleksibilitas lebih lanjut dalam pengalamatan. VAX Umumnya arsitektur memberikan relatif lebih sedikit jumlah bentuk instruksi tetap. Ini dapat menyebabkan dua permasalahan bagi pemrogram. Pertama, mode pengalamatan dan opcode tidak orthogonal. Sebagai contoh, untuk operasi yang diberikan, satu operand harus datang dari register dan lainnya dari memori, atau kedua-duanya dari register dan seterusnya. Kedua, hanya jumlah operand terbatas yang dapat diakomodasikan, secara umum sampai kedua atau tiga. Karena beberapa operasi tidak terpisahkan memerlukan operand yang lebih, berbagai macam strategi harus digunakan untuk mencapai hasil yang diinginkandengan menggunakan dua instruksi atau lebih. 73 C. Rangkuman 1. set Instruksi merupakan kumpulan dari instruksiinstruksi yang berbeda yang dapat dijalankan oleh CPU. 2. Dua bagian utama Arsitektur Komputer yaitu ISA dan HAS. ISA meliputi spesifikasi yang menentukan bagaimana programmer bahasa mesin akan berinteraksi dengan komputer. ISA menentukan sifat komputasional komputer. HSA berkaitan dengan subsistem hardware utama komputer (CPU, sistem memori dan IO). HSA mencakup desain logis dan organisasi arus data dari subsistem. 3. Operasi CPU ditentukan oleh instruksi yang dieksekusinya. Instruksi-instruksi ini di sebut sebagai instruksi mesin (machine Instructions) atau instruksi komputer (Computer Instructions). Set instruksi dari instruksi-instruksi yang berbeda yang dapat dieksekusi oleh CPU dikenal sebagai set instruksi CPU. 4. Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi. Terdapat langkah-langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin. Elemenelemen tersebut adalah : 74 Operation Code (opcode) : Menentukan operasi yang akan dilaksanakan. Operasi ini dispesifikasikan oleh sebuah kode biner, dikenal sebagai kode operasi atau opcode. Source Operand Reference : Merupakan input bagi operasi yang akan dilaksanakan. Operasi dapat melibatkan satu atau lebih operand sumber, operand merupakan input bagi operasi. Result Operand Reference : Merupakan hasil dari operasi yang dilaksanakan. Next instruction Reference : Memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah menyelesaikan eksekusi suatu instruksi. 5. Penggolongan jenis operasi yang umum adalah : - 6. Data Transfer Aritmatic Logical Convension - I/O - System control - Transfer control Teknik pengalamatan yang umum adalah : Segera Langsung Tidak Langsung 75 Register Register tidak langsung Pengganti Stack 7. Suatu bentuk instruksi mendefinisikan layout bit instruksi dalam kaitannya dengan bagian utamanya. Suatu bentuk instruksi harus meliputi sebuah opcode dan secara implisit /eksplisit, operand nol atau lebih. 76 D. Latihan soal 1. Sebutkan dan jelaskan dua bagian utama Arsitektur Komputer! 2. Jelaskan elemen-elemen pada set instruksi! 3. Opcodes direpresentasikan dalam bentuk singkatan yang disebut mnemonics, yang menunjukkan operasi yang akan dilaksanakan. Tuliskan 3 contoh mnemonics! 4. Sebutkan jenis-jenis instruksi! 5. Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya. Jelaskan berapa jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi! 77 BAB IV PARALEL PROSESOR A. Standar Kompetensi dan Indikator Standar Kompetensi Mampu mengaplikasikan paralel prosesor secara umum Indikator Mahasiswa dapat menjelaskan kategori sistem komputer dan keterkaitannnya antara satu dengan lain. B. Materi 1. Pembahasan Awal Salah satu cara untuk meningkatkan kinerja sistem komputer adalah dengan menggunakan berbagai prosesor yang dapat mengeksekusi secara paralel untuk membantu kerja pemuatan yang ada. Rancangan prosesor paralel merupakan pengembangan terakhir dari ilmu pengetahuan komputer yang didasari oleh kebutuhan menyelesaikan beberapa instruksi secara paralel dalam waktu yang bersamaan dengan mengurangi masalah ketergantungan data, prosedural, unit fungsional, output dan anti ketergantungan yang menyebabkan suatu instruksi terhenti atau harus menunggu instruksi lainnya selesai untuk dapat diproses. Operasi seperti ini hanya dapat dilakukan oleh komputer yang memiliki dua atau lebih unit prosesor (CPU) yang terhubung melalui beberapa jaringan koneksitas. Paralel komputer dapat dianalogikan sebagai suatu Bank dimana teller merupakan prosesor paralel dan transaksi dengan konsumen sebagai task yang akan diproses. Pada organisasi paralel, berbagai unit pengolahan saling bekerja sama untuk melaksanakan aplikas-aplikasi. Pelaksanaan instruksi dilakukan pada waktu yang bersamaan. Jika sebuah prosesor superskalar memanfaatkan peluang pelaksanaan yang paralel pada tingkatan instruksi, maka pada suatu organisasi pengolahan paralel akan mencari tingkatan paralel yang lebih kasar, yaitu eksekusi yang memungkinkan suatu proses dilaksanakan oleh multipel prosesor secara paralel dan saling bekerja sama. Dua organisasi multipel prosesor yang umum adalah multipel prosesor simetris (SMPS) dan Cluster, dan kemudian adapula sistem NUMA yaitu sistem dengan akses memori yang tidak seragam. Secara tradisional, komputer dipandang sebagai mesin yang sekuensial. Sebagian besar bahasa pemograman komputer mengharuskan pemrogram untuk menspesifikasikan algoritma sebagai rangkaian instruksi. 79 Prosesor-prosesor mengeksekusi program dengan mengeksekusi instruksi mesin secara berurutan dan satu persatu. Masing-masing instruksi dieksekusi dalam rangkaian operasi (operasi pengambilan, pelaksanaan dan penyimpanan hasil). Cara demikian tidak seluruhnya benar. Pada tingkat operasi mikro, beberapa sinyal kontrol dibuat dalam waktu yang bersamaan. Pipelining instruksi, paling tidak yang menyangkut operasi pengambilan dan instruksi telah berlangsung lama. Kedua ini merupakan contoh fungsi yang paralel. Dengan semakin majunya teknologi komputer dan dengan semakin murahnya harga hardware, perancang komputer mencari kemungkinan penggunaan paralelisme yang lebih banyak. Gunanya untuk meningkatkan kinerja dan sebagian lagi untuk meningkatkan reliabilitas. 2. Organisasi berbagai Prosesor Jenis-jenis Sistem Prosesor paralel Sebuah taksonomi yang pertama kali diperkenalkan oleh Flynn masih merupakan cara yang paling umum dari penggolongan sistem-sistem dengan kemampuan pengolahan 80 yang paralel. Menurutnya kategori sistem komputer berdasarkan strukturnya adalah: SISD (Single Instruction Stream, Single Data Stream) Merupakan sebuah prosesor tunggal mengeksekusi arus instruksi tunggal untuk beroperasi pada data yang disimpan pada memori tunggal. Disebut juga dengan Uni-prosesor. Prosesor tunggal berada pada kategori ini. SIMD (Single Instruction Stream, Multiple Data Stream) Sebuah mesin instruksi mengatur eksekusi dari sejumlah elemen pengolahan pada sebuah basis secara simultan. Terdapat sejumlah elemen proses dimana masingmasing elemen memiliki data memori yang berhubungan, sehingga masing-masing instruksi dieksekusi pada sebuah rangkaian data (set data) yang berbeda dengan prosesor yang berbeda. Prosesor vektor dan prosesor array termasuk pada kategori ini. SIMD merupakan salah satu bentuk dari paralel sinkron yang memproses satu instruksi dengan banyak prosesor elemen pada waktu yang sama. Di dalam paradigma SIMD yang paling penting bukanlah kontrol prosesor melainkan 81 data. Data diproses oleh masing-masing elemen pemroses yang berbeda dari satu prosesor ke prosesor lainnya. Sehingga satu program dan satu kontrol unit bekerja secara bersamaan pada kumpulan data yang berbeda. Untuk memproses data secara efisien, SIMD membuat pengaturan proses menjadi dua phase, yaitu : pertama memilah dan mendistribusikan data (data partitioning and distribution) dan yang kedua memproses data secara paralel (data paralel prosesing). Jadi efisiensi akan tergantung kepada banyaknya permasalahan yang harus diselesaikan secara paralel. Cara terbaik dalam menggunakan SIMD adalah dengan mencocokan banyaknya permasalahan dengan banyaknya prosesor paralel. Banyaknya permasalahan berarti seberapa banyak jumlah data yang akan di perbaharui dan banyaknya prosesor paralel berarti jumlah prosesor yang tersedia. Jadi jika permasalahanya sebanding dengan prosesor paralel maka kecepatan tertinggi dapat terjadi, sebaliknya apabila permasalahan hanya satu dengan prosesor paralel yang banyak menyebabkan sistem SIMD menjadi tidak efektif. SIMD sering diidentikan sebagai permasalahan paralel yang sederhana, padahal tidaklah benar karena paradigma SIMD sangat berguna dalam menyelesaikan permasalahan yang memiliki beberapa data yang perlu diperbaharui secara 82 serempak. Khususnya sangat berguna untuk perhitungan numerik biasa seperti perhitungan matrix dan vektor. MISD (Multiple Instruction Stream, Single Data Stream) Urutan data yang diorganisir dipancarkan ke serangkaian prosesor, masing-masing prosesor mengeksekusi urutan instruksi yang berbeda. Struktur ini belum diimplementasikan secara baik. MIMD (Multiple Instruction Stream, Multiple Data Stream) Serangkaian set prosesor mengeksekusi serangkaian instruksi yang berbeda secara semultan pada rangkaian set data yang berbeda. SMP, Cluster dan siste NUMA berada pada kategori ini. MIMD berarti banyak prosesor yang dapat mengeksekusi instruksi dan data yang berbeda-beda secara bersamaan. Lebih lanjut sebagai bagian dari komputer, prosesor memiliki otonom yang besar dalam melakukan operasinya. Secara umum MIMD digunakan ketika banyak permasalahan heterogen yang harus diselesaikan pada waktu yang sama. MIMD sangat baik digunakan untuk 83 meneyelesaikan permasalahan yang besar, sebab melebihi data dan kontrol yang harus dilewatkan dari task ke task. Sebagai contoh dalam analogi sebuah Bank, MIMD akan menampilkan kerja terbaiknya ketika masing-masing teller memiliki beberapa transaksi yang harus diselesaikan satu persatu tanpa ada pembuangan waktu dan penghentian dari beberapa bagian transaksi. Tetapi pada sistem MIMD akan dibingungkan oleh aliran data (dataflow) paralel, karena aliran data tersebut harus dikerjakan oleh mesin MIMD secara terus menerus. Pertama bahwa tiap-tiap prosesor bekerja secara independen kecuali untuk sistem sinkoron tertentu harus menunggu. Prosesor menjalankan task yang pendek sebagai contoh selesainya mengevaluasi vektor satu elemen sebelum prosesor memproses task lebih jauh. Tentu saja prosesor dalam waktu yang singkat dapat melakukan beberapa pekerjaan yang berbeda, seperti waiting, comparing dan sending data. Kedua, bahwa pada program paralel untuk menyelesaikan suatu task baik jumlahnya diketahui ataupun tidak, menggunakan prosesor yang jumlahnya tidak diketahui pula. Hal tersebut menggambarkan dua ciri mendasar dari sistem MIMD, yaitu : 84 1. Kelamahan pada sentralisasi dan mekanisme sistem sinkron secara umum, dan 2. Penggeneralisasian task yang heterogen yang dioperasikan secara bersamaan, contohnya dalam memproses operasi yang berbeda dengan data berbeda dan dalam jangka waktu yang berbeda pula. Secara umum MIMD meliputi paradigma reduksi/dataflow. Pada kenyataannya juga secara umum meliputi SIMD, sebab kita dapat menemui sifat SIMD pada sebagian sifat MIMD. Sehingga menghasilkan Kinerja akhir dari simulasi satu bentuk mesin dengan bentuk lainnya. Untuk menggabungkannya, mesin MIMD mengubah SIMD prosesor dimana masing-masing prosesornya mampu mengerjakan banyak task dari aplikasi yang berbeda pada waktu yang sama Dengan organisasi MIMD , prosesor merupakan tujuan umum dimana masing-masing prosesor dapat memproses semua instruksi yang penting untuk menampilkan transformasi data yang sesuai. MIMD dapat dibagi lagi berdasarkan cara komunikasi prosesornya. Apabila prosesor – prosesor memiliki memori yang sama, maka masing-masing prosesor mengakses program-program dan data yang disimpan dalam memori bersama, dan prosesor 85 berkomunikasi satu sama lain melalui memori tersebut. Bentuk umum dari sistem ini adalah multiprosesor simetris (SMP). Multipel prosesor memberi satu atau sekelompok memori dengan mekanisme bus yang diberikan atau interkoneksi lainnya. Salah satu ciri yang membedakan adalah waktu akses memori ke ruang memori manapun kirakira sama untuk masing-masing prosesor. Pengembangan yang terbaru adalah NUMA, yaitu organisaasi akses memori yang tidak seragam, seperti menurut Flynn bahwa waktu akses memori pada ruang yang berbeda dapat berbeda bila digunakan dengan prosesor NUMA. Kumpulan dari prosesor tunggal atau SMP dapat diinterkoneksi untuk membentuk sebuah cluster. Komunikasi antar komputer –komputer bisa melalui jalan yang tetap maupun melalui beberapa fasilitas jaringan. Gambar 22 Taksonomi Arsitektur Paralel Prosesor 86 Organisasi Paralel Pada struktur SISD ada beberapa macam unit control yang menyediakan suatu arus instruksi (IS) ke sebuah unit pengolahan (PU). Unit pengolahan mengoperasikan arus data tunggal (DS) dari suatu unit memori (MU). Gambar 23 Arus instruksi ke sebuah PU Pada SIMD, masih terdapat sebuah unit control tunggal yang sekarang memberi arus instruksi tunggal ke PU multipel. Masing-masing PU memiliki memorinya sendiri atau dapat juga suatu memori bersama. Gambar 24 Arus instruksi tunggal ke PU multiple 87 Note : CU = Control Unit IS = Instruction Stream (arus instruksi) PU = Processing Unit DS = Data Stream (arus Data) MU = Memory unit LM = Local Memory Pada MIMD terdapat berbagai unit control yang masing-masing memberi arus instruksi yang terpisah ke unit pengolahan sendiri. MIMD dapat berupa multiprosesor yang berbagi atau dapat berupa multi komputer memori terdistribusi, seperti pada gambar dibawah berikut. 88 Gambar 25 MIMD share memori dan MIMD distributed memori Permasalahan-permasalahan perancangan yang berhubungan dengan SMPs, Clusters dan NUMA merupakan permasalahan yang kompleks karena melibatkan adanya permasalahan yang berhubungan dengan organisasi fisik, struktur-struktur interkoneksi, komunikasi interprosesor, rancangan sistem operasi dan teknik-teknik aplikasi software. 89 Multiprosesor Simetris Hampir semua pengguna tunggal komputer pribadi dan sebagian besar workstation menggunakan mikro prosesor tunggal yang bertujuan umum. Dengan meningkatnya permintaan kinerja dan dengan menurunnya biaya mikro prosesor, diperkenalkan sistem dengan sebuah organisasi SMP. Istilah SMP mengacu pada sebuah arsitektur komputer hardware dan sifat operasi yang mencerminkan arsitektur tersebut. Sebuah SMP dapat didefinisikan sebagai sistem komputer yang berdiri sendiri dengan karakteristik sbb : 1. Mengandung dua atau lebih prosesor yang serupa dengan kemampuan setara. 2. Prosesor-prosesor tersebut berbagi memori utama dan fasilitas I/O dan diinterkoneksikan oleh sebuah bus atau skema hubungan internal lainnya, seperti waktu akses memori yang kira-kira sama untuk setiap prosesor. 3. Semua prosesor berbagi akses ke alat I/O, baik melalui saluran yang sama maupun melalui saluran berbeda yang menyediakan jalan ke perangkat yang sama. 90 4. semua prosesor dapat menampilakn fungsi-fungsi yang sama. 5. Sistem dikendalikan oleh sistem operasi yang terintegrasi yang menyediakan interaksi antara prosesor - prosesor dan program-programnya pada tingkatan pekerjaan, tugas, file dan elemen data. Sistem operasi SMP menjadwalkan proses-proses atau thread melalui semua prosesor. Sebuah organisasi SMP memiliki sejumlah keuntungan yang potensial atas sebuah organisasi prosesor tunggal yang mencakup hal-hal berikut : Kinerja : Jika pekerjaan yang dilaksanakan oleh komputer dapat diorganisasikan sehingga beberapa bagian pekerjaan dapat dilakukan secara paralel, maka sebuah sistem dengan prosesor multipel akan menghasilkan kinerja yang lebih besar daripada bila menggunakan prosesor tunggal yang memiliki jenis yang sama. Ketersediaan : Pada multiprosesor simetris, karena semua prosesor dapat menampilkan fungsi-fungsi yang sama, kesalahan dari prosesor tunggal tidak membuat mesin tersebut 91 berhenti melainkan sistem dapat berlanjut ke fungsi pada kinerja yang dikurangi. Pertumbuhan yang meningkat : Seorang pemakai dapat meningkat kinerja sebuah sistem dengan menambahkan sebuah prosesor tambahan. Pensaklaran : Penjual dapat menawarkan kisaran produk dengan harga dan karakteristik kinerja yang berbeda berdasarkan jumlah prosesor-prosesor yang diatur pada sistem. Ciri yang menarik dari SMP adalah adanya transparansi bagi pengguna mengenai keberadaan prosesor-prosesor multipel. Sistem operasi menjaga penjadwalan thread atau proses-proses pada prosesor-prosesor individual dan menjaga sinkronisasi antar prosesor. 3. Organisasi Multiprosesor Pada organisasi sistem multiprosesor terdapat dua prosesor atau lebih. Setiap prosesor adalah self contained termasuk diantaranya unit control, ALU, register dan mungkin juga cache. Setiap prosesor memiliki akses ke 92 memori utama bersama dan perangkat-perangkat I/O dengan menggunakan beberapa bentuk mekanisme interkoneksi. Prosesor dapat berkomunikasi dengan yang lainnya melalui memori-memori. Sering kali memori diatur sedemikian rupa sehingga memungkinkan terjadinya sejumlah akses yang bersamaan ke blok-blok memori yang berlainan. Beberapa konfigurasi, prosesor juga mungkin memiliki memori utama dan saluran I/O sendiri selain sumber daya yang dapat dipakai bersama. Pendekatan organisatoris SMP dapat digolongkan sebagai berikut : Bus waktu bersama/bus umum (Time shared or common bus) Memori yang memiliki sejumlah port (Multiport memory) Unit kontrol pusat (Central control unit) Bus waktu bersama 93 Gambar 26 Unit control pusat Bus waktu bersama merupakan mekanisme pembentukan sistem multiprosesor yang paling sederhana. Struktur dan antarmukanya pada dasarnya adalah sama seperti untuk sistem prosesor tunggal yang menggunakan interkoneksi bus Bus terdiri dari saluran kontrol, alamat dan data. Untuk memungkinkan transfer DMA dari prosesor-prosesor I/O disediakan ciri-ciri sebagai berikut : Pengalamatan: Pengalamatan harus dapat membedakan modul-modul yang ada pada bus untuk menentukan sumber dan tujuan data. Arbitrasi: setiap modul I/O dapat berfungsi sebagai master pada waktu tertentu. Mekanisme disediakan untuk menentukan permintaan-permintaan yang 94 melakukan persaingan dalam memperoleh kontrol bus dengan menggunakan sejumlah teknik prioritas. Pembagian waktu: Bila sebuah modul sedang melakukan pengontrolan terhadap bus, maka modul modul lainnya di kunci dan bila perlu harus menahan operasi sampai akses bus diperoleh. Ciri-ciri ini secara langsung dapat digunakan pada konfigurasi multiprosesor. Saat ini terdapat prosesor jamak dan prosesor I/O yang berjumlah banyak yang semuanya berusaha untuk memperoleh akses ke sebuah modul memori atau lebih melalui bus. Organisasi bus memiliki beberapa keuntungan dibandingkan dengan pendekatan lainnya, yaitu : Kesederhanaan: Ini merupakan pendekatan organisasi multiprosesor yang paling sederhana. Antarmuka fisik dan logika pengalamatan, arbitrasi serta pembagian waktu seluruh prosesor tetap sama seperti pada prosesor tunggal. Fleksibilitas: Pada umumnya organisasi ini mudah dikembangkan dengan cara menambahkan prosesor yang lebih banyak ke bus. 95 Reliabilitas: Pada dasarnya bus merupakan medium pasif dan kegagalan suatu perangkat yang terhubung tidak akan menyebabkan kegagalan bagi sistem secara keseluruhan. Prosesor Prosesor Cache L1 Prosesor Cache L1 Cache L2 Cache L1 Cache L2 Cache L2 Shared bus Memori utama I/O Subsystem I/O Adapter I/O Adapter (Organisasi Multiprosesor Simetris) I/O Adapter Gambar 27 Organisasi Multiprosesor Simetris Kelemahan pada organisasi bus adalah dalam hal kinerja. Seluruh referensi memori dilewatkan melalui bus umum, sehingga kecepatan sistem dibatasi oleh siklus waktu. Untuk meningkatkan kinerja, maka setiap prosesor perlu dilengkapi dengan memori cache, hal ini akan mengurangi jumlah akses bus. Setiap cache lokal berisi suatu citra bagian memori, maka apabila suatu word diubah pada sebuah cache, perubahan ini menjadikan tidak sah word pada cache 96 lainnya. Untuk mencegah hal ini, prosesor lain harus diberitahu bahwa telah terjadi suatu update. Masalah ini dikenal dengan koherensi cache dan biasanya dialamatkan pada hardware daripada oleh sistem operasi. M1 M2 Mk P1 I/O1 Pn I/Om Memori Multiport Gambar 28 Memori Multiport Memori Multiport Pendekatan memori multiport memungkinkan akses modul-modul memori utama secara langsung dan independen oleh prosesor dan modul I/O. Metode yang digunakan untuk mengatasi konflik adalah dengan menetapkan prioritas yang permanen bagi semua port memori. Hanya diperlukan sedikit modifikasi prosesor atau modul I/O atau tidak sama sekali untuk mengakomodasi memori multiport. Pendekatan dibanding dengan memori multiport pendekatan bus lebih yang kompleks memerlukan 97 penambahan logika dalam jumlah banyak ke sistem memori. Pendekatan ini memberikan kinerja yang lebih baik karena setiap prosesor memiliki lintasan yang berdedikasi ke masing-masing modul memori. Kelebihan lainnya adalah memungkinkan untuk melakukan konfigurasi bagian memori sebagai ‘private’ bagi sebuah prosesor atau lebih dan atau bagi modul-modul I/O. Unit Kontrol pusat Unit kontrol pusat menyalurkan aliran data yang terpisah secara bolak-balik diantara modul-modul yang independen (prosesor, memori, I/O). Pengontrol dapat menyangga permintaan dan melakukan fungsi arbitrasi dan pewaktuan. Pengontrol juga melewatkan pesan-pesan status dan kontrol diantara prosesor-prosesor dan melakukan peringatan update mengkoordinasikan cache. Seluruh konfigurasi logika untuk multiprosesor dikonsentrasikan ke unit pusat. Hal ini memberikan fleksibilitas dan kemudahan interfacing pendekatan bus. Kelemahannya adalah unit kontrolnya cukup rumit dan merupakan penyebab terjadinya kemacetan bagi kinerja. Struktur unit kontrol pusat umum digunakan bagi sistem mainframe berprosesor jamak, seperti IBM S/370 yang berskala besar. 98 Suatu sistem operasi SMP mengatur prosesor dan sumber daya komputer lainnya sedemikian rupa sehingga pemakai merasa sistem operasi tunggal yang mengendalikan sumber daya sistem. Sistem operasi multiprosesor harus menyediakan semua fungsi sistem pemrograman dan ciri-ciri tambahan lainnya untuk mengakomodasikan berbagai prosesor. Kunci perancangan sistem operasi multiprosesor adalah sbb : Proses berlangsung secara bersamaan: Rutin SO perlu untuk dimasukkan kembali agar beberapa prosesor dapat bereksekusi pada kode IS secara bersamaan. Dengan berbagai prosesor yang mengeksekusi bagian SO yang sama atau berbeda. Penjadwalan: Prosesor apapun boleh melaksanakan penjadwalan. Penjadwalan harus menugaskan beberapa proses yang siap untuk prosesor yang tersedia. Sinkronisasi: Sinkronisasi adalah sebuah fasilitas yang membuat adanya pengeluaran timbal-balik dan pengurutan peristiwa. Manajemen memori: 99 Manajemen memori pada suatu multiprosesor harus berhubungan dengan semua masukan yang ada pada mesin uniprocessor. Mekanisme penomoran halaman pada berbagai multiprosesor yang berbeda harus dikoordinasikan untuk mendorong terjadinya konsistensi pada saat beberapa prosesor membagi sebuah halaman atau bagian dan untuk memutuskan pemindahan halaman. Reliabilitas dan toleransi kesalahan: Sistem operasi harus dapat menurunkan terjadinya kegagalan prosesor. Penjadwalan dan bagian lain sistem operasi harus mengenali hilangnya suatu prosesor dan mengatur kembali tabel manajemen dengan seksama. 4. Mainframe SMP Kebanyakan PC dan stasiun kerja SMP menggunakan strategi interkoneksi satu bus. Alternatif lain digunakan implementasi terbaru dari kelompok mainframe IBM S/390. Sistem ini memiliki prosesor tunggal dengan jangkauan satu kartu memori utama untuk sistem yang tinggi dengan sepuluh prosesor dan 4 kartu memori. Konfigurasi mencakup satu atau dua prosesor tambahan yang bertindak sebagai prosesor 100 I/O. Gambaran seluruh organisasi SMP S/390 tampak pada gambar di bawah berikut. Gambar 29 Gambaran seluruh organisasi SMP S/390 Konfigurasi dari komponen-komponennya adalah sebagai berikut: Unit Prosesor (PU) : Menggunakan mikroprosesor CISC yang sering menggunakan instruksi hardwired(sebagaian firmware). Masing-masing PU meliputi cache 64 KB L1 agar mencapai akses satu siklus. Cache L2 : Tiap Cache L2 384 KB diatur pada cluster berpasangan dan mensuport 3 PU. 101 Adapter jaringan Bus switching (BSN) : BSN menginterkoneksi cache L2 dan memori utama, juga cache L3 dengan kapasitas 2 MB. Kartu Memori : Tiap kartu memiliki 8 GB memori dengan total kapasitasnya 32 GB. Koherensi Cache dan Protokol Mesi Pada sistem koherensi modern tiap prosesor memiliki satu atau lebih tingkatan cache. Hal ini guna memperoleh kinerja yang tinggi. Namun hal ini menimbulkan masalah yang dikenal dengan koherensi cache. Inti masalah tersebut adalah sejumlah salinan data yang sama dapat berada pada cache yang berbeda pada waktu yang bersamaan, dan apabila prosesor diberikan kebebasan untuk mengupdate salinannya sendiri maka akan terjadi tidak konsistensi pada memori. Ada dua kebijakan menulis yaitu : - Menulis kembali; dimana operasi menulis biasanya dibuat hanya ke cache, memori utama hanya diupdate pada saat cache yang koheren dibersihkan dari cache. - Menulis melalui; dimana semua operasi menulis dibuat ke memori utama dan cache untuk memastikan bahwa memori utama selalu valid. 102 Kebijakan menulis kembali dapat menyebabkan adanya ketidak konsistenan. Bila dua cache memiliki baris yang sama dan baris tersebut diupdate pada satu cache, maka cache lain akan memiliki nilai yang tidak sah. Protokol koherensi cache bertujuan untuk membiarkan beberapa variabel lokal untuk bisa masuk pada cache yang cocok. Koherensi cache dibagi atas pendekatan software dan pendekatan hardware. Teknik koherensi cache software berusaha untuk menghindarkan kebutuhan akan hardware tambahan dan logika dengan mengandalkan kompiler dan sistem operasi untuk mengatasi masalah. Masalah penting akan dipindahkan dari hardware ke software. Keputusan yang diambil menyebabkan ketidakefisienan penggunaan cache. Pada pendekatan hardware, permasalahan hanya akan ditangani apabila masalah tersebut benar terjadi, maka penggunaan cache menjadi efektif dan kinerja menjadi lebih baik dibandingkan dengan pendekatan software. Pendekatan ini juga dapat dirasakan oleh pemrograman dan kompiler yaitu mengurangi pekerjaan pembuatan software. Skema hardware dapat dibagi atas dua kategori yaitu Protokol Direktori dan protokol Snoopy . Protokol Direktori mengumpulkan dan menjaga informasi lokal salinan blok berada. Terdapat sejumlah 103 pengontrol tersentralisasi yang merupakan bagian memori utama dan sebuah direktori yang tersimpan di dalam memori utama. Direktori tersebut berisi informasi status global tentang isi bermacam-macam cache lokal. Direkroti bertanggung jawab atas penyimpanan infomasi status up to date sehingga harus dilaporkan ke pengontrol sentral. Kekurangan direktori adalah adanya kemacetan terpusat dan overhead komunikasi antara berbagai pengontrol cache dengan pengontrol sentral. Namun teknik ini efektif digunakan pada sistem berskala besar yang melibatkan bus berjumlah banyak atau pola interkoneksi yang kompleks. Protokol Snoopy mendistribusikan tanggung jawab untuk menjaga koherensi cache keseluruh pengontrol cache di dalam sebuah multiprosesor. Cache harus mengetahui kapan suatu blok yang ada didalamnya dapat digunakan bersama. Aksi update harus diumumkan keseluruh cache dengan menggunakan pengontrol cache ‘snoop’(mengintai) mekanisme pemancaran. memiliki kemampuan jaringan dalam Setiap untuk mengamati pemberitahuan pemancaran ini dan kemudian melakukan reaksi. Idealnya digunakan untuk multiprosesor berbasis bus. Ada dua pendekatan protokol snoopy, yaitu write invalidate dan write update. Protokol write invalidate terdapat sejumlah pembaca dan hanya satu penulis saja. Pada protokol write 104 update terdapat beberapa penulis dan beberapa pembaca. Pada saat semua prosesor akan mengupdate blok bersama, maka word yang akan diupdate akan didistribusikan ke prosesor-prosesor lainnya dan cache yang berisi blok tersebut akan mengupdatenya. Pendekatan write invalidate merupakan pendekatan yang paling banyak digunakan pada sistem multiprosesor komersil. Pendekatan ini menandai status setiap saluran cache sebagai termodifikasi, ekslusif, digunakan bersama atau invalid. Dengan alasan ini protokol ini disebut MESI. Protokol MESI cache data terdiri dari 2 bit status pertag-nya, sehingga setiap baris dapat berada pada salah satu dari keempat keadaan berikut : Termodifikasi : Baris pada cache telah dimodifikasi dan hanya tersedia hanya pada cache itu saja. Ekslusif : Baris yang berada pada cache yang sama seperti pada baris memori utama dan tidak terdapat pada cache-cache lainnya. Bersama : Baris yang berada pada cache sama seperti pada memori utama dan mungkin terdapat pada cache lainnya. Tidak valid : Bila cache tidak berisi data yang valid. 105 Pada saat read miss terjadi pada cache lokal, prosesor mulai melakukan pembacaan memori untuk membaca blok memori utama yang berisi alamat yang hilang. Prosesor menyisipkan sebuah sinyal pada bus yang memperingati semua unit prosesor/cache untuk melakukan snoop terhadap transaksi. Pada saat terjadi miss tulis pada cache lokal, maka prosesor akan melakukan pembacaan membaca blok yang berada di dalam memori utama yang berisi alamat yang tidak ditemukan. Untuk itu prosesor mengeluarkan sinyal pada bus yang artinya membaca dengan tujuan untuk memodifikasi. Ketika proses hit read terjadi pada sebuah baris di cache lokal, prosesor dengan mudah membaca hal yang dibutuhkan. Tidak ada perubahan status ;status tetap sama, sebagai termodifikasi, bersama atau ekslusif. Bila terjadi hit tulis, maka akibatnya akan bergantung pada status blok saat itu pada cache lokal. 5. Cluster Salah satu area terpenting pada perancangan sistem komputer adalah clustering. Clustering adalah sebuah alternatif bagi pengolahan multisimetris sebagai sebuah pendekatan untuk menyajikan kinerja dan ketersediaan yang tinggi dan biasanya menarik bagi aplikasi server. Dapat didefinisikan sebuah cluster adalah sebuah group yang 106 terinterkoneksikan dimana keseluruhan computer bekerja bersamaan sebagai satu kesatuan sumber yang dapat menciptakan ilusi sebagai satu mesin. Istilah ‘whole computer’ berarti sebuah sistem yang dapat berjalan dengan sendirinya, diluar cluster, masing-masing pada sebuah cluster disebut sebuah “node”. Menurut Brew ada empat keuntungan yang diperoleh dengan cluster ini dan dapat pula dianggap sebagai persyaratan dari rancangan, yaitu: Skalabilitas absolut : sebuah cluster dapat memiliki selusin mesin yang masing-masing adalah multiprosesor. Skalabilitas meningkat : sebuah cluster dikonfigurasi sedemikian rupa sehingga mungkin untuk menambahkan sistem-sistem baru ke cluster pada peningkatan yang kecil. Ketersediaan tinggi : tiap node pada sebuah cluster merupakan komputer yang berdiri sendiri, maka kegagalan salah satu node tidak menyebabkan hilangnya servis. Pada sebagian besar produk toleransi kesalahan ditangani secara otomatis pada software. 107 Harga/ kinerja yang unggul : dengan menggunakan komoditas blok bangunan, kita dapat meletakkan sebuah cluster dengan tenaga komputerisasi yang sama dan lebih besar daripada sebuah mesin tunggal, dengan harga yang lebih murah. Gambar 30 Konfigurasi Cluster Cluster diklasifikasikan dalam beberapa cara : - Berdasarkan ada tidaknya akses bersama pada cluster untuk disk yang sama. - Disk bersama. 108 6. Non Uniform Memory Access (NUMA) Non-Uniform Memory Access atau Non-Uniform Memory Architecture (NUMA) adalah desain memori komputer yang digunakan dalam Multiprocessor, di mana waktu akses memori tergantung pada lokasi memori relatif terhadap sebuah prosesor. Pada NUMA, sebuah prosesor dapat mengakses memori lokal sendiri lebih cepat daripada memori non-lokal, yaitu memori lokal ke prosesor atau memori lain dibagi antara prosesor. Terdapat denifisi beberapa istilah pada literatur NUMA, yaitu : Uniform memory access/Akses memori seragam (UMA) ; semua prosesor mempunyai akses ke semua bagian memori utama yang menggunakan pemuatan dan penyimpanan. Waktu akses memori untuk prosesor ke semua ruang adalah sama. Non Uniform memory access /Akses memori tidak seragam (NUMA); semua prosesor mempunyai akses ke semua bagian memori utama dengan menggunakan pemuatan dan penyimpanan. Waktu akses memori prosesor berbeda tergantung pada bagianmana dari memori utama yang diakses. Untuk prosesor-prosesor 109 yang berbeda ruang memori yang lebih lambat atau yang lebih cepat tidak sama. Koherensi Cache NUMA (CC-NUMA) ; adalah sistem NUMA yang koherensi cachenya dijaga diantara cache-cache beberapa prosesor. Sistem NUMA yang tanpa koherensi cache kurang lebih ekivalen terhadap cluster. NUMA merupakan salah satu pendekatan untuk pencapaian pemrosesan dengan skala besar. Tujuan penggunaan NUMA adalah untuk memelihara memori sistem yang luas secara transparan pada saat mengizinkan node-node berbagai multiprosesor, masingmasing dengan busnya sendiri interkoneksi internal lainnya. atau dengan sistem Gambar disamping ini menunjukkan organisasi CC-NUMA. CC-NUMA berbeda dengan SMP dan cluster. Ada beberapa node yang independen yang masing-masing merupakan sebuah organisasi SMP. Tiap node berisi beberapa prosesor dengan cache L1 dan L2-nya dan memori utama. Node merupakan dasar dari blok bangunan organisasi CC-NUMA. Node-node terinterkoneksi dengan menggunakan beberapa fasilitas komunikasi yang bisa menjadi mekanisme pergantian. 110 Prosesor 1-1 Prosesor 1-m Cache L1 Prosesor 2-1 Cache L1 Cache L2 Cache L2 Memori Utama 1 Prosesor 2-m Cache L1 Direktori Cache L1 Cache L2 I/O Cache L2 I/O Direktori Memori Utama 2 Jaringan Interkoneksi Prosesor N-1 Prosesor N-m Cache L1 Cache L1 Cache L2 Cache L2 Direktori Memori Utama N I/O Gambar Organisasi CC-NUMA Gambar 31 organisasi CC-NUMA Tiap node pada cc-NUMA meliputi beberapa memori utama, dari sudut pandang prosesor hanya ada satu memori tunggal, dengan masing-masing lokasi yang memiliki alamat sistem luas. Ketika suatu prosesor memulai akses memori, jika lokasi memori yang diminta tidak berada pada cache prosesor tersebut, maka cache L2 memulai suatu operasi pengambilan. Jika baris yang diinginkan pada bagian yang lokal berada pada memori utama, maka baaris akan diambil melalui bus lokal. Jika baris yang diinginkan berada pada bagian yang jauh dari memori utama, maka permintaan yang otomatis dikirimkan untuk mengambil baris melewati jaringan interkoneksi, mengirimkannya ke bus lokal dan kemudian mengirimkannya ke cache yang diminta pada bus 111 tersebut. Semua kegiatan ini otomatis dan transparan pada prosesor dan cachenya. Pada konfigurasi ini, koherensi cache merupakan pertimbangan yang terpenting. Walaupun implementasinya berbeda secara lebih rinci, secara umum masing-masing node harus menjaga beberapa bagian direktori yang memberikannya sebuah indikasi lokasi dari berbagai bagian memori dan juga status informasi cache. Keuntungan utama dari sistem CC-NUMA adalah dapat menyampaikan kinerja yang efektif pada tingkat yang lebih tinggi daripada SMP, tanpa perubahan sebagaian besar software. Dengan berbagai node-node NUMA, lalu lintas bus pada node individual terbatas terhadap permintaan yang dapat ditangani bus. Jika banyak akses memori ditujukan ke node-node yang jauh, maka kinerja akan menurun. Gagalnya kinerja ini dapat dihindari. Pertama kegunaan cache L1 dan cache L2 dirancang untuk meminimalkan semua akses memori termasuk yang terjauh. Jika sebagain software memiliki lokasi sementara, dan jika memori virtual digunakan, maka data yang diperlukan untuk sebuah aplikasi akan berada pada jumlah halaman yang terbatas yang dapat dimuat dari memori lokal ke memori yangsedang dilaksanakan. Akhirnya skema memori virtual dapat ditingkatkan dengan memasukkan sistem operasi mekanisme migrasi yang akan memindahkan 112 halaman memori virtual ke sebuah node yang sering digunakan. Kelemahan CC-NUMA, software yang berubah akan diminta untuk memindahkan sebuah sistem operasi dan aplikasi-aplikasi dari sebuah SMP ke sistem CC-NUMA. 7. Komputasi Vektor Perkembangan aplikasi berada diluar kemampuan mainframe modern. Terdapat kebutuhan komputer untuk menyelesaikan masalah matematika proses yang sebenarnya seperti yang terdapat pada bidang aerodinamika, seismologi, meteorologi, fisika atom dll. Umumnya masalah tersebut ditandai dengan kebutuhan perhitungan berpresisi tinggi dan program yang secara berulang melakukan operasi-operasi aritmetik terhadap larik bilangan dalam jumlah besar. Untuk mengatasi masalah tersebut maka dibuat super komputer. Mesin ini mampu melakukan ratusan juta operasi perdetik untuk keperluan kalkulasi numerik. Berbeda dengan mainframe yang dirancang untuk pemrograman multi dan I/O secara intensif. Ada sistem jenis lain yang dirancang untuk memenuhi kebutuhan komputasi vektor. Sistem ini dikenal dengan prosesor larik. Walaupun super komputer dioptimasikan 113 untuk kebutuhan komputasi vektor, namun pada dasarnya ia memiliki kemamppuan menangani tugas-tugas pengolahan skalar dan pengolahan data yang umum. Pada pengolahan larik tidak mencakup pengolahan skalar, pengolah larik dipasang sebagai perangkat periperal baik oleh pengguna mainframe maupun pengguna komputer kecil untuk menjalankan bagian-bagian yang divektorkan pada suatu program. Terdapat tiga organisasi prosesor yang penting : - ALU pipeline - Prosesor paralel - ALU paralel Operasi vektor dapat ditingkatkan lebih lanjut apabila elemen-elemen vektor terdapat didalam register seperti terlihat pada gambar (a) dibawah ini. Gambar 32 Operasi vektor 114 Semua elemen operand vektor dimuatkan sebagai sebuah blok ke dalam register vektor yang sebenarnya hanya berupa bank register-register yang identik dan besar. Hasilnya juga disimpan didalam suatu register vektor. Sebagian operasi hanya melibatkan penggunaan register dan hanya operasi pemuatan dan penyimpanan awal serta akhir operasi vektor memerlukan akses ke memori. Gambar 33 Taksonomi organisasi komputer Cara lain untuk mendapatkan pengolahan vektor adalah dengan menggunakan ALU berjumlah jamak pada prosesor tunggal dibawah kendali kontrol unit. Unit kontrol mengirimkan data ke ALU hingga ALU tersebut dapat berfungsi secara paralel. Dapat pula menggunakan pipeline pada tiap ALU yang paralel. Seperti halnya pipeline, organisasi ALU paralel cocok untuk pengolahan vektor. Unit kontrol mengirimkan elemen-elemen vektor ke ALU sampai seluruh elemen tersebut selesai diproses. Jenis organisasi ini lebih kompleks dibanding prosesor dengan ALU tunggal. 115 Cara yang terakhir untuk pengolahan vektor dapat diperoleh dengan menggunakan prosesor paralel berjumlah banyak. Diperlukan pembagian tugas menjadi beberapa proses yang akan dieksekusi secara paralel. Organisasi ini efektif bila terdapat software dan hardware untuk keperluan organisasi prosesor paralel yang efektif. Organisasi komputer dapat dibedakan menurut jumlah unit kontrolnya. Unit kontrol berjumlah banyak mengimplementasikan sejumlah prosesor. Apabila sejumlah prosesor dapat berfungsi secara kooperatif maka prosesor tersebut disebut prosesor paralel. 116 C. Rangkuman 1. Pada organisasi paralel, berbagai unit pengolahan saling bekerja sama untuk melaksanakan aplikasaplikasi. Pelaksanaan instruksi dilakukan pada waktu yang bersamaan. Jika sebuah prosesor superskalar memanfaatkan peluang pelaksanaan yang paralel pada tingkatan instruksi, maka pada suatu organisasi pengolahan paralel akan mencari tingkatan paralel yang lebih kasar, yaitu eksekusi yang memungkinkan suatu proses dilaksanakan oleh multipel prosesor secara paralel dan saling bekerja sama. 2. Dua organisasi multipel prosesor yang umum adalah multipel prosesor simetris (SMPS) dan Cluster, dan kemudian adapula sistem NUMA yaitu sistem dengan akses memori yang tidak seragam. 3. Flynn mengelompokkan kategori sistem komputer berdasarkan strukturnya, yaitu: a. SISD (Single Instruction Stream, Single Data Stream), merupakan sebuah prosesor tunggal mengeksekusi arus instruksi tunggal untuk beroperasi pada data yang disimpan pada memori tunggal. Disebut juga dengan Uni-prosesor. Prosesor tunggal berada pada kategori ini. b. SIMD (Single Instruction Stream, Multiple Data Stream), adalah sebuah mesin instruksi mengatur 117 eksekusi dari sejumlah elemen pengolahan pada sebuah basis secara simultan. 4. Kelemahan pada organisasi bus adalah dalam hal kinerja. Seluruh referensi memori dilewatkan melalui bus umum, sehingga kecepatan sistem dibatasi oleh siklus waktu. Untuk meningkatkan kinerja, maka setiap prosesor perlu dilengkapi dengan memori cache, hal ini akan mengurangi jumlah akses bus. 5. Clustering adalah sebuah alternatif bagi pengolahan multisimetris sebagai sebuah pendekatan untuk menyajikan kinerja dan ketersediaan yang tinggi. Dikatakan sebagai terinterkoneksikan sebuah dimana group keseluruhan yang computer bekerja bersamaan sebagai satu kesatuan sumber yang dapat menciptakan ilusi sebagai satu mesin 6. Sistem NUMA yang tanpa koherensi cache kurang lebih ekivalen terhadap cluster. NUMA merupakan salah satu pendekatan untuk pencapaian pemrosesan dengan skala besar dengan tujuan untuk memelihara memori sistem yang luas secara transparan pada saat mengizinkan node-node berbagai multiprosesor, masing-masing dengan busnya sendiri atau dengan sistem interkoneksi internal lainnya. 118 D. Latihan soal: 1. Jelaskan yang dimaksud dengan paralel komputer! 2. Apakah tujuan rancangan prosesor parallel? 3. Sebutkan Jenis-jenis Sistem Prosesor parallel! 4. Gambarkan Arus instruksi ke sebuah PU pada struktur SISD! 5. Apa yang dimaksud dengan clustering pada perancangan sistem computer? 6. Jelaskan apa yang dimaksud dengan Non Uniform Memory Access (NUMA)! 119 BAB V PENGANTAR ARSITEKTUR RISC A. Standar Kompetensi dan Indikator Standar Kompetensi Mampu menganalisa perbandingan komputer RISC dan CISC serta aplikasi penggunaannya Indikator Mahasiswa dapat menjelaskan penggunaan teknologi RISC dibanding teknologi yang ada sebelumnya. B. Materi 1. Pembahasan Awal Setelah mengikuti Kinerja suatu komputer adalah hal yang sangat penting. Dalam perkembangannya kinerja selalu ditingkatkan baik dari sisi kecepatan proses maupun sisi ekonomisnya. Kecepatan komputer tergantung banyak hal, salah satunya adalah set instruksi yang digunakan. Terdapat dua konsep set instruksi di dalam komputer yakni CISC (Complex Instruction Set Computer) dan RISC (Reduce 120 Instruction Set Computer). Sebagai perbandingan, CISC mencoba untuk mengurangi jumlah instruksi pada program sedangkan RISC mencoba mengurangi siklus instruksi. Ditinjau dari jenis set instruksinya, ada 2 jenis arsitektur komputer, yaitu : 1. Complex Instruction Set Computer (CISC), Arsitektur komputer dengan kumpulan perintah yang rumit. 2. Reduced Instruction Set Computer (RISC), Arsitektur komputer dengan kumpulan perintah yang sederhana. 2. Reduced Instruction Set Computing (RISC) Reduced Instruction Set Computing (RISC) pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer komersial pertama yang menggunakan konsep RISC ini adalah IBM 801 PC pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar pada University of California di Berkely. Selain IBM 801 juga terdapat Stanford MIPS, dan Berkeley RISC 1 dan 2 121 semua dirancang dengan filosofi RISC. Fitur desain tertentu telah menjadi ciri dari kebanyakan prosesor RISC, yaitu : One cycle execution time ( satu siklus waktu eksekusi) : RISC processor memiliki CPI (clock per instruksi) dari satu siklus. Hal ini disebabkan oleh optimasi dari setiap instruksi pada CPU. Pipelining : sebuah teknik yang memungkinkan pelaksanaan simultan bagian atau tahap instruksi untuk memproses instruksi lebih efisien. Large number of registers (register dalam jumlah besar) : filosofi menggabungkan desain sejumlah RISC besar umumnya register untuk mencegah dalam jumlah besar interaksi dengan memori. Elemen penting yang menjadi ciri dari prosesor RISC adalah: Menggunakan teknologi kompiler untuk mengoptimalisasikan penggunaan register. Instruksi set yang sedikit dan sederhana. Pengoptimalan pipeline instruksi agar efisien memproses instruksi. 122 RISC atau "Komputasi set instruksi yang disederhanakan" adalah prosesor yang memiliki set instruksi program yang lebih sedikit dibandingkan CISC. Karena perbedaan keduanya ada pada kata set instruksi yang kompleks atau sederhana (reduced). RISC lahir dilatar belakangi oleh CISC. Perbedaan mencolok dari pada RISC ini adalah tidak ditemui adanya instruksi assembly atau yang dikenal dengan bahasa mesin, sedangkan itu banyak sekali di jumpai di CISC. Konsep arsitektur RISC banyak menerapkan proses eksekusi pipeline. Meskipun jumlah perintah tunggal yang diperlukan untuk melakukan pekerjaan yang diberikan mungkin lebih besar, eksekusi secara pipeline memerlukan waktu yang lebih singkat daripada waktu untuk melakukan pekerjaan yang sama dengan menggunakan perintah yang lebih rumit. Mesin RISC memerlukan memori yang lebih besar untuk mengakomodasi program yang lebih besar. RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif. RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam penyusunan kompiler yang pada akhirnya dapat memaksimumkan kinerja program yang ditulis dalam bahasa tingkat tinggi. 123 Ciri-ciri RISC adalah : Instruksi berukuran tunggal Ukuran yang umum adalah 4 byte. Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah. Tidak terdapat pengalamatan tak langsung. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmetika (misalnya, penambahan dari memori, penambahan ke memori). Arsitektur RISC ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vektor. Selain digunakan pada komputer vektor, desain ini juga diimplementasikan pada prosesor komputer lain seperti processor buatan Motorola (PowerPC) dan SUN Microsystems (Sparc, UltraSparc). Pada desain chip mikroprosesor RISC, pemroses diharapkan dapat melaksanakan perintah-perintah yang dijalankannya secara cepat dan efisien melalui penyediaan himpunan instruksi yang jumlahnya relatif sedikit, dengan mengambil perintah-perintah yang sangat sederhana, akibatnya arsitektur RISC membatasi jumlah instruksinya 124 yang dipasang ke dalam mikroprosesor tetapi mengoptimasi setiap instruksi sehingga dapat dilaksanakan dengan cepat. Dengan demikian instruksi yang sederhana dapat dilaksanakan lebih cepat apabila dibandingkan dengan mikroprosesor yang dirancang untuk menangani susunan instruksi yang lebih luas. Dengan demikian chip RISC hanya dapat memproses instruksi dalam jumlah terbatas, tetapi instruksi ini dioptimalkan sehingga cepat dieksekusi. Meski demikian, bila harus menangani tugas yang kompleks, instruksi harus dibagi menjadi banyak kode mesin, terutama sebelum chip RISC dapat menanganinya. Karena keterbatasan jumlah instruksi yang ada padanya, apabila terjadi kesalahan dalam pemrosesan akan memudahkan dalam melacak kesalahan tersebut. Chip RISC menggunakan sejumlah kecil instruksi dengan panjang-sama yang relatif sederhana, yaitu panjangnya selalu 32 bit. Walaupun hal ini memboroskan memori karena harus dibuat program lebih besar, instruksi lebih mudah dan cepat dieksekusi. Karena chip ini berurusan dengan jenis instruksi lebih sedikit, chip RISC membutuhkan lebih sedikit transistor ketimbang chip CISC dan umumnya berkinerja lebih tinggi pada kecepatan clock yang sama, walaupun chip ini harus mengeksekusi lebih banyak instruksi lebih pendek untuk menyelesaikan sebuah fungsi. 125 Kesederhanaan RISC juga mempermudah merancang prosesor superscalar - chip yang dapat mengeksekusi lebih dari satu instruksi pada satu saat. Hampir semua prosesor RISC dan CISC modern adalah superscalar; tetapi untuk mencapai kemampuan ini membuat desain lebih rumit. Filosofi arsitektur RISC adalah arsitektur prosesor yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar yang diperlukan saja. Kerumitan membuat program dalam bahasa mesin diatasi dengan membuat bahasa program tingkat tinggi dan compiler yang sesuai. Karena tidak rumit, teorinya mikroprosesor RISC adalah mikroprosesor yang low-cost dalam arti yang sebenarnya. Namun demikian, kelebihan ruang pada prosesor RISC dimanfaatkan untuk membuat sistem-sistem tambahan yang ada pada prosesor modern saat ini. Banyak prosesor RISC yang di dalam chip-nya dilengkapi dengan sistem superscalar, pipelining, caches memory, register-register dan sebagainya, yang tujuannya untuk membuat prosesor itu menjadi semakin cepat. Sudah sering kita mendengar debat yang cukup menarik antara komputer personal IBM dan kompatibelnya yang berlabel Intel Inside dengan komputer Apple yang berlabel PowerPC. 126 Perbedaan utama antara kedua komputer itu ada pada tipe prosesor yang digunakannya. Prosesor PowerPC dari Motorola yang menjadi otak utama komputer Apple Macintosh dipercaya sebagai prosesor RISC, sedangkan Pentium buatan Intel diyakini sebagai prosesor CISC. Kenyataannya komputer personal yang berbasis Intel Pentium saat ini adalah komputer personal yang paling banyak populasinya. Tetapi tidak bisa pungkiri juga bahwa komputer yang berbasis RISC seperti Macintosh, SUN adalah komputer yang handal dengan sistem pipelining, superscalar, operasi floating point dan sebagainya. 3. Pendekatan RISC Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang dapat dieksekusi dalam satu siklus clock. Dengan demikian, "mult" perintah yang dijelaskan di atas dapat dibagi menjadi tiga perintah : "LOAD", yang memindahkan data dari memori bank untuk salah satu register, "PROD", yang menemukan produk dari dua Operand yang terletak di dalam register, dan " STORE, "yang memindahkan data dari satu register ke bank memori. Dalam rangka untuk melaksanakan serangkaian langkah tepat dijelaskan dalam pendekatan CISC, seorang programmer perlu kode perakitan empat baris : 127 LOAD A, 2:3 LOAD B, 5:2 PROD A, B STORE 2:3, A Pada awalnya, ini mungkin tampak seperti kurang efisien cara menyelesaikan operasi. Karena ada lebih baris kode, lebih banyak RAM yang dibutuhkan untuk menyimpan instruksi tingkat perakitan. Kompilator harus juga melakukan lebih banyak pekerjaan untuk mengkonversi bahasa tingkat tinggi ke dalam kode pernyataan dari formula ini. Namun strategi RISC juga membawa beberapa keuntungan yang sangat penting. Karena setiap instruksi hanya memerlukan satu siklus clock untuk mengeksekusi, seluruh program akan mengeksekusi dalam kira-kira jumlah waktu yang sama seperti multi-siklus "mult" perintah. RISC ini "berkurang instruksi" membutuhkan lebih sedikit transistor hardware ruang daripada instruksi kompleks, meninggalkan ruang lebih untuk tujuan umum register. Karena semua mengeksekusi instruksi dalam jumlah yang seragam waktu (yaitu satu jam), pipelining adalah mungkin. Memisahkan "LOAD" dan "STORE" instruksi sebenarnya mengurangi jumlah pekerjaan yang harus dilakukan komputer. Setelah CISC "mult" perintah dijalankan, prosesor yang secara otomatis menghapus 128 register. Jika salah satu kebutuhan Operand yang akan digunakan untuk komputasi lain, prosesor harus kembali memuat data dari bank memori ke dalam register. Dalam RISC, yang operand akan tetap di dalam register sampai nilai lain telah dimuat di tempatnya. a. Karakteristik-karakteristik Eksekusi Instruksi Dengan semakin murahnya harga hardware, harga software mengalamai peningkatan karena sedikitnya jumlah pemrogram. Sebagai respon dibuat bahasa program tingkat tinggi yang lebih baik dan kompleks. Bahasa tingkat tinggi (High Level Language/HLL) memungkinkan pemrogram untuk menyatakan algoritma dengan lebih singkat, lebih memperhatikan rincian dan mendukung penggunaan pemrograman terstruktur atau rancangan yang berorientasi objek. Solusi ini menimbulkan masalah baru yaitu semantic gap, yaitu perbedaan antara operasi-operasi yang disediakan dalam bentuk HLL dan operasi-operasi yang disediakan dalam bentuk arsitektur komputer. Tanda-tanda gap ini dinyatakan dengan adanya ketidak efisienan eksekusi, ukuran program mesin yang besar dan kompleksitas kompiler. 129 Gambar 34 RISC CISC Lebih lanjut untuk memahami RISC, diawali dengan tinjauan singkat tentang karakteristik eksekusi instruksi. Aspek komputasi yang ditinjau adalah sbb : Operasi-operasi yang dilakukan: Hal ini menentukan fungsi-fungsi yang akan dilakukan oleh CPU dan interaksinya dengan memori. Operand-operand yang digunakan: Jenis-jenis operand dan frekuensi pemakaiannya akan menentukan organisasi memori untuk menyimpannya dan mode pengalamatan untuk mengaksesnya. Pengurutan eksekusi: Hal ini akan menentukan kontrol dan organisasi pipeline. 130 b. Operasi Hasil-hasil menganalisis penelitian tingkah yang laku dilakukan program-program untuk HLL menunjukkan; Assign Statemen sangat menonjol diikuti statemen bersyarat (IF, LOOP) lihat tabel dibawah ini. Statemen-statemen ini diimplementasikan dalam bahasa mesin dengan beberapa instruksi perbandingan dan percabangan. Hal ini menyatakan bahwa mekanisme kontrol urutan set merupakan hal yang penting. Hasil-hasil penelitian ini merupakan hal yang sangat penting bagi perancangan set instruksi mesin yang mengindikasikan statemen mana yang peling sering terjadi dan harus didukung. Kolom 2 dan 3 pada tabel dibawah menunjukkan ukuran pengganti frekuensi yang relatif tentang kejadian berbagai macam instruksi-instruksi HLL pada berbagai program. Data pada kolom 4-7 memberikan ukuran pengganti dari waktu aktual yang diperlukan untuk mengeksekusi berbagai jenis statemen. Hasilnya menyatakan bahwa prosedur CALL/RETURN adalah operasi yang paling banyak memakan waktu dalam program HLL yang umum. 131 Tabel 7 Tabel frekuensi dinamis relatif berbobot dari operasi-operasi HLL c. Operand Penelitian yang dilakukan Patterson terhadap frekuensi dinamik terjadinya kelas-kelas variabel dalam program pascal dan C menunjukkan bahwa mayoritas referensi menuju ke variable-variable skalar. Lebih dari 80% skalar bersifat variabel lokal, terdapat acuan ke skalar dalam jumlah besar dan acuan ini terlokalisasi. Penelitian tersebut menyatakan bahwa jenis arsitektur berpengaruh pada kecepatan pengaksesan operand karena operasi ini sering dilakukan. Calon utama untuk optimisasi adalah mekanisme penyimpanandan pengaksesan variabel-variabel skalar lokal. Tabel 8 Tabel Presentase Dinamis Operand-operand 132 d. Prosedur Call Prosedur Call dan Return merupakan aspek yang penting dalam program-program HLL. Pada tabel frekuensi dinamis relatif menunjukkan bahwa prosedur call dan return merupakan operasi yang paling banyak membutuhkan waktu dalam program-program yang dikompilasi. Dua aspek yang lain adalah jumlah parameter dan variabel yang berkaitan dengan prosedur, dan kedalaman pensarangan (nesting). e. Implikasi Usaha untuk membuat arsitektur set instruksi yang mendekati HLL bukanlah strategi perancangan yang paling efektif. HLL dapat didukung lebih baik dengan cara pengoptimalan kinerja fitur-fitur program HLL tertentu yang paling banyak membutuhkan waktu. Hasil-hasil penelitian secara umum dapat dinyatakan bahwa terdapat tiga buah elemen yang menentukan karakter arsitektur RISC. Penggunaan register dalam jumlah yang besaratau penggunaan suatu kompiler untuk mengoptimalkan penggunaan register. Hal ini dimaksudkan untuk mengoptimalkan pereferensian /pengacuan operand. Diperlukan instruksi. perhatian Karena bagi tingginya perancangan proporsi pipeline instruksi 133 pencabangan bersyarat dan prosedur call, pipeline instruksi yang bersifat langsung dan ringkas akan menjadi tidak efisien. Hal ini menggambarkan terjadinya proporsi yang tinggi instruksi yang di prefetch tetapi tidak pernah dieksekusi. Terdapat set instruksi yang disederhanakan (dikurangi). f. Penggunaan File Register Besar Terdapat statement assignment yang jumlahnya banyak dalam program-program HLL, dan banyak diantaranya berupa statement assignment sederhana seperti A = B. Di samping itu, terdapat pula akses operand per statement HLL dalam jumlah yang cukup besar. Apabila kita menggabungkan keduanya dengan kenyataan bahwa sebagian besar akses adalah menuju ke skalar-skalar lokal, maka sangat mungkin kita memerlukan penyimpanan register yang besar. Alasan diperlukannya penyimpanan register adalah register merupakan perangkat penyimpanan yang paling cepat, yang lebih cepat dibandingkan dengan memori utama dan memori cache. Dimungkinkan untuk menerapkan dua pendekatan dasar, yaitu berdasarkan perangkat lunak (software) dan perangkat keras (hardware). Pendekatan perangkat lunak memaksimalkan mengandalkan pemakaian register. kompiler Kompiler untuk akan 134 mengalokasikan register-register bagi variabel-variabel yang akan sering digunakan dalam periode waktu tertentu. Pendakatan program yang ini membutuhkan canggih. algoritma Pendekatan perangkat analisis keras dilakukan hanya dengan memperbanyak jumlah register sehingga akan lebih banyak variabel yang dapat ditampung di dalam register dalam periode waktu yang lebih lama. Pendekatan hardware diperkenalkan oleh kelompok Berkeley RISC. g. Register Windows Teknik register windows memberikan organisasi yang efisien untuk penyimpanan variabel skalar lokal di dalam register. Pada setiap waktu hanya sebuah window/jendela register yang terlihat dan dapat dialamati seolah-olah window itu hanya satu-satunya himpunan register. Register windows dibagi menjadi 3 buah daerah yang berukuran tetap. Register-register parameter. Menampung parameterparameter yang dilewatkan dari prosedur. Register-register lokal. Digunakan untuk variable lokal, setelah di-assign/ditugaskan oleh kompiler. Register-register temporer. Digunakan untuk pertukaran parameter. Ini memungkinkan parameter135 parameter dapat dilewatkan tanpa perpindahan aktual data. h. Variabel-variabel Global Teknik Register Windows memberikan organisasi yang efisien untuk penyimpanan variable skalar lokal di dalam register. Akan tetapi teknik ini tidak dapat memenuhi kebutuhan penyimpanan variabel global, yang diakses oleh lebih dari sebuah prosedur (misalnya, variabel COMMON dalam FORTRAN). Terdapat dua pilihan untuk memenuhi hal tersebut. Pertama, Variabel-variabel yang dideklarasikan sebagai global pada HLL dapat disediakan lokasi-lokasi oleh kompiler dan semua instruksi mesin yang mengacu variabelvariabel ini akan menggunakan operand-operand acuan memori. Cara ini langsung baik dari sudut pandang hardware atau software (kompiler). Namun, bagi yang sering mengakses variabel-variabel global, teknik tersebut tidaklah efisien. Alternatif lainnya adalah melibatkan kumpulan register global di dalam CPU. Register-register ini harus memiliki jumlah yang tetap dan dapat dipakai oleh semua prosedur. Untuk menyederhanakan bentuk instruksi, dapat digunakan 136 teknik penomoran gabungan. Hardware tambahan diperlukan untuk mengakomodasi pemisahan alamat-alamat register. Selain itu kompiler harus menentukan variabel-variabel global yang akan ditugaskan ke register. i. File Register ukuran besar vs Cache File register window/jendela menampung yang berfungsi subset diorganisasikan sebagai seluruh menjadi buffer kecil variabel yang untuk memiliki kemungkinan besar akan banyak digunakan. Dari sudur pandang ini file register berfungsi menyerupai sebuah cache memori. File register berbasis windows menampung seluruh variabel skalar lokal. Cache menampung pemilihan variabel skalar yang digunakan saat ini. File register dapat menghemat waktu karena semua variabel skalar lokal dipertahankan. Sedangkan Cache dapat menggunakan ruang yang lebih efisien karena cache bereaksi terhadap situasi dengan dinamis. Cache secara umum juga memperlakukan seluruh acuan memori secara sama termasuk instruksi dan jenis data lainnya. Sehingga penghematan dalam bidang lainnya dapat dimungkinkan dengan menggunakan cache dan bukan file register. 137 Suatu file register dapat tidak efisien dalam menggunakan ruang, karena tidak semua prosedur akan memerlukan ruang jendela sepenuhnya yang telah diberikan. Sedangkan cache memiliki ketidakefisienan lainnya. Data akan dibaca ke dalam cache dalam bentuk blok-blok. Sedangkan file register hanya berisi variabel-variabel yang sedang digunakan, cache membaca blok data, beberapa atau banyak diantaranya tidak akan digunakan. Cache memiliki kemampuan untuk menangani variabel global seperti halnya variabel lokal. Pada umumnya terdapat banyak skalar-skalar global, tetapi hanya sedikit yang yang digunakan. Sebuah cache secara dinamis akan menemukan variabel-variabel ini dan menampungnya. Jika file register windows ditambahkan dengan register-register global, maka cache juga dapat menampung beberapa skalar global, akan tetapi sulit bagi kompiler untuk menentukan skalar global mana yang akan banyak digunakan. Kebanyakan memori cache bersifat set asosiatif dengan ukuran set yang kecil. Dengan demikian berbahaya karena data/instruksi lainnya akan menindih variabel-variabel yang sering digunakan. 138 j. Optimisasi Register berbasis Kompiler Kita asumsikan bahwa pada mesin RISC target hanya tersedia register dalam jumlah sedikit (misal 16-32). Penggunaan register yang dioptimalkan ini merupakan tanggung jawab kompiler. Tentu saja sebuah program yang ditulis dalam bahasa tingkat tinggi tidak memiliki acuan eksplisit ke register. Kuantitas-kuantitas program diacu secara simbolik. Fungsi kompiler adalah untuk menjaga operand bagi komputasi sebanyak mungkin di dalam memori utama. Ini ditujukan untuk meminimalkan operasi LOAD dan STORE. Secara umum pendekatan yang diambil adalah; setiap kuantitas program yang akan ditempatkan dalam register ditugaskan ditugaskan ke register virtual atau simbolik. Kompiler kemudian memetakan jumlah tidak terbatas dari register simbolik ke jumlah tertentu dari register nyata. Register simbolik yang tidak menggunakan tumpang tindih bisa berbagi dengan register riil. Jika banyak kuantitas berhubungan dengan register riil, maka sebagian dari kuantitas itu ditugaskan ke lokasi memori. Inti tugas optimisasi adalah menentukan kuantitas yang mana yang akan ditugaskan ke register di setiap posisi dalam 139 program. Teknik yang paling banyak digunakan di kompiler RISC adalah pewarnaan grafik. Dengan teknik optimisasi register, ada peningkatan kinerja marjinal dengan lebih dari 32 register. Dengan sejumlah kecil register (misalnya 16), suatu mesin dengan suatu organisasi register yang bersama mengeksekusi lebih cepat dibandingkan suatu organisasi yang menggunakan register terpisah. k. Karakteristik dari Arsitektur Reduced Instruction Set Karakteristik dari RISC adalah sebagai berikut: Satu instruksi per siklus Operasi register ke register Mode pengalamatan yang sederhana Format instruksi yang sederhana Desain hardwired (tanpa microcode) Format instruksi yang fix Proses compile yang cepat Karakteristik Satu instruksi per siklus, suatu siklus mesin dinyatakan oleh waktu yang dibutuhkan untuk mengambil dua operand dari register, melaksanakan operasi ALU, dan menyimpan hasilnya pada register. Sehingga 140 instruksi mesin RISC tidak boleh lebih rumit, dan kira-kira secepat instruksi mikro pada mesin CISC. Untuk karakteristik register ke register, pada umumnya operasi harus dalam bentuk register-ke-register dengan hanya operasi akses memori LOAD dan STORE yang sederhana. Rancangan ini menyederhanakan set instruksi dan menyederhanakan unit kontrol. Sebagai contoh ; sebuah set instruksi RISC bisa mengandung hanya satu atau dua instruksi ADD, VAX mempunyai 25 instruksi ADD berbeda. Keuntungan lain, arsitektur seperti ini meningkatkan optimisasi penggunaan register, sehingga operand-operand yang sering diakses akan tetap berada dalam penyimpanan berkecepatan tinggi. Operasi register-ke-register ini merupakan ciri khas dari rancangan RISC. Untuk mengetahui akses yang sering terjadi ke sejumlah kecil skalar yang lokal adalah dengan menggunakan papan besar untuk register atau kompiler optimisasi, umumnya operand bisa bertahan di dalam register untuk periode waktu yang lama. Berikut ini adalah gambar dua perbandingan dari pendekatan register-ke-register dan memori-ke-memori. 141 Tabel 9 Memori ke memori dan Register ke memori 8 16 16 16 Tambah B C A Memori ke memori I = 56, D = 96, M = 152 8 4 Muatkan Muatkan Tambah Simpan rB rC rA rA 16 B B rB rC A (a) A<--- B + C Register ke memori I = 112, D = 96, M = 208 8 16 16 16 Tambah B C A Tambah A C B Tambah B D D Memori ke memori I = 168, D = 288, M = 456 8 4 4 4 Tambah rA rB rC Tambah rB rA rC Kurang rD rD rB Register ke memori I = 140, D = 96, M = 250 (b) A<--- B + C; B <--- A + C; D <--- D – B I = ukuran dari instruksi yang dieksekusi D = ukuran dari data yang dieksekusi M = I + D = total lalu lintas memori Karakteristik sederhana, pengalamatan penggunaan umumnya register menyederhanakan set instruksi mode pengalamatan RISC menggunakan sederhana. instruksi dan Rancangan unik ini kontrol. Karakteristik penggunaan bentuk instruksi sederhana, secara umum hanya satu atau sedikit sekali bentuk digunakan. Panjang instruksi tetap dan diratakan dengan batasan word. 142 Lokasi bidang, terutama opcode ditetapkan. Rancangan ini mempunyai sejumlah keuntungan. Denga bidang tetap, decode opcode dan akses register operand bisa terjadi secara simultan. Bentuk instruksi sederhana menyederhanakan unit kontrol. Intruksi pengambilan dioptimalkan sebab panjang word telah diambil. Semua karakteristik ini dapat diakses untuk menentukan keuntungan-keuntungan potensial dari pendekatan RISC. Keuntungan-keuntungan ini dapat dikategorikan dalam dua kategori utama, yaitu yang berhubungan dengan kinerja dan yang berhubungan dengan implementasi VLSI. Yang berkaitan dengan kinerja, suatu jumlah “circumstantial evidence” dapat direpresentasikan: - Pengoptimalan kompiler yang kebih efektif dapat dikembangkan. - Kebanyakan instruksi yang dihasilkan oleh kompiler biasanya sederhana secara relatif. - Berhubungan dengan penggunaan pipelining instruksi. Teknik pipelining instruksi dapat diimplementasikan lebih efektif dengan suatu set instruksi reduced. - Prosesor RISC harus lebih responsif ke interupsi. Arsitektur dengan instruksi kompleks membatasi 143 intrupsi ke batasan-batasan instruksi atau harus dapat menentukan posisi spesifik yang dapat diinterupsi dan menerapkan mekanisme untuk memulai lagi suatu instruksi. Kemudian yang berhubungan dengan implementasi VLSI. Ketika VLSI digunakan, rancangan dan implementasi dari prosesor akan berubah. Prosesor tradisional seperti IBM S/390 dan VAX terdirii dari satu atau lebih papan rangkaian yang dicetak berdasarkan SSI standard dan paket MSI. Dengan kehadiran LSI dan VLSI maka sangat mungkin untuk mengemas suatu prosesor secara keseluruhan dalam suatu chip tunggal. Pada prosesor chip tunggal, terdapat dua motivasi untuk mengikuti strategi RISC. Pertama yang berkaitan dengan kinerja, waktu tertunda dalam satu chip jauh lebih pendek dari waktu tunda insterchip. Kedua yang berkaitan dengan waktu rancangan dan implementasi, sebuah VLSI prosesor sulit untuk berkembang. penggantinya SSI/MSI yang tersedia, Sebagai perancang harus merancang rancangan sirkuit, penampilan dan pemodelan tingkat perangkat. l. Karakteristik CISC vs RISC Rancangan RISC dapat memperoleh manfaat melalui beberapa fitur CISC, rancangan CISC dapat memproleh 144 manfaat melalui beberapa fitur RISC. Hasilnya adalah suatu rancangan RISC baru. Berikut ini adalah pertimbangan beberapa ciri khas dari suatu RISC klasik : Ukuran Instruksi tunggal Ukuran yang umum adalah 4 byte. Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah. Tidak terdapat pengalamatan tak langsung. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmetika. Tidak lebih dari satu operand beralamat memori per instruksi. Tidak mendukung perataan sembarang tentang data untuk operasi load/store. Jumlah maksimum penggunaan unit manajemen memori (MMU) untuk suatu data adalah suatu instruksi. Jumlah bit untuk spesifier integer sama dengan lima atau lebih. Jumlah bit untuk spesifier register titik mengambang sama dengan empat atau lebih. 145 Tabel 10 Karakteristik dari beberapa Prosesor CISC, RISC, dan Superskalar m. Pipelining RISC Pipelining instruksi adalah sering digunakan untuk meningkatkan kinerja. Pada arsitektur RISC kebanyakan instruksi merupakan register ke register dan suatu siklus instruksi mempunyai dua langkah berikut: 1. I : Instruction Fetch (PengambilanInstruksi) 2. E : Execute (Melakukanoperasi ALU dengan register input dan output. Operasi Load danStore memiliki 3 Fase: 1. I : Instruction Fetch 2. E : Execute (Menghitung alamat memori) 146 3. D : Memory (Operasi register ke memori atau memori ke register Gambar (a) dibawah ini menggambarkan pewaktuan set instruksi tanpa menggunakan pipelining. Pipelining yang sangat sederhana dapat meningkatkan kinerja. Gambar (b) menunjukkan suatu rancangan pipelining dua tahap, dimana I dan E langkah-langkah dari dua instruksi yang berbeda yang diesekusi bersama. Rancangan dapat menghasilkan eksekusi lebih cepat dua kali lebih dari pada eksekusi rancangan serial. Gambar 35 Pewaktuan set instruksi tanpa menggunakan pipelining, rancangan pipelining dua tahap, dua akses memori per langkah, dan pipelining empat tahap Pipelining dapat ditingkatkan dengan mengizinkan dua akses memori per langkah. Cara ini menghasilkan suatu deretan seperti pada gambar (c), lebih dari tiga instruksi dapat 147 dilaksanakan. Instruksi pencabangan menghalangi tercapainya kecepatan maksimum. Namun ketergantungan data mempunyai suatu efek tertentu juga. Jika suatu instruksi memerlukan suatu operand yang sudah diubah oleh instruksi sebelumnya, maka suatu penundaan akan terjadi. Hal ini dapat diatasi dengan menggunakan NOOP. Dua masalah menghambat pencapaian kecepatan maksimum : - Suatu memori port tunggal digunakan dan hanya dapat mengakses satu langkah memori. Sehingga memerlukan waktu tunggu tambahan untuk beberapa instruksi. - Suatu instruksi pencabangan mengintrupsi aliran eksekusi. Untuk mangakomodasi dengan rangkaian yang minimum, suatu instruksi NOOP dapat disisipkan arus instruksi oleh kompiler atau asembler. Pipelining yang telah dibahas tadi, akan bekerja baik jika ketiga langkah-langkahnya memiliki waktu yang kirakira sama. Sebab langkah E pada umumnya melibatkan suatu operasi ALU, maka langkah ini akan lebih lama. Dalam hal ini dapat membaginya dalam dua sub langkah : 148 - E1 : Membaca file register - E2 : Operasi ALU dan tulis register. Karena adanya kesederhanaan dan keteraturan set instruksi RISC. Rancangan tiga atau empat langkah mudah dilakukan. Gambar (d) menunjukkan pipelining empat tahap. Sampai keempat instruksi dapat berjalan dengan waktu yang sama, dan peningkatan kecepatan potensi yang maksimum adalah suatu kelipatan empat. NOOPS tetap digunakan untuk mengatasi ketundaan data dan pencabangan. Optimisasi Pipelining Karena sifat yang reguler dan sederhana pada instruksi RISC, rancangan pipelining dapat secara efisien dilaksanakan. Ada beberapa variasi dalam waktu eksekusi instruksi, dan pipelining dapat digunakan dalam hal ini. Ketergantungan data dan pencabangan dapat mengurangi kecepatan eksekusi secara keseluruhan. Untuk mengganti kerugian atas ketergantungan ini, dapat digunakan teknik reorganisasi kode. 149 4. Prospek Arsitektur RISC di Masa Mendatang Perkembangan menarik terjadi pada tahun 1993 ketika aliansi tiga perusahaan terkemuka, IBM, Apple, dan Motorola memperkenalkan produk baru mereka yakni Power PC 601, suatu mikroprosesor RISC 64-bit yang dirancang untuk stasiun kerja (workstation) atau komputer personal. Menarik, karena kemunculan PowerPC 601 dimaksudkan untuk memberikan alternatif bagi dominasi prosesor CISC keluarga x-86 Intel dalam komputer rumahan. Popularitas prosesor keluarga-86 didukung oleh harganya yang murah dan banyaknya program aplikasi yang dapat dijalankan dengan prosesor ini. Untuk itu, prosesor PowerPC dijual dengan harga yang cukup bersaing dibandingkan dengan pentium, yakni prosesor buatan Intel mutakhir saat itu. Perkembangan teknologi emulasi yang memungkinkan prosesor RISC menjalankan sistem operasi yang sama dengan prosesor CISC keluarga-86 diperkirakan akan membuat prosesor RISC, terutama PowerPC 601, banyak digunakan di dalam komputer-komputer personal. PowerPC 601 memiliki 32 buah register serbaguna 32bit dan 32 buah 64-bit register floating-point. Untuk menyimpan sementara data dan instruksi sebelum dieksekusi, PowerPC 601 memiliki 32-kilobyte chace untuk data dan 150 instruksi bersama-sama. Teras PowerPC 601 terdiri dari tiga unit eksekusi dengan alur-pipa yang independen, yakni unit pemroses bilangan bulat (IU, integer unit), unit floating-point (FPU, floating processing unit), dan unit pemroses operasi percabangan (BPU, branch processing unit) yang mampu mengeksekusi tiga instruksi sekaligus. Perkembangan menarik juga nampak dengan diadopsinya sebagian arsitektur RISC ke dalam prosesor CISC yang dikenal dengan sebutan arsitektur hibrid CISC/RISC. Intel Corporation mengimplementasikan arsitektur CISC/RISC ini ke dalam prosesor keluarga-86 dimulai dengan prosesor Pentium, kemudian prosesor P6 atau Pentium Pro. Beberapa produsen lain, dengan cara berbeda juga mulai mengadopsi arsitektur campuran CISC/RISC ini misalnya Matsushita Corp dengan prosesor V810, Advanced RISC Machines dengan ARM610, dan Hitachi dengan prosesor SH7032. 151 C. Rangkuman 1. Fitur desain tertentu telah menjadi ciri dari kebanyakan prosesor RISC, yaitu : One cycle execution time ( satu siklus waktu eksekusi): RISC processor memiliki CPI (clock per instruksi) dari satu siklus. Hal ini disebabkan oleh optimasi dari setiap instruksi pada CPU. Pipelining : sebuah teknik yang memungkinkan pelaksanaan simultan bagian atau tahap instruksi untuk memproses instruksi lebih efisien. 2. Large number of registers (register dalam jumlah besar) : filosofi desain RISC umumnya menggabungkan sejumlah besar register untuk mencegah dalam jumlah besar interaksi dengan memori. Ciri-ciri RISC adalah : Instruksi berukuran tunggal Ukuran yang umum adalah 4 byte. Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah. Tidak terdapat pengalamatan tak langsung. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmetika (misalnya, penambahan dari memori, penambahan ke memori). 152 3. Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang dapat dieksekusi dalam satu siklus clock. 4. Karakteristik dari RISC adalah sebagai berikut: Satu instruksi per siklus Operasi Mode pengalamatan yang sederhana Format instruksi yang sederhana Desain hardwired (tanpa microcode) Format instruksi yang fix Proses 5. register ke register compile yang cepat Dua masalah menghambat pencapaian kecepatan maksimum : Suatu memori port tunggal digunakan dan hanya dapat mengakses satu langkah memori. Sehingga memerlukan waktu tunggu tambahan untuk beberapa instruksi. Suatu instruksi pencabangan mengintrupsi aliran eksekusi. Untuk mangakomodasi dengan rangkaian yang minimum, suatu instruksi NOOP dapat disisipkan arus instruksi oleh kompiler atau asembler. 153 D. Latihan soal: 1. Sebutkan fitur desain tertentu yang telah menjadi ciri dari kebanyakan prosesor RISC! 2. Jelaskan yang anda ketahui mengenai RISC! 3. Sebutkan ciri-ciri RISC! 4. Sebutkan karakteristik dari RISC! 5. Bagaimana prospek arsitektur RISC dimasa mendatang? 154 BAB VI ARSITEKTUR KOMPUTER CISC A. Standar Kompetensi dan Indikator Standar Kompetensi 1. Memahami teknologi dan aplikasi CISC komputer dan penggunaannya 2. Memahami dan dapat mengaplikasikan RISC dan CISC komputer dalam dunia kerja Indikator Mahasiswa dapat menjelaskan penggunaan teknologi CISC dibanding teknologi yang ada sebelumnya. Mahasiswa dapat menjelaskan perbedaan antara teknologi RISC dan CISC. B. Materi 1. Definisi Complex instruction-set computing atau Complex Instruction-Set Computer (CISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC. Prosesor CISC memiliki instruksi-instruksi kompleks untuk memudahkan penulisan program bahasa assembly. Prosesornya memiliki set instruksi yang kompleks dan lengkap. Instruksi-instruksi yang tersedia memudahkan para programmer untuk mengembangkan aplikasi untuk plattform CISC. Di lain pihak, banyaknya instruksi dalam CISC dapat mengurangi kecepatannya. CISC merupakan kebalikan dari RISC, biasanya digunakan pada keluarga processor untuk PC (Intel, AMD, Cyrix). CISC dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan untuk mengerjakan pekerjaan yang diberikan. Konsep CISC menjadikan mesin mudah untuk diprogram menyulitkan dalam bahasa dalam rakitan, penyusunan tetapi konsep kompiler ini bahasa pemrograman tingkat tinggi. Dalam CISC banyak terdapat perintah bahasa mesin. 156 Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik", yaitu bagaimana cara membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi "level tinggi" seperti pemanggilan prosedur, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC ini memberikan keuntungan di mana ukuran programprogram yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat. Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana. 157 Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kodekode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970. Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86. Filsafat CISC adalah : Menggunakan microcode Membangun set instruksi yang besar Membangun set instruksi dengan HLL Perkembangan lebih lanjut dari implementasi dan desain CISC adalah munculnya CISC paralel, untuk pertama kalinya diterdapat pada prosesor 486 dari Intel yang telah mendukung setiap instruksi yang digunakan oleh prosesor158 prosesor sebelumnya. Meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi penyimpanan/pengambilan RISC, data tetapi dari tanpa RISC). batasan Prosesor- prosesor modern x86 telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga instruksiinstruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar. 2. Karakteristik desain CISC Sejak chip muncul pada tahun 1970-an dan 1980-an dengan desain yang unik, kebanyakan chip tersebut dirancang dengan desain CISC. Chip ini memiliki set instruksi yang sama, dan arsitektur perangkat keras yang serupa. Secara umum, set instruksi dirancang untuk kenyamanan bagi programmer bahasa assembly dan desain perangkat keras yang cukup rumit. Kendala desain yang mengarah ke pengembangan CISC (sejumlah kecil memori lambat, dan fakta bahwa kebanyakan mesin-mesin awal diprogram dalam bahasa assembly) memberikan set instruksi CISC beberapa karakteristik umum: 159 Format 2-operand, di mana instruksi memiliki sumber dan tujuan. Sebagai contoh, perintah tambah "tambahkan # 5, D0" akan menambahkan angka 5 untuk isi D0 dan hasilnya di tempat dalam register D0. Register to register, register to memory, dan perintah memory to register. Multiple addressing modes untuk memori, termasuk mode khusus untuk mengindeks melalui array. Panjang Variabel instruksi di mana biasanya bervariasi sesuai dengan mode pengalamatan. Instruksi membutuhkan beberapa clock cycle untuk mengeksekusi. Jika sebuah instruksi memerlukan informasi tambahan sebelum ia dijalankan. (misalnya, jika kebutuhan prosesor untuk membaca dua lokasi memori sebelum mereka beroperasi), mengumpulkan informasi tambahan tsb akan memerlukan tambahan clock cycle. Hasilnya, beberapa instruksi CISC akan memakan waktu lebih lama daripada yang lain untuk mengeksekusi. 160 3. Arsitektur Hardware Arsitektur hardware CISC memiliki beberapa karakteristik umum : Complex instruction-decoding logic, hal ini didorong oleh kebutuhan agar satu instruksi bisa mendukung berbagai mode pengalamatan. Terdapat Register fungsi umum (general purpose register) dalam jumlah kecil. Ini adalah akibat langsung dari instruksi yang dapat beroperasi secara langsung pada memori dan ruang yang terbatas pada chip tidak diperuntukkan bagi decoding instruksi, pelaksanaan dan penyimpanan microcode. Terdapat beberapa Register fungsi khusus (special purpose register). Banyak desain CISC yang menyisihkan register khusus untuk stack pointer, penanganan interupsi, dan sebagainya. Hal ini dapat menyederhanakan desain hardware, dengan mengorbankan pembuatan set instruksi yang lebih kompleks. Terdapat sebuah "Condition code" register, yang ditetapkan sebagai efek samping dari sebagian besar instruksi. Register ini mencerminkan apakah hasil dari 161 operasi terakhir kurang dari, sama dengan, atau lebih besar dari nol, dan mencatat jika kondisi tertentu terjadi kesalahan. 4. Mesin CISC Ideal Prosesor CISC dirancang untuk mengeksekusi setiap instruksi sebelum memulai instruksi berikutnya. Meskipun demikian, sebagian besar prosesor membagi eksekusi suatu instruksi ke dalam beberapa tahap tertentu; segera setelah satu tahap selesai, hasilnya dilanjutkan ke tahap berikutnya : Instruksi diambil dari memori utama. Instruksi didekode-kan: kode pengendali/kontrol dari microprogram mengidentifikasi jenis operasi yang akan dilakukan, di mana mencari data yang digunakan untuk melakukan operasi, dan di mana menempatkan hasilnya. Jika perlu, prosesor membaca informasi tambahan dari memori. Instruksi dieksekusi: Kode pengendali dari microprogram menentukan sirkuit / hardware yang akan melakukan operasi. Hasilnya ditulis ke memori. 162 Pada mesin CISC yang ideal, masing-masing instruksi lengkap akan memerlukan hanya satu siklus clock (yang berarti bahwa setiap tahap akan dilengkapi dalam sepersekian dari sebuah siklus). Ini adalah kecepatan maksimum yang mungkin untuk 1 mesin yang mengeksekusi instruksi pada suatu waktu. 5. Realistis mesin CISC Pada kenyataannya, beberapa instruksi mungkin membutuhkan lebih dari satu clock per tahap, seperti pertunjukan animasi. Namun, desain CISC dapat mentolerir perlambatan ini sejak ide di balik pembuatan CISC adalah untuk menjaga jumlah total siklus kecil dengan melakukan hal-hal rumit yang terjadi dalam setiap siklus. 6. Persamaan Kinerja CISC Classic Waktu eksekusi dapat dirumuskan sbb : Waktu eksekusi = N x S x T Dengan : N = jumlah instruksi S = jumlah rata-rata langkah per instruksi 163 T = waktu yang diperlukan untuk melaksanakan satu langkah Kecepatan eksekusi dapat ditingkatkan dengan menurunkan nilai dari ketiga varisbel di atas. Arsitektur CISC berusaha menurunkan nilai N, sedangkan Arsitektur RISC berusaha menurunkan nilai S dan T. Proses pipeline dapat digunakan untuk membuat nilai efektif S mendekati 1 (satu) artinya komputer menyelesaikan satu perintah dalam satu siklus waktu CPU. Nilai T dapat diturunkan dengan merancang perintah yang sederhana. Kerugian CISC overhead yang lebih besar pada decoding instruksi, sehingga memperlambat eksekusi Membutuhkan banyak pekerjaan dalam merancang chipnya. Register tidak dapat digunakan secara efisien Konsumsi dayanya tinggi. Banyak instruksi khusus digunakan tidak cukup untuk membenarkan keberadaan mereka, sekitar 20% dari instruksi yang tersedia digunakan dalam program yang khas. 164 Keuntungan CISC Mendukung bahasa tingkat tinggi (HLL) Ukuran program yang lebih kecil Panggilan ke memori utama lebih sedikit RAM yang diperlukan sedikit Pada arsitektur CISC seperti Intel x86, yang diperkenalkan pada tahun 1978, bisa terdapat ratusan instruksi program - perintah-perintah sederhana yang meminta sistem menambah angka, menyimpan nilai, dan menampilkan hasilnya. Bila semua instruksi panjangnya sama, instruksi sederhana akan memboroskan memori. Instruksi sederhana membutuhkan ruang penyimpanan 8 bit, sementara instruksi yang paling kompleks mengkonsumsi sebanyak 120 bit. Namun hal tersebut akan mengurangi kecepatannya. Arsitektur berbasis CISC juga memungkinkan para perancang prosesor untuk menambahkan set instruksi tambahan untuk keperluan tertentu disamping set instruksi standar yang sudah ada, misalnya set instruksi MMX (Multimedia Extension) yang ditambahkan pada prosesor buatan Intel, dan 3Dnow! pada prosesor keluaran AMD. 165 Karena itulah maka keluarga prosesor CISC lebih banyak digunakan dalam komputer pribadi dimana aplikasinya lebih luas, sementara keluarga prosesor RISC hanya digunakan pada workstation yang biasanya memiliki lingkup aplikasi yang lebih sempit. Ada juga teknologi yang menggabungkan kedua arsitektur tersebut, contohnya : Prosesor Intel dan AMD yang dijual secara komersil sekarang adalah pengembangan dari prosesor x86 yang menggunakan basis prosesor CISC. Instruksi set yang didukung oleh kedua prosesor tersebut menggunakan instruksi RISC yang lebih efisien dalam menangani data. 7. Pendekatan CISC Tujuan utama dari arsitektur CISC adalah untuk menyelesaikan tugas dalam beberapa kumpulan baris. Hal ini dicapai dengan membangun prosesor hardware yang mampu memahami dan melaksanakan serangkaian operasi. Untuk tugas tertentu ini, sebuah prosesor CISC akan dipersiapkan dengan instruksi tertentu (kita akan menyebutnya "mult"). Ketika dilaksanakan, instruksi ini load dua nilai ke register yang terpisah, mengalikan yang Operand dalam pelaksanaan unit, dan kemudian menyimpan produk dalam register yang sesuai. Dengan demikian, seluruh tugas mengalikan dua bilangan dapat diselesaikan dengan satu instruksi: 166 MULT 2:3, 5:2 Mult 2:3, 5:2 Mult adalah apa yang dikenal sebagai "instruksi kompleks." Itu beroperasi secara langsung pada bank memori komputer dan tidak memerlukan programmer untuk setiap pemuatan atau menyimpan fungsi. Ini mirip perintah dalam bahasa tingkat yang lebih tinggi. Sebagai contoh, jika kita membiarkan "a" mewakili nilai 2:3 dan "b" mewakili nilai 5:2, maka perintah ini identik dengan pernyataan C "a = a * b." Salah satu keuntungan utama dari sistem ini adalah bahwa kompiler harus melakukan sedikit pekerjaan untuk menerjemahkan bahasa tingkat tinggi ke dalam perakitan. Karena panjang kode relatif pendek, sangat sedikit RAM yang dibutuhkan untuk menyimpan instruksi. Penekanan diletakkan pada instruksi kompleks langsung ke perangkat keras. 8. Implementasi Pendekatan sistematis untuk menerapkan arsitektur CISC minimal dijelaskan oleh pseudocode yang diberikan di atas meliputi dua, pertama, mengidentifikasi register-transfer yang digunakan dalam kode, kemudian membangun sebuah mesin transfer register yang dapat melakukan transfer ini, dan 167 yang terakhir merancang sebuah unit kontrol untuk membangkitkan transfer dalam urutan yang benar. Gambar 36 Transfer register-logika Tugas masing-masing pernyataan dalam pseudocode menggambarkan register transfer. Satu register dapat mempertahankan nilai setiap variabel sederhana, dan daftar tugas untuk setiap variabel menentukan unit fungsional yang harus memproses input ke register yang sesuai dan register dari unit fungsional mana mengambil input mereka. Pendekatan ini diikuti dalam menurunkan transfer register-logika yang diuraikan pada Gambar 36. Di sini, sambungan ke unit kontrol diperlihatkan ke kiri, dan koneksi ke memori ke kanan. Tiga keadaan bus data yang diasumsikan, di mana sinyal kontrol MRE (memori baca) 168 menyebabkan isi word kata yang ditujukan untuk menjadi pintu gerbang ke data bus, dan transisi MWR (memori menulis) yang positif menyebabkan isi bus disimpan dalam word yang dialamatkan. Perlu dicatat bahwa semua kotak fungsional dalam Gambar diatas berhubungan erat dengan standar chip MSI. Register sp dan unit fungsional dapat diimplementasikan naik-turun oleh counter 74LS169A, register pc dapat diimplementasikan oleh sebuah counter 74LS161, dan register ir dapat diimplementasikan oleh 74LS298. Akhirnya, tujuan umum ALU seperti 74LS381 dapat melakukan operasi pada unit fungsional acc. Sebelum microprogram dapat ditulis, salah satu detail hardware harus ditentukan: Bagaimana penafsir microcode melakukan cabang bersyarat? Solusi yang digunakan di sini adalah yang diuraikan pada Gambar dibawah ini. Alamat microinstruction berikutnya dibentuk oleh kondisi oring yang dipilih oleh bidang masing-masing microinstruction dengan bit yang paling sedikit dari medan alamat berikutnya. \ 169 Gambar 37 Penafsir microcode melakukan cabang bersyarat Perhatikan penggunaan dua fasa clock; semua register di bagian data berubah di tepi negatif pulsa clock, sementara microprogram di tepi clock positif. Jika fase clock tunggal digunakan, di mana semua register berubah secara serempak , kecepatan keseluruhan sistem mungkin bisa lebih tinggi, tapi microprogram akan lebih besar karena kondisi cabang microcode tidak bisa bergantung pada hasil register transfer saat ini. 9. Karakteristik CISC versus RISC Rancangan RISC dapat memperoleh keuntungan dengan mengambil sejumlah feature CISC dan Rancangan 170 CISC dapat memperoleh keuntungan dengan mengambil sejumlah feature RISC. Hasilnya adalah rancangan RISC yang terbaru, yang dikenal sebagai PowerPC, dimana rancangan ini tidak lagi “murni” RISC. Dan kemudian rancangan CISC yang terbaru yang dikenal sebagai Pentium, dimana memiliki beberapa karakteristik RISC. CISC menawarkan set intruksi yang powerful, kuat, tangguh, maka tak heran jika CISC memang hanya mengenal bahasa asembly yang sebenarnya ditujukan bagi para programmer. Oleh karena itu ,CISC hanya memerlukan sedikit instruksi untuk berjalan. Sistem mikrokontroler selalu terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Perangkat lunak ini merupakan deretan perintah atau instruksi yang dijalankan oleh prosesor secara sekuensial. Instruksi itu sendiri sebenarnya adalah bit-bit logik 1 atau 0 (biner) yang ada di memori program. Angka-angka biner ini jika lebarnya 8 bit disebut byte dan jika 16 bit disebut word. Deretan logik biner inilah yang dibaca oleh prosesor sebagai perintah atau instruksi. Supaya lebih singkat, angka biner itu biasanya direpresentasikan dengan bilangan hexa (HEX). Tetapi bagi manusia, menulis program dengan angka biner atau hexa sungguh merepotkan. Sehingga dibuatlah bahasa assembler 171 yang direpresentasikan dengan penyingkatan kata-kata yang cukup dimengerti oleh manusia. Bahasa assembler ini biasanya diambil dari bahasa Inggris dan presentasinya itu disebut dengan Mnemonic. Masing-masing pabrik mikroprosesor melengkapi chip buatannya dengan set instruksi yang akan dipakai untuk membuat program. Biner : Hexa : Mnemonic 10110110 : B6 : LDAA ... 10010111 : 97 : STAA ... 01001010 : 4A : DECA ... 10001010 : 8A : ORAA ... 00100110 : 26 : BNE ... 00000001 : 01 : NOP... 01111110 : 7E : JMP ... 172 Tabel 11 Perbedaan CISC dan RISC CISC RISC Penekanan pada perangkat keras Penekanan pada perangkat lunak Termasuk multi-clock instruksi kompleks Single- clock, instruksi sederhana Memory-to-memory: "LOAD" and "STORE" tergabung pada instruksi Register to register : "LOAD" and "STORE" instruksi independen Small code sizes, high cycles per second Large code sizes Low cycles per second Transistor yang digunakan untuk menyimpan instruksi yang kompleks Menggunakan lebih banyak transistor pada register memori Jadi sebenarnya Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Sebagai contoh, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian 173 mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja. 10. Perbedaan karakteristik CISC dan RISC serta Superscalar CISC dan RISC perbedaannya tidak signifikan jika hanya dilihat dari terminologi set instruksinya yang kompleks atau tidak (reduced). Lebih dari itu, RISC dan CISC berbeda dalam filosofi arsitekturnya. Filosofi arsitektur CISC adalah memindahkan kerumitan software ke dalam hardware.Teknologi pembuatan IC saat ini memungkinkan untuk menamam ribuan bahkan jutaan transistor di dalam satu dice. Bermacam-macam instruksi yang mendekati bahasa pemrogram tingkat tinggi dapat dibuat dengan tujuan untuk memudahkan programmer membuat programnya. Beberapa prosesor CISC umumnya memiliki microcode berupa firmware internal di dalam chip-nya yang berguna untuk menterjemahkan instruksi makro. Mekanisme ini bisa memperlambat eksekusi instruksi, namun efektif untuk membuat instruksi-instruksi yang kompleks. Untuk aplikasiaplikasi tertentu yang membutuhkan singlechip komputer, prosesor CISC bisa menjadi pilihan. 174 C. Rangkuman 1. CISC adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolakbelakang dengan RISC. 2. Beberapa karakteristik umum set instruksi pada CISC: Format 2-operand, di mana instruksi memiliki sumber dan tujuan. Sebagai contoh, perintah tambah "tambahkan # 5, D0" akan menambahkan angka 5 untuk isi D0 dan hasilnya di tempat dalam register D0. Register to register, register to memory, dan perintah memory to register. Multiple addressing modes untuk memori, termasuk mode khusus untuk mengindeks melalui array. Panjang Variabel instruksi di mana biasanya bervariasi sesuai dengan mode pengalamatan. Instruksi membutuhkan beberapa clock cycle untuk mengeksekusi. Jika sebuah instruksi memerlukan informasi tambahan sebelum ia dijalankan. 175 3. Kerugian CISC overhead yang lebih besar pada decoding instruksi, sehingga memperlambat eksekusi Membutuhkan banyak pekerjaan dalam merancang chipnya. Register tidak dapat digunakan secara efisien Konsumsi dayanya tinggi. Banyak instruksi khusus digunakan tidak cukup untuk membenarkan keberadaan mereka, sekitar 20% dari instruksi yang tersedia digunakan dalam program yang khas. 4. Keuntungan CISC Mendukung bahasa tingkat tinggi (HLL) Ukuran program yang lebih kecil Panggilan ke memori utama lebih sedikit RAM yang diperlukan sedikit 176 D. Latihan Soal: 1. Apa yang dimaksud dengan CISC ? 2. Sebutkan filsafat CISC! 3. Bagaimana Karakteristik desain CISC? 4. Sebutkan kelebihan dan kekurangan CISC! 5. Jelaskan perbedaan RISC dan CISC! 177 BAB VII PIPELINE A. Standar Kompetensi dan Indikator Standar Kompetensi Dapat mengaplikasikan dan berinovasi dalam penggunaan Pipeline. Indikator Mahasiswa dapat menghitung jumlah set instruksi yang masuk pada suatu pipelining dan dapat mengkreasikannya dengan kategori pipeline lain. B. Materi 1. Pembahasan Awal Pipeline dalam teknologi komputasi adalah sebuah mesin atau piranti yang bertugas melaksanakan perintah yang berbeda-beda namun dapat dijalankan dalam waktu yang bersamaan dan setiap perintah yang berjalan tersebut memiliki fase yang berbeda. Pipeline merupakan suatu saluran untuk mengalirkan instruksi ke CPU seperti pada tahapan fetch, decode, execute, store dan hal lainnya. Pada prosesor yang menggunakan pipeline, setiap tahapan dari pipeline dilaksanakan berdasarkan clock cycle yang dimiliki oleh prosesor tersebut. 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 yang dialirkan secara kontiniu 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 microprocessor yang arsitektur menerapkan pipeline teknik dengan 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 179 dalam 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 ini pada microprocessor akan didapatkan peningkatan kinerja 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. Data dalam pipeline bekerja bersama-sama, mengalir bersama-sama namun tetap dalam satuan eksekusi yang berbeda. Ada kasus tertentu yang memang sangat tepat bila memanfaatkan pipeline ini, dan juga ada kasus lain yang mungkin tidak tepat bila menggunakan teknologi pipeline. 180 2. Kategori Pipeline Pipeline terbagi 2 macam : Pipeline Unit Arithmetic Pipeline Unit Instruction Pipeline Unit Arithmetic berguna untuk operasi vektor. Pipeline ini terdiri dari 4 tahap, yaitu : Exponen comparison Mantissa aligment Mantissa Add/Subtract Result Normalization Gambar 38 Tahapan Pipeline 181 Gambar 39 4-segmen arithmetic pipeline Pipeline Unit Instruction berguna untuk komputer yang memiliki set instruksi yang sederhana. Pipeline ini terdiri dari 5 tahap, yaitu : Instruction fetch Instruction decode Execute instruction Memory access Register write back Gambar 40 5-segmen instruction pipeline 182 Gambar 41 Mikroprosesor Mikroprosesor yang terkenal menggunakan pipeline ini adalah keluarga Pentium 4. Pipeline memiliki keunggulaln lebih dibanding Superscalar jika diterapkan pada mikroprosesor. Karena jalur datanya yang bisa terpisah sehingga sangat memungkinkan lebih cepat dibanding superscalar yang harus “antri dahulu” , ini pula yang sekaligus menjadi perbedaan utama antara Pipeline dengan Superscalar. Meskipun demikian bukan berarti pipeline bekerja mulus dengan segala keunggulannya. Justru dengan itu maka ada beberapa hal yang perlu diperhatikan dalam menggunakan teknik pipeline: 183 1. Terjadinya penggunaan resource yang bersamaan Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar. 2. Ketergantungan terhadap data Misalnya terdapat instruksi yang berurutan dimana memerlukan data dari instruksi yang sebelumnya. Letak ketergantungan terjadi misalnya intruksi kedua yang 'tidak mau' jalan kalau intruksi pertama juga tidak jalan. Jadi intruksi kedua sangat tergantung pada keadaan intruksi pertama. 3. Pengaturan Jump ke suatu lokasi memori. Karena diproses secara bersamaan, bisa saja instruksi pertama berhasil, namun instruksi kedua memerlukan Jump memory, maka terjadilah Jump memory oleh program counter. Baru kemudian ke instruksi ketiga, padahal instruksi ketiga tidak memerlukan jump memory seperti yang kedua, maka program counter harus mengatur lagi agar instruksi ketiga dapat berjalan. Akibatnya menyebabkan perubahan Program counter 184 3. Metode kerja Pipeline Metode kerja dari suatu pipeline dapat dilihat pada gambar disamping ini, dimana menggunakan 4 instruksi. Pada gambar tersebut, kotak abu-abu atas adalah daftar instruksi yang menunggu untuk dijalankan (waiting instruction). Kotak abu-abu bagian bawah adalah daftar instruksi yang telah selesai dieksekusi (complete instruction). Sedangkan kotak putih bagian tengah adalah pipeline. Gambar 42 Metode kerja pipeline 185 Pelaksanaan instruksi-instruksi tersebut dapat ditabelkan sebagai berikut : Tabel 12 Pelaksanaan intruksi Time 0 Execution Empat instruksi sedang menunggu untuk dieksekusi 1 Instruksi hijau diambil dari memori 2 Instruksi hijau didekode Instruksi ungu diambil dari memori Instruksi hijau dieksekusi (operasi sebenarnya 3 dilakukan) 4 Instruksi ungu didekode Instruksi biru diambil dari memori Hasil eksekusi Instruksi hijau ditulis kembali ke file atau memori register 5 Instruksi ungu dieksekusi Instruksi biru didekode Instruksi merah diambil dari memori Instruksi hijau selesai dieksekusi Hasil eksekusi Instruksi ungu ditulis kembali ke file/memori register Instruksi biru dieksekusi 186 6 Instruksi merah didekode Instruksi Ungu selesai dieksekusi Hasil eksekusi Instruksi biru ditulis kembali ke file/memori register 7 Instruksi merah dieksekusi Instruksi biru selesai dieksekusi Hasil eksekusi Instruksi merah ditulis kembali ke file/memori register 8 9 Instruksi merah selesai dieksekusi Semua instruksi telah selesai dijalankan Keuntungan dan Kekurangan Pipeline Tidak semua kasus dapat diatasi dengan Pipeline. Ada beberapa kemungkinan yang menjadi kelemahan selain hal yang menguntungkan. Instruksi Pipeline dikatakan fully pipelined jika dapat menerima instruksi baru setiap clock cycle. Namun pipeline yang Non-fully pipelined harus menunggu siklus berikutnya dan progres pipeline tertunda. Keuntungan menggunakan Pipeline : Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi dalam banyak kasus. 187 Beberapa sirkuit kombinasi seperti penambah atau pengganda (adder/multiplier)dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit. Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs sirkuit kombinasi yang lebih kompleks. Kekurangan tidak menggunakan Pipeline : Prosesor Non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan instruksi serial yang dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi. Instruksi prosesor non-pipeline sedikit lebih lambat dari pada dalam pipeline. Hal ini disebabkan flip-flop ekstra harus ditambahkan ke jalur data dari prosesor pipeline. Prosesor Non-pipeline memiliki bandwidth instruksi yang stabil. Kinerja prosesor pipeline lebih sulit diprediksi dan bervariasi lebih luas di antara program yang berbeda. 188 Dual pipeline Dual pipelining diperkenalkan pada Intel Pentium prosesor. Teknologi ini memungkinkan prosesor membagi perintah menjadi dua lebih pendek dan mengeksekusi perintah secara bersamaan ketika mereka menerima perintah yang panjang. Jika ada tugas-tugas terpisah yang harus diselesaikan untuk hasil yang independen terhadap satu sama lain, mereka dapat dijalankan secara bersamaan untuk menghemat waktu. Sebagai contoh, misalkan suatu perintah yang diberikan untuk mencari hasil dari 14 * 27 + 512 ^ 2. Urutan operasi mewajibkan 512 ^ 2 harus dilakukan terlebih dahulu dan kemudian 14 dan 27 harus dikalikan. Hasil dari dua tindakan ini kemudian ditambahkan bersama-sama. Operasi ini terdapat tiga langkah. Dengan dual pipeline, dua tindakan pertama akan dihitung secara simultan oleh berbagai pipeline dan kemudian mereka akan ditambahkan bersama-sama. Kasus ini hanya membutuhkan dua langkah, penyimpanan satu langkah. RISC Pipeline Sebuah pipeline prosesor RISC beroperasi dengan cara yang sama seperti pipeline umumnya, walaupun tahap-tahap 189 pada pipeline-nya berbeda. Prosesor yang berbeda memiliki jumlah tahap/stage yang berbeda, namun pada dasarnya adalah variasi dari lima tahapan sebelumnya. Tahap-tahap yang digunakan pada prosesor R3000 MIPS adalah : 1. Mengambil instruksi dari memori 2. Membaca register dan men-decode instruksi pada register tersebut. 3. Mengeksekusi instruksi atau menghitung sebuah alamat. 4. Mengakses suatu operand dalam memori data. 5. Menulis hasilnya ke dalam suatu register. Panjang pipeline tergantung pada panjang langkah terpanjang. Karena instruksi RISC lebih sederhana daripada yang digunakan prosesor CISC, maka prosesor RISC lebih kondusif/tepat bila menggunakan pipeline dibanding prosesor CISC. Ini karena CISC memiliki panjang instruksi yang bervariasi, sedangkan instruksi pada RISC semua sama panjang dan dapat diambil dalam satu operasi. Idealnya, masing-masing tahapan pada pipeline prosesor RISC harus mengambil 1 siklus clock prosesor, sehingga sebuah instruksi selesai setiap clock cycle dan rata-rata satu siklus per instruksi (CPI). 190 4. Permasalahan Pipeline Dalam prakteknya, bagaimanapun prosesor RISC beroperasi lebih dari satu siklus per instruksi. Adakalanya prosesor mungkin hasil dari dependensi data dan instruksi cabang. Sebuah ketergantungan data terjadi ketika sebuah instruksi tergantung pada hasil dari instruksi sebelumnya. Sebuah instruksi tertentu mungkin perlu data dalam register yang belum disimpan karena itu adalah tugas dari instruksi sebelumnya yang tahapnya belum tercapai pada pipeline. Contoh : add $r3, $r2, $r1 add $r5, $r4, $r3 Gambar 43 Permasalahan pipeline 191 Dalam contoh ini, instruksi pertama memberitahu prosesor untuk menambahkan isi register r1 dan r2 dan menyimpan hasilnya dalam register r3. Instruksi kedua, menambah r3 dan r4 dan menyimpan hasilnya pada r5. Kita tempatkan set instruksi tersebut pada pipeline. Ketika instruksi yang kedua berada pada tahap kedua, prosesor akan berusaha untuk membaca r3 dan r4 dari register. Meskipun instruksi pertama hanyalah satu langkah di depan instruksi kedua, sehingga isi r1 dan r2 selalu ditambahkan, tapi hasilnya belum ditulis ke register r3. Oleh karena itu instruksi yang kedua tidak dapat membaca dari register r3 karena belum ditulis dan harus menunggu sampai data yang dibutuhkan disimpan. Akibatnya, pipeline tersebut terhenti dan sejumlah instruksi yang kosong (bubble) masuk ke dalam pipeline. Dependensi data mempengaruhi panjang jaringan pipeline lebih dari yang lebih pendek karena membutuhkan waktu lebih lama untuk suatu instruksi mencapai tahap akhir penulisan register dari suatu pipeline yang panjang. Solusi untuk masalah ini adalah dengan kode pemesanan kembali. Jika, seperti dalam contoh di atas, instruksi berikut tidak ada hubungannya dengan dua instruksi yang pertama, kode bisa diatur ulang sehingga instruksi 192 tersebut dijalankan di antara dua instruksi tergantung instruksi dan pipeline dapat mengalir secara efisien. Tugas penataan kode ini kembali umumnya diserahkan kepada compiler. Instruksi cabang ini memberitahukan prosesor untuk membuat keputusan instruksi apa berikutnya yang akan dieksekusi berdasarkan pada hasil instruksi lain. Instruksi cabang dapat menyulitkan pipeline jika suatu cabang dikondisikan pada hasil dari suatu instruksi yang belum diselesaikan pada pipeline. Contoh: Loop : add $r3, $r2, $r1 sub $r6, $r5, $r4 beq $r3, $r6, Loop Contoh di atas memerintahkan processor untuk menambahkan r1 dan r2 dan menyimpan hasilnya dalam r3, kemudian kurangi r4 dari r5, dan meyimpan hasilnya pada r6. Dalam instruksi ketiga, ”beq” singkatan dari cabang jika sama. Jika isi r3 dan r6 adalah sama, prosesor harus menjalankan instruksi berlabel "Loop". Kalau tidak, harus melanjutkan ke instruksi berikutnya. Pada Contoh ini, prosesor tidak dapat menentukan cabang mana yang diambil karena nilai r3 atau r6 belum ditulis ke dalam register. 193 Prosesor dapat berhenti, tetapi metode yang lebih canggih dalam menangani instruksi cabang adalah dengan prediksi cabang. Prosesor dibuat menebak jalan mana yang akan diambil - jika salah menebak, apa pun yang ditulis ke dalam register harus bersih, dan pipeline harus diulang kembali dengan instruksi yang benar. Beberapa metode prediksi cabang yaitu cabang menunjuk ke belakang, cabang menunjuk ke depan, prediksi cabang kurang statis. Perkembangan Pipeline Dalam rangka untuk membuat prosesor lebih cepat, berbagai metode mengoptimalkan jaringan pipeline telah dibuat. Mengacu kepada Super pipelining membagi jalur pipeline ke beberapa langkah/tahapan lagi. Tahap-tahap ini membuat pipeline menjadi semakin cepat karena masingmasing tahap ini lebih pendek. Idealnya, sebuah pipeline dengan lima tahap harus lima kali lebih cepat daripada prosesor non-pipeline. Instruksi dijalankan dengan cepat setelah setiap tahap selesai, dan setiap tahap membutuhkan seperlima dari jumlah waktu yang diperlukan oleh instruksi non-pipeline. Dengan demikian, 194 sebuah prosesor dengan 8-langkah pipeline (MIPS R4000) akan lebih cepat dibandingkan dengan prosesor 5-langkah. Pada prosesor R4000 membagi beberapa tahap/stage menjadi dua. Contohnya Instruksi fetch, dilakukan dalam dua tahap. Tahapan-tahapannya adalah sebagai berikut : 1. Instruction Fetch (First Half) 2. Instruction Fetch (Second Half) 3. Register Fetch 4. Instruction Execute 5. Data Cache Access (First Half) 6. Data Cache Access (Second Half) 7. Tag Check 8. Write Back Pipeline Superscalar melibatkan beberapa jaringan pipeline secara paralel. Komponen internal dari prosesor yang direplikasi sehingga dapat memulai beberapa instruksi dalam beberapa atau seluruh tahap pipeline. RISC System/6000 memiliki pipeline bercabang dengan jalan yang berbeda untuk floating-point dan integer instruksi. Jika ada campuran dari kedua jenis ini dalam sebuah program, prosesor dapat menjaga kedua percabangan tersebut berjalan secara bersamaan. Kedua jenis instruksi ini berbagi dua tahap awal (Instruksi Fetch dan Instruksi 195 Dispatch) sebelum mereka di percabangkan/dibagi. Namun, sering kali pipeline superscalar mengacu pada beberapa salinan dari semua tahap pipeline. 196 C. Rangkuman 1. Pipeline dalam teknologi komputasi adalah sebuah mesin atau piranti yang bertugas melaksanakan perintah yang berbeda-beda namun dapat dijalankan dalam waktu yang bersamaan dan setiap perintah yang berjalan tersebut memiliki fase yang berbeda. 2. Pipeline terbagi 2 macam : 3. Pipeline Unit Arithmetic Pipeline Unit Instruction Pipeline Unit Arithmetic berguna untuk operasi vektor. Pipeline ini terdiri dari 4 tahap, yaitu : 4. Exponen comparison Mantissa aligment Mantissa Add/Subtract Result Normalization Pipeline Unit Instruction berguna untuk komputer yang memiliki set instruksi yang sederhana. Pipeline ini terdiri dari 5 tahap, yaitu : Instruction fetch Instruction decode Execute instruction Memory access Register write back 197 5. Keuntungan menggunakan Pipeline : Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi dalam banyak kasus. Beberapa sirkuit kombinasi seperti penambah atau pengganda (adder/multiplier)dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit. Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs sirkuit kombinasi yang lebih kompleks. 6. Kekurangan tidak menggunakan Pipeline : Prosesor Non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan instruksi serial yang dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi. Instruksi prosesor non-pipeline sedikit lebih lambat dari pada dalam pipeline. Hal ini disebabkan flip-flop ekstra harus ditambahkan ke jalur data dari prosesor pipeline. Prosesor Non-pipeline memiliki bandwidth instruksi yang stabil. Kinerja prosesor pipeline lebih sulit 198 diprediksi dan bervariasi lebih luas di antara program yang berbeda. 199 D. Latihan Soal: 1. Jelaskan apa yang dimaksud dengan pipeline! 2. Pipeline dibagi dua kategori, sebutkan dan jelaskan! 3. Gambarkan metode kerja pipeline dengan menggunakan 4 instruksi! 4. Sebutkan kelebihan dan kekurangan pipeline! 5. Mengapa prosesor dengan 8-langkah pipeline (MIPS R4000) lebih cepat dibandingkan dengan prosesor 5langkah. 6. Suatu komputer dimana prosesornya menggunakan pipeline dengan 4 stage yaitu; fetch-decode-executewrite back. Bila ada 3 instruksi yang akan diproses pada pipeline tersebut, berapa clock cycle yang dibutuhkan untuk menyelesaikan seluruh instruksi tersebut? (gambarkan metode kerjanya) 200 Daftar Pustaka Albert Paul Malvino, “Elektronika Komputer Digital’, edisi kedua, Penerbit Erlangga, 1996. Andrew S. Tanenbaum, “Organisasi Komputer Tersetruktur”, edisi Bahasa Indonesia, edisi pertama, jilid 2, Penerbit Salemba Teknika, 2002. Prof. Dr. Jogiyanto H.M, M.B.A., Akt, “Pengenalan komputer”, penerbit Andi, 2005. M. Morris Mano, “Computer System Architecture”, third edition, Prentice Hall International, 1993. Syahrul, “Organisasi dan Arsitektur Komputer”, Penerbit Andi Yogyakarta, 2010. William Stalling, “Organisasi dan Arsitektur Komputer”, edisi bahasa Indonesia, Jilid I, Prenhallindo, 1998. William Stalling, “Organisasi dan Arsitektur Komputer”, edisi bahasa Indonesia, Jilid II, edisi 6, PT. Indeks, Kelompok Gramedia, 1998. 201 Glosarium ALU ASCII ANSI BCD CD CD-ROM CPU CPI CISC DRAM DMA DS EPROM EEPROM HLL HSA I/O IS ISA IC IR IRA LM LSI MISD Arithmetic and Logic Unit American Standards Code for Information Interchange American National Standards Institute Binary Code Decimal Compact Disk Compact Disk-Read Only Memory Central Processing Unit Clock Per Instruction Complex Instruction Set Computer Dynamic Random Access Memory Direct Memory Access Data Stream Erasable Programmable Read Only Memory Electrically Erasable Programmable Read Only Memory Hogh Level Language Hardware-System Architecture Input/Output Instruction Stream Instruction-Set Architecture Integrated Circuit Instruction Register International Reference Alphabet Local Memory Large Scale Integration Multiple Instruction Stream, Single Data Stream 202 MIMD Multiple Instruction Stream, Multiple Data Stream MU Memory Unit NUMA Non Uniform Memory Access CC NUMA Coherensi Cache NUMA OS Operating System OPCODE Operation Code PC Personal Computer PCI Periferal Compenent Interconnect PROM Programmable Read Only Memory PU Processing Unit RAM Random Access Memory RISC Reduced instruction Set Computer ROM Read Only Memory RTL Register Transfer Language SCSI Small Computer System Inteface SISD Single Instruction Stream, Single Data Stream SIMD Single Instruction Stream, Multiple Data Stream SMP Symmetric Multy Processor UMA Uniform memory access VLSI Very Large Scale Integration 203 Indeks alamat, 38 algoritma, 82, 132, 138 alternatif, 161 Alternatif, 103, 140 arbitrasi, 100 aritmatika, 53 arsitektur, 28, 29, 37, 75, 92, 129, 135 Arsitektur, i, ii, iv, vii, 1, 2, 4, 5, 6, 9, 27, 28, 76, 79, 89, 124, 127, 143, 147, 153, 164, 167, 168, 202 atom, 116 Barcode, 18 cache, 67, 106 chatting, 17 clock cycle, 182 Cluster, iv, vii, 4, 8, 81, 85, 109, 111, 120 clustering, 109 Complex, 164 eksekusi, 58, 183 Ekslusif, 108 204 elemen, vii, 30, 31, 33, 63, 72, 77, 79, 83, 84, 86, 93, 117, 118, 121, 136 Handy cam, 16 hardware, 28, 99 Headphone, 17 HSA, 28, 76 indikator, 69 input, 12, 14, 23 Input, 11 instruks, 177 instruksi, 29, 30, 32, 38, 127, 163 Instruksi, 32, 36 internal, 43, 47, 59, 93, 113, 122, 162, 177, 198 ISA, 27 Joy Stick, 13, 23 Keyboard, 12 kode biner, 31, 77 komputasi, 36, 37 komputer, 11, 16, 19, 23, 33, 35, 88 Komputer, 12 Konfigurasi, 103 205 laserjet, 20 Light Pen, 15 logika, 51, 53 makro, 177 memori, 33, 48, 56, 88 Microphone, 17 microprocessor, 182 mikro, 73, 82, 92, 144, 160, 162 mnemonics, 34 monitor, 13, 14, 15, 18, 21 mouse, 15 Mouse, 12, 13 multiprosesor, 107 nirkabel, 20 opcode, 34, 45, 61 operand, 41, 47, 49, 57, 60 Operand, 169 operand., 50 operasi, 51, 53, 94 Operasi, 45 output, 20 206 Output, 19, 25 paralel, 2, 3, 7, 80, 81, 82, 83, 84, 86, 87, 93, 117, 118, 119, 120, 122, 161, 183, 198 pengalamatan, 28, 75 perangkat, 11 Perangkat, 14, 15, 16, 22 perekam, 16 periperal, 19, 117 pipeline, 183 Pipeline, v, viii, 2, 3, 4, 5, 6, 7, 10, 181, 184, 185, 186, 188, 190, 191, 192, 194, 197, 198, 199, 200, 201 Pipelining, 150 Plotter, 25 pointer, 12 printer, 20 Printer, 20, 25 program, 36, 55 Program, 40 programmer, 174 prosedur, 136 prosesor, 52, 84, 96 Protokol, 104, 105, 106, 107, 108 207 Proyektor, 21, 25 reduced, 126 Reduced, 124 register, 32, 33, 35, 38, 41, 47, 59, 60, 63, 173 Register, 29 Reliabilitas, 102 scanner, 14, 23 Scanner, 14 server, 109 siklus, 57, 67, 99, 104, 121, 124, 125, 130, 131, 143, 144, 149, 155, 156, 166, 167, 190, 191, 193, 194, 200 simbolik, 34 software, 92, 105, 110, 115, 116, 119, 132, 138, 140, 174, 177 Speaker, 22 Stack, 56, 63, 78 touchpad, 14, 23 touchscreen, 15 Track Ball, 14 transfer, 47 transistor, 128, 131, 161, 176, 177 variabel, 35, 36, 57, 68, 72, 73, 105, 135, 136, 138, 139, 140, 141, 171 208 virtual, 55 Webcam, 16, 17 209 Profil Penulis Rozeff Pramana dilahirkan di Bengkalis 1 April 1978. Penulis tertarik pada bidang teknik sejak duduk di sekolah menengah pertama dan meneruskan peminatannya tersebut ke STM dengan jurusan Teknik Elektro. Penulis melanjutkan studi ke jenjang D3 dan berlanjut ke jenjang S1 dengan jurusan yang sama yaitu Teknik Elektro di Institut Sains dan Teknologi Nasional Jakarta. menyelesaikan Magister Teknik Elektro di Universitas Trisakti Jakarta. Disela kesibukan sebagai mahasiswa, Penulis juga bekerja paruh waktu dibidang Komputer. Pekerjaan profesional mulai dijalani penulis pada tahun 2000 sebagai staf teknik disalah satu BUMN yang bergerak dibidang survey. Penulis juga pernah bekerja di perusahaan-perusahaan swasta nasional yang bergerak di bidang desain/manufaktur dan telekomunikasi. Pekerjaan utama saat ini adalah sebagai dosen tetap Teknik Elektro di Fakultas Teknik Universitas Maritim Raja Ali Haji Kepulauan Riau. Fokus penelitian penulis adalah pada bidang Teknik Elektro Maritim dan Telekomunikasi. Alena Uperiati, lahir di Tanjung batu, Kepulauan Riau pada 22 Juni 1989. Ia adalah alumni SMA Negeri 5 Batam, Kepulauan Riau. Penulis menyelesaikan S1 di Universitas Maritim Raja Ali Haji (UMRAH) angkatan 2008 di Fakultas Teknik Jurusan Teknik Informatika dan baru menyelesaikan program Magister di Universitas Gadjah Mada (UGM) angkatan 2013l././ di Fakultas MIPA Jurusan Ilmu Komputer. Mulai dari 2016 mengabdikan diri sebagai dosen di Jurusan Teknik Informatika Universitas Maritim Raja Ali Haji (UMRAH). 210