訪存優化方法和裝置的制造方法
【技術領域】
[0001 ] 本發明實施例涉及通信技術領域,尤其涉及一種訪存優化方法和裝置。
【背景技術】
[0002]緩沖存儲器是存儲系統中最重要的部分,最早是由Wilkes于1951年構想出來,為了彌補中央處理器(Central Processing Unit,簡稱CPU)與內存之間的速度差異而提出的,為了有效彌補CPU與內存之間的速度差異引起的延遲,CPU中通常采用多級存儲系統。例如采用一級緩存、二級緩存和隨機存取存儲器(Random Access Memory,簡稱RAM)三個層次的存儲結構,其訪問速度依次遞減,容量依次遞增,如果CPU執行寫指令時,對最后一級緩存(二級緩存)的訪問未命中,那么需要訪問RAM,造成訪問延遲長,功耗高,性能差的問題。
[0003]為解決上述問題,現有技術中在CPU執行寫指令且緩存未命中的情況下,不去訪問RAM,而是首先采用數據緩存塊清除為零(Data Cache Block Zero,簡稱dcbz)指令直接在緩存中為訪問地址分配一個緩存塊,并對該整個緩存塊寫入全O數據,由于只能對整個緩存塊寫入全O數據,即只能將緩存塊初始化為全O數據,因此后續仍然需要使用一個寫指令(例如store指令)將有效數據寫入緩存,增加了訪存操作。
【發明內容】
[0004]本發明實施例提供一種訪存優化方法和裝置,解決了現有技術中在CPU執行寫指令且緩存未命中的情況下,只能對整個緩存塊寫入全O數據,后續寫入真正的有效數據時,需要再次進行寫操作,增加了訪存操作,造成功耗浪費的問題。
[0005]第一方面,本發明實施例提供一種訪存優化方法,包括:
[0006]確定處理器核的緩存訪問是否未命中緩存塊;
[0007]若緩存訪問未命中緩存塊,則在緩存中通過塊存儲指令為訪問地址分配一個緩存塊,并將所述塊存儲指令指示的地址標識字段的地址單元寫入到分配的緩存塊的地址標識字段,將所述塊存儲指令指示的數據寫入到所述分配的緩存塊的第一數據位置上,所述分配的緩存塊的第一數據位置為所述塊存儲指令指示的所述分配的緩存塊的數據位置。
[0008]在第一方面的第一種可能的實現方式中,還包括:
[0009]如果所述塊存儲指令指示的數據的寬度小于所述分配的緩存塊的寬度,則保持所述分配的緩存塊的第二數據位置上的數據或將所述分配的緩存塊的第二數據位置上全部寫入“O”數據值或“ I ”數據值或將所述分配的緩存塊的第二數據位置上寫入“O”數據值和“I”數據值,所述分配的緩存塊的第二數據位置為除所述分配的緩存塊的第一數據位置之外的所述分配的緩存塊的數據位置。
[0010]根據第一方面或第一方面的第一種可能的實現方式,在第二種可能的實現方式中,還包括:
[0011]若緩存訪問命中緩存塊,則將所述塊存儲指令指示的數據寫入到命中的緩存塊的第一數據位置上,所述命中的緩存塊的第一數據位置為所述塊存儲指令指示的所述命中的緩存塊的數據位置。
[0012]根據第一方面的第二種可能的實現方式,在第三種可能的實現方式中,還包括:
[0013]如果所述塊存儲指令指示的數據的寬度小于命中的緩存塊的寬度,則保持所述命中的緩存塊的第二數據位置上的數據或將所述命中的緩存塊的第二數據位置上全部寫入“O”數據值或“ I ”數據值或將所述命中的緩存塊的第二數據位置上寫入“O”數據值和“ I ”數據值,所述命中的緩存塊的第二數據位置為除所述命中的緩存塊的第一數據位置之外的所述命中的緩存塊的數據位置。
[0014]第二方面,本發明實施例提供一種訪存優化裝置,包括:
[0015]確定模塊,用于確定處理器核的緩存訪問是否未命中緩存塊;
[0016]處理模塊,用于若緩存訪問未命中緩存塊,則在緩存中通過塊存儲指令為訪問地址分配一個緩存塊,并將所述塊存儲指令指示的地址標識字段的地址單元寫入到分配的緩存塊的地址標識字段,將所述塊存儲指令指示的數據寫入到所述分配的緩存塊的第一數據位置上,所述分配的緩存塊的第一數據位置為所述塊存儲指令指示的所述分配的緩存塊的數據位置。
[0017]在第二方面的第一種可能的實現方式中,所述處理模塊還用于如果所述塊存儲指令指示的數據的寬度小于所述分配的緩存塊的寬度,則保持所述分配的緩存塊的第二數據位置上的數據或將所述分配的緩存塊的第二數據位置上全部寫入“O”數據值或“ I”數據值或將所述分配的緩存塊的第二數據位置上寫入“O”數據值和“ I ”數據值,所述分配的緩存塊的第二數據位置為除所述分配的緩存塊的第一數據位置之外的所述分配的緩存塊的數據位置。
[0018]根據第二方面或第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述處理模塊還用于若緩存訪問命中緩存塊,則將所述塊存儲指令指示的數據寫入到命中的緩存塊的第一數據位置上,所述命中的緩存塊的第一數據位置為所述塊存儲指令指示的所述命中的緩存塊的數據位置。
[0019]根據第二方面的第二種可能的實現方式,在第三種可能的實現方式中,所述處理模塊還用于如果所述塊存儲指令指示的數據的寬度小于命中的緩存塊的寬度,則保持所述命中的緩存塊的第二數據位置上的數據或將所述命中的緩存塊的第二數據位置上全部寫入“O”數據值或“I”數據值或將所述命中的緩存塊的第二數據位置上寫入“O”數據值和“I”數據值,所述命中的緩存塊的第二數據位置為除所述命中的緩存塊的第一數據位置之外的所述命中的緩存塊的數據位置。
[0020]本發明實施例訪存優化方法和裝置,通過確定處理器核的緩存訪問是否未命中緩存塊,在緩存訪問未命中緩存塊的情況下,在緩存中通過塊存儲指令為訪問地址分配一個緩存塊,并將塊存儲指令指示的地址標識字段的地址單元寫入到分配的緩存塊的地址標識字段,將塊存儲指令指示的數據寫入到分配的緩存塊的第一數據位置上,從而在CPU執行寫指令且緩存未命中的時,減少了訪問主存的次數,提高了程序執行效率。
【附圖說明】
[0021]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0022]圖1為本發明實施例一所提供的訪存優化方法的流程圖;
[0023]圖2為本發明實施例二所提供的訪存優化方法的流程圖;
[0024]圖3為本發明實施例三所提供的訪存優化裝置300的結構示意圖;
[0025]圖4為本發明實施例四所提供的一種訪存優化裝置400的結構示意圖。
【具體實施方式】
[0026]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0027]圖1為本發明實施例一所提供的訪存優化方法的流程圖。本實施例的方法適用于在CPU執行寫指令且緩存未命中的情況下,通過降低訪存操作將數據寫入緩存塊的情況。該方法由訪存優化裝置執行,該裝置通常以硬件和/或軟件的方式來實現。本實施例的方法包括如下步驟:
[0028]S110、確定處理器核的緩存訪問是否未命中緩存塊。
[0029]S120、若緩存訪問未命中緩存塊,則在緩存中通過塊存儲指令為訪問地址分配一個緩存塊,并將塊存儲指令指示的地址標識字段的地址單元寫入到分配的緩存塊的地址標識字段,將塊存儲指令指示的數據寫入到分配的緩存塊的第一數據位置上,分配的緩存塊的第一數據位置為塊存儲指令指示的分配的緩存塊的數據位置。
[0030]處理器核訪問存儲器時,需要檢查CPU送出的地址,判斷CPU要訪問的地址單元是否在緩存中。若在,稱為命中(