Senin, 06 Juni 2016

PENGERTIAN CISC DAN RISC SERTA PERBEDAANYA



1.   CISC ( Complex Instruction Set Computing )
a.    Pengertian
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.
Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik”, yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi “level tinggi” seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg “sarat informasi” ini memberikan keuntungan di mana ukuran program-program 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.
Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode 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 (Pusat Penelitian Watson IBM 801 – IBMs)
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
b.    Sejarah
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 procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program 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.
Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode 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 (Pusat Penelitian Watson IBM 801 - IBMs)
Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.
c.    Tujuan          
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu instruksi cukup dengan beberapa baris bahasa mesin yang relatif pendek sehingga implikasinya hanya sedikit saja RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut. Arsitektur CISC menekankan pada perangkat keras karena filosofi dari arsitektur CISC yaitu bagaimana memindahkan kerumitan perangkat lunak ke dalam perangkat keras.
d.    Karakteristik CISC
  1. Sarat informasi memberikan keuntungan di mana ukuran program-program 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
  2. Dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan untuk mengerjakan pekerjaan yang diberikan. (Jumlah perintah sedikit tetapi rumit) Konsep CISC menjadikan mesin mudah untuk diprogram dalam bahasa rakitan.
e.    Ciri-ciri
  1. Jumlah instruksi banyak
  2. Banyak terdapat perintah bahasa mesin
  3. Instruksi lebih kompleks
2.   RISC (Reduced Instruction Set Computer)
A.   PENGERTIAN RISC
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.

B.   PERKEMBANGAN RISC
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.
C.   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.
D.   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 :
• Semua instruksi MIPS-X merupakan operasi tunggal dan dieksekusi dalam satu siklus detak
• Semua instruksi MIPS-X memiliki format tetap dengan panjang instruksi 32-bit
• MIPS-X dilengkapi pendukung koprosesor yang efisien dan sederhana
• MIPS-X dilengkapi pendukung untuk digunakan sebagai prosesor dasar dalam sistem multiprosesor memori-bersama (shared memory)
• MIPS-X dilengkapi chace instruksi dalam-chip yang cukup besar (2 kilobyte)
• 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.
E.   SIFAT-SIFAT RISC
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.

F.    KARAKTERISTIK RISC
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).
G.   PROSESSOR YANG MENGGUNAKAN SISTEM RISC
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.
• Unsigned Halfword : seperti diatas namun dengan kuantitas 16-bit.
• 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).
• Unsigned Word : digunakan untuk operasi logika dan berfungsi sebagai pointer lokal.
• Signed Word : digunakan untuk operasi aritmatika.
• Unsigned Doubleword : digunakan sebagai pointer alamat.
• 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.
H.   KELEBIHAN DAN KEKURANGAN TEKNOLOGI RISC
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.
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.
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
a. Menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan lebih banyak byte-byte instruksi yang harus diambil.
b. Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar
3.   Perbedaan RISC dengan CISC dilihat dari segi instruksinya
RISC ( Reduced Instruction Set Computer )
– Menekankan pada perangkat lunak, dengan sedikit transistor
– Instruksi sederhana bahkan single
– Load / Store atau memory ke memory bekerja terpisah
– Ukuran kode besar dan kecapatan lebih tinggi
– Transistor didalamnya lebih untuk meregister memori
CISC ( Complex Instruction Set Computer )
– Lebih menekankan pada perangkat keras, sesuai dengan takdirnya untuk pragramer.
– Memiliki instruksi komplek. Load / Store atau Memori ke Memori bekerjasama
– Memiliki ukuran kode yang kecil dan kecepatan yang rendah.
– Transistor di dalamnya digunakan untuk menyimpan instruksi – instruksi bersifat komplek
  
4.   Perbedaan cisc dan risc berdasarkan karakteristiknya



Selasa, 17 Mei 2016

koreksi kesalahan dengan metode hamming




Dalam era kemajuan teknologi komunikasi digital, maka persoalan yang utama adalah bagaimana menyandikan isyarat analog menjadi isyarat digital yang berupa sandi biner. Isyarat sandi biner ini diharapkan kebal terhadap gangguan pengiriman dan mempunyai pesat informasi optimum.

Dalam melaksanakan fungsi penyimpanan, memori semikonduktor dimungkinkan mengalami kesalahan. Baik kesalahan berat yang biasanya merupakan kerusakan fisik memori maupun kesalahan ringan yang berhubungan data yang disimpan. Kesalahan ringan dapat dikoreksi kembali. Untuk mengadakan koreksi kesalahan data yang disimpan diperlukan dua mekanisme, yaitu mekanisme pendeteksian kesalahan dan mekanisme perbaikan kesalahan.

Mekanisme pendeteksian kesalahan dengan menambahkan data word (D) dengan suatu kode, biasanya bit cek paritas (C). Sehingga data yang disimpan memiliki panjang D + C. Kesalahan akan diketahui dengan menganalisa data dan bit paritas tersebut. Mekanisme perbaikan kesalahan yang paling sederhana adalah kode Hamming. Metode ini diciptakan Richard Hamming di Bell Lab pada tahun 1950.

Untuk mengurangi bahkan menghilangkan kesalahan sandi biner dapat juga mengggunakan metode Hamming. Dalam tulisan ini akan dibahas untuk koreksi galat satu digit dan koreksi kesalahan untuk word data.








Metode Hamming by Gapra                                                                                                                               1


METODE HAMMING

PENGENDALIAN GALAT SANDI BINER

Banyak ragam cara pengendalian galat sandi biner, diantaranya adalah dengan cara “Hamming”, “Block Coding” dan sebagainya. Dalam tulisan ini dibahas salah satu cara pengendalian galat untuk satu digit kesalahan dengan metode Hamming, yang merupakan matrix H untuk melacak kesalahan sandi yang diterima.
Sandi digital yang dikirimkan sebagai pulsa angka “0” dan angka “1” agar dapat dikoreksi galat yang mungkin terjadi pada penerima perlu disandikan kembali menggunakan metode Hamming. Dipilih matrix Ħ yang menghasikan H.T = 0, dengan

T adalah vektor yang elemen-elemennya merupakan sandi digital yang akan dikirimkan. Matrix H terdiri dari r kolom matrix diagonal dan n kolom matrix sembarang, dengan n adalah cacah digit digital yang akan dikirimkan.

Pada pesawat penerima atau pengawa-sandian, isyarat yang diterima, dimisalkan sebagai vektor R, dikalikan kembali dengan matrix H dan menghasilkan isyarat sindrom

S. Bila S = H.R = 0, berarti isyarat yang diterima sudah benar atau cocok dengan isyarat yang dikirimkan. Tetapi jika S = H.R ≠ 0, berarti isyarat yang diterima ada kesalahan. Kesalahan yang terjadi bisa dilihat dari isyarat sindrom yang terbentuk. Dengan mencocokan isyarat sindrom dengan matrix H akan dapat diketahui kesalahan yang terjadi pada angka ke berapa. Sebagai contoh, jika isyarat sindrom cocok dengan kolom ke 5, berarti kesalahan terjadi pada angka ke 5 dari pesan yang dikirimkan.
Diatas telah disebutkan bahwa matrix H bisa dipilih sembarang, dengan ketentuan tidak boleh ada kolom yang mempunyai elemen-elemen persis sama. Dengan alasan inilah, maka matrix H dipilih sebagai berikut :



1
1
0
1
0
1
0
0
0

H =
1
0
1
1
0
0
1
0
0

1
1
0
0
1
0
0
1
0




1
0
1
0
1
0
0
0
1
















Metode Hamming by Gapra                                                                                                                               2


CONTOH PENENTUAN SANDI BARU DENGAN METODE HAMMING

Misal akan dicari sandi baru untuk pesan A yang mempunyai sandi lama 01101. perkalian matrix H dengan vektor T, yang mempunyai 5 elemen pertama sama dengan sandi lama yang akan diubah dan 4 elemen berikutnya adalah elemen yang akan dicari nilainya, dapat dinyatakan sebagai berikut :



1
1
0
1
0
1
0
0
0

0

0











1


T =
1
0
1
1
0
0
1
0
0

1
=
0










0


1
1
0
0
1
0
0
1
0

1

0











C1



1
0
1
0
1
0
0
0
1

C2

0











C3

























C4


Dari hasil perkalian diatas diperoleh nilai
C1
=
1
C3
=
0
C2
=
1
C4
=
0

Sandi baru diperoleh dengan menggabungkan sandi lama dengan 4 elemen baru yang diperoleh dari perhitungan diatas. Dengan demikian sandi baru untuk pesan A adalah

011011100. Sandi baru untuk ke 32 pesan diatas dapat dilihat pada tabel dibawah ini.

Tabel Sandi Lama dan Sandi Baru

Pesan
Sandi Lama
Sandi Baru



A
01101
011011100
B
00001
000010011
C
00010
000101100
D
00011
000111111
E
00100
001000101
F
00101
001010110
G
00110
001101001
H
00111
001111010
I
10010
100100011
J
01001
010011001




Metode Hamming by Gapra                                                                                                                               3


Pesan
Sandi Lama
Sandi Baru



K
01010
010100110
L
11010
110101001
M
01011
010110101
N
11101
111010011
O
11100
111000000
P
11110
111101100
Q
11001
110010110
R
11000
110000101
S
10101
101011001
T
10100
101001010
U
11011
110111010
V
00000
000000000
W
01000
010001010
X
11111
111111111
Y
10110
101100110
Z
10111
101110101
.
01100
011001111
,
10011
100110000
?
01110
011100011
!
10001
100011100
:
01111
011110000
=
10000
100001111




CONTOH PELACAKAN KESALAHAN

Dikirimkan suatu pesan yang oleh penerima pesan tersebut diterima sebagai sandi 101111111. Untuk melihat apakah pesan ini benar atau tidak, maka pesan yang diterima tersebut harus dicek.

Untuk mengecek sandi yang diterima, perlu dicari isyarat sindrom, yaitu perkalian antara matrix H dengan sandi yang diterima. Hasil perkaliannya adalah sebagai berikut :





1
1
0
1
0
1
0
0
0

1
1
0
1
1
0
0
1
0
0

0

1
1
1
0
0
1
0
0
1
0

1

1
1
0
1
0
1
0
0
0
1

1

1










1



















1














Isyarat sindrom yang diperoleh dari perhitungan diatas adalah [ 1 0 1 0 ] -1. Jika isyarat sindrom ini dicocokan dengan matrix H, terlihat bahwa isyarat sindrom cocok dengan kolom ke 2. Dengan demikian, kesalahan terjadi pada angka ke 2, yaitu dari angka “0” harus diubah menjadi angka “1”.

METODE HAMMING

KOREKSI ERROR

Mekanisme pendeteksian kesalahan dengan menambahkan data word (D) dengan suatu kode, biasanya bit cek paritas (C). Sehingga data yang disimpan memiliki panjang D + C. Kesalahan akan diketahui dengan menganalisa data dan bit paritas tersebut. Mekanisme perbaikan kesalahan yang paling sederhana adalah kode Hamming.


Perhatikan gambar diatas, disajikan tiga lingkaran Venn (A, B, C) saling berpotongan sehingga terdapat 7 ruang. Metode diatas adalah koreksi kesalahan untuk word data 4 bit (D =4). Gambar (a) adalah data aslinya. Kemudian setiap lingkaran harus diset bit logika 1 berjumlah genap sehingga harus ditambah bit – bit paritas pada ruang yang kosong seperti gambar (b). Apabila ada kesalahan penulisan bit pada data seperti gambar (c) akan dapat diketahui karena lingkaran A dan B memiliki logika 1 berjumlah ganjil.

Lalu bagaimana dengan word lebih dari 4 bit ? Ada cara yang mudah yang akan diterangkan berikut. Sebelumnya perlu diketahui jumlah bit paritas yang harus ditambahkan untuk sejumlah bit word. Contoh sebelumnya adalah koreksi kesalahan untuk kesalahan tunggal yang sering disebut single error correcting (SEC). Jumlah bit paritas yang harus ditambahkan lain pada double error correcting (DEC). Tabel dibawah ini menyajikan jumlah bit paritas yang harus ditambahkan dalam sistem kode Hamming.


Tabel Penambahan bit cek paritas untuk koreksi kode Hamming

# Data Bits
# Bit Paritas SEC
# Bit Paritas DEC



8
4
5



16
5
6



32
6
7



64
7
8



128
8
9



512
9
10






CONTOH KOREKSI KODE HAMMING 8 BIT DATA

Dari tabel yang disajikan diatas untuk 8 bit data diperlukan 4 bit tambahan sehingga panjang seluruhnya adalah 12 bit.
Layout bit disajikan seperti dibawah ini :


 
                                                                                                                         6
Bit cek paritas ditempatkan dengan perumusan 2N dimana N = 0,1,2, ……, sedangkan bit data adalah sisanya. Kemudian dengan exclusive-OR dijumlahkan ebagai berikut :









Setiap cek bit (C) beroperasi pada setiap posisi bit data yang nomor posisinya berisi bilangan 1 pada kolomnya. Sekarang ambil contoh suatu data, misalnya masukkan data : 00111001 kemudian ganti bit data ke 3 dari 0 menjadi 1 sebagai error-nya. Bagaimanakah cara mendapatkan bit data ke 3 sebagai bit yang terdapat error?

Jawaban :

Masukkan data pada perumusan cek bit paritas :



 

Sekarang bit 3 mengalami kesalahan sehingga data menjadi: 00111101


Apabila bit – bit cek dibandingkan antara yang lama dan baru maka terbentuk syndrom word :



Sekarang kita lihat posisi bit ke-6 adalah data ke-3.

Mekanisme koreksi kesalahan akan meningkatkan realibitas bagi memori tetapi resikonya adalah menambah kompleksitas pengolahan data. Disamping itu mekanisme koreksi kesalahan akan menambah kapasitas memori karena adanya penambahan bit – bit cek paritas. Jadi ukuran memori akan lebih besar beberapa persen atau dengan kata lain kapasitas penyimpanan akan berkurang karena beberapa lokasi digunakan untuk mekanisme koreksi kesalahan.