基礎:計算機是什麼
計算機組織(computer organization)
如果說結構是餐廳承諾的菜單(這些菜、這個價格、奶油蒜蝦是這個意思),那組織就是廚房:有幾個爐子、冰箱放哪、誰切菜誰擺盤、訂單怎麼從收銀台流到廚師。兩家餐廳可以提供一模一樣的菜單,廚房運作卻天差地別。計算機組織就是一台電腦的廚房——實際執行結構契約的元件排列方式。
具體來說,組織涵蓋你能指得出來的基本元件:處理器內部的控制單元與資料路徑、暫存器、負責運算的算術邏輯單元、記憶體系統與其快取,以及連接一切的匯流排。它回答「怎麼做」的問題:一個加法實際上如何讓資料流經導線與加法器、記憶體如何排布、每個部件跑多快。結構說「把兩個數字相加」;組織則決定這個加法是用慢而簡單的加法器,還是快而巧妙的加法器,以及它如何接到機器的其餘部分。
組織與微架構之間的界線模糊,這兩個詞常被交替使用;許多作者把組織當成較廣、較傳統的詞,把微架構當成較現代、聚焦於處理器的詞。對初學者真正重要的,是它與結構的區隔:同一份結構承諾可以由許多不同的組織來兌現,在成本、速度與功耗之間做取捨。正是這份自由,讓晶片每隔幾年就能變快,而舊軟體仍能原封不動地執行。
一顆平價晶片和一顆高階晶片可能共用同一個結構,但便宜那顆的組織也許用「位移加相加」花好幾個週期做乘法,而昂貴那顆有專用的快速乘法器,一個週期就完成。結果相同,廚房卻大不相同。
一個結構承諾,多種可能的組織。
組織與微架構幾乎是同義詞,不必為它們之間的界線傷腦筋。真正重要的界線,是它們兩者與結構(ISA)之間的界線。
又稱
另見