加入收藏 | 设为首页 | 会员中心 | 我要投稿 海南站长网 (https://www.0898zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 应用 > 正文

关于cpu:CPU基础知识

发布时间:2022-12-03 10:02:24 所属栏目:应用 来源:转载
导读: CPU是整个计算机的大脑,管制和解决内部输出的工作。CPU是由运算器、寄存器和控制器三大模块组成。
运算器
运算器(Arithmatic unit ALU)用于做算术计算和逻辑计算。算术计算包含加减乘除

CPU是整个计算机的大脑,管制和解决内部输出的工作。CPU是由运算器、寄存器和控制器三大模块组成。

运算器

运算器(Arithmatic unit ALU)用于做算术计算和逻辑计算。算术计算包含加减乘除四则运算,逻辑运算次要包含异、或、非、与、比拟等运算。

运算器解决的数据通常为二进制数据,古代计算机中运算器一次解决的数据长度通常是64位,一次解决的二进制位长度越大,示意解决性能越高。

寄存器

寄存器是运算器的数据仓库,运算器须要的数据是存储在寄存器中的,当运算器计算实现后将后果再回写到寄存器中,最初返回到输出设备。

寄存器分为

控制器

包含程序计数器、时序发生器、指令译码器、寄存器。

程序计数器

program counter 简称PC,用于记录CPU指令的地址。当CPU执行指令时,须要从PC中获取指令的地址,依据地址再获取到指令。当该条指令执行实现后,PC的地址会指向下一个指令地址位。

时序发生器

用于发送时序脉冲,CPU根据不同的时序脉冲有节奏地进行工作,相似于CPU的节拍器。

指令译码器

翻译指令

安卓显示单个应用cpu使用率_cpu应用_多核cpu对多个应用

寄存器

寄存器又分为多种不同类型

数据寄存器

数据寄存器(Data Register,DR)又称数据缓冲寄存器,其次要性能是作为CPU和主存、外设之间信息传输的中转站,用以补救CPU和主存、外设之间操作速度上的差别。

数据寄存器用来临时寄存由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也将它们临时寄存在数据寄存器中。

指令寄存器

存储CPU的指令,PC中的指令地址就是指向的指令寄存器空间。

当执行一条指令时cpu应用,首先把该指令从主存读取到数据寄存器中,而后再传送至指令寄存器。

主存地址寄存器

主存地址寄存器(Address Register,AR),存储着数据的内存地址,CPU通过IO总线和内存替换数据。

因为在主存和CPU之间存在操作速度上的差别,所以必须应用地址寄存器来临时保留主存的地址信息,直到主存的存取操作实现为止。当CPU和主存进行信息替换,即CPU向主存存入数据/指令或者从主存读出数据/指令时,都要应用地址寄存器和数据寄存器。

累加寄存器

累加寄存器通常简称累加器(Accumulator,AC),是一个通用寄存器。当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区,能够为ALU临时保留一个操作数或运算后果。

程序状态寄存器

程序状态字(Program Status Word,PSW)用来表征以后运算的状态及程序的工作形式。

程序状态字寄存器还用来保留中断和零碎工作状态等信息,以便CPU和零碎及时理解机器运行状态和程序运行状态。因而,程序状态字寄存器是一个保留各种状态条件标记的寄存器。

CPU高速缓存

CPU在拜访内存时,首先从CPU高速缓存中查问数据,如果存在间接获取,否则拜访内存中的数据,并把数据放到CPU缓存中,最初返回给CPU应用。

下图为CPU的缓存架构

如图,CPU缓存分为一级缓存、二级缓存和三级缓存。越凑近CPU存取数据速度越快,其老本也会越高。每个CPU外围独自领有L1和L2缓存,同一颗物理CPU的多个外围共享同一个L3缓存。

CPU在获取数据时,先从L1获取,如果没有再从L2、L3获取,直到从主存中获取数据。当L1中蕴含了所需的数据时,速度是最快的,反之每次都要到主从中获取数据时,就会很慢。

缓存行

CPU和主存替换数据的最小单位是cache line(缓存行),每个缓存行的大小是64字节。思考到空间局部性,邻近的数据将来被拜访的可能性较大,因而当CPU装载主存数据到缓存时,会将邻近的64个字节一起载入到缓存中,这64个字节正好占了一个cache line。当一个缓存行的数据有变动时会清空该缓存行,并从主从中从新载入。

多线程缓存共享问题

多个线程同时操作cache line中的不同字节时,会呈现缓存伪共享状况。每个线程的操作都会导致缓存的生效,进而须要从主从读取,从新载入到CPU缓存中,这样导致缓存频繁的装载、生效,读取的数据理论都要从主存取得,大大降低了CPU的性能。

缓存行对齐

为了防止缓存行的伪共享问题,咱们能够将不同线程操作的数据分布到不同的缓存行中,互不烦扰。A线程批改A数据只须要对A数据缓存行生效,而不会影响到B线程的B数据。

缓存行对齐有两种形式

1、将共享变量数据左右填充有效的数据,保障总长为64个字节

2、在JDK8中应用@Contended注解标注共享变量

(编辑:海南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!