1.
计算机系统的构成:
a. 由软硬件两大部分组成;
b. 硬件:是指实体部分,通常指主机(MPU、内存及其支持部件)、接口、外设这些看得见摸得着的东西;
c. 软件:是指程序和相关附件(程序的产品说明、使用说明等),软件不仅能充分调动硬件的功能而且能局部模仿人类思维,因此软件也是评价系统好坏的重要标志;
d. 软件通常分为两大类:
i. 系统软件:底层软件,和相应的硬件紧密相连,通用性较差,基于硬件平台,主要有这几类:
*1. 标准程序库:例如开机启动程序BIOS;
*2. 语言处理程序:特指汇编以及
高级语言编译器;
*3. 操作系统:有
批处理、分时、实时等类型;
*4. 服务程序:例如连接、诊断、调试程序等;
*5. 数据库管理程序:基于操作系统,又低于
应用程序;
*6. 网络通信程序等;
ii. 应用软件:位于最高层次,基于系统软件,比如游戏软件、事务管理软件、
文本编辑器等;
举例:比如游戏里的存档功能就是调用了操作系统提供的文件写入功能,因此游戏软件是基于操作系统的;
2. 计算机系统的层次结构:
a. 三级层次结构:
第三级(最高级)
虚拟机M3(高级语言机器)
实质是编译器,将高级语言编译成
汇编语言再传给M2执行,
从外部看上去就是一台可以直接运行高级语言的机器,将M2的功能隐藏了
第二级 虚拟机M2(汇编语言机器)
实质也是编译器,将汇编语言编译成
机器语言再传给M1执行,
从外部看上去就是一台可以直接运行汇编语言的机器,将M1的功能隐藏了
第一级(最底层) 实际机器M1(机器语言机器)
可以直接运行机器语言程序
b. 严格来讲以上虚拟机都属于翻译程序,通常翻译程序可以分为两类:
i. 编译型:就像a.中的结构,直接将
源程序最终全部翻译成可直接在M1上运行的机器语言,程序一次性执行;
ii. 解释型:直接运行源程序,而且是一条一条执行源程序中的语句,只不过是每执行一条就将其翻译成可直接在M1上运行的机器语言,即翻译一次执行一次,即使下一次重复执行该语句也必须得走该流程,这种层次结构就只有两层;
注:该过程同样也是三层结构的,相当于M3每执行一次高级语言就将其先翻译成汇编语言,再翻译成机器语言最后再执行,这种模式更加贴近人的思维,就好像真的在执行高级语言一样,并且是“一条一条执行高级语言”的;
c. 四级层次结构:就是讲第一层再向下分解出一个微程序机器,又因为实际机器和微程序机器都是实际机器,因此将第一层的实际机器改称为传统机器以示区别
第一层 传统机器M1
还是机器语言机器
将每一条机器指令按照不同的部分分解成更小的原子操作,即按照“指令类型+操作数1+操作数2”的形式进行分解,
分解成更小的一组微指令,再将不同类型的微指令传给相应的M0直接运行,例如一条机器指令(为了方便,用汇编
语言描述)”MOV AL,X;“,将其分解成更小的三条微指令MOV、AL、X,分别为移动指令、寻找
寄存器存储单元的寻址
指令和寻找内存存储单元的寻址指令,然后将这三个微指令交由各自相应的微程序机器运行(分别交由移动控制单元、
寄存器寻址控制单元和内存寻址控制单元来运行),这样就将实际机器M1分解成了若干更小的微程序机器M0,这更加
体现了分工合作的高效性;
第零层 微程序机器M0
微指令系统
可以直接运行各自的微指令,因此由机器指令分解而来的各条微指令可以看做更小的微程序
d. 五级层次结构:即在M1和M2(即机器机和汇编机之间)还应有一层虚拟机,即操作系统,因为它具有控制并管理计算机全部硬件资源的作用,因此上层虚拟机的很多实现都必须有操作系统支持,比如malloc需要有操作系统的内存映射来支持,但从高级语言角度来看malloc没有任何意义,操作系统不是翻译程序,而是上层程序的运行环境;
3. 从层次结构来划分软硬件:
a. 以操作系统为
分界线,上层虚拟机是软件的主要研究对象,而下层的传统机和微程序机是硬件的主要研究对象,组成原理主要的研究对象就是传统机和微程序机;
b. 软硬件界线并非一成不变,随着超大规模集成电路的发展出现了固件,即将软件永久存于
只读存储器中;
例如,现在已经实现部分操作系统的固化(固态
C盘),这样就省去了开机时将操作系统加载进内存的时间,MPU可以直接读操作系统中的内容,相当于一个专门存放操作系统的永久性内存;
4. 计算机系统结构和计算机组成的区别:
a. 计算机系统结构:
i. 即计算机系统的属性,比如指令系统、
数据类型、存储技术等;
ii. 是一种概念性的结构与功能;
iii. 只在程序员层面上可见,由于计算机系统具有多级层次结构,因此站在不同层次上的程序员所看到的计算机系统结构是不同的;
iv. 例如在C程序员看来完全相同的两种系统结构,但在汇编程序员看来可能完全不一样;
b. 计算机组成:
i. 是对于程序员来说是透明的(隐藏的)实现系统结构的硬件细节;
ii. 例如指令系统是一种结构问题,而如何用硬件实现(用什么电路、用那些器件进行组合)具体的指令系统就是计算机组成问题了;
c. 最为典型的例子:
厂商一般会生产同一系列不同型号的各种计算机,不同型号之间性能以及价格等会有较大的差别,但是这些型号的计算机上面开发的软件可以相互兼容;
其中同一系列就是指这些计算机的系统结构都是相同的,因此对于程序员来说其看到的系统属性都是相同的,因此开发的软件相互都可以兼容(从而使用户的软件投资不浪费),而不同型号就是指这些计算机组成互不相同,但是这些不同的组成都实现了相同的体系结构,不同组成使得其运行速度有较大差异,一些方面的性能可能不同,这样可以针对不同性能需求的用户提供同一种体系结构的产品;
目录
(一)计算机发展历程
(二)计算机系统层次结构
1. 计算机系统的基本组成
2. 计算机硬件的基本组成
3. 计算机硬件和软件的关系
4. 计算机的工作过程
(三)计算机性能指标
(一)计算机发展历程
1.世界上第一台电子数字计算机是1946年问世的ENIC(Electronic Numerical Integrator And Computer)。
2.根据计算机采用的电子器件可分为四类:
(1)第一代——电子管计算机
(2)第二代——晶体管计算机
(3)第三代——小、中规模集成电路(SSI,MSI)计算机
(4)第四代——大、超大规模集成电路(LSI,VLSI)计算机
(二)计算机系统层次结构
1. 计算机系统的基本组成
1.1 一个完整的计算机系统包括硬件系统和软件系统。
1.2 早期的
冯·诺依曼机特点:
计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
指令和数据以同等地位存放于存储器内,并可按地址寻访。
指令和数据均用
二进制数表示。
指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作码在存储器中的位置。
指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
注:现代计算机以存储器为中心。
2. 计算机硬件的基本组成
2.1 计算机硬件的组成及作用:
运算器(ALU):完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内。
存储器:存放数据和程序。
控制器:控制、指挥程序和数据的输入、运行以及处理运算结果。
输入设备:将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。
输出设备:将机器运行结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。
2.2 计算机软件的组成:
系统软件:标准程序库、语言处理程序、操作系统、服务性程序、数据库管理系统、计算机网络软件等。
应用软件(应用程序):科学计算程序、数据处理程序、过程控制程序、事务管理程序、各种APP等。
2.3 说明
中央处理器(CPU):运算器和控制器。
I/O设备:输入设备和输出设备。
地址寄存器(MAR):存放欲访问的存储单元地址。
数据寄存器(MDR):暂存要从存储器中读或者写的信息。
运算器:包含若干通用寄存器,如累计器(ACC)、乘商寄存器(MO)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)、程序状态寄存器(PSW)等。
控制器由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成。
3. 计算机硬件和软件的关系
硬件和软件是一个完整的计算机系统互相依存的两大部分,它们的关系主要体现在以下几个方面。
硬件和软件互相依存:硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径。计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。
硬件和软件无严格界线: 随着计算机技术的发展,在许多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现。因此,硬件与软件在一定意义上说没有绝对严格的界面。
硬件和软件协同发展:计算机软件随硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的更新,两者密切地交织发展,缺一不可。
4. 计算机的工作过程
计算机的工作过程可分为以下几个过程:
把程序和数据装入到主存储器中。
从程序的起始地址运行程序。
用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址。
用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止;每一条指令都是在取指、译码和执行的循环过程中完成的。
(三)计算机性能指标
机器字长:计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数。数的表示范围越大,计算精度越高。
数据通路带宽:数据总线一次所能并行传送信息的位数。
主存容量:主存储器所能存储信息的最大容量,用字节或字数×字长表示。MAR的位数反映了存储单元的个数。
如:MAR为16位,则有216 个存储单元(即64K内存,1K=1024),若MDR为32位,表示存储容量为64K×32位。
运算速度:
(1)吞吐量和响应时间
吞吐量:系统在单位时间内处理请求的数量,主要取决于主存的存取周期。
响应时间:用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要 的 结果的等待时间。
(2)主频和CPU时钟周期
主频(CPU时钟频率):机器内部主时钟的频率,即CPU时钟周期的倒数,常以MHz为单位,1MHz表示每秒1次。
CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,是CPU中最小的时间单位。
(3)CPI:执行一条指令所需要的时钟周期数。
(4)CUP执行时间:运行一个程序所花费的时间。
CUP执行时间 = CPU时钟周期数 / 主频 = (指令条数 × CPI)/ 主频
(5)MIPS、MFLOPS、GFLOPS和TFLOPS
MIPS:每秒执行多少百万条指令。
MIPS = 指令条数 / (执行时间 × 106)= 主频 / CPI
MFLOPS:每秒执行多少百万次浮点运算。
GFLOPS:每秒执行多少十亿次浮点运算。
TFLOPS:每秒执行多少万亿次浮点运算。