介绍运算器、控制器、存储器结构、工作原理、设计方法及互连构成整机的技术。
主要内容:
◼ 数值表示与运算方法
◼ 运算器的功能、组成和基本运行原理
◼ 存储器及层次存储系统
◼ 指令系统
◼ CPU功能、组成和运行原理
◼ 流水线
◼ 系统总线
◼ 输入输出系
- C语言程序设计
- 数值逻辑:组合电路、同步电路概念、寄存器传输、有限状态机
- 汇编语言程序设计:能看懂指令即可
- Verilog硬件描述语言:作为实验工具(可选)
- 主机:CPU (运算器 + 控制器)、内存
- 总线:地址线、数据线、控制线
- 外设:输入设备、输出设备、外存储器
功能:执行算数运算、逻辑运算。
基本结构:ALU (Arithmetic Logical Unit) 、寄存器、连接通路
功能:产生指令执行过程所需要的所有控制信号(电平信号、 脉冲信号),控制相关功能部件执行相应操作。
产生信号的依据:指令、状态、 时序
产生方式:微程序、 硬布线。
功能:存储原程序、 原数据、运算中间结果。
工作模式:读/写
工作原理:按地址访问, 读/写数据。
容量➡地址线数量
1K➡10
1M ➡ 20
1G ➡ 30
输入设备:向计算机输入数据(键盘、鼠标、网卡、扫描仪等)
输出设备:输出处理结果(显示器、声卡、网卡、打印机等)
本来存在的事物或属性,从某个角度去看,却好像不存在;
如硬件的特性对C语言程序设计者而言就具有透明性。
相互依存、 协同发展、 逻辑等效性(某些功能软硬都可实现)
软硬分界线:分界线即软、硬件的接口,是指令操作硬件的入口;
固件(Firmware)是嵌入在计算机硬件设备或电子设备中的一种软件类型。与通常在计算机上运行的操作系统不同,固件是直接存储在硬件设备中的软件,通常用于控制设备的基本功能和操作。
嵌入式系统控制: 固件通常嵌入在各种设备中,如路由器、打印机、数码相机、硬盘驱动器等。它用于控制设备的基本操作,例如启动、初始化、配置和管理硬件。
硬件交互: 固件直接与硬件交互,执行特定于设备的控制任务。这些任务可能包括处理输入/输出、管理存储、与其他设备通信等。
持久性存储: 固件通常存储在设备的非易失性存储器中,如闪存或EEPROM(可擦除可编程只读存储器)。这使得固件在设备断电后仍然保持存储。
更新可能性: 一些设备允许固件进行升级,以修复错误、增加新功能或提高性能。这种更新通常通过特定的流程完成,以确保固件更新的可靠性和完整性。
与操作系统的区别: 固件与操作系统不同。操作系统是一个更为通用的软件层,负责管理计算机的资源、提供应用程序接口等。固件则更专注于设备级别的控制和操作。
常见的例子包括计算机的主板上的BIOS(基本输入/输出系统)、网络设备上的固件、打印机或扫描仪上的固件等。这些固件负责确保设备能够正确运行,并为设备提供所需的功能。
指机器一次能处理的二进制位数
- 由加法器、寄存器的位数决定;
- 一般与内部寄存器的位数相等(字长);
- 字长越长,表示数据的范围就越大,精确度越高;
- 目前常见的有32位和64位字长。
数据总线一次能并行传送的最大信息的位数
- 一般指运算器与存储器之间的数据总线位数。
- 有些计算机内部与外部数据总线宽度不一致:
- 8086、80286、80386内外数据总线等宽;
- 8088、80386SX 外部总线宽度8位内部总线宽度 16位;
- Pentium外总线64位,内总线32位(两条32位流 水线)
主存容量:是指一台计算机主存所包含的存储单元总数。
存储带宽: 指单位时间内与主存交换的二进制信息量, 常用单位B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)。
- 主频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 (倍频)
执行一条指令(平均)需要的时钟周期数(即T周期的个数),有单条指令CPI 、一段程序中所有指令的CPI、指令系统CPI 等
CPI = 程序中所有指令的时钟周期数之和 / 程序指令总数 = (程序中各类指令的CPI ×程序中该类指令的比例)
IPC (Instruction per Clock):每个时钟周期内执行的指令条数 (并行)
实际上频率和IPC在真正影响CPU性能。
准确的CPU性能判断标准应该是:(由英特尔提出并被业界广泛认可)
CPU性能=IPC(CPU每一时钟周期内所执行的指令多少)×频率(MHz时钟速度)
每秒钟CPU能执行的指令总条数 (单位:百万条/秒)
MIPS = 指令条数 / (执行时间×)
= 指令条数 / (所有指令CPU时钟周期数之和 / f × )
= f / (CPI × )
CPU时间 = 程序中所有指令的时钟周期数之和×T
= 程序中所有指令的时钟周期数之和 / f
执行一段程序所需的时间:CPU时间+ I/O时间 + 存储访问时间+ 各类排队时延等。
计算CPU时间:
或者由MIPS = 指令条数 / (执行时间×) 得:程序执行时间t = 指令数量 / (MIPS ×)
- 计算机系统中配置了大量的传感器和寄存器,系统运行的相关参数保存在对应的寄存器中;
- 通过图形 / 数据方式显示获取的状态数值;
- 测试程序通过读取相应寄存器的值得到系统运行的状况;
1. (多选)下列关于计算机字长的描述中正确的是
A字长一般与通用寄存器的位数相同
B字长一般与存储器数据位相同
C字长一般与运算器的数据位相同
D字长一般与存储器的地址位相同
答案:AC
2. 程序必须存放在哪里才能被CPU访问并执行
答案:内存
3. (多选)下列计算机系统性能评价的描述中正确的是
A.主频高的机器性能不一定高
B.同一程序在不同机器上运行时得到的MIPS值不一定相同
C.程序的CPI值越低,计算机的性能越高
D.程序MIPS值越高,计算机的性能越高
答案:AB
解析: C:程序的CPI也可以通过修程序中的指令而变大和变小,因此不能由此确定CPI值越低,计算机性能就越高 D:可通过修改测试程序在一个相对低性能的机器上运行测试测试程序获得一个高的MIPS值。
4. 某计算机指令集中共有A、B、C、D四类指令,它们占指令系统的比例分别为40% 、20%、20%、20%, 各类指令的CPI分别为 2、3、4、5;该机器的主频为600MHZ,则该机的CPI 为 (保留到小数点后一位)
答案:3.2
解析:CPI = (程序中各类指令的CPI ×程序中该类指令的比例) = 0.4×2 + 0.2×3 + 0.2×4 + 0.2×5
5. 某计算机指令集中共有A、B、C、D四类指令,它们占指令系统的比例分别为40% 、20%、20%、20%, 各类指令的CPI分别为 2、3、4、5;该机器的主频为600MHZ,则该机的MIPS为 (保留到小数点后一位)
答案:187.5
解析:MIPS = f / (CPI × ) ,这里f单位正好是MHZ,分子要乘上,因此直接600 / 上道题算的3.2即可。
6. 若某程序编译后生成的目标代码由A、B、C、D四类指令组成,它们在程序中所占比例分别为20%、40%、20%、20%。已知A、B、C、D四类指令的CPI分别为1、2、2、2。现需要对程序进行编译优化,优化后的程序中A类指令条数减少了一半,而其它指令数量未发生变化。假设运行该程序的计算机CPU主频为500MHZ。优化后程序的MIPS为(保留到小数点后一位)
答案:264.7