亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

半導(dǎo)體裝置和存儲器訪問控制方法與流程

文檔序號:11235379閱讀:539來源:國知局
半導(dǎo)體裝置和存儲器訪問控制方法與流程

相關(guān)申請的交叉引用

包括說明書、附圖和摘要的于2016年3月2日提交的日本專利申請no.2016-039566所公開的內(nèi)容以引用的方式全部并入本文。



背景技術(shù):

例如,本發(fā)明涉及一種半導(dǎo)體裝置和存儲器訪問控制方法,并且涉及將數(shù)據(jù)和由該數(shù)據(jù)生成的錯誤檢測代碼存儲在存儲器中的技術(shù)。

專利文獻(xiàn)1在過去公開了一種存儲器控制電路作為示例,如專利文獻(xiàn)1的圖4所示的。該存儲器控制電路包括地址/控制線控制電路和ecc電路。當(dāng)將地址和數(shù)據(jù)從cpu發(fā)送至存儲器控制電路時,ecc電路從數(shù)據(jù)生成ecc數(shù)據(jù)并且將其寫入存儲器的指定地址。當(dāng)讀取數(shù)據(jù)時,ecc電路通過從存儲器讀取的數(shù)據(jù)創(chuàng)建新ecc數(shù)據(jù),并且將從存儲器讀取到的ecc數(shù)據(jù)與新創(chuàng)建的ecc數(shù)據(jù)進(jìn)行比較,并且進(jìn)行錯誤檢測和數(shù)據(jù)的校正。

然而,在該存儲器控制電路中,存在一個問題,在地址/控制線控制電路用來將地址指定至存儲器的地址信號線中的任何一條線中,在值固定故障發(fā)生時,難以檢測地址錯誤。這是因為要將數(shù)據(jù)和由數(shù)據(jù)創(chuàng)建的ecc數(shù)據(jù)寫入指定至存儲器的地址;因此,即使從不符合預(yù)期的地址讀取數(shù)據(jù)和ecc數(shù)據(jù),在將讀取到的ecc數(shù)據(jù)與新創(chuàng)建的ecc數(shù)據(jù)進(jìn)行比較時,也不會檢測到分歧。

此處,為了解決這個問題,專利文獻(xiàn)1所公開的計算機(jī)系統(tǒng)分別指定寫入數(shù)據(jù)的地址和寫入ecc數(shù)據(jù)的地址。然而,在解決上述問題時,該技術(shù)與本說明書所公開的技術(shù)完全不同。

(專利文獻(xiàn)1)日本專利申請公開no.hei5(1993)-88992。



技術(shù)實現(xiàn)要素:

如上所述,專利文獻(xiàn)1所公開的技術(shù)具有一個問題,難以檢測地址信號系統(tǒng)在存儲器訪問中的故障。

通過本說明書的說明和附圖,本發(fā)明的其它問題和新特征將變得清晰。

根據(jù)一個實施例,半導(dǎo)體裝置通過修改用于存儲數(shù)據(jù)的第一地址的至少一個位的值,以使錯誤檢測代碼的存儲位置偏移到數(shù)據(jù)的存儲位置,并且通過使其它位當(dāng)中的規(guī)定的數(shù)量的位的值反轉(zhuǎn)或者使規(guī)定的數(shù)量的位的順序,來生成地址作為用于存儲錯誤檢測代碼的第二地址。

根據(jù)一個實施例,可以檢測地址信號系統(tǒng)在存儲器訪問中的故障。

附圖說明

圖1是示出了根據(jù)實施例1的cpu系統(tǒng)的配置的框圖;

圖2是示出了根據(jù)實施例1的i/f轉(zhuǎn)換電路的配置的框圖;

圖3是示出了根據(jù)實施例1的adr反轉(zhuǎn)電路的配置的框圖;

圖4是根據(jù)實施例1的內(nèi)部存儲器的存儲器映射的概念圖;

圖5是示出了根據(jù)實施例1的i/f轉(zhuǎn)換電路的操作的概念圖;

圖6是示出了在未執(zhí)行adr反轉(zhuǎn)時的操作的概念圖;

圖7是示出了根據(jù)實施例1的地址信號在固定型故障發(fā)生時的值改變的附圖;

圖8是示出了在未執(zhí)行adr反轉(zhuǎn)時地址信號在固定型(stuck-at)故障發(fā)生時的值改變的附圖;

圖9是示出了根據(jù)實施例2的i/f轉(zhuǎn)換電路的配置的框圖;

圖10是示出了根據(jù)實施例2的adr旋轉(zhuǎn)電路的配置的框圖;

圖11是根據(jù)實施例2的內(nèi)部存儲器的存儲器映射的概念圖;

圖12是示出了根據(jù)實施例2的i/f轉(zhuǎn)換電路的操作的概念圖(第一示例);

圖13是示出了根據(jù)實施例2的地址信號在固定型故障發(fā)生時的值改變的附圖(第一示例);

圖14是示出了根據(jù)實施例2的i/f轉(zhuǎn)換電路的操作的概念圖(第二示例);

圖15是示出了在執(zhí)行adr反轉(zhuǎn)時的操作的概念圖(第二示例);

圖16是示出了根據(jù)實施例2的地址信號在固定型故障發(fā)生時的值改變的附圖(第二示例);

圖17是示出了在執(zhí)行adr反轉(zhuǎn)時地址信號在固定型故障發(fā)生時的值改變的附圖(第二示例);

圖18是示出了根據(jù)實施例3的adr旋轉(zhuǎn)電路的配置的框圖;

圖19是根據(jù)實施例3的內(nèi)部存儲器的存儲器映射的概念圖;

圖20是示出了根據(jù)實施例3的地址信號在固定型故障發(fā)生時的值改變的附圖;

圖21是示出了根據(jù)實施例3的地址信號在另一固定型故障發(fā)生時的值改變的附圖;

圖22是示出了根據(jù)實施例4的i/f轉(zhuǎn)換電路的配置的框圖;

圖23是示出了根據(jù)實施例4的adr位順序反轉(zhuǎn)電路的配置的框圖;

圖24是示出了根據(jù)實施例4的另一adr位順序反轉(zhuǎn)電路的配置的框圖;

圖25是示出了2位地址的地址位更改形式的附圖;

圖26是示出了3位地址的地址位更改形式的附圖;

圖27是示出了4位地址的地址位更改形式的附圖;

圖28是示出了計算地址位更改形式的數(shù)量的公式的附圖;

圖29是示出了根據(jù)實施例5的adr旋轉(zhuǎn)電路的配置的框圖;

圖30是示出了根據(jù)實施例5的另一adr旋轉(zhuǎn)電路的配置的框圖;

圖31是根據(jù)實施例5的內(nèi)部存儲器的存儲器映射的概念圖;

圖32是示出了根據(jù)實施例6的i/f轉(zhuǎn)換電路的配置的框圖;

圖33是示出了根據(jù)實施例6的adr移位&偏移設(shè)置電路的配置的框圖;

圖34是示出了當(dāng)n=4個位時的adr移位&偏移設(shè)置電路的配置的框圖;

圖35是根據(jù)實施例6的內(nèi)部存儲器的存儲器映射的概念圖;

圖36是示出了根據(jù)實施例6的地址信號在固定型故障發(fā)生時的值改變的附圖;

圖37是示出了根據(jù)實施例7的在i/f轉(zhuǎn)換電路中的adr轉(zhuǎn)換電路的配置的框圖;

圖38是示出了根據(jù)實施例7的adr移位&偏移設(shè)置電路的配置的框圖;

圖39是根據(jù)實施例7的內(nèi)部存儲器的存儲器映射的概念圖;

圖40是示出了根據(jù)實施例8的adr移位&偏移設(shè)置電路的配置的框圖;

圖41是示出了根據(jù)實施例9的i/f轉(zhuǎn)換電路的配置的框圖;

圖42是示出了根據(jù)實施例9的adr反轉(zhuǎn)移位&偏移設(shè)置電路的配置的框圖;

圖43是示出了根據(jù)實施例10的adr移位&偏移設(shè)置電路的配置的框圖;

圖44是示出了根據(jù)實施例10的adr選擇電路的配置的框圖;

圖45是示出了根據(jù)實施例11的cpu系統(tǒng)的配置的框圖;

圖46是示出了根據(jù)實施例11的轉(zhuǎn)換電路的配置的框圖;

圖47是用于闡釋實施例11的效果的附圖;

圖48是示出了根據(jù)實施例12的i/f轉(zhuǎn)換電路的配置的框圖;

圖49是根據(jù)實施例12的內(nèi)部存儲器的存儲器映射的概念圖;

圖50是示出了根據(jù)實施例12的通過地址轉(zhuǎn)換對地址進(jìn)行的改變的附圖;以及

圖51是用作實施例1至12的概述配置的半導(dǎo)體裝置的附圖。

具體實施方式

在下文中,參照附圖闡釋優(yōu)選實施例。在以下實施例中示出的具體數(shù)值僅僅是利于理解實施例的示例,而不是對值的限制,除非另有明確規(guī)定。在以下描述和附圖中,為了澄清闡釋,對本領(lǐng)域的技術(shù)人員顯而易見的內(nèi)容適當(dāng)?shù)剡M(jìn)行縮寫和簡寫。

<實施例1>

首先,參照附圖闡釋實施例1的配置和操作。參照圖1,闡釋根據(jù)實施例1的cpu(中央處理單元)系統(tǒng)的配置。如圖1所示,cpu系統(tǒng)1包括cpu10、控制輸入i/f11、命令輸出i/f12、i/f轉(zhuǎn)換電路13、內(nèi)部存儲器14、dmac(直接存儲器存取控制器)15、其它各種外圍電路16、和其它各種i/f17。

cpu10、控制輸入i/f11、命令輸出i/f12、i/f轉(zhuǎn)換電路13、dmac15、其它各種外圍電路16、和其它各種i/f17經(jīng)由系統(tǒng)總線相互耦合。該內(nèi)部存儲器14經(jīng)由i/f轉(zhuǎn)換電路13與系統(tǒng)總線耦合。

實施例1闡釋了采用cpu系統(tǒng)1作為安裝在車輛中的車載控制系統(tǒng)的示例。然而,示例并不限于此。cpu系統(tǒng)1可以安裝在任何設(shè)備中,該任何設(shè)備包括:輸入單元,該輸入單元用于將數(shù)據(jù)輸入至cpu系統(tǒng)1;以及控制單元,cpu系統(tǒng)1基于從輸入單元輸入的數(shù)據(jù)來對該控制單元進(jìn)行控制(設(shè)備包括:例如,傳輸機(jī)械(諸如車輛或者摩托車)、施工機(jī)械(諸如重型工業(yè)機(jī)器)、或者工業(yè)機(jī)械(諸如制造機(jī)器人))。只要設(shè)備包括存儲器和對存儲器可訪問的裝置(例如,cpu),cpu系統(tǒng)1就可以是安裝在任何設(shè)備中的信息處理系統(tǒng)(例如,信息設(shè)備,諸如個人計算機(jī)或者智能電話)。

例如,cpu系統(tǒng)1建立在微控制器(半導(dǎo)體裝置)中。然后,該cpu系統(tǒng)1可以控制車輛,與其它微控制器(圖1中的“子微型計算機(jī)”)協(xié)作。

輸入單元是安裝在車輛中的裝置。輸入單元接收來自用戶的指令控制單元的控制的輸入。例如,輸入單元是鍵單元或者開關(guān)(圖1中的“sw”)。響應(yīng)于來自用戶的輸入,輸入單元將指示輸入內(nèi)容的輸入數(shù)據(jù)傳輸至cpu系統(tǒng)1。

控制單元是安裝在車輛中的裝置??刂茊卧蒫pu系統(tǒng)1控制。例如,控制單元是門或者鏡。cpu系統(tǒng)1基于由從輸入單元接收到的輸入數(shù)據(jù)指示的輸入內(nèi)容,來生成用作指示控制單元的控制內(nèi)容的控制數(shù)據(jù)的命令,并且將生成的命令傳輸至控制單元。響應(yīng)于來自cpu系統(tǒng)1的命令,控制單元根據(jù)由命令指示的控制內(nèi)容操作。

cpu10基于來自輸入單元的輸入數(shù)據(jù)來生成控制數(shù)據(jù)。例如,當(dāng)控制數(shù)據(jù)針對門時,cpu10生成指示門打開和關(guān)閉的控制數(shù)據(jù)作為控制內(nèi)容。例如,當(dāng)控制數(shù)據(jù)針對鏡時,cpu10生成指令調(diào)節(jié)鏡的位置的控制數(shù)據(jù)作為控制內(nèi)容。

控制輸入i/f11是將輸入單元耦合至系統(tǒng)總線的接口電路。即,將對控制單元進(jìn)行控制的輸入數(shù)據(jù)從輸入單元輸入至控制輸入i/f11。命令輸出i/f12是將控制單元與系統(tǒng)總線耦合的接口電路。即,命令輸出i/f12將用于對控制單元進(jìn)行控制的命令輸出至控制單元。

i/f轉(zhuǎn)換電路13是將內(nèi)部存儲器14與系統(tǒng)總線耦合的接口電路。響應(yīng)于將來自cpu10和dmac15中的每一個的數(shù)據(jù)寫入的請求,i/f轉(zhuǎn)換電路13將數(shù)據(jù)寫入到內(nèi)部存儲器14中。響應(yīng)于從cpu10和dmac15中的每一個讀取數(shù)據(jù)的請求,i/f轉(zhuǎn)換電路13從內(nèi)部存儲器14讀取數(shù)據(jù)。當(dāng)響應(yīng)于來自cpu10和dmac15中的每一個的請求來訪問內(nèi)部存儲器14(將數(shù)據(jù)寫入內(nèi)部存儲器14或者從內(nèi)部存儲器14讀取數(shù)據(jù))時,i/f轉(zhuǎn)換電路13執(zhí)行用于檢測在數(shù)據(jù)信號系統(tǒng)和地址信號系統(tǒng)中的故障的處理。

更具體地,當(dāng)i/f轉(zhuǎn)換電路13將數(shù)據(jù)寫入到內(nèi)部存儲器14中時,i/f轉(zhuǎn)換電路13還將由數(shù)據(jù)生成的ecc(錯誤校準(zhǔn)代碼)寫入到內(nèi)部存儲器14中。當(dāng)i/f轉(zhuǎn)換電路13從內(nèi)部存儲器14讀取數(shù)據(jù)時,i/f轉(zhuǎn)換電路13從讀取數(shù)據(jù)生成ecc,并且通過將生成的ecc與已經(jīng)寫入在具有數(shù)據(jù)的內(nèi)部存儲器14中的ecc進(jìn)行比較來檢測故障。在實施例1中,如稍后將描述的,通過從存儲數(shù)據(jù)的地址生成存儲ecc的地址,不僅可以檢測在數(shù)據(jù)信號系統(tǒng)中的故障,還可以檢測在地址信號系統(tǒng)中的故障。

內(nèi)部存儲器14是存儲有各種類型的數(shù)據(jù)的存儲電路。即,例如,上述輸入數(shù)據(jù)、控制數(shù)據(jù)(命令)、ecc等存儲在內(nèi)部存儲器14中。

dmac15實現(xiàn)在耦合至系統(tǒng)總線的電路10至13、16和17之中的數(shù)據(jù)傳遞。例如,dmac15將從輸入單元輸入至控制輸入i/f11的輸入數(shù)據(jù)傳遞至i/f轉(zhuǎn)換電路13,并且請求i/f轉(zhuǎn)換電路13將傳遞的輸入數(shù)據(jù)寫入到內(nèi)部存儲器14中。例如,dmac15請求i/f轉(zhuǎn)換電路13從內(nèi)部存儲器14讀取命令,并且將從i/f轉(zhuǎn)換電路13讀取到的命令傳遞至命令輸出i/f12。因此,將命令輸出至控制單元。

此處,cpu10請求i/f轉(zhuǎn)換電路13讀取由dmac15存儲在內(nèi)部存儲器14中的輸入數(shù)據(jù),并且獲取由i/f轉(zhuǎn)換電路13讀取的輸入數(shù)據(jù)。cpu10基于獲取到的輸入數(shù)據(jù)來生成命令,并且請求i/f轉(zhuǎn)換電路13將生成的命令寫入到內(nèi)部存儲器14中。因此,存儲在內(nèi)部存儲器14中的命令由dmac15傳遞,如上所述。

cpu系統(tǒng)1可以包括任意電路作為其它各種外圍電路16。其它各種i/f17是將設(shè)置在車載控制系統(tǒng)中的其它單元(諸如子微型計算機(jī))耦合至系統(tǒng)總線的接口電路。

如上所述,cpu10和dmac15作為總線主控器操作。其它電路11至13、16和17作為總線受控器操作。

接下來,參照圖2,闡釋根據(jù)實施例1的i/f轉(zhuǎn)換電路13的配置。如圖2所示,i/f轉(zhuǎn)換電路13包括i/f控制電路110、adr轉(zhuǎn)換電路120、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140。此處,“adr”、“wdt”、和“rdt”是分別指示地址、寫入數(shù)據(jù)、和讀取數(shù)據(jù)的縮寫名稱。

總線主控器經(jīng)由系統(tǒng)總線將啟用(選擇)信號、寫入/讀取信號、地址信號、和寫入數(shù)據(jù)輸出至i/f轉(zhuǎn)換電路13。i/f轉(zhuǎn)換電路13經(jīng)由系統(tǒng)總線將等待#信號、讀取數(shù)據(jù)、和錯誤通知信號輸出至總線主控器。i/f轉(zhuǎn)換電路13和內(nèi)部存儲器14與從時鐘生成電路(未示出)輸入的時鐘信號同步操作。等待#信號的“#”是指示等待#信號是低有效信號的符號。

此處,基于以下假設(shè)來闡釋示例:啟用信號是1個位;寫入/讀取信號是1個位;地址信號是n個位(n是規(guī)定正整數(shù));寫入數(shù)據(jù)是8個位;等待#信號是1個位;讀取數(shù)據(jù)是8個位;和錯誤通知信號是1個位。

當(dāng)將數(shù)據(jù)寫入到內(nèi)部存儲器14中時,總線主控器將請求寫入數(shù)據(jù)的信號、斷言的啟用信號(例如,值為“1”)、指定數(shù)據(jù)寫入的寫入/讀取信號(例如,值為“0”)、指示寫入數(shù)據(jù)的地址的地址信號、和用作待寫入數(shù)據(jù)的寫入數(shù)據(jù)輸出至i/f轉(zhuǎn)換電路13。響應(yīng)于此,i/f轉(zhuǎn)換電路13將寫入數(shù)據(jù)寫入由在內(nèi)部存儲器14中的地址信號指示的地址。在這種情況下,i/f轉(zhuǎn)換電路13還將從寫入數(shù)據(jù)生成的ecc寫入到內(nèi)部存儲器14中。

當(dāng)從內(nèi)部存儲器14讀取數(shù)據(jù)時,總線主控器將斷言的啟用信號(值為“1”)、指定數(shù)據(jù)讀取的寫入/讀取信號(值為“1”)、和指示讀取數(shù)據(jù)的地址的地址信號輸出至i/f轉(zhuǎn)換電路13。響應(yīng)于此,i/f轉(zhuǎn)換電路13讀取存儲在由在內(nèi)部存儲器14中的地址信號指示的地址處的數(shù)據(jù),并且將讀取到的數(shù)據(jù)輸出至總線主控器,作為讀取數(shù)據(jù)。在這種情況下,i/f轉(zhuǎn)換電路13讀取與來自內(nèi)部存儲器14的數(shù)據(jù)對應(yīng)的ecc,并且基于讀取的ecc和數(shù)據(jù)來確定數(shù)據(jù)中是否發(fā)生錯誤。當(dāng)通過該確定檢測到數(shù)據(jù)的錯誤時,i/f轉(zhuǎn)換電路13輸出錯誤通知信號以向總線主控器通知錯誤。然而,在一位錯誤的情況下,對待輸出至總線主控器的讀取數(shù)據(jù)進(jìn)行校正。

當(dāng)總線主控器訪問內(nèi)部存儲器14時,i/f控制電路110通過將等待一個時鐘周期應(yīng)用于總線主控器,來使訪問延長到兩個時鐘周期。然后,i/f控制電路110進(jìn)行控制以使adr轉(zhuǎn)換電路120、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140執(zhí)行關(guān)于在第一時鐘周期中的數(shù)據(jù)的操作和關(guān)于在第二時鐘周期中的ecc的操作。即,通過將由總線主控器輸出的信號的輸出延長到第二時鐘周期,i/f控制電路110可以基于在第二時鐘周期中的信號來執(zhí)行關(guān)于ecc的操作。

i/f控制電路110包括啟用信號保持電路111和等待信號生成電路112。

當(dāng)總線主控器訪問內(nèi)部存儲器14時,啟用信號保持電路111保持在第一時鐘周期中的斷言的啟用信號的值,并且與時鐘信號同步地,在第二時鐘周期中將作為保持的值的反轉(zhuǎn)輸出的信號輸出至等待信號生成電路112。即,從總線主控器輸出的啟用信號在經(jīng)由i/f轉(zhuǎn)換電路13時被輸入至內(nèi)部存儲器14,并且還被輸入至i/f控制電路110。例如,啟用信號保持電路111是ff(觸發(fā)器)電路。

即,在第一時鐘周期中,基于在一個先前時鐘周期中的去斷言的啟用信號(值為“0”),啟用信號保持電路111將作為反轉(zhuǎn)輸出的信號(值為“1”)輸出至等待信號生成電路112。接下來,在第二時鐘周期中,基于在一個先前時鐘周期(第一時鐘周期)中的斷言的啟用信號(值為“1”),啟用信號保持電路111將作為反轉(zhuǎn)輸出的信號(值為0)輸出至等待信號生成電路112。

此處,啟用信號指示是否啟用或者禁用數(shù)據(jù)的寫入和讀取。當(dāng)啟用數(shù)據(jù)的寫入和讀取時,斷言啟用信號。當(dāng)禁用數(shù)據(jù)的寫入和讀取時,去斷言啟用信號。

當(dāng)輸入斷言的啟用信號時,內(nèi)部存儲器14基于從i/f轉(zhuǎn)換電路13輸入的寫入/讀取信號(指定寫入)、地址信號、和寫入數(shù)據(jù)來將數(shù)據(jù)寫入到內(nèi)部存儲器14中,如稍后將描述的。另一方面,當(dāng)輸入去斷言的啟用信號時,內(nèi)部存儲器14不執(zhí)行將數(shù)據(jù)寫入到內(nèi)部存儲器14中,不管寫入/讀取信號、地址信號、和等待數(shù)據(jù)的輸入。

當(dāng)輸入斷言的啟用信號時,內(nèi)部存儲器14基于從i/f轉(zhuǎn)換電路13輸入的寫入/讀取信號(指定讀取)、和地址信號來從內(nèi)部存儲器14讀取數(shù)據(jù),如稍后將描述的。另一方面,當(dāng)輸入去斷言的啟用信號時,內(nèi)部存儲器14不執(zhí)行從內(nèi)部存儲器14讀取數(shù)據(jù),不管寫入/讀取信號和地址信號的輸入。

等待信號生成電路112將作為從總線主控器輸入的啟用信號和從啟用信號保持電路111輸入的信號的nand操作結(jié)果的信號輸出至總線主控器,作為等待#信號。例如,等待信號生成電路112是nand電路。

即,在第一時鐘周期中,等待信號生成電路112基于來自啟用信號保持電路111的斷言的啟用信號(例如,值為“1”)和信號(例如,值為“1”),來將斷言的等待#信號(例如,值為“0”)輸出至總線主控器。在輸入該斷言的等待#信號的同時,總線主控器停止操作。接下來,在第二時鐘周期中,等待信號生成電路112基于來自啟用信號保持電路111的保持?jǐn)嘌缘膯⒂眯盘?例如,值為“1”)和信號(例如,值為“0”),來將去斷言的等待#信號(例如,值為“1”)輸出至總線主控器。在輸入該去斷言的等待#信號的同時,總線主控器停止操作。

以這種方式,當(dāng)總線主控器訪問內(nèi)部存儲器14時,通過輸入斷言的等待#信號來將訪問周期延長一個時鐘周期。然后,總線主控器對內(nèi)部存儲器14的訪問通過兩個時鐘周期完成。因此,當(dāng)總線主控器訪問內(nèi)部存儲器14時,維持啟用信號、寫入/讀取信號、地址信號、和寫入數(shù)據(jù)的輸出兩個時鐘周期。

等待#信號還用作對adr轉(zhuǎn)換電路120、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140的操作進(jìn)行切換的數(shù)據(jù)/ecc信號。即,等待信號生成電路112將等待#信號輸出至adr轉(zhuǎn)換電路120、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140的每一個,作為數(shù)據(jù)/ecc信號。

等待#信號還用作指示在內(nèi)部存儲器14中的寫入數(shù)據(jù)的地址或者在內(nèi)部存儲器14中的讀取數(shù)據(jù)的地址的最高階位的值的信號。即,等待信號生成電路112將等待#信號輸出至內(nèi)部存儲器14,作為指示地址的最高階位的信號。

在第一時鐘周期中,為了將寫入或者讀取數(shù)據(jù)的地址指定至內(nèi)部存儲器14,adr轉(zhuǎn)換電路120實際上將從總線主控器輸入的地址信號輸出至內(nèi)部存儲器14。另一方面,在第二時鐘周期中,為了將寫入或者讀取與待寫入或者待讀取的數(shù)據(jù)配對的ecc的地址指定至內(nèi)部存儲器14,adr轉(zhuǎn)換電路120基于從總線主控器輸入的地址信號,來生成指示寫入或者讀取ecc的地址的地址信號,并且將生成的地址信號輸出至內(nèi)部存儲器14。

adr轉(zhuǎn)換電路120包括adr反轉(zhuǎn)電路121和選擇器122。將從總線主控器輸出的地址信號輸入到adr反轉(zhuǎn)電路121中。adr反轉(zhuǎn)電路121反轉(zhuǎn)由輸入的地址信號指示的地址的所有位的每個值,并且將地址信號輸出至選擇器122。將來自總線主控器的地址信號和來自adr反轉(zhuǎn)電路121的地址信號輸入到選擇器122中。選擇器122選擇來自總線主控器的地址信號和來自adr反轉(zhuǎn)電路121的地址信號中的一個,并且將選擇的地址信號輸出至內(nèi)部存儲器14。

當(dāng)其是將數(shù)據(jù)/ecc信號(例如,值為“0”)從等待信號生成電路112輸入的第一時鐘周期時,選擇器122選擇從總線主控器輸入的地址信號,并且將選擇的地址信號輸出至內(nèi)部存儲器14。另一方面,當(dāng)其是將數(shù)據(jù)/ecc信號(例如,值為1)從等待信號生成電路112輸入的第二時鐘周期時,選擇器122選擇從adr反轉(zhuǎn)電路121輸入的地址信號,并且將選擇的地址信號輸出至內(nèi)部存儲器14。

因此,在最后輸入到內(nèi)部存儲器14中的(n+1)位地址信號中,較低階n位變成adr轉(zhuǎn)換電路120已經(jīng)輸出的n位地址信號,并且最高階的一個位變成等待信號生成電路112已經(jīng)輸出的數(shù)據(jù)/ecc信號。

然后,內(nèi)部存儲器14執(zhí)行將數(shù)據(jù)寫入由在第一時鐘周期中的(n+1)位地址信號指示的地址或者從該地址讀取數(shù)據(jù)。內(nèi)部存儲器14執(zhí)行將ecc寫入由在第二時鐘周期中的(n+1)位地址信號指示的地址或者從該地址讀取數(shù)據(jù)。

在第一時鐘周期中,為了將數(shù)據(jù)寫入到內(nèi)部存儲器14中,wdt轉(zhuǎn)換電路130實際上將從總線主控器輸入的寫入數(shù)據(jù)輸出至內(nèi)部存儲器14。另一方面,在第二時鐘周期中,為了將與寫入數(shù)據(jù)配對的ecc寫入到內(nèi)部存儲器14中,wdt轉(zhuǎn)換電路130基于從總線主控器輸入的寫入數(shù)據(jù)來生成ecc,并且將生成的ecc輸出至內(nèi)部存儲器14。

wdt轉(zhuǎn)換電路130包括ecc生成電路131和選擇器132。將來自總線主控器的寫入數(shù)據(jù)輸入到ecc生成電路131中。ecc生成電路131從輸入的寫入數(shù)據(jù)生成ecc,并且將生成的ecc輸出至選擇器132。

將來自總線主控器的寫入數(shù)據(jù)和來自ecc生成電路131的ecc輸入到選擇器132中。選擇器132選擇來自總線主控器的寫入數(shù)據(jù)和來自ecc生成電路131的ecc中的一個,并且將選擇的一個輸出至內(nèi)部存儲器14。

當(dāng)其是將數(shù)據(jù)/ecc信號(例如,值為“0”)從等待信號生成電路112輸入的第一時鐘周期時,選擇器132選擇從總線主控器輸入的寫入數(shù)據(jù),并且將選擇的寫入數(shù)據(jù)輸出至內(nèi)部存儲器14。另一方面,當(dāng)其是將數(shù)據(jù)/ecc信號(例如,值為1)從等待信號生成電路112輸入的第二時鐘周期時,選擇器132選擇從ecc生成電路131輸入的ecc,并且將選擇的ecc輸出至內(nèi)部存儲器14。

因此,當(dāng)輸入指定數(shù)據(jù)寫入的寫入/讀取信號時,在第一時鐘周期中,內(nèi)部存儲器14將從總線主控器輸入的寫入數(shù)據(jù)存儲在由(n+1)位地址信號指示的地址處。在第二時鐘周期中,內(nèi)部存儲器14將從wdt轉(zhuǎn)換電路130輸入的ecc(準(zhǔn)確地說,包括虛擬位和ecc的數(shù)據(jù),如稍后將描述的)存儲在由(n+1)位地址信號指示的地址處。經(jīng)由i/f轉(zhuǎn)換電路13,實際上將從總線主控器輸出的寫入/讀取信號輸入至內(nèi)部存儲器14。

另一方面,當(dāng)輸入指定數(shù)據(jù)讀取的寫入/讀取信號時,在第一時鐘周期中,內(nèi)部存儲器14將存儲在由(n+1)位地址信號指示的地址處的數(shù)據(jù)輸出至rdt轉(zhuǎn)換電路140,作為讀取數(shù)據(jù)。在第二時鐘周期中,內(nèi)部存儲器14將存儲在由(n+1)位地址信號指示的地址處的ecc輸出至rdt轉(zhuǎn)換電路140。

當(dāng)總線主控器從內(nèi)部存儲器14讀取數(shù)據(jù)時,rdt轉(zhuǎn)換電路140基于從內(nèi)部存儲器14輸入的讀取數(shù)據(jù)和ecc來確定錯誤是否已經(jīng)發(fā)生在讀取數(shù)據(jù)中。當(dāng)錯誤還未發(fā)生在讀取數(shù)據(jù)中時,rdt轉(zhuǎn)換電路140實際上將從內(nèi)部存儲器14輸入的讀取數(shù)據(jù)輸出至總線主控器。另一方面,當(dāng)錯誤已經(jīng)發(fā)生在讀取數(shù)據(jù)中時,rdt轉(zhuǎn)換電路140基于ecc來對在從內(nèi)部存儲器14輸入的讀取數(shù)據(jù)中的錯誤進(jìn)行校正,并且然后將校正后的讀取數(shù)據(jù)輸出至總線主控器。

rdt轉(zhuǎn)換電路140包括數(shù)據(jù)保持電路141、ecc檢查電路142、和錯誤校正電路143。

當(dāng)總線主控器訪問內(nèi)部存儲器14時,數(shù)據(jù)保持電路141在第一時鐘周期中取回從內(nèi)部存儲器輸入的讀取數(shù)據(jù),并且與時鐘信號同步地,在第二時鐘周期將保持的讀取數(shù)據(jù)輸出至ecc檢查電路142和錯誤校正電路143。例如,數(shù)據(jù)保持電路141是ff電路。

ecc檢查電路142不在第一時鐘周期中操作;然而,在第二時鐘周期中操作,ecc檢查電路142基于從數(shù)據(jù)保持電路141輸入的讀取數(shù)據(jù)和從內(nèi)部存儲器14輸入的ecc,來確定數(shù)據(jù)的錯誤是否已經(jīng)發(fā)生。

即,在第一時鐘周期中,當(dāng)將數(shù)據(jù)/ecc信號(例如,值為“0”)從等待信號生成電路112輸入時,ecc檢查電路142不執(zhí)行確定故障。另一方面,在第二時鐘周期中,當(dāng)將數(shù)據(jù)/ecc信號(例如,值為“1”)從等待信號生成電路112輸入時,ecc檢查電路142確定數(shù)據(jù)的錯誤是否已經(jīng)發(fā)生。換言之,數(shù)據(jù)/ecc信號用作指示是否啟用或者禁用ecc檢查電路142的操作的啟用信號。

當(dāng)ecc檢查電路142確定錯誤已經(jīng)發(fā)生在數(shù)據(jù)的任何一個位中時,ecc檢查電路142將指示錯誤位的位置的錯誤校正信號輸出至錯誤校正電路143。當(dāng)ecc檢查電路142確定無法校正的2位或者多位錯誤已經(jīng)發(fā)生在數(shù)據(jù)中時,ecc檢查電路142將斷言的錯誤通知信號(例如,值為“1”)輸出至總線主控器,作為通知錯誤發(fā)生的信號。另一方面,當(dāng)ecc檢查電路142確定無法校正的2位或者多位錯誤還未發(fā)生在數(shù)據(jù)中時,ecc檢查電路142將去斷言的錯誤通知信號(例如,值為“0”)輸出至總線主控器,作為通知錯誤沒有發(fā)生的信號。

當(dāng)錯誤還未發(fā)生在數(shù)據(jù)中時,錯誤校正電路143實際上將在第二時鐘周期中從數(shù)據(jù)保持電路141輸入的讀取數(shù)據(jù)輸出至總線主控器。另一方面,當(dāng)錯誤已經(jīng)發(fā)生在數(shù)據(jù)中時,錯誤校正電路143對在第二時鐘周期中從數(shù)據(jù)保持電路141輸入的讀取數(shù)據(jù)的錯誤進(jìn)行校正,并且然后將校正后的讀取數(shù)據(jù)輸出至總線主控器。更具體地,錯誤校正電路143將在從數(shù)據(jù)保持電路141輸入的讀取數(shù)據(jù)中的通過使在由從ecc檢查電路142輸入的錯誤校正信號指示的位的位置處的值反轉(zhuǎn)而獲得的數(shù)據(jù)輸出至總線主控器,作為在錯誤校正之后的讀取數(shù)據(jù)。例如,錯誤校正電路143包括nxor(異or)電路。

參照圖3,下面闡釋包括在根據(jù)實施例1的adr轉(zhuǎn)換電路120中的adr反轉(zhuǎn)電路121的配置。如圖3所示,adr轉(zhuǎn)換電路120包括n段位值反轉(zhuǎn)電路1210。此處,闡釋了具有n個位的地址信號的示例。

n段位值反轉(zhuǎn)電路1210中的每一個與n位地址信號的位a0、a1、a2、……、a(n-1)中的每一個對應(yīng)。n段位值反轉(zhuǎn)電路1210中的每一個使地址信號的對應(yīng)位的值反轉(zhuǎn),并且輸出在反轉(zhuǎn)之后的值。從n段位值反轉(zhuǎn)電路1210中的每一個輸出的位a’0、a’1、a’2、……、a’(n-1)被收集作為n位地址信號,并且被輸出至內(nèi)部存儲器14。此處,在“a”之后的數(shù)字指示隨著數(shù)字的增大,其為更高階的位。即,在n個位中,“0”指示其是最低階位,并且“n-1”指示其是最高階位。對于其它位同樣也是如此。例如,位值反轉(zhuǎn)電路1210是not(邏輯not)電路。

接下來,參照圖4,闡釋根據(jù)實施例1的內(nèi)部存儲器14的存儲器映射的配置。此處,對內(nèi)部存儲器14的數(shù)據(jù)寬度是8個位、內(nèi)部存儲器14的地址寬度是(n+1)個位、內(nèi)部存儲器14的數(shù)據(jù)量是(8×2(n+1))個位,并且n=3的示例做出闡釋。

內(nèi)部存儲器14將圖4中的低階的一半用作存儲初始數(shù)據(jù)的區(qū)域,并且將高階的一半用作存儲與初始數(shù)據(jù)配對的ecc的區(qū)域。即,將在內(nèi)部存儲器14中的區(qū)域區(qū)分為在將地址的最高階位的值(圖4中的a3)設(shè)置為在地址空間中的“0”時存儲有數(shù)據(jù)的區(qū)域,并且區(qū)分為在將地址的最高階位的值設(shè)置為“1”時存儲有ecc的區(qū)域。在實施例1中,針對存儲有數(shù)據(jù)的地址的低階n位(圖4中的a2至a0)的值,存儲有與數(shù)據(jù)配對的ecc的地址的低階n位的值是通過圖3所示的adr反轉(zhuǎn)電路121(a2至a0的值被標(biāo)記為圖4中的“adr反轉(zhuǎn)”的部分)的操作使位置反轉(zhuǎn)而獲得的值。

即,如圖4所示,地址adr-0(“0000”)的數(shù)據(jù)(“data0”)與地址adr-f(“1111”)的ecc(“ecc0”)配成一對。地址adr-1(“0001”)的數(shù)據(jù)(“data1”)與地址adr-e(“1110”)的ecc(“ecc1”)配成一對。地址adr-2(“0010”)的數(shù)據(jù)(“data2”)與地址adr-d(“1101”)的ecc(“ecc2”)配成一對。地址adr-3(“0011”)的數(shù)據(jù)(“data3”)與地址adr-c(“1100”)的ecc(“ecc3”)配成一對。地址adr-4(“0100”)的數(shù)據(jù)(“data4”)與地址adr-b(“1011”)的ecc(“ecc4”)配成一對。地址adr-5(“0101”)的數(shù)據(jù)(“data5”)與地址adr-a(“1010”)的ecc(“ecc5”)配成一對。地址adr-6(“0110”)的數(shù)據(jù)(“data6”)與地址adr-9(“1001”)的ecc(“ecc6”)配成一對。地址adr-7(“0111”)的數(shù)據(jù)(“data7”)與地址adr-8(“1000”)的ecc(“ecc7”)配成一對。

此處,與圖4所示的“adr-n”的“n”對應(yīng)的部分是地址的十六進(jìn)制數(shù)記法。即,“adr-0”指定地址是“0000”,并且“adr-f”指定地址是“1111”。

從8位數(shù)據(jù)生成的ecc具有5個位。因此,通過將虛擬位(例如,值為“0”)添加至3個高階位來將ecc改變?yōu)?位數(shù)據(jù),并且將該ecc存儲在內(nèi)部存儲器14中。

內(nèi)部存儲器14如上所述配置,并且與內(nèi)部存儲器14對應(yīng)設(shè)置的i/f轉(zhuǎn)換電路13也如上所述操作。因此,當(dāng)錯誤發(fā)生在寫入內(nèi)部存儲器14中的數(shù)據(jù)的任何一個位中時,i/f轉(zhuǎn)換電路13的rdt轉(zhuǎn)換電路140在讀取數(shù)據(jù)時會檢測到數(shù)據(jù)的錯誤。然后,當(dāng)檢測到一位錯誤時,對錯誤進(jìn)行校正。當(dāng)檢測到二位或者多位錯誤時,發(fā)出指示錯誤無法校正的錯誤通知信號。

因此,當(dāng)固定型故障(固定至0或者1)因在待從i/f轉(zhuǎn)換電路13的wdt轉(zhuǎn)換電路130輸出至內(nèi)部存儲器14的寫入數(shù)據(jù)(8位)的8條信號線當(dāng)中的任何一條或者多條線的故障(斷開連接)而發(fā)生在相互配對的數(shù)據(jù)和ecc中時,在與斷開的信號線對應(yīng)的位的位置處的值變成與初始值不同的值(反轉(zhuǎn)值)。因此,當(dāng)讀取數(shù)據(jù)時,肯定將值改變檢測為在ecc檢查電路142中的一位錯誤或者二位或者更多位錯誤。當(dāng)固定型故障(固定至0或者1)因在i/f轉(zhuǎn)換電路13的rdt轉(zhuǎn)換電路140從內(nèi)部存儲器14輸入的讀取數(shù)據(jù)(8位)的8條信號線當(dāng)中的任何一條或者多條線的故障(斷開連接)而發(fā)生時,這也成立。

另一方面,下面闡釋固定型故障(固定至0或者1)因在待從i/f轉(zhuǎn)換電路13的adr轉(zhuǎn)換電路120輸入到內(nèi)部存儲器14中的地址信號(n位)的n條信號線當(dāng)中的任何一條或者多條線的故障(斷開連接)而發(fā)生的情況。

參照圖5,下面闡釋了在固定型1故障(固定至1)發(fā)生在待輸入到內(nèi)部存儲器14中的地址信號(n位)的a2位中的情況下的操作。假設(shè)內(nèi)部存儲器14具有n=3,如圖4所示。此處,對通過以下流程執(zhí)行數(shù)據(jù)的寫入和讀取的情況做出闡釋。

(1)將數(shù)據(jù)(“data5”)寫入地址adr-5(“0101”),并且將與數(shù)據(jù)配對的ecc(“ecc5”)寫入地址adr-a(“1010”)。在附圖中,“data5”和“ecc5”被表示在括號中。

(2)重新將數(shù)據(jù)(“data1”)寫入地址adr-1(“0001”),并且將與數(shù)據(jù)配對的ecc(“ecc1”)寫入地址adr-e(“1110”)。

(3)此處,固定型1故障發(fā)生在與地址的a2位對應(yīng)的地址信號線中。因此,訪問內(nèi)部存儲器14的地址adr-0至adr-3和地址adr-8至adr-b是不可能的。

(4)目的在于讀取數(shù)據(jù)(“data1”)和與數(shù)據(jù)配對的ecc(“ecc1”),該數(shù)據(jù)和該ecc在(2)中已經(jīng)被寫入。

(4)’此時,事實上,由于在(3)中已經(jīng)發(fā)生的地址信號線的故障,從內(nèi)部存儲器14的地址adr-5(“0101”),而不是從存儲有數(shù)據(jù)(“data1”)的地址adr-1(“0001”)讀取數(shù)據(jù)(“data5”)。另一方面,存儲有ecc(“ecc1”)的地址adr-e(“1110”)不受地址信號線的故障影響。因此,正常讀取ecc(“ecc1”)。即,讀取在(2)中未被寫入的數(shù)據(jù)的數(shù)據(jù)(“data5”)和不與數(shù)據(jù)配對的ecc(“ecc1”)。

(5)結(jié)果,包括在rdt轉(zhuǎn)換電路140中的ecc檢查電路142肯定將固定型1故障檢測為一位錯誤或者二位錯誤或者更多位錯誤。以這種方式,還可以檢測在地址信號系統(tǒng)中的故障;因此,從功能安全性的觀點來看,實施例1很好。

此外,參照圖6,下面闡釋在未對存儲ecc的區(qū)域執(zhí)行“adr反轉(zhuǎn)”的情況(刪除在圖2所示的i/f轉(zhuǎn)換電路13中的adr轉(zhuǎn)換電路120的情況)下,按照與圖5相同的方式來執(zhí)行數(shù)據(jù)的寫入和讀取時的操作。

(1)將數(shù)據(jù)(“data5”)寫入地址adr-5(“0101”),并且將與數(shù)據(jù)配對的ecc(“ecc5”)寫入地址adr-d(“1101”)。在附圖中,“data5”和“ecc5”被表示在括號中。

(2)重新將數(shù)據(jù)(“data1”)寫入地址adr-1(“0001”),并且將與數(shù)據(jù)配對的ecc(“ecc1”)寫入地址adr-9(“1001”)。

(3)此處,固定型1故障發(fā)生在與地址的a2位對應(yīng)的地址信號線中。因此,訪問內(nèi)部存儲器14的地址adr-0至adr-3和地址adr-8至adr-b是不可能的。

(4)目的在于讀取數(shù)據(jù)(“data1”)和與數(shù)據(jù)配對的ecc(“ecc1”),該數(shù)據(jù)和該ecc在(2)中已經(jīng)被寫入。

(4)’此時,事實上,由于在(3)中已經(jīng)發(fā)生的地址信號線的故障,從內(nèi)部存儲器14的地址adr-5(“0101”),而不是從存儲有數(shù)據(jù)(“data1”)的地址adr-1(“0001”)讀取數(shù)據(jù)(“data5”)。存儲有ecc(“ecc1”)的地址adr-9(“1001”)受地址信號線的故障影響。因此,從內(nèi)部存儲器14的地址adr-d(“1101”)讀取ecc(“ecc5”)。即,讀取在(2)中未被寫入的數(shù)據(jù)(“data5”)和與數(shù)據(jù)配對的ecc(“ecc1”)。

(5)因此,包括在rdt轉(zhuǎn)換電路140中的ecc檢查電路142認(rèn)為數(shù)據(jù)(“data5”)與ecc(“ecc5”)成正常對。因此,只要位錯誤還未發(fā)生在數(shù)據(jù)中,將故障檢測為一位錯誤或者二位或者更多位錯誤是不可能的。

圖5示出了在固定型1故障(固定至1)發(fā)生在待輸入到內(nèi)部存儲器14中的地址信號的a2位中時的操作。然而,根據(jù)實施例1,同樣可以檢測地址信號線的故障,即使在固定型0故障(固定至0)發(fā)生在a2位中時、或者在固定型1故障或者固定型0故障發(fā)生在其它地址(具體為a1位和a0位)中時。

至于圖4所示的n=3的情況,圖7是表格,該表格示出了超過8行的(按照從上面起的順序編號為“0”至“7”)地址信號的低階3位a2至a0的值,約8個不同對“data0”與“ecc0”、“data1”與“ecc1”、……、以及“data7”與“ecc7”。在圖7中,將由在讀取數(shù)據(jù)時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(數(shù)據(jù))”,并且將由在讀取ecc時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(ecc)”。

該表格從左到右示出了以下7種不同的情況:

(1)沒有故障發(fā)生在地址的所有位中的情況;

(2)固定型1故障發(fā)生在地址的a2位中的情況(這與圖5所示的情況對應(yīng));

(3)固定型0故障發(fā)生在地址的a2位中的情況;

(4)固定型1故障發(fā)生在地址的a1位中的情況;

(5)固定型0故障發(fā)生在地址的a1位中的情況;

(6)固定型1故障發(fā)生在地址的a0位中的情況;以及

(7)固定型0故障發(fā)生在地址的a0位中的情況。

按照順序?qū)⒃诿總€位的位置處的三個值(0或者1)設(shè)置為a2至a0的值。在其值已經(jīng)因故障而改變的位的位置處的值下面劃線。

圖7所示的表格的第二行(編號為1)是示出了同時存儲有待在圖5的(2)中被寫入的數(shù)據(jù)(“data1”)和與數(shù)據(jù)配對的ecc(“ecc1”)的地址的行。當(dāng)故障還未發(fā)生在地址的所有位中時,地址具有在最左邊分別示出的低階3位(“001”)adr-1、和低階3位(“110”)adr-e。在圖7所示的表格中,a2至a0的這些值的對被實線包圍。

此處,當(dāng)固定型1故障發(fā)生在a2位中時,在表格的右方立即示出地址,其中,地址(數(shù)據(jù))的adr-1受到故障的影響變成不同的adr-5(低階3位是“101”),并且在不受故障影響的情況下,地址(ecc)的adr-e(低階3位是“1-1”)保持為adr-e。在表格中,在a2至a0的這些值的對的故障的影響之后的值被虛線包圍,并且,同時,在a2至a0的這些值的對的故障的影響之后的值中的每一個中被實際訪問的地址(數(shù)據(jù))和地址(ecc)被實線包圍并且在表格中用粗線聯(lián)接。因此,訪問數(shù)據(jù)(“data5”)和ecc(“ecc1”)。即,數(shù)據(jù)與ecc的配對顯然已經(jīng)崩潰,如圖5的(4)’所示。

同樣,作為其它示例,在表格中的進(jìn)一步右方示出了固定型1故障發(fā)生在a1位中的情況和固定型1故障發(fā)生在a0位中的情況,其中,按照與上述方式相同的方式來示出值a2至a0的對。數(shù)據(jù)與ecc的配對顯然已經(jīng)崩潰。

作為其它示例,在圖7所示的表格的第7行(編號為6)中涉及同時存儲有數(shù)據(jù)(“data6”)和與數(shù)據(jù)配對的ecc(“ecc6”)的地址,同樣,示出了固定型0故障發(fā)生在a2位中的情況、固定型0故障發(fā)生在a1位中的情況、和固定型0故障發(fā)生在a0位中的情況。在任何情況下,數(shù)據(jù)與ecc的配對崩潰,如同預(yù)期的一樣。通過該表格,顯而易見的是,當(dāng)固定型故障發(fā)生在地址的位中的任何一個中時,肯定可以檢測到故障。

圖8是表格,該表格在未對存儲有ecc的區(qū)域執(zhí)行“adr反轉(zhuǎn)”的情況(即,刪除了圖2所示的i/f轉(zhuǎn)換電路13的adr轉(zhuǎn)換電路120的情況)下,按照與圖7中的方式相似的方式示出了地址(數(shù)據(jù))和地址(ecc)的低階3位a2至a0的值。固定型1故障已經(jīng)發(fā)生在存在于該表格的第二行(編號為1)中的左側(cè)的第二故障示例中的地址的a2位中的情況與圖6所示的情況對應(yīng)。

在這種情況下,如從圖8所示的表格中所看見的,當(dāng)固定型故障發(fā)生在地址的位中的任何一個中時,在受到影響的情況下變得不可能訪問的地址處的數(shù)據(jù)和ecc的對被認(rèn)為是在另一地址處的數(shù)據(jù)和ecc的對(即,地址變得退化)。因此,在讀取數(shù)據(jù)時檢測地址信號線的故障是不可能的。

對從總線主控器輸入的n位地址信號的所有位的值被反轉(zhuǎn)的示例做出上述闡釋。然而,本發(fā)明并不限于該示例。例如,通過使n位地址信號的規(guī)定的數(shù)量的位(任何數(shù)量的n位至一位)的值反轉(zhuǎn)來獲得某種程度的效果??梢詫⒁?guī)定的數(shù)量的位設(shè)置為來自n個位的最高階位的規(guī)定的數(shù)量的位、或者來自最低階位的規(guī)定的數(shù)量的位??梢詫⒃撘?guī)定的數(shù)量的位設(shè)置為n個位的連續(xù)位或者不連續(xù)位。然而,如上所述,可以檢測多個故障,優(yōu)選通過使n位地址信號的所有位的值反轉(zhuǎn)。

如上所述,在實施例1中,adr轉(zhuǎn)換電路120基于用于將數(shù)據(jù)存儲在內(nèi)部存儲器14中的第一地址,來生成用于存儲從數(shù)據(jù)生成的錯誤檢測代碼的第二地址。當(dāng)請求將數(shù)據(jù)寫入第一地址時,wdt轉(zhuǎn)換電路130將數(shù)據(jù)寫入第一地址并且將錯誤檢測代碼寫入第二地址。當(dāng)請求從第一地址讀取數(shù)據(jù)時,rdt轉(zhuǎn)換電路104從第一地址讀取數(shù)據(jù),從第二地址讀取錯誤檢測代碼,并且基于數(shù)據(jù)和錯誤檢測代碼來檢測錯誤。

此處,i/f控制電路110修改第一地址(與(n+1)位地址對應(yīng))的至少一個位(與(n+1)位地址的最高階位對應(yīng))的值,并且使錯誤檢測代碼的存儲位置偏移到數(shù)據(jù)的存儲位置。adr轉(zhuǎn)換電路120通過使其它位(與低階n位對應(yīng))的規(guī)定的數(shù)量的位的值反轉(zhuǎn),來生成地址作為第二地址。在上述示例中,adr轉(zhuǎn)換電路120通過使所有其它位(n個位)的值反轉(zhuǎn),來生成地址作為第二地址。

因此,當(dāng)在已經(jīng)將數(shù)據(jù)和由數(shù)據(jù)生成的ecc的對寫入在內(nèi)部存儲器14之后固定型故障(固定至0或者1)發(fā)生在通向內(nèi)部存儲器14的地址信號線中的任何一條中時,可以在讀取寫入數(shù)據(jù)時檢測地址信號線的故障。

這對兩條或者多條地址信號線的故障同樣有效。還可以檢測影響地址的值的故障,這發(fā)生在adr轉(zhuǎn)換電路120中以生成和輸出待輸入到內(nèi)部存儲器14中的地址信號,并且發(fā)生在內(nèi)部存儲器14中的地址信號處理電路(未示出)中。

在實施例1中,總線主控器在執(zhí)行數(shù)據(jù)的寫入或者讀取的單位時間(與時鐘周期對應(yīng))內(nèi)將啟用數(shù)據(jù)的寫入或者讀取的啟用信號輸出至內(nèi)部存儲器14。響應(yīng)于啟用數(shù)據(jù)的寫入或者讀取的從總線主控器輸出的啟用信號,i/f控制電路110輸出等待信號以在單位時間內(nèi)抑制總線主控器的操作,而不是輸出等待信號以允許總線主控器的操作。

響應(yīng)于抑制總線主控器的操作的從i/f控制電路110輸出的等待信號,wdt轉(zhuǎn)換電路130將數(shù)據(jù)寫入第一地址(與第一時鐘周期對應(yīng))。隨后,響應(yīng)于允許總線主控器的操作的從i/f控制電路110輸出的等待信號,wdt轉(zhuǎn)換電路130將錯誤檢測代碼寫入第二地址(與第二時鐘周期對應(yīng))。

響應(yīng)于抑制總線主控器的操作的從i/f控制電路110輸出的等待信號,rdt轉(zhuǎn)換電路140隨后從第一地址讀取數(shù)據(jù),并且響應(yīng)于允許總線主控器的操作的從i/f控制電路110輸出的等待信號,rdt轉(zhuǎn)換電路140從第二地址讀取錯誤檢測代碼。

因此,可以通過總線主控器維持?jǐn)?shù)據(jù)的寫入或者讀取的請求,并且,同時,利用持續(xù)的時間,可以將錯誤檢測代碼寫入到內(nèi)部存儲器14中,或者從內(nèi)部存儲器14讀取錯誤檢測代碼。還可以轉(zhuǎn)移等待信號,以利用更簡單的配置來實現(xiàn)數(shù)據(jù)的寫入的請求的繼續(xù)、和在數(shù)據(jù)的寫入與錯誤檢測代碼的寫入之間的切換。可以進(jìn)一步轉(zhuǎn)移等待信號,以利用更簡單的配置來實現(xiàn)數(shù)據(jù)的讀取的請求的繼續(xù)、和在數(shù)據(jù)的讀取與錯誤檢測代碼的讀取之間的切換。

在實施例1中,將抑制總線主控器的操作的等待信號用作第一地址的至少一個位的值。將允許總線主控器的操作的等待信號用作在修改之后的第一地址的至少一個位的值。

因此,可以轉(zhuǎn)移等待信號,以利用更簡單的配置來實現(xiàn)數(shù)據(jù)的寫入的請求的繼續(xù)、和錯誤檢測代碼的存儲位置到數(shù)據(jù)的存儲位置的偏移。

在實施例1中,響應(yīng)于抑制總線主控器的操作的從i/f控制電路110輸出的等待信號,rdt轉(zhuǎn)換電路140保持從內(nèi)部存儲器14讀取到的數(shù)據(jù)。隨后,響應(yīng)于允許總線主控器的操作的從i/f控制電路110輸出的等待信號,rdt轉(zhuǎn)換電路140基于從內(nèi)部存儲器14讀取到的錯誤檢測代碼和保持的數(shù)據(jù)來檢測錯誤。

因此,可以轉(zhuǎn)移等待信號,以利用更簡單的配置來實現(xiàn)數(shù)據(jù)的寫入或者讀取的請求的繼續(xù)、和用于錯誤檢測的操作的改變。

<實施例2>

接下來,參照附圖闡釋實施例2的配置和操作。根據(jù)實施例2的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。然而,在實施例2中,包括在cpu系統(tǒng)1中的i/f轉(zhuǎn)換電路13的一部分的配置和操作與根據(jù)實施例1的i/f轉(zhuǎn)換電路13的配置和操作不同。

接下來,參照圖9,闡釋根據(jù)實施例2的i/f轉(zhuǎn)換電路13的配置。與根據(jù)實施例1的i/f轉(zhuǎn)換電路13相比較,根據(jù)實施例2的i/f轉(zhuǎn)換電路13包括adr旋轉(zhuǎn)電路123來代替在adr轉(zhuǎn)換電路120中的adr反轉(zhuǎn)電路121。根據(jù)實施例2的i/f控制電路110、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140的配置和操作與根據(jù)實施例1的對應(yīng)部分的配置和操作相同。

將從總線主控器輸出的地址信號輸入到adr旋轉(zhuǎn)電路123中。adr旋轉(zhuǎn)電路123使由輸入的地址信號指示的地址的所有位旋轉(zhuǎn)(移位),并且將旋轉(zhuǎn)后的地址信號輸出至選擇器122。因此,在實施例2中,選擇器122選擇從總線主控器輸出的地址信號和從adr旋轉(zhuǎn)電路123輸出的地址信號中的一個,并且將選擇的地址信號輸出至內(nèi)部存儲器14。

接下來,參照圖10,闡釋根據(jù)實施例2的包括在adr轉(zhuǎn)換電路120中的adr旋轉(zhuǎn)電路123的配置。此處,闡釋了具有n個位的地址信號的示例。

如圖10所示,adr旋轉(zhuǎn)電路123使由地址信號指示的地址向左旋轉(zhuǎn)(至高階位方向)一個位,以重排n位地址信號的每個位的位置。即,adr旋轉(zhuǎn)電路123使地址信號的n個位向左移位了一個位,并且使溢出的最高階位移動至最低階位。

如圖10所示,這是通過使n位地址信號線在輸入階段和在輸出階段在adr旋轉(zhuǎn)電路123中的每個位位置移位和耦合來實現(xiàn)的。即,將輸入到adr旋轉(zhuǎn)電路123中的n位地址信號的位a0、a1、a2、……、a(n-1)中的每一個設(shè)置為待從adr旋轉(zhuǎn)電路123輸出的n位地址信號的a’1、a’2、……、a’(n-1)、a’0中的每一個。在該adr旋轉(zhuǎn)電路123中,n位地址信號線的每個位的信號由n個緩沖器1230中的每一個接收,并且使連接目的地的位位置移位。

接下來,參照圖11,闡釋根據(jù)實施例2的內(nèi)部存儲器14的存儲器映射。與圖4所示的根據(jù)實施例1的內(nèi)部存儲器14一樣,此處,對內(nèi)部存儲器14的數(shù)據(jù)寬度是8個位、內(nèi)部存儲器14的地址寬度是(n+1)個位、內(nèi)部存儲器14的數(shù)據(jù)量是(8×2(n+1))個位,并且n=3的示例做出闡釋。

在實施例2中,針對存儲有數(shù)據(jù)的地址的低階n位(圖11中的a2至a0)的值,存儲有與數(shù)據(jù)配對的ecc的地址的低階n位的值被改變?yōu)橐环N布置,在該布置中,通過圖10所示的adr旋轉(zhuǎn)電路123(a2至a0的值被標(biāo)記為圖11中的“adr反轉(zhuǎn)”的部分)的操作來重排每個位。

即,如圖11所示,地址adr-0(“0000”)的數(shù)據(jù)(“data0”)與地址adr-8(“1000”)的ecc(“ecc0”)配成一對。地址adr-1(“0001”)的數(shù)據(jù)(“data1”)與地址adr-a(“1010”)的ecc(“ecc1”)配成一對。地址adr-2(“0010”)的數(shù)據(jù)(“data2”)與地址adr-c(“1100”)的ecc(“ecc2”)配成一對。地址adr-3(“0011”)的數(shù)據(jù)(“data3”)與地址adr-e(“1110”)的ecc(“ecc3”)配成一對。地址adr-4(“0100”)的數(shù)據(jù)(“data4”)與地址adr-9(“1001”)的ecc(“ecc4”)配成一對。地址adr-5(“0101”)的數(shù)據(jù)(“data5”)與地址adr-b(“1011”)的ecc(“ecc5”)配成一對。地址adr-6(“0110”)的數(shù)據(jù)(“data6”)與地址adr-d(“1101”)的ecc(“ecc6”)配成一對。地址adr-7(“0111”)的數(shù)據(jù)(“data7”)與地址adr-f(“1111”)的ecc(“ecc7”)配成一對。

與實施例1一樣,通過將虛擬位(例如,值為“0”)添加至高階3位來將ecc改變?yōu)?位數(shù)據(jù),并且將ecc存儲在內(nèi)部存儲器14中。與實施例1一樣,當(dāng)固定型故障(固定至0或者1)因在待從i/f轉(zhuǎn)換電路13的wdt轉(zhuǎn)換電路130輸出至內(nèi)部存儲器14的寫入數(shù)據(jù)(8位)的八條信號線當(dāng)中的任何一條或者多條線的故障(斷開連接)而發(fā)生在相互形成對的數(shù)據(jù)和ecc中時,在與斷開的信號線對應(yīng)的位的位置處的值變成魚初始值不同的值(反轉(zhuǎn)值)。因此,當(dāng)讀取數(shù)據(jù)時,肯定將值改變檢測為在ecc檢查電路142中的一位錯誤或者二位或者更多位錯誤。當(dāng)固定型故障(固定至0或者1)因在i/f轉(zhuǎn)換電路13的rdt轉(zhuǎn)換電路140從內(nèi)部存儲器14輸入的讀取數(shù)據(jù)(8位)的8條信號線當(dāng)中的任何一條或者多條線的故障(斷開連接)而發(fā)生時,這也是相同的。

另一方面,下面闡釋固定型故障(固定至0或者1)因在待從i/f轉(zhuǎn)換電路13的wdt轉(zhuǎn)換電路130輸入到內(nèi)部存儲器14中的地址信號(n位)的n條信號線當(dāng)中的任何一條或者多條線的故障(斷開連接)而發(fā)生的情況。

參照圖12,與實施例1的圖5一樣,下面闡釋了在固定型1故障(固定至1)發(fā)生在待輸入到內(nèi)部存儲器14中的地址信號(n位)的a2位中的情況下的操作。假設(shè)內(nèi)部存儲器14具有n=3,如圖11所示。此處,對通過以下流程執(zhí)行數(shù)據(jù)的寫入和讀取的情況做出闡釋。

(1)將數(shù)據(jù)(“data3”)寫入地址adr-3(“0011”),并且將與數(shù)據(jù)配對的ecc(“ecc3”)寫入地址adr-e(“1110”)。將數(shù)據(jù)(“data5”)寫入地址adr-5(“0101”),并且將與數(shù)據(jù)配對的ecc(“ecc5”)寫入地址adr-b(“1011”)。在附圖中,它們被表示在括號中。

(2)重新將數(shù)據(jù)(“data1”)寫入地址adr-1(“0001”),并且將與數(shù)據(jù)配對的ecc(“ecc1”)寫入地址adr-a(“1010”)。

(3)此處,固定型1故障發(fā)生在與地址的a2位對應(yīng)的地址信號線中。因此,訪問內(nèi)部存儲器14的地址adr-0至adr-3和地址adr-8至adr-b是不可能的。

(4)目的在于讀取數(shù)據(jù)(“data1”)和與數(shù)據(jù)配對的ecc(“ecc1”),該數(shù)據(jù)和該ecc在(2)中已經(jīng)被寫入。

(4)’此時,事實上,由于在(3)中已經(jīng)發(fā)生的地址信號線的故障,從內(nèi)部存儲器14的地址adr-5(“0101”),而不是從存儲有數(shù)據(jù)(“data1”)的地址adr-1(“0001”)讀取數(shù)據(jù)(“data5”)。從地址adr-e(“1110”),而不是從存儲有ecc(“ecc1”)的地址adr-a(“1010”)讀取ecc(“ecc3”)。即,讀取在(2)中未被寫入的數(shù)據(jù)的數(shù)據(jù)(“data5”)和不與數(shù)據(jù)配對的ecc(“ecc3”)。

(5)結(jié)果,包括在rdt轉(zhuǎn)換電路140中的ecc檢查電路142肯定將固定型1故障檢測為一位錯誤或者二位錯誤或者更多位錯誤。以這種方式,還可以檢測在地址信號系統(tǒng)中的故障;因此,從功能安全性的觀點來看,實施例2很好。

圖12示出了在固定型1故障(固定至1)發(fā)生在待輸入到內(nèi)部存儲器14中的地址信號的a2位中時的操作。然而,根據(jù)實施例2,同樣可以檢測地址信號線的故障,即使在固定型0故障(固定至0)發(fā)生在a2位中時、或者在固定型1故障或者固定型0故障發(fā)生在其它地址(具體為a1位和a0位)中時。

至于圖11所示的n=3的情況,圖13是表格,該表格示出了超過8行的(按照從上面起的順序編號為“0”至“7”)地址信號的低階3位a2至a0的值,約8個不同對“data0”與“ecc0”、“data1”與“ecc1”、……、以及“data7”與“ecc7”。在圖13中,將由在讀取數(shù)據(jù)時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(數(shù)據(jù))”,并且將由在讀取ecc時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(ecc)”。

該表格從左到右示出了以下7種不同的情況:

(1)沒有故障發(fā)生在地址的所有位中的情況;

(2)固定型1故障發(fā)生在地址的a2位中的情況(這與圖12所示的情況對應(yīng));

(3)固定型0故障發(fā)生在地址的a2位中的情況;

(4)固定型1故障發(fā)生在地址的a1位中的情況;

(5)固定型0故障發(fā)生在地址的a1位中的情況;

(6)固定型1故障發(fā)生在地址的a0位中的情況;以及

(7)固定型0故障發(fā)生在地址的a0位中的情況。

按照順序?qū)⒃诿總€位的位置處的三個值(0或者1)設(shè)置為a2至a0的值。在其值已經(jīng)因故障而改變的位的位置處的值下面劃線。

圖13所示的表格的第二行(編號為1)是示出了同時存儲有待在圖12的(2)中被寫入的數(shù)據(jù)(“data1”)和與數(shù)據(jù)配對的ecc(“ecc1”)的地址的行。當(dāng)故障還未發(fā)生在地址的所有位中時,地址具有在最左邊分別示出的adr-1的低階3位(“001”)、adr-e的低階3位(“110”)。在圖13所示的表格中,a2至a0的這些值的對被實線包圍。

此處,當(dāng)固定型1故障發(fā)生在a2位中時,在表格的右方立即示出地址,其中,地址(數(shù)據(jù))的adr-1受到故障的影響變成不同的adr-5(低階3位是“101”),并且地址(ecc)的adr-a受到故障的影響變成不同的adr-e(低階3位是“110”)。在表格中,在a2至a0的這些值的對的故障的影響之后的值被虛線包圍,并且,同時,在a2至a0的這些值的對的故障的影響之后的值中的每一個中被實際訪問的地址(數(shù)據(jù))和地址(ecc)被實線包圍并且在表格中用粗線聯(lián)接。因此,訪問數(shù)據(jù)(“data5”)和ecc(“ecc3”)。即,要理解,數(shù)據(jù)與ecc的配對已經(jīng)崩潰,如圖12的(4)’所示。

同樣,作為其它示例,在表格中的進(jìn)一步右方示出了固定型1故障發(fā)生在a1位中的情況和固定型1故障發(fā)生在a0位中的情況,其中,按照與上述方式相同的方式來示出a2至a0的值的對。數(shù)據(jù)與ecc的配對顯然已經(jīng)崩潰。

作為其它示例,在圖13所示的表格的第7行(編號為6)中涉及同時存儲有數(shù)據(jù)(“data6”)和與數(shù)據(jù)配對的ecc(“ecc6”)的地址,同樣,示出了固定型0故障發(fā)生在a2位中的情況、固定型0故障發(fā)生在a1位中的情況、和固定型0故障發(fā)生在a0位中的情況。在任何情況下,數(shù)據(jù)與ecc的配對崩潰,如同預(yù)期的一樣。通過該表格,顯而易見的是,當(dāng)固定型故障發(fā)生在地址的位中的任何一個中時,肯定可以檢測到故障。

此外,在實施例2中,即使當(dāng)在固定型故障(固定至0或者1)因待從i/f轉(zhuǎn)換電路13的adr轉(zhuǎn)換電路120輸入到內(nèi)部存儲器14中的地址信號(n位)的n條信號線中的任何一條的故障(斷開連接)而發(fā)生之后,執(zhí)行數(shù)據(jù)的寫入和讀取時,也可以檢測故障,如下面將闡釋的。

參照圖14,下面闡釋了在固定型1故障(固定至1)發(fā)生在待輸入到內(nèi)部存儲器14中的地址信號(n位)的a2位中之后執(zhí)行數(shù)據(jù)的寫入和讀取的情況下的操作。假設(shè)內(nèi)部存儲器14具有n=3,如圖11所示。此處,對通過以下流程執(zhí)行數(shù)據(jù)的寫入和讀取的情況做出闡釋。

(1)將數(shù)據(jù)(“data3”)寫入地址adr-3(“0011”),并且將與數(shù)據(jù)配對的ecc(“ecc3”)寫入地址adr-e(“1110”)。將數(shù)據(jù)(“data5”)寫入地址adr-5(“0101”),并且將與數(shù)據(jù)配對的ecc(“ecc5”)寫入地址adr-b(“1011”)。將數(shù)據(jù)(“data1”)寫入地址adr-1(“0001”),并且將與數(shù)據(jù)配對的ecc(“ecc1”)寫入地址adr-a(“1010”)。在附圖中,它們被表示在括號中。

(2)此處,固定型1故障發(fā)生在與地址的a2位對應(yīng)的地址信號線中。因此,訪問內(nèi)部存儲器14的地址adr-0至adr-3和地址adr-8至adr-b是不可能的。

(3)目的在于重新將數(shù)據(jù)(“data2”)寫入地址adr-2(“0010”),并且將與數(shù)據(jù)配對的ecc(“ecc2”)寫入地址adr-c(“1100”)。此時,事實上,由于在(2)中已經(jīng)發(fā)生的地址信號線的故障,將數(shù)據(jù)(“data2”)寫入地址adr-6(“0110”),而不是寫入內(nèi)部存儲器14的地址adr-2(“0010”)。另一方面,將ecc(“ecc2”)正常寫入地址adr-c(“1100”)。

(4)接下來,目的在于將數(shù)據(jù)(“data6”)寫入地址adr-6(“0110”),并且將與數(shù)據(jù)配對的ecc(“ecc6”)寫入地址adr-d(“1101”)。此時,在不受在(2)中已經(jīng)發(fā)生的地址信號線的故障影響的情況下,將數(shù)據(jù)(“data6”)和ecc(“ecc6”)都寫入正常地址。

(4)’此時,通過數(shù)據(jù)(“data6”)來重寫在(3)中已經(jīng)寫入地址adr-6(“0110”)的數(shù)據(jù)(“data2”)。

(5)目的在于讀取數(shù)據(jù)(“data2”)和與數(shù)據(jù)配對的ecc(“ecc2”),該數(shù)據(jù)和該ecc在(3)中已經(jīng)被寫入。

(5)’此時,事實上,從內(nèi)部存儲器14的地址adr-6(“0110”),而不是從已經(jīng)存儲有數(shù)據(jù)(“data2”)的地址adr-2(“0010”)讀取數(shù)據(jù)(“data6”)。這是因為在該地址adr-6(“0110”)處,在(3)中一旦寫入數(shù)據(jù)(“data2”),就可以在(4)’中重寫數(shù)據(jù)(“data6”)。從存儲有ecc(“ecc2”)的地址adr-c(“1100”)正常讀取ecc(“ecc2”)。因此,讀取數(shù)據(jù)(“data6”)和與數(shù)據(jù)的配對崩潰的ecc(“ecc2”)。

(6)結(jié)果,包括在rdt轉(zhuǎn)換電路140中的ecc檢查電路142肯定將固定型1故障檢測為一位錯誤或者二位或者多個位錯誤。

以這種方式,也可以檢測在地址信號系統(tǒng)中的故障;因此,從功能安全性的觀點來看,實施例2很好。

參照圖15,對存儲ecc的區(qū)域執(zhí)行“adr反轉(zhuǎn)”的實施例1的情況下,對在按照與圖14相同的方式來執(zhí)行數(shù)據(jù)的寫入和讀取時的操作做出闡釋。

(1)將數(shù)據(jù)(“data5”)寫入地址adr-5(“0101”),并且將與數(shù)據(jù)配對的ecc(“ecc5”)寫入地址adr-a(“1010”)。將數(shù)據(jù)(“data1”)寫入地址adr-1(“0001”),并且將與數(shù)據(jù)配對的ecc(“ecc1”)寫入地址adr-e(“1110”)。在附圖中,它們被表示在括號中。

(2)此處,固定型1故障發(fā)生在與地址的a2位對應(yīng)的地址信號線中。因此,訪問內(nèi)部存儲器14的地址adr-0至adr-3和地址adr-8至adr-b是不可能的。

(3)目的在于重新將數(shù)據(jù)(“data2”)寫入地址adr-2(“0010”),并且將與數(shù)據(jù)配對的ecc(“ecc2”)寫入地址adr-d(“1101”)。此時,事實上,由于在(2)中已經(jīng)發(fā)生的地址信號線的故障,將數(shù)據(jù)(“data2”)寫入地址adr-6(“0110”),而不是寫入內(nèi)部存儲器14的地址adr-2(“0010”)。另一方面,將ecc(“ecc2”)正常寫入地址adr-d(“1101”)。

(4)接下來,目的在于將數(shù)據(jù)(“data6”)寫入地址adr-6(“0110”),并且將與數(shù)據(jù)配對的ecc(“ecc6”)寫入地址adr-9(“1001”)。此時,事實上,由于在(2)中已經(jīng)發(fā)生的地址信號線的故障,將ecc(“ecc6”)寫入地址adr-d(“1101”),而不是寫入內(nèi)部存儲器14的地址adr-9(“1001”)。另一方面,將數(shù)據(jù)(“data6”)正常寫入地址adr-6(“0110”)。

(4)’此時,通過數(shù)據(jù)(“data6”)來重寫在(3)中已經(jīng)寫入地址adr-6(“0110”)的數(shù)據(jù)(“data2”)。通過ecc(“ecc6”)來重寫寫入地址adr-d(“1101”)的ecc(“ecc2”)。

(5)目的在于讀取數(shù)據(jù)(“data2”)和與數(shù)據(jù)配對的ecc(“ecc2”),該數(shù)據(jù)和該ecc在(3)中已經(jīng)被寫入。

(5)’此時,事實上,從內(nèi)部存儲器14的地址adr-6(“0110”),而不是從已經(jīng)存儲有數(shù)據(jù)(“data2”)的地址adr-2(“0010”)讀取數(shù)據(jù)(“data6”)。這是因為在該地址adr-6(“0110”)處,在(3)中一旦寫入數(shù)據(jù)(“data2”),就可以在(4)’中重寫數(shù)據(jù)(“data6”)。從已經(jīng)存儲有ecc(“ecc2”)的地址adr-d(“1101”)讀取ecc(“ecc6”)。這是因為在該地址adr-d(“1101”)處,在(3)中一旦寫入ecc(“ecc2”),就可以在(4)’中重寫ecc(“ecc6”)。即,讀取在(3)中未被寫入的數(shù)據(jù)的數(shù)據(jù)(“data6”)和不與數(shù)據(jù)配對的ecc(“ecc6”)。

(6)結(jié)果,包括在rdt轉(zhuǎn)換電路140中的ecc檢查電路142認(rèn)為數(shù)據(jù)(“data6”)與ecc(“ecc6”)形成正常對。因此,只要位錯誤還未發(fā)生在數(shù)據(jù)中,將故障檢測為一位錯誤或者二位或者更多位錯誤就是不可能的。

圖14示出了在固定型1故障(固定至1)發(fā)生在待輸入到內(nèi)部存儲器14中的地址信號的a2位中時的操作。然而,根據(jù)實施例2,同樣可以檢測地址信號線的故障,即使在固定型0故障(固定至0)發(fā)生在a2位中時、或者在固定型1故障或者固定型0故障發(fā)生在其它地址(具體為a1位和a0位)中時。

至于圖11所示的n=3的情況,圖16是表格,該表格示出了超過8行的(按照從上起的順序編號為“0”至“7”)地址信號的低階3位a2至a0的值,約8個不同對“data0”與“ecc0”、“data1”與“ecc1”、……、以及“data7”與“ecc7”。在圖16中,將由在讀取數(shù)據(jù)時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(數(shù)據(jù))”,并且將由在讀取ecc時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(ecc)”。與圖13一樣,該表格從左到右示出了發(fā)生了7種不同的故障(1)至(7)的情況。固定型1故障已經(jīng)發(fā)生在存在于該表格的第三行(編號為2)中的左側(cè)的第二故障示例中的地址的a2位中的情況與圖14所示的情況對應(yīng)。

按照順序?qū)⒃诿總€位的位置處的三個值(0或者1)設(shè)置為a2至a0的值。在其值已經(jīng)因故障而改變的位的位置處的值下面劃線。

圖16所示的表格的第三行(編號為2)是示出了同時存儲有待在圖14的(3)中被寫入的數(shù)據(jù)(“data2”)和與數(shù)據(jù)配對的ecc(“ecc2”)的地址的行。當(dāng)故障還未發(fā)生在地址的所有位中時,地址具有在最左邊分別示出的adr-2的低階3位(“010”)、和adr-c的低階3位(“100”)。在圖16所示的表格中,a2至a0的這些值的對被虛線包圍。

此處,當(dāng)固定型1故障發(fā)生在a2位中時,在表格的右方立即示出地址,其中,地址(數(shù)據(jù))的adr-2受到故障的影響變成不同的adr-6(低階3位是“110”),并且在不受故障影響的情況下,地址(ecc)的adr-c(低階3位是“100”)保持為adr-c。在表格中,在a2至a0的這些值的對的故障的影響之后的值被虛線包圍,并且,同時,在a2至a0的這些值的對的故障的影響之后的值中的每一個中被實際訪問的地址(數(shù)據(jù))和地址(ecc)被實線包圍并且在表格中用粗線聯(lián)接。因此,訪問數(shù)據(jù)(“data6”)和ecc(“ecc2”)。即,要理解,數(shù)據(jù)與ecc的配對已經(jīng)崩潰,如圖14的(5)’所示。

除了在第三行中的受到a2至a0的值的對的故障的影響之后的值之外,在表格中的第1行、第5行和第7行中的受到a2至a0的值的對的故障的影響之后的值也被虛線包圍。然而,在這4行中示出的a2至a0的值中的兩個的對是四類地址的組合:adr-6(低階3位是“110”)或者adr-4(低階3位是“100”)的地址(數(shù)據(jù))、和adr-c(低階3位是“100”)或者adr-d(低階3位是“101”)的地址(ecc)。因此,如圖14的(4)’所示,即使當(dāng)將數(shù)據(jù)和ecc的對寫入與初始對不同的地址(數(shù)據(jù))和地址(ecc)時,也可以重寫初始對的數(shù)據(jù)和ecc中的一個;然而,不會同時重寫數(shù)據(jù)和ecc。

針對相同的第三行的右方,作為另一示例,在固定型1故障發(fā)生在a1位中的情況和固定型1故障發(fā)生在a0位中的情況下,按照與上述方式相同的方式來示出a2至a0的值的對。在兩種情況下,數(shù)據(jù)與ecc的配對顯然都已經(jīng)崩潰。顯然也不會發(fā)生同時重寫數(shù)據(jù)和ecc。

作為其它示例,在圖16所示的表格的第6行(編號為5)中,涉及存儲有數(shù)據(jù)(“data5”)和與數(shù)據(jù)配對的ecc(“ecc5”)中的一個的地址,同樣,示出了固定型0故障發(fā)生在a2位中的情況、固定型0故障發(fā)生在a1位中的情況、和固定型0故障發(fā)生在a0位中的情況。在情況中的任何一種情況下,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。不會發(fā)生同時重寫初始對的數(shù)據(jù)和ecc。通過該表格,顯而易見的是,當(dāng)固定型故障發(fā)生在地址的位中的任何一個中時,肯定可以檢測到故障。

關(guān)于對存儲ecc的區(qū)域執(zhí)行“adr反轉(zhuǎn)”的實施例1的情況,與圖16一樣,圖17是表格,該表格示出了a2至a0的值,作為地址(數(shù)據(jù))和地址(ecc)的低階3位。固定型1故障已經(jīng)發(fā)生存在于該表的第三行(編號為2)中的左方的第二故障示例中的地址的a2位中的情況與圖15所示的情況對應(yīng)。

在目前的情況下,通過圖17所示的表格,當(dāng)在固定型故障發(fā)生在地址的任何位中之后執(zhí)行數(shù)據(jù)的寫入和讀取時,地址(數(shù)據(jù))和地址(ecc)的對變得與初始對不同,但是與地址(數(shù)據(jù))和地址(ecc)的另一不同對一致(即,地址變得退化)。因此,在讀取數(shù)據(jù)時或許不能檢測地址信號線的故障。

在這種情況下,顯而易見的是,可以忽略地址信號線的故障,因為地址(數(shù)據(jù))和地址(ecc)的兩類對會使彼此退化。然而,當(dāng)計算在退化之前的地址(數(shù)據(jù))和地址(ecc)的兩類對中的每一類的a2至a0的3位地址奇偶性時,一類的值變成“0”并且另一類的值變成“1”。因此,可以通過利用這一事實來區(qū)分兩類。即,可以設(shè)計為使得即使在這種情況下,也肯定可以檢測到故障。

例如,由連續(xù)的(000或111)三個地址奇偶性值組成的3位可以用作被附加到5位ecc的虛擬高階3位。即,在地址(數(shù)據(jù))的a2至a0的3位地址中,當(dāng)包括奇數(shù)“1”時,生成“111”作為虛擬位,并且當(dāng)包括偶數(shù)“1”時,生成“000”作為虛擬位。當(dāng)讀取ecc時,ecc檢查電路142確定3位中的每一個的大多數(shù)值中的頻遇值是地址奇偶性的值。然后,取決于確定的值是否是“0”或者“1”,ecc檢查電路142對數(shù)據(jù)和ecc的對在右方的事實和因地址信號線的故障來同時重寫在初始對中的數(shù)據(jù)和ecc的事實進(jìn)行區(qū)分。以這種方式,ecc檢查電路142檢測地址信號線的故障。

更具體地,當(dāng)采用這種故障檢測方法時,也在ecc生成電路131和ecc檢查電路142中輸入從總線主控器輸入的地址信號。然后,ecc生成電路131基于由輸入的地址信號指示的地址來生成虛擬位。ecc檢查電路142基于由輸入的地址信號指示的地址來生成地址奇偶性,并且確定生成的地址奇偶性是否與從被附加加到從內(nèi)部存儲器14輸入的ecc的虛擬位確定的地址奇偶性一致。然后,當(dāng)進(jìn)行比較的地址奇偶性不一致時,ecc檢查電路142確定地址信號線發(fā)生故障,并且輸出通知錯誤的錯誤通知信號(例如,值為“1”)。

此處,ecc生成電路131可以將地址奇偶性的值設(shè)置為一位或者二位,但不將其設(shè)置為虛擬位的所有3位。然后,ecc檢查電路142可以根據(jù)一位或者二位的值來確定地址奇偶性的值。在這種情況下,然而,雖然可以校正數(shù)據(jù),但是當(dāng)一位錯誤發(fā)生并且改變了地址奇偶性的值時,發(fā)出通知無法校正的錯誤發(fā)生的錯誤通知信號(例如,值為“1”)。因此,如上所述,優(yōu)選將地址奇偶性的值設(shè)置為虛擬位的所有3位。

對從總線主控器輸入的n位地址信號的所有位被旋轉(zhuǎn)(移位)的示例做出上述闡釋。本發(fā)明并不限于該示例。例如,如果n位地址信號的規(guī)定的數(shù)量的位(任何數(shù)量的n位至1位)被旋轉(zhuǎn),那么獲得某種程度的效果。與上述情況一樣,可以將該規(guī)定的數(shù)量的位設(shè)置為高階位、低階位、連續(xù)位、或者非連續(xù)位。然而,如上所述,優(yōu)選通過使n位地址信號的所有位旋轉(zhuǎn),可以檢測多個故障。

如上所述,在實施例2中,adr轉(zhuǎn)換電路120通過重排除了第一地址(與(n+1)位地址對應(yīng))的至少一個位的值之外的位(與低階n位對應(yīng))中的規(guī)定的數(shù)量的位,來生成地址作為第二地址。在上述示例中,adr轉(zhuǎn)換電路120通過重排除了第一地址的至少一個位的值之外的所有位(n個位),來生成地址作為第二地址。更具體地,adr轉(zhuǎn)換電路120通過使除了第一地址的至少一個位的值之外的所有位(n個位)在高階方向上移位規(guī)定數(shù)量的位(在上述示例中為1個位),來生成地址作為第二地址。

因此,當(dāng)在已經(jīng)將數(shù)據(jù)和由數(shù)據(jù)生成的ecc的對寫入在內(nèi)部存儲器14之后固定型故障(固定至0或者1)發(fā)生在通向內(nèi)部存儲器14的地址信號線中的任何一條中時,可以在讀取寫入數(shù)據(jù)時檢測地址信號線的故障。

這對兩條或者多條地址信號線的故障同樣有效。還可以檢測影響地址的值的故障,這發(fā)生在adr轉(zhuǎn)換電路120中以生成和輸出待輸入到內(nèi)部存儲器14中的地址信號,并且發(fā)生在內(nèi)部存儲器14中的地址信號處理電路中。

此外,根據(jù)實施例2,即使當(dāng)在固定型故障(固定至0或者1)發(fā)生在地址信號線中的任何一條中之后執(zhí)行數(shù)據(jù)的寫入和讀取時,由于重寫數(shù)據(jù)和ecc兩者,在沒有忽略地址信號線的故障的情況下,也肯定可以檢測到故障。

<實施例3>

接下來,參照附圖闡釋實施例3的配置和操作。根據(jù)實施例3的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。根據(jù)實施例3的i/f轉(zhuǎn)換電路13的配置和操作與圖9所示的根據(jù)實施例2的i/f轉(zhuǎn)換電路13的配置和操作基本上相同。因此,省略了對其的闡釋。然而,在實施例3中,包括在i/f轉(zhuǎn)換電路13中的adr轉(zhuǎn)換電路120中的adr旋轉(zhuǎn)電路123與根據(jù)實施例2的adr旋轉(zhuǎn)電路123不同。

接下來,參照圖18,闡釋根據(jù)實施例3的adr旋轉(zhuǎn)電路123的配置。此處,闡釋了具有n個位的地址信號的示例。在下文中,為了對在實施例2和實施例3中的地址的旋轉(zhuǎn)進(jìn)行區(qū)分,在實施例3中將地址的位的旋轉(zhuǎn)表示為“adr旋轉(zhuǎn)2”,并且在實施例2中將地址的位的旋轉(zhuǎn)表示為“adr旋轉(zhuǎn)”。

根據(jù)實施例2的adr旋轉(zhuǎn)電路123使由地址信號指示的地址向左旋轉(zhuǎn)(至高階位方向)了一個位,以重排n位地址信號線的每個位的位置。與此相反,在實施例3中,使地址旋轉(zhuǎn)至相反方向。即,根據(jù)實施例3的adr旋轉(zhuǎn)電路123使地址向右旋轉(zhuǎn)(至低階位方向)了一個位。

如圖18所示,這是通過使n位地址信號線在輸入階段和在輸出階段在adr旋轉(zhuǎn)電路123中的每個位位置移位和耦合來實現(xiàn)的。即,將輸入到adr旋轉(zhuǎn)電路123中的n位地址信號的每個位a0、a1、a2、……、a(n-1)設(shè)置為待從adr旋轉(zhuǎn)電路123輸出的n位地址信號的每個位a’(n-1)、a’0、a’1、……、a’(n-2)。同樣,在該adr旋轉(zhuǎn)電路123中,n位地址信號線的每個位的信號由n個緩沖器1230中的每一個接收,并且使連接目的地的位位置移位。

接下來,參照圖19,闡釋根據(jù)實施例3的內(nèi)部存儲器14的存儲器映射的配置。與圖11所示的根據(jù)實施例2的內(nèi)部存儲器14一樣,此處,對內(nèi)部存儲器14的數(shù)據(jù)寬度是8個位、內(nèi)部存儲器14的地址寬度是(n+1)個位、內(nèi)部存儲器14的數(shù)據(jù)量是(8×2(n+1))個位,并且n=3的示例做出闡釋。

在實施例3中,針對存儲有數(shù)據(jù)的地址的低階n位(圖19中的a2至a0)的值,存儲有與數(shù)據(jù)配對的ecc的地址的低階n位的值是通過圖18所示的adr旋轉(zhuǎn)電路123(a2至a0的值被標(biāo)記為圖19中的“adr旋轉(zhuǎn)2”的部分)的操作來重排每個位置而獲得的值。

即,如圖19所示,地址adr-0(“0000”)的數(shù)據(jù)(“data0”)與地址adr-8(“1000”)的ecc(“ecc0”)配成一對。地址adr-1(“0001”)的數(shù)據(jù)(“data1”)與地址adr-c(“1100”)的ecc(“ecc1”)配成一對。地址adr-2(“0010”)的數(shù)據(jù)(“data2”)與地址adr-9(“1001”)的ecc(“ecc2”)配成一對。地址adr-3(“0011”)的數(shù)據(jù)(“data3”)與地址adr-d(“1101”)的ecc(“ecc3”)配成一對。地址adr-4(“0100”)的數(shù)據(jù)(“data4”)與地址adr-a(“1010”)的ecc(“ecc4”)配成一對。地址adr-5(“0101”)的數(shù)據(jù)(“data5”)與地址adr-e(“1110”)的ecc(“ecc5”)配成一對。地址adr-6(“0110”)的數(shù)據(jù)(“data6”)與地址adr-b(“1011”)的ecc(“ecc6”)配成一對。地址adr-7(“0111”)的數(shù)據(jù)(“data7”)與地址adr-f(“1111”)的ecc(“ecc7”)配成一對。

與實施例1和實施例2一樣,通過將虛擬位(例如,值為“0”)添加至高階3位來將ecc改變?yōu)?位數(shù)據(jù),并且將ecc存儲在內(nèi)部存儲器14中。與實施例1和實施例2一樣,當(dāng)讀取數(shù)據(jù)時,肯定可以檢測到因在寫入數(shù)據(jù)(8位)的8條信號線當(dāng)中的任何一條或者多條線的故障(斷開連接)而產(chǎn)生的值改變,作為在ecc檢查電路142中的一位錯誤或者二位錯誤。上述情況也適用于讀取數(shù)據(jù)(8位)的8條信號線的故障(斷開連接)。

至于圖19所示的n=3的情況,圖20是表格,該表格示出了超過8行的(按照從上面起的順序編號為“0”至“7”)地址信號的低階3位a2至a0的值,約8個不同對“data0”與“ecc0”、“data1”與“ecc1”、……、以及“data7”與“ecc7”。在圖20中,將由在讀取數(shù)據(jù)時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(數(shù)據(jù))”,并且將由在讀取ecc時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(ecc)”。

該表格從左到右示出了以下7種不同的情況:

(1)沒有故障發(fā)生在地址的所有位中的情況;

(2)固定型1故障發(fā)生在地址的a2位中的情況;

(3)固定型0故障發(fā)生在地址的a2位中的情況;

(4)固定型1故障發(fā)生在地址的a1位中的情況;

(5)固定型0故障發(fā)生在地址的a1位中的情況;

(6)固定型1故障發(fā)生在地址的a0位中的情況;以及

(7)固定型0故障發(fā)生在地址的a0位中的情況。

按照順序?qū)⒃诿總€位的位置處的三個值(0或者1)設(shè)置為a2至a0的值。在其值已經(jīng)因故障而改變的位的位置處的值下面劃線。

圖20所示的表格的第二行(編號為1)是示出了同時存儲有數(shù)據(jù)(“data1”)和與數(shù)據(jù)配對的ecc(“ecc1”)的地址的行。當(dāng)故障還未發(fā)生在地址的所有位中時,地址具有在最左邊分別示出的adr-1的低階3位(“001”)、和adr-c的低階3位(“100”)。在圖20所示的表格中,a2至a0的這些值的對被實線包圍。

此處,當(dāng)固定型1故障發(fā)生在a2位中時,在表格的右方立即示出地址,其中,地址(數(shù)據(jù))的adr-1受到故障的影響變成不同的adr-5(低階3位是“101”),并且地址(ecc)的adr-c(低階3位是“100”)不受故障影響。在表格中,在a2至a0的這些值的對的故障的影響之后的值被虛線包圍,并且,同時,在a2至a0的這些值的對的故障的影響之后的值中的每一個中被實際訪問的地址(數(shù)據(jù))和地址(ecc)被實線包圍并且在表格中用粗線聯(lián)接。因此,訪問數(shù)據(jù)(“data5”)和ecc(“ecc1”)。即,數(shù)據(jù)與ecc的配對顯然已經(jīng)崩潰。

同樣,作為其它示例,在表格中的進(jìn)一步右方示出了固定型1故障發(fā)生在a1位中的情況和固定型1故障發(fā)生在a0位中的情況,其中,按照與上述方式相同的方式來示出a2至a0的值的對。顯然,在兩種情況下,數(shù)據(jù)與ecc的配對都已經(jīng)崩潰。

作為其它示例,在圖20所示的表格的第7行(編號為6)中涉及同時存儲有數(shù)據(jù)(“data6”)和與數(shù)據(jù)配對的ecc(“ecc6”)的地址,同樣,示出了固定型0故障發(fā)生在a2位中的情況、固定型0故障發(fā)生在a1位中的情況、和固定型0故障發(fā)生在a0位中的情況。在情況中的任何一種情況下,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。通過該表格,顯而易見的是,當(dāng)固定型故障發(fā)生在地址的位中的任何一個中時,肯定可以檢測到故障。

至于圖19所示的n=3的情況,圖21是表格,該表格示出了超過8行的(按照從上面起的順序編號為“0”至“7”)地址信號的低階3位a2至a0的值,約8個不同對“data0”與“ecc0”、“data1”與“ecc1”、……、以及“data7”與“ecc7”。在圖21中,將由在讀取數(shù)據(jù)時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(數(shù)據(jù))”,并且將由在讀取ecc時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(ecc)”。與圖20一樣,該表格從左到右示出了發(fā)生了7種不同的故障(1)至(7)的情況。

圖21所示的表格的第三行(編號為2)是示出了同時存儲有數(shù)據(jù)(“data2”)和與數(shù)據(jù)配對的ecc(“ecc2”)的地址的行。當(dāng)故障還未發(fā)生在地址的所有位中時,地址是在最左邊分別示出的adr-2的低階3位(“010”)、和adr-9的低階3位(“001”)。在圖21所示的表格中,a2至a0的這些值的對被虛線包圍。

此處,當(dāng)固定型1故障發(fā)生在a2位中時,在表格的右方立即示出地址,其中,地址(數(shù)據(jù))的adr-2受到故障的影響變成不同的adr-6(低階3位是“110”),并且地址(ecc)的adr-9(低階3位是“001”)受到故障的影響變成不同的adr-d(低階3位是“101”)。在表格中,在a2至a0的這些值的對的故障的影響之后的值被虛線包圍,并且,同時,在a2至a0的這些值的對的故障的影響之后的值中的每一個中被實際訪問的地址(數(shù)據(jù))和地址(ecc)被實線包圍并且在表格中用粗線聯(lián)接。因此,訪問數(shù)據(jù)(“data6”)和ecc(“ecc3”)。即,顯然,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。

除了在第三行中的受到a2至a0的值的對的故障的影響之后的值之外,在表格中的第5行、第7行和第8行中的受到a2至a0的值的對的故障的影響之后的值也被虛線包圍。然而,在這4行中示出的a2至a0的值中的兩個的對是四類地址的組合:adr-6(低階3位是“110”)或者adr-7(低階3位是“111”)的地址(數(shù)據(jù))、和adr-d(低階3位是“101”)或者adr-f(低階3位是“111”)的地址(ecc)。因此,即使當(dāng)將數(shù)據(jù)和ecc的對寫入與初始對不同的地址(數(shù)據(jù))和地址(ecc)時,也可以重寫初始對的數(shù)據(jù)和ecc中的一個;然而,不會同時重寫數(shù)據(jù)和ecc。

針對相同的第三行的右方,作為其它示例,示出了固定型1故障發(fā)生在a1位中的情況和固定型1故障發(fā)生在a0位中的情況,其中,按照與上述方式相同的方式來示出a2至a0的值的兩個的對。顯然,在兩種情況下,數(shù)據(jù)與ecc的配對都已經(jīng)崩潰。同樣,顯然,不會發(fā)生同時重寫數(shù)據(jù)和ecc。

作為其它示例,在圖21所示的表格的第6行(編號為5)中,涉及同時存儲有數(shù)據(jù)(“data5”)和與數(shù)據(jù)配對的ecc(“ecc5”)的地址,同樣,示出了固定型0故障發(fā)生在a2位中的情況、固定型0故障發(fā)生在a1位中的情況、和固定型0故障發(fā)生在a0位中的情況。在情況中的任何一種情況下,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。不會發(fā)生同時重寫初始對的數(shù)據(jù)和ecc。通過該表格,顯而易見的是,當(dāng)固定型故障發(fā)生在地址的位中的任何一個中時,肯定可以檢測到故障。

同樣,在實施例3中,可以使n位地址信號的規(guī)定的數(shù)量的位(n位至1位)旋轉(zhuǎn),如實施例2所闡釋的。

如上所述,在實施例3中,adr轉(zhuǎn)換電路120通過重排除了第一地址(與(n+1)位地址對應(yīng))的至少一個位的值之外的位(與低階n位對應(yīng))中的規(guī)定的數(shù)量的位,來生成地址作為第二地址。在上述示例中,adr轉(zhuǎn)換電路120通過重排除了第一地址的至少一個位的值之外的所有位(n個位),來生成地址作為第二地址。更具體地,adr轉(zhuǎn)換電路120通過使除了第一地址的至少一個位的值之外的所有位(n個位)在高階方向上移位規(guī)定數(shù)量的位(在上述示例中為1個位),來生成地址作為第二地址。

因此,獲得與實施例2相同的效果。即,當(dāng)在已經(jīng)將數(shù)據(jù)和由數(shù)據(jù)生成的ecc的對寫入在內(nèi)部存儲器14之后固定型故障(固定至0或者1)發(fā)生在通向內(nèi)部存儲器14的地址信號線中的任何一條中時,可以在讀取寫入數(shù)據(jù)時檢測地址信號線的故障。

此外,根據(jù)實施例3,即使當(dāng)在固定型故障(固定至0或者1)發(fā)生在地址信號線中的任何一條中之后執(zhí)行數(shù)據(jù)的寫入和讀取時,由于重寫數(shù)據(jù)和ecc兩者,在沒有忽略地址信號線的故障的情況下,也肯定可以檢測到故障。

<實施例4>

接下來,參照附圖闡釋實施例4的配置和操作。根據(jù)實施例4的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。然而,在實施例4中,包括在cpu系統(tǒng)1中的i/f轉(zhuǎn)換電路13的一部分的配置和操作與根據(jù)實施例1的i/f轉(zhuǎn)換電路13的配置和操作不同。

接下來,參照圖22,闡釋根據(jù)實施例4的i/f轉(zhuǎn)換電路13的配置。與根據(jù)實施例1的i/f轉(zhuǎn)換電路13相比較,根據(jù)實施例4的i/f轉(zhuǎn)換電路13包括adr位順序反轉(zhuǎn)電路124來代替在adr轉(zhuǎn)換電路120中的adr反轉(zhuǎn)電路121。根據(jù)實施例4的i/f控制電路110、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140的配置和操作與根據(jù)實施例1的對應(yīng)部分的配置和操作相同。

將從總線主控器輸出的地址信號輸入到adr位順序反轉(zhuǎn)電路124中。adr位順序反轉(zhuǎn)電路124使由輸入的地址信號指示的地址的所有位的布置順序反轉(zhuǎn),并且將反轉(zhuǎn)地址輸出至選擇器122。因此,在實施例4中,選擇器122選擇從總線主控器輸出的地址信號和從adr位順序反轉(zhuǎn)電路124輸出的地址信號中的一個,并且將選擇的地址信號輸出至內(nèi)部存儲器14。

參照圖23,下面闡釋根據(jù)實施例4的包括在adr轉(zhuǎn)換電路120中的adr位順序反轉(zhuǎn)電路124的配置。此處,闡釋了具有n個位的地址信號的示例。

在實施例2中,為了重排n位地址信號的位,使地址向左旋轉(zhuǎn)(至高階位方向)了一個位,并且在實施例3中,使地址向右旋轉(zhuǎn)(至低階位方向)了一個位。與此相反,在實施例4中,重排地址信號的每個位在倒置方向上的位置,以使位的順序反轉(zhuǎn)。即,adr位順序反轉(zhuǎn)電路124使地址信號的n個位的布置順序反轉(zhuǎn)。

如圖23所示,這是通過使n位地址信號線在輸入階段和在輸出階段在adr位順序反轉(zhuǎn)電路124中的每個位位置移位和耦合來實現(xiàn)的。即,將輸入到adr位順序反轉(zhuǎn)電路124中的n位地址信號的每個位a0、a1、a2、……、a(n-2)、a(n-1)設(shè)置為待從adr位順序反轉(zhuǎn)電路124輸出的n位地址信號的每個a’(n-1)、a’(n-2)、……、a’1、a’2、和a’0。在該adr位順序反轉(zhuǎn)電路124中,n位地址信號線的每個位的信號由n個緩沖器1240中的每一個接收,并且使連接目的地的位位置移位。

然而,必須重排n位地址的所有位的位置。因此,在實施例4中,假設(shè)n是偶數(shù)。例如,在n=4的情況下,adr位順序反轉(zhuǎn)電路124的配置如圖24所示。

同樣,在實施例4中,如實施例2和實施例3所闡釋的,也優(yōu)選重排n位地址信號的規(guī)定的數(shù)量的位(n個位至1個位中的一個)。

如上所述,在實施例4中,adr轉(zhuǎn)換電路120通過重排除了第一地址(與(n+1)位地址對應(yīng))的至少一個位的值之外的位(與低階n位對應(yīng))中的規(guī)定的數(shù)量的位,來生成地址作為第二地址。更具體地,adr轉(zhuǎn)換電路120通過重排除了第一地址的至少一個位的值之外的所有位(n個位),來生成地址作為第二地址。在上述示例中,adr轉(zhuǎn)換電路120通過使除了第一地址的至少一個位的值之外的所有位(n個位)的布置順序反轉(zhuǎn),來生成地址作為第二地址。

因此,顯然,獲得與實施例2和實施例3完全相同的效果。因此,省略了對其的詳細(xì)闡釋。

在上面闡釋的實施例2、實施例3、和實施例4中,共同點在于,與數(shù)據(jù)配對的ecc的地址由地址重排電路(諸如adr旋轉(zhuǎn)電路123或adr位順序反轉(zhuǎn)電路124)轉(zhuǎn)換。

存在重排n位地址的所有位的位置的地址重排方法的多種模式。此處,假設(shè)模式數(shù)量是sn(在sn中的“n”是輸入到上述i/f轉(zhuǎn)換電路13中的地址信號的位的數(shù)量)。在n=2的情況下,僅僅存在圖25所示的一個模式(s2=1)。在n=3的情況下,存在圖26所示的兩個模式(s3=2)。在圖26上方示出的第一模式與實施例2所示的“adr旋轉(zhuǎn)”對應(yīng)。圖26所示的第二模式與實施例3所示的“adr旋轉(zhuǎn)2”對應(yīng)。

在n=4的情況下,存在圖27所示的9個模式(s4=9)。在左手邊的一列的上方的第一模式與實施例2所示的“adr旋轉(zhuǎn)”對應(yīng),第二模式與實施例3所示的“adr旋轉(zhuǎn)2”對應(yīng),并且第三模式與實施例4中的“adr位順序反轉(zhuǎn)”對應(yīng)。此處,在圖26的最下方的行中示出的三個模式是每兩個位被重排的地址位的兩個集合。因此,如果故障同時發(fā)生在包括在兩個集合中的一個中的2位地址信號線中,那么存在無法執(zhí)行故障檢測的約束。

一般而言,針對n位地址(n≥3)的地址重排方法的數(shù)量由圖28所示的公式1給出。

即,如圖27所示,由adr轉(zhuǎn)換電路120執(zhí)行的地址的位的位置的重排并不限于在實施例2至4中闡釋的“adr旋轉(zhuǎn)”、“adr旋轉(zhuǎn)2”、和“adr位順序反轉(zhuǎn)”。在以下的實施例5中,闡釋通過圖27的最下行的中間的“adr旋轉(zhuǎn)3”的地址重排方法。

<實施例5>

此外,參照附圖闡釋實施例5的配置和操作。根據(jù)實施例5的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。根據(jù)實施例5的i/f轉(zhuǎn)換電路13的配置和操作與圖9所示的根據(jù)實施例2的i/f轉(zhuǎn)換電路13的配置和操作基本上相同。因此,省略了對其的闡釋。然而,在實施例5中,包括在i/f轉(zhuǎn)換電路13中的adr轉(zhuǎn)換電路120中的adr旋轉(zhuǎn)電路123的配置和操作與根據(jù)實施例2和實施例3的adr旋轉(zhuǎn)電路123的配置和操作不同。

接下來,參照圖29,闡釋根據(jù)實施例5的adr旋轉(zhuǎn)電路123的配置。此處,闡釋了具有n個位的地址信號的示例。在下文中,將根據(jù)實施例5的地址的旋轉(zhuǎn)表示為“adr旋轉(zhuǎn)3”。

根據(jù)實施例2的adr旋轉(zhuǎn)電路123使由地址信號指示的地址向左旋轉(zhuǎn)(至高階位方向)了一個位,以重排n位地址信號線的每個位的位置。在實施例3中,使地址向右旋轉(zhuǎn)(至低階位方向)了一個位。然而,在實施例5中,使地址向右旋轉(zhuǎn)(至高階位方向)了兩個位。

如圖29所示,這是通過使n位地址信號線在輸入階段和在輸出階段在adr旋轉(zhuǎn)電路123中的每個位位置移位和耦合來實現(xiàn)的。即,將輸入到adr旋轉(zhuǎn)電路123中的n位地址信號的每個位a0、a1、a2、……、a(n-1)設(shè)置為待從adr旋轉(zhuǎn)電路123輸出的n位地址信號的每個位a’(n-2)、a’(n-1)、a’0、a’1、……、a’(n-3)。同樣,在該adr旋轉(zhuǎn)電路123中,n位地址信號線的每個位的信號由n個緩沖器1230中的每一個接收,并且使連接目的地的位位置移位。

此處,在n=4的情況下,在圖30中示出配置。如通過圖30顯而易見的,在n=4的情況下,這等同于使地址向左旋轉(zhuǎn)(至低階位方向)了兩個位。這恰好與在圖27的最下方的行的中間的“adr旋轉(zhuǎn)3”所示的對應(yīng)。

接下來,參照圖31,闡釋根據(jù)實施例5的內(nèi)部存儲器14的存儲器映射的配置。此處,對內(nèi)部存儲器14的數(shù)據(jù)寬度是8個位、內(nèi)部存儲器14的地址寬度是(n+1)個位、內(nèi)部存儲器14的數(shù)據(jù)量是(8×2(n+1))個位,并且n=4的示例做出闡釋。

內(nèi)部存儲器14將圖31中的左邊一半用作存儲初始數(shù)據(jù)的區(qū)域,并且將右邊一半用作存儲與初始數(shù)據(jù)配對的ecc的區(qū)域。即,將在內(nèi)部存儲器14中的區(qū)域區(qū)分為在將地址的最高階位的值(圖31中的a4)設(shè)置為“0”時存儲有數(shù)據(jù)的區(qū)域,并且區(qū)分為在將地址的最高階位的值設(shè)置為“1”時存儲有ecc的區(qū)域。

在實施例5中,針對存儲有數(shù)據(jù)的地址的低階n位(圖31中的a3至a0)的值,存儲有與數(shù)據(jù)配對的ecc的地址的低階n位的值被改變?yōu)橐环N布置,在該布置中,通過圖30所示的adr旋轉(zhuǎn)電路123(在圖31中,a3至a0的值被標(biāo)記為“adr旋轉(zhuǎn)3”的部分,即在右邊一半中示為a4=1的區(qū)域)的操作來重排每個位。

即,如圖31所示,地址adr-00(“00000”)的數(shù)據(jù)(“data0”)與地址adr-10(“10000”)的ecc(“ecc0”)配成一對。地址adr-01(“00001”)的數(shù)據(jù)(“data1”)與地址adr-14(“10100”)的ecc(“ecc1”)配成一對。地址adr-02(“00010”)的數(shù)據(jù)(“data2”)與地址adr-18(“11000”)的ecc(“ecc2”)配成一對。地址adr-03(“00011”)的數(shù)據(jù)(“data3”)與地址adr-1c(“11100”)的ecc(“ecc3”)配成一對。地址adr-04(“00100”)的數(shù)據(jù)(“data4”)與地址adr-11(“10001”)的ecc(“ecc4”)配成一對。地址adr-05(“00101”)的數(shù)據(jù)(“data5”)與地址adr-15(“10101”)的ecc(“ecc5”)配成一對。地址adr-06(“00110”)的數(shù)據(jù)(“data6”)與地址adr-19(“11001”)的ecc(“ecc6”)配成一對。地址adr-07(“00111”)的數(shù)據(jù)(“data7”)與地址adr-1d(“11101”)的ecc(“ecc7”)配成一對。可以按照與圖31相似的方式來理解在其它地址的數(shù)據(jù)(“data8”)至數(shù)據(jù)(“dataf”)中的每一個和其它地址的ecc(“ecc8”)至ecc(“eccf”)中的每一個中進(jìn)行配對的對應(yīng)關(guān)系。

在實施例2和實施例3中,假設(shè)n=3,如圖11和圖19所示,對內(nèi)部存儲器14包括存儲數(shù)據(jù)和對應(yīng)ecc中的每一個的8個地址(地址的低階3位a2至a0的組合)的示例做出闡釋。與此相反,在實施例5中,假設(shè)n=4,圖31示出了內(nèi)部存儲器14包括存儲數(shù)據(jù)和對應(yīng)ecc中的每一個的16個地址(兩倍之多)的示例。

如實施例2和實施例3所闡釋的,同樣,在實施例5中,也優(yōu)選使n位地址信號的規(guī)定的數(shù)量的位(n個位至1個位中的一個)旋轉(zhuǎn)。

如上所述,在實施例5中,adr轉(zhuǎn)換電路120通過重排除了第一地址(與(n+1)位地址對應(yīng))的至少一個位的值之外的位(與低階n位對應(yīng))中的規(guī)定的數(shù)量的位,來生成地址作為第二地址。在上述示例中,adr轉(zhuǎn)換電路120通過重排除了第一地址的至少一個位的值之外的所有位(n個位),來生成地址作為第二地址。更具體地,adr轉(zhuǎn)換電路120通過使除了第一地址的至少一個位的值之外的所有位(n個位)在高階方向上移位規(guī)定數(shù)量的位(在上述示例中為2個位),來生成地址作為第二地址。

因此,顯然,獲得與實施例2至實施例4完全相同的效果。因此,省略了對其的詳細(xì)闡釋。

<實施例6>

接下來,參照附圖闡釋實施例6的配置和操作。根據(jù)實施例6的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。然而,在實施例6中,包括在cpu系統(tǒng)1中的i/f轉(zhuǎn)換電路13的一部分的配置和操作與根據(jù)實施例1的i/f轉(zhuǎn)換電路13的配置和操作不同。

接下來,參照圖32,闡釋根據(jù)實施例6的i/f轉(zhuǎn)換電路13的配置。與根據(jù)實施例1的i/f轉(zhuǎn)換電路13相比較,根據(jù)實施例6的i/f轉(zhuǎn)換電路13包括adr移位&偏移設(shè)置電路125來代替在adr轉(zhuǎn)換電路120中的adr反轉(zhuǎn)電路121。根據(jù)實施例6的i/f控制電路110、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140的配置和操作與根據(jù)實施例1的對應(yīng)部分的配置和操作相同。

將從總線主控器輸出的地址信號和2位偏移信號輸入到adr移位&偏移設(shè)置電路125中。adr移位&偏移設(shè)置電路125使輸入的地址信號的規(guī)定的多個位移位,將其它位修改為由偏移信號指示的偏移值,并且將修改后的地址信號輸出至選擇器122。因此,在實施例6中,選擇器122選擇從總線主控器輸出的地址信號和從adr移位&偏移設(shè)置電路125輸出的地址信號中的一個,并且將選擇的地址信號輸出至內(nèi)部存儲器14。

接下來,參照圖33,闡釋根據(jù)實施例6的包括在adr轉(zhuǎn)換電路120中的adr移位&偏移設(shè)置電路125的配置。此處,對假設(shè)地址信號為n位并且偏移信號為m位(m=2)的示例做出闡釋。

如圖33所示,根據(jù)實施例6的adr移位&偏移設(shè)置電路125與圖29所示的根據(jù)實施例5的adr旋轉(zhuǎn)電路123的不同在于,由偏移信號指示的2個位用于高階2位,代替使用以另外的方式被移位到高階2位的低階2位(a1和a0)。

即,adr移位&偏移設(shè)置電路125包括偏移設(shè)置寄存器1251。將2位偏移信號取回到偏移設(shè)置寄存器1251,作為偏移值。將存儲在偏移設(shè)置寄存器1251中的2位偏移值中的每一個從adr移位&偏移設(shè)置電路125輸出,作為n位地址信號的高階2位。

因此,分別將由輸入到adr移位&偏移設(shè)置電路125中的n位地址信號指示的地址的高階(n-m)位的a2、……、a(n-1)設(shè)置為待從adr移位&偏移設(shè)置電路125輸出的n位地址信號的低階(n-m)位的a’0、a’1、……、a’(n-3)。分別將由輸入到adr移位&偏移設(shè)置電路125中的偏移信號指示的偏移值的b(n-2)和b(n-1)設(shè)置為待從adr移位&偏移設(shè)置電路125輸出的n位地址信號的剩余的高階m位的a’(n-2)和a’(n-1)。

同樣,在adr移位&偏移設(shè)置電路125中,來自a2至a(n-1)的(n-m)位地址信號線的每個位的信號由(n-m)個緩沖器1250中的每一個接收,并且使連接目的地的位位置移位。

此處,在n=4的情況下,adr移位&偏移設(shè)置電路125如圖34所示的一樣配置。即,分別將輸入到adr移位&偏移設(shè)置電路125中的地址信號的高階2位(a2和a3)設(shè)置為待從adr移位&偏移設(shè)置電路125輸出的地址信號的低階2位(a’0和a’1)。分別將輸入到adr移位&偏移設(shè)置電路125中的偏移信號的2個位(b2和b3)設(shè)置為待從adr移位&偏移設(shè)置電路125輸出的地址信號的高階2位(a’2和a’3)。

接下來,參照圖35,闡釋根據(jù)實施例6的內(nèi)部存儲器14的存儲器映射的配置。此處,對內(nèi)部存儲器14的數(shù)據(jù)寬度是8個位、內(nèi)部存儲器14的地址寬度是(n+1)個位、內(nèi)部存儲器14的數(shù)據(jù)量是(8×2(n+1))個位,并且n=4的示例做出闡釋。

內(nèi)部存儲器14將圖35中的左邊一半用作存儲初始數(shù)據(jù)的區(qū)域,并且將右邊一半的一部分用作存儲與初始數(shù)據(jù)配對的ecc的區(qū)域。即,將在內(nèi)部存儲器14中的區(qū)域區(qū)分為在將地址的最高階位的值(圖35中的a4)設(shè)置為“0”時存儲有數(shù)據(jù)的區(qū)域,并且區(qū)分為在將地址的最高階位的值設(shè)置為“1”時存儲有ecc的區(qū)域。

在實施例6中,針對存儲有數(shù)據(jù)的地址的低階n位(圖35中的a3至a0)的值,存儲有與數(shù)據(jù)配對的ecc的地址的低階n位的值被改變?yōu)槲恢?,該位值是通過圖34所示的adr移位&偏移設(shè)置電路125(在圖35中a3至a0的值被標(biāo)記為“adr移位&偏移設(shè)置”的部分、或者在右邊一半的一部分中示為a4=1的區(qū)域當(dāng)中的a3=1和a2=1的區(qū)域)的操作來轉(zhuǎn)換的。即,示出了將由偏移信號指示的2位偏移值的位b2和b3來自設(shè)置為“1”的示例。

即,如圖35所示,地址adr-00(“00000”)至adr-03(“00011”)的數(shù)據(jù)(“data0”至“data3”)與地址adr-1c(“11100”)的ecc(“ecc0(0、1、2、3)”)配成一對。地址adr-04(“00100”)至adr-07(“00111”)的數(shù)據(jù)(“data4”至“data7”)與地址adr-1d(“11101”)的ecc(“ecc1(4、5、6、7)”)配成一對。地址adr-08(“01000”)至adr-0b(“01011”)的數(shù)據(jù)(“data8”至“datab”)與地址adr-1e(“11110”)的ecc(“ecc2(8、9、a、b)”)配成一對。地址adr-0c(“01100”)至adr-0f(“01011”)的數(shù)據(jù)(“datac”至“dataf”)與地址adr-1f(“11111”)的ecc(“ecc3(c、d、e、f)”)配成一對。即,都將偏移值的2個位設(shè)置為“1”;因此,不使用adr-10(“10000”)至adr-1b(“11011”)的12個地址。

此處,在實施例1至實施例5中,5位ecc由8位數(shù)據(jù)生成,并且通過將虛擬位(值為0)附加到高階3位而被改變?yōu)?位數(shù)據(jù),然后被存儲在內(nèi)部存儲器14中。然而,在實施例6中,7位ecc由32位(四個地址)數(shù)據(jù)生成,并且通過將虛擬位(值為0)附加到最高階的一個位而被改變?yōu)?位數(shù)據(jù),然后被存儲在內(nèi)部存儲器14中。

因此,在實施例6中,當(dāng)將32位數(shù)據(jù)寫入內(nèi)部存儲器14中時,總線主控器以每8個位的四個步驟來寫入32位數(shù)據(jù),指定連續(xù)的地址。例如,當(dāng)將32位數(shù)據(jù)(“data0”至“data3”)寫入內(nèi)部存儲器14中時,第一次,總線主控器將指示地址adr-00(“00000”)的地址信號和寫入數(shù)據(jù)(“data0”)輸出至i/f轉(zhuǎn)換電路13。第二次,總線主控器將指示地址adr-01(“00001”)的地址信號和寫入數(shù)據(jù)(“data1”)輸出至i/f轉(zhuǎn)換電路13。第三次,總線主控器將指示地址adr-02(“00010”)的地址信號和寫入數(shù)據(jù)(“data2”)輸出至i/f轉(zhuǎn)換電路13。第四次,總線主控器將指示地址adr-03(“00011”)的地址信號和寫入數(shù)據(jù)(“data3”)輸出至i/f轉(zhuǎn)換電路13。

ecc生成電路131將通過四次寫入輸入的四段寫入數(shù)據(jù)組合,以生成32位數(shù)據(jù),并且基于生成的32位數(shù)據(jù)來生成ecc。ecc生成電路131通過輸出在最后一次寫入(第四次)時涉及的生成的ecc,來將生成的ecc寫入內(nèi)部存儲器14中。因此,即使第一次至第三次將不確定值寫入地址adr-1c(“11100”),在第四次寫入時也通過由32位數(shù)據(jù)生成的ecc來重寫該不確定值。因此,不會出現(xiàn)問題。

在實施例6中,當(dāng)從內(nèi)部存儲器14讀取32位數(shù)據(jù)時,總線主控器通過指定連續(xù)的地址,以每8個位的四個步驟來讀取32位數(shù)據(jù)。例如,當(dāng)從內(nèi)部存儲器14讀取32位數(shù)據(jù)(“data0”至“data3”)時,第一次,總線主控器將指示地址adr-00(“00000”)的地址信號輸出至i/f轉(zhuǎn)換電路13。第二次,總線主控器將指示地址adr-01(“00001”)的地址信號輸出至i/f轉(zhuǎn)換電路13。第三次,總線主控器將指示地址adr-02(“00010”)的地址信號輸出至i/f轉(zhuǎn)換電路13。第四次,總線主控器將指示地址adr-03(“00011”)的地址信號輸出至i/f轉(zhuǎn)換電路13。

ecc檢查電路142和錯誤檢測電路143將通過四次讀取輸入的四段讀取數(shù)據(jù)組合在一起,并且生成32位數(shù)據(jù)。ecc檢查電路142基于生成的32位數(shù)據(jù)來生成ecc,并且基于生成的ecc和第四次讀取到的ecc來檢測32位數(shù)據(jù)的錯誤。然后,根據(jù)ecc檢查電路142得出的確定結(jié)果,錯誤校正電路143實際上輸出32位數(shù)據(jù),或者,在對該32位數(shù)據(jù)進(jìn)行校正之后,將其輸出至總線主控器作為讀取數(shù)據(jù)。然而,在實施例6中,以每8個位的四個步驟來將待從錯誤校正電路143輸出的32位讀取數(shù)據(jù)輸出至總線主控器。

至于圖35所示的n=4的情況,圖36示出了地址信號的低階4位(a3至a0)的值的表格,其是關(guān)于四類對:“data0”至“data3”與“ecc0”、“data4”至“data7”與“ecc1”、“data8”至“datab”與“ecc2”、以及“datac”至“dataf”與“ecc3”。在圖36中,將由在讀取數(shù)據(jù)時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(數(shù)據(jù))”,并且將由在讀取ecc時輸入到內(nèi)部存儲器14中的地址信號指示的地址表示為“地址(ecc)”。

該表格從左到右示出了以下7種不同的情況:

(1)沒有故障發(fā)生在地址的所有位中的情況;

(2)固定型1故障發(fā)生在地址的a3位中的情況;

(3)固定型0故障發(fā)生在地址的a3位中的情況;

(4)固定型1故障發(fā)生在地址的a2位中的情況;

(5)固定型0故障發(fā)生在地址的a2位中的情況;

(6)固定型1故障發(fā)生在地址的a1位中的情況;以及

(7)固定型0故障發(fā)生在地址的a1位中的情況。

固定型1故障發(fā)生在地址的a0位中的情況和固定型0故障發(fā)生在地址的a0位中的情況中的每一種情況與固定型1故障發(fā)生在地址的a1位中的情況和固定型0故障發(fā)生在地址的a1位中的情況中的每一種情況相似。因此,從該表省略它們。按照順序?qū)⒃诿總€位的位置處的四個值(0或者1)設(shè)置為a3至a0的值。在其值已經(jīng)因故障而改變的位的位置處的值下面劃線。

圖36所示的表格的第二行(編號為4至7)是示出了同時存儲有數(shù)據(jù)(“data4”至“data7”)和與數(shù)據(jù)配對的ecc(“ecc1”)的地址的行。當(dāng)故障還未發(fā)生在地址的所有位中時,地址具有在最左邊分別示出的adr-4至adr-07的低階4位(“0100”至“0111”)、和adr-a的低階4位(“1101”)。在圖36所示的表格中,地址(數(shù)據(jù))的四個地址和地址(ecc)的單個地址的對被實線包圍。

此處,在固定型1故障發(fā)生在a3位中時的地址中,地址adr-04至adr-07(低階4位為“0100”至“0111”)受到故障影響變成不同的地址adr-0c至adr-0f(低階4位為“1100”至“1111”),并且地址adr-1d(低階4位為“1101”)不受故障影響。在表格中,在a3至a0的值的對的故障的影響之后的值被虛線包圍,并且,同時,在a3至a0的這些值的對的故障的影響之后的值中的每一個中被實際訪問的地址(數(shù)據(jù))和地址(ecc)被實線包圍并且在表格中用粗線聯(lián)接。如本文所示,訪問第四行的數(shù)據(jù)(“datac”至“dataf”)和第二行的ecc(“ecc2”)。即,顯然,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。

作為另一示例,在表格的進(jìn)一步右方示出了固定型0故障發(fā)生在a3位中的情況,其中,按照與上述方式相同的方式來示出a3至a0的值的對。在這種情況下,地址adr-1d(低階4位為“1101”)受到故障影響變成不同的地址adr-15(低階4位為“0101”),并且地址不用于存儲ecc。因此,顯然,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。

作為又一示例,在相同的第二行的最右方示出了固定型0故障發(fā)生在a1位中的情況,其中,按照與上述方式相同的方式來示出a3至a0的值的對。在這種情況下,使地址adr-04至adr-07(低階4位為“0100”至“0111”)退化為兩個地址adr-04和adr-05(低階4位為“0100”和“0101”)。因此,讀取分別存儲在地址adr-06和adr-07處的數(shù)據(jù)(“data6”)和數(shù)據(jù)(“data7”)是不可能的。因此,顯然,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。

作為又一示例,在圖36所示的表格的第三行中,涉及同時存儲有數(shù)據(jù)(“data8”至“datab”)和與數(shù)據(jù)配對的ecc(“ecc2”)的地址,同樣,示出了固定型1故障發(fā)生在a2位中的情況、固定型0故障發(fā)生在a2位中的情況、和固定型1故障發(fā)生在a1位中的情況。在情況中的任何一種情況下,數(shù)據(jù)與ecc的配對已經(jīng)崩潰。通過該表格,顯而易見的是,當(dāng)固定型故障發(fā)生在地址的位中的任何一個中時,肯定可以檢測到故障。闡釋了將偏移(2個位)都設(shè)置為“1”的情況。然而,即使在將偏移設(shè)置為其它值“0”的情況下,顯然也會獲得與上述效果相同的效果。因此,省略了對其的詳細(xì)闡釋。

此外,當(dāng)在固定型故障發(fā)生在地址的位的任何一個中之后執(zhí)行數(shù)據(jù)的寫入和讀取時,地址(數(shù)據(jù))和地址(ecc)的對變成與初始對不同的對。然而,該不同的對顯然與地址(數(shù)據(jù))和地址(ecc)(即,不會退化的地址)的另一不同對不一致。因此,不會發(fā)生同時重寫數(shù)據(jù)和ecc。因此,甚至在固定型故障發(fā)生在地址的位中的任何一個中之后,顯然也肯定可以檢測到故障。

如上所述,在實施例6中,通過在除了第一地址(與(n+1)位地址對應(yīng))的至少一個位之外的位(與低階n位對應(yīng))當(dāng)中,使從低階起除了規(guī)定的偏移位數(shù)量的位之外的位向低階方向移位偏移位數(shù)量,并且,同時,通過將從高階起偏移位數(shù)量(與m個位對應(yīng))的偏移位修改為設(shè)置偏移值,來生成地址作為第二地址。

據(jù)此,顯然會獲得與實施例2至實施例5完全相同的效果。因此,省略了對其的詳細(xì)闡釋。

<實施例7>

接下來,參照附圖闡釋實施例7的配置和操作。根據(jù)實施例7的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。根據(jù)實施例7的i/f轉(zhuǎn)換電路13的配置和操作與圖32所示的根據(jù)實施例6的i/f轉(zhuǎn)換電路13的配置和操作基本上相同。因此,省略了對其的闡釋。然而,在根據(jù)實施例7的i/f轉(zhuǎn)換電路13中,adr轉(zhuǎn)換電路120的一部分的配置和操作與根據(jù)實施例6的adr轉(zhuǎn)換電路120的配置和操作不同。根據(jù)實施例7的i/f控制電路110、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140的配置和操作與根據(jù)實施例6的對應(yīng)部分的配置和操作相同。

接下來,參照圖37,闡釋根據(jù)實施例7的adr轉(zhuǎn)換電路120的配置。

如圖37所示,與根據(jù)實施例6的adr轉(zhuǎn)換電路120相比較,根據(jù)實施例7的adr轉(zhuǎn)換電路120進(jìn)一步包括adr范圍限制電路126。

adr范圍限制電路126限制地址(數(shù)據(jù))。將從總線主控器輸入的地址信號輸入到adr范圍限制電路126中。當(dāng)在預(yù)先確定為能夠存儲數(shù)據(jù)的范圍中不包括由輸入的地址信號指示的地址時,adr范圍限制電路126對地址進(jìn)行修改,從而使其可以在范圍內(nèi),并且將指示修改后的地址的地址信號輸出至選擇器122和adr移位&偏移設(shè)置電路125。另一方面,當(dāng)在預(yù)先確定為能夠存儲數(shù)據(jù)的范圍中包括由輸入的地址信號指示的地址時,adr范圍限制電路126實際上將指示修改后的地址的地址信號輸出至選擇器122和adr移位&偏移設(shè)置電路125。

接下來,參照圖38,闡釋根據(jù)實施例7的adr移位&偏移設(shè)置電路125的配置。此處,闡釋了n位地址信號的示例。

如圖38所示,根據(jù)實施例7的adr移位&偏移設(shè)置電路125與圖34所示的根據(jù)實施例6的adr移位&偏移設(shè)置電路125的不同在于刪除了偏移設(shè)置寄存器1251。即根據(jù)實施例7的adr移位&偏移設(shè)置電路125將在實施例6中任意設(shè)置的偏移(2個位)的每個位值固定到預(yù)先確定的值(此處假設(shè)為“1”)。

因此,分別將由輸入到adr移位&偏移設(shè)置電路125中的n位地址信號指示的地址的高階(n-m)位a2和a3設(shè)置為由待從adr移位&偏移設(shè)置電路125輸出的n位地址信號指示的地址的低階(n-m)位a’0和a'1。分別將規(guī)定偏移值的位b2和b3(值均為“1”)設(shè)置為待從adr移位&偏移設(shè)置電路125輸出的n位地址信號的剩余的高階m位a’(n-2)=a’2和a’(n-1)=a’3。

接下來,參照圖39,闡釋根據(jù)實施例7的內(nèi)部存儲器14的存儲器映射。此處,對內(nèi)部存儲器14的數(shù)據(jù)寬度是8個位、內(nèi)部存儲器14的地址寬度為n個位、內(nèi)部存儲器14的數(shù)據(jù)量是(8×2n)個位,并且n=4的示例做出闡釋。即,在實施例7中,未將等待#信號用作指示地址的高階位的信號。

內(nèi)部存儲器14使用圖39上方的12個地址作為存儲數(shù)據(jù)的區(qū)域,并且使用以下四個地址作為存儲ecc的區(qū)域。即,在內(nèi)部存儲器14的區(qū)域中,針對存儲數(shù)據(jù)的地址的n個位(圖39中的a3至a0)的值,存儲與數(shù)據(jù)配對的ecc的地址的n個位的值是通過圖38所示的adr移位&偏移設(shè)置電路125(在圖39中的a3至a0的值被標(biāo)記為“adr移位&偏移設(shè)置”的部分、或者從底部的四個地址的區(qū)域)的操作來轉(zhuǎn)換的值。

即,如圖39所示,地址adr-0(“0000”)至adr-3(“0011”)的數(shù)據(jù)(“data0”至“data3”)與地址adr-c(“1100”)的ecc(“ecc0(0、1、2、3)”)配成一對。地址adr-4(“0100”)至adr-7(“0111”)的數(shù)據(jù)(“data4”至“data7”)與地址adr-d(“1101”)的ecc(“ecc1(4、5、6、7)”)配成一對。地址adr-8(“1000”)至adr-b(“1011”)的數(shù)據(jù)(“data8”至“datab”)與地址adr-1e(“1110”)的ecc(“ecc2(8、9、a、b)”)配成一對。未使用最后一個地址adr-f(“1111”)的區(qū)域。

因此,當(dāng)由地址信號指示的地址指示存儲有ecc的地址adr-c(“1100”)至adr-f(“1111”)中的一個時,adr范圍限制電路126將地址修改為在存儲有數(shù)據(jù)的地址adr-0(“0000”)至adr-b(“1011”)當(dāng)中的預(yù)先確定的地址。

如上所述,在實施例7中,通過使除了規(guī)定的偏移位數(shù)量的位之外的位從第一地址(與n位地址對應(yīng))的低階向低階方向移位偏移位數(shù)量,并且,同時,通過將偏移位數(shù)量(與m個位對應(yīng))的偏移位從高階修改為設(shè)置偏移值,來生成地址作為第二地址。

據(jù)此,顯然會獲得與實施例2至實施例6完全相同的效果。因此,省略了對其的詳細(xì)闡釋。根據(jù)實施例7,可以減小在內(nèi)部存儲器14中未被使用的地址的區(qū)域。

在實施例7中,當(dāng)在預(yù)先確定為第二地址可以采取的范圍的范圍中包括由總線主控器指定的第一地址時,adr范圍限制電路126將由總線主控器指定的地址修改為預(yù)先確定為第一地址可以采取的地址的地址。

因此,即使總線主控器指定存儲ecc的地址并且準(zhǔn)備好數(shù)據(jù)的寫入,如在根據(jù)實施例7的配置中的一樣,也可以防止總線主控器將除了ecc之外的數(shù)據(jù)寫入存儲有ecc的地址。

<實施例8>

接下來,參照附圖闡釋實施例8的配置和操作。根據(jù)實施例8的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。根據(jù)實施例8的i/f轉(zhuǎn)換電路13的配置和操作與圖32所示的根據(jù)實施例6的i/f轉(zhuǎn)換電路13的配置和操作基本上相同。然而,在根據(jù)實施例8的i/f轉(zhuǎn)換電路13中,包括在adr轉(zhuǎn)換電路120中的adr移位&偏移設(shè)置電路125的一部分的配置和操作與根據(jù)實施例6的adr移位&偏移設(shè)置電路125的配置和操作不同。

在實施例8中,可以將ecc模式切換為兩個ecc模式。在第一ecc模式下,總線主控器執(zhí)行將8位數(shù)據(jù)寫入內(nèi)部存儲器14并且從內(nèi)部存儲器14讀取8位數(shù)據(jù),并且將5位ecc生成為8位數(shù)據(jù)并且將5位ecc存儲在內(nèi)部存儲器14中。在第二ecc模式下,總線主控器執(zhí)行將32位數(shù)據(jù)寫入內(nèi)部存儲器14并且從內(nèi)部存儲器14讀取32位數(shù)據(jù),并且將7位ecc生成為32位數(shù)據(jù)并且將7位ecc存儲在內(nèi)部存儲器14中。

根據(jù)實施例8的adr移位&偏移設(shè)置電路125可以將操作切換為圖29所示的根據(jù)實施例5的adr旋轉(zhuǎn)電路123的操作、或者圖33所示的根據(jù)實施例6的adr移位&偏移設(shè)置電路125的操作。

即,根據(jù)實施例8的adr轉(zhuǎn)換電路120可以根據(jù)設(shè)置ecc模式將操作切換為“adr旋轉(zhuǎn)”或者“adr移位&偏移設(shè)置”。

接下來,參照圖40,闡釋根據(jù)實施例8的adr移位&偏移設(shè)置電路125的配置。

如圖40所示,與根據(jù)實施例6的adr移位&偏移設(shè)置電路125相比較,根據(jù)實施例8的adr移位&偏移設(shè)置電路125進(jìn)一步包括與偏移信號的位的數(shù)量一樣多的選擇器1252。對地址信號是n位并且偏移信號是m位(m=2)的示例做出闡釋。

將輸入到adr移位&偏移設(shè)置電路125中的地址信號的低階m位a0和a1中的每一個輸入到兩個選擇器1252中的每一個選擇器1252中。將指示存儲在偏移設(shè)置寄存器1251中的2位偏移值的偏移信號b(n-2)和b(n-1)中的每一個偏移信號輸入到兩個選擇器1252中的每一個選擇器1252中。

選擇器1252中的每一個選擇器1252選擇從總線主控器輸入的地址信號的低階m位a0和a1中的每一個或者從偏移設(shè)置寄存器1251輸入的偏移信號b(n-2)和b(n-1)中的每一個,并且輸出選擇的信號,作為待從adr移位&偏移設(shè)置電路125輸出的地址信號的高階m位a’(n-2)和a’(n-1)。

將指定ecc模式的ecc模式信號輸入到選擇器1252中的每一個選擇器1252中。當(dāng)輸入指定第一ecc模式的ecc模式信號(“0”)時,選擇器1252中的每一個選擇器1252選擇地址信號的低階m位a0和a1中的每一個。另一方面,當(dāng)輸入指定第二ecc模式的ecc模式信號(“1”)時,選擇器1252中的每一個選擇器1252選擇偏移信號b(n-2)和b(n-1)中的每一個偏移信號。

分別將輸入到adr移位&偏移設(shè)置電路125中的地址信號的高階(n-m)位a2、……、a(n-1)的每一個設(shè)置為待從adr移位&偏移設(shè)置電路125輸出的地址信號的低階(n-m)位a’0、a’1、……、a’(n-3)。即,該操作與圖29所示的根據(jù)實施例5的adr旋轉(zhuǎn)電路123的操作、和圖33所示的根據(jù)實施例6的adr移位&偏移設(shè)置電路125的操作相同。同樣,在adr移位&偏移設(shè)置電路125中,在n個緩沖器1250的每一個已經(jīng)接收到n位地址信號線a0至a(n-1)的每個位的信號之后,利用該信號。

如上所述,在實施例8中,當(dāng)指定第一模式時,adr移位&偏移設(shè)置電路125通過使除了第一地址(與(n+1)位地址對應(yīng))的至少一個位之外的所有位向較低方向移位規(guī)定的偏移位數(shù)量,來生成地址作為第二地址。當(dāng)指定第二模式時,adr移位&偏移設(shè)置電路125通過,在除了第一地址的至少一個位之外的位當(dāng)中,使從低階起除了偏移位數(shù)量的位之外的位向低方向移位偏移位數(shù)量,并且通過將從高階起偏移位數(shù)量(與m位對應(yīng))的偏移位修改為設(shè)置偏移值,來生成地址作為第二地址。

據(jù)此,在第一ecc模式下,顯然選擇性地獲得與實施例5完全相同的效果。因此,省略了對其的詳細(xì)闡釋。同樣,在第二ecc模式下,顯然選擇性地獲得與實施例6完全相同的效果。因此,省略了對其的詳細(xì)闡釋。

<實施例9>

接下來,參照附圖闡釋實施例9的配置和操作。根據(jù)實施例9的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。根據(jù)實施例9的i/f轉(zhuǎn)換電路13的配置和操作與圖32所示的根據(jù)實施例6的i/f轉(zhuǎn)換電路13的配置和操作基本上相同。然而,在根據(jù)實施例9的i/f轉(zhuǎn)換電路13中,adr轉(zhuǎn)換電路120的一部分的配置和操作與根據(jù)實施例6的adr轉(zhuǎn)換電路120的配置和操作不同。

接下來,參照圖41,闡釋根據(jù)實施例9的i/f轉(zhuǎn)換電路13的配置。與根據(jù)實施例6的i/f轉(zhuǎn)換電路13相比較,根據(jù)實施例9的i/f轉(zhuǎn)換電路13包括adr反轉(zhuǎn)移位&偏移設(shè)置電路127來代替在adr轉(zhuǎn)換電路120中的adr移位&偏移設(shè)置電路125。根據(jù)實施例9的i/f控制電路110、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140的配置和操作與根據(jù)實施例6的對應(yīng)部分的配置和操作相同。

在實施例9中,可以將ecc模式切換為兩個ecc模式。在第一ecc模式下,總線主控器執(zhí)行將8位數(shù)據(jù)寫入內(nèi)部存儲器14并且從內(nèi)部存儲器14讀取8位數(shù)據(jù),并且將5位ecc生成為8位數(shù)據(jù)并且將5位ecc存儲在內(nèi)部存儲器14中。在第二ecc模式下,總線主控器執(zhí)行將32位數(shù)據(jù)寫入內(nèi)部存儲器14并且從內(nèi)部存儲器14讀取32位數(shù)據(jù),并且將7位ecc生成為32位數(shù)據(jù)并且將7位ecc存儲在內(nèi)部存儲器14中。

在使除了來自低階的預(yù)定數(shù)量的位之外的位的值反轉(zhuǎn),向低階移位了預(yù)定數(shù)量的位,并且將由偏移信號指示的偏移值設(shè)置為來自高階的預(yù)定數(shù)量的位的位之后,根據(jù)實施例9的adr反轉(zhuǎn)移位&偏移設(shè)置電路127可以將操作切換為圖3所示的根據(jù)實施例1的adr反轉(zhuǎn)電路121的操作、或者將地址信號輸出至選擇器122的操作。因此,在實施例9中,選擇器122選擇從總線主控器輸出的地址信號和從adr反轉(zhuǎn)移位&偏移設(shè)置電路127輸出的地址信號中的一個,并且將選擇的地址信號輸出至內(nèi)部存儲器14。

即,根據(jù)實施例9的adr轉(zhuǎn)換電路120可以根據(jù)設(shè)置ecc模式將操作切換為“adr反轉(zhuǎn)”或者“adr移位&偏移設(shè)置”。

接下來,參照圖42,闡釋根據(jù)實施例9的adr反轉(zhuǎn)移位&偏移設(shè)置電路127的配置。

如圖42所示,adr反轉(zhuǎn)移位&偏移設(shè)置電路127包括n段位值反轉(zhuǎn)電路1270、偏移設(shè)置寄存器1271、和n段選擇器1272。對地址信號是n個位并且偏移信號是m個位(m=2)的示例做出闡釋。

位值反轉(zhuǎn)電路1270的n段中的每一段與n位地址信號的位a0、a1、a2、……、a(n-1)中的每一個對應(yīng)。位值反轉(zhuǎn)電路1270的n段中的每一段使地址信號的對應(yīng)位的值反轉(zhuǎn),并且輸出反轉(zhuǎn)后的值。例如,位值反轉(zhuǎn)電路1270是not電路。

此處,將地址信號的n個位a0、a1、……、a(n-2)和a(n-1)的反轉(zhuǎn)值中的每一個輸入至輸出地址信號的n個位a’0、a’1、……、a’(n-2)和a’(n-1)的選擇器1272的n段中的每一段。將地址信號的高階(n-m)位a2、a3、……、a(n-2)和a(n-1)的反轉(zhuǎn)值中的每一個輸入至輸出地址信號的低階(n-m)位a’0、a’1、……、a’(n-4)和a’(n-3)的選擇器1272的(n-m)段中的每一段。

將m位偏移信號取回到偏移設(shè)置寄存器1271,作為偏移值。將存儲在偏移設(shè)置寄存器1271中的m位偏移值中的每一個輸入到輸出地址信號的高階m位a’(n-2)和a’(n-1)的選擇器1272的m段中的每一段中。

輸出地址信號的低階(n-m)位a’0、a’1、……、a’(n-4)和a’(n-3)中的每一個的選擇器1272的(n-m)段中的每一段選擇和輸出地址信號的低階(n-m)位a0、a1、……、a(n-4)和a(n-3)的反轉(zhuǎn)值中的每一個、或者地址信號的高階(n-m)位a2、a3、……、a(n-2)和a(n-1)的反轉(zhuǎn)值中的每一個。

將指定ecc模式的ecc模式信號輸入到選擇器1272中的每一個中。當(dāng)輸入指定第一ecc模式的ecc模式信號(“0”)時,選擇器1272的(n-m)段中的每一段選擇地址信號的低階(n-m)位a0、a1、……、a(n-4)和a(n-3)的反轉(zhuǎn)值中的每一個。另一方面,當(dāng)輸入指定第二ecc模式的ecc模式信號(“1”)時,選擇器1272的(n-m)段中的每一段選擇地址信號的高階(n-m)位a2、a3、……、a(n-2)和a(n-1)的反轉(zhuǎn)值中的每一個。

輸出地址信號的高階m位a’(n-2)和a’(n-1)中的每一個的m個選擇器1272中的每一個選擇器選擇和輸出地址信號的高階m位a(n-2)和a(n-1)的反轉(zhuǎn)值中的每一個、或者偏移值b(n-2)和b(n-1)中的每一個。

當(dāng)輸入指定第一ecc模式的ecc模式信號(“0”)時,m個選擇器1272中的每一個選擇器選擇地址信號的高階m位a(n-2)和a(n-1)的反轉(zhuǎn)值中的每一個。另一方面,當(dāng)輸入指定第二ecc模式的ecc模式信號(“1”)時,選擇器1272中的每一個選擇器1272選擇偏移值b(n-2)和b(n-1)中的每一個。

如上所述,在實施例9中,當(dāng)指定第一模式時,adr反轉(zhuǎn)移位&偏移設(shè)置電路127通過使除了第一地址(與n+1位對應(yīng))的至少一個位之外的位的所有值反轉(zhuǎn),來生成地址作為第二地址。當(dāng)指定第二模式時,adr反轉(zhuǎn)移位&偏移設(shè)置電路127通過使除了第一地址的至少一個位之外的位的值反轉(zhuǎn),通過使從低階起除了規(guī)定的偏移位數(shù)量的位之外的位向低階方向移位偏移位數(shù)量,并且通過將從高階起偏移位數(shù)量(與m位對應(yīng))的偏移位改變?yōu)樵O(shè)置偏移值,來生成地址作為第二地址。

據(jù)此,在第一ecc模式下,顯然選擇性地獲得與實施例1完全相同的效果。因此,省略了對其的詳細(xì)闡釋。同樣,在第二ecc模式下,顯然選擇性地獲得與實施例6完全相同的效果。因此,省略了對其的詳細(xì)闡釋。

<實施例10>

接下來,參照附圖闡釋實施例10的配置和操作。根據(jù)實施例10的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。根據(jù)實施例10的i/f轉(zhuǎn)換電路13的配置和操作與圖32所示的根據(jù)實施例6的i/f轉(zhuǎn)換電路13的配置和操作基本上相同。然而,在根據(jù)實施例10的i/f轉(zhuǎn)換電路13中,包括在adr轉(zhuǎn)換電路120中的adr移位&偏移設(shè)置電路125的一部分的配置和操作與根據(jù)實施例6的adr移位&偏移設(shè)置電路125的配置和操作不同。

在實施例10中,可以將ecc模式切換為兩個ecc模式。在第一ecc模式下,總線主控器執(zhí)行將8位數(shù)據(jù)寫入內(nèi)部存儲器14并且從內(nèi)部存儲器14讀取8位數(shù)據(jù),并且將5位ecc生成為8位數(shù)據(jù)并且將5位ecc存儲在內(nèi)部存儲器14中。在第二ecc模式下,總線主控器執(zhí)行將32位數(shù)據(jù)寫入內(nèi)部存儲器14并且從內(nèi)部存儲器14讀取32位數(shù)據(jù),并且將7位ecc生成為32位數(shù)據(jù)并且將7位ecc存儲在內(nèi)部存儲器14中。

根據(jù)實施例10的adr移位&偏移設(shè)置電路125可以將操作切換為圖3所示的根據(jù)實施例1的adr反轉(zhuǎn)電路121的操作、或者圖33所示的根據(jù)實施例6的adr移位&偏移設(shè)置電路125的操作。

即,根據(jù)實施例10的adr轉(zhuǎn)換電路120可以根據(jù)設(shè)置ecc模式將操作切換為“adr反轉(zhuǎn)”或者“adr移位&偏移設(shè)置”。

接下來,參照圖43,闡釋根據(jù)實施例10的adr移位&偏移設(shè)置電路125的配置。

如圖43所示,與根據(jù)實施例6的adr移位&偏移設(shè)置電路125相比較,根據(jù)實施例10的adr移位&偏移設(shè)置電路125進(jìn)一步包括adr選擇電路1253的n段。對地址信號是n位并且偏移信號是m位(m=2)的示例做出闡釋。

經(jīng)由緩沖器1250將地址信號的n個位a0、a1、……、a(n-2)、a(n-1)的值的每一個輸入至輸出地址信號的n個位a’0、a’1、……、a’(n-2)和a’(n-1)的adr選擇電路1253的n段中的每一段。經(jīng)由緩沖器1250將地址信號的高階(n-m)位a2、a3、……、a(n-2)和a(n-1)的值的每一個輸入至輸出地址信號的低階(n-m)位a’0、a’1、……、a’(n-4)和a’(n-3)的adr選擇電路1253的(n-m)段中的每一段。

將m位偏移信號取回到偏移設(shè)置寄存器1251,作為偏移值。將存儲在偏移設(shè)置寄存器1251中的m位偏移值b(n-2)和b(n-1)輸入到輸出地址信號的高階m位a’(n-2)和ma’(n-1)中的每一個的adr選擇電路1253的m段中的每一段中。

輸出地址信號的低階(n-m)位a’0、a’1、……、a’(n-4)和a’(n-3)中的每一個的adr選擇電路1253的(n-m)段中的每一段選擇和輸出地址信號的低階(n-m)位a0、a1、……、a(n-4)和a(n-3)的反轉(zhuǎn)值中的每一個、或者地址信號的高階(n-m)位a2、a3、……、a(n-2)和a(n-1)的值中的每一個。

將指定ecc模式的ecc模式信號輸入到adr選擇電路1253中的每一個中。當(dāng)輸入指定第一ecc模式的ecc模式信號(“0”)時,adr選擇電路1253的(n-m)段中的每一段選擇地址信號的低階(n-m)位a0、a1、……、a(n-4)和a(n-3)的值中的每一個,并且輸出選擇值的反轉(zhuǎn)值。稍后將在此選擇的值描述為“第一值”。另一方面,當(dāng)輸入指定第二ecc模式的ecc模式信號(“1”)時,adr選擇電路1253的(n-m)段中的每一段選擇和輸出地址信號的高階(n-m)位a2、a3、……、a(n-2)和a(n-1)的值中的每一個。稍后將在此選擇的值描述為“第二值”。

輸出地址信號的高階m位a’(n-2)和a’(n-1)中的每一個的adr選擇電路1253的m段中的每一段選擇和輸出地址信號的高階m位a(n-2)和a(n-1)的反轉(zhuǎn)值中的每一個、或者偏移值b(n-2)和b(n-1)中的每一個。

當(dāng)輸入指定第一ecc模式的ecc模式信號(“0”)時,adr選擇電路1253的m段中的每一段選擇地址信號的高階m位a(n-2)和a(n-1)的值中的每一個,并且輸出選擇值的反轉(zhuǎn)值。稍后將在此選擇的值描述為“第一值”。另一方面,當(dāng)輸入指定第二ecc模式的ecc模式信號(“1”)時,adr選擇電路1253的m段中的每一段選擇和輸出偏移值b(n-2)和b(n-1)中的每一個。稍后將在此選擇的值描述為“第二值”。

接下來,參照圖44,闡釋根據(jù)實施例10的adr選擇電路1253的配置。

如圖44所示,adr選擇電路1253包括nor電路12531、and電路12532、和or電路12533。

nor電路12531將信號輸出至or電路12533,作為第一值和ecc模式信號的值的nor(負(fù)邏輯加法)的運(yùn)算結(jié)果。and電路12532將信號輸出至or電路12533,作為第二值和ecc模式信號的值的and(邏輯積)的運(yùn)算結(jié)果。or電路12533輸出信號,作為從nor電路12531輸入的信號和從and電路12532輸入的信號的or(邏輯加法)的運(yùn)算結(jié)果。

如上所述,在實施例10中,當(dāng)指定第一模式時,adr移位&偏移設(shè)置電路125通過使除了第一地址(與n+1位對應(yīng))的至少一個位之外的位的所有值反轉(zhuǎn),來生成地址作為第二地址。當(dāng)指定第二模式時,adr移位&偏移設(shè)置電路125通過,在除了第一地址的至少一個位之外的位當(dāng)中,使從低階起不包括規(guī)定的偏移位數(shù)量的位的位向低方向移位偏移位數(shù)量,并且通過將從高階起偏移位數(shù)量(與m位對應(yīng))的偏移位修改為設(shè)置偏移值,來生成地址作為第二地址。

因此,在第一ecc模式下,顯然選擇性地獲得與實施例1完全相同的效果。因此,省略了對其的詳細(xì)闡釋。同樣,在第二ecc模式下,顯然選擇性地獲得與實施例6完全相同的效果。因此,省略了對其的詳細(xì)闡釋。

<實施例11>

接下來,參照附圖闡釋實施例11的配置和操作。參照圖45,闡釋根據(jù)實施例11的cpu系統(tǒng)1的配置。如圖45所示,與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1進(jìn)行的比較表明,根據(jù)實施例1的cpu系統(tǒng)1不包括控制輸入i/f11、命令輸出i/f12和i/f轉(zhuǎn)換電路13,但是包括硬件加速器20、傳感器i/fi/f21、致動器i/f22、轉(zhuǎn)換電路23、ddri/f24、和ddr存儲器25。

在實施例11中,車輛設(shè)置有作為輸入單元的傳感器單元。傳感器單元觀測車輛的周圍并且將指示觀測結(jié)果的傳感器數(shù)據(jù)發(fā)送至cpu系統(tǒng)1,作為輸入數(shù)據(jù)。例如,傳感器單元是雷達(dá)或者照相機(jī)。

車輛設(shè)置有由cpu系統(tǒng)1控制的致動器單元,作為控制單元。例如,控制單元是方向盤或者剎車。

在根據(jù)實施例11的cpu系統(tǒng)1中,cpu10具有多核結(jié)構(gòu)。cpu10基于來自傳感器單元的傳感器數(shù)據(jù)來生成控制數(shù)據(jù)。例如,當(dāng)控制數(shù)據(jù)針對方向盤時,cpu10生成指令修改方向盤的轉(zhuǎn)向角度的控制數(shù)據(jù)作為控制內(nèi)容。例如,當(dāng)控制數(shù)據(jù)針對剎車時,cpu10生成指令調(diào)節(jié)剎車油壓的控制數(shù)據(jù)作為控制內(nèi)容。

硬件加速器20是多核結(jié)構(gòu)的硬件并且補(bǔ)充地執(zhí)行cpu10的處理。例如,硬件加速器20是gpu(圖形處理單元)或者dsp(數(shù)字信號處理器)。

傳感器i/f21是將傳感器單元耦合至系統(tǒng)總線的接口電路。即,將來自傳感器單元的傳感器數(shù)據(jù)輸入到傳感器i/f21中。致動器i/f22是將致動器單元耦合至系統(tǒng)總線的接口電路。即,致動器i/f22將用于控制致動器單元的命令輸出至致動器單元。

轉(zhuǎn)換電路23是將ddri/f24耦合至系統(tǒng)總線的接口電路。如稍后所描述的,與根據(jù)實施例1至10的i/f轉(zhuǎn)換電路13一樣,轉(zhuǎn)換電路23執(zhí)行檢測數(shù)據(jù)信號系統(tǒng)和地址信號系統(tǒng)的故障的處理,當(dāng)每個總線主控器(cpu10、dmac15、和硬件加速器20)經(jīng)由系統(tǒng)總線在ddri/f24的輔助下訪問ddr存儲器25(將數(shù)據(jù)寫入ddr存儲器25或者從ddr存儲器25讀取數(shù)據(jù))。

更具體地,當(dāng)將數(shù)據(jù)寫入到ddr存儲器25中時,轉(zhuǎn)換電路23也將由數(shù)據(jù)生成的ecc寫入到ddr存儲器25中。當(dāng)從ddr存儲器25讀取數(shù)據(jù)時,轉(zhuǎn)換電路23從讀取數(shù)據(jù)生成ecc,并且將生成的ecc與寫入到具有數(shù)據(jù)的ddr存儲器25中的ecc進(jìn)行比較,并且因此檢測故障。同樣,在實施例11中,通過從存儲數(shù)據(jù)的地址生成存儲ecc的地址,不僅可以檢測數(shù)據(jù)信號系統(tǒng)的故障,還可以檢測地址信號系統(tǒng)的故障。

ddri/f24根據(jù)經(jīng)由轉(zhuǎn)換電路23從總線主控器輸入的分組來執(zhí)行從ddr存儲器25讀取數(shù)據(jù)或者將數(shù)據(jù)寫入到ddr存儲器25。即,在實施例11中,總線主控器通過按照分組的形式將指示寫入地址的數(shù)據(jù)和指示寫入數(shù)據(jù)的數(shù)據(jù)輸出至轉(zhuǎn)換電路23,來執(zhí)行數(shù)據(jù)的寫入??偩€主控器通過按照分組形式將指示讀取地址的數(shù)據(jù)輸出至轉(zhuǎn)換電路23,來執(zhí)行數(shù)據(jù)的讀取。

ddr存儲器25是存儲各類數(shù)據(jù)的存儲電路。即,ddr存儲器25存儲,例如,上述傳感器數(shù)據(jù)、控制數(shù)據(jù)(命令)、和ecc。

接下來,參照圖46,闡釋根據(jù)實施例11的轉(zhuǎn)換電路23的配置。如圖46所示,轉(zhuǎn)換電路23包括wadr轉(zhuǎn)換電路210、radr轉(zhuǎn)換電路220、wdt轉(zhuǎn)換電路230、和rdt轉(zhuǎn)換電路240。此處,“wadr”指示寫入地址,并且“radr”指示讀取地址?!皐dt”和“rdt”如實施例1所闡釋。

總線主控器經(jīng)由系統(tǒng)總線將指示寫入地址的分組、指示讀取地址的分組、和指示寫入數(shù)據(jù)的分組輸出至轉(zhuǎn)換電路23。轉(zhuǎn)換電路23經(jīng)由系統(tǒng)總線將指示讀取數(shù)據(jù)的分組和錯誤通知信號輸出至總線主控器。轉(zhuǎn)換電路23基于從時鐘生成電路(未示出)輸入的時鐘信號來操作。

當(dāng)將數(shù)據(jù)寫入到ddr存儲器25中時,總線主控器將指示用作寫入數(shù)據(jù)的地址的寫入地址的分組、和指示用作寫入數(shù)據(jù)的寫入數(shù)據(jù)的分組輸出至轉(zhuǎn)換電路23。響應(yīng)于此,轉(zhuǎn)換電路23將這些分組輸出至ddri/f24,并且,另外,將指示用作寫入與寫入數(shù)據(jù)對應(yīng)的ecc的地址的ecc地址的分組、和指示待寫入到ddr存儲器25中的ecc的分組輸出至ddri/f24。

ddri/f24將由來自轉(zhuǎn)換電路23的分組指示的寫入數(shù)據(jù)寫入由來自轉(zhuǎn)換電路23的分組指示的ddr存儲器25的寫入地址。ddri/f24還將由來自轉(zhuǎn)換電路23的分組指示的ecc寫入由來自轉(zhuǎn)換電路23的分組指示的ddr存儲器25的ecc地址。

當(dāng)從ddr存儲器25讀取數(shù)據(jù)時,總線主控器將指示用作讀取數(shù)據(jù)的地址的讀取地址的分組輸出至轉(zhuǎn)換電路23。響應(yīng)于此,轉(zhuǎn)換電路23將該分組輸出至ddri/f24,并且,另外,將指示用作讀取與作為待讀取數(shù)據(jù)的讀取數(shù)據(jù)對應(yīng)的ecc的地址的ecc地址的分組輸出至ddri/f24。

ddri/f24從由來自轉(zhuǎn)換電路235的分組指示的ddr存儲器25的讀取地址讀取讀取數(shù)據(jù),并且將指示讀取到的讀取數(shù)據(jù)的分組輸出至轉(zhuǎn)換電路23。ddri/f24還從由來自轉(zhuǎn)換電路23的分組指示的ddr存儲器25的ecc地址讀取ecc,并且將指示讀取到的ecc的分組輸出至轉(zhuǎn)換電路23。

然后,當(dāng)通過使用由來自ddri/f24的分組指示的讀取數(shù)據(jù)和由來自ddri/f24的分組指示的ecc,通過檢查來檢測數(shù)據(jù)的錯誤時,轉(zhuǎn)換電路23將通知錯誤的錯誤通知信號輸出至總線主控器。

如圖46所示,wadr轉(zhuǎn)換電路210包括地址緩沖器211、ecc指定的adr生成電路212、切換控制電路213、和選擇器214。

地址緩沖器211是將來自總線主控器的指示寫入地址的分組輸出至選擇器214并且隨后暫時保持該分組的存儲器。

ecc特定的adr生成電路212基于由存儲在地址緩沖器211中的分組指示的寫入地址,來生成指示ecc地址的分組。從寫入地址生成ecc地址的操作與根據(jù)實施例1的adr反轉(zhuǎn)電路121的操作相同。因此,省略了對其的詳細(xì)闡釋。ecc特定的adr生成電路212將生成的分組輸出至選擇器214。然而,要注意,在實施例11中,ecc特定的adr生成電路212對在實施例1中由等待#信號切換的地址信號的最高階位的值進(jìn)行切換。

當(dāng)將指示寫入地址的分組從地址緩沖器211輸出至選擇器214時,切換控制電路213指示選擇器214選擇分組。更具體地,切換控制電路213將數(shù)據(jù)/ecc信號(“0”)輸出至選擇器214。在完成將指示寫入地址的分組從地址緩沖器211輸出至選擇器214之后,在將指示ecc地址的分組從ecc特定的adr生成電路212輸出至選擇器214的同時,切換控制電路213指示選擇器214選擇分組。更具體地,切換控制電路213將數(shù)據(jù)/ecc信號(“1”)輸出至選擇器214。

當(dāng)從切換控制電路213輸入數(shù)據(jù)/ecc信號(“0”)時,選擇器214選擇從地址緩沖器211輸入的分組,并且將選擇的分組輸出至ddri/f24。另一方面,當(dāng)從切換控制電路213輸入數(shù)據(jù)/ecc信號(“1”)時,選擇器214選擇從ecc特定的adr生成電路212輸入的分組,并且將選擇的分組輸出至ddri/f24。

radr轉(zhuǎn)換電路220的配置和操作與wadr轉(zhuǎn)換電路210的配置和操作相同。因此省略了對其的闡釋。

如圖46所示,wdt轉(zhuǎn)換電路230包括數(shù)據(jù)緩沖器231、ecc生成電路232、切換控制電路233、和選擇器234。

數(shù)據(jù)緩沖器231是將來自總線主控器的指示寫入數(shù)據(jù)的分組輸出至選擇器234并且隨后暫時保持該數(shù)據(jù)的存儲器。

ecc生成電路232基于由存儲在數(shù)據(jù)緩沖器231中的分組指示的寫入數(shù)據(jù),來生成指示ecc的分組。從寫入數(shù)據(jù)生成ecc的操作與根據(jù)實施例1的ecc生成電路131的操作相同。因此,省略了對其的詳細(xì)闡釋。ecc生成電路232將生成的分組輸出至選擇器234。

在將指示寫入數(shù)據(jù)的分組從數(shù)據(jù)緩沖器231輸出至選擇器234的同時,切換控制電路233指示選擇器234選擇分組。更具體地,切換控制電路233將數(shù)據(jù)/ecc信號(“0”)輸出至選擇器234。在完成將指示寫入數(shù)據(jù)的分組從數(shù)據(jù)緩沖器231輸出至選擇器234之后,在將指示ecc地址的分組從ecc生成電路232輸出至選擇器234的同時,切換控制電路233指示選擇器234選擇分組。更具體地,切換控制電路233將數(shù)據(jù)/ecc信號(“1”)輸出至選擇器234。

當(dāng)從切換控制電路233輸入數(shù)據(jù)/ecc信號(“0”)時,選擇器234選擇從數(shù)據(jù)緩沖器231輸入的分組,并且將選擇的分組輸出至ddri/f24。另一方面,當(dāng)從切換控制電路233輸入數(shù)據(jù)/ecc信號(“1”)時,選擇器234選擇從ecc生成電路232輸入的分組,并且將選擇的分組輸出至ddri/f24。

rdt轉(zhuǎn)換電路240包括數(shù)據(jù)緩沖器241、啟用控制電路242、ecc檢查電路243、和錯誤校正電路244。

數(shù)據(jù)緩沖器241是將來自ddri/f24的指示讀取數(shù)據(jù)的分組輸出至ecc檢查電路243和錯誤校正電路244,并且隨后暫時存儲分組的存儲器。數(shù)據(jù)緩沖器241存儲來自ddri/f24的指示ecc的分組。

當(dāng)將指示ecc的分組存儲在數(shù)據(jù)緩沖器241時,啟用控制電路242輸出啟用信號,以確定由存儲在數(shù)據(jù)緩沖器241中的分組指示的數(shù)據(jù)的錯誤是否發(fā)生。更具體地,啟用控制電路242將斷言的啟用信號(“1”)輸出至ecc檢查電路243。在其余的時候,啟用控制電路242將去斷言的啟用信號(“0”)輸出至ecc檢查電路243。例如,當(dāng)完成稍后將描述的由ecc檢查電路243進(jìn)行的確定時,啟用控制電路242將去斷言的啟用信號(“0”)輸出至ecc檢查電路243。

響應(yīng)于來自啟用控制電路242的斷言的啟用信號(“1”),ecc檢查電路243基于由存儲在數(shù)據(jù)緩沖器241中的分組指示的數(shù)據(jù)和由存儲在數(shù)據(jù)緩沖器241中的分組指示的ecc,來確定數(shù)據(jù)的錯誤是否已經(jīng)發(fā)生。

當(dāng)ecc檢查電路243確定錯誤已經(jīng)發(fā)生在數(shù)據(jù)的任何一個位中時,ecc檢查電路243將指示位的位置的錯誤校正信號輸出至錯誤校正電路244。當(dāng)ecc檢查電路243確定無法校正的2位或者多位錯誤已經(jīng)發(fā)生在數(shù)據(jù)中時,ecc檢查電路243將通知錯誤的錯誤通知信號輸出至總線主控器。

當(dāng)錯誤還未發(fā)生在數(shù)據(jù)中時,錯誤校正電路244實際上將從數(shù)據(jù)緩沖器241輸入的指示數(shù)據(jù)的分組輸出至總線主控器,作為讀取數(shù)據(jù)。另一方面,當(dāng)錯誤已經(jīng)發(fā)生在數(shù)據(jù)中時,錯誤校正電路244對由從數(shù)據(jù)緩沖器241輸入的分組指示的數(shù)據(jù)的錯誤進(jìn)行校正,并且然后將數(shù)據(jù)輸出至總線主控器。數(shù)據(jù)的具體錯誤校正的方法和配置與根據(jù)實施例1的錯誤校正電路143的方法和配置相同。因此,省略了對其的闡釋。

此處,在ddr存儲器25中,通過指定列地址和行地址,可以指定讀取數(shù)據(jù)的地址或者寫入數(shù)據(jù)的地址。ddri/f24通過將由分組指示的地址分解為列地址和行地址并且以兩個步驟將指示每個地址的地址信號傳輸至ddr存儲器25,來實現(xiàn)對ddr存儲器25的訪問。因此,減少在ddri/f24與ddr存儲器25之間的地址信號線的數(shù)量。然而,例如,當(dāng)ddr存儲器25的數(shù)據(jù)信號線的數(shù)量為32時,由分組指示的地址的低階2位毫無意義;因此不將它們輸出至ddr存儲器25。

然而,當(dāng)固定型故障發(fā)生在地址信號線中的一條中時,上述配置等同于受2位的固定型故障影響的地址。然而,根據(jù)實施例11,可以如上所述檢測2位或者多位錯誤;因此,肯定也可以檢測到這種錯誤。

此處,參照圖47闡釋實施例11的其它效果。更具體地,如圖47所示,ddri/f24包括ddr控制電路310和高速緩沖存儲器320。

ddr控制電路310根據(jù)從轉(zhuǎn)換電路23輸出的指示讀取地址的分組來讀取存儲在ddr存儲器25的讀取地址處的數(shù)據(jù)。當(dāng)將數(shù)據(jù)緩存至高速緩沖存儲器320時,ddr控制電路310從高速緩沖存儲器320讀取數(shù)據(jù),而不是從ddr存儲器25讀取。然后,ddr控制電路310生成指示讀取到的數(shù)據(jù)的分組,作為讀取數(shù)據(jù),并且將生成的分組輸出至轉(zhuǎn)換電路23。

高速緩沖存儲器320利用設(shè)置關(guān)聯(lián)方案來管理并且包括多個路徑。當(dāng)采用n路設(shè)置關(guān)聯(lián)方案時,高速緩沖存儲器320包括存儲有多種數(shù)據(jù)的n個區(qū)域。n個區(qū)域中的每一個用n類不同的路徑地址的每一個加以標(biāo)記。

在圖47中采用4路設(shè)置關(guān)聯(lián)方案。圖47示出了四個區(qū)域中的每一個用四類路徑地址(“00”、“01”、“10”和“11”)中的每一類加以標(biāo)記。此處,假設(shè)路徑地址使用n位讀取地址的高階2位。

在實施例11中,radr轉(zhuǎn)換電路220使讀取在地址的(n+1)位當(dāng)中的低階n位的ecc的地址的位值反轉(zhuǎn)為讀取數(shù)據(jù)的地址。因此,當(dāng)讀取數(shù)據(jù)的路徑地址是“00”時,讀取ecc的路徑地址變成“11”。即,根據(jù)實施例11,低階1位的值在存儲數(shù)據(jù)的路徑的標(biāo)記與存儲ecc的路徑的標(biāo)記之間是彼此不同的。

因此,當(dāng)固定型故障發(fā)生在地址信號線當(dāng)中的與路徑地址的低階1位對應(yīng)的信號線中時,從在低階1位中具有相同的值的標(biāo)記讀取數(shù)據(jù)和ecc。因此,數(shù)據(jù)與ecc的配對崩潰。結(jié)果,故障由rdt轉(zhuǎn)換電路240檢測。即,要理解,實施例11可以適當(dāng)?shù)貞?yīng)用于這種ddri/f24。

對在通過使用根據(jù)實施例11的分組來執(zhí)行數(shù)據(jù)的寫入和讀取的配置中執(zhí)行根據(jù)實施例1的地址轉(zhuǎn)換的示例做出闡釋。然而,示例并不限于此。在通過使用根據(jù)實施例11的分組來執(zhí)行數(shù)據(jù)的寫入和讀取的配置中,也優(yōu)選執(zhí)行根據(jù)其它實施例2至10中的一個的地址轉(zhuǎn)換。當(dāng)使地址信號的作為規(guī)定的數(shù)量的位的數(shù)量小于n的位的值反轉(zhuǎn)或者重排時,高速緩沖存儲器320的每個路徑用包括地址信號的規(guī)定的數(shù)量的位的至少一個位的位加以標(biāo)記。

如上所述,在實施例11中,地址緩沖器211存儲從總線主控器接收到的指示第一地址的第一分組。wadr轉(zhuǎn)換電路210和radr轉(zhuǎn)換電路220基于由存儲在地址緩沖器211中的第一分組指示的第一地址,來生成指示第二地址的第二分組。wadr轉(zhuǎn)換電路210將從總線主控器接收到的第一分組發(fā)送至ddri/f24,并且將生成的第二分組發(fā)送至ddri/f24。因此,wadr轉(zhuǎn)換電路210執(zhí)行將數(shù)據(jù)寫入第一地址并且將錯誤檢測代碼寫入第二地址。radr轉(zhuǎn)換電路220將從總線主控器接收到的第一分組發(fā)送至ddri/f24,并且將生成的第二分組發(fā)送至ddri/f24。因此,radr轉(zhuǎn)換電路220執(zhí)行從第一地址讀取數(shù)據(jù)并且從第二地址讀取錯誤檢測代碼。

因此,即使當(dāng)按照來自總線主控器的分組的形式來執(zhí)行數(shù)據(jù)的寫入和讀取時,也可以檢測地址信號系統(tǒng)的故障。當(dāng)為了提高數(shù)據(jù)訪問效率而提供連續(xù)訪問連續(xù)的多個地址的突發(fā)訪問模式時,優(yōu)選輸出初始值,作為與通過一次突發(fā)訪問訪問的范圍對應(yīng)的地址的低階多位,將其從在wadr轉(zhuǎn)換電路210和radr轉(zhuǎn)換電路220的ecc特定的adr生成電路212中的地址轉(zhuǎn)換的目標(biāo)排除。即使在這種情況下,當(dāng)固定型故障發(fā)生在ddri/f14與ddr存儲器25之間的地址信號線中的一條中時,經(jīng)由與低階多位相同的地址信號線,在被分解為列地址和行地址之后發(fā)送的對應(yīng)的高階多位也會受到固定型故障的影響。因此,也可以檢測這種故障。

在實施例11中,ddri/f24包括利用設(shè)置關(guān)聯(lián)方案來緩存ddr存儲器25的數(shù)據(jù)的高速緩沖存儲器320。通過使在除了第一地址(與(n+1)位地址對應(yīng))的至少一個位的值之外的位(與低階n位對應(yīng))當(dāng)中的規(guī)定的數(shù)量的位的值反轉(zhuǎn),來生成地址作為第二地址。高速緩沖存儲器的每個路徑用包括規(guī)定的數(shù)量的位中的至少一個位的位來標(biāo)記。

因此,可以通過轉(zhuǎn)移在ddri/f24的高速緩沖存儲器320中的功能來檢測地址信號系統(tǒng)的故障。

<實施例12>

接下來,參照附圖闡釋實施例12的配置和操作。根據(jù)實施例12的cpu系統(tǒng)1的配置和操作與圖1所示的根據(jù)實施例1的cpu系統(tǒng)1的配置和操作基本上相同。因此,省略了對其的闡釋。然而,在實施例12中,包括在cpu系統(tǒng)1中的i/f轉(zhuǎn)換電路13的一部分的配置和操作與根據(jù)實施例1的i/f轉(zhuǎn)換電路13的配置和操作不同。

接下來,參照圖48,闡釋根據(jù)實施例12的i/f轉(zhuǎn)換電路13的配置。與根據(jù)實施例10的i/f轉(zhuǎn)換電路13相比較,根據(jù)實施例12的i/f轉(zhuǎn)換電路13進(jìn)一步包括ecc模式控制電路150。

ecc模式控制電路150包括ecc模式設(shè)置寄存器151。ecc模式設(shè)置寄存器151存儲與ecc模式有關(guān)的各類設(shè)置值。ecc模式控制電路150根據(jù)存儲在ecc模式設(shè)置寄存器151中的設(shè)置值,來執(zhí)行對啟用或者禁用ecc模式的控制和對在啟用ecc模式時切換ecc模式的控制。

此處,例如,將以下(1)-(4)設(shè)置至ecc模式設(shè)置寄存器151,作為設(shè)置值。此處,在(2)-(4)中,可以設(shè)置各自相關(guān)聯(lián)的多個組。

(1)啟用/禁用ecc模式

(2)ecc模式

(3)ecc模式的范圍(例如,由范圍的開始地址和結(jié)束地址指定)

(4)從存儲數(shù)據(jù)的區(qū)域到存儲ecc的區(qū)域的偏移

當(dāng)將禁用ecc模式的設(shè)置值存儲在ecc模式設(shè)置寄存器151中時,ecc模式控制電路150抑制在i/f控制電路110、adr轉(zhuǎn)換電路120、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140中的與ecc有關(guān)的處理(將ecc寫入到內(nèi)部存儲器14中、從內(nèi)部存儲器14讀取ecc、和基于ecc來確定數(shù)據(jù)錯誤)。

例如,ecc模式控制電路150將去斷言的ecc啟用信號(“0”)輸出至i/f控制電路110。當(dāng)從ecc模式控制電路150輸入去斷言的ecc啟用信號(“0”)時,i/f控制電路110抑制在第一時鐘周期內(nèi)輸出斷言的等待#信號(“0”)。

另一方面,當(dāng)將啟用ecc模式的設(shè)置值存儲在ecc模式設(shè)置寄存器151中時,ecc模式控制電路150允許在i/f控制電路110、adr轉(zhuǎn)換電路120、wdt轉(zhuǎn)換電路130、和rdt轉(zhuǎn)換電路140中的與ecc有關(guān)的處理(將ecc寫入到內(nèi)部存儲器14中、從內(nèi)部存儲器14讀取ecc、和基于ecc來確定數(shù)據(jù)錯誤)。

例如,ecc模式控制電路150將斷言的ecc啟用信號(“1”)輸出至i/f控制電路110。當(dāng)從ecc模式控制電路150輸入斷言的ecc啟用信號(“1”)時,i/f控制電路110在第一時鐘周期內(nèi)輸出斷言的等待#信號(“0”)。

也將從總線主控器輸入到adr轉(zhuǎn)換電路120中的地址信號輸入到ecc模式控制電路150中。當(dāng)啟用ecc模式時,ecc模式控制電路150確定由地址信號指示的地址是否包括在(3)的ecc模式的范圍內(nèi)。當(dāng)由地址信號指示的地址包括在ecc模式的范圍內(nèi)時,ecc模式控制電路150將指定按照相關(guān)聯(lián)的方式設(shè)置在ecc模式設(shè)置寄存器151的ecc模式的范圍內(nèi)的ecc模式的ecc模式信號輸出至adr轉(zhuǎn)換電路120。

ecc模式控制電路150將從總線主控器輸入的地址信號的高階l位的值修改為與按照相關(guān)聯(lián)的方式設(shè)置在ecc模式設(shè)置寄存器151的ecc模式的范圍內(nèi)的上述(4)的偏移值相加的值。ecc模式控制電路150將指示修改后的值的信號輸出至內(nèi)部存儲器14。l位信號用作待輸入到內(nèi)部存儲器14中的(n+l)位地址信號的高階l位的信號。

因此,如圖49所示,至于存儲在內(nèi)部存儲器14中的具體范圍內(nèi)的數(shù)據(jù),可以在第一ecc模式下存儲與數(shù)據(jù)對應(yīng)的ecc,并且至于存儲在其它具體范圍內(nèi)的數(shù)據(jù),可以在第二ecc模式下存儲與數(shù)據(jù)對應(yīng)的ecc。

因此,如圖50所示,對地址進(jìn)行轉(zhuǎn)換。即,在圖50的上部分所示的第一ecc模式下,將偏移添加至(n+l)位地址的高階l位的值,并且使低階n位的值反轉(zhuǎn)。在圖50的下部分所示的第二ecc模式下,將偏移添加至(n+l)位地址的高階l位的值。至于低階n位的值,將高階m位修改為設(shè)置在偏移設(shè)置寄存器1251中的偏移,并且低階(n-m)位改變?yōu)楦唠A(n-m)位向低方向移位的值。

對根據(jù)實施例12的ecc模式控制電路150應(yīng)用于根據(jù)實施例10的i/f轉(zhuǎn)換電路的示例做出闡釋。然而,示例并不限于此。根據(jù)實施例12的ecc模式控制電路150可以應(yīng)用于根據(jù)實施例8和9中的一個的i/f轉(zhuǎn)換電路13。

<實施例的概述配置>

參照圖51,下面將闡釋半導(dǎo)體裝置9的配置作為根據(jù)上述實施例1至12的cpu系統(tǒng)1的概述配置。即,如圖51所示,提取在根據(jù)實施例1至12的cpu系統(tǒng)1中的特性配置的一部分。

如圖51所示,半導(dǎo)體裝置9包括地址轉(zhuǎn)換電路91、寫入電路92、和讀取電路93。

地址轉(zhuǎn)換電路91基于用于將數(shù)據(jù)存儲在存儲器94中的第一地址,來生成用于存儲由數(shù)據(jù)生成的錯誤檢測代碼的第二地址。地址轉(zhuǎn)換電路91與adr轉(zhuǎn)換電路120對應(yīng)。

當(dāng)請求將數(shù)據(jù)寫入至第一地址時,寫入電路92將數(shù)據(jù)寫入第一地址中并且同時將錯誤檢測代碼寫入第二地址中。寫入電路92與wdt轉(zhuǎn)換電路130對應(yīng)。

當(dāng)請求從第一地址讀取數(shù)據(jù)時,讀取電路93從第一地址讀取數(shù)據(jù),從第二地址讀取錯誤檢測代碼,并且基于數(shù)據(jù)和錯誤檢測代碼來檢測錯誤。讀取電路93與rdt轉(zhuǎn)換電路140對應(yīng),

在此,地址轉(zhuǎn)換電路91通過修改第一地址的至少一個位的值,通過使錯誤檢測代碼的存儲位置向數(shù)據(jù)的存儲位置偏移,并且通過使其它位當(dāng)中的規(guī)定的數(shù)量的位的值反轉(zhuǎn)或者重排,來生成地址作為所述第二地址。

如上所述,已經(jīng)基于實施例來具體地闡釋了由本發(fā)明人完成的本發(fā)明。然而,不得不強(qiáng)調(diào)本發(fā)明并不限于上述實施例,并且可以在不偏離要點的范圍內(nèi)以各種方式變化。

在上述實施例1至12中,列入對啟用一位錯誤校正和2位或者多位錯誤檢測的ecc(錯誤校正代碼)被用作用于檢測數(shù)據(jù)的錯誤的錯誤檢測代碼進(jìn)行闡釋。然而,示例并不限于此。也優(yōu)選利用crc(循環(huán)冗余檢查)或者奇偶性代碼,作為錯誤檢測代碼。然而,更優(yōu)選利用不僅啟用錯誤檢測還啟用錯誤校正的ecc,如上所述。

在上述內(nèi)部存儲器14或者ddri/f24的地址信號處理電路中,即使在執(zhí)行在邏輯地址與物理地址之間轉(zhuǎn)換地址的處理的情況下,也可以應(yīng)用本實施例。

上述各類信號的位的數(shù)量和值并不限于上述示例。例如,啟用信號和錯誤通知信號可以將斷言的值設(shè)置為“0”,并且將否定的值設(shè)置為“1”。等待#信號可以是高態(tài)有效信號。寫入/讀取信號可以將值設(shè)置為將寫入指定為“1”,并且將值設(shè)置為將讀取指定為“0”。等待#信號可以是指定地址的規(guī)定的高階位的多個位。

上述內(nèi)部存儲器14的數(shù)據(jù)寬度、地址寬度和數(shù)據(jù)量并不限于上述示例。偏移值的位m的數(shù)量并不限于上述兩個位的示例。偏移值并不限于上述值。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1