计算机系统简介
1.组成:
- 硬件
- 软件:
- 系统软件:又称系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,确保高效运行。
- 应用软件:又称应用程序,它是用户根据任务需要所编制的各种程序。
2.计算机的发展:
硬件发展(摩尔定律):
软件发展:
- 编程语言的发展:机械语言—>汇编语言—>高级语言
- 操作系统的发展:批处理系统—>分时系统—>实时系统—>PC操作系统—>网络操作系统—>分布式操作系统
计算机系统的层次结构
计算机系统的基本组成:
计算机硬件:
- 冯·诺伊曼计算机:
- 采用存储程序的工作方式;
- 计算机硬件系统由运算器、存储器、控制器、输入设备、输出设备组成;
- 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机能区分它们;
- 指令和数据均用二进制代码表示;
- 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址;
- 计算机的功能部件:
- 存储器:分为主存和辅存,中央处理器可以直接访问的程序和数据存放在主存中;
- 运算器:完成对数据或信息的处理和运算,如算术和逻辑运算,并将运算的中间结果暂存在运算器内;
- 控制器:完成对计算机各部件协同运行的指挥控制,即保证指令按预定的次序执行,保障每一条指令按规定的执行步骤正确执行,还要处理各项紧急事件;
- 输入设备:用来输入原始数据和程序,如键盘、鼠标;
- 输出设备:用来输出计算机的处理结果,如显示器和打印机;
计算机软件:
- 分类:
- 系统软件
- 应用软件
- 计算机语言:
- 机器语言:由二进制编码组成,它是计算机唯一可以直接识别和执行的语言。
- 汇编语言:是用英文单词或其缩写代替二进制的指令代码。
- 高级语言:(如C、C++、Java等)
- 翻译程序:
- 汇编程序:将汇编语言程序翻译成机器语言程序。
- 解释程序:将高级语言源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
- 编译程序:将高级语言源程序翻译成汇编语言程序或机器语言程序。
计算机硬件的基本结构:
典型的冯·诺伊曼计算机是以运算器为中心的,如下图所示:
现代的计算机已经转化为以存储器为中心,如下图所示:
ALU:算术逻辑运算单位,用来完成算术逻辑运算。
CU:控制单元,用来解释存储器中的指令,并发出各种操作命令来执行指令。
计算机软件和硬件的关系:
- 从用户的角度来看,它们在功能上是等价的,这一等价性被称为软、硬件逻辑功能的等价性。
- 当前计算机硬件与软件正朝着相互渗透、相互融合的方向发展。
- 软件性能的发挥必须依托于硬件的支撑。
- 硬件实现的往往是最基本的算术和逻辑运算功能,而其他功能大多通过软件的扩充得以实现。
计算机系统的多级层次结构:
计算机系统的工作原理:
从源程序得到可执行程序,过程如下图所示(以C语言程序为例):
- 预处理阶段:对源程序中以”#“开头的命令进行处理,输出结果是一个以”.i“为拓展名的文件hello.i
- 编译阶段:编译器对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s
- 汇编阶段:汇编器将hello.s翻译成机器语言指令,把这些指令打包成一个"可重定位目标程序"hello.o,它是一个二进制文件,用文本编辑器打开会显示乱码.
- 链接阶段:链接器将多个可重定位目标程序和标准库函数合并成一个可执行目标程序.
存储程序的基本思想:
基本思想就是将程序和数据一样,存放在主存中(如下图所示);运行时通过地址访问到程序的内容,解析出对应的指令执行执行
计算机硬件组成的细化说明(如下图所示):
1.主存储器:
- 存储体:由许多存储单元组成,每个存储单元又包含若干个存储元件;每个存储元件能存放一位二进制代码(0或1),因此每个存储单元可以存储一串二进制代码,这就被成为一个"存储字";存储字的二进制位数称为"存储字长".
- MAR:用来存放想要访问的存储单元的地址,它的位数决定了能访问的存储单元的最大个数.
- MDR:用来存放从存储体单元中取出或者准备向存储体单元存入的数据,它的位数和存储字相等.
2.运算器:
- ACC:累加器
- MQ:乘商寄存器
- X:操作数寄存器
这三个寄存器在完成不同的算数运算时,所存放的操作数如图所示:
3.控制器:
- IR:指令寄存器,用来存放当前的指令,其内容来自主存的MDR.
- PC:程序计数器,用来存放当前将要执行指令的地址,它与MAR之间有一条直接通路,且具有自动加1的功能,也就是可以自动形成下一条指令的地址.
4.I/O:包括各种I/O设备及其相应的接口.每一种I/O设备都由I/O接口与主机联系,它接收CU发出的各种控制命令,并完成相应的操作.
计算机硬件的工作过程:
- 把程序和数据装入主存储器;
- 从程序的起始地址运行程序;
- 按照程序的首地址从存储器中取出第一条指令,经过译码等步骤控制计算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址;
- 用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止.每条指令都是在取值、译码和执行的循环过程中完成的.
本文章内容主要为计算机组成原理学习笔记分享,配图源自B站尚硅谷,欢迎各位同学给予建议,一起交流,共同进步。