Ditinjau dari jenis set instruksinya, ada 2 jenis arsitektur komputer, yaitu:
11. Arsitektur komputer dengan kumpulan perintah yang 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.
1 RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam penyusunan
kompiler yang pada akhirnya dapat memaksimumkan kinerja program yang ditulis
dalam bahasa tingkat tinggi.
Hal ini menentukan fungsi-fungsi yang akan dilakukan oleh CPU dan interaksinya
dengan memori.
1 Operand-operand yang digunakan:
IBM
IBM VAX Intel Motorola MIPS
RS/System Intel 80960
370/168 11/780 80486 88000 R4000
6000
Tahun dibuat 1973 1978 7989 1988 7991 1 1989
990
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.
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.
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 PIC16C54s
adalah mikrokontroler DIP 18 pin.
Sekarang kita akan membandingkan lamanya eksekusi program persamaan
y=ax2 + bx + c dengan memperlihatkan proses-proses yang terjadi didalamnya.
Dibawah ini akan ditampilkan program dengan intruksi RISC dan CISC:
Program CISC dengan 80C51:
MOV A, VAR_a IF De DF E
MOV B, VAR_x IF De DF E
MUL AB IF De E
MOV B, VAR_x IF De DF E
MUL AB IF De E
MOV R0, A IF De E
MOV A, VAR_b IF De DF E
MOV B, VAR_x IF De DF E
MUL AB IF De E
ADD A, R0 IF De E
ADD A, VAR_c IF De DF E
MOV VAR_y, A IF De E S
*) Program diatas diasumsikan nilai y-nya tidak akan lebih dari 1 byte.
Dari hasil diatas dapat dilihat bahwa walaupun program dengan instruksi
RISC lebih panjang daripada program dengan instruksi CISC. Namun lama waktu
yang dibutuhkan RISC untuk menjalankan program dan mendapatkan hasil akhir
yang diinginkan, jauh lebih singkat dibandingkan dengan CISC. Dengan begitu,
terbukti sudah bahwa prosesor RISC mampu beroperasi lebih cepat
dibandingkan dengan prosesor CISC.
b. Ceritakan pula usaha tersebut dalam arsitektur VLIW dan EPIC, buatlah pula
perbandingannya!
Arsitektur EPIC memungkinkan processor mengeksekusi beberapa instruksi pada
setiap clock cycle. EPIC mengimplementasikan arsiteksur VLIW, dimana sebuah
word instruksi memuat beberapa instruksi. Dengan EPIC, compiler dapat
menentukan instruksi-instruksi yang dapat dieksekusi pada waktu yang bersamaan,
sehingga mciroprecessor dapat mengeksekusi instruksi tanpa melibatkan
mekanisme yang rumit untuk menentukan instruksi-instruksi yang dieksekusi secara
paralel. Pendekatan ini memiliki dua tujuan, yaitu memungkinkan pemeriksaan kode
yang mendalam untuk mengidentifikasi kemungkinan tambahan untuk eksekusi
paralel dan menyederhanakan rancangan prosesor serta mengurangi konsumsi daya
dengan menghilangkan runtime scheduling circuitry.
Memproses instruksi secara paralel melibatkan tiga tugas utama, yaitu:
1. Memeriksa keergantungan (dependency) diantara instruksi untuk mengumpulkan
(grouping) instruksi-instruksi yang dapat dieksekusi secara parallel
2. Memberikan instruksi pada unit fungsional dari perangkat keras
3. Menentukan waktu inisiasi instruksi
Empat kelas dari arsitektur ILP (Instruction Level Parallelism) yang melaksanakan
tiga tugas utama untuk memproses instruksi secara paralel dengan menggunakan
perangkat keras atau perangkat lunak disajikan dalam tabel sebagai berikut:
Adalah sistem manajemen pada sistem operasi dalam mengatur program yang
sedang berjalan. Program yang berjalan harus dimuat di memori utama. Kendala
yang terjadi apabila suatu program lebih besar dibandingkan dengan memori
utama yang tersedia.
Untuk mengatasi hal tersebut Sistem Paging mempunyai 2 solusi, yaitu:
- Konsep Overlay
Dimana program yang dijalankan dipecah menjadi beberapa bagian yang dapat
dimuat memori (overlay). Overlay yang belum diperlukan pada saat program
berjalan (tidak sedang di eksekusi) disimpan di disk, dimana nantinya overlay
tersebut akan dimuat ke memori begitu diperlukan dalam eksekusinya.
Gagasan Memori Maya adalah ukuran gabungan program, data dan stack
melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan
bagian-bagian proses yang sedang digunakan di memori utama dan sisanya di
disk. Begitu bagian di disk diperlukan maka bagian memori yang tidak
diperlukan disingkirkan dan diganti bagian disk yang diperlukan.
b. Seperti soal tersebut untuk PIPELINE/PIPELINING
Teknik yang populer dalam meningkatkan kecepatan CPU. merupakan suatu
saluran untuk mengalirkan instruksi ke CPU seperti pada tahapan fetch, decode,
execute, store dan hal lainnya. Pada prosesor yang menggunakan pipeline ini,
setiap tahapan dari pipeline dilaksanakan berdasarkan clock cycle yang dimiliki
oleh prosesor tersebut.
Teknologi pipeline yang digunakan pada komputer bertujuan untuk meningkatkan
kinerja dari komputer. Secara sederhana, pipeline adalah suatu cara yang digunakan
untuk melakukan sejumlah kerja secara bersamaan tetapi dalam tahap yang berbeda
yang dialirkan secara kontiniu pada unit pemrosesan. Dengan cara ini, maka unit
pemroses selalu bekerja.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer.
Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang
rendah, seperti pada instruksi yang dijalankan oleh microprocessor.
Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah
arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak
menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini.
Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan
sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam
microprocessor yang menggunakan teknik pipeline, ketika satu instruksi sedangkan
diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang
bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap
proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah
instruksi.
Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah.
Ketika instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk
diproses pada langkah 1 instruksi tersebut. Begitu seterusnya, ketika instruksi pertama
masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi ketiga masuk ke
langkah 1.
Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan
dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat
dilakukan secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan
akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor
yang tidak menggunakan pipeline, apabila tahapan yang ada dalam satu kali
pemrosesan instruksi adalah K tahap.
Teknik pipeline ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga
ketika diterapkan dapat berjalan dengan baik. Tiga kesulitan yang sering dihadapi
ketika menggunakan teknik pipeline ini adalah : Terjadinya penggunaan resource yang
bersamaan, Ketergantungan terhadap data, Pengaturan Jump ke suatu lokasi memori.
Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi
tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya
pengaturan yang tepat agar proses tetap berjalan dengan benar. Sedangkan
ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan
memerlukan data dari instruksi yang sebelumnya. Kasus Jump, juga perlu perhatian,
karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori
tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang
berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan
terjadinya perubahan program counter.
Dengan menerapkan teknik pipeline ini, akan ditemukan sejumlah perhatian yang
khusus terhadap beberapa hal di atas, tetapi tetap akan menghasilkan peningkatan
yang berarti dalam kinerja microprocessor. Ada kasus tertentu yang memang sangat
tepat bila memanfaatkan pipeline ini, dan juga ada kasus lain yang mungkin tidak
tepat bila menggunakan teknologi pipeline.
5. CACHE
a. Ceritakan bagaimana CACHE dapat membantu meningkatkan
kinerja/performance komputer
Cache: Agar Kecepatan Komputer Optimal
Perbedaan kecepatan harddisk, Random Access Memory (RAM), dan prosesor bisa
mengakibatkan bottle neck. Akibat lebih lanjut, kinerja komputer tidak maksimal.
Makanya dibutuhkan cache.
Ketika sebuah aplikasi dijalankan oleh sebuah komputer, beberapa bagian dari aplikasi
ditempatkan di memori. Kemudian, sebagian isi RAM dimasukkan ke L2 cache.
Selanjutnya, beberapa bagian isi memori L2 cache dioper ke L1 cache. Kenapa oper-
operan begitu?
Begini ceritanya Di antara harddisk, RAM, dan prosesor, harddisk memiliki kecepatan
yang paling lambat. Kalau tiap kali prosesor harus mengakses harddisk untuk
mengambil data, kinerja komputer akan buruk. Bottle neck pasti terjadi. Yang terasa,
komputer lambat merespon input. Oleh karena itu, ada RAM yang menyimpan
beberapa isi harddisk yang sering diakses prosesor.
Prosesor mengakses RAM dengan waktu rata-rata 60 nanodetik alias 60 x 109 detik.
Waktu yang demikian masih dirasa kurang cepat, sehingga masih bisa mengakibatkan
bottle neck. Pasalnya, waktu cycle prosesor bisa mencapai 2 nanodetik. Makanya
prosesor memiliki cache lagi. Prosesor yang ada di jaman sekarang ini rata-rata
memiliki 2 cache; yang tadi telah disebut, yaitu L1 cache dan L2 cache.
Jaman dulu, prosesor Intel Celeron tidak memiliki cache. Prosesor-prosesor Intel
Celeron yang dikeluarkan terakhir memiliki cache walau dengan ukuran yang tidak
sebesar prosesor Intel Pentium dengan clock yang sama. Kurang lebih ukuran L2 cache
hanya separuh prosesor Intel Pentium.
L2 cache menyimpan sebagian data, yang sering digunakan prosesor, dari RAM. Waktu
prosesor mengakses L2 cache ini kira-kira 2-3 kali lebih cepat dibandingkan waktu
yang dibutuhkan prosesor mengakses RAM, yaitu sekitar 20-30 nanodetik. Bahkan L1
cache yang menyimpan sebagian isi L2 cache memiliki kecepatan yang setara dengan
kecepatan mikroprosesor, kurang lebih 10 nanodetik. L1 cache ini adalah cache yang
paling dekat dengan prosesor.
Cache memang bisa berlapis. Cache yang paling jauh dengan komputer, biasanya
berukuran lebih besar, namun kecepatannya lebih lambat. Lihat saja, harddisk, yang
juga bisa bertindak sebagai cache, ukurannya bisa mencapai satuan gigabyte. Ukuran
RAM bisa dalam hitungan ratusan megabyte. Ukuran cache pada prasesor lebih
rendah. Ukuran terbesar untuk cache ini adalah L3 cache yang mencapai 2MB, milik
prosesor-prosesor berseri Intel Pentium 4 Extreme Edition.
Lho ada L3 cache? Cache memang bisa dibuat di mana saja, terserah pemilik produk.
Harddisk pun memiliki cache yang rata-rata berukuran 512KB. Prosesor tidak
mengakses cache milik harddisk ini. Cuma kontroler harddisk yang mengaksesnya.
Nah, begitulah kira-kira alasan cache dibutuhkan untuk mencapai kerja komputer yang
optimal. Sebenarnya mungkin saja semua bekerja dalam kecepatan mikroprosesor,
namun harga hardware akan menjadi sangat tinggi.
RAM (Random Access Memory) itu tempat menyimpan dan mengolah data.
Biasa digunakan sebagai "Working Storage", tempat dimana komputer
menjalankan program. Disini program/data dapat ditulis, dibaca, dan dihapus
dari RAM, dan saat komputer dimatikan maka isi dari RAM tersebut akan hilang.
ROM (Read Only Memory) adalah "Storage Memory" yang berisi data/program
yang ditulis oleh pabriknya, dimana komputer/user hanya bisa membaca saja,
tidak bisa menulisi maupun menghapus. Biasanya ini berisi data-data
konfigurasi awal yang diperlukan saat menyalakan komputer. Data yang
terkandung didalam ROM tidak akan hilang saat komputer dimatikan.
Cache adalah nama suatu Memory yang jauh lebih cepat daripada RAM biasa.
Gunanya adalah menyimpan data-data yang sering digunakan/dibaca, sehingga
saat komputer membutuhkan data-data tersebut tidak perlu mencari di RAM tapi
langsung diambil dari Cache. Jadi (misalnya) komputer kalau mengambil data
dari RAM itu membutuhkan waktu 10 ms, apabila data yang sama itu ingin
diambil/digunakan lagi cukup ambil dari Cache RAM yang bisa di akses dalam
waktu 1ms. Memang waktu yang dihemat tidak terlalu besar (hanya hitungan
ms, milidetik), namun apabila ada jutaan proses yang dilakukan, hasilnya akan
terasa.
Seperti disebutkan, Cache itu sebenarnya hanya nama fungsi saja, sedangkan
nama komponen nya biasanya dalam bentuk SRAM (Static Random Access
Memory).
Juga sama dengan nama 'RAM' yang disebutkan diatas, nama komponen nya
biasa dikenal juga sebagai DRAM (Dynamic Random Access Memory).
Beda DRAM dan SRAM secara teknis adalah, saat digunakan DRAM
membutuhkan 'refresh' sementara SRAM tidak perlu. Oleh sebab itu, SRAM jauh
lebih cepat aksesnya daripada DRAM, namun juga jadinya lebih mahal.
Untuk ROM, selain yang isinya ditulis dari pabrik, ada juga yang bisa ditulis oleh
user.
PROM (Programmable ROM) itu awalnya kosong dan bisa ditulisi, namun setelah
diisi data ia berubah menjadi ROM. Jadi disini pemakaiannya mirip dengan CD-R,
dimana chip hanya bisa ditulis satu kali saja.
EPROM (Erasable PROM) itu sama seperti PROM, namun kalau diperlukan bisa
dihapus ulang. Cara menghapusnya adalah menggunakan UltraViolet. Cukup
sinari lubang chip nya dengan sinar UV yang kuat selama 10 menit, maka isi dari
PROM tadi akan hilang.
EEPROM (Electronically Erasable PROM) itu mirip dengan EPROM, namun
menghapusnya cukup menggunakan software penghapus. Jadi ini pemakaiannya
mirip dengan CD-RW, dimana apabila diperlukan, isi dari PROM nya bisa di
'format' dulu dan ditulis ulang.
RAM, ROM, dan Cache RAM semuanya terletak di Motherboard komputer. Khusus
untuk Cache RAM, pada teknologi masa kini lokasinya sering dimasukkan
didalam chip CPU (otak dari komputer) sehingga waktu akses nya jauh lebih
cepat. Namun pada teknologi yang lalu, Cache RAM juga masih berbentuk chip
memory yang diletakkan di motherboard juga.
b. Pada masa kini Cache disusun bertingkat, jelaskan tentang hal ini !
Cache memang bertingkat-tingkat. Makin jauh dari prosesor rata-rata ukurannya
makin besar, namun kecepatannya makin menurun. Sama halnya harddisk yang
juga bisa bertindak sebagai cache, jauh dari prosesor, dan ukurannya bisa
mencapai satuan gigabyte. Kecepatannyapun tergolong lambat. Saat ini Intel
telah mengeluarkan prosesor generasi baru dengan nama Pentium 4 Extreme
Edition. Untuk meningkatkan kinerjanya, prosesor generasi ini sudah dilengkapi
L3 cache yang ukurannya sudah mencapai 2MB.