Re: [問卦] 讀通計算機組織對寫程式有什麼幫助?消失

看板Gossiping作者時間6年前 (2017/11/13 00:54), 編輯推噓233(2363174)
留言413則, 227人參與, 最新討論串1/2 (看更多)
※ 引述《Huffman (HuffmanAlgorithm)》之銘言: : 計算機組織與設計 : 內容就是組合語言 評估計算機效能 自組CPU 記憶體管理 : 想不太透這些與碼農寫程式啥關係 : 有無八卦? 既然八卦板在 40 天內有 4 篇文章的標題提及計算機組織,剛好小弟最近授課進度 與此相關,順手回覆如下,歡迎交流討論。(謎之聲:原來八卦板也能夠討論資訊 工程的課業,這看板實在太萬能了,讚歎 Ptt!) 首先,想像一個情境,你到某一間製造家電的公司服務,擔任軟體工程師的你被主管 要求「讓公司的電扇能夠透過某種時序編碼,得以讓使用者感覺出自然風,而且功耗 要降到最低」,你會怎麼應對呢? 於是你就求助只比 Ptt 大神還遜色一點的 Google,提交以下關鍵字: 「電扇 自然風 控制」 不難發現「用 PIC 單片機製作電扇自然風發生器」[1] 這篇文章,後者開頭寫得很 到位: 「我們使用美國 Microchip 公司的單片機製作了一種電扇自然風發生器,它能有 規律地控制風扇送風的強弱。傳統的電扇通過它可產生自然風,亦可將它直接做在 電扇里,即是自然風電扇。」 依據上面的描述,所謂「產生自然風」的電扇其實就傳統電扇加上特殊的控制,而且 正是時序控制,原來主管的要求還真的跟軟體工程師背景有關,不是特別刁難你呀。 文中提到的 Microchip 公司在 2016 年初分別收購 Micrel 和 Atmel 兩家老字號 的微處理晶片供應商。作為 8-bit 微控制器的領導廠商,Microchip 毛利高達六成 [2],這讓人不免好奇這利潤到底怎麼來?!Microchip 陸續清算低毛利 (< 50%) 的產品,現在該公司著重醫療與健身電子、照明控制、照護與手術等超高毛利的產 業。 舉例來說,在以醫院為背景題材的影集或電影中,我們可見外科醫師以傳統手術刀 切開組織器官,再以絲線結紮止血的畫面,但早在近 100 年前「電刀」的問世, 徹底縮短手術時間、改善傷口癒合,減少病人失血,也降低感染等併發症的機率、 提高醫療品質。「電刀」的英文名稱為 Electrosurgical Unit(縮寫為 ESU), 又稱為高頻電刀,當高頻電流透過器械(電刀筆)作用在人體組織時,會使具有 粘滯性的體液極劇振動,因摩擦而產生熱量,使組織內的水分快速蒸發,以致組織 分離或者凝固,這就是以電能代替傳統手術刀的基本原理。[3] 等等,這跟軟體有 什麼關聯?考慮到腦(神經)外科、眼科、耳鼻喉科、婦產科等較為精細的外科手 術時,電刀必須限定操作的次數 (這說法不精確,主要就是反映損耗的狀況),但 護理人員幾乎不能可能從表面上得知一把電刀到底用了多少次、損耗又如何,這時 就是咱們軟體工程師發揮作用之處,簡單來說,適用精細外科手術的雙極電刀 (bipolar) 裡頭有微控制器,隨時記錄電刀使用的狀況,並作為自我檢驗稽核 機制,避免醫療護理人員過度使用。 忘了說,男人攝護腺的手術自然也跟這類電刀有關,要是軟體沒寫好,讓男人的 功能永久 disable (應該要加上 "d",表示被動態,哎呀,想起來就心好痛),那 就是罪過了。既然上述領域裡頭軟體品質的影響很重大,形式化驗證自然就是關鍵 議題,不過有件事是前提: 「軟體要在什麼等級的硬體上運作,才能確保演算法和各式控制邏輯得以充分 運作呢?」 就前述電扇控制、電刀,還有多種電廠安全監控系統來說,不乏仍採用 8-bit, 顯然不是為了省錢,而是要在最小的空間達到最低功耗且軟硬體本身都要做出 完整的檢驗,甚至要從電路 register-transfer level (RTL)、週邊硬體、軟體 系統,到通訊協定等等,沒有一個環節可放過。畢竟這動輒造成公共安全危機, 資訊系統造成的損失隨便都以十年起跳。 你說,計算機組織重不重要呢?要是資訊系統的研發人員不能很清楚知道 DMA, interrupt, exception / trap / mode switch 的成本,不清楚各種硬體行為, 又如何確保時間精準地符合期待呢?當系統放到到汽車電子和航空系統時,就是 一連串即時系統 [5] 的考量,屆時即便是沒充分處理的 page fault 都會讓 系統陷入不可挽救的境界 (錯過 deadline,在 hard/safe real-time 往往會 釀造悲劇),在多核心的架構中,儘管 cache coherence 的成本看起來都是微秒 (10 的 -6 次方秒) 等級或更小,但累積起來卻很可能造成影響,注意,只要有 一次沒符合規範,就 GG 了 (捏著自己 GG 想想有多痛,我說軟體工程師的 良心)。 不過也不要怕自己做得不夠好,導致他人家破人亡,就不踏入軟體開發,我們 資訊從業人員本該創造更好的數位世界基礎建設,讓世人得以受益,不然我們 的存在還有什麼理由? 對了,在加密貨幣領域中,往往伴隨著虛擬機器,如 Ethereum 的 EVM 作為 執行 smart contract 的基礎 [6],這時你若有充分的計算機組織結構的背景 知識,會讓你開發相關系統軟體時,能夠確保行為更 deterministic, safe, sequentually correct. 希望讀到這裡,您能有點啟發,歡迎來挑戰相關的 作業 sandbox [7] >> 預期目標 - 研讀 形式化驗證,並透過 cbmc 做 model checking 的練習 - 探討 隔離執行環境的建構與應用,思考加密貨幣領域的系統軟體 - 深入學習 GNU Toolchain,涵蓋 GDB 和 GProf - 延伸 simulator 作業,培養軟體設計的技巧和學習嚴謹的系統分析 [1] http://cocdig.com/docs/show-post-626.html [2] https://ycharts.com/companies/MCHP/gross_profit_margin [3] https://www.ntuh.gov.tw/BMED/equipment/DocLib/ %E6%B7%BA%E8%AB%87%E9%9B%BB%E5%88%80.aspx (請將兩行串接) [4] https://hackmd.io/s/H1xxp3pF0 [5] 即時系統和 Linux 的關聯請見: https://www.slideshare.net/jserv/making-linux-do-hard-realtime [6] https://github.com/pirapira/awesome-ethereum-virtual-machine [7] sandbox: https://hackmd.io/s/BJpTWUM1f -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.245.162 ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1510505659.A.9A0.html

11/13 00:55, , 1F
快推 不然大家以為我看不懂
11/13 00:55, 1F

11/13 00:56, , 2F
媽的有神快拜
11/13 00:56, 2F

11/13 00:56, , 3F
太猛啦
11/13 00:56, 3F

11/13 00:56, , 4F
這是讀書筆記吧
11/13 00:56, 4F

11/13 00:57, , 5F
我也是這樣想的
11/13 00:57, 5F

11/13 00:57, , 6F
先推
11/13 00:57, 6F

11/13 00:57, , 7F
jserv@@
11/13 00:57, 7F

11/13 00:58, , 8F
大神先推再看
11/13 00:58, 8F

11/13 00:59, , 9F
116終於不是廢文惹
11/13 00:59, 9F

11/13 01:00, , 10F
對不起,是我們116教師不夠努力,檢討中
11/13 01:00, 10F

11/13 01:01, , 11F
WOWOWOWOWOWOW
11/13 01:01, 11F

11/13 01:02, , 12F
文組滾
11/13 01:02, 12F

11/13 01:03, , 13F
11/13 01:03, 13F

11/13 01:03, , 14F
這是教授還助教來發文嗎
11/13 01:03, 14F

11/13 01:05, , 15F
任何一個受過CS訓練的學生都應該可以上來澄清Arch的用處
11/13 01:05, 15F

11/13 01:05, , 16F
不過我想學生都在忙著準備期中考,就幫他們回覆
11/13 01:05, 16F

11/13 01:05, , 17F
參見大神
11/13 01:05, 17F

11/13 01:06, , 18F
jserv大大
11/13 01:06, 18F

11/13 01:06, , 19F
大神推
11/13 01:06, 19F

11/13 01:08, , 20F
居然在八卦板看到jserv大神 推!
11/13 01:08, 20F

11/13 01:08, , 21F
強者
11/13 01:08, 21F

11/13 01:10, , 22F
靠 想說怎麼讀起來有料 原來是高手寫的
11/13 01:10, 22F

11/13 01:12, , 23F
pusheen 我是說push
11/13 01:12, 23F

11/13 01:13, , 24F
拜讀完 膝蓋痛了一下......
11/13 01:13, 24F

11/13 01:15, , 25F
11/13 01:15, 25F

11/13 01:15, , 26F
怎麼會是膝蓋痛呢?不是GG隱隱作疼啊?!軟體很重要
11/13 01:15, 26F

11/13 01:17, , 27F
唉唉唉唉,在八卦版看到唐鳳還看到敬群大大,小弟我髕
11/13 01:17, 27F

11/13 01:17, , 28F
只能推了
11/13 01:17, 28F

11/13 01:17, , 29F
骨骨折還沒好啊,跪到不能再跪了
11/13 01:17, 29F

11/13 01:18, , 30F
考完研究所就忘光了QQ
11/13 01:18, 30F

11/13 01:21, , 31F
讚讚
11/13 01:21, 31F

11/13 01:21, , 32F
!!!
11/13 01:21, 32F

11/13 01:23, , 33F
有神快拜 剛好最近在念計組
11/13 01:23, 33F

11/13 01:23, , 34F
QQ
11/13 01:23, 34F

11/13 01:24, , 35F
11/13 01:24, 35F

11/13 01:26, , 36F
先推再看
11/13 01:26, 36F

11/13 01:26, , 37F
jserv
11/13 01:26, 37F

11/13 01:27, , 38F
嘻嘻首噓
11/13 01:27, 38F

11/13 01:27, , 39F
幹原來不是
11/13 01:27, 39F
還有 334 則推文
11/13 14:03, , 374F
先跪再說
11/13 14:03, 374F

11/13 14:10, , 375F
推 專業
11/13 14:10, 375F

11/13 14:39, , 376F
跪見宅色夫老師
11/13 14:39, 376F

11/13 14:47, , 377F
...
11/13 14:47, 377F

11/13 15:34, , 378F
@nova06091, 請告知不能存取的網址為何
11/13 15:34, 378F

11/13 15:52, , 379F
???
11/13 15:52, 379F

11/13 15:53, , 380F
11/13 15:53, 380F

11/13 16:03, , 381F
好久沒在台灣看到有人提到CBMC model checker了
11/13 16:03, 381F

11/13 16:05, , 382F
上次還跟一個在微軟研究院的德國佬討論Z3
11/13 16:05, 382F

11/13 16:07, , 383F
微軟用Z3來驗證hyper-v的正確性
11/13 16:07, 383F

11/13 16:09, , 384F
應該是說 VCC 跟 Z3
11/13 16:09, 384F

11/13 16:13, , 385F
話說 jserv 大師近期有計畫來 NTU 演講嗎?
11/13 16:13, 385F

11/13 16:19, , 386F
有神快跪
11/13 16:19, 386F

11/13 17:00, , 387F
推 太神啦
11/13 17:00, 387F

11/13 17:11, , 388F
116不發廢文 浪費ip
11/13 17:11, 388F

11/13 17:39, , 389F
推~最近在學PIC ,畢竟高階語言有他的極限,組語還是很
11/13 17:39, 389F

11/13 17:39, , 390F
重要的
11/13 17:39, 390F

11/13 18:16, , 391F
有神一定要拜!
11/13 18:16, 391F

11/13 18:39, , 392F
太神了 推推
11/13 18:39, 392F

11/13 18:57, , 393F
11/13 18:57, 393F

11/13 19:21, , 394F
老師好,朝聖推
11/13 19:21, 394F

11/13 20:13, , 395F
娘子!快點出來看上帝!
11/13 20:13, 395F

11/13 21:45, , 396F
11/13 21:45, 396F

11/14 00:25, , 397F
今天有偷喊老師的名子 不知道老師有沒有注意到XD
11/14 00:25, 397F

11/14 08:11, , 398F
推 宅色夫
11/14 08:11, 398F

11/14 10:27, , 399F
@chttl5566, 目前研究是RTOS搶佔式排程的model checking
11/14 10:27, 399F

11/14 10:45, , 400F
看謀
11/14 10:45, 400F

11/14 11:39, , 401F
@Derp, 請告知哪一段需要改進,謝謝
11/14 11:39, 401F

11/14 12:31, , 402F
跪推jserv
11/14 12:31, 402F

11/14 14:09, , 403F
回14樓 是助理教授喔
11/14 14:09, 403F

11/14 14:39, , 404F
朝聖
11/14 14:39, 404F

11/14 19:10, , 405F
老師好
11/14 19:10, 405F

11/14 20:32, , 406F
細細看好像蠻有意思~謝謝厲害的長知識教學分享文
11/14 20:32, 406F

11/14 22:42, , 407F
推!
11/14 22:42, 407F

11/15 03:42, , 408F
神出沒
11/15 03:42, 408F

11/15 22:29, , 409F
@over117, 應該先問「為何上班沒辦法達成目標呢?」
11/15 22:29, 409F

11/15 22:30, , 410F
1.因為公司根本沒這需求 2.有的公司不會找你 QQ
11/15 22:30, 410F

11/19 15:55, , 411F
推 jserv 大神
11/19 15:55, 411F

01/25 19:11, , 412F
文組跪著看
01/25 19:11, 412F

03/04 23:16, , 413F
看不懂RRR
03/04 23:16, 413F
文章代碼(AID): #1Q27oxcW (Gossiping)
文章代碼(AID): #1Q27oxcW (Gossiping)