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

本文详细介绍了程序的概念、执行流程以及CPU的内部结构,包括寄存器的作用、CPU的组成部分和指令类型。还探讨了影响CPU性能的因素,如主频、缓存等,并对比了CPU与GPU的差异。最后,讨论了程序设计中的关键元素,如数据转送、运算和跳转指令。
摘要由CSDN通过智能技术生成

什么是程序

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

程序是被谁执行的

程序是被 中央处理器(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来做简单但是量大的算术运算,就能够大大地提高程序的运行速度。

系列文章

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值