第一章-计算机系统概论
计算机系统概论
计算机系统定义
Computer System are collection of hardware and software that are designed to receive , process , manages the instructions given by user and returns output in the form of human readable.
计算机由软件和硬件组成
- 硬件:计算机的实体,如:主机,外设....
- 软件:由事先编制的具有各类特殊功能的信息(程序)组成。
- 软件性能的发挥必须依托于硬件的支持,硬件的功能的完全发挥离不开软件的发展。
软件又可以进行如下区分:
- 系统软件:用来管理整个计算机系统,监视服务,使系统资源得到合理调度。如:语言处理程序(将汇编语言翻译为机器语言的汇编程序或将高级语言翻译成机器语言的编译程序),操作系统,服务性程序(诊断程序,调试程序,连接程序等等),数据库管理系统,网络软件...
- 应用软件:用户根据任务需要编制成的各种程序。
计算机系统的层次结构
结构如下图所示
- 对于计算机系统的层次结构而言,每一层都进行了抽象,只关心它们这一层的问题
- 微程序机器级。使用微指令集描述计算机指令集中的每一条指令。由微指令集编写的微程序一般由硬件解释实现。在某些系统中,没有微程序机器级,直接使用硬件来进行实现计算机指令集。
- 传统机器级。计算机指令集为该层的语言(机器语言)。
- 操作系统级。操作系统一方面作为传统机器的延申,一方面提供传统机器中没有的一些基本操作,这些操作来自于计算机的所有软件和硬件的管理。
- 汇编语言级。汇编语言可以视为机器语言的注记符的形式。
- 高级语言级。使用语言为高级程序设计语言。
- 硬件:M0,M1,软件:其他层次。因而,软硬件的划分在于操作系统和传统机器之间,但是这并非是一成不变的,其趋势为向上发展。
解释程序就是将源程序的一条语句翻译成对应于机器语言的一条语句,并立即执行这条语句,而后解释执行下一条语句。其特点是,翻译一次执行一次,即使下一次重复执行该语句时,也需要重新翻译。
程序在微程序机器级,传统机器级,操作系统级一般解释实现,汇编语言级,高级语言级采用翻译实现。
虚拟机器并不是一台真正的机器,它只是人们感到存在的一台具有翻译功能的机器。
由于层次不同,不同的计算机编程人员所能看到的计算机的属性也是不同的。
计算机组成和体系结构的区分
这里的区分是不太清晰的,下面所列出的计算机体系结构的概念只是经典概念,还有现代概念,二者是不同的,在第二章将会详细讲述这一部分。
计算机体系结构
计算机体系结构是指那些能够被程序员(这里一般指机器语言编程的程序员)所见到的计算机系统的属性,即概念性的结构和功能特性。
例如:指令集,数据结构,存储器寻址技术,I/O机理...
计算机组成
计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对于程序员来说是看不到的技术细节。
例如:指令系统体现了机器的属性,指令系统属于计算机体系结构的问题,但是如何实现指令系统中的指令,则是计算机组成的问题。一台机器是否具备乘法指令的功能,属于结构问题,但是,实现乘法使用什么方式,则是一个组成问题。
计算机的基本组成
冯·诺伊曼计算机
特点
- (总体的架构)机器以运算器为中心,输入输出设备与存储器之间的数据传送都需要经过运算器,一切部件与部件之间的联系都有控制器集中控制。
- 采用存储程序原理,指令和数据以同等地位存放于存储器中,指令和数据一样可以送到运算器之中去计算,指令组成的程序自身是可以修改的。
- (二进制)指令和数据均用二进制表示。采用二进制计算,主要面向数值计算与数据处理。
- (指令的组成) 指令由操作码和地址码组成,操作码用来表示操作的性质,地址吗用来表示操作数在存储器中的位置。
- (存储器的特征)存储器是按地址访问,线性编址的空间。
- (控制流)控制流由指令流产生。指令在存储器内按顺序存放。虽然可以进行跳转,但编程思想必须是顺序进行。
框图
其中,虚线作为控制线和反馈流,实线作为数据/指令流。
各部件功能
- 运算器:完成算数运算和逻辑运算,并将运算的中间结果暂存在运算器内。
- 存储器:存放数据。
- 控制器:控制,指挥程序和数据的输入,运行以及处理运算结果。
- 输入设备:将人们熟悉的信息形式转换为机器能识别的信息形式。
- 输出设备:将机器能识别的信息形式转换为人们熟悉的信息形式。
需要说明:
- 运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大规模集成电路上,这两个部件集成于同一芯片上,称为中央处理器(CPU)。
- 输入设备和输出设备简称为I/O设备。
现代计算机体系结构
现代计算机体系结构与冯·诺伊曼计算机体系结构有巨大的相似性。
现代计算机体系结构以存储器为中心。这是因为,随着现代芯片工艺的发展,运算器计算速度已经远远超过了存储器的读写速度。
其框图如下:
计算机组件说明
更加详细的现代计算机的组成框图:
主存储器
- 主存储体:主存储体由存储单元组成,存储单元由若干个存储元件组成。
- 存储单元,可以存储一串二进制代码。
- 存储字,存储单元存储的二进制代码为一个存储字。
- 存储字长,存储单元存储的二进制代码的位数称为存储字长。
- 存储元件,可以寄存一位二进制代码0或1。
- 每个存储单元赋予一个地址号。
- MAR(存储器地址寄存器):用于存放与访问的存储单元的地址,其位数反映存储单元的个数。
- MDR(存储器数据寄存器):用于存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数反映存储字长。
计算机按照地址进行访问存储器的好处。
- 对于程序的运行而言,当把事先编制好的程序按准许存入主存各单元,当运行程序时,只需要给出程序的首地址,而后地址+1便可以执行下一条指令。
- 指令和数据都由存储单元地址号反映,取一条指令和取一个数据的操作课完全视为相同的,那么使用一套控制线路就可以完成两种截然不同的操作。
运算器
- ALU:算术逻辑单元
- ACC(accumlator):累加器
- MQ(Multiplier-Quotient Register):乘商寄存器
- X:操作数寄存器
| ACC | MQ | X | |
|---|---|---|---|
| 加法 | 被加数和 | 加数 | |
| 减法 | 被减数差 | 减数 | |
| 乘法 | 乘积高位 | 乘数&&乘积低位 | 乘数 |
| 除法 | 被除数&&余数 | 商 | 除数 |
对于乘法以及除法的操作说明
乘法
假定ACC中存在数[ACC]作为被乘数,地址M处的[M]作为乘数
- [M] -> MQ
- [ACC] -> X
- 0 -> ACC
- [X] * [MQ] -> ACC + MQ
除法
假定ACC中存在数[ACC]作为被除数,地址M处的[M]作为除数
- [M] -> X
- [ACC] / [X] -> MQ
- 余数R在ACC中
控制器
- PC(Program Counter):程序计数器,存放当前欲执行指令的地址,也就是当前执行指令的下一条的待执行指令的地址。
- IR:存放当前欲执行的指令。
- CU:分析当前指令所需完成的操作,并发出各种微操作命令序列,以控制所有被控制对象。
I/O
- 接受CU发出的各种控制命令,并完成相应的操作。
计算机执行指令流程
取数指令
存数指令
计算机硬件的主要技术指标
机器字长
定义
- 机器字长:CPU一次可以处理数据的位数。
相关因素
- 机器字长通常与CPU的ACC,MQ,X等寄存器的位数有关。
决定产物
- 决定CPU一次运算的数据的表示范围以及进度。机器字长越长,表示范围越大,精度也越高。
- 决定机器的运算速度。若CPU字长较短,又要运算位数较多的数据,可能需要经过多次的运算才可以完成,势必影响机器的运算速度。
存储容量
显然,这里没什么好讲的,关于MAR,MDR不再进行赘述。
运算速度的评价指标
主频
主频指:CPU的时钟频率,在很大程度上反映了CPU速度的快慢。
一般而言,一条指令的执行需要多个时钟周期,在最快的情况下,一条指令的执行仅仅需要一个时钟周期。
一旦,每条指令需要的时钟周期数目确定,那么其时钟频率将会影响CPU执行指令速度的快慢。
但是,这不代表主频越高,运算速度越快,其只是影响运算速度的一部分原因。
吉普森法
吉普森法综合考虑每条指令的执行时间以及它们在全部操作中所占的百分比。
TM = ∑(i=1 : n) fi ti ,其中TM是机器运行速度,fi是第i种指令占全部操作的百分比数,ti是第i种指令的执行时间。
MIPS
Million Instruction Per Second(MIPS):每秒执行百万指令,是一个单位。
评价机器的运算速度:采用单位时间内执行指令的平均条数。
例如:某机每秒能执行200万条指令,则记作2 MIPS。
CPI
Cycle Per Instruction:执行一条指令所需要的周期数(即机器主屏的倒数)。
FLOPS
Floating Point Operation Per Second:浮点运算次数每秒。

浙公网安备 33010602011771号