Selasa, 29 Desember 2009

ARP,ICMP, Hub Vs Switch

Address Resolution Protocol (ARP)

Address Resolution Protocol disingkat ARP adalah sebuah protokol dalam TCP/IP Protocol Suite yang bertanggungjawab dalam melakukan resolusi alamat IP ke dalam alamat Media Access Control (MAC Address). ARP didefinisikan di dalam RFC 826.

Ketika sebuah aplikasi yang mendukung teknologi protokol jaringan TCP/IP mencoba untuk mengakses sebuah host TCP/IP dengan menggunakan alamat IP, maka alamat IP yang dimiliki oleh host yang dituju harus diterjemahkan terlebih dahulu ke dalam MAC Address agar frame-frame data dapat diteruskan ke tujuan dan diletakkan di atas media transmisi (kabel, radio, atau cahaya), setelah diproses terlebih dahulu oleh Network Interface Card (NIC). Hal ini dikarenakan NIC beroperasi dalam lapisan fisik dan lapisan data-link pada tujuh lapis model referensi OSI dan menggunakan alamat fisik daripada menggunakan alamat logis (seperti halnya alamat IP atau nama NetBIOS) untuk melakukan komunikasi data dalam jaringan.

Jika memang alamat yang dituju berada di luar jaringan lokal, maka ARP akan mencoba untuk mendapatkan MAC address dari antarmuka router lokal yang menghubungkan jaringan lokal ke luar jaringan (di mana komputer yang dituju berada).

Informasi tentang MAC address akan disimpan dalam keping RAM (Random Access Memory) dan sifatnya temporer dengan umurnya yang hanya dua menit, namun dapat diperbarui. Ruang simpan dalam RAM ini disebut ARP (Address Resolution Protocol) cache. ARP akan selalu memeriksa ARP cache. Jika ARP berhasil menemukan nomor IP tetapi tidak menemukan MAC address pasangannya, maka ARP akan mengirim request ke jaringan.

Prinsip dari ARP adalah tidak boleh ada lebih dari satu nomor IP memakai satu MAC address yang sama. Jadi, kita tidak bisa menggunakan nomor IP yang sedang dipakai oleh komputer lain, dan tidak bisa menggunakan MAC address yang telah dipasangkan dengan IP lain.

Protokol ARP bersifat stateless, ia akan mengirim request MAC address dan mengirimkan pemberitahuan kepada komputer anggota jaringan jika terjadi ketidakberesan dalam pengalamatan, walaupun tidak ada komputer di jaringan yang memintanya. Protokol ARP juga bersifat non-routable, ia hanya bekerja pada satu segmen jaringan lokal.

ARP Spoofing

Ancaman keamanan muncul ketika ada upaya manipulasi terhadap pengalamatan nomor IP dan MAC address. Proses ini biasa disebut dengan istilah ARP spoofing atau ARP poisoning, bertujuan untuk mencari mana saja komputer yang terhubung dengan koneksi terbuka (saling percaya). Misalnya, komputer B dengan alamat hardware BB:BB percaya terhadap komputer C yang beralamat hardware CC:CC. Komputer penyerang ada di komputer A dengan MAC address AA:AA. Maka, penyerang akan berupaya mengirimkan pemberitahuan kepada komputer B bahwa MAC address komputer C adalah AA:AA.

Salah satu contoh aplikasi yang dapat digunakan untuk memanipulasi MAC address adalah WinArpSpoof. Sebelum mengistalnya, terlebih dulu kita harus menginstal paket WinCap untuk menangkap paket data di jaringan.

Payahnya, sistem operasi selalu mengecek ARP cache dan akan mengirim request pengalamatan jika terjadi perubahan, atau jika ia mendeteksi adanya lebih dari satu IP dengan MAC address yang sama dalam ARP cache. Untuk menghentikan proses ini, biasanya cracker akan membuat program untuk menjawab bahwa tidak ada perubahan dalam ARP cache. Contohnya bisa dilihat dalam skrip send_arp.c karya Yuri Volobuev di http://insecure.org/sploits/arp.games.html.

Dengan ARP spoofing, penyerang dapat mengatur lalu lintas data pada jaringan. Paket data yang dikirim target B ke target C akan berbelok dahulu ke komputer penyerang (komputer A). Setelah mengetahui isi data, bisa saja si penyerang mengirim pesan palsu ke komputer C, seakan-akan berasal dari komputer B. Model serangan semacam ini dikenal dengan istilah "man the middle attack". Lain jadinya, jika penyerang memasangkan MAC address yang tidak dikenal di dalam jaringan kepada komputer target. Ini akan menyebabkan komputer target tidak dikenali oleh jaringan dan akan mengalami penolakan saat mengirim request layanan, istilahnya "denial of service (DoS)".

Untuk mengetahui terjadinya upaya spoofing, kita bisa mengecek isi routing table menggunakan protokol Reverse ARP (RARP). Jika ada lebih dari satu alamat IP menggunakan MAC address yang sama, kemungkinan terjadi sesuatu yang tidak beres. Jika tidak ada yang salah dengan routing table, kita bisa mengirim paket ICMP (Internet Control Message Control) atau yang dikenal dengan ping ke komputer. Jika muncul pesan error (unreachable), kita harus curiga dan segera menyelidiki sistem.

Protokol ARP dapat dimanipulasi untuk tujuan jahat, namun juga dapat dimanfaatkan untuk tujuan yang baik. Contohnya untuk mengecek keanggotaan dalam suatu fasilitas akses internet. Sekarang banyak orang mengakses internet melalui jaringan Wi-Fi yang memanfaatkan gelombang radio. Di jaringan tersebut, protokol ARP bisa digunakan untuk mengecek MAC address komputer-komputer yang terhubung dengan internet. (PCplus, 292)


ICMP

Internet Control Message Protocol (ICMP) adalah salah satu protokol inti dari keluarga protokol internet. ICMP utamanya digunakan oleh sistem operasi komputer jaringan untuk mengirim pesan kesalahan yang menyatakan, sebagai contoh, bahwa komputer tujuan tidak bisa dijangkau.

ICMP berbeda tujuan dengan TCP dan UDP dalam hal ICMP tidak digunakan secara langsung oleh aplikasi jaringan milik pengguna. salah satu pengecualian adalah aplikasi ping yang mengirim pesan ICMP Echo Request (dan menerima Echo Reply) untuk menentukan apakah komputer tujuan dapat dijangkau dan berapa lama paket yang dikirimkan dibalas oleh komputer tujuan.

Gambaran Teknis

Internet Control Message Protocol (ICMP) adalah bagian dari keluarga protokol Internet dan didefinisikan di dalam RFC 792. Pesan-pesan ICMP umumnya dibuat sebagai jawaban atas kesalahan di datagram IP (seperti yang dispesifikasikan di RFC1122) atau untuk kegunaan pelacakan atau routing.

Versi ICMP terkini juga dikenal sebagai ICMPv4, yang merupakan bagian dari Internet Protocol versi 4.

Dalam suatu sistem connectionless setiap gateway akan melakukan pengiriman, perutean datagram yang dating tanpa adanya koordinasi dengan pengirim pertama. Tidak semua sistem berjalan dengan lancar. Kegagalan dapat saja terjadi. misalnya line komunikasi, prosesor atau dikarenakan mesin tujuan tidak sedang aktif, ttl dari counter habis, atau ketika terjadi kemacetan sehingga gateway tidak lagi bisa memproses paket yang datang.

Dalam koneksi dengan internet pengirim tidak dapat memberitahukan & tidak tahu sebab kegagalan suatu koneksi. Untuk mengatasinya diperlukan suatu metode yang mengijinkan gateway melaporkan error atau menyediakan informasi mengenai kejadian yang tidak diinginkan sehingga dipakai mekanisme ICMP.

Pesan ICMP merupakan bagian dari datagram IP. Tujuan akhir dari suatu pesan ICMP bukan merupakan program atau user melainkan software internet-nya. Ketika pesan ICMP hadir software ICMP akan menanganinya.

ICMP mengijinkan gateway untuk mengirim pesan error ke gateway lain atau host. ICMP menyediakan komunikasi antar software protocol Internet.

Pada dasarnya terdapat dua macam pesan ICMP : ICMP Error Message & ICMP Query Message. ICMP error message digunakan pada saat terjadi kesalahan pada jaringan, sedangkan query message adalah jenis pesan yang dihasilkan oleh protokol ICMP jika pengirim paket menginginkan informasi tertentu yang berkaitan dengan kondisi jaringan.

Error & Query Reporting

Secara teknis ICMP adalam mekanisme error reporting untuk gateway sehingga dapat memberitahu sumber mengenai kesalahan yang terjadi. Sedangkan untuk koreksinya diserahkan pada program aplikasi yang ada pada pengirim.

Pesan ICMP ini selalu dikirimkan kepada gateway awal. Jika suatu datagram yang melewati beberapa gateway mengalami kegagalan & kesalahan tujuan di intermediate gatewaynya maka tidak dapat dideteksi gateway mana yang gagal tersebut.

Ada beberapa jenis pesan error diantaranya :

* destination unreachable

pesan ini dihasilkan oleh router jika pengiriman paket mengalami kegagalan akibat masalah putusnya jalur, baik fisik maupun lojik. Pesan ini dapat dibagi menjadi beberapa tipe :

* network unreachable

jika jaringan tujuan tidak dapat dihubungi

* host unreachable

jika host tujuan tidak bisa dihubungi

* protocol at destination is unreachable

jika di tujuan tidak tersedia protokol tersebut

* port is unreachable

jika tidak ada port yang dimaksud pada tujuan

* destination network is unknown

jika network tujuan tidak diketahui

* destination host is unknown

jika host tujuan tidak diketahui

* time exceeded

dikirimkan jika is field TTL dalam paket IP sudah habis masa aktifnya dan paket belum juga sampai ke tujuannya

* parameter problem

pesan ini dikirim jika terjadi kesalahan parameter pada header paket IP

* source quench

jika router atau tujuan mengalami kemacetan, sebagai respon terhadap pesan ini maka pihak penerima harus memperlambat pengiriman paket

* redirect

dikirimkan jika router merasa host mengirimkan paket IP melalui router yang salah.

Sedangkan untuk pesan query diantarannya adalah :

* Echo & Echo Reply

Bertujuan untuk memeriksa apakah sistem tujuan dalam keadaan aktif. Program ping merupakan program pengiriman paket ini. Responder harus mengembalikan data yang sama dengan data yang dikirimkan

* Timestamp & Timestamp Reply

menghasilkan informasi waktu yang diperlukan sistem tujuan untuk memproses suatu paket

* Address Mask

Untuk mengetahui berapa netmask yang harus digunakan oleh suatu host dalam suatu network

Pengiriman ICMP Message

ICMP memerlukan dua level enkapsulasi seperti pada gambar dibawah ini :


Setiap pesan ICMP merupakan bagian dari datagram IP yang juga merupakan bagain dari suatu frame data. Datagram yang membawa pesan ICMP mendapat perlakuan yang sama dengan datagram lain dalam hal reliability & priority-nya. Pengecualian prioritas didapat untuk menghindari masalah : mendapat pesan error mengenai pesan error. Prioritas tersebut menentukan bahwa pesan tidak dibangkitkan untuk error yang disebabkan oleh datagram yang membawa pesan error.

Format Pesan ICMP

Format diawali dengan 3 field :

8 bit : field TYPE yang mengidentfikasikan pesan

8 bit : field CODE yang menyediakan informasi lebih jauh tentang tipe pesan

16 bit : field CHECKSUM untuk pengecekkan pesan ICMP

ICMP yang berisi pesan error terdiri dari header dan 64 bit pertamanya berisi penyebab error yang terjadi. Type field yang ada :







Hub Vs Switch




Gambar: Sebuah hub hanya mengulang semua trafik ke semua port, sementara switch akan membuat sambungan sementara antara port yang membutuhkan komunikasi.

Hub dianggap perangkat yang sederhana, karena hub secara tidak efisien membroadcast semua trafik ke setiap port. Kesederhanaan ini menyebabkan penalty dari sisi kinerja maupun keamanan. Secara keseluruhan kinerja menjadi lebih lambat, karena bandwidth yang tersedia harus dibagi antara semua port. Karena semua lalu lintas terlihat oleh semua port, semua host di jaringan dapat dengan mudah memantau seluruh lalu lintas jaringan.

Hub bekerja pada layer 1 OSI yang berfungsi untuk memperluas distribusi media (dalam hal ini Ethernet) dari hanya satu kabel menjadi beberapa kabel untuk didistribusikan. Semua peralatan yang tersambung dengan hub berarti dalam satu collision domain dan satu broadcast domain. Semua peralatan yang tersambung dengan hub saling berbagi bandwidth. Semakin banyak host yang terhubung, maka semakin besar terjadinya collision (tabrakan) untuk itu perlu diterapkan teknologi CSMA/CD (Carrier Sense Multiple Access/Collision Detector)

Sebuah hub dapat digunakan jika dibutuhkan pengulangan traffik ke semua port; misalnya, bila anda ingin sebuah mesin melakukan pemantauan untuk melihat semua lalu lintas pada jaringan. Kebanyakan switch menyediakan fungsi untuk memonitor port yang memungkinkan pengulangan traffik dari sebuah port tertentu yang ditugaskan secara khusus untuk tujuan ini.

Hub lebih murah daripada switch. Namun, harga akan berkurang secara drastis di tahun-tahun belakangan ini. Oleh karena itu, jaringan yang menggunakan hub lama sebaiknya diganti dengan switch yang baru jika memungkinkan.

Switch membuat sambungan virtual antara port penerima dan pengirim. Ini menghasilkan kinerja yang lebih baik karena banyak sambungan virtual dapat dibangun secara bersamaan. Switch yang lebih mahal dapat men-switch trafik dengan menginspeksi paket di tingkat yang lebih tinggi (di lapisan aplikasi atau lapisan transport), memungkinkan pembuatan VLAN, melaksanakan dan fitur tingkat lanjutan lainnya.

Switch adalah peralatan layer 2 OSI yang digunakan sebagai Frame Forwarder. Switch mempunyai fungsi yang sama dengan Bridge. Switch dapat disebut sebagai pengembangan dan penerus Bridge. Tugas utama dari Bridge adalah menerima frame dari port asal (incoming/source) dan meneruskannya ke tujuan (destination port).

Bridge menyiapkan MAC Address Table yang membantu Bridge untuk mengetahui ke port mana frame tersebut harus diteruskan. Pada saat dihidupkan, tabel Mac ini kosong. Setelah menyiapkan tabel pada Content Addressable Memory (CAM), Bridge mulai mendengar (listen) frame yang masuk pda port.

Hub dan switch mungkin menawarkan layanan yang dikelola (managed servis). Beberapa dari layanan ini meliputi kemampuan untuk mengatur kecepatan link (10baseT, 100baseT, 1000baseT, full duplex atau half duplex) per port, memungkinkan untuk memperhatikan kejadian di jaringan (seperti perubahan alamat MAC atau paket yang tidak baik / salah), dan biasanya termasuk penghitung trafik pada port untuk memudahkan bandwidth akunting. Sebuah managed switch yang menyediakan perhitungan upload dan download byte untuk setiap port fisik sehingga dapat sangat menyederhanakan pemantauan jaringan. Layanan ini biasanya tersedia melalui SNMP, atau dapat diakses melalui telnet, ssh, interface web, atau alat konfigurasi khusus.

Selasa, 30 Juni 2009

perih

Dirimu…
tak pernah menyadari
semua…
yang telah kau miliki
kau buang aku, tinggalkan diriku
kau… hancurkan aku seakan ku tak pernah ada

Aku kan bertahan
meski takkan mungkin
menerjang kisahnya
walau perih… walau perih…

salahkah…
aku terlalu cinta
berharap..
semua kan kembali
kau buang aku,tinggalkan diriku
kau.. hancurkan aku
seakan ku tak pernah ada

Aku kan bertahan
meski takkan mungkin
menerjang kisahnya
walau perih… walau perih…

Aku kan bertahan
meski takkan mungkin
menerjang kisahnya
walau perih…

Aku kan bertahan
meski takkan mungkin
menerjang kisahnya
walau perih… walau perih…
walau perih….walau perih…


(lagi suka dengerin lagu ini bbrapa hair trakhir ini...)(^O^)

Rabu, 24 Juni 2009

CISC,RISC,SUPERSCALAR

CISC

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

CISC dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan untuk mengerjakan pekerjaan yang diberikan. (Jumlah perintah sedikit tetapi rumit) Konsep CISC menjadikan mesin mudah untuk diprogram dalam bahasa rakitan, tetapi konsep ini menyulitkan dalam penyusunan kompiler bahasa pemrograman tingkat tinggi. Dalam CISC banyak terdapat perintah bahasa mesin.

CISC (Complex Instruction Set Computer) adalah salah satu bentuk arsitektur yang menjalankan set instruksi dan tiap instruksi dapat menjalankan beberapa instruksi tingkat rendah. Misalnya instruksi tingkat rendah tersebut adalah operasi aritmatika, penyimpanan – pengambilan dari memori dll. Prosesor CISC memiliki kapasitas instruksi yang cukup besar yang memberikan fleksibilitas untuk menulis sebuah program menjadi lebih pendek dan lebih efektif.

CISC banyak digunakan di AMD CPU dan Intel. CISC memang memiliki instruksi yang kompleks dan memang dirasa berpengaruh pada kinerjanya yang lebih lambat. Mungkin sudah jadi takdir bagi CISC yang selalu ingin hardware berkembang jauh lebih cepat ketimbang software maka CISC menawarkan set instruksi yang powerful, kuat, tangguh, maka tak heran jika CISC memang hanya mengenal bahasa assembly yang sebenarnya ia tujukan bagi para programmer. Karena instruksi yang ia usung bersifat komplek, maka ia hanya memerlukan sedikit instruksi untuk berjalan.

Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi.

Hal ini sangat mungkin karena pembangunan perangkat prosesor CISC dapat memahami dan mengeksekusi operasi yang banyak. Sebagai contoh pada MCS-51, instruksi pengkalian (MUL) merupakan instruksi yang kompleks yang mana hanya operand yang akan ditentukan dalam instruksi, dan operasi pengkalian diselesaikan oleh hardware. Dalam tipe instruksi yang demikian, pembentukan inkstruksi kompleks ke dalam hardware yang dilakukan secara langsung, membantu dalam dua cara yang berbeda. Tidak hanya pengimplementasian hardware menjadi lebih cepat, tetapi juga menghemat ruang memori program mengingat kode instruksi sangatlah pendek jika dibandingkan dengan yang diperlukan untuk operasi pengalian dengan instruksi ADD. Hal tersebut mengharuskan programer bekerja dalam level yang lebih tinggi.

Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja.

MULT 2:3, 5:2

MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan. Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.

Mengapa CISC?

· Jumlah instruksi yang banyak dan instruksi yang lebih kompleks.

· Dua alasan utama yang menjadi motivasi kecenderungan ini : adanya keinginan untuk menyederhanakan kompiler dan keinginan untuk meningkatkan kinerja.

· Alasan penting lainnya adalah harapan bahwa CISC akan menghasilkan program yang lebih kecil dan lebih cepat.

RISC

RISC adalah singkatan dari Reduced Instruction Set Computer yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit. RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam penyusunan kompiler yang pada akhirnya dapat memaksimumkan kinerja program yang ditulis dalam bahasa tingkat tinggi.

Konsep arsitektur RISC banyak menerapkan proses eksekusi pipeline. Meskipun jumlah perintah tunggal yang diperlukan untuk melakukan pekerjaan yang diberikan mungkin lebih besar, eksekusi secara pipeline memerlukan waktu yang lebih singkat daripada waktu untuk melakukan pekerjaan yang sama dengan menggunakan perintah yang lebih rumit.

Mesin RISC memerlukan memori yang lebih besar untuk mengakomodasi program yang lebih besar. IBM 801 adalah prosesor komersial pertama yang menggunakan pendekatan RISC.

Beberapa elemen penting pada arsitektur RISC :

· Set instruksi yang terbatas dan sederhana.

· Register general-purpose yang berjumlah banyak, atau penggunaan teknologi kompiler untuk mengoptimalkan pemakaian registernya.

· Penekanan pada pengoptimalan pipeline instruksi.

Aspek komputasi yang ditinjau dalam merancang mesin RISC adalah sbb:

· Operasi-operasi yang dilakukan: Hal ini menentukan fungsi-fungsi yang akan dilakukan oleh CPU dan interaksinya dengan memori.

· Operand-operand yang digunakan: Jenis-jenis operand dan frekuensi pemakaiannya akan menentukan organisasi memori untuk menyimpannya dan mode pengalamatan untuk mengaksesnya.

· Pengurutan eksekusi: Hal ini akan menentukan kontrol dan organisasi pipeline.

Ciri-ciri RISC:

· Instruksi berukuran tunggal.

· Ukuran yang umum adalah 4 byte.

· Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.

· Tidak terdapat pengalamatan tak langsung.

· Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmetika (misalnya, penambahan dari memori, penambahan ke memori).

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.

KEUNGGULAN

  • 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.
  • 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.
  • 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.
  • Penggunaan mode pengalamatan dan format instruksi yang lebih sederhana.

KEKURANGAN

  • Program yang dihasilkan dalam bahasa simbolik akan lebih panjang (instruksinya lebih banyak).
  • Program berukuran lebih besar sehingga membutuhkan memori yang lebih banyak, ini tentunya kurang menghemat sumber daya.
  • Program yang berukuran lebih besar akan menyebabkan menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan lebih banyak byte-byte instruksi yang harus diambil. Selain itu, Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar.

Karakteristik CISC versus RISC

· Rancangan RISC dapat memperoleh keuntungan dengan mengambil sejumlah feature CISC dan Rancangan CISC dapat memperoleh keuntungan dengan mengambil sejumlah feature RISC.

· Hasilnya adalah bahwa sejumlah rancangan RISC yang terbaru, yang dikenal sebagai PowerPC, tidak lagi “murni” RISC dan rancangan CISC yang terbaru, yang dikenal sebagai Pentium, memiliki beberapa karakteristik RISC.

Secara singkat perbedaan CISC dan RISC:

CISC:

  1. Lebih menekankan pada perangkat keras, sesuai dengan takdirnya untuk programer.
  2. Memiliki instruksi komplek.
  3. Load/store atau memori ke memori bekerja sama.
  4. Memiliki ukuran kode yang kecil dan kecepatannya rendah.
  5. Transistor di dalamnya digunakan untuk menyimpan instruksi - instruksi bersifat komplek.

RISC:

  1. Menekankan pada perangkat lunak, dengan sedikit transistor.
  2. Instruksi sederhana bahkan single.
  3. Load/store atau memori ke memori bekerja terpisah.
  4. Ukuran kode besar dan kecepatan lebih tinggi.
  5. Transistor di dalamnya lebih untuk register memori.



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.

Superscalar adalah arsitektur prosessor yang memungkinkan eksekusi yang bersamaan (parallel) dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain. Prosesor superscalar mampu menjalankan 2 atau lebih operasi scalar dalam bentuk paralel. Superscalar mampu menjalankan Instruction Level Parallelism (berupa ; arithmetic, pembacaan/penyimpanan, conditional branch) dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC. Seperti pada gambar di bawah ini, prosesor superscalar mampu menjalankan 2 operasi secara bersama - sama. Sebagai perbandingan, kita bandingkan dengan base machine. Dimana base machine hanya mampu menjalankan satu operasi dalam waktu yang sama. Sehingga dapat kita lihat bahwa dengan superscalar, proses mampu berjalan lebih cepat.

Tabel 4.1 Karakteristik dari beberapa Prosesor CISC, RISC, dan Superskalar



Daftar Pustaka

  1. http://elektroindonesia.com/elektro/komput3a.html
  2. http://www.total.or.id/info.php?kk=Superscalar
  3. http://en.wikipedia.org/wiki/Superscalar.htm