软件与硬件的关系
硬件和软件互相依存。硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径。
计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。
软件是如何控制硬件的
本质上并没有软件控制硬件,就和你是不能用意念控制一个东西一个道理,而是硬件控制硬件。
或门
除非两个输入都是0,则输出0,否则输出1.
或非门
除非两输入相同则输出0,否则输出1
-
编程:程序本身就是指令的集合。
每个CPU都有自己的指令集,而CPU只能识别自己支持的指令集,指令集作为软件和硬件的接口。
所谓编程就是将程序员想要实现的效果,用CPU支持的指令集写下来,指令集有很多,程序员可以(也仅能)在支持的指令集中任意组合来完成想要的效果。
高级语言的各种助记符都是对指令集的抽象,从而让人们以更符合人类思想的方式来运用指令集,通过完成【高级语言->编译->汇编语言->cpu指令集->二进制机器码】这个过程,将其转化为高低电平存储到存储器。 -
软件程序经过编译器最终会转化为二进制机器语言,即1和0的数字组合,
-
CPU控制硬件:
- 总线:计算机内部通信,信息传输的通道,这些信息包含数据,指令,地址等,是计算机完成各项计算和操作任务的物理基础,在计算机内部,每一个硬件设备都以特定的方式与CPU相连(直接或间接)
- CPU通过总线向其他硬件发布指令,使其工作。
-
通讯协议: 就像人和人之间互相高效的传递消息需要统一的语言一样,通讯协议就像一门语言,确保双方所言所闻都能被正确的处理。总线也一样,需要一套既定的协议,来让CPU和其他硬件之间正常的沟通,协议规定了:什么指令代表什么含义,什么时候可以发信息,有几条数据线,电压,频率等等,事无巨细,一律都有非常严谨统一的规定。例如SPI,I2C,UART协议等等。
-
最后总结:整个工作过程如软件操作硬件流程图。
文字举例:程序员在电脑终端写下命令->编译->运行->CPU把数据写到内存里特定的位置->通过总线呼叫一下硬件->硬件到约定的内存地址去读取数字->根据1和0输出高低电压->结束
系列文章
[计算机基础系列文章(一)]计算机简介
[计算机基础系列文章(三)]程序跑起来的核心-CPU
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!