文章目录
01. 计算机系统概述
1.1 计算机发展历程
408 不考
1.2 计算机系统的层次结构
1.2.1 计算机硬件的基本组成
-
硬件系统和软件系统共同构成一个计算机系统
- 软硬件在逻辑功能上是等价的(某一功能既可以用软件实现又可以硬件实现)
-
存储程序:指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
将事先编制好的程序和原始数据送入主存后才能执行,程序启动后无须干预可以自动逐条执行。
-
冯诺依曼机的特点:
-
计算机由五大部件组成
-
指令和数据以同等地位存于存储器,可按地址寻访
-
指令和数据用二进制表示
-
指令由操作码和地址码组成
-
存储程序
-
以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)
-
-
冯诺依曼机最根本的特征是采用“存储程序”原理,基本工作方式是控制流驱动方式
1.2.2 各个硬件的工作原理
【注意】现在的计算机通常把MAR、MDR也集成在CPU内
-
主存
-
主存的存储体由许多存储单元组成,每个存储单元包含若干个存储元件
每个地址对应一个存储单元,若 MAR 有 n 位,则存储单元个数 = 2 n 2^n 2n
-
存储字:存储单元存储的一串二进制代码
-
存储字长:存储单元存储的二进制代码的位数
MDR 位数 = 存储字长
若 MDR = 16 → 每个存储单元可以存放16bit,一个字(word)=16bit
-
存储元:即存储二进制的电子元件,每个存储元可存
1 bit
地址译码器是主存的构成部分
-
-
运算器
-
计算机的工作过程
-
状态寄存器、通用寄存器只有为汇编程序员可见,才能实现编程
IR、MAR、MDR 是 CPU 内部工作寄存器,对程序员不可见
程序员可以通过 JMP 指令来设置 PC 的值
1.2.3 计算机软件
系统软件 eg:操作系统、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、标准程序库、网络软件系统、语言处理程序、服务程序
【注意】数据库系统不是系统软件
- 硬件能直接执行的只能是机器语言
- 编译器、汇编器、解释器,可统称“翻译程序”
1.2.4 计算机系统的层次结构
-
编译程序:将高级语言源程序全部语句一次全部翻译成机器语言程序(=机器目标代码),会生成目标代码文件,而后再执行机器语言程序(只需翻译一次)
解释程序:将高级语言源程序的一条语句翻译成对应于机器语言的语句,并立即执行(不会生成目标代码文件)。紧接着再翻译下一句(每次执行都要翻译)
解释程序一般比编译程序慢
-
预处理 → 编译→ 汇编 → 链接
-
计算机体系结构 vs 计算机组成原理
-
计算机体系结构——机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性(指令系统、数据类型、寻址技术、I/O机理)
-
如何设计硬件与软件之间的接口
eg:有无乘法指令
-
-
计算机组成原理——实现计算机体系结构所体现的属性,对程序员“透明”(具体指令的实现)
-
如何用硬件实现所定义的接口
eg:如何实现乘法指令
-
-
1.3 计算机的主要性能指标
-
CPI:时钟频率不会影响CPI,但是会加快指令执行速度
- 系统结构、指令集、计算机组织都会影响CPI
不同的指令,CPI不同。甚至相同的指令,CPI 也可能有变化
-
数据通路带宽 / 数据字长:(外部)数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)
-
吞吐量:指系统在单位时间内处理请求的数量
- 取决于:信息能多快地输入内存;CPU能多快地取指令;数据能多快地从内存取出或存入;所得结果能多快地从内存送给一台外部设备
这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期
-
响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
- 通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间)
-
思考
-
主频高的CPU一定比主频低的CPU快吗?
不一定,如两个CPU,A的主频为2GHz,平均CPI=10;B的主频1GHz,平均CPI=1…
-
若A、B两个CPU的平均CPI相同,那么A一定更快吗?
也不一定,还要看指令系统,如 A不支持乘法指令,只能用多次加法实现乘法;而B支持乘法指令
-
基准程序执行得越快说明机器性能越好吗?
基准程序中的语句存在频度差异,运行结果也不能完全说明问题
-
Notes
-
机器字长 vs 指令字长 vs 存储字长
-
机器字长:CPU内部用于整数运算的数据通路的宽度,等于CPU内部用于整数运算的运算器位数和通用寄存器的宽度,反映了计算机处理信息的能力
计算机一次能处理的二进制数的长度;微处理器的位数指 CPU 一次能够处理的数据长度,称机器字长
-
决定计算机精度的主要技术:计算机字长
-
“16位或32位机器”中的16、32指字长(机器字长)
-
一般情况下,可以通过寄存器位数来判断机器字长
-
-
指令字长:一个指令字中包含的二进制代码的位数
-
一般取存储字长的整数倍
-
若为存储字长的 n 倍,则需要 n 个访存周期来取出一条指令;
若存储字长 = 指令字长,则取指周期 = 机器周期
-
-
存储字长:一个存储单元存储的二进制代码的长度
① 都是字节的整数倍;② 在数值上可能相等可能不等,视不同机器而定
-
-
“兼容”:指计算机软件或硬件的通用性,通常在同一系列的不同型号计算机间
-
运算速度:每秒能够执行多少指令