一種數據處理器,用于執行存儲在指令存儲器中的指令,所述指令由程序計數器指定,所述處理器包括: -操作執行單元,用于執行由所述程序計數器指示的指令;和 -循環控制電路,可用于: -為多個指令循環存儲各個相關的循環信息;一個指令循環的循環信息至少包括循環結束標識和用于指示循環應被執行次數的循環計數; -檢測循環之一需要被執行并響應所述檢測,為相應的循環加載循環信息,并根據加載的循環信息控制程序計數器執行相應的循環; -響應于循環初始化指令初始化循環信息,其中所述初始化指令在由循環信息初始化的循環開始之前發送并且與所述循環開始無關。(*該技術在2023年保護過期,可自由使用*)
【技術實現步驟摘要】
【國外來華專利技術】
本專利技術涉及一種數據處理器的循環控制電路、一種具有循環控制電路的數據處理器,和一種在數據處理器中執行循環的方法。
技術介紹
處理器的性能日益增強。這使得傳統上使用硬件實現的功能通過適當程序控制下的處理器就能得以執行。還能夠以提高的質量對新的功能或現有功能進行基于軟件的信號處理。新功能性的一個例子是第三代無線通信,例如基于UMTS/FDD、TDD、IS2000和TD-SCDMA標準。這些系統工作在非常高的頻率。用于3G移動通信標準例如UMTS的調制解調器(收發器)需要約比GSM高100倍的數字信號處理能力。期望使用可編程的架構來實現這種標準的收發器以便能夠處理不同的標準和能夠靈活的適用于新的標準。使用工作在傳統頻率下的傳統DSP技術可能需要多至30個DSP以提供所需的性能。將清楚看到與傳統的單一標準的收發器的基于硬件的方案相比,這樣一種方案既非成本高效的,也非能力高效的。處理器的數字信號處理能力可通過使用流水線技術得到提高。US4792892描述了一種流水線式處理器。為了執行循環控制指令,該指令指定對“I”指令序列重復執行N次,所述處理器包括一具有指令計數器的環路電路,所述計數器對循環序列中的指令的執行進行計數并且在每次完成循環時產生一序列結束信號。使用寄存器來響應于每個序列結束信號用所述循環中的第一指令的地址刷新程序計數器。使用一循環計數器對所述循環的完成數量進行計數并發出表示整個程序的循環部分的結尾的信號,并且使程序計數器對程序的剩余部分繼續操作。流水線式計算的關鍵在于,必須與窄結構一致地給出和讀取自變量和結果。所披露的流水線式處理器允許循環控制指令在所述循環開始之前對將要執行的循環初始化多個“D”指令。所述循環控制電路并入一個計數器以便在啟動執行所述循環序列“N”次之前對“D”指令進行計數。所述已知的系統對包括一個循環的流水線式操作提供了更多的調度自由度。改進處理器性能的另一種方法是使用向量處理器。一個向量包括一個以上的數據元素,例如十六個16位的元素。處理器的功能單元對由一個指令觸發的向量的所有個體數據元素同時起作用。傳統的向量處理器體系結構對沒有高度向量化的應用無效。對于在消費類電子應用中的使用,尤其是用在移動通信中,只有在獲得有效的加速的情況下才能證明向量處理器的額外成本是適當的。
技術實現思路
本專利技術的目的是提供一種處理器、循環控制電路和執行更好支持高性能處理的循環的方法。為了達到本專利技術的目的,本專利技術提供一種數據處理器,用于執行存儲在一指令存儲器中的指令,所述指令由一程序計數器指定,所述處理器包括操作執行單元,用于執行由所述程序計數器指示的指令;和循環控制電路,可用于為多個指令循環存儲各個相關的循環信息;一個指令循環的循環信息至少包括循環結束標識和用于指示循環應執行的次數的循環計數;檢測循環之一需要被執行并響應所述檢測,為相應的循環加載循環信息,并根據加載的循環信息控制程序計數器執行相應的循環;響應于循環初始化指令初始化循環信息,其中所述初始化指令在由循環信息初始化的循環開始之前發送并且與所述循環開始無關。根據本專利技術,可初始化多個循環,其中循環初始化獨立于循環的開始。對每個循環至少存儲循環計數和循環結束標識(例如,以循環序列中最后指令的地址的形式或以序列中若干指令的形式,從而能夠指定相對于序列開始地址的序列結束)。在US4792892的現有系統中,自從循環初始化指令開始已經執行了“D”指令之后,循環被自動開始。使用到一個以上循環時,這樣一種方案即使可行也是特別困難,因為可能還不知道在多少個指令之后才需要啟動第二循環。還應該注意零開銷循環實現過程可從允許指定多個循環的飛利浦電子公司的R.E.A.L.DSP獲知。這種DSP允許通過使用循環初始化指令指定循環結束地址來預先初始化循環。循環初始化(即,開始)與循環初始化的剩余部分相結合,其中循環計數器被指定。假設循環計數器自動初始化相應的循環。這意味著循環的開始總是需要一個插入到指令流中的專用循環初始化/初始指令。在從屬權利要求2所規定的優選實施例中,所述循環控制電路可用于以嵌套的形式執行多個指令循環,其中在開始執行緊鄰的周圍循環之前對內循環進行初始化。這大大降低了初始化執行循環中所涉及的系統開銷。優選的,所有循環初始化都是在最外循環外面執行的。在該情況下,沒有指令周期專用于在嵌套循環內進行循環初始化。本專利技術者已經意識到特別是數字信號處理涉及短循環的頻繁執行。2或3等級深度的循環嵌套經常出現。例如,為了處理圖像,最外循環可涉及處理圖像幀或字段,其中下一個等級的循環涉及處理幀/字段中的像素塊,且第三等級可涉及處理所述塊內的像素。傳統的,循環初始化處于循環開始之前的相同嵌套等級上。在具有三個嵌套等級的程序中,其中每個循環執行10次(因此最內循環被執行1000次),最外循環被初始化一次,第二循環被初始化10次,而內部循環被初始化100次。在根據本專利技術的系統中,在開始執行第一循環之前,可在最高等級上對所有循環進行初始化。這意味著只需要三次循環初始化,而不是已知系統中的111次。這也使所述循環電路高度適用于向量處理器。盡管能夠對循環內的指令進行向量化,但循環的初始化難于向量化。使用根據本專利技術的方案,典型程序中的非向量化指令的數量可被減少。就其自身而言,可使用各種方式來確定/指示循環的開始。如從屬權利要求3所述,操作執行單元的每個指令包括一循環開始字段,其能夠指出所述指令是形成將由操作執行單元執行的指令循環的指令序列的第一指令。例如,可對規則指令(典型的能在一個指令循環中出現的那些指令)添加一位來指示該指令是否為循環的開始。以這種方式,不需要提供循環的開始位置和/或時間的標識。應該意識到這是以在所述指令中使用至少一個附加位為代價的。指令尺寸的這種增加可通過使用指令壓縮來減小。如權利要求4所述的措施,響應于檢測到所述循環開始字段指出一個指令循環的開始,所述循環控制電路可在與所述循環相關的循環信息中存儲循環的開始地址標識。例如,循環控制電路可從程序計數器檢索當前指令的地址并將它存儲在寄存器中。每次接收到循環的結束(如通過為循環存儲的結束信息所指出的),都能夠從寄存器檢索開始地址。如果希望,也可以以相對于循環結束的偏移(如循環信息中所指出的)的形式例如通過指出循環中的指令數量來存儲開始地址。根據從屬權利要求5所述的措施,根據連續的循環嵌套等級來存儲循環信息,其中對于各個嵌套等級上的循環信息,每個時刻至多只能指定一個循環;所述循環控制電路可用于存儲正被執行的指令的當前嵌套等級;和響應于通過檢測循環開始字段檢測循環的開始來更新嵌套等級;以及通過將程序計數器與為所述循環存儲的循環結束標識進行比較來檢測循環的結束。僅使用一位循環開始標識符就能夠啟動嵌套的循環,其中在每個嵌套等級處至多只能有一個循環。那么開始字段中的標識就含蓄的指出將啟動哪個循環(即下一個較深等級上的循環)。類似的,退出循環意味著控制返回至下一較高的等級(在最高的等級上,沒有循環在執行,但通常隨后的處理(可以是流水線式的和/或向量化式的)將發生)。假定更深的循環由更高的數表示,則進入循環將導致嵌套等級(或類似的,循環數量)的增加,而退出循環導致嵌套等級的遞減。為了克服在每個嵌套等級上只能初始化一個本文檔來自技高網...
【技術保護點】
【技術特征摘要】
【國外來華專利技術】1.一種數據處理器,用于執行存儲在指令存儲器中的指令,所述指令由程序計數器指定,所述處理器包括-操作執行單元,用于執行由所述程序計數器指示的指令;和-循環控制電路,可用于-為多個指令循環存儲各個相關的循環信息;一個指令循環的循環信息至少包括循環結束標識和用于指示循環應被執行次數的循環計數;-檢測循環之一需要被執行并響應所述檢測,為相應的循環加載循環信息,并根據加載的循環信息控制程序計數器執行相應的循環;-響應于循環初始化指令初始化循環信息,其中所述初始化指令在由循環信息初始化的循環開始之前發送并且與所述循環開始無關。2.根據權利要求1所述的數據處理器,其中所述循環控制電路可用于以嵌套的形式執行多個指令循環,其中在開始執行緊鄰的周圍循環之前對內循環進行初始化。3.根據前述任何一個權利要求所述的數據處理器,其中用于操作執行單元的每個指令包括一循環開始字段,其能夠指出所述指令是形成將由操作執行單元執行的指令循環的指令序列的第一指令。4.根據權利要求3所述的數據處理器,其中所述循環控制電路可響應于檢測到所述循環開始字段指出一個指令循環的開始,而在與所述循環相關的循環信息中存儲該循環的開始地址標識。5.根據權利要求2和3所述的數據處理器,其中根據連續的循環嵌套等級來存儲循環信息,其中對于各個嵌套等級上的循環信息,每個時刻至多只能指定一個循環;所述循環控制電路可用于存...
【專利技術屬性】
技術研發人員:P·P·E·穆維斯森,N·恩吉,C·H·范伯克,M·J·G·貝庫伊,
申請(專利權)人:皇家飛利浦電子股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。