两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種高速緩存的數(shù)據(jù)寫入方法及裝置制造方法

文檔序號:6627357閱讀:436來源:國知局
一種高速緩存的數(shù)據(jù)寫入方法及裝置制造方法
【專利摘要】本發(fā)明實施例提供一種高速緩存的數(shù)據(jù)寫入方法及裝置,屬于數(shù)據(jù)存儲領(lǐng)域。本發(fā)明實施例提供的高速緩存的數(shù)據(jù)寫入方法包括執(zhí)行指令;當根據(jù)所述指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將所述可能被處理器再次讀取的數(shù)據(jù)寫入第一邏輯高速緩存中;當根據(jù)所述指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將所述可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。采用這種緩存方法,不會導(dǎo)致可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存容量,能夠保證可能被處理器再次讀取的數(shù)據(jù)在所有高速緩存容量中占有一定的容量比例。處理器從高速緩存中讀取數(shù)據(jù)的可能性較高,從主存儲器中讀取數(shù)據(jù)的可能性較低,而處理器從高速緩存中獲取數(shù)據(jù)的速度高于從主存儲器中獲取數(shù)據(jù)的速度,處理器能夠達到較高的獲取數(shù)據(jù)速度。
【專利說明】一種高速緩存的數(shù)據(jù)寫入方法及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,尤其涉及一種高速緩存的數(shù)據(jù)寫入方法及裝置。

【背景技術(shù)】
[0002]高速緩存是處理器與主存儲器之間的數(shù)據(jù)中轉(zhuǎn)介質(zhì),處理器從高速緩存中讀取數(shù)據(jù)的速度遠遠大于從主存儲器中讀取數(shù)據(jù)的速度。
[0003]如圖1所示,現(xiàn)有技術(shù)中一種高速緩存的數(shù)據(jù)寫入方法,應(yīng)用于具有唯一邏輯的高速緩存系統(tǒng)中,該高速緩存由多個物理高速緩存組成
該數(shù)據(jù)讀寫方法包括執(zhí)行指令,當高速緩存中查詢不到所需數(shù)據(jù)時,從主存儲器中讀取所需數(shù)據(jù)并將與所需數(shù)據(jù)相鄰的單元數(shù)據(jù)寫入高速緩存中。
[0004]數(shù)據(jù)被寫入唯一的邏輯高速緩存中,為處理器從高速緩存中讀取數(shù)據(jù)做準備。然而相鄰的單元數(shù)據(jù)被處理器再次讀取的可能性不盡相同,當可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)都被寫入唯一的邏輯高速緩存中,這兩種類型的數(shù)據(jù)占用高速緩存容量的比例變化很大,很容易出現(xiàn)所有高速緩存容量中可能被處理器單次讀取的數(shù)據(jù)容量大于可能被處理器再次讀取的數(shù)據(jù)容量,甚至出現(xiàn)可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存容量。此時,在執(zhí)行指令后,處理器從高速緩存中查詢不到所需數(shù)據(jù)而從主存儲器中讀取數(shù)據(jù)的可能性較高,從高速緩存中讀取數(shù)據(jù)的可能性較低,而處理器從主存儲器中獲取數(shù)據(jù)的速度低于從高速緩存中獲取數(shù)據(jù)的速度,這導(dǎo)致處理器獲取數(shù)據(jù)的速度較慢。


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

[0005]本發(fā)明的實施例提供一種高速緩存數(shù)據(jù)寫入方法及裝置,使得高速緩存協(xié)助處理器讀取可能被處理器單次讀取的數(shù)據(jù)時,仍能使處理器達到較高的獲取數(shù)據(jù)速度。
[0006]為了實現(xiàn)上述發(fā)明目的,本發(fā)明的實施例采用如下技術(shù)方案:
一方面,本發(fā)明的實施例提供一種高速緩存的數(shù)據(jù)寫入方法,包括執(zhí)行指令;
當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存中;
當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。
[0007]另一方面,本發(fā)明實施例提供一種高速緩存的數(shù)據(jù)寫入裝置,包括指令執(zhí)行單元,用于執(zhí)行指令;
數(shù)據(jù)識別單元,用于判斷需要緩存的數(shù)據(jù)的類型;
第一邏輯高速緩存,用于存儲可能被處理器再次讀取的數(shù)據(jù);
第二邏輯高速緩存,用于存儲可能被處理器單次讀取的數(shù)據(jù);
數(shù)據(jù)存儲單元,當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存中,當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。
[0008]現(xiàn)有技術(shù)中,寫入高速緩存中的數(shù)據(jù)被處理器再次讀取的可能性不盡相同,處理器下次讀取的數(shù)據(jù)大多屬于可能被處理器再次讀取的數(shù)據(jù),較少屬于可能被處理器再次讀取的數(shù)據(jù)。當可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)都被寫入唯一的邏輯高速緩存中,這兩種類型的數(shù)據(jù)占用高速緩存容量的比例變化很大,很容易出現(xiàn)所有高速緩存容量中可能被處理器單次讀取的數(shù)據(jù)容量大于可能被處理器再次讀取的數(shù)據(jù)容量,甚至出現(xiàn)可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存容量。處理器從主存儲器中讀取數(shù)據(jù)的可能性較高,從高速緩存中讀取數(shù)據(jù)的可能性較低,而處理器從主存儲器中獲取數(shù)據(jù)的速度低于從高速緩存中獲取數(shù)據(jù)的速度,這導(dǎo)致處理器獲取數(shù)據(jù)的速度較慢。
[0009]本發(fā)明實施例中,執(zhí)行指令,當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存中;當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。采用這種緩存方法,不會導(dǎo)致可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存容量,能夠保證可能被處理器再次讀取的數(shù)據(jù)在所有高速緩存容量中占有一定的容量比例。處理器從高速緩存中讀取數(shù)據(jù)的可能性較高,從主存儲器中讀取數(shù)據(jù)的可能性較低,而處理器從高速緩存中獲取數(shù)據(jù)的速度高于從主存儲器中獲取數(shù)據(jù)的速度,處理器能夠達到較高的獲取數(shù)據(jù)速度。

【專利附圖】

【附圖說明】
[0010]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲取其他的附圖。
[0011]圖1為現(xiàn)有技術(shù)中一種高速緩存數(shù)據(jù)寫入方法流程圖;
圖2為本發(fā)明實施例提供的一種高速緩存數(shù)據(jù)寫入方法流程圖;
圖3為本發(fā)明實施例提供的另一種高速緩存數(shù)據(jù)寫入方法流程圖。

【具體實施方式】
[0012]為使本發(fā)明的目的和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲取的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0013]如圖1所示,本發(fā)明的實施例提供一種高速緩存的數(shù)據(jù)寫入方法,包括 101、執(zhí)行指令;
每一類型的處理器擁有各自特定的指令系統(tǒng),其指令內(nèi)容和格式有所不同。一條指令通常具有操作碼及地址碼。操作碼指明指令要完成的操作的類型或性質(zhì),如取數(shù)、做加法或輸出數(shù)據(jù)等;地址碼指明操作對象的內(nèi)容或所在的存儲單元地址。
[0014]102、當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存中;
103、當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。
[0015]執(zhí)行指令伴隨著對數(shù)據(jù)的讀寫操作,包括將數(shù)據(jù)寫入高速緩存中、處理器從高速緩存中加載數(shù)據(jù)等。
[0016]根據(jù)不同的應(yīng)用場景可以將數(shù)據(jù)區(qū)分為可能被處理器再次讀取的數(shù)據(jù)及可能被處理器單次讀取的數(shù)據(jù),第一邏輯高速緩存用于存儲可能被處理器再次讀取的數(shù)據(jù),第二邏輯高速緩存用于存儲可能被處理器單次讀取的數(shù)據(jù)。
[0017]在高速緩存中,可供處理器讀取的數(shù)據(jù)可以分為兩類,一類是可能被處理器單次讀取的數(shù)據(jù),另外一類是可能被處理器再次讀取的數(shù)據(jù),數(shù)據(jù)的這種劃分不是基于數(shù)據(jù)自身的屬性,而是根據(jù)處理器讀取數(shù)據(jù)時的應(yīng)用場景。
[0018]例如,當板上系統(tǒng)(SOC:System on Chip)中存在視頻加速模塊的時候,對于視頻信息,處理器只是負責將其拷貝到視頻加速模塊能夠訪問到的位置,后續(xù)對視頻信息的解碼工作由視頻加速模塊完成。在這種應(yīng)用場景下,處理器一般只需要對視頻信息進行單次讀取,存儲到高速緩存中的視頻信息一般不會被處理器再次調(diào)用??赡鼙惶幚砥鲉未巫x取的數(shù)據(jù)可以被后續(xù)任意寫入高速緩存中的數(shù)據(jù)替換,因為這類數(shù)據(jù)被處理器再次讀取的可能性很低,將其替換掉不會提高處理器從主存儲器中讀取數(shù)據(jù)的可能性。
[0019]而當處理器處于對哈夫曼表(huffman表)進行解碼的工作中,為了解碼壓縮哈夫曼碼字,對哈夫曼表的讀取頻率非常高。在這種應(yīng)用場景下,處理器一般需要對哈夫曼表的相關(guān)數(shù)據(jù)進行再次讀取,存儲到高速緩存中的哈夫曼表相關(guān)數(shù)據(jù)會被處理器再次調(diào)用。高速緩存中可能被處理器再次讀取的數(shù)據(jù)若被可能被處理器單次讀取的數(shù)據(jù)替換,出現(xiàn)本可以從高速緩存中讀取數(shù)據(jù)卻需要轉(zhuǎn)到主存儲器中讀取數(shù)據(jù)的情況可能性較高,提高了處理器從主存儲器中讀取數(shù)據(jù)的可能性。
[0020]程序開發(fā)人員在編寫程序的過程中根據(jù)應(yīng)用場景的不同判斷程序所調(diào)用的數(shù)據(jù)屬于可能被處理器單次讀取的數(shù)據(jù)或可能被處理器再次讀取的數(shù)據(jù)。
[0021]根據(jù)應(yīng)用場景的不同,可以采用不同的指令對應(yīng)不同的數(shù)據(jù),也可以采用在一條指令中通過設(shè)置某些標志位等形式實現(xiàn)不同的指令對應(yīng)不同的數(shù)據(jù),從而根據(jù)指令的不同區(qū)分可能被處理器單次讀取的數(shù)據(jù)與可能被處理器再次讀取的數(shù)據(jù)。如采用1acLonetime指令對應(yīng)可能被處理器單次讀取的數(shù)據(jù),采用load指令對應(yīng)可能被處理器再次讀取的數(shù)據(jù)。load_onetime指令與load指令只是對應(yīng)高速緩存架構(gòu)的兩種指令形式。
[0022]由于處理器的寫入速度高于高速緩存的讀取速度,高速緩存的讀取速度高于主存儲器的讀取速度,所以處理器從高速緩存中讀取數(shù)據(jù)比從主存儲器中讀取數(shù)據(jù)更快。
[0023]根據(jù)程序局部性原理,即正在使用的主存儲器中某一單元數(shù)據(jù)鄰近的單元數(shù)據(jù)將被調(diào)用的可能性很大,因此,當處理器讀取主存儲器中某一單元數(shù)據(jù)時,會將該單元數(shù)據(jù)鄰近的單元數(shù)據(jù)寫入高速緩存中,為處理器下次讀取數(shù)據(jù)做準備。
[0024]寫入高速緩存中的數(shù)據(jù)被處理器再次讀取的可能性不盡相同。
[0025]對于可能被處理器再次讀取的數(shù)據(jù),其寫入高速緩存中,處理器較多次的從高速緩存中讀取數(shù)據(jù)的可能性較高,從而能夠保持處理器較快的獲取數(shù)據(jù)速度,
對于可能被處理器單次讀取的數(shù)據(jù),其寫入高速緩存中,處理器較多次的從主存儲器中讀取數(shù)據(jù)可能性較高,從而使得處理器獲取數(shù)據(jù)的速度較慢。
[0026]所以,高速緩存中存放的可能被處理器多次讀取的數(shù)據(jù)越多,處理器獲取數(shù)據(jù)的速度越快,高速緩存中存放的可能被處理器單次讀取的數(shù)據(jù)越多,處理器獲取數(shù)據(jù)的速度越慢。
[0027]現(xiàn)有技術(shù)中,可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)被寫入同一個邏輯高速緩存中。數(shù)據(jù)的讀取及寫入過程中,這兩種數(shù)據(jù)在高速緩存中占用容量的比例變化很大,很容易出現(xiàn)高速緩存中可能被處理器單次讀取的數(shù)據(jù)容量大于可能被處理器再次讀取的數(shù)據(jù)容量,甚至容易出現(xiàn)高速緩存中全部是可能被處理器單次讀取的數(shù)據(jù),使得處理器較多次的從主存儲器中讀取數(shù)據(jù)的可能性較高,從而使得處理器獲取數(shù)據(jù)的速度較慢。
[0028]本發(fā)明實施例中,執(zhí)行指令,當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存中;當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中,可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)被緩存到不同的高速緩存中,不會出現(xiàn)可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存的空間,也能夠保證可能被處理器再次讀取的數(shù)據(jù)在高速緩存中占有一定的容量比例,處理器較多次的從高速緩存中讀取數(shù)據(jù)的可能性較高,從而能夠達到較高的獲取數(shù)據(jù)速度。
[0029]如2圖所示,本發(fā)明實施例提供一種高速緩存的數(shù)據(jù)寫入方法,包括 201、執(zhí)行指令;
每一類型處理器擁有自己特定的指令系統(tǒng),其指令內(nèi)容和格式有所不同。一條指令通常具有操作碼及地址碼。操作碼指明指令要完成的操作的類型或性質(zhì),如取數(shù)、做加法或輸出數(shù)據(jù)等;地址碼指明操作對象的內(nèi)容或所在的存儲單元地址。
[0030]202、查詢第一邏輯高速緩存與第二邏輯高速緩存中是否存在所需數(shù)據(jù);
203、當?shù)谝贿壿嫺咚倬彺媾c第二邏輯高速緩存中不存在所需數(shù)據(jù)時,從主存儲器中讀取所需數(shù)據(jù);
204、當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存中;
205、根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。
[0031]執(zhí)行指令伴隨著對數(shù)據(jù)的讀寫操作,包括將數(shù)據(jù)寫入高速緩存中、處理器從高速緩存中加載數(shù)據(jù)等。
[0032]根據(jù)不同的應(yīng)用場景可以將數(shù)據(jù)區(qū)分為可能被處理器再次讀取的數(shù)據(jù)及可能被處理器單次讀取的數(shù)據(jù),第一邏輯高速緩存用于存儲可能被處理器再次讀取的數(shù)據(jù),第二邏輯高速緩存用于存儲可能被處理器單次讀取的數(shù)據(jù)。
[0033]在高速緩存中,可供處理器讀取的數(shù)據(jù)可以分為兩類,一類是可能被處理器單次讀取的數(shù)據(jù),另外一類是可能被處理器再次讀取的數(shù)據(jù),數(shù)據(jù)的這種劃分不是基于數(shù)據(jù)自身的屬性,而是根據(jù)處理器讀取數(shù)據(jù)時的應(yīng)用場景。
[0034]例如,當板上系統(tǒng)(SOC:System on Chip)中存在視頻加速模塊的時候,對于視頻信息,處理器只是負責將其拷貝到視頻加速模塊能夠訪問到的位置,后續(xù)對視頻信息的解碼工作由視頻加速模塊完成。在這種應(yīng)用場景下,處理器一般只需要對視頻信息進行單次讀取,存儲到高速緩存中的視頻信息一般不會被處理器再次調(diào)用??赡鼙惶幚砥鲉未巫x取的數(shù)據(jù)可以被后續(xù)任意寫入高速緩存中的數(shù)據(jù)替換,因為這類數(shù)據(jù)被處理器再次讀取的可能性很低,將其替換掉不會提高處理器從主存儲器中讀取數(shù)據(jù)的可能性。
[0035]而當處理器處于對哈夫曼表(huffman表)進行解碼的工作中,為了解碼壓縮哈夫曼碼字,對哈夫曼表的讀取頻率非常高。在這種應(yīng)用場景下,處理器一般需要對哈夫曼表的相關(guān)數(shù)據(jù)進行再次讀取,存儲到高速緩存中的哈夫曼表相關(guān)數(shù)據(jù)會被處理器再次調(diào)用。高速緩存中可能被處理器再次讀取的數(shù)據(jù)若被可能被處理器單次讀取的數(shù)據(jù)替換,出現(xiàn)本可以從高速緩存中讀取數(shù)據(jù)卻需要轉(zhuǎn)到主存儲器中讀取數(shù)據(jù)的情況可能性較高,提高了處理器從主存儲器中讀取數(shù)據(jù)的可能性。
[0036]程序開發(fā)人員能夠在編寫程序的過程中根據(jù)應(yīng)用場景的不同判斷程序所調(diào)用的數(shù)據(jù)屬于可能被處理器單次讀取的數(shù)據(jù)或可能被處理器再次讀取的數(shù)據(jù)。
[0037]根據(jù)應(yīng)用場景的不同,為了區(qū)分可能被處理器單次讀取的數(shù)據(jù)與可能被處理器再次讀取的數(shù)據(jù),可以采用不同的指令對應(yīng)不同的數(shù)據(jù),也可以采用在一條指令中通過設(shè)置某些標志位等形式實現(xiàn)不同的指令對應(yīng)不同的數(shù)據(jù)。如采用1acLonetime指令對應(yīng)可能被處理器單次讀取的數(shù)據(jù),采用load指令對應(yīng)可能被處理器再次讀取的數(shù)據(jù)。load_onetime指令與load指令只是對應(yīng)高速緩存架構(gòu)的兩種指令形式。
[0038]由于處理器的寫入速度高于高速緩存的讀取速度,高速緩存的讀取速度高于主存儲器的讀取速度,所以處理器從高速緩存中讀取數(shù)據(jù)比從主存儲器中讀取數(shù)據(jù)更快。
[0039]根據(jù)程序局部性原理,即正在使用的主存儲器中某一單元數(shù)據(jù)鄰近的單元數(shù)據(jù)將被調(diào)用的可能性很大,因此,當處理器讀取主存儲器中某一單元數(shù)據(jù)時,會將該單元數(shù)據(jù)鄰近的單元數(shù)據(jù)寫入高速緩存中,為處理器下次讀取數(shù)據(jù)做準備。
[0040]寫入高速緩存中的數(shù)據(jù)被處理器再次讀取的可能性不盡相同。
[0041]對于可能被處理器再次讀取的數(shù)據(jù),其寫入高速緩存中,處理器較多次的從高速緩存中讀取數(shù)據(jù)的可能性較高,從而能夠保持處理器較快的獲取數(shù)據(jù)速度,
對于可能被處理器單次讀取的數(shù)據(jù),其寫入高速緩存中,處理器較多次的從主存儲器中讀取數(shù)據(jù)可能性較高,從而使得處理器獲取數(shù)據(jù)的速度較慢。
[0042]所以,高速緩存中存放的可能被處理器多次讀取的數(shù)據(jù)越多,處理器獲取數(shù)據(jù)的速度越快,高速緩存中存放的可能被處理器單次讀取的數(shù)據(jù)越多,處理器獲取數(shù)據(jù)的速度越慢。
[0043]現(xiàn)有技術(shù)中,可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)被寫入同一個邏輯高速緩存中。數(shù)據(jù)的讀取及寫入過程中,這兩種數(shù)據(jù)在高速緩存中占用容量的比例變化很大,很容易出現(xiàn)高速緩存中可能被處理器單次讀取的數(shù)據(jù)容量大于可能被處理器再次讀取的數(shù)據(jù)容量,甚至出現(xiàn)可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存的空間,使得處理器較多次的從主存儲器中讀取數(shù)據(jù)的可能性較高,從而導(dǎo)致處理器獲取數(shù)據(jù)的速度較慢。
[0044]本發(fā)明實施例中,執(zhí)行指令,當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存中;當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中??赡鼙惶幚砥髟俅巫x取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)被緩存到不同的高速緩存中,不會出現(xiàn)可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存的空間,能夠保證可能被處理器再次讀取的數(shù)據(jù)在高速緩存中占有一定的容量比例。處理器較多次的從高速緩存中讀取數(shù)據(jù)的可能性較高,從而能夠達到較高的獲取數(shù)據(jù)速度。
[0045]高速緩沖通常由高速存儲器、聯(lián)想存儲器、替換邏輯電路和相應(yīng)的控制線路組成。在有高速緩沖存儲器的計算機系統(tǒng)中,處理器存取主存儲器的地址劃分為行號、列號和組內(nèi)地址三個字段。于是,主存儲器就在邏輯上劃分為若干行;每行劃分為若干的存儲單元組;每組包含幾個或幾十個字。高速存儲器也相應(yīng)地劃分為行和列的存儲單元組。二者的列數(shù)相同,組的大小也相同,但高速存儲器的行數(shù)卻比主存儲器的行數(shù)少得多。
[0046]聯(lián)想存儲器用于地址聯(lián)想,有與高速存儲器相同行數(shù)和列數(shù)的存儲單元。當主存儲器某一列某一行存儲單元組調(diào)入高速存儲器同一列某一空著的存儲單元組時,與聯(lián)想存儲器對應(yīng)位置的存儲單元就記錄調(diào)入的存儲單元組在主存儲器中的行號。
[0047]主存地址分為高中低三部分,高部分是包含列號信息,中間部分包含行號信息,低部分包含位置信息,通過列號信息判斷數(shù)據(jù)在高速存儲器中的列位置,再通過行號信息判斷數(shù)據(jù)在該列的哪一行中,再根據(jù)位置信息判斷數(shù)據(jù)在該列該行中具體位置。
[0048]當處理器需要讀取數(shù)據(jù)時,硬件首先自動對主存地址的列號字段進行譯碼,以便將聯(lián)想存儲器該列的全部行號與主存地址的行號字段進行比較:若有相同的,表明要存取的主存儲器單元已在高速存儲器中,稱為命中,硬件就將存取主存儲器的地址映射為高速存儲器的地址并執(zhí)行存取操作;若都不相同,表明該單元不在高速存儲器中,稱為脫靶,硬件將執(zhí)行存取主存儲器操作并自動將該單元所在的那一主存儲器單元組調(diào)入高速存儲器相同列中空著的存儲單元組中,同時將該組在主存儲器中的行號存入聯(lián)想存儲器對應(yīng)位置的單元內(nèi)。
[0049]具體地,處理器將需要讀取的數(shù)據(jù)的主存地址分別發(fā)送給第一邏輯高速緩存與第二邏輯高速緩存,由第一邏輯高速緩存的控制邏輯解譯主存地址中的列號字段,并查詢第一邏輯高速緩存的目錄表該列中是否存在與主存地址中的行號相同的行,由第二邏輯高速緩存的控制邏輯解譯主存地址中的列號字段,并查詢第二邏輯高速緩存的目錄表該列中是否存在與主存地址中的行號相同的行,當在第一邏輯高速緩存或第二邏輯高速緩存中查詢到相同的列、行號時,根據(jù)位置信息找到所要讀取的數(shù)據(jù),此時處理器直接從高速緩存中讀取該主存地址對應(yīng)的數(shù)據(jù)。其中,處理器在讀取數(shù)據(jù)之前還會檢驗該數(shù)據(jù)是否有效。
[0050]當高速緩存的目錄表中不存在主存地址中對應(yīng)的列、行號信息,處理器根據(jù)應(yīng)用場景判斷所要讀取的數(shù)據(jù)是否為可能被處理器單次讀取的數(shù)據(jù),若所要讀取的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),則該數(shù)據(jù)鄰近的單元數(shù)據(jù)都為可能被處理器單次讀取的數(shù)據(jù),將這些可能被處理器單次讀取的數(shù)據(jù)緩存到第二邏輯高速緩存中;
當高速緩存的目錄表中查詢不到該主存地址時,處理器根據(jù)應(yīng)用場景判斷所要讀取的數(shù)據(jù)是否為可能被處理器再次讀取的數(shù)據(jù),若所要讀取的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),則該數(shù)據(jù)鄰近的單元數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將這些可能被處理器再次讀取的數(shù)據(jù)緩存到第一邏輯高速緩存中。
[0051]此外,處理器根據(jù)應(yīng)用場景判斷所要讀取的數(shù)據(jù)屬于可能被處理器單次讀取的數(shù)據(jù)還是屬于可能被處理器再次讀取的數(shù)據(jù),這一步驟可以放在處理器向高速緩存發(fā)送主存地址之前,當高速緩存的目錄表中查詢不到所需要的主存地址時或主存地址對應(yīng)的數(shù)據(jù)經(jīng)驗證屬于無效時,若處理器所要讀取的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),則該數(shù)據(jù)鄰近的單元數(shù)據(jù)都為可能被處理器單次讀取的數(shù)據(jù),將這些可能被處理器單次讀取的數(shù)據(jù)緩存到第二邏輯高速緩存中,若處理器所要讀取的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),則該數(shù)據(jù)鄰近的單元數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將這些可能被處理器再次讀取的數(shù)據(jù)緩存到第一邏輯高速緩存中。
[0052]如圖3所示,本發(fā)明實施例提供一種高速緩存的數(shù)據(jù)寫入裝置,包括指令執(zhí)行單元D,用于執(zhí)行指令;
數(shù)據(jù)識別單元I,判斷需要緩存的數(shù)據(jù)的類型;
數(shù)據(jù)存儲單元R,當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將所述可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存Cl中,當根據(jù)指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)存儲到第二邏輯高速緩存C2中
第一邏輯高速緩存Cl,用于存儲可能被處理器再次讀取的數(shù)據(jù);
第二邏輯高速緩存C2,用于存儲可能被處理器單次讀取的數(shù)據(jù)。
[0053]第一邏輯高速緩存與第二邏輯高速緩存是邏輯上的兩個高速緩存,其物理形態(tài)可以是獨立的高速緩存,也可是一個高速緩存的不同分區(qū),也可以是上述兩種的結(jié)合。
[0054]現(xiàn)有技術(shù)中,可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)被寫入同一個高速緩存中,這兩種數(shù)據(jù)的容量比例變化很大,很容易出現(xiàn)高速緩存中可能被處理器單次讀取的數(shù)據(jù)容量大于可能被處理器再次讀取的數(shù)據(jù)容量,甚至容易出現(xiàn)高速緩存中全部是可能被處理器單次讀取的數(shù)據(jù),使得處理器較多次的從主存儲器中讀取數(shù)據(jù)的可能性較高,從而使得處理器獲取數(shù)據(jù)的速度較慢。
[0055]本發(fā)明實施例中,可能被處理器再次讀取的數(shù)據(jù)緩存到第一邏輯高速緩存中,可能被處理器單次讀取的數(shù)據(jù)緩存到第二邏輯高速緩存中,可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)被緩存到不同的高速緩存中,不會出現(xiàn)可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存的空間,能夠保證可能被處理器再次讀取的數(shù)據(jù)在高速緩存中占有一定的容量比例,處理器較多次的從高速緩存中讀取數(shù)據(jù)的可能性較高,從而能夠保持較快的獲取數(shù)據(jù)速度。
[0056]優(yōu)選的,上述高速緩存的數(shù)據(jù)寫入裝置還包括
查詢單元S,用于查詢第一邏輯高速緩存Cl與第二邏輯高速緩存C2中是否存在指令所需的數(shù)據(jù);
數(shù)據(jù)存儲單元R還用于,當?shù)谝贿壿嫺咚倬彺媾c第二邏輯高速緩存中不存在所需的數(shù)據(jù)時,從主存儲器中讀取所述數(shù)據(jù)。
[0057]具體地,指令執(zhí)行單元D在執(zhí)行指令時,查詢單元S會在第一邏輯高速緩存Cl與第二邏輯高速緩存C2中查詢是否存在執(zhí)行指令所需要的數(shù)據(jù),當?shù)谝贿壿嫺咚倬彺鍯l與第二邏輯高速緩存C2中不存在執(zhí)行指令所需要的數(shù)據(jù)時,數(shù)據(jù)存儲單元R從主存儲器中讀取所需要的數(shù)據(jù),同時,數(shù)據(jù)存儲單元R根據(jù)數(shù)據(jù)識別單元I對需要緩存的數(shù)據(jù)類型的判斷,將可能被處理器再次讀取的數(shù)據(jù)存儲到第一邏輯高速緩存,將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。
[0058]優(yōu)選的,第一邏輯高速緩存的容量大于等于第二邏輯高速緩存的容量。
[0059]在具體的實施例中,高速緩存的總?cè)萘渴枪潭ǖ摹?赡鼙惶幚砥髟俅巫x取的數(shù)據(jù)緩存到第一邏輯高速緩存中,可能被處理器單次讀取的數(shù)據(jù)緩存到第二邏輯高速緩存中,可能被處理器再次讀取的數(shù)據(jù)與可能被處理器單次讀取的數(shù)據(jù)被緩存到不同的高速緩存中,不會出現(xiàn)可能被處理器單次讀取的數(shù)據(jù)占滿所有高速緩存的空間,第一邏輯高速緩存的容量大于等于第二邏輯高速緩存的容量,可以使得高速緩存中可能被處理器再次讀取的數(shù)據(jù)等于或多于可能被處理器單次讀取的數(shù)據(jù),處理器較多次的從高速緩存中讀取數(shù)據(jù)的可能性較高,從而能夠保持較快的獲取數(shù)據(jù)速度。
[0060]優(yōu)選的,第一邏輯高速緩存與第二邏輯高速緩存具有相同的邏輯結(jié)構(gòu)。
[0061]高速緩存與主存儲器的地址映射有全相聯(lián)映射方式、直接相聯(lián)映射方式和組組相聯(lián)映射方式,高速緩存的結(jié)構(gòu)因此可以分為全相聯(lián)結(jié)構(gòu)、直接相聯(lián)結(jié)構(gòu)和組組相聯(lián)結(jié)構(gòu)。
[0062]第一邏輯高速緩存與第二邏輯高速緩存擁有相同的結(jié)構(gòu),使得在未存入高速緩存數(shù)據(jù)之前,兩者對數(shù)據(jù)的存儲方式是相同,即兩者可以是等效的高速緩存,這使得可以靈活地通過控制邏輯來選擇數(shù)據(jù)存儲的目標高速緩存。
[0063]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0064]作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0065]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個數(shù)據(jù)識別單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
[0066]上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ead-Only Memoy,簡稱0M)、隨機存取存儲器(andom Aess Memoy,簡稱AM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0067]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種高速緩存的數(shù)據(jù)寫入方法,其特征在于,包括: 執(zhí)行指令; 當根據(jù)所述指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將所述可能被處理器再次讀取的數(shù)據(jù)寫入第一邏輯高速緩存中; 當根據(jù)所述指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將所述可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。
2.如權(quán)利要求1所述的高速緩存的數(shù)據(jù)寫入方法,其特征在于,根據(jù)不同的應(yīng)用場景將數(shù)據(jù)區(qū)分為所述可能被處理器再次讀取的數(shù)據(jù)及所述可能被處理器單次讀取的數(shù)據(jù)。
3.如權(quán)利要求2所述的高速緩存的數(shù)據(jù)寫入方法,其特征在于在所述執(zhí)行指令之后、將數(shù)據(jù)寫入高速緩存之前,還包括 查詢第一邏輯高速緩存與第二邏輯高速緩存中是否存在所需數(shù)據(jù); 當所述第一邏輯高速緩存與所述第二邏輯高速緩存中不存在所述所需數(shù)據(jù)時,從主存儲器中讀取所述數(shù)據(jù)。
4.一種高速緩存的數(shù)據(jù)寫入裝置,其特征在于,包括 指令執(zhí)行單元,用于執(zhí)行指令; 數(shù)據(jù)識別單元,用于判斷需要緩存的數(shù)據(jù)的類型; 第一邏輯高速緩存,用于存儲所述可能被處理器再次讀取的數(shù)據(jù); 第二邏輯高速緩存,用于存儲所述可能被處理器單次讀取的數(shù)據(jù); 數(shù)據(jù)存儲單元,當根據(jù)所述指令進行緩存的數(shù)據(jù)為可能被處理器再次讀取的數(shù)據(jù),將所述可能被處理器再次讀取的數(shù)據(jù)寫入第一邏輯高速緩存中,當根據(jù)所述指令進行緩存的數(shù)據(jù)為可能被處理器單次讀取的數(shù)據(jù),將可能被處理器單次讀取的數(shù)據(jù)寫入第二邏輯高速緩存中。
5.如權(quán)利要求4所述的高速緩存的數(shù)據(jù)寫入裝置,其特征在于還包括 查詢單元,用于查詢第一邏輯高速緩存與第二邏輯高速緩存中是否存在所述指令所需的數(shù)據(jù); 所述數(shù)據(jù)存儲單元還用于,當所述第一邏輯高速緩存與所述第二邏輯高速緩存中不存在所述數(shù)據(jù)時,從主存儲器中讀取所述數(shù)據(jù)。
6.如權(quán)利要求4所述的高速緩存的數(shù)據(jù)寫入裝置,其特征在于所述第一邏輯高速緩存的容量大于等于所述第二邏輯高速緩存的容量。
7.如權(quán)利要求4所述的高速緩存的數(shù)據(jù)寫入裝置,其特征在于所述第一邏輯高速緩存與所述第二邏輯高速緩存具有相同的邏輯結(jié)構(gòu)。
【文檔編號】G06F3/06GK104298471SQ201410475775
【公開日】2015年1月21日 申請日期:2014年9月16日 優(yōu)先權(quán)日:2014年9月16日
【發(fā)明者】邢文峰 申請人:青島海信信芯科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
天津市| 大安市| 宝清县| 留坝县| 义马市| 北安市| 梧州市| 罗田县| 富平县| 班玛县| 孟连| 蛟河市| 清远市| 海城市| 炉霍县| 柯坪县| 鸡泽县| 颍上县| 阳谷县| 龙游县| 岳阳市| 前郭尔| 苏州市| 铜陵市| 龙泉市| 镇原县| 宾阳县| 石阡县| 郎溪县| 亚东县| 乌兰浩特市| 郎溪县| 连城县| 临泉县| 贡觉县| 曲沃县| 仪征市| 浦江县| 县级市| 青岛市| 阜新|