基於指令雙發射的高性能低功耗嵌入式處理器的製作方法
2023-05-15 13:13:16
專利名稱:基於指令雙發射的高性能低功耗嵌入式處理器的製作方法
技術領域:
本發明涉及一種嵌入式處理器,尤其是一種高性能低功耗嵌入式 處理器。
背景技術:
嵌入式系統指面向特定應用領域和執行特定任務的計算機系統, 通常由嵌入式處理器、外圍硬體設備、嵌入式作業系統以及用戶的應 用程序等四個部分組成。嵌入式系統無所不在,並已經滲透到國名經
濟的各個角落在消費類電子產品中,如數位相機、DVD播放器和打 印機等;在醫療設備中,如強心劑無節律監視器和強心劑心律調整器 等;在汽車設計中,如燃料加注系統和自動剎閘系統等。嵌入式系統 將在國家信息化戰略中起到至關重要的作用。
嵌入式處理器是嵌入式系統的核心部件。嵌入式處理器負責運行 作業系統以及用戶的應用程式,調度和管理外圍硬體設備,是系統正 常高效運行的硬體基礎。按照數據位的寬度,嵌入式處理器可分為8 位,16位和32位微處理器。目前,8位嵌入式處理器以8051為代表, 主要應用於低端嵌入式應用領域;16位和32位嵌入式處理器應用於 對性能有較高要求的高端嵌入式系統中,包括信息安全、消費類電子、 通信等領域。高端32位嵌入式處理器是未來高性能嵌入式系統發展的 必然要求,並逐漸代替8位、16位嵌入式處理器成為嵌入式領域的主 流處理器。
過去嵌入式處理器性能提高主要依賴運行頻率的提升,流水線技術是處理器頻率提升的核心技術。流水線技術通過將指令運行劃分成 若干的步驟,並將這些步驟分別分配到不同的時鐘周期,這樣每個時 鍾周期僅需完成總工作量的若干分支一,使得硬體電路的時鐘頻率有 極大的提升。流水線每個執行節拍將當前完成的指令送入下個執行節 拍,每個節拍均有指令完成,從而提升了處理器整體吞吐量。過去io 多年,嵌入式處理器的頻率從幾兆赫茲提升到幾百兆赫茲,總體處理 能力有了突飛猛進。但是頻率的提升意味著增加硬體成本和系統功耗, 這對於成本功耗敏感的嵌入式系統往往是不可接受的。因此,僅通過 提升處理器頻率來提高性能無法滿足高端嵌入式應用對於處理器性 能、功耗和成本等多方面的需求。
發明內容
為了克服已有的嵌入式處理器不能兼顧性能和功耗、成本高的不 足,本發明提供一種在低功耗的前提下提高性能、成本低的基於指令 雙發射的高性能低功耗嵌入式處理器。
本發明解決其技術問題所採用的技術方案是
一種基於指令雙發射的高性能低功耗嵌入式處理器,包括 取指單元,用於在單時鐘周期內從所述片上指令存儲器或片外指令存 儲器中預取兩條指令,並送入流水線;
雙路解碼單元,用於在流水線中設置兩個相同的解碼單元,在單時鐘
周期內並行解碼兩條指令;
發射單元,用於將解碼後的兩條指令存放到流水線寄存器,單時鐘周 期並行發射兩條指令,如參與運算的操作數準備完畢,在下一時鐘周
期將其送入執行單元開始執行;如參與運算的操作數未準備完畢,將
操作數未就緒的指令暫時保存至保留站寄存器中並釋放發射窗口,下
6一個時鐘周期,後續指令通過發射窗口進行正常發射; 指令分發執行控制單元,用於根據運算負荷動態調整指令分發,指令 分配邏輯實時監測各執行單元的工作情況,並根據各指令執行單元返
回的信息將當前發射的指令動態分配至空閒的執行單元中; 指令執行單元,用於進行指令的結果的運算;
載入/存儲單元,用於當指令發生載入/存儲操作缺失時,當前載入/ 存儲指令臨時釋放流水線,在專用的回填緩衝區中等待結果從片外載 入,後續載入/存儲指令成功佔用流水線並順利訪問片上數據存儲器和 片外數據存儲器。
作為優選的一種方案在所述指令發射單元中,當前序指令由於
操作數未就緒而暫停執行時,後續發射的指令若操作數準備就緒,先 於前續指令迸入執行單元並開始執行。
作為優選的另一種方案所述嵌入式處理器還包括通用協處理
器接口,用於支持面向各種應用領域的擴展;所述通用協處理器器接
口連接協處理器總線。
進一步,所述片上指令存儲器包括指令高速緩存器,用於實現
對指令讀取的片上高速緩衝;指令高速暫存器,用於提供軟體可配置
的指令緩衝區;片上數據存儲器包括數據高速緩存器,用於實現對 數據讀取的片上高速緩衝;數據高速暫存器,用於提供軟體可配置的 片上數據臨時保存空間。
更進一步,所述嵌入式處理器還包括功耗管理單元,用於實現
從正常模式到待機、關機和休眠三種低功耗模式轉換。
再進一步,在所述指令執行單元中,根據處理器性能的需求的高低,增加或減少相應的執行單元個數。執行單元的接口實現標準化。 本發明的技術構思為提升處理器性能的另一個重要途徑是在保
持頻率不變的情況下,提升處理器並行處理能力,增加處理器每個時
鍾周期能夠處理指令的數目。通過對處理器流水線的改進,允許每個
時鐘周期並行發射多條指令,提高指令級的並行性提升處理器的綜合
處理能力。挖掘處理器並行性提升處理器性能是目前嵌入式處理器創
新的主流思想。流水線的多發射機制是提高處理器性能,同時降低處
理器功耗的重要途徑,也是未來面向高性能嵌入式計算的嵌入式處理
器發展的主要方向。
本發明提出了單周期並行發射和執行兩條指令的嵌入式處理器硬 件架構,創新了流水線多種工作機制,極大的提升了嵌入式處理器的 並行處理能力,實現了嵌入式處理器在性能上的跨越式發展。
本發明的有益效果主要表現在1、在低功耗的前提下提高性能 通過各種高效流水線執行機制的有機組合,基於指令雙發射的高性能 低功耗嵌入式處理器與相同指令集系統的單發射處理器相比,極限性 能提升100°/。,平均性能提升60%左右,可滿足高性能嵌入式計算的
基本需求。通過有效的功耗管理機制,功耗控制在0.4mW/MHz以內; 2、降低了成本。
圖1是指令雙發射嵌入式處理器總體結構框圖。
圖2是取指單元從片上或片外存儲器取指邏輯框圖。 圖3是非阻塞的發射機制的示意圖。 圖4是指令動態分配策略的示意圖。 圖5是處理器工作模式轉換的示意圖。
具體實施例方式
下面結合附圖對本發明作進一步描述。
參照圖1 圖5,一種基於指令雙發射的高性能低功耗嵌入式處理 器,包括
取指單元,用於在單時鐘周期內從所述片上指令存儲器或片外指 令存儲器中預取兩條指令,並送入流水線;
雙路解碼單元,用於在流水線中設置兩個相同的解碼單元,在單
時鐘周期內並行解碼兩條指令;
發射單元,用於將解碼後的兩條指令存放到流水線寄存器,單時 鍾周期並行發射兩條指令,如參與運算的操作數準備完畢,在下一時
鍾周期將其送入執行單元開始執行;如參與運算的操作數未準備完畢, 將操作數未就緒的指令暫時保存至保留站寄存器中並釋放發射窗口, 下一個時鐘周期,後續指令通過發射窗口進行正常發射;
指令分發執行控制單元,用於根據運算負荷動態調整指令分發, 指令分配邏輯實時監測各執行單元的工作情況,並根據各指令執行單 元返回的信息將當前發射的指令動態分配至空閒的執行單元中;
指令執行單元,用於進行指令的結果的運算,執行單元的接口實 現標準化,可根據處理器性能的需求的高低,增加或減少相應的執行 單元個數;
載入/存儲單元,用於當指令發生載入/存儲操作缺失時,當前載 入/存儲指令臨時釋放流水線,在專用的回填緩衝區中等待結果從片外 載入,後續載入/存儲指令成功佔用流水線並順利訪問片上數據存儲器 和片外數據存儲器。在所述指令發射單元中,當前序指令由於操作數未就緒而暫停執 行時,後續發射的指令若操作數準備就緒,先於前續指令進入執行單 元並開始執行。
本實施例的嵌入式處理器的總體邏輯框圖如附圖1所示,其具體 需實施主要包括以下步驟
1) 取指單元實現單時鐘周期預取兩條指令,送入流水線;
2) 採用雙路解碼單元,單時鐘周期並行解碼兩條指令;
3) 採用非阻塞發射機制,單時鐘周期並行發射兩條指令
4) 指令動態分配機制可根據執行單元運算負荷動態調整指令分發;
5) 採用亂序執行機制,完成發射的指令只要操作數準備完畢即可進 入指令執行單元執行,其執行順序與程序順序無關;
6) 採用非阻塞載入/存儲機制,在前續指令出現高速緩存缺失情況 下,後續指令可以繼續進入載入/存儲單元,並訪問高速緩存器或高速 暫存器;
7) 通用協處理器接口實現嵌入式處理器面向特定應用領域的擴展;
8) 高速緩存器與高速暫存器共同構成豐富的片上存儲資源;
9) 功耗管理單元實現處理器從正常模式到待機、關機和休眠三種低 功耗模式轉換。
其中,取指單元實現單時鐘周期預取兩條指令,送入流水線。雙 發射嵌入式處理器的取指單元處於流水線的最前級,其主要工作任務 是每個時鐘周期取兩條指令,並送入流水線。指令通常保存在片上高 速緩存器或高速暫存器,或者片外存儲器中。片上存儲器或者片外存 儲器按照兩條指令寬度組織存儲結構(區塊1存儲指令1,區塊0存 儲指令0),保證每個時鐘周期能夠提供兩條指令,如圖2所示。當目標取指地址命中片上高速緩存器或高速暫存器時,每個時鐘周期可以 從這些片上存儲器中取到兩條指令。當目標取指地址出現片上高速緩 存器或高速暫存器缺失時,需通過系統總線接口從片外存儲器獲得指
採用雙路解碼單元,單時鐘周期並行解碼兩條指令。支持指令雙 發射的高性能流水線每個時鐘周期需並行處理兩條指令,因此需要設 計兩個功能相同的解碼單元分別對兩條指令進行獨立解碼。當前級流 水線僅送一條指令進入解碼單元時,其中一個解碼單元會進入休眠狀 態,實現解碼過程的低功耗。
在發射單元中,採用非阻塞發射機制,單時鐘周期並行發射兩條 指令。指令經過解碼後進入發射階段,根據解碼獲得的操作數相關信 息首先査找操作數是否就緒。若操作數準備就緒,指令可送入執行單
元開始執行;若操作數暫時未就緒,則當前指令暫時不能送入執行單
元,需要等待操作數就緒後方能發射。採用傳統發射機制,由於當前 指令需要等待操作數就緒後方能實施反射,後續指令由於不能佔用反
射窗口而被阻塞在前級流水線。本發明提出的非阻塞發射機制如圖3 所示,當指令出現操作數未就緒時,將當前指令發射至專用的保留站 寄存器中,由保留站負責操作數的等待。此時發射窗口被釋放,後續 指令可以繼續佔用發射窗口,實施發射。這種機制通過將需要進行操 作數等待的指令暫時移出主流水線,將發射窗口資源釋放給後續指令 的方法,解決了發射窗口的阻塞問題,提升處理器發射效率。
指令分發執行控制單元實現指令動態分配機制,可根據執行單元 運算負荷動態調整指令分發。為了提升流水線的並行執行能力,雙發 射嵌入式處理器的執行單元的資源比較豐富,相同類型的指令配備兩個相同的執行單元,從而實現兩條相同類型指令的並行執行。而相對 豐富的執行單元硬體資源對指令分配提出了更高了要求。固定的指令 分配策略在很大程度上不能發揮執行單元資源的優勢。雙發射流水線 採用動態分配策略,結合執行單元反饋的信息實施分配指令。對於同 種類型的指令通常對應兩個相同的執行單元,在默認情況下,出現指 令0上的指令被發送到執行單元0,出現在指令1上的指令被發送至 執行單元1。若執行單元0正忙而執行單元1空閒,則指令0可發送 至執行單元1進行執行,如圖4所示。這種可動態調整的分配策略雖 然邏輯設計相對複雜,但可有效提升執行單元的利用效率,從而提高 處理器的綜合性能。
採用亂序執行機制,完成發射的指令只要操作數準備完畢即可進 入執行單元執行,其執行順序與程序順序無關。指令進入執行單元執 行的前提是參與運算的操作數準備完畢,若操作數由於數據相關性暫 時還沒有準備就緒,此時指令需要等待操作數。若按照程序的順序執 行指令,則後續的指令會由於當前指令的等待而無法執行,從而導致 流水線的整體停頓。在支持亂序執行的流水線中,操作數未準備完畢
的指令會被發射至保留站中臨時保存,如圖3所示,後續指令仍可繼
續發射至執行單元中。後續指令,特別是多周期才能執行完畢的指令, 由於執行時間提前,因此其完成運算的時間也被提前,從而提高了處 理器的整體處理能力。通過保留站技術,使後續指令提前進入流水線 亂序執行的機制是提升處理器運算能力的關鍵技術。
在存儲/載入單元中,採用非阻塞載入/存儲機制,在前續存儲/載 入指令出現高速緩存缺失情況下,後續存儲/載入指令仍可以繼續進入 載入/存儲單元,訪問存儲器。載入/存儲單元主要負責數據從片上或者片外存儲器中載入。由於在流水線中設計了片上存儲器和片上暫存 器,通常數據從片上獲得,從而提高數據載入速度。若出現片上存儲 器訪問缺失時,數據需要從片外存儲器中載入。傳統處理器會堵塞流 水線,直到當前數據重新載入為止。本發明公布的非阻塞載入/存儲機 制,在出現數據片上緩存器訪問缺失時,將引起缺失的指令及其重新 載入請求保存至流水線以外的專用回填緩衝區中等待數據結果從片外 載入,釋放流水線資源,這樣後續指令仍然可以成功佔用流水線並順 利訪問高速存儲器或高速暫存器資源,提高載入/存儲單元的訪問效 率。由於後續指令仍可按照正常的方式提前進入載入/存儲單元,所以 處理器綜合性能有一定的提升。
通用協處理器接口實現嵌入式處理器面向各種應用的擴展。嵌入 式處理器通常面向特定的應用領域,不同的應用領域對於數據處理的 形式和性能需求差異較大。因此提供一個有效的處理器擴展機制,面 向不同應用設計不同的加速單元是目前解決應用複雜性的重要方法。 本發明通過在處理器流水線中,設計一個協處理器接口單元,如圖1 所示,支持用戶通過協處理器的方式實現功能擴展。通用協處理器接 口定義了標準的數據的讀寫操作協議,實現了擴展運算單元與處理器 內核的高速通信。
高速緩存器與高速暫存器共同構成豐富的片上存儲資源。與處理 器運行速度相比,片外存儲器的運行速度相對較慢,處理器訪問外部 存儲器的造成很大的性能損失。為了降低訪問片外存儲器而引起的性 能損失,高性能嵌入式處理器通常設置對於軟體透明的高速緩存器。 本發明設計採用哈佛結構的指令高速緩存和數據高速緩存,取指單元 從指令高速緩存中預取指令,載入/存儲單元從數據高速緩衝中載入數據。高速緩存對於軟體完全透明,無需軟體幹預,硬體控制邏輯通過 重新載入機制自動從片外載入。對於一些特殊的嵌入式應用,軟體往 往需要控制數據在片上的保存與替換,僅設計片上高速緩存無法滿足 應用的多種需求。在這樣的背景下,設計了片上高速暫存器作為片上 緩存的重要補充。片上高速暫存器分為指令片上暫存器和數據片上暫 存器,構成哈佛結構的片上存儲器。片上暫存器需要軟體顯式的進行 管理,從而適應特定應用對於片上存儲器的需求。片上高速緩存和高 速暫存作為片上一級緩存資源供用戶結合具體的應用進行選擇與配 置。
功耗管理單元實現處理器從正常模式到待機、關機和休眠三種低 功耗模式轉換。為雙發射嵌入式處理設置四種工作模式,分別為正常、 待機、關機和休眠。正常工作模式為處理器全速運行的模式,處理器 所有功能。待機、關機和休眠三種模式均為低功耗模式。在待機模式 下,處理器的工作時鐘被關閉,處理器流水線處於非活躍狀態,所有 寄存器信息不再更新,從而降低功耗。處理器的狀態信息在待機模式 下全部保存,僅需恢復時鐘便可使處理器從新開始執行。關機模式下, 處理器的電源被關閉,流水線和片上存儲器信息完全丟失。休眠模式 下,處理器內核電源被關閉,流水線信息丟失,但片上存儲器的電源 仍然保持。因此休眠模式下,僅有存儲器的現場被保存。用戶可以根 據應用的不同需求,選擇不同的模式進入低功耗狀態。功耗管理單元 同時負責從各個低功耗狀態恢復,外設可通過中斷激活處理器回到正
常工作狀態。低功耗狀態轉換關係如圖5所示。通過WAIT指令,STOP 指令和DOZE指令分別進入待機、關機和休眠三種模式;通過中斷從 低功耗模式中喚醒。
權利要求
1、一種基於指令雙發射的高性能低功耗嵌入式處理器,其特徵在於所述嵌入式處理器包括取指單元,用於在單時鐘周期內從所述片上指令存儲器或片外指令存儲器中預取兩條指令,並送入流水線;雙路解碼單元,用於在流水線中設置兩個相同的解碼單元,在單時鐘周期內並行解碼兩條指令;發射單元,用於將解碼後的兩條指令存放到流水線寄存器,單時鐘周期並行發射兩條指令,如參與運算的操作數準備完畢,在下一時鐘周期將其送入執行單元開始執行;如參與運算的操作數未準備完畢,將操作數未就緒的指令暫時保存至保留站寄存器中並釋放發射窗口,下一個時鐘周期,後續指令通過發射窗口進行正常發射;指令分發執行控制單元,用於根據運算負荷動態調整指令分發,指令分配邏輯實時監測各執行單元的工作情況,並根據各指令執行單元返回的信息將當前發射的指令動態分配至空閒的執行單元中;指令執行單元,用於進行指令的結果的運算;載入/存儲單元,用於當指令發生載入/存儲操作缺失時,當前載入/存儲指令臨時釋放流水線,在專用的回填緩衝區中等待結果從片外載入,後續載入/存儲指令成功佔用流水線並順利訪問片上數據存儲器和片外數據存儲器。
2、 如權利要求1所述的基於指令雙發射的高性能低功耗嵌入式處理 器,其特徵在於在所述指令發射單元中,當前序指令由於操作數未 就緒而暫停執行時,後續發射的指令若操作數準備就緒,先於前續指令進入執行單元並開始執行。
3、 如權利要求1或2所述的基於指令雙發射的高性能低功耗嵌入式處 理器,其特徵在於所述嵌入式處理器還包括 通用協處理器接口,用於支持面向各種應用領域的擴展;所述通用協處理器接口連接協處理器總線。
4、 如權利要求1或2所述的基於指令雙發射的高性能低功耗嵌入式處理器,其特徵在於所述片上指令存儲器包括-指令高速緩存器,用於實現對指令讀取的片上高速緩衝; 指令高速暫存器,用於提供軟體可配置的指令緩衝區; 片上數據存儲器包括數據高速緩存器,用於實現對數據讀取的片上高速緩衝; 數據高速暫存器,用於提供軟體可配置的片上數據臨時保存空間。
5、 如權利要求3所述的基於指令雙發射的高性能低功耗嵌入式處理 器,其特徵在於所述片上指令存儲器包括指令高速緩存器,用於實現對指令讀取的片上高速緩衝; 指令高速暫存器,用於提供軟體可配置的指令緩衝區; 片上數據存儲器包括數據高速緩存器,用於實現對數據讀取的片上高速緩衝; 數據高速暫存器,用於提供軟體可配置的片上數據臨時保存空間。
6、 如權利要求1或2所述的基於指令雙發射的高性能低功耗嵌入式處理器,其特徵在於所述嵌入式處理器還包括功耗管理單元,用於實現從正常模式到待機、關機和休眠三種低功耗 模式轉換。
7、 如權利要求5所述的基於指令雙發射的高性能低功耗嵌入式處理 器,其特徵在於所述嵌入式處理器還包括功耗管理單元,用於實現從正常模式到待機、關機和休眠三種低功耗 模式轉換。
8、 如權利要求1或2所述的基於指令雙發射的高性能低功耗嵌入式處 理器,其特徵在於在所述指令執行單元中,根據處理器性能的需求 的高低,增加或減少相應的執行單元個數。
9、 如權利要求5所述的基於指令雙發射的高性能低功耗嵌入式處理 器,其特徵在於在所述指令執行單元中,根據處理器性能的需求的 高低,增加或減少相應的執行單元個數。
全文摘要
一種基於指令雙發射的高性能低功耗嵌入式處理器,包括取指單元,用於在單時鐘周期內預取兩條指令,並送入流水線;雙路解碼單元,用於在單時鐘周期內並行解碼兩條指令;發射單元,用於單時鐘周期並行發射兩條指令;指令分發執行控制單元,用於根據運算負荷動態調整指令分發,依照亂序執行機制控制執行;指令執行單元,用於進行指令的結果的運算;載入/存儲單元,用於在當指令發生缺失時,後續指令成功佔用流水線並順利訪問片上數據存儲器和片外數據存儲器。本發明在低功耗的前提下提高嵌入式處理器的性能、降低成本。
文檔編號G06F9/38GK101526895SQ20091009558
公開日2009年9月9日 申請日期2009年1月22日 優先權日2009年1月22日
發明者嚴曉浪, 孟建熠, 葛海通 申請人:杭州中天微系統有限公司