Welcome Message

twitter

Follow on Tweets

TCP dan UDP

Posted in

Pendahuluan
Router menggunakan informasi IP address dalam paket header IP untuk menentukan interface mana yang akan di-switch ke tujuan. Tiap-tiap layer OSI memiliki fungsi sendiri-sendiri dan tergantung dari layer lainnya. Setiap layer menerima layanan dari layer di atas dan di bawahnya. Layer application, presentation dan session pada model OSI sama dengan layer application pada model TCP/IP, sedangkan akses ke layanan layer transport melalui port. Modul ini akan menjelaskan konsep dari port dan nomor port di jaringan.
Setelah mengikuti modul ini Anda diharapkan mampu:
- Menggambarkan TCP dan fungsinya
- Menggambarkan sinkronisasi TCP dan flow control
- Menggambarkan operasi UDP
- Mengidentifikasi nomor port yang umum digunakan
- Menggambarkan komunikasi antar host
- Mengidentifikasi port yang digunakan untuk layanan dan klien
- Menggambarkan penomoran port
- Mengerti perbedaan dan hubungan antara MAC address, IP address dan port number

1. Operasi TCP
1.1 Layer 4 – Transport layer
IP address mengijinkan routing paket antar jaringan. IP menjamin pengiriman paket data. Layer transport bertanggung jawab untuk menjamin transmisi dan aliran data dari asal ke tujuan. Hal ini nanti akan berhubungan dengan sliding window dan sequencing number untuk sinkronisasi aliran data.
Untuk memahami reliability dan flow control, analoginya sama dengan mahasiswa yang belajar bahasa asing selama satu tahun. Bayangkan kalau mahasiswa ini pergi ke Negara dimana dia belajar bahasa tersebut. Mahasiswa harus bertanya ke orang-orang untuk mengulang kata-kata dan berbicara secara benar (reliability) dan pelan-pelan (sama dengan konsep flow control).












Gambar 1.1 Layer4: transport layer
1.2 Sinkronisasi dan 3-way handshake
TCP adalah protokol connection-oriented. Komunikasi data antar host terjadi melalui proses sinkronisasi untuk membentuk virtual connection setiap

session antar host. Proses sinkronisasi ini meyakinkan kedu sisi apakah sudah siap transmisi data apa belum dan mengijinkan device untuk menentukan inisial sequence number. Proses ini disebut dengan 3-way handshake. Untuk membentuk koneksi TCP, klien harus menggunakan nomor port tertentu dari layanan yang ada di server.
Tahap satu, klien mengirimkan paket sinkronisasi (SYN flag set) untuk inisialisasi koneksi. Paket dianggap valid kalau niali sequence numbernya misalnya x. bit SYN menunjukkan permintaan koneksi. Bit SYN panjangnya satu bit dari segmen header TCP. Dan sequence number panjangnya 32 bit.
Tahap dua, host yang lain menerima paket dan mencatat sequence number x dari klien dan membalas dengan acknowledgement (ACK flag set). Bit control ACK menunjukkan bahwa acknowledgement number berisi nilai acknowledgement yang valid. ACK flag panjangnya satu bit dan Ack number 32 bit dalam segmen TCP header. Sekali koneksi terbentuk, ACK flag diset untuk semua segmen. ACK number nilainya menjadi x + 1 artinya host telah menerima semua byte termasuk x dan menambahkan penerimaan berikutnya x + 1.
Tahap tiga, klien meresponnya dengan Ack Number y + 1 yang berarti ia menerima ack sebelumnya dan mengakhiri proses koneksi untuk session ini.












Gambar 1.2 Format segmen TCP













Gambar 1.3 Format segmen TCP
1.3 Serangan Denial of Service (DoS)
Serangan DoS didisain untuk mencegah layanan ke host yang mencoba untuk membentuk koneksi. DoS umutmnya digunakan oleh hacker untuk mematikan sistem. DoS dikenal dengan nama SYN flooding artinya membanjiri dan merusak 3-way handshake.



















Gambar 1.4 Serangan DoS
Pada DoS, hacker meginisialisasi SYN tapi disisipi dengan alamat IP tujuan, artinya hacker memberikan permintaan SYN dengan informasi yang salah, sehingga proses koneksi akan menunggu lama dan akhirnya gagal. Untuk mengatasi hal ini, admin harus mengurangi koneksi selama peride tertentu dan menaikkan jumlah antrian koneksi.
1.4 Windowing dan window size
Window size menetukan jumlah data yang dapat dikirim pada satu waktu sebelum tujuan meresponnya dengan acknowledgment. Setelah host mengirim angka window size dalam byte, hist harus menerima ack bahwa data telah doterima sebelum ia dapat mengirim data berikutnya. Sebagai contoh, jika window size 1, setiap byte harus ack sebelum byte berikutnya dikirim.

















Gambar 1.5 TCP window size = 1
Windowing untuk menentukan ukuran transmisi secara dinamis. Device melakukan negosiasi window size untuk mengijinkan angka tertentu dalam byte yang harus dikirim sebelum ack.

















Gambar 1.6 TCP window size = 3
1.5 Sequence number dan ack number
Sequence number bertindak sebagai nomor referensi sehingga penerima akan mengetahui jika ia telah menerima semua data. Dan juga mengidentifikasi data-data yang hilang ke pengirim supaya ia mengirimnya lagi.
















Gambar 1.7 TCP sequence number dan ack number














Gambar 1.8 Format segmen TCP
1.6 Operasi UDP
Baik TCP maupun UDP sama menggunakan IP protokol layer 3. TCP dan UDP diguanakan untuk aplikasi yang bermacam-macam. TCP melayani aplikasi seperti FTP, HTTP, SMTP dan DNS. Sedangkan UDP adalah protokol layer 4 yang digunakan oleh DNS, TFTP, SNMP dan DHCP.
















Gambar 1.9 Protokol TCP/IP



Gambar 1.10 Format segmen UDP











Gambar 1.11 Nomor port
2. Transport layer port
2.1 Port dan klien
Kapanpun klien terhubung ke layanan suatu server. Port asal dan tujuan pasti digunakan. Segmen TCP dan UDP berisi field port asal dan tujuan. Port tujuan, port layanan harus diketahui oleh klien. Secara umum nomor port secara acak dibangkitkan sendiri oleh klien dengan nomor di atas 1023. sebagai contoh, klien yang akan konek ke web server menggunakan TCP ke port tujuan 80 dan port asal 1045. Pada saat paket sampai di server, ia masuk ke layer transport dan masuk ke layanan HTTP yang beroperasi di port 80. server HTTP membalas ke klien dengan segmen yang menggunakan port 80 dan asal ke 1045 sebagai tujuannya.

Gambar 2.1 Format segmen TCP

Gambar 2.2 Format segmen UDP
2.2 Nomor Port
Nomor port diwakili oleh 2 byte dalam header segmen TCP atau UDP. Nilai 16-bit dapat menghasilkan nomor port antara 0 sampai 65535. tiga kategori nomor port adalah well-known port, registered port dan dynamic atau private port. Nomor port 1023 ke bawah adalah well-known port, yang digunakan untuk layanan-layanan umu misalnya FTP, Telnet atau DNS.
Registered port rangenya dari 1024 – 49151. sedangkan port antara 49152 – 65535 untuk dynamic atau private port.
Gambar 2.3 Nomor port
2.3 MAC address, IP address dan port number
Sebagai analogi, pada saat kita membuat surat. Alamat pada surat berisi nama, jalan, kota dan provinsi. Data-data ini analoginya sama dengan port, MAC dan IP address untuk jaringan data. Nama di surat sama dengan nomor port, alamat surat sama dengan MAC address, dan kota serta provinsi sama dengan IP address. Banyak surat yang ditujukan ke alamat yang sama. Sebagai contoh ada dua surat yang dialamatkan ke alamat yang sama katakanlah “John Doe” dan lainnya “Jane Doe”. Hal ini analoginya sama dengan session banyak tapi nomor portnya lain.

UDP (User Datagram Protocol)

UDP adalah sebuah connectionless transport protocol yang tidak memiliki connection setup, flow control, congestion control dan juga tidak reliable. Terlepas dari ketidakreliableannya, UDP mampu mengirim data dengan rate berapa saja walaupun tentu saja tidak djiamin data pasti akan sampai di penerima (ada kemungkinan terjadi data loss).

##### Karakterisik UDP ######
- membutuhkan response yang cepat. UDP tidak memiliki connection state dan connection establishment sehingga mampu memberikan response yg cepat atas setiap request dari client.
- mentolerir data loss. Beberapa applikasi tidak terlalu sensitive terhadap kehilangan data (selama kehilangan tersebut tidak significant), sehingga ketidak reliablean UDP tidak begitu masalah bagi applikasi seperti ini.
- membutuhkan kontrol yang lebih baik atas apa yang akan dikirim dan kapan data akan dikirim. Mekanisme kontrol koneksi yg dimiliki TCP akan membuat applikasi menjadi tidak luwes untuk menentukan kapan saat yg tepat untuk mengirim data sehingga bisa menimbulkan delay yg tidak dapat ditoleransi. Di samping itu, TCP akan tetap berusaha mengirimkan data (walaupun akan membutuhkan waktu yg lama) ketika terjadi kongesti, padahal beberapa aplikasi membutuhkan rate pengiriman yang
- Memerlukan pengiriman data pada lebih dari 1 client, baik applikasi broadcast ataupun multicast. TCP tidak mampu melakukan broardcast ataupun multicast.

TCP (Transmission Control Protocol)

TCP adalah protokol yang memungkinkan program-program aplikasi untuk mengakses/menggunakan layanan komunikasi bersifat connection-oriented. TCP mampu memberikan jasa pengiriman yang dapat diandalkan (reliable) sekaligus bersifat flow-controlled. Sifat flow-controlled ini memungkinkan peralatan-peralatan jaringan yang berkecepatan rendah (slower-speed network devices) dapat berhubungan dengan peralatan-peralatan jaringan yang berkecepatan tinggi (higher-speed network devices).
########Karakteristik TCP#########
TCP memiliki karakteristik sebagai berikut:Berorientasi sambungan (connection-oriented): Sebelum data dapat ditransmisikan antara dua host, dua proses yang berjalan pada lapisan aplikasi harus melakukan negosiasi untuk membuat sesi koneksi terlebih dahulu. Koneksi TCP ditutup dengan menggunakan proses terminasi koneksi TCP (TCP connection termination).Full-duplex: Untuk setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua buah jalur, yakni jalur keluar dan jalur masuk. Dengan menggunakan teknologi lapisan yang lebih rendah yang mendukung full-duplex, maka data pun dapat secara simultan diterima dan dikirim. Header TCP berisi nomor urut (TCP sequence number) dari data yang ditransmisikan dan sebuah acknowledgment dari data yang masuk.Dapat diandalkan (reliable): Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan sebuah nomor urut paket dan akan mengharapkan paket positive acknowledgment dari penerima. Jika tidak ada paket Acknowledgment dari penerima, maka segmen TCP (protocol data unit dalam protokol TCP) akan ditransmisikan ulang. Pada pihak penerima, segmen-segmen duplikat akan diabaikan dan segmen-segmen yang datang tidak sesuai dengan urutannya akan diletakkan di belakang untuk mengurutkan segmen-segmen TCP. Untuk menjamin integritas setiap segmen TCP, TCP mengimplementasikan penghitungan TCP Checksum.Byte stream: TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan (kontigu). Nomor urut TCP dan nomor acknowlegment dalam setiap header TCP didefinisikan juga dalam bentuk byte. Meski demikian, TCP tidak mengetahui batasan pesan-pesan di dalam byte stream TCP tersebut. Untuk melakukannya, hal ini diserahkan kepada protokol lapisan aplikasi (dalam DARPA Reference Model), yang harus menerjemahkan byte stream TCP ke dalam "bahasa" yang ia pahami.Memiliki layanan flow control: Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, yang akhirnya membuat "macet" jaringan internetwork IP, TCP mengimplementasikan layanan flow control yang dimiliki oleh pihak pengirim yang secara terus menerus memantau dan membatasi jumlah data yang dikirimkan pada satu waktu. Untuk mencegah pihak penerima untuk memperoleh data yang tidak dapat disangganya (buffer), TCP juga mengimplementasikan flow control dalam pihak penerima, yang mengindikasikan jumlah buffer yang masih tersedia dalam pihak penerima.Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model)Mengirimkan paket secara "one-to-one": hal ini karena memang TCP harus membuat sebuah sirkuit logis antara dua buah protokol lapisan aplikasi agar saling dapat berkomunikasi. TCP tidak menyediakan layanan pengiriman data secara one-to-many.
Perbedaan antara TCP dan UDPTCP TCP UDP UDP Reliabilitas: TCP merupakan protokol berorientasi koneksi. Ketika sebuah file atau pesan kirim diantarkan kecuali akan mendapatkan koneksi gagal. Jika sambungan terputus, server akan meminta bagian yang hilang. Tidak ada korupsi ketika mentransfer pesan. Reliabilitas: UDP adalah connectionless protocol. Ketika Anda mengirim data atau pesan, Anda tidak tahu apakah itu akan sampai di sana, ini bisa tersesat di jalan. Mungkin ada korupsi sementara mentransfer pesan.Memerintahkan: Jika Anda mengirim dua pesan sepanjang sambungan, satu demi satu, Anda tahu pesan pertama akan sampai di sana terlebih dahulu. Anda tidak perlu khawatir data yang tiba di urutan yang salah. Memerintahkan: Jika Anda mengirim dua pesan keluar, Anda tidak tahu apa agar mereka akan tiba di tidak yaitu memerintahkanKelas berat: - ketika bagian rendahnya dari TCP "sungai" tiba di urutan yang salah, telah mengirimkan kembali permintaan untuk dikirim, dan semua bagian-bagian dari urutan harus disatukan kembali, sehingga memerlukan sedikit pekerjaan yang harus mengumpulkan . Ringan: Tidak ada pemesanan pesan, tidak ada pelacakan koneksi, dll Ini berarti membuat koneksi itu jauh lebih cepat, dan kartu jaringan / OS telah melakukan sedikit pekerjaan untuk menerjemahkan kembali data dari paket.Streaming: Data dibaca sebagai sebuah "sungai," dengan tidak membedakan mana satu paket berakhir dan yang lain dimulai. Mungkin ada beberapa paket per dibaca panggilan. Datagrams: Paket akan dikirim secara individu dan dijamin akan utuh jika mereka tiba. Satu paket per satu membaca panggilan.Contoh: World Wide Web (Apache TCP port 80), e-mail (SMTP TCP port 25 Postfix MTA), File Transfer Protocol (FTP port 21) dan Secure Shell (OpenSSH port 22), dll Contoh: Domain Name System (DNS UDP port 53), aplikasi media streaming seperti IPTV atau film, Voice over IP (VoIP), Trivial File Transfer Protocol (TFTP) dan online multiplayer games etc
Kesimpulan
- TCP adalah protokol connection-oriented. Dua host yang berkomunikasi terlebih dulu harus melakukan proses sinkronisasi untuk membentuk virtual koneksi.
- UDP adalah protokol connectionless, transmisi paket data tidak dijamin sampai ke tujuan
- Port number digunakan untuk melayani komunikasi yang berbeda dalam jaringan pada saat yang bersamaan. Port number diperlukan pada saat host komunikasi dengan server yang menjalankan bermacam-macam service.


Pengertian dari SMTP, TFTP, DSN dan Telnet

Posted in

Pengertian dari SMTP, TFTP, DSN dan Telnet1. Simple Mail Transfer Protocol (SMTP)Simple Mail Transfer Protocol (SMTP) adalah suatu protokol yang digunakan untuk mengirimkan pesan e-mail antar server, yang bisa dianalogikan sebagai kantor pos. Ketika kita mengirim sebuah e-mail, komputer kita akan mengarahkan e-mail tersebut ke sebuah SMTP server, untuk diteruskan ke mail-server tujuan.Beberapa ISP mewajibkan penggunaan SMTP Authentication, pastikan anda telah mencoba mencentang atau mengaktifkan "authentication" pada software e-mail anda. Apabila masih gagal, maka kemungkinan besar disebabkan koneksi ISP anda gagal connect ke port 25 (port smtp) server, sehingga pengiriman tidak berhasil.SMTP (Simple Mail Transfer Protocol) merupakan salah satu protokol yang umum digunakan untuk pengiriman surat elektronik di Internet. Protokol ini dipergunakan untuk mengirimkan data dari komputer pengirim surat elektronik ke server surat elektronik penerima.Terlambat atau tidak tibanya e-mail anda, tergantung kepada antrian pada SMTP yang anda gunakan dan mail-server yang dituju. Misalnya outgoing SMTP yang anda gunakan adalah: smtp.telkom.net , maka tergantung sepanjang apa antrian e-mail yang masuk ke jaringan telkom. Apabila e-mail anda telah berhasil terkirim melalui SMTP Telkom, maka selanjutnya ketibaan e-mail anda tergantung pada antrian mail-server penerima.Mail-server tujuan ini bisa dianalogikan sebagai kotak pos di pagar depan rumah kita, atau kotak PO BOX di kantor pos. Email-email yang terkirim akan "nongkrong" di tempat tersebut hingga si pemiliknya mengambilnya. Urusan pengambilan e-mail tersebut tergantung kapan di penerima memeriksa account e-mailnya.Pada umumnya SMTP telah anda peroleh melalui provider (ISP) anda. Jika anda belum mengetahui alamat SMTP provider, silakan hubungi ISP anda.Berikut adalah list SMTP beberapa provider yang popular di Indonesia:Telkomnet/Speedy: stmp.telkom.netFastnet/First Media/Kabelvision: mail.fast.net.idIndosat: smtp.indosat.net.idBiznet: smtp.biz.net.idNet-zap: smtp.net-zap.comIndonet: smtp.indo.net.idUninet: smtp.uninet.net.idLinknet: mail1.link.net.idCBN: smtp.cbn.net.idMynet: smtp.mynet.co.idJetcoms: smtp.jetcoms.netNusaNet: smtp.nusa.net.idWasantara: jakarta.wasantara.net.idRadnet: smtp.rad.net.idMelsaNet: smtp.melsa.net.idMitraNet: mail.mitra.net.idCentrin: mail.centrin.net.idVisionNet: pluto.vision.net.idInfoasia: smtp.infoasia.netPacific: smtp.pacific.net.idDnet: dnet.net.idTerkirim atau tidaknya e-mail anda... terlambat atau tidak tibanya e-mail anda, tergantung kepada kehandalan SMTP yang anda gunakan. Misalnya outgoing SMTP yang anda gunakan adalah: smtp.telkom.net , maka Telkom lah yang bertanggungjawab atas terkirim atau tidaknya e-mail anda. Terganggunya jaringan antara komputer anda dengan Telkom - atau antara Telkom dengan mail-server yang dituju, dapat menyebabkan kegagalan pengiriman e-mail anda.
SMTP Server Simulator
Ini tool yang baru gw temuin kemaren. Membantu banget untuk development environment gw. Semenjak gw pake WAMP, gw jadi kehilangan fungsi SMTP yang biasanya ditangani juga ama IIS. Awal-awalnya sih no problemo, tapi saat mulai butuh fasilitas kirim email di PHP, gw mulai meratap.
Gw coba dulu pake SMTP dari domain gw (sahat-tambunan.com), tapi entah kenapa walau sudah disetting bermacam2 tidak kunjung berhasil jua. Pilihan kedua, pake SMTP laen yang public service dan gratis, tapi rasanya kurang sreg. Akhirnya mulai cari-cari SMTP Server buat Windows yang ringan (dan gratis tentunya). Ketemu juga 2 alternatif, Free SMTP Server dan PostCast Server Free Edition. Karena perbedaan size yang sangat banget, 767KB vs 13.9MB (plis deh), akhirnya pilihan jatuh telak ke Free SMTP Server (I’m trying to keep it as lite as possible).
Setelah download dan di run, everything seems to work fine. Mulai deh jalanin PHP nya, alhasil… entah kenapa PHP nya bengong, SMTP nya juga ikut2an bengong. Berapa kali dicoba tetep begitu juga. Mau coba2 konfigurasi, tapi dari Free SMTP Servernya cuma ada 2 pilihan, DNS yang mau dipake (bisa otomatis) dan Port yang akan dipakai untuk listening (default 25). That’s it. Akhirnya gw ikut2an bengong juga, pengen download PostCast, kayanya ko kurang cocok kalau toh cuma dipake buat development environment.
Googling2 lagi, gw lupa keyword apa yg gw pake, tapi akhirnya bertemulah gw dengan tools yang satu ini, Test Mail Server Tool. Aplikasinya ringan banget, apalagi buat download :p sizenya cuma 379KB. Install bentar, dan udah kepake nih sampe sekarang tanpa masalah. Program ini ga akan bener2 kirim email kita, tapi dia akan bukakan email yang terkirim (biasanya pake default email client kita).
2. TFTP (Trivial File Transfer Protocol)Trivial File Transfer Protocol (disingkat menjadi TFTP) adalah sebuah protokol perpindahan berkas yang sangat sederhana yang didefinisikan pada tahun 1980.TFTP memiliki fungsionalitas dasar dari protokol File Transfer Protocol (FTP).Karena protokol ini sangatlah sederhana, maka implementasi protokol ini dalam komputer yang memiliki memori yang kecil sangatlah mudah.Hal ini memang pertimbangan yang sangat penting pada saat itu.Akhirnya, TFTP pun digunakan untuk melakukan booting komputer seperti halnya router jaringan komputer yang tidak memiliki perangkat penyimpanan data. Protokol ini kini masih digunakan untuk mentransfer berkas-berkas kecil antar host di dalam sebuah jaringan, seperti halnya ketika terminal jarak jauh X Window System atau thin client lainnya melakukan proses booting dari sebuah host jaringan atau server.TFTP dibuat berdasarkan protokol yang sebelumnya, yang disebut dengan Easy File Transfer Protocol (EFTP), yang merupakan bagian dari kumpulan protokol PARC Universal Packet (PUP). Pada awal-awal pengembangan protokol TCP/IP, TFTP merupakan protokol pertama kali yang diimplementasikan dalam sebuah jenis host jaringan, karena memang sangat sederhana.Versi asli TFTP, sebelum direvisi oleh RFC 1350, menampilkan sebuah kelemahan protokol, yang diberinama Sorcerer's Apprentice Syndrome, saat pertama kali diketemukan.TFTP pertama kali muncul sebagai bagian dari sistem operasi 4.3 BSD.Protokol ini juga masih dimasukkan ke dalam Mac OS X, paling tidak hingga versi 10.5.Akhir-akhir ini, TFTP sering digunakan oleh worm komputer, seperti W32.Blaster, sebagai metode untuk menyebarkan dirinya dan menginfeksi host jaringan lainnya.3. DNS (Domain Name System)DNS (Domain Name System, bahasa Indonesia: Sistem Penamaan Domain) 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.Sejarah singkat DNS, penggunaan nama sebagai pengabstraksi alamat mesin di sebuah jaringan komputer yang lebih dikenal oleh manusia mengalahkan TCP/IP, dan kembali ke zaman ARPAnet. Dahulu, setiap komputer di jaringan komputer menggunakan file HOSTS.TXT dari SRI (sekarang SIR International), yang memetakan sebuah alamat ke sebuah nama (secara teknis, file ini masih ada - sebagian besar sistem operasi modern menggunakannya baik secara baku maupun melalui konfigurasi, dapat melihat Hosts file untuk menyamakan sebuah nama host menjadi sebuah alamat IP sebelum melakukan pencarian via DNS). Namun, sistem tersebut diatas mewarisi beberapa keterbatasan yang mencolok dari sisi prasyarat, setiap saat sebuah alamat komputer berubah, setiap sistem yang hendak berhubungan dengan komputer tersebut harus melakukan update terhadap file Hosts.Dengan berkembangnya jaringan komputer, membutuhkan sistem yang bisa dikembangkan: sebuah sistem yang bisa mengganti alamat host hanya di satu tempat, host lain akan mempelajari perubaha tersebut secara dinamis. Inilah DNS.Paul Mockapetris menemukan DNS di tahun 1983; spesifikasi asli muncul di RFC 882 dan 883.Tahun 1987, penerbitan RFC 1034 dan RFC 1035 membuat update terhadap spesifikasi DNS.Hal ini membuat RFC 882 dan RFC 883 tidak berlaku lagi.Beberapa RFC terkini telah memproposikan beberapa tambahan dari protokol inti DNS.Teori bekerja DNSPengelola 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; dan ... 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 domainSebuah 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 domain (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".DNS memiliki kumpulan hirarki dari DNS servers. Setiap domain atau subdomain memiliki satu atau lebih authoritative DNS Servers (server DNS otorisatif) yang mempublikasikan informas tentang domain tersebut dan nama-nama server dari setiap domain di-"bawah"-nya. Pada puncak hirarki, terdapat root servers- induk server nama: server yang ditanyakan ketika mencari (menyelesaikan/resolving) dari sebuah nama domain tertinggi (top-level domain).DNS di dunia nyataDi dunia nyata, user tidak berhadapan langsung dengan DNS resolver - mereka berhadapan dengan program seperti web brower (Mozilla Firefox, Safari, Opera, Internet Explorer, Netscape, Konqueror dan lain-lain dan klien mail (Outlook Express, Mozilla Thunderbird dan lain-lain). Ketika user melakukan aktivitas yang meminta pencarian DNS (umumnya, nyaris semua aktivitas yang menggunakan Internet), program tersebut mengirimkan permintaan ke DNS Resolver yang ada di dalam sistem operasi.DNS resolver akan selalu memiliki cache (lihat diatas) yang memiliki isi pencarian terakhir. Jika cache dapat memberikan jawaban kepada permintaan DNS, resolver akan menggunakan nilai yang ada di dalam cache kepada program yang memerlukan. Kalau cache tidak memiliki jawabannya, resolver akan mengirimkan permintaan ke server DNS tertentu. Untuk kebanyakan pengguna di rumah, Internet Service Provider(ISP) yang menghubungkan komputer tersebut biasanya akan menyediakan server DNS: pengguna tersebut akan mendata alamat server secara manual atau menggunakan DHCP untuk melakukan pendataan tersebut. Jika administrator sistem telah mengkonfigurasi sistem untuk menggunakan server DNS mereka sendiri, DNS resolver umumnya akan mengacu ke server nama mereka. Server nama ini akan mengikuti proses yang disebutkan di Teori DNS, baik mereka menemukan jawabannya maupun tidak. Hasil pencarian akan diberikan kepada DNS resolver; diasumsikan telah ditemukan jawaban, resolver akan menyimpan hasilnya di cache untuk penggunaan berikutnya, dan memberikan hasilnya kepada software yang meminta pencarian DNS tersebut.Sebagai bagian akhir dari kerumitan ini, beberapa aplikasi seperti web browser juga memiliki DNS cache mereka sendiri, tujuannya adalah untuk mengurangi penggunaan referensi DNS resolver, yang akan meningkatkan kesulitan untuk melakukan debug DNS, yang menimbulkan kerancuan data yang lebih akurat. Cache seperti ini umumnya memiliki masa yang singkat dalam hitungan 1 menit.Penerapan DNS lainnyaSistem 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.DNS menggunanakn TCP dan UDP di port komputer 53 untuk melayani permintaan DNS.Nyaris semua permintaan DNS berisi permintaan UDP tunggal dari klien yang dikuti oleh jawaban UDP tunggal dari server. Umumnya TCP ikut terlibat hanya ketika ukuran data jawaban melebihi 512 byte, atau untuk pertukaaran zona DNS zone transferJenis-jenis catatan DNSBeberapa kelompok penting dari data yang disimpan di dalam DNS adalah sebagai berikut:A record atau catatan alamat memetakan sebuah nama host ke alamat IP 32-bit (untuk IPv4).AAAA record atau catatan alamat IPv6 memetakan sebuah nama host ke alamat IP 128-bit (untuk IPv6).CNAME record atau catatan nama kanonik membuat alias untuk nama domain. Domain yang di-alias-kan memiliki seluruh subdomain dan rekod DNS seperti aslinya.'[MX record]] atau catatan pertukaran surat memetakan sebuah nama domain ke dalam daftar mail exchange server untuk domain tersebut.PTR record atau catatan penunjuk memetakan sebuah nama host ke nama kanonik untuk host tersebut. Pembuatan rekod PTR untuk sebuah nama host di dalam domain in-addr.arpa yang mewakili sebuah alamat IP menerapkan pencarian balik DNS (reverse DNS lookup) untuk alamat tersebut. Contohnya (saat penulisan / penerjemahan artikel ini), www.icann.net memiliki alamat IP 192.0.34.164, tetapi sebuah rekod PTR memetakan ,,164.34.0.192.in-addr.arpa ke nama kanoniknya: referrals.icann.org.NS record atau catatan server nama memetakan sebuah nama domain ke dalam satu daftar dari server DNS untuk domain tersebut. Pewakilan bergantung kepada rekod NS.SOA record atau catatan otoritas awal (Start of Authority) mengacu server DNS yang mengediakan otorisasi informasi tentang sebuah domain Internet.SRV record adalah catatan lokasi secara umum.Catatan TXT mengijinkan administrator untuk memasukan data acak ke dalam catatan DNS; catatan ini juga digunakan di spesifikasi Sender Policy Framework.Jenis catatan lainnya semata-mata untuk penyediaan informasi (contohnya, catatan LOC memberikan letak lokasi fisik dari sebuah host, atau data ujicoba (misalkan, catatan WKS memberikan sebuah daftar dari server yang memberikan servis yang dikenal (well-known service) seperti HTTP atau POP3 untuk sebuah domain.4. Telnet (Telecommunication network)Telnet (Telecommunication network) adalah sebuah protokol jaringan yang digunakan di koneksi Internet atau Local Area Network.TELNET dikembangkan pada 1969 dan distandarisasi sebagai IETF STD 8, salah satu standar Internet pertama.TELNET memiliki beberapa keterbatasan yang dianggap sebagai risiko keamanan.Telnet adalah aplikasi remote login Internet. Telnet digunakan untuk login ke komputer lain di Internet dan mengakses berbagai macam pelayanan umum, termasuk katalog perpustakaan dan berbagai macam database. Telnet memungkinkan pengguna untuk duduk didepan komputer yang terkoneksi ke internet dan mengakses komputer lain yang juga terkoneksi ke internet. Dengan kata lain koneksi dapat terjadi ke mesin lain di satu ruangan, satu kampus, bahkan setiap komputer di seluruh dunia. Setelah terkoneksi, input yang diberikan pada keyboard akan mengontrol langsung ke remote computer tadi. Akan dapat diakses pelayanan apapun yang disediakan oleh remote machine dan hasilnya ditampilkan pada terminal lokal. Dapat dijalankan session interaktif normal (login, eksekusi command), atau dapat diakses berbagai service seperti: melihat catalog dari sebuah perpustakaan, akses ke teks dari USA today, dan masih banyak lagi service yang disediakan oleh masing-masing host pada di network.Telnet menggunakan 2 program, yang satu adalah client (telnet) dan server (telnetd). Yang terjadi adalah ada dua program yang berjalan, yaitu software client yang dijalankan pada komputer yang meminta pelayanan tersebut dan software server yang dijalankan oleh computer yang menghasilkan pelayanan tadi.Tugas dari client adalah:• Membuat koneksi network TCP (Transfer Control Protocol) dengan server.• Menerima inputan dari user• Menformat kembali inputan dari user kemudian mengubah dalam bentuk format standard dan dikirim ke server.• Menerima output dari server dalam format standard.• Mengubah format output tadi untuk ditampilkan pada layar.Sedangkan tugas dari server adalah:• Menginformasikan software jaringan bahwa komputer itu siap menerima koneksi.• Menunggu permintaan dalam bentuk format standard.• Melaksanakan permintaan tersebut.• Mengirim kembali hasil ke client dalam bentuk format standard.• Menunggu permintaan selanjutnya.Telnet adalah program yang memungkinkan komputer host Internet anda menjadi terminal dari komputer host lain di Internet. Dengan ftp anda dapat membuka koneksi hanya untuk mentransfer file. Telnet memungkinkan anda untuk login sebagai pemakai pada komputer jarak jauh dan menjalankan program layanan Internet yang disediakan oleh komputer tersebut.Akses TelnetTelnet menyediakan akses langsung ke beragam layanan di Internet. Komputer host anda memang menyediakan beragam layanan, namun jika layanan tersebut tidak ada, anda bisa menggunakannya melalui Telnet. Misalnya ketika masyarakat Internet menulis interface untuk membantu pengguna lain, Telnet memungkinkan anda mengakses host mereka dan menggunakan interface yang mereka buat. Demikian juga ketika seorang membuat layanan yang bermanfaat, Telnet memungkinkan anda mengakses sumber daya informas

Processor Superscalar

Posted in

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.
[3]

[3] Superscalar

Processor Superscalar

Posted in

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.

RISC

Posted in

1. ARSITEKTUR REDUCED INSTRUCTION SET COMPUTERS (RISC)
Perkembangan inovasi komputer sejak 1960 menambah satu daftar penemuan yang sangat menarik dan paling penting , yaitu Arsitektur Reduced Instruction Set computers ( RISC). Walaupun sistem RISC telah ditentukan dan dirancang dengan berbagai cara berdasarkan komunitasnya, elemen penting yang digunakan sebagian rancangan umumnya adalah sebagai berikut :
1. Set instruksi yang terbatas dan sederhana
2. Register general purpose berjumlah banyak atau penggunaaan teknologi kompiler untuk mengoptimalklan penggunaan register.
3. Penekanan pada pengoptimalan pipeline instruksi.
1. 1. Karakteristik-Karakteristik Eksekusi Instruksi
Salah satu evolusi komputer yang besar adalah evolusi bahasa pemprograman. Bahasa pemprograman memungkinkan programmer dapat mengekspresikan algoritma lebih singkat, lebih memperhatikan rincian, dan mendukung penggunaan pemprograman terstruktur, tetapi ternyata muncul masalah lain yaitu semantic gap, yaitu perbedaan antara operasi-operasi yang disediakan oleh HLL dengan yang disediakan oleh arsitektur komputer, ini ditandai dengan ketidakefisienan eksekusi, program mesin yang berukuran besar, dan kompleksitas kompiler. Untuk mengurangi kesenjangan ini para perancang menjawabnya dengan arsitektur. Fitur-fiturnya meliputi set-set instruksi yang banyak, lusinan mode pengalamatan, dan statemen –statemen HLL yang diimplementasikan pada perangkat keras. Set-set instruksi yang kompleks tersebut dimaksudkan untuk :
1. Memudahkan pekerjaan kompiler
2. Meningkatkan efisiensi eksekusi, karena operasi yang kompleks dapat diimplementasikan didalam mikrokode.
3. Memberikan dukungan bagi HLL yang lebih kompleks dan canggih.
Oleh karena itu untuk memahami 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).
4. Implikasi
Secara umum penelitian menyatakan terdapat tiga buah elemen yang
menentukan karakter arsitektur RISC :
1. Penggunaan register dalam jumlah besar yang ditunjukan untuk
mengotimalkan pereferensian operand.
2. Diperlukan perhatian bagi perancangan pipelaine instruksi karena
tingginya proporsi instruksi pencabangan bersyarat dan procedure call,
pipeline instruksi yang bersifat langsung dan ringkas menjadi tidak
efisien
3. Terdapat set instruksi yang disederhanakan
1. 2. Karakteristik Arsitektur Reduced Instruction Set Computers (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
2. Ciri-Ciri RISC
1. Instruksi berukuran tunggal
2. Ukuran yang umum adalah 4 byte
3. Jumlah pengalamatan data sedikit, biasanya kurang dari 5 buah.
4. Tidak terdapat pengalamatan tak langsung yang mengharuskan
melakukan sebuah akses memori agar memperoleh alamat operand
lainnya dalam memori
5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan
operasi aritmatika, seperti penambahan ke memori dan penambahan dari
memori.
6. Tidak terdapat lebih dari satu operand beralamat memori per instruksi
7. Tidak mendukung perataan sembarang bagi data untuk operasi load/ store
8. Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data
adalah sebuah instruksi .
9. Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih,
artinya sedikitnya 32 buah register integer dapat direferensikan sekaligus
secara eksplisit.
10. Jumlah bit floating point register spesifier sama dengan 4 atau lebih,
artinya sedikitnya 16 register floating point dapat direferensikan
sekaligus secara eksplisit.
Beberapa prosesor implementasi dari arsiteketur RISC adalah AMD
29000, MIPS R2000, SPARC, MC 88000, HP PA, IBM RT/TC, IBM RS/6000,
intel i860, Motorola 88000 (keluarga Motorola), PowerPC G5.
2. PROSESSOR YANG MENGGUNAKAN SISTEM RISC
2.1. PowerPC dibangun dengan arsitektur RISC
Proyek mini komputer 801 di IBM pada tahun 1975 mengawali banyak
konsep arsitektur yang digunakan dalam sistem RISC. 801 bersama dengan
prosessor RISC I Berkeley, meluncurkan gerakan RISC, namun 801 hanya
merupakan prototipe yang ditujukan untuk mengenalkan konsep disain.
Keberhasilan memperkenalkan 801 menyebabkan IBM membangun produk
workstation RISC komersial yaitu PC RT pada tahun 1986, dengan
mengadaptasi konsep arsitektural 801 kedalam kinerja yang sebanding atau yang
lebih baik. IBM RISC System/6000 merupakan mesin RISC superscalar1[3] 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.
2.2. Karakteristik dan Fungsi
1. Jenis-Jenis Data
1
PowerPC dapat beroperasi menggunakan data yang panjang 8 bit (byte), 16
bit (halfword), 32 bit (word), dan 64 bit (doubleword). Beberapa instruksi
mengharuskan agar operand memori dijajarkan (aligned) pada batas 32-bit,
walaupun secara umum tidak terlalu diperlukan. Salah satu ciri PowerPC yang
menarik adalah dapat menggunakan cara little-endian maupun big-endian2[6],
dengan kata lain, byte yang paling kurang signifikan disimpan dalam alamat
terendah atau tertinggi. Konsep ke-endianan pertama kali dibahas dalam literatur
Cohen [COHE8]. Pada byte ke-endian-an harus melakukan pengurutan nilai-nilai
skalar multibyte. Konsep ini terjadi apabila terdapat kebutuhan untuk
memperlakukan entitas multiple-byte sebagai butir data tunggal, walaupun
entitas ini terdiri dari unit-unit yang dapat dialamati yang lebih kecil. Beberapa
mesin seperti intel 80x86, pentium, dan VAX, merupakan mesin-mesin litlle
endian, sedangkan mesin-mesin seperti IBM S/370, Motorola 680x0, dan
sebagian besar mesin-mesin RISC merupakn mesin-mesin big-endian. Sifat keendian-
an tidak akan melampaui unit data. Dalam sembarang mesin, aggregate
seperti file, struktur data, dan array terdiri dari beberapa unit data, yang masingmasing
memakai ke-endian-an. Jadi konversi blok memori dari suatu jenis keendian-
an kejenis lainnya memerlukan pemahaman struktur data.
Tidak terdapat konsensus umum tentang ke-endianan yang terbaik3[7],
PowerPC sendiri adalah jenis prosesor yang bi-endian, yang mendukung baik
mode big-endian maupun litlle-endian. Arsitektur bi-endian memungkinkan
2
3
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. Prosesor
fixed point mengenal jenis data berikut :
Unsigned Byte : dapat digunakan bagi operasi logika atau aritmetika integer.
Data ini dimuat dari memori ke register umum dengan zero-extending dsebelah
kiri keukuran penuh register.
· 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.
2. Jenis Jenis Operasi
PowerPC banyak memiliki jenis operasi , berikut disajikan berbagai jenis
operasi pada PowerPC :
Instruksi Uraian
Berorientasi Pencabangan
b Pencabangan tidak bersyarat
bl Bercabang kealamat sasaran dan menaruh alamat efektif
instruksi yang berada setelah pencabangan kedalam link register
bc Pencabangan bersyarat pada Count Register dan/atau pada
bit dalkam Condition Register.
sc System Call untuk membangkitkan layanan sistem operasi
trap Memebandingkan dua buah operand dan membangkitkan system
trap handler bila persyaratan tertentu dipenuhi.
Load/Store
lwzu Memuatkan word dan nol kesebelah kiri; mengupdate register
sumber.
ld Memuatkan dobleword.
lmw Memuatkan word ganda; memuatkan word berurutan ke regiater
yang berdekatan dari register sasaran melalui General Purpose
Register 31.
lswx memuatkan suatu untaian byte kedalam register yang dimulai
dengan register sasaran; empat byte per-register; diambil semua
dari register 31 hingga register 0.
Arimatika Integer
add Menjumlahkan isi dari dua buah integer dan menyimpannya
dalam register ketiga
subf Mengurangkan isi dua buah register dan menyimpannya dalam
register ketiga.
mullw Mengalikan isi dua buah register orde rendah 32-bit dan
menyimpan hasil perkaliannya dalam register 64-bit ketiga.
divd Membagi isi dua buah register 64-bit dan menyimpan kuosiennya
dalam register ketiga.
Logika dan Sift
cmp Membandingkan dua buah operand dan menyetel empat buah bit
kondisi dalam field register kondisi tertentu.
crand Condition Register AND : dua bit Condition Register di-AND-kan
dan hasilnya disimpan dalam salah satu dari kedua posisi tersebut.
and Meng-AND-kan isi dua buah register dan menyimpannya dalam
register ketiga
cntlzd Mencacah jumlah bit 0 berturutan yang berawal pada bit nol
dalam register sumber dan menempatkan hasil perhitungan dalam
regiater tujuan.
rldic Merotasikan ke kiri register doubleword, meng-AND-kannya
dengan mask, dan menyimpannya dalam register tujuan.
sld Menggeser kekiri dalam register sumber dan menyimpannya
dalam register tujuan
Floating Point
lfs Memuatkan bilangan floating point 32-bit dari memori,
mengubahnya kedalam format 64 bit, dan menyimpannya dalam
register floating point.
fadd Menjumlahkan dua buah register floating point dan
menyimpannya dalam register ketiga.
fmadd Mengalikan isi dua buah register, menambahkan isi regiater
ketiga, dan menyimpan hasilnya dalam regiater keempat.
fcmpu Membandingkan dua buah operand floating point dan menyetel
bit-bit kondisi.
Manajemen Cache
dcbf Membersihkan (flush) blok data cache; melakukan lookup dalam
cache yang terdapat pada alamat sasaran tertentu dan melakukan
operasi pembersihan.
icbi Menginvalidasikan instruksi blok cache
2.1. Instruksi-Instruksi berorientasi Pencabangan
PowerPC memiliki orientasi pencabangan tidak bersyarat dan
pencabangan bersyarat. Instruksi-instruksi pencabangan bersyarat menguji suatu
bit tunggal dari register kondisi apakah benar, salah, atau tidak peduli dan isi dari
counter register apakah nol, bukan nol, atau tidak peduli. Dengan demikian
terdapat sembilan macam kondisi instruksi pencabangan bersyarat yang terpisah.
Apabila counter register diuji apakah nol atau bukan nol, maka sesudah
pengujian register berkurang 1. Hal ini tentunya memudahkan penyiapan loop
iterasi. Instruksi dapat juga mengindikasikan bahwa alamat dari pencabangan itu
ditempatkan dalam link register, hal ini memungkinkan pengolahan call/return.
2.2. Instruksi-instruksi Load/Store
Dalam arsitektur PowerPC hanya instruksi load/store yang dapat
mengakses lokasi memori, instruksi logika dan aritmetika hanya dilakukan
terhadap register. Terdapat dua fitur yang membedakan instruksi-instruksi
load/store :
1. Ukuran data, dimana data dapat dipindahkan dalam satu byte, halfword, word,
atau doubleword. Instruksi-instruksi juga dapat digunakan untuk memuat atau
menyimpan suatu untai byte ke dalam sejumlah register atau dari sejumlah
register
2. Ekstensi Tanda, dimana pada pembuatan word dan halfword, bit-bit
sebelah kiri register 64-bit tujuan yag tidak dipakai dapat diisi dengan
bilangan-bilangan nol atau dengan bit tanda dari kuantitas yang
dimuatkan.
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.
1. Kelebihan
1. Berkaitan dengan penyederhanaan kompiler, dimana tugas pembuat
kompiler untuk menghasilkan rangkaian instruksi mesin bagi semua
pernyataan HLL. Instruksi mesin yang kompleks seringkali sulit digunakan
karena kompiler harus menemukan kasus-kasus yang sesuai dengan
konsepnya. Pekerjaan mengoptimalkan kode yang dihasilkan untuk
meminimalkan ukuran kode, mengurangi hitungan eksekusi instruksi, dan
meningkatkan pipelining jauh lebih mudah apabila menggunakan RISC
dibanding menggunakan CISC.
2. Arsitektur RISC yang mendasari PowerPC memiliki kecenderungan lebih
menekankan pada referensi register dibanding referensi memori, dan
referensi register memerlukan bit yang lebih sedikit sehingga memiliki
akses eksekusi instruksi lebih cepat.
3. Kecenderungan operasi register ke register akan lebih menyederhanakan
set instruksi dan menyederhanakan unit kontrol serta pengoptimasian
register akan menyebabkan operand-operand yang sering diakses akan
tetap berada dipenyimpan berkecepatan tinggi.
4. Penggunaan mode pengalamatan dan format instruksi yang lebih
sederhana.
2. Kekurangan
1. Program yang dihasilkan dalam bahasa simbolik akan lebih panjang
(instruksinya lebih banyak).
2. Program berukuran lebih besar sehingga membutuhkan memori yang lebih
banyak, ini tentunya kurang menghemat sumber daya.
3. Program yang berukuran lebih besar akan menyebabkan
b. Menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan
lebih banyak byte-byte instruksi yang harus diambil.
c. Pada lingkungan paging akan menyebabkan kemungkinan terjadinya
page fault lebih besar.
KESIMPULAN
1. Arsitektur PowerPC merupakan pengembangan IBM 801, RT PC, dan
RS/600 (dikenal juga dengan implementasi arsitektur POWER).
2. Implementasi pertama arsitektur power PC yaitu 601 memiliki rancangan
yang sangat mirip dengan rancangan RS 6000, model PowerPC berikutnya
mempunyai konsep superscalar.
3. Kelebihan arsitektur RISC yang berkaitan dengan kinerja dapat ditunjukan
dengan sejumlah “Sircumstansial Evidence”.
a. Optimasi kompiler yang lebih efektif dan dapat dikembangkan
b. Sebagian besar instruksi yang dihasilkan oleh kompiler relatif sederhana.
c. Berkaitan dengan penggunaan pipelining instruksi yang diterapkan
secara lebih efektif terhadap RISC.
d. Program-program RISC harus lebih responsife terhadap interrupt.
Berkaitan dengan implementasi VLSI
d. Apabila digunakan rancangan dan implementasi CPU akan berubah,
artinya dimungkinkan untuk menaruh CPU keseluruhan pada keping
tunggal.
e. Waktu yang dibutuhkan untuk implementasi dan perancangan karena
prosessor VLSI cukup sulit dibuat sehingga para perancang harus
membuat rancangan rangkaian, tata letak dan pemodelan pada tingkat
perangkat, dengan menggunakan pemodelan RISC proses tersebut akan
lebih mudah selain apabila kinerja keping RISC ekuivalen dengan
mikroprosessor CISC (Pentium) yang setara maka keuntungan dengan
memakai pendekatan RISC akan terasa sekali.[2]
PUSTAKA
[2] RISC

CISC vs RISC

Posted in

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.

PUSTAKA
[1] Electronic Lab
[2] RISC