Teknik Mikroprosessor Arithmatic Logic Unit
7
ARITHMATIC LOGIC UNIT ( alu )
half - full adder , ripple carry adder
Tujuan : Setelah mempelajari half-full adder, ripple carry adder diharapkan dapat,
1. Memahami aturan-aturan Penjumlahan bilangan biner 2. Memahami aturan-aturan Pengurang bilangan biner 3. Memahami prinsip kerja penjumlah setengah (Half Adder) 4. Mampu melakukan operasi penjumlah setengah (half Adder) 5. Memahami prinsip kerja penjumlah penuh (Full Adder)
6. Mampu melakukan operasi penjumlah penuh (Full Adder)
7. Mampu membedakan prinsip dasar antara penjumlah setengah (Half Adder) dan Penjumlah penuh (Full Adder).
8. Memahami prinsip kerja Rangkaian Penjumlah dan Pengurang (Ripple Carry Adder)
9. Mampu melakukan operasi Penjumlah dan Pengurang (Ripple Carry Adder)
Prasyarat : Untuk mempelajari Pembelajaran 7 diperlukan kegiatan dan kemampuan
seperti di bawah ini ,
1. Telah mengerjakan latihan-latihan pada Pembelajaran 6. 2. Semua latihan pada Pembelajaran 6 dijawab dengan Benar.
7. 1. Rangkaian Penjumlah
Penjumlahan bilangan biner telah dibahas pada pembelajaran 3, sedangkan pada pem belajaran inti kita akan membahas rangkaian penjumlah yang dibangun dari aturan - aturan penjumlahan bilangan biner. Pada sebuah mikrocomputer dan juga komputer, hanya memproses bilangan biner. Di bawah ini adalah hasil penjumlahan dua buah bilangan biner yang masing-masing terdiri dari 1 ( satu ) bit.
A + B Hasil Carry 0 + 0 0 + 1 1 + 0 1 + 0 0 1 1 0 0 0 0 1
Suatu rangkaian digital yang mampu melaksanakan operasi penjumlahan seperti pada tabel di balik disebut Half Adder ( HA ).
HA
Carry U Hasil A B B A U 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1Gambar Blok Half Adder Tabel Fungsi Half Adder
Dari tabel di atas, perhatikanlah sinyal " 1 " pada Hasil Σ dan Carry U dapat dikembangkan persamaan fungsi seperti di bawah ini.
Hasil Σ = ( A Λ B ) v ( A Λ B ) = A v B ( Ex - OR )
Carry U = A Λ B ( AND )
Dari kedua persamaan di atas dapat dikembangkan rangkaian Half Adder seperti di bawah ini. A B A B B A ( A B ) U = A B V ( A B ) ( A B )
Rangkaian Half Adder
Contoh
Dilakukan penjumlahan antara dua bilangan A + B
H H
Teknik Mikroprosessor Arithmatic Logic Unit
A B ( A B ) H H H L H H L L L L U = A B = H V ( A B ) ( A B ) = L
Perhitungan : 1 ⇒ A ( Variabel Input ) + 1 ⇒ B ( Variabel Input ) 1 ⇒ U ( Carry )
0 ⇒ ∑ ( Hasil )
Half Adder tidak dapat digunakan untuk melakukan proses penjumlahan dua buah bilangan yang masing-masing terdiri dari beberapa digit ( multi digit ). Penjumlahan yang terdiri dari beberapa bit harus menyertakan carry pada digit yang lebih tinggi berikutnya dan solusi penjumlah yang demikian disebut Full Adder ( FA ), dimana disamping input A dan B disertakan juga Carry sebagai bagian dari input.
FA
Carry Out Hasil A B Carry In C B A U 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∑ = ( A Λ B Λ C ) v ( A Λ B Λ C ) v ( A Λ B Λ C ) v ( A Λ B Λ C ) Sesuai Hukum Distributive pada Aljabar Boole, persamaan fungsi di atas menjadi,
∑ = [ ( A Λ B ) v ( A Λ B ) ] Λ C v [ ( A Λ B ) v ( A Λ B ) ] Λ C = [ ( A Λ B ) v ( A Λ B ) ] Λ C v ( 1 Λ C )
= [ ( A Λ B ) v ( A Λ B ) ] Λ ( C v C ) ∑ = ( A V B ) V C = A V B V C
Setelah melalui penyederhanaan, rangkaian ∑ dapat dinyatakan seperti pada gambar di bawah. A B C A V B A V B V C
Disamping persamaan Hasil juga terdapat persamaan untuk Carry seperti di bawah ini, U = ( A Λ B Λ C ) v ( A Λ B Λ C ) v ( A Λ B Λ C ) v ( A Λ B Λ C )
Persamaan ini dapat disederhanakan menjadi, U = ( A Λ B ) v ( B Λ C ) v ( A Λ C )
Dari kedua persamaan di atas dapat dikembangkan menjadi rangkaian digital Full Adder . A B A C A B B C A V B A V B V C A C A B B C V ( A B ) ( B C ) V ( A C ) U = C
Rangkaian Full Adder Contoh
Teknik Mikroprosesso 118 Logic Unit
Dilakukan penjumlahan antara dua bilangan A + B dengan memper - r Arithmatic
hatikan Input Carry C H H H A B A V B A V B V C = L A C A B B C V ( A B ) ( B C ) V ( A C ) U = C H L H L H H H H H L L H H L H H U = H L
Perhitungan : 1 ⇒ A ( Variabel Input ) + 0 ⇒ B ( Variabel Input ) + 1 ⇒ C ( Input Carry ) 1 ⇒ U ( Output Carry )
0 ⇒ ∑ ( Hasil )
Penjumlah dua buah bilangan biner yang terdiri dari N bit, sehingga memerlukan N bit Full Adder seperti pada contoh di bawah.
23 22 21 20 Tempat Bilangan A2 A1 A0 Variabel A ( 3 Bit ) 1 0 1 B2 B1 B0 Variabel B ( 3 Bit ) 1 1 1 C3 C2 C1 C0 Carry U ( C ) 1 1 1 0 1 1 0 0 Hasil
Teknik Mikroprosessor Arithmatic Logic Unit Pada tempat 20 tidak terjadi Carry ( 0 ), sehingga pada tempat ini ( bit ini ) memerlukam rangkaian Half Adder. Sedangkan pada tempat 21 dan 22 masing-masing diperlukan Full Adder. Jika pada tempat 20 digunakan FA, maka Carry inputnya harus di berikan logik " L " .
FA1
H A0 B0 H 20 H 0 LFA2
H A1 B1 H 21 H 1 LFA3
H A2 B2 H 22 H 2 H H C3 C2 C1 C0 23 U0 U1 U2 LGambar Full Adder 3 Bit
Gambar di bawah adalah rangkaian penjumlah 8 Bit yang dibangun dari 4 buah gerbang TTL 7482 ( 2 Bit FA ) atau 2 buah gerbang TTL 7483 ( 4 Bit FA ).
A2 B2 A3 B3 3 U4 U4 FA A4 B4 A5 B5 5 U6 U6 FA A6 B6 A7 B7 7 U8 FA 2 4 6 U0 A0 B0 A1 B1 0 1 U2 U2 FA FA FA FA FA UB 2 - Bit FA 7482 1 A1 B1 2 A2 B2 Un Un+2
Full Adder 8 Bit
7. 2. Ripple Carry Adder
Jika pada rangkaian penjumlah n Bit, input Carry C0 diberikan sinyal " 1 " maka hasil
penjumlahan bilangan A dan B akan kelebihan 1 ( satu ), sehingga pada masukan C0
ini disebut Incremant ( INC ). Suatu rangkaian penjumlah yang mempunyai incremant input disebut Ripple Carry Adder.
FA U0 C0 FA Un-1 Cn-1 FA U1 C1 0 1 n-1 FA Un Cn n INC Output Carry Un An An-1 A1 A0 Bn Bn-1 B1 B0
Logik Diagram Ripple Carry Adder
n - Bit
FA
Carry Out Un 0 1 n-1 n INC An An-1 A1 A0 Bn Bn-1 B1 B0Blok Diagram Ripple Carry Adder
7. 3. Rangkaian Penjumlah - Pengurang
Dengan mengembangkan rangkaian Ripple Carry Adder yaitu dengan jalan menambahkan beberapa gerbang AND dan EX-OR didepannya sehingga memungkinkan rangkaian tersebut digunakan untuk operasi penjumlahan dan pengurangan, maka rangkaian tersebut disebut Rangkaian Penjumlah - Pengurang.
Un INC B0 =1 =1 =1 =1 =1 =1 =1 =1 B1 B2 B3 A0 A1 A2 S4 S3 S2 S1 S0 A3 Input Pengontrol
Logik Diagram Penjumlah - Pengurang
Gambar rangkaian penjumlah - pengurang di atas digunakan untuk operasi penjumlahan dan pengurangan bilangan A dan Bilangan B yang masing-masing terdiri dari 4 Bit dan mempunyai 5 ( lima ) input pengontrol yaitu S0, S1, S2, S3 dan S4.
Tergantung dari kombinasi input pengontrol ini, maka ada 32 macam kombinasi seperti diperlihatkan pada tabel fungsi dari penjumlah - pengurang dibalik ini.
24 23 22 21 20
Des. S4 S3 S2 S1 S0 Fungsi Output
0 0 0 0 0 0 0 1 0 0 0 0 1 1 2 0 0 0 1 0 -1 3 0 0 0 1 1 0
4 0 0 1 0 0 -1 5 0 0 1 0 1 0 6 0 0 1 1 0 -2 7 0 0 1 1 1 -1 8 0 1 0 0 0 B 9 0 1 0 0 1 B + 1 10 0 1 0 1 0 - B - 1 = B 11 0 1 0 1 1 - B 12 0 1 1 0 0 B -1 13 0 1 1 0 1 B 14 0 1 1 1 0 - B - 2 15 0 1 1 1 1 - B - 1 = B 16 1 0 0 0 0 A 17 1 0 0 0 1 A + 1 18 1 0 0 1 0 A - 1 19 1 0 0 1 1 A 20 1 0 1 0 0 - A - 1 = A 21 1 0 1 0 1 - A 22 1 0 1 1 0 - A - 2 23 1 0 1 1 1 - A - 1 = A 24 1 1 0 0 0 A + B 25 1 1 0 0 1 A + B + 1 26 1 1 0 1 0 A - B - 1 27 1 1 0 1 1 A - B 28 1 1 1 0 0 B - A - 1 29 1 1 1 0 1 B - A 30 1 1 1 1 0 - A - B - 2 31 1 1 1 1 1 - A - B - 1
Teknik Mikroprosessor Arithmatic Logic Unit
Tabel Fungsi Penjumlah - Pengurang Contoh
Fungsi Output A + B ⇒ Input A = 0 0 0 0 Input B = + 1 1 1 1 Input INC = + 0
Un INC B0 =1 =1 =1 =1 =1 =1 =1 =1 B1 B2 B3 A0 A1 A2 S4 S3 S2 S1 S0 A3 H H H H H H H H L L L L L L L L H H H H L L L L L L L L H H H H H H L L L L H H H H L L L L H H H H
Sesuai dengan tabel fungsi, input pengontrol untuk fungsi output A + B adalah kombinasi S4 S3 S2 S1 S0 Dengan keadaan sinyal pada S4 S3
H H L L L H H
informasi yang ada pada input A dan input B akan dilalukan menuju input gerbang EX-OR ( A Λ 1 = A ) . Dengan keadaan sinyal pada S2 S1 informasi yang ada
L L
Teknik Mikroprosessor Arithmatic Logic Unit124 pada gerbang EX-OR akan dilalukan ke input Ripple Carry Adder, tanpa mengalami perubahan ( A V 0 = A ). Didalam Ripple Carry Adder terjadi proses penjumlahan informasi yang ada pada inputnya. Dengan keadaan sinyal pada S0 maka hasil
L
penjumlahan bilangan tidak ditambah dengan 1 ( satu ), sehingga pada output Ripple Carry Adder adalah hasil A + B.
Contoh
Fungsi Output A - B ⇒ Input A = 1 1 1 1 = 15 1 1 1 1 Input B = 0 0 1 1 = 3 + 1 1 0 0 Input INC = 1 = 1 + 1 Output = 1 1 1 0 0 = 12 Un INC B0 =1 =1 =1 =1 =1 =1 =1 =1 B1 B2 B3 A0 A1 A2 S4 S3 S2 S1 S0 A3 H H H H H H H H L L L L H H H H H H L H H H H H L L H H H H H H H H L L H H L L H H H H L L H H H H
Sesuai dengan tabel fungsi, input pengontrol untuk fungsi output A - B adalah kombinasi S4 S3 S2 S1 S0 Dengan keadaan sinyal pada S4 S3
H H L H H H H
informasi yang ada pada input A dan input B akan dilalukan menuju input gerbang EX-OR ( A Λ 1 = A ) . Dengan keadaan sinyal pada S2 informasi yang ada
L
pada gerbang EX-OR yang berasal dari input A akan dilalukan ke input Ripple Carry Adder, tanpa mengalami perubahan ( A V 0 = A ). Dengan keadaan sinyal pada S1 informasi yang ada pada input B akan dikomplement menjadi B dan L berada pada input Ripple Carry Adder . Dengan keadaan sinyal pada
S0 maka diperoleh harga komplemen dua dari input B ( B + 1 = - B ), sehingga
L proses penjumlahan yang terjadi pada Ripple Carry Adder menjadi A + (-B )
= A - B
7. 4. Arithmatic Logic Unit ( ALU )
Untuk semua microprosessor tidak hanya mampu melaksanakan operasi-operasi arithmatik saja, tetapi juga harus mampu melaksanakan operasi-operasi logik. Kedua operasi ini dilaksanakan di dalam Aritmatic Logic Unit ( ALU ) yang terdapat pada seluruh microprosessor. Ada tiga dasar operasi logik yaitu,
A Λ B ( Operasi AND ) A V B ( Operasi OR ) A V B ( Operasi EX-OR )
keluaran dari ALU diatur oleh kombinasi Input pengontrol tambahan S5 dan S6 seperti
tabel dibawah ini,
Input Pengontrol Output Fungsi
S6 S5 Yn
0 0 X0n Operasi Arithmatik 0 1 X1n Operasi AND 1 0 X2n Operasi OR 1 1 X3n Operasi EX-OR
=1 1 X0n X1n X2n X3n Yn Output ( n - Bit ) ( n - Bit ) ( n - Bit ) Input A Input B S4 S3 S2 S1 S0 S6 S5 U
Blok Diagram Arithmatic Logic Unit ( ALU )
Untuk percobaan dapat digunakan komponen TTL ALU 74181 4 Bit, sedangkan untuk 8 Bit dapat digunakan dua buah ALU 74181 seperti gambar dibawah.
UB 1 2 3 4 5 6 7 8 9 10 11 12 14 13 15 16 17 19 20 18 2 1 23 24 22 A L U 74 181 74S 181 A1 B1 A2 B2 A3 B3 G P F3 B0 A0 S3 S2 S1 S0 Cn M F0 F1 F2 Kaki - kaki IC ALU 74181
A0 - A3 4 Bit Data input ( Operand A ) B0 - B3 4 Bit Data input ( Operand B ) S0 - S3 Pemilih Fungsi
M Mode Control ( 1, Op. Logik ) Cn,Cn+4 Carry
A = B Komparator Output ( 1, A=B ) F0 - F2 Output hasil operasi di ALU
Perhatikan gambar Blok Diagram Arithmatic Logic Unit ( ALU ) di depan, jika pengontrol S5 = S6 = 0 maka rangkaian Penjumlah - Pengurang dihubungkan dengan
Output demikian juga untuk operasi logik yang lain tergantung dari kombinasi input pengontrol S5 dan S6 . Input pengontrol S0 sampai dengan S4 tidak mempengaruhi
proses operasi logik. Secara matematis bahwa jika ada 7 ( tujuh ) input pengontrol S0
sampai dengan S6 menghasilkan 27 = 128 kombinasi, tetapi pada rangkaian ini hanya
diambil kombinasi-kombinasi fungsi yang mempunyai arti untuk pemrosesan data di dalam ALU. Seperti halnya pada tabel fungsi penjumlah pengurang terdapat hasil 0 sampai 3 kali atau juga hasil yang tidak mempunyai arti di dalam aplikasi praktik ( mis. : -A -B -2 ). Selanjutnya diantara fungsi-fungsi yang ada pada operasi arithmatik diambil 10 ditambah 3 fungsi untuk opersi logik, sehingga hanya berjumlah 13 fungsi. Ke-13 fungsi yang dihasilkan dari 7 buah input pengontrol ( S6 - S0 ) disimpan di dalam ROM
sedangkan data outputnya digunakan untuk mengontrol ALU. Dengan 4 penghantar alamat ROM dapat menyimpan 24 = 16 kombinasi fungsi.
Input Alamat ( Input ROM )
Sinyal Pengontrol
( Output ROM ) Fungsi
U3 U2 U1 U0 S6 S5 S4 S3 S2 S1 S0 Yn 0 0 0 0 0 0 1 0 0 0 0 A 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 A 0 0 1 1 0 0 0 1 0 0 0 B 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 A + 1 0 1 1 0 0 0 1 0 0 1 0 A - 1 0 1 1 1 0 0 1 1 0 0 0 A + B 1 0 0 0 0 0 1 1 0 1 1 A - B 1 0 0 1 0 1 x x x x x A Λ B 1 0 1 0 1 0 x x x x x A V B 1 0 1 1 1 1 x x x x x A V B 1 1 0 0 0 0 0 0 0 1 0 - 1 1 1 0 1
1 1 1 0 untuk langkah berikutnya 1 1 1 1
S6 S5 S4 S3 S2 S1 S0
U3 U2 U1 U0
Konversi Sinyal Pengontrol di ROM
Contoh Pembahasan,
Fungsi Yn = A + 1 ⇒ Informasi pada input A akan di increment,
=1 ( n - Bit ) Input A ( n - Bit ) Input B U X0n X1n X2n X3n