> ==>發信人: ghost.bbs@bbs.sayya.org (ghost), 信區: programming
> ※ 引述《GOLDMEMBER.bbs@bbs.cs.nctu.edu.tw (㊣牛鶴鰻毛人)》之銘言:
> > ※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言:
> > > 問題是在目今的教育體系下
> > > 光是懂結構就是一件很困難的事
> > > 尤其是還有一堆爛書還在那裡說電腦的五大結構
> > 那是叫「五大部門」,鬼才跟你「五大結構」
> 應該不是我吧... XD
> > > 教材的基本觀念都錯了,還能期待能教出什麼學生來
> 最好 gsj 用的電腦,
> 都不是 Intel, AMD, ASUS, Gigabyte 這類公司的設計工程師弄出來的.
> 不然 gsj 也來搞個 gsj 級 Super computer 證明一下嘛.
> 光會掩耳盜鈴話虎爛.
INTEL 公司是在 Fairchild Semiconductor 執行 High Level Language
Hardware Machine 研發計劃之後, 才因研究群解體而冒出來的. 而五大
組成方塊: Input, Output, Memory, Contrl, ALU&R 則是傳統大型主機
(尤其是 IBM 系統)的說法, 而積體電路(Integrated Circuit)一詞也不
是專指今天的以 Pure Silicon 為基座的 CMOS 單體電路, 從控制單元
到其他四個單元之間都是一堆連接線, 把控制單元與 ALU&R 做成同一個
方塊透過 BUS 銜接其他組成方塊的最早機器, 應該是 DEC 的 PDP 這種
Minicomputer 架構, 而 Intel 的微處理機(u-processor)則是將 CPU
(Memory, Control, ALU&R) 全 CMOS 化透過 BUS 連線拆分為 Memory
與 Processor 兩大組成方塊.
Fairchild 高階語言硬體機器之後的電腦, 在指令方面就是多了複雜資
料結構的硬體支援, 最明顯的就是 push/pop stack , call/return ,
比較不明顯的就是 I/O Channel(或 IOP) 變成 DMA 的 FIFO Block
Move 與後來的浮點計算 FPU , 記憶體管理的 MMU .....
受硬體改變最大的當然會是組合語言與高階語言的編譯器與
supporting library, 但這三者(硬體, 組語, 編譯/解譯器)其實是相互
影響的, 但對高階語言的使用者言則是希望使之不受設計更動的影響,
所以一般使用者就是在抽象方塊上概略的(模糊的)學習. 這個抽象概略
的方塊就產生兩種面向, 一方是講如何跟高階化的硬體有效率地對映,
另一方則是往更好用更抽象的擬人語言描述移動, 但這兩個面向並非矛
盾對立的.
如果把作業系統當成一種大型的應用軟體, OS 就會像是顧及硬體
利用效率又兼顧方便使用的人機介面的解譯器(Interpreter), 只是
OS 以支援各種高階語言編譯器與 library 的形式讓使用者對硬體(可
以是跨網路的遠程服務機器或跨硬體的 Cross Compiling 的 Load &
GO 系統研發).
效率化的軟體演算法會靠近與結合硬體, 易用化的抽象敘述會展現
在程式語言的涵義功能及其解譯/編譯器的實現上, 為的是易於完成堪
用軟體的自動化利用, 但這兩者卻是相關與相互影響的, 一旦極端化(
如 CISC 架構概念受 RISC 挑戰, 現在則又再度受耗電, 輕薄短小可行
動挑戰)就會引發不同的論爭而改進.
今天的資訊系統已經像個大型的都會城市的構建與重建改建問題,
軟體工程也遠超過蓋獨立大樓這樣的比喻, 早就是無法脫離像都市規劃
這樣的大系統性分析的考量, 就像在北高兩市建捷運系統, 如果沒有團
隊, 紀律, 工序與方法, 建設的捷運就會一天到晚連累其他建物倒蹋.
Programming 裡的程式語言工具本身, 如語言, 編譯/解譯器設計
應該是另一種專業, 其重要性不亞於 processor 本身的設計, 而這種
專業就得兼顧對硬體的有效對映與使用者設計程式的方便易用性.
現代支援營造工程的工具可以看見: 灌漿的預製水泥車, 起重機調
車, 怪手, 沙石與鋼筋鋼架大卡車等等工具. 而製作器物的效率明顯來
自工具, 而背後則是設計規劃與團隊. 大型建物造好後, 內部的塗裝擺
飾固然是泥水匠, 電匠, 裝簧師的機會但套裝預製會越來越多, 程式規
劃會類似的從工具上組合出團隊.
--
◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234