处理器架构和配置

这篇具有很好参考价值的文章主要介绍了处理器架构和配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

成功之前我们要做应该做的事情,成功之后我们才可以做喜欢做的事情。

1. 处理器架构

CPU 架构是 CPU 厂商给属于同一系列的 CPU 产品定的一个规范,主要目的是为了区分不同类型 CPU 的重要标示。市面上的 CPU 分类主要分有两大阵营,一个是 intel、AMD 为首的 复杂指令集 CPU,另一个是以 IBM、ARM 为首的 精简指令集 CPU。两个不同品牌的 CPU,其产品的架构也不相同,例如,Intel、AMD 的 CPU 是 X86架构 的,而 IBM 公司的 CPU是 PowerPC 架构,ARM 公司是 ARM 架构。

从 CPU 发明到现在,有非常多种架构,从我们熟悉的 X86、ARM,到不太熟悉的MIPS、IA64,它们之间的差距都非常大。但是如果从最基本的逻辑角度来分类的话,它们可以被分为两大类,即所谓的“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”

中央处理单元(CPU)主要由运算器、控制器、寄存器三部分组成,从字面意思看运算器就是起着运算的作用,控制器就是负责发出 CPU 每条指令所需要的信息,寄存器就是保存运算或者指令的一些临时文件,这样可以保证更高的速度。CPU 有着处理指令、执行操作、控制时间、处理数据四大作用,打个比喻来说,CPU 就像我们的大脑,帮我们完成各种各样的生理活动。因此如果没有 CPU,那么电脑就是一堆废物,无法工作。移动设备其实很复杂,这些 CPU 需要执行数以百万计的指示,才能使它向我们期待的方向运行,而 CPU 的速度和功率效率是至关重要的。速度影响用户体验,而效率影响电池寿命。最完美的移动设备是高性能和低功耗相结合。

在计算世界中,“体系结构”一词被用来描述一个抽象的机器,而不是一个具体的机器实现。一般而言,一个 CPU 的体系结构有一个指令集加上一些寄存器而组成。

2. 指令集

计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。指令集,就是 CPU 中用来计算和控制计算机系统的一套指令的集合,而每一种新型的 CPU 在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进与否,也关系到 CPU 的性能发挥,它也是 CPU 性能体现的一个重要标志。指令的强弱也是 CPU 的重要指标,指令集是提高微处理器效率的最有效的工具之一。

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

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

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

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

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

3. 架构和指令集关系?

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

CPU 的硬件结构,即架构,一旦确定,那么使用该架构的 CPU 能实现的功能大体上是一样的,而且去实现该功能的指令集也大体上一样的。

设计 CPU 架构即决定了指令集,如 X86 指令集,是因为该 CPU 采用了 X86 结构,所以才叫 X86 指令集;指令集是指某种架构 CPU 能实现的所有功能,这些功能对应的代码编号构成指令集;代码编号应该就是指机器码这种底层代码,某种架构 CPU 架构确定后,代码编号就确定了,这些编号反映了 CPU 以什么样的方式去执行某些功能,决定了硬件的执行方式;前面说这些代码编号可能就是机器码,机器码就是二进制数字,二进制数字反映在电路上就是高低电平,从而驱动电路运行;不同代码编号的二进制数字排列就不同,所以驱动电路的高低电平就不同,所以电路执行的方式就不同。

同一个程序 -> 汇编语言 -> 不同指令集 -> 不同架构的 CPU -> 不同的实现电路 -> 相同的功能。

4. Apple 处理器和配置

下面对 Apple 处理器做一个格式总结,具体的发展历程请手动 BD...

处理器/芯片 架构、指令集 搭载机型 发布时间
A4 Cortex-A8 iPhone 4 iPad 第一代、iPod touch 第四代 2010
A5/ A5X ARM Cortex-A9 iPhone 4S iPad 2 / iPad 第三代 2012、2011
A6/A6X armv7s A6X iPhone 5、iPhone 5C 2012
A7 arm64 iPhone 5S iPad Air、iPad mini 2、iPad mini 3 2013
A8/A8X arm64 iPhone 6系列 iPad mini 4、iPod touch 第六代 2014
A9/A9X arm64 iPhone 6s系列、iPhone SE iPad 第五代 2015
A10/A10X arm64 A10 iPhone 7系列 iPad 第六代、iPod Touch 第七代、 A9X 9.7 英寸 iPad Pro、12.9 英寸 iPad Pro 第一代 / 10.5 英寸 iPad Pro、12.9 英寸 iPad Pro 第二代(2017) 2016、2015
A11 arm64 iPhone 8系列、iPhone X 2017.
A12 arm64e 12.9 英寸 iPad Pro 第三代、11 英寸 iPad Pro、 iPhone XS系列、iPhone XR iPad mini 5、iPad Air 第三代 2018.
A13 arm64e iPad第九代(10.2英寸)、iPhone 11系列、iPhone SE第二代、iPhone SE第二代 2021.
A14 arm64e iPhone 12系列、iPad Air 第四代 2020.9
A15 arm64e iPhone SE第三代、 iPhone 13系列 2022.3、2021.9
A16 arm64e iPhone 14 Pro 和 iPhone 14 Pro Max 2022.9
A17 Pro arm64e iPhone 15 Pro 2023.9
M1 arm64e iPad Pro12.9 2021.4
M1 arm64e iPad Air5 2022.3
M2 arm64e iPad Pro、Mac mini 2022.10

iOS 架构配置:

处理器架构、指令集:

  • armv7|armv7s|arm64 都是 ARM 处理器架构指令集。
  • i386|x86_64 是 Mac 处理器的指令集。

这些指令集在那些设备架构中用到?

armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)

arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display) 以及更高的版本

armv7|armv7s|arm64 都是 ARM 处理器的指令集:真机 32 位处理器需要 armv7,或者 armv7s 架构指令集、真机64位处理器需要 arm64/arm64e 架构的指令集。

对于模拟器 x86 32 位处理器测试需要 Intel i386 架构指令集,模拟器 64 位处理器测试需要 Intel x86_64 架构的指令集。

i386 是针对 intel 通用微处理器 x86 架构的 32 位处理器
x86_64 是针对 x86 架构的 64 位处理器

i386|x86_64 应用在 Mac 处理器的指令集
最新 M1、M2 处理器则采用的也是基于 ARM 架构的指令集

在实际开发中的配置问题,Xcode 中指令集相关选项(Build Setting 中):

  1. Architectures:
    指定工程被编译成可支持哪些指令集类型,而支持的指令集越多,就会编译出包含多个指令集代码的数据包,对应生成二进制包就越大,也就是 ipa 包会变大。

    一般设置默认值为:Standard Architectures (Apple Silicon, Intel) - $(ARCHS_STANDARD),在真机的编译下实质是(armv7和arm64)、在模拟器的时候是(x86_64、i386)。

  2. Valid Architectures:
    限制可能被支持的指令集的范围,也就是 Xcode 编译出来的二进制包类型最终从这些类型产生,而编译出哪种指令集的包,将由 Architectures 与 Valid Architectures(因此这个不能为空)的交集来确定。Xcode 12 以前,我们通过 Valid Architectures 来配置支持的机型。但在 Xcode12 中, Valid Architectures 这一项被移除掉了,改变成了 VALID_ARCHS 的栏目。但是升级 Xcode12 以后的版本,工程配置是这样的 EXCLUDED_ARCHS,表示配置不包含的 CPU 架构,在这里就可以把不需要或者一些三方框架不支持的架构配置在这里。如果 Excluded architectures 里配置了架构,就会去掉配置里的架构,比如配置了armv7 ,那么真机里就只有 arm64 了。

  3. Build Active Architecture Only:
    指定是否只对当前连接设备所支持的指令集编译,当其值设置为 Yes,是为了debug 的时候编译速度更快,它只编译当前的 Architecture 版本,而设置为 No 时,会编译所有的版本。 所以,一般 debug 的时候可以选择设置为 Yes,release 的时候要改为 No,以适应不同设备。文章来源地址https://www.toymoban.com/news/detail-760088.html

到了这里,关于处理器架构和配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文深入搞懂ARM处理器架构

    典型的微处理器由控制单元、程序计数器(PC)、指令寄存器(IR)、数据通道、存储器等组成 。 指令执行过程一般分为:   取指: 从存储器中获得下一条执行的指令读入指令寄存器; PC: 程序计数器, 总是指向下一条将要执行的指令; IR: 指令寄存器,用于保持已取得指令

    2024年04月28日
    浏览(40)
  • ARM架构版本及处理器系列详细介绍

    ARM是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器,它只设计芯片而不生产。ARM的经营模式在于出售其知识产权核(IP core),将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供技术服务。         ARM的版本

    2024年02月16日
    浏览(36)
  • RISC-V架构的开源处理器分析

    摘要: RISC-V架构本身面积小、性能较高,最为关键的是这一架构本身功耗较低且作为全新的开源精简指令集,无论是技术还是产品都得到了迅速的发展,效果突出。基于此,本文深入研究RISC-V架构开源处理器内部情况,明确不同模块的功能以及运行方式,并且围绕着实际案例

    2024年02月06日
    浏览(38)
  • 『ARM』和『x86』处理器架构解析指南

    如果问大家是否知道 CPU,我相信不会得到否定的答案,但是如果继续问大家是否了解 ARM 和 X86 架构 ,他们的区别又是什么,相信 可能部分人就会哑口无言 了 目前随着深度学习、高性能计算、NLP、AIGC、GLM、AGI 的技术迭代,助力大模型快速发展,对于 多元算力结合(CPU+GP

    2024年02月08日
    浏览(48)
  • 电源控制系统架构(PCSA)之系统控制处理器

    安全之安全(security²)博客目录导读 目录 一、系统控制处理器 1、服务 2、可信操作         SCP是一种基于处理器的能力,为提供电源管理功能和服务提供了一个灵活和可扩展的平台。         在移动系统中,SCP处理器一般是Cortex-M微控制器,但根据系统需求,其他Arm 

    2024年02月08日
    浏览(39)
  • DP读书:鲲鹏处理器 架构与编程(十四)ACPI与软件架构具体调优

    ACPI (Advanced Configuration and Power Interface) 是一种由英特尔、微软、惠普、索尼等公司共同开发的电源管理标准。它提供了一种通用的电源管理接口,用于管理计算机系统的电源状态、性能和配置等方面。 在计算机系统中, ACPI负责处理电源管理事件 ,例如系统启动、关机、休

    2024年02月10日
    浏览(34)
  • Python判断电脑的处理器架构是否为amd64方法

    Python 查看电脑的处理器架构是否为 amd64 。可以使用 platform 模块中的 machine() 函数,该函数返回当前的处理器类型,例如: 如果输出的结果为 x86_64 或 amd64 ,则表示电脑支持 amd64 架构。如果输出的结果为其他值,比如 i386 或 armv7l 等,就表示电脑的处理器架构与 amd64 不匹配。

    2024年02月13日
    浏览(53)
  • DP读书:鲲鹏处理器 架构与编程(六)PCI Express 总线

    PCI Express(Peripheral Component Interconnect Express) 是一种高速串行计算机扩展总线标准,原来的名称为“3GIO”,是由英特尔在2001年提出的。PCIe属于 高速串行点对点双通道高带宽传输 ,所连接的设备分配独享通道带宽,不共享总线带宽, 主要支持主动电源管理,错误报告,端对

    2024年02月11日
    浏览(38)
  • 【架构】探索计算机处理器的世界:ARM和x86架构解析及指令集

    计算机处理器是数字化时代的核心引擎,而在众多处理器架构中,ARM和x86是备受关注的三个。本文将带您深入探索这三个架构,介绍它们的特点、公司背景以及应用领域。让我们一起揭开计算机处理器的神秘面纱吧! ARM(Advanced RISC Machines)是一种计算机指令集架构(ISA),

    2024年02月11日
    浏览(37)
  • ARM处理器架构的Thumb指令集中关于IT指令的使用

    在ARMv6T2以及ARMv7架构扩展了Thumb指令集,其中加入了 IT 指令,进一步增强了代码的紧凑性。 Thumb中有一个比较有意思的指令—— IT ,这条指令用于根据指定的条件来执行后面相继的四条指令。当然,Thumb-2中大部分算术逻辑指令都含有带条件执行的特征,不过Thumb-2是32位的。

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包