嵌入式處理器高速協處理器接口的製作方法
2023-05-18 19:22:06 1
專利名稱:嵌入式處理器高速協處理器接口的製作方法
技術領域:
本發明涉及一種嵌入式處理器的協處理器接口。
背景技術:
協處理器為與CPU協同工作而設計,該處理單元與CPU —起使
用來承擔通常由後者執行的運算。通常,協處理器功能在硬體中實現以替代幾種軟體指令。通過減少多種代碼指令為單一指令,以及在硬
件中直接實現指令的方式,從而實現代碼加速。協處理器與CPU之間
的數據通信成為影響嵌入式系統性能的一個重要因素。協處理器與
CPU的連接有三種基本的形式與CPU總線連接的、與I/O連接的和指令流水線連接(Instruction Pipeline Connection)。此外,還存在一些這些形式的混合形式。訪問協處理器通常需要專門的協處理器指令,用以控制協處理器的讀寫和運算操作。由於協處理器通常運算速度較CPU慢,則協處理器指令的執行會影響到CPU流水線的連續性,造成流水線停頓;協處理器與CPU時鐘不同步也會影響協處理器指令執行的速度;當掛載多個協處理器時,多個設備間的協調策略和切換方式也影響著CPU指令執行的連續性。這些都成為設計協處理器接口需要仔細考慮的重要因素。
發明內容
為了克服已有的嵌入式處理器的協處理器接口的數據傳輸速度較慢、削弱了處理器的性能的不足,本發明提供一種提高CPU和協處理器之間的數據傳輸速度、提升了處理器的性能的嵌入式處理器高速協處理器接口。
本發明解決其技術問題所採用的技術方案是
一種嵌入式處理器高速協處理器接口 ,包括依次連接的第一級流水線、第二級流水線和第三級流水線,第一級流水線包括協處理器保留棧和指令緩衝器,協處理器接口與外部協處理器數據交互狀態時緩存至多兩條協處理器指令,從保留棧和指令緩衝器中選取當前可執行的協處理器指令發送至下一級流水線;第二級流水線包括控制邏輯,產生相應的協處理器選擇與讀寫信號,並進行數據通信,當協處理器的數據讀寫操作完成之後,將得到的結果發送至下一級流水線;第三級流水線向嵌入式處理器發起數據回寫請求,並通過通用數據總線將結果返回給嵌入式處理器。
作為優選的一種方案所述高速協處理器接口還包括協處理器指令定義單元,用於定義協處理器選擇指令、協處理器讀數據指令和協處理器寫數據指令;其中,協處理器選擇指令從多個協處理器中選中其中一個,協處理器讀數據指令從指定的協處理器寄存器中讀取數據並寫入到指定的CPU通用寄存器中,協處理器寫數據指令向選中的協處理器寫入既定數據,等待協處理器對這些數據進行處理。
進一步,所述高速協處理器接口還包括時鐘邏輯模塊,用於在所述協處理器接口與外部協處理器具有相同的高速時鐘時進行同步工作模式工作;在所述協處理器接口與外部協處理器時鐘頻率不同步時進行異步工作模式工作,時鐘同步模塊控制協處理器和CPU之間的數據同步傳輸。再進一步,設定協處理器寄存器相應的控制位來選擇阻塞和非阻塞兩種指令執行方式,其中,指令阻塞模式通過順序執行協處理器指令,對提交的協處理器指令發送至協處理器接口的後級流水線進行指令執行,沒有提交的指令會阻塞在協處理器接口的第一級流水線上;指令非阻塞模式允許協處理器指令亂序執行,所有的協處理器指令發送至協處理器接口的後級流水線執行。
更進一步,當選中的協處理器在執行過程中出現異常時,通過協處理器接口返回給嵌入式微處理器,嵌入式微處理器根據返回的異常向量進入對應的異常服務程序。
所述高速協處理器接口支持至多16個不同的協處理器,通過解碼
所述協處理器選擇指令選中相應的協處理器,後面的協處理器數據讀寫指令的操作是與當前所選的協處理器進行交互。
所述的高速協處理器接口還包括動態低功耗控制邏輯模塊,用於在沒有新的協處理器指令並且協處理器接口處於空閒狀態時關閉模塊時鐘。
本發明的技術構思為採用流水線設計和專用指令,結合時鐘同步技術、動態切換技術和低功耗技術,實現了協處理器和嵌入式微處理器之間的高速數據通信。
本發明的有益效果主要表現在1)三級流水線設計的協處理器接口,將執行時延分布在三級流水線中,實現了 CPU與協處理器之間的數據高速傳輸;
2) 三種協處理器專用指令,簡單有效的實現了對協處理器的控制;
3) 對同步接口和異步接口兩種工作模式的兼容,擴大了處理器的適用範圍;
4)流水線執行方式和動態切換技術,實現了各協處理器之間的並
行執行,有效提高了處理器的性能。
圖1是高速協處理器接口三級流水線結構示意圖。
圖2是高速協處理器接口與各協處理器間的連接方式的示意圖。
具體實施例方式
下面結合附圖對本發明作進一步描述。
參照圖1和圖2, 一種嵌入式處理器高速協處理器接口,包括依次連接的第一級流水線、第二級流水線和第三級流水線,第一級流水線包括協處理器保留棧和指令緩衝器,協處理器接口與外部協處理器數據交互狀態時緩存至多兩條協處理器指令,從保留棧和指令緩衝器中選取當前可執行的協處理器指令發送至下一級流水線;第二級流水線包括控制邏輯,產生相應的協處理器選擇與讀寫信號,並進行數據通信,當協處理器的數據讀寫操作完成之後,將得到的結果發送至下一級流水線;
第三級流水線向嵌入式處理器發起數據回寫請求,並通過通用數據總線將結果返回給嵌入式處理器。
所述高速協處理器接口還包括協處理器指令定義單元,用於定義協處理器選擇指令、協處理器讀數據指令和協處理器寫數據指令;其中,協處理器選擇指令從多個協處理器中選中其中一個,協處理器讀數據指令從指定的協處理器寄存器中讀取數據並寫入到指定的CPU通用寄存器中,協處理器寫數據指令向選中的協處理器寫入既定數據,等待協處理器對這些數據進行處理。
所述高速協處理器接口還包括時鐘邏輯模塊,用於在所述協處理器接口與外部協處理器具有相同的高速時鐘時進行同步工作模式工作;在所述協處理器接口與外部協處理器時鐘頻率不同步時進行異步工作模式工作,時鐘同步模塊控制協處理器和CPU之間的數據同步傳輸。
所述的高速協處理器接口還包括動態低功耗控制邏輯模塊,用於在沒有新的協處理器指令並且協處理器接口處於空閒狀態時關閉模塊時鐘。
本實施例的嵌入式處理器高速協處理器接口 ,設計分為三級流水線,如圖1所示。高速協處理器接口在CPU流水線中處於寄存器級
(RF)的下級,即與CPU執行級(EX)同級。高速協處理器接口流水線分為EX1、 EX2、 EX3三級,EX1級復用了處理器RF-EX級流水線寄存器作為協處理器接口的保留棧,並設有指令緩衝器(instructionbuffer),用於緩存協處理器指令,該緩衝器和保留棧使協處理器接口處於與外部協處理器數據交互狀態時可以緩存至多兩條協處理器指令,減少了CPU前級流水線的停頓,提升了CPU的性能。EX1流水線級的控制邏輯從保留棧和指令緩衝器中選取當前可執行的協處理器指令發送至下一級流水線。EX2流水線產生相應的協處理器選擇與讀寫信號,並進行數據通信, 一旦協處理器的數據讀寫操作完成之後,EX2級流水線將得到的結果發送至下一級流水線;EX3級向CPU發起數據回寫請求,並通過通用數據總線(common data bus)將結果返回給CPU,實現兩者之間的協同工作。動態低功耗控制邏輯,用於在沒有新的協處理器指令並且協處理器接口處於空閒狀態時關閉模塊時鐘,降低非工作狀態下的無效功耗。嵌入式處理器高速協處理器接口至多可以掛載16個不同的協處理器,如圖2所示,通過協處理器選擇指令選擇當前與CPU進行數據交互的協處理器。具體執行方式如下協處理器選擇指令發送至EX2
級,通過EX2級的控制邏輯對指令進行解碼,根據解碼結果從至多16個協處理器中選中一個,與其進行數據交互。通過不同的協處理器選擇指令可以實現協處理器間的動態切換。
在原有CPU指令架構的基礎上,在閒置的指令空間中擴展了三條專用的協處理器指令,分別為協處理器選擇指令、協處理器讀數據指令和協處理器寫數據指令。高速協處理器接口可擴展連接16個協處理器,而協處理器選擇指令用於從至多16個協處理器中選中其中一個。協處理器讀數據指令負責從指定的協處理器寄存器中讀取數據並寫入到指定的CPU通用寄存器中,而協處理器寫數據指令則負責向選中的協處理器寫入既定數據,等待協處理器對這些數據進行處理。這三種指令既有效滿足了 CPU與協處理器之間的數據通信需求,也充分利用了閒置的指令空間,提升了 CPU的擴展性能。
協處理器接口既可使用與外部協處理器相同的高速時鐘進行工作(同步工作模式),也可在與外部協處理器時鐘頻率不同步的模式下工作,即異步工作模式,在該模式下,高速協處理器接口通過時鐘同步邏輯模塊實現協處理器和CPU之間的數據同步傳輸。
應用程式可以設定協處理器寄存器相應的控制位來選擇阻塞和非阻塞兩種指令執行方式,其中指令阻塞模式通過順序執行協處理器指令,實現了異常精確,在該模式下,只有提交的協處理器指令才能發 送至協處理器接口的後級流水線進行指令執行,沒有提交的指令會阻 塞在協處理器接口的EX1級流水線上,導致流水線停頓;而指令非阻
塞模式允許協處理器指令亂序執行,即異常非精確模式,在該模式下, 所有的協處理器指令都可以發送至協處理器接口的後級流水線執行, 而不論它們是否已被提交,因此該模式不會造成協處理器接口流水線 的停頓,實現了數據的高速傳輸。
當選中的協處理器在執行過程中出現異常時,該異常會通過協處 理器接口及時返回給CPU, CPU則根據返回的異常向量進入對應的異 常服務程序。
權利要求
1、一種嵌入式處理器高速協處理器接口,其特徵在於所述高速協處理器接口包括依次連接的第一級流水線、第二級流水線和第三級流水線,第一級流水線包括協處理器保留棧和指令緩衝器,協處理器接口與外部協處理器數據交互狀態時緩存至多兩條協處理器指令,從保留棧和指令緩衝器中選取當前可執行的協處理器指令發送至下一級流水線;第二級流水線包括控制邏輯,產生相應的協處理器選擇與讀寫信號,並進行數據通信,當協處理器的數據讀寫操作完成之後,將得到的結果發送至下一級流水線;第三級流水線向嵌入式處理器發起數據回寫請求,並通過通用數據總線將結果返回給嵌入式處理器。
2、 如權利要求1所述的嵌入式處理器高速協處理器接口,其特徵在於-所述高速協處理器接口還包括協處理器指令定義單元,用於定義協處 理器選擇指令、協處理器讀數據指令和協處理器寫數據指令;其中, 協處理器選擇指令從多個協處理器中選中其中 一個,協處理器讀數據 指令從指定的協處理器寄存器中讀取數據並寫入到指定的CPU通用 寄存器中,協處理器寫數據指令向選中的協處理器寫入既定數據,等 待協處理器對這些數據進行處理。
3、 如權利要求1或2所述的嵌入式處理器高速協處理器接口,其特徵 在於所述高速協處理器接口還包括時鐘邏輯模塊,用於在所述協處理器接口與外部協處理器具有相同的 高速時鐘時進行同步工作模式工作;在所述協處理器接口與外部協處理器時鐘頻率不同步時進行異步工作模式工作,時鐘同步模塊控制協 處理器和CPU之間的數據同步傳輸。
4、 如權利要求1或2所述的嵌入式處理器高速協處理器接口,其特徵 在於設定協處理器寄存器相應的控制位來選擇阻塞和非阻塞兩種指 令執行方式,其中,指令阻塞模式通過順序執行協處理器指令,對提 交的協處理器指令發送至協處理器接口的後級流水線進行指令執行, 沒有提交的指令會阻塞在協處理器接口的第一級流水線上;指令非阻 塞模式允許協處理器指令亂序執行,所有的協處理器指令發送至協處 理器接口的後級流水線執行。
5、 如權利要求3所述的嵌入式處理器高速協處理器接口,其特徵在於 設定協處理器寄存器相應的控制位來選擇阻塞和非阻塞兩種指令執行 方式,其中,指令阻塞模式通過順序執行協處理器指令,對提交的協 處理器指令發送至協處理器接口的後級流水線進行指令執行,沒有提 交的指令會阻塞在協處理器接口的第一級流水線上;指令非阻塞模式允許協處理器指令亂序執行,所有的協處理器指令發送至協處理器接 口的後級流水線執行。
6、 如權利要求5所述的嵌入式處理器高速協處理器接口,其特徵在於當選中的協處理器在執行過程中出現異常時,通過協處理器接口返回 給嵌入式微處理器,嵌入式微處理器根據返回的異常向量進入對應的 異常服務程序。
7、 如權利要求2所述的嵌入式處理器高速協處理器接口 ,其特徵在於所述高速協處理器接口支持至多16個不同的協處理器,通過解碼所述協處理器選擇指令選中相應的協處理器,後面的協處理器數據讀寫指令的操作是與當前所選的協處理器進行交互。
8、如權利要求2所述的嵌入式處理器高速協處理器接口 ,其特徵在於 所述的高速協處理器接口還包括動態低功耗控制邏輯模塊,用於在沒有新的協處理器指令並且協處理 器接口處於空閒狀態時關閉模塊時鐘。
全文摘要
一種嵌入式處理器高速協處理器接口,包括依次連接的第一級流水線、第二級流水線和第三級流水線,第一級流水線包括協處理器保留棧和指令緩衝器,協處理器接口與外部協處理器數據交互狀態時緩存至多兩條協處理器指令,從保留棧和指令緩衝器中選取當前可執行的協處理器指令發送至下一級流水線;第二級流水線包括控制邏輯,產生相應的協處理器選擇與讀寫信號,並進行數據通信,當協處理器的數據讀寫操作完成之後,將得到的結果發送至下一級流水線;第三級流水線向嵌入式處理器發起數據回寫請求,並通過通用數據總線將結果返回給嵌入式處理器。本發明提高了CPU和協處理器之間的數據傳輸速度、提升了處理器的性能。
文檔編號G06F9/38GK101526897SQ20091009578
公開日2009年9月9日 申請日期2009年1月22日 優先權日2009年1月22日
發明者嚴曉浪, 磊 劉, 孟建熠, 葛海通 申請人:杭州中天微系統有限公司