Escolar Documentos
Profissional Documentos
Cultura Documentos
FMIPA UNNES
ARSITEKTUR
KOMPUTER
ii
Much Aziz Muslim
Budi Prasetiyo
iii
ARSITEKTUR KOMPUTER
Edisi Pertama
Cetakan Pertama, 2015
FMIPA UNNES
Kampus Sekaran Gunungpati Semarang
Telp. : (024) 8508112
Fax : (024) 8508112
Email : mipa@unnes. ac. id
ISBN : 978-602-10-3409-5
1. Komputer I. Judul
iv
KATA PENGANTAR
P
uji syukur penulis panjatkan ke hadirat Allah SWT, karena
berkat rahmat-Nya penulis bisa menyelesaikan buku yang
berjudul Arsitektur Komputer. Buku ini ditujukan bagi siapapun
yang ingin mempelajari tentang arsitektur komputer dan seluk beluknya.
v
vi
DAFTAR ISI
KATA PENGANTAR iii
DAFTAR ISI v
vii
BAB 6 DESAIN SISTEM MEMORI 83
HIRARKI MEMORI 84
viii
BAB 11 MULTIPROCESSOR 169
PENGERTIAN MULTIPROCESSOR 169
JENIS - JENIS MULTIPROCESSING 171
INTERKONEKSI JARINGAN 178
KEUNGGULAN MULTIPROCESSOR 181
Parallel Processing 182
ix
x
BAB 1
PENGENALAN
SISTEM
KOMPUTER
2
dipahat dan sekarang disebut Napier Bones (tulang-
tulang Napier).
4
kertas yang kemudian mengganggu pembacaan
lubang di pita kertas, dan sejak itu kata “bug” menjadi
istilah untuk terjadinya suatu kesalahan semenjak
tahun 1988.
5
perkabelan yang dibuat Eckert dan dihilangkannya
bagian bergerak yang dulunya menjadi penggerak
tabung menjadikan ENIAC berjalan lebih cepat,
perkalian di Mark I memerlukan waktu 6 detik,
sedangkan di ENIAC hanya membutuhkan waktu 1/
2,8 ribu detik. Memprogram ulang ENIAC berarti
mengubah desain dan sirkuit-sirkuit yang ada di
ENIAC yang tentunya akan memakan waktu selama
berhari-hari, oleh karena itu Eckert dan Maucly
bekerja sama dengan matematikawan John Von
Neumann untuk mendesain ulang ENIAC yang
bernama EDVAC. EDVAC di publikasikan pada tahun
1947. Dirancang untuk memenuhi kebutuhan di
laboratorium balistik milik departemen pertahanan
amerika serikat. Aplikasi yang dapat di hasilkan
adalah perhitungan besar sudut rudal, sehingga rudal
tepat mengenai sasaran.
8
detik). Anehnya, Busicom bangkrut dan tidak pernah
menggunakan mikroprosesor yang menghebohkan ini.
Intel melanjutkan 4004 dengan 8008 dan 8080.
Intel menjual uP 8080 dengan kemampuan dua kali
dari 4004. 8080 pertama kali dipasang di
komputer MITS Altair, yang menjadi komputer
personal (PC) pertama di dunia. Itu memang menjadi
betul-betul personal karena harus merakitnya sendiri.
Akhirnya penciptaan microprocessor melahirkan
evolusi dari microcomputer, dimana bentuk yang
kemudian menjadi komputer pribadi atau personal
komputer seperti yang kita gunakan sekarang ini.
9
yang memuat rangkaian yang mengkoordinasikan
berbagai aktivitas mesin.
Untuk menyimpan informasi secara sementara,
CPU berisi sel-sel atau register, yang mirip dengan sel
–sel memori utama. Register-register ini dapat
dikelompokkan sebagai register serbaguna (general
purpose register) atau register khusus ( special
purpose register).
Register serbaguna berperan sebagai tempat
penyimpanan data sementara bagi data yang sedang
dimanipulasi oleh CPU. Register- register ini
menampung input yang akan diberikan kepada unit
aritmatika/logika dan menyediakan ruang
penyimpanan bagi hasil-hasil operasi unit tersebut.
Untuk melaksanakan operasi pada data yang
tersimpan dalam memori utama, adalah menjadi
tanggung jawab unit control untuk memindahkan data
dari memori ke register serbaguna, untuk
memberitahukan kepada unit aritmatika/logika
register –register mana saja yang berisi data, untuk
mengaktifkan rangkaian-rangkaian yang sesuai di
dalam unit aritmatika/ logika, dan untuk
menginformasikan kepada unit aritmatika/logika
register mana yang harus menerima hasil operasi
data.
Untuk tujuan pemindahan pola –pola bit, CPU
dan memori mesin utama mesin komputer
10
disambungkan pada sekumpulan jalur data elektronis
yang disebut bus. Melalui bus ini, CPU dapat
mengambil, atau membaca data dari memori utama
dengan jalan memberikan alamat sel memori yang
relevan dengan sebuah sinyal baca. Dengan cara yang
sama, CPU dapat meletakkan, atau menulis data ke
memori utama dengan mengirimkan alamat sel yang
dituju dan data yang akan disimpan beserta sebuah
sinyal tulis.
Komputer–komputer awal tidak memiliki
fleksibilitas yang tinggi, langkah–langkah operasi
dilaksanakan oleh masing– masing perangkat dalam
komputer dibuat menyatu secara permanen di dalam
unit control sebagai bagian dari mesin. Sistem
semacam ini dapat dianalogikan dengan sebuah
kotak musik yang selalu memainkan lagu yang sama,
sementara yang dibutuhkan adalah fleksibilitas
sebuah CD changer. Untuk memperoleh
fleksibilitasyang lebih tinggi, beberapa elektronik
awal dirancang sedemikian rupa sehingga unit
kontrolnya dapat dengan mudah dilepas sambungkan.
Fleksibilitas ini diperoleh dengan menerapkan sistem
peg-board yang mirip dengan papan switching telepon
lama, dimana ujung - ujung kawat jumper ditancapkan
ke dalam lubang-lubang.
Sebuah trobosan (dinisabahkan, secara tidak
tepat kepada John Von Neumann) muncul dari
11
gagasan bahwa suatu program, sebagaimana halnya
data, dapat dikodekan dan dapat disimpan dalam
memori utama. Apabila unit kontrol dapat di rancang
untuk mengambil program dari memori,
menerjemahkan intruksi-intruksi, dan
mengeksekusinya, sebuah program komputer dapat
diubah-ubah dengan hanya mengubah isi memori
ketimbang harus melepas-sambungkan unit kontrol.
12
penambahan fitur-fitur lainnya tidak akan
meningkatkan kemampuan teoritis mesin tersebut.
Dengan kata lain, diluar batasan-batasan tertentu,
fitur-fitur tambahan dapat meningkatkan kenyamanan
dan kemudahan bagi pengguna tetetapi sama sekali
tidak menambahkan sesuatu apapun kepada
kemampuan dasar mesin.
Kemudian lahirlah dua pendekatan pada
perencanaan desain CPU. Pendekatan pertama
menyatakan bahwa CPU harus dirancang untuk
mengeksekusi set intruksi mesin seminimal mungkin.
Pendekatan ini menghasilkan apa yang disebut
sebagai:
reduced intruction set computer (komputer dengan
set intruksi yang tereduksi ) (RISC)) atau "Komputasi
set instruksi yang disederhanakan". RISC 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 pada
University of California di Berkely.
13
RISC 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 dan
Arsitektur POWER dari International Business
Machine.
Ciri-ciri:
Ciri-ciri
15
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.
17
1.5. Aritmatika / logika
1.6. Kontrol
18
1.7. Perkembangan Teknologi Informasi
20
1.8. Dampak Perkembangan Teknologi
Informasi
21
Dampak Negatif Perkembangan Teknologi Informasi:
22
mendeteksi keberadaan manusia yang ada di
dekatnya.
Gambar . 1
24
Gambar . 2
Gambar . 3
26
Hal inilah yang baru saja dilakukan oleh para
peneliti dari University of Rochester Medical
Center. Mereka pun berusaha menciptakan seekor
tikus yang memiliki tingkat kepintaran di atas rata-
rata.
27
itu sendiri misalnya laju detak prosesor atau jumlah
instruksi yang dapat diproses tiap satuan waktu.
Jumlah instruksi yang diproses dalam satuan waktu
tertentu diekspresikan dalam 'satuan' MIPS (millions
instruction per second). Prosesor berarsitektur RISC,
memerlukan lebih banyak instruksi untuk
menjalankan suatu tugas (task) tertentu
dibandingkan dengan prosesor berasitektur CISC.
Dengan ukuran MIPS, prosesor RISC akan bekerja
jauh lebih cepat dibanding prosesor CISC.
28
dukungan terhadap pembakuan benchmark kinerja
komputer.
31
Mengembangkan benchmark tanpa
memperhitungkan laju peningkatan kinerja dapat
diibaratkan mematok harga barang tanpa
memperhitungkan laju inflasi (dan perlu diingat,
'inflasi' kinerja komputer adalah 60% pertahun).
Ketika LINPACK petama kali digunakan, waktu
yang diperlukan dengan matriks 100x100
dikumpulkan dari berbagai sistem komputer yang
ada di berbagai instutusi dan dilaporkan secara
rutin. Pada taraf presisi 32 bit, matriks 100x100
tersebut hanya memerlukan 40. 000 byte memori
dan 670. 000 operasi floating-point.
32
33
BAB 2
ARSITEKTUR SET
INTRUKSI DAN DESAIN
34
Alamat 0
Alamat 1
N Kata
Alamat N-1
36
kata yang alamatnya di MAR adalah untuk dibaca
ke dalam MDR .
3. Setelah beberapa waktu, sesuai dengan
keterlambatan memori dalam membaca kata
tertentu, kata yang diperlukan akan dimuat oleh
memori ke dalam MDR siap digunakan oleh CPU.
Tiga langkah dasar yang diperlukan untuk
melakukan memori membaca operasi:
1. Alamat lokasi dari kata yang akan dibaca
dimuat ke dalam MAR
2. Sebuah sinyal, disebut membaca,
dikeluarkan oleh CPU yang menunjukkan bahwa
kata yang alamatnya di MAR adalah untuk dibaca
ke dalam MDR .
3. Setelah beberapa waktu, sesuai dengan
keterlambatan memori dalam membaca kata
tertentu, kata yang diperlukan akan dimuat oleh
memori ke dalam MDR siap digunakan oleh CPU.
Teknik Pengalamatan
Mode pengalamatan adalah bagaimana cara
menunjuk dan mengalamati suatu lokasi memori pada
sebuah alamat di mana operand akan diambil. Mode
37
pengalamatan diterapkan pada set instruksi, dimana
pada umumnya instruksi terdiri dari opcode (kode
operasi) dan alamat. Setiap mode pengalamatan
memberikan fleksibilitas khusus yang sangat penting.
Bila alamat dalam memori diberikan pada suatu
kata instruksi, teknik yang umum adalah memberi
alamat memori dalam bentuk biner. Cara ini biasa
disebut dengan istilah pengalamatan langsung.
Namun tak selamanya yang digunakan adalah
cara ini, walaupun cara ini merupakan cara yang
efektif, namun juga mengacu pada:
a. Keinginan untuk memperpendek bagian
alamat
Misalnya saja, jika kita mempunyai komputer
dengan memori 256K, 18 bit akan diperlukan
untuk asing-masing alamat langsung dan teknik
pengalamatan dipakai untuk mereduksi banyak
bit yang dipakai.
b. Kemudahan bagi pemrogram
Terdapat beberapa teknik pengalamatan
yang menyediakan kemudahan pada pemrogram
kerik menuliskan program.
c. Fasilitas sistem operasi
38
Dalam hampir semua komputer besar bisa
mempunyai beberapa program yang berbeda
dalam memorinya pada satu saat tertentu dan
akan bergantianmenjalankan program-program
tertentu.
39
karena harga yang didapat bisa dari lokasi memori
yang mungkin variabel.
40
Bukan operand yang harus dipakai, tetetapi alamat
operand.
42
3. Pengalamatan Segera (Immediate Addresing)
Mode pengalamatan immediate addressing
sangat umum dipakai karena harga yang akan
disimpan dalam memori langsung mengikuti kode
operasi dalam memori. Dengan kata lain, tidak
diperlukan pengambilan harga dari alamat lain untuk
disimpan. Contohnya: MOV A,#20h. Dalam instruksi
tersebut, akumulator akan diisi dengan harga yang
langsung mengikutinya, dalam hal ini 20h. Mode ini
sangatlah cepat karena harga yang dipakai langsung
tersedia.
43
Menghemat siklus instruksi sehingga
proses keseluruhan akan cepat.
Kekurangan
Ukuran bilangan ddibatasi oleh ukuran
field alamat.
44
4. Pengalamatan Register Addressing
Register merupakan sebagian memori dari mikro
processor yang dapat diakses dengan kecepatan
tinggi. Metode pengalamatan register ini mirip dengan
mode pengalamatan langsung. Perbedaannya terletak
pada field alamat yang mengacu pada register, bukan
pada memori utama.
45
Mode pengalamatan Register Tak Langsung
6. Pengalamatan Relatif
Pengalamatan relatif sangat serupa dengan
penghalaman, kecuali alamat yang yang diacu adalah
relatif terhadap kata instruksi. Pada umumnya bila
pengalamatan relatif dipakai, bagian alamat kata
instruksi menghasilkan bilangan yang harus
ditambahkan pada alamat yang mengikuti kata
instruksi. Jadi dalam pengalamatan relatif, bagian
alamat berisi perpindahan dari lokasi kata instruksi
dalam memori. Dengan memberikan hanya
perpindahannya mereduksi banyaknya bit alamat
tetetapi hanya sebagian dari memori yang siap
dipakai.
46
Misalnya
jika kata instruksi memakai pengalamatan relatif
dan bagian alamat berisi 8 bit, maka hanya 256 lokasi
memori yang tersedia untuk instruksi yang diberikan.
7. Pengalamatan Berindeks
Terdapat suatu variasi pada pengalamatan
memori langsung yang konvensional yang bisa
memudahkan pemrograman, khususnya pemrograman
sederetan instruksi yang harus diulangi pada
sekumpulan data yang terdistribusi ke seluruh mesin.
Teknik ini disebut pengindeksan.
Pengindeksan mula-mula dipakai dalam satu
komputer yang dikembangkan di Universitas
Manchester (Amerika Serikat). Register yang diberi
nama kotak B ditambahkan pada bagian kendali. Isi
kotak B dapat ditambahkan pada isi register alamat
memori bila diperlukan. Bila kotak B dipakai, alamat
operand yang terletak dalam memori akan ada pada
alamat yang dituliskan oleh pemrograman isi plus
kotak B. Istilah orang Amerika untuk kotak B ini
adalah register indeks, dan istilah ini akan kita
gunakan. Register indeks sangat berguna sehingga
47
komputer-komputer masing-masing menyediakan
beberapa register seperti itu.
Pemakaian register indeks memudahkan
penulisan program yang memproses data dalam tabel-
tabel, mereduksi banyaknya instruksi yang diperlukan
dalam program interaktif. Register indeks
memungkinkan modifikasi automatik dari lama yang
diacu tanpa mengubah instruksi yang terseimpan
dalam memori.
Intruksi
Instruksi-instruksi untuk memerintah
pemindahan data dari satu lokasi ke lokasi lainnya.
Proses eksekusi instruksi pemindahan data lebih
menyerupai proses menyalin data tersebut ketimbang
memindahkannya. Salah satu kumpulan instruksi
yang penting dalam kategori transfer data terdiri dari
perintah-perintah untuk berkomunikasi dengan
perangkat-perangkat di luar konteks CPU-memori
utama (printer, keyboard, monitor, disk drive,dsb).
Karena instruksi-instruksi ini menangani aktivitas-
aktivitas input/output (I/O) mesin komputer, instruksi-
instruksi ini disebut instruksi I/O dan kadangkala
48
dipandang sebagai sebuah kategori yang berdiri
sendiri. Oleh karena itu, aktivitas-aktivitas I/O ini
dapat ditangani oleh instruksi-instruksi yang
memerintahkan pemindahan data antara CPU dan
memori utama. Jadi, Kita akan memandang instruksi-
instruksi I/O sebagai bagian dari kelompok transfer
data.
49
Instruksi Aritmetika/ Logika
Kelompok aritmatika/logika terdiri dari instruksi-
instruksi yang memberitahukan kepada unit kontrol
untuk memerintahkan dilaksanakannya suatu
aktivitas dalam unit aritmetika/logika. Sebagaimana
diindikasikan oleh namanya, unit aritmatika/logika
mampu melaksanakan berbagai operasi di luar
operasi-operasi aritmatika dasar. Beberapa diantara
operasi-operasi tambahan ini adalah operasi-operasi
logika AND, OR, dan XOR. Operasi-operasi ini
seringkali digunakan untuk memanipulasi bit-bit
tunggal dalam sebuah register serbaguna tanpa
mengganggu bagian lain dari register tersebut.
51
4. SHIFT merupakan operand menggeser ke
kiri atau kanan menyebabkan Konstanta pada
ujung bit.
5. ROTATE merupakan operand menggeser
ke kiri atau ke kanan dengan ujung yang terjalin.
Operasi-operasi yang berada dalam kelas operasi
rotasi dan shift menyediakan sarana untuk
menggerakan bit-bit dalam suatu register dan
seringkali digunakan untuk menyelesaikan masalah-
masalah yang berkaitan dengan tempat kedudukan.
Operasi-operasi ini dikelompokan menurut arah
pergerakan bit-bitnya (kanan atau kiri) dan sesuai
dengan apakah pergerakan tersebut bersifat sirkular
(melingkar atau memutar) atau tidak. Apabila kita
memiliki sebuah byte yang tentunya terdiri dari
delapan bit dan menggeser bit-bit tersebut satu
langkah ke kanan atau kiri, kita dapat membayangkan
bahwa bit yang berada pada posisi paling ujung akan
terjatuh dari tepi ujung byte dan sebuah tempat
kosong akan muncul di ujung sebaliknya. Perlakuan
yang diberikan terhadap bit yang jatuh dan tempat
kosong ini merupakan ciri yang membedakan satu
operasi geser dengan operasi geser lainnya. Salah
52
satu teknik yang diterapkan adalah meletakan bit
yang jatuh pada tempat
kosong di ujung yang berlawanan. Hasilnya
adalah sebuah pergeseran sirkular, yang disebut juga
rotasi. Maka jika kita melaksanakan pergeseran
sirkular kekanan pada pola bit berukuran satu byte
sebanyak delapan kali, kita akan mendapatkan pola
bit yang sama dengan awalnya.
Instruksi Sequencing
Instruksi Sequencing merupakan sederetan
instruksi/aksi yang akan dilaksanakan (dieksekusi)
oleh komputer berdasarkan urutan penulisannya.
Instruksi sequence disebut juga sturktur kontrol
algoritma yang paling sederhana. Jika dituliskan
sebuah sequence yang terdiri dari deretan
instruksi/aksi ke 1,2,3,4,. . . . n maka setiap
instruksi/aksi akan dilaksanakan secara berurutan
mulai dari yang ke 1, kemudian ke-2, ke-3,. . . . smapai
dengan ke-n. Dan program paling sederhana tentunya
hanya mengandung satu sequence yang mengandung
satu instruksi saja.
Instruksi Input/Output
53
Fungsinya adalah memindahkan informasi antara
CPU atau memori utama dengan dunia luar. I/O ini
terdiri atas piranti I/O (peripheral), pengendali I/O
(device controller) dan perangkat lunak. Untuk proses
informasi antara CPU dengan sebuah peripheralnya
sendiri yaitu pertama memilih I/O dan mengujinya,
kemudian menginisialisasi transfer dan
mengkoordinasikan pengaturan waktu operasi I/O,
lalu mentransfer informasi, dan menghentikan proses
transfer. Seperti yang sudah diulas di atas juga bahwa
aktivitas-aktivitas input/output (I/O) mesin komputer
juga ditangani oleh instruksi-instruksi yang
memerintahkan pemindahan data antara CPU dan
memori utama. Jadi, Kita akan memandang instruksi-
instruksi I/O sebagai bagian dari kelompok transfer
data.
54
55
BAB 3
ASSEMBLY
LANGUAGE
PROGRAMMING
56
dengan suatu opcode dan dapat diikuti oleh data.
Bahasa mesin sangat rumit apabila diprogram secara
langsung, sehingga dibuat suatu simbol ( mnemonic)
untuk mewakili masing-masing instruksi tersebut
agar lebih mudah diingat dan dan dibaca oleh
manusia.
Bahasa mesin adalah kode biner murni,
sedangkan bahasa assembly adalah pemetaan
langsung dari kode biner ke bentuk simbolis yang
lebih mudah bagi manusia untuk memahami dan
mengelola. Konversi representasi simbolis ke dalam
bahasa mesin dilakukan dengan program khusus yang
disebut assembler. Assembler adalah sebuah program
yang menerima program bahasa simbolik (source) dan
menghasilkan bahasa mesin yang setara (target).
Dalam menerjemahkan program ke kode biner,
assembler akan mengganti alamat simbolis oleh
alamat numerik, menggantikan operasi simbolik kode
dengan kode operasi mesin, penyimpanan cadangan
untuk instruksi dan data, dan menerjemahkan
konstanta ke dalam representasi mesin.
Sebelum mempelajari bahasa assembly
diperlukan pengetahuan tentang prosesor secara
57
rinci. Hal-hal yang perlu diketahui adalah ukuran
memori dan organisasi, prosesor register, format
instruksi, dan seluruh set instruksi. Sebuah prosesor
berbasis akumulator memiliki lima register 16 bit
yaitu:
1. Program Counter (PC),berisi alamat dari
instruksi berikutnya yang akan dieksekusi
2. Instruction Register (IR), berisi bagian
kode opersasi instruksi yang sedang dieksekusi
3. Address Register (AR),berisi alamat
instruksi yang sedang dieksekusi
4. Accumulator (AC), berfungsi sebagai
sumber dan tujuan dari data
5. Data Register (DR), berfungsi sebagai
tempat penyimpanan data.
Prosesor sederhana mendukung tiga jenis
instruksi, yaitu:
1. Data Transfer
Operasi yang terdapat pada transfer data adalah
a. Load, yaitu suatu perintah untuk mengisi
data pada register dari Data Register
b. Store, yaitu suatu perintah untuk
menyimpan data dari register ke Data Register
58
c. Move, yaitu suatu perintah untuk
memindahkan data antara Accumulator Register
dan Data Register
2. Data Processing
Operasi yang terdapat pada pengolahan data
adalah add, subtract, and, dan not.
3. Program Control
Operasi yang terdapat pada program control
adalah jump dan conditional jump.
Bahasa assembly adalah bentuk simbolis dari
bahasa mesin, prosesor memiliki bahasa yang
assembly yang unik dan berbeda sesuai masing-
masing tipe prosesor. Pemrograman bahasa assembly
sering disebut sebagai kategori bahasa pemrograman
tunggal, pada kenyataannya ada berbagai macam
jenis perakitan bahasa perakit. Program assembly
ditulis dengan singkatan pendek yang disebut
mnemonik, yaitu singkatan yang mewakili instruksi
mesin yang sebenarnya. Berbeda dengan bahasa
pemrograman tingkat tinggi, bahasa assembly atau
rakitan biasanya memiliki hubungan satu-satu dengan
instruksi bahasa mesin. Misalnya, tiap mnemonik
yang ditulis di program dengan bahasa rakitan akan
59
diterjemahkan menjadi tepat satu kode operasi yang
dapat dimengerti langsung oleh komputer. Pada
bahasa tingkat tinggi, satu perintah dapat
diterjemahkan menjadi beberapa kode operasi dalam
bahasa mesin. Proses pengubahan bahasa rakitan ke
bahasa mesin dilakukan oleh assembler, dan proses
balikannya dilakukan oleh disassembler.
60
sederhana untuk merujuk pada kode-kode instruksi.
Pemrograman assembly menghasilkan program yang
lebih singkat dan kecepatan eksekusi yang lebih
tinggi. Setiap perakit menggunakan format yang
sedikit berbeda untuk
menterjemahkanmenerjemahkan instruksi kode, data
dan arahan khusus untuk merakit program akhir.
Deklarasi adalah instruksi khusus yang dirancang
untuk memudahkan penulisan sebuah program dalam
bentuk simbolis. Misalnya deklarasi berikut:
ORG $1000
Menetapkan bahwa program akan berada pada
alamat 1000 heksadesimal (awal) pada memori.
Apabila dipakai penentuan awal demikian, program
akan bermukim pada alamat tertentu didalamdi
dalam memori dan disebut Pemrograman Absolut.
Sebaliknya sebuah program yang dapat dimuat di
mana saja dalam memori disebut program yang dapat
ditempattakan kembali.
Untuk menempatkan program yang dapat
ditempatkan kembali dalam memori, alamat simbolis
dalam program harus diubah menjadi alamat
sesungguhnya. Tugas ini dilaksanakan oleh program
61
pemuat (=loader program). Dalam mikroprosesor yang
diterapkan dalam penerapan pengendalian, sebagian
besar program dimuat hanya satu kali ke dalam
memori ROM yang tidak dapat diubah karena itu
program dimuat dalam alamat absolut. Penelusuran
kesalahan program (debugger) untuk mencoba
melaksanakan program harus ada
penetuanpenentuan alamat relatif terhadap awal
program, apabila tidak program tidak dapat dimuat
kembali. Memberikan nama simbolis kepada data
memberikan dua fasilitas terpisah. Data harus
ditentukan format dan isinya. Misalnya:
DATA RMB 1
Deklarasi ini menyediakan 1 byte untuk struktur
data yang disebut data (dalam bahasa asembli 6800)
sama halnya
TABLE RMB 50
Mengalokasikan 50 byte untuk struktur data
yang disebut tabel.
Langkah pertama untuk pemrograman dalam
bahasa assembly adalah menentukan assembler yang
akan digunakan dan format apa yang digunakannya.
Pemrograman bahasa assemblyadalah penulisan
62
instruksi mesin dalam bentuk mnemonik, dimana
setiapinstruksi mesin dalam bentuk biner atau nilai
hex diganti dengan mnemonik. Penggunaan
mnemonik membuat pemrograman pada tingkat
rendah ini lebih mudah dipahami dan lebih mudah
dikelola.
Contoh pemrograman assembly
BEGIN LDAA = $4F \ LOAD ACC A WITH VALUE 4F
BEGIN adalah alamat simbolis
LDAA adalah kode operasi
4F adalah operand
LOAD ACC A WITH VALUE 4Fadalah komentar
Sebuah program assembly terdiri dari urutan
instruksi perakitan, di mana instruksi ditulis baris per
baris. Setiap baris dari program assembly dibagi
menjadi empat bidang berikut:
1. Label
Label digunakan untuk memberikan nama
simbolik untuk alamat memori. Sebuah label
adalahidentifier yang dapat digunakan pada baris
program untuk cabang ke baris berlabel. Labeljuga
dapat digunakan untuk mengakses data
menggunakan nama simbolik. Deklarasi Label adalah
63
mirip dengan deklarasi identifier lain dan diakhiri
dengan karakter titik-dua. Identifier hanya bisa
dibentuk dengan karakter pertama adalah karakter
Alphabet, dan karakter selanjutnya boleh juga
numerik, dan karakter "_" serta "?". Panjang
maksimum label berbeda antara satu bahasa
assembly dengan bahasa yang assembly yang lain.
Beberapa bahasa assembly memungkinkan panjang
label hingga 32 karakter, sedangkan yang lainnya
hanya 6 karakter. Beberapaprosesor memerlukan
simbol titik dua setelah setiap label sementara yang
lainnya tidak. Bagian ini memungkinkan instruksi
mana saja untuk direferensi menggunakan tanda dan
bukan alamat absolut.
2. Operation Code (opcode)
Operation code atau mnemonik merupakan
singkatan simbolis berupa kode numerik yang unik .
Bagian ini secara simbolis menggambarkan instruksi
yang dilaksanakan. Pada contoh diatas LDAA adalah
mnemonik, bagian ini menentukan akumulator A
harus berhubungan dengan isi sebuah lokasi memori.
3. Operand
64
Operand adalah bentuk spesifik dari mnumonic
yang mengisyaratkan tugas tertentu. Bidang operan
terdiri dari informasi tambahan atau data yangopcode
membutuhkan. Bidang operan dapat digunakan untuk
menentukan konstanta, label, data langsung, daftar,
atau alamat.
4. Comment
Komentar menyediakan tempat untuk
menuliskan catatan terkaitdengan apa yang telah
dilakukan untuk tujuan debugging dan pemeliharaan.
Penulisan komentar diawali dengan simbol "/".
Tabel bahasa assembly untuk prosesor
sederhana:
65
O
Mnem
pera Isi Instruksi
onic
nd
Menghentikan
STOP
eksekusi
Memindahkan
LD X operand dari memori (di
lokasi x) ke AC
Menyimpan isi dari
STOP X
AC ke memori
MOVA Menyalin isi AC ke
C DR
MOVA Menyalin isi DR ke
C AC
Menambahkan DR ke
ADD
AC
Mengurangkan DR
SUB
dari AC
AND DR ke AC
66
Kategori instruksi menurut kode operasi
1. Instruksi transfer yang menyangkut alat
ekstern (memori atau I/O)
2. Instruksi transfer antara register (intern
terhadap MPU)
3. Instruksi aritmetika (misal ADD dan SUB)
4. Instruksi Logika (misal OR dan AND)
5. Instruksi tak simetris (seperti ROT dan
SHIFT)
6. Instruksi pengendali
67
akumulator intern 6800) ADR 1 dapat mencari lokasi
memori atau sebuah register serpih I/O. Setiap
instruksi yang mennunjukan alamat memori dapat
digunakan dalam modus pengalamatan mana saja
yang di sediakan mikroprosesor.
Misalnya pada 6800:
LDAA = 44
Memuat akumulator harga 44. Operand dimuat
apa adanya kedalam akumulator dan bukan sebagai
alamat memori.
2. Transfer antar register
Instruksi transfer antar register memanipulasi
data yang intern terhadpa MPU tanpa menunjuk alat
ekstern. Dilaksanakn jauh lebih cepat dari instruksi
yang menunjuk alat ekstern, karena beroperasi intern
dalam MPU.
3. Instruksi aritmetika
Terbatasnya daerah tersedia pada serpih
mikroprosesor untuk mengimpletasi fungsi CPU
instruksi aritmetik biasanya dibatasi pada
penjumlahan, selisih penambahan dan pengurangan,
dan instruksi pendukung, seperti DAA dan manipulasi
pindahan. Idealnya, instruksi aritmetikaharus berisi
68
semua instruksi aritmetika ditambah dengan
perkalian dan pembagian. Fungsi perkalian dan
pembagian disediakan hanyapada mikroprosesor 16-
bit.
4. Instruksi logika
Instruksi logika menyelenggarakan suatu
operasi logika menggunakan ALU. Paling sedikt
empat operasi logika harus disediakan:OR (=atau),
AND (=dan), OR ekslusif (disngkat XOR atau EOR),
NOT (=bukan). Hasil llogika dapat ditunjukan dengan
tabel logika. Dalam tabel logika, 0 mewakili salah dan
1 mewakili benar. Tabel logika untuk masing-masing
operasi sebagai berikut:
OR AND
A B A ˅ A B A
B ˄B
0 0 0 0 0 0
0 1 1 0 1 0
1 0 1 1 0 0
1 1 1 1 1 1
XOR NOT
69
A B A
XOR B A
0 0 0 0 1
0 1 1 1 0
1 0 1
1 1 0
5. Operasitak simetris
Operasi tak simetris adalah pergeseran,
perputaran, dan operasi serupa mengubah tempat bit
didalam sebuah register. Operasi taksimetris perlu
untuk melakukan instruksi perkalian atau pembagian,
dan untuk memeriksa isi bit di dalam register. Dalam
mikroprosesor 8-bit instruksi ini akan beroperasi
umunya hanya pada akumulator, meskipun sangat
diinginkan agar dapat beroperasi pada register mana
saja. Bisa tersedia variasi misalnya pertukaran nibble
pertukaran 4 bit kiri dan 4 bit kanan. Pergeseran ke
kiri 1 bit ekuivalen dengan perkalian dengan dua
dalam sistem biner.
Berikut tipe pergeseran
Pergeseran logika, ke kanan atau ke kiri
70
Pergeseran aritmetika, ke kanan atau ke
kiri
Perputaran, ke kanan atau ke kiri
6. Instruksi pengendali
Instruksi pengendali mengubah urutan
pelaksanaan program, baik tak bersyarat maupun
dengan sesuatu cara tergantung dari harga indikator
status. Iinstruksi pengendali menyediakan
kemampuan intelegensia komputer. Instruksi ini
membedakan sebuah komputer dari sebuah
kalkulator. Ia memberi komputer kemampuan
mengimplement keputusan yang berbeda tergantung
harga parameter yang di hitung.
Dalam menulis program bahasa assembly untuk
arsitektur tertentuada hal-hal yang perlu
diperhatikan, yaitu:
1. Arahan Asssembler
Penggunaanarahanassembler merupakan hal
yang pentingdalam menulis program bahasa
assembly. Arahan Assembler adalah perintah
yangdipahami oleh assembler dan tidak sesuai
dengan instruksi mesin yang sebenarnya. Arahan
Assembler mempengaruhi cara assembler melakukan
71
konversikode assembly ke kode mesin. Misalnya,
arahan assembler khusus dapatdigunakan untuk
menginstruksikan assembler dalam menempatkan
item data sedemikian rupa sehingga mereka memiliki
keselarasan. Penyelarasan data dalam memori
diperlukan untuk implementasi arsitektur yang
efisien.
2. Penggunaan Simbol
Dalam program bahasa assembly simbol
digunakan untuk mewakili angka. Penggunaan simbol
bertuauan untuk membuat kode lebih mudah dibaca,
dipahami,dan debug. Simbol dijabarkan ke dalam nilai
numerik yang berhubungan denganassembler.
3. Penggunaan Operasi Sintetis
Penggunaan operasi sintetis membantu
programmer assembly untuk menggunakan
instruksiyang tidak langsung didukung oleh
arsitektur. Operasi sintesis kemudian diterjemahkan
olehassembler untuk satu set instruksi yang
didefinisikan oleh arsitektur.
4. Sintaks Assembler
Assembler biasanya memberlakukan beberapa
konvensi yang mengacu pada komponen perangkat
72
kerasseperti register dan lokasi memori. Salah satu
konvensi tersebut adalah awalan dari nilai langsung
dengan karakter khusus (#) atau nama register
dengankarakter (%).
5. Interaksi Dengan Sistem Operasi
Hardware yang mendasari dalam beberapa
mesin tidak dapat diakses secara langsung oleh
sebuah program. Sistem operasi (OS) berfungsi
sebagai media akses ke sumber dayaseperti memori
dan fasilitas I/O. Interaksi dengan sistem operasi (OS)
dapatberlangsung dalam bentuk kode yang
menyebabkan pelaksanaan fungsi yangbagian dari
OS. Fungsi-fungsi ini disebutsistem calls.
Program yang ditulis dalam bahasa assembly
perlu diterjemahkanke dalam bahasa mesin dalam
bentuk biner agar dapat dieksekusi. Dalam perakitan
dan proses eksekusi bahasa assembly terdapat 3
komponen utama yaitu assembler, data structures,
linker dan loader. Berikut ini adalah tiga langkah
dalam perakitan dan proses eksekusi bahasa
assembly pada masing-masing komponen.
1. Assembler (Perakit)
73
Assembler adalah program yang menghasilkan
instruksi kode mesin dari sumberkode program yang
ditulis dalam bahasa assembly. Assembler akan
menggantikan alamat simbolis dengan alamat
numerik, menggantikan kode operasi simbolik dengan
kode operasi mesin, media penyimpanan cadangan
untuk instruksi dan data, dan menerjemahkan ke
dalam konstantarepresentasi mesin. Cara kerja
assembler yaitu memindai program assemblydan
melakukan pemetaan instruksi untuk kode mesin.
Karena simboldapat digunakan dalam instruksi
sebelum mereka didefinisikan dalam yang
kempemindaian tunggalprogram mungkin tidak cukup
untuk melakukan pemetaan. Proses scan assembler
sederhana padaseluruh program perakitan terjadi dua
kali. Pada tahap pengujian pertama menghasilkan
tabel yang mencakup semua simbol dan nilai-nilai,
tabel inidisebut tabel simbol. Selama melewati
pengujian kedua, assembler akan menggunakan tabel
simbol dan tabellain untukmenghasilkan program
objek, dan output beberapa informasiyang akan
dibutuhkan oleh linker.
2. Data Structures
74
Assembler menggunakan setidaknya tiga tabel
untuk menjalankan fungsinya, yaitu tabel simbol,tabel
opcode, dan tabel pseudo instruksi. Tabel simbol,
yang dihasilkandalam satu lulus, memiliki sebuah
entri untuk setiap simbol dalam program ini. Yang
terdapat dalam setiapsimbol adalah nilai biner dan
informasi lainnya.
3. Linker dan Loader
Linker adalah entitas yang dapat
menggabungkan modul objek yang mungkin
dihasilkan dari beberapa modul perakitan secara
terpisah. Loader adalah operasisistem utilitas yang
membaca executable ke dalam memori dan memulai
eksekusi program. Singkatnya, setelah modul
perakitan diterjemahkan ke dalam modul obyek,
fungsidari linker dan loader adalah menyiapkan
program untuk eksekusi. Fungsi-fungsi initermasuk
menggabungkan modul objek bersama-sama,
menyelesaikan pengalamatan yang tidak diketahui
pada waktu perakitan, mengalokasikan penyimpanan,
dan akhirnya melaksanakan program.
75
76
BAB 4
ALU
ARITMATIC LOGIC
UNIT
Konversi Bilangan
1. Pengertian Konversi Bilangan
78
Konversi bilangan adalah suatu proses dimana
satu system bilangan dengan basis tertentu akan
dijadikan bilangan dengan basis yang lain.
Sistem Bilangan terdiri dari 4 antara lain:
1. Desimal (Basis 10) adalah Sistem
Bilangan yang paling umum digunakan dalam
kehidupan sehari-hari. Sistem bilangan desimal
menggunakan basis 10 dan menggunakan 10
macam simbol bilangan yaitu: 0, 1, 2, 3, 4, 5, 6, 7, 8
dan 9.
2. Biner (Basis 2) adalah Sistem Bilangan
yang terdiri dari 2 simbol yaitu 0 dan 1.
3. Oktal (Basis 8) adalah Sistem Bilangan
yang terdiri dari 8 Simbol yaitu 0, 1, 2, 3, 4, 5, 6, 7.
4. Hexadesimal (Basis 16), Hexa berarti 6
dan Desimal berarti 10 adalah Sistem Bilangan
yang terdiri dari 16 simbol yaitu 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15). Pada
Sistem Bilangan Hexadesimal memadukan 2 unsur
yaitu angka dan huruf. Huruf A mewakili
angka 10, B mewakili angka 11 dan seterusnya
sampai Huruf F mewakili angka 15.
79
2. Konversi Bilangan
Konversi Bilangan dibagi menjadi 3 yaitu
sebagaia berikut.
1. Konversi dari bilangan Desimal ke biner.
2. Konversi bilangan Desimal ke Oktal.
3. Konversi bilangan Desimal ke
Hexadesimal.
1. Konversi dari bilangan Desimal ke biner
Yaitu dengan cara membagi bilangan desimal
dengan dua kemudian diambil sisa pembagiannya.
Contoh:
1. 25410=…………. 2
254: 2 = 127 sisa 0
127: 2 = 63 sisa 1
63: 2 = 31 sisa 1
31: 2 = 15 sisa 1
15: 2 = 7 sisa 1
7: 2 = 3 sisa 1
3: 2 = 1 sisa 1
1: 2 = 0 sisa 1
0: 2 = 0 sisi 0
80
Jadi 25410 = 111111102 diurutkan dari sisa
pembagian terakhir sebagai MSB (Most Significant
Bit)
81
8: 8 = 0 sisa 0
Sehingga 409710 = 00018.
Konversi bilangan Oktal ke Desimal
0018 = …. 10
Caranya:
0018= 0 x 80 + 0 x 81 + 1 x 82
= ( 0 ) + ( 0 ) + ( 64 )
= 6410
Jadi, 00018= 6410
Contoh:
388810 = … 16
Caranya:
3888: 16 = 243 sisa 0
243: 16 = 15 sisa 3
82
15: 16 = 0 sisa 15 ingat 15 diganti dengan F.
0: 16 = 0
Sehingga 388810 = F3016
83
ALU ( aritmatica logical unit)
CU ( control unit )
REGISTER
b. CU (Control Unit)
c. Register
84
Register merupakan alat penyimpanan kecil yang
mempunyai akses kecepatan tinggi yang digunakan
untuk menyimpan data dn instruksi yang sedang
diperoses, sementara data dan instruksi lainnya
masih disimpan di dalam memori utama untuk
menunggu giliran diproses.
85
86
BAB 5
PROCESSING UNIT
DESIGN
87
komputer mikro, processor ini disebut dengan
microprocessor, namun umumnya pengguna computer
menyebutnya sebagai CPU (Central Processing Unit).
CPU merupakan otak bagi sebuah system computer.
CPU memiliki 3 komponen utama yang merupakan
bagian tugas utamanya yaitu unit kendali (Control
Unit), unit arithmatika dan logika (arithmetic and
logic unit )dan beberapa simpanan yang berukuran
kecil yang disebut dengan register, yang berfungsi
membantu melakukan hubungan (interface) dari
danke memori. Tugas CPU adalah melaksanakan dan
mengawal keseluruhan operasi computer sehingga
bisa dikatakan hampir keseluruhan pemikiran
dilaksanakan disini, sehingga sering dinamakan
sebagai otak computer. CPU tempatnya terletak pada
papan induk (motherboard), pada bagian inilah juga
terletak segala pusat perangkat computer seperti
memori, port input-output (I/O) dan sebagainya.
88
main memory, mengambil data dari main memory
untuk diolah. Bila ada instruksi perhitungan
arithmatika atau perbandingan logika, control unit
mengirim instruksi tersebut ke arithmetic and logic
unit. Hasil dari pengolahan data ini dibawa oleh
control unit ke main memory untuk disimpan. Dengan
demikian, tugas control unit adalah sebagai berikut:
1. Mengatur dan mengendalikan alat-alat
input dan output.
2. Mengambil instruksi-instruksi dari main
memory, Melakukan pengiriman instruksi ke ALU
bila ada sebuah proses perhitungan aritmetic dan
logic dan mengawasi kerja ALU itu sendiri.
3. Mengambil data dari main memory kalau
diperlukan oleh proses
4. Mengirim instruksi ke arithmetic dan
logic unit bila ada perhitungan arithmatika dan
perbandingan logika serta mengawasi kerja dari
arithmatic and logic unit.
5. Menyimpan hasil proses ke main memory.
89
keseluruhan system computer untuk melaksanakan
suatu arus data. Dalam melakukan aktivitasnya, CU
selalu berkomunikasi terutama dengan ALU dan
memori untuk memastikan kelancaran sebuah system
computer. Ia juga bertanggung jawab untuk
menentukan operasi-operasi apa yang akan dipanggil
oleh program dan dengan cara bagaimana operasi-
operasi tersebut dilaksanakan.
Ketika sebuah computer pertama kali
dihidupkan, maka computer tersebut menjalankan
operasi bootstrap. Operasi ini akan membaca sebuah
instruksi dari suatu lokasi memori yang telah
diketahui sebelumnya dan mentransfer instruksi
tersebut ke unit kendali untuk dieksekusi. Instruksi-
instruksi dibaca dari memori dan dieksekusi sesuai
dengan urutan penyimpanannya. Program counter dari
suatu komputer menyediakan suatu cara untuk
menyimpan lokasi instruksi berikutnya. Urutan
eksekusi berubah dengan memindah lokasi instruksi
baru ke program counter sebelum pembacaan (fetch)
instruksi dikerjakan.
Control Unit merupakan komponen utama yang
mengarahkan sistem operasi dengan mengirimkan
90
sinyal kontrol ke datapath. Sinyal tersebut mengontrol
aliran data di dalam CPU dan antara CPU dan
eksternal unit seperti memori dan I/O. Kontrol bus
umumnya membawa sinyal antara control unit dan
komputer lainnya di clock driven manner. Sistem jam
menghasilkan urutan yang kontinu dari pulsa di
jangka waktu dan frekuensi tertentu.
91
Operasi aritmetika yang dilakukan ALU seperti
penambahan (+), pengurangan (-), pembagian (/), dan
perkalian (*). Sedangkan operasi logika seperti
operasi boolean (OR, AND, NOT) atau perbandingan
yaitu untuk operasi perbandingan antara dua operand
yang ada, seperti sama dengan (=), tidak sama
dengan (<>), kurang dari (<), kurang dari atau sama
dengan (<=), lebih besar dari (>), serta lebih besar
atau sama dengan dari (>=).
ALU atau Unit logik-aritmetik (aritmetic-logic
unit) adalah bagian komputer yang melaksanaka
operasi logis pada data yang diproses oleh komputer.
Bagian komputer ini dapat merupakan bagian yang
relatif kecil yang terdiri dari satu atau lebih chip LSI
(chip tepadu sekala besar), atau untuk pengolah
bilangan yang besar (komputer berorientasi-ilmiah),
bagian ini terdiri dari banyak sekali larik komponen
logik berkecepatan tinggi. Walaupun terdapat variasi
dalam ukuran benda dan kerumitannya, mesin yang
kecil biasanya melaksanakan operasi aritmetik dan
operasi logisnya dengan memakai prinsip yang sama
dengan mesin yang besar. Yang berubah adalah
kecepatan gerbang logic dan flipflop yang dipakai,
92
juga teknik istimewa. dipakai untuk mempercepat
operasi dan supaya dapat melakukan beberapa
operasi secara paralel.
Walaupun banyak fungsi dapat dilaksanakan oleh
ALU dari mesin masa kini, operasi aritmetik dasar
yaitu penjumlahan, pengurangan, perkalian,
pembagian secara terus menerus masih merupakan
operasi “roti dan mentega” (perkerjaan dasar yang
dilakukan sehari-hari).
Idemengenai satu adderumum yang mampu
menambahkan dua register bersama-sama dan
menyimpan hasilnya dalam register lainnya
merupakan prinsip yang mendasar pada ALU.
Sehingga ALU didefinisikan sebagai sebuah unit yang
berisi sirkuit untuk menjalankan sekumpulan operasi
mikro aritmatika dan logika.
93
Fungsi Logika pada ALU lebih sederhana. Untuk
segala operasi logika yang ingin diterapkan, maka
hanya perlu memuat sejumlah gerbang logika tertentu
untuk operas itersebut(satu untuk setiap pasangan
bit input).
94
signal ini karena hal itu merupakan fungsi unit
memori untuk menyiapkan elemen aritmetik bersama
dengan informasi yang harus dipakai . Kita anggap
bahwa bagian memori suatu mesin mampu
mengirimkan signal kendali yang benar, dan bahwa
data yang akan diolah telah tersedia. Jadi, fungsi ALU
adalah menjumlahkan, mengurangi, atau operasi yang
diperintahkan oleh elemen kendali.
Alu mempunyai dua type:
1. serial-by-bit ALU,yaitu menambakan satu
bit dari setiap 2 angka digit ganda(multidigit)
setiap waktu.
2. Parallel ALU, yang memproses semua
digit secara serentak. Jauh Lebih cepat
dibandingkan serial-by-bit. sebenarnya semua ALU
menjadi parallel sekarang, dikarenakan
pengurangan harga transistors.
Konstruksi ALU
Informasi yang diolah dalam komputer biasanya
dibagi bagi menjadi “kata”, setiap kata terdiri dari
sejumlah bit tertentu . misalnya kata yang diolah oleh
mesin biner panjangnya mungki 32 bit. Dalam kasus
95
ini ALU mampu melakukan penjumlahan, pengurangan
dan sebagainya, kata yang panjangnya 32 bit. Operan
yang diapakai dikirim dari penyimpanan komputer,
dan elemen kendali mengarahkan operasi yang harus
dilaksanakan. Jika penjumlahan harus dilakukan
bilangan yang ditambahkan dan penambahnya harus
dikirmkan ke ALU yang harus melaksanakan
penjumlahan bilangan itu dan menyimpan hasilnya
(jumlahnya) sedikitnya untuk sementara waktu.
Untuk bisa memperkenalkan beberapa konsep,
kita terlebih dahulu meninjau konsep ALU komputer
yang biasa dipakai. Peranti penyimpan terdiridari
sekumpulan register flip-flop yang masing-masing
terdiri dari suatu atau lebih flip-flop. Panjang setiap
register didefinisikan sebagai banyaknya informasi
maksimum yang dapat disimpan oleh register. Dalam
register biner, panjang register sama dengan
banyaknya digit biner maksimum yang dapat disimpan
dan dalam register BCD, panjang register sama
dengan banyaknya digit desimal yang dapat disimpan
dalam register itu.
Untuk memudahkan, berbagai register ALU
biasanya diberi nama, misalnya register x, register b,
96
register MQ, dan sebagainya dan flip-flopnya diberi
nama yang sama, sehigga register X berisi flip-flop
X1,X2,X3, dan seterusnya.
Hampir semua komputer (khususnya
mkroprosesor) memiliki register yang disebut
akumulator yang merupakan register utama untuk
aritmetik dan oprasi logis. Register ini menyimpan
hasil setiap operasi aritmetik atau operasi logis, dan
rangkaian penggerbangan ditempelkan pada register
ini, sehingga operasi yang perlu dilakukan pda isinya
dan pada register lain yang berkaitan. Jadi
akumulator merupakan register penyimpan dasar dari
elemen aritmetik. Jika mesin dintruksikan untuk
memuati akumulator, elemen kendali mula mula akan
membersihkan akumulator dengan meghapuskan
segala sesuatu yang tersimpan di dalamnya,
kemudian memindahkan operan terpilih yang ada
dalam penyimpanan ke dalam register akumulator.
Jika komputer itu diperintahkan untuk
menjumlahkan, maka bilangan yang tersimpan dalam
akumulator akan berupa bilangan yang ditambahkan.
penambahannya diletakan dalam memori dan
rangkaian komputer akan menambahkan penambah
97
pada bilangan yang tadinya tersimpan dalam
komputer dan menyimpan hasil jumlahnya dalam
akumulator.
Beberapa komputer berubah menjadi memiliki
akumulator tunggal komputer itu memiliki dua atau
lebih akumulator, dan akumulator itu disebut,
misalnya akumulator A, dan akumulator B (seperti
dalam mikroprosessor 6800) atau ACC1, ACC2, dan
seterusnya (seperti dalam komputer Data General).
Bila banyaknya register yang disediakan untuk
menyimpan operan lebih banyak daripada empat,
registernya seringkalidisebut register umum, dan
register individual diberi nama, misalnya, register
umum 4, register umum 8, dan seterusnya.
Register
Register merupakan tempat penyimpanan kecil
yang mempunyai kecepatan tinggi, lebih cepat 5
sampai 10 kali dibandingkan dengan kecepatan
perekaman atau pengambilan data di main memory.
Register digunakan untuk menyimpan instruksi dan
data yang sedang diproses oleh CPU, sedang
instruksi-instruksi dan data lainnya yang menunggu
98
untuk diproses disimpan di main memory. Secara
analogi register ini dapat diibaratkan dengan ingatan
di otak bila anda melakukan pengolahan data secara
manual. Konsep penting yang mempengaruhi
kecepatan dari processor adalah ukuran dari register.
Istilah dari Word size menggambarkan ukuran dari
operand register yang berkisar dari 8 sampaii 64 bit.
Misalnya operand register mempunyai word size 32
bit, maka processor tersebut disebut dengan 32-bit
processor, selanjutnya banyak yang menyebut
komputernya sebagai komputer 32 bit.
Contoh register yang sering digunakan adalah:
1. Memory Buffer Register (MBR), berisi
sebuah word yang akan disimpan di dalam memori
atau digunakan untuk menerima word (susunan
data bit) dari memori.
2. Memory Address Register (MAR),
berfungsi menentukan alamat word di memori
untuk dituliskan dari MBR atau dibaca ke MBR.
3. Instruction Register (IR), berisi instruksi
8-bit op-code (kode operasi) yang akan
dieksekusi.
99
4. Instruktion Buffer Register (IBR),
berfungsi untuk menyimpan sementara instruksi
sebelah kanan word di dalam memori.
5. Program Counter (PC), berisi alamat
pasangan instruksi berikutnya yang akan diambil
dari memori.
6. Accumulator (AC) dan multiple-quontient
(MQ), berfungsi untuk menyimpan sementara
operand dan hasil operasi ALU. Seperti hasil
perkalian dua buah bilangan 40-bit adalah sebuah
bilangan 80-bit, 40-bit yang paling berarti (most
significant bit) disimpan dalam AC dan 40-bit yang
kurang berarti (least significant bit) disimpan di
MQ.
Beberapa CPU menggunakan suatu Cache
memory atau disebut sebagai scratch-pad memory
atau high-speed buffer atau buffer memory agar kerja
CPU lebih efisien dan untuk mengurangi waktu yang
terbuang. Tanpa Cache memory, CPU akan menunggu
hasil pengolahan selesai dikirim ke memori utama
baru proses selanjutnya bisa dilakukan, padahal
proses dari memori utama lebih lambat dibanding
100
dengan kecepatan register. Letak Cache memory
antara CPU dengan memori utama.
Gambar berikut menjelaskan posisi dari cache
memori:
101
mempunyai fungsi yang berbeda/khusus. Jenis
register adalah sebagai berikut:
102
3. SI (Source Index), digunakan untuk
mencatat asal address memory yang isinya akan
dikerjakan/menunjuk offset sumber
4. DI (Destination Index), digunakan untuk
mencatat tujuan address data/menunjuk offset
tujuan
5. IP (Instruction Pointer), biasanya register
ini bersama (Code Segment) CS untuk mencatat
address tempat kode bahasa mesin sutu program
yang digelar di RAM/menunjuk instruksi berikut
yang akan dieksekusi (tidak dapat diakses oleh
programmer)
Segment Register
Segment register terdiri atas:
1. CS (Code Segment), digunakan untuk
mencatat address segment memory tempat kode
operasi suatu program yang akan dibaca dan
dilaksanakan oleh CPU
2. DS (Data Segment), digunakan untuk
mencatat address segment memory tempat
menyimpan data di memori yang digunakan oleh
program
103
3. SS (Stack Segment), digunakan untuk
mencatat address segment memory yang
digunakan menjadi stack dalam operasi push dan
pop
4. ES (Extra Segment), digunakan bagi data
yang tidak terdapat dalam CS, DS dan SS
104
Mag Register
Mag register digunakan untuk menampung tanda
pada operasi yaitu:
1. Operasi khusus tentang kerja
microprocessor, terdiri atas bit:
a. OF (Over Flow)
b. DF (Direction Flag)
c. IF (Interupt Flag)
d. TU (Trap Flag)
2. Operasi Aritmatika dan Logika, terdiri
atas bit:
a. SF (Sign Flag)
b. ZF (Zero Flag)
c. AF (Auxiliary Flag)
d. PF (Parity Flag)
e. CF (Carry Flag)
Setiap Register set berbeda beda dari satu
komputer ke komputer lain. Register set biasanya
merupakan kombinasi dari tujuan umum sebuah
register dan tujuan khusus sebuah register. Seperti
namanya tujuan umum register berfungsi untuk
tujuan apapun. Sedangkan tujuan khusus register
yaitu sebagai komponen yang memiliki fungsi tertentu
105
dalam cpu, sebagai contoh PC (program counter)
adalah tujuan khusus register yang digunakan untuk
menyimpan alamat dari instruksi yang akan
dieksekusi selanjutnya.
Contoh lain dari tujuan khusus register adalah
instruksi register (IR), yang digunakan untuk
menyimpan instruksi yang sedang dijalankan.
sedangkan ALU juga berfungsi menyediakan sirkuit
yang dibutuhkan untuk melakukan aritmatika, operasi
logis dan pergeseran dituntut dari set instruksi. Unit
kontrol adalah entitas yang bertanggung jawab untuk
mengambil instruksi yang akan dieksekusi dari
memori utama dan decoding dan kemudian
mengeksekusinya.
Register dari sebuah komputer secara kolektif
disebut sebagai kumpulanregister (registerset).
Register adalah komponen dalam computer yang
dibangun dari flip flop dan gerbang. Register biasanya
diukur berdasarkan banyaknya bit (binary digit) yang
dapat disimpan. Berdasarkan data yang dikelolanya,
register dapat dibedakan menjadi:
1. Register data yang digunakan untuk
menyimpan bilangan integer
106
2. Register alamat yang menyimpan alamat
yang digunakan untuk mengakses memori
3. Register tujuan umum yang dapat
menyimpan data maupun alamat
4. Register floating point yang menyimpan
bilangan floating point
5. Register konstanta yang menyimpan nilai
yang hanya dapat dibaca
6. Register vektor yang menyimpan data
untuk melakukan pemrosesan vektor.
7. Register tujuan khusus menyimpan
kondisi program (program state) termasuk
didalamnyan pencacah program, petunjuk
tumpukan (stack pointer) dan register status.
8. Register yang berhubungan dengan
pengaksesan memori seperti register penahan
(buffer register), register data dan register
alamat.
Eksekusi Instruksi
Salah satu ciri processor yang dirancang untuk
tujuan umum (general purpose processor) adalah
terdapat memori yang menyimpan intruksi dan data.
107
Program menjadi sangat dominan daripada perangkat
kerasnya. Perangkat keras dirancang sefleksibel
mungkin untuk menjalankan sebuah instruksi.
Instruksi yang tersimpan dalam memori secara
berurutan dieksekusi oleh processor. Proses
eksekusinya sesuai dengan alamat yang ditunjukkan
oleh pencacah (PC/program counter). Nilai PC ini yang
digunakan sebagai alamat instruksi yang akan
dijalankan oleh processor.
Secara umum terdapat tiga tahap dalam
eksekusi instruksi, sebagai berikut:
1. Fetch
Pengambilan instruksi dari memori dengan
menggunakan PC sebagai alamatnya. Pada beberapa
processor instruksi disimpan sementara dalam
Register Instruksi.
Pencacah (PC) mengeluarkan nilai yang
digunakan sebagai alamat memori instruksi yang
akan dibaca. Instruksi yang telah dibaca dibagi
menjadi beberapa segmen dan dikirim ke komponen
yang berbeda.
2. Decode
108
Penerjemahan kode operasi yang ditunjukkan
oleh 6 bit kode operasi. Proses ini dilakukan di unit
kendali yang selanjutnya mengeluarkan sinyal kendali
untuk menjalankan instruksi tersebut.
Proses ini bertujuan untuk menerjemahkan kode
operasi dan menghasilkan 9 bits kendali sering
disebut sebagai mikroinstruksi.
3. Execute
Tahap menjalankan instruksi yang telah
diterjemahkan. Tergantung dari jenis instruksi yang
dieksekusi.
Tahap akhir dalam menjalankan instruksi yaitu
eksekusi. Dalam eksekusi instruksi, suatu instruksi
dibedakan menjadi tiga kelas sebagai berikut:
1. Tipe-R (R-type)
Tipe ini digunakan untuk menjalankan operasi-
operasi aritmatik.
2. Load/Store type
Tipe ini digunakan untuk menjalankan instruksi
yang berkaitan dengan memori baik membaca
maupun menulis.
3. Branch-type
109
Tipe ini digunakan untuk menjalankan instruksi
lompatan dan pencabangan.
Data Path
CPU dapat dibagi menjadi bagian data dan
bagian kontrol. Bagian data,yang biasaya disebut
datapath, datapath berisi register dan ALU. Datapath
adalah kapabel yang melakukan operasi tertentu
pada item data. Bagian kontrol pada dasarnya adalah
unit kontrol, yang mengeluarkan sinyal kontrol untuk
datapath tersebut. dari internal ke CPU, data yang
berpindah dari satu register ke register yang lainya
dan diantara ALU dan register. Gerakan data internal
dilakukan melalui bus lokal, yang dapat membawa
data,instruksi, dan alamat. Secara eksternal, data
yang bergerak dari register ke memori dan perangkat
I/O, seringkali dengan menggunakan bus sistem.
Pergerakan data internal di antararegister dan antara
ALU dan register dapat dilakukan dengan
menggunakan berbagaiorganisasi termasuk satu bus,
dua bus, atau organisasi tiga bus. Menurut pendapat
datapaths juga dapat digunakan di antara komponen
110
komponen yang mentransfer data di antara mereka
lebih sering. Sebagai contohnya, isi dari PC ditransfer
keMAR untuk mengambil instruksi baru pada awal
setiap siklus instruksi. Oleh karena itu,a datapath
khusus dari PC ke MAR dapat berguna dalam
mempercepat inibagian dari eksekusi instruksi.
111
112
BAB 6
DESAIN SISTEM
MEMORI
113
program-program tersebut dapat mengakses
beberapa informasi secara langsung di sini, maka
agar dapat berjalan dengan optimal semua data harus
di olah dan disimpan dalam memori utama, namun hal
ini tidak mungkin karena.
1. Memori utama memiliki tempat
penyimpanan yang sangat kecil sehingga tidak
memungkinkan untuk menyimpan data yang
sangat besar
2. Memori utama bersifat volatile, yakni
data yang tersimpan dalam memori ini akan hilang
ketika daya dalam komputer dimatikan
Agar komputer dapat melakukan pengolahan
data yang efektif dan efisien, para ahli melakukan
berbagai riset untuk menemukan suatu terobosan
memory yang dapat menyimpan dalam kapasitas
besar namun memiliki kecepatan akses yang tinggi.
Hal ini tentu saja sangat sulit dilakukan mengingat
mahalnya harga memori yang memiliki kecepatan
akses tinggi, oleh karena itu diperlukan suatu hirarki
memori (tingkatan memori) yang dapat memenuhi
kebutuhan-kebutuhan tersebut.
114
Hirarki Memori
Sistem hirarki memori memungkinkan memori
memiliki waktu akses yang tinggi dengan harga yang
murah dan memiliki penyimpanan yang besar. Sistem
hirarki ini memerlukan beberapa jenis memori agar
dapat mengoptimalkan kinerja komputer, diantaranya
yaitu memori register, memori cache, memori utama
dan beberapa memori penyimpanan lain, berikut
contoh hirarki memori yang dipakai saat ini.
116
dengan membacanya dari media penyimpan seperti
cakram keras, disket, cakram padat, maupun pita
perekam. Instruksi-instruksi tersebut kemudian
disimpan terlebih dahulu pada memori fisik (RAM),
yang mana setiap instruksi akan diberi alamat unik
yang disebut alamat memori. Selanjutnya, CPU dapat
mengakses data-data pada RAM dengan menentukan
alamat data yang dikehendaki.
Saat sebuah program dieksekusi, data mengalir
dari RAM ke sebuah unit yang disebut dengan bus
yang menghubungkan antara CPU dengan RAM. Data
kemudian didekode dengan menggunakan unit proses
yang disebut sebagai pendekoder instruksi yang
sanggup menerjemahkan instruksi. Data kemudian
berjalan ke unit aritmatika dan logika (ALU) yang
melakukan kalkulasi dan perbandingan.
Suatu data bisa disimpan sementara oleh ALU
dalam sebuah lokasi memori yang disebut dengan
register supaya dapat diambil kembali dengan cepat
untuk diolah. ALU dapat melakukan operasi-operasi
tertentu, meliputi penjumlahan, perkalian,
pengurangan, pengujian kondisi data dalam register,
hingga mengirimkan hasil pemrosesannya kembali ke
117
memori fisik, media penyimpan atau register untuk
diolah lagi. Selama proses ini terjadi, sebuah unit
dalam CPU yang disebut dengan penghitung program
akan memantau instruksi yang sukses dijalankan
supaya instruksi tersebut dapat dieksekusi dengan
urutan yang benar dan sesuai.
b. Memori Cache
Cache berasal dari kata cash yang artinya
tempat menyembunyikan atau tempat menyimpan
sementara. Cache merupakan memori yang memiliki
kapasitas lebih kecil dari memori utama namun
memiliki kecepatan yang lebih besar dari memori
utama. Penyimpanan sementara ini memungkinkan
peningkatan transfer data dengan cara menyimpan
data yang pernah diakses pada cache tersebut,
sehingga apabila data yang ingin diakses adalah data
yang sama maka, akses akan dapat dilakukan lebih
cepat. Memori cache ini terletak antara register dan
RAM (main memory) sehingga pemrosesan data dari
register tidak langsung mengacu pada memori utama.
c. Memori Utama (Main Memory)
CPU (Central Processing Unit) hanya dapat
menyimpan data dan intstruksi di register yang
118
memiliki ukuran kecil, sehingga tidak dapat
menyimpan semua informasi yang dibutuhkan seluruh
proses. Untuk mengatasi hal ini dibuat suatu alat
pemroses yang memiliki daya tampung besar, saperti
memori utama.
Memori utama merupakan kumpulan blok-blok
array di mana masing-masing blok tersebut dapat
menyimpan suatu informasi baik berupa data maupun
intstruksi dan tiap-tiap blok lokasi tersebut
ditunjutkkan oleh suatu alamat yang disebut dengan
address memory.
d. Penyimpanan Sekunder (Secondary
Storage)
Kebutuhan akan memori utama saja tidak
mencukupi, maka diperlukan peralatan tambahan
untuk menyimpan data yang lebih besar. Kapasitas
memori penyimpan dapat mempengaruhi kecepatan
pemrosesan data.
e. Hirarki Cache memory
Pada semua siklus instruksi, prosesor
mengakses setidaknya satu kali untuk membaca
instruksi bahkan lebih, untuk membaca operand
dan/atau menyimpan hasilnya. Kecepatan eksekusi
119
sebuah prosessor jelas dibatasi oleh waktu siklus
memori. Keterbatasan ini terjadi karena adanya
ketidak cocokan antara kecepatan prosessor dan
memori utama. Untuk menjembatani ketidaksesuaian
ini para ahli menggunakan suatu memori khusus yang
di sebut Cache memory.
Cache memory adalah memori berbasis SDRAM
berukuran kecil dan berkecepatan tinggi yang di
kendalikan secara otomatis oleh hardware. Ukuran
cache cukup kecil sehingga harga rata-rata per bit
mendekati harga memori utama. Semakin besar
cache, semakin besar jumlah gate yang terdapat pada
pengalamatan cache.
Penemuan Cache memory merupakan solusi
untuk memberikan kecepatan memori yang
mendekati kecepatan prosesor, dan sekaligus
memberikan memori semikonduktor yang berukuran
besar dengan harga yang murah. Cache memory
meningkatkan kinerja komputer dengan cara
menjembatani perbedaan kecepatan antara CPUdan
memori utama.
120
CPU
Cache
Memori Utama
121
a. Jenis-jenis Cache memory
Berdasarkan letaknya, Cache memorydibagi
menjadi dua macam, yaitu.
i. Cache memory yang terdapat pada
internal processor, Cache memory jenis ini
memiliki kecepatan akses yang sangat tinggi dan
harganya sangat mahal. Hal ini bisa terlihat pada
prosesor yang berharga mahal seperti P4,
P3,AMD-Athlon, dll. Semakin tinggi kapasitas L1,
L2 Cache memory maka semakin mahal dan
semakin cepat processor.
ii. Cache memory yang terdapat di luar
processor, yaitu berada pada motherboard,
memori jenis ini kecepatan aksesnya sangat
tinggi, meskipun tidak secepat cache memori
jenis pertama (yang ada pada internal processor).
Semakin besar kapasitasnya maka semakin mahal
dan cepat. Hal ini bisa kita lihat pada
motherboard dengan beraneka ragam
kapasitasCache memory, yaitu 256 kb, 512 kb, 1
Mb, 2 Mb, dll.
Cache memory biasanya mempunyai beberapa
level yang menunjukkan tingkat kedekatannya dengan
122
mikroprosesorcontoh, L1 cache ada pada chip yang
sama dengan mikroprosesor (built-in), sedangkan L2
cache adalah Cache memory yang merupakan chip
tersendiri yang terpisah dari microprocessor.
b. Prinsip kerja cache memory
Cache berisi salinan sebagian memori utama.
Pada saat CPU membaca sebuah word memori, maka
dilakukan pemeriksaan untuk mengetahui apakah
word terdapat pada cache atau tidak. Jika ada maka
word akan dikirim ke prosesor dan jika tidak ada
maka blok memori utama yang terdiri dari sejumlah
word akan dibacakan ke dalam cache kemudian
dikirim ke prosesor.
123
Gambar 8. Operasi pembacaan cache
c. Fungsi pemetaan (mapping)
Cache memory memiliki beberapa saluran yang
dihubungkan dengan blok-blok memori utama, namun
saluran cache memiliki jumlah lebih sedikit
dibandingkan dengan blok-blok tersebut, sehingga
perlu algoritma untuk pemetaan blok-blok memori ke
dalam saluran cache dan diperlukan alat untuk
menentukan blok memori utama yang sedang
memakai saluran cache. Pemilihan fungsi pemetaan
dalam cache bisa bersifat langsung, asosiatif dan set-
124
asosiatif. Perbedaan ketiga teknik pemetaan ini
terletak pada kriteria yang digunkan untuk
menempatkan cache dalam sebuah blok memori
utama dan penggantian cache dengan blok masuk
ketika blok tersebut penuh.
i.Pemetaan langsung (Direct mapping)
Direct mapping merupakan teknik pemetaan yang
paling sederhana, yaitu meletakkan masing-masing
blok memori utama hanya ke sebuah saluran cache
saja. Fungsi pemetaan ini mudah diimplementasikan
menggunakan alamat. Cache yang diakses dengan
menggunakan alamat memori utama dianggap terdiri
dari tiga field yaitu tag, line dan word.
125
Gambar 9. Teknik pemetaan langsung
Pemetaan secara langsung memiliki keuntungan
dalam kesederhanaan algoritma pemetaannya.
Kesederhanaan dalam menentukan keberadaan untuk
menempatkan blok memori utama dalam cache ini
memudahkan proses pemetaan, namun teknik
pemetaan ini tidak efektif untuk pemetaan dalam
jumlah banyak.
Kekurangan teknik pemetaan ini adalah terdapat
lokasi cache yang tetap untuk sembarang blok-blok
yang diketahui, dengan demikian apabila suatu
program secara berulang-ulang melakukan word
126
reference dari dua blok yang berbeda memetakan ke
saluran yang sama, maka blok-blok itu secara terus
menerus akan di swap ke dalam cache, akibatnya
rasio hitnya akan menjadi rendah.
127
hanya perlu memiliki dua bidang yaitu tag, untuk
mengidentifikasi blok sementara yang berada di
cache dan word, untuk mengidentifikasi elemen
dalam blok yang diminta oleh prosesor.
129
Gambar 11. Teknik pemetaan set-
associative
d. Algoritma penggantian (replacement
algorithm)
Algoritma penggantian bekerja dengan memilih blok
yang akan diganti. Agar lebih efektif, blok yang diganti
130
adalah blok yang memiliki kemungkinan paling kecil
untuk digunakan kembali pada waktu dekat yaitu
dengan mengganti blok yang paling lama berada di
dalam cache dengan tanpa ada referensi ke blok
tersebut. Algoritma penggantian ini sering disebut
sebagai algoritma Least Recently Used (LRU).
Mekanisme hardware diperlukan untuk
mengidentifikasi blok yang Least Recently Used.
Pada dasarnya teknik penggantian di bedakan
menjadi 3 yaitu, Random Selection, First In First Out
(FIFO) dan Least Recently Used (LRU). Random
Selection adalah blok yang dipilih secara acak,
sementara algoritmaFirst In First Out (FIFO) adalah
blok yang berada di cache yang terpanjang, dan yang
terakhir adalah Least Recently Used (LRU), LRU
adalah blok yang digunakan sementara dalam cache.
Apabila isi blok yang terdapat di dalam cache telah
berubah, blok tersebut perlu ditulisakan kembali ke
dalam memori utama sebelum menggantikannya.
Write policy akan bekerja apabila operasi penulisan
memori terjadi. Penulisan dapat terjadi apabila blok
itu di-update. Pada kasus lainnya, penulisan hanya
dapat terjadi apabila blok diganti. Policy yang disebut
131
terakhir meminimalkan operasi penulisan memori,
namun menyebabkan memori utama menjadi tidak
berguna. Keadaan seperti itu akan menggangu
operasi multiprosesor dan direct memori acces yang
dilakukan oleh modul-modul I/O.
e. Kebijakan cache-write (Cache Write
Policy)
Koherensi antara cache-word dan salinannya
dalammemori utama harus dipertahankan setiap saat
jika mungkin. Sejumlah kebijakan (teknik) digunakan
dalam melakukan operasi write untuk blok memori
utama saat berada di dalam cache. Kebijakan-
kebijakan ini menentukan tingkat koherensi yang
dapat dipertahankan antara cache-word dan rekan-
rekannya di memori utama. Kebijakan-kebijakan
dalam cache-write ada 3.
i. Cache Write Policies Upon a Cache Hit
Ada dua kebijakan yang mungkin pada cache-hit.
a. Write-through
Setiap operasi write untuk cache diulang ke
memori utama di waktu yang sama. Kebijakan write-
through dapat mempertahankan koherensi antara
cache blok dan rekan-rekan mereka di memori utama
132
dengan mengorbankan waktu tambahan yang
dibutuhkan untuk menulis ke memori utama.
Kebijakan ini dapat meningkatkan rata-rata waktu
akses
b. Write-back
Semua kebijakan write dibuat untuk
cache. Kebijakan write ke memori utama ditunda
sampai pengganti dibutuhkan. Setiap cache blok yang
disebut bit digunakan untuk menunjukkan bahwa
operasi write telah dilakukan untuk blok saat berada
dalam cache. Pada saat penggantian, bit kotor
diperiksa, jika sudah diatur, maka blok tersebut
ditulis kembali ke memori utama, jika tidak, blok itu
hanya ditimpa oleh blok yang masuk. Koherensi hanya
dijamin pada saat penggantian
133
Berbeda dengan skema write-allocate, dalam
skema ini blok memori utama yang hilang diperbarui
ketika berada di memori utama dan tidak dibawa ke
cache.
134
ini memiliki kecepatan akses paling tinggi dan
harganya paling mahal. Ukuran memori
berkembang mulai dari 8Kb, 64Kb dan 128Kb.
b. Cache level 2 (L2)
Cache ini memiliki kapasitas yang lebih
besar dibandingkan dengan cache L1 yaitu
berkisar antara 256Kb sampai dengan 2Mb,
namun cache L2 inimemiliki kecepatan yang lebih
rendah dari cache L1. Cache L2 terletak terpisah
dengan prosesor atau disebut dengan cache
eksternal.
135
c. Cache level 3 (L3)
Cache level 3 hanya dimiliki oleh prosesor
yang memiliki unit lebih dari satu misalnya
dualcore dan quadcore. Fungsinya adalah untuk
mengontrol data yang masuk dari cache L2 dari
masing-masing inti prosesor.
Cache L1 dan L2 merupakan memori sementara
pada processor. Jadi ketika komputer dimatikan,
maka ingatan yang ada pada processor tersebut akan
hilang. L1 dan L2 mempunyai fungsi dan perbedaan,
berikut tabel perbedaan antara cache L1. L2 dan L3.
137
Cache Sekunder: A 256 Kbytes, 4-way
mengatur cache asosiatif untuk kedua instruksi dan
data.
Selain tiga cache on-chip, RM7000 menyediakan
antarmuka Cache tersier berdedikasi, yang
mendukung ukuran cache tersier 512 Kbytes, 2
Mbytes, dan 8 Mbytes. Cache tersier ini hanya diakses
setelah cache miss sekunder.
138
139
BAB 7
DESAIN SISTEM
MEMORY
Memori Utama
Komponen yang paling penting dari sebuah
memori adalah memorinya. Tanpa memori pasti tidak
akan komputer-komputer seperti yang dikenal
sekarang. Memori digunakan untuk menyimpan baik
instruksi-instruksi yang harus dijalankan maupun
data. . Memori adalah bagian dari komputer tempat
program-program dan data-data disimpan. Beberapa
pakar computer (terutama yang berasal dari Inggris)
menggunakan istilah store atau storage untuk
memori, meskipun kata “storage” sering digunakan
untuk menunjuk ke penyimpanan disket. Tanpa
140
sebuah memori sebagai tempat untuk mendapatkan
informasi guna dibaca dan ditulis oleh prosesor, maka
tidak akan ada komputer-komputer digital dengan
system penyimpanan program.
Satuan pokok memori adalah digit biner, yang
disebut bit. Sebuah bit dapat berisi sebuah angka 0
dan 1. Ini adalah satuan yang paling sederhana.
(Sebuah peralatan untuk menyimpan hanya angka nol
mustahil dapat membentuk landasan dari suatu
system memori; paling tidak diperlukan dua nilai).
Memori utama menyediakan
penyimpanan utama untuk komputer .
Dua register CPU yang digunakan untuk
antarmuka CPU ke memori utama:
Memory Address Register ( MAR )
dan
The Memory Data Register
( MDR ): digunakan untuk menyimpan data
yang akan disimpan dan / atau diambil di /
dari lokasi memori yang alamat diadakan di
MAR.
141
Gambar 7. 1
Hal ini dimungkinkan untuk memvisualisasikan
memori internal utama khas Struktur sebagai terdiri
dari baris dan kolom dasar sel . Setiap sel mampu
menyimpan satu bit informasi.
142
Dalam teknologi CMOS statis, setiap sel memori
utama terdiri dari enam transistor . Enam transistor
sel memori CMOS statis terdiri dari dua inverter
kembali ke belakang . Perlu dicatat bahwa sel bisa
ada di salah satu dari dua negara yang stabil. Kedua
transistor N3 dan N4 digunakan untuk
menghubungkan sel ke dua data ( bit ) baris . Jika
kata pilih tidak diaktifkan, dua transistor ini
dimatikan, sehingga melindungi sel dari signalvalues
dibawa oleh garis data. Kedua transistor diaktifkan
ketika kata pilih baris diaktifkan . Apa yang terjadi
143
ketika dua transistor dihidupkan akan tergantung
pada operasi intendedmemory
144
Static CMOS Memory Sel
Alamat-alamat Memori
Memori-memori terdiri dari sejumlah cell-cell
masing-masing dapat menyimpan sepotong informasi.
Setiap cell memiliki sebuah angka, yang disebut
alamat, yang dapat dipakai program-program sebagai
acuan. Jika sebuah memori memiliki n cell, cell-cell
tersebut memiliki alamat-alamat 0 sampai n-1. Semua
cell dalam sebuah memori berisi jumlah bit yang
sama. Jika sebuah cell terdiri dari k bit, cell tersebut
dapat menyimpan salah satu dari 2k kombinasi bit
yang berbeda. Komputer-komputer yang
menggunakan system bilangan biner (termasuk notasi
octal dan heksadesimal untuk bilangan-bilangan
145
biner). Jika sebuah alamat memiliki angka maksimum
dari cell-cell yang dapat dialamatkan adalah 2m.
Signifikansi cell adalah cell merupakan satuan
terkecil yang dapat dialamatkan. Dewasa ini, hamper
semua perusahaan pembuat computer telah
menetapkan sebuah cell 8 bit sebagai standar yang
disebut byte. Byte-byte dikelompokkan dalam word.
Sebuah computer dengan sebuah word 32 bit memiliki
4 byte/word, sementara sebuah computer dengan 64
bit memiliki 8 byte/word. Signifikansi sebuah word
adalah sebagian besar instruksi beroperasi pada
semua word, contoh, dengan menambahkan dua word
bersama-sama. Jadi sebuah mesin 32 bit akan
memiliki register-register 32 bit dan instruksi-
instruksi untuk memanipulasi word 32 bit, sedangkan
sebuah mesin 64 bit akan memiliki register-register
64 bit dan instruksi-instruksi untuk memindakan,
menambahkan, mengurangi, dan sebaliknya
memanipulasi word 64 bit.
Register
Flip-flop tersedia dalam berbagai macam
konfigurasi. Salah-satu konfigurasinya yang
146
sederhana berisi dua flip-flop D independen dengan
sinyal clear dan preset. Meskipun dikemas menjadi
satu dalam chip 14 pin yang sama, kedua flip-flop
tersebut tidak saling berhubungan. Pengaturan yang
sangat berbeda adalah flip-flop oktal. Sementara
salah satu alas an untuk mengelompokkan jalur-jalur
detak dan clear adalah untuk menghemat pin. Dalam
konfigurasi ini chip digunakan dalam cara yang
berbeda dari delapan flip-flop yang tidak berkaitan.
Chip tersebut digunakan sebagai sebuah register 8 bit
tunggal. Atau dapat juga, dua chip seperti itu dapat
digunakan secara parallel untuk membentuk sebuah
register 16 bit dengan menggabungkan pin1 dan pin
11 mereka secara bersama.
Organisasi Memori
Untuk membuat memori berukuran besar
diperlukan suatu organisani berbeda, suatu
organisasi dimana masing-masing word dapat
dialamatkan. Untuk memilih chip memori ini, logika
eksternal harus men-set CS tinggi dan juga men-set
RD tinggi (logika 1) untuk membaca dan rendah
(logika 0) untuk menulis. Kedua jalur alamat harus di-
147
set untuk menunjukkan yang mana dari keempat wor
3 bit harus dibaca atau ditulis. Untuk suatu operasi
membaca, jalur-jalur input tidak digunakan, tetetapi
word yang dipilih ditempatkan pada jalur-jalur output
data. Untuk operasi menulis, bit-bit yang terdapat
pada jalur-jalur input data dimuat ke dalam word
memori yang dipilih: jalur-jalur output data tidak
digunakan.
148
menit, jam, bahkan hari. SRAM sangat cepat. Waktu
akses jenis ini adalah beberapa nano-detik. Karena
itu, SRAM lebih dikenal sebagai cache memori level 2.
Sebaliknya, RAM Dinamik (Dynamic RAM/DRAM)
tidak menggunakan flip-flop. Justru, sebuah RAM
dinamik adalah serangkaian sel-sel, masing-masing
sel berisi satu transistor dan sebuah kapasitor
berukuran kecil. Kapasitor-kapasitor dapat diisi atau
dikosongkan, yang memungkinkan 0 dan 1 dapat
disimpan. Karena muatan listrik biasanya bocor,
setiap bit dalam sebuah RAM dinamik harus dimuati
setiap beberapa milidetik untuk mencegah agar data
tidak bocor atau keluar. Karena logika eksternal
harus memperhatikan pemuatan ulang, RAM dinamik
membutuhkan interface yang lebih kompleks
daripada RAM statik, meskipun dalam dalam banyak
aplikasi kelemahan-kelemahan ini dapat ditutupi oleh
segi kapasitasnya yang lebih besar.
Karena RAM dinamik membutuhkan hanya satu
transistor dan satu kapasitor per bit (bandingkan
enam transistor per bit RAM static yang terbaik), RAM
dinamik memiliki densitas yang sangat tinggi (banyak
bit per chip). Oleh karena itu, memori-memori utama
149
hampir selalu dibuat dari RAM dinamik. Tetetapi,
kapasitas besar ini memiliki kekurangan: RAM
dinamik memiliki kecepatan yang lambat (puluhan
nanodetik). Jadi kombinasi antara cache RAM static
dengan memori utama RAM dinamik mencoba untuk
memadukan keistimewaan-keistimewaan dari masing-
masing RAM.
ROM (Read Only Memory) adalah memori yang
tidak dapat diubah atau dihapus dengan disengaja
ataupun tidak disengaja. Memori ini hanya dapat
dibaca saja. Pengembangan produk dari ROM adalah
PROM (Programmable ROM/ROM yang dapat
diprogram). Sebuah PROM sama seperti sebuah ROM,
kecuali bahwa PROM dapat diprogram (setelah)
digunakan, sehingga meniadakan waktu tunggu.
Banyak PROM berisi sejumlah sekering kecil di bagian
dalam. Sebuah sekering spesifik dapat diputuskan
dengan memilih baris dan kolomnya dan kemudian
menggunakan teangan tinggi ke suatu pin khusus
pada chip. Lebih singkatnya PROM adalah salah satu
jenis ROM yang dapat memprogram ROM setelah ROM
tersebut digunakan.
150
Pengembangan selanjutnya pada jalur ini adalah
EPROM (Erasable PROM/PROM yang dapat dihapus),
yang tidak dapat hanya diprogramkan dilapangan
tetapi juga dapat dihapus. EPROM biasanya memiliki
organisasi yang sama seperti RAM statik.
Memori adalah bagian dari komputer tempat
program-program dan data-data disimpan (William
Stalling). Memori dalam komputer dibedakan mejadi 2
yaitu: memori internal dan memori eksternal. Memori
iternal yaitu memori yang dapat diakses langsung
oleh prosesor dalam hal ini memori internal dibagi
menjadi 3 yaitu: register yang berada pada prosesor,
cache memori, dan memori utama yang berada diluar
prosesor. Sedangkan memori eksternal adalah
memori yang diakses melalui I/O contohnya hardisk.
Memori eksternal ini biasanya berkapasitas lebih
besar karena berisi data-data yang diolah suatu
program.
Memori dalam prosesnya memiliki beberapa
operasi pada sel-selnya. Sel-sel memori ini memiliki
beberapa sifat antara lain:
151
1. Meiliki 2 keadaan stabil, yang
dapat mempresentasikan operasi dengan
angka biner yaitu 1 dan 0
2. Sel-sel memori mampu unutuk
ditulisi atau diisi (write)
3. Sel-sel memori mempunyai
kemampuan untuk dibaca (read)
Dalam operasinya sel memori mempunyai 3
terminal. Untuk operasi write, terminalnya adalah
select, control dan data in. Sedangkan untuk operasi
write adalah select, control dan sense. Terminal
select inilah yang mendeteksi bahwa suatu operasi
akan dijalankan atau tidak dengan menggunakan
anka biner yang terdeteksi (1 dan 0).
Memori utama bersifat volatile (sementara)
dimana hanya menyimpan data dan program selama
komputer hidup (memiliki power/daya listrik). Cara
kerjanya adalah:
1. Memori utama mengambil data dan
program dari memori eksternal (hardisk, dll)
untuk diolah (data dan program yang diambil
tersebut adalah data dan program yang telah
di copy).
152
2. Sementara diolah, data dan
program yang asli masih utuh dalam memori
sekunder. CPU mengeksekusi data dan
program dari RAM. Jika ingin menyimpan
secara permanen maka perubahan data dan
program itu dikirim kembali ke memori
sekunder (save file to disk).
Memori mempunyai beberapa sistem pemetaan
yang dapat digunakan. Alasan mengapa memori harus
dipetakan karena kapasitas cache yang lebih kecil
dari memori utama. Oleh karena itu perlu dipilih blok-
blok mana yang akan masuk dal cache memori agar
tidak terjadi overload. Sistem pemetaan tersebut
adalah: pemetaan langsung, pemetaan asosiatif dan
pemetaan asosiatif set.
Pemetaan langsung adalah pemetaan yang
paling sederhana karena hanya memetakan blok
memori pada satu saluran cache saja. Dalam sistem
ini bagian alamat blok memori utama berfungsi
sebagai nomor saluran cache. Ketika suatu blok data
sedang diakses atau dibaca terhadap saluran yang
diberikan, maka perlu memberikan tagatau tanda
bagi data untuk membedakannya dengan blok-blok
153
lain yang sesuai dengan saluran tersebut. Kelemahan
pada system ini adalah lokasi cache yang tetap bagi
semua blok. Jika blok-blok yang dipetakan ada pada 1
saluran yang sama maka blok-blok tersebut akan di
swap terus menerus kedalam cache sehingga hit
rasionya rendah.
Pemetaan asosiatif bertujuan untuk
maksimalkan hit rasio pada cache. Prosesnya adalah
dengan cara setiap blok dapat masuk ke sembarang
saluran cache. Alamat memori utama dijadikan kode
nomor pada field tag dan field word. Alamat-alamat ini
berfungsi sebagai kode saluran. Mekanismenya
adalah dengan cara memeriksa setiap tag oleh
control logika cache. Dalam hal ini pemetaan tersebut
lebih fleksibel karena blok-blok baru dapat diganti
sehingga hit rasionya tinggi. Kelemahan pada system
ini adalah biayanya yang mahal karena rangkaiannya
yang kompleks.
Pemetaan asosiatif set menggabungkan
kelebihan yang ada pada pemetaan langsung dan
pemetaan asosiatif. Proses dalam pemetaan ini
adalah emori-memori dalam cache dibagi dalam
bentuk set-set yang berbeda. Pemetaan asosiatif set
154
prinsipnya adalah penggabungan kedua pemetaan
sebelumnya. Alamat memori utama diinterpretasikan
dalam tiga field, yaitu: field tag, field set, dan field
word. Hal ini mirip dalam pemetaan langsung. Setiap
blok memori utama dapat dimuat dalam sembarang
saluran cache. Set-set tersebut diberi nomor sesuai
dengan jumlah saluran. Nomor set mengidentifikasi
set yang ada pada setiap saluran di dalam cache.
Nomor set ini juga memberikan jumlah blok di dalam
memori utama. Sedangkan jumlah blok menentukan
pemetaan blok terhadap saluran. Sembarang blok
tersebut dapat dimuatkan ke salah satu dari kedua
saluran di dalamset. Oleh karena itu tidak terdapat
dua blok yang memetakannya terhadap set cache
yang sama memiliki nomor tag yang sama. Untuk
operasi read, nomor set dipakai untuk menentukan
set pada saluran yang akan diuji. Saluran-saluran di
dalam set diuji untuk mendapatkan nomor saluran
yang cocok dengan nomor tag alamat yang akan
diakses.
Dalam pemetaan asosiatif dan pemetaan
asosiatif set diperlukan suatu algoritma untuk
mengatur pergantian blok-blok memori baru dan lama
155
pada cache. Algoritma ini berfungsi untuk
meningkatkan kinerja komputer. Algoritma ini disebut
algoritma penggantian. Algoritma penggantian yang
sering digunakan yaitu LRU (Least Recently Used),
FIFO (First In First Out), LFU (Last Frequently Used)
dan algoritma Random. Algoritma yang paling efektif
adalah Least Recently Used (LRU), yaitu mengganti
blok data yang terlama berada dalam cache dan tidak
memiliki referensi. Algoritma First In First Out (FIFO),
yaitu mengganti blok data yang pertama masuk.
Kemudian Least Frequently Used (LFU) adalah
mengganti blok data yang mempunyai referensi paling
sedikit. Algoritma Random, yaitu penggantian tidak
berdasakan pemakaian datanya, melainkan berdasar
slot dari beberapa slot kandidat secara acak.
Read Only Memory merupakan bentuk
penyimpanan data pada komputer dan berbagai
perangkat elektronik lainnya termsuk smartphone
maupun tablet yang tidak akan dapat dengan mudah
untuk diprogram atau diubah. Selain itu, Read Only
Memory sendiri berfungsi sebagai tempat
penyimpanan data internal yang digunakan untuk
meletakkan atau menaruh Sistem Operasi (OS)
156
beserta dengan seluruh sistem - sistem yang terdapat
di dalamnya.
ROM sendiri berbanding terbalik
dengan RAM atau bersifat permanen (nonvolatile),
yang artinya program atau data yang telah disimpan
di dalamnya tidak akan mudah berubah atau hilang
meskipun aliran listrik dipadamkan/dimatikan. Salah
satu contoh dari ROM ialah ROM BIOS yang berisikan
program-program dasar dari sistem komputer yang
berfungsi menyiapkan atau mengatur semua
komponen atau peralatan yang terdapat di dalam
komputer disaat komputer dinyalakan. Jenis-jenis
ROM:
1. PROM (Programmable Read Only
Memory), yaitu ROM yang dapat deprogram
sekali saja dan tidak dapat diubah kembali
2. EPROM (Erasable Programmable
Read Only Memory), yaitu ROM yang dapat
dihapus dengan sinar ultra violet serta
dapat diprogram kembali berulang-ulang
3. EEPROM (Electrically Erasable
Programmable Read Only Memory), yaitu
157
ROM yang dapat dihapus secara elektronik
dan dapat diprogram kembali.
Jika CPU merupakan otak dari sebuah komputer,
maka memory merupakan komponen pembantu kerja
CPU dalam melakukan kegiatan pemrosesan data
atau pengeksekusian sebuah perintah. Program dan
perintah yang akan dieksekusi oleh processor,
sebelumnya disimpan terlebih dahulu dalam sebuah
memori.
Beberapa tokoh mendefinisikan memori sebagai
berikut:
Tanembaun, 2001
“Memori merupakan bagian dari komputer
tempat berbagai program dan data-data disimpan”
158
Hirarki Memori
Sebuah sistem komputer memiliki berbagai jenis
memori yang memiliki kinerja, kapasitas dan
kecepatan berbeda sesuai dengan tingkat hirarkinya.
Memori yang memiliki hirarki yang paling atas,
memiliki tingkat kecepatan yang paling tinggi tetetapi
memiliki kapasitas (kemampuan menyimpan data)
paling rendah.
Sesuai tingkat hirarkinya dibedakan sebagai
berikut:
1. Register
2. Cache Memory (Static RAM)
a. Internal Cache
b. External Cache
3. Memori Utama (Dynamic RAM)
4. Memory Sekunder
a. Magnetic Disk
b. Optical Disk
c. Magnetic Tape
1. Register
Register merupakan memori dengan hirarki yang
paling tinggi. Berada dalam chip sebuah processor
dan merupakan bagian integral dari processor itu
159
sendiri. Register merupakan memori dengan
kemampuan proses paling cepat, dimana proses baca
dan tulis dilakukan dalam satu siklus detik.
2. Cache Memory
Cache memiliki kapasitas kecil tetetapi
berkecepatan tinggi dan dipasang di antara processor
dan memori utama. Memori ini dibuat dengan latar
belakang oleh adanya perbedaan kecepatan operasi
antara processor dan memori utama yang bisa
menjadi kendala bagi dicapainya efisiensi kerja
sistem komputer.
3. Memori Utama
Memori utama dibuat dari bahan yang bersifat
dinamis sehingga juga disebut sebagai Dynamic RAM.
Harganya lebih murah, tidak cepat panas tetetapi
proses yang dilakukannya tidak secepat memori
statis. Lebih dikenal dengan RAM (Random Access
Memory). Disebut sebagai memory utama karena
berhubungan langsung dengan processor dalam
menyediakan program dan data yang dibutuhkan.
4. Memori Sekunder
Menyediakan media penyimpanan sekunder
dalam jangka waktu lama untuk program dan data
160
yang kadang dibutuhkan, tetetapi tidak secara aktif
(biasanya terdiri dari unit disk yang terhubung secara
elektronik ke sistem).
161
162
BAB 8
DESIGN DAN
ORGANISASI INPUT-
OUTPUT
Pendahuluan
Desain Input-Output dan Organisasi merupakan
peralatan antarmuka (interface) bagi sistem bus atau
switch sentral dan mengontrol satu atau lebih
perangkat peripheral. Arti lain dari Organisasi input-
output tidak hanya sekedar sebagai modul
penghubung, tetetapi sebuah piranti yang berisi
logika dalam melakukan fungsi komunikasi antara
peripheral dan bus komputer. Organisasi input-output
mempunyai dua fungsi utama yaitu sebagai piranti
antarmuka ke CPU dan memori melalui bus system
163
dan sebagai piranti antarmuka dengan peralatan
peripheral lainnya dengan menggunakan link data
tertentu. Disisi lain organisasi input-output memiliki
fungsi yang tak kalah penting yaitu sebagai berikut:
1. Bertanggung jawab atas pengontrolan
sebuah perangkat luar atau lebih.
2. Bertanggung jawab pula dalam
pertukaran data antara perangkat luar tersebut
dengan memori utama ataupun dengan register-
register CPU.
3. Antarmuka internal dengan komputer
(CPU dan memori utama).
4. Antarmuka dengan perangkat
eksternalnya untuk menjalankan fungsi-fungsi
pengontrolan.
Desain input-output dan organisasi berisi sebuah
pengaturan yang sederhana untuk menghubungkan
prosesor dan memori dalam mengingat sistem
komputer ke perangkat input dan perangkat output.
Dalam sebuah bus tunggal, terdiri dari alamat yang
diperlukan, data, dan garis kontrol yang digunakan
untuk menghubungkan sistem komponen. Ada
susunan yang disebut dengan shared I/O. Dalam
164
susunan pertama, perangkat I/O menugaskan alamat
tertentu, kemudian mengasingkan dari ruang alamat
yang ditugaskan ke memori. Pelaksanaan intruksi
input pada alamat perangkat input akan
menyebabkan karakter yang tersimpan dalam daftar
input dari perangkat yang akan ditransfer ke daftar
khusus di CPU. Demikian pula, pelaksanaan perintah
output pada alamat perangkat output akan
menyebabkan karakter yang tersimpan dalam daftar
tertentu dalam CPU yang akan ditransfer ke daftar
output perangkat output. Keuntungan utama dari
shared I/O adalah pengaturan pemisahan antara
ruang alamat memori dan share I/O dari I/O device.
Kerugian utamanya adalah kebutuhan untuk memiliki
petunjuk input dan Output khusus dalam kumpulan
instruksi prosesor. Pengaturan shared I/O sebagian
besar diadopsi oleh Intel. Kemudian ada susunana
yang disebut dengan pemetaan I/O. Yaitu dengan
menguraikan input dan output register seolah-olah
mereka adalah memori biasa. Dalam hal ini, operasi
baca dari alamat yang sesuai dengan daftar input dari
perangkat input, misalnya, baca Device6, adalah
setara dengan melakukan input operasi dari input
165
register perangkat # 6. Demikian pula, operasi tulis ke
alamat yang sesuai untuk daftar output dari
perangkat output, misalnya menulis Device9, setara
dengan melakukan sebuah operasi keluaran ke output
mendaftar dalam Device # 9. Keuntungan utama dari
pemetaan memori I/O adalah penggunaan instruksi
baca dan tulis dari prosesor untuk melakukan operasi
input dan output, secara berturut-turut. Hal ini
menghilangkan kebutuhan selama memperkenalkan
petunjuk I/O khusus. Kerugian utama dari pemetaan
memori I/O adalah kebutuhan untuk menyediakan
bagian tertentu dari ruang alamat memori untuk
menangani perangkat I/O, yaitu, pengurangan ruang
alamat memori yang tersedia. Pemetaan Memori I/O
telah banyak diadopsi oleh Motorola.
Proses fungsi komunikasi antara CPU dan modul
I/O Command Decoding, yaitu modul I/O menerima
perintah-perintah dari CPU yang dikirimkan sebagai
sinyal bagi bus kontrol. Misalnya, sebuah modul I/O
untuk disk dapat menerima perintah: Read sector,
Scan record ID, Format disk. Data, pertukaran data
antara CPU dan modul I/O melalui bus data. Status
Reporting, yaitu pelaporan kondisi status modul I/O
166
maupun perangkat peripheral, umumnya berupa
status kondisi Busy atau Ready. Juga status
bermacam-macam kondisi kesalahan (error). Address
Recognition, bahwa peralatan atau komponen
penyusun komputer dapat dihubungi atau dipanggil
maka harus memiliki alamat yang unik, begitu pula
pada perangkat peripheral, sehingga setiap modul I/O
harus mengetahui alamat peripheral yang
dikontrolnya.
Tujuan utama dari buffer adalah mendapatkan
penyesuaian data sehubungan perbedaan laju transfer
data dari perangkat peripheral dengan kecepatan
pengolahan pada CPU. Laju transfer data dari
perangkat peripheral lebih lambat dari kecepatan
CPU maupun media penyimpanan. Ada empat
kalsifikasi perintah I/O, yaitu:
1. Perintah control.
Perintah ini digunkan untuk mengaktivasi
perangkat peripheral dan memberitahukan tugas yang
diperintahkan padanya.
2. Perintah test.
Perintah ini digunakan CPU untuk menguji
berbagai kondisi status modul I/O dan peripheralnya.
167
CPU perlu mengetahui perangkat peripheralnya dalam
keadaan aktif dan siap digunakan, juga untuk
mengetahui operasi-operasi I/O yang dijalankan serta
mendeteksi kesalahannya.
3. Perintah read.
Perintah pada modul I/O untuk mengambil suatu
paket data kemudian menaruh dalam buffer internal.
Proses selanjutnya paket data dikirim melalui bus
data setelah terjadi sinkronisasi data maupun
kecepatan transfernya.
4. Perintah write.
Perintah ini kebalikan dari read. CPU
memerintahkan modul I/O untuk mengambil data dari
bus data untuk diberikan pada perangkat peripheral
tujuan data tersebut.
Memprogramkan I/O
Ada beberapa langkah yang harus diikuti dalam
memprogram I /O, sebagai berikut:
1. Prosesor mengeksekusi instruksi input
dari perangkat 6, misalnya, INPUT 6. Pengaruh
dari pelaksanakan instruksi ini adalah untuk
mengirimkan nomor perangkat ke sirkuit alamat
168
decoder di setiap perangkat input untuk
mengidentifikasi perangkat input tertentu untuk
terlibat. . Dalam hal ini, output dari decoder di
Device # 6 akan diaktifkan, sementara output dari
semua Decoder lain akan dinonaktifkan.
2. The buffer (pada gambar kita
mengasumsikan bahwa ada 8 buffer tersebut)
memegang data di perangkat input yang
ditetapkan (Perangkat # 6) akan diaktifkan oleh
output dari sirkuit alamat decoder.
3. Data Output buffer yang diaktifkan akan
tersedia pada bus data.
4. Perintah pemecahan kode akan gerbang
dari data yang tersedia pada bus data ke input
dari register tertentu dalam CPU, biasanya
akumulator.
Operasi output dapat dilakukan dengan cara
yang sama. Satu-satunya perbedaan akan menjadi
arah transfer data, yang akan berasal dari daftar CPU
tertentu ke daftar output di perangkat output yang
ditetapkan. Operasi I/O yang dilakukan dengan cara
ini disebut Programmed I/O. Itu dilakukan di bawah
CPU control. Sebuah instruksi lengkap mengambil,
169
membaca sandi, dan mengeksekusi siklus harus bisa
dieksekusi untuk setiap Operasi Input dan output.
Programmed I/O berguna dalam kasus-kasus dimana
satu karakter pada satu waktu yang akan ditransfer.
Suatu mekanisme harus diadopsi dalam rangka
menangani perbedaan kecepatan yang cukup besar
antara perangkat I/O dan prosesor. Sebagai contoh,
memastikan bahwa karakter dikirim ke daftar output
dari prangkat output, seperti layar, tidak lagiditulis
oleh processor (karena kecepatan tinggi prosesor)
sebelum itu ditampilkan dan bahwa karakter yang
tersedia dalam daftar input dari keyboard dibaca
hanya sekali oleh prosesor. Mekanisme yang dapat
diterapkan memerlukan ketersediaan Status Bit
dalam interface masing-masing perangkat input dan
Status Bit dalam interface masing-masing perangkat
output. Setiap kali perangkat input memiliki karakter
yang tersedia dalam dafrar input, hal ini menunjukkan
bahwa dengan menetapkan �it=1. Sebuah program di
prosesor dapat digunakan untuk terus memantau �it.
Ketika program melihat bahwa �it=1, maka akan
menterjemahkan bahwa pertengahan karakter
tersedia dalam input register ke perangkat. Membaca
170
karakter tersebut akan memerlukan protokol
dijelaskan sebelumnya. Setiap kali karakter dibaca,
program ini dapat mengatur ulang �it = 0, sehingga
menghindari beberapa kali membaca dari karakter
yang sama. Dengan cara yang sama, prosesor dapat
menyimpan karakter dalam Output register perangkat
output hanya ketika �it = 0.
Hanya setelah perangkat output telah
menunjukkan karakter yang set �it = 1, menunjukkan
kepada program monitoring bahwa perangkat output
siap untuk menerima karakter berikutnya. Proses
pemeriksaan status perangkat I/O diperintahkan
untuk menentukan kesiapannya untuk menerima
dan/atau mengirim karakter, adalah disebut Software
I/O Polling. Selain I/O Polling, dua mekanisme lain
dapat digunakan untuk melaksanakan operasi I/O:
Interrupt-driven I/O.
Di dalam Komputer terdapat berbagai macam
perangkat keras (hardware) yang banyak dan
mempunyai fungsi yang berbeda-beda setiap
perangkatnya. Dengan adanya hal tersebut di dalam
pemprosesan suatu perintah komputer harus ada
pengaturan di setiap perintah-perintah yang akan
171
dijalankan. Begitulah fungsi utama dari Interupt
Hardware, dengan kemampuan Hardware Interrupt
dalam bentuk Interrupt Garis khusus untuk
membantu proses prosesor. Interrupt garis ini
digunakan untuk mengirim suatu sinyal interupt ke
prosesor, maka dariitu prosesor harus dilengkapi
dengan suatu mekanisme yang memungkinkan untuk
menangani suatu atau beberapa permintaan interupsi
simultan dan untuk mengenali hal-hal yang
mengganggu perangkat. Ada 2 skema dasar yang
diterapkan untuk melakukan tugas ini, yaitu:
a. Daisy Rantai Bus Arbitrase ( DCBA )
172
Selain adanya interupsi hardware yang ada di
dalam komputer, ada pula Interupsi dalam sistem
operasi yang di jalankan, ketika suatu interupsi
terjadi sistem operasi memperoleh kontrol dalam
mengatur interupsi yang ada di dalam komputer
tersebut. Sistem operasi menyimpan keadaan dari
proses interupt, analisis interupt, dan melewati
kontrol yang mengawasi secara rutin dan menangani
interupt yang sedang terjadi. Beberapa interupsi yang
terjadi diantaranya adalah I/O interupsi. Sebuah
Input / Output interupt memberitahukan kepada
sistem operasi bahwa perangkat Input / Output telah
selesai, sedang berjalan, atau menghentikan operasi
menurut kebutuhan yang dibutuhkan oleh CPU
173
Dalam proses interupsi, proses saat ini atau
yang sedang terjadi harus disimpan dan ditangani
secara rutin dan menunggu untuk interupsi
selanjutnya, proses ini disebut juga konteks
Switching. Konteks proses juga mempunyai dua
bagian yaitu:
a. Konteks processor: adalah keadaan
register CPU termasuk program counter (PC),
program status kata ( PSWs ) dan register yang
lainnya.
b. Konteks memory: adalah keadaan
memory program termasuk program dan data.
174
Akhirnya, kontrol dilepaskan kembali ke
proses yang memprakarsai I / O.
c. Direct Memory Access ( DMA ).
Ada dua implementasi perintah dalam instruksi
I/O:
1. Memory-mapped I/O
Terdapat ruang tunggal untuk lokasi memori dan
perangkat I/O. CPU memperlakukan register status
dan register data modul I/O sebagai lokasi memori
dan menggunakan instruksi mesin yang sama untuk
mengakses baik memori maupun perangkat I/O.
Konskuensinya adalah diperlukan saluran tunggal
untuk pembacaan dan saluran tunggal untuk
penulisan. Keuntungan memory-mapped I/O adalah
efisien dalam pemrograman, namun memakan banyak
ruang memori alamat.
2. Isolated I/O
Dilakukan pemisahan ruang pengalamatan bagi
memori dan ruang pengalamatan bagi I/O. Dengan
teknik ini diperlukan bus yang dilengkapi dengan
saluran pembacaan dan penulisan memori ditambah
saluran perintah output. Keuntungan isolated I/O
adalah sedikitnya instruksi I/O.
175
Direct Memory Access ( DMA ) adalah untuk
memungkinkan perangkat periferal untuk memotong
"middle man" ( penengah ) mengatur peran CPU
dalam transfer data. Hal ini memungkinkan perangkat
periferal untuk mentransfer data langsung dari
dan memori tanpa campur tangan CPU. Memiliki
perifer perangkat akses memori secara langsung
akan memungkinkan CPU untuk melakukan pekerjaan
lain, yang akan mengakibatkan meningkatkan kinerja,
terutama dalam kasus-kasus besar transfer .
The DMA controller adalah bagian dari perangkat
keras yang mengontrol satu atau lebih perangkat
periferal . Hal ini memungkinkan perangkat untuk
mentransfer data ke atau dari memori sistem tanpa
bantuan prosesor . Dalam beberapa transfer DMA,
suatu peristiwa memberitahu DMA pengontrol data
perlu ditransfer ke atau dari memori . Kedua DMA dan
CPU bus menggunakan memori dan hanya satu atau
yang lainnya dapat menggunakan memori pada waktu
yang sama . DMA controller kemudian mengirimkan
permintaan ke CPU meminta izin untuk menggunakan
176
bus CPU mengembalikan pengakuan kepada DMA
kontroler pemberian itu akses bus .
The DMA sekarang dapat mengontrol bus ke
secara independen melakukan perpindahan memori
Setelah transfer selesai, DMA relinquishes nya kontrol
dari bus ke CPU . Prosesor yang mendukung DMA
menyediakan satu atau lebih masukan sinyal bahwa
pemohon bus dapat menyatakan untuk mendapatkan
kontrol bus dan satu atau lebih keluaran sinyal bahwa
CPU menegaskan untuk menunjukkan itu telah
melepaskan bus .
177
3. Ketika jumlah kata mencapai nol, DMA
memberitahu CPU dari terminasi dengan cara
interupsi .
4. CPU mendapatkan kembali akses ke bus
memori .
BUS
Bus adalah Jalur komunikasi yang dibagi
pemakai Suatu set kabel tunggal yang digunakan
untuk menghubungkan berbagai subsistem. Sistem
bus adalah penghubung bagi keseluruhan komponen
computer dalam menjalankan tugasnya.
178
Beberapa sistem bus yang terdapat pada
komputer, yaitu:
1. Synchronous Bus
Dalam bus sinkron, langkah-langkah transfer
data berlangsung disiklus jam tetap. Semuanya
disinkronkan dengan bus clock dan sinyal clock yang
dibuat tersedia untuk kedua master dan slave. Siklus
dalam bus sinkron dimulai pada salah satu tepi jam
dan berakhir di tepi yang lain, dan tepi terakhir itu
adalah bagian awal dari siklus yang selanjutnya.
Sebuah transfer dapat mengambil beberapa siklus
bus tergantung pada kecepatan parameter bus dan
kedua ujung transfer.
Bus Synchronous sederhana dan mudah
diimplementasikan. Namun, ketika menghubungkan
perangkat dengan kecepatan yang berbeda-beda
untuk bus sinkron, perangkat paling lambat akan
menentukan kecepatan bus. Panjang bus sinkron pun
bisa dibatasi untuk menghindari masalah jam-
skewing.
179
Gambar Synchronous Timing Diagram
Bus sinkron biasanya lebih cepat daripada bus
asynchronous karena tidak ada overhead untuk
membangun referensi waktu untuk setiap transaksi.
Alasan lain yang membantu bus sinkron beroperasi
cepat adalah bahwa protokol bus sudah ditentukan
sebelumnya dan sangat sedikit logika terlibat dalam
menerapkan keadaan mesin yang terbatas.
Sedangkan kekurangan dari transmisi sinkron adalah
hardware yang digunakan lebih maahal serta
desainnya lebih kompleks.
2. Asynchronous Bus
180
Gambar Asynchronous Timing Diagram
Asynchronousbus adalah sebuah bus yang
menghubungkan perangkat sistem komputer dimana
transfer informasi antara perangkat self-timed bukan
dikendalikan oleh sinyal clock sinkronisasi. Sebuah
perangkat yang terhubung menunjukkan kesiapannya
untuk transfer dengan mengaktifkan sinyal
permintaan. Sebuah perangkat menanggapi
menunjukkan penyelesaian transfer ini dengan
mengaktifkan sinyal mengakui. Waktu yang
diperlukan untuk menyelesaikan transaksi ditentukan
oleh waktu respon dari perangkat dan keterlambatan
sepanjang bus interkoneksi dan dapat bervariasi
untuk berbagai perangkat.
Dalam asynchronous bus, langkah-langkah
protokolnya tidak dipandu oleh sinyal clock. Sebagai
gantinya, digunakan handshaking. Handshaking
181
dilakukan untuk melakukan transmisi data secara
benar antara pengirim dan penerima. Seperti pada
gambar di atas, master menegaskan baris data-
ready(point 1 pada gambar) sampai melihat sinyal
dari data-accept. Ketika slave melihat sinyal data-
ready, maka akan menegaskan garis data-accept
yaitu titik 2 pada gambar di atas. Meningkatnya garis
data-sccept akan memicu kejatuhan dari baris data-
ready dan penghapusan dari data-bus. Jatuhnya baris
data-ready yaitu point 3 dalam gambar, akan memicu
jatuhnya garis data-accept atau pada gambar diatas
dituliskan dengan angka 4. Handshaking ini, yang
disebut saling terkait secara penuh, dan akan diulang
sampai data benar-benar ditransfer. Asynchronous
bus sesuai untuk perangkat dengan kecepatan yang
berbeda.
Kekurangan dari transmisi asynchronous adalah
besar biaya overhead relatif, propirsi tinggi bit
ditransmisikan secara unik untuk tujuan
pengendalian sehingga tidak membawa informasi
yang berguna. Meskipu begitu, kelebihan dari
transmisi asynchronous adalah murah, karena
182
transmisi Asynchronous tidak terlalu banyak
memerlukan perangkat keras.
3. ArbitraseBus
a. Sentralisasi Arbitrase
Dalam skema arbitrase terpusat, arbiter tunggal
digunakan untuk memilih master berikutnya. Bentuk
sederhana arbitrase terpusat menggunakan jalur bus
permintaan, jalur hibah bus, dan jalur bus sibuk.
Setiap baris tersebut dibagi oleh master potensial,
yang daisy-dirantai dalam kaskade. Masing-masing
master potensial dapat mengajukan permintaan bus
setiap saat. Prioritas tetap diatur antara dari kiri ke
kanan.
184
Perangkat yang memintaakan
membuatnomorarbitraseyang unikyang tersedia
untuk semuaperangkat lain.
Setiap perangkatakan
membandingkanjumlah tersebutdengan
nomorarbitrasesendiri.
Perangkatdenganjumlahyang lebih
kecilselaludiberhentikan.
Akhirnya, perangkat pemintadengan
nomorarbitrasetertinggiakanbertahan
dandiberikan aksesbus.
Input-Output Interface
Interface merupakan jalur data antara dua
perangkat yang terpisah dalam sistem komputer.
Interface ke bus dapat diklasifikasikan berdasarkan
jumlah bit yang ditransmisikan pada waktu tertentu
ke serial port paralel dibandingkan. Dalam port serial,
hanya 1 bit data transfer merah pada suatu waktu.
Tikus dan modem biasanya terhubung ke port serial.
Sebuah port paralel memungkinkan lebih dari 1 bit
data yang akan diproses sekaligus. Printer adalah
185
perangkat periferal yang paling umum yang terhubung
ke port paralel.
Ringkasan dariberbagaibus daninterface yang
digunakan dalamkomputer pribadi (Abd-El-Barr, 2005:
181):
Bus/In
Description
terface
Suatu jenisport (atau interface)yang
dapat digunakanuntuk
PS/2 menghubungkanmouse dan keyboardke
komputer. ThePS/2 portkadang-kadang
disebutport mouse.
ISAawalnyabus8-bit dankemudian
diperluaskebus16-bit pada tahun 1984.
Pada tahun 1993,
Indust
InteldanMicrosoftmemperkenalkanplug
ry Standart
and playbusISAyang
Architectur
memungkinkankomputeruntuk secara
e (ISA)
otomatis mendeteksidan
mengaturperipheralISAkomputer
sepertimodemataukartu suara.
Exten EISAmerupakan bentukyang
ded disempurnakanISA, yang
Industry memungkinkanuntuk transfer data32-bit,
Standart sambil mempertahankandukungan untuk8-
Architectur dan papanekspansi16-bit. Namun,
186
kecepatanbusnya, sepertiISA, hanya8MHz.
e (EISA) EISAtidak banyak digunakan, karena
biayayang tinggi dansifat yang rumit.
MCA diperkenalkan oleh IBM pada
tahun 1987. Ini menawarkan beberapa fitur
Micro tambahan atas ISA seperti bus 32-bit,
Channel kartu otomatis dikonfigurasi dan bus
Architectur mastering untuk efisiensi yang lebih besar.
e (MICA) Hal ini sedikit lebih unggul EISA, tetetapi
tidak banyak papan ekspansi yang pernah
dibuat agar sesuai spesifikasi MCA.
TheVESA, sebuah organisasi nirlaba
VESA yangdidirikan olehNEC, merilisVLBpada
(Video tahun 1992. Ini adalahbus32-bit yang
Electronics memilikiakses langsung kememori
Standards sistempada kecepatanprosesor,
Association biasanya486CPU(33/40 MHz). VLB2.
) Local Bus 0kemudian dirilispada tahun 1994dan
(VLB) memilikibus64-bitdan
kecepatanbusdari50MHz.
Periph PCIdiperkenalkan olehIntelpada
eral tahun 1992, direvisipada tahun 1993ke
Component versi 2. 0, dankemudian direvisipada tahun
Interconnec 1995 untukPCI2. 1. Ini adalahbus32-
t (PCI) bityangjuga tersediasebagaibus64-bitsaat
ini. Banyak
187
papanekspansimodernterhubung
keslotPCI.
AGPdiperkenalkan olehIntelpada
tahun 1997. AGPadalahbus32-bit yang
dirancanguntuk kebutuhantinggigrafis 3D.
AGPmemiliki garislangsungke memori,
Advan yang memungkinkanelemen 3Duntuk
ced Graphic disimpandalam
Port (AGP) memorisistembukanmemorivideo.
AGPdiarahkandata-intensifkartu grafis,
seperti akselerator3D;
yangterendahdesainaluntukthroughput
dataatrmakanmurah dari266MB/s.
USB adalah bus eksternal
Mengembangkan dby Intel, Compaq,
Desember, IBM, Microsoft, NEC dan
Northern Telcom. Dirilis pada tahun 1996
Univer
dengan Intel 430HX Tr iton II Mother Board.
sal Series
USB memiliki kemampuan mentransfer 12
Bus (USB)
Mbps, mendukung sampai 127 perangkat.
Banyak perangkat yang dapat dihubungkan
ke port USB, yang mendukung plug and
play.
Fire FireWireadalah jenisbuseksternal,
Wire (IEEE yang mendukungkecepatan transfersangat
1394) cepat: 400Mbps. Karena itu, FireWirecocok
188
untukmenghubungkanperangkat video,
seperti VCRke komputer.
SCSIadalah jenisparalel
interfaceyang umum
digunakanuntukmassaperangkat
Small
penyimpanan. SCSIdapat mentransfer data
Computer
padatingkat4MB/s; Di samping itu,ada
System
beberapajenisSCSIyang
Interface
mendukungkecepatan yang lebih tinggi:
(SCSI)
SCSICepat(10 MB/s), UltraSCSIdan
CepatLuasSCSI(20 MB/s), sertaUltra
WideSCSI(40 MB/s).
IDEadalah interfaceyang umum
Integr
digunakanuntukdrivehard diskdanCD-ROM
ated Drive
drive. Hal inilebih murah daripadaSCSI,
Electronics
tetapi menawarkansedikit kurangdalam hal
(IDE)
kinerja.
Enhan EIDEmerupakan
ced penyempurnaandariIDE, yang
Integrated menawarkankinerja yang lebih
Drive baikdaripadaSCSIstandar. Ia
Electronics menawarkankecepatan
(EIDS) transferantara4dan16,6MB/s.
PCI-X PCI-X buskinerja tinggiyang
dirancang untukmemenuhi
meningkatnyaI/Otuntutanteknologi
sepertiFibre Channel, GigabitEthernet,
189
danUltra3SCSI.
Comm PCI-X buskinerja tinggiyang
unication dirancang untukmemenuhi
and meningkatnyaI/Otuntutanteknologi
Network sepertiFibre Channel, GigabitEthernet,
Riser (CNR) danUltra3SCSI.
190
BAB 9
PIPELINING
Konsep Umum
Pipelining merupakan cara efektif untuk
mengatur aktifitas konkuren dalam system komputer.
Ide dasarnya sangat sederhana. Hal ini sering ditemui
di dalam pabrik, dimana pipelining umumnya dikenal
sebagai operasi assembly-line. Sebagai sistem
komputer yang berkembang, agar kinerjanya lebih
besar dapat dicapai dengan mengambil keuntungan
dalam teknologi, seperti sirkuit yang lebih cepat.
Pada umumnya, efisiensi sebuah sistem komputer
dinilai berdasarkan kecepatan perangkat keras dan
fasilitas-fasilitas perangkat lunak. Penilaian ini,
disebut sebagai throughput, didefinisikan sebagai
jumlah pemrosesan yang dapat dikerjakan dalam
191
suatu interval waktu tertentu. Salah satu teknik yang
mendorong peningkatan suatu sistem throughput
yang cukup hebat disebut sebagai pemrosesan
pipeline. Konsep pemrosesan pipeline dalam suatu
komputer mirip dengan suatu baris perakitan dalam
suatu pabrik industri. Ambil contoh, suatu proses
pembuatan mobil. Ketika sebuah mobil dibuat, mobil
tersebut berpindah sepanjang ban berjalan dengan
berurutan, melewati beberapa stasiun. Pada setiap
stasiun, dikerjakan sebagian proses konstruksi pada
mobil itu, kemudian berpindah lagi ke stasiun
berikutnya. Perpindahan mobil itu dari satu stasiun ke
stasiun lainnya, memungkinkan beberapa mobil
berada pada baris perakitan pada waktu yang
bersamaan, masing-masing pada stasiun yang
terpisah. Selain itu, organisasi perangkat tambahan
untuk prosesor dapat meningkatkan kinerja komputer.
Sebagai contohnya seperti penggunaan beberapa
register tunggal akumulator, dan penggunaan memori
cache. Pendekatan organisasi secara umum, adalah
instruksi pipelining. Instruksi pipelining ini mirip
dengan penggunaan jalur perakitan di manufaktur
tanaman. Jalur perakitan itu mengambil keuntungan
192
dari berbagai fakta bahwa produk itu berjalan melalui
berbagai tahap produksi. Dengan meletakkan proses
produksi di jalur perakitan, beberapa produk pada
berbagai tahap dapat bekerja secara bersamaan.
Proses ini juga disebut sebagai pipelining, karena,
seperti dalam pipa, masukan baru diterima di salah
satu ujung sebelum input yang diterima pada
sebelumnya muncul sebagai output di ujung lain.
Untuk menerapkan konsep eksekusi dan intruksi ini,
kita harus menyadari bahwa, pada kenyataannya,
instruksi memiliki beberapa tahap. Misalnya, pada
instruksi sepeda itu dibagi menjadi 10 tugas yang
terjadi secara berurutan. Jelas, harus ada beberapa
kesempatan bagi pipelining. Pipelining itu juga
mengacu pada teknik/cara di mana tugas yang
diberikan itu terbagi menjadi beberapa sub/bagian
yang perlu dilakukan secara berurutan . bagian yang
harus dibagi secara berurutan itu sebagai berikut:
1. Setiap sub task (tugas) dilakukan oleh
satuan fungsional yang diberikan,
2. Unit yang terhubung secara serial dan
beroperasi secara bersamaan,
193
3. Penggunaan Pipelining meningkatkan
kinerja sebagai tugas eksekusi sekuensial
tradisional.
Sebagai pendekatan sederhana,
mempertimbangkan pengelompokan pengolahan
instruksi ke dalam dua tahap: mengambil instruksi
dan mengeksekusi instruksi. Ada kali selama
eksekusi dari instruksi ketika memori utama tidak
sedang diakses. Kali ini bisa digunakan untuk
mengambil instruksi berikutnya secara paralel
dengan pelaksanaan yang sekarang.
195
beberapa waktu sebelum dapat mengosongkan
nya penyangga.
2. Sebuah instruksi cabang bersyarat
membuat alamat instruksi berikutnya yang akan
diambil secara tidak diketahui. Dan mempunyai
waktu yang dapat digunakan untuk mengambil
instruksi berikutnya secara parallel (bersamaan)
dengan eksekusi intruksi berikutnya.
Dan ada juga contoh perbedaan mendasar antara
mengesekusi empat bagian task dari intruksi yang
diberikan. Empat bagian task dari intruksi meliputi:
kasus Fetching F, Decoding D, Excecution E, dan Write
result W. Berikut contoh empat bagian task yang
menggunakan pipelining dan sequential processing .
196
lain, maka keduanya harus dilaku¬kan secara
berurutan dalam urutan yang benar. Kondisi ini jelas
memiliki konsekuensi yang mendalam. Memahami
implikasinya adalah kunci untuk memahami berbagai
alternatif desain dan pertukaran yang dihadapi dalam
komputer pipelined.
Dalam rangka atau grafik diatas tersebut
merumuskan beberapa kinerja yang dilakukan untuk
kebaikan pipeline dalam memproses serangkaiantask
(tugas), da nada juga nama lain dari grafik ruang
waktu yaitu sering disebut dengan grafik Gantt. Dari
pembahasan sebelumnya, mungkin tampak bahwa
semakin besar jumlah tahap dalam pipa, semakin
cepat tingkat eksekusi. Beberapa desainer IBM S/360
menunjukkan dua faktor yang menggagalkan pola ini
tampaknya sederhana untuk highperformance desain
[ANDE67a], dan mereka tetap elemen yang desainer
harus masih pertimbangkan.
Berikut contoh grafik yang menunjukkan suksesi
sub-task (tugas) dalam pipa terhadap waktu,
197
Selain menggunakan grafik seperti diatas ada
juga ukuran-ukuran kinerja untuk kebaikan pipeline
yang sudah disediakan, diantarnya sebagai berikut:
1. Speed –up (Kecepatan)
Mempertimbangkan pelaksanaan tugas
m (petunjuk) menggunakan
(unit) pipa.
N + m-1 unit waktu yang diperlukan untuk
menyelesaikan tugas-tugas dari m
2. Throughput U (n) ,
Throughput adalah banyaknya instruksi yang
dieksekusi setiap waktunya.
3. Efisiensi E (n).
198
Pipeline Stall
Pipeline stall merupakan Sebuah operasi
pipeline yang dikatakan telah terhenti oleh satu unit
yang membutuhkan lebih banyak waktu untuk
melakukan fungsinya, sehingga memaksa tahapan
lain untuk menjadi Idle.
Pipeline "Stall" mempunyai beberapa Instruksi
Ketergantungan:
1. Ketergantungan Instruksi mengacu pada
kasus dimana pengambilan data dari instruksi
tergantung pada hasil mengeksekusi instruksi
sebelumnya.
2. Ketergantungan Instruksi
memanifestasikan dirinya dalam pelaksanaan
instruksi cabang bersyarat.
Sebagai contoh, dalam kasus "cabang jika
negatif" instruksi, instruksi berikutnya yang akan
diambil tidak akan diketahui sampai hasil
mengeksekusi bahwa "cabang jika negatif" instruksi
dikenal. Pipeline "Stall" karena data Ketergantungan:
Ketergantungan data dalam pipa terjadi bila sumber
operan instruksi tergantung pada hasil dari
pelaksanaan instruksi sebelumnya
199
Instruction level parallelism
Paralelisme tingkat instruksi terjadi apabila
instruksi-instruksi yang terdapat pada rangkaian
bersifat independen dan karena itu dapat dieksekusi
secara paralel dengan cara saling bertumpang tindih.
Paralelisme tingkat instruksi ditentukan oleh
frekuensi true data dependency dan procedural
dependency yang terdapat di dalam kode.
Penggunaan set instruksi yang memiliki panjang tetap
akan meningkatkan paralelisme tingkat instruksi.
200
demikianlah secara umum system ini dikenal. Hampir
semua manufaktur menggunakan system ini.
Berawal dari ide ‘’Ban berjalan’’ inilah terdapat
konsep pipeline. Cara kerjanya mirip dengan system
tersebut. Eksekusi instruksi dipecah menjadi
beberapa sub proses. Setiap proses dikerjakan secara
mandiri. Pada prosesor DLX telah meggunakan
konsep ini. Pengerjaan suatu instruksi dibagi dalam
tahapan-tahapan di mana tiap tahapan mengerjakan
suatu instruksi secara parallel. Tiap tahapan
terhubung dengan tahapan selanjutnya sehingga
terbentuk pipa, instruksi ini masuk pada ujung awal
tahapan yang kemudian diproses melalui tahapan-
tahapan yang ada dan keluar pada ujung akhir
tahapan. Karena tahapan-tahapan pada pipa saling
terhubung, seluruh tahapan harus siap untuk
memproses dalam waktu yang bersamaan. Waktu
yang dibutuhkan untuk memindahkan sebuah
instruksi satu langkah ke depan disebut siklus mesin.
Panjang dari siklus mesin ditentukan dari waku yang
dibutuhkan oleh tahapan yang paling lambat waktu
eksekusinya. Dengan kondisi ini, kecepatan dari
pipeline sebanding dengan jumlah tahapan pada pipa.
201
Biasanya keseimbangan panjang tahapan tidak akan
sempurna. Di samping itu proses pipelining itu sendiri
menimbulkan beberapa overhead.
202
WAW (write after write): J mencoba
untuk menulis operand sebelum ditulis oleh I.
Penulisan berakhir dilaksanakan dengan urutan
yang salah, meninggalkan nilai yang ditulis oleh I
bukan nilai yang ditulis oleh J. Hazard ini hanya
terjadi dalam pipeline yang menulis pada lebih
satu tahap pipeline. Pipeline integer DLX hanya
menulis register pada WB dan menghindari hazard
jenis ini. Jika kita membuat dua perubahan pada
pipeline DLX, hazard WAW mungkin terjadi,
pertama kita memindah tulis balik untuk operasi
ALU kedalam tahap MEM, karena nilai data
tersedia kemudian. Kedua, missal pengaksesan
memori data memerlukan dua tahap. Berikut ini
urutan dua instruksi yang menunjukan eksekusi
pada pipeline yang diperbaiki ini:
LW R1, I I E M M W
0(R2) F D X EM1 EM2 B
ADD I I E W
R1,R2,R3 F D X B
203
Penjadwalan Instruksi untuk
Mencegah Hazard Data
Beberapa tipe pipeline stall sering terjadi. Pola
pembangkitan-kode yang biasa untuk pernyataab
A=B+C menghasilkan pipeline stall untuk load nilai
data kedua (B). Penyimpanan A tidak menyebabkan
pipeline stall, karena hasil penjumlahan dapat di-
forward ke memori data untuk digunakan oleh
instruksi store.
Daripada melakukan pipeline stall, compiler
dapat mencoba untuk menjadwal urutan instruksi
untuk mencegah terjadinya pipeline stall dengan
menyusun ulang urutan kode untuk menghilangkan
hazard. Contoh, kompilator dapat mencoba untuk
mencegah adanya kode load yang diikuti oleh
penggunaan langsung register tujuan load. Teknik ini,
disebut penjadwalan instruksi.
Contoh: Buatlah kode DLX yang mencegah
pipeline stall untuk urutan perintah berikut:
a=b+c
d=e+f
204
Asumsikan load mempunyai keterlambatan satu
siklus clock.
Jawaban: Berikut ini kode yang telah
dijadwalkan:
LW Rb, b
LW Rc, c
LW Re, e
ADD Ra, Rb, Rc
LW Rf, f
SW a, Ra
SUB Rd, Re, Rf
SW d, Rd
Kedua interlock load (LW Rc, c terhadap ADD Ra,
Rb, Rc dan LW Rf, f terhadap SUB Rd, Re, Rf) dapat
dihilangkan. Terdapat ketergantungan antara
instruksi ALU dengan penyimpanan, tetapi struktur
pipeline mengizinkan hasil di-forward.
Catatan: penggunaan register yang berbeda
untuk instruksi pertama dan kedua adalah hal penting
sehingga penjadwalan ini legal. Secara khusus, jika
variable e di-load ke dalam register yang sama seperti
b tau c, maka penjadwalan ini tidak boleh. Secara
205
umum, penjadwalan pipeline dan meningkatkan
jumlah register yang diperlukan.
Beberapa kompilator modern mencoba
menggunakan penjadwalan instruksi untuk
meningkatkan kinerja pipeline. Dalam algoritma yang
sangat sederhana, kompilator menjadwalkan
menggunakan instruksi lain pada blok dasar yang
sama. Blok dasar adalah urutan kode lurus tanpa
transfer yang masuk maupun keluar, kecuali pada
awal dan akhir. Penjadwalan kode seperti tidak sulit,
karena kita tahu bahwa setiap instruksi dalam blok
dieksekusi jika yang pertama dieksekusi. Kita dapat
membuat graph ketergantungan dan mengurutkan
instruksi sehingga dapat meminimalkan pipeline stall.
Hazard Kendali
Hazard kendali dapat menyebabkan penurunan
kinerja yang lebih besar pada pipeline DLX daripada
hazard data. Pada saat operasi pencabangan
dieksekusi, ada kemungkinan PC diubah ke suatu
nilai lain alamat instruksi yang dituju. Jika tidak
terjadi pencabangan maka nilai PC sekarang
206
ditambah 4. Jika suatu instruksi J mengakibatkan
pencabangan maka nilai PC belum berubah sampai
selesai tahap MEM, setelah selesai penghitungan
alamat dan perbandingan.
Cara yang paling sederhana berkenaan dengan
pencabangan adalah dengan pipeline stall secepatnya
ketika kita mendeteksi pencabangan sampai kita
mencapai tahap MEM, yang menentukan nilai baru
untuk PC. Tentunya, kita tidak dapat melakukan
pipeline stall sebelum mengetahui bahwa instruksi
tersebut adalah pencabangan, jadi pipeline stall tidak
terjadi sampai tahap ID. Pipeline stall pada hazard
kendali diimplementasikan secara berbeda dengan
hazard data, karena tahap IF instruksi yang mengikuti
pencabangan harus diulang segera setelah kita
mengetahui hasil pencabangan. Jadi, tahap IF
pertama pada dasarnya pipeline stall juga karena
tidak pernah digunakan. Pipeline stall ini dapat
diimplementasikan dengan memberikan nilai register
IF/ID dengan nol untuk tiga tahap awal.
Tiga siklus clock dibuang setiap instruksi
pencabangan adalah kehilangan yang berarti. Dengan
frekuensi 30 % dan CPI idealnya 1, mesin dengan
207
pipeline stall pencabangan hanya mencapai sekitar
setengah peningkatan kecepatan ideal pada pipeline.
Jadi, menghilangkan pipeline stall pada pencabangan
sangat penting. Jumlah pipeline stall pada
pencabangan dapat dikurangi dengan dua cara:
1. Mencari tahu lebih awal apakah
pencabangan terjadi atau tidak.
2. Menghitung lebih awal alamat tujuan
pencabangan jika terjadi pencabangan.
208
209
BAB 10
REDUCED
INSTRUCTIONS SET
COMPUTER
Pendahuluan
Pada bab ini akan dijelaskan mengenai RISC
(Reduced Instruction Set Computing) atau
seperangkat instruksi komputasi yang
disederhanakan. Mesin ini memperkenalkan sebuah
perubahan dalam pola arsitektur komputer. Pola atau
bentuk ini lebih menonjolkan sebuah kesederhanaan
daripada ke-kompleks-an. RISC diperkuat oleh sebuah
penelitian yang menunjukkan bahwa pengumpulan
tugas, percabangan bersyarat, dan prosedur
pemanggilan menunjukkan lebih dari 90% dan operasi
210
yang kompleks seperti bagian panjang hanya sekitar
2% dari kinerja yang ditampilkan dalam sebuah
perangkat program benchmark yang sama. Penelitian
ini juga menunjukkan bahwa diantara semua kerja,
prosedur pemanggilan yang memakan banyak waktu.
Berdasarkan hasil tersebut, RISC kemudian
meningkatkan arsitektur dengan sumberdaya yang
dibutuhkan untuk membuat eksekusi dari yang paling
sering dan paling memakan waktu operasi agar lebih
efisien. RISC muncul pertama kali pada tahun
1970’an, merupakan perwujudan nyata yang muncul di
Berkeley RISC dan Stanford MIPS machine, yang
kemudian diperkenalkan pada pertengahan tahun
1980’an.
Kini RISC adalah sebuah mesin yang
dikategorikan dengan beberapa fitur seperti simpel
dan pengurangan set intruksi, perbaikan format
instruksi, satu instruksi per satu siklus mesin, alur
pencapaian instruksi/ unit eksekusi, banyaknya
jumlah dari tujuan umum register-register, memori
penyimpanan operasi dan desain control unit
berkabel.
211
Sejarah (evolution cycle) RISC/CISC
RISC adalah singkatan dari Reduced Instruction
Set Computing. Pada awalnya dikenal sebagai sebuah
gagasan untuk menjelaskan arsitektur yang dapat
mengeksekusi secepat-cepatnya satu instruksi per
siklus waktu.
RISC mulai digagas pada pertengahan
tahun1970’an dan akhirnya memulai untuk
membangun mesin RISC pertama, yaitu mini
komputer IBM 801. Peluncuran penemuan RISC ini
diumumkan sebagai awal dari sebuah paradigma baru
dalam desain arsitektur komputer. Faktanya RISClebih
banyak digunakan kembali pada awal penemuan dari
pada menyediakan hardware yang lebih cocok untuk
bahasa tingkat tinggi. Paradigma ini berubah sesuai
dengan apa yang kita ketahui tentang celah semantik,
sebuah perhitungan dari perbedaan antara operasi-
operasi yang disediakan dalam bahasa tingkat tinggi
dan itu disediakan dalam arsitektur komputer.
RISC dikenal sebagaicelah semantik terlebar,
dengan akibat yang tidak diinginkan dalam jumlah
terbanyak. Diantaranya adalah tidak efisiennya
eksekusi, ukuran program mesin yang berlebihan dan
212
meningkatnya kerumitan compiler. Konsekuensi yang
diharapkan, respon konvensional dari arsitek
komputer yang menambah lapisan rumit ke arsitektur
terbaru. Menaikkan jumlah dan kekompleksan dari
instruksi bersama dengan menaikkan jumlah dari
model pengalamatan. Arsitektur ini dihasilkan dari
sebuah adopsi “add more complexity”. Sekarang
dikenal sebagai CISC (Complex Instruction Set
Computing). Akan tetetapi, itu akan menjadi sebuah
instruksi kompleks dengan beberapa kekurangan.
CISC juga termasuk sebuah skema pemecahan kode
instruksi yang kompleks. Kenaikkan ukuran dari
control unit, dan penundaan logika yang mengalami
kenaikkan. Kekurangan-kekurangan ini menjadikan
tim arsitek komputer mengadopsi prinsip “less is
actually more”. Sejumlah penelitian kemudian
diadakan untuk meneliti pengaruh dari performa yang
kompleks.
RISC ini pertama kali ditemukan oleh seorang
peneliti dari IBM, John Cocke sekitar tahun 1974.
RISC ini ditemukan saat dia membuktikan bahwa ada
sekitar 20% instruksi pada sebuah prosesor dapat
mengerjakan atau mengeksekusi lebih dari 80%
213
kinerjanya. Pertama kali dipopulerkan oleh seorang
pengajar dari University of California, David Paterson
sekitar tahun 1980’an.
Beberapa mikroprosesor yang menggunakan
prinsip RISC ini diantaranya adalah sebagai berikut:
Intel 960, Itanium (IA64) dari Intel
Corporation,
Alpha AXP dari DEC, R4x00 dari MIPS
Corporation,
PowerPC dan Arsitektur POWER dari
International Business Machine.
Advanced RISC Machine (ARM) dan
StrongARM (termasuk di antaranya adalah Intel
XScale),
SPARC dan UltraSPARC dari Sun
Microsystems,
PA-RISC dari Hewlett-Packard.
Contoh-contoh prosesor CISC adalah
System/360, VAX, PDP-11, varian Motorola 68000, dan
CPU AMD dan Intel x86.
214
Prinsip dari Desain RISC
Sebuah komputer dengan jumlah instruksi
minimum memiliki kelemahan bahwa sebagian besar
instruksi harus dijalankan dengan mewujudkan suatu
fungsi yang sederhana. Hal ini akan mengakibatkan
kerugian pada masalah kecepatan. Di sisi lain,
komputer dengan jumlah instruksi yang semakin
meningkat memiliki kelemahan pada
kompleksdecoding dan kerugian pada kecepatan.
Aspek perhitungan yang harus diperhatikan dalam
mengurangi set instruksi meliputi: (a) operasi yang
paling sering dilakukan selama pelaksanaan program;
(b) operasi yang paling sering memakan waktu lama;
dan (c) jenis operan yang paling sering digunakan.
216
HLLs, harus lebih tepat untuk lebih mengoptimalkan
kinerja yang memakan waktu program dari fitur khas
HLL. Ini jelas merupakan panggilan untuk membuat
arsitektur sederhana daripada yang kompleks. Ingat
bahwa operasi kompleks seperti pembagian panjang
hanya mewakili sebagian kecil (kurang dari 2%) dari
operasi yang dilakukan selama perhitungan yang
khas. Untuk mencapai hal tersebut kita dapat; (a)
menjaga operan yang paling sering diakses di dalam
register dan CPU; dan (b) meminimalkan operasi
register ke memori.
Dua prinsip di atas dapat dicapai dengan
menggunakan mekanisme-mekanisme berikut:
1. Menggunakan sejumlah besar register
untuk mengoptimalkan referensi operan dan
mengurangi lalu lintas memori prosesor.
2. Mengoptimalkan desain pipeline instruksi
tersebut.
3. Menggunakan set instruksi yang
disederhanakan dan mengabaikan yang kompleks
dan tidak perlu instruksi.
Berikut dua pendekatan yang didefinisikan untuk
menerapkan ketiga mekanisme di atas yaitu.
217
1. Pendekatan perangkat lunak. Gunakan
compiler untuk memaksimalkan penggunaan
register dengan mengalokasikan register untuk
variabel-variabel yang digunakan dalam periode
waktu tertentu.
2. Pendekatan perangkat keras. Gunakan
register CPU yang cukup sehingga variabel lebih
dapat diselenggarakan di register untuk jangka
waktu yang lebih besar. Pendekatan perangkat
keras memerlukan penggunaan organisasi
register baru, yang disebut overlapped register
windows.
Terdapat sejumlah prinsip desain, yang kadang-
kadang disebut Prinsip-prinsip Desain RISC, yang
harus benar-benar dipatuhi oleh perancang CPU yang
memiliki tujuan umum. Beberapa diantaranya:
1. Semua instruksi secara langsung
dijalankan oleh hardware.
2. Supaya mempunyai kecepatan
tinggimaka semua instruksi umum dijalankan
secara langsung oleh hardware. Instruksi-
instruksi tersebut tidak diinterpretasikan oleh
mikroinstruksi-mikroinstruksi. Menghilangkan
218
suatu lever interpretasi akan menghasilkan
kecepatan tinggi bagi sebagian besar instruksi.
3. Memaksimalkan kecepatan dimana
instruksi-instruksi dikeluarkan.
4. Computer-komputer modern
menggunakan banyak trik untuk meningkatkan
kinerjanya, terutama dengan mencoba
mengeksekusikan 500 juta instruksi per detik
(MIPS).
5. Instruksi-instruksi harus mudah untuk
didekodekan
6. Batas kritis pada tingkat kecepatan
mengeluarkan instruksi-instruksi adalah dengan
mendekodekan masing-masing instruksi untuk
mengetahui sumber daya-sumbaer daya apa yang
mereka butuhkan.
7. Hanya instruksi-instruksi load dan Store
yang diakses ke Memory
8. Salah satu cara paling sederhana untuk
membagi operasi-operasi ke dalam langkah-
langkah terpisah adalah menetapkan supaya
operand-operand untuk sebagian besar instruksi
219
harus berawal dari --dan kembali ke-- register-
register
9. Menyiapkan banyak register
10. Karena akses ke memori agak lambat,
maka perlu disiapkan banyak register (paling
tidak 32 register). Karena itu setelah sebuah
instruksi diambil, instruksi tersebut tetap
tersimpan dalam sebuah register hingga instruksi
itu tidak diperlukan lagi.
220
ukuran yang berbeda dari register. Dalam rangka
untuk meminimalkan gerakan aktual dari parameter
yang dipanggil dan prosedur tersebut. Overlapped
memungkinkan parameter yang akan berlaku antara
prosedur tanpa aktual pergerakan data (Gambar 10.
1).
Level j
Para Registe Re
(pemanggil)
meter r lokal gister
Masuk
register sement
Level j+1
ara
(yg dipanggil)
RISC VS CISC
RISC
221
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 pada
University of California di Berkely.
RISC dibuat sebagai hasil dari projek 801 yang
dimulai pada tahun 1975 di IBM T. J. Watson research
center dan selesai pada tahun 1980an. Proyek ini
tidak diberitakan secara luas oleh IBM, tetetapi ada
dua proyek yang sama di awal tahun 1980an yaitu di
university of California Berkeley dan di Stanford
university, Tetetapi RISC yang dipakai sampai
sekarang adalah hasil research dari university of
California Berkeley.
Tujuan dari RISC adalah dapat mengeksekusi
one Cycle Per Instruction.
222
ISA (Instructure Set Architecture)
mendefinisikan keadaan dari prosesoor dan secara
tidak langsung mempengaruhi keseluruhan bentuk
sistem.
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. CISC adalah suatu
system yang menggunakan instruktur yang kompleks.
MULT 2:3, 5:2
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
223
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
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.
224
Telah terlihat bahwa RISC bukan sebuah
revolusi, melainkan formalisasi seperangkat kriteria
desain dipandu oleh evolusi teknologi. Dapat dilihat
bahwa prinsip utama dari metodologi RISC adalah
untuk mengintegrasikan hardware hanya fitur yang
terukur meningkatkan kinerja. Dengan kata lain, RISC
dapat dilihat sebagai gaya arsitektur komputer
menekankan kesederhanaan dan efisiensi.
Pendekatan ini mengikuti saran Von Neumann pada
set instruksi desain pada tahun 1946:
Kami berharap untuk memasukkan ke dalam
mesin dalam bentuk sirkuit hanya konsep logis
seperti yang baik perlu memiliki sistem yang lengkap
atau sangat nyaman karena frekuensi yang mereka
terjadi.
Saran Von Neumann menunjukkan bahwa dasar-
dasar filosofi RISC bukan hal baru. RISC desain
melacak akar mereka ke komputer elektronik
pertama. Seperti RISC, komputer awal adalah mesin
direct-eksekusi yang memiliki-to-decode mudah set
instruksi sederhana. Ide arsitektur microprogrammed
muncul pertama pada tahun 1951, dijelaskan oleh
Wilkes. Tetapi, komputer komersial pertama yang
225
berbasis pada sebuah microcode adalah IBM 360
pada tahun 1964. Itu adalah komputer pertama yang
memiliki arsitektur, yaitu, struktur abstrak dengan
satu set tetap instruksi mesin, terpisah dari
implementasi hardware.
Kemudian, desainer komputer mini hangat
memeluk microcode sebagai cara untuk membangun
mesin yang hemat biaya. Mereka terutama diperlukan
untuk mengurangi biaya hardware dan meningkatkan
kinerja. Toko microcode kecil dibangun dari ROM dan
'mikro mesin dipindahkan ke toko microcode besar
dan unit hardware yang kompleks dan sequencer,
untuk mencapai tujuan tersebut. Perbaikan sirkuit
terpadu sekitar tahun 1970 membuat memori
microcode lebih cepat, mendorong pertumbuhan
microprograms. Misalnya, DEC VAX 11/780 memiliki
lebih dari 400. 000 bit microcode.
Bahkan, desain microcode menjadi seni yang
tinggi di tangan arsitek komputer. Salah satu masalah
terbesar dengan microcode adalah bahwa hal itu
jarang bug-free. Konsekuensi negatif dari pendekatan
tersebut meningkat waktu desain, kesalahan desain
yang lebih, dll.
226
CONTOH
THE CRAY-1 Supercomputer
Beberapa arsitek komputer tidak memegang
pendapat bahwa microcode meningkatkan kinerja.
Seymour Cray telah mendapat pengakuan sebagai
pelopor arsitektur RISC. Dia percaya bahwa
kompleksitas itu buruk dan terus membangun
superkomputer tercepat di dunia dengan
menggunakan set instruksi sederhana. Sebagian
besar fitur desain CDC 6600 dan CRAY-1 komputer
mengingat dasar dari filosofi desain RISC. Dengan
cara ini, CRAY-1 superkomputer adalah salah satu
prekursor dari arsitektur RISC modern.
227
IBM melihat banyak jutaan baris kode dikompilasi.
Mereka menemukan bahwa instruksi rumit yang
membantu programmer assembly-bahasa manusia,
tetapi compiler bahasa tingkat tinggi sebagian besar
mengabaikan mereka. Para peneliti menentukan
bahwa sebagian besar kode yang dihasilkan oleh
compiler terutama terdiri dari beban, toko, cabang,
menambah dan membandingkan petunjuk. Semua
instruksi sederhana ini memiliki setara
microinstruction langsung.
228
Furrther, para peneliti IBM oberved mengatakan
bahwa banyak petunjuk yang lebih kompleks tersedia
pada kebanyakan komputer microcoded tidak
memerlukan perangkat keras tambahan dan
diterapkan hanya sebagai rutinitas microcoded. John
Cocke menyimpulkan bahwa prosesor berkinerja
tinggi benar-benar tidak perlu menyertakan
microcode ROM dengan mesin negara pengontrol
229
terkait. Hal ini lebih efisien untuk merancang set
instruksi sederhana yang memungkinkan
pelaksanaan satu instruksi per clock cycle.
Temuan ini dipandu desain eksperimental 801
komputer IBM. Dibangun dari off-the-shelf (Emitter-
Ditambah Logic) dan selesai pada tahun 1979, IBM
801 adalah komputer mini 32-bit dengan instruksi
single-cycle, 32 register, cache memori terpisah
untuk instruksi dan data, dan instruksi cabang
tertunda. The IBM 801 sekarang umumnya diakui
sebagai yang pertama disengaja mesin RISC. Namun,
istilah RISC belum diciptakan dan pada tahun 1980
rumor proyek IBM 801 menyebar bahkan tanpa
pengungkapan resmi oleh IBM.
Pada saat yang sama, RISC (Reduced Instruction
Set Computer) dan MIPS (Mesin tanpa saling
bertautan Pipeline Stages) proyek dimulai masing-
masing di Berkeley (University of California) dan
Stanford.
230
231
BAB 11
MULTIPROCESSOR
Pengertian Multiprocessor
Multiprocessing adalah suatu kemampuan suatu
sistem operasi yang menjalankan dua atau lebih
instruksi secara serentak dengan menggunakan
sejumlah CPU dalam sebuah komputer. Dengan
sistem seperti ini sebuah sistem operasi dapat
mengatur agar sejumlah CPU menjalankan instruksi-
instruksi yang berbeda yang terletak dalam sebuah
program dalam waktu yang sama. Kemampuan
eksekusi terhadap beberapa proses perangkat lunak
dalam sebuah sistem secara serentak, jika
dibandingkan dengan sebuah proses dalam satu
waktu, meski istilah multiprogramming lebih sesuai
untuk konsep ini.
232
Sistem multi prosessor yang sering digunakan
adalah model symmetric multiprocessing, dimana
setiap prosessor menjalankan sistem operasi yang
identik dan komunikasi antar prosesor jika
diperlukan. Beberapa sistem menggunakan
asymmetric multiprocessing, dimana setiap prosessor
mempunyai tugas tetentu. Prosessor master
mengontrol sistem, prosessor lain menunggu
instruksi master atau mempunyai tugas yang
ditentukan oleh master. Skema ini merupakan
hubungan master-slave. Prosessor master menjadwal
dan mengalokasikan pekerjaan dari prosessor slave.
Contoh symmetric multiprocessing adalah
sistem UNIX versi Encore’s untuk komputer Multimax
Komputer dapat dikonfigurasikan untuk menangani
satu lusin prosessor, semua menjalankan UNIX.
Keuntungan dari model ini adalah bahwa beberapa
proses dapat berjalan pada satu waktu (N proses jika
terdapat N CPU) tanpa menyebabkan pengurangan
performansi. Sehingga kita dapat mengontrol I/O
secara hati-hati untuk menjamin data mendapatkan
prosessor yang tepat.
233
Secara tradisional, komputer telah dipandang
sebagai suatu mesin sekuential. Sebagian besar
bahasa pemrograman komputer mengharuskan
pemrogram untuk menentukan algoritma sebagai
rangkaian instruksi-instruksi. Procesor melakukan
eksekusi program dengan cara mengeksekusi
instruksi-instruksi mesin secara berurutan dan satu
per satu. Setiap instruksi dieksekusi dalam urutan
operasi (membaca instruksi, membaca operand,
melakukan operasi, menyimpan hasil).
Cara memandang komputer seperti di atas
tidaklah sepenuhnya benar. Pada tingkat
microoperation, beberapa control signal dihasilkan
dalam waktu yang bersamaan. Pipelining instruksi,
sedikitnya sampai membaca dan mengeksekusi
operasi yang bertumpang tindih, telah ada sejak
lama. Keduanya merupakan contoh pembentukan
fungsi secara paralel.
Demikian semakin majunya teknologi dan
semakin murahnya harga hardware, para perancang
komputer telah mencari kemungkinan diterapkannya
paralelisme, umumnya untuk meningkatkan kinerja
dan kadang-kadang untuk meningkatkan reliabilitas.
234
Di dalam buku ini, kita akan membahas dua buah
pendekatan yang paling populer untuk memperoleh
paralelisme dengan cara melakukan replikasi
prosesor: symmetric multiprocessor (SMP) dan
cluster.
235
Sebuah processor melakukan eksekusi aliran
instruksi tunggal untuk mengoperasikan data yang
tersimpan di dalam sebuah memory.
236
Multiple Instruction Single Data (MISD)
stream
238
slave, kernel sistem operasi selalu beroperasi pada
prosesor tertentu. Prosesor lainnya hanya dapat
mengeksekusi program pengguna dan mungkin
utilitas-utilitas sistem operasi saja. Master
bertanggungjawab atas penjadwalan proses atau
thread. Sekali proses/thread berada dalam keadaan
aktif, apabila slave memerlukan layanan (misalnya
pemanggilan I/O), slave harus mengirimkan request
ke master dan menunggu layanan itu diberikan.
Pendekatan ini cukup sederhana dan hanya
memerlukan sedikit peningkatan sistem operasi
multi-progamming uniprosesor. Resolusi konflik
menjadi lebih sederhana karena sebuah prosesor
memiliki kontrol terhadap seluruh memori dan sumer
daya I/O. Kekurangan pendekatan ini adalah sebagai
berikut:
1. Kegagalan master akan melumpuhkan
sistem secara keseluruhan
2. Master dapat menjadi bottleneck kinerja
karena master itu sendiri yang harus melakukan
seluruh penjadwalan dan manajemen proses
Multiprocessing dapat dibagi ke dalam beberapa
kelas berdasarkan simetrinya yaitu:
239
Asymmetric Multiprocessing (AMP)
Pendekatan pertama untuk Multiprocessor
Scheduling adalah asymmetric multiprocessing
Scheduling atau biasa disebut juga sebagai
penjadwalan Master Slave MultiProcessor. Dimana
pada metode ini satu prosesor bertindak sebagai
master dan prosesor lainnya sebagai slave. Master
Processor bertugas untuk menjadualkan dan
mengalokasikan proses yang akan dijalankan oleh
Slave Processors. Master Processor melakukan
pekerjaan yang berhubungan dengan System, Slave
Processor melayani user requests dalam
pengeksekusian program. Pemrosesan yang banyak
tidak menyebabkan penurunan performance.
Metode ini sederhana karena hanya satu
prosesor yang mengakses struktur data sistem dan
juga mengurangi data sharing. Sebagai contoh,
prosesor master memilih proses yang akan
dieksekusi, kemudian mencari prosesor yang
available, dan memberikan instruksi start processor.
Prosesor slave memulai eksekusi pada lokasi memori
yang dituju. Saat slave mengalami sebuah kondisi
tertentu, prosesor slave memberi interupsi kepada
240
prosesor master dan berhenti untuk menunggu
perintah selanjutnya. Perlu diketahui bahwa prosesor
slave yang berbeda dapat ditujukan untuk suatu
proses yang sama pada waktu yang berbeda. Master
processor dapat mengeksekusi OS dan menangani
I/O, sedangkan sisanya processor tidak punya
kemampuan I/O dan disebut sebagai Attached
Processor (Aps). APs mengeksekusi kodekode user
dibawah pengawasan master processor.
Symmetric Multiprocessing (SMP)
Pada arsitektur symmetric Multiprocesor, kernel
dapat melakukan eksekusi pada prosesor manapun,
dan umumnya masing-masing prosesor dapat
melakukan penjadwalannya sendiri dari pool proses
atau thread yang ada. Kernel dapat dianggap sebagai
proses jamak atau thread jamak, yang memungkinkan
sebagian kernel untuk melakukan eksekusi secara
paralel. Pendekatan SMP akan membuat sistem
operasi menjadi kompleks. Pendekatan ini harus
menjamin bahwa kedua prosesor tidak memiliki
proses yang sama dan proses-proses itu tidak akan
hilang di dalam antrian. Diperlukan teknik-teknik
241
tertentu untuk mengatasi dan mensikronkan klaim-
klaim terhadap sumber daya.
Non-uniform memory access (NUMA)
Non-Uniform Memory Access atau Non-Uniform
Memory Arsitektur (NUMA) adalah memori komputer
Rancangan yang digunakan dalam multiprocessors,
dimana waktu akses memori tergantung pada lokasi
memori relatif terhadap prosesor. Under NUMA,
Dalam NUMA, prosesor atau NUMA multiprocessor
adalah sebuah sistem shared memory dimana waktu
aksesnya bervariasi ke lokasi memori word.
Berdasarkan kedekatan antar prosesor, dapat
dibagi ke dalam:
Loosely coupled
Mendistribusikan komputasi diantara beberapa
prosessor. Prosessor berkomunikasi dengan
prosessor lain melalui saluran komunikasi, misalnya
bus kecepatan tinggi atau saluran telepon. Sistem ini
disebut loosely coupled system atau sistem
terdistribusi (distributed system) dengan
menggunakan memory local atau multi komputer.
242
Setiap site memiliki processor, memori lokal dan
clock sendiri namun semua resource dapat diakses
dari setiap site.
Proses yang dijalankan pada komputer yang
berbeda modul saling berkomunikasi dengan bertukar
pesan melalui Message Transfer System (MTS).
Thightly coupled
Tight coupling di antara window adalah konsep
antarmuka yang mendukung koordinasi secara global
atau multi processor.
Prosesor berkomunikasi antara satu dengan
yang lain dengan cara berbagi memori utama,
sehingga kecepatan komunikasi dari satu prosesor ke
yang lain tergantung pada bandwidth memori.
243
Sebuah memori lokal kecil atau buffer (cache)
kemungkinan terdapat pada setiap prosesor untuk
memperbaiki kinerja.
Interkoneksi Jaringan
Dalam bentuk sederhana, komunikasi data
mengambil tempat antara dua alat yang secara
langsung dihubungkan oleh media komunikasi.
Penyambungan komputer ke dalam jaringan computer
haruslah memenuhi beberapa kriteria berikut ini:
Peralatan komunikasi data letaknya
berjauhan. Jika kita akan menghubungkan kedua
alat tersebut yang jaraknya ribuan Km, jelas akan
sangat mahal.
244
Ada banyak peralatan yang saling
dihubungkan satu sama lain, yang akhirnya akan
terbentuk satu rangkaian yang komplex.
Contoh yang sederhana adalah sistem telepon,
jika komputer juga akan dirangkaikan seperti telepon
maka akan terbentuk jaringan yang luas dan besar.
Jelas hal ini memerlukan investasi yang besar sekali.
246
Secara tradisional, WANs telah dilengkapi secara
khusus agar mampu menggukan satu dari dua
teknologi yang paling banyak dipakai oleh publik yaitu
“jaringan switch” atau sering disebut jaringan telepon
dan “jaringan paket”.
Jaringan Switch (Circuit Switch)
Dalam jaringan switch, jalur komunikasi dapat
tersambung melalui banyak switching node
berdasarkan alur yang telah ditentukan di masing-
masing switching node sampai tujuan. Alur yang telah
terbentuk akan membuat saluran terhubung dari
sumber ke tujuan secara “dedicated” sehingga
terbentuk jalur “link” untuk berkomunikasi Link yang
telah terbentuk ini di sebut “logical channel”, link
akan terputus jika komunikasi telah selesai. Konsep
ini dipakai pada jaringan telepon.
Jaringan Paket (Paket Switching)
Pendekatan yang justru berbeda adalah dalam
penggunan jaringan paket. Dalam kasus ini, tidak
penting terbentuk dedicated link antara sumber
dengan tujuan. Pada sistem jaringan paket data
dikirim keluar dari sumber dalam bentuk paket–paket
kecil. Paket–paket tersebut bergerak dari satu “node”
247
ke node lain. Tiap node akan menampung semua
paket yang datang kemudian diteruskan ke node
berikutnya sampai ke tujuan. Konsep packet switch
network ini paling sering dipakai pada transmisi antar
terminal ke komputer atau dari komputer ke
komputer.
Keunggulan Multiprocessor
1. Peningkatan throughput, karena lebih
banyak proses / thread yang berjalan dalam satu
waktu sekaligus (jika proses yang antri di ready
queue sedikit). Perlu diingat hal ini tidak berarti
daya komputasinya menjadi meningkat sejumlah
prosesornya. Yang meningkat ialah jumlah
pekerjaan yang bisa dilakukannya dalam waktu
tertentu.
2. Economy of scale (ekonomis), ekonomis
dalam devices yang dibagi bersama sama.
Prosesor-prosesor terdapat dalam satu komputer
dan dapat membagi peripheral (ekonomis) seperti
disk dan catu daya listrik.
3. Peningkatan kehandalan (reliabilitas),
Jika satu prossor mengalami suatu gangguan,
248
maka proses yang terjadi masih dapat berjalan
dengan baik karena tugas prosesor yang
terganggu diambil alih oleh prosesor lain. Hal ini
dikenal dengan istilah Graceful Degradation.
Sistemnya sendiri dikenal bersifat fault tolerant
atau failoft system.
Parallel Processing
Pemrosesan paralel (parallel processing) adalah
penggunaan lebih dari satu CPU untuk menjalankan
sebuah program secara simultan. Idealnya, parallel
processing membuat program berjalan lebih cepat
karena semakin banyak CPU yang digunakan. Tetetapi
dalam praktek, seringkali sulit membagi program
sehingga dapat dieksekusi oleh CPU yang berbeda-
beda tanpa berkaitan di antaranya.
Komputasi paralel adalah salah satu teknik
melakukan komputasi secara bersamaan dengan
memanfaatkan beberapa komputer secara
bersamaan. Biasanya diperlukan saat kapasitas yang
diperlukan sangat besar, baik karena harus mengolah
data dalam jumlah besar ataupun karena tuntutan
proses komputasi yang banyak. Untuk melakukan
249
aneka jenis komputasi paralel ini diperlukan
infrastruktur mesin paralel yang terdiri dari banyak
komputer yang dihubungkan dengan jaringan dan
mampu bekerja secara paralel untuk menyelesaikan
satu masalah. Untuk itu diperlukan aneka perangkat
lunak pendukung yang biasa disebut sebagai
middleware yang berperan untuk mengatur distribusi
pekerjaan antar node dalam satu mesin paralel.
Selanjutnya pemakai harus membuat pemrograman
paralel untuk merealisasikan komputasi.
Misal: diberikan 5 buah data acak yang nantinya
akan diurutkan secara Ascending dengan
menggunakan CRCW-Sort dengan menggunakan
perhitungan [n/2]. n = jumlah data
[n/2] = [5/2] = [2,5] = 3, jadi kita memerlukan 3
kali putaran untuk mengurutkan data tersebut.
Dan masing-masing data diproses oleh 1
processor. Berikut gambar dari pemrosesan diatas.
250
Dari gambar diatas bisa dilihat dari data yang
tidak terurut {6,5,9,2,4} menjadi terurut dengan
menggunakan 3 kali putaran searching secara ganjil
dan genap dengan menggunakan 5 buah processor.
Yang menghasilkan data yang terurut menjadi
{2,4,5,6,9}
Jadi dari kedua pengertian diatas dapat diambil
sebuah kesimpulan bahwa kinerja komputasi dengan
parallel processing memungkinkan beberapa
pekerjaan dilakukan secara bersamaan dan dalam
waktu yang bersamaan dan semakin banyak
pekerjaan yang dapat diselesaikan tepat waktu.
251