新四季網

多周期指令的製作方法

2023-05-20 06:36:06

專利名稱:多周期指令的製作方法
背景本發明涉及在可編程處理器內執行多周期指令。
如計算機或數位訊號處理系統中的微處理器那樣的可編程處理器能支持一個或多個「多周期指令」,其中單條機器指令指導處理器完成多個操作。例如,典型的多周期指令是Load Multiple指令,其中處理器響應單條機器指令完成一系列加載操作。另一個例子是「Push-Pop Multiple」指令,它指導處理器將多個寄存器壓入堆棧或從中彈出。因為多周期指令將多個操作包裝成單條機器指令,它們通常減少程序的大小並改善可編程處理器的操作有效性。


圖1是示出按本發明的流水線化的可編程處理器的例子的方框圖。
圖2是示出按本發明的實施例的示例性執行流水線的原理圖。
圖3示出將多個寄存器存入堆棧的示例性狀態圖。
圖4示出將多個寄存器彈出堆棧的示例性狀態圖。
圖5示出執行Link指令的示例性狀態圖。
圖6示出執行Unlink指令的示例性狀態圖。
圖7是示出停頓(Stall)控制器的示例性實施例的原理圖。
圖8是停頓生成器的時序圖。
圖9是產生對多周期指令的停頓信號的示例性線路的原理圖。
圖10和11是示例性地址生成線路的原理圖。
描述圖1是示出支持一系列多周期機器指令的可編程處理器2的方框圖。處理器2包括執行流水線4和控制單元6。控制單元6按照系統時鐘控制通過流水線的指令流和數據流。在處理指令期間,控制單元6能指導流水線的各種組件解碼指令並正確地完成對應的操作,包括如將結果寫回到存儲器。
指令能加載到流水線4的第一階段並經過後續的階段處理。每一階段通常與其他階段同時處理。數據按照系統時鐘信號在流水線的各階段之間通過。指令的結果以快速的順序出現在流水線4的終點。
如下詳述,處理器2支持若干多周期指令。為響應多周期指令,停頓控制器8能通過確認停頓信號9停頓一個或多個流水線4的階段,以防止流水線4取出或解碼另外指令。在停頓一部分流水線4之後,多周期指令(MCI)控制器5能確認MCI信號7並指導流水線4完成由當前多周期指令確定的附加操作。
圖2示出按本發明的示例性流水線4。例如,流水線4能具有5個階段指令取出(IF),指令解碼(DEC),地址計算(AC),執行(EX),和寫回(WB)。指令能在第一階段(IF)由取指令單元11從如主存儲器或指令緩存器那樣的存儲設備取出,並在第二階段(DEC)由指令解碼單元12解碼。在下一時鐘周期,結果經過第三階段(AC),在那裡數據地址生成器13計算任何存儲器地址來完成該操作。
在執行階段(EX),執行單元5完成指令的操作,如加或乘兩個數。執行單元能包含用於完成操作的特定硬體,如一個或多個算術邏輯單元(ALU),浮點單元(FPU)和循環移位器。各種數據能應用於執行單元15,如由數據地址生成器13產生的地址,從存儲器取出的數據或從數據寄存器14取出的數據。在最後階段(WB),結果被寫回到數據存儲器或數據寄存器14。
多周期指令其表現如從流水線4的解碼階段產生的在若干時鐘周期執行的多條指令。當MCI執行時,它在流水線的解碼階段保持停頓,而在MCI控制器5的控制下,向流水線4往下發送多個「子指令」。MCI控制器5按一系列內部狀態機操作以便指導指令解碼單元12在MCI執行期間分派若干操作在一系列時鐘周期內完成。
停頓控制器8能通過確認停頓信號停頓流水線4的一個或多個周期,以防止流水線4取出和解碼另外的指令。具體說來,流水線4的階段包括如階段寄存器19那樣的存儲線路,用於存儲當前階段的結果。階段寄存器通常按照系統時鐘鎖存結果。階段寄存器19接收停頓信號9,它控制階段寄存器19是否所存從以前階段得到的結果。以此方式,停頓控制器8能停頓流水線4的一個或多個階段以響應多周期指令。
由處理器支持的多周期指令的例子包括Push Pop Multiple機器指令,Link指令和Unlink指令。Push Pop Multiple指令指導處理器2壓入1到N個數據寄存器和/或指針寄存器,或從中彈出。Push Pop Multiple在等於要訪問的寄存器目的時鐘周期數中保持停頓在解碼階段。下面說明了壓入多個機器指令的例子[--sp]=(r7-r4,p5-p0)在此例中,單條機器指令指導處理器2壓入4個數據寄存器(r4到r7)和6個指針寄存器(p0到p5)。通常,單條機器指令能指定零個或多個數據寄存器和零個或多個指針寄存器,只要指定至少一個寄存器即可。
圖3示出在MCI控制器5內用於將多個寄存器壓入堆棧的狀態機的示例性狀態圖30。如下所述,MCI控制器5響應壓入多個指令按照狀態圖30操作,以便壓入一個或多個寄存器。在按狀態30操作時,MCI控制器5能確認一個或多個MCI信號7,包括指導解碼器12產生用於分派一個數據寄存器的壓入操作的流水線控制信號的PUSH_DREG信號,和指導解碼器12產生用於分派一個指針寄存器的壓入操作流水線控制信號的PUSH_PREG信號。此外,MCI控制器5能確認D_REG_PRESELECT信號,它初始化一個計數器,其計數指出壓入哪個數據寄存器;或能確認P_REG_PRESELECT信號,它初始化一個計數器,其計數指出壓入哪個指針寄存器。MCI控制器5也可確認MCI_PRESTALL信號,它指導停頓控制器5在下個時鐘周期停頓流水線4。
下面的表綜合了引起在MCI控制器5中PUSH MULTIPLE狀態機從一個狀態向另一狀態遷移的條件,以及被確認的相應輸入信號,其中D是指出要壓入的數據寄存器的指令位,P是指出要壓入的指針寄存器的指令位,DR是指出要壓入的起始數據寄存器的指令欄位,PR是指出要壓入的起始指針寄存器的指令欄位,D_TAG表示被壓入的當前數據寄存器,P_TAG表示被壓入的當前指針寄存器,DMAX表示在可用的數據寄存器範圍內最大的數據寄存器,PMAX表示在可用的指針寄存器範圍內最大的指針寄存器


表1最初,MCI控制器5在WAIT狀態開始,直到由取單元11取出指令並由解碼單元12解碼。若指令不是PUSH POP MULTIPLE指令,MCI控制器5如路徑34A所示返回到WAIT狀態。
若指令是PUSH POP MULTIPLE指令,但只命令處理器2壓入單個數據寄存器,狀態確認PUSH_DREG信號並經過路徑34B返回到WAIT狀態。若指令是PUSHPOP MULTIPLE,它命令處理器2壓入單個指針寄存器,狀態機確認PUSH_PREG信號並經過路徑34C返回到WAIT狀態。
若指令規定壓入兩個數據寄存器或兩個指針寄存器,狀態機分別改變狀態到狀態32A或狀態32C。狀態機經路徑34D或34F遷移到這些狀態,並在遷移到32A時確認PUSH_DREG信號,或在遷移到32C時確認PUSH_PREG信號。此外,在沿路徑34D遷移時,狀態機確認D_REG_PRESELECT信號,它初始化指出壓入哪個數據寄存器的計數器。類似地,在沿路徑34F遷移時,狀態機確認P_REG_PRESELECT信號,它初始化指出壓入哪個指針寄存器的計數器。
狀態機從狀態32A經路徑34E返回到WAIT狀態。在此遷移期間,MCI控制器5再次確認PUSH_DREG並不確認D_REG_PRESELECT,使得解碼單元23分派另外數據寄存器的壓入操作。類似地,狀態機從狀態32C經路徑34G返回到WAIT狀態。在此遷移其間,MCI控制器5確認PUSH_PREG並不確認P_REG_PRESELECT,引起執行單元15壓入另外的指針寄存器。
對需要指令解碼單元12分派三個或更多數據寄存器壓入操作的PUSH POPMULTIPLE指令,狀態機從WAIT狀態經路徑34H遷移到狀態32B。在遷移其間,MCI控制器8確認PUSH_DREG信號並確認D_REG_PRESELECT,引起執行單元15壓入第一數據寄存器。此外,MCI控制器5確認MCI_PRESTALL信號,引起停頓控制器8在下一時鐘周期停頓流水線4的一個或多個階段。例如,在一個實施例中,停頓控制器8確認STALL_DEC,停頓流水線4的解碼階段。一旦在狀態32B中,MCI控制器5繼續壓入數據寄存器,直到兩個寄存器保持要被壓入。例如,若指令要求壓入6個數據寄存器,MCI控制器5往復路徑34I三次,每次壓入一個數據寄存器,直到當前要被壓入的數據寄存器等於最大可用的數據寄存器(DMAX)減一。即當兩個數據寄存器保持要被壓入為止。
在往復路徑34I時,MCI控制器5確認PUSH_DREG信號,D_REG_PRESELECT信號和MCI_PRESTALL信號。當兩個數據寄存器保持要被壓入時,MCI控制器5經路徑340遷移到狀態32A,同時壓入一個餘下的數據寄存器。在此遷移期間,MCI控制器5不確認MCI_PRESTALL。在MCI控制器5往復路徑34E並壓入餘下的數據寄存器之後的一個時鐘周期,指令解碼器12接收新的指令。
類似地,對需要指令解碼單元12分派三個或多個指針寄存器壓入操作的PUSH POP MULTIPLE指令,狀態機從WAIT狀態經路徑34J遷移到狀態32D。在遷移期間,MCI控制器確認PUSH_PREG信號並確認P_REG_PRESELECT,引起執行單元15壓入第一指針寄存器。此外,MCI控制器5確認MCI_PRESTALL信號,引起停頓控制器8停頓流水線4的一個或多個階段。在狀態32D,MCI控制器5通過往復路徑34N壓入指針寄存器,直到兩個指針寄存器保持要被壓入。在往復路徑34N時,MCI控制器5確認PUSH_DREG信號,D_REG_PRESELECT信號和MCI_PRESTALL信號。一旦兩個數據寄存器保持被壓入,MCI控制器5經路徑34K遷移到狀態32C,同時壓入一個指針寄存器。在此遷移期間,MCI控制器5不確認MCI_PRESTALL。以此方式,流水線4在MCI控制器5經路徑34G遷移到WAIT狀態並壓入餘下的指針寄存器後的下一時鐘周期上重新繼續操作。
除了上述功能,PUSH POP MULTIPLE指令能指定多個數據寄存器和多個指針寄存器。通常,狀態機30設計成首先壓入數據寄存器,隨後是指針寄存器,雖然本發明不限於此。
對於指定壓入單個數據寄存器和單個指針寄存器的PUSH MULTIPLE指令,MCI控制器5經路徑34F』遷移到狀態32C,並確認PUSH_DREG信號以壓入數據寄存器。接著,MCI控制器5經路徑34G遷移回到WAIT狀態並壓入指針寄存器。
對指定壓入一個數據寄存器和多個指針寄存器的PUSH MULTIPLE,MCI控制器5經路徑34J』遷移到狀態32D,並確認PUSH_DREG信號,D_REG_PRESELECT信號和MCI_PRESTALL信號以壓入數據寄存器。接著,MCI控制器5通過往復路徑34N壓入除二個指針寄存器外的所有指針寄存器,通過往復路徑34K壓入一個指針寄存器並通過往復路徑34G壓入最後指針寄存器並返回WAIT狀態。
最後,對指定壓入多個數據寄存器及至少一個指針寄存器的PUSH POPMULTIPLE指令,MCI控制器5經路徑34H』遷移到狀態32B,並確認PUSH_DREG信號,D_REG_PRESELECT信號和MCI_PRESTALL信號以壓入第一個數據寄存器。接著,MCI控制器5通過往復34I』壓入除一個數據寄存器外的所有數據寄存器。若該指令指定壓入單個指針寄存器,MCI控制器5通過往復路徑34M壓入最後的數據寄存器並通過往復路徑34G壓入單個指令寄存器。否則,MCI控制器5通過往復路徑34L壓入最後的數據寄存器並通過往復路徑34N壓入多個指針寄存器,若必要34N在34K和34G之前。
圖4示出在MCI控制器5中狀態機的示例性狀態圖40,用於從堆棧彈出多個寄存器。MCI控制器5按照狀態圖40操作,以響應PUSH POP MULTIPLE指令,它指定一個或多個寄存器從存儲器中堆棧彈出。在按狀態圖40操作時,MCI控制器5能確認一個或多個MCI信號7,它包括指導流水線4彈出一個數據寄存器的POP_DREG信號,和指導流水線4彈出一個指針寄存器的POP_PREG信號。此外,MCI控制器5能確認初始化指出彈出哪個數據寄存器的計數器的D_REG_PRESELECT信號,或初始化指出彈出哪個指針寄存器的計數器的P_REG_PRESELECT信號。MCI控制器5還能確認MCI_PRESTALL信號,以在下一時鐘周期停頓流水線4。
下表綜合了引起MCI控制器5在狀態圖40的狀態之間遷移的條件和被確認的對應輸出,其中D是指出要彈出一個數據寄存器的指令位,P是指出要彈出一個指針寄存器的指令位,DR是指出從堆棧彈出的最後數據寄存器的指令欄位,PR是指出從堆棧彈出的最後指針寄存器的指令欄位,D_TAG表示彈出的當前數據寄存器,P_TAG表示彈出的當前指針寄存器,DMAX表示在可用的數據寄存器範圍內的最大數據寄存器,PMAX表示在可用的指針寄存器範圍內的最大指針寄存器


表2最初,MCI控制器5在WAIT狀態開始,直到由取指令單元11取出指令並由解碼單元12解碼。若指令不是PUSH POP MULTIPLE指令,MCI控制器5如路徑44A所示返回到WAIT狀態。
若指令是PUSH POP MULTIPLE指令,它指導處理器2彈出單個指針寄存器而無數據寄存器,則MCI控制器5確認POP_DREG信號並經路徑44B返回到WAIT狀態。若指令是POP MULTIPLE命令並命令處理器2彈出單個數據寄存器,則MCI控制器5確認POP_DREG信號並經路徑44C返回到WAIT狀態。
若該指令指定彈出兩個指針寄存器或數據寄存器,MCI控制器5分別經路徑44D或44F改變狀態到狀態42A或狀態42C。MCI控制器5確認POP_PREG信號同時遷移到狀態42A,或確認POP_DREG信號同時遷移到狀態42C。此外,在沿路徑44D遷移時,MCI控制器5確認初始化計數器的P_REG_PRESELECT信號,其計數指出彈出哪個指針寄存器。類似地,在沿路徑44F遷移時,MCI控制器5確認初始化計數器的D_REG_PRESELECT信號,其計數指出彈出哪個數據寄存器。
在彈出兩個指針寄存器的第一個之後,MCI控制器5從狀態42A經路徑44E返回到WAIT狀態。在此遷移期間,MCI控制器5再次確認POP_PREG並不確認P_REG_PRESELECT,引起執行單元15彈出另外指針寄存器。類似地,在彈出兩個數據寄存器的第一個之後,MCI控制器5從狀態42C經路徑44G返回到WAIT狀態。在此遷移期間,MCI控制器5確認POP_DREG並不確認D_REG_PRESELECT,引起執行單元15彈出另外數據寄存器。
對於需要指令解碼單元12分派三個或更多指針寄存器的彈出操作的POPMULTIPLE指令,MCI控制器5從WAIT狀態經路徑44H遷移到狀態42B。在遷移期間,MCI控制器8確認POP_PREG信號並確認P_REG_PRESELECT,引起執行單元15彈出第一個指針寄存器。此外,MCI控制器5確認MCI_PRESTALL信號,引起停頓控制器8在下一時鐘周期停頓流水線的一個或多個階段。一旦在狀態42B,MCI控制器5繼續彈出指針寄存器,直到只有兩個指針寄存器保持要被彈出。例如,若指令要求壓入6個指針寄存器,MCI控制器5往復路徑44I三次,每次彈出一個指針寄存器,直到要彈出的當前指針寄存器等於最大可用指針寄存器(PMAX)減一,即到只有兩個寄存器保持要被彈出時。
在往復路徑44I時,MCI控制器5確認POP_PREG信號,P_REG_PRESELECT信號和MCI_PRESTALL信號。當兩個指針寄存器保持要彈出時,MCI控制器經路徑440遷移到狀態42A,同時彈出一個餘下的指針寄存器。在此遷移期間,MCI控制器5不確認MCI_PRESTALL。指令解碼器12在MCI控制器5往復路徑44E並彈出餘下的指針寄存器之後的周期接收新的指令。
類似地,對需要指令解碼單元12分派三個或更多數字寄存器彈出操作而沒有指針寄存器彈出操作的PUSH POP MULTIPLE指令,MCI控制器5從WAIT狀態經路徑44J遷移到狀態42D。在遷移期間,MCI控制器8確認POP_DREG信號並確認D_REG_PRESELECT,引起執行單元15彈出第一指針寄存器。此外,MCI控制器5確認MCI_PRESTALL信號,引起停頓控制器8停頓流水線4的一個或多個階段。在狀態42D,MCI控制器5通過往復路徑44N彈出數據寄存器,直到兩個數據寄存器保持要被彈出。在往復路徑44N的同時,MCI控制器5確認POP_DREG信號,D_REG_PRESELECT信號和MCI_PRESTALL信號。一旦兩個數據寄存器保持要被彈出,MCI控制器5經路徑44K遷移到狀態42C,同時彈出一個數據寄存器。在此遷移期間,MCI控制器5不確認MCI_PRESTALL。然後,MCI控制器5經路徑44G遷移到WAIT狀態,並彈出餘下的數據寄存器。
除上述功能以外,PUSH POP MULTIPLE指令能指定彈出多個數據寄存器和多個指針寄存器。通常,狀態機30設計成首先彈出指針寄存器,隨後是數據寄存器,雖然本發明不限於這樣。
對指定彈出單個指針寄存器和單個數據寄存器的PUSH POP MULTIPLE指令,MCI控制器5經路徑44F』遷移到狀態44C,並確認POP_PREG信號以彈出指針寄存器。接著,MCI控制器5經路徑44G遷移回到WAIT狀態,確認POP_DREG信號並彈出數據寄存器。
對指定彈出一個指針寄存器和多個數據寄存器的PUSH POP MULTIPLE指令,MCI控制器5經路徑44J』遷移到狀態42D並確認POP_PREG信號,P_REG_PRESELECT信號和MCI_PRESTALL信號以彈出指針寄存器。接著,MCI控制器5通過往復路徑44N彈出除兩個數據寄存器外的所有數據寄存器,通過往復路徑44K彈出一個數據寄存器,並彈出最後的數據寄存器,並通過往復路徑44G返回到WAIT狀態。
最後,對指定彈出多個指針寄存器和至少一個數據寄存器的POP MULTIPLE指令,MCI控制器5經路徑44H』遷移到狀態42B,並確認POP_PREG信號和P_REG_PRESELECT信號以彈出第一指針寄存器。接著,MCI控制器5通過往復路徑44I彈出除一個指針寄存器的所有指針寄存器。若指令指定彈出單個數據寄存器,MCI控制器5通過往復路徑44M彈出最後的指針寄存器,並通過往復路徑44G彈出單個數據寄存器。否則,MCI控制器5通過往復路徑44L彈出最後指針寄存器,並通過往復路徑44N彈出多個數據寄存器,若需要,在路徑44N後跟隨44K和44G。
指導流水線處理器2按本發明完成多重操作的另外的指令例子是Link指令和Unlink指令。Link指令通常在調用子程序時使用,並引起流水線處理器4在堆棧上壓入子程序的返回地址,在堆棧上壓入幀指針,將堆棧指針移到幀指針並根據由該指令指定的子程序的幀大小更新堆棧指針。Unlink指令在退出子程序時使用,引起流水線處理器2從堆棧還原返回地址,還原堆棧指針並從堆棧還原幀指針。
下面例子說明了Link和Unlink指令
Link1234;Unlink;圖5示出在MCI控制器5中為完成Link命令的操作的狀態機的示例性狀態圖50。在按狀態圖50操作時,MCI控制器5能確認一個或多個MCI信號7,指導流水線4完成相應的操作。此外,MCI控制器5能確認MCI PRESTALL信號以停頓線線4。
下面表綜合了輸出信號,它們在MCI控制器5通過狀態機50遷移時被確認。

表3若現在的指令不是Link命令,則狀態機指導MCI控制器5經路徑54A返回到WAIT狀態。若指令是Link指令,MCI控制器5經路徑54B遷移到狀態52B並確認PUSH_RTS信號,引起解碼單元12分派在堆棧上壓入返回地址的操作。此外,MCI控制器5確認MCI_PRESTALL以便在下一時鐘周期停頓流水線4。
接著,MCI控制器5經路徑54C遷移到狀態52C,確認PUSH_FP,引起解碼單元12分派在堆棧上壓入幀指針寄存器的操作,並確認MCI_PRESTALL以便在下一時鐘周期停頓流水線4。然後MCI控制器5經路徑54D遷移到狀態52D,並確認MOVE_SP_TO_FP,引起指令解碼器12分派將堆棧指針寄存器的內容移到幀指針寄存器。最後,MCI控制器5經路徑54E遷移到WAIT狀態,並確認UPDATE_SP,引起指令解碼器12分派如由指令指定的從堆棧指針減去幀大小的操作。
圖6示出在MCI控制器5中為完成Unlink命令的操作狀態機的示例性狀態圖。下表綜合了MCI控制器5在通過狀態機60遷移時確認的輸出信號

表4若現在的指令不是Unlink命令,則狀態機60指導MCI控制器5經路徑64A返回到WAIT狀態。若指令是Unlink指令,MCI控制器5經路徑64B遷移到狀態62B,並確認LOAD_RTS信號,引起指令解碼單元12確認控制信號,它引起從堆棧取出返回地址,如RETS=[FP+4]。此外,MCI控制器5確認MCI_PRESTALL,以便在下一時鐘周期停頓流水線4。
接著,MCI控制器5經路徑64C遷移到62C並確認LOAD_SP,引起指令解碼單元12確認控制信號,它引起如下設置堆棧指針SP=FP+8。
最後,MCI控制器5經路徑64D遷移回到WAIT狀態,並確認UPDATE_FD,引起指令解碼單元12確認控制信號,它引起從堆棧加載幀指針,如FP=[FP]。
圖7是示出停頓控制器8的一部分的示例性實施例的原理圖。停頓控制器8能接收若干輸入信號,如STALL_CONDITION_1到STALL_CONDITION_8,它們可以在檢測到相應停頓條件時被確認。這些輸入信號僅是為了示例性目的;例如停頓控制器8可接收任何數目不同的停頓信號用於流水線4的各個階段。
響應輸入停頓條件信號,停頓控制器8能產生停頓信號9來停頓流水線4。停頓控制器8能產生多個停頓信號9,它們對應於流水線4的各個階段。例如,當STALL_CONDITION_1或STALL_CONDITION_2被確認,且處理器2不在復位狀態時,停頓控制器8能確認STALL_WB輸出信號,導致流水線4的WB階段的停頓。值得注意,STALL_WB輸出信號用於產生對流水線4的較早階段的停頓輸出信號,如STALL_EX輸出信號。更具體說,當STALL_CONDITION_3,STALL_CONDITION_4或STALL_WB被確認且處理器2不在復位狀態,停頓控制器8確認STALL_EX輸出信號。以此方式,在WB階段的停頓強制在WX階段的停頓。停頓控制器8類似地根據單獨的危險條件產生STALL_AC和STALL_DEC信號,並在流水線4的較後階段停頓。
當引起解碼階段停頓的條件出現時,停頓控制器8確認STALL_DEC_MCI信號,它引起MCI控制器停頓。更具體說,當STALL_DEC_MCI被確認時,MCI控制器5不從其當前位置遷移。
停頓控制器8的停頓定時線路72從MCI控制器5接收MCI_PRESTALL信號,並作為響應確認MCI_STALL信號。或門70接收由停頓定時線路72提供的MCI_STALL線路並確認STALL_DEC信號,從而停頓解碼階段和流水線4的較早階段。
圖8是時序圖,說明了停頓控制器8能得益於在流水線4的解碼階段檢測MCI指令,以增加流水線4的性能。在一個實施例中,在流水線4的IF階段的預解碼器在早於解碼階段一個階段解碼MCI指令。若MCI指令被預解碼,預解碼器確認MCI_PREDECODE信號。在MCI指令移到解碼階段的下一時鐘周期時,MCI_STALL_1ST_CYCLE信號被確認,它是MCI_PREDECODE信號的反轉(floppedVersion)。停頓控制器5根據MCI_STALL_FIRST_CYCLE信號和MCI_STALL_REMATNDER信號的邏輯或提供MCI_STALL信號。MCI_STALL_REMAINDER信號是MCI_PRESTALL的反轉,後者如上所述由MCI控制器5的狀態邏輯控制。
圖9是用於根據從預解碼器接收的MCI_PREDECODER信號和從MCI控制器5接收的MCI_PRESTALL信號產生MCI_STALL的示例性停頓時序線路72的原理圖。在MCI指令處於解碼階段的第一周期期間,在MCI指令處於解碼階段的第一周期期間,在MCI_PREDECODE的反轉被確認且沒有當前的MCI被執行時,OR門92確認MCI_STALL。對需要多個一個停頓周期的MCI指令,停頓時序線路72根據從MCI控制器5接收的MCI_PRESTALL信號產很其餘的停頓周期。
圖10是用於產生表示當前要壓入或彈出的數據寄存器的數據寄存器值(D_TAG)的示例性數據寄存器地址生成線路100的原理圖。D_TAG能包括多個數據線,如三根數據線,它們能表示數據寄存器的範圍。
對壓入操作,線路100從起始數據寄存器向上計數到最大數據寄存器。對彈出操作,線路100通過寄存器的範圍向下計數到最後的數據寄存器。更具體說,在第一周期,多路復用器102在最大數據寄存器(DMAX)或從指令欄位(DR)的起始數據寄存器(如數據寄存器5)之間,根據PPM_SELECT是否對壓入操作確認並對彈出操作不確認而選擇。
由MCI控制器5提供的D_REG_PRESELECT輸出信號使多路復用器104在MCI指令的第一周期選擇多路復用器102的輸出,在餘下周期選擇存儲線路108的輸出。多路復用器104的輸出D_TAG根據PPM_SELECT由加法器106增量或減量,並反饋到存儲線路108。輸出信號D_TAG饋給流水線4的指令解碼單元12用於壓入或彈出寄存器並作為輸出饋回給MCI控制器5的狀態控制邏輯。
圖11是示例性指針寄存器地址生成線路110的原理圖,用於輸出表示要壓入或彈出的當前指針寄存器的指針寄存器值(P_TAG)。類似於圖10的線路100,線路110對彈出操作遞減計數通過寄存器的範圍,而對壓入操作從起始指針寄存器遞增計數。
已描述了本發明的各個實施例。例如,已描述了流水線處理器,它包括提供輸出復位信號到執行流水線的至少一個階段的復位單元。該復位單元處理如硬復件,軟復件和模擬復位那樣的復位請求,作為具有指定優先級的復位事件。
該處理器能在各種系統中實現,包括通用計算系統,數位訊號處理系統,膝上計算機,個人數字助理(PDA)和行動電話。在那樣的系統中,處理器能連接如快閃記憶體設備或靜態隨機存儲器(SRAM)那樣的存儲器設備,它們存儲作業系統或其它軟體應用。這些和其它實施例是在下列權利要求的範圍之中。
權利要求
1.一種方法,其特徵在於,包括在流水線處理器中接收多周期指令;在流水線處理器的流水線的一個階段中停頓該多周期指令;在多周期指令停頓對產生多個指令到流水線的後續階段。
2.如權利要求1的方法,其特徵在於,還包括在解碼多周期指令前檢測停頓條件。
3.如權利要求2的方法,其特徵在於,檢測停頓條件包括判定所接收的指令是否包括多周期指令;判定由多周期指令指定的若干寄存器。
4.如權利要求1的方法,其特徵在於,還包括在完成多周期指令前的至少兩個周期不確認預停頓信號;和在完成多周期指令前的至少一個周期不確認停頓信號。
5.如權利要求1的方法,其特徵在於,停頓MCI包括在流水線的解碼階段停頓MCI。
6.如權利要求1的方法,其特徵在於,產生多條指令包括當多周期指令停頓時產生同一指令若干次。
7.如權利要求6的方法,其特徵在於,產生同一指令若干次包括產生一條壓入指令。
8.如權利要求1的方法,其特徵在於,產生多條指令包括當多周期指令停頓時產生若干不同的指令。
9.如權利要求8的方法,其特徵在於,產生若干不同的指令包括產生指令在堆棧上壓入子程序的返回地址,在堆棧上壓入幀指針,將堆棧指針送到幀指針,並根據子程序的幀大小更新該堆棧指針。
10.如權利要求1的方法,其特徵在於,產生多條指令包括按照狀態機產生指令。
11.如權利要求1的方法,其特徵在於,停頓多周期指令包括當該多周期指令指定彈出和壓入多個寄存器的至少一個時確認停頓信號。
12.一種方法,其特徵在於,包括接收指導流水線處理器從堆棧彈出一個或多個寄存器的多周期指令;在流水線處理器的流水線中的一個階段中停頓該多周期指令;按狀態機產生多條指令到流水線中的後續階段。
13.如權利要求12的方法,其特徵在於,當該多周期指令彈出兩個寄存器時,產生多條指令包括從第一狀態遷移到第二狀態並產生第一彈出指令;和從第二狀態遷移回到第一狀態並產生第二彈出指令。
14.如權利要求12的方法,其特徵在於,當該多周期指令指定從堆棧彈出三個或更多寄存器時,產生多條指令包括從第一狀態遷移到第二狀態並產生第一彈出指令;產生若干彈出指令,直到兩個寄存器保持要被彈出;從第二狀態遷移到第三狀態並產生另外指令彈出倒數第二個寄存器;和從第三狀態遷移回到第一狀態並產生彈出指令來彈出最後的寄存器。
15.如權利要求12的方法,其特徵在於,當多周期指令指定從堆棧彈出多個數據寄存器和多個指針寄存器時,產生多條指令包括從第一狀態遷移到第二狀態並發出第一指令來彈出一個指針寄存器;產生若干彈出指令直到一個指針寄存器保持要被彈出;從第二狀態遷移到第三狀態並產生另外彈出指令來彈出最後的指針寄存器;產生若干彈出指令直到兩個數據寄存器保持要被彈出;從第三狀態遷移到第四狀態並產生彈出指令來彈出倒數第二個數據寄存器;和從第四狀態遷移回到第一狀態並產生彈出指令來彈出最後的數據寄存器。
16.如權利要求12的方法,其特徵在於,停頓多周期指令包括在該多周期指令指定彈出多個寄存器時確認停頓信號。
17.一種方法,其特徵在於,包括接收指導流水線處理器在堆棧上壓入一個或多個寄存器的多周期指令;在流水線處理器的流水線中的一個階段中停頓該多周期指令;和按狀態機產生多條壓入指令到流水線的後續階段。
18.如權利要求17的方法,其特徵在於,在多周期指令指定壓入兩個寄存器時,產生多條指令包括從第一狀態遷移到第二狀態並產生第一壓入指令;和從第二狀態遷移回到第一狀態並產生第二壓入指令。
19.如權利要求17的方法,其特徵在於,在多周期指令指定在堆棧上壓入兩個或更多寄存器時,產生多條指令包括從第一狀態遷移到第二狀態並產生第一壓入指令;產生若干壓入指令直到兩個寄存器保持要被壓入;從第二狀態遷移到第三狀態並產生另外壓入指令來壓入倒數第二個寄存器;和從第三狀態遷移回到第一狀態並產生壓入指令來壓入最後的寄存器。
20.如權利要求17的方法,其特徵在於,當該多周期指令指定在堆棧上壓入多個數據寄存器和多個指針寄存器時,產生多條指令包括從第一狀態遷移到第二狀態並產生第一指令來壓入一個數據寄存器;產生若干壓入指令直到一個數據寄存器保持要被壓入;從第二狀態遷移到第三狀態並產生另外壓入指令來壓入最後的數據寄存器;產生若干壓入指令,直到兩個指針寄存器保持要被壓入;從第三狀態遷移到第四狀態並產生壓入指令來壓入倒數第二個指針寄存器;和從第四狀態遷移回到第一狀態並產生壓指令來壓入最後的指針寄存器。
21.如權利要求17的方法,其特徵在於,停頓多周期指令包括在多周期指令指定壓入多個寄存器時確認停頓信號。
22.一種裝置,其特徵在於,包括具有多個階段的執行流水線;和適應於確認停頓信號,以停頓進入執行流水線的一個階段的多周期指令的多周期指令(MCI)控制器,其中當多周期指令停頓時,MCI控制器產生多條指令到流水線的後續階段。
23.如權利要求22的裝置,其特徵在於,還包括停頓控制器,它從MCI控制器接收MCI控制器停頓信號並產生多個停頓信號來停頓保持MCI指令的階段和流水線中的以前階段。
24.如權利要求22的裝置,其特徵在於,MCI控制器適應於當多周期指令停頓時產生同一指令若干次。
25.如權利要求22的裝置,其特徵在於,MCI擴展器適應於產生多條指令,指導流水線壓入多個寄存器。
26.如權利要求22的裝置,其特徵在於,MCI控制器適應於當多周期指令停頓時產生若干不同的指令。
27.如權利要求22的裝置,其特徵在於,MCI控制器適應於產生指令在堆棧上壓入子程序的返回地址,在堆棧上壓入幀指針,傳送堆棧指針到幀指針並根據子程序的幀大小更新堆棧指針。
28.如權利要求22的裝置,其特徵在於,MCI控制器在多周期指令指定彈出或壓入多個寄存器時確認停頓信號。
29.一種系統,其特徵在於,包括快閃記憶體設備;和連接到該快閃記憶體設備的處理器,其中該處理器包括具有多個極端的執行流水線和適應於確認停頓信號以在執行流水線的一個階段中停頓多周期指令的多周期指令(MCI)控制器;其中該MCI控制器適應於在多周期指令停頓時產生多條指令到流水線的後續階段。
30.如權利要求29的系統,其特徵在於,該處理器還包括停頓控制器,它從MCI控制器接收MCI控制器停頓信號並產生多個停頓信號來停頓保持MCI指令的階段及流水線中的以前階段。
31.如權利要求29的系統,其特徵在於,MCI控制器適應於在多周期指令被停頓時產生同一指令若干次。
32.如權利要求29的系統,其特徵在於,MCI控制器適應於在多周期指令被停頓時產生若干不同的指令。
33.如權利要求29的系統,其特徵在於,MCI控制器在多周期指令指定彈出和壓入多個寄存器至少一個時確認停頓信號。
34.一種方法,其特徵在於,包括接收Link機器指令;在流水線處理器的流水線中的一個階段中停頓多周期指令;和通過按狀態機產生多條指令到流水線中的後續階段,執行該Link指令。
35.如權利要求34的方法,其特徵在於,產生多條指令包括從第一狀態遷移到第二狀態並產生一指令在堆棧上壓入返回地址;從第二狀態遷移到第三狀態並產生一指令在堆棧上壓入幀指針;從第三狀態遷移到第四狀態並產生一指令將堆棧指針傳送到幀指針;和從第四狀態遷移回到第一狀態並產生一指令,根據由多周期機器指令的幀大小更新堆棧指針。
36.一種方法,其特徵在於,包括接收unlink機器指令;在流水線處理器的流水線中的一個階段中停頓該多周期指令;和通過按狀態機產生多條指令到流水線中的後續階段,執行unlink指令。
37.如權利要求36的方法,其特徵在於,產生多條指令包括從第一狀態遷移到第二狀態並產生指令從堆棧復原返回地址;從第二狀態遷移到第三狀態並產生指令復原堆棧指針;和從第三狀態遷移回到第一狀態並產生指令從堆棧復原幀指針。
38.一種裝置,其特徵在於,包括控制在流水線處理器中產生多個子操作,以響應多周期機器指令的狀態機邏輯;和適應於產生在子操作執行期間使用的寄存器地址的地址生成單元。
39.如權利要求38的裝置,其特徵在於,地址生成單元包括增量或減量當前寄存器地址的計數器。
40.如權利要求38的裝置,其特徵在於,地址生成單元包括存儲當前寄存器地址的時鐘脈衝驅動的存儲線路。
全文摘要
在一個實施例中描述了流水線處理器,它包括具有多個階段的執行流水線和適應於確認停頓信號以便在執行流水線的一個階段中停頓該多周期指令的多周期指令(MCI)控制器。該MCI控制器適應於在多周期指令被停頓時產生多條指令到流水線的後續階段。
文檔編號G06F9/30GK1479892SQ01820175
公開日2004年3月3日 申請日期2001年12月6日 優先權日2000年12月6日
發明者C·P·羅思, R·P·辛格, G·A·奧弗坎普, C P 羅思, 奧弗坎普, 辛格 申請人:英特爾公司, 模擬設備股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀