一種并行存儲(chǔ)器系統(tǒng)的FPGA實(shí)現(xiàn)
現(xiàn)代小衛(wèi)星,通常指80年代以后發(fā)展起來(lái)的小衛(wèi)星。它建立在微電子技術(shù),計(jì)算機(jī)(包括軟件)、微型光學(xué)和機(jī)械、輕型復(fù)合材料及高精機(jī)械加工的基礎(chǔ)上,是航天高技術(shù)發(fā)展的產(chǎn)物。雖然現(xiàn)代小衛(wèi)星的體積和重量很小,成本和風(fēng)險(xiǎn)都很低,但由于選用了高新技術(shù),整個(gè)小衛(wèi)星的容量和性能,即小衛(wèi)星的功能密度是很高的。而且小衛(wèi)星組成星座可拓寬全新的應(yīng)用領(lǐng)域,能滿(mǎn)足通訊、遙感、對(duì)地觀測(cè)、科學(xué)技術(shù)試驗(yàn)及軍事等各方面的需求。因此,現(xiàn)代小衛(wèi)星已作為大衛(wèi)星的必要補(bǔ)充在上述領(lǐng)域顯示出特有的優(yōu)勢(shì),引起了世界各國(guó),包括許多發(fā)展中國(guó)家和尚無(wú)衛(wèi)星研制能力的中小國(guó)家的普遍重視。
本文引用地址:http://2s4d.com/article/201706/349269.htm然而,近地空間和大氣環(huán)境影響著空間系統(tǒng)的規(guī)模、質(zhì)量、復(fù)雜性、可應(yīng)用的高科技技術(shù)和成本,強(qiáng)烈地影響空間系統(tǒng)的運(yùn)行性能和工作壽命。一些空間環(huán)境的相互影響也限制了空間系統(tǒng)技術(shù)潛力的發(fā)揮,使部件或分系統(tǒng)工作不正常,甚至損壞。等離子環(huán)境,特別是處于對(duì)地靜止軌道的等離子環(huán)境,能使裝在衛(wèi)星外表面的設(shè)備和部件不均勻帶電,這些表面電荷產(chǎn)生的電壓可能超過(guò)擊穿電壓,從而導(dǎo)致靜電放電,足以毀壞電子元器件。許多高能空間輻射甚至深入到絕緣器件內(nèi)部,在絕緣電纜和線(xiàn)路板中產(chǎn)生靜電放電。這種體電荷能干擾分系統(tǒng)信號(hào)或中斷電子器件的正常工作。輻射帶中的俘獲粒子、太陽(yáng)耀斑質(zhì)子和銀河宇宙射線(xiàn)能在微電子器件中誘發(fā)單粒子翻轉(zhuǎn)事件。這種高能輻射的總劑量效應(yīng)降低了微電子器件、太陽(yáng)電池陣和敏感器件的性能。因此,為保證整個(gè)系統(tǒng)的正常運(yùn)轉(zhuǎn)和壽命,很多地方都必須選用宇航級(jí)的器件和進(jìn)行冗余設(shè)計(jì)。
單就星載計(jì)算機(jī)而言,到目前為止,高集成密度、高性能的CPU和內(nèi)存還沒(méi)有相應(yīng)的宇航級(jí)器件,在星上用的最多的還是8086和1750A等核加固的、抗輻射的、低帶寬、低MIPS的CPU,靠單片CPU很難滿(mǎn)足現(xiàn)代和未來(lái)小衛(wèi)星星上自主管理、自主定規(guī)、對(duì)地觀測(cè)圖象的壓縮和傳輸、硬件功能軟件化等諸多要求;而且單片CPU一旦損壞,將導(dǎo)致整個(gè)衛(wèi)星失效,又由于其價(jià)格極其昂貴,采用冗余的方案勢(shì)必大大提高小衛(wèi)星的成本。而在采用多CPU并行處理技術(shù)后,不僅可以滿(mǎn)足星上計(jì)算機(jī)數(shù)據(jù)處理能力的要求,而且增加了整個(gè)系統(tǒng)的可靠性。一到兩片CPU的損壞不致引起整個(gè)衛(wèi)星的失效,至多在系統(tǒng)重配置后損失一些性能,甚至可以在保證一定可靠性的前提下,考慮采用軍用級(jí)的、價(jià)格相對(duì)便宜,密度和性能都較高的CPU。
圍繞小衛(wèi)星體積小、重量輕和價(jià)格低廉的特點(diǎn),一個(gè)多CPU共享內(nèi)存的系統(tǒng)(CPU仍然采用有相應(yīng)宇航級(jí)器件的8086)將是比較合適的選擇。同時(shí)為了提高共享內(nèi)存的數(shù)據(jù)通信帶寬,使其不成為整個(gè)系統(tǒng)的瓶頸,本文提出了一個(gè)用ASIC設(shè)計(jì)一個(gè)共享總線(xiàn)開(kāi)關(guān)網(wǎng)絡(luò)(簡(jiǎn)稱(chēng)SBSN,下同),組合成Omega網(wǎng)絡(luò)的方案,以消除對(duì)某一組內(nèi)存的總線(xiàn)競(jìng)爭(zhēng),實(shí)現(xiàn)多CPU對(duì)共享分組存儲(chǔ)系統(tǒng)的低位交叉并行訪問(wèn)。
1 SBSN實(shí)現(xiàn)的Omega網(wǎng)絡(luò)
SBSN是一個(gè)2×2的開(kāi)關(guān),可以級(jí)聯(lián)使用以實(shí)現(xiàn)個(gè)CPU和個(gè)內(nèi)存組的連接,這樣的連接共有N級(jí),從輸入到輸出依次編為0~N-1,通過(guò)對(duì)二進(jìn)制目的內(nèi)存組的編碼來(lái)控制數(shù)據(jù)路徑:從高位開(kāi)始的第I位為0時(shí),第I級(jí)的2×2開(kāi)關(guān)的輸入端與上輸出端連接,否則輸入端與下輸出端連接(參見(jiàn)圖1)。
從理論上說(shuō),采用SBSN,N(=,k為正整數(shù))個(gè)CPU一次訪問(wèn)通過(guò)只能占10。16%,所有其它的置換將引起阻塞。但盡管如此,N個(gè)CPU的Omega網(wǎng)絡(luò)實(shí)現(xiàn)非阻塞連接最多需要通過(guò)的次數(shù)為,從總體上講,Omega網(wǎng)絡(luò)的采用能增加內(nèi)存總線(xiàn)的帶寬,大大提高總線(xiàn)數(shù)據(jù)的吞吐能力。
2 SBSN的設(shè)計(jì)與實(shí)現(xiàn)
作為共享總線(xiàn)開(kāi)關(guān)網(wǎng)絡(luò),SBSN主要是解決總線(xiàn)之間的共享競(jìng)爭(zhēng)與沖突死鎖,將來(lái)自多個(gè)CPU的內(nèi)存讀寫(xiě)信號(hào)分配到相應(yīng)的內(nèi)存模塊組。其內(nèi)部結(jié)構(gòu)框圖如圖2所示。
為了描述CPU間的共享與競(jìng)爭(zhēng),我們把CPU對(duì)內(nèi)存組的訪問(wèn)分為HOLD,READY,RUN這三種關(guān)系。當(dāng)一個(gè)CPU進(jìn)入總線(xiàn)讀寫(xiě)之后,SBSN在總線(xiàn)周期的前兩個(gè)時(shí)鐘將CPU發(fā)送到總線(xiàn)上的數(shù)據(jù)進(jìn)行鎖存:如果數(shù)據(jù)通路已被占用,當(dāng)前CPU就會(huì)進(jìn)入HOLD狀態(tài),直到數(shù)據(jù)通路釋放。也就是說(shuō),如果有兩個(gè)或兩個(gè)以上的CPU要求同時(shí)對(duì)同一內(nèi)存組進(jìn)行訪問(wèn)的話(huà),則只能有一個(gè)CPU獲得訪問(wèn)權(quán),其它的必須等待該CPU總線(xiàn)讀寫(xiě)周期的結(jié)束,在此之后,處于 HOLD狀態(tài)的優(yōu)先級(jí)最高的CPU才會(huì)被釋放;如果通路暢通,SBSN經(jīng)過(guò)一個(gè)短暫的READY狀態(tài)后,在輸出端口仿真出CPU總線(xiàn)周期前兩個(gè)時(shí)鐘的時(shí)序信號(hào),向下一級(jí)傳遞。在理想情況下,8個(gè)CPU可以同時(shí)對(duì)內(nèi)存進(jìn)行訪問(wèn),即8個(gè)CPU都處在RUN狀態(tài)。
因?yàn)橄到y(tǒng)在運(yùn)行過(guò)程中,總是由CPU主動(dòng)向內(nèi)存發(fā)出讀或?qū)懙恼?qǐng)求,并不存在一個(gè)環(huán)狀閉合的數(shù)據(jù)通路,所以不會(huì)有沖突死鎖的情況出現(xiàn)。
SBSN可以支持高位交叉和低位交叉這兩種對(duì)存儲(chǔ)系統(tǒng)的訪問(wèn)方式:對(duì)20位地址總線(xiàn)來(lái)說(shuō),如果采取低位交叉尋址方式,那么系統(tǒng)目標(biāo)模塊的編碼由地址總線(xiàn)的 A2,A1給出,A0和BHE信號(hào)用來(lái)對(duì)低8位和高8位尋址;如果采取高位交叉尋址方式,那么系統(tǒng)目標(biāo)模塊的編碼由地址總線(xiàn)的高四位決定,具體采用哪兩位,則取決于內(nèi)存的編址。低位交叉主要用于對(duì)共享內(nèi)存的并行訪問(wèn),高位交叉則主要用于一CPU對(duì)另一CPU的局部?jī)?nèi)存(雙口)進(jìn)行訪問(wèn)。
采用硬件描述語(yǔ)言(HDL)的輸入方法進(jìn)行SBSN的設(shè)計(jì),雖然有可能會(huì)犧牲一些FPGA資源,但方便了在不同廠家的FPGA上進(jìn)行邏輯綜合和實(shí)現(xiàn)的過(guò)程。因?yàn)橛詈郊?jí)的FPGA在XILINX和ACTEL都有生產(chǎn),但兩者實(shí)現(xiàn)的機(jī)理不同:XILINX的FPGA是SRAM型的,因此使用時(shí)還必須配備相應(yīng)的SROM以實(shí)現(xiàn)對(duì)FPGA片子的加電下載,但它可以進(jìn)行多次刷新和修改,便于在設(shè)計(jì)階段進(jìn)行調(diào)試;ACTEL的宇航級(jí)FPGA采用的熔斷絲技術(shù),只能一次編程下傳,實(shí)際應(yīng)用時(shí)不需任何輔助器件,但缺點(diǎn)是設(shè)計(jì)的每一次修改都必須換用新的FPGA片子。對(duì)于原理樣機(jī)階段而言,主要著眼于功能和時(shí)序的實(shí)現(xiàn),因此本文采用XILINX公司的商業(yè)級(jí)FPGA(XCS20-4PQ208C)進(jìn)行設(shè)計(jì)與調(diào)試。XCS20-4PQ208C屬于SPARTAN系列,是 XILINX公司新近推出的產(chǎn)品。與4000系列相比,SPARTAN中去掉了許多不常用的資源,在價(jià)格上可以便宜很多,對(duì)于SBSN來(lái)講,最重要的是滿(mǎn)足其多達(dá)140個(gè)用戶(hù)的I/O,因此采用XCS20-4PQ208C是融合了性能、容量和價(jià)格的一個(gè)綜合選擇。
對(duì)于其它將來(lái)可能在星上采用的高性能CPU,例如80386,由于其32位地址總線(xiàn)和32位數(shù)據(jù)總線(xiàn)是分開(kāi)的,做在同一塊FPGA內(nèi)部將會(huì)面臨I/O數(shù)不足的問(wèn)題。因此必須將地址總線(xiàn)、數(shù)據(jù)總線(xiàn)、控制總線(xiàn)分在兩塊相互耦合的片子上實(shí)現(xiàn),但其實(shí)現(xiàn)原理與SBSN是完全相同的。
SBSN是我們?cè)谔岣咝巧嫌?jì)算機(jī)處理能力方面一個(gè)有益的嘗試。如果能以一個(gè)相對(duì)簡(jiǎn)單、便宜而又高可靠性的系統(tǒng),達(dá)到3~4倍的加速比因子,那么,對(duì)小衛(wèi)星事業(yè)來(lái)說(shuō),將是一件很有意義的事情。
評(píng)論