一、计算机发展历程
- 摩尔定律: 集成电路上可容纳的晶体管数目,越每隔18个月就会增加一倍,整体性能也提升一倍。
- 揭示了信息技术进步的速度。
二、计算机系统的组成
2.1. 计算机硬件系统
- 定义: 一切构成计算机的物理实体。是计算机系统的核心。
- 冯诺依曼思想:以运算器为核心。
- 采用二进制作为数字计算机数制基础。
- 优点:
- 二进制的运算规则更简单
- 0和1两个状态更容易用物理状态实现。
- 适合采用布尔代数的方法实现运算电路。
- 优点:
- 提出了存储程序和程序控制的思想。
- 程序=数据结构+算法+说明文档
- 存储程序:将解题的步骤编制成程序,然后将程序和运行程序所需要的数据以二进制的形式存放到存储器中,方便执行。
- 程序控制: 计算机中的控制器逐条取出存储器中的指令并按顺序执行,控制各功能部件进行相应的操作,完成数据的加工处理。
- 计算机五大功能部件。
- 运算器: 完成算术运算、逻辑运算。
- 控制器: 控制指令的执行,根据指令功能给出实现指令功能所需的控制信号。
- 主存储器: 存放程序及数据。
- 输入设备: 将信息输入计算机的外部设备,将各种不同形式的信息转化为计算机能够识别的二进制信息。
- 输出设备: 将信息从计算机中输出,将计算机中的二进制信息转化为各种不同形式的信息。
- 总线(地址总线、控制总线和数据总线): 连接两个或多个设备的公共信息通路。同一时刻,只能运行一个设备向总线发送信息,但可以允许多个设备同时接受来自总线的信息。
- 采用二进制作为数字计算机数制基础。
CPU:Center Processing Unit 中央处理器。
Host:主机
Bus:总线
以运算器为核心。
- 硬件:对数字操作的机器系统。
- 数字硬件:对数字进行处理、传输、和存储的硬件。
- 例如:运算器、控制器、存储器、总线、I/O接口等。
- 转换硬件:将各种形式的信息转化为数字信息,或者将数字信息转化为各种形式的信息的硬件。
- 例如:输入输出设备。
- 数字硬件:对数字进行处理、传输、和存储的硬件。
- 现代计算机:
以存储器为核心
2.2. 计算机软件系统
- 定义:一台计算机全部程序的集合统称为这台计算机的软件系统。
- 程序:用来描述解决问题的思想、方法和过程。是软件的核心组成部分。
- 计算机软件的分类:
- 应用软件:用户为解决某种应用问题而编制的一些程序。
- 例如:科学计算程序、自动控制程序、数据处理程序、情报探索程序等。
- 系统软件: 用于对计算机系统进行管理、调度、监视和服务等。其目的是方便用户、提高计算机的使用效率,扩充系统的功能。
- 操作系统: 管理计算机中各种资源(硬件、软件和数据信息)、自动调度用户作业、处理各种中断的软件。
- 常见操作系统:UNIX、Windows、Linux、Android、IOS等。
- 程序设计语言: 用于书写计算机程序的语言,其基础是一组记号和一组规则。通常分为三类。
- 机器语言: 用二进制代码表示的计算机能直接识别和执行的一种**机器指令的集合。**机器语言也称为面向机器的语言。
- 汇编语言: 一种用助记符表示的面向机器的计算机语言。
- 高级语言: 是与人类自然语言相接近且能为计算机所接受的、语气确定、规则明确、自然直观和通用易学的计算机语言。是面向用户的。
- 解释型语言: 采用边解释、边执行的方法,不生成目标程序。如Basic、java等。
- 编译型语言: 必须先将源程序翻译成目标程序才能执行,如C语言等。
- 语言翻译程序: 主要包括编译程序、汇编程序、解释程序和其他软件操作程序。
- 编译程序(编译器): 负责将高级语言翻译成汇编语言。
- 汇编程序(汇编器): 负责将汇编语言翻译成机器语言目标程序。
- 解释程序(解释器): 将源程序中的语句按顺序逐条翻译成机器指令并执行,且不生成目标程序。
- 数据库管理系统: 又称数据库管理软件。
- 数据库: 为了满足数据处理和信息管理的需要,在文件系统的基础上发展起来的。在信息处理、情报探索、办公自动化和各种管理信息系统中起着重要的作用。
- 操作系统: 管理计算机中各种资源(硬件、软件和数据信息)、自动调度用户作业、处理各种中断的软件。
- 应用软件:用户为解决某种应用问题而编制的一些程序。
2.3. 固件
- 具有软件功能、具有硬件形态的部件。
三、计算机系统的层级结构
3.1. 系统层次结构
- 逻辑门层:该层是计算机系统最底层的硬件系统,又逻辑门、触发器等逻辑电路组成。它是由逻辑设计者采用布尔代数设计的硬件内核。
- 微代码层:该层是实际的机器层,该层的用户使用微指令编写微程序,用户所编写的微程序由硬件直接执行。注意只有采用微程序设计的计算机系统才有这一层。
- 指令集架构层:该层通过机器语言编写程序实现对计算机硬件的控制。
- 操作系统层(面向机器的):该层用于对计算机系统的硬件和软件资源进行统一管理和调度,提高计算机系统的使用效率,方便用户使用计算机。
- 汇编语言层(面向应用):该层为用户提供基于助记符表示的汇编语言编程。
- 高级语言层(面向应用):用户使用与机器无关的高级语言编程。
3.2. 各层之间的关系
- 高层是底层功能的拓展,底层是高层的基础。
- 计算机结构的层次划分不是绝对的。机器指令系统级与操作系统级的界面又称硬、软件交互界面,随着软件硬化和硬件软化而动态变化。
3.3. 软件和硬件逻辑功能的等价性
- 定义:部分功能既可以由硬件实现,也可以用软件实现,从用户的角度来看,它们在功能上是等价的。
- 软件和硬件逻辑功能的等价性是计算机系统设计的重要依据。
- 软件和硬件的功能分配及其界面的确定是计算机系统结构研究的重要内容。
- 随着大规模集成电路技术的发展,软件硬化或固化是必然趋势。
四、计算机性能指标和评价
4.1. 基本性能指标
- 字长: CPU一次处理的数据位数,用二进制的长度来衡量。
- 字长一般与计算器内部寄存器、运算器、数据总线的位宽相等。
- 字长一般以字节(Byte)为基本单位,不同计算机的字长可以不同,有的计算机还支持变字长,但当时字节的整数倍。
- 字长对计算机性能的影响:
- 影响计算精确度。字长越长,计算精确度就越高。
- 影响数据的表示范围和精度。字长越长,定点数的表示范围就越大,浮点数的表示范围越大,精度也越高。
- 主存容量: 主存能存储的最大信息量。
- 一般用M×N表示:M表示存储单元数,也称字容量;N是每个存储单元存储的二进制位数,也称位容量。
- KB = 210=103 MB = 220=106 GM = 230= 109 TB = 240 PB = 250
- ms = 10-3s us = 10-6s ns = 10-9 s
- 增加主存容量能减少程序运行期间访问辅存的次数,有利于提高程序的执行速度,也有利于计算机性能的提高。
- 存储带宽: 指单位时间内与主存交换的二进制信息量,单位Byte/s。
4.2. 与时间有关的性能指标
- 一段程序的执行时间(也称响应时间)是由硬盘访问时间、内存访问时间、I/O操作时间、操作系统开销时间和CPU执行时间等几部分构成的。
- CPU执行时间(CPU时间) = 用户CPU时间 + 系统CPU时间
- CPU时间:CPU真正花费在该程序上的时间。
- 用户CPU时间:执行用户程序本身所花费的CPU时间。
- 系统CPU时间:为执行程序而花费在操作系统上面的时间。
- 时钟周期(节拍电位/节拍周期/T周期): 时钟周期是计算机中最基本的、最小的时间单位。
-
广义上的最小,一个时钟周期其实包含多个节拍脉冲。
-
在一个时钟周期内,CPU仅完成一个最基本的动作。
-
时钟周期是时钟频率(主频)的倒数。
-
随着CPU主频的提高,对应的时钟周期将变短。
-
主频(CPU频率): 主频是指CPU内部的时钟频率,也就是CPU每秒钟可以执行的时钟周期。 主频越高,CPU的处理速度通常越快。主频的单位是赫兹(Hz),例如,一个2.4GHz的CPU意味着它每秒钟可以执行2.4亿次操作。
-
外频(前端总线频率): 外频是指CPU与主板北桥芯片(或内存控制器)之间的数据传输频率。外频决定了CPU与内存、显卡等其他组件之间的数据交换速度。外频的单位也是赫兹。
-
倍频(倍频系数): 倍频是指CPU的主频与外频之间的比例关系。CPU的主频是通过将外频乘以倍频系数来得到的。例如,如果一个CPU的外频是100MHz,倍频系数是24,那么CPU的主频就是2.4GHz(100MHz * 24 = 2400MHz = 2.4GHz)。
-
主频 = 外频 × 倍频
- CPI(Clock Cycles Per Instuction): 执行每条指令所需要的平均时钟周期数。
- 也指一类指令或一段程序中所有指令执行所需时钟周期数的平均值。
- IC(Instrucion Count):程序中包含的总指令条数。
- m:程序执行所需时钟周期数
- CPI = m / IC
- CPI = 程序中各类指令的CPI × 程序中该类指令的比例
- CPU时间: 程序中所有指令的时钟周期数 × 时钟周期
- Tcpu = m * T = m / f
- Tcpu = CPI * IC * T = (CPI * IC ) / f
- CPU时间和CPI,指令条数和时钟频率相关。
- IPC(Instructions Per Cycle): 每个时钟周期CPU能执行的指令条数。
- IPC = 1 / CPI
- MIPS(Million Instructions Per Second): 一个单位,每秒百万条指令
- MIPS = (IC * 106)/Tcpu
- MIPS = f / CPI = f * IPC f的单位是MHz,指的是每秒钟的时钟周期数
4.3. 计算机性能测试
- 性能测试原理:
- 计算机中配置了大量传感器和状态寄存器。
- 通过读取相应寄存器的值得到系统运行的状况。
- 通过实际运行测试关键指标获取性能数据。
- 性能测试工具分类
- CPU测试工具
- 显卡测试工具
- 磁盘测试工具
- 内存测试工具