文章目录[隐藏]
什么是程序
程序是指令和数据的组合体
程序是被谁执行的
程序是被 中央处理器(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
暂无评论