201218206 六、發明說明: 【發~明戶斤屬彳軒々貝域^ 發明領域 此處討論之實施例係有關於模擬錯誤引起裝置,其係 以模擬方式引起出現在半導體元件之記憶體的軟體錯誤。 發明背景 近年來隨著半導體元件的組態變得愈來愈細節化,半 導體記憶體電路的組態變得極其細節化。如此,已經導致 -種情況,半導體記憶體電路的操作容易受到即便是極小 i外。P Ab的衫響,造成在半導體記憶體中因α射線或宇宙射 線(中子射線)引起的軟體錯誤問題。已經常見大容量記憶體 凡件使賴誤檢查及校正(ECC)電路來執行料元錯誤校 正’而校正資料中因軟體錯誤諸如前述者所引起的錯誤。 又,隨著半導體處理程序變得愈來愈細節化,也萌生諸如 於微處理⑽錄記Μ發生軟體祕及因巾子射線引起 多位元錯誤等問題。 據此,已經採行對抗軟體錯誤的對治措施,且須檢查 此等對治措施是否能有效地對抗軟體錯誤。為了執行此項 檢查’須以模擬方式引起軟體錯誤及檢查操作。 在習知技術中,有一種方法其中模擬錯誤係植入於記 憶體。但此種枝要求記憶體單元透剛f槽或連接器而連 名士 又此種方法無法應用至含括在中央處理單元(cpu) 的相同封|體内部的快取記憶體。 201218206 專利文件1 .日本專利公開案第細4 21922號 【發^明内容】 發明概要 下歹丨實%例中,提出—種以模擬方式在半導體記憶體 引起錯誤的模擬錯誤弓丨起裝置。 一依據本實施例之—構面,—種觀錯誤引起裝置包括 貝Λ儲存單70來儲存包括-資訊位元及-冗餘位元之資 ^ ’―妹單元來從該資訊儲存單元中之-任意設定位址 括省資。Κ位元及該冗餘位元之資料而未執行錯誤檢 。或aoMxJL,及—回寫單元來將在包括該資訊位元及該 至餘位7L之資料的該讀取資料中之—任意設定位元位置的 。。個位元反轉,及將該位^反轉資料寫回至該資訊儲 存單元中之-原先位址。 依據下列實施例,提出一種在半導體記憶體引起相當 於軟體錯*之—模擬錯誤的模擬錯誤引起裝置。 圖式簡單說明 第1圖顯示依據本實施例_種使用模擬㈣ 之系統組態; 教置 第2圖顯示模擬錯誤引起單元之組態; 分) 第3圖說明如何將錯誤資訊寫至快取記憶體(第—部 分) .第4圖說明如何將錯誤資訊寫至快取記憶體(第二部 第5圖顯示第2圖所示底數時數器之組態; 201218206 第6A圖顯示第2圖所示具有最大值及最小值之亂數產 生器之組態; 第6B圖也係顯示第2圖所示具有最大值及最小值之亂 數產生器之組態; 第7圖顯示第2圖所示多位元錯誤產生比控制單元之組 態細節; 第8圖顯示模擬錯誤引起單元引起三位元錯誤作為模 擬多位元錯誤之組態; 第9圖顯示第8圖所示多位元錯誤產生比控制單元之組 態細節; 第10圖顯示施加本實施例之多核心資訊處理裝置之一 第一實例之組態; 第11圖顯示施加本實施例之多核心資訊處理裝置之一 第二實例之組態;及 第12圖顯示第11圖所示模擬錯誤引起單元93之組態細節。 C實施方式3 較佳實施例之詳細說明 軟體錯誤係由α射線、宇宙射線(中子射線)、電源供應 器雜訊等所引起,但具有下述特性,軟體錯誤作為讀取資 訊之錯誤,但於該資訊寫入後允許該資訊的正常讀取。於 下列實施例中,描述一種以模擬方式在資訊儲存(記憶體) 單元引起軟體錯誤之組態。藉由以模擬方式引起軟體錯 誤,可決定軟體錯誤對裝置產生影響之範圍,且提供用以 證實對抗錯誤的對治措施為有效之手段。 201218206 換S之,於下列實施例中,以模擬方式在記憶體引起 錯誤來a貫_作疋否正常進行’且預測在需要對抗由α射 線于由射線(中子射線)等所引起的軟體錯誤的對治措施之 資Λ處理裝置之貫際操作狀況下資訊發生錯誤的機率。 第1圖顯示依據本實施例一種使用模擬錯誤引起裝置 之系統組態。 第1圖之虛線框出部分通常鋪半導體日日日組配,及 主記憶體11係連結至該半導體晶片10。模擬錯誤引起單元 12於CPU 13不存取快取記,《14或主記Mil的時間週期 期間定期地引起模擬錯誤。換言之,模擬錯誤引起單元12 從主記憶體11及快取記憶體14讀取含冗餘位元之資訊而未 執行錯誤校正或錯誤檢測。隨後,顯錯誤⑽單元12將 在所讀取資料中隨機選擇的—個位元或二或多個位元反 轉,且將該資料回寫至原先位址。寫入將含冗餘位元之所 4取純中的位元反轉的結果,但未寫人從錯誤檢查及校 正(ECC)產生電路15或同位產生電路16之輪出資料。 如此造成當CPU從模擬錯誤引起單元12已經寫入資訊 之該位址執行正常讀取時,在—個位元或m 有 錯誤。 由CPU π正常存取記憶體係經由使用在主記憶體B 的存取主記㈣_(MMS)信號、糾簡肋上的存取 快取記憶體選擇(CMS)信號、及控制信號之讀卿简信號 執行。 藉CPU 13將資訊寫至主記憶體Μ,模擬錯誤寫入信 201218206 號(PEW)「0」係從模擬錯誤引起車元輸入,使得多工器Μρχ 17將CPU 13端的信號傳輸至主記憶體u。在與宣告主記憶 體選擇(MMS)k號的同時,CPU簽發一位址信號MADD , 且將R/W信號設定為WRITE,因此寫在資料輸出的信號付 諸執行。當如此執行時,於ECC產生電路15中,從CPU 13 傳輸的資料輸出信號產生檢查位元,此位元也寫至主記憶 體11。得自多工器ΜΡΧ 17的寫入資料Wdata係傳輸至三態 緩衝器22,變成欲輸入主記憶體u的資料。三態緩衝器 具有三個態,亦即一個態其中寫入資料為「1」,一個態其 中寫入貪料為「〇」,及一個態其中讀取自主記憶體11的資 料係繼續前傳。 從主記憶體11讀取資訊至CPU之執行方式係經由在與 宣告MMS信號的同時簽發一位址信號河八〇13,且將R/w信 號Μ為R E A D ’因此f料係從期望的位址經由三態緩衝器 22讀取。當如此執行時,讀取的資料RdataM包括Ecc位元, 及ECC檢查單元18檢查該資料。#無錯誤時資料位元係 傳輸至CPU 13 ’讀取程序完成。若為可校正錯誤(當該方法 為單一錯誤校正/雙重錯誤檢測(SEC/DED)方法時為單位元 錯誤則$及資料位元的錯誤部分係藉ECC檢查單元18校 正’及所得資料係經由多工器MPX 20而傳輸至CPU 13。 又’與此同時’發生可校正錯誤的事實使用錯誤信號報告 給CPU 13。虽檢測得不可校正的錯誤(sec/ded方法中的雙 位το錯誤)時’已經發生不可校正的錯誤之事實係使用錯誤 信號報告給CPU 13。 7 201218206 當報告發生錯誤時,CPU 13簽發中斷,執行錯誤處理 常式’記錄錯誤曰誌、,復置整個裝置,及自動關閉電源。 於將得自CPU 13的資訊寫至快取記憶體14中,模擬錯 誤引起單元首先設定模擬錯誤寫入信號(PEW)為「〇」,使得 多工器MPX 17將CPU 13上的信號傳輪給快取記憶體14。 CPU 13宣告CMS信號及同時簽發位址信號Madd,且將 R/W信號設定為WRITE,因此寫在資料輸出的信號付諸執 行。當如此執行時,於同位產生電路16中,在資料輸出信 號中產生一檢查位元,此一位元連同寫入資料Wdata_起寫 至快取記憶體14。 在從快取記憶體14讀取資訊至CPU 13中,與宣告CMS 信號之同時’簽發位址信號MADD,且將R/w信號設定為 READ ’藉此從期望位址讀取資料。當在快取記憶體1 *中有 藉相對應的位址信號MADD所載明的資料時,此一事實係 視為快取命中,且將此事實報告給CPU 13。讀取自快取記 憶體14的資料RdataC透過多工器MPX20傳輸給CPU 13。當 如此進行時,同位位元也同時讀取,同位(p_)檢查單元19 進行同位檢查。當檢測得錯誤時,同位位元係透過錯誤信 號線路23傳輸給CPU 13。 當報告有錯誤時,CPU 13簽發中斷,執行錯誤處理常 式,記錄錯誤日誌’復置整個裝置,及自動關閉電力。 當執行從快取記憶體14讀取資訊而並無任何資訊欲自 快取記憶體14讀取時’視為快取未命中,及執行快取資料 等的更新。於系統之正常操作中,CPU首先存取快取記憶 201218206 體,且唯有當視為快取未命中時CPU才存取主記憶體。 —在MMS信號及CMS信號(圖中未顯示)上執行或卿運 算,及結果係賴給模擬錯誤⑽單元u作為cpu_Acc。 又,此等結果係傳輸給快取記憶體14或主記憶體u,且當 cpu 13存取任意記憶體時,用來制止_錯誤引起單元12 存取任意記龍。讀取自主記憶體料及讀取 自快取記憶體14之資料RdataPC係輸入多工器Μρχ 21,及 其中之-者係經選擇來輸人模擬錯誤引起單元丨2。資料 Rc^taM為讀取自主記憶體之資料,且欲傳輸給模擬錯誤引 (單元12,及資料RdataPC為讀取自快取記憶體之資料,且 欲傳輸給模擬錯誤引起單元12。欲選擇該等信號中之哪一 者係藉從模擬錯則起單元12輸出的難主記憶體選擇 (PMMS)錢或藉類快取記憶體轉(pcMs)信號載明。 模擬主記憶體選擇(PMMS)信號或模擬快取記憶體選擇 (MS)L號載明邊模擬錯誤是否欲寫至主記憶體η或快 取。己L體14。X,當模擬錯誤引起單元12正在存取該等型 別的記憶體中之-者時,卿信號係設定為「 1」,欲從模 擬錯决引起單元丨2發送至cpu _使得來自CPU η的存 取等候。 j模擬錯决引起單元12以常數間隔執行將資訊寫至該等 己隐體70件中之—者之操作(讀取修改寫入)。讀取修改寫入 乃°買取貝料、修改資料、及將已修改之資料寫回到原先位 之處理私序。簽發針對此一處理程序之控制信號亦即 模擬主„己隐體選擇信號、模擬快取記憶體選擇 201218206 (PCMS)信號、模擬讀/寫(PR/W)信號、模擬位址(PADD)信 號、及模擬資料輸出(PDATA-Out)信號。多工器MPX 17的 控制信號PEW係設定為「1」,使得此等信號係經多工器MPX 17傳輸至記憶體元件中之一者。又,此一pEw信號係傳輸 給CPU 13,及限制從CPU 13存取記憶體直到藉模擬錯誤引 起單元12的寫入處理程序結束為止。 模擬錯誤引起單元12之操作始於從一記憶體元件讀取 以模擬主記憶體選擇(PMMS)信號或模擬快取記憶體選擇 (PCMS)#號載明之資訊。模擬錯誤引起單元丨2讀取寫在藉 位址信號(PADD)所載明的位址之資訊,及將該資訊傳輸給 模擬錯誤引起單7L 12。於本實例之情況下,包括欲藉存取 主記憶體獲得的ECC之檢查位元(冗餘位元)之資訊係不經 由ECC檢查單元18而讀取至模擬錯誤引起單元12。於該 SEC/DED方法中’於所讀取資料中之—或二位元資料係經 反轉,結果所得資料仙寫至與整個資料的相同位址。 藉CPU I3從此-位址讀取資訊,發生雙位元錯誤或單 位元錯誤。 當模擬錯誤引起單元12存取本實例之快取記憶體時, 包括在標藏部及同位位元資料的Rdatapc係讀取至錯誤產 生單元’及在所讀取資射的—個位元係被反轉,結果所 得資料係回寫至快取記龍的原先位址。 當CPU 13從此-位址讀取資訊時發生同位錯誤。 第2圖例示說明—種模擬錯誤引起單元之組態。 控制暫存器30包括一記憶體選擇單元31、-錯誤引起 10 201218206 1早"^、及—多位元錯誤控制單元33。 記憶體選擇單元31使用—位元值來載明是一 疏體域取記㈣。於第之實财,使=擇疋主 亦即主記憶體及快取 * 15己憶體 憶體作為目標。但本實例之精趙可 應用至快取記憶體係如快取及n 可應用至有二或多伽士“ 战的情况,或 , 一 主5己憶體元件之情況,即便位元齡日 增加亦如此。此—信號係藉解碼器49解碼, 元選擇R/w㈣單以。儲存單元選擇R/w控制單二= CC^虎係在非作動態,表示CPU不會存取主記惊體或 快取記龍’藉❹解碼㈣解碼記賴«單元3;中之 一位疋’及簽發主記憶體選擇信號(PMMS)或快取記憶體選 擇信號(PCMS)、及讀/寫信號(pR/w)。又,儲存單元選擇 R/W控制單7〇34對CPU 13簽發-pew信號,而指示模擬錯 誤引起單元12正在存取快取記憶體或主記憶體。此一pEW 信號也作為多工器MPX 17之控制信號。 由錯誤引起區間單元32所保有之數值決定欲反轉資料 之時間區間。注意即便當資料已經反轉時,CPU並未認知 錯誤的發生,除非CPU係從相對應的位址讀取資訊。 換言之,資訊是否讀取自具有反轉資料之位址係大為 受實際使用時施加至環境的系統組態或應用程式的影響。 欲設定之值容後詳述。 底數η計數器35依據來自時鐘36之輸入而增加計數 值,且當儲存在錯誤引起區間單元32之值與該計數值匹配 時,底數η計數器35簽發一觸發信號,因而反轉記憶體資 201218206 料,及清除計數器值。觸發值作動亂數產生器37,及更新 由亂數產生器37所產生的亂數值。又,觸發信號也傳輸給 儲存單元選擇R/W控制單元34,及使儲存單元選擇R/W控制 單元34輸出一PMMS信號、一PCMS信號、一PR/W信號、 及一 PEW信號。 多位元錯誤控制單元3 3係依據目標記憶體系統之錯誤 校正檢測功能而設定。當只引起一或二個位元錯誤時,多 位元錯誤控制單元33係設定為二位元,及指示如何引起多 位元錯誤。舉例言之,若該值為「00」則不會引起多位元 錯誤;當該值為「01」時,以由多位元錯誤控制單元33所 決定的單位元錯誤與多位元錯誤(第2圖為雙位元錯誤)間之 比引起多位元錯誤;當該值為「10」時,經常性地引起多 位元錯誤。引起多位元錯誤之一特定比值係預先設定為規 定值。 單位元錯誤與多位元錯誤間之比值係由多位元錯誤引 起比控制單元38決定。更明確言之,當要求比為η : 1(多位 元錯誤引起一次,而單位元錯誤係引起η次)時,多位元錯 誤引起比控制單元38設定計數器為底數η計數器,容後詳 述。多位元錯誤引起比控制單元38將反轉的多位元資料寫 至相同位址,使得唯有當計數值發生進位時才以模擬方式 引起多位元錯誤;及寫入反轉的單位元資料,使得當計數 器值係遞增而未發生進位時,以模擬方式引起單位元錯 誤。於第2圖例示說明之實例中,多位元錯誤為雙位元錯誤。 亂數產生器37之位址單元39係相對應於目標記憶體的 12 201218206 谷里及目標資料所定位的位址位置’及其最小值及最大值可 經設定(容後詳述)。來自位址單元39之輸出係藉位址產生單 元43處理,及隨後透過多工器MPX17(參考第丨圖)且作為欲 反轉資料的位址模擬位址(PADD)信號,傳輸給藉記憶體選 擇單元31所選定的記憶體,使得存取記憶體中期望的位址。 位元選擇單元40包括一位元位置選擇單元來選擇一或 多個位元位置而載明在一條字線中哪些位元欲反轉。更明 確言之,第一位元位置載明欲引起單位元模擬錯誤的位 置备提供多個位元選擇單元時,可能在與該等位元選擇 單7L所具有的位元數目同等多個位元模擬錯誤。位元選擇 單元之個別位元位置產生單元係彼此獨立地操作,分別產生 、數及載明i引起模擬錯誤的位置。又,位元選擇單元4〇 可依據目標記紐之位元寬度而設定最大值及最小值。 資料係依據位址信號、選擇快取記憶體及主記憶體中 者之選擇㈣、及R/w信號而讀取自記龍(第2圖之主 «體或陕取D己憶體),及讀取的資料係透過多工器Μρχ 5 X 21(參考第1圖)而累積在讀取資料暫存器41作為 ▲ ATA_In,及作為輪人而輸人互斥或電路42。當執行此項 寺。己It體之冗餘部(E c c單元及同位位元)也係直接讀 進讀取資㈣㈣4b x,t記憶體為快取記憶體時,快 取°己憶體的標籤記憶體部也讀進讀取資料暫存器41。 互斥或電路42的其它輸入為包括使用解碼器44藉解碼 二:之位元串的資料’該資料從亂數產生器37之位元選擇 單元40輸出及_個字组只包括—個位元其為「卜當可引 13 201218206 起多位元錯誤時,一個字組中的二或多個位元(第2圖為二 位元)可以是「1」。藉由在讀取自該記憶體的資料與此資料 間執行互斥或運算,反轉讀取自記憶體之資料中的—個位 元或二或多個位元(第2圖為二位元)。此種資料回寫至主記 憶體或快取記憶體。於第2圖之雙位元錯誤之情況下,在位 元選擇單元40之第二位元中之位元選擇信號係藉解碼器45 解碼,產生只有在位元串中須反轉的位置為「1」之一位元 串。當欲產生多位元錯誤時,在解碼器45的輸出上的及 (AND)運算結果係經由及(AND)序列46而得自多位元錯誤 引起比控制單元38。但及AND序列46之其它輸入,亦即來 自多位元錯誤引起比控制單元38的輸出為「1」,及得自及 AND序列46之輸出中的位元為「1」。當不欲產生多位元錯 誤時,來自多位元錯誤引起比控制單元38之輸出為「〇」, 及來自及AND序列46之輸出皆為「0」。及AND序列46執行 得自多位元錯誤引起比控制單元38之輸出與來自解碼器45 之輸出間的及AND運算;及當欲引起多位元錯誤時,輸出 其中第一位元位置為「1」的位元串。當不欲引起多位元錯 誤時,輸出其中全部位元皆為「0」的位元串。或(OR)電路 47執行表示得自解碼器44之第一位元位置之位元串與表示 得自解碼器45之第二位元位置之位元_間之或OR運算,及 將結果輸入資料反轉暫存器48。 互斥或電路42執行讀取自記憶體之讀取資料暫存器41 之資料與資料反轉暫存器48之資料(其為其中「1」只在欲 反轉的位元設定之位元串)間之互斥或運算’及藉此輸出其 14 201218206 中項取自3己憶體之貧料位元經反轉之資料作為 PDATA-Out 〇 第3及4圖說明如何將錯誤資訊寫至快取記憶體。 第3圖例示說明4-通道(WAY)集合聯合組態之實例。首 先,說明從CPU正常讀取資訊(快取命中)。作為快取組態之 實例,假設容量為32K位元組,一行有32位元組,CPU位址 為〇至31,上位址(MADD13-31)係分別輸入比較器允一至 56-4侧邊。快取行選擇位址(MADD12至5)透過多工器MPX Π存取記憶體的標籤部及資料部,及標籤部之讀取資料係 輸入比較器56-1至56-4之其它側。當輸入資料匹配作為比較 結果時,處理作為快取命中,及命中通道的資料係傳輸給 藉通道選擇單元59而擇定的CPU。 其次’將解說依據本發明藉模擬錯誤引起單元12所執 行之反轉快取記憶體資料之運算。在模擬錯誤引起單元12 簽發將錯H料寫至快取記㈣14_求。換言之當啟 動觸發㈣時’證實CPU並非存取記憶體(〔抓心測為 低)’及旦告對記憶體的存取請求信號PEW。 杈擬錯誤引起單元丨2之位址信號(PADD)(下方8-位元) I nMPX 17傳輸至快取記憶體14的個別通道且 被靖取。同日夺也讀取標籤部。padd之較高位元(本實例為 2)係用於模擬錯誤通道選擇單元55之選擇㈣,用以從讀 取自個別通道的資料選擇-個通道之資料,使得所選資料 係傳輪至触錯誤;丨起單Μ:。觀錯刻起單元η反轉 該資料之-你-1 —位7L中之一者,及該資料係回寫至相同位址及 15 201218206 相同通道。 也於第3圖,標籤部的資訊係連同資料部資訊一起讀 取,所選通道之資訊係透過模擬錯誤通道選擇單元Μ而傳 輸至模擬錯誤引起單元12。通常,標籤部及資料部係依據 相同技術’使用g己憶體胞元組配,因而可能同時從其中讀 取資讯。藉由允許同時讀取,電路變得更簡單,可縮短用 於測試之時間週期。 當藉該CPU讀取的位址資料為只用於同位檢查的記憔 體位址時,表示將出現同位錯誤、ECC可校正錯誤(單位元 錯誤)或無法权正錯誤(雙位元錯誤)。已經針對單或雙位 兀錯誤做解說。但當然該方法可擴大成覆寫「η+ι」位元來 回應於針對多(η)位元錯誤的錯誤校正功能。 第4圖為解說依據本實施例之操作之信號圖。 首先,於時間Α簽發一觸發信號給亂數產生器。於等候 時間B之後開始操作,此時結束藉cpu存取快取記憶體。^ 起模擬錯誤的位址值係在時間D輸出。但因c p U係存取快取 記憶體,故該值之輸出係等候直到時間B,此時結束存取。 當於時間B結束藉CPU存取快取記憶體時,遏止cpu存取快 取記憶體之PEW信號係在時間c簽發。恰在此時間c之後, 模擬錯誤產生單元於時間E存取快取記憶體,及信號pCMs 設定為LOW。首先,模擬錯誤產生單元從快取記憶體讀取 資料,如此,信號PR/W係在READ態。在此瞬間,已經藉 模擬錯誤引起單元讀取的資料PDATA_In輸入,及位元經反 轉使得乜號PDATA-Out輸出。隨後,因模擬錯誤引起單元 16 201218206 開始將貢訊寫至快取記憶體的寫入操作,在時間1?,信號 PR/W β周整為WRITE態’使得信號pDATA_〇ut係寫至快取記 憶體。 第5圖例不說明第2圖所示底數n計數器35之組態。 计數益60為二進制計數器,藉由接收時鐘信號的輸入 而伙「0」循序遞增。當欲組配底數η計數器日寺,針對計數 裔60準備一個位疋數]^可被計數成大於η之值(須滿足 2 k>n」)。於暫存器61設定「η]」。至於此值,設定第 2圖所示控制暫存器3G之錯誤引起區間單元珊。更明確言 之’該值為用以將反轉資料寫至期望的記憶體之時間區間 除以時鐘週_得值。比較諸峨叫數脚遞增之值 與暫存器61之值,而當比較值匹配時,清除信號輸入計數 器60。 第6A及6B圖例示說明第2圖所示亂數產生器37之具最 小值及最大值之他單元39及位元轉單元Μ的組態。 第2圖例示說明之亂數產生器37之位址單元%及位元 選擇單元40分㈣藉亂數產生電路而組配。位址單元與 機載明欲引起賴錯誤的位址,而位元選擇單元顿機載 明欲反轉的位元之位元位置。位址之最小值及最大值及欲 引起錯誤之位元位置係藉目標記憶體的容量、位元寬度等 載明。一個實例容後詳述。 第6_示說數產生電路65之實例。此—組態產 自!至削㈣的任意亂數。第6B圖例示說㈣以設定 最大值及最小㈣為域數產生電路65所產生的亂數之組 17 201218206 態。於最小值暫存器(MIN) 66中,設定亂數的最小值。於 最大值暫存器(MAX)67中,設定亂數的最大值。當藉亂數 產生電路65產生一亂數時,比較器68比較最小值暫存器 (MIN) 66中的最小值與該亂數。當該亂數為較小時,最小 值暫存盗(MIN) 66輸出「1」。比較器69最大值暫存器(max) 67中的最大值與該亂數。當該亂數為較大時,最大值暫存 器(MAX) 67輸出「1」。或〇R電路70執行來自比較器沾與的 之輸出間的或OR運算。當或OR電路70之輸出為「丨」時, 再試請求簽發給亂數產生電路65來使得亂數產生電路65產 生新亂數。換言之,當所產生的亂數係小於最小值或係大 於最大值時’再度產生一亂數。當欲產生—亂數時,以隨 機順序而產生一隨機值’如此’即便當一個乱數係起出最 大值與最小值間之範圍,下一個產生的亂數可能在兮^圍 以内。此一處理程序一再重複嘗試直到產生—個落在最大 值與最小值間之範圍的亂數為止。此外,於本银 屯吟貫例中, 無法產生「0000000000000000」。但若加上增加Γ 」的電 路,則變成可產生「0000000000000000」。 第7圖例示說明多位元錯誤引起比控制單元38之、 節。計數器80使用觸發信號作為時鐘、暫存器81、 ' 及比較 器82組成底數η計數器。η值載明單位元資料反轉出現A數 與雙位元資料反轉出現次數間之比。當來自比齡哭 千乂盗之輪出 為「1」及控制暫存器30之多位元錯誤控制單元33之值為 「01」時,多位元錯誤引起比控制單元38輪屮「, ' 」’因而 在記憶體的相同位址,寫入資料其中在η次中二位元〇、皮 201218206 轉一次。當多位元錯誤控制單元33輪出「〇〇」時,多位元 錯誤引起比控制單元雜常性輸出「Q」,及二位元反轉資 料不被寫入。當多位元錯誤控制單元33輪出「1〇」時多 位元錯誤引起比控制單元38經常性輪出Γι」,及其中二位 元已經被反轉的資料被寫入。 第8圖例示說明引起參位元錯誤作為模擬多位元錯誤 之一種模擬錯誤引起單元之組態。 第8圖中,與第2圖相同的組成元件係標示之相同的元 件符號’而刪除其說明。 於第8圖中,位元選擇單元40a產生三個位元選擇位 置,及新加入解碼器45a及及AND電路46a。於控制暫存器 30的多位το錯誤控制單元33中,下列設定值係屬可能例如: (1) 只發生單位元錯誤,而未發生多位元錯誤。 (2) 發生單位元錯誤,及以規定比發生雙位元錯誤。 (3) 單位元錯誤及參位元錯誤係以規定比發生,而未發 生雙位元錯誤。 (4) 單位元錯誤及雙_或參_位元錯誤分別係以規定比發 生。此等「規定比」係由多位元錯誤引起比控制單元38決 定。藉參考第9圖而予說明。於本實例中,底數n計數器係 藉由使用計數器80Α及比較器82Α設定暫存器81Α之值為 「η-1」而組配。又,底數m計數器係藉由使用計數器8〇β 及比較器82Β設定暫存器81Β之值為「m-1」而組配;但計 數器80B之時鐘係藉來自比較器82a的輸出支援,及據此, ^個3十數器作為底數「n+m」計數器。當控制暫存器的 201218206 多位元錯誤控制單元33之二位元為「00」時,來自二計數 器之輸出係封閉在及AND電路,而只發生單位元資料反 轉,但未發生雙或參位元資料反轉。當多位元錯誤控制單 元33之位元為「01」時,雙位元反轉資料相對於n次係寫入 一次,η為設定在暫存器81 a之值,未發生參位元資料反轉, 相對η次,單位元反轉發生「化丨」次。當多位元錯誤控制 單元33之位元為「1〇」時,相對於「nxm」次,參位元反轉 資料寫入一次;相對於「nxm」次,單位元反轉資料寫入 「nxm-1」次。當多位元錯誤控制單元μ之位元為「u」時, 相對於「nxm」次,參位元反轉資料寫入一次,雙位元反轉 資料係每「nxm」次寫入「mj」次,及單位元反轉資料係 母「η」次寫入「n-1」次。藉此,單位元反轉資料、雙位 疋反轉資料、及參位元反轉資料係適當寫入,故以特定比 產生錯誤。
第ίο圖例示說明應用本實施例的具有多個CPU之多核 心資訊處理裝置之第一實例之組態。 X 各個cpu核心係設有快取記憶體。又,各自包括 核心的節點76-1至76-n係藉交互連結網路75彼此連結來存 取外U卩主3己憶體11。依據本實施例之模擬錯誤引起單元係 提供^各㈣點76]至1。各健擬錯則起衫不僅在 各個節點76-1至76·_快取記憶體引起模擬錯誤,同時也在 主記憶體11引起模擬錯誤。 夕第11圖例示說明應用本實施例之具有多個cpu之一種 X寅Λ處理裝置之第二實例之組態。各個CPU核心係 20 201218206 被提供以快取記憶體。CPU核心91-1及91-2至91-n係藉一通 用連結網路92連結。依據本發明之模擬錯誤引起單元们也 連結至通用連結網路92。於本發明之此一實例中,模擬錯 誤引起單元93本身可在個別CPu分開地存取快取記憶體元 件。藉由參考第12圖將做特定解說。第12圖係以放大方式 例示說明第2圖之-部分,第〖2圖未例示說明之構件被視為 與第2圖之構件相同。於本實例中,第2圖所示位址單元外 擴充,及部分位址單元39係輸入解碼器49,輸入資料係如 第12圖之表格例示說明般解碼,使得該資料可作為各個快 取的選擇信號。各個快取記憶體選擇信號pCMs〇至 PCMSn-Ι係作為選擇各個CPU核心的快取記憶體之一信 號。其它信號PR/W及PEW係一起輸入全部快取記憶體元 件,及信號PMMS係作為主記憶體的選擇信號。藉此可能 隨機地反轉各個CPU核心的快取記憶體之資料。 此外 刖迷本實施例可藉軟體具體實現。舉例言之可 以中斷信號形式具體實現計數^情錢週期性地簽發來 決定在哪些位址/位元位置欲引起記憶體元件模擬錯誤。 又,軟體錯誤比偶爾可能有極大改變,取決於記憶體 元件係在正常讀/寫的動作模式,或在只保有已經寫入=資 料之Dret模式。於本實施财,也可能針對模擬錯誤弓^ 單元準備錄難錯誤引起區間暫存器,來減知操作模 式的差異所造成的軟體錯誤比之變異度,使得可回應於操 作模式而調整模擬錯誤引起區間。 μ 於前述實施例之解説巾,-個實例為其中控制暫存器 21 201218206 目己it體選擇單元係設定為快取記憶體或主記憶體, 因而當有主記憶體及快取記憶體二者時分開地執行測試。 但於實際環境中’錯誤係在兩型記憶贿機發生。如此, 也可,準敎據本實施狀彡倾擬錯則起單元,設定 個單元用於主5己憶體及另—個單元用於快取記憶體,來 執打測試使得可在接近實際環境的環境T執行測試。 後文將針對如何在實際環境預測錯誤發生比做說明。 通韦係使用動態隨機存取記憶體(DRAM)作為主記憶 體,而此圮憶體係置於加速度環境下,亦即DRAM元件本 身被強制照射α射線或中子射線。可假設A/B表示在實際環 士兄下的錯误發生比,此處Α表示照射時的錯誤發生比(單位 時間出現的錯誤數目)’及8表示加速度因數(正常環境下α 射線/中子射線與加速度環境下射線量間之比)。但裝置的實 際操作狀況並未考慮此值的計算,原因在於錯誤發生比A 係使用測試程式測量,而此測試程式將「丨」寫入記憶體的 全部位址,及在規定時間週期後從全部位址讀出Γι」,及 隨後將「0」寫入全部位址’及在規定時間週期後從全部位 址讀出「〇」,及重複此種處理程序。相反地,罕見有效地 使用全部位址,寫入資料經常未能讀取。據此,不適合將 Α/Β視為預測錯誤比。 至於快取記憶體,藉由使用與用於快取記憶體的製造 的相同方法所製造的記憶體晶片通常係用來預測在前述主 記憶體的方法之相同方法中的錯誤比。但藉此方法所得值 並不適合用作為在實際裝置環境下之值。舉例言之,資料 22 201218206 快取記憶體之操作有重大差異,取決於操作模式為回寫模 式或寫入模式。原因在於於回寫操作中,針對由cpu所寫 入的資料在快取發生未命中,結果導致在未規定的時間週 期後,資料回寫至主記憶體之操作,當進行此項操作時, 資訊係讀取自快取記憶體,及若寫在該位址的部分資訊已 經反轉則發生錯誤。但於寫入模式中,該資料係同時寫至 快取記憶體及主記憶體,及如此未進行回應於快取記,皆體 的未命中而從快取記憶體讀取資訊。如此,即便當快取^己 憶體的位址資訊已經反轉也不會發生錯誤。換言之,寫人 模式的錯誤比為較低。 將前述多個因素列入考慮,單獨記憶體的錯誤比(A/B) 係定義為記憶體資訊已經反轉之機率,藉將D(1〇〇〇至 100,000)乘以A/B所得值,亦即(DxA/B),係設定為控制暫 存器的錯誤發生時間區間。至於控制暫存器的錯誤發生時 間區間,粗略設定為i分鐘至時的時間週期。由此設定 及A/B值。’可粗略決定D值。隨後,依據本實施例之模擬錯 誤引起單元_來觀察在使得實際裝Ϊ環境、處理器操作 狀況、及程式等於實際操作情況後錯誤的發生,因而評估 處理常式針對錯誤的發生是否適當操作。X,藉將錯誤比 除以D值而去除此_錯誤比,可預測實際裝置的錯誤比 ⑹。當此值(E)係等於或小於裝置的期望錯誤比時不成問 題;但^值⑻係等於或大於期望錯誤比時需要對治措施。 於前述實施例中,被提供以錯誤檢查及校正(ECC)電路 的主記憶體已經用作為對治措施之實例。但也有—種方法 23 201218206 其中ECC係加至未被提供以Ecc之主記憶體。 又,作為將資訊寫至快取記紐之方法,有兩個方法: 回寫法及寫入法。雖然回寫法具較佳效能,但寫入法較不 易發生軟體錯誤。於回寫法中,寫人的資訊常在經歷長時 間後回寫至主記憶體’於該回寫期間發生資訊的反轉,結 果導致在回寫處理程序中之軟體錯誤發生;但於寫入法 中,寫入的資訊係即刻回寫至主記憶體,減少在長時間間 隔後的讀取資訊操作。如此使得寫人法的軟體錯誤比較 低。據此,可有效採用寫入法作為快取法,因而以略為犧 牲快取效能可提高可靠度。 於前述實施例中,藉由產生等於由α射線或宇宙射線 (中子斯線)所引起錯誤之縣,因㈣加速度態造成 軟體錯誤現象’可證實處理軟體錯誤之常式是否適當操作 為裝置X因可預測裝置的錯誤發生比,故事證實是 否需要對治措施。 【圖式^簡單_ ^^明】 第1圖顯不依據本實施例一種使用模擬錯誤引起裝置 之系統組態; 第2圖顯示模擬錯誤引起單元之組態,· 第3圖說明如何將錯誤資訊寫至快取記憶體(第一部 分); 第4圖說明如何將錯誤資訊寫至快取記憶體(第二部 分); 第5圖顯示第2圖所示底數〇計數器之組態; 24 201218206 第6A圖顯示第2圖所示具有最大值及最小值之亂數產 生器之組態; 第6B圖也係顯示第2圖所示具有最大值及最小值之亂 數產生器之組態; 第7圖顯示第2圖所示多位元錯誤產生比控制單元之組 態細節; 第8圖顯示模擬錯誤引起單元引起三位元錯誤作為模 擬多位元錯誤之組態; 第9圖顯示第8圖所示多位元錯誤產生比控制單元之組 態細節; 第10圖顯示施加本實施例之多核心資訊處理裝置之一 第一實例之組態; 第11圖顯示施加本實施例之多核心資訊處理裝置之一 第二實例之組態;及 第12圖顯示第11圖所示模擬錯誤引起單元93之組態細節。 【主要元件符號說明】 10.. .半導體晶片 11.. .主記憶體 12、93…模擬錯誤引起單元 13···中央處理單元(CPU) 14.. .快取記憶體 15.. .錯誤檢查及校正(ECC)產 生電路 16.. .同位產生電路 17、20、21".多工器(MPX) 18.. .ECC檢查單元 19.. .同位(P-)檢查單元 22.. .三態緩衝器 23.. .錯誤信號線路 30.··控制暫存器 31.. .記憶體選擇單元 32…錯誤引起區間單元 25 201218206 33…多位元錯誤控制單元 34.·.儲存單元選擇讀/寫(R/W) 控制單元 35.. .底數η計數器 36.. .時鐘 37.. .亂數產生器 38.. .多位元錯誤引起收空制單元 39···位址單元 39-0、39-1...位址產生單元 40、40a...位元選擇單元、解碼器 41.. .讀取資料暫存器 42.. .互斥或電路 43.. .位址產生單元 44、45、45a、49...解碼器
46、 46a...及AND序列、及AND 電路 47、 57、70··.或OR電路 48.. .資料反轉暫存器 55.. .模擬錯誤通道選擇單元 56-1〜56-4…比較器 59.. .通道選擇單元 60、 80、80A-B...計數器 61、 81、81A-B...暫存器 62、 68、69、82、82A-B...比較器 65.. .亂數產生電路 66.. .最小值暫存器(MIN) 67.. .最大值暫存器(MAX) 75.. .交互連結網路 76-1〜η...節點 91-1 〜n."CPU核心 92.. .通用連結網路 94.. .記憶體控制器 95.. .外部記憶體 26