Jumat, 23 Oktober 2009

User Datagram Protocol (UDP)

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

UDP, singkatan dari User Datagram Protocol, adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768.

Karakteristik UDP

UDP memiliki karakteristik-karakteristik berikut:

  • Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi.
  • Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah didefinisikan.
  • UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process Identification.
  • UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP.

UDP tidak menyediakan layanan-layanan antar-host berikut:

  • UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berjalan di atas UDP.
  • UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.
  • UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.

[sunting] Penggunaan UDP

UDP sering digunakan dalam beberapa tugas berikut:

  • Protokol yang "ringan" (lightweight): Untuk menghemat sumber daya memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat melakukan fungsi-fungsi spesifik dengan saling bertukar pesan. Contoh dari protokol yang ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System.
  • Protokol lapisan aplikasi yang mengimplementasikan layanan keandalan: Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS)
  • Protokol yang tidak membutuhkan keandalan. Contoh protokol ini adalah protokol Routing Information Protocol (RIP).
  • Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name Service.

[sunting] Pesan-pesan UDP

Ilustrasi mengenai pesan-pesan UDP

UDP, berbeda dengan TCP yang memiliki satuan paket data yang disebut dengan segmen, melakukan pengepakan terhadap data ke dalam pesan-pesan UDP (UDP Messages). Sebuah pesan UDP berisi header UDP dan akan dikirimkan ke protokol lapisan selanjutnya (lapisan internetwork) setelah mengepaknya menjadi datagram IP. Enkapsulasi terhadap pesan-pesan UDP oleh protokol IP dilakukan dengan menambahkan header IP dengan protokol IP nomor 17 (0x11). Pesan UDP dapat memiliki besar maksimum 65507 byte: 65535 (216)-20 (ukuran terkecil dari header IP)-8 (ukuran dari header UDP) byte. Datagram IP yang dihasilkan dari proses enkapsulasi tersebut, akan dienkapsulasi kembali dengan menggunakan header dan trailer protokol lapisan Network Interface yang digunakan oleh host tersebut.

Dalam header IP dari sebuah pesan UDP, field Source IP Address akan diset ke antarmuka host yang mengirimkan pesan UDP yang bersangkutan; sementara field Destination IP Address akan diset ke alamat IP unicast dari sebuah host tertentu, alamat IP broadcast, atau alamat IP multicast.

[sunting] Header UDP

Header UDP diwujudkan sebagai sebuah header dengan 4 buah field memiliki ukuran yang tetap, seperti tersebutkan dalam tabel berikut.

Ilustrasi mengenai header UDP
Field Panjang Keterangan
Source Port 16 bit (2 byte) Digunakan untuk mengidentifikasikan sumber protokol lapisan aplikasi yang mengirimkan pesan UDP yang bersangkutan. Penggunaan field ini adalah opsional, dan jika tidak digunakan, akan diset ke angka 0. Beberapa protokol lapisan aplikasi dapat menggunakan nilai field ini dari pesan UDP yang masuk sebagai nilai field port tujuan (Destination Port, lihat baris selanjutnya) sebagai balasan untuk pesan tersebut.
Destination Port 16 bit (2 byte) Digunakan untuk mengidentifikasikan tujuan protokol lapisan aplikasi yang menjadi tujuan pesan UDP yang bersangkutan. Dengan menggunakan kombinasi antara alamat IP dengan nilai dari field ini untuk membuat sebuah alamat yang signifikan untuk mengidentifikasikan proses yang berjalan dalam sebuah host tertentu yang dituju oleh pesan UDP yang bersangkutan.
Length 16 bit (2 byte) Digunakan untuk mengindikasikan panjang pesan UDP (pesan UDP ditambah dengan header UDP) dalam satuan byte. Ukuran paling kecil adalah 8 byte (ukuran header UDP, ketika tidak ada isi pesan UDP), dan ukuran paling besar adalah 65515 bytes (65535 [216] -20 [ukuran header protokol IP]). Panjang maksimum aktual dari pesan UDP akan disesuaikan dengan menggunakan nilai Maximum Transmission Unit (MTU) dari saluran di mana pesan UDP dikirimkan. Field ini bersifat redundan (terulang-ulang). Panjang pesan UDP dapat dihitung dari field Length dalam header UDP dan field IP Header Length dalam header IP.
Checksum 16 bit (2 byte) Berisi informasi pengecekan integritas dari pesan UDP yang dikirimkan (header UDP dan pesan UDP). Penggunaan field ini adalah opsional. Jika tidak digunakan, field ini akan bernilai 0.

[sunting] Port UDP

Seperti halnya TCP, UDP juga memiliki saluran untuk mengirimkan informasi antar host, yang disebut dengan UDP Port. Untuk menggunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sebagai sebuah multiplexed message queue, yang berarti bahwa UDP port tersebut dapat menerima beberapa pesan secara sekaligus. Setiap port diidentifikasi dengan nomor yang unik, seperti halnya TCP, tetapi meskipun begitu, UDP Port berbeda dengan TCP Port meskipun memiliki nomor port yang sama. Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara luas.


sumber: www.wikipedia.co.id

Nomor Port UDP Digunakan oleh
53 Domain Name System (DNS) Name Query
67 BOOTP client (Dynamic Host Configuration Protocol [DHCP])
68 BOOTP server (DHCP)
69 Trivial File Transfer Protocol (TFTP)
137 NetBIOS Name Service
138 NetBIOS Datagram Service
161 Simple Network Management Protocol (SNMP)
445 Server Message Block (SMB)
520 Routing Information Protocol (RIP)

UTP (Twisted pair)


Kabel Twisted pair (pasangan berpilin) adalah sebuah bentuk kabel di mana dua konduktor digabungkan dengan tujuan untuk mengurangi atau meniadakan interferensi elektromagnetik dari luar seperti radiasi elektromagnetik dari kabel unshielded twisted pair (UTP) cables, dan crosstalk di antara pasangan kabel yang berdekatan.

Unshielded twisted-pair (disingkat UTP) adalah sebuah jenis kabel jaringan yang menggunakan bahan dasar tembaga, yang tidak dilengkapi dengan shield internal. UTP merupakan jenis kabel yang paling umum yang sering digunakan di dalam jaringan lokal (LAN), karena memang harganya yang rendah, fleksibel dan kinerja yang ditunjukkannya relatif bagus. Dalam kabel UTP, terdapat insulasi satu lapis yang melindungi kabel dari ketegangan fisik atau kerusakan tapi, tidak seperti kabel Shielded Twisted-pair (STP), insulasi tersebut tidak melindungi kabel dari interferensi elektromagnetik.

Kabel UTP memiliki impendansi kira-kira 100 Ohm dan tersedia dalam beberapa kategori yang ditentukan dari kemampuan transmisi data yang dimilikinya seperti tertulis dalam tabel berikut.

Kategori Kegunaan
Category 1 (Cat1) Kualitas suara analog
Category 2 (Cat2) Transmisi suara digital hingga 4 megabit per detik
Category 3 (Cat3) Transmisi data digital hingga 10 megabit per detik
Category 4 (Cat4) Transmisi data digital hingga 16 megabit per detik
Category 5 (Cat5) Transmisi data digital hingga 100 megabit per detik
Enhanced Category 5 (Cat5e) Transmisi data digital hingga 250 megabit per detik
Category 6 (Cat6)
Category 7 (Cat7)

Di antara semua kabel di atas, kabel Enhanced Category 5 (Cat5e) dan Category 5 (Cat5) merupakan kabel UTP yang paling populer yang banyak digunakan dalam jaringan berbasis teknologi Ethernet.

[sunting] Kategori 1

Kabel UTP Category 1 (Cat1) adalah kabel UTP dengan kualitas transmisi terendah, yang didesain untuk mendukung komunikasi suara analog saja. Kabel Cat1 digunakan sebelum tahun 1983 untuk menghubungkan telepon analog Plain Old Telephone Service (POTS). Karakteristik kelistrikan dari kabel Cat1 membuatnya kurang sesuai untuk digunakan sebagai kabel untuk mentransmisikan data digital di dalam jaringan komputer, dan karena itulah tidak pernah digunakan untuk tujuan tersebut.

[sunting] Kategori 2

Kabel UTP Category 2 (Cat2) adalah kabel UTP dengan kualitas transmisi yang lebih baik dibandingkan dengan kabel UTP Category 1 (Cat1), yang didesain untuk mendukung komunikasi data dan suara digital. Kabel ini dapat mentransmisikan data hingga 4 megabit per detik. Seringnya, kabel ini digunakan untuk menghubungkan node-node dalam jaringan dengan teknologi Token Ring dari IBM. Karakteristik kelistrikan dari kabel Cat2 kurang cocok jika digunakan sebagai kabel jaringan masa kini. Gunakanlah kabel yang memiliki kinerja tinggi seperti Category 3, Category 4, atau Category 5.

[sunting] Category 3

Kabel UTP Category 3 (Cat3) adalah kabel UTP dengan kualitas transmisi yang lebih baik dibandingkan dengan kabel UTP Category 2 (Cat2), yang didesain untuk mendukung komunikasi data dan suara pada kecepatan hingga 10 megabit per detik. Kabel UTP Cat3 menggunakan kawat-kawat tembaga 24-gauge dalam konfigurasi 4 pasang kawat yang dipilin (twisted-pair) yang dilindungi oleh insulasi. Cat3 merupakan kabel yang memiliki kemampuan terendah (jika dilihat dari perkembangan teknologi Ethernet), karena memang hanya mendukung jaringan 10BaseT saja. Seringnya, kabel jenis ini digunakan oleh jaringan IBM Token Ring yang berkecepatan 4 megabit per detik, sebagai pengganti Cat2.

Tabel berikut menyebutkan beberapa karakteristik yang dimiliki oleh kabel UTP Category 3 pada beberapa frekuensi.

Karakteristik Nilai pada frekuensi 10 MHz Nilai pada frekuensi 16 MHz
Attenuation (pelemahan sinyal) 27 dB/1000 kaki 36 dB/1000 kaki
Near-end Cross-Talk (NEXT) 26 dB/1000 kaki 23 dB/1000 kaki
Resistansi 28.6 Ohm/1000 kaki 28.6 Ohm/1000 kaki
Impendansi 100 Ohm (±15%) 100 Ohm (±15%)
Kapasitansi 18 picoFarad/kaki 18 picoFarad/kaki

[sunting] Category 4

Kabel UTP Category 4 (Cat4) adalah kabel UTP dengan kualitas transmisi yang lebih baik dibandingkan dengan kabel UTP Category 3 (Cat3), yang didesain untuk mendukung komunikasi data dan suara hingga kecepatan 16 megabit per detik. Kabel ini menggunakan kawat tembaga 22-gauge atau 24-gauge dalam konfigurasi empat pasang kawat yang dipilin (twisted pair) yang dilindungi oleh insulasi. Kabel ini dapat mendukung jaringan Ethernet 10BaseT, tapi seringnya digunakan pada jaringan IBM Token Ring 16 megabit per detik.

Tabel berikut menyebutkan beberapa karakteristik yang dimiliki oleh kabel UTP Category 4 pada beberapa frekuensi.

Karakteristik Nilai pada frekuensi 10 MHz Nilai pada frekuensi 20 MHz
Attenuation 20 dB/1000 kaki 31 dB/1000 kaki
Near-end Cross-Talk 41 dB/1000 kaki 36 dB/1000 kaki
Resistansi 28.6 Ohm/1000 kaki 28.6 Ohm/1000 kaki
Impedansi 100 Ohm (±15%) 100 Ohm (±15%)
Kapasitansi 18 picoFarad/kaki 18 picoFarad/kaki

[sunting] Category 5

Kabel UTP Category 5 (Cat5) adalah kabel dengan kualitas transmisi yang jauh lebih baik dibandingkan dengan kabel UTP Category 4 (Cat4), yang didesain untuk mendukung komunikasi data serta suara pada kecepatan hingga 100 megabit per detik. Kabel ini menggunakan kawat tembaga dalam konfigurasi empat pasang kawat yang dipilin (twisted pair) yang dilindungi oleh insulasi. Kabel ini telah distandardisasi oleh Electronic Industries Alliance (EIA) dan Telecommunication Industry Association (TIA).

Kabel Cat5 dapat mendukung jaringan Ethernet (10BaseT), Fast Ethernet (100BaseT), hingga Gigabit Etheret (1000BaseT). Kabel ini adalah kabel paling populer, mengingat kabel serat optik yang lebih baik harganya hampir dua kali lipat lebih mahal dibandingkan dengan kabel Cat5. Karena memiliki karakteristik kelistrikan yang lebih baik, kabel Cat5 adalah kabel yang disarankan untuk semua instalasi jaringan.

Karakteristik Nilai pada frekuensi 10 MHz Nilai pada frekuensi 100 MHz
Attenuation 20 dB/1000 kaki 22 dB/1000 kaki
Near-end Cross-talk 47 dB/1000 kaki 32.3 dB/1000 kaki
Resistansi 28.6 Ohm/1000 kaki 28.6 Ohm/1000 kaki
Impendansi 100 Ohm (±15%) 100 Ohm (±15%)
Kapasitansi 18 picoFarad/kaki 18 picoFarad/kaki
Structural return loss 16 dB 16 dB
Delay skew 45 nanodetik/100 meter 45 nanodetik/100 meter

[sunting] Enhanced Category 5

Kabel ini merupakan versi perbaikan dari kabel UTP Cat5, yang menawarkan kemampuan yang lebih baik dibandingkan dengan Cat5 biasa. Kabel ini mampu mendukung frekuensi hingga 250 MHz, yang direkomendasikan untuk penggunaan dalam jaringan Gigabit Ethernet, meskipun menggunaan kabel UTP Category 6 lebih disarankan untuk mencapai kinerja tertinggi.

[sunting] Pengabelan UTP Category 5

Pengabelan UTP Category 5 Straight
Pengabelan UTP Category 5 Crossover

Dalam menghubungkan jaringan Ethernet dengan menggunakan kabel UTP Category 5, terdapat dua strategi pengabelan, yakni Crossover cable dan Straight-through cable. Kabel Crossover digunakan untuk menghubungkan dua perangkat yang sama (NIC dengan NIC lainnya, hub dengan hub yang lainnya dan lain-lain), sementara kabel Straight-through digunakan untuk menghubungkan NIC dengan hub atau NIC dengan switch.

[sunting] Shielded twisted pair (STP atau STP-A)

Shielded twisted pair atau STP adalah kabel pasangan berpilin yang memiliki perlindungan dari logam untuk melindungi kabel dari intereferensi elektromagnetik luar.


sumber: www.wikipedia.co.id


Senin, 05 Oktober 2009

TFTP

TFTP (Trivial File Transfer Protocol)


Disingkat dengan TFTP. File transfer protokol yang cukup sederhana, dan tidak terlalu aman digunakan khususnya untuk melakukan transfer data yang bersifat rahasia. Proses transfer datanya dilakukan dengan menggunakan transport User Datagram Protocol (UDP). TFTP ini mirip dengan File Transfer Protocol (FTP), bedanya adalah dalam hal protokol transport yang digunakan.


SMTP

SMTP


Disingkat dengan SMTP. Mekanisme bagi client untuk mengirim surat secara elektronik untuk ditujukan ke user lain di Internet. Protokol standar yang digunakan untuk mengirimkan email ke sebuah server di jaringan internet. Untuk keperluan pengambilan email, digunakan protokol Post Office Protocol (POP).

SMTP (Simple Mail Transport Protocol) mendefinisikan cara bagaimana suatu Message Transport Agent (MTA) saling menukar e-mail dengan MTA yang lain. Prosesnya dapat dijelaskan sebagai berikut: pemakai (user) berinteraksi dengan User Agent (UA), yang kemudian pada gilirannya UA ini akan berinteraksi dengan MTA. MTA inilah yang kemudian akan meneruskan e-mail kepada MTA lainnya, dan juga MTA ini akan menerima pesan dari MTA lain untuk diserahkan kepada pemakai (user) melalui User Agent (UA). E-mail client membuka sesi dengan melakukan inisialisasi sirkuit TCP/IP ke port 25, server SMTP kemudian memberikan respon dengan sebuah nomor ID dan status. Jika server tersedia untuk mentransfer pesan maka client dapat meneruskan sesi dan mentransfer pesan. Setelah koneksi TCP diinisialisasikan kemudian e-mail client mengirim perintah "HELO" bersama-sama dengan nama domainnya, hal ini bertujuan untuk memperkenalkan identitasnya kepada server sehingga bila server menerima perintah ini maka server akan menjawab bersama-sama dengan nama domainnya. Kemudian e-mail client akan mengirim perintah "MAIL FROM:". Selanjutnya e-mail client akan mengirimkan perintah "RCPT TO:". Bila seluruh alamat e-mail dari penerima telah dikirim dan diterima oleh server, client kemudian mengirim perintah "DATA". Pesan tersebut akan dikirim oleh client jika server telah memberikan konfirmasi yang menyatakan siap untuk menerima data dari pesan e-mail tersebut. Bila telah selesai, selanjutnya client akan mengirim perintah terakhir yang akan menunjukkan bahwa pesan telah dikirim yaitu berupa titik("."), setelah server mengirimkan jawaban yang menyatakan bahwa pesan telah diterima maka client akan diberikan kesempatan untuk mengirim pesan lagi atau mengakhiri sesi tersebut yaitu dengan perintah "QUIT".

Telnet

TELNET

Protokol Telnet pertama kali diperkenalkan oleh Postel di tahun 1980. Dalam RFC 764, sebagaimana dituliskan oleh seseorang bernama Postel. Sebagaimana yang saya sebutkan pada ulasan “Penjelasan TCP/IP”, Telnet tergolong unik yang dirancang dengan mengecualikan pencatatan rlogin. Telnet dirancang untuk memungkinkan seorang user log in ke mesin lain dan mengeksekusi perintah disana. Telnet (seperti halnya rlogin) bekerja seperti halnya antara anda pada konsol mesin remote tersebut, seolah-olah anda secara fisik berada di depan mesin remote tersebut, menyalakan, dan mulai bekerja.

CATATAN: Pengguna PC bisa membayangkan hal yang sama dengan software PCAnywhere atau CloseUp. Program ini memungkinkan anda login secara remote ke PC lainnya dan mengeksekusi perintah pada C: prompt mesin remote tersebut (atau bahkan mengeksekusi perintah pada Windows, menyediakan anda koneksi berkecepatan tinggi untuk mengirimkan data grafis melalui kabel).

Virtual Terminal

Keajaiban dibalik Telnet berupa pemalsuan suatu koneksi terminal ASCII diantara dua mesin yang berjauhan satu dengan yang lainnya. Hal ini bisa terjadi dengan menggunakan sebuah virtual terminal sebagaimana yang dijelaskan oleh Postel (dikutip dari RFC 854 ).

Saat suatu koneksi telnet pertama kali terjadi, setiap ujungnya menganggap asli dan terhenti pada sebuah “Network Virtual Terminal” atau NVT. Sebuah NVT merupakan perangkat imajiner yang menyediakan sebuah standar, network-wide, perantara yang menggambarkan suatu terminal sebenarnya… Network Virtual Terminal (NVT) merupakan perangkat karakter dua arah. NVT memiliki sebuah printer dan keyboard. Printer tersebut merespon data yang masuk dan keyboard menghasilkan data keluaran yang dikirim melalui koneksi Telnet tersebut dan, jika “echo” merupakan hal yang diinginkan, sama halnya dengan printer NVT. Echo tidak diharapkan untuk melintasi jaringan tersebut (meski, opsi tersebut ada untuk mengaktifkan suatu mode operasi “remote” echo, tidak diperlukan host (untuk mengimplementasikan opsi ini). Code tersebut di set berupa 7-bit USASCII dalam suatu 8-bit, kecuali jika telah dimodifikasi. Konversi kode apapun dan pertimbangan waktu merupakan masalah lokal dan tidak berpengaruh pada NVT tersebut.

Sebuah virtual terminal sama halnya dengan (atau mirip dengan) koneksi kabel serial antara dua mesin. Sebagai contoh, anda dapat mensimulasikan sesuatu yang mirip dengannya ke sebuah sesi Telnet dengan tanpa uncommenting instruksi respawn pada file inittab di sistem Linux (dan sebagian besar sistem UNIX) atau dengan mendiskoneksikan keyboard dan monitor pada sebuah SPARC dan menghubungkan terminal VT200 kedalam serial A atau B. Pertama, sebuah login: prompt akan ditampilkan. Yang kedua, seluruh pesan proses boot merupakan echo ke terminal yang terhubung dan berakhir, sebuah boot prompt ditampilkan (atau mungkin, jika disk drive SCSI ditentukan sebagai boot device pada PROM, mesin tersebut akan melakukan boot dan menampilkan login: prompt).

Oleh karena itu, koneksi berbasis Telnet merupakan apa yang disebut dengan koneksi bare-bone. Anda dapat memperhatikan bahwa jika anda menggunakan terminal VT220 sebagai puncak pada SPARC anda, saat terjadi proses boot, logo Sun yang keren tersebut tidak akan tercetak berwarna, tidak ada tampilan grafis yang bagus yang terlihat. Telnet dan sesi terminal benar-benar berbasiskan teks. Sebagai tambahan, koneksi telnet tidak memiliki fasilitas untuk menginterpretasikan bahasa berorientasi-tampilan seperti HTML tanpa bantuan sebuah browser berbasis teks seperti Lynx. Oleh sebab itu, memanggil suatu halaman Web melalui Telnet tidak akan menampilkan gambar atau teks yang berbentuk indah; hanya merupakan source dokumen tersebut (terkecuali bisa, anda login via telnet dan kemudian menggunakan Lynx).

DNS (domain name system)

DNS


Merupakan layanan di Internet untuk jaringan yang menggunakan TCP/IP. Layanan ini digunakan untuk mengidentifikasi sebuah komputer dengan nama bukan dengan menggunakan alamat IP (IP address). Singkatnya DNS melakukan konversi dari nama ke angka. DNS dilakukan secara desentralisasi, dimana setiap daerah atau tingkat organisasi memiliki domain sendiri. Masing-masing memberikan servis DNS untuk domain yang dikelola. Suatu sistem database yang mengizinkan aplikasi TCP/IP menterjemahkan nama host ke dalam satu IP address. DNS (Domain Name Service) merupakan servis di Internet untuk network yang menggunakan TCP/IP. Servis ini digunakan untuk mengidentifikasi sebuah komputer dengan nama bukan dengan menggunakan nomor (alamat Internet). Komputer di Internet diidentifikasikan dengan angka, yaitu nomor IP. Misalnya, sebuah komputer memiliki nomor IP {192.168.1.1}. Komputer lebih mudah bekerja dengan angka, sedangkan manusia lebih mudah mengingat nama. Komputer dalam contoh ini dapat diberi nama {gareng}, misalnya. Singkatnya DNS melakukan konversi dari nama ke angka. DNS dilakukan secara desentralisasi, dimana setiap daerah atau tingkat organisasi memiliki domain sendiri. Masing-masing memberikan servis DNS untuk domain yang dikelola. Untuk mengetahui nomor IP dari sebuah mesin (komputer) di Internet dapat digunakan beberapa program. Di sistem UNIX ada program host, Nslookup, dan dig.

DNS (Domain Name System) pengertian lainnya
adalah sebuah sistem yang menyimpan informasi tentang nama host maupun nama domain dalam bentuk basis data tersebar (distributed database) di dalam jaringan komputer, misalkan: Internet. 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.

Sebenarnya saya juga sudah memiliki beberapa sumber lengkap tentang seluk beluk DNS. Salah satunya berikut ini.:

Sejarah DNS(Domain Name System)

Sebelum dipergunakannya DNS, jaringan komputer menggunakan HOSTS files yang berisi informasi dari nama komputer dan IP address-nya. Di Internet, file ini dikelola secara terpusat dan di setiap loaksi harus di copy versi terbaru dari HOSTS files, dari sini bisa dibayangkan betapa repotnya jika ada penambahan 1 komputer di jaringan, maka kita harus copy versi terbaru file ini ke setiap lokasi. Dengan makin meluasnya jaringan internet, hal ini makin merepotkan, akhirnya dibuatkan sebuah solusi dimana DNS di desain menggantikan fungsi HOSTS files, dengan kelebihan unlimited database size, dan performace yang baik. DNS adalah sebuah aplikasi services di Internet yang menerjemahkan sebuah domain name ke IP address. Sebagai contoh, www untuk penggunaan di Internet, lalu diketikan anama domain, misalnya: yahoo.com maka akan di petakan ke sebuah IP mis 202.68.0.134. Jadi DNS dapat dianalogikan pada pemakaian buku telepon, dimana orang yang kita kenal berdasarkan nama untuk menghubunginya kita harus memutar nomor telepon di pesawat telepon. Sama persis, host komputer mengirimkan queries berupa nama komputer dan domain name server ke DNS, lalu oleh DNS dipetakan ke IP address.



Pengertian DNS(Domain Name System)

Domain Name System (DNS) adalah distribute database system yang digunakan untuk pencarian nama komputer (name resolution) di jaringan yang mengunakan TCP/IP (Transmission Control Protocol/Internet Protocol). DNS biasa digunakan pada aplikasi yang terhubung ke Internet seperti web browser atau e-mail, dimana DNS membantu memetakan host name sebuah komputer ke IP address. Selain digunakan di Internet, DNS juga dapat di implementasikan ke private network atau intranet dimana DNS memiliki keunggulan seperti:

1. Mudah, DNS sangat mudah karena user tidak lagi direpotkan untuk mengingat IP address sebuah komputer cukup host name (nama Komputer).

2. Konsisten, IP address sebuah komputer bisa berubah tapi host name tidak berubah.

3. Simple, user hanya menggunakan satu nama domain untuk mencari baik di Internet maupun di Intranet.

DNS dapat disamakan fungsinya dengan buku telepon. Dimana setiap komputer di jaringan Internet memiliki host name (nama komputer) dan Internet Protocol (IP) address. Secara umum, setiap client yang akan mengkoneksikan komputer yang satu ke komputer yang lain, akan menggunakan host name. Lalu komputer anda akan menghubungi DNS server untuk mencek host name yang anda minta tersebut berapa IP address-nya. IP address ini yang digunakan untuk mengkoneksikan komputer anda dengan komputer lainnya.

Struktur DNS

Domain Name Space merupakan sebuah hirarki pengelompokan domain berdasarkan nama, yang terbagi menjadi beberapa bagian diantaranya:

a) Root Level Domain

Domain ditentukan berdasarkan tingkatan kemampuan yang ada di struktur hirarki yang disebut dengan level. Level paling atas di hirarki disebut dengan root domain. Root domain di ekspresikan berdasarkan periode dimana lambang untuk root domain adalah (“.”).

b) Top Level Domain (TLD)

Top Level Domain adalah domain pada level teratas di bawah root (.). Ada tiga pengelompokkan Top Level Domain:

1. Domain Generik

Terdiri atas 7 domain yaitu :

a. com


Untuk organisasi komersial. contoh: ibm.com, sun.com.

b. net


Untuk organisasi/perusahaan penyedia layanan jaringan/Internet. contoh: internic.net, nsf.net.

c. gov


Untuk lembaga/organisasi pemerintahan. contoh: whitehouse.gov, nasa.gov.

d. mil


Untuk badan/organisasi militer. contoh: army.mil.

e. org


Untuk organisasi non-komersial. contoh: linux.org.

f. edu


Untuk lembaga pendidikan. contoh: mit.edu, berkeley.edu.

g. int


Untuk organisasi Internasional. contoh: nato.int.

Selain 7 domain di atas ada lagi 7 domain baru dari ICANN (www.icann.org) yaitu:

h. aero


Untuk industri atau perusahaan udara.

i. biz


Untuk perusahaan atau lembaga bisnis.

j. coop


Untuk perusahaan atau lembaga kooperatif

k. info


Untuk penggunaan umum.

l. museum


Untuk museum.

m. name


Untuk registrasi bagi penggunaan individual/personal.

n. pro


Untuk para profesional seperti: akuntan, dan lain-lain.

2. Domain Negara

Merupakan standar pembagian geografis berdasarkan kode negara. Contoh: id untuk Indonesia, au untuk Australia, uk untuk Inggris, dan lain-lain. Domain negara ini dapat dan umumnya diturunkan lagi ke level-level di bawahnya yang diatur oleh NIC dari masing-masing negara, untuk Indonesia yaitu IDNIC. Contoh level bawah dari id yaitu net.id, co.id, web.id.

3. Domain Arpa

Merupakan domain untuk jaringan ARPAnet. Tiap domain yang tergabung ke Internet berhak memiliki name-space .in-addr.arpa sesuai dengan alamat IP-nya.



Second-Level Domains


Second-level domains dapat berisi host dan domain lain, yang disebut dengan subdomain. Untuk contoh: Domain Zulfanruri, zulfanruri.com terdapat komputer (host) seperti apel.zulfanruri.com dan subdomain kates.zulfanruri.com. Subdomain kates.bujangan.com juga terdapat komputer (host) seperti apel.training.bujangan.com.

Host Names


Domain name yang digunakan dengan host name akan menciptakan fully qualified domain name (FQDN) untuk setiap komputer. Sebagai contoh, jika terdapat kates.zulfanruri.com, dimana kates adalah host name dan zulfanruri.com adalah domain name.





Kamis, 09 Juli 2009

Paralel Processor

File PPT dapat di download

Selasa, 23 Juni 2009

Pengertian RISC, CISC dan superscalar.


Reduced Instruction Set Computing (RISC) atau "Komputasi set instruksi yang disederhanakan" pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar pada University of California di Berkely.

Definisinya adalah, RISC, yang jika diterjemahkan berarti "Komputasi Kumpulan 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 vektor. Selain digunakan dalam komputer vektor, desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00 dari MIPS Corporation, PowerPC dan Arsitektur POWER dari International Business Machine. Selain itu, RISC juga umum dipakai pada Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel XScale), SPARC dan UltraSPARC dari Sun Microsystems, serta PA-RISC dari Hewlett-Packard.

Selain RISC, desain Central Processing Unit yang lain adalah CISC (Complex Instruction Set Computing), yang jika diterjemahkan ke dalam Bahasa Indonesia berarti Komputasi Kumpulan Instruksi yang kompleks atau rumit.

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.

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.

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. Sedangkan RISC adalah singkatan dari Reduced Instruction Set Computer yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit. 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.

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.