首页 > 编程知识 正文

cpu型号知识(cpu知识)

时间:2023-05-05 16:29:29 阅读:96373 作者:3623

高质量的物品,及时送达

作者|马骏金龙

链接| cnblogs.com/f-ck-need-u/p/11141636.htm

关于CPU和程序的执行

CPU是计算机的大脑。

1.程序的运行过程实际上是程序中涉及但未涉及的大量指令的执行过程。

当要执行的程序部分加载到内存中时,CPU需要从内存中取出指令,然后对指令进行解码(为了知道类型和操作数,简单的说就是CPU需要知道这个指令是什么),然后执行指令。然后是下一条指令,解码,执行,等等,直到程序退出。

2.获取、解码和执行这三个过程构成了中央处理器的基本周期。

3.每个CPU都有一组可以自己执行的特殊指令集(注意这些指令是由CPU提供的,可以由CPU-Z软件查看)。

正是因为不同CPU架构的指令集不同,x86处理器无法执行ARM程序,ARM程序也无法执行x86程序。(英特尔和AMD都使用x86指令集,大部分手机都使用ARM指令集)。

注:指令集的硬件和软件层次:硬件指令集是CPU本身在硬件层次提供的可执行指令集。软件指令集是指语言库提供的指令,只要安装了语言库就可以执行。

4.由于CPU访问内存获取指令或数据所需的时间比执行指令所需的时间长得多,因此在CPU内部提供了一些通用寄存器来存储关键变量、临时数据等信息。

因此,CPU需要提供一些特定的指令,这样就可以从内存中读取数据并存储在寄存器中,寄存器数据也可以存储在内存中。

此外,还需要提供加法、减法、非/和/或等基本操作说明。而乘除法的运算是计算出来的(支持的基本运算指令见ALU Functions),所以乘除法的速度要慢很多。这也是算法在考虑时间复杂度时,往往忽略加减次数的影响,而考虑乘除次数的原因。

5.除了通用寄存器,还有一些特殊寄存器。典型的例子有:

PC:程序计数器,代表程序计数器,存储下一条待取指令的内存地址。提取指令后,寄存器将被更新以指向下一条指令。

栈指针:指向内存当前栈的顶部,包含每个函数执行过程的栈帧,其中存储了输入参数、局部变量以及与函数相关的一些临时变量。

PSW:程序状态字,代表程序状态字。该寄存器保存一些控制位,如CPU的优先级和CPU的工作模式(用户模式或内核模式)。

6.CPU在进行进程切换时,需要将寄存器中与当前进程相关的状态数据写入内存中相应的位置(内核中进程的堆栈空间)并保存。切换回进程时,有必要将其从存储器复制回寄存器。即上下文切换,既要保护场景,又要还原场景。

7.为了提高性能,CPU不再是取-解码-执行的单一路线,而是为这三个进程提供独立的取单元、解码单元和执行单元。这样就形成了流水线模式。

例如,流水线的最后一个单元——的执行单元正在执行第n条指令,而前一个单元可以解码第n条指令,前一个单元,即提取单元,可以读取第n条指令。这是一个三级管道,可能会有更长的管道模式。

8.更优化的CPU架构是超标量架构(超标量架构)。这种架构将取、解码和执行单元分开,有大量的执行单元,然后每个取、解码部分并行运行。例如,有两个并行的提取解码工作电路,每个电路都将解码后的指令放入缓冲区,等待执行单元提取并执行。

9.除了嵌入式系统,大多数CPU都有两种工作模式:内核模式和用户模式。这两种工作模式由PSW寄存器中的二进制位控制。

10.内核CPU可以执行指令集中的所有指令,使用硬件的所有功能。

11.用户模式的中央处理器只允许执行指令集中的一些指令。一般来说,用户模式下禁止所有与IO和内存保护相关的执行,其他特权指令也是禁止的,比如用户模式下PSW的模式设置控制位不能设置为内核模式。

12.如果用户模式的CPU想要执行特权操作,它需要发起一个系统调用来请求内核帮助完成相应的操作。实际上,在启动系统调用后,CPU会执行陷阱指令,陷阱进入内核。特权操作完成后,需要执行一条指令,使CPU返回用户模式。

13.除了系统调用落入内核之外,硬件还会导致陷阱行为落入内核,让CPU控制权回归操作系统,让操作系统决定如何处理硬件异常。

关于CPU的基本组成

1.CPU用于运算(加法、乘法*、逻辑运算和非或等)。),例如,c=a b。

2.算术运算包括数据输入、处理和数据输出。a和B是输入数据,加法是处理,C是输出数据。

3、CPU需要用到一个内存(也就是各种

寄存器)的东西保存输入和输出数据。以下是几种常见的寄存器(前文也介绍了一些)

MAR: memory address register,保存将要被访问数据在内存中哪个地址处,保存的是地址值

MDR: memory data register,保存从内存读取进来的数据或将要写入内存的数据,保存的是数据值

AC: Accumulator,保存算术运算和逻辑运算的中间结果,保存的是数据值

PC: Program Counter,保存下一个将要被执行指令的地址,保存的是地址值

CIR: current instruction register,保存当前正在执行的指令

4、CPU还要将一些常用的基本运算工具(如加法器)放进CPU,这部分负责运算,称为算术逻辑单元(ALU, Arithmetic Logic Unit)。

5、CPU中还有一个控制器(CU, Control Unit),负责将存储器中的数据送到ALU中去做运算,并将运算后的结果存回到存储器中。

控制器还包含了一些控制信号。

5、控制器之所以知道数据放哪里、做什么运算(比如是做加法还是逻辑运算?)都是由指令告诉控制器的,每个指令对应一个基本操作,比如加法运算对应一个指令。

6、例如,将两个MDR寄存器(保存了来自内存的两个数据)中的值拷贝到ALU中,然后根据指定的操作指令执行加法运算,将运算结果拷贝会一个MDR寄存器中,最后写入到内存。

7、这就是ysdqz结构图,也就是现在计算机的结构图。

关于CPU的多核和多线程

1、CPU的物理个数由主板上的插槽数量决定,每个CPU可以有多核心,每核心可能会有多线程。

2、多核CPU的每核(每核都是一个小芯片),在OS看来都是一个独立的CPU。

3、对于超线程CPU来说,每核CPU可以有多个线程(数量是两个,比如1核双线程,2核4线程,4核8线程),每个线程都是一个虚拟的逻辑CPU(比如windows下是以逻辑处理器的名称称呼的),而每个线程在OS看来也是独立的CPU。

这是欺骗操作系统的行为,在物理上仍然只有1核,只不过在超线程CPU的角度上看,它认为它的超线程会加速程序的运行。

4、要发挥超线程优势,需要操作系统对超线程有专门的优化。

5、多线程的CPU在能力上,比非多线程的CPU核心要更强,但每个线程不足以与独立的CPU核心能力相比较。

6、每核上的多线程CPU都共享该核的CPU资源。

例如,假设每核CPU都只有一个"发动机"资源,那么线程1这个虚拟CPU使用了这个"发动机"后,线程2就没法使用,只能等待。

所以,超线程技术的主要目的是为了增加流水线(参见前文对流水线的解释)上更多个独立的指令,这样线程1和线程2在流水线上就尽量不会争抢该核CPU资源。所以,超线程技术利用了superscalar(超标量)架构的优点。

7、多线程意味着每核可以有多个线程的状态。比如某核的线程1空闲,线程2运行。

8、多线程没有提供真正意义上的并行处理,每核CPU在某一时刻仍然只能运行一个进程,因为线程1和线程2是共享某核CPU资源的。可以简单的认为每核CPU在独立执行进程的能力上,有一个资源是唯一的,线程1获取了该资源,线程2就没法获取。

但是,线程1和线程2在很多方面上是可以并行执行的。比如可以并行取指、并行解码、并行执行指令等。所以虽然单核在同一时间只能执行一个进程,但线程1和线程2可以互相帮助,加速进程的执行。

并且,如果线程1在某一时刻获取了该核执行进程的能力,假设此刻该进程发出了IO请求,于是线程1掌握的执行进程的能力,就可以被线程2获取,即切换到线程2。这是在执行线程间的切换,是非常轻量级的。(WIKI: if resources for one process are not available, then another process can continue if its resources are available)

9、多线程可能会出现一种现象:假如2核4线程CPU,有两个进程要被调度,那么只有两个线程会处于运行状态,如果这两个线程是在同一核上,则另一核完全空转,处于浪费状态。更期望的结果是每核上都有一个CPU分别调度这两个进程。

关于CPU上的高速缓存

1、最高速的缓存是CPU的寄存器,它们和CPU的材料相同,最靠近CPU或最接近CPU,访问它们没有时延(<1ns)。但容量很小,小于1kb。

32bit:32*32比特=128字节

64bit:64*64比特=512字节

2、寄存器之下,是CPU的高速缓存。分为L1缓存、L2缓存、L3缓存,每层速度按数量级递减、容量也越来越大。

3、每核心都有一个自己的L1缓存。L1缓存分两种:L1指令缓存(L1-icache)和L1数据缓存(L1-dcache)。L1指令缓存用来存放已解码指令,L1数据缓存用来放访问非常频繁的数据。

4、L2缓存用来存放近期使用过的内存数据。更严格地说,存放的是很可能将来会被CPU使用的数据。

5、多数多核CPU的各核都各自拥有一个L2缓存,但也有多核共享L2缓存的设计。无论如何,L1是各核私有的(但对某核内的多线程是共享的)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。