buku panduan praktikum arsitektur dan organisasi komputer lanjut

49
Praktikum Arsitektur Organisasi Komputer Lanjut Laboratorium Sistem Komputer dan Robotika

Upload: moh-muhlason

Post on 01-Feb-2016

459 views

Category:

Documents


146 download

DESCRIPTION

menjelaskan mengenai beberapa penggunaan fungsi pada pratikum aok lanjut

TRANSCRIPT

Page 1: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

1

Page 2: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

2

BUKU PANDUAN PRAKTIKUM

ARSITEKTUR ORGANISASI

KOMPUTER LANJUT

Tim Penyusun :

Laboratorium Sistem Komputer dan Robotika

LABORATORIUM SISTEM KOMPUTER DAN ROBOTIKA

FAKULTAS ILMU KOMPUTER

UNIVERSITAS BRAWIJAYA

Page 3: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

3

BAB I

PENGENALAN TERHADAP CPU SIMULATOR, SET INSTRUKSI, REGISTER, PROGRAM STACK, RAM

1. Tujuan percobaan: setelah melakukan percobaan ini, mahasiswa diharapkan dapat

a) Menggunakan CPU simulator untuk membuat set instruksi dari CPU

b) Menggunakan simulator untuk mengeksekusi set instruksi CPU

c) Menggunakan set instruksi CPU untuk memindah data dari register, membandingkan nilai data

yang ada pada register-register, menaruh data ke dalam stack, mengambil data dari dalam

stack, menuju ke suatu lokasi alamat tertentu, melakukan operasi tambah pada data yang ada

dalam suatu register

d) Menjelaskan fungsi dari register khusus yang ada pada CPU yaitu register PC, SR, dan SP

e) Menggunakan mode pengalamatan direct dan indirect untuk mengakses data yang ada pada

memory

f) Membuat sebuah proses looping menggunakan set instruksi

g) Menampilkan teks pada layar dengan menggunakan instruksi input output

h) Membuat sebuah subrutin, memanggil sebuah subrutin, dan kembali ke program utama

i) Membuat set instruksi kondisional (compare dan jump)

2. Dasar teori:

a) CPU simulator: praktikum ini bertujuan agar mahasiswa dapat memahami secara lebih baik

tentang materi arsitektur komputer. Dalam pelaksanaannya, digunakan sebuah program

aplikasi berupa simulator yang bekerja pada sebuah komputer dengan sistem operasi

Windows yaitu YASMIN: CPU-OS simulator versi 7.5.50 dari Besim Mustafa, Edge Hill

University, Inggris dengan hak cipta 2006-2013. Simulator ini merepresentasikan secara visual

tentang mekanisme-mekanisme yang terjadi dalam sebuah arsitektur komputer sehingga

mahasiswa dapat mengamati apa yang sebenarnya terjadi dalam sebuah komputer saat

melakukan suatu pekerjaan tertentu. Selain itu simulator amat sangat membantu karena

mahasiswa tidak perlu melakukan proses install dan konfigurasi tertentu pada sistem yang

nyata.

Pemrograman pada arsitektur komputer melibatkan pemrograman tingkat rendah (low level

programming) yaitu:

b) Set instruksi

c) Register

Page 4: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

4

d) Mode pengalamatan set instruksi

Ketiga hal di atas saling berinteraksi sehingga memungkinkan komputer untuk dapat melakukan proses

komputasi.

3. Fitur-fitur CPU simulator: pada bagian ini akan dijelaskan secara umum bagaimana menggunakan

dan memanfaatkan fitur-fitur yang ada pada CPU simulator ini. Tampilan utama dari CPU-OS

Simulator tampak seperti pada gambar berikut:

Gambar 1. Layar tampilan utama dari CPU-OS simulator

Page 5: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

5

Tampilan utama dari simulator ini terdiri dari:

a) CPU Instruction Memory

Gambar 2. Layar tampilan CPU Instruction Memory

Tampilan ini berisi kumpulan set instruksi yang ada pada sebuah program. Intruksi berupa urutan

proses yang dilakukan oleh prosesor komputer dalam bentuk bahasa assembly dan bukan dalam

bentuk kode biner. Hal ini bertujuan untuk lebih memudahkan dalam membaca kode. Setiap instruksi

berhubungan dengan dua macam alamat, yaitu Physical Address (PAdd) dan Logical Address (Ladd).

Pada tampilan ini juga ditampilkan Base Address (Base). Sebuah urutan set instruksi yang ada pada

sebuah program yang sama, akan memiliki nilai Base Address yang sama pula.

Page 6: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

6

b) Special CPU Registers

Gambar 3. Layar tampilan Special CPU Registers

Tampilan ini menunjukkan kumpulan register pada CPU yang memiliki fungsi khusus yaitu:

Program Counter (PC): berisi alamat berikutnya dari set instruksi yang akan dieksekusi

Instruction Register (IR): berisi set instruksi yang sedang dieksekusi

Status Register (SR): berisi informasi tentang hasil yang didapat dari eksekusi set instruksi yang

sebelumnya

Stack Pointer (SP): register yang menunjuk kepada nilai yang ada di bagian paling atas sendiri

dari Program Stack

Base Register (BR): berisi Base Address yang digunakan saat itu

Memory Address Register ( MAR): berisi alamat memori yang sedang diakses saat itu

Status Flags yang terdiri dari Overflow (OV), Zero (Z), dan Negative (N).

Page 7: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

7

c) CPU (General Purpose) Registers

Gambar 4. Layar tampilan CPU Register

Tampilan ini menunjukkan nama masing-masing General Purpose Register (Reg) yang ada dalam CPU

dan nilai data yang ada dalam register-register tersebut (Val). Register adalah sekumpulan memori

yang sangat cepat dan digunakan untuk menyimpan data saat CPU mengeksekusi sekumpulan set

instruksi. Register-register ini jugalah yang sebenarnya menyimpan nilai-nilai variabel yang

didefinisikan dalam sebuah pemrograman bahasa tingkat tinggi (High Level Language Programming).

Tidak semua arsitektur komputer memiliki jumlah register yang sama (ada yang 16, 32, 64, dan lain-

lain). Namun fungsi dari register tetap sama.

Page 8: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

8

Untuk merubah nilai data yang ada pada sebuah register dalam simulator ini, pilihlah dahulu register

mana yang ingin dirubah nilai datanya, lalu masukkan nilai data baru yang diinginkan pada text box

Reg Value dan klik tombol change pada tab register.

d) Program Stack

Gambar 5. Layar tampilan Program Stack

Program Stack adalah sebuah daerah yang digunakan juga untuk menyimpan nilai data sementara

yang timbul seiring dengan dilakukannya proses eksekusi kumpulan set instruksi oleh CPU. Struktur

data yang digunakan oleh Program Stack menggunakan LIFO (Last In First Out). Program Stack ini

digunakan untuk lebih mengefisienkan proses penanganan dan pemanggilan subrutin. Setiap program

mempunyai Program Stack-nya sendiri. Set instruksi PUSH dan POP digunakan untuk menyimpan

ataupun mengambil nilai data ke dalam dan ke luar dari daerah Program Stack.

e) Program List

Gambar 6. Layar tampilan Program List

Page 9: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

9

Gunakan tombol REMOVE PROGRAM untuk menghilangkan sebuah program dari daftar dan gunakan

tombol REMOVE ALL PROGRAMS jika ingin menghilangkan semua program yang ada pada daftar. Jika

sebuah program dihilangkan, maka semua set instruksi-nya juga akan hilang dari layar tampilan CPU

Instruction Memory.

f) Program Creation

Gambar 7. Layar tampilan Program Creation

Untuk membuat sebuah program baru, isilah nama program pada text box Program Name dan nilai

Base Addressnya, lalu klik tombol ADD. Nama program akan tampil pada layar tampilan Program List.

g) Add Program Instruction Tab

Gambar 8. Layar tampilan Add Program Instruction Tab

Klik tombol Add New untuk menambah set instruksi baru, klik tombol Edit untuk merubah sebuah set

instruksi, gunakan Move Up dan Move Down untuk menggeser-geser urutan set instruksi dan klik

tombol Insert Above dan Insert Below jika ingin menyisipkan sebuah set instruksi.

Page 10: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

10

h) Program Data Memory

Gambar 9. Layar tampilan Program Data Memory

Set instruksi yang mengakses daerah pada memory yang berisi data dapat melakukan proses tulis dan

baca pada nilai data yang ada pada suatu lokasi alamat tertentu. Data-data ini dapat dilihat seperti

pada gambar 9 di atas. Untuk menampilkan tampilan Program Data Memory tersebut, klik tombol

Show Program Data Memory yang ada seperti pada gambar 6. Kolom Ladd menampilkan nilai alamat

awal pada setiap baris alamat yang ada. Setiap baris menampilkan data 8 byte yang direpresentasikan

mulai dari kolom B0 sampai dengan B7. Kolom Data menampilkan karakter yang ditampilkan pada

output komputer sesuai dengan nilai data yang ada pada B0 sampai dengan B7 (kode ASCII).

Sedangkan untuk nilai data yang tidak memiliki karakter yang dapat ditampilkan akan

direpresentasikan dalam bentuk titik/dot (.). Nilai data yang ada ditampilkan dalam bentuk nilai

heksanya. Pada contoh di atas, dapat dilihat bahwa ada data di lokasi alamat 19 dan 37 yang berkaitan

dengan karakter huruf kapital A dan B.

Untuk merubah nilai data pada suatu alamat tertentu, pertama pilih dahulu lokasi baris alamat dari

data yang ingin dirubah, lalu isilah informasi pada Initialize Data untuk memodifikasi nilai byte dalam

Page 11: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

11

bentuk Integer, Boolean, atau String sesuai dengan yang diinginkan, kemudian klik tombol Update

untuk melakukan perubahan.

i) IO Console

Gambar 10. Layar Tampilan IO Console

Layar tampilan Console seperti pada gambar 10 di atas digunakan dalam program untuk melakukan

baik membaca data yang diinputkan dari luar maupun untuk menampilkan data yang ada pada memori

ke layar sebagai output. Layar tampilan IO Console di atas dapat ditampilkan dengan cara mengklik

tombol Input Output seperti yang ada pada gambar 1. Jika mengklik tombol Show Keyboard seperti

yang ada pada gambar 10 di atas, maka akan ditampilkan layar keyboard kecil yang dapat dipakai untuk

meng-input-kan data ke dalam CPU.

Page 12: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

12

4. Prosedur Percobaan:

4.1. Buat sebuah program baru menggunakan base address 100, lalu masukkan set instruksi dengan

urutan sebagai berikut:

MOV #5, R00

MOV #8, R00

ADD R00, R01

PSH R01

PSH R00

CMP R00, R01

JMP 0

POP R02

POP R03

CMP R04, R05

JEQ 0

Jalankan program di atas dengan cara mengeksekusi tiap-tiap set instruksi ! (klik tombol Step untuk

setiap set instruksi pada Program Control Tab seperti pada gambar 1 di atas)

Amati apa yang terjadi setiap Step-nya pada setiap register yang ada pada CPU-OS simulator baik itu

general purpose register maupun special CPU register lalu berikan kesimpulan anda !

STEP R00 R01 R02 R03 R04 R05 PC SR SP BR Status

Flag

IR MAR MDR

1

2

3

4

5

6

7

8

9

10

11

12

Page 13: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

13

4.2. Buat sebuah program baru menggunakan base address 100. Buka layar tampilan Program Data

Memory seperti pada gambar 9 di atas, masukkan data String pada baris alamat yang dimulai dari Ladd

24 dengan nama anda, lalu masukkan set instruksi dengan urutan sebagai berikut:

(catatan: simbol L0, L1, dan L2 adalah simbol label pada set instruksi yang biasanya digunakan untuk

mempermudah proses pemanggilan subrutin. Label dapat dibuat dengan cara mengklik tombol

Add New pada Instruction Tab seperti pada gambar 1 di atas, lalu mengklik tombol New Label pada

tampilan berikutnya dan mengisi nama label yang diinginkan. Sedangkan untuk simbol @ adalah

menandakan bahwa mode pengalamatan yang digunakan adalah mode pengalamatan indirect. Mode

pengalamatan indirect ini dapat digunakan dengan mengklik pilihan direct atau indirect yang ada pada

tampilan saat kita ingin memasukkan sebuah set instruksi seperti saat setelah kita mengklik tombol

Add New pada Intruction Tab pada gambar 1 di atas.)

MSF

PSH #8

CAL $L2

HLT

L2:

POP R02

PSH #1

POP R01

MOV #0, R01

MOV #24, R00

L0:

ADD #1, R01

MSF

CAL $L1

CMP R02,R01

JNE $L0

RET

L1:

OUT @R00, 0

RET

Page 14: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

14

Jalankan program di atas dengan cara mengatur lebih dahulu kecepatan simulator sedemikian rupa

sehingga simulasi mudah diamati lalu klik tombol Run pada Program Control Tab seperti yang ada pada

gambar 1 di atas !

Amati apa yang terjadi pada setiap register yang ada pada CPU-OS simulator baik itu general purpose

register maupun special CPU register, amati juga tampilan yang ada pada IO Console seperti pada

gambar 10 di atas, lalu berikan kesimpulan anda !

4.3. Buat sebuah program baru menggunakan base address 100, lalu masukkan set instruksi dengan urutan

sebagai berikut:

MOV #48, R01

MOV #20, R02

L0:

STB R01, @R02

ADD #1, R01

ADD #1, R02

CMP #57, R01

JNE $L0

SUB #1, R02

MOV #20, R03

MOV #80, R04

L1:

LDB @R03, R05

ADD #1, R03

STB R05, @R04

ADD #1, R04

CMP #29, R03

JNE $L1

SUB #1, R04

HLT

Page 15: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

15

Jalankan program di atas dengan cara mengatur lebih dahulu kecepatan simulator sedemikian rupa

sehingga simulasi mudah diamati lalu klik tombol Run pada Program Control Tab seperti yang ada pada

gambar 1 di atas !

Amati apa yang terjadi pada setiap register yang ada pada CPU-OS simulator baik itu general purpose

register maupun special CPU register, amati juga nilai data yang ada pada Program Data Memory

seperti pada gambar 9 di atas, lalu berikan kesimpulan anda !

Page 16: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

16

BAB II

COMPILER DAN INPUT OUTPUT INTERRUPT

1. Tujuan percobaan: setelah melakukan percobaan ini, diharapkan mahasiswa dapat

a) Menjelaskan prinsip kerja Compiler secara umum

b) Menjelaskan tentang interrupt vectors dan bagaimana penggunaannya

c) Menjelaskan tentang dua metode utama dalam I/O interrupt handling dan perbedaannya

2. Dasar teori: Compiler adalah alat rekayasa perangkat lunak untuk menghasilkan kode biner

yang dapat dieksekusi dari bahasa pemrograman tingkat tinggi. Proses kompilasi berlangsung

dalam tiga tahap: Tokenising, Parsing, dan Code Generation. Compiler yang baik sering

menghasilkan kode yang sangat optimal untuk mengurangi ukuran dari kode biner atau

mempercepat eksekusi kode yang dihasilkan. Akibatnya mengoptimalkan compiler secara

langsung dapat memberikan kontribusi terhadap peningkatan kinerja CPU.

Sistem komputer menggunakan mekanisme interrupt sebagai sarana untuk merespon

terhadap kejadian-kejadian external misalnya operasi yang meliputi input dan output. CPU

secara sesaat terinterupsi sebelum mengeksekusi set instruksi berikutnya dan dipaksa untuk

mengeksekusi set instruksi yang ada pada bagian interrupt handler. Setelah proses interrupt

handling selesai dilakukan, CPU akan kembali untuk mengeksekusi set instruksi sebelumnya di

mana dia terinterupsi. Bagian dari memori yaitu Program Stack dalam hal ini dipakai untuk

menyimpan keadaan CPU sesaat sebelum dia melakukan proses interrupt handling yaitu nilai-

nilai data yang tersimpan pada register dan nilai alamat memori yang merupakan lokasi set

instruksi berikutnya (di mana dia terinterupsi) yang harus dia lakukan setelah proses interrupt

handling selesai.

3. Fitur-fitur CPU simulator: pada CPU-OS Simulator, terdapat fitur compiler. Dengan fitur ini,

pemakai simulator lebih mudah membuat program-program tidak lagi menggunakan set

instruksi (bahasa assembly), tapi menggunakan bahasa pemrograman yang lebih tinggi (mirip

bahasa C atau Pascal). Untuk menggunakan fitur ini, klik tombol compiler yang ada pada

tampilan utama CPU-OS Simulator seperti pada gambar 1. Berikutnya akan tampil tampilan

seperti pada gambar berikut ini

Page 17: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

17

Gambar 11. Layar tampilan Compiler Window

Pada tampilan tersebut, terdapat layar Program Source (Input) tempat kita mengetikkan kode

program. Sedangkan layar Program Code (Output) adalah tempat menampilkan hasil compile dari

kode program (klik tombol Compile pada Compile Tab yang ada seperti pada gambar 11 di atas).

Setelah proses compile selesai dilakukan, compiler akan mengubah kode program ke dalam bahasa

mesin yaitu yang dapat dilihat pada bagian kolom Binary Code. Kolom CPU Instruction merupakan hasil

terjemahan terhadap kode mesin ke bentuk set instruksi. Kolom Ladd merupakan kolom tempat kita

dapat melihat lokasi alamat memori untuk tiap set instruksi yang dihasilkan dari bahasa mesinnya.

Untuk membuat agar program yang sudah dibuat bisa dijalankan, maka setelah melakukan proses

compile, klik tombol Load In Memory yang ada pada Assembly Code Tab seperti yang ada pada gambar

11 di atas. Hal itu akan menyebabkan kumpulan set instruksi yang dihasilkan bahasa mesin akan masuk

ke dalam CPU Instruction Memory seperti yang ada pada gambar 2 sehingga program siap

disimulasikan.

Selain fitur Compiler tersebut, ada juga fitur Interrupt yang dapat diakses dengan mengklik tombol

Interrupt pada layar tampilan utama seperti pada gambar 1. Berikutnya akan muncul tampilan seperti

berikut

Page 18: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

18

Gambar 12. Layar tampilan Interrupt Window

Pada tampilan Interrupt seperti pada gambar 12 di atas, terdapat tombol Trigger di tiap interrupt yang

berkaitan (INT 1, INT 2, INT 3, INT 4, INT 5, INT 6). Tombol Trigger tersebut dapat diklik untuk

melakukan proses interrupt sesuai dengan interrupt mana yang diinginkan.

Page 19: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

19

4. Prosedur percobaan:

4.1. Pada layar Compiler (seperti pada gambar 11), buat program berikut ini

program Ex1

n = 5

for i = 1 to 6

n = n + 1

if n = 3 then

n = 0

end if

next

end

Lakukan proses Compile dengan mengklik tombol Compile pada layar Compiler (gambar 11).

Amati apa yang muncul pada tampilan Compiler Progress ! Dari hasil pengamatan anda, berikan

kesimpulan bagaimana prinsip kerja Compiler secara umum !

Sekarang klik tombol Symbol Table, amati dan berikan kesimpulan anda terhadap apa yang

ditampilkan dari Symbol Table tersebut !

Sekarang amati tampilan yang muncul pada Program Code (Output) ! Berikan kesimpulan anda

terhadap apa yang anda amati ! (arti angka-angka dan tulisan yang tertampilkan di sana)

Page 20: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

20

4.2. Pada layar Compiler (seperti pada gambar 11), buat program berikut ini kemudian lakukan proses

Compile dan Load In Memory

program Vectors

sub IntVect1 intr 1

writeln("This is intr 1")

end sub

sub IntVect2 intr 2

writeln("This is intr 2")

end sub

sub IntVect5 intr 5

writeln("This is intr 5")

end sub

while true

wend

end

Amati lokasi subrutin dari IntVect 1, IntVect 2, dan IntVect 5 !

Run program, buka tampilan layar Console Window (gambar 10) dan layar Interrupt Window

(gambar 12). Saat program sedang berjalan, tekan tombol Trigger pada layar Interrupt Window

sesuai dengan interrupt yang berkaitan lalu perhatikan tampilan yang muncul pada layar Console

Window.

Amati dan berikan kesimpulan anda !

Page 21: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

21

4.3. Pada layar Compiler (seperti pada gambar 11), buat program berikut ini kemudian lakukan proses

Compile dan Load In Memory

program PolledInt

var v integer

v = 0

writeln("Program Starting")

while true

read(nowait, v)

for i = 1 to 100

if v > 0 then

break *

end if

write(".")

next

wend

writeln("Program Ending")

end

Lakukan proses Compile dan Load In Memory lalu Run program tersebut ! Tampilkan layar Console

Window dan Show Keyboard pada layar Console tersebut.

Saat Program sedang berjalan dan tampil pesan “Program Starting” pada layar Console Window,

ketik sembarang karakter pada keyboard dan tunggu program selesai. Amati apa yang terjadi !

Kembali buka layar Compiler Window lalu buat program berikut ini

program VectoredInt

var v integer

sub InputInt intr 1

read(nowait, v)

end sub

v = 0

writeln("Program Starting")

Page 22: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

22

while true

for i = 1 to 100

if v > 0 then

break *

end if

write(".")

next

wend

writeln("Program Ending")

end

Lakukan proses Compile dan Load In Memory lalu Run program tersebut ! Tampilkan layar Console

Window dan Show Keyboard pada layar Console tersebut.

Saat Program sedang berjalan dan tampil pesan “Program Starting” pada layar Console Window,

ketik sembarang karakter pada keyboard dan tunggu program selesai. Amati apa yang terjadi !

Berdasarkan pengamatan anda, berikan kesimpulan tentang cara kerja dua metode tersebut, jelaskan

perbedaannya, sertakan juga kekurangan, dan kelebihannya !

Page 23: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

23

BAB III

CACHE

1. Tujuan percobaan: setelah melakukan percobaan ini, diharapkan mahasiswa dapat

a) Menjelaskan tentang Direct Mapping pada cache

b) Menjelaskan tentang cache hit dan miss

c) Menjelaskan tentang 2-way-Set-Associative dan 4-way-Set-Associative pada cache

d) Menjelaskan pengaruh cache size dan bentuk mapping

2. Dasar teori: umumnya, memori yang lebih murah bersifat lebih lambat dari pada memori yang

lebih mahal, kecuali terhadap CPU yang paling lambat. Kinerja sistem akan terganggu apabila

peralatan yang cepat harus menunggu sistem memori mengakses data. Peralatan tersebut

bisa berupa peralatan I/O atau CPU, dan sistem memori bisa berupa memori utama atau

peralatan eksternal. Karena pemakai komputer nampaknya selalu menginginkan memori yang

lebih besar, maka para perancang komputer harus secara seksama mempertimbangkan

keseimbangan daya jual antara biaya memori dan kinerjanya. Salah satu cara untuk

mengurangi degradasi kinerja yang diakibatkan oleh memori yang lambat adalah dengan

menggabungkan memori cache ke dalam sistem. Memori cache adalah buffer kecepatan tinggi

yang digunakan untuk menyimpan data yang diakses pada saat itu dan data yang berdekatan

dalam memori utama. Dengan memasukkan memori cache antara peralatan cepat dan sistem

memori yang lebih lambat, perancang dapat memberikan sistem memori yang cepat.

3. Fitur-fitur CPU simulator: CPU-OS Simulator memiliki Data Cache Simulator. Untuk

mengaksesnya, klik tombol Show Cache yang ada pada Cache-Pipeline Tab di layar tampilan

utama CPU-OS Simulator seperti pada gambar 13.

Page 24: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

24

Gambar 13. Layar tampilan Data Cache Window

Pada layar tampilan Data Cache Window tersebut, terdapat block size, chace type, Set Blocks, dan

chace size yang dapat dipilih berdasarkan jenis dan kapasitas yang diinginkan. Untuk tampilannya

dapat dilihat dalam bentuk grafik, chace stats, dan layar cache data.

Page 25: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

25

4. Prosedur percobaan:

4.1. Buat sebuah program seperti berikut

MOV #0, R01

STB R01, @R01

CMP #63, R01

JEQ 31

ADD #1, R01

JMP 6

HLT

Program di atas menulis data angka dari 0 sampai dengan 63 pada lokasi alamat memori 0

sampai dengan 63. Jalankan program tersebut dan amati pada layar Program Data Memory

seperti pada gambar 9 ! Klik tombol Show Cache sehingga keluar tampilan seperti pada

gambar 13, lalu bersihkan dengan mengklik tombol Flush. Konfigurasi ulang cache dengan

spesifikasi: Block Size = 4, Cache Type = Direct Mapped, Cache Size = 16, Write Policy = Write-

Back.

Kemudian sisipkan kode berikut di bawah set instruksi JMP 6:

LDB 0, R00

LDB 1, R00

LDB 2, R00

LDB 3, R00

Eksekusi set instruksi di atas dengan cara mengklik tombol Step yang ada pada tampilan utama

seperti pada gambar 1. Amati dan isi tabel di bawah ini !

Address Data Hits Block

Hits % Hits

Misses % Misses

Masukkan set instruksi berikut di bawah set instruksi LDB 3, R00

Page 26: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

26

LDB 4, R00

Eksekusi set instruksi tersebut dengan mengklik tombol Step, amati isi data pada layar Program

Data Memory lalu isi tabel berikut

Address Data Block

Dari hasil pengamatan anda, buatlah kesimpulannya !

4.2. Bersihkan cache dengan mengklik tombol Flush pada layar Data Cache. Lalu masukkan set

instruksi berikut di bawah set instruksi terakhir

LDB 16, R00

LDB 32, R00

Eksekusilah hanya 3 set instruksi berikut dengan cara klik set instruksi yang ingin dijalankan lalu klik

tombol Step yang ada pada layar tampilan utama seperti pada gambar 1.

LDB 0, R00

LDB 16, R00

LDB 32, R00

Ulangi langkah di atas dua kali, amati apa yang terjadi lalu isilah tabel di bawah ini

Address Data Hits Block

Hits % Hits

Misses % Misses

Dari hasil pengamatan anda, berikan kesimpulannya !

Page 27: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

27

4.3. Konfigurasi cache dengan spesifikasi: Block Size = 4, Cache Type = Set Associative, Cache

Size = 16, Set Blocks = 2-way, Write Policy = Write-Back. Sisipkan set instruksi berikut di

bawah set instruksi LDB 4, R00:

LDB 8, R00

LDB 12, R00

Eksekusi set instruksi dengan urutan sebagai berikut satu persatu (dengan menekan tombol

Step):

LDB 0, R00

LDB 4, R00

LDB 8, R00

LDB 12, R00

Amati lalu isilah tabel berikut:

Address Set Block

0000

0004

0008

0012

Konfigurasi ulang cache dengan merubah Set Blocks-nya menjadi 4-way. Eksekusi set instruksi dengan

urutan sebagai berikut:

LDB 0, R00

LDB 4, R00

LDB 8, R00

LDB 12, R00

Amati, lalu isi tabel berikut:

Address Set Block

0000

0004

0008

0012

Bersihkan cache dengan mengklik tombol Flush pada layar Data Cache. Dari program tersebut,

eksekusi hanya dua set instruksi berikut satu persatu:

LDB 0, R00

LDB 16, R00

Page 28: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

28

Ulangi langkah di atas tiga kali, amati, lalu isi tabel berikut:

Address Data Hits

Hits % Hits

Misses % Misses

Dari hasil pengamatan anda, berikan kesimpulannya !

4.4. Buka layar Compiler seperti pada gambar 11. Buat program seperti di bawah, lakukan proses

Compile, kemudian Load In Memory

program CacheTest

var a array(50) byte

i = 49

for n = 0 to 49

p = a(n) + a(i)

i = i - 1

next

end

Pastikan pilihan Charts pada layar Data Cache (seperti pada gambar 13) aktif. Pilih parameter cache

yang sesuai, jalankan program, amati lalu isilah tabel berikut (pastikan sebelum menjalankan program

dengan spesifikasi baru, anda menekan tombol dahulu tombol Reset Program pada layar tampilan

utama simulator seperti pada gambar 1 dan Write Policy pada layar Data Cache seperti pada gambar

11 adalah Write-Back):

Direct Mapping (cache size mulai dari 16 sampai dengan 256)

16 32 64 128 256

Page 29: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Praktikum Arsitektur Organisasi Komputer Lanjut

Laboratorium Sistem Komputer dan Robotika

Fakultas Ilmu Komputer – Universitas Brawijaya

29

2-way Set Associative Mapping (cache size mulai dari 16 sampai dengan 256)

16 32 64 128 256

4-way Set Associative Mapping (cache size mulai dari 16 sampai dengan 256)

16 32 64 128 256

8-way Set Associative Mapping (cache size mulai dari 32 sampai dengan 128)

Dari hasil pengamatan anda, berikan kesimpulannya !

32 64 128

Page 30: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

BAB IV

PROCESS STATES DAN MEMORY MANAGEMENT

1. Tujuan percobaan: setelah melakukan percobaan ini, diharapkan mahasiswa dapat

a) Menjelaskan tentang tiga state processes dalam komputer

b) Menjelaskan tentang transisi yang terjadi antara state processes dalam komputer

c) Menjelaskan tentang dua kejadian yang dapat menyebabkan suatu proses berubah keadaan

dari waiting state-nya

d) Menjelaskan tentang tiga placement methods yang digunakan dalam manajemen memori

e) Menjelaskan tentang virtual memori

2. Dasar teori: Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan

statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari

proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:

• New: Proses sedang dikerjakan/ dibuat.

• Running: Instruksi sedang dikerjakan.

• Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah

penyelesaian I/O atau penerimaan sebuah tanda/ signal).

• Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.

• Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.

Nama-nama tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi disepanjang

sistem operasi. Keadaan yang mereka gambarkan ditemukan pada seluruh sistem. Namun,

sistem operasi tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah

penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana pun

pada waktu kapan pun. Namun, banyak proses yang dapat ready atau waiting.

Sebuah proses membutuhkan memori untuk dieksekusi. Sebuah proses dapat ditukar

sementara keluar memori ke backing store (disk), dan kemudian dibawa masuk lagi ke memori

untuk dieksekusi.

Sebagai contoh, asumsi multiprogramming, dengan penjadualan algoritma CPU Round-Robin.

Ketika kuantum habis, manager memori akan mulai menukar keluar proses yang selesai, dan

memasukkan ke memori proses yang bebas. Sementara penjadualan CPU akan

mangalokasikan waktu untuk proses lain di memori. Ketika tiap proses menghabiskan waktu

kuantumnya, proses akan ditukar dengan proses lain. Idealnya memori manager, dapat

Page 31: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

menukar proses-proses cukup cepat, sehingga selalu ada proses di memori, siap dieksekusi,

ketika penjadual CPU ingin menjadual ulang CPU. Besar kuantum juga harus cukup besar,

sehingga jumlah perhitungan yang dilakukan antar pertukaran masuk akal. Variasi dari

kebijakan swapping ini, digunakan untuk algoritma penjadualan berdasarkan prioritas. Jika

proses yang lebih tinggi tiba, dan minta dilayani, memori manager dapat menukar keluar

proses dengan prioritas yang lebih rendah, sehingga dapat memasukkan dan mengeksekusi

proses dengan prioritas yang lebih tinggi.

Ketika proses dengan prioritas lebih tinggi selesai, proses dengan prioritas yang lebih rendah,

dapat ditukar masuk kembali, dan melanjutkan. Macam-macam pertukaran ini kadang disebut

roll out, dan roll in. Memori virtual merupakan suatu teknik yang memisahkan antara memori

logis dan memori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh

bagian program perlu ikut masuk ke dalam memori.

Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat

menampung program dalam skala besar, melebihi daya tampung dari memori utama yang

tersedia. Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum

eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan

eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."

3. Fitur-fitur CPU simulator: pada simulator ini, juga terdapat fitur untuk menampilkan

bagaimana sistem operasi dalam sebuah komputer bekerja. Untuk membuka fitur ini, klik

tombol OS Output pada layar tampilan utama simulator ini (seperti pada gambar 1) sehingga

keluar tampilan seperti berikut ini

Page 32: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Gambar 14. Layar tampilan OS Simulator

Anda dapat memasukkan program dengan cara melakukan Load In Memory lebih dahulu jika program

dibuat dengan menggunakan Compiler ataupun dengan cara membuat program secara langsung

dengan set instruksi pada layar tampilan utama simulator. Jika program tersebut ingin dijalankan pada

layar tampilan OS Simulator (seperti pada gambar 14), maka klik dahulu tombol Create New Process

yang ada pada Process Tab di Program List pada layar tampilan OS Simulator. Program kemudian

dijalankan dengan mengklik tombol Start yang ada pada OS Control Tab.

Jika anda mengklik tombol View Tab, maka akan ada menu untuk menampilkan antara lain: View

Utilization, View Process List, View Process States, View Resources, View Memory, View Log, dan View

Libraries. Anda dapat memilih salah satu menu tersebut sesuai dengan apa yang ingin diamati. Dalam

percobaan ini, anda cukup menggunakan menu View Process States untuk dapat melihat State

Processes yang ada dalam komputer (gambar 15), menu View Memory untuk dapat melihat kondisi

memori di dalam komputer (gambar 16) dalam hubungannya dengan proses Swapping, lalu View

Utilization untuk dapat melihat keadaan Resource pada komputer (gambar 17) sehubungan dengan

proses Virtual Memory.

Page 33: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Gambar 15. Layar tampilan Process States

Gambar 16. Layar tampilan Main Memory

Page 34: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Gambar 17. Layar tampilan Resource Utilisation

4. Prosedur percobaan:

4.1. Pada OS Simulator Window, load program ForeverLooping lalu buat proses dari program tersebut

dengan mengklik tombol Create New Process. Berikutnya buka tampilan Process States Window

seperti pada gambar 15. Pada tampilan tersebut, anda akan dapat melihat berbagai macam state

process dalam komputer. Sesuaikan kecepatan simulator dengan mengaturnya pada OS Control

Tab pada layar OS Simulator Window seperti pada gambar 14, lalu klik tombol Start, setelah itu

buka kembali layar Process States Window. Pada percobaan ini, lakukan proses perubahan state

process pada layar Process States Window (gambar 15) dengan melakukan klik dan drag

menggunakan mouse anda sesuai dengan urutan yang ada pada tabel di bawah ini, amati apa

yang terjadi, lalu isilah tabelnya:

Perlakuan Hasil Berhasil (ya

atau tidak)

Gagal (ya

atau tidak)

1. Drag proses dari waiting queue ke waiting

state

2. Drag proses ke Process Bin (terminate)

3. Drag proses ke CPU Box (run)

4. Drag proses ke Waiting Queue

Page 35: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

5. Drag proses ke CPU Box

6. Drag proses ke Process Bin

7. Drag proses ke Ready Queue (ready)

8. Klik tombol Resume di OS Control Tab

9. Drag proses ke Ready Queue

10. Klik tombol Resume di OS Control Tab

11. Drag proses ke Process Bin

Berdasarkan hasil di atas, isilah keadaan yang diperbolehkan pada tabel di bawah ini:

Keadaan Awal Keadaan Akhir

Pada gambar di bawah ini, berilah tanda panah di mana keadaan perubahan State Process diijinkan

4.2. Pada percobaan kali ini, Load program OSQueuesDemo lalu buat proses dari program ini ke dalam

OS Simulator Window. Jalankan program ini, amati apa yang terjadi, lalu isilah urutan State

Process yang terjadi dari hasil pengamatan anda ke dalam tabel di bawah ini:

Urutan State Process

1. Running

5. Ready

Page 36: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

(catatan: jika anda ingin mennghilangkan proses yang ada pada keadaan Running, klik tombol Kill pada

tampilan Running Processes di layar OS Simulator Window seperti pada gambara 14, klik tombol

Remove jika proses sedang ada dalam keadaan Ready atau Waiting)

4.3. Kali ini Load program WaitOnreadDemo, buat proses baru dari program ini pada layar OS

Simulator Window, jalankan (input dari luar dapat diberikan dengan cara menampilkan Show

Keyboard pada layar tampilan IO Console seperti pada gambar 10), amati apa yang terjadi ! Pada

program kali ini, jika sebuah proses dalam keadaan Running dan tiba-tiba membutuhkan suatu

input dari luar, maka sistem operasi pada komputer akan merubah keadaan proses menjadi

Waiting State. Berikan kesimpulan anda !

4.4. Untuk percobaan ini, pastikan simulator dalam keadaan bersih tidak ada program apapun sama

sekali (lakukan Remove Program jika masih terdapat program pada simulator). Kemudian, pada

layar OS Simulator Window, klik Views Tab lalu Klik tombol View Memory. Anda akan melihat

layar Main memory seperti pada gambar 16. Pilih pilihan yang ada pada opsi Frames menjadi

bernilai satu, lalu klik tombol Add sedemikian rupa sampai Main Memory terlihat penuh (kira-kira

sepuluh kali klik). Sekarang buat Hole pada memori dengan cara memilih frame yang akan

dihilangkan kemudian mengklik tombol Remove. Hilangkan Frame yang ke-3, ke-5, ke-7, ke-8, dan

ke-9 sehingga hanya Frame 0, 1, 4, dan 6 saja yang ada pada Main Memory.

Sekarang pilih opsi pada Placement Policy menjadi First Fit, load program ForeverLooping, buat proses

dari program ini pada OS Simulator Window. Amati apa yang terjadi pada layar tampilan Main Memory

seperti pada gambar 16 !

Remove proses tersebut (jangan meremove programnya, hanya prosesnya saja). Rubah Placement

Policy menjadi Best Fit. Buat lagi proses dari program ForeverLooping lalu amati apa yang terjadi pada

layar Main Memory !

Remove lagi proses tersebut, sekarang rubah Placement Policy menjadi Worst Fit dan ulangi langkah

seperti di atas, amati apa yang terjadi pada layar Main Memory !

Dari hasil pengamatan anda, berikan kesimpulan bagaimana cara bekerja dari masing-masing

Placement Policy tersebut!

Page 37: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

4.5. Buka layar Resource Utilisation seperti pada gambar 17, lalu buka layar Main Memory seperti

pada gambar 16 dan hilangkan centang pada opsi Paging Enabled Box. Setelah itu, load program

OSQueuesDemo, kemudian buat tiga macam proses dengan konfigurasi yang berbeda dari

program ini pada Process Tab di layar OS Simulator Window seperti pada gambar 14 sesuai

dengan tabel di bawah ini. Amati apa yang terjadi pada layar Resource Utilisation dan isilah tabel

di bawah ini:

Process Pages Free Alloc Swap

P1 4

P2 5

P3 3

Jelaskan kenapa dilakukan proses Swap pada memori untuk proses P3 !

Sekarang, jalankan program di atas dengan menyesuaikan dahulu kecepatan simulasi lalu klik tombol

Start pada layar OS Simulator Window seperti pada gambar 14 dan lakukan pengamatan terhadap

layar Resource Utilisation seperti pada gambar 17. Dari hasil pengamatan anda, isilah tabel di bawah

ini:

Process Free Alloc Swap

P1

P2

P3

P1

P2

P3

Kali ini, saat program sedang berjalan pada keadaan Running, lakukan proses Kill satu persatu pada

proses tersebut dengan mengklik Tombol Kill pada layar OS Simulator Window. Amati layar Resource

Utilisation lalu isilah tabel di bawah ini:

CPU % Free Alloc Swap

Semua yang anda lakukan di atas menunjukkan bagaimana sebenarnya prinsip kerja dari manajemen

memori dalam sistem operasi. Buatlah kesimpulan umum tentang proses manajemen memori

tersebut !

Page 38: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

BAB V

PIPELINING

1. Tujuan percobaan: setelah melakukan percobaan ini, diharapkan mahasiswa dapat

a) Menjelaskan perbedaan tentang cara kerja komputer dengan dan tanpa proses pipelining

b) Menjelaskan tentang keadaan dependency yang ada dalam proses pipelining dan cara-cara

mengatasinya

2. Dasar teori: CPU modern menggunakan teknologi pipelining agar mampu memproses

berbagai tahap instruksi secara paralel sehingga meningkatkan kinerja keseluruhan CPU.

Namun, sebagian besar program memiliki keadaan, syarat, dan kondisi tertentu untuk

menjamin kelancaran proses pipelining (disebut dengan dependency). Akibatnya CPU

dirancang dengan beberapa trik tertentu agar dapat mengatasi keadaan dependency

tersebut.

3. Fitur-fitur CPU simulator: pada CPU-OS Simulator ini, terdapat fitur agar dapat mengamati

proses pipelining yang terjadi pada CPU. Untuk mengaktifkan fitur ini, pada layar utama CPU-

OS Simulator ini (gambar 1), klik tombol Show Pipeline yang ada pada Cache-Pipeline Tab

sehingga keluar tampilan layar Instruction Pipeline.

Gambar 18. Layar tampilan Instruction Pipeline

Page 39: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Pada layar sebelah kiri, anda dapat melihat kumpulan set instruksi yang dijalankan pada proses

pipelining dalam komputer. Sedangkan pada layar sebelah kanan, anda dapat melihat tahapan-

tahapan pipeline yang dilakukan oleh komputer dengan urutan set instruksi yang dijalankan terlebih

dahulu sampai dengan yang terakhir yaitu dari atas sampai ke bawah.

4. Prosedur percobaan:

4.1. Pada layar Compiler, seperti pada gambar 11, buat program berikut ini

program Ex1

for n = 1 to 20

p = p + 1

next

end

Compile program tersebut lalu lakukan Load In Memory. Buka layar Instruction Pipeline seperti pada

gambar 18 kemudian jalankan program tersebut dengan mengklik tombol Run pada layar utama CPU-

OS Simulator. Amati apa yang terjadi pada layar Instruction Pipeline ! Anda seharusnya dapat melihat

tahapan-tahapan langkah pada proses pipeline dari hasil pengamatan anda. Tahapan-tahapan ini

disebut dengan Pipeline Stages. Tuliskanlah nama dari Pipeline Stages tersebut !

Amati juga keterangan CPI (Clocks Per Instruction) dan SF (Speed Factor) yang ada pada layar

Instruction Pipeline seperti pada gambar 18 lalu isilah tabel di bawah ini (pastikan saat itu terdapat

centang pada opsi No Instruction Pipeline).

CPI (Clocks Per Instruction)

SF (Speed Factor)

Sekarang Stop program tersebut, Reset ulang, hilangkan centang pada opsi No Instruction Pipeline,

lalu jalankan lagi program tersebut. Amati perubahan apa yang terjadi pada layar Instruction Pipeline

dan isilah tabel di bawah ini:

CPI (Clocks Per Instruction)

SF (Speed Factor)

Dari hasil pengamatan anda tersebut, simpulkan bagaimana prinsip kerja dari proses Pipelining dalam

sebuah komputer !

Page 40: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

4.2. Sekarang kita akan melihat macam-macam keadaan dependency yang dapat terjadi dalam proses

Pipeline. Yang pertama adalah tentang Data Hazard. Buat program di bawah ini dengan

menggunakan set instruksi (bahasa Assembly) pada layar utama CPU-OS Simulator seperti pada

gambar 1 tetapi jangan dijalankan terlebih dahulu.

MOV #1, R01

MOV #5, R03

MOV #3, R01

ADD R01, R03

HLT

Pelajari program tersebut, lalu isilah berapa nilai data yang seharusnya ada pada R03 jika program

tersebut selesai dijalankan

R03 =

Sekarang pastikan tidak ada centang pada opsi No Instruction Pipeline dan opsi Do Not Insert Bubbles

pada layar Instruction Pipeline (gambar 18) kemudian jalankan program tersebut. Amatilah berapa

nilai data yang ada pada R03 !

R03 =

Sekarang sisipkan set instruksi NOP pada program tersebut sehingga program anda tamapak seperti

di bawah ini

MOV #1, R01

MOV #5, R03

MOV #3, R01

NOP

ADD R01, R03

HLT

Reset program anda lalu jalankan lagi dengan konfigurasi yang sama seperti di atas (tidak ada centang

pada opsi No Instruction Pipeline dan opsi Do Not Insert Bubbles). Amatilah nilai data yang ada pada

R03 sekarang !

R03 =

Dari hasil pengamatan anda di atas, simpulkan apa yang menyebabkan perbedaan nilai pada R03 di

atas !

Page 41: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Sekarang hilangkan set instruksi NOP pada program anda dan berilah centang pada opsi Do Not Insert

Bubbles. Reset program anda, lalu jalankan kembali. Amatilah berapa nilai data yang ada pada R03

sekarang !

R03 =

Berikanlah kesimpulan dari hasil pengamatan anda tersebut kenapa nilai pada R03 sekarang sama

dengan nilai yang ada pada saat program dengan set instruksi NOP dijalankan !

Pada layar Instruction Pipeline, amatilah Bubble yang muncul ! Apa warna dari Bubble tersebut ? apa

kegunaannya ?

Amatilah sekali lagi layar Instruction Pipeline kemudian isilah tabel di bawah ini !

CPI (Clocks Per Instruction)

SF (Speed Factor)

4.3. Sekarang kita akan mempelajari metode Operand Forwarding yang ada pada proses Pipeline

dalam komputer. Untuk melakukan hal ini, berilah centang pada opsi Enable Operand

Forwarding yang ada pada layar Instruction Pipeline seperti pada gambar 18. Reset program

anda yang ada pada prosedur percobaan 4.2. kemudian jalankan lagi. Amatilah apakah ada

Bubble yang timbul pada proses Pipeline !

Simulator akan menghitung jumlah dependency (dalam hal ini adalah Data Hazard) yang dideteksinya

setiap sebuah set instruksi mengalami proses Pipeline. Amatilah hasil percobaan anda dan isilah tabel

di bawah ini !

CPI (Clocks Per Instruction)

SF (Speed Factor)

Data Hazards

Apakah ada peningkatan ? Berilah kesimpulan !

Page 42: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

4.4. Sekarang kita akan melihat pengaruh Loop Unrolling yang ada pada proses Compiler. Buka layar

Compiler seperti pada gambar 11. Buat program seperti di bawah ini

program Ex4_1

for n = 1 to 8

t = t + 1

next

end

Kemudian, pada layar Compiler, klik tab Optimize yang ada pada bagian bawah, lalu berilah centang

pada opsi Enable Optimizer dan pilihlah opsi Redundant Code (dilakukan dengan cara memberi

centang pada opsi yang diinginkan). Compile program tersebut ! Amatilah Code Size hasil dari proses

compile ! (dapat dilihat pada Code Size yang ada di Assembly Code Tab bagian kanan bawah dari layar

Compiler)

Code Size =

Sekarang lakukan Load In Memory untuk program Ex4_1 anda.

Berikutnya pilihlah opsi Loop Unrolling pada Enable Optimizer anda (dilakukan dengan cara yang sama

seperti Redundant Code di atas, yaitu dengan memberi centang pada opsi Loop Unrolling), lalu rubah

nama program anda menjadi program Ex4_2, lakukan proses Compile dan Load In Memory program

Ex4_2 tersebut sehingga akan ada dua versi program pada layar utama CPU-OS Simulator anda

(gambar 1). Amati berapa Code Size dari program Ex4_2 anda !

Code Size =

Buka layar Instruction Pipeline seperti pada gambar 18. Hilangkan centang (jika ada) pada opsi Enable

Operand Forwarding dan opsi Enable Jump Prediction, lalu pilih program Ex4_1 pada layar utama CPU-

OS Simulator. Klik Reset Program, lalu jalankan program Ex4_1 tersebut. Amatilah apa yang terjadi

pada layar Instruction Pipeline kemudian isilah tabel di bawah ini

CPI (Clocks Per Instruction)

SF (Speed Factor)

No of Instruction Executed

Lakukan hal yang sama seperti di atas tetapi kali ini untuk program Ex4_2, lalu isilah tabel di bawah ini

CPI (Clocks Per Instruction)

SF (Speed Factor)

No of Instruction Executed

Dari hasil pengamatan anda dan mengacu kepada Code Size dan No of Instruction Executed, berilah

kesimpulan !

Page 43: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

4.5. Pada percobaan di atas, anda telah mengamati bagaimana mengatasi dependency yang terjadi

pada proses Pipeline menggunakan Compiler. Sekarang anda akan mengamati cara lain

menggunakan Compiler untuk mengatasi dependency pada proses Pipeline. Hilangkan tanda

centang pada opsi Show Dependencies di Options Tab layar Compiler anda (gambar 11) dan

pilihlah hanya opsi Redundant Code (dengan cara memberi centang) pada Optimize Tab di layar

Compiler kemudian buat program seperti di bawah ini

program Ex5_1

a = 1

b = a

c = 2

end

Lakukan proses Compile, amatilah set instruksi yang terbentuk lalu tuliskan hasilnya !

Sekarang, pilihlah opsi Code Dependencies (berilah tanda centang). Rubah nama program menjadi

program Ex5_2, lakukan proses Compile dan Load In Memory.

Amatilah set instruksi yang terbentuk lalu tuliskan hasilnya !

Apa perbedaan yang timbul dari hasil Compile kedua program tersebut ? Apa pengaruh perbedaan

tersebut terhadap algoritma program ? Jelaskan !

Modifikasi program anda menjadi seperti di bawah ini

program Ex5_3

for n = 1 to 50

a = 1

b = a

c = 2

next

end

Page 44: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Lakukan proses Compile dan Load In Memory dua versi program di atas, yang satu tanpa memilih opsi

Code Dependencies (tanpa centang), yang satu lagi dengan opsi Code Dependencies (memberi

centang) dengan nama program Ex5_4. Jalankan program Ex5_3, amati, lalu isi tabel di bawah ini

CPI (Clocks Per Instruction)

SF (Speed Factor)

Sekarang jalankan program Ex5_4, amati, lalu isi tabel di bawah ini

CPI (Clocks Per Instruction)

SF (Speed Factor)

Apa yang anda dapat dari hasil pengamatan kedua program di atas ? Berikan kesimpulan !

4.6. Sekarang kita akan mempelajari cara lain untuk mengatasi dependencies pada prose Pipeline,

yaitu dengan menggunakan metode Jump Prediction. Buat program seperti di bawah ini

program Ex6

i = 0

for p = 1 to 40

i = i + 1

if i = 10 then

i = 0

r = i

end if

next

end

Lakukan proses Compile dan Load In Memory dengan hanya memilih opsi Enable Optimizer dan opsi

Remove Redundant Code (dengan cara memberi centang). Jalankan program, amati layar Instruction

Pipeline kemudian isilah tabel di bawah ini

CPI (Clocks Per Instruction)

SF (Speed Factor)

Sekarang pilih opsi Enable Jump Prediction pada layar Instruction Pipeline (gambar 18), reset program

anda, lalu jalankan lagi. Amati layar Instruction Pipeline, lalu isilah tabel di bawah ini

CPI (Clocks Per Instruction)

SF (Speed Factor)

Page 45: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Pada layar Instruction Pipeline, klik tombol Show Jump Table, amati tampilan tabel Jump Prediction

yang muncul ! Perkirakan apa arti masing-masing kolom yang ada pada tabel tersebut dan berilah

masukan anda !

V

JlnstAddr

JTarget

PStat

Count

Page 46: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Appendix – Kode Program yang Dipakai untuk Simulator ini (digunakan pada layar Compiler

Window)

program OSQueuesDemo %Start of program

while true %Forever loop

for n = 1 to 15 %Repeat 15 times

i = 1 %Just something to do!

next %End of repeat loop

wait(3) %Suspend program for 3 secs

wend %End of forever loop

end %End of program

program WaitOnReadDemo

regvar d integer %Keep input in a register

while true

for n = 1 to 15 %This loop keeps CPU busy

i = 1 %Just something to do!

next

write("> ") %Display this prompt

read(d) %Wait for keyboard input

writeln(d) %Display input character

if d = 42 then %Test if end of program

break %End program if a * character

end if

wend

end

program ForeverLooping

while true %Do a forever loop

n = 1 %Does nothing useful but

wend %keeps the CPU busy

end

Page 47: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

Appendix – Beberapa Set Instruksi dan Kegunaannya

Instruction Description

Data Transfer Instructions

MOV

Move data to register; move register to register

e.g.

MOV #2, R01 moves number 2 into register R01

MOV R01, R03 moves contents of register R01 into register R03

LDB Load a byte from memory to register

LDW Load a word (2 bytes) from memory to register

STB Store a byte from register to memory

STW Store a word (2 bytes) from register to memory

PSH

Push data to top of hardware stack (TOS); push register to TOS

e.g.

PSH #6 pushes number 6 on top of the stack

PSH R03 pushes the contents of register R03 on top of the stack

POP

Pop data from top of hardware stack to register

e.g.

POP R05 pops contents of top of stack into register R05

Note: If you try to POP from an empty stack you will get the error

message “Stack overflow”.

Arithmetic Instructions

ADD

Add number to register; add register to register

e.g.

ADD #3, R02 adds number 3 to contents of register R02 and stores

the result in register R02.

ADD R00, R01 adds contents of register R00 to contents of register

R01 and stores the result in register R01.

SUB Subtract number from register; subtract register from register

MUL Multiply number with register; multiply register with register

DIV Divide number with register; divide register with register

Control Transfer Instructions

JMP Jump to instruction address unconditionally e.g.

JMP 100 unconditionally jumps to address location 100

Page 48: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

JLT Jump to instruction address if less than (after last comparison)

JGT Jump to instruction address if greater than (after last comparison)

JEQ

Jump to instruction address if equal (after last comparison

instruction)

e.g.

JEQ 200 jumps to address location 200 if the previous comparison

instruction result indicates that the two numbers are equal, i.e. the

Z status flag is set (the Z box will be checked in this case).

JNE Jump to instruction address if not equal (after last comparison)

CAL Jump to subroutine address

RET Return from subroutine

SWI Software interrupt (used to request OS help)

HLT Halt simulation

Comparison Instructions

CMP

Compare number with register; compare register with register

e.g.

CMP #5, R02 compare number 5 with the contents of register R02

CMP R01, R03 compare the contents of registers R01 and R03

Note:

If R01 = R03 then the status flag Z will be set, i.e. the Z box is

checked.

If R03 > R01 then non of the status flags will be set, i.e. none of the

status flag boxes are checked.

If R01 > R03 then the status flag N will be set, i.e. the N status box is

checked.

Input Output Instructions

IN Get input data (if available) from an external IO device

OUT Output data to an external IO device

Page 49: Buku Panduan Praktikum Arsitektur Dan Organisasi Komputer Lanjut

DAFTAR PUSTAKA

Stallings, William. Computer Organisation And Architectures. 8th Edition. Prentice Hall. 2010.

Stallings, William. Operating Systems. 5th Edition. Prentice Hall. 2008.