星期二, 7月 08, 2008

路線調整:指令集擴充與處理器微架構之間的互動關係

雖然已經想破頭想很久了這是立刻就要挑戰的方向,不限於general purpose CPU,也將涵蓋GPU之類的顯示繪圖系統(這是我唯一和其他人進行「市場區隔」的方法)。簡而言之,過程如下:

市場定位→作業系統、應用程式、API和程式語言的需求→指令集相對應的改變→相對應的最有效率微架構→該微架構是否反過來製造了對新指令的需要→最終結果→日後的影響

道理很簡單,指令集就是「電腦的語言」,今天既然講明「闡述指令集架構和產品實作之間的互動」,像x86搞得一票CPU怪裡怪氣,那為何不去深入探討自386開始一連串天搖地動的修訂與擴充,到底強迫廠商幹了哪些好事?為了解決哪些人的問題?更不用講IBM和Sun這種「貫徹長期商業策略」的大公司,一切的一切,完全緊緊綁著客戶的需要。

講的更白一點,計算機結構和作業系統教科書,本質上只是從兩個不同的觀點看待一台電腦(所以搞得Andrew Tanenbaum的兩本書的內容竟然可以重複這麼多),我現在就要同時整合這兩者,甚至還得包含程式語言、編譯器與應用程式行為的領域,否則對處理器的分析,根本只是沒有靈魂的空殼。

顯示晶片也是處理器,也一定有其「語言」,連DSP都可以了,有什麼理由不能像處理器一樣的被檢視,而被搞得像化外之民,連關鍵字用詞與意含都和別人不一樣?

大概就是這樣,雖然有點不可為而為之,夜郎自大,以管窺天,就當強迫自己奮發圖強溫故知新的藉口吧。では、ごきげんよう。

3 則留言:

匿名 提到...

這這這... 這是大哉問耶,你確定要整理喔?以你目前的可用時間,再努力壓搾,都還可能要花上幾年唄。
分批發表吧,還可以問問有沒有出版社有興趣出呢。

molesterwaterball 提到...

我舉一個最近正在撰寫的文章當例子好了:80386的32 bits定址、保護模式、虛擬記憶體和v86 mode。

我就必須詳細解釋一個多工作業系統要求處理器提供哪些功能,以便於實作精巧的記憶體保護、制定各行程執行時的特權層級、解除segment的內部斷裂問題、更有效的中斷處例外處理機制、與提供足敷各應用程式需要的記憶體空間等,進而解釋為何非得要paging才能有v86 mode,以及讓segment selector無足輕重的0:32指標能夠大幅提高記憶體系統的效率等等。

講的更簡單一點,我必須告訴讀者,這些指令集擴充並不是作好玩的,而是拯救眾多programmer和user跳脫水深火熱的地獄。

再拿同樣的精神,去分析各處理器的微架構和新增指令之間的關係。事實上,近代高效能汎用處理器的"software enhancement"遠比那些pipeline diagram還精彩一百倍。

不過,說真的,這張支票的面額開的太大了...

哲之地 提到...

期待你的大作!!加油!!