The von Neumann Model The von Neumann Model The von Neumann Model The von Neumann Model The von Neumann Model
NO T Simbol yang menunjukkan operasi NO T adalah “ NO T, “ ’” ,
atau “
”
Konvensional IEC
Masukan Keluaran
A Q = NO T A
1 1
G erbang Turunan
NAND NOT AND
Konvensional IEC
Masukan Keluaran
A B
Q = A NAND B 1
1 1
1 1
1 1
NO R NOT O R
Konvensional IEC
Masukan Keluaran
A B
Q = A NO R B 1
1 1
1 1
XO R EXCLUSIVE O R
G erbang XO R adalah rangkaian elektronik yang mengeluarkan nilai tinggi 1 jika salah satu, tapi tidak
keduanya, masukannya bernilai 1.
Logika proses gerbang XO R adalah sbb:
Logika proses gerbang XO R adalah sbb:
Q = A
B = A’.B+ A.B’
Konvensional IEC
Masukan Keluaran
A B
Q = A XO R B 1
1 1
1 1
XNO R EXCLUSIVE NOT O R
G erbang XO R adalah rangkaian elektronik yang mengeluarkan nilai rendah 0 jika salah satu, tapi tidak
keduanya, masukannya bernilai 1.
Logika proses gerbang XO R adalah sbb:
Logika proses gerbang XO R adalah sbb:
Q = A
B ’= A’.B’+ A.B
Konvensional IEC
Masukan Keluaran
A B
Q = A XO R B 1
1 1
1 1
1 4. ALU
4.1. 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 masing
masing 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
CyCarry Out = 1. Dengan demikian, half adder memiliki 2 masukan A dan B dan dua keluaran S dan
Cy.
A B
S Cy
1 1
1 1
1 1
1
Tabel 4.1.
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
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
Tabel 4.2.
Dari tabel diatas dapat dibuat persamaan boolean sebagai berikut : C
B A
C B
A C
B A
C B
A S
+ +
+ =
C B
A S
Å Å
=
C B
A C
B A
C B
A C
B A
Cy +
+ +
= Dengan menggunakan peta karnaugh, Cy dapat diserhanakan menjadi :
Cy = AB + AC + BC
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.
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. 10
2
+ 10
2
1 Carry out
10 10
+ 100
2. 0100
2
+ 0111
2
1 Carry
0100 0111 +
1011
3. 11111
2
+ 1111
2
+ 11101
2
+ 10111
2
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
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.
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 5
10
= 9 7 4 5
10
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 5
10
= 9 7 4 4
10
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
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 0
10
= 9 5 0 0
10
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 0
10
= 9 4 9 9
10
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 9
10
1001
2
dengan 5
10
0101
2
Komplemen2 dari –5 0101.
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 5
10
dengan 9
10
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
1 1 + 1
1 0 1
0 0
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
1 1 1 menunjukkan negatif
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.
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.
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 :
10
10
: 4
10
= 1010
2
: 100
4
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,1
2
atau 2,5
10
.
ARITHMETIC LO G ICAL UNIT ALU
Arsitektur Komputer
PENDAHULUAN
Empat metoda komputasi dasar yang dilakukan oleh ALU komputer : penjumlahan, pengurangan,
perkalian, dan pembagian.
Rangkaian ALU dasar terdiri ata s gerbang O R, AND, dan rangkaian f ull adder 1 bit.
dan rangkaian f ull adder 1 bit.
Rangkaian f ull adder 1 bit pada rangkaian ALU dasar pada a walnya hanya melakukan penjumlahan
unsigned number.
Pengembangan lebih lanjut pada rangkaian ALU dasar mampu melakukan operasi pengurangan.
RANGKAIAN ALU DASAR KOMPUTER
A B
Op
+
1
2
C
Cin
Cout
Tanpa Fungsi Pengurangan Dengan Fungsi Pengurangan
O perasi Aritmatika Dasar
Addition Penjumlahan
Complements
Subtraction Pengurangan
Subtraction Pengurangan
Penjumlahan Biner
+ 0 + 1
1
a b
1
+ 0
1 1
+ 1 1 0
Carry Bit
c d
Contoh Penjumlahan Biner dengan operand lebih dari 1 bit
1011
+ 101 1010
+ 100 1011
+ 1100
a b
c
10011001
+ 101100
11000101 101
+ 1001
1110 10000
1110 10111
d e
Binary Complement
Operasi 1s Complement
1
1
Example
1 1 0 0 1 0 1 1 0
0 0 1 1 0 1 0 0 1
1
Two’s Complement
Nilai Two’s complement bilangan biner diperoleh dengan menambahkan nilai ‘1’
pada hasil One’s Complement.
1001110 1001110
0110001 + 1
0110010
One’s Complement
Tw o’s Complement
Pengurangan Biner
Pengurangan Biner diimplementasikan dengan menjumlahkan Two’s complement
bilangan yang akan dikurangkan.
Example
Tw o’s complement
of 1001
1101 1101
- 1001 +
0111 10100
Carry yang dihasilkan dapat diabaikan. Sehingga, hasilnya adalah 0100.
of 1001
RANGKAIAN PERKALIAN
Dua Buah bilangan biner dapat dikalikan dengan metoda yang sama dengan metoda perka lian
pada bilangan desimal.
Sebagai pengantar akan ditunjukkan operasi perkalian konvensional dengan bilangan tak
perkalian konvensional dengan bilangan tak bertanda unsigned number.
Sebagai contoh akan ditunjukkan operasi perkalian untuk operand Multiplicand M = 1110 dan
Multiplier Q = 1011.
Gambaran Proses Perkalian 4 Bit
Konsep dasar perkalian konvensional Perkalian Konvensional Implementasi HW
ARRAY MULTIPLIER UNTUK BILANGAN UNSIGNED
m
3
m
2
m
1
m q
q
1
q
2
q
3
p p
1
p
2
p
3
p
4
p
5
p
6
p
7
Struktur Rangkaian
FA
q
j
c
in
c
out
m
k
Bit of PPi
Blok Pada Baris Kedua dan Ketiga FA
m
k
m
k+1
q q
1
c
in
c
out
Blok Pada Baris Pertama
Perkalian Bilangan Bertanda
1110 1011
x 00
01110 01110
Multiplicand M Multiplier Q
+14 +11
+ Partial Product 0
1 0010
1011 x
11 10010
1 10010
Multiplicand M Multiplier Q
-14 +11
+ Partial Product 0
01110 00000
+ 010101
+ 001010
01110 +
0010011010 Partial Product 1
Partial Product 2
Product P +154
010011 00000
+ Partial Product 3
1 10010
00000 +
1 101011
+ 1
110101 1
10010 +
1101100110 Partial Product 1
Partial Product 2
Product P -154
1 101100
00000 +
Partial Product 3
Critical Delay Path Pada Array Multiplier
m
3
m
2
m
1
m q
qq
1
q
2
q
3
p p
1
p
2
p
3
p
4
p
5
p
6
p
7
Masalah Pemecahan Pada Array Multiplier
Critical Delay Path nya besar
Untuk meningkatkan perf ormansi multiplier digunakan konsep pipelining
Pipelining mampu mengurangi waktu siklus tetapi tidak mengurangi waktu total proses perkallian.
Salah satu algoritma untuk mempercepat perkalian ini adalah Booth encoding algorithm.
Booth Encoding Algorithm
Merupakan salah satu a lgoritma untuk meningkatkan kecepatan proses perkalian
Algoritma ini menggunakan ide dasar bahwa proses adder-subtractor secara kecepatan dan tingkat
kesederhanaan rangkaian ha mpir sama dengan adder sederhana.
Bentuk umum algoritma ini berhubungan dengan 3 bit pengali pada satu waktu yang membentuk proses
perkalian dua tingkat.
Jika dinyatakan representasi 2’s complement multiplier y :
y = -s
n
y
n
+ 2
n-1
y
n-1
+2
n-2
y
n-2
+ …
Dengan ide dasar : 2
a
= 2
a+1
– 2
a
Dua item awal persamaan pertama dapat dinyatakan sebagai :
Algoritma Booth
Dua item awal persamaan pertama dapat dinyatakan sebagai :
2
n
y
n-1
–y
n
+ 2
n-1
y
n-2
– y
n-1
Setiap bentuk merupakan satu tahapan pada algoritma perkalian dasar.
Tabel Recoding Bits
i i-1 i-2
0 0 0 0 0 1
x 0 1 0
0 1 1 1 0 0
1 0 1 1 1 0
1 1 1 x
2x -2x
-x -x
Algoritma Perkalian Multioperand Dengan Fungsi Logaritmik dan MSB First BIT Adder
Salah satu algoritma untuk mengatasi masalah waktu proses dalam multiplikasi.
Merupakan algoritma per kalian paralel yang menggabungkan Logarithmic Multiplier dan
Multioperand MSB f irst add er.
Pada algoritma Logaritmik, perkalian dilakukan dengan menjumlahkan operand satu sama lain.
Penjumlahan multioperand dengan metode MSB First Adder adalah suatu konsep metoda penjumlahan
sejumlah bilangan dengan dimulai dari bit MSB nya terlebih dahulu.
Algoritma dan Model Arsitektur Perkalian Logaritmik 2 O perand
Ide dasar perkalian dengan metode logaritmik dilakukan dalam bentuk penjumlahan sesuai dengan
persamaan sebagai berikut :
LogAxB = Log A + Log B
Log
2
AxB = Log
2
A + Log
2
B
AxB = Antilog
2
Log
2
A + Log
2
B
Yang perlu diperhatikan dalam operasi perkalian logaritmik ini adalah error yang dapat muncul pada
saat konversi ke bentuk logaritmik dan antilogaritmik.
Perkalian Logaritmik 2 O perand
Algoritma Perkalian Logaritmik antara 2 buah bilangan
Berdasarkan persamaan di atas, langkah yang harus ditempuh adalah sebagai berikut :
Ambil 2 buah bilangan biner, masukkan kedua bilangan ke dalam register A dan B.
Konversikan kedua bilangan tersebut dalam nilai logaritma Konversikan kedua bilangan tersebut dalam nilai logaritma
basis 2 dan masukkan ke dalam register C dan D.
Lakukan penjumlahan isi register C dan D, simpan hasilnya pada Accumulator.
Konversikan hasil penjumlahan tersebut dengan menggunakan antilog2 dan simpan hasilnya pada suatu register.
Algoritma dan Model Arsitektur Penjumlahan Multioperand Dengan MSB First Bit Process
Diaplikasikan untuk sistem waktu nyata.
Perbedaan dengan algoritma penjumlahan konvensional terletak pada urutan penjumlahan yang
dilakukan.
Pada algoritma ini bit yang pertama kali dijumlahkan
Pada algoritma ini bit yang pertama kali dijumlahkan adalah bit MSB
MSB-1
LSB. Tenggat waktu yang ditetapkan dapa t dipenuhi.
Dengan algoritma ini, sebelum penjumlahan sampai bit LSB, hasil yang tersimpan pada accumulator telah
dapat digunakan.
Arsitektur Penjumlahan Multioperand MSB
First Bit
Counter Register
d d
1
d
2
d
9
d
10
16 bit
Bit Placer
Counter Pulsa 4 bit synch. Binary counter
20 bit
Accumulator Adder
d
11
CLK
20 bit 19
Tahapan Algoritma yang dilakukan
Masukkan semua operand n bit ke dalam N register.
Untuk N operand dengan n bit data, lakukan langkah-langkah berikut :
Jumlahkan semua MSB dari setiap operand dan letakkan hasilnya pada accumulator.
hasilnya pada accumulator.
Jumlahkan semua MSB-1 dan jumlahkan hasilnya dengan yang tersimpan pada accumulator lalu simpan hasilnya
kembali pada accumulator.
Lakukan langkah kedua tersebut sampai bit LSB dari setiap operand selesai dijumlahkan.
Algoritma Perkalian Logaritmik Multioperand
Secara konsep akan melakukan perkalian dengan banyak operand dengan cara menjumlahkan nilai logaritmik setiap
operand.
Konsep dasar secara matematis :
Log
2
AxBx… xN = Log
2
A + Log
2
B + … + Log
2
N Jadi secara umum CPU hanya melakukan proses penjumlahan
Jadi secara umum CPU hanya melakukan proses penjumlahan untuk sejumlah operand. Namun untuk mempercepat hasil
penjumlahan, digunakan algoritma penjumlahan dengan dimulai dari MSB
LSB.
Untuk mendapatkan hasil logaritma basis 2 dari tiap operand, dan mengembalikannya ke bentuk asal, digunakan look up
table yang digabungkan dengan konsep segmentasi.
Lanjutan Algoritma
Arsitektur sistem ini dibatasi untuk operand 8 bit dan jumlah operand maksimal yang terlibat dalam
operasi perkalian sebanyak 8 operand juga.
O perasi maksimal yang dapat dilakukan adalah 255
8
. 255
8
.
Berarti bit data maksimum yang dihasilkan dari perkalian 8 operand 8 bit dengan look up table
adalah 13 bit.
Algoritma Perkalian 8 operand 8 bit adalah :
Cocokkan isi register 1 s.d 8 dengan LUT nilai logaritmik basis 2.
Ambil data dari LUT dan masukkan ke dalam register 9 s.d 16.
Lakukan penjumlahan multioperand dengan dimulai dari MSB.
Hasil penjumlahan yang tersimpan pada accumulator dicocokkan dengan LUT antilog basis 2 untuk
mendapatkan nilai sebenarnya.
Tabel 1 : Proses perkalian manual
Langkah iterasi
Operand A Operand B
Hasil Accumulator
1 : 8 00000001
00000010 00000010
2 : 8 00000010
00000011 00000110
3 : 8 00000110
00000100 00011000
4 : 8 00011000
00000101 01111000
5 : 8 01111000
00000010 11110000
6 : 8 11110000
00000001 11110000
7 : 8 11110000
00000001 11110000
Tabel 2 :
Clock Operand A dan B
Accumulator
1 A :
1000000000000 1000000000000
B : 0000000000000
2 A :
0100000000000 1100000000000
B : 1000000000000
3 A :
0010000000000 1110000000000
B : 1100000000000
4 A :
0001000000000 1111000000000
B : 1110000000000
5 A :
0000100000000 1111100000000
B : 1111000000000
6 A :
0000010000000 1111110000000
B : 1111100000000
7 A :
0000001000000 1111111000000
B : 1111110000000
8 A :
0000000100000 1111111100000
B : 1111111000000
9 A :
0000000010000 1111111110000
B : 1111111100000
10 A :
0000000001000 1111111111000
B : 1111111110000
KESIMPULAN
Perkalian dengan menggunakan algoritma perkalian dengan logaritmik lebih cepat dan
ef isien, karena hanya membutuhkan proses penjumlahan.
Faktor error merupakan ekses yang muncul saat terjadi proses konversi nilai logaritmik dan
antilogaritmik yang dilakukan.
REPRESENTASI DATA
Arsitektur Komputer
Abstraksi Data
Raw
data kehidupan manusia - Personal data input [lewat 5 indra]
- Mass media [audio visual] data input [populer,
ilmiah, f iksi, riset, dll.]
Pengertian Dasar - Data
Inf ormasi - Komunikasi
- Kode notasi simbol Icon
Bentuk Kode - Karakter umum: Numerik Alf abet
- Karakter khusus
Lanjutan …
Jenis Representasi
- Eksternal human-readable
a. notasi dalam bahasa pemrograman
b. f asilitas untuk: pemrogram, desainer b. f asilitas untuk: pemrogram, desainer
bahasa, pemakai
c. berbasis notasi aljabar desimal, sign magnitude
Lanjutan …
- Internal machine readable
a. notasi aktual dalam komputer
b. f asilitas untruk konstruksi HW
c. meningkatkan ef isiensi
d. HW menjadi handal
Konsep Tipe Data
Def inisi matematik - cardinal unsigned numbers integer: 0,1,2, … ]
- signed numbers integer: -2, -1, 0, 1, 2, … ] - real number [4.5, -8.47, -0.6 107 ]
- real number [4.5, -8.47, -0.6 107 ] - character
- string - boolean [true, f alse]
- beragam struktur gabungan 6 tipe tersebut
Lanjutan…
ADT abstract data type [a specif ied set of items which certa in properties operations]: boolean,
rate, time, speed, area, ..
Variabel, konstanta, atau ADT Format Dasar
Format Dasar - Tipe inf ormasi : a instruksi, b data : numbers
numerical : f ixed-point f loating point, nonnumerical
- Length : bit, byte,word, double long word - Storage bit order : most lef t - least right
signif icant
Sistem Bilangan
Biner : basis 2; {0, 1}
O ktal: basis 8; {0, 1, 2, 3, 4, 5, 6, 7}
Desimal: basis 10; {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Heksadesimal: basis 16;
Heksadesimal: basis 16; {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
Lanjutan…
Contoh: - Bilangan biner: 11101
2
- Bilangan oktal: 54731
8
- Bilangan desimal: 1250910 - Bilangan desimal: 1250910
- Bilangan heksadesimal: A18E616
Konversi Bilangan
Satu sistem bilangan bisa dialih bentuk ke sistem bilangan lain.
Contoh, biner dan oktal ke desimal: a. 1 1 1 0 12 = d4 d3 d2 d1 d0
a. 1 1 1 0 12 = d4 d3 d2 d1 d0 = 1 x 2
4
+ 1 x 2
3
+ 1 x 2
2
+ 0 x 2
1
+ 1 x 2
= 16 + 8 + 4 + 0 + 1 = 29
10
b. 668 = 6 x 8
1
+ 6 x 8 = 48 + 6 = 54
10
Lanjutan…
Contoh, desimal ke oktal:
Berapa konversi: 1492
10
= … … .
2
?
Lanjutan …
Algoritma konversi dari desimal
place = 0; number = number to be converted
w hile number 0 {
digit[place] = number mod B ; number = number div B ;
place = place + 1 ; }
Unsigned Integer
–
Unsigned integer
hanya untuk bilangan positif, jika negatif perlu f ormat baru.
– Kelebihan biner
• mud ah dibuat • tidak ambigu noise immunity
• bisa dicopy dengan sempurna f lawlessly • untuk bilangan 8-bit memungkinkan 256 pola 0 1,
sejumlah: 128 negatif + 128 positif.
Unsigned Integer
Unsigned variable disimpan lansung dalam format biner
No. of Binary
No. of bits
Binary Min
Max
n 2
n
- 1
Unsigned Integer
Type No. of
bytes No. of
bits Range
unsigned char 1
8 0 … 255
unsigned short 2
16 0 … 65,535
unsigned int 4
32 0 … 4,294,967,295
unsigned long 4
32 0 … 4,294,967,295
• Representasi –
Signed Integer
direpresentasikan selain oleh nilai bilangan juga dengan adanya tambahan
tanda [negatif ].
Signed Integer
• Tipe – Sign and Magnitude SM
– O ne’s Complement O C – Two’s Complement TC
Signed Integer
• Notasi Sign Magnitude SM – Format:
– Bila digit pada posisi terkiri sign
Nol maka bilangan tersebut positif, Satu maka bilangan tersebut negatif
[negatif nol =positif nol = nol].
– Rentang SM untuk integer m dan I:
Signed Integer
• Sign Magnitude SM: – Penjumlahan, aturan:
sign tidak dijumlahkan, hanya magnitude buang carry out dari msb magnitude
jumlahkan yang sign-nya sama + ke + atau - ke - sign hasil = sign penambah
– Contoh
Signed Integer
• Sign Magnitude SM: – Pengurangan, aturan:
lakukan jika sign sama, jika sign berbeda, ubah soal ke penjumlahan
perbandingkan magnitude, lakukan: a - b menjadi a + -b
a + b menjadi a - -b
– Contoh – Contoh
Signed Integer
• One’s complement OC – Definisi
• 2
n
- 1 → memberikan jumlah n digit
• komplementasi bilangan biner ubah 1 ke 0 dan 0 ke 1
– Contoh • OC dari 00101110 adalah 11010001
• OC dari 00101110 adalah 11010001
– Rentang nilai
Signed Integer
Signed integers are generally stored in 2’s complement format.
Most Significant Bit MSB is considered the sign bit
1 for negative numbers -- 0 for positive numbers
1 for negative numbers -- 0 for positive numbers
No. of bits
Binary 2’s compliment
Min Max
n -2
n-1
2
n-1
- 1
Signed Integers
To change the sign of any number
1.
Invert all the bits
2.
Add 1
2
10
== 0010
2
= 1101 + 1
---- 1110
2
= -2
10
-2
10
== 1110
2
= 0001 + 1
---- 0010
2
= 2
10
BILANGAN FLOATING-POINT
Representasi bilangan floating-point mempunyai tiga bagian: 1.
Mantissa 2.
Basis 3.
Eksponen
Contoh :
Bilangan Mantissa
Basis Eksponen
3 x 10
6
3 10
6 110 x 2
8
110 2
8 6132.784
0.6132784 10
4 34.58
0.3458 10
2
Mantissa dan eksponen direpresentasikan secara eksplisit dalam komputer. Tetapi basisnya base adalah yg digunakan oleh
komputer tersebut.
Umumnya komputer mengikuti basis 2.
Umumnya sebuah bilangan f direpresentasikan sebagai f = m x r
e
Umumnya sebuah bilangan f direpresentasikan sebagai f = m x r di mana m adalah mantissa, r adalah basis dari sistem bilangan dan
e adalah eksponen pangkat dari basis yg digunakan.
Format umum bilangan floating-point:
S Eksponen
Mantissa
Semula penggunaan format berbeda antar pabrik komputer untuk merepresentasikan bilangan floating-point. Tetapi saat
ini telah digunakan format standar ANSIIEEE secara luas format IEEE 754. IBM mempunyai standar khusus
Ada dua format standar IEEE 754 yg dikeluarkan yaitu untuk presisi tunggal single precision dan format standar untuk
bilangan presisi ganda double precision bilangan presisi ganda double precision
S Eksponen, 8 bit
Mantissa, 23 bit
Format floating-point presisi tunggal 32 bit
S Eksponen, 11 bit
Mantissa, 52 bit
Format floating-point presisi ganda 64 bit
NORMALISASI FLOATING-POINT
Bilangan floating-point dapat direpresentasikan dgn banyak cara seperti yg ditunjukkan untuk bilangan desimal 110 x 28:
110 x 2
8
, 11 x 2
9
, 1100 x 2
7
, 1.1 x 2
10
, 0.11 x 2
11
, .011 x 2
12
.... dst.
Suatu bilangan floating-point berada dalam bentuk ternormalisasi jika Most Significant Digit dari mantissa bukan-nol non-zero.
jika Most Significant Digit dari mantissa bukan-nol non-zero.
Untuk mengubah menjadi bilangan yg ternormalisasi, mantissa harus digeser ke kanan atau ke kiri dgn tepat, menaikkan atau
menurunkan eksponen. Jika semua bilangan floating-point direpresentasikan dalam komputer dgn bentuk ternormalisasi,
maka posisi bit satu dapat disimpan dengan mengabaikan MSB selalu 1. Ini disebut hidden 1 principle.
1. Pertama ubah menjadi bilangan biner.
2. Normalisasikan bilangan tsb sehingga terdapat satu digit nonzero di ujung terkiri, lakukan adjust exponent sesuai
kebutuhan. Konversi format saintifik ke format standar IEEE
3. Simpan digit biner mantissa ke sisi kanan
4. Tambahkan 127 ke bagian exponent dan ubah hasil penjumlahan tersebut ke biner untuk nilai exponent yg akan disimpan. Untuk
double precision, tambahkan 1023 ke exponent.
5. Sign bit = 1 untuk bilangan negatip dan sign bit = 0 untuk bilangan positip.
S E’
M
Representasi nilai = ±1.M x 2
E’ 127
Bit tanda: 0 = +
1 =
representasi 8-bit excess -127 exponent
23-bit mantissa fraction
Single precision
biased exponent
S E’
M
Representasi nilai = ±1.M x 2
E’ 1023
representasi 11-bit excess -1023 exponent
52-bit mantissa fraction
Double precision
Bit tanda: 0 = +
1 =
biased exponent
Contoh: Tuliskan +0.0010110… x 2
9
dalam format
single precision
standar IEEE 754
Solusi:
Setelah dinormalisasi : +1.0110… x 2
6
E’ = 6 + 127 = 133 = 10000101
10000101 0110…
Contoh: Tuliskan
0.75
10
dalam format single precision
standar IEEE
Solusi: Sign bit, S = 1 negatip
0.75 x 2 = 1.5 → 1
0.5 x 2 = 1.0 → 1
0.0 x 2 = 0.0 → 0
0.11000000 = 0.11000000 x 2
dinormalisasi: 1.10 x 2
1
M = 10000000000000000000000000
1 01111110
10000000000000000000000 M = 10000000000000000000000000
E’ = E + 127 = 1 + 127 = 126 = 01111110
E = 1
Sehingga representasi single precision 0.75
10
:
Typical 32-bit floating-point format
+1.638125 X 2
20
= Latihan:
1 10010011
10100011010111011001100 10010011
101000110101110…. 1.638125 X 2
20
=
1 01101011
10100011010111011001100 01101011
10100011010111011001100 +1.638125 X 2
―20
=
1.638125 X 2
―20
=
Latihan: A. Tuliskan dalam format
single precision
standar IEEE 754:
1. + 5.375 x 10
3 10
2. + 200.0
10
3. - 13.275 3. - 13.275
10
4. - 0.05375 x 10
2 10
10000101 01100000000000000000000
B. Tuliskan dalam format notasi saintifik desimal
Instruction Set Architecture
Arsitektur Komputer
Instruction Set Architecture
• simplified DLX
– A RISC architecture with only two instruction formats. • 32
general purpose registers , each 32 bits wide: R0-R31.
• Register R0
always stores the value of 0. •
Load and
Store operations move data between the general purpose registers and
the main memory. • All instructions are represented by a
word = 4 bytes = 32 bits.
• All instructions are represented by a word
= 4 bytes = 32 bits. • The DLX architecture also has a few
special purpose registers mainly used for
handling interrupts. Special move instructions transfer data between general and special purpose registers.
The Simplified DLX
An overview of the execution cycle
©Dr. Guy Even Tel Aviv Univ.
The Registers
Registers are clock-enabled flip-flops. Their goal is to store binary data. The registers are divided into two major groups:
General Purpose Registers
Special Registers
In the Special Registers
environment In other
environments In the General
Purpose Registers GPR
environment
The General Purpose Registers
The General Purpose Registers R0-R31: •The GPR environment contains 32 registers; each 32 bits long.
• Store data arguments and results of instructions. • GPR environment functionality: in every clock cycle:
• may read the values of 2 registers values appear in A B. • may write the value of 1 register value given via C.
• implemented via a dual-port RAM. • implemented via a dual-port RAM.
• registers A,B,C are not part of ISA they are part of datapath.
GPR Env. A
B C
Responsible for storing information that is essential for running DLX programs. List of special registers:
1. Program Counter PC - stores the address of the current instruction. 2. Instruction Register IR - stores the current instruction.
3. More Special Purpose Registers – needed to support interrupt handling.
Special Registers
Datapath registers not part of ISA: 1. Memory Data Register MDR - stores data that is written to the memory or
read from the memory. The MDR holds data for storeload instructions. 2. Memory Address Register MAR -stores the memory address that is accessed
in loadstore instructions.
The Instruction Formats
Two formats of instructions
I-Type Immediate
R-Type Register
Opcode, two registers a 16-bit
constant Opcode, three
registers an additional 6-bit
opcode function
Opcode RS1 RD Immediate 6 5 5 16
Opcode RS1 RS2 RD Function 6 5 5 5 5 6
The Instruction Formats Cont.
Let’s see some examples:
1 001011 00110 01001 0000000000111111 This is an I-type instruction because IR[31:26] is not 000000.
001011 is the opcode of the addi instruction. 00110 is the binary representation of 6.
01001 is the binary representation of 9. 0000000000111111 – 2’s complement representation of 63.
Opcode RS1 RD Immediate
0000000000111111 – 2’s complement representation of 63.
The instruction is: addi R6 R9 63
and in other words: [ R9 ] [R6] + 63
representation: 2’s complement representation is used for the immediate field and for the general purpose registers.
Assembly
Semantics
The Instruction Formats Cont.
2 011010 00011 11001 0000000000000011 Again, This is an I-type instruction because IR[31:26] is not 000000.
011010 is the opcode of the seqi instruction. 00011 is the binary representation of 3.
11001 is the binary representation of 25. Opcode RS1 RD Immediate
0000000000000011 – 2’s complement representation of 3.
The instruction is: seqi R3 R25 3
and in other words: Assembly
Semantics [R25] [R3] = 3 ? 1 : 0
The Instruction Formats Cont.
3 000000 00101 00111 01101 100011 This is a R-type instruction because IR[31:26] is 000000.
000000 is the opcode of the R-Type instructions. 00101 is the binary representation of 5.
100011 is the representation of the add instruction. Opcode RS1 RS2 RD Function
The instruction is: add R5 R7 R13
and in other words: [R13] [R5] + [R7]
Assembly
Semantics
The Instructions’ Types
Several Types of instructions
LoadStore Immediate
ShiftCompute Test
Jump LoadStore
Immediate ShiftCompute
Test Jump
Simplified DLX instruction set
From the programmer’s point of view ISA: DLX is a universal machine that executes programs stored in the main memory
written in the DLX instructions set.
What is the DLX?
The DLX Implementation
The general idea:
Fetch
Decode IR M[PC]
decode the instruction stored in the IR. prepare the operands from the GPR if necessary
P C
Execute
Memory Access
Write- Back
A calculation e.g. add, compare
Memory access in loadstore instructions
Store the result of the operation in the destination register in the GPR Env.
In cr
e m
e n
t P
C
The Datapath the Control
Datapath - A collection of functional units, registers and multiplexers connected by buses.
Control – A state machine that manages: operation of functional units, drivers that write to buses, clock-enable signals.
The Control produces signals whose name is: “Control Signals”. The Control produces signals whose name is: “Control Signals”.
Datapath Control
The Datapath the Control Signals
An example of data-flow: C opA,B - control is in state ALU
- ALU inputs are fed from registers A B. corresponding drivers are enabled - write result in register C. driver of ALU output is enabled
- timing : within one clock cycle.
A B
CLK
ALU Env.
C C
CE
Sampling C stable
X,Y-ALU’s inputs
not stable stable ALU’s output
stable C
CE
The DLX Commands Implementation
General Remarks: 1 Execution of an instruction requires more than one clock cycle.
2 Instructions do not have equal running time.
The DLX
The Datapath The Control
The Datapath
• General Purpose Registers • Functional Units ALU
• Main Memory interface • buses
Notes: • Very few Control states.
• Even in modern processors: states 200. Controls the data flow in the
datapath.
A reminder: What is the RAM?
RAM = Random Access Memory
The term “Random” means that one may access any word as oppose to tape in which only next previous word may be accessed.
The memory is modeled as an array of words. The index of each word is called the
address
of the word. M[i] is the word stored in the address of i.
RAM Write
Adr. Input Output ports:
1 A bit indicating if reading or
writing
A reminder: What is the RAM Cont. ?
Data in Data out
The functionality is: Write = 0 Reading operation: Data out M[Adr.]
Write = 1 Writing operation: M[Adr.] Data in Data out Logical
In the following slides we will zoom into each of the five types of Control states, describing what happens in each type.
Let’s get deeper
What happens during Fetch state?
Din Adr
Dout W
Busy Memory
Env.
Control IR Env.
IR PC
MR Was the
mission completed?
IR Env. Sample
1 The PC register contains the address. 2 The desired functionality: IR M[PC]
Fetch The Control usually stays in fetch state
for more than one clock cycle 3 The memory is very slow. It announces: “I’m busy” after getting a read write
request. When busy, no new requests are allowed. As Dout stablizes, the memory announces: “I’m done”. Only then the control asks the IR Env. to
sample Dout’s value and update the IR register.
The string dealt with is the one located in the IR register and may be of two types:
1 I-Type: Opcode RS1 RD Immediate
6 5 5 16
What happens during Decode state?
Determine: •
I-Type? •
Next state. General Purpose
Registers GPR Env.
A B
A operand Copy of RS1
Read Sign-Extension
The constant sign-extended
2 R-Type: Opcode RS1 RS2 RD Function 6 5 5 5 5 6
Not use
d
What happens during Decode state Cont.?
A continuation of the Opcode
field.
Determine: 1 R-Type?
2 Next state. General Purpose
Registers GPR Env.
A B
A operand Copy of RS1
B operand Copy of RS2
Read
Notes: 1 IR[25:21] represent RS1.
IR[20:16] represent RS2.
2 The GPR Env. Is able to perform two read operations at the same clock period Dual Port RAM.
What happens during Decode state Cont.?
Opcode RS1 RS2 RD Function
3 The PC register is advanced in the decode stage: PC PC+1. This is done in order to avoid the use of another Control state and
because this increment can be done in the decode stage buses and ALU are free.
Some kinds of instructions: 1 Instructions which use the ALU Arithmetic instructions, Logic
instructions and TestSet instructions: A reminder:
RD RS1 + SextImm RD RS1 + RS2
RD RS1 SextImm ? 1 : 0 RD RS1 RS2 ? 1 : 0
R-Type I-Type
What happens during Execute state?
2 operands: The first is always RS1 and the second is either RS2 or SextImm.
GPR Env. A
B C
Cce IR Env.
A. ArithmeticLogic instructions:
What happens during Execute state Cont.?
Sext Imm.
0 1 ITYPE
ALU Env. ALU Control signals
Result
B. TestSet instructions: Sgri: RD RS1 SextImm ? 1 : 0
GPR Env. A
B C
Cce IR Env.
Sext Imm.
What happens during Execute state Cont.?
0 1 ITYPE
ALU Env. TEST
Result Two stages:
1 execute C RS1 RS2 ? 1:0
2 writeback RD C
In this way the period time is shorter.
Alway s 0 1
2 Shift instructions: These instructions are always in R-Type structure.
Slli: RD RS1 1 Srli: RD RS1 1
The word to be shifted is
stored in The shift
amount is 1
GPR Env. C
Cce IR Env.
What happens during Execute state Cont.?
stored in RS1
GPR Env. A
B Cce
Shifter RIGHT
Result 1
From The PC Env. IR Env.
A cco
rd in
g to
F u
n c.
Generally, the “1” constant may be any
other constant and the shift may be of more than
one place
3 Jump instructions: A. Unconditional jump: Jump Reg jr: PC A
What happens during Execute state Cont.?
No direct path from A to PC. Instead:
GPR Env. A
IR Env. A
ALU Env. ADD
PC Env. PC
Cce
B. Branch: “Jump only if a condition is satisfied” beqz: PC PC+1+RS1=0 ? Sext Imm. : 0
bnez: PC PC+1+RS1=0 ? 0 : Sext Imm. We’ll demonstrate the beqz instruction. Two states are needed:
State I - Branch: Check the condition – RS1=0 ? Sext Imm. : 0
What happens during Execute state Cont.?
GPR Env. A
IR Env.
ALU Env. TEST
Comparison result
To the Control
The next state
BTaken Fetch
State II - BTaken: Calculating the jump – PC PC+1+SextImm
What happens during Execute state Cont.?
State II - BTaken: Calculating the jump – PC PC+1+SextImm
IR Env.
ALU Env. PC Env.
PC PCce
PC
ADD
C. Calling a routine: ”Jump, remember your address so it will be possible to get back to this address”
jalr: R31 PC+1 PC RS1
We use two Control states in order to execute this instruction because we want to avoid a collision in the buses to be elaborated.
What happens during Execute state Cont.?
State I: Copying the PC 2 clock cycles
GPR Env. C
PC Env. PC
Cce Clock cycle 1:
What happens during Execute state Cont.?
GPR Env. C
R31 Clock cycle 2 like in the Write-Back state:
Write The
address=31
State II: Calculating the jump address
PC Env. PC
IR Env. GPR Env.
A Cce
What happens during Execute state Cont.?
ALU Env. ADD
Load -
Reading From Memory
Load Word lw: RD MSextimm. + RS1 Four states are needed for finishing the load instruction:
State I: Effective Address Computation – MAR A+C0
GPR Env. A
IR Env. C0
A
ALU Env.
MAR ADD
Sextimm + RS1
State II: Memory Access Load. This state lasts till the value is returned – MDR MMAR
Load Cont. –
Reading From Memory
Adr
Dout W Memory
Env. MAR
Read
MDR Busy
Tells the Control MDR
Notes: 1 Busy signal informs the Control when the operation is over Dout is stable.
2 MDR samples Dout every clock cycle, no need to compute CE Simplifies Control.
3 Dout must be logical even if its value is incorrect Tells the Control
when readung is over
State III: Writing MDR’s value to C in the GPR – C MDR
Load Cont. –
Reading From Memory
MDR
GPR Env. C
Cce
State IV: Write-Back: RD C
Store -
Writing To Memory
Store Word sw: MSextimm. + RS1 RD Three states are needed for finishing the store instruction:
State I: Effective Address Computation – MAR A+C0
GPR Env. A
IR Env. C0
A
ALU Env.
MAR ADD
Sextimm. + RS1
GPR Env. B
Store Cont. –
Writing To Memory
MDR State II: Copying the B register’s this is RD value to the MDR – MDR B
State III: Memory Access Store – MMAR MDR
Adr
W Memory
Env. MAR
Write MDR
Din
Busy
Tells the Control when writing is over
Back -
Write
The Write-Back stage occur in the following instruction types:
Arithmetic Logic
Shift
Test Set Load
In this stage, the following happens: RD C
GPR Env. C
R0-31 Write
RD
RD’s value is determined according to a I-TypeR-Type structure. This is the reason for having two different Write-Back states WBI WBR.
5 5
1 0 ITYPE
IR
Back Cont. -
Write
The RD’s field may be either one of two candidates, according to the instruction’s type I-TypeR-Type. The decision is based on the string located
in the IR register:
1 0
RD ITYPE
The RD field possibilities
1 11. MEMORI
Memori RAM Semikonduktor Memori semikonduktor tersedia dalam rentang kecepatan yang luas. Waktu
siklusnya berada pada rentang 100ns hingga kurang dari 10ns. Pada saat diperkenalkan pertama kali pada akhir tahun 1960an, memori tersebut lebih mahal
daripada memori inti magnetik. Karena perkembangan teknologi VLSI Very Large Scale Integration yang sangat cepat, biaya memori semikonduktor telah menurun
secara drastis. Akibatnya, teknologi tersebut sekarang digunakan secara eksklusif dalam menerapkan memori.
Organisasi Internal Chip Memori
Sel Memori biasanya diatur dalam bentuk array, dengan tiap sel dapat menyimpan satu bit informasi. Organisasi yang mungkin diilustrasikan pada gambar
berikut.
Add res
s D
ec od
er
A0 A1
A2 A3
A4
A5 A6
A7
A8 A9
A10 A11
A12 A13
A14 A15
1 2
3 4
5 6
65534 65535
Control Buffer
W MEMR
D0 D1 D2 D3 D4 D5 D6 D7
Gambar 11.1.
2 Blok diatas adalah blok memori yang menggunakan 16 jalur alamat dan 8 jalur
data. Karena terdapat 8 jalur data, maka jumlah word register tiap alamat dapat menyimpan 8 bit 1 byte data. Untuk 16 jalur alamat, maka jumlah word total yang
dapat dialamati adalah 65535. Sehingga kapasitas memori total pada blok diatas adalah 65535 byte 64 Kilobyte.
Jalur alamat biasanya ditunjukkan oleh bilangan heksadesimal untuk mempermudah analisa. Jika seluruh bit pada jalur alamat bernilai 0, maka bilangan
heksadesimal yang ditunjukkan adalah 0000 1 bit bilangan heksadesimal mewakili 4 bit bilangan biner. Jika seluruh bit pada jalur alamat bernilai 1, maka bilangan
heksadesimal yang ditunjukkan adalah FFFF.
Dengan 16 jalur alamat, prosessor dapat mengalamati 65535 2
16
lokasi memori. Untuk itu diperlukan Address Decoder. Saat alamat berada pada jalur alamat,
address decoder memilih lokasi memori yang sesuai.
Setelah meletakkan sebuah alamat pada bus alamat, prosessor akan membaca isi dari lokasi memori, atau menulis data kedalam memori. Untuk menulis lokasi
memori, prosessor mengirim sinyal Memory Read MEMR. Untuk menyimpan byte data pada lokasi memori, prosessor mengirim sinyal kontrol Memory Write MEMW.
Untuk jalur data yang lebih dari 8bit, maka pengalamatannya menggunakan model byte addressable lihat modul pengalamatan memori.
Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. CPU mengambil
instruksi dari memori sesuai yang ada pada Program Counter. Instruksi dapat berupa menempatkanmenyimpan darike alamat di memori, penambahan, dan sebagainya.
Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Memori harus dapat digunakan dengan baik, sehingga dapat memuat banyak proses
dalam suatu waktu.
Satuan pokok memori adalah bit. Sejumlah bit dapat berisi 0 atau 1. Memori terdiri dari sejumlah cellcell yang masingmasing dapat menyimpan informasi.
Semua cell dalam sebuah memori berisi jumlah bit yang sama. Tiap cell mempunyai alamat, yang dipakai program sebagai acuan. Komputerkomputer menggunakan
sistem bilangan biner termasuk notasi oktal dan heksa untuk bilangan biner.
Memori komputer kadang dapat membuat kesalahan karena tekanantekanan voltase pada arus listrik atau sebabsebab lain. Untuk menghindari kesalahan
3 kesalahan semacam itu, beberapa memori menggunakan kodekode pendeteksi
kesalahan. Ketika kodekode ini digunakan, bitbit ekstra ditambahkan pada setiap word memori dengan suatu cara khusus..
Ketika sebuah worddata muncul dari memori, bitbit tambahan tersebut diperiksa untuk melihat apakah terjadi sebuah kesalahan. Memori berfungsi untuk
menyimpan data dan program. Terdapat beberapa tipe memori, mulai yang tercepat aksesnya sampai yang terlambat.
Hirarki memori berdasarkan kecepatan akses adalah seperti berikut:
Gambar 11.2.