国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種Cache的替換方法及裝置制造方法

      文檔序號:6486371閱讀:158來源:國知局
      一種Cache的替換方法及裝置制造方法
      【專利摘要】本發(fā)明實施例提供一種Cache的數(shù)據(jù)替換方法及裝置,所述方法包括:獲取Cache的工作狀態(tài),判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況;如果出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況,則確定與所述數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,以使所述Cache按照所述數(shù)據(jù)替換周期將已保存在所述Cache中的數(shù)據(jù)替換為輸入的數(shù)據(jù)。本發(fā)明實施例通過確定與當(dāng)前發(fā)生的數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期的方式,延緩Cache內(nèi)已保存的數(shù)據(jù)被替換的時間,推遲了計算機發(fā)生性能跳水的時間,縮短了性能跳水持續(xù)的時長,并且還降低了性能跳水的程度。
      【專利說明】—種Cache的替換方法及裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù),具體涉及一種高速緩沖存儲器(Cache)的替換方法及
      >J-U裝直。
      【背景技術(shù)】
      [0002]隨著計算機技術(shù)的飛速發(fā)展,處理器與存儲器訪問速度之間的差距越來越大,導(dǎo)致內(nèi)存墻問題也越來越嚴(yán)重,成為影響計算機系統(tǒng)性能最主要的瓶頸之一。所謂內(nèi)存墻是指,內(nèi)存性能嚴(yán)重限制CPU性能發(fā)揮的現(xiàn)象。
      [0003]為了緩解CPU與內(nèi)存之間的速度差距,現(xiàn)有的計算機體系結(jié)構(gòu)廣泛采用在CPU與內(nèi)存之間設(shè)置高速緩沖存儲器Cache的方式,將一些可能會被反復(fù)調(diào)用的程序數(shù)據(jù)或者報文數(shù)據(jù)存入Cache中。在CPU訪問內(nèi)存時,首先判斷所要訪問的內(nèi)容是否在Cache中,如果在Cache中,則被稱為“命中”,此時,CPU直接從Cache中調(diào)用所要訪問的內(nèi)容;如果不在Cache中,則被稱為“缺失”,CPU需要去內(nèi)存中調(diào)用所要訪問的內(nèi)容。因為Cache的存取速率非???,使得CPU的利用率大大提高,進而也使整個計算機系統(tǒng)的性能得以提升。
      [0004]數(shù)據(jù)被存入Cache中,在需要時被CPU調(diào)用進行解析和處理操作,一般情況下,數(shù)據(jù)輸入Cache的速度遠(yuǎn)小于CPU處理數(shù)據(jù)的速度,因此CPU有足夠的時間處理Cache內(nèi)的數(shù)據(jù),因此,在有新數(shù)據(jù)輸入Cache需要進行數(shù)據(jù)替換時,Cache可以按照CPU的指示選擇已處理過的數(shù)據(jù)作為被替換對象替換出Cache。而在出現(xiàn)數(shù)據(jù)突發(fā)流量過大的情況時,數(shù)據(jù)存入Cache的速度大于CPU的處理速度,考慮到Cache的容量問題,此時會將當(dāng)前輸入的數(shù)據(jù)視為最近需要訪問的數(shù)據(jù)存入到Cache,而替換掉Cache中先前已保存的數(shù)據(jù)。在這種突發(fā)情況下,選擇出的被替換對象可能還未被CPU處理,如果將這部分?jǐn)?shù)據(jù)從本級Cache替換到下一級Cache (某些計算機可能配置有二級、三級緩存,每級緩存比前一級緩存容量大且速度慢,此處是指將先前已保存的數(shù)據(jù)從一級緩存中替換到二級、甚至三級緩存中)或者替換到DDR(Double Data Rate,雙倍速率同步動態(tài)隨機存儲器)中,在CPU需要調(diào)用該部分?jǐn)?shù)據(jù)時,只能去下一級Cache或者DDR中讀取,這就降低了本級Cache的數(shù)據(jù)命中率,而數(shù)據(jù)命中率低就意味著CPU在進行數(shù)據(jù)處理時需要去其它地方讀取數(shù)據(jù),這勢必會增加CPU讀取數(shù)據(jù)的時間,降低CPU的處理速度,導(dǎo)致計算機性能跳水。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明實施例提供一種Cache的數(shù)據(jù)替換方法及裝置,在出現(xiàn)數(shù)據(jù)突發(fā)流量很大的情況時,通過合理替換Cache內(nèi)已保存的數(shù)據(jù),實現(xiàn)推遲計算機發(fā)生性能跳水的時間,縮短性能跳水的持續(xù)時長,降低性能跳水程度的目的。
      [0006]為此,本發(fā)明實施例提供如下技術(shù)方案:
      [0007]一種Cache的數(shù)據(jù)替換方法,所述方法包括:
      [0008]獲取Cache的工作狀態(tài),判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況;[0009]如果出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況,則確定與所述數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,以使所述Cache按照所述數(shù)據(jù)替換周期將已保存在所述Cache中的數(shù)據(jù)替換為輸入的數(shù)據(jù)。
      [0010]一種Cache的數(shù)據(jù)替換裝置,所述裝置包括:
      [0011]工作狀態(tài)獲取單元,用于獲取Cache的工作狀態(tài),判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況;
      [0012]數(shù)據(jù)替換周期確定單元,用于在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,確定與所述數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,以使所述Cache按照所述數(shù)據(jù)替換周期將已保存在所述Cache中的數(shù)據(jù)替換為輸入的數(shù)據(jù)。
      [0013]本發(fā)明實施例一種Cache的數(shù)據(jù)替換方法及裝置,通過獲取Cache的工作狀態(tài)判斷當(dāng)前是否出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況,如果出現(xiàn),則說明Cache當(dāng)前采用的數(shù)據(jù)替換周期不能適應(yīng)本次的數(shù)據(jù)突發(fā)流量,需要調(diào)整數(shù)據(jù)替換周期,使之與本次數(shù)據(jù)突發(fā)流量相適應(yīng)。本發(fā)明實施例通過確定合適的數(shù)據(jù)替換周期的方式,延緩Cache內(nèi)已保存的數(shù)據(jù)被替換的時間,推遲了計算機發(fā)生性能跳水的時間,縮短了性能跳水持續(xù)的時長,并且還降低了性能跳水的程度。
      【專利附圖】

      【附圖說明】
      [0014]為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
      [0015]圖1是本發(fā)明實施例Cache的數(shù)據(jù)替換方法的流程圖;
      [0016]圖2-a為輸入Cache的數(shù)據(jù)出現(xiàn)突發(fā)流量過大情況的示意圖;
      [0017]圖2_b為讀寫分配請求次數(shù)為I時性能跳水情況的曲線示意圖;
      [0018]圖2-c為讀寫分配請求次數(shù)為無窮大時性能跳水情況的曲線示意圖;
      [0019]圖2-d為讀寫分配請求次數(shù)為合適值時性能跳水情況的曲線示意圖;
      [0020]圖3是本發(fā)明實施例Cache的數(shù)據(jù)替換裝置的結(jié)構(gòu)示意圖;
      [0021]圖4是本發(fā)明實施例中工作狀態(tài)獲取單元的第一種實現(xiàn)方式的結(jié)構(gòu)示意圖;
      [0022]圖5是本發(fā)明實施例中工作狀態(tài)獲取單元的第二種實現(xiàn)方式的結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0023]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實施方式對本發(fā)明實施例作進一步的詳細(xì)說明。
      [0024]本發(fā)明實施例一種Cache的數(shù)據(jù)替換方法及裝置,首先利用Cache的工作狀態(tài)判斷當(dāng)前是否出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況;其次在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,確定與該數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,使Cache按照確定的數(shù)據(jù)替換周期替換Cache內(nèi)已保存的數(shù)據(jù),以此實現(xiàn)降低現(xiàn)有技術(shù)中計算機性能跳水程度的目的。
      [0025]如圖1所示,是本發(fā)明實施例Cache的數(shù)據(jù)替換方法的流程圖,包括:
      [0026]步驟101,獲取Cache的工作狀態(tài),判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況。
      [0027]在本發(fā)明實施例中,所述數(shù)據(jù)突發(fā)流量過大是指CPU未處理的數(shù)據(jù)量超過預(yù)定的閾值。
      [0028]現(xiàn)有的計算機體系結(jié)構(gòu)中,可以通過GMAC(Gigabit Media Access Control,千兆比特以太網(wǎng)絡(luò)媒體存取控制器)將數(shù)據(jù)存放到Cache中,以使CPU直接對Cache中保存的數(shù)據(jù)進行讀寫操作,完成數(shù)據(jù)的解析和處理,以此實現(xiàn)提升計算機系統(tǒng)性能的目的。
      [0029]本發(fā)明實施例為了避免在數(shù)據(jù)突發(fā)流量過大時,因為替換掉Cache中已保存但并未被CPU調(diào)用處理的數(shù)據(jù),導(dǎo)致后續(xù)CPU在需要處理該部分被替換掉的未處理數(shù)據(jù)時,要去存取速度較慢的下級Cache甚至DDR中讀取引起計算機性能跳水問題。首先要判斷當(dāng)前時刻是否出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況,如果出現(xiàn),則按照本發(fā)明實施例的方案來降低計算機性能跳水的程度,即突發(fā)流量過大是觸發(fā)本發(fā)明實施例替換方法的條件;如果未出現(xiàn),則在需要替換Cache內(nèi)保存的數(shù)據(jù)時即時采用現(xiàn)有的Cache替換算法選擇被替換對象完成替換操作動作?,F(xiàn)有的Cache替換算法可包括偽隨機替換算法、最近最少使用算法、偽最近最少使用算法等。
      [0030]本步驟即是獲取Cache工作狀態(tài),實時判斷是否發(fā)生數(shù)據(jù)突發(fā)流量過大情況的過程,本步驟就為后續(xù)確定與數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期提供了一定的技術(shù)基礎(chǔ)。
      [0031]對本步驟中獲取Cache的工作狀態(tài)以及判斷發(fā)生數(shù)據(jù)突發(fā)流量過大情況的具體方式此處暫不詳述。
      [0032]步驟102,如果出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況,則確定與數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,以使所述Cache按照所述數(shù)據(jù)替換周期將已保存在所述Cache中的數(shù)據(jù)替換為輸入的數(shù)據(jù)。
      [0033]現(xiàn)有技術(shù)中,不論GMAC是正常的向Cache存入數(shù)據(jù)(此處的正常向Cache存入數(shù)據(jù)包括:未出現(xiàn)突發(fā)流量的情況、出現(xiàn)突發(fā)流量但CPU未處理的數(shù)據(jù)量未超過預(yù)定閾值的情況)還是在突發(fā)流量過大情況時向Cache存入數(shù)據(jù),Cache都以相同方式應(yīng)對,即在需要替換數(shù)據(jù)時立即在已保存的數(shù)據(jù)中選擇被替換對象,并將被替換對象替換到下級Cache或者DDR中,這就可能會將未被CPU處理的數(shù)據(jù)也替換出本級Cache,導(dǎo)致Cache出現(xiàn)連續(xù)的數(shù)據(jù)缺失,進而引發(fā)計算機性能跳水。
      [0034]與現(xiàn)有技術(shù)相比,本發(fā)明實施例首先判斷當(dāng)前是否出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況,針對正常向Cache存入數(shù)據(jù)和在突發(fā)流量過大情況時向Cache存入數(shù)據(jù)兩種情況進行區(qū)別處理。如果是正常向Cache存入數(shù)據(jù),則在需要替換數(shù)據(jù)時即時進行替換;如果是突發(fā)情況時存入數(shù)據(jù),則確定一個與本次突發(fā)情況相適應(yīng)的數(shù)據(jù)替換周期,按照確定的數(shù)據(jù)替換周期在已保存的數(shù)據(jù)中選擇被替換對象,進行數(shù)據(jù)替換,這樣就能適當(dāng)?shù)难泳廋ache內(nèi)已保存數(shù)據(jù)被替換的時間,為CPU處理這部分?jǐn)?shù)據(jù)預(yù)留出一定的時間,使CPU在這段時間內(nèi)盡量多的處理這部分?jǐn)?shù)據(jù),以減少被替換出本級Cache的數(shù)據(jù)中未處理數(shù)據(jù)的數(shù)量。而盡量減少被替換出本級Cache的未處理數(shù)據(jù)的數(shù)量,就能降低CPU去下級Cache或者DDR中讀取數(shù)據(jù)的可能性,避免出現(xiàn)連續(xù)的數(shù)據(jù)缺失,保證了本級Cache的數(shù)據(jù)命中率,因此也就降低了計算機性能跳水的程度。
      [0035]需要說明的是,本發(fā)明實施例亦可利用偽隨機替換算法、最近最少使用算法、偽最近最少使用算法等現(xiàn)有的Cache替換算法來選擇被替換對象。[0036]下面對步驟101中獲取Cache的工作狀態(tài)以及判斷發(fā)生數(shù)據(jù)突發(fā)流量過大情況的具體方式進行解釋說明。
      [0037]在GMAC正常的向Cache存入數(shù)據(jù)時,CPU有足夠的時間處理Cache內(nèi)已保存的數(shù)據(jù),不會出現(xiàn)數(shù)據(jù)還未被CPU處理就被替換出本級Cache的情況,因此,本發(fā)明實施例以Cache內(nèi)未處理數(shù)據(jù)的實際情況為依據(jù),當(dāng)有數(shù)據(jù)需要存入Cache時,按照以下兩種具體實現(xiàn)方式判斷是否出現(xiàn)突發(fā)流量過大:
      [0038]第一種方式是,直接利用Cache內(nèi)未處理的數(shù)據(jù)數(shù)量進行突發(fā)流量過大判斷。本方式中,獲取Cache的工作狀態(tài)即是獲取Cache內(nèi)已保存的數(shù)據(jù)中未處理的數(shù)據(jù)數(shù)量P的過程。相應(yīng)地,判斷是否出現(xiàn)突發(fā)流量過大情況即是判斷未處理的數(shù)據(jù)數(shù)量P是否大于預(yù)設(shè)數(shù)值,如果大于,則判定出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況;否則,判定未出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況,CPU可以正常的處理這部分未處理數(shù)據(jù),不會出現(xiàn)性能跳水。
      [0039]以8個Way的Cache (即對Cache分組后,每組包含8個行)為例,如果預(yù)設(shè)數(shù)值為3,則在發(fā)現(xiàn)Cache內(nèi)有2個Way填充著未讀過的數(shù)據(jù)時(即P = 2),就判定未出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況,在發(fā)現(xiàn)Cache內(nèi)有4個甚至8個Way填充著未讀過的數(shù)據(jù)時,就判定出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況。
      [0040]第二種方式是,利用向Cache輸入數(shù)據(jù)的速度以及CPU的處理速度間接進行突發(fā)流量過大判斷。本方式中,獲取Cache的工作狀態(tài)即是獲取單位時間內(nèi)輸入Cache的數(shù)據(jù)數(shù)量N以及單位時間內(nèi)CPU處理的數(shù)據(jù)數(shù)量M的過程。相應(yīng)地,判斷是否出現(xiàn)突發(fā)流量過大情況即是判斷所述N是否大于所述M,如果大于,則說明CPU的處理速度比數(shù)據(jù)輸入Cache的速度要慢,這樣Cache內(nèi)未處理的數(shù)據(jù)很可能就會被新輸入的數(shù)據(jù)替換出本級Cache,因此判定出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況;如果N不大于M,則判定未出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況。
      [0041]例如,如果單位時間內(nèi)向Cache輸入的數(shù)據(jù)數(shù)量N = 10,而單位時間內(nèi)CPU處理的數(shù)據(jù)數(shù)量M = 4,則判定出現(xiàn)了 數(shù)據(jù)突發(fā)流量過大情況。
      [0042]綜上所述,本發(fā)明實施例從兩個角度出發(fā)來定義數(shù)據(jù)突發(fā)流量過大的含義,一個角度是Cache內(nèi)CPU未處理的總的數(shù)據(jù)數(shù)量,這是一種最直觀的反映突發(fā)流量過大的方式;另一個角度是單位時間內(nèi)進出Cache的動態(tài)數(shù)據(jù)數(shù)量,這是一種最準(zhǔn)確的反映突發(fā)流量過大的方式。
      [0043]針對上述兩種實現(xiàn)步驟101獲取Cache工作狀態(tài)以及判斷發(fā)生數(shù)據(jù)突發(fā)流量過大情況目的的具體方式,步驟102也分別對應(yīng)有不同的設(shè)置所述數(shù)據(jù)替換周期的方式,具體為:
      [0044](I)如果步驟101中通過獲取Cache內(nèi)已保存的數(shù)據(jù)中未處理的數(shù)據(jù)數(shù)量P,并以判斷P大于預(yù)設(shè)數(shù)值的方式確定當(dāng)前出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況,則利用該獲取到的P值設(shè)置與本次數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期。具體公式為:
      [0045]數(shù)據(jù)替換周期T = K1^P,其中,K1為正整數(shù)。也就是說數(shù)據(jù)替換周期T與P成正比關(guān)系,未處理的數(shù)據(jù)數(shù)量P越大,則數(shù)據(jù)替換周期T就越長;反之?dāng)?shù)據(jù)替換周期T就越短。
      [0046]仍以8個Way的Cache為例,如果Cache內(nèi)部有4個Way填充著未讀過的數(shù)據(jù),貝丨J可將數(shù)據(jù)替換周期設(shè)置為T = 3ns,也就是說,對于新進入Cache的數(shù)據(jù)采用每3ns的間隔替換一次已在Way的數(shù)據(jù)。如果Cache內(nèi)部有8個Way填充著未讀過的數(shù)據(jù),則可將數(shù)據(jù)替換周期設(shè)置為T = 6ns,也就是說,對于新進入Cache的數(shù)據(jù)采用每6ns的間隔替換一次已在Way的數(shù)據(jù)。
      [0047](2)如果步驟101中通過獲取單位時間內(nèi)輸入Cache的數(shù)據(jù)數(shù)量N以及CPU處理的數(shù)據(jù)數(shù)量M,并以判斷N大于M的方式確定當(dāng)前出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況,則利用N與M的比值設(shè)置與本次數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期。具體公式為:
      [0048]數(shù)據(jù)替換周期T = K2*N/M,其中,K2為正整數(shù)。也就是說數(shù)據(jù)替換周期T與N成正比關(guān)系,與M成反比關(guān)系,N/M的比值反映了本次數(shù)據(jù)突發(fā)流量對Cache的沖擊強度,t匕值越大,說明沖擊強度越大,則需要設(shè)置的數(shù)據(jù)替換周期T就越長。具體可體現(xiàn)為:在M值相同的情況下,如果單位時間內(nèi)輸入到Cache的數(shù)據(jù)數(shù)量N值越大,則數(shù)據(jù)替換周期T就越長;而在N值相同的情況下,如果單位時間內(nèi)CPU處理的數(shù)據(jù)數(shù)量M越大,則數(shù)據(jù)替換周期T就越短。
      [0049]例如,在N/M = 2?4時,可將數(shù)據(jù)替換周期設(shè)置為T = 6ns,也就是說按照每6ns的間隔替換一次Cache內(nèi)的數(shù)據(jù)。在N/M = 4?8時,可將數(shù)據(jù)替換周期設(shè)置為T = 8ns,也就是說按照每8ns的間隔替換一次Cache內(nèi)的數(shù)據(jù)。
      [0050]需要說明的是,對于本發(fā)明實施例中的數(shù)據(jù)替換周期T來說,可以體現(xiàn)為以Cache的工作時鐘為基準(zhǔn)的固定替換時長,即數(shù)據(jù)替換周期T包含L個工作時鐘,每隔L個工作時鐘就對Cache內(nèi)的數(shù)據(jù)進行一次替換,因為Cache的工作時鐘是固定的,因此數(shù)據(jù)替換周期T也是固定時長的。另外,數(shù)據(jù)替換周期T也可以體現(xiàn)為以CPU的讀寫分配請求次數(shù)為基準(zhǔn)的不固定時長,即數(shù)據(jù)替換周期T包含I次讀寫分配請求,每隔I次讀寫分配請求就對Cache內(nèi)的數(shù)據(jù)進行一次替換,因為每兩次讀寫分配請求的間隔可能不相同,這就導(dǎo)致數(shù)據(jù)替換周期T也不是固定時長。雖然采用不固定時長的方式替換數(shù)據(jù)可能使得每次替換數(shù)據(jù)的間隔都不相同,但是這種方式是針對CPU的實際讀寫操作處理動作進行的,因此對Cache內(nèi)數(shù)據(jù)替換的準(zhǔn)確性以及針對性都更強。
      [0051]上述介紹數(shù)據(jù)替換周期設(shè)置方式所舉示例中,均是以Cache的工作時鐘為基準(zhǔn)的固定替換時長。例如,如果Cache的工作時鐘為1ns,則對于Cache內(nèi)部有4個Way填充著未讀過的數(shù)據(jù),數(shù)據(jù)替換周期設(shè)置為T = 3ns的示例而言,每個數(shù)據(jù)替換周期T內(nèi)包含3個工作時鐘,也就是說Cache每隔3個工作時鐘就進行一次數(shù)據(jù)替換。對于N/M = 2?4,數(shù)據(jù)替換周期設(shè)置為T = 6ns的示例而言,說明每個數(shù)據(jù)替換周期T內(nèi)包含6個工作時鐘,也就是說Cache每隔6個工作時鐘就進行一次數(shù)據(jù)替換。
      [0052]另外,需要說明的是,本發(fā)明實施例的數(shù)據(jù)替換周期是一個動態(tài)的周期,不同的數(shù)據(jù)突發(fā)流量過大情況對應(yīng)不同的周期,每個數(shù)據(jù)替換周期僅限于與其對應(yīng)的數(shù)據(jù)突發(fā)情況。例如,某次數(shù)據(jù)突發(fā)情況對應(yīng)的數(shù)據(jù)替換周期為T1 = 3個工作時鐘,則在本次突發(fā)情況的數(shù)據(jù)都處理完畢之后,如果數(shù)據(jù)是正常的存入Cache,則數(shù)據(jù)替換周期T2 = I個工作時鐘,如果又出現(xiàn)另一次數(shù)據(jù)突發(fā)流量過大情況,則再為該突發(fā)情況設(shè)置替換周期,例如T3 =5個工作時鐘。
      [0053]下面以數(shù)據(jù)替換周期T包含不同讀寫分配請求次數(shù)為例,對計算機性能跳水程度、性能跳水起止時刻以及持續(xù)時長進行簡單介紹。
      [0054]參見圖2-a,表示GMAC在trt2時間段內(nèi)向Cache輸入的數(shù)據(jù)出現(xiàn)了突發(fā)流量過大情況,圖2-b、2-c以及2-d分別示出了在出現(xiàn)圖2-a所示的突發(fā)流量過大情況時,讀寫分配請求次數(shù)I取不同數(shù)值時相對應(yīng)地計算機的性能跳水程度、性能跳水起止時刻以及性能跳水持續(xù)時長。
      [0055](I)如圖2-b所示,為讀寫分配請求次數(shù)I1 = I時性能跳水情況的示意圖。表示每次讀寫分配請求都進行一次數(shù)據(jù)替換,這就是現(xiàn)有技術(shù)中在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時進行數(shù)據(jù)替換的方法,性能跳水程度為Cl1,持續(xù)時長為t3-t4。
      [0056](2)如圖2-c所示,為讀寫分配請求次數(shù)I2 =無窮大時性能跳水情況的示意圖。表示不替換Cache內(nèi)已保存的數(shù)據(jù),而是將GMAC輸入的數(shù)據(jù)全部存入下級Cache或者DDR。從圖中可以看出,性能跳水程度并未降低仍為Cl1,但是發(fā)生性能跳水的時間從t3時刻推遲到了 t5時刻,而對于性能跳水結(jié)束的時刻t6來說,t6可能與t4相同,也可能滯后于t4,也就是說,I2 =無窮大情況性能跳水持續(xù)的時長不小于I1 = I情況性能跳水持續(xù)的時長,具體原因如下:
      [0057]因為I2 =無窮大情況會將外部輸入的數(shù)據(jù)全部存入下級Cache或者DDR,此時計算機性能跳水持續(xù)的時長即是CPU處理下級Cache或者DDR中保存的全部輸入數(shù)據(jù)所需的時間。而對于I1 = I的情況來說,可能存在將外部輸入數(shù)據(jù)替換至Cache時,Cache選擇出的被替換對象為CPU已處理過的數(shù)據(jù),那么此時存入下級Cache或者DDR的未處理數(shù)據(jù)的數(shù)量就少于外部輸入的數(shù)據(jù)數(shù)量,因此相對于I2 =無窮大情況來說,I1 = I情況性能跳水現(xiàn)象就會提前結(jié)束,性能跳水持續(xù)的時長也略短一些。當(dāng)然,也可能存在一種極致的情況,就是Cache每次選擇的被替換對象都是CPU未處理過的數(shù)據(jù),那么不論是I1 = I情況還是I2 =無窮大情況,CPU需要處理的數(shù)據(jù)數(shù)量相同,相應(yīng)地性能跳水持續(xù)的時長也相同。
      [0058](3)如圖2-d所示,為讀寫分配請求次數(shù)I3 =合適值時性能跳水情況的示意圖,例如,I3 = 3表示每3次讀寫分配請求才進行一次數(shù)據(jù)替換。從圖中可以看出,在I3=合適值時性能跳水程度明顯有所降低為d2,另外,發(fā)生性能跳水的時間也有所推遲,從t3時刻推遲到了 t7時刻(需要說明的是t7 ( t5,因為I2 =無窮大的情況不替換Cache內(nèi)已保存的數(shù)據(jù),性能跳水是在CPU處理完Cache內(nèi)已保存的數(shù)據(jù)之后發(fā)生的,而I3 =合適值的情況是要根據(jù)數(shù)據(jù)替換周期替換Cache內(nèi)已保存的數(shù)據(jù),因此就會有部分?jǐn)?shù)據(jù)被替換出本級Cache,致使CPU在處理這部分被替換出的數(shù)據(jù)時,需要去下級Cache或者DDR中讀取,導(dǎo)致性能跳水提前發(fā)生),而性能跳水結(jié)束的時刻t8要小于t4,也就是說I3 =合適值情況性能跳水持續(xù)的時長要小于I1 = I情況性能跳水持續(xù)的時長,具體原因如下:
      [0059]I1 = I說明在每次讀寫分配請求時Cache都要進行一次數(shù)據(jù)替換,因為CPU處理數(shù)據(jù)的速度小于數(shù)據(jù)進入Cache的速度,因此在選擇被替換對象時,必然會出現(xiàn)將大量的未處理數(shù)據(jù)作為被替換對象替換出本級Cache的情況,而I3 =合適值情況會給CPU預(yù)留出一定的時間來處理Cache內(nèi)已保存但未處理的數(shù)據(jù),因此這就大大降低了未處理數(shù)據(jù)作為被替換對象的可能性,相對于I1 = I情況而言,I3 =合適值情況中CPU需要去下級Cache或者DDR中讀取并處理的數(shù)據(jù)數(shù)量要少一些,因此,性能跳水持續(xù)的時長也就略短一些。
      [0060]通過圖2-b、2_c以及2-d可知,本發(fā)明實施例設(shè)置與數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,就能降低計算機性能跳水的程度,同時還能延緩發(fā)生性能跳水的時間以及縮短性能跳水持續(xù)的時長。
      [0061]需要說明的是,本發(fā)明實施例中所述的數(shù)據(jù)可為程序數(shù)據(jù)或者報文數(shù)據(jù)。而一般情況下程序數(shù)據(jù)出現(xiàn)突發(fā)流量過大的情況較少,所以本發(fā)明實施例主要針對報文數(shù)據(jù)設(shè)計。在利用本發(fā)明實施例的方法調(diào)整數(shù)據(jù)替換周期之前,可以先判斷一下輸入Cache的數(shù)據(jù)類型,如果是程序數(shù)據(jù),則按照現(xiàn)有技術(shù)在需要替換時即時替換Cache內(nèi)已保存的數(shù)據(jù)(被替換的數(shù)據(jù)可為程序數(shù)據(jù),也可為報文數(shù)據(jù));如果是報文數(shù)據(jù),則利用本發(fā)明實施例提供的方法設(shè)置與突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,按照設(shè)置的數(shù)據(jù)替換周期替換Cache內(nèi)已保存的數(shù)據(jù)。當(dāng)然,對程序報文也采用本發(fā)明實施例的方法設(shè)置數(shù)據(jù)替換周期對提高計算機性能來說更好 。
      [0062]相應(yīng)地,本發(fā)明實施例還提供一種Cache的數(shù)據(jù)替換裝置,如圖3所示,是該裝置的一種結(jié)構(gòu)示意圖。
      [0063]在該實施例中,所述裝置包括:
      [0064]工作狀態(tài)獲取單元301,用于獲取Cache的工作狀態(tài),判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況;
      [0065]數(shù)據(jù)替換周期確定單元302,用于在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,確定與所述數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,以使所述Cache按照所述數(shù)據(jù)替換周期將已保存在所述Cache中的數(shù)據(jù)替換為輸入的數(shù)據(jù)。
      [0066]本發(fā)明實施例首先利用Cache的工作狀態(tài)判斷當(dāng)前是否出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況,以實現(xiàn)對正常向Cache存入數(shù)據(jù)和在突發(fā)流量過大情況時向Cache存入數(shù)據(jù)兩種情況進行區(qū)別處理。其次,在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,確定一個與本次數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,使Cache按照確定的數(shù)據(jù)替換周期替換Cache內(nèi)已保存的數(shù)據(jù),延緩Cache內(nèi)已保存數(shù)據(jù)被替換的時間,推遲了發(fā)生性能跳水的時間,縮短了性能跳水持續(xù)的時長,并且降低了性能跳水的程度。
      [0067]如圖4所示,為工作狀態(tài)獲取單元的第一種實現(xiàn)方式的結(jié)構(gòu)示意圖,包括:
      [0068]第一獲取子單元401,用于獲取所述Cache已保存的數(shù)據(jù)中未處理的數(shù)據(jù)數(shù)量P ;
      [0069]第一判斷子單元402,用于判斷所述P是否大于預(yù)設(shè)數(shù)值,如果大于,則判定出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況。
      [0070]在工作狀態(tài)獲取單元以未處理的數(shù)據(jù)數(shù)量P大于預(yù)設(shè)數(shù)值的方式判斷出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,相應(yīng)地,所述數(shù)據(jù)替換周期確定單元則利用所述P設(shè)置所述數(shù)據(jù)替換周期,具體公式為:數(shù)據(jù)替換周期T = Κ^Ρ,其中,K1為正整數(shù)。
      [0071]以8個Way的Cache為例,如果預(yù)設(shè)數(shù)值為3,則在發(fā)現(xiàn)Cache內(nèi)有4個Way填充著未讀過的數(shù)據(jù)時(即P = 4),就判定出現(xiàn)了數(shù)據(jù)突發(fā)流量過大情況,此時可將數(shù)據(jù)替換周期設(shè)置為T = 3ns,以使Cache按照該設(shè)置的周期每3ns的間隔進行一次數(shù)據(jù)替換。
      [0072]需要說明的是,數(shù)據(jù)替換周期的大小是由Cache內(nèi)未處理數(shù)據(jù)的數(shù)量P決定的,未處理的數(shù)據(jù)數(shù)量P越大,則數(shù)據(jù)替換周期T就越長;反之?dāng)?shù)據(jù)替換周期T就越短。
      [0073]如圖5所示,為工作狀態(tài)獲取單元的第二種實現(xiàn)方式的結(jié)構(gòu)示意圖,包括:
      [0074]第二獲取子單元501,用于獲取單位時間內(nèi)輸入Cache的數(shù)據(jù)數(shù)量N以及單位時間內(nèi)CPU處理的數(shù)據(jù)數(shù)量M ;
      [0075]第二判斷子單元502,用于判斷所述N是否大于所述M,如果大于,則判定出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況。
      [0076]在工作狀態(tài)獲取單元以單位時間內(nèi)輸入Cache的數(shù)據(jù)數(shù)量N大于CPU處理的數(shù)據(jù)數(shù)量M的方式判斷出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,相應(yīng)地,所述數(shù)據(jù)替換周期確定單元則利用所述N與M的比值設(shè)置所述數(shù)據(jù)替換周期,具體公式為:數(shù)據(jù)替換周期T = K2*N/M,其中,K2為正整數(shù)。
      [0077]需要說明的是,數(shù)據(jù)替換周期T與N成正比關(guān)系,與M成反比關(guān)系,與A/B成正比。N/M的比值反映了本次數(shù)據(jù)突發(fā)流量對Cache的沖擊強度,比值越大,說明沖擊強度越大,則需要設(shè)置的數(shù)據(jù)替換周期T就越長。具體可體現(xiàn)為:在M值相同的情況下,如果單位時間內(nèi)輸入到Cache的數(shù)據(jù)數(shù)量N值越大,則數(shù)據(jù)替換周期T就越長;而在N值相同的情況下,如果單位時間內(nèi)CPU處理的數(shù)據(jù)數(shù)量M越大,則數(shù)據(jù)替換周期T就越短。
      [0078]例如,在N/M = 2?4時,可將數(shù)據(jù)替換周期設(shè)置為T = 6ns,也就是說按照每6ns的間隔替換一次Cache內(nèi)的數(shù)據(jù)。在N/M = 4?8時,可將數(shù)據(jù)替換周期設(shè)置為T = 8ns,也就是說按照每8ns的間隔替換一次Cache內(nèi)的數(shù)據(jù)。
      [0079]數(shù)據(jù)替換周期可體現(xiàn)為以Cache的工作時鐘為基準(zhǔn)的固定替換時長,或者,也可體現(xiàn)為以CPU的讀寫分配請求次數(shù)為基準(zhǔn)的不固定時長。對于不固定時長的方式而言,雖然每次替換數(shù)據(jù)的間隔都不相同,但是這種方式是針對CPU的實際讀寫操作處理動作進行的,因此對Cache內(nèi)數(shù)據(jù)替換的準(zhǔn)確性以及針對性都更強。
      [0080]為了方便理解,在上述介紹數(shù)據(jù)替換周期確定單元時所列舉的示例,均是針對Cache工作時鐘為Ins的固定替換時長進行的舉例說明。對于數(shù)據(jù)替換周期T = 3ns的情況,Cache每隔3個工作時鐘進行一次數(shù)據(jù)替換;對于數(shù)據(jù)替換周期T = 6ns的情況,Cache每隔6個工作時鐘進行一次數(shù)據(jù)替換,相對于T = 3ns的情況來說,T = 6ns的情況為CPU預(yù)留的時間要長一些。
      [0081]利用本發(fā)明實施例Cache的數(shù)據(jù)替換裝置提供的技術(shù)方案,根據(jù)數(shù)據(jù)突發(fā)流量的實際情況設(shè)置與之相互適應(yīng)的數(shù)據(jù)替換周期,就能適當(dāng)?shù)难泳廋ache內(nèi)已保存數(shù)據(jù)被替換的時間,為CPU處理這部分?jǐn)?shù)據(jù)預(yù)留出一定的時間,使CPU在這段時間內(nèi)盡量多的處理這部分?jǐn)?shù)據(jù),以減少被替換出本級Cache的數(shù)據(jù)中未處理數(shù)據(jù)的數(shù)量。而盡量減少被替換出本級Cache的未處理數(shù)據(jù)的數(shù)量,就能降低CPU去下級Cache或者DDR中讀取數(shù)據(jù)的可能性,避免出現(xiàn)連續(xù)的數(shù)據(jù)缺失,保證了本級Cache的數(shù)據(jù)命中率,因此也就降低了計算機性能跳水的程度,同時還可實現(xiàn)推遲性能跳水的發(fā)生時間,縮短性能跳水持續(xù)的時長等有益效果O
      [0082]本發(fā)明方案可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序單元。一般地,程序單元包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本發(fā)明方案,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序單元可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計算機存儲介質(zhì)中。
      [0083]本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
      [0084]以上對本發(fā)明實施例進行了詳細(xì)介紹,本文中應(yīng)用了【具體實施方式】對本發(fā)明進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及設(shè)備;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
      【權(quán)利要求】
      1.一種Cache的數(shù)據(jù)替換方法,其特征在于,所述方法包括: 獲取Cache的工作狀態(tài),判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況;如果出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況,則確定與數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,以使所述Cache按照所述數(shù)據(jù)替換周期將已保存在所述Cache中的數(shù)據(jù)替換為輸入的數(shù)據(jù)。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取Cache的工作狀態(tài)包括: 獲取所述Cache已保存的數(shù)據(jù)中未處理的數(shù)據(jù)數(shù)量P ; 所述判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況包括: 判斷所述P是否大于預(yù)設(shè)數(shù)值,如果大于,則判定出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況, 所述確定與所述數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期包括: 利用所述P設(shè)置所述數(shù)據(jù)替換周期。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述利用所述P設(shè)置所述數(shù)據(jù)替換周期包括: 所述數(shù)據(jù)替換周期T = K3P,其中,K1為正整數(shù)。
      4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取Cache的工作狀態(tài)包括: 獲取單位時間內(nèi)輸入Cache的數(shù)據(jù)數(shù)量N以及單位時間內(nèi)CPU處理的數(shù)據(jù)數(shù)量M ; 所述判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況包括: 判斷所述N是否大于所述M,如果大于,則判定出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況; 所述確定與所述數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期包括: 利用所述N與M的比值設(shè)置所述數(shù)據(jù)替換周期。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述利用所述N與M的比值設(shè)置所述數(shù)據(jù)替換周期包括: 所述數(shù)據(jù)替換周期T = K2*N/M,其中,K2為正整數(shù)。
      6.根據(jù)權(quán)利要求1至5任一項所述的方法,其特征在于, 所述數(shù)據(jù)替換周期為以Cache的工作時鐘為基準(zhǔn)的固定替換時長;或者, 所述數(shù)據(jù)替換周期為以CPU的讀寫分配請求次數(shù)為基準(zhǔn)的不固定替換時長。
      7.根據(jù)權(quán)利要求1至5任一項所述的方法,其特征在于,所述數(shù)據(jù)為程序數(shù)據(jù)或者報文數(shù)據(jù)。
      8.—種Cache的數(shù)據(jù)替換裝置,其特征在于,所述裝置包括: 工作狀態(tài)獲取單元,用于獲取Cache的工作狀態(tài),判斷輸入所述Cache的數(shù)據(jù)是否出現(xiàn)突發(fā)流量過大情況; 數(shù)據(jù)替換周期確定單元,用于在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,確定與數(shù)據(jù)突發(fā)流量相適應(yīng)的數(shù)據(jù)替換周期,以使所述Cache按照所述數(shù)據(jù)替換周期將已保存在所述Cache中的數(shù)據(jù)替換為輸入的數(shù)據(jù)。
      9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述工作狀態(tài)獲取單元包括: 第一獲取子單元,用于獲取所述Cache已保存的數(shù)據(jù)中未處理的數(shù)據(jù)數(shù)量P ; 第一判斷子單元,用于判斷所述P是否大于預(yù)設(shè)數(shù)值,如果大于,則判定出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況; 所述數(shù)據(jù)替換周期確定單元,具體用于在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,利用所述P設(shè)置所述數(shù)據(jù)替換周期。
      10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)替換周期確定單元具體按照以下公式設(shè)置所述數(shù)據(jù)替換周期: 所述數(shù)據(jù)替換周期T = K3P,其中,K1為正整數(shù)。
      11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述工作狀態(tài)獲取單元包括: 第二獲取子單元,用于獲取單位時間內(nèi)輸入Cache的數(shù)據(jù)數(shù)量N以及單位時間內(nèi)CPU處理的數(shù)據(jù)數(shù)量M ; 第二判斷子單元,用于判斷所述N是否大于所述M,如果大于,則判定出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況; 所述數(shù)據(jù)替換周期確定單元,具體用于在出現(xiàn)數(shù)據(jù)突發(fā)流量過大情況時,利用所述N與M的比值設(shè)置所述數(shù)據(jù)替換周期。
      12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述數(shù)據(jù)替換周期確定單元具體按照以下公式設(shè)置所述數(shù)據(jù)替換周期: 所述數(shù)據(jù)替換周期T =` K2*N/M,其中,K2為正整數(shù)。
      【文檔編號】G06F12/12GK103514111SQ201210207136
      【公開日】2014年1月15日 申請日期:2012年6月21日 優(yōu)先權(quán)日:2012年6月21日
      【發(fā)明者】陳立仁 申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1