计算机种类繁多,例如简单的温度传感器,湿度传感器等,也能进行简单的计算,也是一台计算机
以计算性能排名,目前放在广州的,国防科技大学的天河二号,是目前运算能力最快的计算机,拥有3120000核数cpu(个人pc普遍4核或8核),这种大型计算机,通常叫做超级计算机
可见,计算机系统有简单的,也有复杂的。如何抽象出共有特征?忽略掉一些特有的属性,计算机系统主要可以分为
- 计算机硬件
- 计算机软件
其中,硬件是计算机的实体,包括主机,外设等
而软件则是具有各类特殊功能的程序组成,软件又可以分成系统软件,应用软件等
这种简单的硬件软件划分,并不能体现计算机硬件与软件之间的逻辑关系,我们使用一个层次结构表现
Apprecation Software | 应用软件 |
Operation Software | 系统软件 |
… | … |
Micro Archivecture | 微体系架构 |
Logic | 逻辑层 |
… | … |
Physics | 物理层 |
在计算机组成原理中,主要研究逻辑层,微体系架构层,学习主要部件的逻辑实现,以及主要部件之间的连接
除去物理结构的抽象,从程序员角度来看,有
- 机器语言
- 汇编语言
- 高级语言
但计算机并不能识别汇编,高级语言,一台能运行汇编语言的程序,必须具有能够实现汇编语言的编译程序,以及高级语言的编译程序,或解释程序
实际上,还有编写微程序实现机器指令的程序员(比机器语言更低级),以及调用操作系统的程序员,例如mov ah, 4ch,int 21h是汇编程序的退出,就是调用了dos系统的中断指令。
虚拟机m4 | 编译程序翻译为汇编 |
虚拟机m3 | 汇编编译为机器语言 |
虚拟机m2 | 机器语言解释操作系统 |
实际机器m1 | 微指令解释机器指令 |
微程序机器m0 | 硬件执行微指令 |
微指令之间有一定的先后顺序,多条微指令构成了一个微程序,一个微程序对应一条机器指令
对于高级语言,实际是通过一层一层往下传递,最终实现的,
在虚拟机m2和实际机器m1中间可以划分为软件和硬件,一个功能的实现可以由硬件实现,也可以由软件实现,硬件与软件逻辑上具有等效性,但如果由硬件实现,成本造价往往很高。而软件实现也许造价更低,按速度稍微低一些。
计算机组成与计算机体系结构从研究上有什么区别?
- 计算机体系结构: 指程序员所看到的计算机系统属性,概念性的体系和功能结构(人的逻辑,机器语言程序员的逻辑)
- 计算机组成: 实现计算机体系结构所表现出的属性
计算机的组成,比如说指令集的实现,即如何实现指令集
再通俗一点说,计算机体系结构决定是否有乘法指令,计算机组成解决如何实现乘法指令