數(shù)據(jù)緩存處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明實(shí)施例涉及計(jì)算機(jī)科學(xué)技術(shù),尤其涉及一種數(shù)據(jù)緩存處理方法及裝置。
【背景技術(shù)】
[0002]在計(jì)算機(jī)技術(shù)發(fā)展過程中,高速緩沖存儲(chǔ)器(英文:Cache)的容量一般只有主存儲(chǔ)器的幾百分之一,但它的存取速度能與CPU相匹配。因此在存儲(chǔ)層次上采用Cache解決了主存儲(chǔ)器存取速度比中央處理器CPU操作速度慢的問題。一個(gè)Cache由多個(gè)高速緩沖存儲(chǔ)器線(英文:Cache line)構(gòu)成,通常每個(gè)cache line的大小在32字節(jié)至128字節(jié)之間。當(dāng)CHJ訪問內(nèi)存的一個(gè)或多個(gè)字節(jié)的時(shí)候,會(huì)從內(nèi)存中提取一個(gè)與cache line相同大小的內(nèi)存塊到Cache中的一個(gè)Cache line,從而使CPU對(duì)該Cache line對(duì)應(yīng)的所有的內(nèi)存地址的訪問都可以從Cache取回結(jié)果,不需要再訪問內(nèi)存,稱之為命中(英文:cache hit)。如果(PU要訪問的內(nèi)存地址并沒有在Cache line中,CPU仍然需要訪問內(nèi)存獲取數(shù)據(jù),稱為未命中(英文:cache miss)。較低的未命中率可以大幅度提高計(jì)算機(jī)的性能。
[0003]在現(xiàn)代計(jì)算機(jī)系統(tǒng)中為了降低cache miss率,通常使用多級(jí)cache的策略。但由于只要有訪問該cache line的請(qǐng)求,該cache line最終都要進(jìn)入一級(jí)高速緩沖存儲(chǔ)器,增大了一級(jí)緩存的未命中率,使得整個(gè)計(jì)算機(jī)的性能下降,產(chǎn)生額外的開銷。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種數(shù)據(jù)緩存處理方法及裝置,以克服現(xiàn)有技術(shù)中一級(jí)緩存的未命中率高的技術(shù)問題。
[0005]本發(fā)明實(shí)施例第一方面提供一種數(shù)據(jù)緩存處理方法,包括:接收內(nèi)存發(fā)送的訪問響應(yīng)消息,所述訪問響應(yīng)消息包括被訪問數(shù)據(jù)和緩存線地址,所述訪問響應(yīng)消息為所述內(nèi)存在各級(jí)緩存均未命中后接收的訪問請(qǐng)求消息對(duì)應(yīng)的響應(yīng)消息;
[0006]確定所述緩存線地址的訪問頻率;
[0007]根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中。
[0008]第一方面的第一種可能實(shí)現(xiàn)方式中,所述確定所述緩存線地址的訪問頻率,包括:
[0009]判斷是否接收至少兩個(gè)包括所述緩存線地址的訪問響應(yīng)消息,若是,則確定所述緩存線地址為具有第一訪問頻率的緩存線地址,若否,則確定所述緩存線地址為具有第二訪問頻率的緩存線地址;
[0010]所述根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中,包括:
[0011]將具有所述第一訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至一級(jí)緩存中;
[0012]將具有所述第二訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至最后一級(jí)緩存中。
[0013]結(jié)合第一方面可能實(shí)現(xiàn)方式,在第一方面第二種可能實(shí)現(xiàn)方式中,所述確定所述緩存線地址的訪問頻率,包括:
[0014]判斷所述緩存線地址對(duì)應(yīng)的尋址方式是否為寄存器尋址,若是,則確定所述緩存線地址為具有第一訪問頻率的緩存線地址,若否,則確定所述緩存線地址為具有第二訪問頻率的緩存線地址;
[0015]所述根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中,包括:
[0016]將具有所述第一訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至一級(jí)緩存中;
[0017]將具有所述第二訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至最后一級(jí)緩存中。
[0018]本發(fā)明實(shí)施例第二方面提供一種數(shù)據(jù)緩存處理方法,包括:
[0019]接收最后一級(jí)緩存發(fā)送的訪問響應(yīng)消息,所述訪問響應(yīng)消息包括被訪問數(shù)據(jù)和緩存線地址,所述訪問響應(yīng)消息為最后一級(jí)緩存命中后與訪問請(qǐng)求消息對(duì)應(yīng)的響應(yīng)消息;
[0020]確定所述緩存線地址的訪問頻率;
[0021 ] 根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中。
[0022]第二方面第一種可能實(shí)現(xiàn)方式中,所述根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中之后,還包括:
[0023]若所述訪問響應(yīng)消息存儲(chǔ)至所述一級(jí)緩存中,則將所述訪問響應(yīng)消息所包括的緩存線地址在一級(jí)緩存中對(duì)應(yīng)的緩存線的計(jì)數(shù)器加I ;
[0024]若存儲(chǔ)在所述一級(jí)緩存中的所述訪問響應(yīng)消息被替換,且所述訪問響應(yīng)消息包括的緩存線地址在一級(jí)緩存中對(duì)應(yīng)的緩存線的計(jì)數(shù)器未飽和,則將所述緩存線地址在最后一級(jí)緩存中對(duì)應(yīng)的緩存線的計(jì)數(shù)器加I。
[0025]結(jié)合第二方面第一種可能實(shí)現(xiàn)方式,在第二方面第二種可能實(shí)現(xiàn)方式中,所述確定所述緩存線地址的訪問頻率,包括:
[0026]判斷所述緩存線地址在最后一級(jí)緩存中對(duì)應(yīng)的緩存線的計(jì)數(shù)器是否飽和,若是,則確定所述緩存線地址為具有第一訪問頻率的緩存線地址,若否,則確定所述緩存線地址為具有第二訪問頻率的緩存線地址;
[0027]所述根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中,包括:
[0028]將具有所述第一訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至所述一級(jí)緩存中;
[0029]將具有所述第二訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至CPU寄存器。
[0030]本發(fā)明第三方面提供一種判斷邏輯模塊,包括:
[0031 ] 接收單元,用于接收內(nèi)存發(fā)送的訪問響應(yīng)消息,所述訪問響應(yīng)消息包括被訪問數(shù)據(jù)和緩存線地址,所述訪問響應(yīng)消息為所述內(nèi)存在各級(jí)緩存均未命中后接收的訪問請(qǐng)求消息對(duì)應(yīng)的響應(yīng)消息;
[0032]確定單元,用于確定所述緩存線地址的訪問頻率;
[0033]存儲(chǔ)單元,用于根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中。
[0034]第三方面第一種可能實(shí)現(xiàn)方式中,所述確定單元,具體用于:
[0035]判斷是否接收至少兩個(gè)包括所述緩存線地址的訪問響應(yīng)消息,若是,則確定所述緩存線地址為具有第一訪問頻率的緩存線地址,若否,則確定所述緩存線地址為具有第二訪問頻率的緩存線地址;
[0036]所述存儲(chǔ)單元,具體用于:
[0037]將具有所述第一訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至一級(jí)緩存中;
[0038]將具有所述第二訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至最后一級(jí)緩存中。
[0039]結(jié)合第三方面可能實(shí)現(xiàn)方式,在第三方面第二種可能實(shí)現(xiàn)方式中,所述確定單元,具體用于:
[0040]判斷所述緩存線地址對(duì)應(yīng)的尋址方式是否為寄存器尋址,若是,則確定所述緩存線地址為具有第一訪問頻率的緩存線地址,若否,則確定所述緩存線地址為具有第二訪問頻率的緩存線地址;
[0041]所述存儲(chǔ)單元,具體用于:
[0042]將具有所述第一訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至一級(jí)緩存中;
[0043]將具有所述第二訪問頻率的緩存線地址的訪問響應(yīng)消息存儲(chǔ)至最后一級(jí)緩存中。
[0044]本發(fā)明第四方面提供一種判斷邏輯模塊,包括:
[0045]接收單元,用于接收最后一級(jí)緩存發(fā)送的訪問響應(yīng)消息,所述訪問響應(yīng)消息包括被訪問數(shù)據(jù)和緩存線地址,所述訪問響應(yīng)消息為最后一級(jí)緩存命中后與訪問請(qǐng)求消息對(duì)應(yīng)的響應(yīng)消息;
[0046]確定單元,用于確定所述緩存線地址的訪問頻率;
[0047]存儲(chǔ)單元,用于根據(jù)所述訪問頻率將所述訪問響應(yīng)消息存儲(chǔ)至對(duì)應(yīng)的緩存中。
[0048]第四方面第一種可能實(shí)現(xiàn)方式中,還包括:
[0049]計(jì)數(shù)單元