Kamis, 30 November 2017

PROSESOR PARALEL

2. Prosesor Paralel
2.1 Jaringan Interkoneksi
Interkoneksi adalah hubungan yang terjadi antara satu koneksi dengan koneksi yang lain. Interkoneksi antar jaringan adalah hubungan atau koneksi antara satu jaringan dengan jaringan yang lain. Jaringan yang terhubung ini bukan hanya jaringan telekomunikasi namun semua bentuk jaringan yang melakukan interkoneksi.
Banyak yang menganalisa interkoneksi antar jaringan adalah hubungan antar jaringan telekomunikasi. Namun secara harfiah interkoneksi jaringan tidak hanya mengarah ke jaringan telekomunikasi, namun ke semua jaringan.Topology nya adalah bagaimana sebuah jaringan itu terbentuk, dan bagaimana keamanan dari jaringan itu sendiri.
Komputer yang terhubung dengan komputer yang lain melalui jaringan dapat melakukan koneksi dengan konfigurasi jaringan. Koneksi ini memerlukan sebuah Port Koneksi pada kartu jaringan (NIC = Network Interface Card) yang berfungsi sebagai jembatan dari komputer ke sebuah jaringan. Peralatan yang dibutuhkan untuk koneksi antara jaringan diantaranya adalah :
1. NIC (Network Interface Card)
Fungsi NIC selain itu adalah untuk mengubah data paralel dalam sebuah bus komputer ke dalam bentuk data serial. Untuk koneksi ini NIC membutuhkan sebuah penghubung yang berupa kabel, kabel ini dapat berupa kabel UTP atau Fiber Optic.
2. HUB
Hub ini ada dua jenis, yaitu passive hub dan active hub. Fungsi hub adalah sebagai terminal penghubunga antara dua koneksi atau lebih. Dimana hub ini sebagai terminal persinggahan dan menambah node didalam sebuah LAN (Local Area Network).

3. Repeater
Repeater ini berfungsi memperluas cakupan suatu jaringan tanpa melakukan filter terhadap sinyal yang masuk dan keluar. Tugas utamanya mensikronisasikan dan mentransmisikan ulang sinyal dari suatu segmen ke segmen yang lain didalam sebuah jaringan.
4. Bridge
Fungsi Bridge kurang lebih sama dengan repeater namun Bridge melakukan filter terhadap sinyal, sehingga setiap segmen tidak dipengaruhi oleh segmen yang lain. Selain itu Bridge juga dapat menghubungkan jaringan yang berbeda segmen protokol aksesnya, namun dengan syarat protokol komunikasinya sama.
5. Router
Fungsi router adalah menentukan jalur routing dan mengirimkan paket-paket informasi pada internet yang bekerja pada layer 3 OSI.

Komunikasi diantara terminal-terminal yang berbeda harus dapat dilakukan dengan suatu media tertentu. Interkoneksi yang efektif antara prosesor dan modul memori sangat penting dalam lingkungan komputer. Menggunakan arsitektur bertopologi bus bukan merupakan solusi yang praktis karena bus hanya sebuah pilihan yang baik ketika digunakan untuk menghubungkan komponen-komponen dengan jumlah yang sedikit. Jumlah komponen dalam sebuah modul IC bertambah seiring waktu. Oleh karena itu, topologi bus bukan topologi yang cocok untuk kebutuhan interkoneksi komponen-komponen di dalam modul IC. Selain itu juga tidak dapat diskalakan, diuji, dan kurang dapat disesuaikan, serta menghasilkan kinerja toleransi kesalahan yang kecil.
        Di sisi lain, sebuah crossbar menyediakan interkoneksi penuh diantara semua terminal dari suatu sistem tetapi dianggap sangat kompleks, mahal untuk membuatnya, dan sulit untuk dikendalikan. Untuk alasan ini jaringan interkoneksi merupakan solusi media komunikasi yang baik untuk sistem komputer dan telekomunikasi. Jaringan ini membatasi jalur-jalur diantara terminal komunikasi yang berbeda untuk mengurangi kerumitan dalam menyusun elemen switching.
Gambar Arsitektur Crossbar


       Jaringan interkoneksi dapat dibagi menjadi statis atau jaringan langsung (direct network), dinamis atau jaringan tidak langsung (undirect network), dan hybrid. Jaringan hybrid adalah jaringan interkoneksi yang memiliki struktur yang rumit. 

Klarifikasi Jaringan Interkoneksi


1. Jaringan Interkoneksi Statis
Dalam jaringan interkoneksi statis, jalur diantara terminal yang berbeda dari sistem bersifat pasif dan hanya jalur yang telah ditentukan oleh prosesor pengendali yang dapat digunakan untuk berkomunikasi. Masing-masing terminal dihubungkan secara langsung ke terminal lain dengan jalur interkoneksi tertentu.

2. Jaringan Intekoneksi Dinamis
Jika dibandingkan dengan jaringan statis, dengan jalur interkoneksi antar terminal yang pasif, konfigurasi jalur dalam sebuah jaringan interkoneksi dinamis merupakan fungsi dari kondisi elemen switching. Jalur diantara terminal pada jaringan interkoneksi dinamis berubah sesuai dengan perubahan kondisi elemen switching. Jaringan dinamis dibangun menggunakan crossbar (khususnya yang berukuran 2 x 2).
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan.Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.

2.2 TUJUAN PARALLEL PROCESSING
Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

2.3 KOMPUTASI PARALEL
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak.
Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual Machine).
Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.
Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:
•           SIMD
•           SIMD
•           MISD
•           MIMD

2.4 SISD
Yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
  
2.5 SIMD
Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

2.6 MISD
Yang merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.

2.7 MIMD
Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini:
http://lukmanlagi.files.wordpress.com/2013/05/667f0-serialproblem.gif?w=440
Penyelesaian Sebuah Masalah pada Komputasi Tunggal
  http://lukmanlagi.files.wordpress.com/2013/05/0acf2-parallelproblem.gif?w=440
Penyelesaian Sebuah Masalah pada Komputasi Paralel
Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.
Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.
Komputasi paralel membutuhkan :
• algoritma
• bahasa pemrograman
• compiler

Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU.
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi.
* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.  MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan. Kegunaan MPI yang lain adalah
1.      menulis kode paralel secara portable
2.      mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3.      menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak begitu cocok dengan model data paralel.

2.8 HUBUNGAN ANTARA KOMPUTASI MODERN DENGAN PARALEL PROCESSING

Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat.
Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.

2.9 ARSITEKTUR PENGGANTI
Dalam bidang teknik komputer, arsitektur pengganti merupakan konsep perencanaan atau struktur pengoperasian dasar dalam komputer atau bisa dikatakan rencana cetak biru dan deskripsi fungsional kebutuhan dari perangkat keras yang didesain. implementasi perencanaan dari masing-masing bagian seperti CPU, RAM, ROM, Memory Cache, dll
Bagian berikut akan membahas secara singkat mengenai dua alternatif bagi arsitektur flow-control konvensional. Salah satunya adalah prosesor dataflow (arus data). Tidak seperti halnya dalam mesin von Neumann, yakni bahwa program menentukan kapan mereka akan menjalankan operasi, prosesor dataflow ini adalah availability data yang menentukan kapan prosesor dataflow akan menjalankan operasi. Kelompok lain dari arsitektur pengganti yang baru-baru ini telah diperkenalkan adalah jaringan neural. Ia agak didasarkan pada sistem biologis dan terdiri atas sejumlah elemen komputasional yang sangat sederhana yang beroperasi secara paralel. Walaupun tidak dirancang sebagai komputer penggunaan umum, namun jaringan neural ini telah menunjukkanbahwa ia bisa digunakan untuk pemrosesan signal dan aplikasi rekognisi pola.
2.9.1 Arsitektur Dataflow
Algoritma, seperti halnya arah dan menu, adalah rangkaian langkah yang menetapkan proses. Sebagian besar pemrograman berisi pembuatan algoritma berurutan yang dinyatakan dalam bahasa pemrograman yang terprosedur. Apabila ada yang putus dalam rangkaian (branch), maka secara sendiri program menentukan instruksi apa yang berikutnya harus dijalankan komputer. Para arsitek merancang mesin von Neumann untuk menjalankan rangkaian instruksi, sehingga mesin ini sangat cocok untuk menjalankan program yang ditulis dalam bahasa yang terprosedur.
2.9.2 Jaringan Neural
Para arsitek, dalam usahanya agar bisa menggunakan paralelisme yang melekat pada sistem yang asli, telah merancang arsitektur komputer yang secara terkait didasarkan pada jaringan neural biologis. Walaupun jaringan neural artifIcial, seperti halnya jaringan biologis, memerlukan sejumlah besar elemen komputasional, namun ada empat faktor yang membuatnya feasibel (Iayak digunakan):
1.            Komponen dasar, yakni neuron yang disimulasi mempunyai kompleksitas komputasional yang sederhana dan mempunyai count gate yang kecil (beberapa lusin).
2.            Interkoneksinya sangat sederhana, dan interkoneksi ini cenderung bersifat repetitif.
3.            Komunikasi yang diperlukannya hanyalah dengan neighbor yang ada dalam radius yang sudah pasti.
4.            Komponen untuk integrasis kala yang sangat besar (VLSI) tidak mahal lagi, sehingga biaya pembangunan sistem dengan jumlah prosesor yang besar tidak ada masalah.




Daftar pustaka :
http://riofajar1012.blogspot.co.id/2016/11/prosesor-paralel.html
http://andi-granderist.blogspot.co.id/2013/01/pipelining-risc-dan-prosesor-paralel.html

PIPELINING & RISC

1.1 Pipelining & RISC
1.1.1 Pengertian Pipeline

       Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesor. Dengan cara ini, maka unit pemrosesan 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 dijaankan oleh microprocessor.
        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 sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses 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.
   Dengan penerapan  pipeline  ini pada microprocessor akan didapatkan peningkatan kinerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel 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.
      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 dan lancar. Sedangkan ketergantungan terhadap data bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.

       Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan arsitektur  pipeline  dengan microprocessor yang menerapkan teknik ini.
         Pada microprocessor yang tidak menggunakan  pipeline , satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik  pipeline   ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses 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 pun seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
        Teknik  pipeline  ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga ketika diterapkan dapat berjalan dengan baik.
Tiga kesulitan yang sering dihadapi ketika menggunakan teknik  pipeline  ini adalah :
  1. Terjadinya penggunaan resource yang bersamaan
  2. Ketergantungan terhadap data, dan
  3. Pengaturan Jump ke suatu lokasi memori.

1.1.2 Instruksi pada pipeline
Tahapan pipeline
  • Mengambil instruksi dan membuffferkannya
  • Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
  • Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya
.Berikut ini adalah gambaran tentang Instuksi pipeline :



Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :
Instruksi  1 : ADD  AX, AX Instruksi 2: ADD EX, CX

Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi  1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID).

Contoh pengerjaan instruksi tanpa pipeline :

Contoh pengerjaan instruksi dengan pipeline :



         Dengan adanya  pipeline  dua instruksi selesai dilaksanakan padadetik keenam (sedangkan pada kasus tanpa pipeline baru selesai pada detik kesepuluh). Dengan demikian telah terjadi percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan untuk pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2, 14x dari 15T menjadi hanya 7T.
       Untuk kasus  pipeline  sendiri, 2 instruksi dapat dikerjakan dalam 6T (CPI = 3) dan instruksi dapat dikerjakan dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat dikerjakan dalam  8T (CPI =2). Ini berarti untuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI = 1,04). Pada kondisi  ideal CPI akan harga 1.


1.1.3 Konsep Pipeline
        Konsep pemrosesan  pipeline  dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu pabrik industri. Ambil contoh, suatu proses pembuatan sebuah mobil: anggaplah bahwa langkah-langkah tertentu di jalur perakitan adalah untuk memasang mesin, memasang kap mesin, dan memasang roda (dalam urutan tersebut, dengan langkah arbitrary interstitial). Sebuah mobil di jalur perakitan hanya dapat memiliki salah satu dari tiga tahap yang dilakukan sekaligus.
      Setelah mobil memiliki mesin yang terpasang, bergerak ke bagian pemasangan kap, meninggalkan fasilitas pemasangan mesin yang tersedia untuk mobil berikutnya. Mobil pertama kemudian pindah ke pemasangan roda, mobil kedua untuk pemasangan kap, dan mobil ketiga dimulai untuk pemasangan mesin. Jika instalasi mesin membutuhkan waktu 20 menit, instalasi kap mobil memakan waktu 5 menit, dan instalasi roda membutuhkan waktu 10 menit, kemudian menyelesaikan semua tiga mobil ketika hanya satu mobil dapat dioperasikan sekaligus akan memakan waktu 105 menit.
      Di sisi lain, dengan menggunakan jalur perakitan, total waktu untuk menyelesaikan ketiga adalah 75 menit. Pada titik ini, mobil selanjutnya akan datang dari jalur perakitan pada kenaikan 20 menit.

1.1.4 Masalah-masalah pada Pipeline
        Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan (instruksi berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards. Hazards mengurangi performansi dari CPU dimana percepatan ideal tidak dapat dicapai.
Ada 3 kelompok Hazards :
  1. Structural Hazards muncul dari konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi. 
  2. Data Hazards muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya. 
  3. Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh : branch).
        Adanya Hazards menyebabkan pipeline terhambat (stalled). Tidak ada instruksi baru yang dijemput sampai hambatan itu selesai. Ini berarti instruksi-instruksi selanjutnya akan ditunda pula penjemputannya.

1.1.5 Keuntungan dari Pipeline
  1. Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
  2. Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
  3. Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.
Jika  pipeline  digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih kompleks sirkuit.

1.1.6 Kerugian dari Pipeline
  1. Prossesor  non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.
  2. Instruksi latency di prossesor non-pipeline sedikit lebih rendah daripada dalam pipeline setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prossesor pipeline.
  3. Prossesor non-pipeline akan memiliki instruksi bandwidth yang stabil. Kinerja prossesor yang pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
  4. 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.
  5.  Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
  6.    Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.

1.1.7 Kesulitan dalam Pipeline
Untuk menerapkan prinsip multi-stage atau mulai saat ini kita namakan pipelining di prosesor, diperlukan organisasi prosesor khusus. Pada dasarnya, prosesor dipartisi menjadi sejumlah unit-unit kecil dengan fungsi spesifik. Setiap unit berperan untuk  menyelesaikan sebagian dari  instruksi-intruksi berikut :
Instruction fetch, decode, operand address calculation, operand fetch, execute dan store result.
Dalam proses di atas terkadang sering terjadi kendala/conflict seperti:
  • Terjadinya pause (Pi), karena adanya data conflict dalam program tersebut
  • Terjadinya data error dikarenakan banyaknya proses yang dilakukan bersamaan
  • Terjadinya pengambilan data secara bersamaan, sehingga salah satu proses tertunda
  • Terjadinya penumpukan data di salah satu intruksi sehingga ada beberapa proses yg di tunda
  • Dengan terjadinya conflict tadi, speed-up yang diperoleh menjadi lebih kecil (lambat) dibandingkan dengan tanpa conclict.

1.1.8 Proses Pipelining Vektor
Sebuah prosesor vektor atau prosesor array, adalah unit pemrosesan sentral (CPU) yang mengimplementasikan set instruksi berisi instruksi yang beroperasi pada satu dimensi array data yang disebut vektor. Hal ini kontras dengan prosesor skalar , yang instruksi beroperasi pada item data tunggal. Meskipun prosesor Intel dan klon mereka desain awalnya sebagai skalar, model baru berisi peningkatan jumlah vektor instruksi khusus seperti yang disediakan oleh Ekstensi Vector Lanjutan ditetapkan. Prosesor vektor pertama kali muncul pada 1970-an, dan membentuk dasar dari yang palingsuperkomputer di tahun 1980 dan 1990-an. Perbaikan dalam prosesor skalar, terutamamikroprosesor , mengakibatkan penurunan prosesor vektor tradisional di superkomputer, dan munculnya teknik pengolahan vektor di CPU pasar massal sekitar awal 1990-an. Hari ini, CPU komoditas yang paling mengimplementasikan arsitektur yang menampilkan instruksi untuk beberapa pemrosesan vektor pada beberapa (vektoralisasi) set data, biasanya dikenal sebagai SIMD (S Ingle saya nstruction, M ultiple D ata). Teknik pemrosesan vektor juga ditemukan di konsol video game hardware danakselerator grafis . Pada tahun2000, IBM , Toshiba dan Sony berkolaborasi untuk menciptakan prosesor Cell , yang terdiri dari satu prosesor skalar dan delapan prosesor vektor, yang ditemukan digunakan dalam Sony PlayStation 3 di antara aplikasi lain.Desain CPU lain mungkin termasuk beberapa instruksi untuk pemrosesan vektor pada beberapa (vectorised) set data, biasanya dikenal sebagai MIMD (M ultiple saya nstruction, M ultiple D ata). Desain seperti biasanya didedikasikan untuk aplikasi tertentu dan tidak umum dipasarkan untuk komputasi tujuan umum .

RISC (Reduce Instruction Set Computer) atau komputasi set instruksi yang disederhanakan merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vector. Desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor intel 960, Itanium(IA64) dari Intel Coorporation. Selain itu RISC juga umum dipakai pada Advanced RISC Machine(ARM) dan StrongARM.

Ide dasar prosesor RISC sebenarnya bisa dilacak dari apa yang disarankan oleh Von Neumann pada tahun 1946. Von Neumann menyarankan agar rangkaian elektronik untuk konsep logika diimplementasikan hanya bila memang diperlukan untuk melengkapi sistem agar berfungsi atau karena frekuensi penggunaannya cukup tinggi (Heudin, 1992 : 18). Jadi ide tentang RISC, yang pada dasarnya adalah untuk menyederhanakan realisasi perangkat keras prosesor dengan melimpahkan sebagian besar tugas kepada perangkat lunaknya, telah ada pada komputer elektronik pertama. Seperti halnya prosesor RISC, komputer elektronik pertama merupakan komputer eksekusi-langsung yang memiliki instruksi sederhana dan mudah didekode.
Hal yang sama dipercayai juga oleh Seymour Cray, spesialis pembuat superkomputer. Pada tahun 1975, berdasarkan kajian yang dilakukannya, Seymour Cray menyimpulkan bahwa penggunaan register sebagai tempat manipulasi data menyebabkan rancangan instruksi menjadi sangat sederhana. Ketika itu perancang prosesor lain lebih banyak membuat instruksi-instruksi yang merujuk ke memori daripada ke register seperti rancangan Seymour Cray. Sampai akhir tahun 1980-an komputer-komputer rancangan Seymour Cray, dalam bentuk superkomputer seri Cray, merupakan komputer-komputer dengan kinerja sangat tinggi. Pada tahun 1975, kelompok peneliti di IBM di bawah pimpinan George Radin, memulai merancang komputer berdasar konsep John Cocke. Berdasarkan saran John Cocke, setelah meneliti frekuensi pemanfaatan instruksi hasil kompilasi suatu program, untuk memperoleh prosesor berkinerja tinggi tidak perlu diimplementasikan instruksi kompleks ke dalam prosesor bila instruksi tersebut dapat dibuat dari instruksi-instruksi sederhana yang telah dimilikinya.

1.2.3 Prosesor RISC Berkeley
Kelompok David Patterson dari Universitas California memulai proyek RISC pada tahun 1980 dengan tujuan menghindari kecenderungan perancangan prosesor yang perangkat instruksinya semakin kompleks sehingga memerlukan perancangan rangkaian kontrol yang semakin rumit dari waktu ke waktu. Hipotesis yang diajukan adalah bahwa implementasi instruksi yang kompleks ke dalam perangkat instruksi prosesor justru berdampak negatif pemakaian instruksi tersebut dalam kebanyakan program hasil komplikasi (Heudin, 1992 : 22). Apalagi, instruksi kompleks itu pada dasarnya dapat disusun dari instruksi-instruksi sederhana yang telah dimiliki.
Rancangan prosesor RISC-1 ditujukan untuk mendukung bahasa C, yang dipilih karena popularitasnya dan banyaknya pengguna. Realisasi rancangan diselesaikan oleh kelompok Patterson dalam waktu 6 bulan. Fabrikasi dilakukan oleh MOVIS dan XEROX dengan menggunakan teknologi silikon NMOS (N-channel Metal-oxide Semiconductor) 2 mikron. Hasilnya adalah sebuah chip rangkaian terpadu dengan 44.500 buah transistor (Heudin, 1992 : 230). Chip RISC-1 selesai dibuat pada musim panas dengan kecepatan eksekusi 2 mikrosekon per instruksi (pada frekuensi detak 1,5 MHz), 4 kali lebih lambat dari kecepatan yang ditargetkan. Tidak tercapainya target itu disebabkan terjadinya sedikit kesalahan perancangan, meskipun kemudian dapat diatasi dengan memodifikasi rancangan assemblernya. Berdasarkan hasil evaluasi, meskipun hanya bekerja pada frekuensi detak 1,5 MHz dan mengandung kesalahan perancangan, RISC-1 terbukti mampu mengeksekusi program bahasa C lebih cepat dari beberapa prosesor CISC, yakni MC68000, Z8002, VAX-11/780, dan PDP-11/70. Hampir bersamaan dengan proses fabrikasi RISC-1, tim Berkeley lain mulai bekerja untuk merancang RISC-2. Chip yang dihasilkan tidak lagi mengandung kesalahan sehingga mencapai kecepatan operasi yang ditargetkan, 330 nanosekon tiap instruksi (Heudin, 1992 : 27-28).
RISC-2 hanya memerlukan luas chip 25% dari yang dibutuhkan RISC-1 dengan 75% lebih banyak register. Meskipun perangkat instruksi yang ditanamkan sama dengan perangkat instruksi yang dimiliki RISC-1, tetapi di antara keduanya terdapat perbedaan mikroarsitektur perangkat kerasnya. RISC-2 memiliki 138 buah register yang disusun sebagai 8 jendela register, dibandingkan dengan 78 buah register yang disusun sebagai 6 jendela register. Selain itu, juga terdapat perbedaan dalam hal organisasi alur-pipa (pipeline) . RISC-1 memiliki alur-pipa dua tingkat sederhana dengan penjeputan (fetch) dan eksekusi instruksi yang dibuat tumpang-tindih, sedangkan RISC-2 memiliki 3 buah alur-pipa yang masing-masing untuk penjemputan instruksi, pembacaan operan dan eksekusinya, dan penulisan kembali hasilnya ke dalam register. Sukses kedua proyek memacu tim Berkeley untuk mengerjakan proyek SOAR (Smalltalk on RISC) yang dimulai pada tahun 1983.

1.2.4 Prosesor RISC Stanford
Sementara proyek RISC-1 dan RISC-2 dilakukan kelompok Patterson di Universitas California, pada tahun 1981 itu juga John Hennessy dari Universitas Stanford mengerjakan proyek MIPS (Microprocessor without Interlocked Pipeline Stages) . Pengalaman riset tentang optimasi kompilator digabungkan dengan teknologi perangkat keras RISC merupakan kunci utama proyek MIPS ini. Tujuan utamanya adalah menghasilkan chip mikroprosesor serbaguna 32-bit yang dirancang untuk mengeksekusi secara efisien kode-kode hasil kompilasi (Heudin, 1992: 34). Perangkat instruksi prosesor MIPS terdiri atas 31 buah instruksi yang dibagi menjadi 4 kelompok, yakni kelompok instruksi isi dan simpan, kelompok instruksi operasi aritmetika dan logika, kelompok instruksi pengontrol, dan kelompok instruksi lain-lain. MIPS menggunakan lima tingkat alur-pipa tanpa perangkat keras saling-kunci antar alur-pipa tersebut, sehingga kode yang dieksekusi harus benar-benar bebas dari konflik antar alur-pipa.
Direalisasi dengan teknologi NMOS 2 mikron, prosesor MIPS yang memiliki 24.000 transistor ini memiliki kemampuan mengeksekusi satu instruksi setiap 500 nanodetik. Karena menggunakan lima tingkat alur-pipa bagian kontrol prosesor MIPS ini menyita luas chip dua kali lipat dibanding dengan bagian kontrol pada prosesor RISC. MIPS memiliki 16 register dibandingkan dengan 138 buah register pada RISC-2. Hal ini bukan masalah penting karena MIPS memang dirancang untuk mebebankan kerumitan perangkat keras ke dalam perangkat lunak sehingga menghasilkan perangkat keras yang jauh lebih sederhana dan lebih efisien. Perangkat keras yang sederhana akan mempersingkat waktu perancangan, implementasi, dan perbaikan bila terjadi kesalahan. Sukses perancangan MIPS dilanjutkan oleh tim Stanford dengan merancang mikroprosesor yang lebih canggih, yakni MIPS-X. Perancangan dilakukan oleh tim riset MIPS sebelumnya ditambah 6 orang mahasiswa, dan dimulai pada musim panas tahun 1984. Rancangan MIPS-X banyak diperbaruhi oleh MIPS dan RISC-2 dengan beberapa perbedaan utama :
1.      Semua instruksi MIPS-X merupakan operasi tunggal dan dieksekusi dalam satu siklus detak
2.      Semua instruksi MIPS-X memiliki format tetap dengan panjang instruksi 32-bit
3.      MIPS-X dilengkapi pendukung koprosesor yang efisien dan sederhana
4.      MIPS-X dilengkapi pendukung untuk digunakan sebagai prosesor dasar dalam sistem multiprosesor memori-bersama (shared memory)
5.      MIPS-X dilengkapi chace instruksi dalam-chip yang cukup besar (2 kilobyte)
6.      MIPS-X difabrikasi dengan teknologi CMOS 2 mikron.
Perkembangan menarik terjadi pada tahun 1993 ketika aliansi tiga perusahaan terkemuka, IBM, Apple, dan Motorola memperkenalkan produk baru mereka yakni PowerPC 601, suatu mikroprosesor RISC 64-bit yang dirancang untuk stasiun kerja (workstation) atau komputer personal (Thompson, 1993 : 56-74). Menarik, karena kemunculan PowerPC 601 dimaksudkan untuk memberikan alternatif bagi dominasi prosesor CISC keluarga-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 (Thompson, 1993 : 64). 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 (Halfhill, 1994 : 119-130).
Beberapa prosesor implementasi dari arsiteketur RISC adalah AMD29000, MIPS R2000, SPARC, MC 88000, HP PA, IBM RT/TC, IBM RS/6000, intel i860, Motorola 88000 (keluarga Motorola), PowerPC G5.
1.      Semua atau setidak-tidaknya sebagian besar (80%) instruksi harus dieksekusi dalam satu siklus clock.
2.      Semua instruksi harus memiliki satu ukuran standar, yaitu sama dengan ukuran kata dasar (basic word length).
3.      Jumlah jenis instuksinya harus kecil, tidak melebihi 128
4.      Jumlah format isntruksinya harus kecil, tidak melebihi kira-kira 4
5.      Jumlah addressing mode harus kecil, tidak melebihi kira-kira 4
6.      Akses ke memori hanya dilakukan dengan instruksi load dan store.
7.      Semua operasi, kekcuali operasi load dan store merupakan operasi register ke register di dalam CPU.
8.      Memiliki hardwired control unit.
9.      Memiliki relatif banyak register serbaguna internal CPU.

Arsitektur RISC memiliki beberapa karakteristik diantaranya :
1.      Siklus mesin ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand dari register, melakukan operasi ALU, dan menyimpan hasil operasinya kedalam register, dengan demikian instruksi mesin RISC tidak boleh lebih kompleks dan harus dapat mengeksekusi secepat mikroinstruksi pada mesin-mesin CISC. Dengan menggunakan instruksi sederhana atau instruksi satu siklus hanya dibutuhkan satu mikrokode atau tidak sama sekali, instruksi mesin dapat dihardwired. Instruksi seperti itu akan dieksekusi lebih cepat dibanding yang sejenis pada yang lain karena tidak perlu mengakses penyimapanan kontrol mikroprogram saat eksekusi instruksi berlangsung.
2.      Operasi berbentuk dari register-ke register yang hanya terdiri dari operasi load dan store yang mengakses memori . Fitur rancangan ini menyederhanakan set instruksi sehingga menyederhanakan pula unit control. Keuntungan lainnya memungkinkan optimasi pemakaian register sehingga operand yang sering diakses akan tetap ada di penyimpan berkecepatan tinggi. Penekanan pada operasi register ke register merupakan hal yang unik bagi perancangan RISC.
3.      Penggunaan mode pengalamatan sederhana, hampir sama dengan instruksi menggunakan pengalamatan register,. Beberapa mode tambahan seperti pergeseran dan pe-relatif dapat dimasukkan selain itu banyak mode kompleks dapat disintesis pada perangkat lunak dibanding yang sederhana, selain dapat menyederhanakan sel instruksi dan unit kontrol.
4.      Penggunaan format-format instruksi sederhana, panjang instruksinya tetap dan disesuaikan dengan panjang word. Fitur ini memiliki beberapa kelebihan karena dengan menggunakan field yang tetap pendekodean opcode dan pengaksesan operand register dapat dilakukan secara bersama-sama
RISC perlu memperhatikan karakteristik eksekusi instruksi. Adapun aspek-aspek komputasinya adalah :
1.      Operasi-operasi yang dilakukan ,
2.      Operand-operand yang digunakan,
3.      Pengurutan eksekusi,.
1.       Operasi
Beberapa penelitian telah menganalisis tingkah laku program HLL (High Level Language). Assignment Statement sangat menonjol yang menyatakan bahwa perpindahan sederhana merupakan satu hal yang penting. Hasil penelitian ini merupakan hal yang penting bagi perancang set instruksi mesin yang mengindikasikan jenis instruksi mana yang sering terjadi karena harus didukung optimal.
2.       Operand
Penelitian Paterson telah memperhatikan [PATT82a] frekuensi dinamik terjadinya kelas-kelas variabel. Hasil yang konsisten diantara program pascal dan C menunjukkan mayoritas referensi menunjuk ke variable scalar. Penelitian ini telah menguji tingkah laku dinamik program HLL yang tidak tergantung pada arsitektur tertentu. Penelitian [LUND77] menguji instruksi DEC-10 dan secara dinamik menemukan setiap instruksi rata-rata mereferensi 0,5 operand dalam memori dan rata-rata mereferensi 1,4 register. Tentu saja angka ini tergantung pada arsitektur dan kompiler namun sudah cukup menjelaskan frekuensi pengaksesan operand sehingga menyatakan pentingnya sebuah arsitektur.
3.      Procedure Calls
Dalam HLL procedure call dan return merupakan aspek penting karena merupakan operasi yang membutuhkan banyak waktu dalam program yang dikompalasi sehingga banyak berguna untuk memperhatikan cara implementasi opperasi ini secara efisien. Adapun aspeknya yang penting adalah jumlah parameter dan variabel yang berkaitan dengan prosedur dan kedalaman pensarangan (nesting).

  1. PowerPC dibangun dengan arsitektur RISC
Proyek mini komputer 801 di IBM pada tahun 1975 mengawali banyak konsep arsitektur yang digunakan dalam sistem RISC. 801 bersama dengan prosessor RISC I Berkeley, meluncurkan gerakan RISC, namun 801 hanya merupakan prototipe yang ditujukan untuk mengenalkan konsep disain. Keberhasilan memperkenalkan 801 menyebabkan IBM membangun produk workstation RISC komersial yaitu PC RT pada tahun 1986, dengan mengadaptasi konsep arsitektural 801 kedalam kinerja yang sebanding atau yang lebih baik. IBM RISC System/6000 merupakan mesin RISC superscalar1 yang dipasarkan sebagai workstation berunjuk kerja tinggi, tidak lama kemudian IBM mengkaitkan mesin ini sebagai arsitektur POWER. IBM kemudian menjalin kerjasama dengan Motorola, pembuat mikroprosessor seri 6800, dan Apple, yang menggunakan keping Motorola dalam komputer Macintoshnya dan hasilnya adalah seri mesin yang mengimplementasikan arsitektur PowerPC yang diturunkan dari arsitektur POWER dan merupakan sistem RISC superscalar.
Sejauh ini diperkenalkan empat anggota kelompok PowerPC yaitu
1.      601,merupakan mesin 32-bit yang ditujukan untuk membawa arsitektur PowerPC kepasar secepat mungkin.
2.      603, merupakan mesin 32-bit yang ditujukan bagi low-end desktop dan komputer portable dengan implementasi yang lebih efesien.
3.      604, merupakan mesin 32-bit yang ditujukan bagi low-end server dan desktop, dengan menggunakan teknik rancangan superscalar lanjutan guna mendapatkan kinerja yang lebih baik.
4.      620, ditujukan bagi high-end server, sekaligus merupakan kelompok PowerPC pertama yang mengimplementasikan arsitektur 64 bit penuh, termasuk regiater 64-bit dan lintasan data.
PowerPC sendiri adalah jenis prosesor yang bi-endian, yang mendukung baik mode big-endian maupun litlle-endian. Arsitektur bi-endian memungkinkan pembuat perangkat lunak untuk memilih mode yang mana saja ketika harus memindahkan sistem operasi dan aplikasi dari suatu mesin ke mesin lainnya. Byte, halfword, word, doubleword merupakan jenis data umum. Prosesor mengiterpretasikan isi item data tertentu tergantung pada instruksi.
a.       Unsigned Halfword : seperti diatas namun dengan kuantitas 16-bit.
b.      Signed Halfword : digunakan untuk operasi aritmatika, dimuatkan kedalam memori dengan sign-extending pada sebelah kiri keukuran penuh register (yaitu, bit tanda disalinkan keposisi-posisi yang kosong).
c.       Unsigned Word : digunakan untuk operasi logika dan berfungsi sebagai pointer lokal.
d.      Signed Word : digunakan untuk operasi aritmatika.
e.       Unsigned Doubleword : digunakan sebagai pointer alamat.
f.       Byte String : panjangnya mulai 0 hingga 128 byte.
Selain itu PowerPC mendukung data floating poing presisi tunggal dan presisi ganda yang ditetapkan pada IEEE 754.

Teknologi RISC relatif masih baru oleh karena itu tidak ada perdebatan dalam menggunakan RISC ataupun CISC, karena tekhnologi terus berkembang dan arsitektur berada dalam sebuah spektrum, bukannya berada dalam dua kategori yang jelas maka penilaian yang tegas akan sangat kecil kemungkinan untuk terjadi.

  1. Kelebihan
1.        Berkaitan dengan penyederhanaan kompiler, dimana tugas pembuat kompiler untuk menghasilkan rangkaian instruksi mesin bagi semua pernyataan HLL. Instruksi mesin yang kompleks seringkali sulit digunakan karena kompiler harus menemukan kasus-kasus yang sesuai dengan konsepnya. Pekerjaan mengoptimalkan kode yang dihasilkan untuk meminimalkan ukuran kode, mengurangi hitungan eksekusi instruksi, dan meningkatkan pipelining jauh lebih mudah apabila menggunakan RISC dibanding menggunakan CISC.
2.        Arsitektur RISC yang mendasari PowerPC memiliki kecenderungan lebih menekankan pada referensi register dibanding referensi memori, dan referensi register memerlukan bit yang lebih sedikit sehingga memiliki akses eksekusi instruksi lebih cepat.
3.        Kecenderungan operasi register ke register akan lebih menyederhanakan set instruksi dan menyederhanakan unit kontrol serta pengoptimasian register akan menyebabkan operand-operand yang sering diakses akan tetap berada dipenyimpan berkecepatan tinggi.
4.        Penggunaan mode pengalamatan dan format instruksi yang lebih sederhana.

  1. Kekurangan
            Kelemahan utama dari RISC ialah jumalh instruksi yang sedikit. Hal ini mengakibatkan untuk melakukan suatu tugas akan dibutuhkan instruksi yang lebih banyak bila dibandingkan CISC. Hasilnya ialah jumlah ukuran program akan lebih besar bila dibandingkan CISC. Penggunaan memori akan semakin meningkat dan lalu lintas instruksi antara CPU dan memori akan meningkat pula.
Prosesor RISC, yang berkembang dari riset akademis telah menjadi prosesor komersial yang terbukti mampu beroperasi lebih cepat dengan penggunaan luas chip yang efisien. Kemajuan mutakhir yang ditunjukkan oleh mikroprosesor PowerPC 601 dan teknologi emulasi yang antara lain dikembangkan oleh IBM memungkinkan bergesernya dominasi chip-chip keluarga-86 dan kompatibelnya. Program yang dihasilkan dalam bahasa simbolik akan lebih panjang (instruksinya lebih banyak).
1.          Program berukuran lebih besar sehingga membutuhkan memori yang lebih banyak, ini tentunya kurang menghemat sumber daya.
2.          Program yang berukuran lebih besar akan menyebabkan :
·         Menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan lebih banyak byte-byte instruksi yang harus diambil.
·         Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar

Daftar pustaka :