Bit bendera status, yang diasosiasikan dengan ALU, memberikan informasi pada
sifat hasil yang terkait dengan manipulasi data dengan panjang kata yang terbatas.
Gambar 4.21 menggambarkan ALU 4-bit dengan bit flag status. Input dan output bisa
didefinisikan sebagai berikut:
- masukan:
- keluaran:
F adalah angka 4-bit (F = F 3 F 2 F 1 F 0 ),
Bit N =
{
1 jika F <0
0 sebaliknya
Bit Z =
{
1 jika F = 0
0 sebaliknya
Bit V =
{
1 jika terjadi luapan (−8 ≤ R ≤ 7)
0 sebaliknya
Tabel 4.8. Tabel fungsi unit aritmatika dan logika 4-bit
Dalam praktiknya, kita juga dapat membandingkan dua bilangan unsigned, A dan B, dengan
menjalankan
pengurangan diikuti dengan perbandingan perbedaan A - B terhadap 0. Kami
dengan demikian memiliki:
- untuk A - B = 0, C = 1 dan Z = 1, maka A = B;
- untuk A - B> 0, C = 1 dan Z = 0, maka A> B;
- untuk A - B <0, C = 0 dan Z = 0, maka A <B.
ALU dapat dirancang untuk melakukan operasi apa pun. Semakin kompleks
operasi, semakin besar ukuran yang dibutuhkan unit dan konsumsi daya. Dalam prakteknya, a
tradeoff dibuat untuk mengimplementasikan ALU yang ukurannya tetap moderat agar tidak
sangat mempengaruhi konsumsi daya dan kecepatan pengoperasian. Akibatnya, lebih banyak
operasi kompleks dapat dilakukan dengan cara berulang-ulang atau menggunakan keahlian
khusus
satuan
4.5. Pengali
Pengganda digital seluler adalah rangkaian kombinasional yang menghitung dan
menjumlahkan
produk parsial yang menyusun produk dari dua bilangan, X dan Y. Produk dari
dua bilangan n-bit, X dan Y, adalah bilangan 2n bit, P = X × Y.
4.5.1. Pengganda dari bilangan unsigned 2-bit
Mempertimbangkan X = X 1 X 0 dan Y = Y 1 Y 0 sebagai dua bilangan biner unsigned 2-bit,
perkalian dilakukan seperti yang ditunjukkan pada Gambar 4.22. Rangkaian logika dari 2 ×
2-bit
pengali diberikan pada Gambar 4.23, di mana produk parsial dihasilkan oleh keempatnya
Gerbang logika AND dan bit produk, dengan pengecualian bit yang paling tidak signifikan,
dipasok oleh dua HA yang berperan untuk menggabungkan produk parsial
4.5. Pengali
Pengganda digital seluler adalah rangkaian kombinasional yang menghitung dan
menjumlahkan
produk parsial yang menyusun produk dari dua bilangan, X dan Y. Produk dari
dua bilangan n-bit, X dan Y, adalah bilangan 2n bit, P = X × Y.
4.5.1. Pengganda dari bilangan unsigned 2-bit
Mempertimbangkan X = X 1 X 0 dan Y = Y 1 Y 0 sebagai dua bilangan biner unsigned 2-bit,
perkalian dilakukan seperti yang ditunjukkan pada Gambar 4.22. Rangkaian logika dari 2 ×
2-bit
pengali diberikan pada Gambar 4.23, di mana produk parsial dihasilkan oleh keempatnya
Gerbang logika AND dan bit produk, dengan pengecualian bit yang paling tidak signifikan,
dipasok oleh dua HA yang berperan untuk menggabungkan produk parsial
Rangkaian logika untuk pengali seluler 4 × 4-bit diberikan pada Gambar 4.25. Dan
gerbang logika digunakan untuk menghitung produk parsial Y i X j , di mana i, j ∈ {0, 1, 2,
3}
Secara umum, pengganda seluler n × n membutuhkan n 2 gerbang AND, n HAs dan n 2 −2n
FA. Penundaan propagasi pengali disebabkan oleh propagasi pembawa
antara penambah. Ada beberapa jalur kritis dengan panjang identik yang dilewati
melalui gerbang AND dan 3n - 4 penambah; ini karena struktur matriks
pengganda. Dengan asumsi bahwa τ jumlah ≥ τ membawa , dimana τ membawa dan τ jumlah
mewakili
penundaan propagasi antara input penambah dan setiap output C i + 1 dan S, masing-masing,
dan bahwa τ AND menunjukkan penundaan propagasi gerbang AND, penundaan propagasi
pengganda dapat dinyatakan sebagai berikut:
τ = (2n - 3) τ membawa + (n - 1) τ jumlah + τ AND [4,34]
Menggunakan arsitektur adder lain yang lebih cepat akan mengurangi penundaan propagasi
dan meningkatkan kecepatan operasi pengali.
Pendekatan lain yang digunakan untuk mengimplementasikan pengali diberikan pada
Gambar 4.26, di mana
semua sel pengali identik. Ini didasarkan pada penggunaan jaringan sistolik yang
menawarkan
keuntungan dari modularitas dan cocok untuk implementasi sirkuit terintegrasi
Pertimbangkan bilangan bertanda X dan Y, yang dapat diekspresikan dalam n-bit dua
representasi pelengkap, sebagai berikut
Perkalian dua bilangan bertanda 4-bit dapat dilakukan seperti pada gambar
Gambar 4.27. Terlihat bahwa perlu adanya penambahan ekstensi tanda pada setiap baris
produk parsial. Selain itu, untuk mendapatkan nilai produk yang tepat dilakukan penambahan
baris pertama dari hasil perkalian parsial harus diikuti dengan pengurangan dari baris terakhir
dari produk parsial. Dalam hal ini, pendekatan langsung untuk mengimplementasikan
pengganda
menghasilkan peningkatan biaya perangkat keras.
Jumlah dari suatu bilangan, A, dan komplemennya, A, adalah bilangan yang n bitnya
semuanya disetel ke 1, atau 2
n - 1. Dengan kata lain, kami memiliki
Perkalian dua bilangan bertanda 4-bit diilustrasikan pada Gambar 4.28. Itu
produk parsial diubah dan ditata ulang sehingga implementasi multiplier
sekarang hanya dapat membutuhkan satu operasi aritmatika (penambahan)
Sirkuit logika untuk pengali yang sesuai (Baugh – Wooley) diwakili
pada Gambar 4.29, dimana MC dan MC
∗
sel didasarkan pada gerbang AND dan NAND
gerbang, masing-masing.
Dalam perkalian, hasil kali diperoleh sebagai jumlah dari produk parsial, yaitu
bertambah jumlahnya seiring panjang kata dari pengali dan pengali menjadi
besar. Dimungkinkan untuk mengurangi jumlah produk parsial menggunakan algoritma
Booth
untuk menyandikan bit perkalian. Pengkodean ini memiliki keuntungan menghasilkan
implementasi multiplier dengan biaya perangkat keras yang berkurang dan beroperasi dengan
kecepatan tinggi.
Dalam representasi komplemen dua, perkalian dan dapat dinyatakan sebagai
berikut:
Oleh karena itu, tiga bit secara bersamaan terlibat dalam pengkodean yang digunakan untuk
mendapatkan masing-masing bit
produk parsial, PP j , yang dapat ditambahkan atau dikurangkan dari hasil. Nilai dari
ekspresi dalam tanda kurung adalah 0, atau ± 1, atau ± 2. Produk parsial dihasilkan
adalah kelipatan dari perkalian, yaitu −2X, −X, 0, X dan 2X, dan bilangannya,
jika dibandingkan dengan perkalian biasa, praktis dibelah dua. Pengkodean
dari perkalian bit berdasarkan algoritma Booth disajikan pada Tabel 4.10. Itu harus
Perlu dicatat bahwa operasi shift kiri dapat digunakan untuk mendapatkan produk parsial dari
bentuk
2X, atau untuk melaksanakan perkalian dengan faktor 2, dan bentuk negatif dari a
produk parsial diperoleh dengan terlebih dahulu membentuk komplemen satu dan kemudian
menambahkan 1 ke
hasil
Penerapan encoding Booth membantu mengurangi jumlah parsial
lini produk, seperti yang diilustrasikan dalam contoh perkalian bilangan bertanda
disajikan pada Gambar 4.30. AY −1 bit, yang selalu sama dengan 0, ditambahkan ke
urutan biner dari perkalian. Selain itu, lini produk parsial selesai
dengan ekstensi tanda setiap kali nilai bit paling kiri sama dengan 1
4.6. Pembagi
Pembagian bilangan m-bit atau pembilang, A, dengan bilangan n-bit (n ≤ m), atau
pembagi D, umumnya menghasilkan hasil bagi Q dan sisa R. Jadi, A = Q × D + R,
dimana D = 0, R <D, dan R memiliki tanda yang sama dengan A
Dengan pembagi A sebesar 2n bit dan pembagi D dari n bit, pembagian dengan restorasi
dapat dijalankan sesuai dengan algoritma 4.1.
Algoritma 4.1. Divisi dengan restorasi
Hasil: hasil bagi Q = Q n − 1 · \\ Q 2 Q 1 Q 0 dan sisa R (0)
[1] Awalnya, tetapkan nilai dividen ke sisa parsial, R (0) = A, dan set
bit paling signifikan dari hasil bagi ke 1 (Q n − 1 = 1);
[2] Untuk i = 0, 1, 2, ·roulette, n - 1:
hitung sisa parsial:
R (i +1) = 2R (i) - Q n− (i + 1) × D
dimana 0 ≤ R (i) <D dan D adalah pembagi;
jika R (i + 1) ≥ 0, maka
Q n− (i + 1) = 1;
lain
Q n− (i + 1) = 0, dan sisa nilai sebelumnya harus dikembalikan
sebagian;
Setelah iterasi terakhir, hasil bagi Q = Q n − 1 · <br/> <br/> Q 2 Q 1 Q 0 dan R (0) mewakili
sisa terakhir
Pendekatan lain yang dapat diadopsi untuk melakukan divisi seluler didasarkan pada
algoritma untuk pembagian tanpa restorasi. Dibandingkan dengan pembagian denganmetode
restorasi, ini menawarkan keuntungan mengurangi jumlah operasi
(penambahan / pengurangan) diperlukan, terutama dalam kasus di mana hasil bagi berisi
beberapa angka nol. Namun, memiliki kelemahan membutuhkan tahap tambahan
koreksi dari sisa akhir.
Gambar 4.32. Contoh pembagian dengan restorasi: a) 173 ÷ 14 (Q = 12,
R = 5); b) 100 ÷ 9 (Q = 11, R = 1). Untuk versi warna gambar,
lihat www.iste.co.uk/ndjountche/electronics2.zip
Hasil bagi diwakili oleh urutan angka bertanda 2 , yang nilainya mungkin
baik 1 atau −1 tetapi bukan 0, dan kemudian harus dikonversi menjadi komplemen dua.
Untuk pembagian tanpa restorasi sisa parsial negatif ketika 2R (i) <D,
tetapi, alih-alih dikembalikan ke nilai sebelumnya (yaitu, 2R (i), agar menjadi
ditransformasikan sesuai dengan hubungan 2 [2R (i)] - D = 4R (i) - D, seperti dalam kasus
pembagian dengan restorasi) itu tetap tidak berubah dan hanya diperbaiki di berikutnya
pengulangan. Sehingga menjadi 2 [2R (i) - D] + D = 4R (i) - D.Hasil kedua jenis
pembagian, oleh karena itu, identik. Namun, koreksi dari nilai sisa akhir
diperlukan dalam kasus pembagian tanpa restorasi ketika sisa parsial terakhir
negatif. Ini sesuai dengan penambahan pembagi ke sisa, yang
nilai yang benar kemudian dapat diperoleh sebagai berikut:
R = R n + D = 2R n – 1 [4,5]
[1] Jika pembilang dan pembagi bernilai positif, langkah pertama terdiri dari pengurangan
pembagi dari pembilang dengan kedua bit paling signifikan sejajar. Jika diperoleh parsial
sisa dengan demikian positif, satu bit dari hasil bagi diatur ke 1 dan operasi selanjutnya
adalah
pengurangan; Sebaliknya, jika sisa parsial yang diperoleh bernilai negatif, satu bit
dari hasil bagi diatur ke 0 dan operasi selanjutnya adalah penambahan.
[2] Untuk setiap langkah berikut, eksekusi operasi yang ditentukan sebelumnya
dilakukan setelah bit paling signifikan dari sisa parsial dipindahkan ke
kiri sehubungan dengan pembagi. Jika sisa parsial yang diperoleh adalah positif, maka
bit yang sesuai dalam hasil bagi diatur ke 1 dan operasi selanjutnya adalah pengurangan;
jika tidak, bit yang sesuai dari hasil bagi ditetapkan ke 1 dan operasi berikutnya adalah
tambahan.
Versi algoritme yang disebutkan sebelumnya untuk pembagian tanpa pemulihan
paling cocok untuk implementasi pembagi seluler. Rangkaian logika untuk 8 × 4
2 Langkah-langkah berikut dapat digunakan untuk mengubah urutan biner dari n digit
bertanda (1 atau −1) menjadi
pelengkap dua:
- transformasikan tiap −1 menjadi 0 sehingga membentuk kode P = p n − 1 p n − 2 · lu p 2 p
1 p 0 , di mana nilai dari
setiap bit, p k (k = 0, 1, 2, ·roulette, n - 1), bisa 0 atau 1;
- dapatkan representasi komplemen dua dengan menggeser posisi bit satu ke kiri
dan dengan memasukkan 1 ke dalam posisi bit yang paling tidak signifikan, yaitu Q = p n − 2
· ¯¯ p 2 p 1 p 0 1
pembatas seluler direpresentasikan pada Gambar 4.33. Bagian reguler, terdiri dari CAS
(penambah / pengurangan terkontrol), digunakan untuk menghasilkan sisa parsial dan
Tahap yang terdiri dari gerbang logika FA dan AND digunakan untuk koreksi final
sisa.
Gambar 4.34. Contoh pembagian tanpa restorasi: a) 100 ÷ 9
(Q = 11, R = 1); b) 87 ÷ 6 (Q = 14, R = 3). Untuk versi warna file
gambar, lihat www.iste.co.uk/ndjountche/electronics2.zip
Setiap baris sel CAS, yang masing-masing terdiri dari gerbang logika FA dan XOR,
melakukan pengurangan atau penjumlahan berdasarkan keadaan, 1 atau 0, diterapkan pada
satu
dari dua input gerbang logika XOR. Pengurangan dilakukan dalam dua
melengkapi representasi dengan menambahkan setiap sisa parsial ke satu
melengkapi pembagi dan dengan mengatur input carry dari sel CAS paling kanan
ke 1. Setiap bit hasil bagi sesuai dengan pelaksanaan yang dihasilkan oleh paling kiri
CAS sel, dan yang mewakili komplemen dari bit-tanda yang sesuai
sisa parsial.
Jika bit terakhir dari hasil bagi adalah 0, sisa parsial terakhir adalah negatif dan a
koreksi berdasarkan penambahan bersyarat diperlukan untuk mendapatkan nilai yang benar
sisa terakhir.
Untuk membagi bilangan 2-bit, A, dengan bilangan n-bit, D, dan untuk mendapatkan hasil
bagi Q
dan sisa R dari n-bit, (n + 1) 2 sel CAS dan n + 1 FAs dan gerbang logika AND