当前位置: 首页 > news >正文

【SoC基础】第2节:CPU简介

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处

文章目录

  • CPU结构设计
  • CPU工作原理
  • CPU的组成
  • CPU的类型
  • CPU内核与CPU的关系
  • CPU 内核种类
    • ARM 内核
    • RISC-V 内核
    • PowerPC 内核
    • MIPS 内核
  • 参考


CPU结构设计

冯诺依曼结构:程序和数据都放在内存中,且不彼此分离的结构称为冯诺依曼结构。并且使用同一个总线来传输指令和数据。基于冯诺依曼结构的计算机在执行程序时,需要从内存中依次读取指令和数据,并且指令和数据共享同一个地址空间。这种结构的优点是简单和灵活,适用于通用计算机。

哈佛结构:在哈佛结构中,指令存储器和数据存储器是独立的,它们分别使用不同的地址空间,使用不同的总线分别传输指令和数据。这种结构的优点是可以同时读取指令和数据,提高了并行处理的能力,适用于嵌入式系统和高性能计算。譬如大部分的单片机(MCS51、ARM9等)均采用哈佛结构。

优劣对比
冯诺依曼结构中程序和数据不区分的放在一起,因此安全和稳定性是个问题,好处是处理起来简单。
哈佛结构中程序(一般放在ROM、flash中)和数据(一般放在RAM中)独立分开存放,因此好处是安全和稳定性高,因此嵌入式设备都采用哈佛结构。缺点是软件处理复杂一些(需要统一规划链接地址等)。

总结
大多数计算机系统都是基于冯诺依曼结构设计的,其中指令和数据存储在同一内存中。然而,一些特定应用领域或特殊需求可能会采用哈佛结构,例如某些嵌入式系统或专用硬件。选择使用冯诺依曼结构还是哈佛结构要根据具体应用需求和设计目标来评估。
在这里插入图片描述

CPU工作原理

CPU运行处理过程:Flash(外存,相当于一个仓库)用于存储编译好的程序,外部的代码想要通过CPU的编译需要先经过DDR(内存,相当于一个火车)“运输”到寄存器中。然后通过运算器进行读取和解码。
CPU的工作流程,一般分为以下五个阶段:

1、获取指令 :首先将内存中的指令读取到CPU寄存器中
2、指令译码 :在获取指令后进入指令译码阶段,译码器对指令分析,获取指令类别和操作方法
3、执行指令 :译码结束后完成指令下的各种操作;
4、获取数据 :然后根据地址码从主存中读取数据进行运算;
5、写回数据:最后将运行的数据写回到内部的寄存器中,便于之后的指令存取。

CPU的工作原理基于时钟信号的节奏,以固定的频率进行指令的执行。每一个时钟周期,CPU会依次执行取指、解码、执行、访存、写回等步骤,从而实现程序的顺序执行。

CPU的组成

CPU=ALU(运算器)+CU(控制器)+ACC(寄存器)
ALU:(Arithmetic Logic Unit,算术逻辑单元)是CPU中负责执行算术运算和逻辑运算等操作的单元。
CU:(Control Unit,控制单元),负责控制和协调整个CPU的操作。
ACC:(Accumulator,累加器)是一种特殊的寄存器,用于存储和操作算术运算的结果。

CPU的类型

CPU的类型:CISC和RISC
CISC:CISC(复杂指令集)体系的设计理念是用最少的指令来完成任务(譬如计算乘法只需要一条MUL指令即可),因此CISC的CPU本身设计复杂、工艺复杂,但好处是编译器好设计。CISC出现较早,至今Intel还一直采用CISC设计。
RISC:RISC(精简指令集)的设计理念是让软件来完成具体的任务,CPU本身仅提供基本功能指令集。因此RISC CPU的指令集中只有很少的指令,这种设计相对于CISC,CPU的设计和工艺简单了,但是编译器的设计变难了。

CPU设计方式发展
1.早期简单CPU,指令和功能都很有限
2.CISC年代 —— CPU功能扩展依赖于指令集的扩展,实质是CPU内部组合逻辑电路的扩展。
3.RISC年代 —— CPU仅提供基础功能指令(譬如内存与寄存器通信指令,基本运算与判断指令等),功能扩展由使用CPU的人利用基础架构来灵活实现。

CPU内核与CPU的关系

CPU 内核并不完全等同于 CPU 本身,它们之间存在着包含与被包含的关系,在功能和概念上有明显区别,以下是具体分析:
功能方面
CPU 内核:是 CPU 的核心运算部件,主要负责执行指令、进行数据处理和运算等核心任务,像进行复杂的数学运算、逻辑判断以及数据的移位等操作,是 CPU 实现计算功能的最关键部分。
CPU:除了包含内核具备的运算功能外,还承担着更多协调和管理的工作。它要与内存、硬盘、显卡等其他计算机硬件进行数据交互和通信,控制数据在各个部件之间的传输,还要负责对整个计算机系统的资源进行管理和分配,比如决定哪个程序可以使用多少 CPU 时间、多少内存空间等。
结构方面
CPU 内核:只是 CPU 内部的一个关键组成部分,主要由运算器、控制器、寄存器组和高速缓冲存储器等构成,专注于指令执行和数据处理。
CPU:是一个更为复杂的整体硬件,除了内核外,还包括缓存(除了内核中的高速缓存外,还有可能有二级缓存、三级缓存等)、总线接口等其他功能模块。缓存用于存储更多临时数据,以减少内核访问内存的频率,提高整体性能;总线接口则用于实现 CPU 与其他硬件设备之间的连接和数据传输。

以常见的电脑 CPU 为例,英特尔酷睿 i7 处理器可能包含多个 CPU 内核,如 6 个或 8 个内核,这些内核协同工作,再加上处理器中的缓存、总线等其他部分,共同构成了完整的 CPU,以实现计算机的各种计算和处理任务。

CPU 内核种类

CPU 内核种类繁多,按照不同的架构和应用场景,主要可分为 x86 内核、ARM 内核、RISC-V 内核、PowerPC 内核以及 MIPS 内核等,以下是具体介绍:
##x86 内核
简介:x86 架构是英特尔公司为其第一块 16 位 CPU(8086)专门开发的,后来逐渐发展成为 32 位和 64 位架构,也被称为 IA-32(Intel Architecture 32-bit)和 x86-64 等。
特点:具有丰富的指令集,能够很好地兼容各种软件,在个人电脑和服务器领域占据主导地位。其发展历程长,技术成熟,有完善的生态系统。
应用场景:广泛应用于个人计算机、笔记本电脑以及服务器等设备,如英特尔的酷睿系列、至强系列处理器,AMD 的锐龙系列、霄龙系列处理器等都采用 x86 内核。

ARM 内核

简介:ARM(Advanced RISC Machines)内核是一种基于精简指令集计算机(RISC)架构的处理器内核,由 ARM 公司设计。
特点:具有低功耗、低成本、高性能的特点,并且采用了独特的 Thumb 指令集,在保持高性能的同时进一步降低了功耗和成本。
应用场景:在移动设备领域占据绝对主导地位,如智能手机、平板电脑、智能手表等,像高通骁龙系列、苹果 A 系列、华为麒麟系列、联发科天玑系列等移动处理器都采用了 ARM 内核。此外,在物联网、嵌入式系统等领域也有广泛应用。

RISC-V 内核

简介:RISC-V 是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),它具有高度的可定制性。
特点:开源免费,允许用户根据自己的需求对内核进行定制和扩展,具有很好的灵活性和可扩展性,有望打破传统指令集架构的垄断。
应用场景:在物联网、嵌入式系统、边缘计算等领域具有广阔的应用前景,一些国产芯片如平头哥的玄铁系列处理器就采用了 RISC-V 内核。

PowerPC 内核

简介:PowerPC(Performance Optimization With Enhanced RISC – Performance Computing)是一种精简指令集(RISC)架构的微处理器,由 IBM、摩托罗拉和苹果公司共同开发。
特点:具有较高的性能和可靠性,采用了超标量流水线技术和多指令发射技术,能够同时执行多条指令,提高了处理效率。
应用场景:曾经广泛应用于苹果的 Mac 电脑、游戏机(如任天堂 GameCube、索尼 PS3 等)以及一些工业控制、航空航天等领域。不过随着 x86 和 ARM 架构的发展,PowerPC 的市场份额逐渐缩小,但在一些特定领域仍有应用。

MIPS 内核

简介:MIPS(Microprocessor without Interlocked Pipeline Stages)是一种基于精简指令集计算机(RISC)的处理器架构,由 MIPS 科技公司开发。
特点:具有简单、高效的特点,采用了五级流水线结构,能够快速地执行指令。其指令集相对较小,易于实现和优化。
应用场景:在早期的网络设备、嵌入式系统等领域有广泛应用,如一些路由器、交换机等网络设备中常采用 MIPS 内核的处理器。虽然近年来市场份额有所下降,但在一些特定的嵌入式应用场景中仍有一席之地。

参考

CPU内核详解


http://www.mrgr.cn/news/93924.html

相关文章:

  • DeepSeek本地化部署与跨域访问架构构建
  • ngx_regex_create_conf
  • 多视图几何--相机标定--从0-1理解张正友标定法
  • 【Go每日一练】统计字符出现的次数
  • Nuxt.js 全栈开发指南:构建现代 Web 应用的终极解决方案
  • 【09】单片机编程核心技巧:变量赋值,从定义到存储的底层逻辑
  • 最大括号深度
  • 一二三应用开发平台——能力扩展:多数据源支持
  • 「string」笔记
  • 优选算法系列(1. 双指针_上)
  • Trae IDE:解锁 AI 驱动的高效编程体验
  • [Java]使用java进行JDBC编程
  • 【追根溯源】在数电中脉冲波形的产生和整形电路
  • 数学之快速幂-数的幂次
  • el-pagination的使用说明
  • 【解决哈希冲突】
  • vscode带参数调试
  • starrocks如何配置多个hive数据源,其中一个是kerberos认证
  • JavaScript中的生成器函数详解
  • 【CSS3】金丹篇