專利名稱:數字計數器和用于測量時段的方法
技術領域:
本發(fā)明涉及一種諸如被用在例如信息技術微處理器中的數字計數器以及一種用于測量兩個事件之間的時段的方法。
背景技術:
根據現(xiàn)有技術的數字計數器包括硬件計數器,所述硬件計數器的值在η位上被編碼。硬件計數器的值通過時鐘來遞增。因而,這個值從初始值(一般為O)增加直到最大值A0當硬件計數器達到它的最大值A時,硬件計數器被認為溢出(overflow)。在溢出之后,硬件計數器被復位。硬件計數器的值的周期特性(behavior)在圖1中通過曲線M示出。
因而,當硬件計數器被用來量化比硬件計數器的周期T短的時段、例如在圖1中所示的時段(b-a)時,硬件計數器內部和它自身(in and of itself)就足夠了。
在另一方面,當硬件計數器被用于量化比硬件計數器的周期T長的時段、例如在圖2中所示的時段(c_a)時,硬件計數器不足夠。
為了測量比硬件計數器的周期T長的時段,根據現(xiàn)有技術公知的數字計數器包括至少一個硬件計數器、一個處理器和一個溢出計數器。溢出計數器被用來量化硬件計數器的溢出數目。更特別地,每當硬件計數器溢出時,處理器就將溢出計數器遞增一個單位。溢出計數器的理想特性在圖2中通過曲線N示出。理想地,這里被觀察到的是,溢出計數器的遞增正好發(fā)生在硬件計數器的溢出時刻。在圖2中所示的例子中,在第一事件(i)與第二事件(j)之間的時段(c-a)因而等于時段b2加上對應于三個溢出的時間,從其中減去時間段a2的值。
這種類型的數字計數器的真實特性是使得軟件計數器的遞增出于在上文所呈現(xiàn)的原因不能與硬件計數器的溢出嚴格同時發(fā)生。
首先,當硬件計數器達到它的最大值A時,進行中的處理操作的中斷被生成,以便允許處理器將溢出計數器遞增。然而,至少由于處理器不得不保存進行中的處理操作的事實,該中斷已經關于硬件計數器的溢出被延遲。如果中斷的優(yōu)先級關于進行中的處理操作的優(yōu)先級是非常高的,那么該延遲僅僅可以被最小化,而不能完全被消除。然而,這里再次,該延遲是由于為了分離地和連續(xù)地執(zhí)行下面的不可避免的步驟所花費的時間: 用于讀取硬件計數器的瞬時值并且用于在用于生成中斷的步驟之前與硬件計數器的最大值A相比較的步驟, 接著,用于將溢出計數器遞增的步驟。
因而,在實踐中,溢出計數器的遞增并不與硬件計數器的溢出同時發(fā)生。溢出計數器的真實特性在圖3中通過曲線O示出,并且中斷中的關于硬件計數器的溢出的延遲在相同的圖中通過符號Λ (其中Λ〈〈Τ)示出。
這個問題根據現(xiàn)有技術是公知的, 并且存在用于校正溢出計數器的遞增中的關于硬件計數器的溢出的延遲的軟件解決方案。這些軟件解決方案之一在于確定中斷是否是懸而未決的(pending),以及在于相應地調整溢出計數器的計數。另一軟件解決方案(不是不包括第一軟件解決方案在內)在于在硬件計數器的比硬件計數器的最大值A低的給定閾值內請求中斷。該解決方案要求用于讀取硬件計數器的瞬時值并且用于與所述給定閾值相比較的步驟,并且可以根據所述給定閾值被優(yōu)化。然而,一方面,這些軟件解決方案的實施是復雜和麻煩的(達到這種程度以致:由于這些軟件解決方案需要高優(yōu)先級,所以這些軟件解決方案顯著延遲了進行中的處理操作),而在另一方面,這些軟件解決方案僅僅允許所犯的錯誤被校正,而不能消除該錯誤。為了消除所述所犯的錯誤,對于在硬件計數器的每個溢出與用于將溢出計數器遞增的處理器中斷之間的一致的需求必須被防止發(fā)生。出于這個目的,所參考的專利US6,882,697 BI教導了如下軟件解決方案:所述軟件解決方案在于在相同的時段T期間至少兩次讀取硬件計數器的值,同時以這樣的方式選擇讀取時間,使得沒有讀取時間與硬件計數器的溢出一致。更特別地,所提供的解決方案在于在硬件計數器的第一半周期上把硬件計數器與第一軟件計數器相組合,以及在于在硬件計數器的第二半周期上把硬件計數器與第二軟件計數器相組合,使得在其期間兩個軟件計數器中的一個與硬件計數器相組合的半周期并不與其它軟件計數器被遞增的時刻一致。因而,每個組合給出了在它的定義的半周期上的相關持續(xù)時間。該解決方案首先具有要求兩個軟件部分的缺點,這使得該解決方案的實施復雜和麻煩。該解決方案還具有缺點:要求確定標記要被測量的時段的結束的第二事件在硬件計數器的哪個半周期上發(fā)生,以便選擇兩個軟件計數器中的哪個與硬件計數器相組合來給出要被測量的時段。
發(fā)明內容
本發(fā)明旨在:通過提供更簡單、更快的和/或更穩(wěn)定的數字計數器和用于測量兩個事件之間的時段的方法,克服現(xiàn)有技術的一個或多個缺點,所述數字計數器和方法允許與中斷的關于硬件計數器的溢出的延遲相關聯(lián)的問題被避免,并且不僅僅適配于單個處理器系統(tǒng),而且適配于多處理器系統(tǒng),和/或所述數字計數器和方法對進行中的處理操作的影響是非常有限的。出于這個目的,提供了一種用于測量兩個事件之間的時段的方法,其中該方法實施數字計數器,所述數字計數器包括:
硬件計數器,所述硬件計數器的值在η位上被編碼,以及 軟件計數器,所述軟件計數器的值在m位上被編碼,
該方法包括用于在硬件計數器的至少兩個預定值處將軟件計數器遞增的步驟,這兩個值都不與硬件計數器的溢出一致,
使得,數字計數器的值在m+n-1個連貫的位上被編碼,在所述m+n-1個連貫的位中:
η個最低有效位對應于硬件計數器的值,并且
m-Ι個最高有效位根據軟件計數器和硬件計數器的值被限定,
該方法此外還包括:
用于根據硬件計數器在第一事件時的值來使軟件計數器復位的步驟,
用于讀取和用于保存 硬件計數器在第一事件時的值和硬件計數器在第二事件時的值的步驟,
用于基于軟件計數器在第二事件時的值和硬件計數器在第二事件時的值來計算硬件計數器在兩個事件之間的溢出數目的步驟,以及
用于基于硬件計數器在第一事件時的值、硬件計數器在第二事件時的值以及之前所計算的溢出數目來計算兩個事件之間的時段的步驟。該方法因而允許實時約束被避免,并且是更簡單的,至少因為該方法僅僅要求單個軟件計數器在硬件計數器的值的整個范圍上是有效的,并且因為該方法并不要求在第二事件時的任何特定的軟件測試,從而在該第二事件時簡單地讀取硬件計數器和軟件計數器,從而允許計算要被測量的時段。根據一個特征,用于計算硬件計數器在兩個事件之間的溢出數目的步驟包括:
用于計算軟件計數器在第二事件時的值與硬件計數器在第一事件時的值之間的差的
步驟,以及
用于計算對應于之前所計算的差的整數部分的值的步驟。
該方法因而明智地利用整數值的計算,以便實現(xiàn)增強的數值穩(wěn)定性。根據另一特征,當硬件計數器的值對應于硬件計數器的最大值的四分之一和四分之三時,用于將軟件計數器遞增的步驟被實現(xiàn)。根據另一特征,用于使軟件計數器復位的步驟在于:
當硬件計數器在第一事件(i)時的值大于或等于零并且嚴格小于硬件計數器的最大值的四分之一時,向軟件計數器分配等于硬件計數器的值的一半的初始值,
當硬件計數器在第一事件(i)時的值大于或等于硬件計數器的最大值的四分之一并且嚴格小于硬件計數器的最大值的四分之三時,向軟件計數器分配等于硬件計數器的最大值的初始值,并且
當硬件計數器在第一事件(i)時的值大于或等于硬件計數器的最大值的四分之三并且嚴格小于硬件計數器的最大值時,向軟件計數器分配等于硬件計數器的最大值的二分之三的初始值。根據另一特征,用于計算兩個事件之間的時段的步驟在于,把對應于硬件計數器在第二事件時的值與硬件計數器在第一事件時的值之差的值加到硬件計數器在兩個事件之間的溢出數目上。根據另一特征,用于使軟件計數器復位的步驟以及用于將軟件計數器遞增的步驟的優(yōu)先級被確定,以便允許在對應于硬件計數器的最大值的四分之一的時間期滿之前實施遞增。該方法因而允許關于進行中的處理操作的優(yōu)先級的低的優(yōu)先級被分配給在于使軟件計數器復位和將軟件計數器遞增的任務,其中進行中的處理操作中的延遲接著被最小化。該方法還提供了一種被設計為測量兩個事件之間的時段的數字計數器,所述數字計數器包括:
硬件計數器,所述硬件計數器的值在η位上被編碼,以及 軟件計數器,所述軟件計數器的值在m位上被編碼,
其中軟件計數器在硬件計數器的至少兩個預定值處被遞增,這兩個值都不與硬件計數器的溢出一致,
使得,數字計數器的值在m+n-1個連貫的位上被編碼,在所述m+n-1個連貫的位中: η個最低有效位對應于硬件計數器的值,并且 m-Ι個最高有效位根據軟件計數器和硬件計數器的值被限定, 數字計數器使得: 根據硬件計數器在第一事件時的值來使軟件計數器復位, 讀取和保存硬件計數器在第一事件和第二事件期間的值, 基于軟件計數器在第二事件時的值和硬件計數器在第二事件時的值來計算硬件計數器在兩個事件之間的溢出數目,以及 基于溢出數目、硬件計數器在第二事件時的值和硬件計數器在第一事件時的值來計算兩個事件之間的時段。
根據一個特征,數字計數器被連接到能夠讀取硬件計數器的值、使軟件計數器復位以及執(zhí)行計算的處理器,其中所述處理器被連接到至少一個存儲介質,所述處理器在所述至少一個存儲介質上存儲數據。
根據另一特征,硬件計數器的周期由硬件計數器的值在其上被編碼的位的數目以及由硬件計數器被遞增的頻率來確定,其中所述頻率是處理器的時鐘頻率的整數分數(integer fraction)。
根據一個特征,位的數目η等于24,并且位的數目m等于9,使得數字計數器的值在32個連貫的位上被編碼。
參照附圖,在閱讀下面的描述時,本發(fā)明的其它特征和優(yōu)點將變得明顯的,在所述附圖中: 圖1示出了其上出現(xiàn)兩條曲線的曲線圖:示出了硬件計數器的周期特性的一條曲線M和示出了其要被測量的持續(xù)時間小于硬件計數器的周期T的信號的曲線S, 圖2示出了其上出現(xiàn)三條曲線的曲線圖:諸如在圖1中那樣的曲線M,示出了其要被測量的持續(xù)時間長于硬件計數器的周期T的信號的曲線S和示出了作為理想的溢出計數器的時間的函數的特性的曲線N, 圖3示出了其上出現(xiàn)三條曲線的曲線圖:諸如在圖2中那樣的曲線M和曲線S,以及作為真實的溢出計數器 的時間的函數的特性的曲線0, 圖4示意性示出了根據本發(fā)明的數字計數器,所述數字計數器包括與軟件計數器并置的硬件計數器, 圖5示出了其上出現(xiàn)五條曲線的曲線圖:諸如在圖2中那樣的曲線M和曲線S,示出了根據本發(fā)明的軟件計數器的值的特性的曲線F,示出了曲線F的值與曲線M的相對應的值之間的差的特性的曲線G,和示出了曲線G的整數值的特性的曲線P,其中曲線G與圖2中的曲線N嚴密相同,所述圖2中的曲線N示出了作為理想的溢出計數器的時間的函數的特性,并且 圖6示出了在其上一方面出現(xiàn)與在圖5中相同的五條曲線并且在另一方面出現(xiàn)曲線Q的曲線圖,所述曲線Q示出了溢出計數器的被加有硬件計數器的相對應的值的瞬時值P的特性,其中縱坐標上的單位按照硬件計數器的時間測量單位被表達。
具體實施例方式數字計數器被設計來能夠實現(xiàn)如下兩個事件之間的時段的測量:第一事件i和第二事件j。所述時段可以是接收輸入信號的持續(xù)時間、發(fā)射輸出信號的持續(xù)時間或者可替換地是任務處理的持續(xù)時間。在圖5中,曲線S圖示了這樣的信號的隨時間變化的性質,其中要被測量的時段等于(c-a)。數字計數器I首先包括硬件計數器2,所述硬件計數器2的周期特性在圖5中通過曲線M來表示。硬件計數器的值此外在η位上被編碼。因而,硬件計數器的最大值(在圖1、
2、3、5和6中以‘Α’表示)等于2η-1。位的數目‘η’優(yōu)選地等于24。硬件計數器的在η位上被編碼的值是以硬件計數器的時間測量單位為單位來表達由硬件計數器來測量的時間的數。硬件計數器的時間測量單位對應于以秒為單位的在硬件計數器的兩個遞增之間的時間。例如,硬件計數器的在η位上被編碼的所述值因而是在圖6中作為縱坐標出現(xiàn)的值。以硬件計數器的時間測量單位為單位的對應于差(c-a)的時間對應于差(c’ _a’),硬件計數器的最大值與硬件計數器在兩個事件之間的溢出數目(X)的乘積被加到所述差(c’ -a’)。以秒為單位的對應于差(c-a)的時間對應于以硬件計數器的時間測量單位為單位的對應于差(c-a)的時間乘以硬件計數器的時間測量單位。數字計數器I其次包括軟件計數器3。該軟件計數器的值在m位上被編碼。位的數目m優(yōu)選地等于9。然而,由于處理器寄存器的基本單位經常是字節(jié),這9位將需要以16位類型的變量(也被稱為二位字節(jié)(doublet))被處理。軟件計數器的在m位上被編碼的值是對應于軟件計數器的以軟件計數器的一個遞增的時間測量單位為單位的遞增數目的數。針對軟件計數器的一個遞增的時間測量單位對應于在軟件計數器的兩個遞增之間的時間;該時間與硬件計數器當軟件計數器被遞增時的值與硬件計數器在下一遞增時的值之間的差有關,其中該差表達了以硬件計數器的時間測量單位為單位的時間。例如,硬件計數器的在η位上被編碼的所述值因而是在圖6中作為縱坐標出現(xiàn)的值。在第二例子中,時間尺度的改變可以被應用,所述時間尺度的改變在于將圖6中的縱坐標乘以硬件計數器的時間測量單位,使得后者不再以硬件計數器的時間測量單位為單位來表達,而是直接以秒為單位來表達。如在圖4中所示,數字計數器I的值對其說來在m+n-1個連貫的位上或者優(yōu)選地在32個連貫的位上被編碼,其中η個最低有效位對應于硬件計數器2的值,而m-Ι個最高有效位根據軟件和硬件計數器的值被定義。更特別地,軟件計數器的最低有效位的值至少與硬件計數器的最高有效位的值有關。通過操作對硬件計數器的值和軟件計數器的值進行編碼的位,硬件和軟件計數器的級聯(lián)有利地允許數字計數器的值在32個連貫的位上被表達,其中通過使用位操作運算符以簡單并且被完美控制的方式實現(xiàn)這個操作。這點將在下文中被進一步考慮。數字計數器還包括處理器和被連接到所述處理器的存儲介質。處理器包括時鐘。由處理器所執(zhí)行的任務因而通過具有給定頻率的時鐘信號被同步。該時鐘優(yōu)選地以為5MHz的頻率運行。硬件計數器的周期T以秒為單位通過在其上硬件計數器的值被編碼的位的數目和硬件計數器被遞增的頻率來固定。硬件計數器被遞增的頻率可以是時鐘頻率,或者更一般地可以是時鐘頻率的整數分數。硬件計數器的遞增的頻率的倒數實際上是硬件計數器的時間測量單位。
處理器被設計為執(zhí)行多個任務,其中每個任務都具有給定的優(yōu)先級。以非詳盡的方式,處理器因而被設計為在存儲介質上讀取和寫數據,以及執(zhí)行計算或者特別是操作位、諸如例如對硬件、軟件和數字計數器的值進行編碼的位。
在其更寬泛的意義上,每當硬件計數器經歷軟件計數器的值中的至少兩個時,軟件計數器就被遞增。這兩個值是預定的,并且顯著地不同于零和硬件計數器的最大值。正是恰恰因為軟件計數器在硬件計數器的每個周期內被遞增至少兩次,硬件計數器的最高有效位并不表示硬件計數器的溢出,而這里的教導是使軟件和硬件計數器級聯(lián),以便重構溢出計數器,然后重構數字計數器。
在數字計數器的第一實施例中,并且為了限制數字計數器的管理對進行中的處理操作的影響,已經決定的是,把選擇限制為如下兩個預定值:硬件計數器經歷所述兩個預定值,以證明軟件計數器的遞增是正當的。的確,這些預定值的數目越大,處理器的與數字計數器的工作相關聯(lián)的任務的數目將越大并且因而時間成本將越高。然而,應該注意的是,諸如所要求保護的本發(fā)明并不必被限于該單個選擇??赡芫拖窈苋菀紫胂蟮降氖谴_定任何給定的整數數目的值,硬件計數器經歷所述任何給定的整數數目的值,以證明軟件計數器的遞增是正當的。
在數字計數器的第一實施例中,針對第一和第二預定值已經被選擇為分別被固定在硬件計數器的最大值的四分之一處和四分之三處,其中硬件計數器經歷所述第一和第二預定值,以證明軟件計數器的遞增是正當的。該特定的選擇允許對軟件計數器的遞增的管理(在時間上)遠離硬件計數器的溢出被著手,并且因而防止實時約束發(fā)生。以相關的方式,該選擇也具有大大簡化數字計數器的實施的優(yōu)點,因為該選擇允許硬件計數器的周期性被充分利用。一方面,硬件計數器的第一溢出與硬件計數器經歷第一預定值之間的時間等于硬件計數器經歷第二預定值與第二溢出之間的時間,其中該時段等于硬件計數器的周期的四分之一。在另一方面,對應于硬件計數器從第一預定值通到第二預定值的時間等于硬件計數器的半周期。這些對稱性的利用允許實施數字計數器的方法的實施更簡單和更穩(wěn)定地被呈現(xiàn)。然而,應該注意的是,諸如所要求保護的本發(fā)明并不需被限于該單個選擇。的確,可能就像很容易想象到的是,第一預定值被包括在例如從硬件計數器的最大值的10%到40%的第一間隔內,而第二預定值被包括在例如從硬件計數器的最大值的60%到90%的第二間隔內。
此外應該注意的是,如下所選擇的整數數目的值正需要是偶數,以便能夠根據在上文所提出的特征來充分利用硬件計數器的周期性:硬件計數器經歷所述所選擇的整數數目的值,以證明軟件計數器的遞增是正當的。在任何情況下,優(yōu)選的是將選擇限制為兩個預定值,僅僅為了限制數字計數器對進行中的處理操作的影響。
在數字計數器的第一實施例中,因此被證明是正當的是,每當硬件計數器經歷等于硬件計數器的最大值的四分之一或等于硬件計數器的最大值的四分之三的值時,軟件計數器就被遞增軟件計數器的一個時間測量單位。因而所獲得的軟件計數器的時間變化通過圖5中的曲線F表示。更嚴密地,這個曲線F表示在上文所述的軟件計數器的理想特性。的確,軟件計數器的每個遞增這里都被示為與硬件計數器經歷等于硬件計數器的最大值的四分之一或四分之三的值同時發(fā)生。
溢出計數器的理想特性(諸如在圖2中所示)已經在圖5和6中通過曲線P重現(xiàn)。顯著地,可以用圖表表示地被觀察到的是,兩條曲線F和P示出了彼此不同的有規(guī)律的階梯時間變化,因為曲線F恒定地高于曲線P,并且因為階梯F的步長是階梯P的步長的高度的
一半和長度的一半。如果示出軟件計數器的值的特性的曲線被跟蹤(trace),那么諸如在圖5和6中所圖示的曲線G被獲得,從所述軟件計數器的值中已經減去硬件計數器的值。該曲線G被包括在上曲線F與下曲線P之間,并且在上曲線F與下曲線P之間振蕩??梢员挥^察到的是,如果在每個時刻都取曲線G的整數值,那么曲線P被獲得。因而,基于硬件計數器在每個時刻的值以及理想的軟件計數器在每個時刻的值,理想的溢出計數器被獲得或被重構。軟件計數器的非理想特性或真實特性可以由如下曲線表示:所述曲線具有與曲線F相同的時間特性,但是在那里每個遞增會關于硬件計數器經歷等于硬件計數器的最大值的四分之一或四分之三的值而被延遲。假設遞增中的延遲從一個遞增到另一個遞增是恒定的,那么通過將曲線F沿著時間軸(在橫坐標上)平移比硬件計數器的周期T小很多的任何給定值△,會獲得表示軟件計數器的所述真實特性的曲線。如果所述給定值在零到硬件計數器的周期的四分之一之間且包括零和排除硬件計數器的周期的四分之一的范圍中,那么通過在每個時刻都取結合該平移的曲線F所獲得的曲線G的整數值,曲線P被獲得。因而,基于硬件計數器的值并且基于軟件計數器的根據其真實特性在任何給定時間的值,獲得理想的溢出計數器。換句話說,基于非理想的軟件計數器來重構溢出計數器嚴格等同于基于理想的軟件計數器重構溢出計數器,其中軟件計數器的遞增的延遲并不導致任何差別,如果然而該延遲并不超過硬件計數器的周期的四分之一的話。在圖5和6中由參考C所示的誤差邊界因而被允許,而這不影響持續(xù)時間測量。為了在對應于硬件計數器的周期的四分之一的時間內實現(xiàn)軟件計數器的每個遞增,該遞增并不要求非常高的優(yōu)先 級,或者該遞增可以甚至被實現(xiàn)為背景任務。另外,如果處理器具有要被實現(xiàn)的具有 較高優(yōu)先級的操作,那么處理器可以根據操作的優(yōu)先級來執(zhí)行操作,而這不影響持續(xù)時間測量的精度。出于這個原因,軟件計數器的每個遞增對進行中的處理操作以及還對要被實現(xiàn)的持續(xù)時間測量的影響是有限的,或者甚至為零。另外,根據其值在m位上被編碼的軟件計數器和根據其值在η位上被編碼的硬件計數器而在m-Ι位上重構溢出計數器或者以等同的方式取以位的形式被編碼的兩個值之間的差的整數部分是能夠由位操作運算符所實現(xiàn)的非常簡單和非常穩(wěn)定的數據處理操作,諸如之前所討論的那樣。在這種情況下,并且在本發(fā)明的第一實施例中,針對溢出計數器的重構的第一步驟在于在32位上擴展硬件和軟件計數器。第二步驟在于使用位移位(bit-shift)運算符,以便把軟件計數器的9位向左移位23位。第二步驟在于使用處理運算符用于從對軟件計數器的值進行編碼的32位中減去對硬件計數器的值進行編碼的32位。第三步驟在于生成并使用位屏蔽(bit masking),以便從對之前所計算的差進行編碼的32位中屏蔽24個最低有效位。軟件計數器與硬件計數器之間的差的整數部分因而(潛在地在每個時刻)被獲得,這對應于因而被重構的理想的溢出計數器的值。應該注意的是,由于溢出計數器的值在m-Ι位上被編碼,所以溢出計數器的最大值等于因而,不是具有在硬件計數器的溢出期間用對應于硬件計數器的最大值的值僅僅被遞增一次的溢出計數器,而是數字計數器包括用對應于硬件計數器的最大值的一半的值被遞增兩次的軟件計數器,一次是當硬件計數器具有基本上等于硬件計數器的最大值的四分之一的值時,而一次是當硬件計數器具有基本上等于硬件計數器的最大值的四分之三的值時,其中該軟件計數器允許理想的溢出計數器的特性被重構。此外,數字計數器可以包括比較器和中斷裝置。比較器被配置用于把硬件計數器的瞬時值與等于硬件計數器的最大值的四分之一以及等于硬件計數器的最大值的四分之三的兩個預定值當中的一個相比較。響應于比較器的正面比較(positive comparison),中斷裝置請求處理器將軟件計數器遞增以硬件計數器的最大值的一半。比較器可以以比硬件計數器的周期的四分之一短并且被選擇以便不延遲進行中的處理操作的有規(guī)律的時間間隔執(zhí)行上面提及的比較。例如,當硬件計數器的周期的四分之一等于約800ms時,比較器每隔IOOms被采用是適當的和足夠的。諸如之前所述的硬件計數器與用于測量實施其的兩個事件i和j之間的時段的方法相關聯(lián)。所述方法在上文更具體地被描述。該方法的各種步驟由處理器實現(xiàn)。該方法包括用于讀取硬件計數器在第一事件i時的值的至少一個步驟。該方法此外包括用于在存儲介質上保存硬件計數器在第一事件i時的值的步驟。該方法另外包括用于根據硬件計數器在第一事件i時的值來使軟件計數器復位的步驟。更特別地,該步驟在于向軟件計數器分配被確定為如下值的間隔的函數的初始值:在所述值內包括硬件計數器在第一事件i時的值。當硬件計數器在第一事件i時的值大于或等于零并且嚴格小于硬件計數器的最大值的四分之一時,等于硬件計數器的值的一半的初始值被分配給軟件計數器。當硬件計數器在第一事件i時的值大于或等于硬件計數器的最大值的四分之一并且嚴格小于硬件計數器的最大值的四分之三時,等于硬件計數器的最大值的初始值被分配給軟件計數器。當硬件計數器在第一事件i時的值大于或等于硬件計數器的最大值的四分之三并且嚴格小于硬件計數器的最大值時,等于硬件計數器的最大值的二分之三的初始值被分配給軟件計數器。應該注意的是,在圖5中,曲線F恒定地高于曲線P的事實由該復位步驟引起。該方法此外包括用于將諸如在上文所描述的(至少在其更寬泛的意義上)以及在數字計數器的第一實施例中的軟件計數器遞增的步驟。遞增在于修改軟件計數器的在前值。由于后者在m位上被編碼,從而對應于數字計數器的m個最高有效位,所以處理器足夠修改這些m位,使得新編碼的值等于被加到對應于硬件計數器的最大值的一半的值上的在前值。該方法此外包括用于在存儲介質上保存硬件計數器在第二事件j時的值的步驟。該方法此外包括用于基于軟件計數器在第二事件j時的值和硬件計數器在第二事件j時的值來計算硬件計數器在兩個事件之間的溢出數目的步驟。該計算在于從軟件計數器在第二事件時的值中減去硬件計數器在第二事件時的值,以及在于取該差的整數部分。如在上文所述,該操作允許在任何給定時刻獲得會由理想的溢出計數器給出的溢出數目,盡管存在軟件計數器的遞增的延遲,如果然而該延遲并不超過硬件計數器的周期的四分之一的話。如在上文所述,處理器修改了 m個最高有效位,所述m個最高有效位到目前為止對應于軟件計數器的針對將等于所計算的溢出數目的新編碼的值的值。m個最高有效位因而表示對應于硬件計數器的被包括在要被測量的持續(xù)時間中的整數數目的周期T的時間。
該方法此外包括用于基于硬件計數器在第一事件i時的值、硬件計數器在第二事件j時的值以及之前所計算的溢出數目來計算兩個事件之間的時段的步驟。該計算在于從硬件計數器在第一事件時的值中減去硬件計數器在第二事件時的值,以及在于把該差加到之前所計算的溢出數目上。出于這個目的,處理器修改了 η個最低有效位,所述η個最低有效位到目前為止對應于硬件計數器的值,使得在這些η位上被編碼的新的值等于硬件計數器在第二事件時的值與硬件計數器在第一事件時的值之間的差。因而表示對應于要被測量的持續(xù)時間與硬件計數器的被包括在要被測量的持續(xù)時間中的整數數目的周期T之間的差的時間的η個最低有效位經由分配運算符由處理器復制到之前所屏蔽的η個最低有效位上(如在上文所述的那樣)。
通過在有限數目的m+n-1位上被編碼的值所表達的數字計數器具有最大值。更特別地,數字計數器的在圖6中被表示為D的最大值等于數字計數器因而能夠測量不超過數字計數器的最大值乘以硬件計數器的時間測量單位的時段。
應該注意的是,可能仍然需要的是,應用在η或m位上被編碼的值中的至少一個的歸一化。目的是要被測量的時段因而在對數字計數器的值進行編碼的m+n-1個連貫的位上被重構,使得它足夠把這些m+n-1位轉換為相對應的值(例如以10為基數),以便獲得以所控制的時間單位所實現(xiàn)的想要的持續(xù)時間測量結果,仍然不必分離地操作或考慮所述m+n-1位。因而,在本方法結束時,要被測量的時段對應于由數字計數器所形成的總數。數字計數器因此提出了通過使用硬件計數器來使得能夠測量要被編碼的時段的優(yōu)點,所述硬件計數器的值在被擴展的總數為m+n-1個位內的η位上被編碼。
優(yōu)選地,處理器在其上寫數字計數器的m+n-1位的存儲介質是非易失性存儲介質,以便確保測量的一致性。
在其中所提及的各種值以二進制形式被編碼的目前情況下,在上文所述的各種計算通過位操作運算符來執(zhí)行。在這些運算符之中,算術運算符(加法、減法)可以顯著地被使用,從而允許變量的值以數學方式被修改,分配運算符、遞增運算符、例如用于實施復位步驟的比較運算符、邏輯運算符、例如用于生成位屏蔽的位到位運算符和/或位移位運算符可被使用。為了實現(xiàn)這些計算,處理器利用可執(zhí)行文件(例如通過用C語言編譯程序所生成的可執(zhí)行文件)。
用于測量兩個事件之間的時段的方法以及數字計數器允許比現(xiàn)有技術的方法更精確地和/或以更穩(wěn)定的方式并且在不要求更強大的處理器或更復雜的算法的情況下評估兩個事件之間的時段。因而,該時段的量化是精確的,而與該時段的長度無關,并且在沒有需要高優(yōu)先級的中斷的情況下進行。此外,該量化相對獨立于處理器的速度。數字計數器還具有為穩(wěn)健的并且具有有限大小的優(yōu)點。此外,數字計數器的結果并不與所使用的硬件計數器有關。
根據數字計數器的一個應用領域,在上文所述的方法針對裝備汽車車輛的內燃機的凸輪軸的循環(huán)時間的捕獲的應用是尤其有用的。該循環(huán)時間是至少近似已知的,并且該循環(huán)時間的精確測量被要求。在上文所述的數字計數器和方法允許在硬件計數器的高遞增頻率與測量對進行中的處理器的處理操作的有限的影響、或者甚至零影響之間找到有利的折衷。增加硬件計數器的遞增頻率允許精度被增加。然而,要付出的代價是,硬件計數器的溢出數目或軟件計數器的遞增數目相應地增加。在上文所提出的結果已經利用MPC5534微控制器被獲得,所述MPC5534微控制器的處理器工作在為40MHz的頻率上。如所示出的那樣,該方法允許表示凸輪軸的循環(huán)持續(xù)時間的信號的兩個邊緣i和j之間的時段被測量,并且因而允許凸輪軸的循環(huán)的持續(xù)時間被測量。利用現(xiàn)有技術的用于測量持續(xù)時間的方法,針對數字計數器的每個軟件讀取的執(zhí)行時間是400ns,而被用于捕獲具有10個邊緣i和j以及以6000轉/分鐘的4個凸輪軸的凸輪軸循環(huán)的處理器的載荷(loading)是0.8%。利用該方法和數字計數器,針對數字計數器的每個軟件讀取的執(zhí)行時間是200ns,而被用于捕獲具有10個邊緣i和j以及以6000轉/分鐘的4個凸輪軸的凸輪軸循環(huán)的處理器的載荷僅僅是0.04%。因而,該方法和數字計數器允許在執(zhí)行時間和處理器資源方面的增益。此外,具有32位編碼的值的使用針對32位微控制器架構被優(yōu)化。的確,針對這些架構,與對具有24位編碼的值的操作相比較,對具有32位編碼的值的所有操作將被簡化。顯著地,沒有飽和的驗證或者針對具有24位編碼的值所需要的操作的驗證對于具有32位編碼的值將是必需的。數字計數器和方法尤其被設計為被實施在汽車車輛中,并且特別地用于確定車輛的速度。出于這個目的,傳感器測量車輛的速度,并且以與車輛的速度有關的速率來發(fā)送邊緣。根據本發(fā)明的方法和數字計數器允許兩個邊緣之間的時段被評估,并且因而允許車輛的速度根據這被推出。有利地,數字計數器適于單個處理器系統(tǒng)以及適于多處理器系統(tǒng),只要來自軟件計數器的數據在處理器之間共享的存儲器中被管理。對于本領域技術人員將明顯的是,本發(fā)明允許如下實施例:所述實施例可以采用許多其它特定的形式,而不偏離本發(fā)明的如所要求保護的應用范圍。因此,本實施例應該被認為是說明,但是可以在由所附權利要求書的范圍所限定的范疇內被修改。
權利要求
1.一種用于測量兩個事件(i和j)之間的時段的方法,其中該方法實施數字計數器(1),所述數字計數器(I)包括: 硬件計數器(2),所述硬件計數器(2)的值在η位上被編碼,以及 軟件計數器(3),所述軟件計數器(3)的值在m位上被編碼, 所述方法包括用于在硬件計數器(2)的至少兩個預定值處將軟件計數器(3)遞增的步驟,所述兩個值都不與硬件計數器(2)的溢出一致, 其特征在于,數字計數器(I)的值在m+n-1個連貫的位上被編碼,在所述m+n-1個連貫的位中: η個最低有效位對應于硬件計數器(2)的值,并且 m-Ι個最高有效位根據軟件計數器(3)和硬件計數器(2)的值被限定, 所述方法此外包括: 用于根據硬件計數器(2)在第一事件(i)時的值來使軟件計數器(3)復位的步驟, 用于讀取和用于保存硬件計數器(2)在第一事件(i)時的值和硬件計數器(2)在第二事件(j)時的值的步驟, 用于計算硬件計數器(2)在兩個事件之間的溢出數目的步驟,其中所述用于計算硬件計數器(2)在兩個事件之間的溢出數目的步驟在于: O計算軟件計數器(3 )在第二事件(j )時的值與硬件計數器(2 )在第一事件(i )時的值之間的差,以及`〇取對應于之前所計算的差的整數部分的值, 用于基于硬件計數器(2 )在第一事件(i )時的值、硬件計數器(2 )在第二事件(j )時的值以及之前所計算的溢出數目來計算兩個事件之間的時段的步驟。
2.根據權利要求1所述的方法,其特征在于,當硬件計數器(2)的值對應于硬件計數器(2)的最大值的四分之一和四分之三時,用于將軟件計數器(3)遞增的步驟被實現(xiàn)。
3.根據權利要求2所述的方法,其特征在于,用于使軟件計數器(3)復位的步驟在于: 當硬件計數器(2 )在第一事件(i )時的值大于或等于零并且嚴格小于硬件計數器(2 )的最大值的四分之一時,向軟件計數器(3)分配等于硬件計數器(2)的值的一半的初始值, 當硬件計數器(2)在第一事件(i)時的值大于或等于硬件計數器(2)的最大值的四分之一并且嚴格小于硬件計數器(2)的最大值的四分之三時,向軟件計數器(3)分配等于硬件計數器(2)的最大值的初始值,并且 當硬件計數器(2 )在第一事件(i )時的值大于或等于硬件計數器(2 )的最大值的四分之三并且嚴格小于硬件計數器(2)的最大值時,向軟件計數器(3)分配等于硬件計數器(2)的最大值的二分之三的初始值。
4.根據權利要求1所述的方法,其特征在于,用于計算兩個事件(i和j)之間的時段的步驟在于:把對應于硬件計數器(2)在第二事件(j)時的值與硬件計數器(2)在第一事件(i )時的值之間的差的值加到硬件計數器(2 )在兩個事件之間的溢出數目上。
5.根據權利要求2所述的方法,其特征在于,復位步驟以及用于將軟件計數器(3)遞增的步驟的優(yōu)先級被確定,以便允許在對應于硬件計數器(2)的周期的四分之一的時間期滿之前實施遞增。
6.一種被設計來測量兩個事件(i和j)之間的時段的數字計數器(1),其包括: 硬件計數器(2),所述硬件計數器(2)的值在η位上被編碼,以及 軟件計數器(3),所述軟件計數器(3)的值在m位上被編碼, 其中軟件計數器(3)在硬件計數器(2)的至少兩個預定值處被遞增,所述兩個值都不與硬件計數器(2)的溢出一致, 其特征在于,數字計數器(I)的值在m+n-1個連貫的位上被編碼,在所述m+n-1個連貫的位中: η個最低有效位對應于硬件計數器(2)的值,并且 m-Ι個最高有效位根據軟件計數器(3)和硬件計數器(2)的值被限定, 數字計數器(I)允許根據權利要求1至5所述的方法。
7.根據權利要求6所述的數字計數器(I),其特征在于,數字計數器(I)被連接到能夠讀取硬件計數器(2)的值、使軟件計數器(3)復位以及執(zhí)行計算的處理器,其中所述處理器被連接到至少一個存儲介質,所述處理器在所述至少一個存儲介質上存儲數據。
8.根據權利要求6所述的數字計數器(1),其特征在于,硬件計數器(2)的周期(T)通過硬件計數器(2)的值在其上被編碼的位的數目(η)以及通過硬件計數器(2)被遞增的頻率來確定,其中所述頻率是所述處理器的時鐘頻率的整數分數。
9.根據權利要求6所述的數字計數器(I),其特征在于,位的數目η等于24,并且其特征在于,位的數目m等于9,使得 數字計數器(I)的值在32個連貫的位上被編碼。
全文摘要
本發(fā)明涉及一種用于借助于硬件計數器2和軟件計數器3來測量第一事件與第二事件之間的時段的方法。本發(fā)明還涉及一種使用這樣的方法的數字計數器1。
文檔編號H03K21/40GK103190077SQ201180051126
公開日2013年7月3日 申請日期2011年8月3日 優(yōu)先權日2010年8月24日
發(fā)明者L.加西亞, J.侯 申請人:法國大陸汽車公司, 大陸汽車有限公司