408计组——1.计算机系统概述
计算机系统层次结构
计算机系统的组成
硬件系统 + 软件系统=计算机系统
功能同时能用软硬件实现,称为软硬件逻辑功能等价
功能使用频繁切硬件成本理想,硬件解决效率更高
计算机硬件的组成
-
冯诺依曼计算机特点
-
采用“存储程序”的工作方式
-
由【运算器、存储器、控制器、输入输出设备】组成
-
指令、数据存储地位相同,按地址询问
-
指令、数据均由二进制码表示,由指令周期的不同阶段区分
-
指令由操作码和地址码组成
- 操作数 or 地址码?
操作数和地址码是同一个东西
一条假设的汇编指令:
ADD R1, [500]
-
操作码(Opcode) :
ADD
指出操作类型 -
操作数(Operands) :
R1
和[500]
-
R1
是寄存器地址,表示一个寄存器 -
[500]
是直接地址码,表示内存地址 500 处的内容
-
-
-
存储程序基本思想
事先编制好的程序和数据送入存储器后才能执行,无需干预自动执行,直到执行结束
计算机功能部件
输入输出设备
-
输入设备
将程序和数据以机器能识别接受的形式输入
键盘鼠标扫描仪摄像机
-
输出设备
将计算机处理结果以人类可接受形式,或其他系统要求形式输出
显示器打印机
存储器
主存储器(内存储器,主存) 和辅助存储器(外存储器,外存)
CPU 能直接访问为主存,外存帮助主存记录更多内容
外存内容调入主存才能被 CPU 访问
-
存储元
存放二进制信息的电子元件,一个存储元 1bit
-
存储单元
每个存储单元存放一串二进制代码
-
存储字
存储单元二进制代码的组合
-
字长
存储字长决定了从内存中读取或写入数据的基本单位
数据字长和机器字长决定了处理器如何处理这些数据
-
存储字长
一个存储单元(或存储字)所包含的位数
决定存储器一次可以存或读的数据量
-
机器字长
处理器内部用于处理数据和指令的标准位数
通常是处理器寄存器的宽度
-
指令字长
一条机器指令的长度,通常以位或字节为单位
决定了指令编码的复杂性和灵活性
-
数据字长
数据总线一次并行传输信息的次数,处理器一次能处理的数据位数
通常和机器字长相同
-
-
存储器地址寄存器(MAR)
存放访存地址,经过地址译码后找到所选存储单元,用于寻址
MAR 位数(=存储单元个数/地址码长度)反映最多可寻址的存储单元个数
-
存储器数据寄存器(MDR)
暂存存储器读写信息,位数等于存储字长
-
时序控制逻辑
产生存储器操作所需各种时序信号
运算器
-
累加器(ACC, Accumulator)
临时存储操作数和运算结果的寄存器
- 暂存中间运算结果
- 作为算术和逻辑运算的一个操作数
- 加速数据处理,从累加器读取和写入数据比从内存中要快
-
乘商寄存器(MQ, Multiplier Quotient Register)
专门用于存储乘法和除法运算的中间结果
- 乘法时:存储乘法操作的中间结果(乘积)
- 除法时:存储被除数和商
-
通用操作数寄存器(X, General Purpose Register)
用于存储任意数据和地址的寄存器,任意用途,无专用
- 存储中间运算结果
- 存储临时数据
- 存储函数参数和返回值
-
算术逻辑单元(ALU, Arithmetic Logic Unit)
处理器中执行算术和逻辑运算的核心组件
- 算术运算
- 逻辑运算:与、或、非、异或
- 移位运算:算术移位、逻辑移位
- 比较运算
控制器
-
程序计数器(PC, Program Counter)
存放下⼀条指令的地址,并跟踪下⼀条要执⾏的指令的地址
- 指向下一条指令:存储下一条指令的地址,并在每次指令执行后更新,以指向下一条指令的地址
- 控制程序流:值决定了程序执行的顺序,通过改变 PC 的值可以实现程序的跳转、函数调用和循环控制
- 初始化和重置:在程序启动时,PC 通常被设置为程序的起始地址;在程序重置或中断时,PC 也会被设置为特定地址
-
指令寄存器(IR, Instruction Register)
存储当前正在执行的指令的寄存器
- 存储当前指令、解码:内存中取出的指令将加载到 IR 中,处理器进行解码和执行
- 控制信号生成:根据 IR 中的指令,控制单元 cu 生成相应的控制信号来指导处理器的各个部分执行具体操作
-
控制单元(CU, Control Unit)
协调和控制其他部件的操作,分析指令,给出控制信号
- 指令解码:读取并解释从 IR 中取出的指令,生成相应的控制信号
- 信号分配:根据解码结果,将控制信号发送到 ALU、寄存器、内存和 I/O 设备等
- 控制流程:管理程序执行的顺序,控制指令的取指、解码、执行、写回等步骤
- 中断处理:处理和响应外部或内部的中断信号,确保系统能够正确处理中断事件
计算机软件
-
软件
-
系统软件
一组保证计算机系统高效、正确运行的基础软件,作为系统资源提供给用户使用
操作系统、数据库管理系统、语言处理程序、分布式软件系统、网络软件系统等
-
应用软件
用户为解决某个应用领域中的各类问题而编制的程序
科学计算类程序、工程设计类程序、数据统计与处理程序
-
-
三个级别的语言
-
机器语言
二进制代码语言,计算机唯一可以识别和执行的语言
-
汇编语言
用英文单词和缩写代替二进制指令代码
必须经过汇编程序翻译为机器语言才能在硬件执行
-
高级语言
由编译程序编译为汇编程序,经过汇编操作得到机器语言程序
c++ 等
-
-
翻译程序
-
汇编程序(汇编器)
汇编语言程序——> 机器语言程序
-
解释程序(解释器)
源程序语句按执行顺序,逐条翻译为机器指令,立即执行
-
编译程序(编译器)
高级语言程序——> 汇编语言/机器语言
-
计算机系统的层次结构
-
微程序机器层
硬件层,由机器硬件直接执行微指令
-
传统机器语言层
实际机器层,微程序解释机器指令系统
-
操作系统层
操作系统程序实现,操作系统程序由机器指令和广义指令组成
广义指令用于扩展机器功能,由操作系统定义
也称混合层
-
汇编语言层
由汇编程序支持,可编写汇编语言程序
-
高级语言层
面向用户,由高级语言编译程序支持,之上还有应用程序层
软硬件之间的间隔为指令集体系结构(ISA),定义计算机所有指令集合
规定计算机执行的操作,处理的操作数存放的地址空间,操作数类型
计算机系统工作原理
“存储程序”工作方式
-
从主存储器中取指令
程序的第一条指令在执行前放入 PC
取指令时,由 PC 中的地址访问主存,将指令加载到指令寄存器(IR)
-
对指令进行译码
解析指令,确定操作码和操作数
-
计算下一条指令的地址
-
若为顺序型指令
PC 的内容 + 当前指令长度
-
若为转跳型指令
指令中指定的目标地址
-
-
取操作数并执行
根据解码结果,执行指令指定的操作
-
将结果送回存储器
翻译过程
-
预处理阶段
预处理器将引用的库文件插入程序文件,生成源程序
-
编译阶段
将源程序编译生成汇编语言源程序
-
汇编阶段
将汇编语言源程序翻译成机器语言指令,并打包成可重定位目标文件(二进制文件)
-
链接阶段
链接器将可重定位目标文件和标准库函数合并为可执行文件
指令执行过程
以取数指令说明
-
取指令
PC → MAR → M → MDR → IR
由 PC 取指令到 IR
-
分析指令
OP(IR) → CU
指令译码并送出控制信号
-
执行指令
Ad(IR) → MAR → M → MDR → ACC
取数操作
(IR)指 IR 中存放的内容
计算机性能指标
机器字长
32 位电脑,32 即机器字长,简称字长
计算机进⾏⼀次整数运算所能处理的⼆进制的位数
通常与 CPU 寄存器位数、ALU 有关
字长越长,数表示范围越大,字长常为 8 的整数倍
数据通路带宽
外部数据总线⼀次能并⾏传送信息的位数,⾮ CPU 内部数据总线宽度
主存容量
主存储器所能存储信息的最⼤容量,通常以字节来衡量【1B(字节) = 8bit(位)】
也可以⽤字数 x 字⻓表示(512K x 16 位)
-
MAR 位数反映存储单元个数
16 位 MAR 即有 $2^{16}=65536$ 个存储单元(64K,1K=1024)
-
MDR 位数反映存储单元字长
32 位 MDR,表示存储容量为存储单元个数 x MDR,即($64K\times 32位$)
运算速度
-
吞吐量
系统在单位时间内处理请求的数量
-
响应时间
⽤户向计算机发送⼀个请求,到系统对该请求做出响应并获得所需结果的等待时间
-
主频
每秒执⾏的时钟周期数量
机器内部主时钟的频率
越大,代表⼀个操作所需时间越少,CPU运⾏速度越快
-
CPU时钟周期
CPU中最小的时间单位,每个动作最少需要1个时钟周期的时间,单位s
通常为节拍脉冲或T周期,即主频的倒数
10Hz表示每秒10次
-
CPI(Cyele Per Instruction)
执行一条指令所需时钟周期数
即单条指令时间
-
IPS(Instructions Per Second)
每秒执行指令数量
主频/平均CPI
-
CPU执行时间
执行一个程序花费的时间
= CPI x 时钟周期
= CPI / 主频
= 指令条数 x CPI / 主频
-
每秒执行多少百万条指令(MIPS,Million instructions per second)
-
每秒执行多少次浮点运算(FLOPS,Floating-point Operations Per Second)
基准程序
专门用于进行性能评价的一组程序