指令集、架构、处理器、内核,芯片之间的关系

一、指令集,架构:

指令集主要是指Cpu硬件和软件之间的接口描述,它本质上是一段二进制机器码,cpu只能识别机器码,但是机器码是一串无意义的字符串,程序员很难看看懂这些语句,用它来开发软件,所以后面就发明了汇编语言,汇编语言本质上跟机器码一一对应的,现在有很多不同版本的汇编语言,本质上就是有不同的指令集,指令集可以简单的分为复杂指令集和精简指令集。最近比较火的RISC-V,也是指令集的一种。

架构:架构主要是指某一个处理器所使用的具体指令集,比如说m6ull,他是基于ArmV7架构的,就是指它是使用armV7指令集,在大部分场合,架构等于指令集。

指令集架构是计算机体系架构的一部分。指令集是一个很虚的东西,是一个标准规范。例如我们的交通规则,红灯停、绿灯行、黄灯亮了等—等,只有行人和司机都去遵守这套交通规则我们的交通系统才能有条不紊地运行下去。指令集也一样,芯片工程师在设计CPU时也要以指令集中规定的指令格式为标准实现不同的译码电路来支持指令集各种指令的运行。指令集最终的实现就是微架构,就是CPU内部的各种译码和执行电路。

编译器厂商在研发编译器工具或IDE时,也要以指令集为标准将我们编写的C语言高级程序转换为指令集中规定的各种机器指令。为什么我们编写的高级程序经过编译后可以直接在CPU上运行呢?就是因为CPU设计者和编译器开发者遵循的是同一个指令集标准,“编译器最终编译生成的指令”都是CPU硬件电路支持运行的指令,每一种不同架构的CPU一般都需要配套一个对应的编译器。

指令集作为CPU和编译器的设计规范和参考标准主要用来定义指令的各种操作、操作数的类型、寄存器的分配、地址的格式等。

指令集也不是—成不变的也会随着应用需求的推动不断迭代更新,不断扩充新的指令。例如ARM指令集从最初的ARMV1发展到目前的ARMV8,一直在不断地发展不断添加新的指令。

二、处理器,内核(微架构)

处理器、内核:是芯片内部的核心单元模块,是在硬件层面按照指令集的设计规范,把它实现出来,可以把内核当作指令集的实物化,但是硬件的设计方案各有不同,所以同一个版本的指令集可能也有不同版本的内核,我们经常说的cotex-m3,cotex-m4,cotex-A7等等就是属于内核层面的概念。

微架构(Microarchitecture),也就是处理器架构。集成电路工程师在设计处理器时,会按照指令集规定的指令,设计具体的译码和运算电路来支持这些指令的运行;指令集在CPU处理器内部的具体硬件电路的实现,我们就称为微架构,一套相同的指令集,可以由不同形式的电路实现,可以有不同的微架构。在设计一个微架构时,一般需要考虑很多问题:处理器是否支持分支预测,单发射还是多发射,顺序执行还是乱序执行?流水线需要多少级?主频需要多高?Cache需要多大?需要几级Cache?根据不同的配置选项,我们可以基于一套指令集设计出不同的微架构。以ARMV7指令集为例,基于该套指令集,面向高性能、低功耗等不同的币场定位,ARM公司设计出了CoItex-A7、Cortex-A8、CortexA9、Co1texˉA15、CortexˉAl7等不同的微架构。

三、芯片(SOC):

芯片:芯片指Soc,也就是指片上系统,它主要是由内核和其他的外设模块封装在一起构成的,我们经常说的stm32就是属于芯片这一层面的概念。

基于一款相同的微架构,通过不同的配置也可以设计出不同的处理器类型。不同的SoC厂商,获得ARM公司的CoItex-A9微架构授权后,基于该内核集成不同的IP,就可以搭建出不同的SoC芯片,并最终流向市场,如三星公司的Exynos44l2处理器、瑞芯微公司的RK3188处理器都采用了Cortcx-A9内核。

四、arm的授权方式:

1、指令集/架构授权

第三方公司获取arm的架构授权后,可以自己去使用ram公司的指令集去进行芯片的设计,但是arm公司的授权管理非常严格,他允许他的合作伙伴参与制定指令集,但是不允许他们私底下修改,现在国内华为海思就是基于armV8指令集开发的,华为海思获取了armv8 架构的永久授权

2、内核授权

是指arm公司把内核的核心电路图,把它的内核测试方法和测试程序提供给第三方公司,第三方公司获取到内核到内核授权之后,基本上可以找工厂流片生产内核了,我们很多熟悉的半导体公司,都是获取了内核授权,比如st,nxp,ti,

3、使用授权

是授权等级最低的一种,主要是针对cpu设计能力比较弱的公司,获取使用授权,公司只能是使用已经封装生产好的内核,不能自己独立生产,国内很多小的生产厂商获取的就是arm的使用授权。

做个很形象的比喻:假设我写了一篇入党申请书的文件模板,我告诉甲,你可以拿去修改模块(修改文件结构),添加自己的内容后使用,便是架构层级授权,我告诉乙,你要保证文件模板的结构不变,但是你可以加三级及以下的标题及内容,便是内核级授权,我告诉丙,你只能对我的文章进行转发,不能更改,不能添油加醋,便是使用层级授权。

五、armV8指令集的开发生态

  • 48
    点赞
  • 188
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Cortex-R5内核是由英国ARM公司推出的一款高性能、低功耗的嵌入式处理器核心。它主要用于汽车领域的安全系统、工业控制等实时应用场景。下面我将从架构特点、性能指标和应用领域三个方面对Cortex-R5内核进行详细介绍。 首先,Cortex-R5内核采用了先进的ARMv7-R架构,具备强大的实时性能和可靠性。它支持高度并发的处理能力,具有高可扩展性和低延迟的特点。此外,Cortex-R5内核还配备了硬件浮点单元和高速缓存,能够提供出色的浮点运算和数据处理能力。 其次,Cortex-R5内核具备卓越的性能指标。它采用了多级流水线和超标量指令执行架构,能够实现高频率的指令和数据处理。同时,Cortex-R5内核支持动态分支预测、高效的存储访问和传输,能够有效提高指令执行效率和节约能源消耗。 最后,Cortex-R5内核在多个应用领域都有广泛的应用。它适用于汽车领域的安全系统,提供高度可靠的实时计算和即时响应能力,保证了汽车电子系统的安全性和稳定性。同时,在工业自动化控制和物联网等领域也有很大的应用潜力。 总结而言,Cortex-R5内核是一款高性能、低功耗的嵌入式处理器核心。凭借其强大的实时性能和可靠性,优秀的性能指标以及广泛的应用范围,Cortex-R5内核在嵌入式系统和实时应用领域具备很大的竞争优势。 ### 回答2: Cortex-R5内核是英国ARM公司推出的一款高性能嵌入式处理器内核。它采用了高度定制化的设计,专为实时性能和可靠性要求高的应用而开发。Cortex-R5内核具有以下特点: 首先,Cortex-R5内核采用了独立的高速指令和数据总线,以支持对多种外设的高带宽访问。这使得它能够处理实时响应要求高的任务,例如自动驾驶系统、工业控制系统等。 其次,Cortex-R5内核支持硬件浮点运算,提供高效的浮点计算能力。这在处理科学计算、信号处理等需要大量浮点运算的应用中非常重要。 此外,Cortex-R5内核还具备完善的内存管理单元(Memory Management Unit, MMU),能够提供有效的内存保护和安全性,保证系统的稳定性和可靠性。 另外,Cortex-R5内核指令集架构采用了ARMv7-R体系结构,支持32位代码执行。它能够在较低的时钟频率下实现高性能,从而降低功耗和热量,延长电池寿命。 最后,Cortex-R5内核还支持Symmetric Multiprocessing (SMP) 对称多处理技术,可以将多个内核集成在同一芯片上,实现更高的计算能力和可用性。 总之,Cortex-R5内核是一款专为实时性能和可靠性要求高的应用而设计的处理器内核。它具备高带宽访问、硬件浮点运算、完善的内存管理单元、功耗优化和SMP支持等特点,适用于自动驾驶、工业控制、科学计算和信号处理等领域的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值