“计算机系统概述”学习笔记
前言
计算机组成原理的知识抽象、晦涩、不易理解并记忆,在此对“计算机系统概述”一章中字长和字、翻译和编译等部分相似概念进行比较区分,并总结记忆方法。
字、机器字长/字长、存储字长、指令字长和数据字长
字:
- 表示被处理信息的单位
- 度量数据类型的宽度
- 存储字:一个存储单元中二进制代码的组合
- 指令字:一个指令中二进制代码的组合
- 示例:某机器定义一个字为16位
机器字长/字长:
- 计算机进行一次整数运算所能处理的二进制数据的位数
- 中央处理器(CPU)用于整数运算的数据通路的宽度
- 机器字长=中央处理器CPU内部用于整数运算的运算器位数和通用寄存器(GPR)宽度
- 反映计算机处理信息的能力。字长越长,数据的表示范围越大,计算机的计算精度越高
- 示例:某64位机器。这里的“64位”指的是机器字长
数据通路:数据流经的路径和路径上的部件,主要是进行数据存储、传输和运算的部件。如算术逻辑单元(ALU)和通用寄存器,浮点寄存器则不是
存储字长:
- 一个存储单元中所存储二进制代码的位数
指令字长:
- 一个指令字所包含二进制代码的位数
数据字长:
- 数据总线一次能并行传送信息的位数
- 可能与数据寄存器(MDR)位数不同
区别:字是表示数据的单位,机器字长是计算机/中央处理器(CPU)一次能处理的数据的单位,其他字长是相应字所表示数据的二进制代码的位数
存储器组成
组件由大到小(大包含小)依次为:
- 计算机系统=计算机硬件系统+计算机软件系统
- 计算机硬件系统=存储器+控制器+运算器+输入设备+输出设备
- 存储器=主存储器(内存储器)+辅助存储器(外存储器)
- 主存储器=地址寄存器(MAR)+存储体+数据寄存器(MDR)+时序控制逻辑
- 存储体=若干存储单元
- 存储单元=若干存储元件
- 每个存储元件存储一位二进制代码
注意:现代计算机的地址寄存器(MAR)和数据寄存器(MDR)在中央处理器(CPU)中
运算器组成
- 算术逻辑单元(ALU)
- 累加器(ACC)
- 乘商寄存器(MQ)
- 操作数寄存器(X)
- 变址寄存器(IX)
- 基址寄存器(BR)
- 程序状态寄存器(PSW)(标志寄存器)
- …
其中, 算术逻辑单元(ALU)、累加器(ACC)、乘商寄存器(MQ)和操作数寄存器(X)是必须具备的
控制器组成
- 程序计数器(PC)
- 指令寄存器(IR)
- 控制单元(CU)
计算机系统的层次结构
- 第一级:微程序机器层(微指令系统):硬件执行微指令
- 第二级:传统机器语言层(用机器语言的机器):微程序解释机器指令
- 第三级:操作系统层(操作系统机器):机器语言解释操作系统
- 第四级:汇编语言层(汇编语言机器):汇编程序翻译成机器语言程序
- 第五级:高级语言层(高级语言机器):编译程序翻译成汇编语言程序
- 第六级:应用程序层
- …
注意: 计算机系统的层次结构目前尚无统一标准
指令执行过程
- 程序执行前,先将程序第一条指令的地址存到程序计数器(PC)中
- 从程序计数器(PC)中取指令
- 对指令译码;计算下条指令地址
- 根据指令,取操作数并执行
- 将操作结果存到存储器中
指令详细数据流向
1.从程序计数器(PC)中取指令:PC->MAR->M->MDR->IR
- 从程序计数器(PC)中取指令地址
注意:程序计数器(PC)中存放的是将执行指令的地址,实际指令应从主存储器获取。概括指令执行过程时常用“从程序计数器(PC)中取指令”简化过程
- 将程序计数器(PC)中的指令地址传输给地址寄存器(MAR)
- 将地址寄存器(MAR)中的指令地址传输给地址线——准备1
- 控制器将读信号传输给读/写信号线——准备2
- 主存储器根据地址线上的指令地址和读信号,从指定存储单元取指令
- 主存储器将指令传输到数据线
- 数据线将指令传输到数据寄存器(MDR)
- 数据寄存器(MDR)将指令传输到指令寄存器(IR)
2.对指令译码;计算下条指令地址:IR->CU;(PC)+1->PC
- 控制器根据指令寄存器(IR)中指令的操作码,生成相应的控制信号,传输到不同的执行部件
- 程序计数器(PC)计算下条指令地址
3.根据指令,取操作数并执行:IR->MAR->M->MDR->ACC
- 从指令寄存器(IR)中取指令的地址码
- 将指令寄存器(IR)中指令的地址码传输到地址寄存器(MAR)
- 将地址寄存器(MAR)中指令的地址码传输到地址线——准备1
- 控制器将读信号传输给读/写信号线——准备2
- 主存储器根据地址线上的指令地址和读信号,从指定存储单元取操作数
- 主存储器将操作数传输到数据线
- 数据线将操作数传输到数据寄存器(MDR)
- 数据寄存器(MDR)将操作数传输到相应的运算寄存器中,如累加器(ACC)
4.将操作结果存到存储器中
注意观察1、3步骤,PC->MAR->地址线->M->数据线->MDR->取地址或操作数->IR或相应的运算寄存器,这一过程是基本的
源程序翻译成可执行文件的过程
- 预处理:文件名.c -> 文件名.i。结果是源程序,文本文件
- 编译:文件名.i -> 文件名.s。结果是汇编程序,文本文件
- 汇编:文件名.s -> 文件名.o。结果是可重定位目标程序,二进制文件
- 连接:文件名.o -> 文件名。结果是可执行程序,二进制文件
翻译、编译和解释和汇编程序
翻译程序有两种:
- 编译程序
- 解释程序
编译程序:
- 作用阶段:源程序翻译成可执行程序前——运行前
- 将高级语言源程序一次全部翻译成可执行程序
- 只要源程序未改动,就无须再一次翻译,可直接运行可执行程序
注意:这里“编译程序”的“编译”概念是对“源程序翻译成可执行文件的过程”的概括
解释程序:
- 作用阶段: 源程序边翻译边运行——运行时
- 将高级语言源程序的一条语句翻译成对应的机器语言,并立即执行
- 不生成可执行程序
汇编程序:
- 将汇编语言源程序翻译成机器语言程序
区分:
- 编译程序:高级语言程序->机器语言程序
- 汇编程序:汇编语言程序->机器语言程序
地址寄存器(MAR)和数据寄存器(MDR)的位数
地址寄存器(MAR)的位数:
- 主存储器的存储体中存储单元的个数
- 程序计数器(PC)的长度
- 指令的地址码长度(指令=地址码+操作码)
记忆:地址寄存器(MAR)存放指令的地址,用于寻址。存储单元、程序计数器(PC)和指令的地址码都与地址相关
数据寄存器(MDR)的位数:
- 存储字长
- 存储在一个存储单元中的二进制代码位数
记忆:数据寄存器(MDR)用于暂存数据。存储字长与数据相关
中央处理器(CPU)的时间性能指标
中央处理器(CPU)时钟周期/时钟周期:
- 执行指令的一个动作/步骤至少需要的时间
- 中央处理器(CPU)最小的时间单位
- 中央处理器(CPU)始终频域/主频的倒数
每条指令的时钟周期数(CPI)/指令周期:
- 执行一条指令需要的中央处理器(CPU)时钟周期数
- 对一台机器或一个程序,指机器或程序指令集中所有指令执行需要的平均中央处理器(CPU)时钟周期数
中央处理器(CPU)执行时间:
- 运行一个程序需要的时间
- 中央处理器(CPU)时钟周期数×中央处理器(CPU)时钟周期
- (指令条数×每条指令的时钟周期数(CPI))×中央处理器(CPU)时钟周期
公式记忆:单位时间个数×单位时间
公式扩展:
- 中央处理器(CPU)时钟周期=1÷中央处理器(CPU)始终频域/主频
- 中央处理器(CPU)时钟周期数=指令条数×每条指令的时钟周期数(CPI)
记忆:概念描述的对象由小到大:指令的一个动作/步骤,指令,程序
总结
计算机组成原理的知识抽象、晦涩、不易理解并记忆。建议学习时结合示例,分别或集中对比相似概念,在理解的基础上使用自己的语言(因为在不同资料对同一个概念描述的用词不同,容易造成误解)总结区分、记忆技巧。
作者的话
- 作者:夜悊
- 版权所有,转载请注明出处,谢谢~
- 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
- 文章在认识上有错误的地方, 敬请批评指正
- 望读者们都能有所收获
参考资料
《2023年计算机组成原理考研复习指导》组编:王道论坛