先上张图,对计算机的软硬件组成有个大体的认识,接下来就是掰开揉碎这张大图ψ(`∇´)ψ,本文绝大多数图片均为手绘
分层结构
其中操作系统的重要性不言而喻,也就是虚拟机M2。对于大工作量的处理,电脑会经常死机,这是因为有些语言程序已经被系统保存,在执行新的工作的时候会重新调用这些语言程序,由于程序相同,原本储存在系统中的程序会被新程序覆盖,而这样的操作,数量级一上来计算机死机就是避免不了的了,M2的作用就是代替开发者协调与管理底层的调用,预防死机的状况。
软件系统
- 计算机软件分类
①系统软件:管理整个计算机系统,使系统资源得到合理运用。主要有OS,DBMS等。比较大众的是巨硬windows、MacOS、Android,还有开发者专用的Linux。
②应用软件:通过系统软件提供的接口,完成用户指定的任务。常用的有QQ,Alipay,WeChat…… - 计算机工作过程
1)将数据与程序装入主存
2)将源程序
转换为可执行文件
3)从可执行文件
的首地址开始逐条执行指令
源程序
转换为可执行文件
****:
-
执行指令过程
就请各位跳到控制器
的介绍部分进行详细了解
硬件系统
此主机非彼,我们常用的台式电脑主机经过长期的发展,组成以及性能上已经非常成熟(风扇,水冷,硬盘……),而上图中说到的主机是在概念上对其进行的定义,下图是对主机的一个拆分概念图:
跨过早期的 冯机 设计,来到最新的现代计算机结构理念,但是思想不变。
以下都是用白话解说,要背准确概念切勿模仿
I/O设备
- 输入设备:将程序和数据输入计算机。也就是能把我们平时能够操作的信号转换成电信号传给计算机,常见的有:鼠标、键盘、触摸屏……
- 输出设备:将计算机的计算结果以规定的形式输出。
其中类似于多功能打印机
的设备既能输入也能输出。
辅存的话就是能辅助主存存储数据的设备,常见的有:U盘
,机械/固态硬盘
以及近几年的高内存移动硬盘
etc.
控制器
作为整个硬件系统的主脑,能够基于每个部件的实际需求来下达相关指令,信息的传播与接收都是双向的。
上图谈到了很多次指令
一词,顾名思义就是计算机下达的命令,由操作码和地址码两部分拼接组成
操作码:决定操作的序列
地址码:表示操作数在存储器中的位置
指令执行过程:
1)取指令:PC→MAR→M→MDR→IR
程序中第一条指令的地址位于PC
中,从PC
取出第一条指令到IR
,将PC
的内容送到MAR
,MAR
中的内容直接送地址线
,同时控制器将读信号
送读/写信号线
,主存根据地址线
上的地址
和读信号
,从指定存储单元
读出指令
,送到数据线
上,MDR
从数据线
接收指令信息,并传送到IR
。
2)分析指令:OP(IR)→CU
指令
译码并送出控制信号
。控制器
根据IR
中指令
的操作码
,生成相应的控制信号
,送到不同的执行部件
,这里IR
是取数指令
,因此读控制信号
被送到总线的控制线
上。
3)执行指令:Ad(IR)→MAR→M→MDR→ACC
取数操作
。将IR
中指令的地址码
送到MAR
,MAR
中的内容送地址线
,同时控制器将读信号
送读/写信号线
,从主存
指定存储单元
读出操作数
,并通过数据线
送至MDR
,再传送到ACC
。
注:
每次取指令结束,需要为取下一条指令做准备,形成下一条指令地址:(PC)+1→PC
(PC),(MDR)…… | 括号表示括号中位置存放的内容(括号最好不要省略) |
---|---|
OP(IP) | (IP)表示从指令寄存器中取数送到CU,OP表示取指令的前边操作码部分 |
Ad(IP) | (IP)表示从指令寄存器中取数送到MAR用以取操作数,Ad表示取指令的后边地址码部分 |
指令
其本质上是一串01
代码(二进制码),和数据以同等地位储存在存储器中,一般情况下是按照顺序存放并顺序执行,但在特殊条件下可根据设定改变执行顺序,并按照地址寻访,
其中由控制器发出的控制信号
可以:
- 控制修改PC以得到下一条指令的地址;
- 控制ALU执行运算的方式;
- 控制主存进行读操作 或是 写操作。
存储器
近现代整个硬件系统的中心,通过控制器给予的指令,进行批量存储和释放程序和数据,可存储包括:
①输入数据
②经过运算器运算过后的中间数据
③最终运算结果数据
存储器分为两部分:主存
和辅存
。其中主存就是我们常说的内存,CPU能直接访问;辅存,顾名思义是用来协助主存存储额外程序和数据的,也可以被看作是I/O设备,只有将辅存的内容调入主存才能够被CPU访问,不能被直接访问。
主存:时序控制程序
按存储单元的地址进行存取(按地址存取方式),其中存储体
存放二进制信息是按内容访问的。
MAR:
用于寻址,其位数
=存储单元个数
,与PC长度相等。
eg:MAR是10位,则有210=1024个存储单元,记1K
MDR:
位数与存储字长相等,一般是字节二次幂的整数倍。
存储体的基本结构:
由众多存储单元组成,每个存储单元包括若干存储元件,每个元件存储一个二进制码(0,1)。依次类推一个存储单元就是一串二进制码,这串二进制码称为存储字
,位数称为存储字长(1B或是字节的偶数倍)
译码器:
这里推荐视频讲解
在概念上MAR,MDR是主存的一部分,但是在实际安装中MAR,MDR,Cache(高速缓存)被安装与CPU中,与主存三线连接:
其中CPU与主存之间有一条总线相连,总线中有地址
、控制
、数据
3组信号线。MAR中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从CPU写入主存
还是从主存写入CPU
。如果是读操作
,将MDR中的数据直接送到数据线上;如果是写操作,将数据线上的数据收到MDR中。
运算器
通过控制器传入的运算方法,对存储器传来的数据进行算数运算
和逻辑运算