大纲
大纲:
(一)、计算机发展历程
(二)、计算机系统层次结构
计算机硬件的基本组成、计算机软件的分类、计算机的工作过程
(三)、计算机性能指标
吞吐量、响应时间、CPU时钟周期、主频、CPI、CPU执行时间、MIPS、MFLOPS、GFLOPS、TFLOPS
计算机按照指令和数据流可以划分为:
计算机发展趋势“两极”分化:
完整的计算机系统是由硬件系统和软件系统共同构成的。硬件是有形的物理设备,是计算机系统中实际物理装置的总称。软件是指在硬件上运行的程序和相关数据的文档。
计算机系统心梗的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥又离不开硬件的支持。
对某一个功能来说,既可以用硬件实现,也可以用软件实现,则称为软硬件在逻辑上是等效的。
通常来说,一个功能若是较为频繁且使用硬件实现的成本较为理想,则使用硬件解决可以提高效率,而用软件的实现可以提高灵活性,但是效率往往不如硬件实现高。
冯·诺依曼在研究EDVAC机提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称为冯·诺依曼机,特点如下:
1、 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备五大部件组成。 |
---|
2、 指令和数据以通的呢过地位存储在存储器中,并可按地址寻访。 |
3、 指令和数据均用二进制代码表示。 |
4、 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。 |
5、 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。 |
6、 早起的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。 |
注:“存储程序”的概念是指将指令以代码的形式实现输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束。
在微处理器问世之前,运算器和控制器分离,而且存储器的容量很小,因此设计成以运算器为中心的结构,其他部件都通过运算器完成信息的传递。
现代计算机已发展为以存储器为中心,使I/O操作尽可能绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率。
计算机功能部件
主存储器由许多存储原件组成,每个存储单元包含若干存储元件,每个存储元件存储以为二进制代码“0”或“1”。因此存储单元可存储遗传二进制代码,称这串代码为存储字,称这串代码的位数为存储字长,存储字长可以是1B(8bit)或是字节的偶数倍。
主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式(相联存储器是按内容访问的)。
主存储器的基本组成如图所示
存储体存放二进制信息,地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器(MDR)用于暂存从存储器中读或写的信息,时序控制逻辑用于产生存储器操作所需要的各种时序信号。
**注:**MAR与MDR虽然是存储器的一部分,但是在现代CPU中确实存在于CPU中的;另外,高速存储器(Cache)也是存在于CPU中。
运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否一处,有无产生进位或借位、结果是否为负等。
PC用来存放当前欲执行指令的地址,可以自动加1以形成下一条指令的地址,它与主存的MAR之间有一条直接通路。
IR用来存放当前的指令,其内容来自主存的MDR,指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码AD(IR)送往MAR,用以取操作数。
一般运算器和控制器集成到同一个芯片上,称为中央处理器(CPU) 。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称为外部设备,简称外设。
CPU包含ALU、通用寄存器组GPRs、标志寄存器、控制器、指令寄存器IR、程序计数器PC、存储器地址寄存器MAR和存储器数据寄存器MDR。
下图为冯·诺依曼结构的模型机。
从控制器送出的虚线是控制信号,可以控制如何修改PC以得到下一条指令的地址,可以控制ALU执行什么运算,可以控制主存时进行读操作还是写操作(读/写控制信号)。
CPU和主存之间通过一组总线相连,总线中有地址、控制和数据三组信号线。MAR中的地址信息会直接送到地址线上,用以指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从CPU中写入主存还是从主存读出到CPU,根据市读操作还是写操作来控制将MDR中的数据直接送到数据线上还是将数据线上的数据接收到MDR中。
1.系统软件和应用软件
软件按其功能分类,可以分为系统软件和应用软件。
系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。
应用软件是指用户为解决某个应用领域中的各类问题编制的程序,如科学计算类程序、工程设计类程序、数据与统计处理程序。
**注:**数据库管理系统(DBMS)和数据库系统(DBS)是有区别的。DBMS是位于用户和操作系统之间的一层数据管理软件,是系统软件。而DBS是指计算机系统中引入数据库后的系统,一般由、数据库管理系统、数据库管理员(DBA)和应用系统构成。
2.三个语言的级别
1. 机器语言
又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。
2. 汇编语言
汇编语言用英文单词或其缩写代替二进制的指令代码,更容易记忆理解。使用汇编语言编辑的程序,必须经过一个成为汇编程序的系统软件的翻译,经期转换为计算机的机器语言后,才能在计算机的硬件系统上执行。
3. 高级语言
高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解决过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过过会变操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
计算机的工作过程分为以下三步:
1.从源程序到可执行文件
在计算机编写的c语言程序,都必须被转化为一系列的低级指令机器,这些指令按照一种称为可执行目标文件的格式打好包,并以二进制磁盘文件的形式存放起来。
以UNIX刺痛中的GCC编译程序为例,读取源程序文件hello.c,并把它翻译成一个可执行文件目标hello,整个翻译过程可以分为4个阶段完成。
(1)预处理阶段
预处理器(CPP)对源程序中以字符#开头的命令进行处理,例如将#include命令后面的.h文件插入程序文件。输出结果是一个以.i为扩展名的源文件hello.i。
(2)编译阶段
编译器(CLL)对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s。汇编语言源程序中的每条预计都以一种文本格式描述了一条机器语言指令。
(3)汇编阶段
汇编器(AS)将hello.s翻译成机器语言指令,把这些指令打包成一个称为可以重定位的目标文件hello.o,它是一种二进制文件,因此在文本编辑器中打开会乱码。
(4)链接阶段
链接器(Id)将多个可重定位目标文件和标准函数合并为一个可执行目标文件,或简称可执行文件。
2.指令执行过程的描述
程序中第一条指令的地址置于PC中,根据PC去除第一条指令,经过译码,执行步骤等,控制计算机各功能部件协同运行,完成者条指令的功能,并计算下一条指令的地址。用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止。
以取数指令为例(即将指令地址吗知识的存储单元中的操作数取出后送至运算器的ACC中)为例进行说明,信息流程如下:
(1)取指令:PC->MAR->M->MDR->IR
PC(程序计数器)中的地址传递到AM(地址寄存器)中,由AM选中内存中响应的地址。然后M(内存地址中的数据)回传到DR(数据寄存器中),最后从DR传到IR(指令寄存器)中完成取指。
(2)分析指令:OP(IR)->CU
指令译码并送出控制信号。控制器根据IR指令的操作码,生成相应的控制信号,送到不同的执行部件。在本例中,IR是取数指令,因此读控制信号被送到总线的控制线上。
(3)执行指令:Ad(IR)->MAR->M->MDR->ACC
取数操作。将IR中指令的地址码送MAR,MAR中的内容送地址线,同事控制器将读信号送读/写信号线,从主存制定存储单元读出操作数,并通过数据线送至MDR,在传送到ACC。
此外,每取完一条指令,还需为下一条指令做准备,形成下一条指令的地址,即(PC)+1->PC。
注: (PC)指程序计算器中存放的内容。PC->MAR应理解为(PC)->MAR,即程序计数器中的值经过数据通路送到MAR,也即表示数据通路时括号可以省略(因为只是表示数据流经的途径,而不是强调数据本身的流动)。但运算时括号不能省略,即(PC)+1->PC不能写为PC+1->PC。
计算机系统的多级层次结构的作用,根据从各种急角度看到的机器之间的有机联系,来分清彼此之间的界面,明确各自的功能,以便构成合理、高效的计算机系统。
第一级是微程序机器层
这是一个实在的硬件层,它由机器硬件直接执行微指令。
第二级是传统机器语言层
它也是一个实在的硬件层,由微程序解释机器指令系统。
第三级是操作系统层
它由操作系统好处呢个系实现,操作系统程序是有机器指令和广义指令组成的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,多以这一层也称为混合层。
第四级是汇编语言层
它为用户提供一种符号化的语言,借此可编写汇编语言的源程序,这一层由汇编程序支持和执行。
第五级是高级语言层
它是面向用户的,是为方便用户编写应用程序设置的。该层由各种高级语言编译程序支持和执行。
在高级语言层之上还可以有应用层,它由解决实际问题和应用问题的产后护理程序组成,如文字处理软件、数据库软件、多媒体处理软件和办公自动化软件等。
(2)主频和CPU时钟周期
注: CPU时钟周期=1/主频,主频通常以Hz(赫兹)为单位,1Hz表示每秒一次
(3)CPI(Clock cycle Per Instruction)
即执行一条指令所需的时钟周期数。
(4)CPU执行时间,指运行一个程序花费的时间。
CPU执行时间=CPU时钟周期数/主频=(指令条数xCPI)/主频
上式表明,CPU的性能(CPU执行时间)取决于三个要素:
(5)MIPS、GFLOPS、MFLOPS、TFLOPS
MIPS(Million Instruction Per Second)
即每秒执行多少百万条指令。
MIPS=指令条数/(执行时间x10^6)=主频/CPI。
MFLOPS(Mega Floating-point Operations Per Second)
即每秒执行多少百万次浮点运算。
MFLOPS=浮点操作次数/(执行时间x10^6)。
GFLOPS(Giga Floating-point Operations Per Second)
即每秒执行多少十亿次浮点运算。
GFLOPS=浮点操作次数/(执行时间x10^9)。
TFLOPS(Tera Floating-point Operations Per Second)
即每秒执行多少万亿次浮点运算。
TFLOPS=浮点操作次数/(执行时间x10^12)。
注: 在描述存储容量,文件大小等时,K、M、G、T通常用2的幂次表示,如1kb=2^10b;在描述速率、频率等时,K、M、G、T通常用10的幂次表示,如1kb/s=10 ^3b/s。通常前者用大写的K,后者用小写的k,其他前缀均为代谢,表示的含义取决于所用的场景。