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

    基于RISC-V參數(shù)化超標(biāo)量處理器的優(yōu)化設(shè)計(jì)

    2022-04-09 07:02:28劉有耀潘宇晨
    關(guān)鍵詞:流水線寄存器分支

    劉有耀,潘宇晨

    西安郵電大學(xué) 電子工程學(xué)院,西安 710121

    目前嵌入式領(lǐng)域市場(chǎng)具有很大的發(fā)展前景,但一直以來基本被ARM系列處理器占據(jù)。RISC-V是由加州大學(xué)伯克利分校(UCB)提出的一種開源精簡(jiǎn)指令集架構(gòu)[1-4],作為一個(gè)新生的開源指令集架構(gòu),具有精簡(jiǎn)、模塊化設(shè)計(jì)、開源等優(yōu)點(diǎn),可以根據(jù)需求定制自定義customer指令[5],大大簡(jiǎn)化了處理器的設(shè)計(jì),也因此涌現(xiàn)了很多優(yōu)秀的開源設(shè)計(jì)[6]。目前開源的RISC-V處理器大多偏向于低功耗的嵌入式設(shè)計(jì),例如E203、SCR1、PicoRV32和RI5CY等內(nèi)核均為標(biāo)量處理器。其設(shè)計(jì)的流水線階段相對(duì)較短,專注于低功耗嵌入式區(qū)域。PicoRV32是一個(gè)精簡(jiǎn)的緊湊型內(nèi)核,能夠順序地處理每條指令,因此其平均IPC為0.25。在高性能開源處理器中,代表性設(shè)計(jì)有BOOM處理器[7],能夠參數(shù)化地定制各級(jí)流水線以及緩存的配置。但是其語言編寫采用了較為激進(jìn)的Chisel[8]語言進(jìn)行編寫,編譯生成所得,因此屬于機(jī)器生成代碼,具有更好的可擴(kuò)展性與可重用性。但是其人工可讀性比較差,學(xué)習(xí)曲線又非常陡峭,學(xué)習(xí)成本比較大。

    在嵌入式微處理器設(shè)計(jì),低功耗處理器一般采用簡(jiǎn)單的單發(fā)射、順序執(zhí)行、寫回的策略進(jìn)行成本和性能的壓制。在較高性能處理器中,其主要的核心思想是通過指令級(jí)并行(instruction level parallelism,ILP)[9]來提升處理器的執(zhí)行多條指令的性能。在多發(fā)射時(shí),采用分組式保留站對(duì)待發(fā)射指令進(jìn)行暫存,再進(jìn)行運(yùn)算。執(zhí)行完提交相應(yīng)的提交請(qǐng)求進(jìn)入重排序中緩存[10],其亂序處理的機(jī)制可以大大提高處理器的性能[11]。

    緩存和執(zhí)行單元的配置可以在一定程度上能夠代表處理器的性能。充足的緩存與運(yùn)算單元可以保證流水線不被大量氣泡操作占用,最大程度上發(fā)揮多發(fā)射和亂序?qū)懟氐男阅堋?/p>

    可執(zhí)行單元是由算術(shù)邏輯單元(ALU)、乘除法單元(MDU)等其他專用運(yùn)算單元構(gòu)成,單元的數(shù)目可以直接提高處理器的性能,但也同時(shí)會(huì)帶來功耗收益的遞減。在處理器設(shè)計(jì)中,不同運(yùn)算單元是處在同一級(jí)流水線上并行運(yùn)算,向后級(jí)緩存寫入數(shù)據(jù)。對(duì)于不同單元的不同指令來說,需要為其分配不同的保留站進(jìn)行數(shù)據(jù)相關(guān)性檢測(cè),且長(zhǎng)周期執(zhí)行單元會(huì)阻塞短周期執(zhí)行單元的提交,造成處理器執(zhí)行單元的空閑操作。

    緩存在超標(biāo)量處理器中充當(dāng)著保證發(fā)射和寫回的順序嚴(yán)格按照程序本意的指令順序執(zhí)行。一些處理器的指令分派的機(jī)制采用了一種物理寄存器文件,重命名表和重排序提交緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)。將傳統(tǒng)的重命名寄存器堆合并到提交緩沖區(qū)中,并使重命名表分離。在配置的6個(gè)保留站(reservation stations,RS)中,獲取用于每一個(gè)功能單元在下一執(zhí)行階段獲得的基本操作數(shù)和功能代碼,并通過比較調(diào)度指針識(shí)別最早發(fā)出的指令[12]。但是對(duì)于分布式保留站在指令發(fā)射時(shí)具有利用率低的特點(diǎn),且若發(fā)布4條分支指令,需要構(gòu)建五個(gè)檢查點(diǎn)來支持未命中預(yù)測(cè)恢復(fù),這會(huì)帶來復(fù)雜檢查控制機(jī)制。同時(shí),也有一種以非推測(cè)方式進(jìn)行的派遣提交被提出,從而避免了檢查點(diǎn)。用驗(yàn)證緩沖(validation buffe,VB)結(jié)構(gòu)替換了傳統(tǒng)的ROB(reorder buffer,ROB)[13]。這種結(jié)構(gòu)會(huì)保持已分派的指令,直到它們成為非推測(cè)性的或被推測(cè)性的為止。但是這種結(jié)構(gòu)并沒有區(qū)分長(zhǎng)端周期指令在寫回階段的不同,由于指令執(zhí)行時(shí)間的不確定性,該結(jié)構(gòu)只能將load/store指令單獨(dú)派遣,同時(shí)需要將不同的指令追蹤,分離為Pending_Readers、Valid_Remapping和compile這3種狀態(tài),提高了各模塊之間互聯(lián)的復(fù)雜度。和在較多運(yùn)算單元時(shí),提交給緩存的請(qǐng)求也越多。為了使在指令提交時(shí)減少阻塞的發(fā)生,在流水線訪存寫回階段將緩存劃分為指令類型、目標(biāo)和存儲(chǔ)緩存結(jié)構(gòu)。這種流水線方案,能夠?qū)LU算數(shù)邏輯指令與load/store指令進(jìn)行分類提交[14]。但是在指令的派遣時(shí)并未考慮到系統(tǒng)指令以及不定周期的指令對(duì)處理器的影響,其設(shè)計(jì)的緩存模塊大量集中于流水線的末尾階段,緩存無法匹配到各級(jí)流水線,可能導(dǎo)致處理器上限頻率降低。循環(huán)迭代的方式檢測(cè)寄存器的相關(guān)性的方式,提高了處理器的動(dòng)態(tài)功耗,且在鎖存隊(duì)列滿時(shí)測(cè)出store指令時(shí),最差情況下只能發(fā)射一條指令。

    面對(duì)嵌入式多種復(fù)雜的性能需求時(shí)[15],需要一種能夠快速可配置的流水線結(jié)構(gòu)勝任不同的需求,并解決各級(jí)流水線的吞吐匹配問題。在此問題基礎(chǔ)上設(shè)計(jì)了一種優(yōu)化后的基于RISC-V的參數(shù)化超標(biāo)量處理器。處理器中的緩存分布在處理器的各個(gè)流水線階段,既可以取代流水線寄存器,對(duì)RISC-V處理器指令分類處理,直連化各級(jí)緩存接口,降低時(shí)延,同時(shí)擴(kuò)展了可駐留指令的上限。同時(shí)采用單周期運(yùn)算單元與長(zhǎng)周期運(yùn)算單元級(jí)聯(lián),同類執(zhí)行單元并行執(zhí)行的方式,可以使數(shù)據(jù)流先通過ALU簡(jiǎn)單計(jì)算,再流入后級(jí)執(zhí)行單元,緩存結(jié)合了集中式與分布式保留站的優(yōu)點(diǎn),既可以達(dá)到前級(jí)單元的高效利用,又可以通過可配置后級(jí)[16]流水模塊,達(dá)到自由調(diào)整數(shù)據(jù)吞吐率的平衡。在對(duì)面積極端要求條件下,可僅配置一條32 bit指令的緩存容量與單個(gè)處理單元,達(dá)到對(duì)面積的折中。但是由于數(shù)據(jù)相關(guān)性的存在,以及cache位寬大小的限制,無限制地提高緩存大小與執(zhí)行單元的數(shù)量也只能帶來有限的性能提升與大量的功耗。因此,本設(shè)計(jì)更傾向于面向嵌入式領(lǐng)域的定制化CPU的優(yōu)化實(shí)現(xiàn)。

    1 處理器架構(gòu)

    本設(shè)計(jì)中設(shè)計(jì)了一種面向嵌入式的變長(zhǎng)4級(jí)流水線結(jié)構(gòu),即“取指”“派遣”“執(zhí)行”“寫回”,對(duì)派遣階段進(jìn)行了兩次派遣處理,具有可配置各級(jí)流水線、亂序執(zhí)行、亂序?qū)懟氐奶攸c(diǎn)。

    處理器緩存可分為以下幾類:指令接收來自指令存儲(chǔ)器或cache中的指令,同時(shí)承擔(dān)來自跳轉(zhuǎn)與分支指令預(yù)測(cè)后的指令拼接區(qū)域;一級(jí)派遣緩存可以直接在派遣時(shí)得出寄存器的狀態(tài),對(duì)系統(tǒng)指令采取特殊通路,對(duì)于算數(shù)類型且無相關(guān)性的指令可以立即發(fā)射;寄存器緩存在寫回階段需要考慮其提交順序[17];二級(jí)派遣緩存對(duì)乘除法與存取指令緩存后,合并其向重排序緩存的請(qǐng)求,對(duì)于多個(gè)乘除法和一個(gè)訪存模塊,可以復(fù)用一條指令提交通路。

    處理器可執(zhí)行單元可分為:ALU與乘除法單元,可以根據(jù)實(shí)際應(yīng)用做到參數(shù)化可配置。

    1.1 流水線結(jié)構(gòu)

    處理器整體數(shù)據(jù)通路如圖1所示。其中,指令緩存(instruction buffer,IB)來自指令存儲(chǔ)器中的指令,同時(shí)也是分支跳轉(zhuǎn)指令的拼接緩存區(qū)。預(yù)測(cè)單元采用局部歷史分支預(yù)測(cè)器(local history),將每條分支指令的執(zhí)行歷史結(jié)果移入歷史分支寄存器(branch history register,BHR),通過歷史執(zhí)行的情況對(duì)其進(jìn)行預(yù)測(cè)(predict)[18]。來自一級(jí)派遣緩存(dispatch buffer,DB)和二級(jí)長(zhǎng)指令派遣緩存(dispatch long instruction buffer,DLIB)共同組成長(zhǎng)短指令的派遣緩存。DLIB不僅充當(dāng)了存取指令的緩沖等待區(qū),也是乘除法指令再派遣和運(yùn)算結(jié)果的暫存。DLIB在釋放一條長(zhǎng)指令時(shí),同時(shí)可向RB與DB更新指令列表信息,同時(shí)提交多個(gè)ALU指令。更新指令列表信息和當(dāng)前退休指令數(shù)量有關(guān),提交指令的數(shù)量與當(dāng)前無數(shù)據(jù)相關(guān)的指令條數(shù)有關(guān)。

    圖1 整體架構(gòu)設(shè)計(jì)圖Fig.1 Total frame

    設(shè)計(jì)中采用了多個(gè)參數(shù)化的緩沖模塊來處理流水線中的各階段的數(shù)據(jù)的緩沖問題??稍O(shè)置每一級(jí)緩存的接口數(shù)量和大小,面向不同的設(shè)計(jì)選擇性能與面積的折中。同時(shí)對(duì)(MUL/DIV unit,MDU)模塊采用級(jí)并聯(lián)復(fù)用長(zhǎng)指令提交緩存的方式,進(jìn)行多級(jí)派遣??商峁┒鄠€(gè)MDU單元同時(shí)運(yùn)算,減少端口的復(fù)雜度,降低流水線阻塞的概率,而面積開銷可以依據(jù)需求的MDU模塊以及特定的程序優(yōu)化,并不會(huì)很大。

    本設(shè)計(jì)將RISC-V指令分為分支跳轉(zhuǎn)、ALU指令、系統(tǒng)指令、長(zhǎng)周期指令等,利用對(duì)應(yīng)的控制與緩存模塊進(jìn)行緩存處理。在取指階段可適應(yīng)CPU外部存儲(chǔ)位寬進(jìn)行指令緩存,同時(shí)對(duì)緩存的指令調(diào)用預(yù)譯碼模塊和分支預(yù)測(cè)模塊對(duì)指令進(jìn)行預(yù)測(cè)合并緩存。在派遣階段將指令劃分為ALU指令、特殊指令(分支跳轉(zhuǎn)、環(huán)境調(diào)用、非法指令等)和長(zhǎng)指令進(jìn)行相關(guān)性檢測(cè)后進(jìn)行分派處理,送入不同的執(zhí)行模塊。在執(zhí)行階段,長(zhǎng)、短兩類指令分別在不同級(jí)流水線內(nèi)處理。普通的ALU指令結(jié)果,提交給寄存器緩存(regfile buffer,RB)處理。存儲(chǔ)指令和乘除法等指令,提交給二級(jí)長(zhǎng)指令派遣緩存(dispatch long instruction buffer,DLIB)進(jìn)行再派遣處理。對(duì)于DLIB,采用分離派遣的方式與乘除法進(jìn)行數(shù)據(jù)交換,屬于兩類指令混合的多級(jí)派遣機(jī)制,以提高并行性。

    1.2 超標(biāo)量實(shí)現(xiàn)

    RISC-V指令集相較于ARM和MIPS指令集更為精簡(jiǎn),可以大大簡(jiǎn)化硬件架構(gòu)的設(shè)計(jì)。

    為確保每一級(jí)指令能夠源源不斷送入后級(jí),將每一級(jí)的流水線寄存器替換為對(duì)應(yīng)的緩存,如取指譯碼階段為指令緩存(IB),譯碼執(zhí)行階段為派遣緩存(DB),執(zhí)行和訪存階段為長(zhǎng)指令派遣緩存(DLIB),寫回階段為寄存器緩存(RB)。

    在取指階段,根據(jù)RAM或Cache總線位寬,進(jìn)行配置。在緩沖器的剩余空間大于讀數(shù)據(jù)的位寬時(shí),會(huì)自動(dòng)發(fā)起讀指令的操作,以求填滿緩存。緩沖器的輸出為已成型的指令。由于本設(shè)計(jì)支持RISC-V壓縮指令集,指令長(zhǎng)度可能是16 bit或32 bit,指令數(shù)目也不固定。因此輸出的比特?cái)?shù)是16的倍數(shù)。每次取指時(shí),將已保存在緩沖器的比特和剛從指令存儲(chǔ)器進(jìn)入的比特,這兩者按照前后順序連接在一起,作為譯碼的對(duì)象。

    在譯碼派遣階段,譯碼多少條指令由下一級(jí)的需求決定。若下一級(jí)可以接受N條指令,則從IB中調(diào)用譯碼模塊盡量生成N條譯碼結(jié)果。RISC-V規(guī)整的指令格式可以通過bit[6∶0]7位操作碼(opcode)直接得出指令類型,通過功能碼(func)得到需要具體執(zhí)行的操作。對(duì)于操作數(shù)的獲取,在派遣緩存內(nèi)采用兩個(gè)黑名單,分別是Rs和Rd黑名單。讓每一條候選指令對(duì)照這兩個(gè)黑名單,當(dāng)發(fā)現(xiàn)Rs和Rd任意一個(gè)處于黑名單上,此條指令則不能進(jìn)入選中序列,應(yīng)被推移到下周期等待執(zhí)行。同時(shí)每個(gè)周期需要對(duì)Rs、Rd黑名單進(jìn)行更新,考察這條指令當(dāng)前的狀態(tài)下會(huì)影響那些操作數(shù)索引。只要當(dāng)前指令不在此黑名單,即可越級(jí)發(fā)射派遣。

    在執(zhí)行階段,ALU、乘除法和LSU(計(jì)算地址)共同寫入長(zhǎng)指令緩存(DLIB)中。此級(jí)緩存是逐步實(shí)現(xiàn)ALU指令的寫入權(quán)限的。

    以圖2留存于緩存中的指令序列舉例。其中ALU0、ALU1、ALU2、ALU3送入RB緩沖器,MUL0、MUL1和LSU0送入DLIB緩沖器。ALU0有權(quán)限寫入寄存器組,但ALU0和ALU1卻不能寫入。在MUL0指令并沒有成功執(zhí)行時(shí),寄存器組可以通過緩存器恢復(fù)到lsu0指令執(zhí)行之前的狀態(tài)。一旦LSU0指令成功執(zhí)行,寄存器緩存(RB)則允許放開此指令之后的ALU1和ALU2指令的寄存器寫入權(quán)限,和ALU0享有同等待遇。若MUL0異常,或未執(zhí)行完畢,RB則不允許其寫入寄存器,實(shí)現(xiàn)了指令的精確異常。因此RB會(huì)配合DLIB的執(zhí)行結(jié)果,退休一批ALU指令。

    圖2 緩存指令序列Fig.2 Instruction sequence

    在寫回階段,只有在外部存儲(chǔ)返回了響應(yīng)信號(hào),store指令狀態(tài)才被判決執(zhí)行完畢,同時(shí)在執(zhí)行期間記錄索引,避免load指令訪問該外部存儲(chǔ)的地址空間。

    1.3 互連線結(jié)構(gòu)

    每一級(jí)緩存的端口數(shù)目、位寬由參數(shù)決定,每一級(jí)緩存接口將必要的數(shù)據(jù)信息互聯(lián),并不需要復(fù)雜的公共數(shù)據(jù)總線,減少了握手所帶來的時(shí)序損耗。后級(jí)緩存需要向前級(jí)緩存發(fā)出自己的空滿信號(hào)[19],以確保流水線的正常運(yùn)行。在長(zhǎng)指令處理的互聯(lián)情況中,采用多級(jí)派遣方式,逐級(jí)緩存上級(jí)的譯碼包、操作數(shù)或訪存地址,因此可以提前在二級(jí)緩存DLIB剛緩存乘除法指令時(shí)即開始運(yùn)算,提高并行性。DLIB向DB與RB緩存之間提交退休的長(zhǎng)周期指令數(shù),其自身也可以同時(shí)移除多條長(zhǎng)指令,移除的指令結(jié)果直接寫入RB內(nèi)的寄存器組。ALU指令可以直接使用長(zhǎng)指令的數(shù)據(jù)通路,但只由RB進(jìn)行退休。因?yàn)锳LU指令并不能隨時(shí)寫入寄存器組。在長(zhǎng)指令出現(xiàn)異常的情況時(shí),寄存器組不能讓該條異常指令之后的指令寫入。系統(tǒng)模塊(SYS)和指令緩存器(IB)之間互聯(lián),控制系統(tǒng)指令和地址跳轉(zhuǎn)等指令的操作。處理器中緩存與運(yùn)算單元直接的互聯(lián)結(jié)構(gòu)直接的功能可以用簡(jiǎn)單的互聯(lián)圖3來表示。

    圖3 互聯(lián)數(shù)據(jù)圖Fig.3 Interconnection data graph

    1.4 可配置化

    四類緩存的基礎(chǔ)可配置參數(shù)如下,輸入位寬,輸出位寬與暫存位寬。位寬均為2n次冪。如位寬為128 bit,可容納4條32位指令與8條16位指令。

    指令緩存中可配置最小指令位寬以支持壓縮指令集,為了處理多個(gè)分支指令,支持可配的預(yù)測(cè)指令的暫存位寬,在分支預(yù)測(cè)失敗時(shí),可直接從緩存中讀取正確指令。每個(gè)分支指令在進(jìn)入分支暫存緩存后,它后續(xù)的指令也能放行進(jìn)入后級(jí)的緩沖器。

    分支預(yù)測(cè)單元的可配置參數(shù)為局部歷史分支預(yù)測(cè)器(BHR)位寬,最高可配置為5 bit。當(dāng)配置為2 bit時(shí),即為2比特飽和計(jì)數(shù)器,提供基礎(chǔ)的分支預(yù)測(cè)能力。

    可執(zhí)行單元的配置參數(shù)為級(jí)并聯(lián)單元的個(gè)數(shù)和與其連接緩存接口個(gè)數(shù)。當(dāng)配置ALU個(gè)數(shù)為3時(shí),MDU為2,指令長(zhǎng)度為32時(shí),一級(jí)派遣緩存接口位寬可以自適應(yīng)位寬配置為指令長(zhǎng)度乘以ALU單元數(shù)(XLEN×ALEN,32×3=96 bit)。同理,長(zhǎng)指令派遣緩存接口的位寬為2個(gè)MDU加上1個(gè)LSU模塊的位寬也為96 bit。

    以上參數(shù)均通過以Makefile腳本宏的方式進(jìn)行寫入編譯,以實(shí)現(xiàn)簡(jiǎn)便化的定制流程。

    2 處理機(jī)制

    2.1 兩級(jí)派遣

    指令緩存器(instruction buffer)連接譯碼模塊,將RISC-V指令劃分為長(zhǎng)周期指令、算數(shù)指令、跳轉(zhuǎn)指令、特殊/系統(tǒng)指令(CSR寄存器指令、非法指令、柵欄指令等)。對(duì)于無條件跳轉(zhuǎn)指令直接進(jìn)行拼接指令緩存;分支指令等待預(yù)測(cè)結(jié)果,Jalr指令等待Rs寄存器結(jié)果,拼接指令緩存;CSR寄存器操作指令,直接進(jìn)行寄存器操作;Fence指令暫停取指后,等待派遣模塊接收;最終只能有運(yùn)算指令可以進(jìn)入一級(jí)派遣緩存。在指令緩存器中,只能有一條跳轉(zhuǎn)指令或者特殊/系統(tǒng)指令被執(zhí)行。由于這些指令的特殊性,導(dǎo)致了必須嚴(yán)格按照指令順序,在其他指令執(zhí)行完畢后,才能交付。跳轉(zhuǎn)和分支指令,是一種具有ALU屬性的指令。跳轉(zhuǎn)之后將新指令進(jìn)行拼接并不影響后續(xù)的指令流的運(yùn)行。

    DB緩存接收上級(jí)緩存器送來的ALU、存取、乘除法指令。DB緩存會(huì)通過直接互聯(lián)監(jiān)聽寄存器的占用信息以及后級(jí)緩存、運(yùn)算單元的空閑信息。對(duì)指令進(jìn)行相關(guān)性檢測(cè),對(duì)沒有沖突的指令進(jìn)行派遣。派遣乘除法時(shí),進(jìn)入長(zhǎng)指令緩存模塊,單獨(dú)對(duì)其再派遣和結(jié)果回讀。派遣機(jī)制流程如圖4所示。

    圖4 派遣機(jī)制流程圖Fig.4 Dispatch mechanism

    2.1.1 ALU派遣執(zhí)行機(jī)制

    ALU指令派遣的條件如下:(1)RB緩存有剩余空間;(2)ALU運(yùn)算單元有空閑;(3)相關(guān)性檢測(cè)通過。

    滿足一級(jí)派遣的指令進(jìn)入ALU執(zhí)行階段,剩下的按照順序留存在一級(jí)派遣DB內(nèi)。在下一個(gè)周期到來時(shí),保存在DB緩存內(nèi)的指令優(yōu)先進(jìn)行判斷派遣。每個(gè)ALU數(shù)據(jù)通路傳送的是經(jīng)過譯碼打包后的數(shù)組,包含了指令的功能碼,操作數(shù)等信息。ALU計(jì)算后的數(shù)據(jù)分為兩種情況:(1)正常的ALU指令結(jié)果,寫回到RB中。(2)計(jì)算出MEM指令的地址,打包MDU指令送入到DLIB中。

    2.1.2 長(zhǎng)指令派遣執(zhí)行機(jī)制

    將原有與ALU同級(jí)的多周期MDU單元后移,其運(yùn)算結(jié)果與數(shù)據(jù)存放于原有的MEM指令緩存器中,合并為長(zhǎng)指令緩存器。在合并后的再派遣緩存中,存放著排序好的等待退休的存取指令和乘除法指令。當(dāng)有長(zhǎng)指令需要退休時(shí),依據(jù)序號(hào)和ALU指令一同送入RB中,由RB在進(jìn)一步的仲裁寫入結(jié)果。

    LSU/MDU指令被派遣的條件如下:(1)二級(jí)DLIB緩存有剩余空間;(2)在先前的指令周期內(nèi)有LSU/MDU在第一級(jí)派遣緩存模塊未被發(fā)射,先發(fā)射一級(jí)派遣緩存的指令。在本周期進(jìn)入的LSU/MDU指令應(yīng)保存在一級(jí)DB緩存中等待派遣。對(duì)于執(zhí)行時(shí)間不定的指令,不能有后級(jí)指令超越前級(jí)指令的行為。

    執(zhí)行分別在兩類數(shù)據(jù)通路內(nèi)處理。ALU接收從派遣模塊送來的指令,并再次將指令分成三類:算數(shù)指令、存取指令、乘除法指令。算數(shù)指令直接在ALU內(nèi)完成運(yùn)算,送給RB進(jìn)行重排序評(píng)估。MEM指令和乘除法指令混合送入二級(jí)DILB進(jìn)行緩存。

    因?yàn)檫@三種指令的執(zhí)行階段不一樣,故稱之為變長(zhǎng)流水線結(jié)構(gòu)。在執(zhí)行乘除法指令時(shí),由于DILB緩存是第二級(jí)派遣單元,已經(jīng)保存了之前存儲(chǔ)的和指令類型和操作數(shù)的緩存元素,因此可以提前在DILB緩存剛接收乘除法指令時(shí)即開始運(yùn)算。

    復(fù)用結(jié)構(gòu)執(zhí)行操作如下:(1)當(dāng)有長(zhǎng)指令進(jìn)入二級(jí)派遣緩存時(shí),通過功能碼檢測(cè)其指令類型,并根據(jù)類型進(jìn)行序號(hào)若是MEM指令交給LSU處理,若是MUL/DIV指令交給MDU處理。(2)若是MEM指令,檢測(cè)LSU單元是否被占用。占用時(shí)在Buffer中進(jìn)行等待調(diào)度,空閑時(shí)進(jìn)行內(nèi)存讀寫操作,序號(hào)(order)進(jìn)行加1。在二次派遣和指令提交時(shí),序號(hào)自減,只需提交統(tǒng)一的結(jié)果即可。(3)若是MUL/DIV指令,檢測(cè)MDU單元是否被占用。查詢送入的指令序號(hào)(md_ord=n),取出緩存中暫存的操作數(shù)和功能碼送往動(dòng)態(tài)分配的MDU。同時(shí)準(zhǔn)備下一條指令的序號(hào)(md_ord_next=N)。直到讀出下一條N為緩存的最高容量,說明無需要處理的指令。與MEM指令不同的是二級(jí)派遣緩存可以對(duì)應(yīng)多個(gè)MDU單元同時(shí)運(yùn)算。通過與運(yùn)算單元直連的簡(jiǎn)單握手信號(hào)進(jìn)行通信,存儲(chǔ)來自MDU的運(yùn)算結(jié)果,待下一個(gè)周期送入REB進(jìn)行寫入寄存器。

    兩種指令可以混合緩存來自上級(jí)模塊下發(fā)的指令。緩存的指令參數(shù)段存放指令的類型、Rd索引號(hào)、有效標(biāo)志和功能碼。若是乘除法和load指令,Rd為結(jié)果或加載的目的寄存器。若是store指令,則為全0。其中l(wèi)ong_addr來自load/store指令的地址或者是乘除法的一個(gè)操作數(shù)。long_wdata存儲(chǔ)來自store指令的Rs2或者是乘除法的另一個(gè)操作數(shù)。

    其具體行為操作如圖5所示。

    圖5 長(zhǎng)指令派遣Fig.4 Long instruction dispatch

    通過此部分二次派遣的方法,一方面減少互聯(lián)復(fù)雜度,只需發(fā)送整體的提交信息,使一級(jí)調(diào)度緩存和RB等模塊直連的信號(hào)大大縮減。同時(shí)重用了DILB的緩存空間,相當(dāng)于增加了MDU的緩存大小,使運(yùn)算單元不容易受制于緩存大小而造成流水線阻塞。對(duì)于改進(jìn)后的面積開銷,只會(huì)增大因需要存儲(chǔ)MDU返回結(jié)果的資源。

    2.1.3 長(zhǎng)指令派遣執(zhí)行機(jī)制

    特殊指令可以分為這兩類:error、illegal、sys、fencei、fence、csr系統(tǒng)非法類和branch、jalr、jal正常跳轉(zhuǎn)類。這些指令會(huì)在指令緩存中進(jìn)行處理,系統(tǒng)等指令會(huì)在下一級(jí)派遣緩存DB之前,送給SYS模塊進(jìn)行跳轉(zhuǎn)到異常程序入口或進(jìn)行csr讀寫操作。

    sys模塊會(huì)實(shí)現(xiàn)CSR寄存器的相關(guān)讀寫操作,它是處理系統(tǒng)指令和CSR指令并控制整個(gè)CPU狀態(tài)的模塊。sys模型在對(duì)CSR寄存器進(jìn)行處理時(shí)。一般會(huì)涉及到系統(tǒng)跳轉(zhuǎn),會(huì)取到一個(gè)新的PC地址進(jìn)行取指。同時(shí)會(huì)有清除所有緩存內(nèi)指令的操作。

    跳轉(zhuǎn)指令會(huì)將下一條指令直接進(jìn)行拼接,分支指令根據(jù)預(yù)測(cè)的結(jié)果覺得是否需要進(jìn)行拼接。當(dāng)分支指令的緩存清空時(shí),且下級(jí)緩存被清空時(shí)(正常指令執(zhí)行完),可以執(zhí)行系統(tǒng)指令。送往DB緩存的將只有算術(shù)存取指令的功能碼(func)和對(duì)源操作數(shù)和目的操作數(shù)的索引號(hào)(index)。

    為了管理經(jīng)過預(yù)測(cè)執(zhí)行的指令,為每一條指令設(shè)置一個(gè)預(yù)測(cè)真實(shí)梯度grade。grade表示當(dāng)前指令前有多少條分支指令未給出實(shí)際的結(jié)果。帶不同grade標(biāo)準(zhǔn)的指令允許進(jìn)入后級(jí)流水線。當(dāng)一條分支指令被確認(rèn)預(yù)測(cè)正確,那么grade等級(jí)會(huì)自動(dòng)減1。只有g(shù)rade等級(jí)為0的指令可以進(jìn)入寄存器堆或?qū)懭雖em中。如圖6所示,只有ALU0和ALU1指令允許寫入寄存器堆中。

    圖6 預(yù)測(cè)指令真實(shí)梯度Fig.6 Forecast true grade

    2.2 重排序?qū)懟?/h3>

    RB緩存主要負(fù)責(zé)存儲(chǔ)來自ALU、DLIB、CSR指令中需要的寄存器堆數(shù)據(jù)。RB緩存中內(nèi)嵌了32個(gè)RISC-V標(biāo)準(zhǔn)寄存器組,因而可以方便地對(duì)其進(jìn)行操作。同時(shí)RB也為DLIB設(shè)置了專門訪問通用寄存器的接口,方便ALU指令再排序后能夠在長(zhǎng)指令提交后同時(shí)寫入寄存器。ALU送來的數(shù)據(jù)夾雜著存取指令的地址,RB仲裁器需要仲裁出來自ALU的算數(shù)指令,將其寫入緩存并分配序號(hào)。每新來一個(gè)MEM指令時(shí),對(duì)序號(hào)加1,若是ALU指令,則不變。每個(gè)周期進(jìn)行評(píng)估,對(duì)序號(hào)等于0的數(shù)據(jù)才允許寫入寄存器堆。序號(hào)大于0的,只能保存在RB的緩存器內(nèi)。如果發(fā)生序號(hào)為1的MEM指令發(fā)生了異常(MEM指令必須嚴(yán)格順序讀寫,所以只有序號(hào)為1才能進(jìn)入讀寫序列),只需要清除包括序號(hào)為1之后的數(shù)據(jù)即可。保證了寄存器堆的數(shù)據(jù)正確,同時(shí)可以精確定位異常指令。

    若MEM指令正確執(zhí)行,則RB中的序號(hào)自動(dòng)減1,允許新數(shù)據(jù)寫入寄存器堆。這種分類隔離的方式避免了MEM指令異常而導(dǎo)致的數(shù)據(jù)錯(cuò)誤提交。同時(shí)對(duì)于后續(xù)指令取用寄存器堆內(nèi)數(shù)據(jù)時(shí),不僅要從寄存器堆內(nèi)取用,同時(shí)還要從RB緩存中取出進(jìn)行比對(duì)。對(duì)于不同的數(shù)據(jù),以RB緩存中的數(shù)據(jù)作為基準(zhǔn),這保證了運(yùn)算單元索引的寄存器中的數(shù)據(jù)是被正常提交所得的。

    3 實(shí)驗(yàn)結(jié)果及分析

    指令集驗(yàn)證采用RISC-V社區(qū)開源的指令集自測(cè)試程序。該測(cè)試程序用匯編語言編寫,屬于指令兼容性測(cè)試。該方法通過循環(huán)計(jì)數(shù),檢測(cè)寄存器的值來判斷測(cè)試是指令集架構(gòu)中定義的指令是否符合RISC-V的標(biāo)準(zhǔn)。使用自測(cè)試下,處理器通過了RISC-V的IMC(整數(shù)、乘除法、壓縮)指令集的測(cè)試。

    在128 bit的取指位寬情況下,對(duì)不同發(fā)射數(shù)的緩存進(jìn)行了匹配,評(píng)估了不同緩存接口數(shù)與大小下的性能,同時(shí)運(yùn)行了CoreMark與Dhrystones的跑分測(cè)試。Dhrystone用于衡量處理器的整數(shù)運(yùn)算處理性能,比如數(shù)據(jù)的賦值、間接指針函數(shù)調(diào)用、賦值等常見操作,有是否選擇編譯器優(yōu)化兩種情況。CoreMark程序包含了常見的矩陣運(yùn)算、鏈表操作、狀態(tài)機(jī)和循環(huán)冗余校驗(yàn)(CRC)等算法。這些測(cè)試程序都能較好地衡量處理器的性能。

    可配置性,是通過Makefile腳本中sed命令,直接修改define.v文件中相應(yīng)的定義來實(shí)現(xiàn)。在定義文件中,可定義的選項(xiàng)有指令緩存、派遣緩存、長(zhǎng)指令緩存、寄存器緩存大小、ALU單元、MDU單元和分支預(yù)測(cè)位寬。如:直接sed修改`define MDU_NUM為2。

    為了能夠更加簡(jiǎn)便化實(shí)現(xiàn)對(duì)應(yīng)測(cè)試環(huán)境的性能測(cè)試,在配置選項(xiàng)中加入了launch選項(xiàng)(編譯器優(yōu)化),分別對(duì)應(yīng)該發(fā)射數(shù)在對(duì)應(yīng)測(cè)試程序下的最優(yōu)配置。

    處理器性能主要依賴于合成基準(zhǔn)測(cè)試程序進(jìn)行評(píng)估。在不同基準(zhǔn)程序中IPC可能會(huì)有所差異。在處理前和后分別采用modelsim仿真記錄運(yùn)行程序的時(shí)間,取平均,可以得到各個(gè)配置下的IPC。

    下列配置是在Dhrystones和CoreMark測(cè)試程序?qū)Τ顺ǚ治龊筮M(jìn)行最優(yōu)配置。若目標(biāo)程序采用此類運(yùn)算較多,可直接進(jìn)行增加,所以此設(shè)計(jì)更傾向于嵌入式領(lǐng)域中運(yùn)算指令密集型的應(yīng)用處理。

    1發(fā)射:ALU:1,MDU:1,IB緩存:2,DB緩存:2,DLIB緩存:4,RB緩存:4。

    2發(fā)射:ALU:2,MDU:1,IB緩存:3,DB緩存:4,DLIB緩存:8,RB緩存:8。

    3發(fā)射:ALU:3,MDU:2,IB緩存:5,DB緩存:7,DLIB緩存:14,RB緩存:14。

    4發(fā)射:ALU:4,MDU:2,IB緩存:6,DB緩存:8,DLIB緩存:16,RB緩存:16。

    5發(fā)射:ALU:5,MDU:3,IB緩存:8,DB緩存:10,DLIB緩存:20,RB緩存:20。

    圖7測(cè)試表明,不同發(fā)射數(shù)對(duì)性能的影響是巨大的。但隨著發(fā)射數(shù)的提升,處理器的性能增益也會(huì)有所降低,這主要是由于指令的相關(guān)性約束所導(dǎo)致的[20]。在這幾種跑分場(chǎng)景中可以發(fā)現(xiàn)3發(fā)射的配置占優(yōu)。越高的取指位寬和運(yùn)算單元可以顯著提升處理器性能。

    圖7 不同發(fā)射數(shù)下IPCFig.7 IPC with different emission numbers

    為了支持取指,cache的功耗與面積代價(jià)會(huì)不可避免地增加[21],但是本設(shè)計(jì)理論上可以靈活地對(duì)接不同的存儲(chǔ)取指位寬,加上不同的運(yùn)算單元和發(fā)射數(shù)目,達(dá)到性能與面積的平衡。

    在采用三發(fā)射的配置,即ALU:3,MDU:2的基準(zhǔn),表1為在TMSC 28HPC+工藝綜合和FPGA實(shí)現(xiàn)兩種派遣指令內(nèi)核的配置,即在相同運(yùn)算單元數(shù)目下,分別采用基準(zhǔn)程序測(cè)試了在MDU與ALU同級(jí)流水線與緩存復(fù)用派遣下的性能。用不同模式下的平均跑分與邏輯單元數(shù)目的比值,Average Cells/IPC,作為一個(gè)評(píng)判依據(jù)。值越低,其單位性能下所占用的數(shù)目越少。在采用復(fù)用派遣后,因需要緩存從MDU來的指令,需要適當(dāng)增大DILB緩存提升性能而帶來一定面積開銷。

    表1 不同派遣模式參數(shù)對(duì)比Table 1 Comparison of different mode parameters

    單級(jí)派遣即是乘除法MDU單元與ALU單元處在同級(jí)流水線中的執(zhí)行階段,LSU訪存模塊處于訪存階段。這種做法在執(zhí)行乘法指令時(shí)可以快一個(gè)周期,但是此類指令為長(zhǎng)周期指令,需要為此指令類指令再增加另外的派遣緩存,在無此類指令時(shí)不工作。在訪存指令執(zhí)行時(shí),需要為所有執(zhí)行單元設(shè)計(jì)一個(gè)重排序緩沖區(qū),該緩沖區(qū)需要時(shí)刻接受來自公共數(shù)據(jù)總線的釋放信號(hào),這無疑增大了總線復(fù)雜度。

    復(fù)用派遣即為本設(shè)計(jì)所采用的方法。所有執(zhí)行和訪存指令均通過派遣緩存(DB),提高了緩存利用率。同時(shí)將乘除法單元(MDU)移至訪存階段,由于LSU和MDU指令均為長(zhǎng)周期指令,長(zhǎng)指令緩存(DLIB)能夠更加有效管理指令執(zhí)行的流向。普通指令結(jié)果即可流向寄存器緩存(RB),乘除法指令在運(yùn)算結(jié)束后也可暫存在DLIB,隨即流向RB。LSU指令,對(duì)于load指令可直接操作RB從Regfiles取操作數(shù),Store指令直接訪問外部Memory。同時(shí)僅在有需要通信的緩存之間以直接連線的方式,既可以高效完成功能,又可以降低設(shè)計(jì)復(fù)雜度。

    可以看到,由于MDU單元需要通過二級(jí)DLIB緩存,所以需要適當(dāng)增大此部分緩存的大小,總體采用的邏輯門數(shù)略有增加,這部分面積開銷由總線控制模塊,DB和DLIB共同承擔(dān)。但同時(shí)性能也有提升,同時(shí)簡(jiǎn)化了復(fù)雜的互聯(lián)機(jī)制。對(duì)于乘除法和load指令來說,其目的操作數(shù)都是RISC-V內(nèi)部規(guī)劃的32個(gè)32 bit寄存器。其數(shù)據(jù)流索引被記錄在DLIB中,可以直接寫入到RB中,當(dāng)無指令沖突時(shí),即可寫入寄存器堆,實(shí)現(xiàn)指令退休。store指令為目的操作數(shù)為外部存儲(chǔ)的空間,在store指令執(zhí)行中,DLIB可以避免load指令訪問該外部存儲(chǔ)的地址空間。

    采用TMSC 28HPC+工藝,在200 MHz頻率下對(duì)本設(shè)計(jì)進(jìn)行綜合。采用CoreMark 5 000次迭代,和Dhrystone進(jìn)行FPGA功能驗(yàn)證。通過配置發(fā)射數(shù),依據(jù)各個(gè)執(zhí)行時(shí)間結(jié)果計(jì)算出不同基準(zhǔn)測(cè)試程序下的IPC數(shù),并平均化處理,得到在不同發(fā)射數(shù)下的平均IPC。結(jié)果表明,本設(shè)計(jì)配置在2/4發(fā)射時(shí),已較為接近知名的BOOM處理器。如表2所示,相較于同類型處理器IPC分別有122.1%、122.3%和176.8%的提升。且采用復(fù)用派遣后內(nèi)核面積僅增大8.1%。

    表2 不同處理器性能對(duì)比Table 2 Performance comparison of different processors

    表3所示為在最優(yōu)配置下(ALU:3,MDU:2)各個(gè)緩存與Top模塊在TMSC 28HPC+工藝庫下綜合參數(shù)。得出所需的門電路單元的數(shù)目和面積等參數(shù)信息。緩存單元容量與總線位寬與邏輯運(yùn)算單元數(shù)量息息相關(guān)。當(dāng)取指位寬與ALU增加時(shí),IB與DB也應(yīng)增加適應(yīng)其性能。

    表3 主要模塊綜合結(jié)果Table 3 Synthesis results of main modules

    從模塊綜合結(jié)果來看,三類緩存中,派遣緩存(DB)占用資源最多。因?yàn)樗兄噶罹?jīng)過相關(guān)性檢測(cè)才能從流水線中被派遣,未滿足條件的應(yīng)當(dāng)留在此階段,等待發(fā)射。

    得益于可配置的緩存接口,不僅在較高性能的處理器中占有優(yōu)勢(shì),當(dāng)配置為單發(fā)射順序執(zhí)行時(shí),因引入了緩存,雖然面積會(huì)大于其他低功耗處理器,但仍在可接受范圍內(nèi),且性能較其他處理器仍占有優(yōu)勢(shì)。此時(shí)設(shè)計(jì)為在配置1發(fā)射時(shí),同時(shí)配置分支預(yù)測(cè)為2 bit時(shí)情況。作為通用型處理器,本設(shè)計(jì)與幾類嵌入式處理器邏輯門數(shù),跑分等性能方面進(jìn)行了對(duì)比。表4為最低配置時(shí)相較于ARM Cortex-M系列和開源RISC-V低功耗處理器的性能對(duì)比。

    表4 單發(fā)射處理器對(duì)比Table 4 Single transmitter processor comparison

    4 結(jié)束語

    本文通過對(duì)簡(jiǎn)便的參數(shù)化配置,實(shí)現(xiàn)了一種基于RISC-V開源指令集的超標(biāo)量微架構(gòu),通過分類指令的數(shù)據(jù)通路,不同周期的執(zhí)行單元采用級(jí)聯(lián)與并行的混合分布方式,將充當(dāng)排序緩存中的指令再派遣,達(dá)到指令暫存和分類執(zhí)行的目的。該方案通過定制優(yōu)化后的取指中的分支預(yù)測(cè),執(zhí)行中的混合派遣,緩存與執(zhí)行單元,直連的簡(jiǎn)潔,等CPU流水線中關(guān)鍵的性能優(yōu)化點(diǎn),改善處理器中流水線不匹配以及緩存堵塞的問題。

    最終,本設(shè)計(jì)在FPGA開發(fā)板上完成功能處理器功能驗(yàn)證,并在TSMC 28HPC+工藝上進(jìn)行了面積綜合。受益于上述描述的各級(jí)流水線的性能點(diǎn)優(yōu)化,在本設(shè)計(jì)的最佳配置中,性能相比同類型處理器IPC提升132.4%;在單發(fā)射最低配置中,性能和邏輯門數(shù)與對(duì)應(yīng)級(jí)別的低功耗處理器持平。針對(duì)嵌入式多樣化的應(yīng)有方向,下一步研究將此處理器應(yīng)用到神經(jīng)網(wǎng)絡(luò)的向量化處理中,設(shè)計(jì)特定指令集并在長(zhǎng)指令派遣單元中集成更多的專用并行處理單元,實(shí)現(xiàn)算法的并行化處理,專用領(lǐng)域的加速研究。

    猜你喜歡
    流水線寄存器分支
    Gen Z Migrant Workers Are Leaving the Assembly Line
    Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
    流水線
    巧分支與枝
    一類擬齊次多項(xiàng)式中心的極限環(huán)分支
    分簇結(jié)構(gòu)向量寄存器分配策略研究*
    報(bào)廢汽車拆解半自動(dòng)流水線研究
    SIMATIC IPC3000 SMART在汽車流水線領(lǐng)域的應(yīng)用
    生成分支q-矩陣的零流出性
    碩果累累
    久久久精品免费免费高清| 一级毛片电影观看| 国产伦理片在线播放av一区| 超碰97精品在线观看| 国产免费一区二区三区四区乱码| 制服人妻中文乱码| 国产精品一区www在线观看| 伊人久久国产一区二区| 99久久人妻综合| 曰老女人黄片| 一本色道久久久久久精品综合| 又大又黄又爽视频免费| 天天躁夜夜躁狠狠久久av| 国产欧美亚洲国产| 涩涩av久久男人的天堂| 性色av一级| 欧美成人午夜免费资源| 大陆偷拍与自拍| 26uuu在线亚洲综合色| 大码成人一级视频| 午夜激情久久久久久久| 亚洲欧洲国产日韩| 永久免费av网站大全| 国产精品一区二区在线观看99| 性高湖久久久久久久久免费观看| 国产成人午夜福利电影在线观看| 国产免费一级a男人的天堂| 国产在线免费精品| 看免费成人av毛片| 国产熟女午夜一区二区三区 | 青春草视频在线免费观看| 美女脱内裤让男人舔精品视频| 国产国语露脸激情在线看| 99九九线精品视频在线观看视频| 一区二区三区乱码不卡18| 久久 成人 亚洲| av在线播放精品| 国产亚洲欧美精品永久| 精品久久久久久电影网| 日韩不卡一区二区三区视频在线| 母亲3免费完整高清在线观看 | 国产男女内射视频| 午夜福利影视在线免费观看| 天堂俺去俺来也www色官网| 飞空精品影院首页| 热re99久久精品国产66热6| 一本大道久久a久久精品| 卡戴珊不雅视频在线播放| 黄片播放在线免费| 黑人高潮一二区| 一级毛片 在线播放| 久久精品国产自在天天线| 少妇丰满av| 亚洲怡红院男人天堂| 3wmmmm亚洲av在线观看| av在线观看视频网站免费| 欧美xxⅹ黑人| 色网站视频免费| 波野结衣二区三区在线| 国产有黄有色有爽视频| 国产免费福利视频在线观看| 亚洲久久久国产精品| 伦理电影大哥的女人| 成年人免费黄色播放视频| 精品人妻熟女毛片av久久网站| 亚洲在久久综合| 亚洲国产精品999| 美女大奶头黄色视频| 极品人妻少妇av视频| 天堂8中文在线网| 亚洲精品av麻豆狂野| 精品久久国产蜜桃| www.色视频.com| av福利片在线| 日本vs欧美在线观看视频| 99久久中文字幕三级久久日本| 日本wwww免费看| 久久99精品国语久久久| xxx大片免费视频| 啦啦啦视频在线资源免费观看| 好男人视频免费观看在线| 精品国产国语对白av| videossex国产| 久久 成人 亚洲| 国产精品久久久久久av不卡| 国产精品一区二区在线不卡| 免费久久久久久久精品成人欧美视频 | 一本一本综合久久| 好男人视频免费观看在线| 久久午夜福利片| 亚洲欧美清纯卡通| 亚洲av免费高清在线观看| videossex国产| 在线观看免费高清a一片| videossex国产| 美女内射精品一级片tv| 天美传媒精品一区二区| 一级二级三级毛片免费看| 久久ye,这里只有精品| 天堂8中文在线网| 亚洲情色 制服丝袜| 18禁在线播放成人免费| 18禁在线播放成人免费| 午夜91福利影院| 51国产日韩欧美| 免费黄色在线免费观看| 亚洲国产色片| 97精品久久久久久久久久精品| 久久久久久人妻| 精品99又大又爽又粗少妇毛片| 乱码一卡2卡4卡精品| 在线观看人妻少妇| 十八禁高潮呻吟视频| 久久狼人影院| 亚洲国产精品999| 亚洲精华国产精华液的使用体验| 80岁老熟妇乱子伦牲交| 国产一区二区三区综合在线观看 | 欧美日韩亚洲高清精品| 欧美xxxx性猛交bbbb| 人妻系列 视频| 内地一区二区视频在线| 最近中文字幕2019免费版| 国产淫语在线视频| 久久狼人影院| 国产精品99久久久久久久久| 精品熟女少妇av免费看| 18在线观看网站| 最新中文字幕久久久久| 欧美国产精品一级二级三级| 亚洲成人手机| 黄色视频在线播放观看不卡| 一级黄片播放器| 九九爱精品视频在线观看| 在线观看一区二区三区激情| 亚洲欧美成人精品一区二区| 夜夜看夜夜爽夜夜摸| 波野结衣二区三区在线| 男的添女的下面高潮视频| 亚洲国产av影院在线观看| 欧美 亚洲 国产 日韩一| 夜夜爽夜夜爽视频| 亚洲经典国产精华液单| 久久久亚洲精品成人影院| 欧美亚洲 丝袜 人妻 在线| 少妇被粗大猛烈的视频| 久久精品久久久久久噜噜老黄| 亚洲综合色网址| 国产精品女同一区二区软件| 一本大道久久a久久精品| 亚洲国产色片| 秋霞在线观看毛片| 久久精品人人爽人人爽视色| 国产亚洲欧美精品永久| 成年av动漫网址| 人妻制服诱惑在线中文字幕| 亚洲精品久久久久久婷婷小说| 视频区图区小说| 午夜久久久在线观看| 亚洲av福利一区| 国产精品一区二区在线不卡| 大香蕉97超碰在线| 最后的刺客免费高清国语| 一本久久精品| 国产精品久久久久久精品电影小说| 国产 精品1| 国产欧美日韩一区二区三区在线 | 22中文网久久字幕| 亚洲av日韩在线播放| 国产精品无大码| av又黄又爽大尺度在线免费看| 视频中文字幕在线观看| av国产久精品久网站免费入址| 午夜激情av网站| 亚洲精品国产av蜜桃| 成人午夜精彩视频在线观看| 亚洲经典国产精华液单| 欧美亚洲 丝袜 人妻 在线| 七月丁香在线播放| 欧美国产精品一级二级三级| 18禁在线无遮挡免费观看视频| 日韩亚洲欧美综合| 久久人人爽人人片av| 99热这里只有精品一区| 免费黄网站久久成人精品| 久久久久久久久久久丰满| 人妻 亚洲 视频| 国产成人精品福利久久| 亚洲无线观看免费| 人体艺术视频欧美日本| 看非洲黑人一级黄片| av播播在线观看一区| 亚洲精品日韩av片在线观看| 久久久久久伊人网av| 九色成人免费人妻av| 王馨瑶露胸无遮挡在线观看| 狂野欧美激情性bbbbbb| 亚洲美女搞黄在线观看| 国产色爽女视频免费观看| 精品人妻熟女毛片av久久网站| 亚洲精品自拍成人| 日本av免费视频播放| 国产成人免费观看mmmm| 亚洲国产精品一区三区| a级毛片黄视频| 国产无遮挡羞羞视频在线观看| 国产精品麻豆人妻色哟哟久久| 一区二区日韩欧美中文字幕 | 下体分泌物呈黄色| 久久精品国产亚洲网站| 国产深夜福利视频在线观看| 国产精品不卡视频一区二区| 亚洲成人av在线免费| 久久久亚洲精品成人影院| 成人漫画全彩无遮挡| 亚洲av综合色区一区| 两个人免费观看高清视频| 少妇高潮的动态图| 亚洲av欧美aⅴ国产| 又大又黄又爽视频免费| 一二三四中文在线观看免费高清| 欧美日韩av久久| 久久精品国产a三级三级三级| 两个人免费观看高清视频| 九九在线视频观看精品| 亚洲美女黄色视频免费看| 美女内射精品一级片tv| 少妇被粗大的猛进出69影院 | 精品国产一区二区久久| 91精品国产国语对白视频| 九色亚洲精品在线播放| 国产亚洲精品第一综合不卡 | 久久国产精品男人的天堂亚洲 | 97在线人人人人妻| 赤兔流量卡办理| 精品人妻偷拍中文字幕| 搡女人真爽免费视频火全软件| 国产高清国产精品国产三级| 午夜精品国产一区二区电影| 免费人妻精品一区二区三区视频| 在线观看美女被高潮喷水网站| 成人二区视频| 男女无遮挡免费网站观看| 欧美人与善性xxx| 成人毛片60女人毛片免费| 搡女人真爽免费视频火全软件| 美女xxoo啪啪120秒动态图| 国语对白做爰xxxⅹ性视频网站| 一边摸一边做爽爽视频免费| 91成人精品电影| 亚洲经典国产精华液单| 国产 一区精品| 王馨瑶露胸无遮挡在线观看| 中文字幕人妻熟人妻熟丝袜美| 大香蕉久久网| 亚洲av国产av综合av卡| 爱豆传媒免费全集在线观看| 精品久久久精品久久久| 亚洲精品456在线播放app| 午夜激情av网站| 黑人巨大精品欧美一区二区蜜桃 | 自线自在国产av| 伦精品一区二区三区| 亚洲激情五月婷婷啪啪| 国产精品偷伦视频观看了| 夫妻午夜视频| 欧美日韩av久久| 一级毛片aaaaaa免费看小| 日韩av在线免费看完整版不卡| 看非洲黑人一级黄片| 黑人欧美特级aaaaaa片| 亚洲成人手机| 欧美日韩亚洲高清精品| 国产欧美亚洲国产| 国产极品天堂在线| 少妇的逼好多水| 高清欧美精品videossex| 在线亚洲精品国产二区图片欧美 | av又黄又爽大尺度在线免费看| 另类精品久久| 这个男人来自地球电影免费观看 | 一边摸一边做爽爽视频免费| 18+在线观看网站| 免费观看av网站的网址| av免费观看日本| 狂野欧美激情性xxxx在线观看| 欧美日韩国产mv在线观看视频| 黑人巨大精品欧美一区二区蜜桃 | 午夜视频国产福利| 三级国产精品欧美在线观看| 国产精品久久久久成人av| 不卡视频在线观看欧美| 黄片播放在线免费| 一个人免费看片子| 欧美三级亚洲精品| 亚洲精品色激情综合| 国产日韩一区二区三区精品不卡 | 亚洲av综合色区一区| 少妇的逼水好多| 欧美日韩成人在线一区二区| 十分钟在线观看高清视频www| av不卡在线播放| av在线老鸭窝| 人体艺术视频欧美日本| 国产精品国产三级国产av玫瑰| 亚洲精品国产av蜜桃| 大香蕉久久成人网| 国产亚洲一区二区精品| 精品国产露脸久久av麻豆| 日本vs欧美在线观看视频| 人妻人人澡人人爽人人| 久久精品国产鲁丝片午夜精品| 久久久久国产网址| 国产一区二区三区av在线| 9色porny在线观看| 99热这里只有精品一区| 亚洲成人av在线免费| 亚洲国产av新网站| 精品少妇内射三级| 欧美丝袜亚洲另类| 岛国毛片在线播放| 精品少妇久久久久久888优播| 日韩一区二区视频免费看| 免费不卡的大黄色大毛片视频在线观看| 欧美成人午夜免费资源| 日本wwww免费看| 中文字幕亚洲精品专区| 久久精品久久久久久噜噜老黄| 麻豆乱淫一区二区| 国产欧美亚洲国产| av在线观看视频网站免费| 国产视频首页在线观看| 一级黄片播放器| 午夜福利,免费看| 日本av免费视频播放| 热re99久久国产66热| 涩涩av久久男人的天堂| 久久人妻熟女aⅴ| 国产成人免费观看mmmm| 老司机亚洲免费影院| 青春草视频在线免费观看| 91aial.com中文字幕在线观看| 九色亚洲精品在线播放| 久久99一区二区三区| xxxhd国产人妻xxx| 极品少妇高潮喷水抽搐| 日本-黄色视频高清免费观看| 亚洲av成人精品一二三区| 一区二区三区四区激情视频| 内地一区二区视频在线| 精品国产露脸久久av麻豆| 亚洲怡红院男人天堂| 国产免费一区二区三区四区乱码| 成年av动漫网址| 老司机影院毛片| 啦啦啦在线观看免费高清www| 2021少妇久久久久久久久久久| 成人免费观看视频高清| 好男人视频免费观看在线| 亚洲精品美女久久av网站| 亚洲美女搞黄在线观看| 国产白丝娇喘喷水9色精品| 一级毛片 在线播放| 九色亚洲精品在线播放| 日韩电影二区| 久久人妻熟女aⅴ| 国产精品国产三级国产av玫瑰| 夜夜骑夜夜射夜夜干| 成人综合一区亚洲| 永久网站在线| √禁漫天堂资源中文www| 亚洲成人一二三区av| 在线精品无人区一区二区三| 欧美日韩视频精品一区| 在线观看美女被高潮喷水网站| 久久久欧美国产精品| 男女国产视频网站| 久久久欧美国产精品| 亚洲一级一片aⅴ在线观看| 麻豆精品久久久久久蜜桃| 亚洲精品一二三| 插逼视频在线观看| 欧美精品一区二区免费开放| 在线观看美女被高潮喷水网站| 老熟女久久久| 日韩一本色道免费dvd| 国产精品欧美亚洲77777| 18禁观看日本| 亚洲av国产av综合av卡| 男女高潮啪啪啪动态图| 国内精品宾馆在线| 日韩在线高清观看一区二区三区| 大片电影免费在线观看免费| 午夜免费男女啪啪视频观看| 国产精品欧美亚洲77777| 丝瓜视频免费看黄片| 三级国产精品欧美在线观看| 日本av手机在线免费观看| 午夜精品国产一区二区电影| 国产精品一区二区在线观看99| 3wmmmm亚洲av在线观看| 能在线免费看毛片的网站| 欧美成人午夜免费资源| 亚洲国产精品一区二区三区在线| 国产高清有码在线观看视频| 久久毛片免费看一区二区三区| 欧美国产精品一级二级三级| 熟女av电影| 免费大片18禁| 久久鲁丝午夜福利片| 91在线精品国自产拍蜜月| 女性生殖器流出的白浆| 美女xxoo啪啪120秒动态图| 在线观看人妻少妇| 日本-黄色视频高清免费观看| 久久久久久久精品精品| 伊人久久国产一区二区| 国产精品一区二区在线观看99| 亚洲内射少妇av| 人妻系列 视频| 大陆偷拍与自拍| 国产精品人妻久久久影院| 性色av一级| 狠狠婷婷综合久久久久久88av| 亚洲精品国产色婷婷电影| 高清毛片免费看| 精品人妻偷拍中文字幕| 女性被躁到高潮视频| 美女大奶头黄色视频| a级毛色黄片| 哪个播放器可以免费观看大片| 国产欧美日韩一区二区三区在线 | 18禁在线无遮挡免费观看视频| 国产淫语在线视频| 日韩不卡一区二区三区视频在线| 丝袜脚勾引网站| 国产不卡av网站在线观看| 国产伦精品一区二区三区视频9| 精品一区二区三区视频在线| 女人久久www免费人成看片| 男女国产视频网站| 午夜福利视频精品| 丝袜脚勾引网站| 国产成人精品福利久久| 午夜激情久久久久久久| 内地一区二区视频在线| 亚洲av国产av综合av卡| 国产免费视频播放在线视频| 青春草视频在线免费观看| 亚洲怡红院男人天堂| 丰满饥渴人妻一区二区三| 日韩一本色道免费dvd| 亚洲四区av| 全区人妻精品视频| 亚洲婷婷狠狠爱综合网| 黄色配什么色好看| 丰满乱子伦码专区| 十八禁高潮呻吟视频| 国产黄频视频在线观看| 夜夜骑夜夜射夜夜干| 免费av不卡在线播放| 在线观看美女被高潮喷水网站| av黄色大香蕉| 亚洲色图 男人天堂 中文字幕 | 我的女老师完整版在线观看| 国产精品久久久久久久久免| 这个男人来自地球电影免费观看 | av一本久久久久| 18禁动态无遮挡网站| 成人黄色视频免费在线看| 久久久久国产精品人妻一区二区| 免费人成在线观看视频色| av播播在线观看一区| 夜夜骑夜夜射夜夜干| 国产成人freesex在线| 精品一区在线观看国产| 大又大粗又爽又黄少妇毛片口| 菩萨蛮人人尽说江南好唐韦庄| 国产亚洲精品第一综合不卡 | 91在线精品国自产拍蜜月| 久久av网站| 丰满乱子伦码专区| 日韩精品免费视频一区二区三区 | 精品酒店卫生间| a级毛片免费高清观看在线播放| 精品久久久噜噜| 一区在线观看完整版| 插阴视频在线观看视频| 中国美白少妇内射xxxbb| 色哟哟·www| videos熟女内射| 欧美bdsm另类| 久久99热6这里只有精品| 91国产中文字幕| 乱人伦中国视频| 一级a做视频免费观看| 国产黄色免费在线视频| 国产爽快片一区二区三区| 亚洲国产欧美在线一区| 欧美+日韩+精品| 国产综合精华液| 国产精品99久久久久久久久| 丰满乱子伦码专区| av在线app专区| 少妇被粗大猛烈的视频| 曰老女人黄片| 精品国产露脸久久av麻豆| 美女福利国产在线| 国产精品一区二区三区四区免费观看| 亚洲色图综合在线观看| 日韩成人伦理影院| 国产亚洲欧美精品永久| 日日啪夜夜爽| 久久精品久久久久久噜噜老黄| 中文字幕制服av| 男人操女人黄网站| 日本黄色片子视频| 国产精品国产三级专区第一集| 麻豆乱淫一区二区| 日韩制服骚丝袜av| 久久毛片免费看一区二区三区| 久久韩国三级中文字幕| 国产成人精品久久久久久| av女优亚洲男人天堂| 久久热精品热| 老司机影院成人| 大话2 男鬼变身卡| 在线观看免费高清a一片| 欧美激情国产日韩精品一区| 亚洲欧洲日产国产| 成年女人在线观看亚洲视频| 午夜久久久在线观看| 久久婷婷青草| 亚洲美女视频黄频| 如何舔出高潮| 日本av免费视频播放| 人妻系列 视频| 亚洲一区二区三区欧美精品| 欧美精品亚洲一区二区| 国产精品 国内视频| 久久久久国产精品人妻一区二区| 国产国语露脸激情在线看| 精品人妻在线不人妻| 高清不卡的av网站| 高清午夜精品一区二区三区| 免费日韩欧美在线观看| 国产女主播在线喷水免费视频网站| a级毛片黄视频| 日韩人妻高清精品专区| 亚洲欧美清纯卡通| 免费av不卡在线播放| 亚洲欧美日韩卡通动漫| 少妇高潮的动态图| videossex国产| 免费观看av网站的网址| 亚洲av免费高清在线观看| av.在线天堂| 成年人午夜在线观看视频| 肉色欧美久久久久久久蜜桃| 国产在视频线精品| 色94色欧美一区二区| 高清不卡的av网站| 女性生殖器流出的白浆| 国产黄片视频在线免费观看| 伦理电影大哥的女人| 午夜老司机福利剧场| 成年美女黄网站色视频大全免费 | 在线观看免费日韩欧美大片 | 久久综合国产亚洲精品| 亚洲欧美精品自产自拍| 亚洲精品国产av蜜桃| a级毛片免费高清观看在线播放| 色网站视频免费| 妹子高潮喷水视频| 一级片'在线观看视频| 日韩熟女老妇一区二区性免费视频| 少妇 在线观看| 久久久久久久久大av| 久久av网站| 日韩欧美精品免费久久| av网站免费在线观看视频| 日本黄色片子视频| 国产熟女午夜一区二区三区 | 国产欧美日韩综合在线一区二区| 亚洲成人一二三区av| 免费观看a级毛片全部| 三上悠亚av全集在线观看| 国产一区二区在线观看av| 91成人精品电影| 18禁裸乳无遮挡动漫免费视频| 夜夜爽夜夜爽视频| 少妇的逼好多水| 日韩视频在线欧美| 亚州av有码| av视频免费观看在线观看| 在线观看国产h片| 在线精品无人区一区二区三| 99久久综合免费| 我的老师免费观看完整版| 三级国产精品片| 久久久久视频综合| 国产精品.久久久| 麻豆精品久久久久久蜜桃| 国产男人的电影天堂91| 十八禁网站网址无遮挡| 亚洲精品国产av成人精品| 日韩一本色道免费dvd| 亚洲成人一二三区av| 少妇丰满av| 亚洲美女搞黄在线观看| 国产精品国产三级国产av玫瑰| 国产成人精品一,二区| 国产精品免费大片| 欧美老熟妇乱子伦牲交| 人人妻人人添人人爽欧美一区卜|