基于SoC的實(shí)時(shí)信號(hào)處理系統(tǒng)中存儲(chǔ)系統(tǒng)
容錯(cuò)存儲(chǔ)系統(tǒng)的硬件支持
具有容錯(cuò)糾錯(cuò)能力的存儲(chǔ)系統(tǒng)的結(jié)構(gòu)圖如圖2所示。存儲(chǔ)系統(tǒng)的容錯(cuò)方案和不考慮容錯(cuò)的存儲(chǔ)系統(tǒng)相比,需要在原有模塊的基礎(chǔ)上進(jìn)行修改并增加一些設(shè)計(jì)。主要包含以下幾個(gè)方面:
(1)增加存儲(chǔ)顆粒。為了實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的容錯(cuò)和糾錯(cuò)能力,增加一定數(shù)量的存儲(chǔ)顆粒是必須的。在存儲(chǔ)顆粒陣列中增加冗余的行列按照行列的二級(jí)冗余存儲(chǔ)形式組織。為了適應(yīng)SoC實(shí)時(shí)信號(hào)處理系統(tǒng)的特點(diǎn),需要對(duì)存儲(chǔ)系統(tǒng)顆粒陣列的信號(hào)連線進(jìn)行有針對(duì)性的修改,從而使系統(tǒng)能通過(guò)軟件配置或硬件自檢來(lái)實(shí)現(xiàn)糾錯(cuò)或容錯(cuò),并有效地支持包含糾錯(cuò)容錯(cuò)轉(zhuǎn)換的總體方案。
(2)在寄存器堆中為容錯(cuò)系統(tǒng)分配一定的寄存器地址空間。這些寄存器地址空間由多個(gè)部分組成,主要包括系統(tǒng)工作狀態(tài)寄存器,記錄系統(tǒng)各個(gè)存儲(chǔ)期間的狀態(tài);系統(tǒng)糾錯(cuò)方案配置寄存器,配置系統(tǒng)可以采用的糾錯(cuò)方式和糾錯(cuò)能力。
(3)增加糾錯(cuò)碼編碼解碼模塊具有容錯(cuò)功能的地址生成。糾錯(cuò)碼可以采用多種方式,如海明碼、CRC碼等。具有容錯(cuò)功能的地址生成模塊使系統(tǒng)可以根據(jù)容錯(cuò)寄存器的內(nèi)容,重新生成數(shù)據(jù)的寫(xiě)入地址和讀出地址。
(4)增加自測(cè)邏輯生成模塊。當(dāng)軟件命令配置了寄存器開(kāi)始進(jìn)行自檢時(shí),自測(cè)邏輯不再處理總線上接收的命令,自動(dòng)生成測(cè)試用代碼和地址進(jìn)行寫(xiě)讀檢測(cè),使系統(tǒng)可以根據(jù)對(duì)存儲(chǔ)顆粒的工作狀態(tài)進(jìn)行有效的分析,并且當(dāng)發(fā)現(xiàn)硬件故障時(shí),就修改寄存器空間中的相關(guān)寄存器,以便系統(tǒng)自動(dòng)啟動(dòng)糾錯(cuò)和容錯(cuò)功能。
(5)修改地址變換和數(shù)據(jù)重組功能模塊。修改后的數(shù)據(jù)重組需要依據(jù)寄存器空間中的故障情況對(duì)數(shù)據(jù)進(jìn)行重新組織,以便達(dá)到容錯(cuò)和糾錯(cuò)的功能。
冗余存儲(chǔ)顆粒的組織
為了實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的容錯(cuò),在存儲(chǔ)顆粒陣列中采用行列二級(jí)冗余組織模式。但是根據(jù)SoC系統(tǒng)的特點(diǎn),需要對(duì)存儲(chǔ)系統(tǒng)顆粒陣列的信號(hào)連線進(jìn)行有針對(duì)性的修改,從而使系統(tǒng)能通過(guò)軟件配置或硬件自檢來(lái)實(shí)現(xiàn)糾錯(cuò)或容錯(cuò),并有效地支持包含糾錯(cuò)容錯(cuò)轉(zhuǎn)換的總體方案。設(shè)計(jì)具有糾錯(cuò)容錯(cuò)功能的存儲(chǔ)系統(tǒng)主要需要考慮以下幾個(gè)方面:①系統(tǒng)的糾錯(cuò)能力。②系統(tǒng)的容錯(cuò)能力。由于存儲(chǔ)系統(tǒng)受到輻射的影響,可能會(huì)發(fā)生不可逆轉(zhuǎn)的硬件錯(cuò)誤,這時(shí)候可以啟動(dòng)系統(tǒng)中的冗余模塊來(lái)實(shí)現(xiàn)容錯(cuò)功能。容錯(cuò)系統(tǒng)正常工作的概率是系統(tǒng)容錯(cuò)能力的衡量標(biāo)準(zhǔn)。③冗余存儲(chǔ)顆粒的數(shù)目。加入冗余顆粒是實(shí)現(xiàn)容錯(cuò)存儲(chǔ)系統(tǒng)的必要條件,但是冗余顆粒的位置、連接方式和控制策略等方面都會(huì)影響整體的容錯(cuò)能力,用盡量少的冗余存儲(chǔ)顆粒實(shí)現(xiàn)盡量強(qiáng)的容錯(cuò)功能是系統(tǒng)的設(shè)計(jì)目標(biāo)。④需要增加的管腳數(shù)目。存儲(chǔ)顆粒的數(shù)目以及存儲(chǔ)顆粒的組織方式都會(huì)影響實(shí)時(shí)信號(hào)處理系統(tǒng)需要外連的管腳數(shù)目。
在綜合考慮了以上四個(gè)方面以后,形成了具有容錯(cuò)糾錯(cuò)的存儲(chǔ)系統(tǒng)中顆粒的排放方式。在原系統(tǒng)中,共有16片512Mbit的存儲(chǔ)顆粒,組織方式如圖3所示。
在容錯(cuò)顆粒組織方式中,冗余存儲(chǔ)模塊的基本排放采用的是行列二級(jí)冗余模式。為了適應(yīng)實(shí)時(shí)信號(hào)處理器的特點(diǎn),新方案對(duì)存儲(chǔ)系統(tǒng)顆粒陣列的信號(hào)連線進(jìn)行了有針對(duì)性的修改,從而使系統(tǒng)能通過(guò)軟件配置或硬件自檢來(lái)實(shí)現(xiàn)糾錯(cuò)或容錯(cuò),并有效地支持了包含糾錯(cuò)容錯(cuò)轉(zhuǎn)換的總體方案。設(shè)在系統(tǒng)中增加i排j列存儲(chǔ)顆粒,則用Mem(i,j)表示此時(shí)的容錯(cuò)存儲(chǔ)系統(tǒng)。信號(hào)線所需要的改動(dòng)包括如下幾個(gè)部分:
(1)每列的顆粒。需要新的8bit數(shù)據(jù)線,新的地址線低2bit,每列增加一根DQS信號(hào)線。
(2)每排增加的顆粒。數(shù)據(jù)和地址與已有的每排顆粒復(fù)用,每排增加一根CS片選信號(hào)。
(3)除CS之外,所有顆粒共用所有控制信號(hào)。存儲(chǔ)系統(tǒng)增加冗余存儲(chǔ)顆粒后,存儲(chǔ)顆粒、信號(hào)連線和所占管腳都需要相應(yīng)地增加。Mem(i,j)存儲(chǔ)系統(tǒng)中關(guān)于顆粒需要增加的資源包括:①共需要8i+2j+ij個(gè)冗余顆粒。②共需增加i根CS信號(hào),j根DQS信號(hào),2j根低位地址信號(hào),8j根數(shù)據(jù)信號(hào)。這樣對(duì)于實(shí)時(shí)信號(hào)處理器,共需增加管腳數(shù)為i+11j,Mem(i,j)存儲(chǔ)系統(tǒng)所具有的容錯(cuò)能力以及Mem(i,j)的選擇將在第4節(jié)進(jìn)行詳細(xì)討論。
邏輯設(shè)計(jì)對(duì)容錯(cuò)的支持
為了實(shí)現(xiàn)糾錯(cuò)容錯(cuò)方案,必須在邏輯設(shè)計(jì)上作出相應(yīng)的改動(dòng),主要包括:①為容錯(cuò)系統(tǒng)分配一定的寄存器地址空間。②增加糾錯(cuò)碼生成、糾錯(cuò)碼解碼模塊,具有容錯(cuò)功能的地址生成。③增加自測(cè)邏輯生成模塊。④修改地址變換和數(shù)據(jù)重組功能模塊。
容錯(cuò)系統(tǒng)的相關(guān)寄存器
為了實(shí)現(xiàn)整個(gè)存儲(chǔ)系統(tǒng)的容錯(cuò)和糾錯(cuò),需要在寄存器堆中為容錯(cuò)系統(tǒng)分配一定的寄存器地址空間。這些寄存器地址空間由多個(gè)部分組成,主要包括:系統(tǒng)工作狀態(tài)寄存器,記錄系統(tǒng)各個(gè)存儲(chǔ)期間的狀態(tài);系統(tǒng)糾錯(cuò)方案配置寄存器,配置系統(tǒng)可以采用的糾錯(cuò)方式和糾錯(cuò)能力。相關(guān)寄存器的功能定義如表1所示(以Mem(i,j)為例)。
評(píng)論