[發明專利]具有浮點精度保持功能的浮點累加/累減運算方法有效
| 申請號: | 201210494197.X | 申請日: | 2012-11-28 |
| 公開(公告)號: | CN103019647A | 公開(公告)日: | 2013-04-03 |
| 發明(設計)人: | 倪曉強;邰強強;竇強;王永文;張承義;高軍;孫彩霞;隋兵才;陳微;趙天磊;黃立波;王蕾 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | G06F7/485 | 分類號: | G06F7/485 |
| 代理公司: | 湖南兆弘專利事務所 43008 | 代理人: | 趙洪;譚武藝 |
| 地址: | 410073 湖南省長沙市硯瓦池正*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 具有 浮點 精度 保持 功能 累加 運算 方法 | ||
技術領域
本發明涉及微處理器體系結構中支持浮點加/減法運算的功能部件,具體涉及一種具有浮點精度保持功能的浮點累加/累減運算方法。
背景技術
浮點數是一種采用固定格式表示數據的方法。浮點數的表示如圖1所示,具體包括符號位、浮點數指數字段以及浮點數尾數字段。符號位用于表示數據大于零或者小于零;浮點數指數字段用于確定數據小數點的位置;浮點數尾數字段用于表示數據的有效數字。但是,由于受到計算機字長等條件的約束,浮點數通常無法精確表示數字,隨著浮點數運算過程,會逐漸損失數據的精度,降低數據的有效位數。當采用二進制表示時,設符號位為s,浮點指數字段E,寬度為m,尾數字段W,寬度為n,則浮點數能夠表示的最大數據為-2^m?*?W至?+2^m?*?W,其中對階操作過程中,需要的最大寬度為?2^m位寬的寄存器。在運算過程中需要?2^m+1位寬的運算器。擴展結果寄存器寬度為2^m+2位寬。
浮點加減法是當代計算機信息處理領域中必須具備的一種運算方法。根據浮點數據表示的特點,在進行浮點加/減運算前,需要首先將浮點數按照指數進行對齊(也稱為對階),對齊后的數據再進行加/減運算并將得到的尾數按照標準進行規格化處理。如圖2所示,浮點數據的加/減法運算通常分為求階差、對階、尾數相加、規格化與舍入共四個步驟,其中rs1表示輸入的第一個操作數、rs2表示輸入的第二個操作數,res表示輸出的計算結果。
浮點在進行數據對齊過程中將按照兩個操作數的指數進行對階,一般對階方式按照較大指數向較小指數對齊或者反之。但是,現有技術的浮點加減法在對階過程中超過浮點數表示位寬的數據將被截斷,在此過程中將產生截斷誤差。運算結束后的規格化和舍入處理將按照最終結果位寬進行截斷,按照舍入方式對尾數進行處理,由此截斷或者進位將進一步產生截斷和舍入誤差。在連續多次浮點數據累加/累減運算過程中,由于每次浮點加減法都將產生截斷和舍入誤差,因此多次運算過程后,浮點數據的有效位數將進一步減少。
發明內容
本發明要解決的技術問題是提供一種浮點運算精度高、硬件邏輯實現簡單、應用范圍廣、使用靈活方便的具有浮點精度保持功能的浮點累加/累減運算方法。
為了解決上述技術問題,本發明采用的技術方案為:
一種具有浮點精度保持功能的浮點累加/累減運算方法,其實施步驟如下:
1)預先擴充對階寄存器的寬度使得浮點運算前的浮點數對階操作不進行數據截斷、擴展結果寄存器的寬度用于存儲臨時運算結果,同時擴充二進制加法器的寬度使其滿足擴充寬度后的對階寄存器和擴展結果寄存器;在進行運算時將浮點累加/累減運算分解為第一次浮點加/減法運算指令以及后續的浮點累加/累減指令,獲取第一次浮點加/減法運算指令作為當前運算指令,獲取當前運算指令的兩個操作數并執行下一步;
2)將當前運算指令的兩個操作數執行浮點加/減法運算,將運算結果存儲在擴展結果寄存器中,同時將運算結果進行規格化與舍入操作后寫入目的浮點寄存器;
3)依次執行后續的浮點累加/累減指令,將后續的浮點累加/累減指令作為當前運算指令,從浮點寄存器文件中讀出當前運算指令的第一個操作數、從擴展結果寄存器中讀取上一次的計算結果作為當前運算指令的第二個操作數,然后返回執行步驟2);在執行最后一個浮點累加/累減指令后,將目的浮點寄存器中的數據作為最終運算結果輸出。
作為本發明上述技術方案的進一步改進,所述步驟2)的詳細步驟如下:
2.1)求取當前運算指令兩個操作數之間的階差;
2.2)根據所述階差將兩個操作數進行對階操作,將對階操作后的數據存儲在所述擴充寬度后的對階寄存器中;
2.3)將兩個操作數的浮點數尾數字段通過擴充位寬后的二進制加法器完成加法或者減法計算,將計算結果存儲在擴充寬度后的擴展結果寄存器中,同時將運算結果進行規格化與舍入操作后寫入目的浮點寄存器。
本發明具有下述優點:
1、本發明通過擴展浮點運算部件和增加累加/累減指令,增加的浮點累加/累減指令僅從浮點寄存器文件中讀取一個操作數,另外一個操作數使用浮點運算部件中的擴展結果寄存器的內容作為運算的源寄存器,并將運算結果寫入這個擴展結果寄存器中,中間運算結果的位寬能夠不進行數據的截斷和舍入處理,一方面能夠在浮點運算過程中保持浮點精度,在多次迭代的浮點運算過程中,能夠提高浮點數據的有效位數,另一方面省去了每一次規格化與舍入操作的步驟,還能夠減少對寄存器的讀取,提高浮點累加/累減運算的性能。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210494197.X/2.html,轉載請聲明來源鉆瓜專利網。





