欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

緩存替換的方法、緩存控制器和處理器的制造方法_2

文檔序號:9375504閱讀:來源:國知局
在本發(fā)明第二方面的第三種可能的實現(xiàn)方式中,所述第三確定模塊在根據(jù)所述關(guān)聯(lián)緩存行的寫回標示從所述關(guān)聯(lián)緩存池中確定待寫回緩存行時,具體用于:
[0051]若所述關(guān)聯(lián)緩存行的寫回標示表示所述關(guān)聯(lián)緩存行需要寫回內(nèi)存,則確定所述關(guān)聯(lián)緩存行為待寫回緩存行。
[0052]結(jié)合本發(fā)明第二方面的第一種可能的實現(xiàn)方式,在本發(fā)明第二方面的第四種可能的實現(xiàn)方式中,所述第三確定模塊在根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)和寫回標示從所述關(guān)聯(lián)緩存池中確定待寫回緩存行時,具體用于:
[0053]根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)判斷所述關(guān)聯(lián)緩存行是否屬于最近最少訪問緩存鏈表的最后M個緩存行,所述最近最少訪問緩存鏈表用于根據(jù)各緩存行在預(yù)設(shè)時間內(nèi)的訪問次數(shù)進行排序,所述最近最少訪問緩存鏈表的最后M個緩存行為所述預(yù)設(shè)時間內(nèi)訪問次數(shù)最少的緩存行,M為正整數(shù);
[0054]若所述關(guān)聯(lián)緩存行屬于所述最近最少訪問緩存鏈表的最后M個緩存行,并且所述關(guān)聯(lián)緩存行的寫回標示表示所述關(guān)聯(lián)緩存行需要寫回內(nèi)存,則確定所述關(guān)聯(lián)緩存行為待寫回緩存行。
[0055]結(jié)合本發(fā)明第二方面的第一種至第四種可能的實現(xiàn)方式,在本發(fā)明第二方面的第五種可能的實現(xiàn)方式中,所述讀寫模塊還用于:
[0056]在將所述待寫回緩存行對應(yīng)的數(shù)據(jù)寫回所述內(nèi)存后,將所述待寫回緩存行的寫回標示的值置為表示不需要寫回內(nèi)存。
[0057]結(jié)合本發(fā)明第二方面的第一種至第五種可能的實現(xiàn)方式,在本發(fā)明第二方面的第六種可能的實現(xiàn)方式中,所述讀寫模塊還用于:
[0058]將每個緩存行的寫回標示的值周期性的置為表示需要寫回內(nèi)存。
[0059]結(jié)合本發(fā)明第二方面的第一種至第五種可能的實現(xiàn)方式,在本發(fā)明第二方面的第七種可能的實現(xiàn)方式中,所述寫回標示為計數(shù)器的值,若所述計數(shù)器的值不小于寫回閾值,則所述寫回標示用于表示所述關(guān)聯(lián)緩存行需要寫入內(nèi)存;
[0060]若所述計數(shù)器的值小于所述寫回閾值,則所述寫回標示用于表示所述關(guān)聯(lián)緩存行不需要寫入內(nèi)存。
[0061]結(jié)合本發(fā)明第二方面的第七種可能的實現(xiàn)方式,在本發(fā)明第二方面的第八種可能的實現(xiàn)方式中,當所述寫回標示為計數(shù)器的值時,所述讀寫模塊在將所述待寫回緩存行的寫回標示的值置為表示不需要寫回內(nèi)存時,具體用于:將所述計數(shù)器的值置為零。
[0062]結(jié)合本發(fā)明第二方面的第七種可能的實現(xiàn)方式,在本發(fā)明第二方面的第九種可能的實現(xiàn)方式中,若所述計數(shù)器的值小于所述寫回閾值,則所述關(guān)聯(lián)緩存行不需要寫回所述內(nèi)存,所述讀寫模塊還用于:將所述計數(shù)器的值加一。
[0063]結(jié)合本發(fā)明第二方面的第一種至第九種可能的實現(xiàn)方式,在本發(fā)明第二方面的第十種可能的實現(xiàn)方式中,所述第二確定模塊包括:
[0064]地址計算單元,用于根據(jù)所述待替換緩存行的地址確定備用緩存行,所述備用緩存行與所述待替換緩存行屬于同一內(nèi)存行;
[0065]判斷單元,用于判斷所述備用緩存行是否位于所述緩存中,若所述備用緩存行位于所述緩存中,判斷所述備用緩存行是否為臟緩存行,若所述備用緩存行為臟緩存行,則確定所述備用緩存行為關(guān)聯(lián)緩存行。
[0066]結(jié)合本發(fā)明第二方面的第十種可能的實現(xiàn)方式,在本發(fā)明第二方面的第i^一種可能的實現(xiàn)方式中,所述地址計算單元具體用于:
[0067]將所述待替換緩存行的地址與第一掩碼相與得到所述待替換緩存行的行地址;
[0068]將所述行地址與第二掩碼相與得到所述備用緩存行,所述第二掩碼的初始值為零,每次將所述行地址與所述第二掩碼相與后,對所述第二掩碼的值加一個緩存行的大小,直到得到所有的備用緩存行。
[0069]本發(fā)明第三方面提供一種處理器,包括:中央處理器單元CPU、緩存、緩存控制器、內(nèi)存控制器,所述緩存通過系統(tǒng)總線分別與所述CPU和所述內(nèi)存控制器連接并通信,所述緩存控制器位于所述緩存中,其中:
[0070]所述CPU,用于向所述緩存控制器發(fā)送內(nèi)存訪問請求;
[0071]所述緩存控制器,用于執(zhí)行本發(fā)明第一方面以及第一方面的第一種至第十一種可能的實現(xiàn)方式的任一種方法;
[0072]所述內(nèi)存控制器,用于接收所述緩存控制器發(fā)送的待替換緩存行以及待寫回緩存行的地址和數(shù)據(jù),根據(jù)所述待替換緩存行以及所述待寫回緩存行的地址將所述待替換緩存行以及所述待寫回緩存行的數(shù)據(jù)寫入內(nèi)存;
[0073]所述內(nèi)存控制器還用于,接收所述緩存控制器發(fā)送的內(nèi)存訪問請求的地址,根據(jù)所述內(nèi)存訪問請求的地址從內(nèi)存中讀取所述內(nèi)存訪問請求所需的數(shù)據(jù),并將所述內(nèi)存訪問請求所需的數(shù)據(jù)發(fā)送給所述緩存控制器;
[0074]所述緩存控制器還用于,將所述內(nèi)存訪問請求所需的數(shù)據(jù)讀入所述待替換緩存的位置。
[0075]本發(fā)明實施例提供的緩存替換的方法、緩存控制器和處理器,緩存控制器通過確定待替換緩存行的關(guān)聯(lián)緩存池,關(guān)聯(lián)緩存池中的各關(guān)聯(lián)緩存行與待替換緩存行屬于同一內(nèi)存行,并且進一步根據(jù)關(guān)聯(lián)緩存行的訪問信息從關(guān)聯(lián)緩存池中確定待寫回緩存行,將待替換緩存行以及待寫回緩存行中的數(shù)據(jù)一起寫入內(nèi)存。由于待替換緩存行和待寫回緩存行屬于同一內(nèi)存行,因此,能夠提高行緩存區(qū)的命中率,從而提高內(nèi)存訪問性能,另外,緩存控制器進一步根據(jù)關(guān)聯(lián)緩存行的訪問信息從關(guān)聯(lián)緩存池中確定待寫回緩存行,只將關(guān)聯(lián)緩存池中的待寫回緩存行寫回內(nèi)存,因此,能夠減少內(nèi)存的寫次數(shù),提高內(nèi)存的使用壽命。
【附圖說明】
[0076]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0077]圖1為現(xiàn)有的內(nèi)存的讀與原理TJK意圖;
[0078]圖2為本發(fā)明實施例所適用的硬件的結(jié)構(gòu)示意圖;
[0079]圖3為本發(fā)明實施例提供的一種緩存替換的方法的流程圖;
[0080]圖4為一種緩存的結(jié)構(gòu)示意圖;
[0081]圖5為本發(fā)明實施例提供的另一種緩存替換的方法的流程圖;
[0082]圖6為本發(fā)明實施例提供的一種緩存控制器的結(jié)構(gòu)示意圖;
[0083]圖7為本發(fā)明實施例提供的另一種緩存控制器的結(jié)構(gòu)示意圖;
[0084]圖8為本發(fā)明實施例提供的處理器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0085]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0086]圖1為現(xiàn)有的內(nèi)存的讀寫原理示意圖,如圖1所示,內(nèi)存訪問請求地址序列中包括三個內(nèi)存訪問請求,訪問順序依次為:緩存行(cache line) A0、緩存行BO和緩存行Al,緩存行AO和緩存行Al屬于同一內(nèi)存行A。當內(nèi)存控制器訪問緩存行AO時,內(nèi)存控制器將內(nèi)存(Memory)陣列中內(nèi)存行A的所有緩存行都讀取到行緩沖區(qū)(Row buffer),內(nèi)存控制器從內(nèi)存陣列中讀取數(shù)據(jù)時以一個內(nèi)存行為最小單位讀取,行緩沖區(qū)用來保存內(nèi)存中最近一次訪問的內(nèi)存行的數(shù)據(jù)。然后,內(nèi)存控制器將緩存行AO的數(shù)據(jù)從行緩沖區(qū)讀取到緩存(cache)。在緩存行AO訪問結(jié)束后,內(nèi)存控制器要訪問緩存行BO,緩存行BO與AI屬于不同的內(nèi)存行,因此,行緩沖區(qū)沒有命中,內(nèi)存控制器還需要從內(nèi)存陣列中讀取內(nèi)存行B的數(shù)據(jù)到行緩沖區(qū),在內(nèi)存控制器訪問緩存行Al時,由于緩存行Al和BI屬于不同的內(nèi)存行,所以行緩沖區(qū)仍然沒有命中。圖1所示情況下,行緩沖區(qū)的命中率為0,每次都需要從內(nèi)存陣列讀取數(shù)據(jù),內(nèi)存訪問延遲較大。
[0087]針對上述問題,本發(fā)明實施例通過在cache層將內(nèi)存訪問請求隊列從隨機寫聚合為順序?qū)懀丛黾觾?nèi)存訪問請求隊列中對同一內(nèi)存行的內(nèi)存訪問請求,以提高行緩沖區(qū)的命中率,降低內(nèi)存訪問延遲。本發(fā)明實施例的硬件結(jié)構(gòu)如圖2所示,包括:處理器和內(nèi)存,該處理器內(nèi)部包括:一個或多個中央處理單元(Central Processing Unit,簡稱CPU)、緩存、內(nèi)存控制器和緩存控制器。處理器通過緩存控制器訪問緩存,并通過內(nèi)存控制器訪問內(nèi)存。本實施例的內(nèi)存可以為DRAM、NVM等,當內(nèi)存為NVM時,NVM可以為相變存儲器(PhaseChange Memory,簡稱PCM)、阻變式存儲器(Resistive Random Access Memory,簡稱RRAM)、自旋轉(zhuǎn)移矩隨機存儲器(Spin transfer torque-random access memory,簡稱 STT-RAM)、磁性隨機存儲器(Magnetic Random Access Memory,簡稱 MRAM)等。
[0088]圖3為本發(fā)明實施例提供的一種緩存替換的方法的流程圖,如圖3所示,本實施例的方法可以包括以下步驟:
[0089]步驟101、緩存控制器接收內(nèi)存訪問請求,根據(jù)內(nèi)存訪問請求的地址查找緩存,若在緩存中沒有查找到內(nèi)存訪問請求的地址,則從緩存中確定待替換緩存行。
[0090]內(nèi)存訪問請求由處理器發(fā)送,處理器并不是直接訪問內(nèi)存,而是通過緩存間接訪問內(nèi)存。具體地,處理器先根據(jù)內(nèi)存訪問請求的地址訪問緩存,處理器訪問緩存時具體是通過控制緩存控制器遍歷緩存中的全部緩存行,查找內(nèi)存訪問請求的地址。若緩存控制器在緩存中沒有找到該內(nèi)存訪問請求的地址,即緩存沒有命中,則緩存控制器開始進行緩存替換,將緩存中的緩存行中的數(shù)據(jù)替換到內(nèi)存,并從內(nèi)存中將該內(nèi)存訪問請求所需的數(shù)據(jù)讀取到被替換的緩存行的位置,再從緩存中讀取該內(nèi)存訪問請求所需的數(shù)據(jù)。
[0091]處理器發(fā)送的內(nèi)存訪問請求中通常攜帶虛地址,該內(nèi)存訪問請求在到達緩存控制器之前還經(jīng)過內(nèi)存管理單元(Memory Management Unit,簡稱MMU) ,MMU進行虛地址到實地址的轉(zhuǎn)換,虛地址也稱為虛擬地址,實地址也稱為物理地址,因此,緩存控制器接收到的內(nèi)存訪問請求的地址是實地址。
[0092]在進行緩存替換時,緩存控制器
當前第2頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
焦作市| 岐山县| 永清县| 衡南县| 平利县| 土默特左旗| 宜昌市| 石棉县| 康马县| 新野县| 克东县| 长海县| 广丰县| 江油市| 长治县| 南京市| 新蔡县| 同江市| 海原县| 壤塘县| 隆回县| 乌拉特中旗| 保靖县| 凤台县| 三江| 喜德县| 萍乡市| 东阳市| 通榆县| 中牟县| 咸阳市| 康乐县| 凉城县| 高阳县| 石阡县| 公安县| 伊川县| 宾阳县| 格尔木市| 明星| 鄂州市|