PTT評價

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

看板Military標題Re: [分享] F-22猛禽機的飛航控制系統作者
mshockwave
(夏克維夫)
時間推噓18 推:18 噓:0 →:35

雖然回自己的文章有點奇怪 但突然想到一些原文與電腦科學和程式語言的事想跟大家

分享一下。我會盡量寫跟軍事相關的部分 如偏題太多再麻煩版主提醒一下(抖
:
:
: 推 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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 169.234.228.195 (美國)
PTT 網址

kira92507/13 11:42那句不是說原PO啦

OpenGoodHate07/13 12:06記得是勇氣號用java,好奇號的地球的伺服器用AWS

kuma66022407/13 12:25講飛彈那段太不合理

kuma66022407/13 12:25目前軍用運算大部分用於傳感器濾波

homer0007/13 12:29感謝,我以為也是用MIPS這類指標來衡量

homer0007/13 12:34發現被lock-on就趕快trigger interrupt,叫CPU fetch ISR

homer0007/13 12:34來處理(誤

kuma66022407/13 12:36大部分軍用處理器時脈頻寬流量都蠻低

kuma66022407/13 12:36但有專用訊號濾波處理單位

kuma66022407/13 12:37在很少輸入輸出情況下幹掉大量運算

OpenGoodHate07/13 13:00軍工航太用的OS應該都是RTOS,穩定壓倒一切

Iampowerful07/13 13:12t=6的時候要你更新系統,還要你看廣告XD

F04E07/13 13:17kuma說的沒錯軍用處理器大概就MCU等級 但是有專用硬體

F04E07/13 13:18不像家用電腦處理器要包山包海

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

cwjchris07/13 13:25所以可以想像每新增一種武器那個武器系統都要全部重寫

cwjchris07/13 13:25嗎 ?

AaronWang07/13 13:29好文推

momijichan07/13 14:05不少在提F22/35的開發歷程就有提到因為系統複雜化、開

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

momijichan07/13 14:05錄晶片、專用程式語言及相關人材等等在現代反而是個麻

momijichan07/13 14:05煩,其實F22用上powerPC原本是想避這個的,但誰知道反

momijichan07/13 14:05被婊

ckbling07/13 17:28formal verification 在硬體開發已經用了不少 兩個EDA大

ckbling07/13 17:28佬都有自己的產品 但軟體方面的formal verification 就沒

ckbling07/13 17:28硬體用的這麼廣泛了

kira92507/13 17:36軟體上怎麼做formal verification還是大問題啊

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

OpenGoodHate07/13 17:51黑白箱掃描跟單元測試還有Monkey runner但是防呆不

OpenGoodHate07/13 17:51防蠢,你無法保證程度不佳的工程師亂寫

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

OpenGoodHate07/13 17:53式的情況,就會像737max直接出包

OpenGoodHate07/13 17:56一般商規超大又超復雜的系統要用測試驅動開發的方式

OpenGoodHate07/13 17:56走,也就是你每個工程師寫的功能單元就要把測試的白

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

ejsizmmy07/13 18:26高階有一個很著名的呀,拿計算機程式當名字的Ada語言

ejsizmmy07/13 18:27阿兜仔拿這個語言射火箭

tonyatta07/13 19:51hard real time才是價值呀

volup07/13 19:58原po是指大量thread同步執行的時候,你無法保證這個thread

volup07/13 19:59多久會被CPU輪詢一次嗎?

miname07/13 20:42RTOS不會有thread, 每個task報上自己最長所需執行時間, 每

miname07/13 20:43個task加總超過deadline就GG 。原po是說最長所需時間很難

miname07/13 20:43估,比如說有cache的架構要估最長時間就要估cache miss的

miname07/13 20:43時間,最長時間一樣那幹嘛花錢做cache XD

miname07/13 20:46所以你要弄有cache就要提出保證說hit rate至少XX%以上,這

miname07/13 20:46個趴數不能亂喊,必須要能夠證明,所以難估

suntex0107/13 21:45ADA95啦...

suntex0107/13 21:47有些雷達系是跑RTOS linux.現在很缺會寫ada95的.

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

mikechang07/14 10:11覺得前陣子Boeing starliner射失敗一堆軟體問題跟二流

mikechang07/14 10:11軟體人才關係滿大的,幾十個問題可以修…

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

upeo07/14 13:49