一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>電腦硬件>臺式機>

原碼乘法,原碼乘法原理詳解

2010年04月13日 10:55 www.www27dydycom.cn 作者:佚名 用戶評論(0
關鍵字:原碼乘法(6010)
原碼乘法,原碼乘法原理詳解

  1.人工算法與機器算法的同異性
  
  在定點計算機中,兩個原碼表示的數(shù)相乘的運算規(guī)則是:乘積的符號位由兩數(shù)的符號位按異或運算得到,而乘積的數(shù)值部分則是兩個正數(shù)相乘之積。
  
  設n位被乘數(shù)和乘數(shù)用定點小數(shù)表示(定點整數(shù)也同樣適用)
  
  被乘數(shù)   [x]=xf .xn-1…x10 
  乘數(shù)  ?  [y]=yf .yn-1…y10
  
  則乘積
  
  [z]=(xf⊕yf)+(0.xn-1…x10)(0.yn-1…y10)??? (2.26)

  式中,xf為被乘數(shù)符號,yf為乘數(shù)符號。

  乘積符號的運算法則是:同號相乘為正,異號相乘為負。由于被乘數(shù)和乘數(shù)和符號組合只有四種情況(xff=00,01,10,11),因此積的符號可按“異或”(按位加)運算得到。
  
  數(shù)值部分的運算方法與普通的十進制小數(shù)乘法類似,不過對于用二進制表達式的數(shù)來說,其乘法規(guī)則更為簡單一些。
  
  設x=0.1101,y=0.1011.讓我們先用習慣方法求其乘積,其過程如下:

運算的過程與十進制乘法相似:從乘數(shù)y的最低位開始,若這一位為“1”,則將被乘數(shù)x寫下;若這一位為“0”,則寫下全0。然后在對乘數(shù)y的最高為進行乘法運算,其規(guī)則同上,不過這一位乘數(shù)的權與最低位乘數(shù)的權不一樣,因此被乘數(shù)x要左移一位。以此類推,直到乘數(shù)個位乘完為止,最后將它們統(tǒng)統(tǒng)加起來,變得到最后乘積z。
  
  如果被乘數(shù)和乘數(shù)用定點整數(shù)表示,我們也會得到同樣的結果。
  
  人們習慣的算法對機器并不完全適用。原因之一,機器通常只有n位長,兩個n位數(shù)相乘,乘積可能為2n位。原因之二,只有兩個操作數(shù)相加的加法器難以勝任將各n位積一次相加起來的運算。早期計算機中為了簡化硬件結構,采用串行的1位乘法方案,即多次執(zhí)行“加法—移位”操作來實現(xiàn)。這種方法并不需要很多器件。然而串行方法畢竟太慢,自從大規(guī)模集成電路問世以來,出現(xiàn)了各種形式的流水式陣列乘法器,它們屬于并行乘法器。
  

  
圖2.4 m×n位不帶符號的陣列乘法器邏輯圖

  2.不帶符號的陣列乘法器
  
  設有兩個不帶符號的二進制整數(shù):
  
  A=am-1…a1a0 
  B=bn-1…b1b0

  
  它們的數(shù)值分別為a和b,即

???

在二進制乘法中,被乘數(shù)A與乘數(shù)B相乘,產(chǎn)生m+n位乘積P:
  
  P=pm+n-1…p1p0
  
  乘積P 的數(shù)值為

???
  
  
  實現(xiàn)這個乘法過程所需要的操作和人們的習慣方法非常類似:

  
  
  
  上述過程說明了在m位乘n位不帶符號整數(shù)的陣列乘法中,“加法—移位”操作的被加數(shù)矩陣。每一個部分乘積項(位積)aibj叫做一個被加數(shù)。
  
  這m×n個被加數(shù){aibj|0≤i≤m-1和0≤j≤n-1}
  
  可以用m×n個“與”門并行地產(chǎn)生。顯然,設計高速并行乘法器的基本問題,就在于縮短被加數(shù)矩陣中每列所包含的1的加法時間。

這種乘法器要實現(xiàn)n位×n位時,需要n(n-1)個全加器和n2個“與”門。該乘法器的總的乘法時間可以估算如下:
  
  令Ta為“與門”的傳輸延遲時間,Tf為全加器(FA)的進位傳輸延遲時間,假定用2級“與非”邏輯來實現(xiàn)FA的進位鏈功能,那么我們就有:
  
  Ta = Tf = 2T
  
  從演示中可知,最壞情況下延遲途徑,即是沿著矩陣P4垂直線和最下面的一行。因而得n位×n位不帶符號的陣列乘法器總的乘法時間為:
  
  tm=Ta+(n-1)×6T+(n-1)×Tf 
  =2T+(n-1)×6T+(n-1)×2T=(8n-6)T     (2.27)
  
  [例16] 已知兩個不帶符號的二進制整數(shù)A=11011,B=10101,求每一部分乘積項aibj的值與p9p8……p0的值。
  
  [解:]

???
  a4b0=1 a3b0=1 a2b0=0 a1b0=1 a0b0=1  
  a4b1=0 a3b1=0 a2b1=0 a1b1=0 a0b1=0
  a4b2=1 a3b2=1 a2b2=0 a1b2=1 a0b2=0 
  a4b3=0 a3b3=0 a2b3=0 a1b3=0 a0b3=0
  a4b4=1 a3b4=1 a2b4=0 a1b4=1 a0b4=1
 
  P=p9p8p7p6p5p4p3p2p1p0=1000110111(56710)

3.帶符號的陣列乘法器
  
  (1) 對2求補器電路
  
  我們先來看看算術運算部件設計中經(jīng)常用到的求補電路。一個具有使能控制的二進制對2求補器電路圖,其邏輯表達式如下:
  
  C-1=0,  Ci=ai+Ci-1
  
  ai*=ai⊕ECi-1,   0≤i≤n

  
  在對2求補時,要采用按位掃描技術來執(zhí)行所需要的求補操作。令A=an…a1a0是給定的(n+1)為帶符號的數(shù),要求確定它的補碼形式。進行求補的方法就是從數(shù)的最右端a0開始,,由右向左,直到找出第一個“1”,例如ai=1, 0≤i≤n。這樣,ai以左的每一個輸入位都求反,即1變0,0變1。最右端的起始鏈式輸入C-1必須永遠置成“0”。當控制信號線E為“1”時,啟動對2求補的操作。當控制信號線E為“0”時,輸出將和輸入相等。顯然,我們可以利用符號位來作為控制信號。  
  
  例如,在一個4位的對2求補器中,,如果輸入數(shù)為1010,那么輸出數(shù)應是0110,其中從右算起的第2位,就是所遇到的第一個“1”的位置。用這種對2求補器來轉換一個(n+1)為帶符號的數(shù),所需的總時間延遲為
  
  tTC=n·2T+5T=(2n+5)T      (2.28)
  
  其中每個掃描級需2T延遲,而5T則是由于“與”門和“異或”門引起的。

(2) 帶符號的陣列乘法器
  
  (n+1)×(n+1)位帶求補器的陣列乘法器邏輯方框圖

  通常,把包括這些求補級的乘法器又稱為符號求補的陣列乘法器。在這種邏輯結構中,共使用三個求補器。其中兩個算前求補器的作用是:將兩個操作數(shù)A和B在被不帶符號的乘法陣列(核心部件)相乘以前,先變成正整數(shù)。而算后求補器的作用則是:當兩個輸入操作數(shù)的符號不一致時,把運算結果變成帶符號的數(shù)。
  
  設A=anan-1…a1a0和B=bnbn-1…b1b0均為用定點表示的(n+1)位帶符號整數(shù)。在必要的求補操作以后,A和B的碼值輸送給n×n位不帶符號的陣列乘法器,并由此產(chǎn)生2n位真值乘積:
  
  A·B=P=p2n-1…p1p0  
  p2n=an⊕bn

  
  其中P2n為符號位。
  
  上面所示的帶求補級的陣列乘法器既適用于原碼乘法,也適用于間接的補碼乘法。不過在原碼乘法中,算前求補和算后求補都不需要,因為輸入數(shù)據(jù)都是立即可用的。而間接的補碼陣列乘法所需要增加的硬件較多。為了完成所必需的乘法操作,時間大約比原碼陣列乘法增加1倍。

[例17] 設x=+15,y=-13,用帶求補器的原碼陣列乘法器求出乘積x·y=?
  
  [解:]
  
  設最高位為符號位,則輸入數(shù)據(jù)為
  
  [x]=01111  [y]=11101
  
  符號位單獨考慮,算前求補級后 |x|=1111,|y|=1101

  算后經(jīng)求補級輸出并加上乘積符號位1,則原碼乘積值為111000011。
  
  換算成二進制數(shù)真值是
  
  x·y=( -11000011)2=(-195)10
  
  十進制數(shù)驗證:x×y = 15× (-13) = -195相等。
  
  [例18] 設x=+15,y=-13,用帶求補器的補碼陣列乘法器求出乘積x·y=?
  
  [解:]
  
  設最高位為符號位,則輸入數(shù)據(jù)用補碼表示為
  
  [x]=01111    [y]=10011
  
  符號位單獨運算,x0⊕y0=0+1=1
  
  尾數(shù)部分算前求補器輸出為: |x|=1111,|y|=1101

  算后求補器輸出為00111101,加符號位1,得
  
  [x·y]=100111101
  
  補碼二進制數(shù)真值是
  
  x·y=-1×28+1×25+1×24+1×23+1×22+1×20=(-195)10
  
  十進制數(shù)驗證:???? x×y=(+15)×(-13)=-195相等。

非常好我支持^.^

(83) 31%

不好我反對

(185) 69%

相關閱讀:

( 發(fā)表人:admin )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?