|
|
接線方式 : 黑色 黑色 二線
運算類別 寄存器關系加法AC+DR→AC減法AC-DR→AC乘法DR×MQ→AC-MQ除法AC÷DR→AC-MQ
對階碼部件來說,只要能進行階碼相加、相減和比較操作即可。在圖2-21中,操作數的階碼部分放在寄存器E1和E2,它們與并行加法器相連以便計算。浮點加法和減法所需要的階碼比較是通過E1-E2來實現的,相減的結果放入計數器E中,然后按照E的符號為決定哪一個階碼較大。在尾數相加或相減之前,需要將一個尾數進行移位,這是由計數器E來控制的,目的是使E的值按順序減到0。E每減一次1,相應的尾數則向右移1位。一旦尾數高速完畢,它們就可按通常的定點方法進行處理。運算結果的階碼值仍放到計數器E中。
2、點協處理器,80x87是美國Intel公司為處理浮點數等數據的算術運算和多種函數計算而設計生產的專用算術運算處理器。由于它們的算術運算是配合80x86CPU進行的,所以又稱為協處理器。現在我們以80x87為例來討論浮點運算器部件的組成。浮點協處理器的主要功能如下:(1) 可與配套的CPU芯片異步并行工作。80x87相當于386的一個I/O部件,本身有它自己的指令,但不能單獨使用,它只能作為386主CPU的協處理器才能運算。因為真正的讀寫主存的工作不是80x87完成,而是由386執行的。如果386從主存讀取的指令是80x87浮點運算指令,則它們以輸出方式把該指令送到80x87,80x87接收后進行譯碼并執行浮點運算。在80x87進行運算期間,386可取下一條其他指令予以執行,因而實現了并行工作。如果在80x87執行浮點運算指令過程中386又取來一條80x87指令,則80x87以給出“忙”的標志信號加以拒絕,使386暫停向80x87發送命令。只有待80x87完成浮點運算而取消“忙”的標志信號以后,386才可以進行一次發送操作。(2) 高性能的80位字長的內部結構,有8個80位字長的以堆棧方式管理的寄存器組。80x87從存儲器取數和向存儲器寫數時,均用80位的臨時實數和其他6種數據類型執行自動轉換。全部數據在80x87中均以80位臨時實數的形式表示。因此80x87具有80位的內部結構,并有八個80位字長以 “先進后出”方式管理的寄存器組,又稱寄存器堆棧。這些寄存器可以按堆棧方式工作,此時,棧頂被用作累加器;也可以按寄存器的編號直接訪問任一個寄存器。(3) 浮點數的格式,完全符合IEEE制定的國際標準。(4) 能處理包括二進制浮點數、二進制整數和十進制數串三大類共7種數據。此7種數據類型在寄存器中表示如下:短整數(32位整數) S 31位 (二進制補碼) 長整數(64位整數) S 63位 (二進制補碼) 短實數(32位浮點數) S 指數尾數(23位) 長實數(64位浮點數) S 指數尾數(52位) 臨時實數(80位浮點數) S 指數尾數(64位) 十進數串(十進制18位) S -- d17d16 … d1d0。此處S為一位符號位,0代表正,1代表負。三種浮點數階碼的基值均為2。階碼值用移碼表示,尾數用原碼表示。尾數有32位、64位、80位三種。不僅僅是一個浮點運算器,還包括了執行數據運算所需要的全部控制線路,就運算部分講,有處理浮點數指數部分的部件和處理尾數部分的部件,還有加速移位操作的移位器線路,它們通過指數總線和小數總線與八個80位字長的寄存器堆棧相連接。(5) 內部的出錯管理功能為了保證操作的正確執行,80x87內部還設置了三個各為16位字長的寄存器,即特征寄存器、控制字寄存器和狀態寄存器。特征寄存器用每兩位表示寄存器堆棧中每個寄存器的狀態,即特征值為00-11四種組合時表明相應的寄存器有正確數據、數據為0、數據非法、無數據四種情況。控制字寄存器用于控制80x87的內部操作。其中PC為精度控制位域(2位):00為24位,01為備用,10為53位,11為64位。RC為舍入控制位域(2位):00為就近舍入,01朝-方向舍入,10朝+方向舍入,11朝0舍入。IC為無窮大控制位:該位為0時+與-作同值處理,該位為1時+與-不作同值處理。控制寄存器的低6位作異常中斷屏蔽位:IM為非法處理,DM為非法操作數,ZM為0作除數,OM為上溢,UM為下溢,PM為精度下降。狀態字寄存器用于表示80x87的結果處理情況,例如當“忙”標志為1時,表示正在執行一條浮點運算指令,為0則表示80x87空閑。狀態寄存器的低6位指出異常錯誤的6種類型,與控制寄存器低6位相。當的控制寄存器位為0(未屏蔽)而狀態寄存器位為1時,因發生某種異常錯誤而產生中斷請求。