目录
计算机发展历程
计算机系统层次结构
计算机的性能指标
计算机发展历程
- 电子计算机的发展已经历了4代,这4代计算机的主要元件分别是电子管、晶体管、中小规模集成电路、大规模集成电路。
- 微型计算机的发展以微处理器技术为标志。
- 可以在计算机中直接执行的语言和用助记符编写的语言分别是机器语言、汇编语言。
- 只有当程序执行时才将源程序翻译成机器语言,并且一次只能翻译一行语句,边翻译边执行的是解释程序,把汇编语言源程序转变为机器语言程序的过程是汇编。
- 到目前为止,计算机中所有的信息仍以二进制方式表示的理由是二进制只有1和0两个数字,刚好和逻辑电路中的高、低电平对应,实现起来比较方便且简单可靠,因此由物理器件的性能决定。
计算机系统层次结构
- 计算机主机的组成部分:运算器、存储器、控制器
- 完整的计算机系统包括:配套的硬件设备和软件系统
- 冯诺依曼机的基本工作方式是:控制流驱动方式
- 冯诺依曼机工作方式的基本特点是:按地址访问并顺序执行指令
- 冯诺依曼机中指令和数据均以二进制形式存放在存储器中,CPU 区分它们的依据是指令周期的不同阶段
- 软件和硬件具有逻辑上的等效性,硬件实现具有更高的执行速度,软件实现具有更好的灵活性。执行频繁、硬件实现代价不是很高的功能通常由硬件实现
- MAR 用来存放欲访问的存储单元地址;MDR 存放从存储单元取来的数据;IR 存放当前欲执行的指令;PC 存放下一条指令的地址
- 地址译码器是主存的构成部分,不属于 CPU
- 地址寄存器(MAR)存放访存地址,因此位数与地址码长度相同;数据寄存器 (MDR)用于暂存要从存储器中读或写的信息,因此位数与存储字长相同
- 寄存器在CPU内部,存取速度最快;Cache 采用高速的SRAM制作,存取速度第二;内存常用DRAM制作,存取速度最慢
- 8位计算机表明计算机字长为8位,即一次可以处理8位的数据
- 计算机只能从主存中取指令与操作数,不能直接与外存交换数据
- 编译程序是先完整编译后运行的程序,如 C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。由于解释程序要边翻译成机器语言边执行,因此一般速度较编译程序慢
- 翻译程序是指把高级语言源程序转换机器语言程序(目标代码)的软件。翻译程序有两种:一种是编译程序,它将高级语言源程一次全部翻译成目标程序,每次执行程序时,只需执行目标程序,因此只要源程序不变,就无须重新编译;另一种是解释程序,它将源程序的一条语句翻译成对应的机器目标代码,并立执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句执行一句,并且不会生成目标程序
- 汇编程序也是一种语言翻圣程序,它把汇编语言源程序翻译为机器语言程序。汇编语言是一种面向机器的低级语言,是器语言的符号表示,与机器语言一一对应
- CPU 由运算器和控制器两个部件组成,而运算器和控制器中都含有寄存器。存储器是一个独立的部件
- 数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统应用系统、数据库管理员构成,其中数据库管理系统是系统程序
- 存储程序是指将指令以代码的形式事先输入计算机主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束
- 计算机按照此原理应该具有 5 大功能:数据传送功能、数据存储功能、数据处理功能、操作控制功能、操作判断功能
一、冯诺依曼机的六大特点
- 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成
- 指令和数据以同等地位存储在存储器中,并可按地址寻访
- 指令和数据均用二进制代码表示
- 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址
- 指令在存储器内按顺序存放
- 早期的冯诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据(现代的计算机以存储器为中心)
典型的冯诺依曼计算机结构
二、计算机功能部件
- 输入设备:将程序和数据以机器所能识别和接受的信息形式输入计算机。如键盘、鼠标、摄像机等
- 输出设备:将计算机处理的结构以人们所能接受的形式或其他系统所要求的信息形式输出。如显示器、打印机
- 存储器:是计算机的存储部件,用来存放程序和数据,分为主存储器和辅助存储。1)CPU能够直接访问的是主存储器;2)辅助存储器用于帮助主存储器记忆更多的信息,其信息必须调入主存储器后,才能被CPU访问。3)主存储器的工作方式是按存储单元的地址进行存取,这种存取方式被称为按地址存取方式。4)地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。5)数据寄存器(MDR)用于暂存要从存储器中读或写的信息,时序控制逻辑用于产生存储器操作所需的各种时序信号。6)MAR用于寻址,其位数对应着存储单元的个数。如MAR为10位,则有个存储单元,记为1K。MAR的长度与PC的长度相等。7)MDR的位数和存储字长相等,一般为字节的二次幂的整数倍。8)MAR和MDR存在于CPU当中。
- 运算器:是计算机的执行部件,用于进行算术运算和逻辑运算。运算器的核心是算数逻辑单元(ALU)。运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)。
- 控制器:控制器是计算机的指挥中心,由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成。1)PC用来存放当前欲执行指令的地址,可以自动加1以形成下一条指令的地址,它与主存的MAR之间有一条直接通路。2)IR用来存放当前的指令,其内容来自主存的MDR。3)一般将运算器和控制器集成到同一个芯片上的,被称为中央处理器(CPU)。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称为外部设备,简称外设。
三、计算机软件的分类
- 系统软件:是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等
- 应用软件:是指用户为解决某个应用领域中的各类问题而编制的程序。如各种科学计算类程序、工程设计类程序、数据统计与处理程序
四、三个级别的语言
- 机器语言:机器语言是计算机唯一可以直接识别和执行的语言,需要编程人员记忆每条指令的二进制编码
- 汇编语言:汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行
- 高级语言:高级语言是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序
五、计算机的工作过程
- 把程序和数据装入主存储器
- 将源程序转换成可执行文件
- 从可执行文件的首地址开始逐条执行指令
六、计算机的多层次结构
计算机系统的多层次结构
- 在高级语言层之上,还可以有应用程序层,它由解决实际问题和应用问题的处理程序组成,如文字处理软件、数据库软件、多媒体处理软件和办公自动化软件等
- 通常把没有配备软件的纯硬件系统称为“裸机”。第3~第5层称为虚拟机,简单来说就是软件实现的机器。虚拟机只对该层的观察者存在,这里的分层和计算机网络的分层类似,对于某层的观察者来说,只能通过该层次的语言来了解和使用计算机,而不必关心下层是如何工作的
- 层次之间的关系紧密,下层是上层的基础,上层是下层的拓展
计算机的性能指标
- 能缩短程序执行时间的措施有:提高CPU的时钟频率、优化数据通路结构、对程序进行编译优化
- MIPS是每秒执行多少百万条指令,适用于衡量标量机的性能;CPI是平均条指令的时钟周期数;IPC是 CPI 的倒数,即每个时钟周期执行的指令数;MFLOPS 是每秒执行多少百万条浮点数运算,用来描述浮点数运算速度,适用于衡量向量机的性能
- 存储体由许多存储单元组成,每个存储单元又包含若干存储元件,每个存储元件能寄存一位二进制代码“0”或“1”。可见,一个存储单元可存储一串二进制代码,称这串二进制代码为个存储字,称这串二进制代码的位数为存储字长
- 存储字长等于 MDR 的位数,而数据字长是数据总线一次能并行传送信息的位数,它可以不等于 MDR的位数
- 在CPU的寄存器中,指令寄存器对用户完全透明。汇编程序员可以通过指定待执行指令的地址来设置 PC 的值;状态寄存器、通用寄存器只有为汇编程序员可见;而 IR、MAR、MDR 是 CPU 的内部工作寄存器,对程序员均不可见
- 主频、主存容量和指令系统(间接影响 CPI)并不是综合性能的体现。吞吐率指系统在单位时间内处理请求的数量,是评价计算机系统性能的综合参数
- 采用并行技术是实现高性能计算的重要途经
- 兼容指的是计算机软件和硬件的通用性
- ALU和通用寄存器的位数和机器字长一定相同
一、机器字长
机器字长是指计算机进行一次整数运算(即定点整数运算) 所能处理的二进制数据的位数,通常与 CPU 的寄存器位数、加法器有关。因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节 (8位)的整数倍。
二、数据通路带宽
数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU 内部的数据总线宽度(内部寄存器的大小)有可能不同。各个子系统通过数据总线连接形成的数据传送路径称为数据通路。
三、主存容量
主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数x字长(如512Kx16位)来表示存储容量。其中,MAR的位数反映存储单元的个数,MAR 的位数反映可寻址范围的最大值(而不一定是实际存储器的存储容量)。例如,MAR为16位,表示2^16= 65536,即此存储体内有 65536 个存储单元(可称为64K内存,1K=1024),若MDR为32位,表示存储容量为 64Kx32 位。
四、运算速度
- 吞吐量:指系统在单位时间内处理请求的数量
- 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间
- CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,执行指令的每个动作至少需要1个时钟周期
- 主频:机器内部主时钟的频率,是衡量机器速度的重要参数。对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快
- CPI:执行一条指令所需的时钟周期数。此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时 CPI是一个平均值
- CPU执行时间:指运行一个程序所花费的时间。CPU执行时间=CPU时钟周期数/主频 =(指令条数*CPI)/主频
- MIPS(MillionInstructions Per Second):即每秒执行多少百万条指令。MIPS=指令条数/(执行时间x10)=主频/(CPI*10^6)