[计算机基础系列文章(三)]程序跑起来的核心-CPU

什么是程序

程序是指令和数据的组合体

程序是被谁执行的

程序是被 中央处理器(central processing unit, 简称CPU)执行的

程序的编译流程

在程序允许之前,需要先将其转化为机器语言存储到存储器(通常为硬盘)
在这里插入图片描述

计算机硬件组成

先回顾下计算机的硬件组成,如下图:
注:图片来源于(深入理解计算机系统(1.1)—计算机概述
在这里插入图片描述

程序的执行流程

在这里插入图片描述

CPU的组成

从结构上划分:

在这里插入图片描述

运算器

  • 负责计算寄存单元中的数据

控制器

  • 负责把内存上的指令、数据读入寄存单元
  • 根据指令的执行结果控制整个计算机

时钟发生器

  • CPU本身是集成电路,而集成电路是由若干个晶体管组成的,所谓时钟频率其实是指晶振的频率,产生特定频率的脉冲信号来控制硬件工作。
  • CPU是在特定的时钟频率下工作,时钟频率可以用来衡量CPU的运算速度,单位HZ(赫兹)

寄存器

类型 作用 数量
累加寄存器(accumulator register) 存储执行运算的数据和运算后的数据 1
标志寄存器(flag register) 存储运算处理后的CPU状态 1
程序计数器(program counter) 存储下一条指令所在内存的地址 1
基址寄存器(base register) 存储数据内存的起始地 址 N
变址寄存器(index register) 存储基址寄存器的相对地址 N
通用寄存器(general purpose register) 存储任意数据 N
指令寄存器(instruction register) 存储指令。CPU内部使用,程序员无法通过程序对该寄存器进行读写操作 1
栈寄存器(stack register) 存储栈区域的起始地址 1

程序员最需要理解的是寄存单元,其余三个了解即可,因为程序是把寄存器作为对象来描述,对于程序员来说CPU就是具有各种功能的寄存器的集合体

CPU总线

是计算机系统中最快的总线,用来将CPU各部件连接起来,负责传输信息。
总线传送的是字,字的大小与系统相关,比如在32位操作系统当中,一个字是4个字节。

机器语言指令的主要类型和功能

类型 功能
数据转送指令 寄存器和内存、内存和内存、寄存器和外围设备之间的数据读写操作
运算指令 用累加寄存器执行算术运算、逻辑运算、比较运算和移动运算
跳转指令 实现条件分支、循环、强制跳转等
call/return指令 函数的调用/返回调用前的地址

影响CPU性能的因素

  • 主频
  • CPU位数
  • 缓存指令集
  • 核心数
  • IPC(每周期指令数)

CPU与GPU的区别

  • CPU有大量的缓存和复杂的逻辑控制单元,非常擅长逻辑控制、串行的运算。
  • GPU有大量的算术运算单元,可以同时执行大量的计算工作,擅长的大规模的但是没有什么技术含量的并发计算。

使用CPU来做复杂的逻辑控制,用GPU来做简单但是量大的算术运算,就能够大大地提高程序的运行速度。

系列文章

上一篇:[计算机基础系列文章(二)]计算机软件系统
下一篇:[计算机基础系列文章(四)]关于二进制

版权声明:本文为CSDN博主「郝琳99」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/haolinbird/article/details/123039682

生成海报
点赞 0

郝琳99

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Proteus + Keil单片机仿真教程(二)炫彩灯

一、炫彩灯 参考图: 程序分析:每个小灯闪两次,依次累加常亮,最后所有灯再闪烁两次。 这个程序主要是延时程序、单片机引脚口的控制,流程化控制,相对比较简单&#

陪娃学Arduino之最基础的Arduino 知识你知道吗

最近在家里陪小孩子一起玩 Arduino ,6岁的小孩子看着书上的电路图可以搭建简单的电路,简单的拖一下积木就可以驱动Arduino ,很不错,在像好的方向发展。由于之前没有学习过硬件&#

# 浅谈IIC总线通讯协议

浅谈IIC总线通讯协议 相关概念 IIC总线是PHLIPS公司在八十年代初推出的一种同步串行的半双工总线,支持多主机多从机,具备总线裁决功能,用于连接整体电路。 整体电路:同一块板子上