本系列文章为408考研计算机组成原理知识点整理仅涉及到一些重要的考研知识点并不是完全系统全面的知识,参考书目和视频资料:唐朔飞 计算机组成原理(第二版),袁春风 计算机组成与系统结构(第二版)王道考研计算机组成原理,B站王道考研计算机组成原理视频课。

1.1 计算机的性能指标

  • MAR位数:反映存储单元的个数,长度与PC一致。
    MDR位数:它等于存储字长,等于每个存储单元的大小
  • 吞吐量:表征一台计算机在某 一时间间隔内能够处理的信息量。
  • 响应时间:表征从输入有效到系统产生响应之间的时间度量,用时间单位来度量,包括等待时间和处理时间。
  • 利用率:在给定的时间间隔内系统被实际使用的时间所占的比率,用百分比表示,实际处理时间/响应时间。
  • 处理机字长:指处理机运算器中一次能够完成二进制数运算的位数,如32位、64位。
  • 总线宽度:一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数。
  • 存储器容量:存储器中所有存储单元的总数目, 通常用KB、MB、GB、TB来表示。
  • 存储器带宽:单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示。
  • 主频/时钟周期:CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫CPU的主频。度量单位是MHz(兆赫兹)、GHz(吉赫兹)。主频的倒数称为CPU时钟周期(T),T=1/f, 度量单位是μs、ns。
  • CPU执行时间:表示CPU执行一般程序所占用的CPU时间,可用下式计算:
    CPU执行时间 = CPU时钟周期数 * CPU时钟周期
  • CPI : 表示每条指令周期数,即执行一条指令所需的平均时钟周期数。用下式计算:
    CPI = 执行某段程序所需的CPU时钟周期数 / 程序包含的指令条数
  • MIPS (Million Instructions Per Second)的缩写,表示平均每秒执行多少百万条定点指令数,用下式计算:
    MIPS = 指令数 / (程序执行时间 * 10^6)
  • FLOPS (Floating-point Operations Per Second) 的缩写,表示每秒执行浮点操作的次数用来衡量机器浮点操作的性能。用下式计算:
    FLOPS = 程序中的浮点操作次数 / 程序执行时间(s)
  • MFLOPS:每秒执行多少百万次浮点运算(浮点操作次数执行时间×106
  • GFLOPS:每秒执行多少十亿次浮点运算(浮点操作次数执行时间×109
  • TFLOPS:每秒执行多少万亿次浮点运算(浮点操作次数执行时间×1012

1.2 计算机的硬件

1.2.1 冯诺依曼机

1.计算机硬件系统由运算器、存储器、控制器、输入和输出设备5部分组成
2.指令和数据以同等地位存诸在存储器,并可按地址寻访
3.指令由操作码和地址码组成,操作码用于表示这是一个什么类型的操作,地址码用于表示操作数在存储器中的存放位置
4.指令在存储器内按顺序存放(一般情况下是这样的,但在特定条件下也可以进行设定)
5.早期的冯诺依曼机器以运算器中心,输入输出设备通过运算器与存储器传送数据。

1.2.2 现代计算机

为了解决I/O设备的速度和CPU速度差异悬殊的问题,现如今的计算机则采用以存储器为中心的计算机组织结构,这种结果使I/O操作尽可能绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率。

运算器

主要功能是进行加减乘除等算术运算,还可以进行逻辑运算,核心是ALU(算术逻辑运算部件),计算机中通常采用二进制数,运算器长度一般是8、16、32、64位。

  • ALU(算数逻辑单元):运算器中造价最为高昂的部分,本质是一对电路
  • ACC(累加器):辅助ALU
  • MQ(乘商寄存器):辅助ALU
  • X(操作数寄存器):辅助ALU

存储器

几个重要概念

  • 存储元:也可称为存储元件和存储基元,用来存放一位二进制信息
  • 存储单元:由若干个存储元组成,能存放多位二进制信息
  • 存储体:许多存储单元可组成存储体,也即存储矩阵
  • 存储字:每个存储单元中二进制代码的组合即为存储字,可代表数值、指令和地址等
  • 存储字长:每个存储单元中二进制代码的位数就是存储字长

存储器由许多存储单元组成,每个存储单元有编号,称为地址,存取数据都要按给定的地址来寻找存储单元。存储器所有存储单元的总数称为存储容量,存储容量大的磁盘存储和光盘存储称为外存储器(外存),半导体存储器称为内存储器(内存)

控制器

控制器是计算机中发号施令的部件,控制计算机各部件的工作。

  • 控制单元(CU):分析指令、发出信号、协调操作
  • 指令寄存器(R):存放当前要执行的指令。注意其内容来源于MDR,因为指令和数据本质是一样的,都被存放在存储器。
  • 程序计数器(PC):存放当前要执行的指令地址。注意其与MAR直接连通,并且可以自动+“1”

计算程序

每一个基本操作称为一条指令,一串特定的指令序列称为某问题的计算程序,简称程序。

指令的形式

指令的内容由两部分组成:操作的性质和操作数的地址,前者为操作码,后者为地址码。
将接替的程序存放到存储器中称为存储程序,控制器依据存储的程序进行计算任务称为程序控制。存储程序并按照地址顺序执行,这就是冯诺依曼型计算机的设计思想。

  • 冯诺依曼结构:指令和数据放在一个存储器中。
  • 哈佛结构:指令和数据分别放在两个存储器中。

控制器的基本任务

把取指令的一段时间叫做取指周期,把执行指令的时间叫做执行周期,计算机系统中运算器和控制器组合在一个芯片中,称为CPU。

指令流和数据流

把组成一个字的二进制位数称为字长,可以是8位也可达到64位(影响精度)。如果某字代表要处理的数据,称为数据字,如果代表指令,称为指令字。取指周期中从内存中读出的信息流是指令流,流向控制器;执行周期中,从内存读出信息流是数据流,由内存流向运算器。

输入/输出设备

  • 输入设备:把人们熟悉的某种信息形式变换为机器内部所能接受和识别的二进制信息形式。
  • 输成设备:把计算机处理的结果变化为人或其他机器设备所能接收和识别的信息形式。
  • 计算机的输入输出设备也称外围设备,通常需要一个适配器与主机相连。
  • 系统总线是构成计算机系统的骨架,多个系统部件之间进行数据传送的公共通路。

1.3 计算机的软件

1.3.1 软件组成和分类

系统软件:是一组保证计算机系统高效,正确运行的基础软件,通常作为系统资源提供给用户使用。系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序,分布式软件系统、网络软件系统、标准库程序、服务型程序等
应用软件:是指用户为解决某个应用领域中的各类问题而编制的程序、如各种科学计算类程序,工程设计类程序,数据统计与处理程序等

1.3.2 编译程序、解释程序、汇编程序

(1)汇编程序(assembler):也称汇编器,用来将汇编语言源程序翻译成机器语言目标程序
(2)解释程序(interpreter):也称解释器,用来将源程序中的语句按其执行顺序逐条翻译成机器指令并立即执行

(3)编译程序(compiler):也称编译器,用来将高级语言源程序翻译成汇编语言机器语言目标程序

1.3.3 机器语言、汇编语言、高级语言

机器语言:用二进制“0”和“1”描述不同指令,编程人员需要记忆每一条指令的二进制编码。其优点就是计算机可以直接识别并执行
汇编语言:其实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。汇编语言的程序必须经过一个称为汇编程序的系统软件的翻译,将其转化为机器语言,才能在计算机的硬件系统上运行。
高级语言:需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序。其优点在于方便编程人员写出解决问题的方案。

1.3.4 从源代码到可执行程序

下图的过程展示了一个hello.c源代码到一个可执行的目标程序的过程。

1.4 计算机系统的多层次结构

  • 计算机系统的多级层次结构:现代计算机是一个硬件与软件组成的综合体,自下而上依次为:
  • 微程序机器层:这是一个实在的硬件层,它由机器硬件直接执行微指令。
  • 传统机器语言层:它是一个实际的机器层,由微程序解释机器指令系统。
  • 操作系统层:它由操作系统实现。操作系统程序是由机器指令和广义指令组成的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,所以这一层也称为混合层。
  • 汇编语言层:他为用户提供一种符号化的语言,借此可编写汇编语言Q源程序。
  • 高级语言层:它是面向用户的,是为方便用户编写应用程序而设置的。
  • 在高级语言层之上,还可以有应用层,它由解决实际问题的程序组成(比如word,chrome等等。)

这样的分层结构,使得本层的使用者无需关心下一层的实现细节。

在很多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现,因此硬件和软件没有严格的界限。所以软件与硬件的具有逻辑等价性,比如我们把复杂的、常用的程序制作成所谓的固件,就其功能而言,是软件,但从形态上来说又是硬件。