美文网首页
处理器结构

处理器结构

作者: None_Ling | 来源:发表于2018-05-31 15:54 被阅读12次

    处理器硬件结构

    现代计算机结构处理过程:

    • 输入设备输入数据,存储器存储输入数据
    • 控制器接收指令控制存储器将数据送入ALU进行计算
    • 控制器接收指令将计算后的结果存入存储器
    • 控制器接收指令将存储器数据输出到输出设备
    冯诺依曼结构

    所有复杂运算都是通过简单运算组合而成。而CPU中最核心的部分为ALU。

    ALU(算数逻辑单元):主要由与门和或门构成,用来进行二进制数据的计算。

    处理器模型

    ISA:指令集体系架构,也是目前使用的最广的CPU体系架构。主要包括一套指令集以及一些寄存器,而程序员针对这些指令集以及寄存器进行编程,而不需要关心具体的硬件。

    在PC上,大部分用的Intel和AMD处理器都是基于x86指令集,而嵌入式设备上的程序大部分使用的AMR指令集。

    处理器
    • 指令集体系结构:x86,arm,armv7,mips等
    • 处理器微架构:NetBurst等
    • 处理器物理实现:20nm/40mn的集成电路工艺,电子计算机,量子计算机等

    而处理器除了内核外,还有其他很多东西,如I/O,电源,电池,时钟等等。

    处理器结构

    CPU硬件指标

    MIPS:每秒执行指令数,而实际中该值会偏低,因为实际情况中会遇到并行,Cache Miss,通信效率,总线冲突等问题。

    功耗:现在设备中CPU与显卡功耗非常大

    指令集体系结构

    处理器模型:
    例如C=A+B;语句:

    • 操作数:C,B,A均为操作数,操作数存储在主存中

    由于从Memory访问数据很慢,于是CPU在ALU附近加入了寄存器,用来存储计算中产生的中间数据,避免将这些数据存入主存再读取的耗时

    • 操作码(op):+为操作码
    处理器模型

    对于C=A+B可以分为以下指令执行:

    load R3,#0;// 加载#0地址存储的数据到R3寄存器
    load R2,#1;   // 加载#1地址存储的数据到R2寄存器
    add R0,R3,R2;// 将R3,R2寄存器的数据相加保存到R0寄存器中
    store R0,#2;// 将R0寄存器中的数据保存到#2地址
    
    其中load,add,store为指令,R0,R1,R2,R3为寄存器,#1,#2为主存地址
    

    这种指令的写法就是汇编语言,处理器公司也会对外发布指令集手册,而这手册也是使用汇编语言来描述。

    而计算机无法理解loadstore等指令,也不知道具体的寄存器为R1R0,计算机只知道0和1,所以最终编译过后每一条指令均如01011101011001,代表着load R3 ,#0;

    最初程序员直接写汇编语言来进行程序开发,直到Fortran的出现,才出现了高级语言,能让程序员从解放出来。


    高级语言的转换

    指令集的发展

    CISC:复杂指令集,提供了很多与高级语言以及特性相关的指令(如复杂的寻址模式,直接对应的指针运算)等,导致指令集非常庞大。而x86的CPU仍然在使用CISC指令集。

    RISC:精简指令集,相对于CISC来说减少了许多直接的指令,只保留了常用的简单的指令。如Mips,Arm,Power等CPU使用RISC指令集。

    RISC使得CPU不需要浪费大量的晶体管来做复杂而又较少使用的功能,X86的指令集有1000多页,而RISC指令集手册只有200页左右,并且精简指令集的大部分指令都可以在1个cycle执行完,并且使用了定长编码,使得指令译码的过程变得简单,并且CPU的频率得到了大幅度的提升

    可是CISC的一条指令对应着多条RISC指令,所以在执行复杂操作的时候,RISC指令集使得CPU与存储器之间的数据交换增多,而存储器的速度远远低于CPU执行速度,比较容易导致性能恶化

    PS:芯片的制程工艺(32nm,22nm)决定了芯片内部晶体管的数量,晶体管数量越多,则芯片能完成的任务也就越多

    手机上的CPU大部分用的是ARM,无论是高通还是TI,还是三星使用的还是ARM内核。因为ARM在设计之初就将低功耗,低成本的优先级放在了高性能之前。

    ARM自己不生产芯片,而是向半导体公司提供指令集与内核授权,让半导体公司生产ARM指令集的芯片。

    计算机字长(Word)

    16位计算机的字长为16bit。
    32位计算机的字长为32bit。
    64位计算机的字长为64bit。

    字长代表着处理器一次处理数据的长度,主要由运算器和寄存器决定。

    32位处理器,每个寄存器都可以存储32位的数据,而加法器可以支持两个32位的数据相加

    image.png

    相关文章

      网友评论

          本文标题:处理器结构

          本文链接:https://www.haomeiwen.com/subject/qkzfsftx.html