计算机组成与架构综述学习报告
計算機組成與架構綜述學習報告
計算機系統的指令集ISA的演進過程是怎樣的?
第一階段關鍵詞:集成電路、CISC、432、8086、IBM PC
集成電路在摩爾定律的預言下快速發展,使得CPU的控制單元的存儲空間變大,從而能實現更復雜的指令集(CISC)。戈登·摩爾(因特爾的創始人之一)啟動了iAPX-432項目,并在上面投入了大量的人力物力,對其寄予厚望,希望該指令集延續英特爾的一生。但其存在嚴重的性能問題,最終在1986年停止使用。與此同時,由于該項目未能在指定時間按時交付,Intel給了新團隊52周的時間來開發新的ISA用于交付,于1978年推出大名鼎鼎的"8086"。8086在三年后為IBM所選用,之后Intel與微軟公司結成了所謂的Windows-Intel(Wintel)商業聯盟,壟斷了個人計算機軟硬件平臺至今幾十年獲得了豐厚的利潤,x86架構也因此幾乎成為了個人計算機的標準處理器架構。
第二階段關鍵詞:從CISC到RISC
CISC不僅包含了處理器常用的指令,還包含了許多不常用的特殊指令。其指令數目比較多,所以稱為復雜指令集。RISC僅包含處理器常用的指令,而對于不常用的操作,則通過執行多條常用指令的方式來達到同樣的效果。由于其指令數目比較精簡,所以稱為精簡指令集。CPU誕生的早期,CISC曾是主流,因為它可以使用較少的指令完成較多的操作。但是隨著指令集的發展,越來越多的特殊指令被添加到CISC指令集中,CISC的很多缺點開始暴露出來,如:
- 典型程序的運算過程中所使用到的80%指令,只占所有指令類型的20%,即CISC指令集定義的指令,只有20%被經常用到,而有80%則很少被用到。
- 那些很少被用到的特殊指令尤其讓CPU設計變得極為復雜,大大增加了硬件設計的時間成本與面積開銷。
在使用RISC后專家發現,程序運行速度顯著快于基于CISC的CPU,由于上述原因,自RISC誕生之后,基本上所有現代指令集架構都選擇使用RISC架構。
第三階段關鍵詞:VLIW EPIC Itanium
VLIW:(Very Long Instruction Word)超長指令字是一種非常長的指令組合,它把許多條指令連在一起,增加了運算的速度。超長指令字(VLIW)是指令級并行,超線程是線程級并行,而多內核則是芯片級并行。這三種方式都是提高并行計算性能的有效途徑。其中,VLIW(超長指令字)體系結構是美國Multiflow和Cydrome公司于20世紀80年代設計的體系結構,EPIC體系結構就是從VLIW中衍生出來的,與RISC的優化思路一樣,VLIW和EPIC都是將工作從硬件轉移到了編譯器上。其中第一個EPIC處理器被命名為Itanium,但現實是事與愿違的,Itanium對編譯器的要求太高了,實現不了,項目夭折了。最終還是64bit的X86而非Itanium接替了32bit的X86。
VLIW在CPU領域算是失敗的,但卻在DSP領域獲得了成功。根本原因是DSP特殊的應用場景正好發揮了VLIW結構的優勢,避開了它的短處。由于數字信號處理領域的算法比較單一穩定,同時是運算密集型程序,并不需要通用場景下的實時控制。并且其程序運行有嚴格的時間要求,cache這種不可控時間的結構就不適合了,通常采用固定周期的TCM作為緩存,這樣內存訪問時間就固定了。有了上述的特征,靜態編譯在通用場合下面臨的那些困難就不存在了,而其更高效的并行運算能力和簡化的硬件結構被完全發揮出來。
第四階段關鍵詞:PC與后PC時代RISC與CISC的較量
雖然自RISC提出以來,RISC已經取代CISC成為現代指令集架構的主流,但是,由于Intel公司的巨大成功與維護軟件的向后兼容性,x86作為一種CISC的架構被一直保留下來。事實上,Intel公司通過內部“微碼化”的方法克服掉了CISC架構的部分缺點,加上Intel高超的CPU設計水平與工藝制造水平,使得x86處理器在PC時代一直保持著旺盛的戰斗力,不斷刷新個人計算機處理器芯片性能的極限。所謂“微碼化”是指將復雜的CISC指令先用硬件解碼器翻譯成對應的內部簡單指令(微碼)序列,然后送給處理器流水執行的方法。但是額外的硬件解碼器同樣也為帶來額外的復雜度與面積開銷,這是x86架構作為一種CISC架構不得不付出的代價。
2007年,蘋果借助iPhone推動了后PC時代的到來。智能手機公司使用其他公司的設計構建自己的系統而非直接購買微處理器,移動設備設計人員重視芯片面積、能效與性能,這對CISC指令集架構不利。自2011年的峰值以來,x86的出貨量每年下降了近10%,而帶有RISC處理器的芯片的數量飆升至200億。如今,99%的32位和64位的處理器都是RISC指令集架構。CISC贏得了PC時代的后期階段,而RISC贏得了后PC時代。
當前以馮諾依曼為基礎的計算機體系結構面臨著哪些挑戰?
遇到的挑戰主要為摩爾定律和登納德縮放定律的失效。摩爾定律已經持續了幾十年,但它在2000年左右開始放緩,到了 2018 年,實際結果與摩爾定律的預測相差了15倍,之后這一差距還將持續增大,因為CMOS工藝已經接近極限。
與摩爾定律相伴的是由羅伯特·登納德預測的登納德縮放定律;Robert Dennard 在 1974 年提出,晶體管不斷變小,但芯片的功率密度不變。隨著晶體管密度的增加,每個晶體管的能耗將降低,因此硅芯片上每平方毫米上的能耗幾乎保持恒定。登納德縮放定律從 2007 年開始大幅放緩,大概在2012 年接近失效。1986年至2002年間,使用指令級并行(ILP)是提高架構性能的主要方法,為了充分利用流水線,需要預測分支,并根據推測將代碼放入流水線以便執行。如果分支預測達到完美推測就能提高ILP性能,如果分支預測出現失誤,計算所耗能量就會被浪費。在測試后大家發現分支預測導致能量浪費情況更加嚴重,于是架構師需要一種不同的方法來實現性能改進,于是迎來了多核時代。
多核并未解決節能的挑戰,而這種挑戰因登納德縮放定律終結更加嚴峻。每個活躍的核都會消耗能量,無論其對計算是否有有效貢獻。應用多核處理的一個主要的障礙為在并行計算中用多處理器的應用加速受限于程序所需的串行時間百分比。如果程序所需的串行時間過長,那么被浪費的能量也是巨大的。此外多核處理器還受限于熱耗散功率(TDP),即封裝和冷卻系統在最大負載時的驅散熱量的最大限度。
登納德縮放定律的結束,摩爾定律放緩以及阿姆達爾定律正當其時,意味著低效性將每年的性能改進限制在幾個百分點。想要獲得高的性能改進就需要新的架構方法,新方法應當能更加高效地利用集成電路。
目前處理器面臨的安全性有哪些方面的問題?
推測分支功能給許多處理器帶來了未知但明顯的安全缺陷,Meltdown和Spectre安全漏洞利用體系結構中的漏洞與硬件的缺陷導致受保護信息泄露,這兩種漏洞都使用了旁路攻擊。2018 年,研究者展示了在攻擊者不將代碼加載到目標處理器的情況下,如何利用 Spectre 變體導致網絡信息泄露。盡管這次名為NetSpectre的攻擊泄露信息速度較慢,但它會使同一局域網中的所有機器都受到攻擊,這會產生許多新的漏洞。
處理器架構師如何定義什么是正確的ISA是一個源頭的難題,因為標準中并未說明執行指令序列的性能影響。架構師需要重新思考ISA正確實現的定義,以避免類似的安全漏洞。
計算機體系結構未來的發展趨勢
為通用計算設計的微處理器效率注定較低,再加上登納德縮放定律和摩爾定律走向終結,所以處理器架構師和設計師們很有可能再也無法讓通用處理器的性能以之前那樣的速度繼續大幅提高。是否有其他有潛力的方案呢?
執行性能優化:現代軟件的編寫中大量使用了高級語言,但這些語言的編譯和執行是非常低效的。Leiserson 等人用矩陣乘法的小例子說明了這種低效性,一個運行在英特爾多核處理器上的、經過高度優化過的程序可以比最初的 Python 版本快超過6萬倍。所以我們可以考慮其中的一些性能差異是否可以用更好的編譯器技術來補上,同時也搭配一些計算架構的改進。雖然高效的語言翻譯確實有很大困難,但潛在的性能收益也是巨大的。
設計專用硬件:該方案更加以硬件為中心,為某個特定的領域問題設計專用的的計算架構,從而為這些問題帶來顯著的性能提升。DSA[domain-specific architectures]描述的就是這種為特定的領域問題而專門定制設計的處理器,它們可編程,但只適用于特定的某一類問題。DSA可以達到高得多的性能表現和高的多的能量效率是由于以下四個原因:
領域專用語言:DSA 需要把編程語言中的高級操作對應到硬件架構上去,但若想從Python、C這樣的為通用計算設計的語言提取出這樣的結構和信息實在有點難,領域專用語言(DSL)讓這個過程變得可以實現,而且也讓我們有機會高效地為 DSA 編程。
使用DSL的時候也有挑戰,就是如何讓硬件架構設計保持足夠的獨立性,這樣在一種DSL編寫的軟件可以遷移到不同的硬件架構,同時把軟件映射到下方的DSA的時候還能保持足夠高的效率,這是一個有意思的科研挑戰。
總結
以上是生活随笔為你收集整理的计算机组成与架构综述学习报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己动手写CPU(3)逻辑、移位操作与空
- 下一篇: 自己动手写CPU(4)移动操作指令的实现