本發明專利技術實施例提供一種緩存替換的方法、緩存控制器和處理器,所述方法包括:緩存控制器通過確定待替換緩存行的關聯緩存池,關聯緩存池中的各關聯緩存行與待替換緩存行屬于同一內存行,并且進一步根據關聯緩存行的訪問信息從關聯緩存池中確定待寫回緩存行,將待替換緩存行以及待寫回緩存行中的數據一起寫入內存。由于待替換緩存行和待寫回緩存行屬于同一內存行,因此,能夠提高行緩存區的命中率,從而提高內存訪問性能,另外,緩存控制器進一步根據關聯緩存行的訪問信息從關聯緩存池中確定待寫回緩存行,只將關聯緩存池中的待寫回緩存行寫回內存,因此,能夠減少內存的寫次數,提高內存的使用壽命。
【技術實現步驟摘要】
本專利技術實施例涉及通信技術,尤其涉及一種緩存替換的方法、緩存控制器和處理器。
技術介紹
隨著大數據應用的發展,對內存的容量和訪問速度有了越來越高的要求,常用的動態隨機訪問存儲器(Dynamic Random-Access Memory,簡稱DRAM)已不能滿足要求。隨之誕生的新型的非易失性存儲器(Non-Volatile Memory,簡稱NVM)以其大容量、低功耗等優勢有望取代DRAM成為計算機系統中的內存系統。然而,現有NVM的讀寫延遲較DRAM高,且寫次數有限。NVM內部的讀寫機制與DRAM類似,NVM有一個行緩沖區(Row buffer)用來保存最近一次訪問的內存行中的數據,NVM訪問的延遲依賴于行緩沖區是否命中。若連續的兩個內存訪問請求的地址屬于同一內存行,則行緩沖區命中,當行緩沖區命中時,后一次的內存訪問請求不需要從內存陣列中讀取數據,而是直接從行緩沖區中讀取數據,減少了內存訪問的延遲。由于NVM的讀寫延遲較高,若行緩沖區不命中,則需要從NVM陣列中讀取數據,對NVM陣列的訪問延遲大于對DRAM陣列的訪問延遲,但二者對行緩沖區的讀寫延遲基本相同,因此,對于NVM來說提高行緩沖區的命中率更能顯著提高內存訪問效率。現有機制中,受緩存(cache)替換策略的影響,導致發往內存的請求地址較為隨機,因此,行緩沖區命中率較差,影響內存訪問性能。
技術實現思路
本專利技術實施例提供一種緩存替換的方法、緩存控制器和處理器,能夠提高行緩存區的命中率,從而提聞內存訪問性能,并且能夠減少內存的與次數,提聞內存的使用壽命。本專利技術第一方面提供一種緩存替換的方法,包括:緩存控制器接收內存訪問請求,根據所述內存訪問請求的地址查找緩存,若在所述緩存中沒有查找到所述內存訪問請求的地址,則從所述緩存中確定待替換緩存行;若所述待替換緩存行為臟緩存行,則所述緩存控制器根據所述待替換緩存行的地址確定關聯緩存池,所述關聯緩存池包括至少一個關聯緩存行,所述關聯緩存行與所述待替換緩存行屬于同一內存行,所述關聯緩存行位于所述緩存中,所述關聯緩存行為臟緩存行,所述臟緩存行的數據被修改過;所述緩存控制器根據所述關聯緩存行的訪問信息從所述關聯緩存池中確定待寫回緩存行;所述緩存控制器將所述待替換緩存行以及所述待寫回緩存行的地址和數據發送給內存控制器,以使所述內存控制器根據所述待替換緩存行以及所述待寫回緩存行的地址將所述待替換緩存行以及所述待寫回緩存行的數據寫入內存,并將所述內存訪問請求所需的數據從所述內存中讀入所述待替換緩存行的位置。結合本專利技術第一方面,在本專利技術第一方面的第一種可能的實現方式中,所述緩存控制器根據所述關聯緩存行的訪問信息從所述關聯緩存池中確定待寫回緩存行,包括:所述緩存控制器根據所述關聯緩存行的訪問次數和/或寫回標示從所述關聯緩存池中確定待寫回緩存行,所述寫回標示用于表示所述關聯緩存行是否需要寫回內存。結合本專利技術第一方面的第一種可能的實現方式,在本專利技術第一方面的第二種可能的實現方式中,所述緩存控制器根據所述關聯緩存行的訪問次數從所述關聯緩存池中確定待寫回緩存行,包括:所述緩存控制器確定所述關聯緩存行是否屬于最近最少訪問緩存鏈表的最后M個緩存行,所述最近最少訪問緩存鏈表用于根據各緩存行在預設時間內的訪問次數進行排序,所述最近最少訪問緩存鏈表的最后M個緩存行為所述預設時間內訪問次數最少的緩存行,M為正整數;若所述關聯緩存行屬于所述最近最少訪問緩存鏈表的最后M個緩存行,則所述緩存控制器確定所述關聯緩存行為所述待寫回緩存行。結合本專利技術第一方面的第一種可能的實現方式,在本專利技術第一方面的第三種可能的實現方式中,所述緩存控制器根據所述關聯緩存行的寫回標示從所述關聯緩存池中確定待寫回緩存行,包括:若所述關聯緩存行的寫回標示表示所述關聯緩存行需要寫回內存,則所述緩存控制器確定所述關聯緩存行為待寫回緩存行。結合本專利技術第一方面的第一種可能的實現方式,在本專利技術第一方面的第四種可能的實現方式中,所述緩存控制器根據所述關聯緩存行的訪問次數和寫回標示從所述關聯緩存池中確定待寫回緩存行,包括:所述緩存控制器根據所述關聯緩存行的訪問次數判斷所述關聯緩存行是否屬于最近最少訪問緩存鏈表的最后M個緩存行,所述最近最少訪問緩存鏈表用于根據各緩存行在預設時間內的訪問次數進行排序,所述最近最少訪問緩存鏈表的最后M個緩存行為所述預設時間內訪問次數最少的緩存行,M為正整數;若所述關聯緩存行屬于所述最近最少訪問緩存鏈表的最后M個緩存行,并且所述關聯緩存行的寫回標示表示所述關聯緩存行需要寫回內存,則所述緩存控制器確定所述關聯緩存行為待寫回緩存行。結合本專利技術第一方面的第一種至第四種可能的實現方式,在本專利技術第一方面的第五種可能的實現方式中,在所述緩存控制器將所述待寫回緩存行對應的數據寫回所述內存后,所述方法還包括:所述緩存控制器將所述待寫回緩存行的寫回標示的值置為表示不需要寫回內存。結合本專利技術第一方面的第一種至第五種可能的實現方式,在本專利技術第一方面的第六種可能的實現方式中,所述方法還包括:所述緩存控制器將每個緩存行的寫回標示的值周期性的置為表示需要寫回內存。結合本專利技術第一方面的第一種至第五種可能的實現方式,在本專利技術第一方面的第七種可能的實現方式中,所述寫回標示為計數器的值,若所述計數器的值不小于寫回閾值,則所述寫回標示用于表示所述關聯緩存行需要寫入內存;若所述計數器的值小于所述寫回閾值,則所述寫回標示用于表示所述關聯緩存行不需要寫入內存。結合本專利技術第一方面的第七種可能的實現方式,在本專利技術第一方面的第八種可能的實現方式中,當所述寫回標示為計數器的值時,所述緩存控制器將所述待寫回緩存行的寫回標示的值置為表示不需要寫回內存,包括:所述緩存控制器將所述計數器的值置為零。結合本專利技術第一方面的第七種可能的實現方式,在本專利技術第一方面的第九種可能的實現方式中,若所述計數器的值小于所述寫回閾值,所述方法還包括:所述緩存控制器將所述計數器的值加一。結合本專利技術第一方面的第一種至第九種可能的實現方式,在本專利技術第一方面的第十種可能的實現方式中,所述緩存控制器根據所述待替換緩存行的地址確定關聯緩存池,包括:所述緩存控制器根據所述待替換緩存行的地址確定備用緩存行,所述備用緩存行與所述待替換緩存行屬于同一內存行;所述緩存控制器判斷所述備用緩存行是否位于所述緩存中;若所述備用緩存行位于所述緩存中,則所述緩存控制器判斷所述備用緩存行是否為臟緩存行;若所述備用緩存行為臟緩存行,則所述緩存控制器確定所述備用緩存行為關聯緩存行。結合本專利技術第一方面的第十種可能的實現方式,在本專利技術第一方面的第i^一種可能的實現方式中,所述緩存控制器根據所述待替換緩存行的地址確定備用緩存行,包括:所述緩存控制器將所述待替換緩存行的地址與第一掩碼相與得到所述待替換緩存行的行地址;所述緩存控制器將所述行地址與第二掩碼相與得到所述備用緩存行,所述第二掩碼的初始值為零,每次將所述行地址與所述第二掩碼相與后,對所述第二掩碼的值加一個緩存行的大小,直到得到所有的備用緩存行。本專利技術第二方面提供一種緩存控制器,包括:接收模塊,用戶接收內存訪問請求;查找模塊,用于根據所述內存訪問請求的地址查找緩存;第一確定模塊,用于若所述查找模塊在所述緩存中沒有查找本文檔來自技高網...

【技術保護點】
一種緩存替換的方法,其特征在于,包括:緩存控制器接收內存訪問請求,根據所述內存訪問請求的地址查找緩存,若在所述緩存中沒有查找到所述內存訪問請求的地址,則從所述緩存中確定待替換緩存行;若所述待替換緩存行為臟緩存行,則所述緩存控制器根據所述待替換緩存行的地址確定關聯緩存池,所述關聯緩存池包括至少一個關聯緩存行,所述關聯緩存行與所述待替換緩存行屬于同一內存行,所述關聯緩存行位于所述緩存中,所述關聯緩存行為臟緩存行,所述臟緩存行的數據被修改過;所述緩存控制器根據所述關聯緩存行的訪問信息從所述關聯緩存池中確定待寫回緩存行;所述緩存控制器將所述待替換緩存行以及所述待寫回緩存行的地址和數據發送給內存控制器,以使所述內存控制器根據所述待替換緩存行以及所述待寫回緩存行的地址將所述待替換緩存行以及所述待寫回緩存行的數據寫入內存,并將所述內存訪問請求所需的數據從所述內存中讀入所述待替換緩存行的位置。
【技術特征摘要】
【專利技術屬性】
技術研發人員:張立新,魏巍,熊勁,蔣德鈞,
申請(專利權)人:華為技術有限公司,中國科學院計算技術研究所,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。