《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于BWDSP指令Cache的PLRU替換算法研究
基于BWDSP指令Cache的PLRU替換算法研究
來源:電子技術應用2013年第1期
洪興勇1,洪 一1,2
1.合肥工業大學 計算機與信息學院,安徽 合肥230009; 2.中國電子科技集團第38研究所,安徽 合肥230031
摘要: 通過BWDSP模擬器對目前常用的幾種替換算法和大小不同的指令Cache塊進行仿真實驗得出不同缺失率。實驗結果表明,所提出的PLRU替換算法性能高于LRU、LFU、FIFO替換算法,并使BWDSP整體性能提高到為其他三種替換算法的1.12倍左右。
中圖分類號: TP368
文獻標識碼: A
文章編號: 0258-7998(2013)01-0027-04
The PLRU replacement algorithm of instruction Cache based on BWDSP
Hong Xingyong1,Hong Yi1,2
1.School of Computer and Information, Hefei University of Technology, Hefei 230009,China; 2.No.38 Research Institute, China Electronics Technology Group Corporation, Hefei 230031,China
Abstract: The paper does some experiments for the miss rates of different replacement algorithms and different Cache size on the simulator of BWDSP. The result of experiments shows that the PLRU algorithm is more efficient than LRU, LFU and FIFO algorithms,and the total performance of BWDSP increases by nearly 12% times.
Key words : BWDSP;instruction Cache;replacement algorithm;PLRU

    自1978年以來,我國的集成電路用量和產量幾乎以平均每年20%的速度同步增長,集成電路生產中心也在向中國大陸轉移,使我國IC產業迅速發展。目前IC制造工藝水平已達到28 nm,為設計高性能DSP系統打下了牢固的基礎。DSP處理器速度與存儲器速度之間的差異是DSP體系結構設計的一個瓶頸問題,在DSP處理器的存儲層次中,Cache是離處理器內核最近的一層存儲器,而Cache技術是有效解決DSP處理器的存儲層問題的重要技術[1]。可以依據Cache的速度和命中率來配置Cache的參數,使Cache的性能達到最佳[2]。

1 BWDSP處理器總體結構
    BWDSP處理器是中國電子集團第38研究所自主研制的一款32 bit靜態超標量處理器,采用8發射、11級流水線、SIMD架構。處理器指令總線寬度為512 bit,數據總線位寬為256 bit;指令存儲空間和數據存儲空間在物理上是分開的,指令存儲空間大小為2 MB,指令Cache空間為512 KB,數據存儲空間為8 MB;取指程序計數器每變化一次,從指令Cache中取出8條指令為一個256 bit指令包進入指令流水線。BWDSP處理器的執行部件包含在4個執行宏中,分別為macro x、macro y、macro z、macro t。指令譯碼單元解析從指令包中得到的并行指令,并決定指令在那些執行宏中運行,進而為指令分配對應執行宏中的執行資源,并且把指令翻譯為微操作,發射到4個執行宏。高性能DSP處理器總體結構如圖1所示。


    在高性能DSP處理器上對指令進行重復訪問時,指令Cache的失效次數與指令空間大小的關系:首先計算第一次重復訪問時的失效次數。設程序指令大小為M,即M0=M/512個Cache行。當M≤512 KB時,程序被訪問后,指令Cache每一組內至多包含一個Cache行的有效指令數據,不會因為沖突失效而發生替換,所以再次執行程序時,不會使指令Cache發生失效;當M在512 KB~1 024 KB時,訪問完一遍之后,前512個Cache行的數據會填充每組內的一個Cache行,而超過512個Cache行的部分,每個Cache行的指令數據有1/4的概率替換掉有效數據,因此,被替換出去的Cache行數約為(M0-512)/4,即重復訪問的失效概率約為(M0-512)/4 M;對于M在1 024 KB~1 536 KB、1 536 KB~2 048 KB、2 048 KB~∞的情況時,可用同樣的方法分析得到訪問一遍之后被替換出去的Cache行數目。
    由上述可知,當執行程序指令空間小于512 KB(即M0<512 KB)時,所有Cache行都不會被替換掉;而當執行程序指令空間大于512 KB時,被替換出去Cache行數呈線性增長,并且不同區間內增長的斜率依次變大。因此,當執行程序指令空間大于指令Cache大小時,指令Cache行被替換出去的概率與指令Cache的替換算法有關。
    指令Cache 參數包括:Cache容量大小、Cache塊大小、組相聯度和替換策略。在某種程度上,可通過優化Cache參數提高Cache的性能,但當Cache容量增加到某一程度時,Cache命中率將迅速降低[3]。指令Cache替換算法是影響指令Cache性能的主要因素,目前常見的指令Cache替換算法有Random、FIFO、LRU、LFU、MRU、SCK-4[4],此外還有比較新穎的LNC算法。FIFIO和Random算法硬件實現簡單,但其性能不佳;而常用的LRU算法性能最佳,但是硬件實現過于復雜,同時該算法占用時間較多。因此,LRU替換算法不是指令Cache最佳的替換算法[5]。預取技術是利用空間局部性,若利用預取技術來克服LRU算法,其缺點將導致缺失不斷增加[6]。而采用PLRU算法對LRU算法進行改進,幾乎不會影響Cache的缺失率,并且簡化了硬件實現代價及復雜度[7]。
2 PLRU替換算法
    LRU(Least Recently Used)替換算法是基于程序時間局部性原理(即現在使用指令代碼在不久時間里將再次訪問該條指令代碼),每次替換最近最少被使用的Cache塊。LRU替換算法是組相聯Cache中最常用的替換算法之一(即比較Cache組內指令行中哪個指令行時間最長沒有被訪問過則被替換出去),而且每次都要記錄每個指令塊的使用情況。Cache是N組相聯映射,需要log2N位來描述LRU替換算法中組內每塊的使用狀態[8]。嚴格意義上的LRU算法實現代價很大,因此考慮到硬件開銷,通常使用偽LRU替換算法,即PLRU(Pseudo-LRU)算法。PLRU算法與LRU算法相近,但簡化了數據預測的過程[9]。PLRU通過使用MRU(Most Recently Used)位,使組中每個Cache塊都有自己的MRU位。4-way組相聯指令Cache的PLRU替換算法示意圖如圖2所示。
  

    PLRU替換算法的步驟如下:
    (1)上電復位時,將LRU Array所有入口值設置為8&rsquo;b11100100,即lru[0:7]=11100100。4路中最近經常使用情況為way0>way1>way2>way3。
    (2)如果命中Cache,則按照下述算法更新8 bit的矢量(lru[0:7])值。
    在BWDSP指令Cache采用4-way組相聯的Cache中,Cache命中可能在4路中的某一路命中,當某一路命中時則要更新lru[0:7]的值。有如下4種情況:
    ①若命中Cache的way0,則根據lru[0:1]值為b00、b01、b10、b11 4種情況更新lru[0:7]的值:
    if   (lru[0:1]= =b00)
      {lru[6:7]&larr;lru[6:7]-1;lru[4:5]&larr;lru[4:5]-1; lru[2:3]
&larr;lru[2:3]-1; lru[0:1]&larr;b11;}
    else if  (lru[0:1]= =b01)
        { if (lru[2:3]==b00)lru[2:3]&larr;lru[2:3];else lru[2:3]
&larr;lru[2:3]-1;
         if (lru[4:5]==b00)lru[4:5]&larr;lru[4:5];else lru[4:5]
&larr;lru[4:5]-1;
         if (lru[6:7]==b00)lru[6:7]&larr;lru[6:7];else lru[6:7]
&larr;lru[6:7]-1;
         lru[0:1] &larr;b11;}
    else if  (lru[1:0]= =b10)
            { if (lru[2:3]==b11) lru[2:3]&larr;lru[2:3]-1;
else lru[2:3]&larr;lru[2:3];
            if (lru[4:5]==b11) lru[4:5]&larr;lru[4:5]-1;else
lru[4:5]&larr;lru[4:5];
            if (lru[6:7]==b11) lru[6:7]&larr;lru[6:7]-1; else
lru[6:7]&larr;lru[6:7];
            lru[0:1]=b11;}
    else  (lru[1:0]= =b11)
            {lru[6:7]&larr;lru[6:7];lru[4:5]&larr;lru[4:5];lru[2:3]
&larr;lru[2:3];lru[0:1]&larr;lru[0:1];}
    ②若命中Cache 的way1,則根據lru[2:3]值為b00、b01、b10、b11 4種情況更新lru[0:7]的值:
    if  (lru[2:3]=b00)
      {lru[6:7]&larr;lru[6:7]-1;lru[4:5]&larr;lru[4:5]-1; lru[2:3]
&larr;b11; lru[0:1]&larr;lru[0:1]-1;}
    else if(lru[2:3]= =b01)
          { if (lru[0:1]==b00) lru[0:1]&larr;lru[0:1];
else lru[0:1]&larr;lru[0:1]-1;
        if (lru[4:5]==b00) lru[4:5]&larr;lru[4:5];
else lru[4:5]&larr;lru[4:5]-1 ;
        if (lru[6:7]==b00) lru[6:7]&larr;lru[6:7];
else lru[6:7]&larr;lru[6:7]-1 ;
        lru[2:3] &larr;b11;}
    else if(lru[2:3]= =b10)
            { if (lru[1:0]==b11)lru[0:1]&larr;lru[0:1]-1;
else lru[0:1]&larr;lru[0:1];
            if (lru[4:5]==b11)lru[4:5]&larr;lru[4:5]-1;
else lru[4:5]&larr;lru[4:5];
            if (lru[6:7]==b11)lru[6:7]&larr;lru[6:7]-1;
else lru[6:7]&larr;lru[6:7];
            lru[2:3]=b11;}
    else (lru[2:3]= =b11)
            {lru[6:7]&larr;lru[6:7];lru[4:5]&larr;lru[4:5];lru[2:3]
&larr;lru[2:3];lru[0:1]&larr;lru[0:1];}
    ③若命中Cache 的way2,則根據lru[4:5]值為b00、b01、b10、b11 4種情況更新lru[0:7]的值:
    if(lru[4:5]=b00)
       {lru[6:7]&larr;lru[6:7]-1;lru[4:5]&larr;b11;lru[2:3]
&larr;lru[2:3]-1;lru[0:1]&larr;lru[0:1]-1;}
    else if(lru[4:5]= =b01)
        { if (lru[0:1]= =b00)lru[0:1]&larr;lru[0:1];
else lru[0:1]&larr;lru[0:1]-1;
        if (lru[2:3]= =b00)lru[2:3]&larr;lru[2:3]; else lru[2:3]
&larr;lru[2:3]-1;
        if (lru[6:7]= =b00)lru[6:7]&larr;lru[6:7]; else lru[6:7]
&larr;lru[6:7]-1;
        lru[4:5] &larr;b11}
    else if(lru[4:5]= =b10)
            { if (lru[1:0]==b11)lru[0:1]&larr;lru[0:1]-1;
else lru[0:1]&larr;lru[0:1];
            if (lru[2:3]==b11)lru[2:3]&larr;lru[2:3]-1;
else lru[2:3]&larr;lru[2:3];
            if (lru[6:7]==b11)lru[6:7]&larr;lru[6:7]-1;
else lru[6:7]&larr;lru[6:7];
            lru[4:5]=b11;}
    else  (lru[2:3]= =b11)
            {lru[6:7]&larr;lru[6:7]; lru[4:5]&larr;lru[4:5];
lru[2:3]&larr;lru[2:3]; lru[0:1]&larr;lru[0:1];}
    ④若命中Cache 的way3,則根據lru[6:7]值為b00、b01、b10、b11 4種情況更新lru[0:7]的值:
    if (lru[6:7]==b00) {lru[6:7]&larr;b11;lru[4:5]&larr;lru[4:5]-1;
lru[2:3]&larr;lru[2:3]-1; lru[0:1]&larr;lru[0:1]-1;}
    else if(lru[6:7]= =b01)
        { if (lru[0:1]==b00)lru[0:1]&larr;lru[0:1];
else lru[0:1]&larr;lru[0:1]-1;
        if (lru[2:3]==b00)lru[2:3]&larr;lru[2:3];
else lru[2:3]&larr;lru[2:3]-1 ;
        if (lru[4:5]==b00)lru[4:5]&larr;lru[4:5];
else lru[4:5]&larr;lru[4:5]-1 ;
        lru[6:7] &larr;b11}
    else if(lru[6:7]= =b10)
            { if (lru[1:0]==b11)lru[0:1]&larr;lru[0:1]-1;
else lru[0:1]&larr;lru[0:1];
            if (lru[2:3]==b11)lru[2:3]&larr;lru[2:3]-1;
else lru[2:3]&larr;lru[2:3];
            if (lru[4:5]==b11)lru[4:5]&larr;lru[4:5]-1;
else lru[4:5]&larr;lru[4:5];
            lru[6:7]=b11;}
    else (lru[6:7]= =b11)
            {lru[6:7]&larr;lru[6:7];lru[4:5]&larr;lru[4:5];
lru[2:3]&larr;lru[2:3]; lru[0:1]&larr;lru[0:1];}
    (3)如果Cache缺失,則按照下述替換算法替換Cache的數據塊,并更新對應的lru[0:7]的值。
    if(lru[0:1]==b00),
      {  替換way0中的數據塊;
         同時要更新對應lru[0:7]的值:lru[6:7]=lru[6:7]-1;
         lru[4:5]=lru[4:5]-1;lru[2:3]=lru[2:3]-1;lru[0:1]=11;}
    if(lru[2:3]==b00)
      {  替換way1中的數據塊;
         同時要更新對應lru[0:7]的值:lru[6:7]=lru[6:7]-1;
         lru[4:5]=lru[4:5]-1;lru[2:3]=b11;lru[0:1]=lru[0:1]-1;}
    If(lru[4:5]==b00)
      {  替換way2中的數據塊;
         同時要更新對應lru[0:7]的值:lru[6:7]=lru[6:7]-1,
         lru[4:5]=b11,lru[2:3]=lru[2:3]-1,lru[0:1]
         =lru[0:1]-1;}
    if (lru[6:7]==b00)
      {  替換way3中的數據塊;
         同時要更新對應lru[0:7]的值:lru[6:7]=b11;
         lru[4:5]= lru[4:5]-1;lru[2:3]= lru[2:3]-1;lru[0:1]=
         lru[0:1]-1;}
3 仿真與實驗結果
    BWDSP模擬器包含了編譯器、BWDSP指令集、匯編器,能夠編譯用高級語言(C語言)編寫的雷達信號處理的程序代碼和產生基于BWDSP體系結構的目標代碼。BWDSP模擬器的主頻為1 MHz、11級流水線,其內核發射的寬度為8條指令,指令存儲器為1 Mb,指令Cache大小為256 Kb,4路組相聯映射,數據存儲器為2 Mb。用4個典型雷達信號處理程序xd_lib_test2_1_Cache.out、xd_lib_test2_1_part_cache.out、xd_lib_test2_1_Cache.out、dsp.out在BWDSP模擬器驗證平臺上對本文提出的PLRU替換算法進行仿真實驗,并與直接映射、FIFO、RLU、Random替換算法進行對比,從指令Cache的訪問次數、命中次數、缺失次數和命中率來統計指令Cache的性能,其仿真結果如表1所示。

 

 

    表1的仿真結果表明,本文提出的PLRU替換算法其命中率高于其他三種替換算法,且實現PLRU替換算法的硬件代價相對于LRU替換算法要低。通過驗證,高性能BWDSP處理器其整體性能都高于其他三種方法的1.12倍。
    高性能DSP處理器是未來DSP發展趨勢,高速緩存器的多層次存儲器體系結構是提高數字信號處理器系統性能的重要方法。本文在32 bit BWDSP基礎上提出了基于PLRU替換算法的512 bit指令包的指令Cache研究,通過實驗仿真,指令Cache的PLRU替換算法在指令Cache的命中率比FIFO、RLU、Random替換算法都要高出約5.0%。
參考文獻
[1] PEREZ W J H,SANCHEZ E,REORDA M S.Functional test generation for the PLRU replacement mechanism of embedded Cache memories[C].Test Workshop(LATW),2011 12th Latin American,27-30 March 2011.
[2] TAWADA M,YANAGISAWA M,OHTSUKI T,et al.Exact and fast L1 Cache configuration simulation for embedded systems with FIFO/PLRU Cache replacement policies[C]. VLSI Desgin,Automation and Test(VLSI-DAT),International Symposium,2011:1-4.
[3] KLEEN A,STIENBERG E,ANSCHEL M,et al.An improved instruction Cache replacement algorithm[C].Signal Processing Systems Design and Implementation,2-4 Nov.2005:573-578.
[4] 田小波,陳蜀宇.基于最小效用的流媒體緩存替換算法[J].計算機應用,2007,27(3):733-736.
[5] KLEEN A,STIENBERG E,ANSCHEL M,et al.An improved instruction Cache replacement algorithm[C].Signal Processing Systems Design and Implementation,2-4 Nov.2005:573-578.
[6] ZUCKER D F,LEE R B,FLYNN M J.Hardware and software Cache prefetching techniques for MPEG benchmarks[J].IEEE Transactions on Circuits  and Systems for Video Technology,2000,10(5):782-796.
[7] 江喜平,高德遠.CISC中混合Cache的優化設計[J].計算機工程與應用,2006(10):109-111.
[8] Zhang Xi,Li Chongmin,Wang Haixia.A Cache replacement policy using adaptive insertion and re-reference prediction[C].Computer Architecture and High Performance Computing.oct.2010:95-102.
[9] MOLMEN S,MOHSEN S,HOSSEIN R M. Performance evaluation of Cache memory organizations in embedded systems[C].Information Technology,2007:1045-1050.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲激情视频在线| 亚洲精选中文字幕| 亚洲欧美综合| 午夜精品视频在线观看一区二区| 欧美国产欧美综合| 欧美激情一区二区三区蜜桃视频| 欧美在线精品一区| 久久久久国产一区二区三区四区| 黄色免费成人| 亚洲人体1000| 国产日韩欧美视频在线| 久久婷婷蜜乳一本欲蜜臀| 一本色道久久加勒比精品| 国产午夜精品一区理论片飘花| 国产精品一二一区| 久久青草福利网站| 免费一级欧美片在线观看| 午夜伦理片一区| 国产日韩欧美在线视频观看| 亚洲人成77777在线观看网| 国产日韩欧美综合一区| 欧美精品一区二区三区蜜臀| 最新国产乱人伦偷精品免费网站| 国产精品xxxxx| 亚洲精品久久7777| 欧美一区亚洲二区| 亚洲天天影视| 欧美人妖另类| 欧美日本在线一区| 免费国产一区二区| 国产精品高清免费在线观看| 美日韩精品免费| 午夜精品久久久99热福利| 欧美专区亚洲专区| 国产精品美女xx| 欧美日韩一区二区三区在线看| 亚洲一区二区在线播放| 亚洲综合色婷婷| 亚洲欧美资源在线| 一区二区三区免费网站| 欧美绝品在线观看成人午夜影视| 国产精品你懂的| 国产精品露脸自拍| 亚洲毛片在线免费观看| 亚洲精品男同| 国产视频一区二区在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 久久成人亚洲| 国产精品久久久久一区二区三区| 亚洲免费一级电影| 国产有码一区二区| 韩日精品视频一区| 亚洲欧美日韩综合一区| 亚洲中字在线| 国产精品麻豆va在线播放| 欧美三级在线| 欧美激情一区二区三区在线视频| 一区二区三区精密机械公司| 欧美精品91| 久久久久久久999| 国产一区二区精品久久99| 亚洲日本欧美在线| 国产精品美女| 狠狠色综合播放一区二区| 亚洲精品国产精品国自产观看| 国产精品一区二区三区四区五区| 欧美三区美女| 欧美日韩人人澡狠狠躁视频| 欧美日韩精品免费| 亚洲欧美日本日韩| 亚洲欧洲综合| 在线日本欧美| 欧美视频精品一区| 激情综合色综合久久| 久久人人看视频| 免播放器亚洲一区| 欧美日韩视频在线观看一区二区三区| 欧美日韩福利在线观看| 国产精品久久久久久久久久久久久久| 欧美激情一区二区三区在线视频| 欧美日韩免费观看一区三区| 影音先锋亚洲一区| 欧美国产在线电影| 在线视频亚洲| 一区二区三区欧美日韩| 国产精品国产成人国产三级| 一区二区三区高清视频在线观看| 国产日韩欧美视频在线| 国产日韩欧美中文在线播放| 久久精品72免费观看| 亚洲小视频在线| 欧美日韩成人一区二区| 狠狠色狠狠色综合| 国产视频综合在线| 亚洲娇小video精品| 极品尤物一区二区三区| 亚洲一级免费视频| 欧美专区福利在线| 欧美日韩精品高清| 久久国产天堂福利天堂| 伊人精品成人久久综合软件| 欧美激情精品久久久久久免费印度| 中文亚洲免费| 亚洲欧美资源在线| 久久精品二区亚洲w码| 一本色道久久综合一区| 亚洲免费人成在线视频观看| 欧美日韩国产精品| 国产精品免费区二区三区观看| 狠狠操狠狠色综合网| 国产精品久久久999| 韩日精品视频| 狠狠色狠狠色综合日日小说| 中文精品99久久国产香蕉| 国产欧美成人| 亚洲国产第一| 99在线观看免费视频精品观看| 欧美日韩精品欧美日韩精品| 欧美日韩一区二区在线播放| 激情另类综合| 亚洲精品麻豆| 亚洲欧洲精品天堂一级| 久久精品免费播放| 羞羞答答国产精品www一本| 国内精品久久久久久久果冻传媒| 国产一区二区三区自拍| 日韩视频精品在线| 午夜精品久久久久久久99樱桃| 国产欧美精品在线播放| 久久久久se| 国产亚洲精品自拍| 国产综合精品一区| 免费中文日韩| 亚洲国产影院| 一区二区免费在线播放| 美女网站在线免费欧美精品| 久久精品国产清自在天天线| 一区二区在线视频观看| 欧美视频一二三区| 国产精品黄页免费高清在线观看| 欧美高清不卡| 亚洲国产精品久久人人爱蜜臀| 亚洲特黄一级片| 国产精品有限公司| 亚洲国产一区二区视频| 久久久午夜电影| 国内精品嫩模av私拍在线观看| 国产一区二区视频在线观看| 黄色影院成人| 国产日韩1区| 91久久嫩草影院一区二区| 国产精品久久久久一区二区三区共| 欧美国产高潮xxxx1819| 亚洲第一中文字幕| 免费永久网站黄欧美| 国产精品热久久久久夜色精品三区| 国产亚洲欧美一区在线观看| 欧美在线免费观看视频| 亚洲国产导航| 欧美黄色一级视频| 国产视频丨精品|在线观看| 18成人免费观看视频| 伊人成人开心激情综合网| 亚洲自拍偷拍视频| 韩国三级在线一区| 一区二区免费在线观看| 亚洲一区二区三区国产| 日韩视频在线免费| 国产精品久久久久aaaa樱花| 亚洲国产精品一区二区三区| 一区二区三区欧美激情| 亚洲欧洲综合另类| 亚洲精品中文字幕女同| 在线免费观看欧美| 亚洲色诱最新| 欧美一区网站| 欧美在线黄色| 欧美激情视频一区二区三区免费| 欧美成人精品三级在线观看| 在线 亚洲欧美在线综合一区| 亚洲欧洲另类国产综合| 欧美日韩一区在线观看| 性18欧美另类| 欧美视频亚洲视频| 久热re这里精品视频在线6| 国产精品一区二区在线观看不卡| 国产精品国产三级国产专区53| 亚洲尤物精选| 亚洲一区中文| 欧美大片在线看免费观看| 亚洲欧美国产精品专区久久| 日韩一区二区免费看| 欧美性片在线观看| 亚洲成人中文| 欧美精品在线网站| 一本色道88久久加勒比精品| 欧美激情欧美狂野欧美精品| 欧美在线网址| 欧美精品在线观看| 日韩小视频在线观看| 亚洲一区中文| 国产三级精品在线不卡| 欧美一区二区私人影院日本| 一区二区三欧美| 黄色成人免费观看| 一区免费在线| 国产综合精品| 久久久精品日韩| 午夜精品久久久久久久久久久| 欧美日韩在线免费视频| 国产一区二区你懂的| 欧美视频在线观看| 久久国产精品免费一区| 欧美国产视频日韩| 欧美日韩在线亚洲一区蜜芽| 先锋影音国产精品| 国产精品免费视频观看| 亚洲人被黑人高潮完整版| 91久久视频| 国产精品99久久久久久久vr| 在线成人国产| 欧美日韩在线第一页| 久久综合福利| 国产欧美日本在线| 欧美日本韩国在线| 亚洲桃花岛网站| 精品96久久久久久中文字幕无| 欧美性天天影院| 亚洲视频 欧洲视频| 亚洲一区二区三区精品在线| 裸体丰满少妇做受久久99精品| 欧美日韩日日夜夜| 欧美日韩国产系列| 久久综合色综合88| 欧美高清在线精品一区| 久久视频精品在线| 亚洲欧美国产毛片在线| 欧美韩日亚洲| 久久精品在线| 午夜视频久久久| 国产最新精品精品你懂的| 亚洲精品免费一区二区三区| 日韩午夜激情av| 亚洲国产另类久久精品| 另类春色校园亚洲| 国产精品久久久久久久久久三级| 狠狠色丁香久久婷婷综合_中| 午夜精品视频一区| 亚洲欧洲日本一区二区三区| 欧美亚洲一区| 国产久一道中文一区| 亚洲国产精品电影在线观看| 久久精品成人欧美大片古装| aa日韩免费精品视频一| 中文欧美日韩| 精品99一区二区三区| 在线观看亚洲视频啊啊啊啊| 久久亚洲二区| 欧美激情久久久| 亚洲天堂激情| 久久久久久久尹人综合网亚洲| 亚洲一区二区三区免费观看| 精品成人一区二区三区| 欧美成人视屏| 亚洲一区3d动漫同人无遮挡| 亚洲片国产一区一级在线观看| 久久亚洲二区| 国产精品一区二区视频| 亚洲精品美女在线观看播放| 久久性色av| 欧美日韩18| 国产一区日韩欧美| 99精品免费视频| 久久久精品国产一区二区三区| 欧美日韩一二三区| 亚洲精品一区中文| 免费欧美在线| 国产精品观看| 久久久久国产一区二区三区四区| 一区二区三区在线免费播放| 欧美美女bb生活片| 亚洲欧洲一区二区三区久久| 欧美制服丝袜第一页| 欧美日韩一区二区欧美激情| 亚洲美女色禁图| 国产精品一区三区| 亚欧美中日韩视频| 欧美日韩午夜激情| 国内外成人在线视频| 国产精品一区二区三区久久久| 在线看不卡av| 亚洲一区二区黄| 国产精品日本欧美一区二区三区| 蜜桃av噜噜一区二区三区| 国产综合色一区二区三区| 国产精品自拍小视频| 欧美三级网页| 欧美亚州一区二区三区| 亚洲欧美日韩久久精品| 欧美成年人网| 国产精品视频你懂的| 欧美电影免费观看高清完整版| 国产一区二区三区不卡在线观看| 国产精品久久久久久久9999| 亚洲无毛电影| 中文在线不卡视频| 久久久久久亚洲精品不卡4k岛国| 国产精品网站视频| 欧美福利精品| 国产精品久久久久久久电影| 欧美成人免费网站| 91久久精品美女| 国产精品久久久久久久app| 欧美一区二区三区在线看| 亚洲一区美女视频在线观看免费| 国产午夜精品理论片a级大结局| 欧美精品一区在线播放| 午夜精品一区二区在线观看| 欧美日韩国产小视频在线观看| 欧美人与禽猛交乱配视频| …久久精品99久久香蕉国产| 亚洲精品在线三区| 在线看片第一页欧美| 激情综合网激情| 亚洲精品老司机| 亚洲欧美国产精品桃花| 亚洲茄子视频| 国模一区二区三区|