高速緩沖存儲(chǔ)器Cache是位于CPU與內(nèi)存之間的臨時(shí)存儲(chǔ)器侣背,它的容量比內(nèi)存小但交換速度快。CPU讀取數(shù)據(jù)的順序是先Cache后內(nèi)
存。
一級(jí)緩存青团,位于CPU內(nèi)核的旁邊何什,是與CPU結(jié)合最為緊密的CPU緩存组哩。一般服務(wù)器CPU的L1緩存的容量通常在32—256KB。
一級(jí)緩存的技術(shù)難度和制造成本最高处渣,提高容量所帶來的技術(shù)難度增加和成本增加非常大伶贰,所帶來的性能提升卻不明顯,性價(jià)比很低罐栈,而
且現(xiàn)有的一級(jí)緩存的命中率已經(jīng)很高黍衙。
二級(jí)緩存是CPU的第二層高速緩存,分內(nèi)部和外部兩種芯片荠诬。內(nèi)部的芯片二級(jí)緩存運(yùn)行速度與主頻相同琅翻,而外部的二級(jí)緩存則只有主頻的
一半位仁。L2高速緩存容量也會(huì)影響CPU的性能,原則是越大越好方椎,現(xiàn)在家庭用CPU容量最大的是4MB聂抢,而服務(wù)器和工作站上用CPU的L2高速
緩存更高達(dá)2MB—4MB,有的高達(dá)8MB或者19MB棠众。
三級(jí)緩存是為讀取二級(jí)緩存后未命中的數(shù)據(jù)設(shè)計(jì)的—種緩存琳疏,在擁有三級(jí)緩存的CPU中,只有約5%的數(shù)據(jù)需要從內(nèi)存中調(diào)用闸拿,這進(jìn)一步
提高了CPU的效率空盼。
讀取命中率,CPU在Cache中找到有用的數(shù)據(jù)被稱為命中胸墙,當(dāng)Cache中沒有CPU所需的數(shù)據(jù)時(shí)(這時(shí)稱為未命中)我注,CPU才訪問內(nèi)存。
從理論上講迟隅,在一顆擁有2級(jí)Cache的CPU中但骨,讀取L1 Cache的命中率為80%。也就是說CPU從L1 Cache中找到的有用數(shù)據(jù)占數(shù)據(jù)總量的
80%智袭,剩下的20%從L2 Cache讀取奔缠。在一些高端領(lǐng)域的CPU(像Intel的Itanium)中,我們常聽到L3 Cache吼野,它是為讀取L2 Cache后未命
中的數(shù)據(jù)設(shè)計(jì)的—種Cache校哎。
處理器架構(gòu),為了區(qū)分不同類型CPU的重要標(biāo)示瞳步,是CPU核心的設(shè)計(jì)方案闷哆。
目前市面上的CPU指令集分類主要分有兩大陣營,一個(gè)是intel单起、AMD為首的復(fù)雜指令集CPU抱怔,另一個(gè)是以IBM、ARM為首的精簡指令集
CPU嘀倒。兩個(gè)不同品牌的CPU屈留,其產(chǎn)品的架構(gòu)也不相同,例如测蘑,Intel灌危、AMD的CPU是X86架構(gòu)的,而IBM公司的CPU是PowerPC架構(gòu)碳胳,ARM
公司是ARM架構(gòu)勇蝙。
與Android中so文件的編譯相關(guān):
armeabi/armeabi-v7a:這個(gè)架構(gòu)是arm類型的,主要用于Android4.0之后的挨约,cpu值32位的
x86/x86_64:這個(gè)架構(gòu)是x86類型的浅蚪,有32位和64位藕帜,占用的設(shè)備比例比較小
arm64-v8:這個(gè)架構(gòu)是arm類型,主要用于Android5.0之后惜傲,cpu是64位的
其中arm類型的是往下兼容策略洽故,比如arm64-v8a肯定兼容armeabi/armeabi-v7a,也就是說armeabi/armeabi-v7a架構(gòu)的so文件可以用
在arm64-v8a的設(shè)備中的盗誊,而armeabi-v7a也是兼容armeabi的时甚,但是因?yàn)閏pu型號(hào)不同,所以arm體系和x86體系之間是不能相互兼容
的哈踱。
CPU時(shí)鐘周期荒适,既主頻的倒數(shù),是處理操作的最基本的單位开镣。常稱為節(jié)拍脈沖或T周期刀诬。
節(jié)拍電位表示一個(gè)CPU周期的時(shí)間。由于CPU訪問一次內(nèi)存所花費(fèi)的時(shí)間較長邪财,因此通常用內(nèi)存中讀取一個(gè)指令字的最短時(shí)間來規(guī)定CPU
周期陕壹。一條指令取出階段(通常為取指)需要一個(gè)CPU周期時(shí)間。一個(gè)CPU周期時(shí)間又包含若干個(gè)時(shí)鐘周期树埠,CPU周期也稱為機(jī)器周期糠馆。
指令周期是取出并執(zhí)行一條指令的時(shí)間,是從取指令怎憋、分析指令到執(zhí)行完所需的全部時(shí)間又碌。指令周期常常有若干個(gè)CPU周期。
- 指令周期 >> CPU周期(機(jī)器周期) >> CPU時(shí)鐘周期
JIT編譯器绊袋,Just-In-Time Compiler毕匀,即時(shí)編譯器。
將MSIL編譯成為各種不同的機(jī)器代碼癌别,以適應(yīng)對(duì)應(yīng)的系統(tǒng)平臺(tái)皂岔,最終使得程序在目標(biāo)系統(tǒng)中得到順利地運(yùn)行。
在Java編程語言和環(huán)境中规个,即時(shí)編譯器是一個(gè)把Java的字節(jié)碼(包括需要被解釋的指令的程序)轉(zhuǎn)換成可以直接發(fā)送給處理器的指令的程
序。