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