• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種高速緩存以及從高速緩存中讀取數據的方法和裝置制造方法及圖紙

    技術編號:14211650 閱讀:73 留言:0更新日期:2016-12-18 21:00
    本發明專利技術公開了高速緩存以及從高速緩存中讀取數據的方法和裝置,高速緩存包括多個高速緩存行以及位于各個高速緩存行末尾的擴展存儲空間,位于上一高速緩存行末尾的擴展存儲空間中存儲有位于下一高速緩存行開頭的預設長度的數據,所述方法包括:根據主存地址中的索引域的取值,確定對應的高速緩存行,讀取與確定出的高速緩存行對應的標簽信息;當讀取到的標簽信息與主存地址中的標簽域的取值相等時,根據主存地址中的偏移域的取值,從確定出的高速緩存行,或者確定出的高速緩存行以及位于高速緩存行末尾的擴展存儲空間中讀取數據,并將讀取到的數據返回給中央處理器。本發明專利技術避免了取指令錯誤,提高了Cache命中率。

    【技術實現步驟摘要】

    本專利技術涉及計算機存儲技術,尤指一種高速緩存以及從高速緩存中讀取數據的方法和裝置
    技術介紹
    隨著嵌入式系統的發展,嵌入式CPU的主頻不斷提高,經常達到幾百MHz。而囿于工藝水平的局限,存儲器的讀出速度相對較慢。為解決慢速存儲器不能匹配高速CPU的問題,許多高性能的嵌入式CPU內部集成了高速緩存(以下簡稱:Cache),利用程序訪問的局部性原理,將程序中正在使用的部分存放在Cache中,使CPU的訪存操作大多針對Cache進行,使程序的執行速度大大提高。Cache中的最小緩存單位為高速緩存行(以下簡稱:Cache Line),CPU通過程序計數器(Program Counter,以下簡稱:PC)中的主存地址,從Cache Line中獲取將要執行的下一條指令。當CPU執行的指令為定長指令時,PC的跳轉是固定的,每條Cache Line中存放有整數個指令,如圖1所示,每條指令的長度為32bits,PC的跳轉長度為32bits。當CPU執行的指令為非定長指令時,由于指令長度的不確定,PC的跳轉長度也就不確定,如圖2所示,PC很有可能跳轉到Cache Line的末尾,如果Cache Line中位于跳轉位置之后的數據長度小于指令長度,會在程序執行過程中出現取指令錯誤的情況,使系統運行出現異常。為解決上述問題,現有技術通過補位固定值(0或1)或復制擴展的方式,將所有指令的長度擴展成32bits,以避免出現取指令錯誤。然而,由于指令擴展,存儲了大量無用的數據,會造成Cache存儲空間的極大浪費,進而影響Cache效率。例如,某些通用CPU支持16bit/32bit混編指令,將所有16bit指令擴展成32bit后,在多數指令為16bit指令的情況下,會在Cache中存儲大量無用擴展位,導致Cache命中率降低。
    技術實現思路
    為了解決上述技術問題,本專利技術提供了一種高速緩存以及從高速緩存中讀取數據的方法和裝置,能夠提高Cache命中率。為了達到本專利技術目的,本專利技術提供了一種從高速緩存中讀取數據的方法,所述高速緩存包括多個高速緩存行以及位于各個高速緩存行末尾的擴展存儲空間,位于上一高速緩存行末尾的擴展存儲空間中存儲有位于下一高速緩存行開頭的預設長度的數據,所述方法包括:根據主存地址中的索引域的取值,確定對應的高速緩存行,讀取與確定出的高速緩存行對應的標簽信息;當讀取到的標簽信息與主存地址中的標簽域的取值相等時,根據主存地址中的偏移域的取值,從確定出的高速緩存行,或者確定出的高速緩存行以及位于高速緩存行末尾的擴展存儲空間中讀取數據,并將讀取到的數據返回給中央處理器。本專利技術還提供了一種從高速緩存中讀取數據的裝置,包括:讀取模塊,用于根據主存地址中的索引域的取值,從高速緩存中確定對應的高速緩存行,讀取與確定出的高速緩存行對應的標簽信息,所述高速緩存包括多個高速緩存行以及位于各個高速緩存行末尾的擴展存儲空間,位于上一高速緩存行末尾的擴展存儲空間中存儲有位于下一高速緩存行開頭的預設長度的數據;處理模塊,用于在讀取到的標簽信息與主存地址中的標簽域的取值相等時,根據主存地址中的偏移域的取值,從確定出的高速緩存行,或者確定出的高速緩存行以及位于高速緩存行末尾的擴展存儲空間中讀取數據,并將讀取到的數據返回給中央處理器。本專利技術還提供了一種高速緩存,包括多個高速緩存行以及位于各個高速緩存行末尾的擴展存儲空間,位于上一高速緩存行末尾的擴展存儲空間中存儲有位于下一高速緩存行開頭的預設長度的數據。與現有技術相比,本專利技術通過位于Cache Line末尾的擴展存儲空間保存數據,避免了由于數據缺失而導致取指令錯誤的情況,在處理非定長指令時確保了系統正常運行,且同時兼容了定長指令和非定長指令,與現有技術中的將所有指令的長度擴展成32bits的方式相比,減少了對Cache空間的浪費,提高了Cache命中率。進一步地,由于Cache通過標準AHB接口分別與CPU和主存儲器連接,提高了Cache的可移植性以及Cache對不同CPU和主存儲器的適用性。本專利技術的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本專利技術而了解。本專利技術的目的和其他優點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。附圖說明附圖用來提供對本專利技術技術方案的進一步理解,并且構成說明書的一部分,與本申請的實施例一起用于解釋本專利技術的技術方案,并不構成對本專利技術技術方案的限制。圖1為現有技術在取定長指令時的PC跳轉示意圖;圖2為現有技術在取非定長指令時的PC跳轉示意圖;圖3為本專利技術實施例中的CacheLine的結構示意圖;圖4為本專利技術實施例中的一種從高速緩存中讀取數據的方法流程圖;圖5為本專利技術實施例中的Cache的結構示意圖;圖6為本專利技術實施例中的Cache與CPU和主存儲器連接關系示意圖;圖7為本專利技術實施例中的Cache的狀態機示意圖;圖8為本專利技術實施例中的命中Cache時的電路時序波形;圖9為本專利技術實施例中的未命中Cache時的電路時序波形;圖10為本專利技術實施例中的一種從高速緩存中讀取數據的裝置結構示意圖。具體實施方式為使本專利技術的目的、技術方案和優點更加清楚明白,下文中將結合附圖對本專利技術的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。本專利技術實施例中的Cache包括多個Cache Line以及位于各個Cache Line末尾的擴展存儲空間,位于上一Cache Line末尾的擴展存儲空間中存儲有位于下一Cache Line開頭的預設長度的數據。其中,預設長度為CPU支持的最大指令長度減1字節得到的結果,如圖3所示,每條Cache Line的長度為128bits(地址:xx_xx00~xx_xx0f),并在每條Cache Line的末尾增加3bytes的擴展存儲空間(圖3的陰影部分),用于存放下一條Cache Line(地址:xx_xx10~xx_xx1f)的前3bytes數據。如果指令長度是固定的8/16/32bits,每條Cache Line可以存儲確定的16/8/4條指令,不會發生邊界問題。如果指令長度在8/16/32bits之間變化,雖然每條Cache Line存放的指令是不確定的,但通過Cache Line末尾的擴展存儲空間,能夠確保取指令的完整性,不會出現指令的缺失。基于上述Cache的結構,本專利技術提出一種從高速緩存中讀取數據的方法,如圖4所示,包括:步驟401,根據主存地址中的Index域的取值,確定對應的Cache Line,讀取與確定出的Cache Line對應的標簽信息。其中,主存地址保存在PC中,可以劃分為Tag(標簽)域、Index(索引)域和Offset(偏移)域,如圖5所示。Tag域位于主存地址的高位,用于判斷是否命中Cache,Index域用于確定主存地址所對應的Cache Line,Index域的位數取決于Cache Line的個數及組數,Offset域用于確定在Cach本文檔來自技高網
    ...
    一種高速緩存以及從高速緩存中讀取數據的方法和裝置

    【技術保護點】
    一種從高速緩存中讀取數據的方法,其特征在于,所述高速緩存包括多個高速緩存行以及位于各個高速緩存行末尾的擴展存儲空間,位于上一高速緩存行末尾的擴展存儲空間中存儲有位于下一高速緩存行開頭的預設長度的數據,所述方法包括:根據主存地址中的索引域的取值,確定對應的高速緩存行,讀取與確定出的高速緩存行對應的標簽信息;當讀取到的標簽信息與主存地址中的標簽域的取值相等時,根據主存地址中的偏移域的取值,從確定出的高速緩存行,或者確定出的高速緩存行以及位于高速緩存行末尾的擴展存儲空間中讀取數據,并將讀取到的數據返回給中央處理器。

    【技術特征摘要】
    1.一種從高速緩存中讀取數據的方法,其特征在于,所述高速緩存包括多個高速緩存行以及位于各個高速緩存行末尾的擴展存儲空間,位于上一高速緩存行末尾的擴展存儲空間中存儲有位于下一高速緩存行開頭的預設長度的數據,所述方法包括:根據主存地址中的索引域的取值,確定對應的高速緩存行,讀取與確定出的高速緩存行對應的標簽信息;當讀取到的標簽信息與主存地址中的標簽域的取值相等時,根據主存地址中的偏移域的取值,從確定出的高速緩存行,或者確定出的高速緩存行以及位于高速緩存行末尾的擴展存儲空間中讀取數據,并將讀取到的數據返回給中央處理器。2.根據權利要求1所述的方法,其特征在于,所述讀取與確定出的高速緩存行對應的標簽信息之后,還包括:當讀取到的標簽信息與主存地址中的標簽域的取值不相等時,根據主存地址從主存儲器中讀取相應的數據,將讀取到的數據存儲到所述確定出的高速緩存行中,更新與所述確定出的高速緩存行對應的標簽信息,從與所述確定出的高速緩存行相鄰的下一高速緩存行中讀取位于開頭的預設長度的數據,并將讀取到的數據寫入到位于確定出的高速緩存行末尾的擴展存儲空間中。3.根據權利要求1或2所述的方法,其特征在于,所述高速緩存通過標準高級高性能總線AHB接口分別與中央處理器和主存儲器連接。4.根據權利要求1或2所述的方法,其特征在于,所述預設長度為中央處理器支持的最大指令長度減1字節得到的結果。5.一種從高速緩存中讀取數據的裝置,其特征在于,包括:讀取模塊,用于根據主存地址中的索引域的取值,從高速緩存中確定對應的高速緩存行,讀取與確定出的高速緩存行對應的標簽信息,所述高速緩存包括...

    【專利技術屬性】
    技術研發人員:張家樺趙紅敏張祥杉郝曉東
    申請(專利權)人:大唐微電子技術有限公司大唐半導體設計有限公司
    類型:發明
    國別省市:北京;11

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产又爽又黄无码无遮挡在线观看 | 日韩精品无码久久一区二区三| 人妻丰满熟妇岳AV无码区HD| 亚洲av成人无码网站…| 国产精品亚洲а∨无码播放麻豆 | 日韩AV高清无码| 精品少妇人妻av无码久久| 成在人线AV无码免费| 日韩精品无码一区二区三区| 久久久久亚洲精品无码网址| 亚洲午夜无码久久久久软件 | 亚洲精品无码永久在线观看你懂的| 久久精品aⅴ无码中文字字幕重口| 亚洲精品无码国产片| 少妇精品无码一区二区三区 | 熟妇无码乱子成人精品| 亚洲美日韩Av中文字幕无码久久久妻妇 | 亚洲av无码兔费综合| 亚洲av无码潮喷在线观看| 亚洲AV无码乱码在线观看性色扶| 亚洲中文字幕久久精品无码2021| 国产午夜鲁丝无码拍拍| r级无码视频在线观看| 无码精品人妻一区二区三区影院| 无码专区永久免费AV网站| 精品人妻无码区二区三区| 国产精品无码专区| 中文字幕人妻无码一区二区三区| 亚洲免费无码在线| 内射人妻少妇无码一本一道| 无码人妻精品一区二区蜜桃百度 | 日韩av无码久久精品免费| 人妻少妇AV无码一区二区| r级无码视频在线观看| 国产在线观看无码免费视频| 人妻AV中出无码内射| 国产精品多人p群无码| 日韩精品人妻系列无码专区| 精品高潮呻吟99av无码视频| 久久精品无码午夜福利理论片| 久久午夜福利无码1000合集|