專利名稱:存儲器刷新速率的測試方法
技術領域:
本發(fā)明涉及一種存儲器刷新速率的測試方法,特別是提供一種能夠精確地測試出存儲器刷新速率是否在可容許誤差范圍內的測試方法。
動態(tài)隨機存取存儲器(dynamic random access memory,以下簡稱DRAM)由于集成度高、成本低等優(yōu)點,目前普遍地使用于各種計算機系統(tǒng)中,作為存儲數(shù)據(jù)的介質。DRAM的工作原理主要在于利用電容器(capacitor)存儲電荷的狀態(tài)來記錄比特數(shù)據(jù)“1”或“0”。不過,由于電容器的存儲電荷會在一定時間內因放電而減少,所以使用時必須周期性地對每個存儲器單元進行刷新動作(refresh),以防止數(shù)據(jù)的流失。
在DRAMIC(集成電路)內都包括部分外圍電路(peripheral circuit)來處理存儲器單元的刷新動作,但同時也需要外部的存儲器控制器(memorycontroller)提供周期性的信號來啟動刷新動作。在一般的個人計算機系統(tǒng)中,存儲器控制器置于俗稱為北橋(north bridge)的系統(tǒng)芯片內。根據(jù)IBM PC兼容個人計算機的規(guī)范,計算機存儲器刷新速率(refreshinterval)應為55μs(頻率為8182Hz)。
目前對于存儲器刷新速率的測試,大都是利用計算機系統(tǒng)內的實時時鐘(real-time clock)(或稱為CMOS RTC)來進行。
圖1表示現(xiàn)有技術中用以測試存儲器刷新速率的處理流程圖。在下面的測試過程中,假設CMOS RTC所顯示的時間是準確的。當處理開始時,首先設定最大允許誤差值p以及存儲器刷新總次數(shù)n(S100)。存儲器刷新總次數(shù)n用來界定進行測試的時間。設定完成后,就等待存儲器刷新動作的出現(xiàn)(S101),即,讓下一個刷新動作來啟動測試程序。在出現(xiàn)存儲器刷新動作后,先記錄CMOS RTC上的目前時間T1(S102)。CMOS RTC的時間單位為秒(sec),一般形式為hh:mm:ss(小時分秒)。接著測試程序會判斷存儲器刷新次數(shù)是否達到預先設定的存儲器刷新總次數(shù),亦即n次(S103)。如果尚未達到,便繼續(xù)等待;在達到n次之后,再記錄CMOS RTC的目前時間T2(S104)。接著,判斷(T2-T1)-(n/8182)差值是否在最大允許誤差值p范圍內(S105)。其中,(n/8182)表示當存儲器刷新頻率為正常時要達到存儲器刷新總次數(shù)n所需要的時間;而(T2-T1)則表示在實際測試時所獲得的時間。因此,如果|(T2-T1)-(n/8182)|≤p(其中||表示絕對值),則表示誤差在允許誤差范圍內,即存儲器刷新速率正常(S106);而如果|(T2-T1)-(n/8182)|>p,則表示誤差過大,故警告存儲器刷新速率不正常(S107)。
以下利用實際范例來說明此測試方法。假設最大允許誤差值p=1,即,最大誤差不得超過1秒,此為可設定的最小值;另外假設存儲器刷新總次數(shù)n=81820,因此執(zhí)行81820次刷新動作的標準時間為(81820/8182)=10秒。當出現(xiàn)存儲器刷新動作時,假設此時CMOS RTC中的顯示時間T1=09:15:22。接著跟蹤存儲器刷新次數(shù)到第81820次,再記錄目前CMOS RTC中的時間T2(S104)。假設此時T2=09:15:32,則真實的測試時間為T2-T1=10秒,而標準地執(zhí)行81820次刷新動作時間也為10秒,所以可以判斷出此存儲器刷新速率正常。相對而言,如果真實測試時間與標準刷新動作時間的差值超過最大允許誤差值(1秒),則表示存儲器刷新速率不正常。
根據(jù)上述的說明可以看出,現(xiàn)有存儲器刷新速率測試方法的最大缺點在于測試準確度不足。由于CMOS RTC的最小單位為秒,所以最大允許誤差值可設定的最小值為1秒。即,在上述范例中,對于81820次刷新動作的標準時間為10秒來說,其相對最大允許誤差值在10%左右。換言之,真實狀態(tài)下在10%以內的誤差值是無法測量出來的。因此會出現(xiàn)某些誤差無法測試出來的問題。
有鑒于此,本發(fā)明的主要目的在于提供一種存儲器刷新速率的測試方法,能夠在不增加太多成本的情況下,提高存儲器刷新速率的測試準確度。
根據(jù)上述的目的,本發(fā)明提出一種存儲器刷新速率的測試方法,它可適用于計算機系統(tǒng)中,用來測試其中的存儲器刷新速率是否正常。其主要是利用計算機系統(tǒng)中的CMOS周期中斷來實現(xiàn)。首先,設定CMOS周期中斷頻率為一設定頻率,此設定頻率最好超過一般存儲器刷新速率,例如其最高值(8192Hz)。
接著,記錄在相同時間內存儲器刷新次數(shù)和CMOS周期中斷的發(fā)生次數(shù)。此記錄方法中,可以設定一存儲器刷新總次數(shù)。先暫停CMOS周期中斷,當計算機系統(tǒng)中的存儲器刷新動作出現(xiàn)時,再恢復CMOS周期中斷,同時利用CMOS周期中斷處理程序來累計CMOS周期中斷的發(fā)生次數(shù)。而當存儲器刷新次數(shù)達到先前所設定的存儲器刷新總次數(shù)時,就記錄目前CMOS周期中斷的發(fā)生次數(shù)。因此,可以在相同時間內記錄下存儲器刷新次數(shù)(先前設定值)以及CMOS周期中斷的發(fā)生次數(shù)。
最后,根據(jù)CMOS周期中斷的設定頻率和發(fā)生次數(shù)以及存儲器刷新次數(shù),來判斷存儲器刷新速率是否正常。例如,先指定一最大允許誤差值,再來計算出存儲器刷新次數(shù)和存儲器刷新頻率的比值與CMOS周期中斷的發(fā)生次數(shù)和設定頻率的比值的誤差值。如果此誤差值的絕對值小于最大允許誤差值,則表示存儲器刷新速率正常。如果此誤差值的絕對值大于最大允許誤差值,則表示存儲器刷新速率不正常。采用此方式,便可以判斷出存儲器刷新速率是否正常。
另外,上述存儲器刷新速率的測試方法也可以使用其他的參考周期信號來執(zhí)行測試的動作。由上述計算機系統(tǒng)中所提供的參考周期信號,先設定其頻率為一設定頻率。其中,此參考周期信號與用以刷新存儲器的周期信號來自不同信號源,并且此設定頻率高于存儲器刷新速率。接著,同樣在相同時間內,記錄存儲器刷新次數(shù)和參考周期信號的發(fā)生次數(shù)。最后便可以根據(jù)參考周期信號的設定頻率和發(fā)生次數(shù)以及存儲器刷新次數(shù),來判斷出存儲器刷新速率是否正常。
為使本發(fā)明的上述目的、特征和優(yōu)點能更清楚易懂,下文中特舉一優(yōu)選實施例并配合附圖作詳細說明,附圖中圖1表示現(xiàn)有技術的測試存儲器刷新速率的處理流程圖;圖2表示本發(fā)明第一實施例的測試存儲器刷新速率的處理流程圖;圖3表示本發(fā)明第二實施例的測試存儲器刷新速率的處理流程圖;和圖4表示本發(fā)明第三實施例的測試存儲器刷新速率的處理流程圖。
本發(fā)明的存儲器刷新速率的測試方法主要是利用具有較高準確度的其他信號源來進行測試。以下以實施例詳細說明。第一實施例在此實施例中,利用CMOS RTC的周期中斷(periodic interrupt)做為參考信號進行測試,亦即,假設以CMOS周期中斷速率為準確計時標準而進行的測試。CMOS周期中斷的頻率可以由使用者自行加以設定,一般最高頻率為8192Hz,也就是說,每秒產(chǎn)生8192次中斷。由于CMOS周期中斷為計算機系統(tǒng)中原有的資源,因此使得本實施例在實施時不僅可以達到測試的目的,同時不會增加成本。
圖2表示第一實施例中測試存儲器刷新速率的處理流程圖。首先設定測試用參數(shù),包括最大允許誤差值p以及存儲器刷新總次數(shù)n(S200)。在本實施例中,由于CMOS周期中斷的時間分割精確度高于一秒,因此最大允許誤差值可以設定成低于一秒的數(shù)值。接著,設定CMOS周期中斷的頻率。在考慮頻率的設定時,最好能夠設定成大于一般存儲器的刷新速率,亦即8182Hz,如此可以提供較高的準確度。如前所述,CMOS周期中斷的最高可設定值為8192Hz,此即為本實施例所采用的數(shù)值。設定完成后,可以先暫停CMOS周期中斷,準備開始進行后續(xù)的記錄動作(S201)。
接下來,等待存儲器刷新動作的出現(xiàn)(S202)。在出現(xiàn)下一個存儲器刷新動作后,開始恢復CMOS周期中斷(S203),并且通過CMOS周期中斷處理程序來累計CMOS周期中斷發(fā)生次數(shù)m(S204)。與此同時,也通過此測試程序來累計存儲器刷新次數(shù)。每當新的存儲器刷新動作出現(xiàn)時,比較累計的存儲器刷新次數(shù)是否達到n次(S205)。此循環(huán)動作會在上述條件成立時終止。
當上述終止條件成立時,先暫停CMOS周期中斷(S206)。此時所得到的m值和n值就是在相同時間內的CMOS周期中斷發(fā)生次數(shù)以及存儲器刷新次數(shù)。接著,計算CMOS周期中斷發(fā)生次數(shù)m與其頻率(8192Hz)的比值(m/8192)以及存儲器刷新次數(shù)n與其頻率(8182Hz)的比值(n/8182),用以判斷m/8192與n/8182之差是否在最大允許誤差值p范圍內(S207)。其中,n/8182表示標準地進行n次存儲器刷新動作所需要的時間,而m/8192則表示實際進行n次存儲器刷新動作所耗費的時間。因此,如果|(m/8192)-(n/8182)|≤p成立,則表示存儲器刷新速率正常(S208);相反,如果|(m/8192)-(n/8182)|>p成立,則表示需要警告存儲器刷新速率不正常(S209)。最后,恢復CMOS周期中斷(S210),完成存儲器刷新速率的測試。
以下以一實際范例來說明上述存儲器刷新速率測試流程。假設最大允許誤差值p=0.1(秒),所需要的存儲器刷新總次數(shù)n=81820。根據(jù)先前所述,進行n次存儲器刷新的標準時間為(n/8182)=(81820/8182)=10(秒)。如果在測試循環(huán)(S204、S205)中得到的CMOS周期中斷發(fā)生次數(shù)m=80281,則表示進行n次存儲器刷新的實際時間為(m/8192)=(80281/8192)=9.8(秒)。因此,實際時間與標準時間的誤差值為|9.8-10|=0.2,大于所設定的最大允許誤差值0.1秒,所以可以判斷出目前的存儲器刷新速率不正常。必須說明的是,在相同的測試時間內,現(xiàn)有技術無法檢測出例如上例中的存儲器刷新速率偏移情況,這也正說明了本實施例在測試性能上的優(yōu)越性,即,可以在不增加成本的情況下,提高存儲器刷新速率的準確度。第二實施例雖然在第一實施例中利用暫停和恢復CMOS周期中斷的方式來對其發(fā)生次數(shù)計數(shù),但是也可以利用其他方式在執(zhí)行n次存儲器刷新動作的同時累計CMOS周期中斷次數(shù),例如,使用計數(shù)器來累計CMOS周期中斷次數(shù)。
圖3表示第二實施例中測試存儲器刷新速率的處理流程圖。同樣,首先設定最大允許誤差值p以及存儲器刷新總次數(shù)n(S300)。接著再將CMOS周期中斷頻率設定為最大值,亦即8192Hz(S301)。接著,等待存儲器刷新動作的出現(xiàn)(S302)。當新的存儲器刷新動作出現(xiàn)時,啟動用來累計CMOS周期中斷發(fā)生次數(shù)的計數(shù)器(S303),并且持續(xù)地累計CMOS周期中斷發(fā)生次數(shù)m(S304)。與此同時,也通過測試程序來累計存儲器刷新次數(shù)。如果存儲器刷新次數(shù)尚未達到n次,則回到步驟S304;如果存儲器刷新次數(shù)達到n次(S305),則讀出在CMOS周期中斷計數(shù)器中的計數(shù)值m(S306)。最后計算出m/8192與n/8182之差是否在最大允許誤差值p范圍內(S307)。如果誤差值在最大允許誤差值p的范圍內,則判定存儲器刷新速率正常(S308);如果誤差值不在最大允許誤差值p的范圍內,則警告存儲器刷新速率不正常(S309)。
在此實施例中,利用計數(shù)器的使用說明了可以使用不同方式來對CMOS周期中斷計數(shù),并非用以限定本發(fā)明。第三實施例雖然在第一實施例中,利用具有周期性的CMOS周期中斷來做為存儲器刷新速率測試的參考信號,但是也可以利用其他參考周期信號來達到相同的效果。不過,考慮成本及效率,此參考周期信號最好是由計算機系統(tǒng)本身具備的資源,而不需要由外部提供,如此,可以在不增加成本的情況下進行存儲器刷新速率的測試。另外,此參考周期信號與存儲器刷新動作所使用的信號源必須不同,如此才可以做為時間的參考值。由于一般計算機系統(tǒng)中的存儲器刷新動作是由北橋系統(tǒng)芯片中的存儲器控制器負責,因此本實施例中所使用的參考周期信號必須是來自非北橋系統(tǒng)芯片的其他信號源。另外,此參考周期信號的頻率最好高于一般存儲器刷新速率,由此提供更準確的測試。
圖4表示第三實施例中測試存儲器刷新速率的處理流程圖。同樣,首先設定最大允許誤差值p以及存儲器刷新總次數(shù)n(S400)。如果此參考周期信號是可設定的,則接著設定參考周期信號的頻率f,并且頻率f最好高于一般存儲器刷新速率,然后暫停此參考周期信號(S401)。接著等待存儲器刷新動作的出現(xiàn)(S402)。當新的存儲器刷新動作出現(xiàn)時,恢復此參考周期信號(S403),并且通過驅動程序持續(xù)地累計此參考周期信號的發(fā)生次數(shù)m′(S404)。與此同時,也通過測試程序來累計存儲器刷新次數(shù)。如果存儲器刷新次數(shù)尚未達到n次,則回到步驟S404;如果存儲器刷新次數(shù)達到n次(S405),則先暫停此參考周期信號(S406),并且取出目前所累計的參考周期信號發(fā)生次數(shù)m′。最后計算出m′/f與n/8182的差是否在最大允許誤差值p范圍內(S407)。如果誤差值在最大允許誤差值p的范圍內,則判定存儲器刷新速率正常(S408);如果誤差值不在最大允許誤差值p的范圍內,則警告存儲器刷新速率不正常(S409),并且結束此測試。
根據(jù)以上所述,本發(fā)明的存儲器刷新速率測試方法的優(yōu)點包括下列幾點(1)利用精確度低于1秒的CMOS周期中斷或其他具有此特性的參考周期信號,在相同測試時間的條件下,可以達到以往測試方法所無法達到的測試準確度。
(2)由于采用的CMOS周期中斷或參考周期信號均是計算機系統(tǒng)中原本具備的資源,因此可以在不增加成本的情況下達到提高測試準確度的目的。
本發(fā)明雖以一較佳實施例公開如上,但是其并非用以限定本發(fā)明。任何本領域內的普通技術人員均可在不脫離本發(fā)明的精神和范圍的前提下進行各種修改和變型。因此,本發(fā)明的保護范圍由所附權利要求書限定。
權利要求
1.一種存儲器刷新速率的測試方法,適用于計算機系統(tǒng)中,用以測試所述計算機系統(tǒng)中的存儲器刷新速率是否正常,所述測試方法包括下列步驟設定所述計算機系統(tǒng)中CMOS周期中斷頻率為一設定頻率;記錄在相同時間內所述計算機系統(tǒng)中的存儲器刷新次數(shù)和所述CMOS周期中斷的發(fā)生次數(shù);以及根據(jù)所述CMOS周期中斷的所述設定頻率和所述發(fā)生次數(shù)以及所述存儲器刷新次數(shù),判斷所述存儲器刷新速率是否正常。
2.如權利要求1所述的測試方法,其中,所述判斷步驟還包括下列步驟指定一最大允許誤差值;計算所述存儲器刷新次數(shù)和所述存儲器刷新頻率的比值與所述CMOS周期中斷的發(fā)生次數(shù)和所述設定頻率的比值的差值;根據(jù)所述差值和所述最大允許誤差值,確定所述存儲器刷新速率是否正常,其中,當所述差值的絕對值小于所述最大允許誤差值時,表示所述存儲器刷新速率正常,而當所述差值的絕對值大于所述最大允許誤差值時,表示所述存儲器刷新速率不正常。
3.如權利要求1所述的測試方法,其中,所述設定頻率高于所述存儲器刷新速率。
4.如權利要求3所述的測試方法,其中,所述設定頻率為所述CMOS周期中斷的最大設定頻率。
5.如權利要求1所述的測試方法,其中,所述記錄步驟還包括下列步驟設定一存儲器刷新總次數(shù);暫停所述CMOS周期中斷;當所述計算機系統(tǒng)的存儲器刷新動作出現(xiàn)時,恢復所述CMOS周期中斷;利用CMOS周期中斷處理程序累計所述CMOS周期中斷的發(fā)生次數(shù),并且累計所述存儲器的刷新次數(shù);以及當所述存儲器的刷新次數(shù)達到所述存儲器刷新總次數(shù)時,記錄目前CMOS周期中斷的發(fā)生次數(shù)。
6.如權利要求1所述的測試方法,其中,所述記錄步驟還包括下列步驟設定一存儲器刷新總次數(shù);設置一計數(shù)器,用以對所述CMOS周期中斷的發(fā)生次數(shù)進行計數(shù);當所述計算機系統(tǒng)的存儲器刷新動作出現(xiàn)時,啟動所述計數(shù)器,并且累計所述存儲器的刷新次數(shù);以及當所述存儲器刷新次數(shù)達到所述存儲器刷新總次數(shù)時,暫停所述計數(shù)器,并且記錄目前的CMOS周期中斷的發(fā)生次數(shù)。
7.一種存儲器刷新速率的測試方法,適用于一計算機系統(tǒng)中,用以測試所述計算機系統(tǒng)中的存儲器刷新速率是否正常,所述測試方法包括下列步驟設定所述計算機系統(tǒng)中所提供的一參考周期信號的頻率為一設定頻率,所述參考周期信號與用以刷新存儲器的周期信號來自不同信號源,并且所述設定頻率高于所述存儲器刷新速率;記錄在相同時間內所述計算機系統(tǒng)中的存儲器刷新次數(shù)和所述參考周期信號的發(fā)生次數(shù);以及根據(jù)所述參考周期信號的所述設定頻率和所述發(fā)生次數(shù)以及所述存儲器刷新次數(shù),判斷所述存儲器刷新速率是否正常。
8.如權利要求7所述的測試方法,其中,所述判斷步驟還包括下列步驟指定一最大允許誤差值;計算所述存儲器刷新次數(shù)和所述存儲器刷新頻率的比值與所述參考周期信號的發(fā)生次數(shù)和所述設定頻率的比值的差值;根據(jù)所述差值和所述最大允許誤差值,決定所述存儲器刷新速率是否正常,其中,當所述差值的絕對值小于所述最大允許誤差值時,表示所述存儲器刷新速率正常,當所述差值的絕對值大于所述最大允許誤差值時,表示所述存儲器刷新速率不正常。
9.如權利要求7所述的測試方法,其中,所述記錄步驟還包括下列步驟設定一存儲器刷新總次數(shù);暫停所述參考周期信號;當所述計算機系統(tǒng)的存儲器刷新動作出現(xiàn)時,恢復所述參考周期信號;累計所述參考周期信號的發(fā)生次數(shù)以及累計所述存儲器的刷新次數(shù);以及當所述存儲器的刷新次數(shù)達到所述存儲器刷新總次數(shù)時,記錄目前的所述參考周期信號的發(fā)生次數(shù)。
10.如權利要求7所述的測試方法,其中,所述記錄步驟還包括下列步驟設定一存儲器刷新總次數(shù);設置一計數(shù)器,用以對所述參考周期信號的發(fā)生次數(shù)進行計數(shù);當所述計算機系統(tǒng)的存儲器刷新動作出現(xiàn)時,啟動所述計數(shù)器,并且累計所述存儲器的刷新次數(shù);以及當所述存儲器的刷新次數(shù)達到所述存儲器刷新總次數(shù)時,暫停所述計數(shù)器,并且記錄目前所述參考周期信號的發(fā)生次數(shù)。
全文摘要
一種存儲器刷新速率的測試方法,用來測試計算機系統(tǒng)的存儲器刷新速率是否正常。其方式是在相同時間內記錄計算機系統(tǒng)內的存儲器刷新次數(shù)和CMOS周期中斷的發(fā)生次數(shù),再利用CMOS周期中斷的設定頻率和發(fā)生次數(shù)以及所得到的存儲器刷新次數(shù),判斷出存儲器刷新速率是否正常。由于CMOS周期中斷的最高可設定頻率高于一般存儲器刷新速率并且為計算機系統(tǒng)原有的資源,所以能夠在不增加成本的情況下提高存儲器刷新速率測試的精確度。
文檔編號G11C29/00GK1324078SQ0010892
公開日2001年11月28日 申請日期2000年5月17日 優(yōu)先權日2000年5月17日
發(fā)明者馬勁柏, 張有權, 林光信 申請人:英業(yè)達股份有限公司