市場定位→作業系統、應用程式、API和程式語言的需求→指令集相對應的改變→相對應的最有效率微架構→該微架構是否反過來製造了對新指令的需要→最終結果→日後的影響
道理很簡單,指令集就是「電腦的語言」,今天既然講明「闡述指令集架構和產品實作之間的互動」,像x86搞得一票CPU怪裡怪氣,那為何不去深入探討自386開始一連串天搖地動的修訂與擴充,到底強迫廠商幹了哪些好事?為了解決哪些人的問題?更不用講IBM和Sun這種「貫徹長期商業策略」的大公司,一切的一切,完全緊緊綁著客戶的需要。
講的更白一點,計算機結構和作業系統教科書,本質上只是從兩個不同的觀點看待一台電腦(所以搞得Andrew Tanenbaum的兩本書的內容竟然可以重複這麼多),我現在就要同時整合這兩者,甚至還得包含程式語言、編譯器與應用程式行為的領域,否則對處理器的分析,根本只是沒有靈魂的空殼。
顯示晶片也是處理器,也一定有其「語言」,連DSP都可以了,有什麼理由不能像處理器一樣的被檢視,而被搞得像化外之民,連關鍵字用詞與意含都和別人不一樣?
大概就是這樣,雖然有點不可為而為之,夜郎自大,以管窺天,就當強迫自己奮發圖強溫故知新的藉口吧。では、ごきげんよう。
3 則留言:
這這這... 這是大哉問耶,你確定要整理喔?以你目前的可用時間,再努力壓搾,都還可能要花上幾年唄。
分批發表吧,還可以問問有沒有出版社有興趣出呢。
我舉一個最近正在撰寫的文章當例子好了:80386的32 bits定址、保護模式、虛擬記憶體和v86 mode。
我就必須詳細解釋一個多工作業系統要求處理器提供哪些功能,以便於實作精巧的記憶體保護、制定各行程執行時的特權層級、解除segment的內部斷裂問題、更有效的中斷處例外處理機制、與提供足敷各應用程式需要的記憶體空間等,進而解釋為何非得要paging才能有v86 mode,以及讓segment selector無足輕重的0:32指標能夠大幅提高記憶體系統的效率等等。
講的更簡單一點,我必須告訴讀者,這些指令集擴充並不是作好玩的,而是拯救眾多programmer和user跳脫水深火熱的地獄。
再拿同樣的精神,去分析各處理器的微架構和新增指令之間的關係。事實上,近代高效能汎用處理器的"software enhancement"遠比那些pipeline diagram還精彩一百倍。
不過,說真的,這張支票的面額開的太大了...
期待你的大作!!加油!!
張貼留言