Re: [分享] F-22猛禽機的飛航控制系統

看板Military作者 (夏克維夫)時間3年前 (2020/07/13 11:38), 編輯推噓18(18035)
留言53則, 19人參與, 3年前最新討論串2/2 (看更多)
雖然回自己的文章有點奇怪 但突然想到一些原文與電腦科學和程式語言的事想跟大家 分享一下。我會盡量寫跟軍事相關的部分 如偏題太多再麻煩版主提醒一下(抖 : : : 推 OpenGoodHate: 何時史塔克工業要改用C#/Java 記得叫我 07/13 09:50 如果是航太產業整個來看的話 NASA很早就在用Java囉~ 大概在2000初期左右 當然 現在有沒有繼續用就不知道了 : 推 homer00: 覺得C++算相對高級的語言了,很多SoC都用C而已;不過好奇戰 07/13 09:58 如果是20~30年前的話C++的確是高階語言 但現代電腦科學從來都沒把他歸類成高階XDD : → homer00: 機上面CPU的computing power大概是甚麼程度的 07/13 09:58 這個問題就是我這篇回文主要想講的:軍工業的所需要的電腦 跟我們一般所熟悉的電腦 在「如何度量」上有很大的不同 一般消費型電腦或者科學運算用的電腦 但評估「快不快」的時候,大多在意的是流量/ 頻寬(throughput)。例如顯卡標榜的 XXX FLOPS (Floating Point Op Per Second) 只要看到 "per second" 就是在問每秒鐘能做多少事情...很可惜這對軍用電腦來講 不是最在意的事。舉個例子來講好了: t=0 的時候一顆飛彈來襲,必須要在 t=10 之前做出反應要不然會在 t=12 的時候被擊中。今天我們拿 Intel 最新最屌的i9處理器 搭配世界前500快的超級電腦 (Top500) 在用的作業系統。每秒鐘大概能處理3億件 工作,所以十秒鐘他總共能夠處理完 30億件任務。但是,這樣的系統從來都沒跟你 保證過「飛彈來襲」的這件事,是在這完成的30億件任務裡面啊 XDDD 很有可能他這10秒鐘都沒處理這件事 然後飛行員就掰了 因此這種機上電腦 或是更廣泛一點的領域像是核能電廠的控制電腦 在意的是延遲 (latency),也就是當任務產生之後,最糟的情況下 能夠在多少時間內完成。 要達成軍方所要求的延遲,作業系統佔很大的一部份,然後其實硬體也是,而且其實跟 一般大家想的剛好相反:有著比較簡單一點的處理器設計其實比較合適。 簡單來解釋就是如果有較為簡潔的硬體設計的話 不確定性就比較低,進而在預估 前面提到的「最糟時限(deadline)」上更為容易 也就是說如果你真的去量測最新戰機的電腦的時脈 很有可能才大概 1GHz,甚至幾百MHz 因為他們根本不太在意這個時脈。如果幾百MHz的處理器+他們的系統就能滿足延遲條件 他們幹嘛花大錢去買跟消費型電腦同等級的硬體 : → kira925: 用C是很合理的 C++完全不適合做OS級開發 07/13 10:20 XDDDD Google 自家最新的作業系統 Fuchsia (https://github.com/fuchsia-mirror) 就是主要用C++開發的。雖然他的driver大多是用C,雖然他們有想要轉移成用Rust, 但短期內他還會是一個C++作業系統 : 推 kira925: 我比較好奇你怎麼會這麼低看C... 07/13 10:37 : → kira925: C作為程式語言的歷史地位可能是前無古人的... 07/13 10:37 咦咦咦咦咦?!我沒有啊 我說的是二流的人才不是二流的語言啊XD 我個人的專業就是在做給C/C++的編譯器咧。怎麼可能會討厭C,但應該就是 都做到編譯器了,更了解C/C++,所以才會知道它一卡車的缺點 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 169.234.228.195 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Military/M.1594611520.A.2C0.html

07/13 11:42, 3年前 , 1F
那句不是說原PO啦
07/13 11:42, 1F

07/13 12:06, 3年前 , 2F
記得是勇氣號用java,好奇號的地球的伺服器用AWS
07/13 12:06, 2F

07/13 12:25, 3年前 , 3F
講飛彈那段太不合理
07/13 12:25, 3F

07/13 12:25, 3年前 , 4F
目前軍用運算大部分用於傳感器濾波
07/13 12:25, 4F

07/13 12:29, 3年前 , 5F
感謝,我以為也是用MIPS這類指標來衡量
07/13 12:29, 5F

07/13 12:34, 3年前 , 6F
發現被lock-on就趕快trigger interrupt,叫CPU fetch ISR
07/13 12:34, 6F

07/13 12:34, 3年前 , 7F
來處理(誤
07/13 12:34, 7F

07/13 12:36, 3年前 , 8F
大部分軍用處理器時脈頻寬流量都蠻低
07/13 12:36, 8F

07/13 12:36, 3年前 , 9F
但有專用訊號濾波處理單位
07/13 12:36, 9F

07/13 12:37, 3年前 , 10F
在很少輸入輸出情況下幹掉大量運算
07/13 12:37, 10F

07/13 13:00, 3年前 , 11F
軍工航太用的OS應該都是RTOS,穩定壓倒一切
07/13 13:00, 11F

07/13 13:12, 3年前 , 12F
t=6的時候要你更新系統,還要你看廣告XD
07/13 13:12, 12F

07/13 13:17, 3年前 , 13F
kuma說的沒錯軍用處理器大概就MCU等級 但是有專用硬體
07/13 13:17, 13F

07/13 13:18, 3年前 , 14F
不像家用電腦處理器要包山包海
07/13 13:18, 14F

07/13 13:19, 3年前 , 15F
我一個表哥以前就是負責寫F22武器系統的,這篇很準
07/13 13:19, 15F

07/13 13:25, 3年前 , 16F
所以可以想像每新增一種武器那個武器系統都要全部重寫
07/13 13:25, 16F

07/13 13:25, 3年前 , 17F
嗎 ?
07/13 13:25, 17F

07/13 13:29, 3年前 , 18F
好文推
07/13 13:29, 18F

07/13 14:05, 3年前 , 19F
不少在提F22/35的開發歷程就有提到因為系統複雜化、開
07/13 14:05, 19F

07/13 14:05, 3年前 , 20F
發人材流失及商源問題,過去常用的特規處理器或是可燒
07/13 14:05, 20F

07/13 14:05, 3年前 , 21F
錄晶片、專用程式語言及相關人材等等在現代反而是個麻
07/13 14:05, 21F

07/13 14:05, 3年前 , 22F
煩,其實F22用上powerPC原本是想避這個的,但誰知道反
07/13 14:05, 22F

07/13 14:05, 3年前 , 23F
被婊
07/13 14:05, 23F

07/13 17:28, 3年前 , 24F
formal verification 在硬體開發已經用了不少 兩個EDA大
07/13 17:28, 24F

07/13 17:28, 3年前 , 25F
佬都有自己的產品 但軟體方面的formal verification 就沒
07/13 17:28, 25F

07/13 17:28, 3年前 , 26F
硬體用的這麼廣泛了
07/13 17:28, 26F

07/13 17:36, 3年前 , 27F
軟體上怎麼做formal verification還是大問題啊
07/13 17:36, 27F

07/13 17:48, 3年前 , 28F
推這篇專業好文,敲碗想知道美國軍方程式語言應用現況
07/13 17:48, 28F

07/13 17:51, 3年前 , 29F
黑白箱掃描跟單元測試還有Monkey runner但是防呆不
07/13 17:51, 29F

07/13 17:51, 3年前 , 30F
防蠢,你無法保證程度不佳的工程師亂寫
07/13 17:51, 30F

07/13 17:53, 3年前 , 31F
我說的是一般商規系統的測試方法,現在大量用外包程
07/13 17:53, 31F

07/13 17:53, 3年前 , 32F
式的情況,就會像737max直接出包
07/13 17:53, 32F

07/13 17:56, 3年前 , 33F
一般商規超大又超復雜的系統要用測試驅動開發的方式
07/13 17:56, 33F

07/13 17:56, 3年前 , 34F
走,也就是你每個工程師寫的功能單元就要把測試的白
07/13 17:56, 34F

07/13 17:56, 3年前 , 35F
箱寫完,缺點是開發時間會拉長或是找不到懂精神的人
07/13 17:56, 35F

07/13 18:26, 3年前 , 36F
高階有一個很著名的呀,拿計算機程式當名字的Ada語言
07/13 18:26, 36F

07/13 18:27, 3年前 , 37F
阿兜仔拿這個語言射火箭
07/13 18:27, 37F

07/13 19:51, 3年前 , 38F
hard real time才是價值呀
07/13 19:51, 38F

07/13 19:58, 3年前 , 39F
原po是指大量thread同步執行的時候,你無法保證這個thread
07/13 19:58, 39F

07/13 19:59, 3年前 , 40F
多久會被CPU輪詢一次嗎?
07/13 19:59, 40F

07/13 20:42, 3年前 , 41F
RTOS不會有thread, 每個task報上自己最長所需執行時間, 每
07/13 20:42, 41F

07/13 20:43, 3年前 , 42F
個task加總超過deadline就GG 。原po是說最長所需時間很難
07/13 20:43, 42F

07/13 20:43, 3年前 , 43F
估,比如說有cache的架構要估最長時間就要估cache miss的
07/13 20:43, 43F

07/13 20:43, 3年前 , 44F
時間,最長時間一樣那幹嘛花錢做cache XD
07/13 20:43, 44F

07/13 20:46, 3年前 , 45F
所以你要弄有cache就要提出保證說hit rate至少XX%以上,這
07/13 20:46, 45F

07/13 20:46, 3年前 , 46F
個趴數不能亂喊,必須要能夠證明,所以難估
07/13 20:46, 46F

07/13 21:45, 3年前 , 47F
ADA95啦...
07/13 21:45, 47F

07/13 21:47, 3年前 , 48F
有些雷達系是跑RTOS linux.現在很缺會寫ada95的.
07/13 21:47, 48F

07/13 21:47, 3年前 , 49F
十年前我去面試其中一個看到ada95還說.很少在resume看到
07/13 21:47, 49F

07/14 10:11, 3年前 , 50F
覺得前陣子Boeing starliner射失敗一堆軟體問題跟二流
07/14 10:11, 50F

07/14 10:11, 3年前 , 51F
軟體人才關係滿大的,幾十個問題可以修…
07/14 10:11, 51F

07/14 13:49, 3年前 , 52F
不過使用RISC架構這個方向是對的,沒想到PowerPc變成孤兒而
07/14 13:49, 52F

07/14 13:49, 3年前 , 53F
07/14 13:49, 53F
文章代碼(AID): #1V2zT0B0 (Military)
文章代碼(AID): #1V2zT0B0 (Military)