• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    體系結(jié)構(gòu)模擬器在處理器設(shè)計過程中的作用

    2019-12-18 07:23:28張乾龍楊思博趙博彥張立新
    計算機研究與發(fā)展 2019年12期
    關(guān)鍵詞:指令設(shè)計

    張乾龍 侯 銳 楊思博 趙博彥 張立新

    1(中國科學(xué)院計算技術(shù)研究所 北京 100190)2(中國科學(xué)院大學(xué) 北京 100049)3(中國科學(xué)院信息工程研究所 北京 100093)4(北京大學(xué)軟件與微電子學(xué)院 北京 100871)(zhangqianlong@ict.ac.cn)

    模擬器是體系結(jié)構(gòu)量化分析的重要手段,對架構(gòu)設(shè)計、芯片開發(fā)有重要的指導(dǎo)作用.基于模擬器輔助進行集成電路設(shè)計可以追溯到1980年代[1],自此模擬器便一直是處理器設(shè)計過程中不可或缺的工具.在芯片開發(fā)過程中,體系結(jié)構(gòu)模擬器可以縮短處理器的設(shè)計時間,降低開發(fā)成本,其具體作用如圖1所示:

    由圖1可知:

    1)在芯片開發(fā)早期,基于模擬器可以進行微結(jié)構(gòu)探索和粗粒度微結(jié)構(gòu)定義,此時模擬器的開發(fā)抽象層次較高.

    2 )隨著處理器設(shè)計的不斷推進和模擬器的不斷完善,基于模擬器可以持續(xù)對芯片微結(jié)構(gòu)進行評估、修改和取舍.

    3)當模擬器趨于成熟,可以對微結(jié)構(gòu)、多核互聯(lián)系統(tǒng)、一致性協(xié)議等進行詳細性能分析,基于分析結(jié)果對微結(jié)構(gòu)進行微調(diào).

    4 )在對處理器邏輯設(shè)計進行驗證的階段,模擬器可以作為參考模型輔助進行驗證,可以快速定位邏輯設(shè)計錯誤.

    5)在未流片之前基于模擬器就可以開展系統(tǒng)軟件開發(fā)和適配工作,這樣可以在芯片流片結(jié)束后以最快速度啟動系統(tǒng)軟件.

    6)流片結(jié)束后,基于模擬器可以輔助進行芯片硅后驗證環(huán)境的搭建以及測試用例編寫工作.為了保證模擬器可以順利輔助進行處理器設(shè)計,在整個芯片開發(fā)過程中,需要持續(xù)對模擬器進行校準,通過持續(xù)對比模擬器和寄存器傳輸層(register-transfer level,RTL)之間的差別,可以互相校準并發(fā)現(xiàn)模擬器或者RTL的設(shè)計錯誤.

    1 開源模擬器與處理器設(shè)計的關(guān)系

    處理器設(shè)計的很多創(chuàng)新思想來源于體系結(jié)構(gòu)學(xué)術(shù)研究,而學(xué)術(shù)研究使用的模擬器大多是開源模擬器,因此開源模擬器對于處理器設(shè)計有重大的意義.開源模擬器主要用于對處理器進行抽象建模并驗證創(chuàng)新思想,因此開源模擬器對于學(xué)術(shù)研究有2種很大的價值:1)不同的開源模擬器具有不同特點,因此研究人員可以根據(jù)所研究的內(nèi)容選擇合適的開源模擬器平臺進行實驗,這給學(xué)術(shù)研究提供了很高的靈活性,有助于快速實現(xiàn)原型系統(tǒng);2)開源模擬器的社區(qū)一般比較活躍,在原型系統(tǒng)實現(xiàn)過程中,如果遇到問題可以很快找到解決方案,從而快速構(gòu)建實驗用的原型系統(tǒng).

    但是從輔助進行處理器設(shè)計的角度看,開源模擬器有一定的局限性.如果處理器廠商基于開源的模擬器輔助進行處理器設(shè)計,需要首先解決2個問題:

    1)各處理器廠商的微結(jié)構(gòu)一般與開源模擬器的微結(jié)構(gòu)差別很大,因此修改模擬器的代價較大.例如gem5模擬器中亂序執(zhí)行流水線的設(shè)計主要參考的是Alpha 21264[2],基于此進行微結(jié)構(gòu)修改的工程量比較大.此外,由于模擬器開發(fā)是一項較大的軟件工程,而軟件工程的框架一旦確定,修改起來也會比較棘手.

    2)開源模擬器一般不會與具體某款處理器進行校準工作,因此一般無法直接基于某款開源模擬器進行處理器驗證.文獻[3]指出:gem5等開源模擬器有很多未知錯誤,例如流水線中不合理的寫回機制、生成微指令過程錯誤等.另外由于gem5對于訪存子系統(tǒng)模擬精度不夠,大小為512×512的矩陣運算在gem5模擬器上運算誤差可以達到23.38%,并隨著訪存通信量越大誤差越大[4].此外文獻[5]通過對比真實的ARM平臺,指出gem5全系統(tǒng)模擬誤差也非常可觀.因此基于該模擬器二次開發(fā)用于輔助處理器設(shè)計的模擬器需要首先修復(fù)上述開源模擬器誤差和錯誤.

    但是,基于開源模擬器二次開發(fā)用于輔助進行處理器設(shè)計的模擬器也有好處.開源模擬器中提供的工具可以直接使用,降低工具及模擬器相關(guān)庫開發(fā)成本,例如SimpleScalar工具集提供了功耗模擬器WATTCH[6],用于選擇模擬樣本的SimPoint[7]等.

    2 模擬器輔助處理器設(shè)計的方法學(xué)

    模擬器是體系結(jié)構(gòu)量化分析的重要手段,從輔助進行處理器設(shè)計的角度看,計算機體系結(jié)構(gòu)模擬器可以分為3類,如圖2所示.

    Fig.2 Classification of simulators used in CPU design圖2 輔助處理器設(shè)計的模擬器分類

    由圖2可知:1)微結(jié)構(gòu)探索和性能優(yōu)化,為了精準模擬處理器微結(jié)構(gòu)并提高模擬器運行速度,同時為了方便開發(fā)和維護,一般會繼續(xù)細分為單核性能模擬器和多核互聯(lián)性能模擬器;2)輔助進行系統(tǒng)軟件開發(fā);3)輔助進行處理器驗證.現(xiàn)代處理器設(shè)計廠商普遍自研適配于自家處理器架構(gòu)的模擬器.本節(jié)根據(jù)處理器廠商公開發(fā)表的通過模擬器輔助進行處理器設(shè)計的經(jīng)驗進行分析并總結(jié)規(guī)律.

    2.1 龍 芯

    龍芯中科技術(shù)有限公司在使用模擬器輔助處理器設(shè)計的文獻中提到[8-10],龍芯2號處理器研發(fā)過程中,最早開發(fā)的模擬器ICT-Godson由于對硬件模擬過于詳細,導(dǎo)致其速度和靈活性不足[10].因此,龍芯基于Simple-Scalar開源模擬器[11]框架設(shè)計實現(xiàn)了Sim-Godson處理器核模擬器[8].相比于ICT-Godson模擬器,Sim-Godson具有運行速度快、靈活性高、支持大程序評估等優(yōu)點[10].Sim-Godson可以支持功能模擬和時序模擬,由二進制可執(zhí)行程序作為輸入,主要用于處理器核的微結(jié)構(gòu)性能探索.Sim-Godson雖然借用了SimpleScalar的基礎(chǔ)模塊,但龍芯中科技術(shù)有限公司對其進行了大量修改定制工作,使其達到高精準模擬龍芯2號處理器核微結(jié)構(gòu)的目的.基于SimpleScalar中自帶的指令集仿真器和I/O仿真器進行執(zhí)行加速,其速度可以達到0.5MIPS(million instructions per second).經(jīng)過詳細校準,Sim-Godson模擬器與ICT-Godson的誤差平均不到5%[8].類似地,基于Simple-Scalar進行二次開發(fā)的模擬器還有Sim-alpha[12].

    基于Sim-Godson模擬器可以對單核微結(jié)構(gòu)進行性能評估和分析,但是由于SimpleScalar的結(jié)構(gòu)本身不支持對多核互聯(lián)系統(tǒng)進行模擬,因此龍芯中科技術(shù)有限公司基于SimOS[13]全系統(tǒng)開源模擬器開發(fā)了SimOS-Goodson模擬器[9].借用SimOS模擬器的全系統(tǒng)組件,龍芯中科技術(shù)有限公司把處理器核模擬器嵌入其中,并解決了因為功能模擬和時序模擬并行執(zhí)行導(dǎo)致的存儲一致性問題,同時添加了全系統(tǒng)相關(guān)功能和調(diào)試功能.定制修改后的SimOS-Goodson配置靈活、執(zhí)行迅速、模擬準確,同時支持用戶態(tài)和全系統(tǒng)模擬,模擬速度可達0.3MIPS,模擬誤差在15%以內(nèi).類似地,DEC和IBM也曾基于SimOS開發(fā)全系統(tǒng)模擬器SimOS-Alpha[14]和SimOS-PPC[15].

    2.2 IBM

    IBM于2012年某研討會中做了題為“IBM使用模擬器的經(jīng)驗”的報告[16],對于IBM如何在處理器設(shè)計過程中使用模擬器進行了介紹.

    在處理器早期設(shè)計研究期間,IBM使用Mambo[17]模擬器的時鐘精確模式進行微結(jié)構(gòu)探索和粗粒度微結(jié)構(gòu)定義.Mambo模擬器對微結(jié)構(gòu)主要模塊和結(jié)構(gòu)進行了模擬,該階段Mambo由蹤跡(trace)驅(qū)動,主要運行和研究用戶態(tài)應(yīng)用,對處理器的產(chǎn)品競爭力進行橫向比較研究[16].

    在微結(jié)構(gòu)設(shè)計實現(xiàn)期間,IBM使用基于公司內(nèi)部專用“T”語言編寫的時鐘精準模擬器M1進行詳細模擬處理器微結(jié)構(gòu)[16],如圖3所示.M1是以Mambo模擬器或者硬件上抓取的蹤跡作為輸入,并且可以收集非常詳細的微結(jié)構(gòu)數(shù)據(jù)進行性能評估.為了加速M1模擬器的執(zhí)行速度,需要對所抓取的蹤跡進行取樣,同時為了方便調(diào)試,M1支持微結(jié)構(gòu)性能數(shù)據(jù)可視化功能.

    Fig.3 IBM CPU simulator framework圖3 IBM模擬器框架

    在處理器驗證階段,IBM使用Mambo[17]作為處理器驗證參考模型輔助進行驗證,此階段Mambo可以為處理器功能正確性提供參考結(jié)果.Mambo模擬了所有處理器的功能特征,把某些性能相關(guān)的微結(jié)構(gòu)維護操作(例如cache維護類指令)翻譯成空(nop)操作,對于計算類指令產(chǎn)生準確的結(jié)果,并精準追蹤處理器寄存器的狀態(tài)變化,同時支持指令撤銷操作,為處理器驗證提供參考.IBM基于Mambo模擬器曾發(fā)現(xiàn)PowerPC CPU的一個控制寄存器存在競爭條件,使得該設(shè)計錯誤在流片之前就被發(fā)現(xiàn)并修改[17].在該階段,IBM還使用自研的由多個FPGA(field programmable gate array)組成的VHDL(very - high - speed integrated circuit hardware description language)仿真加速器Twinstar[18]進行處理器綜合驗證.Twinstar是時鐘精準的仿真加速器,其推進方式是事件驅(qū)動模式,可以對整個處理器芯片進行仿真,以二進制程序作為輸入,還支持詳細的指令蹤跡和處理器狀態(tài)的實時追蹤.該平臺運行速度可以達到4 MHz并可以運行未經(jīng)修改的系統(tǒng)軟件.類似Twinstar的驗證平臺還有帕拉丁[19]等.

    在系統(tǒng)軟件開發(fā)方面,IBM基于Mambo(加速模式)[17],Simics[20],BGLsim[21]等多種平臺,在流片之前就開始進行固件、操作系統(tǒng)、虛擬機管理器等軟件的早期開發(fā).IBM基于Mambo模擬器曾開發(fā)了K42操作系統(tǒng),在芯片可用之后1周內(nèi)就啟動了操作系統(tǒng)[17].IBM基于BGLsim-multi[21]平臺和基于OMNeT++[22]開發(fā)的MARS(message passing interface application replay simulation)模擬平臺還可以對機群網(wǎng)絡(luò)相關(guān)的功能進行模擬,模擬器由可執(zhí)行程序或者蹤跡驅(qū)動,其中MARS平臺還可以對MPI(message passing interface)類應(yīng)用進行調(diào)優(yōu).

    2.3 AMD

    AMD于2007年ISPASS討論會上做了題目為“AMD性能建模和分析:游歷指南”的主旨發(fā)言,介紹了AMD如何使用模擬器輔助進行處理器設(shè)計和驗證[23].此外,在2018年AMD做過題為“現(xiàn)代服務(wù)器CPU性能分析”的報告[24],其中也提到了模擬器在AMD服務(wù)器處理器設(shè)計中的輔助作用.

    在處理器研發(fā)早期,AMD通過模擬器對體系結(jié)構(gòu)進行粗粒度定義[23],還使用功能模擬器SimNow[25]輔助進行處理器設(shè)計,例如產(chǎn)生程序執(zhí)行蹤跡、為CPU性能模擬器提供對比結(jié)果等.

    在微結(jié)構(gòu)設(shè)計實現(xiàn)期間,AMD開發(fā)了CPU核模擬器和多核互聯(lián)模擬器(由于AMD沒有公開其命名,本文分別稱之為AMD-Core,AMD-NB模擬器)用于對處理器性能進行評估.AMD-Core模擬器框架如圖4所示.

    首先從真實硬件或者SimNow模擬器上直接抓取程序執(zhí)行蹤跡,然后對蹤跡進行分析獲取初步微結(jié)構(gòu)信息,例如cache缺失率等.同時把蹤跡作為輸入文件灌入時鐘精準的AMD-Core模擬器進行詳細分析,此時從真實硬件上獲取的程序執(zhí)行結(jié)果可以作為AMD-Core模擬器的參考,分析后可以產(chǎn)生詳細微結(jié)構(gòu)數(shù)據(jù).

    AMD-NB模擬器可以模擬多核互聯(lián)系統(tǒng),如圖5所示,由從真實硬件抓取的事務(wù)(transaction)蹤跡驅(qū)動,因此可稱其為事務(wù)精準模擬器.為加快執(zhí)行速度,對互聯(lián)模擬器中CPU進行抽象處理.基于該模擬器可以對于多核設(shè)計進行取舍,例如可以用于決定互聯(lián)系統(tǒng)、內(nèi)存系統(tǒng)的設(shè)計.此外,AMD還開發(fā)了以指令執(zhí)行蹤跡作為輸入的TagSim cache模擬器,可以對cache微結(jié)構(gòu)(如替換算法、相連度等)進行分析.為提高準確性,上述模擬器都需要同RTL進行校準.

    Fig.4 AMD CPU core simulator framework圖4 AMD處理器核模擬器框架

    Fig.5 AMD multi-core interconnect simulator framework圖5 AMD多核互聯(lián)模擬器框架

    AMD的互聯(lián)系統(tǒng)模擬器中還包含高級系統(tǒng)隊列模型,該模型可以對資源利用率、cache一致性協(xié)議等進行建模,并可以基于預(yù)定義的參數(shù)定量產(chǎn)生流量和cache缺失等信息,例如預(yù)先設(shè)定L3 cache缺失率10%,該模型可以基于該參數(shù)產(chǎn)生10%的L3缺失率,為L3下游子系統(tǒng)產(chǎn)生輸入請求.其輸入是從TagSim cache模擬器中獲取的可執(zhí)行負載的參數(shù)、cache參數(shù)等.該模型經(jīng)過與真實硬件系統(tǒng)進行校準后,可以用于預(yù)測包括吞吐率和帶寬利用率在內(nèi)的AMD服務(wù)器性能路線圖(roadmap).

    在處理器驗證期間,AMD使用SimNow功能模擬器為AMD-Core和AMD-NB提供執(zhí)行參考結(jié)果,此時的SimNow角色和IBM的Mambo相同.此階段性能模擬器和RTL進行互相校準,可以通過模擬器發(fā)現(xiàn)并修改RTL的邏輯錯誤,反之也可以通過RTL對AMD性能模擬器進行校準.AMD-Core和AMD-NB模擬器的開發(fā)目標是跟RTL一樣時鐘精準,并且保證執(zhí)行正確性以方便進行不同層次的性能分析.AMD模擬器相較于RTL,在未校準之前每1 000條指令的絕對誤差是22%,經(jīng)過校準后可以達到2%~3%.

    在系統(tǒng)軟件開發(fā)方面,AMD基于SimNow平臺可以在流片前就開始BIOS、硬件驅(qū)動代碼、操作系統(tǒng)、軟件編譯器的開發(fā).

    2.4 Qualcomm

    美國高通(Qualcomm)公司基于ARMv8架構(gòu)研發(fā)的多核服務(wù)器芯片Centriq 2400已經(jīng)發(fā)布[26-27],文獻[26]對互聯(lián)系統(tǒng)硬件架構(gòu)進行了描述.此外文獻[28-31]作者均來自美國高通公司,該文獻中實驗評估部分對高通使用的多核互聯(lián)模擬器框架進行了描述[28],從文獻[26,28-31]可以得到高通公司所使用的互聯(lián)系統(tǒng)模擬器架構(gòu)如圖6所示.高通的互聯(lián)系統(tǒng)模擬器前半部是運行在開源QEMU[32]虛擬機上的操作系統(tǒng)及真實應(yīng)用程序,在運行時動態(tài)產(chǎn)生指令執(zhí)行蹤跡.模擬器后半部運行真正的互聯(lián)系統(tǒng)模擬器,模擬多級cache、內(nèi)存控制器、互聯(lián)總線等模塊.為了加速互聯(lián)模擬器的仿真速度,該后端模擬器的推進方式不是時鐘精準而是時鐘近似的.模擬器在運行時,前端QEMU運行速度比后端模擬器運行稍快,動態(tài)產(chǎn)生程序執(zhí)行蹤跡暫存到緩沖區(qū)中,后端模擬器讀取該緩沖區(qū)數(shù)據(jù)進行模擬.緩沖區(qū)中會暫存一部分訪存請求,在不違背訪存之間依賴關(guān)系情況下,可以亂序發(fā)射以此對CPU亂序執(zhí)行進行模擬.該模擬器是已跟RTL進行校準的企業(yè)級模擬器,支持ARMv7/v8指令集,并由高通CPU研究部門和開發(fā)部門共用[31].

    Fig.6 Qualcomm multi-core interconnect simulator framework圖6 高通多核互聯(lián)模擬器框架

    上述模擬方法中,QEMU作為生產(chǎn)者動態(tài)產(chǎn)生指令蹤跡,互聯(lián)模擬器作為消費者消耗指令蹤跡進行互聯(lián)系統(tǒng)模擬,這種方法的優(yōu)點在于可以不需要對蹤跡文件進行存儲,從而節(jié)省大量存儲空間,并且還可以一定程度上模擬CPU亂序執(zhí)行.但其缺點也比較明顯,因為該模擬器由蹤跡驅(qū)動,會導(dǎo)致其無法精確模擬處理器中如分支預(yù)測、推測執(zhí)行等細節(jié).

    2.5 處理器廠商使用模擬器經(jīng)驗小結(jié)

    第2節(jié)分別介紹了各處理器廠商如何使用模擬器輔助進行處理器開發(fā),具體地,模擬器信息如表1所示,對于未公開的數(shù)據(jù)用“-”標示.

    上述不同的模擬器有不同的作用并且運行速度不同,文獻[23]對模擬器的運行速度及其作用進行了總結(jié),如圖7所示.

    1)1~10 Hz.RTL仿真運行速度.對性能模擬器和RTL進行互相校準時需要運行RTL仿真,通過校準可以找到RTL中的邏輯錯誤和性能模擬器的模擬錯誤.

    2)1~10 kHz.時鐘精準的單核性能模擬器的運行速度.Intel[33]和AMD[23]的時鐘精確模擬器運行速度都是這個級別,基于性能模擬器可以進行處理器微結(jié)構(gòu)分析和探索.

    3)10~100 KIPS.蹤跡分析模擬器和處理器抽象模型的運行速度.此時基于模擬器可以初步對蹤跡進行分析,獲取微結(jié)構(gòu)信息,還可以對處理器進行抽象,基于抽象模型對未來性能進行估算.

    4)100~500 KIPS.這是大多經(jīng)過優(yōu)化加速(例如通過翻譯執(zhí)行)后時鐘精確模擬器的執(zhí)行速度,例如SimpleScalar的sim-outorder模式和PTLSim速度分別是740KIPS和270KIPS[34].

    5)1~100 MIPS.指令集功能模擬器的運行速度.基于功能模擬器可以對指令集進行模擬和研究,作為對比模型進行處理器驗證等工作.

    文獻[16]中曾提到,模擬器的開發(fā)是一個大型軟件工程,開發(fā)周期長,需要持續(xù)與RTL進行校準,本節(jié)結(jié)合表1及文獻[8-10,16,23-24]總結(jié)了處理器廠商使用模擬器輔助進行處理器開發(fā)的經(jīng)驗有4方面:

    Table1 Simulator Summary表1 模擬器總結(jié)

    Note:“-” means unpublished information.

    Fig.7 Simulator speed and role圖7 模擬器速度及作用

    1)處理器廠商一般有多個功能不同的模擬器用于輔助進行處理器開發(fā).其中性能模擬器一般要同時支持蹤跡和執(zhí)行驅(qū)動2種模式,以方便在這2種模式之間切換,以此加快模擬速度.性能模擬器一般要求時鐘精準,且與RTL校準后誤差盡量小[23],其運行速度一般要比RTL仿真速度快1 000倍以上才有實際使用價值[23].性能模擬器還要支持多種調(diào)試手段,例如GDB、快速前進(fast forward)、檢查點等,還要支持數(shù)據(jù)可視化功能,方便與RTL進行校準.為了加快模擬器仿真速度,要善于使用類似于SimPoint[7]的取樣方法對負載進行處理.對于多核互聯(lián)模擬器考慮到仿真速度,可以使用時鐘近似模式和抽象的處理器核,但要可以精確反映性能變化趨勢.

    2)一般都有硬件支持從硬件直接抓取真實程序執(zhí)行蹤跡或者事務(wù)蹤跡[23-24],例如AMD可以直接關(guān)閉L2抓取bus上的信息,IBM也可以獲取真實處理器上的執(zhí)行蹤跡.此外模擬器要可以和多種常用軟件工具協(xié)同工作,以方便使用,例如蹤跡獲取工具、代碼自動注釋工具、文檔產(chǎn)生工具等.

    3)模擬器開發(fā)投入很大,要持續(xù)與RTL進行校準[23].模擬器的開發(fā)首先是一項軟件工程,因此好的軟件架構(gòu)模擬器成功的首要條件,相比而言計算機體系結(jié)構(gòu)的知識也非常重要但是次要的[16].AMD模擬器的微結(jié)構(gòu)代碼約有10萬行,其他結(jié)構(gòu)包含共享庫約有40萬行代碼[16],因此模塊化的設(shè)計、良好的代碼接口、使用源代碼管理工具等必不可少.在資源不足的情況下,基于開源模擬器開發(fā)模擬器也是不錯的選擇.

    4)模擬器校準時,需要通過微程序進行充分驗證[8],此時可以跟驗證團隊緊密合作,共享驗證微程序.性能模擬器編寫語言一般選擇兼顧開發(fā)和執(zhí)行效率的C++,其次是C語言.為了加速模擬器仿真速度,模擬部件盡量并行執(zhí)行,且要盡可能支持可移植性.

    3 性能模擬器校準

    用于進行微結(jié)構(gòu)探索的性能模擬器的準確度會直接影響微結(jié)構(gòu)設(shè)計和改進的決策,因此需要對其進行校準.校準方法可以分為2種:1)在進行處理器設(shè)計時,與RTL進行校準;2)開源模擬器為了提高研究可信度,在目標硬件微結(jié)構(gòu)數(shù)據(jù)未知的情況下,與已有的硬件平臺進行校準,本節(jié)對上述校準方法進行總結(jié).

    3.1 與RTL進行校準

    龍芯中科技術(shù)有限公司對Sim-Godson模擬器和ICT-Godson模擬器進行校準,后者與RTL幾乎一樣準確,其校準方法學(xué)與模擬器直接同RTL校準類似,具有一定參考價值,本節(jié)以此為例闡述模擬器與RTL的校準方法[8].

    如圖8所示,在處理器開發(fā)的邏輯設(shè)計階段開始模擬器設(shè)計和校準工作,在其他階段如果需要修改邏輯設(shè)計,則同時對模擬器進行修正.龍芯中科技術(shù)有限公司使用2種類型的負載[8]對模擬器進行校準,即微程序[35]和完整應(yīng)用程序(主要是SPEC CPU2000).

    Fig.8 Simulator calibration process圖8 模擬器校準流程

    在校準初期,針對特定處理器模塊編寫特定微程序進行各模塊校準[8].例如通過if-else循環(huán)測試分支預(yù)測器,以時鐘周期為單位對比模擬器和RTL運行結(jié)果,發(fā)現(xiàn)不同后定位原因并修正模擬器.重復(fù)上述步驟直到微程序驗證結(jié)果的誤差可控后,繼續(xù)使用完整負載進行校準,此時如果結(jié)果顯示誤差原因指向某個模塊,則增加對該模塊進行校準的微程序并重復(fù)上述校準步驟.若一時無法定位誤差原因,則重復(fù)使用微程序?qū)φ`差進行分析.

    龍芯中科技術(shù)有限公司在模擬器校準過程中還提出:1)分析程序運行結(jié)果并尋找誤差原因是模擬器校準最重要的工作;2)很多由SPEC CPU2000發(fā)現(xiàn)的模擬器誤差,都可以由一些簡單微程序發(fā)現(xiàn),而分析SPEC CPU2000的誤差要比分析微基準程序困難得多;3)僅僅比較程序運行時間或IPC(instr-uctions per cycle)等宏觀參數(shù)得出的結(jié)論有可能不正確,要綜合考慮分支預(yù)測正確率等相關(guān)部件.例如在Sim-Godson校準過程中,浮點部件還沒有校準之前,SPEC CPU2000中多個程序IPC誤差已經(jīng)小于10%,只有通過查看浮點部件延遲和發(fā)射策略等參數(shù),才會發(fā)現(xiàn)浮點部件誤差較大.

    3.2 與真實硬件進行校準

    在真實硬件微結(jié)構(gòu)數(shù)據(jù)未知的情況下進行模擬器校準,需要首先通過程序測試獲取處理器微結(jié)構(gòu)詳細信息.文獻[36]認為模擬異構(gòu)系統(tǒng)的模擬器如果不準確,會直接導(dǎo)致異構(gòu)系統(tǒng)性能和功耗的嚴重誤判,因此對模擬器MARSSx86[37]與Intel Core i7-920 CPU進行了校準,其校準分為2步:1)通過簡單的微程序(general matrix multiplication,GEMM)[38]校準處理器核流水線;2)基于校準后的流水線繼續(xù)進行訪存系統(tǒng)校準.

    本文以校準計算類指令的執(zhí)行周期為例介紹其校準方法.模擬器與真實處理器校準過程中,不同類型指令執(zhí)行延遲是最重要的校準參數(shù),但是由于Intel未公布該微結(jié)構(gòu)參數(shù),因此文獻[36]通過設(shè)計微程序?qū)χ噶顖?zhí)行延遲進行測算.具體地:

    1)查詢Intel編程手冊獲取i7-920處理器每個時鐘周期可以執(zhí)行4個雙精度浮點運算(double precision FLOPs/cycle,F(xiàn)PC),每個雙精度浮點運算的寄存器寬度是64 b.指令mulpd和addpd使用的寄存器是128 b寬,上述每條指令每個周期需要2個雙精度運算.

    2)設(shè)計微程序,使得每個mulpd和addpd的指令組合恰好在i7-920處理器上一個周期執(zhí)行完成.

    3)如圖9所示,定義寄存器復(fù)用距離(register reuse distance,RRD),即相同指令的目的寄存器號相同情況下2條指令之間的延遲周期數(shù),例如圖9中的指令addpd復(fù)用距離是3周期.

    Fig.9 Microbenchmark for testing instruction latencies圖9 測試指令延遲的微程序

    4)如果addpd指令和mulpd指令的執(zhí)行延遲分別小于3和6周期,則該微程序的執(zhí)行峰值速度應(yīng)該能達到4FPC,反之指令addpd和mulpd必須要等待指令之間寄存器相關(guān)導(dǎo)致的依賴解決后才能繼續(xù)執(zhí)行,因此會導(dǎo)致浮點計算部件無法達到峰值性能.經(jīng)過測試,圖9中的微程序可以達到3.94 FPC,可以斷定addpd和指令mulpd的指令執(zhí)行周期不大于3和6周期.

    5)通過反復(fù)調(diào)整addpd和mulpd的復(fù)用距離,可以得到指令addpd和mulpd執(zhí)行周期分別為3和5.通過上述程序獲取的數(shù)據(jù)調(diào)整模擬器中指令執(zhí)行延遲.

    類似地,對其他流水線微結(jié)構(gòu)信息例如發(fā)射寬度、緩存系統(tǒng)架構(gòu)等,都需要通過微程序測試獲取相關(guān)數(shù)據(jù)后進行校準[36],基于此再進行訪存子系統(tǒng)的校準,本文不再詳述.

    4 模擬器優(yōu)化方法

    隨著處理器核性能越來越高,核數(shù)越來越多,模擬器的規(guī)模也越來越大,模擬速度及模擬器可擴展性越來越成為模擬器發(fā)展的制約因素,因此模擬器需要進行優(yōu)化.本文把模擬器的優(yōu)化分為縱向優(yōu)化(scale up)和橫向優(yōu)化(scale out).縱向優(yōu)化是指通過技術(shù)手段,對串行執(zhí)行或者小規(guī)模模擬器進行加速;橫向優(yōu)化是指對于模擬多核或者多處理器的模擬器,在付出較小代價的同時,獲取模擬器多核擴展性的大幅提升.本節(jié)對新興的優(yōu)化方法進行著重介紹,對常規(guī)的優(yōu)化方法進行簡單總結(jié).

    4.1 模擬器縱向優(yōu)化

    4.1.1 基于FPGA加速的模擬器

    FPGA加速模擬技術(shù)[34](FPGA-accelerated simulation technologies,FAST)可以通過FPGA對時鐘精準模擬器進行加速.基于該技術(shù)實現(xiàn)的模擬器可以分為2部分,模擬器前端運行一個功能模擬器,可以運行完整的全系統(tǒng).模擬器后端通過FPGA硬件實現(xiàn)處理器微結(jié)構(gòu),因此可以對分支預(yù)測、流水線、緩存等詳細微結(jié)構(gòu)進行時鐘精準模擬.模擬器運行時,前端功能模擬部分把指令執(zhí)行結(jié)果等信息通過緩沖區(qū)輸入給運行在FPGA上的模擬器后端,后端基于緩沖區(qū)中的信息校正微結(jié)構(gòu)推測執(zhí)行(例如分支預(yù)測等)過程中的執(zhí)行結(jié)果.FPGA加速模擬技術(shù)同時具有軟件的靈活性,并兼顧了運行速度,其運行速度一般要比基于軟件的時鐘精準模擬器快1個數(shù)量級[34].類似模擬器還有RAMP[39],STIMUL[40]等.

    4.1.2 二進制翻譯

    模擬器二進制翻譯技術(shù)是把模擬器所模擬的目標架構(gòu)的指令,翻譯成模擬器所運行的宿主機架構(gòu)的指令然后進行執(zhí)行.具體地,當模擬器執(zhí)行目標指令時,模擬器把目標指令替換為宿主機上事先定義好的函數(shù)或者指令集,使得所模擬的目標架構(gòu)指令執(zhí)行速度接近于宿主機執(zhí)行速度.

    二進制翻譯雖然加速了模擬器執(zhí)行速度,但其缺點是目標架構(gòu)的指令被宿主機指令替換,因此執(zhí)行蹤跡無法獲取,同時導(dǎo)致模擬器與宿主機架構(gòu)綁定,可移植性變差.基于二進制翻譯進行加速的模擬器有SimOS[13],QEMU[32]等.

    4.1.3 直接執(zhí)行(基于KVM虛擬化和取樣技術(shù))

    Fig.10 Comparison of different simulation sampling strategies圖10 關(guān)于多種模擬取樣策略之間的對比

    直接執(zhí)行是指模擬器的目標架構(gòu)和模擬器的宿主架構(gòu)相同的情況下,模擬器在運行時直接在宿主機上執(zhí)行目標架構(gòu)指令的加速方法,直接執(zhí)行可以認為是二進制翻譯中的特例.文獻[41]把直接執(zhí)行和取樣方法結(jié)合起來對模擬器進行加速,基于KVM虛擬化在多個程序取樣之間進行快速推進,其模擬速度可以達到宿主機速度的63%,約2.0GIPS(giga instructions per second).通過IPC參數(shù)對模擬器誤差進行評估,平均誤差約2.2%.基于KVM的模擬器加速方法是基于SMARTS[42]取樣方法基礎(chǔ)上發(fā)展而來,如圖10(a)所示.SMARTS取樣方法為了平衡模擬精度和模擬器仿真速度,把運行時程序分為3個模式:1)功能預(yù)熱模式.為了對需要長時間訓(xùn)練的微結(jié)構(gòu)狀態(tài)進行保存,模擬了緩存和分支預(yù)測器,除此之外該模式把每條指令當作靜態(tài)流水線原子指令進行模擬,并且沒有時序信息.2)詳細預(yù)熱模式.使用亂序執(zhí)行處理器對整個系統(tǒng)進行詳細模擬,并對CPU內(nèi)部的某些微結(jié)構(gòu)(例如讀寫緩存、重排序緩存等)進行預(yù)熱.3)詳細模擬模式.詳細模擬處理器所有微架構(gòu),并對需要的微結(jié)構(gòu)數(shù)據(jù)進行測量.上述方法需要功能預(yù)熱階段執(zhí)行大量程序指令,導(dǎo)致花費大量時間,為了對取樣進行加速,文獻[41]提出了FSA(full speed ahead)取樣方法.如圖10(b)所示,基于SMARTS取樣基礎(chǔ)上添加了一個新的模式:虛擬化快速推進模式.上述新增模式可以使用基于KVM的虛擬化技術(shù)把約95%指令直接運行在宿主機上,可以大大加快原來功能預(yù)熱模式的執(zhí)行速度,但為了保證對緩存和分支預(yù)測器的預(yù)熱,保留了SMARTS中功能預(yù)熱的方式.

    FSA模式雖然加快了功能預(yù)熱模式下指令執(zhí)行速度,但是還有大約75%~95%的時間用于詳細預(yù)熱和詳細模擬階段.為了對上述階段進行并行化加速,文獻[41]繼續(xù)提出了pFSA(parallel full speed ahead),如圖10(c)所示,為了使得每一個取樣點獨立并行執(zhí)行,需要復(fù)制取樣點之前模擬器狀態(tài).在完成一個取樣點詳細模擬之前就使得模擬器運行到下一個取樣點繼續(xù)并行執(zhí)行.具體地,模擬器完全以虛擬化快速推進模式運行在處理器核1上,其運行速度可以接近宿主機.當需要對模擬器進行取樣分析時,復(fù)制模擬器狀態(tài)到處理器核2上,開始以SMARTS方式進行取樣處理,以此類推.如果復(fù)制模擬器狀態(tài)的開銷足夠低,則模擬器可以接近宿主機的速度運行在宿主機器上.

    上述方法被集成到了gem5[2]模擬器中,類似的模擬器還有基于Xen半虛擬化環(huán)境的PTLsim[43],因此運行PTLsim模擬器的操作系統(tǒng)要進行定制化修改,導(dǎo)致其可移植性相對不如KVM好(KVM目前是Linux標準組件),并缺乏對一些重要的底層硬件組件(例如中斷時鐘、IO設(shè)備等)的模擬.文獻[41]的方法雖然可以使得模擬器運行速度接近宿主機,但其缺點是:1)目標指令集要和宿主機相同;2)需要KVM支持;3)對于特權(quán)指令仍需進行模擬.

    4.2 模擬器橫向優(yōu)化

    4.2.1 區(qū)間模擬

    區(qū)間模擬技術(shù)[44]是一種新型多核模擬器加速方法,通過提高模擬器的抽象層級并且對處理器核使用數(shù)學(xué)分析模型進行抽象,而省略了通過流水線對指令執(zhí)行時間進行詳細追蹤的步驟,因此可以一定程度上通過數(shù)學(xué)模型替換處理器核的時鐘精準模擬方式,大幅提高模擬速度并降低模擬器開發(fā)難度.其核心思想如圖11所示,指令流水線的正常執(zhí)行流會被分支預(yù)測錯誤和TLB(translation lookaside buffer)、cache缺失等事件打斷并分成不同的區(qū)間長度,上述缺失事件及頻率由模擬器決定,而區(qū)間的長度由數(shù)學(xué)分析模型計算.因此綜合使用模擬各個部件的模擬器并結(jié)合數(shù)學(xué)分析模型,就可以對在多核處理器上同時執(zhí)行的多線程程序性能進行評估,Sniper[45]和COTSon[46]就是以這種模式實現(xiàn)的模擬器.文獻[44]對Sniper模擬器使用SPEC CPU2000和多線程PARSEC進行測試,與M5[47]全系統(tǒng)時鐘精確模擬器進行精度和仿真速度的對比,運行SPEC CPU2006單線程的誤差是5.9%,運行PARSEC多線程測試的誤差是4.6%,但其速度要比時鐘精確方式快一個數(shù)量級.文獻[44]的區(qū)間模擬器分析模型的代碼量只有1 000行C代碼,而M5[47]中亂序執(zhí)行代碼量接近2.8萬行.開發(fā)區(qū)間模擬器目的不是替代時鐘精確模擬器,而是在犧牲小部分精確性的同時,大幅提高模擬器開發(fā)和仿真速度,因此可以用于快速探索多核處理器架構(gòu)的設(shè)計和對粗粒度微架構(gòu)和系統(tǒng)級架構(gòu)進行快速取舍,而時鐘精確模擬可以用于對某些微架構(gòu)進行詳細探索.

    Fig.11 Analysis performance on an interval basis determined by disruptive miss events圖11 基于缺失導(dǎo)致的區(qū)間進行性能分析

    4.2.2 SST模擬框架

    SST(structural simulation toolkit)[48-49]是為了對大規(guī)模高性能計算系統(tǒng)進行模擬而誕生,可以模擬多達512個處理器節(jié)點,其目標是成為設(shè)計和評估未來高性能計算系統(tǒng)的標準框架.基于SST模擬器可以把多個現(xiàn)有的模擬器按需集成起來,組成一個模塊化并行模擬系統(tǒng).SST已經(jīng)內(nèi)建多種處理器、內(nèi)存系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等模型,并提供簡易用戶接口,方便快速擴展新的模型.為了提高靈活度,SST提供一系列組件可以在精度和模擬時間之間權(quán)衡.SST的軟件架構(gòu)由模擬器核心部分和可動態(tài)插拔的組件組成,基于MPI和離散事件模擬技術(shù)構(gòu)建,如圖12所示,其中模擬器核心部分提供模擬服務(wù),包括模擬器配置和啟動、功耗面積評估、檢查點的支持、模擬器數(shù)據(jù)收集等.SST模擬核心還提供通用接口用于連接供應(yīng)商提供的組件或者開源的模擬器組件.目前基于SST開發(fā)的模擬器有MacSim[50],ExaSAT[51]等,自從發(fā)布以來SST被引用了208次.

    Fig.12 SST structure圖12 SST框架

    4.2.3 并行模擬加速

    為了對大規(guī)模系統(tǒng)進行模擬,需要可以并行運行的模擬環(huán)境,這催生了并行離散事件仿真(parallel discrete event simulation,PDES)技術(shù)[52-53].PDES可以把離散事件分解到多處理器上并行執(zhí)行,可以大幅提高模擬速度,因此被廣泛應(yīng)用到工程、計算機科學(xué)、經(jīng)濟、軍事[54]等領(lǐng)域.

    并行模擬器雖然能加快基于離散事件仿真的模擬器運行速度,但是需要維護各個處理單元之間的同步關(guān)系,隨著處理單元的規(guī)模越來越大,其同步開銷占整個模擬器運行時間比例也越來越大,因此其可擴展性在規(guī)模巨大時成為急需解決的問題.IBM使用的BGLSim[21]模擬器就是基于PDES技術(shù)構(gòu)建的.

    5 相關(guān)模擬器介紹

    隨著各種體系結(jié)構(gòu)和處理器設(shè)計方法學(xué)的發(fā)展,體系結(jié)構(gòu)模擬器也相應(yīng)地出現(xiàn)了一些新的形態(tài),本節(jié)對近期出現(xiàn)的新型模擬器進行總結(jié)介紹.

    5.1 異構(gòu)模擬器

    新型的專用加速器、GPU已成為計算機體系結(jié)構(gòu)研究和處理器設(shè)計的重點.相應(yīng)地,研究人員開發(fā)了多款開源的模擬器對新型計算機體系結(jié)構(gòu)進行模擬.為方便研究人員選擇合適的模擬器平臺和工具進行實驗,本文總結(jié)專用加速器和GPU模擬器及相關(guān)工具如表2所示,其中被引用次數(shù)高且持續(xù)維護的模擬器相對更適合進行異構(gòu)原型系統(tǒng)的構(gòu)建和異構(gòu)體系結(jié)構(gòu)的研究.

    Table 2 Comparison of Heterogeneous Simulators表2 異構(gòu)模擬器對比

    Note:√ means support operating system;× means don’t support operating system.

    5.2 硬件構(gòu)建語言Chisel

    加州大學(xué)伯克利分校設(shè)計的開放指令集RISC-V已成為處理器設(shè)計和研究領(lǐng)域的熱門,為了實現(xiàn)處理器的敏捷開發(fā),伯克利分校還開發(fā)了高度參數(shù)化的硬件構(gòu)建語言Chisel[55].使用Chisel語言設(shè)計處理器,可以直接使用面向?qū)ο蟮脑O(shè)計方法學(xué)描述處理器功能,這與傳統(tǒng)意義上開發(fā)周期精確模擬器的方式很像,但特別之處在于:通過編寫一次硬件代碼可以生成包含C++時鐘精準模擬器、FPGA Verilog和ASIC Verilog這3個目標[55].具體地在生成模擬器方面,基于最新Chisel3編寫的硬件代碼可以產(chǎn)生Firrtl中間描述語言(inter-mediate representation,IR),從Firrtl可以直接翻譯或者轉(zhuǎn)換成Verilog,進而通過Verilator工具可以生成時鐘精準的C++模擬器和測試框架.但是,通過這種方式生成的模擬器代碼可讀性和可修改性都比較差.

    Chisel語言使邏輯設(shè)計和模擬器開發(fā)得到了統(tǒng)一,使得處理器設(shè)計效率提高一個數(shù)量級[56],因此可以大幅加速硬件設(shè)計,這是新的硬件敏捷開發(fā)方法學(xué),同時也是未來處理器設(shè)計和模擬器發(fā)展的一個重要方向.

    5.3 自研(In-house)模擬器

    一些體系結(jié)構(gòu)文獻在進行實驗評估時,使用的是自研模擬器,表3對體系結(jié)構(gòu)會議ISCA(Inter-national Symposium on Computer Architecture),MICRO(International Symposium on Microarchi-tecture),ASPLOS(International Conference on Architectural Support for Programming Languages and Operating Systems),HPCA(International Symposium on High Performance Computer Archi-tecture)中近幾年出現(xiàn)的In-house模擬器進行了總結(jié)介紹,以方便科研人員在開發(fā)自研模擬器時進行參考.從表3可以看出,有多個自研模擬器是基于trace(一般可基于Intel Pin工具獲取)作為模擬器的輸入,此類模擬器適合于對訪存系統(tǒng)進行建模和分析,其優(yōu)點是運行速度快、構(gòu)建模擬器相對容易.但是由于Pin工具運行于用戶態(tài),因此其缺點是只能對用戶態(tài)應(yīng)用程序進行性能分析,無法對操作系統(tǒng)參與的行為(例如調(diào)度、內(nèi)存管理等)進行分析.

    Table 3 Introduction of Some In-house Simulators of Architecture Conference表3 部分體系結(jié)構(gòu)會議中使用的In-house模擬器介紹

    Note:“-” means unpublished information

    5.4 專用模擬器

    本文主要圍繞處理器性能模擬器進行介紹,但是處理器的設(shè)計是一個不斷取舍的過程,其他諸如功耗、面積等方面也是處理器設(shè)計過程中必須考慮的因素,這方面也有對應(yīng)的專用模擬器模擬和分析.本文所述專用模擬器是從體系結(jié)構(gòu)層面,針對處理器某個部件或者某些方面進行編寫的模擬器,例如cache模擬器、功耗模擬器、面積模擬器等.這類模擬器一般用于在處理器設(shè)計之初對其功耗和面積進行初步評估和取舍或者用于對科研論文中提出的創(chuàng)新思想所帶來的開銷進行評估.本節(jié)對主流會議中所使用的開源專用模擬器進行總結(jié)介紹.

    2.3節(jié)所述的TagSim[23]和文獻[71]中所用的模擬器就是專用的cache模擬器,此類模擬器一般只對數(shù)據(jù)cache進行模擬,主要關(guān)注訪存指令,因此普遍基于二進制插樁工具(Intel Pin工具和DynamoRIO[72]等)編寫.

    CACTI[73],Wattch[74],SimplePower[75],Power-Timer[76]可以對處理器能耗進行評估,文獻[76]從微結(jié)構(gòu)級對功耗模擬器進行了詳細總結(jié),本文不再贅述.Orion[77]模擬器可以針對片上網(wǎng)絡(luò)(network on chip,NoC)的功耗、面積進行評估.CACTI模擬器除了可以評估處理其功耗外,還可以以時序為限制的情況下對處理器面積進行詳細評估,基于此還衍生出了用于評估3D封裝DRAM的模擬器CACTI-3DD[78]、用于評估片外IO的模擬器CACTI-IO[79]和面向SRAM的支持降低漏電功耗技術(shù)的模擬器CACTI-P[80]等.McPAT[81]集成了CACTI-P[80]模擬器,是首款集成了對功耗、面積和時序進行模擬的多核和眾核模擬器,目前已經(jīng)被集成到gem5[2],Sniper[45]等多款性能模擬器中.McPAT[81]和CACTI[73]普遍被用于主流會議中進行處理器功耗、面積的評估.

    6 總結(jié)及展望

    體系結(jié)構(gòu)模擬器對于處理器設(shè)計非常重要,微結(jié)構(gòu)的開發(fā)、處理器的迭代和性能提升離不開模擬器的輔助.基于模擬器進行處理器設(shè)計,未來還有很多挑戰(zhàn).本文從處理器設(shè)計的角度出發(fā),首先介紹了開源模擬器在處理器設(shè)計中的地位;其次,對處理器廠商使用模擬器輔助進行處理器設(shè)計的經(jīng)驗進行了介紹和總結(jié),并對性能模擬器的校準方法進行了介紹;最后對模擬器優(yōu)化方法和新型模擬器進行了介紹.

    隨著計算機體系結(jié)構(gòu)的發(fā)展,異構(gòu)處理器、眾核處理器、虛擬化技術(shù)成為高性能計算未來發(fā)展的重要方向.首先,隨著處理器核數(shù)越來越多,未來多核互聯(lián)模擬器會變得越來越復(fù)雜.此外,隨著虛擬化的發(fā)展,系統(tǒng)整體性能評估需要在模擬器上運行虛擬化環(huán)境、完整的操作系統(tǒng)及負載.在處理器功耗越來越重要的情況下,通過模擬器對功耗進行評估也勢在必行,目前這方面還有很大提升空間.上述挑戰(zhàn)都是未來體系結(jié)構(gòu)模擬器研發(fā)要面臨的問題.

    猜你喜歡
    指令設(shè)計
    聽我指令:大催眠術(shù)
    何為設(shè)計的守護之道?
    《豐收的喜悅展示設(shè)計》
    流行色(2020年1期)2020-04-28 11:16:38
    ARINC661顯控指令快速驗證方法
    LED照明產(chǎn)品歐盟ErP指令要求解讀
    電子測試(2018年18期)2018-11-14 02:30:34
    瞞天過?!律O(shè)計萌到家
    設(shè)計秀
    海峽姐妹(2017年7期)2017-07-31 19:08:17
    有種設(shè)計叫而專
    Coco薇(2017年5期)2017-06-05 08:53:16
    殺毒軟件中指令虛擬機的脆弱性分析
    一種基于滑窗的余度指令判別算法
    久久久久亚洲av毛片大全| 欧美性猛交黑人性爽| 国产极品精品免费视频能看的| 国产又黄又爽又无遮挡在线| 欧美日韩乱码在线| 亚洲18禁久久av| 成年女人看的毛片在线观看| 伦理电影免费视频| 欧美zozozo另类| 国产主播在线观看一区二区| 丁香欧美五月| 在线国产一区二区在线| 亚洲欧美精品综合久久99| 老鸭窝网址在线观看| 婷婷六月久久综合丁香| 国产一级毛片七仙女欲春2| 欧美日本视频| 一卡2卡三卡四卡精品乱码亚洲| 中国美女看黄片| 日本精品一区二区三区蜜桃| 不卡一级毛片| 久久精品国产综合久久久| 少妇的丰满在线观看| 国产视频内射| 精品国产乱码久久久久久男人| 91av网一区二区| 999久久久精品免费观看国产| 丁香六月欧美| 久久久国产成人精品二区| 久久久色成人| 国产淫片久久久久久久久 | 男人舔奶头视频| 老司机深夜福利视频在线观看| svipshipincom国产片| 久久性视频一级片| 国产午夜精品久久久久久| 好男人电影高清在线观看| 免费av不卡在线播放| 亚洲中文日韩欧美视频| 亚洲第一欧美日韩一区二区三区| 日本黄色视频三级网站网址| 天堂网av新在线| 亚洲欧美精品综合久久99| 免费观看的影片在线观看| 桃红色精品国产亚洲av| 极品教师在线免费播放| 久久精品国产亚洲av香蕉五月| 身体一侧抽搐| 欧美乱码精品一区二区三区| 两性午夜刺激爽爽歪歪视频在线观看| 午夜久久久久精精品| 97超级碰碰碰精品色视频在线观看| 嫁个100分男人电影在线观看| 少妇裸体淫交视频免费看高清| 黄片小视频在线播放| 最好的美女福利视频网| 麻豆成人av在线观看| 亚洲专区国产一区二区| 久久伊人香网站| 欧美黄色淫秽网站| 三级毛片av免费| 18禁裸乳无遮挡免费网站照片| 九九热线精品视视频播放| 九九久久精品国产亚洲av麻豆 | 丰满的人妻完整版| 国产一区二区在线观看日韩 | e午夜精品久久久久久久| 99久久无色码亚洲精品果冻| 亚洲性夜色夜夜综合| 丰满的人妻完整版| 日本与韩国留学比较| 亚洲熟女毛片儿| 亚洲午夜精品一区,二区,三区| 国产黄片美女视频| 国产亚洲精品综合一区在线观看| 午夜久久久久精精品| 欧美一级毛片孕妇| 亚洲第一欧美日韩一区二区三区| 熟女人妻精品中文字幕| 精品欧美国产一区二区三| 免费搜索国产男女视频| 听说在线观看完整版免费高清| 久久久成人免费电影| 午夜福利18| 久久久久久九九精品二区国产| 白带黄色成豆腐渣| 国产熟女xx| 免费一级毛片在线播放高清视频| 天堂网av新在线| 日本三级黄在线观看| 日本黄色片子视频| 国产真实乱freesex| 亚洲人与动物交配视频| 嫁个100分男人电影在线观看| 岛国在线免费视频观看| 视频区欧美日本亚洲| 国产成年人精品一区二区| 国产欧美日韩精品亚洲av| 国产伦精品一区二区三区视频9 | 夜夜躁狠狠躁天天躁| 久久国产精品人妻蜜桃| 精品久久蜜臀av无| 欧美日韩一级在线毛片| 久久午夜亚洲精品久久| 最近视频中文字幕2019在线8| 国产精品,欧美在线| 国产精品久久久av美女十八| 一区二区三区高清视频在线| 国产精品1区2区在线观看.| 亚洲一区二区三区不卡视频| 日日夜夜操网爽| 亚洲国产精品久久男人天堂| 午夜激情福利司机影院| 午夜精品在线福利| 一本久久中文字幕| 国产美女午夜福利| 中亚洲国语对白在线视频| 久久中文字幕人妻熟女| 99在线人妻在线中文字幕| 国产欧美日韩一区二区三| av中文乱码字幕在线| 免费在线观看影片大全网站| svipshipincom国产片| 国产激情偷乱视频一区二区| 国产 一区 欧美 日韩| 成人三级做爰电影| 非洲黑人性xxxx精品又粗又长| av女优亚洲男人天堂 | 日本免费a在线| 国产一区二区激情短视频| 一区福利在线观看| 日韩精品青青久久久久久| 国产精品久久久久久久电影 | 欧美日韩瑟瑟在线播放| 亚洲午夜理论影院| 日日摸夜夜添夜夜添小说| 精品国内亚洲2022精品成人| 日本在线视频免费播放| 精品久久蜜臀av无| 久久草成人影院| www国产在线视频色| 亚洲人成电影免费在线| 精品欧美国产一区二区三| 美女cb高潮喷水在线观看 | 亚洲成av人片在线播放无| 午夜久久久久精精品| 欧美国产日韩亚洲一区| 18禁黄网站禁片午夜丰满| 美女cb高潮喷水在线观看 | 最新美女视频免费是黄的| 午夜成年电影在线免费观看| 熟女少妇亚洲综合色aaa.| 亚洲欧美精品综合久久99| 国产成人啪精品午夜网站| 精品国内亚洲2022精品成人| 国产伦一二天堂av在线观看| 国产激情偷乱视频一区二区| 99热精品在线国产| 国产精品亚洲美女久久久| 久久久久久人人人人人| 91字幕亚洲| 国产乱人视频| av中文乱码字幕在线| 一区福利在线观看| 国产精品一区二区三区四区久久| 成在线人永久免费视频| 最近最新中文字幕大全免费视频| 中文字幕熟女人妻在线| 91av网站免费观看| 国产伦人伦偷精品视频| 最近在线观看免费完整版| 91麻豆av在线| 精品99又大又爽又粗少妇毛片 | 99热6这里只有精品| x7x7x7水蜜桃| 午夜福利成人在线免费观看| 校园春色视频在线观看| 亚洲成a人片在线一区二区| 日本黄色片子视频| 精品国产乱子伦一区二区三区| 波多野结衣巨乳人妻| 人人妻人人看人人澡| 一区二区三区国产精品乱码| netflix在线观看网站| 国产免费男女视频| 亚洲色图av天堂| 亚洲精品一区av在线观看| 亚洲成人中文字幕在线播放| 午夜福利欧美成人| 哪里可以看免费的av片| 欧美成人性av电影在线观看| 91久久精品国产一区二区成人 | 在线永久观看黄色视频| 午夜免费观看网址| 91麻豆精品激情在线观看国产| 99精品欧美一区二区三区四区| 亚洲黑人精品在线| 一本一本综合久久| bbb黄色大片| 美女 人体艺术 gogo| 一a级毛片在线观看| 亚洲精品一区av在线观看| 国产亚洲精品av在线| 高潮久久久久久久久久久不卡| 丰满人妻熟妇乱又伦精品不卡| 欧美一区二区国产精品久久精品| 88av欧美| 岛国视频午夜一区免费看| 午夜免费观看网址| 丰满的人妻完整版| 亚洲激情在线av| 村上凉子中文字幕在线| 欧美又色又爽又黄视频| 国产一级毛片七仙女欲春2| 亚洲熟女毛片儿| 午夜视频精品福利| 久久久久久人人人人人| 人妻夜夜爽99麻豆av| 999久久久国产精品视频| 长腿黑丝高跟| 亚洲av熟女| 免费观看人在逋| 91av网站免费观看| 国产成人影院久久av| 午夜福利在线观看吧| 在线观看午夜福利视频| 亚洲aⅴ乱码一区二区在线播放| 桃红色精品国产亚洲av| 久久九九热精品免费| 欧美+亚洲+日韩+国产| 色综合站精品国产| 亚洲精品粉嫩美女一区| 黄色视频,在线免费观看| 一夜夜www| 欧美zozozo另类| 欧美成人免费av一区二区三区| 久久久久国产一级毛片高清牌| 久久午夜亚洲精品久久| 成人无遮挡网站| 天天躁日日操中文字幕| 真人一进一出gif抽搐免费| 99在线视频只有这里精品首页| 久久九九热精品免费| 熟女人妻精品中文字幕| 亚洲人成电影免费在线| 欧美日韩福利视频一区二区| 后天国语完整版免费观看| 毛片女人毛片| 欧美成狂野欧美在线观看| 我要搜黄色片| 欧美成人性av电影在线观看| 最近在线观看免费完整版| 欧美黑人巨大hd| 99久久无色码亚洲精品果冻| 午夜激情欧美在线| 国产高清三级在线| 亚洲电影在线观看av| 久久国产乱子伦精品免费另类| 国产成年人精品一区二区| or卡值多少钱| 在线观看免费午夜福利视频| 亚洲国产中文字幕在线视频| 亚洲人成伊人成综合网2020| 美女高潮的动态| 性欧美人与动物交配| 午夜福利成人在线免费观看| 最近最新中文字幕大全电影3| 亚洲av中文字字幕乱码综合| 在线国产一区二区在线| 国产av麻豆久久久久久久| 国产精品 欧美亚洲| 老司机福利观看| 蜜桃久久精品国产亚洲av| 九色国产91popny在线| 中文在线观看免费www的网站| xxx96com| 久久精品亚洲精品国产色婷小说| 中文亚洲av片在线观看爽| 婷婷亚洲欧美| 国产极品精品免费视频能看的| 国产一区二区三区视频了| 一进一出抽搐gif免费好疼| 好男人电影高清在线观看| 日本五十路高清| 久久欧美精品欧美久久欧美| 97碰自拍视频| 欧美黄色片欧美黄色片| 99riav亚洲国产免费| 天堂√8在线中文| 久久久成人免费电影| 亚洲av美国av| 婷婷六月久久综合丁香| 亚洲av成人不卡在线观看播放网| 巨乳人妻的诱惑在线观看| av福利片在线观看| 国产视频一区二区在线看| 亚洲成人免费电影在线观看| 国产真人三级小视频在线观看| 国产高清视频在线播放一区| 精品不卡国产一区二区三区| 国内精品一区二区在线观看| 搡老熟女国产l中国老女人| 免费在线观看日本一区| aaaaa片日本免费| 美女cb高潮喷水在线观看 | 国产亚洲av嫩草精品影院| 操出白浆在线播放| 日本a在线网址| 老鸭窝网址在线观看| 性色av乱码一区二区三区2| 美女高潮喷水抽搐中文字幕| 日本五十路高清| 人人妻人人澡欧美一区二区| 久久中文看片网| 久久中文看片网| 成年女人永久免费观看视频| 久久久精品欧美日韩精品| 欧美zozozo另类| 丝袜人妻中文字幕| 国产真实乱freesex| 亚洲人成伊人成综合网2020| aaaaa片日本免费| 国产成人啪精品午夜网站| 一级毛片高清免费大全| 一二三四在线观看免费中文在| 两个人的视频大全免费| 18禁黄网站禁片免费观看直播| 精品久久久久久久毛片微露脸| av在线天堂中文字幕| 麻豆av在线久日| av女优亚洲男人天堂 | 午夜久久久久精精品| 午夜精品一区二区三区免费看| 亚洲av中文字字幕乱码综合| 一个人看视频在线观看www免费 | 小蜜桃在线观看免费完整版高清| 欧美日韩精品网址| 18禁观看日本| 久久这里只有精品中国| 露出奶头的视频| 桃红色精品国产亚洲av| 热99re8久久精品国产| 亚洲精品456在线播放app | 搡老岳熟女国产| 国产免费av片在线观看野外av| 岛国视频午夜一区免费看| 久久香蕉国产精品| 51午夜福利影视在线观看| 国产成人影院久久av| 男人和女人高潮做爰伦理| 成人av在线播放网站| 国产精品 欧美亚洲| 亚洲 欧美一区二区三区| 亚洲va日本ⅴa欧美va伊人久久| 每晚都被弄得嗷嗷叫到高潮| 哪里可以看免费的av片| 国产97色在线日韩免费| 国产av一区在线观看免费| 真实男女啪啪啪动态图| 成人一区二区视频在线观看| 夜夜看夜夜爽夜夜摸| 久久久久久人人人人人| 日韩欧美精品v在线| 久久天堂一区二区三区四区| 黄片小视频在线播放| 久久午夜亚洲精品久久| 久久精品91无色码中文字幕| 国产精品美女特级片免费视频播放器 | 成人精品一区二区免费| 中文字幕高清在线视频| 老熟妇仑乱视频hdxx| 日本 av在线| 国内毛片毛片毛片毛片毛片| 69av精品久久久久久| 可以在线观看的亚洲视频| 成年女人毛片免费观看观看9| 黑人欧美特级aaaaaa片| 无限看片的www在线观看| 日韩欧美国产一区二区入口| 我要搜黄色片| 麻豆国产av国片精品| 人妻久久中文字幕网| 欧美最黄视频在线播放免费| 又黄又爽又免费观看的视频| 国产91精品成人一区二区三区| 亚洲无线在线观看| 午夜免费观看网址| cao死你这个sao货| 99在线视频只有这里精品首页| 精品久久久久久久久久久久久| 日韩欧美在线乱码| 久久国产乱子伦精品免费另类| www.999成人在线观看| 久久久久久大精品| 又大又爽又粗| 日本在线视频免费播放| 亚洲va日本ⅴa欧美va伊人久久| 在线视频色国产色| 免费搜索国产男女视频| 亚洲欧美精品综合久久99| 国产亚洲精品av在线| 88av欧美| 国产美女午夜福利| 又黄又粗又硬又大视频| 成人三级黄色视频| 夜夜爽天天搞| 真人做人爱边吃奶动态| 国产三级在线视频| 欧美性猛交╳xxx乱大交人| 欧美日韩一级在线毛片| 少妇的逼水好多| 97碰自拍视频| 亚洲av熟女| 欧美最黄视频在线播放免费| 精品国产超薄肉色丝袜足j| 久久久久免费精品人妻一区二区| 成人鲁丝片一二三区免费| 精品国内亚洲2022精品成人| 我的老师免费观看完整版| 久久中文看片网| a在线观看视频网站| 99久久国产精品久久久| 国产成+人综合+亚洲专区| 五月伊人婷婷丁香| 噜噜噜噜噜久久久久久91| 亚洲欧美激情综合另类| 国产亚洲精品综合一区在线观看| 好男人电影高清在线观看| 亚洲国产欧美人成| 国产淫片久久久久久久久 | av女优亚洲男人天堂 | ponron亚洲| 噜噜噜噜噜久久久久久91| www国产在线视频色| 国产精品亚洲美女久久久| 国产免费av片在线观看野外av| 国产成人精品无人区| 久久伊人香网站| 少妇的逼水好多| 国产精品久久久av美女十八| 少妇人妻一区二区三区视频| 国产成人影院久久av| 色综合婷婷激情| 午夜福利18| 一进一出抽搐动态| 久久久久国产精品人妻aⅴ院| 欧美午夜高清在线| 可以在线观看的亚洲视频| 久久久精品大字幕| 国产爱豆传媒在线观看| 成年免费大片在线观看| 一个人免费在线观看的高清视频| 天天躁日日操中文字幕| 久久久久性生活片| 午夜日韩欧美国产| 麻豆久久精品国产亚洲av| 天堂√8在线中文| 在线观看日韩欧美| 99精品在免费线老司机午夜| 日韩人妻高清精品专区| 久久久久久大精品| 美女扒开内裤让男人捅视频| 免费无遮挡裸体视频| 色综合亚洲欧美另类图片| 麻豆av在线久日| 欧美最黄视频在线播放免费| 97碰自拍视频| 观看美女的网站| 久久人妻av系列| 亚洲精品一区av在线观看| 天天添夜夜摸| 色av中文字幕| 日韩人妻高清精品专区| 国产精品自产拍在线观看55亚洲| 成年免费大片在线观看| 中文字幕高清在线视频| 亚洲精品一区av在线观看| 欧美zozozo另类| 三级毛片av免费| 国产av麻豆久久久久久久| 精品乱码久久久久久99久播| 熟女人妻精品中文字幕| 天天一区二区日本电影三级| 五月玫瑰六月丁香| 午夜激情福利司机影院| 精品一区二区三区av网在线观看| 97碰自拍视频| av视频在线观看入口| 伦理电影免费视频| 亚洲国产精品合色在线| 视频区欧美日本亚洲| 香蕉国产在线看| 99国产精品99久久久久| 国产爱豆传媒在线观看| 亚洲欧美一区二区三区黑人| 久久久久国产一级毛片高清牌| 国产亚洲精品久久久久久毛片| avwww免费| 久久久色成人| 国内精品一区二区在线观看| 久久精品aⅴ一区二区三区四区| 国产麻豆成人av免费视频| 中文字幕av在线有码专区| 日韩欧美精品v在线| 香蕉av资源在线| 亚洲第一欧美日韩一区二区三区| 久久香蕉精品热| 免费大片18禁| 国产精品美女特级片免费视频播放器 | 久久亚洲精品不卡| 欧美乱色亚洲激情| 亚洲熟女毛片儿| 90打野战视频偷拍视频| 观看免费一级毛片| 女同久久另类99精品国产91| 日韩欧美国产一区二区入口| 亚洲精品国产精品久久久不卡| 久久午夜亚洲精品久久| 99热这里只有是精品50| 日韩欧美 国产精品| 极品教师在线免费播放| 一级作爱视频免费观看| 成年版毛片免费区| 欧美黑人欧美精品刺激| 国产69精品久久久久777片 | 亚洲国产欧洲综合997久久,| 一个人观看的视频www高清免费观看 | 国产精品香港三级国产av潘金莲| 国产精品 国内视频| 黑人欧美特级aaaaaa片| 国产午夜福利久久久久久| 精品免费久久久久久久清纯| 午夜日韩欧美国产| 国产一区在线观看成人免费| 这个男人来自地球电影免费观看| 亚洲成av人片在线播放无| 久久精品夜夜夜夜夜久久蜜豆| 欧美日韩福利视频一区二区| 国产 一区 欧美 日韩| 国产不卡一卡二| 久久久久国内视频| 久久久久免费精品人妻一区二区| 国产欧美日韩精品亚洲av| 99国产极品粉嫩在线观看| 久久99热这里只有精品18| 亚洲av熟女| 亚洲欧洲精品一区二区精品久久久| 神马国产精品三级电影在线观看| 午夜福利视频1000在线观看| 国产精品99久久久久久久久| 91麻豆精品激情在线观看国产| 可以在线观看的亚洲视频| 桃红色精品国产亚洲av| 高潮久久久久久久久久久不卡| 999精品在线视频| 我要搜黄色片| 中文字幕最新亚洲高清| 此物有八面人人有两片| a级毛片在线看网站| 波多野结衣巨乳人妻| 欧美午夜高清在线| 国产成人av教育| 三级国产精品欧美在线观看 | 韩国av一区二区三区四区| 草草在线视频免费看| 在线观看日韩欧美| 男女那种视频在线观看| 丰满人妻一区二区三区视频av | 此物有八面人人有两片| 搡老妇女老女人老熟妇| 国产伦精品一区二区三区四那| 他把我摸到了高潮在线观看| 青草久久国产| 日本熟妇午夜| a级毛片a级免费在线| 最近最新中文字幕大全电影3| 人妻夜夜爽99麻豆av| 免费看美女性在线毛片视频| 观看免费一级毛片| 国内少妇人妻偷人精品xxx网站 | 日韩欧美在线二视频| 1000部很黄的大片| 亚洲精品中文字幕一二三四区| 91在线观看av| 哪里可以看免费的av片| 少妇的丰满在线观看| 欧美日韩黄片免| a级毛片在线看网站| 久久人妻av系列| 国产免费av片在线观看野外av| 欧美成狂野欧美在线观看| 免费看光身美女| 一个人免费在线观看的高清视频| 丁香六月欧美| 国产精品免费一区二区三区在线| 丰满人妻熟妇乱又伦精品不卡| 国产伦精品一区二区三区视频9 | 黄色成人免费大全| 日韩欧美免费精品| 色尼玛亚洲综合影院| 男人舔女人的私密视频| 18美女黄网站色大片免费观看| 熟妇人妻久久中文字幕3abv| 国产精品av久久久久免费| 色av中文字幕| 国产高清视频在线播放一区| 99riav亚洲国产免费| 小蜜桃在线观看免费完整版高清| 亚洲精品美女久久av网站| 日本在线视频免费播放| 亚洲自拍偷在线| 十八禁人妻一区二区| 日韩国内少妇激情av| 国产欧美日韩精品亚洲av| 级片在线观看|