计算机组成原理【1】: 计算机系统概述

注意:
本文更偏向于考试复习,如果初学,建议配合教材,谢谢!

概述

计算机系统层次结构

  • 计算机系统的基本组成
  • 计算机硬件的基本组成
  • 计算机软件和硬件的关系
  • 计算机系统的工作原理
    计算机性能指标
    吞吐量;响应时间;CPU时钟周期;主频;CPI;CPU执行时间;MIPS;MFLOPS

计算机系统层次结构

计算机系统的组成


  1. 硬件系统软件系统共同构成了一个完整的计算机系统。硬件是指有形的物理设备,是计算机系统中实际物理装置的总称。软件是指在硬件上运行的程序和相关的数据及文档。
  2. 对某一功能来说,若既可以用软件实现,又可以用硬件实现,则称为软/硬件在逻辑功能上是等价的
  3. 一个功能若使用较为频繁且用硬件实现的成本较为理想,则使用硬件解决可以提高效率

冯·诺伊曼机


“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称冯·诺伊曼机,其特点如下:

  1. 采用“存储程序”的工作方式。
  2. 计算机硬件系统由运算器存储器控制器输入设备输出设备5大部件组成。
  3. 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们。
  4. 指令和数据均用二进制代码表示。
  5. 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。

计算机的功能部件

输入设备/输出设备:略

存储器

  1. 存储器分为主存储器(也称主存)和辅助存储器(也称外存)。
  2. CPU能够直接访问的存储器是主存储器。
  3. 辅助存储器用于帮助主存储器存储更多的信息。
  4. 存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式

存储器组成

  1. 存储体:存放二进制信息
  2. 存储器地址寄存器(MAR):存放访存地址。
  3. 存储器数据寄存器(MDR):用于暂存要从存储器中读或写的信息。
  4. 时序控制逻辑:产生存储器操作所需的时序信号。

MAR & MDR

  • MAR用于寻址,其位数反映最多可寻址的存储单元个数。MAR长度与PC长度相等。
  • MDR的位数通常等于存储字长。
  • 现代计算机中,MAR、MDR和Cache(高速缓存)均存在于CPU中,而非存储器。

运算器

  1. 运算器是计算机的执行部件,用于进行算术运算和逻辑运算。
  2. 算术运算:加、减、乘、除等。
  3. 逻辑运算:与、或、非、异或、比较、移位等。
  4. 核心:算术逻辑单元(ALU)
  5. 运算器包含若干通用寄存器,用于暂存操作数和中间结果,如:累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,其中前三个寄存器是必须具备的。
  6. 程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息。

控制器

  1. 控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。
  2. 程序计数器(PC):存放当前欲执行的指令的地址,可自动形成下一条指令的地址,它与贮存期的MAR之间有一条直接通路。
  3. 指令寄存器(IR):存放当前的指令,其内容来源于主存储器的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;地址码Ad(IR)送至MAR,用以取操作数。
  4. 一般将运算器和控制器集成到一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,除主机之外的其它硬件装置统称外部设备,简称外设

计算机软件


系统软件和应用软件

1.软件根据功能分类,可分为系统软件和应用软件。
2. 系统软件:保证计算机系统高效、正确运行的基础软件。主要有:操作系统(OS)数据库管理系统(DBMS)等。
3. 应用软件:为解决某个应用领域中的各类问题而编制的程序。

语言

  1. 机器语言:也称二级制代码语言。是计算机唯一可以识别和执行的语言。
  2. 汇编语言:用英文单词或其缩写代替二进制的指令的指令代码。
  3. 高级语言:方便程序设计人员写出解决问题的处理方案和解题过程的程序。

翻译程序

  1. 汇编程序(汇编器):将汇编程序翻译为机器语言程序。
  2. 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
  3. 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序。

速度上:编译>解释。Python采用解释,而C++采用编译。

计算机的层次结构


  • ⑤高级语言层->④汇编语言层->③操作系统层->②传统机器语言层->①微程序机器层。
  • 没有配备软件的纯硬件系统称为裸机;3~5层称为虚拟机
  • 软件和硬件之间的界面是指令集体系结构(ISA),其定义了一台计算机可以执行的所有指令。ISA是软件能感知到的部分,也称软件可见部分

计算机系统的工作原理


“存储程序”工作方式
“存储程序”工作方式规定:程序执行前,需要将程序所含的指令和数据送入主存储器,一旦程序被启动执行,就无须操作人员的干预,自动逐条完成指令的取出和执行任务。

从源程序到可执行程序

  1. 预处理阶段预处理器(cpp)对源程序中以字符#开头的命令进行处理。hello.c -> hello.i
  2. 编译阶段编译器(ccl)对预处理后的源程序进行编译,生成汇编语言源程序hello.s
  3. 汇编阶段汇编器(as)将其翻译成机器语言指令,并打包成可重定位目标文件hello.o
  4. 链接阶段链接器(ld)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,简称可执行文件。

hello.c 源程序 -> hello.i 预处理后的源程序 -> hello.s 汇编程序 -> hello.o 可重定位目标程序 -> hello 可执行目标程序

指令执行过程

  1. 取指令:PC->MAR->M->MDR->IR
    根据PC取指令到IR。将PC的内容送至MAR,MAR中的内容送至地址线,同时控制器将信号送至I/O信号线,主存储器根据地址线上的地址读信号,从指定存储单元读出指令,送至数据线上,MDR从数据线接受指令信息,送至IR。

  2. 分析指令:OP(IR)->CU
    指令译码并送出控制信号。控制器根据IR中指令的操作码,生成相应的控制信号,送到不同的执行部件。OP(IR)为取数指令,此时控制信号送至总线的控制线上。

  3. 执行指令:Ad(IR)->MAR->M->MDR->ACC
    取数操作:将IR中的指令的地址码送至MAR,MAR中的内容送至地址线,同时控制器将读信号送至I/O信号线,从主存储器中读出操作数,并通过数据线送至MDR,再送到ACC中。

  4. 每取完一条指令,计算下条指令位置,即:(PC)+1->PC

计算机的主要性能指标


机器字长
机器字长,简称字长,指计算机进行一次整数运算(即定点整数运算)所能处理的二级制数据的位数,通常与CPU的寄存器位数、ALU有关。字长一般等于通用寄存器的位数或ALU的宽度,字长越长,数的表示范围越大,计算精度越高。

数据通路带宽
指数据总线一次所能并行传送信息的位数。指代外部数据总线的宽度,与CPU内部数据总线宽度(内部寄存器大小)可能不同。

主存容量
主存储器所能存储信息的最大容量,通常以字节来衡量。也可用字数×字长(512K×16位)来表示存储容量。MAR的位数反映了存储单元的个数,MDR的位数反映了存储单元的字长。

运算速度

  1. 吞吐量:指系统在单位时间内处理请求的数量。
  2. 响应时间:从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。
  3. CPU时钟周期:机器内部主时钟脉冲信号的宽度,是CPU工作的最小时间单位。
  4. 主频(CPU时钟频率):机器内部主时钟的频率,即时钟周期的倒数。
  5. CPI:执行一条指令所需的时钟周期数。注意CPI是一个平均数。
  6. IPS:每秒执行多少条指令,IPS=主频/CPI。
  7. CPU执行时间:执行一个程序所花费的时间。
  8. MIPS:每秒执行多少百万条指令。
  9. FLOPS:每秒执行多少次浮点运算。

其它术语

  1. 基准程序:专门用来进行性能评价的一组程序,能够很好地反应机器在运行实际负载时的性能。
  2. 系列机:具有相同的体系结构,使用相同基本指令系统的多个不同型号的计算机。
  3. 兼容:指软件和硬件的通用性。
  4. 固件:将程序固化在ROM中组成的部件称为固件。