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

    基于區(qū)域協(xié)作的Cache壓縮①

    2016-12-06 05:12:48王煥東
    高技術(shù)通訊 2016年5期
    關(guān)鍵詞:壓縮算法壓縮率字典

    曾 露 李 鵬 王煥東

    (*計(jì)算機(jī)體系結(jié)構(gòu)國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院計(jì)算技術(shù)研究所) 北京 100190) (**中國(guó)科學(xué)院計(jì)算技術(shù)研究所 北京 100190) (***中國(guó)科學(xué)院大學(xué) 北京 100049) (****龍芯中科技術(shù)有限公司 北京 100190)

    ?

    基于區(qū)域協(xié)作的Cache壓縮①

    曾 露②******李 鵬******王煥東****

    (*計(jì)算機(jī)體系結(jié)構(gòu)國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院計(jì)算技術(shù)研究所) 北京 100190) (**中國(guó)科學(xué)院計(jì)算技術(shù)研究所 北京 100190) (***中國(guó)科學(xué)院大學(xué) 北京 100049) (****龍芯中科技術(shù)有限公司 北京 100190)

    為提高Cache的有效容量,進(jìn)行了Cache壓縮研究,并提出了一種區(qū)域協(xié)作壓縮(RCC)方法,以提升最后一級(jí)緩存的壓縮率。與傳統(tǒng)的Cache壓縮算法不同,RCC方法利用了緩存區(qū)域的壓縮局部性,使用緩存區(qū)域中第一個(gè)緩存塊的字典信息來協(xié)作壓縮緩存區(qū)域中的其他各個(gè)緩存塊,而不需要對(duì)緩存區(qū)域進(jìn)行整體壓縮。RCC有效發(fā)掘了緩存區(qū)域內(nèi)緩存塊之間的數(shù)據(jù)冗余,實(shí)現(xiàn)了接近以緩存區(qū)域?yàn)閴嚎s粒度的字典壓縮的壓縮率,然而壓縮、解壓縮延時(shí)卻仍然和壓縮單個(gè)緩存塊時(shí)相當(dāng)。實(shí)驗(yàn)結(jié)果表明,與單緩存塊壓縮算法C-PACK相比,RCC方法的壓縮率平均提升了12.34%,系統(tǒng)的性能提升了5%。與2倍容量的非壓縮Cache相比,有效容量提升了27%,系統(tǒng)性能提升了8.6%,而面積卻減少了63.1%。

    數(shù)據(jù)壓縮, 字典壓縮, 區(qū)域協(xié)作壓縮(RCC), 高速緩存壓縮, 訪存優(yōu)化

    0 引 言

    長(zhǎng)期以來,處理器運(yùn)算性能的快速提高與訪存帶寬的緩慢增長(zhǎng)之間一直存在著剪刀差,而且這種現(xiàn)象正愈演愈烈。計(jì)算性能與訪存性能的不平衡導(dǎo)致了系統(tǒng)整體性能的下降,即使有強(qiáng)大的計(jì)算能力也沒有辦法高效利用,大量的時(shí)間被浪費(fèi)在等待數(shù)據(jù)從存儲(chǔ)系統(tǒng)中加載到流水線中。因此,大量的研究工作致力于訪存系統(tǒng)的優(yōu)化,提高訪存的帶寬,降低訪存的延時(shí)。

    由于半導(dǎo)體工藝的進(jìn)步,片內(nèi)可以集成更大的高速緩存(Cache)。增強(qiáng)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(eDRAM)技術(shù)的成熟使得動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)的高集成度技術(shù)被引用到Cache的設(shè)計(jì)中,進(jìn)一步增加了Cache的容量?,F(xiàn)代的計(jì)算機(jī)應(yīng)用通常擁有超大的工作集,提供更大的Cache容量總是能夠帶來更好的程序運(yùn)行性能。在體系結(jié)構(gòu)層面上探索更高的Cache利用效率與半導(dǎo)體工藝追求更高的片內(nèi)容量并不矛盾,反而兩者相輔相成,共同為性能的提升做出貢獻(xiàn)。然而Cache的設(shè)計(jì)面臨著面積、功耗與延時(shí)之間的權(quán)衡取舍。通常接近處理器核訪存部件的緩存需要更小的延時(shí),從而減少流水線的空等待。為保證延時(shí),其容量不能做到太大。而遠(yuǎn)離處理器核的緩存層次對(duì)訪存延時(shí)較為不敏感,通??梢栽O(shè)計(jì)更大,然而更大的面積的Cache卻面臨著靜態(tài)功耗和翻轉(zhuǎn)功耗的問題。

    數(shù)據(jù)壓縮是降低數(shù)據(jù)存儲(chǔ)空間的有效手段。而在片上Cache中利用數(shù)據(jù)壓縮的技術(shù)理論上可以使得固定大小的Cache存儲(chǔ)更多數(shù)據(jù),即可以提升Cache的有效容量。已有研究表明,壓縮緩存的邏輯容量可以達(dá)到其物理存儲(chǔ)空間的一倍以上,而代價(jià)僅僅是略微增加了訪問延時(shí)(主要是從壓縮Cache中讀取時(shí)解壓縮的延時(shí))和少量的tag位等元數(shù)據(jù)。由此可見壓縮緩存的好處是顯而易見的,尤其是對(duì)訪問延時(shí)相對(duì)不敏感的最后一級(jí)緩存(Last Level Cache,LLC),增加幾個(gè)時(shí)鐘周期的訪問延時(shí)對(duì)于整個(gè)訪存系統(tǒng)的性能影響很小。因此,大量的研究[1-5]通過實(shí)現(xiàn)高效管理壓縮數(shù)據(jù)的Cache結(jié)構(gòu)和適配于Cache的數(shù)據(jù)壓縮/解壓縮算法以實(shí)現(xiàn)更高的壓縮率、更低的訪問延時(shí)、功耗與面積開銷以及更高的Cache性能。因此,數(shù)據(jù)壓縮在提升Cache尤其是最后一級(jí)緩存(LLC)的有效容量,控制設(shè)計(jì)大容量Cache帶來的功耗,最終有效提升系統(tǒng)性能上具有很大的意義。本文將探索在LLC中實(shí)現(xiàn)高效數(shù)據(jù)壓縮的方法。

    1 Cache壓縮

    1.1 Cache壓縮的挑戰(zhàn)

    傳統(tǒng)數(shù)據(jù)壓縮算法經(jīng)過幾十年的研究,已經(jīng)發(fā)展的較為成熟。諸如LZ77[6]算法以及在其基礎(chǔ)上衍生的LZXX算法簇,和基于統(tǒng)計(jì)信息編碼的Huffman算法在某些情形下甚至能夠獲得接近信息熵的壓縮率。這些算法及其衍生算法被廣泛應(yīng)用于壓縮軟件中對(duì)計(jì)算機(jī)數(shù)據(jù)進(jìn)行壓縮,如DEFLATE。然而針對(duì)Cache數(shù)據(jù)的壓縮,則面臨與傳統(tǒng)數(shù)據(jù)壓縮不同的挑戰(zhàn)。

    首先,硬件實(shí)現(xiàn)壓縮算法要在取得一定壓縮率的同時(shí),需要兼顧壓縮算法的實(shí)現(xiàn)復(fù)雜度以及壓縮、解壓縮的速度。過于復(fù)雜的壓縮算法的硬件實(shí)現(xiàn)成本和復(fù)雜度更高,且延時(shí)和面積開銷甚至使得數(shù)據(jù)壓縮得不償失;而簡(jiǎn)單的算法雖然高效快速,但是壓縮率通常較低。另外,緩存的讀操作是訪存的關(guān)鍵路徑,解壓縮延時(shí)對(duì)系統(tǒng)性能的影響大,因此壓縮算法還需要具有較短的解壓縮延時(shí)。

    其次,壓縮數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不同。通常緩存都是多路組相聯(lián)結(jié)構(gòu),連續(xù)的緩存塊被映射到不同的組(set),壓縮算法的壓縮粒度難以擴(kuò)展到更大的數(shù)據(jù)范圍,通常僅以緩存塊為單位進(jìn)行壓縮。而軟件壓縮算法可以在一個(gè)較長(zhǎng)的數(shù)據(jù)窗口中發(fā)掘冗余數(shù)據(jù),甚至可以遍歷數(shù)據(jù)來統(tǒng)計(jì)頻率信息,使用占用空間最小的編碼方式。

    最后,緩存的數(shù)據(jù)是動(dòng)態(tài)變化的,數(shù)據(jù)的修改需要將數(shù)據(jù)重新壓縮。新數(shù)據(jù)與舊數(shù)據(jù)的壓縮大小往往不同:如果壓縮數(shù)據(jù)變小,Cache中會(huì)空出小塊的存儲(chǔ)空間,而它們往往不足以存儲(chǔ)新的緩存塊,這就導(dǎo)致了碎片化;如果壓縮數(shù)據(jù)變大,還需要在組內(nèi)額外分配空間,如果空間不足,還會(huì)導(dǎo)致緩存塊的替換,進(jìn)一步增加了設(shè)計(jì)的復(fù)雜度。

    因此,Cache壓縮需要綜合考慮壓縮率、解壓縮延時(shí)、面積開銷和實(shí)現(xiàn)復(fù)雜度等因素。僅側(cè)重某一方面,而其他方面開銷大,最終性能可能不好,甚至更差。

    1.2 Cache壓縮算法

    傳統(tǒng)數(shù)據(jù)壓縮算法可以采用更大的數(shù)據(jù)塊和更復(fù)雜的編碼方法,而緩存壓縮算法由于需要同時(shí)滿足較低的硬件實(shí)現(xiàn)復(fù)雜度和較好的壓縮率以及壓縮、解壓縮延時(shí),因此,Cache壓縮算法通常以緩存塊為數(shù)據(jù)壓縮單位,并對(duì)有限的常見數(shù)據(jù)模式進(jìn)行編碼。

    零值在Cache中所占比例較大,在某些應(yīng)用中,零值在Cache中甚至可以占到40%以上的空間。零內(nèi)容增強(qiáng)高速緩存(ZCA)[7]使用一個(gè)額外的緩存記錄Cache中為0的緩存塊的地址,而不需要在Cache中存儲(chǔ)零值,從而實(shí)現(xiàn)基本的壓縮。然而,由于僅能夠壓縮零緩存塊,ZCA受限于特定的應(yīng)用,并不廣泛適用。

    然而,含有零值的緩存塊仍廣泛存在于Cache中,幾乎所有的Cache壓縮算法都會(huì)對(duì)零值進(jìn)行優(yōu)先壓縮,使其占用最少的空間。

    常見模式壓縮(frequent pattern compression, FPC[8])將幾種較為常見的模式進(jìn)行定長(zhǎng)編碼,如連續(xù)的0、小值數(shù)據(jù)或重復(fù)值等共分為8類通過3bit的前綴來表示。據(jù)此將緩存行以數(shù)據(jù)字(32bit)為單位劃分,依次根據(jù)對(duì)應(yīng)的數(shù)據(jù)模式進(jìn)行匹配壓縮,生成相應(yīng)的前綴和壓縮數(shù)據(jù)。

    C-PACK[2]算法(一種高性能微處理器高速緩存壓縮算法)首先采用和常見模式壓縮(FPC)類似的常見模式匹配,直接匹配壓縮0值和小值數(shù)據(jù)。對(duì)于不能匹配的數(shù)據(jù),引入了字典壓縮。壓縮時(shí)所有未匹配的數(shù)據(jù)將插入字典,后面的數(shù)據(jù)字除匹配0與小值數(shù)據(jù)外,同時(shí)與字典中的項(xiàng)進(jìn)行匹配。字典項(xiàng)支持部分匹配,即匹配擁有相同高字節(jié)而低字節(jié)不同的數(shù)據(jù),僅存儲(chǔ)低字節(jié)不同的部分,從而實(shí)現(xiàn)相似數(shù)據(jù)的壓縮。如表1所示,數(shù)據(jù)壓縮以4字節(jié)為單位,除0、小值數(shù)據(jù)和無法壓縮的情況為固定模式壓縮,其他三項(xiàng)為字典匹配,分別表示完全匹配,匹配高兩字節(jié)和匹配高三字節(jié)。由于字典的引入,大量相似的數(shù)據(jù)可以被壓縮,依次可以實(shí)現(xiàn)不錯(cuò)的壓縮率。C-PACK雖然增加了壓縮、解壓縮延時(shí),但對(duì)于延時(shí)相對(duì)不敏感的最后一級(jí)緩存(LLC),提高的數(shù)據(jù)壓縮率相對(duì)帶來的好處更大。

    表1 C-PACK編碼表

    注: 壓縮模式中每個(gè)字母代表一個(gè)字節(jié),z表示為0,x表示當(dāng)前字節(jié)未匹配,m表示當(dāng)前字節(jié)匹配了字典項(xiàng)。壓縮后大小為使用16項(xiàng)字典時(shí)的值。

    BDI(Base-Delta-Immediate)壓縮[3]認(rèn)為,大量Cache行中的數(shù)據(jù)擁有低動(dòng)態(tài)范圍(low dynamic range)的數(shù)據(jù)特性,即數(shù)據(jù)字之間的差值通常比這些數(shù)據(jù)本身的值要小。BDI 為緩存塊中固定大小(如2,4,8字節(jié))的數(shù)據(jù)字確定公共基值,而數(shù)據(jù)字可由占用較小空間的偏移值來表示。緩存塊的數(shù)據(jù)可以被壓縮為一個(gè)公共基值和若干個(gè)數(shù)據(jù)字的偏移值的形式。BDI要求緩存塊中所有數(shù)據(jù)字都必須壓縮成相同大小的偏移值,因此在解壓縮時(shí)所有的偏移值可以直接并行讀取并與公共基值進(jìn)行運(yùn)算完成解壓縮,可以實(shí)現(xiàn)2個(gè)時(shí)鐘周期的解壓縮延時(shí)。BDI的公共基值+偏移量的方式和C-PACK中字典項(xiàng)的部分匹配擁有一定相似性,不過由于BDI的基值數(shù)量固定,對(duì)于數(shù)值分散度較大的緩存塊壓縮效果較差,因此其壓縮率不如C-PACK。BDI的一個(gè)改進(jìn)策略是額外增加0作為公共基值,首先以0為基值計(jì)算偏移值優(yōu)先過濾小值數(shù)據(jù),再確定剩余數(shù)據(jù)字的公共基值進(jìn)行壓縮。

    FVC (frequent value compression,常見值壓縮)[5]通過預(yù)先計(jì)算出的常見值來配置常見值表。在程序執(zhí)行的過程中,該字典的內(nèi)容不變,對(duì)匹配的緩存數(shù)據(jù)進(jìn)行壓縮。FVC能夠?qū)Τ绦驁?zhí)行過程中最常見的值進(jìn)行壓縮。然而,通常程序的執(zhí)行隨著時(shí)間的變化,存儲(chǔ)在Cache中最多的值通常會(huì)發(fā)生變化,因此使用固定的值作為字典進(jìn)行壓縮不如動(dòng)態(tài)字典的壓縮效率高。

    SC2(一個(gè)統(tǒng)計(jì)壓縮緩存方案)[4]使用定期采樣的統(tǒng)計(jì)信息進(jìn)行Huffman編碼來進(jìn)行數(shù)據(jù)壓縮。Huffman編碼的生成需要對(duì)數(shù)據(jù)進(jìn)行采樣來生成統(tǒng)計(jì)信息,而由于緩存中的數(shù)據(jù)在程序執(zhí)行時(shí)是動(dòng)態(tài)變化的,該算法需要每隔一段時(shí)間定期對(duì)緩存數(shù)據(jù)進(jìn)行重新采樣,更新Huffman編碼,使用新的編碼進(jìn)行數(shù)據(jù)壓縮。SC2需要使用一塊較大的RAM來存儲(chǔ)采樣的統(tǒng)計(jì)信息,在面積上不具有優(yōu)勢(shì),但SC2能夠?qū)崿F(xiàn)較高的壓縮率。因此,該方案在適用性上有較大限制,需要考慮到其實(shí)現(xiàn)的面積開銷與復(fù)雜度。

    常見的Cache設(shè)計(jì)中指令和數(shù)據(jù)在LLC中不加區(qū)分的存儲(chǔ),Cache并不記錄某個(gè)地址是指令還是數(shù)據(jù),并且有時(shí)指令還可以被當(dāng)作數(shù)據(jù)動(dòng)態(tài)地進(jìn)行修改。然而指令和數(shù)據(jù)擁有不同的壓縮特性。指令在編碼時(shí)已經(jīng)考慮到存儲(chǔ)的效率,因此指令本身的信息熵已經(jīng)很大,其壓縮性不足。然而,處理器運(yùn)行所需的指令類型在指令集中并非均勻分布,大多數(shù)時(shí)間僅運(yùn)行了少數(shù)類型的指令,而這些指令在Cache中冗余度很高,對(duì)于其中出現(xiàn)頻率較高的指令進(jìn)行編碼壓縮,可以較好地壓縮指令所需的存儲(chǔ)空間。Benini等在文獻(xiàn)[9]中探索了指令壓縮的方法。

    1.3 壓縮Cache的結(jié)構(gòu)

    Cache壓縮算法決定了數(shù)據(jù)最大可以被壓縮的大小。而有效的壓縮Cache結(jié)構(gòu)為壓縮算法實(shí)現(xiàn)數(shù)據(jù)壓縮提供了基礎(chǔ)。如果Cache組織不合理,要么限制了最大的壓縮率,要么需要消耗大量的元數(shù)據(jù)(額外的壓縮信息,用于索引壓縮緩存子塊的指針等)。因此,設(shè)計(jì)合理有效的壓縮Cache結(jié)構(gòu)才能配合Cache壓縮算法實(shí)現(xiàn)高效快速的Cache壓縮。

    可壓縮Cache的結(jié)構(gòu)需要解決壓縮緩存塊的存儲(chǔ)與索引、壓縮緩存塊的修改與替換和壓縮策略的選擇的問題,接下來將分別進(jìn)行說明。

    1.3.1 壓縮緩存塊的存儲(chǔ)與索引

    由于壓縮后的緩存塊大小不一,且壓縮Cache的tag數(shù)量需要大于未壓縮的數(shù)據(jù)塊數(shù)量以存儲(chǔ)壓縮數(shù)據(jù),傳統(tǒng)Cache的tag與data一一映射的方式不適合壓縮Cache。壓縮Cache通常使用解耦(decoupled)方式進(jìn)行tag與data的映射。

    VSC[8]使用tag中的size字段來表示壓縮的緩存塊所占用的段(segment,4字節(jié))數(shù)目。VSC的緩存塊的偏移地址通過累加組內(nèi)該緩存塊之前所有緩存塊的size字段得到。第k路緩存塊的偏移地址為第1路至第k-1路緩存塊的size字段的和:

    (1)

    緩存塊的偏移和大小為offset(k)和size(k)。

    SCC(skewed compressed cache, 偏移壓縮緩存)[10]根據(jù)相鄰數(shù)據(jù)的壓縮率相近的特性,將連續(xù)地址的壓縮數(shù)據(jù)塊集中存儲(chǔ)在一個(gè)物理緩存塊中,使用一個(gè)tag來表示超級(jí)緩存塊。根據(jù)緩存塊壓縮率的不同,tag可表示1,2,4,8個(gè)緩存塊。然而,SCC針對(duì)大緩存塊中壓縮率不同的緩存塊需要通過偏移映射的方式單獨(dú)存儲(chǔ)。SCC所需的元數(shù)據(jù)較少,不需要提供額外的tag,即可支持較高的壓縮率。

    Pair-matching[2]限制一個(gè)物理緩存塊最多保存兩個(gè)壓縮緩存塊,在tag與data之間維持了二對(duì)一的固定映射,避免了壓縮緩存塊的索引開銷。然而,固定的映射決定了其理想情形下2倍壓縮率的上限,而且兩個(gè)壓縮緩存塊存儲(chǔ)在一個(gè)物理塊內(nèi)的限制決定了它放棄了大量的壓縮機(jī)會(huì)。

    1.3.2 壓縮緩存塊的修改與替換

    在系統(tǒng)運(yùn)行過程中緩存塊的內(nèi)容會(huì)發(fā)生變化,而對(duì)修改數(shù)據(jù)進(jìn)行重新壓縮后的大小也會(huì)發(fā)生變化。如果變小,那么剩余出來的空間需要通過執(zhí)行緊縮(compaction)或重映射來回收以避免浪費(fèi);如果變大,則需要占用額外的空閑空間,甚至可能需要替換掉現(xiàn)有的一個(gè)或多個(gè)緩存塊。

    Cache的緊縮需要讀寫組內(nèi)大部分的數(shù)據(jù),因此該操作代價(jià)巨大。即使該過程可以與讀寫關(guān)鍵路徑并行,其巨大的功耗與復(fù)雜邏輯開銷仍然使得代價(jià)過大。SCC和Pair-matching均對(duì)緩存塊的大小有限制,不允許任意大小的緩存塊,因此避免了復(fù)雜的緊縮操作。

    壓縮Cache的替換策略除考慮時(shí)間局部性因素外,還需要考慮緩存塊自身的壓縮大小,使用最少的替換次數(shù)滿足插入緩存塊的空間需求,以及考慮緩存的存儲(chǔ)布局,選擇合適的替換塊避免碎片的產(chǎn)生導(dǎo)致需要緊縮。ECM(effective capacity maximizer)[11]提出了大小可感知的壓縮緩存替換策略,同時(shí)利用最不常用(least recently used, LRU)信息和壓縮信息大小決定替換策略,保留盡可能多并且被重復(fù)利用的緩存塊,從而從另一個(gè)角度提升了系統(tǒng)的性能。

    1.3.3 壓縮策略的選擇。

    Cache壓縮算法通常都不能普遍適用于所有情形。對(duì)于不同的應(yīng)用,不同的數(shù)據(jù)類型以及不同的執(zhí)行時(shí)間點(diǎn),數(shù)據(jù)的壓縮特性都有不同。有些應(yīng)用的工作集較小,數(shù)據(jù)壓縮帶來的額外空間沒有意義,反而產(chǎn)生了額外的延時(shí),Alaa[8]提出了動(dòng)態(tài)方式判斷應(yīng)用是否得益于壓縮來決定是否壓縮數(shù)據(jù)。Nitta[12]根據(jù)緩存行中超過50%數(shù)據(jù)的數(shù)據(jù)類型選擇是否壓縮、如何壓縮,如針對(duì)整形、浮點(diǎn)和指針類型,采用不同的壓縮算法。

    2 區(qū)域協(xié)作壓縮

    2.1 Cache壓縮的粒度對(duì)壓縮率的影響

    盡管固定大小的緩存塊可以使得Cache管理相對(duì)簡(jiǎn)單而且高效,使用更大粒度的緩存數(shù)據(jù)進(jìn)行壓縮通常可以獲得更高的壓縮率。應(yīng)用程序在訪存中大多呈現(xiàn)較強(qiáng)的空間局部,即地址相近的數(shù)據(jù)總會(huì)被相繼訪問。尤其是具有流式訪存行為的應(yīng)用(如applu, equake, ocean, radiosity, raytrace等),它們會(huì)連續(xù)訪問大片的數(shù)據(jù),且由于程序特性,連續(xù)訪問的相鄰數(shù)據(jù)擁有相似的特性,如擁有相同的高字節(jié),而僅僅是低字節(jié)不同,或者是完全相同的數(shù)據(jù)。這類數(shù)據(jù)通常不僅僅存在于一個(gè)緩存行內(nèi)部,而通常存在于多個(gè)緩存塊范圍,從而產(chǎn)生了區(qū)域壓縮(region compression)的概念。

    圖1 C-PACK壓縮算法在塊粒度和區(qū)域粒度下壓縮率對(duì)比

    如圖 1所示,以C-PACK壓縮算法為基礎(chǔ),分別為使用緩存塊為粒度進(jìn)行壓縮(C-PACK Blk),使用16路組相聯(lián)的組為粒度進(jìn)行壓縮(C-PACK Set)和使用16個(gè)連續(xù)地址的緩存區(qū)域進(jìn)行壓縮(C-PACK Reg)在各個(gè)應(yīng)用程序下壓縮率的對(duì)比??梢杂^察到C-PACK Reg方式對(duì)壓縮率有較大的提升,最高可達(dá)21%,平均也有17.96%的壓縮率提升;而同樣為16個(gè)緩存塊為粒度的C-PACK Set方式則提升很小,平均在5%以下。

    因此,對(duì)更大的數(shù)據(jù)塊進(jìn)行壓縮,可以獲得比單獨(dú)壓縮一個(gè)緩存塊更好的壓縮性,特別是使用連續(xù)地址進(jìn)行壓縮,比在一個(gè)組內(nèi)相對(duì)隨意地址的多個(gè)緩存塊壓縮,具有更高的壓縮率,從而反映了數(shù)據(jù)壓縮的局部特性。本文認(rèn)為,數(shù)據(jù)壓縮局部性是除時(shí)間局部性、空間局部性之外,訪存系統(tǒng)特別是可壓縮訪存系統(tǒng)需要深入挖掘的第三種局部性。

    然而,現(xiàn)有的Cache壓縮算法大都使用緩存行為單位進(jìn)行數(shù)據(jù)壓縮,因?yàn)檫@樣可以在不改變現(xiàn)有Cache架構(gòu)的情形下實(shí)現(xiàn)數(shù)據(jù)壓縮,而不引入額外的復(fù)雜性。在類似常見模式壓縮(FPC)這種固定模式的壓縮算法下,不同的壓縮數(shù)據(jù)的粒度對(duì)壓縮率沒有影響;而在基于字典的壓縮算法(如C-PACK, BDI)中,被壓縮的數(shù)據(jù)粒度越大,可以發(fā)掘的數(shù)據(jù)冗余越多。而基于單一緩存行的壓縮算法不能有效壓縮跨多個(gè)緩存行的冗余數(shù)據(jù),需要在每個(gè)緩存行中單獨(dú)進(jìn)行存儲(chǔ)字典項(xiàng),從而造成了Cache空間的浪費(fèi)。

    利用數(shù)據(jù)壓縮局部性壓縮多個(gè)連續(xù)緩存塊可以提升可壓縮Cache的壓縮率,然而該技術(shù)面臨如下挑戰(zhàn):

    首先,由于緩存行中替換和修改數(shù)據(jù)塊是比較頻繁的,且替換和修改需要對(duì)數(shù)據(jù)重新進(jìn)行壓縮、解壓縮。如果以較大的數(shù)據(jù)塊為單位進(jìn)行整體壓縮和解壓縮,其代價(jià)顯然過大,在結(jié)構(gòu)設(shè)計(jì)中應(yīng)當(dāng)避免。Cache的壓縮和解壓縮多個(gè)緩存行會(huì)帶來較大功耗與延時(shí)開銷,然而可以借助其他緩存塊的壓縮信息以協(xié)助當(dāng)前緩存行的壓縮和解壓縮。

    其次,連續(xù)緩存塊通常被映射到不同的set,通常難以通過一次訪問獲取多個(gè)連續(xù)的緩存塊數(shù)據(jù)或者壓縮信息。在設(shè)計(jì)中應(yīng)綜合考慮壓縮性與延時(shí)的平衡:獲取更多連續(xù)緩存塊的信息可以實(shí)現(xiàn)更高的壓縮率,然而需要更多的訪問延時(shí)。需要在保證一定壓縮率的提升下盡量減少對(duì)其他緩存塊的訪問。

    2.2 區(qū)域協(xié)作的壓縮算法

    本文提出了一種區(qū)域協(xié)作壓縮(region cooperative compression, RCC)算法,該算法利用了緩存的數(shù)據(jù)壓縮局部性,可以以較小的代價(jià)獲得比以緩存塊粒度進(jìn)行字典壓縮更高的壓縮率。

    區(qū)域協(xié)作壓縮(RCC)的原理是利用緩存區(qū)域內(nèi)第一個(gè)緩存塊(first block in region, FBR)壓縮時(shí)所生成的字典項(xiàng)來協(xié)助壓縮區(qū)域內(nèi)后續(xù)緩存塊(successive block in region, SBR)的數(shù)據(jù),由于緩存的壓縮局部性,該方法可以近似達(dá)到對(duì)整個(gè)緩存區(qū)域共同使用一個(gè)字典進(jìn)行壓縮的壓縮率。

    RCC同時(shí)兼顧了延時(shí)、功耗與壓縮率。首先,緩存塊的壓縮、解壓縮僅針對(duì)當(dāng)前命中的緩存塊,不會(huì)修改組內(nèi)的其他緩存塊,而需要額外讀取的FBR字典項(xiàng)可以通過多路命中的方式覆蓋延時(shí),因此延時(shí)并沒有增加;其次,緩存塊在壓縮、解壓縮時(shí)僅額外讀取了FBR的字典項(xiàng),帶來少量的功耗開銷;最后,由于FBR的協(xié)作壓縮,SBR能夠利用FBR字典項(xiàng)進(jìn)行壓縮,其壓縮率可以更高。

    2.2.1 壓縮

    RCC過程以C-PACK算法為基礎(chǔ),所不同的是在壓縮FBR和SBR時(shí)對(duì)字典的不同處理過程。

    FBR的壓縮是一個(gè)獨(dú)立的過程,和C-PACK一樣,根據(jù)讀取到的數(shù)據(jù)字生成字典進(jìn)行后續(xù)數(shù)據(jù)字的壓縮。FBR作為協(xié)作者,如果插入Cache時(shí)已有該緩存區(qū)域中的其他塊存在,則SBR的壓縮有所不同,在壓縮前如果在Cache中存在FBR,則需要將FBR的字典項(xiàng)讀取到壓縮器的字典中。如圖 2所示,在執(zhí)行壓縮時(shí),若存在FBR,其字典項(xiàng)會(huì)被讀取到字典中。如果命中,則直接使用該字典項(xiàng)進(jìn)行壓縮;如果沒有命中,處理方式與C-PACK相同。

    圖2 RCC器的字典

    由于FBR的字典項(xiàng)需要在SBR壓縮時(shí)使用,F(xiàn)BR的壓縮方式與SBR有所不同。FBR的壓縮僅針對(duì)自身,不需要從其他緩存塊讀取字典項(xiàng)。然而,由于FBR需要在SBR進(jìn)行壓縮時(shí)被快速訪問,因此,F(xiàn)BR在壓縮時(shí),選擇字典中計(jì)數(shù)器值最大的兩個(gè)字典項(xiàng)放置在數(shù)據(jù)塊的頭部,在讀取SBR字典時(shí),僅讀取數(shù)據(jù)頭的8個(gè)字節(jié)作為SBR字典項(xiàng)。

    2.2.2 解壓縮

    解壓縮的過程與C-PACK相同,只是在為SBR進(jìn)行解壓縮前需要讀取FBR的字典項(xiàng)。然而,如果該過程順序執(zhí)行,將增加額外的延時(shí)。解壓縮過程是訪存的關(guān)鍵路徑,解壓縮延時(shí)將直接影響Cache的訪問延時(shí),從而影響性能。為此,當(dāng)讀取SBR時(shí),F(xiàn)BR字典項(xiàng)的讀取需要與SBR同步進(jìn)行以避免增加額外的延時(shí)。

    為實(shí)現(xiàn)SBR與FBR的壓縮信息同步讀取,消除額外的等待延時(shí),需要Cache支持多路命中機(jī)制。多路命中的意思是在Cache訪問SBR時(shí),同時(shí)命中FBR(若存在),使得兩者的讀取可以同步進(jìn)行。由于cache的每一路都是獨(dú)立的RAM,在訪問Cache時(shí),可以使得部分路訪問SBR所映射組的索引,另一部分路訪問FBR所映射組的索引。通過在分配時(shí)通過地址哈希函數(shù)確定FBR和SBR各自允許存放的路數(shù),使得不同緩存區(qū)域的FBR和SBR的路映射不同,從而在整個(gè)Cache范圍內(nèi)消除了路限制帶來的潛在沖突。映射為FBR的路的tag與FBR的tag比較,映射為SBR的路與SBR的tag比較,最終根據(jù)各自的命中情況讀取FBR的壓縮信息和SBR的數(shù)據(jù)。

    定義W={w1, w2, …, wn}為所有路的集合,WFBR和WSBR分別表示FBR和SBR的候選可分配的way,且定義wk=wk-1+1, w1=wn+1。那么有:

    WFBR={w1+h, w2+h,…,wn/2+h}

    (2)

    其中h=hash(addr[39:10])且0

    WSBR=W-WFBR

    (3)

    WFBR和WSBR的值根據(jù)地址10-40位的哈希運(yùn)算得到,因此不同緩存區(qū)域,F(xiàn)BR和SBR所能分配的候選路不同。而在命中查找時(shí),根據(jù)hash運(yùn)算得到相應(yīng)的WFBR和WSBR,然后再根據(jù)FBR和SBR的索引分別對(duì)WFBR和WSBR的路進(jìn)行訪問,即可實(shí)現(xiàn)一次訪問,同時(shí)命中FBR和SBR。

    2.3 Cache組織結(jié)構(gòu)

    RCC采用基于VSC[8]的壓縮Cache結(jié)構(gòu),tag的數(shù)量為data的4倍,以最高支持4倍壓縮率。

    圖3所示為RCC的tag字段。addr標(biāo)識(shí)緩存塊地址,可據(jù)此判斷該塊是FBR還是SBR;state記錄緩存塊的狀態(tài)和一致性信息;LRU保存訪問歷史以實(shí)現(xiàn)LRU替換算法;size是該緩存塊被壓縮的大小,以segment為單位,所在塊的偏移通過將其之前所有塊的size相加得到。

    圖3 RCC的tag字段

    對(duì)于擁有8個(gè)64字節(jié)緩存塊的組,由于提供了4倍的tag,每個(gè)組有32個(gè)tag用來保存壓縮塊的信息。由于RCC使用了多路命中的機(jī)制,F(xiàn)BR僅會(huì)在其中16個(gè)tag中進(jìn)行查找,SBR則會(huì)在另外16個(gè)tag中進(jìn)行查找。多路命中技術(shù)對(duì)兩個(gè)地址分別進(jìn)行16路的全相聯(lián)比較,而不是各自進(jìn)行32項(xiàng)的全相聯(lián)比較,從而避免了額外的延時(shí)和功耗開銷。

    由于SBR的壓縮利用了FBR的字典項(xiàng),如果FBR發(fā)生替換,所有使用FBR字典項(xiàng)壓縮的SBR都需要進(jìn)行壓縮數(shù)據(jù)的恢復(fù),而恢復(fù)的代價(jià)很大。RCC通過以下3種途徑解決該問題:

    (1) 采用修改的LRU算法,發(fā)生替換時(shí)如果LRU隊(duì)尾是FBR,則向LRU隊(duì)列前面查找,直到找到非FBR為止。如果不存在非FBR的緩存塊,在FBR的tag中記錄了被SBR使用的次數(shù)(usage count,UC,如圖 3),優(yōu)先選擇UC為0的FBR進(jìn)行替換。

    (2) FBR被充分哈希到不同的組,采用如下映射方式:index =hash(addr[39:10]) + addr[9:6],使得不同緩存區(qū)域的FBR均等的映射到所有的組中,且相同緩存區(qū)域內(nèi)的塊被映射到不同的組。

    (3) 將被替換的FBR插入victim buffer,直到SBR依次被替換,UC降為0后FBR才被替換。

    2.4 存儲(chǔ)開銷

    表2列出了RCC, C-PACK, 2X Base與Base存儲(chǔ)空間需求比較結(jié)果。RCC在比Base多22.6%的面積開銷,對(duì)于4MB的Cache,RCC需要多消耗992kB的存儲(chǔ)空間,以實(shí)現(xiàn)大于2倍的壓縮率。不過,相比2X Base,RCC的面積開銷大大降低,減少了63.1%。

    表2 RCC, C-PACK, 2X Base與Base存儲(chǔ)空間需求比較 (Base為4MB存儲(chǔ),8路組相聯(lián),64B緩存塊)

    3 實(shí)驗(yàn)數(shù)據(jù)

    3.1 實(shí)驗(yàn)平臺(tái)

    本文采用MIT大學(xué)發(fā)布的Graphite分布式多核模擬器[13],Graphite可以直接在主機(jī)上運(yùn)行被模擬的程序,基于動(dòng)態(tài)插樁的方式獲取執(zhí)行過程中的信息,模擬目標(biāo)結(jié)構(gòu)的運(yùn)行機(jī)制,從而獲取性能等參數(shù)。該模擬器的特性是系統(tǒng)開銷小,可并行模擬多核結(jié)構(gòu),速度較快,但是由于它不是時(shí)鐘精確類型的模擬器,對(duì)于模擬要求具有精確時(shí)鐘信息的結(jié)構(gòu)如流水線結(jié)構(gòu)模擬準(zhǔn)確性較差。然而該模擬器提供了完整的多處理器多路組相聯(lián)Cache的行為模型和一致性模型,支持對(duì)壓縮Cache的行為進(jìn)行建模,因此該模擬器能夠滿足本文的實(shí)驗(yàn)要求。

    本文主要研究數(shù)據(jù)壓縮在LLC中的運(yùn)用,以提升緩存的有效大小,從而降低其失效率最終實(shí)現(xiàn)性能的提升。而處理器核的微結(jié)構(gòu)以及緩存一致性協(xié)議則不在考察的范圍內(nèi),因此相關(guān)參數(shù)僅采用比較常用的設(shè)計(jì)參數(shù)。具體的配置如表3所示。

    表3 目標(biāo)系統(tǒng)的參數(shù)配置

    3.2 壓縮率

    如圖4所示,與C-PACK相比,RCC壓縮率有較大提升。如radiosity, lu_non_contiguous, water-nsquared的壓縮率提升超過了13%,對(duì)于所有測(cè)試程序,壓縮率平均提升了12.34%,壓縮率從2.2倍提升到2.54倍。實(shí)驗(yàn)結(jié)果說明了RCC對(duì)壓縮率的提升是擁有普遍好處的,這是由Cache的空間局部性與壓縮局部性決定的。雖然Cache仍然使用緩存塊為粒度進(jìn)行存儲(chǔ)和壓縮,但是其壓縮率已經(jīng)接近直接對(duì)緩存區(qū)域進(jìn)行壓縮,而代價(jià)僅僅是每次訪問需要同時(shí)多讀一個(gè)tag和FBR的字典項(xiàng)。

    圖4 RCC與C-PACK壓縮率實(shí)驗(yàn)結(jié)果對(duì)比

    3.3 性能分析

    與C-PACK相比,RCC需要在壓縮SBR時(shí)同時(shí)讀取FBR的字典項(xiàng)來協(xié)作壓縮,如果該過程串行,至少需要增加2拍延時(shí)(SBR需要等待FBR命中和字典項(xiàng)的讀取),而多路命中很好地并行化了該過程。任意SBR可以和FBR同時(shí)被命中,F(xiàn)BR字典項(xiàng)的讀取延時(shí)剛好被SBR的讀取延時(shí)覆蓋,SBR在壓縮、解壓縮時(shí),F(xiàn)BR的字典項(xiàng)已經(jīng)在字典中就緒。因此,RCC的延時(shí)與C-PACK相同。而且,實(shí)驗(yàn)結(jié)果表明,RCC的缺失率相比C-PACK更低,這是由于Cache中存儲(chǔ)了更多數(shù)據(jù),有用數(shù)據(jù)被替換的概率降低。如圖5所示均一化的IPC數(shù)據(jù),RCC相比Base均有10%~30%不等的性能提升,而與2X Base相比,barnes, cholesky, ocean, radiosity, radix, raytrace, volrend等程序均有5%~13%不等的性能提升,而fft, lu, water等程序則有3%左右的性能下降,這是由于程序壓縮率的不同導(dǎo)致。壓縮率高的程序能帶來更低的缺失率,從而從整體上增加IPC;而壓縮率較低的程序?qū)?shù)據(jù)壓縮不敏感,反而由于解壓縮等帶來的開銷降低了系統(tǒng)性能。這種問題可以通過動(dòng)態(tài)關(guān)閉數(shù)據(jù)壓縮來解決,且與本文的方案相容,可以共同提升系統(tǒng)的整體性能。

    圖5 RCC, C-PACK, Base和2X Base的均一化IPC數(shù)據(jù)

    4 結(jié) 論

    本文總結(jié)了目前壓縮緩存的結(jié)構(gòu)與算法研究進(jìn)展,并基于數(shù)據(jù)在緩存中呈現(xiàn)的壓縮局部特性,提出了區(qū)域協(xié)作的Cache壓縮。相比C-PACK壓縮,RCC有明顯的壓縮率提升,同時(shí)沒有帶來額外的延時(shí),因而帶來了近乎“免費(fèi)”的性能提升。另外,RCC對(duì)于所有基于字典的Cache壓縮算法和結(jié)構(gòu)都具有適應(yīng)性,而不僅限于特定的結(jié)構(gòu)和算法。

    未來的工作包括進(jìn)一步的發(fā)掘數(shù)據(jù)壓縮的粒度,與虛擬內(nèi)存的特性結(jié)合,在頁(yè)內(nèi)尋找壓縮的可能性;對(duì)緩存數(shù)據(jù)進(jìn)行分類,對(duì)指令、浮點(diǎn)數(shù)據(jù)這類數(shù)據(jù)使用專用的壓縮算法;以及在保證壓縮率的同時(shí),探索進(jìn)一步降低解壓縮延時(shí)的方法。

    [1] Alaa R A, David A W. Frequent Pattern Compression: A Significance-Based Compression Scheme for L2 Caches. In: Technical Report 1500, Computer Sciences Department, UW-Madison, 2004

    [2] Chen X, Yang L, Dick R P, et al. C-pack: A high-performance microprocessor cache compression algorithm.IEEETransactionsonVeryLargeScaleIntegration(VLSI)Systems, 2010, 18(8): 1196-1208

    [3] Pekhimenko G, Seshadri V, Mutlu O, et al. Base-delta-immediate compression: practical data compression for on-chip caches. In: Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques, Minneapolis, USA, 2012. 377-388

    [4] Arelakis A, Stenstrom P. SC2: A statistical compression cache scheme. In: Proceedings of the 41st Annual International Symposium on Computer Architecuture, Minneapolis, USA, 2014. 145-156

    [5] Yang J, Zhang Y, Gupta R. Frequent value compression in data caches. In: Proceedings of the 33rd Annual ACM/IEEE International Symposium on Microarchitecture, Monterey, USA, 2000. 258-265

    [6] Ziv J, Lempel A. A universal algorithm for sequential data compression.IEEETransactionsoninformationtheory, 1977, 23(3): 337-343

    [7] Dusser J, Piquet T, Seznec A. Zero-content augmented caches. In: Proceedings of the 23rd International Conference on Supercomputing, Yorktown, Heights, USA, 2009. 46-55

    [8] Alaa R A, David A W. Adaptive cache compression for high-performance processors. In: Proceedings of the 31st Annual International Symposium on Computer Architecture, Munich, Germany, 2004. 212-223

    [9] Benini L, Macii A, Macii E, et al. Selective instruction compression for memory energy reduction in embedded systems. In: Proceedings of the 1999 International Symposium on Low Power Electronics and Design, San Diego, USA, 1999. 206-211

    [10] Sardashti S, Seznec A, Wood D. Skewed compressed caches. In: Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture, Cambridge, UK, 2014. 331-342

    [11] Baek S, Lee H G, Nicopoulos C, et al. ECM: Effective capacity maximizer for high-performance compressed caching. In: Proceedings of the IEEE 19th International Symposium on High Performance Computer Architecture, Shenzhen, China, 2013. 131-142

    [12] Nitta C, Farrens M. Techniques for increasing effective data bandwidth. In: Proceedings of the IEEE International Conference on Computer Design, Lake Tahoe, USA, 2008. 514-519

    [13] Miller J E, Kasture H, Kurian G, et al. Graphite: A distributed parallel simulator for multicores. In: Proceedings of the IEEE 16th International Symposium on High Performance Computer Architecture, Bangarlore, India, 2010. 1-12

    The Cache compression based on region cooperation

    Zeng Lu******, Li Peng******, Wang Huandong****

    (*State Key Laboratory of Computer Architecture(Institute of Computing Technology,Chinese Academy of Science), Beijing 100190) (**Institute of Computing Technology, Chinese Academy of Science, Beijing 100190) (***University of Chinese Academy of Science, Beijing 100049) (****Loongson Technology Corporation Limited, Beijing 100190)

    The Cache compression was studied to increase Cache’s effective capacity, and a region cooperative compression (RCC) algorithm was proposed to improve the compression ratio of the last level Cache. Different to traditional Cache compression algorithms, the RCC algorithm exploits the compression locality to compress Cache blocks in a Cache region by the cooperation of the first block in the region, instead of compressing the whole Cache region. RCC effectively explores the duplications across the Cache blocks in a Cache region and shows a comparable compression ratio with dictionary compression approaches with the whole Cache region as the compression granularity, whereas the (de)compression latency is not increased. The experimental results show that RCC provides the better average compression ratio than the compression algorithm of C-PACK by 12.34%, which causes the performance improvement of 5%. Compared to the non-compressive Cache with double size, the effective capacity increases by 27%, the performance increases by 8.6% and the area decreases by 63.1%.

    data compression, dictionary compression, region cooperative compression (RCC), Cache compression, memory access optimization

    10.3772/j.issn.1002-0470.2016.05.003

    ①國(guó)家“核高基”科技重大專項(xiàng)課題(2014ZX01020201, 2014ZX01030101),國(guó)家自然科學(xué)基金(61232009, 61432016)和863計(jì)劃(2013AA014301)資助項(xiàng)目。

    2016-01-18)

    ②男,1987年生,博士生;研究方向:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu);聯(lián)系人,E-mail: zenglu@ict.ac.cn

    猜你喜歡
    壓縮算法壓縮率字典
    開心字典
    家教世界(2023年28期)2023-11-14 10:13:50
    開心字典
    家教世界(2023年25期)2023-10-09 02:11:56
    基于參數(shù)識(shí)別的軌道電路監(jiān)測(cè)數(shù)據(jù)壓縮算法研究
    水密封連接器尾部接電纜的優(yōu)化設(shè)計(jì)
    纏繞墊片產(chǎn)品質(zhì)量控制研究
    更正聲明
    多載波通信系統(tǒng)中CQI無損壓縮法研究
    分布式多視點(diǎn)視頻編碼在應(yīng)急通信中的應(yīng)用
    我是小字典
    正版字典
    讀者(2016年14期)2016-06-29 17:25:50
    制服诱惑二区| 亚洲国产精品成人综合色| 日韩欧美国产一区二区入口| 夜夜看夜夜爽夜夜摸| 亚洲一区二区三区色噜噜| 超碰成人久久| 又黄又粗又硬又大视频| 亚洲国产高清在线一区二区三| 亚洲成人久久性| 不卡一级毛片| 一区二区三区激情视频| 三级国产精品欧美在线观看 | 蜜桃久久精品国产亚洲av| 中文在线观看免费www的网站 | 色在线成人网| 一级毛片女人18水好多| 啦啦啦观看免费观看视频高清| www日本在线高清视频| 午夜精品一区二区三区免费看| 黄色毛片三级朝国网站| 国产精品一区二区三区四区免费观看 | 最近在线观看免费完整版| 很黄的视频免费| 欧美另类亚洲清纯唯美| 国产在线精品亚洲第一网站| 久久国产精品人妻蜜桃| 99热这里只有是精品50| 亚洲在线自拍视频| 免费一级毛片在线播放高清视频| 黄色a级毛片大全视频| 国产三级黄色录像| 舔av片在线| 亚洲aⅴ乱码一区二区在线播放 | 亚洲精品在线美女| 97碰自拍视频| 男人舔女人下体高潮全视频| 国产午夜精品久久久久久| 久久精品国产亚洲av高清一级| 一个人免费在线观看电影 | 色综合欧美亚洲国产小说| 丝袜美腿诱惑在线| 18禁美女被吸乳视频| 啦啦啦免费观看视频1| 黄色女人牲交| 欧美黑人欧美精品刺激| 亚洲av成人av| 99在线人妻在线中文字幕| 免费观看人在逋| 亚洲av熟女| 午夜亚洲福利在线播放| 国产精品久久久久久人妻精品电影| 久久亚洲真实| 久久香蕉激情| 久久久久国产一级毛片高清牌| 久久这里只有精品19| 亚洲色图 男人天堂 中文字幕| 国产成人av教育| 亚洲欧美激情综合另类| 一卡2卡三卡四卡精品乱码亚洲| 日本三级黄在线观看| 欧美大码av| 成人欧美大片| 两性午夜刺激爽爽歪歪视频在线观看 | 三级男女做爰猛烈吃奶摸视频| 午夜视频精品福利| 午夜免费成人在线视频| 国产成人系列免费观看| 最好的美女福利视频网| 神马国产精品三级电影在线观看 | 久久天躁狠狠躁夜夜2o2o| 欧美乱妇无乱码| 精品无人区乱码1区二区| 很黄的视频免费| 国产久久久一区二区三区| 啦啦啦观看免费观看视频高清| 精品高清国产在线一区| 亚洲最大成人中文| 亚洲精品在线美女| 成人三级黄色视频| 一二三四社区在线视频社区8| 九九热线精品视视频播放| 18禁黄网站禁片午夜丰满| 天堂av国产一区二区熟女人妻 | 国产成人精品无人区| 狂野欧美激情性xxxx| 国产亚洲精品av在线| 无遮挡黄片免费观看| 欧美成人免费av一区二区三区| 香蕉久久夜色| 婷婷精品国产亚洲av在线| 视频区欧美日本亚洲| 非洲黑人性xxxx精品又粗又长| 看黄色毛片网站| 午夜福利在线在线| 欧美在线一区亚洲| 夜夜躁狠狠躁天天躁| 精品国产亚洲在线| 亚洲av电影在线进入| 成年免费大片在线观看| 白带黄色成豆腐渣| 久久这里只有精品中国| 91国产中文字幕| 中文字幕久久专区| 欧美+亚洲+日韩+国产| 九九热线精品视视频播放| x7x7x7水蜜桃| 欧美 亚洲 国产 日韩一| 亚洲av成人不卡在线观看播放网| 黄频高清免费视频| 色综合欧美亚洲国产小说| 亚洲av五月六月丁香网| 国产91精品成人一区二区三区| 久久精品成人免费网站| 一区二区三区国产精品乱码| 午夜福利18| 日本a在线网址| 老司机福利观看| 三级男女做爰猛烈吃奶摸视频| 午夜免费观看网址| 真人一进一出gif抽搐免费| 99精品在免费线老司机午夜| 国产野战对白在线观看| 男女之事视频高清在线观看| 欧美另类亚洲清纯唯美| 亚洲国产高清在线一区二区三| 欧美黄色片欧美黄色片| 久久这里只有精品19| 熟妇人妻久久中文字幕3abv| 日本五十路高清| 久久中文看片网| av有码第一页| 51午夜福利影视在线观看| 在线观看免费日韩欧美大片| 中出人妻视频一区二区| 欧美久久黑人一区二区| 欧美日韩国产亚洲二区| 欧美精品亚洲一区二区| 老熟妇仑乱视频hdxx| a级毛片a级免费在线| 老鸭窝网址在线观看| 18美女黄网站色大片免费观看| 欧美日韩一级在线毛片| 久久久久精品国产欧美久久久| 午夜日韩欧美国产| 国产乱人伦免费视频| 国产不卡一卡二| 亚洲国产欧美一区二区综合| √禁漫天堂资源中文www| 全区人妻精品视频| 哪里可以看免费的av片| 国产亚洲欧美98| 成人高潮视频无遮挡免费网站| 午夜a级毛片| 免费观看人在逋| www.精华液| 又紧又爽又黄一区二区| 亚洲国产看品久久| 在线观看免费午夜福利视频| 欧美日本视频| 欧美黑人精品巨大| 制服诱惑二区| 岛国在线观看网站| 一区福利在线观看| 后天国语完整版免费观看| 欧美高清成人免费视频www| 五月伊人婷婷丁香| 久久午夜亚洲精品久久| 超碰成人久久| 99在线人妻在线中文字幕| 99久久精品国产亚洲精品| 免费在线观看视频国产中文字幕亚洲| 美女午夜性视频免费| 日本 欧美在线| 欧美国产日韩亚洲一区| 日韩欧美国产一区二区入口| 日韩高清综合在线| 在线国产一区二区在线| 国产精品av视频在线免费观看| 久久亚洲真实| 在线国产一区二区在线| 97人妻精品一区二区三区麻豆| 免费看十八禁软件| 亚洲 欧美一区二区三区| 午夜免费成人在线视频| 男人的好看免费观看在线视频 | 在线观看美女被高潮喷水网站 | 嫩草影视91久久| 91av网站免费观看| 中文字幕最新亚洲高清| 国产三级在线视频| 给我免费播放毛片高清在线观看| 国产亚洲精品av在线| 色噜噜av男人的天堂激情| 久久久久九九精品影院| 老司机深夜福利视频在线观看| www日本黄色视频网| 国模一区二区三区四区视频 | 久久精品91蜜桃| 国产精品日韩av在线免费观看| 欧美丝袜亚洲另类 | 色噜噜av男人的天堂激情| 91国产中文字幕| 亚洲成av人片在线播放无| 精华霜和精华液先用哪个| 午夜福利在线观看吧| 欧美最黄视频在线播放免费| 美女免费视频网站| 三级毛片av免费| 成人高潮视频无遮挡免费网站| 一进一出好大好爽视频| 久久久精品国产亚洲av高清涩受| 特级一级黄色大片| 亚洲真实伦在线观看| 欧美一区二区国产精品久久精品 | 国产69精品久久久久777片 | 精品久久久久久久人妻蜜臀av| 欧美精品亚洲一区二区| 97人妻精品一区二区三区麻豆| 国产精品av久久久久免费| 国产高清有码在线观看视频 | 美女 人体艺术 gogo| 人妻久久中文字幕网| 久久人妻av系列| 一级毛片女人18水好多| 白带黄色成豆腐渣| 欧美日本视频| 又黄又爽又免费观看的视频| 日韩 欧美 亚洲 中文字幕| 国产精品九九99| 成年人黄色毛片网站| 午夜福利成人在线免费观看| 欧美绝顶高潮抽搐喷水| 欧美av亚洲av综合av国产av| 国产亚洲精品久久久久5区| 美女 人体艺术 gogo| 国产亚洲精品综合一区在线观看 | 麻豆国产av国片精品| 久久人妻av系列| 亚洲中文字幕一区二区三区有码在线看 | 国产野战对白在线观看| 久久亚洲真实| 天堂影院成人在线观看| 欧美日本亚洲视频在线播放| 精品熟女少妇八av免费久了| 国产精品久久久久久久电影 | 他把我摸到了高潮在线观看| 人成视频在线观看免费观看| 国产亚洲欧美98| 亚洲中文日韩欧美视频| 久久久久久九九精品二区国产 | 国内精品久久久久精免费| 在线a可以看的网站| 久久精品夜夜夜夜夜久久蜜豆 | 怎么达到女性高潮| 一区二区三区高清视频在线| 久久中文字幕一级| 亚洲av电影不卡..在线观看| 在线a可以看的网站| 在线免费观看的www视频| 亚洲精华国产精华精| 黄色丝袜av网址大全| 亚洲最大成人中文| 村上凉子中文字幕在线| 90打野战视频偷拍视频| 久99久视频精品免费| 精品久久久久久久人妻蜜臀av| 精品人妻1区二区| 亚洲狠狠婷婷综合久久图片| 女警被强在线播放| 黄色a级毛片大全视频| 久久久久久免费高清国产稀缺| 国产91精品成人一区二区三区| 久久精品成人免费网站| 高清在线国产一区| 在线a可以看的网站| 亚洲成人国产一区在线观看| 亚洲精华国产精华精| 日本三级黄在线观看| 国产视频一区二区在线看| 国产精品久久久人人做人人爽| 午夜福利在线观看吧| 熟女少妇亚洲综合色aaa.| 久久久久精品国产欧美久久久| 一边摸一边做爽爽视频免费| 免费av毛片视频| 国产精品久久久久久人妻精品电影| 久久亚洲真实| 成人国语在线视频| 91老司机精品| 亚洲自拍偷在线| 午夜精品在线福利| 黄色成人免费大全| 日韩av在线大香蕉| 亚洲一区中文字幕在线| 国产精品自产拍在线观看55亚洲| 中文在线观看免费www的网站 | 91麻豆av在线| 天天躁狠狠躁夜夜躁狠狠躁| 久久这里只有精品19| 国产亚洲精品久久久久久毛片| 久久精品国产亚洲av香蕉五月| 夜夜爽天天搞| 中文在线观看免费www的网站 | 国内揄拍国产精品人妻在线| 少妇粗大呻吟视频| 午夜免费观看网址| 国产不卡一卡二| 99国产极品粉嫩在线观看| 亚洲一码二码三码区别大吗| 日韩欧美在线二视频| 99久久久亚洲精品蜜臀av| 18禁美女被吸乳视频| 50天的宝宝边吃奶边哭怎么回事| 午夜两性在线视频| 国产亚洲欧美在线一区二区| 成年女人毛片免费观看观看9| 精品福利观看| 免费高清视频大片| 成年免费大片在线观看| 777久久人妻少妇嫩草av网站| 亚洲av美国av| 久99久视频精品免费| 欧美激情久久久久久爽电影| 久久婷婷人人爽人人干人人爱| 色精品久久人妻99蜜桃| 日韩大尺度精品在线看网址| 亚洲成人精品中文字幕电影| 大型av网站在线播放| 久久久久精品国产欧美久久久| 不卡一级毛片| 免费av毛片视频| 国产成人精品久久二区二区91| 91大片在线观看| 国产精品亚洲一级av第二区| 五月玫瑰六月丁香| 成年免费大片在线观看| 在线十欧美十亚洲十日本专区| 香蕉av资源在线| 午夜精品在线福利| 亚洲国产欧美网| 美女午夜性视频免费| 桃红色精品国产亚洲av| 久久久久久久久中文| 欧美av亚洲av综合av国产av| 丝袜人妻中文字幕| 一区二区三区国产精品乱码| 国产高清激情床上av| tocl精华| 欧美乱码精品一区二区三区| 国产高清激情床上av| 欧美成狂野欧美在线观看| 欧美乱色亚洲激情| 国产91精品成人一区二区三区| 欧美日韩一级在线毛片| 久久久久精品国产欧美久久久| 亚洲全国av大片| 性色av乱码一区二区三区2| 欧美丝袜亚洲另类 | 午夜福利视频1000在线观看| 精品一区二区三区av网在线观看| 大型黄色视频在线免费观看| 黄频高清免费视频| 精品久久久久久成人av| 最近最新中文字幕大全电影3| 成年女人毛片免费观看观看9| 在线a可以看的网站| 精品国产美女av久久久久小说| 国产熟女午夜一区二区三区| 国产免费男女视频| 美女高潮喷水抽搐中文字幕| 可以在线观看的亚洲视频| 亚洲av成人一区二区三| 亚洲成人中文字幕在线播放| 一个人观看的视频www高清免费观看 | 在线看三级毛片| 麻豆一二三区av精品| 精品久久久久久久久久久久久| 精品国内亚洲2022精品成人| 国产精品免费视频内射| 91字幕亚洲| 国产精品亚洲一级av第二区| 人妻夜夜爽99麻豆av| 国产精品日韩av在线免费观看| 亚洲人与动物交配视频| 超碰成人久久| 久久久久久久久久黄片| 99久久国产精品久久久| 亚洲专区字幕在线| 国产精品久久视频播放| 亚洲天堂国产精品一区在线| 久久精品人妻少妇| 久久亚洲真实| 麻豆一二三区av精品| 男女做爰动态图高潮gif福利片| 国产精品美女特级片免费视频播放器 | 天天添夜夜摸| 精品久久久久久成人av| 国产高清激情床上av| 蜜桃久久精品国产亚洲av| 一a级毛片在线观看| 精品久久蜜臀av无| 成人三级黄色视频| 成年女人毛片免费观看观看9| 国产精品久久久av美女十八| aaaaa片日本免费| 亚洲精品中文字幕在线视频| av福利片在线| 欧美又色又爽又黄视频| 首页视频小说图片口味搜索| 国产又色又爽无遮挡免费看| 丰满人妻熟妇乱又伦精品不卡| 久久婷婷人人爽人人干人人爱| 蜜桃久久精品国产亚洲av| 国产精品久久久人人做人人爽| 精品久久久久久久久久久久久| 久久精品夜夜夜夜夜久久蜜豆 | www日本黄色视频网| 国产v大片淫在线免费观看| 少妇人妻一区二区三区视频| 亚洲男人的天堂狠狠| 久久亚洲精品不卡| 国产精品一区二区免费欧美| 中文字幕人妻丝袜一区二区| 久久热在线av| 黄片小视频在线播放| 看免费av毛片| 久久久精品欧美日韩精品| 国产亚洲精品一区二区www| 欧美日韩乱码在线| 国产乱人伦免费视频| 国模一区二区三区四区视频 | 国产精品一区二区三区四区久久| 天堂av国产一区二区熟女人妻 | 免费在线观看日本一区| 91成年电影在线观看| 日日摸夜夜添夜夜添小说| or卡值多少钱| 欧美日韩瑟瑟在线播放| 中亚洲国语对白在线视频| 全区人妻精品视频| tocl精华| 99国产极品粉嫩在线观看| 一进一出抽搐动态| 国产三级中文精品| www国产在线视频色| 男女下面进入的视频免费午夜| 一本精品99久久精品77| 日韩三级视频一区二区三区| 国产熟女xx| 国内毛片毛片毛片毛片毛片| 免费无遮挡裸体视频| 91国产中文字幕| 不卡一级毛片| 午夜精品在线福利| 全区人妻精品视频| 久久中文字幕一级| 久久中文字幕一级| 最近最新中文字幕大全电影3| 制服人妻中文乱码| 久久久精品国产亚洲av高清涩受| 日本黄大片高清| 国产伦人伦偷精品视频| 国产在线精品亚洲第一网站| 久久婷婷人人爽人人干人人爱| 成人亚洲精品av一区二区| 日本 av在线| 好男人在线观看高清免费视频| 日本熟妇午夜| av视频在线观看入口| 韩国av一区二区三区四区| 黄色视频不卡| xxx96com| 长腿黑丝高跟| 欧美一级a爱片免费观看看 | 18美女黄网站色大片免费观看| 白带黄色成豆腐渣| 最近最新免费中文字幕在线| 成人高潮视频无遮挡免费网站| 久久人妻福利社区极品人妻图片| 国产亚洲精品综合一区在线观看 | 久久久久免费精品人妻一区二区| 国产一区二区在线av高清观看| 国产探花在线观看一区二区| 波多野结衣高清作品| 久久久精品大字幕| 亚洲,欧美精品.| 俄罗斯特黄特色一大片| 欧美日本视频| 嫩草影院精品99| 国产亚洲精品av在线| a级毛片a级免费在线| 免费观看精品视频网站| 国产免费av片在线观看野外av| 国产精品美女特级片免费视频播放器 | 夜夜爽天天搞| 白带黄色成豆腐渣| 天天添夜夜摸| www.熟女人妻精品国产| 午夜影院日韩av| 99久久国产精品久久久| 超碰成人久久| 久久久国产精品麻豆| 中文字幕av在线有码专区| 久久久久久久午夜电影| 色综合婷婷激情| 宅男免费午夜| 亚洲精品国产一区二区精华液| 亚洲国产精品999在线| 欧美3d第一页| 999久久久国产精品视频| 18美女黄网站色大片免费观看| 老司机深夜福利视频在线观看| 国产精品爽爽va在线观看网站| 亚洲中文日韩欧美视频| 亚洲av成人av| 亚洲第一电影网av| 少妇被粗大的猛进出69影院| 日本撒尿小便嘘嘘汇集6| 国产野战对白在线观看| 日日爽夜夜爽网站| 麻豆国产97在线/欧美 | 亚洲专区中文字幕在线| 国内精品久久久久久久电影| 男女午夜视频在线观看| 少妇的丰满在线观看| 国产成人系列免费观看| 丰满人妻熟妇乱又伦精品不卡| 欧美午夜高清在线| 国产又黄又爽又无遮挡在线| www.999成人在线观看| 黄色毛片三级朝国网站| 久久久精品欧美日韩精品| 免费在线观看视频国产中文字幕亚洲| 69av精品久久久久久| 一二三四在线观看免费中文在| 亚洲五月婷婷丁香| 久久精品91蜜桃| 99精品久久久久人妻精品| 久久久久亚洲av毛片大全| 国产成人欧美在线观看| 国产av一区二区精品久久| 久久国产精品人妻蜜桃| 国产av不卡久久| 中文字幕高清在线视频| 极品教师在线免费播放| 欧美 亚洲 国产 日韩一| 麻豆av在线久日| 亚洲中文字幕一区二区三区有码在线看 | 99热只有精品国产| 亚洲在线自拍视频| 亚洲性夜色夜夜综合| 岛国在线观看网站| 1024视频免费在线观看| 999久久久精品免费观看国产| 热99re8久久精品国产| 午夜福利18| www.熟女人妻精品国产| www.999成人在线观看| 国产1区2区3区精品| 我要搜黄色片| 激情在线观看视频在线高清| 中国美女看黄片| 久久婷婷成人综合色麻豆| 亚洲人成伊人成综合网2020| 亚洲欧美日韩无卡精品| 国产成人欧美在线观看| 黄色女人牲交| 亚洲欧美日韩高清在线视频| videosex国产| 超碰成人久久| 久久久久国内视频| 老司机靠b影院| 很黄的视频免费| 精华霜和精华液先用哪个| 伦理电影免费视频| 丰满人妻一区二区三区视频av | 免费高清视频大片| 亚洲av片天天在线观看| 两个人视频免费观看高清| 亚洲精品一卡2卡三卡4卡5卡| 后天国语完整版免费观看| 国产精品久久久久久亚洲av鲁大| 老司机午夜福利在线观看视频| 午夜a级毛片| 免费观看精品视频网站| 极品教师在线免费播放| 免费无遮挡裸体视频| 成人手机av| 天天躁夜夜躁狠狠躁躁| av片东京热男人的天堂| 午夜福利欧美成人| 国内久久婷婷六月综合欲色啪| 亚洲精品美女久久久久99蜜臀| 波多野结衣巨乳人妻| 国产高清有码在线观看视频 | 国产精品,欧美在线| 看片在线看免费视频| 丝袜美腿诱惑在线| 一二三四在线观看免费中文在| 后天国语完整版免费观看| 欧美日本亚洲视频在线播放| 美女扒开内裤让男人捅视频| av欧美777| 国产成人av激情在线播放| 亚洲男人天堂网一区| 亚洲av成人一区二区三| 日本免费a在线| 国产精品99久久99久久久不卡| 这个男人来自地球电影免费观看| 身体一侧抽搐| 国产成人aa在线观看| 亚洲精品在线美女| 亚洲成av人片免费观看| 国产精品影院久久| 国产97色在线日韩免费|