Anda di halaman 1dari 220

Arsitektur Sistem Komputer Jilid II | Rozeff Pramana & Alena Uperiati

UMRAH Press

Arsitektur
Sistem Komputer
Jilid II
Rozeff Pramana
Alena Uperiati

UMRAH Press
Gedung Rektorat Lantai III Kompleks Kampus
Universitas Maritim Raja Ali Haji
Jalan Dompak, Tanjungpinang, Provinsi Kepri 29111.
Telp 0771-7001550 Fax. 0771-7038999
Email: umrahpress@gmail.com
umrahpress@umrah.ac.id
Rozeff Pramana & Alena Uperiati

Buku Ajar
Arsitektur Sistem Komputer
Jilid 2
Arsitektur Sistem Komputer Jilid 2
Rozeff Pramana & Alena Uperiati

© Rozeff Pramana & Alena Uperiati, 2017

ix, 200 hlm, 15,5 cm x 23,5 cm


Cetakan 1, November 2017

Hak Penerbitan pada UMRAH Press, Tanjungpinang

Kantor:
Kampus Universitas Maritim Raja Ali Haji, Gedung Rektorat Lantai
III
Jl. Dompak, Tanjungpinang - Kepulauan Riau 29111
Telp/Fax : (0771) 7001550 – (0771) 7038999, 4500091
E-mail : umrahpress@gmail.com / umrahpress@umrah.ac.id

Hak cipta dilindungi Undang-Undang.


Dilarang mengutip atau memperbanyak sebagian atau seluruh isi
buku ini
tanpa ijin tertulis dari Penerbit

ISBN 978-602-6770-83-7

ii
KATA PENGANTAR

Puji Syukur kepada Allah SWT penulisan buku ini telah selesai
dilaksanakan. Buku yang berada dihadapan anda ini merupakan
buku ajar bagi dosen dan mahasiswa pada mata kuliah Arsitektur
Sistem Komputer di Fakultas Teknik jurusan Teknik Elektro
Universitas Maritim Raja Ali Haji. Buku ini merupakan buku jilid
ke dua pada matakuliah yang sama.
Buku ini menyajikan materi-materi perkuliahan yang dirancang
agar pembacanya dapat dengan mudah memahami materi mata
kuliah Arsitektur Sistem Komputer dan menjadi referensi bagi
dosen serta mahasiswa dalam mempelajari tentang komputer.
Setiap materi disajikan dengan penjelasan umum, definisi dan sub-
sub materi yang dijelaskan secara sistematis dengan sumber
referensi diambil dari berbagai literatur. Penyajian suatu materi
dilengkapi dengan gambar-gambar, blok diagram, dan ilustrasi
untuk memberikan pemahaman bagi pembaca.
Semoga Buku ini menjadi referensi bagi civitas di Fakultas Teknik
jurusan Teknik Elektro Universitas Maritim Raja Ali Haji
khususnya, dan memberi wawasan baru dalam mempelajari
komputer.

Tanjungpinang, Oktober 2017

Penulis

iii
DAFTAR ISI

KATA PENGANTAR ................................................... ii


DAFTAR ISI ............................................................... ivv
DAFTAR TABEL ........................................................ vii
DAFTAR GAMBAR .................................................. viii
BAB I PENDAHULUAN ......................................... 1
A. Informasi Mata Kuliah.......................................... 1
B. Deskripsi Mata Kuliah .......................................... 2
C. Rencana Kegiatan Program Pembelajaran dan
Rencana Pembelajaran Semester ......................... 6
BAB II INPUT OUTPUT ........................................ 11
A. Standar Kompetensi dan Indikator ..................... 11
B. Materi ................................................................. 11
1. Pengertian dan Fungsi Peralatan Input Pada
Komputer ......................................................... 11
2. Pengertian dan Fungsi Peralatan Output Pada
Komputer ......................................................... 18
C. Rangkuman ......................................................... 23
D. Latihan Soal ........................................................ 26
BAB III SET–SET INSTRUKSI .............................. 27
A. Standar Kompetensi dan Indikator ..................... 27
B. Materi ................................................................. 27
1. Karakteristik dan Fungsi ................................. 27
2. Mode dan Bentuk Pengalamatan ..................... 54
C. Rangkuman ......................................................... 74
D. Latihan soal ........................................................ 77
BAB IV PARALEL PROSESOR ............................. 78
A. Standar Kompetensi dan Indikator ..................... 78
B. Materi ................................................................. 78
1. Pembahasan Awal ........................................... 78
2. Organisasi berbagai Prosesor .......................... 80
3. Organisasi Multiprosesor ................................ 92
4. Mainframe SMP ............................................ 100
iv
5. Cluster ........................................................... 106
6. Non Uniform Memory Access (NUMA) ...... 109
7. Komputasi Vektor ......................................... 113
C. Rangkuman ....................................................... 117
D. Latihan soal: ..................................................... 119
BAB V PENGANTAR ARSITEKTUR RISC ..... 120
A. Standar Kompetensi dan Indikator ................... 120
B. Materi ............................................................... 120
1. Pembahasan Awal ......................................... 120
2. Reduced Instruction Set Computing (RISC) . 121
3. Pendekatan RISC ........................................... 127
4. Prospek Arsitektur RISC di Masa Mendatang150
C. Rangkuman ....................................................... 152
D. Latihan soal: ..................................................... 154
BAB VI
ARSITEKTUR KOMPUTER CISC........................ 155
A. Standar Kompetensi dan Indikator ................... 155
B. Materi ............................................................... 155
1. Definisi .......................................................... 155
2. Karakteristik desain CISC ............................. 159
3. Arsitektur Hardware ...................................... 161
4. Mesin CISC Ideal .......................................... 162
5. Realistis mesin CISC ..................................... 163
6. Persamaan Kinerja CISC Classic .................. 163
7. Pendekatan CISC ........................................... 166
8. Implementasi ................................................. 167
9. Karakteristik CISC versus RISC ................... 170
10. Perbedaan karakteristik CISC dan RISC serta
Superscalar .................................................... 174
C. Rangkuman ....................................................... 175
D. Latihan Soal: ..................................................... 177
BAB VII PIPELINE .................................................. 178
A. Standar Kompetensi dan Indikator ................... 178
B. Materi ............................................................... 178
1. Pembahasan Awal ......................................... 178
v
2. Kategori Pipeline ........................................... 181
3. Metode kerja Pipeline .................................... 185
4. Permasalahan Pipeline ................................... 191
C. Rangkuman ..................................................... 1977
D. Latihan Soal: ..................................................... 200
Daftar Pustaka ........................................................... 201
Glosarium ................................................................... 202
Indeks ..................................................................... 204
Profil Penulis .............................................................. 210

vi
DAFTAR TABEL

Tabel 1 Three Address Instruction ....................................... 38


Tabel 2 One Address Instruction .......................................... 38
Tabel 3 Two Address Instruction ......................................... 39
Tabel 4 operasi-operasi set instruksi .................................... 44
Tabel 5 Operasi Logika pada data Boolean atau biner ......... 48
Tabel 6 Mode Pengalamatan ................................................ 62
Tabel 7 Tabel frekuensi dinamis relatif berbobot dari operasi-
operasi HLL .......................................................... 132
Tabel 8 Tabel Presentase Dinamis Operand-operand......... 132
Tabel 9 Memori ke memori dan Register ke memori ......... 142
Tabel 10 Karakteristik dari beberapa Prosesor CISC, RISC,
dan Superskalar .................................................... 146
Tabel 11 Perbedaan CISC dan RISC .................................. 173
Tabel 12 Pelaksanaan intruksi ............................................ 186

vii
DAFTAR GAMBAR

Gambar 1 Keyboard ...................................................................... 12


Gambar 2 Mouse ........................................................................... 13
Gambar 3 Joystick (Sumber: https://google.com) ......................... 13
Gambar 4 Scanner (Sumber: https://google.com) ......................... 14
Gambar 5 Touch pad ..................................................................... 14
Gambar 6 Track ball (Sumber: https://google.com) ...................... 15
Gambar 7 Light pen (Sumber: https://google.com)....................... 15
Gambar 8 Camera digital (Sumber: https://google.com) .............. 16
Gambar 9 Handy cam (Sumber: https://google.com) .................... 16
Gambar 10 Webcam ...................................................................... 17
Gambar 11 Microphone and headphone (Sumber:
https://google.com)...................................................... 17
Gambar 12 Graphics pads(Sumber: https://google.com) .............. 18
Gambar 13 Barcode (Sumber: https://google.com) ....................... 18
Gambar 14 Printer (Sumber: https://google.com) ......................... 20
Gambar 15 Monitor (Sumber: https://google.com) ....................... 20
Gambar 16 LCD proyektor (Sumber: https://google.com) ........... 21
Gambar 17 Speaker (Sumber: https://google.com) ....................... 22
Gambar 18 Plotter (Sumber: https://google.com) ......................... 22
Gambar 19 Elemen-elemen set instruksi ....................................... 30
Gambar 20 Gambar Bentuk instruksi ............................................ 33
Gambar 21 Mode-mode Pengalamatan ......................................... 63
Gambar 22 Taksonomi Arsitektur Paralel Prosesor ...................... 86
Gambar 23 Arus instruksi ke sebuah PU....................................... 87
Gambar 24 Arus instruksi tunggal ke PU multiple ....................... 87
Gambar 25 MIMD share memori dan MIMD distributed memori 89
Gambar 26 Unit control pusat ....................................................... 94
Gambar 27 Organisasi Multiprosesor Simetris ............................. 96
Gambar 28 Memori Multiport ....................................................... 97
Gambar 29 Gambaran seluruh organisasi SMP S/390 ................ 101
Gambar 30 Konfigurasi Cluster .................................................. 108
Gambar 31 organisasi CC-NUMA .............................................. 111
viii
Gambar 32 Operasi vektor .......................................................... 114
Gambar 33 Taksonomi organisasi komputer............................... 115
Gambar 34 RISC CISC ............................................................... 130
Gambar 35 Pewaktuan set instruksi tanpa menggunakan pipelining,
rancangan pipelining dua tahap, dua akses memori per
langkah, dan pipelining empat tahap ......................... 147
Gambar 36 Transfer register-logika ............................................ 168
Gambar 37 Penafsir microcode melakukan cabang bersyarat..... 170
Gambar 38 Tahapan Pipeline ...................................................... 181
Gambar 39 4-segmen arithmetic pipeline ................................... 182
Gambar 40 5-segmen instruction pipeline .................................. 182
Gambar 41 Mikroprosesor .......................................................... 183
Gambar 42 Metode kerja pipeline ............................................... 185
Gambar 43 Permasalahan pipeline .............................................. 191

ix
BAB I

PENDAHULUAN

A. Informasi Mata Kuliah

1. Nama Mata Kuliah : Arsitektur Sistem


Komputer

2. Bobot Kredit : 3 SKS

3. Program Studi : Teknik Elektro

4. Kode Mata Kuliah : TE-1114

5. Status Mata Kuliah/Semester : Wajib / III

6. Prasyarat :-

7. Bentuk Pengajaran : Ceramah, diskusi, tanya


jawab, tugas, praktikum

8 Penilaian :

a. Absensi 10%

b. Tugas dan Kuis 30%

c. UTS 30%
d. UAS 30%

9 Jumlah Pertemuan : 16 kali pertemuan


(termasuk UTS dan
UAS)
10 Masa Perkuliahan : 150 menit tatap muka di
kelas perminggu

11 Dosen Pengajar : Rozeff Pramana, ST., MT

12 Tujuan Mata Kuliah :

Setelah mengikuti mata kuliah Arsitektur Komputer,


mahasiswa dapat mengetahui dengan jelas tentang
penggolongan komputer dan evolusinya, cara kerja dasar
komputer, bagian- bagian dari komputer, fungsi CPU, proses
kerja pada CPU, komponen- komponen CPU, aplikasi-
aplikaksi pada organisasi Input/Output dan peripheral, jenis-
jenis memori komputer serta aplikasinya, sistem Bus, set
instruksi, prosesor paralel, arsitektur RISC dan CISC serta
Pipeline pada komputer.

B. Deskripsi Mata Kuliah

Kata komputer berasal dari bahasa latin yaitu “computare”


yang artinya berhitung. Secara definisi komputer
diterjemahkan sebagai sekumpulan alat elektronika yang
saling bekerjasama, dapat menerima data (input), mengolah
data (proses) dan memberikan informasi (output) serta
terkoordinasi dibawah kontrol program yang tersimpan pada
memorinya.

Pada matakuliah ini akan di bahas tentang penggolongan


komputer, konsep dasar dan kinerja komputer, perangkat
Input/ Output, CPU, memori, sistem Bus, set instruksi,
prosesor paralel, arsitektur RISC dan CISC serta Pipeline
pada komputer.

2
Standar Kompetensi

1. Mampu menjelaskan dan menganalisa perangkat-


perangkat I/O
2. Mampu menjelaskan dan mendeskripsikan fungsi set
instruksi, mode dan pengalamatan
3. Mampu mengaplikasikan paralel prosesor secara umum
4. Mampu menganalisa perbandingan komputer RISC dan
CISC serta aplikasi penggunaannya
5. Memahami teknologi dan aplikasi CISC komputer dan
penggunaannya
6. Dapat mengaplikasikan dan berinovasi dalam
penggunaan Pipeline
Pokok Bahasan Dan Sub Pokok Bahasan

Pokok
No. Sub Pokok Bahasan
Bahasan
1. Input/Output 1. Peralatan dan fungsi perangkat
input pada komputer
2. Jenis-jenis perangkat input pada
komputer
2. Set instruksi, 1. Karakteristik instruksi
karakteristik 2. Jenis-jenis instruksi
dan fungsi; 3. Pemrosesan instruksi
4. Instruction fetch
Mode dan
5. Instruction execute
pengalamatan 6. Pengalamatan
7. Bentuk-bentuk instruksi
8. Jenis operasi
9. Cycle time

3
3. Parallel 1. Organisasi berbagai prosesor
Processor 2. Multiprosesor simetris
3. Koherensi Cache dan protokol
Mesi
4. Cluster
5. Non Uniform Memory Access
(NUMA)
4. Register 1. Sejarah
transfer, RISC 2. Konsep Arsitektur RISC.
dan CISC 3. Elemen penting dan ciri-ciri.
4. Arah perkemba-ngan prosesor
RISC.
5. Eksekusi Instruksi
6. Transfer Bus dan Memori
7. Definisi CISC.
8. Konsep CISC.
9. Arsitektur CISC.
10. Ciri-ciri prosesor CISC
11. Aspek komputasi dalam
merancang RISC.
12. Chip-chip RISC.
13. Prospek arsitektur RISC.
14. Deskripsi transfer register.
15. Bahasa transfer register
5. Pipelining 1. Pengertian Pipelining.
2. Kategori Pipeline.
3. Arithmetic pipeline
4. Instruction pipeline
5. Pipeline pada mikroprosesor

4
Daftar Pustaka

1. Albert Paul Malvino, “Elektronika Komputer Digital’,


edisi kedua, Penerbit Erlangga 1996.

2. Andrew S. Tanenbaum, “Organisasi Komputer


Tersetruktur”, edisi Bahasa Indonesia, edisi pertama,
jilid 2, Penerbit Salemba Teknika, 2002.

3. M. Morris Mano, “Computer System Architecture”,


third edition, Prentice Hall International, 1993.

4. Prof. Dr. Jogiyanto H.M, M.B.A., Akt,


“Pengenalan komputer”, penerbit Andi, 2005.
5. Syahrul, “Organisasi dan Arsitektur Komputer”,
Penerbit Andi Yogyakarta, 2010.

6. William Stalling, “Organisasi dan Arsitektur


Komputer”, edisi bahasa Indonesia, Jilid I,
Prenhallindo, 1998.

7. William Stalling, “Organisasi dan Arsitektur


Komputer”, edisi bahasa Indonesia, Jilid II, edisi 6,
PT. Indeks, Kelompok Gramedia, 1998.

5
C. Rencana Kegiatan Program Pembelajaran dan
Rencana Pembelajaran Semester

Mata Kuliah Kode MK SK Semester Dosen Pengampu


S
Arsitektur TE-1114 3 3/ Rozeff
Komputer Ganjil Pramana, ST,
MT
Deskripsi Mata Kuliah
Komputer berasal dari bahasa latin yaitu “computare” yang
artinya berhitung. Secara definisi komputer diterjemahkan
sebagai sekumpulan alat elektronika yang saling bekerjasama,
dapat menerima data (input), mengolah data (proses) dan
memberikan informasi (output) serta terkoordinasi dibawah
kontrol program yang tersimpan pada memorinya.
Pada matakuliah ini akan di bahas tentang penggolongan
komputer, konsep dasar dan kinerja komputer, perangkat
Input/ Output, CPU, memori, sistem Bus, Set Instruksi,
Prosesor Paralel, Arsitektur RISC dan CISC serta Pipeline
pada komputer.
Standar Kompetensi
1. Mampu menjelaskan dan menganalisa perangkat-
perangkat I/O
2. Mampu menjelaskan dan mendeskripsikan fungsi set
instruksi, mode dan pengalamatan
3. Memahami dan mampu mengaplikasikan paralel prosesor

6
secara umum
4. Memahami dan mampu menganalisa perbandingan
komputer RISC dan CISC serta aplikasi penggunaannya
5. Memahami teknologi dan aplikasi RISC dan CISC
komputer dan penggunaannya
6. Dapat mengaplikasikan dan berinovasi dalam penggunaan
Pipeline
Perte Capaian Pokok dan Esti- Daftar
muan pembelajaran sub pokok bahasan masi Pustak
ke- Wak- a
tu
(menit)
9 Mahasiswa 1. Peralatan dan 150
dapat fungsi perangkat
memaparka input pada
n perangkat- komputer
perangkat 2. Jenis-jenis
Input / perangkat input
Output pada pada komputer
komputer
10 Mahasiswa 1. Karakteristik 150
dapat instruksi
menganalisa 2. Jenis-
pemprosesa jenisinstruksi.
n Set 3. Pemrosesan

7
instruksi instruksi.
pada 4. Instruction fetch.
komputer. 5. Instruction
execute.
11 Mahasiswa 1. Pengalamatan. 150
dapat 2. Bentuk-bentuk
menganalisi instruksi.
s hubungan 3. Jenis operasi.
dari mode 4. Cycle time
dan bentuk
pengalamata
n
12 Mahasiswa 1. Organisasi 150
dapat berbagai
menjelaskan prosesor
kategori 2. Multiprosesor
sistem simetris
komputer 3. Koherensi Cache
dan dan protokol
keterkaitann Mesi
nya antara 4. Cluster
satu dengan 5. Non Uniform
lain Memory Access
(NUMA)

8
13 Mahasiswa 1. Sejarah 150
dapat 2. Konsep
menjelaskan Arsitektur RISC.
penggunaan 3. Elemen penting
teknologi dan ciri-ciri.
RISC 4. Arah perkemba-
dibanding ngan prosesor
teknologi RISC.
yang ada 5. Eksekusi
sebelumnya Instruksi
14 Mahasiswa 1. Transfer Bus dan 75
dapat Memori
menjelaskan 2. Definisi CISC
penggunaan 3. Konsep CISC
teknologi 4. Arsitektur CISC
CISC 5. Ciri-ciri prosesor
dibanding CISC.
teknologi
yang ada
sebelumnya
14 Mahasiswa 1. Aspek komputasi 75
dapat dalam
menjelaskan merancang RISC
perbedaan 2. Chip-chip RISC

9
antara 3. Prospek
teknologi arsitektur RISC
RISC dan 4. Deskripsi
CISC. transfer register
5. Bahasa transfer
register.
15 Mahasiswa 1. Pengertian 150
dapat Pipelining
menghitung 2. Kategori
jumlah set Pipeline
instruksi 3. Arithmetic
yang masuk pipeline
pada suatu 4. Instruction
pipelining pipeline
dan dapat 5. Pipeline pada
mengkreasi mikroprosesor
kannya
dengan
kategori
pipeline lain
16 UAS

10
BAB II

INPUT OUTPUT

A. Standar Kompetensi dan Indikator

Standar Kompetensi

Mampu menjelaskan dan menganalisa perangkat-perangkat I/O


pada komputer

Indikator

Setelah mengikuti perkuliahan mahasiswa diharapkan dapat


memaparkan perangkat-perangkat Input / Output pada
komputer.

B. Materi

1. Pengertian dan Fungsi Peralatan Input Pada


Komputer

Peralatan input pada komputer adalah perangkat yang


memberikan perintah langsung atau data ke peralatan proses
yang ada pada komputer untuk diproses kemudian
dikeluarkan berupa informasi kepada pengguna. Peralatan
input merupakan bagian komputer yang mempunyai peranan
yang sangat penting karena langsung berhubungan dengan
user atau pengguna komputer. Berikut adalah macam-macam
peralatan input pada komputer dan fungsi masing-masing
komponen tersebut:

a. Keyboard
Merupakan peralatan input pada komputer yang
berfungsi untuk memasukan data atau perintah berupa angka,
huruf maupun symbol. Keyboard merupakan perangkat input
yang umum terdapat pada suatu Komputer. Keyboard disebut
juga papan ketik pada komputer yang terdiri dari susunan
huruf A s/d Z dan angka 0 s/d 9 dan ada beberapa simbol
seperti titik dua, koma, titik dan lain-lain, juga terdapat tobol
sortcut yang memudahkan kita untuk mengoperasikan
komputer. Terdapat berbagai macam jenis dan ukuran
keyboard, dan untuk konektifitasnya pada komputer dapat
dilakukan dengan kabel maupun nirkabel.

Gambar 1 Keyboard

b. Mouse
Mouse adalah peralatan input pada komputer yang
berfungsi untuk menggerakan pointer pada layar monitor.
Mouse sangat berguna untuk sistem operasi yang berbasis

12
grafis. Seperti halnya keyboard, konektifitas Mouse dengan
komputer dapat dilakukan dengan kabel maupun nirkabel.

Gambar 2 Mouse

c. Joy Stick
Joy Stick adalah alat input yang digunakan untuk
memasukan perintah untuk menggerakan permainan pada
komputer maupun suatu instrumen.

Gambar 3 Joystick (Sumber: https://google.com)

d. Scanner

Scanner adalah alat input yang mempunyai fungsi


hampir mirip dengan mesin foto copy, akan tetapi dengan
scanner data dapat diubah dalam bentuk file sehingga dapat
disimpan ke dalam harddisk komputer.

13
Gambar 4 Scanner (Sumber: https://google.com)

e. Touch Pad
Perangkat yang berfungsi sebagai penggerak kursor
pada monitor melalui stimulasi gerakan jari yang menyentuh
touchpad tersebut.

Gambar 5 Touch pad

f. Track Ball
Mensimulasikan pergerakan vertikal mouse, sehingga
pengguna tidak perlu menggerakkan mouse berulang kali
untuk dapat menaikkan atau menurunkan layar.

14
Gambar 6 Track ball (Sumber: https://google.com)

g. Light Pen
Perangkat yang berbentuk pena yang dipergunakan
pada layar monitor jenis touchscreen untuk memodifikasi
atau mendesain gambar secara langsung pada layar monitor.

Gambar 7 Light pen (Sumber: https://google.com)

h. Camera digital
Perangakat sejenis kamera yang dapat menangkap
obyek gambar dan dapat menampilkannya ke layar komputer
untuk diproses lebih lanjut.

15
Gambar 8 Camera digital (Sumber: https://google.com)

i. Handy cam
Perangkat perekam gambar/ video yang dapat
ditampilkan ke layar monitor untuk diproses lebih lanjut.

Gambar 9 Handy cam (Sumber: https://google.com)

j. Webcam
Perangakat komputer yang digunakan untuk konferensi
video jarak jauh atau sebagai kamera pemantau. Webcam ada
yang terintegrasi langsung pada suatu komputer dan ada yang
terpisah.

16
Gambar 10 Webcam

k. Microphone and headphone


Microphone berfungsi untuk merekam suara yang akan
disimpan dalam memori komputer, selain itu kita juga dapat
berbicara dengan orang lain pada saat chatting. Headphone
berfungsi untuk mendengarkan suara.

Gambar 11 Microphone and headphone (Sumber:


https://google.com)

l. Graphics Pads
Perangkat yang biasa digunakan untuk mempermudah
menggambar suatu objek pada monitor sebagai pengganti
kertas.

17
Gambar 12 Graphics pads(Sumber: https://google.com)

m. Barcode
Berfungsi untuk membaca suatu kode yang berbentuk
kotak-kotak atau garis-garis tebal vertikal dan mengubahnya
menjadi informasi.

Gambar 13 Barcode (Sumber: https://google.com)

2. Pengertian dan Fungsi Peralatan Output Pada


Komputer

Peralatan Output pada komputer merupakan komponen


komputer yang berfungsi menghasilkan informasi yang
diperoleh dari hasil proses dari peralatan proses komputer.
18
Output hasil proses dari komputer digolongkan menjadi 4
bentuk yaitu: huruf, gambar, suara dan video. Peralatan
output akan menghasilkan informasi untuk manusia sehingga
bisa dibaca, dilihat, didengar dan dipahami.

Komputer akan memproses informasi dari peralatan


input komputer kemudian menampilkan hasil proses dalam
bentuk informasi ke pengguna komputer (manusia). Peralatan
output sendiri sangat penting karena akan memberikan
informasi secara langsung ke pengguna. Perangkat output
juga menjadi suatu keharusan dalam sistem komputer
meskipun beberapa peralatan output komputer tersebut dalam
kategori periperal komputer (perangkat tambahan komputer).

Macam-macam dan fungsi peralatan output komputer :

a. Printer
Printer merupakan peralatan output pada komputer
yang berfungsi mencetak hasil dari proses komputer
ke dalam media kertas. Hasil cetakan dari printer
dapat berupa gambar maupun tulisan. Printer
merupakan komponen komputer yang digolongkan ke
dalam peripheral yang sangat penting untuk
membantu kerja manusia. Berdasarkan media
cetaknya printer ada beberapa macam, yaitu: printer

19
inkjet, printer laserjet dan printer dotmatrik.
Konektifitas Printer dengan komputer juga dapat
dilakukan dengan kabel maupun nirkabel.

Gambar 14 Printer (Sumber: https://google.com)

b. Monitor
Monitor merupakan peralatan output pada komputer
yang berfungsi untuk menampilkan grafik atau
gambar yang telah diproses oleh bagian pemproses
sehingga informasi dapat diterima oleh manusia.

Gambar 15 Monitor (Sumber: https://google.com)

20
c. LCD Proyektor

LCD Proyektor mempunyai fungsi sama dengan


monitor, akan tetapi pada LCD Proyektor gambar
ditampilkan pada screen ekternal dan dapat diatur
ukurannya. Sehingga, dapat dilihat oleh lebih dari 1
orang.

Gambar 16 LCD proyektor (Sumber: https://google.com)

d. Speaker

Speaker adalah peralatan output pada komputer yang


berfungsi untuk mengeluarkan output berupa suara.
Speaker akan terhubung dengan soundcard pada
komputer agar bisa menerima hasil proses berupa
suara dari komputer.

21
Gambar 17 Speaker (Sumber: https://google.com)

e. Plotter

Perangkat yang digunakan untuk mencetak gambar


ukuran yang cukup besar, seperti gambar mesin dan
konstruksi bangunan.

Gambar 18 Plotter (Sumber: https://google.com)

22
C. Rangkuman

1. Peralatan input pada komputer adalah perangkat yang


memberikan perintah langsung atau data ke peralatan
proses yang ada pada komputer untuk diproses
kemudian dikeluarkan berupa informasi kepada
pengguna.

2. Beberapa jenis peralatan input, antara lain:

a. Keyboard Merupakan peralatan input pada


komputer yang berfungsi untuk memasukan data
atau perintah berupa angka, huruf maupun symbol.

b. Mouse adalah peralatan input pada komputer yang


berfungsi untuk menggerakan pointer pada layar
monitor.

c. Joy Stick adalah alat input yang digunakan untuk


memasukan perintah untuk menggerakan
permainan pada komputer maupun suatu
instrumen.

d. Scanner adalah alat input yang mempunyai fungsi


hampir mirip dengan mesin foto copy, akan tetapi
dengan scanner data dapat diubah dalam bentuk
file sehingga dapat disimpan ke dalam harddisk
komputer.

e. Touchpad adalah perangkat yang berfungsi sebagai


penggerak kursor pada monitor melalui stimulasi
gerakan jari yang menyentuh touchpad tersebut.

23
f. Trackball mensimulasikan pergerakan vertikal mouse,
sehingga pengguna tidak perlu menggerakkan
mouse berulang kali untuk dapat menaikkan atau
menurunkan layar.

g. Light Pen merupakan perangkat yang berbentuk


pena yang dipergunakan pada layar monitor jenis
touchscreen untuk memodifikasi atau mendesain
gambar secara langsung pada layar monitor.

h. Camera digital yaitu perangakat sejenis kamera


yang dapat menangkap obyek gambar dan dapat
menampilkannya ke layar komputer untuk
diproses lebih lanjut.

i. Handy cam adalah perangkat perekam gambar/ video


yang dapat ditampilkan ke layar monitor untuk
diproses lebih lanjut.

j. Webcam merupakan perangakat komputer yang


digunakan untuk konferensi video jarak jauh atau
sebagai kamera pemantau. Webcam ada yang
terintegrasi langsung pada suatu komputer dan ada
yang terpisah.

k. Microphone berfungsi untuk merekam suara yang


akan disimpan dalam memori komputer, selain itu
kita juga dapat berbicara dengan orang lain pada
saat chatting. Headphone berfungsi untuk
mendengarkan suara

l. Graphics Pads adalah perangkat yang biasa digunakan


untuk mempermudah menggambar suatu objek
pada monitor sebagai pengganti kertas.
24
m. Barcode berfungsi untuk membaca suatu kode
yang berbentuk kotak-kotak atau garis-garis tebal
vertikal dan mengubahnya menjadi informasi.

3. Peralatan Output pada komputer merupakan komponen


komputer yang berfungsi menghasilkan informasi yang
diperoleh dari hasil proses dari peralatan proses
komputer.

4. Beberapa jenis peralatan output, antara lain:

a. Printer merupakan peralatan output pada komputer


yang berfungsi mencetak hasil dari proses
komputer ke dalam media kertas.

b. Monitor merupakan peralatan output pada


komputer yang berfungsi untuk menampilkan
grafik atau gambar yang telah diproses oleh bagian
pemproses sehingga informasi dapat diterima oleh
manusia.
c. LCD Proyektor mempunyai fungsi sama dengan
monitor, akan tetapi pada LCD Proyektor gambar
ditampilkan pada screen ekternal dan dapat diatur
ukurannya

d. Speaker adalah peralatan output pada komputer


yang berfungsi untuk mengeluarkan output berupa
suara.

e. Plotter perangkat yang digunakan untuk mencetak


gambar ukuran yang cukup besar, seperti gambar
mesin dan konstruksi bangunan.

25
D. Latihan Soal

1. Apa yang anda ketahui mengenai peralatan input dan


output?
2. Sebutkan 3 contoh peralatan input dan output beserta
fungsinya!
3. Jelaskan bagaimana suatu inputan dapat diproses oleh
computer hingga dikeluarkan berupa informasi kepada
pengguna.

26
BAB III

SET–SET INSTRUKSI

A. Standar Kompetensi dan Indikator

Standar Kompetensi

Mampu menjelaskan dan mendeskripsikan fungsi set instruksi,


mode dan pengalamatan

Indikator

Mahasiswa dapat menganalisis hubungan dari mode dan


bentuk pengalamatan.

B. Materi

1. Karakteristik dan Fungsi

Kumpulan dari instruksi-instruksi yang berbeda yang


dapat dijalankan oleh CPU disebut set Instruksi (Instruction
Set).

Dua bagian utama Arsitektur Komputer:

 Instruction-Set Architecture (ISA) / Arsitektur Set


Instruksi

ISA meliputi spesifikasi yang menentukan bagaimana


programmer bahasa mesin akan berinteraksi dengan
komputer. ISA menentukan sifat komputasional
komputer.

 Hardware-System Architecture (HSA) / Arsitektur


Sistem Hardware

HSA berkaitan dengan subsistem hardware utama


komputer (CPU, sistem memori dan IO). HSA
mencakup desain logis dan organisasi arus data dari
subsistem.

Instruction Set Architecture (ISA) atau disebut juga


dengan Set Instruksi /Instruction Set merupakan sebagai
suatu aspek dalam arsitektur komputer yang dapat dilihat
oleh para pemrogram. Secara umum, set instruksi ini
mencakup jenis data yang didukung, jenis instruksi yang
dipakai, jenis register, mode pengalamatan, arsitektur
memori, penanganan interupsi, eksepsi, dan operasi I/O
eksternalnya (jika ada). ISA merupakan sebuah spesifikasi
dari kumpulan semua kode-kode biner (opcode) yang
diimplementasikan dalam bentuk aslinya dalam sebuah
desain prosesor tertentu.

ISA kadang-kadang digunakan untuk membedakan


kumpulan karakteristik yang disebut di atas dengan
mikroarsitektur prosesor, yang merupakan kumpulan teknik

28
desain prosesor untuk mengimplementasikan set instruksi
(mencakup microcode, pipeline, sistem cache, manajemen
daya, dan lainnya). Komputer-komputer dengan
mikroarsitektur berbeda dapat saling berbagi set instruksi
yang sama. Sebagai contoh, prosesor Intel Pentium dan
prosesor AMD Athlon mengimplementasikan versi yang
hampir identik dari set instruksi Intel x86, tetapi jika ditinjau
dari desain internalnya, perbedaannya sangat radikal. Konsep
ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI
yang terdapat dalam IBM System/38 dan IBM IAS/400.
TIMI merupakan sebuah ISA yang diimplementasikan
sebagai perangkat lunak level rendah yang berfungsi sebagai
mesin virtual. TIMI didesain untuk meningkatkan masa hidup
sebuah platform dan aplikasi yang ditulis untuknya, sehingga
mengizinkan platform tersebut agar dapat dipindahkan ke
perangkat keras yang sama sekali berbeda tanpa harus
memodifikasi perangkat lunak (kecuali yang berkaitan
dengan TIMI). Hal ini membuat IBM dapat memindahkan
platform AS/400 dari arsitektur mikroprosesor CISC ke
arsitektur mikroprosesor POWER tanpa harus menulis ulang
bagian-bagian dari dalam sistem operasi atau perangkat lunak
yang diasosiasikan dengannya.

Ketika mendesain mikroarsitektur, para desainer


menggunakan Register Transfer Language (RTL) untuk
29
mendefinisikan operasi dari setiap instruksi yang terdapat
dalam ISA.

Karakteristik-Karakteristik Instruksi Mesin

Operasi CPU ditentukan oleh instruksi yang


dieksekusinya. Instruksi-instruksi ini di sebut sebagai
instruksi mesin (machine Instructions) atau instruksi
komputer (Computer Instructions). Set instruksi dari
instruksi-instruksi yang berbeda yang dapat dieksekusi oleh
CPU dikenal sebagai set instruksi CPU.

Elemen-elemen Instruksi Mesin (set instruksi)

Setiap instruksi harus terdiri dari informasi yang


diperlukan oleh CPU untuk dieksekusi. Gambar berikut
menunjukkan langkah-langkah yang terdapat dalam eksekusi
instruksi dan bentuk elemen-elemen instruksi mesin.

Gambar 19 Elemen-elemen set instruksi

30
Elemen-elemen tersebut adalah :

 Operation Code (opcode) : Menentukan operasi yang


akan dilaksanakan. Operasi ini dispesifikasikan oleh
sebuah kode biner, dikenal sebagai kode operasi atau
opcode.

 Source Operand Reference : Merupakan input bagi


operasi yang akan dilaksanakan. Operasi dapat
melibatkan satu atau lebih operand sumber, operand
merupakan input bagi operasi.

 Result Operand Reference : Merupakan hasil dari


operasi yang dilaksanakan.

 Next instruction Reference : Memberitahu CPU untuk


mengambil (fetch) instruksi berikutnya setelah
menyelesaikan eksekusi suatu instruksi.

Instruksi yang akan diambil berikut berada di memori


utama atau pada sistem memori virtual. Akan lebih baik bila
berada di memori utama/memori sekunder (disk). Umumnya
instruksi yang akan segera diambil selanjutnya berada setelah
instruksi saat itu.

Source Operand dan Result Operand dapat berupa salah


satu dari tiga jenis berikut ini:

31
1. Main or Virtual Memory

Dengan adanya acuan instruksi berikutnya, maka


alamat memori utama /memori virtual harus diketahui.

2. CPU Register

Dengan suatu pengecualian yang jarang terjadi, CPU


terdiri dari sebuah register atau lebih yang dapat diacu oleh
instruksi-instruksi mesin. Bila hanya terdapat sebuah register,
maka acuan ke instruksi tersebut dapat berbentuk implisit.
Jika terdapat lebih dari satu register, maka setiap register
diberi nomor yang unik dan instruksi harus terdiri dari nomor
register yang dimaksud.

3. I/O Device

Instruksi harus menspesifikasikan modul I/O dan


perangkat yang diperlukan oleh operasi. Jika digunakan I/O
memori terpetakan, maka perangkat ini merupakan memori
utama /memori virtual.

Representasi Instruksi

Pada komputer instruksi direpresentasikan oleh


sekumpulan bit yang dibagi dalam beberapa bidang yang
berkaitan dengan elemen-elemen yang akan memuat
instruksi.
32
Gambar 20 Gambar Bentuk instruksi

Pada sebagian set instruksi bisa digunakan lebih dari


satu bentuk. Selama berlangsungnya eksekusi instruksi,
instruksi dibaca ke dalam register instruksi (IR) yang terdapat
dalam CPU. Untuk melakukan operasi yang diperlukan, CPU
harus dapat mengeluarkan data dari berbagai bidang
instruksi.

Opcodes direpresentasikan dalam bentuk singkatan yang


disebut mnemonics, yang menunjukkan operasi yang akan
dilaksanakan.

Contoh dari mnemonics adalah :

- ADD Add (penambahkan)


- DIV Divide (pembagian)
- SUB Subtract (pengurangan)
- LOAD Load data from memory
- MPY Multiply (perkalian)
- STOR Store data to memory

33
Operand juga direpresentasikan secara simbolik,
contoh; ADD R,Y ---> yang berarti tambahkan nilai pada
lokasi Y ke isi register R.

Operasi dilakukan terhadap isi alamat, bukan terhadap


alamatnya. Sehingga memungkinkan menulis bahasa mesin
dalam bentuk simbol. Setiap opcode simbolik memiliki
representasi biner yang tepat dan pemogram dapat
menetapkan masing-masing operand simbolik.

Sebuah program yang sederhana akan menerima input


simbol ini kemudian mengkonversikan opcode dan acuan
operand/ Operand Reference tersebut menjadi bentuk biner
dan akhirnya membentuk instruksi mesin.

Jenis-jenis Instruksi

Suatu instruksi yang dapat diekspresikan dalam bahasa


BASIC atau FORTRAN seperti berikut :

X=X+Y

Pernyataan ini menginstruksikan komputer untuk


menambahkan nilai yang tersimpan di Y ke nilai yang
tersimpan di X, dan menyimpan hasilnya di X. Bagaimana
hal ini dapat dilakukan dengan instruksi mesin? Kita anggap
bahwa variabel X dan Y berkorespodensi dengan lokasi 513

34
dan 514. Jika kita mengasumsikan set instruksi mesin yang
sederhana, maka operasi ini dapat dilakukan dengan tiga buah
instruksi :

1. Muatkan sebuah register dengan isi lokasi memori 513.

2. Tambahkan isi lokasi memori 514 ke register.

3. Simpan isi register di lokasi memori 513.

Bahasa tingkat tinggi mengekspresikan operas-operasi


dalam bentuk aljabar yang singkat yaitu dengan variabel-
variabel. Sedangkan bahasa mesin mengekspresikan operasi
dalam bentuk dasar yang meliputi perpindahan data dari
register dan ke register. Suatu komputer harus memiliki set
instruksi yang memungkinkan pengguna untuk
memformulasikan pengolahan data. Agar dapat dieksekusi
setiap program yang ditulis dalam bahasa program tingkat
tinggi harus diterjemahkan ke dalam bahasa mesin. Set
instruksi mesin harus dapat mengekspresikan setiap instruksi
bahasa tingkat tinggi.

Jenis-jenis instruksi dapat digolongkan menjadi :

 Data Processing, instruksi-instruksi aritmatika dan


logika.

 Data Storage, instruksi-instruksi memori.

35
 Data Movement, instruksi I/O

 Control, instruksi pemeriksaan dan percabangan.

Instruksi aritmatika memiliki kemampuan komputasi


untuk pengolahan data numerik. Sedangkan instruksi logika
atau bolean beroperasi terhadap bit-bit word sebagai bit,
sehingga instruksi-instruksi ini memiliki kemampuan untuk
pengolahan data lain yang akan digunakan oleh pengguna.
Operasi tersebut dilakukan bagi data yang terdapat pada
register-register CPU. Sehingga harus ada instruksi-instruksi
memori untuk memindahkan data yang terdapat dalam
memori dan register. Instruksi I/O diperlukan untuk
memindahkan program dan data ke dalam memori dan
mengembalikan hasil komputasi kepada pengguna. Instruksi
pengujian digunakan untuk menguji/memeriksa nilai word
data dan status komputasi. Sedangkan instruksi percabangan
digunakan untuk mencabangkan ke set instruksi yang lain.

Jumlah Alamat

Salah satu cara tradisional untuk menggambarkan


arsitektur prosessor adalah dengan melihat jumlah alamat
yang terkandung dalam setiap instruksinya.

36
Instruksi aritmatika dan logika memerlukan jumlah
operand yang banyak. Jumlah alamat maksimum yang
mungkin diperlukan dalam sebuah instruksi :

1. Empat Alamat ( dua operand, satu hasil, satu untuk


alamat instruksi berikutnya)

Instruksi empat alamat sangat jarang ditemukan,


sebagian besar CPU merupakan variasi satu, dua atau
tiga alamat dengan alamat instruksi berikutnya
merupakan implisit.

2. Tiga Alamat (dua operand, satu hasil)

Format tiga alamat tidak umum digunakan karena


instruksi-instruksi memerlukan bentuk instruksi yang
relatif lebih panjang untuk menampung acuan-acuan
tiga alamat.

3. Dua Alamat (satu operand merangkap hasil, satunya


lagi operand)

Bentuk dua alamat mengurangi kebutuhan ruang akan


tetapi menimbulkan kesulitan. Untuk menghindarkan
nilai suatu operand, instruksi MOVE digunakan untuk
memindahkan sebuah nilai ke sebuah lokasi hasil atau
lokasi sementara sebelum operasi dilakukan.

37
4. Satu Alamat (menggunakan accumulator untuk
menyimpan operand dan hasilnya)

Instruksi ini adalah instruksi yang lebih sederhana.


Agar alamat ini dapat berfungsi, alamat kedua perlu
diimplisitkan. Hal ini sangat umum pada mesin-mesin
lama dengan mengimplementasikan alamat sebagai
register CPU (akumulator/AC).

Instruksi untuk menghitung persamaan:


Y = (A – B) / (C + D * E)

Tabel 1 Three Address Instruction


Instruksi Komentar
SUB Y,A,B Y <--- A - B
MPY T,D,E T <--- D x T
ADD T,T,C T <--- T + C
DIV Y,Y,T Y <--- Y : T

Tabel 2 One Address Instruction


Instruksi Komentar
LOAD D AC <--- D
MPY E AC <--- AC x E
ADD C AC <--- AC + C
STOR Y Y <--- AC
LOAD A AC <--- A
SUB B AC <--- AC – B
DIV Y AC <--- AC : Y
STOR Y Y <--- AC

38
Tabel 3 Two Address Instruction
Instruksi Komentar
MOVE Y,A Y <--- A
SUB Y,B Y <--- Y – B
MOVE T,D T <--- D
MPY T,E T <--- T x E
ADD T,C T <--- T + C
DIV Y,T Y <--- Y : T

Jumlah alamat per instruksi di tentukan rancangan


dasarnya. Alamat per instruksi yang lebih sedikit akan
menghasilkan instruksi yang lebih primitif dan memerlukan
CPU yang kurang kompleks. Instruksi seperti ini juga
menghasilkan instruksi yang lebih pendek. Program yang
jumlah instruksi lebih banyak, secara umum akan
menghasilkan waktu eksekusi yang lebih panjang dan akan
lebih panjang lagi bila programnya lebih kompleks.

Rancangan Set Instruksi

Rancangan set instruksi mempengaruhi banyak aspek


pada sistem komputer. Rancangan set instruksi sangat
kompleks. Set instruksi menentukan banyak implementasi
CPU. Set instruksi merupakan alat bagi pemrogram untuk
mengkontrol CPU.

39
Desain set instruksi merupakan masalah yang sangat komplek
yang melibatkan banyak aspek, diantaranya adalah:

1. Kelengkapan set instruksi


2. Ortogonalitas (sifat independensi instruksi)
3. Kompatibilitas : - source code compatibility
- Object code Compatibility

Selain ketiga aspek tersebut juga melibatkan hal-hal


sebagai berikut :

a. Operation Repertoire: Berapa banyak dan operasi apa


saja yang disediakan, dan berapa sulit operasinya

b. Data Types: tipe/jenis data yang dapat olah.

c. Instruction Format: panjangnya, banyaknya alamat,


dan sebagainya.

d. Register: Banyaknya register yang dapat digunakan.

e. Addressing: Mode pengalamatan untuk operand.

Masalah-masalah ini saling berkaitan dan harus


diperhatikan dalam merancang set instruksi.

Jenis-jenis OPERAND

Instruksi mesin mengoperasikan data. Kategori data umum


yang sangat penting adalah :
40
• Alamat
• Bilangan
• Karakter
• Data logika

Alamat adalah sebuah bentuk data. Umumnya untuk


menentukan alamat memori utama/memori virtual sebagian
kalkulasi harus dilakukan terhadap acuan operand/operand
reference di dalam sebuah instruksi. Dalam konteks ini
alamat dapat dianggap sebagai integer tidak bertanda.

Semua bahasa mesin memiliki jenis data numerik.


Bahkan untuk data non numerik, bilangan digunakan sebagai
penghitung lebar bidang dan lain-lain. Perbedaan antara
bilangan yang digunakan dalam matematika dengan bilangan
yang tersimpan dalam komputer bahwa jumlah bilangan yang
digunakan dalam komputer sangat terbatas. Ini disebabkan
pertama, besarnya keterbatasan terhadap bilangan yang dapat
direpresentasikan pada mesin dan kedua, dalam bilangan titik
mengambang terdapat keterbatasan dalam hal ketelitian. Jadi
pemrogram dihadapkan dengan konsekuensi pembulatan,
overflow dan underflow.

Tiga jenis data numerik yang terdapat pada komputer


adalah :

41
1. Integer /titik tetap.
2. Titik mengambang.
3. Desimal.

Operasi internal komputer menggunakan operasi biner,


namun pengguna sistem lebih mudah memahami bilangan
desimal. Dengan demikian terdapat suatu kebutuhan untuk
mengubah bentuk dari desimal menjadi biner pada input dan
dari biner menjadi desimal pada output. Representasi yang
umum untuk hal tersebut adalah dengan packed decimal.

Dengan packed decimal setiap digit desimal


direpresentasikan dengan sebuah kode 4 bit, menjadi ; 0=
0000, 1=0001,...9=1001. Kode ini tidak efisien karena hanya
dapat memanfaatkan 10 nilai dari 16 buah nilai 4 bit yang
dapat digunakan. Untuk membuat bilangan, kode-kode 4 bit
tersebut digabungkan dalam kelipatan 8 bit. Jelas kode ini
kurang ringkas namun dapat menghindari terjadinya
overhead konversi. Bilangan negatif dapat direpresentasikan
dengan melibatkan 4 bit digit tanda pada ujung kiri atau
kanan digit-digit packed decimal. Misalnya kode 1111 dapat
diartikan sebagai tanda minus.

String-string Karakter atau teks adalah bentuk data yang


umum. Teks dalam bentuk karakter tidak mudah disimpan
atau dikirimkan oleh sistem pengolahan data atau sistem
42
komunikasi. Dengan demikian sejumlah kode digunakan
untuk merepresentasikan karakter dengan memakai rangkaian
bit. Kode karakter yang umum dipakai didalam kode IRA
(International Reference Alphabet), merujuk ke Amerika
Serikat adalah kode ASCII (American Standard Code for
Information Interchange). IRA setiap karakternya
direpresentasikan dengan pola 7 bit yang unik, sehingga
terdapat 128 karakter. Untuk karakter ASCII hampir selalu
dapat disimpan dan ditransmisikan dengan menggunakan 8
bit per karakter. Bit kedelapan dapat diset nol atau digunakan
sebagai bit paritas untuk deteksi kesalahan.

Umumnya setiap word atau unit lainnya yang dapat


dialamati (byte, halfword) diperlakukan sebagai unit data.
Sering kali berguna untuk mempertimbangkan satuan n-bit
sebagai n butir data 1-bit, yang masing-masing memliki nilai
0 atau 1. Apabila data dipandang seperti itu, maka data
tersebut dipandang sebagai data logika. Terdapat dua
keuntungan dibandingkan cara pandang berorientasi bit.
Pertama, kadang-kadang kita perlu menyimpan butir array
Boolean atau data biner yang hanya dapat mengambil satu
nilai, 1 atau 0. Dengan data logika penyimpanan data dalam
memori dapat lebih efisien. Kedua, terdapat suatu kebiasaan
pada saat akan memanipulasi bit-bit data. Perlu diingat

43
kadang data yang sama diperlukan sebagai data logika/data
numerik/teks.

Jenis-jenis Operasi

Jumlah opcode suatu mesin akan sangat berbeda dengan


jumlah opcode mesin lainnya. Akan tetapi jenis operasi pada
semua mesin memiliki kesamaan. Penggolongan jenis operasi
yang umum adalah :

- Data Transfer - I/O


- Aritmatic - System control
- Logical - Transfer control
- Convension
Tabel berikut ini menampilkan operasi-operasi set instruksi
yang umum.

Tabel 4 operasi-operasi set instruksi


Nama
Tipe Deskripsi
Operasi
Data Transfer Move (transfer) Transfer word/blok dari source ke
destination
Load Transfer word dari external memory ke
processor
Exchange Swap content dari source dengan
destination
Clear/reset Transfer word 0 ke destination
Set Transfer word 1 ke destination
Push Transfer word dari source ke bagian atas
stack
Pop (pull) Transfer word dari bagian atas stack ke
destination
Arithmetic Add Computer sum of two operands
Subtract Compute difference of two operands
Multiply Compute product of two operands
Devide Compute quotient of two operands
Absolute Replace operand by its abs value
44
Negate Change sign of operand
Increment Add 1 to operand
Decrment Substract 1 from operand
Logical AND
OR Perform the specified logical operation
bitwise
NOT
Exclusive-OR
Shift Left-(right) shift operand introducting
constants at end
Rotate Left-(right) shift operand
No Operation No operation is performed, but program
execution continues
Input-Output Input(read) Transfer data from specified IO port or
device to destination, e.g., main memory
or processor register
Output Transfer data from specified source to IO
port or device
Start IO Transfer instruction to IO to initiate IO
operation
Test IO Transfer status information from IO
system to specified destination
Conversion Translate Translate values in a section of Memory
based on a table of correspondences
Convert Convert the contents of a word from one
form to another (e.g., packed decimal to
binary)
System Control OSCALL Causes an interrupt, which passes control
to operating system around closed path
Transfer of Jump (Branch) Unconditional transfer, load PC with
Control specified address
Jump Conditional Test specified condition; depending on
condition, either load PC with specified
address or else d nothing
Jump Subroutine Place current program control information
call, Branch and (PC, status register, etc.) in known
Link location, e.g., top of static; jump to
specified address
Return Replace contents of PC, status register,
etc. with information from known
location, e.g., from top stack
Execute Fetch operand from specified location and
execute as instruction; note that PC is not
modified.
Skip Increment PC to skip the next instruction
Skip Conditional Test specified condition; depen-ding on
outcome, either increment PC or else do
nothing
Test Test specified condition; set flag(s) based
on outcome
Compare Make logical or arithmetic comparison of
two or more operands; set flag(s) based on
outcome

45
Set Control Large class of instruction to set controls
Variables for protection purposes, interrupt
handling, timer control, etc. (often
privillaged instructions)
Halt Stop program execution
Wait Stop program execution; test a specified
(hold) condition continuously; when the
condition is satisfied, resume execution

Data Transfer

Data transfer adalah jenis instruksi mesin yang paling


signifikan. Instruksi transfer data harus menetapkan segala
sesuatu. Pertama, menetapkan lokasi operand sumber dan
operand tujuan. Lokasi-lokasi tersebut dapat berupa memori,
register atau bagian paling atas dari stack. Kedua,
menetapkan panjang data yang akan dipindahkan. Ketiga,
menetapkan mode pengalamatan setiap operand.

Dalam hal tindakan CPU, mungkin operasi transfer data


merupakan jenis operasi yang paling sederhana. Apabila
sumber dan tujuannya merupakan register, maka CPU cukup
melakukan perpindahan data dari register yang satu ke
register yang lainnya saja. Hal tersebut merupakan operasi
internal bagi CPU. Apabila sebuah atau dua operand berada
didalam memori, maka CPU harus melakukan sebagian atau
seluruh tindakan berikut :

1. Menghitung alamat memori, yang didasarkan mode


alamat.
46
2. Apabila alamat mengacu ke memori virtual,
terjemahkan dari alamat memori virtual ke memori
actual/sebenarnya.

3. Menentukan apakah butir alamat berada dalam cache.

4. Bila tidak ada dalam cache, terbitkan perintah ke


modul memori.

Aritmatic

Sebagian besar mesin memberikan operasi aritmatika


dasar seperti penambahan, pengurangan, perkalian dan
pembagian. Operasi-operasi ini selalu tersedia bagi bilangan-
bilangan integer bertanda (titik tetap). Sering kali operasi-
operasi tersebut disediakan juga bagi bilangan-bilangan titik
mengambang dan packed decimal.

Operasi-operasi lainnya meliputi bermacam-macam


instruksi operand tunggal, misalnya ;

 Absolute; mengambil nilai mutlak operand.

 Negate ; membalik/negasi operand.

 Increment ; menambah operand dengan 1.

 Decrement ; mengurangi operand dengan 1.

47
Eksekusi sebuah instruksi operand dapat melibatkan
operasi pemindahan data untuk meletakkan operand bagi
input ALU, dan menyampaikan output ALU.

Tindakan CPU untuk melakukan operasi Aritmatik :

1. Transfer data sebelum atau sesudah.

2. Melakukan fungsi dalam ALU.

3. Menset kode-kode kondisi dan flag.

Logical

Sebagian mesin menyediakan bermacam-macam


operasi untuk memanipulasi bit suatu word atau unit-unit
lainnya yang dapat dialamati, sering kali hal ini disebut “bit
twiddling”. Operasi-operasi tersebut berdasarkan pada
operasi Boolean.

Beberapa operasi logika dasar dapat dilakukan pada


data Boolean atau biner seperti tabel berikut.

Tabel 5 Operasi Logika pada data Boolean atau biner

P P P P
NOT
P Q AND OR XOR =
P
Q Q Q Q
0 0 1 0 0 0 1
0 1 1 0 1 1 0
48
1 0 0 0 1 1 0
1 1 0 1 1 0 1

Operasi NOT meng-inversi sebuah bit. AND, OR dan


Exclusive-OR (XOR) adalah fungsi logika yang paling umum
pada dua operand. Operasi-operasi logika tersebut dapat
diimplementasikan secara bit terhadap unit data logika n-bit.
Jadi bila dua register terdiri dari :

R1 = 10100101

R2 = 00001111

Maka, R1 AND R2 = 00000101

Dengan demikian operasi AND dapat digunakan sebagai


penyaring yang memilih bit-bit tertentu dalam sebuah word
dan me-nol-kan bit-bit lain.

Contoh yang lain ; R1 = 10100101


R2 = 11111111
Maka, R1 XOR R2 = 01011010
Dengan di-setnya sebauh word semuanya ke 1, maka operasi
XOR menginversikan seluruh bit dalam word-word lainnya
(komplemen 1). Selain operasi logika secara bit, mesin juga
memilikifungsi pergeseran dan rotasi.

49
0

...
Pergeseran Logika Kanan

...
Pergeseran Logika Kiri

Pada pergeseran logis, bit-bit dapa sebuah word


digeser kesebelah kiri atau kanan. Pada satu sisi bit yang
digeser akan keluar atau hilang. Pada sisi lainnya bilangan 0
akan digeser kedalam. Pergeseran logika sangat berguna
terutama untuk mengisolasi bidang-bidang didalam word.
Bilangan-bilangan 0 suatu word yang digeser ke dalam
menggantikan informasi yang tidak diinginkan digeser keluar
pada sisi lainnya.

S ...
Pergeseran Aritmatika Kanan

S ...
Pergeseran Aritmatika Kiri

50
Operasi pergeseran aritmatika seperti gambar diatas,
memperlakukan data sebagai integer bertanda dan tidak
bertanda akan menggeser bit tanda. Pada pergeseran
aritmatika kanan, bit tanda diisi ke posisi bit sebelah kanan.
Pada bilangan-bilangan dalam notasi komplemen dua,
pergeseran kiri atau kanan masing-masing berhubungan
dengan perkalian atau pembagian dengan 2, dengan syarat
tidak terdapat overflow. Jika terjadi overflow pergeseran
aritmatika dan logika kiri akan menghasilkan hasil yang
berbeda, namun aritmatika kiri menyimpan tanda dari
bilangan tersebut. Karena kemungkinan terjadinya overflow,
banyak prosesor tidak memasukkan instruksi ini.

...
Rotasi Kanan

...
Rotasi Kiri

Operasi rotasi menjada semua bit yang sedang


dioperasikan. Salah satu fungsi rotasi adalah untuk membawa
51
seluruh bit secara berurutan ke bit yang paling kiri, bit-bit
tersebut dapat didefinisikan dengan pemeriksaan tanda dari
datanya. Seperti halnya pada operasi aritmatika dan operasi
logika, melibatkan aktivitas ALU dan dapat melibatkan
operasi pemindahan data.

1. Konversi

Instruksi konversi adalah instruksi yang mengubah


bentuk atau instruksi yang beroperasi terhadap bentuk data.
Contohnya pengubahan bilangan desimal menjadi bilangan
biner.

2. Input/Output

Terdapat bermacam-macam pendekatan termasuk


diantaranya isolasi I/O terprogram, memori terpetakan I/O
terprogram. DMA dan penggunaan prosesor I/O. banyak
implementasi yang hanya memberikan sedikit instruksi I/O,
dengan aksi-aksi tertentu yang ditentukan oleh parameter,
kode atau instruksi word tertentu.

3. Kontrol Sistem

Instruksi-instruksi kontrol sistem umumnya merupakan


instruksi khusus yang hanya dapat dieksekusi ketika prosesor
berada dalam keadaan khusus tertentu atau sedang

52
mengeksekusi program yang berada dalam area memori
khusus. Instruksi-instruksi ini digunakan dalam sistem
operasi.

4. Transfer kontrol

Operasi transfer kontrol yang paling umum pada set-set


instruksi terdiri dari :

- Branch (percabangan)

- Subroutine call (panggilan subrutin)

- Skip (lewati)

Ada beberapa alasan diperlukannya operasi transfer


kontrol :

1. Mengeksekusi instruksi lebih dari satu kali atau bahkan


lebih dari ribuan kali merupakan hal yang mendasar.
Oleh karena itu diperlukan ribuan/jutaan instruksi untuk
mengimplementasikan suatu aplikasi. Tidak dapat
dibayangkan bila setiap instruksi ditulis secara terpisah.
Bila suatu tabel atau daftar akan diproses, maka
diperlukan program pengulang. Sebuah rangkaian
instruksi dieksekusi secara berulang untuk memproses
seluruh data.

53
2. Secara virtual sebuah program melibatkan pengambilan
keputusan. Kita berharap komputer melakukan sesuatu
apabila terdapat sebuah persyaratan dan melakukan
sesuatu yang lain bagi persyaratan yang lainnya.
Misalnya sebuah instruksi menghitung akar kuadrat
sebuah bilangan. Pada awalnya tanda bilangan akan
diperiksa. Bila bilangannya negatif, maka komputasi
tidak akan dilakukan, namun akan dilaporkan keadaan
error.

3. Menyelesaikan program komputer berukuran besar atau


bahkan berukuran sedang secara benar merupakan
tugas yang sangat sulit. Maka akan sangat membantu
apabila terdapat mekanisme untuk memecah tugas
tersebut menjadi bagian-bagian kecil yang dapat
diselesaikan satu per satu.

2. Mode dan Bentuk Pengalamatan

Bidang alamat atau bidang pada bentuk instruksi yg


umum adalah relatif kecil. Kita dapat mengambil acuan
cakupan yang besar tentang lokasi memori utama atau untuk
beberapa sistem. Untuk mencapai ini berbagai teknik
pengalamatan dilakukan. Semua teknik tersebut melibatkan
tarik-menarik antara cakupan alamat dan fleksibilitas

54
pengalamatan di satu sisi, dan jumlah acuan memori dan
kompleksitas kalkulasi alamat pada sisi lain. Teknik
pengalamatan yang umum adalah :

 Segera
 Langsung
 Tidak Langsung
 Register
 Register tidak langsung
 Pengganti
 Stack

a. Pengalamatan Segera

Pengalamatan ini adalah bentuk pengalamatan yang


paling sederhana, dimana operand benar-benar diberikan
pada instruksi :

OPERAND = A

Mode ini dapat digunakan untuk mendefinisikan dan


menggunakan nilai awal variabel tetap atau yang diset.
Secara umum bilangan akan disimpan dalam bentuk
komplemen dua, bit paling kiri bidang operand digunakan
sebagai bit tanda. Ketika operand terisi dalam register data,
bit tanda diperluas ke kiri sepenuhnya ukuran word data.
55
Keuntungan pengalamatan segera adalah tidak ada
acuan memori selain dari pengambilan instruksi yang
diperlukan untuk memperoleh operand, sehingga menghemat
satu memori/siklus cache dalam siklus instruksi. Kerugiannya
adalah ukuran bilangannya terbatas pada ukuran bidang
alamat yang sama, dalam kebanyakan set instruksi lebih kecil
dibandingkan dengan panjang word.

b. Pengalamatan Langsung

Adalah pengalamatan yang sederhana dimana bidang


alamat terdiri dari alamat efektif operand :

EA = A

Teknik ini umum digunakan pada generasi awal


komputer. Teknik ini memerlukan hanya satu acuan memori
dan tidak ada kalkulasi khusus. Pembatasan yang jelas adalah
bahwa teknik ini memberikan hanya sebuah ruang alamat
terbatas.

c. Pengalamatan Tidak langsung

Panjang bidang alamat pada umumnya kurang dari panjang


word sehingga membatasi cakupan alamat. Penyelesaiannya
adalah mempunyai bidang alamat yang mengacu pada alamat
word dalam memori, yang pada gilirannya terdiri dari
56
sepanjang alamat operand. Pengalamatan ini dikenal dengan
pengalamatan tidak langsung :

EA = (A)

Tanda kurung di gunakan untuk diinterpretasikan


sebagai arti yang terdiri dari. Keuntungan yang jelas nyata
dari pendekatan ini adalah bahwa untuk panjang word N,
suatu ruang alamat 2N kini tersedia. Kerugiannya adalah
bahwa eksekusi instruksi memerlukan dua acuan memori
untuk mengambil operand tersebut; satu untuk mendapatkan
alamatnya dan kedua untuk mendapatkan nilainya.

Meskipun jumlah word yang dapat dialamatikini sama


dengan 2N, jumlah alamat efektif berbeda yang dapat diacu
pada sembarang waktu yang dibatasi pada 2 K, dimana K
adalahpanjang bidang alamat.

d. Pengalamatan Register

Pengalamatan register sama dengan pengalamatan


langsung. Perbedaannya adalah bidang alamat mengacu pada
register dari pada sebagai alamat memori utama :

EA = R

57
Secara umum bidang alamat yang mengacu pada register
akan mempunyai 3-5 bit, sehingga total register bertujuan
umum dapat diacu dari 8 sampai 32.

Keuntungan pengalamatan register :

1. Memerlukan bidang alamat yang kecil dalam instruksi.

2. Tidak diperlukan acuan memori, karena waktu akses


memori untuk register internal bagi CPU sangat sedikit
dibanding dengan alamat memori utama.

Kerugian pengalamatan register adalah ruang alamat sangat


dibatasi.

Jika pengalamatan register digunakan secara penuh


dalam set instruksi, maka hal ini mengimplementasikan
bahwa register CPU akan digunakan secara penuh. Karena
terbatasnya beberapa bilangan register dibandingkan lokasi
memori utama, penggunaannya pada mode ini membuat
pengertiannya hanya jika register bekerja secara efisien. Jika
setiap operand dibawa ke dalam register memori utama,
beroperasi sekali, maka kembali ke memori utama, maka
langkah antara tidak perlu ditambahkan. Jika operand pada
register sisanya yang digunakan untuk berbagai operasi,
maka penyimpanan riil dicapai. Hal ini sampai ke pemrogram

58
untuk memutuskan nilai-nilai mana yang harus berada dalam
register dan yang harus disimpan pada memori utama.

e. Pengalamatan Register tidak langsung

Pengalamatan register tidak langsung dapat disamakan


dengan pengalamatan tidak langsung. Perbedaannya adalah
apakah bidang alamat mengacu ke lokasi memori atau
register. Jadi untuk alamat register tidak langsung:

EA = (R).

Keuntungan dan pembatasan pengalamatan register


tidak langsung pada dasarnya sama dengan pengalamatan
tidak langsung. Pada kedua kasus, pembatasan ruang alamat
dari bidang alamat diatasi dengan pemberian bidang tersebut
mengacu pada lokasi panjang word yang berisi alamat.
Sebagai tambahan, register pengalamatan tidak langsung
menggunakan satu lebih sedikit acuan memori dibanding
pengalamatan tidak langsung.

f. Pengalamatan Pengganti

Mode pengalamatan yang sangat handal diperoleh


dengan mengkombinasikan kemampuan pengalamatan
langsung dan register pengalamatan tidak langsung.
Mekanisme ini adalah sebagai pengalamatan pengganti :
59
EA = A+(R)

Pengalamatan pengganti memerlukan instruksi yang


mempunyai dua bidang alamat yang salah satunya eksplisit.
Nilainya terdiri dari satu bidang alamat (nilai = A) digunakan
secara langsung.

Bidang alamat yang lain, atau opcode yang ditujukan


pada acuan implisit, mengacu pada register yang terdiri dari
penambahan ke A untuk menghasilkan alamat efektif.

Ada 3 penggunaan umum terhadap pengalamatan pengganti :

1. Pengalamatan relatif.

2. Pengalamatan register dasar.

3. Peng-indeks-an

Pada pengalamatan relatif, register diacu secara implisit


adalah pencacah program (PC). Alamat instruksi tertentu
ditambahkan ke bidang alamat untuk menghasilkan EA.
Secara umum bidang alamat diperlakukan sebagai bilangan
komplemen dua untuk operasi ini. Jadi alamat efektif
merupakan penggantian relatif dengan alamat instruksi
tersebut.

60
Pengalamatan register dasar adalah register yang diacu
berisi alamat memori dan bidang alamat berisi penggantian
dari alamat tersebut. Acuan register dapat berupa eksplisit
atau implisit. Pengalamatan register dasar juga memanfaatkan
lokalitas acuan memori.

Pada peng-indeks-an, acuan bidang alamat suatu alamat


memori utama, dan register yang diacu berisi penggantian
positif dari alamat tersebut. Penggunaannya hanya kebalikan
dari interpretasi untuk pengalamatan register dasar. Bidang
alamat dianggap sebagai alamat memori dalam peng-indeks-
an, secara umum terdiri dari lebih banyak bit dibanding
dengan bidang alamat pada instruksi register dasar yang
dapat diperbandingkan. Penggunaan pengindek-an yang
penting adalah memberikan mekanisme yang efisien untuk
pembentukan operasi yang berulang-ulang.

g. Pengalamatan Stack

Stack adalah sekumpulan elemen yang berurutan, hanya


satu elemen saja yang dapat diakses pada suatu saat. Titik
akses disebut sebagai puncak (top) stack. Elemen hanya dapat
ditambahkan atau dihapus dari puncak stack. Stack dikenal
juga dengan antrian last-in-first-out (LIFO).

61
Stack merupakan blok lokasi yang dipesan. Materi
ditambahkan ke puncak stack sehingga disetiap waktu blok
secara parsial diisi. Mode pengalamatan stack merupakan
bentuk implikasi pengalamatan. Instruksi-instruksi mesin
tidak perlu meliputi acuan memori tetapi secara implisit
beroperasi diatas stack tersebut.

Tabel 6 Mode Pengalamatan

62
Gambar 21 Mode-mode Pengalamatan

Bentuk-bentuk instruksi

Suatu bentuk instruksi mendefinisikan layout bit


instruksi dalam kaitannya dengan bagian utamanya. Suatu
bentuk instruksi harus meliputi sebuah opcode dan secara

63
implisit /eksplisit, operand nol atau lebih. Masing-masing
operand eksplisit diacu dengan menggunakan salah satu
mode pengalamatan. Secara implisit/eksplisit, bentuk harus
mengindikasikan adanya mode pengalamatan untuk masing-
masing operand. Untuk kebanyakan set instruksi digunakan
bentuk instruksi lebih dari satu.

Panjang Instruksi

Hal yang mendasar dalam merancang adalah panjang


bentuk instruksi. Karena dipengaruhi oleh kapasitas memori,
organisasi memori, struktur bus, kompleksitas CPU dan
kecepatan CPU. Keputusan ini akan menentukan
kesempurnaan dan fleksibilitas dari mesin.

Kerugiannya adalah antara keinginan untuk repertoir


instruksi yang handal dan kebutuhan untuk menyimpan
ruang. Pemrogram menginginkan opcode yang lebih, operand
yang lebih, mode pengalamatan yang lebih dan cakupan
alamat yang lebih besar. Opcode dan operand yang lebih
membuat lebih mudah bagi pemrogram karena program yang
lebih pendek dapat ditulis untuk memenuhi tugas yang
diberikan. Dengan cara yang sama, mode pengalamatan yang
lebih memberikan fleksibilitas lebih besar bagi pemrogram
dalam pengimplementasian fungsi tertentu.

64
Opcode, operand, mode pengalamatan dan cakupan
alamat memerlukan bit dan mendorong dalam arah yang
panjang instruksinya lebih panjang. Instruksi yang lebih
panjang bisa saja tidak digunakan. Seperti sebuah instruksi 64
bit menduduki dua kali lebih ruang instruksi 32 bit, tetapi
manfaatnya kurang dari dua kali.

Selain kekurangan yang mendasar ini, terdapat


pertimbangan lain. Salah satu panjang instruksi harus sama
dengan panjang transfer memori (pada sistem bus, panjang
bus data) atau panjang instruksi harus berbeda. Cara lainnya,
kita tidak akan mendapatkan kesatuan bilangan instruksi
selama siklus pengambilan. Sebuah pertimbangan yang
terkait adalah kelajuan transfer memori. Kelajuan ini belum
mengikuti peningkatan kecepatan prosesor. Sehingga memori
dapat menjadi suatu penghambat jika prosesor dapat
mengeksekusi instruksi lebih cepat dari pada memori dapat
mengambilnya. Satu solusi untuk masalah ini adalah dengan
menggunakan memori cache, cara lain adalah dengan
menggunakan instruksi yang lebih pendek. Sehingga instruksi
16 bit dapat diambil dua kali kecepatan instruksi 32 bit tetapi
mungkin dapat dieksekusi lebih lambat dari dua kali. Panjang
instruksi seharusnya terdiri dari berbagai panjang karakter
yang umumnya adalah 8 bit.

65
Alokasi Bit

Untuk panjang instruksi yang diberikan terdapat


kerugian antara banyaknya opcode dan kemampuan
pengalamatan. Opcode yang lebih jelas berarti bit yang lebih
banyak dalam bidang opcode. Untuk bentuk instruksi dari
panjang yang diberikan, ini mengurangi banyaknya bit yang
tersedia untuk pengalamatan. Terdapat satu perbaikan yang
menarik terhadap kerugian ini, dan itu digunakan opcode
panjang variabel. Pada pendekatan ini terdapat panjang
opcode minimum, tetapi untuk beberapa opcode, operasi
tambahan mungkin dispesifikasikan dengan menggunakan bit
tambahan pada instruksi. Untuk instruksi panjang tetap, hal
ini meninggalkan lebih sedikit bit untuk pengalamatan.
Sehingga fitur ini digunakan untuk instruksi yang
memerlukan lebih sedikit operand/ sedikit lebih andal
pengalamatan.

Faktor saling berhubungan berikut menentukan penggunaan


pengalamatan bit :

 Jumlah mode pengalamatan : Mode pengalamatan


dapat diindikasikan secara implisit. Contoh ; opcode
tertentu mungkin selalu meminta untuk peng-indeks-
an. Pada kasus yang lain mode pengalamatan harus
eksplisit dan satu atau lebih bit mode akan diperlukan.
66
 Jumlah operand : alamat yang sedikit dapat dibuat
bagi program lebih panjang. Instruksi umum pada
mesin saat ini memberikan dua operand. Masing-
masing alamat operand pada instruksi mungkin
memerlukan indikator mode, atau penggunaan
indikator mode dapat dibatasi pada hanya satu bidang
alamat saja.

 Register versus memori : sebuah mesin harus


mempunyai register sehingga data dapat dibawa ke
dalam CPU. Dengan register tunggal terlihat oleh
pengguna (yg umum disebut akumulator), satu alamat
operand adalah implisit dan menggunakan bukan bit
instruksi. Bagaimanapun pemrograman register
tunggal memerlukan banyak instruksi. Sama dengan
berbagai register, hanya sedikit bit yang diperlukan
untuk menspesifikasikan register. Semakin register
tersebut dapat digunakan untuk acuan operand, lebih
sedikit bit yang diperlukan. Sejumlah penelitian
mengindikasikan bahwa total register yang terlihat
oleh pengguna adalah 8-32. Sedangakan untuk
arsitektur yang kontemporervmempunyai sedikitnya
32 register.

67
 Jumlah set register : Mesin yang paling kontemporer
mempunyai satu register bertujuan umum, pada
umumnya dengan 32 register atau lebih dalam satu
set. Register ini untuk menyimpan data dan alamat
untuk pengalamatan penggantian. Beberapa arsitektur
(pentium), mempunyai dua set khusus atau lebih.
Keuntungan dengan pendekatan ini, untuk bilangan
register tetap pemisahan fungsional memerlukan lebih
sedikit bit untuk digunakan dalam instruksi tersebut.
Contohnya; dengan dua set 8 register, hanya
diperlukan 3 bit untuk mengidentifikasi register,
opcode secara implisit akan menentukan set register
yang diacu.

 Cakupan alamat : Untuk alamat yang mengacu


memori, cakupan alamat yang dapat diacu
dihubungkan dengan jumlah bit alamat. Karena
pembebanan ini sebuah pembatasan, pengalamatan
langsung jarang digunakan. Pada pengalamatan
penggantian, cakupan dibuka sampai ke panjang
register alamat. Meski demikian , hal ini masih
mengizinkan penggantian yang agak besar dari alamat
register, yang memerlukan secara relatif sejumlah
besar bit alamat pada instruksi.

68
 Granularitas alamat : Untuk alamat yang mengacu
pada memori daripada register, faktor lainnya adalah
granularitas pengalamatan. Pada sistem dengan word
16 atau 32 bit, alamat dapat mengacu word atau byte
pada pilihan perancang.

Hal ini membuat perancang berhadapan dengan


sejumlah besar faktor untuk mempertimbangkan dan
menyeimbangkan. Penggunaan set asumsi konsistens, tidak
ada perbedaan penting dalam ruang kode atau waktu
eksekusi.

 PDP-8

PDP-8 adalah salah satu rancangan instruksi paling


sederhana untuk komputer bertujuan umum. PDP-8
menggunakan instruksi 12 bit dan beroperasi pada
word 12 bit. Terdapat suatu register bertujuam umum
tunggal, yaitu akumulator. PDP-8 mendukung
pengalamatan tidak langsung, pengalamatan
penggantidan peng-indeks-an. Bentuk instruksinya
juga efisien. Dengan menggunakan opcode perluasan,
mendukung kira-kira 35 instruksi. Dengan batasan
panjang instruksi 12-bit.

69
 PDP-10

PDP-10 dirancang untuk sistem berbagi waktu skala


besar dengan penekanan pada membuat sistem mudah
bagi program. Hal ini berbeda jauh dengan set
instruksi PDP-8.

Diantara prinsip rancangan yang telah dilakukan pada


perancangan set instruksi adalah:

1. Orthogonalitas
Merupakan prinsip dengan dua variabel independen satu
dengan lainnya. Dalam konteks set instruksi, istilah ini
mengindikasikan bahwa elemen-elemen instruksi lain
tidak terikat pada opcode. Perancang PDP-10
menggunakan istilah untuk menguraikan fakta bahwa
alamat selalu dihitung dengan cara yang sama, tidak
terikat pada opcode. Ini berlawanan dengan mesin
lainnya dimana mode alamat kadang-kadang tergantung
secara implisit pada operator yang sedang digunakan.

2. Kelengkapan

Masing-masing jenis data aritmatika mempunyai set


operasi lengkap dan identik.

70
Pengalamatan langsung, Basis ditambah pengalamatan
penggantian tempat dimana organisasi memori
membebankan pada pemrogram, dihindar menuju ke
pengalamatan langsung.

PDP-10 mempunyai panjang word 36 bit dan panjang


instruksi 36 bit. Tidak perlu melakukan apapun untuk
mendapatkan opcode yang lebih, bidang opcode 9 bit sudah
lebih dari cukup. Bidang alamat 18 bit sehingga
pengalamatan dilakukan secara langsung. Kapasitas memori
lebih besar dari 218 yang diberikan indirection. Peng-indeks-
an diberikan untuk manipulasi tabel danprogram secara
berulang dengan bidang operand 18 bit.

Instruksi-instruksi panjang variabel

Pengalamatan dapat lebih fleksibel dengan berbagai


macam kombinasi register dan acuan memori ditambah mode
pengalamatan. Dengan instruksi panjang variabel, variasi
banyak ini dapat diberikan secara efisien dan lengkap.

Biaya prinsip besar instruksi panjang variabel adalah


suatu peningkatan dalam kompleksitas CPU. Turunnya harga
perangkat keras, penggunaan pemrograman mikro dan
peningkatan umum dalam pemahaman prinsip-prinsip
rancangan CPU mempunyai semua dukungan dalam
71
penurunan biaya. Penggunaan instruksi panjang variabel
tidak membuang keinginannya terhadap pembuatan semua
panjang instruksi secara integral berhubungan dengan
panjang word. Karena CPU tidak mengetahui panjang
instruksi berikutnya untuk diambil, strategi umumnya adalah
mengambil sejumlah byte atau word sama dengan sedikitnya
instruksi yang mungkin terpanjang. Artinya bahwa kadang-
kadang diambil berbagai perintah.

 PDP-11

PDP-11 dirancang untuk memberikan set instruksi yang


handal dan fleksibel dalam batasan komputer mini 16
bit. Rancangan PDP-11 menjalankan set 8 register
bertujuan umum 16 bit. Dua register ini mempunyai arti
tambahan; satu digunakan sebagai pointer stack untuk
operasi stack tujuan khusus, dan salah satunya
digunakan sebagai pencacah program yang terdiri dari
alamat instruksi berikutnya.

Instruksi-instruksi PDP-11 pada umumnya satu word


(16 bit) panjang. Untuk beberapa instruksi, satu atau
dua alamat memori ditambahkan sehingga instruksi 32
bit dan 48 bit manjedi bagian repertoir. Hal ini

72
memberikan fleksibilitas lebih lanjut dalam
pengalamatan.

 VAX

Umumnya arsitektur memberikan relatif lebih sedikit


jumlah bentuk instruksi tetap. Ini dapat menyebabkan
dua permasalahan bagi pemrogram. Pertama, mode
pengalamatan dan opcode tidak orthogonal. Sebagai
contoh, untuk operasi yang diberikan, satu operand
harus datang dari register dan lainnya dari memori, atau
kedua-duanya dari register dan seterusnya. Kedua,
hanya jumlah operand terbatas yang dapat
diakomodasikan, secara umum sampai kedua atau tiga.
Karena beberapa operasi tidak terpisahkan memerlukan
operand yang lebih, berbagai macam strategi harus
digunakan untuk mencapai hasil yang diinginkandengan
menggunakan dua instruksi atau lebih.

73
C. Rangkuman

1. set Instruksi merupakan kumpulan dari instruksi-


instruksi yang berbeda yang dapat dijalankan oleh
CPU.

2. Dua bagian utama Arsitektur Komputer yaitu ISA dan


HAS. ISA meliputi spesifikasi yang menentukan
bagaimana programmer bahasa mesin akan berinteraksi
dengan komputer. ISA menentukan sifat komputasional
komputer. HSA berkaitan dengan subsistem hardware
utama komputer (CPU, sistem memori dan IO). HSA
mencakup desain logis dan organisasi arus data dari
subsistem.

3. Operasi CPU ditentukan oleh instruksi yang


dieksekusinya. Instruksi-instruksi ini di sebut sebagai
instruksi mesin (machine Instructions) atau instruksi
komputer (Computer Instructions). Set instruksi dari
instruksi-instruksi yang berbeda yang dapat dieksekusi
oleh CPU dikenal sebagai set instruksi CPU.

4. Setiap instruksi harus terdiri dari informasi yang


diperlukan oleh CPU untuk dieksekusi. Terdapat
langkah-langkah yang terdapat dalam eksekusi instruksi
dan bentuk elemen-elemen instruksi mesin. Elemen-
elemen tersebut adalah :
74
 Operation Code (opcode) : Menentukan operasi yang
akan dilaksanakan. Operasi ini dispesifikasikan oleh
sebuah kode biner, dikenal sebagai kode operasi atau
opcode.

 Source Operand Reference : Merupakan input bagi


operasi yang akan dilaksanakan. Operasi dapat
melibatkan satu atau lebih operand sumber, operand
merupakan input bagi operasi.

 Result Operand Reference : Merupakan hasil dari


operasi yang dilaksanakan.

 Next instruction Reference : Memberitahu CPU untuk


mengambil (fetch) instruksi berikutnya setelah
menyelesaikan eksekusi suatu instruksi.

5. Penggolongan jenis operasi yang umum adalah :

- Data Transfer - I/O


- Aritmatic - System control
- Logical - Transfer control
- Convension

6. Teknik pengalamatan yang umum adalah :


 Segera
 Langsung
 Tidak Langsung

75
 Register
 Register tidak langsung
 Pengganti
 Stack

7. Suatu bentuk instruksi mendefinisikan layout bit


instruksi dalam kaitannya dengan bagian utamanya.
Suatu bentuk instruksi harus meliputi sebuah opcode
dan secara implisit /eksplisit, operand nol atau lebih.

76
D. Latihan soal

1. Sebutkan dan jelaskan dua bagian utama Arsitektur


Komputer!
2. Jelaskan elemen-elemen pada set instruksi!
3. Opcodes direpresentasikan dalam bentuk singkatan
yang disebut mnemonics, yang menunjukkan operasi
yang akan dilaksanakan. Tuliskan 3 contoh
mnemonics!
4. Sebutkan jenis-jenis instruksi!
5. Salah satu cara tradisional untuk menggambarkan
arsitektur prosessor adalah dengan melihat jumlah
alamat yang terkandung dalam setiap instruksinya.
Jelaskan berapa jumlah alamat maksimum yang
mungkin diperlukan dalam sebuah instruksi!

77
BAB IV

PARALEL PROSESOR

A. Standar Kompetensi dan Indikator

Standar Kompetensi

Mampu mengaplikasikan paralel prosesor secara umum

Indikator

Mahasiswa dapat menjelaskan kategori sistem komputer dan


keterkaitannnya antara satu dengan lain.

B. Materi

1. Pembahasan Awal

Salah satu cara untuk meningkatkan kinerja sistem


komputer adalah dengan menggunakan berbagai prosesor
yang dapat mengeksekusi secara paralel untuk membantu
kerja pemuatan yang ada. Rancangan prosesor paralel
merupakan pengembangan terakhir dari ilmu pengetahuan
komputer yang didasari oleh kebutuhan menyelesaikan
beberapa instruksi secara paralel dalam waktu yang
bersamaan dengan mengurangi masalah ketergantungan data,
prosedural, unit fungsional, output dan anti ketergantungan
yang menyebabkan suatu instruksi terhenti atau harus
menunggu instruksi lainnya selesai untuk dapat diproses.
Operasi seperti ini hanya dapat dilakukan oleh komputer
yang memiliki dua atau lebih unit prosesor (CPU) yang
terhubung melalui beberapa jaringan koneksitas.

Paralel komputer dapat dianalogikan sebagai suatu


Bank dimana teller merupakan prosesor paralel dan transaksi
dengan konsumen sebagai task yang akan diproses.

Pada organisasi paralel, berbagai unit pengolahan saling


bekerja sama untuk melaksanakan aplikas-aplikasi.
Pelaksanaan instruksi dilakukan pada waktu yang bersamaan.
Jika sebuah prosesor superskalar memanfaatkan peluang
pelaksanaan yang paralel pada tingkatan instruksi, maka pada
suatu organisasi pengolahan paralel akan mencari tingkatan
paralel yang lebih kasar, yaitu eksekusi yang memungkinkan
suatu proses dilaksanakan oleh multipel prosesor secara
paralel dan saling bekerja sama. Dua organisasi multipel
prosesor yang umum adalah multipel prosesor simetris
(SMPS) dan Cluster, dan kemudian adapula sistem NUMA
yaitu sistem dengan akses memori yang tidak seragam.

Secara tradisional, komputer dipandang sebagai mesin


yang sekuensial. Sebagian besar bahasa pemograman
komputer mengharuskan pemrogram untuk
menspesifikasikan algoritma sebagai rangkaian instruksi.
79
Prosesor-prosesor mengeksekusi program dengan
mengeksekusi instruksi mesin secara berurutan dan satu
persatu. Masing-masing instruksi dieksekusi dalam rangkaian
operasi (operasi pengambilan, pelaksanaan dan penyimpanan
hasil). Cara demikian tidak seluruhnya benar. Pada tingkat
operasi mikro, beberapa sinyal kontrol dibuat dalam waktu
yang bersamaan. Pipelining instruksi, paling tidak yang
menyangkut operasi pengambilan dan instruksi telah
berlangsung lama. Kedua ini merupakan contoh fungsi yang
paralel.

Dengan semakin majunya teknologi komputer dan


dengan semakin murahnya harga hardware, perancang
komputer mencari kemungkinan penggunaan paralelisme
yang lebih banyak. Gunanya untuk meningkatkan kinerja dan
sebagian lagi untuk meningkatkan reliabilitas.

2. Organisasi berbagai Prosesor

Jenis-jenis Sistem Prosesor paralel

Sebuah taksonomi yang pertama kali diperkenalkan


oleh Flynn masih merupakan cara yang paling umum dari
penggolongan sistem-sistem dengan kemampuan pengolahan

80
yang paralel. Menurutnya kategori sistem komputer
berdasarkan strukturnya adalah:

 SISD (Single Instruction Stream, Single Data Stream)

Merupakan sebuah prosesor tunggal mengeksekusi arus


instruksi tunggal untuk beroperasi pada data yang disimpan
pada memori tunggal. Disebut juga dengan Uni-prosesor.
Prosesor tunggal berada pada kategori ini.

 SIMD (Single Instruction Stream, Multiple Data


Stream)

Sebuah mesin instruksi mengatur eksekusi dari


sejumlah elemen pengolahan pada sebuah basis secara
simultan. Terdapat sejumlah elemen proses dimana masing-
masing elemen memiliki data memori yang berhubungan,
sehingga masing-masing instruksi dieksekusi pada sebuah
rangkaian data (set data) yang berbeda dengan prosesor yang
berbeda. Prosesor vektor dan prosesor array termasuk pada
kategori ini.

SIMD merupakan salah satu bentuk dari paralel sinkron


yang memproses satu instruksi dengan banyak prosesor
elemen pada waktu yang sama. Di dalam paradigma SIMD
yang paling penting bukanlah kontrol prosesor melainkan
81
data. Data diproses oleh masing-masing elemen pemroses
yang berbeda dari satu prosesor ke prosesor lainnya.
Sehingga satu program dan satu kontrol unit bekerja secara
bersamaan pada kumpulan data yang berbeda. Untuk
memproses data secara efisien, SIMD membuat pengaturan
proses menjadi dua phase, yaitu : pertama memilah dan
mendistribusikan data (data partitioning and distribution) dan
yang kedua memproses data secara paralel (data paralel
prosesing).

Jadi efisiensi akan tergantung kepada banyaknya


permasalahan yang harus diselesaikan secara paralel. Cara
terbaik dalam menggunakan SIMD adalah dengan
mencocokan banyaknya permasalahan dengan banyaknya
prosesor paralel. Banyaknya permasalahan berarti seberapa
banyak jumlah data yang akan di perbaharui dan banyaknya
prosesor paralel berarti jumlah prosesor yang tersedia. Jadi
jika permasalahanya sebanding dengan prosesor paralel maka
kecepatan tertinggi dapat terjadi, sebaliknya apabila
permasalahan hanya satu dengan prosesor paralel yang
banyak menyebabkan sistem SIMD menjadi tidak efektif.
SIMD sering diidentikan sebagai permasalahan paralel yang
sederhana, padahal tidaklah benar karena paradigma SIMD
sangat berguna dalam menyelesaikan permasalahan yang
memiliki beberapa data yang perlu diperbaharui secara
82
serempak. Khususnya sangat berguna untuk perhitungan
numerik biasa seperti perhitungan matrix dan vektor.

 MISD (Multiple Instruction Stream, Single Data


Stream)

Urutan data yang diorganisir dipancarkan ke


serangkaian prosesor, masing-masing prosesor mengeksekusi
urutan instruksi yang berbeda. Struktur ini belum
diimplementasikan secara baik.

 MIMD (Multiple Instruction Stream, Multiple Data


Stream)

Serangkaian set prosesor mengeksekusi serangkaian


instruksi yang berbeda secara semultan pada rangkaian set
data yang berbeda. SMP, Cluster dan siste NUMA berada
pada kategori ini.

MIMD berarti banyak prosesor yang dapat


mengeksekusi instruksi dan data yang berbeda-beda secara
bersamaan. Lebih lanjut sebagai bagian dari komputer,
prosesor memiliki otonom yang besar dalam melakukan
operasinya. Secara umum MIMD digunakan ketika banyak
permasalahan heterogen yang harus diselesaikan pada waktu
yang sama. MIMD sangat baik digunakan untuk
83
meneyelesaikan permasalahan yang besar, sebab melebihi
data dan kontrol yang harus dilewatkan dari task ke task.
Sebagai contoh dalam analogi sebuah Bank, MIMD akan
menampilkan kerja terbaiknya ketika masing-masing teller
memiliki beberapa transaksi yang harus diselesaikan satu
persatu tanpa ada pembuangan waktu dan penghentian dari
beberapa bagian transaksi. Tetapi pada sistem MIMD akan
dibingungkan oleh aliran data (dataflow) paralel, karena
aliran data tersebut harus dikerjakan oleh mesin MIMD
secara terus menerus.

Pertama bahwa tiap-tiap prosesor bekerja secara


independen kecuali untuk sistem sinkoron tertentu harus
menunggu. Prosesor menjalankan task yang pendek sebagai
contoh selesainya mengevaluasi vektor satu elemen sebelum
prosesor memproses task lebih jauh. Tentu saja prosesor
dalam waktu yang singkat dapat melakukan beberapa
pekerjaan yang berbeda, seperti waiting, comparing dan
sending data.

Kedua, bahwa pada program paralel untuk


menyelesaikan suatu task baik jumlahnya diketahui ataupun
tidak, menggunakan prosesor yang jumlahnya tidak diketahui
pula. Hal tersebut menggambarkan dua ciri mendasar dari
sistem MIMD, yaitu :

84
1. Kelamahan pada sentralisasi dan mekanisme sistem
sinkron secara umum, dan

2. Penggeneralisasian task yang heterogen yang


dioperasikan secara bersamaan, contohnya dalam
memproses operasi yang berbeda dengan data berbeda
dan dalam jangka waktu yang berbeda pula.

Secara umum MIMD meliputi paradigma


reduksi/dataflow. Pada kenyataannya juga secara umum
meliputi SIMD, sebab kita dapat menemui sifat SIMD pada
sebagian sifat MIMD. Sehingga menghasilkan Kinerja akhir
dari simulasi satu bentuk mesin dengan bentuk lainnya.
Untuk menggabungkannya, mesin MIMD mengubah SIMD
prosesor dimana masing-masing prosesornya mampu
mengerjakan banyak task dari aplikasi yang berbeda pada
waktu yang sama

Dengan organisasi MIMD , prosesor merupakan tujuan


umum dimana masing-masing prosesor dapat memproses
semua instruksi yang penting untuk menampilkan
transformasi data yang sesuai. MIMD dapat dibagi lagi
berdasarkan cara komunikasi prosesornya. Apabila prosesor –
prosesor memiliki memori yang sama, maka masing-masing
prosesor mengakses program-program dan data yang
disimpan dalam memori bersama, dan prosesor

85
berkomunikasi satu sama lain melalui memori tersebut.
Bentuk umum dari sistem ini adalah multiprosesor simetris
(SMP). Multipel prosesor memberi satu atau sekelompok
memori dengan mekanisme bus yang diberikan atau
interkoneksi lainnya. Salah satu ciri yang membedakan
adalah waktu akses memori ke ruang memori manapun kira-
kira sama untuk masing-masing prosesor. Pengembangan
yang terbaru adalah NUMA, yaitu organisaasi akses memori
yang tidak seragam, seperti menurut Flynn bahwa waktu
akses memori pada ruang yang berbeda dapat berbeda bila
digunakan dengan prosesor NUMA. Kumpulan dari prosesor
tunggal atau SMP dapat diinterkoneksi untuk membentuk
sebuah cluster. Komunikasi antar komputer –komputer bisa
melalui jalan yang tetap maupun melalui beberapa fasilitas
jaringan.

Gambar 22 Taksonomi Arsitektur Paralel Prosesor

86
Organisasi Paralel

Pada struktur SISD ada beberapa macam unit control


yang menyediakan suatu arus instruksi (IS) ke sebuah unit
pengolahan (PU). Unit pengolahan mengoperasikan arus data
tunggal (DS) dari suatu unit memori (MU).

Gambar 23 Arus instruksi ke sebuah PU

Pada SIMD, masih terdapat sebuah unit control


tunggal yang sekarang memberi arus instruksi tunggal ke PU
multipel. Masing-masing PU memiliki memorinya sendiri
atau dapat juga suatu memori bersama.

Gambar 24 Arus instruksi tunggal ke PU multiple

87
Note : CU = Control Unit

IS = Instruction Stream (arus instruksi)

PU = Processing Unit

DS = Data Stream (arus Data)

MU = Memory unit

LM = Local Memory

Pada MIMD terdapat berbagai unit control yang


masing-masing memberi arus instruksi yang terpisah ke unit
pengolahan sendiri. MIMD dapat berupa multiprosesor yang
berbagi atau dapat berupa multi komputer memori
terdistribusi, seperti pada gambar dibawah berikut.

88
Gambar 25 MIMD share memori dan MIMD distributed memori

Permasalahan-permasalahan perancangan yang


berhubungan dengan SMPs, Clusters dan NUMA merupakan
permasalahan yang kompleks karena melibatkan adanya
permasalahan yang berhubungan dengan organisasi fisik,
struktur-struktur interkoneksi, komunikasi interprosesor,
rancangan sistem operasi dan teknik-teknik aplikasi software.
89
Multiprosesor Simetris

Hampir semua pengguna tunggal komputer pribadi dan


sebagian besar workstation menggunakan mikro prosesor
tunggal yang bertujuan umum. Dengan meningkatnya
permintaan kinerja dan dengan menurunnya biaya mikro
prosesor, diperkenalkan sistem dengan sebuah organisasi
SMP. Istilah SMP mengacu pada sebuah arsitektur komputer
hardware dan sifat operasi yang mencerminkan arsitektur
tersebut.

Sebuah SMP dapat didefinisikan sebagai sistem


komputer yang berdiri sendiri dengan karakteristik sbb :

1. Mengandung dua atau lebih prosesor yang serupa


dengan kemampuan setara.

2. Prosesor-prosesor tersebut berbagi memori utama dan


fasilitas I/O dan diinterkoneksikan oleh sebuah bus atau
skema hubungan internal lainnya, seperti waktu akses
memori yang kira-kira sama untuk setiap prosesor.

3. Semua prosesor berbagi akses ke alat I/O, baik melalui


saluran yang sama maupun melalui saluran berbeda
yang menyediakan jalan ke perangkat yang sama.

90
4. semua prosesor dapat menampilakn fungsi-fungsi yang
sama.

5. Sistem dikendalikan oleh sistem operasi yang


terintegrasi yang menyediakan interaksi antara prosesor
- prosesor dan program-programnya pada tingkatan
pekerjaan, tugas, file dan elemen data.

Sistem operasi SMP menjadwalkan proses-proses atau


thread melalui semua prosesor. Sebuah organisasi SMP
memiliki sejumlah keuntungan yang potensial atas sebuah
organisasi prosesor tunggal yang mencakup hal-hal berikut :

 Kinerja :
Jika pekerjaan yang dilaksanakan oleh komputer dapat
diorganisasikan sehingga beberapa bagian pekerjaan
dapat dilakukan secara paralel, maka sebuah sistem
dengan prosesor multipel akan menghasilkan kinerja
yang lebih besar daripada bila menggunakan prosesor
tunggal yang memiliki jenis yang sama.

 Ketersediaan :
Pada multiprosesor simetris, karena semua prosesor
dapat menampilkan fungsi-fungsi yang sama, kesalahan
dari prosesor tunggal tidak membuat mesin tersebut

91
berhenti melainkan sistem dapat berlanjut ke fungsi
pada kinerja yang dikurangi.

 Pertumbuhan yang meningkat :

Seorang pemakai dapat meningkat kinerja sebuah


sistem dengan menambahkan sebuah prosesor
tambahan.

 Pensaklaran :

Penjual dapat menawarkan kisaran produk dengan


harga dan karakteristik kinerja yang berbeda
berdasarkan jumlah prosesor-prosesor yang diatur pada
sistem.

Ciri yang menarik dari SMP adalah adanya transparansi


bagi pengguna mengenai keberadaan prosesor-prosesor
multipel. Sistem operasi menjaga penjadwalan thread atau
proses-proses pada prosesor-prosesor individual dan menjaga
sinkronisasi antar prosesor.

3. Organisasi Multiprosesor

Pada organisasi sistem multiprosesor terdapat dua


prosesor atau lebih. Setiap prosesor adalah self contained
termasuk diantaranya unit control, ALU, register dan
mungkin juga cache. Setiap prosesor memiliki akses ke
92
memori utama bersama dan perangkat-perangkat I/O dengan
menggunakan beberapa bentuk mekanisme interkoneksi.
Prosesor dapat berkomunikasi dengan yang lainnya melalui
memori-memori. Sering kali memori diatur sedemikian rupa
sehingga memungkinkan terjadinya sejumlah akses yang
bersamaan ke blok-blok memori yang berlainan. Beberapa
konfigurasi, prosesor juga mungkin memiliki memori utama
dan saluran I/O sendiri selain sumber daya yang dapat
dipakai bersama.

Pendekatan organisatoris SMP dapat digolongkan


sebagai berikut :

 Bus waktu bersama/bus umum (Time shared or


common bus)

 Memori yang memiliki sejumlah port (Multiport


memory)

 Unit kontrol pusat (Central control unit)

 Bus waktu bersama

93
Gambar 26 Unit control pusat

Bus waktu bersama merupakan mekanisme


pembentukan sistem multiprosesor yang paling sederhana.
Struktur dan antarmukanya pada dasarnya adalah sama
seperti untuk sistem prosesor tunggal yang menggunakan
interkoneksi bus

Bus terdiri dari saluran kontrol, alamat dan data. Untuk


memungkinkan transfer DMA dari prosesor-prosesor I/O
disediakan ciri-ciri sebagai berikut :

 Pengalamatan: Pengalamatan harus dapat


membedakan modul-modul yang ada pada bus untuk
menentukan sumber dan tujuan data.

 Arbitrasi: setiap modul I/O dapat berfungsi sebagai


master pada waktu tertentu. Mekanisme disediakan
untuk menentukan permintaan-permintaan yang

94
melakukan persaingan dalam memperoleh kontrol bus
dengan menggunakan sejumlah teknik prioritas.

 Pembagian waktu: Bila sebuah modul sedang


melakukan pengontrolan terhadap bus, maka modul -
modul lainnya di kunci dan bila perlu harus menahan
operasi sampai akses bus diperoleh.

Ciri-ciri ini secara langsung dapat digunakan pada


konfigurasi multiprosesor. Saat ini terdapat prosesor jamak
dan prosesor I/O yang berjumlah banyak yang semuanya
berusaha untuk memperoleh akses ke sebuah modul memori
atau lebih melalui bus.

Organisasi bus memiliki beberapa keuntungan


dibandingkan dengan pendekatan lainnya, yaitu :

 Kesederhanaan: Ini merupakan pendekatan organisasi


multiprosesor yang paling sederhana. Antarmuka fisik
dan logika pengalamatan, arbitrasi serta pembagian
waktu seluruh prosesor tetap sama seperti pada
prosesor tunggal.

 Fleksibilitas: Pada umumnya organisasi ini mudah


dikembangkan dengan cara menambahkan prosesor
yang lebih banyak ke bus.

95
 Reliabilitas: Pada dasarnya bus merupakan medium
pasif dan kegagalan suatu perangkat yang terhubung
tidak akan menyebabkan kegagalan bagi sistem secara
keseluruhan.

Prosesor Prosesor Prosesor


Cache L1 Cache L1 Cache L1

Cache L2 Cache L2 Cache L2


Shared bus

I/O
I/O Adapter
Memori
Subsystem
utama
I/O
Adapter

(Organisasi Multiprosesor Simetris) I/O


Adapter

Gambar 27 Organisasi Multiprosesor Simetris

Kelemahan pada organisasi bus adalah dalam hal


kinerja. Seluruh referensi memori dilewatkan melalui bus
umum, sehingga kecepatan sistem dibatasi oleh siklus waktu.
Untuk meningkatkan kinerja, maka setiap prosesor perlu
dilengkapi dengan memori cache, hal ini akan mengurangi
jumlah akses bus.

Setiap cache lokal berisi suatu citra bagian memori,


maka apabila suatu word diubah pada sebuah cache,
perubahan ini menjadikan tidak sah word pada cache

96
lainnya. Untuk mencegah hal ini, prosesor lain harus
diberitahu bahwa telah terjadi suatu update. Masalah ini
dikenal dengan koherensi cache dan biasanya dialamatkan
pada hardware daripada oleh sistem operasi.

M1 M2 Mk

P1 I/O1

Pn I/Om
Memori Multiport

Gambar 28 Memori Multiport

 Memori Multiport

Pendekatan memori multiport memungkinkan akses


modul-modul memori utama secara langsung dan independen
oleh prosesor dan modul I/O. Metode yang digunakan untuk
mengatasi konflik adalah dengan menetapkan prioritas yang
permanen bagi semua port memori. Hanya diperlukan sedikit
modifikasi prosesor atau modul I/O atau tidak sama sekali
untuk mengakomodasi memori multiport.

Pendekatan memori multiport lebih kompleks


dibanding dengan pendekatan bus yang memerlukan
97
penambahan logika dalam jumlah banyak ke sistem memori.
Pendekatan ini memberikan kinerja yang lebih baik karena
setiap prosesor memiliki lintasan yang berdedikasi ke
masing-masing modul memori. Kelebihan lainnya adalah
memungkinkan untuk melakukan konfigurasi bagian memori
sebagai ‘private’ bagi sebuah prosesor atau lebih dan atau
bagi modul-modul I/O.

 Unit Kontrol pusat

Unit kontrol pusat menyalurkan aliran data yang


terpisah secara bolak-balik diantara modul-modul yang
independen (prosesor, memori, I/O). Pengontrol dapat
menyangga permintaan dan melakukan fungsi arbitrasi dan
pewaktuan. Pengontrol juga melewatkan pesan-pesan status
dan kontrol diantara prosesor-prosesor dan melakukan
peringatan update cache. Seluruh logika untuk
mengkoordinasikan konfigurasi multiprosesor
dikonsentrasikan ke unit pusat. Hal ini memberikan
fleksibilitas dan kemudahan interfacing pendekatan bus.
Kelemahannya adalah unit kontrolnya cukup rumit dan
merupakan penyebab terjadinya kemacetan bagi kinerja.
Struktur unit kontrol pusat umum digunakan bagi sistem
mainframe berprosesor jamak, seperti IBM S/370 yang
berskala besar.

98
Suatu sistem operasi SMP mengatur prosesor dan
sumber daya komputer lainnya sedemikian rupa sehingga
pemakai merasa sistem operasi tunggal yang mengendalikan
sumber daya sistem. Sistem operasi multiprosesor harus
menyediakan semua fungsi sistem pemrograman dan ciri-ciri
tambahan lainnya untuk mengakomodasikan berbagai
prosesor. Kunci perancangan sistem operasi multiprosesor
adalah sbb :

 Proses berlangsung secara bersamaan:


Rutin SO perlu untuk dimasukkan kembali agar
beberapa prosesor dapat bereksekusi pada kode IS
secara bersamaan. Dengan berbagai prosesor yang
mengeksekusi bagian SO yang sama atau berbeda.
 Penjadwalan:
Prosesor apapun boleh melaksanakan penjadwalan.
Penjadwalan harus menugaskan beberapa proses yang
siap untuk prosesor yang tersedia.

 Sinkronisasi:
Sinkronisasi adalah sebuah fasilitas yang membuat
adanya pengeluaran timbal-balik dan pengurutan
peristiwa.

 Manajemen memori:
99
Manajemen memori pada suatu multiprosesor harus
berhubungan dengan semua masukan yang ada pada
mesin uniprocessor. Mekanisme penomoran halaman
pada berbagai multiprosesor yang berbeda harus
dikoordinasikan untuk mendorong terjadinya
konsistensi pada saat beberapa prosesor membagi
sebuah halaman atau bagian dan untuk memutuskan
pemindahan halaman.

 Reliabilitas dan toleransi kesalahan: Sistem operasi


harus dapat menurunkan terjadinya kegagalan
prosesor. Penjadwalan dan bagian lain sistem operasi
harus mengenali hilangnya suatu prosesor dan
mengatur kembali tabel manajemen dengan seksama.

4. Mainframe SMP

Kebanyakan PC dan stasiun kerja SMP menggunakan


strategi interkoneksi satu bus. Alternatif lain digunakan
implementasi terbaru dari kelompok mainframe IBM S/390.
Sistem ini memiliki prosesor tunggal dengan jangkauan satu
kartu memori utama untuk sistem yang tinggi dengan sepuluh
prosesor dan 4 kartu memori. Konfigurasi mencakup satu
atau dua prosesor tambahan yang bertindak sebagai prosesor

100
I/O. Gambaran seluruh organisasi SMP S/390 tampak pada
gambar di bawah berikut.

Gambar 29 Gambaran seluruh organisasi SMP S/390

Konfigurasi dari komponen-komponennya adalah


sebagai berikut:

 Unit Prosesor (PU) : Menggunakan mikroprosesor


CISC yang sering menggunakan instruksi
hardwired(sebagaian firmware). Masing-masing PU
meliputi cache 64 KB L1 agar mencapai akses satu
siklus.

 Cache L2 : Tiap Cache L2 384 KB diatur pada cluster


berpasangan dan mensuport 3 PU.

101
 Adapter jaringan Bus switching (BSN) : BSN
menginterkoneksi cache L2 dan memori utama, juga
cache L3 dengan kapasitas 2 MB.

 Kartu Memori : Tiap kartu memiliki 8 GB memori


dengan total kapasitasnya 32 GB.

Koherensi Cache dan Protokol Mesi

Pada sistem koherensi modern tiap prosesor memiliki


satu atau lebih tingkatan cache. Hal ini guna memperoleh
kinerja yang tinggi. Namun hal ini menimbulkan masalah
yang dikenal dengan koherensi cache. Inti masalah tersebut
adalah sejumlah salinan data yang sama dapat berada pada
cache yang berbeda pada waktu yang bersamaan, dan apabila
prosesor diberikan kebebasan untuk mengupdate salinannya
sendiri maka akan terjadi tidak konsistensi pada memori. Ada
dua kebijakan menulis yaitu :

- Menulis kembali; dimana operasi menulis biasanya


dibuat hanya ke cache, memori utama hanya diupdate
pada saat cache yang koheren dibersihkan dari cache.

- Menulis melalui; dimana semua operasi menulis


dibuat ke memori utama dan cache untuk memastikan
bahwa memori utama selalu valid.

102
Kebijakan menulis kembali dapat menyebabkan adanya
ketidak konsistenan. Bila dua cache memiliki baris yang
sama dan baris tersebut diupdate pada satu cache, maka cache
lain akan memiliki nilai yang tidak sah.

Protokol koherensi cache bertujuan untuk membiarkan


beberapa variabel lokal untuk bisa masuk pada cache yang
cocok. Koherensi cache dibagi atas pendekatan software dan
pendekatan hardware. Teknik koherensi cache software
berusaha untuk menghindarkan kebutuhan akan hardware
tambahan dan logika dengan mengandalkan kompiler dan
sistem operasi untuk mengatasi masalah. Masalah penting
akan dipindahkan dari hardware ke software. Keputusan yang
diambil menyebabkan ketidakefisienan penggunaan cache.
Pada pendekatan hardware, permasalahan hanya akan
ditangani apabila masalah tersebut benar terjadi, maka
penggunaan cache menjadi efektif dan kinerja menjadi lebih
baik dibandingkan dengan pendekatan software. Pendekatan
ini juga dapat dirasakan oleh pemrograman dan kompiler
yaitu mengurangi pekerjaan pembuatan software. Skema
hardware dapat dibagi atas dua kategori yaitu Protokol
Direktori dan protokol Snoopy .

Protokol Direktori mengumpulkan dan menjaga


informasi lokal salinan blok berada. Terdapat sejumlah

103
pengontrol tersentralisasi yang merupakan bagian memori
utama dan sebuah direktori yang tersimpan di dalam memori
utama. Direktori tersebut berisi informasi status global
tentang isi bermacam-macam cache lokal. Direkroti
bertanggung jawab atas penyimpanan infomasi status up to
date sehingga harus dilaporkan ke pengontrol sentral.
Kekurangan direktori adalah adanya kemacetan terpusat dan
overhead komunikasi antara berbagai pengontrol cache
dengan pengontrol sentral. Namun teknik ini efektif
digunakan pada sistem berskala besar yang melibatkan bus
berjumlah banyak atau pola interkoneksi yang kompleks.

Protokol Snoopy mendistribusikan tanggung jawab


untuk menjaga koherensi cache keseluruh pengontrol cache
di dalam sebuah multiprosesor. Cache harus mengetahui
kapan suatu blok yang ada didalamnya dapat digunakan
bersama. Aksi update harus diumumkan keseluruh cache
dengan menggunakan mekanisme pemancaran. Setiap
pengontrol cache memiliki kemampuan untuk
‘snoop’(mengintai) jaringan dalam mengamati
pemberitahuan pemancaran ini dan kemudian melakukan
reaksi. Idealnya digunakan untuk multiprosesor berbasis bus.
Ada dua pendekatan protokol snoopy, yaitu write invalidate
dan write update. Protokol write invalidate terdapat sejumlah
pembaca dan hanya satu penulis saja. Pada protokol write
104
update terdapat beberapa penulis dan beberapa pembaca.
Pada saat semua prosesor akan mengupdate blok bersama,
maka word yang akan diupdate akan didistribusikan ke
prosesor-prosesor lainnya dan cache yang berisi blok tersebut
akan mengupdatenya. Pendekatan write invalidate merupakan
pendekatan yang paling banyak digunakan pada sistem
multiprosesor komersil. Pendekatan ini menandai status
setiap saluran cache sebagai termodifikasi, ekslusif,
digunakan bersama atau invalid. Dengan alasan ini protokol
ini disebut MESI.

Protokol MESI cache data terdiri dari 2 bit status per-


tag-nya, sehingga setiap baris dapat berada pada salah satu
dari keempat keadaan berikut :

 Termodifikasi : Baris pada cache telah dimodifikasi


dan hanya tersedia hanya pada cache itu saja.

 Ekslusif : Baris yang berada pada cache yang sama


seperti pada baris memori utama dan tidak terdapat
pada cache-cache lainnya.

 Bersama : Baris yang berada pada cache sama seperti


pada memori utama dan mungkin terdapat pada cache
lainnya.

 Tidak valid : Bila cache tidak berisi data yang valid.


105
Pada saat read miss terjadi pada cache lokal, prosesor
mulai melakukan pembacaan memori untuk membaca blok
memori utama yang berisi alamat yang hilang. Prosesor
menyisipkan sebuah sinyal pada bus yang memperingati
semua unit prosesor/cache untuk melakukan snoop terhadap
transaksi. Pada saat terjadi miss tulis pada cache lokal, maka
prosesor akan melakukan pembacaan membaca blok yang
berada di dalam memori utama yang berisi alamat yang tidak
ditemukan. Untuk itu prosesor mengeluarkan sinyal pada bus
yang artinya membaca dengan tujuan untuk memodifikasi.
Ketika proses hit read terjadi pada sebuah baris di cache
lokal, prosesor dengan mudah membaca hal yang dibutuhkan.
Tidak ada perubahan status ;status tetap sama, sebagai
termodifikasi, bersama atau ekslusif. Bila terjadi hit tulis,
maka akibatnya akan bergantung pada status blok saat itu
pada cache lokal.

5. Cluster

Salah satu area terpenting pada perancangan sistem


komputer adalah clustering. Clustering adalah sebuah
alternatif bagi pengolahan multisimetris sebagai sebuah
pendekatan untuk menyajikan kinerja dan ketersediaan yang
tinggi dan biasanya menarik bagi aplikasi server. Dapat
didefinisikan sebuah cluster adalah sebuah group yang
106
terinterkoneksikan dimana keseluruhan computer bekerja
bersamaan sebagai satu kesatuan sumber yang dapat
menciptakan ilusi sebagai satu mesin. Istilah ‘whole
computer’ berarti sebuah sistem yang dapat berjalan dengan
sendirinya, diluar cluster, masing-masing pada sebuah cluster
disebut sebuah “node”. Menurut Brew ada empat
keuntungan yang diperoleh dengan cluster ini dan dapat pula
dianggap sebagai persyaratan dari rancangan, yaitu:

 Skalabilitas absolut : sebuah cluster dapat memiliki


selusin mesin yang masing-masing adalah
multiprosesor.

 Skalabilitas meningkat : sebuah cluster dikonfigurasi


sedemikian rupa sehingga mungkin untuk
menambahkan sistem-sistem baru ke cluster pada
peningkatan yang kecil.

 Ketersediaan tinggi : tiap node pada sebuah cluster


merupakan komputer yang berdiri sendiri, maka
kegagalan salah satu node tidak menyebabkan
hilangnya servis. Pada sebagian besar produk
toleransi kesalahan ditangani secara otomatis pada
software.

107
 Harga/ kinerja yang unggul : dengan menggunakan
komoditas blok bangunan, kita dapat meletakkan
sebuah cluster dengan tenaga komputerisasi yang
sama dan lebih besar daripada sebuah mesin tunggal,
dengan harga yang lebih murah.

Gambar 30 Konfigurasi Cluster

Cluster diklasifikasikan dalam beberapa cara :


- Berdasarkan ada tidaknya akses bersama pada cluster
untuk disk yang sama.
- Disk bersama.

108
6. Non Uniform Memory Access (NUMA)

Non-Uniform Memory Access atau Non-Uniform


Memory Architecture (NUMA) adalah desain memori
komputer yang digunakan dalam Multiprocessor, di mana
waktu akses memori tergantung pada lokasi memori relatif
terhadap sebuah prosesor. Pada NUMA, sebuah prosesor
dapat mengakses memori lokal sendiri lebih cepat daripada
memori non-lokal, yaitu memori lokal ke prosesor atau
memori lain dibagi antara prosesor.

Terdapat denifisi beberapa istilah pada literatur


NUMA, yaitu :

 Uniform memory access/Akses memori seragam


(UMA) ; semua prosesor mempunyai akses ke semua
bagian memori utama yang menggunakan pemuatan
dan penyimpanan. Waktu akses memori untuk
prosesor ke semua ruang adalah sama.

 Non Uniform memory access /Akses memori tidak


seragam (NUMA); semua prosesor mempunyai akses
ke semua bagian memori utama dengan menggunakan
pemuatan dan penyimpanan. Waktu akses memori
prosesor berbeda tergantung pada bagianmana dari
memori utama yang diakses. Untuk prosesor-prosesor

109
yang berbeda ruang memori yang lebih lambat atau
yang lebih cepat tidak sama.

 Koherensi Cache NUMA (CC-NUMA) ; adalah


sistem NUMA yang koherensi cachenya dijaga
diantara cache-cache beberapa prosesor.

Sistem NUMA yang tanpa koherensi cache kurang


lebih ekivalen terhadap cluster. NUMA merupakan salah satu
pendekatan untuk pencapaian pemrosesan dengan skala
besar. Tujuan penggunaan NUMA adalah untuk memelihara
memori sistem yang luas secara transparan pada saat
mengizinkan node-node berbagai multiprosesor, masing-
masing dengan busnya sendiri atau dengan sistem
interkoneksi internal lainnya. Gambar disamping ini
menunjukkan organisasi CC-NUMA. CC-NUMA berbeda
dengan SMP dan cluster. Ada beberapa node yang
independen yang masing-masing merupakan sebuah
organisasi SMP. Tiap node berisi beberapa prosesor dengan
cache L1 dan L2-nya dan memori utama. Node merupakan
dasar dari blok bangunan organisasi CC-NUMA. Node-node
terinterkoneksi dengan menggunakan beberapa fasilitas
komunikasi yang bisa menjadi mekanisme pergantian.

110
Prosesor 1-1 Prosesor 1-m Prosesor 2-1 Prosesor 2-m
Cache L1 Cache L1 Cache L1 Cache L1

Cache L2 Cache L2 Direktori Cache L2 Cache L2 Direktori

Memori I/O I/O Memori


Utama 1 Utama 2

Jaringan
Interkoneksi

Prosesor N-1 Prosesor N-m


Cache L1 Cache L1

Cache L2 Cache L2 I/O

Direktori
Gambar Organisasi CC-NUMA
Memori
Utama N

Gambar 31 organisasi CC-NUMA

Tiap node pada cc-NUMA meliputi beberapa memori


utama, dari sudut pandang prosesor hanya ada satu memori
tunggal, dengan masing-masing lokasi yang memiliki alamat
sistem luas. Ketika suatu prosesor memulai akses memori,
jika lokasi memori yang diminta tidak berada pada cache
prosesor tersebut, maka cache L2 memulai suatu operasi
pengambilan. Jika baris yang diinginkan pada bagian yang
lokal berada pada memori utama, maka baaris akan diambil
melalui bus lokal. Jika baris yang diinginkan berada pada
bagian yang jauh dari memori utama, maka permintaan yang
otomatis dikirimkan untuk mengambil baris melewati
jaringan interkoneksi, mengirimkannya ke bus lokal dan
kemudian mengirimkannya ke cache yang diminta pada bus

111
tersebut. Semua kegiatan ini otomatis dan transparan pada
prosesor dan cachenya.

Pada konfigurasi ini, koherensi cache merupakan


pertimbangan yang terpenting. Walaupun implementasinya
berbeda secara lebih rinci, secara umum masing-masing node
harus menjaga beberapa bagian direktori yang
memberikannya sebuah indikasi lokasi dari berbagai bagian
memori dan juga status informasi cache. Keuntungan utama
dari sistem CC-NUMA adalah dapat menyampaikan kinerja
yang efektif pada tingkat yang lebih tinggi daripada SMP,
tanpa perubahan sebagaian besar software. Dengan berbagai
node-node NUMA, lalu lintas bus pada node individual
terbatas terhadap permintaan yang dapat ditangani bus. Jika
banyak akses memori ditujukan ke node-node yang jauh,
maka kinerja akan menurun. Gagalnya kinerja ini dapat
dihindari. Pertama kegunaan cache L1 dan cache L2
dirancang untuk meminimalkan semua akses memori
termasuk yang terjauh. Jika sebagain software memiliki
lokasi sementara, dan jika memori virtual digunakan, maka
data yang diperlukan untuk sebuah aplikasi akan berada pada
jumlah halaman yang terbatas yang dapat dimuat dari memori
lokal ke memori yangsedang dilaksanakan. Akhirnya skema
memori virtual dapat ditingkatkan dengan memasukkan
sistem operasi mekanisme migrasi yang akan memindahkan
112
halaman memori virtual ke sebuah node yang sering
digunakan.

Kelemahan CC-NUMA, software yang berubah akan


diminta untuk memindahkan sebuah sistem operasi dan
aplikasi-aplikasi dari sebuah SMP ke sistem CC-NUMA.

7. Komputasi Vektor

Perkembangan aplikasi berada diluar kemampuan


mainframe modern. Terdapat kebutuhan komputer untuk
menyelesaikan masalah matematika proses yang sebenarnya
seperti yang terdapat pada bidang aerodinamika, seismologi,
meteorologi, fisika atom dll. Umumnya masalah tersebut
ditandai dengan kebutuhan perhitungan berpresisi tinggi dan
program yang secara berulang melakukan operasi-operasi
aritmetik terhadap larik bilangan dalam jumlah besar. Untuk
mengatasi masalah tersebut maka dibuat super komputer.
Mesin ini mampu melakukan ratusan juta operasi perdetik
untuk keperluan kalkulasi numerik. Berbeda dengan
mainframe yang dirancang untuk pemrograman multi dan I/O
secara intensif.
Ada sistem jenis lain yang dirancang untuk memenuhi
kebutuhan komputasi vektor. Sistem ini dikenal dengan
prosesor larik. Walaupun super komputer dioptimasikan

113
untuk kebutuhan komputasi vektor, namun pada dasarnya ia
memiliki kemamppuan menangani tugas-tugas pengolahan
skalar dan pengolahan data yang umum. Pada pengolahan
larik tidak mencakup pengolahan skalar, pengolah larik
dipasang sebagai perangkat periperal baik oleh pengguna
mainframe maupun pengguna komputer kecil untuk
menjalankan bagian-bagian yang divektorkan pada suatu
program.

Terdapat tiga organisasi prosesor yang penting :

- ALU pipeline

- Prosesor paralel

- ALU paralel

Operasi vektor dapat ditingkatkan lebih lanjut apabila


elemen-elemen vektor terdapat didalam register seperti
terlihat pada gambar (a) dibawah ini.

Gambar 32 Operasi vektor


114
Semua elemen operand vektor dimuatkan sebagai
sebuah blok ke dalam register vektor yang sebenarnya hanya
berupa bank register-register yang identik dan besar.
Hasilnya juga disimpan didalam suatu register vektor.
Sebagian operasi hanya melibatkan penggunaan register dan
hanya operasi pemuatan dan penyimpanan awal serta akhir
operasi vektor memerlukan akses ke memori.

Gambar 33 Taksonomi organisasi komputer

Cara lain untuk mendapatkan pengolahan vektor adalah


dengan menggunakan ALU berjumlah jamak pada prosesor
tunggal dibawah kendali kontrol unit. Unit kontrol
mengirimkan data ke ALU hingga ALU tersebut dapat
berfungsi secara paralel. Dapat pula menggunakan pipeline
pada tiap ALU yang paralel. Seperti halnya pipeline,
organisasi ALU paralel cocok untuk pengolahan vektor. Unit
kontrol mengirimkan elemen-elemen vektor ke ALU sampai
seluruh elemen tersebut selesai diproses. Jenis organisasi ini
lebih kompleks dibanding prosesor dengan ALU tunggal.

115
Cara yang terakhir untuk pengolahan vektor dapat
diperoleh dengan menggunakan prosesor paralel berjumlah
banyak. Diperlukan pembagian tugas menjadi beberapa
proses yang akan dieksekusi secara paralel. Organisasi ini
efektif bila terdapat software dan hardware untuk keperluan
organisasi prosesor paralel yang efektif.

Organisasi komputer dapat dibedakan menurut jumlah


unit kontrolnya. Unit kontrol berjumlah banyak
mengimplementasikan sejumlah prosesor. Apabila sejumlah
prosesor dapat berfungsi secara kooperatif maka prosesor
tersebut disebut prosesor paralel.

116
C. Rangkuman

1. Pada organisasi paralel, berbagai unit pengolahan


saling bekerja sama untuk melaksanakan aplikas-
aplikasi. Pelaksanaan instruksi dilakukan pada waktu
yang bersamaan. Jika sebuah prosesor superskalar
memanfaatkan peluang pelaksanaan yang paralel pada
tingkatan instruksi, maka pada suatu organisasi
pengolahan paralel akan mencari tingkatan paralel yang
lebih kasar, yaitu eksekusi yang memungkinkan suatu
proses dilaksanakan oleh multipel prosesor secara
paralel dan saling bekerja sama.

2. Dua organisasi multipel prosesor yang umum adalah


multipel prosesor simetris (SMPS) dan Cluster, dan
kemudian adapula sistem NUMA yaitu sistem dengan
akses memori yang tidak seragam.

3. Flynn mengelompokkan kategori sistem komputer


berdasarkan strukturnya, yaitu:

a. SISD (Single Instruction Stream, Single Data


Stream), merupakan sebuah prosesor tunggal
mengeksekusi arus instruksi tunggal untuk
beroperasi pada data yang disimpan pada memori
tunggal. Disebut juga dengan Uni-prosesor.
Prosesor tunggal berada pada kategori ini.

b. SIMD (Single Instruction Stream, Multiple Data


Stream), adalah sebuah mesin instruksi mengatur

117
eksekusi dari sejumlah elemen pengolahan pada
sebuah basis secara simultan.

4. Kelemahan pada organisasi bus adalah dalam hal


kinerja. Seluruh referensi memori dilewatkan melalui
bus umum, sehingga kecepatan sistem dibatasi oleh
siklus waktu. Untuk meningkatkan kinerja, maka setiap
prosesor perlu dilengkapi dengan memori cache, hal ini
akan mengurangi jumlah akses bus.

5. Clustering adalah sebuah alternatif bagi pengolahan


multisimetris sebagai sebuah pendekatan untuk
menyajikan kinerja dan ketersediaan yang tinggi.
Dikatakan sebagai sebuah group yang
terinterkoneksikan dimana keseluruhan computer
bekerja bersamaan sebagai satu kesatuan sumber yang
dapat menciptakan ilusi sebagai satu mesin

6. Sistem NUMA yang tanpa koherensi cache kurang


lebih ekivalen terhadap cluster. NUMA merupakan
salah satu pendekatan untuk pencapaian pemrosesan
dengan skala besar dengan tujuan untuk memelihara
memori sistem yang luas secara transparan pada saat
mengizinkan node-node berbagai multiprosesor,
masing-masing dengan busnya sendiri atau dengan
sistem interkoneksi internal lainnya.
118
D. Latihan soal:

1. Jelaskan yang dimaksud dengan paralel komputer!

2. Apakah tujuan rancangan prosesor parallel?


3. Sebutkan Jenis-jenis Sistem Prosesor parallel!
4. Gambarkan Arus instruksi ke sebuah PU pada struktur
SISD!
5. Apa yang dimaksud dengan clustering pada
perancangan sistem computer?
6. Jelaskan apa yang dimaksud dengan Non Uniform
Memory Access (NUMA)!

119
BAB V

PENGANTAR ARSITEKTUR RISC

A. Standar Kompetensi dan Indikator

Standar Kompetensi

Mampu menganalisa perbandingan komputer RISC dan CISC


serta aplikasi penggunaannya

Indikator

Mahasiswa dapat menjelaskan penggunaan teknologi RISC


dibanding teknologi yang ada sebelumnya.

B. Materi

1. Pembahasan Awal

Setelah mengikuti Kinerja suatu komputer adalah hal


yang sangat penting. Dalam perkembangannya kinerja selalu
ditingkatkan baik dari sisi kecepatan proses maupun sisi
ekonomisnya. Kecepatan komputer tergantung banyak hal,
salah satunya adalah set instruksi yang digunakan. Terdapat
dua konsep set instruksi di dalam komputer yakni CISC
(Complex Instruction Set Computer) dan RISC (Reduce
120
Instruction Set Computer). Sebagai perbandingan, CISC
mencoba untuk mengurangi jumlah instruksi pada program
sedangkan RISC mencoba mengurangi siklus instruksi.

Ditinjau dari jenis set instruksinya, ada 2 jenis


arsitektur komputer, yaitu :

1. Complex Instruction Set Computer (CISC), Arsitektur


komputer dengan kumpulan perintah yang rumit.

2. Reduced Instruction Set Computer (RISC), Arsitektur


komputer dengan kumpulan perintah yang sederhana.

2. Reduced Instruction Set Computing (RISC)

Reduced Instruction Set Computing (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
komersial pertama yang menggunakan konsep RISC ini
adalah IBM 801 PC pada era 1980-an. Istilah RISC sendiri
pertama kali dipopulerkan oleh David Patterson, pengajar
pada University of California di Berkely. Selain IBM 801
juga terdapat Stanford MIPS, dan Berkeley RISC 1 dan 2

121
semua dirancang dengan filosofi RISC. Fitur desain tertentu
telah menjadi ciri dari kebanyakan prosesor RISC, yaitu :

 One cycle execution time ( satu siklus waktu eksekusi) :


RISC processor memiliki CPI (clock per instruksi) dari
satu siklus. Hal ini disebabkan oleh optimasi dari setiap
instruksi pada CPU.

 Pipelining : sebuah teknik yang memungkinkan


pelaksanaan simultan bagian atau tahap instruksi untuk
memproses instruksi lebih efisien.

 Large number of registers (register dalam jumlah


besar) : filosofi desain RISC umumnya
menggabungkan sejumlah besar register untuk
mencegah dalam jumlah besar interaksi dengan
memori.

Elemen penting yang menjadi ciri dari prosesor RISC


adalah:

 Menggunakan teknologi kompiler untuk


mengoptimalisasikan penggunaan register.

 Instruksi set yang sedikit dan sederhana.

 Pengoptimalan pipeline instruksi agar efisien


memproses instruksi.

122
RISC atau "Komputasi set instruksi yang
disederhanakan" adalah prosesor yang memiliki set instruksi
program yang lebih sedikit dibandingkan CISC. Karena
perbedaan keduanya ada pada kata set instruksi yang
kompleks atau sederhana (reduced). RISC lahir dilatar
belakangi oleh CISC. Perbedaan mencolok dari pada RISC
ini adalah tidak ditemui adanya instruksi assembly atau yang
dikenal dengan bahasa mesin, sedangkan itu banyak sekali di
jumpai di CISC.

Konsep arsitektur RISC banyak menerapkan proses


eksekusi pipeline. Meskipun jumlah perintah tunggal yang
diperlukan untuk melakukan pekerjaan yang diberikan
mungkin lebih besar, eksekusi secara pipeline memerlukan
waktu yang lebih singkat daripada waktu untuk melakukan
pekerjaan yang sama dengan menggunakan perintah yang
lebih rumit. Mesin RISC memerlukan memori yang lebih
besar untuk mengakomodasi program yang lebih besar. RISC
memiliki keunggulan dalam hal kecepatannya sehingga
banyak digunakan untuk aplikasi-aplikasi yang memerlukan
kalkulasi secara intensif. RISC menyederhanakan rumusan
perintah sehingga lebih efisien dalam penyusunan kompiler
yang pada akhirnya dapat memaksimumkan kinerja program
yang ditulis dalam bahasa tingkat tinggi.

123
Ciri-ciri RISC adalah :

 Instruksi berukuran tunggal

 Ukuran yang umum adalah 4 byte.

 Jumlah mode pengalamatan data yang sedikit, biasanya


kurang dari lima buah.

 Tidak terdapat pengalamatan tak langsung.

 Tidak terdapat operasi yang menggabungkan operasi


load/store dengan operasi aritmetika (misalnya,
penambahan dari memori, penambahan ke memori).

Arsitektur RISC ini digunakan pada komputer dengan


kinerja tinggi, seperti komputer vektor. Selain digunakan
pada komputer vektor, desain ini juga diimplementasikan
pada prosesor komputer lain seperti processor buatan
Motorola (PowerPC) dan SUN Microsystems (Sparc,
UltraSparc).

Pada desain chip mikroprosesor RISC, pemroses


diharapkan dapat melaksanakan perintah-perintah yang
dijalankannya secara cepat dan efisien melalui penyediaan
himpunan instruksi yang jumlahnya relatif sedikit, dengan
mengambil perintah-perintah yang sangat sederhana,
akibatnya arsitektur RISC membatasi jumlah instruksinya

124
yang dipasang ke dalam mikroprosesor tetapi mengoptimasi
setiap instruksi sehingga dapat dilaksanakan dengan cepat.
Dengan demikian instruksi yang sederhana dapat
dilaksanakan lebih cepat apabila dibandingkan dengan
mikroprosesor yang dirancang untuk menangani susunan
instruksi yang lebih luas. Dengan demikian chip RISC hanya
dapat memproses instruksi dalam jumlah terbatas, tetapi
instruksi ini dioptimalkan sehingga cepat dieksekusi. Meski
demikian, bila harus menangani tugas yang kompleks,
instruksi harus dibagi menjadi banyak kode mesin, terutama
sebelum chip RISC dapat menanganinya. Karena
keterbatasan jumlah instruksi yang ada padanya, apabila
terjadi kesalahan dalam pemrosesan akan memudahkan
dalam melacak kesalahan tersebut.

Chip RISC menggunakan sejumlah kecil instruksi


dengan panjang-sama yang relatif sederhana, yaitu
panjangnya selalu 32 bit. Walaupun hal ini memboroskan
memori karena harus dibuat program lebih besar, instruksi
lebih mudah dan cepat dieksekusi. Karena chip ini berurusan
dengan jenis instruksi lebih sedikit, chip RISC membutuhkan
lebih sedikit transistor ketimbang chip CISC dan umumnya
berkinerja lebih tinggi pada kecepatan clock yang sama,
walaupun chip ini harus mengeksekusi lebih banyak instruksi
lebih pendek untuk menyelesaikan sebuah fungsi.
125
Kesederhanaan RISC juga mempermudah merancang
prosesor superscalar - chip yang dapat mengeksekusi lebih
dari satu instruksi pada satu saat. Hampir semua prosesor
RISC dan CISC modern adalah superscalar; tetapi untuk
mencapai kemampuan ini membuat desain lebih rumit.

Filosofi arsitektur RISC adalah arsitektur prosesor yang


tidak rumit dengan membatasi jumlah instruksi hanya pada
instruksi dasar yang diperlukan saja. Kerumitan membuat
program dalam bahasa mesin diatasi dengan membuat bahasa
program tingkat tinggi dan compiler yang sesuai. Karena
tidak rumit, teorinya mikroprosesor RISC adalah
mikroprosesor yang low-cost dalam arti yang sebenarnya.
Namun demikian, kelebihan ruang pada prosesor RISC
dimanfaatkan untuk membuat sistem-sistem tambahan yang
ada pada prosesor modern saat ini. Banyak prosesor RISC
yang di dalam chip-nya dilengkapi dengan sistem
superscalar, pipelining, caches memory, register-register dan
sebagainya, yang tujuannya untuk membuat prosesor itu
menjadi semakin cepat. Sudah sering kita mendengar debat
yang cukup menarik antara komputer personal IBM dan
kompatibelnya yang berlabel Intel Inside dengan komputer
Apple yang berlabel PowerPC.

126
Perbedaan utama antara kedua komputer itu ada pada
tipe prosesor yang digunakannya. Prosesor PowerPC dari
Motorola yang menjadi otak utama komputer Apple
Macintosh dipercaya sebagai prosesor RISC, sedangkan
Pentium buatan Intel diyakini sebagai prosesor CISC.
Kenyataannya komputer personal yang berbasis Intel
Pentium saat ini adalah komputer personal yang paling
banyak populasinya. Tetapi tidak bisa pungkiri juga bahwa
komputer yang berbasis RISC seperti Macintosh, SUN adalah
komputer yang handal dengan sistem pipelining, superscalar,
operasi floating point dan sebagainya.

3. Pendekatan RISC

Prosesor RISC hanya menggunakan instruksi-instruksi


sederhana yang dapat dieksekusi dalam satu siklus clock.
Dengan demikian, "mult" perintah yang dijelaskan di atas
dapat dibagi menjadi tiga perintah : "LOAD", yang
memindahkan data dari memori bank untuk salah satu
register, "PROD", yang menemukan produk dari dua
Operand yang terletak di dalam register, dan " STORE, "yang
memindahkan data dari satu register ke bank memori. Dalam
rangka untuk melaksanakan serangkaian langkah tepat
dijelaskan dalam pendekatan CISC, seorang programmer
perlu kode perakitan empat baris :
127
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Pada awalnya, ini mungkin tampak seperti kurang
efisien cara menyelesaikan operasi. Karena ada lebih baris
kode, lebih banyak RAM yang dibutuhkan untuk menyimpan
instruksi tingkat perakitan. Kompilator harus juga melakukan
lebih banyak pekerjaan untuk mengkonversi bahasa tingkat
tinggi ke dalam kode pernyataan dari formula ini. Namun
strategi RISC juga membawa beberapa keuntungan yang
sangat penting. Karena setiap instruksi hanya memerlukan
satu siklus clock untuk mengeksekusi, seluruh program akan
mengeksekusi dalam kira-kira jumlah waktu yang sama
seperti multi-siklus "mult" perintah. RISC ini "berkurang
instruksi" membutuhkan lebih sedikit transistor hardware
ruang daripada instruksi kompleks, meninggalkan ruang lebih
untuk tujuan umum register. Karena semua mengeksekusi
instruksi dalam jumlah yang seragam waktu (yaitu satu jam),
pipelining adalah mungkin.

Memisahkan "LOAD" dan "STORE" instruksi


sebenarnya mengurangi jumlah pekerjaan yang harus
dilakukan komputer. Setelah CISC "mult" perintah
dijalankan, prosesor yang secara otomatis menghapus
128
register. Jika salah satu kebutuhan Operand yang akan
digunakan untuk komputasi lain, prosesor harus kembali
memuat data dari bank memori ke dalam register. Dalam
RISC, yang operand akan tetap di dalam register sampai nilai
lain telah dimuat di tempatnya.

a. Karakteristik-karakteristik Eksekusi Instruksi

Dengan semakin murahnya harga hardware, harga


software mengalamai peningkatan karena sedikitnya jumlah
pemrogram. Sebagai respon dibuat bahasa program tingkat
tinggi yang lebih baik dan kompleks. Bahasa tingkat tinggi
(High Level Language/HLL) memungkinkan pemrogram
untuk menyatakan algoritma dengan lebih singkat, lebih
memperhatikan rincian dan mendukung penggunaan
pemrograman terstruktur atau rancangan yang berorientasi
objek.

Solusi ini menimbulkan masalah baru yaitu semantic


gap, yaitu perbedaan antara operasi-operasi yang disediakan
dalam bentuk HLL dan operasi-operasi yang disediakan
dalam bentuk arsitektur komputer. Tanda-tanda gap ini
dinyatakan dengan adanya ketidak efisienan eksekusi, ukuran
program mesin yang besar dan kompleksitas kompiler.

129
Gambar 34 RISC CISC

Lebih lanjut untuk memahami RISC, diawali dengan


tinjauan singkat tentang karakteristik eksekusi instruksi.
Aspek komputasi yang ditinjau adalah sbb :

 Operasi-operasi yang dilakukan: Hal ini menentukan


fungsi-fungsi yang akan dilakukan oleh CPU dan
interaksinya dengan memori.

 Operand-operand yang digunakan: Jenis-jenis operand


dan frekuensi pemakaiannya akan menentukan
organisasi memori untuk menyimpannya dan mode
pengalamatan untuk mengaksesnya.

 Pengurutan eksekusi: Hal ini akan menentukan kontrol


dan organisasi pipeline.

130
b. Operasi

Hasil-hasil penelitian yang dilakukan untuk


menganalisis tingkah laku program-program HLL
menunjukkan; Assign Statemen sangat menonjol diikuti
statemen bersyarat (IF, LOOP) lihat tabel dibawah ini.
Statemen-statemen ini diimplementasikan dalam bahasa
mesin dengan beberapa instruksi perbandingan dan
percabangan. Hal ini menyatakan bahwa mekanisme kontrol
urutan set merupakan hal yang penting.

Hasil-hasil penelitian ini merupakan hal yang sangat


penting bagi perancangan set instruksi mesin yang
mengindikasikan statemen mana yang peling sering terjadi
dan harus didukung. Kolom 2 dan 3 pada tabel dibawah
menunjukkan ukuran pengganti frekuensi yang relatif tentang
kejadian berbagai macam instruksi-instruksi HLL pada
berbagai program.

Data pada kolom 4-7 memberikan ukuran pengganti


dari waktu aktual yang diperlukan untuk mengeksekusi
berbagai jenis statemen. Hasilnya menyatakan bahwa
prosedur CALL/RETURN adalah operasi yang paling banyak
memakan waktu dalam program HLL yang umum.

131
Tabel 7 Tabel frekuensi dinamis relatif berbobot dari operasi-operasi
HLL

c. Operand

Penelitian yang dilakukan Patterson terhadap frekuensi


dinamik terjadinya kelas-kelas variabel dalam program pascal
dan C menunjukkan bahwa mayoritas referensi menuju ke
variable-variable skalar. Lebih dari 80% skalar bersifat
variabel lokal, terdapat acuan ke skalar dalam jumlah besar
dan acuan ini terlokalisasi. Penelitian tersebut menyatakan
bahwa jenis arsitektur berpengaruh pada kecepatan
pengaksesan operand karena operasi ini sering dilakukan.
Calon utama untuk optimisasi adalah mekanisme
penyimpanandan pengaksesan variabel-variabel skalar lokal.

Tabel 8 Tabel Presentase Dinamis Operand-operand

132
d. Prosedur Call

Prosedur Call dan Return merupakan aspek yang


penting dalam program-program HLL. Pada tabel frekuensi
dinamis relatif menunjukkan bahwa prosedur call dan return
merupakan operasi yang paling banyak membutuhkan waktu
dalam program-program yang dikompilasi. Dua aspek yang
lain adalah jumlah parameter dan variabel yang berkaitan
dengan prosedur, dan kedalaman pensarangan (nesting).

e. Implikasi

Usaha untuk membuat arsitektur set instruksi yang


mendekati HLL bukanlah strategi perancangan yang paling
efektif. HLL dapat didukung lebih baik dengan cara
pengoptimalan kinerja fitur-fitur program HLL tertentu yang
paling banyak membutuhkan waktu. Hasil-hasil penelitian
secara umum dapat dinyatakan bahwa terdapat tiga buah
elemen yang menentukan karakter arsitektur RISC.

 Penggunaan register dalam jumlah yang besaratau


penggunaan suatu kompiler untuk mengoptimalkan
penggunaan register. Hal ini dimaksudkan untuk
mengoptimalkan pereferensian /pengacuan operand.
 Diperlukan perhatian bagi perancangan pipeline
instruksi. Karena tingginya proporsi instruksi

133
pencabangan bersyarat dan prosedur call, pipeline
instruksi yang bersifat langsung dan ringkas akan
menjadi tidak efisien. Hal ini menggambarkan
terjadinya proporsi yang tinggi instruksi yang di
prefetch tetapi tidak pernah dieksekusi.
 Terdapat set instruksi yang disederhanakan (dikurangi).

f. Penggunaan File Register Besar

Terdapat statement assignment yang jumlahnya banyak


dalam program-program HLL, dan banyak diantaranya
berupa statement assignment sederhana seperti A = B. Di
samping itu, terdapat pula akses operand per statement HLL
dalam jumlah yang cukup besar. Apabila kita
menggabungkan keduanya dengan kenyataan bahwa sebagian
besar akses adalah menuju ke skalar-skalar lokal, maka
sangat mungkin kita memerlukan penyimpanan register yang
besar. Alasan diperlukannya penyimpanan register adalah
register merupakan perangkat penyimpanan yang paling
cepat, yang lebih cepat dibandingkan dengan memori utama
dan memori cache. Dimungkinkan untuk menerapkan dua
pendekatan dasar, yaitu berdasarkan perangkat lunak
(software) dan perangkat keras (hardware). Pendekatan
perangkat lunak mengandalkan kompiler untuk
memaksimalkan pemakaian register. Kompiler akan
134
mengalokasikan register-register bagi variabel-variabel yang
akan sering digunakan dalam periode waktu tertentu.

Pendakatan ini membutuhkan algoritma analisis


program yang canggih. Pendekatan perangkat keras
dilakukan hanya dengan memperbanyak jumlah register
sehingga akan lebih banyak variabel yang dapat ditampung di
dalam register dalam periode waktu yang lebih lama.
Pendekatan hardware diperkenalkan oleh kelompok Berkeley
RISC.

g. Register Windows

Teknik register windows memberikan organisasi yang


efisien untuk penyimpanan variabel skalar lokal di dalam
register. Pada setiap waktu hanya sebuah window/jendela
register yang terlihat dan dapat dialamati seolah-olah window
itu hanya satu-satunya himpunan register. Register windows
dibagi menjadi 3 buah daerah yang berukuran tetap.
 Register-register parameter. Menampung parameter-
parameter yang dilewatkan dari prosedur.
 Register-register lokal. Digunakan untuk variable lokal,
setelah di-assign/ditugaskan oleh kompiler.
 Register-register temporer. Digunakan untuk
pertukaran parameter. Ini memungkinkan parameter-

135
parameter dapat dilewatkan tanpa perpindahan aktual
data.

h. Variabel-variabel Global

Teknik Register Windows memberikan organisasi yang


efisien untuk penyimpanan variable skalar lokal di dalam
register. Akan tetapi teknik ini tidak dapat memenuhi
kebutuhan penyimpanan variabel global, yang diakses oleh
lebih dari sebuah prosedur (misalnya, variabel COMMON
dalam FORTRAN).

Terdapat dua pilihan untuk memenuhi hal tersebut.


Pertama, Variabel-variabel yang dideklarasikan sebagai
global pada HLL dapat disediakan lokasi-lokasi oleh
kompiler dan semua instruksi mesin yang mengacu variabel-
variabel ini akan menggunakan operand-operand acuan
memori. Cara ini langsung baik dari sudut pandang hardware
atau software (kompiler). Namun, bagi yang sering
mengakses variabel-variabel global, teknik tersebut tidaklah
efisien.

Alternatif lainnya adalah melibatkan kumpulan register


global di dalam CPU. Register-register ini harus memiliki
jumlah yang tetap dan dapat dipakai oleh semua prosedur.
Untuk menyederhanakan bentuk instruksi, dapat digunakan
136
teknik penomoran gabungan. Hardware tambahan diperlukan
untuk mengakomodasi pemisahan alamat-alamat register.
Selain itu kompiler harus menentukan variabel-variabel
global yang akan ditugaskan ke register.

i. File Register ukuran besar vs Cache

File register yang diorganisasikan menjadi


window/jendela berfungsi sebagai buffer kecil untuk
menampung subset seluruh variabel yang memiliki
kemungkinan besar akan banyak digunakan. Dari sudur
pandang ini file register berfungsi menyerupai sebuah cache
memori. File register berbasis windows menampung seluruh
variabel skalar lokal. Cache menampung pemilihan variabel
skalar yang digunakan saat ini. File register dapat menghemat
waktu karena semua variabel skalar lokal dipertahankan.
Sedangkan Cache dapat menggunakan ruang yang lebih
efisien karena cache bereaksi terhadap situasi dengan
dinamis. Cache secara umum juga memperlakukan seluruh
acuan memori secara sama termasuk instruksi dan jenis data
lainnya. Sehingga penghematan dalam bidang lainnya dapat
dimungkinkan dengan menggunakan cache dan bukan file
register.

137
Suatu file register dapat tidak efisien dalam
menggunakan ruang, karena tidak semua prosedur akan
memerlukan ruang jendela sepenuhnya yang telah diberikan.
Sedangkan cache memiliki ketidakefisienan lainnya. Data
akan dibaca ke dalam cache dalam bentuk blok-blok.
Sedangkan file register hanya berisi variabel-variabel yang
sedang digunakan, cache membaca blok data, beberapa atau
banyak diantaranya tidak akan digunakan.

Cache memiliki kemampuan untuk menangani variabel


global seperti halnya variabel lokal. Pada umumnya terdapat
banyak skalar-skalar global, tetapi hanya sedikit yang yang
digunakan. Sebuah cache secara dinamis akan menemukan
variabel-variabel ini dan menampungnya. Jika file register
windows ditambahkan dengan register-register global, maka
cache juga dapat menampung beberapa skalar global, akan
tetapi sulit bagi kompiler untuk menentukan skalar global
mana yang akan banyak digunakan. Kebanyakan memori
cache bersifat set asosiatif dengan ukuran set yang kecil.
Dengan demikian berbahaya karena data/instruksi lainnya
akan menindih variabel-variabel yang sering digunakan.

138
j. Optimisasi Register berbasis Kompiler

Kita asumsikan bahwa pada mesin RISC target hanya


tersedia register dalam jumlah sedikit (misal 16-32).
Penggunaan register yang dioptimalkan ini merupakan
tanggung jawab kompiler. Tentu saja sebuah program yang
ditulis dalam bahasa tingkat tinggi tidak memiliki acuan
eksplisit ke register. Kuantitas-kuantitas program diacu
secara simbolik. Fungsi kompiler adalah untuk menjaga
operand bagi komputasi sebanyak mungkin di dalam memori
utama. Ini ditujukan untuk meminimalkan operasi LOAD dan
STORE.

Secara umum pendekatan yang diambil adalah; setiap


kuantitas program yang akan ditempatkan dalam register
ditugaskan ditugaskan ke register virtual atau simbolik.
Kompiler kemudian memetakan jumlah tidak terbatas dari
register simbolik ke jumlah tertentu dari register nyata.
Register simbolik yang tidak menggunakan tumpang tindih
bisa berbagi dengan register riil. Jika banyak kuantitas
berhubungan dengan register riil, maka sebagian dari
kuantitas itu ditugaskan ke lokasi memori.

Inti tugas optimisasi adalah menentukan kuantitas yang


mana yang akan ditugaskan ke register di setiap posisi dalam

139
program. Teknik yang paling banyak digunakan di kompiler
RISC adalah pewarnaan grafik.

Dengan teknik optimisasi register, ada peningkatan


kinerja marjinal dengan lebih dari 32 register. Dengan
sejumlah kecil register (misalnya 16), suatu mesin dengan
suatu organisasi register yang bersama mengeksekusi lebih
cepat dibandingkan suatu organisasi yang menggunakan
register terpisah.

k. Karakteristik dari Arsitektur Reduced Instruction


Set

Karakteristik dari RISC adalah sebagai berikut:


 Satu instruksi per siklus
 Operasi register ke register
 Mode pengalamatan yang sederhana
 Format instruksi yang sederhana
 Desain hardwired (tanpa microcode)
 Format instruksi yang fix
 Proses compile yang cepat

Karakteristik Satu instruksi per siklus, suatu siklus


mesin dinyatakan oleh waktu yang dibutuhkan untuk
mengambil dua operand dari register, melaksanakan operasi
ALU, dan menyimpan hasilnya pada register. Sehingga

140
instruksi mesin RISC tidak boleh lebih rumit, dan kira-kira
secepat instruksi mikro pada mesin CISC. Untuk karakteristik
register ke register, pada umumnya operasi harus dalam
bentuk register-ke-register dengan hanya operasi akses
memori LOAD dan STORE yang sederhana. Rancangan ini
menyederhanakan set instruksi dan menyederhanakan unit
kontrol. Sebagai contoh ; sebuah set instruksi RISC bisa
mengandung hanya satu atau dua instruksi ADD, VAX
mempunyai 25 instruksi ADD berbeda. Keuntungan lain,
arsitektur seperti ini meningkatkan optimisasi penggunaan
register, sehingga operand-operand yang sering diakses akan
tetap berada dalam penyimpanan berkecepatan tinggi.
Operasi register-ke-register ini merupakan ciri khas dari
rancangan RISC. Untuk mengetahui akses yang sering terjadi
ke sejumlah kecil skalar yang lokal adalah dengan
menggunakan papan besar untuk register atau kompiler
optimisasi, umumnya operand bisa bertahan di dalam register
untuk periode waktu yang lama. Berikut ini adalah gambar
dua perbandingan dari pendekatan register-ke-register dan
memori-ke-memori.

141
Tabel 9 Memori ke memori dan Register ke memori

8 16 16 16 8 4 16
Tambah B C A Muatkan rB B
Memori ke memori Muatkan rC B
I = 56, D = 96, M = 152 Tambah rA rB rC
Simpan rA A
(a) A<--- B + C Register ke memori
I = 112, D = 96, M = 208

8 16 16 16 8 4 4 4
Tambah B C A Tambah rA rB rC
Tambah A C B Tambah rB rA rC
Tambah B D D Kurang rD rD rB
Memori ke memori Register ke memori
I = 168, D = 288, M = 456 I = 140, D = 96, M = 250

(b) A<--- B + C; B <--- A + C; D <--- D – B

I = ukuran dari instruksi yang dieksekusi


D = ukuran dari data yang dieksekusi
M = I + D = total lalu lintas memori

Karakteristik penggunaan mode pengalamatan


sederhana, umumnya instruksi RISC menggunakan
pengalamatan register sederhana. Rancangan ini
menyederhanakan set instruksi dan unik kontrol.
Karakteristik penggunaan bentuk instruksi sederhana, secara
umum hanya satu atau sedikit sekali bentuk digunakan.
Panjang instruksi tetap dan diratakan dengan batasan word.

142
Lokasi bidang, terutama opcode ditetapkan. Rancangan ini
mempunyai sejumlah keuntungan. Denga bidang tetap,
decode opcode dan akses register operand bisa terjadi secara
simultan. Bentuk instruksi sederhana menyederhanakan unit
kontrol. Intruksi pengambilan dioptimalkan sebab panjang
word telah diambil.

Semua karakteristik ini dapat diakses untuk menentukan


keuntungan-keuntungan potensial dari pendekatan RISC.
Keuntungan-keuntungan ini dapat dikategorikan dalam dua
kategori utama, yaitu yang berhubungan dengan kinerja dan
yang berhubungan dengan implementasi VLSI.

Yang berkaitan dengan kinerja, suatu jumlah


“circumstantial evidence” dapat direpresentasikan:

- Pengoptimalan kompiler yang kebih efektif dapat


dikembangkan.

- Kebanyakan instruksi yang dihasilkan oleh kompiler


biasanya sederhana secara relatif.

- Berhubungan dengan penggunaan pipelining instruksi.


Teknik pipelining instruksi dapat diimplementasikan
lebih efektif dengan suatu set instruksi reduced.

- Prosesor RISC harus lebih responsif ke interupsi.


Arsitektur dengan instruksi kompleks membatasi

143
intrupsi ke batasan-batasan instruksi atau harus dapat
menentukan posisi spesifik yang dapat diinterupsi dan
menerapkan mekanisme untuk memulai lagi suatu
instruksi.

Kemudian yang berhubungan dengan implementasi


VLSI. Ketika VLSI digunakan, rancangan dan implementasi
dari prosesor akan berubah. Prosesor tradisional seperti IBM
S/390 dan VAX terdirii dari satu atau lebih papan rangkaian
yang dicetak berdasarkan SSI standard dan paket MSI.
Dengan kehadiran LSI dan VLSI maka sangat mungkin untuk
mengemas suatu prosesor secara keseluruhan dalam suatu
chip tunggal. Pada prosesor chip tunggal, terdapat dua
motivasi untuk mengikuti strategi RISC. Pertama yang
berkaitan dengan kinerja, waktu tertunda dalam satu chip
jauh lebih pendek dari waktu tunda insterchip. Kedua yang
berkaitan dengan waktu rancangan dan implementasi, sebuah
VLSI prosesor sulit untuk berkembang. Sebagai
penggantinya SSI/MSI yang tersedia, perancang harus
merancang rancangan sirkuit, penampilan dan pemodelan
tingkat perangkat.

l. Karakteristik CISC vs RISC

Rancangan RISC dapat memperoleh manfaat melalui


beberapa fitur CISC, rancangan CISC dapat memproleh
144
manfaat melalui beberapa fitur RISC. Hasilnya adalah suatu
rancangan RISC baru. Berikut ini adalah pertimbangan
beberapa ciri khas dari suatu RISC klasik :

 Ukuran Instruksi tunggal

 Ukuran yang umum adalah 4 byte.

 Jumlah mode pengalamatan data yang sedikit, biasanya


kurang dari lima buah.

 Tidak terdapat pengalamatan tak langsung.

 Tidak terdapat operasi yang menggabungkan operasi


load/store dengan operasi aritmetika.

 Tidak lebih dari satu operand beralamat memori per


instruksi.

 Tidak mendukung perataan sembarang tentang data


untuk operasi load/store.

 Jumlah maksimum penggunaan unit manajemen


memori (MMU) untuk suatu data adalah suatu
instruksi.

 Jumlah bit untuk spesifier integer sama dengan lima


atau lebih.

 Jumlah bit untuk spesifier register titik mengambang


sama dengan empat atau lebih.

145
Tabel 10 Karakteristik dari beberapa Prosesor CISC, RISC, dan
Superskalar

m. Pipelining RISC

Pipelining instruksi adalah sering digunakan untuk


meningkatkan kinerja. Pada arsitektur RISC kebanyakan
instruksi merupakan register ke register dan suatu siklus
instruksi mempunyai dua langkah berikut:

1. I : Instruction Fetch (PengambilanInstruksi)

2. E : Execute (Melakukanoperasi ALU dengan register


input dan output.

Operasi Load danStore memiliki 3 Fase:

1. I : Instruction Fetch

2. E : Execute (Menghitung alamat memori)

146
3. D : Memory (Operasi register ke memori atau
memori ke register

Gambar (a) dibawah ini menggambarkan pewaktuan set


instruksi tanpa menggunakan pipelining. Pipelining yang
sangat sederhana dapat meningkatkan kinerja. Gambar (b)
menunjukkan suatu rancangan pipelining dua tahap, dimana I
dan E langkah-langkah dari dua instruksi yang berbeda yang
diesekusi bersama. Rancangan dapat menghasilkan eksekusi
lebih cepat dua kali lebih dari pada eksekusi rancangan serial.

Gambar 35 Pewaktuan set instruksi tanpa menggunakan pipelining,


rancangan pipelining dua tahap, dua akses memori per langkah, dan
pipelining empat tahap

Pipelining dapat ditingkatkan dengan mengizinkan dua


akses memori per langkah. Cara ini menghasilkan suatu
deretan seperti pada gambar (c), lebih dari tiga instruksi dapat
147
dilaksanakan. Instruksi pencabangan menghalangi
tercapainya kecepatan maksimum. Namun ketergantungan
data mempunyai suatu efek tertentu juga. Jika suatu instruksi
memerlukan suatu operand yang sudah diubah oleh instruksi
sebelumnya, maka suatu penundaan akan terjadi. Hal ini
dapat diatasi dengan menggunakan NOOP.

Dua masalah menghambat pencapaian kecepatan


maksimum :

- Suatu memori port tunggal digunakan dan hanya


dapat mengakses satu langkah memori. Sehingga
memerlukan waktu tunggu tambahan untuk beberapa
instruksi.

- Suatu instruksi pencabangan mengintrupsi aliran


eksekusi. Untuk mangakomodasi dengan rangkaian
yang minimum, suatu instruksi NOOP dapat
disisipkan arus instruksi oleh kompiler atau asembler.

Pipelining yang telah dibahas tadi, akan bekerja baik


jika ketiga langkah-langkahnya memiliki waktu yang kira-
kira sama. Sebab langkah E pada umumnya melibatkan suatu
operasi ALU, maka langkah ini akan lebih lama. Dalam hal
ini dapat membaginya dalam dua sub langkah :

148
- E1 : Membaca file register
- E2 : Operasi ALU dan tulis register.

Karena adanya kesederhanaan dan keteraturan set


instruksi RISC. Rancangan tiga atau empat langkah mudah
dilakukan. Gambar (d) menunjukkan pipelining empat tahap.
Sampai keempat instruksi dapat berjalan dengan waktu yang
sama, dan peningkatan kecepatan potensi yang maksimum
adalah suatu kelipatan empat. NOOPS tetap digunakan untuk
mengatasi ketundaan data dan pencabangan.

Optimisasi Pipelining

Karena sifat yang reguler dan sederhana pada instruksi


RISC, rancangan pipelining dapat secara efisien
dilaksanakan. Ada beberapa variasi dalam waktu eksekusi
instruksi, dan pipelining dapat digunakan dalam hal ini.
Ketergantungan data dan pencabangan dapat mengurangi
kecepatan eksekusi secara keseluruhan. Untuk mengganti
kerugian atas ketergantungan ini, dapat digunakan teknik
reorganisasi kode.

149
4. Prospek Arsitektur RISC di Masa Mendatang

Perkembangan menarik terjadi pada tahun 1993 ketika


aliansi tiga perusahaan terkemuka, IBM, Apple, dan
Motorola memperkenalkan produk baru mereka yakni Power
PC 601, suatu mikroprosesor RISC 64-bit yang dirancang
untuk stasiun kerja (workstation) atau komputer personal.
Menarik, karena kemunculan PowerPC 601 dimaksudkan
untuk memberikan alternatif bagi dominasi prosesor CISC
keluarga x-86 Intel dalam komputer rumahan. Popularitas
prosesor keluarga-86 didukung oleh harganya yang murah
dan banyaknya program aplikasi yang dapat dijalankan
dengan prosesor ini. Untuk itu, prosesor PowerPC dijual
dengan harga yang cukup bersaing dibandingkan dengan
pentium, yakni prosesor buatan Intel mutakhir saat itu.
Perkembangan teknologi emulasi yang memungkinkan
prosesor RISC menjalankan sistem operasi yang sama dengan
prosesor CISC keluarga-86 diperkirakan akan membuat
prosesor RISC, terutama PowerPC 601, banyak digunakan di
dalam komputer-komputer personal.

PowerPC 601 memiliki 32 buah register serbaguna 32-


bit dan 32 buah 64-bit register floating-point. Untuk
menyimpan sementara data dan instruksi sebelum dieksekusi,
PowerPC 601 memiliki 32-kilobyte chace untuk data dan

150
instruksi bersama-sama. Teras PowerPC 601 terdiri dari tiga
unit eksekusi dengan alur-pipa yang independen, yakni unit
pemroses bilangan bulat (IU, integer unit), unit floating-point
(FPU, floating processing unit), dan unit pemroses operasi
percabangan (BPU, branch processing unit) yang mampu
mengeksekusi tiga instruksi sekaligus.

Perkembangan menarik juga nampak dengan


diadopsinya sebagian arsitektur RISC ke dalam prosesor
CISC yang dikenal dengan sebutan arsitektur hibrid
CISC/RISC. Intel Corporation mengimplementasikan
arsitektur CISC/RISC ini ke dalam prosesor keluarga-86
dimulai dengan prosesor Pentium, kemudian prosesor P6 atau
Pentium Pro. Beberapa produsen lain, dengan cara berbeda
juga mulai mengadopsi arsitektur campuran CISC/RISC ini
misalnya Matsushita Corp dengan prosesor V810, Advanced
RISC Machines dengan ARM610, dan Hitachi dengan
prosesor SH7032.

151
C. Rangkuman

1. Fitur desain tertentu telah menjadi ciri dari kebanyakan


prosesor RISC, yaitu :
 One cycle execution time ( satu siklus waktu
eksekusi): RISC processor memiliki CPI (clock per
instruksi) dari satu siklus. Hal ini disebabkan oleh
optimasi dari setiap instruksi pada CPU.
 Pipelining : sebuah teknik yang memungkinkan
pelaksanaan simultan bagian atau tahap instruksi
untuk memproses instruksi lebih efisien.
 Large number of registers (register dalam jumlah
besar) : filosofi desain RISC umumnya
menggabungkan sejumlah besar register untuk
mencegah dalam jumlah besar interaksi dengan
memori.

2. Ciri-ciri RISC adalah :


 Instruksi berukuran tunggal
 Ukuran yang umum adalah 4 byte.
 Jumlah mode pengalamatan data yang sedikit,
biasanya kurang dari lima buah.
 Tidak terdapat pengalamatan tak langsung.
 Tidak terdapat operasi yang menggabungkan operasi
load/store dengan operasi aritmetika (misalnya,
penambahan dari memori, penambahan ke memori).

152
3. Prosesor RISC hanya menggunakan instruksi-instruksi
sederhana yang dapat dieksekusi dalam satu siklus
clock.

4. Karakteristik dari RISC adalah sebagai berikut:


 Satu instruksi per siklus
 Operasi register ke register
 Mode pengalamatan yang sederhana
 Format instruksi yang sederhana
 Desain hardwired (tanpa microcode)
 Format instruksi yang fix
 Proses compile yang cepat

5. Dua masalah menghambat pencapaian kecepatan


maksimum :
 Suatu memori port tunggal digunakan dan hanya
dapat mengakses satu langkah memori. Sehingga
memerlukan waktu tunggu tambahan untuk beberapa
instruksi.

 Suatu instruksi pencabangan mengintrupsi aliran


eksekusi. Untuk mangakomodasi dengan rangkaian
yang minimum, suatu instruksi NOOP dapat
disisipkan arus instruksi oleh kompiler atau asembler.

153
D. Latihan soal:

1. Sebutkan fitur desain tertentu yang telah menjadi ciri


dari kebanyakan prosesor RISC!
2. Jelaskan yang anda ketahui mengenai RISC!
3. Sebutkan ciri-ciri RISC!
4. Sebutkan karakteristik dari RISC!
5. Bagaimana prospek arsitektur RISC dimasa
mendatang?

154
BAB VI

ARSITEKTUR KOMPUTER CISC

A. Standar Kompetensi dan Indikator

Standar Kompetensi

1. Memahami teknologi dan aplikasi CISC komputer dan


penggunaannya
2. Memahami dan dapat mengaplikasikan RISC dan CISC
komputer dalam dunia kerja

Indikator

 Mahasiswa dapat menjelaskan penggunaan teknologi


CISC dibanding teknologi yang ada sebelumnya.

 Mahasiswa dapat menjelaskan perbedaan antara teknologi


RISC dan CISC.

B. Materi

1. Definisi

Complex instruction-set computing atau Complex


Instruction-Set Computer (CISC; "Kumpulan instruksi
komputasi kompleks") adalah sebuah arsitektur dari set
instruksi dimana setiap instruksi akan menjalankan beberapa
operasi tingkat rendah, seperti pengambilan dari memory,
operasi aritmetika, dan penyimpanan ke dalam memory,
semuanya sekaligus hanya di dalam sebuah instruksi.
Karakteristik CISC dapat dikatakan bertolak-belakang
dengan RISC.

Prosesor CISC memiliki instruksi-instruksi kompleks


untuk memudahkan penulisan program bahasa assembly.
Prosesornya memiliki set instruksi yang kompleks dan
lengkap. Instruksi-instruksi yang tersedia memudahkan para
programmer untuk mengembangkan aplikasi untuk plattform
CISC. Di lain pihak, banyaknya instruksi dalam CISC dapat
mengurangi kecepatannya. CISC merupakan kebalikan dari
RISC, biasanya digunakan pada keluarga processor untuk PC
(Intel, AMD, Cyrix).

CISC dimaksudkan untuk meminimumkan jumlah


perintah yang diperlukan untuk mengerjakan pekerjaan yang
diberikan. Konsep CISC menjadikan mesin mudah untuk
diprogram dalam bahasa rakitan, tetapi konsep ini
menyulitkan dalam penyusunan kompiler bahasa
pemrograman tingkat tinggi. Dalam CISC banyak terdapat
perintah bahasa mesin.

156
Sebelum proses RISC didesain untuk pertama kalinya,
banyak arsitek komputer mencoba menjembatani celah
semantik", yaitu bagaimana cara membuat set-set instruksi
untuk mempermudah pemrograman level tinggi dengan
menyediakan instruksi "level tinggi" seperti pemanggilan
prosedur, proses pengulangan dan mode-mode pengalamatan
kompleks sehingga struktur data dan akses array dapat
dikombinasikan dengan sebuah instruksi. Karakteristik CISC
ini memberikan keuntungan di mana ukuran program-
program yang dihasilkan akan menjadi relatif lebih kecil, dan
penggunaan memory akan semakin berkurang. Karena CISC
inilah biaya pembuatan komputer pada saat itu (tahun 1960)
menjadi jauh lebih hemat.

Memang setelah itu banyak desain yang memberikan


hasil yang lebih baik dengan biaya yang lebih rendah, dan
juga mengakibatkan pemrograman level tinggi menjadi lebih
sederhana, tetapi pada kenyataannya tidaklah selalu
demikian. Contohnya, arsitektur kompleks yang didesain
dengan kurang baik (yang menggunakan kode-kode mikro
untuk mengakses fungsi-fungsi hardware), akan berada pada
situasi di mana akan lebih mudah untuk meningkatkan
performansi dengan tidak menggunakan instruksi yang
kompleks (seperti instruksi pemanggilan procedure), tetapi
dengan menggunakan urutan instruksi yang sederhana.
157
Satu alasan mengenai hal ini adalah karena set-set
instruksi level-tinggi, yang sering disandikan (untuk kode-
kode yang kompleks), akan menjadi cukup sulit untuk
diterjemahkan kembali dan dijalankan secara efektif dengan
jumlah transistor yang terbatas. Oleh karena itu arsitektur -
arsitektur ini memerlukan penanganan yang lebih terfokus
pada desain prosesor. Pada saat itu di mana jumlah transistor
cukup terbatas, mengakibatkan semakin sempitnya peluang
ditemukannya cara-cara alternatif untuk optimisasi
perkembangan prosesor. Oleh karena itulah, pemikiran untuk
menggunakan desain RISC muncul pada pertengahan tahun
1970. Contoh-contoh prosesor CISC adalah System/360,
VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan
Intel x86.

Filsafat CISC adalah :

 Menggunakan microcode

 Membangun set instruksi yang besar

 Membangun set instruksi dengan HLL

Perkembangan lebih lanjut dari implementasi dan


desain CISC adalah munculnya CISC paralel, untuk pertama
kalinya diterdapat pada prosesor 486 dari Intel yang telah
mendukung setiap instruksi yang digunakan oleh prosesor-
158
prosesor sebelumnya. Meskipun efisiensi tertingginya hanya
saat digunakan pada subset x86 yang sederhana (mirip
dengan set instruksi RISC, tetapi tanpa batasan
penyimpanan/pengambilan data dari RISC). Prosesor-
prosesor modern x86 telah menyandikan dan membagi lebih
banyak lagi instruksi-instruksi kompleks menjadi beberapa
"operasi-mikro" internal yang lebih kecil sehingga instruksi-
instruksi tersebut dapat dilakukan secara paralel, sehingga
mencapai performansi tinggi pada subset instruksi yang lebih
besar.

2. Karakteristik desain CISC

Sejak chip muncul pada tahun 1970-an dan 1980-an


dengan desain yang unik, kebanyakan chip tersebut dirancang
dengan desain CISC. Chip ini memiliki set instruksi yang
sama, dan arsitektur perangkat keras yang serupa. Secara
umum, set instruksi dirancang untuk kenyamanan bagi
programmer bahasa assembly dan desain perangkat keras
yang cukup rumit.

Kendala desain yang mengarah ke pengembangan CISC


(sejumlah kecil memori lambat, dan fakta bahwa kebanyakan
mesin-mesin awal diprogram dalam bahasa assembly)
memberikan set instruksi CISC beberapa karakteristik umum:

159
 Format 2-operand, di mana instruksi memiliki sumber
dan tujuan. Sebagai contoh, perintah tambah

"tambahkan # 5, D0" akan menambahkan angka 5 untuk


isi D0 dan hasilnya di tempat dalam register D0.

 Register to register, register to memory, dan perintah


memory to register.

 Multiple addressing modes untuk memori, termasuk


mode khusus untuk mengindeks melalui array.

 Panjang Variabel instruksi di mana biasanya bervariasi


sesuai dengan mode pengalamatan.

 Instruksi membutuhkan beberapa clock cycle untuk


mengeksekusi. Jika sebuah instruksi memerlukan
informasi tambahan sebelum ia dijalankan. (misalnya,
jika kebutuhan prosesor untuk membaca dua lokasi
memori sebelum mereka beroperasi), mengumpulkan
informasi tambahan tsb akan memerlukan tambahan
clock cycle. Hasilnya, beberapa instruksi CISC akan
memakan waktu lebih lama daripada yang lain untuk
mengeksekusi.

160
3. Arsitektur Hardware

Arsitektur hardware CISC memiliki beberapa


karakteristik umum :

 Complex instruction-decoding logic, hal ini didorong


oleh kebutuhan agar satu instruksi bisa mendukung
berbagai mode pengalamatan.

 Terdapat Register fungsi umum (general purpose


register) dalam jumlah kecil. Ini adalah akibat langsung
dari instruksi yang dapat beroperasi secara langsung
pada memori dan ruang yang terbatas pada chip tidak
diperuntukkan bagi decoding instruksi, pelaksanaan dan
penyimpanan microcode.

 Terdapat beberapa Register fungsi khusus (special


purpose register). Banyak desain CISC yang
menyisihkan register khusus untuk stack pointer,
penanganan interupsi, dan sebagainya. Hal ini dapat
menyederhanakan desain hardware, dengan
mengorbankan pembuatan set instruksi yang lebih
kompleks.

 Terdapat sebuah "Condition code" register, yang


ditetapkan sebagai efek samping dari sebagian besar
instruksi. Register ini mencerminkan apakah hasil dari
161
operasi terakhir kurang dari, sama dengan, atau lebih
besar dari nol, dan mencatat jika kondisi tertentu terjadi
kesalahan.

4. Mesin CISC Ideal

Prosesor CISC dirancang untuk mengeksekusi setiap


instruksi sebelum memulai instruksi berikutnya. Meskipun
demikian, sebagian besar prosesor membagi eksekusi suatu
instruksi ke dalam beberapa tahap tertentu; segera setelah
satu tahap selesai, hasilnya dilanjutkan ke tahap berikutnya :

 Instruksi diambil dari memori utama.

 Instruksi didekode-kan: kode pengendali/kontrol dari


microprogram mengidentifikasi jenis operasi yang akan
dilakukan, di mana mencari data yang digunakan untuk
melakukan operasi, dan di mana menempatkan
hasilnya. Jika perlu, prosesor membaca informasi
tambahan dari memori.

 Instruksi dieksekusi: Kode pengendali dari


microprogram menentukan sirkuit / hardware yang
akan melakukan operasi.

 Hasilnya ditulis ke memori.

162
Pada mesin CISC yang ideal, masing-masing instruksi
lengkap akan memerlukan hanya satu siklus clock (yang
berarti bahwa setiap tahap akan dilengkapi dalam sepersekian
dari sebuah siklus). Ini adalah kecepatan maksimum yang
mungkin untuk 1 mesin yang mengeksekusi instruksi pada
suatu waktu.

5. Realistis mesin CISC

Pada kenyataannya, beberapa instruksi mungkin


membutuhkan lebih dari satu clock per tahap, seperti
pertunjukan animasi. Namun, desain CISC dapat mentolerir
perlambatan ini sejak ide di balik pembuatan CISC adalah
untuk menjaga jumlah total siklus kecil dengan melakukan
hal-hal rumit yang terjadi dalam setiap siklus.

6. Persamaan Kinerja CISC Classic

Waktu eksekusi dapat dirumuskan sbb :


Waktu eksekusi = N x S x T
Dengan :

N = jumlah instruksi
S = jumlah rata-rata langkah per instruksi

163
T = waktu yang diperlukan untuk melaksanakan satu
langkah
Kecepatan eksekusi dapat ditingkatkan dengan
menurunkan nilai dari ketiga varisbel di atas. Arsitektur CISC
berusaha menurunkan nilai N, sedangkan Arsitektur RISC
berusaha menurunkan nilai S dan T. Proses pipeline dapat
digunakan untuk membuat nilai efektif S mendekati 1 (satu)
artinya komputer menyelesaikan satu perintah dalam satu
siklus waktu CPU. Nilai T dapat diturunkan dengan
merancang perintah yang sederhana.

Kerugian CISC

 overhead yang lebih besar pada decoding instruksi,


sehingga memperlambat eksekusi

 Membutuhkan banyak pekerjaan dalam merancang


chipnya.

 Register tidak dapat digunakan secara efisien

 Konsumsi dayanya tinggi.

 Banyak instruksi khusus digunakan tidak cukup untuk


membenarkan keberadaan mereka, sekitar 20% dari
instruksi yang tersedia digunakan dalam program yang
khas.

164
Keuntungan CISC

 Mendukung bahasa tingkat tinggi (HLL)

 Ukuran program yang lebih kecil

 Panggilan ke memori utama lebih sedikit

 RAM yang diperlukan sedikit

Pada arsitektur CISC seperti Intel x86, yang


diperkenalkan pada tahun 1978, bisa terdapat ratusan
instruksi program - perintah-perintah sederhana yang
meminta sistem menambah angka, menyimpan nilai, dan
menampilkan hasilnya. Bila semua instruksi panjangnya
sama, instruksi sederhana akan memboroskan memori.
Instruksi sederhana membutuhkan ruang penyimpanan 8 bit,
sementara instruksi yang paling kompleks mengkonsumsi
sebanyak 120 bit. Namun hal tersebut akan mengurangi
kecepatannya.

Arsitektur berbasis CISC juga memungkinkan para


perancang prosesor untuk menambahkan set instruksi
tambahan untuk keperluan tertentu disamping set instruksi
standar yang sudah ada, misalnya set instruksi MMX
(Multimedia Extension) yang ditambahkan pada prosesor
buatan Intel, dan 3Dnow! pada prosesor keluaran AMD.

165
Karena itulah maka keluarga prosesor CISC lebih banyak
digunakan dalam komputer pribadi dimana aplikasinya lebih
luas, sementara keluarga prosesor RISC hanya digunakan
pada workstation yang biasanya memiliki lingkup aplikasi
yang lebih sempit. Ada juga teknologi yang menggabungkan
kedua arsitektur tersebut, contohnya : Prosesor Intel dan
AMD yang dijual secara komersil sekarang adalah
pengembangan dari prosesor x86 yang menggunakan basis
prosesor CISC. Instruksi set yang didukung oleh kedua
prosesor tersebut menggunakan instruksi RISC yang lebih
efisien dalam menangani data.

7. Pendekatan CISC

Tujuan utama dari arsitektur CISC adalah untuk


menyelesaikan tugas dalam beberapa kumpulan baris. Hal ini
dicapai dengan membangun prosesor hardware yang mampu
memahami dan melaksanakan serangkaian operasi. Untuk
tugas tertentu ini, sebuah prosesor CISC akan dipersiapkan
dengan instruksi tertentu (kita akan menyebutnya "mult").
Ketika dilaksanakan, instruksi ini load dua nilai ke register
yang terpisah, mengalikan yang Operand dalam pelaksanaan
unit, dan kemudian menyimpan produk dalam register yang
sesuai. Dengan demikian, seluruh tugas mengalikan dua
bilangan dapat diselesaikan dengan satu instruksi:
166
MULT 2:3, 5:2 Mult 2:3, 5:2

Mult adalah apa yang dikenal sebagai "instruksi


kompleks." Itu beroperasi secara langsung pada bank memori
komputer dan tidak memerlukan programmer untuk setiap
pemuatan atau menyimpan fungsi. Ini mirip perintah dalam
bahasa tingkat yang lebih tinggi. Sebagai contoh, jika kita
membiarkan "a" mewakili nilai 2:3 dan "b" mewakili nilai
5:2, maka perintah ini identik dengan pernyataan C "a = a *
b."

Salah satu keuntungan utama dari sistem ini adalah


bahwa kompiler harus melakukan sedikit pekerjaan untuk
menerjemahkan bahasa tingkat tinggi ke dalam perakitan.
Karena panjang kode relatif pendek, sangat sedikit RAM
yang dibutuhkan untuk menyimpan instruksi. Penekanan
diletakkan pada instruksi kompleks langsung ke perangkat
keras.

8. Implementasi

Pendekatan sistematis untuk menerapkan arsitektur


CISC minimal dijelaskan oleh pseudocode yang diberikan di
atas meliputi dua, pertama, mengidentifikasi register-transfer
yang digunakan dalam kode, kemudian membangun sebuah
mesin transfer register yang dapat melakukan transfer ini, dan
167
yang terakhir merancang sebuah unit kontrol untuk
membangkitkan transfer dalam urutan yang benar.

Gambar 36 Transfer register-logika

Tugas masing-masing pernyataan dalam pseudocode


menggambarkan register transfer. Satu register dapat
mempertahankan nilai setiap variabel sederhana, dan daftar
tugas untuk setiap variabel menentukan unit fungsional yang
harus memproses input ke register yang sesuai dan register
dari unit fungsional mana mengambil input mereka.

Pendekatan ini diikuti dalam menurunkan transfer


register-logika yang diuraikan pada Gambar 36. Di sini,
sambungan ke unit kontrol diperlihatkan ke kiri, dan koneksi
ke memori ke kanan. Tiga keadaan bus data yang
diasumsikan, di mana sinyal kontrol MRE (memori baca)
168
menyebabkan isi word kata yang ditujukan untuk menjadi
pintu gerbang ke data bus, dan transisi MWR (memori
menulis) yang positif menyebabkan isi bus disimpan dalam
word yang dialamatkan.

Perlu dicatat bahwa semua kotak fungsional dalam


Gambar diatas berhubungan erat dengan standar chip MSI.
Register sp dan unit fungsional dapat diimplementasikan
naik-turun oleh counter 74LS169A, register pc dapat
diimplementasikan oleh sebuah counter 74LS161, dan
register ir dapat diimplementasikan oleh 74LS298. Akhirnya,
tujuan umum ALU seperti 74LS381 dapat melakukan operasi
pada unit fungsional acc.

Sebelum microprogram dapat ditulis, salah satu detail


hardware harus ditentukan: Bagaimana penafsir microcode
melakukan cabang bersyarat? Solusi yang digunakan di sini
adalah yang diuraikan pada Gambar dibawah ini. Alamat
microinstruction berikutnya dibentuk oleh kondisi oring yang
dipilih oleh bidang masing-masing microinstruction dengan
bit yang paling sedikit dari medan alamat berikutnya. \

169
Gambar 37 Penafsir microcode melakukan cabang bersyarat

Perhatikan penggunaan dua fasa clock; semua register


di bagian data berubah di tepi negatif pulsa clock, sementara
microprogram di tepi clock positif. Jika fase clock tunggal
digunakan, di mana semua register berubah secara serempak ,
kecepatan keseluruhan sistem mungkin bisa lebih tinggi, tapi
microprogram akan lebih besar karena kondisi cabang
microcode tidak bisa bergantung pada hasil register transfer
saat ini.

9. Karakteristik CISC versus RISC

Rancangan RISC dapat memperoleh keuntungan


dengan mengambil sejumlah feature CISC dan Rancangan

170
CISC dapat memperoleh keuntungan dengan mengambil
sejumlah feature RISC. Hasilnya adalah rancangan RISC
yang terbaru, yang dikenal sebagai PowerPC, dimana
rancangan ini tidak lagi “murni” RISC. Dan kemudian
rancangan CISC yang terbaru yang dikenal sebagai Pentium,
dimana memiliki beberapa karakteristik RISC.

CISC menawarkan set intruksi yang powerful, kuat,


tangguh, maka tak heran jika CISC memang hanya mengenal
bahasa asembly yang sebenarnya ditujukan bagi para
programmer. Oleh karena itu ,CISC hanya memerlukan
sedikit instruksi untuk berjalan.

Sistem mikrokontroler selalu terdiri dari perangkat


keras (hardware) dan perangkat lunak (software). Perangkat
lunak ini merupakan deretan perintah atau instruksi yang
dijalankan oleh prosesor secara sekuensial. Instruksi itu
sendiri sebenarnya adalah bit-bit logik 1 atau 0 (biner) yang
ada di memori program. Angka-angka biner ini jika lebarnya
8 bit disebut byte dan jika 16 bit disebut word. Deretan logik
biner inilah yang dibaca oleh prosesor sebagai perintah atau
instruksi. Supaya lebih singkat, angka biner itu biasanya
direpresentasikan dengan bilangan hexa (HEX). Tetapi bagi
manusia, menulis program dengan angka biner atau hexa
sungguh merepotkan. Sehingga dibuatlah bahasa assembler

171
yang direpresentasikan dengan penyingkatan kata-kata yang
cukup dimengerti oleh manusia. Bahasa assembler ini
biasanya diambil dari bahasa Inggris dan presentasinya itu
disebut dengan Mnemonic. Masing-masing pabrik
mikroprosesor melengkapi chip buatannya dengan set
instruksi yang akan dipakai untuk membuat program.

Biner : Hexa : Mnemonic

10110110 : B6 : LDAA ...

10010111 : 97 : STAA ...

01001010 : 4A : DECA ...

10001010 : 8A : ORAA ...

00100110 : 26 : BNE ...

00000001 : 01 : NOP...

01111110 : 7E : JMP ...

172
Tabel 11 Perbedaan CISC dan RISC

CISC RISC

Penekanan pada perangkat Penekanan pada perangkat


keras lunak
Termasuk multi-clock Single- clock,
instruksi kompleks instruksi sederhana
Memory-to-memory: Register to register :
"LOAD" and "STORE" "LOAD" and "STORE"
tergabung pada instruksi instruksi independen
Small code sizes, Large code sizes
high cycles per second Low cycles per second

Transistor yang digunakan Menggunakan lebih banyak


untuk menyimpan transistor pada register
instruksi yang kompleks memori

Jadi sebenarnya Tujuan utama dari arsitektur CISC


adalah melaksanakan suatu perintah cukup dengan beberapa
baris bahasa mesin. Hal ini bisa tercapai dengan cara
membuat perangkat keras prosesor mampu memahami dan
menjalankan beberapa rangkaian operasi. Sebagai contoh,
sebuah prosesor CISC sudah dilengkapi dengan sebuah
instruksi khusus, yang kita beri nama MULT. Saat
dijalankan, instruksi akan membaca dua nilai dan
menyimpannya ke 2 register yag berbeda, melakukan
perkalian operan di unit eksekusi dan kemudian

173
mengambalikan lagi hasilnya ke register yang benar. Jadi
instruksi-nya cukup satu saja.

10. Perbedaan karakteristik CISC dan RISC serta


Superscalar

CISC dan RISC perbedaannya tidak signifikan jika


hanya dilihat dari terminologi set instruksinya yang kompleks
atau tidak (reduced). Lebih dari itu, RISC dan CISC berbeda
dalam filosofi arsitekturnya. Filosofi arsitektur CISC adalah
memindahkan kerumitan software ke dalam
hardware.Teknologi pembuatan IC saat ini memungkinkan
untuk menamam ribuan bahkan jutaan transistor di dalam
satu dice. Bermacam-macam instruksi yang mendekati
bahasa pemrogram tingkat tinggi dapat dibuat dengan tujuan
untuk memudahkan programmer membuat programnya.
Beberapa prosesor CISC umumnya memiliki microcode
berupa firmware internal di dalam chip-nya yang berguna
untuk menterjemahkan instruksi makro. Mekanisme ini bisa
memperlambat eksekusi instruksi, namun efektif untuk
membuat instruksi-instruksi yang kompleks. Untuk aplikasi-
aplikasi tertentu yang membutuhkan singlechip komputer,
prosesor CISC bisa menjadi pilihan.

174
C. Rangkuman

1. CISC adalah sebuah arsitektur dari set instruksi dimana


setiap instruksi akan menjalankan beberapa operasi
tingkat rendah, seperti pengambilan dari memory,
operasi aritmetika, dan penyimpanan ke dalam
memory, semuanya sekaligus hanya di dalam sebuah
instruksi. Karakteristik CISC dapat dikatakan bertolak-
belakang dengan RISC.

2. Beberapa karakteristik umum set instruksi pada CISC:


 Format 2-operand, di mana instruksi memiliki
sumber dan tujuan. Sebagai contoh, perintah tambah
"tambahkan # 5, D0" akan menambahkan angka 5
untuk isi D0 dan hasilnya di tempat dalam register
D0.
 Register to register, register to memory, dan perintah
memory to register.
 Multiple addressing modes untuk memori, termasuk
mode khusus untuk mengindeks melalui array.
 Panjang Variabel instruksi di mana biasanya
bervariasi sesuai dengan mode pengalamatan.
 Instruksi membutuhkan beberapa clock cycle untuk
mengeksekusi. Jika sebuah instruksi memerlukan
informasi tambahan sebelum ia dijalankan.

175
3. Kerugian CISC
 overhead yang lebih besar pada decoding instruksi,
sehingga memperlambat eksekusi
 Membutuhkan banyak pekerjaan dalam merancang
chipnya.
 Register tidak dapat digunakan secara efisien
 Konsumsi dayanya tinggi.
 Banyak instruksi khusus digunakan tidak cukup untuk
membenarkan keberadaan mereka, sekitar 20% dari
instruksi yang tersedia digunakan dalam program
yang khas.

4. Keuntungan CISC
 Mendukung bahasa tingkat tinggi (HLL)
 Ukuran program yang lebih kecil
 Panggilan ke memori utama lebih sedikit
 RAM yang diperlukan sedikit

176
D. Latihan Soal:

1. Apa yang dimaksud dengan CISC ?

2. Sebutkan filsafat CISC!

3. Bagaimana Karakteristik desain CISC?

4. Sebutkan kelebihan dan kekurangan CISC!

5. Jelaskan perbedaan RISC dan CISC!

177
BAB VII

PIPELINE

A. Standar Kompetensi dan Indikator

Standar Kompetensi

Dapat mengaplikasikan dan berinovasi dalam penggunaan


Pipeline.

Indikator

Mahasiswa dapat menghitung jumlah set instruksi yang


masuk pada suatu pipelining dan dapat mengkreasikannya
dengan kategori pipeline lain.

B. Materi

1. Pembahasan Awal

Pipeline dalam teknologi komputasi adalah sebuah


mesin atau piranti yang bertugas melaksanakan perintah yang
berbeda-beda namun dapat dijalankan dalam waktu yang
bersamaan dan setiap perintah yang berjalan tersebut
memiliki fase yang berbeda. Pipeline merupakan suatu
saluran untuk mengalirkan instruksi ke CPU seperti pada
tahapan fetch, decode, execute, store dan hal lainnya. Pada
prosesor yang menggunakan pipeline, setiap tahapan dari
pipeline dilaksanakan berdasarkan clock cycle yang dimiliki
oleh prosesor tersebut.

Teknologi pipeline yang digunakan pada komputer


bertujuan untuk meningkatkan kinerja dari komputer. Secara
sederhana, pipeline adalah suatu cara yang digunakan untuk
melakukan sejumlah kerja secara bersamaan tetapi dalam
tahap yang berbeda yang dialirkan secara kontiniu pada unit
pemrosesan. Dengan cara ini, maka unit pemroses selalu
bekerja. Teknik pipeline ini dapat diterapkan pada berbagai
tingkatan dalam sistem komputer. Bisa pada level yang
tinggi, misalnya program aplikasi, sampai pada tingkat yang
rendah, seperti pada instruksi yang dijalankan oleh
microprocessor. Teknik pipeline yang diterapkan pada
microprocessor, dapat dikatakan sebuah arsitektur khusus.
Ada perbedaan khusus antara model microprocessor yang
tidak menggunakan arsitektur pipeline dengan
microprocessor yang menerapkan teknik ini. Pada
microprocessor yang tidak menggunakan pipeline, satu
instruksi dilakukan sampai selesai, baru instruksi berikutnya
dapat dilaksanakan. Sedangkan dalam microprocessor yang
menggunakan teknik pipeline, ketika satu instruksi sedang
diproses, maka instruksi yang berikutnya juga dapat diproses
179
dalam waktu yang bersamaan. Tetapi, instruksi yang diproses
secara bersamaan ini, ada dalam tahap proses yang berbeda.
Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah
instruksi. Misalnya sebuah microprocessor menyelesaikan
sebuah instruksi dalam 4 langkah. Ketika instruksi pertama
masuk ke langkah 2, maka instruksi berikutnya diambil untuk
diproses pada langkah 1 instruksi tersebut. Begitu seterusnya,
ketika instruksi pertama masuk ke langkah 3, instruksi kedua
masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.

Dengan penerapan pipeline ini pada microprocessor


akan didapatkan peningkatan kinerja microprocessor. Hal ini
terjadi karena beberapa instruksi dapat dilakukan secara
paralel dalam waktu yang bersamaan. Secara kasarnya
diharapkan akan didapatkan peningkatan sebesar K kali
dibandingkan dengan microprocessor yang tidak
menggunakan pipeline, apabila tahapan yang ada dalam satu
kali pemrosesan instruksi adalah K tahap. Data dalam
pipeline bekerja bersama-sama, mengalir bersama-sama
namun tetap dalam satuan eksekusi yang berbeda. Ada kasus
tertentu yang memang sangat tepat bila memanfaatkan
pipeline ini, dan juga ada kasus lain yang mungkin tidak tepat
bila menggunakan teknologi pipeline.

180
2. Kategori Pipeline

Pipeline terbagi 2 macam :


 Pipeline Unit Arithmetic
 Pipeline Unit Instruction

Pipeline Unit Arithmetic berguna untuk operasi vektor.


Pipeline ini terdiri dari 4 tahap, yaitu :
 Exponen comparison
 Mantissa aligment
 Mantissa Add/Subtract
 Result Normalization

Gambar 38 Tahapan Pipeline

181
Gambar 39 4-segmen arithmetic pipeline

Pipeline Unit Instruction berguna untuk komputer yang


memiliki set instruksi yang sederhana. Pipeline ini terdiri dari
5 tahap, yaitu :
 Instruction fetch
 Instruction decode
 Execute instruction
 Memory access
 Register write back

Gambar 40 5-segmen instruction pipeline

182
Gambar 41 Mikroprosesor

Mikroprosesor yang terkenal menggunakan pipeline ini


adalah keluarga Pentium 4. Pipeline memiliki keunggulaln
lebih dibanding Superscalar jika diterapkan pada
mikroprosesor. Karena jalur datanya yang bisa terpisah
sehingga sangat memungkinkan lebih cepat dibanding
superscalar yang harus “antri dahulu” , ini pula yang
sekaligus menjadi perbedaan utama antara Pipeline dengan
Superscalar. Meskipun demikian bukan berarti pipeline
bekerja mulus dengan segala keunggulannya. Justru dengan
itu maka ada beberapa hal yang perlu diperhatikan dalam
menggunakan teknik pipeline:

183
1. Terjadinya penggunaan resource yang bersamaan
Karena beberapa instruksi diproses secara bersamaan
ada kemungkinan instruksi tersebut sama-sama
memerlukan resource yang sama, sehingga diperlukan
adanya pengaturan yang tepat agar proses tetap berjalan
dengan benar.

2. Ketergantungan terhadap data


Misalnya terdapat instruksi yang berurutan dimana
memerlukan data dari instruksi yang sebelumnya. Letak
ketergantungan terjadi misalnya intruksi kedua yang
'tidak mau' jalan kalau intruksi pertama juga tidak jalan.
Jadi intruksi kedua sangat tergantung pada keadaan
intruksi pertama.

3. Pengaturan Jump ke suatu lokasi memori.


Karena diproses secara bersamaan, bisa saja instruksi
pertama berhasil, namun instruksi kedua memerlukan
Jump memory, maka terjadilah Jump memory oleh
program counter. Baru kemudian ke instruksi ketiga,
padahal instruksi ketiga tidak memerlukan jump
memory seperti yang kedua, maka program counter
harus mengatur lagi agar instruksi ketiga dapat berjalan.
Akibatnya menyebabkan perubahan Program counter

184
3. Metode kerja Pipeline

Metode kerja dari suatu pipeline dapat dilihat pada


gambar disamping ini, dimana menggunakan 4 instruksi.
Pada gambar tersebut, kotak abu-abu atas adalah daftar
instruksi yang menunggu untuk dijalankan (waiting
instruction). Kotak abu-abu bagian bawah adalah daftar
instruksi yang telah selesai dieksekusi (complete instruction).
Sedangkan kotak putih bagian tengah adalah pipeline.

Gambar 42 Metode kerja pipeline

185
Pelaksanaan instruksi-instruksi tersebut dapat ditabelkan
sebagai berikut :

Tabel 12 Pelaksanaan intruksi

Time Execution
0  Empat instruksi sedang menunggu untuk
dieksekusi
1  Instruksi hijau diambil dari memori
2  Instruksi hijau didekode
 Instruksi ungu diambil dari memori
3  Instruksi hijau dieksekusi (operasi sebenarnya
dilakukan)
 Instruksi ungu didekode
 Instruksi biru diambil dari memori
4  Hasil eksekusi Instruksi hijau ditulis kembali
ke file atau memori register
 Instruksi ungu dieksekusi
 Instruksi biru didekode
 Instruksi merah diambil dari memori
5  Instruksi hijau selesai dieksekusi
 Hasil eksekusi Instruksi ungu ditulis kembali
ke file/memori register
 Instruksi biru dieksekusi

186
 Instruksi merah didekode

6  Instruksi Ungu selesai dieksekusi


 Hasil eksekusi Instruksi biru ditulis kembali ke
file/memori register
 Instruksi merah dieksekusi
7  Instruksi biru selesai dieksekusi
 Hasil eksekusi Instruksi merah ditulis kembali
ke file/memori register
8  Instruksi merah selesai dieksekusi
9 Semua instruksi telah selesai dijalankan

Keuntungan dan Kekurangan Pipeline

Tidak semua kasus dapat diatasi dengan Pipeline. Ada


beberapa kemungkinan yang menjadi kelemahan selain hal
yang menguntungkan. Instruksi Pipeline dikatakan fully
pipelined jika dapat menerima instruksi baru setiap clock
cycle. Namun pipeline yang Non-fully pipelined harus
menunggu siklus berikutnya dan progres pipeline tertunda.

Keuntungan menggunakan Pipeline :

 Waktu siklus prosesor berkurang, sehingga


meningkatkan tingkat instruksi dalam banyak kasus.

187
 Beberapa sirkuit kombinasi seperti penambah atau
pengganda (adder/multiplier)dapat dibuat lebih cepat
dengan menambahkan lebih banyak sirkuit. Jika
pipelining digunakan sebagai pengganti, hal itu dapat
menghemat sirkuit vs sirkuit kombinasi yang lebih
kompleks.

Kekurangan tidak menggunakan Pipeline :

 Prosesor Non-pipeline hanya menjalankan satu


instruksi pada satu waktu. Hal ini untuk mencegah
penundaan cabang (yang berlaku, setiap cabang
tertunda) dan masalah dengan instruksi serial yang
dieksekusi secara bersamaan. Akibatnya desain lebih
sederhana dan lebih murah untuk diproduksi.

 Instruksi prosesor non-pipeline sedikit lebih lambat dari


pada dalam pipeline. Hal ini disebabkan flip-flop ekstra
harus ditambahkan ke jalur data dari prosesor pipeline.

 Prosesor Non-pipeline memiliki bandwidth instruksi


yang stabil. Kinerja prosesor pipeline lebih sulit
diprediksi dan bervariasi lebih luas di antara program
yang berbeda.

188
Dual pipeline

Dual pipelining diperkenalkan pada Intel Pentium


prosesor. Teknologi ini memungkinkan prosesor membagi
perintah menjadi dua lebih pendek dan mengeksekusi
perintah secara bersamaan ketika mereka menerima perintah
yang panjang. Jika ada tugas-tugas terpisah yang harus
diselesaikan untuk hasil yang independen terhadap satu sama
lain, mereka dapat dijalankan secara bersamaan untuk
menghemat waktu.
Sebagai contoh, misalkan suatu perintah yang
diberikan untuk mencari hasil dari 14 * 27 + 512 ^ 2. Urutan
operasi mewajibkan 512 ^ 2 harus dilakukan terlebih dahulu
dan kemudian 14 dan 27 harus dikalikan. Hasil dari dua
tindakan ini kemudian ditambahkan bersama-sama. Operasi
ini terdapat tiga langkah. Dengan dual pipeline, dua tindakan
pertama akan dihitung secara simultan oleh berbagai pipeline
dan kemudian mereka akan ditambahkan bersama-sama.
Kasus ini hanya membutuhkan dua langkah, penyimpanan
satu langkah.

RISC Pipeline

Sebuah pipeline prosesor RISC beroperasi dengan cara


yang sama seperti pipeline umumnya, walaupun tahap-tahap

189
pada pipeline-nya berbeda. Prosesor yang berbeda memiliki
jumlah tahap/stage yang berbeda, namun pada dasarnya
adalah variasi dari lima tahapan sebelumnya. Tahap-tahap
yang digunakan pada prosesor R3000 MIPS adalah :
1. Mengambil instruksi dari memori
2. Membaca register dan men-decode instruksi pada
register tersebut.
3. Mengeksekusi instruksi atau menghitung sebuah
alamat.
4. Mengakses suatu operand dalam memori data.
5. Menulis hasilnya ke dalam suatu register.

Panjang pipeline tergantung pada panjang langkah


terpanjang. Karena instruksi RISC lebih sederhana daripada
yang digunakan prosesor CISC, maka prosesor RISC lebih
kondusif/tepat bila menggunakan pipeline dibanding prosesor
CISC. Ini karena CISC memiliki panjang instruksi yang
bervariasi, sedangkan instruksi pada RISC semua sama
panjang dan dapat diambil dalam satu operasi. Idealnya,
masing-masing tahapan pada pipeline prosesor RISC harus
mengambil 1 siklus clock prosesor, sehingga sebuah instruksi
selesai setiap clock cycle dan rata-rata satu siklus per
instruksi (CPI).

190
4. Permasalahan Pipeline

Dalam prakteknya, bagaimanapun prosesor RISC


beroperasi lebih dari satu siklus per instruksi. Adakalanya
prosesor mungkin hasil dari dependensi data dan instruksi
cabang.
Sebuah ketergantungan data terjadi ketika sebuah instruksi
tergantung pada hasil dari instruksi sebelumnya. Sebuah
instruksi tertentu mungkin perlu data dalam register yang
belum disimpan karena itu adalah tugas dari instruksi
sebelumnya yang tahapnya belum tercapai pada pipeline.
Contoh :
add $r3, $r2, $r1
add $r5, $r4, $r3

Gambar 43 Permasalahan pipeline

191
Dalam contoh ini, instruksi pertama memberitahu
prosesor untuk menambahkan isi register r1 dan r2 dan
menyimpan hasilnya dalam register r3. Instruksi kedua,
menambah r3 dan r4 dan menyimpan hasilnya pada r5. Kita
tempatkan set instruksi tersebut pada pipeline. Ketika
instruksi yang kedua berada pada tahap kedua, prosesor akan
berusaha untuk membaca r3 dan r4 dari register.

Meskipun instruksi pertama hanyalah satu langkah di


depan instruksi kedua, sehingga isi r1 dan r2 selalu
ditambahkan, tapi hasilnya belum ditulis ke register r3. Oleh
karena itu instruksi yang kedua tidak dapat membaca dari
register r3 karena belum ditulis dan harus menunggu sampai
data yang dibutuhkan disimpan. Akibatnya, pipeline tersebut
terhenti dan sejumlah instruksi yang kosong (bubble) masuk
ke dalam pipeline. Dependensi data mempengaruhi panjang
jaringan pipeline lebih dari yang lebih pendek karena
membutuhkan waktu lebih lama untuk suatu instruksi
mencapai tahap akhir penulisan register dari suatu pipeline
yang panjang.

Solusi untuk masalah ini adalah dengan kode


pemesanan kembali. Jika, seperti dalam contoh di atas,
instruksi berikut tidak ada hubungannya dengan dua instruksi
yang pertama, kode bisa diatur ulang sehingga instruksi

192
tersebut dijalankan di antara dua instruksi tergantung
instruksi dan pipeline dapat mengalir secara efisien. Tugas
penataan kode ini kembali umumnya diserahkan kepada
compiler. Instruksi cabang ini memberitahukan prosesor
untuk membuat keputusan instruksi apa berikutnya yang akan
dieksekusi berdasarkan pada hasil instruksi lain. Instruksi
cabang dapat menyulitkan pipeline jika suatu cabang
dikondisikan pada hasil dari suatu instruksi yang belum
diselesaikan pada pipeline.

Contoh:
Loop : add $r3, $r2, $r1
sub $r6, $r5, $r4
beq $r3, $r6, Loop

Contoh di atas memerintahkan processor untuk


menambahkan r1 dan r2 dan menyimpan hasilnya dalam r3,
kemudian kurangi r4 dari r5, dan meyimpan hasilnya pada r6.
Dalam instruksi ketiga, ”beq” singkatan dari cabang jika
sama. Jika isi r3 dan r6 adalah sama, prosesor harus
menjalankan instruksi berlabel "Loop". Kalau tidak, harus
melanjutkan ke instruksi berikutnya. Pada Contoh ini,
prosesor tidak dapat menentukan cabang mana yang diambil
karena nilai r3 atau r6 belum ditulis ke dalam register.

193
Prosesor dapat berhenti, tetapi metode yang lebih
canggih dalam menangani instruksi cabang adalah dengan
prediksi cabang. Prosesor dibuat menebak jalan mana yang
akan diambil - jika salah menebak, apa pun yang ditulis ke
dalam register harus bersih, dan pipeline harus diulang
kembali dengan instruksi yang benar.
Beberapa metode prediksi cabang yaitu cabang
menunjuk ke belakang, cabang menunjuk ke depan, prediksi
cabang kurang statis.

Perkembangan Pipeline

Dalam rangka untuk membuat prosesor lebih cepat,


berbagai metode mengoptimalkan jaringan pipeline telah
dibuat. Mengacu kepada Super pipelining membagi jalur
pipeline ke beberapa langkah/tahapan lagi. Tahap-tahap ini
membuat pipeline menjadi semakin cepat karena masing-
masing tahap ini lebih pendek.

Idealnya, sebuah pipeline dengan lima tahap harus lima


kali lebih cepat daripada prosesor non-pipeline. Instruksi
dijalankan dengan cepat setelah setiap tahap selesai, dan
setiap tahap membutuhkan seperlima dari jumlah waktu yang
diperlukan oleh instruksi non-pipeline. Dengan demikian,

194
sebuah prosesor dengan 8-langkah pipeline (MIPS R4000)
akan lebih cepat dibandingkan dengan prosesor 5-langkah.

Pada prosesor R4000 membagi beberapa tahap/stage


menjadi dua. Contohnya Instruksi fetch, dilakukan dalam dua
tahap. Tahapan-tahapannya adalah sebagai berikut :

1. Instruction Fetch (First Half)


2. Instruction Fetch (Second Half)
3. Register Fetch
4. Instruction Execute
5. Data Cache Access (First Half)
6. Data Cache Access (Second Half)
7. Tag Check
8. Write Back

Pipeline Superscalar melibatkan beberapa jaringan


pipeline secara paralel. Komponen internal dari prosesor
yang direplikasi sehingga dapat memulai beberapa instruksi
dalam beberapa atau seluruh tahap pipeline.

RISC System/6000 memiliki pipeline bercabang


dengan jalan yang berbeda untuk floating-point dan integer
instruksi. Jika ada campuran dari kedua jenis ini dalam
sebuah program, prosesor dapat menjaga kedua percabangan
tersebut berjalan secara bersamaan. Kedua jenis instruksi ini
berbagi dua tahap awal (Instruksi Fetch dan Instruksi
195
Dispatch) sebelum mereka di percabangkan/dibagi. Namun,
sering kali pipeline superscalar mengacu pada beberapa
salinan dari semua tahap pipeline.

196
C. Rangkuman

1. Pipeline dalam teknologi komputasi adalah sebuah


mesin atau piranti yang bertugas melaksanakan perintah
yang berbeda-beda namun dapat dijalankan dalam
waktu yang bersamaan dan setiap perintah yang
berjalan tersebut memiliki fase yang berbeda.

2. Pipeline terbagi 2 macam :


 Pipeline Unit Arithmetic
 Pipeline Unit Instruction

3. Pipeline Unit Arithmetic berguna untuk operasi vektor.


Pipeline ini terdiri dari 4 tahap, yaitu :
 Exponen comparison
 Mantissa aligment
 Mantissa Add/Subtract
 Result Normalization

4. Pipeline Unit Instruction berguna untuk komputer yang


memiliki set instruksi yang sederhana. Pipeline ini
terdiri dari 5 tahap, yaitu :
 Instruction fetch
 Instruction decode
 Execute instruction
 Memory access
 Register write back

197
5. Keuntungan menggunakan Pipeline :
 Waktu siklus prosesor berkurang, sehingga
meningkatkan tingkat instruksi dalam banyak kasus.
 Beberapa sirkuit kombinasi seperti penambah atau
pengganda (adder/multiplier)dapat dibuat lebih cepat
dengan menambahkan lebih banyak sirkuit. Jika
pipelining digunakan sebagai pengganti, hal itu dapat
menghemat sirkuit vs sirkuit kombinasi yang lebih
kompleks.

6. Kekurangan tidak menggunakan Pipeline :


 Prosesor Non-pipeline hanya menjalankan satu
instruksi pada satu waktu. Hal ini untuk mencegah
penundaan cabang (yang berlaku, setiap cabang
tertunda) dan masalah dengan instruksi serial yang
dieksekusi secara bersamaan. Akibatnya desain lebih
sederhana dan lebih murah untuk diproduksi.

 Instruksi prosesor non-pipeline sedikit lebih lambat


dari pada dalam pipeline. Hal ini disebabkan flip-flop
ekstra harus ditambahkan ke jalur data dari prosesor
pipeline.

 Prosesor Non-pipeline memiliki bandwidth instruksi


yang stabil. Kinerja prosesor pipeline lebih sulit

198
diprediksi dan bervariasi lebih luas di antara program
yang berbeda.

199
D. Latihan Soal:

1. Jelaskan apa yang dimaksud dengan pipeline!


2. Pipeline dibagi dua kategori, sebutkan dan jelaskan!
3. Gambarkan metode kerja pipeline dengan
menggunakan 4 instruksi!
4. Sebutkan kelebihan dan kekurangan pipeline!
5. Mengapa prosesor dengan 8-langkah pipeline (MIPS
R4000) lebih cepat dibandingkan dengan prosesor 5-
langkah.
6. Suatu komputer dimana prosesornya menggunakan
pipeline dengan 4 stage yaitu; fetch-decode-execute-
write back. Bila ada 3 instruksi yang akan diproses
pada pipeline tersebut, berapa clock cycle yang
dibutuhkan untuk menyelesaikan seluruh instruksi
tersebut? (gambarkan metode kerjanya)

200
Daftar Pustaka

Albert Paul Malvino, “Elektronika Komputer Digital’, edisi


kedua, Penerbit Erlangga, 1996.

Andrew S. Tanenbaum, “Organisasi Komputer Tersetruktur”,


edisi Bahasa Indonesia, edisi pertama, jilid 2, Penerbit
Salemba Teknika, 2002.

Prof. Dr. Jogiyanto H.M, M.B.A., Akt, “Pengenalan


komputer”, penerbit Andi, 2005.

M. Morris Mano, “Computer System Architecture”, third


edition, Prentice Hall International, 1993.

Syahrul, “Organisasi dan Arsitektur Komputer”, Penerbit


Andi Yogyakarta, 2010.

William Stalling, “Organisasi dan Arsitektur Komputer”,


edisi bahasa Indonesia, Jilid I, Prenhallindo, 1998.

William Stalling, “Organisasi dan Arsitektur Komputer”,


edisi bahasa Indonesia, Jilid II, edisi 6, PT. Indeks,
Kelompok Gramedia, 1998.

201
Glosarium

ALU Arithmetic and Logic Unit


ASCII American Standards Code for Information
Interchange
ANSI American National Standards Institute
BCD Binary Code Decimal
CD Compact Disk
CD-ROM Compact Disk-Read Only Memory
CPU Central Processing Unit
CPI Clock Per Instruction
CISC Complex Instruction Set Computer
DRAM Dynamic Random Access Memory
DMA Direct Memory Access
DS Data Stream
EPROM Erasable Programmable Read Only Memory
EEPROM Electrically Erasable Programmable Read Only
Memory
HLL Hogh Level Language
HSA Hardware-System Architecture
I/O Input/Output
IS Instruction Stream
ISA Instruction-Set Architecture
IC Integrated Circuit
IR Instruction Register
IRA International Reference Alphabet
LM Local Memory
LSI Large Scale Integration
MISD Multiple Instruction Stream, Single Data Stream

202
MIMD Multiple Instruction Stream, Multiple Data
Stream
MU Memory Unit
NUMA Non Uniform Memory Access
CC NUMA Coherensi Cache NUMA
OS Operating System
OPCODE Operation Code
PC Personal Computer
PCI Periferal Compenent Interconnect
PROM Programmable Read Only Memory
PU Processing Unit
RAM Random Access Memory
RISC Reduced instruction Set Computer
ROM Read Only Memory
RTL Register Transfer Language
SCSI Small Computer System Inteface
SISD Single Instruction Stream, Single Data Stream
SIMD Single Instruction Stream, Multiple Data Stream
SMP Symmetric Multy Processor
UMA Uniform memory access
VLSI Very Large Scale Integration

203
Indeks

alamat, 38

algoritma, 82, 132, 138

alternatif, 161

Alternatif, 103, 140

arbitrasi, 100

aritmatika, 53

arsitektur, 28, 29, 37, 75, 92, 129, 135

Arsitektur, i, ii, iv, vii, 1, 2, 4, 5, 6, 9, 27, 28, 76, 79, 89, 124, 127,
143, 147, 153, 164, 167, 168, 202

atom, 116

Barcode, 18

cache, 67, 106

chatting, 17

clock cycle, 182

Cluster, iv, vii, 4, 8, 81, 85, 109, 111, 120

clustering, 109

Complex, 164

eksekusi, 58, 183

Ekslusif, 108
204
elemen, vii, 30, 31, 33, 63, 72, 77, 79, 83, 84, 86, 93, 117, 118,
121, 136

Handy cam, 16

hardware, 28, 99

Headphone, 17

HSA, 28, 76

indikator, 69

input, 12, 14, 23

Input, 11

instruks, 177

instruksi, 29, 30, 32, 38, 127, 163

Instruksi, 32, 36

internal, 43, 47, 59, 93, 113, 122, 162, 177, 198

ISA, 27

Joy Stick, 13, 23

Keyboard, 12

kode biner, 31, 77

komputasi, 36, 37

komputer, 11, 16, 19, 23, 33, 35, 88

Komputer, 12

Konfigurasi, 103

205
laserjet, 20

Light Pen, 15

logika, 51, 53

makro, 177

memori, 33, 48, 56, 88

Microphone, 17

microprocessor, 182

mikro, 73, 82, 92, 144, 160, 162

mnemonics, 34

monitor, 13, 14, 15, 18, 21

mouse, 15

Mouse, 12, 13

multiprosesor, 107

nirkabel, 20

opcode, 34, 45, 61

operand, 41, 47, 49, 57, 60

Operand, 169

operand., 50

operasi, 51, 53, 94

Operasi, 45

output, 20
206
Output, 19, 25

paralel, 2, 3, 7, 80, 81, 82, 83, 84, 86, 87, 93, 117, 118, 119, 120,
122, 161, 183, 198

pengalamatan, 28, 75

perangkat, 11

Perangkat, 14, 15, 16, 22

perekam, 16

periperal, 19, 117

pipeline, 183

Pipeline, v, viii, 2, 3, 4, 5, 6, 7, 10, 181, 184, 185, 186, 188, 190,


191, 192, 194, 197, 198, 199, 200, 201

Pipelining, 150

Plotter, 25

pointer, 12

printer, 20

Printer, 20, 25

program, 36, 55

Program, 40

programmer, 174

prosedur, 136

prosesor, 52, 84, 96

Protokol, 104, 105, 106, 107, 108


207
Proyektor, 21, 25

reduced, 126

Reduced, 124

register, 32, 33, 35, 38, 41, 47, 59, 60, 63, 173

Register, 29

Reliabilitas, 102

scanner, 14, 23

Scanner, 14

server, 109

siklus, 57, 67, 99, 104, 121, 124, 125, 130, 131, 143, 144, 149,
155, 156, 166, 167, 190, 191, 193, 194, 200

simbolik, 34

software, 92, 105, 110, 115, 116, 119, 132, 138, 140, 174, 177

Speaker, 22

Stack, 56, 63, 78

touchpad, 14, 23

touchscreen, 15

Track Ball, 14

transfer, 47

transistor, 128, 131, 161, 176, 177

variabel, 35, 36, 57, 68, 72, 73, 105, 135, 136, 138, 139, 140, 141,
171
208
virtual, 55

Webcam, 16, 17

209
Profil Penulis

Rozeff Pramana dilahirkan di Bengkalis 1


April 1978. Penulis tertarik pada bidang
teknik sejak duduk di sekolah menengah
pertama dan meneruskan peminatannya
tersebut ke STM dengan jurusan Teknik
Elektro. Penulis melanjutkan studi ke
jenjang D3 dan berlanjut ke jenjang S1
dengan jurusan yang sama yaitu Teknik Elektro di Institut Sains
dan Teknologi Nasional Jakarta. menyelesaikan Magister Teknik
Elektro di Universitas Trisakti Jakarta. Disela kesibukan sebagai
mahasiswa, Penulis juga bekerja paruh waktu dibidang Komputer.
Pekerjaan profesional mulai dijalani penulis pada tahun 2000
sebagai staf teknik disalah satu BUMN yang bergerak dibidang
survey. Penulis juga pernah bekerja di perusahaan-perusahaan
swasta nasional yang bergerak di bidang desain/manufaktur dan
telekomunikasi. Pekerjaan utama saat ini adalah sebagai dosen
tetap Teknik Elektro di Fakultas Teknik Universitas Maritim Raja
Ali Haji Kepulauan Riau. Fokus penelitian penulis adalah pada
bidang Teknik Elektro Maritim dan Telekomunikasi.

Alena Uperiati, lahir di Tanjung batu,


Kepulauan Riau pada 22 Juni 1989. Ia adalah
alumni SMA Negeri 5 Batam, Kepulauan
Riau. Penulis menyelesaikan S1 di
Universitas Maritim Raja Ali Haji (UMRAH)
angkatan 2008 di Fakultas Teknik Jurusan
Teknik Informatika dan baru menyelesaikan
program Magister di Universitas Gadjah
Mada (UGM) angkatan 2013l././ di Fakultas MIPA Jurusan Ilmu
Komputer. Mulai dari 2016 mengabdikan diri sebagai dosen di
Jurusan Teknik Informatika Universitas Maritim Raja Ali Haji
(UMRAH).

210

Anda mungkin juga menyukai