日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
利用重疊掃描方法改進單片機乘法運算
利用重疊掃描方法改進單片機乘法運算
 更新時間:2008-8-4 4:14:02  點擊數(shù):36
【字體: 字體顏色


    由此原始矩陣乘法產(chǎn)生了標準的移位加算法56。一般的標準浮點乘法運算分為階碼運算與尾數(shù)運算兩部分,其主要部分為尾數(shù)運算。標準尾數(shù)相乘是采用邊乘邊相加的辦法(即加法-移位)來實現(xiàn)的,即乘數(shù)向左移位,產(chǎn)生中間結(jié)果,中間結(jié)果被加至積區(qū)的方法;在整個過程中,積也與乘數(shù)一起移位。此過程如圖1所示。上述方法對于兩個n位二進制尾數(shù)的相乘結(jié)果,即乘積為2n位,也就是部分積要點n位,在運算過程中,這2n字節(jié)都有可能要有相加的操作,需2n個字節(jié)加法器。對于標準算法,相當于進行了8n次2n字節(jié)的移位,還有次2n字節(jié)的加法。其中Pj(bj)為其每個bit位的布爾取值,其為1則取1,反之則為0。


  為了節(jié)省運算時間,標準乘法應(yīng)用標準右移乘法方法以便減少加法器的數(shù)量,有關(guān)這方面的具體論述請參見文[2]。
2 
  在執(zhí)行乘法指令時,如果每個周期所檢查的乘數(shù)位多于一位,乘法的速度便可以加快。例如,每次檢查二位,那么加法移位周期的總數(shù)就可以減半。這些逐次掃描的位組可以是分離的,也可以是重疊的。這里先簡述一下分離掃描的原理。對于乘數(shù)來講是以字節(jié)為單位的,其字長按二進制BIT來計是偶數(shù),設(shè)被乘數(shù)A=(AX),乘數(shù)B=(MR);則在掃描了最低一對乘數(shù)位(MR1,MR0)后,有四種可能的動作,如圖2所示。對于m=(MR1,MR02來說,被乘數(shù)A的倍數(shù)m×A被加到當前的部分乘積上,用來生成下一個部分積。上述原理可以推廣到任意大小的掃描位組,其具體實現(xiàn)方法和分析結(jié)果請參見文[2],這里不再敘述。


  以上所描述的是分離掃描的情況,下面再介紹重疊多位掃描的情況。一般在乘數(shù)中bj為0的個數(shù)越多,則程序運行的時候?qū)?的情況僅僅是移位越過,而不用作加法的運算,在此種情況下的運算相對加快。因此希望對乘數(shù)的bj能否進行適當?shù)牟僮,使這之在bj為1的區(qū)域也能使運算時間減少。
    現(xiàn)考慮乘數(shù)中有一串k個連續(xù)的1,如下

  列的位置…,i+k,i+k-1,i+k-2,…,i,i-1,…
  列的內(nèi)容…,0,1,1,…,1,0,…      (2) 
  
  按常規(guī),在移位加時,被乘數(shù)A與部分積要進行k次加法操作,但是存在
2ik-2i=2ik1+2ik2+…+2i1+2i   (3)

因此可以用下面的數(shù)符串來代替k個連續(xù)的1
  列的位置…,i+k,i+k-1,i+k-2,…,i,i-1,…
    列的內(nèi)容…,1,0,0,…,-1,0,…   (4)

  上面的-1表示執(zhí)行一次減法。利用這種乘法再編碼的方法,只要在數(shù)字串開始時作一次加法,結(jié)束時作一次減法,使這能夠代替原來的k次連續(xù)加法。顯然,當k很大時,能節(jié)省大量的加法時間。
  為了方便掃描,乘數(shù)位仍按二位一組分成許多組,但一次掃描三位,二位來自現(xiàn)在的組,第三位來自下一次高次組的低位,實際上每一組的低位被檢測了二次。為了與右移算法取得一致,假定掃描乘數(shù)從右端到左端,重疊和非重疊兩種掃描模式表示見圖3。


  設(shè)掃描組XR=[Xi1,Xi2;下一掃描組XR′=[Xi3,Xi22;每三位一組檢測后的動作說明見圖4。其指出了每個機器周期或執(zhí)行一次單純的移位,或者執(zhí)行一次加法,或者執(zhí)行一次減法,這里只需要倍數(shù)2A或4A。當下一對的低次位xi2為0時,三位中最左邊的1經(jīng)常指示一串1的左端(結(jié)束)。依式(3)所描述的特性,在具有非零的乘數(shù)位時應(yīng)該執(zhí)行加法。另一方面,當xi2=1 時,即意味著是一串1的右端(開始)或中心,按照串特性需要作一次減法,在每個加法周期中,部分乘積每次要右移二位。這就使部分乘積比它應(yīng)該具有的數(shù)值少了4倍被乘數(shù)(-4A)。這可以用在下一步掃描中加上所需被乘數(shù)的倍數(shù)與4倍數(shù)的差值來校正。倍數(shù)2A或4A進入加法器的地點是重要的。如果一對的尾數(shù)是 0,那么所得到的部分乘積是正確的,而且下一次的操作是一次加法。如果一對的結(jié)尾是1,則所得到的部分乘積太大,所以下一次操作將是一次減法。
  


  
3 現(xiàn)
  從以上原理可知,針對二位一組的情況需要五個被乘數(shù)的倍數(shù),其數(shù)值可取為0,±2A,±4A。由于其每移二位至多操作一次加減法,在多字節(jié)的運算中對提高執(zhí)行效率有很大的益處;不過考慮到8BITMCU的移位操作并沒有二位一移的指令,對這種掃描算法有很大的障礙,必須重新考慮掃描運算如何在微型機上進行實施。
  根據(jù)文[2],MCU對字節(jié)與半字節(jié)操作的指令較強,因此可以在掃描算法的基礎(chǔ)上擴展其掃描位組,這樣在每個加法周期中的運算變得很復(fù)雜,因此首先必須研究清楚這種情況。
  將乘數(shù)位按4BIT分成一組,一次掃描五位;設(shè)本組為BMi=[Xi3,Xi2,Xi1,Xi],下一次要掃描的BMi′的低位為Xi4;這樣在掃描過程中的情況與文[3]所介紹的情況有類似之處,但這里進行運算的次數(shù)不但與BMi有關(guān),同時下一次掃描的低位對本算法也有重大的影響作用。假定在運算數(shù)中0,1的概率出現(xiàn)機會均等,對4位一組的掃描進行分析! 「鶕(jù)重疊掃描算法的原理,BMi′低位為0時(如圖5所示),組中最左端的1指示一串1的左端(結(jié)束)。依據(jù)式(3),很容易得到每次掃描部分積所要加的被乘數(shù)倍數(shù)(見圖5),可以得到其倍數(shù),即相加的倍數(shù)
    Pj={BMi-2G[BMi/2]}A+BMi.A 。2(BMi-G[BMi/2])A    (5)

其中G[]為取整函數(shù)。Pj實質(zhì)上均與2A有關(guān),這一點從圖中可以看到。如果一組的結(jié)尾是零,那么所得到部分乘積是正確的,按正常操作;如果一組的結(jié)尾是1,那么所得的部分積同上一次掃描有關(guān);所以此時只是在掃描第一組時做一下記錄,在最后完成時針對它在最尾端減一次A即可。這一點對于BMi′低位為1時也成立。其部分積加的情況如圖6所示。


  區(qū)別只是改加為減,因為部分積的減值在以后的掃描中可以修正回來,不用采用補碼的運算也能完成,最常用的方法是設(shè)置輔助運算區(qū),采用臨時記錄的方式保證其部分積在掃描任一周期保持正確結(jié)果,也稱為臨時擴展方法,這里就不重復(fù)。這樣,在每次掃描僅剩下一個問題,即如何處理Pj,這里Pj與文[3]中處理的方法有類似之處。以2A為基礎(chǔ),將Pj形成一個加(減)法序列,也就是將Pj變?yōu)?qA的序列,如12A=22A+23A。這樣就可以在一個掃描周期完成部分積的加法。這里建議讀者去探索Pj更好的形成方法,因為形成2qA的序列,1≤q≤3,要占用時間(24A可以通過半字節(jié)操作做左端拼加處理,因為24A相當于A左移半字節(jié),運算時直接依靠輔助運算區(qū)),同時在特殊處理上也額外占有一些運算時間,這一點在圖7中也可以看出來。這樣一來,在Pj的加法過程中,掃描算法在某些BMi值上并不都占優(yōu)勢,這一點在圖5,6中也可以體現(xiàn)(BMi中Xi3,Xi2,Xi1,Xi為1的個數(shù)決定了在標準算法中的加法次數(shù));但重疊掃描畢竟節(jié)省了時間,其與標準算法在一個掃描周期內(nèi)的加法次數(shù)情況如圖8所示(其中系列1為重疊掃描算法,系列2為標準算法)。加之在移位中節(jié)省的時間,重疊掃描全過程的運算時間與標準右移算法的比較情況如圖8所示(S1為重疊掃描算法,S2為標準算法)。在局部區(qū)域,由于采用上述的Pj處理方法,運算時間節(jié)省情況還
不甚理想,但在總體上還是有很大的改進。


4 結(jié)  
  以上介紹的是重疊均勻移位掃描算法,前面談到重疊非均勻移位掃描算法,有關(guān)這種算法的詳細介紹請參見其他文獻。
  在以上過程中,是假定BMi中的Xi3,Xi2,Xi1,Xi值的1,0分布服從自然概率,然而在運算中由于Xi4的作用,在對某區(qū)間數(shù)據(jù)進行操作時存在差異,通過對一些運算區(qū)間的數(shù)據(jù)進行了統(tǒng)計,其Xi4與BMi值的分布概率如圖9所示;以實際的一組分布來驗證重疊算法運算時間的縮短情況,如圖10所示(S1為重疊掃描算法,S2為標準算法;圖中前面為S1,后面陰影為S2)?梢钥吹街丿B掃描法對浮點多字節(jié)乘法運算有很大的改進,它打破了移位加法的傳統(tǒng)乘法算法,有了算法的預(yù)測功能,提高了乘法運算的速度。本算法在某軍工項目中得到應(yīng)用,效果很好。




 
  
1 黃 凱.計算機算術(shù)運算原理、結(jié)構(gòu)與設(shè)計.北京:科學(xué)出版社,1980.106~110
2 陳 宇,王遵立.MC-51單片微型機上實現(xiàn)的快速掃描浮點乘法運算.數(shù)據(jù)采集與處理,1992,(9):151~153

3 陳 宇,畢淑艷,王遵立,等.MCS-51單片機實現(xiàn)的快速浮點多字節(jié)BCD乘除運算.電子技術(shù)應(yīng)用,1998,(2):17~19
4 Chen T C.A binary multiplication scheme based onsquaring.IEEE Trans Comput,1971,C-20(6):678~680
5 Booth A D.A signed binary multiplication technique.Quart Journ Mech and Appl,Math,1951,4(2):236~240
6 Garner H L.A ring model for the study for a binarymultiplier using 2,3 or 4-bit at a time.IEEE Trans,1959,EC-80(1):25~30
 王遵立,男,研究員,1948年5月生。發(fā)表過“雙基色LED圖文顯示屏的可靠性分配”(《數(shù)據(jù)采集與  處理》,1999年第1期)等論文。



  • 上一篇: 8腳單片機PIC12C5xx的特點及應(yīng)用
  • 下一篇: 一種8098單片機和PC機的串行通信方法
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責(zé)信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1