要了解数字计算机的主要组成和工作原理,可从打算盘说起。假设给了一个算盘、一张带有横格的纸和一 支笔,要求我们计算y=ax b-c这样一个题目。为了 和下面讲到的内容做比较,我们不妨按以下方法把使 用算盘进行解题的过程步骤事先用笔详细地记录在带 横格的纸上。
首先,将横格纸编上序号,每一行占一个序号,如1, 2,3,…,n,如表1.5所示。其次,把计算式中给定 的四个数a,b,c和x分别写到横格纸的第9,10,11, 12行上,每一行只写一个数。接着详细列出给定题目 的解题步骤,而解题步骤也需要记在横格纸上,每一 步也只写一行,如下表所示,我们从第1行开始,一 步一步进行计算,最后可得出所要求的结果。
- 带横格且编号的纸
- 算盘(用于加减乘除)
- 笔(把原始数据和解题步骤记录,展示计算结果)
- 人(大脑,手)
冯诺依曼结构——以运算器为中心
1945年,冯·诺依曼提出了“存储程序”的概念。以此概念为基础的各类计算机通称为冯·诺依曼机。它的特点可归结如下:
- 计算机硬件由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
- 指令和数据以同等地位存放于存储器内,并可按地址寻访。
- 指令和数据均用二进制数表示。
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
- 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
五大功能部件——运算器
运算器就好像是一个由电子线路构成的算盘,示意图如图1.3所示。它的主要功能是进行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非)。
运算器的核心是算术逻辑单元(ALU)。运算器还包括若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,其中前3个寄存器是必须有的。另 外还有程序状态字寄存器(PSW),保留各类标志信息或CPU状态信息,如溢出标志、进位/借位标志、零标志等。
五大功能部件——存储器
存储器的功能是存放解题的原始数据和解题步骤(即数据和程序)。指令和数据都以二进制代码的形式存储在存储器当中,
那么它们是怎么组织存放的呢?
目前通常采用半导体器件制造存储器,我们知道,一个半导体触发器由于有0和1两个状态,可以记忆一个二进制代码。若一个数用16位二进制代码来表示,那么就需要有16个触发器来保存这个数。通常把这样的多个触发器称为一个存储单元 (通常取1字节=8位的偶数倍);存储器是由许多存储单元组成的,每个存储单元都有编号,称为地址。
向存储器中存数或者从存储器中取数,都要按给定的地址来寻找所选的存储单元,这种存取方式称为按地址存取方式。存 储器的结构如图1.4所示,由多个存储单元组成的存储体用于存放二进制信息,地址寄存器(MAR)指出需要访问的地址, 经过地址译码后选中要访问的存储单元。数据寄存器(MDR)用于暂存要从存储器中读出或写入的信息,时序控制逻辑用 于产生存储器操作所需的各种时序信号。
这个模块的作用是存储1bit数据。比如上面这个RS型的FF,R 是Reset,输入1则清零。S是Set,输入1则保存1。RS都输入0 的时候,会一直输出刚才保存的内容。
五大功能部件——控制器控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果。控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。
计算机进行计算时,指令必须是按一定的顺序一条接一条地进行。控制器的基本任务,就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进 行相应的操作;接着从存储器取出第二条指令,再执行这第二条指令;依次类推。PC就是用来存放下一条指令在主存当中 的地址的,每取出一条指令,PC自动加1,从而为取下一条指令做好准备;取出来的指令经过MDR后放入IR,用于分析和判断;在执行指令实现指令功能的时候,往往不是一步到位的,CU就是用来控制发出一系列微操作命令实现这条指令的功能。
通常把运算器和控制器集成在一起称为中央处理器,简称CPU,而CPU和存储器一起构成称为主机,而除此之外输入输出 设备、外存等统称为外围设备,简称外设。需要注意的是,MAR与MDR虽然是存储器的一部分,但在现代计算机中却是存 在于CPU中的。
五大功能部件——输入输出设备- 输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。
- 输出设备可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。
现代计算机组成——存储器为中心
计算机软件分类——两种软件
- 系统软件又称为系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,高效运行。它包括:标 准程序库、语言处理程序(如将汇编语言翻译成机器语言的汇编程序或将高级语言翻译成机器语言的编译程序)、操作系 统、服务程序(如诊断程序、调试程序、排错程序等)、数据库管理系统(DBMS)、网络软件等。
- 应用软件又称为应用程序,它是用户根据任务需要所编制的各种程序,如科学计算程序、数据处理程序、过程控制程序、事务管理程序等。
机器语言
- 计算机能识别的指令
汇编语言
- 与机器语言一一对应,每一条机器指令都有对应的汇编指令
高级语言
- 通过编译器编译得到汇编/机器语言
计算机工作过程
- 预处理阶段:预处理器(cpp)对源程序中以字符 # 开头的命令进行处理,例如将#include命令后面的.h文件内容插入程序文件。输出一个以.i为扩展名的源文件hello.i。
- 编译阶段:编译器(ccl)对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s。
- 汇编阶段:汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成一个称为可重定位目标文件的hello.o,它是一种二进制文件。
- 链接阶段:链接器(1d)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,或简称可执行文件。链接器将hello.o和标准库函数prinft所在的可重定位目标模块prinft.o合并,生成可执行文件hello。
计算机工作过程
汇编程序
- 用于将汇编语言翻译成机器语言
解释程序
- 用于将源程序的语句按执行顺序翻译成机器指令并立即执行
编译程序
- 将高级语言翻译成汇编语言或机器语言
计算机层次结构
- 第一级是微程序设计级。这是一个实在的硬件级,它由 机器硬件直接执行微指令。如果某一个应用程序直接用 微指令来编写,那么可在这一级上运行应用程序。
- 第二级是一般机器级,也称为机器语言级,它由微程序解释机器指令系统。这一级也是硬件级。
- 第三级是操作系统级,它由操作系统程序实现。操作系统由机器指令和广义指令组成,这些广义指令是操作系 统定义和解释的软件指令,所以这一级也称为混合级。
- 第四级是汇编语言级,这一级由汇编程序支持和执行。 如果应用程序采用汇编语言编写时,则机器必须要有这 一级的功能。
- 第五级是高级语言级,它是面向用户的,为方便用户编 写应用程序而设置的。这一级由各种高级语言编译程序 支持和执行。
作者:有出路链接:https://juejin.cn/post/6995706931922862093来源:掘金
,