1、冯诺依曼结构计算机工作原理及层次结构分析
1.1 冯诺依曼计算机的工作原理
- 存储系统:将程序存放在计算机的存储器中(存储系统的快速构建与访问)
- 程序控制:按指令地址访问存储器并取出指令,经译码器依次产生指令执行所需的控制信号,实现对计算的控制,完成指令的功能 (指令系统、控制器设计)
1.2 冯诺依曼计算机的组成
1.2.1 硬件系统
- 主机:CPU(运算器+控制器)、内存
- 外设:输入设备、输出设备、外存储器
- 总线:地址线、数据线、控制线
运算器
- 算术运算:加、减、乘、除
- 逻辑运算:与、或、非
- 基本结构:ALU(Arithmetic Logical Unit)、寄存器、连接通路
功能与结构的关系:指令、数据类型、性能要求 …
控制器
- 基本功能:产生指令执行过程所需要的所有控制信号,控制相关功能部件执行相应的功能
- 控制信号的方式:电平信号、脉冲信号
- 产生控制信号的依据:指令、状态、时序
- 控制信号的产生方式:微程序、硬布线
存储器
- 功能:存储原程序、原数据、运算中间结果
- 工作模式: 读、写
- 工作原理:按地址访问,读/写数据
容量 | 地址线数量 |
---|---|
1K | 10 |
1M | 20 |
1G | 30 |
输入/输出设备
- 输入设备:向计算机输入数据(键盘、鼠标、网卡、扫描仪等)
- 输出设备:输出处理结果(显示器、声卡、网卡、打印机等)
1.2.2 软件系统
- 可运行的思想和内容的数字化
- 思想:算法、规律、方法–程序表达
- 内容:图形、图像、数据、声音、文字等被处理的对象
- 软件的表现形式:程序与数据(以二进制表示的信息)
- 软件的核心:算法
类型大致分为三种:
- 系统软件
- 如操作系统、网络系统和编译系统
- 支持软件
- 开发工具、界面工具等
- 应用软件
- 字处理软件、游戏软件
1.2.3 硬件与软件的关系
-
相互依存
-
逻辑等效性
某些功能可以由硬件实现、也可由软件实现
-
协调发展
1.3 计算机的层次结构
基本认识:
- 不同用户处在不同层次
- 不同层次具有不同属性
- 不同层次使用不同工具
- 不同层次的代码效率不同
概念:
-
透明性概念
-
本来存在的事务或属性,从某个角度去看,却好像不存在
-
如硬件的特性对C语言程序设计者而言就具有透明性
-
-
系统观
-
当硬件结构发生变化时要想到可能对软件产生的影响
-
不同类型的软件对硬件有不同的要求
-
编程的CPU硬件相关性,编程应查阅对应CPU的编程手册
-
-
软硬件的分界线
- 在指令集架构层
- 软、硬件的接口,是指令操作硬件的接口
- 指令格式及指令的设计与硬件关联
2、计算机系统性能评价
2.1 非时间指标
机器字长:指机器一次能处理的二进制位数
-
由加法器、寄存器的位数决定
-
一般与内部寄存器的位数相等(字长)
-
字长越长,表示数据的范围就越大,精确度越高
-
目前常见的有32位和64位
总线宽度:数据总线一次能并行传送的最大信息位数
- 一般指运算器与存储器之间的数据总线位数
- 有些计算机内部与外部数据总线宽度不一致
- 8086、80286、80386内外数据总线等宽
- 8088、80386SX外部总线宽度8位内部总线宽度16位
- Pentinum外总线64位、内总线32位(两条32位流水线)
主存容量与存储带宽
- 主存容量
- 是指一台计算机主存所包含的存储单元总数
- 存储带宽
- 指单位时间内与主存交换的二进制信息量,常用单位是B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)
2.2 时间指标
1)主频f/时钟周期T,外频、倍率
-
主频f(周期/秒)
指CPU内核工作的时钟频率,即CPU内数字脉冲信号振荡的速率,与CPU实际的运算能力之间不是唯一的、直接关系
-
时钟周期T
也称节拍周期,是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作
-
f与T的关系
互为倒数,f越高,T就越小(f = 100MHz时T = 10ns,f = 1GHz时T = 1ns)
-
外频
指CPU(内存)与主板之间同步的时钟频率
-
倍频
CPU主频与外频之间的倍率
主频 = 外频 × 倍频
如:Pentium 4 2.4G CPU主频
24000M = 133M(外频) × 18(倍频)
2)CPI (Clock cycles Per Instruction)
-
执行一条指令(平均)需要的时钟周期数(即T周期的个数)
-
单条指令CPI、一段程序所有指令的CPI、指令系统CPI等
CPI = 程序中所有指令的时钟周期之和 / 程序中指令总数
= ∑ \sum_{} ∑(程序中各类指令的CPI × 程序中该类指令的比例)
-
IPC (Instruction per Clock)
每个时钟周期内执行的指令条数(并行)
3)MIPS (Million Instruction Per Second)
-
每秒钟CPU能执行的指令条数(单位:百万条/秒)
MIPS = 指令条数 / (执行时间 × 10^6)
= 指令条数 /(所有指令CPU时钟周期之和 / f × 10^6)
= f /( CPI × 10^6)
(全性能公式)
4)CPU时间
-
执行一段程序所需的时间
(CPU时间 + I/O时间 + 存储访问时间 + 各类排队时延等)
CPU时间 = 程序中所有指令的时钟周期之和 × T
= 程序中所有指令的时钟周期数之和 / f
-
考虑CPI后的CPU时间
CPU时间 = 总指令数 × ∑ i = 1 n \sum_{i=1}^{n} i=1∑n (CPI1 × ICi / 总指令数) × 时钟周期时间
= 总指令数 × CPI × T
-
考虑MIPS后的CPU时间
MIPS = 指令数量 / 执行指令的时间 × 10^6
程序的执行时间 t = 指令数量 / MIPS × 10^6
3、计算机性能测试
3.1 目的
- 全面了解所测试计算机的性能
- 实时掌握计算机的工作状态
- 为对比、评估、维护提供依据
- ……
3.2 基本原理
- 计算机系统中配置了大量的传感器和寄存器,系统运行的相关参数保存在对应的寄存器中
- 测试程序通过读取对应寄存器的值获得系统运行的状况
- 通过图形 / 数据方式显示获取的状态数值
3.3 常见的测试工具
1)CPU测试工具
-
CPUmark
综合CPU测试,包括系统存储,浮点运算和逻辑运算;
-
SysID
测试CPU电压,运行频率, L1、L2 Cache以及各项技术资料;
-
Hot CPU Tester
可测试机器稳定性,尤其是超频后的稳定性,找出CPU的最高超频点或缺陷,还可检测CPU的详细性能指标并给出量化的分数值。包括「复杂矩阵」「排序算法「快速傅立叶变换」 「CPU 缓存」「内存」「硬盘」 及指令集等。另外其CPU/Mem Burn-in )还可以作为新购机时的烤机软件来使用。
2)显卡测试工具
-
3DMark
除衡量显卡性能外,已渐渐转变成一款衡量整机性能的软件已发行3Dmark99、3Dmark 11和The new 3DMark等近10个版本;
-
N-Bench2
重点测试CPU以及系统图形性能;
-
FurMark
通过皮毛渲染算法来衡量显卡的性能及其稳定性,提供了全屏/窗口、预定分辨率、基于时间或帧的测试、多种多重采样反锯齿、竞赛等多种模式。
3)硬盘测试工具
-
Hard Disk Speed
硬盘测速软件;
-
Disk Benchmark
通过对不同大小的数据块对磁盘读/写速度的影响检测硬盘、U盘、存储卡及其它可移动磁盘的读/写入速率;
-
iometer
可被配置为基准测试程序的磁盘和网络I/O的负载,可测试磁盘和网络控制器的性能、总线带宽和时延等参数;
-
HDD Temperature Pro
硬盘温度探测软件。
4)内存测试工具
-
CTSPD
选择主板厂商及型号后可详细测试内存的信息,包括:CAS
latency (列地址选通时延)、RAS to CAS delay(RAS到CAS的相对延
迟时间)、RAS precharge Trp (RAS预充电时间)、DIMM内存生产
商和DIMM编号等信息。 -
Memory Speed
通过读写不同大小的块状数据来测试内存的性能;
-
Memory Transfer Timing Utility
通过对源文件和目标文件进行校
正和非校正复制,测试内存的读、写速率;
5)其他综合测试
-
鲁大师
国内最大的免费系统工具软件,拥有硬件检测、硬件测试、系
统优化、节能降温、驱动安装等功能。 -
其它测试工具:
http://www.newsmth.net/nForum/#!article/CompMarket/523