1、代码如何控制底层硬件操作?
以java代码为例子,编写的代码是高级编程语言,首先会经过编译成class字节码文件,这个过程中class文件首先会翻译成指令,最后经由jvm解释成二进制运行,二进制通过高低电平表达,高低电平再进一步控制底层电子器件。
class字节码文件里面是存放了十六进制字节(码)
2、指令是什么,和数据是什么关系?
计算机中,万物皆是0,1,指令是一种符合人类理解的二进制表达,它作用于操作底层的电子器件。那么数据呢?其实也是一种二进制数据。指令和数据的区分只是一种应用上的区分,本质上没有任何区别,都是0,1
3、指令由谁执行,数据如何存储?
指令由cpu执行,数据存储在存储器中。那么cpu如何找到存储器,如何找到存储器特定的地址?如何对存储器操作?由此cpu设置了三条总线,其中控制总线用于寻找存储器和传达对存储器的操作如读写,地址总线用于寻找存储器上确定的地址,地址总线的数量决定了寻址的范围;数据总线用于传输数据,数据总线的数量决定了传输数据的速度
4、若cpu需对不同设备进行操作,如何实现?
引发思考2:cpu是否可以对不同外设进行总线连接控制?由于外设不知道何时接到计算机上,如显示屏,键盘,故此种思考不合理。那么我们提前预留接口,当有外设接入计算机,接入接口即可。这种接口的物理结构叫做接口卡,接口卡也叫扩展接口,上面插了存储器RAM或ROM,cpu通过总线与接口卡相连进而简介控制外设。
5、为什么要在接口卡上插上存储器,从而实现cpu与外设的交互操作?
操作,什么是操作?.是对数据的操作,那么前提必须先有数据,即先存储数据,故在接口卡上插的都是存储器
6、cpu如何寻找不同外设的地址?
数据操作,那便是对外设存储器的操作,因为外设通过接口卡与cpu交互,所以将各个接口卡上的存储器汇总成一个逻辑存储器,cpu在这段地址空间读写数据,实际就说在对应的物理存储器读写数据。