欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

C++實(shí)現(xiàn)Cache模擬器:映射方式與命中率優(yōu)化實(shí)踐

C++實(shí)現(xiàn)Cache模擬器:映射方式與命中率優(yōu)化實(shí)踐 簡介這是一份基于VS2010環(huán)境的Cache模擬器源碼包面向計(jì)算機(jī)體系結(jié)構(gòu)、操作系統(tǒng)課程學(xué)習(xí)者用于直觀理解緩存工作原理。完整工程包含13個(gè)文件以11個(gè)C源文件和2個(gè)頭文件組成壓縮包僅9KB代碼精簡但功能完整。項(xiàng)目實(shí)現(xiàn)了直接映射、組關(guān)聯(lián)映射、全關(guān)聯(lián)映射等常見緩存映射方式并內(nèi)置LRU與FIFO替換算法可靈活配置緩存容量、塊大小等參數(shù)輸入地址流后自動(dòng)計(jì)算并輸出不命中率便于對比不同策略對緩存性能的影響。通過閱讀和運(yùn)行源碼可掌握緩存命中率計(jì)算、映射方式選擇及替換算法設(shè)計(jì)等核心知識(shí)點(diǎn)。文件結(jié)構(gòu)劃分清晰main.cpp為程序入口LRU.cpp、FIFO.cpp分別實(shí)現(xiàn)替換算法GetInput.cpp、FileIostream.cpp負(fù)責(zé)數(shù)據(jù)輸入輸出便于按模塊學(xué)習(xí)。目前已有617人學(xué)習(xí)下載適合需要?jiǎng)邮謱?shí)踐緩存機(jī)制的初學(xué)者或備考人員參考。1. 先跑通這個(gè) cache 模擬器再談 cache 命中率優(yōu)化提到 cache 命中率很多人第一反應(yīng)是背公式命中次數(shù)除以總訪問次數(shù)再乘 100%。但真正寫代碼時(shí)你會(huì)發(fā)現(xiàn)公式根本不解決「為什么我的模擬器算出來命中率只有 30%」這種問題。這套 cache 模擬器源碼包解決的就是這個(gè)斷層——它把直接映射、組關(guān)聯(lián)映射、全關(guān)聯(lián)映射、LRU/FIFO 替換算法全部用 C 實(shí)現(xiàn)在 VS2010 工程里喂入地址流文件就能輸出命中率、緩存狀態(tài)和替換過程。適合兩類人一類是計(jì)算機(jī)體系結(jié)構(gòu)課程正在做 cache 實(shí)驗(yàn)的學(xué)生另一類是工作中要評估緩存參數(shù)、又不想自己從零搭模擬器的開發(fā)。它的價(jià)值不在于代碼有多精妙而在于你能改參數(shù)、看輸出、對比策略把課本上的「命中率」「映射」變成一個(gè)個(gè)可以調(diào)試的具體數(shù)字。2. cache 映射與命中率三種映射方式相差多少代碼里怎么算2.1 命中率的定義與模擬器里的計(jì)數(shù)邏輯命中率hit rate的定義很直白處理器發(fā)出的訪問請求中有多少次能直接從 cache 里拿到數(shù)據(jù)。計(jì)算公式為命中率 命中次數(shù) / 總訪問次數(shù) × 100% 未命中率 1 - 命中率在模擬器里總訪問次數(shù)通常不是手?jǐn)?shù)出來的而是在 GetInput.cpp 里逐行讀取地址流文件時(shí)累加得到的。每讀到一個(gè)訪問記錄就對緩存做一次 look up命中則 hitCount未命中則 missCount最后在 PrintOutput.cpp 里輸出。這里有個(gè)容易忽略的點(diǎn)地址流文件里的一行是一次訪問還是一個(gè)內(nèi)存塊請求直接決定統(tǒng)計(jì)口徑。常見做法是每行代表一次訪存請求包含地址值和操作類型讀/寫這樣 hit 和 miss 都是按「次」統(tǒng)計(jì)的。2.2 地址拆分為 tag、index、offset位寬計(jì)算必須先于查找無論哪種映射方式面對一個(gè)主存地址首先要做的是把地址拆成三個(gè)部分塊內(nèi)偏移 offset、組索引 index、標(biāo)簽 tag。這一步在 BuildCache.cpp 或?qū)iT的位置函數(shù)里完成是模擬器最容易算錯(cuò)的地方。以 32 位地址為例假設(shè)緩存容量 64KB、塊大小 64B、2 路組關(guān)聯(lián)// 位寬計(jì)算示例 int offset_bits log2(BLOCK_SIZE); // 64B - 6 位 int index_bits log2(SET_NUM); // 組數(shù)由配置計(jì)算 int tag_bits 32 - offset_bits - index_bits; // 地址拆分 unsigned int offset addr ((1 offset_bits) - 1); unsigned int index (addr offset_bits) ((1 index_bits) - 1); unsigned int tag addr (offset_bits index_bits);參數(shù)說明BLOCK_SIZE是塊大小單位字節(jié)SET_NUM是組數(shù)tag_bits是參與比較的地址高位。三種映射方式的差異其實(shí)集中在SET_NUM的計(jì)算上——直接映射時(shí)組數(shù)等于緩存行數(shù)組關(guān)聯(lián)時(shí)組數(shù) 緩存行數(shù) / 關(guān)聯(lián)度全關(guān)聯(lián)時(shí)組數(shù)就是 1所有行都在同一組里index_bits 等于 0。這個(gè)拆分的邏輯說明offset 用來定位塊內(nèi)的字節(jié)不參與 tag 比較index 決定訪問落在哪一組tag 才是判斷是否命中的關(guān)鍵。很多早期版本的模擬器翻車就是因?yàn)椤附M數(shù)」和「行數(shù)」混淆導(dǎo)致 index 位數(shù)算錯(cuò)地址全部落到錯(cuò)誤的組里。還有一點(diǎn)需要注意有些地址流文件里的地址是十六進(jìn)制字符串比如0x3F2A解析時(shí)直接strtoul轉(zhuǎn)換不需要手工處理字節(jié)序。三種映射方式對同樣一組訪存序列命中率的天花板是不同的。為了直觀對比可以在 main.cpp 里分別用三套參數(shù)跑同一個(gè)輸入文件輸出結(jié)果類似下表映射方式組數(shù)計(jì)算index 位寬沖突未命中傾向直接映射緩存行數(shù)log2(行數(shù))高兩個(gè)塊映射同一行時(shí)互相驅(qū)逐組關(guān)聯(lián)n 路行數(shù) / nlog2(組數(shù))中n 越大沖突概率越低全關(guān)聯(lián)10低只有容量不足才驅(qū)逐2.3 三種映射的查找邏輯代碼層面的實(shí)現(xiàn)差異三種映射的代碼骨架都在 FunctionUsed.cpp 里核心是一個(gè)查找函數(shù)。以組關(guān)聯(lián)為例它的流程是先算 index 定位到某一組然后遍歷組內(nèi)所有行比較 tag再看 valid 位。直接映射只是組內(nèi)只有一行全關(guān)聯(lián)是把整個(gè) cache 當(dāng)一組來遍歷。// 組關(guān)聯(lián)查找示意代碼 bool access_cache(unsigned int addr, int op_type) { unsigned int index get_index(addr); unsigned int tag get_tag(addr); for (int i 0; i ASSOC; i) { // ASSOC 為關(guān)聯(lián)度 int line index * ASSOC i; if (cache[line].valid cache[line].tag tag) { cache[line].last_access access_count; // 更新訪問時(shí)間 if (op_type WRITE) cache[line].dirty true; hit_count; return true; } } // 未命中調(diào)用替換算法選擇 victim 行 int victim select_victim(index); cache[victim].tag tag; cache[victim].valid true; cache[victim].dirty false; // 新行默認(rèn)干凈 miss_count; return false; }邏輯說明select_victim在 LRU.cpp 和 FIFO.cpp 里分別實(shí)現(xiàn)LRU 選last_access最小的行FIFO 選最早裝入的行。這里的op_type WRITE為什么要先看命中再?zèng)Q定是否置臟位因?yàn)橹挥袑懨胁判枰雅K位標(biāo)記出來替換時(shí)決定是否寫回主存讀命中和未命中都不需要設(shè)置臟位。這個(gè)細(xì)節(jié)如果你漏掉后面打印緩存狀態(tài)時(shí)會(huì)發(fā)現(xiàn) write 操作根本沒留下痕跡。全關(guān)聯(lián)映射改動(dòng)最小把index恒定為 0ASSOC設(shè)為緩存行總數(shù)遍歷全部行即可。但它的查找開銷是線性的不適合實(shí)際硬件模擬器里只適合小容量配置做教學(xué)演示。直接映射則相反ASSOC 1恰好是組關(guān)聯(lián)的特例代碼結(jié)構(gòu)不用動(dòng)只是循環(huán)只跑一次。配置組合建議 - 小容量 直接映射觀察沖突未命中比如訪問地址 0x00、0x40、0x00 - 中等容量 2 路組關(guān)聯(lián)對比直接映射命中率提升 - 大容量 全關(guān)聯(lián)驗(yàn)證容量主導(dǎo)下映射方式影響變小這里還有個(gè)常見誤用有人把「組關(guān)聯(lián)的 ASSOC」填成 0 或負(fù)數(shù)導(dǎo)致初始化時(shí)分配了 0 行的空間運(yùn)行時(shí)數(shù)組越界。模擬器不像真正的硬件會(huì)做參數(shù)校驗(yàn)所以這類錯(cuò)誤往往是運(yùn)行到一半崩掉或者打印亂碼才被發(fā)現(xiàn)。3. 編譯運(yùn)行與參數(shù)設(shè)計(jì)從 VS2010 工程到命令行輸出3.1 文件結(jié)構(gòu)與工程入口這個(gè)源碼包是標(biāo)準(zhǔn)的 VS2010 多文件工程每個(gè)文件職責(zé)非常清晰。拿到手先別急著打開看一遍文件清單再動(dòng)手能省不少時(shí)間。文件職責(zé)關(guān)鍵內(nèi)容main.cpp程序入口參數(shù)解析、調(diào)用各模塊InitDef.h / initdef.cpp宏定義與默認(rèn)配置緩存大小、塊大小、映射方式常量InitVariables.cpp變量初始化計(jì)數(shù)器清零、狀態(tài)數(shù)組置初值BuildCache.cpp建立緩存數(shù)據(jù)結(jié)構(gòu)分配行數(shù)組、初始化 valid/dirty/tagGetInput.cpp讀取地址流文件解析十六進(jìn)制地址與讀/寫操作FunctionUsed.cpp / FunctionUsed.h核心操作訪問查找、索引計(jì)算、命中判斷LRU.cpp最近最少使用替換按訪問時(shí)間選 victimFIFO.cpp先進(jìn)先出替換按裝入順序選 victimCachefprint.cpp打印緩存狀態(tài)輸出每行的 tag/valid/dirtyPrintOutput.cpp輸出統(tǒng)計(jì)結(jié)果命中率、未命中率、總訪問數(shù)FileIostream.cpp文件輸入輸出封裝打開、讀取、關(guān)閉的公共函數(shù)main.cpp 的執(zhí)行順序一般是初始化變量 - 讀取參數(shù) - 建立緩存 - 循環(huán)讀地址流并訪問緩存 - 打印結(jié)果。我見過有人上來就改 LRU.cpp 里的一堆邏輯結(jié)果程序根本沒走那條分支因?yàn)槿肟趨?shù)里沒選 LRU全部都用默認(rèn)的 FIFO。所以第一步永遠(yuǎn)是先編譯、跑通默認(rèn)參數(shù)再改任何東西。3.2 地址流文件的格式構(gòu)造地址流是模擬器的輸入核心格式約定通常在 GetInput.cpp 里。最通用的格式是每行一個(gè)十六進(jìn)制地址后面跟一個(gè)操作類型字符空格分隔。0x0000 R 0x0040 W 0x0080 R 0x0000 R說明一下第一行訪問地址 0x0000、讀操作第三行地址 0x0080 距離 0x0000 恰好 128 字節(jié)如果塊大小是 64 字節(jié)這兩個(gè)地址落在兩個(gè)不同的塊可以用來測試直接映射下它們是否爭搶同一行。第四行再次訪問 0x0000如果前一次訪問已經(jīng)被替換出去這里就會(huì) miss這就是沖突未命中的典型場景。如果項(xiàng)目里的 GetInput.cpp 讀取的是多列格式比如地址 操作 指令PC你就得按它的分隔符準(zhǔn)備文件。一個(gè)省事的做法是寫個(gè)腳本生成測試地址流import random with open(trace.txt, w) as f: for i in range(1000): addr random.randint(0, 0xFFFFF) 0xFFFFFFF0 # 4字節(jié)對齊 op random.choice([R, W]) f.write(f0x{addr:X} {op}\n)參數(shù)說明地址范圍 0~0xFFFFF故意讓地址密度集中在幾個(gè)區(qū)間這樣才能觀察到替換和沖突 0xFFFFFFF0是讓地址按 16 字節(jié)對齊更貼近真實(shí)訪存模式。如果你模擬器里讀文件用的是fscanf(%x %c)注意十六進(jìn)制地址帶不帶0x前綴會(huì)影響解析結(jié)果建議統(tǒng)一帶前綴。3.3 運(yùn)行參數(shù)與輸出解讀工程里通常有兩種參數(shù)傳遞方式一種是在 main.cpp 里用常量定義或用交互輸入另一種是把參數(shù)寫成命令行參數(shù)。VS2010 工程里最省事的方式是改工程屬性里的「調(diào)試 命令參數(shù)」不重新編譯也能換配置。假設(shè)模擬器支持命令參數(shù)常見用法cache_sim.exe -c 64KB -b 64 -a 2 -p LRU -i trace.txt -o result.txt各參數(shù)含義-c緩存總?cè)萘?b塊大小-a關(guān)聯(lián)度1 為直接映射0 可為全關(guān)聯(lián)-p替換策略LRU 或 FIFO-i輸入地址流-o輸出結(jié)果文件。輸出文件里通常有這些指標(biāo)Total accesses : 1000 Cache hits : 723 Cache misses : 277 Hit rate : 0.723000 Miss rate : 0.277000看輸出時(shí)先對總數(shù)hits misses必須嚴(yán)格等于total不等就說明統(tǒng)計(jì)邏輯有 bug常見的是未命中后替換時(shí)把 miss 又記了一次。另外注意 miss rate 和 hit rate 加起來必須是 1如果輸出還有一步「強(qiáng)制未命中」之類分類統(tǒng)計(jì)要確認(rèn)它是不是已經(jīng)包含在總 miss 里。3.4 Linux/Mac 下脫離 VS2010 編譯這套代碼是 VS2010 寫的但都是標(biāo)準(zhǔn) C只要把文件后綴的依賴清理一下g 就能編。我在 Linux 上跑的做法是新建一個(gè)目錄把 .cpp 拷貝進(jìn)去寫個(gè)簡單的 Makefile 或者直接命令行編譯g -O2 -o cache_sim \ main.cpp BuildCache.cpp Cachefprint.cpp GetInput.cpp \ FunctionUsed.cpp LRU.cpp FIFO.cpp initdef.cpp \ PrintOutput.cpp FileIostream.cpp InitVariables.cpp \ -I. -stdc11說明-I.是讓編譯器在當(dāng)前目錄找頭文件如果 InitDef.h 里有#include stdafx.h這類 VS 預(yù)編譯頭需要在所有源文件里刪掉這一行否則 g 直接報(bào)致命錯(cuò)誤。我之前碰到過還把__int64這種 MSVC 專有類型批量替換成int64_t加上頭文件cstdint才編譯通過。結(jié)構(gòu)體定義里的#pragma pack可以保留不影響算法邏輯。Windows 上如果不想裝 VS2010也可以裝 Visual Studio 2022 的「使用 C 的桌面開發(fā)」工作負(fù)載直接編譯微軟的升級(jí)向?qū)?huì)把工程轉(zhuǎn)成新格式通常幾秒鐘的事唯獨(dú)注意vsprintf之類的舊 API 可能報(bào) C4996 警告不影響運(yùn)行可以忽略。4. cache 模擬器避坑地址對齊、關(guān)聯(lián)度溢出與初始化翻車4.1 輸入文件打不開路徑和編碼的坑現(xiàn)象程序啟動(dòng)后直接輸出「Cannot open trace file」然后退出但文件確實(shí)存在。原因第一種是路徑帶了中文或空格fopen 在舊版 MSVC 運(yùn)行時(shí)對本地編碼路徑支持不友好第二種是相對路徑的問題——程序的工作目錄不等于 exe 所在目錄VS 調(diào)試時(shí)的默認(rèn)工作目錄往往是工程目錄和 exe 目錄不一樣。解決把地址流文件放到 exe 同目錄下文件名改成純 ASCII或者運(yùn)行時(shí)在 printf 里把當(dāng)前工作目錄打出來確認(rèn)。我一般直接在 main.cpp 里用絕對路徑做兜底調(diào)試通過后再改回相對路徑。4.2 命中率算出來超過 100% 或?yàn)樨?fù)數(shù)現(xiàn)象結(jié)果文件里 hit_rate 顯示 1.5 或者 -0.2明顯不合理。原因計(jì)數(shù)器沒有在 InitVariables.cpp 里清零或者命中/未命中在分支里重復(fù)累加。比如直接映射下用循環(huán)找行命中后continue不等于return導(dǎo)致一次訪問既加了 hit 又走了 miss 分支。解決在 main 函數(shù)最開始對 hit_count、miss_count、access_count 統(tǒng)一賦 0每個(gè)訪問分支只走一次統(tǒng)計(jì)代碼。發(fā)現(xiàn)異常值后先在 access 函數(shù)入口打印地址和 index定位是哪條路徑重復(fù)計(jì)數(shù)。4.3 關(guān)聯(lián)度配置導(dǎo)致組數(shù)算成一現(xiàn)象配置了 2 路組關(guān)聯(lián)跑出來的結(jié)果和直接映射完全一樣。原因組數(shù) 緩存容量 / 塊大小 / 關(guān)聯(lián)度代碼里容易寫成SET_NUM cacheSize / assoc漏了先除塊大小。容量 64KB、塊 64B、2 路時(shí)正確組數(shù)是 512錯(cuò)誤算出來是 32768index 位寬變成 15 位和實(shí)際內(nèi)存地址范圍對不上結(jié)果自然失真。解決在 BuildCache.cpp 里加斷言assert(SET_NUM 1)并且打印出 SET_NUM、index_bits、tag_bits 三個(gè)值肉眼核對與手算一致再跑。從那以后每次跑新配置我第一眼先看初始化打印的這三個(gè)數(shù)字。4.4 同一塊內(nèi)的連續(xù)訪問全部 miss現(xiàn)象地址流里連續(xù)訪問 0x1000、0x1004、0x1008理論上應(yīng)該命中同一個(gè)塊但命中率極低。原因偏移位沒參與屏蔽tag 比較時(shí)把 offset 也帶進(jìn)去了導(dǎo)致每個(gè)字節(jié)都當(dāng)成了不同的塊。根本問題在拆分地址的函數(shù)里少了addr offset_bits這一步。解決檢查 get_tag 里是否先右移 offset_bits 再右移 index_bits單一地址測試訪問兩次完全相同的地址命中率必須是 100%否則地址拆分邏輯必然有錯(cuò)。這個(gè)兩行測試比讀幾百行代碼都管用。4.5 寫操作沒有觸發(fā)緩存更新現(xiàn)象配置了 write-back但打印緩存狀態(tài)時(shí)發(fā)現(xiàn)寫操作后行的 tag 或者數(shù)據(jù)區(qū)域沒變化命中率也偏低。原因?qū)懨蟹种е桓铝酥鞔娼y(tǒng)計(jì)數(shù)組沒有更新 cache 行的狀態(tài)更常見的錯(cuò)法是寫未命中時(shí)選擇了直接寫主存而不是先分配緩存行write-allocate導(dǎo)致寫操作永遠(yuǎn) miss。解決寫命中需要置 dirty 位寫未命中按 write-allocate 策略先拉入緩存行再改寫如果項(xiàng)目只支持 write-through則命中時(shí)不需要置臟位但要立刻寫主存???PrintOutput.cpp 里是否輸出了 dirty 位沒有的話就自己加一行打印驗(yàn)證寫操作留沒留下痕跡。5. 核心實(shí)現(xiàn)拆解LRU、FIFO 與緩存狀態(tài)打印5.1 緩存行的數(shù)據(jù)結(jié)構(gòu)與 BuildCache 初始化緩存行的結(jié)構(gòu)體通常寫在 InitDef.h 里BuildCache.cpp 負(fù)責(zé)根據(jù)參數(shù)動(dòng)態(tài)分配數(shù)組。一個(gè)教學(xué)級(jí)模擬器的行結(jié)構(gòu)大致長這樣struct CacheLine { unsigned int tag; // 標(biāo)簽用于與地址高位比較 bool valid; // 有效位0 表示該行為空 bool dirty; // 臟位寫命中后置 1 int last_access; // 最近訪問序號(hào)LRU 用 int load_sequence; // 裝入序號(hào)FIFO 用 // 有數(shù)據(jù)模擬需求時(shí)可加 unsigned char data[BLOCK_SIZE]; };邏輯說明這個(gè)結(jié)構(gòu)把 LRU 和 FIFO 的判定字段都放在同一行里last_access每次訪問都更新為全局遞增序號(hào)load_sequence只在裝入新塊時(shí)記錄當(dāng)時(shí)的序號(hào)。BuildCache.cpp 里做的事情是cache new CacheLine[line_count]然后循環(huán)把 valid 和 dirty 置 falsetag隨機(jī)復(fù)位兩個(gè)序號(hào)置 0。這里的關(guān)鍵是 line_count 的計(jì)算int line_count CACHE_SIZE / BLOCK_SIZE; int set_num line_count / ASSOC; // ASSOC 為 1 即直接映射參數(shù)說明CACHE_SIZE和BLOCK_SIZE的單位統(tǒng)一為字節(jié)這是老生常談但每次都有人栽進(jìn)去——容量寫 64 表示 64B 還是 64KB差 1024 倍命中的行數(shù)計(jì)算整體錯(cuò)位。建議在 InitDef.h 里就用宏定義單位比如#define CACHE_SIZE (64 * 1024)防止誤讀。5.2 FIFO 替換維護(hù)一個(gè)循環(huán)指針FIFO 的實(shí)現(xiàn)是這三個(gè)替換算法里最簡單的它不關(guān)心訪問頻率只關(guān)心誰先進(jìn)來。核心思路是每組維護(hù)一個(gè)指針指向下一個(gè)要被替換的行新塊裝入后指針后移。在組關(guān)聯(lián)下每組的 FIFO 指針獨(dú)立計(jì)算// FIFO 替換選擇組內(nèi)最早裝入的行 int select_victim_fifo(unsigned int index) { int base index * ASSOC; int fifo_ptr group_fifo_ptr[index]; // 每組一個(gè)指針 group_fifo_ptr[index] (fifo_ptr 1) % ASSOC; // 循環(huán)移動(dòng)到下一行 return base fifo_ptr; }邏輯說明這個(gè)實(shí)現(xiàn)是經(jīng)典寫法group_fifo_ptr是一個(gè)長度等于組數(shù)的數(shù)組維護(hù)的是組內(nèi)偏移而不是全局行號(hào)。取 victim 時(shí)用base fifo_ptr轉(zhuǎn)成全局行索引。為什么需要% ASSOC因?yàn)?FIFO 把組內(nèi)的行看成環(huán)形隊(duì)列指針到末尾后回到 0。一個(gè)容易忽略的問題是初始化時(shí)所有行都是 invalid如果直接用 FIFO 分配新塊指針可能指向一個(gè)還沒來得及初始化的組需要保證 BuildCache.cpp 把group_fifo_ptr數(shù)組也全部清零。5.3 LRU 替換用訪問序號(hào)還是用鏈表LRU 比 FIFO 多了一個(gè)操作每次命中都要更新行的訪問時(shí)間。最直觀的做法是給每一行維護(hù)last_access查找時(shí)遍歷組找最小值。這種「計(jì)數(shù)法」在行數(shù)少時(shí)足夠用模擬器里推薦用它因?yàn)榇a短、容易驗(yàn)證// LRU 替換選出組內(nèi)最近最少使用的行 int select_victim_lru(unsigned int index) { int base index * ASSOC; int victim base; for (int i 1; i ASSOC; i) { if (cache[base i].last_access cache[victim].last_access) { victim base i; } } return victim; }邏輯說明遍歷時(shí)用當(dāng)前最小訪問時(shí)間做基準(zhǔn)遇到更小的就更新 victim。這個(gè)算法的前提是last_access在每次訪問包括命中都更新成遞增的access_count否則所有行的last_access都是初始 0選出來的永遠(yuǎn)是組內(nèi)第一行表現(xiàn)和 FIFO 無異。全關(guān)聯(lián)時(shí)把 ASSOC 換成總行數(shù)這套代碼不用改直接映射時(shí)根本不會(huì)調(diào) victim 函數(shù)因?yàn)槊拷M只有一行。用鏈表實(shí)現(xiàn) LRU 在教科書里講得多但模擬器里實(shí)際用得少。鏈表的好處是替換 O(1)、不需要遍歷但需要維護(hù)節(jié)點(diǎn)指針、處理邊界代碼量翻倍而且每行內(nèi)存占用變大。學(xué)習(xí)階段不建議一上來就寫鏈表先跑通計(jì)數(shù)法跑出正確結(jié)果再討論優(yōu)化。還有一種「近似 LRU」用位標(biāo)志做適合硬件實(shí)現(xiàn)但對模擬器意義不大配置錯(cuò)了還會(huì)引入玄學(xué)誤差。5.4 Cachefprint 打印緩存狀態(tài)驗(yàn)證替換行為Cachefprint.cpp 的作用是把當(dāng)前所有 cache 行的狀態(tài)打出來包括行號(hào)、組號(hào)、valid 位、tag、dirty 位、最近訪問序號(hào)。這比看命中率數(shù)字更能定位問題。// 打印緩存狀態(tài)示例 void print_cache_state() { printf(Line | Set | Valid | Tag | Dirty | last_access\n); for (int i 0; i line_count; i) { if (cache[i].valid) { printf(%4d | %3d | 1 | %06x | %d | %d\n, i, i / ASSOC, cache[i].tag, cache[i].dirty, cache[i].last_access); } } }邏輯說明打印時(shí)跳過 invalid 行可以縮短輸出但排查初始階段建議全部打印看空行和已占用行的分布。尤其是驗(yàn)證 LRU 時(shí)用手工算一遍替換順序再對照打印的last_access序號(hào)序號(hào)最小的應(yīng)該是下一次被替換的行。如果打印出來的last_access全部相等說明命中的更新邏輯沒執(zhí)行直接去 FunctionUsed.cpp 里查last_access賦值那行是不是寫在return之后了。這個(gè)打印函數(shù)特別適合做對照實(shí)驗(yàn)用同一個(gè)地址流分別跑 FIFO 和 LRU打印每個(gè)未命中時(shí)刻的緩存狀態(tài)你能直觀看到 FIFO 替換的是「最早來的」LRU 替換的是「最久沒被用的」兩者差在哪一次訪問就能定位到具體指令。PrintOutput.cpp 里的命中率統(tǒng)計(jì)是結(jié)果層面的驗(yàn)證Cachefprint 是過程層面的驗(yàn)證兩個(gè)配合著用才敢說模擬器行為是對的。6. 進(jìn)階玩法用對照實(shí)驗(yàn)校準(zhǔn)參數(shù)、驗(yàn)證命中率結(jié)果把模擬器跑通只是起點(diǎn)真正有用的是拿它做參數(shù)敏感性分析。我建議按下面這套實(shí)驗(yàn)矩陣做每一步都記錄命中率變化而不是漫無目的地改參數(shù)。固定地址流不變先跑一組容量敏感實(shí)驗(yàn)緩存容量從 16KB 依次翻倍到 256KB塊大小固定 64B替換策略固定 LRU。這個(gè)實(shí)驗(yàn)回答的問題是「當(dāng)前訪存模式下容量增加到多少開始收益遞減」。我做過一次測試地址流總量 10 萬次容量 64KB 時(shí)命中率 78%到 128KB 只到 82%加了 4% 卻多了一倍緩存說明這個(gè)訪問模式容量敏感性已經(jīng)到頭了。塊大小敏感實(shí)驗(yàn)同理塊大小從 16B 到 128B 變化時(shí)命中率往往先升后降。升是因?yàn)榭臻g局部性利用了相鄰數(shù)據(jù)降是因?yàn)閴K太大把太多無用數(shù)據(jù)也拉進(jìn)緩存擠占了其他塊的容量。這個(gè)拐點(diǎn)就是當(dāng)前負(fù)載下的最優(yōu)塊大小。替換策略的對比實(shí)驗(yàn)值得單獨(dú)做同一地址流、同樣容量和關(guān)聯(lián)度跑 FIFO、LRU 和直接映射三個(gè)組合輸出三組命中率。序列化訪問模式下兩者差距很小但在循環(huán)訪問多個(gè)塊的模式下LRU 的優(yōu)勢會(huì)明顯體現(xiàn)出來。如果地址流里有大量重復(fù)訪問同一塊的模式你會(huì)發(fā)現(xiàn) LRU 的命中率穩(wěn)定高出 FIFO 五到八個(gè)點(diǎn)。如果你想把實(shí)驗(yàn)往真實(shí)系統(tǒng)方向靠近可以給模擬器加一個(gè)簡單的 write-back 統(tǒng)計(jì)在 PrintOutput.cpp 里輸出「寫回主存的次數(shù)」和「寫直達(dá)次數(shù)」。統(tǒng)計(jì)學(xué)意義在于寫回模式減少主存寫帶寬但要求替換時(shí)必須回寫臟行。給 CacheLine 加一行 dirty 判斷替換時(shí)若 dirty 為真則write_back_count最后和總訪問數(shù)列在一起輸出。這個(gè)擴(kuò)展改動(dòng)量小、驗(yàn)證直觀而且能補(bǔ)上學(xué)理和代碼之間最后一塊拼圖。驗(yàn)證命中率結(jié)果對不對我最常用的方法是用極端配置做 sanity check關(guān)掉所有容量限制、全關(guān)聯(lián)、所有行足夠裝下整個(gè)地址集合命中率應(yīng)該等于 100% 減去首次強(qiáng)制未命中通常是很接近 100% 的數(shù)字。如果極端配置下命中率都不上升那一定是查找邏輯里有 bug而不是參數(shù)問題。從那以后我每次拿到任何 cache 模擬器第一件事不是跑默認(rèn)參數(shù)而是先用「單地址訪問兩次」和「大容量全關(guān)聯(lián)」兩個(gè)測試把基本正確性釘死確認(rèn)無誤后再去調(diào)映射、調(diào)替換策略。希望這個(gè)習(xí)慣也能幫到你祝你的緩存實(shí)驗(yàn)一次通過。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99热久久这里只有精品| 香蕉久日夜| 成人资源在线| 色播五月婷婷| 丁香五月天视频在线播放| 超碰婷婷色| 狠狠色无码| 五月天桃色深爱网| 天天干天天爽天天爽| 欧美碰碰| 国产精品国产成人国产三级| 开心婷婷中文字幕| 丁香5月综合啪啪| 久久久久久久久久久久久久久久久精典| 激情五月色综合| 久9热插入| 五月婷婷婷丁香播| 欧美丁香六月激情视频| 大香蕉九九| 国产乱子轮XXX农村| 99A片| 99网址在线看| 大香蕉网 久久| 九月婷婷激情| 在线可以看的av网址| 久久九九一區| 好吊兆人妻| 激情五月婷婷| 九九九九这里只有精品| 五月丁香六月色婷婷| 综合久久首页| 懂色av粉嫩av蜜臀av| 91免费看片| 99热20| 婷婷六月天| 五月丁香六月婷婷啪啪| 婷婷五月激情片| 久久一级免费黄色片| 激情综合五月丁香| www.婷婷.com| 日韩成人AV在线| 玖操97| 激情文学久久| 亚洲最大在线| 亚洲第一成人无码A片| 五月丁香婷婷啪啪| 尔尔AV一区| 91丨九色丨大屁股| 亚洲成人av在线| 丁香婷婷激情网站| 亚洲欧洲中文日韩久久AV乱码| 亚洲色A| 91色涩| 91免费试看| 日日夜夜婷婷| 玖玖热视频| 天天cha成人综合网| 五月天婷婷影院| 色情成人五月天| 狠狠色丁香| 超碰97干| 成人av在线网站| 欧美综合激情五月天| 色亚洲无码| 啪色综合| 色婷婷操逼| 综合久久综合综合| 色婷婷AV在线| 精品成人在线观看| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 成人必爱视| 人妻激情在线| 五月婷丁香花| 亚洲精品操一操、噜一噜、摸一摸、爽| 色五月超碰| 五月丁香婷婷啪啪网| 日韩无码亚欧无码| 久久大香蕉视频| av操B网站| 精国产品一区二区三区A片| 亚洲色综合| 婷婷五月天网| 日本视频久久| 97人妻碰碰碰碰碰久久久久久| a级毛片一区二区免费视频| 久久精品国产一区二区三区四区| av高清无码| 国产SUV精品一区二区6| 亚洲视频在线网| 高清免费在线视频| 激情综合九月| 婷婷五月激情热播| 六月色丁香中文字幕| 婷婷综合在线观看视频| 久青操| 狠狠狠狠狠狠| 超碰人妻在线| 91干99| 五月天色欧美| 色丁香五月婷婷婷| 免费观看的婷婷五月视频在线| 婷婷久久综合久色| 久久这里只有精品99| 色色婷婷五月天| 91久久久久久| 五月丁香偷拍| 亚洲性图一区二区三区| 大香蕉欧美在线| 日本色色色| 狠狠综合| 9热在线观看| 9色在线视频| 六月色婷婷色| 可以免费观看的AV| av高清无码| 99久久色| 丁香五月瑟瑟| 97人凄人人操人人爽| 91操操| 色婷婷成人做爰A片免费看网站| 99五月香婷婷丁香在线视频| 天堂色婷婷| 色人五月婷婷| WWW.99热| www综合久久| 91九色首页| 五月丁香啪啪综合网| 色丁香五月婷婷| 日日日日日| 五月激情综合网婷婷| 日本天堂免费99| 狠狠干综合| 久久精彩视频99| 亚洲av成人在线| 强辱丰满人妻HD中文字幕| 伊人久久大香| 日日撸日日操| 思思9久久| 婷婷久久久久| 五月六月伦理| 三日本无码| 五月天啪啪视频| www.超碰在线| 国产操碰| 夜夜久久综合网 | 亚洲久久视频| 99热这里都是精品| 色色色婷婷| 亚洲婷婷五月草久| 激情六月天| 91久久国产综合久久| 久月丁香爱婷婷综合| 五月激情影院| 香蕉中文在线| 丁香五月天堂| av在线激情| wwwwww.色| 伊人婷婷大香蕉| 这里只有精品96| 色色色国产| 五月婷婷激情综合视频| 五月天大香蕉av| 丁香五月婷婷激情小说| 久草五月| 91欧美| 亚洲精品国产熟女久久久| 久久精品综合色| 夜夜夜夜操| 天天插天天插天天插天天插| 91丨九色丨国产| 涩涩涩婷婷| 九九热只有精品| 9热久久| 99精品7| 狠狠爱综合| 啪啪丁香五月| 婷婷五月深爱五月| 另类亚洲电影| 亚洲色色图片| 国产3p露脸普通话对白| 日本色婷婷久久99精品91| 99re免费精品视频| 九九色热| 99性爱| 久久草大香蕉| 777精品久无码人妻蜜桃| 丁香五月婷婷亚洲色图| 91人操| 97碰碰在线观看视频| 婷婷五月丁香综合人妻| 婷婷五月丁香香蕉| 另类激情中文| 中文aV网| 九九十99视频| 激情综合网五月婷婷| 久久99热只有精品| 97人人妻人人艹| 五月丁香久久呀| 操逼五月婷婷| 日本不卡中文字幕| 五月婷婷久久激情| 久婷婷久草| Xx色综合| 青青999| 俺去也综合| 97碰免费精采视频| 日日干日日| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 激情丁香网| 激情性爱五月天| 婷婷五月激情四月综合| 无码少妇高潮喷水A片免费| 插插网爽妇五月丁香| 99视频| 精品国产va久久久| 婷婷五月播| 9热网站| 色欲色香伊人| www.狠狠操.co m| 日韩黄在免| 激情99在线视频| 午夜丁香 婷婷| 日本三级大片| 天天干狠狠| 99久在线精品| 国产熟妇的荡欲午夜视频| 五月天黄色激情小说| 色综合久久综合| www99热| 婷婷精品在线| 都市激情久久| 激情五月天综合网| 日韩久久日| 激情五月综合网最新| 色色综合成人网| 丁香五月天大香蕉啪啪| 99热66| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪 | 久草a片| 天天色色天天| 夜夜爱网站| 久婷自拍视频| 操日本99| 天天日天天插| 综合久久综合五月天婷婷| 天天人人人人人人人人人人人| 超碰国产av| 五月天激情小说| 亚洲最大五月六月丁香婷婷| 综合大香蕉| 牛牛澡牛牛爽| 精品一二三区久久AAA片| 久久人妻人人| 狠狠艹狠狠艹| 人妻爽爽爽久久久久久久久| 99re热99| 九九热婷婷| 日韩国产在线精品| 青青草国产亚洲精品久久| 五月天丁香久久| 亚洲人人操BD| 婷婷丁香五月,狠狠综合| 色情五月丁香| 99热婷婷| 超碰成人黄色网| 九色porny在线观看激情四射| 97操在线视频| 大香蕉伊人99| 欧美色色色色色色色色色色| 激情五月天婷婷丁香 | 欧洲日韩一区二区三区| 99热99网| 五月丁香久久网| 超碰免费99| 色婷婷五月综合色婷婷| 亚洲视频1区| 天堂久久久久天堂网| 免费视频无码| 午夜丁香| 亚洲成人免费在线| 天天色粽合合合合合合合| 91偷拍视频| 97超碰在线免费观看| 欧美日韩AAAA| 亚洲性爱电影| 97色婷婷| 一起草AV| 99网| 中文字幕在线视频播放| 日韩AV免费| 婷婷9月天| 色婷婷成人久久| 九月婷婷人人操人人舔人人爱| 影音先锋91在线资源站| 久久全色| 婷婷六月激情| 丁香五月婷婷成人色区| 国产,欧美,日韩,性爱| 乱轮A片| 激情性五月天免费小说视频 | 噜噜噜噜婷婷五月天| 99色色| 久久伊人9| 97碰成超视频免费视频| 97香蕉久久超级碰碰高清版| 最新日本A片| 九九综合精品| 热99只有精品| 丁香五月天婷婷激情| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪 | 14色综合婷婷| 夜夜操夜夜爽| 亚洲性爱99| α久久| 日日操,天天操| 亚洲激情97五月天| 九九这里都是精品| 欧美日韩婷婷五月天| 丁香五月成人自拍| 亚洲小视频免费观看| 色五月激情问网站| 欧美啄木乌丝袜人妻系列| 婷婷俺去也| 泰州成人视频| 国产中文字幕在线视频免费观看| 欧洲亚洲免费视频9| 天天澡天天狠天天天做| 万月丁香狠狠爱| 97在线精品| 99热在线这里只有精品| 区美毛片子| 双性美人被调教到喷水A片| 婷婷色综合网日韩国产| 另类视频在线| 天天操天天干天天日| 中文字幕永久在线| 伊人婷婷大香蕉在线| 色五月婷婷自拍| 5月丁香美女影院| 五月婷婷综合在线| 丁香五月人妻| 五月丁香六月香综合激情| 色五月婷婷综合在线| 六月丁香五月婷婷| 青青草轻轻操| 九九色综合视频| 六月丁香啪啪啪| 亚洲色色色| 99日视频在线| m色激情网| 天天精品视频免费观看| 九月婷婷综合网| 欧美激情xxxXX| 丁香五月欧美色综合| 91久久日日| 99热99在线| 婷婷五月丁香伊人| 色色综合网。| 99色热视频| 99热精品中文字幕| 色色色97| 丁香五月伊人| 69天堂99| 色99欧洲色19| 国产精品国产成人国产三级| 99色激| 五月天激情啪啪| 欧美 色婷婷| 五月综合在线婷婷图片| 婷婷五月欧美综合| 五月花激情| 国产人人操| 天天操狠狠操| 成人丁香五月婷| 五月天色区| 91传媒无码人妻精| 亚洲午夜视频| 婷色成人| 午夜福利成人AV91| 91性高潮久久久久久久久| 日本WWW九九九| 婷婷激情人妻| 欧美亚洲999| 三人荫蒂添的好舒服A片| 中文久久久人妻| 屁股翘好撅高迎合跪趴| 狠狠色综合精品视频在线| 日本9区视频| 夜夜躁婷婷AV| 色爱综合视频| 51XX嘿嘿午夜无码| 五月婷视频| 色天天久婷婷| 综合九九中文字幕| 久久激情天堂| 六月丁香啪啪啪| 激情五月婷婷视频一区二区三区| 免费视频舔| 最新高清无码专区| 九九在线精点品| 色婷婷久久综合| 丁香五月天堂网| 五月婷婷丁香综合网| 五月天久久网站| 淫视馆aV二区一区| 六月丁香婷婷六月激情综合| 亚洲啪啪视频| 色色色com| 五月开心网| 五月色视频| 啪啪啪丁香五月| 久久92| 一本道综合网| 一起草Av| 色约约视频一区二区三区四区五区| 色噜噜狠狠色综无码久久合欧美| 五月视频日本免费观看| 婷婷五月丁香91| 精品一二三区久久AAA片| 色婷五月| 久久精品视频9| 婷婷五月丁香色播| 婷婷伊人綜合中文字幕| 五月丁花六月丁香综合| 99国产小视频2013| 依人大香蕉在钱1| 丁香大香蕉| 丁香五月六月婷婷自拍| 丁香六月婷婷开心婷婷网| 久久久久激情| 丁香五月在线| 久久婷婷五月草视频在线播放| 新激情婷婷| 五月叮香啪| 婷婷五月天综合中文| 九九综合网色全集 | 久久激情视频| 中文av网| 99这里是精品| 激情小说五月天社区丁香| 色婷婷丁香| 五月天停停日日| 99视频精品在线| 天天骑天天操| 欧美毛片www| A级毛片高清免费不卡播放谢谢谢谢| 激情综合九月| 91人人网| 天天色综网| 综合婷婷久久| 大香蕉婷婷色| 久草视频大香蕉99| 国产99久久久国产精品免费看| 丁香激情网| 婷婷五月天性| 亚洲网站在线鸭子av| 欧美 日韩 成人| 婷婷成人视频| 99热激情| 日本婷久久| 涩涩涩.com| 粉嫩av懂色av蜜臀av熟妇| 国产肥白大熟妇BBBB视频| 日日撸夜夜操| 天天久| 婷婷五月六月激情| 亚洲中文无码成人| 色婷婷综合网| 久99在线视频| 激情久久 婷婷| 亚洲中字AV电影在线网站| 色色色网站| 色婷婷啪啪| 97久久人人人干| 99热66| 五月婷婷丁香俺日污视频| 精品久久久久久久人妻| 久久九九免费大视频| 色热久| 在线91日韩| 色五月婷婷1| 亚洲成人在线观看av| 亚洲五月婷婷| 午夜精品久久久久久久爽| 亚洲五月天婷婷| 97婷婷丁香| 五月天伊人网| 九色自拍| 色狠狠综合| 欧美成人日韩| 五月天色图| 综合久| 97人人干人人操| 日日夜夜狠狠干| 婷婷五月天综合小说网| 九九爱看亚洲| 欧美激情综合色丁香婷婷五月天| 丁香五月综合激情性爱| 亚洲午夜电影| 亚洲综合激情五月久久| 中文字幕无线久必| 亚州第一黄网| 干一干xxxx| 丁香五月激情宗合网| 婷婷精品在线| 五月情丁香色| 99精品视频在线| 一本色道久久综合狠狠躁小说| 永久精品| 五月婷婷激情| 五月婷婷色在线| 成人国产网| 久久香视频| 激情综合亚洲| 免费黄色片子| 色综久久久| 蜘蛛女免费观看完整版高清电影| 精品色情一区二区三区四区| 婷婷五月中文在线| AAAA网站| 99久久婷婷国产综合| 亚洲色视频| www99精品在线观看| 欧美日韩色色| 五月婷婷影院| 内射 无码 伊人| 久久天堂网| 久久久久婷婷| 99视频精品全部免费 在线| 五月成人天| 色色色地址| 操一区| www,黄色在线,con| 丁香五月先锋| 深爱激情九九五月天| 色五月婷婷大香蕉| 精品国产乱码久久久久夜深人妻| 无码一级片| 婷婷激情性爱| 五月婷婷|欧美| 婷色五月| 99内射视频| 五月天a婷婷伊人| 色五月婷婷一二| 五月天色图| 99热超| 国产色色在线| 天天插天天插| 久久精彩视频99| 精品在线| 久久五月婷婷丁香| 久久九九囯产| 五月天色婷婷视频| 九九伊人网| 色婷婷69| 亚洲热久久| 99色综合| 在线观看熟女少妇| 亚洲午夜一区二区| 九月丁香婷婷网| 97婷婷丁香五月| 91超碰在线观看| 亚洲综合色成丁香五月色| 开心激情色婷婷五月天| 色欲av伊人久久大香线蕉影院| 91色性感五月婷婷丁香| 激情综合五月色丁香婷婷 | 99爱免费视频在线观看| 俺去也五月天婷婷| 五月激情综合性爱| yw国产AV| 五月婷俺去也| 这里只有精品久| 狠狠狠狠狠狠| 99久久99九九九99九他书对| 亚洲欧美999| 久草 tingting| 亚洲另类婷婷五月丁香在线播放| 久久久久久人妻| 激情丁香久久| 久机视频这只有精品| 情欲禁地| 婷婷色成人| 色综合五月天| 综合久久婷婷五月丁香| 99久热| 99热99干| 天天干天天操天天爽| 激情综合啪啪啪| 亚洲AV网址| 日韩精品成人在线| 99热这里只有精品8| 97热精品| 亚洲综合久| 日韩色色小视频| 九九色图| 日本3级片偷拍网站| 丁香五月婷婷六月| 激情五月天激情网| 韩国真做片在线观看| 思思精品久久艹| 天天草女人| 五月激情基地| 久久婷网| 26UUU欧美| 97久久视频| 国产精品激情AV久久久青桔| 五月天自拍视频| 五月天开心色色网| 亚洲综合五月天| 亚洲 视频 导航 一区| 夜色综合网| 丁香六月天AV| 色五月丁香A欧美com| 久久欧洲综合网| 综合久久五月天| 另类图片色五月| 天天操天天日天天爱| av在线播放网站| 五月激情六月婷婷| 成人av观看| 国产欧美日韩综合精品一区二区| 婷婷色成人| 999久久久国产精品| 丁香五月婷婷色| 五月永久激情| 天天肏在线视频| 婷婷五月天色色| 欧洲亚洲免费视频9| 91熟妇大香蕉| 成人视频一区| ji'qing'luan'ren'lun| 91黄址| 亚洲妇女熟BBW| 3www激情| 五月婷婷 六月丁香| 啪啪视频99| 色婷婷97| 99综合| 五月总合激情网| se色综合网| 免费黄色片子| 婷婷五月天激情文学| 久久婷婷激情五月天一区二区| 大香伊人久色| 99操逼| 综合久久99| 色色精品色| 六月丁香AV| 九九色精品| 色五月综合在线| 99热99网| 五月婷色| 久久五月婷婷视频| 一起草日本| 女人天堂AV| 亚洲另类视频| 五月 婷婷 成人| 九九99在线观看视频| 任你干线上免费视频有3吗| 色婷五月天| 亚洲熟女色| 丁香色色网| 成人午夜免费电影| 婷婷94s| 亚洲日韩久久婷婷伊人| 99热在线观看精品| 免费观看的av| 五月天 另类图片| 亚洲男人的天堂婷婷色五月| 色婷婷丁香五月天| 婷婷天堂视频| 亚洲六月色婷婷| 五月婷天堂视频| 99精品久久久久久久久| 超pen个人视频97| 婷婷五月天色播| 亚洲五月婷婷| 五月婷婷大香蕉| 五月天另类视频| 91成人电影| 色婷婷狠狠干芒果TV| 九九热99精品在线| 九九爱看亚洲| 色亚洲视频| 九色视频这里只有精品| 亚洲在线激情婷婷五月| 99这里只有精品在线| 综合激情开心五月| 五月激情丁香五月| 六月婷五月丁香| 视频综合网| 五月六月丁香婷婷在线观看| 五月丁香网视频| 超碰色婷婷| 一起草Av| 丁香婷婷性爱| www99热| 激情五月婷婷网在线观看| 午夜大香蕉| 丁香婷婷免费| 99性爱无码| 99色丁香婷婷综合网| 就爱射中文字幕资源网| 26uuu欧美激情另类| WWW色综合| 婷婷五月久久| 婷婷丁香激情综合色情| 国产精品色婷婷久久久精品| 九九热视频在线观看| 久久激情五月婷婷| 五月丁香六月婷婷啪啪| 五月丁香综合| 精品9久| 色yeye色综合| 狠狠色丁香久久| 婷婷色五月综合丁香| 再綫Av免费視品| 五月丁香大香蕉| 人人人操B超碰| 天天爽免费视频| 97久久久| AA片在线观看视频在线播放| 婷婷久久五月天中文字幕在线观看| 狠狠综合区| 夜夜资源站| 超碰AAAAAAV| 丁香成人视频| 在线视频你懂得| 成人在线二区| 91超级碰在线| 快色t v在线入口| 五月天成人在线视频网站| 8区视频在线| 香蕉网婷婷| 久七香蕉| 久久这里只精品66| 99在线免费视频| 99精品在线| 亚洲色夜| 91啪级电影| 欧美五月婷婷| 亚洲无码影音| 超碰成人在线观看| 开心色五月天久久久久久久| 九色PORNY9l原创自拍| 午夜不卡久久精品无码免费| 色五月综合网| 青草视频在线观看视频| 黑人无码一区| 婷婷五月天xxx| 尔尔AV一区| 色爆五月| 成人片在线播放| ji'qi'luan'ren'lun| 91九色精品熟女内射| 五月天婷婷色色| 亚洲成人一区| 直接看的AV网站| 26uuu成人网| 亚洲视频无| 涩涩五月天综合| 日韩精品一品二区三区的使用体验| 欧美人与性动交CCOO| 婷婷五月天丁香成人社区| www.色婷婷。com| 久久婷丁香五月| 婷婷九月亚洲| 欧美日韩一区二区三区四区| 伊人五月婷婷| 可以看的AV| 九九久久精品| 五月婷婷丁香综合,亚洲天堂| 先锋男人99资源| 91操片| 六月婷婷色色色| 天天日天天做天天操| 国产日韩精品SUV| 亚洲日本三级片| 这里只有精品久| 亚洲六月色| 人人爱操| 欧美视频五区| 51XX午夜影福利| 欧美25p| 少妇人妻偷人精品无码视频新浪| 丁香六月婷婷综合色| 天天日夜夜爽| 久操福利| 日日日日日| 91干在线| 丁香婷婷激情| 六月丁香婷婷大香蕉| 噜噜国产| 五月丁香六月婷婷的女人| 熟女激情五月天| 啪啪啪丁香五月| 九九免费视频| 日日噜狠狠色综合久久| 大香蕉色婷婷伊人在线| 五月丁香999| 日本片日本片祼观看网站在线看中文版网页在线看| 色色综合无码| 五月丁香激情啪啪| 色婷婷丁香特级性爱视频| 欧美三级A做爰在线观看| 婷婷伊人激情婷婷| 色婷婷成人做爰A片免费看网站 | 99re在线播放| 青青夜夜狠狠夜夜狠狠| 午夜大香蕉| 国产乱码久久| 久久久婷婷| 五月天色裸体视频| 免费操超碰| 香蕉久久国产AV一区二区| 色~性~乱~伦~噜| AV大香蕉| 婷婷丁香成人在线视频| www。久久久久一b。Cc| 六九色综合婷婷五月天| 婷婷九色| 国产超碰在线| 亭亭社区五月天| 亚洲一区二区无遮挡A片| 综合伊人久久| 色播五月丁香婷婷| 午夜丁香久久久久久| 99在热线免费视频| 天天艹天天综合网| 中文字幕丰满孑伦无码专区| 99热色精品| 99热老司机| 性爱激情综合网| 色播播婷婷| 操久久网| 久久激情视频99| 天天肏在线视频| 99网99热| 日本一级一级一级一级| 97色五月丁香婷婷| 日本激情91| 色五月婷婷青娱乐| 97午夜一区二区| 综合久久丁丁香婷| 欧美色狠婷久| 丁香婷婷五月综合欧美另类| 天天天天爽爽天干| 激情网战码亚洲A| 五月丁香影视| 色丁香五月| 久久综合激情五月天| 丁香五月婷婷国产在线| 日韩 中文 欧美| www,五月丁,com| www.com任你艹| 婷婷色导航| 日韩在线婷婷五月天综合| 天天插夜夜爽| xx色综合| 琪琪色五月天| 婷婷夜夜操| 99热这里有精品首页10| 蜜乳av一级av| 婷婷五月激情网| 色噜噜狠狠色综无码久久合欧美| 亚洲综合丁香婷婷六月天| 67194成I人在线观看线路1| 欧美大片免费播放器| 开心婷婷中文字幕| 国产精品视频久久99| 99日本黄站| 日韩黄色AV无码| 人人操av| 免费观看的av| 丁香六月激情综合| 99er久久| Xx色综合| 午夜丁香丁香婷婷| 久久婷婷五月综合色丁香| 蒲京久久无码视频| 五月天成人免费视频| 97久久久久| 丁香色五月婷婷91桃色| 在线视频色五月| 97欧美在线| 精品久久久中文字幕大豆网推荐理由| 国产一级片| 五月丁香婷婷色色色| 欧美日韩aaa| 久99久热只有精品国产99| 五月激情综合激情五月| 日本不卡中文字幕| 97视频91| a免费在线| 色综合伊人网| 99热这里只有精品99| 艹| 五月丁香WWW| 99视频色在线观看| 日日日,com| 美女网黄| 啪啪一区| 丁香五月天黄色片| 91狠狠综合久久久久久| 丁香五月婷婷激情尤物| 国产日韩欧美| 天天干天天操| 五月综合缴情网| 丁香婷婷射| www.色窝| 色天天狠狠干| 婷婷综合网站| 超碰色婷婷| 91精品91久久久中77777| 综合激情五月婷婷| 五月丁香亭亭A片| 色五月丁香激情视频| 色婷婷综合在线| 91人人超碰在线| 一区二区乱视频码| 久久婷婷夜| 婷婷六月综合基地| 特黄三级片| 91ncom.色| 欧美激情Va| 激情五月激情综合网一级丸片| 情欲综合网| 亚洲射激情| 色五月在线播放| 人人草人| 狼人久草| 开心激情五月天网| 激情图片亚洲| 狠狠色婷| 天天综合网91| 狠狠色丁香久久久婷| 色插综合网| 五月婷婷六月激情网| 99热这里只有精品2| 色五月天本日| 91精品丝袜久久久久久| 五月色影院| 怎么样可以看免费的一级av| 色爽干| 色哟哟性爱av| 色婷久久| 亚洲人妻五月丁香婷婷| 九九一综合精品| 五月丁香成年黄色| 爱草视频在线观看| 超碰在线免费9| www.夜夜| 久久这里只有精品视频15| 久久99网址| 色婷婷91激情小说| 激情五月婷婷开心网| 久久亚洲无码| 亚洲综合色网站| 婷婷丁香激情| 综合激情五月天| 国精产品一区一区三区免费视频| 99久久超级| 在线综合亚洲欧美65| 婷婷五月天性爱视频| 亚洲色图81p| 婷婷五月成人有| 天天爽天天摸| 大香蕉啪啪啪| 激情婷婷99| 丁香五月色播中文在线播放| 久久婷婷五月综合色丁香| 97热这里只有精品| 天天色2017| 蜜桃婷婷五月| 91色情播放| 99国产精品久久久久久久久久久 | 婷婷五月天基地| 久久婷婷亚洲无码一起| 色综合区| 亚洲综合激情五月久久| 婷婷色五月丁香六月欧美啪| 色吊丝99| 亚洲精品乱码久久久久久按摩观| 99热色精品| 99精品视频在线观看| 色婷操逼| 天天摸天天日天天舔| www.夜夜| 五月婷久久草| 久久五月综合| 五月天婷婷成人网| 玖玖国产视频一区| 欧美五月丁香| 有码一区二区三区| www.婷婷,com| 操碰91| 99资源在线视频| 五月丁香婷庭在线| 色网五月婷婷| 久热精品视频在线观| 中文字幕视频在线播放| 超碰人人在线观看| 热久久思思热思思| 激情综合激情综合| 久久ab| 婷婷婷婷婷开心无码播放| 五月激情六月丁香| 日本99色| 婷丁五月| 99热最新| 亚洲一级AV在线免费播放| 五月天激情电影| 国产AV一区二区三区最新精品| 欧美五月丁香在线| 五月婷婷深深爱| 99热线观看9| 色久五月| 日本一级黄色片。| 久久在线人妻| 嫩草AV久久伊人妇女超级A| 久久er九九| 亚洲欧洲另类| 超碰在线99| 琪琪色五月天| 五月婷婷啪啪| 久热 91| 色五月色五天色情网| 色噜噜狠狠一区二区三区| 全高清无码视頻| 超碰亚洲天堂| 亚洲av成人在线| 激情五月丁香五月| 在线看片av| 丁香婷婷久久| 激情q青青草在线婷婷| 亚洲操操操| 丁香五月亚洲综合| 久久综合婷婷激情| 五月婷婷人妻| 91男人资源站| 久久久人妻| 六月丁香激情| 91欧美| 婷婷开心青青草| 欧美精品在线观看| 色婷婷五月天视频在线| 亚洲成人AV一区在线观看| 99热首页| 《久久综合九色综合97婷婷| 亚洲激情综合网| 色综合九九| 日欧一片内射VA在线影院| 婷婷丁香五月亚洲综合网在线视频观看 | 九九黄色网| 天天天天天天天干| 一本久婷婷综合| 激情五月天婷婷五月天| 一级性感黄色内射视频| 亚洲激情在线| 99色热综合| 婷婷丁香花五月天| 丝袜大香蕉| 丁香婷婷五色月| 91色色色视频| 精品久热| 激情婷婷五月| 亭亭色天香| 一起操 91N.com| 综激情网| 国产26uuu视频| 99碰碰。| 大香蕉伊人久久| 天天操天天爱天天玩| 一级性感毛片| 少妇性按摩无码中文A片| 精品99只有。| 丁香九月婷婷综合| 国产肥白大熟妇BBBB视频| 色色色色色色网| 色婷婷视频| 97婷婷久久丁香| 噼里啪啦在线观看免费完整版视频| 婷婷四色五月| 亚洲区,视频区,视频区免费| 免看黄大片AA | 5月婷婷激情在线| 六月婷婷六月天天在线免费| 婷婷丁香91综合| 99视频内射三四| 9久热这里只有精品视频| 九九 激情 网| 五月天婷婷Av| 超碰99在线观看| 99精品亚洲| 青草网在线观看| 久久综合播放| 人人操9| 色婷婷综合网站| 婷婷香五月天| 俺也去婷婷五月天第五色| 亚洲成人网站在线| 久久视9精| 色婷婷影视| 久久999久久999久久999久久| 久久婷婷六月天| 天天日夜夜欢| 国产操逼视频网站| 色色色热| 日本三级日本三级99| 天天操夜夜爽| 五月婷婷天天色| 婷婷综合另类小说| 欧美在线视频9| 在线看AV| 超碰人人草| 26uuu成人网| 日韩成人综合网| 六月丁香六月婷婷欧美| 亚洲色vA| 99福利导航| 狠狠色狠狠爱| .comwww在线观看免费操| 久久伊人大香蕉| 夜夜骑夜夜操| 婷婷九月色| 亚洲天堂色色| 爱草人视频| AV网在线| 成人国产欧美大片一区| 五月丁香啪| 99久re热视频精品98| 狠狠色噜噜狠狠狠狠综合| 超碰在线观看9| www夜夜操comwww| 色五月婷激情| 成人久久天天x资源站| 六月丁香视频网站| 激情婷婷五月亚洲| 人妻综合网| 婷婷丁香六月综合激情站| 少妇激情基地| 人人操人人干AV| 久久五月激情| 一本色道久久综合狠狠躁小说| 成年视频免费观看| 91久久久久久久91| 国产婷婷久久| 9久热在线视频精品| 熟女激情网| 91综合色| 丁香五月天导航| 五月丁香六月综合激情| 婷婷五月天综合AV| 丁香五月日韩| 精品99在线| 五月成人网站| 强辱丰满人妻HD中文字幕| 五月天综合网| 666555。COm毛片| 乱轮A片| www.深爱激情| 亚洲婷婷五月| 精品99视频| 日日天天干| 夜夜嗨一区二区三区直播内容 | 婷婷五月天激情综合深爱| 99热这是里只有精品| 激情www.98com| 特级西西4444www无码| 五月天婷婷影院影院观看| 天天综合 99久久婷婷| 色婷婷综合网| 五月天久久91| 激情综合青草| 无码少妇高潮喷水A片免费| 亚州操操| 五月丁香网av| 玖玖爱资源站| 77777亚洲午夜久久| 色婷| 色播五月丁香综合| 天天精品视频在线观看视频| 亚洲丁香婷婷丁香五月天激情| www激情| 中文av网| 日本波多野结衣视频| 激情99| 九九热这里只有精品23| 色情五月天婷婷| 97人人操| 九九免费视频| 天堂网操| 婷婷五月激情四月综合| 丁香五月婷婷六月婷| 激情五月天婷婷五月天| 婷婷六月色情| 综合一区二区三区| 多精窝99在线视频| 色婷婷六月精品| www99精品| 亚洲精品一二三| 综合久久久婷| 玖玖在线资源视频| 99操免费视频| 婷婷操逼| 99热精品10| 五月亭亭六月激情| 99精品小视频| 超碰99在线观看| 性爱激情小说AV五月丁香花| 9久热在线视频精品| 思思精品久久艹| 洗浴中心操B视频| 五月丁香啪啪综合| 日本WwW色偷偷丁香花久久久京东热| 色欲婷婷五月天丁香| 五月天婷婷色五月天| 婷婷狠狠操| 91九色国产| 国产色色色色色| 婷婷六月丁香激情综合| 天天干,夜夜爽| 超碰碰碰碰| WWW久久久| 热99在线精品| 天堂成人A片永久免费网站| 久久人人看| 日日操夜夜撸| 国产欧美熟妇另类久久久| 天天综合网91| 99热这里只有精品8| 最近韩国日本免费高清观看| 婷婷五月综激情| 五月婷婷丁香五月天| 色五月婷婷在线| 色色丁香| 五月婷婷综合久久| 俺来也狠狠| 色综合久久伊伊婷婷五月| 久久色情| 99碰碰中文| 成人性爱无码| 九月丁香八月婷婷加勒比| 精品在线| 黄色成人网站在线播放| 一区二区三区四区牛| 这里只有精彩亚洲视频推荐| 丁香婷婷影院| 超碰免费在线| 五月停亭六月,六月停亭的英语 | 伊人激情综合| 激情丁香五月综合| 日日夜夜小色哥| www五月婷婷| 99视频精品全部免费观看| 色综合激情| 天天肏在线观看| 欧美97色| 大香蕉狠狠爱主页| 婷婷五月天激情电影小说| 亚洲激情Av| 99re这里只有精品99| 五月天婷婷色| 久久久思思热| 亚洲乱码日产精品BD|