SpaceX 最新的載人龍飛船在美國肯尼迪航天中心 39A 發(fā)射臺(tái)成功發(fā)發(fā)射。在經(jīng)過將近一整天的飛行后,搭乘美國SpaceX載人龍飛船的兩位NASA宇航員終于進(jìn)入國際空間站,與等在那里的宇航員正式會(huì)面,這預(yù)示著全球商業(yè)載人航天時(shí)代的到來。
除了創(chuàng)造歷史之外,SpaceX的龍飛船5384倍的主芯片降本成效也足以讓半導(dǎo)體業(yè)者振奮。
宇航級(jí),用不起
在航天圈里,有一種器件如貴族般存在:
宇航級(jí)器件
一個(gè)二極管只要上天驗(yàn)證成功,
就可以從一個(gè)工業(yè)級(jí)十八線小明星躍升為
宇航級(jí)一線大明星,
身價(jià)可以倍增上百倍甚至上萬倍。
以現(xiàn)有載人飛船搭載的星載計(jì)算機(jī)和控制器舉例,
一共14個(gè)系統(tǒng),
為了追求高可靠性,
每個(gè)系統(tǒng)1+1備份,
一共28個(gè)控制器,
成本總計(jì)約1.4億人民幣!
而SpaceX的龍飛船主控系統(tǒng)的芯片組,
僅用了2.6萬人民幣,
成本相差5384倍!
Elon Musk到底是如何做到的?
我們看以下幾條重要的知識(shí)點(diǎn)。
知識(shí)點(diǎn)
1、 SpaceX 獵鷹九號(hào)和龍飛船用的都是Intel雙核的x86處理器;
2、 操作系統(tǒng)用的是Linux,還有LabView和Matlab;
3、 軟件工程用的是C++,有些時(shí)候也用Python;
4、 整個(gè)主控程序只有幾十萬行代碼。
工業(yè)級(jí)器件小屌絲的困境:粒子翻轉(zhuǎn)
航天器所有的器件要經(jīng)歷很苛刻很苛刻的環(huán)境。
首先發(fā)射時(shí)要禁得住劇烈的抖動(dòng)和很高的溫度,
才能走出地球。
而真正的煉獄在入軌后才剛剛開始,
面對(duì)太陽面的時(shí)候,溫度迅速提升,最高到120°C
背離太陽面的時(shí)候,溫度驟減,最低到-150°C
就這樣90分鐘一圈又一圈,周而復(fù)始,
每圈都是270°C的溫差。
而對(duì)于電子器件來說,溫度不是最難熬的,
最難熬的是太空中的輻射,
這些輻射有來自地球的召喚:地球磁場(chǎng)
也有來自太陽的問候:高能粒子
還可能有來自三體文明的問候:
其他太陽系以外的粒子。
而這些粒子,將引發(fā)電子器件的神經(jīng)紊亂,
專業(yè)名詞是:粒子翻轉(zhuǎn)
它將很Surprise地告訴星載計(jì)算機(jī)和星載存儲(chǔ)器
“下面將是見證奇跡發(fā)生的一刻!”
“我要把1變成0,然后再把0變成1。”
有些人問了,多大點(diǎn)事啊,不就差個(gè)1嗎?!
但是在比特界,差一位就可差之千里。
舉個(gè)栗子:
如果指令20是向上爬升,指令24是停止推進(jìn),
后果是難以想象的。
所以如果發(fā)生了1和0不分的情況,
整個(gè)飛行器的運(yùn)算結(jié)果曾導(dǎo)致非常大的災(zāi)難。
在1996年,阿里安501火箭,
雖然沒有粒子翻轉(zhuǎn),
但是系統(tǒng)試圖將一個(gè)64位的數(shù)字,
放到一個(gè)16位的地址里面去,
隨即發(fā)生了1/0錯(cuò)亂的現(xiàn)象。
結(jié)果在點(diǎn)火37秒后,
火箭開始側(cè)翻,
隨之爆炸,
因?yàn)檫@個(gè)“小”問題,
那次發(fā)射損失高達(dá)3.7億美金!
回到主題,既然粒子翻轉(zhuǎn)這么恐怖,
那SpaceX如何做到發(fā)現(xiàn)問題和解決問題的呢?
很簡(jiǎn)單:民主決策
技術(shù)名詞叫:parity bits
同位位元
既然判斷不了一個(gè)是否翻轉(zhuǎn),
那就多放幾個(gè)一樣的設(shè)備,
通過比較,把不一樣的結(jié)果給踢出去。
攢火箭硬件選擇
上文提到,SpaceX沒有選擇用貴族宇航級(jí)器件,
而是選擇了經(jīng)典廠牌Intel的X86雙核處理器,
而SpaceX也沒有用雙核做一件事,
而是把雙核拆成了兩個(gè)單核,
分別計(jì)算同樣的數(shù)據(jù)。
每個(gè)系統(tǒng)配置3塊芯片做冗余,
也就是6個(gè)核做計(jì)算。
如果其中1個(gè)核的數(shù)據(jù)和其他5個(gè)核不同,
那么主控系統(tǒng)會(huì)告訴這個(gè)核重新啟動(dòng),
再把其他5個(gè)核的數(shù)據(jù)拷貝給重啟的核,
從而達(dá)到數(shù)據(jù)一直同步。
周而復(fù)始,不讓一個(gè)核掉隊(duì)。
據(jù)SpaceX前火箭總師John Muratore透露,
龍飛船一共有18個(gè)系統(tǒng),
每個(gè)系統(tǒng)配置了3塊X86芯片,
龍飛船一共有54塊。
而獵鷹九號(hào)一共有9個(gè)分立式發(fā)動(dòng)機(jī),
每個(gè)發(fā)動(dòng)機(jī)配置了3塊X86芯片,
加上主控系統(tǒng)配置了3塊,
獵鷹九號(hào)一共有30塊這樣的芯片。
獵鷹九號(hào)主控芯片的總價(jià)約:
1.4萬人民幣,2000美元!
我差點(diǎn)砸了手里的X1,
是它阻攔了我攢火箭的大計(jì)!
更讓SpaceX開心的事情,
是Intel X86的程序員一抓一大把啊,
而專業(yè)宇航級(jí)器件的程序用的基本都是特定語言,
程序員比元器件還難找。
而且硬件工程師壓力也小,
X86芯片隨便造,
燒壞了?再來1個(gè)。不不,再買一打!
可是宇航級(jí)器件僅僅是測(cè)試費(fèi),
就都?jí)蛟儋I一車X86芯片的。
攢火箭軟件選擇
SpaceX就用的開源Linux寫的操作系統(tǒng),
而Linux用隨便一臺(tái)電腦就可以編寫。
同樣的,SpaceX程序員最愛的還是C++,
用開源的GCC或者GDB做火箭的主控程序。
SpaceX還用LabView,
一款圖形化編輯語言,
對(duì)于火箭程序來講,
它更容易實(shí)現(xiàn)可視化和流程化,
更容易做復(fù)雜的算法設(shè)計(jì)和數(shù)據(jù)分析。
SpaceX也用Matlab,
在仿真和矩陣計(jì)算上,真的很好用。
而且,龍飛船,獵鷹九號(hào),獵鷹重型,
分享著同一款代碼,
分享著同一類迭代,
分享著同一種喜悅,
多么的模塊化,
多么的互聯(lián)網(wǎng)…
大數(shù)據(jù)監(jiān)控和測(cè)試
2018年,SpaceX一共發(fā)射21次,
一個(gè)公司占全球發(fā)射數(shù)量約20%,
而SpaceX的工程師和分析師,
手里有大量的測(cè)試數(shù)據(jù)和實(shí)際數(shù)據(jù),
而且他們也被鼓勵(lì)用不同的維度,
去檢驗(yàn)飛行器的安全性,
形成最新的也最實(shí)用的測(cè)試程序,
從而降低實(shí)測(cè)成本。
同時(shí),Continuous Integration
持續(xù)集成也被應(yīng)用在了程序測(cè)試上。
持續(xù)集成
為了配合敏捷開發(fā)(相對(duì)于瀑布開發(fā))的速度和效率而產(chǎn)生的一個(gè)用于編譯、測(cè)試、發(fā)布、部署的工具。
通過這種辦法,
可以讓團(tuán)隊(duì)每時(shí)每刻在持續(xù)的基礎(chǔ)上,
收到反饋并進(jìn)行改進(jìn),
不必等到開發(fā)周期后期才尋找和修復(fù)缺陷。
而且火箭程序不同于其他,
會(huì)進(jìn)行“斷弦式”測(cè)試,
突然關(guān)閉一臺(tái)電腦,
來看看發(fā)動(dòng)機(jī)到底有什么反應(yīng)。
總結(jié)
航天已經(jīng)經(jīng)歷了60年的歷史,
每一次階躍其實(shí)都伴隨著各類器件技術(shù)革新,
比如:
1950年代的晶體管技術(shù),
1970年代的微控制器技術(shù),
1980年代的數(shù)字信號(hào)處理技術(shù),
1990年代的高性能存儲(chǔ)技術(shù),
現(xiàn)在,芯片工藝從28nm,16nm,10nm到7nm,
工藝的提升也增加了芯片在太空中的抗輻射性能,
讓商業(yè)器件在太空中應(yīng)用可行性大大提升!
伴隨航天成長的是經(jīng)典的:摩爾定律。
但是摩爾定律到現(xiàn)在在地面?zhèn)榷伎焓Я耍?/p>
而在航天側(cè)還沒有開始。
責(zé)任編輯:pj
-
控制器
+關(guān)注
關(guān)注
112文章
16214瀏覽量
177479 -
Linux
+關(guān)注
關(guān)注
87文章
11232瀏覽量
208949 -
半導(dǎo)體行業(yè)
+關(guān)注
關(guān)注
9文章
403瀏覽量
40482
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論