專利名稱:長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器中的數(shù)據(jù)管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)采集,更具體地涉及長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器中的數(shù)據(jù)管理的方法。
背景技術(shù):
通常例如數(shù)字示波器的數(shù)字測(cè)量?jī)x器將從輸入電子信號(hào)中采集的數(shù)字化數(shù)據(jù)置于采集存儲(chǔ)器中供后來(lái)處理。采集存儲(chǔ)器通常被劃分成兩個(gè)緩沖器,其中以交替方式將數(shù)據(jù)寫(xiě)入到這兩個(gè)緩沖器。這確保了任何時(shí)間至少一個(gè)緩沖器包含有效數(shù)據(jù)記錄。當(dāng)將數(shù)據(jù)首先寫(xiě)入其中一個(gè)緩沖器時(shí),禁用啟動(dòng)數(shù)據(jù)采集的觸發(fā)。直到將預(yù)觸發(fā)量的數(shù)據(jù)寫(xiě)入到該緩沖器中之后才再次啟用這些觸發(fā)。需要預(yù)觸發(fā)數(shù)據(jù),以便在顯示裝置的屏幕上繪制電信號(hào)波形在觸發(fā)事件之前的部分。寫(xiě)入以循環(huán)方式在緩沖器中繼續(xù),直到觸發(fā)事件發(fā)生為止,然后繼續(xù)到將后觸發(fā)量的數(shù)據(jù)寫(xiě)入到該緩沖器為止。這確保緩沖器包含觸發(fā)事件前后的數(shù)據(jù)。在此點(diǎn)上,寫(xiě)入可以在另一個(gè)緩沖器中啟動(dòng),其中第一緩沖器包含與觸發(fā)事件相關(guān)且可供后續(xù)處理和/或顯示的所采集的數(shù)據(jù)。
這種雙緩沖器方法的缺點(diǎn)在于,正在將預(yù)觸發(fā)數(shù)據(jù)寫(xiě)入到緩沖器期間,觸發(fā)事件會(huì)被忽略。隨著存儲(chǔ)器變得更大,變得更為期望有更長(zhǎng)的預(yù)觸發(fā)時(shí)間,這導(dǎo)致觸發(fā)事件在更長(zhǎng)時(shí)間期間被忽略。此外,數(shù)字儀器正變得更快速,且能夠以高速度處理觸發(fā)事件。導(dǎo)致觸發(fā)事件長(zhǎng)時(shí)間期間地被忽略的數(shù)據(jù)管理方案有悖于能夠非??焖俾实靥幚碛|發(fā)事件的趨勢(shì)。
在一些情況中,可以指定緩沖器的大小。當(dāng)選擇短緩沖器時(shí),屏幕更新速率一般更快,但是可查看的細(xì)節(jié)的量有限。當(dāng)選擇長(zhǎng)緩沖器時(shí),屏幕更新速率一般較差,因?yàn)楫?dāng)制作每個(gè)波形圖像時(shí)必須處理更多數(shù)據(jù),但是可查看的細(xì)節(jié)的量更好。在預(yù)觸發(fā)時(shí)間期間對(duì)于短和長(zhǎng)緩沖器大小都忽略觸發(fā)事件,因?yàn)閿?shù)據(jù)開(kāi)始填充每個(gè)新的緩沖器。
美國(guó)專利號(hào)5,929,838,標(biāo)題為“用于快更新速率與長(zhǎng)記錄長(zhǎng)度之間的交替數(shù)字示波器操作的采集管理器和方法”(AcquisitionManager and Method for Alternating Digital Oscilloscope Opeationbetween Fast Update Rate and Long Record Length),描述了一種用于同時(shí)實(shí)現(xiàn)快更新速率和高細(xì)節(jié)的方法。在正常操作期間,示波器選擇較短的緩沖器大小,這導(dǎo)致良好的更新速率和對(duì)于屏幕尺寸剛好足夠的細(xì)節(jié)。當(dāng)用戶停止采集過(guò)程時(shí),示波器為緩沖器選擇較長(zhǎng)記錄長(zhǎng)度并嘗試捕獲一個(gè)附加記錄。如果發(fā)生觸發(fā)事件,則此采集變成最后一個(gè)采集并具有良好細(xì)節(jié)的優(yōu)點(diǎn)。如果觸發(fā)事件沒(méi)有在合理的時(shí)間期間內(nèi)發(fā)生,則使用先前記錄,并且該記錄具有較低細(xì)節(jié)量。此方法的一個(gè)問(wèn)題可能是沒(méi)有觸發(fā)。例如,當(dāng)數(shù)字電路故障而無(wú)法正常操作時(shí),它可能停止生成信號(hào)。往往通過(guò)剛好在信號(hào)停止時(shí)的前后檢查電路的操作來(lái)發(fā)現(xiàn)導(dǎo)致該故障的問(wèn)題。將示波器設(shè)置為觀察信號(hào)并使用該信號(hào)作為觸發(fā)。但是,在信號(hào)停止時(shí)的前后獲得高分辨率采集是不可能的,因?yàn)槭静ㄆ鲀H嘗試在用戶停止采集之后才捕獲長(zhǎng)記錄。此時(shí),電路發(fā)生故障,信號(hào)已停止,示波器不再接收觸發(fā)。
一些電子儀器具有保留采集數(shù)據(jù)的多個(gè)緩沖器的能力,即雙緩沖器方案的擴(kuò)充版本。每個(gè)緩沖器分成預(yù)觸發(fā)數(shù)據(jù)和后觸發(fā)數(shù)據(jù)。當(dāng)首先將數(shù)據(jù)置于新緩沖器時(shí),觸發(fā)事件被忽略,直到將預(yù)先觸發(fā)量的數(shù)據(jù)寫(xiě)入到該緩沖器中之后為止。如果此時(shí)間期間觸發(fā)被忽略,且有一段時(shí)間期間沒(méi)有另外的觸發(fā)事件,則循環(huán)緩沖器中的數(shù)據(jù)被覆蓋。當(dāng)停止數(shù)據(jù)的采集時(shí),最后一個(gè)觸發(fā)事件已經(jīng)被忽略掉。雖然獲取數(shù)據(jù)的次序是已知的,但是要了解每個(gè)記錄之間丟失了多少觸發(fā)事件是不可能的。
所期望的是一種以高細(xì)節(jié)始終捕獲最后一個(gè)觸發(fā)事件并提供完整的觸發(fā)事件記錄的長(zhǎng)數(shù)據(jù)長(zhǎng)度存儲(chǔ)器。
發(fā)明內(nèi)容
因此,本發(fā)明提供一種用于長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器的數(shù)據(jù)管理系統(tǒng),它確保過(guò)去n個(gè)觸發(fā)的數(shù)據(jù)采集記錄在存儲(chǔ)器中。數(shù)據(jù)管理系統(tǒng)將實(shí)時(shí)數(shù)據(jù)樣本寫(xiě)入到長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器內(nèi)的初始循環(huán)緩沖器中,該循環(huán)緩沖器具有等于預(yù)觸發(fā)時(shí)間的大小。當(dāng)發(fā)生第一觸發(fā)事件時(shí),則將數(shù)據(jù)樣本寫(xiě)入到長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器內(nèi)循環(huán)緩沖器之后的線性區(qū)域內(nèi)。線性區(qū)域中的數(shù)據(jù)樣本采集繼續(xù)直到最后一個(gè)觸發(fā)事件之后后觸發(fā)和新的預(yù)觸發(fā)時(shí)間屆滿為止,在此點(diǎn)處,該新的預(yù)觸發(fā)時(shí)間成為下一個(gè)觸發(fā)事件的新循環(huán)緩沖器。以此方式,連同關(guān)聯(lián)的預(yù)觸發(fā)數(shù)據(jù)和后觸發(fā)數(shù)據(jù)一起捕獲所有觸發(fā)事件。
當(dāng)結(jié)合所附權(quán)利要求和附圖閱讀時(shí),通過(guò)下文詳細(xì)描述將顯見(jiàn)到本發(fā)明的目的、優(yōu)點(diǎn)和其他創(chuàng)新特征。
圖1是使用根據(jù)本發(fā)明的數(shù)據(jù)管理方法的數(shù)字?jǐn)?shù)據(jù)采集儀器的簡(jiǎn)易框圖。
圖2是根據(jù)本發(fā)明的數(shù)據(jù)管理方法的圖形物理示意圖。
圖3是根據(jù)本發(fā)明的圖2的圖形時(shí)序示意圖。
圖4是根據(jù)本發(fā)明的數(shù)據(jù)管理方法的單個(gè)、最后一個(gè)觸發(fā)事件在(a)物理次序和(b)時(shí)序次序上的圖形示意圖。
圖5是在(a)物理次序和(b)時(shí)序次序上說(shuō)明根據(jù)本發(fā)明的數(shù)據(jù)管理方法的“歷元(epoch)”的圖形示意圖。
具體實(shí)施例方式
現(xiàn)在參考圖1a,長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12在輸入處接收數(shù)據(jù)樣本(壓縮的或未壓縮的)。存儲(chǔ)控制器14根據(jù)所接收的觸發(fā)控制長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12(下文將對(duì)此予以描述),以產(chǎn)生采集的數(shù)據(jù)記錄。然后將所采集的數(shù)據(jù)記錄從長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12轉(zhuǎn)移到顯示處理器16以產(chǎn)生用于顯示的可查看數(shù)據(jù)。當(dāng)所采集的數(shù)據(jù)記錄表示電信號(hào)時(shí),可查看數(shù)據(jù)可以采用波形圖像的形式。
在數(shù)字示波器的情況中,在采集數(shù)據(jù)的同時(shí)連續(xù)將數(shù)據(jù)樣本寫(xiě)入到長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器。當(dāng)啟動(dòng)數(shù)據(jù)采集時(shí),將觸發(fā)事件釋抑(hold off)初始預(yù)觸發(fā)時(shí)間。但是,無(wú)需釋抑后續(xù)觸發(fā)事件。長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12被視為循環(huán)的,即第一存儲(chǔ)單元(memory location)緊隨最后一個(gè)存儲(chǔ)單元。如下所述,寫(xiě)入長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12通常從較低存儲(chǔ)器地址到較高存儲(chǔ)器地址進(jìn)行,其中有偶然性的例外情況。
當(dāng)寫(xiě)入正在進(jìn)行時(shí),將數(shù)據(jù)組織成兩種形式-(i)包含預(yù)觸發(fā)量的數(shù)據(jù)的循環(huán)緩沖器和(ii)線性數(shù)據(jù)段。取決于觸發(fā)事件到達(dá)存儲(chǔ)控制器14的速率,將這兩種形式的數(shù)據(jù)組織在長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12內(nèi)。只要觸發(fā)事件以足夠快的速率到達(dá),則以線性模式寫(xiě)入長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12。僅當(dāng)足夠長(zhǎng)的時(shí)間期間未發(fā)生觸發(fā)事件,才再次以循環(huán)緩沖器寫(xiě)入長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12。
如圖2所示,粗箭頭表示長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中的數(shù)據(jù)。示出了包含預(yù)觸發(fā)量的數(shù)據(jù)的循環(huán)緩沖器18。從左向右將數(shù)據(jù)寫(xiě)入到循環(huán)緩沖器18,直到達(dá)到緩沖器末端為止,此時(shí)寫(xiě)入重新從緩沖器的左端開(kāi)始,如箭頭(A)所示。當(dāng)檢測(cè)到觸發(fā)事件T時(shí),存儲(chǔ)控制器14導(dǎo)致立即在循環(huán)緩沖器18中停止寫(xiě)入,并在循環(huán)緩沖器右邊的線性區(qū)域20中重新開(kāi)始,如圖箭頭(B)所示。現(xiàn)在以線性模式寫(xiě)入數(shù)據(jù),直到將后觸發(fā)量的數(shù)據(jù)和預(yù)觸發(fā)量的數(shù)據(jù)都寫(xiě)入而未檢測(cè)到觸發(fā)事件為止。當(dāng)此情況發(fā)生時(shí),最后預(yù)觸發(fā)量的數(shù)據(jù)變成新循環(huán)緩沖器22,并在此循環(huán)緩沖器中繼續(xù)寫(xiě)入直到新觸發(fā)事件發(fā)生為止,而不覆蓋先前的最后一個(gè)觸發(fā)事件的后觸發(fā)數(shù)據(jù)。
圖3示出與圖2相同的采集數(shù)據(jù),通過(guò)將第一循環(huán)緩沖器18展開(kāi)以時(shí)序次序示出該采集數(shù)據(jù)。鋸齒線24表示循環(huán)緩沖器18、22的內(nèi)容因沒(méi)有觸發(fā)事件而被蓋寫(xiě)時(shí)丟失數(shù)據(jù)的位置(location)。該附圖清晰示出在每個(gè)觸發(fā)之前始終有預(yù)觸發(fā)量的所采集的數(shù)據(jù),以及每個(gè)觸發(fā)之后后觸發(fā)量的所采集的數(shù)據(jù)。其結(jié)果是,有效率地將所采集的數(shù)據(jù)封裝在長(zhǎng)記錄長(zhǎng)度儲(chǔ)存器12中,即所有采集的數(shù)據(jù)要么是觸發(fā)事件的預(yù)觸發(fā)數(shù)據(jù)的一部分,要么是觸發(fā)事件的后觸發(fā)數(shù)據(jù)的一部分。不存在觸發(fā)事件被忽略或廢棄期間的時(shí)間。
傳統(tǒng)雙緩沖器存儲(chǔ)器系統(tǒng)保存單個(gè)觸發(fā)事件前后采集的數(shù)據(jù)。將滿存儲(chǔ)器大小M劃分成兩個(gè)相等的循環(huán)緩沖器,由此每個(gè)緩沖器具有大小M/2。每個(gè)緩沖器必須保存預(yù)觸發(fā)數(shù)據(jù)A和后觸發(fā)數(shù)據(jù)Z,即A+Z=M/2,由此觸發(fā)事件的滿數(shù)據(jù)記錄僅與存儲(chǔ)器大小的一半(M/2)一樣大。現(xiàn)在參考圖4,示出根據(jù)本發(fā)明數(shù)據(jù)管理方法、用于查看單個(gè)觸發(fā)事件或一系列觸發(fā)事件的最后一個(gè)觸發(fā)事件的最大可用數(shù)量的長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12。期望的單個(gè)觸發(fā)事件在足夠靠近前一個(gè)循環(huán)緩沖器18的線性緩沖器20中發(fā)生,以便仍使用該循環(huán)緩沖器。還將循環(huán)緩沖器18中的數(shù)據(jù)組織為使最舊的數(shù)據(jù)在循環(huán)緩沖器的開(kāi)始端,即在進(jìn)入循環(huán)緩沖器的一個(gè)樣本處發(fā)生的啟動(dòng)轉(zhuǎn)到線性區(qū)域20中的第一個(gè)觸發(fā)(圖4(a))。在此情況中,仍需要預(yù)觸發(fā)緩沖器18的一個(gè)樣本來(lái)完成期望的觸發(fā)事件的預(yù)觸發(fā)時(shí)間,并保持該樣本(圖4(b))。因此,在期望的單個(gè)觸發(fā)事件T之前有幾乎兩個(gè)量的預(yù)觸發(fā)數(shù)據(jù)(2A-1)。在觸發(fā)事件T之后是一個(gè)量的后觸發(fā)數(shù)據(jù)(Z),在最壞的情況中,使用預(yù)觸發(fā)數(shù)據(jù)(A)的又一個(gè)循環(huán)緩沖器22同時(shí)等待下一個(gè)觸發(fā)事件。這導(dǎo)致長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12具有(3*A-1)+Z或約3*A+Z=M。在雙緩沖的存儲(chǔ)器系統(tǒng)中,存儲(chǔ)器需要兩個(gè)量的預(yù)觸發(fā)數(shù)據(jù)和后觸發(fā)數(shù)據(jù)2*(A+Z),由此每個(gè)記錄長(zhǎng)度具有M/2的長(zhǎng)度。在本發(fā)明的的數(shù)據(jù)管理方法中,當(dāng)預(yù)觸發(fā)時(shí)間是記錄長(zhǎng)度的0%時(shí),可以達(dá)到M的記錄長(zhǎng)度。這使記錄長(zhǎng)度雙倍于雙緩沖的存儲(chǔ)器系統(tǒng)。當(dāng)預(yù)觸發(fā)時(shí)間是記錄長(zhǎng)度的50%時(shí),可達(dá)到的記錄長(zhǎng)度是M/2,這與雙緩沖的存儲(chǔ)器系統(tǒng)相當(dāng)。當(dāng)預(yù)觸發(fā)時(shí)間是100%,可達(dá)到的記錄長(zhǎng)度被減少到M/3。
當(dāng)期望N個(gè)滿記錄,而不是單個(gè)記錄時(shí),在觸發(fā)事件以慢速率發(fā)生時(shí)使用大部分存儲(chǔ)器,以使每個(gè)觸發(fā)事件之前有預(yù)觸發(fā)量的數(shù)據(jù),其后有后觸發(fā)量的數(shù)據(jù)。最舊的觸發(fā)事件需要2*A-1個(gè)量的預(yù)觸發(fā)數(shù)據(jù)。所有其他的觸發(fā)事件需要最多A個(gè)量的預(yù)觸發(fā)數(shù)據(jù)。所有觸發(fā)事件需要最多Z個(gè)量的后觸發(fā)數(shù)據(jù)。此外,還需要一個(gè)附加循環(huán)緩沖器,由此(N+2)*A-1+N*Z=M。如果長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12的大小是1,000,000個(gè)樣本,且滿記錄是10,000個(gè)樣本,對(duì)于僅預(yù)觸發(fā)數(shù)據(jù)的滿記錄而將后觸發(fā)數(shù)據(jù)大小設(shè)置為零(N+2)*10,000-1=1,000,000;即可以將98個(gè)滿記錄保存在長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器中。如果預(yù)觸發(fā)數(shù)據(jù)大小為零,而且記錄僅是后觸發(fā)數(shù)據(jù),則可以將100個(gè)滿記錄保存在長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中。實(shí)際上,均可以將預(yù)觸發(fā)數(shù)據(jù)區(qū)域和后觸發(fā)數(shù)據(jù)區(qū)域設(shè)為比有效量長(zhǎng),以便允許在每個(gè)記錄的兩端處有一些額外數(shù)據(jù)。長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中保存的觸發(fā)事件的數(shù)量可以遠(yuǎn)比上文計(jì)算的量長(zhǎng)。這種情況發(fā)生在觸發(fā)事件之間的時(shí)間小于預(yù)觸發(fā)時(shí)間與后觸發(fā)時(shí)間之和時(shí)。
上文論述說(shuō)明長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中數(shù)據(jù)的通用組織。不同于劃分成兩個(gè)固定緩沖器的傳統(tǒng)采集存儲(chǔ)器,將長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12分拆成根據(jù)觸發(fā)事件發(fā)生的方式而改變的區(qū)域。為了從長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中檢索所采集的數(shù)據(jù),需要兩種附加類型的數(shù)據(jù)(i)描述已存儲(chǔ)到長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器中的數(shù)據(jù)的次序的數(shù)據(jù)和(ii)保存有關(guān)觸發(fā)事件的信息的數(shù)據(jù)。
所采集的數(shù)據(jù)被存儲(chǔ)在作為“歷元”的長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中。每個(gè)歷元開(kāi)始于循環(huán)緩沖器18并結(jié)束于線性區(qū)域20,如圖5所示。將整個(gè)長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12作為循環(huán)形式的,所以歷元可以離開(kāi)存儲(chǔ)器的高端并在存儲(chǔ)器的低端接續(xù),雖然為了簡(jiǎn)明予以未示出。每個(gè)歷元開(kāi)始于長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12的“基”位置。通過(guò)將基位置加某個(gè)值找到歷元內(nèi)的所有位置。注意經(jīng)過(guò)長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12的末端的存儲(chǔ)器地址回卷到該長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器的開(kāi)始部分。
當(dāng)在歷元的開(kāi)始處將數(shù)據(jù)樣本寫(xiě)入到循環(huán)緩沖器18中時(shí),第一個(gè)觸發(fā)導(dǎo)致在當(dāng)前位置處停止寫(xiě)入并在循環(huán)緩沖器的末端之后重新開(kāi)始。當(dāng)發(fā)生第一個(gè)觸發(fā)時(shí),由存儲(chǔ)控制器14將未發(fā)生該觸發(fā)的情況下應(yīng)寫(xiě)入的循環(huán)緩沖器18中的下一個(gè)位置作為“偏移量”保存,即該偏移量是該歷元的最舊數(shù)據(jù)在循環(huán)緩沖器中的位置。只要有觸發(fā),則線性地寫(xiě)入歷元的線性區(qū)域20,或直到將后觸發(fā)量的數(shù)據(jù)加預(yù)觸發(fā)量的數(shù)據(jù)都寫(xiě)入而沒(méi)有另外的觸發(fā)事件為止。當(dāng)發(fā)生此情況時(shí),在長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中的寫(xiě)入使預(yù)觸發(fā)量的數(shù)據(jù)跳回到新歷元的基位置或開(kāi)始處的循環(huán)緩沖器的開(kāi)始。為了讀取歷元中的數(shù)據(jù),按預(yù)觸發(fā)數(shù)據(jù)的量定義的,在偏移量位置開(kāi)始讀取,并進(jìn)行到循環(huán)緩沖器18的末端。然后從歷元的基位置讀取數(shù)據(jù)并進(jìn)行到偏移量。在預(yù)觸發(fā)數(shù)據(jù)之后開(kāi)始直到下一個(gè)歷元的基位置來(lái)讀取其余的數(shù)據(jù)。每個(gè)歷元的基位置和偏移量被保存在歷元循環(huán)列表中。
如果歷元中的第一個(gè)觸發(fā)發(fā)生在循環(huán)緩沖器18的剛好末端,則偏移量為零,以及歷元中的數(shù)據(jù)處于正確的時(shí)序次序。當(dāng)觸發(fā)事件按頻繁的速率繼續(xù),并且整個(gè)存儲(chǔ)器變成單個(gè)線性區(qū)域時(shí),則有單個(gè)歷元,并蓋寫(xiě)歷元開(kāi)始處的循環(huán)緩沖器18。當(dāng)發(fā)生此情況時(shí),歷元偏移量設(shè)為零,以表示長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12全部是線性的。當(dāng)停止時(shí),將要寫(xiě)入的下一個(gè)位置作為線性區(qū)域20開(kāi)始的位置存儲(chǔ)。
當(dāng)僅需要一個(gè)記錄時(shí),僅保存含最后一個(gè)觸發(fā)的歷元的信息。但是,當(dāng)需要有關(guān)多個(gè)觸發(fā)事件的信息時(shí),將有關(guān)多個(gè)歷元的信息保存在歷元循環(huán)列表中。列表中的每個(gè)項(xiàng)通過(guò)保存基地址和偏移量來(lái)描述歷元,如上所述。指向歷元循環(huán)列表中的指針標(biāo)識(shí)當(dāng)前歷元。歷元列表中可以存儲(chǔ)有其他數(shù)據(jù)、例如時(shí)間戳,這樣能夠知道歷元之間的時(shí)間。
使用觸發(fā)數(shù)據(jù)循環(huán)列表跟蹤多個(gè)觸發(fā)事件。有指針指向列表中保存有關(guān)下一個(gè)觸發(fā)事件的數(shù)據(jù)的項(xiàng)。當(dāng)開(kāi)始采集時(shí),將指針設(shè)為指向觸發(fā)數(shù)據(jù)循環(huán)列表中的第一項(xiàng),并清除標(biāo)志以表示該循環(huán)列表未滿。在發(fā)生足夠的觸發(fā)事件而導(dǎo)致指針回卷到觸發(fā)數(shù)據(jù)循環(huán)列表的頂部之后,設(shè)置該標(biāo)志以表示觸發(fā)數(shù)據(jù)循環(huán)列表已滿。當(dāng)發(fā)生觸發(fā)事件時(shí),將標(biāo)識(shí)觸發(fā)事件的數(shù)據(jù)輸入到觸發(fā)數(shù)據(jù)循環(huán)列表中,并且列表指針前進(jìn)到下一項(xiàng)。觸發(fā)數(shù)據(jù)包括歷元號(hào)和在歷元內(nèi)的位置。歷元號(hào)是歷元循環(huán)列表中的索引。歷元信息標(biāo)識(shí)歷元在長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中的開(kāi)始,從而能夠在歷元內(nèi)找到與每個(gè)觸發(fā)事件相關(guān)的滿記錄??梢詫⒁恍└郊有畔⒋鎯?chǔ)在觸發(fā)數(shù)據(jù)循環(huán)列表中的每個(gè)項(xiàng)中。
在動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)技術(shù)中,以多個(gè)字節(jié)的猝發(fā)的形式寫(xiě)入數(shù)據(jù),這些字節(jié)表示數(shù)據(jù)樣本的分組或塊。因此,長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中的每個(gè)地址對(duì)應(yīng)于所采集的數(shù)據(jù)的分組和塊。當(dāng)是這種情況時(shí),在觸發(fā)數(shù)據(jù)循環(huán)列表中存儲(chǔ)附加數(shù)據(jù)以標(biāo)識(shí)分組或塊內(nèi)的觸發(fā)位置。有時(shí)以好于長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中當(dāng)前存儲(chǔ)的數(shù)據(jù)的取樣率的分辨率來(lái)測(cè)量觸發(fā)事件的時(shí)間。當(dāng)是這種情況時(shí),可以將額外的分辨率存儲(chǔ)在觸發(fā)數(shù)據(jù)循環(huán)列表中。還可以存儲(chǔ)時(shí)間戳。在僅需要有關(guān)單個(gè)觸發(fā)事件的信息的特殊情況中,不需要觸發(fā)數(shù)據(jù)循環(huán)列表,而在寄存器中保留期望的信息。
實(shí)際上,有三種操作模式。在第一種模式中,捕獲單個(gè)記錄。在第二種模式中,捕獲對(duì)應(yīng)于多個(gè)順序觸發(fā)事件的所采集的數(shù)據(jù)。在第三種模式中,捕獲變化長(zhǎng)度的分組的數(shù)據(jù)。
當(dāng)捕獲單個(gè)觸發(fā)事件的記錄時(shí),將預(yù)觸發(fā)數(shù)據(jù)和后觸發(fā)數(shù)據(jù)的大小編程為使3*A+Z小于可用的存儲(chǔ)器大小M。當(dāng)開(kāi)始采集過(guò)程時(shí),最初在剛好第一個(gè)預(yù)觸發(fā)區(qū)間禁用觸發(fā)事件,如上所述。此后可以按最慢觸發(fā)系統(tǒng)速度、可將數(shù)據(jù)置于觸發(fā)數(shù)據(jù)循環(huán)列表中的速率或用戶為限制觸發(fā)接受率而指定的釋抑時(shí)間所確定的相對(duì)較高的速率來(lái)啟用觸發(fā)事件。當(dāng)儀器處于單個(gè)序列模式時(shí),第一個(gè)接受的觸發(fā)事件導(dǎo)致采集過(guò)程在采集了后觸發(fā)數(shù)據(jù)之后被暫停。僅保留第一個(gè)觸發(fā)事件。在任何情況中,在停止命令之后暫停采集,但是如果識(shí)別出觸發(fā)事件,并且正在采集尚未完成的觸發(fā)事件的后觸發(fā)數(shù)據(jù),則延長(zhǎng)采集,直到后觸發(fā)期間結(jié)束為止。
當(dāng)捕獲一系列順序觸發(fā)事件時(shí),將預(yù)觸發(fā)數(shù)據(jù)和后觸發(fā)數(shù)據(jù)編程為使(N+2)*A+N*Z小于可用的存儲(chǔ)器大小M,同樣如上所述。當(dāng)啟動(dòng)采集過(guò)程時(shí),最初在剛好第一個(gè)預(yù)觸發(fā)區(qū)間禁用觸發(fā)事件。此后可以按最慢觸發(fā)系統(tǒng)速度、可將數(shù)據(jù)置于觸發(fā)數(shù)據(jù)循環(huán)列表中的速率或用戶為限制觸發(fā)接受率而指定的釋抑時(shí)間確定的相對(duì)較高的速率來(lái)啟用觸發(fā)事件。如果儀器處于單個(gè)序列模式,則在接受N個(gè)觸發(fā)事件之后,它忽略另外的觸發(fā)事件并停止采集。在任何情況中,在停止命令之后暫停采集。將數(shù)據(jù)的實(shí)際采集延長(zhǎng)到最后一個(gè)接受的觸發(fā)的后觸發(fā)時(shí)間結(jié)束。
一些形式的數(shù)據(jù)在分組中發(fā)送,即USB和以太網(wǎng)數(shù)據(jù)。在信息的分組之間,數(shù)據(jù)總線是空閑的。當(dāng)所需要的僅僅是信息的分組時(shí),從數(shù)據(jù)總線捕獲大量空閑數(shù)據(jù)填充長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器。分組常常以多種大小到達(dá)。有時(shí)需要的是觸發(fā)模式,該觸發(fā)模式捕獲分組中的所有數(shù)據(jù)而在長(zhǎng)時(shí)間段數(shù)據(jù)總線處于空閑時(shí)不捕獲空閑數(shù)據(jù)。用于長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器的數(shù)據(jù)管理系統(tǒng)在即使分組是不同大小的情況下仍能夠采集分組,同時(shí)排除幾乎所有的空閑時(shí)間。為了捕獲分組,將觸發(fā)設(shè)為基于分組中數(shù)據(jù)的轉(zhuǎn)變而觸發(fā)。分組內(nèi)的數(shù)據(jù)總是至少按某個(gè)最小速率轉(zhuǎn)變。將預(yù)觸發(fā)時(shí)間和后觸發(fā)時(shí)間設(shè)為在任何狀態(tài)下比數(shù)據(jù)可以保留的時(shí)間長(zhǎng)。在分組期間,數(shù)據(jù)的連續(xù)更改一直生成觸發(fā),這導(dǎo)致在一個(gè)歷元期間采集整個(gè)分組。一旦達(dá)到分組的末端,數(shù)據(jù)總線變成空閑的,則不再生成觸發(fā),歷元達(dá)到末端。在新歷元的開(kāi)始處創(chuàng)建循環(huán)緩沖器,并廢棄數(shù)據(jù)樣本,直到下一個(gè)分組的開(kāi)始。在分組捕獲模式中,僅在觸發(fā)數(shù)據(jù)循環(huán)列表中存儲(chǔ)每個(gè)歷元中的第一個(gè)觸發(fā)事件。記錄是可變長(zhǎng)度。分組的記錄開(kāi)始于歷元的開(kāi)始處,并直到該歷元的末端。在單個(gè)序列模式中,可以將存儲(chǔ)控制器14編程為捕獲數(shù)據(jù)直到捕獲到某個(gè)數(shù)量的分組或當(dāng)長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12已滿或幾乎已滿時(shí)為止。此時(shí),停止采集。最后一個(gè)分組可以是不完整的。在任何情況中,在停止命令之后暫停采集,延長(zhǎng)到后觸發(fā)事件結(jié)束。
有多種情況要考慮。當(dāng)在分組中間暫停采集時(shí),將另一個(gè)歷元寫(xiě)入到歷元循環(huán)存儲(chǔ)器中。下一個(gè)項(xiàng)定義當(dāng)前歷元的末端。在非常長(zhǎng)的分組的情況或當(dāng)數(shù)據(jù)是連續(xù)的時(shí),可以對(duì)長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12填充數(shù)據(jù),并可以蓋寫(xiě)歷元的開(kāi)始。在此情況中,沒(méi)有完整的分組要顯示。當(dāng)暫停采集時(shí),可以修改歷元循環(huán)列表以使當(dāng)前歷元的基位置接近長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12中最舊采集的數(shù)據(jù)。如果分組長(zhǎng)度短且存儲(chǔ)器長(zhǎng)度長(zhǎng),則使觸發(fā)數(shù)據(jù)循環(huán)列表或歷元循環(huán)列表溢出是可能的。在單個(gè)序列模式中,采集會(huì)在這些列表溢出之前停止,即使長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器12未滿。如果這些列表溢流,則要小心確保僅顯示合理的采集數(shù)據(jù)。在分組模式中,對(duì)應(yīng)于每個(gè)觸發(fā)有一個(gè)歷元,所以如果歷元循環(huán)列表短于觸發(fā)數(shù)據(jù)循環(huán)列表,則需要特殊邏輯。
因此,本發(fā)明提供一種用于長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器的數(shù)據(jù)管理方法,該方法使用存儲(chǔ)器中的循環(huán)緩沖器在預(yù)觸發(fā)時(shí)間期間管理數(shù)據(jù)在長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器中的放置,并在發(fā)生第一個(gè)觸發(fā)事件時(shí)跳到存儲(chǔ)器內(nèi)的循環(huán)緩沖器的末端處的線性區(qū)域直到發(fā)生最后一個(gè)觸發(fā)事件之后后觸發(fā)時(shí)間和預(yù)觸發(fā)時(shí)間都屆滿為止。
權(quán)利要求
1.一種用于存儲(chǔ)器的數(shù)據(jù)管理的方法,包括如下步驟將數(shù)據(jù)樣本寫(xiě)入到所述存儲(chǔ)器內(nèi)具有第一數(shù)量的存儲(chǔ)單元的循環(huán)緩沖器中;當(dāng)?shù)谝粋€(gè)觸發(fā)事件發(fā)生時(shí)將數(shù)據(jù)樣本寫(xiě)入到所述存儲(chǔ)器內(nèi)所述循環(huán)緩沖器之后的線性區(qū)域;以及在最后一個(gè)觸發(fā)事件發(fā)生之后將量等于所述第一數(shù)量的存儲(chǔ)單元和第二數(shù)量的存儲(chǔ)單元之和的數(shù)據(jù)樣本寫(xiě)入到所述線性區(qū)域時(shí),停止將數(shù)據(jù)樣本寫(xiě)入到所述線性區(qū)域。
2.如權(quán)利要求1所述的方法,其特征在于,對(duì)應(yīng)于所述循環(huán)緩沖器的開(kāi)始至所述最后一個(gè)觸發(fā)事件之后的所述第二數(shù)量的存儲(chǔ)單元的存儲(chǔ)單元包括歷元。
3.如權(quán)利要求2所述的方法,還包括按如下時(shí)序次序從所述存儲(chǔ)器讀取所述歷元的步驟,開(kāi)始于所述循環(huán)緩沖器中一點(diǎn)接著是所述第一觸發(fā)事件到所述循環(huán)緩沖器的末端,然后從所述循環(huán)緩沖器的開(kāi)始到所述第一觸發(fā)事件,最后從所述線性區(qū)域的開(kāi)始到所述第二數(shù)量的存儲(chǔ)單元的末端。
4.如權(quán)利要求2所述的方法,還包括保存歷元循環(huán)列表的步驟,所述歷元循環(huán)列表包含所述存儲(chǔ)器內(nèi)的每個(gè)歷元的開(kāi)始的指示。
5.如權(quán)利要求4所述的方法,還包括保存觸發(fā)數(shù)據(jù)循環(huán)列表的步驟,所述觸發(fā)數(shù)據(jù)循環(huán)列表包含每個(gè)歷元內(nèi)的每個(gè)觸發(fā)事件的的指示。
全文摘要
一種用于數(shù)據(jù)采集的長(zhǎng)記錄長(zhǎng)度存儲(chǔ)器的數(shù)據(jù)管理方法,該方法將數(shù)據(jù)樣本寫(xiě)入到存儲(chǔ)器內(nèi)具有等于預(yù)觸發(fā)時(shí)間的大小的初始循環(huán)緩沖器。當(dāng)發(fā)生第一觸發(fā)事件時(shí),則將數(shù)據(jù)樣本寫(xiě)入到存儲(chǔ)器內(nèi)循環(huán)緩沖器之后的線性區(qū)域內(nèi)。線性區(qū)域中的數(shù)據(jù)樣本采集繼續(xù),直到最后一個(gè)觸發(fā)事件之后后觸發(fā)和新的預(yù)觸發(fā)時(shí)間屆滿為止,此時(shí),采集終止,并且該新的預(yù)觸發(fā)時(shí)間成為下一個(gè)觸發(fā)事件的新循環(huán)緩沖器。以此方式,利用關(guān)聯(lián)的預(yù)觸發(fā)數(shù)據(jù)和后觸發(fā)數(shù)據(jù)一起捕獲所有觸發(fā)事件。
文檔編號(hào)G06F17/40GK101063688SQ200710089789
公開(kāi)日2007年10月31日 申請(qǐng)日期2007年3月22日 優(yōu)先權(quán)日2006年3月24日
發(fā)明者T·R·比爾, S·K·薩利文, K·維思 申請(qǐng)人:特克特朗尼克公司