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