Intel系列CPU的流水线技术的发展
Intel系列CPU的流水線技術(shù)的發(fā)展
CPU(Central processing Unit),又稱“微處理器(Microprocessor)”,是現(xiàn)代計算機的核心部件。對于PC而言,CPU的規(guī)格與頻率常常被用來作為衡量一臺電腦性能強弱重要指標(biāo)。
在提高CPU計算能力的過程中,流水線技術(shù)對提高CPU的效率產(chǎn)生了顯著作用,就像流水生產(chǎn)在汽車制造業(yè)中一樣,它對處理器的發(fā)展影響深遠。
Intel公司創(chuàng)于1968年美國,縱觀IT發(fā)展史,很少能有公司能像Intel這樣屹立多年仍舊保持強大生命力的。作為現(xiàn)今世界上最大的CPU研發(fā)和生產(chǎn)者,如今的Intel就像是信息時代的一根支柱,為推動信息技術(shù)的發(fā)展做出了卓越的貢獻。
接下來我將以個人眼光講述Intel公司CPU流水線技術(shù)的發(fā)展歷程和相關(guān)技術(shù)方法,分為四部分。
注:第一個采用指令流水線的機器是IBM7030 as known as Stretch
一 綜述Inter系列CPU芯片中采用的流水線技術(shù)的發(fā)展過程
流水線是Intel首次在486芯片中開始使用的。流水線的工作方式就象工業(yè)生產(chǎn)上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然后將一條X86指令分成5—6步后再由這些電路單元分別執(zhí)行,這樣就能實現(xiàn)在一個CPU時鐘周期完成一條指令,因此提高CPU的運算速度。
經(jīng)典奔騰每條整數(shù)流水線都分為四級流水,即指令預(yù)取、譯碼、執(zhí)行、寫回結(jié)果,浮點流水又分為八級流水。
Intel的初次流水線引入,i486五級流水線:
1989 年推出的 i486 處理器引入了五級流水線。這時,在 CPU 中不再僅運行一條指令,每一級流水線在同一時刻都運行著不同的指令。這個設(shè)計使得 i486 比同頻率的 386 處理器性能提升了不止一倍。五級流水線中的取指階段將指令從指令緩存中取出(i486 中的指令緩存為 8KB);第二級為譯碼階段,將取出的指令翻譯為具體的功能操作;第三級為轉(zhuǎn)址階段,用來將內(nèi)存地址和偏移進行轉(zhuǎn)換;第四級為執(zhí)行階段,指令在該階段真正執(zhí)行運算;第五級為退出階段,運算的結(jié)果被寫回寄存器或者內(nèi)存。由于處理器同時運行了多條指令,大大提升了程序運行的性能。
80486利用“數(shù)據(jù)旁路”解決數(shù)據(jù)相關(guān)問題。
80486利用“預(yù)取轉(zhuǎn)移目標(biāo)”方法,加快指令分支操作。
但是這個階段的CPU在執(zhí)行一些數(shù)據(jù)相關(guān)的指令時,會存在流水線阻塞問題。
奔騰(Pentium)處理器
1993 年 Intel 推出了奔騰(Pentium)處理器。奔騰處理器架構(gòu)增加了第二條獨立的超標(biāo)量流水線。主流水線工作方式類似于 i486,第二條流水線則并行的運行一些較簡單的指令,比如說定點算術(shù),而且該流水線能更快的進行該運算
奔騰 Pro (Pentium Pro)處理器
1995 年 Intel 推出了奔騰 Pro (Pentium Pro)處理器。和之前的處理器相比,奔騰 Pro 采用了完全不同的設(shè)計。該處理器采用了諸多新特性以提高性能,包括亂序執(zhí)行的部件以及猜測執(zhí)行。流水線擴展到了 12 級,而且引入了“超標(biāo)量流水線”的概念,使得許多指令可以被同時處理。。
奔騰 4 處理器
2002 年發(fā)布的奔騰 4 處理器引入了超線程技術(shù)。亂序執(zhí)行部件的設(shè)計使得指令被執(zhí)行的速度比處理器能夠提供指令的速度更快。因此對于大部分應(yīng)用,CPU 的亂序執(zhí)行部件在大部分時間處于空閑狀態(tài),甚至在高負(fù)載的情況下也不能充分利用。為了讓指令流能充分的流入亂序執(zhí)行部件,Intel 加入了第二套前端部件(注:在處理器結(jié)構(gòu)中,前端是指取指,譯碼,寄存器重命名等模塊,經(jīng)過前端部件的處理后,指令等待發(fā)射進入亂序執(zhí)行部件)。雖然實際上只有一個亂序執(zhí)行部件,但對于操作系統(tǒng)來說,它能看到兩個處理器。前端部件包含兩組同樣功能的 X86 寄存器,兩個指令譯碼器根據(jù)兩個指令指針指向的地址分別處理。所有的指令被一個共享的亂序執(zhí)行部件執(zhí)行,但對應(yīng)用程序來說并不知情。當(dāng)亂序執(zhí)行部件執(zhí)行完成,像之前一樣退出流水線后,最終結(jié)果返回虛擬的兩個處理器。
二 總結(jié)IntelCPU發(fā)展過程中,提高流水線性能及CPU性能的方法、相關(guān)技術(shù)
80486
Intel 80486整數(shù)處理部分實現(xiàn)了指令流水線,屬于早期流水線技術(shù),具有代表性。
整數(shù)指令采用了5個步驟的指令流水線,每個步驟一般需要一個時鐘周期:
① PF步驟——指令預(yù)取(Prefetch)
② D1步驟——指令譯碼1(Decode Stage 1)
③ D2步驟——指令譯碼2(Decode Stage 2)
④ EX步驟——指令執(zhí)行(Execute)
⑤ WB步驟——回寫(Write Back)
80486利用“數(shù)據(jù)旁路”解決數(shù)據(jù)相關(guān)問題,設(shè)置相關(guān)專用通路,即不等前一條指令把計算結(jié)果寫回寄存器組,下一條指令不再讀寄存器組,而是直接把前一條指令的ALU的計算結(jié)果作為自己的輸入數(shù)據(jù)開始計算過程,使本來需要暫停的操作變得可以繼續(xù)執(zhí)行,書本上稱作『定向技術(shù)』。
80486利用“分支預(yù)測”方法,加快指令分支操作。
但是這個階段的CPU在執(zhí)行一些數(shù)據(jù)相關(guān)的指令時,會存在流水線阻塞問題。比如先寫后讀。
奔騰處理器
奔騰架構(gòu)增加了第二條獨立的超標(biāo)量流水線,兩條流水線可以并行運行,而且每條流水線可以同時有多條指令在不同流水級執(zhí)行。它幾乎可以同時執(zhí)行比 i486 多一倍的指令。
奔騰 Pro (Pentium Pro)處理器
亂序執(zhí)行:處理器在一個由輸入數(shù)據(jù)可用性所決定的順序中執(zhí)行指令,而不是由程序的原始數(shù)據(jù)所決定。在這種方式下,可以避免因為獲取下一條程序指令所引起的處理器等待,取而代之的處理下一條可以立即執(zhí)行的指令。
奔騰 Pro 的亂序執(zhí)行部件擁有 6 個執(zhí)行單元:兩個定點處理單元,一個浮點處理單元,一個取數(shù)單元,一個存地址單元,一個存數(shù)單元。這兩個定點處理單元有所不同,一個能夠處理復(fù)雜定點操作,一個能同時處理兩個簡單操作。在理想狀況下,奔騰 Pro 的亂序執(zhí)行部件可以在一個時鐘周期內(nèi)執(zhí)行 7 條微指令。
猜測執(zhí)行:通過提前判讀并執(zhí)行有可能需要的程序指令的方式提高執(zhí)行速度。
12級流水線,超標(biāo)量流水線:在一個時鐘周期內(nèi)一條流水線可執(zhí)行一條以上的指令。一條指令分為十幾段指令來由不同電路單元完成。
奔騰 4 處理器
引入超線程技術(shù):利用特殊的硬件指令,把兩個邏輯內(nèi)核模擬成兩個物理芯片,讓單個處理器都能使用線程級并行計算,進而兼容多線程操作系統(tǒng)和軟件,減少了CPU的閑置時間,提高CPU的計算和運行效率。
三 展望IntelCPU提高流水線性能的技術(shù)方向
提高指令并行度,重復(fù)設(shè)置器件、流水線。
提高器件利用率,規(guī)劃指令的執(zhí)行順序。
提高器件執(zhí)行速率。
就像目前Intel執(zhí)行的Tick-Tock研發(fā)戰(zhàn)略一樣,在架構(gòu)和工藝兩面輪流發(fā)力。
四 課程報告學(xué)習(xí)感受
我想說的是:
在學(xué)習(xí)這些知識之前從沒想到過CPU里在發(fā)生著什么事情,現(xiàn)在感覺到CPU就像一個奇妙的小世界,飛快的運算靠的不是magic,而是一代又一代科研和工程人員的不懈奮斗,CPU真像是一個人為創(chuàng)造出來的奇妙天地,凝結(jié)著人類的智慧和想象力。
我每天都在使用計算機,享受著信息化帶來的豐富知識和方便,如今的計算機相比過去而言,操作簡單了很多,同時功能也大大豐富了,這不禁讓人感覺使用計算機是一件再簡單不過的事情,我曾經(jīng)也一度這樣認(rèn)為。
如今,終于有機會更深入地了解面前的PC里那塊隱藏著的小小硅片。
摩爾定律的推動了整個社會的信息化建設(shè),為了提高運算速率人們創(chuàng)造出了許多奇妙而有效地方法,在架構(gòu)和工藝上雙管齊下,在硬件和軟件上做優(yōu)化。
從單流水線到超流水線,從單核到多核,目睹了一個問題的解決竟有如此多的方案,這讓我頗有感慨:面對一個問題,解決方案可能多到你想不到,一定要打開思路,不要讓思想受到局限。
《計算機系統(tǒng)結(jié)構(gòu)》雖然是一門偏向硬件的專業(yè)課,但里面蘊含的哲理和思想啟迪,一定會在未來的生活和工作中給我?guī)韱l(fā)!
參考資料:
1.80486的指令流水線 錢曉捷
http://www5.zzu.edu.cn/qwfw/wjyl/9-xntgjs/4a44c05f3f5a870e013f70e4d3f4207c.html
2.A Journey Through the CPU Pipeline
http://www.gamedev.net/page/resources/_/technical/general-programming/a-journey-through-the-cpu-pipeline-r3115
總結(jié)
以上是生活随笔為你收集整理的Intel系列CPU的流水线技术的发展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下的各种环境变量
- 下一篇: 香农理论在密码学中的应用