嵌入式處理器的加載/存儲單元的製作方法
2023-05-18 19:22:11 1
專利名稱:嵌入式處理器的加載/存儲單元的製作方法
技術領域:
本發明涉及一種嵌入式處理器的加載/存儲單元。
背景技術:
近年來隨著高性能嵌入式處理器的發展,為了提高內部邏輯元件 的利用率以提高整個處理器的性能,通常會採用多指令發射、亂序執 行等各種方法。現在普遍使用的一些超標量處理器通常能夠在一個指 令周期內並發執行多條指令。處理器從指令高速緩存中預取了一批指 令後,就會分析出那些沒有關聯性可以並行執行的指令,然後發射到 幾個獨立的執行單元進行並行執行。
通常來說加載/存儲指令(由加載/存儲單元執行)需要多個指令 周期,而一般的算術指令通常在一個指令周期執行完成,所以數據的 加載/存儲指令成為了限制嵌入式處理器性能提升的瓶頸。為了解決這 個矛盾,處理器設計的先驅們提出了採用存儲器層次結構的想法,其 依據是程序訪問的局部性原理和內存技術的性能價格比原則。通過在 嵌入式處理器和存儲器之間設置高速緩存的層次結構來提升嵌入式處 理器的整體性能。
在過去的十幾年中,無數科學家和工程師為此做了大量的工作, 目標就是為了減少訪問高速緩存的時間。在他們的不懈努力下,高速 緩存的訪問時間已經減少到了接近一個時鐘周期。也就是說,只要不 發生高速緩存的訪問缺失,執行加載/存儲指令也可以在一個指令內完成。但是由於高速緩存訪問缺失的存在, 一旦發生訪問缺失,數
據的加載/存儲需要通過外部總線從片外存儲器中去加載/存儲數據,
這個過程需要幾個甚至幾十個指令周期。而由於當前主流的嵌入式高
性能處理器普遍採用流水線結構,前續指令的停頓會阻塞整條流水線
的正常執行。
發明內容
為了克服已有的嵌入式處理器的加載/存儲單元由於高速緩存的 缺失,在長延時的存儲器訪問時阻塞流水線,削弱了處理器性能的不 足,本發明提供一種在發生高速緩存訪問缺失時,不會阻塞流水線, 提升處理器性能的嵌入式處理器的加載/存儲單元。
本發明解決其技術問題所採用的技術方案是
一種嵌入式處理器的加載/存儲單元,在所述加載/存儲單元中, 採用全流水線方式讀寫指令對片上高速緩存進行訪問,如果前序指令 發生訪問缺失時,將引起訪問缺失的指令保存到專用訪問缺失緩衝器 中,並釋放流水線資源,後續指令繼續訪問高速緩存。
作為優選的一種方案設置獨立的片外更新緩衝器緩存片外存儲 器的寫操作,將片外存儲器寫操作的快速退休。
作為優選的另一種方案設置獨立的片上更新緩衝器緩存片上高 速緩存更新操作,將高速緩存寫操作的快速退休。
作為優選的再一種技術方案:所述的片上更新緩衝器的更新請求, 在高速緩存空閒的間隙進行更新片上高速緩存操作。
進一步,將片上更新緩衝器的更新請求設置為優先級最低的請求, 當其他訪問片上高速緩存的模塊出現訪問間隙時,片上更新緩衝器獲得更新片上高速緩存的權限。
作為優選的再另一種方案所述的專用訪問缺失緩衝器支持存儲 多條高速緩存訪問指令的缺失請求,同時將造成高速緩存訪問缺失的 指令從流水線上剔除。
再進一歩,全流水方式實現讀寫指令對片上高速緩存的訪問的過 程為通過將讀寫指令訪問片上高速緩存劃分為若干個步驟,當前序 指令在執行的時候,立刻啟動後序指令的操作步驟。
更進一步,執行讀取高速緩存數據的指令,需要經過數據存儲地 址計算階段、高速緩存訪問階段和讀取數據處理階段,每一條讀指令 經過流水線的三拍完成數據的讀取工作並返回所讀取到底正確數據; 執行高速緩存寫入操作的指令,經過數據存儲地址計算階段和高速緩 存訪問階段。
本發明的技術構思為 一種嵌入式處理器的加載/存儲單元的非阻 塞流水線技術,使得前續加載/存儲指令在發生高速緩存訪問缺失,造 成長延時的存儲器訪問時,後面的加載/存儲指令仍然可以正常執行, 更新高速緩存。
本發明的有益效果主要表現在在發生高速緩存訪問缺失時,不 會阻塞流水線,可提升處理器性能達5%。
圖1是一種非阻塞的片上高速緩存訪問機制的流水線劃分圖。 圖2是一種非阻塞的片上高速緩存訪問機制的硬體結構圖。
具體實施例方式
下面結合附圖對本發明作進一步描述。參照圖1和圖2, 一種嵌入式處理器的加載/存儲單元,在所述加 載/存儲單元中,採用全流水線方式讀寫指令對片上高速緩存進行訪
問,如果前序指令發生訪問缺失時,將引起訪問缺失的指令保存到專 用訪問缺失緩衝器中,並釋放流水線資源,後續指令繼續訪問高速緩 存。
設置獨立的片外更新緩衝器緩存片外存儲器的寫操作,將片外存
儲器寫操作的快速退休;設置獨立的片上更新緩衝器緩存片上高速緩
存更新操作,將高速緩存寫操作的快速退休。
本實施例採用全流水方式實現讀寫指令對片上高速緩存的訪問 全流水方式實現讀寫指令對片上高速緩存的訪問指的是,每次對片上 高速緩存的訪問操作,需要經過多個操作步驟(多個時鐘周期),才能 實現讀寫指令對片上高速緩存所進行的訪問操作。具體來說,執行讀 取高速緩存數據的指令,需要經過三個操作步驟(數據存儲地址計算 階段,高速緩存訪問階段,讀取數據處理階段),如圖一所示。每一條 讀指令,經過流水線的三拍,完成數據的讀取工作並返回所讀取到底 正確數據。而執行高速緩存寫入操作的指令,只需要經過兩個操作步 驟(數據存儲地址計算階段,高速緩存訪問階段),提前完成對高速緩 存的數據的寫入指令的操作。
所述的當前序指令發生訪問缺失時,不阻塞流水線,後序指令繼 續訪問高速緩存,實現在前序指令訪問缺失下的後序指令不停頓地對 高速緩存的訪問當程序指令中的前續指令發生高速緩存訪問缺失時, 前續指令會被保存到專門的緩衝器中,並會被從流水線上剔除。這樣 流水線不會出現阻塞,後續訪問高速緩存的指令自然就不會發生停頓,按照正常的指令執行步驟執行,對高速緩存進行讀寫訪問。
所述的當出現高速緩存訪問缺失時,將引起訪問缺失的指令保存 到專用訪問缺失緩衝器中,並釋放流水線資源當發生高速緩存訪問 缺失時,為了保持流水線運行的通暢,採用專門的訪問缺失緩衝器來 緩存造成高速緩存訪問缺失的指令(如圖2所示),並把這條指令從流 水線上剔除。而訪問缺失緩衝器則負責在高速緩存訪問缺失情況下, 從片外內存裝載數據回填高速緩存,並完成讀取數據的指令。
所述的訪問缺失緩衝器支持多次連續高速緩存訪問缺失請求訪 問缺失緩衝器由多個表項組成,用來存儲當發生高速緩存訪問缺失時 的數據讀取指令。當多條數據讀取指令發生連續高速緩存訪問缺失時, 這些指令會以先進先出的形式,被保存到訪問缺失緩衝器中,同時這 些高速緩存訪問缺失指令都將被從流水線上剔除,以保證流水線的通 暢。
所述的採用獨立的片外更新緩衝器緩存片外存儲器的寫操作,實 現片外存儲器寫操作的快速退休,消除因總線延時產生的流水線阻塞 如圖2所示,片外更新緩衝器由多個表項組成,專門用於緩存對片外 存儲器的寫操作指令。由於片外更新緩衝器將流水線和數據總線隔離, 避免了因數據總線的延時而造成的流水線阻塞。當對片外存儲器的寫 操作指令存儲到片外更新緩衝器後,該指令會快速退休。而片外更新 緩衝器則負責通過數據總線將數據寫出到片外內存中。
所述的採用獨立的片上更新緩衝器緩存片上高速緩存更新操作, 實現高速緩存寫操作的快速退休如圖2所示,獨立的片上更新緩衝 器,是由多個表項組成,專門用於緩存對片上高速緩存的寫操作指令。將片上高速緩存的寫操作指令存儲到片上更新緩衝器後,該指令會快 速退休。同時片上高速緩存更新緩衝器負責將需要更新的數據寫入到 片上高速緩存中。
所述的片上更新緩衝器的更新請求,僅在數據讀寫指令訪問片上 高速緩存的間隙更新片上高速緩存,解決由於訪問片上高速緩存的資 源衝突所造成的流水線阻塞片上更新緩衝器是負責更新片上高速緩 存數據的模塊,它的更新請求被設計成各種訪問片上高速緩存的請求 中優先級最低的請求。只有在其他訪問片上高速緩存的請求出現訪問 間隙時,片上更新緩衝器才能獲得更新片上高速緩存的機會,這樣就 解除了由於多個模塊競爭訪問片上高速緩存,出現的資源衝突所造成 的流水線阻塞。
權利要求
1、一種嵌入式處理器的加載/存儲單元,在所述加載/存儲單元中,採用全流水線方式實現讀寫指令對片上高速緩存進行訪問,其特徵在於如果前序指令發生訪問缺失時,將引起訪問缺失的指令保存到專用訪問缺失緩衝器中,並釋放流水線資源,後續指令繼續訪問高速緩存。
2、 如權利要求l所述的嵌入式處理器的加載/存儲單元,其特徵在於 設置獨立的片外更新緩衝器緩存片外存儲器的寫操作,將片外存儲器 寫操作的快速退休。
3、 如權利要求1所述的嵌入式處理器的加載/存儲單元,其特徵在於 設置獨立的片上更新緩衝器緩存片上高速緩存更新操作,將高速緩存 寫操作的快速退休。
4、 如權利要求2所述的嵌入式處理器的加載/存儲單元,其特徵在於 設置獨立的片上更新緩衝器緩存片上高速緩存更新操作,將高速緩存 寫操作的快速退休。
5、 如權利要求l一4之一所述的嵌入式處理器的加載/存儲單元,其特 徵在於所述的片上更新緩衝器的更新請求,在高速緩存空閒的間隙 進行更新片上高速緩存操作。
6、 如權利要求l一4之一所述的嵌入式處理器的加載/存儲單元,其特 徵在於將片上更新緩衝器的更新請求設置為優先級最低的請求,當 其他訪問片上高速緩存的模塊出現訪問間隙時,片上更新緩衝器獲得 更新片上高速緩存的權限。
7、 如權利要求l一4之一所述的嵌入式處理器的加載/存儲單元,其特 徵在於所述的專用訪問缺失緩衝器支持存儲多條高速緩存訪問指令的缺失請求,同時將造成高速緩存訪問缺失的指令從流水線上剔除。
8、 如權利要求l一4之一所述的嵌入式處理器的加載/存儲單元,其特 徵在於全流水方式實現讀寫指令對片上高速緩存的訪問的過程為 通過將讀寫指令訪問片上高速緩存劃分為若干個步驟,當前序指令在 執行的時候,立刻啟動後序指令的操作步驟。
9、 如權利要求7所述的嵌入式處理器的加載/存儲單元,其特徵在於 執行讀取高速緩存數據的指令,需要經過數據存儲地址計算階段、高 速緩存訪問階段和讀取數據處理階段,每一條讀指令經過流水線的三 拍完成數據的讀取工作並返回所讀取到的正確數據;執行高速緩存寫 入操作的指令,經過數據存儲地址計算階段和高速緩存訪問階段。
10、 如權利要求7所述的嵌入式處理器的加載/存儲單元,其特徵在於 全流水方式實現讀寫指令對片上高速緩存的訪問的過程為通過將讀 寫指令訪問片上高速緩存劃分為若干個步驟,當前序指令在執行的時 候,立刻啟動後序指令的操作步驟。
全文摘要
一種嵌入式處理器的加載/存儲單元,在所述加載/存儲單元中,採用全流水線方式讀寫指令對片上高速緩存進行訪問,如果前序指令發生訪問缺失時,將引起訪問缺失的指令保存到專用訪問缺失緩衝器中,並釋放流水線資源,後續指令繼續訪問高速緩存;設置獨立的片外更新緩衝器緩存片外存儲器的寫操作,將片外存儲器寫操作的快速退休;設置獨立的片上更新緩衝器緩存片上高速緩存更新操作,將高速緩存寫操作的快速退休。本發明在發生高速緩存訪問缺失時,不會阻塞流水線,提升了處理器性能。
文檔編號G06F9/38GK101526896SQ20091009578
公開日2009年9月9日 申請日期2009年1月22日 優先權日2009年1月22日
發明者丁永林, 嚴曉浪, 孟建熠, 葛海通 申請人:杭州中天微系統有限公司