计算机硬件的基本组成以及各个硬件的工作原理
1.计算机硬件
1.1.0冯·诺依曼机基本思想
冯·诺依曼在研究EDVAC机时提出 “存储程序”
的概念·存储程序的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯·若依曼机,在此之前人们通过手动连接线缆的方式控制计算,十分的不便。
1.1.1 冯·若依曼机的特点
- 采用存储程序的工作方式
- 计算机硬件由
运算器
,存储器
,控制器
,输入
和输出设备
五部分组成 - 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机能区分他们
- 指令和数据均用二进制表示
- 指令由操作码和地址码构成
- 以运算器为中心(现代计算机以存储器为中心)
(现在不理解没关系,先混个脸熟,等下有个例子解释)
2.各个部件的功能
2.1 初步认识
输入必须经过运算器才能流向输出所以说它是运算器为中心
运算器把加工好的数据放入存储器中,但是存储器里面的数据不能直接给与输出设备这是低效的,所以现代计算机改良为以存储器为中心,
现代计算机的CPU包括了控制器和运算器
存储器分为 主存(内存)和辅存(外存)
我们经常说的手机内存 512G 其实指的是辅存,运行内存才指的是内存。常说的硬盘也是辅存。
2.2 存储器
存储器分为主存和辅存,CPU能直接访问的是主存,辅存用于帮助主存记忆更多的信息。辅存必须调入主存后才能被CPU访问
2.2.1 存储器的主存的构成
1.MAR: Memory Address Register( 存储地址寄存器)
2.MDR :Memory Data Register(存储数据寄存器)
3.存储体
MAR就像菜鸟驿站的店员,我们告诉取件码(地址)然后店员在货架(存储体)上找然后放在柜台上(MDR)
存储体:由许多存储单元组成
存储单元:可以存放一串二进制代码的地方
存储字(word): 存储单元中的二进制代码
存储字长:存储单元中二进制代码的位数(可以是1字节(B)或者是字节的偶数倍)
存储元:即存储二进制电子原件,每个存储元可以存1ibt (不关心)
MAR反映存储单元的个数
MDR位数=存储字长(MDR的位数决定了一个字(word)的大小,跟MDR的涉及有关)
宽带的传输速度100Mb/s,而下载东西的时候是以B(字节)为单位的,所以用 100Mb/s的宽度下载东西,其实没有想象中那么快,实际就是比 10MB/s快一点的速度(1B(字节) = 8b(比特位))
2.3运算器&控制器
2.4a*b+c的例子
要把抽象的知识变具体最好的方法就是让它们跑起来
取a操作
注:(MAR)= 0 代表 MAR这个寄存器里面存的地址为0
M(MAR)->MDR代表 把MAR所指向的存储单元的数据让入MDR中
(类似与 c语言中的指针)M(MAR)类似于解引用
a*b的操作
注:a已经在ACC中了 乘数先是放在MQ中(MDR)->MQ)
,然后ACC把a放入通用寄存器x中((ACC)->X )
,ALU的通过总线告诉CU进行乘法运算,由ALC实现乘法运算然后把结果放入ACC里面如果乘积太大就需要MQ辅助。((MQ)*(X)->ACC )
a*b+c操作
存数操作
控制单元CU解析了操作码(OP(IR)->CU)后通过总线告诉主存储器要进行存的操作 ACC里面的值下载到MDR中((ACC)->MDR),然后根据MAR所存的地址(Ad(IR)->MAR) 放入相应的存储单元(MDR->放入对应地址的存储单元)
中断线程