久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

ABB
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2025工業(yè)安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

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

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

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

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

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

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

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

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

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

image.png

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

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

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

image.png

2 測試設(shè)計

2.1 計算誤差來源分析

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

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

(1)輸入值表示誤差;

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

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

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

2.2 驗證目標

基于NuEgretOS數(shù)學庫的設(shè)計特點和應(yīng)用要求,NuEgretOS數(shù)學庫的驗證目標包括:

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

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

2.3 測試方案

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

image.png

圖2 對比測試方案

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

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

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

2.4 測試用例生成

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

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

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

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

2.4.3 插入與各函數(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 插入與浮點數(shù)定義相關(guān)的特殊值(無論數(shù)學函數(shù)在這些值上是否有定義),包括正負零、正負無窮大、qNaN(靜默非數(shù))/sNaN(信號非數(shù))典型值、規(guī)格化數(shù)和非規(guī)格化數(shù)的最大值和最小值。

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

3 測試工程的編譯和運行

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

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

4 運行結(jié)果比較

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

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

(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標準的要求。

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

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

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

(1)問題1:exp、sinh、sqrt、log、log10這5個函數(shù)輸入為非規(guī)格化浮點數(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)的軟件代碼進行分析和調(diào)試,兩個問題的原因和處理方式如下:

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

(2)問題2,由計算參數(shù)表示誤差而引起的中間計算值誤差隨三角函數(shù)2π周期數(shù)擴大。NuEgretOS數(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ù)學庫中的三角函數(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)使用更高精度的浮點數(shù)(如binary128或兩個binary64)表示2π的值并參與計算。

6 總結(jié)

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

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

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

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

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

作者簡介:

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

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

參考文獻:

[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月刊

熱點新聞

推薦產(chǎn)品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 91短视频在线观看免费 | 日本一级在线 | 国内三级视频 | 免费观看黄色一级视频 | 亚洲精品综合网在线8050影院 | 麻豆自拍 | 黄网站在线播放视频免费观看 | 国产三级不卡 | 国产对白91色拍高清精品 | 亚洲欧美日韩久久一区 | 免费在线一区二区三区 | 性感美女香蕉视频 | 婷婷色综合久久 | 国产精品毛片在线更新 | 91免费在线播放 | 久久久免费观看视频 | 精品国产一区二区三区在线观看 | 狠狠色噜噜综合社区 | 欧美一级黄色毛片 | 亚洲欧美一区二区三区不卡 | 九九热精品视频在线播放 | 国产美女白丝袜精品_a不卡 | 国产成年女一区二区三区 | 久久一区二区三区99 | xxx日本免费| 欧美一级大黄 | 精品国产免费久久久久久 | 性色a| 欧美色欧美亚洲另类二区精品 | 日韩乱视频 | 国产在线精品一区二区三区 | 久久精品国产免费一区 | 日本美女黄色一级片 | 亚洲欧美综合一区二区三区四区 | 国产情侣酒店自拍 | 久久99欧美 | 91精品国产综合久久青草 | 毛片在线免费播放 | 日韩欧美特级毛片 | 日韩在线观看高清 | 国模私拍福利视频在线透漏 |