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

    體系結(jié)構(gòu)內(nèi)可編程數(shù)據(jù)平面方法

    2017-02-21 11:45:03馬久躍余子濠包云崗孫凝暉
    關(guān)鍵詞:功能

    馬久躍 余子濠 包云崗 孫凝暉

    1(中國(guó)科學(xué)院計(jì)算技術(shù)研究所 北京 100190)2 (中國(guó)科學(xué)院大學(xué) 北京 100049)(baoyg@ict.ac.cn)

    體系結(jié)構(gòu)內(nèi)可編程數(shù)據(jù)平面方法

    馬久躍1,2余子濠1,2包云崗1孫凝暉1

    1(中國(guó)科學(xué)院計(jì)算技術(shù)研究所 北京 100190)2(中國(guó)科學(xué)院大學(xué) 北京 100049)(baoyg@ict.ac.cn)

    隨著互聯(lián)網(wǎng)與云計(jì)算的發(fā)展,越來越多的應(yīng)用被從本地遷移到云端,這些應(yīng)用最終被運(yùn)行在共享的數(shù)據(jù)中心.受到數(shù)據(jù)中心應(yīng)用復(fù)雜并且需求多變特征的影響,傳統(tǒng)體系結(jié)構(gòu)中的部分硬件部件(如共享末級(jí)緩存、內(nèi)存控制器、IO控制器等)固定功能的設(shè)計(jì)不能很好地滿足這些混合多應(yīng)用的場(chǎng)景需求.為滿足這類應(yīng)用場(chǎng)景的需求,計(jì)算機(jī)體系結(jié)構(gòu)需要提供一種可編程硬件機(jī)制,使得硬件功能能夠根據(jù)應(yīng)用需求的變化進(jìn)行調(diào)整.提出了一種可編程數(shù)據(jù)平面方法:通過在現(xiàn)有硬件部件中增加可編程處理器,使用執(zhí)行固件代碼的方式對(duì)硬件的請(qǐng)求進(jìn)行處理,并通過更新數(shù)據(jù)平面處理器固件的方式實(shí)現(xiàn)硬件功能的擴(kuò)展.該方法在FPGA原型系統(tǒng)中進(jìn)行驗(yàn)證,其結(jié)果表明,該方法并沒有給系統(tǒng)性能帶來嚴(yán)重的影響,只使用有限的資源即可為硬件增加更為靈活的可編程能力,使其能夠適應(yīng)應(yīng)用需求復(fù)雜多變的場(chǎng)景.

    可編程;處理器;數(shù)據(jù)中心;服務(wù)器;服務(wù)質(zhì)量

    當(dāng)前數(shù)據(jù)中心正面臨著資源利用率與服務(wù)質(zhì)量相沖突的挑戰(zhàn).使用虛擬化、容器等負(fù)載融合的方法將多個(gè)應(yīng)用運(yùn)行在同一服務(wù)器中,可以有效地提高服務(wù)器的資源利用率;但是在這一過程中,無管理的軟硬件資源共享帶來了不可預(yù)測(cè)的性能波動(dòng).為了保障延遲敏感型應(yīng)用的服務(wù)質(zhì)量,在共享的數(shù)據(jù)中心環(huán)境下,管理員或開發(fā)者通常會(huì)為這些應(yīng)用獨(dú)占或過量分配資源,造成了非常低的數(shù)據(jù)中心資源利用率,只有6%[1]~12%[2].

    針對(duì)這種由于共享軟硬資源競(jìng)爭(zhēng)所帶來的干擾問題,一些現(xiàn)有工作在軟件層次,通過分析應(yīng)用的競(jìng)爭(zhēng)點(diǎn),使用調(diào)度[3-6]、隔離[7-8]等方案嘗試解決該問題.但由于數(shù)據(jù)中心中海量應(yīng)用的特點(diǎn),對(duì)海量的應(yīng)用組合進(jìn)行競(jìng)爭(zhēng)點(diǎn)的判別與消除是不切實(shí)際的;同時(shí)由于數(shù)據(jù)中心應(yīng)用不斷變化的動(dòng)態(tài)性特點(diǎn),資源競(jìng)爭(zhēng)點(diǎn)也是隨時(shí)在發(fā)生變化,因此這些軟件技術(shù)很難在通用數(shù)據(jù)中心發(fā)揮作用.另一些研究提出在硬件層次上實(shí)現(xiàn)資源隔離與劃分(如末級(jí)緩存容量劃分[9-13]、內(nèi)存通道劃分[14-15]等),但由于缺少統(tǒng)一的接口,這些工作通常只關(guān)注單一的資源,而沒有考慮到資源之間的相關(guān)聯(lián);同時(shí)由于當(dāng)前體系結(jié)構(gòu)在共享硬件層次的應(yīng)用語義信息缺失,使得其在硬件層次無法區(qū)分不同的應(yīng)用需求,造成在硬件層次很難實(shí)現(xiàn)硬件資源的細(xì)粒度管理.

    構(gòu)建高效的數(shù)據(jù)中心需要一種軟硬件協(xié)調(diào)的機(jī)制,而傳統(tǒng)計(jì)算機(jī)體系結(jié)構(gòu)所提供的指令集架構(gòu)(ISA)抽象不能滿足這一需求,正如白皮書《21st Century Computer Architecture》[16]中所指出的:我們需要一種高層接口將程序員或編譯器信息封裝并傳遞給下層硬件,以獲得更好的性能或?qū)崿F(xiàn)更多應(yīng)用相關(guān)的功能.之前的工作PARD[17]提出了一種資源管理可編程體系結(jié)構(gòu),通過在計(jì)算機(jī)內(nèi)部請(qǐng)求附加應(yīng)用標(biāo)簽,在共享部件中實(shí)現(xiàn)應(yīng)用區(qū)分;并通過控制平面對(duì)來自不同應(yīng)用的請(qǐng)求進(jìn)行不同的處理,實(shí)現(xiàn)在同一服務(wù)器上為不同應(yīng)用提供區(qū)分化服務(wù);同時(shí)提供集中式的資源管理平臺(tái),實(shí)現(xiàn)對(duì)不同部件的資源使用進(jìn)行統(tǒng)一管理.但它使用的基于表的控制平面設(shè)計(jì)并不能很好地適應(yīng)應(yīng)用需求的變化,這種設(shè)計(jì)只提供了對(duì)硬件已有功能的配置,需要在硬件部件上靜態(tài)實(shí)現(xiàn)這些功能并對(duì)外提供配置接口,且功能一旦實(shí)現(xiàn)無法根據(jù)應(yīng)用的需求進(jìn)行調(diào)整.

    然而在實(shí)際場(chǎng)景中,應(yīng)用會(huì)對(duì)底層的硬件不斷提出不同的需求,如更換Cache控制器的緩存替換策略、更改內(nèi)存控制器的地址映射方式與調(diào)度策略、為IO控制器增加數(shù)據(jù)加密或壓縮的功能等.當(dāng)前的這種靜態(tài)的數(shù)據(jù)平面設(shè)計(jì)不能很好地滿足這類需求,需要更換硬件才能實(shí)現(xiàn),而這需要很長(zhǎng)的周期,無法適應(yīng)數(shù)據(jù)中心這種需要不斷變化的場(chǎng)景.

    在學(xué)術(shù)界中,已有一些研究通過在硬件上增加可編程機(jī)制,實(shí)現(xiàn)根據(jù)應(yīng)用需求對(duì)硬件策略進(jìn)行調(diào)整的功能.如體系結(jié)構(gòu)領(lǐng)域已經(jīng)提出在內(nèi)存控制器[18-20]、Cache與一致性協(xié)議[21-24]上使用可編程邏輯來提供更靈活的功能,但這些只考慮了如何為單一應(yīng)用提供更多的可編程支持,不能很好地在數(shù)據(jù)中心這種多應(yīng)用場(chǎng)景下使用.在網(wǎng)絡(luò)領(lǐng)域中也有工作提出在SDN數(shù)據(jù)平面上增加可編程邏輯的方案,以提高SDN數(shù)據(jù)平面的可編程性[25-28],通過數(shù)據(jù)平面的重編程,達(dá)到對(duì)更多數(shù)據(jù)包的檢測(cè)與處理的目的.PARD的一個(gè)重要貢獻(xiàn)是將網(wǎng)絡(luò)概念引入計(jì)算機(jī)體系結(jié)構(gòu),本文希望將SDN數(shù)據(jù)平面中這種高級(jí)的可編程機(jī)制引入到計(jì)算機(jī)體系結(jié)構(gòu)中,實(shí)現(xiàn)更靈活的控制.

    綜上,本文提出了一種體系結(jié)構(gòu)內(nèi)可編程數(shù)據(jù)平面架構(gòu),通過在硬件部件中增加處理器邏輯,使用執(zhí)行固件代碼的方式對(duì)硬件部件的請(qǐng)求進(jìn)行處理,并通過更新數(shù)據(jù)平面處理器固件的方式實(shí)現(xiàn)數(shù)據(jù)平面功能的擴(kuò)展,以增強(qiáng)計(jì)算機(jī)體系結(jié)構(gòu)的可編程靈活度,使其能夠適應(yīng)更加復(fù)雜多變的數(shù)據(jù)中心應(yīng)用場(chǎng)景.

    1 研究背景與關(guān)鍵問題

    1.1 PARD與區(qū)分化服務(wù)

    PARD實(shí)現(xiàn)區(qū)分化服務(wù)(DiffServ)的關(guān)鍵機(jī)制是:1)使用標(biāo)簽區(qū)分應(yīng)用;2)控制平面與數(shù)據(jù)平面分離,將請(qǐng)求處理與策略控制分離;3)集中式的策略管理與反饋機(jī)制.為實(shí)現(xiàn)以上3個(gè)關(guān)鍵機(jī)制,PARD體系結(jié)構(gòu)由4個(gè)部分組成,如圖1所示:

    Fig. 1 PARD architecture overview[17]圖1 PARD總體架構(gòu)圖[17]

    ① 標(biāo)簽機(jī)制.為了使硬件資源能夠區(qū)分來自不同應(yīng)用的請(qǐng)求,PARD為給每個(gè)應(yīng)用分配一個(gè)區(qū)分服務(wù)標(biāo)識(shí)符(DS-id),同時(shí)在CPU核心和IO設(shè)備等所有請(qǐng)求源中增加一個(gè)DS-id標(biāo)簽寄存器.這些寄存器用于給Cache訪問請(qǐng)求、訪存請(qǐng)求、DMA請(qǐng)求以及中斷請(qǐng)求附加上標(biāo)簽.請(qǐng)求在發(fā)出源附加上DS-id標(biāo)簽后,這個(gè)標(biāo)簽將跟隨請(qǐng)求在整個(gè)體系結(jié)構(gòu)中傳播.

    ② 可編程控制平面.為每個(gè)共享硬件資源增加一個(gè)可編程控制平面,以利用請(qǐng)求中所包含的DS-id標(biāo)簽實(shí)現(xiàn)區(qū)分化服務(wù).當(dāng)硬件接收到請(qǐng)求后,控制平面首先會(huì)根據(jù)請(qǐng)求的DS-id對(duì)其進(jìn)行處理,并產(chǎn)生發(fā)送到下一級(jí)硬件的請(qǐng)求,同時(shí)將DS-id附加到新的請(qǐng)求上.由于不同硬件的行為差別很大,它們對(duì)DS-id的使用方式也不同,例如Cache使用DS-id實(shí)現(xiàn)容量劃分,內(nèi)存和IO控制器使用其實(shí)現(xiàn)帶寬分配.PARD為不同的硬件部件提供了一個(gè)通用的控制平面結(jié)構(gòu),該控制平面結(jié)構(gòu)包括3個(gè)由DS-id索引的控制表:參數(shù)表(parameter table),用于保存資源分配策略;統(tǒng)計(jì)表(statistics table),用于記錄資源使用信息;用于存放性能觸發(fā)條件的觸發(fā)表(trigger table).除此之外,該控制平面還包括一個(gè)可編程接口和一個(gè)連接到集中式平臺(tái)資源管理模塊(PRM)的中斷線.

    ③ 平臺(tái)資源管理模塊(PRM).與傳統(tǒng)服務(wù)器中的IPMI[6]類似,PARD包含一個(gè)集中式平臺(tái)資源管理模塊來連接所有的控制平面和標(biāo)簽寄存器(參見圖1中的虛線).PRM是一個(gè)包含處理器、內(nèi)存、Flash存儲(chǔ)、以太網(wǎng)適配器以及多個(gè)控制平面適配器(control plane adaptor, CPA)的嵌入式SoC系統(tǒng).其上運(yùn)行基于Linux的固件,將控制平面抽象為設(shè)備文件樹,使用基于文件樹的統(tǒng)一編程接口來訪問控制平面,并為管理員提供了“Trigger→Action”編程方法來部署資源管理策略.

    ④ 可編程方法.為了方便管理員通過對(duì)控制平面進(jìn)行編程來部署資源管理策略,PARD提供了一種“Trigger→Action”編程方法.如圖2所示,對(duì)于一個(gè)DS-id,可以定義多個(gè)“Trigger→Action”規(guī)則,每個(gè)規(guī)則針對(duì)特定的硬件資源(如基于Cache缺失率等性能指標(biāo)),并且被存放在觸發(fā)表中;觸發(fā)動(dòng)作可以使用任何語言來編寫,實(shí)現(xiàn)策略調(diào)整.這些規(guī)則被安裝在PRM固件中,在PRM中可以對(duì)所有的控制平面進(jìn)行管理,因此觸發(fā)規(guī)則和動(dòng)作可以被指定給不同的資源.例如,如果一個(gè)觸發(fā)規(guī)則被設(shè)置為監(jiān)控內(nèi)存帶寬,由于內(nèi)存帶寬的變化可能與Cache缺失率有關(guān),因此它的動(dòng)作可以定義為Cache容量調(diào)整,通過調(diào)整Cache容量來影響Cache缺失率,進(jìn)一步反饋到內(nèi)存帶寬.數(shù)據(jù)中心管理員負(fù)責(zé)根據(jù)SLA為不同的資源管理策略預(yù)先定義一系列動(dòng)作和觸發(fā)規(guī)則,用戶可根據(jù)他們的QoS需求選擇適當(dāng)?shù)腟LA.

    Fig. 2 Programmable data plane architecture圖2 可編程數(shù)據(jù)平面架構(gòu)

    1.2 可編程數(shù)據(jù)平面抽象

    在PARD中,計(jì)算機(jī)的硬件部件被抽象為數(shù)據(jù)平面與控制平面2部分,其中數(shù)據(jù)平面用于執(zhí)行數(shù)據(jù)操作,而控制平面用于對(duì)數(shù)據(jù)平面的策略進(jìn)行管理.以緩存控制器為例,數(shù)據(jù)平面中包含用緩存數(shù)據(jù)的DataArray與記錄緩存內(nèi)容的TagArray,以及替換策略的實(shí)現(xiàn),其控制平面包含替換策略的參數(shù)、統(tǒng)計(jì)信息等;對(duì)于內(nèi)存控制器而言,數(shù)據(jù)平面用于接收上層訪存請(qǐng)求,并將其轉(zhuǎn)換為內(nèi)存地址,發(fā)送到內(nèi)存陣列中,其控制平面用于控制地址映射與訪存調(diào)度策略.從以上2個(gè)例子我們可以發(fā)現(xiàn),PARD控制平面的可編程主要體現(xiàn)在其對(duì)數(shù)據(jù)平面所提供功能的控制,而數(shù)據(jù)平面所提供的功能在其設(shè)計(jì)完成后即已確定,如果需要增加額外的功能,則需要對(duì)數(shù)據(jù)平面重新進(jìn)行設(shè)計(jì),并對(duì)控制平面暴露相應(yīng)的接口.因此,控制平面的可編程能力受到數(shù)據(jù)平面所能提供功能的限制.

    另一方面,PARD中的“Trigger→Action”機(jī)制在響應(yīng)時(shí)間上存在瓶頸:每當(dāng)觸發(fā)條件發(fā)生后,需要經(jīng)過控制平面網(wǎng)絡(luò)將該事件傳遞到PRM,由運(yùn)行在PRM中的軟件代碼來更新策略,并通過控制平面網(wǎng)絡(luò)寫回到控制平面中.由于受到控制平面網(wǎng)絡(luò)延遲以及PRM軟件代碼延遲的影響,該機(jī)制并不能達(dá)到特別高的響應(yīng)速度;同時(shí)并非所有的觸發(fā)條件發(fā)生后都需要在PRM進(jìn)行全局處理,完全可以預(yù)定義一些動(dòng)作,在控制平面本地完成處理.

    為解決以上2個(gè)問題,本文提出的可編程數(shù)據(jù)平面架構(gòu)如圖2所示.在PARD中所提出的控制平面數(shù)據(jù)平面模型基礎(chǔ)上,在數(shù)據(jù)平面中增加了多個(gè)可編程處理器,連接數(shù)據(jù)平面中其他的邏輯部分,并通過其中的固件代碼對(duì)數(shù)據(jù)進(jìn)行處理.控制平面依然使用3張控制表作為對(duì)外訪問的接口,通過控制平面網(wǎng)絡(luò)與集中式的平臺(tái)資源管理模塊通信.由于數(shù)據(jù)平面部件能夠執(zhí)行代碼,因此可以使用軟件代碼來實(shí)現(xiàn)反饋調(diào)節(jié),因此觸發(fā)邏輯已經(jīng)從控制平面中被移除.

    要實(shí)現(xiàn)以上可編程數(shù)據(jù)平面架構(gòu),需要解決3個(gè)問題:1)如何為不同硬件部件的數(shù)據(jù)平面增加處理器邏輯;2)處理器如何設(shè)計(jì),如何與控制平面進(jìn)行通信;3)處理器邏輯如何編程.本文后續(xù)章節(jié)將針對(duì)以上3個(gè)問題進(jìn)行分別闡述.

    2 可編程數(shù)據(jù)平面

    在討論數(shù)據(jù)平面處理器設(shè)計(jì)前,我們首先以內(nèi)存控制器和Cache控制器為例,討論可編程數(shù)據(jù)平面的設(shè)計(jì).

    2.1 內(nèi)存控制器

    當(dāng)前的處理器芯片通常會(huì)集成2~4個(gè)獨(dú)立的內(nèi)存控制器,每個(gè)控制器使用獨(dú)立的內(nèi)存通道.每個(gè)內(nèi)存通道連接到多個(gè)可并行訪問的rank,而每個(gè)rank又是由多個(gè)共享地址與數(shù)據(jù)總線的二維存儲(chǔ)陣列(bank)組成.內(nèi)存控制器的主要工作就是接收上游的讀寫請(qǐng)求,并將其轉(zhuǎn)換為下游的DRAM命令,完成數(shù)據(jù)傳輸.以內(nèi)存控制器作為數(shù)據(jù)平面,可以在地址映射和訪存調(diào)度2個(gè)位置增加可編程功能.

    1) 地址映射.地址映射分為2部分,首先是通過處理器的頁(yè)表機(jī)制實(shí)現(xiàn)了從虛擬地址空間到物理地址空間的映射,虛擬化場(chǎng)景的出現(xiàn)在這一基礎(chǔ)上又增加了擴(kuò)展頁(yè)表EPT機(jī)制,額外增加了一級(jí)虛擬機(jī)物理地址到主機(jī)物理地址的映射.之后是內(nèi)存控制器將處理器的物理地址空間映射到DRAM陣列中,通常使用靜態(tài)地址映射,通過某種固定的規(guī)則將物理地址空間映射到DRAM的bank,row,column中.

    在PARD架構(gòu)中,通過在內(nèi)存控制器前增加MMU模塊,通過映射表將不同應(yīng)用標(biāo)簽的訪存請(qǐng)求進(jìn)行隔離.但這種方式只實(shí)現(xiàn)了一種固定的地址映射機(jī)制,即只能進(jìn)行連續(xù)的大塊地址分配,無法實(shí)現(xiàn)EPT等技術(shù)所支持的細(xì)粒度內(nèi)存空間管理.為解決這一問題,可以將靜態(tài)的MMU模塊替換為一個(gè)處理器,能夠在其中編寫軟件代碼實(shí)現(xiàn)地址空間的映射.通過這種方式除了可以完成PARD中MMU的功能外,還可以實(shí)現(xiàn)更細(xì)粒度的空間管理,也可以實(shí)現(xiàn)現(xiàn)有虛擬化平臺(tái)中常見的基于內(nèi)容的內(nèi)存空間壓縮機(jī)制.除此之外,該處理器還可以通過對(duì)請(qǐng)求數(shù)據(jù)進(jìn)行額外處理,以在硬件層面實(shí)現(xiàn)更復(fù)雜的如數(shù)據(jù)加密、敏感詞過濾等高級(jí)功能.

    2) 訪存調(diào)度.在PARD的內(nèi)存控制平面中,只實(shí)現(xiàn)了簡(jiǎn)單的基于優(yōu)先級(jí)的訪存調(diào)度,可以通過增加處理器的方式實(shí)現(xiàn)更為靈活的調(diào)度策略;同時(shí)也可以像PARDIS[18]工作一樣,將處理器加入到內(nèi)存控制器內(nèi)部的請(qǐng)求調(diào)度模塊中,根據(jù)不同應(yīng)用的需求實(shí)現(xiàn)不同的DRAM調(diào)度策略.

    2.2 Cache控制器

    Cache控制器的功能是對(duì)到達(dá)的請(qǐng)求進(jìn)行緩存操作,使用不同的替換策略對(duì)數(shù)據(jù)訪問熱度進(jìn)行預(yù)測(cè),以提高訪存命中率和系統(tǒng)性能.其核心主要包括TagArray,DataArray和替換策略3個(gè)部分.以Cache控制器作為數(shù)據(jù)平面,可以在容量劃分與替換策略2個(gè)角度增加可編程功能.

    1) 容量劃分.傳統(tǒng)的Cache并沒有提供容量劃分功能,因此不同應(yīng)用在共享Cache上運(yùn)行會(huì)造成不同程度的干擾.Intel最新提出的CAT技術(shù)[29]在Cache上增加了按路的緩存容量劃分機(jī)制.但按路劃分并非適合所有的應(yīng)用,可以通過使用處理器替換固定的SetWay映射方式,根據(jù)應(yīng)用實(shí)現(xiàn)更為靈活的緩存容量劃分方式.

    2) 替換策略.與容量劃分的需求類似,不同應(yīng)用的訪存模式不同,固定的緩存替換策略并不能很好地適應(yīng)所有應(yīng)用.因此使用處理器與軟件替換策略,與PARD的應(yīng)用區(qū)分機(jī)制結(jié)合,可以實(shí)現(xiàn)更為靈活高效的緩存.

    3 數(shù)據(jù)平面處理器體系結(jié)構(gòu)

    由于數(shù)據(jù)平面處理器位于請(qǐng)求處理的關(guān)鍵路徑上,為了保障系統(tǒng)的性能不受影響,需要從以下3個(gè)方面進(jìn)行考慮:

    1) 處理器需要執(zhí)行一系列指令才能完成對(duì)請(qǐng)求的處理,因此處理器需要工作在比其所在硬件部件更高頻率,以滿足硬件部件的性能需求;

    2) 處理器的固件代碼執(zhí)行需要確定性,因此不能使用cache結(jié)構(gòu),而是使用scratchpad memory代替;

    3) 由于高頻需求,因此處理器功能要盡可能簡(jiǎn)單,一些必需的復(fù)雜邏輯(如數(shù)據(jù)壓縮與加密等)通過外部加速器的方式進(jìn)行擴(kuò)展.

    基于以上需求,我們選擇使用RISC作為數(shù)據(jù)平面處理器的基礎(chǔ)架構(gòu),如圖3所示.我們首先對(duì)傳統(tǒng)RISC架構(gòu)進(jìn)行精簡(jiǎn),只保留其基本功能,以保證其頻率需求;同時(shí)增加scratchpad memory作為其指令與數(shù)據(jù)存儲(chǔ),增加請(qǐng)求緩存接口用于接入硬件設(shè)備中,增加控制平面接口用于連接控制平面.

    Fig. 3 Data plane processor block diagram圖3 數(shù)據(jù)平面處理器結(jié)構(gòu)圖

    從第2節(jié)可知,對(duì)于內(nèi)存控制器與Cache,該處理器的主要工作包括:對(duì)請(qǐng)求進(jìn)行調(diào)度、地址變換,對(duì)數(shù)據(jù)進(jìn)行處理,生成控制信號(hào)(如Cache緩存與替換).要完成以上工作,該處理器需要具備基本的處理器功能外,還需要在數(shù)據(jù)類型、存儲(chǔ)模型和指令上進(jìn)行擴(kuò)展.

    3.1 數(shù)據(jù)類型

    數(shù)據(jù)平面處理器中執(zhí)行的算法代碼大都只是對(duì)輸入的請(qǐng)求進(jìn)行處理,因此我們只有“無符號(hào)整數(shù)”和“請(qǐng)求”2種數(shù)據(jù)類型,如圖4所示.無符號(hào)整數(shù)的長(zhǎng)度與處理器的位寬相同,都被設(shè)置為其所屬硬件的位寬,以節(jié)約請(qǐng)求處理時(shí)位寬轉(zhuǎn)換的開銷,保障請(qǐng)求處理的效率.

    Fig. 4 Data types supported by the data plane processor圖4 數(shù)據(jù)平面處理器支持的數(shù)據(jù)類型

    “請(qǐng)求”是一個(gè)變長(zhǎng)數(shù)據(jù)類型,其中包含了固定的16位應(yīng)用標(biāo)簽(DS-id)以及變長(zhǎng)的請(qǐng)求數(shù)據(jù).以訪存請(qǐng)求為例,其中包含請(qǐng)求地址、長(zhǎng)度、線程號(hào)、讀寫類型、鎖與緩存狀態(tài)等其他一些標(biāo)志位;對(duì)于Cache替換請(qǐng)求,其中包含了請(qǐng)求地址、HitMiss標(biāo)記以及其他一些標(biāo)志位等信息.圖4給出了訪存請(qǐng)求以及Cache替換請(qǐng)求類型的示例.數(shù)據(jù)平面處理器本身并不關(guān)心請(qǐng)求類型中具體每個(gè)位的意義,而只是將其做一個(gè)整體進(jìn)行處理,對(duì)每個(gè)域的解析或修改由其運(yùn)行的固件代碼完成.

    3.2 存儲(chǔ)模型

    數(shù)據(jù)平面處理器中程序員可見的存儲(chǔ)結(jié)構(gòu)包含寄存器、請(qǐng)求緩存、scratchpad memory、IO地址空間4部分.與傳統(tǒng)的RISC架構(gòu)相同,數(shù)據(jù)平面處理器包含32個(gè)通用寄存器(r0~r31),用于進(jìn)行算數(shù)邏輯運(yùn)算,其中r0是常數(shù)0;除此之外,增加了4個(gè)用于保存“請(qǐng)求”類型數(shù)據(jù)的請(qǐng)求寄存器(s0~s3),可以通過請(qǐng)求緩存操作指令(rbget和rbput,參見3.3節(jié)),將請(qǐng)求輸入隊(duì)列中的請(qǐng)求讀取到該寄存器,或?qū)⒃摷拇嫫髦械恼?qǐng)求加入到請(qǐng)求輸出隊(duì)列中;請(qǐng)求寄存器不能直接參與算術(shù)邏輯計(jì)算,需要先將其部分?jǐn)?shù)據(jù)讀取到通用寄存器后才能執(zhí)行計(jì)算;請(qǐng)求寄存器之間可以直接進(jìn)行數(shù)據(jù)交換.處理器執(zhí)行的固件代碼與數(shù)據(jù)保存在scratchpad memory中,需要用戶自行管理.控制平面被映射為數(shù)據(jù)平面處理器的外設(shè),提供處理器的固件代碼ROM以及處理器的對(duì)外接口.

    3.3 指令集

    數(shù)據(jù)平面處理器使用RISC標(biāo)準(zhǔn)的算數(shù)邏輯、控制流和訪存指令,并在其基礎(chǔ)上額外增加了請(qǐng)求緩存操作指令,如表1所示:

    Table 1 Instruction Extension for Data Plane Processor

    請(qǐng)求緩存分為2部分:1)輸入緩存;2)輸出緩存.其中輸入緩存既可作為FIFO操作,也可基于DS-id進(jìn)行內(nèi)容尋址;輸出緩存只能作為FIFO操作.用于請(qǐng)求緩存操作的指令如圖5所示,指令rbput可以將指定請(qǐng)求寄存器中的請(qǐng)求添加到輸出緩存隊(duì)列末尾.指令rbget有2種使用方式:1)將輸入緩存作為FIFO,取出隊(duì)列頭的請(qǐng)求到請(qǐng)求寄存器;2)通過DS-id對(duì)請(qǐng)求進(jìn)行篩選,取出第1個(gè)滿足應(yīng)用標(biāo)簽的請(qǐng)求到請(qǐng)求寄存器.指令rbcp用于在請(qǐng)求寄存器之間傳送數(shù)據(jù).指令mfrb用于將請(qǐng)求寄存器中的部分?jǐn)?shù)據(jù)傳送到通用寄存器;指令mtrb與之相反,用于將通用寄存器的數(shù)據(jù)傳送到請(qǐng)求寄存器指定的位置.

    Fig. 5 Illustrative example of range address mapping圖5 段式地址映射示例

    3.4 固件代碼示例

    本節(jié)將以3段不同功能的固件代碼為例,介紹數(shù)據(jù)平面處理器的編程方法.

    3.4.1 內(nèi)存地址映射

    本示例用于實(shí)現(xiàn)PARD的內(nèi)存控制器控制平面所提供的地址映射功能,該功能只需要對(duì)訪存請(qǐng)求的地址進(jìn)行修改,而請(qǐng)求的數(shù)據(jù)無需修改,我們將地址與數(shù)據(jù)分開由2個(gè)處理器進(jìn)行處理,如圖5所示.對(duì)于數(shù)據(jù)處理器,其固件代碼只使用rbgetrbput指令對(duì)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā).地址處理器首先需要使用rbget指令獲取當(dāng)前請(qǐng)求到請(qǐng)求寄存器,并使用mfrb指令將其中的地址與DS-id讀取到通用寄存器;而后通過查表的方式獲得該請(qǐng)求對(duì)應(yīng)的映射目的地址的基址,對(duì)請(qǐng)求地址進(jìn)行變換,并使用mtrb指令將變換后的地址寫回到請(qǐng)求寄存器;最后通過rbput指令將新的訪存請(qǐng)求從處理器中送出,完成地址映射功能.

    3.4.2 訪存數(shù)據(jù)加密

    本示例實(shí)現(xiàn)訪存數(shù)據(jù)加密功能,由于數(shù)據(jù)加密操作通常需要耗費(fèi)很長(zhǎng)的時(shí)間,而且我們的數(shù)據(jù)平面處理器提供的指令集并不足以完成該操作.因此我們?cè)谕獠繉?shí)現(xiàn)了硬件AES加密模塊,并通過請(qǐng)求接口將其連接到數(shù)據(jù)平面處理器上,該結(jié)構(gòu)如圖6所示.基于該結(jié)構(gòu),數(shù)據(jù)處理器只需要將數(shù)據(jù)發(fā)送到AES模塊并等待其完成加密,將加密后的數(shù)據(jù)送出處理器即可.數(shù)據(jù)解密與加密過程類似,只需將數(shù)據(jù)發(fā)送到連接有解密模塊的請(qǐng)求接口即可.

    Fig. 6 Illustrative example of memory access encryption圖6 訪存數(shù)據(jù)加密示例

    3.4.3 緩存替換策略

    Fig. 7 Illustrative example of cache replacement policy圖7 緩存替換策略示例

    本示例實(shí)現(xiàn)緩存替換策略功能,使用可編程處理器替換Cache中原有的LRU模塊,使用軟件實(shí)現(xiàn)基于二叉樹的偽LRU替換策略,如圖7所示.處理器固件代碼工作流程如下:1)處理器收到Cache前端的請(qǐng)求以及HitMiss信息,如果緩存命中則無需任何額外操作;2)對(duì)于緩存缺失的請(qǐng)求,首先從地址中解析出tag與set信息,并將解析后的set地址發(fā)送到TagArray,等待其返回該set的信息;3)根據(jù)TagArray返回的set信息以及內(nèi)部的數(shù)據(jù)結(jié)構(gòu)生成替換目標(biāo);4)將替換目標(biāo)送出處理器.

    4 原型實(shí)現(xiàn)

    Fig. 8 Post placement&routing results (xc7vx690t device)圖8 FPGA原型系統(tǒng)的布局布線結(jié)果(xc7vx690t設(shè)備)

    為了驗(yàn)證可編程數(shù)據(jù)平面的思路,我們?cè)赬ilinx VC709(FPGA芯片型號(hào)為xc7vx690tffg1761-2)平臺(tái)上搭建了一個(gè)PARD的原型系統(tǒng),該原型系統(tǒng)使用4個(gè)MicroBlaze[30]作為處理器核,它們共享末級(jí)緩存和內(nèi)存控制器,使用AXI總線實(shí)現(xiàn)互連,CPU與共享末級(jí)緩存工作在133 MHz頻率,內(nèi)存總線工作在100 MHz頻率.系統(tǒng)的IO子系統(tǒng)包含2個(gè)以太網(wǎng)適配器和4個(gè)串口控制器;以太網(wǎng)適配器通過千兆光纖連接到外部交換機(jī),4個(gè)串口控制器在FPGA內(nèi)部連接到PRM的虛擬串口,通過虛擬PRM的虛擬串口與外部通信.PRM是基于MicroBlaze的SoC系統(tǒng),使用I2C總線作為控制平面網(wǎng)絡(luò)連接到所有的控制平面,通過以太網(wǎng)與串口與外部進(jìn)行通訊.該原型系統(tǒng)布局布線后的結(jié)果如圖8所示,其實(shí)現(xiàn)了PARD所描述的全硬件虛擬化功能,通過PRM中提供的固件將系統(tǒng)劃分為4個(gè)獨(dú)立的邏輯域,并可運(yùn)行未修改的Linux操作系統(tǒng).

    我們修改了該原型系統(tǒng)的內(nèi)存控制器部分,在其中增加了數(shù)據(jù)平面處理器(圖8箭頭所標(biāo)識(shí)的區(qū)域),通過軟件代碼的方式實(shí)現(xiàn)內(nèi)存地址映射功能.為簡(jiǎn)化實(shí)現(xiàn),我們使用精簡(jiǎn)配置的MicroBlaze實(shí)現(xiàn)數(shù)據(jù)平面處理器的功能.

    1) 將MicroBlaze配置為精簡(jiǎn)模式,去除所有與數(shù)據(jù)平面處理器無關(guān)的可選指令,如硬件FPU、乘法器除法器、擴(kuò)展指令等;關(guān)閉MMU、Cache、中斷異常等高級(jí)功能,只保留最基本的算術(shù)邏輯部分.通過精簡(jiǎn)配置,MicroBlaze系統(tǒng)的頻率從133 MHz提高到了250 MHz.

    2) 使用MicroBlaze提供的Stream Link接口作為數(shù)據(jù)平面處理器的請(qǐng)求接口.由于目前MicroBlaze的Stream Link接口是固定的32位AXIS接口,我們將多個(gè)Stream Link合并使用作為一個(gè)請(qǐng)求接口.

    3) MicroBlaze提供putget指令實(shí)現(xiàn)對(duì)Stream Link的接口,通過合并多個(gè)put或get指令即可實(shí)現(xiàn)請(qǐng)求緩存指令rbput和rbget.如表2所示,“請(qǐng)求”類型的長(zhǎng)度為12 B,我們使用3個(gè)MicroBlaze通用寄存器(r10~r12)作為請(qǐng)求寄存器,通過使用getput指令操作Stream Link接口fsl0~fsl2,實(shí)現(xiàn)rbget和rbput的功能.

    Table 2 Request Buffer Instructions Implemented by MicroBlaze

    對(duì)于該原型系統(tǒng),另一個(gè)需要考慮的問題是如何對(duì)數(shù)據(jù)平面處理器的固件代碼進(jìn)行更新,以實(shí)現(xiàn)“可編程”的功能.對(duì)數(shù)據(jù)平面處理器固件代碼更新可以分為兼容性更新與非兼容性更新.其中“兼容性”是指更新前后的代碼是否對(duì)數(shù)據(jù)平面的功能產(chǎn)生更改;對(duì)于非兼容性更新,需要首先關(guān)閉系統(tǒng)中所有正在運(yùn)行的邏輯域,并在數(shù)據(jù)平面處理器固件更新完成后重新啟動(dòng)邏輯域.對(duì)于兼容性更新,系統(tǒng)可實(shí)現(xiàn)無中斷運(yùn)行,但需要對(duì)數(shù)據(jù)平面處理器與硬件的接口處進(jìn)行額外的處理,如圖9所示,在收到更新固件命令后進(jìn)入Drain狀態(tài),阻止請(qǐng)求繼續(xù)發(fā)送到數(shù)據(jù)平面處理器,等待數(shù)據(jù)平面處理器處理完全部請(qǐng)求,并將請(qǐng)求隊(duì)列排空后,使處理器進(jìn)入Isolated隔離狀態(tài);之后完成對(duì)固件代碼的更新,新的固件代碼開始運(yùn)行后,開始進(jìn)行初始化操作,其中包括舊固件的狀態(tài)數(shù)據(jù)遷移步驟;在所有的初始化操作完成后,處理器恢復(fù)到就緒狀態(tài),重新開始處理請(qǐng)求,至此完成數(shù)據(jù)平面處理器固件代碼的兼容性更新操作.

    Fig. 9 Compatible firmware update for data plane processor圖9 數(shù)據(jù)平面處理器兼容性固件更新狀態(tài)圖

    5 性能評(píng)估

    通過使用可編程處理器來替代硬件邏輯,可以極大增強(qiáng)設(shè)備的可編程能力,但由于處理器位于硬件請(qǐng)求處理的關(guān)鍵路徑,我們需要對(duì)其性能與資源開銷進(jìn)行評(píng)估,以確保其不會(huì)對(duì)系統(tǒng)性能與開銷造成嚴(yán)重的影響.本節(jié)以內(nèi)存控制器的可編程數(shù)據(jù)平面為例,對(duì)其可編程數(shù)據(jù)平面的資源開銷進(jìn)行分析;并通過stream與memcached兩種應(yīng)用負(fù)載來評(píng)估其對(duì)系統(tǒng)性能的影響;最后我們分析了可編程數(shù)據(jù)平面架構(gòu)對(duì)PARD體系結(jié)構(gòu)中“Trigger→Action”機(jī)制反饋時(shí)間的優(yōu)化.

    5.1 系統(tǒng)延遲

    與硬件邏輯實(shí)現(xiàn)相比,可編程處理器在系統(tǒng)中引入了額外的開銷,我們通過內(nèi)存控制器上增加本文所提出的可編程數(shù)據(jù)平面架構(gòu),實(shí)現(xiàn)與PARD中相同的地址映射功能來驗(yàn)證該架構(gòu)對(duì)系統(tǒng)延遲的影響.

    系統(tǒng)延遲的大小與應(yīng)用和固件功能相關(guān),因此我們選擇與硬件實(shí)現(xiàn)完全相同的地址映射功能,并使用內(nèi)存帶寬測(cè)試工具stream和內(nèi)存鍵值存儲(chǔ)應(yīng)用memcached對(duì)系統(tǒng)的延遲進(jìn)行評(píng)估.由于受到FPGA設(shè)備的限制,在我們的平臺(tái)下MicroBlaze軟核處理器最高只能工作在250 MHz的頻率,我們選擇了100 MHz150 MHz200 MHz250 MHz四種不同的頻率對(duì)系統(tǒng)延遲進(jìn)行了評(píng)估.

    5.1.1 訪存帶寬

    在PARD的控制平面設(shè)計(jì)中,實(shí)現(xiàn)地址映射的控制表并沒有引入額外的延遲開銷,其性能與直接訪問內(nèi)存控制器相同,受到MicroBlaze處理器性能的限制,我們能夠得到25.1 MBps的訪存帶寬,如圖10所示:

    Fig. 10 Memory bandwidth of different processor configurations圖10 訪存帶寬對(duì)比

    由于地址映射功能只需要對(duì)請(qǐng)求地址進(jìn)行操作而無需對(duì)數(shù)據(jù)進(jìn)行修改,因此我們實(shí)現(xiàn)了一個(gè)簡(jiǎn)化版本的數(shù)據(jù)平面處理器(工作在100 MHz頻率),該處理器只對(duì)地址請(qǐng)求進(jìn)行處理,數(shù)據(jù)繞過處理器直接發(fā)送到內(nèi)存控制器.在使用該設(shè)計(jì)后測(cè)得的訪存帶寬是21.5 MBps,與非處理器實(shí)現(xiàn)相比并沒有特別明顯的下降.

    為了使數(shù)據(jù)平面處理器對(duì)訪存數(shù)據(jù)也能夠進(jìn)行操作,我們將數(shù)據(jù)請(qǐng)求也發(fā)送到處理器進(jìn)行處理,在100 MHz頻率下測(cè)得的訪存帶寬出現(xiàn)了明顯的下降,只有13 MBps.進(jìn)一步提高數(shù)據(jù)平面處理器的工作頻率,帶寬基本呈線性上升,在150 MHz時(shí)能夠得到15 MBps的訪存帶寬;在200 MHz時(shí),訪存帶寬提高到了20 MBps;而在250 MHz時(shí),訪存帶寬達(dá)到了22.5 MBps.由于受到FPGA硬件的限制,我們無法實(shí)現(xiàn)更高頻率的數(shù)據(jù)平面處理器,但數(shù)據(jù)平面處理器的功能十分精簡(jiǎn),如果使用ASIC工藝,可以得到更高的頻率,因此其處理器的性能不會(huì)成為系統(tǒng)的瓶頸.

    5.1.2 memcached 性能

    訪存帶寬只能作為系統(tǒng)性能的一個(gè)評(píng)估指標(biāo),系統(tǒng)運(yùn)行時(shí)的實(shí)際開銷要與應(yīng)用相關(guān)聯(lián).圖11給出了memcached在同硬件配置下的性能變化,與訪存帶寬的結(jié)果類似,memcached的性能與數(shù)據(jù)平面處理器頻率相關(guān),當(dāng)工作在100 MHz頻率時(shí),只能得到568RPS的性能,但如果處理器頻率提升到250 MHz,其性能(618RPS)與使用控制表的方案(628RPS)基本接近.

    Fig. 11 Performance of memcached benchmark圖11 memcached性能

    5.2 資源開銷

    可編程數(shù)據(jù)平面的資源開銷主要在處理器邏輯及其使用的scratchpad memory兩個(gè)方面.在通過配置精簡(jiǎn)后,MicroBlaze處理器所占用的資源量大大減少,其Slice(LUT和FF)占用只有完整配置的50%左右,scratchpad memory的容量由固件代碼的大小決定,當(dāng)前的實(shí)現(xiàn)中我們?yōu)槠浔A袅?2 KB的容量,在FPGA中占用了8個(gè)RAMB36資源.原型系統(tǒng)中主要的硬件部件與可編程數(shù)據(jù)平面占用的FPGA資源如表3所示.可以看到可編程數(shù)據(jù)平面在只占用有限的FPGA資源下,為硬件增加了更為靈活的可編程能力.

    Table 3 Resource Consumption for xc7vx690t Device

    5.3 反饋時(shí)間

    在PARD體系結(jié)構(gòu)基于表的控制平面設(shè)計(jì)中,“Trigger→Action”機(jī)制的反饋時(shí)間可以主要分為Trigger事件檢測(cè)、控制平面網(wǎng)絡(luò)傳送事件消息、PRM處理事件以及控制平面網(wǎng)絡(luò)傳送Action的參數(shù)修改4個(gè)階段.其中第1階段由控制表硬件邏輯完成,可以在有限的時(shí)鐘周期內(nèi)完成.第2階段和第4階段由于需要使用控制平面網(wǎng)絡(luò)傳送數(shù)據(jù),因此其響應(yīng)時(shí)間與控制平面網(wǎng)絡(luò)的速率相關(guān).在我們目前的原型系統(tǒng)中,由于使用了I2C總線作為控制平面網(wǎng)絡(luò),其最高速率為1 Mbps,對(duì)于一個(gè)32 b的事件消息以及一組96 b的參數(shù)修改消息,至少需要128 μs完成數(shù)據(jù)傳輸,如果需要傳輸更多的消息則需要消耗更長(zhǎng)的時(shí)間.第3階段PRM處理中,需要經(jīng)過控制平面驅(qū)動(dòng)、內(nèi)核、用戶態(tài)3個(gè)層次進(jìn)行處理,也需要消耗一定的時(shí)間.在采用可編程數(shù)據(jù)平面架構(gòu)后,對(duì)Trigger事件的反饋調(diào)節(jié)代碼可以直接在數(shù)據(jù)平面的固件代碼中完成,消除了PARD原有設(shè)計(jì)中需要經(jīng)過PRM進(jìn)行統(tǒng)一處理的時(shí)間消耗,實(shí)現(xiàn)更快速的反饋響應(yīng).

    6 總 結(jié)

    本文展示了一種計(jì)算機(jī)體系結(jié)構(gòu)內(nèi)可編程數(shù)據(jù)平面架構(gòu),通過在計(jì)算機(jī)硬件設(shè)備中增加可編程處理器,通過可編程處理器的固件代碼完成對(duì)硬件請(qǐng)求的處理,使硬件設(shè)備具備了更加靈活的可編程特性.我們的實(shí)驗(yàn)結(jié)果表明,這種可編程數(shù)據(jù)平面的設(shè)計(jì)并沒有增加特別大的性能開銷,可以用于在數(shù)據(jù)中心等需求不斷變化的場(chǎng)景中,根據(jù)應(yīng)用需要的變化調(diào)整硬件實(shí)現(xiàn)策略以達(dá)到最優(yōu)效果.

    [1]Kaplan J M, Forrest W, Kindler N. Revolutionizing data center energy efficiency[R]. New York: McKinsey & Company, 2008

    [2]Goasduff L, Pettey C. Gartner says efficient data center design can lead to 300 percent capacity growth in 60 percent less space[OL]. 2010[2016-02-26]. http:www.gartner.comnewsroomid1472714

    [3]Delimitrou C, Kozyrakis C. Paragon: QoS-aware scheduling for heterogeneous datacenters[C]Proc of the 18th Int Conf on Architectural Support for Programming Languages and Operating Systems (ASPLOS’13). New York: ACM, 2013: 77-88

    [4]Delimitrou C, Kozyrakis C. Quasar: Resource-efficient and QoSaware cluster management[C]Proc of the 19th Int Conf on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). New York: ACM, 2014: 127-144

    [5]Leverich J, Kozyrakis C. Reconciling high server utilization and sub-millisecond quality-of-service[C]Proc of the 2014 EuroSys Conf. New York: ACM, 2014: 4

    [6]Mars J, Tang Lingjia, Hundt R, et al. Heterogeneity in “homogeneous” warehouse-scale computers: A performance opportunity[J]. Computer Architecture Letters, 2011, 10(2): 29-32

    [7]Liu Lei, Cui Zehan, Xing Mingjie, et al. A software memory partition approach for eliminating bank-level interference in multicore systems[C]Proc of the 21st Int Conf on Parallel Architectures and Compilation Techniques. New York: ACM, 2012: 367-376

    [8]Liu Lei, Li Yong, Cui Zehan, et al. Going vertical in memory management: Handling multiplicity by multi-policy[C]Proc of the 41st Annual Int Symp on Computer Architecture (ISCA’14). Piscataway, NJ: IEEE, 2014: 169-180

    [9]Sanchez D, Kozyrakis C. The ZCache: Decoupling ways and associativity[C]Proc of the 43rd Annual IEEEACM Int Symp on Microarchitecture (MICRO’43). Los Alamitos, CA: IEEE Computer Society, 2010: 187-198

    [10]Sanchez D, Kozyrakis C. Vantage: Scalable and efficient fine-grain cache partitioning[C]Proc of the 38th Annual Int Symp on Computer Architecture (ISCA’11). New York: ACM, 2011: 57-68

    [11]Qureshi M K, Patt Y N. Utility-based cache partitioning: A low-overhead, high-performance, runtime mechanism to partition shared caches[C]Proc of the 39th Annual IEEEACM Int Symp on Microarchitecture (MICRO’39). Los Alamitos, CA: IEEE Computer Society, 2006: 423-432

    [12]Kasture H, Sanchez D. Ubik: Efficient cache sharing with strict QoS for latency-critical workloads[C]Proc of the 19th Int Conf on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). New York: ACM, 2014: 729-742

    [13]Jia Yaocang, Wu Chenggang, Zhang Zhaoqing. Program’s performance profiling optimization for guiding static cache partitioning[J]. Journal of Computer Research and Development, 2012, 49(1): 93-102 (in Chinese)(賈耀倉(cāng), 武成崗, 張兆慶. 指導(dǎo)cache靜態(tài)劃分的程序性能profiling優(yōu)化技術(shù)[J]. 計(jì)算機(jī)研究與發(fā)展, 2012, 49(1): 93-102)

    [14]Muralidhara S P, Subramanian L, Mutlu O, et al. Reducing memory interference in multicore systems via application-aware memory channel partitioning[C]Proc of the 44th Annual IEEEACM Int Symp on Microarchitecture (MICRO’44). New York: ACM, 2011: 374-385

    [15]Jia Gangyong, Li Xi, Wan Jian, et al. A memory partition policy for mitigating contention[J]. Journal of Computer Research and Development, 2015, 52(11): 2599-2607 (in Chinese)(賈剛勇, 李曦, 萬健, 等. 一種減少競(jìng)爭(zhēng)的內(nèi)存劃分方法[J]. 計(jì)算機(jī)研究與發(fā)展, 2015, 52(11): 2599-2607)

    [16]Computing Community Consortium (CCC). 21st century computer architecture: A community white paper[OL]. 2012[2016-02-26]. http:cra.orgcccdocsinit21stcentur yarchitecturewhitepaper.pdf

    [17]Ma Jiuyue, Sui Xiufeng, Sun Ninghui, et al. Supporting differentiated services in computers via programmable architecture for resourcing-on-demand (PARD)[C]Proc of the 20th Int Conf on Architectural Support for Programming Languages and Operating Systems (ASPLOS’15). New York: ACM, 2015: 131-143

    [18]Bojnordi M N, Ipek E. PARDIS: A programmable memory controller for the DDRx interfacing standards[C]Proc of the 39th Annual Int Symp on Computer Architecture (ISCA’12). Los Alamitos, CA: IEEE Computer Society, 2012: 13-24

    [19]Martin J, Bernard C, Clermidy F, et al. A micropro-grammable memory controller for high-performance dataflow applications[C]Proc of European Solid-State Circuits Conf. Piscataway, NJ: IEEE, 2009: 348-351

    [20]Kornaros G, Papaefstathiou I, Nikologiannis A, et al. A fully programmable memory management system optimizing queue handling at multi gigabit rates[C]Proc of the 40th Annual Design Automation Conf (DAC’ 03). New York: ACM, 2003: 54-59

    [21]Kuskin J, Ofelt D, Heinrich M, et al. The stanford FLASH multiprocessor[C]Proc of the 21st Annual Int Symp on Computer Architecture (ISCA’94). Los Alamitos, CA: IEEE Computer Society, 1994: 302-313

    [22]Reinhardt S K, Larus J R, Wood D A. Tempest and typhoon: User-level shared memory[C]Proc of the 21st Annual Int Symp on Computer Architecture (ISCA’94). Los Alamitos, CA: IEEE Computer Society, 1994: 325-336

    [23]Carter J, Hsieh W, Stoller L, et al. Impulse: Building a smarter memory controller[C]Proc of the 5th Int Symp on High Performance Computer Architecture (HPCA’99). Los Alamitos, CA: IEEE Computer Society, 1999: 70-79

    [24]Browne M, Aybay G, Nowatzyk A, et al. Design verification of the S3.mp cache coherent shared-memory system[J]. IEEE Trans on Computers, 1998, 47(1): 135-140

    [25]Bosshart P, Daly D, Gibb G, et al. P4: Programming protocol-independent packet processors[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(3): 87-95

    [26]Song H. Protocol-oblivious forwarding: Unleash the power of SDN through a future-proof forwarding plane[C]Proc of the 2nd ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking (HotSDN’13). New York: ACM, 2013: 127-132

    [27]Jeyakumar V, Alizadeh M, Kim C, et al. Tiny packet programs for low-latency network control and monitoring[C]Proc of the 12th ACM Workshop on Hot Topics in Networks (HotNets-XII). New York: ACM, 2013: 8

    [28]Sivaraman A, Winstein K, Subramanian S, et al. No silver bullet: Extending SDN to the data plane[C]Proc of the 12th ACM Workshop on Hot Topics in Networks (HotNets-XII). New York: ACM, 2013: 19

    [29]Intel Corporation. Improving real-time performance by utilizing cache allocation technology[OL]. 2015 [2016-02-26]. http:www.intel.comcontentdamwwwpublicusendocumentswhite-paperscache-allocation-technology-white-paper.pdf

    [30]Xilinx Corporation. MicroBlaze soft processor core[OL]. 2015 [2016-02-26]. http:www.xilinx.comproductsdesign-toolsmicroblaze.html

    Ma Jiuyue, born in 1988. PhD from the Institute of Computing Technology, Chinese Academy of Sciences. His main research interests include computer archi-tecture and operating system (majiuyue@ncic.ac.cn).

    Yu Zihao, born in 1991. PhD candidate in the Institute of Computing Technology, Chinese Academy of Sciences. His main research interests include computer architecture and operating system (yuzihao@ict.ac.cn).

    Bao Yungang, born in 1980. Professor and PhD supervisor. Member of CCF. His main research interests include computer architecture, operating system and system performance modeling and evaluation.

    Sun Ninghui, born in 1968. Professor and PhD supervisor. His main research interests include computer architecture, high perfor-mance computing and distributed OS (snh@ict.ac.cn).

    A Programmable Data Plane Design in Computer Architecture

    Ma Jiuyue1,2, Yu Zihao1,2, Bao Yungang1, and Sun Ninghui1

    1(InstituteofComputingTechnology,ChineseAcademyofSciences,Beijing100190)2(UniversityofChineseAcademyofSciences,Beijing100049)

    With the development of the Internet and cloud computing, more and more applications are migrated from local host to the cloud. In the cloud computing environment, these applications will finally be deployed to run in data centers, with the sharing of computer infrastructures. Influenced by the complexity and the variability of the applications running in data center, some fixed-function hardware components in traditional computer architecture, such as last-level cache, memory controller, IO controller, can not meet the requirements of deploying these application together in one data center. To adapt to these dynamic requirements, programmable hardware is needed from the view of computer architecture level, to make the function of computer hardware adaptable according to the application requirements. A programmable data plane design for computer architecture is presented, which brings programmability to hardware components by integrating programmable processors into the state-of-the-art hardware components, and let these new processors process hardware requests by firmware code. The functions of hardware components can be extended by updating firmware running on the processors. An FPGA prototype is implemented. Evaluation results show that the programmable data plane design brings flexible programmability to hardware by reasonable resource consumption, without introducing too much overhead to the original system performance. This makes it possible for the computer hardware to adapt to the dynamic requirement of application running in data centers.

    programmable; processor; data center; server; quality of service (QoS)

    2016-03-02;

    2016-05-03

    國(guó)家“九七三”重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃基金項(xiàng)目(2011CB302500);國(guó)家自然科學(xué)基金項(xiàng)目(61420106013,61221062,61202062) This work was supported by the National Basic Research Program of China (973 Program) (2011CB302500) and the National Natural Science Foundation of China (61420106013, 61221062, 61202062).

    TP303

    猜你喜歡
    功能
    拆解復(fù)雜功能
    鐘表(2023年5期)2023-10-27 04:20:44
    也談詩(shī)的“功能”
    基層弄虛作假的“新功能取向”
    深刻理解功能關(guān)系
    鉗把功能創(chuàng)新實(shí)踐應(yīng)用
    關(guān)于非首都功能疏解的幾點(diǎn)思考
    基于PMC窗口功能實(shí)現(xiàn)設(shè)備同步刷刀功能
    懷孕了,凝血功能怎么變?
    媽媽寶寶(2017年2期)2017-02-21 01:21:24
    “簡(jiǎn)直”和“幾乎”的表達(dá)功能
    中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
    中文字幕最新亚洲高清| 精品国内亚洲2022精品成人| 精品欧美国产一区二区三| 一区二区三区精品91| 精品免费久久久久久久清纯| 久久久国产精品麻豆| 国产av不卡久久| 中文字幕人妻丝袜一区二区| 他把我摸到了高潮在线观看| 国产又色又爽无遮挡免费看| 美女午夜性视频免费| 男人舔女人下体高潮全视频| 国产精品自产拍在线观看55亚洲| 大香蕉久久成人网| 国产在线精品亚洲第一网站| 身体一侧抽搐| 变态另类丝袜制服| 欧美成狂野欧美在线观看| 亚洲第一电影网av| 国产精品亚洲一级av第二区| 欧美黄色片欧美黄色片| 午夜福利视频1000在线观看| www国产在线视频色| 黑人操中国人逼视频| 欧美三级亚洲精品| 国产私拍福利视频在线观看| 久久久久国内视频| 99热这里只有精品一区 | tocl精华| 黑人欧美特级aaaaaa片| 不卡一级毛片| 久久香蕉国产精品| 欧美日韩福利视频一区二区| 热re99久久国产66热| 老司机靠b影院| 免费在线观看完整版高清| 久久精品91无色码中文字幕| 中文在线观看免费www的网站 | av在线播放免费不卡| 久久人妻福利社区极品人妻图片| 最新在线观看一区二区三区| 国产精品乱码一区二三区的特点| av在线播放免费不卡| 欧美成人性av电影在线观看| 婷婷丁香在线五月| 国产乱人伦免费视频| 国产av在哪里看| 久久久久久大精品| 亚洲成a人片在线一区二区| 一级毛片高清免费大全| 亚洲真实伦在线观看| 国产精品爽爽va在线观看网站 | 一二三四在线观看免费中文在| 亚洲第一av免费看| 最近最新中文字幕大全免费视频| 欧洲精品卡2卡3卡4卡5卡区| 成人国产综合亚洲| 色综合亚洲欧美另类图片| 中国美女看黄片| 精品久久久久久久久久久久久 | 国产精品av久久久久免费| x7x7x7水蜜桃| 欧美国产精品va在线观看不卡| 精品久久久久久,| 亚洲性夜色夜夜综合| 久久这里只有精品19| 日日摸夜夜添夜夜添小说| 999久久久国产精品视频| 天堂√8在线中文| 禁无遮挡网站| 久久国产精品人妻蜜桃| 丝袜在线中文字幕| 中文字幕人妻丝袜一区二区| x7x7x7水蜜桃| 白带黄色成豆腐渣| 欧美激情 高清一区二区三区| 丝袜人妻中文字幕| 黄色a级毛片大全视频| 国产午夜福利久久久久久| 久久中文看片网| 丰满的人妻完整版| 久久久精品欧美日韩精品| 亚洲人成网站在线播放欧美日韩| 精品国产乱子伦一区二区三区| 男女那种视频在线观看| 欧美最黄视频在线播放免费| 人人澡人人妻人| 18禁美女被吸乳视频| 搡老岳熟女国产| 亚洲国产看品久久| 99久久久亚洲精品蜜臀av| 亚洲欧美精品综合一区二区三区| 精品久久久久久久人妻蜜臀av| 亚洲天堂国产精品一区在线| 亚洲精品国产一区二区精华液| 熟女少妇亚洲综合色aaa.| 免费在线观看日本一区| 看片在线看免费视频| 久久久久国产一级毛片高清牌| 欧美精品亚洲一区二区| 欧美日韩精品网址| 12—13女人毛片做爰片一| 亚洲精品久久成人aⅴ小说| 欧美性猛交╳xxx乱大交人| 久久久久久久午夜电影| 国内精品久久久久久久电影| 国产一区二区三区在线臀色熟女| 亚洲精品色激情综合| 国产精品二区激情视频| 一区福利在线观看| АⅤ资源中文在线天堂| 国产精品自产拍在线观看55亚洲| 欧美成狂野欧美在线观看| bbb黄色大片| 免费看日本二区| 亚洲精品中文字幕一二三四区| 两人在一起打扑克的视频| 亚洲男人的天堂狠狠| 国产又黄又爽又无遮挡在线| 少妇熟女aⅴ在线视频| 老司机靠b影院| 男女做爰动态图高潮gif福利片| 嫩草影院精品99| 精品无人区乱码1区二区| 日本在线视频免费播放| 成人精品一区二区免费| 岛国在线观看网站| 亚洲国产高清在线一区二区三 | 在线永久观看黄色视频| 国产亚洲精品久久久久5区| 一本久久中文字幕| 午夜福利成人在线免费观看| 一级毛片精品| 悠悠久久av| 自线自在国产av| 宅男免费午夜| 国产伦人伦偷精品视频| 黄片大片在线免费观看| 精品欧美一区二区三区在线| 色综合婷婷激情| 亚洲中文字幕一区二区三区有码在线看 | 天天一区二区日本电影三级| 不卡一级毛片| 久热这里只有精品99| 国产精品九九99| 母亲3免费完整高清在线观看| 两性夫妻黄色片| 午夜老司机福利片| 日本一本二区三区精品| 一区二区三区国产精品乱码| 欧美国产精品va在线观看不卡| 欧美成人午夜精品| 国产一级毛片七仙女欲春2 | 99久久无色码亚洲精品果冻| 国产av又大| 国产单亲对白刺激| 国产激情久久老熟女| 成人18禁高潮啪啪吃奶动态图| 在线播放国产精品三级| 最近最新中文字幕大全电影3 | 亚洲 欧美一区二区三区| 亚洲在线自拍视频| 黄色毛片三级朝国网站| 久久久久精品国产欧美久久久| 真人做人爱边吃奶动态| 婷婷亚洲欧美| 国产精品综合久久久久久久免费| 久久天堂一区二区三区四区| 欧美黑人巨大hd| 成年免费大片在线观看| 两个人看的免费小视频| 色婷婷久久久亚洲欧美| 亚洲 国产 在线| 在线观看一区二区三区| 99热只有精品国产| 99国产综合亚洲精品| 久久中文字幕人妻熟女| 日韩欧美免费精品| а√天堂www在线а√下载| 亚洲精品中文字幕一二三四区| 亚洲国产精品成人综合色| a级毛片在线看网站| 人人妻人人澡人人看| 色av中文字幕| 午夜免费鲁丝| 亚洲最大成人中文| 老司机在亚洲福利影院| 婷婷精品国产亚洲av| 国产精品免费视频内射| 一级a爱视频在线免费观看| 亚洲国产毛片av蜜桃av| 国产私拍福利视频在线观看| 欧美激情 高清一区二区三区| 久久精品影院6| 午夜福利视频1000在线观看| 熟女少妇亚洲综合色aaa.| 真人做人爱边吃奶动态| 啦啦啦韩国在线观看视频| 亚洲国产欧美网| 中文字幕精品免费在线观看视频| 少妇熟女aⅴ在线视频| 久久久久久人人人人人| 嫩草影视91久久| 色在线成人网| 日韩欧美一区视频在线观看| 在线观看一区二区三区| 久久久精品欧美日韩精品| 宅男免费午夜| 草草在线视频免费看| 88av欧美| 日韩视频一区二区在线观看| av视频在线观看入口| 日韩三级视频一区二区三区| 精品免费久久久久久久清纯| 精品熟女少妇八av免费久了| xxxwww97欧美| 久久午夜综合久久蜜桃| 中文字幕精品免费在线观看视频| 久久婷婷成人综合色麻豆| 男人舔女人下体高潮全视频| 国产亚洲精品久久久久5区| 成人国语在线视频| 熟妇人妻久久中文字幕3abv| 91字幕亚洲| 中文字幕人妻丝袜一区二区| 亚洲av熟女| 别揉我奶头~嗯~啊~动态视频| 一进一出抽搐动态| svipshipincom国产片| 国产精品电影一区二区三区| 日韩国内少妇激情av| 精品少妇一区二区三区视频日本电影| 国产精品久久久久久亚洲av鲁大| 日韩精品免费视频一区二区三区| 国产精品免费一区二区三区在线| 亚洲熟妇熟女久久| 国产高清有码在线观看视频 | 色综合婷婷激情| 精品少妇一区二区三区视频日本电影| 一区二区三区激情视频| 午夜影院日韩av| 长腿黑丝高跟| 日本 欧美在线| 日本撒尿小便嘘嘘汇集6| 亚洲国产精品久久男人天堂| 色尼玛亚洲综合影院| 亚洲欧美日韩高清在线视频| www日本在线高清视频| 久久精品91蜜桃| 婷婷六月久久综合丁香| 男女视频在线观看网站免费 | АⅤ资源中文在线天堂| 黑丝袜美女国产一区| 最近最新免费中文字幕在线| 国产成人av教育| 国产精品 欧美亚洲| 亚洲精品av麻豆狂野| 欧美精品啪啪一区二区三区| 777久久人妻少妇嫩草av网站| 欧美亚洲日本最大视频资源| 久久国产精品男人的天堂亚洲| 亚洲精品粉嫩美女一区| 亚洲av第一区精品v没综合| a在线观看视频网站| 日本一区二区免费在线视频| 午夜久久久在线观看| 日韩大尺度精品在线看网址| 国产伦在线观看视频一区| 一二三四在线观看免费中文在| 欧美+亚洲+日韩+国产| av欧美777| 啦啦啦 在线观看视频| 18禁美女被吸乳视频| 中文字幕人妻熟女乱码| 精品欧美一区二区三区在线| 精品国产乱子伦一区二区三区| 超碰成人久久| 国产一级毛片七仙女欲春2 | 给我免费播放毛片高清在线观看| 97超级碰碰碰精品色视频在线观看| 高清在线国产一区| 一区二区三区国产精品乱码| 久热爱精品视频在线9| 99国产极品粉嫩在线观看| 在线免费观看的www视频| 丝袜美腿诱惑在线| 成年人黄色毛片网站| 国产精品亚洲av一区麻豆| 一级毛片高清免费大全| 国产精品98久久久久久宅男小说| www.自偷自拍.com| 一区二区日韩欧美中文字幕| 国产精品精品国产色婷婷| 这个男人来自地球电影免费观看| 成年免费大片在线观看| 黄色a级毛片大全视频| 亚洲精品一卡2卡三卡4卡5卡| 99re在线观看精品视频| 90打野战视频偷拍视频| 哪里可以看免费的av片| 亚洲av熟女| 夜夜夜夜夜久久久久| 国产熟女xx| 久久久久国产精品人妻aⅴ院| 在线观看www视频免费| 亚洲片人在线观看| 亚洲成av片中文字幕在线观看| 少妇裸体淫交视频免费看高清 | 欧美精品啪啪一区二区三区| 波多野结衣av一区二区av| 久久人妻福利社区极品人妻图片| 中文字幕精品亚洲无线码一区 | 老熟妇乱子伦视频在线观看| 国产精品美女特级片免费视频播放器 | 日韩欧美一区视频在线观看| 日韩视频一区二区在线观看| 亚洲人成伊人成综合网2020| 免费观看精品视频网站| 国产黄片美女视频| 国产男靠女视频免费网站| 欧美黑人欧美精品刺激| 桃红色精品国产亚洲av| 欧美日韩亚洲国产一区二区在线观看| 欧美绝顶高潮抽搐喷水| 国产又爽黄色视频| 亚洲国产欧洲综合997久久, | 国产片内射在线| 91在线观看av| 亚洲专区中文字幕在线| 久久精品夜夜夜夜夜久久蜜豆 | 动漫黄色视频在线观看| 搡老岳熟女国产| 视频区欧美日本亚洲| 久久九九热精品免费| 亚洲国产精品久久男人天堂| 免费在线观看视频国产中文字幕亚洲| 女人高潮潮喷娇喘18禁视频| 精品久久久久久久毛片微露脸| 国产亚洲av嫩草精品影院| 日本三级黄在线观看| 一本综合久久免费| 国产精品综合久久久久久久免费| 亚洲男人天堂网一区| 夜夜爽天天搞| 成人亚洲精品av一区二区| 国产精品亚洲美女久久久| 男人舔奶头视频| 久久精品影院6| 欧美成狂野欧美在线观看| 久久午夜综合久久蜜桃| 亚洲精品一卡2卡三卡4卡5卡| 18禁黄网站禁片免费观看直播| 久久久国产精品麻豆| 欧美日韩一级在线毛片| 日韩大尺度精品在线看网址| 久久久久久九九精品二区国产 | 亚洲男人天堂网一区| 欧美人与性动交α欧美精品济南到| 欧美国产精品va在线观看不卡| 黄色视频不卡| 久久久久国产一级毛片高清牌| ponron亚洲| a级毛片在线看网站| 精品卡一卡二卡四卡免费| 国产精品久久久人人做人人爽| 一级作爱视频免费观看| 免费一级毛片在线播放高清视频| 欧美亚洲日本最大视频资源| 99精品欧美一区二区三区四区| 免费看十八禁软件| 国产成人啪精品午夜网站| 欧美性长视频在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 俄罗斯特黄特色一大片| 亚洲成a人片在线一区二区| 成人精品一区二区免费| 久久精品人妻少妇| 欧美激情极品国产一区二区三区| 久9热在线精品视频| 国产精品电影一区二区三区| 女人高潮潮喷娇喘18禁视频| 欧美zozozo另类| 日韩欧美在线二视频| 国语自产精品视频在线第100页| 色综合亚洲欧美另类图片| 精品欧美国产一区二区三| 看黄色毛片网站| 男人舔女人下体高潮全视频| 看黄色毛片网站| 伊人久久大香线蕉亚洲五| 亚洲精品中文字幕一二三四区| 国产久久久一区二区三区| 久久香蕉精品热| 99在线人妻在线中文字幕| xxxwww97欧美| 91九色精品人成在线观看| 美女大奶头视频| 亚洲狠狠婷婷综合久久图片| 老司机福利观看| 此物有八面人人有两片| 99在线视频只有这里精品首页| 亚洲国产精品合色在线| 午夜福利在线在线| 免费女性裸体啪啪无遮挡网站| 成熟少妇高潮喷水视频| 精品国产超薄肉色丝袜足j| 久久香蕉国产精品| 欧美中文日本在线观看视频| 老司机深夜福利视频在线观看| 久久国产乱子伦精品免费另类| 欧美成人一区二区免费高清观看 | 亚洲精品中文字幕在线视频| 久久久久久久午夜电影| 国产v大片淫在线免费观看| 日韩中文字幕欧美一区二区| 亚洲成av片中文字幕在线观看| 日本撒尿小便嘘嘘汇集6| 老熟妇乱子伦视频在线观看| 欧美日韩中文字幕国产精品一区二区三区| 女警被强在线播放| 一区二区三区国产精品乱码| 国产一区在线观看成人免费| 久久天躁狠狠躁夜夜2o2o| 国内精品久久久久精免费| 国产男靠女视频免费网站| 免费看十八禁软件| 91在线观看av| 少妇被粗大的猛进出69影院| 国产精品久久久久久人妻精品电影| 成人18禁高潮啪啪吃奶动态图| 亚洲中文字幕日韩| 国产一区二区在线av高清观看| 看免费av毛片| 黄网站色视频无遮挡免费观看| a级毛片a级免费在线| 校园春色视频在线观看| 身体一侧抽搐| 日日干狠狠操夜夜爽| 黄色a级毛片大全视频| 欧美av亚洲av综合av国产av| 成人手机av| 色老头精品视频在线观看| 亚洲中文av在线| 欧美成人免费av一区二区三区| 一边摸一边做爽爽视频免费| 欧美日韩乱码在线| 精品第一国产精品| 欧美日本亚洲视频在线播放| 国产成人精品久久二区二区91| 丁香六月欧美| av在线播放免费不卡| 久久性视频一级片| 国产免费男女视频| 国产主播在线观看一区二区| 国产熟女午夜一区二区三区| 99国产精品一区二区三区| 日本 av在线| 最近最新免费中文字幕在线| 国产亚洲精品综合一区在线观看 | 精品人妻1区二区| 麻豆av在线久日| 久久久久久久久中文| 国产私拍福利视频在线观看| 成人国语在线视频| 亚洲国产欧美日韩在线播放| 狠狠狠狠99中文字幕| 久久人妻av系列| 日韩欧美国产一区二区入口| 日韩高清综合在线| 女人爽到高潮嗷嗷叫在线视频| 久久中文看片网| 欧美另类亚洲清纯唯美| 午夜福利在线在线| 亚洲国产欧美一区二区综合| 亚洲av中文字字幕乱码综合 | 日本一区二区免费在线视频| 激情在线观看视频在线高清| 国产亚洲欧美在线一区二区| 欧美另类亚洲清纯唯美| 神马国产精品三级电影在线观看 | 18美女黄网站色大片免费观看| 黄片播放在线免费| 亚洲av成人不卡在线观看播放网| av视频在线观看入口| 日日夜夜操网爽| www日本黄色视频网| 亚洲五月天丁香| 久久国产亚洲av麻豆专区| 久久国产精品男人的天堂亚洲| 男人操女人黄网站| 欧美乱码精品一区二区三区| 波多野结衣高清作品| 日本在线视频免费播放| 亚洲精品国产区一区二| av视频在线观看入口| 一级毛片精品| 国产一卡二卡三卡精品| 亚洲免费av在线视频| 日本成人三级电影网站| 欧美性猛交黑人性爽| 天堂影院成人在线观看| 国产精品影院久久| 一区二区三区精品91| 熟妇人妻久久中文字幕3abv| 亚洲国产欧洲综合997久久, | 日韩免费av在线播放| 亚洲精华国产精华精| 中文字幕高清在线视频| 香蕉av资源在线| 国产成人欧美在线观看| 国产99白浆流出| 亚洲av第一区精品v没综合| 国产99久久九九免费精品| 久久精品aⅴ一区二区三区四区| 午夜激情福利司机影院| 在线观看66精品国产| 精品久久久久久久毛片微露脸| 国产又黄又爽又无遮挡在线| 国产野战对白在线观看| 欧美色视频一区免费| 亚洲一区二区三区不卡视频| 亚洲精品美女久久久久99蜜臀| 久久久久国产一级毛片高清牌| 老熟妇仑乱视频hdxx| 久久天躁狠狠躁夜夜2o2o| 亚洲一区二区三区不卡视频| 久久久水蜜桃国产精品网| 日本在线视频免费播放| 无遮挡黄片免费观看| 在线观看免费午夜福利视频| 在线观看免费视频日本深夜| 男女之事视频高清在线观看| 日韩欧美国产在线观看| 91成人精品电影| 午夜精品久久久久久毛片777| 精品少妇一区二区三区视频日本电影| 精品国产乱码久久久久久男人| 可以在线观看毛片的网站| 美女高潮喷水抽搐中文字幕| 亚洲精品国产一区二区精华液| 精品人妻1区二区| 在线观看日韩欧美| 麻豆久久精品国产亚洲av| 男女视频在线观看网站免费 | 亚洲精品av麻豆狂野| av在线播放免费不卡| 成人国语在线视频| 人人妻人人澡欧美一区二区| 97超级碰碰碰精品色视频在线观看| 色在线成人网| 人妻久久中文字幕网| 久久国产乱子伦精品免费另类| 免费在线观看亚洲国产| 亚洲中文字幕一区二区三区有码在线看 | 麻豆av在线久日| 国产精品国产高清国产av| 亚洲久久久国产精品| 夜夜躁狠狠躁天天躁| 国产精品久久久久久亚洲av鲁大| 国产高清有码在线观看视频 | 欧美日韩福利视频一区二区| 一本大道久久a久久精品| 欧美一级a爱片免费观看看 | 国产不卡一卡二| 成人三级做爰电影| 午夜福利18| 久99久视频精品免费| 精品国产超薄肉色丝袜足j| 午夜福利在线观看吧| 色老头精品视频在线观看| 91av网站免费观看| 好看av亚洲va欧美ⅴa在| 亚洲av日韩精品久久久久久密| www.熟女人妻精品国产| 国产av一区二区精品久久| 法律面前人人平等表现在哪些方面| 国产不卡一卡二| 亚洲欧美精品综合久久99| 国产在线观看jvid| 免费看日本二区| 国产又爽黄色视频| 特大巨黑吊av在线直播 | 国产成人影院久久av| 变态另类成人亚洲欧美熟女| 1024视频免费在线观看| 一级黄色大片毛片| 又大又爽又粗| 精品国产亚洲在线| 男人操女人黄网站| 色哟哟哟哟哟哟| 最近在线观看免费完整版| 国产成人欧美| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲成人免费电影在线观看| 嫁个100分男人电影在线观看| 日本成人三级电影网站| 一本久久中文字幕| 亚洲中文字幕一区二区三区有码在线看 | 亚洲欧美精品综合久久99| 人人妻,人人澡人人爽秒播| 人人妻人人澡人人看| 此物有八面人人有两片| 国产视频内射| 成人三级黄色视频| 欧美中文日本在线观看视频| 啦啦啦免费观看视频1| 亚洲精品国产一区二区精华液| 日韩欧美一区视频在线观看| 国产精品永久免费网站| 免费电影在线观看免费观看| 精品久久久久久久久久免费视频| 天堂√8在线中文| 亚洲 欧美一区二区三区| 久久久国产精品麻豆| 女人爽到高潮嗷嗷叫在线视频|