“计算机系统概述”学习笔记

文章目录

  • 前言
  • 字、机器字长/字长、存储字长、指令字长和数据字长
  • 存储器组成
  • 运算器组成
  • 控制器组成
  • 计算机系统的层次结构
  • 指令执行过程
  • 指令详细数据流向
  • 源程序翻译成可执行文件的过程
  • 翻译、编译和解释和汇编程序
  • 地址寄存器(MAR)和数据寄存器(MDR)的位数
  • 中央处理器(CPU)的时间性能指标
  • 总结
  • 作者的话
  • 参考资料

前言

计算机组成原理的知识抽象、晦涩、不易理解并记忆,在此对“计算机系统概述”一章中字长和字、翻译和编译等部分相似概念进行比较区分,并总结记忆方法


字、机器字长/字长、存储字长、指令字长和数据字长

字:

  • 表示被处理信息的单位
  • 度量数据类型的宽度
  • 存储字:一个存储单元中二进制代码的组合
  • 指令字:一个指令中二进制代码的组合
  • 示例:某机器定义一个字为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)

计算机系统的层次结构

  • 第一级:微程序机器层(微指令系统):硬件执行微指令
  • 第二级:传统机器语言层(用机器语言的机器):微程序解释机器指令
  • 第三级:操作系统层(操作系统机器):机器语言解释操作系统
  • 第四级:汇编语言层(汇编语言机器):汇编程序翻译成机器语言程序
  • 第五级:高级语言层(高级语言机器):编译程序翻译成汇编语言程序
  • 第六级:应用程序层

注意: 计算机系统的层次结构目前尚无统一标准


指令执行过程

  1. 程序执行前,先将程序第一条指令的地址存到程序计数器(PC)中
  2. 从程序计数器(PC)中取指令
  3. 对指令译码;计算下条指令地址
  4. 根据指令,取操作数并执行
  5. 将操作结果存到存储器中

指令详细数据流向

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年计算机组成原理考研复习指导》组编:王道论坛

你可能感兴趣的:(计算机组成原理,后端,硬件工程,硬件架构,系统架构,面试)