Senin, 12 Oktober 2009

tugas jarkom

Telnet (Terminal Emulation)
Telnet adalah hal terhebat yang pernah terjadi pada komputer. Kemampuan untuk login secara remote dan melakukan kegiatan pada komputer lain adalah yang membedakan sistem opera Unix dan Unix-like dengan sistem operasi lain. Telnet mengizinkan kita masuk kedalam komputer, jika kita telah berada pada terminal. Ketika nama dan kata sandi kita terbukti, kita akan diberikan sebuah shell prompt. Dari sini, kita bisa melakukan semua hal yang membutuhkan konsol teks. Menuliskan email, membaca newsgroup, memindahkan berkas, dan sebagainya. Jika kita menjalankan X dan kita telnet ke mesin lain,kita bisa menjalankan program-program X pada komputer remote dan menampilkannya pada komputer.
Untuk masuk ke mesin remote, gunakan perintah:
% telnet
Jika host merespon, kita akan mendapatkan prompt login. Berikan nama pengguna dan kata sandi. Kita akan berada pada shell sekarang. Untuk berhenti dari sesi telnet,gunakan perintah exit atau logout.
Telnet tidak mengenkripsi informasi yang dikirimkannya. Semua dikirimkan dalam bentuk plain text, termasuk kata sandi. Tidak disarankan untuk menggunakan telnet melalui Internet. Gunakan Secure Shell. Ini akan mengenkripsi semua trafik dan tersedia secara gratis.
Penggunaan lain dari telnet
Kita bisa menggunakan telnet untuk terhubung pada sebuah host pada port tertentu.
% telnet [port]
Hal ini terkadang bisa berguna ketika kita perlu menguji layanan tertentu, dan membutuhkan kontrol penuh terhadap perintah, dan kita perlu melihat apa yang sedang terjadi. Anda bisa menguji atau menggunakan server SMTP, POP3 HTTP, dan sebagainya secara interaktif.
Dengan perintah telnet ini kita bisa mengambil dan mengetahui komputer dalam jaringan sesuai dengan alamat yang dituju. Namun apabila serveces telnet belum start kita harus mengaktifkannya terlebih dahulu. Caranya bisa bermacam-macam, namun untuk memudahkan kita bisa mengambil pilihan Serveces dibawah pilihan Administrative tool. Kemudian klik Services, lalu dijendela Administratove tool pilih Telnet dan klik kanan mouse lalu pilih Start.
Jika perintah telnet sudah start kita sudah bisa memanfaatkannya untuk membuka alamat dikomputer lain dalam jaringan LAN maupun WAN. Caranya adalah dengan menuliskan telnet dari command prompt. Misalnya,membuka komputer yang alamatnya 192.168.0.1, maka dari command prompt ketikkan: telnet 192.168.0.1 lalu Enter. Setelah menuliskan perintah tersebut akan tampil pernyataan:
“You area abount to send your password information to a remote computer in Internet zone. This might not be safe. Do you want to send anyway:”
Maka kita jawab N dan anda diminta untuk Login, masukkan login kita, misalnya tutang lalu Enter. Setelah itu kita diminta untuk memasukkan password, misalnya admin001 diikuti dengan menekan Enter. Di komputer ini kita bisa melakukan berbagai aktifitas seperti biasanya. Untuk mengakhiri telnet dan kembali ke jendela desktop ketikkan Exit.

dns (domain name sistem)
Sistem Penamaan Domain adalah sebuah sistem yang menyimpan informasi tentang nama host maupun nama domain dalam bentuk basis data tersebarr (distributed database) di dalam jaringan komputer, misalkan: Internett. DNS menyediakan alamat IP untuk setiap nama host dan mendata setiap server transmisi surat (mail exchange server) yang menerima surat elektronik (email) untuk setiap domain.
DNS menyediakan servis yang cukup penting untuk Internet, bilamana perangkat keras komputer dan jaringan bekerja dengan alamat IP untuk mengerjakan tugas seperti pengalamatan dan penjaluran (routing), manusia pada umumnya lebih memilih untuk menggunakan nama host dan nama domain, contohnya adalah penunjukan sumber universal (URL) dan alamat e-mail. DNS menghubungkan kebutuhan ini.
Teori bekerja DNS
Para Pemain Inti
Pengelola dari sistem DNS terdiri dari tiga komponen:
• DNS resolver, sebuah program klien yang berjalan di komputer pengguna, yang membuat permintaan DNS dari program aplikasi.
• recursive DNS server, yang melakukan pencarian melalui DNS sebagai tanggapan permintaan dari resolver, dan mengembalikan jawaban kepada para resolver tersebut;
• authoritative DNS server yang memberikan jawaban terhadap permintaan dari recursor, baik dalam bentuk sebuah jawaban, maupun dalam bentuk delegasi (misalkan: mereferensikan ke authoritative DNS server lainnya)
Pengertian beberapa bagian dari nama domain
Sebuah nama domain biasanya terdiri dari dua bagian atau lebih (secara teknis disebut label), dipisahkan dengan titik.
• Label paling kanan menyatakan top-level domain - domain tingkat atas/tinggi (misalkan, alamat www.wikipedia.org memiliki top-level domain org).
• Setiap label di sebelah kirinya menyatakan sebuah sub-divisi atau subdomain dari domain yang lebih tinggi. Catatan: "subdomain" menyatakan ketergantungan relatif, bukan absolut. Contoh: wikipedia.org merupakan subdomain dari domain org, dan id.wikipedia.org dapat membentuk subdomain dari domain wikipedia.org (pada prakteknya, id.wikipedia.org sesungguhnya mewakili sebuah nama host - lihat dibawah). Secara teori, pembagian seperti ini dapat mencapai kedalaman 127 level, dan setiap label dapat terbentuk sampai dengan 63 karakter, selama total nama domain tidak melebihi panjang 255 karakter. Tetapi secara praktek, beberapa pendaftar nama domai (domain name registry) memiliki batas yang lebih sedikit.
• Terakhir, bagian paling kiri dari bagian nama domain (biasanya) menyatakan nama host. Sisa dari nama domain menyatakan cara untuk membangun jalur logis untuk informasi yang dibutuhkan; nama host adalah tujuan sebenarnya dari nama sistem yang dicari alamat IP-nya. Contoh: nama domain www.wikipedia.org memiliki nama host "www".
Fungsi dari setting DNS adalah untuk menentukan alamat IP server yang berfungsi sebagai Domain Name Server (server ini bertugas menerjemahkan alamat domain yang anda tuju). Setting ini sebaiknya anda lakukan, walaupun bukan merupakan kerharusan karena SijiwaeNet akan secara otomatis menentukan DNS server.
1. Klik dua kali icon My Computer, lalu klik dua kali icon Dial Up Networking
2. Klik kanan icon SijiwaeNet yang sudah dibuat sebelumnya, pilih Properties
3. Setelah keluar window SijiwaeNet, klik pada Server Types Tab. Perhatikan setting pada Advanced Options, lakukan seperti terlihat pada gambar.

4. Klik tombol TCP/IP Settings. Klik pada Specify name server address, lalu isikan sebagai berikut :
Masukkan Primary DNS : 202.134.0.155
Secondary DNS : 202.134.2.5

Jika telah selesai, klik OK untuk menutup dialog, lalu OK lagi untuk kembali ke awal.
Penerapan DNS
Sistem yang dijabarkan diatas memberikan skenario yang disederhanakan. DNS meliputi beberapa fungsi lainnya:
• Nama host dan alamat IP tidak berarti terhubung secara satu-banding-satu. Banyak nama host yang diwakili melalui alamat IP tunggal: gabungan dengan pengasuhan maya (virtual hosting), hal ini memungkinkan satu komputer untuk malayani beberapa situs web. Selain itu, sebuah nama host dapat mewakili beberapa alamat IP: ini akan membantu toleransi kesalahan (fault tolerance dan penyebaran beban (load distribution), juga membantu suatu situs berpindah dari satu lokasi fisik ke lokasi fisik lainnya secara mudah.
• Ada cukup banyak kegunaan DNS selain menerjemahkan nama ke alamat IP. Contoh:, agen pemindahan surat Mail transfer agents(MTA) menggunakan DNS untuk mencari tujuan pengiriman E-mail untuk alamat tertentu. Domain yang menginformasikan pemetaan exchange disediakan melalui rekod MX (MX record) yang meningkatkan lapisan tambahan untuk toleransi kesalahan dan penyebaran beban selain dari fungsi pemetaan nama ke alamat IP.
• Kerangka Peraturan Pengiriman (Sender Policy Framework) secara kontroversi menggunakan keuntungan jenis rekod DNS, dikenal sebagai rekod TXT.
• Menyediakan keluwesan untuk kegagalan komputer, beberapa server DNS memberikan perlindungan untuk setiap domain. Tepatnya, tigabelas server akar (root servers) digunakan oleh seluruh dunia. Program DNS maupun sistem operasi memiliki alamat IP dari seluruh server ini. Amerika Serikat memiliki, secara angka, semua kecuali tiga dari server akar tersebut. Namun, dikarenakan banyak server akar menerapkan anycast, yang memungkinkan beberapa komputer yang berbeda dapat berbagi alamat IP yang sama untuk mengirimkan satu jenis services melalui area geografis yang luas, banyak server yang secara fisik (bukan sekedar angka) terletak di luar Amerika Serikat.

smtp (simple mail transfer protokol)
SMTP ialah sebuah protokol yang bekerja pada port 25. Dimana pada port ini digunakan untuk mengirim email dengan aplikasi yang dinamakan MTA (Mail Transfer Agent). MTA ini berupa program email misalnya: sendmail, qmail atau postfix. Perumpamaan MTA ialah seperti jasa pengiriman surat seperti kantor pos, Tiki, DHL. Ketika seseorang mengirim email maka sebenarnya ia telah mengontak port 25 untuk mengirimkan email kepada recipient. User mengirim email dapat menggunakan berbagai macam cara. Secara umum user menggunakan yang disebut MUA (Mail User Agent). Contoh MUA ialah seperti Microsoft Outlook, Kmail, Eudora Mail, pine, Evolution.
SMTP mampu menangani pesan berupa teks kode ACSII yang akan dikirim kedalam kotak surat pada host TCP/IP yang telah ditentukan untuk melayani e-mail.Adpun mekanisme SMTP adalah simana user ingin mengirim e-mail berinterksi dengan mail-sistem local lewat komponen user-agen(UA) pada mail system. E-mail yang akan dikirim terlebih dahulu disimpan sementara dalam outging-mail-box,selanjutnya SMTP pengirim memproses email pada yang dikumpulkan pada outging-mail-box secara periodik. Jika pengirim SMTP menemukan e-mail dan outging-mail-box,maka secara langsung akan membuat koneksi TCP dengan host yang dituju untuk mengirim e-mail. Penerima TCP dalam proses tujuan yang harus menerima koneksi TCP,selanjutnya e-mail dikirim pada koneksi ini. Pada penerima SMTP ini e-mail disimpan dalam host tujuan pada masing-masing mail-box sesuai dengan alamat tujuan.
tftp (trivial file transfer protokol)
FTP dan TFTP
File Transfer Protocol dan Trivial File Transfer Protocol
File Transfer Protocol (FTP) dan Trivia File Transfer Protocol (TFTP) merupakan dua file transfer protocol yang populer di dalam jaringan IP. Kebanyakan user menggunakan FTP; sementara router dan switch menggunakan TFTP. Mana yang lebih baik bergantung kepada apa yang dilakukan. Kebanyakan user akan me milih FTP karena ia mempunyai fitur yang lebih banyak. Namun karena dari awalnya IOS tidak mendukung FTP untuk memasukkan dan mengeluarkan file dari router, maka banyak orang yang terus menggunakan TFTP karena kebiasaan.
Mana yang Source Code-nya Lebih Sedikit, FTP atau TFTP? TFTP menggunakan kode lebih sedikit. Ia didesain agar sederhana (trivial), dengan jumlah memory yang sedikit untuk menjalankan kodenya. FTP jauh lebih tangguh karena dilengkapi banyak fitur.
Apakah FTP atau TFTP Melakukan Perbaikan Kesalahan? Baik FTP dan TFTP keduanya melakukan perbaikan kesalahan. FTP mengandalkan TCP, sementara TFTP melakukan perbaikan satu blok data application layer pada satu waktu.
Bagaimana Router Membagi dan Menyusun Paket? Pada waktu paket harus diteruskan tetapi paket lebih besar dari maximum transmission unit (MTU) pada interface keluar, maka router membagi paket tersebut sepanjang bit Don’t Fragment tidak diset. Tidak ada router yang menyusun kembali paket itu; bagian-bagian paket disusun kembali pada host tujuan akhir.
Berapa Banyak Segmen TCP yang Ditukar untuk Membuat Koneksi TCP? Dan Berapa Banyak untuk Menghentikannya? Pada waktu dua host ingin mentransfer informasi menggunakan application layer protocol yang menggunakan TCP, mereka memulai proses dengan negosiasi. TCP dimulai dengan proses yang dikenal dengan handshake tiga langkah.
Pertama, pengirim mengirim pesan sinkronisasi kepada host tujuan, supaya ia tahu bahwa pengirim ingin membuat suatu hubungan. Host tujuan merespon pesan tersebut dengan penerimaan dan juga pesan sinkronisasinya sendiri. Setelah diterima, pengirim mengirim kembali pesan penerimaannya sendiri. Dengan tiga langkah ini, suatu rangkaian semu dibuat antara pengirim dan penerima. Rangkaian semu ini akan digunakan untuk mentransfer data antarkeduanya sampai prosesnya selesai. Setelah selesai, proses tersebut akan dihentikan dengan menggunakan proses (tetapi empat langkah) yang sama.

Selasa, 23 Juni 2009

CISC, RISC, DAN SUPERSCALAR

Sudah sering kita mendengar debat yang cukup menarik antara komputer personal IBM dan kompatibelnya yang berlabel Intel Inside dengan komputer Apple yang berlabel PowerPC. 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.

Apakah memang RISC lebih lebih baik dari CISC atau sebaliknya. Tetapi tahukah kita dimana sebenarnya letak perbedaan itu. Apakah prosesor dengan instruksi yang lebih sedikit akan lebih baik dari prosesor yang instruksinya kompleks dan lengkap. Apakah memang perbedaan prosesor itu hanya dari banyak atau tidaknya instruksi saja. Bukankah jumlah instruksi tidak berhubungan dengan ke-handal-an suatu prosesor. Pertanyaan-pertanyaan ini yang hendak dijawab melalui tulisan berikut. Namun supaya lebih dekat dengan elektronika praktis, ElectronicLab akan lebih fokus pada mikrokontroler low-cost yang berbasis RISC dan CISC. Sebagai contoh dari mikrokontroler CISC adalah 68HC11 buatan Motorola dan 80C51 dari Intel. Kita juga mengenal keluarga PIC12/16CXX dari Microchip dan COP8 buatan National Semiconductor sebagai mikrokontroler yang berbasis RISC.

CISC adalah singkatan dari Complex Intruction Set Computer dimana prosesor tersebut memiliki set instruksi yang kompleks dan lengkap.

RISC adalah singkatan dari Reduced Instruction Set Computer yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit.RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif. Konsep RISC pertama kali dikembangkan oleh IBM pada era 1970-an. Komputer pertama yang menggunakan RISC adalah komputer mini IBM 807 yang diperkenalkan pada tahun 1980. Dewasa ini, RISC digunakan pada keluarga processor buatan Motorola (PowerPC) dan SUN Microsystems (Sparc, UltraSparc).

RISC dikembangkan melalui seorang penelitinya yang bernama John Cocke, beliau menyampaikan bahwa sebenarnya kekhasan dari komputer tidaklah menggunakan banyak instruksi, namun yang dimilikinya adalah instruksi yang kompleks yang dilakukan melalui rangkaian sirkuit.

Pada desain chip mikroprosesor jenis ini, 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 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 menangan 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.

Pada tahun 1980-an kapasitas modul memori meningkat dan harganya turun. Penekanan pada desain CPU bergeser ke kinerja, dan RISC menjadi trend baru. Contoh arsitektur RISC meliputi SPARC dari Sun Microsystems; seri MIPS Rxxxx dari MIPS Technologies; Alpha dari Digital Equipment; PowerPC yang dikembangkan bersama oleh IBM dan Motorola; dan RISC dari Hewlett-Packard.

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.

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.

Perbedaan Berdasarkan Instruksinya

Karena perbedaan keduanya ada pada kata set instruksi yang kompleks atau sederhana (reduced), maka mari kita bahas sedikit tentang intruksi itu sendiri.

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 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 ...

Sebagian set instruksi 68HC11

Pada awalnya, instruksi yang tersedia amat sederhana dan sedikit. Kemudian desainer mikroprosesor berlomba-lomba untuk melengkapi set instruksi itu selengkap-lengkapnya. Jumlah instruksi itu berkembang seiring dengan perkembangan desain mikroprosesor yang semakin lengkap dengan mode pengalamatan yang bermacam-macam. Mikroprosesor lalu memiliki banyak instruksi manipulasi bit dan seterusnya dilengkapi dengan instruksi-instruksi aritmatik seperti penjumlahan, pengurangan, perkalian dan pembagian. Seperti contohnya 68HC11 banyak sekali memiliki set instruksi untuk percabangan seperti BNE, BLO, BLS, BMI, BRCLR, BRSET dan sebagainya.

Perancang mikroprosesor juga memperkaya ragam instruksi tersebut dengan membuat satu instruksi tunggal untuk program yang biasanya dijalankan dengan beberapa intruksi. Misalnya pada 80C51 untuk contoh program berikut ini.

LABEL ...

...

DEC R0

MOV A,R0

JNZ LABEL

Program 'decrement' 80C51

Program ini adalah program pengulangan yang mengurangi isi register R0 sampai register R0 menjadi kosong (nol). Intel menambah set instruksinya dengan membuat satu instruksi khusus untuk keperluan seperti ini :

LABEL ....

DJNZ R0,LABEL

Instruksi 'decrement jump not zero' 80C51

Kedua contoh program ini hasilnya tidak berbeda. Namun demikian, instruksi kompleks seperti DJNZ mempermudah pembuat program. Set instruksi yang lengkap diharapkan akan semakin membuat pengguna mikroprosesor leluasa menulis program dalam bahasa assembler yang mendekati bahasa pemrograman level tinggi. Intel 80C51 yang dikembangkan dari basis prosesor 8048 dirilis pada tahun 1976 memiliki tidak kurang dari 111 instruksi. Tidak ketinggalan, 68HC11 dari Motorola yang populer di tahun 1984 dilengkapi dengan 145 instruksi. Karena banyak dan kompleksnya instruksi yang dimiliki 68HC11 dan 80C51, kedua contoh mikrokontroler ini disebut sebagai prosesor CISC.

Debat CISC versus RISC dimulai ketika pada tahun 1974 IBM mengembangkan prosesor 801 RISC. Argumen yang dipakai waktu itu adalah mengapa diperlukan instruksi yang kompleks. Sebab pada prinsipnya, instruksi yang kompleks bisa dikerjakan oleh instruksi-instruksi yang lebih sederhana dan kecil. Ketika itu penggunaan bahasa tingkat tinggi seperti Fortran dan kompiler lain (compiler/interpreter) mulai berkembang. Apalagi saat ini compiler seperti C/C++ sudah lazim digunakan. Sehingga sebenarnya tidaklah diperlukan instruksi yang kompleks di tingkat prosesor. Kompiler yang akan bekerja men-terjemahkan program dari bahasa tingkat tinggi menjadi bahasa mesin.

Untuk melihat bagaimana perbedaan instruksi RISC dan CISC, mari kita lihat bagaimana keduanya melakukan perkalian misalnya c = a x b. Mikrokontroler 68HC11 melakukannya dengan program sebagai berikut :

LDAA #$5

LDAB #$10

MUL

Program 5x10 dengan 68HC11

Cukup tiga baris saja dan setelah ini accumulator D pada 68HC11 akan berisi hasil perkalian dari accumulator A dan B, yakni 5 x 10 = 50. Program yang sama dengan PIC16CXX, adalah seperti berikut ini.

MOVLW 0x10

MOVWF Reg1

MOVLW 0x05

MOVWF Reg2

CLRW

LOOP ADDWF Reg1,0

CFSZ Reg2,1

GOTO LOOP

Program 5x10 dengan PIC16CXX

Prosesor PIC16CXX yang RISC ini, tidak memiliki instruksi perkalian yang khusus. Tetapi perkalian 5x10 itu sama saja dengan penjumlahan nilai 10 sebanyak 5 kali. Kelihatannya membuat program assembly dengan prosesor RISC menjadi lebih kompleks dibandingkan dengan prosesor CISC. Tetapi perlu diingat, untuk membuat instruksi yang kompleks seperti instruksi MUL dan instruksi lain yang rumit pada prosesor CISC, diperlukan hardware yang kompleks juga. Dibutuhkan ribuan gerbang logik (logic gates) transistor untuk membuat prosesor yang demikian. Instruksi yang kompleks juga membutuhkan jumlah siklus mesin (machine cycle) yang lebih panjang untuk dapat menyelesaikan eksekusinya. Instruksi perkalian MUL pada 68HC11 memerlukan 10 siklus mesin dan instruksi pembagiannya memerlukan 41 siklus mesin.

Pendukung RISC berkesimpulan, bahwa prosesor yang tidak rumit akan semakin cepat dan handal. Hampir semua instruksi prosesor RISC adalah instruksi dasar (belum tentu sederhana), sehingga instruksi-instruksi ini umumnya hanya memerlukan 1 siklus mesin untuk menjalankannya. Kecuali instruksi percabangan yang membutuhkan 2 siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard, karena arsitektur ini yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam satu atau dua siklus mesin.

Sebagai perbandingan jumlah instruksi pada prosesor RISC, COP8 hanya dilengkapi dengan 58 instruksi dan PIC12/16CXX hanya memiliki 33 instruksi saja. Untuk merealisasikan instruksi dasar yang jumlah tidak banyak ini, mikroprosesor RISC tidak memerlukan gerbang logik yang banyak. Karena itu dimensi dice IC dan konsumsi daya prosesor RISC umumnya lebih kecil dibanding prosesor CISC. Bukan karena kebetulan, keluarga mikrokontroler PICXX banyak yang dirilis ke pasar dengan ukuran mini. Misalnya PIC12C508 adalah mikrokontroler DIP 8 pin.

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 aplikasi-aplikasi tertentu yang membutuhkan singlechip komputer, prosesor CISC bisa menjadi pilihan.

Sebaliknya, 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.

Kelebihan dan Kekurangan RISC dan CISC

Pendekatan CISC

Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, 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 mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja. Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.

Pendekatan RISC

Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):

LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.

Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.

SUPERSCALAR

Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel.

Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.

Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.

Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.

Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.

Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.

Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..

Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.

Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.

Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.


DAFTAR PUSTAKA :

- < Mikroprosesor

- CISC dan RISC