免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
五月丁香六月婷婷中合网| 26uuu亚洲| 青草青草视频2免费观看| 一起草无码视频| 噜噜在线| 亚洲va综合va国产va中文| 思思99久久| 99免费热视频在线| WWW.99热| 色波激情五月天| 影音先锋男人女人| 久久激情网| 十区AV| 色99热| 久er免费视频| 99热亚洲综合| 成人无码精品1区2区3区免费看| 丁香婷婷伊人| sS丁香五月婷婷| 被强行糟蹋的女人A片| 久久久区区一久久久久久| 亚洲在线成人| 日韩人妻白浆视频系列| 天天干电影| 欧洲第一久色| 婷婷六月色丁香视频在线观看| 九九99九九精品视频| 久操大| 日日做天天操夜夜爽| 色激情五月| 欧美顶级少妇做爰HD| www.99热视频| 日本va欧美va欧美| 六月丁香婷婷开心综合基地| 欧美激情xxxXX| 五月丁香六月婷婷综合| 久久99网| 丝雨一区二区| 久久人人做人人妻人人玩精品va| h在线看免费版在线看| 亚洲精品大片| 五月激情天天干| 激情五月天在线观看色婷婷| 久久女婷| 久久婷五月综合| 综合久久狠狠| 欧美怡红院黄站| 亚洲婷婷久久综合| 亚洲综合另类| 亚洲激情另类| 七七色色综合| www久久艹| 色五月首页| 97涩婷婷婷婷基地| www.玖玖婷婷在线| 成人一区在线观看| 97五月天婷婷综合激情网| 九九视频在线观看视频6| 五月天婷婷视频小说| 天天爽,天天操。| 涩五月婷婷| 激情久久网 | 久久资源网五月婷| 色婷天天| 婷婷在线日韩综合| 五月丁香A片| 影音先锋91在线资源站| 色婷小说| 97资源碰碰在线| 月丁香久久久| 操操天堂| 性 色 婷婷| 99re在线观看| 婷婷五月丁香在线观看| 艹| 色五月天天| 五月丁香婷色| 久久作爱| www.sd-xiangsu.cpm| 天堂AV三级| 99热只有精品综合| 色婷婷狠狠色| 色五月婷婷色| 亚洲正能量欧美| 色综合99| 无码人妻少妇色欲AV一区二区| a在线观看| 超碰人人91| 123草逼网| 九色啦蜜臀| 色综合另类| 欧美25p| 亚洲中文乱字字幕在线永久| 色色色色五月天| 91大神操美女| 香蕉人妻AV久久久久天天| 一逼色综合| 久操福利| 九九这里有精品视频| 这里只有免费的精品| 狠狠插狠狠插| 婷婷色影音天| 色5月婷婷| 人妻久久久久久久久久| 97色色综合| 思思久久99热只有频精品66| 91婷婷色五月| 淫水导航| 日韩成人无码| 激情亚洲婷婷| 久久青草国| 六月久久婷婷| 六月婷婷开心| 182无码| 色亚洲无码| 五月婷婷开心五月| 午夜AV网| 色久免费| 国产日韩欧美| WWW·天天操·视频?| 夜丁香五月婷婷| www久| 91ncm视频| 亚洲人成人五月天| 激情五月丁香五月综合| 五月天中文字幕在线婷婷| 碰97久久| 啪色综合| 五月丁香婷婷六月| 丁香激情五月少妇| 天天综合亚洲| 91色色色视频| 色五月丁香五月婷婷五月成人网| 99se丁香| 色综合射婷婷| AV网在线观看| 久久99热这里只有精品| 69色婷婷| 99久在线观看| 91九色首页| 激情五月天开心| 日韩啪啪视品| 思思re99视频在线观看| 人人叉久| 人妻综合网| 91久久久久久久91| 99精品自拍视频| 六月丁香婷婷综合狠狠爱夜夜爱| 99热超碰在线| www.夜夜操.con| 狠狠干综合| 色婷婷五月在线| 色爱综合网| 97超碰99热99| 激情人妻综合| www.25五月婷婷| 久久99网| 思思99热这里只有精品6| 精品亚洲国产成AV人片传媒| 久久久九九视频精品18| 婷婷五月天小说网| 51成人| 婷婷五月大香蕉| 97欧美在线| 色色色com| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | 五月丁香六月合| 极品人妻VIDEOSSS人妻| 天堂草在线看www| 五月婷婷性爱网| 五月天婷婷视频30| 婷婷99热| 婷婷黄色五月天在线视频| 欧美怡红院黄站| 色婷婷五月婷婷五月婷婷五月| 无码人妻精品一区二区蜜桃色欲| 丁香婷婷基地| 色丁香五月婷婷婷| 97操资源婷婷| 丁香花五月天激情| wwccc久久久| 日本婷婷色| 丁香五月在线观看| 五月丁香va| 久99在线| 久热免费| 婷婷玖玖五月天| 日韩ac不卡无码| 婷婷五月成人| 丁香五月网址| 色婷婷五月天综合网| 香蕉五月婷婷| 国产67194| 激情综合网激情五月欧美| 丁香五月天影院| 伊人网碰碰| 99国产精品久久久久久久久久久| 色婷婷小说网| 伊人国产婷婷五月天| 亚洲欧洲一二| 国产特级毛片AAAAAAA高清| 天天干天天叉| 伦乱美欧| 色色色在线观看| 91精品久久久久久77777| 欧美综合丁香网| 激情 婷婷| 天天日天天操心| 五月丁香龟婷婷| 依人大香蕉| 五月天另类小说久久小说网| 色五月激情网| 五月婷在线观看| 99re热视频| 国产无遮挡又黄又爽免费网站| 9有码中文| 91丨九色丨大屁股| 九九AV在线| 狠狠色噜噜狠狠狠888了| 99碰在线视频| 成人免费超碰| 日韩ww| 91超级碰| 91丨九色丨高潮丰满日本| 久久九精品| 色婷婷综合久久久久| 国产真实乱对白精彩| 九九干视频| 久久婷五月综合色| 五月天丁香啪啪综合| 啪精品| 久久婷婷老| 天天色天天日| 五月婷在线观看| 激情婷婷五月天| 五月激情婷婷女| 深爱女色婷婷丁香五月亚洲图区| 蜜乳9188| 六月婷婷之青青草| 五月激情婷婷开心五月| 婷婷五月开心中文字幕色| www久久久| 色色婷婷丁香五月天| 九色综合网| 婷婷丁香五月天综合网| 美女五月天婷婷| 五月天激情小说| 一区视频网站| 五月色色网| 97爱综合| 丁香六月久久| AV伊人青草丁香六月| av色婷婷| 激情q青青草在线婷婷| 殴美日比视频| 这里只有在线精品| 亚洲婷婷激情888精品久| 亚洲天堂亚洲色色色| 色5月婷婷| 婷婷色在线观看| 99热综合网| 国产精品视频| 亚洲艹网| 丁香六月激情蜜桃| 夜夜干天天操| 久久婷婷热| 色情五月婷婷| www 五月天 com| 欧美va国产va| 婷婷五月成人系列| 色欲久久久久久综合网综合网| 51国精产品自偷自偷综合 | 狠狠五月天| 五月丁香激情婷婷| 久久综合五月天| 97啪啪| 久久九九国产精品怡红院| 五月丁香综合激情网| 激情五月天在线视频| 色婷婷久久综合中文久久一本| 无码人妻激情| 99原创自拍视频在线观看| 综合色、色综合| 五月丁香本色在线观看| 热久69| 91精品国产99久久久久久天美| 五月天激情图片| 这里只有精品视频视频在线观看| 影音先锋91网站在线观看| 久久九九激情五月天 | 五月婷婷无码| 综合色五月| 成人在线日韩| 激情亭亭五月| AV国产有码| 性日本精品| 97色在线观看视频| 日本操B视频在线观看| 超碰免费电影| 久久综合五月天| 九九热青草| 九九精品系列| 热无码A∨| 亚洲成人在线五月天| 五月婷婷婷丁香播| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 午夜成人天堂久久无码日韩久久| 亚洲舔观看| 亚洲亚洲永久无码777777| 深夜男女福利刺激影院一区完整| 91精选国| 丁香五月激情网| 五月婷久久综合| 桃色五月婷婷| 久热中文字幕| www.99久久久久99| www五月天激情com| 久草热久草在线视频| 一起操 91N.com| 久久五月天激情婷婷| 淑女丝袜bi操逼123| 99久久婷婷国产综合| 色色综合热| 五月伊人综合| 五月婷婷综合激情网| 丁香六月婷婷激情| 国产一级婬片毛片| 天天操天天插| 欧美极品999| 激情五月视频在线婷婷| 激情网 久久| 99视频在线| 99丝袜精品视频网站| 久热这里只有精品性色AV| 亚洲精品永久久久久久| 久久ri精品视频| 激情五月图| 婷婷久久五月丁香| 亚洲九区| 可以看的AV| 99色在线观看视频| 天天干天天拍| 91精产一区三区免费观看| 成人网站免费sxj| 99这里有精品| 蜜乳9188| 成人午夜无码视频| 五月激情丁香久久综合网| 五月婷婷色影院| 69人人操人人爽| 黄色99网| 99五月香婷婷丁香在线视频| 婷婷六月伊人| 男人的天堂99| 狠狠摸狠狠摸| 久久91久久91色欲精品| 婷婷射丁香| 五月天激情网址| 99精吕视频在线观看了| 色五月欧美| 色婷婷五月天久久| 天堂综合久久| 99自拍视频在线| 91avse| 五月婷婷深深爱| 久久9RE热视频精品98| 人人干人人操人人摸| 在线综合啪| 五月婷婷性| 奇米四色五月天| 九九99精品视频在线观看| 亚洲午夜成人av电影网| 五月婷婷六月丁香综合| 国产色99| 久久婷.com| 久大香蕉| 99在线精品视频| 综合激情五月综合激情五月激情1| 99热网站| 玖玖资源站蜜臀| 99九九这里有免费视频| 可以看的av网站| 婷婷97碰碰| 综合色播| 日韩综合大黄| 4399在线观看免费高清黄色视频| 久久婷五月婷| 色婷婷丁香五月丁香| 极骚大香蕉伊人| 激情开心五月天婷婷基地丁香社区| av在线免费播放观看| 天天噜噜| 久久婷婷六月| 亚洲五月天色色| 婷婷五月丁香综合| 五月婷婷久草| 日韩另类在线观看| 婷婷五月天影视网址| 97操在线| 99热最新网址| 天天夜夜爽| 色综合大香蕉| 亚洲综合五月天婷婷| 婷婷五月六月丁香| 亚洲成色综合网站免费观看| 婷婷五月网图片区| 国产偷人爽久久久久久老妇APP | www.久久99| 色五月婷婷五月天| 大香蕉久久婷婷| 天天 青草 制服丝袜 在线| 久久免费少妇高潮99精品| 丁香五月婷婷亚洲色图| 99热这里只有精品2024| 亚洲成人网在线观看| 色哟呦av| 思思热这里只有精品| 久久这里只有精品视频26| 六月色激情| 中文字幕乱码亚洲精品一区| 日韩啪啪视频| 狠狠色综合久久久久| 日本五月婷| 99这里只有精品99| 开心五月婷婷六月丁香| 97碰| 国产成人亚洲综合亚洲| 五月婷A V在线| 久久精品4| 婷婷五月天偷拍| 狠色综合网| 91丨九色丨老农村| 丁香五月婷婷老师网站| 91紱請| 婷婷五月花| 99热免费精品| 99精品久久久久久久婷婷久久 | 一起草av| 久re热视频| 激情婷婷另类| 亚洲色婷婷网站| 五月久久婷婷| 亚洲婷婷丁香| 色播五月综合网| 好吊兆人妻| 99久在线精品99re8| 超碰在线观看9| 丁香五月欧美色综合| 思思热思在线精品视频| 人人玩人人橾| 婷婷综合另类小说| 99熟女| 国产综合婷婷| 婷婷狠狠18禁久久| 五月停停色色丁香| 五月丁香激情啪啪| 色墦五月丁香| 五月丁香偷拍| www.色婷婷| 九九热免费| 超碰成人电影| 激情五月天社区| 久久九九爽| 五月婷婷三级| 婷婷金品综合视频| 色五月激情五月| 一起草Av| 99操碰| 精品人妻一区| 久久婷婷六月综合| 五月天色婷婷图片| 色 五月俺去也| 丁香五月天欧美| 综合色五月天| 国产精品成人av在线观看春天| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 天天日天天插| 99热这里都是精品| 激情五月婷婷网| 五月天天天色| 嫩草AV久久伊人妇女超级A| 日本一级一级一级一级| 97caop| 久在热99| 六月丁香色色| 天天AV导航网| 99精品大片| 五月天丁香成人社| 99热这里有精品| 99久久99九九99九九九| 黄色片avv| 日日日日操| 色五月天在线观看| 可以直接看的AV| 伊人婷婷五月天| 久久AV无码精品人妻系列试探| 婷婷五月天99综合网站| 色婷婷先锋| 国产 码在线成人网站| 亚洲综合网激情小说| anquye五月| 亚洲综合五月| 色婷婷丁香五月天| 九色PORNY在线精品酒店| 亚洲第一黄网| 婷婷五月色网| 五月婷婷久久久| 欧美日韩欧美| 涩九九九九| 五月丁香六月欧美综合| 色色色热热热| 午夜少妇在线观看视频| 青青草99热久久精品国| 婷婷五月天va| 日韩在线9| 性按摩玩人妻HD中文字幕| 91精品国产色猫| 激情五月婷婷丁香六月| 天天五月天综合网址| 色色婷| 99热久久这里只有精品2010| 人人爱国产| av操B网站| www.91操| 婷婷久久色| 精品亚洲国产成AV人片传媒| 五月婷婷六月综合| VA婷婷亚洲| 欧美久热| 日本久久精品18| 五月色情网| 久久98| 免费看片在线观看| 天天狠狠色噜噜| 欧美色久| 91丨九色丨老农村| 久久久久人妻中文| 国精产品一区一区三区免费视频| 91精品丝袜久久久久久| 色五月亚洲| 成人 在线观看国产| 久久伊人婷婷| 26uuu日韩| 97在线观看| 色播五月丁香| 碰碰91| 亚洲在线成人| 亚洲激情.com| 99色在线观看视频者| 婷婷五月天av| 婷婷五月天六点丁香五月| 亚洲激情综合五月婷婷啪啪| 青草青草视频2免费观看| 久久99久久99精品免视看婷| 1024国产| 九九99九九99九九99视频网| 五月天婷婷色色网| 色欲婷婷五月天丁香| 综合九九| 影音先锋91视频| 热久久视频99| 99色人| 五月婷深深爱激情网| 婷婷中文字幕| www.sd-xiangsu.cpm| 激情五月天在线视频| 中文字幕九九九九| 色综合九九色综合88| 香蕉网久久| 亚洲婷婷欧美婷婷| 激情综合99| 99ri精品在线| 国产 亚洲 在线| 五月天堂婷婷| 超碰av在线| 久久婷婷色| 婷婷午夜| 五月婷婷 六月丁香| 久久婷婷五月天| 99热精品10| 国产一区二区三区影院| 台湾佬天天日丁香婷婷五月天| 色五月亚洲| 日日夜夜爽爽| 一级性感毛片| 97碰免费视频在线| 久久亚洲精品成人无码网站导航| 风流少妇A片一区二区蜜桃| 亚洲婷婷开心五月| cao视频,现在观看| 五月丁香自拍| 一起草无码视频| av国产精品| 天天爽天天爽夜夜爽| 五月激情综合婷婷| 久久Xx| 激情久久久| 丁香六月综合激情| 夜夜躁爽日| 天天肏高清在线| 色色色图| 激情五月婷婷中文字幕| av在线免费网站| 国产午夜一区二区三区| 伊人婷婷五月| 久久久jd| 国产午夜精品一区二区三区四区| 午夜丁香六月婷| 五月婷婷AV| 激情综合网丁香| 尤物一区二区| 热99精品视频五月| 婷婷色系婷色| 五月丁香成年黄色| 少妇AB又爽又紧无码网站| 久久久精品色色色| 伊人婷婷青青cao| 久久婷婷五月综合色丁香花| 99精品热视频| www五月天激情com| 亚洲综合网区| 大香人妻| 图片区 小说区 区 亚洲五月| 色五月综合在线| 掩去也综合五月视频| 亚洲经典小视频| www,色婷婷| 天天躁日日躁狠狠躁日日躁2022年5月9日 | 久久一热| 五月婷婷开心亚州在线| 成人五月天婷婷| 欧美超碰亚洲| 夫妇交换刺激做爰| 婷婷久久五月| 中文av网| 九九无码视屏| 久久成人性爱| 亚洲网站999| 婷婷五月天性色| 1024日韩| 99热| 日韩色五月| 99国产精品久久久久久久久久久| 玖玖午夜视频| 深爱婷婷丁香五月激情| 五月激情偷拍婷婷| 亚洲夜五月| 大香蕉伊人99| 99人人精品| 在线成人va| 色婷婷香蕉| 五月婷婷激情性爱| 婷婷狠狠操| 五月激情综合深爱| 米奇影视资源777狠狠色婷婷五月天激情网 | 精品久久这里热66| 99久久综合| 狠狠操在线视频| 亚州激情网| 大香蕉久艹| 九九热99免费视频| 超碰无码318604| 国产亚洲99久久精品熟女| 欧美性生交XXXXX无码小说| 大香蕉久| 丁香婷婷色五月| 久久99视频| 久久婷婷网| 99精品一二三四视频| 亚洲AV无码成人精品区电影网| 草了bav视频在线观看| av在线资源| 在线观看中文字幕| 五月丁香啪| 强伦轩人妻一区二区电影| 91久久久久久| 激情五月天影院| 久碰视频| 六月天婷婷| 欧美大片| 日韩国产AV播放| 九色综合五月天婷五月| 97sese婷婷| 欧美精品久| 伊人婷婷色| 日本一级特黄大片AAAAA级| 色爽九九| 综合激情伊人影视在线| 99色啊| 久热最新视频| 99re这里| 成人AV免费观看| 丁香五月天之婷婷影院| 丰满女老板BD高清A片| 伊人综合网站| 五月婷九月| 丁香五月综合首页| 久久久8| 这里只有精品视频在线观看免费| 婷婷亚洲在线| 99热综合| www.夜夜| 超碰妻人人| 日本免费91| 噜噜色天天开心| 天天粽合合合合| 亚洲另类噜噜| 操操碰| 久久婷婷五月综合激情国产| 五月婷婷亞洲中文| 最新av在线观看| 丁香六月婷婷综合| 操b视频在线观看一区二区| 伊人玖玖精品| 色香五月天| 99热这里只有精品5| 99热这里只有精品3| 字幕网AV中文字幕| www.久久爱.com| 激情深爱婷婷网| 激情五月,婷婷五月,丁香五月| 久久婷婷婷| 成人做爰黄A片免费看直播室男男| 超碰丁香五月| 天天做天天爱天天日| 深夜激情网| 五月天婷婷小说| av一区免费看| 婷婷放心五日爱| 婷婷五月天免费视频| 激情综合五月婷婷| 国产亚洲色婷婷久久99精品9j| 99色综合网| 五月婷婷丁香俺日污视频| 97人人超| 97在线刺激| 99愛国产| 极品人妻VIDEOSSS人妻| 综合久久高清| 狠狠激情五月天| 五月丁香成人网| 婷婷丁香五月色偷偷| 思思久久96热在精品国产,| 色碰碰视频| 五月天天天色| 婷婷色综合| 久综合九| 五月婷婷丁香在线| 亚洲熟妇AV乱码在线观看| 97狠狠色| 色色99| 影音先锋一区二区资源站| 成人精品一区二区三区四区五区 | 久久久久人妻网址| 操碰久| 色五月综合激情| 性爱久久| 婷婷五月蜜桃成人桃色丁香| 色综合久久天天综合网| 人妻中文字幕网| 五区毛片七区毛片| 香蕉人妻AV久久久久天天| 久久xx| 九九自拍网| 激情九色| 狠狠插狠狠插| 深爱激情六月天| 日本不卡高字幕在线2019| 久操b网| 亚洲五月婷| 日韩欧美成人片| 五月天淫乱视频| 丁香五月WWW| 狠狠激情五月天| 色五月丁香A欧美com| 精品99网站| 亚洲精品久久久无码| 五月婷婷综合色啪| 日日夜夜天天| 五月丁香久久久日婷婷久久婷婷日| 久久天天| 激情综合五月激情17| 久久久噜噜噜久久人妻| 日日骑夜夜撸| 120分钟婬片免费看| 六月丁香视频网站| 亚洲无AV在线中文字幕| 天天综合五月| 激情小说 五月天| 日韩青青| 激情五月婷婷网| 婷婷第一页| 美国十月色婷婷在线观看| 日韩精品超碰在线观看| 91视频精品99| 婷婷九月| 99在线精品免费视频| 囯产精品一品二区三区| 性爱技巧五月| 狠狠干五月天| 婷婷久久大香蕉| 99精品无码| 色久五月| 91性人人| 大香蕉人妻| 久久国产精品乱子伦_靑青草…| 精品国产AV色一区二区深夜久久| 天天xxxxxx天天日| 亚洲午夜Av| 婷婷五月天开心网| 5月婷婷性视频| 色综合色综合色综合| 五月丁香婷婷综合视频| 色99视频| WWW激情五月天| 欧美性交一区二区三区| 新97人人上人人| 伦乱美欧| ...婷婷五月综合不卡,国产在线手机| 9l视频自拍九色9l视频自拍九色9l社区 | 免费亚洲婷婷| 武汉美女啪啪视频免费一级片| 亚洲在线成人| 五月成人网站| 五月丁香做爱视频| 操操天堂| 五月婷婷 激情按摩| 综合99视频| 亚洲第一色色色色| 激情熟女网| 五月丁香六月婷| 激情五月四色| 无码se| 99视频日韩| 婷婷五月丁香五月| 天天插天天插天天插| 六月婷婷激情图片| 久久R激情| www.久久99| 人人爽亚洲| 99热超碰| 亚洲国产网站| 少妇AB又爽又紧无码网站| www.狠狠| 97色婷婷五月天| 五月婷婷性爱| 色婷婷另类| 色婷婷成人做爰A片免费看网站 | 老司机视频lsj爱就色| 色婷婷狠狠| 婷婷五月天无码| 婷婷五月免费观看| 97人人看| 婷婷五月天综合久久| 亚洲综合网区| 综合性爱网| 六月色丁香婷婷| 九九视频在线| 久久总和99| 五月丁香欧美综合| 69午夜成人影片| 色色丁香| 九九人人精品| 久久综合香蕉国产国产蜜臀AV| 91丨九色丨东北熟女| 在线观看亚洲视频影院| 人人爽欧美婷婷久久久五月丁香| 色国产五月| 99久久婷婷国产综合| 99热99在线精品| 日本波多野结衣视频| 六月婷婷综合| 色婷婷小说网| 91色婷婷综合久久中文字幕二区| 婷婷淫淫狠狠六月| 能直接看的AV网站| 亚洲 在线 性爱| 天天日日人| 五月婷在线| 日韩综合久久| 天天综合91入口| 一区二区你懂的| 激情综合网激情五月俺也去| 日韩精品无码一区二区| www.激情| 久久五月天婷婷| 五月婷婷香| 五月丁香六月激情欧美综合| 99ri精品视频在线观看| 成人亚洲精品| 五月丁香av中文| 超碰色色综合| 婷婷欧美激情综合| 超碰在线免费9| 亚洲综合另类| 996热re视频精品视频| 婷婷六月综合基地| 激情爱爱网站| 97色在线视频| 日韩AV大全| 日日夜夜天天| 五月丁香好婷婷A片网| 色网站99| 丁香激情六月天婷婷| 五月丁香婷中文字幕| 亚洲麻豆乱码国产2028| 色综合天天天天做夜夜| 亚州色色色| 激情五月色婷婷| 9精品在线| 亚州操人在线视频| 狠狠狠狠狠干| 日本强伦片中文字幕免费看| 五月婷婷电影院| 婷婷五月娱乐在线| 大香蕉Av在线| 超碰人人干| 午夜美女人啪最红院| 五月婷在线色视频| 丁香六月欧美| 婷婷久久五月| 精品一区二区三区免费毛片爱| 丁香婷婷九月在线| 婷婷综合在线视频| 久久综合激情| 婷婷五月天伦理| 五月丁香欧美| 激情综合网激情五月天| 婷婷五月激情图片| 久久婷婷五月天丁香| 婷婷久久婷婷| 91九九| 婷婷五月色丁香在线看| 婷婷中文字幕| 99re久久| 91人人爽人人操| 亚洲综合色色| 婷婷色色网| 五月婷婷六月丁香| 婷婷综合五月天| 狠狠综合久久综合| 丁香婷最新动态| 婷婷五月噜噜| 色婷婷香蕉| 色五月婷婷777| 超碰二区| 狠狠色狠狠色综合日日91| 色噜噜狠狠色综合网| 精品一二三区久久AAA片| 在线综合91| A一级操| 精品丁香五月天在线播放| 九九碰九九爱97| 色色色色色色色色色色色色色五月天| 日本色频| 日日干天天| 国产精品久久久久久久久久久久 | 激情网五月婷婷| www狠狠| 丁香五月激情五月| 天天想夜夜爽天天爽| 综合色五月| 色综合久久久久| 色色综合激情| 激情 婷婷 插| 九九热99热| 六月婷婷AV| 少妇婷婷五月天| 久9视频| 日本在线wwww| 色五月天天| 久热大香蕉| 激情av网| 五月丁香婷婷六月天| 99久re热视频精品98| 秋霞网在线免费基地五月婷婷丁香| 久热这里这里有精品| 婷婷丁香色情| 97超碰在线观看免费| 狠狠色狠狠鲁| 色婷婷色99国产综合精品| 99热精品10| 天天干天天操| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 婷婷啪啪| 婷婷五月天激情小说| 天天久综合| 色香蕉婷婷| 五月天婷五月天综合网在线观| 91婷婷丁香五月| 五月天激情图片网| 色噜噜婷婷| 狠狠色色色| 五月婷婷色丁香| 色欲色香综合网| 99re视频在线播放| 一级二级色大片| 狠狠久久婷婷| 亚洲av骚货| 婷婷五月天最新网址| 亚洲噜色| 色色色九九九五月婷婷| 97色伦另类图片小说视频 | 伊人国产婷婷五月天| 六月丁香五月婷婷| 婷婷 久综合| 激情开心五月天| 99人碰碰碰| 99久视频| 久久精品性爱视频,| 六月婷婷开心| 婷婷成人网五月天| 五月天婷婷丁香| 久久只有这里精品免费| 九九这里有精品| 高清无码.com| 五月婷婷六月丁香| 一本久久亚洲五月婷婷| www.狠狠操| 色五月av伊人| 黄网在线免费观| 五月丁香狠狠地噜噜噜噜| 玖玖婷婷免费| 婷婷丁香五月综合激情小说| 91seAV| 久狠狠狠| 亚洲综合婷婷五月| 五月天色不卡| 开心亚洲久久开心| 欧美性爱丁香五月| 六月丁香久久| 蜜桃婷婷狠狠久久| 亚洲黄色影视| 九九视频精品这里只有| 风流少妇A片一区二区蜜桃| 天天久久综合| 色婷婷影视99| 久久激情天堂| 精品九九在线观看视频| 夜夜爽77777妓女免费下载| www.色五月天.com| 欧美超碰人人| 99视频久久| 人妻videos人妻高清| 色婷小说| 婷婷五月天激情小说| 日韩五月婷婷| 思思热99er| 六月婷婷啪啪| 思思久ren热| 色综合99无码 | 十区av| 六月丁香五月天| 丁香五月骚喷水视频| 天天肏天天肏| 久久久婷婷| 国模淫穴色图| 五月天婷婷伊人| 激情五月综合网| 五月丁香六月综合激情无码软件亮点| 亚洲综合无码| 蜜桃成语时李时珍 免费| 色色射| 99精品视频免费在线播放| 嫩草免费视频| 激情五月天色网站| 国产五月丁香在线| 丰滿爆乳一区二区三区| 日韩成人AV在线播放| 综合激情综合啪啪| 日韩超碰在线| 久久久久久久久久久-久五月天婷婷| 伊人婷婷五月天| 天天日人人| 婷婷丁香五月激情密臀av| 成人av免费观看| 99精品免费欧美小视频| WWW.天天日| 激情五月天色色色| 99色综合| 久久五月天视频| 噜噜噜精品欧美成人在线观看| 日韩av在线免费观看| 中日韩美欧成人一区二区精品在线| 欧美五月婷婷| 丁香 婷婷 亚洲 熟女| 日韩 欧美 国产 一区 二区| 欧美啪啪网| 三级片AAA久久久AAA久久久AAA | 碰人人操| 亚洲宗合激情| 色99色| 99超级碰碰| www.深爱激情| 国产精品五月丁香| 九月婷婷久久| 色色色色色五月| 国产毛片操B| 婷婷久久久| 九九九热精品| 久久人人妻| 亚洲丁香五月| 欧美色播综合在线观看| 激情五月天丁香| 免费看无码视频A级| YW无码| 99热网精品| 婷婷综合| 久久这里只有精品8| 丁香五月在线自慰| 综合激情视频| 九九精品在线观看视频6| www,色中色| 婷婷六月婷婷| 天天色·欧美| 男人的天堂999| 久月婷婷| 日韩久热| 国产精品视频| 人人操人人干AV| 狠狠色综合网站久久久久| 日本成人内射| 久久婷婷五月综合色丁香花| 欧美内射AAAAAAXXXXX| 五月天婷婷基地| 亚洲色综合| 性一交一乱一交A片久久四色| 无码激情| 成人AV在线电影| 99热91| 五月天婷婷在线观看| 亚洲久热| 强伦轩人妻一区二区电影| 婷婷九月| 欧美色五月| 97人妻碰碰中文无码久热丝袜| 97人人干人人操| 亚洲综合另类| 涩涩五月天| 少妇出轨做爰高潮A片| 乱乱av| 好叼操在线观看| 激情婷婷。| 狠狠色婷婷7777久综合| 99手机在线精品视频| 色域五月婷婷丁香| 亚洲超碰在线| 五月天天丁香婷婷在线中| 99综合婷婷五月| 九九热这里只有精品一| 久久激情五月天| 国产这里只有精品| 99热这里只有精品1025| 婷婷五月天色播| 嫩草AV久久伊人妇女超级A | 九九色黄色| 日韩无码人妻一区二区| 婷婷在线综合| 婷婷五月激情四月综合| 四虎婷婷五月天| 凹凸操Av| 97热在线精品| 狠狠干婷婷| 免费看欧美成人A片无码| 婷久久高清| 另类在线观看视频| 久热大香蕉| 丁香婷婷六月天| 亚州操人在线视频| 色婷婷久久综合| 97干资源在线观看| 69精品人人人人| 日本综合九九| 久久伊人9| 五月天激日本色情在线| 热99re| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 丁香五月天AV在线 | 久去色色| 97色色色视频| 内射综合网| 无码人妻丰满熟妇奶水区码| 成人va在线| 色婷婷狠狠| 丁香五月激情婷婷| 婷婷午夜激情| 久热婷婷综合| 五月婷婷亚洲| 久久婷婷五月综合色播| 97色啪| 国产成人综合亚洲| 久婷久婷| 五月天婷婷导航| 九九色欲网| 五月丁香婷婷欧美色图视频五月丁香777电影 | 这里只有精品,日韩视频| 99视频这里只有精品10| 色五月五月婷婷| 九九九九九九九九九九九九九国产精品| 91久久久久久久| 九九在线这里只有精品视频| 丁香色婷婷| 91日综合欧美| 久久综合网免费视频| 婷婷五月在线观看| 国产69久久久欧美黑人A片 | 色五月婷婷五月| 9 1大香蕉| 99热在线免费观看精品| 婷婷激情六月综合| 九九综合九| 激情综合播播| 99免费视频| 性爱激情五月| 五月色丁香综合| 五月丁香六月婷| 影音先锋男人av资源站| 五月婷婷色播视频| 五月天丁香久久| 久草x色在线观看99| 天天综合亚洲综合网天天αⅴ| 成人在线日韩欧美| 丁香花综合永久入口| 777久久综合视频| 影音先锋一区二区三区| 天堂久久大香蕉| 5月丁香六月情| 91碰碰| 日本色频| av在线观看网站| 青青日韩| 日日狠狠久久偷偷四色综合免费| 少妇大叫太大太粗太爽了A片 | 天天干天天干天天干天天干天天| 99热精品在线观看| 99久久97久久欧美综合网| 丁香六月婷婷激情| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | www.婷婷五月| 丁香五月网址| 丁香五月婷婷基地| 9999综合99综合人| 丁香五月激情婷婷| 激情婷婷丁香| 一根材五月婷成人| 97色碰| 久久这有这里精品| 久久这里只有精品热在99| 91久久久久久久久久久| 欧美综合五月丁香六月婷| 五月天社区婷婷丁香社区| 色五月婷婷在线| 综合爱久久| 99热这里有精品| 久久国产高潮白浆免费观看99| 色婷婷视频综合| 在线五月婷| 欧美va欧美va差| 欧美一级毛卡片无码| 婷婷五月深深爱| 天天视频精品9| 2025色婷婷| 99视频在线啪| 日韩99视频| 超碰亚洲天堂| 99这里只有精品视频|