甲公司承擔(dān)了一項(xiàng)為宇航系統(tǒng)配套生產(chǎn)高性能嵌入式計(jì)算機(jī)系統(tǒng)的任務(wù),用戶要求該系統(tǒng)要具有高速并發(fā)處理能力、低功耗、高可靠性,并可以有效地防止系統(tǒng)故障的蔓延。根據(jù)用戶對(duì)本項(xiàng)目的要求,甲公司成立了軟/硬件兩個(gè)項(xiàng)目組,總體設(shè)計(jì)由硬件組承擔(dān),負(fù)責(zé)高性能嵌入式計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì),軟件組負(fù)責(zé)確定軟件的技術(shù)需求和應(yīng)用軟件開發(fā)平臺(tái)的軟件設(shè)計(jì)工作。
在處理器選型方面,硬件組王工與軟件組張工在討論采用哪種CPU體系結(jié)構(gòu)方面發(fā)生爭(zhēng)議。目前,流行的處理器結(jié)構(gòu)包括單核結(jié)構(gòu)、多處理器結(jié)構(gòu)、超線程結(jié)構(gòu)、多核結(jié)構(gòu)、共享Cache的多核結(jié)構(gòu)和超線程技術(shù)的多核結(jié)構(gòu)共6種,如圖12-20所示。
王工提出,根據(jù)用戶要求,本嵌入式系統(tǒng)應(yīng)具有高速并行處理能力,采用多處理器結(jié)構(gòu)比較適合,主要理由是多處理器結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單、可支持多個(gè)進(jìn)程在不同處理器上并發(fā)處理:而張工提出,必須分清"多處理器結(jié)構(gòu)"與"多核結(jié)構(gòu)"的優(yōu)點(diǎn)和缺點(diǎn),多處理器結(jié)構(gòu)雖然支持多進(jìn)程的并發(fā)處理,但沒有直接實(shí)現(xiàn)多線程并發(fā)執(zhí)行;多核結(jié)構(gòu)可以直接實(shí)現(xiàn)多線程并發(fā)執(zhí)行。要提高應(yīng)用的并行性就必須利用多個(gè)硬件資源的并行工作,建議采用超線程技術(shù)的多核結(jié)構(gòu)的處理器。請(qǐng)?zhí)顚憟D12-20(f)中的(1)~(8),并用300字以內(nèi)的文字對(duì)上述6種處理器結(jié)構(gòu)的工作原理進(jìn)行簡(jiǎn)要描述。
某軟件公司開發(fā)一項(xiàng)基于數(shù)據(jù)流的軟件,其系統(tǒng)的主要功能是對(duì)輸入的數(shù)據(jù)進(jìn)行多次分析、處理和加工,生成需要的輸出數(shù)據(jù)。需求方對(duì)該系統(tǒng)的軟件可靠性要求很高,要求系統(tǒng)能夠長(zhǎng)時(shí)間無故障運(yùn)行。該公司將該系統(tǒng)設(shè)計(jì)交給王工負(fù)責(zé)。王工給出該系統(tǒng)的模塊示意圖如圖12-18所示。王工解釋:只要各個(gè)模塊的可靠度足夠高,失效率足夠低,則整個(gè)軟件系統(tǒng)的可靠性是有保證的。
李工對(duì)王工的方案提出了異議。李工認(rèn)為王工的說法有兩個(gè)問題:第一,即使每個(gè)模塊的可靠度足夠高,假設(shè)各個(gè)模塊的可靠度均為0.99,但是整個(gè)軟件系統(tǒng)模塊之間全部采用串聯(lián),則整個(gè)軟件系統(tǒng)的可靠度為0.99=0.96,即整個(gè)軟件系統(tǒng)的可靠度下降明顯;第二,軟件系統(tǒng)模塊全部采用串聯(lián)結(jié)構(gòu),一旦某個(gè)模塊失效,則意味著整個(gè)軟件系統(tǒng)失效。
李工認(rèn)為,應(yīng)該在軟件系統(tǒng)中采用冗余技術(shù)中的動(dòng)態(tài)冗余或者軟件容錯(cuò)的N版本程序設(shè)計(jì)技術(shù),對(duì)容易失效或者非常重要的模塊進(jìn)行冗余設(shè)計(jì),將模塊之間的串聯(lián)結(jié)構(gòu)部分變?yōu)椴⒙?lián)結(jié)構(gòu),來提高整個(gè)軟件系統(tǒng)的可靠性。同時(shí),李工給出了采用動(dòng)態(tài)冗余技術(shù)后的軟件系統(tǒng)模塊示意圖,如圖12-19所示。
劉工建議,李工方案中M1和M4模塊沒有采用容錯(cuò)設(shè)計(jì),但M1和M4發(fā)生故障有可能導(dǎo)致嚴(yán)重后果。因此,可以在M1和M4模塊設(shè)計(jì)上采用檢錯(cuò)技術(shù),在軟件出現(xiàn)故障后能及時(shí)發(fā)現(xiàn)并報(bào)警,提醒維護(hù)人員進(jìn)行處理。
注:假設(shè)各個(gè)模塊的可靠度均為0.99