跳至主要內容

计算机组成原理

yyshino大约 22 分钟

计算机组成测试

计算机组成

简介

解释概念

  • 计算机系统是由计算机硬件与计算机软件构成的。

  • 计算机硬件是计算机的实体部分。

  • 计算机软件是由看不见摸不着的,由人们事先编制的具有各类特殊功能的程序构成,通常分为系统软件、应用软件。

  • 高级语言:不必了解、掌握实际机器的机型,内部具体组成及其指令系统,只要掌握这类语言的语法就可以直接用来编程。

  • 汇编语言:用符号ADD、SUB、MVL、DIV、等分别表示加减乘除不必使用二进制代码来编写程序。

  • 机器语言:用0、1代码来表示的语言,可以直接在机器上执行。

  • 差别与联系:机器语言可以直接在机器上执行,汇编语言必须用汇编语言程序翻译成机器语言程序才可以运行。高级语言则需要先转变为汇编语言再转变为机器语言才能执行。

  • 冯诺依曼计算机 特点

  • 由运算器、存储器、控制器、输入设备、输出设备五大部分构成。

  • 指令和地址以同等地位存放于存储器内,并可按地址寻访。

  • 指令和地址均用二进制表示。

  • 指令由操作码和地址码组成,操作码表示操作的性质,地址码用来表示操作数在存储器中的位置。

  • 主机:CPU与主存构成。

  • CPU:由运算器和控制器构成。

  • 主存:包括存储体M,各种逻辑部件及控制电路等。

  • 存储单元:由若干个存储原件构成,可存储一串二进制代码。

  • 存储元件:可存储以为二进制代码。

  • 机器字长:CPU一次能处理数据的位数。

  • 指令字长:机器指令中二进制代码的总位数。

  • CPU:中央处理器。

  • PC:程序计数器。

  • IR:指令寄存器。

  • CU:控制单元。

  • ALU:算术逻辑单

  • ACC:累加器。

  • MAR:存储器地址寄存器。

  • MDR:存储器数据寄存器。

  • I/O:分为I/O设备和I/O接口两个部分。

  • MIPS:百万条指令每秒。

  • CPI:执行一条指令所需的时钟周期。

  • FLOPS:浮点运算次数每秒。

  • 总线带宽:总线的数据传输速率及单位时间内,总线上传输数据的位数通常用每秒传输信息的字节数来衡量。

  • 总线复用:一条信号线上分时传送两种信号。

  • 总线的主设备(或主模块):对总线有控制权。

  • 总线的从设备(或从模块):只能响应主设备,对总线没有控制权。

  • 总线的传输周期:将完成一次总线操作的时间称为总线的传输周期。

  • 主存:可以和CPU直接交换信息的存储器(DRAM+ROM)。

  • 辅存:主存的后援存储器用来存放当前暂时不用的程序和数据,不能与CPU直接交换信息。

  • Cache:高速缓存,CPU可以将要取的信息送至此处。

  • RAM:随机存储器是一种可读/写存储器,掉电后数据丢失。

  • SRAM:静态RAM,触发器来存储信息,既读又写,位价高。

  • DRAM:动态RAM,利用电容的原理来存储信息,但由于电容的原理需要再生电路。

  • ROM:只读存储器,只能对其存储的内容读出,而不能对其重新写入的存储器。

  • PROM:可编程只读存储器,可对存储器进行一次编程。

  • EPROM:可擦除可编程只读存储器可用紫外线照射擦除内容,再进行编程。

  • EEPROM:电可擦除可编程只读存储器。

  • CDROM:光盘。

  • Flash Memory:闪速存储器,功能与EEPROM相似,但速度快的多。

  • 机器指令:每一条机器语言的语句。

  • 指令系统:全部机器指令的集合。

  • RISC: 精简指令系统计算机。

  • CISC:复杂指令系统计算机。

现代计算机硬件框图

ALU(运算器)和CU(控制器)构成CPU

主存和辅存 构成 存储器

CPU 与 存储器 组成 主机

输入输出设备组成 IO设备

以上所有为计算机 硬件

系统复杂性的管理方法

层次化:将被设计的系统划分为多个模块或子模块

模块化: 有明确的定义的功能和接口

规则性: 模块更容易被重用

计算机取数 过程

  1. 取指令
    • PC --> MAR --> M --> MDR -->IR , (PC) + 1 --> PC (PC自增)
  2. 分析指令
    • OP(IR) --> CU
  3. 执行指令
    • Ad(IR) --> MAR --> M --> MDR --> ACC

程序的运行过程

  • 将程序通过输入设备送至计算机

  • 程序首地址 一> PC

  • 启动程序运行

  • 计算机取数过程

    1. 取指令
      • PC --> MAR --> M --> MDR -->IR , (PC) + 1 --> PC (PC自增)
    2. 分析指令
      • OP(IR) --> CU
    3. 执行指令
      • Ad(IR) --> MAR --> M --> MDR --> ACC
  • ...

  • 打印结果

  • 停机

计算机硬件的主要技术指标

计算机硬件的主要技术指标是

  • 机器字长

  • CPU一次能处理数据的位数与CPU中的寄存器位数有关

  • 存储容量: 存放二进制信息的总位数

    • 主存容量 1K = 2

      • 存储单元个数 * 存储字长

      • MAR MDR 容量

        10 8 1K * 8位 ( $ 1K = 2^{10} $ )

        16 32 64K * 32位

      • 字节数

      • $ 2^{13}b = 1KB $ ( $ 1B = 2^{3}b $ )

      • $ 2^{21}b = 256KB $

    • 辅存容量

      • 字节数 80GB ( $ 1GB = 2^{30}B $ )
  • 运算速度

    • 主频
    • 核数
      • 每个核支持的线程数
      • 吉普森法 $ T_m = \sum_{i=1}^n f_it_i $
      • CPI
      • MIPS
      • FLOPS

总线

总线是连接各个部件的信息传输线

是各个部件共享的传输介质

总线是连接多个部件的信息传输线,在任一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收信息。

总线的分类

  • 片内总线:芯片内部的总线

  • 系统总线:计算机各个部件之间的信息传输线

    • 数据总线:双向 与机器字长、存储字长有关
    • 地址总线:单向 与存储地址、I/O地址有关
    • 控制总线:有出有入 ( 中断请求、总线请求 )
  • 通信总线:用于计算机系统之间或计算机系统与其他系统 (如控制仪表、移动通信等)之间的通信

    • 传输方式
      • 串行通信总线
      • 并行通信总线

总线特性及性能指标

总线特性
  1. 机械特性: 尺寸、形状、管脚数及排列顺序
  2. 电气特性: 传输方向和有效的电平范围
  3. 功能特性: 每根传输线的功能
    • 地址
    • 数据
    • 控制
  4. 时间特性
性能指标
  • 总线宽度:数据线的根数
  • 标准传输率:每秒传输的最大字节数( MBps )
  • 时钟同步/异步:同步、不同步
  • 总线复用:地址线 与 数据线 复用
  • 信号线数:地址线、数据线何控制线的总和
  • 总线控制方式: 突发、自动、仲裁、逻辑、计数
  • 其他指标:负载能力

总线标准

按照总线标准生产的各个部件,各模块之间可以集成在一起

  • ISA
  • EISA
  • VESA(VL-BUS)
  • PCI
  • AGP
  • RS-232
  • USB

总线结构

  1. 单总线结构

    • 系统总线
      • 所有
  2. 双总线结构

    • 主存总线

      • CPU与主存之间传输信息
    • I/O总线

      • I/O接口
      • 外部设备
    • 通道:

      • 具有特殊功能的处理器,由通道对I/O统一管理

      • 主存总线与I/O总线通过通道连接,实现IO设备与主存储器、IO设备与CPU直接的通讯、

  3. 三总线结构

    • 主存总线
      • CPU与主存之间传输信息
    • I/O总线
      • I/O设备与主存之间直接交换信息
    • DMA总线
      • 外部设备直接存储器访问
    • 三总线结构中,任一时刻只能使用一种总线
  4. 三总线结构又一形式

    • 局部总线
    • 系统总线
    • 扩展总线
常用的总线结构有几种?不同的总线结构对计算机的性能有什么影响?举例说明。(单/多)

常见的总线结构分为两种分别是单总线结构和多总线结构。
单总线结构是将CPU、主存,I/O设备(通过I/O接口)都挂在这一总线上、允许I/O设备之间、I/O设备与CPU之间或I/o设备与主存之间直接交换信息。
单总线结构结构简单、易于扩充,但所有的传送都通过这一总线,不允许两个以上的部件在同一时刻向总线传输信息,会影响系统的工作效率,易形成计算机的瓶颈,故常用于功能简单的实验仪器型机器的设计。
多总线结构:双总线结构将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构,而多总线结构就是在其基础上增加总线,形成多总线结构,多总线结构,可以实现多种总线之间的数据传递,可明显提升系统的工作效率,例如,现代微机的结构就是多总线结构

总线控制

总线判优控制

基本概念

  • 主设备(模块) 对总线有控制权

  • 从设备(模块) 响应从主设备发来的总线命令

  • 集中式

    • 链式查询方式
      • 只需要很少的几根线就能按一定优先次序实现总线控制,而且很容易扩充设备,但对电路故障很敏感且优先级别低的设备可能很难获得请求
    • 计数器定时查询
      • 这种查询方式对电路故障不如链式查询敏感,但增加了控制线设备地址数,控制页较复杂
    • 独立请求方式
      • 独立请求方式响应速度快,优先次序控制灵活,但控制线数量多,总线控制更复杂。
为什么要设置总线判优控制?
因为总线上连接着多个部件,需要一种机制来决定什么时候有哪个部件发送信息、如何给信息传送定时,如何防止信息丢失、如何规定接收部件的一系列问题,因此,为了解决这些多个部件的使用权问题,出现了总线判优机制。

哪种方式响应时间最快,哪种方式对电路故障最敏感?
独立请求方式响应速度快,链式查询对电路故障敏感。 
  • 分布式

总线通信控制

目的: 解决通信双方协调配合问题

总线传输周期

  • 申请分配阶段:主模块申请,总线仲裁决定
  • 寻址阶段:主模块向从模块给出地址和命令
  • 传数阶段:主模块和从模块交换数据
  • 结束阶段:主模块撤销有关西段

总线通信的四种方式

  • 同步通信:由统一时标控制数据传送

  • 异步通信:采用应答方式,没有公共时钟标准

    • 不互锁
    • 半互锁
    • 全互锁
    • image-20220913092843039
      image-20220913092843039
  • 半同步通信:同步、异步结合

  • 上述三种通信的共同点(一个总线传输周期(以输入数据为例))

    -主模块发地址、命令占用总线
    从模块准备数据不占用总线 总线空闲
    从模块向组模块发数据占用总线
  • 分离式通信:充分挖掘系统 总线每个瞬间 的潜力

    • 特点
      1. 各模块有权申请占用总线
      2. 采用同步方式通信,不等对方回答
      3. 各模块准备数据时,不占用总线
      4. 总线被占用时,无空闲
试比较同步通信和异步通信。
同步通信优点,规划明确,统一模块之间的配合简单一致。
缺点主、从设备时间配合属于强制性同步,必须在限定时间内完成规定的要求,必须按最慢部件来设计公共时钟,严重影响总线的工作效率。
异步通信客服了同步通信的缺点,允许各模块的速度不一致性,没有公共的时钟标准,不要求所有部件严格统一操作时间,即当主模块发出请求,一直等待从模块反馈回来响应。


为什么说半同步通信同时保留了同步通信和异步通信的特点?
同步通信既保留了同步通信的基本特点,如所有的地址命令,数据信号的发出时间都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别,同时又像异步通信那样允许不同速度的模块和谐的工作


主存储器

简介

分类

  • 存储介质分类
    • 半导体存储器:TTL、MOS
    • 磁表面存储器:磁头、载磁体
    • 磁芯存储器:硬磁材料、环状元件
    • 光盘存储器:激光、磁光材料
  • 按存取方式分类
    1. 存取时间与物理地址无关(随机访问)
      • 随机存储器:在程序的执行过程中可读可写
      • 只读存储器:在程序的执行过程中只读
    2. 存取时间与物理地址无关(串行访问)
      • 顺序存取存储器——磁带
      • 直接存取存储器——磁盘
  • 按在计算机中的作用分类
    • 主存储器
      • RAM
        • 静态RAM(SRAM)
          • 保存0和1的原理是什么?
          • 基本单元电路的构成是什么?
          • 对单元电路如何读出和写入?
          • 典型芯片的结构是很么样子的?
          • 静态RAM芯片的如何进行读出和写入操作?
        • 动态RAM(DRAM)
      • ROM(只读存储器)
        • MROM(掩膜ROM)
        • PROM(一次性编程)
        • EPROM(多次性编程)——紫外线
        • EEPROM(多次性编程)——电可擦写
    • Flash Memory(闪速型存储器)——U盘
    • 高速缓冲存储器(Cache)
    • 辅助存储器
4.8试比较静态 RAM 和动态 RAM 。
静态RAM是由触发器构成的存储器,位价高。
动态RAM是电容构成的存储器,价位低,但需要配置刷新电路。
SRAM在相同的存储容量的条件下,需要更大的体积集成度低,DRAM集成度高。

4.9什么叫刷新?为什么要刷新?说明刷新有几种方法。
电容上的电荷一般只能维持1~2ms 因此,即使电源不掉,电信息也会自动消失,为此,必须在2ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新。
刷新的方法有三种:
集中刷新:是在规定的一个刷新周期内,对存储单元集中一段时间内逐行刷新,停止读/写。(有死区)
分散刷新:(抽空刷新)
异步刷新:前两种的结合。


存储器的层次结构

  • 缓存-主存(速度问题——硬件解决)
  • 主存-辅存(容量问题——软硬件相结合)
  1. 存储器三个主要特性的关系
image-20220913105924758
image-20220913105924758
  1. 主存和CPU的联系

    • image-20220913121533409
      image-20220913121533409
  2. 主存中存储单元地址的分配

    • image-20220913122002262
      image-20220913122002262
  3. 主存的技术指标

    1. 存储容量:主存 存放二进制代码的总位数
    2. 存储速度:
      • 存取时间:存储器的访问时间 | 读出时间 写入时间
      • 存取周期:连续两次独立的存储器操作(读或写)所需的 最小间隔时间 | 读周期 写周期
  4. 存储器的带宽:位/秒

4.2计算机中哪些部件可用于存储信息,按其速度、容量和价格/位排序说明。
计算机中可用寄存器,缓存,主存,磁盘,磁带来存储信息。
寄存器
缓存           越下容量越大
主存           越上速度越快
磁盘           越上位价越贵
磁带


4.3存储器的层次结构主要体现在什么地方,为什么要分这些层次,计算机如何管理这些层次?
存储器的层次结构主要体现在缓存-主存,主存-辅存,这两存储层次上,
缓存-主存,层次主要解决CPU和主存速度不匹配的问题,主存和缓存之间的数据调动是由硬件自动完成的,对程序员是透明的。
主存-辅存层次主要解决系统的容量问题,辅存速度比主存低而且不能与CPU直接交换信息,但容量比储存大CPU要用这些数据时就将辅存中的数据复刻到主存中,由CPU调用直接访问。
现代计算机系统几乎都有这两存储层次,构成了缓存,主存,辅存三级存储系统,并逐渐形成了虚拟存储系统。

4.5什么是存储器的带宽?着存储器的数据总线宽度为32 位,存取周期为200 ns ,则存储器的带宽是
存储带宽是单位时间内存储器存取的信息量。
1/200ns*32=160M位/S

4.10半导体存储器芯片的译码駆动方式有几种?
译码驱动有两种方法,线选法与重合法。
重合法比线选法,更好使得字线根数减少,可以用较少的字线来选择更多的数据,刻电路面积减小。 


半导体存储芯片

简介

基本结构

image-20220913145405591
image-20220913145405591
image-20220913145557466
image-20220913145557466
  • 片选线:确定存储地址
    • image-20220913145923018
      image-20220913145923018
  • 读/写控制线:确定读写

译码驱动方式:给出了存储单元的地址后,怎么去找到指定的存储单元

  • 线选法
  • 重合法
4.10半导体存储器芯片的译码駆动方式有几种?
译码驱动有两种方法,线选法与重合法。
重合法比线选法,更好使得字线根数减少,可以用较少的字线来选择更多的数据,刻电路面积减小。 

存储器与CPU的连接

  • 存储器容量的扩展
    • 位扩展(增加存储字长)
      • 两个芯片的片选使用相同的信号连接
    • 字扩展(增加存储字的数量)
    • 字、位同时扩展
      • image-20220913172229791
        image-20220913172229791

存储器校验

编码的最小距离:任意两组合法代码之间 二进制位数最小差异编码的纠错、检错能力与编码的最小距离有关

L-1 = D + C (D> = C)

L—— 编码的最小距离

D—— 检测错误的位数

C—— 纠正错误的位数

奇偶校验
汉明码校验

汉明码的组成 组成三要素

组成三要素
组成三要素
  1. 汉明码的组成需增添?位检测位
    • $$ 2^k >= n + k + 1 $$
  2. 检测位的位置
    • $$ 2^i (i= 0,1,2,3,...) $$
  3. 检测位的取值
    • 检测位的取值与该位所在的检测“小组”承担的奇偶校验任务有关

汉明码的检错 汉明码的检错

汉明码的奇配原则:按照偶配原则计算的Ci后,取反的奇配原则下的检测位取值。

高速缓冲存储器 (Cache)

简介
  1. 问题的提出
    • 避免CPU“空等”现象
    • CPU和主存(DRAM)的速度差异
    • 程序访问的局部性原理
Cache工作原理
Cache的命中率

命中:主存块调入缓存(主存块与缓存块建立了对应关系)

不命中:主存块未调入缓存(主存块与缓存块未建立对应关系)

命中率:CPU欲访问的信息在Cache中的比率(命中率与Cahche的容量与块长有关)

Cache-主存系统的效率

效率e与命中率有关

$$ e = \frac{访问Cache的时间}{平均访问时间}*100% $$

Cache的基本结构
image-20220915145144497
image-20220915145144497
Cache读写操作
image-20220915145523408
    • Cache和主存的一致性
      • 写直法(Write-through)
        • 写操作时数据既写入Cache又写入主存写操作时间就是访问主存的时间, Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
      • 写回法 (Write-back)
        • 写操作时只把数据写入Cache而不写入主存当Cache数据被替换出去时才写回主存**,写操作时间就是访问Cache的时间**, Cache块退出时,被替换的块需写回主存,增加Cache的复杂性
Cache改进
  1. 增加Cache的级数
    • 片载(片内)Cache
    • 片外Cache
  2. 统一缓存和分立缓存
    • 指令Cache
    • 数据Cache
    • 与指令执行的控制方式有关 是否流水
Cache-主存的地址映射
  1. 直接映射
    • 某一主存块只能固定映射到某一缓存块
    • **特点:**不灵活、Cache利用率低、速度快
  2. 全相联映射
    • 某一主存块能映射到任一缓存块
    • **特点:**成本高、Cache利用率高、速度慢
  3. 组相连映射
    • 直接映射和全相联映射的折中。
    • 某一主存块只能映射到某一缓存组中的任意缓存块
    • **特点:**Cache利用率比较高、速度比较快
  4. 替换算法
    • 解决问题:Cache满时选择正确的块,从Cache中退出
    • 先进先出(FIFO)算法
    • 近期最少使用(LRU)算法
4.25 什么是程序访问的局部性?存储系统哪一阶段采用了程序访问的局限性原理?
通过大量典型程序分析发现,CPU从主存取指令获取数据,在一定时间内只是对主存局部地址区域的访问,这是由于指令和数据在主存内都是连续存放的,并且有些指令和数据往往会被多次调用,集指令和数据在储存的地址分部不是随机的,而是相对簇聚的,使得CPU在执行程序时访存具有相对的局部性,这就称为程序访问的局部性原理。
Cache-主存层次与主存辅存层次采用了局部性原理。


4.26计算机中设置 Cache 的作用是什么?能不能把 Cache 的容量扩大,最后取代主存,为什么?
Cache的出现,大大提高了CPU访问主存的速度,中央处理器可以不直接访问主存,直接与Cache交换信息,极大地解决了CPU与主存之间速度矛盾的问题。
不可以将Cache的容量扩大,进而取代主存,一般而言,cache容量越大即CPU命中率越高,当然容量也没有必要太大,太大会增加成本,当容量达到一定值时,命中率已不再因容量增加而显著增加。


4.27 Cache 制作在 CPU 芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?
Cache制作在CPU内部提高了外部总线利用率,因为Cache在CPU内部可直接访问,不必占用外部总线,进而增强了系统的整体效率,也提高了CPU存储速度。
将指令Cache与数据Cache分开有以下好处
可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。
指令Cache可用ROM实现,提高指令存取可靠性。
数据Cache对不同类型数据支持更为灵活。

辅助存储器

概述

  1. 特点:不直接与CPU交换信息

I/O系统(输入输出系统)

概述

  1. 早期
    • 分散连接
    • CPU和I/O设备 串行 工作 程序查询方式
  2. 接口模块和DMA阶段
    • 总线连接
    • CPU和I/O设备 并行 工作
      • 中断方式
      • DMA方式
  3. 具有通道结构的阶段
  4. 具有I/O处理机的阶段

组成

  1. I/O软件
    1. I/O指令 CPU指令的一部分
      • 操作码
      • 命令码
      • 设备码
    2. 通道指令 通道自身的指令
  2. I/O硬件
    • 设备 I/O接口
    • 设备 设备控制器 通道

I/O设备与主机的联系方式

  1. I/O设备编址方式
    1. 统一编址 用取数、存数
    2. 不统一编址 有专门的I/O指令
  2. 设备选址
    1. 用设备选择电路识别是否被选中
  3. 传送方式
    1. 串行
    2. 并行
  4. 联系方式

计算方法

指令系统

常考

1.多重中断含义

多重中断含义

2.多重中断服务程序流程

多重中断服务程序流程

3.中断隐指令

中断隐指令

4.主存Cache容量

主存Cache容量

5.芯片组成字位扩展

芯片组成字位扩展

6.CPU为参考点数据地址控制总线的方向

  1. 数据总线是双向三态形式的总线,它既可以把CPU的数据传送到存储器或IO设备等其他部件,也可以将其它的数据传送到CPU.
  2. 地址总线专门用于传送地址,只能从CPU传向外部存储器或IO端口
  3. 控制总线控制总线的传送方向由具体控制信号而定,一般是双向的

7.详细解释微操作CM(CMAR)CMDR含义

  1. CMAR是控存地址寄存器,用来存放预读的微指令地址
  2. CMDR是控存数据寄存器,用来存放从控存器读出的微指令
  3. 将对应控存M地址从单元中的第一条微指令读到控存数据寄存器中,记作CM(CMAR) -> CMDR

8.海明码纠错(例题)

海明码纠错
海明码纠错
  1. 只纠错(如上图例题)

      1. 海明码: 1000101
      • 对应m1m2m3m4m5m6m7,其中检测位为m1m2m4
      1. 计算Pi
      • P1 = m1 + m3 + m5 + m7 = 1 + 0 + 1 + 1 = 1
      • P2 = m2 + m3 + m6 + m7 = 0 + 0 + 0 + 1 = 1
      • P3 = m4 + m5 + m6 + m7 = 0 + 1 + 0 + 1 = 0
      1. P1P2 为 1 --> 出错,P1P2共有元素为m3,因此m3出错,正确的m3为1
    • 正确的海明码为: 1010101

  2. 检测并纠错