當前位置:
首頁 > 最新 > x86彙編語言進階-i386(1)現代CPU架構

x86彙編語言進階-i386(1)現代CPU架構

從16位的實模式到32位的保護模式的進化是一個巨大的飛躍,在16位的時代,系統的定址空間非常狹小,通常不超過幾MB,而在32位下,定址空間達到了2^32B,即4GB。得益於此,用戶能夠同時使電腦運行多個任務。同時,由於地址保護的存在,程序之間也能避免無意的相互影響,不會出現一個程序的崩潰導致其他程序一同崩潰的囧況,同時,此舉也提高了信息安全性,減少了電腦被黑的風險。不經如此,為了使我們的CPU更加快速地運行,架構師們還發明了指令流水線,同時也引入了多CPU內核的設計。本期文章的目的就是大家了解i386基本功能,為以後的學習做準備。

定址位寬

定址位寬是我們在16位實模式下就已了解了的。8086採用兩個16位寄存器疊加的方法實現了2^20B,即1MB的內存空間。而現在的32位處理器使用了32位的定址空間,而64位處理器則是大多使用至少48位的地址線,擁有更加巨大的定址空間。16位的處理器擁有20位的定址位寬,而64位處理器的位寬不明,可見處理器的位數指的不是處理器的定址位寬。

寄存器擴展

那麼,一般大家說xx位的處理器時,指的是什麼呢?其實指的就是普通的寄存器的位寬。16位的處理器的寄存器大多是16位的,比如ax寄存器就是16位的。32位的i386系列處理器的寄存器eax有32位,而64位的amd64系列處理器的寄存器rax有64位。現代處理器將寄存器的位數做了擴展,從而能夠一次處理更多的數據。

內存空間保護

當一個系統中同時有很多的程序在運行時,就會涉及到劃地盤的事情。如果所有程序都能隨心所欲地修改任意內存地址的內容(比如C語言中隨便給指針賦了一個值並訪問該指針所指向的內存),那麼信息安全就無從談起,而且有時這種篡改可能會導致其他程序甚至是整個的系統崩潰。為了避免這種情況的發生,現代CPU要求為每段代碼都賦予一定的許可權,並規定使用分段的方式來訪問內存,相較於之前我們所說的段,這裡的「段」是一個更為複雜的概念,它需要一個64位的數據結構來進行描述。每個段在創建的一開始就被規定了其特權級和段類型。如果類型是代碼段,那麼無論是誰都無法對其經行修改。這就避免了程序的連帶性崩潰。

定址模式

當一個系統中有大量的獨立的程序在運行時,這些程序不斷地申請和釋放內存,將會很快導致內存碎片化,即無法分配一段足夠長的連續內存段來使用。為了解決這個問題,CPU為虛擬內存地址技術的使用提供了方便,使用此功能時,程序將好像運行在一段無限開闊的空閑內存上,即使事實上它被切割成了無數零碎的小段內存。

多級緩存

現在的CPU速度都非常快,而儲存器的速度卻趕不上CPU的步伐。而且越是快的儲存器價格就越是高,所以整體提高儲存器的速度的不現實的。以內存為例,當CPU想從內存中取出一個數據時,往往要等好幾納秒內存才會有反應,這段時間內CPU本可以執行好幾個指令了。所以設計人員就在CPU和內存之間又放了一個叫做高速緩存的東西,由於程序往往在時間和空間上具有連續性(即:如果CPU引用了一段數據,那麼往往在短時間內又要用到那個數據或那個數據地址附近的數據),當CPU訪問了一段內存後,會將那段內存和其附近的內存的副本拷貝進高速緩存,而高速緩存往往設計得非常快,甚至能在一個時鐘周期內做出響應。

為了更加地經濟高效,往往會給高速緩存再配一個高速緩存,最多能嵌套3層之多,這就是多級緩存

指令流水線

如果能夠把一個指令分成多個部分,進行流水線處理,就能同時處理多個指令,從而提高運行效率,但是如果後一個指令需要前一個指令的計算結果,就必須通過更複雜的機制來確保機器的正常運行。

多任務調度

為了能夠方便地在一台計算機上同時運行多個任務,現代CPU通過規定一些數據結構來方便對任務的管理和交替運行。同時,通過多核心和超線程技術來提高同時運行多個任務時的運行效率。

總結

現代CPU通過加入各種複雜機制來提高安全性和運行效率,其中的一些對於程序員來說是相對透明的,我們不需要關注這些特性就能讓計算機正常運行,但還有一些功能需要與程序員密切配合才能發揮應有的作用。通過以後的學習,大家將會掌握與這些功能配合的技巧,從而編寫現代底層應用程序。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 SUMSTC 的精彩文章:

TAG:SUMSTC |

您可能感興趣

紀念x86 40年!Intel i7-8086K限量CPU開蓋超頻測試:摸到7.24GHz
首次5GHz!Intel發布x86 40周年紀念版i7-8086K:贈送8086顆
x86 40周年紀念!Intel i7-8086K怒飆5GHz
Android-x86 8.1 RC1發布
16nm 8核!國產自主x86新CPU發布:性能追平7代i5
國內最先進16nm!兆芯展示x86 KX-6000八核處理器
國產最先進X86處理器KX-6000發布:8核3.0GHz 力壓酷睿i5
史上首次5GHz頻率!Intel為紀念x86架構誕生40周年而發布i7-8086K
狂送2000顆:Intel x86 40周年紀念版i7-8086K正式開送
瑞安華碩FX86SM8750窄邊框設計筆記本售9180
2017年x86 伺服器市場數據:Dell EMC、HPE、浪潮位列全球前三
兆芯正式發布16nm 3.0GHz x86處理器:集成GPU,支持4K解碼
兆芯自主可控x86處理器KX-6000亮相:16nm、性能追平7代i5
僅iPad mini4大小!GPD P2 Max發布:16G+1TB配置的x86口袋PC
2018年 x86 伺服器市場:Dell、HPE、浪潮、華為、聯想
x86 PC版安卓AndEX Pie 9.0公布 優化足量售價9美元
A12X和驍龍855這麼強 ARM真的可以取代X86嗎?
AMD 7nm/12nm線程撕裂者CPU曝光:號稱要統治x86
兆芯推出國產自主可控x86處理器新品開先KX-6000:16nm八核
華為已自研64核ARM處理器:7nm工藝,SPEC性能堪比28核X86