Kamis, 02 Mei 2013

CISC dan RISC


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

SEJARAH

Banyak usaha yang dilakukan manusia untuk terus menerus meningkatkan kecepatan computer. Satu alternative yang dianggap memiliki masa depan yang cerah adalah arsitektur RISC (Reduced Instruction Set Computing).
Awal mulanya RISC bertujuan untuk meningkatkan kecepatan proses dengan cara menaikkan frekuensi clock CPU. Tetapi kemudian disadari ada cara lain yang jauh lebih baik yaitu dengan teknik pipelining dan parallelism. Berangkat dari pemikiran tersebut, IBM kemudian merancang arsitektur RISC generasi kedua yang disebut POWER (Performance Optimization With Enhanced RISC- didefinisikan berdasarkan hasil kerja John Cocke dan lainnya di Yorktown Research). Daripada sekedar meningkatkan clock rate, POWER lebih menitik beratkan perancangan set instruksi yang secara penuh memanfaatkan pipelining dan parallelism. Arsitektur POWER merupakan rancangan superscalar, yaitu dapat melaksanakan banyak perintah dalam satu clock cycle. Hal ini dimungkinkan karena instruksi – instruksi dasar semacam branch prosessing, integer, instruction execution dan floating point instruction execution dikerjakan secara bersamaan (overlap). Server dengan arsitektur RISC generasi pertama disebut dengan RS/6000 (RISC System 6000) pada generasi yang ke lima telah berganti nama menjadi pSeries POWER5. Arti huruf “p” pada pSeries adalah performance yang menandakan bahwa mesin ini ditujukan untuk kebutuhan performance yang lebih baik.
Didalam sejarahnya, pseries mengalami beberapa perubahan. Bermula dari penyebutan RISC 6000, RS/6000 (RS = RISC System) hingga pSeries saat ini. RISC sendiri adalah nama sebuah model IC (integrated Circuit) yang didalamnya terdapat fasilitas yang biasa ditemukan didalam komputer modern, seperti clock, memory, AD/DA dll. RISC adalah kepanjangan dari Reduced Instruction Set Computing, yang berarti komputer dengan pengurangan instruksi. Mengapa demikian? Karena menurut riset, setiap karakter huruf dari command computer yang kita ketik dan instruksi yang dikenal oleh komputer, apabila dikurangi, akan meningkatkan kecepatan prosesnya pada saat dieksekusi. Oleh sebab itu tidak seperti operating system windows yang mengenal sekitar 300 instruksi, di pseries hanya sekitar 128 instruksi. Contoh instruksi copy di windows, di UNIX hanya mengenal cp, remove di windows akan menjadi rm di UNIX dst. Berikut ini adalah beberapa alasan mengapa pseries memiliki kecepatan yang lebih baik daripada platform lain :

1. Word length

Data yang dipindah – pindahkan didalam system computer bukanlah dalam bentuk aliran yang continue (continuous stream) tetapi dalam bentuk chunks atau sekumpulan bit-bit. Sebuah bit adalah sebuah binary digit, bisa 0 dan 1. Diperlukan 8 buah bit untuk dibentuk menjadi 1 byte. Banyaknya bit yang diproses setiap saat akan menentukan kecepatan computer. Jumlah bit ini disebut sebagai wordlength dari CPU. Sebuah CPU dengan wordlength 64 bit (disebut 64 bit CPU) akan memproses 64 bit data dalam satu machine cycle.

2. Bus width

Data dipindahkan dari CPU ke komponen komponen system yang lain melalui jalur bus, yaitu jalur kawat yang saling menghubungkan komponen – komponen system computer. Jumlah bit yang dapat ditransfer bus lines setiap satu saat disebut sebagai bus width. Misalnya sebuah bus line dengan lebar 64 bit akan dapat mentransfer 64 bit data pada satu saat. Contoh bus seperti ini adalah PCI / MCA adapter. Tetapi computer modern masa kini menggunakan model PCI adapter.

3. Miniaturisasi

CPU merupakan cetakan rangkaian digital diatas silicon wafer atau chips, masing – masing tidak lebih besar dari ujung penghapus pensil. On atau off digital switching didalam CPU dilakukan dengan cara mengalirkan arus melalui satu media (biasanya silicon) dari titik A ke titik B. kecepatan aliran arus tadi dapat ditingkatkan dengan cara memperkecil jarak, atau dengan cara memperkecil resistansi antara titik – titik tadi. Cara demikian akan menghasilkan chip yang lebih kecil dengan rangkaian yang lebih padat dan lebih cepat.

4. Pengganti Silicon

Cara lain untuk meningkatkan kecepatan CPU adalah dengan mengganti silicon dengan material lain yang dapat menghantarkan arus lebih cepat. Alternative yang telah ditemukan antara lain adalah GaAs (gallium Arsenide) dan chopper (tembaga) yang memiliki kecepatan yang tinggi dan konsumsi daya yang lebih rendah. Mengapa diperlukan material yang lebih baik dari silicon? karena silicon akan menghantar setelah dilakukan setengah pemanasan dan ini membutuhkan daya yang cukup signifikan.

5. Perubahan arsitektur CPU

RISC menawarkan peningkatan kecepatan yang signifikan dengan cara membuang sebagian besar instruksi yang jarang dipakai dan meningkatkan kemampuan instruksi yang tersisa. System yang dibangun menggunakan chip RISC tidak saja memiliki potensi untuk lebih cepat tetapi juga akan lebih murah dan lebih andal karena instruksi microcode yang ada didalamnya lebih sederhana. Disamping itu chip RISC akan berukuran jauh lebih kecil dan dapat bekerja dengan clock speed yang jauh lebih tinggi dibandingkan dengan chip arsitektur lain.

6. Konfigurasi parallel multiprosessor

Dengan menggunakan operating system yang sanggup membagi, memonitor, serta mengatur banyak pekerjaan pada saat yang sama dapat dibuat sebuah computer dengan beberapa prosessor didalamnya. Sebuah computer lima prosesor dengan satu masalah dapat dipecah menjadi 5 bagian. Masing masing bagian diselesaikan oleh prosessor yang terpisah. Hasil dari masing – masing prosesor kemudian saling digabungkan menjadi hasil akhir.

7. konfigurasi parallel multi threading

Saat ini pseries telah menerapkan konsep multithreading. Sebagai contoh, untuk satu instruksi aplikasi yang dieksekusi oleh system hingga selesai, sebenarnya terdiri dari puluhan hingga ratusan urutan kerja. Sebelum adanya multi threading setiap satu urutan kerja akan dilakukan satu persatu oleh processor (sequence), tetapi setelah adanya metode ini setiap thread (urutan proses), dapat dilakukan secara serentak, bahkan oleh processor yang berbeda sekalipun (multiprocessor).

1. Definisi

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


Tujuan utama dari arsitektur CISC adalah melaksanakan suatu instruksi cukup dengan beberapa baris bahasa mesin yang relatif pendek sehingga implikasinya hanya sedikit saja RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut. Arsitektur CISC menekankan pada perangkat keras karena filosofi dari arsitektur CISC yaitu bagaimana memindahkan kerumitan perangkat lunak ke dalam perangkat keras.


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.


Contoh-contoh prosesor CISC adalah : System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.


b. RISC

RISC, yang jika diterjemahkan berarti "Komputasi Kumpulan Instruksi yang Disederhanakan", merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vektor. Selain digunakan dalam komputer vektor, desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00 dari MIPS Corporation, PowerPC danArsitektur POWER dari International Business Machine. Selain itu, RISC juga umum dipakai pada Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel XScale), SPARCdan UltraSPARC dari Sun Microsystems, serta PA-RISC dari Hewlett-Packard.


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.


2. Ciri-ciri

a. CISC

1. Jumlah instruksi banyak
2. Banyak terdapat perintah bahasa mesin
3. Instruksi lebih kompleks

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

3. Karakteristik

a. CISC

1. Sarat informasi 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.
2. 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.

b. RISC

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.

4. Perbedaan

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).
Perkalian Dua Bilangan dalam Memori





Pada bagian kiri terlihat sebuah struktur memori (yang disederhanakan) suatu komputer secara umum. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1 (baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data-data yang sudah disimpan ke dalam salah satu dari 6 register (A, B, C, D, E atau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu disimpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi ke lokasi 2:3.
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.
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.

CISC
RISC

Penekanan pada
perangkat keras
Penekanan pada
perangkat lunak

Termasuk instruksi
kompleks multi-clock
Single-clock, hanya
sejumlah kecil instruksi

Memori-ke-memori:
“LOAD” dan “STORE”
saling bekerjasama
Register ke register:
“LOAD” dan “STORE”
adalah instruksi2 terpisah

Ukuran kode kecil,
kecepatan rendah
Ukuran kode besar,
kecepatan (relatif) tinggi

Transistor digunakan untuk
menyimpan instruksi2
kompleks
Transistor banyak dipakai
untuk register memori

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


5. Kelemahan Kelebihan

a. CISC
1. Kelemahan
a. Kompleksitas CPU : desain unit kontrol menjadi kompleks karena mempunyai set intruksi yang besar.
b. Ukuran Sistem dan Biaya : mempunyai banyak sirkuit hardware menyebabkan CPU menjadi kompleks. Hal ini meningkatkan biaya hardware pada sistem dan juga kebutuhan daya listrik.
c. Kecepatan Clock : karena sirkuit yang besar maka propagation delay ( tunda propagasi ) lebih besar dan karena waktu siklus CPU yang besar sehingga kecepatan clock efektif menurun.
d. Keandalan : dengan hardware yang besar maka cenderung mudah terjadi kegagalan.
e. Mantainability : Troubleshooting dan pendeteksian suatu kegagalan mengakibatkan pekerjaan menjadi besar karena besarnya sirkuit yang ada. Penemuan microprogramming membantu menurunkan beban tersebut.
2. Kelebihan
b. RISC
1. Kelemahan
Kelemahan utama dari RISC ialah humlah intruksi yang sedikit. Hal ini mengakibatkan untuk melakukan suatu tugas akan dibutuhkan instruksi yang lebih banyak bila dibandingkan CISC. Hasilnya ialah jumlah ukuran program akan lebih besar bila dibandingkan CISC. Penggunaan memori akan semakin meningkat dan lalu lintas instruksi antara CPU dan memori akan meningkat pula.
2. Kelebihan
a. 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.
b. 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.
c. 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.
d. Penggunaan mode pengalamatan dan format instruksi yang lebih sederhana.
Thanks to:

http://id.wikipedia.org/wiki/RISC
http://id.wikipedia.org/wiki/CISC
http://willyriyadi.blogspot.com/2010/02/definisi-dan-perbedaan-arsitektur-cisc.html
http://putriadia.wordpress.com/2011/07/12/perbedaan-cisc-dan-risc/
http://gigihsoak.wordpress.com/2010/05/28/risc-dan-cisc/
http://agfi.staff.ugm.ac.id/blog/index.php/2008/12/risc-vs-cisc/

0 komentar:

Posting Komentar