国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2024
工業(yè)智能邊緣計算2024年會
2023年工業(yè)安全大會
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

嵌入式操作系統(tǒng)數(shù)學(xué)庫函數(shù)測試方法研究和應(yīng)用
核鷺操作系統(tǒng)數(shù)學(xué)庫以C語言函數(shù)庫的形式提供常用的若干數(shù)學(xué)函數(shù),被用于核安全重要的儀控系統(tǒng),直接參與核安全重要功能的實(shí)現(xiàn),因此必須在使用前對其進(jìn)行全面驗(yàn)證和確認(rèn)。為提高測試全面性、有效性和測試執(zhí)行的自動化程度,研究者采用對比測試方法完成測試工作,以保證各函數(shù)的計算正確性和精度:首先在參考環(huán)境(通用PC機(jī))下,按照IEC 60559中浮點(diǎn)數(shù)定義和各待測函數(shù)定義域和計算方法等特性,生成各待測函數(shù)輸入值序列并在參考環(huán)境下調(diào)用編譯工具內(nèi)置的庫函數(shù)計算出對應(yīng)的函數(shù)輸出值,再將已產(chǎn)生的各待測函數(shù)輸入值序列和對應(yīng)的函數(shù)輸出值以二進(jìn)制文件方式保存并傳遞給嵌入式操作系統(tǒng)目標(biāo)機(jī)運(yùn)行環(huán)境,并在目標(biāo)機(jī)運(yùn)行環(huán)境下調(diào)用嵌入式操作系統(tǒng)數(shù)學(xué)庫函數(shù)計算各待測函數(shù)輸入值序列的對應(yīng)函數(shù)輸出值,最后以二進(jìn)制值的方式比較不同環(huán)境下的函數(shù)輸出值,分析測試中發(fā)現(xiàn)的問題以及計算誤差產(chǎn)生原因和可接受條件,最終確保嵌入式操作系統(tǒng)數(shù)學(xué)庫函數(shù)在其定義域內(nèi)計算正確并在可接受的誤差范圍內(nèi)。

★北京廣利核系統(tǒng)工程有限公司程建明,徐先柱

關(guān)鍵詞:嵌入式操作系統(tǒng);數(shù)學(xué)庫函數(shù);對比測試;誤差分析

核鷺操作系統(tǒng)(NuEgretOS)是北京廣利核系統(tǒng)工程有限公司開發(fā)的嵌入式多任務(wù)操作系統(tǒng)軟件,可運(yùn)行于基于龍芯2K1000處理器的專用硬件環(huán)境中,為執(zhí)行核安全重要功能的、符合包含IEC 62138-2018[1]等標(biāo)準(zhǔn)要求的應(yīng)用軟件提供操作系統(tǒng)軟件環(huán)境。NuEgretOS提供在目標(biāo)硬件環(huán)境下資源分配、調(diào)度、輸入輸出控制以及數(shù)據(jù)管理等服務(wù),應(yīng)用軟件在此基礎(chǔ)上提供信號和控制處理邏輯。NuEgretOS還提供部分C語言標(biāo)準(zhǔn)庫函數(shù)(其中包含數(shù)學(xué)庫函數(shù)),供基于NuEgretOS運(yùn)行的應(yīng)用軟件設(shè)計時調(diào)用。其中,NuEgretOS數(shù)學(xué)庫目前提供最常用的若干數(shù)學(xué)函數(shù),包括三角函數(shù)、反三角函數(shù)、雙曲函數(shù)、指數(shù)和對數(shù)函數(shù)、冪函數(shù),以及與浮點(diǎn)數(shù)特性相關(guān)的函數(shù)(如取整、取余、取絕對值、切分浮點(diǎn)數(shù))等。

出于安全方面的原因,NuEgretOS數(shù)學(xué)庫實(shí)現(xiàn)過程中不使用任何第三方函數(shù)庫,包括不調(diào)用編譯器自帶的數(shù)學(xué)函數(shù)庫中的函數(shù)。同時,由于NuEgretOS數(shù)學(xué)庫函數(shù)將直接參與應(yīng)用軟件處理邏輯,執(zhí)行包括核安全重要功能在內(nèi)的應(yīng)用軟件功能,因此在使用前必須對其進(jìn)行全面驗(yàn)證和確認(rèn)。通過測試保證其正確性和計算精度是NuEgretOS數(shù)學(xué)庫驗(yàn)證和確認(rèn)的重要工作之一。

1 庫函數(shù)設(shè)計NuEgretOS軟件和應(yīng)用軟件均使用C語言及必要的

匯編語言開發(fā),使用GCC工具進(jìn)行編譯。NuEgretOS以鏡像文件(.bin文件)方式存儲于目標(biāo)硬件中的存儲器上,并在設(shè)備上電時加載運(yùn)行。NuEgretOS的C語言標(biāo)準(zhǔn)庫(其中包含數(shù)學(xué)庫函數(shù))以庫文件(.a文件)的形式提供給應(yīng)用開發(fā)環(huán)境,并與應(yīng)用軟件代碼一起編譯生成可執(zhí)行與可鏈接格式文件(elf格式,.out文件),由NuEgretOS加載和運(yùn)行。

NuEgretOS數(shù)學(xué)庫(C語言標(biāo)準(zhǔn)庫的一部分)中的全部函數(shù)定義和POSIX.1-2017[2]標(biāo)準(zhǔn)中對應(yīng)的函數(shù)相同,是POSIX.1-2017規(guī)定的數(shù)學(xué)函數(shù)的子集。

NuEgretOS數(shù)學(xué)庫各函數(shù)輸入和輸出中的數(shù)學(xué)上定義為實(shí)數(shù)的數(shù)值均使用double類型浮點(diǎn)數(shù)表示,該浮點(diǎn)數(shù)類型符合ISO/IEC 60559:2020(IEEE Std754-2019)[3]對64位雙精度浮點(diǎn)數(shù)(binary64)的規(guī)定。double型數(shù)據(jù)位串定義如圖1所示。

image.png

圖1 double型數(shù)據(jù)位串定義

按該標(biāo)準(zhǔn)定義,double型數(shù)以64位位串值(二進(jìn)制內(nèi)存值)表示實(shí)數(shù)域內(nèi)的若干個(264-253-1,約1.84×1019個)離散數(shù)值(有限小數(shù),含整數(shù))以及計算機(jī)在處理小數(shù)運(yùn)算時的特殊定義值(不表示任何實(shí)數(shù)的位串值,僅用于計算機(jī)對浮點(diǎn)數(shù)處理的特殊情況的表示)。double型數(shù)據(jù)位串值定義細(xì)分類別及特點(diǎn)如表1所示。

表1 double型數(shù)據(jù)位串值定義細(xì)分類別及特點(diǎn)

image.png

2 測試設(shè)計

2.1 計算誤差來源分析

基于ISO/IEC60559:2020(IEEE Std754-2019)[3]對64位雙精度浮點(diǎn)數(shù)(binary64)的規(guī)定,雙精度浮點(diǎn)數(shù)除特殊定義值外,兩個位串值相鄰的浮點(diǎn)數(shù)數(shù)值之間的差值的絕對值定義為1個ULP(unit in the last place,最小有效數(shù))。1ULP的實(shí)際表示值與指數(shù)域的大小相關(guān):當(dāng)指數(shù)域?yàn)樽畲笾?x7FE時,1ULP≈8.99E307;當(dāng)指數(shù)域?yàn)樽钚≈?x000時,1ULP≈4.94E-324。對于浮點(diǎn)數(shù)表示范圍(約-1.79E308~約1.79E308)內(nèi)的任意實(shí)數(shù),在最近舍入模式下,由浮點(diǎn)數(shù)離散特性帶來的最大表示誤差≤0.5ULPs。規(guī)格化數(shù)的二進(jìn)制有效數(shù)字個數(shù)為53個,由浮點(diǎn)數(shù)舍入帶來的最大表示誤差(≤0.5ULPs)帶來的數(shù)值相對誤差范圍為(2-54,2-53),非規(guī)格化數(shù)的二進(jìn)制有效數(shù)字個數(shù)最大為52個,隨數(shù)值減小而減少,由浮點(diǎn)數(shù)舍入帶來的最大表示誤差(≤0.5ULPs)造成的數(shù)值相對誤差也相應(yīng)增大,范圍為(2-53,2-1)。

對于NuEgretOS數(shù)學(xué)庫中與浮點(diǎn)數(shù)特性相關(guān)的算術(shù)函數(shù)(如取整、取余、取絕對值、切分浮點(diǎn)數(shù)等),函數(shù)的運(yùn)算輸出與其理論輸出之間不應(yīng)存在誤差,即允許誤差為0ULPs。而對于其它函數(shù),包括三角函數(shù)、反三角函數(shù)、雙曲函數(shù)、指數(shù)和對數(shù)函數(shù)、冪函數(shù)等,其理論計算值與其函數(shù)輸出值之間的誤差受多種因素影響,主要包括:

(1)輸入值表示誤差;

(2)計算方法誤差,如使用泰勒展開式有限項(xiàng)帶來的誤差;

(3)計算過程誤差,包括模型參數(shù)引入的誤差、中間計算結(jié)果的舍入誤差等;

(4)輸出值表示誤差。基于NuEgretOS數(shù)學(xué)庫函數(shù)的目標(biāo)應(yīng)用,除算術(shù)計算函數(shù)外,設(shè)定各函數(shù)輸出的允許誤差為2ULPs。

2.2 驗(yàn)證目標(biāo)

基于NuEgretOS數(shù)學(xué)庫的設(shè)計特點(diǎn)和應(yīng)用要求,NuEgretOS數(shù)學(xué)庫的驗(yàn)證目標(biāo)包括:

(1)各函數(shù)在其定義域內(nèi)的任意值(包括浮點(diǎn)定義的正負(fù)零值)的計算輸出值正確(符合函數(shù)定義)且在允許誤差范圍內(nèi)。

(2)各函數(shù)對異常及特殊情況處理正確,包括對計算值超浮點(diǎn)表示范圍的處理、輸入非函數(shù)定義域數(shù)值、輸入浮點(diǎn)特殊定義值等,函數(shù)輸出符合處理器特性以及IEC60559規(guī)定的特殊定義值。如有定義,NuEgretOS應(yīng)用軟件可通過注冊中斷處理程序獲知計算過程例外或異常并處理。

2.3 測試方案

NuEgretOS數(shù)學(xué)庫為新開發(fā)軟件,各函數(shù)遵循其數(shù)學(xué)定義,其輸出值實(shí)數(shù)范圍內(nèi)存在理論精確值,該理論精確值在確定的浮點(diǎn)數(shù)類型定義和舍入方式下,經(jīng)計算機(jī)計算后輸出的浮點(diǎn)數(shù)(二進(jìn)制內(nèi)存值)是唯一的和確定的,與函數(shù)的實(shí)現(xiàn)方式以及運(yùn)行所依賴的硬件和軟件環(huán)境無關(guān)。同時,NuEgretOS數(shù)學(xué)庫范圍內(nèi)的各函數(shù)已在支持POSIX標(biāo)準(zhǔn)的大多數(shù)軟件開發(fā)工具及編譯工具中實(shí)現(xiàn)。這些已實(shí)現(xiàn)的函數(shù)多包含在隨軟件開發(fā)工具及編譯工具提供的函數(shù)庫中,其實(shí)現(xiàn)比較成熟且已有較多運(yùn)行經(jīng)歷,運(yùn)算結(jié)果相對可信,NuEgretOS數(shù)學(xué)庫測試時假定對應(yīng)函數(shù)的預(yù)期運(yùn)算結(jié)果。當(dāng)運(yùn)算結(jié)果一致時,可在較高可信度上證明NuEgretOS數(shù)學(xué)庫函數(shù)的正確性和精度,當(dāng)運(yùn)算結(jié)果不一致時,進(jìn)行函數(shù)實(shí)現(xiàn)分析以定位問題或通過設(shè)計分析證明NuEgretOS數(shù)學(xué)庫函數(shù)的正確性和精度。測試前對NuEgretOS數(shù)學(xué)庫全部函數(shù)的設(shè)計和實(shí)現(xiàn)代碼的評審和分析也是保證NuEgretOS數(shù)學(xué)庫函數(shù)的正確性和精度的措施。因此,可以通過對比其它已實(shí)現(xiàn)的成熟函數(shù)庫執(zhí)行結(jié)果的方式,對NuEgretOS數(shù)學(xué)庫的正確性和精度進(jìn)行對比測試。NuEgretOS數(shù)學(xué)庫對比測試總體方案如圖2所示。

image.png

圖2 對比測試方案

分別建立數(shù)學(xué)庫的參考運(yùn)行環(huán)境和目標(biāo)機(jī)運(yùn)行環(huán)境,目標(biāo)機(jī)運(yùn)行環(huán)境和NuEgretOS應(yīng)用軟件運(yùn)行環(huán)境完全一致。在參考運(yùn)行環(huán)境下,可以用與NuEgretOS應(yīng)用程序相同的方式調(diào)用相同定義的各數(shù)學(xué)庫函數(shù)。參考運(yùn)行環(huán)境由通用PC機(jī)搭建,同時作為測試應(yīng)用程序的開發(fā)環(huán)境。

用相同的方式分別建立參考環(huán)境測試工程和目標(biāo)機(jī)測試工程,兩個測試工程共用一套C語言代碼,兩個工程中的測試應(yīng)用程序內(nèi)必要的有差別的行為通過預(yù)編譯開關(guān)實(shí)現(xiàn)。測試應(yīng)用程序中含用例生成、用例執(zhí)行、結(jié)果保存、用例讀取、結(jié)果比較等主要功能模塊。參考環(huán)境應(yīng)用程序?qū)嶋H執(zhí)行用例生成、用例執(zhí)行、結(jié)果保存三項(xiàng)功能。參考環(huán)境測試應(yīng)用程序運(yùn)行結(jié)果保存中包括了測試用例中各函數(shù)的輸入序列和其在參考環(huán)境中的運(yùn)算結(jié)果。各函數(shù)的輸入序列和對應(yīng)的參考環(huán)境運(yùn)算結(jié)果組成測試向量,以二進(jìn)制內(nèi)存拷貝的方式保存成文件,并下載到目標(biāo)機(jī)運(yùn)行環(huán)境。目標(biāo)機(jī)測試應(yīng)用程序讀取各待測函數(shù)測試向量生成測試用例。目標(biāo)機(jī)測試應(yīng)用程序執(zhí)行完成測試用例后進(jìn)行結(jié)果比較,以文件和串口打印輸出的形式輸出與參考環(huán)境計算結(jié)果的比較情況。同時目標(biāo)機(jī)測試應(yīng)用程序用與參考環(huán)境測試應(yīng)用程序相同的方式保存測試結(jié)果。參考環(huán)境和目標(biāo)機(jī)處理器大小端模式相同,測試向量的保存、傳遞和讀取過程不引入浮點(diǎn)數(shù)表示誤差。參考環(huán)境和目標(biāo)機(jī)的測試應(yīng)用程序的全部輸出作為人工分析的輸入,用以最終判定NuEgretOS數(shù)學(xué)庫的正確性和計算精度是否符合設(shè)計和應(yīng)用目標(biāo)。

另外,還使用不同的編譯工具生成多個參考環(huán)境測試應(yīng)用程序并對其運(yùn)算結(jié)果進(jìn)行比較,用以提高參考環(huán)境測試應(yīng)用程序運(yùn)算結(jié)果作為NuEgretOS數(shù)學(xué)庫預(yù)期結(jié)果的可信度。

2.4 測試用例生成

在本項(xiàng)測試中,各函數(shù)的測試輸入覆蓋率是保證對NuEgretOS數(shù)學(xué)庫各函數(shù)測試全面性的最重要指標(biāo)。由于double型數(shù)據(jù)位串值個數(shù)(264)遠(yuǎn)大于目標(biāo)機(jī)運(yùn)行環(huán)境可執(zhí)行測試輸入數(shù)量,進(jìn)行位串值完全窮舉是不可行的,需按適當(dāng)?shù)囊?guī)則進(jìn)行抽樣。

為保證充分的輸入覆蓋率,測試用例設(shè)計前先分析各函數(shù)的基本特性,包括定義域、周期(如有)、單調(diào)性、與函數(shù)計算機(jī)實(shí)現(xiàn)方法相關(guān)的特殊值等,再根據(jù)各函數(shù)特性和浮點(diǎn)數(shù)定義自動生成測試輸入序列。在參考環(huán)境測試應(yīng)用程序中生成各函數(shù)測試輸入值序列時,需滿足以下規(guī)則:

2.4.1 插入函數(shù)整體定義域邊界值、典型周期定義域邊界值、函數(shù)拐點(diǎn)值,無論函數(shù)在這些值上是否有定義;

2.4.2 插入函數(shù)整體定義域、典型周期定義域內(nèi)若干(40個以上)隨機(jī)值;

2.4.3 插入與各函數(shù)實(shí)現(xiàn)相關(guān)的特殊值,可能包括:

(1)與函數(shù)計算方法相關(guān)的函數(shù)定義域邊界值,如sin函數(shù)中泰勒展開式計算前x的邊界值π/4;

(2)與函數(shù)計算所用參數(shù)相關(guān)的特殊值等;

(3)函數(shù)計算過程中可能出現(xiàn)溢出例外的函數(shù)定義域值。

2.4.4 插入與浮點(diǎn)數(shù)定義相關(guān)的特殊值(無論數(shù)學(xué)函數(shù)在這些值上是否有定義),包括正負(fù)零、正負(fù)無窮大、qNaN(靜默非數(shù))/sNaN(信號非數(shù))典型值、規(guī)格化數(shù)和非規(guī)格化數(shù)的最大值和最小值。

除自動生成的隨機(jī)數(shù)值外,以上各項(xiàng)中的輸入值均以C語言共用體方式直接對內(nèi)存賦值,以避免因常量編譯等因素造成實(shí)際輸入值與需輸入值不一致。另外,在按以上規(guī)則插入各函數(shù)測試輸入值時,同時插入每個輸入值的二進(jìn)制位串值的相鄰值。

3 測試工程的編譯和運(yùn)行

在參考環(huán)境中,使用MinGW提供的GCC編譯工具編譯測試工程,編譯過程中數(shù)學(xué)函數(shù)調(diào)用GCC編譯工具自帶函數(shù)庫(libgcc.a)中的對應(yīng)函數(shù)實(shí)現(xiàn),編譯后的測試應(yīng)用程序在Windows操作系統(tǒng)下運(yùn)行。

目標(biāo)機(jī)測試工程在Windows操作系統(tǒng)下調(diào)用GCC編譯工具進(jìn)行交叉編譯,編譯過程中數(shù)學(xué)函數(shù)調(diào)用NuEgretOS數(shù)學(xué)庫(libEgretLibc.a)中的對應(yīng)函數(shù)實(shí)現(xiàn)。另外,在參考環(huán)境中還調(diào)用了MSVC編譯器編譯測試工程,編譯過程中數(shù)學(xué)函數(shù)調(diào)用MSVC編譯工具自帶的C運(yùn)行時庫中的對應(yīng)函數(shù)實(shí)現(xiàn)。

4 運(yùn)行結(jié)果比較

4.1 參考環(huán)境下不同編譯的測試應(yīng)用程序運(yùn)算結(jié)果比較

Windows操作系統(tǒng)下使用MinGW和MSVC編譯的測試應(yīng)用程序可以相互傳遞各自生成的二進(jìn)制測試向量文件。在相同的函數(shù)輸入下,兩個程序的函數(shù)運(yùn)行結(jié)果僅存在細(xì)微差別,包括:

(1)部分函數(shù)在特殊輸入值下計算值僅相差1ULP(如sqrt函數(shù)輸入最大規(guī)格化數(shù),sin/cos函數(shù)的部分輸入值)。

(2)部分函數(shù)在輸入為NaN時,輸出的NaN位串值不同(如fabs函數(shù)是否將NaN位串值的符號位設(shè)置為0,exp函數(shù)輸出NaN時是否將位串值尾數(shù)域的全部非首位設(shè)置為0),對NaN的不同處理均不違反C99[4]和POSIX.1-2017標(biāo)準(zhǔn)的要求。

結(jié)合MinGW和MSVC編譯工具(包括工具自帶的函數(shù)庫)的應(yīng)用廣泛程度和函數(shù)輸出比較結(jié)果,以MinGW編譯工具生成的參考環(huán)境測試應(yīng)用程序的運(yùn)算結(jié)果作為NuEgretOS數(shù)學(xué)庫各函數(shù)的參考值是相對可信的。

4.2 參考環(huán)境和目標(biāo)機(jī)運(yùn)行環(huán)境測試應(yīng)用程序運(yùn)算結(jié)果比較

以MinGW作為參考環(huán)境測試應(yīng)用程序編譯工具,并以該參考環(huán)境測試應(yīng)用程序生成的各函數(shù)輸入序列作為目標(biāo)機(jī)測試應(yīng)用程序的被測函數(shù)輸入序列,假定該參考環(huán)境測試應(yīng)用程序?qū)ψ陨砩傻臏y試輸入序列的函數(shù)運(yùn)算結(jié)果為目標(biāo)機(jī)測試應(yīng)用程序執(zhí)行NuEgretOS數(shù)學(xué)庫各函數(shù)的預(yù)期結(jié)果(即參考值)。經(jīng)目標(biāo)機(jī)測試應(yīng)用程序運(yùn)行結(jié)果比較,除以下兩項(xiàng)主要問題外,NuEgretOS數(shù)學(xué)庫運(yùn)算結(jié)果符合驗(yàn)證目標(biāo):函數(shù)對有定義輸入值、異常及特殊情況處理正確,并且函數(shù)輸出為有限小數(shù)值的計算誤差≤2ULPs。

(1)問題1:exp、sinh、sqrt、log、log10這5個函數(shù)輸入為非規(guī)格化浮點(diǎn)數(shù)時,計算值錯誤。部分測試結(jié)果如表2所示。

表2 問題1測試結(jié)果

image.png

(2)問題2:cos、sin、tan這三個周期性函數(shù)在輸入值較大時,計算誤差超允許值(2ULPs)。部分測試結(jié)果如表3所示。

表3 問題2測試結(jié)果

image.png

5 問題分析和處理

經(jīng)過對已發(fā)現(xiàn)的兩個問題(如表2和表3所示)相關(guān)的軟件代碼進(jìn)行分析和調(diào)試,兩個問題的原因和處理方式如下:

(1)問題1,屬例外處理的匯編代碼錯誤。錯誤原因?yàn)閰R編代碼中寄存器使用錯誤,使得NuEgretOS在處理龍芯2K1000浮點(diǎn)協(xié)處理器(FPU)的例外(未實(shí)現(xiàn)操作例外,2K1000未實(shí)現(xiàn)的MIPS64全部浮點(diǎn)指令)時的處理邏輯出現(xiàn)錯誤。匯編代碼修改后問題得到解決。經(jīng)回歸測試,這5個函數(shù)(exp、sinh、sqrt、log、log10)在參考環(huán)境和目標(biāo)環(huán)境的計算誤差不超過2UPLs,符合NuEgretOS數(shù)學(xué)庫預(yù)先設(shè)定的要求。

(2)問題2,由計算參數(shù)表示誤差而引起的中間計算值誤差隨三角函數(shù)2π周期數(shù)擴(kuò)大。NuEgretOS數(shù)學(xué)庫在實(shí)現(xiàn)cos、sin、tan這三個周期性函數(shù),其中sin和cos函數(shù)采用這兩個函數(shù)的泰勒展開式求解,tan函數(shù)利用tanx=sinx/cosx關(guān)系式求解。在代入泰勒展開式前,將輸入值x通過三角函數(shù)變換公式整理到絕對值不大于π/4的弧度值。首先需利用公式(如sinx=sin(k·2π+θ),x∈R,k∈N,θ∈[-π,π])將NuEgretOS數(shù)學(xué)庫中的三角函數(shù)定義域轉(zhuǎn)化到±π之間時,使用位串值為0x401921FB54442D18的參數(shù)(名為PI2)表示理論數(shù)值2π,其表示值(6.283185307179586231996)與精確值(6.283185307179586476925)之間的表示誤差為δPI2≈2.449×10-16,約0.276ULPs。經(jīng)過k個2π周期后,造成θ值的誤差為δθ=k·δPI2,因此|k|≥1時,這一單一因素將可以造成函數(shù)值誤差大于2ULPs。解決這一問題可以有兩個途徑:

(1)限制函數(shù)輸入值的范圍,以減少中間值θ的計算誤差;

(2)使用更高精度的浮點(diǎn)數(shù)(如binary128或兩個binary64)表示2π的值并參與計算。

6 總結(jié)

研究者引入對比測試方法快速準(zhǔn)確地實(shí)現(xiàn)了對新開發(fā)的嵌入式操作系統(tǒng)數(shù)學(xué)庫的測試,并通過誤差分析輔助完成了對測試中發(fā)現(xiàn)的被測函數(shù)問題的定位和處理,提高了被測試函數(shù)庫的計算精度和結(jié)果可信度。

按照經(jīng)分析確定的規(guī)則生成各被測試函數(shù)輸入值序列保證了測試的有效覆蓋率。

在參考環(huán)境中采用不同編譯工具并調(diào)用不同工具自帶函數(shù)庫執(zhí)行相同輸入序列的函數(shù)計算,并對計算結(jié)果進(jìn)行比較,提高了參考環(huán)境生成的、擬作為目標(biāo)機(jī)環(huán)境被測函數(shù)預(yù)期值的函數(shù)值的正確性和精度的可信度。

使用浮點(diǎn)數(shù)內(nèi)存值二進(jìn)制方式保存、傳遞和比較各函數(shù)的輸入序列和對應(yīng)的參考環(huán)境運(yùn)算結(jié)果組成的測試向量,避免了浮點(diǎn)數(shù)值在不同環(huán)境中交換和比較可能帶來的表示誤差和比較不確定性。

通過參考環(huán)境和目標(biāo)環(huán)境測試應(yīng)用程序,測試用例按規(guī)則自動生成、執(zhí)行并比較結(jié)果,提高了本項(xiàng)測試的自動化程度。

作者簡介:

程建明(1976-),男,四川人,高級工程師,學(xué)士,現(xiàn)就職于北京廣利核系統(tǒng)工程有限公司,主要從事核安全級軟件的驗(yàn)證和確認(rèn)工作。

徐先柱(1982-),男,黑龍江人,高級工程師,學(xué)士,現(xiàn)就職于北京廣利核系統(tǒng)工程有限公司,主要從事于核安全級軟件的驗(yàn)證與確認(rèn)工作。

參考文獻(xiàn):

[1] IEC 62138-2018, Nuclear power plants-Instrumentation and control systems important to safety-Software aspects for computer-based systems performing category B or C functions[S]. International Electrotechnical Commission,2018.

[2] POSIX.1-2017/IEEE Std 1003.1-2017,IEEE Standard for Information Technology-Portable Operating System Interface (POSIX?) [S]. IEEE Computer Society and The Open Group, 2017.

[3] ISO/IEC 60559:2020(E) IEEE Std 754-2019, Floating-point arithmetic[S]. 2020.

[4] ISO/IEC 9899:1999 Programming languages-C[S]. 1999.

摘自《自動化博覽》2023年11月刊

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 欧美亚洲国产日韩一区二区三区 | 亚洲 欧美 精品 中文第三 | dy888午夜国产午夜精品 | 亚洲精品手机在线观看 | 免费观看久久 | 免费一级片网站 | 亚洲免费在线视频观看 | 色www永久免费网站国产 | 自拍成人| 久久久久久青草大香综合精品 | 玖玖精品 | 欧美成人性色生活片免费在线观看 | 91久久线看在观草草青青 | 国产成人免费片在线视频观看 | 精品国产一区二区三区四区vr | 久久久久久91| japanese乱子另类 | 国产激情一区二区三区在线观看 | 一级成人毛片 | 久久国产影院 | 亚洲久草 | 97操碰| 日本女人www | 免费一看一级毛片全播放 | 青娱乐色| 成人毛片在线观看 | 亚洲男人的天堂在线观看 | 欧美一级高清片 | 日韩免费在线视频 | 日本在线毛片视频免费看 | 精品成人在线视频 | 亚洲精品国产第一区第二区国 | 亚洲自拍偷拍网 | 视频在线色 | 精品视频在线免费看 | 亚洲性网站 | 国产精品一区亚洲一区天堂 | 国产一级大片在线观看 | 黄黄的网站在线观看 | 亚洲国产精品成人午夜在线观看 | 亚洲男女视频 |