CPU相关概念

高速缓冲存储器Cache是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。CPU读取数据的顺序是先Cache后内
存。
一级缓存,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存。一般服务器CPU的L1缓存的容量通常在32—256KB。
一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而
且现有的一级缓存的命中率已经很高。
二级缓存是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的
一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家庭用CPU容量最大的是4MB,而服务器和工作站上用CPU的L2高速
缓存更高达2MB—4MB,有的高达8MB或者19MB。
三级缓存是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步
提高了CPU的效率。
读取命中率,CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。
从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说CPU从L1 Cache中找到的有用数据占数据总量的
80%,剩下的20%从L2 Cache读取。在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命
中的数据设计的—种Cache。
处理器架构,为了区分不同类型CPU的重要标示,是CPU核心的设计方案。
目前市面上的CPU指令集分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集
CPU。两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM
公司是ARM架构。
与Android中so文件的编译相关:
armeabi/armeabi-v7a:这个架构是arm类型的,主要用于Android4.0之后的,cpu值32位的
x86/x86_64:这个架构是x86类型的,有32位和64位,占用的设备比例比较小
arm64-v8:这个架构是arm类型,主要用于Android5.0之后,cpu是64位的
其中arm类型的是往下兼容策略,比如arm64-v8a肯定兼容armeabi/armeabi-v7a,也就是说armeabi/armeabi-v7a架构的so文件可以用
在arm64-v8a的设备中的,而armeabi-v7a也是兼容armeabi的,但是因为cpu型号不同,所以arm体系和x86体系之间是不能相互兼容
的。
CPU时钟周期,既主频的倒数,是处理操作的最基本的单位。常称为节拍脉冲或T周期。
节拍电位表示一个CPU周期的时间。由于CPU访问一次内存所花费的时间较长,因此通常用内存中读取一个指令字的最短时间来规定CPU
周期。一条指令取出阶段(通常为取指)需要一个CPU周期时间。一个CPU周期时间又包含若干个时钟周期,CPU周期也称为机器周期。
指令周期是取出并执行一条指令的时间,是从取指令、分析指令到执行完所需的全部时间。指令周期常常有若干个CPU周期。

  • 指令周期 >> CPU周期(机器周期) >> CPU时钟周期
    JIT编译器,Just-In-Time Compiler,即时编译器。
    将MSIL编译成为各种不同的机器代码,以适应对应的系统平台,最终使得程序在目标系统中得到顺利地运行。
    在Java编程语言和环境中,即时编译器是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程
    序。

你可能感兴趣的:(CPU相关概念)