处理器架构:一般就是指的是处理器的硬件架构,称为微架构,就是一堆硬件电路,用来实现指令集所规定的操作运算;看了这个你就理解其实硬件本质上就是为了某种规则服务的;如果木头这个材料有两种状态的转换,我们也可以用木头来做硬件材料来实现一些运算逻辑;
1、ARM系列
2、x86系列/Atom处理
3、MIPS系列
指令集:指令集可以理解为我们设计的一套运算规则,这个规则是可以给CPU来使用的,CPU的硬件设计上也能达到这个指令集所要求的运算方式;包含两部分(汇编语言形式、二进制机器码格式),CPU执行的是二进制代码,汇编是给人能看懂的低级编程语言,每条汇编指令都有对应的机器码指令。(这里插一句题外话,其实指令集谁都可以设计一套,不一定就只有intel和arm等大厂能搞,但关键的问题在于别人先搞了一套指令集,而且推广的很好,其他很多东西都开始基于他这个指令集开始开发对应的编译器、操作系统、程序语言、应用程序了,先入为主了;你再弄一套,除非你的东西牛到别人无法超越,否则没人搭理你,大家都懒,不想在你这里在折腾一遍他们的东西了)
汇编器:完成汇编语言和二进制机器码(机器语言)的转换就叫做汇编器
机器语言:机器语言是机器指令的集合,是硬件CPU能读懂的机器指令
汇编语言:汇编语言就是我们人能读懂和理解的编程语言,汇编语言的主体是汇编指令,汇编指令和机器指令是一一对应的;
存储器:一般就是我们平常说的内存
编译器:就是讲高级编程语言转换成机器语言,GCC(支持c、c++、java等)
GCC编译流程分为4个步骤:
预处理(生成.i/.ii 文件) ---> 编译(生成汇编代码.s/.S 文件) ---> 汇编(生成二进制代码.o文件) ---> 链接(生成可执行文件)
高级编程语言:C语言、C++、java、go
CPU和内存如何沟通(通过总线进行物理硬件上的链接)?一般都是进行下面3类信息的交互:
1、内存地址(地址信息-->走 地址总线)
2、器件的选择、读或者写的命令(控制信息-->走 控制总线)
3、读或者写的数据(数据信息-->走 数据总线)
CPU的架构
CPU主要是由3大件组成:运算器、控制器、寄存器;
运算器:计算机中执行各种算术和逻辑运算操作的部件;运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,也称作算术逻辑部件;
控制器:就是负责对指令译码,并且发出为完成每条指令所要执行的各种操作的控制信号;
寄存器:是有限存储容量的高速存储部件,他们可用来暂存指令、数据和地址;寄存器有下列这些种类:
1)通用寄存器
2)段寄存器
3)指针寄存器
4)变址寄存器
5)指令指针寄存器
6)标志寄存器
ARM公司的处理器设计的产品有3个系列:A、R、M,和ARM名字重合,挺有意思的;
A系列:Application Processor,早期之前就是移动处理器,后来扩展到服务器和网络处理器领域。
A系列又分为高、中、低三个等级。
低端系列:A7、A32、A35,运行在几百Mhz,功耗几十毫安,适合手表和超低端手机
中端系列:A53,常常作为大小核中的小核来使用,运行在1~2Ghz,功耗在300毫瓦以下;
高端系列:A72、A73、A77、A78等作为高端产品,运行在2Ghz以上,功耗都在500毫瓦左右;
R系列:Real Time,主要用于汽车、无线控制器、自动控制器、固态硬盘、调制解调器等实时性要求高的领域。
M系列:MCU,就是微控制器,当前主要应用场景就是物联网、智能低功耗硬件等
ARM授权方式分为两种:架构授权、IP授权
1、架构授权
架构授权用装修房子类比,ARM公司就是个开发商,房子的户型和外观构建好了之后,毛坯房卖给你,你自己在毛坯房的基础上做软装;
优点是自主灵活,有IP设计能力的公司可以在毛坯房的基础上针对自己的喜好来做个性化的定制开发;
缺点也一样,需要专业能力较强的IP设计能力,否则就是自己坑自己,设计出来的房子到处各种问题;
2、IP(intellectual property)授权
IP授权用也用装修房子类比,ARM公司是开发商,他现在也开始提供精装修好的样板间房子了,你直接买现成的标准统一的样板间房,直接买了后就可以拎包入住了;
优点就是直接省时省力,拎包入住
缺点也就是因为公版的原因,你和别人的样板间一样,没有差异性,也没法单独定制自己的个性化需求;
举个例子:
下面这张图能直观的展示当前主要的几大手机芯片厂商的芯片架构