Algoritma Perkalian [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

1. PENDAHULUAN Ada empat metode komputasi dasar yang dilakukan oleh ALU komputer. Salah satunya adalah perkalian. Sebenarnya perkalian didalam komputer dilakukan dalam bentuk penjumlahan dan pergeseran yang dikerjakan secara berulang-ulang. Hal ini membuat proses perkalian menjadi sangat lama, terutama apabila perkalian yang dilakukan melibatkan banyak operand (multioperand). Sudah banyak algoritma yang dikembangkan untuk mengatasi hal tersebut. Diantaranya adalah LUT (Look up table) multiplier, Logarithmic Multiplier, ripple carry array multiplier, MSB first algorithm multiplier dan masih banyak lagi yang lainnya. Kebanyakan algoritma tersebut diterapkan untuk melakukan proses perkalian secara paralel. Paper ini mengemukakan suatu algoritma perkalian paralel yang menggabungkan kedua teknik algoritma yang telah dikembangkan sebelumnya, yaitu Logarithmic Multiplier dan Multi-operand MSB first adder. Perkalian dengan logaritmik diperkenalkan pertama kali oleh J.N Mitchell. Pada dasarnya sistem perkalian dengan menggunakan logaritmik ini dimaksudkan untuk mempercepat waktu proses komputasi perkalian yang dilakukan oleh CPU, karena dalam perkalian dengan menggunakan logaritmik dilakukan dengan menjumlahkan operand satu dengan lainnya. Konsep logaritmik ini juga bisa digunakan untuk pembagian karena pembagian logaritmik sama dengan pengurangan nilai logaritmik dari masing-masing operand tersebut. Konsep perkalian dengan menggunakan logaritmik ini biasanya digunakan dalam pemrosesan sinyal, karena pada aplikasi tersebut error yang terjadi masih dapat ditolerir. Konsep penjumlahan untuk multioperand dengan menggunakan metode MSB fisrt adder adalah suatu konsep metode untuk menjumlahkan sejumlah bilangan dimulai dari bit MBS-nya terlebih dahulu. Dengan metode ini maka hasil yang diinginkan dapat lebih cepat tersedia sesuai dengan tenggat waktu yang diberikan. Dengan demikian maka metode ini dapat digunakan atau diaplikasikan dalam sistem yang berbasis real time (waktu-nyata). Dalam paper ini kedua konsep tersebut digabungkan dengan harapan dapat menurunkan waktu yang dibutuhkan untuk memproses suatu perkalian dengan banyak operand, atau dengan kata lain meningkatkan performansi komputer dalam melakukan perkalian dengan banyak operand. 2. ALGORITMA DAN MODEL ARSITEKTUR Algoritma dan Arsitektur Perkalian Shift and Add Konvensional Unit perkalian shift-and-add konvensional, melakukan proses perkalian dimulai dari bit LSB dilanjutkan sampai MSB dan memproses semua bit multiplier, disebut LSB-P01. Arsitektur rangkaian terlihat pada



Gambar 1 Keluaran bit dari multiplexer (MUX) akan di AND dengan bit-bit multiplicand, hasilnya disimpan diregister dan digeser (shift) sebanyak iterasi proses. Hasil operasi ini dijumlahkan dengan isi akumulator dan di simpan kembali di akumulator. Proses ini di INTELLIGENT SYSTEMS AND CONTROL SYSTEMS Seminar Nasional “Soft Computing, Intelligent Systems and Information Technology” (SIIT 2005) 3-20 ulangi untuk setiap bit multiplier sampai bit MSB. Hasil akhir terdapat di akumulator. Untuk perkalian multioperand, maka perkalian operand ke-3 akan dilakukan terhadap hasil dari operasi perkalian antara operand 1 dan 2. Komputasi ini terus berlangsung sampai semua operand selesai dikomputasi.



Gambar 1. Arsitektur unit perkalian shift-and-add konvensional Algoritma dan Model Arsitektur Perkalian Logaritmik 2 Operand Ide dasar dari perkalian dengan metode logaritmik adalah karena perkalian dalam logaritmik dilakukan dalam bentuk penjumlahan, sesuai dengan yang tertulis pada persamaan (1) dan (2). Dengan demikian CPU hanya bertugas untuk melakukan proses komputasi penjumlahan bukan perkalian. Log (A x B) = Log A + Log B (1) Log2 (A x B) = Log2A + Log2B. (2) AxB= antilog2 (log2A + log2B) (3) Yang perlu diperhitungkan dalam konsep perkalian logaritmik ini adalah masalah konversi ke nilai logaritmik dan error yang terjadi pada saat kita mengkonvert bilangan ke dalam bentuk logaritmiknya dan juga mengembalikannya ke bentuk semula. Jadi kesalahan yang terjadi dilakukan sebanyak 2 kali dan mungkin dengan tingkat atau nilai kesalahan yang berbeda. Algoritma perkalian logaritmik antara dua bilangan yang didasarkan pada persamaan (3) adalah sebagai berikut: 1. Ambil dua buah bilangan biner, masukkan kedua bilangan tersebut masingmasing ke dalam register A dan B. 2. Konvert kedua bilangan dalam register tersebut ke dalam nilai logaritma basis 2 dan masukkan ke dalam register C dan D



3. Lakukan penjumlahan isi dari register C dan D dan simpan hasilnya pada Accumulator. 4. Konvert hasil penjumlahan tersebut menjadi bilangan biner kembali dengan menggunakan antilogaritmik basis 2 dan masukkan hasilnya pada suatu register hasil. Secara umum hardware dari algoritma tersebut dapat dilihat pada blok diagram perkalian logaritmik seperti yang terlihat pada gambar 2. Ada beberapa pendekatan atau konsep yang digunakan untuk melakukan proses konversi ke dalam nilai logaritma dan sebaliknya seperti, pure look up table (LUT murni), LUT dengan interpolator, nonlinear LUT dan interpolator, algoritma rekursif atau segmentasi dari kurva logaritmik. Masing-masing pendekatan tersebut dapat diwujudkan dalam bentuk hardware yang berbeda sehingga otomatis proses komputasi perkalian secara keseluruhan juga berbeda. Antilog2X Bilangan A Bilangan B Log2 A Log2 B Adder Log2A + Log2B=X Y Register A Register B Register C Register D Gambar 2. Blok diagram perkalian logaritmik 2 operand Algoritma dan Model Arsitektur Penjumlahan Multioperand dengan MSB First bit Process Algoritma ini diaplikasikan untuk sistem waktu nyata (real-time system). Perbedaan algoritma penjumlahan ini dengan algoritma penjumlahan yang konvensional terletak pada urutan penjumlahan yang dilakukan. Pada algoritma penjumlahan konvensional bit yang dijumlahkan terlebih dahulu adalah bit LSB (Least Significant Bit) yang terletak paling akhir dan bernilai paling kecil, kemudian hasilnya diakumulasikan dengan penjumlahan bit yang terletak setelahnya. Demikian proses tersebut dilakukan sampai terakhir bit MSB (Most Significant Bit) selesai dijumlahkan. INTELLIGENT SYSTEMS AND CONTROL SYSTEMS Seminar Nasional “Soft Computing, Intelligent Systems and Information Technology” (SIIT 2005) 3-21 Sedangkan pada algoritma berikut ini yang pertama kali dijumlahkan adalah bit MSB, lalu dilanjutkan dengan bit MSB-1 dan seterusnya sampai bit terakhir (LSB) selesai dijumlahkan. Algoritma penjumlahan multioperand MSB first adalah sebagai berikut : 1. Masukkan semua operand n bit ke dalam N register. 2. Untuk N operand dengan n bit data, lakukan langkah-langkah berikut:



a. Jumlahkan semua bit MSB dari tiap operand dan letakkan hasilnya pada Accumulator. Karena penjumlahannya dilakukan dengan counter, maka hasilnya harus diatur dengan bit placer, setelah itu dapat disimpan di Accumulator. b. Jumlahkan semua bit MSB-1 dari tiap operand dan jumlahkan hasilnya dengan yang tersimpan di Accumulator dan simpan hasilnya di Accumulator kembali. c. Lakukan langkah-langkah di atas sampai bit LSB dari tiap operand tersebut selesai dijumlahkan. Dengan menggunakan algoritma penjumlahan di atas, maka sebelum penjumlahan sampai bit LSB selesai dilakukan kita telah dapat menggunakan hasil yang tersimpan di Accumulator, tentu saja dengan sedikit faktor error. Hal ini sangat berguna untuk memenuhi tenggat waktu yang telah ditetapkan, sehingga data yang disimpan di Accumulator tetap dapat diambil dan digunakan walaupun proses komputasi penjumlahan belum selesai dilaksanakan. Gambar 3 memperlihatkan arsitektur penjumlahan MSB first bit untuk 12 operand dengan 16 bit data. Register .Adder Accumulator AB C counter Counter pulsa (4 bit synch.binary counter) Bit placer 16 bit d0 d1 d2 d9 d10 d11 . . . e0 e1 e2 e3 20 bit 20 bit R1 R12 0 19 MSB LSB clock Gambar 3. Arsitektur penjumlahan multioperand MSB



first bit [1] Algoritma Perkalian Logaritmik Multioperand Seperti telah disebutkan sebelumnya, metode ini adalah penggabungan dari kedua metode yang telah dijelaskan pada subbab 2.1 dan 2.2. Jadi konsepnya adalah melakukan perkalian untuk banyak operand dengan menggunakan menjumlahkan nilai logaritmik dari tiap operand tersebut. Konsepnya didasarkan pada persamaan (4) berikut ini: Log2 (AxBx...xN) = Log2A+Log2B+...+Log2N (4) Jadi secara umum CPU hanya akan melakukan proses penjumlahan untuk sejumlah operand. Namun untuk mempercepat hasil penjumlahan maka proses penjumlahan yang digunakan bukan penjumlahan yang konvensional, melainkan dengan menggunakan algoritma penjumlahan mulai dari bit MSB sampai ke bit LSB. Untuk mendapatkan hasil logaritmik basis 2 dari tiap operand dan mengembalikannya ke bentuk asal akan digunakan sebuah look up table yang didalamnya digabungkan dengan konsep segmentasi, sehingga komputer tidak perlu melakukan proses komputasi untuk mencari nilai logaritmik dari suatu operand tetapi hanya melihat ke dalam tabel lookup yang ada. Dengan demikian waktu proses yang dilakukan tidak akan bertambah lama dengan proses untuk mendapatkan nilai logaritmik dari tiap operand. Arsitektur dari sistem ini dibatasi untuk operand 8 bit dan dapat melakukan perkalian untuk 8 operand juga. Dengan kata lain operasi maksimum dari perkalian yang dapat dilakukan adalah 2558 yang akan menghasilkan nilai 1.787810335x1019 atau antilog2 1. Untuk setiap isi register 1 sampai dengan 8 cocokkan dengan LUT nilai logaritmik basis 2 yang telah disediakan. Kemudian ambil data dari LUT dan masukkan ke dalam register 9 sampai 16 untuk masingmasing operand. dari 63.9548275. Hal ini berarti maksimum bit data yang dihasilkan dari perkalian 8 operand 8 bit dengan look up table adalah 13 bit, dimana 6 bit awal untuk merepresentasikan bit MSB-nya terletak pada bit ke-n dan 7 bit sisanya langsung diletakkan dibelakang bit tersebut, namun untuk hasil yang sebenarnya setelah dilakukan konversi ke LUT antilog adalah 64 bit data. Model arsitektur untuk perkalian multioperand dengan fungsi logaritmik dan MSB first bit dapat dilihat pada gambar 4. Algoritma untuk perkalian 8 buah operand 8 bit adalah sebagai berikut : 2. Lakukan algoritma penjumlahan untuk multioperand dengan memulai dari bit MSB seperti yang telah dijelaskan pada bagian 2.2. INTELLIGENT SYSTEMS AND CONTROL SYSTEMS Seminar Nasional “Soft Computing, Intelligent Systems and Information Technology” (SIIT 2005) 3-22 3. Hasil penjumlahan yang ada pada Accumulator dicocokkan dengan LUT antilogaritmik basis 2 untuk mendapatkan nilai yang sebenarnya. 4. Data pada Accumulator dicocokkan pada LUT antilog2



untuk mendapatkan hasil yang sebenarnya. Registers B . . . Adder Accumulator AB C counter Counter pulsa (4 bit synch.binary counter) Bit placer 10 bit d0 d1 d2 d5 d6 d7 . . . e0 e1 e2 13 bit 13 bit R9 R16 0 12 MSB LSB clock Registers A. . . R1 R8 LUT A (Log2) LUT B (Antilog2)



Register Hasil 64 bit 64 bit 10 bit e3 Gambar 4. Model arsitektur perkalian multioperand dengan fungsi logaritmik Format untuk LUT-nya sendiri dapat dilihat pada gambar 5 dan gambar 6. Dan untuk mendapatkan nilai-nilai seperti yang terdapat pada LUT digunakan metode segmentasi. Dengan metode ini operand 8 bit dikonvert menjadi 10 bit, dimana 3 bit pertama merepresentasikan bit MSB sebagai nilai bilangan bulat dari hasil logaritmik basis 2, dan 7 bit sisanya merepresentasikan nilai mantissanya. 00000000 00000001 00000010 00000011 00000100 11111101 11111110 11111111 11111100 11111011 000 0000000 000 1000000 001 0000000 001 1000000 010 0000000 111 1111011 111 1111100 111 1111101 111 1111110 111 1111111 10 bit LUT A (Log2) Gambar 5. Look up table logaritmik basis 2 0000000000000 000000000000000016 64 bit = 16 digit hexa 0000000000001 0000000000010 0000000000011



1111111111101 1111111111110 1111111111111 1111111111100 000000000000000116 000000000000000216 000000000000000316 100000000000007C16 100000000000007D16 100000000000007E16 100000000000007F16 LUT B (Antilog2)



Gambar 6. Look up table antilogaritmik basis 2



3. CONTOH DAN ANALISA KASUS Berikut akan diberikan 2 contoh kasus perkalian berikut analisa perbandingan dari kedua algoritma tersebut (konvensional dan logaritmik) 3.1 Kasus 1 Register R1—R8: 1,2,3,4,5,2,1,1 (representasikan dalam biner) R1 : 00000001 : Operand 1 R2 : 00000010 : Operand 2 R3 : 00000011 : Operand 3 R4 : 00000100 : Operand 4 R5 : 00000101 : Operand 5 R6 : 00000010 : Operand 6 R7 : 00000001 : Operand 7 R8 : 00000001 : Operand 8 Acc := R1 x R2 x R3 x R4 x R5 x R6 x R7 x R8 Register Hasil := Accumulator (Konvensional) Look up table B (Logaritmik ) 3.1.1 Perkalian konvensional Tabel 1. Proses perkalian konvensional kasus 1 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 INTELLIGENT SYSTEMS AND CONTROL SYSTEMS Seminar Nasional “Soft Computing, Intelligent Systems and Information Technology” (SIIT 2005) 3-23 3.1.2 Perkalian Multioperand Dengan Fungsi Logaritmik dan MSB First bit Adderr. Tabel 2. Proses perkalian dengan fungsi logaritmik dan MSB fist bit adder kasus 1 Clock Operand (A dan B) Accumulator (B) 1 A: B: 1000000000000 0000000000000 1000000000000 2 A: B: 0100000000000 1000000000000 1100000000000 3 A: B: 0010000000000 1100000000000 1110000000000 4 A: B: 0001000000000 1110000000000 1111000000000 5 A: B: 0000100000000 1111000000000



1111100000000 6 A: B: 0000010000000 1111100000000 1111110000000 7 A: B: 0000001000000 1111110000000 1111111000000 8 A: B: 0000000100000 1111111000000 1111111100000 9 A: B: 0000000010000 1111111100000 1111111110000 10 A: B: 0000000001000 1111111110000 1111111111000 Hasil dari Accumulator belum dapat dipergunakan langsung tetapi harus dikonvert terlebih dahulu ke bentuk antilog-nya. Pada Accumulator terdapat 13 bit data : 0001111100000, dari data ini dapat diketahui bahwa 6 bit pertama merepresentasikan bit MSB-nya, yaitu bit ke-7, dan 6 bit sisanya diletakkan dibelakang bit MSB tersebut sehingga hasilnya menjadi 11100000 = 22410 Langkah: Iterasi . Hasil perkalian yang sebenarnya adalah 240, jadi ada selisih data yang disebut juga sebagai faktor error.



3.2 Kasus 2 Reg R1—R8: 255,255,255,255,255,255,255,255 R1 : 11111111 : Operand 1 R2 : 11111111 : Operand 2 R3 : 11111111 : Operand 3 R4 : 11111111 : Operand 4 R5 : 11111111 : Operand 5 R6 : 11111111 : Operand 6 R7 : 11111111 : Operand 7 R8 : 11111111 : Operand 8 Acc := R1 x R2 x R3 x R4 x R5 x R6 x R7 x R8 Register Hasil := Accumulator (Konvensional) Look up table B (Logaritmik)



3.2.1 Perkalian Konvensional Tabel 3. Proses perkalian konvensional kasus 2 Operand A Operand B Hasil Accumulator 1:8 11111111 11111111 1111111000000001 2:8 1111111000000001 11111111 11111101000000101 1111111 3:8 1111110100000010 11111111 11111111 11111100000001011 111110000000001 4:8 1111110000000101 1111110000000001 11111111 11111011000010011 11101100000010011 111111 5:8 1111101100001001 1111011000000100 11111111 11111111



11111010000011101 11011000000111011 11101000000001 6:8 1111101000001110 1110110000001110 1111101000000001 11111111 11111001000101001 10111010010001011 10101100000110111 11111 7:8 1111100100010100 1101110100100010 1110101100000110 11111111 11111111 11111000000110111 10010000100010111 00100000011011111 1100000000001 3.2.2 Perkalian Multioperand dengan Fungsi Logaritmik dan MSB First bit. Tabel 4. Proses perkalian dengan fungsi logaritmik dan MSB fist bit adder kasus 2 Clock Operand (A dan B) Accumulator (B) 1 A: B: 0000000000000 0000000000000 0000000000000 2 A: B: 0001000000000 0000000000000 0001000000000 3



A: B: 0000110000000 0001000000000 0001110000000 4 A: B: 0000001000000 0001110000000 0001111000000 5 A: B: 0000000100000 0001111000000 0001111100000 6 A: B: 0000000000000 0001111100000 0001111100000 7 A: B: 0000000000000 0001111100000 0001111100000 8 A: B: 0000000000000 0001111100000 0001111100000 9 A: B: 0000000000000 0001111100000 0001111100000 10 A: B:



0000000000000 0001111100000 0001111100000 Berdasarkan look up table, maka didapatkan hasilnya adalah : 11111000000000000000000000000000000000000 00000000000000000000000=F80000000000000016 F80000000000000016 = 1787028332140612812810 Hasil yang sebenarnya adalah : 2558 = 17878103347812890625 INTELLIGENT SYSTEMS AND CONTROL SYSTEMS Seminar Nasional “Soft Computing, Intelligent Systems and Information Technology” (SIIT 2005) 3-24 3.3 Analisa Kasus Berdasarkan kedua kasus yang diujikan, ternyata pada algoritma yang baru didapatkan error (kesalahan) yang merupakan selisih dari nilai hasil komputasi konvensional dengan algoritma yang baru. Semakin banyak operand dan semakin besar data, maka kesalahan yang terjadi juga semakin besar. Untuk lama proses yang dibutuhkan oleh komputasi perkalian yang dilakukan secara konvensional dan logaritmik harus dihitung dengan melakukan semacam simulasi dengan suatu program tertentu agar didapatkan hasil yang akurat. Namun pada paper ini hanya diberikan suatu asumsi atau anggapan, yang kemudian akan dipakai untuk melakukan perhitungan lama proses perkalian yang dilakukan oleh kedua algoritma tersebut. Asumsi-asumsi yang digunakan sebagai dasar perhitungan adalah sebagai berikut : 1. Waktu akses untuk mencari data pada LUT A dan B masing-masing adalah 1 clock cycle. 2. Waktu yang dibutuhkan untuk menghitung (melalui counter) tiap bit dari operand adalah 1 clock cycle. 3. Waktu yang dibutuhkan untuk menjumlahkan 2 buah operand adalah 1 clock cycle (algoritma baru). 4. Waktu yang dibutuhkan untuk melakukan perkalian antara dua buah operand pada algoritma perkalian konvensional adalah 8 clock cycle. Berdasarkan asumsi-asumsi yang dikemukakan di atas, maka waktu yang dibutuhkan dari setiap proses yang dilakukan oleh kedua algoritma tersebut dalam melakukan perkalian 8 operan 8 bit adalah sebagai berikut : 1. Algoritma perkalian konvensional: 8 x 8 = 64 clock cycle



2. Algoritma perkalian logaritmik dan MSB first bit a. Waktu yang dibutuhkan untuk mengakses LUT A untuk mendapatkan nilai logaritmik dari 8 operand adalah 8 x 1 = 8 clock cycle. b. Waktu yang dibutuhkan untuk mengakses LUT B dan mendapatkan nilai antilog dari 8 operand juga sebanyak 8 clock cycle. c. Waktu yang dibutuhkan untuk melakukan perhitungan dengan counter sebanyak 10 bit adalah 10 clock cycle. d. Waktu yang dibutuhkan untuk melakukan penjumlahan adalah 10 clock cycle. Jadi total waktu yang dibutuhkan untuk melakukan perkalian 8 operand dengan algoritma ini adalah 36 clock cycle. Berdasarkan hasil waktu yang didapatkan dari perbandingan kedua algoritma di atas, ternyata algoritma yang baru membutuhkan waktu akses yang lebih singkat bila dibandingkan dengan algoritma perkalian konvensional. Selain itu pada iterasi ke-6 hasil dari Accumulator sudah dapat diambil dan dicocokkan ke LUT B untuk mendapatkan hasilnya bila data tersebut sudah harus tersedia pada waktu itu. Namun tentu saja, ada faktor error yang harus dipertimbangkan. 4. KESIMPULAN DAN SARAN 4.1 Kesimpulan Kesimpulan yang dapat diambil dari pemaparan ini adalah sebagai berikut: 1. Perkalian dengan menggunakan algoritma perkalian dengan logaritmik lebih cepat dan efisien, karena hanya membutuhkan proses penjumlahan. 2. Ada penambahan waktu untuk mendapatkan nilai logaritmik dan antilog dengan mengakses ke LUT yang telah tersedia. 3. Penggunaan LUT masih dapat dimungkinkan untuk operand dengan jumlah bit data yang tidak terlalu besar. 4. Pemakaian LUT dapat menghemat waktu akses untuk mendapatkan hasil logaritmik dan antilog dibandingkan bila harus didapatkan dengan proses komputasi. 5. Ada faktor error yang harus dipertimbangkan dalam algoritma perkaliam multioperand dengan fungsi logaritmik dan MBS first bit ini. 4.2 Saran Saran-saran yang dapat diberikan untuk pengembangan sistem ini adalah: 1. Model arsitektur yang diberikan dapat dikembangkan untuk N operand dengan n bit data. 2. Bila tidak ingin memakan memori yang besar dapat digunakan proses komputasi untuk mencari nilai



logaritmik dan antilogaritmik. Hal ini terutama dilakukan untuk operand dengan jumlah data yang besar, karena untuk itu dibutuhkan look up table dengan kapasitas yang besar pula. 3. Perbandingan dan analisis sebaiknya dilakukan dengan menggunakan software tertentu untuk melakukan simulasi terhadap kedua algoritma tersebut dengan berbagai kasus. 4. Algoritma ini akan lebih baik bila dikembangkan untuk melakukan error koreksi dengan tujuan mengurangi error yang terjadi sehingga hasil yang didapat lebih akurat.



DAFTAR PUSTAKA [1] Kuspriyanto, Kerlooza, Y.Y., Toward New Real Time Processor : The Multioperand MSB-First Real-Time Adder, Proceedings of DSD’2004 Euromicro Symposium on Digital System Design, Rennes-France, IEEE Computer Society, 2004. [2] S. Ramaswamy., R. Siferd, “CMOS VLSI Implementation of A Digital Logarithmic Multiplier”, Proceedings of the IEEE National Aerospace and Electronic Conference, vol 1, pp 291-294, May 1996 [3] Kuspriyanto, Andrizal, “Algoritma Perkalian Waktu Nyata Dengan Metoda MSB Fist Bit-1 Process (MSB-P1)”. [4] McLaren Duncan,“Improved Mitchell-Based Logarithmic Multiplier for Low-power DSP Applications”, Sponsored by Cadence Design Systems Inc. And the Engineering & Physycal Sciences Research Council (ESPRC)