主要内容
介绍运算器、控制器、存储器结构、工作原理、设计方法及互连构成整机的技术。
主要内容:
◼ 数值表示与运算方法
◼ 运算器的功能、组成和基本运行原理
◼ 存储器及层次存储系统
◼ 指令系统
◼ CPU功能、组成和运行原理
◼ 流水线
◼ 系统总线
◼ 输入输出系
前置知识
- C语言程序设计
- 数值逻辑:组合电路、同步电路概念、寄存器传输、有限状态机
- 汇编语言程序设计:能看懂指令即可
- Verilog硬件描述语言:作为实验工具(可选)
冯诺依曼体系结构原理
- 采用二进制
- 存储程序:将程序存放在计算机的存储器中
- 程序控制:按指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号,实现对计算的控制,完成指令的功能。
- 冯·诺伊曼机体系(延续至今)
- 主机:CPU (运算器 + 控制器)、内存
- 总线:地址线、数据线、控制线
- 外设:输入设备、输出设备、外存储器
运算器
功能:执行算数运算、逻辑运算。
基本结构:ALU (Arithmetic Logical Unit) 、寄存器、连接通路
控制器
功能:产生指令执行过程所需要的所有控制信号(电平信号、 脉冲信号),控制相关功能部件执行相应操作。
产生信号的依据:指令、状态、 时序
产生方式:微程序、 硬布线。
存储器
功能:存储原程序、 原数据、运算中间结果。
工作模式:读/写
工作原理:按地址访问, 读/写数据。
容量➡地址线数量
1K➡10
1M ➡ 20
1G ➡ 30
输入/输出设备
输入设备:向计算机输入数据(键盘、鼠标、网卡、扫描仪等)
输出设备:输出处理结果(显示器、声卡、网卡、打印机等)
软件系统
- 可运行的思想和内容的数字化
- 思想:算法、规律、方法---程序表达
- 内容:图形、图像、数据、声音、文字等被处理的对象
- 软件的表现形式: 程序和数据(以二进制表示的信息)
- 软件的核心: 算法
分类
- 系统软件:如操作系统、网络系统和编译系统
- 应用软件:字处理软件、游戏软件等
- 支持软件:开发工具、界面工具等
计算机层次结构
硬件与软件系统间的关系
相互依存、 协同发展、 逻辑等效性(某些功能软硬都可实现)
软硬分界线:分界线即软、硬件的接口,是指令操作硬件的入口;
计算机系统性能评价
非时间指标
机器字长
指机器一次能处理的二进制位数
- 由加法器、寄存器的位数决定;
- 一般与内部寄存器的位数相等(字长);
- 字长越长,表示数据的范围就越大,精确度越高;
- 目前常见的有32位和64位字长。
总线宽度
数据总线一次能并行传送的最大信息的位数
- 一般指运算器与存储器之间的数据总线位数。
- 有些计算机内部与外部数据总线宽度不一致:
- 8086、80286、80386内外数据总线等宽;
- 8088、80386SX 外部总线宽度8位内部总线宽度 16位;
- Pentium外总线64位,内总线32位(两条32位流 水线)
主存容量与存储带宽
主存容量:是指一台计算机主存所包含的存储单元总数。
存储带宽: 指单位时间内与主存交换的二进制信息量, 常用单位B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)。
时间指标
主频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主频 2400M = 133M (外频) × 18 (倍频)
CPI (Clock cycles Per Instruction)
执行一条指令(平均)需要的时钟周期数(即T周期的个数),有单条指令CPI 、一段程序中所有指令的CPI、指令系统CPI 等
CPI = 程序中所有指令的时钟周期数之和 / 程序指令总数 = (程序中各类指令的CPI ×程序中该类指令的比例)
IPC (Instruction per Clock):每个时钟周期内执行的指令条数 (并行)
实际上频率和IPC在真正影响CPU性能。
准确的CPU性能判断标准应该是:(由英特尔提出并被业界广泛认可)
CPU性能=IPC(CPU每一时钟周期内所执行的指令多少)×频率(MHz时钟速度)
MIPS (Million Instructions Per Second)
每秒钟CPU能执行的指令总条数 (单位:百万条/秒)
MIPS = 指令条数 / (执行时间×)
= 指令条数 / (所有指令CPU时钟周期数之和 / f × )
= f / (CPI × )
CPU时间
CPU时间 = 程序中所有指令的时钟周期数之和×T
= 程序中所有指令的时钟周期数之和 / f
执行一段程序所需的时间:CPU时间+ I/O时间 + 存储访问时间+ 各类排队时延等。
计算CPU时间:
或者由MIPS = 指令条数 / (执行时间×) 得:程序执行时间t = 指令数量 / (MIPS ×)
计算机性能测试
测试的基本原理
- 计算机系统中配置了大量的传感器和寄存器,系统运行的相关参数保存在对应的寄存器中;
- 通过图形 / 数据方式显示获取的状态数值;
- 测试程序通过读取相应寄存器的值得到系统运行的状况;
CPU测试工具
- CPUmark : 综合CPU测试,包括系统存储,浮点运算和逻辑运算;
- SysID : 测试CPU电压,运行频率,L1 、L2 Cache等;
- Hot CPU Tester :可测试机器稳定性,尤其是超频后的稳定性,找出 CPU 的最高超频点或缺陷,还可检测CPU的详细性能指标并给出量化的分数值。
显卡测试工具
- 3DMark :除衡量显卡性能外,已渐渐转变成一款衡量整机性能的软件;
- N-Bench2: 重点测试CPU以及系统图形性能;
- FurMark:通过皮毛渲染算法来衡量显卡的性能及其稳定性。
硬盘测试工具
- Hard Disk Speed : 硬盘测速软件;
- Disk Benchmark : 通过对不同大小的数据块对磁盘读/写速度的影响, 检测硬盘、U盘、 存储卡及其它可移动磁盘的读/写入速率 ;
- iometer : 可被配置为基准测试程序的磁盘和网络I/O的负载,可测试磁盘和网络控制器的性能、总线带宽和时延等参数;
- HDD Temperature Pro: 硬盘温度探测软件。
内存测试工具
- CTSPD :选择主板厂商及型号后可详细测试内存的信息,包括:CAS latency (列地址选通时延)、RAS to CAS delay(RAS到CAS的相对延迟时间)、RAS precharge Trp (RAS预充电时间)、DIMM内存生产厂商和DIMM编号等信息。
- Memory Speed: 通过读写不同大小的块状数据来测试内存的性能;
- Memory Transfer Timing Utility :通过对源文件和目标文件进行校正和非校正复制,测试内存的读、写速率;