專利名稱:多重微控制器管線式指令執(zhí)行方法
技術領域:
本發(fā)明涉及一種程序控制指令的執(zhí)行方法,尤其涉及一種一種多
重微控制器的管線式指令執(zhí)行方(Pipeline Instruction Execution Method)。
背景技術:
為追求微控制器的執(zhí)行效率,現(xiàn)有技術中提出一種管線式指令執(zhí) 行方法,此種方法將一個指令切割成若干個子部分,因每個子部份的 執(zhí)行元件和執(zhí)行動作不同,故可以在同一時間內,循序將不同指令的 子部份交由不同的電路元件來執(zhí)行,盡量使電路元件不必閑置,以提 高執(zhí)行效率。此種執(zhí)行指令的方式類似以多條生產線來生產產品,故 稱為「管線式」指令執(zhí)行方法。
請參閱圖1,其中顯示已知的三級管線式指令執(zhí)行方法,此種指 令執(zhí)行方法將指令切割成三個子部份。圖中上方的方波波形代表指令 周期(instruction cycle),其中每一組正負脈沖代表一個指令周期。所 謂指令周期,指根據(jù)該微控制器的設計,在該指令周期中,可完成一 個指令的某部份動作。 一個指令周期未必恰是一個時鐘脈沖周期,而 可能是若干個時鐘脈沖周期。
在此種三級管線式指令執(zhí)行方法中,通常是將指令執(zhí)行分成取 回指令、執(zhí)行、寫回三個子部份。如圖所示,由于這三個子部份由不 同的電路元件執(zhí)行,故可在第一個指令周期內先取回第N個指令,接 著在第二個指令周期內執(zhí)行第N個指令,并由于負責取回指令的電路
元件已經空閑,故同時可令其依序取回下一個指令N+l;而在第三個 指令周期內,則同時進行取回第N+2個指令、執(zhí)行第N+1個指令、
及寫回第N個指令的動作。微控制器以如此方式依次執(zhí)行各個指令。
圖1所示是上述三級管線式指令執(zhí)行方法的理想狀況,但實際應 用上可能會出現(xiàn)圖2所示的非理想狀況。如圖2所示,程序指令未必 都是依序執(zhí)行;根據(jù)統(tǒng)計,程序中約有12%的指令會進行跳躍,例如 jump, call, interrupt, interrupt return等等。如果第N個指令為此種跳躍 指令,則所發(fā)生的執(zhí)行狀況將如圖所示,于第二個指令周期時,微控 制器將自動依序取回下一個指令N+1,但必須等到第N個指令的執(zhí)行 動作完畢后,在第三個指令周期時,才會發(fā)現(xiàn)此時應該執(zhí)行的是第M 個指令、并非第N+1個指令,而必須取消與第N+1個指令相關的動作 (取消的作法是不予執(zhí)行,或執(zhí)行但不將結果寫回)。換言之,在第 二個指令周期時所作的自動依序取回指令動作,反而浪費了一個指令 周期。
以上所述為較簡單的三級管線式指令執(zhí)行方法,如果是較復雜的 更多級管線式指令執(zhí)行方法,則所面對的問題將更加嚴重。
圖3顯示已知的五級管線式指令執(zhí)行方法,此種指令執(zhí)行方法將
指令切割成五個子部份取回指令、譯碼、取還暫存器資料、執(zhí)行、
寫回。如圖所示,由于必須等到第N個指令的執(zhí)行動作完畢后,才會 發(fā)現(xiàn)下一個應該執(zhí)行的是第M個指令,因此所依序取回的第N+l、N+2、 N+3個指令全部必須取消,而所浪費的指令周期高達三個。
圖4顯示已知的八級管線式指令執(zhí)行方法,此種指令執(zhí)行方法將 指令切割成八個子部份取回指令(l)、取回指令(2)、取還暫存器資料、 產生位址、執(zhí)行/存儲器存取(1)、執(zhí)行/存儲器存取(2)、例外狀況處 理、寫回。如圖所示,由于必須等到執(zhí)行動作(2)完畢后,才會發(fā)現(xiàn)下 一個應該執(zhí)行的是第M個指令,因此所浪費的指令周期高達五個。
如前所述,假設程序中有12%的指令非依序執(zhí)行,則在三級管線
式指令執(zhí)行方法中,大約有12%的指令會浪費一個指令周期,故共有
12%的指令周期會被浪費掉,或是,大約有12/(100+12)=10.7%的效率 損失。在五級管線式指令執(zhí)行方法中,大約有12%的指令會浪費三個 指令周期,故共有36%的指令周期會被浪費掉,或是,大約有 36/(100+36)=26.5%的效率損失。而在八級管線式指令執(zhí)行方法中,大 約有12%的指令會浪費五個指令周期,故所浪費的指令周期將超過一 半,或是,大約有60/(100+60)=37.5%的效率損失。而最高階的微控制 器,甚至可能將指令切割成高過二十個子部份,則所相應產生的指令 周期浪費,可想象將是非常驚人。
針對以上問題,現(xiàn)有技術的解決方法是另外設計一個「指令預測 電路」,以預測下一個指令是否會跳躍,若會跳躍,則可能跳躍至何 處。此種電路若要精準,則必須保存指令執(zhí)行的歷史紀錄,予以追蹤 分析,才能在發(fā)生類似情況時準確猜測下一個指令可能落在何處???想而知,不但電路設計相當復雜,且因為所需之存儲器龐大,電路所 占據(jù)的面積也相當可觀。若顧及電路設計和整體微控制器的精簡化, 則所設計的指令預測電路準確度又勢必下降。且即使目前最精密的指 令預測電路,也有其不準確的范圍,并不能100%精確。雖然就提高微 控制器執(zhí)行效率的角度而言,即使指令預測電路不能100%精確,也能 夠輔助提高微控制器的執(zhí)行效率,但問題是某些程序設計需要在固定 的時間內得到反應,例如引擎按時點火、秒針移動等等。對于這些應 用而言,其最需要的是「確定性」,亦卽程序設計者必須控制微控制 器在準確的時點產出準確的動作。但程序設計者無法控制指令預測電 路,故指令預測電路即使有99%的準確率,其1°/。的不確定性仍將造成 程序撰寫上的困難。
以上所述問題,在現(xiàn)有技術中的單微控制器或多重微控制器中都 同樣存在。
有鑒于此,本發(fā)明乃提出一種多重微控制器管線式指令執(zhí)行方法,
相較于現(xiàn)有技術而言,具有較佳的執(zhí)行效率,且可提供更穩(wěn)定的指令 執(zhí)行時程,免除程序設計者的困擾。
發(fā)明內容
本發(fā)明的主要目的在提供一種多重微控制器管線式指令執(zhí)行方 法,藉由各微控制器依序輪流取回指令,以在執(zhí)行到跳躍指令時,避 免大幅取消指令。
本發(fā)明的另一目的在提供一種多重微控制器管線式指令執(zhí)行方 法,其中確使至少一個微控制器可以準確地執(zhí)行須精準控制時程的程 序。
根據(jù)本發(fā)明的多重微控制器管線式指令執(zhí)行方法,當多重微控制 器具有多個微控制器時,在第一個指令周期中,由第一個微控制器取
回指令;并在緊接第一個指令周期的第二個指令周期中,由第二個微 控制器取回指令。
根據(jù)本發(fā)明的其中一個實施態(tài)樣,多個微控制器個別依序輪流于 一個對應的指令周期中取回指令。根據(jù)本發(fā)明的另外一個實施態(tài)樣, 多個微控制器的一部份微控制器個別依序輪流于一個對應的指令周期 中取回指令,而另一部分微控制器以不同的頻率取回指令。又根據(jù)本 發(fā)明的再一實施態(tài)樣,在所述多個微控制器中,至少有一個微控制器, 其每取回一個指令后,于完成該指令的執(zhí)行階段后,才取回下一個指令。
綜上所述,本發(fā)明對比現(xiàn)有技術,有以下的優(yōu)點
一、 因為不會或較少出現(xiàn)需要取消指令的情形,故微控制器的
執(zhí)行效率較佳;
二、 不必設計使用既復雜又占面積的指令預測電路;
三、 執(zhí)行需要精準控制時間的程序時,對于執(zhí)行該程序的微控
制器而言,非依序的跳躍指令在一個個別指令周期內即可完成,故可 以在準確的時間點產生結果;
四、 程序設計者撰寫程序時十分單純。
以下通過具體實施例配合所示附圖詳加說明,當更容易了解本發(fā) 明的目的、技術內容、特點及其所達成的功效。
圖1顯示已知的三級管線式指令執(zhí)行方法。
圖2說明己知的三級管線式指令執(zhí)行方法,遇到非依序指令時, 必須取消指令而損失指令周期。
圖3說明已知的五級管線式指令執(zhí)行方法,遇到非依序指令時, 必須取消指令而損失指令周期。
圖4說明已知的八級管線式指令執(zhí)行方法,遇到非依序指令時, 必須取消指令而損失指令周期。
圖5顯示本發(fā)明的一個實施例,應用于具有兩個微控制器的多重
微控制器中,且該多重微控制器使用三級管線式指令執(zhí)行方法。
圖6與圖7分別示出本發(fā)明的另外兩個實施例。
圖8與圖9分別示出本發(fā)明的又另外兩個實施例,顯示本發(fā)明的
執(zhí)行方法,即使未能完全避免取消指令,其指令執(zhí)行效率也遠較已知
的技術為佳。
圖IO為本發(fā)明的又另一個實施例,顯示將指令周期不均勻分配給 各微控制器的情形。
圖中符號說明 MCU-1第一微控制器 MCU-2 第二微控制器 MCU-3第三微控制器 MCU-4 第四微控制器 MCU-5 第五微控制器
MCU-6第六微控制器具體實施方式
請參閱圖5,其中顯示本發(fā)明的一個實施例。假設本發(fā)明應用于具有兩個微控制器的多重微控制器中,且該多重微控制器使用三級管 線式指令執(zhí)行方法,則如圖所示,本發(fā)明的特點在于,各微控制器分 別錯開而依序輪流取回指令,亦卽在第一個指令周期內,由第一微控制器MCU-1取回屬于MCU-1的第A個指令,接著在第二個指令周期 內,由第二微控制器MCU-2取回屬于MCU-2的第T個指令。此時, 第一微控制器MCU-1也同時執(zhí)行第A個指令,故在第三個指令周期時, 已可獲知第一微控制器MCU-1的下一個指令為第B個指令,而此指令 可能是依序的下一個指令(B = A+1),或跳躍的指令。同理,當?shù)竭_ 第四個指令周期,第二微控制器MCU-2需要取回指令時,也已經得知 應該取回第U個指令。請參閱圖5上方的三個指令周期示意波形,在上述安排方式中, 雖然就整體多重微控制器而言,依據(jù)第三個波形的指令周期來工作, 但就個別微控制器而言,可看作各微控制器在各自的個別指令周期中 工作,亦卽第一微控制器MCU-1依據(jù)MCU-1指令周期來工作,而第 二微控制器MCU-2依據(jù)MCU-2指令周期來工作。為便利區(qū)別起見, 就整體多重微控制器而言的指令周期,單純稱為「指令周期」;就個 別微控制器而言的指令周期,稱為「個別指令周期」。重要的是,就 任何一個微控制器而言,即使執(zhí)行非依序的跳躍指令,也能夠在一個 個別指令周期中,完成該指令的執(zhí)行步驟,而在下一個個別指令周期 時,即可取回另一個指令并執(zhí)行。圖6與圖7分別示出本發(fā)明的另兩個實施例,在圖6的實施例中, 多重微控制器具有四個微控制器,并采用五級管線式指令執(zhí)行方法; 如圖所示,由于第一微控制器MCU-1取回第A個指令(第一個指令周 期)之后,直到第五個指令周期才再次需要取回下一個指令,而在此
之前,于第四個指令周期內,第一微控制器MCU-1已經執(zhí)行完畢而得知下一個指令為第B個指令,故不會發(fā)生必須取消指令的情形。在圖7的實施例中,多重微控制器具有六個微控制器,并采用八 級管線式指令執(zhí)行方法;如圖所示,由于第一微控制器MCU-1取回第 A個指令(第一個指令周期)之后,直到第七個指令周期才再次需要 取回下一個指令,而在此之前,于第六個指令周期內,第一微控制器 MCU-1已經執(zhí)行完畢而得知下一個指令為第B個指令,故同樣不會發(fā) 生必須取消指令的情形。由上可知,根據(jù)本發(fā)明的交錯執(zhí)行方法,若多重微控制器具有n 個微控制器,并采用m級管線式指令執(zhí)行方法,且在第x個指令周期 之前,就可完成指令的執(zhí)行步驟,則當n ^ x時,必然不會發(fā)生必須 取消指令的情形。例如,若指令執(zhí)行步驟是在m級管線式指令執(zhí)行方 法的第m-l級執(zhí)行完畢,則在n ^ m-l,亦卽m ^ n+l時,必然不 會發(fā)生必須取消指令的情形,如圖5 (n=2, m=3)、圖6 (n=4, m=5) 所示;又若指令執(zhí)行步驟是在m級管線式指令執(zhí)行方法的第m-2級執(zhí) 行完畢,則在n ^ m-2時,亦卽m ^ n+2時,必然不會發(fā)生必須取 消指令的情形,如圖7 (n=6,m=8)所示。若多重微控制器具有較少的微控制器數(shù)目,但欲以較精密的多級 管線方式來執(zhí)行指令,則仍然可能出現(xiàn)必須取消指令的情形,但所損 失的指令周期數(shù)目,顯然較己知的技術要少得多;以下詳細說明之。請參閱圖8與圖9,并對照圖4。本發(fā)明的執(zhí)行方法,相較已知的 技術,即使未能完全避免取消指令,指令執(zhí)行效率也遠較的為佳。例 如,假設使用八級管線式指令執(zhí)行方法,而多重微控制器具有兩個微 控制器(圖8),則圖4顯示的已知的技術,每跳躍一次,卽需損失五 個指令周期,但使用本發(fā)明的執(zhí)行方法,每跳躍一次,僅需損失兩個 指令周期;若多重微控制器具有四個微控制器(圖9),則每跳躍一次,僅需損失一個指令周期。換言之,即使僅具有兩個微控制器,本發(fā)明 也非僅是微幅改善執(zhí)行效率而已。
上述效率對照,其通則如下。假設微控制器數(shù)目為II,指令執(zhí)行 步驟在第X個指令周期完成,則已知的技術損失的指令周期數(shù)目為 (x-l),而本發(fā)明的執(zhí)行方法所損失的指令周期數(shù)目為INTea y[(X/n)-l], INTe^y[]代表無條件進位至下一位整數(shù)。當x與n的數(shù)目越大時,本發(fā) 明的效益更為顯著。例如,當乂=15,11=3時,已知的技術每跳躍一次, 卽需損失14個指令周期,但本發(fā)明每跳躍一次,僅需損失4個指令周 期。
在以上所述各實施例中,各微控制器依序輪流于一個對應的指令 周期中取回指令,亦卽若多重微控制器包括n個微控制器,則在第一 個指令周期中,由第一個微控制器取回指令;在緊接第一個指令周期 的第二個指令周期中,由第二個微控制器取回指令;在緊接第二個指 令周期的第三個指令周期中,由第三個微控制器取回指令;......;在
緊接第n-l個指令周期的第n個指令周期中,由第ii個微控制器取回指 令;在緊接第n個指令周期的第n+l個指令周期中,由第一個微控制 器取回指令;......。
然而,除以上所述安排方式外,根據(jù)本發(fā)明,也未必一定須將指 令周期平均給不同的微控制器使用,來取回指令。請參閱圖10的實施 例,其中多重微控制器具有三個微控制器,所采用的是五級管線式指 令執(zhí)行方法。在本實施例中,第一和第二個指令周期均指派給第一微 控制器MCU-1來取回指令,第三個指令周期指派給第二微控制器 MCU-2,第四個指令周期指派給第三微控制器MCU-3。因此,各微控 制器的個別指令周期,可看作如圖IO上方的波形所示。在此種安排方 式下,對于第二微控制器MCU-2和第三微控制器MCU-3而言,也必 然不會發(fā)生必須取消指令的情形,因為第二微控制器MCU-2和第三微 控制器MCU-3會在完成相對應指令的執(zhí)行階段后,才取回下一個指令。
因此,僅有第一微控制器MCU-I有可能必須取消指令,故程序設計者
可將需要精確控制時程的程序交給第二微控制器MCU-2和第三微控制 器MCU-3來執(zhí)行,而使用第一微控制器MCU-1來執(zhí)行不需要精確控 制時程的程序。而雖然第一微控制器MCU-1有可能必須取消指令,但 就整體多重微控制器的執(zhí)行效率而言,所可能損失的指令周期,仍遠 較已知的技術為少。
圖IO所舉例說明的安排方式,其概念為,假設微控制器數(shù)目為n, 指令執(zhí)行步驟在第x個指令周期完成,而n<x時,可令其中一部分(通 常是大部分)微控制器以1/x (甚至1/ax, a為整數(shù))的頻率使用指令 周期(亦即其個別指令周期的頻率等于指令周期頻率的1/x,或1/ax), 而令其中一個或小部分微控制器使用其余的指令周期。如此,則以l/x
(或l/ax, a為整數(shù))的頻率使用指令周期的微控制器,卽不會發(fā)生必 須取消指令的情形。在圖IO所舉例中,n = 3, x = 4,第二微控制器 MCU-2和第三微控制器MCU-3以1/4的頻率使用指令周期,而第一微 控制器MCU-1以2/4的頻率使用指令周期。當然,此種安排方式并非 唯一。例如,假設在八級管線式指令執(zhí)行方法中,n = 4,x = 6,則其分 派方式可為3/6, 1/6, 1/6, 1/6;或2/6, 2/6, 1/6, 1/6;甚至4/6, 1/6, 1/12,
1/12;又甚至可動態(tài)改變其分派方式,例如在某一個微控制器閑置時, 將屬于該微控制器的指令周期,指派給第一微控制器MCU-1來加速執(zhí) 行不需要精確控制時程的程序,等等。
以上所述的實施例僅為說明本發(fā)明的技術思想及特點,其目的在 使熟習此項技藝的人士能夠了解本發(fā)明之內容并據(jù)以實施,當不能以 的限定本發(fā)明的專利范圍,即大凡依本發(fā)明所揭示的精神所作的均等 變化或修飾,仍應涵蓋在本發(fā)明的專利范圍內。
權利要求
1.一種多重微控制器的管線式指令執(zhí)行方法,其中該多重微控制器具有多個微控制器,該方法包含在第一個指令周期中,由第一個微控制器取回指令;以及在緊接第一個指令周期的第二個指令周期中,由第二個微控制器取回指令。
2. 如權利要求1所述的多重微控制器的管線式指令執(zhí)行方法,其 中在所述多個微控制器中,至少有一個微控制器,其每取回一個指令 后,于完成該指令的執(zhí)行階段后,才取回下一個指令。
3. 如權利要求2所述的多重微控制器的管線式指令執(zhí)行方法,其 中所述多個微控制器的所有微控制器,皆于每取回一個指令后,在完 成該指令的執(zhí)行階段后,才取回下一個指令。
4. 如權利要求2所述的多重微控制器的管線式指令執(zhí)行方法,其 中所述多個微控制器中,有一部份微控制器,于每取回一個指令后, 在完成該指令的執(zhí)行階段后,才取回下一個指令;而另一部份微控制 器,于每取回一個指令后,在完成該指令的執(zhí)行階段之前,卽取回下 一個指令。
5. 如權利要求1所述的多重微控制器的管線式指令執(zhí)行方法,其 中所述多個微控制器個別依序輪流于一個對應的指令周期中取回指 令。
6. 如權利要求1所述的多重微控制器的管線式指令執(zhí)行方法,其 中所述多個微控制器中的第一部份微控制器個別依序輪流于一個對應 的指令周期中取回指令,而第二部分微控制器以不同的頻率取回指令。
7. 如權利要求6所述的多重微控制器的管線式指令執(zhí)行方法,其 中指令執(zhí)行步驟在每次指令的第X個指令周期中完成,且該第一部份 微控制器的個別指令周期頻率等于指令周期頻率除以x,或除以ax,其 中a為整數(shù)。
8. 如權利要求6所述的多重微控制器的管線式指令執(zhí)行方法,其 中該第二部分微控制器以較高的頻率取回指令。
9. 如權利要求l所述的多重微控制器的管線式指令執(zhí)行方法,其 中至少有一個微控制器,可在一個個別指令周期之內,完成非依序指 令的執(zhí)行階段。
10. 如權利要求9所述的多重微控制器的管線式指令執(zhí)行方法, 其中該至少一個微控制器供執(zhí)行需精準控制時程的程序。
11. 一種多重微控制器,包含多個微控制器,各微控制器依據(jù)各 自的個別指令周期而工作,且其中至少有一個微控制器,可在一個個 別指令周期之內,完成非依序指令的執(zhí)行步驟。
12. 如權利要求11所述的多重微控制器,其中該至少一個微控制 器,可于取回非依序指令的緊接下一個別指令周期,取回另一個指令。
13. 如權利要求ll所述的多重微控制器,其中所述多個微控制器 的所有微控制器,皆可在一個別指令周期之內,完成非依序指令的執(zhí) 行步驟。
14. 如權利要求ll所述的多重微控制器,其中指令執(zhí)行步驟在每 次指令的第x個指令周期中完成,且其中該至少一個微控制器的個別 指令周期頻率等于多重微控制器的指令周期頻率除以x,或除以ax, 其中a為整數(shù)。
全文摘要
本發(fā)明揭露一種多重微控制器管線式指令執(zhí)行方法。當該發(fā)明具有多個微控制器時,在第一個指令周期中,由第一個微控制器取回指令;并在緊接第一個指令周期的第二個指令周期中,由第二個微控制器取回指令。在多個微控制器中,至少有一部份個別依序輪流于一個對應的指令周期中取回指令,又或是,在所述多個微控制器中,至少有一個微控制器,其每取回一個指令后,于完成該指令的執(zhí)行階段后,才取回下一個指令。本發(fā)明具有較佳的執(zhí)行效率,且可提供更穩(wěn)定的指令執(zhí)行時程。
文檔編號G06F9/38GK101114219SQ20061010757
公開日2008年1月30日 申請日期2006年7月26日 優(yōu)先權日2006年7月26日
發(fā)明者張榮麟 申請人:應廣科技股份有限公司