Kamis, 17 Oktober 2013

Floating Point Arithmetic




5.1. Bentuk Bilangan Floating Point
Bilangan Floating Point memiliki bentuk umum : + m * b e , dimana m
(disebut juga dengan mantissa), mewakili bilangan pecahan dan umumnya dikonversi
ke bilangan binernya, e mewakili bilangan exponentnya,
sedangkan b mewakili radix
(basis) dari exponent.
Gambar 5.1.
Contoh :
Pada gambar diatas, menunjukkan tentang panjang bit pada bilangan floating point m
= 23 bit, e = 8 bit, dan S (bit sign) = 1. Jika nilai yang tersimpan di S adalah 0, maka
bilangan tersebut adalah positif dan jika nilai yang tersimpan pada S adalah 1, maka
bilangan tersebut adalah negatif.
Bilangan exponent pada contoh diatas, hanya dapat digunakan pada bilangan positif 0
hingga 255. Untuk dapat menggunakan bilangan exponent negatif dan positif, nilai
bulat yang disebut dengan bias, dikurangkan dengan bilangan pada kolom exponent
dan menghasilkan bilangan exponent akhir. Misalkan pada contoh diatas
menggunakan bias = 128, maka bilangan exponent akhirnya memiliki range antara 128
(disimpan sebagai 0 pada kolom exponent) hingga +127 (disimpan sebagai 255
pada kolom exponent). Berdasarkan bentuk seperti ini, bilangan exponent +4 dapat
digunakan dengan menyimpan 132 pada kolom exponent, sedangkan bilangan
exponent 12
dapat digunakan dengan menyimpan 116 pada kolom exponent.
Anggap b = 2, maka bilangan floating point seperti 1,75 dapat menggunakan salah
satu dari bentuk umum seperti pada gambar berikut:
Modul 5
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
2
Gambar 5.2.
5.2. Macammacam
bentuk bilangan floating point
Untuk mempermudah operasi bilangan floating point dan menambah tingkat
presisinya, maka bilangan tersebut dibuat dalam bentuk ternormalisasi (normalized
forms). Suatu bilangan floating point telah ternormalisasi jika most significant bit
(MSB) dari mantissanya adalah 1. Karena itu, diantara ketiga bentuk diatas dari
bilangan 1,75, maka bentuk yang telah ternormalisasi adalah bentuk yang paling atas,
dan disarankan untuk digunakan.
Karena nilai MSB dari bilangan Floating Point yang telah ternormalisasi
selalu 1, maka bit ini tidak disimpan, sehingga nilai mantissa yang tersimpan adalah
1.m. Sehingga untuk bilangan floating point bukan nol yang ternormalisasi memiliki
bentuk (1)
S * (1.m) * 2 e128
5.3. Aritmetika Floating Point Penjumlahan / Pengurangan
Hal yang sulit dari penjumlahan dua bilangan exponent adalah jika bilanganbilangan
tersebut memiliki bentuk exponensial yang berbeda. Unutk memecahkannya,
maka sebelum ditambahkan bilangan exponensialnya harus disetarakan terlebih
dahulu, atau bilangan dengan nilai exponent lebih kecil disamakan dulu ke bilangan
exponent yang sama dengan bilangan lain.
Langkahlangkah
yang dilakukan untuk menambah/mengurangkan dua
bilangan floating point
1. Bandingkan kedua bilangan, dan ubah ke bentuk yang sesuai pada bilangan
dengan nilai exponensial lebih kecil
2. Lakukan operasi penjumlahan / pengurangan
Modul 5
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
3
3. Lakukan normalisasi dengan ’menggeser’ nilai mantissa dan mengatur nilai
exponensialnya
Contoh : Jumlahkan dua bilangan floating point 1,1100 * 2 4 dan 1,1000 * 2 2
1. Sesuaikan : 1,1000 * 2 2 diubah menjadi 0,0110 * 2 4
2. Jumlahkan : hasil penjumlahan 10,0010 * 2 4
3. Normalisasi : hasil setelah dinormalisasi adalah 0,1000 * 2 6 ( dianggap bit
yang diijinkan setelah koma adalah 4)
Operasi penjumlahan/pengurangan dua bilangan floating point diilustrasikan
dengan skema seperti pada gambar berikut :
Gambar 5.3. Skema penjumlahan/pengurangan bilangan floating point
5.4. Perkalian
Perkalian dari dua bilangan floating point dengan bentuk X = mx * 2 a dan Y
= mx * 2 b setara dengan X * Y = (mx * my) * 2 a+b
Algoritma umum untuk perkalian dari bilangan floating point terdiri dari tiga langkah
:
1. Hitung hasil exponensial dengan menjumlahkan nilai exponent dari kedua
bilangan
2. Kalikan kedua bilangan mantissa
3. Normalisasi hasil akhir
Modul 5
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
4
Contoh : Perkalian antara dua bilangan floating point X = 1,000 * 2 2
dan Y = 1,010
*
2 1
1. Tambahkan bilangan exponennya : 2
+ (1)
= 3
2. Kalikan mantissa: 1,0000 * 1,010
= 1,010000
Hasil perkaliannya adalah 1,0100
* 2 3
Perkalian dari dua bilangan floating point diilustrasikan menggunakan skema seperti
tampak pada gambar berikut :
Gambar 5.4. Skema perkalian bilangan floating point
5.5. Pembagian
Pembagian dari dua bilangan floating point dengan bentuk X = mx * 2 a dan
Y = mx * 2 b setara dengan X / Y = (mx / my) * 2 ab
Algoritma umum untuk pembagian dari bilangan floating point terdiri dari tiga
langkah :
1. Hitung hasil exponensial dengan mengurangkan nilai exponent dari kedua
bilangan
2. Bagi kedua bilangan mantissa
3. Normalisasi hasil akhir
Contoh : Pembagian antara dua bilangan floating point X = 1,0000 * 2 2
dan
Y = 1,0100
* 2 1
1. Kurangkan bilangan exponennya : 2
– (1)
= 1
2. Bagi mantissa: 1,0000 / 1,0100
= 0,1101
Modul 5
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
5
Hasil pembagiannya adalah 0,1101
* 2 1
Pembagian dari dua bilangan floating point diilustrasikan menggunakan skema seperti
tampak pada gambar berikut :
Gambar 5.5. Skema pembagian bilangan floating point
5.6. Floating Point standard IEEE
IEEE membuat dua bentuk bilangan floating point standard. Bentuk basic
dan bentuk extended. Pada tiap bentuk tersebut, IEEE menentukan dua format, yaitu
singleprecision
dan double precision format. Single precision format adalah model
32bit sedangkan double precision format adalah 64bit. Pada single extended format
setidaknya menggunakan 44 bit, sedangkan pada double extended format setidaknya
menggunakan 80 bit.
Pada single precision format, mengijinkan penggunaan bit tersembunyi,
kolom exponentnya adalah 8bit. Bentuk single precision ditunjukkan pada gambar
berikut.
Gambar 5.6.
IEEE single precision Format
Jika jumlah bit bilangan exponent adalah 8, maka nilainya memiliki 256
kombinasi, diantara angkaangka
tersebut, dua kombinasi digunakan sebagai nilai
khusus:
1. e = 0 bernilai nol (jika m = 0) dan nilai terdenormalisasi (jika m ≠ 0)
Modul 5
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
6
2. e = 255 bernilai + ∞ (jika m = 0) dan nilai tak terdefinisi (jika m ≠ 0)
m = 0 m ≠ 0
e = 0 0 Terdenormalisasi
e = 255 + ∞ Tidak Terdefinisi
Tabel 5.1.
IEEE Double Precision Format
Bentuk ini memiliki kolom exponent 11 bit dan kolom nilai mantissa sebesar
52 bit. Bentuknya seperti tampak pada gambar.
Gambar 5.7. IEEE double precision format
Karakteristik SinglePrecision
Double Precision
Panjang dalam bits 32 64
Bagian pecahan dalam bits 23 52
Bit tersembunyi 1 1
Panjang Exponent dlm bits 8 11
Bias 127 1023
Range 2 128 ≈ 3,8 x 10 38 2 1024 ≈ 9,0 x 10 307
Nilai ternormalisasi terkecil 2 126
≈ 10 38
2 1022
≈ 10 308
Tabel 5.2. Karakteristik dari IEEE single dan double floating point format

ALU (Arithmetic and Logic Unit)



Unit Aritmetika dan Logika merupakan bagian pengolah bilangan dari sebuah
komputer. Di dalam operasi aritmetika ini sendiri terdiri dari berbagai macam operasi
diantaranya adalah operasi penjumlahan, pengurangan, perkalian, dan pembagian.
Mendesain ALU juga memiliki cara yang hampir sama dengan mendesain enkoder,
dekoder, multiplexer, dan demultiplexer. Rangkaian utama yang digunakan untuk
melakukan perhitungan ALU adalah Adder.
4.1.1. Adder
Rangkaian ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan
bilangan dinamakan dengan Adder. Karena Adder digunakan untuk memproses
operasi aritmetika, maka Adder juga sering disebut rangkaian kombinasional
aritmetika. ALU akan dijelaskan lebih detail pada bab 3. Ada 2 jenis Adder :
1. Rangkaian Adder yang hanya menjumlahkan dua bit disebut Half Adder.
2. Rangkaian Adder yang menjumlahkan tiga bit disebut Full Adder.
3. Rangkaian Adder yang menjumlahkan banyak bit disebut paralel Adder
4.1.1.1. Half Adder
Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masingmasing
hanya terdiri dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap.
1. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 0.
2. Jika A=0 dan B=1 dijumlahkan, hasilnya S (Sum) = 1.
3. Jika A=1 dan B=1 dijumlahkan, hasilnya S (Sum) = 0. dengan nilai pindahan
Cy(Carry Out) = 1.
Dengan demikian, half adder memiliki 2 masukan (A dan B) dan dua keluaran (S dan
Cy).
A B S Cy
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Tabel 4.1.
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
2
Dari tabel diatas, terlihat bahwa nilai logika dari Sum sama dengan nilai logika dari
gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika
AND. Dari tabel tersebut, dapat dibuat rangkaian half adder seperti pada gambar
berikut:
Gambar 4.1.
4.1.1.2. Full Adder
Full adder mengolah penjumlahan untuk 3 bit bilangan atau lebih (bit tidak terbatas),
oleh karena itu dinamakan rangkaian penjumlah lengkap. Perhatikan tabel kebenaran
dari Full adder berikut :
A B C S Cy
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Tabel 4.2.
Dari tabel diatas dapat dibuat persamaan boolean sebagai berikut :
S = A B C + A B C + A B C + A B C
S = A Å B Å C
Cy = A B C + A B C + A B C + A B C
Dengan menggunakan peta karnaugh, Cy dapat diserhanakan menjadi :
Cy = AB + AC + BC
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
3
Gambar 4.2.
4.1.1.3. Parallel Adder
Parallel Adder adalah rangkaian Full Adder yang disusun secara parallel dan
berfungsi untuk menjumlah bilangan biner berapapun bitnya, tergantung jumlah Full
Adder yang diparallelkan. Gambar berikut menunjukkan Parallel Adder yang terdiri
dari 4 buah Full Adder yang tersusun parallel sehingga membentuk sebuah penjumlah
4 bit.
FA
FA
FA
FA
S1
S2
S3
S4
Cy
Cy
Cy
Over Flow
Cin
Cin
Cin
Cin
A1
A2
A3
A4
B1
B2
B3
B4
Gambar 4.3.
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
4
4.2.1. Penjumlahan
Komputer hanya dapat melakukan proses aritmetika menggunakan bilangan biner.
Semua sistem bilangan harus diubah terlebih dahulu ke biner agar dapat diproses.
Proses yang biasa dilakukan oleh komputer untuk menjumlahkan sistem bilangan
desimal biasanya adalah menyandikan ke 8421BCD terlebih dahulu sebelum
dijumlahkan. Sebelum mempelajari tentang penjumlahan pada 8421BCD, ada baiknya
mengetahui cara menjumlahkan bilangan biner.
a. Penjumlahan Biner
Ada 4 kondisi yang terjadi pada penjumlahan biner yaitu apabila 0 + 0, 0 + 1, 1 + 0,
dan 1 + 1. Jika yang terjadi adalah 1 + 1, kita tidak dapat menyatakan hasil jumlah
dalam satu digit. Tetapi kita harus melakukan penyimpanan (Carry Out) kedalam
kolom yang lebih tinggi. Ini berlaku untuk seluruh sistem bilangan. Sebagai contoh
pada bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8 dengan carry out = 1.
Contoh :
1. 102 + 102
1 Carry out
10
10 +
100
2. 01002 + 01112
1 Carry
0100
0111 +
1011
3. 111112 + 11112 + 111012 + 101112
3 3 3 2 2 Carry out
1 1 1 1 1
0 1 1 1 1
1 1 1 0 1
1 0 1 1 1 +
1 1 0 0 0 1 0 2
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
5
b. Penjumlahan 8421BCD
Sandi 8421BCD hanya menggunakan bilangan biner untuk 0 sampai 9, karena yang
disandikan hanya 1 digit angka desimal. Dalam penjumlahan yang perlu diperhatikan
adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan auxillary carry (Carry dari
bilangan keempat LSB) maupun carry dari MSB.
Berikut adalah aturan penjumlahan sandi 8421BCD:
Jika
jumlah biner dan jumlah BCD sama, yaitu AC (Auxillary Carry) = 0 dan Carry
= 0 maka tidak diperlukan aturan tambahan.
Contoh :
Bilangan 1 = 0 1 1 0 0 0 1 0 (BCD) = 6 2 (desimal)
Bilangan 2 = 0 0 1 0 0 1 0 1 (BCD) = 2 5 (desimal) +
Biner = 1 0 0 0 0 1 1 1 (Cy=0; AC = 0)
BCD = 1 0 0 0 0 1 1 1 = 8 7 (desimal)
Jika
jumlah biner tidak sama dengan jumlah desimal maka memerlukan pengaturan
tambahan :
Jika Auxillary Carry (AC) = 0 atau AC = 1 dan Carry (Cy) = 0 dimana hasil
penjumlahan binernya lebih dari 9 desimal, maka perlu ditambahkan 6 pada nible
rendah tersebut, dan tambahkan 1 pada nible yang lebih tinggi.
Contoh :
1 1 1
Bilangan 1 = 0 0 1 1 0 1 1 1 (BCD) = 3 7 (desimal)
Bilangan 2 = 0 0 1 0 0 1 1 0 (BCD) = 2 6 (desimal) +
Biner = 0 1 0 1 1 1 0 1
+ 1 & + 6 = 0 0 0 1 0 1 1 0 (Cy=0; AC = 0)
BCD = 0 1 1 0 0 0 1 1 = 6 3 (desimal)
4.2.2. Pengurangan
Pengurangan pada dasarnya merupakan penjumlahan, yaitu penjumlahan dengan
bilangan negatif.
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
6
500 – 255 = 245 (Pengurangan)
500 + ()
255 = 245 (Penjumlahan)
Komputer hanya bekerja pada bilangan “0” dan “1” dan tidak mengenal bilangan
negatif. Untuk menunjukkan bilangan negatif, komputer menggunakan tanda modulus
(Modulus Sign). Pada penjumlahan desimal tanda modulus yang digunakan adalah
“0” untuk bilangan positif dan “9” untuk bilangan negatif. Untuk bilangan negatif,
pada operasi penjumlahannya, harus dikomplemen. Komplemen yang digunakan pada
bilangan desimal adalah komplemen10
dan komplemen9.
Pengurangan Bilangan Desimal
Komplemen10
Pada komplemen10,
bilangan negatif dikurangkan 9, kemudian ditambahkan 1 pada
bit terakhir. Pada penjumlahannya, bila ada carry, carry tersebut dapat dihilangkan.
Tanda modulus ikut dijumlahkan.
Contoh :
Komplemen10
dari 255.
2
5 510 = (9) 7 4 510 (angka 9 menunjukkan tanda modulusnya).
5 0 0 (0) 5 0 0
2 5 5 (
9) 7 4 5 +
2 4 5 1 (0) 2 4 5
Cy Dihilangkan
Komplemen9
Pada komplemen9,
bilangan negatif dikurangkan 9. Bila ada carry, maka carry ikut
dijumlahkan pada hasil akhir.
Contoh :
Komplemen9
dari 255.
2
5 510 = (9) 7 4 410 (angka 9 menunjukkan tanda modulusnya).
5 0 0 (0) 5 0 0
2 5 5 (
9) 7 4 4 +
2 4 5 1 (0) 2 4 4
1 +(Cy)
(0) 2 4 5
Cy Ditambahkan
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
7
Bila hasil akhir bernilai negatif, maka nilainya harus dikomplemen lagi (Berlaku
untuk komplemen10
dan komplemen9).
Jika komplemen10,
maka hasil akhir
setelah dikomplemen harus ditambah 1. Jika komplemen10,
hasil akhirnya
merupakan hasil sebenarnya (tidak perlu ditambah 1).
Contoh :
Komplemen10
dari 500.
5
0 010 = (9) 5 0 010 (angka 9 menunjukkan tanda modulusnya).
2 5 5 (0) 2 5 5
5 0 0 (
9) 5 0 0 +
2
4 5 (9) 7 5 5 (9 menunjukkan negatif)
2 4 4 + 1
(9) 2 4 5
Komplemen9
dari 500.
5
0 010 = (9) 4 9 910 (angka 9 menunjukkan tanda modulusnya).
2 5 5 (0) 2 5 5
5 0 0 (
9) 4 9 9 +
2
4 5 (9) 7 5 4 (9 menunjukkan negatif)
2 4 5
(9) 2 4 5
Pengurangan Bilangan Biner
Pada penjumlahan biner, komplemen yang digunakan adalah komplemen2
dan
komplemen1.
Untuk mendapatkan komplemen bilangan biner, cukup dengan
membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan jika “1” dibalik menjadi
“0”. Komplemen2
mirip dengan komplemen10
pada bilangan desimal (Carry
dihilangkan), sedangkan komplemen1
mirip dengan komplemen9
(Carry
ditambahkan pada hasil akhir).
· Komplemen2
Contoh :
Pengurangan antara 910 (10012) dengan 510 (01012)
Komplemen2
dari –5 (0101).
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
8
0 1 0 1 = (1) 1 0 1 1 (angka 1 menunjukkan tanda modulusnya).
9 (0) 1 0 0 1
5 (
1) 1 0 1 1 +
4 1 (0) 0 1 0 0
Cy Dihilangkan
· Komplemen1
Contoh :
Komplemen1
dari –5 (0101).
0 1 0 1 = (1) 1 0 1 0 (angka 1 menunjukkan tanda modulusnya).
9 (0) 1 0 0 1
5 (
1) 1 0 1 0 +
4 1 (0) 0 0 1 1
1
(0) 0 1 0 0
Cy Ditambahkan
Bila hasil akhir bernilai negatif, maka nilainya harus dikomplemen lagi (Berlaku
untuk komplemen2
dan komplemen1).
Jika komplemen2,
maka hasil akhir setelah
dikomplemen harus ditambah 1. Jika komplemen1,
hasil akhirnya merupakan hasil
sebenarnya (tidak perlu ditambah 1).
Contoh :
Pengurangan antara 510 dengan 910
Komplemen2
dari –9.
1 0 0 1 = (1) 0 1 1 1 (angka 1 menunjukkan tanda modulusnya).
5 (0) 0 1 0 1
9 (
1) 0 1 1 1 +
4
(1) 1 1 0 0 (1 menunjukkan negatif)
0 0 1 1 + 1
(1) 0 1 0 0
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
9
Komplemen1
dari –9.
1 0 0 1 = (1) 0 1 1 0 (angka 1 menunjukkan tanda modulusnya).
5 (0) 0 1 0 1
9 (
1) 0 1 1 0 +
4
(1) 1 0 1 1 (1 menunjukkan negatif)
0 1 0 0
(1) 0 1 0 0
4.2.3. Perkalian
Perkalian antara bilangan biner adalah perkalian yang paling mudah diantara sistem
bilangan lainnya.
9 1 0 0 1
10 x 1 0 1 0 x
90 0 0 0 0
1 0 0 1
0 0 0 0
1 0 0 1 +
1 0 1 1 0 1 0
64 0 16 8 0 2 0 = 90
Pada Teknik Komputer, perkalian dilakukan menggunakan register geser kanan (Shift
Right Register). Perhatikan contoh berikut :
Register A untuk menyimpan data yang akan dikalikan (Multiplicand).
Register B untuk menyimpan data pengali (Multiplier).
Register P untuk menyimpan hasil perkalian.
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
10
9 X 10
Register A Register B Register P
1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0
M M = 0, Reg. P tidak diubah
Geser Reg B & P 1 bit kekanan
1 0 0 1 1 0 1 0 0 0 0 0 0 0 0
M M = 1, Reg A ditambahkan pada P di
MSBnya.
1 0 0 1 0 0 0 0
Geser Reg B & P 1 bit kekanan
1 0 0 1 1 0 0 1 0 0 1 0 0 0
M M = 0, Reg. P tidak diubah
Geser Reg B & P 1 bit kekanan
1 0 0 1 1 0 0 1 0 0 1 0 0
M M = 1, Reg A ditambahkan pada P di
MSBnya
1 0 1 1 0 1 0 0
Reg. P geser lagi
0 1 0 1 1 0 1 0
0 64 0 16 8 0 2 0 =90
4.2.4. Pembagian
Kebalikan dari perkalian, pembagian (Division) adalah suatu bentuk dari pengurangan
yang dilakukan berulangulang.
Dan proses ini juga dapat dilakukan pada rangkaian
logika dengan cara pengurangan dan penggeseran ke kiri (menggunakan shiftleft
register). Berikut adalah aturan dari pembagian:
Kurangkan bilangan pembagi (Divisor) dari MSB bilangan yang akan dibagi
(Dividend), lihat hasil pengurangan.
Bila hasilnya 1 atau positif :
Berarti hasil pembagian (Product) adalah 1. Setelah itu hasil pengurangan digeser
kekiri satu bit, dan dimulai lagi pengurangan oleh bilangan pembagi (Divisor).
Modul 4
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
11
Bila hasilnya 0 atau negatif :
Berarti hasil pembagian (Product) adalah 0. Dalam hal ini sebelum digeser ke kiri
harus ditambah dulu dengan bilangan pembagi (Divisor). Setelah digeser ke kiri satu
bit, dimulai lagi proses pengurangan oleh bilangan pembagi. Pengurangan oleh
bilangan pembagi dilakukan dengan penjumlahan komplemen2.
Bila dalam
penjumlahan tersebut terdapat pindahan (Carry), maka carry tersebut diabaikan.
Perhatikan contoh berikut :
1010 : 410 = 10102 : 1004
Pembagi Yang Dibagi Hasil Bagi Keterangan
(0) 1 0 0 (0) 1 0 1 0 Kurangkan
bil. pembagi
(1) 1 0 0
1 (0) 0 0 1 0 1 Hasil
positif, hasil bagi = 1
(0) 0 1 0 0 1 Digeser
ke kiri satu bit
(1) 1 0 0 Kurangkan
bil. pembagi
(1) 1 1 0 0 1 0 Hasil
negatif, hasil bagi = 0
(0) 1 0 0
1 (0) 0 1 0 0
(0) 1 0 0 0 1 0 Digeser
ke kiri satu bit
(1) 1 0 0 Kurangkan
bil. pembagi
1 (0) 0 0 0 0 1 0 1 Hasil
positif, hasil bagi = 1
Catatan : Karena ada hasil pengurangan yang negatif, maka digit yang dihasilkan
setelah itu adalah digit pecahan, sehingga hasil yang benar 10,12 atau 2,510.

Rabu, 16 Oktober 2013

Rangkaian Logika Kombinasional dan Sequensial



Rangkaian Logika secara garis besar dibagi menjadi dua, yaitu rangkaian logika
Kombinasional dan rangkaian logika Sequensial. Rangkaian logika Kombinasional
adalah rangkaian yang kondisi keluarannya (output) dipengaruhi oleh kondisi
masukan (input).
Struktur rangkaian kombinasional secara fisik adalah seperti gambar berikut:
Gambar 3.1.
Sedangkan rangkaian logika Sequensial adalah rangkaian yang kondisi keluarannya
dipengaruhi oleh kondisi masukan dan keadaan keluaran sebelumnya atau dapat juga
dikatakan rangkaian yang bekerja berdasarkan urutan waktu. Ciri rangkaian logika
sequensial yang utama adalah adanya jalur umpan balik (feed back) di dalam
rangkaiannya.
3.1. Rangkaian Logika Kombinasional
Rangkaian logika kombinasional yang akan dibahas adalah Enkoder, Dekoder,
Multiplexer, dan Demultiplexer.
3.1.1. Enkoder
Enkoder adalah rangkaian logika kombinasional yang berfungsi untuk mengubah atau
mengkodekan suatu sinyal masukan diskrit menjadi keluaran kode biner.
Enkoder disusun dari gerbanggerbang
logika yang menghasilkan keluaran biner
sebagai hasil tanggapan adanya dua atau lebih variabel masukan. Hasil keluarannya
dinyatakan dengan aljabar boole, tergantung dari kombinasikombinasi
gerbang yang
digunakan. Sebuah Enkoder harus memenuhi syarat perancangan m < 2 n . Variabel m
adalah kombinasi masukan dan n adalah jumlah bit keluaran sebuah enkoder. Satu
kombinasi masukan hanya dapat mewakili satu kombinasi keluaran. Perhatikan
contoh tabel fungsi keluaran Enkoder berikut :
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
2
Input Output
I0 I1 I2 I3 I4 I5 I6 I7 Y2 Y1 Y0
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
Tabel 3.1. Fungsi keluaran enkoder 8ke3
Dari tabel diatas, dapat dibuat fungsi keluaran sebagai berikut :
Y0 = I1 + I3 + I5 + I7
Y1 = I2 + I3 + I6 + I7
Y2 = I4 + I5 + I6 + I7
Dari persamaan tersebut, maka rangkaian gerbangnya dapat dibuat seperti pada
gambar berikut :
Gambar 3.2.
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
3
Gambar 3.3.
3.1.2. Dekoder
Rangkaian Dekoder mempunyai sifat yang berkebalikan dengan Enkoder yaitu
merubah kode biner menjadi sinyal diskrit. Sebuah dekoder harus memenuhi syarat
perancangan m < 2 n . Variabel m adalah kombinasi keluaran dan n adalah jumlah bit
masukan. Satu kombinasi masukan hanya dapat mewakili satu kombinasi keluaran.
Perhatikan contoh tabel fungsi keluaran dekoder berikut :
X Y F0 F1 F2 F3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
Tabel 3.2. Fungsi keluaran dekoder 2ke4
Dari tabel diatas, dapat dibuat fungsi keluaran sebagai berikut :
F0 = X . Y
F1 = X . Y
F2 = X . Y
F3 = X . Y
Dari persamaan tersebut, maka rangkaian gerbangnya dapat dibuat seperti pada
gambar berikut :
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
4
Gambar 3.4.
Membuat suatu Enkoder dan dekoder dapat dilakukan dengan dua cara yaitu pertama,
menggunakan gerbanggerbang
dasar yang disusun membentuk fungsi Enkoder atau
dekoder, kedua, menggunakan IC Enkoder atau dekoder yang banyak terdapat
dipasaran. IC dekoder diaplikasikan pada seven segment, pengalamatan memori, dan
sebagainya.
3.2. Rangkaian Logika Sequensial
Flipflop
adalah rangkaian utama dalam logika sequensial. Counter, Register,
Memory, serta rangkaian sequensial lainnya disusun dengan menggunakan flipflop
sebagai komponen utama. Flipflop
adalah rangkaian yang mempunyai fungsi
pengingat (memory). Artinya rangkaian ini mampu melakukan penyimpanan data
sesuai dengan kombinasi masukan yang diberikan kepadanya. Ada beberapa macam
flipflop
yang akan dibahas yaitu RS
flipflop,
JK
flipflop,
D flipflop,
dan T flipflop.
Ciri utama dari flipflop
adalah keluaran Q dan Q adalah selalu berlawanan /
stabil (jika Q = 0 maka Q = 1, Jika Q = 1 maka Q =0). Karena kondisi dua keadaan
stabil ini rangkaian flipflop
dinamakan juga dengan rangkaian bistabil.
3.2.1. RS
flipflop
flipflop
ini terdiri dari dua masukan, yaitu S (set) dan R (reset). Serta dua
keluarannya yaitu Q dan Q . Kondisi Set adalah kondisi ketika Q berlogika 1.
Sedangkan kondisi Reset adalah kondisi ketika Q berlogika 0. Perhatikan gambar
berikut :
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
5
Gambar 3.5.
Untuk menganalisanya, asumsikan atau ambil permisalan keluaran sebelumnya.
1. Saat S = 0 dan R = 0. Misalkan keluaran sebelumnya Qn = 1 dan n Q = 0. maka
Qn+1 = 1 dan n 1 Q + = 0.
2. Saat S = 0 dan R = 0. Misalkan keluaran sebelumnya Qn = 0 dan n Q = 1. maka
Qn+1 = 0 dan n 1 Q + = 1. Dari dua analisa yang ada (1 dan 2), dapat disimpulkan
bahwa saat S = 0 dan R = 0, maka keluarannya adalah sama dengan keluaran
sebelumnya.
3. Saat S = 0 dan R = 1. Misalkan keluaran sebelumnya Qn = 1 dan n Q = 0. maka
Qn+1 = 0 dan n 1 Q + = 1.
4. Saat S = 0 dan R = 1. Misalkan keluaran sebelumnya Qn = 0 dan n Q = 1. maka
Qn+1 = 0 dan n 1 Q + = 1. Dari dua analisa yang ada (3 dan 4), dapat disimpulkan
bahwa saat S = 0 dan R = 1, maka keluaran Q = 0.
5. Saat S = 1 dan R = 0. Misalkan keluaran sebelumnya Qn = 1 dan n Q = 0. maka
Qn+1 = 1 dan n 1 Q + = 0.
6. Saat S = 1 dan R = 0. Misalkan keluaran sebelumnya Qn = 0 dan n Q = 1. maka
Qn+1 = 1 dan n 1 Q + = 0. Dari dua analisa yang ada (5 dan 6), dapat disimpulkan
bahwa saat S = 1 dan R = 0, maka keluaran Q = 1.
7. Saat S = 1 dan R = 1. Misalkan keluaran sebelumnya Qn = 1 dan n Q = 0. maka
Qn+1 = 1 dan n 1 Q + = 1.
8. Saat S = 1 dan R = 1. Misalkan keluaran sebelumnya Qn = 0 dan n Q = 1. maka
Qn+1 = 1 dan n 1 Q + = 1. (Ingat ciri utama flipflop
bahwa kondisi keluaran Q
dan Q harus berlawanan). Dari dua analisa yang ada (7 dan 8), dapat
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
6
disimpulkan bahwa flipflop
RS
tidak diperbolehkan / dilarang saat S = 1 dan
R = 1.
Input Output
S R Qn+1 n 1 Q +
0 0 Qn n Q
0 1 0 1
1 0 1 0
1 1 Terlarang
Tabel 3.3.
Perkembangan selanjutnya, flipflop
harus dipasang secara sinkron dengan unit lain
dan sesuai dengan clocknya.
Perhatikan gambar flipflop
RS
dengan clock.
Gambar 3.6.
3.2.2. JK
Flipflop
Flipflop
JK
merupakan penyempurnaan dari flipflop
RS
terutama untuk mengatasi
kondisi terlarang seperti yang telah dijelaskan diatas. Pada kondisi masukan J = 1 dan
K = 1 akan membuat kondisi keluaran berlawanan dengan kondisi keluaran
sebelumnya. Sementara untuk keluaran berdasarkan kondisikondisi
masukan yang
lain semua sama dengan Flipflop
RS.
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
7
Gambar 3.7.
Input Output
J K Qn+1 n 1 Q +
0 0 Qn n Q
0 1 0 1
1 0 1 0
1 1 n Q Qn
Tabel 3.4.
3.2.3. D FlipFlop
Flipflop
D merupakan Flipflop
RS
yang memaksa untuk memiliki satu masukan
dengan R selalu berlawanan dengan S, sehingga kondisi masukan SR
sama tidak
akan pernah terjadi. Perhatikan gambar flipflop
D berikut.
Gambar 3.8.
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
8
Input Output
D Qn+1
0 0
1 1
Tabel 3.5.
3.2.4. T Flipflop
Flipflop
T atau flipflop
toggle adalah flipflop
JK
yang kedua masukannya (J dan
K) digabungkan menjadi satu sehingga hanya ada satu jalan masuk. Karakteristik dari
flipflop
ini adalah kondisi keluaran akan selalu toggle atau berlawanan dengan
kondisi sebelumnya apabila diberikan masukan logika 1. Sementara itu kondisi
keluaran akan tetap atau sama dengan kondisi keluaran sebelumnya bila diberi
masukan logika 0.
Gambar 3.9.
Input Output
T Qn+1
0 Qn
1 n Q
Tabel 3.6.
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
9
3.2.5. Register
Register adalah rangkaian logika yang digunakan untuk menyimpan data. Dengan
kata lain, register adalah rangkaian yang tersusun dari satu atau beberapa flipflop
yang digabungkan menjadi satu. Flipflop
disebut juga sebagai register 1 bit. Jadi
untuk menyimpan 4 bit data, register harus terdiri dari 4 buah flipflop.
Untuk
menyimpan data pada register, dapat dilakukan dengan dua cara :
1. Disimpan secara sejajar (Parallel In) :
Pada cara ini semua bagian register atau masingmasing
flipflop
diisi (dipicu) pada
saat yang bersamaan.
2. Disimpan secara seri (Serial In) :
Pada cara ini, data dimasukkan bit demi bit mulai dari flipflop
yang paling ujung
(dapat dari kiri atau dari kanan), dan digeser sampai semuanya terisi. Bila data digeser
dari kanan kekiri disebut “Register geser kiri” (Shift Left Register), sebaliknya bila
data digeser dari kiri kekanan disebut “Register geser kanan” (Shift Right Register).
Register selain digunakan sebagai penyimpan data, juga sering digunakan sebagai
Counter (lihat modul 2.2.6) dan operasi bilangan / ALU (lihat modul 3).
Seperti pada penyimpanan data, untuk mengeluarkan data juga dapat dilakukan
dengan dua cara :
1. Dikeluarkan secara sejajar (Parallel Out)
2. Dikeluarkan secara seri (Serial Out)
Parallel
InParallel
Out (PIPO)
Perhatikan gambar berikut :
Gambar 3.10.
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
10
A, B, C, dan D adalah sinyal masukan. Saat clock (pemicu) diaktifkan (Logika 1),
maka data yang ada akan dikeluarkan secara bersamasama
ke Q3, Q2, Q1, dan Q0.
Saat clock kembali tidak dipicu (Logika 0), maka apapun masukannya, keluaran Q
akan tetap.
Serial
InSerial
Out (SISO)
Perhatikan Gambar berikut :
Gambar 3.11.
Saat sinyal clock diberikan pertama kali, data dari Si masuk ke flipflop
A, pada saat
clock kedua, data dari flipflop
A masuk ke flipflop
B, demikian seterusnya, sampai
keluar ke So. Jadi pada register SISO untuk membaca data pertama kali dibutuhkan
jumlah clock yang sama banyak dengan jumlah flipflop
yang ada pada register
(dalam hal ini adalah empat).
Parallel
In – Serial Out (PISO)
Gambar 3.12.
Modul 3
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
11
Serial
InParallel
Out (SIPO)
Gambar 3.13

Dasar dari Komputer, Sistem Bilangan, dan Gerbang logika


2.1. Data
Komputer yang dipakai saat ini adalah sebuah pemroses data. Fungsinya sangat
sederhana : Untuk memproses data, kemudian hasil prosesnya diselesaikan secara
elektronis didalam CPU (Central Processing Unit) dan komponen lainnya yang
menyusun sebuah komputer personal. Tampaknya sederhana, tetapi apa sebenarnya
data?, dan bagaimana data diproses secara elektronis didalam komputer personal?.
2.1.1. Analog
Suatu sinyal yang dikirimkan dari suatu pemancar (transmitter) ke penerima (receiver)
untuk berkomunikasi, adalah data. Datadata
yang bisa dijumpai seharihari
memiliki
banyak bentuk, antara lain: suara, huruf, angka, dan karakter lain (tulisan tangan atau
dicetak), foto, gambar, film dan lain sebagainya. Suatu sistem yang dapat memproses
nilai yang kontinyu berbanding terhadap waktu dinamakan sistem analog. Pada sistem
analog, nilainya biasa diwakili oleh tegangan, arus dan kecepatan. Berikut ini adalah
gambar grafik nilai tegangan analog terhadap waktu.
Gambar 2.1.
2.1.2. Digital
Sistem yang memproses nilai diskrit (langkah demi langkah) dinamakan digital. Pada
sistem digital untuk menunjukkan suatu nilai digunakan simbol yang dinamakan digit.
Sinyal pada gambar 2.1. diatas dapat “didigitalkan” dengan menggunakan ADC
(Analog to Digital Converter). ADC mengubah sinyal kontinyu menjadi sinyal diskrit
dengan menyamplingnya tiap detik (tiap satuan waktu). Perhatikan gambar 2.2.
berikut:
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
2
Gambar 2.2.
Komputer adalah sebuah perangkat elektronik. Data yang dapat diolah adalah data
yang direpresentasikan oleh sinyal listrik. Sinyal yang digunakan bisa dianalogikan
dengan saklar listrik, yaitu tombol off (mati) atau on (hidup). Jika saklar pada kondisi
off, maka komputer membaca sebagai data 0, jika saklar dalam kondisi hidup, maka
komputer membaca sebagai angka 1. Perhatikan gambar 2.3. berikut :
Gambar 2.3.
Sebuah komputer personal terdiri dari saklarsaklar
yang banyak jumlahnya
(menggunakan komponen elektronik berupa transistor). Jumlah dari transistor yang
digunakan bisa sampai jutaan, sehingga dapat memproses data dari jutaan angka 0 dan
1.
2.1.2.1. Bits
Setiap angka 0 dan 1 biasa disebut Bit. Bit adalah singkatan dari Binary Digit. Kata
Binary diambil dari nama Binary Number System (Sistem Bilangan Biner). Tabel 2.1.
berikut menunjukkan tentang bit :
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
3
0 1 bit
1 1 bit
0110 4 bit
10011101 8 bit
Tabel 2.1.
2.1.2.2. Sistem Bilangan Biner
Sistem bilangan biner disusun dari angkaangka,
sama seperti sistem bilangan desimal
(sistem bilangan 10) yang sering digunakan saat ini. Tetapi untuk desimal
menggunakan angka 0 sampai 9, sistem bilangan biner hanya menggunakan angka 0
dan 1.
Berikut adalah tabel contoh sistem bilangan biner.
Sistem
Desimal
Sistem
Biner
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
Tabel 2.2.
Penjelasan lebih detail tentang bilangan biner dapat dibaca pada modul 2.2. tentang
Sistem Bilangan.
2.1.2.3. Bytes
Pengolahan data yang paling sering digunakan adalah pengolah kata (word
processing), yang akan digunakan sebagai contoh. Ketika melakukan suatu
pengolahan kata, komputer bekerja dengan keyboard. Ada 101 tombol yang mewakili
karakter alphabet A, B, C, dst. Selain itu juga akan ditemui karakter angka 0 sampai
dengan 9, dan karakterkarakter
lain yang diperlukan, antara lain : ,.;():_?!"#*%&.
ada pada keyboard harus didigitalkan. Karakterkarakter
tersebut diwakili oleh angkaangka
0 dan 1. Bit yang digunakan adalah 8 bit biner. 8
bit biner dinamakan Byte.
8 bit = 1 bytes, sistem inilah yang digunakan. Jika menggunakan 8 bit biner, berapa
kombinasi angka yang dapat diwakili?.
Untuk sistem bilangan biner, banyaknya kombinasi dihitung dengan 2 n ≤ m. n adalah
jumlah bit, m adalah kombinasi yang dapat diwakili.
Sehingga pada 8 bit biner, dapat mewakili 2 8 = 256 kombinasi maksimal.
Karakter Bit Byte Karakter Bit Byte
A 01000001 65 ¼ 10111100 188
B 01000010 66 . 00101110 46
C 01000011 67 : 00111010 58
a 01100001 97 $ 00100100 36
b 01100010 98 \ 01011100 92
Tabel 2.3.
Ketika mengetik kata “digital” simbol yang digunakan adalah 6 huruf, saat komputer
mengolahnya, 6 huruf tersebut didigitalkan menjadi 6 bytes, yang kemudian
“diletakkan” pada RAM komputer saat mengetik, dan akan “diletakkan” pada
harddisk, jika disimpan.
Tabel berikut menunjukkan perbandingan ukuran unit data
Unit Definisi Bytes Bits Contoh
Bit (b) Binary Digit, 0 dan 1 1 1 On/Off, buka/tutup
Byte (B) 8 bits 1 8 Kode ASCII
Kilobyte
(KB)
1.024 bytes 1000 8000 Ukuran email biasa = 2 KB
10 halaman dokumen= 10 KB
Megabyte
(MB)
1.024 kilobytes
1.048.576 bytes
1 juta 8 juta Floppy disks = 1,44 MB
CDROM = 650 MB
Gigabyte
(GB)
1.024 megabytes
1.073.741.824 bytes
1 milyar 8 milyar Hard drive = 40 GB
Terrabyte
(TB)
1.024 gigabytes 1 trilyun 8 trilyun Data yang dapat ditransmit
(secara teori) pada fiber optic
selama 1 detik.
Tabel 2.4.
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
5
Standard yang digunakan sebagai digitalisasi alphanumerik adalah ASCII.
2.1.2.4. ASCII
ASCII singkatan dari American Standard Code for Information Interchange. Standard
yang digunakan pada industri untuk mengkodekan huruf, angka, dan karakterkarakter
lain pada 256 kode (8 bit biner) yang bisa ditampung.
Tabel ASCII dibagi menjadi 3 seksi:
a. Kode sistem tak tercetak (Non Printable System Codes) antara 0 – 31.
b. ASCII lebih rendah (Lower ASCII), antara 32 – 137. Diambil dari kode
sebelum ASCII digunakan, yaitu sistem American ADP, sistem yang bekerja
pada 7 bit biner.
c. ASCII lebih tinggi (Higher ASCII), antara 128 – 255. Bagian ini dapat
diprogram, sehingga dapat mengubahubah
karakter.
2.1.2.5. Program Code
Telah disebutkan diatas tentang data yang digunakan pada komputer. Tetapi begitu
banyak data yang ada pada komputer personal. Tipe data dasar dapat dikelompokkan
menjadi 2 :
a. Program Code, dimana data digunakan untuk menjalankan fungsi komputer.
b. Data User, seperti teks, gambar dan suara.
Suatu komputer harus memiliki instruksiinstruksi
agar dapat berfungsi sebagaimana
fungsinya. Hal ini akan dijelaskan lebih detail pada modul 3. CPU didesain untuk
mengenali instruksiinstruksi
ini, yang kemudian diproses bersamasama
data user.
Program Code adalah kumpulan instruksiinstruksi,
dieksekusi satu persatu, ketika
program dijalankan. Saat mengklik
mouse, atau mengetikkan sesuatu pada keyboard,
instruksiinstruksi
dikirimkan dari software (perangkat lunak) ke CPU.
2.1.2.6. Files
Program Code dan Data User disimpan sebagai file pada media penyimpanan. Tipe
file dapat dikenali dari ekstensi file tersebut. Berikut adalah contohnya :
Contoh nama file
Program Code Start.exe, win.com, help.dll, vmm32.vxd
Data User Letter.doc, house.bmp, index.htm
Tabel 2.5.
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
6
Tabel 2.5. diatas menunjukkan tentang penamaan suatu file. Ekstensi suatu file
menentukan bagaimana PC menanganinya.
2.2. Sistem Bilangan
2.2.1. Desimal
Sebelum mempelajari tentang bilangan biner, ada baiknya mengetahui tentang sistem
bilangan yang umum dipakai, yaitu desimal (bilangan basis 10). Perhatikan tabel 1.6.
berikut:
Base Exponent 10 2 = 100
10 1 = 10
10 0 = 1
Jumlah simbol (radiks) 10
Simbol 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Tabel 2.6.
Untuk menghitung suatu basis bilangan, harus dimulai dari nilai yang terkecil (yang
paling kanan). Pada basis 10, maka kalikan nilai paling kanan dengan 10 0 ditambah
dengan nilai dikirinya yang dikalikan dengan 10 1 , dst. Untuk bilangan dibelaang
koma, gunakan faktor pengali 10 1
, 10 2
, dst.
Contoh :
1243 = (1 X 10 3 ) + (2 X 10 2 ) + (4 X 10 1 ) + (3 X 10 0 )
= 1000 + 200 + 40 + 3
752,91 = (7 X 10 2 ) + (5 X 10 1 ) + (2 X 10 0 ) + (9 X 10 1
) + (1 X 10 2
)
= 700 + 50 + 2 + 0,9 + 0,01
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
7
2.2.2. Biner
Untuk bilangan biner (bilangan basis 2), perhatikan tabel 2.7. berikut :
Base Exponent 2 5 = 32 2 2 = 4
2 4 = 16 2 1 = 2
2 3 = 8 2 0 = 1
Jumlah simbol
(radiks)
2
Simbol 0, 1
Tabel 2.7.
Untuk bilangan biner, kalikan bilangan paling kanan terus ke kiri dengan 2 0 , 2 1 , 2 2 ,
dst.
Contoh :
101102 = (1 X 2 4 ) + (0 X 2 3 ) + (1 X 2 2 ) + (1 X 2 1 ) + (0 X 2 0 )
= (16 + 0 + 4 + 2 +0) = 22
Dari contoh diatas, menunjukkan bahwa bilangan biner 10110 sama dengan bilangan
desimal 22.
Dari dua sistem bilangan diatas, dapat dibuat rumus umum untuk mendapatkan nilai
desimal dari radiks bilangan tertentu :
(N)r = [(d0 x r 0 ) + (d1 x r 1 ) + (d2 x r 2 ) + … + (dn x r n )]10
dimana; N = Nilai
r = Radiks
d0, d1, d2 = digit dari yang terkecil (paling kanan) untuk d0
Untuk mengkonversi bilangan desimal kebiner ada dua cara, perhatikan contoh
berikut :
Cara I :
16810 kurangkan dengan pangkat terbesar dari 2 yang mendekati 16810 yaitu 128 (2 7 ).
a. 128 (2 7 ) lebih kecil dari 168, maka bilangan paling kiri adalah 1. 168 – 128 =
40.
b. 64 (2 6 ) lebih besar dari 40, maka bilangan kedua adalah 0.
c. 32 (2 5 ) lebih kecil dari 40, maka bilangan ketiga adalah 1. 40 – 32 = 8.
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
8
d. 16 (2 4 ) lebih besar dari 8, maka bilangan keempat adalah 0.
e. 8 (2 3 ) lebih kecil/sama dengan 8, maka bil. kelima adalah 1. 8 – 8 = 0.
f. Karena sisa 0, maka seluruh bit dikanan bil. kelima adalah 0.
16810 = 101010002.
Cara II :
168 / 2 = 84 sisa 0
84 / 2 = 42 sisa 0
42 / 2 = 21 sisa 0
21 / 2 = 10 sisa 1
10 / 2 = 5 sisa 0
5 / 2 = 2 sisa 1
2 / 2 = 1 sisa 0
1 / 2 = 0 sisa 1
Bit biner terbesar dimulai dari bawah, sehingga 16810 = 101010002
2.2.3. Heksadesimal
Bilangan heksadesimal biasa disebut bilangan basis 16, artinya ada 16 simbol yang
mewakili bilangan ini. Tabel 1.8. berikut menunjukkan konversi bilangan
heksadesimal :
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
9
Desimal Biner Heksadesimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Tabel 2.8.
Untuk konversi bilangan biner ke heksadesimal, perhatikan contoh berikut :
101101010100100102 = 0001 0110 1010 1001 0010
= 1 6 A 9 2
Jadi bil. biner 10110101010010010 sama dengan bil. heksadesimal 16A92.
Penulisan bilangan heksadesimal biasa juga ditambahkan dengan karakter “0x”
didepannya. Nilai 254316 sama nilainya dengan 0x2543.
2.2.4. Oktal
Bilangan oktal disebut bilangan basis 8, artinya ada 8 simbol yang mewakili bilangan
ini. Tabel 1.9. berikut menunjukkan konversi bilangan oktal :
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
10
Desimal Biner Oktal
0 000 0
1 001 1
2 010 2
3 011 3
4 100 4
5 101 5
6 110 6
7 111 7
Tabel 2.9.
Untuk konversi bilangan biner ke oktal, perhatikan contoh berikut :
101101010100100102 = 010 110 101 010 010 010
= 2 6 5 2 2 28
Jadi bil. biner 10110101010010010 sama dengan bil. oktal 265222.
Untuk konversi dari oktal ke heksadesimal, ubah terlebih dahulu bilangan oktal yang
akan dikonversi menjadi biner. Hal ini berlaku juga untuk konversi dari heksadesimal
ke oktal. Perhatikan contoh berikut :
7258 = 111 010 1012
= 0001 1101 0101
= 1 D 516
FE16 = 1111 11102
= 011 111 110
= 3 7 68
2.3. Sandi Biner
2.3.1 Sandi 8421 BCD (Binary Coded Decimal)
Sandi 8421 BCD adalah sandi yang mengkonversi bilangan desimal langsung ke
bilangan binernya, sehingga jumlah sandi BCD adalah 10, sesuai dengan jumlah
simbol pada desimal. Perhatikan tabel 2.10. berikut :
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
11
Desimal 8 4 2 1
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
Tabel 2.10.
Contoh :
19710 sandi BCDnya
adalah : 0001 1001 0111
2.3.2. Sandi 2421
Sandi 2421 hampir sama dengan sandi 8421, terutama untuk bilangan desimal 0
sampai dengan 4. Tetapi sandi berikutnya merupakan pencerminan yang diinversi.
Perhatikan tabel 2.11. berikut :
Desimal 2 4 2 1
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 1 0 1 1
6 1 1 0 0
7 1 1 0 1
8 1 1 1 0
9 1 1 1 1
Tabel 2.11.
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
12
Perhatikan sandi desimal 5. Sandi tersebut merupakan cermin dari sandi 4 desimal,
tetapi logikanya diinversi. Begitu pula pada sandi desimal 6 yang merupakan cermin
dari sandi desimal 3 yang diinversi, dst.
Contoh :
37810 sandi 2421nya
adalah : 0011 1101 1110
2.4. Boolean atau Logika Biner
Logika memberi batasan yang pasti dari suatu keadaan. Sehingga keadaan tersebut
tidak dapat berada dalam dua ketentuan sekaligus. Karena itu, dalam logika dikenal
aturanaturan
sebagai berikut :
Suatu
keadaan tidak dapat benar dan salah sekaligus.
Masingmasing
adalah hanya benar atau salah (salah satu).
Suatu
keadaan disebut BENAR bila TIDAK SALAH.
Dua keadaan itu dalam aljabar boole ditunjukkan dengan dua konstanta, yaitu logika
“1” dan logika “0”.
Misal :
Logika “1” Logika “0”
Benar Salah
Hidup Mati
Siang Malam
Contoh diatas dapat dituliskan :
Tidak Benar atau Benar = Salah
Tidak Hidup atau Hidup = Mati
Tidak Siang atau Siang = Malam
Tanda garis atas dipakai untuk menunjukkan pertentangan atau lawan dari keadaan
itu. Sehingga tanda garis tersebut merupakan pertentangan logika (Logical Inversion)
yang mempunyai fungsi untuk menyatakan “Tidak” (Not).
Ā = Tidak A atau Ā = NOT A
Himpunan adalah kumpulan dari elemen yang setidaknya memiliki sifat yang sama,
dan bisa memiliki kelompok yang terbatas atau tidak terbatas jumlahnya. Misalnya
himpunan mahasiswa politeknik. Himpunan tersebut tentu saja terdiri dari bermacammacam
kelompok. Jika dapat diambil tiga kelompok :
Kelompok
yang berasal dari luar jawa : J.
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
13
Kelompok
yang sedang kuliah : K.
Kelompok
yang mengerjakan laporan akhir : L.
Sehingga seseorang setidaknya masuk dalam satu kelompok tersebut, bahkan dapat
terjadi masuk dalam dua kelompok sekaligus. Misalnya mahasiswa luar jawa yang
sedang mengerjakan laporan akhir, berarti masuk kelompok J dan L (J AND L). J
AND L dituliskan juga dengan J . L.
Gabungan antara mahasiswa luar jawa dan mahasiswa yang mengerjakan laporan
akhir memiliki pengertian : mahasiswa luar jawa atau mahasiswa mengerjakan
laporan akhir, J atau L (J OR L). J OR L dituliskan juga dengan J + L.
Logika Biner (gerbang Boolean) adalah rangkaian digital yang menerima satu atau
lebih masukan tegangan untuk memperoleh keluaran tertentu sesuai dengan aturan
boole yang berlaku.
Jika membicarakan komputer, maka perbedaan tegangan yang digunakan sebagai
on/off atau nilai biner 1/0. nilai 1 ekivalen dengan tegangan +5 volt dan nilai 0
ekivalen dengan tegangan 0 volt. Perhatikan Gambar 2.4. yang menunjukkan lambang
gerbanggerbang
dasar NOT, AND dan OR. Sedangkan Tabel 2.14. menunjukkan
tabel kebenaran dari logika gerbanggerbang
dasar yang ada.
Gambar 2.4.
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
14
Gerbang
NOT AND OR
A Ā A B X A B X
0 1 0 0 0 0 0 0
1 0 1 0 0 1 0 1
0 1 0 0 1 1
Nilai
1 1 1 1 1 1
Tabel 2.14.
Gerbang NOT membutuhkan minimal 1 masukan agar dapat berfungsi, sedangkan
gerbang lainnya membutuhkan minimal 2 masukan. Dari tabel 1.14. diatas dapat
dilihat bahwa gerbang AND hanya akan bernilai 1 pada keluarannya, jika semua
masukannya bernilai 1. Sedangkan gerbang OR akan bernilai 1 pada keluarannya, jika
salah satu atau semua masukannya bernilai 1. Salah satu contoh komponen penyusun
komputer yang menggunakan gerbang adalah memory.
Selain gerbanggerbang
dasar yang telah disebutkan, ada juga gerbanggerbang
kombinasi yang merupakan campuran dari beberapa gerbang dasar. Diantaranya
adalah gerbang NAND, NOR, XOR, dan XNOR. Gambar 2.5. berikut menunjukkan
tentang lambanglambang
gerbang kombinasi yang ada. Sedangkan tabel 2.15.
menunjukkan Tabel kebenaran dari gerbang kombinasi tersebut.
Gambar 2.5.
Modul 2
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
15
Gerbang
NAND NOR XOR XNOR
A B F A B F A B F A B F
0 0 1 0 0 1 0 0 0 0 0 1
0 1 1 0 1 0 0 1 1 0 1 0
1 0 1 1 0 0 1 0 1 1 0 0
Nilai
1 1 0 1 1 0 1 1 0 1 1 1
Tabel 2.15.
Gerbang NAND = NOT AND
F = A· B
Gerbang NOR = NOT OR
F = A+ B
Gerbang XOR = A . B + A . B
F = AÅ B
Gerbang XNOR = A . B + A . B
F = AÅ B
Selain gerbang dasar dan gerbang kombinasi diatas, terdapat satu lagi gerbang logika
yang berfungsi sebagai penyangga (Buffer). Gerbang Buffer tidak mengubah masukan
tetapi berfungsi untuk menguatkan sinyal masukan. Selain memperkuat sinyal
masukan, Buffer juga berfungsi untuk menambah waktu tunda (time delay). Gambar
2.6. menunjukkan lambang dari gerbang Buffer.
Gambar 2.6.

Pengenalan Arsitektur Komputer



Ini adalah modul tentang organisasi komputer. Modul ini mendeskripsikan
fungsi dan desain berbagai unit komputer digital yang menyimpan dan mengolah
informasi. Modul ini juga berkaitan dengan unit komputer yang menerima informasi
dari sumber eksternal dan mengirimkan hasil terkomputasi ke destinasi eksternal.
Kebanyakan materi dalam modul ini ditujukan untuk hardware komputer dan
arsitektur komputer. Hardware komputer terdiri dari sirkuit elektronik, display, media
penyimpanan magnetik dan optik, perangkat elektromekanik, dan fasilitas komunikasi.
Arsitektur komputer meliputi spesifikasi sekumpulan instruksi dan unit
hardware yang melaksanakan instruksi tersebut. Dalam modul ini dibahas pula
banyak aspek pemrograman dan komponen software dalam sistem komputer.
Sangatlah penting mempertimbangkan aspek hardware dan software pada desain
berbagai komponen komputer guna mencapai pemahaman yang baik pada suatu
sistem komputer.
Bab ini memperkenalkan sejumlah konsep hardware dan software,
menampilkan beberapa istilah umum, dan memberikan pandangan umum tentang
aspek dasar subjek tersebut. Pembahasan yang lebih detil diberikan pada babbab
selanjutnya.
1.1. T IPE K OMPUT E R
Marilah pertamatama
kita mendefinisikan istilah komputer digital, atau
cukup disebut komputer. Dalam istilah yang paling sederhana, suatu komputer
kontemporer adalah mesin hitung elektronik cepat yang menerima informasi input
terdigitalisasi, mengolahnya sesuai dengan daftar instruksi yang tersimpan secara
internal dan memberikan informasi output hasil. Daftar instruksi itu disebut program
komputer, dan penyimpanan internalnya
disebut memori komputer.
Terdapat banyak tipe komputer yang sangat bervariasi dalam hal ukuran,
biaya, daya komputasi, dan tujuan penggunaan. Komputer yang paling umum adalah
personal computer, yang banyak digunakan di rumahrumah,
sekolahsekolah,
dan
kantorkantor
bisnis. Personal computer merupakan bentuk paling umum dari
komputer desktop. Komputer desktop memiliki unit pengolahan dan penyimpanan,
display visual dan unit output audio, dan keyboard yang dapat ditempatkan secara
mudah di meja rumah dan kantor. Media penyimpanan tersebut termasuk harddisk,
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
2
CDROM,
dan disket. Komputer notebook portable adalah versi ringkas dari personal
computer dengan semua komponennya
terpaket dalam unit tunggal seukuran koper
tipis. Workstation dengan kemampuan input/output grafts resolusi tinggi, sekalipun
masih tetap memakai dimensi komputer desktop, namun memiliki daya komputasi
yang lebih signifikan daripada personal computer. Workstation seringkali digunakan
dalam aplikasi engineering, terutama untuk pekerjaan desain interaktif.
Di atas workstation, terdapat suatu rentang sistem komputer yang luas dan
sangat kuat yang di sebut sistem enterprise dan server pada rentang lowend,
dan
superkomputer pada highend.
Sistem enterprise, atau mainframe, digunakan unhik
pengolahan data bisnis pada korporasi menengah hingga besar yang memerlukan
lebih banyak daya komputasi dan kapasitas penyimpanan dari yang dapat disediakan
oleh workstation. Server berisi unit penyimpanan basis data yang cukup besar dan
mampu menangani banyak volume permintaan untuk mengakses data. Pada banyak
kasus, server dapat diakses secara luas oleh komunitas pendidikan, bisnis, dan
pengguna personal. Permintaan dan respons biasanya ditransportasikan melalui
fasilitas komunikasi Internet. Tentu saja, Internet dan server yang berhubungan
dengannya telah menjadi sumber segala tipe informasi yang dominan di seluruh
dunia. Fasilitas komunikasi Internet terdiri dari suatu struktur kompleks hubungan
backbone serat optik kecepatan tinggi yang terinterkoneksi dengan kabel broadcast
dan koneksi telepon ke sekolah, perusahaan, dan rumahrumah.
Supercomputer digunakan untuk perhitungan numerik skala besar seperti
perkiraan cuaca dan desain dan simulasi pesawat terbang. Dalam sistem enterprise,
server, dan superkomputer, unit fungsionalnya, yang meliputi banyak prosesor, dapat
terdiri dari sejumlah unit besar dan seringkali terpisah.
1.2 UNIT FUNGSIONAL
Suatu komputer terdiri dari lima bagian utama yang mandiri secara
fungsional: unit input, memori, aritmatika dan logika, output, dan kontrol,
sebagaimana ditampilkan pada Gambar 1.1. Unit input menerima informasi terkode
dari operator manusia, dari peralatan elektromekanik seperti keyboard, atau dari
komputer lain melalui jalur komunikasi digital. Informasi yang diterima disimpan
dalam memori komputer untuk referensi selanjutnya atau segera digunakan oleh
sirkuit aritmatika dan logika untuk melakukan operasi yang diinginkan. Langkah
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
3
pengolahan ditentukan oleh program yang tersimpan dalam memori. Akhirnya, hasil
dikirim kembali ke dunia luar melalui unit output. Semua langkah ini
dikoordinasikan oleh unit kontrol. Gambar 1.1 tidak menampilkan koneksi di antara
unit fungsional. Koneksi tersebut, yang dapat dibuat dengan beberapa cara, dibahas
secara menyeluruh di dalam modul ini. Kita mengacu pada sirkuit aritmatika dan
logika, dalam hubungannya dengan sirkuit kontrol utama, yaitu prosesor dan
peralatan input dan output yang seringkali secara kolektif disebut sebagai unit inputoutput
(I/O).
Sekarang kita mengamati lebih detil informasi yang ditangani oleh suatu
komputer. Sangat memudahkan untuk mengkategorikan informasi ini baik sebagai
instruksi atau data. Instruksi, atau instruksi mesin, adalah perintah eksplisit yang
Ø Mengarahkan transfer informasi dalam komputer dan antar
komputer dan peralatan I/Onya
Ø Menetapkan operasi aritmatika dan logika yang akan dilaksanakan
Gambar 1.1 Unit fungsional dasar suatu komputer.
Daftar instruksi yang melakukan suatu tugas disebut program. Biasanya
program tersebut disimpan dalam memori. Prosesor kemudian mengambil instruksi
yang membentuk suatu program dari memori, satu demi satu, dan melaksanakan
operasi yang diinginkan. Komputer sepenuhnya dikontrol oleh program yang
tersimpan tersebut, kecuali adanya kemungkinan interupsi eksternal oleh operator
atau oleh peralatan I/O yang terhubung ke mesin tersebut.
Data adalah angka dan karakter terencode
yang digunakan sebagai
operand oleh instruksi. Akan tetapi istilah data, sering digunakan untuk menyebut
informasi digital apapun. Dalam definisi data tersebut, seluruh program (yaitu daftar
instruksi) dapat dianggap sebagai data jika akan diolah oleh program lain.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
4
Contohnya adalah tugas untuk mengkompilasi program source bahasa tingkat tinggi
menjadi daftar instruksi mesin yang merupakan suatu program bahasa mesin,
disebut program objek. Program source adalah data input ke program kompiler yang
mentranslasikan program source menjadi program bahasa mesin.
Informasi yang ditangani komputer harus diencode
dalam format yang
sesuai. Kebanyakan hardware saat ini menggunakan sirkuit digital yang hanya
memiliki dua kondisi stabil, ON dan OFF (lihat Apendiks A). Tiap bilangan,
karakter, atau instruksi diencode
sebagai string bitter yang disebut bit, masingmasing
memiliki dua kemungkinan nilai, 0 atau 1. Bilangan biasanya dinyatakan
dalam notasi biner posisi, sebagaimana yang akan dibahas secara detil dalam Bab 2.
Kadangkadang
digunakan format binarycoded
decimal (BCD), di mana tiap digit
desimal diencode
menjadi empat bit.
Karakter alfanumerik juga dinyatakan dalam istilah kode biner. Telah
dikembangkan beberapa skema pengkodean. Dua skema yang paling banyak
digunakan adalah ASCII (American Standart Coded for Informasi Interchange), di
mana tiap karakter dinyatakan sebagai kode 7bit, dan EBCDIC (Extended BinaryCoded
Decimal Interchange Code), di mana digunakan 8 bit untuk menyatakan
suatu karakter
1.2.1 UNIT INPUT
Komputer menerima informasi terkodekan melalui unit input, yang
membaca data tersebut. Peralatan input yang paling terkenal adalah keyboard.
Kapanpun suatu tombol ditekan, huruf atau digit yang sesuai secara otomatis
ditranslasikankan menjadi kode biner yang tepat dan ditransmisikan melalui suatu
kabel ke memori atau ke prosesor.
Tersedia banyak jenis peralatan input lain, termasuk joystick, trackball, dan
mouse. Peralatan tersebut seringkali digunakan sebagai peralatan input grafik dalam
hubungan dengan display. Mikrofon dapat digunakan untuk menangkap input audio
yang kemudian disample
dan dikonversi menjadi kode digital untuk penyimpanan
dan pengolahan. Pembahasan yang lebih detil tentang peralatan input dan
operasinya terdapat dalam Bab 12.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
5
1.2.2 UNIT MEMORI
Fungsi unit memori adalah untuk menyimpan program dan data. Terdapat
dua kelas penyimpanan, primer dan sekunder.
Penyimpanan primer adalah memori cepat yang beroperasi pada kecepatan
elektronik. Program harus disimpan dalam memori tersebut pada saat dieksekusi.
Memori tersebut berisi sejumlah besar sel penyimpanan semikonduktor, yang
masingmasing
mampu menyimpan satu bit informasi. Setsel
tersebut jarang dibaca
atau ditulis sebagai sel individual tetapi sebaliknya diolah dalam kelompok dengan
ukuran tetap yang disebut word. Memori tersebut terorganissasi sedemikian
sehingga isi satu word, yang terdiri dari n bit, dapat disimpan atau diambil dalam
satu operasi dasar.
Untuk menyediakan akses yang mudah ke tiap word yang terdapat dalam
memori, alamat yang berbeda dihubungkan ke tiap lokasi word. Alamat adalah
bilangan yang menyatakan lokasi yang berurutan. Suatu word diakses dengan
menyatakan alamatnya dan dengan menyatakan perintah kontrol yang memulai
proses penyimpanan atau pengambilan tersebut.
Jumlah bit dalam tiap word sering disebut sebagai panjang word suatu
komputer. Panjang word biasanya berkisar dari 16 hingga 64 bit. Kapasitas memori
adalah salah satu faktor yang menentukan ukuran komputer. Mesin kecil biasanya
hanya memiliki puluhan juta word, sedangkan mesin menengah dan besar biasanya
memiliki puluhan atau ratusan juta word. Data biasanya diolah di dalam mesin
dalam unit word, kelipatan word, atau pembagian word. Pada saat suatu memori
diakses, biasanya hanya satu word data yang dibaca atau ditulis.
Program harus berada di memori selama eksekusi. Instruksi dan data dapat
ditulis ke dalant memori atau dibaca dari memori di bawah kontrol prosesor.
Sangatlah penting untuk dapat mengakses tiap lokasi word dalam memori secepat
mungkin. Memori yang tiap lokasinya dapat dicapai dalam wakht cepat dan tertentu
setelah ditetapkan alamatnya disebut randomaccess
memory (RAM). Waktu yang
diperlukan untuk mengakses satu word disebut memory access time (waktu akses
memori). Waktu tersebut tetap, dan tidak tergantung pada lokasi word yang diakses.
Biasanya berkisar dari beberapa nanosecond (ns) hingga sekitar 100 ns untuk unit
RAM modern. Memori suatu komputer biasanya diimplementasikan sebagai hierarki
memori dari tiga atau empat tingkat unit RAM semikonduktor dengan kecepatan
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
6
dan ukuran yang berbeda. Unit RAM yang cepat dan kecil disebut cache. Cache
tersebut terangkai erat dengan prosesor dan seringkali termuat pada chip sirkuit
terintegrasi yang sama untuk mencapai performa tinggi. Unit yang terbesar dan
terlamban disebut sebagai memori utama. Kami akan memberikan deskripsi singkat
tentang bagaimana informasi diakses dalam hierarki memori pada bagian berikutnya
dari bab ini. Bab 11 membahas aspek operasi dan performa dari memori komputer
secara detil.
Sekalipun penyimpanan primer sangat penting, namun cenderung mahal.
Jadi penyimpanan sekunder tambahan yang lebih murah digunakan pada saat
sejumlah besar data dan banyak program harus disimpan, terutama untuk informasi
yang jarang diakses. Terdapat banyak pilihan peralatan penyimpanan sekunder,
termasuk disk magnetik dan tape dan disk optikal (CDROM). Peralatan tersebut
juga dideskripsikan dalam Bab 15.
1.2.3 UNIT ARITMATIKA DAN LOGIKA
Kebanyakan operasi komputer dieksekusi dalam unit aritmatika dan logika
(ALU: arithme~o and logic unit) pada prosesor. Perhatikanlah suatu contoh umum:
Misalkan dua bilangan yang berada dalam memori ditambahkan. Bilangan tersebut
di bawa ke prosesor, dan penambahan yang sesungguhnya dilakukan oleh ALU.
Jumlah tersebut kemudian disimpan dalam memori atau tetap dalam prosesor untuk
segera digunakan.
Operasi aritmatika atau logika yang lain, misalnya, perkalian, pembagian,
atau perbandingan bilangan, diawali dengan membawa operand yang diperlukan ke
prosesor, di mana operasi tersebut dilakukan oleh ALU. Pada saat operand dibawa
ke prosesor, operand tersebut disimpan dalam elemen penyimpanan kecepatan tinggi
yang disebut register. Tiap register dapat menyimpan satu word data. Waktu akses
ke register lebih cepat daripada waktu akses ke unit cache tercepat dalam hierarki
memori.
Unit kontrol dan unit aritmatika dan logika jauh lebih cepat daripada
peralatan lain yang terhubung ke sistem komputer. Jadi memungkinkan satu
prosesor tunggal mengendalikan sejumlah peralatan eksternal seperti keyboard,
display, disk magnetik dan optikal, sensor, dan kontroler mekanik.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
7
1.2.4 UNIT OUTPUT
Unit output adalah pasangan unit input. Fungsinya untuk mengirimkan
hasil yang telah diproses ke dunia luar. Contoh yang paling umum dari peralatan
tersebut adalah printer. Printer menggunakan mechanical head impact, inkjet stream,
atau teknik fotokopi, seperti dalam printer laser. untuk melakukan pencetakan.
Sangat mungkin untuk menghasilkan tinta yang dapat mencetak sebanyak 10.000
baris per menit. Kecepatan ini luar biasa untuk peralatan mekanik tetapi masih
sangat lambatjika dibandingkan dengan kecepatan elektron pada unit prosesor.
Beberapa unit, seperti display grafik, menyediakau fungsi output dan
fungsi input. Peranar ganda unit tersebut merupakan alasan penggunaan istilah
tunggal unit I/O dalam banyak hal.
1.2.5 UNIT KONTROL
Unit memori, aritmatika dan logika, dan input dan output menyimpan dan
mengolah informasi dan melakukan operasi input dan output. Operasi unitunit
tersebut harus dikoordinasi dengan beberapa cara. Kooordinasi adalah tugas dari
unit kontrol. Unit kontrol secara efektif merupakan pusat saraf yang mengirim
sinyal kontrol ke unit lain dan mengetahui keadaan unit tersebut.
Transfer I/O yang terdiri dari operasi input dan output, dikontrol oleh
instruksi progran I/O yang mengidentifikasi peralatan yang terlibat dan informasi
yang ditransfer. Akan tetapi sinyal timing aktual yang mengatur transfer
dibangkitkan oleh sirkuit kontrol. Sinyal timim adalah sinyal yang menentukan
kapan suatu aksi tertentu dilakukan. Transfer data antara proses set dan memori juga
dikontrol oleh unit kontrol melalui sinyal timing. Sangat beralasan untuk
memikirkan suatu unit kontrol sebagai unit yang terpisah secara fisik dan terdefinisi
dengan jelas yang berinteraksi dengan bagian lain dari mesin. Akan tetapi pada
prakteknya, hal tersebut jarang terjadi. Sejumlah besar jalur kontrol (kabel)
membawa sinyal yang digunakan untuk timing dan sinkronisasi kejadian disemua
unit.
Operasi suatu komputer dapat diringkas sebagai berikut:
Ø Komputer menerima informasi dalam bentuk program dan data
melalui unit input dan menyimpannya dalam memori.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
8
Ø Informasi yang disimpan dalam memori diambil, di bawah kontrol
program, ke unit aritmatika dan logika, di mana informasi tersebut
diproses.
Ø Informasi yang terproses meninggalkan komputer melalui unit
output.
Ø Semua kegiatan di dalam mesin tersebut diarahkan oleh unit
kontrol.
1.4 STRUKTUR BUS
Sejauh ini, kita telah membahas fungsi bagianbagian
individu dari suatu
komputer. Untuk membentuk suatu sistem operasional, maka bagianbagian
tersebut
harus dihubungkan dengan beberapa cara yang terorganisasi. Terdapat banyak cara
untuk melakukan hal ini. Disini, kita akan membahas cara yang paling sederhana
dan paling umum.
Untuk mencapai kecepatan operasi yang sesuai, komputer harus
diorganisasi sehingga semua unitnya dapat menangani satu word data penuh pada
waktu tertentu. Pada saat suatu word data ditransfer antar unit, semua bitnya
dtransfer secara paralel, yaitu bit tersebut ditransfer secara simultan melalui banyak
kabel, atau jalur, satu bit per jalur. Sekelompok jalur yang berfungsi sebagai jalan
penghubung untuk beberapa peralatan disebut bus. Selain jalur yang membawa data,
bus harus memiliki jalur untuk alamat dan keperluan kontrol.
Cara yang paling sederhana untuk menginterkoneksikan unit fungsional
adalah dengan menggunakan bus tunggal, sebagaimana yang ditampilkan dalam
Gambar 1.2. Semua unit dikoneksikan ke bus ini. Karena bus tersebut hanya dapat
digunakan untuk satu transfer pada satu waktu, maka hanya dua unit yang dapat
secara aktif menggunakan bus tersebut pada tiap waktu tertentu. Jalur kontrol bus
digunakan untuk mempertimbangkan banyak permintaan terhadap penggunaan bus.
Sifat utama struktur bus tunggal adalah biaya rendah dan fleksibilitasnya pada
pemasangan peralatan periferal. Sistem yang terdiri dari banyak bus mencapai
konkurensi yang lebih dalam operasi dengan memungkinkan dua atau lebih
transfer dilakukan pada waktu yang sama. Hal ini menuju kepada performa yang
lebih baik tetapi dengan biaya yang lebih besar.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
9
Gambar 1.2. Struktur bus tunggal
Peralatan yang terhubung ke bus sangat bervariiasi dalam kecepatan
operasinya. Beberapa peralatan elektromekanik, seperti keyboard dan printer,
relatif lambat. Peralatan lain, seperti disk magnetik dan optik, dianggap lebih
cepat. Memori dan unit prosesor beroperasi pada kecepatan elektronik,
menjadikannya sebagai bagian tercepat dalam komputer. Karena semua peralatan
tersebut harus berkomunikasi satu sama lain melalui bus, maka diperlukan
mekanisme transfer efisien yang tidak dibatasi oleh peralatan yang latnbat dan
yang dapat digunakan unhtk memperkecil perbedaan timing antar prosesor,
memori, dan peralatan ekstemal.
Pendekatan yang umum adalah dengan menyertakan register buffer pada
peralatan yang menyimpan informasi selama transfer. Untuk mengilustrasikan
teknik tersebut, perhatikanlah transfer karakter terencode
dari prosesor ke printer
karakter. Karena buffer adalah register elektronik, maka transfer tersebut
memerlukan waktu yang relatif sebentar. Pada saat buffer telah diload,
printer
dapat mulai mencetak tanpa intervensi lebih lanjut dari prosesor. Bus dan prosesor
tidak lagi diperlukan dan dapat dibebaskan untuk aktifitas yang lain. Printer terus
mencetak karakter yang terdapat dalam buffernya
dan tidak tersedia untuk
transfer selanjutnya hingga proses ini selesai. Jadi, register buffer memperhalus
perbedaan timing antar prosesor, memori, dan peralatan I/O. Register buffer
tersebut mencegah prosesor kecepatan tinggi terhalangi oleh peralatan I/O yang
lambat selama suatu rangkaian transfer data. Hal ini memungkinkan prosessor
untuk berpindah dengan cepat dari satu peralatan ke peralatan yang lain,
merangkaikan aktifitas pengolahannya dengan transfer data yang melibatkan
beberapa peralatan L/O.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
10
1.5. SOFTWARE
Agar user dapat memasukkan dan menjalankan program aplikasi, maka
komputer harus sudah berisi beberapa software sistem dalam memorinya.
Software sistem adalah kumpulan program yang dieksekusi seperlunya untuk
menjalankan fungsi seperti
Ø Menerima dan menginterpretasikan perintah user
Ø Memasukkan dan tnengedit program aplikasi dan rnenyimpannya
sebagai file dalam peralatan penyimpanan sekunder
Ø Mengatur penyimpanan dan pengambilan file dalam peralatan
penyimpanan sekunder
Ø Menjalankan program aplikasi standar seperti word processor,
spreadsheet, atau game, dengan data yang disediakan oleh user
Ø Mengontrol unit I/O untuk menerima informasi input dan
menghasilkan output
Ø Mentranslasikan program dari bentuk source yang disediakan oleh
user menjadi bentuk objek yang berisi instruksi mesin
Ø Menghubungkan dan menjalankan program aplikasi userwritten
dengan rutin library standar yang ada, seperti paket komputasi
numerik
Software sistemlah
yang bertanggungjawab untuk koordinasi semua
aktifitas dalam sistem komputasi. Tujuan bagian ini adalah untuk memperkenalkan
beberapa aspek dasar software sistem.
Program aplikasi biasanya ditulis dalam bahasa pemrograman tingkat
tinggi seperti C, C++, Java, atau Fortran, di mana programer yang menentukan
operasi matematis atau pengolahan teksnya.
Operasi tersebut dideskripsikan
dalam format yang lepas dari penggunaan komputer tertentu untuk mengeksekusi
program. Seorang programer yang menggunakan bahasa tingkat tinggi tidak perlu
mengetahui detil instruksi program mesin. Suatu software sistem yang disebut
kompiler mentranslasikan bahasa pemrograman tingkat tinggi menjadi program
bahasa mesin yang sesuai yang berisi instruksi seperti instruksi Add dan Load.
Program sistem penting lainnya yang digunakan semua programer adalah
editor teks. Program tersebut digunakan untk memasukkan dan mengedit program
aplikasi. User program ini secara interaktif mengeksekusi perintah yang
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
11
mengijinkan statement program source yang dirnasukkan melalui keyboard
diakumulasikan dalam suatu file. File secara sederhana adalah rangkaian karakter
alfanumerik atau data biner yang disimpan dalam memori atau dalam penyimpanan
sekunder. Suatu file dapat disebut dengan nama yang dipilih oleh user.
Kita tidak membahas detil compiler, editor, atau sistem file dalam modul
ini, tetapi marilah kita memperhatikan lebih cermat pada komponen software sistem
utama yang disebut sistem operasi (OS: operating system). Ini adalah program yang
besar, atau sebenarnya kumpulan rutin, yang digunakan untuk mengontrol
pembagian dan interaksi di antara berbagai unit komputer pada saat mereka
mengeksekusi program aplikasi. Rutin OS menjalankan tugas yang diperlukan untuk
menetapkan resource komputer bagi program aplikasi individu. Tugastugas
tersebut
termasuk menetapkan ruang memori dan disk magnetik untuk program dan file data,
memindahkan data antara memori dan unit disk, dan menangani operasi UO.
Untuk memahami sistem operasi dasar, marilah kita membahas suatu
sistem dengan Satu prosesor, satu disk, dan satu printer. Pertamatama
kita
membahas langkahlangkah
yang terlibat dalam menjalankan satu program aplikasi.
Setelah kita menjelaskan langkah tersebut, kita akan dapat memahami bagaimana
sistem operasi mengatur eksekusi lebih dari satu program aplikasi pada satu waktu.
Asumsikan bahwa program aplikasi telah dikompilasi dari bentuk bahasa tingkattinggi
ke bentuk bahasa mesin dan disimpan dalam disk. Langkah pertama adalah
mentransfer file tersebut ke dalam memori. Pada saat transfer selesai, eksekusi
program dimulai. Asumsikan bahwa bagian dari tugas program terrnasuk membaca
file data dari disk ke memori, melakukan beberapa komputasi pada data tersebut,
dan mencetak hasilnya. Pada saat eksekusi program mencapai titik di mana file data
diperlukan, maka program meminta sistem operasi untuk mentransfer file data dari
disk ke memori. OS menjalankan tugas ini dan mengembalikan kontrol eksekusi ke
program aplikasi, yang kemudian melanjutkan melakukan komputasi yang diminta.
Pada saat komputasi telah selesai dan hasilnya telah siap dicetak, maka program
aplikasi mengirim lagi permintaan ke sistem operasi. Rutin OS kemudian dieksekusi
agar printer mencetak hasil tersebut.
Kita telah melihat bagaimana kontrol eksekusi diserahterimakan di antara
program aplikasi dan rutin OS. Cara yang mudah untuk mengilustrasikan pembagian
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
12
waktu eksekusi prosessor ini adalah dengan diagram berbasis waktu, seperti yang
ditunjukkan pada Gambar 1.3.
Gambar 1.3. Sharing program user dan rutin OS pada prosessor
Selama periode waktu to hingga t1, suatu rutin OS menginisiasi loading
program aplikasi dari disk ke memori, menunggu hingga transfer tersebut selesai,
dan kemudian menyerahkan kontrol eksekusi ke program aplikasi. Pola aktifitas
yang mirip terjadi selama periode t2 hingga t3 dan periode t4 hingga t5, pada saat
sistem operasi mentransfer file data dari disk dan mencetak hasilnya. Pada t5, sistem
operasi dapat meload
dan mengeksekusi program aplikasi yang lain.
Sekarang, marilah kita memperhatikan suatu cara di mana resource
komputer dapat digunakan lebih efisien jika beberapa program aplikasi diproses.
Perhatikanlah bahwa disk dan prosesor diam selama sebagian besar periode waktu ta
hingga ts. Sistem operasi dapat meload
program berikutnya yang akan dieksekusi
ke dalam memori dari disk pada saat printer beroperasi. Serupa pula dengan itu,
selama to hingga t1, sistem operasi dapat mengatur untuk mencetak hasil program
sebelumnya pada saat program berikutnya diload
dari disk. Jadi sistem operasi
mengatur eksekusi konkuren dari beberapa program aplikasi untuk menghasilkan
penggunaan resource komputer terbaik yang dimungkinkan. Pola eksekusi konkuren
ini disebut multiprogramming atau multitasking.
1.6. Performa
Pengukuran performa komputer yang paling penting adalah seberapa cepat
komputer tersebut dapat mengeksekusi program. Kecepatan komputer mengeksekusi
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
13
program dipengaruhi oleh desain hardware dan instruksi bahasa mesinnya.
Karena
program biasanya ditulis dalam bahasa tingkat tinggi, maka performa juga
dipengaruhi oleh compiler yang mentranslasikan program ke dalam bahasa mesin.
Untuk performa terbaik, perlu untuk mendesain compiler, set instruksi mesin, dan
hardware dengan cara yang terkoordinasi. Kita tidak mendeskripsikan detil desain
compiler dalam modul ini. Kita berfokus pada desain set instruksi dan hardware.
Pada Bagian 1.5, kita mendeskripsikan bagaimana sistem operasi
menumpangtindihkan pengolahan, transfer disk, dan pencetakkan untuk beberapa
program agar menghasilkan penggunaan terbaik dari resource yang tersedia. Waktu
total yang diperlukan untuk mengeksekusi program dalam Gambar 1.4 adalah tsto.
Elapsed time ini adalah ukuran performa seluruh sistem komputer. Waktu tersebut
dipengaruhi oleh kecepatan prosesor, disk, dan printer. Untuk membahas performa
prosesor, kita sebaiknya hanya memperhatikan periode selama prosesor aktif.
Periode tersebut adalah periode yang berlabel Program dan Rutin OS pada Gambar
1.3. Kita akan mengacu pada jumlah periode tersebut sebagai waktu prosesor yang
diperlukan untuk mengeksekusi program. Selanjutnya kita akan mengindentifikasi
beberapa parameter utama yang mempengaruhi waktu prosesor dan mengacu pada
bab yang membahas persoalan yang relevan.
Seperti halnya elapsed time untuk eksekusi program tergautung pada
semua unit dalam sistem komputer, maka waktu prosesor tergantung pada hardware
yang terlibat dalam eksekusi instruksi mesin individu. Hardware tersebut meliputi
prosesor dan memori, yang biasanya dihubungkan dengan bus, sebagaimana yang
ditunjukkan pada Gambar 1.2. Bagian yang berhubungan dengan Gambar ini
diulang dalam Gambar 1.4, termasuk memori cache sebagai bagian dari unit
prosesor. Marilah kita memperhatikan aliran instruksi program dan data antara
memori dan prosesor. Pada awal eksekusi, semua instruksi program dan data yang
diperlukan disimpan di memori utama. Selama eksekusi berjalan, instruksi diambil
satu demi satu melalui bus ke dalam prosesor, dan copyannya
diletakkan di cache.
Pada saat eksekusi suatu instruksi meminta data yang berada dalam memori utama,
data tersebut diambil dan copyannya
ditempatkan di cache. Selanjutnya, jika
instruksi atau item data yang sama diperlukan untuk kedua kalinya, maka akan
langsung dibaca dari cache.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
14
Gambar 1.4. Cache Prosessor
Prosesor dan memori cache yang relatif kecil dapat dibuat pada chip
sirkuit terintegraisi tunggal. Kecepatan internal untuk melaksanakan langkah dasar
pengolahan instruksi pada chip semacam itu sangat tinggi dan dianggap lebih
cepat daripada kecepatan pengambilan instruksi dan data dari memori utama.
Suatu program akan dieksekusi lebih cepat jika perpindahan instruksi dan data
antara memori utama dan prosesor diminimalisasi, yang dicapai dengan
menggunakan cache. Misalnya, suatu instruksi dieksekusi berulang kali selama
periode waktu yang singkat, sebagaimana yang terjadi pada loop program. Jika
instruksi ini tersedia dalam cache maka dapat diambil dengan cepat selama periode
pengulangan penggunaan. Hal yang sama diterapkan pada data yang digunakan
berulang kali. Persoalan desain, operasi, dan performa untuk memori utama dan
cache dibahas dalam Bab 11.
1.6.1 CLOCK PROSESOR
Sirkuit prosesor dikontrol oleh sinyal timing yang disebut clock. Clock
menetapkan interval, waktu reguler, yang disebut siklus clock. Untuk
mengeksekusi instruksi mesin, prosesor membagi tindakan yang akan dilakukan ke
dalam rangkaian langkah dasar, sehingga tiap langkah dapat diselesaikan dalam
satu siklus clock. Panjang P dari satu siklus clock adalah parameter penting yang
mempengaruhi performa prosesor. Kebalikannya adaalah clock rate, R= 1/P, yang
diukur dalam siklus per detik. Prosesor yang digunakan dalam personal computer
dan workstation saat ini memiliki clock rate yang berada dalam rentang beberapa
ratus juta hingga lebih dari milyaran siklus per detik. Dalam terminologi teknik
elektro standar, istilah "siklus per detik" disebut hertz (Hz). Istilah "juta"
ditunjukkan oleh awalan Mega (M). Dan "milyar'dtunjukkan oleh awalan Giga(G).
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
15
Karena itu 500 juta siklus per detik biasanya disingkat menjad 500 Megahertz
(MHz), dan 1250 juta siklus per detik disingkat menjadi 1,25 Gigahertz (GHZ).
Periode clock yang sesuai masingmasing
adalah 2 dan 0,8 nanosecond (ns).
1.6.2 PERSAMAAN PERFORMA DASAR
Sekarang kita memusatkan perhatian pada komponen waktu prosesor dari
elapsed time total. Misalkan T adalah waktu prosesor yang diperlukan untuk
mengeksekusi suatu program yang telah dipersiapkan dalam beberapa bahasa
tingkat tinggi. Compiler menghasilkan program objek bahasa mesin yang sesuai
dengan program source. Asumsikan bahwa eksekusi lengkap dari program
memerlukan N instruksi bahasa mesin. Jumlah N adalah jumlah aktual eksekusi
instruksi, dan tidak harus setara dengan jumlah eksekusi instruksi instruksi mesin
dalam program objek. Beberapa instruksi dapat dieksekusi lebih dari sekali, yaitu
untuk instruksi yang berada di dalam loop. Instruksi yang lain mungkin tidak
dieksekusi sama sekali, tergantung data input yang digunakan. Misalkan jumlah
langkah dasar ratarata
yang diperlukan untuk mengeksekusi satu instruksi mesin
adalah S, di mana tiap langkah dasar diselesaikan dalam satu siklus clock. Jika
clock rate adalah R siklus per detik, maka waktu eksekusi program dinyatakan
sebagai berikut
R
T = N x S
Rumusan ini sering disebut sebagai persamaan performa dasar.
Parameter performa T untuk program aplikasi jauh lebih penting bagi
user daripada nilai individu parameter N, S, atau R. Untuk mencapai performa
tinggi, desainer komputer harus mencari cara untuk mengurangi nilai T, yang
berarti mengurangi N dan S, dan meningkatkan R. Nilai N berkurang jika program
source dikompilasi menjadi instruksi mesin yang lebih sedikit. Nilai S berkurang
jika instruksi memiliki jumlah langkah dasar yang lebih kecil untuk dilaksanakan
atau jika eksekusi instruksi ditumpangtindihkan. Menggunakan clock frekuensi
tinggi meningkatkan nilai tersebut atau R, yang berarti bahwa waktu yang
diperlukan untuk menyelesaikan langkah eksekusi dasar berkurang.
Kita harus menekankan bahwa N, S, dan R bukanlah parameter bebas;
perubahan pada salah satunya dapat mempengaruhi yang lain. Memperkenalkan
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
16
fitur baru dalam desain suatu prosesor akan menuju pada peningkatan performa
hanya jika hasil keseluruhannya mengurangi nilai T Prosesor yang diiklankan
memiliki clock 900Mhz belum tentu memberikan performa yang lebih baik daripada
prosesor 700Mhz karena prosesor tersebut mungkin memiliki nilai S yang berbeda.
1.6.3 OPERASI PIPELINING DAN SUPERSCALAR
Dalam pembahasan di atas, kita mengasumsikan bahwa instruksi
dieksekusi satu demi satu. Karena itu, nilai S adalah jumlah total langkah dasar, atau
siklus clock, yang diperlukan untuk mengeksekusi suatu instruksi. Peningkatan yang
substansial pada performa dapat dicapai dengan menumpangtindihkan eksekusi
instruksi yang berurutan, menggunakan teknik yang disebut pipelining. Misalkan
suatu instruksi
Add R1, R2, R3
yang menambahkan isi register RI dan R2, dan menempatkan jumlahnya
dalam R3. Isi R1 dan R2 mulamula
ditransfer ke input ALU. Setelah operasi
penambahan dilakukan, jumlahnya ditransfer ke R3. Prosesor dapat membaca
instruksi selanjutnya dari memori sementara operasi penambahan dilakukan.
Kemudian jika instruksi tersebut juga menggunakan ALU, operandnya dapat
ditransfer ke input ALU pada waktu yang sama dengan hasil instruksi Add
ditransfer ke R3. Pada kasus ideal, jika semua instruksi ditumpangtindihkan ke
derajat maksimum yang mungkin, maka eksekusi dilanjutkan pada kecepatan
penyelesaian satu instruksi dalam tiap siklus clock. Instruksi individual masih
memerlukan beberapa siklus clock untuk penyelesaian. Tetapi, untuk tujuan
perhitungan T, maka nilai efektif S adalah 1.
Pipelining dibahas secara detil dalam Bab 8. sebagaimana yang akan kita
lihat, nilai ideal S = 1 tidak dapat dicapai dalam praktek karena berbagai alasan.
Akan tetapi, pipelining meningkatkan kecepatan eksekusi instruksri secara
signifikan dan menyebabkan nilai efektif S mendekati 1.
Derajat konkurensi yang lebih tinggi dapat dicapai jika banyak pipeline
instruksi diterapkan pada prosesor. Hat ini berarti digunakannya banyak unit
fungsional, menciptakan jalur paralel di mana berbagai instruksi yang berbeda dapat
dieksekusi secara paralel. Dengan pengaturan tersebut, maka dimungkinkan untuk
memulai beberapa instruksi pada tiap siklus clock. Mode operasi ini disebut
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
17
eksekusi superscalar. Jika mode ini dapat bertahan dalam waktu lama selama
eksekusi program, maka nilai efektif S dapat dikurangi hingga kurang dari satu.
Tentu saja, eksekusi paralel harus mempertahankan kebenaran logika program,
sehingga hasil yang diperoleh harus sama dengan hasil dari eksekusi serial instruksi
program. Banyak dari prosesor performa tinggi saat ini didesain untuk bekerja
dengan cara tersebut.
1.6.4 CLOCK RATE
Terdapat dua kemungkinan untuk meningkatkan clock rate, R. Pertama,
meningkatkan teknologi integratedcircuit
(IC) menjadikan sirkuit logika yang lebih
cepat, sehingga mengurangi waktu yang diperlukan untuk menyelesaikan suatu
langkah dasar. Hal ini memungkinkan periode clock, P, dikurangi dan clock rate, R,
ditingkatkan. Kedua, mengurangi periode clock, P. Akan tetapi jika tindakan yang
harus dilakukan oleh suatu instruksi tetap sama, maka jumlah langkah dasar yang
diperlukan dapat bertambah.
Peningkatan nilai R yang sepenuhnya disebabkan oleh peningkatan
teknologi IC mempengaruhi secara seimbang seluruh aspek operasi prosesor dengan
pengecualian pada waktu yang diperlukan untuk mengakses memori utama. Dengan
adanya cache, persentase akses ke memori utama menjadi kecil. Karena itu
kebanyakan peningkatan performa yang diharapkan dari penggunaan teknologi yang
lebih cepat dapat direalisasikan. Nilai T akan berkurang dengan faktor yang sama
dengan peningkatan nilai R karena S dan N tidak terpengaruh. Pengaruh pada
performa dari perubahan cara pembagian instruksi menjadi langkah dasar lebih sulit
untuk diperkirakan. Persoalan ini dibahas dalam Bab 8.
1.6.5. SET INSTRUKS1: CISC DAN RISC
Instruksi sederhana memerlukan eksekusi sejumlah kecil langkah dasar.
Instruksi kompleks melibatkan sejumlah besar langkah. Untuk prosesor yang hanya
memiliki instruksi sederhana, sejumlah besar instruksi mungkin diperlukan untuk
menjalankan suatu tugas pemrograman tertentu. Hal ini dapat menuju pada nilai N
yang besar dan nilai S yang kecil. Sebaliknya, jika instruksi individu melaksanakan
operasi yang lebih kompleks, maka diperlukan instruksi yang lebih sedikit, menuju
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
18
pada nilai N yang lebih rendah dan nilai S yang lebih besar. Tidak tampak jelas
bahwa satu pilihan lebih baik dari pilihan yang lain.
Pertimbangan utama dalam memperbandingkan dua pilihan adalah
penggunaan pipelining, Kita telah menjelaskan sebelumnya bahwa nilai efektif S
dalam prosesor terpipeline
mendekati 1 sekalipun jumlah langkah dasar per
instruksinya mungkin dapat dianggap lebih besar. Hal ini tampaknya menyatakan
secara tidak langsung bahwa instruksi kompleks dikombinasikan dengan pipelining
akan mencapai perfonna terbaik. Akan tetapi, lebih mudah untuk mengimplementasikan
pipelining yang efisien dalam prosesor dengan set instruksi yang
sederhana Kesesuaian set instruksi tersebut untuk eksekusi pipeline adalah
pertimbangan yang penting dan seringkali menentukan.
Desain set instruksi suatu prosesor dan pilihan yang tersedia dibahas dalam
Bab 2. Manfaat relatif prosesor dengan instruksi sederhana dan prosesor dengan
instruksi yang lebih kompleks telah dipelajari secara luas. Pendahulunya disebut
Reduced Instruction Set Computers (RISC), dan yang terbaru disebut Complex
Instruction Set Computers (CISC). Sekalipun menggunakan istilah RISC dan CISC
agar kompatibel dengan deskripsi kontemporer, kami memperingatkan pembaca
untuk tidak berasumsi bahwa keduanya secara nyata mendefinisikan kelaskelas
prosesor. Suatu desain prosesor tertentu adalah hasil dari banyak pertukaran. Istilah
RISC dan CISC mengacu pada prinsip dan teknik desain di beberapa bagian dalarn
modul
1.6.6 COMPILER
Compiler mentranslasikan bahasa pemrograman tingkat tinggi menjadi
rangkaian instruksi mesin. Untuk mengurangi N, kita perlu memiliki set instruksi
mesin yang sesuai dan compiler yang dapat menggunakannya dengan baik. Suatu
optimizing compiler memanfaatkan berbagai fitur prosesor target untuk mengurangi
basil kali N X S, yang merupakan jumlah total siklus clock yang diperlukan untuk
mengeksekusi suatu program. Kita akan melihat pada Bab 8 bahwa jumlah siklus
tidak hanya tergantung pada pilihan instruksi, tetapi juga pada urutan instruksi
tersebut muncul dalam program. Compiler dapat menata ulang instruksi program
untuk mencapai performa yang lebih baik. Tentu saja, perubahan semacam itu tidak
harus mempengaruhi hasil komputasi.
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
19
Dari luar, compiler tampak sebagai entitas terpisah dari prosesor yang
digunakannya dan mungkin bahkan berasal dari vendor yang berbeda. Akan tetapi,
compiler kualitas tinggi harus dihubungkan dengan erat pada arsitektur prosesor.
Compiler dan prosesor seringkali didesain pada waktu yang sama, dengan banyak
interaksi antara desainer untuk mencapai hasil terbaik. Tujuan akhirnya adalah
untuk mengurangi jumlah total siklus clock yang diperlukan untuk melakukan tugas
pemrograman yang diminta.
1.6.7 PENGUKURAN PERFORMA
Sangat penting untuk dapat memperkirakan perfonna suahr komputer.
Desainer komputer menggunakan perkiraan perfonna untuk mengevaluasi
keefektifan fitur barn. Produsen menggunakan indikator performa dalarn proses
pemasaran. Pembeli menggunakan data tersebut untuk memilin di antara model
komputer yang tersedia.
Pembahasan sebelumnya menyarankan bahwa parameter satusatunya
yang
mendeskripsikan secara tepat performa suatu komputer adalah waktu eksekusi, T,
untuk program tertentu. Meskipun Persamaan 1.1 sederhana secara konseptual,
namun menghitung nilai T tidak sederhana. Lagi pula, parameter seperti kecepatan
clock dan berbagai fitur arsitektural bukan indikator yang handal dari performa yang
diharapkan.
Untuk alasan tersebut, komunitas komputer mengadopsi ide pengukuran
performa komputer menggunakan program benchmark. Untuk memungkinkan
perbandingan tersebut, maka harus dibuat program yang terstandarisasi. Pengukuran
perfonna adalah waktu yang diperlukan suatu komputer untuk mengeksekusi
benchmark tertentu. Pada awalnya, beberapa pendekatan dibuat untuk menghasilkan
program artifisial yang dapat digunakan sebagai benchmark standar. Tetapi program
sintetik tidak dapat memprediksi perfonna yang diperoleh dengan tepat pada saat
program aplikasi riil dijalankan.
Praktek yang diterima saat ini adalah menggunakan pilihan program
aplikasi riil yang disetujui untuk mengevaluasi performa. Suatu organisasi nirlaba
yang disebut System Performance Evaluation Corporation (SPEC) memilih dan
mempublikasikan program aplikasi yang representatif untuk domain aplikasi yang
berbeda, bersama dengan hasil tes untuk banyak komputer yang tersedia secara
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
20
komersial. Untuk komputer generalpurpose,
sekelompok program benchmark
dipilih pada tahun 1989. Program tersebut dimodifikasi dan dipublikasikan pada
tahun 1995 dan dimodifikasi lagi pada tahun 2000.
Programprogram
yang dipilih berada dalam rentang dari mulai
memainkan game, compiler, dan aplikasi basis data hingga program yang intensif
secara numerik dalam astrofisika dan kimia kuantum. Pada tiap kasus, program
tersebut dikompilasi untuk computer under test, dan dilakukan pengukuran running
timenya
pada komputer riil. Program yang sama juga dikompilasi dan dijalankan
pada satu komputer yang dipilih sebagai referensi. Untuk SPEC95, referensinya
adalah SUN SPARCstation 10/40. Untuk SPEC2000, komputer referensinya adalah
workstation UltraSPAKCIO
dengan prosesor 300MHz
U1traSPARCIIi.
SPEC
rating dihitung sebagai berikut
Runningtime pada komputer under test
SPEC = Runningtime pada komputer referensi
Jadi SPEC rating 50 berarti computer under test 50 kali lebih cepat dari
UltraSPARC10 untuk benchmark tersebut. Tes tersebut diulang untuk semua
program dalam kelompok SPEC, dan dilakukan perhitungan ratarata
geometrik dari
hasil tersebut. Misalkan SPEC adalah rating untuk program i dalam kelompok
tersebut. Keseluruhan SPEC rating untuk komputer tersebut dinyatakan
n
i
n
i
SPEC rating SPEC
1
1 ÷
ø
ç ö
è
= æ P
=
Dimana n adalah jumlah program dalam kelompok tersebut
Karena waktu eksekusi aktual adalah terukur, maka SPEC rating adalah
ukuran dari efek gabungan semua faktor yang mempengaruhi performa, termasuk
compiler, system operasi, prosessor, dan memori computer yang sedang diuji.
1.7. MULTIPROSESOR DAN MULTIKOMPUTER
Sejauh ini, kita telah membahas komputer dengan satu prosesor. Sistem
komputer besar dapat berisi sejumlah unit prosesor, yang disebut sistem
multiprosesor. Sistem tersebut mengeksekusi sejumlah tugas eksekusi yang berbeda
secara paralel, atau mengeksekusi sub tugas dari suatu tugas besar tunggal secara
paralel. Semua prosesor biasanya memiliki akses ke semua memori dalam sistem
semacam itu, dan istilah sistem multiprosesor sharedmemory
sering digunakan
Modul 1
D3 TKJ (Teknik Komputer dan Jaringan)
Departemen Pendidikan Nasional
21
untuk memperjelas sistem ini. Performa tinggi sistem tersebut muncul bersama
dengan peningkatan kompleksitas dan biaya. Selain banyak prosesor dan unit
memori, biaya meningkat karena adanya kebutuhan jaringan interkoneksi yang lebih
kompleks.
Berbeda dengan sistem multiprosesor, dimungkinkan penggunaan
kelompok komputer lengkap yang terinterkoneksi untuk mencapai daya komputasi
total yang tinggi. Komputer tersebut biasanya hanya memiliki akses ke unit memorinya
sendiri. Pada saat tugas yang dieksekusinya perlu untuk mengkomunikasikan
data, maka komputer tersebut melakukannya dengan mengirimkan pesan melalui
jaringan komunikasi. Sifat ini membedakannya dari multiprosesor sharedmemory,
dengan nama multikomputer messagepassing.