PROCESSOR SUPERSKALAR
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 terk
ini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.
Superscalar vs Superpipeline
Prosesor super scalar out-of-order x86 seperti PII da PII juga
m
emiliki multiple fungdional unit yang dapat mengoperasikan banyak operasi secara paralel (seperti RISC). Tetapi karena pemberian instruksi terurut itu menggunakan perangkat keras, maka prosesor menjadi lebih kompleks. Dan lagi karena instruksi x86 yang kompleks, maka perangkat keras yang dibutuhkan untuk pengkode menjadi banyak dan membutukan disipasi panas yang lebih besar. Berikut ini ditampilkan gambar alur eksekusi dari instrusi pada prosesor x86.
Gambar 7 Alur pemberian instruksi pada x86 Superscalar
| Dalam disain superskalar konvensional, penulis perangkat lunak menulis program sekuensial pada bahasa pemrograman tingkat tinggi dan lalu dikompilasi ke bahasa mesin. Kode mesin ini dijalankan secara sekuensial juga, dan instruksi CPU diatur sehingga diumpankan pada perangkat keras dan dijalankan secara paralel. Scheduler secara teliti akan menguji keterkaitan kode, dan mengurutkannya sebelum dijalankan. Pada akhirnya, kode yang sekuensial itu dijalankan oleh CPU secara paralel. Melakukan hal ini dengan program membutuhkan beban kerja yang berat di CPU, dan sering membutuhkan biaya tambahan (baik siklus clock atau jumlah transistor) |
| Suatu mesin VLIW, melalukan proses pengurutan ulang dan menjadikan paralel dengan perangkat lunak. Disain satu VLIW seperti Intel IA-64. Semua bagian perangkat lunak yang melakukan hal ini adalah kompiler.. Kompiler mengekstraksi paralelisme dari kode, melihat keterkatian dan menghasilkan kode yang teroptimasi dengan core VLIW dapat dijalankan secepat mungkin. |
Akan tetapi pendekatan yang digunakan oleh Crusoe berbeda. Proses scheduling dan lain sebagainya dilakukan oleh perangkat lunak yang berada pada prosesor Crusoe.
Arsitektur Superskalar
Derajat konkurensi yang lebih tinggi dapat dicapai jika banyak pipeline instruksi diterapkan pada prosesor. Hal ini berarti digunakannya banyak unit fungsional, menciptakan jalur paralel dimana berbagai instruksi yang berbeda dapat dieksekusi secara paralel. Dengan pengaturan tersebut, maka dimungkinkan untuk memulai beberapa instruksi pada tiap siklus clock. Mode operasi ini disebut eksekusi superscalar. Jika mode ini dapat bertahan dalam waktu yang lama selama eksekusi program, maka instruksi-instruksi yang dilakukan memory dapat dipercepat. Tentu saja, eksekusi paralel harus mempertahankan kebenaran logika program, sehingga hasil yang diperoleh harus sama dengan hasil dari eksekusi serial instruksi program. Banyak dari prosesor performa tinggi saat ini didesain untuk bekerja dengan cara tersebut.
Di sini suatu satuan membaca instruksi tunggal mengambil pasangan-pasangan dari instruksi-instruksi secara bersama dan memasukkan masing-masing pasangan ke dalam pipelinenya sendiri, lengkap dengan ALUnya sendiri bagi operasi paralel. Agar dapat beroperasi secara paralel, kedua instruksi tersebut tidak boleh berebutan dalam menggunakan sumber daya (contoh, register-register), dan salah satu instruksi tidak boleh bergantung pada hasil dari instruksi yang lain. Seperti halnya dengan sebuah pipeline tunggal, begitu pula kompiler harus menjamin situasi ini tetap terjaga (yaitu, hardware tidak memeriksa dan memberikan hasil-hasil yang salah jika instruksi-instruksi tidak sebanding), atau konflik-konflik dideteksi dan dihilangkan selama pelaksanaan dengan menggunakan hardware tambahan.
Meskipun pipeline-pipeline, tunggal atau ganda, sebagian besar digunakan pada mesin-mesin RISC (komputer 386 dan generasi-generasi pendahulunya tidak memiliki pipeline satupun), Intel 486 adalah yang pertama kali mulai memperkenalkan pipeline-pipeline ke dalam CPU-CPUnya. Intel 486 memiliki satu pipeline dan Pentium memiliki dua pipeline
Pipeline utama, yang disebut pipeline u, dapat menjalankan sebuah instruksi Pentium yang selalu berubah-ubah. Pipeline kedua, yang disebut pipeline v, dapat menjalankan hanya instruksi-instruksi integer sederhana (dan juga satu instruksi titik mengambang sederhanaFXCH). Peraturan-peraturan yang rumit menentukan apakah sepasang instruksi sebanding sehingga mereka dapat dijalankan secara paralel. Jika instruksi-instruksi yang berpasangan tidak cukup sederhana atau tidak sebanding, hanya pasangan pertama yang dijalankan (dalam pipeline u). Pasangan kedua kemudian disimpan dan dipasangkan dengan instruksi berikutnya. Instruksi-instruksi selalu dijalankan secara berurutan. Jadi kompiler-kompiler khusus Pentium yang memproduksi pasangan-pasangan instruksi yang sebanding dapat memproduksi program-program yang beroperasi lebih cepat dibanding kampiler-kompiler lama.
Beralih ke empat pipeline dapat dilakukan, namun bila hal ini dilakukan akan menduplikat terlalu banyak hardware. Bahkan, suatu pendekatan berbeda digunakan pada highend CPU. Ide dasarnya adalah untuk memiliki hanya satu pipeline tunggal namun pipeline tersebut memiliki berbagai macam satuan fungsi, seperti ditunjukkan pada Gambar 7.5. Contoh, Pentium III memiliki suatu struktur yang mirip dengan gambar. Istilah arsitektur superskalar ditetapkan bagi pendekatan ini pada 1987 (Agerwala dan Cocke, 1987). Namun sebenarnya pendekatan ini telah digunakan pada komputer CDC 6600 30 tahun sebelumnya. Komputer 6600 ini mengambil sebuah instruksi setiap 100 nsec dan membawa instruksi tersebut ke salah satu dari 10 satuan fungsional untuk dijalankan secara paralel sementara CPU beroperasi untuk mendapatkan instruksi baru.
Yang tersirat dalam ide mengenai prosesor superskalar adalah bahwa tahap S3 dapat mengeluarkan instruksi-instruksi lebih cepat daripada tahap S4 dalam menjalankan instruksi-instruksi tersebut. Jika tahap S3 mengeluarkan sebuah instruksi setiap 10 nsec dan seluruh satuan fungsional dapat melaksanakan tugas mereka dalam 10 nsec, maka tidak lebih dari satu satuan yang akan benar-benar sibuk, terlepas dari ide keseluruhan. Dalam kenyataanya, sebagian besar satuan Fungsional dalam tahap S4 membutuhkan kira-kira lebih dari satu siklus detak untuk menjalankan instruksi-instruksi, dan tentu saja satuan-satuan tersebut adalah satuan-satuan yang dapat mengakses memori atau mengoperasikan aritmetik. Seperti dapat dilihat dari gambar tersebut, ada kemungkinan untuk memiliki berbagai macam ALU pada tahap S4. Permintaan untuk komputer-komputer dengan kecepatan yang lebih tinggi tampaknya sulit dipenuhi.
Paralelisme instruk silevel sedikit membantu, tapi pipeline dan operasi superskalar jarang memperoleh hasil lebih dari suatu faktor
Superscalar
Prosesor super scalar out-of-order x86 seperti PII da PII juga memiliki multiple fungdional unit yang dapat mengoperasikan banyak operasi secara paralel (seperti RISC). Tetapi karena pemberian instruksi terurut itu menggunakan perangkat keras, maka prosesor menjadi lebih kompleks. Dan lagi karena instruksi x86 yang kompleks, maka perangkat keras yang dibutuhkan untuk pengkode menjadi banyak dan membutukan disipasi panas yang lebih besar. Berikut ini ditampilkan gambar alur eksekusi dari instrusi pada prosesor x86. Alur pemberian instruksi pada x86 Superscalar
Eksekusi prosesor superskalar
Dalam disain superskalar konvensional, penulis perangkat lunak menulis program sekuensial pada bahasa pemrograman tingkat tinggi dan lalu dikompilasi ke bahasa mesin. Kode mesin ini dijalankan secara sekuensial juga, dan instruksi CPU diatur sehingga diumpankan pada perangkat keras dan dijalankan secara paralel. Scheduler secara teliti akan menguji keterkaitan kode, dan mengurutkannya sebelum dijalankan. Pada akhirnya, kode yang sekuensial itu dijalankan oleh CPU secara paralel. Melakukan hal ini dengan program membutuhkan beban kerja yang berat di CPU, dan sering membutuhkan biaya tambahan (baik siklus clock atau jumlah transistor).
Desain Prosesor
Langkah-langkah yang dilakukan dalam suatu proses desain CPU:
- Mendeskripsikan RTN
Pada tahap ini setiap instruction set didefinisikan secara jelas dengan menggunakan register transfer notation. - Menentukan Data Path
Data path adalah koleksi/kumpulan register tambahan dan register penghubung yang diperlukan dalam proses pengeksekusian suatu instruksi, yang termasuk dalam instruction set, secara keseluruhan. Pada tahap menentukan data path ini, penggunaan RTN akan sangat diperlukan untuk menjelaskan langkah-langkah yang terjadi dalam proses pengeksekusian masing-masing instruksi. Pada tahap ini kita juga harus membuat asumsi tentang bagaimana komponen-komponen hardware bekerja. Kumpulan asumsi-asumsi yang dibuat akan dijadikan spesifikasi bagi disain logika dari perangkat keras data path.
RISC VS CISC, Procesor superskalar
Cara sederhana untuk melihat kelebihan dan kelemahan dari arsitektur RISC (Reduced Instruction Set Computers) adalah dengan langsung membandingkannya dengan arsitektur pendahulunya yaitu CISC (Complex Instruction Set Computers).
RISC
Reduced Instruction Set Computing (RISC) atau "Komputasi set instruksi yang disederhanakan" pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar
RISC yaitu Rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang lebih ringkas dibandingkan dengan CISC. RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif. Konsep RISC pertama kali dikembangkan oleh IBM pada era 1970-an. Komputer pertama yang menggunakan RISC adalah komputer mini IBM 807 yang diperkenalkan pada tahun 1980. Dewasa ini, RISC digunakan pada keluarga processor buatan Motorola (PowerPC) dan SUN Microsystems (Sparc, UltraSparc).
RISC dikembangkan melalui seorang penelitinya yang bernama John Cocke, beliau menyampaikan bahwa sebenarnya kekhasan dari komputer tidaklah menggunakan banyak instruksi, namun yang dimilikinya adalah instruksi yang kompleks yang dilakukan melalui rangkaian sirkuit.
Pada desain chip mikroprosesor jenis ini, pemroses diharapkan dapat melaksanakan perintah-perintah yang dijalankannya secara cepat dan efisien melalui penyediaan himpunan instruksi yang jumlahnya relatif sedikit, dengan mengambil perintah-perintah yang sangat sederhana, akibatnya arsitektur RISC membatasi jumlah instruksinya yang dipasang ke dalam mikroprosesor tetapi mengoptimasi setiap instruksi sehingga dapat dilaksanakan dengan cepat.
Dengan demikian instruksi yang sederhana dapat dilaksanakan lebih cepat apabila dibandingkan dengan mikroprosesor yang dirancang untuk menangan susunan instruksi yang lebih luas.
Dengan demikian chip RISC hanya dapat memproses instruksi dalam jumlah terbatas, tetapi instruksi ini dioptimalkan sehingga cepat dieksekusi. Meski demikian, bila harus menangani tugas yang kompleks, instruksi harus dibagi menjadi banyak kode mesin, terutama sebelum chip RISC dapat menanganinya. Karena keterbatasan jumlah instruksi yang ada padanya, apabila terjadi kesalahan dalam pemrosesan akan memudahkan dalam melacak kesalahan tersebut.
Pada tahun 1980-an kapasitas modul memori meningkat dan harganya turun. Penekanan pada desain CPU bergeser ke kinerja, dan RISC menjadi trend baru. Contoh arsitektur RISC meliputi SPARC dari Sun Microsystems; seri MIPS Rxxxx dari MIPS Technologies; Alpha dari Digital Equipment; PowerPC yang dikembangkan bersama oleh IBM dan Motorola; dan RISC dari Hewlett-Packard.
Chip RISC menggunakan sejumlah kecil instruksi dengan panjang-sama yang relatif sederhana, yaitu panjangnya selalu 32 bit. Walaupun hal ini memboroskan memori karena harus dibuat program lebih besar, instruksi lebih mudah dan cepat dieksekusi.
Karena chip ini berurusan dengan jenis instruksi lebih sedikit, chip RISC membutuhkan lebih sedikit transistor ketimbang chip CISC dan umumnya berkinerja lebih tinggi pada kecepatan clock yang sama, walaupun chip ini harus mengeksekusi lebih banyak instruksi lebih pendek untuk menyelesaikan sebuah fungsi.
Kesederhanaan RISC juga mempermudah merancang prosesor superscalar - chip yang dapat mengeksekusi lebih dari satu instruksi pada satu saat. Hampir semua prosesor RISC dan CISC modern adalah superscalar; tetapi untuk mencapai kemampuan ini membuat desain lebih rumit.
Kebalikan dari arsitektur chip mikrprosesor dari RISC adalah CISC (baca ”sisk”, yang merupakan singkatan dari complex instruction set computing, dimana mikroprosesor memiliki lebih banyak instruksi yang terdapat di dalamnya.
Disingkat dengan RISC. Rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang lebih ringkas dibandingkan dengan CISC. RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif. Konsep RISC pertama kali dikembangkan oleh IBM pada era 1970-an. Komputer pertama yang menggunakan RISC disebut juga komputer mini IBM 807 yang diperkenalkan pada tahun 1980. Dewasa ini, RISC digunakan pada keluarga processor buatan Motorola (PowerPC) dan SUN Microsystems (Sparc, UltraSparc).
RISC dikembangkan melalui seorang penelitinya yang bernama John Cocke, beliau menyampaikan bahwa sebenarnya kekhasan dari komputer tidaklah menggunakan banyak instruksi, namun yang dimilikinya adalah instruksi yang kompleks yang dilakukan melalui rangkaian sirkuit.
Pada desain chip mikroprosesor jenis ini, pemroses diharapkan dapat melaksanakan perintah-perintah yang dijalankannya secara cepat dan efisien melalui penyediaan himpunan instruksi yang jumlahnya relatif sedikit, dengan mengambil perintah-perintah yang sangat sederhana, akibatnya arsitektur RISC membatasi jumlah instruksinya yang dipasang ke dalam mikroprosesor tetapi mengoptimasi setiap instruksi sehingga dapat dilaksanakan dengan cepat.
Dengan demikian instruksi yang sederhana dapat dilaksanakan lebih cepat apabila dibandingkan dengan mikroprosesor yang dirancang untuk menangan susunan instruksi yang lebih luas.
Dengan demikian chip RISC hanya dapat memproses instruksi dalam jumlah terbatas, tetapi instruksi ini dioptimalkan sehingga cepat dieksekusi. Meski demikian, bila harus menangani tugas yang kompleks, instruksi harus dibagi menjadi banyak kode mesin, terutama sebelum chip RISC dapat menanganinya. Karena keterbatasan jumlah instruksi yang ada padanya, apabila terjadi kesalahan dalam pemrosesan akan memudahkan dalam melacak kesalahan tersebut.
Pada tahun 1980-an kapasitas modul memori meningkat dan harganya turun. Penekanan pada desain CPU bergeser ke kinerja, dan RISC menjadi trend baru. Contoh arsitektur RISC meliputi SPARC dari Sun Microsystems; seri MIPS Rxxxx dari MIPS Technologies; Alpha dari Digital Equipment; PowerPC yang dikembangkan bersama oleh IBM dan Motorola; dan RISC dari Hewlett-Packard.
Chip RISC menggunakan sejumlah kecil instruksi dengan panjang-sama yang relatif sederhana, yaitu panjangnya selalu 32 bit. Walaupun hal ini memboroskan memori karena harus dibuat program lebih besar, instruksi lebih mudah dan cepat dieksekusi.
Karena chip ini berurusan dengan jenis instruksi lebih sedikit, chip RISC membutuhkan lebih sedikit transistor ketimbang chip CISC dan umumnya berkinerja lebih tinggi pada kecepatan clock yang sama, walaupun chip ini harus mengeksekusi lebih banyak instruksi lebih pendek untuk menyelesaikan sebuah fungsi.
Arsitektur IBM RS/6000
Pada Februari 1990 IBM memperkenalkan RISC System/6000 yang pertama dengan arsitektur Performance Optimization With Enhanced RISC (POWER). Tahun 1991, IBM bekerja sama dengan aliansi Apple dan Motorola mengembangkan hardware dan software berbasiskan RISC dan menggunakan mikroprosessor PowerPC.
. Arsitektur Power berdasarkan 7 atau 9 chips tergantung RS/6000 Model. Kompleksitas 7 chips memiliki 32 KB data cache sedangkan 9 chips memiliki 64 KB data cache. Power RS/6000 dirancang berdasarkan 3 unit fungsi yang tidak saling bergantung :
- Branch Prosessor Unit (BPU), unit ini memprosess masuknya deretan instruksi dari cache instruksi dan melewatkan aliran instruksi ke unit FXU/FPU. Unit ini menyediakan percabangan, interupsi dan fungsi pengkondisi kode di dalam sistem. Unit ini juga mendukung instruksi supervisro call (SVC) yang merupakan interupsi software dan mengandung 6 register khusus.
- Fixed–Point Processor Unit (FXU), unit ini dirancang untuk mengeksekusi keseluruhan 79 instruksi aritmatika fixed-point dan instruksi logika dan 55 instruksi acuan data. Unit ini memiliki sebanyak 32 general-purpose register selebar 32 bit dan 5 register khusus.
- Floating-Point Processor Unit (FPU), unit ini mendukung eksekusi keseluruhan 21 insturksi floating-point, memiliki 32 register floating-point selebar 64 bit, status foating –point dan register kendali (control register).
Arsitektur memori virtual menyediakan alamat virtual sepanjang 52 bit atau 4PB ( 252) dan 4 GB ( 232) alamat fisik (real address) dari 4 KB halaman (pages). Arsitektur ini berisikan 8 KB cache instruksi yang dapat ditingkatkan sampai 32 KB. POWER menerapkan arsitektur cache untuk intruksi dan data yang nyata (visible) bagi software sehingga meningkatkan kesetaraan antara BPU dan FXU sebagaimana halnya antara perangkat I/O dan unit ini. Data cache unit (DCU) selebar 64 KB yang dipisahkan dalam 4 chips identik. Ini memisahkan interface 4 bytes untuk FXU, 8 bytes untuk FPU dan 8 bytes untuk unit kendali I/O.
System Bus untuk RS/6000 ada dua jenis yakni MCA (Micro Channel Arsitektur) biasanya tersedia 8 slot mampu mendukung kecepatan transfer data 20 – 30 MB/s atau PCI (Peripheral Inter Connect) tersedia 9 sampai 22 slot dengan kecepatan transfer data sampai 400 MB/s
Arsitektur ini mendefinisikan 184 set instruksi dan mengijinkan eksekusi beragam untuk fixed-point, folating-point dan brach processing yang difokuskan pada siklus reduced-instruction-set. Salah satu instruksi penting adalah instruksi floating-point multiply-add (FMA). Instruksi ini berisikan melakukan perkalian terhadap dua register dan menambahkan register ke-tiga sebagai hasil sementara dengan total waktu hanya dua siklus.
System RS/6000 dibangun menggunakan prosessor seri RSC (RISC Single Chip), POWER2 Multichip, POWER2 Super Chip dan generasi PowerPC seri 601,603,603e,604,604e, dan 62. Processor ini merupakan prosessor berkinerja tinggi, menerapkan superskalar dan mengijinkan optimalisasi kompilator untuk merencanakan instruksi, guna memaksimalkan kinerja melalui penggunaan yang efisien terhadap set instruksi dan model register.
Kesederhanaan RISC
juga mempermudah merancang prosesor superscalar - chip yang dapat mengeksekusi lebih dari satu instruksi pada satu saat. Hampir semua prosesor RISC dan CISC modern adalah superscalar; tetapi untuk mencapai kemampuan ini membuat desain lebih rumit.
Kebalikan dari arsitektur chip mikrprosesor dari RISC adalah CISC (baca ”sisk”, yang merupakan singkatan dari complex instruction set computing, dimana mikroprosesor memiliki lebih banyak instruksi yang terdapat di dalamnya.
Pendekatan RISC , Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
Penghadang jalan (Roadblocks) RISC
Walaupun pemrosesan berbasis RISC memiliki beberapa kelebihan, dibutuhkan waktu kurang lebih 10 tahunan mendapatkan kedudukan di dunia komersil. Hal ini dikarenakan kurangnya dukungan perangkat lunak.
Walaupun Apple’s Power Macintosh menggunakan chip berbasis RISC dan Windows NT adalah kompatibel RISC, Windows 3.1 dan Windows 95 dirancang berdasarkan prosesor CISC. Banyak perusahaan segan untuk masuk ke dalam dunia teknologi RISC. Tanpa adanya ketertarikan komersil, pengembang prosesor RISC tidak akan mampu memproduksi chip RISC dalam jumlah besar sedemikian hingga harganya bisa kompetitif.
Kemerosotan juga disebabkan munculnya Intel, walaupun chip-chip CISC mereka semakin susah digunakan dan sulit dikembangkan, Intel memiliki sumberdaya untuk menjajagi dan melakukan berbagai macam pengembangan dan produksi prosesor-prosesor yang ampuh. Walaupun prosesor RISC lebih unggul dibanding Intel dalam beberapa area, perbedaan tersebut kurang kuat untuk mempengaruhi pembeli agar merubah teknologi yang digunakan.
Keunggulan RISC
Saat ini, hanya Intel x86 satu-satunya chip yang bertahan menggunakan arsitektur CISC. Hal ini terkait dengan adanya kemajuan teknologi komputer pada sektor lain. Harga RAM turun secara dramatis. Pada tahun 1977, DRAM ukuran 1MB berharga %5,000, sedangkan pada tahun 1994 harganya menjadi sekitar $6. Teknologi kompailer juga semakin canggih, dengan demikian RISC yang menggunakan RAM dan perkembangan perangkat lunak menjadi semakin banyak ditemukan.
CISC
Complex instruction-set computing atau Complex Instruction-Set Computer (CISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC.
Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik", yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi "level tinggi" seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.
Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana.
Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur -arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970 (Pusat Penelitian Watson IBM 801 - IBMs)
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.
Mikrokontroler yang beredar saat ini dibedakan menjadi dua macam, berdasarkan arsitekturnya:
* Tipe CISC atau Complex Instruction Set Computing yang lebih kaya instruksi tetapi fasilitas internal secukupnya saja (seri AT89 memiliki 255 instruksi);
* Tipe RISC atau Reduced Instruction Set Computing yang justru lebih kaya fasilitas internalnya tetapi jumlah instruksi secukupnya (seri PIC16F hanya ada sekitar 30-an instruksi).
Fasilitas internal yang saya maksudkan di sini antara lain: jumlah dan macam register internal, pewaktu dan/atau pencacah, ADC atau DAC, unit komparator, interupsi eksternal maupun internal dan lain sebagainya.
Yang mana sesuai dengan Anda? Sesuaikan dengan kebutuhan dan fitur-fitur yang ditawarkan oleh masing-masing mikrokontroler. Tidak ada ukuran secara pasti suatu jenis mikrokontroler lebih baik dibandingkan mikrokontroler lainnya.
Pendekatan CISC , Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…
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.
Perbedaan lebih jelasnya
| CISC | RISC |
| Penekanan pada
| Penekanan pada
|
| Termasuk instruksi
| Single-clock, hanya
|
| Memori-ke-memori:
| Register ke register:
|
| Ukuran kode kecil,
| Ukuran kode besar,
|
| Transistor digunakan untuk
| Transistor banyak dipakai
|
Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.
Persamaan Unjuk-kerja (Performance)
Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:
Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program.








Tidak ada komentar:
Posting Komentar