Minggu pertama
-
Upload
daudi-lazarus -
Category
Education
-
view
877 -
download
2
description
Transcript of Minggu pertama
SISTEM KOMPUTER
Saya ucapkan selamat datang bagi
seluruh mahasiswa/i semester 3
jurusan Teknik Elektronika, program
studi D3 Teknik elektronika Industri.
Pada awal tahun ajaran ini, anda akan
memasuki “NERAKA”, untuk itu harap
mempersiapkan diri anda sebaik-
baiknyaMata kuliah Sistem Komputer akan dilaksanakan pada hari
Selasa, jam 13.30 hingga 16.00, di lab Elk 4.
Penilaian akan dilaksanakan secara ketat, sehingga setiap
mahasiswa yang tidak berkompeten akan di Drop
Out, untuk proses penyaringan mahasiswa. Sistem
penilaian adalah: a. keaktifan 10%; b. Tugas 20%; c. UTS
30%, dan UAS 40%.
Siswa harus datang tepat waktu, keterlambatan akandikenakan hukuman: a. push up (pria); b. scott jump (wanita); sebanyak 15 x per menit terlambat.
Siswa tidak diperkenankan mengaktifkan HP selamakuliah berlangsung. Jika HP berdering selamakuliah,maka akan dikenakan hukuman: a. push up (pria); b. scott jump (wanita); sebanyak 100 x
Siswa tidak diperkenankan merokok baik selama ataudiluar jam perkuliahan, didalam maupun luarlingkungan kampus. Pelanggaran dikenakanhukuman: a. push up (pria); b. scott jump (wanita); sebanyak 250 x
Siswa harus membawa kalkulator ilmiah selamaperkuliahan, tidak diperkenankan meminjam keteman.
Kinerja dari sebuah program amat tergantung pada
kombinasi antara: 1. algoritma yang digunakan, 2.
software yang digunakan dan menerjemahkan
bahasa pemograman ke dalam instruksi bahasa
mesin;dan 3. keefektifan komputer melakukan
ekseskusi.Komponen Hardware atau
software
Efek terhadap performa
Algoritma Menunjuk pada 1.jumlah statement
level sumber, 2.jumlah operasi I/O
yang telah dikerjakan
Bahasa pemograman, kompiler
atau arsitektur
Menunjuk pada jumlah instruksi
bahasa mesin untuk setiap
statement level sumber
Sistem prosesor dan memory Menunjuk pada kecepatan
perintah-perintah dapat dikerjakan
Sistem I/O (sistem operasi dan
perangkat keras)
Menunjuk pada kecepatan
pperintah I/O yang akan dikerjakan
Software sistem: software yang menyediakanservis yang secara umum berguna, mis. Sistemoperasi, kompiler dan asembler.
Sistem Operasi,melakukan pengawasanterhadap program yang mengatur sumber-sumber pada komputer untuk keuntunganprogram yang berjalan pada mesin
Kompiler: sebuah program yang dapatmenerjemahkan statement2 bahasa tingkat tinggike dalam statement bahasa asembler
Bilangan biner atau bit: salah satu bilanganberbasis dua (0 atau 1) yang berisi komponeninformasi
Asembler: sebuah program yang
menerjemahkan simbol-simbol instruksi
menjadi bilangan biner
Bahasa mesin: sebuah simbol yang
mewakiliinstruksi mesin
Bahasa pemograman tingkat tinggi: sebuah
basa pemograman (seperti C,Fortran,Java)
yang terdiri dari kata dan nota algebra yang
dapat diterjemahkan oleh kompiler menjadi
bahsa mesin
Untuk berkomunikasi dengan peralatan
elektronika, yang dibutuhkan adalah
mengirimkan sinyal listrik. Salah satu bentuk
sederhana dari sinyal adalah “hidup” dan
“mati”, sehingga bahasa mesin terdiri 2 angka
(biner).
Komputer menejermahkan perintah (disebut
instruksi), dari bahasa tingkat tinggi menjadi
kumpulan bit yang dimengeti oleh komputer.
Contoh : 1000110010100000
Berarti instruksi yang memberi perintah
kepada komputer untuk menjumlahkan 2
angka
Pada masa awal, penterjemahan dilakukansecara manual,sehingga banyak menimbulkankesalahan. Untuk itu diciptakan bahasapemograman pertama, yang dinamakan bahasaasembler. Contoh: programer menulis (asembler)
Add A,B
Dan assembler akan menerjemahkan menjadi
1000110010100000
Meskipun demikian, asembler mengharuskanprogramer menuliskan satu baris untuk setiapinstruksi yang akan dikerjakan olehmesin,sehingga programmer harus berpikirseperti mesin
Untuk itu diciptakan bahasa pemograman tingkat
tinggi dan kompiler yang dapat menerjemahkan
program dalam bahasa manusia ke dalam
instruksi
Contoh: programer menulis (bahasa tingkat tinggi)
A + B
Kompiler akan mengubahnya menjadi statement bahasa
asembler
Add A,B
Dan assembler akan menerjemahkan menjadi
1000110010100000
Gambar berikut menunjukan tingkat hubungan
antar bahasa pemograman
Program C diterjemahkan ke bahasa
Asembler dan dikodekan ke bahasa
mesin
Bahasa
tingkat
tinggi (C)
Swap (int v[ ]. Int k){ int temp:
temp = v[k];v[k] = v[k+1];v[k+1] = temp;
}
Bahasa
Asembler
(MIPS)
Swap muli $2, $5, 4add $2, $4, $2lw $15, 0 ($2)lw $16, 4 ($2)sw $16, 0 ($2)sw $15, 4($2)jr $31
KOM
PILE
R
ASE
MBL
ER
Program
bahasa mesin
biner (MIPS)
00000000101000010000000011000111000001100110001000010001100111100001
Setiap komputer dapat melakukan
operasi aritmatika, notasi bahasa
asembler MIPS
add a, b, c
Memberi perintah kepada komputer untuk
melakukan penjumlahan 2 variabel, b
dan c, dan menyimpan hasilnya pada
variabel a
Setiap instruksi aritmatika MIPS hanya
melakukan 1 operasi dan harus berisi
tepat 3 variabel.
Sebagai contoh, kita akan menjumlah
variabel b,c,d dan e pada variabel a
add a,b,c # hasil penjumlahan b dan c disimpan di a
add a,a,d # hasil penjumlahan b ,c dan d disimpan di a
add a,a,e # hasil penjumlahan b, c, d dan e disimpan di a
CONTOH
a = b + c;
d = a – e;add a,b,c # hasil penjumlahan b dan c
disimpan di a
sub d,a,e # hasil pengurangan a dengan e disimpan di d
f = (g + h) – (i+j);
add t0,g,h #hasil penjumlahan g dan h disimpan pada variabelsementara t0
add t1, i,j #hasil penjumlahan i dan j disimpan pada variabelsementara t1
sub f,t0,t1 #hasil pengurangan t0 dengan t1 disimpan divariabel f
KATEGORI INSTRUKSI CONTOH ARTI KOMENTAR
ARITMATIKA
add Add a,b,c A = b+ c Selalu 3
operand
subtract Sub a,b,c A = b-c Selalu 3
operandTidak seperti program pada bahasa tingkat
tinggi, operand pada instruksi aritmatika
pada asembler sangat terbatas, mereka
harus berasal dari suatu bilangan terbatas
di lokasi khusus yang dibangun secara
langsung didalam hardware dan dinamakan
register. Besarnya register pada arsitektur
MIPS adalah 32 bit, sekelompok 32 bit
register yang kerap kali muncul dinamakan
Pembatasan jumlah 32 register dikarenakan semakin besar jumlah register maka clock cycle time (waktu putaran jam) akan bertambah karena untuk berpindah ke tempat yang lebih jauh memerlukan sinyal elektronik yang lebih panjang.
Meskipun dapat secara langsung menulis instruksi menggunakan angka untuk register, 0 sd 31, konvensi MIPS menggunakan tanda dolar diikuti oleh 2 karakter nama,untuk merepresentasikan register.
$s0, $s1,….untuk register yang berhubungan dengan variabel pada program C dan Java
$t0, $t1,…..untuk register temporary yang dibutuhkan untuk mengkompile program menjadi instruksi MIPS
f = (g + h) – (i+j);
Variabel f,g,h,I dan j dihubungkandengan register $s0, $s1, $s2, $s3 dan $s4
add $t0,$s1,$s2 #register t0 berisi g + h
add $t1,$s3,$s4 #register t1 berisi i+j
sub $s0,St0,t$1 #hasil pengurangan t0 dengan t1 disimpan divariabel f
MIPS harus menyertakan instruksi yang
mentransfer data antara memory dan register, hal
tersebut dinamakan data transfer instruction.
Untuk mengakses sebuah word dalam memory,
instruksi harus menyediakan alamat
PROCESSO
R
MEMORY
100
10
101
1
ALAMAT DATA
3
2
1
0
Instruksi transfer data yang melakukan kopi data
dari memori ke register dinamakan load.
Formatnya adalah nama operasi diikuti oleh
register yang akan disimpan, kemudian konstanta
dan register untuk mengakses memori. Nama
MIPS untuk instruksi ini adalah lw, kepanjangan
dari load word
Instruksi untuk menyimpan data dinamakan store,
ini melakukan kopi data dari register ke memori.
Format sama dengan load. Nama MIPS untuk
instruksi ini adalah sw, kepanjangan dari store
word
Anggaplah, A adalah array dari 100 word dan
kompiler berhubungan dengan variabel g dan h
melalui register $s1 dan $s2. asumsikan pula
alamat awal atau base address dari array adalah
$s3.
g = h + A[8]
Salah satu dari operand adalah memori sehingga
hal pertama yang harus dilakukan adalah
memindahkan A[8] ke sebuah register. Alamat
dari elemen array ini adalah jumlah alamat awal
($s3) ditambah bilangan yang digunakan untuk
menunjuk elemen 6. data harus disimpan ke
dalam register temporay
lw $t0,8($s3) #reg temporay $t0 mendapat A[8]
Instruksi harus menambahkan h (yang ada di
$s2) ke A[8]($t0) dan menaruh hasilnya pada
register yang berkaitan dengan g (dihubungkan
dengan $s1)
add $s1,$s2,$t0 #g = h + a[8]
Konstanta dalam instruksi transfer data
dinamakan offset dan register yang ditambahkan
untuk membentuk alamat dinamakan register
dasar base register
Anggaplah, variabel h berhubungan dengan register $s2 dan alamat awal atau base address dari array adalah $s3. A [12] = h + A[8]
Instruksi berikutnya sama dengan instruksi pada load, hanya saja saat ini digunakan ofset yang asli untukpengalamatan byte pada instruksi lw untuk memilihA[8],dan menaruh hasilnya di $t0
lw $t0,32($s3) #reg temporary $t0 mendapatA[8]
add $t0, $s2,$t0 #reg temporary $t0 mendapat h + A[8]
sw $t0,48($s3) #menyimpan h+A[8] kembali keA12]
Instruksi akhir menimpan hasil ke A[12] menggunakanoffset 48 dan $s3 sebagai base
Jika ingin mengambil konstanta (konstanta selalu
ditaruh di memori ketika program dipanggil) dari
memori, contoh: menambah konstanta 4 ke register $s3
lw $t0, AddrConstant4($s1) # $t0 = konstanta 4
add $s3, $s3, $t0 # $s3 = $s3 + $t0 ($t0 == 4)
Asumsikan bahwa AddrConstant4 adalah alamat
memori konstanta 4
Alternatif lain adalah menggunakan instruksi
penjumlah cepat dengan satu konstanta
operand, atau yang dikenal sebagai add immediate
atau addi
add $s3, $s3, 4 # $s3 = $s3 + 4
NAMA CONTOH KOMENTAR
32
register
$s0, $s1, …
$t0, $t1, …
Lokasi cepat untuk data. Dalam
MIPS, data harus terdaftar,untuk dpt
melakukan operasi aritmatika
230
memory
word
Memory[0],
Memory[4],…,
Memory[4294967292]
Diakses hanya oleh instruksi transfer
data dalam MIPS. MIPS
mempergunakan pengalamatan byte,
sehingga urutan pengalamatan word
per 4. memori memegang struktur
data, array dan register terbuang
KATEGO
RIINSTRUKSI CONTOH ARTI KOMENTAR
ARITMATIK
A
ADD Add
$s1,$s2,$s3
$s1=$s2+$s3 3 operand, data
di register
SUBTRACT Sub
$s1,$s2,$s3
$s1=$s2-$s3 3 operand, data
di register
ADD
IMMEDIATE
Addi
$s1,$s2,100
$s1=$s2+100 Penambahan
konstanta
TRANSFE
R DATA
LOAD WORD lw
$s1,100($s2)
$s1=memory
[$s2+100]
Data dari memori
ke register
STORE
WORD
sw
$s1,100($s2)
memory
[$s2+100] =$s1
Data dari register
ke memori