一種片上指令cache的實現方法
2023-06-06 09:05:11 1
專利名稱:一種片上指令cache的實現方法
技術領域:
本發明屬於計算機技術領域:
,涉及高性能信號處理器的設計和製造,特別涉及到一種片上指令cache控制系統的硬體實現方法。
背景技術:
自計算機發明以來,計算速度和I/O速度不匹配的矛盾就存在,cache技術就是解決此矛盾的技術之一。傳統的cache控制系統通常是由軟體完成,如PC機的作業系統就負責完成cache的控制管理,整個cache的存儲狀態、數據調度、替換策略、異常處理等都是由作業系統中的軟體程序負責完成。隨著微電子製造工藝的進步,計算機系統可在一個晶片上實現,cache也被集成在片上,如何對片上的cache進行有效的控制管理,是高性能處理晶片設計中的重要內容。
目前國內外的有關指令cache的實現方法主要是採用硬體和軟體相結合的方法,通過大型計算機硬體和軟體作業系統來實現。這種方法實現cache指令的控制具有功耗較大、取指令的時間較長和可靠性差的缺點。
發明內容本發明的技術解決問題克服現有技術的不足,提供一種片上指令cache的實現方法,採用該方法提高了指令cache的工作速度,同時結構簡單,面積小,功耗低,便於在晶片上實現,且可靠性高。
本發明的技術解決方案一種片上指令cache的實現方法,其特點在於指令cache的結構由一cache控制寄存器、cache段起始地址寄存器、匹配標誌P位、cache段字存儲器以及LRU替換堆棧構成,cache控制寄存器用於控制或表示cache的狀態,cache段起始地址寄存器用於存儲指令地址的段地址,匹配標誌P位用於標識是否有一個段內字已經對準,cache段字存儲器用於存儲指令,LRU替換堆棧用於記錄cache段替換的順序;當請求外部存儲器給出指令字時,會出現兩種情況,cache命中或cache未命中,如果cache命中,從cache中讀出指令,該分段號壓入LRU替換堆棧的頂部,配置相應的P標記;如果cache未命中,存在兩種情況第一種情況是cache段起始地址寄存器與該指令地址相匹配,但沒有設置相應的匹配標誌P位,此時同時進行如下操作從存儲器中讀出指令並拷貝到cache,將該分段號壓入LRU替換堆棧的頂部,配置相應的匹配標誌P位;第二種情況是cache段起始地址寄存器與指令地址不匹配,此時同時進行如下操作從LRU替換堆棧中選擇將被替換的分段號,該段中的所有匹配標誌P位清除,將指令的地址的相應位寬值載到替換的分段的cache段起始地址寄存器中,取得指令並拷貝到cache並將P標誌置位,將替換的分段號壓入LRU替換堆棧的棧頂。
本發明與現有技術相比的優點在於(1)本發明的片上cache指令結構,具有結構簡單,面積小,功耗低,便於在晶片上實現。
(2)根據本發明的片上指令cache的結構而設計的工作流程簡單,提高了指令cache工作的可靠性。
(3)採用硬體替換堆棧選擇替換段號,避免了現有技術的軟體判斷,提高了指令cache的工作速度。
圖1為本發明的一種片上指令cache的結構示意圖;圖2為本發明的一種片上指令cache的工作流程;圖3為本發明的LRU替換堆棧的結構圖。
具體實施方式如圖1所示,在SMDSP信號處理器中,指令cache容量為64×32位字,將其分為兩個32欄位,一個19位的段起始地址寄存器和每一段相關聯。cache中的每個字,都有相應的匹配標誌P位,P為1表示cache中字有效反之則無效。
指令cache的結構由一cache控制寄存器、cache段起始地址寄存器、匹配標誌P位、cache段字存儲器以及LRU替換堆棧構成,cache控制寄存器用於控制或表示cache的狀態,cache段起始地址寄存器用於存儲指令地址的段地址,匹配標誌P位用於標識是否有一個段內字已經對準,cache段字存儲器用於存儲指令,LRU替換堆棧用於記錄cache段替換的順序。
如圖2所示,當請求外部存儲器給出指令字時,會出現兩種情況,cache命中或cache未命中,如果cache命中,從cache中讀出指令,該分段號壓入LRU替換堆棧的頂部,配置相應的P標記;如果cache未命中,存在兩種情況第一種情況是cache段起始地址寄存器與該指令地址相匹配,但沒有設置相應的匹配標誌P位,此時同時進行如下操作從存儲器中讀出指令並拷貝到cache,將該分段號壓入LRU替換堆棧的頂部,配置相應的匹配標誌P位;第二種情況是cache段起始地址寄存器與指令地址不匹配,此時同時進行如下操作從LRU替換堆棧中選擇將被替換的分段號,該段中的所有匹配標誌P位清除,將指令的地址的相應位寬值載到替換的分段的cache段起始地址寄存器中,取得指令並拷貝到cache並將P標誌置位,將替換的分段號壓入LRU替換堆棧的棧頂。
LRU替換堆棧用於確定兩段中的哪段是最近最少使用。每次訪問一段時,分段號離開LRU堆棧並被推進到LRU替換堆棧的頂部。因此,堆棧頂部的序號是最近最多使用的分段號,堆棧底部的序號是最近最少使用的分段號,復位時,LRU堆棧用0初始化頂部和用1初始化低部。
如圖3所示,本發明的LRU的替換堆棧結構有效位CE(cache enable)和讀信號位R(Read)經過與門AND_1,輸出與復位RESET或非,經或非門NOR_2,輸出到傳輸門T1的控制端,NOR_2的輸出經反向器INV_1連接到T1的互補控制端,時鐘CLK1經T1後連接到與門And_2的一個輸入端,Reset和SSA0(段0)經或門or_1的輸出和Reset和SSA1(段1)經或非門Nor_1的輸出連接到與非門Nand_1,輸出連到與門And_2,與門And_2的輸出連接到反向器INV_2,輸出連接到反向器INV_3和傳輸門T3。反向器INV_3的輸出為MRU_SN(近期使用最多的段號),同時連接傳輸門T2。傳輸門T2的輸出連接到反向器INV_2;傳輸門T3的輸出為LRU_SN(近期使用最少的段號),傳輸門T2和T3的控制端都接CLK2,互補控制信號接CLK2經反向器INV_1的輸出。
cache控制寄存器有3位(1)清cache位CC,當CC=1,使Cache中的所有通道無效。寫入cache後此位被置為0,復位時該位置為0。(2)cache有效位CE,當CE=1,使能cache,允許依照LRU算法使用cache;當CE=0,禁止cache,可以防止cache被更新修改;復位時該位置0。(3)凍結Cache位CF,當CF=1凍結cache和LRU替換堆棧的操作。如果出現CE=1並且CF=1時,允許從cache中讀取但不允許修改cache。當CF=1或0時,允許cache清除(CC=1),復位時CF位設為0。
當請求外部存儲器給出指令時,指令cache的工作流程如圖2所示,即當請求外部存儲器給出指令字時,會出現兩種情況,cache命中或cache未命中。如果cache命中,從cache中讀出指令;該分段號壓入LRU替換堆棧的頂部;配置相應的P標記。如果cache未命中,存在兩種情況第一種情況,是cache段始地址寄存器與指令地址相匹配,但沒有設置相應的匹配標誌P位,此時同時進行3個操作,從存儲器中讀出指令並拷貝到Cache,該分段號壓入LRU替換堆棧的頂部,配置相應的匹配標誌P位;第二種情況,是caohe段起始地址寄存器與指令地址不匹配,此時同時進行4個操作,從LRU替換堆棧中選擇將被替換的分段號,該段中的32個匹配標誌P位清除,將請求指令的19位高地址載到LRU替換堆棧的LRU_SN信號表示的分段的cache段起始地址寄存器中,取得指令並拷貝到cache並將P標誌置位,將替換的分段號壓入LRU替換堆棧的棧頂。
權利要求
1.一種片上指令cache的實現方法,其特徵在於指令cache的結構由一cache控制寄存器、cache段起始地址寄存器、匹配標誌P位、cache段字存儲器以及LRU替換堆棧構成,cache控制寄存器用於控制或表示cache的狀態,cache段起始地址寄存器用於存儲指令地址的段地址,匹配標誌P位用於標識是否有一個段內字已經對準,cache段字存儲器用於存儲指令,LRU替換堆棧用於記錄cache段替換的順序;當請求外部存儲器給出指令字時,會出現兩種情況,cache命中或cache未命中,如果cache命中,從cache中讀出指令,該分段號壓入LRU替換堆棧的頂部,配置相應的P標記;如果cache未命中,存在兩種情況第一種情況是cache段起始地址寄存器與該指令地址相匹配,但沒有設置相應的匹配標誌P位,此時同時進行如下操作從存儲器中讀出指令並拷貝到cache,將該分段號壓入LRU替換堆棧的頂部,配置相應的匹配標誌P位;第二種情況是cache段起始地址寄存器與指令地址不匹配,此時同時進行如下操作從LRU替換堆棧中選擇將被替換的分段號,該段中的所有匹配標誌P位清除,將指令的地址的相應位寬的值載到替換的分段的cache段始地址寄存器中,取得指令並拷貝到cache並將P標誌置位,將替換的分段號壓入LRU替換堆棧的棧頂。
2.根據權利要求
1所述的一種片上指令cache的實現方法,其特徵在於所述的LRU的替換堆棧結構cache的有效位CE和讀信號位R經過與門AND_1,輸出與復位RESET或非,經或非門NOR_2,輸出到傳輸門T1的控制端,NOR_2的輸出經反向器INV_1連接到T1的互補控制端,CLK1經T1後連接到與門And_2的一個輸入端,Reset和SSA0(段起始地址寄存器0,SSA0)經或門or_1的輸出和Reset和SSA1(段起始地址寄存器1,SSA1)經或非門Nor_1的輸出連接到與非門Nand_1,輸出連到與門And_2,與門And_2的輸出連接到反向器INV_2,輸出連接到反向器INV_3和傳輸門T3,反向器INV_3的輸出為近期使用最多的段號MRU_SN,同時連接傳輸門T2,傳輸門T2的輸出連接到反向器INV_2,傳輸門T3的輸出為近期使用最少的段號LRU_SN,傳輸門T2和T3的控制端都接時鐘CLK2,互補控制信號接CLK2經反向器INV_1的輸出。
3.根據權利要求
1所述的一種片上指令cache的實現方法,其特徵在於所述的cache控制寄存器有3位,(1)清cache位CC,當CC=1,使cache中的所有通道無效,寫入cache後此位被置為0,復位時該位置為0;(2)cache有效位CE,當CE=1,使能cache,允許依照LRU算法使用cache,當CE=0,禁止cache,防止cache被更新修改,復位時該位置0;(3)凍結cache位CF,當CF=1凍結cache和LRU替換堆棧的操作,如果出現CE=1,且CF=1時,允許從cache中讀取但不允許修改cache;當CF=1或0時,允許cache清除(CC=1),復位時CF位設為0。
專利摘要
一種片上指令cache的實現方法,指令cache的結構由cache控制寄存器、cache段起始地址寄存器、匹配標誌P位、cache段字存儲器以及LRU替換堆棧等組成。本發明特點在於,片上指令cache結構簡單,面積小,功耗低,便於在晶片上實現,根據本發明的片上指令cache的結構而設計的工作流程簡單,與其它功能部件的時序配合容易,提高了指令cache工作的可靠性,採用硬體替換堆棧選擇替換段號,避免了軟體判斷,提高了指令cache的工作速度。
文檔編號G06F12/12GK1996268SQ200610169724
公開日2007年7月11日 申請日期2006年12月28日
發明者車德亮, 黃瑋, 權海洋 申請人:北京時代民芯科技有限公司導出引文BiBTeX, EndNote, RefMan